@jbrowse/plugin-wiggle 2.4.0 → 2.4.2

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 (151) 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 +2 -1
  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 +27 -32
  17. package/dist/LinearWiggleDisplay/models/model.js +1 -6
  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 +1 -2
  31. package/dist/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.js +5 -4
  32. package/dist/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.js.map +1 -1
  33. package/dist/MultiLinearWiggleDisplay/models/model.d.ts +14 -22
  34. package/dist/MultiLinearWiggleDisplay/models/model.js +1 -6
  35. package/dist/MultiLinearWiggleDisplay/models/model.js.map +1 -1
  36. package/dist/MultiRowLineRenderer/MultiRowLineRenderer.js +2 -2
  37. package/dist/MultiRowLineRenderer/MultiRowLineRenderer.js.map +1 -1
  38. package/dist/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.js +2 -2
  39. package/dist/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.js.map +1 -1
  40. package/dist/MultiWiggleAdapter/MultiWiggleAdapter.d.ts +2 -1
  41. package/dist/MultiWiggleAdapter/MultiWiggleAdapter.js +2 -2
  42. package/dist/MultiWiggleAdapter/MultiWiggleAdapter.js.map +1 -1
  43. package/dist/MultiWiggleAddTrackWidget/AddTrackWorkflow.js +2 -2
  44. package/dist/MultiWiggleAddTrackWidget/AddTrackWorkflow.js.map +1 -1
  45. package/dist/MultiXYPlotRenderer/MultiXYPlotRenderer.js +5 -5
  46. package/dist/MultiXYPlotRenderer/MultiXYPlotRenderer.js.map +1 -1
  47. package/dist/WiggleBaseRenderer.d.ts +2 -2
  48. package/dist/WiggleBaseRenderer.js +1 -1
  49. package/dist/WiggleBaseRenderer.js.map +1 -1
  50. package/dist/WiggleRPC/rpcMethods.js +2 -2
  51. package/dist/WiggleRPC/rpcMethods.js.map +1 -1
  52. package/dist/XYPlotRenderer/index.d.ts +3 -4
  53. package/dist/XYPlotRenderer/index.js +7 -4
  54. package/dist/XYPlotRenderer/index.js.map +1 -1
  55. package/dist/drawxy.js +4 -8
  56. package/dist/drawxy.js.map +1 -1
  57. package/dist/index.d.ts +31 -47
  58. package/dist/index.js +9 -7
  59. package/dist/index.js.map +1 -1
  60. package/dist/util.js +6 -5
  61. package/dist/util.js.map +1 -1
  62. package/esm/BigWigAdapter/BigWigAdapter.js +5 -6
  63. package/esm/BigWigAdapter/BigWigAdapter.js.map +1 -1
  64. package/esm/CreateMultiWiggleExtension/ConfirmDialog.js +1 -1
  65. package/esm/CreateMultiWiggleExtension/ConfirmDialog.js.map +1 -1
  66. package/esm/CreateMultiWiggleExtension/index.js +1 -3
  67. package/esm/CreateMultiWiggleExtension/index.js.map +1 -1
  68. package/esm/LinearWiggleDisplay/components/Tooltip.d.ts +2 -2
  69. package/esm/LinearWiggleDisplay/components/Tooltip.js +1 -1
  70. package/esm/LinearWiggleDisplay/components/Tooltip.js.map +1 -1
  71. package/esm/LinearWiggleDisplay/components/WiggleDisplayComponent.d.ts +1 -2
  72. package/esm/LinearWiggleDisplay/components/WiggleDisplayComponent.js +1 -1
  73. package/esm/LinearWiggleDisplay/components/WiggleDisplayComponent.js.map +1 -1
  74. package/esm/LinearWiggleDisplay/index.d.ts +3 -4
  75. package/esm/LinearWiggleDisplay/index.js +3 -2
  76. package/esm/LinearWiggleDisplay/index.js.map +1 -1
  77. package/esm/LinearWiggleDisplay/models/model.d.ts +27 -32
  78. package/esm/LinearWiggleDisplay/models/model.js +1 -6
  79. package/esm/LinearWiggleDisplay/models/model.js.map +1 -1
  80. package/esm/MultiDensityRenderer/MultiDensityRenderer.js +2 -2
  81. package/esm/MultiDensityRenderer/MultiDensityRenderer.js.map +1 -1
  82. package/esm/MultiLineRenderer/MultiLineRenderer.js +2 -2
  83. package/esm/MultiLineRenderer/MultiLineRenderer.js.map +1 -1
  84. package/esm/MultiLinearWiggleDisplay/components/DraggableDialog.js +1 -1
  85. package/esm/MultiLinearWiggleDisplay/components/DraggableDialog.js.map +1 -1
  86. package/esm/MultiLinearWiggleDisplay/components/SetColorDialog.js +4 -4
  87. package/esm/MultiLinearWiggleDisplay/components/SetColorDialog.js.map +1 -1
  88. package/esm/MultiLinearWiggleDisplay/components/Tooltip.d.ts +2 -2
  89. package/esm/MultiLinearWiggleDisplay/components/Tooltip.js +1 -1
  90. package/esm/MultiLinearWiggleDisplay/components/Tooltip.js.map +1 -1
  91. package/esm/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.d.ts +1 -2
  92. package/esm/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.js +4 -4
  93. package/esm/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.js.map +1 -1
  94. package/esm/MultiLinearWiggleDisplay/models/model.d.ts +14 -22
  95. package/esm/MultiLinearWiggleDisplay/models/model.js +1 -6
  96. package/esm/MultiLinearWiggleDisplay/models/model.js.map +1 -1
  97. package/esm/MultiRowLineRenderer/MultiRowLineRenderer.js +2 -2
  98. package/esm/MultiRowLineRenderer/MultiRowLineRenderer.js.map +1 -1
  99. package/esm/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.js +2 -2
  100. package/esm/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.js.map +1 -1
  101. package/esm/MultiWiggleAdapter/MultiWiggleAdapter.d.ts +2 -1
  102. package/esm/MultiWiggleAdapter/MultiWiggleAdapter.js +2 -2
  103. package/esm/MultiWiggleAdapter/MultiWiggleAdapter.js.map +1 -1
  104. package/esm/MultiWiggleAddTrackWidget/AddTrackWorkflow.js +2 -2
  105. package/esm/MultiWiggleAddTrackWidget/AddTrackWorkflow.js.map +1 -1
  106. package/esm/MultiXYPlotRenderer/MultiXYPlotRenderer.js +5 -5
  107. package/esm/MultiXYPlotRenderer/MultiXYPlotRenderer.js.map +1 -1
  108. package/esm/WiggleBaseRenderer.d.ts +2 -2
  109. package/esm/WiggleBaseRenderer.js +1 -1
  110. package/esm/WiggleBaseRenderer.js.map +1 -1
  111. package/esm/WiggleRPC/rpcMethods.js +2 -2
  112. package/esm/WiggleRPC/rpcMethods.js.map +1 -1
  113. package/esm/XYPlotRenderer/index.d.ts +3 -4
  114. package/esm/XYPlotRenderer/index.js +3 -1
  115. package/esm/XYPlotRenderer/index.js.map +1 -1
  116. package/esm/drawxy.js +4 -8
  117. package/esm/drawxy.js.map +1 -1
  118. package/esm/index.d.ts +31 -47
  119. package/esm/index.js +4 -3
  120. package/esm/index.js.map +1 -1
  121. package/esm/util.js +6 -5
  122. package/esm/util.js.map +1 -1
  123. package/package.json +2 -2
  124. package/src/BigWigAdapter/BigWigAdapter.ts +5 -6
  125. package/src/CreateMultiWiggleExtension/ConfirmDialog.tsx +1 -1
  126. package/src/CreateMultiWiggleExtension/index.ts +1 -3
  127. package/src/DensityRenderer/DensityRenderer.test.ts +3 -3
  128. package/src/LinearWiggleDisplay/components/Tooltip.tsx +2 -1
  129. package/src/LinearWiggleDisplay/components/WiggleDisplayComponent.tsx +1 -1
  130. package/src/LinearWiggleDisplay/index.ts +3 -2
  131. package/src/LinearWiggleDisplay/models/model.tsx +1 -5
  132. package/src/MultiDensityRenderer/MultiDensityRenderer.ts +2 -2
  133. package/src/MultiLineRenderer/MultiLineRenderer.ts +2 -2
  134. package/src/MultiLinearWiggleDisplay/components/DraggableDialog.tsx +1 -1
  135. package/src/MultiLinearWiggleDisplay/components/SetColorDialog.tsx +4 -4
  136. package/src/MultiLinearWiggleDisplay/components/Tooltip.tsx +2 -1
  137. package/src/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.tsx +5 -5
  138. package/src/MultiLinearWiggleDisplay/models/model.tsx +1 -5
  139. package/src/MultiRowLineRenderer/MultiRowLineRenderer.ts +2 -2
  140. package/src/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.ts +2 -2
  141. package/src/MultiWiggleAdapter/MultiWiggleAdapter.ts +3 -2
  142. package/src/MultiWiggleAddTrackWidget/AddTrackWorkflow.tsx +2 -2
  143. package/src/MultiXYPlotRenderer/MultiXYPlotRenderer.ts +5 -5
  144. package/src/WiggleBaseRenderer.tsx +8 -12
  145. package/src/WiggleRPC/rpcMethods.ts +2 -2
  146. package/src/WiggleRendering.test.js +1 -1
  147. package/src/XYPlotRenderer/XYPlotRenderer.test.ts +3 -3
  148. package/src/XYPlotRenderer/index.ts +4 -1
  149. package/src/drawxy.ts +6 -8
  150. package/src/index.ts +8 -9
  151. package/src/util.ts +5 -4
@@ -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,
@@ -93,3 +82,10 @@ export default abstract class WiggleBaseRenderer extends FeatureRendererType {
93
82
  props: T,
94
83
  ): Promise<Record<string, unknown> | void>
95
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'
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(