@jbrowse/plugin-spreadsheet-view 2.18.0 → 3.0.1

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 (43) hide show
  1. package/dist/SpreadsheetView/ImportWizard.js +17 -7
  2. package/dist/SpreadsheetView/SpreadsheetModel.d.ts +4 -5
  3. package/dist/SpreadsheetView/SpreadsheetModel.js +15 -29
  4. package/dist/SpreadsheetView/SpreadsheetViewModel.d.ts +8 -8
  5. package/dist/SpreadsheetView/SpreadsheetViewModel.js +9 -2
  6. package/dist/SpreadsheetView/components/FeatureMenu.d.ts +1 -2
  7. package/dist/SpreadsheetView/components/FeatureMenu.js +21 -11
  8. package/dist/SpreadsheetView/components/ImportWizard.d.ts +1 -2
  9. package/dist/SpreadsheetView/components/ImportWizard.js +16 -56
  10. package/dist/SpreadsheetView/components/LocationCell.d.ts +1 -2
  11. package/dist/SpreadsheetView/components/LocationCell.js +16 -18
  12. package/dist/SpreadsheetView/components/NumberEditor.d.ts +1 -2
  13. package/dist/SpreadsheetView/components/NumberEditor.js +3 -25
  14. package/dist/SpreadsheetView/components/SpreadsheetDataGrid.d.ts +1 -2
  15. package/dist/SpreadsheetView/components/SpreadsheetDataGrid.js +3 -7
  16. package/dist/SpreadsheetView/components/SpreadsheetView.d.ts +1 -2
  17. package/dist/SpreadsheetView/components/SpreadsheetView.js +21 -38
  18. package/dist/SpreadsheetView/components/SpreadsheetViewActual.d.ts +5 -0
  19. package/dist/SpreadsheetView/components/SpreadsheetViewActual.js +34 -0
  20. package/dist/SpreadsheetView/components/TrackSelector.d.ts +1 -2
  21. package/dist/SpreadsheetView/components/TrackSelector.js +5 -27
  22. package/dist/SpreadsheetView/index.js +17 -7
  23. package/esm/SpreadsheetView/SpreadsheetModel.d.ts +4 -5
  24. package/esm/SpreadsheetView/SpreadsheetModel.js +16 -30
  25. package/esm/SpreadsheetView/SpreadsheetViewModel.d.ts +8 -8
  26. package/esm/SpreadsheetView/SpreadsheetViewModel.js +9 -2
  27. package/esm/SpreadsheetView/components/FeatureMenu.d.ts +1 -2
  28. package/esm/SpreadsheetView/components/FeatureMenu.js +4 -4
  29. package/esm/SpreadsheetView/components/ImportWizard.d.ts +1 -2
  30. package/esm/SpreadsheetView/components/ImportWizard.js +16 -33
  31. package/esm/SpreadsheetView/components/LocationCell.d.ts +1 -2
  32. package/esm/SpreadsheetView/components/LocationCell.js +16 -18
  33. package/esm/SpreadsheetView/components/NumberEditor.d.ts +1 -2
  34. package/esm/SpreadsheetView/components/NumberEditor.js +3 -2
  35. package/esm/SpreadsheetView/components/SpreadsheetDataGrid.d.ts +1 -2
  36. package/esm/SpreadsheetView/components/SpreadsheetDataGrid.js +3 -4
  37. package/esm/SpreadsheetView/components/SpreadsheetView.d.ts +1 -2
  38. package/esm/SpreadsheetView/components/SpreadsheetView.js +4 -31
  39. package/esm/SpreadsheetView/components/SpreadsheetViewActual.d.ts +5 -0
  40. package/esm/SpreadsheetView/components/SpreadsheetViewActual.js +29 -0
  41. package/esm/SpreadsheetView/components/TrackSelector.d.ts +1 -2
  42. package/esm/SpreadsheetView/components/TrackSelector.js +5 -4
  43. package/package.json +11 -11
@@ -15,51 +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 ui_1 = require("@jbrowse/core/ui");
39
+ const jsx_runtime_1 = require("react/jsx-runtime");
40
+ const react_1 = require("react");
31
41
  const mobx_react_1 = require("mobx-react");
32
- const mui_1 = require("tss-react/mui");
33
- const SpreadsheetDataGrid_1 = __importDefault(require("./SpreadsheetDataGrid"));
42
+ const SpreadsheetViewActual_1 = __importDefault(require("./SpreadsheetViewActual"));
34
43
  const ImportWizard = (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('./ImportWizard'))));
35
- const useStyles = (0, mui_1.makeStyles)()(theme => ({
36
- contentArea: {
37
- overflow: 'auto',
38
- position: 'relative',
39
- marginBottom: theme.spacing(1),
40
- background: theme.palette.background.paper,
41
- },
42
- resizeHandle: {
43
- height: 5,
44
- boxSizing: 'border-box',
45
- background: theme.palette.action.disabled,
46
- borderTop: '1px solid #fafafa',
47
- },
48
- }));
49
- const SpreadsheetView = (0, mobx_react_1.observer)(function ({ model, }) {
50
- const [initialHeight, setInitialHeight] = (0, react_1.useState)(0);
51
- const { classes } = useStyles();
52
- const { spreadsheet, hideVerticalResizeHandle, height } = model;
53
- return spreadsheet ? (react_1.default.createElement(react_1.default.Fragment, null,
54
- react_1.default.createElement("div", { style: { height }, className: classes.contentArea },
55
- react_1.default.createElement(SpreadsheetDataGrid_1.default, { model: spreadsheet })),
56
- hideVerticalResizeHandle ? null : (react_1.default.createElement(ui_1.ResizeHandle, { onMouseDown: () => {
57
- setInitialHeight(height);
58
- }, onDrag: (_, dist) => model.setHeight(initialHeight - dist), className: classes.resizeHandle })))) : (react_1.default.createElement("div", null, "Unknown"));
59
- });
60
44
  const SpreadsheetContainer = (0, mobx_react_1.observer)(function ({ model, }) {
61
45
  var _a;
62
- return !((_a = model.spreadsheet) === null || _a === void 0 ? void 0 : _a.initialized) ? (react_1.default.createElement(react_1.Suspense, { fallback: null },
63
- react_1.default.createElement(ImportWizard, { model: model.importWizard }))) : (react_1.default.createElement(SpreadsheetView, { model: model }));
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 }));
64
47
  });
65
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;
@@ -1,7 +1,6 @@
1
- import React from 'react';
2
1
  import type { ImportWizardModel } from '../ImportWizard';
3
2
  declare const TrackSelector: ({ model, selectedAssembly, }: {
4
3
  model: ImportWizardModel;
5
4
  selectedAssembly: string;
6
- }) => React.JSX.Element;
5
+ }) => import("react/jsx-runtime").JSX.Element;
7
6
  export default TrackSelector;
@@ -1,29 +1,7 @@
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 ui_1 = require("@jbrowse/core/ui");
28
6
  const util_1 = require("@jbrowse/core/util");
29
7
  const material_1 = require("@mui/material");
@@ -42,8 +20,8 @@ const TrackSelector = (0, mobx_react_1.observer)(function ({ model, selectedAsse
42
20
  model.setFileType(entry.type);
43
21
  }
44
22
  }, [model, selectedTrack, filteredTracks]);
45
- return (react_1.default.createElement("div", null, (filteredTracks === null || filteredTracks === void 0 ? void 0 : filteredTracks.length) ? (react_1.default.createElement(material_1.TextField, { select: true, label: "Tracks", variant: "outlined", value: selectedTrack, onChange: event => {
46
- setSelectedTrack(event.target.value);
47
- } }, filteredTracks.map(({ track, label }) => (react_1.default.createElement(material_1.MenuItem, { key: track.trackId, value: track.trackId }, (0, util_1.coarseStripHTML)(label)))))) : (react_1.default.createElement(ui_1.ErrorMessage, { error: `No tracks found for ${selectedAssembly}` }))));
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}` })) }));
48
26
  });
49
27
  exports.default = TrackSelector;
@@ -15,13 +15,23 @@ 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
  };
@@ -1,4 +1,3 @@
1
- import React from 'react';
2
1
  import type { SimpleFeatureSerialized } from '@jbrowse/core/util';
3
2
  import type { Instance } from 'mobx-state-tree';
4
3
  export interface Row {
@@ -23,7 +22,6 @@ export default function stateModelFactory(): import("mobx-state-tree").IModelTyp
23
22
  assemblyName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
24
23
  visibleColumns: import("mobx-state-tree").IType<Record<string, boolean>, Record<string, boolean>, Record<string, boolean>>;
25
24
  }, {
26
- isLoaded: boolean;
27
25
  visibleRowFlags: Record<number, boolean> | undefined;
28
26
  } & {
29
27
  readonly rows: {
@@ -35,17 +33,20 @@ export default function stateModelFactory(): import("mobx-state-tree").IModelTyp
35
33
  readonly dataGridColumns: ({
36
34
  field: string;
37
35
  width: number;
36
+ type: "number" | undefined;
38
37
  } | {
39
38
  field: string;
40
39
  width: number;
41
40
  renderCell: ({ row }: import("@mui/x-data-grid").GridRenderCellParams<{
42
41
  id: number;
43
42
  feature: SimpleFeatureSerialized | undefined;
44
- }, any, any, import("@mui/x-data-grid").GridTreeNodeWithRender>) => React.JSX.Element | "N/A";
43
+ }, any, any, import("@mui/x-data-grid").GridTreeNodeWithRender>) => import("react/jsx-runtime").JSX.Element | "N/A";
44
+ type?: undefined;
45
45
  valueGetter?: undefined;
46
46
  valueFormatter?: undefined;
47
47
  } | {
48
48
  field: string;
49
+ type: "number";
49
50
  width: number;
50
51
  valueGetter: (_val: unknown, row: {
51
52
  feature?: SimpleFeatureSerialized;
@@ -61,8 +62,6 @@ export default function stateModelFactory(): import("mobx-state-tree").IModelTyp
61
62
  } & {
62
63
  setVisibleRows(arg?: Record<number, boolean>): void;
63
64
  setVisibleColumns(arg: Record<string, boolean>): void;
64
- setLoaded(flag: boolean): void;
65
- afterAttach(): void;
66
65
  }, import("mobx-state-tree").ModelCreationType<import("mobx-state-tree/dist/internal").ExtractCFromProps<{
67
66
  rowSet: import("mobx-state-tree").IType<RowSet | undefined, RowSet | undefined, RowSet | undefined>;
68
67
  columns: import("mobx-state-tree").IType<{
@@ -1,7 +1,6 @@
1
- import React from 'react';
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { assembleLocStringFast, getSession, measureGridWidth, toLocale, } from '@jbrowse/core/util';
3
- import { autorun } from 'mobx';
4
- import { addDisposer, types } from 'mobx-state-tree';
3
+ import { types } from 'mobx-state-tree';
5
4
  import LocationCell from './components/LocationCell';
6
5
  export default function stateModelFactory() {
7
6
  return types
@@ -12,7 +11,6 @@ export default function stateModelFactory() {
12
11
  visibleColumns: types.frozen(),
13
12
  })
14
13
  .volatile(() => ({
15
- isLoaded: false,
16
14
  visibleRowFlags: undefined,
17
15
  }))
18
16
  .views(self => ({
@@ -34,7 +32,8 @@ export default function stateModelFactory() {
34
32
  var _a;
35
33
  const session = getSession(self);
36
34
  const name = self.assemblyName;
37
- return name ? (_a = session.assemblyManager.get(name)) === null || _a === void 0 ? void 0 : _a.initialized : false;
35
+ return (self.rowSet &&
36
+ (name ? (_a = session.assemblyManager.get(name)) === null || _a === void 0 ? void 0 : _a.initialized : false));
38
37
  },
39
38
  }))
40
39
  .views(self => ({
@@ -47,22 +46,28 @@ export default function stateModelFactory() {
47
46
  width: measureGridWidth(rows.map(row => row.feature ? assembleLocStringFast(row.feature) : 0)) + 40,
48
47
  renderCell: ({ row }) => {
49
48
  const { feature } = row;
50
- return feature ? (React.createElement(LocationCell, { model: self, feature: feature })) : ('N/A');
49
+ return feature ? (_jsx(LocationCell, { model: self, feature: feature })) : ('N/A');
51
50
  },
52
51
  },
53
52
  {
54
53
  field: 'Length',
55
- width: measureGridWidth(rows.map(r => r.feature ? toLocale(r.feature.end - r.feature.start) : 0)),
54
+ type: 'number',
55
+ width: measureGridWidth(rows.map(row => {
56
+ const { feature } = row;
57
+ return feature ? feature.end - feature.start : 0;
58
+ })),
56
59
  valueGetter: (_val, row) => {
57
- return row.feature
58
- ? row.feature.end - row.feature.start
59
- : undefined;
60
+ const { feature } = row;
61
+ return feature ? feature.end - feature.start : undefined;
60
62
  },
61
63
  valueFormatter: arg => toLocale(arg),
62
64
  },
63
65
  ...self.columns.map(f => ({
64
66
  field: f.name,
65
67
  width: measureGridWidth([...rows.map(r => r[f.name]), f.name], { minWidth: 20 }),
68
+ type: typeof rows[0][f.name] === 'number'
69
+ ? 'number'
70
+ : undefined,
66
71
  })),
67
72
  ]
68
73
  : undefined;
@@ -73,7 +78,7 @@ export default function stateModelFactory() {
73
78
  var _a;
74
79
  const { visibleRowFlags } = self;
75
80
  return visibleRowFlags
76
- ? (_a = self.rows) === null || _a === void 0 ? void 0 : _a.filter((f, idx) => !!visibleRowFlags[idx])
81
+ ? (_a = self.rows) === null || _a === void 0 ? void 0 : _a.filter((_f, idx) => !!visibleRowFlags[idx])
77
82
  : self.rows;
78
83
  },
79
84
  }))
@@ -84,25 +89,6 @@ export default function stateModelFactory() {
84
89
  setVisibleColumns(arg) {
85
90
  self.visibleColumns = arg;
86
91
  },
87
- setLoaded(flag) {
88
- self.isLoaded = flag;
89
- },
90
- afterAttach() {
91
- addDisposer(self, autorun(async () => {
92
- const session = getSession(self);
93
- const { assemblyManager } = session;
94
- try {
95
- if (self.assemblyName) {
96
- await assemblyManager.waitForAssembly(self.assemblyName);
97
- this.setLoaded(true);
98
- }
99
- }
100
- catch (e) {
101
- console.error(e);
102
- session.notifyError(`Failed to load assembly ${self.assemblyName} ${e}`, e);
103
- }
104
- }));
105
- },
106
92
  }))
107
93
  .preProcessSnapshot(snap => {
108
94
  return snap
@@ -70,7 +70,6 @@ export default function stateModelFactory(): import("mobx-state-tree").IModelTyp
70
70
  assemblyName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
71
71
  visibleColumns: import("mobx-state-tree").IType<Record<string, boolean>, Record<string, boolean>, Record<string, boolean>>;
72
72
  }, {
73
- isLoaded: boolean;
74
73
  visibleRowFlags: Record<number, boolean> | undefined;
75
74
  } & {
76
75
  readonly rows: {
@@ -82,17 +81,20 @@ export default function stateModelFactory(): import("mobx-state-tree").IModelTyp
82
81
  readonly dataGridColumns: ({
83
82
  field: string;
84
83
  width: number;
84
+ type: "number" | undefined;
85
85
  } | {
86
86
  field: string;
87
87
  width: number;
88
88
  renderCell: ({ row }: import("@mui/x-data-grid").GridRenderCellParams<{
89
89
  id: number;
90
90
  feature: import("@jbrowse/core/util").SimpleFeatureSerialized | undefined;
91
- }, any, any, import("@mui/x-data-grid").GridTreeNodeWithRender>) => import("react").JSX.Element | "N/A";
91
+ }, any, any, import("@mui/x-data-grid").GridTreeNodeWithRender>) => import("react/jsx-runtime").JSX.Element | "N/A";
92
+ type?: undefined;
92
93
  valueGetter?: undefined;
93
94
  valueFormatter?: undefined;
94
95
  } | {
95
96
  field: string;
97
+ type: "number";
96
98
  width: number;
97
99
  valueGetter: (_val: unknown, row: {
98
100
  feature?: import("@jbrowse/core/util").SimpleFeatureSerialized;
@@ -108,8 +110,6 @@ export default function stateModelFactory(): import("mobx-state-tree").IModelTyp
108
110
  } & {
109
111
  setVisibleRows(arg?: Record<number, boolean>): void;
110
112
  setVisibleColumns(arg: Record<string, boolean>): void;
111
- setLoaded(flag: boolean): void;
112
- afterAttach(): void;
113
113
  }, import("mobx-state-tree").ModelCreationType<import("mobx-state-tree/dist/internal").ExtractCFromProps<{
114
114
  rowSet: import("mobx-state-tree").IType<import("./SpreadsheetModel").RowSet | undefined, import("./SpreadsheetModel").RowSet | undefined, import("./SpreadsheetModel").RowSet | undefined>;
115
115
  columns: import("mobx-state-tree").IType<{
@@ -219,7 +219,6 @@ export default function stateModelFactory(): import("mobx-state-tree").IModelTyp
219
219
  assemblyName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
220
220
  visibleColumns: import("mobx-state-tree").IType<Record<string, boolean>, Record<string, boolean>, Record<string, boolean>>;
221
221
  }, {
222
- isLoaded: boolean;
223
222
  visibleRowFlags: Record<number, boolean> | undefined;
224
223
  } & {
225
224
  readonly rows: {
@@ -231,17 +230,20 @@ export default function stateModelFactory(): import("mobx-state-tree").IModelTyp
231
230
  readonly dataGridColumns: ({
232
231
  field: string;
233
232
  width: number;
233
+ type: "number" | undefined;
234
234
  } | {
235
235
  field: string;
236
236
  width: number;
237
237
  renderCell: ({ row }: import("@mui/x-data-grid").GridRenderCellParams<{
238
238
  id: number;
239
239
  feature: import("@jbrowse/core/util").SimpleFeatureSerialized | undefined;
240
- }, any, any, import("@mui/x-data-grid").GridTreeNodeWithRender>) => import("react").JSX.Element | "N/A";
240
+ }, any, any, import("@mui/x-data-grid").GridTreeNodeWithRender>) => import("react/jsx-runtime").JSX.Element | "N/A";
241
+ type?: undefined;
241
242
  valueGetter?: undefined;
242
243
  valueFormatter?: undefined;
243
244
  } | {
244
245
  field: string;
246
+ type: "number";
245
247
  width: number;
246
248
  valueGetter: (_val: unknown, row: {
247
249
  feature?: import("@jbrowse/core/util").SimpleFeatureSerialized;
@@ -257,8 +259,6 @@ export default function stateModelFactory(): import("mobx-state-tree").IModelTyp
257
259
  } & {
258
260
  setVisibleRows(arg?: Record<number, boolean>): void;
259
261
  setVisibleColumns(arg: Record<string, boolean>): void;
260
- setLoaded(flag: boolean): void;
261
- afterAttach(): void;
262
262
  }, import("mobx-state-tree").ModelCreationType<import("mobx-state-tree/dist/internal").ExtractCFromProps<{
263
263
  rowSet: import("mobx-state-tree").IType<import("./SpreadsheetModel").RowSet | undefined, import("./SpreadsheetModel").RowSet | undefined, import("./SpreadsheetModel").RowSet | undefined>;
264
264
  columns: import("mobx-state-tree").IType<{
@@ -81,8 +81,15 @@ export default function stateModelFactory() {
81
81
  spreadsheet: rest,
82
82
  };
83
83
  }
84
- else {
85
- return snap;
84
+ else if (spreadsheet) {
85
+ const { rowSet, ...rest } = spreadsheet;
86
+ return rowSet && JSON.stringify(rowSet).length > 1000000
87
+ ? {
88
+ ...snap,
89
+ spreadsheet: rest,
90
+ }
91
+ : snap;
86
92
  }
93
+ return snap;
87
94
  });
88
95
  }
@@ -1,8 +1,7 @@
1
- import React from 'react';
2
1
  import type { AbstractSessionModel, SimpleFeatureSerialized } from '@jbrowse/core/util';
3
2
  export default function FeatureMenu({ assemblyName, session, spreadsheetViewId, feature, }: {
4
3
  spreadsheetViewId: string;
5
4
  assemblyName: string;
6
5
  session: AbstractSessionModel;
7
6
  feature: SimpleFeatureSerialized;
8
- }): React.JSX.Element;
7
+ }): import("react/jsx-runtime").JSX.Element;
@@ -1,4 +1,5 @@
1
- import React, { lazy } from 'react';
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { lazy } from 'react';
2
3
  import CascadingMenuButton from '@jbrowse/core/ui/CascadingMenuButton';
3
4
  import { SimpleFeature, assembleLocStringFast } from '@jbrowse/core/util';
4
5
  import ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown';
@@ -7,7 +8,7 @@ import { locationLinkClick } from '../util';
7
8
  const BreakendMultiLevelOptionDialog = lazy(() => import('./BreakendMultiLevelOptionDialog'));
8
9
  const BreakendSingleLevelOptionDialog = lazy(() => import('./BreakendSingleLevelOptionDialog'));
9
10
  export default function FeatureMenu({ assemblyName, session, spreadsheetViewId, feature, }) {
10
- return (React.createElement(CascadingMenuButton, { menuItems: [
11
+ return (_jsx(CascadingMenuButton, { menuItems: [
11
12
  {
12
13
  label: 'Open in linear genome view',
13
14
  onClick: async () => {
@@ -61,6 +62,5 @@ export default function FeatureMenu({ assemblyName, session, spreadsheetViewId,
61
62
  ]);
62
63
  },
63
64
  },
64
- ] },
65
- React.createElement(ArrowDropDownIcon, null)));
65
+ ], children: _jsx(ArrowDropDownIcon, {}) }));
66
66
  }
@@ -1,6 +1,5 @@
1
- import React from 'react';
2
1
  import type { ImportWizardModel } from '../ImportWizard';
3
2
  declare const ImportWizard: ({ model, }: {
4
3
  model: ImportWizardModel;
5
- }) => React.JSX.Element;
4
+ }) => import("react/jsx-runtime").JSX.Element;
6
5
  export default ImportWizard;
@@ -1,4 +1,5 @@
1
- import React, { useState } from 'react';
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState } from 'react';
2
3
  import { AssemblySelector, ErrorMessage, FileSelector, LoadingEllipses, } from '@jbrowse/core/ui';
3
4
  import { getSession } from '@jbrowse/core/util';
4
5
  import { Button, FormControl, FormControlLabel, FormGroup, FormLabel, Paper, Radio, RadioGroup, } from '@mui/material';
@@ -23,37 +24,19 @@ const ImportWizard = observer(function ({ model, }) {
23
24
  const [selectorType, setSelectorType] = useState('custom');
24
25
  const err = ((_a = assemblyManager.get(selectedAssembly)) === null || _a === void 0 ? void 0 : _a.error) || error;
25
26
  const rootModel = getRoot(model);
26
- return (React.createElement("div", null,
27
- err ? React.createElement(ErrorMessage, { error: err }) : null,
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")))));
27
+ return (_jsxs("div", { children: [err ? _jsx(ErrorMessage, { error: err }) : null, _jsxs(Paper, { className: classes.container, children: [loading ? _jsx(LoadingEllipses, { variant: "h6" }) : null, _jsx("div", { children: _jsx(FormControl, { component: "fieldset", children: _jsx(RadioGroup, { row: true, "aria-label": "file type", name: "type", value: fileType, onChange: event => {
28
+ setSelectorType(event.target.value);
29
+ }, children: Object.entries({
30
+ custom: 'Open file from URL or local computer',
31
+ existing: 'Open from track',
32
+ }).map(([key, val]) => (_jsx(FormControlLabel, { checked: selectorType === key, value: key, control: _jsx(Radio, {}), label: val }, key))) }) }) }), selectorType === 'custom' ? (_jsx("div", { children: _jsx(FormControl, { component: "fieldset", children: _jsx(FormGroup, { children: _jsx(FileSelector, { inline: true, location: fileSource, rootModel: rootModel, setLocation: arg => {
33
+ model.setFileSource(arg);
34
+ } }) }) }) })) : selectedAssembly ? (_jsx(TrackSelector, { model: model, selectedAssembly: selectedAssembly })) : (_jsx("div", { children: "Select assembly" })), _jsx("div", { children: _jsxs(FormControl, { component: "fieldset", children: [_jsx(FormLabel, { component: "legend", children: "File Type" }), _jsx(RadioGroup, { row: true, "aria-label": "file type", name: "type", value: fileType, onChange: event => {
35
+ model.setFileType(event.target.value);
36
+ }, children: fileTypes.map(fileTypeName => (_jsx(FormControlLabel, { checked: fileType === fileTypeName, value: fileTypeName, control: _jsx(Radio, {}), label: fileTypeName }, fileTypeName))) })] }) }), _jsx("div", { children: _jsx(AssemblySelector, { session: session, selected: selectedAssembly, onChange: val => {
37
+ setSelectedAssembly(val);
38
+ } }) }), _jsx("div", { children: _jsx(Button, { disabled: !isReadyToOpen || !!err, variant: "contained", "data-testid": "open_spreadsheet", color: "primary", onClick: () => {
39
+ model.import(selectedAssembly);
40
+ }, children: "Open" }) })] })] }));
58
41
  });
59
42
  export default ImportWizard;
@@ -1,8 +1,7 @@
1
- import React from 'react';
2
1
  import type { SimpleFeatureSerialized } from '@jbrowse/core/util';
3
2
  export default function LocationCell({ model, feature, }: {
4
3
  model: {
5
4
  assemblyName?: string;
6
5
  };
7
6
  feature: SimpleFeatureSerialized;
8
- }): React.JSX.Element;
7
+ }): import("react/jsx-runtime").JSX.Element;
@@ -1,25 +1,23 @@
1
- import React from 'react';
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { assembleLocString, getSession } from '@jbrowse/core/util';
3
3
  import { Link } from '@mui/material';
4
4
  import { getParent } from 'mobx-state-tree';
5
5
  import { locationLinkClick } from '../util';
6
6
  import FeatureMenu from './FeatureMenu';
7
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))));
8
+ return (_jsxs(_Fragment, { children: [_jsx(FeatureMenu, { session: getSession(model), spreadsheetViewId: getParent(model).id, assemblyName: model.assemblyName, feature: feature }), _jsx(Link, { href: "#", onClick: async (event) => {
9
+ try {
10
+ event.preventDefault();
11
+ await locationLinkClick({
12
+ spreadsheetViewId: getParent(model).id,
13
+ session: getSession(model),
14
+ locString: assembleLocString(feature),
15
+ assemblyName: model.assemblyName,
16
+ });
17
+ }
18
+ catch (e) {
19
+ console.error(e);
20
+ getSession(model).notifyError(`${e}`, e);
21
+ }
22
+ }, children: assembleLocString(feature) })] }));
25
23
  }
@@ -1,9 +1,8 @@
1
- import React from 'react';
2
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,4 +1,5 @@
1
- import React, { useEffect, useState } from 'react';
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useEffect, useState } from 'react';
2
3
  import { TextField } from '@mui/material';
3
4
  import { observer } from 'mobx-react';
4
5
  import { makeStyles } from 'tss-react/mui';
@@ -22,7 +23,7 @@ const NumberEditor = observer(function ({ model, disabled, modelPropName, modelS
22
23
  }
23
24
  }
24
25
  }, [model, modelSetterName, val]);
25
- return (React.createElement(TextField, { value: val, disabled: disabled, type: "number", onChange: evt => {
26
+ return (_jsx(TextField, { value: val, disabled: disabled, type: "number", onChange: evt => {
26
27
  setVal(evt.target.value);
27
28
  }, className: classes.textField }));
28
29
  });