@jbrowse/plugin-spreadsheet-view 2.16.1 → 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 -66
  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 -181
  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 -127
  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 -38
  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 -176
  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 -120
  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
@@ -1,2 +1,2 @@
1
- import PluginManager from '@jbrowse/core/PluginManager';
1
+ import type PluginManager from '@jbrowse/core/PluginManager';
2
2
  export default function LaunchSpreadsheetViewF(pluginManager: PluginManager): void;
@@ -2,9 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.default = LaunchSpreadsheetViewF;
4
4
  function LaunchSpreadsheetViewF(pluginManager) {
5
- pluginManager.addToExtensionPoint('LaunchView-SpreadsheetView',
6
- // @ts-expect-error
7
- async ({ session, assembly, uri, fileType, }) => {
5
+ pluginManager.addToExtensionPoint('LaunchView-SpreadsheetView', async ({ session, assembly, uri, fileType, }) => {
8
6
  var _a, _b;
9
7
  const view = session.addView('SpreadsheetView');
10
8
  const exts = uri.split('.');
@@ -0,0 +1,51 @@
1
+ import type { FileLocation } from '@jbrowse/core/util';
2
+ import type { Instance } from 'mobx-state-tree';
3
+ export default function stateModelFactory(): import("mobx-state-tree").IModelType<{
4
+ fileType: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
5
+ hasColumnNameLine: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
6
+ columnNameLineNumber: import("mobx-state-tree").IType<number | undefined, number, number>;
7
+ selectedAssemblyName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
8
+ cachedFileLocation: import("mobx-state-tree").IType<FileLocation | undefined, FileLocation | undefined, FileLocation | undefined>;
9
+ }, {
10
+ fileTypes: string[];
11
+ fileSource: any;
12
+ error: unknown;
13
+ loading: boolean;
14
+ } & {
15
+ readonly isReadyToOpen: any;
16
+ readonly fileName: any;
17
+ readonly requiresUnzip: any;
18
+ isValidRefName(refName: string, assemblyName?: string): boolean;
19
+ tracksForAssembly(selectedAssembly: string): {
20
+ track: {
21
+ [x: string]: any;
22
+ } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
23
+ setSubschema(slotName: string, data: Record<string, unknown>): Record<string, unknown> | ({
24
+ [x: string]: any;
25
+ } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
26
+ setSubschema(slotName: string, data: Record<string, unknown>): Record<string, unknown> | ({
27
+ [x: string]: any;
28
+ } & import("mobx-state-tree/dist/internal").NonEmptyObject & any & import("mobx-state-tree").IStateTreeNode<import("@jbrowse/core/configuration").AnyConfigurationSchemaType>);
29
+ } & import("mobx-state-tree").IStateTreeNode<import("@jbrowse/core/configuration").AnyConfigurationSchemaType>);
30
+ } & import("mobx-state-tree").IStateTreeNode<import("@jbrowse/core/configuration").AnyConfigurationSchemaType>;
31
+ label: string;
32
+ assemblyNames: any;
33
+ type: string;
34
+ loc: FileLocation;
35
+ }[];
36
+ } & {
37
+ setSelectedAssemblyName(s: string): void;
38
+ setFileSource(newSource: unknown): void;
39
+ setColumnNameLineNumber(newnumber: number): void;
40
+ setFileType(typeName: string): void;
41
+ setError(error: unknown): void;
42
+ setLoading(arg: boolean): void;
43
+ cancelButton(): void;
44
+ setCachedFileHandle(arg: FileLocation): void;
45
+ } & {
46
+ import(assemblyName: string): Promise<void>;
47
+ } & {
48
+ afterAttach(): void;
49
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
50
+ export type ImportWizardStateModel = ReturnType<typeof stateModelFactory>;
51
+ export type ImportWizardModel = Instance<ImportWizardStateModel>;
@@ -0,0 +1,240 @@
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 (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.default = stateModelFactory;
27
+ const configuration_1 = require("@jbrowse/core/configuration");
28
+ const util_1 = require("@jbrowse/core/util");
29
+ const io_1 = require("@jbrowse/core/util/io");
30
+ const tracks_1 = require("@jbrowse/core/util/tracks");
31
+ const mobx_state_tree_1 = require("mobx-state-tree");
32
+ const IMPORT_SIZE_LIMIT = 100000000;
33
+ const fileTypes = ['VCF', 'BED', 'BEDPE', 'STAR-Fusion'];
34
+ const fileTypeParsers = {
35
+ VCF: () => Promise.resolve().then(() => __importStar(require('./importAdapters/VcfImport'))).then(r => r.parseVcfBuffer),
36
+ BED: () => Promise.resolve().then(() => __importStar(require('./importAdapters/BedImport'))).then(r => r.parseBedBuffer),
37
+ BEDPE: () => Promise.resolve().then(() => __importStar(require('./importAdapters/BedpeImport'))).then(r => r.parseBedPEBuffer),
38
+ 'STAR-Fusion': () => Promise.resolve().then(() => __importStar(require('./importAdapters/STARFusionImport'))).then(r => r.parseSTARFusionBuffer),
39
+ };
40
+ function getType(adapter) {
41
+ if (adapter.vcfLocation || adapter.vcfGzLocation) {
42
+ return 'VCF';
43
+ }
44
+ else if (adapter.bedLocation || adapter.bedGzLocation) {
45
+ return 'BED';
46
+ }
47
+ else if (adapter.bedpeLocation) {
48
+ return 'BEDPE';
49
+ }
50
+ else {
51
+ return undefined;
52
+ }
53
+ }
54
+ function getAdapterLoc(adapter) {
55
+ return (adapter.vcfLocation ||
56
+ adapter.vcfGzLocation ||
57
+ adapter.bedLocation ||
58
+ adapter.bedGzLocation ||
59
+ adapter.bedpeLocation);
60
+ }
61
+ const fileTypesRegexp = new RegExp(`\\.(${fileTypes.join('|')})(\\.gz)?$`, 'i');
62
+ function x() { }
63
+ function stateModelFactory() {
64
+ return mobx_state_tree_1.types
65
+ .model('SpreadsheetImportWizard', {
66
+ fileType: mobx_state_tree_1.types.optional(mobx_state_tree_1.types.enumeration(fileTypes), 'VCF'),
67
+ hasColumnNameLine: true,
68
+ columnNameLineNumber: 1,
69
+ selectedAssemblyName: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.string),
70
+ cachedFileLocation: mobx_state_tree_1.types.frozen(),
71
+ })
72
+ .volatile(() => ({
73
+ fileTypes,
74
+ fileSource: undefined,
75
+ error: undefined,
76
+ loading: false,
77
+ }))
78
+ .views(self => ({
79
+ get isReadyToOpen() {
80
+ return (self.fileSource &&
81
+ (self.fileSource.blobId ||
82
+ self.fileSource.localPath ||
83
+ self.fileSource.uri));
84
+ },
85
+ get fileName() {
86
+ return (self.fileSource.uri ||
87
+ self.fileSource.localPath ||
88
+ (self.fileSource.blobId && self.fileSource.name));
89
+ },
90
+ get requiresUnzip() {
91
+ return this.fileName.endsWith('gz');
92
+ },
93
+ isValidRefName(refName, assemblyName) {
94
+ const { assemblyManager } = (0, util_1.getSession)(self);
95
+ return !assemblyName
96
+ ? false
97
+ : assemblyManager.isValidRefName(refName, assemblyName);
98
+ },
99
+ tracksForAssembly(selectedAssembly) {
100
+ const session = (0, util_1.getSession)(self);
101
+ const { tracks = [], sessionTracks = [] } = session;
102
+ const allTracks = [
103
+ ...tracks,
104
+ ...sessionTracks,
105
+ ];
106
+ return allTracks
107
+ .map(track => {
108
+ const assemblyNames = (0, configuration_1.readConfObject)(track, 'assemblyNames');
109
+ const adapter = (0, configuration_1.readConfObject)(track, 'adapter');
110
+ const category = (0, configuration_1.readConfObject)(track, 'category').join(',');
111
+ const loc = getAdapterLoc(adapter);
112
+ return assemblyNames.includes(selectedAssembly) && loc
113
+ ? {
114
+ track,
115
+ label: [
116
+ category ? `[${category}]` : '',
117
+ (0, tracks_1.getTrackName)(track, session),
118
+ ]
119
+ .filter(f => !!f)
120
+ .join(' '),
121
+ assemblyNames,
122
+ type: getType(adapter) || 'UNKNOWN',
123
+ loc,
124
+ }
125
+ : undefined;
126
+ })
127
+ .filter(f => !!f)
128
+ .sort((a, b) => a.label.localeCompare(b.label));
129
+ },
130
+ }))
131
+ .actions(self => ({
132
+ setSelectedAssemblyName(s) {
133
+ self.selectedAssemblyName = s;
134
+ },
135
+ setFileSource(newSource) {
136
+ var _a;
137
+ self.fileSource = newSource;
138
+ self.error = undefined;
139
+ if (self.fileSource) {
140
+ const name = self.fileName;
141
+ if (name) {
142
+ const firstMatch = (_a = fileTypesRegexp.exec(name)) === null || _a === void 0 ? void 0 : _a[1];
143
+ if (firstMatch) {
144
+ self.fileType =
145
+ firstMatch === 'tsv' && name.includes('star-fusion')
146
+ ? 'STAR-Fusion'
147
+ : firstMatch.toUpperCase();
148
+ }
149
+ }
150
+ }
151
+ },
152
+ setColumnNameLineNumber(newnumber) {
153
+ if (newnumber > 0) {
154
+ self.columnNameLineNumber = newnumber;
155
+ }
156
+ },
157
+ setFileType(typeName) {
158
+ self.fileType = typeName;
159
+ },
160
+ setError(error) {
161
+ self.error = error;
162
+ },
163
+ setLoading(arg) {
164
+ self.loading = arg;
165
+ },
166
+ cancelButton() {
167
+ self.error = undefined;
168
+ (0, mobx_state_tree_1.getParent)(self).setDisplayMode();
169
+ },
170
+ setCachedFileHandle(arg) {
171
+ self.cachedFileLocation = arg;
172
+ },
173
+ }))
174
+ .actions(self => ({
175
+ async import(assemblyName) {
176
+ if (!self.fileSource) {
177
+ return;
178
+ }
179
+ self.selectedAssemblyName = assemblyName;
180
+ const type = self.fileType;
181
+ const typeParser = await fileTypeParsers[type]();
182
+ const { fetchAndMaybeUnzip } = await Promise.resolve().then(() => __importStar(require('@jbrowse/core/util')));
183
+ const { pluginManager } = (0, util_1.getEnv)(self);
184
+ const filehandle = (0, io_1.openLocation)(self.fileSource, pluginManager);
185
+ self.setLoading(true);
186
+ try {
187
+ const stat = await filehandle.stat();
188
+ if (stat.size > IMPORT_SIZE_LIMIT) {
189
+ self.setError(`File is too big. Tabular files are limited to at most ${(IMPORT_SIZE_LIMIT / 1000).toLocaleString()}kb.`);
190
+ return;
191
+ }
192
+ }
193
+ catch (e) {
194
+ console.warn(e);
195
+ }
196
+ finally {
197
+ self.setLoading(false);
198
+ }
199
+ self.setLoading(true);
200
+ try {
201
+ if (self.fileSource.uri) {
202
+ self.setCachedFileHandle({
203
+ uri: self.fileSource.uri,
204
+ baseUri: self.fileSource.baseUri,
205
+ locationType: 'UriLocation',
206
+ });
207
+ }
208
+ const data = await fetchAndMaybeUnzip(filehandle);
209
+ (0, mobx_state_tree_1.getParent)(self).displaySpreadsheet({
210
+ ...typeParser(data),
211
+ assemblyName,
212
+ });
213
+ }
214
+ catch (e) {
215
+ console.error(e);
216
+ self.setError(e);
217
+ }
218
+ finally {
219
+ self.setLoading(false);
220
+ }
221
+ },
222
+ }))
223
+ .actions(self => ({
224
+ afterAttach() {
225
+ ;
226
+ (async () => {
227
+ try {
228
+ if (self.cachedFileLocation && self.selectedAssemblyName) {
229
+ self.setFileSource(self.cachedFileLocation);
230
+ await self.import(self.selectedAssemblyName);
231
+ }
232
+ }
233
+ catch (e) {
234
+ console.error(e);
235
+ (0, util_1.getSession)(self).notifyError(`${e}`, e);
236
+ }
237
+ })();
238
+ },
239
+ }));
240
+ }
@@ -0,0 +1,79 @@
1
+ import React from 'react';
2
+ import type { SimpleFeatureSerialized } from '@jbrowse/core/util';
3
+ import type { Instance } from 'mobx-state-tree';
4
+ export interface Row {
5
+ feature?: SimpleFeatureSerialized;
6
+ cellData?: Record<string, unknown>;
7
+ cells?: {
8
+ text: unknown;
9
+ }[];
10
+ }
11
+ export interface RowSet {
12
+ rows: Row[];
13
+ }
14
+ export default function stateModelFactory(): import("mobx-state-tree").IModelType<{
15
+ rowSet: import("mobx-state-tree").IType<RowSet | undefined, RowSet | undefined, RowSet | undefined>;
16
+ columns: import("mobx-state-tree").IType<{
17
+ name: string;
18
+ }[], {
19
+ name: string;
20
+ }[], {
21
+ name: string;
22
+ }[]>;
23
+ assemblyName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
24
+ visibleColumns: import("mobx-state-tree").IType<Record<string, boolean>, Record<string, boolean>, Record<string, boolean>>;
25
+ }, {
26
+ isLoaded: boolean;
27
+ visibleRowFlags: Record<number, boolean> | undefined;
28
+ } & {
29
+ readonly rows: {
30
+ id: number;
31
+ feature: SimpleFeatureSerialized | undefined;
32
+ }[] | undefined;
33
+ readonly initialized: boolean | undefined;
34
+ } & {
35
+ readonly dataGridColumns: ({
36
+ field: string;
37
+ width: number;
38
+ } | {
39
+ field: string;
40
+ width: number;
41
+ renderCell: ({ row }: import("@mui/x-data-grid").GridRenderCellParams<{
42
+ id: number;
43
+ feature: SimpleFeatureSerialized | undefined;
44
+ }, any, any, import("@mui/x-data-grid").GridTreeNodeWithRender>) => React.JSX.Element | "N/A";
45
+ valueGetter?: undefined;
46
+ valueFormatter?: undefined;
47
+ } | {
48
+ field: string;
49
+ width: number;
50
+ valueGetter: (_val: unknown, row: {
51
+ feature?: SimpleFeatureSerialized;
52
+ }) => number | undefined;
53
+ valueFormatter: (arg: never) => string;
54
+ renderCell?: undefined;
55
+ })[] | undefined;
56
+ } & {
57
+ readonly visibleRows: {
58
+ id: number;
59
+ feature: SimpleFeatureSerialized | undefined;
60
+ }[] | undefined;
61
+ } & {
62
+ setVisibleRows(arg?: Record<number, boolean>): void;
63
+ setVisibleColumns(arg: Record<string, boolean>): void;
64
+ setLoaded(flag: boolean): void;
65
+ afterAttach(): void;
66
+ }, import("mobx-state-tree").ModelCreationType<import("mobx-state-tree/dist/internal").ExtractCFromProps<{
67
+ rowSet: import("mobx-state-tree").IType<RowSet | undefined, RowSet | undefined, RowSet | undefined>;
68
+ columns: import("mobx-state-tree").IType<{
69
+ name: string;
70
+ }[], {
71
+ name: string;
72
+ }[], {
73
+ name: string;
74
+ }[]>;
75
+ assemblyName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
76
+ visibleColumns: import("mobx-state-tree").IType<Record<string, boolean>, Record<string, boolean>, Record<string, boolean>>;
77
+ }>>, import("mobx-state-tree")._NotCustomized>;
78
+ export type SpreadsheetStateModel = ReturnType<typeof stateModelFactory>;
79
+ export type SpreadsheetModel = Instance<SpreadsheetStateModel>;
@@ -0,0 +1,133 @@
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.default = stateModelFactory;
7
+ const react_1 = __importDefault(require("react"));
8
+ const util_1 = require("@jbrowse/core/util");
9
+ const mobx_1 = require("mobx");
10
+ const mobx_state_tree_1 = require("mobx-state-tree");
11
+ const LocationCell_1 = __importDefault(require("./components/LocationCell"));
12
+ function stateModelFactory() {
13
+ return mobx_state_tree_1.types
14
+ .model('Spreadsheet', {
15
+ rowSet: mobx_state_tree_1.types.frozen(),
16
+ columns: mobx_state_tree_1.types.frozen(),
17
+ assemblyName: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.string),
18
+ visibleColumns: mobx_state_tree_1.types.frozen(),
19
+ })
20
+ .volatile(() => ({
21
+ isLoaded: false,
22
+ visibleRowFlags: undefined,
23
+ }))
24
+ .views(self => ({
25
+ get rows() {
26
+ var _a;
27
+ return (_a = self.rowSet) === null || _a === void 0 ? void 0 : _a.rows.map((row, i) => ({
28
+ id: i,
29
+ feature: row.feature,
30
+ ...Object.fromEntries(self.columns.map((c, idx) => {
31
+ var _a, _b, _c, _d;
32
+ return [
33
+ c.name,
34
+ (_b = (_a = row.cellData) === null || _a === void 0 ? void 0 : _a[c.name]) !== null && _b !== void 0 ? _b : (_d = (_c = row.cells) === null || _c === void 0 ? void 0 : _c[idx]) === null || _d === void 0 ? void 0 : _d.text,
35
+ ];
36
+ })),
37
+ }));
38
+ },
39
+ get initialized() {
40
+ var _a;
41
+ const session = (0, util_1.getSession)(self);
42
+ const name = self.assemblyName;
43
+ return name ? (_a = session.assemblyManager.get(name)) === null || _a === void 0 ? void 0 : _a.initialized : false;
44
+ },
45
+ }))
46
+ .views(self => ({
47
+ get dataGridColumns() {
48
+ const { rows } = self;
49
+ return rows
50
+ ? [
51
+ {
52
+ field: 'Location',
53
+ width: (0, util_1.measureGridWidth)(rows.map(row => row.feature ? (0, util_1.assembleLocStringFast)(row.feature) : 0)) + 40,
54
+ renderCell: ({ row }) => {
55
+ const { feature } = row;
56
+ return feature ? (react_1.default.createElement(LocationCell_1.default, { model: self, feature: feature })) : ('N/A');
57
+ },
58
+ },
59
+ {
60
+ field: 'Length',
61
+ width: (0, util_1.measureGridWidth)(rows.map(r => r.feature ? (0, util_1.toLocale)(r.feature.end - r.feature.start) : 0)),
62
+ valueGetter: (_val, row) => {
63
+ return row.feature
64
+ ? row.feature.end - row.feature.start
65
+ : undefined;
66
+ },
67
+ valueFormatter: arg => (0, util_1.toLocale)(arg),
68
+ },
69
+ ...self.columns.map(f => ({
70
+ field: f.name,
71
+ width: (0, util_1.measureGridWidth)([...rows.map(r => r[f.name]), f.name], { minWidth: 20 }),
72
+ })),
73
+ ]
74
+ : undefined;
75
+ },
76
+ }))
77
+ .views(self => ({
78
+ get visibleRows() {
79
+ var _a;
80
+ const { visibleRowFlags } = self;
81
+ return visibleRowFlags
82
+ ? (_a = self.rows) === null || _a === void 0 ? void 0 : _a.filter((f, idx) => !!visibleRowFlags[idx])
83
+ : self.rows;
84
+ },
85
+ }))
86
+ .actions(self => ({
87
+ setVisibleRows(arg) {
88
+ self.visibleRowFlags = arg;
89
+ },
90
+ setVisibleColumns(arg) {
91
+ self.visibleColumns = arg;
92
+ },
93
+ setLoaded(flag) {
94
+ self.isLoaded = flag;
95
+ },
96
+ afterAttach() {
97
+ (0, mobx_state_tree_1.addDisposer)(self, (0, mobx_1.autorun)(async () => {
98
+ const session = (0, util_1.getSession)(self);
99
+ const { assemblyManager } = session;
100
+ try {
101
+ if (self.assemblyName) {
102
+ await assemblyManager.waitForAssembly(self.assemblyName);
103
+ this.setLoaded(true);
104
+ }
105
+ }
106
+ catch (e) {
107
+ console.error(e);
108
+ session.notifyError(`Failed to load assembly ${self.assemblyName} ${e}`, e);
109
+ }
110
+ }));
111
+ },
112
+ }))
113
+ .preProcessSnapshot(snap => {
114
+ return snap
115
+ ? {
116
+ ...snap,
117
+ columns: snap.columns.filter(f => !f.isDerived),
118
+ rowSet: snap.rowSet
119
+ ? {
120
+ ...snap.rowSet,
121
+ rows: snap.rowSet.rows.map(r => {
122
+ var _a, _b;
123
+ return ({
124
+ ...r,
125
+ feature: (_a = r.feature) !== null && _a !== void 0 ? _a : (_b = r.extendedData) === null || _b === void 0 ? void 0 : _b.vcfFeature,
126
+ });
127
+ }),
128
+ }
129
+ : undefined,
130
+ }
131
+ : snap;
132
+ });
133
+ }