@jbrowse/plugin-breakpoint-split-view 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 (99) hide show
  1. package/esm/BreakpointAlignmentsFeatureDetail/BreakpointAlignmentsFeatureDetail.js +1 -1
  2. package/esm/BreakpointAlignmentsFeatureDetail/index.js +2 -2
  3. package/esm/BreakpointGetFeatures/BreakpointGetFeatures.d.ts +51 -0
  4. package/esm/BreakpointGetFeatures/BreakpointGetFeatures.js +57 -0
  5. package/esm/BreakpointGetFeatures/index.d.ts +2 -0
  6. package/esm/BreakpointGetFeatures/index.js +4 -0
  7. package/esm/BreakpointSplitView/BreakpointSplitView.js +33 -47
  8. package/esm/BreakpointSplitView/components/AlignmentConnections.d.ts +2 -7
  9. package/esm/BreakpointSplitView/components/AlignmentConnections.js +20 -25
  10. package/esm/BreakpointSplitView/components/Breakends.d.ts +2 -7
  11. package/esm/BreakpointSplitView/components/Breakends.js +28 -59
  12. package/esm/BreakpointSplitView/components/BreakpointSplitView.d.ts +1 -1
  13. package/esm/BreakpointSplitView/components/BreakpointSplitView.js +19 -5
  14. package/esm/BreakpointSplitView/components/BreakpointSplitViewOverlay.d.ts +1 -1
  15. package/esm/BreakpointSplitView/components/BreakpointSplitViewOverlay.js +3 -3
  16. package/esm/BreakpointSplitView/components/ExportSvgDialog.d.ts +1 -1
  17. package/esm/BreakpointSplitView/components/ExportSvgDialog.js +5 -1
  18. package/esm/BreakpointSplitView/components/Header.d.ts +5 -0
  19. package/esm/BreakpointSplitView/components/Header.js +47 -0
  20. package/esm/BreakpointSplitView/components/HeaderSearchBoxes.d.ts +5 -0
  21. package/esm/BreakpointSplitView/components/HeaderSearchBoxes.js +22 -0
  22. package/esm/BreakpointSplitView/components/Overlay.d.ts +1 -1
  23. package/esm/BreakpointSplitView/components/Overlay.js +8 -11
  24. package/esm/BreakpointSplitView/components/PairedFeatures.d.ts +2 -7
  25. package/esm/BreakpointSplitView/components/PairedFeatures.js +22 -47
  26. package/esm/BreakpointSplitView/components/Rubberband.d.ts +6 -0
  27. package/esm/BreakpointSplitView/components/Rubberband.js +27 -0
  28. package/esm/BreakpointSplitView/components/RubberbandSpan.d.ts +15 -0
  29. package/esm/BreakpointSplitView/components/RubberbandSpan.js +30 -0
  30. package/esm/BreakpointSplitView/components/RubberbandTooltip.d.ts +5 -0
  31. package/esm/BreakpointSplitView/components/RubberbandTooltip.js +17 -0
  32. package/esm/BreakpointSplitView/components/Translocations.d.ts +2 -7
  33. package/esm/BreakpointSplitView/components/Translocations.js +23 -58
  34. package/esm/BreakpointSplitView/components/VerticalGuide.d.ts +6 -0
  35. package/esm/BreakpointSplitView/components/VerticalGuide.js +24 -0
  36. package/esm/BreakpointSplitView/components/overlayUtils.d.ts +24 -0
  37. package/esm/BreakpointSplitView/components/overlayUtils.js +47 -0
  38. package/esm/BreakpointSplitView/components/rubberbandUtil.d.ts +4 -0
  39. package/esm/BreakpointSplitView/components/rubberbandUtil.js +3 -0
  40. package/esm/BreakpointSplitView/components/useRangeSelect.d.ts +59 -0
  41. package/esm/BreakpointSplitView/components/useRangeSelect.js +121 -0
  42. package/esm/BreakpointSplitView/components/util.js +1 -2
  43. package/esm/BreakpointSplitView/getClip.js +4 -4
  44. package/esm/BreakpointSplitView/index.js +2 -2
  45. package/esm/BreakpointSplitView/model.d.ts +403 -116
  46. package/esm/BreakpointSplitView/model.js +117 -41
  47. package/esm/BreakpointSplitView/svgcomponents/SVGBreakpointSplitView.d.ts +2 -2
  48. package/esm/BreakpointSplitView/svgcomponents/SVGBreakpointSplitView.js +8 -8
  49. package/esm/BreakpointSplitView/types.d.ts +8 -0
  50. package/esm/BreakpointSplitView/util.d.ts +1 -1
  51. package/esm/BreakpointSplitView/util.js +8 -17
  52. package/esm/LaunchBreakpointSplitView/index.d.ts +2 -0
  53. package/esm/LaunchBreakpointSplitView/index.js +12 -0
  54. package/esm/index.js +7 -6
  55. package/package.json +28 -34
  56. package/dist/BreakpointAlignmentsFeatureDetail/BreakpointAlignmentsFeatureDetail.d.ts +0 -10
  57. package/dist/BreakpointAlignmentsFeatureDetail/BreakpointAlignmentsFeatureDetail.js +0 -12
  58. package/dist/BreakpointAlignmentsFeatureDetail/index.d.ts +0 -2
  59. package/dist/BreakpointAlignmentsFeatureDetail/index.js +0 -67
  60. package/dist/BreakpointSplitView/BreakpointSplitView.d.ts +0 -34
  61. package/dist/BreakpointSplitView/BreakpointSplitView.js +0 -84
  62. package/dist/BreakpointSplitView/components/AlignmentConnections.d.ts +0 -8
  63. package/dist/BreakpointSplitView/components/AlignmentConnections.js +0 -133
  64. package/dist/BreakpointSplitView/components/Breakends.d.ts +0 -8
  65. package/dist/BreakpointSplitView/components/Breakends.js +0 -95
  66. package/dist/BreakpointSplitView/components/BreakpointSplitView.d.ts +0 -5
  67. package/dist/BreakpointSplitView/components/BreakpointSplitView.js +0 -45
  68. package/dist/BreakpointSplitView/components/BreakpointSplitViewOverlay.d.ts +0 -5
  69. package/dist/BreakpointSplitView/components/BreakpointSplitViewOverlay.js +0 -33
  70. package/dist/BreakpointSplitView/components/ExportSvgDialog.d.ts +0 -7
  71. package/dist/BreakpointSplitView/components/ExportSvgDialog.js +0 -57
  72. package/dist/BreakpointSplitView/components/Overlay.d.ts +0 -8
  73. package/dist/BreakpointSplitView/components/Overlay.js +0 -27
  74. package/dist/BreakpointSplitView/components/PairedFeatures.d.ts +0 -8
  75. package/dist/BreakpointSplitView/components/PairedFeatures.js +0 -75
  76. package/dist/BreakpointSplitView/components/Translocations.d.ts +0 -8
  77. package/dist/BreakpointSplitView/components/Translocations.js +0 -99
  78. package/dist/BreakpointSplitView/components/getOrientationColor.d.ts +0 -41
  79. package/dist/BreakpointSplitView/components/getOrientationColor.js +0 -103
  80. package/dist/BreakpointSplitView/components/util.d.ts +0 -8
  81. package/dist/BreakpointSplitView/components/util.js +0 -142
  82. package/dist/BreakpointSplitView/getClip.d.ts +0 -1
  83. package/dist/BreakpointSplitView/getClip.js +0 -10
  84. package/dist/BreakpointSplitView/index.d.ts +0 -2
  85. package/dist/BreakpointSplitView/index.js +0 -52
  86. package/dist/BreakpointSplitView/model.d.ts +0 -342
  87. package/dist/BreakpointSplitView/model.js +0 -244
  88. package/dist/BreakpointSplitView/svgcomponents/SVGBackground.d.ts +0 -5
  89. package/dist/BreakpointSplitView/svgcomponents/SVGBackground.js +0 -10
  90. package/dist/BreakpointSplitView/svgcomponents/SVGBreakpointSplitView.d.ts +0 -5
  91. package/dist/BreakpointSplitView/svgcomponents/SVGBreakpointSplitView.js +0 -41
  92. package/dist/BreakpointSplitView/svgcomponents/util.d.ts +0 -4
  93. package/dist/BreakpointSplitView/svgcomponents/util.js +0 -18
  94. package/dist/BreakpointSplitView/types.d.ts +0 -22
  95. package/dist/BreakpointSplitView/types.js +0 -2
  96. package/dist/BreakpointSplitView/util.d.ts +0 -28
  97. package/dist/BreakpointSplitView/util.js +0 -67
  98. package/dist/index.d.ts +0 -7
  99. package/dist/index.js +0 -20
@@ -1,342 +0,0 @@
1
- import type { ExportSvgOptions } from './types';
2
- import type PluginManager from '@jbrowse/core/PluginManager';
3
- import type { Feature } from '@jbrowse/core/util';
4
- import type { Instance } from 'mobx-state-tree';
5
- export default function stateModelFactory(pluginManager: PluginManager): import("mobx-state-tree").IModelType<{
6
- id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
7
- displayName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
8
- minimized: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
9
- } & {
10
- type: import("mobx-state-tree").ISimpleType<"BreakpointSplitView">;
11
- height: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<number>, [undefined]>;
12
- trackSelectorType: import("mobx-state-tree").IType<string | undefined, string, string>;
13
- showIntraviewLinks: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
14
- linkViews: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
15
- interactiveOverlay: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
16
- views: import("mobx-state-tree").IArrayType<import("mobx-state-tree").IModelType<{
17
- id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
18
- displayName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
19
- minimized: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
20
- } & {
21
- id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
22
- type: import("mobx-state-tree").IType<string | undefined, string, string>;
23
- offsetPx: import("mobx-state-tree").IType<number | undefined, number, number>;
24
- bpPerPx: import("mobx-state-tree").IType<number | undefined, number, number>;
25
- displayedRegions: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<import("@jbrowse/core/util").Region[], import("@jbrowse/core/util").Region[], import("@jbrowse/core/util").Region[]>, [undefined]>;
26
- tracks: import("mobx-state-tree").IArrayType<import("mobx-state-tree").IAnyType>;
27
- hideHeader: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
28
- hideHeaderOverview: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
29
- hideNoTracksActive: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
30
- trackSelectorType: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
31
- showCenterLine: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
32
- showCytobandsSetting: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
33
- trackLabels: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
34
- showGridlines: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
35
- highlight: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IArrayType<import("mobx-state-tree").IType<import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").HighlightType, import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").HighlightType, import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").HighlightType>>, [undefined]>;
36
- colorByCDS: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
37
- showTrackOutlines: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
38
- init: import("mobx-state-tree").IType<import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").InitState | undefined, import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").InitState | undefined, import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").InitState | undefined>;
39
- }, {
40
- width: number;
41
- } & {
42
- menuItems(): import("@jbrowse/core/ui").MenuItem[];
43
- } & {
44
- setDisplayName(name: string): void;
45
- setWidth(newWidth: number): void;
46
- setMinimized(flag: boolean): void;
47
- } & {
48
- volatileWidth: number | undefined;
49
- minimumBlockWidth: number;
50
- draggingTrackId: undefined | string;
51
- volatileError: unknown;
52
- afterDisplayedRegionsSetCallbacks: (() => void)[];
53
- scaleFactor: number;
54
- trackRefs: Record<string, HTMLDivElement>;
55
- coarseDynamicBlocks: import("@jbrowse/core/util/blockTypes").BaseBlock[];
56
- coarseTotalBp: number;
57
- leftOffset: undefined | import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").BpOffset;
58
- rightOffset: undefined | import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").BpOffset;
59
- } & {
60
- readonly pinnedTracks: any[];
61
- readonly unpinnedTracks: any[];
62
- readonly trackLabelsSetting: any;
63
- readonly width: number;
64
- readonly interRegionPaddingWidth: number;
65
- readonly assemblyNames: string[];
66
- readonly assemblyDisplayNames: string[];
67
- readonly isTopLevelView: boolean;
68
- readonly stickyViewHeaders: boolean;
69
- readonly rubberbandTop: number;
70
- readonly pinnedTracksTop: number;
71
- } & {
72
- scaleBarDisplayPrefix(): string | undefined;
73
- MiniControlsComponent(): React.FC<any>;
74
- HeaderComponent(): React.FC<any>;
75
- readonly assembliesNotFound: string | undefined;
76
- readonly assemblyErrors: string;
77
- readonly assembliesInitialized: boolean;
78
- readonly initialized: boolean;
79
- readonly hasDisplayedRegions: boolean;
80
- readonly scaleBarHeight: number;
81
- readonly headerHeight: number;
82
- readonly trackHeights: number;
83
- readonly trackHeightsWithResizeHandles: number;
84
- readonly height: number;
85
- readonly totalBp: number;
86
- readonly maxBpPerPx: number;
87
- readonly minBpPerPx: number;
88
- readonly error: unknown;
89
- readonly maxOffset: number;
90
- readonly minOffset: number;
91
- readonly displayedRegionsTotalPx: number;
92
- renderProps(): any;
93
- searchScope(assemblyName: string): {
94
- assemblyName: string;
95
- includeAggregateIndexes: boolean;
96
- tracks: import("mobx-state-tree").IMSTArray<import("mobx-state-tree").IAnyType> & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IArrayType<import("mobx-state-tree").IAnyType>>;
97
- };
98
- getTrack(id: string): any;
99
- rankSearchResults(results: import("@jbrowse/core/TextSearch/BaseResults").default[]): import("@jbrowse/core/TextSearch/BaseResults").default[];
100
- rewriteOnClicks(trackType: string, viewMenuActions: import("@jbrowse/core/ui").MenuItem[]): void;
101
- readonly trackTypeActions: Map<string, import("@jbrowse/core/ui").MenuItem[]>;
102
- } & {
103
- setShowTrackOutlines(arg: boolean): void;
104
- setColorByCDS(flag: boolean): void;
105
- setShowCytobands(flag: boolean): void;
106
- setWidth(newWidth: number): void;
107
- setError(error: unknown): void;
108
- setHideHeader(b: boolean): void;
109
- setHideHeaderOverview(b: boolean): void;
110
- setHideNoTracksActive(b: boolean): void;
111
- setShowGridlines(b: boolean): void;
112
- addToHighlights(highlight: import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").HighlightType): void;
113
- setHighlight(highlight?: import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").HighlightType[]): void;
114
- removeHighlight(highlight: import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").HighlightType): void;
115
- scrollTo(offsetPx: number): number;
116
- zoomTo(bpPerPx: number, offset?: number, centerAtOffset?: boolean): number;
117
- setOffsets(left?: import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").BpOffset, right?: import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").BpOffset): void;
118
- setSearchResults(searchResults: import("@jbrowse/core/TextSearch/BaseResults").default[], searchQuery: string, assemblyName?: string): void;
119
- setNewView(bpPerPx: number, offsetPx: number): void;
120
- horizontallyFlip(): void;
121
- showTrack(trackId: string, initialSnapshot?: {}, displayInitialSnapshot?: {}): any;
122
- hideTrack(trackId: string): number;
123
- } & {
124
- moveTrackDown(id: string): void;
125
- moveTrackUp(id: string): void;
126
- moveTrackToTop(id: string): void;
127
- moveTrackToBottom(id: string): void;
128
- moveTrack(movingId: string, targetId: string): void;
129
- toggleTrack(trackId: string): boolean;
130
- setTrackLabels(setting: "overlapping" | "offset" | "hidden"): void;
131
- setShowCenterLine(b: boolean): void;
132
- setDisplayedRegions(regions: import("@jbrowse/core/util").Region[]): void;
133
- activateTrackSelector(): import("@jbrowse/core/util").Widget;
134
- getSelectedRegions(leftOffset?: import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").BpOffset, rightOffset?: import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").BpOffset): {
135
- start: number;
136
- end: number;
137
- type: string;
138
- regionNumber?: number;
139
- reversed?: boolean;
140
- refName: string;
141
- assemblyName: string;
142
- key: string;
143
- offsetPx: number;
144
- widthPx: number;
145
- variant?: string;
146
- isLeftEndOfDisplayedRegion?: boolean;
147
- }[];
148
- afterDisplayedRegionsSet(cb: () => void): void;
149
- horizontalScroll(distance: number): number;
150
- center(): void;
151
- showAllRegions(): void;
152
- showAllRegionsInAssembly(assemblyName?: string): void;
153
- setDraggingTrackId(idx?: string): void;
154
- setScaleFactor(factor: number): void;
155
- clearView(): void;
156
- setInit(arg?: import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").InitState): void;
157
- exportSvg(opts?: import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").ExportSvgOptions): Promise<void>;
158
- } & {
159
- slide: (viewWidths: number) => void;
160
- } & {
161
- zoom: (targetBpPerPx: number) => void;
162
- } & {
163
- readonly canShowCytobands: boolean;
164
- readonly showCytobands: boolean;
165
- readonly anyCytobandsExist: boolean;
166
- readonly cytobandOffset: number;
167
- } & {
168
- menuItems(): import("@jbrowse/core/ui").MenuItem[];
169
- } & {
170
- readonly staticBlocks: import("@jbrowse/core/util/blockTypes").BlockSet;
171
- readonly dynamicBlocks: import("@jbrowse/core/util/blockTypes").BlockSet;
172
- readonly roundedDynamicBlocks: import("@jbrowse/core/util/blockTypes").BaseBlock[];
173
- readonly visibleLocStrings: string;
174
- readonly coarseVisibleLocStrings: string;
175
- } & {
176
- setCoarseDynamicBlocks(blocks: import("@jbrowse/core/util/blockTypes").BlockSet): void;
177
- } & {
178
- moveTo(start?: import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").BpOffset, end?: import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").BpOffset): void;
179
- navToLocString(input: string, optAssemblyName?: string, grow?: number): Promise<void>;
180
- navToSearchString({ input, assembly, }: {
181
- input: string;
182
- assembly: import("@jbrowse/core/assemblyManager/assembly").Assembly;
183
- }): Promise<void>;
184
- navToLocation(parsedLocString: import("@jbrowse/core/util").ParsedLocString, assemblyName?: string, grow?: number): Promise<void>;
185
- navToLocations(regions: import("@jbrowse/core/util").ParsedLocString[], assemblyName?: string, grow?: number): Promise<void>;
186
- navTo(query: import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").NavLocation): void;
187
- navToMultiple(locations: import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").NavLocation[]): void;
188
- } & {
189
- rubberBandMenuItems(): import("@jbrowse/core/ui").MenuItem[];
190
- bpToPx({ refName, coord, regionNumber, }: {
191
- refName: string;
192
- coord: number;
193
- regionNumber?: number;
194
- }): {
195
- index: number;
196
- offsetPx: number;
197
- } | undefined;
198
- centerAt(coord: number, refName: string, regionNumber?: number): void;
199
- pxToBp(px: number): {
200
- coord: number;
201
- index: number;
202
- refName: string;
203
- oob: boolean;
204
- assemblyName: string;
205
- offset: number;
206
- start: number;
207
- end: number;
208
- reversed?: boolean;
209
- };
210
- readonly centerLineInfo: {
211
- coord: number;
212
- index: number;
213
- refName: string;
214
- oob: boolean;
215
- assemblyName: string;
216
- offset: number;
217
- start: number;
218
- end: number;
219
- reversed?: boolean;
220
- } | undefined;
221
- } & {
222
- afterCreate(): void;
223
- afterAttach(): void;
224
- }, import("mobx-state-tree").ModelCreationType<import("mobx-state-tree/dist/internal").ExtractCFromProps<{
225
- id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
226
- displayName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
227
- minimized: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
228
- } & {
229
- id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
230
- type: import("mobx-state-tree").IType<string | undefined, string, string>;
231
- offsetPx: import("mobx-state-tree").IType<number | undefined, number, number>;
232
- bpPerPx: import("mobx-state-tree").IType<number | undefined, number, number>;
233
- displayedRegions: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<import("@jbrowse/core/util").Region[], import("@jbrowse/core/util").Region[], import("@jbrowse/core/util").Region[]>, [undefined]>;
234
- tracks: import("mobx-state-tree").IArrayType<import("mobx-state-tree").IAnyType>;
235
- hideHeader: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
236
- hideHeaderOverview: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
237
- hideNoTracksActive: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
238
- trackSelectorType: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
239
- showCenterLine: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
240
- showCytobandsSetting: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
241
- trackLabels: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
242
- showGridlines: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
243
- highlight: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IArrayType<import("mobx-state-tree").IType<import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").HighlightType, import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").HighlightType, import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").HighlightType>>, [undefined]>;
244
- colorByCDS: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
245
- showTrackOutlines: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
246
- init: import("mobx-state-tree").IType<import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").InitState | undefined, import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").InitState | undefined, import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").InitState | undefined>;
247
- }>>, {
248
- id: string;
249
- type: string;
250
- displayName: string | undefined;
251
- tracks: any[];
252
- minimized: boolean;
253
- offsetPx: number;
254
- bpPerPx: number;
255
- displayedRegions: import("@jbrowse/core/util").Region[];
256
- hideHeader: boolean;
257
- hideHeaderOverview: boolean;
258
- hideNoTracksActive: boolean;
259
- trackSelectorType: string;
260
- showCenterLine: boolean;
261
- showCytobandsSetting: boolean;
262
- trackLabels: string;
263
- showGridlines: boolean;
264
- highlight: import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView/types").HighlightType[];
265
- colorByCDS: boolean;
266
- showTrackOutlines: boolean;
267
- }>>;
268
- }, {
269
- width: number;
270
- } & {
271
- menuItems(): import("@jbrowse/core/ui").MenuItem[];
272
- } & {
273
- setDisplayName(name: string): void;
274
- setWidth(newWidth: number): void;
275
- setMinimized(flag: boolean): void;
276
- } & {
277
- width: number;
278
- matchedTrackFeatures: Record<string, Feature[][]>;
279
- } & {
280
- exportSvg(opts?: ExportSvgOptions): Promise<void>;
281
- } & {
282
- readonly matchedTracks: (import("mobx-state-tree").IMSTArray<import("mobx-state-tree").IAnyType> & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IArrayType<import("mobx-state-tree").IAnyType>>) | {
283
- configuration: {
284
- trackId: string;
285
- };
286
- }[];
287
- getMatchedTracks(trackConfigId: string): any[];
288
- hasTranslocations(trackConfigId: string): Feature | undefined;
289
- hasPairedFeatures(trackConfigId: string): Feature | undefined;
290
- getTrackFeatures(trackConfigId: string): Map<string, Feature>;
291
- getMatchedFeaturesInLayout(trackConfigId: string, features: Feature[][]): {
292
- feature: Feature;
293
- layout: import("./types").LayoutRecord | undefined;
294
- level: number;
295
- clipPos: number;
296
- }[][];
297
- } & {
298
- afterAttach(): void;
299
- onSubviewAction(actionName: string, path: string, args?: unknown[]): void;
300
- setWidth(newWidth: number): void;
301
- setInteractiveOverlay(arg: boolean): void;
302
- setShowIntraviewLinks(arg: boolean): void;
303
- setLinkViews(arg: boolean): void;
304
- setMatchedTrackFeatures(obj: Record<string, Feature[][]>): void;
305
- reverseViewOrder(): void;
306
- } & {
307
- afterAttach(): void;
308
- menuItems(): ({
309
- label: string;
310
- subMenu: import("@jbrowse/core/ui").MenuItem[];
311
- } | {
312
- label: string;
313
- onClick: () => void;
314
- type?: undefined;
315
- checked?: undefined;
316
- icon?: undefined;
317
- } | {
318
- label: string;
319
- type: string;
320
- checked: boolean;
321
- onClick: () => void;
322
- icon?: undefined;
323
- } | {
324
- label: string;
325
- type: string;
326
- icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
327
- muiName: string;
328
- };
329
- checked: boolean;
330
- onClick: () => void;
331
- } | {
332
- label: string;
333
- icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
334
- muiName: string;
335
- };
336
- onClick: () => void;
337
- type?: undefined;
338
- checked?: undefined;
339
- })[];
340
- }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
341
- export type BreakpointViewStateModel = ReturnType<typeof stateModelFactory>;
342
- export type BreakpointViewModel = Instance<BreakpointViewStateModel>;
@@ -1,244 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.default = stateModelFactory;
40
- const react_1 = require("react");
41
- const models_1 = require("@jbrowse/core/pluggableElementTypes/models");
42
- const util_1 = require("@jbrowse/core/util");
43
- const Link_1 = __importDefault(require("@mui/icons-material/Link"));
44
- const PhotoCamera_1 = __importDefault(require("@mui/icons-material/PhotoCamera"));
45
- const file_saver_1 = require("file-saver");
46
- const mobx_1 = require("mobx");
47
- const mobx_state_tree_1 = require("mobx-state-tree");
48
- const getClip_1 = require("./getClip");
49
- const util_2 = require("./util");
50
- const ExportSvgDialog = (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('./components/ExportSvgDialog'))));
51
- function stateModelFactory(pluginManager) {
52
- const defaultHeight = 400;
53
- return mobx_state_tree_1.types
54
- .compose('BreakpointSplitView', models_1.BaseViewModel, mobx_state_tree_1.types.model({
55
- type: mobx_state_tree_1.types.literal('BreakpointSplitView'),
56
- height: mobx_state_tree_1.types.optional(mobx_state_tree_1.types.number, defaultHeight),
57
- trackSelectorType: 'hierarchical',
58
- showIntraviewLinks: true,
59
- linkViews: false,
60
- interactiveOverlay: true,
61
- views: mobx_state_tree_1.types.array(pluginManager.getViewType('LinearGenomeView')
62
- .stateModel),
63
- }))
64
- .volatile(() => ({
65
- width: 800,
66
- matchedTrackFeatures: {},
67
- }))
68
- .views(self => ({
69
- async exportSvg(opts = {}) {
70
- const { renderToSvg } = await Promise.resolve().then(() => __importStar(require('./svgcomponents/SVGBreakpointSplitView')));
71
- const html = await renderToSvg(self, opts);
72
- const blob = new Blob([html], { type: 'image/svg+xml' });
73
- (0, file_saver_1.saveAs)(blob, opts.filename || 'image.svg');
74
- },
75
- }))
76
- .views(self => ({
77
- get matchedTracks() {
78
- return self.views.length === 1
79
- ? self.views[0].tracks
80
- : (0, util_2.intersect)(elt => elt.configuration.trackId, ...self.views.map(view => view.tracks));
81
- },
82
- getMatchedTracks(trackConfigId) {
83
- return self.views
84
- .map(view => view.getTrack(trackConfigId))
85
- .filter(f => !!f);
86
- },
87
- hasTranslocations(trackConfigId) {
88
- return [...this.getTrackFeatures(trackConfigId).values()].find(f => f.get('type') === 'translocation');
89
- },
90
- hasPairedFeatures(trackConfigId) {
91
- return [...this.getTrackFeatures(trackConfigId).values()].find(f => f.get('type') === 'paired_feature');
92
- },
93
- getTrackFeatures(trackConfigId) {
94
- var _a;
95
- return new Map((_a = self.matchedTrackFeatures[trackConfigId]) === null || _a === void 0 ? void 0 : _a.flat().map(f => [f.id(), f]));
96
- },
97
- getMatchedFeaturesInLayout(trackConfigId, features) {
98
- const tracks = this.getMatchedTracks(trackConfigId);
99
- return features.map(c => c
100
- .map(feature => {
101
- const level = tracks.findIndex(track => (0, util_2.calc)(track, feature));
102
- return level !== -1
103
- ? {
104
- feature,
105
- layout: (0, util_2.calc)(tracks[level], feature),
106
- level,
107
- clipPos: (0, getClip_1.getClip)(feature.get('CIGAR'), feature.get('strand')),
108
- }
109
- : undefined;
110
- })
111
- .filter(util_1.notEmpty));
112
- },
113
- }))
114
- .actions(self => ({
115
- afterAttach() {
116
- (0, mobx_state_tree_1.addDisposer)(self, (0, mobx_state_tree_1.onAction)(self, ({ name, path, args, }) => {
117
- if (self.linkViews) {
118
- const actions = [
119
- 'horizontalScroll',
120
- 'zoomTo',
121
- 'setScaleFactor',
122
- 'showTrack',
123
- 'toggleTrack',
124
- 'hideTrack',
125
- 'setTrackLabels',
126
- 'toggleCenterLine',
127
- ];
128
- if (actions.includes(name) && path) {
129
- this.onSubviewAction(name, path, args);
130
- }
131
- }
132
- }));
133
- },
134
- onSubviewAction(actionName, path, args) {
135
- for (const view of self.views) {
136
- const ret = (0, mobx_state_tree_1.getPath)(view);
137
- if (!ret.endsWith(path)) {
138
- view[actionName](args === null || args === void 0 ? void 0 : args[0]);
139
- }
140
- }
141
- },
142
- setWidth(newWidth) {
143
- self.width = newWidth;
144
- for (const v of self.views) {
145
- v.setWidth(newWidth);
146
- }
147
- },
148
- setInteractiveOverlay(arg) {
149
- self.interactiveOverlay = arg;
150
- },
151
- setShowIntraviewLinks(arg) {
152
- self.showIntraviewLinks = arg;
153
- },
154
- setLinkViews(arg) {
155
- self.linkViews = arg;
156
- },
157
- setMatchedTrackFeatures(obj) {
158
- self.matchedTrackFeatures = obj;
159
- },
160
- reverseViewOrder() {
161
- self.views.reverse();
162
- },
163
- }))
164
- .actions(self => ({
165
- afterAttach() {
166
- (0, mobx_state_tree_1.addDisposer)(self, (0, mobx_1.autorun)(async () => {
167
- try {
168
- if (!self.views.every(view => view.initialized)) {
169
- return;
170
- }
171
- if (self.matchedTracks.some(track => { var _a, _b; return (_b = (_a = track.displays[0]).notReady) === null || _b === void 0 ? void 0 : _b.call(_a); })) {
172
- return;
173
- }
174
- self.setMatchedTrackFeatures(Object.fromEntries(await Promise.all(self.matchedTracks.map(async (track) => [
175
- track.configuration.trackId,
176
- await (0, util_2.getBlockFeatures)(self, track),
177
- ]))));
178
- }
179
- catch (e) {
180
- console.error(e);
181
- (0, util_1.getSession)(self).notifyError(`${e}`, e);
182
- }
183
- }));
184
- },
185
- menuItems() {
186
- return [
187
- ...self.views
188
- .map((view, idx) => [idx, view.menuItems()])
189
- .map(f => ({
190
- label: `Row ${f[0] + 1} view menu`,
191
- subMenu: f[1],
192
- })),
193
- ...(self.views.length > 1
194
- ? [
195
- {
196
- label: 'Reverse view order',
197
- onClick: () => {
198
- self.reverseViewOrder();
199
- },
200
- },
201
- ]
202
- : []),
203
- {
204
- label: 'Show intra-view links',
205
- type: 'checkbox',
206
- checked: self.showIntraviewLinks,
207
- onClick: () => {
208
- self.setShowIntraviewLinks(!self.showIntraviewLinks);
209
- },
210
- },
211
- {
212
- label: 'Allow clicking alignment squiggles?',
213
- type: 'checkbox',
214
- checked: self.interactiveOverlay,
215
- onClick: () => {
216
- self.setInteractiveOverlay(!self.interactiveOverlay);
217
- },
218
- },
219
- {
220
- label: 'Link views',
221
- type: 'checkbox',
222
- icon: Link_1.default,
223
- checked: self.linkViews,
224
- onClick: () => {
225
- self.setLinkViews(!self.linkViews);
226
- },
227
- },
228
- {
229
- label: 'Export SVG',
230
- icon: PhotoCamera_1.default,
231
- onClick: () => {
232
- (0, util_1.getSession)(self).queueDialog(handleClose => [
233
- ExportSvgDialog,
234
- {
235
- model: self,
236
- handleClose,
237
- },
238
- ]);
239
- },
240
- },
241
- ];
242
- },
243
- }));
244
- }
@@ -1,5 +0,0 @@
1
- export default function SVGBackground({ width, height, shift, }: {
2
- width: number;
3
- height: number;
4
- shift: number;
5
- }): import("react/jsx-runtime").JSX.Element;
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = SVGBackground;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
- const util_1 = require("@jbrowse/core/util");
6
- const material_1 = require("@mui/material");
7
- function SVGBackground({ width, height, shift, }) {
8
- const theme = (0, material_1.useTheme)();
9
- return ((0, jsx_runtime_1.jsx)("rect", { width: width + shift * 2, height: height, fill: (0, util_1.stripAlpha)(theme.palette.background.default) }));
10
- }
@@ -1,5 +0,0 @@
1
- import type { BreakpointViewModel } from '../model';
2
- import type { ExportSvgOptions } from '../types';
3
- type BSV = BreakpointViewModel;
4
- export declare function renderToSvg(model: BSV, opts: ExportSvgOptions): Promise<string>;
5
- export {};
@@ -1,41 +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
- exports.renderToSvg = renderToSvg;
7
- const jsx_runtime_1 = require("react/jsx-runtime");
8
- const ui_1 = require("@jbrowse/core/ui");
9
- const util_1 = require("@jbrowse/core/util");
10
- const plugin_linear_genome_view_1 = require("@jbrowse/plugin-linear-genome-view");
11
- const material_1 = require("@mui/material");
12
- const mobx_1 = require("mobx");
13
- const SVGBackground_1 = __importDefault(require("./SVGBackground"));
14
- const util_2 = require("./util");
15
- const Overlay_1 = __importDefault(require("../components/Overlay"));
16
- async function renderToSvg(model, opts) {
17
- var _a;
18
- const { textHeight = 18, headerHeight = 30, rulerHeight = 30, fontSize = 13, trackLabels = 'offset', Wrapper = ({ children }) => children, themeName = 'default', } = opts;
19
- const session = (0, util_1.getSession)(model);
20
- const theme = (_a = session.allThemes) === null || _a === void 0 ? void 0 : _a.call(session)[themeName];
21
- const { width, views } = model;
22
- const shift = 50;
23
- const offset = headerHeight + rulerHeight;
24
- const heights = views.map(v => (0, plugin_linear_genome_view_1.totalHeight)(v.tracks, textHeight, trackLabels) + offset);
25
- const totalHeightSvg = (0, util_1.sum)(heights) + 100;
26
- const displayResults = await Promise.all(views.map(async (view) => ({
27
- view,
28
- data: await Promise.all(view.tracks.map(async (track) => {
29
- const d = track.displays[0];
30
- await (0, mobx_1.when)(() => (d.ready !== undefined ? d.ready : true));
31
- return { track, result: await d.renderSvg({ ...opts, theme }) };
32
- })),
33
- })));
34
- const trackLabelMaxLen = (0, util_2.getTrackNameMaxLen)(views, fontSize, session) + 40;
35
- const trackLabelOffset = trackLabels === 'left' ? trackLabelMaxLen : 0;
36
- const textOffset = trackLabels === 'offset' ? textHeight : 0;
37
- const trackOffsets = views.map((view, idx) => (0, util_2.getTrackOffsets)(view, textOffset, fontSize + (idx > 0 ? heights[idx - 1] : 0) + offset));
38
- const w = width + trackLabelOffset;
39
- const t = (0, ui_1.createJBrowseTheme)(theme);
40
- return (0, util_1.renderToStaticMarkup)((0, jsx_runtime_1.jsx)(material_1.ThemeProvider, { theme: t, children: (0, jsx_runtime_1.jsx)(Wrapper, { children: (0, jsx_runtime_1.jsxs)("svg", { width: width, height: totalHeightSvg, xmlns: "http://www.w3.org/2000/svg", xmlnsXlink: "http://www.w3.org/1999/xlink", viewBox: [0, 0, w + shift * 2, totalHeightSvg].toString(), children: [(0, jsx_runtime_1.jsx)(SVGBackground_1.default, { width: w, height: totalHeightSvg, shift: shift }), views[0] ? ((0, jsx_runtime_1.jsxs)("g", { transform: `translate(${shift} ${fontSize})`, children: [(0, jsx_runtime_1.jsxs)("g", { transform: `translate(${trackLabelOffset})`, children: [(0, jsx_runtime_1.jsx)("text", { x: 0, fontSize: fontSize, fill: t.palette.text.primary, children: views[0].assemblyNames.join(', ') }), (0, jsx_runtime_1.jsx)(plugin_linear_genome_view_1.SVGRuler, { model: displayResults[0].view, fontSize: fontSize })] }), (0, jsx_runtime_1.jsx)("g", { transform: `translate(0 ${offset})`, children: (0, jsx_runtime_1.jsx)(plugin_linear_genome_view_1.SVGTracks, { textHeight: textHeight, trackLabels: trackLabels, fontSize: fontSize, model: displayResults[0].view, displayResults: displayResults[0].data, trackLabelOffset: trackLabelOffset }) })] })) : null, views[1] ? ((0, jsx_runtime_1.jsxs)("g", { transform: `translate(${shift} ${fontSize + heights[0]})`, children: [(0, jsx_runtime_1.jsxs)("g", { transform: `translate(${trackLabelOffset})`, children: [(0, jsx_runtime_1.jsx)("text", { x: 0, fontSize: fontSize, fill: t.palette.text.primary, children: views[1].assemblyNames.join(', ') }), (0, jsx_runtime_1.jsx)(plugin_linear_genome_view_1.SVGRuler, { model: displayResults[1].view, fontSize: fontSize })] }), (0, jsx_runtime_1.jsx)("g", { transform: `translate(0 ${offset})`, children: (0, jsx_runtime_1.jsx)(plugin_linear_genome_view_1.SVGTracks, { textHeight: textHeight, trackLabels: trackLabels, fontSize: fontSize, model: displayResults[1].view, displayResults: displayResults[1].data, trackLabelOffset: trackLabelOffset }) })] })) : null, (0, jsx_runtime_1.jsx)("defs", { children: (0, jsx_runtime_1.jsx)("clipPath", { id: "clip-bsv", children: (0, jsx_runtime_1.jsx)("rect", { x: 0, y: 0, width: width, height: totalHeightSvg }) }) }), (0, jsx_runtime_1.jsx)("g", { transform: `translate(${trackLabelOffset + shift})`, clipPath: "url(#clip-bsv)", children: model.matchedTracks.map(track => ((0, jsx_runtime_1.jsx)(Overlay_1.default, { parentRef: { current: null }, model: model, trackId: track.configuration.trackId, getTrackYPosOverride: (id, level) => trackOffsets[level][id] }, track.configuration.trackId))) })] }) }) }));
41
- }
@@ -1,4 +0,0 @@
1
- import type { AbstractSessionModel } from '@jbrowse/core/util';
2
- import type { LinearGenomeViewModel } from '@jbrowse/plugin-linear-genome-view';
3
- export declare function getTrackNameMaxLen(views: LinearGenomeViewModel[], fontSize: number, session: AbstractSessionModel): number;
4
- export declare function getTrackOffsets(view: LinearGenomeViewModel, textOffset: number, extra?: number): Record<string, number>;