@jbrowse/plugin-spreadsheet-view 2.17.0 → 3.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 (201) 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 +250 -0
  5. package/dist/SpreadsheetView/SpreadsheetModel.d.ts +78 -0
  6. package/dist/SpreadsheetView/SpreadsheetModel.js +119 -0
  7. package/dist/SpreadsheetView/SpreadsheetViewModel.d.ts +299 -0
  8. package/dist/SpreadsheetView/SpreadsheetViewModel.js +101 -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 +7 -0
  14. package/dist/SpreadsheetView/components/FeatureMenu.js +105 -0
  15. package/dist/SpreadsheetView/components/ImportWizard.d.ts +3 -4
  16. package/dist/SpreadsheetView/components/ImportWizard.js +25 -68
  17. package/dist/SpreadsheetView/components/LocationCell.d.ts +7 -0
  18. package/dist/SpreadsheetView/components/LocationCell.js +29 -0
  19. package/dist/SpreadsheetView/components/NumberEditor.d.ts +2 -3
  20. package/dist/SpreadsheetView/components/NumberEditor.js +4 -28
  21. package/dist/SpreadsheetView/components/SpreadsheetDataGrid.d.ts +5 -0
  22. package/dist/SpreadsheetView/components/SpreadsheetDataGrid.js +23 -0
  23. package/dist/SpreadsheetView/components/SpreadsheetView.d.ts +4 -5
  24. package/dist/SpreadsheetView/components/SpreadsheetView.js +25 -63
  25. package/dist/SpreadsheetView/components/SpreadsheetViewActual.d.ts +5 -0
  26. package/dist/SpreadsheetView/components/SpreadsheetViewActual.js +34 -0
  27. package/dist/SpreadsheetView/components/TrackSelector.d.ts +6 -0
  28. package/dist/SpreadsheetView/components/TrackSelector.js +27 -0
  29. package/dist/SpreadsheetView/importAdapters/BedImport.d.ts +26 -17
  30. package/dist/SpreadsheetView/importAdapters/BedImport.js +53 -139
  31. package/dist/SpreadsheetView/importAdapters/BedpeImport.d.ts +36 -0
  32. package/dist/SpreadsheetView/importAdapters/BedpeImport.js +79 -0
  33. package/dist/SpreadsheetView/importAdapters/STARFusionImport.d.ts +25 -9
  34. package/dist/SpreadsheetView/importAdapters/STARFusionImport.js +27 -62
  35. package/dist/SpreadsheetView/importAdapters/VcfImport.d.ts +19 -12
  36. package/dist/SpreadsheetView/importAdapters/VcfImport.js +53 -98
  37. package/dist/SpreadsheetView/importAdapters/isNumber.d.ts +1 -0
  38. package/dist/SpreadsheetView/importAdapters/isNumber.js +14 -0
  39. package/dist/SpreadsheetView/importAdapters/util.d.ts +2 -0
  40. package/dist/SpreadsheetView/importAdapters/util.js +22 -0
  41. package/dist/SpreadsheetView/index.d.ts +2 -2
  42. package/dist/SpreadsheetView/index.js +19 -9
  43. package/dist/SpreadsheetView/util.d.ts +7 -0
  44. package/dist/SpreadsheetView/util.js +13 -0
  45. package/dist/index.d.ts +1 -1
  46. package/dist/index.js +1 -3
  47. package/esm/LaunchSpreadsheetView/index.d.ts +1 -1
  48. package/esm/LaunchSpreadsheetView/index.js +1 -3
  49. package/esm/SpreadsheetView/ImportWizard.d.ts +51 -0
  50. package/esm/SpreadsheetView/ImportWizard.js +214 -0
  51. package/esm/SpreadsheetView/SpreadsheetModel.d.ts +78 -0
  52. package/esm/SpreadsheetView/SpreadsheetModel.js +113 -0
  53. package/esm/SpreadsheetView/SpreadsheetViewModel.d.ts +299 -0
  54. package/esm/SpreadsheetView/SpreadsheetViewModel.js +95 -0
  55. package/esm/SpreadsheetView/components/BreakendMultiLevelOptionDialog.d.ts +1 -0
  56. package/esm/SpreadsheetView/components/BreakendMultiLevelOptionDialog.js +1 -0
  57. package/esm/SpreadsheetView/components/BreakendSingleLevelOptionDialog.d.ts +1 -0
  58. package/esm/SpreadsheetView/components/BreakendSingleLevelOptionDialog.js +1 -0
  59. package/esm/SpreadsheetView/components/FeatureMenu.d.ts +7 -0
  60. package/esm/SpreadsheetView/components/FeatureMenu.js +66 -0
  61. package/esm/SpreadsheetView/components/ImportWizard.d.ts +3 -4
  62. package/esm/SpreadsheetView/components/ImportWizard.js +26 -46
  63. package/esm/SpreadsheetView/components/LocationCell.d.ts +7 -0
  64. package/esm/SpreadsheetView/components/LocationCell.js +23 -0
  65. package/esm/SpreadsheetView/components/NumberEditor.d.ts +2 -3
  66. package/esm/SpreadsheetView/components/NumberEditor.js +4 -5
  67. package/esm/SpreadsheetView/components/SpreadsheetDataGrid.d.ts +5 -0
  68. package/esm/SpreadsheetView/components/SpreadsheetDataGrid.js +21 -0
  69. package/esm/SpreadsheetView/components/SpreadsheetView.d.ts +4 -5
  70. package/esm/SpreadsheetView/components/SpreadsheetView.js +8 -56
  71. package/esm/SpreadsheetView/components/SpreadsheetViewActual.d.ts +5 -0
  72. package/esm/SpreadsheetView/components/SpreadsheetViewActual.js +29 -0
  73. package/esm/SpreadsheetView/components/TrackSelector.d.ts +6 -0
  74. package/esm/SpreadsheetView/components/TrackSelector.js +25 -0
  75. package/esm/SpreadsheetView/importAdapters/BedImport.d.ts +26 -17
  76. package/esm/SpreadsheetView/importAdapters/BedImport.js +53 -137
  77. package/esm/SpreadsheetView/importAdapters/BedpeImport.d.ts +36 -0
  78. package/esm/SpreadsheetView/importAdapters/BedpeImport.js +76 -0
  79. package/esm/SpreadsheetView/importAdapters/STARFusionImport.d.ts +25 -9
  80. package/esm/SpreadsheetView/importAdapters/STARFusionImport.js +27 -62
  81. package/esm/SpreadsheetView/importAdapters/VcfImport.d.ts +19 -12
  82. package/esm/SpreadsheetView/importAdapters/VcfImport.js +53 -97
  83. package/esm/SpreadsheetView/importAdapters/isNumber.d.ts +1 -0
  84. package/esm/SpreadsheetView/importAdapters/isNumber.js +11 -0
  85. package/esm/SpreadsheetView/importAdapters/util.d.ts +2 -0
  86. package/esm/SpreadsheetView/importAdapters/util.js +18 -0
  87. package/esm/SpreadsheetView/index.d.ts +2 -2
  88. package/esm/SpreadsheetView/index.js +2 -2
  89. package/esm/SpreadsheetView/util.d.ts +7 -0
  90. package/esm/SpreadsheetView/util.js +10 -0
  91. package/esm/index.d.ts +1 -1
  92. package/esm/index.js +1 -3
  93. package/package.json +7 -7
  94. package/dist/SpreadsheetView/components/CellData.d.ts +0 -9
  95. package/dist/SpreadsheetView/components/CellData.js +0 -14
  96. package/dist/SpreadsheetView/components/ColumnFilterControls.d.ts +0 -3
  97. package/dist/SpreadsheetView/components/ColumnFilterControls.js +0 -58
  98. package/dist/SpreadsheetView/components/ColumnMenu.d.ts +0 -16
  99. package/dist/SpreadsheetView/components/ColumnMenu.js +0 -140
  100. package/dist/SpreadsheetView/components/DataRow.d.ts +0 -12
  101. package/dist/SpreadsheetView/components/DataRow.js +0 -81
  102. package/dist/SpreadsheetView/components/DataTable.d.ts +0 -10
  103. package/dist/SpreadsheetView/components/DataTable.js +0 -42
  104. package/dist/SpreadsheetView/components/DataTableHeader.d.ts +0 -6
  105. package/dist/SpreadsheetView/components/DataTableHeader.js +0 -104
  106. package/dist/SpreadsheetView/components/GlobalFilterControls.d.ts +0 -5
  107. package/dist/SpreadsheetView/components/GlobalFilterControls.js +0 -68
  108. package/dist/SpreadsheetView/components/RowCountMessage.d.ts +0 -6
  109. package/dist/SpreadsheetView/components/RowCountMessage.js +0 -33
  110. package/dist/SpreadsheetView/components/RowMenu.d.ts +0 -9
  111. package/dist/SpreadsheetView/components/RowMenu.js +0 -39
  112. package/dist/SpreadsheetView/components/SortIndicator.d.ts +0 -6
  113. package/dist/SpreadsheetView/components/SortIndicator.js +0 -27
  114. package/dist/SpreadsheetView/components/Spreadsheet.d.ts +0 -11
  115. package/dist/SpreadsheetView/components/Spreadsheet.js +0 -25
  116. package/dist/SpreadsheetView/components/StatusBar.d.ts +0 -11
  117. package/dist/SpreadsheetView/components/StatusBar.js +0 -44
  118. package/dist/SpreadsheetView/importAdapters/ImportUtils.d.ts +0 -42
  119. package/dist/SpreadsheetView/importAdapters/ImportUtils.js +0 -123
  120. package/dist/SpreadsheetView/models/ColumnDataTypes/LocEnd.d.ts +0 -12
  121. package/dist/SpreadsheetView/models/ColumnDataTypes/LocEnd.js +0 -20
  122. package/dist/SpreadsheetView/models/ColumnDataTypes/LocRef.d.ts +0 -12
  123. package/dist/SpreadsheetView/models/ColumnDataTypes/LocRef.js +0 -20
  124. package/dist/SpreadsheetView/models/ColumnDataTypes/LocStart.d.ts +0 -12
  125. package/dist/SpreadsheetView/models/ColumnDataTypes/LocStart.js +0 -20
  126. package/dist/SpreadsheetView/models/ColumnDataTypes/LocString.d.ts +0 -13
  127. package/dist/SpreadsheetView/models/ColumnDataTypes/LocString.js +0 -183
  128. package/dist/SpreadsheetView/models/ColumnDataTypes/MakeSpreadsheetColumnType.d.ts +0 -19
  129. package/dist/SpreadsheetView/models/ColumnDataTypes/MakeSpreadsheetColumnType.js +0 -23
  130. package/dist/SpreadsheetView/models/ColumnDataTypes/Number.d.ts +0 -30
  131. package/dist/SpreadsheetView/models/ColumnDataTypes/Number.js +0 -126
  132. package/dist/SpreadsheetView/models/ColumnDataTypes/Text.d.ts +0 -28
  133. package/dist/SpreadsheetView/models/ColumnDataTypes/Text.js +0 -129
  134. package/dist/SpreadsheetView/models/ColumnDataTypes/index.d.ts +0 -71
  135. package/dist/SpreadsheetView/models/ColumnDataTypes/index.js +0 -37
  136. package/dist/SpreadsheetView/models/FilterControls.d.ts +0 -26
  137. package/dist/SpreadsheetView/models/FilterControls.js +0 -85
  138. package/dist/SpreadsheetView/models/ImportWizard.d.ts +0 -31
  139. package/dist/SpreadsheetView/models/ImportWizard.js +0 -186
  140. package/dist/SpreadsheetView/models/Row.d.ts +0 -17
  141. package/dist/SpreadsheetView/models/Row.js +0 -43
  142. package/dist/SpreadsheetView/models/Spreadsheet.d.ts +0 -260
  143. package/dist/SpreadsheetView/models/Spreadsheet.js +0 -174
  144. package/dist/SpreadsheetView/models/SpreadsheetView.d.ts +0 -482
  145. package/dist/SpreadsheetView/models/SpreadsheetView.js +0 -199
  146. package/dist/SpreadsheetView/models/StaticRowSet.d.ts +0 -163
  147. package/dist/SpreadsheetView/models/StaticRowSet.js +0 -56
  148. package/esm/SpreadsheetView/components/CellData.d.ts +0 -9
  149. package/esm/SpreadsheetView/components/CellData.js +0 -9
  150. package/esm/SpreadsheetView/components/ColumnFilterControls.d.ts +0 -3
  151. package/esm/SpreadsheetView/components/ColumnFilterControls.js +0 -53
  152. package/esm/SpreadsheetView/components/ColumnMenu.d.ts +0 -16
  153. package/esm/SpreadsheetView/components/ColumnMenu.js +0 -135
  154. package/esm/SpreadsheetView/components/DataRow.d.ts +0 -12
  155. package/esm/SpreadsheetView/components/DataRow.js +0 -76
  156. package/esm/SpreadsheetView/components/DataTable.d.ts +0 -10
  157. package/esm/SpreadsheetView/components/DataTable.js +0 -37
  158. package/esm/SpreadsheetView/components/DataTableHeader.d.ts +0 -6
  159. package/esm/SpreadsheetView/components/DataTableHeader.js +0 -76
  160. package/esm/SpreadsheetView/components/GlobalFilterControls.d.ts +0 -5
  161. package/esm/SpreadsheetView/components/GlobalFilterControls.js +0 -40
  162. package/esm/SpreadsheetView/components/RowCountMessage.d.ts +0 -6
  163. package/esm/SpreadsheetView/components/RowCountMessage.js +0 -28
  164. package/esm/SpreadsheetView/components/RowMenu.d.ts +0 -9
  165. package/esm/SpreadsheetView/components/RowMenu.js +0 -34
  166. package/esm/SpreadsheetView/components/SortIndicator.d.ts +0 -6
  167. package/esm/SpreadsheetView/components/SortIndicator.js +0 -21
  168. package/esm/SpreadsheetView/components/Spreadsheet.d.ts +0 -11
  169. package/esm/SpreadsheetView/components/Spreadsheet.js +0 -20
  170. package/esm/SpreadsheetView/components/StatusBar.d.ts +0 -11
  171. package/esm/SpreadsheetView/components/StatusBar.js +0 -39
  172. package/esm/SpreadsheetView/importAdapters/ImportUtils.d.ts +0 -42
  173. package/esm/SpreadsheetView/importAdapters/ImportUtils.js +0 -95
  174. package/esm/SpreadsheetView/models/ColumnDataTypes/LocEnd.d.ts +0 -12
  175. package/esm/SpreadsheetView/models/ColumnDataTypes/LocEnd.js +0 -15
  176. package/esm/SpreadsheetView/models/ColumnDataTypes/LocRef.d.ts +0 -12
  177. package/esm/SpreadsheetView/models/ColumnDataTypes/LocRef.js +0 -15
  178. package/esm/SpreadsheetView/models/ColumnDataTypes/LocStart.d.ts +0 -12
  179. package/esm/SpreadsheetView/models/ColumnDataTypes/LocStart.js +0 -15
  180. package/esm/SpreadsheetView/models/ColumnDataTypes/LocString.d.ts +0 -13
  181. package/esm/SpreadsheetView/models/ColumnDataTypes/LocString.js +0 -178
  182. package/esm/SpreadsheetView/models/ColumnDataTypes/MakeSpreadsheetColumnType.d.ts +0 -19
  183. package/esm/SpreadsheetView/models/ColumnDataTypes/MakeSpreadsheetColumnType.js +0 -20
  184. package/esm/SpreadsheetView/models/ColumnDataTypes/Number.d.ts +0 -30
  185. package/esm/SpreadsheetView/models/ColumnDataTypes/Number.js +0 -119
  186. package/esm/SpreadsheetView/models/ColumnDataTypes/Text.d.ts +0 -28
  187. package/esm/SpreadsheetView/models/ColumnDataTypes/Text.js +0 -122
  188. package/esm/SpreadsheetView/models/ColumnDataTypes/index.d.ts +0 -71
  189. package/esm/SpreadsheetView/models/ColumnDataTypes/index.js +0 -29
  190. package/esm/SpreadsheetView/models/FilterControls.d.ts +0 -26
  191. package/esm/SpreadsheetView/models/FilterControls.js +0 -83
  192. package/esm/SpreadsheetView/models/ImportWizard.d.ts +0 -31
  193. package/esm/SpreadsheetView/models/ImportWizard.js +0 -161
  194. package/esm/SpreadsheetView/models/Row.d.ts +0 -17
  195. package/esm/SpreadsheetView/models/Row.js +0 -41
  196. package/esm/SpreadsheetView/models/Spreadsheet.d.ts +0 -260
  197. package/esm/SpreadsheetView/models/Spreadsheet.js +0 -169
  198. package/esm/SpreadsheetView/models/SpreadsheetView.d.ts +0 -482
  199. package/esm/SpreadsheetView/models/SpreadsheetView.js +0 -194
  200. package/esm/SpreadsheetView/models/StaticRowSet.d.ts +0 -163
  201. package/esm/SpreadsheetView/models/StaticRowSet.js +0 -51
@@ -1,90 +1,47 @@
1
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
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
26
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
4
  };
28
5
  Object.defineProperty(exports, "__esModule", { value: true });
29
- const react_1 = __importStar(require("react"));
6
+ const jsx_runtime_1 = require("react/jsx-runtime");
7
+ const react_1 = require("react");
8
+ const ui_1 = require("@jbrowse/core/ui");
9
+ const util_1 = require("@jbrowse/core/util");
30
10
  const material_1 = require("@mui/material");
31
11
  const mobx_react_1 = require("mobx-react");
32
12
  const mobx_state_tree_1 = require("mobx-state-tree");
33
- const util_1 = require("@jbrowse/core/util");
34
- const ui_1 = require("@jbrowse/core/ui");
35
- const NumberEditor_1 = __importDefault(require("./NumberEditor"));
36
13
  const mui_1 = require("tss-react/mui");
14
+ const TrackSelector_1 = __importDefault(require("./TrackSelector"));
37
15
  const useStyles = (0, mui_1.makeStyles)()({
38
16
  container: {
39
17
  margin: '0 auto',
40
- maxWidth: '25em',
18
+ maxWidth: '40em',
41
19
  padding: 20,
42
20
  },
43
21
  });
44
- const ImportWizard = (0, mobx_react_1.observer)(({ model }) => {
22
+ const ImportWizard = (0, mobx_react_1.observer)(function ({ model, }) {
45
23
  var _a;
46
24
  const session = (0, util_1.getSession)(model);
47
25
  const { classes } = useStyles();
48
26
  const { assemblyNames, assemblyManager } = session;
49
- const { fileType, canCancel, fileSource, isReadyToOpen, fileTypes, hasColumnNameLine, error, } = model;
50
- const [selected, setSelected] = (0, react_1.useState)(assemblyNames[0]);
51
- const err = ((_a = assemblyManager.get(selected)) === null || _a === void 0 ? void 0 : _a.error) || error;
52
- const showRowControls = fileType === 'CSV' || fileType === 'TSV';
27
+ const { loading, fileType, fileSource, isReadyToOpen, fileTypes, error } = model;
28
+ const [selectedAssembly, setSelectedAssembly] = (0, react_1.useState)(assemblyNames[0]);
29
+ const [selectorType, setSelectorType] = (0, react_1.useState)('custom');
30
+ const err = ((_a = assemblyManager.get(selectedAssembly)) === null || _a === void 0 ? void 0 : _a.error) || error;
53
31
  const rootModel = (0, mobx_state_tree_1.getRoot)(model);
54
- return (react_1.default.createElement("div", { className: classes.container },
55
- err ? react_1.default.createElement(ui_1.ErrorMessage, { error: err }) : null,
56
- react_1.default.createElement("div", null,
57
- react_1.default.createElement(material_1.FormControl, { component: "fieldset" },
58
- react_1.default.createElement(material_1.FormLabel, { component: "legend" }, "Tabular file"),
59
- react_1.default.createElement(material_1.FormGroup, null,
60
- react_1.default.createElement(ui_1.FileSelector, { location: fileSource, setLocation: arg => {
61
- model.setFileSource(arg);
62
- }, rootModel: rootModel })))),
63
- react_1.default.createElement("div", null,
64
- react_1.default.createElement(material_1.FormControl, { component: "fieldset" },
65
- react_1.default.createElement(material_1.FormLabel, { component: "legend" }, "File Type"),
66
- react_1.default.createElement(material_1.RadioGroup, { row: true, "aria-label": "file type", name: "type", value: fileType }, fileTypes.map(fileTypeName => (react_1.default.createElement(material_1.FormControlLabel, { key: fileTypeName, checked: fileType === fileTypeName, value: fileTypeName, onClick: () => {
67
- model.setFileType(fileTypeName);
68
- }, control: react_1.default.createElement(material_1.Radio, null), label: fileTypeName })))))),
69
- showRowControls ? (react_1.default.createElement("div", null,
70
- react_1.default.createElement(material_1.FormControl, { component: "fieldset" },
71
- react_1.default.createElement(material_1.FormLabel, { component: "legend" }, "Column Names"),
72
- react_1.default.createElement(material_1.FormControlLabel, { disabled: !showRowControls, label: "has column names on line", labelPlacement: "end", control: react_1.default.createElement(material_1.Checkbox, { checked: hasColumnNameLine, onClick: () => {
73
- model.toggleHasColumnNameLine();
74
- } }) }),
75
- react_1.default.createElement(NumberEditor_1.default, { model: model, disabled: !hasColumnNameLine, modelPropName: "columnNameLineNumber", modelSetterName: "setColumnNameLineNumber" })))) : null,
76
- react_1.default.createElement("div", null,
77
- react_1.default.createElement(ui_1.AssemblySelector, { session: session, selected: selected, onChange: val => {
78
- setSelected(val);
79
- } })),
80
- react_1.default.createElement("div", null,
81
- canCancel ? (react_1.default.createElement(material_1.Button, { variant: "contained", color: "secondary", onClick: () => {
82
- model.cancelButton();
83
- }, disabled: !canCancel }, "Cancel")) : null,
84
- ' ',
85
- react_1.default.createElement(material_1.Button, { disabled: !isReadyToOpen || !!err, variant: "contained", "data-testid": "open_spreadsheet", color: "primary", onClick: () => {
86
- // eslint-disable-next-line @typescript-eslint/no-floating-promises
87
- model.import(selected);
88
- } }, "Open"))));
32
+ return ((0, jsx_runtime_1.jsxs)("div", { children: [err ? (0, jsx_runtime_1.jsx)(ui_1.ErrorMessage, { error: err }) : null, (0, jsx_runtime_1.jsxs)(material_1.Paper, { className: classes.container, children: [loading ? (0, jsx_runtime_1.jsx)(ui_1.LoadingEllipses, { variant: "h6" }) : null, (0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(material_1.FormControl, { component: "fieldset", children: (0, jsx_runtime_1.jsx)(material_1.RadioGroup, { row: true, "aria-label": "file type", name: "type", value: fileType, onChange: event => {
33
+ setSelectorType(event.target.value);
34
+ }, children: Object.entries({
35
+ custom: 'Open file from URL or local computer',
36
+ existing: 'Open from track',
37
+ }).map(([key, val]) => ((0, jsx_runtime_1.jsx)(material_1.FormControlLabel, { checked: selectorType === key, value: key, control: (0, jsx_runtime_1.jsx)(material_1.Radio, {}), label: val }, key))) }) }) }), selectorType === 'custom' ? ((0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(material_1.FormControl, { component: "fieldset", children: (0, jsx_runtime_1.jsx)(material_1.FormGroup, { children: (0, jsx_runtime_1.jsx)(ui_1.FileSelector, { inline: true, location: fileSource, rootModel: rootModel, setLocation: arg => {
38
+ model.setFileSource(arg);
39
+ } }) }) }) })) : selectedAssembly ? ((0, jsx_runtime_1.jsx)(TrackSelector_1.default, { model: model, selectedAssembly: selectedAssembly })) : ((0, jsx_runtime_1.jsx)("div", { children: "Select assembly" })), (0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsxs)(material_1.FormControl, { component: "fieldset", children: [(0, jsx_runtime_1.jsx)(material_1.FormLabel, { component: "legend", children: "File Type" }), (0, jsx_runtime_1.jsx)(material_1.RadioGroup, { row: true, "aria-label": "file type", name: "type", value: fileType, onChange: event => {
40
+ model.setFileType(event.target.value);
41
+ }, children: fileTypes.map(fileTypeName => ((0, jsx_runtime_1.jsx)(material_1.FormControlLabel, { checked: fileType === fileTypeName, value: fileTypeName, control: (0, jsx_runtime_1.jsx)(material_1.Radio, {}), label: fileTypeName }, fileTypeName))) })] }) }), (0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(ui_1.AssemblySelector, { session: session, selected: selectedAssembly, onChange: val => {
42
+ setSelectedAssembly(val);
43
+ } }) }), (0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(material_1.Button, { disabled: !isReadyToOpen || !!err, variant: "contained", "data-testid": "open_spreadsheet", color: "primary", onClick: () => {
44
+ model.import(selectedAssembly);
45
+ }, children: "Open" }) })] })] }));
89
46
  });
90
47
  exports.default = ImportWizard;
@@ -0,0 +1,7 @@
1
+ import type { SimpleFeatureSerialized } from '@jbrowse/core/util';
2
+ export default function LocationCell({ model, feature, }: {
3
+ model: {
4
+ assemblyName?: string;
5
+ };
6
+ feature: SimpleFeatureSerialized;
7
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,29 @@
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 = LocationCell;
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const util_1 = require("@jbrowse/core/util");
9
+ const material_1 = require("@mui/material");
10
+ const mobx_state_tree_1 = require("mobx-state-tree");
11
+ const util_2 = require("../util");
12
+ const FeatureMenu_1 = __importDefault(require("./FeatureMenu"));
13
+ function LocationCell({ model, feature, }) {
14
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(FeatureMenu_1.default, { session: (0, util_1.getSession)(model), spreadsheetViewId: (0, mobx_state_tree_1.getParent)(model).id, assemblyName: model.assemblyName, feature: feature }), (0, jsx_runtime_1.jsx)(material_1.Link, { href: "#", onClick: async (event) => {
15
+ try {
16
+ event.preventDefault();
17
+ await (0, util_2.locationLinkClick)({
18
+ spreadsheetViewId: (0, mobx_state_tree_1.getParent)(model).id,
19
+ session: (0, util_1.getSession)(model),
20
+ locString: (0, util_1.assembleLocString)(feature),
21
+ assemblyName: model.assemblyName,
22
+ });
23
+ }
24
+ catch (e) {
25
+ console.error(e);
26
+ (0, util_1.getSession)(model).notifyError(`${e}`, e);
27
+ }
28
+ }, children: (0, util_1.assembleLocString)(feature) })] }));
29
+ }
@@ -1,9 +1,8 @@
1
- import React from 'react';
2
- import { ImportWizardModel } from '../models/ImportWizard';
1
+ import type { ImportWizardModel } from '../ImportWizard';
3
2
  declare const NumberEditor: ({ model, disabled, modelPropName, modelSetterName, }: {
4
3
  model: ImportWizardModel;
5
4
  disabled: boolean;
6
5
  modelPropName: string;
7
6
  modelSetterName: string;
8
- }) => React.JSX.Element;
7
+ }) => import("react/jsx-runtime").JSX.Element;
9
8
  export default NumberEditor;
@@ -1,32 +1,10 @@
1
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
2
  Object.defineProperty(exports, "__esModule", { value: true });
26
- const react_1 = __importStar(require("react"));
3
+ const jsx_runtime_1 = require("react/jsx-runtime");
4
+ const react_1 = require("react");
27
5
  const material_1 = require("@mui/material");
28
- const mui_1 = require("tss-react/mui");
29
6
  const mobx_react_1 = require("mobx-react");
7
+ const mui_1 = require("tss-react/mui");
30
8
  const useStyles = (0, mui_1.makeStyles)()({
31
9
  textField: {
32
10
  width: '2rem',
@@ -34,14 +12,12 @@ const useStyles = (0, mui_1.makeStyles)()({
34
12
  },
35
13
  });
36
14
  const NumberEditor = (0, mobx_react_1.observer)(function ({ model, disabled, modelPropName, modelSetterName, }) {
37
- // @ts-expect-error
38
15
  const [val, setVal] = (0, react_1.useState)(model[modelPropName]);
39
16
  const { classes } = useStyles();
40
17
  (0, react_1.useEffect)(() => {
41
18
  const num = Number.parseInt(val, 10);
42
19
  if (!Number.isNaN(num)) {
43
20
  if (num > 0) {
44
- // @ts-expect-error
45
21
  model[modelSetterName](num);
46
22
  }
47
23
  else {
@@ -49,7 +25,7 @@ const NumberEditor = (0, mobx_react_1.observer)(function ({ model, disabled, mod
49
25
  }
50
26
  }
51
27
  }, [model, modelSetterName, val]);
52
- return (react_1.default.createElement(material_1.TextField, { value: val, disabled: disabled, type: "number", onChange: evt => {
28
+ return ((0, jsx_runtime_1.jsx)(material_1.TextField, { value: val, disabled: disabled, type: "number", onChange: evt => {
53
29
  setVal(evt.target.value);
54
30
  }, className: classes.textField }));
55
31
  });
@@ -0,0 +1,5 @@
1
+ import type { SpreadsheetModel } from '../SpreadsheetModel';
2
+ declare const SpreadsheetDataGrid: ({ model, }: {
3
+ model: SpreadsheetModel;
4
+ }) => import("react/jsx-runtime").JSX.Element | null;
5
+ export default SpreadsheetDataGrid;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const jsx_runtime_1 = require("react/jsx-runtime");
4
+ const x_data_grid_1 = require("@mui/x-data-grid");
5
+ const mobx_react_1 = require("mobx-react");
6
+ const SpreadsheetDataGrid = (0, mobx_react_1.observer)(function ({ model, }) {
7
+ const { rows, dataGridColumns, visibleColumns } = model;
8
+ const apiRef = (0, x_data_grid_1.useGridApiRef)();
9
+ return rows && dataGridColumns ? ((0, jsx_runtime_1.jsx)(x_data_grid_1.DataGrid, { apiRef: apiRef, checkboxSelection: true, disableRowSelectionOnClick: true, columnHeaderHeight: 35, columnVisibilityModel: visibleColumns, onFilterModelChange: () => {
10
+ setTimeout(() => {
11
+ model.setVisibleRows(apiRef.current.state.visibleRowsLookup);
12
+ });
13
+ }, onColumnVisibilityModelChange: n => {
14
+ model.setVisibleColumns(n);
15
+ }, rowHeight: 25, hideFooter: rows.length < 100, slots: {
16
+ toolbar: x_data_grid_1.GridToolbar,
17
+ }, slotProps: {
18
+ toolbar: {
19
+ showQuickFilter: true,
20
+ },
21
+ }, rows: rows, columns: dataGridColumns })) : null;
22
+ });
23
+ exports.default = SpreadsheetDataGrid;
@@ -1,6 +1,5 @@
1
- import React from 'react';
2
- import { SpreadsheetViewModel } from '../models/SpreadsheetView';
3
- declare const SpreadsheetView: ({ model, }: {
1
+ import type { SpreadsheetViewModel } from '../SpreadsheetViewModel';
2
+ declare const SpreadsheetContainer: ({ model, }: {
4
3
  model: SpreadsheetViewModel;
5
- }) => React.JSX.Element;
6
- export default SpreadsheetView;
4
+ }) => import("react/jsx-runtime").JSX.Element;
5
+ export default SpreadsheetContainer;
@@ -15,72 +15,34 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
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
- };
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
+ })();
25
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
26
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
37
  };
28
38
  Object.defineProperty(exports, "__esModule", { value: true });
29
- const react_1 = __importStar(require("react"));
30
- const material_1 = require("@mui/material");
31
- const mui_1 = require("tss-react/mui");
39
+ const jsx_runtime_1 = require("react/jsx-runtime");
40
+ const react_1 = require("react");
32
41
  const mobx_react_1 = require("mobx-react");
33
- const ui_1 = require("@jbrowse/core/ui");
34
- // locals
35
- const ImportWizard_1 = __importDefault(require("./ImportWizard"));
36
- const Spreadsheet_1 = __importDefault(require("./Spreadsheet"));
37
- const GlobalFilterControls_1 = __importDefault(require("./GlobalFilterControls"));
38
- const ColumnFilterControls_1 = __importDefault(require("./ColumnFilterControls"));
39
- const StatusBar_1 = __importDefault(require("./StatusBar"));
40
- const headerHeight = 52;
41
- const colFilterHeight = 46;
42
- const statusBarHeight = 40;
43
- const useStyles = (0, mui_1.makeStyles)()(theme => ({
44
- header: {
45
- overflow: 'hidden',
46
- whiteSpace: 'nowrap',
47
- boxSizing: 'border-box',
48
- height: headerHeight,
49
- paddingLeft: theme.spacing(1),
50
- },
51
- contentArea: {
52
- overflow: 'auto',
53
- },
54
- resizeHandle: {
55
- height: 3,
56
- position: 'absolute',
57
- bottom: 0,
58
- left: 0,
59
- background: theme.palette.action.disabled,
60
- boxSizing: 'border-box',
61
- borderTop: '1px solid #fafafa',
62
- },
63
- }));
64
- const SpreadsheetView = (0, mobx_react_1.observer)(function ({ model, }) {
65
- const { classes } = useStyles();
66
- const { spreadsheet, filterControls, hideFilterControls, hideVerticalResizeHandle, mode, height, } = model;
67
- const [page, setPage] = (0, react_1.useState)(0);
68
- const [rowsPerPage, setRowsPerPage] = (0, react_1.useState)(100);
69
- return (react_1.default.createElement("div", null,
70
- mode !== 'display' || hideFilterControls ? null : (react_1.default.createElement(react_1.default.Fragment, null,
71
- react_1.default.createElement(material_1.Grid, { container: true, direction: "row", className: classes.header },
72
- react_1.default.createElement(material_1.Grid, { item: true },
73
- react_1.default.createElement(GlobalFilterControls_1.default, { model: model }))),
74
- filterControls.columnFilters.map((f, i) => (react_1.default.createElement(ColumnFilterControls_1.default, { key: `${f.columnNumber}-${i}`, viewModel: model, filterModel: f, columnNumber: f.columnNumber, height: colFilterHeight }))))),
75
- mode === 'import' ? (react_1.default.createElement(ImportWizard_1.default, { model: model.importWizard })) : (react_1.default.createElement("div", { className: classes.contentArea },
76
- react_1.default.createElement("div", { style: {
77
- position: 'relative',
78
- display: mode === 'display' ? undefined : 'none',
79
- } }, spreadsheet ? (react_1.default.createElement(Spreadsheet_1.default, { page: page, rowsPerPage: rowsPerPage, model: spreadsheet, height: height -
80
- headerHeight -
81
- filterControls.columnFilters.length * colFilterHeight -
82
- statusBarHeight })) : null))),
83
- spreadsheet ? (react_1.default.createElement(StatusBar_1.default, { page: page, setPage: setPage, rowsPerPage: rowsPerPage, setRowsPerPage: setRowsPerPage, mode: mode, spreadsheet: spreadsheet })) : null,
84
- hideVerticalResizeHandle ? null : (react_1.default.createElement(ui_1.ResizeHandle, { onDrag: model.resizeHeight, className: classes.resizeHandle }))));
42
+ const SpreadsheetViewActual_1 = __importDefault(require("./SpreadsheetViewActual"));
43
+ const ImportWizard = (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('./ImportWizard'))));
44
+ const SpreadsheetContainer = (0, mobx_react_1.observer)(function ({ model, }) {
45
+ var _a;
46
+ return !((_a = model.spreadsheet) === null || _a === void 0 ? void 0 : _a.initialized) ? ((0, jsx_runtime_1.jsx)(react_1.Suspense, { fallback: null, children: (0, jsx_runtime_1.jsx)(ImportWizard, { model: model.importWizard }) })) : ((0, jsx_runtime_1.jsx)(SpreadsheetViewActual_1.default, { model: model }));
85
47
  });
86
- exports.default = SpreadsheetView;
48
+ exports.default = SpreadsheetContainer;
@@ -0,0 +1,5 @@
1
+ import type { SpreadsheetViewModel } from '../SpreadsheetViewModel';
2
+ declare const SpreadsheetViewActual: ({ model, }: {
3
+ model: SpreadsheetViewModel;
4
+ }) => import("react/jsx-runtime").JSX.Element;
5
+ export default SpreadsheetViewActual;
@@ -0,0 +1,34 @@
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
+ const jsx_runtime_1 = require("react/jsx-runtime");
7
+ const react_1 = require("react");
8
+ const ui_1 = require("@jbrowse/core/ui");
9
+ const mobx_react_1 = require("mobx-react");
10
+ const mui_1 = require("tss-react/mui");
11
+ const SpreadsheetDataGrid_1 = __importDefault(require("./SpreadsheetDataGrid"));
12
+ const useStyles = (0, mui_1.makeStyles)()(theme => ({
13
+ contentArea: {
14
+ overflow: 'auto',
15
+ position: 'relative',
16
+ marginBottom: theme.spacing(1),
17
+ background: theme.palette.background.paper,
18
+ },
19
+ resizeHandle: {
20
+ height: 5,
21
+ boxSizing: 'border-box',
22
+ background: theme.palette.action.disabled,
23
+ borderTop: '1px solid #fafafa',
24
+ },
25
+ }));
26
+ const SpreadsheetViewActual = (0, mobx_react_1.observer)(function ({ model, }) {
27
+ const [initialHeight, setInitialHeight] = (0, react_1.useState)(0);
28
+ const { classes } = useStyles();
29
+ const { spreadsheet, hideVerticalResizeHandle, height } = model;
30
+ return spreadsheet ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", { style: { height }, className: classes.contentArea, children: (0, jsx_runtime_1.jsx)(SpreadsheetDataGrid_1.default, { model: spreadsheet }) }), hideVerticalResizeHandle ? null : ((0, jsx_runtime_1.jsx)(ui_1.ResizeHandle, { onMouseDown: () => {
31
+ setInitialHeight(height);
32
+ }, onDrag: (_, dist) => model.setHeight(initialHeight - dist), className: classes.resizeHandle }))] })) : ((0, jsx_runtime_1.jsx)("div", { children: "Unknown" }));
33
+ });
34
+ exports.default = SpreadsheetViewActual;
@@ -0,0 +1,6 @@
1
+ import type { ImportWizardModel } from '../ImportWizard';
2
+ declare const TrackSelector: ({ model, selectedAssembly, }: {
3
+ model: ImportWizardModel;
4
+ selectedAssembly: string;
5
+ }) => import("react/jsx-runtime").JSX.Element;
6
+ export default TrackSelector;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const jsx_runtime_1 = require("react/jsx-runtime");
4
+ const react_1 = require("react");
5
+ const ui_1 = require("@jbrowse/core/ui");
6
+ const util_1 = require("@jbrowse/core/util");
7
+ const material_1 = require("@mui/material");
8
+ const mobx_react_1 = require("mobx-react");
9
+ const TrackSelector = (0, mobx_react_1.observer)(function ({ model, selectedAssembly, }) {
10
+ var _a;
11
+ const filteredTracks = selectedAssembly
12
+ ? model.tracksForAssembly(selectedAssembly)
13
+ : undefined;
14
+ const resetTrack = ((_a = filteredTracks === null || filteredTracks === void 0 ? void 0 : filteredTracks[0]) === null || _a === void 0 ? void 0 : _a.track.trackId) || '';
15
+ const [selectedTrack, setSelectedTrack] = (0, react_1.useState)(resetTrack);
16
+ (0, react_1.useEffect)(() => {
17
+ const entry = filteredTracks === null || filteredTracks === void 0 ? void 0 : filteredTracks.find(f => selectedTrack === f.track.trackId);
18
+ if (entry) {
19
+ model.setFileSource(entry.loc);
20
+ model.setFileType(entry.type);
21
+ }
22
+ }, [model, selectedTrack, filteredTracks]);
23
+ return ((0, jsx_runtime_1.jsx)("div", { children: (filteredTracks === null || filteredTracks === void 0 ? void 0 : filteredTracks.length) ? ((0, jsx_runtime_1.jsx)(material_1.TextField, { select: true, label: "Tracks", variant: "outlined", value: selectedTrack, onChange: event => {
24
+ setSelectedTrack(event.target.value);
25
+ }, children: filteredTracks.map(({ track, label }) => ((0, jsx_runtime_1.jsx)(material_1.MenuItem, { value: track.trackId, children: (0, util_1.coarseStripHTML)(label) }, track.trackId))) })) : ((0, jsx_runtime_1.jsx)(ui_1.ErrorMessage, { error: `No tracks found for ${selectedAssembly}` })) }));
26
+ });
27
+ exports.default = TrackSelector;
@@ -1,17 +1,26 @@
1
- import { ParseOptions } from './ImportUtils';
2
- import type { Buffer } from 'buffer';
3
- export declare function removeBedHeaders(buffer: Buffer): Buffer;
4
- export declare function parseBedBuffer(buffer: Buffer, options: ParseOptions): Promise<{
5
- rowSet: import("./ImportUtils").RowSet;
6
- columnDisplayOrder: number[];
7
- hasColumnNames: boolean;
8
- columns: import("./ImportUtils").Column[];
9
- assemblyName: string | undefined;
10
- }>;
11
- export declare function parseBedPEBuffer(buffer: Buffer, options: ParseOptions): Promise<{
12
- rowSet: import("./ImportUtils").RowSet;
13
- columnDisplayOrder: number[];
14
- hasColumnNames: boolean;
15
- columns: import("./ImportUtils").Column[];
16
- assemblyName: string | undefined;
17
- }>;
1
+ export declare function parseBedBuffer(buffer: Uint8Array): {
2
+ columns: {
3
+ name: string;
4
+ }[];
5
+ rowSet: {
6
+ rows: {
7
+ cellData: {
8
+ refName: string | undefined;
9
+ start: number;
10
+ end: number;
11
+ name: string | undefined;
12
+ score: string | undefined;
13
+ strand: string | undefined;
14
+ };
15
+ feature: {
16
+ uniqueId: string;
17
+ refName: string | undefined;
18
+ start: number;
19
+ end: number;
20
+ name: string | undefined;
21
+ score: string | undefined;
22
+ strand: number | undefined;
23
+ };
24
+ }[];
25
+ };
26
+ };