@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,199 +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
- const mobx_state_tree_1 = require("mobx-state-tree");
7
- const models_1 = require("@jbrowse/core/pluggableElementTypes/models");
8
- const configuration_1 = require("@jbrowse/core/configuration");
9
- const util_1 = require("@jbrowse/core/util");
10
- // icons
11
- const Done_1 = __importDefault(require("@mui/icons-material/Done"));
12
- const FolderOpen_1 = __importDefault(require("@mui/icons-material/FolderOpen"));
13
- const Spreadsheet_1 = __importDefault(require("./Spreadsheet"));
14
- const ImportWizard_1 = __importDefault(require("./ImportWizard"));
15
- const FilterControls_1 = __importDefault(require("./FilterControls"));
16
- const defaultRowMenuItems = [
17
- {
18
- label: 'Toggle select',
19
- icon: Done_1.default,
20
- onClick(_view, spreadsheet) {
21
- var _a;
22
- const rowNumber = (_a = spreadsheet.rowMenuPosition) === null || _a === void 0 ? void 0 : _a.rowNumber;
23
- if (rowNumber !== undefined) {
24
- spreadsheet.rowSet.rows[+rowNumber - 1].toggleSelect();
25
- }
26
- },
27
- },
28
- ];
29
- const minHeight = 40;
30
- const defaultHeight = 440;
31
- /**
32
- * #stateModel SpreadsheetView
33
- * #category view
34
- */
35
- function x() { } // eslint-disable-line @typescript-eslint/no-unused-vars
36
- const model = mobx_state_tree_1.types
37
- .model('SpreadsheetView', {
38
- /**
39
- * #property
40
- */
41
- type: mobx_state_tree_1.types.literal('SpreadsheetView'),
42
- /**
43
- * #property
44
- */
45
- offsetPx: 0,
46
- /**
47
- * #property
48
- */
49
- height: mobx_state_tree_1.types.optional(mobx_state_tree_1.types.refinement('SpreadsheetViewHeight', mobx_state_tree_1.types.number, n => n >= minHeight), defaultHeight),
50
- /**
51
- * #property
52
- */
53
- hideVerticalResizeHandle: false,
54
- /**
55
- * #property
56
- */
57
- hideFilterControls: false,
58
- /**
59
- * #property
60
- */
61
- filterControls: mobx_state_tree_1.types.optional(FilterControls_1.default, () => FilterControls_1.default.create({})),
62
- /**
63
- * #property
64
- * switch specifying whether we are showing the import wizard or the
65
- * spreadsheet in our viewing area
66
- */
67
- mode: mobx_state_tree_1.types.optional(mobx_state_tree_1.types.enumeration('SpreadsheetViewMode', ['import', 'display']), 'import'),
68
- /**
69
- * #property
70
- */
71
- importWizard: mobx_state_tree_1.types.optional(ImportWizard_1.default, () => ImportWizard_1.default.create()),
72
- /**
73
- * #property
74
- */
75
- spreadsheet: mobx_state_tree_1.types.maybe(Spreadsheet_1.default),
76
- })
77
- .volatile(() => ({
78
- width: 400,
79
- rowMenuItems: defaultRowMenuItems,
80
- }))
81
- .views(self => ({
82
- /**
83
- * #getter
84
- */
85
- get readyToDisplay() {
86
- return !!self.spreadsheet && self.spreadsheet.isLoaded;
87
- },
88
- /**
89
- * #getter
90
- */
91
- get hideRowSelection() {
92
- return !!(0, mobx_state_tree_1.getEnv)(self).hideRowSelection;
93
- },
94
- /**
95
- * #getter
96
- */
97
- get outputRows() {
98
- var _a;
99
- if ((_a = self.spreadsheet) === null || _a === void 0 ? void 0 : _a.rowSet.isLoaded) {
100
- const selected = self.spreadsheet.rowSet.selectedFilteredRows;
101
- if (selected.length) {
102
- return selected;
103
- }
104
- return self.spreadsheet.rowSet.sortedFilteredRows;
105
- }
106
- return undefined;
107
- },
108
- /**
109
- * #getter
110
- */
111
- get assembly() {
112
- var _a;
113
- const name = (_a = self.spreadsheet) === null || _a === void 0 ? void 0 : _a.assemblyName;
114
- if (name) {
115
- const assemblies = (0, util_1.getSession)(self).assemblies;
116
- return assemblies.find(asm => (0, configuration_1.readConfObject)(asm, 'name') === name);
117
- }
118
- return undefined;
119
- },
120
- }))
121
- .actions(self => ({
122
- /**
123
- * #action
124
- */
125
- setRowMenuItems(newItems) {
126
- self.rowMenuItems = newItems;
127
- },
128
- /**
129
- * #action
130
- */
131
- setWidth(newWidth) {
132
- self.width = newWidth;
133
- return self.width;
134
- },
135
- /**
136
- * #action
137
- */
138
- setHeight(newHeight) {
139
- self.height = Math.max(newHeight, minHeight);
140
- return self.height;
141
- },
142
- /**
143
- * #action
144
- */
145
- resizeHeight(distance) {
146
- const oldHeight = self.height;
147
- const newHeight = this.setHeight(self.height + distance);
148
- return newHeight - oldHeight;
149
- },
150
- /**
151
- * #action
152
- */
153
- resizeWidth(distance) {
154
- const oldWidth = self.width;
155
- const newWidth = this.setWidth(self.width + distance);
156
- return newWidth - oldWidth;
157
- },
158
- /**
159
- * #action
160
- * load a new spreadsheet and set our mode to display it
161
- */
162
- displaySpreadsheet(spreadsheet) {
163
- self.filterControls.clearAllFilters();
164
- self.spreadsheet = (0, mobx_state_tree_1.cast)(spreadsheet);
165
- self.mode = 'display';
166
- },
167
- /**
168
- * #action
169
- */
170
- setImportMode() {
171
- self.mode = 'import';
172
- },
173
- /**
174
- * #action
175
- */
176
- setDisplayMode() {
177
- if (self.readyToDisplay) {
178
- self.mode = 'display';
179
- }
180
- },
181
- }))
182
- .views(self => ({
183
- /**
184
- * #method
185
- */
186
- menuItems() {
187
- return [
188
- {
189
- label: 'Return to import form',
190
- onClick: () => {
191
- self.setImportMode();
192
- },
193
- icon: FolderOpen_1.default,
194
- },
195
- ];
196
- },
197
- }));
198
- const SpreadsheetView = mobx_state_tree_1.types.compose(models_1.BaseViewModel, model);
199
- exports.default = SpreadsheetView;
@@ -1,163 +0,0 @@
1
- declare const StaticRowModel: import("mobx-state-tree").IModelType<{
2
- isLoaded: import("mobx-state-tree").ISimpleType<true>;
3
- rows: import("mobx-state-tree").IArrayType<import("mobx-state-tree").IModelType<{
4
- id: import("mobx-state-tree").ISimpleType<string>;
5
- cells: import("mobx-state-tree").IArrayType<import("mobx-state-tree").IModelType<{
6
- text: import("mobx-state-tree").ISimpleType<string>;
7
- extendedData: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IType<any, any, any>>;
8
- }, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
9
- extendedData: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IType<any, any, any>>;
10
- isSelected: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
11
- }, {
12
- toggleSelect(): void;
13
- unSelect(): void;
14
- select(): void;
15
- setExtendedData(data: unknown): void;
16
- } & {
17
- readonly cellsWithDerived: any;
18
- }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
19
- }, {
20
- readonly count: number;
21
- readonly passingFiltersCount: number;
22
- readonly selectedCount: number;
23
- readonly selectedAndPassingFiltersCount: number;
24
- readonly sortedRows: ({
25
- id: string;
26
- cells: import("mobx-state-tree").IMSTArray<import("mobx-state-tree").IModelType<{
27
- text: import("mobx-state-tree").ISimpleType<string>;
28
- extendedData: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IType<any, any, any>>;
29
- }, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>> & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IArrayType<import("mobx-state-tree").IModelType<{
30
- text: import("mobx-state-tree").ISimpleType<string>;
31
- extendedData: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IType<any, any, any>>;
32
- }, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>>;
33
- extendedData: any;
34
- isSelected: boolean;
35
- } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
36
- toggleSelect(): void;
37
- unSelect(): void;
38
- select(): void;
39
- setExtendedData(data: unknown): void;
40
- } & {
41
- readonly cellsWithDerived: any;
42
- } & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
43
- id: import("mobx-state-tree").ISimpleType<string>;
44
- cells: import("mobx-state-tree").IArrayType<import("mobx-state-tree").IModelType<{
45
- text: import("mobx-state-tree").ISimpleType<string>;
46
- extendedData: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IType<any, any, any>>;
47
- }, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
48
- extendedData: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IType<any, any, any>>;
49
- isSelected: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
50
- }, {
51
- toggleSelect(): void;
52
- unSelect(): void;
53
- select(): void;
54
- setExtendedData(data: unknown): void;
55
- } & {
56
- readonly cellsWithDerived: any;
57
- }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>)[];
58
- readonly selectedRows: ({
59
- id: string;
60
- cells: import("mobx-state-tree").IMSTArray<import("mobx-state-tree").IModelType<{
61
- text: import("mobx-state-tree").ISimpleType<string>;
62
- extendedData: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IType<any, any, any>>;
63
- }, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>> & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IArrayType<import("mobx-state-tree").IModelType<{
64
- text: import("mobx-state-tree").ISimpleType<string>;
65
- extendedData: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IType<any, any, any>>;
66
- }, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>>;
67
- extendedData: any;
68
- isSelected: boolean;
69
- } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
70
- toggleSelect(): void;
71
- unSelect(): void;
72
- select(): void;
73
- setExtendedData(data: unknown): void;
74
- } & {
75
- readonly cellsWithDerived: any;
76
- } & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
77
- id: import("mobx-state-tree").ISimpleType<string>;
78
- cells: import("mobx-state-tree").IArrayType<import("mobx-state-tree").IModelType<{
79
- text: import("mobx-state-tree").ISimpleType<string>;
80
- extendedData: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IType<any, any, any>>;
81
- }, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
82
- extendedData: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IType<any, any, any>>;
83
- isSelected: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
84
- }, {
85
- toggleSelect(): void;
86
- unSelect(): void;
87
- select(): void;
88
- setExtendedData(data: unknown): void;
89
- } & {
90
- readonly cellsWithDerived: any;
91
- }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>)[];
92
- readonly selectedFilteredRows: ({
93
- id: string;
94
- cells: import("mobx-state-tree").IMSTArray<import("mobx-state-tree").IModelType<{
95
- text: import("mobx-state-tree").ISimpleType<string>;
96
- extendedData: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IType<any, any, any>>;
97
- }, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>> & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IArrayType<import("mobx-state-tree").IModelType<{
98
- text: import("mobx-state-tree").ISimpleType<string>;
99
- extendedData: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IType<any, any, any>>;
100
- }, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>>;
101
- extendedData: any;
102
- isSelected: boolean;
103
- } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
104
- toggleSelect(): void;
105
- unSelect(): void;
106
- select(): void;
107
- setExtendedData(data: unknown): void;
108
- } & {
109
- readonly cellsWithDerived: any;
110
- } & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
111
- id: import("mobx-state-tree").ISimpleType<string>;
112
- cells: import("mobx-state-tree").IArrayType<import("mobx-state-tree").IModelType<{
113
- text: import("mobx-state-tree").ISimpleType<string>;
114
- extendedData: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IType<any, any, any>>;
115
- }, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
116
- extendedData: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IType<any, any, any>>;
117
- isSelected: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
118
- }, {
119
- toggleSelect(): void;
120
- unSelect(): void;
121
- select(): void;
122
- setExtendedData(data: unknown): void;
123
- } & {
124
- readonly cellsWithDerived: any;
125
- }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>)[];
126
- readonly sortedFilteredRows: ({
127
- id: string;
128
- cells: import("mobx-state-tree").IMSTArray<import("mobx-state-tree").IModelType<{
129
- text: import("mobx-state-tree").ISimpleType<string>;
130
- extendedData: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IType<any, any, any>>;
131
- }, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>> & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IArrayType<import("mobx-state-tree").IModelType<{
132
- text: import("mobx-state-tree").ISimpleType<string>;
133
- extendedData: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IType<any, any, any>>;
134
- }, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>>;
135
- extendedData: any;
136
- isSelected: boolean;
137
- } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
138
- toggleSelect(): void;
139
- unSelect(): void;
140
- select(): void;
141
- setExtendedData(data: unknown): void;
142
- } & {
143
- readonly cellsWithDerived: any;
144
- } & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
145
- id: import("mobx-state-tree").ISimpleType<string>;
146
- cells: import("mobx-state-tree").IArrayType<import("mobx-state-tree").IModelType<{
147
- text: import("mobx-state-tree").ISimpleType<string>;
148
- extendedData: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IType<any, any, any>>;
149
- }, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
150
- extendedData: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IType<any, any, any>>;
151
- isSelected: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
152
- }, {
153
- toggleSelect(): void;
154
- unSelect(): void;
155
- select(): void;
156
- setExtendedData(data: unknown): void;
157
- } & {
158
- readonly cellsWithDerived: any;
159
- }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>)[];
160
- } & {
161
- unselectAll(): void;
162
- }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
163
- export default StaticRowModel;
@@ -1,56 +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
- const Row_1 = __importDefault(require("./Row"));
7
- const mobx_state_tree_1 = require("mobx-state-tree");
8
- const StaticRowModel = mobx_state_tree_1.types
9
- .model('StaticRowSet', {
10
- isLoaded: mobx_state_tree_1.types.literal(true),
11
- rows: mobx_state_tree_1.types.array(Row_1.default),
12
- })
13
- .views(self => ({
14
- get count() {
15
- return self.rows.length;
16
- },
17
- get passingFiltersCount() {
18
- return this.sortedFilteredRows.length;
19
- },
20
- get selectedCount() {
21
- return this.selectedRows.length;
22
- },
23
- get selectedAndPassingFiltersCount() {
24
- return this.selectedFilteredRows.length;
25
- },
26
- get sortedRows() {
27
- const parent = (0, mobx_state_tree_1.getParent)(self);
28
- return [...self.rows].sort(parent.rowSortingComparisonFunction);
29
- },
30
- get selectedRows() {
31
- return self.rows.filter(r => r.isSelected);
32
- },
33
- get selectedFilteredRows() {
34
- const sheet = (0, mobx_state_tree_1.getParent)(self);
35
- const view = (0, mobx_state_tree_1.getParent)(sheet);
36
- const { filterControls } = view;
37
- return this.selectedRows.filter(row => filterControls.rowPassesFilters(sheet, row));
38
- },
39
- // the set of all rows that pass the filters, sorted
40
- get sortedFilteredRows() {
41
- const sheet = (0, mobx_state_tree_1.getParent)(self);
42
- const view = (0, mobx_state_tree_1.getParent)(sheet);
43
- const { filterControls } = view;
44
- return self.rows
45
- .filter(row => filterControls.rowPassesFilters(sheet, row))
46
- .sort(sheet.rowSortingComparisonFunction);
47
- },
48
- }))
49
- .actions(self => ({
50
- unselectAll() {
51
- self.rows.forEach(row => {
52
- row.unSelect();
53
- });
54
- },
55
- }));
56
- exports.default = StaticRowModel;
@@ -1,9 +0,0 @@
1
- import { Instance } from 'mobx-state-tree';
2
- import type SpreadsheetStateModel from '../models/Spreadsheet';
3
- type SpreadsheetModel = Instance<typeof SpreadsheetStateModel>;
4
- declare const CellData: ({ cell, spreadsheetModel, columnNumber, }: {
5
- cell: any;
6
- spreadsheetModel: SpreadsheetModel;
7
- columnNumber: number;
8
- }) => any;
9
- export default CellData;
@@ -1,9 +0,0 @@
1
- import React from 'react';
2
- import { observer } from 'mobx-react';
3
- const CellData = observer(function ({ cell, spreadsheetModel, columnNumber, }) {
4
- const column = spreadsheetModel.columns[columnNumber];
5
- return column &&
6
- 'dataType' in column &&
7
- column.dataType.DataCellReactComponent ? (React.createElement(column.dataType.DataCellReactComponent, { cell: cell, dataType: column.dataType, columnNumber: columnNumber, spreadsheet: spreadsheetModel })) : (cell.text);
8
- });
9
- export default CellData;
@@ -1,3 +0,0 @@
1
- import React from 'react';
2
- declare const ColumnFilterControls: ({ viewModel, filterModel, columnNumber, height, }: any) => React.JSX.Element;
3
- export default ColumnFilterControls;
@@ -1,53 +0,0 @@
1
- import React from 'react';
2
- import { Grid, IconButton, Typography } from '@mui/material';
3
- import { observer } from 'mobx-react';
4
- import { getParent } from 'mobx-state-tree';
5
- import { makeStyles } from 'tss-react/mui';
6
- // icons
7
- import FilterIcon from '@mui/icons-material/FilterList';
8
- import CloseIcon from '@mui/icons-material/Close';
9
- const useStyles = makeStyles()(theme => ({
10
- columnName: {
11
- verticalAlign: 'middle',
12
- paddingRight: '0.3em',
13
- },
14
- columnFilter: {
15
- overflow: 'hidden',
16
- whiteSpace: 'nowrap',
17
- boxSizing: 'border-box',
18
- width: '100%',
19
- position: 'relative',
20
- },
21
- filterIcon: {
22
- position: 'relative',
23
- top: '12px',
24
- },
25
- filterIconBg: {
26
- background: theme.palette.tertiary.main,
27
- color: 'white',
28
- padding: theme.spacing(1.5),
29
- },
30
- }));
31
- function FilterOperations({ filterModel }) {
32
- if (filterModel) {
33
- return React.createElement(filterModel.ReactComponent, { filterModel: filterModel });
34
- }
35
- return null;
36
- }
37
- const ColumnFilterControls = observer(function ({ viewModel, filterModel, columnNumber, height, }) {
38
- const { classes } = useStyles();
39
- const columnDefinition = viewModel.spreadsheet.columns[columnNumber];
40
- if (!columnDefinition) {
41
- throw new Error('no column definition! filters are probably out of date');
42
- }
43
- return (React.createElement(Grid, { container: true, direction: "row", className: classes.columnFilter, style: { height } },
44
- React.createElement(Grid, { item: true, className: classes.filterIconBg },
45
- React.createElement(FilterIcon, { className: classes.filterIcon })),
46
- React.createElement(Grid, { item: true },
47
- React.createElement(IconButton, { onClick: () => getParent(filterModel, 2).removeColumnFilter(filterModel), title: "remove filter" },
48
- React.createElement(CloseIcon, null)),
49
- React.createElement(Typography, { className: classes.columnName, component: "span" }, columnDefinition.name),
50
- ' ',
51
- React.createElement(FilterOperations, { filterModel: filterModel }))));
52
- });
53
- export default ColumnFilterControls;
@@ -1,16 +0,0 @@
1
- import React from 'react';
2
- import { SpreadsheetModel } from '../models/Spreadsheet';
3
- import { SpreadsheetViewModel } from '../models/SpreadsheetView';
4
- declare const ColumnMenu: ({ viewModel, spreadsheetModel, currentColumnMenu, setColumnMenu, }: {
5
- spreadsheetModel: SpreadsheetModel;
6
- viewModel: SpreadsheetViewModel;
7
- currentColumnMenu?: {
8
- colNumber: number;
9
- anchorEl: HTMLElement;
10
- };
11
- setColumnMenu: (arg?: {
12
- anchorEl: HTMLElement;
13
- colNumber: number;
14
- }) => void;
15
- }) => React.JSX.Element;
16
- export default ColumnMenu;
@@ -1,135 +0,0 @@
1
- import React from 'react';
2
- import { observer } from 'mobx-react';
3
- import { iterMap } from '@jbrowse/core/util';
4
- import { Menu } from '@jbrowse/core/ui';
5
- // icons
6
- import CheckIcon from '@mui/icons-material/Check';
7
- import FilterListIcon from '@mui/icons-material/FilterList';
8
- import PermDataSettingIcon from '@mui/icons-material/PermDataSetting';
9
- import SortIcon from '@mui/icons-material/Sort';
10
- const ColumnMenu = observer(function ({ viewModel, spreadsheetModel, currentColumnMenu, setColumnMenu, }) {
11
- const columnMenuClose = () => {
12
- setColumnMenu(undefined);
13
- };
14
- const columnNumber = (currentColumnMenu === null || currentColumnMenu === void 0 ? void 0 : currentColumnMenu.colNumber) || 0;
15
- const sortMenuClick = (descending) => {
16
- spreadsheetModel.setSortColumns([
17
- {
18
- columnNumber,
19
- descending,
20
- },
21
- ]);
22
- };
23
- const { dataTypeChoices } = spreadsheetModel;
24
- const dataTypeTopLevelMenu = new Map();
25
- dataTypeChoices.forEach(dataTypeRecord => {
26
- const { displayName, categoryName } = dataTypeRecord;
27
- if (categoryName) {
28
- let entry = dataTypeTopLevelMenu.get(categoryName);
29
- if (!entry) {
30
- entry = {
31
- isCategory: true,
32
- subMenuItems: [],
33
- };
34
- dataTypeTopLevelMenu.set(categoryName, entry);
35
- }
36
- entry.subMenuItems.push(dataTypeRecord);
37
- }
38
- else {
39
- dataTypeTopLevelMenu.set(displayName, dataTypeRecord);
40
- }
41
- });
42
- const { columns, sortColumns } = spreadsheetModel;
43
- const dataType = currentColumnMenu && columns[columnNumber].dataType;
44
- const dataTypeName = (dataType === null || dataType === void 0 ? void 0 : dataType.type) || '';
45
- const dataTypeDisplayName = (currentColumnMenu && columns[columnNumber].dataType.displayName) || '';
46
- const isSortingAscending = !!currentColumnMenu &&
47
- sortColumns.some(c => c.columnNumber === currentColumnMenu.colNumber && !c.descending);
48
- const isSortingDescending = !!currentColumnMenu &&
49
- sortColumns.some(c => c.columnNumber === currentColumnMenu.colNumber && c.descending);
50
- const menuItems = [
51
- // top-level column menu
52
- {
53
- label: 'Sort ascending',
54
- icon: SortIcon,
55
- type: 'radio',
56
- checked: isSortingAscending,
57
- onClick: () => {
58
- sortMenuClick(false);
59
- },
60
- },
61
- {
62
- label: 'Sort descending',
63
- icon: SortIcon,
64
- type: 'radio',
65
- checked: isSortingDescending,
66
- onClick: () => {
67
- sortMenuClick(true);
68
- },
69
- },
70
- {
71
- label: 'No sort',
72
- icon: SortIcon,
73
- type: 'radio',
74
- checked: !isSortingDescending && !isSortingAscending,
75
- onClick: () => {
76
- spreadsheetModel.setSortColumns([]);
77
- },
78
- },
79
- // data type menu
80
- {
81
- label: `Type: ${dataTypeDisplayName}`,
82
- icon: PermDataSettingIcon,
83
- subMenu: iterMap(dataTypeTopLevelMenu.entries(), ([displayName, record]) => {
84
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
85
- if ('typeName' in record && record.typeName) {
86
- const { typeName } = record;
87
- return {
88
- label: displayName || typeName,
89
- icon: dataTypeName === typeName ? CheckIcon : undefined,
90
- onClick: () => {
91
- spreadsheetModel.setColumnType(columnNumber, typeName);
92
- },
93
- };
94
- }
95
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
96
- if ('subMenuItems' in record && record.subMenuItems) {
97
- const { subMenuItems } = record;
98
- return {
99
- label: displayName,
100
- icon: subMenuItems.some(i => i.typeName === dataTypeName)
101
- ? CheckIcon
102
- : undefined,
103
- subMenu: subMenuItems.map(({ typeName, displayName }) => ({
104
- label: displayName,
105
- icon: typeName === dataTypeName ? CheckIcon : undefined,
106
- onClick: () => {
107
- spreadsheetModel.setColumnType(columnNumber, typeName);
108
- },
109
- })),
110
- };
111
- }
112
- return null;
113
- }).filter(Boolean),
114
- },
115
- ];
116
- // don't display the filter item if this data type doesn't have filtering
117
- // implemented
118
- if (dataType === null || dataType === void 0 ? void 0 : dataType.hasFilter) {
119
- menuItems.push({
120
- label: 'Create filter',
121
- icon: FilterListIcon,
122
- onClick: () => {
123
- viewModel.filterControls.addBlankColumnFilter(columnNumber);
124
- },
125
- });
126
- }
127
- return (React.createElement(Menu, { anchorEl: currentColumnMenu === null || currentColumnMenu === void 0 ? void 0 : currentColumnMenu.anchorEl, open: Boolean(currentColumnMenu), onMenuItemClick: (_event, callback) => {
128
- callback();
129
- columnMenuClose();
130
- }, onClose: columnMenuClose, menuItems: menuItems, anchorOrigin: {
131
- vertical: 'bottom',
132
- horizontal: 'right',
133
- } }));
134
- });
135
- export default ColumnMenu;
@@ -1,12 +0,0 @@
1
- import React from 'react';
2
- import { Instance } from 'mobx-state-tree';
3
- import type SpreadsheetStateModel from '../models/Spreadsheet';
4
- import type RowStateModel from '../models/Row';
5
- type SpreadsheetModel = Instance<typeof SpreadsheetStateModel>;
6
- type RowModel = Instance<typeof RowStateModel>;
7
- declare const DataRow: ({ rowModel, rowNumber, spreadsheetModel, }: {
8
- rowModel: RowModel;
9
- rowNumber: string;
10
- spreadsheetModel: SpreadsheetModel;
11
- }) => React.JSX.Element;
12
- export default DataRow;