@jbrowse/plugin-spreadsheet-view 2.17.0 → 2.18.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 (197) hide show
  1. package/dist/LaunchSpreadsheetView/index.d.ts +1 -1
  2. package/dist/LaunchSpreadsheetView/index.js +1 -3
  3. package/dist/SpreadsheetView/ImportWizard.d.ts +51 -0
  4. package/dist/SpreadsheetView/ImportWizard.js +240 -0
  5. package/dist/SpreadsheetView/SpreadsheetModel.d.ts +79 -0
  6. package/dist/SpreadsheetView/SpreadsheetModel.js +133 -0
  7. package/dist/SpreadsheetView/SpreadsheetViewModel.d.ts +299 -0
  8. package/dist/SpreadsheetView/SpreadsheetViewModel.js +94 -0
  9. package/dist/SpreadsheetView/components/BreakendMultiLevelOptionDialog.d.ts +1 -0
  10. package/dist/SpreadsheetView/components/BreakendMultiLevelOptionDialog.js +5 -0
  11. package/dist/SpreadsheetView/components/BreakendSingleLevelOptionDialog.d.ts +1 -0
  12. package/dist/SpreadsheetView/components/BreakendSingleLevelOptionDialog.js +5 -0
  13. package/dist/SpreadsheetView/components/FeatureMenu.d.ts +8 -0
  14. package/dist/SpreadsheetView/components/FeatureMenu.js +95 -0
  15. package/dist/SpreadsheetView/components/ImportWizard.d.ts +2 -2
  16. package/dist/SpreadsheetView/components/ImportWizard.js +40 -43
  17. package/dist/SpreadsheetView/components/LocationCell.d.ts +8 -0
  18. package/dist/SpreadsheetView/components/LocationCell.js +31 -0
  19. package/dist/SpreadsheetView/components/NumberEditor.d.ts +1 -1
  20. package/dist/SpreadsheetView/components/NumberEditor.js +1 -3
  21. package/dist/SpreadsheetView/components/SpreadsheetDataGrid.d.ts +6 -0
  22. package/dist/SpreadsheetView/components/SpreadsheetDataGrid.js +27 -0
  23. package/dist/SpreadsheetView/components/SpreadsheetView.d.ts +3 -3
  24. package/dist/SpreadsheetView/components/SpreadsheetView.js +23 -44
  25. package/dist/SpreadsheetView/components/TrackSelector.d.ts +7 -0
  26. package/dist/SpreadsheetView/components/TrackSelector.js +49 -0
  27. package/dist/SpreadsheetView/importAdapters/BedImport.d.ts +26 -17
  28. package/dist/SpreadsheetView/importAdapters/BedImport.js +53 -139
  29. package/dist/SpreadsheetView/importAdapters/BedpeImport.d.ts +36 -0
  30. package/dist/SpreadsheetView/importAdapters/BedpeImport.js +79 -0
  31. package/dist/SpreadsheetView/importAdapters/STARFusionImport.d.ts +25 -9
  32. package/dist/SpreadsheetView/importAdapters/STARFusionImport.js +27 -62
  33. package/dist/SpreadsheetView/importAdapters/VcfImport.d.ts +19 -12
  34. package/dist/SpreadsheetView/importAdapters/VcfImport.js +53 -98
  35. package/dist/SpreadsheetView/importAdapters/isNumber.d.ts +1 -0
  36. package/dist/SpreadsheetView/importAdapters/isNumber.js +14 -0
  37. package/dist/SpreadsheetView/importAdapters/util.d.ts +2 -0
  38. package/dist/SpreadsheetView/importAdapters/util.js +22 -0
  39. package/dist/SpreadsheetView/index.d.ts +2 -2
  40. package/dist/SpreadsheetView/index.js +2 -2
  41. package/dist/SpreadsheetView/util.d.ts +7 -0
  42. package/dist/SpreadsheetView/util.js +13 -0
  43. package/dist/index.d.ts +1 -1
  44. package/dist/index.js +1 -3
  45. package/esm/LaunchSpreadsheetView/index.d.ts +1 -1
  46. package/esm/LaunchSpreadsheetView/index.js +1 -3
  47. package/esm/SpreadsheetView/ImportWizard.d.ts +51 -0
  48. package/esm/SpreadsheetView/ImportWizard.js +214 -0
  49. package/esm/SpreadsheetView/SpreadsheetModel.d.ts +79 -0
  50. package/esm/SpreadsheetView/SpreadsheetModel.js +127 -0
  51. package/esm/SpreadsheetView/SpreadsheetViewModel.d.ts +299 -0
  52. package/esm/SpreadsheetView/SpreadsheetViewModel.js +88 -0
  53. package/esm/SpreadsheetView/components/BreakendMultiLevelOptionDialog.d.ts +1 -0
  54. package/esm/SpreadsheetView/components/BreakendMultiLevelOptionDialog.js +1 -0
  55. package/esm/SpreadsheetView/components/BreakendSingleLevelOptionDialog.d.ts +1 -0
  56. package/esm/SpreadsheetView/components/BreakendSingleLevelOptionDialog.js +1 -0
  57. package/esm/SpreadsheetView/components/FeatureMenu.d.ts +8 -0
  58. package/esm/SpreadsheetView/components/FeatureMenu.js +66 -0
  59. package/esm/SpreadsheetView/components/ImportWizard.d.ts +2 -2
  60. package/esm/SpreadsheetView/components/ImportWizard.js +41 -44
  61. package/esm/SpreadsheetView/components/LocationCell.d.ts +8 -0
  62. package/esm/SpreadsheetView/components/LocationCell.js +25 -0
  63. package/esm/SpreadsheetView/components/NumberEditor.d.ts +1 -1
  64. package/esm/SpreadsheetView/components/NumberEditor.js +2 -4
  65. package/esm/SpreadsheetView/components/SpreadsheetDataGrid.d.ts +6 -0
  66. package/esm/SpreadsheetView/components/SpreadsheetDataGrid.js +22 -0
  67. package/esm/SpreadsheetView/components/SpreadsheetView.d.ts +3 -3
  68. package/esm/SpreadsheetView/components/SpreadsheetView.js +24 -45
  69. package/esm/SpreadsheetView/components/TrackSelector.d.ts +7 -0
  70. package/esm/SpreadsheetView/components/TrackSelector.js +24 -0
  71. package/esm/SpreadsheetView/importAdapters/BedImport.d.ts +26 -17
  72. package/esm/SpreadsheetView/importAdapters/BedImport.js +53 -137
  73. package/esm/SpreadsheetView/importAdapters/BedpeImport.d.ts +36 -0
  74. package/esm/SpreadsheetView/importAdapters/BedpeImport.js +76 -0
  75. package/esm/SpreadsheetView/importAdapters/STARFusionImport.d.ts +25 -9
  76. package/esm/SpreadsheetView/importAdapters/STARFusionImport.js +27 -62
  77. package/esm/SpreadsheetView/importAdapters/VcfImport.d.ts +19 -12
  78. package/esm/SpreadsheetView/importAdapters/VcfImport.js +53 -97
  79. package/esm/SpreadsheetView/importAdapters/isNumber.d.ts +1 -0
  80. package/esm/SpreadsheetView/importAdapters/isNumber.js +11 -0
  81. package/esm/SpreadsheetView/importAdapters/util.d.ts +2 -0
  82. package/esm/SpreadsheetView/importAdapters/util.js +18 -0
  83. package/esm/SpreadsheetView/index.d.ts +2 -2
  84. package/esm/SpreadsheetView/index.js +2 -2
  85. package/esm/SpreadsheetView/util.d.ts +7 -0
  86. package/esm/SpreadsheetView/util.js +10 -0
  87. package/esm/index.d.ts +1 -1
  88. package/esm/index.js +1 -3
  89. package/package.json +6 -6
  90. package/dist/SpreadsheetView/components/CellData.d.ts +0 -9
  91. package/dist/SpreadsheetView/components/CellData.js +0 -14
  92. package/dist/SpreadsheetView/components/ColumnFilterControls.d.ts +0 -3
  93. package/dist/SpreadsheetView/components/ColumnFilterControls.js +0 -58
  94. package/dist/SpreadsheetView/components/ColumnMenu.d.ts +0 -16
  95. package/dist/SpreadsheetView/components/ColumnMenu.js +0 -140
  96. package/dist/SpreadsheetView/components/DataRow.d.ts +0 -12
  97. package/dist/SpreadsheetView/components/DataRow.js +0 -81
  98. package/dist/SpreadsheetView/components/DataTable.d.ts +0 -10
  99. package/dist/SpreadsheetView/components/DataTable.js +0 -42
  100. package/dist/SpreadsheetView/components/DataTableHeader.d.ts +0 -6
  101. package/dist/SpreadsheetView/components/DataTableHeader.js +0 -104
  102. package/dist/SpreadsheetView/components/GlobalFilterControls.d.ts +0 -5
  103. package/dist/SpreadsheetView/components/GlobalFilterControls.js +0 -68
  104. package/dist/SpreadsheetView/components/RowCountMessage.d.ts +0 -6
  105. package/dist/SpreadsheetView/components/RowCountMessage.js +0 -33
  106. package/dist/SpreadsheetView/components/RowMenu.d.ts +0 -9
  107. package/dist/SpreadsheetView/components/RowMenu.js +0 -39
  108. package/dist/SpreadsheetView/components/SortIndicator.d.ts +0 -6
  109. package/dist/SpreadsheetView/components/SortIndicator.js +0 -27
  110. package/dist/SpreadsheetView/components/Spreadsheet.d.ts +0 -11
  111. package/dist/SpreadsheetView/components/Spreadsheet.js +0 -25
  112. package/dist/SpreadsheetView/components/StatusBar.d.ts +0 -11
  113. package/dist/SpreadsheetView/components/StatusBar.js +0 -44
  114. package/dist/SpreadsheetView/importAdapters/ImportUtils.d.ts +0 -42
  115. package/dist/SpreadsheetView/importAdapters/ImportUtils.js +0 -123
  116. package/dist/SpreadsheetView/models/ColumnDataTypes/LocEnd.d.ts +0 -12
  117. package/dist/SpreadsheetView/models/ColumnDataTypes/LocEnd.js +0 -20
  118. package/dist/SpreadsheetView/models/ColumnDataTypes/LocRef.d.ts +0 -12
  119. package/dist/SpreadsheetView/models/ColumnDataTypes/LocRef.js +0 -20
  120. package/dist/SpreadsheetView/models/ColumnDataTypes/LocStart.d.ts +0 -12
  121. package/dist/SpreadsheetView/models/ColumnDataTypes/LocStart.js +0 -20
  122. package/dist/SpreadsheetView/models/ColumnDataTypes/LocString.d.ts +0 -13
  123. package/dist/SpreadsheetView/models/ColumnDataTypes/LocString.js +0 -183
  124. package/dist/SpreadsheetView/models/ColumnDataTypes/MakeSpreadsheetColumnType.d.ts +0 -19
  125. package/dist/SpreadsheetView/models/ColumnDataTypes/MakeSpreadsheetColumnType.js +0 -23
  126. package/dist/SpreadsheetView/models/ColumnDataTypes/Number.d.ts +0 -30
  127. package/dist/SpreadsheetView/models/ColumnDataTypes/Number.js +0 -126
  128. package/dist/SpreadsheetView/models/ColumnDataTypes/Text.d.ts +0 -28
  129. package/dist/SpreadsheetView/models/ColumnDataTypes/Text.js +0 -129
  130. package/dist/SpreadsheetView/models/ColumnDataTypes/index.d.ts +0 -71
  131. package/dist/SpreadsheetView/models/ColumnDataTypes/index.js +0 -37
  132. package/dist/SpreadsheetView/models/FilterControls.d.ts +0 -26
  133. package/dist/SpreadsheetView/models/FilterControls.js +0 -85
  134. package/dist/SpreadsheetView/models/ImportWizard.d.ts +0 -31
  135. package/dist/SpreadsheetView/models/ImportWizard.js +0 -186
  136. package/dist/SpreadsheetView/models/Row.d.ts +0 -17
  137. package/dist/SpreadsheetView/models/Row.js +0 -43
  138. package/dist/SpreadsheetView/models/Spreadsheet.d.ts +0 -260
  139. package/dist/SpreadsheetView/models/Spreadsheet.js +0 -174
  140. package/dist/SpreadsheetView/models/SpreadsheetView.d.ts +0 -482
  141. package/dist/SpreadsheetView/models/SpreadsheetView.js +0 -199
  142. package/dist/SpreadsheetView/models/StaticRowSet.d.ts +0 -163
  143. package/dist/SpreadsheetView/models/StaticRowSet.js +0 -56
  144. package/esm/SpreadsheetView/components/CellData.d.ts +0 -9
  145. package/esm/SpreadsheetView/components/CellData.js +0 -9
  146. package/esm/SpreadsheetView/components/ColumnFilterControls.d.ts +0 -3
  147. package/esm/SpreadsheetView/components/ColumnFilterControls.js +0 -53
  148. package/esm/SpreadsheetView/components/ColumnMenu.d.ts +0 -16
  149. package/esm/SpreadsheetView/components/ColumnMenu.js +0 -135
  150. package/esm/SpreadsheetView/components/DataRow.d.ts +0 -12
  151. package/esm/SpreadsheetView/components/DataRow.js +0 -76
  152. package/esm/SpreadsheetView/components/DataTable.d.ts +0 -10
  153. package/esm/SpreadsheetView/components/DataTable.js +0 -37
  154. package/esm/SpreadsheetView/components/DataTableHeader.d.ts +0 -6
  155. package/esm/SpreadsheetView/components/DataTableHeader.js +0 -76
  156. package/esm/SpreadsheetView/components/GlobalFilterControls.d.ts +0 -5
  157. package/esm/SpreadsheetView/components/GlobalFilterControls.js +0 -40
  158. package/esm/SpreadsheetView/components/RowCountMessage.d.ts +0 -6
  159. package/esm/SpreadsheetView/components/RowCountMessage.js +0 -28
  160. package/esm/SpreadsheetView/components/RowMenu.d.ts +0 -9
  161. package/esm/SpreadsheetView/components/RowMenu.js +0 -34
  162. package/esm/SpreadsheetView/components/SortIndicator.d.ts +0 -6
  163. package/esm/SpreadsheetView/components/SortIndicator.js +0 -21
  164. package/esm/SpreadsheetView/components/Spreadsheet.d.ts +0 -11
  165. package/esm/SpreadsheetView/components/Spreadsheet.js +0 -20
  166. package/esm/SpreadsheetView/components/StatusBar.d.ts +0 -11
  167. package/esm/SpreadsheetView/components/StatusBar.js +0 -39
  168. package/esm/SpreadsheetView/importAdapters/ImportUtils.d.ts +0 -42
  169. package/esm/SpreadsheetView/importAdapters/ImportUtils.js +0 -95
  170. package/esm/SpreadsheetView/models/ColumnDataTypes/LocEnd.d.ts +0 -12
  171. package/esm/SpreadsheetView/models/ColumnDataTypes/LocEnd.js +0 -15
  172. package/esm/SpreadsheetView/models/ColumnDataTypes/LocRef.d.ts +0 -12
  173. package/esm/SpreadsheetView/models/ColumnDataTypes/LocRef.js +0 -15
  174. package/esm/SpreadsheetView/models/ColumnDataTypes/LocStart.d.ts +0 -12
  175. package/esm/SpreadsheetView/models/ColumnDataTypes/LocStart.js +0 -15
  176. package/esm/SpreadsheetView/models/ColumnDataTypes/LocString.d.ts +0 -13
  177. package/esm/SpreadsheetView/models/ColumnDataTypes/LocString.js +0 -178
  178. package/esm/SpreadsheetView/models/ColumnDataTypes/MakeSpreadsheetColumnType.d.ts +0 -19
  179. package/esm/SpreadsheetView/models/ColumnDataTypes/MakeSpreadsheetColumnType.js +0 -20
  180. package/esm/SpreadsheetView/models/ColumnDataTypes/Number.d.ts +0 -30
  181. package/esm/SpreadsheetView/models/ColumnDataTypes/Number.js +0 -119
  182. package/esm/SpreadsheetView/models/ColumnDataTypes/Text.d.ts +0 -28
  183. package/esm/SpreadsheetView/models/ColumnDataTypes/Text.js +0 -122
  184. package/esm/SpreadsheetView/models/ColumnDataTypes/index.d.ts +0 -71
  185. package/esm/SpreadsheetView/models/ColumnDataTypes/index.js +0 -29
  186. package/esm/SpreadsheetView/models/FilterControls.d.ts +0 -26
  187. package/esm/SpreadsheetView/models/FilterControls.js +0 -83
  188. package/esm/SpreadsheetView/models/ImportWizard.d.ts +0 -31
  189. package/esm/SpreadsheetView/models/ImportWizard.js +0 -161
  190. package/esm/SpreadsheetView/models/Row.d.ts +0 -17
  191. package/esm/SpreadsheetView/models/Row.js +0 -41
  192. package/esm/SpreadsheetView/models/Spreadsheet.d.ts +0 -260
  193. package/esm/SpreadsheetView/models/Spreadsheet.js +0 -169
  194. package/esm/SpreadsheetView/models/SpreadsheetView.d.ts +0 -482
  195. package/esm/SpreadsheetView/models/SpreadsheetView.js +0 -194
  196. package/esm/SpreadsheetView/models/StaticRowSet.d.ts +0 -163
  197. package/esm/SpreadsheetView/models/StaticRowSet.js +0 -51
@@ -0,0 +1,299 @@
1
+ import type { SpreadsheetModel } from './SpreadsheetModel';
2
+ import type { MenuItem } from '@jbrowse/core/ui';
3
+ import type { Instance } from 'mobx-state-tree';
4
+ export default function stateModelFactory(): import("mobx-state-tree").IModelType<{
5
+ id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
6
+ displayName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
7
+ minimized: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
8
+ } & {
9
+ type: import("mobx-state-tree").ISimpleType<"SpreadsheetView">;
10
+ offsetPx: import("mobx-state-tree").IType<number | undefined, number, number>;
11
+ height: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<number>, [undefined]>;
12
+ hideVerticalResizeHandle: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
13
+ hideFilterControls: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
14
+ importWizard: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IModelType<{
15
+ fileType: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
16
+ hasColumnNameLine: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
17
+ columnNameLineNumber: import("mobx-state-tree").IType<number | undefined, number, number>;
18
+ selectedAssemblyName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
19
+ cachedFileLocation: import("mobx-state-tree").IType<import("@jbrowse/core/util").FileLocation | undefined, import("@jbrowse/core/util").FileLocation | undefined, import("@jbrowse/core/util").FileLocation | undefined>;
20
+ }, {
21
+ fileTypes: string[];
22
+ fileSource: any;
23
+ error: unknown;
24
+ loading: boolean;
25
+ } & {
26
+ readonly isReadyToOpen: any;
27
+ readonly fileName: any;
28
+ readonly requiresUnzip: any;
29
+ isValidRefName(refName: string, assemblyName?: string): boolean;
30
+ tracksForAssembly(selectedAssembly: string): {
31
+ track: {
32
+ [x: string]: any;
33
+ } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
34
+ setSubschema(slotName: string, data: Record<string, unknown>): Record<string, unknown> | ({
35
+ [x: string]: any;
36
+ } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
37
+ setSubschema(slotName: string, data: Record<string, unknown>): Record<string, unknown> | ({
38
+ [x: string]: any;
39
+ } & import("mobx-state-tree/dist/internal").NonEmptyObject & any & import("mobx-state-tree").IStateTreeNode<import("@jbrowse/core/configuration").AnyConfigurationSchemaType>);
40
+ } & import("mobx-state-tree").IStateTreeNode<import("@jbrowse/core/configuration").AnyConfigurationSchemaType>);
41
+ } & import("mobx-state-tree").IStateTreeNode<import("@jbrowse/core/configuration").AnyConfigurationSchemaType>;
42
+ label: string;
43
+ assemblyNames: any;
44
+ type: string;
45
+ loc: import("@jbrowse/core/util").FileLocation;
46
+ }[];
47
+ } & {
48
+ setSelectedAssemblyName(s: string): void;
49
+ setFileSource(newSource: unknown): void;
50
+ setColumnNameLineNumber(newnumber: number): void;
51
+ setFileType(typeName: string): void;
52
+ setError(error: unknown): void;
53
+ setLoading(arg: boolean): void;
54
+ cancelButton(): void;
55
+ setCachedFileHandle(arg: import("@jbrowse/core/util").FileLocation): void;
56
+ } & {
57
+ import(assemblyName: string): Promise<void>;
58
+ } & {
59
+ afterAttach(): void;
60
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>, [undefined]>;
61
+ spreadsheet: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IModelType<{
62
+ rowSet: import("mobx-state-tree").IType<import("./SpreadsheetModel").RowSet | undefined, import("./SpreadsheetModel").RowSet | undefined, import("./SpreadsheetModel").RowSet | undefined>;
63
+ columns: import("mobx-state-tree").IType<{
64
+ name: string;
65
+ }[], {
66
+ name: string;
67
+ }[], {
68
+ name: string;
69
+ }[]>;
70
+ assemblyName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
71
+ visibleColumns: import("mobx-state-tree").IType<Record<string, boolean>, Record<string, boolean>, Record<string, boolean>>;
72
+ }, {
73
+ isLoaded: boolean;
74
+ visibleRowFlags: Record<number, boolean> | undefined;
75
+ } & {
76
+ readonly rows: {
77
+ id: number;
78
+ feature: import("@jbrowse/core/util").SimpleFeatureSerialized | undefined;
79
+ }[] | undefined;
80
+ readonly initialized: boolean | undefined;
81
+ } & {
82
+ readonly dataGridColumns: ({
83
+ field: string;
84
+ width: number;
85
+ } | {
86
+ field: string;
87
+ width: number;
88
+ renderCell: ({ row }: import("@mui/x-data-grid").GridRenderCellParams<{
89
+ id: number;
90
+ feature: import("@jbrowse/core/util").SimpleFeatureSerialized | undefined;
91
+ }, any, any, import("@mui/x-data-grid").GridTreeNodeWithRender>) => import("react").JSX.Element | "N/A";
92
+ valueGetter?: undefined;
93
+ valueFormatter?: undefined;
94
+ } | {
95
+ field: string;
96
+ width: number;
97
+ valueGetter: (_val: unknown, row: {
98
+ feature?: import("@jbrowse/core/util").SimpleFeatureSerialized;
99
+ }) => number | undefined;
100
+ valueFormatter: (arg: never) => string;
101
+ renderCell?: undefined;
102
+ })[] | undefined;
103
+ } & {
104
+ readonly visibleRows: {
105
+ id: number;
106
+ feature: import("@jbrowse/core/util").SimpleFeatureSerialized | undefined;
107
+ }[] | undefined;
108
+ } & {
109
+ setVisibleRows(arg?: Record<number, boolean>): void;
110
+ setVisibleColumns(arg: Record<string, boolean>): void;
111
+ setLoaded(flag: boolean): void;
112
+ afterAttach(): void;
113
+ }, import("mobx-state-tree").ModelCreationType<import("mobx-state-tree/dist/internal").ExtractCFromProps<{
114
+ rowSet: import("mobx-state-tree").IType<import("./SpreadsheetModel").RowSet | undefined, import("./SpreadsheetModel").RowSet | undefined, import("./SpreadsheetModel").RowSet | undefined>;
115
+ columns: import("mobx-state-tree").IType<{
116
+ name: string;
117
+ }[], {
118
+ name: string;
119
+ }[], {
120
+ name: string;
121
+ }[]>;
122
+ assemblyName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
123
+ visibleColumns: import("mobx-state-tree").IType<Record<string, boolean>, Record<string, boolean>, Record<string, boolean>>;
124
+ }>>, import("mobx-state-tree")._NotCustomized>>;
125
+ }, {
126
+ width: number;
127
+ } & {
128
+ menuItems(): MenuItem[];
129
+ } & {
130
+ setDisplayName(name: string): void;
131
+ setWidth(newWidth: number): void;
132
+ setMinimized(flag: boolean): void;
133
+ } & {
134
+ width: number;
135
+ rowMenuItems: MenuItem[];
136
+ } & {
137
+ readonly assembly: any;
138
+ } & {
139
+ setRowMenuItems(newItems: MenuItem[]): void;
140
+ setWidth(newWidth: number): number;
141
+ setHeight(newHeight: number): number;
142
+ resizeHeight(distance: number): number;
143
+ resizeWidth(distance: number): number;
144
+ displaySpreadsheet(spreadsheet?: SpreadsheetModel): void;
145
+ } & {
146
+ menuItems(): {
147
+ label: string;
148
+ icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
149
+ muiName: string;
150
+ };
151
+ onClick: () => void;
152
+ }[];
153
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree").ModelSnapshotType<{
154
+ id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
155
+ displayName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
156
+ minimized: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
157
+ } & {
158
+ type: import("mobx-state-tree").ISimpleType<"SpreadsheetView">;
159
+ offsetPx: import("mobx-state-tree").IType<number | undefined, number, number>;
160
+ height: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<number>, [undefined]>;
161
+ hideVerticalResizeHandle: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
162
+ hideFilterControls: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
163
+ importWizard: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IModelType<{
164
+ fileType: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
165
+ hasColumnNameLine: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
166
+ columnNameLineNumber: import("mobx-state-tree").IType<number | undefined, number, number>;
167
+ selectedAssemblyName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
168
+ cachedFileLocation: import("mobx-state-tree").IType<import("@jbrowse/core/util").FileLocation | undefined, import("@jbrowse/core/util").FileLocation | undefined, import("@jbrowse/core/util").FileLocation | undefined>;
169
+ }, {
170
+ fileTypes: string[];
171
+ fileSource: any;
172
+ error: unknown;
173
+ loading: boolean;
174
+ } & {
175
+ readonly isReadyToOpen: any;
176
+ readonly fileName: any;
177
+ readonly requiresUnzip: any;
178
+ isValidRefName(refName: string, assemblyName?: string): boolean;
179
+ tracksForAssembly(selectedAssembly: string): {
180
+ track: {
181
+ [x: string]: any;
182
+ } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
183
+ setSubschema(slotName: string, data: Record<string, unknown>): Record<string, unknown> | ({
184
+ [x: string]: any;
185
+ } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
186
+ setSubschema(slotName: string, data: Record<string, unknown>): Record<string, unknown> | ({
187
+ [x: string]: any;
188
+ } & import("mobx-state-tree/dist/internal").NonEmptyObject & any & import("mobx-state-tree").IStateTreeNode<import("@jbrowse/core/configuration").AnyConfigurationSchemaType>);
189
+ } & import("mobx-state-tree").IStateTreeNode<import("@jbrowse/core/configuration").AnyConfigurationSchemaType>);
190
+ } & import("mobx-state-tree").IStateTreeNode<import("@jbrowse/core/configuration").AnyConfigurationSchemaType>;
191
+ label: string;
192
+ assemblyNames: any;
193
+ type: string;
194
+ loc: import("@jbrowse/core/util").FileLocation;
195
+ }[];
196
+ } & {
197
+ setSelectedAssemblyName(s: string): void;
198
+ setFileSource(newSource: unknown): void;
199
+ setColumnNameLineNumber(newnumber: number): void;
200
+ setFileType(typeName: string): void;
201
+ setError(error: unknown): void;
202
+ setLoading(arg: boolean): void;
203
+ cancelButton(): void;
204
+ setCachedFileHandle(arg: import("@jbrowse/core/util").FileLocation): void;
205
+ } & {
206
+ import(assemblyName: string): Promise<void>;
207
+ } & {
208
+ afterAttach(): void;
209
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>, [undefined]>;
210
+ spreadsheet: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IModelType<{
211
+ rowSet: import("mobx-state-tree").IType<import("./SpreadsheetModel").RowSet | undefined, import("./SpreadsheetModel").RowSet | undefined, import("./SpreadsheetModel").RowSet | undefined>;
212
+ columns: import("mobx-state-tree").IType<{
213
+ name: string;
214
+ }[], {
215
+ name: string;
216
+ }[], {
217
+ name: string;
218
+ }[]>;
219
+ assemblyName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
220
+ visibleColumns: import("mobx-state-tree").IType<Record<string, boolean>, Record<string, boolean>, Record<string, boolean>>;
221
+ }, {
222
+ isLoaded: boolean;
223
+ visibleRowFlags: Record<number, boolean> | undefined;
224
+ } & {
225
+ readonly rows: {
226
+ id: number;
227
+ feature: import("@jbrowse/core/util").SimpleFeatureSerialized | undefined;
228
+ }[] | undefined;
229
+ readonly initialized: boolean | undefined;
230
+ } & {
231
+ readonly dataGridColumns: ({
232
+ field: string;
233
+ width: number;
234
+ } | {
235
+ field: string;
236
+ width: number;
237
+ renderCell: ({ row }: import("@mui/x-data-grid").GridRenderCellParams<{
238
+ id: number;
239
+ feature: import("@jbrowse/core/util").SimpleFeatureSerialized | undefined;
240
+ }, any, any, import("@mui/x-data-grid").GridTreeNodeWithRender>) => import("react").JSX.Element | "N/A";
241
+ valueGetter?: undefined;
242
+ valueFormatter?: undefined;
243
+ } | {
244
+ field: string;
245
+ width: number;
246
+ valueGetter: (_val: unknown, row: {
247
+ feature?: import("@jbrowse/core/util").SimpleFeatureSerialized;
248
+ }) => number | undefined;
249
+ valueFormatter: (arg: never) => string;
250
+ renderCell?: undefined;
251
+ })[] | undefined;
252
+ } & {
253
+ readonly visibleRows: {
254
+ id: number;
255
+ feature: import("@jbrowse/core/util").SimpleFeatureSerialized | undefined;
256
+ }[] | undefined;
257
+ } & {
258
+ setVisibleRows(arg?: Record<number, boolean>): void;
259
+ setVisibleColumns(arg: Record<string, boolean>): void;
260
+ setLoaded(flag: boolean): void;
261
+ afterAttach(): void;
262
+ }, import("mobx-state-tree").ModelCreationType<import("mobx-state-tree/dist/internal").ExtractCFromProps<{
263
+ rowSet: import("mobx-state-tree").IType<import("./SpreadsheetModel").RowSet | undefined, import("./SpreadsheetModel").RowSet | undefined, import("./SpreadsheetModel").RowSet | undefined>;
264
+ columns: import("mobx-state-tree").IType<{
265
+ name: string;
266
+ }[], {
267
+ name: string;
268
+ }[], {
269
+ name: string;
270
+ }[]>;
271
+ assemblyName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
272
+ visibleColumns: import("mobx-state-tree").IType<Record<string, boolean>, Record<string, boolean>, Record<string, boolean>>;
273
+ }>>, import("mobx-state-tree")._NotCustomized>>;
274
+ }> | {
275
+ spreadsheet: {
276
+ columns: {
277
+ name: string;
278
+ }[];
279
+ assemblyName: string | undefined;
280
+ visibleColumns: Record<string, boolean>;
281
+ };
282
+ id: string;
283
+ type: "SpreadsheetView";
284
+ height: number;
285
+ displayName: string | undefined;
286
+ minimized: boolean;
287
+ hideVerticalResizeHandle: boolean;
288
+ offsetPx: number;
289
+ hideFilterControls: boolean;
290
+ importWizard: import("mobx-state-tree").ModelSnapshotType<{
291
+ fileType: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
292
+ hasColumnNameLine: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
293
+ columnNameLineNumber: import("mobx-state-tree").IType<number | undefined, number, number>;
294
+ selectedAssemblyName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
295
+ cachedFileLocation: import("mobx-state-tree").IType<import("@jbrowse/core/util").FileLocation | undefined, import("@jbrowse/core/util").FileLocation | undefined, import("@jbrowse/core/util").FileLocation | undefined>;
296
+ }>;
297
+ }>;
298
+ export type SpreadsheetViewStateModel = ReturnType<typeof stateModelFactory>;
299
+ export type SpreadsheetViewModel = Instance<SpreadsheetViewStateModel>;
@@ -0,0 +1,88 @@
1
+ import { BaseViewModel } from '@jbrowse/core/pluggableElementTypes/models';
2
+ import { getSession } from '@jbrowse/core/util';
3
+ import FolderOpenIcon from '@mui/icons-material/FolderOpen';
4
+ import { cast, types } from 'mobx-state-tree';
5
+ import ImportWizard from './ImportWizard';
6
+ import Spreadsheet from './SpreadsheetModel';
7
+ const minHeight = 40;
8
+ const defaultHeight = 440;
9
+ function x() { }
10
+ export default function stateModelFactory() {
11
+ const ImportWizardModel = ImportWizard();
12
+ return types
13
+ .compose(BaseViewModel, types
14
+ .model('SpreadsheetView', {
15
+ type: types.literal('SpreadsheetView'),
16
+ offsetPx: 0,
17
+ height: types.optional(types.number, defaultHeight),
18
+ hideVerticalResizeHandle: false,
19
+ hideFilterControls: false,
20
+ importWizard: types.optional(ImportWizardModel, () => ImportWizardModel.create()),
21
+ spreadsheet: types.maybe(Spreadsheet()),
22
+ })
23
+ .volatile(() => ({
24
+ width: 400,
25
+ rowMenuItems: [],
26
+ }))
27
+ .views(self => ({
28
+ get assembly() {
29
+ var _a, _b;
30
+ const name = (_a = self.spreadsheet) === null || _a === void 0 ? void 0 : _a.assemblyName;
31
+ return name
32
+ ? (_b = getSession(self).assemblyManager.get(name)) === null || _b === void 0 ? void 0 : _b.configuration
33
+ : undefined;
34
+ },
35
+ }))
36
+ .actions(self => ({
37
+ setRowMenuItems(newItems) {
38
+ self.rowMenuItems = newItems;
39
+ },
40
+ setWidth(newWidth) {
41
+ self.width = newWidth;
42
+ return self.width;
43
+ },
44
+ setHeight(newHeight) {
45
+ self.height = Math.max(newHeight, minHeight);
46
+ return self.height;
47
+ },
48
+ resizeHeight(distance) {
49
+ const oldHeight = self.height;
50
+ const newHeight = this.setHeight(self.height + distance);
51
+ return newHeight - oldHeight;
52
+ },
53
+ resizeWidth(distance) {
54
+ const oldWidth = self.width;
55
+ const newWidth = this.setWidth(self.width + distance);
56
+ return newWidth - oldWidth;
57
+ },
58
+ displaySpreadsheet(spreadsheet) {
59
+ self.spreadsheet = cast(spreadsheet);
60
+ },
61
+ }))
62
+ .views(self => ({
63
+ menuItems() {
64
+ return [
65
+ {
66
+ label: 'Return to import form',
67
+ icon: FolderOpenIcon,
68
+ onClick: () => {
69
+ self.displaySpreadsheet(undefined);
70
+ },
71
+ },
72
+ ];
73
+ },
74
+ })))
75
+ .postProcessSnapshot(snap => {
76
+ const { importWizard, spreadsheet } = snap;
77
+ if (importWizard.cachedFileLocation && spreadsheet) {
78
+ const { rowSet, ...rest } = spreadsheet;
79
+ return {
80
+ ...snap,
81
+ spreadsheet: rest,
82
+ };
83
+ }
84
+ else {
85
+ return snap;
86
+ }
87
+ });
88
+ }
@@ -0,0 +1 @@
1
+ export { BreakendMultiLevelOptionDialog as default } from '@jbrowse/sv-core';
@@ -0,0 +1 @@
1
+ export { BreakendMultiLevelOptionDialog as default } from '@jbrowse/sv-core';
@@ -0,0 +1 @@
1
+ export { BreakendSingleLevelOptionDialog as default } from '@jbrowse/sv-core';
@@ -0,0 +1 @@
1
+ export { BreakendSingleLevelOptionDialog as default } from '@jbrowse/sv-core';
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import type { AbstractSessionModel, SimpleFeatureSerialized } from '@jbrowse/core/util';
3
+ export default function FeatureMenu({ assemblyName, session, spreadsheetViewId, feature, }: {
4
+ spreadsheetViewId: string;
5
+ assemblyName: string;
6
+ session: AbstractSessionModel;
7
+ feature: SimpleFeatureSerialized;
8
+ }): React.JSX.Element;
@@ -0,0 +1,66 @@
1
+ import React, { lazy } from 'react';
2
+ import CascadingMenuButton from '@jbrowse/core/ui/CascadingMenuButton';
3
+ import { SimpleFeature, assembleLocStringFast } from '@jbrowse/core/util';
4
+ import ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown';
5
+ import { getEnv } from 'mobx-state-tree';
6
+ import { locationLinkClick } from '../util';
7
+ const BreakendMultiLevelOptionDialog = lazy(() => import('./BreakendMultiLevelOptionDialog'));
8
+ const BreakendSingleLevelOptionDialog = lazy(() => import('./BreakendSingleLevelOptionDialog'));
9
+ export default function FeatureMenu({ assemblyName, session, spreadsheetViewId, feature, }) {
10
+ return (React.createElement(CascadingMenuButton, { menuItems: [
11
+ {
12
+ label: 'Open in linear genome view',
13
+ onClick: async () => {
14
+ try {
15
+ await locationLinkClick({
16
+ spreadsheetViewId,
17
+ assemblyName,
18
+ session,
19
+ locString: assembleLocStringFast(feature),
20
+ });
21
+ }
22
+ catch (e) {
23
+ console.error(e);
24
+ session.notifyError(`${e}`, e);
25
+ }
26
+ },
27
+ },
28
+ {
29
+ label: 'Open in single-level split view',
30
+ onClick: async () => {
31
+ const { pluginManager } = getEnv(session);
32
+ const viewType = pluginManager.getViewType('BreakpointSplitView');
33
+ session.queueDialog(handleClose => [
34
+ BreakendSingleLevelOptionDialog,
35
+ {
36
+ handleClose,
37
+ session,
38
+ stableViewId: `${spreadsheetViewId}_${assemblyName}_breakpointsplitview_singlelevel`,
39
+ feature: new SimpleFeature(feature),
40
+ viewType,
41
+ assemblyName,
42
+ },
43
+ ]);
44
+ },
45
+ },
46
+ {
47
+ label: 'Open in multi-level split view',
48
+ onClick: async () => {
49
+ const { pluginManager } = getEnv(session);
50
+ const viewType = pluginManager.getViewType('BreakpointSplitView');
51
+ session.queueDialog(handleClose => [
52
+ BreakendMultiLevelOptionDialog,
53
+ {
54
+ handleClose,
55
+ session,
56
+ stableViewId: `${spreadsheetViewId}_${assemblyName}_breakpointsplitview_multilevel`,
57
+ feature: new SimpleFeature(feature),
58
+ viewType,
59
+ assemblyName,
60
+ },
61
+ ]);
62
+ },
63
+ },
64
+ ] },
65
+ React.createElement(ArrowDropDownIcon, null)));
66
+ }
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
- import { ImportWizardModel } from '../models/ImportWizard';
3
- declare const ImportWizard: ({ model }: {
2
+ import type { ImportWizardModel } from '../ImportWizard';
3
+ declare const ImportWizard: ({ model, }: {
4
4
  model: ImportWizardModel;
5
5
  }) => React.JSX.Element;
6
6
  export default ImportWizard;
@@ -1,62 +1,59 @@
1
1
  import React, { useState } from 'react';
2
- import { Button, Checkbox, FormControl, FormGroup, FormLabel, FormControlLabel, RadioGroup, Radio, } from '@mui/material';
2
+ import { AssemblySelector, ErrorMessage, FileSelector, LoadingEllipses, } from '@jbrowse/core/ui';
3
+ import { getSession } from '@jbrowse/core/util';
4
+ import { Button, FormControl, FormControlLabel, FormGroup, FormLabel, Paper, Radio, RadioGroup, } from '@mui/material';
3
5
  import { observer } from 'mobx-react';
4
6
  import { getRoot } from 'mobx-state-tree';
5
- import { getSession } from '@jbrowse/core/util';
6
- import { FileSelector, ErrorMessage, AssemblySelector } from '@jbrowse/core/ui';
7
- import NumberEditor from './NumberEditor';
8
7
  import { makeStyles } from 'tss-react/mui';
8
+ import TrackSelector from './TrackSelector';
9
9
  const useStyles = makeStyles()({
10
10
  container: {
11
11
  margin: '0 auto',
12
- maxWidth: '25em',
12
+ maxWidth: '40em',
13
13
  padding: 20,
14
14
  },
15
15
  });
16
- const ImportWizard = observer(({ model }) => {
16
+ const ImportWizard = observer(function ({ model, }) {
17
17
  var _a;
18
18
  const session = getSession(model);
19
19
  const { classes } = useStyles();
20
20
  const { assemblyNames, assemblyManager } = session;
21
- const { fileType, canCancel, fileSource, isReadyToOpen, fileTypes, hasColumnNameLine, error, } = model;
22
- const [selected, setSelected] = useState(assemblyNames[0]);
23
- const err = ((_a = assemblyManager.get(selected)) === null || _a === void 0 ? void 0 : _a.error) || error;
24
- const showRowControls = fileType === 'CSV' || fileType === 'TSV';
21
+ const { loading, fileType, fileSource, isReadyToOpen, fileTypes, error } = model;
22
+ const [selectedAssembly, setSelectedAssembly] = useState(assemblyNames[0]);
23
+ const [selectorType, setSelectorType] = useState('custom');
24
+ const err = ((_a = assemblyManager.get(selectedAssembly)) === null || _a === void 0 ? void 0 : _a.error) || error;
25
25
  const rootModel = getRoot(model);
26
- return (React.createElement("div", { className: classes.container },
26
+ return (React.createElement("div", null,
27
27
  err ? React.createElement(ErrorMessage, { error: err }) : null,
28
- React.createElement("div", null,
29
- React.createElement(FormControl, { component: "fieldset" },
30
- React.createElement(FormLabel, { component: "legend" }, "Tabular file"),
31
- React.createElement(FormGroup, null,
32
- React.createElement(FileSelector, { location: fileSource, setLocation: arg => {
33
- model.setFileSource(arg);
34
- }, rootModel: rootModel })))),
35
- React.createElement("div", null,
36
- React.createElement(FormControl, { component: "fieldset" },
37
- React.createElement(FormLabel, { component: "legend" }, "File Type"),
38
- React.createElement(RadioGroup, { row: true, "aria-label": "file type", name: "type", value: fileType }, fileTypes.map(fileTypeName => (React.createElement(FormControlLabel, { key: fileTypeName, checked: fileType === fileTypeName, value: fileTypeName, onClick: () => {
39
- model.setFileType(fileTypeName);
40
- }, control: React.createElement(Radio, null), label: fileTypeName })))))),
41
- showRowControls ? (React.createElement("div", null,
42
- React.createElement(FormControl, { component: "fieldset" },
43
- React.createElement(FormLabel, { component: "legend" }, "Column Names"),
44
- React.createElement(FormControlLabel, { disabled: !showRowControls, label: "has column names on line", labelPlacement: "end", control: React.createElement(Checkbox, { checked: hasColumnNameLine, onClick: () => {
45
- model.toggleHasColumnNameLine();
46
- } }) }),
47
- React.createElement(NumberEditor, { model: model, disabled: !hasColumnNameLine, modelPropName: "columnNameLineNumber", modelSetterName: "setColumnNameLineNumber" })))) : null,
48
- React.createElement("div", null,
49
- React.createElement(AssemblySelector, { session: session, selected: selected, onChange: val => {
50
- setSelected(val);
51
- } })),
52
- React.createElement("div", null,
53
- canCancel ? (React.createElement(Button, { variant: "contained", color: "secondary", onClick: () => {
54
- model.cancelButton();
55
- }, disabled: !canCancel }, "Cancel")) : null,
56
- ' ',
57
- React.createElement(Button, { disabled: !isReadyToOpen || !!err, variant: "contained", "data-testid": "open_spreadsheet", color: "primary", onClick: () => {
58
- // eslint-disable-next-line @typescript-eslint/no-floating-promises
59
- model.import(selected);
60
- } }, "Open"))));
28
+ React.createElement(Paper, { className: classes.container },
29
+ loading ? React.createElement(LoadingEllipses, { variant: "h6" }) : null,
30
+ React.createElement("div", null,
31
+ React.createElement(FormControl, { component: "fieldset" },
32
+ React.createElement(RadioGroup, { row: true, "aria-label": "file type", name: "type", value: fileType, onChange: event => {
33
+ setSelectorType(event.target.value);
34
+ } }, Object.entries({
35
+ custom: 'Open file from URL or local computer',
36
+ existing: 'Open from track',
37
+ }).map(([key, val]) => (React.createElement(FormControlLabel, { key: key, checked: selectorType === key, value: key, control: React.createElement(Radio, null), label: val })))))),
38
+ selectorType === 'custom' ? (React.createElement("div", null,
39
+ React.createElement(FormControl, { component: "fieldset" },
40
+ React.createElement(FormGroup, null,
41
+ React.createElement(FileSelector, { inline: true, location: fileSource, rootModel: rootModel, setLocation: arg => {
42
+ model.setFileSource(arg);
43
+ } }))))) : selectedAssembly ? (React.createElement(TrackSelector, { model: model, selectedAssembly: selectedAssembly })) : (React.createElement("div", null, "Select assembly")),
44
+ React.createElement("div", null,
45
+ React.createElement(FormControl, { component: "fieldset" },
46
+ React.createElement(FormLabel, { component: "legend" }, "File Type"),
47
+ React.createElement(RadioGroup, { row: true, "aria-label": "file type", name: "type", value: fileType, onChange: event => {
48
+ model.setFileType(event.target.value);
49
+ } }, fileTypes.map(fileTypeName => (React.createElement(FormControlLabel, { key: fileTypeName, checked: fileType === fileTypeName, value: fileTypeName, control: React.createElement(Radio, null), label: fileTypeName })))))),
50
+ React.createElement("div", null,
51
+ React.createElement(AssemblySelector, { session: session, selected: selectedAssembly, onChange: val => {
52
+ setSelectedAssembly(val);
53
+ } })),
54
+ React.createElement("div", null,
55
+ React.createElement(Button, { disabled: !isReadyToOpen || !!err, variant: "contained", "data-testid": "open_spreadsheet", color: "primary", onClick: () => {
56
+ model.import(selectedAssembly);
57
+ } }, "Open")))));
61
58
  });
62
59
  export default ImportWizard;
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import type { SimpleFeatureSerialized } from '@jbrowse/core/util';
3
+ export default function LocationCell({ model, feature, }: {
4
+ model: {
5
+ assemblyName?: string;
6
+ };
7
+ feature: SimpleFeatureSerialized;
8
+ }): React.JSX.Element;
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ import { assembleLocString, getSession } from '@jbrowse/core/util';
3
+ import { Link } from '@mui/material';
4
+ import { getParent } from 'mobx-state-tree';
5
+ import { locationLinkClick } from '../util';
6
+ import FeatureMenu from './FeatureMenu';
7
+ export default function LocationCell({ model, feature, }) {
8
+ return (React.createElement(React.Fragment, null,
9
+ React.createElement(FeatureMenu, { session: getSession(model), spreadsheetViewId: getParent(model).id, assemblyName: model.assemblyName, feature: feature }),
10
+ React.createElement(Link, { href: "#", onClick: async (event) => {
11
+ try {
12
+ event.preventDefault();
13
+ await locationLinkClick({
14
+ spreadsheetViewId: getParent(model).id,
15
+ session: getSession(model),
16
+ locString: assembleLocString(feature),
17
+ assemblyName: model.assemblyName,
18
+ });
19
+ }
20
+ catch (e) {
21
+ console.error(e);
22
+ getSession(model).notifyError(`${e}`, e);
23
+ }
24
+ } }, assembleLocString(feature))));
25
+ }
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { ImportWizardModel } from '../models/ImportWizard';
2
+ import type { ImportWizardModel } from '../ImportWizard';
3
3
  declare const NumberEditor: ({ model, disabled, modelPropName, modelSetterName, }: {
4
4
  model: ImportWizardModel;
5
5
  disabled: boolean;