jbrowse-plugin-mafviewer 1.0.6 → 1.0.8

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 (103) hide show
  1. package/README.md +17 -2
  2. package/dist/BigMafAdapter/BigMafAdapter.d.ts +17 -0
  3. package/dist/BigMafAdapter/BigMafAdapter.js +92 -0
  4. package/dist/BigMafAdapter/BigMafAdapter.js.map +1 -0
  5. package/dist/BigMafAdapter/configSchema.d.ts +21 -0
  6. package/dist/BigMafAdapter/configSchema.js +28 -0
  7. package/dist/BigMafAdapter/configSchema.js.map +1 -0
  8. package/dist/BigMafAdapter/index.d.ts +2 -0
  9. package/dist/BigMafAdapter/index.js +11 -0
  10. package/dist/BigMafAdapter/index.js.map +1 -0
  11. package/dist/LinearMafDisplay/components/ColorLegend.d.ts +8 -0
  12. package/dist/LinearMafDisplay/components/ColorLegend.js +15 -0
  13. package/dist/LinearMafDisplay/components/ColorLegend.js.map +1 -0
  14. package/dist/LinearMafDisplay/components/ReactComponent.d.ts +6 -0
  15. package/dist/LinearMafDisplay/components/ReactComponent.js +15 -0
  16. package/dist/LinearMafDisplay/components/ReactComponent.js.map +1 -0
  17. package/dist/LinearMafDisplay/components/RectBg.d.ts +9 -0
  18. package/dist/LinearMafDisplay/components/RectBg.js +7 -0
  19. package/dist/LinearMafDisplay/components/RectBg.js.map +1 -0
  20. package/dist/LinearMafDisplay/components/SetRowHeight.d.ts +11 -0
  21. package/dist/LinearMafDisplay/components/SetRowHeight.js +36 -0
  22. package/dist/LinearMafDisplay/components/SetRowHeight.js.map +1 -0
  23. package/dist/LinearMafDisplay/components/YScaleBars.d.ts +9 -0
  24. package/dist/LinearMafDisplay/components/YScaleBars.js +41 -0
  25. package/dist/LinearMafDisplay/components/YScaleBars.js.map +1 -0
  26. package/dist/LinearMafDisplay/configSchema.d.ts +34 -0
  27. package/dist/LinearMafDisplay/configSchema.js +15 -0
  28. package/dist/LinearMafDisplay/configSchema.js.map +1 -0
  29. package/dist/LinearMafDisplay/index.d.ts +2 -0
  30. package/dist/LinearMafDisplay/index.js +20 -0
  31. package/dist/LinearMafDisplay/index.js.map +1 -0
  32. package/dist/LinearMafDisplay/renderSvg.d.ts +4 -0
  33. package/dist/LinearMafDisplay/renderSvg.js +17 -0
  34. package/dist/LinearMafDisplay/renderSvg.js.map +1 -0
  35. package/dist/LinearMafDisplay/stateModel.d.ts +364 -0
  36. package/dist/LinearMafDisplay/stateModel.js +176 -0
  37. package/dist/LinearMafDisplay/stateModel.js.map +1 -0
  38. package/dist/LinearMafRenderer/LinearMafRenderer.d.ts +45 -0
  39. package/dist/LinearMafRenderer/LinearMafRenderer.js +181 -0
  40. package/dist/LinearMafRenderer/LinearMafRenderer.js.map +1 -0
  41. package/dist/LinearMafRenderer/components/ReactComponent.d.ts +6 -0
  42. package/dist/LinearMafRenderer/components/ReactComponent.js +8 -0
  43. package/dist/LinearMafRenderer/components/ReactComponent.js.map +1 -0
  44. package/dist/LinearMafRenderer/configSchema.d.ts +2 -0
  45. package/dist/LinearMafRenderer/configSchema.js +13 -0
  46. package/dist/LinearMafRenderer/configSchema.js.map +1 -0
  47. package/dist/LinearMafRenderer/index.d.ts +2 -0
  48. package/dist/LinearMafRenderer/index.js +12 -0
  49. package/dist/LinearMafRenderer/index.js.map +1 -0
  50. package/dist/LinearMafRenderer/util.d.ts +10 -0
  51. package/dist/LinearMafRenderer/util.js +16 -0
  52. package/dist/LinearMafRenderer/util.js.map +1 -0
  53. package/dist/MafAddTrackWorkflow/AddTrackWorkflow.d.ts +5 -0
  54. package/dist/MafAddTrackWorkflow/AddTrackWorkflow.js +111 -0
  55. package/dist/MafAddTrackWorkflow/AddTrackWorkflow.js.map +1 -0
  56. package/dist/MafAddTrackWorkflow/index.d.ts +2 -0
  57. package/dist/MafAddTrackWorkflow/index.js +12 -0
  58. package/dist/MafAddTrackWorkflow/index.js.map +1 -0
  59. package/dist/MafTabixAdapter/MafTabixAdapter.d.ts +17 -0
  60. package/dist/MafTabixAdapter/MafTabixAdapter.js +96 -0
  61. package/dist/MafTabixAdapter/MafTabixAdapter.js.map +1 -0
  62. package/dist/MafTabixAdapter/configSchema.d.ts +33 -0
  63. package/dist/MafTabixAdapter/configSchema.js +40 -0
  64. package/dist/MafTabixAdapter/configSchema.js.map +1 -0
  65. package/dist/MafTabixAdapter/index.d.ts +2 -0
  66. package/dist/MafTabixAdapter/index.js +11 -0
  67. package/dist/MafTabixAdapter/index.js.map +1 -0
  68. package/dist/MafTrack/configSchema.d.ts +79 -0
  69. package/dist/MafTrack/configSchema.js +15 -0
  70. package/dist/MafTrack/configSchema.js.map +1 -0
  71. package/dist/MafTrack/index.d.ts +2 -0
  72. package/dist/MafTrack/index.js +14 -0
  73. package/dist/MafTrack/index.js.map +1 -0
  74. package/dist/TaffyAdapter/TaffyAdapter.d.ts +16 -0
  75. package/dist/TaffyAdapter/TaffyAdapter.js +89 -0
  76. package/dist/TaffyAdapter/TaffyAdapter.js.map +1 -0
  77. package/dist/TaffyAdapter/configSchema.d.ts +31 -0
  78. package/dist/TaffyAdapter/configSchema.js +38 -0
  79. package/dist/TaffyAdapter/configSchema.js.map +1 -0
  80. package/dist/TaffyAdapter/index.d.ts +2 -0
  81. package/dist/TaffyAdapter/index.js +11 -0
  82. package/dist/TaffyAdapter/index.js.map +1 -0
  83. package/dist/index.d.ts +8 -0
  84. package/dist/index.js +24 -0
  85. package/dist/index.js.map +1 -0
  86. package/dist/jbrowse-plugin-mafviewer.umd.production.min.js +4 -1
  87. package/dist/jbrowse-plugin-mafviewer.umd.production.min.js.map +7 -1
  88. package/package.json +21 -38
  89. package/src/BigMafAdapter/BigMafAdapter.ts +1 -2
  90. package/src/LinearMafDisplay/components/ColorLegend.tsx +2 -2
  91. package/src/LinearMafDisplay/components/SetRowHeight.tsx +9 -3
  92. package/src/LinearMafDisplay/components/YScaleBars.tsx +11 -3
  93. package/src/LinearMafDisplay/stateModel.ts +32 -2
  94. package/src/LinearMafRenderer/LinearMafRenderer.ts +38 -34
  95. package/src/LinearMafRenderer/util.ts +20 -0
  96. package/src/MafAddTrackWorkflow/AddTrackWorkflow.tsx +60 -22
  97. package/src/MafTabixAdapter/MafTabixAdapter.ts +2 -2
  98. package/src/TaffyAdapter/TaffyAdapter.ts +112 -0
  99. package/src/TaffyAdapter/configSchema.ts +44 -0
  100. package/src/TaffyAdapter/index.ts +15 -0
  101. package/src/index.ts +2 -0
  102. package/dist/jbrowse-plugin-mafviewer.umd.development.js +0 -1439
  103. package/dist/jbrowse-plugin-mafviewer.umd.development.js.map +0 -1
@@ -0,0 +1,364 @@
1
+ import { Instance } from 'mobx-state-tree';
2
+ import { AnyConfigurationModel, AnyConfigurationSchemaType } from '@jbrowse/core/configuration';
3
+ import PluginManager from '@jbrowse/core/PluginManager';
4
+ import { ExportSvgDisplayOptions } from '@jbrowse/plugin-linear-genome-view';
5
+ /**
6
+ * #stateModel LinearMafDisplay
7
+ * extends LinearBasicDisplay
8
+ */
9
+ export default function stateModelFactory(configSchema: AnyConfigurationSchemaType, pluginManager: PluginManager): import("mobx-state-tree").IModelType<{
10
+ id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
11
+ type: import("mobx-state-tree").ISimpleType<string>;
12
+ rpcDriverName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
13
+ } & {
14
+ heightPreConfig: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
15
+ } & {
16
+ userBpPerPxLimit: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
17
+ userByteSizeLimit: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
18
+ } & {
19
+ blockState: import("mobx-state-tree").IMapType<import("mobx-state-tree").IModelType<{
20
+ key: import("mobx-state-tree").ISimpleType<string>;
21
+ region: import("mobx-state-tree").IType<import("@jbrowse/core/util").Region, import("@jbrowse/core/util").Region, import("@jbrowse/core/util").Region>;
22
+ reloadFlag: import("mobx-state-tree").IType<number | undefined, number, number>;
23
+ isLeftEndOfDisplayedRegion: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
24
+ isRightEndOfDisplayedRegion: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
25
+ }, {
26
+ stopToken: string | undefined;
27
+ filled: boolean;
28
+ reactElement: React.ReactElement | undefined;
29
+ features: Map<string, import("@jbrowse/core/util").Feature> | undefined;
30
+ layout: any;
31
+ status: string;
32
+ error: unknown;
33
+ message: string | undefined;
34
+ maxHeightReached: boolean;
35
+ ReactComponent: ({ model, }: {
36
+ model: {
37
+ error?: unknown;
38
+ reload: () => void;
39
+ message: React.ReactNode;
40
+ filled?: boolean;
41
+ status?: string;
42
+ reactElement?: React.ReactElement;
43
+ };
44
+ }) => import("react").JSX.Element | undefined;
45
+ renderProps: any;
46
+ } & {
47
+ doReload(): void;
48
+ afterAttach(): void;
49
+ setStatus(message: string): void;
50
+ setLoading(newStopToken: string): void;
51
+ setMessage(messageText: string): void;
52
+ setRendered(props: import("@jbrowse/plugin-linear-genome-view/dist/BaseLinearDisplay/models/serverSideRenderedBlock").RenderedProps | undefined): void;
53
+ setError(error: unknown): void;
54
+ reload(): void;
55
+ beforeDestroy(): void;
56
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
57
+ configuration: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
58
+ maxFeatureScreenDensity: {
59
+ type: string;
60
+ description: string;
61
+ defaultValue: number;
62
+ };
63
+ fetchSizeLimit: {
64
+ type: string;
65
+ defaultValue: number;
66
+ description: string;
67
+ };
68
+ height: {
69
+ type: string;
70
+ defaultValue: number;
71
+ description: string;
72
+ };
73
+ mouseover: {
74
+ type: string;
75
+ description: string;
76
+ defaultValue: string;
77
+ contextVariable: string[];
78
+ };
79
+ jexlFilters: {
80
+ type: string;
81
+ description: string;
82
+ defaultValue: never[];
83
+ };
84
+ }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, "displayId">>;
85
+ } & {
86
+ type: import("mobx-state-tree").ISimpleType<"LinearMafDisplay">;
87
+ configuration: AnyConfigurationSchemaType;
88
+ rowHeight: import("mobx-state-tree").IType<number | undefined, number, number>;
89
+ rowProportion: import("mobx-state-tree").IType<number | undefined, number, number>;
90
+ showAllLetters: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
91
+ mismatchRendering: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
92
+ }, {
93
+ rendererTypeName: string;
94
+ error: unknown;
95
+ message: string | undefined;
96
+ } & {
97
+ readonly RenderingComponent: React.FC<{
98
+ model: {
99
+ id: string;
100
+ type: string;
101
+ rpcDriverName: string | undefined;
102
+ } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
103
+ rendererTypeName: string;
104
+ error: unknown;
105
+ message: string | undefined;
106
+ } & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
107
+ id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
108
+ type: import("mobx-state-tree").ISimpleType<string>;
109
+ rpcDriverName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
110
+ }, {
111
+ rendererTypeName: string;
112
+ error: unknown;
113
+ message: string | undefined;
114
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
115
+ onHorizontalScroll?: () => void;
116
+ blockState?: Record<string, any>;
117
+ }>;
118
+ readonly DisplayBlurb: React.FC<{
119
+ model: {
120
+ id: string;
121
+ type: string;
122
+ rpcDriverName: string | undefined;
123
+ } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
124
+ rendererTypeName: string;
125
+ error: unknown;
126
+ message: string | undefined;
127
+ } & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
128
+ id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
129
+ type: import("mobx-state-tree").ISimpleType<string>;
130
+ rpcDriverName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
131
+ }, {
132
+ rendererTypeName: string;
133
+ error: unknown;
134
+ message: string | undefined;
135
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
136
+ }> | null;
137
+ readonly adapterConfig: any;
138
+ readonly parentTrack: any;
139
+ renderProps(): any;
140
+ readonly rendererType: import("@jbrowse/core/pluggableElementTypes").RendererType;
141
+ readonly DisplayMessageComponent: undefined | React.FC<any>;
142
+ trackMenuItems(): import("@jbrowse/core/ui").MenuItem[];
143
+ readonly viewMenuActions: import("@jbrowse/core/ui").MenuItem[];
144
+ regionCannotBeRendered(): null;
145
+ } & {
146
+ setMessage(arg?: string): void;
147
+ setError(error?: unknown): void;
148
+ setRpcDriverName(rpcDriverName: string): void;
149
+ reload(): void;
150
+ } & {
151
+ scrollTop: number;
152
+ } & {
153
+ readonly height: number;
154
+ } & {
155
+ setScrollTop(scrollTop: number): void;
156
+ setHeight(displayHeight: number): number;
157
+ resizeHeight(distance: number): number;
158
+ } & {
159
+ featureDensityStatsP: undefined | Promise<import("@jbrowse/core/data_adapters/BaseAdapter").FeatureDensityStats>;
160
+ featureDensityStats: undefined | import("@jbrowse/core/data_adapters/BaseAdapter").FeatureDensityStats;
161
+ currStatsBpPerPx: number;
162
+ } & {
163
+ readonly currentBytesRequested: number;
164
+ readonly currentFeatureScreenDensity: number;
165
+ readonly maxFeatureScreenDensity: any;
166
+ readonly featureDensityStatsReady: boolean;
167
+ readonly maxAllowableBytes: number;
168
+ } & {
169
+ afterAttach(): void;
170
+ } & {
171
+ setCurrStatsBpPerPx(n: number): void;
172
+ setFeatureDensityStatsLimit(stats?: import("@jbrowse/core/data_adapters/BaseAdapter").FeatureDensityStats): void;
173
+ getFeatureDensityStats(): Promise<import("@jbrowse/core/data_adapters/BaseAdapter").FeatureDensityStats>;
174
+ setFeatureDensityStatsP(arg: any): void;
175
+ setFeatureDensityStats(featureDensityStats?: import("@jbrowse/core/data_adapters/BaseAdapter").FeatureDensityStats): void;
176
+ clearFeatureDensityStats(): void;
177
+ } & {
178
+ readonly regionTooLarge: boolean;
179
+ readonly regionTooLargeReason: string;
180
+ } & {
181
+ readonly statsReadyAndRegionNotTooLarge: boolean;
182
+ regionCannotBeRenderedText(_region: import("@jbrowse/core/util").Region): "" | "Force load to see features";
183
+ regionCannotBeRendered(_region: import("@jbrowse/core/util").Region): import("react").JSX.Element | null;
184
+ } & {
185
+ featureIdUnderMouse: undefined | string;
186
+ contextMenuFeature: undefined | import("@jbrowse/core/util").Feature;
187
+ } & {
188
+ readonly DisplayMessageComponent: import("react").FC<any> | undefined;
189
+ readonly blockType: "dynamicBlocks" | "staticBlocks";
190
+ readonly blockDefinitions: import("@jbrowse/core/util/blockTypes").BlockSet;
191
+ } & {
192
+ readonly renderDelay: number;
193
+ readonly TooltipComponent: import("@jbrowse/core/util").AnyReactComponentType;
194
+ readonly selectedFeatureId: string | undefined;
195
+ } & {
196
+ readonly features: import("@jbrowse/core/util/compositeMap").default<string, import("@jbrowse/core/util").Feature>;
197
+ readonly featureUnderMouse: import("@jbrowse/core/util").Feature | undefined;
198
+ getFeatureOverlapping(blockKey: string, x: number, y: number): string | undefined;
199
+ getFeatureByID(blockKey: string, id: string): [number, number, number, number] | undefined;
200
+ searchFeatureByID(id: string): [number, number, number, number] | undefined;
201
+ } & {
202
+ addBlock(key: string, block: import("@jbrowse/core/util/blockTypes").BaseBlock): void;
203
+ deleteBlock(key: string): void;
204
+ selectFeature(feature: import("@jbrowse/core/util").Feature): void;
205
+ navToFeature(feature: import("@jbrowse/core/util").Feature): void;
206
+ clearFeatureSelection(): void;
207
+ setFeatureIdUnderMouse(feature?: string): void;
208
+ setContextMenuFeature(feature?: import("@jbrowse/core/util").Feature): void;
209
+ } & {
210
+ reload(): Promise<void>;
211
+ } & {
212
+ trackMenuItems(): import("@jbrowse/core/ui").MenuItem[];
213
+ contextMenuItems(): import("@jbrowse/core/ui").MenuItem[];
214
+ renderProps(): any;
215
+ } & {
216
+ renderSvg(opts: import("@jbrowse/plugin-linear-genome-view/dist/BaseLinearDisplay").ExportSvgDisplayOptions): Promise<import("react").JSX.Element>;
217
+ afterAttach(): void;
218
+ } & {
219
+ /**
220
+ * #volatile
221
+ */
222
+ prefersOffset: boolean;
223
+ } & {
224
+ /**
225
+ * #action
226
+ */
227
+ setRowHeight(n: number): void;
228
+ /**
229
+ * #action
230
+ */
231
+ setRowProportion(n: number): void;
232
+ /**
233
+ * #action
234
+ */
235
+ setShowAllLetters(f: boolean): void;
236
+ /**
237
+ * #action
238
+ */
239
+ setMismatchRendering(f: boolean): void;
240
+ } & {
241
+ /**
242
+ * #getter
243
+ */
244
+ readonly samples: {
245
+ id: string;
246
+ label: string;
247
+ color?: string;
248
+ }[];
249
+ /**
250
+ * #getter
251
+ */
252
+ readonly rendererTypeName: string;
253
+ /**
254
+ * #getter
255
+ */
256
+ readonly rendererConfig: AnyConfigurationModel;
257
+ } & {
258
+ /**
259
+ * #method
260
+ */
261
+ renderProps(): any;
262
+ /**
263
+ * #method
264
+ */
265
+ 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 | {
266
+ label: string;
267
+ type: string;
268
+ checked: boolean;
269
+ onClick: () => void;
270
+ })[];
271
+ } & {
272
+ /**
273
+ * #action
274
+ */
275
+ renderSvg(opts: ExportSvgDisplayOptions): Promise<import("react").JSX.Element>;
276
+ }, {
277
+ type: string;
278
+ } & Partial<import("mobx-state-tree/dist/internal").ExtractCFromProps<{
279
+ id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
280
+ type: import("mobx-state-tree").ISimpleType<string>;
281
+ rpcDriverName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
282
+ } & {
283
+ heightPreConfig: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
284
+ } & {
285
+ userBpPerPxLimit: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
286
+ userByteSizeLimit: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
287
+ } & {
288
+ blockState: import("mobx-state-tree").IMapType<import("mobx-state-tree").IModelType<{
289
+ key: import("mobx-state-tree").ISimpleType<string>;
290
+ region: import("mobx-state-tree").IType<import("@jbrowse/core/util").Region, import("@jbrowse/core/util").Region, import("@jbrowse/core/util").Region>;
291
+ reloadFlag: import("mobx-state-tree").IType<number | undefined, number, number>;
292
+ isLeftEndOfDisplayedRegion: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
293
+ isRightEndOfDisplayedRegion: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
294
+ }, {
295
+ stopToken: string | undefined;
296
+ filled: boolean;
297
+ reactElement: React.ReactElement | undefined;
298
+ features: Map<string, import("@jbrowse/core/util").Feature> | undefined;
299
+ layout: any;
300
+ status: string;
301
+ error: unknown;
302
+ message: string | undefined;
303
+ maxHeightReached: boolean;
304
+ ReactComponent: ({ model, }: {
305
+ model: {
306
+ error?: unknown;
307
+ reload: () => void;
308
+ message: React.ReactNode;
309
+ filled?: boolean;
310
+ status?: string;
311
+ reactElement?: React.ReactElement;
312
+ };
313
+ }) => import("react").JSX.Element | undefined;
314
+ renderProps: any;
315
+ } & {
316
+ doReload(): void;
317
+ afterAttach(): void;
318
+ setStatus(message: string): void;
319
+ setLoading(newStopToken: string): void;
320
+ setMessage(messageText: string): void;
321
+ setRendered(props: import("@jbrowse/plugin-linear-genome-view/dist/BaseLinearDisplay/models/serverSideRenderedBlock").RenderedProps | undefined): void;
322
+ setError(error: unknown): void;
323
+ reload(): void;
324
+ beforeDestroy(): void;
325
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
326
+ configuration: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
327
+ maxFeatureScreenDensity: {
328
+ type: string;
329
+ description: string;
330
+ defaultValue: number;
331
+ };
332
+ fetchSizeLimit: {
333
+ type: string;
334
+ defaultValue: number;
335
+ description: string;
336
+ };
337
+ height: {
338
+ type: string;
339
+ defaultValue: number;
340
+ description: string;
341
+ };
342
+ mouseover: {
343
+ type: string;
344
+ description: string;
345
+ defaultValue: string;
346
+ contextVariable: string[];
347
+ };
348
+ jexlFilters: {
349
+ type: string;
350
+ description: string;
351
+ defaultValue: never[];
352
+ };
353
+ }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, "displayId">>;
354
+ }>> & import("mobx-state-tree/dist/internal").NonEmptyObject & import("mobx-state-tree")._NotCustomized, {
355
+ type: string;
356
+ id: string;
357
+ configuration: import("mobx-state-tree").ModelSnapshotType<Record<string, any>>;
358
+ rpcDriverName: string | undefined;
359
+ heightPreConfig: number | undefined;
360
+ userBpPerPxLimit: number | undefined;
361
+ userByteSizeLimit: number | undefined;
362
+ } & import("mobx-state-tree")._NotCustomized>;
363
+ export type LinearMafDisplayStateModel = ReturnType<typeof stateModelFactory>;
364
+ export type LinearMafDisplayModel = Instance<LinearMafDisplayStateModel>;
@@ -0,0 +1,176 @@
1
+ import { types } from 'mobx-state-tree';
2
+ import { ConfigurationReference, getConf, } from '@jbrowse/core/configuration';
3
+ import { getEnv, getSession } from '@jbrowse/core/util';
4
+ import SetRowHeightDialog from './components/SetRowHeight';
5
+ function isStrs(array) {
6
+ return typeof array[0] === 'string';
7
+ }
8
+ /**
9
+ * #stateModel LinearMafDisplay
10
+ * extends LinearBasicDisplay
11
+ */
12
+ export default function stateModelFactory(configSchema, pluginManager) {
13
+ const LinearGenomePlugin = pluginManager.getPlugin('LinearGenomeViewPlugin');
14
+ const { BaseLinearDisplay } = LinearGenomePlugin.exports;
15
+ return types
16
+ .compose('LinearMafDisplay', BaseLinearDisplay, types.model({
17
+ /**
18
+ * #property
19
+ */
20
+ type: types.literal('LinearMafDisplay'),
21
+ /**
22
+ * #property
23
+ */
24
+ configuration: ConfigurationReference(configSchema),
25
+ /**
26
+ * #property
27
+ */
28
+ rowHeight: 15,
29
+ /**
30
+ * #property
31
+ */
32
+ rowProportion: 0.8,
33
+ /**
34
+ * #property
35
+ */
36
+ showAllLetters: false,
37
+ /**
38
+ * #property
39
+ */
40
+ mismatchRendering: true,
41
+ }))
42
+ .volatile(() => ({
43
+ /**
44
+ * #volatile
45
+ */
46
+ prefersOffset: true,
47
+ }))
48
+ .actions(self => ({
49
+ /**
50
+ * #action
51
+ */
52
+ setRowHeight(n) {
53
+ self.rowHeight = n;
54
+ },
55
+ /**
56
+ * #action
57
+ */
58
+ setRowProportion(n) {
59
+ self.rowProportion = n;
60
+ },
61
+ /**
62
+ * #action
63
+ */
64
+ setShowAllLetters(f) {
65
+ self.showAllLetters = f;
66
+ },
67
+ /**
68
+ * #action
69
+ */
70
+ setMismatchRendering(f) {
71
+ self.mismatchRendering = f;
72
+ },
73
+ }))
74
+ .views(self => ({
75
+ /**
76
+ * #getter
77
+ */
78
+ get samples() {
79
+ const r = self.adapterConfig.samples;
80
+ return isStrs(r)
81
+ ? r.map(elt => ({ id: elt, label: elt, color: undefined }))
82
+ : r;
83
+ },
84
+ /**
85
+ * #getter
86
+ */
87
+ get rendererTypeName() {
88
+ return 'LinearMafRenderer';
89
+ },
90
+ /**
91
+ * #getter
92
+ */
93
+ get rendererConfig() {
94
+ const configBlob = getConf(self, ['renderer']) || {};
95
+ const config = configBlob;
96
+ return self.rendererType.configSchema.create({
97
+ ...config,
98
+ type: 'LinearMafRenderer',
99
+ }, getEnv(self));
100
+ },
101
+ }))
102
+ .views(self => {
103
+ const {
104
+ // eslint-disable-next-line @typescript-eslint/unbound-method
105
+ trackMenuItems: superTrackMenuItems,
106
+ // eslint-disable-next-line @typescript-eslint/unbound-method
107
+ renderProps: superRenderProps, } = self;
108
+ return {
109
+ /**
110
+ * #method
111
+ */
112
+ renderProps() {
113
+ const { showAllLetters, rendererConfig, samples, rowHeight, rowProportion, mismatchRendering, } = self;
114
+ return {
115
+ ...superRenderProps(),
116
+ config: rendererConfig,
117
+ samples,
118
+ rowHeight,
119
+ rowProportion,
120
+ showAllLetters,
121
+ mismatchRendering,
122
+ };
123
+ },
124
+ /**
125
+ * #method
126
+ */
127
+ trackMenuItems() {
128
+ return [
129
+ ...superTrackMenuItems(),
130
+ {
131
+ label: 'Set row height',
132
+ onClick: () => {
133
+ getSession(self).queueDialog(handleClose => [
134
+ SetRowHeightDialog,
135
+ {
136
+ model: self,
137
+ handleClose,
138
+ },
139
+ ]);
140
+ },
141
+ },
142
+ {
143
+ label: 'Show all letters',
144
+ type: 'checkbox',
145
+ checked: self.showAllLetters,
146
+ onClick: () => {
147
+ self.setShowAllLetters(!self.showAllLetters);
148
+ },
149
+ },
150
+ {
151
+ label: 'Draw mismatches as single color',
152
+ type: 'checkbox',
153
+ checked: !self.mismatchRendering,
154
+ onClick: () => {
155
+ self.setMismatchRendering(!self.mismatchRendering);
156
+ },
157
+ },
158
+ ];
159
+ },
160
+ };
161
+ })
162
+ .actions(self => {
163
+ // eslint-disable-next-line @typescript-eslint/unbound-method
164
+ const { renderSvg: superRenderSvg } = self;
165
+ return {
166
+ /**
167
+ * #action
168
+ */
169
+ async renderSvg(opts) {
170
+ const { renderSvg } = await import('./renderSvg');
171
+ return renderSvg(self, opts, superRenderSvg);
172
+ },
173
+ };
174
+ });
175
+ }
176
+ //# sourceMappingURL=stateModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stateModel.js","sourceRoot":"","sources":["../../src/LinearMafDisplay/stateModel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import { FeatureRendererType } from '@jbrowse/core/pluggableElementTypes';
2
+ import { RenderArgsDeserialized } from '@jbrowse/core/pluggableElementTypes/renderers/BoxRendererType';
3
+ import { Feature, Region } from '@jbrowse/core/util';
4
+ interface Sample {
5
+ id: string;
6
+ color?: string;
7
+ }
8
+ interface RenderArgs extends RenderArgsDeserialized {
9
+ samples: Sample[];
10
+ rowHeight: number;
11
+ rowProportion: number;
12
+ showAllLetters: boolean;
13
+ mismatchRendering: boolean;
14
+ }
15
+ export default class LinearMafRenderer extends FeatureRendererType {
16
+ getExpandedRegion(region: Region): {
17
+ start: number;
18
+ end: number;
19
+ refName: string;
20
+ reversed?: boolean | undefined;
21
+ assemblyName: string;
22
+ };
23
+ render(renderProps: RenderArgs): Promise<{
24
+ width: number;
25
+ height: number;
26
+ canvasRecordedData: any;
27
+ features: Map<string, Feature>;
28
+ reactElement?: import("react").ReactElement;
29
+ html?: string;
30
+ } | {
31
+ width: number;
32
+ height: number;
33
+ reactElement: React.JSX.Element;
34
+ features: Map<string, Feature>;
35
+ html?: string;
36
+ } | {
37
+ width: number;
38
+ height: number;
39
+ imageData: any;
40
+ features: Map<string, Feature>;
41
+ reactElement?: import("react").ReactElement;
42
+ html?: string;
43
+ }>;
44
+ }
45
+ export {};