@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,126 +0,0 @@
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.FilterModelType = exports.NumberColumn = void 0;
7
- const react_1 = __importDefault(require("react"));
8
- const mobx_state_tree_1 = require("mobx-state-tree");
9
- const mobx_react_1 = require("mobx-react");
10
- const material_1 = require("@mui/material");
11
- const mui_1 = require("tss-react/mui");
12
- const MakeSpreadsheetColumnType_1 = __importDefault(require("./MakeSpreadsheetColumnType"));
13
- const OPERATIONS = [
14
- 'equals',
15
- 'greater than',
16
- 'less than',
17
- 'between',
18
- 'not between',
19
- ];
20
- // NOTE: assembly names, if present, are ignored in all of these predicates
21
- const OPERATION_PREDICATES = {
22
- equals: (numberInCell, firstNumber) => {
23
- return numberInCell === firstNumber;
24
- },
25
- 'greater than': (numberInCell, firstNumber) => {
26
- return numberInCell > firstNumber;
27
- },
28
- 'less than': (numberInCell, firstNumber) => {
29
- return numberInCell < firstNumber;
30
- },
31
- between: (numberInCell, firstNumber, secondNumber) => {
32
- return (numberInCell > firstNumber &&
33
- secondNumber !== undefined &&
34
- numberInCell < secondNumber);
35
- },
36
- };
37
- OPERATION_PREDICATES['not between'] = (numberInCell, firstNumber, secondNumber) => {
38
- return !OPERATION_PREDICATES.between(numberInCell, firstNumber, secondNumber);
39
- };
40
- const useStyles = (0, mui_1.makeStyles)()({
41
- textFilterControlAdornment: { marginRight: '-18px' },
42
- textFilterControl: {
43
- '& .MuiInput-formControl': {
44
- marginTop: 8,
45
- },
46
- '& .MuiInputLabel-formControl': {
47
- top: '-7px',
48
- '&.MuiInputLabel-shrink': {
49
- top: '-3px',
50
- },
51
- },
52
- },
53
- });
54
- // React component for the column filter control
55
- const FilterReactComponent = (0, mobx_react_1.observer)(({ filterModel }) => {
56
- const { classes } = useStyles();
57
- const operationChoices = OPERATIONS;
58
- return (react_1.default.createElement(react_1.default.Fragment, null,
59
- react_1.default.createElement(material_1.Select, { value: filterModel.operation, onChange: e => filterModel.setOperation(String(e.target.value)) }, operationChoices.map(name => (react_1.default.createElement(material_1.MenuItem, { key: name, value: name }, name)))),
60
- ' ',
61
- react_1.default.createElement(material_1.TextField, { label: "number", placeholder: "123", type: "number", error: filterModel.firstNumberIsInvalid, defaultValue: filterModel.firstNumber, onChange: evt => {
62
- filterModel.setFirstNumber(Number.parseFloat(evt.target.value));
63
- }, className: classes.textFilterControl }),
64
- filterModel.operation !== 'between' &&
65
- filterModel.operation !== 'not between' ? null : (react_1.default.createElement(react_1.default.Fragment, null,
66
- ' and ',
67
- react_1.default.createElement(material_1.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 })))));
68
- });
69
- // MST model for the column filter control
70
- const FilterModelType = mobx_state_tree_1.types
71
- .model('ColumnNumberFilter', {
72
- type: mobx_state_tree_1.types.literal('Number'),
73
- columnNumber: mobx_state_tree_1.types.integer,
74
- firstNumber: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.number),
75
- secondNumber: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.number),
76
- operation: mobx_state_tree_1.types.optional(mobx_state_tree_1.types.enumeration(OPERATIONS), OPERATIONS[0]),
77
- })
78
- .views(self => ({
79
- // returns a function that tests the given row
80
- get predicate() {
81
- if (typeof self.firstNumber !== 'number') {
82
- return function alwaysTrue() {
83
- return true;
84
- };
85
- }
86
- const { firstNumber, secondNumber, operation, columnNumber } = self; // avoid closing over self
87
- return function stringPredicate(_sheet, row) {
88
- const { cellsWithDerived } = row;
89
- const cell = cellsWithDerived[columnNumber];
90
- if (!(cell === null || cell === void 0 ? void 0 : cell.text)) {
91
- return false;
92
- }
93
- const parsedCellText = Number.parseFloat(cell.text);
94
- if (typeof parsedCellText !== 'number') {
95
- return false;
96
- }
97
- const predicate = OPERATION_PREDICATES[operation];
98
- if (!predicate) {
99
- throw new Error(`"${operation}" not implemented in location filter`);
100
- }
101
- return predicate(parsedCellText, firstNumber, secondNumber);
102
- };
103
- },
104
- }))
105
- .actions(self => ({
106
- setFirstNumber(n) {
107
- self.firstNumber =
108
- Number.isNaN(n) || typeof n !== 'number' ? undefined : n;
109
- },
110
- setSecondNumber(n) {
111
- self.secondNumber =
112
- Number.isNaN(n) || typeof n !== 'number' ? undefined : n;
113
- },
114
- setOperation(op) {
115
- self.operation = op;
116
- },
117
- }))
118
- .volatile(() => ({ ReactComponent: FilterReactComponent }));
119
- exports.FilterModelType = FilterModelType;
120
- const NumberColumn = (0, MakeSpreadsheetColumnType_1.default)('Number', {
121
- compare(cellA, cellB) {
122
- return Number.parseFloat(cellA.text) - Number.parseFloat(cellB.text);
123
- },
124
- FilterModelType,
125
- });
126
- exports.NumberColumn = NumberColumn;
@@ -1,28 +0,0 @@
1
- import React from 'react';
2
- declare const ColumnTextFilter: import("mobx-state-tree").IModelType<{
3
- type: import("mobx-state-tree").ISimpleType<"Text">;
4
- columnNumber: import("mobx-state-tree").ISimpleType<number>;
5
- stringToFind: import("mobx-state-tree").IType<string | undefined, string, string>;
6
- operation: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
7
- }, {
8
- readonly predicate: (_sheet: any, row: any) => boolean;
9
- } & {
10
- setString(s: string): void;
11
- setOperation(op: string): void;
12
- } & {
13
- ReactComponent: ({ filterModel }: {
14
- filterModel: any;
15
- }) => React.JSX.Element;
16
- }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
17
- declare const TextColumnType: import("mobx-state-tree").IModelType<{
18
- type: import("mobx-state-tree").ISimpleType<string>;
19
- }, {
20
- DataCellReactComponent: React.FC<any> | null;
21
- FilterModelType: any;
22
- displayName: string;
23
- categoryName: string | undefined;
24
- } & {
25
- compare: any;
26
- readonly hasFilter: boolean;
27
- }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
28
- export { TextColumnType as TextColumn, ColumnTextFilter as FilterModelType };
@@ -1,129 +0,0 @@
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.FilterModelType = exports.TextColumn = void 0;
7
- const react_1 = __importDefault(require("react"));
8
- const material_1 = require("@mui/material");
9
- const mui_1 = require("tss-react/mui");
10
- const MakeSpreadsheetColumnType_1 = __importDefault(require("./MakeSpreadsheetColumnType"));
11
- const mobx_state_tree_1 = require("mobx-state-tree");
12
- const mobx_react_1 = require("mobx-react");
13
- const mst_reflection_1 = require("@jbrowse/core/util/mst-reflection");
14
- // icons
15
- const Clear_1 = __importDefault(require("@mui/icons-material/Clear"));
16
- const OPERATIONS = [
17
- 'equals',
18
- 'contains',
19
- 'does not contain',
20
- 'does not equal',
21
- 'starts with',
22
- 'ends with',
23
- ];
24
- // NOTE: assembly names, if present, are ignored in all of these predicates
25
- const OPERATION_PREDICATES = {
26
- contains: (textInCell, stringToFind) => {
27
- return textInCell.toLowerCase().includes(stringToFind);
28
- },
29
- equals: (textInCell, stringToFind) => {
30
- return textInCell.toLowerCase() === stringToFind;
31
- },
32
- 'starts with': (textInCell, stringToFind) => {
33
- return textInCell.toLowerCase().startsWith(stringToFind);
34
- },
35
- 'ends with': (textInCell, stringToFind) => {
36
- const index = textInCell.toLowerCase().indexOf(stringToFind);
37
- if (index === -1) {
38
- return false;
39
- }
40
- return index === textInCell.length - stringToFind.length;
41
- },
42
- };
43
- OPERATION_PREDICATES['does not contain'] = (textInCell, stringToFind) => {
44
- return !OPERATION_PREDICATES.contains(textInCell, stringToFind);
45
- };
46
- OPERATION_PREDICATES['does not equal'] = (textInCell, stringToFind) => {
47
- return !OPERATION_PREDICATES.equals(textInCell, stringToFind);
48
- };
49
- const useStyles = (0, mui_1.makeStyles)()({
50
- textFilterControlAdornment: { marginRight: '-18px' },
51
- textFilterControl: {
52
- margin: 0,
53
- '& .MuiInput-formControl': {
54
- marginTop: 8,
55
- },
56
- '& .MuiInputLabel-formControl': {
57
- top: '-7px',
58
- '&.MuiInputLabel-shrink': {
59
- top: '-3px',
60
- },
61
- },
62
- },
63
- });
64
- // React component for the column filter control
65
- const FilterReactComponent = (0, mobx_react_1.observer)(({ filterModel }) => {
66
- const { classes } = useStyles();
67
- const operationChoices = (0, mst_reflection_1.getEnumerationValues)((0, mst_reflection_1.getSubType)((0, mst_reflection_1.getPropertyType)((0, mobx_state_tree_1.getPropertyMembers)(filterModel), 'operation')));
68
- return (react_1.default.createElement(react_1.default.Fragment, null,
69
- react_1.default.createElement(material_1.Select, { value: filterModel.operation, onChange: event => {
70
- filterModel.setOperation(String(event.target.value));
71
- } }, operationChoices.map(name => (react_1.default.createElement(material_1.MenuItem, { key: name, value: name }, name)))),
72
- ' ',
73
- react_1.default.createElement(material_1.TextField, { label: "text", value: filterModel.stringToFind, onChange: evt => filterModel.setString(evt.target.value), className: classes.textFilterControl, slotProps: {
74
- input: {
75
- endAdornment: (react_1.default.createElement(material_1.InputAdornment, { className: classes.textFilterControlAdornment, position: "end" },
76
- react_1.default.createElement(material_1.IconButton, { "aria-label": "clear filter", onClick: () => filterModel.setString('') },
77
- react_1.default.createElement(Clear_1.default, null)))),
78
- },
79
- } })));
80
- });
81
- // MST model for the column filter control
82
- const ColumnTextFilter = mobx_state_tree_1.types
83
- .model('ColumnTextFilter', {
84
- type: mobx_state_tree_1.types.literal('Text'),
85
- columnNumber: mobx_state_tree_1.types.integer,
86
- stringToFind: '',
87
- operation: mobx_state_tree_1.types.optional(mobx_state_tree_1.types.enumeration(OPERATIONS), OPERATIONS[0]),
88
- })
89
- .views(self => ({
90
- // returns a function that tests the given row
91
- get predicate() {
92
- const { stringToFind, columnNumber, operation } = self; // avoid closing over self
93
- if (!stringToFind) {
94
- return function alwaysTrue() {
95
- return true;
96
- };
97
- }
98
- const s = stringToFind.toLowerCase(); // case insensitive match
99
- return function stringPredicate(_sheet, row) {
100
- const { cellsWithDerived } = row;
101
- const cell = cellsWithDerived[columnNumber];
102
- if (!(cell === null || cell === void 0 ? void 0 : cell.text)) {
103
- return false;
104
- }
105
- const predicate = OPERATION_PREDICATES[operation];
106
- if (!predicate) {
107
- throw new Error(`"${operation}" not implemented in location filter`);
108
- }
109
- return predicate(cell.text, s);
110
- };
111
- },
112
- }))
113
- .actions(self => ({
114
- setString(s) {
115
- self.stringToFind = s;
116
- },
117
- setOperation(op) {
118
- self.operation = op;
119
- },
120
- }))
121
- .volatile(() => ({ ReactComponent: FilterReactComponent }));
122
- exports.FilterModelType = ColumnTextFilter;
123
- const TextColumnType = (0, MakeSpreadsheetColumnType_1.default)('Text', {
124
- compare(cellA, cellB) {
125
- return cellA.text.localeCompare(cellB.text);
126
- },
127
- FilterModelType: ColumnTextFilter,
128
- });
129
- exports.TextColumn = TextColumnType;
@@ -1,71 +0,0 @@
1
- declare const ColumnTypes: {
2
- Number: import("mobx-state-tree").IModelType<{
3
- type: import("mobx-state-tree").ISimpleType<string>;
4
- }, {
5
- DataCellReactComponent: import("react").FC<any> | null;
6
- FilterModelType: any;
7
- displayName: string;
8
- categoryName: string | undefined;
9
- } & {
10
- compare: any;
11
- readonly hasFilter: boolean;
12
- }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
13
- Text: import("mobx-state-tree").IModelType<{
14
- type: import("mobx-state-tree").ISimpleType<string>;
15
- }, {
16
- DataCellReactComponent: import("react").FC<any> | null;
17
- FilterModelType: any;
18
- displayName: string;
19
- categoryName: string | undefined;
20
- } & {
21
- compare: any;
22
- readonly hasFilter: boolean;
23
- }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
24
- LocString: import("mobx-state-tree").IModelType<{
25
- type: import("mobx-state-tree").ISimpleType<string>;
26
- }, {
27
- DataCellReactComponent: import("react").FC<any> | null;
28
- FilterModelType: any;
29
- displayName: string;
30
- categoryName: string | undefined;
31
- } & {
32
- compare: any;
33
- readonly hasFilter: boolean;
34
- }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
35
- LocRef: import("mobx-state-tree").IModelType<{
36
- type: import("mobx-state-tree").ISimpleType<string>;
37
- }, {
38
- DataCellReactComponent: import("react").FC<any> | null;
39
- FilterModelType: any;
40
- displayName: string;
41
- categoryName: string | undefined;
42
- } & {
43
- compare: any;
44
- readonly hasFilter: boolean;
45
- }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
46
- LocStart: import("mobx-state-tree").IModelType<{
47
- type: import("mobx-state-tree").ISimpleType<string>;
48
- }, {
49
- DataCellReactComponent: import("react").FC<any> | null;
50
- FilterModelType: any;
51
- displayName: string;
52
- categoryName: string | undefined;
53
- } & {
54
- compare: any;
55
- readonly hasFilter: boolean;
56
- }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
57
- LocEnd: import("mobx-state-tree").IModelType<{
58
- type: import("mobx-state-tree").ISimpleType<string>;
59
- }, {
60
- DataCellReactComponent: import("react").FC<any> | null;
61
- FilterModelType: any;
62
- displayName: string;
63
- categoryName: string | undefined;
64
- } & {
65
- compare: any;
66
- readonly hasFilter: boolean;
67
- }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
68
- };
69
- declare const AnyColumnType: import("mobx-state-tree").IAnyType;
70
- declare const AnyFilterModelType: import("mobx-state-tree").IAnyType;
71
- export { ColumnTypes, AnyColumnType, AnyFilterModelType };
@@ -1,37 +0,0 @@
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.AnyFilterModelType = exports.AnyColumnType = exports.ColumnTypes = void 0;
7
- const LocString_1 = __importDefault(require("./LocString"));
8
- const LocRef_1 = __importDefault(require("./LocRef"));
9
- const LocStart_1 = __importDefault(require("./LocStart"));
10
- const LocEnd_1 = __importDefault(require("./LocEnd"));
11
- const Number_1 = require("./Number");
12
- const Text_1 = require("./Text");
13
- const mobx_state_tree_1 = require("mobx-state-tree");
14
- const ColumnTypes = {
15
- Number: Number_1.NumberColumn,
16
- Text: Text_1.TextColumn,
17
- LocString: LocString_1.default,
18
- LocRef: LocRef_1.default,
19
- LocStart: LocStart_1.default,
20
- LocEnd: LocEnd_1.default,
21
- };
22
- exports.ColumnTypes = ColumnTypes;
23
- const allColumnTypes = Object.values(ColumnTypes);
24
- const AnyColumnType = mobx_state_tree_1.types.union(...allColumnTypes);
25
- exports.AnyColumnType = AnyColumnType;
26
- const AnyFilterModelType = mobx_state_tree_1.types.union(...allColumnTypes
27
- .map(columnType => {
28
- // just instantiate the blank types to get their filter model types
29
- const { FilterModelType } = columnType.create({
30
- // @ts-expect-error
31
- type: columnType.properties.type.value,
32
- });
33
- return FilterModelType;
34
- })
35
- // some column types might not have filter machinery, filter those out
36
- .filter(t => !!t));
37
- exports.AnyFilterModelType = AnyFilterModelType;
@@ -1,26 +0,0 @@
1
- import { AnyFilterModelType as AnyColumnFilter } from './ColumnDataTypes';
2
- declare const model: import("mobx-state-tree").IModelType<{
3
- rowFullText: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IModelType<{
4
- type: import("mobx-state-tree").ISimpleType<"RowFullText">;
5
- stringToFind: import("mobx-state-tree").IType<string | undefined, string, string>;
6
- }, {
7
- readonly predicate: (_sheet: unknown, row: {
8
- cellsWithDerived: {
9
- text: string;
10
- }[];
11
- }) => boolean;
12
- } & {
13
- setString(s: string): void;
14
- clear(): void;
15
- }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>, [undefined]>;
16
- columnFilters: import("mobx-state-tree").IArrayType<import("mobx-state-tree").IAnyType>;
17
- }, {
18
- readonly filters: any[];
19
- setRowFullTextFilter(stringToFind: string): void;
20
- rowPassesFilters(sheet: unknown, row: unknown): boolean;
21
- } & {
22
- addBlankColumnFilter(columnNumber: number): void;
23
- removeColumnFilter(filter: typeof AnyColumnFilter): boolean;
24
- clearAllFilters(): void;
25
- }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
26
- export default model;
@@ -1,85 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const mobx_state_tree_1 = require("mobx-state-tree");
4
- const ColumnDataTypes_1 = require("./ColumnDataTypes");
5
- // filter that finds a simple string in any of the cells of a row
6
- const RowFullTextFilter = mobx_state_tree_1.types
7
- .model('RowFullTextFilter', {
8
- type: mobx_state_tree_1.types.literal('RowFullText'),
9
- stringToFind: '',
10
- })
11
- .views(self => ({
12
- // returns a function that tests the given row
13
- get predicate() {
14
- let s = self.stringToFind; // avoid closing over self
15
- if (!s) {
16
- return function alwaysTrue() {
17
- return true;
18
- };
19
- }
20
- s = s.toLowerCase();
21
- return function stringPredicate(_sheet, row) {
22
- const { cellsWithDerived } = row;
23
- for (const cell of cellsWithDerived) {
24
- // note: case insensitive
25
- if (cell.text.toLowerCase().includes(s)) {
26
- return true;
27
- }
28
- }
29
- return false;
30
- };
31
- },
32
- }))
33
- .actions(self => ({
34
- setString(s) {
35
- self.stringToFind = s;
36
- },
37
- clear() {
38
- self.stringToFind = '';
39
- },
40
- }));
41
- const model = mobx_state_tree_1.types
42
- .model('SpreadsheetFilterControls', {
43
- rowFullText: mobx_state_tree_1.types.optional(RowFullTextFilter, () => ({
44
- type: 'RowFullText',
45
- stringToFind: '',
46
- })),
47
- columnFilters: mobx_state_tree_1.types.array(ColumnDataTypes_1.AnyFilterModelType),
48
- })
49
- .views(self => ({
50
- get filters() {
51
- return [self.rowFullText, ...self.columnFilters].filter(f => !!f);
52
- },
53
- setRowFullTextFilter(stringToFind) {
54
- // @ts-expect-error
55
- self.rowFullText = {
56
- type: 'RowFullText',
57
- stringToFind,
58
- };
59
- },
60
- rowPassesFilters(sheet, row) {
61
- for (const filter of this.filters) {
62
- if (!filter.predicate(sheet, row)) {
63
- return false;
64
- }
65
- }
66
- return true;
67
- },
68
- }))
69
- .actions(self => ({
70
- addBlankColumnFilter(columnNumber) {
71
- const { dataType } = (0, mobx_state_tree_1.getParent)(self).spreadsheet.columns[columnNumber];
72
- self.columnFilters.push({
73
- type: dataType.type,
74
- columnNumber,
75
- });
76
- },
77
- removeColumnFilter(filter) {
78
- return self.columnFilters.remove(filter);
79
- },
80
- clearAllFilters() {
81
- self.columnFilters.clear();
82
- self.rowFullText.clear();
83
- },
84
- }));
85
- exports.default = model;
@@ -1,31 +0,0 @@
1
- import { Instance } from 'mobx-state-tree';
2
- declare const ImportWizard: import("mobx-state-tree").IModelType<{
3
- fileType: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
4
- hasColumnNameLine: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
5
- columnNameLineNumber: import("mobx-state-tree").IType<number | undefined, number, number>;
6
- selectedAssemblyName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
7
- }, {
8
- fileTypes: string[];
9
- fileSource: any;
10
- error: unknown;
11
- loading: boolean;
12
- } & {
13
- readonly isReadyToOpen: any;
14
- readonly canCancel: any;
15
- readonly fileName: any;
16
- readonly requiresUnzip: any;
17
- isValidRefName(refName: string, assemblyName?: string): boolean;
18
- } & {
19
- setSelectedAssemblyName(s: string): void;
20
- setFileSource(newSource: unknown): void;
21
- toggleHasColumnNameLine(): void;
22
- setColumnNameLineNumber(newnumber: number): void;
23
- setFileType(typeName: string): void;
24
- setError(error: unknown): void;
25
- setLoaded(): void;
26
- cancelButton(): void;
27
- import(assemblyName: string): Promise<void>;
28
- }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
29
- export type ImportWizardStateModel = typeof ImportWizard;
30
- export type ImportWizardModel = Instance<ImportWizardStateModel>;
31
- export default ImportWizard;