@jbrowse/plugin-hic 3.6.5 → 4.0.0

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 (70) hide show
  1. package/esm/HicAdapter/HicAdapter.d.ts +9 -0
  2. package/esm/HicAdapter/HicAdapter.js +33 -2
  3. package/esm/HicAdapter/HicFilehandle.js +1 -0
  4. package/esm/HicAdapter/configSchema.d.ts +2 -2
  5. package/esm/HicAdapter/index.js +2 -2
  6. package/esm/HicRenderer/HicRenderer.d.ts +7 -36
  7. package/esm/HicRenderer/HicRenderer.js +19 -26
  8. package/esm/HicRenderer/components/HicColorLegend.d.ts +6 -0
  9. package/esm/HicRenderer/components/HicColorLegend.js +52 -0
  10. package/esm/HicRenderer/components/HicRendering.d.ts +1 -8
  11. package/esm/HicRenderer/components/HicRendering.js +3 -8
  12. package/esm/HicRenderer/configSchema.d.ts +2 -2
  13. package/esm/HicRenderer/index.js +4 -4
  14. package/esm/HicRenderer/makeImageData.d.ts +9 -2
  15. package/esm/HicRenderer/makeImageData.js +83 -58
  16. package/esm/HicRenderer/types.d.ts +7 -0
  17. package/esm/HicRenderer/types.js +1 -0
  18. package/esm/HicTrack/configSchema.d.ts +16 -11
  19. package/esm/HicTrack/index.js +1 -1
  20. package/esm/LinearHicDisplay/afterAttach.d.ts +2 -0
  21. package/esm/LinearHicDisplay/afterAttach.js +111 -0
  22. package/esm/LinearHicDisplay/components/BaseDisplayComponent.d.ts +2 -0
  23. package/esm/LinearHicDisplay/components/BaseDisplayComponent.js +1 -0
  24. package/esm/LinearHicDisplay/components/HicSVGColorLegend.d.ts +7 -0
  25. package/esm/LinearHicDisplay/components/HicSVGColorLegend.js +60 -0
  26. package/esm/LinearHicDisplay/components/ReactComponent.d.ts +5 -0
  27. package/esm/LinearHicDisplay/components/ReactComponent.js +83 -0
  28. package/esm/LinearHicDisplay/configSchema.d.ts +9 -4
  29. package/esm/LinearHicDisplay/configSchema.js +5 -0
  30. package/esm/LinearHicDisplay/index.js +4 -4
  31. package/esm/LinearHicDisplay/model.d.ts +180 -220
  32. package/esm/LinearHicDisplay/model.js +71 -34
  33. package/esm/LinearHicDisplay/renderSvg.d.ts +3 -0
  34. package/esm/LinearHicDisplay/renderSvg.js +32 -0
  35. package/esm/index.js +6 -9
  36. package/package.json +27 -32
  37. package/dist/GuessAdapter/index.d.ts +0 -2
  38. package/dist/GuessAdapter/index.js +0 -23
  39. package/dist/HicAdapter/HicAdapter.d.ts +0 -27
  40. package/dist/HicAdapter/HicAdapter.js +0 -63
  41. package/dist/HicAdapter/HicFilehandle.d.ts +0 -10
  42. package/dist/HicAdapter/HicFilehandle.js +0 -16
  43. package/dist/HicAdapter/configSchema.d.ts +0 -15
  44. package/dist/HicAdapter/configSchema.js +0 -32
  45. package/dist/HicAdapter/index.d.ts +0 -2
  46. package/dist/HicAdapter/index.js +0 -49
  47. package/dist/HicRenderer/HicRenderer.d.ts +0 -54
  48. package/dist/HicRenderer/HicRenderer.js +0 -87
  49. package/dist/HicRenderer/components/HicRendering.d.ts +0 -9
  50. package/dist/HicRenderer/components/HicRendering.js +0 -11
  51. package/dist/HicRenderer/configSchema.d.ts +0 -19
  52. package/dist/HicRenderer/configSchema.js +0 -23
  53. package/dist/HicRenderer/index.d.ts +0 -2
  54. package/dist/HicRenderer/index.js +0 -17
  55. package/dist/HicRenderer/makeImageData.d.ts +0 -11
  56. package/dist/HicRenderer/makeImageData.js +0 -81
  57. package/dist/HicRenderer/viridis.d.ts +0 -2
  58. package/dist/HicRenderer/viridis.js +0 -18
  59. package/dist/HicTrack/configSchema.d.ts +0 -80
  60. package/dist/HicTrack/configSchema.js +0 -9
  61. package/dist/HicTrack/index.d.ts +0 -2
  62. package/dist/HicTrack/index.js +0 -20
  63. package/dist/LinearHicDisplay/configSchema.d.ts +0 -35
  64. package/dist/LinearHicDisplay/configSchema.js +0 -14
  65. package/dist/LinearHicDisplay/index.d.ts +0 -2
  66. package/dist/LinearHicDisplay/index.js +0 -24
  67. package/dist/LinearHicDisplay/model.d.ts +0 -344
  68. package/dist/LinearHicDisplay/model.js +0 -205
  69. package/dist/index.d.ts +0 -7
  70. package/dist/index.js +0 -33
@@ -1,111 +1,49 @@
1
+ import type React from 'react';
2
+ import type { HicFlatbushItem } from '../HicRenderer/types.ts';
1
3
  import type { AnyConfigurationSchemaType } from '@jbrowse/core/configuration';
2
- export default function stateModelFactory(configSchema: AnyConfigurationSchemaType): import("mobx-state-tree").IModelType<{
3
- id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
4
- type: import("mobx-state-tree").ISimpleType<string>;
5
- rpcDriverName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
4
+ import type { Instance } from '@jbrowse/mobx-state-tree';
5
+ import type { ExportSvgDisplayOptions, LegendItem } from '@jbrowse/plugin-linear-genome-view';
6
+ export default function stateModelFactory(configSchema: AnyConfigurationSchemaType): import("@jbrowse/mobx-state-tree").IModelType<{
7
+ id: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
8
+ type: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
9
+ rpcDriverName: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
6
10
  } & {
7
- heightPreConfig: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
11
+ heightPreConfig: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<number>>;
8
12
  } & {
9
- userBpPerPxLimit: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
10
- userByteSizeLimit: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
13
+ userBpPerPxLimit: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<number>>;
14
+ userByteSizeLimit: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<number>>;
11
15
  } & {
12
- blockState: import("mobx-state-tree").IMapType<import("mobx-state-tree").IModelType<{
13
- key: import("mobx-state-tree").ISimpleType<string>;
14
- region: import("mobx-state-tree").IType<import("@jbrowse/core/util").Region, import("@jbrowse/core/util").Region, import("@jbrowse/core/util").Region>;
15
- reloadFlag: import("mobx-state-tree").IType<number | undefined, number, number>;
16
- isLeftEndOfDisplayedRegion: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
17
- isRightEndOfDisplayedRegion: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
18
- }, {
19
- stopToken: string | undefined;
20
- filled: boolean;
21
- reactElement: React.ReactElement | undefined;
22
- features: Map<string, import("@jbrowse/core/util").Feature> | undefined;
23
- layout: any;
24
- status: string;
25
- error: unknown;
26
- message: string | undefined;
27
- maxHeightReached: boolean;
28
- ReactComponent: ({ model, }: {
29
- model: {
30
- error?: unknown;
31
- reload: () => void;
32
- message: React.ReactNode;
33
- filled?: boolean;
34
- status?: string;
35
- reactElement?: React.ReactElement;
36
- };
37
- }) => import("react/jsx-runtime").JSX.Element | undefined;
38
- renderProps: any;
39
- } & {
40
- doReload(): void;
41
- afterAttach(): void;
42
- setStatus(message: string): void;
43
- setLoading(newStopToken: string): void;
44
- setMessage(messageText: string): void;
45
- setRendered(props: import("@jbrowse/plugin-linear-genome-view/src/BaseLinearDisplay/models/serverSideRenderedBlock").RenderedProps | undefined): void;
46
- setError(error: unknown): void;
47
- reload(): void;
48
- beforeDestroy(): void;
49
- }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
50
- configuration: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
51
- maxFeatureScreenDensity: {
52
- type: string;
53
- description: string;
54
- defaultValue: number;
55
- };
56
- fetchSizeLimit: {
57
- type: string;
58
- defaultValue: number;
59
- description: string;
60
- };
61
- height: {
62
- type: string;
63
- defaultValue: number;
64
- description: string;
65
- };
66
- mouseover: {
67
- type: string;
68
- description: string;
69
- defaultValue: string;
70
- contextVariable: string[];
71
- };
72
- jexlFilters: {
73
- type: string;
74
- description: string;
75
- defaultValue: never[];
76
- };
77
- }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, "displayId">>;
78
- } & {
79
- type: import("mobx-state-tree").ISimpleType<"LinearHicDisplay">;
16
+ type: import("@jbrowse/mobx-state-tree").ISimpleType<"LinearHicDisplay">;
80
17
  configuration: AnyConfigurationSchemaType;
81
- resolution: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<number>, [undefined]>;
82
- useLogScale: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
83
- colorScheme: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
84
- activeNormalization: import("mobx-state-tree").IType<string | undefined, string, string>;
85
- mode: import("mobx-state-tree").IType<string | undefined, string, string>;
18
+ resolution: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<number>, [undefined]>;
19
+ useLogScale: import("@jbrowse/mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
20
+ colorScheme: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
21
+ activeNormalization: import("@jbrowse/mobx-state-tree").IType<string | undefined, string, string>;
22
+ mode: import("@jbrowse/mobx-state-tree").IType<string | undefined, string, string>;
23
+ showLegend: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>>;
86
24
  }, {
87
25
  rendererTypeName: string;
88
26
  error: unknown;
89
- message: string | undefined;
27
+ statusMessage: string | undefined;
90
28
  } & {
91
29
  readonly RenderingComponent: React.FC<{
92
30
  model: {
93
31
  id: string;
94
32
  type: string;
95
33
  rpcDriverName: string | undefined;
96
- } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
34
+ } & import("@jbrowse/mobx-state-tree/dist/internal").NonEmptyObject & {
97
35
  rendererTypeName: string;
98
36
  error: unknown;
99
- message: string | undefined;
100
- } & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
101
- id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
102
- type: import("mobx-state-tree").ISimpleType<string>;
103
- rpcDriverName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
37
+ statusMessage: string | undefined;
38
+ } & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/mobx-state-tree").IModelType<{
39
+ id: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
40
+ type: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
41
+ rpcDriverName: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
104
42
  }, {
105
43
  rendererTypeName: string;
106
44
  error: unknown;
107
- message: string | undefined;
108
- }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
45
+ statusMessage: string | undefined;
46
+ }, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>;
109
47
  onHorizontalScroll?: () => void;
110
48
  blockState?: Record<string, any>;
111
49
  }>;
@@ -114,30 +52,142 @@ export default function stateModelFactory(configSchema: AnyConfigurationSchemaTy
114
52
  id: string;
115
53
  type: string;
116
54
  rpcDriverName: string | undefined;
117
- } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
55
+ } & import("@jbrowse/mobx-state-tree/dist/internal").NonEmptyObject & {
118
56
  rendererTypeName: string;
119
57
  error: unknown;
120
- message: string | undefined;
121
- } & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
122
- id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
123
- type: import("mobx-state-tree").ISimpleType<string>;
124
- rpcDriverName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
58
+ statusMessage: string | undefined;
59
+ } & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/mobx-state-tree").IModelType<{
60
+ id: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
61
+ type: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
62
+ rpcDriverName: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
125
63
  }, {
126
64
  rendererTypeName: string;
127
65
  error: unknown;
128
- message: string | undefined;
129
- }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
66
+ statusMessage: string | undefined;
67
+ }, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>;
130
68
  }> | null;
131
69
  readonly adapterConfig: any;
132
- readonly parentTrack: any;
70
+ readonly parentTrack: import("@jbrowse/core/util").AbstractTrackModel;
71
+ readonly parentDisplay: any;
72
+ readonly effectiveRpcDriverName: any;
73
+ } & {
133
74
  renderProps(): any;
75
+ renderingProps(): {
76
+ displayModel: {
77
+ id: string;
78
+ type: string;
79
+ rpcDriverName: string | undefined;
80
+ } & import("@jbrowse/mobx-state-tree/dist/internal").NonEmptyObject & {
81
+ rendererTypeName: string;
82
+ error: unknown;
83
+ statusMessage: string | undefined;
84
+ } & {
85
+ readonly RenderingComponent: React.FC<{
86
+ model: {
87
+ id: string;
88
+ type: string;
89
+ rpcDriverName: string | undefined;
90
+ } & import("@jbrowse/mobx-state-tree/dist/internal").NonEmptyObject & {
91
+ rendererTypeName: string;
92
+ error: unknown;
93
+ statusMessage: string | undefined;
94
+ } & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/mobx-state-tree").IModelType<{
95
+ id: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
96
+ type: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
97
+ rpcDriverName: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
98
+ }, {
99
+ rendererTypeName: string;
100
+ error: unknown;
101
+ statusMessage: string | undefined;
102
+ }, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>;
103
+ onHorizontalScroll?: () => void;
104
+ blockState?: Record<string, any>;
105
+ }>;
106
+ readonly DisplayBlurb: React.FC<{
107
+ model: {
108
+ id: string;
109
+ type: string;
110
+ rpcDriverName: string | undefined;
111
+ } & import("@jbrowse/mobx-state-tree/dist/internal").NonEmptyObject & {
112
+ rendererTypeName: string;
113
+ error: unknown;
114
+ statusMessage: string | undefined;
115
+ } & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/mobx-state-tree").IModelType<{
116
+ id: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
117
+ type: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
118
+ rpcDriverName: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
119
+ }, {
120
+ rendererTypeName: string;
121
+ error: unknown;
122
+ statusMessage: string | undefined;
123
+ }, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>;
124
+ }> | null;
125
+ readonly adapterConfig: any;
126
+ readonly parentTrack: import("@jbrowse/core/util").AbstractTrackModel;
127
+ readonly parentDisplay: any;
128
+ readonly effectiveRpcDriverName: any;
129
+ } & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/mobx-state-tree").IModelType<{
130
+ id: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
131
+ type: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
132
+ rpcDriverName: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
133
+ }, {
134
+ rendererTypeName: string;
135
+ error: unknown;
136
+ statusMessage: string | undefined;
137
+ } & {
138
+ readonly RenderingComponent: React.FC<{
139
+ model: {
140
+ id: string;
141
+ type: string;
142
+ rpcDriverName: string | undefined;
143
+ } & import("@jbrowse/mobx-state-tree/dist/internal").NonEmptyObject & {
144
+ rendererTypeName: string;
145
+ error: unknown;
146
+ statusMessage: string | undefined;
147
+ } & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/mobx-state-tree").IModelType<{
148
+ id: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
149
+ type: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
150
+ rpcDriverName: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
151
+ }, {
152
+ rendererTypeName: string;
153
+ error: unknown;
154
+ statusMessage: string | undefined;
155
+ }, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>;
156
+ onHorizontalScroll?: () => void;
157
+ blockState?: Record<string, any>;
158
+ }>;
159
+ readonly DisplayBlurb: React.FC<{
160
+ model: {
161
+ id: string;
162
+ type: string;
163
+ rpcDriverName: string | undefined;
164
+ } & import("@jbrowse/mobx-state-tree/dist/internal").NonEmptyObject & {
165
+ rendererTypeName: string;
166
+ error: unknown;
167
+ statusMessage: string | undefined;
168
+ } & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/mobx-state-tree").IModelType<{
169
+ id: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
170
+ type: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
171
+ rpcDriverName: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
172
+ }, {
173
+ rendererTypeName: string;
174
+ error: unknown;
175
+ statusMessage: string | undefined;
176
+ }, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>;
177
+ }> | null;
178
+ readonly adapterConfig: any;
179
+ readonly parentTrack: import("@jbrowse/core/util").AbstractTrackModel;
180
+ readonly parentDisplay: any;
181
+ readonly effectiveRpcDriverName: any;
182
+ }, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>;
183
+ };
134
184
  readonly rendererType: import("@jbrowse/core/pluggableElementTypes").RendererType;
135
185
  readonly DisplayMessageComponent: undefined | React.FC<any>;
136
186
  trackMenuItems(): import("@jbrowse/core/ui").MenuItem[];
137
187
  readonly viewMenuActions: import("@jbrowse/core/ui").MenuItem[];
138
188
  regionCannotBeRendered(): null;
139
189
  } & {
140
- setMessage(arg?: string): void;
190
+ setStatusMessage(arg?: string): void;
141
191
  setError(error?: unknown): void;
142
192
  setRpcDriverName(rpcDriverName: string): void;
143
193
  reload(): void;
@@ -172,62 +222,55 @@ export default function stateModelFactory(configSchema: AnyConfigurationSchemaTy
172
222
  readonly regionTooLarge: boolean;
173
223
  readonly regionTooLargeReason: string;
174
224
  } & {
175
- readonly statsReadyAndRegionNotTooLarge: boolean;
225
+ readonly featureDensityStatsReadyAndRegionNotTooLarge: boolean;
176
226
  regionCannotBeRenderedText(_region: import("@jbrowse/core/util").Region): "" | "Force load to see features";
177
227
  regionCannotBeRendered(_region: import("@jbrowse/core/util").Region): import("react/jsx-runtime").JSX.Element | null;
178
228
  } & {
179
- featureIdUnderMouse: undefined | string;
180
- contextMenuFeature: undefined | import("@jbrowse/core/util").Feature;
181
- } & {
182
- readonly DisplayMessageComponent: undefined | React.FC<any>;
183
- readonly blockType: "staticBlocks" | "dynamicBlocks";
184
- readonly blockDefinitions: import("@jbrowse/core/util/blockTypes").BlockSet;
185
- } & {
186
- readonly renderDelay: number;
187
- readonly TooltipComponent: import("@jbrowse/core/util").AnyReactComponentType;
188
- readonly selectedFeatureId: string | undefined;
189
- copyInfoToClipboard(feature: import("@jbrowse/core/util").Feature): void;
229
+ loading: boolean;
230
+ lastDrawnOffsetPx: number | undefined;
231
+ ref: HTMLCanvasElement | null;
232
+ renderingImageData: ImageBitmap | undefined;
233
+ renderingStopToken: import("@jbrowse/core/util").StopToken | undefined;
234
+ statusMessage: string | undefined;
190
235
  } & {
191
- readonly features: import("@jbrowse/core/util/compositeMap").default<string, import("@jbrowse/core/util").Feature>;
192
- readonly featureUnderMouse: import("@jbrowse/core/util").Feature | undefined;
193
- getFeatureOverlapping(blockKey: string, x: number, y: number): string | undefined;
194
- getFeatureByID(blockKey: string, id: string): [number, number, number, number] | undefined;
195
- searchFeatureByID(id: string): [number, number, number, number] | undefined;
236
+ readonly drawn: boolean;
196
237
  } & {
197
- addBlock(key: string, block: import("@jbrowse/core/util/blockTypes").BaseBlock): void;
198
- deleteBlock(key: string): void;
199
- selectFeature(feature: import("@jbrowse/core/util").Feature): void;
200
- navToFeature(feature: import("@jbrowse/core/util").Feature): void;
201
- clearFeatureSelection(): void;
202
- setFeatureIdUnderMouse(feature?: string): void;
203
- setContextMenuFeature(feature?: import("@jbrowse/core/util").Feature): void;
238
+ setLastDrawnOffsetPx(n: number): void;
239
+ setLoading(f: boolean): void;
240
+ setRef(ref: HTMLCanvasElement | null): void;
241
+ setRenderingImageData(imageData: ImageBitmap | undefined): void;
242
+ setRenderingStopToken(token?: import("@jbrowse/core/util").StopToken): void;
243
+ setStatusMessage(msg?: string): void;
204
244
  } & {
205
- reload(): Promise<void>;
206
- } & {
207
- trackMenuItems(): import("@jbrowse/core/ui").MenuItem[];
208
- contextMenuItems(): import("@jbrowse/core/ui").MenuItem[];
209
- renderProps(): any;
210
- } & {
211
- renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react/jsx-runtime").JSX.Element>;
212
- afterAttach(): void;
245
+ beforeDestroy(): void;
213
246
  } & {
214
247
  availableNormalizations: string[] | undefined;
248
+ flatbush: ArrayBufferLike | undefined;
249
+ flatbushItems: HicFlatbushItem[];
250
+ maxScore: number;
251
+ yScalar: number;
215
252
  } & {
216
- readonly blockType: string;
217
253
  readonly rendererTypeName: string;
254
+ readonly rendererConfig: any;
255
+ } & {
218
256
  renderProps(): any;
257
+ legendItems(): LegendItem[];
258
+ svgLegendWidth(): number;
219
259
  } & {
260
+ setFlatbushData(flatbush: ArrayBufferLike | undefined, items: HicFlatbushItem[], maxScore: number, yScalar: number): void;
261
+ reload(): void;
220
262
  setResolution(n: number): void;
221
263
  setUseLogScale(f: boolean): void;
222
264
  setColorScheme(f?: string): void;
223
265
  setActiveNormalization(f: string): void;
224
266
  setAvailableNormalizations(f: string[]): void;
225
267
  setMode(arg: string): void;
268
+ setShowLegend(arg: boolean): void;
226
269
  } & {
227
270
  trackMenuItems(): (import("@jbrowse/core/ui").MenuDivider | import("@jbrowse/core/ui").MenuSubHeader | import("@jbrowse/core/ui").NormalMenuItem | import("@jbrowse/core/ui").CheckboxMenuItem | import("@jbrowse/core/ui").RadioMenuItem | import("@jbrowse/core/ui").SubMenuItem | {
228
271
  label: string;
229
272
  type: string;
230
- checked: boolean;
273
+ checked: boolean | undefined;
231
274
  onClick: () => void;
232
275
  subMenu?: undefined;
233
276
  } | {
@@ -253,92 +296,9 @@ export default function stateModelFactory(configSchema: AnyConfigurationSchemaTy
253
296
  checked?: undefined;
254
297
  onClick?: undefined;
255
298
  })[];
299
+ renderSvg(opts: ExportSvgDisplayOptions): Promise<React.ReactNode>;
256
300
  } & {
257
301
  afterAttach(): void;
258
- }, {
259
- type: string;
260
- } & Partial<import("mobx-state-tree/dist/internal").ExtractCFromProps<{
261
- id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
262
- type: import("mobx-state-tree").ISimpleType<string>;
263
- rpcDriverName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
264
- } & {
265
- heightPreConfig: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
266
- } & {
267
- userBpPerPxLimit: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
268
- userByteSizeLimit: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
269
- } & {
270
- blockState: import("mobx-state-tree").IMapType<import("mobx-state-tree").IModelType<{
271
- key: import("mobx-state-tree").ISimpleType<string>;
272
- region: import("mobx-state-tree").IType<import("@jbrowse/core/util").Region, import("@jbrowse/core/util").Region, import("@jbrowse/core/util").Region>;
273
- reloadFlag: import("mobx-state-tree").IType<number | undefined, number, number>;
274
- isLeftEndOfDisplayedRegion: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
275
- isRightEndOfDisplayedRegion: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
276
- }, {
277
- stopToken: string | undefined;
278
- filled: boolean;
279
- reactElement: React.ReactElement | undefined;
280
- features: Map<string, import("@jbrowse/core/util").Feature> | undefined;
281
- layout: any;
282
- status: string;
283
- error: unknown;
284
- message: string | undefined;
285
- maxHeightReached: boolean;
286
- ReactComponent: ({ model, }: {
287
- model: {
288
- error?: unknown;
289
- reload: () => void;
290
- message: React.ReactNode;
291
- filled?: boolean;
292
- status?: string;
293
- reactElement?: React.ReactElement;
294
- };
295
- }) => import("react/jsx-runtime").JSX.Element | undefined;
296
- renderProps: any;
297
- } & {
298
- doReload(): void;
299
- afterAttach(): void;
300
- setStatus(message: string): void;
301
- setLoading(newStopToken: string): void;
302
- setMessage(messageText: string): void;
303
- setRendered(props: import("@jbrowse/plugin-linear-genome-view/src/BaseLinearDisplay/models/serverSideRenderedBlock").RenderedProps | undefined): void;
304
- setError(error: unknown): void;
305
- reload(): void;
306
- beforeDestroy(): void;
307
- }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
308
- configuration: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
309
- maxFeatureScreenDensity: {
310
- type: string;
311
- description: string;
312
- defaultValue: number;
313
- };
314
- fetchSizeLimit: {
315
- type: string;
316
- defaultValue: number;
317
- description: string;
318
- };
319
- height: {
320
- type: string;
321
- defaultValue: number;
322
- description: string;
323
- };
324
- mouseover: {
325
- type: string;
326
- description: string;
327
- defaultValue: string;
328
- contextVariable: string[];
329
- };
330
- jexlFilters: {
331
- type: string;
332
- description: string;
333
- defaultValue: never[];
334
- };
335
- }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, "displayId">>;
336
- }>> & import("mobx-state-tree/dist/internal").NonEmptyObject & import("mobx-state-tree")._NotCustomized, {
337
- type: string;
338
- id: string;
339
- configuration: import("mobx-state-tree").ModelSnapshotType<Record<string, any>>;
340
- rpcDriverName: string | undefined;
341
- heightPreConfig: number | undefined;
342
- userBpPerPxLimit: number | undefined;
343
- userByteSizeLimit: number | undefined;
344
- } & import("mobx-state-tree")._NotCustomized>;
302
+ }, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>;
303
+ export type LinearHicDisplayStateModel = ReturnType<typeof stateModelFactory>;
304
+ export type LinearHicDisplayModel = Instance<LinearHicDisplayStateModel>;
@@ -1,12 +1,11 @@
1
1
  import { ConfigurationReference, getConf } from '@jbrowse/core/configuration';
2
- import { getContainingTrack, getSession } from '@jbrowse/core/util';
3
- import { BaseLinearDisplay } from '@jbrowse/plugin-linear-genome-view';
4
- import { autorun } from 'mobx';
5
- import { addDisposer, getEnv, types } from 'mobx-state-tree';
2
+ import { BaseDisplay } from '@jbrowse/core/pluggableElementTypes';
3
+ import { types } from '@jbrowse/mobx-state-tree';
4
+ import { FeatureDensityMixin, NonBlockCanvasDisplayMixin, TrackHeightMixin, } from '@jbrowse/plugin-linear-genome-view';
6
5
  function x() { }
7
6
  export default function stateModelFactory(configSchema) {
8
7
  return types
9
- .compose('LinearHicDisplay', BaseLinearDisplay, types.model({
8
+ .compose('LinearHicDisplay', BaseDisplay, TrackHeightMixin(), FeatureDensityMixin(), NonBlockCanvasDisplayMixin(), types.model({
10
9
  type: types.literal('LinearHicDisplay'),
11
10
  configuration: ConfigurationReference(configSchema),
12
11
  resolution: types.optional(types.number, 1),
@@ -14,41 +13,70 @@ export default function stateModelFactory(configSchema) {
14
13
  colorScheme: types.maybe(types.string),
15
14
  activeNormalization: 'KR',
16
15
  mode: 'triangular',
16
+ showLegend: types.maybe(types.boolean),
17
17
  }))
18
18
  .volatile(() => ({
19
19
  availableNormalizations: undefined,
20
+ flatbush: undefined,
21
+ flatbushItems: [],
22
+ maxScore: 0,
23
+ yScalar: 1,
24
+ }))
25
+ .views(self => ({
26
+ get rendererTypeName() {
27
+ return 'HicRenderer';
28
+ },
29
+ get rendererConfig() {
30
+ return {
31
+ ...getConf(self, 'renderer'),
32
+ ...(self.colorScheme
33
+ ? { color: 'jexl:interpolate(count,scale)' }
34
+ : {}),
35
+ };
36
+ },
20
37
  }))
21
38
  .views(self => {
22
39
  const { renderProps: superRenderProps } = self;
23
40
  return {
24
- get blockType() {
25
- return 'dynamicBlocks';
26
- },
27
- get rendererTypeName() {
28
- return 'HicRenderer';
29
- },
30
41
  renderProps() {
31
- const config = self.rendererType.configSchema.create({
32
- ...getConf(self, 'renderer'),
33
- ...(self.colorScheme
34
- ? { color: 'jexl:interpolate(count,scale)' }
35
- : {}),
36
- }, getEnv(self));
37
42
  return {
38
43
  ...superRenderProps(),
39
- config,
40
- displayHeight: self.mode === 'adjust' ? self.height : undefined,
41
- normalization: self.activeNormalization,
42
- rpcDriverName: self.rpcDriverName,
43
- displayModel: self,
44
+ config: self.rendererConfig,
44
45
  resolution: self.resolution,
45
46
  useLogScale: self.useLogScale,
46
47
  colorScheme: self.colorScheme,
48
+ normalization: self.activeNormalization,
49
+ displayHeight: self.mode === 'adjust' ? self.height : undefined,
47
50
  };
48
51
  },
52
+ legendItems() {
53
+ const colorScheme = self.colorScheme ?? 'juicebox';
54
+ const displayMax = self.useLogScale
55
+ ? self.maxScore
56
+ : Math.round(self.maxScore / 20);
57
+ const minLabel = self.useLogScale ? '1' : '0';
58
+ const maxLabel = `${displayMax.toLocaleString()}${self.useLogScale ? ' (log)' : ''}`;
59
+ return [
60
+ {
61
+ label: `${minLabel} - ${maxLabel} (${colorScheme})`,
62
+ },
63
+ ];
64
+ },
65
+ svgLegendWidth() {
66
+ return self.showLegend && self.maxScore > 0 ? 140 : 0;
67
+ },
49
68
  };
50
69
  })
51
70
  .actions(self => ({
71
+ setFlatbushData(flatbush, items, maxScore, yScalar) {
72
+ self.flatbush = flatbush;
73
+ self.flatbushItems = items;
74
+ self.maxScore = maxScore;
75
+ self.yScalar = yScalar;
76
+ },
77
+ reload() {
78
+ self.error = undefined;
79
+ },
52
80
  setResolution(n) {
53
81
  self.resolution = n;
54
82
  },
@@ -67,6 +95,9 @@ export default function stateModelFactory(configSchema) {
67
95
  setMode(arg) {
68
96
  self.mode = arg;
69
97
  },
98
+ setShowLegend(arg) {
99
+ self.showLegend = arg;
100
+ },
70
101
  }))
71
102
  .views(self => {
72
103
  const { trackMenuItems: superTrackMenuItems } = self;
@@ -82,6 +113,14 @@ export default function stateModelFactory(configSchema) {
82
113
  self.setUseLogScale(!self.useLogScale);
83
114
  },
84
115
  },
116
+ {
117
+ label: 'Show legend',
118
+ type: 'checkbox',
119
+ checked: self.showLegend,
120
+ onClick: () => {
121
+ self.setShowLegend(!self.showLegend);
122
+ },
123
+ },
85
124
  {
86
125
  label: 'Rendering mode',
87
126
  type: 'subMenu',
@@ -176,27 +215,25 @@ export default function stateModelFactory(configSchema) {
176
215
  : []),
177
216
  ];
178
217
  },
218
+ async renderSvg(opts) {
219
+ const { renderSvg } = await import("./renderSvg.js");
220
+ return renderSvg(self, opts);
221
+ },
179
222
  };
180
223
  })
181
224
  .actions(self => ({
182
225
  afterAttach() {
183
- addDisposer(self, autorun(async () => {
226
+ ;
227
+ (async () => {
184
228
  try {
185
- const { rpcManager } = getSession(self);
186
- const track = getContainingTrack(self);
187
- const adapterConfig = getConf(track, 'adapter');
188
- const { norms } = (await rpcManager.call(getConf(track, 'trackId'), 'CoreGetInfo', {
189
- adapterConfig,
190
- }));
191
- if (norms) {
192
- self.setAvailableNormalizations(norms);
193
- }
229
+ const { doAfterAttach } = await import("./afterAttach.js");
230
+ doAfterAttach(self);
194
231
  }
195
232
  catch (e) {
196
233
  console.error(e);
197
- getSession(self).notifyError(`${e}`, e);
234
+ self.setError(e);
198
235
  }
199
- }));
236
+ })();
200
237
  },
201
238
  }));
202
239
  }
@@ -0,0 +1,3 @@
1
+ import type { LinearHicDisplayModel } from './model.ts';
2
+ import type { ExportSvgDisplayOptions } from '@jbrowse/plugin-linear-genome-view';
3
+ export declare function renderSvg(self: LinearHicDisplayModel, opts: ExportSvgDisplayOptions): Promise<import("react/jsx-runtime").JSX.Element | null>;