@jbrowse/plugin-spreadsheet-view 3.6.5 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/esm/LaunchSpreadsheetView/index.js +6 -13
  2. package/esm/SpreadsheetView/ImportWizard.d.ts +11 -15
  3. package/esm/SpreadsheetView/ImportWizard.js +45 -47
  4. package/esm/SpreadsheetView/SpreadsheetModel.d.ts +13 -16
  5. package/esm/SpreadsheetView/SpreadsheetModel.js +14 -22
  6. package/esm/SpreadsheetView/SpreadsheetViewModel.d.ts +68 -171
  7. package/esm/SpreadsheetView/SpreadsheetViewModel.js +54 -16
  8. package/esm/SpreadsheetView/components/BreakpointSplitViewChoiceDialog.d.ts +1 -0
  9. package/esm/SpreadsheetView/components/BreakpointSplitViewChoiceDialog.js +1 -0
  10. package/esm/SpreadsheetView/components/FeatureMenu.js +6 -29
  11. package/esm/SpreadsheetView/components/ImportWizard.d.ts +1 -1
  12. package/esm/SpreadsheetView/components/ImportWizard.js +5 -6
  13. package/esm/SpreadsheetView/components/LocationCell.js +3 -3
  14. package/esm/SpreadsheetView/components/NumberEditor.d.ts +1 -1
  15. package/esm/SpreadsheetView/components/NumberEditor.js +2 -2
  16. package/esm/SpreadsheetView/components/SpreadsheetDataGrid.d.ts +1 -1
  17. package/esm/SpreadsheetView/components/SpreadsheetDataGrid.js +4 -3
  18. package/esm/SpreadsheetView/components/SpreadsheetView.d.ts +1 -1
  19. package/esm/SpreadsheetView/components/SpreadsheetView.js +4 -5
  20. package/esm/SpreadsheetView/components/SpreadsheetViewActual.d.ts +1 -1
  21. package/esm/SpreadsheetView/components/SpreadsheetViewActual.js +3 -3
  22. package/esm/SpreadsheetView/components/TrackSelector.d.ts +1 -1
  23. package/esm/SpreadsheetView/components/TrackSelector.js +4 -5
  24. package/esm/SpreadsheetView/importAdapters/BedImport.js +4 -5
  25. package/esm/SpreadsheetView/importAdapters/BedpeImport.js +3 -4
  26. package/esm/SpreadsheetView/importAdapters/STARFusionImport.js +2 -2
  27. package/esm/SpreadsheetView/importAdapters/VcfImport.js +6 -4
  28. package/esm/SpreadsheetView/index.d.ts +1 -1
  29. package/esm/SpreadsheetView/index.js +2 -2
  30. package/esm/index.d.ts +1 -1
  31. package/esm/index.js +4 -6
  32. package/package.json +29 -36
  33. package/dist/LaunchSpreadsheetView/index.d.ts +0 -2
  34. package/dist/LaunchSpreadsheetView/index.js +0 -21
  35. package/dist/SpreadsheetView/ImportWizard.d.ts +0 -51
  36. package/dist/SpreadsheetView/ImportWizard.js +0 -250
  37. package/dist/SpreadsheetView/SpreadsheetModel.d.ts +0 -78
  38. package/dist/SpreadsheetView/SpreadsheetModel.js +0 -119
  39. package/dist/SpreadsheetView/SpreadsheetViewModel.d.ts +0 -299
  40. package/dist/SpreadsheetView/SpreadsheetViewModel.js +0 -101
  41. package/dist/SpreadsheetView/components/BreakendMultiLevelOptionDialog.d.ts +0 -1
  42. package/dist/SpreadsheetView/components/BreakendMultiLevelOptionDialog.js +0 -5
  43. package/dist/SpreadsheetView/components/BreakendSingleLevelOptionDialog.d.ts +0 -1
  44. package/dist/SpreadsheetView/components/BreakendSingleLevelOptionDialog.js +0 -5
  45. package/dist/SpreadsheetView/components/FeatureMenu.d.ts +0 -7
  46. package/dist/SpreadsheetView/components/FeatureMenu.js +0 -105
  47. package/dist/SpreadsheetView/components/ImportWizard.d.ts +0 -5
  48. package/dist/SpreadsheetView/components/ImportWizard.js +0 -47
  49. package/dist/SpreadsheetView/components/LocationCell.d.ts +0 -7
  50. package/dist/SpreadsheetView/components/LocationCell.js +0 -29
  51. package/dist/SpreadsheetView/components/NumberEditor.d.ts +0 -8
  52. package/dist/SpreadsheetView/components/NumberEditor.js +0 -32
  53. package/dist/SpreadsheetView/components/SpreadsheetDataGrid.d.ts +0 -5
  54. package/dist/SpreadsheetView/components/SpreadsheetDataGrid.js +0 -23
  55. package/dist/SpreadsheetView/components/SpreadsheetView.d.ts +0 -5
  56. package/dist/SpreadsheetView/components/SpreadsheetView.js +0 -48
  57. package/dist/SpreadsheetView/components/SpreadsheetViewActual.d.ts +0 -5
  58. package/dist/SpreadsheetView/components/SpreadsheetViewActual.js +0 -34
  59. package/dist/SpreadsheetView/components/TrackSelector.d.ts +0 -6
  60. package/dist/SpreadsheetView/components/TrackSelector.js +0 -27
  61. package/dist/SpreadsheetView/components/util.d.ts +0 -1
  62. package/dist/SpreadsheetView/components/util.js +0 -17
  63. package/dist/SpreadsheetView/importAdapters/BedImport.d.ts +0 -26
  64. package/dist/SpreadsheetView/importAdapters/BedImport.js +0 -58
  65. package/dist/SpreadsheetView/importAdapters/BedpeImport.d.ts +0 -36
  66. package/dist/SpreadsheetView/importAdapters/BedpeImport.js +0 -79
  67. package/dist/SpreadsheetView/importAdapters/STARFusionImport.d.ts +0 -25
  68. package/dist/SpreadsheetView/importAdapters/STARFusionImport.js +0 -35
  69. package/dist/SpreadsheetView/importAdapters/VcfImport.d.ts +0 -20
  70. package/dist/SpreadsheetView/importAdapters/VcfImport.js +0 -66
  71. package/dist/SpreadsheetView/importAdapters/isNumber.d.ts +0 -1
  72. package/dist/SpreadsheetView/importAdapters/isNumber.js +0 -14
  73. package/dist/SpreadsheetView/importAdapters/util.d.ts +0 -2
  74. package/dist/SpreadsheetView/importAdapters/util.js +0 -22
  75. package/dist/SpreadsheetView/index.d.ts +0 -3
  76. package/dist/SpreadsheetView/index.js +0 -52
  77. package/dist/SpreadsheetView/util.d.ts +0 -7
  78. package/dist/SpreadsheetView/util.js +0 -13
  79. package/dist/index.d.ts +0 -8
  80. package/dist/index.js +0 -33
  81. package/esm/SpreadsheetView/components/BreakendMultiLevelOptionDialog.d.ts +0 -1
  82. package/esm/SpreadsheetView/components/BreakendMultiLevelOptionDialog.js +0 -1
  83. package/esm/SpreadsheetView/components/BreakendSingleLevelOptionDialog.d.ts +0 -1
  84. package/esm/SpreadsheetView/components/BreakendSingleLevelOptionDialog.js +0 -1
@@ -1,9 +1,9 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useState } from 'react';
3
3
  import { ResizeHandle } from '@jbrowse/core/ui';
4
+ import { makeStyles } from '@jbrowse/core/util/tss-react';
4
5
  import { observer } from 'mobx-react';
5
- import { makeStyles } from 'tss-react/mui';
6
- import SpreadsheetDataGrid from './SpreadsheetDataGrid';
6
+ import SpreadsheetDataGrid from "./SpreadsheetDataGrid.js";
7
7
  const useStyles = makeStyles()(theme => ({
8
8
  contentArea: {
9
9
  overflow: 'auto',
@@ -18,7 +18,7 @@ const useStyles = makeStyles()(theme => ({
18
18
  borderTop: '1px solid #fafafa',
19
19
  },
20
20
  }));
21
- const SpreadsheetViewActual = observer(function ({ model, }) {
21
+ const SpreadsheetViewActual = observer(function SpreadsheetViewActual({ model, }) {
22
22
  const [initialHeight, setInitialHeight] = useState(0);
23
23
  const { classes } = useStyles();
24
24
  const { spreadsheet, hideVerticalResizeHandle, height } = model;
@@ -1,4 +1,4 @@
1
- import type { ImportWizardModel } from '../ImportWizard';
1
+ import type { ImportWizardModel } from '../ImportWizard.ts';
2
2
  declare const TrackSelector: ({ model, selectedAssembly, }: {
3
3
  model: ImportWizardModel;
4
4
  selectedAssembly: string;
@@ -4,21 +4,20 @@ import { ErrorMessage } from '@jbrowse/core/ui';
4
4
  import { coarseStripHTML } from '@jbrowse/core/util';
5
5
  import { MenuItem, TextField } from '@mui/material';
6
6
  import { observer } from 'mobx-react';
7
- const TrackSelector = observer(function ({ model, selectedAssembly, }) {
8
- var _a;
7
+ const TrackSelector = observer(function TrackSelector({ model, selectedAssembly, }) {
9
8
  const filteredTracks = selectedAssembly
10
9
  ? model.tracksForAssembly(selectedAssembly)
11
10
  : undefined;
12
- const resetTrack = ((_a = filteredTracks === null || filteredTracks === void 0 ? void 0 : filteredTracks[0]) === null || _a === void 0 ? void 0 : _a.track.trackId) || '';
11
+ const resetTrack = filteredTracks?.[0]?.track.trackId || '';
13
12
  const [selectedTrack, setSelectedTrack] = useState(resetTrack);
14
13
  useEffect(() => {
15
- const entry = filteredTracks === null || filteredTracks === void 0 ? void 0 : filteredTracks.find(f => selectedTrack === f.track.trackId);
14
+ const entry = filteredTracks?.find(f => selectedTrack === f.track.trackId);
16
15
  if (entry) {
17
16
  model.setFileSource(entry.loc);
18
17
  model.setFileType(entry.type);
19
18
  }
20
19
  }, [model, selectedTrack, filteredTracks]);
21
- return (_jsx("div", { children: (filteredTracks === null || filteredTracks === void 0 ? void 0 : filteredTracks.length) ? (_jsx(TextField, { select: true, label: "Tracks", variant: "outlined", value: selectedTrack, onChange: event => {
20
+ return (_jsx("div", { children: filteredTracks?.length ? (_jsx(TextField, { select: true, label: "Tracks", variant: "outlined", value: selectedTrack, onChange: event => {
22
21
  setSelectedTrack(event.target.value);
23
22
  }, children: filteredTracks.map(({ track, label }) => (_jsx(MenuItem, { value: track.trackId, children: coarseStripHTML(label) }, track.trackId))) })) : (_jsx(ErrorMessage, { error: `No tracks found for ${selectedAssembly}` })) }));
24
23
  });
@@ -1,15 +1,14 @@
1
- import { isNumber } from './isNumber';
2
- import { bufferToLines, parseStrand } from './util';
1
+ import { isNumber } from "./isNumber.js";
2
+ import { bufferToLines, parseStrand } from "./util.js";
3
3
  export function parseBedBuffer(buffer) {
4
- var _a;
5
4
  const lines = bufferToLines(buffer);
6
5
  const rest = lines.filter(line => !(line.startsWith('#') ||
7
6
  line.startsWith('browser') ||
8
7
  line.startsWith('track')));
9
8
  const lastHeaderLine = lines.findLast(line => line.startsWith('#'));
10
9
  const coreColumns = ['refName', 'start', 'end'];
11
- const numExtraColumns = Math.max(0, (((_a = rest[0]) === null || _a === void 0 ? void 0 : _a.split('\t').length) || 0) - coreColumns.length);
12
- const extraNames = (lastHeaderLine === null || lastHeaderLine === void 0 ? void 0 : lastHeaderLine.includes('\t'))
10
+ const numExtraColumns = Math.max(0, (rest[0]?.split('\t').length || 0) - coreColumns.length);
11
+ const extraNames = lastHeaderLine?.includes('\t')
13
12
  ? lastHeaderLine
14
13
  .slice(1)
15
14
  .split('\t')
@@ -1,7 +1,6 @@
1
1
  import { isNumber } from '@mui/x-data-grid/internals';
2
- import { bufferToLines, parseStrand } from './util';
2
+ import { bufferToLines, parseStrand } from "./util.js";
3
3
  export function parseBedPEBuffer(buffer) {
4
- var _a;
5
4
  const lines = bufferToLines(buffer);
6
5
  const rest = lines.filter(line => !(line.startsWith('#') ||
7
6
  line.startsWith('browser') ||
@@ -19,8 +18,8 @@ export function parseBedPEBuffer(buffer) {
19
18
  'strand',
20
19
  'mateStrand',
21
20
  ];
22
- const numExtraColumns = Math.max(0, (((_a = rest[0]) === null || _a === void 0 ? void 0 : _a.split('\t').length) || 0) - coreColumns.length);
23
- const extraNames = (lastHeaderLine === null || lastHeaderLine === void 0 ? void 0 : lastHeaderLine.includes('\t'))
21
+ const numExtraColumns = Math.max(0, (rest[0]?.split('\t').length || 0) - coreColumns.length);
22
+ const extraNames = lastHeaderLine?.includes('\t')
24
23
  ? lastHeaderLine
25
24
  .slice(1)
26
25
  .split('\t')
@@ -1,5 +1,5 @@
1
- import { isNumber } from './isNumber';
2
- import { bufferToLines, parseStrand } from './util';
1
+ import { isNumber } from "./isNumber.js";
2
+ import { bufferToLines, parseStrand } from "./util.js";
3
3
  function parseSTARFusionBreakpointString(str) {
4
4
  const fields = str.split(':');
5
5
  return {
@@ -1,7 +1,7 @@
1
1
  import VCF from '@gmod/vcf';
2
2
  import { VcfFeature } from '@jbrowse/plugin-variants';
3
- import { isNumber } from './isNumber';
4
- import { bufferToLines } from './util';
3
+ import { isNumber } from "./isNumber.js";
4
+ import { bufferToLines } from "./util.js";
5
5
  export function parseVcfBuffer(buffer) {
6
6
  const lines = bufferToLines(buffer);
7
7
  const header = lines.filter(l => l.startsWith('#')).join('\n');
@@ -12,13 +12,15 @@ export function parseVcfBuffer(buffer) {
12
12
  let i = 0;
13
13
  for (const line of body) {
14
14
  const [CHROM, POS, ID, REF, ALT, QUAL, FILTER, INFO, FORMAT, ...rest] = line.split('\t');
15
- const ret = Object.fromEntries((INFO === null || INFO === void 0 ? void 0 : INFO.split(';').map(f => f.trim()).map(e => {
15
+ const ret = Object.fromEntries(INFO?.split(';')
16
+ .map(f => f.trim())
17
+ .map(e => {
16
18
  const [key, val = 'true'] = e.split('=');
17
19
  const k = `INFO.${key.trim()}`;
18
20
  keys.add(k);
19
21
  const v = val.trim();
20
22
  return [k, isNumber(v) ? +v : v];
21
- })) || []);
23
+ }) || []);
22
24
  rows.push({
23
25
  cellData: {
24
26
  CHROM,
@@ -1,3 +1,3 @@
1
1
  import type PluginManager from '@jbrowse/core/PluginManager';
2
2
  export default function SpreadsheetViewF(pluginManager: PluginManager): void;
3
- export type { SpreadsheetViewModel, SpreadsheetViewStateModel, } from './SpreadsheetViewModel';
3
+ export type { SpreadsheetViewModel, SpreadsheetViewStateModel, } from './SpreadsheetViewModel.ts';
@@ -1,13 +1,13 @@
1
1
  import { lazy } from 'react';
2
2
  import { ViewType } from '@jbrowse/core/pluggableElementTypes';
3
- import stateModelFactory from './SpreadsheetViewModel';
3
+ import stateModelFactory from "./SpreadsheetViewModel.js";
4
4
  export default function SpreadsheetViewF(pluginManager) {
5
5
  pluginManager.addViewType(() => {
6
6
  return new ViewType({
7
7
  name: 'SpreadsheetView',
8
8
  displayName: 'Spreadsheet view',
9
9
  stateModel: stateModelFactory(),
10
- ReactComponent: lazy(() => import('./components/SpreadsheetView')),
10
+ ReactComponent: lazy(() => import("./components/SpreadsheetView.js")),
11
11
  });
12
12
  });
13
13
  }
package/esm/index.d.ts CHANGED
@@ -5,4 +5,4 @@ export default class SpreadsheetViewPlugin extends Plugin {
5
5
  install(pluginManager: PluginManager): void;
6
6
  configure(pluginManager: PluginManager): void;
7
7
  }
8
- export { type SpreadsheetViewModel, type SpreadsheetViewStateModel, } from './SpreadsheetView';
8
+ export { type SpreadsheetViewModel, type SpreadsheetViewStateModel, } from './SpreadsheetView/index.ts';
package/esm/index.js CHANGED
@@ -1,13 +1,10 @@
1
1
  import Plugin from '@jbrowse/core/Plugin';
2
2
  import { isAbstractMenuManager } from '@jbrowse/core/util';
3
3
  import ViewComfyIcon from '@mui/icons-material/ViewComfy';
4
- import LaunchSpreadsheetViewF from './LaunchSpreadsheetView';
5
- import SpreadsheetViewF from './SpreadsheetView';
4
+ import LaunchSpreadsheetViewF from "./LaunchSpreadsheetView/index.js";
5
+ import SpreadsheetViewF from "./SpreadsheetView/index.js";
6
6
  export default class SpreadsheetViewPlugin extends Plugin {
7
- constructor() {
8
- super(...arguments);
9
- this.name = 'SpreadsheetViewPlugin';
10
- }
7
+ name = 'SpreadsheetViewPlugin';
11
8
  install(pluginManager) {
12
9
  SpreadsheetViewF(pluginManager);
13
10
  LaunchSpreadsheetViewF(pluginManager);
@@ -25,3 +22,4 @@ export default class SpreadsheetViewPlugin extends Plugin {
25
22
  }
26
23
  }
27
24
  }
25
+ export {} from "./SpreadsheetView/index.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jbrowse/plugin-spreadsheet-view",
3
- "version": "3.6.5",
3
+ "version": "4.0.0",
4
4
  "description": "JBrowse 2 spreadsheet view",
5
5
  "keywords": [
6
6
  "jbrowse",
@@ -15,50 +15,43 @@
15
15
  "directory": "plugins/spreadsheet-view"
16
16
  },
17
17
  "author": "JBrowse Team",
18
- "distMain": "dist/index.js",
19
- "srcMain": "src/index.ts",
20
- "main": "dist/index.js",
18
+ "main": "esm/index.js",
21
19
  "files": [
22
- "dist",
23
20
  "esm"
24
21
  ],
25
- "scripts": {
26
- "build": "npm-run-all build:*",
27
- "test": "cd ../..; jest --passWithNoTests plugins/spreadsheet-view",
28
- "prepublishOnly": "yarn test",
29
- "prepack": "yarn build && yarn useDist",
30
- "postpack": "yarn useSrc",
31
- "useDist": "node ../../scripts/useDist.js",
32
- "useSrc": "node ../../scripts/useSrc.js",
33
- "prebuild": "npm run clean",
34
- "build:esm": "tsc --build tsconfig.build.esm.json",
35
- "build:commonjs": "tsc --build tsconfig.build.commonjs.json",
36
- "clean": "rimraf dist esm *.tsbuildinfo"
37
- },
38
22
  "dependencies": {
39
- "@gmod/bgzf-filehandle": "^4.0.0",
40
- "@gmod/vcf": "^6.0.8",
41
- "@jbrowse/core": "^3.6.5",
42
- "@jbrowse/plugin-linear-genome-view": "^3.6.5",
43
- "@jbrowse/plugin-variants": "^3.6.5",
44
- "@mui/icons-material": "^7.0.0",
45
- "@mui/material": "^7.0.0",
46
- "@mui/x-data-grid": "^8.0.0",
47
- "mobx": "^6.0.0",
48
- "mobx-react": "^9.0.0",
49
- "mobx-state-tree": "^5.0.0",
50
- "rxjs": "^7.0.0",
51
- "tss-react": "^4.0.0"
23
+ "@gmod/vcf": "^6.1.0",
24
+ "@jbrowse/mobx-state-tree": "^5.5.0",
25
+ "@mui/icons-material": "^7.3.6",
26
+ "@mui/material": "^7.3.6",
27
+ "@mui/x-data-grid": "^8.23.0",
28
+ "mobx": "^6.15.0",
29
+ "mobx-react": "^9.2.1",
30
+ "@jbrowse/plugin-linear-genome-view": "^4.0.0",
31
+ "@jbrowse/core": "^4.0.0",
32
+ "@jbrowse/sv-core": "^4.0.0",
33
+ "@jbrowse/plugin-variants": "^4.0.0"
52
34
  },
53
35
  "peerDependencies": {
54
36
  "react": ">=18.0.0",
55
37
  "react-dom": ">=18.0.0"
56
38
  },
57
- "distModule": "esm/index.js",
58
- "srcModule": "src/index.ts",
59
- "module": "esm/index.js",
60
39
  "publishConfig": {
61
40
  "access": "public"
62
41
  },
63
- "gitHead": "354d0a87b757b4d84f824b47507662f6f3a1693f"
64
- }
42
+ "sideEffects": false,
43
+ "scripts": {
44
+ "build": "pnpm run /^build:/",
45
+ "test": "cd ../..; jest --passWithNoTests plugins/spreadsheet-view",
46
+ "prebuild": "pnpm clean",
47
+ "build:esm": "tsc -p tsconfig.build.esm.json",
48
+ "clean": "rimraf esm *.tsbuildinfo"
49
+ },
50
+ "types": "esm/index.d.ts",
51
+ "exports": {
52
+ ".": {
53
+ "types": "./esm/index.d.ts",
54
+ "import": "./esm/index.js"
55
+ }
56
+ }
57
+ }
@@ -1,2 +0,0 @@
1
- import type PluginManager from '@jbrowse/core/PluginManager';
2
- export default function LaunchSpreadsheetViewF(pluginManager: PluginManager): void;
@@ -1,21 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = LaunchSpreadsheetViewF;
4
- function LaunchSpreadsheetViewF(pluginManager) {
5
- pluginManager.addToExtensionPoint('LaunchView-SpreadsheetView', async ({ session, assembly, uri, fileType, }) => {
6
- var _a, _b;
7
- const view = session.addView('SpreadsheetView');
8
- const exts = uri.split('.');
9
- let ext = (_a = exts.pop()) === null || _a === void 0 ? void 0 : _a.toUpperCase();
10
- if (ext === 'GZ') {
11
- ext = (_b = exts.pop()) === null || _b === void 0 ? void 0 : _b.toUpperCase();
12
- }
13
- view.importWizard.setFileType(fileType || ext || '');
14
- view.importWizard.setSelectedAssemblyName(assembly);
15
- view.importWizard.setFileSource({
16
- uri,
17
- locationType: 'UriLocation',
18
- });
19
- await view.importWizard.import(assembly);
20
- });
21
- }
@@ -1,51 +0,0 @@
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>;
@@ -1,250 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.default = stateModelFactory;
37
- const configuration_1 = require("@jbrowse/core/configuration");
38
- const util_1 = require("@jbrowse/core/util");
39
- const io_1 = require("@jbrowse/core/util/io");
40
- const tracks_1 = require("@jbrowse/core/util/tracks");
41
- const mobx_state_tree_1 = require("mobx-state-tree");
42
- const IMPORT_SIZE_LIMIT = 100000000;
43
- const fileTypes = ['VCF', 'BED', 'BEDPE', 'STAR-Fusion'];
44
- const fileTypeParsers = {
45
- VCF: () => Promise.resolve().then(() => __importStar(require('./importAdapters/VcfImport'))).then(r => r.parseVcfBuffer),
46
- BED: () => Promise.resolve().then(() => __importStar(require('./importAdapters/BedImport'))).then(r => r.parseBedBuffer),
47
- BEDPE: () => Promise.resolve().then(() => __importStar(require('./importAdapters/BedpeImport'))).then(r => r.parseBedPEBuffer),
48
- 'STAR-Fusion': () => Promise.resolve().then(() => __importStar(require('./importAdapters/STARFusionImport'))).then(r => r.parseSTARFusionBuffer),
49
- };
50
- function getType(adapter) {
51
- if (adapter.vcfLocation || adapter.vcfGzLocation) {
52
- return 'VCF';
53
- }
54
- else if (adapter.bedLocation || adapter.bedGzLocation) {
55
- return 'BED';
56
- }
57
- else if (adapter.bedpeLocation) {
58
- return 'BEDPE';
59
- }
60
- else {
61
- return undefined;
62
- }
63
- }
64
- function getAdapterLoc(adapter) {
65
- return (adapter.vcfLocation ||
66
- adapter.vcfGzLocation ||
67
- adapter.bedLocation ||
68
- adapter.bedGzLocation ||
69
- adapter.bedpeLocation);
70
- }
71
- const fileTypesRegexp = new RegExp(`\\.(${fileTypes.join('|')})(\\.gz)?$`, 'i');
72
- function x() { }
73
- function stateModelFactory() {
74
- return mobx_state_tree_1.types
75
- .model('SpreadsheetImportWizard', {
76
- fileType: mobx_state_tree_1.types.optional(mobx_state_tree_1.types.enumeration(fileTypes), 'VCF'),
77
- hasColumnNameLine: true,
78
- columnNameLineNumber: 1,
79
- selectedAssemblyName: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.string),
80
- cachedFileLocation: mobx_state_tree_1.types.frozen(),
81
- })
82
- .volatile(() => ({
83
- fileTypes,
84
- fileSource: undefined,
85
- error: undefined,
86
- loading: false,
87
- }))
88
- .views(self => ({
89
- get isReadyToOpen() {
90
- return (self.fileSource &&
91
- (self.fileSource.blobId ||
92
- self.fileSource.localPath ||
93
- self.fileSource.uri));
94
- },
95
- get fileName() {
96
- return (self.fileSource.uri ||
97
- self.fileSource.localPath ||
98
- (self.fileSource.blobId && self.fileSource.name));
99
- },
100
- get requiresUnzip() {
101
- return this.fileName.endsWith('gz');
102
- },
103
- isValidRefName(refName, assemblyName) {
104
- const { assemblyManager } = (0, util_1.getSession)(self);
105
- return !assemblyName
106
- ? false
107
- : assemblyManager.isValidRefName(refName, assemblyName);
108
- },
109
- tracksForAssembly(selectedAssembly) {
110
- const session = (0, util_1.getSession)(self);
111
- const { tracks = [], sessionTracks = [] } = session;
112
- const allTracks = [
113
- ...tracks,
114
- ...sessionTracks,
115
- ];
116
- return allTracks
117
- .map(track => {
118
- const assemblyNames = (0, configuration_1.readConfObject)(track, 'assemblyNames');
119
- const adapter = (0, configuration_1.readConfObject)(track, 'adapter');
120
- const category = (0, configuration_1.readConfObject)(track, 'category').join(',');
121
- const loc = getAdapterLoc(adapter);
122
- return assemblyNames.includes(selectedAssembly) && loc
123
- ? {
124
- track,
125
- label: [
126
- category ? `[${category}]` : '',
127
- (0, tracks_1.getTrackName)(track, session),
128
- ]
129
- .filter(f => !!f)
130
- .join(' '),
131
- assemblyNames,
132
- type: getType(adapter) || 'UNKNOWN',
133
- loc,
134
- }
135
- : undefined;
136
- })
137
- .filter(f => !!f)
138
- .sort((a, b) => a.label.localeCompare(b.label));
139
- },
140
- }))
141
- .actions(self => ({
142
- setSelectedAssemblyName(s) {
143
- self.selectedAssemblyName = s;
144
- },
145
- setFileSource(newSource) {
146
- var _a;
147
- self.fileSource = newSource;
148
- self.error = undefined;
149
- if (self.fileSource) {
150
- const name = self.fileName;
151
- if (name) {
152
- const firstMatch = (_a = fileTypesRegexp.exec(name)) === null || _a === void 0 ? void 0 : _a[1];
153
- if (firstMatch) {
154
- self.fileType =
155
- firstMatch === 'tsv' && name.includes('star-fusion')
156
- ? 'STAR-Fusion'
157
- : firstMatch.toUpperCase();
158
- }
159
- }
160
- }
161
- },
162
- setColumnNameLineNumber(newnumber) {
163
- if (newnumber > 0) {
164
- self.columnNameLineNumber = newnumber;
165
- }
166
- },
167
- setFileType(typeName) {
168
- self.fileType = typeName;
169
- },
170
- setError(error) {
171
- self.error = error;
172
- },
173
- setLoading(arg) {
174
- self.loading = arg;
175
- },
176
- cancelButton() {
177
- self.error = undefined;
178
- (0, mobx_state_tree_1.getParent)(self).setDisplayMode();
179
- },
180
- setCachedFileHandle(arg) {
181
- self.cachedFileLocation = arg;
182
- },
183
- }))
184
- .actions(self => ({
185
- async import(assemblyName) {
186
- if (!self.fileSource) {
187
- return;
188
- }
189
- self.selectedAssemblyName = assemblyName;
190
- const type = self.fileType;
191
- const typeParser = await fileTypeParsers[type]();
192
- const { fetchAndMaybeUnzip } = await Promise.resolve().then(() => __importStar(require('@jbrowse/core/util')));
193
- const { pluginManager } = (0, util_1.getEnv)(self);
194
- const filehandle = (0, io_1.openLocation)(self.fileSource, pluginManager);
195
- self.setLoading(true);
196
- try {
197
- const stat = await filehandle.stat();
198
- if (stat.size > IMPORT_SIZE_LIMIT) {
199
- self.setError(`File is too big. Tabular files are limited to at most ${(IMPORT_SIZE_LIMIT / 1000).toLocaleString()}kb.`);
200
- return;
201
- }
202
- }
203
- catch (e) {
204
- console.warn(e);
205
- }
206
- finally {
207
- self.setLoading(false);
208
- }
209
- self.setLoading(true);
210
- try {
211
- if (self.fileSource.uri) {
212
- self.setCachedFileHandle({
213
- uri: self.fileSource.uri,
214
- baseUri: self.fileSource.baseUri,
215
- locationType: 'UriLocation',
216
- });
217
- }
218
- const data = await fetchAndMaybeUnzip(filehandle);
219
- (0, mobx_state_tree_1.getParent)(self).displaySpreadsheet({
220
- ...typeParser(data),
221
- assemblyName,
222
- });
223
- }
224
- catch (e) {
225
- console.error(e);
226
- self.setError(e);
227
- }
228
- finally {
229
- self.setLoading(false);
230
- }
231
- },
232
- }))
233
- .actions(self => ({
234
- afterAttach() {
235
- ;
236
- (async () => {
237
- try {
238
- if (self.cachedFileLocation && self.selectedAssemblyName) {
239
- self.setFileSource(self.cachedFileLocation);
240
- await self.import(self.selectedAssemblyName);
241
- }
242
- }
243
- catch (e) {
244
- console.error(e);
245
- (0, util_1.getSession)(self).notifyError(`${e}`, e);
246
- }
247
- })();
248
- },
249
- }));
250
- }