@jbrowse/plugin-spreadsheet-view 2.13.1 → 2.15.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 (72) hide show
  1. package/dist/LaunchSpreadsheetView/index.js +2 -5
  2. package/dist/SpreadsheetView/components/CellData.d.ts +1 -1
  3. package/dist/SpreadsheetView/components/ColumnFilterControls.js +1 -4
  4. package/dist/SpreadsheetView/components/ColumnMenu.js +25 -11
  5. package/dist/SpreadsheetView/components/DataRow.d.ts +2 -2
  6. package/dist/SpreadsheetView/components/DataRow.js +1 -1
  7. package/dist/SpreadsheetView/components/DataTable.d.ts +1 -1
  8. package/dist/SpreadsheetView/components/DataTableHeader.js +23 -20
  9. package/dist/SpreadsheetView/components/GlobalFilterControls.js +6 -3
  10. package/dist/SpreadsheetView/components/ImportWizard.js +16 -6
  11. package/dist/SpreadsheetView/components/NumberEditor.js +3 -1
  12. package/dist/SpreadsheetView/components/RowCountMessage.d.ts +3 -4
  13. package/dist/SpreadsheetView/components/RowCountMessage.js +6 -1
  14. package/dist/SpreadsheetView/components/RowMenu.d.ts +2 -2
  15. package/dist/SpreadsheetView/components/RowMenu.js +1 -0
  16. package/dist/SpreadsheetView/components/Spreadsheet.d.ts +1 -1
  17. package/dist/SpreadsheetView/components/Spreadsheet.js +3 -2
  18. package/dist/SpreadsheetView/components/StatusBar.js +12 -9
  19. package/dist/SpreadsheetView/importAdapters/BedImport.js +2 -3
  20. package/dist/SpreadsheetView/importAdapters/ImportUtils.js +1 -0
  21. package/dist/SpreadsheetView/importAdapters/STARFusionImport.js +1 -2
  22. package/dist/SpreadsheetView/importAdapters/VcfImport.js +4 -2
  23. package/dist/SpreadsheetView/models/ColumnDataTypes/LocEnd.js +1 -1
  24. package/dist/SpreadsheetView/models/ColumnDataTypes/LocStart.js +1 -1
  25. package/dist/SpreadsheetView/models/ColumnDataTypes/LocString.js +3 -11
  26. package/dist/SpreadsheetView/models/ColumnDataTypes/Number.js +5 -8
  27. package/dist/SpreadsheetView/models/ColumnDataTypes/Text.js +1 -4
  28. package/dist/SpreadsheetView/models/FilterControls.js +2 -5
  29. package/dist/SpreadsheetView/models/ImportWizard.js +0 -7
  30. package/dist/SpreadsheetView/models/Row.js +0 -2
  31. package/dist/SpreadsheetView/models/Spreadsheet.d.ts +1 -1
  32. package/dist/SpreadsheetView/models/Spreadsheet.js +2 -2
  33. package/dist/SpreadsheetView/models/SpreadsheetView.d.ts +0 -4
  34. package/dist/SpreadsheetView/models/SpreadsheetView.js +6 -10
  35. package/dist/SpreadsheetView/models/StaticRowSet.js +3 -6
  36. package/esm/LaunchSpreadsheetView/index.js +2 -5
  37. package/esm/SpreadsheetView/components/CellData.d.ts +1 -1
  38. package/esm/SpreadsheetView/components/ColumnFilterControls.js +1 -4
  39. package/esm/SpreadsheetView/components/ColumnMenu.js +25 -11
  40. package/esm/SpreadsheetView/components/DataRow.d.ts +2 -2
  41. package/esm/SpreadsheetView/components/DataRow.js +1 -1
  42. package/esm/SpreadsheetView/components/DataTable.d.ts +1 -1
  43. package/esm/SpreadsheetView/components/DataTableHeader.js +23 -20
  44. package/esm/SpreadsheetView/components/GlobalFilterControls.js +6 -3
  45. package/esm/SpreadsheetView/components/ImportWizard.js +16 -6
  46. package/esm/SpreadsheetView/components/NumberEditor.js +3 -1
  47. package/esm/SpreadsheetView/components/RowCountMessage.d.ts +3 -4
  48. package/esm/SpreadsheetView/components/RowCountMessage.js +3 -1
  49. package/esm/SpreadsheetView/components/RowMenu.d.ts +2 -2
  50. package/esm/SpreadsheetView/components/RowMenu.js +1 -0
  51. package/esm/SpreadsheetView/components/Spreadsheet.d.ts +1 -1
  52. package/esm/SpreadsheetView/components/Spreadsheet.js +3 -2
  53. package/esm/SpreadsheetView/components/StatusBar.js +12 -9
  54. package/esm/SpreadsheetView/importAdapters/BedImport.js +2 -3
  55. package/esm/SpreadsheetView/importAdapters/ImportUtils.js +1 -0
  56. package/esm/SpreadsheetView/importAdapters/STARFusionImport.js +1 -2
  57. package/esm/SpreadsheetView/importAdapters/VcfImport.js +4 -2
  58. package/esm/SpreadsheetView/models/ColumnDataTypes/LocEnd.js +1 -1
  59. package/esm/SpreadsheetView/models/ColumnDataTypes/LocStart.js +1 -1
  60. package/esm/SpreadsheetView/models/ColumnDataTypes/LocString.js +3 -11
  61. package/esm/SpreadsheetView/models/ColumnDataTypes/Number.js +5 -8
  62. package/esm/SpreadsheetView/models/ColumnDataTypes/Text.js +1 -4
  63. package/esm/SpreadsheetView/models/ColumnDataTypes/index.js +2 -2
  64. package/esm/SpreadsheetView/models/FilterControls.js +2 -5
  65. package/esm/SpreadsheetView/models/ImportWizard.js +0 -7
  66. package/esm/SpreadsheetView/models/Row.js +0 -2
  67. package/esm/SpreadsheetView/models/Spreadsheet.d.ts +1 -1
  68. package/esm/SpreadsheetView/models/Spreadsheet.js +2 -2
  69. package/esm/SpreadsheetView/models/SpreadsheetView.d.ts +0 -4
  70. package/esm/SpreadsheetView/models/SpreadsheetView.js +7 -11
  71. package/esm/SpreadsheetView/models/StaticRowSet.js +3 -6
  72. package/package.json +6 -6
@@ -30,7 +30,6 @@ export async function parseSTARFusionBuffer(buffer, options) {
30
30
  });
31
31
  // decorate each row with a feature object in its extendedData
32
32
  data.rowSet.rows.forEach((row, rowNumber) => {
33
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
34
33
  const featureData = {};
35
34
  row.cells.forEach(({ text }, columnNumber) => {
36
35
  const column = data.columns[columnNumber];
@@ -52,7 +51,7 @@ export async function parseSTARFusionBuffer(buffer, options) {
52
51
  }
53
52
  else if (text && numericColumns[column.name]) {
54
53
  // some other column, numeric
55
- featureData[column.name] = parseFloat(text);
54
+ featureData[column.name] = Number.parseFloat(text);
56
55
  }
57
56
  else {
58
57
  // some other column, text
@@ -12,7 +12,6 @@ const vcfCoreColumns = [
12
12
  { name: 'INFO', type: 'Text' }, // 7
13
13
  { name: 'FORMAT', type: 'Text' }, // 8
14
14
  ];
15
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
16
15
  function vcfRecordToRow(vcfParser, line, lineNumber) {
17
16
  const vcfVariant = vcfParser.parseLine(line);
18
17
  const vcfFeature = new VcfFeature({
@@ -65,7 +64,10 @@ export function parseVcfBuffer(buffer, options = {}) {
65
64
  for (let i = 0; i < vcfParser.samples.length; i += 1) {
66
65
  const oi = vcfCoreColumns.length + i;
67
66
  columnDisplayOrder.push(oi);
68
- columns[oi] = { name: vcfParser.samples[i], dataType: { type: 'Text' } };
67
+ columns[oi] = {
68
+ name: vcfParser.samples[i],
69
+ dataType: { type: 'Text' },
70
+ };
69
71
  }
70
72
  columnDisplayOrder.push(columnDisplayOrder.length);
71
73
  columns.unshift({
@@ -8,7 +8,7 @@ const LocEnd = MakeSpreadsheetColumnType('LocEnd', {
8
8
  categoryName: 'Location',
9
9
  displayName: 'End',
10
10
  compare(cellA, cellB) {
11
- return parseFloat(cellA.text) - parseFloat(cellB.text);
11
+ return Number.parseFloat(cellA.text) - Number.parseFloat(cellB.text);
12
12
  },
13
13
  FilterModelType,
14
14
  });
@@ -8,7 +8,7 @@ const LocStart = MakeSpreadsheetColumnType('LocStart', {
8
8
  categoryName: 'Location',
9
9
  displayName: 'Start',
10
10
  compare(cellA, cellB) {
11
- return parseFloat(cellA.text) - parseFloat(cellB.text);
11
+ return Number.parseFloat(cellA.text) - Number.parseFloat(cellB.text);
12
12
  },
13
13
  FilterModelType,
14
14
  });
@@ -75,7 +75,7 @@ const FilterModelType = types
75
75
  type: types.literal('LocString'),
76
76
  columnNumber: types.integer,
77
77
  locString: '',
78
- operation: types.optional(types.enumeration(OPERATIONS), OPERATIONS[0]),
78
+ operation: types.optional(types.string, OPERATIONS[0]),
79
79
  })
80
80
  .views(self => ({
81
81
  get locStringIsInvalid() {
@@ -91,7 +91,6 @@ const FilterModelType = types
91
91
  },
92
92
  get parsedLocString() {
93
93
  const session = getSession(self);
94
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
95
94
  const model = getParent(self, 3).spreadsheet;
96
95
  const { assemblyName } = model;
97
96
  try {
@@ -111,7 +110,6 @@ const FilterModelType = types
111
110
  return true;
112
111
  };
113
112
  }
114
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
115
113
  return function stringPredicate(_sheet, row) {
116
114
  const { cellsWithDerived: cells } = row;
117
115
  const cell = cells[columnNumber];
@@ -140,14 +138,9 @@ const FilterModelType = types
140
138
  }))
141
139
  .volatile(() => ({ ReactComponent: FilterReactComponent }));
142
140
  // opens a new LGV at the location described in the locString in the cell text
143
- async function locationLinkClick(
144
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
145
- spreadsheet, _columnNumber,
146
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
147
- cell) {
141
+ async function locationLinkClick(spreadsheet, _columnNumber, cell) {
148
142
  const session = getSession(spreadsheet);
149
143
  const { assemblyName } = spreadsheet;
150
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
151
144
  const { id } = getParent(spreadsheet);
152
145
  const newViewId = `${id}_${assemblyName}`;
153
146
  let view = session.views.find(v => v.id === newViewId);
@@ -169,12 +162,11 @@ const DataCellReactComponent = observer(function ({ cell, columnNumber, spreadsh
169
162
  console.error(e);
170
163
  session.notifyError(`${e}`, e);
171
164
  }
172
- }, title: "open a new linear genome view here", href: "#link" }, cell.text));
165
+ }, title: "open a new linear genome view here", href: "#" }, cell.text));
173
166
  });
174
167
  const LocStringColumnType = MakeSpreadsheetColumnType('LocString', {
175
168
  categoryName: 'Location',
176
169
  displayName: 'Full location',
177
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
178
170
  compare(cellA, cellB) {
179
171
  return compareLocs(cellA.extendedData, cellB.extendedData);
180
172
  },
@@ -46,21 +46,19 @@ const useStyles = makeStyles()({
46
46
  },
47
47
  });
48
48
  // React component for the column filter control
49
- const FilterReactComponent = observer(
50
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
51
- ({ filterModel }) => {
49
+ const FilterReactComponent = observer(({ filterModel }) => {
52
50
  const { classes } = useStyles();
53
51
  const operationChoices = OPERATIONS;
54
52
  return (React.createElement(React.Fragment, null,
55
53
  React.createElement(Select, { value: filterModel.operation, onChange: e => filterModel.setOperation(String(e.target.value)) }, operationChoices.map(name => (React.createElement(MenuItem, { key: name, value: name }, name)))),
56
54
  ' ',
57
55
  React.createElement(TextField, { label: "number", placeholder: "123", type: "number", error: filterModel.firstNumberIsInvalid, defaultValue: filterModel.firstNumber, onChange: evt => {
58
- filterModel.setFirstNumber(parseFloat(evt.target.value));
56
+ filterModel.setFirstNumber(Number.parseFloat(evt.target.value));
59
57
  }, className: classes.textFilterControl }),
60
58
  filterModel.operation !== 'between' &&
61
59
  filterModel.operation !== 'not between' ? null : (React.createElement(React.Fragment, null,
62
60
  ' and ',
63
- React.createElement(TextField, { label: "number", placeholder: "456", type: "number", error: filterModel.secondNumberIsInvalid, defaultValue: filterModel.secondNumber, onChange: evt => filterModel.setSecondNumber(parseFloat(evt.target.value)), className: classes.textFilterControl })))));
61
+ React.createElement(TextField, { label: "number", placeholder: "456", type: "number", error: filterModel.secondNumberIsInvalid, defaultValue: filterModel.secondNumber, onChange: evt => filterModel.setSecondNumber(Number.parseFloat(evt.target.value)), className: classes.textFilterControl })))));
64
62
  });
65
63
  // MST model for the column filter control
66
64
  const FilterModelType = types
@@ -80,14 +78,13 @@ const FilterModelType = types
80
78
  };
81
79
  }
82
80
  const { firstNumber, secondNumber, operation, columnNumber } = self; // avoid closing over self
83
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
84
81
  return function stringPredicate(_sheet, row) {
85
82
  const { cellsWithDerived } = row;
86
83
  const cell = cellsWithDerived[columnNumber];
87
84
  if (!(cell === null || cell === void 0 ? void 0 : cell.text)) {
88
85
  return false;
89
86
  }
90
- const parsedCellText = parseFloat(cell.text);
87
+ const parsedCellText = Number.parseFloat(cell.text);
91
88
  if (typeof parsedCellText !== 'number') {
92
89
  return false;
93
90
  }
@@ -115,7 +112,7 @@ const FilterModelType = types
115
112
  .volatile(() => ({ ReactComponent: FilterReactComponent }));
116
113
  const NumberColumn = MakeSpreadsheetColumnType('Number', {
117
114
  compare(cellA, cellB) {
118
- return parseFloat(cellA.text) - parseFloat(cellB.text);
115
+ return Number.parseFloat(cellA.text) - Number.parseFloat(cellB.text);
119
116
  },
120
117
  FilterModelType,
121
118
  });
@@ -56,9 +56,7 @@ const useStyles = makeStyles()({
56
56
  },
57
57
  });
58
58
  // React component for the column filter control
59
- const FilterReactComponent = observer(
60
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
61
- ({ filterModel }) => {
59
+ const FilterReactComponent = observer(({ filterModel }) => {
62
60
  const { classes } = useStyles();
63
61
  const operationChoices = getEnumerationValues(getSubType(getPropertyType(getPropertyMembers(filterModel), 'operation')));
64
62
  return (React.createElement(React.Fragment, null,
@@ -90,7 +88,6 @@ const ColumnTextFilter = types
90
88
  };
91
89
  }
92
90
  const s = stringToFind.toLowerCase(); // case insensitive match
93
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
94
91
  return function stringPredicate(_sheet, row) {
95
92
  const { cellsWithDerived } = row;
96
93
  const cell = cellsWithDerived[columnNumber];
@@ -2,11 +2,11 @@ import LocString from './LocString';
2
2
  import LocRef from './LocRef';
3
3
  import LocStart from './LocStart';
4
4
  import LocEnd from './LocEnd';
5
- import { NumberColumn as Number } from './Number';
5
+ import { NumberColumn } from './Number';
6
6
  import { TextColumn as Text } from './Text';
7
7
  import { types } from 'mobx-state-tree';
8
8
  const ColumnTypes = {
9
- Number,
9
+ Number: NumberColumn,
10
10
  Text,
11
11
  LocString,
12
12
  LocRef,
@@ -17,11 +17,10 @@ const RowFullTextFilter = types
17
17
  }
18
18
  s = s.toLowerCase();
19
19
  return function stringPredicate(_sheet, row) {
20
- var _a;
21
20
  const { cellsWithDerived } = row;
22
21
  for (const cell of cellsWithDerived) {
23
22
  // note: case insensitive
24
- if ((_a = cell.text) === null || _a === void 0 ? void 0 : _a.toLowerCase().includes(s)) {
23
+ if (cell.text.toLowerCase().includes(s)) {
25
24
  return true;
26
25
  }
27
26
  }
@@ -67,9 +66,7 @@ const model = types
67
66
  }))
68
67
  .actions(self => ({
69
68
  addBlankColumnFilter(columnNumber) {
70
- const { dataType } =
71
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
72
- getParent(self).spreadsheet.columns[columnNumber];
69
+ const { dataType } = getParent(self).spreadsheet.columns[columnNumber];
73
70
  self.columnFilters.push({
74
71
  type: dataType.type,
75
72
  columnNumber,
@@ -40,7 +40,6 @@ const ImportWizard = types
40
40
  })
41
41
  .volatile(() => ({
42
42
  fileTypes,
43
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
44
43
  fileSource: undefined,
45
44
  error: undefined,
46
45
  loading: false,
@@ -54,7 +53,6 @@ const ImportWizard = types
54
53
  self.fileSource.uri));
55
54
  },
56
55
  get canCancel() {
57
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
58
56
  return getParent(self).readyToDisplay;
59
57
  },
60
58
  get fileName() {
@@ -117,7 +115,6 @@ const ImportWizard = types
117
115
  },
118
116
  cancelButton() {
119
117
  self.error = undefined;
120
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
121
118
  getParent(self).setDisplayMode();
122
119
  },
123
120
  // fetch and parse the file, make a new Spreadsheet model for it,
@@ -133,9 +130,6 @@ const ImportWizard = types
133
130
  self.loading = true;
134
131
  const type = self.fileType;
135
132
  const typeParser = await fileTypeParsers[type]();
136
- if (!typeParser) {
137
- throw new Error(`cannot open files of type '${self.fileType}'`);
138
- }
139
133
  const { unzip } = await import('@gmod/bgzf-filehandle');
140
134
  const { pluginManager } = getEnv(self);
141
135
  const filehandle = openLocation(self.fileSource, pluginManager);
@@ -156,7 +150,6 @@ const ImportWizard = types
156
150
  .then(buffer => typeParser(buffer, self))
157
151
  .then(spreadsheet => {
158
152
  this.setLoaded();
159
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
160
153
  getParent(self).displaySpreadsheet(spreadsheet);
161
154
  });
162
155
  }
@@ -26,10 +26,8 @@ const RowModel = types
26
26
  }))
27
27
  .views(self => ({
28
28
  get cellsWithDerived() {
29
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
30
29
  const { columns } = getParent(self, 3);
31
30
  let i = 0;
32
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
33
31
  return columns.map((column) => {
34
32
  if (column.isDerived) {
35
33
  return column.expr.evalSync({
@@ -1,5 +1,5 @@
1
1
  import { SnapshotIn, Instance } from 'mobx-state-tree';
2
- import RowModel from './Row';
2
+ import type RowModel from './Row';
3
3
  type Row = Instance<typeof RowModel>;
4
4
  type RowMenuPosition = {
5
5
  anchorEl: Element;
@@ -86,7 +86,6 @@ const Spreadsheet = types
86
86
  */
87
87
  get hideRowSelection() {
88
88
  // just delegates to parent
89
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
90
89
  return getParent(self).hideRowSelection;
91
90
  },
92
91
  /**
@@ -148,6 +147,7 @@ const Spreadsheet = types
148
147
  * #action
149
148
  */
150
149
  setSortColumns(newSort) {
150
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
151
151
  if (newSort) {
152
152
  // @ts-expect-error
153
153
  self.sortColumns = newSort;
@@ -163,7 +163,7 @@ const Spreadsheet = types
163
163
  * #action
164
164
  */
165
165
  unselectAll() {
166
- return self.rowSet.unselectAll();
166
+ self.rowSet.unselectAll();
167
167
  },
168
168
  }));
169
169
  export default Spreadsheet;
@@ -465,10 +465,6 @@ declare const SpreadsheetView: import("mobx-state-tree").IModelType<{
465
465
  * #action
466
466
  */
467
467
  setDisplayMode(): void;
468
- /**
469
- * #action
470
- */
471
- closeView(): void;
472
468
  } & {
473
469
  /**
474
470
  * #method
@@ -1,4 +1,4 @@
1
- import { types, getParent, getEnv, cast, } from 'mobx-state-tree';
1
+ import { types, getEnv, cast } from 'mobx-state-tree';
2
2
  import { BaseViewModel } from '@jbrowse/core/pluggableElementTypes/models';
3
3
  import { readConfObject } from '@jbrowse/core/configuration';
4
4
  import { getSession } from '@jbrowse/core/util';
@@ -90,7 +90,8 @@ const model = types
90
90
  * #getter
91
91
  */
92
92
  get outputRows() {
93
- if (self.spreadsheet && self.spreadsheet.rowSet.isLoaded) {
93
+ var _a;
94
+ if ((_a = self.spreadsheet) === null || _a === void 0 ? void 0 : _a.rowSet.isLoaded) {
94
95
  const selected = self.spreadsheet.rowSet.selectedFilteredRows;
95
96
  if (selected.length) {
96
97
  return selected;
@@ -107,7 +108,7 @@ const model = types
107
108
  const name = (_a = self.spreadsheet) === null || _a === void 0 ? void 0 : _a.assemblyName;
108
109
  if (name) {
109
110
  const assemblies = getSession(self).assemblies;
110
- return assemblies === null || assemblies === void 0 ? void 0 : assemblies.find(asm => readConfObject(asm, 'name') === name);
111
+ return assemblies.find(asm => readConfObject(asm, 'name') === name);
111
112
  }
112
113
  return undefined;
113
114
  },
@@ -172,13 +173,6 @@ const model = types
172
173
  self.mode = 'display';
173
174
  }
174
175
  },
175
- /**
176
- * #action
177
- */
178
- closeView() {
179
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
180
- getParent(self, 2).removeView(self);
181
- },
182
176
  }))
183
177
  .views(self => ({
184
178
  /**
@@ -188,7 +182,9 @@ const model = types
188
182
  return [
189
183
  {
190
184
  label: 'Return to import form',
191
- onClick: () => self.setImportMode(),
185
+ onClick: () => {
186
+ self.setImportMode();
187
+ },
192
188
  icon: FolderOpenIcon,
193
189
  },
194
190
  ];
@@ -19,7 +19,6 @@ const StaticRowModel = types
19
19
  return this.selectedFilteredRows.length;
20
20
  },
21
21
  get sortedRows() {
22
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
23
22
  const parent = getParent(self);
24
23
  return [...self.rows].sort(parent.rowSortingComparisonFunction);
25
24
  },
@@ -27,18 +26,14 @@ const StaticRowModel = types
27
26
  return self.rows.filter(r => r.isSelected);
28
27
  },
29
28
  get selectedFilteredRows() {
30
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
31
29
  const sheet = getParent(self);
32
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
33
30
  const view = getParent(sheet);
34
31
  const { filterControls } = view;
35
32
  return this.selectedRows.filter(row => filterControls.rowPassesFilters(sheet, row));
36
33
  },
37
34
  // the set of all rows that pass the filters, sorted
38
35
  get sortedFilteredRows() {
39
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
40
36
  const sheet = getParent(self);
41
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
42
37
  const view = getParent(sheet);
43
38
  const { filterControls } = view;
44
39
  return self.rows
@@ -48,7 +43,9 @@ const StaticRowModel = types
48
43
  }))
49
44
  .actions(self => ({
50
45
  unselectAll() {
51
- self.rows.forEach(row => row.unSelect());
46
+ self.rows.forEach(row => {
47
+ row.unSelect();
48
+ });
52
49
  },
53
50
  }));
54
51
  export default StaticRowModel;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jbrowse/plugin-spreadsheet-view",
3
- "version": "2.13.1",
3
+ "version": "2.15.0",
4
4
  "description": "JBrowse 2 spreadsheet view",
5
5
  "keywords": [
6
6
  "jbrowse",
@@ -24,7 +24,7 @@
24
24
  ],
25
25
  "scripts": {
26
26
  "build": "npm-run-all build:*",
27
- "test": "cd ../..; jest plugins/spreadsheet-view",
27
+ "test": "cd ../..; jest --passWithNoTests plugins/spreadsheet-view",
28
28
  "prepublishOnly": "yarn test",
29
29
  "prepack": "yarn build && yarn useDist",
30
30
  "postpack": "yarn useSrc",
@@ -38,14 +38,14 @@
38
38
  "dependencies": {
39
39
  "@gmod/bgzf-filehandle": "^1.4.3",
40
40
  "@gmod/vcf": "^5.0.9",
41
- "@jbrowse/plugin-variants": "^2.13.1",
42
- "@mui/icons-material": "^5.0.1",
41
+ "@jbrowse/plugin-variants": "^2.15.0",
42
+ "@mui/icons-material": "^6.0.0",
43
43
  "csvtojson": "^2.0.10"
44
44
  },
45
45
  "peerDependencies": {
46
46
  "@jbrowse/core": "^2.0.0",
47
47
  "@jbrowse/plugin-linear-genome-view": "^2.0.0",
48
- "@mui/material": "^5.0.0",
48
+ "@mui/material": "^6.0.0",
49
49
  "mobx": "^6.0.0",
50
50
  "mobx-react": "^9.0.0",
51
51
  "mobx-state-tree": "^5.0.0",
@@ -60,5 +60,5 @@
60
60
  "publishConfig": {
61
61
  "access": "public"
62
62
  },
63
- "gitHead": "fcebca71cc1d066654603e1a9accfa6c6d4f764d"
63
+ "gitHead": "87eeb1fbf8311dbf88d5e75b5a265f03beffdda8"
64
64
  }