@jbrowse/plugin-wiggle 2.3.4 → 2.4.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 (177) hide show
  1. package/dist/BigWigAdapter/BigWigAdapter.js +5 -6
  2. package/dist/BigWigAdapter/BigWigAdapter.js.map +1 -1
  3. package/dist/CreateMultiWiggleExtension/ConfirmDialog.js +1 -1
  4. package/dist/CreateMultiWiggleExtension/ConfirmDialog.js.map +1 -1
  5. package/dist/CreateMultiWiggleExtension/index.js +1 -3
  6. package/dist/CreateMultiWiggleExtension/index.js.map +1 -1
  7. package/dist/LinearWiggleDisplay/components/Tooltip.d.ts +2 -2
  8. package/dist/LinearWiggleDisplay/components/Tooltip.js +2 -1
  9. package/dist/LinearWiggleDisplay/components/Tooltip.js.map +1 -1
  10. package/dist/LinearWiggleDisplay/components/WiggleDisplayComponent.d.ts +1 -2
  11. package/dist/LinearWiggleDisplay/components/WiggleDisplayComponent.js +3 -2
  12. package/dist/LinearWiggleDisplay/components/WiggleDisplayComponent.js.map +1 -1
  13. package/dist/LinearWiggleDisplay/index.d.ts +3 -4
  14. package/dist/LinearWiggleDisplay/index.js +7 -5
  15. package/dist/LinearWiggleDisplay/index.js.map +1 -1
  16. package/dist/LinearWiggleDisplay/models/model.d.ts +99 -28
  17. package/dist/LinearWiggleDisplay/models/model.js +3 -8
  18. package/dist/LinearWiggleDisplay/models/model.js.map +1 -1
  19. package/dist/MultiDensityRenderer/MultiDensityRenderer.js +2 -2
  20. package/dist/MultiDensityRenderer/MultiDensityRenderer.js.map +1 -1
  21. package/dist/MultiLineRenderer/MultiLineRenderer.js +2 -2
  22. package/dist/MultiLineRenderer/MultiLineRenderer.js.map +1 -1
  23. package/dist/MultiLinearWiggleDisplay/components/DraggableDialog.js +1 -1
  24. package/dist/MultiLinearWiggleDisplay/components/DraggableDialog.js.map +1 -1
  25. package/dist/MultiLinearWiggleDisplay/components/SetColorDialog.js +4 -4
  26. package/dist/MultiLinearWiggleDisplay/components/SetColorDialog.js.map +1 -1
  27. package/dist/MultiLinearWiggleDisplay/components/Tooltip.d.ts +2 -2
  28. package/dist/MultiLinearWiggleDisplay/components/Tooltip.js +2 -1
  29. package/dist/MultiLinearWiggleDisplay/components/Tooltip.js.map +1 -1
  30. package/dist/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.d.ts +3 -4
  31. package/dist/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.js +10 -10
  32. package/dist/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.js.map +1 -1
  33. package/dist/MultiLinearWiggleDisplay/models/configSchema.js +7 -0
  34. package/dist/MultiLinearWiggleDisplay/models/configSchema.js.map +1 -1
  35. package/dist/MultiLinearWiggleDisplay/models/model.d.ts +63 -5
  36. package/dist/MultiLinearWiggleDisplay/models/model.js +1 -7
  37. package/dist/MultiLinearWiggleDisplay/models/model.js.map +1 -1
  38. package/dist/MultiRowLineRenderer/MultiRowLineRenderer.js +2 -2
  39. package/dist/MultiRowLineRenderer/MultiRowLineRenderer.js.map +1 -1
  40. package/dist/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.js +2 -2
  41. package/dist/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.js.map +1 -1
  42. package/dist/MultiWiggleAdapter/MultiWiggleAdapter.d.ts +2 -1
  43. package/dist/MultiWiggleAdapter/MultiWiggleAdapter.js +2 -2
  44. package/dist/MultiWiggleAdapter/MultiWiggleAdapter.js.map +1 -1
  45. package/dist/MultiWiggleAddTrackWidget/AddTrackWorkflow.js +2 -2
  46. package/dist/MultiWiggleAddTrackWidget/AddTrackWorkflow.js.map +1 -1
  47. package/dist/MultiXYPlotRenderer/MultiXYPlotRenderer.js +5 -5
  48. package/dist/MultiXYPlotRenderer/MultiXYPlotRenderer.js.map +1 -1
  49. package/dist/WiggleBaseRenderer.d.ts +2 -2
  50. package/dist/WiggleBaseRenderer.js +3 -3
  51. package/dist/WiggleBaseRenderer.js.map +1 -1
  52. package/dist/WiggleRPC/rpcMethods.js +2 -2
  53. package/dist/WiggleRPC/rpcMethods.js.map +1 -1
  54. package/dist/XYPlotRenderer/index.d.ts +3 -4
  55. package/dist/XYPlotRenderer/index.js +7 -4
  56. package/dist/XYPlotRenderer/index.js.map +1 -1
  57. package/dist/drawxy.js +4 -8
  58. package/dist/drawxy.js.map +1 -1
  59. package/dist/index.d.ts +73 -11
  60. package/dist/index.js +9 -7
  61. package/dist/index.js.map +1 -1
  62. package/dist/shared/YScaleBar.d.ts +9 -0
  63. package/dist/{MultiLinearWiggleDisplay/components → shared}/YScaleBar.js +4 -3
  64. package/dist/shared/YScaleBar.js.map +1 -0
  65. package/dist/util.d.ts +1 -1
  66. package/dist/util.js +6 -5
  67. package/dist/util.js.map +1 -1
  68. package/esm/BigWigAdapter/BigWigAdapter.js +5 -6
  69. package/esm/BigWigAdapter/BigWigAdapter.js.map +1 -1
  70. package/esm/CreateMultiWiggleExtension/ConfirmDialog.js +1 -1
  71. package/esm/CreateMultiWiggleExtension/ConfirmDialog.js.map +1 -1
  72. package/esm/CreateMultiWiggleExtension/index.js +1 -3
  73. package/esm/CreateMultiWiggleExtension/index.js.map +1 -1
  74. package/esm/LinearWiggleDisplay/components/Tooltip.d.ts +2 -2
  75. package/esm/LinearWiggleDisplay/components/Tooltip.js +1 -1
  76. package/esm/LinearWiggleDisplay/components/Tooltip.js.map +1 -1
  77. package/esm/LinearWiggleDisplay/components/WiggleDisplayComponent.d.ts +1 -2
  78. package/esm/LinearWiggleDisplay/components/WiggleDisplayComponent.js +2 -2
  79. package/esm/LinearWiggleDisplay/components/WiggleDisplayComponent.js.map +1 -1
  80. package/esm/LinearWiggleDisplay/index.d.ts +3 -4
  81. package/esm/LinearWiggleDisplay/index.js +3 -2
  82. package/esm/LinearWiggleDisplay/index.js.map +1 -1
  83. package/esm/LinearWiggleDisplay/models/model.d.ts +99 -28
  84. package/esm/LinearWiggleDisplay/models/model.js +2 -7
  85. package/esm/LinearWiggleDisplay/models/model.js.map +1 -1
  86. package/esm/MultiDensityRenderer/MultiDensityRenderer.js +2 -2
  87. package/esm/MultiDensityRenderer/MultiDensityRenderer.js.map +1 -1
  88. package/esm/MultiLineRenderer/MultiLineRenderer.js +2 -2
  89. package/esm/MultiLineRenderer/MultiLineRenderer.js.map +1 -1
  90. package/esm/MultiLinearWiggleDisplay/components/DraggableDialog.js +1 -1
  91. package/esm/MultiLinearWiggleDisplay/components/DraggableDialog.js.map +1 -1
  92. package/esm/MultiLinearWiggleDisplay/components/SetColorDialog.js +4 -4
  93. package/esm/MultiLinearWiggleDisplay/components/SetColorDialog.js.map +1 -1
  94. package/esm/MultiLinearWiggleDisplay/components/Tooltip.d.ts +2 -2
  95. package/esm/MultiLinearWiggleDisplay/components/Tooltip.js +1 -1
  96. package/esm/MultiLinearWiggleDisplay/components/Tooltip.js.map +1 -1
  97. package/esm/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.d.ts +3 -4
  98. package/esm/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.js +9 -10
  99. package/esm/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.js.map +1 -1
  100. package/esm/MultiLinearWiggleDisplay/models/configSchema.js +7 -0
  101. package/esm/MultiLinearWiggleDisplay/models/configSchema.js.map +1 -1
  102. package/esm/MultiLinearWiggleDisplay/models/model.d.ts +63 -5
  103. package/esm/MultiLinearWiggleDisplay/models/model.js +1 -7
  104. package/esm/MultiLinearWiggleDisplay/models/model.js.map +1 -1
  105. package/esm/MultiRowLineRenderer/MultiRowLineRenderer.js +2 -2
  106. package/esm/MultiRowLineRenderer/MultiRowLineRenderer.js.map +1 -1
  107. package/esm/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.js +2 -2
  108. package/esm/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.js.map +1 -1
  109. package/esm/MultiWiggleAdapter/MultiWiggleAdapter.d.ts +2 -1
  110. package/esm/MultiWiggleAdapter/MultiWiggleAdapter.js +2 -2
  111. package/esm/MultiWiggleAdapter/MultiWiggleAdapter.js.map +1 -1
  112. package/esm/MultiWiggleAddTrackWidget/AddTrackWorkflow.js +2 -2
  113. package/esm/MultiWiggleAddTrackWidget/AddTrackWorkflow.js.map +1 -1
  114. package/esm/MultiXYPlotRenderer/MultiXYPlotRenderer.js +5 -5
  115. package/esm/MultiXYPlotRenderer/MultiXYPlotRenderer.js.map +1 -1
  116. package/esm/WiggleBaseRenderer.d.ts +2 -2
  117. package/esm/WiggleBaseRenderer.js +3 -3
  118. package/esm/WiggleBaseRenderer.js.map +1 -1
  119. package/esm/WiggleRPC/rpcMethods.js +2 -2
  120. package/esm/WiggleRPC/rpcMethods.js.map +1 -1
  121. package/esm/XYPlotRenderer/index.d.ts +3 -4
  122. package/esm/XYPlotRenderer/index.js +3 -1
  123. package/esm/XYPlotRenderer/index.js.map +1 -1
  124. package/esm/drawxy.js +4 -8
  125. package/esm/drawxy.js.map +1 -1
  126. package/esm/index.d.ts +73 -11
  127. package/esm/index.js +4 -3
  128. package/esm/index.js.map +1 -1
  129. package/esm/shared/YScaleBar.d.ts +9 -0
  130. package/esm/{LinearWiggleDisplay/components → shared}/YScaleBar.js +4 -3
  131. package/esm/shared/YScaleBar.js.map +1 -0
  132. package/esm/util.d.ts +1 -1
  133. package/esm/util.js +6 -5
  134. package/esm/util.js.map +1 -1
  135. package/package.json +3 -3
  136. package/src/BigWigAdapter/BigWigAdapter.ts +5 -6
  137. package/src/CreateMultiWiggleExtension/ConfirmDialog.tsx +1 -1
  138. package/src/CreateMultiWiggleExtension/index.ts +1 -3
  139. package/src/DensityRenderer/DensityRenderer.test.ts +3 -3
  140. package/src/LinearWiggleDisplay/components/Tooltip.tsx +2 -1
  141. package/src/LinearWiggleDisplay/components/WiggleDisplayComponent.tsx +2 -2
  142. package/src/LinearWiggleDisplay/index.ts +3 -2
  143. package/src/LinearWiggleDisplay/models/model.tsx +2 -6
  144. package/src/MultiDensityRenderer/MultiDensityRenderer.ts +2 -2
  145. package/src/MultiLineRenderer/MultiLineRenderer.ts +2 -2
  146. package/src/MultiLinearWiggleDisplay/components/DraggableDialog.tsx +1 -1
  147. package/src/MultiLinearWiggleDisplay/components/SetColorDialog.tsx +4 -4
  148. package/src/MultiLinearWiggleDisplay/components/Tooltip.tsx +2 -1
  149. package/src/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.tsx +175 -182
  150. package/src/MultiLinearWiggleDisplay/models/configSchema.ts +8 -0
  151. package/src/MultiLinearWiggleDisplay/models/model.tsx +1 -6
  152. package/src/MultiRowLineRenderer/MultiRowLineRenderer.ts +2 -2
  153. package/src/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.ts +2 -2
  154. package/src/MultiWiggleAdapter/MultiWiggleAdapter.ts +3 -2
  155. package/src/MultiWiggleAddTrackWidget/AddTrackWorkflow.tsx +2 -2
  156. package/src/MultiXYPlotRenderer/MultiXYPlotRenderer.ts +5 -5
  157. package/src/WiggleBaseRenderer.tsx +13 -15
  158. package/src/WiggleRPC/rpcMethods.ts +2 -2
  159. package/src/WiggleRendering.test.js +1 -1
  160. package/src/XYPlotRenderer/XYPlotRenderer.test.ts +3 -3
  161. package/src/XYPlotRenderer/index.ts +4 -1
  162. package/src/drawxy.ts +6 -8
  163. package/src/index.ts +8 -9
  164. package/src/shared/YScaleBar.tsx +25 -0
  165. package/src/util.ts +5 -4
  166. package/dist/LinearWiggleDisplay/components/YScaleBar.d.ts +0 -7
  167. package/dist/LinearWiggleDisplay/components/YScaleBar.js +0 -14
  168. package/dist/LinearWiggleDisplay/components/YScaleBar.js.map +0 -1
  169. package/dist/MultiLinearWiggleDisplay/components/YScaleBar.d.ts +0 -7
  170. package/dist/MultiLinearWiggleDisplay/components/YScaleBar.js.map +0 -1
  171. package/esm/LinearWiggleDisplay/components/YScaleBar.d.ts +0 -7
  172. package/esm/LinearWiggleDisplay/components/YScaleBar.js.map +0 -1
  173. package/esm/MultiLinearWiggleDisplay/components/YScaleBar.d.ts +0 -7
  174. package/esm/MultiLinearWiggleDisplay/components/YScaleBar.js +0 -9
  175. package/esm/MultiLinearWiggleDisplay/components/YScaleBar.js.map +0 -1
  176. package/src/LinearWiggleDisplay/components/YScaleBar.tsx +0 -26
  177. package/src/MultiLinearWiggleDisplay/components/YScaleBar.tsx +0 -25
@@ -7,7 +7,7 @@ import WiggleBaseRenderer, {
7
7
  } from '../WiggleBaseRenderer'
8
8
 
9
9
  export default class MultiXYPlotRenderer extends WiggleBaseRenderer {
10
- // @ts-ignore
10
+ // @ts-expect-error
11
11
  async draw(ctx: CanvasRenderingContext2D, props: MultiArgs) {
12
12
  const { bpPerPx, sources, regions, features } = props
13
13
  const [region] = regions
@@ -35,7 +35,7 @@ export default class MultiXYPlotRenderer extends WiggleBaseRenderer {
35
35
  ctx.lineTo(width, height)
36
36
  ctx.stroke()
37
37
  ctx.translate(0, height)
38
- feats = feats.concat(reducedFeatures)
38
+ feats = [...feats, ...reducedFeatures]
39
39
  })
40
40
  ctx.restore()
41
41
  return { reducedFeatures: feats }
@@ -19,6 +19,7 @@ function getFilename(uri: string) {
19
19
 
20
20
  interface AdapterEntry {
21
21
  dataAdapter: BaseFeatureDataAdapter
22
+ source: string
22
23
  [key: string]: unknown
23
24
  }
24
25
 
@@ -73,7 +74,7 @@ export default class MultiWiggleAdapter extends BaseFeatureDataAdapter {
73
74
  const adapters = await this.getAdapters()
74
75
  const stats = (
75
76
  await Promise.all(
76
- // @ts-ignore
77
+ // @ts-expect-error
77
78
  adapters.map(adp => adp.dataAdapter.getGlobalStats?.(opts)),
78
79
  )
79
80
  ).filter(f => !!f)
@@ -94,7 +95,7 @@ export default class MultiWiggleAdapter extends BaseFeatureDataAdapter {
94
95
  ? p
95
96
  : new SimpleFeature({
96
97
  ...p.toJSON(),
97
- uniqueId: adp.source + '-' + p.id(),
98
+ uniqueId: `${adp.source}-${p.id()}`,
98
99
  source: adp.source,
99
100
  }),
100
101
  ),
@@ -23,7 +23,7 @@ const useStyles = makeStyles()(theme => ({
23
23
  export default function MultiWiggleWidget({ model }: { model: AddTrackModel }) {
24
24
  const { classes } = useStyles()
25
25
  const [val, setVal] = useState('')
26
- const [trackName, setTrackName] = useState('MultiWiggle ' + Date.now())
26
+ const [trackName, setTrackName] = useState(`MultiWiggle${+Date.now()}`)
27
27
  return (
28
28
  <Paper className={classes.paper}>
29
29
  <ul>
@@ -51,7 +51,7 @@ export default function MultiWiggleWidget({ model }: { model: AddTrackModel }) {
51
51
  hidden
52
52
  multiple
53
53
  onChange={({ target }) => {
54
- const res = Array.from(target?.files || []).map(file => ({
54
+ const res = [...(target?.files || [])].map(file => ({
55
55
  type: 'BigWigAdapter',
56
56
  bigWigLocation: isElectron
57
57
  ? {
@@ -7,16 +7,16 @@ import WiggleBaseRenderer, {
7
7
  } from '../WiggleBaseRenderer'
8
8
 
9
9
  export default class MultiXYPlotRenderer extends WiggleBaseRenderer {
10
- // @ts-ignore
10
+ // @ts-expect-error
11
11
  async draw(ctx: CanvasRenderingContext2D, props: MultiArgs) {
12
12
  const { sources, features } = props
13
13
  const groups = groupBy([...features.values()], f => f.get('source'))
14
14
  const Color = await import('color').then(f => f.default)
15
15
  let feats = [] as Feature[]
16
- sources.forEach(source => {
16
+ for (const source of sources) {
17
17
  const features = groups[source.name]
18
18
  if (!features) {
19
- return
19
+ continue
20
20
  }
21
21
  const { reducedFeatures } = drawXY(ctx, {
22
22
  ...props,
@@ -25,8 +25,8 @@ export default class MultiXYPlotRenderer extends WiggleBaseRenderer {
25
25
  colorCallback: () => source.color || 'blue',
26
26
  Color,
27
27
  })
28
- feats = feats.concat(reducedFeatures)
29
- })
28
+ feats = [...feats, ...reducedFeatures]
29
+ }
30
30
  return { reducedFeatures: feats }
31
31
  }
32
32
  }
@@ -1,10 +1,6 @@
1
1
  import FeatureRendererType, {
2
2
  RenderArgs as FeatureRenderArgs,
3
- RenderArgsSerialized,
4
3
  RenderArgsDeserialized as FeatureRenderArgsDeserialized,
5
- RenderResults,
6
- ResultsSerialized,
7
- ResultsDeserialized,
8
4
  } from '@jbrowse/core/pluggableElementTypes/renderers/FeatureRendererType'
9
5
  import { renderToAbstractCanvas, Feature } from '@jbrowse/core/util'
10
6
  import { ThemeOptions } from '@mui/material'
@@ -34,13 +30,6 @@ export interface MultiRenderArgsDeserialized
34
30
  sources: Source[]
35
31
  }
36
32
 
37
- export type {
38
- RenderArgsSerialized,
39
- RenderResults,
40
- ResultsSerialized,
41
- ResultsDeserialized,
42
- }
43
-
44
33
  export default abstract class WiggleBaseRenderer extends FeatureRendererType {
45
34
  supportsSVG = true
46
35
 
@@ -50,7 +39,7 @@ export default abstract class WiggleBaseRenderer extends FeatureRendererType {
50
39
  const [region] = regions
51
40
  const width = (region.end - region.start) / bpPerPx
52
41
 
53
- // @ts-ignore
42
+ // @ts-expect-error
54
43
  const { reducedFeatures, ...rest } = await renderToAbstractCanvas(
55
44
  width,
56
45
  height,
@@ -73,9 +62,11 @@ export default abstract class WiggleBaseRenderer extends FeatureRendererType {
73
62
  return {
74
63
  ...results,
75
64
  ...rest,
76
- features: (reducedFeatures
77
- ? new Map(reducedFeatures.map((r: Feature) => [r.id(), r]))
78
- : results.features) as Map<string, Feature>,
65
+ features: reducedFeatures
66
+ ? new Map<string, Feature>(
67
+ reducedFeatures.map((r: Feature) => [r.id(), r]),
68
+ )
69
+ : results.features,
79
70
  height,
80
71
  width,
81
72
  containsNoTransferables: true,
@@ -91,3 +82,10 @@ export default abstract class WiggleBaseRenderer extends FeatureRendererType {
91
82
  props: T,
92
83
  ): Promise<Record<string, unknown> | void>
93
84
  }
85
+
86
+ export {
87
+ type RenderArgsSerialized,
88
+ type RenderResults,
89
+ type ResultsDeserialized,
90
+ type ResultsSerialized,
91
+ } from '@jbrowse/core/pluggableElementTypes/renderers/FeatureRendererType'
@@ -40,7 +40,7 @@ export class WiggleGetGlobalStats extends RpcMethodType {
40
40
  const { adapterConfig, sessionId } = deserializedArgs
41
41
  const { dataAdapter } = await getAdapter(pm, sessionId, adapterConfig)
42
42
 
43
- // @ts-ignore
43
+ // @ts-expect-error
44
44
  return dataAdapter.getGlobalStats(deserializedArgs)
45
45
  }
46
46
  }
@@ -164,7 +164,7 @@ export class MultiWiggleGetSources extends RpcMethodType {
164
164
  const { regions, adapterConfig, sessionId } = deserializedArgs
165
165
  const { dataAdapter } = await getAdapter(pm, sessionId, adapterConfig)
166
166
 
167
- // @ts-ignore
167
+ // @ts-expect-error
168
168
  return dataAdapter.getSources(regions, deserializedArgs)
169
169
  }
170
170
  }
@@ -15,7 +15,7 @@ test('one', async () => {
15
15
  config={{ type: 'DummyRenderer' }}
16
16
  />,
17
17
  )
18
- const test = await getByTestId('wiggle-rendering-test')
18
+ const test = getByTestId('wiggle-rendering-test')
19
19
  expect(fireEvent.click(test)).toBeTruthy()
20
20
  expect(container.firstChild).toMatchSnapshot()
21
21
  })
@@ -6,9 +6,9 @@ import configSchema from './configSchema'
6
6
  import XYPlotRenderer from './XYPlotRenderer'
7
7
  import ReactComponent from '../WiggleRendering'
8
8
 
9
- // @ts-ignore
9
+ // @ts-expect-error
10
10
  global.nodeImage = Image
11
- // @ts-ignore
11
+ // @ts-expect-error
12
12
  global.nodeCreateCanvas = createCanvas
13
13
 
14
14
  test('several features', async () => {
@@ -43,7 +43,7 @@ test('several features', async () => {
43
43
  }
44
44
 
45
45
  const res = await renderToAbstractCanvas(1000, 200, renderProps, ctx =>
46
- // @ts-ignore
46
+ // @ts-expect-error
47
47
  renderer.draw(ctx, renderProps),
48
48
  )
49
49
  expect(res).toMatchSnapshot({
@@ -2,7 +2,6 @@ import ReactComponent from '../WiggleRendering'
2
2
  import PluginManager from '@jbrowse/core/PluginManager'
3
3
  import XYPlotRenderer from './XYPlotRenderer'
4
4
  import configSchema from './configSchema'
5
- export { XYPlotRenderer, configSchema, ReactComponent }
6
5
 
7
6
  export default (pluginManager: PluginManager) => {
8
7
  pluginManager.addRendererType(
@@ -15,3 +14,7 @@ export default (pluginManager: PluginManager) => {
15
14
  }),
16
15
  )
17
16
  }
17
+
18
+ export { default as XYPlotRenderer } from './XYPlotRenderer'
19
+ export { default as ReactComponent } from '../WiggleRendering'
20
+ export { default as configSchema } from './configSchema'
package/src/drawxy.ts CHANGED
@@ -277,7 +277,7 @@ export function drawLine(
277
277
 
278
278
  ctx.beginPath()
279
279
  ctx.strokeStyle = c
280
- const startPos = typeof lastVal !== 'undefined' ? lastVal : score
280
+ const startPos = lastVal !== undefined ? lastVal : score
281
281
  if (!region.reversed) {
282
282
  ctx.moveTo(leftPx, toY(startPos))
283
283
  ctx.lineTo(leftPx, toY(score))
@@ -341,13 +341,11 @@ export function drawDensity(
341
341
  })
342
342
 
343
343
  const scale2 = getScale({ ...scaleOpts, range: [0, height] })
344
- let cb
345
- if (color === '#f0f') {
346
- cb = (_feature: Feature, score: number) => scale(score)
347
- } else {
348
- cb = (feature: Feature, score: number) =>
349
- readConfObject(config, 'color', { feature, score })
350
- }
344
+ const cb =
345
+ color === '#f0f'
346
+ ? (_: Feature, score: number) => scale(score)
347
+ : (feature: Feature, score: number) =>
348
+ readConfObject(config, 'color', { feature, score })
351
349
  const [niceMin, niceMax] = scale2.domain()
352
350
 
353
351
  let prevLeftPx = -Infinity
package/src/index.ts CHANGED
@@ -9,7 +9,7 @@ import {
9
9
 
10
10
  // locals
11
11
  import WiggleBaseRenderer from './WiggleBaseRenderer'
12
- import WiggleRendering from './WiggleRendering'
12
+
13
13
  import BigWigAdapterF from './BigWigAdapter'
14
14
  import QuantitativeTrackF from './QuantitativeTrack'
15
15
  import MultiQuantitativeTrackF from './MultiQuantitativeTrack'
@@ -38,9 +38,8 @@ import {
38
38
  import {
39
39
  ReactComponent as LinearWiggleDisplayReactComponent,
40
40
  modelFactory as linearWiggleDisplayModelFactory,
41
- Tooltip,
42
41
  } from './LinearWiggleDisplay'
43
- import { TooltipContentsComponent } from './Tooltip'
42
+
44
43
  import {
45
44
  ReactComponent as XYPlotRendererReactComponent,
46
45
  configSchema as xyPlotRendererConfigSchema,
@@ -120,12 +119,12 @@ export default class WigglePlugin extends Plugin {
120
119
 
121
120
  export * from './util'
122
121
 
122
+ export { default as WiggleRendering } from './WiggleRendering'
123
123
  export {
124
- LinearWiggleDisplayReactComponent,
125
124
  Tooltip,
126
- WiggleRendering,
127
- WiggleBaseRenderer,
128
- linearWiggleDisplayModelFactory,
129
- }
125
+ ReactComponent as LinearWiggleDisplayReactComponent,
126
+ modelFactory as linearWiggleDisplayModelFactory,
127
+ } from './LinearWiggleDisplay'
128
+ export { type TooltipContentsComponent } from './Tooltip'
130
129
 
131
- export type { TooltipContentsComponent }
130
+ export { default as WiggleBaseRenderer } from './WiggleBaseRenderer'
@@ -0,0 +1,25 @@
1
+ import React from 'react'
2
+ import { useTheme } from '@mui/material'
3
+ import { observer } from 'mobx-react'
4
+ import { axisPropsFromTickScale, Axis, LEFT, RIGHT } from 'react-d3-axis-mod'
5
+
6
+ export default observer(function ({
7
+ model,
8
+ orientation,
9
+ }: {
10
+ model: { ticks?: ReturnType<typeof axisPropsFromTickScale> }
11
+ orientation?: string
12
+ }) {
13
+ const { ticks } = model
14
+ const theme = useTheme()
15
+ return ticks ? (
16
+ <Axis
17
+ {...ticks}
18
+ shadow={2}
19
+ format={(n: number) => n}
20
+ style={{ orient: orientation === 'left' ? LEFT : RIGHT }}
21
+ bg={theme.palette.background.default}
22
+ fg={theme.palette.text.primary}
23
+ />
24
+ ) : null
25
+ })
package/src/util.ts CHANGED
@@ -168,11 +168,12 @@ export function getNiceDomain({
168
168
  }
169
169
 
170
170
  export function groupBy<T>(array: T[], predicate: (v: T) => string) {
171
- return array.reduce((acc, value) => {
172
- const entry = (acc[predicate(value)] ||= [])
171
+ const result = {} as { [key: string]: T[] }
172
+ for (const value of array) {
173
+ const entry = (result[predicate(value)] ||= [])
173
174
  entry.push(value)
174
- return acc
175
- }, {} as { [key: string]: T[] })
175
+ }
176
+ return result
176
177
  }
177
178
 
178
179
  export async function getStats(
@@ -1,7 +0,0 @@
1
- /// <reference types="react" />
2
- import { WiggleDisplayModel } from '../models/model';
3
- declare const YScaleBar: ({ model, orientation, }: {
4
- model: WiggleDisplayModel;
5
- orientation?: string | undefined;
6
- }) => JSX.Element | null;
7
- export default YScaleBar;
@@ -1,14 +0,0 @@
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 react_1 = __importDefault(require("react"));
7
- const mobx_react_1 = require("mobx-react");
8
- const react_d3_axis_mod_1 = require("react-d3-axis-mod");
9
- const YScaleBar = (0, mobx_react_1.observer)(({ model, orientation, }) => {
10
- const { ticks } = model;
11
- return ticks ? (react_1.default.createElement(react_d3_axis_mod_1.Axis, { ...ticks, shadow: 2, format: (n) => n, style: { orient: orientation === 'left' ? react_d3_axis_mod_1.LEFT : react_d3_axis_mod_1.RIGHT } })) : null;
12
- });
13
- exports.default = YScaleBar;
14
- //# sourceMappingURL=YScaleBar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"YScaleBar.js","sourceRoot":"","sources":["../../../src/LinearWiggleDisplay/components/YScaleBar.tsx"],"names":[],"mappings":";;;;;AAAA,kDAAyB;AACzB,2CAAqC;AACrC,yDAAqD;AAGrD,MAAM,SAAS,GAAG,IAAA,qBAAQ,EACxB,CAAC,EACC,KAAK,EACL,WAAW,GAIZ,EAAE,EAAE;IACH,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA;IAEvB,OAAO,KAAK,CAAC,CAAC,CAAC,CACb,8BAAC,wBAAI,OACC,KAAK,EACT,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,EACxB,KAAK,EAAE,EAAE,MAAM,EAAE,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,wBAAI,CAAC,CAAC,CAAC,yBAAK,EAAE,GACxD,CACH,CAAC,CAAC,CAAC,IAAI,CAAA;AACV,CAAC,CACF,CAAA;AACD,kBAAe,SAAS,CAAA"}
@@ -1,7 +0,0 @@
1
- /// <reference types="react" />
2
- import { WiggleDisplayModel } from '../models/model';
3
- declare const YScaleBar: ({ model, orientation, }: {
4
- model: WiggleDisplayModel;
5
- orientation?: string | undefined;
6
- }) => JSX.Element | null;
7
- export default YScaleBar;
@@ -1 +0,0 @@
1
- {"version":3,"file":"YScaleBar.js","sourceRoot":"","sources":["../../../src/MultiLinearWiggleDisplay/components/YScaleBar.tsx"],"names":[],"mappings":";;;;;AAAA,kDAAyB;AACzB,2CAAqC;AACrC,yDAAqD;AAGrD,MAAM,SAAS,GAAG,IAAA,qBAAQ,EACxB,CAAC,EACC,KAAK,EACL,WAAW,GAIZ,EAAE,EAAE;IACH,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA;IACvB,OAAO,KAAK,CAAC,CAAC,CAAC,CACb,8BAAC,wBAAI,OACC,KAAK,EACT,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,EACxB,KAAK,EAAE,EAAE,MAAM,EAAE,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,wBAAI,CAAC,CAAC,CAAC,yBAAK,EAAE,GACxD,CACH,CAAC,CAAC,CAAC,IAAI,CAAA;AACV,CAAC,CACF,CAAA;AACD,kBAAe,SAAS,CAAA"}
@@ -1,7 +0,0 @@
1
- /// <reference types="react" />
2
- import { WiggleDisplayModel } from '../models/model';
3
- declare const YScaleBar: ({ model, orientation, }: {
4
- model: WiggleDisplayModel;
5
- orientation?: string | undefined;
6
- }) => JSX.Element | null;
7
- export default YScaleBar;
@@ -1 +0,0 @@
1
- {"version":3,"file":"YScaleBar.js","sourceRoot":"","sources":["../../../src/LinearWiggleDisplay/components/YScaleBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAGrD,MAAM,SAAS,GAAG,QAAQ,CACxB,CAAC,EACC,KAAK,EACL,WAAW,GAIZ,EAAE,EAAE;IACH,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA;IAEvB,OAAO,KAAK,CAAC,CAAC,CAAC,CACb,oBAAC,IAAI,OACC,KAAK,EACT,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,EACxB,KAAK,EAAE,EAAE,MAAM,EAAE,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,GACxD,CACH,CAAC,CAAC,CAAC,IAAI,CAAA;AACV,CAAC,CACF,CAAA;AACD,eAAe,SAAS,CAAA"}
@@ -1,7 +0,0 @@
1
- /// <reference types="react" />
2
- import { WiggleDisplayModel } from '../models/model';
3
- declare const YScaleBar: ({ model, orientation, }: {
4
- model: WiggleDisplayModel;
5
- orientation?: string | undefined;
6
- }) => JSX.Element | null;
7
- export default YScaleBar;
@@ -1,9 +0,0 @@
1
- import React from 'react';
2
- import { observer } from 'mobx-react';
3
- import { Axis, LEFT, RIGHT } from 'react-d3-axis-mod';
4
- const YScaleBar = observer(({ model, orientation, }) => {
5
- const { ticks } = model;
6
- return ticks ? (React.createElement(Axis, { ...ticks, shadow: 2, format: (n) => n, style: { orient: orientation === 'left' ? LEFT : RIGHT } })) : null;
7
- });
8
- export default YScaleBar;
9
- //# sourceMappingURL=YScaleBar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"YScaleBar.js","sourceRoot":"","sources":["../../../src/MultiLinearWiggleDisplay/components/YScaleBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAGrD,MAAM,SAAS,GAAG,QAAQ,CACxB,CAAC,EACC,KAAK,EACL,WAAW,GAIZ,EAAE,EAAE;IACH,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA;IACvB,OAAO,KAAK,CAAC,CAAC,CAAC,CACb,oBAAC,IAAI,OACC,KAAK,EACT,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,EACxB,KAAK,EAAE,EAAE,MAAM,EAAE,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,GACxD,CACH,CAAC,CAAC,CAAC,IAAI,CAAA;AACV,CAAC,CACF,CAAA;AACD,eAAe,SAAS,CAAA"}
@@ -1,26 +0,0 @@
1
- import React from 'react'
2
- import { observer } from 'mobx-react'
3
- import { Axis, LEFT, RIGHT } from 'react-d3-axis-mod'
4
- import { WiggleDisplayModel } from '../models/model'
5
-
6
- const YScaleBar = observer(
7
- ({
8
- model,
9
- orientation,
10
- }: {
11
- model: WiggleDisplayModel
12
- orientation?: string
13
- }) => {
14
- const { ticks } = model
15
-
16
- return ticks ? (
17
- <Axis
18
- {...ticks}
19
- shadow={2}
20
- format={(n: number) => n}
21
- style={{ orient: orientation === 'left' ? LEFT : RIGHT }}
22
- />
23
- ) : null
24
- },
25
- )
26
- export default YScaleBar
@@ -1,25 +0,0 @@
1
- import React from 'react'
2
- import { observer } from 'mobx-react'
3
- import { Axis, LEFT, RIGHT } from 'react-d3-axis-mod'
4
- import { WiggleDisplayModel } from '../models/model'
5
-
6
- const YScaleBar = observer(
7
- ({
8
- model,
9
- orientation,
10
- }: {
11
- model: WiggleDisplayModel
12
- orientation?: string
13
- }) => {
14
- const { ticks } = model
15
- return ticks ? (
16
- <Axis
17
- {...ticks}
18
- shadow={2}
19
- format={(n: number) => n}
20
- style={{ orient: orientation === 'left' ? LEFT : RIGHT }}
21
- />
22
- ) : null
23
- },
24
- )
25
- export default YScaleBar