@jbrowse/plugin-spreadsheet-view 2.16.1 → 2.18.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.
- package/dist/LaunchSpreadsheetView/index.d.ts +1 -1
- package/dist/LaunchSpreadsheetView/index.js +1 -3
- package/dist/SpreadsheetView/ImportWizard.d.ts +51 -0
- package/dist/SpreadsheetView/ImportWizard.js +240 -0
- package/dist/SpreadsheetView/SpreadsheetModel.d.ts +79 -0
- package/dist/SpreadsheetView/SpreadsheetModel.js +133 -0
- package/dist/SpreadsheetView/SpreadsheetViewModel.d.ts +299 -0
- package/dist/SpreadsheetView/SpreadsheetViewModel.js +94 -0
- package/dist/SpreadsheetView/components/BreakendMultiLevelOptionDialog.d.ts +1 -0
- package/dist/SpreadsheetView/components/BreakendMultiLevelOptionDialog.js +5 -0
- package/dist/SpreadsheetView/components/BreakendSingleLevelOptionDialog.d.ts +1 -0
- package/dist/SpreadsheetView/components/BreakendSingleLevelOptionDialog.js +5 -0
- package/dist/SpreadsheetView/components/FeatureMenu.d.ts +8 -0
- package/dist/SpreadsheetView/components/FeatureMenu.js +95 -0
- package/dist/SpreadsheetView/components/ImportWizard.d.ts +2 -2
- package/dist/SpreadsheetView/components/ImportWizard.js +40 -43
- package/dist/SpreadsheetView/components/LocationCell.d.ts +8 -0
- package/dist/SpreadsheetView/components/LocationCell.js +31 -0
- package/dist/SpreadsheetView/components/NumberEditor.d.ts +1 -1
- package/dist/SpreadsheetView/components/NumberEditor.js +1 -3
- package/dist/SpreadsheetView/components/SpreadsheetDataGrid.d.ts +6 -0
- package/dist/SpreadsheetView/components/SpreadsheetDataGrid.js +27 -0
- package/dist/SpreadsheetView/components/SpreadsheetView.d.ts +3 -3
- package/dist/SpreadsheetView/components/SpreadsheetView.js +23 -44
- package/dist/SpreadsheetView/components/TrackSelector.d.ts +7 -0
- package/dist/SpreadsheetView/components/TrackSelector.js +49 -0
- package/dist/SpreadsheetView/importAdapters/BedImport.d.ts +26 -17
- package/dist/SpreadsheetView/importAdapters/BedImport.js +53 -139
- package/dist/SpreadsheetView/importAdapters/BedpeImport.d.ts +36 -0
- package/dist/SpreadsheetView/importAdapters/BedpeImport.js +79 -0
- package/dist/SpreadsheetView/importAdapters/STARFusionImport.d.ts +25 -9
- package/dist/SpreadsheetView/importAdapters/STARFusionImport.js +27 -62
- package/dist/SpreadsheetView/importAdapters/VcfImport.d.ts +19 -12
- package/dist/SpreadsheetView/importAdapters/VcfImport.js +53 -98
- package/dist/SpreadsheetView/importAdapters/isNumber.d.ts +1 -0
- package/dist/SpreadsheetView/importAdapters/isNumber.js +14 -0
- package/dist/SpreadsheetView/importAdapters/util.d.ts +2 -0
- package/dist/SpreadsheetView/importAdapters/util.js +22 -0
- package/dist/SpreadsheetView/index.d.ts +2 -2
- package/dist/SpreadsheetView/index.js +2 -2
- package/dist/SpreadsheetView/util.d.ts +7 -0
- package/dist/SpreadsheetView/util.js +13 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -3
- package/esm/LaunchSpreadsheetView/index.d.ts +1 -1
- package/esm/LaunchSpreadsheetView/index.js +1 -3
- package/esm/SpreadsheetView/ImportWizard.d.ts +51 -0
- package/esm/SpreadsheetView/ImportWizard.js +214 -0
- package/esm/SpreadsheetView/SpreadsheetModel.d.ts +79 -0
- package/esm/SpreadsheetView/SpreadsheetModel.js +127 -0
- package/esm/SpreadsheetView/SpreadsheetViewModel.d.ts +299 -0
- package/esm/SpreadsheetView/SpreadsheetViewModel.js +88 -0
- package/esm/SpreadsheetView/components/BreakendMultiLevelOptionDialog.d.ts +1 -0
- package/esm/SpreadsheetView/components/BreakendMultiLevelOptionDialog.js +1 -0
- package/esm/SpreadsheetView/components/BreakendSingleLevelOptionDialog.d.ts +1 -0
- package/esm/SpreadsheetView/components/BreakendSingleLevelOptionDialog.js +1 -0
- package/esm/SpreadsheetView/components/FeatureMenu.d.ts +8 -0
- package/esm/SpreadsheetView/components/FeatureMenu.js +66 -0
- package/esm/SpreadsheetView/components/ImportWizard.d.ts +2 -2
- package/esm/SpreadsheetView/components/ImportWizard.js +41 -44
- package/esm/SpreadsheetView/components/LocationCell.d.ts +8 -0
- package/esm/SpreadsheetView/components/LocationCell.js +25 -0
- package/esm/SpreadsheetView/components/NumberEditor.d.ts +1 -1
- package/esm/SpreadsheetView/components/NumberEditor.js +2 -4
- package/esm/SpreadsheetView/components/SpreadsheetDataGrid.d.ts +6 -0
- package/esm/SpreadsheetView/components/SpreadsheetDataGrid.js +22 -0
- package/esm/SpreadsheetView/components/SpreadsheetView.d.ts +3 -3
- package/esm/SpreadsheetView/components/SpreadsheetView.js +24 -45
- package/esm/SpreadsheetView/components/TrackSelector.d.ts +7 -0
- package/esm/SpreadsheetView/components/TrackSelector.js +24 -0
- package/esm/SpreadsheetView/importAdapters/BedImport.d.ts +26 -17
- package/esm/SpreadsheetView/importAdapters/BedImport.js +53 -137
- package/esm/SpreadsheetView/importAdapters/BedpeImport.d.ts +36 -0
- package/esm/SpreadsheetView/importAdapters/BedpeImport.js +76 -0
- package/esm/SpreadsheetView/importAdapters/STARFusionImport.d.ts +25 -9
- package/esm/SpreadsheetView/importAdapters/STARFusionImport.js +27 -62
- package/esm/SpreadsheetView/importAdapters/VcfImport.d.ts +19 -12
- package/esm/SpreadsheetView/importAdapters/VcfImport.js +53 -97
- package/esm/SpreadsheetView/importAdapters/isNumber.d.ts +1 -0
- package/esm/SpreadsheetView/importAdapters/isNumber.js +11 -0
- package/esm/SpreadsheetView/importAdapters/util.d.ts +2 -0
- package/esm/SpreadsheetView/importAdapters/util.js +18 -0
- package/esm/SpreadsheetView/index.d.ts +2 -2
- package/esm/SpreadsheetView/index.js +2 -2
- package/esm/SpreadsheetView/util.d.ts +7 -0
- package/esm/SpreadsheetView/util.js +10 -0
- package/esm/index.d.ts +1 -1
- package/esm/index.js +1 -3
- package/package.json +6 -6
- package/dist/SpreadsheetView/components/CellData.d.ts +0 -9
- package/dist/SpreadsheetView/components/CellData.js +0 -14
- package/dist/SpreadsheetView/components/ColumnFilterControls.d.ts +0 -3
- package/dist/SpreadsheetView/components/ColumnFilterControls.js +0 -58
- package/dist/SpreadsheetView/components/ColumnMenu.d.ts +0 -16
- package/dist/SpreadsheetView/components/ColumnMenu.js +0 -140
- package/dist/SpreadsheetView/components/DataRow.d.ts +0 -12
- package/dist/SpreadsheetView/components/DataRow.js +0 -81
- package/dist/SpreadsheetView/components/DataTable.d.ts +0 -10
- package/dist/SpreadsheetView/components/DataTable.js +0 -42
- package/dist/SpreadsheetView/components/DataTableHeader.d.ts +0 -6
- package/dist/SpreadsheetView/components/DataTableHeader.js +0 -104
- package/dist/SpreadsheetView/components/GlobalFilterControls.d.ts +0 -5
- package/dist/SpreadsheetView/components/GlobalFilterControls.js +0 -66
- package/dist/SpreadsheetView/components/RowCountMessage.d.ts +0 -6
- package/dist/SpreadsheetView/components/RowCountMessage.js +0 -33
- package/dist/SpreadsheetView/components/RowMenu.d.ts +0 -9
- package/dist/SpreadsheetView/components/RowMenu.js +0 -39
- package/dist/SpreadsheetView/components/SortIndicator.d.ts +0 -6
- package/dist/SpreadsheetView/components/SortIndicator.js +0 -27
- package/dist/SpreadsheetView/components/Spreadsheet.d.ts +0 -11
- package/dist/SpreadsheetView/components/Spreadsheet.js +0 -25
- package/dist/SpreadsheetView/components/StatusBar.d.ts +0 -11
- package/dist/SpreadsheetView/components/StatusBar.js +0 -44
- package/dist/SpreadsheetView/importAdapters/ImportUtils.d.ts +0 -42
- package/dist/SpreadsheetView/importAdapters/ImportUtils.js +0 -123
- package/dist/SpreadsheetView/models/ColumnDataTypes/LocEnd.d.ts +0 -12
- package/dist/SpreadsheetView/models/ColumnDataTypes/LocEnd.js +0 -20
- package/dist/SpreadsheetView/models/ColumnDataTypes/LocRef.d.ts +0 -12
- package/dist/SpreadsheetView/models/ColumnDataTypes/LocRef.js +0 -20
- package/dist/SpreadsheetView/models/ColumnDataTypes/LocStart.d.ts +0 -12
- package/dist/SpreadsheetView/models/ColumnDataTypes/LocStart.js +0 -20
- package/dist/SpreadsheetView/models/ColumnDataTypes/LocString.d.ts +0 -13
- package/dist/SpreadsheetView/models/ColumnDataTypes/LocString.js +0 -181
- package/dist/SpreadsheetView/models/ColumnDataTypes/MakeSpreadsheetColumnType.d.ts +0 -19
- package/dist/SpreadsheetView/models/ColumnDataTypes/MakeSpreadsheetColumnType.js +0 -23
- package/dist/SpreadsheetView/models/ColumnDataTypes/Number.d.ts +0 -30
- package/dist/SpreadsheetView/models/ColumnDataTypes/Number.js +0 -126
- package/dist/SpreadsheetView/models/ColumnDataTypes/Text.d.ts +0 -28
- package/dist/SpreadsheetView/models/ColumnDataTypes/Text.js +0 -127
- package/dist/SpreadsheetView/models/ColumnDataTypes/index.d.ts +0 -71
- package/dist/SpreadsheetView/models/ColumnDataTypes/index.js +0 -37
- package/dist/SpreadsheetView/models/FilterControls.d.ts +0 -26
- package/dist/SpreadsheetView/models/FilterControls.js +0 -85
- package/dist/SpreadsheetView/models/ImportWizard.d.ts +0 -31
- package/dist/SpreadsheetView/models/ImportWizard.js +0 -186
- package/dist/SpreadsheetView/models/Row.d.ts +0 -17
- package/dist/SpreadsheetView/models/Row.js +0 -43
- package/dist/SpreadsheetView/models/Spreadsheet.d.ts +0 -260
- package/dist/SpreadsheetView/models/Spreadsheet.js +0 -174
- package/dist/SpreadsheetView/models/SpreadsheetView.d.ts +0 -482
- package/dist/SpreadsheetView/models/SpreadsheetView.js +0 -199
- package/dist/SpreadsheetView/models/StaticRowSet.d.ts +0 -163
- package/dist/SpreadsheetView/models/StaticRowSet.js +0 -56
- package/esm/SpreadsheetView/components/CellData.d.ts +0 -9
- package/esm/SpreadsheetView/components/CellData.js +0 -9
- package/esm/SpreadsheetView/components/ColumnFilterControls.d.ts +0 -3
- package/esm/SpreadsheetView/components/ColumnFilterControls.js +0 -53
- package/esm/SpreadsheetView/components/ColumnMenu.d.ts +0 -16
- package/esm/SpreadsheetView/components/ColumnMenu.js +0 -135
- package/esm/SpreadsheetView/components/DataRow.d.ts +0 -12
- package/esm/SpreadsheetView/components/DataRow.js +0 -76
- package/esm/SpreadsheetView/components/DataTable.d.ts +0 -10
- package/esm/SpreadsheetView/components/DataTable.js +0 -37
- package/esm/SpreadsheetView/components/DataTableHeader.d.ts +0 -6
- package/esm/SpreadsheetView/components/DataTableHeader.js +0 -76
- package/esm/SpreadsheetView/components/GlobalFilterControls.d.ts +0 -5
- package/esm/SpreadsheetView/components/GlobalFilterControls.js +0 -38
- package/esm/SpreadsheetView/components/RowCountMessage.d.ts +0 -6
- package/esm/SpreadsheetView/components/RowCountMessage.js +0 -28
- package/esm/SpreadsheetView/components/RowMenu.d.ts +0 -9
- package/esm/SpreadsheetView/components/RowMenu.js +0 -34
- package/esm/SpreadsheetView/components/SortIndicator.d.ts +0 -6
- package/esm/SpreadsheetView/components/SortIndicator.js +0 -21
- package/esm/SpreadsheetView/components/Spreadsheet.d.ts +0 -11
- package/esm/SpreadsheetView/components/Spreadsheet.js +0 -20
- package/esm/SpreadsheetView/components/StatusBar.d.ts +0 -11
- package/esm/SpreadsheetView/components/StatusBar.js +0 -39
- package/esm/SpreadsheetView/importAdapters/ImportUtils.d.ts +0 -42
- package/esm/SpreadsheetView/importAdapters/ImportUtils.js +0 -95
- package/esm/SpreadsheetView/models/ColumnDataTypes/LocEnd.d.ts +0 -12
- package/esm/SpreadsheetView/models/ColumnDataTypes/LocEnd.js +0 -15
- package/esm/SpreadsheetView/models/ColumnDataTypes/LocRef.d.ts +0 -12
- package/esm/SpreadsheetView/models/ColumnDataTypes/LocRef.js +0 -15
- package/esm/SpreadsheetView/models/ColumnDataTypes/LocStart.d.ts +0 -12
- package/esm/SpreadsheetView/models/ColumnDataTypes/LocStart.js +0 -15
- package/esm/SpreadsheetView/models/ColumnDataTypes/LocString.d.ts +0 -13
- package/esm/SpreadsheetView/models/ColumnDataTypes/LocString.js +0 -176
- package/esm/SpreadsheetView/models/ColumnDataTypes/MakeSpreadsheetColumnType.d.ts +0 -19
- package/esm/SpreadsheetView/models/ColumnDataTypes/MakeSpreadsheetColumnType.js +0 -20
- package/esm/SpreadsheetView/models/ColumnDataTypes/Number.d.ts +0 -30
- package/esm/SpreadsheetView/models/ColumnDataTypes/Number.js +0 -119
- package/esm/SpreadsheetView/models/ColumnDataTypes/Text.d.ts +0 -28
- package/esm/SpreadsheetView/models/ColumnDataTypes/Text.js +0 -120
- package/esm/SpreadsheetView/models/ColumnDataTypes/index.d.ts +0 -71
- package/esm/SpreadsheetView/models/ColumnDataTypes/index.js +0 -29
- package/esm/SpreadsheetView/models/FilterControls.d.ts +0 -26
- package/esm/SpreadsheetView/models/FilterControls.js +0 -83
- package/esm/SpreadsheetView/models/ImportWizard.d.ts +0 -31
- package/esm/SpreadsheetView/models/ImportWizard.js +0 -161
- package/esm/SpreadsheetView/models/Row.d.ts +0 -17
- package/esm/SpreadsheetView/models/Row.js +0 -41
- package/esm/SpreadsheetView/models/Spreadsheet.d.ts +0 -260
- package/esm/SpreadsheetView/models/Spreadsheet.js +0 -169
- package/esm/SpreadsheetView/models/SpreadsheetView.d.ts +0 -482
- package/esm/SpreadsheetView/models/SpreadsheetView.js +0 -194
- package/esm/SpreadsheetView/models/StaticRowSet.d.ts +0 -163
- package/esm/SpreadsheetView/models/StaticRowSet.js +0 -51
|
@@ -1,44 +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 react_1 = __importDefault(require("react"));
|
|
7
|
-
const material_1 = require("@mui/material");
|
|
8
|
-
const mui_1 = require("tss-react/mui");
|
|
9
|
-
// locals
|
|
10
|
-
const RowCountMessage_1 = __importDefault(require("./RowCountMessage"));
|
|
11
|
-
const mobx_react_1 = require("mobx-react");
|
|
12
|
-
const statusBarHeight = 40;
|
|
13
|
-
const useStyles = (0, mui_1.makeStyles)()(theme => ({
|
|
14
|
-
statusBar: {
|
|
15
|
-
height: statusBarHeight,
|
|
16
|
-
boxSizing: 'border-box',
|
|
17
|
-
borderTop: '1px outset #b1b1b1',
|
|
18
|
-
paddingLeft: theme.spacing(1),
|
|
19
|
-
},
|
|
20
|
-
verticallyCenter: {
|
|
21
|
-
display: 'flex',
|
|
22
|
-
justifyContent: 'center',
|
|
23
|
-
flexDirection: 'column',
|
|
24
|
-
},
|
|
25
|
-
spacer: {
|
|
26
|
-
flexGrow: 1,
|
|
27
|
-
},
|
|
28
|
-
}));
|
|
29
|
-
const StatusBar = (0, mobx_react_1.observer)(function StatusBar({ page, rowsPerPage, setPage, setRowsPerPage, spreadsheet, mode, }) {
|
|
30
|
-
const { classes } = useStyles();
|
|
31
|
-
return (react_1.default.createElement("div", { className: classes.statusBar, style: { display: mode === 'display' ? undefined : 'none' } },
|
|
32
|
-
react_1.default.createElement(material_1.FormGroup, { row: true },
|
|
33
|
-
react_1.default.createElement("div", { className: classes.verticallyCenter },
|
|
34
|
-
react_1.default.createElement(RowCountMessage_1.default, { spreadsheet: spreadsheet })),
|
|
35
|
-
react_1.default.createElement("div", { className: classes.spacer }),
|
|
36
|
-
react_1.default.createElement(material_1.TablePagination, { rowsPerPageOptions: [10, 25, 100, 1000], count: spreadsheet.rowSet.count, component: "div", rowsPerPage: rowsPerPage, page: page, onPageChange: (_, newPage) => {
|
|
37
|
-
setPage(newPage);
|
|
38
|
-
}, onRowsPerPageChange: event => {
|
|
39
|
-
setRowsPerPage(+event.target.value);
|
|
40
|
-
setPage(0);
|
|
41
|
-
} }),
|
|
42
|
-
react_1.default.createElement("div", { className: classes.spacer }))));
|
|
43
|
-
});
|
|
44
|
-
exports.default = StatusBar;
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import type { Buffer } from 'buffer';
|
|
2
|
-
export declare function bufferToString(buffer: Buffer): string;
|
|
3
|
-
export interface Row {
|
|
4
|
-
id: string;
|
|
5
|
-
extendedData?: any;
|
|
6
|
-
cells: {
|
|
7
|
-
text: string;
|
|
8
|
-
extendedData?: any;
|
|
9
|
-
}[];
|
|
10
|
-
}
|
|
11
|
-
export interface RowSet {
|
|
12
|
-
isLoaded: boolean;
|
|
13
|
-
rows: Row[];
|
|
14
|
-
}
|
|
15
|
-
export interface ParseOptions {
|
|
16
|
-
hasColumnNameLine?: boolean;
|
|
17
|
-
columnNameLineNumber?: number;
|
|
18
|
-
selectedAssemblyName?: string;
|
|
19
|
-
isValidRefName?: (refName: string, assemblyName?: string) => boolean;
|
|
20
|
-
}
|
|
21
|
-
export interface Column {
|
|
22
|
-
name: string;
|
|
23
|
-
dataType: {
|
|
24
|
-
type: string;
|
|
25
|
-
};
|
|
26
|
-
isDerived?: boolean;
|
|
27
|
-
derivationFunctionText?: string;
|
|
28
|
-
}
|
|
29
|
-
export declare function parseCsvBuffer(buffer: Buffer, options?: ParseOptions): Promise<{
|
|
30
|
-
rowSet: RowSet;
|
|
31
|
-
columnDisplayOrder: number[];
|
|
32
|
-
hasColumnNames: boolean;
|
|
33
|
-
columns: Column[];
|
|
34
|
-
assemblyName: string | undefined;
|
|
35
|
-
}>;
|
|
36
|
-
export declare function parseTsvBuffer(buffer: Buffer, options?: ParseOptions): Promise<{
|
|
37
|
-
rowSet: RowSet;
|
|
38
|
-
columnDisplayOrder: number[];
|
|
39
|
-
hasColumnNames: boolean;
|
|
40
|
-
columns: Column[];
|
|
41
|
-
assemblyName: string | undefined;
|
|
42
|
-
}>;
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.bufferToString = bufferToString;
|
|
27
|
-
exports.parseCsvBuffer = parseCsvBuffer;
|
|
28
|
-
exports.parseTsvBuffer = parseTsvBuffer;
|
|
29
|
-
const util_1 = require("@jbrowse/core/util");
|
|
30
|
-
function bufferToString(buffer) {
|
|
31
|
-
return new TextDecoder('utf8', { fatal: true }).decode(buffer);
|
|
32
|
-
}
|
|
33
|
-
async function parseWith(buffer, options = {}) {
|
|
34
|
-
const csv = await Promise.resolve().then(() => __importStar(require('csvtojson'))).then(module => module.default);
|
|
35
|
-
return csv({ noheader: true, output: 'csv', ...options }).fromString(bufferToString(buffer));
|
|
36
|
-
}
|
|
37
|
-
function guessColumnType(rowSet, columnNumber, isValidRefName) {
|
|
38
|
-
const text = rowSet.rows[0].cells[columnNumber].text || '';
|
|
39
|
-
let guessedType = 'Text';
|
|
40
|
-
let parsedLoc;
|
|
41
|
-
try {
|
|
42
|
-
parsedLoc = (0, util_1.parseLocString)(text, isValidRefName);
|
|
43
|
-
}
|
|
44
|
-
catch (error) {
|
|
45
|
-
//
|
|
46
|
-
}
|
|
47
|
-
if ((parsedLoc === null || parsedLoc === void 0 ? void 0 : parsedLoc.refName) && typeof parsedLoc.start === 'number') {
|
|
48
|
-
guessedType = 'LocString';
|
|
49
|
-
}
|
|
50
|
-
else if (/^\d+(\.\d+)?$/.test(text)) {
|
|
51
|
-
guessedType = 'Number';
|
|
52
|
-
}
|
|
53
|
-
// MAYBE TODO: iterate over the rest of the rows to confirm
|
|
54
|
-
// the type for all the rows
|
|
55
|
-
return guessedType;
|
|
56
|
-
}
|
|
57
|
-
function dataToSpreadsheetSnapshot(rows, options = {}) {
|
|
58
|
-
const { hasColumnNameLine = false, columnNameLineNumber = 1, isValidRefName = () => false, selectedAssemblyName, } = options;
|
|
59
|
-
// rows is an array of row objects and columnNames
|
|
60
|
-
// is an array of column names (in import order)
|
|
61
|
-
let maxCols = 0;
|
|
62
|
-
const rowSet = {
|
|
63
|
-
isLoaded: true,
|
|
64
|
-
rows: rows.map((row, rowNumber) => {
|
|
65
|
-
const id = rowNumber + (hasColumnNameLine ? 0 : 1);
|
|
66
|
-
if (row.length > maxCols) {
|
|
67
|
-
maxCols = row.length;
|
|
68
|
-
}
|
|
69
|
-
return {
|
|
70
|
-
id: String(id),
|
|
71
|
-
cells: row.map((text, columnNumber) => {
|
|
72
|
-
return { columnNumber, text };
|
|
73
|
-
}),
|
|
74
|
-
};
|
|
75
|
-
}),
|
|
76
|
-
};
|
|
77
|
-
// process the column names row if present
|
|
78
|
-
const columnNames = {};
|
|
79
|
-
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
80
|
-
if (hasColumnNameLine && columnNameLineNumber !== undefined) {
|
|
81
|
-
const [colNamesRow] = rowSet.rows.splice(columnNameLineNumber - 1, 1);
|
|
82
|
-
if (colNamesRow) {
|
|
83
|
-
colNamesRow.cells.forEach((cell, columnNumber) => {
|
|
84
|
-
columnNames[columnNumber] = cell.text || '';
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
// make our column definitions
|
|
89
|
-
const columns = [];
|
|
90
|
-
const columnDisplayOrder = [];
|
|
91
|
-
for (let columnNumber = 0; columnNumber < maxCols; columnNumber += 1) {
|
|
92
|
-
columnDisplayOrder.push(columnNumber);
|
|
93
|
-
const guessedType = guessColumnType(rowSet, columnNumber, isValidRefName);
|
|
94
|
-
// store extendeddata for LocString column
|
|
95
|
-
if (guessedType === 'LocString') {
|
|
96
|
-
for (const row of rowSet.rows) {
|
|
97
|
-
const cell = row.cells[columnNumber];
|
|
98
|
-
cell.extendedData = (0, util_1.parseLocString)(cell.text, isValidRefName);
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
columns[columnNumber] = {
|
|
102
|
-
name: columnNames[columnNumber],
|
|
103
|
-
dataType: {
|
|
104
|
-
type: guessedType,
|
|
105
|
-
},
|
|
106
|
-
};
|
|
107
|
-
}
|
|
108
|
-
return {
|
|
109
|
-
rowSet,
|
|
110
|
-
columnDisplayOrder,
|
|
111
|
-
hasColumnNames: !!hasColumnNameLine,
|
|
112
|
-
columns,
|
|
113
|
-
assemblyName: selectedAssemblyName,
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
async function parseCsvBuffer(buffer, options) {
|
|
117
|
-
const rows = await parseWith(buffer);
|
|
118
|
-
return dataToSpreadsheetSnapshot(rows, options);
|
|
119
|
-
}
|
|
120
|
-
async function parseTsvBuffer(buffer, options) {
|
|
121
|
-
const rows = await parseWith(buffer, { delimiter: '\t' });
|
|
122
|
-
return dataToSpreadsheetSnapshot(rows, options);
|
|
123
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
declare const LocEnd: import("mobx-state-tree").IModelType<{
|
|
2
|
-
type: import("mobx-state-tree").ISimpleType<string>;
|
|
3
|
-
}, {
|
|
4
|
-
DataCellReactComponent: import("react").FC<any> | null;
|
|
5
|
-
FilterModelType: any;
|
|
6
|
-
displayName: string;
|
|
7
|
-
categoryName: string | undefined;
|
|
8
|
-
} & {
|
|
9
|
-
compare: any;
|
|
10
|
-
readonly hasFilter: boolean;
|
|
11
|
-
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
|
|
12
|
-
export default LocEnd;
|
|
@@ -1,20 +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 MakeSpreadsheetColumnType_1 = __importDefault(require("./MakeSpreadsheetColumnType"));
|
|
7
|
-
const Number_1 = require("./Number");
|
|
8
|
-
const mobx_state_tree_1 = require("mobx-state-tree");
|
|
9
|
-
const FilterModelType = mobx_state_tree_1.types.compose(Number_1.FilterModelType, mobx_state_tree_1.types.model({
|
|
10
|
-
type: mobx_state_tree_1.types.literal('LocEnd'),
|
|
11
|
-
}));
|
|
12
|
-
const LocEnd = (0, MakeSpreadsheetColumnType_1.default)('LocEnd', {
|
|
13
|
-
categoryName: 'Location',
|
|
14
|
-
displayName: 'End',
|
|
15
|
-
compare(cellA, cellB) {
|
|
16
|
-
return Number.parseFloat(cellA.text) - Number.parseFloat(cellB.text);
|
|
17
|
-
},
|
|
18
|
-
FilterModelType,
|
|
19
|
-
});
|
|
20
|
-
exports.default = LocEnd;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
declare const LocRef: import("mobx-state-tree").IModelType<{
|
|
2
|
-
type: import("mobx-state-tree").ISimpleType<string>;
|
|
3
|
-
}, {
|
|
4
|
-
DataCellReactComponent: import("react").FC<any> | null;
|
|
5
|
-
FilterModelType: any;
|
|
6
|
-
displayName: string;
|
|
7
|
-
categoryName: string | undefined;
|
|
8
|
-
} & {
|
|
9
|
-
compare: any;
|
|
10
|
-
readonly hasFilter: boolean;
|
|
11
|
-
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
|
|
12
|
-
export default LocRef;
|
|
@@ -1,20 +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 MakeSpreadsheetColumnType_1 = __importDefault(require("./MakeSpreadsheetColumnType"));
|
|
7
|
-
const Text_1 = require("./Text");
|
|
8
|
-
const mobx_state_tree_1 = require("mobx-state-tree");
|
|
9
|
-
const FilterModelType = mobx_state_tree_1.types.compose(Text_1.FilterModelType, mobx_state_tree_1.types.model({
|
|
10
|
-
type: mobx_state_tree_1.types.literal('LocRef'),
|
|
11
|
-
}));
|
|
12
|
-
const LocRef = (0, MakeSpreadsheetColumnType_1.default)('LocRef', {
|
|
13
|
-
categoryName: 'Location',
|
|
14
|
-
displayName: 'Reference seq',
|
|
15
|
-
compare(cellA, cellB) {
|
|
16
|
-
return cellA.text.localeCompare(cellB.text);
|
|
17
|
-
},
|
|
18
|
-
FilterModelType,
|
|
19
|
-
});
|
|
20
|
-
exports.default = LocRef;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
declare const LocStart: import("mobx-state-tree").IModelType<{
|
|
2
|
-
type: import("mobx-state-tree").ISimpleType<string>;
|
|
3
|
-
}, {
|
|
4
|
-
DataCellReactComponent: import("react").FC<any> | null;
|
|
5
|
-
FilterModelType: any;
|
|
6
|
-
displayName: string;
|
|
7
|
-
categoryName: string | undefined;
|
|
8
|
-
} & {
|
|
9
|
-
compare: any;
|
|
10
|
-
readonly hasFilter: boolean;
|
|
11
|
-
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
|
|
12
|
-
export default LocStart;
|
|
@@ -1,20 +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 MakeSpreadsheetColumnType_1 = __importDefault(require("./MakeSpreadsheetColumnType"));
|
|
7
|
-
const mobx_state_tree_1 = require("mobx-state-tree");
|
|
8
|
-
const Number_1 = require("./Number");
|
|
9
|
-
const FilterModelType = mobx_state_tree_1.types.compose(Number_1.FilterModelType, mobx_state_tree_1.types.model({
|
|
10
|
-
type: mobx_state_tree_1.types.literal('LocStart'),
|
|
11
|
-
}));
|
|
12
|
-
const LocStart = (0, MakeSpreadsheetColumnType_1.default)('LocStart', {
|
|
13
|
-
categoryName: 'Location',
|
|
14
|
-
displayName: 'Start',
|
|
15
|
-
compare(cellA, cellB) {
|
|
16
|
-
return Number.parseFloat(cellA.text) - Number.parseFloat(cellB.text);
|
|
17
|
-
},
|
|
18
|
-
FilterModelType,
|
|
19
|
-
});
|
|
20
|
-
exports.default = LocStart;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
declare const LocStringColumnType: import("mobx-state-tree").IModelType<{
|
|
3
|
-
type: import("mobx-state-tree").ISimpleType<string>;
|
|
4
|
-
}, {
|
|
5
|
-
DataCellReactComponent: 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
|
-
export default LocStringColumnType;
|
|
@@ -1,181 +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 react_1 = __importDefault(require("react"));
|
|
7
|
-
const material_1 = require("@mui/material");
|
|
8
|
-
const mui_1 = require("tss-react/mui");
|
|
9
|
-
const mobx_react_1 = require("mobx-react");
|
|
10
|
-
const mobx_state_tree_1 = require("mobx-state-tree");
|
|
11
|
-
// jbrowse imports
|
|
12
|
-
const mst_reflection_1 = require("@jbrowse/core/util/mst-reflection");
|
|
13
|
-
const util_1 = require("@jbrowse/core/util");
|
|
14
|
-
// icons
|
|
15
|
-
const Clear_1 = __importDefault(require("@mui/icons-material/Clear"));
|
|
16
|
-
// locals
|
|
17
|
-
const MakeSpreadsheetColumnType_1 = __importDefault(require("./MakeSpreadsheetColumnType"));
|
|
18
|
-
const useStyles = (0, mui_1.makeStyles)()({
|
|
19
|
-
textFilterControlAdornment: { marginRight: '-18px' },
|
|
20
|
-
textFilterControl: {
|
|
21
|
-
'& .MuiInput-formControl': {
|
|
22
|
-
marginTop: 8,
|
|
23
|
-
},
|
|
24
|
-
'& .MuiInputLabel-formControl': {
|
|
25
|
-
top: '-7px',
|
|
26
|
-
'&.MuiInputLabel-shrink': {
|
|
27
|
-
top: '-3px',
|
|
28
|
-
},
|
|
29
|
-
},
|
|
30
|
-
},
|
|
31
|
-
});
|
|
32
|
-
// React component for the column filter control
|
|
33
|
-
const FilterReactComponent = (0, mobx_react_1.observer)(function ({ filterModel, }) {
|
|
34
|
-
const { classes } = useStyles();
|
|
35
|
-
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')));
|
|
36
|
-
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
37
|
-
react_1.default.createElement(material_1.Select, { value: filterModel.operation, onChange: event => filterModel.setOperation(String(event.target.value)) }, operationChoices.map(name => (react_1.default.createElement(material_1.MenuItem, { key: name, value: name }, name)))),
|
|
38
|
-
' ',
|
|
39
|
-
react_1.default.createElement(material_1.TextField, { label: "range", placeholder: "chr1:100-200", error: filterModel.locStringIsInvalid, value: filterModel.locString, onChange: evt => filterModel.setLocString(evt.target.value), className: classes.textFilterControl, InputProps: {
|
|
40
|
-
endAdornment: (react_1.default.createElement(material_1.InputAdornment, { className: classes.textFilterControlAdornment, position: "end" },
|
|
41
|
-
react_1.default.createElement(material_1.IconButton, { "aria-label": "clear filter", onClick: () => filterModel.setLocString('') },
|
|
42
|
-
react_1.default.createElement(Clear_1.default, null)))),
|
|
43
|
-
} })));
|
|
44
|
-
});
|
|
45
|
-
const OPERATIONS = [
|
|
46
|
-
'overlaps with',
|
|
47
|
-
'contained within',
|
|
48
|
-
'fully contains',
|
|
49
|
-
'does not overlap',
|
|
50
|
-
'not contained within',
|
|
51
|
-
'does not contain',
|
|
52
|
-
];
|
|
53
|
-
// NOTE: assembly names, if present, are ignored in all of these predicates
|
|
54
|
-
const OPERATION_PREDICATES = {
|
|
55
|
-
'overlaps with': (cellLocation, specifiedLocation) => {
|
|
56
|
-
return (cellLocation.refName === specifiedLocation.refName &&
|
|
57
|
-
(0, util_1.doesIntersect2)(cellLocation.start, cellLocation.end, specifiedLocation.start, specifiedLocation.end));
|
|
58
|
-
},
|
|
59
|
-
'contained within': (cellLocation, specifiedLocation) => {
|
|
60
|
-
return (cellLocation.refName === specifiedLocation.refName &&
|
|
61
|
-
(0, util_1.isContainedWithin)(cellLocation.start, cellLocation.end, specifiedLocation.start, specifiedLocation.end));
|
|
62
|
-
},
|
|
63
|
-
'fully contains': (cellLocation, specifiedLocation) => {
|
|
64
|
-
return (cellLocation.refName === specifiedLocation.refName &&
|
|
65
|
-
(0, util_1.isContainedWithin)(specifiedLocation.start, specifiedLocation.end, cellLocation.start, cellLocation.end));
|
|
66
|
-
},
|
|
67
|
-
};
|
|
68
|
-
OPERATION_PREDICATES['does not overlap'] = (cellLocation, specifiedLocation) => {
|
|
69
|
-
return !OPERATION_PREDICATES['overlaps with'](cellLocation, specifiedLocation);
|
|
70
|
-
};
|
|
71
|
-
OPERATION_PREDICATES['not contained within'] = (cellLocation, specifiedLocation) => {
|
|
72
|
-
return !OPERATION_PREDICATES['contained within'](cellLocation, specifiedLocation);
|
|
73
|
-
};
|
|
74
|
-
OPERATION_PREDICATES['does not contain'] = (cellLocation, specifiedLocation) => {
|
|
75
|
-
return !OPERATION_PREDICATES['fully contains'](cellLocation, specifiedLocation);
|
|
76
|
-
};
|
|
77
|
-
// MST model for the column filter control
|
|
78
|
-
const FilterModelType = mobx_state_tree_1.types
|
|
79
|
-
.model('ColumnLocStringFilter', {
|
|
80
|
-
type: mobx_state_tree_1.types.literal('LocString'),
|
|
81
|
-
columnNumber: mobx_state_tree_1.types.integer,
|
|
82
|
-
locString: '',
|
|
83
|
-
operation: mobx_state_tree_1.types.optional(mobx_state_tree_1.types.string, OPERATIONS[0]),
|
|
84
|
-
})
|
|
85
|
-
.views(self => ({
|
|
86
|
-
get locStringIsInvalid() {
|
|
87
|
-
if (self.locString) {
|
|
88
|
-
const parsed = this.parsedLocString;
|
|
89
|
-
return (!parsed ||
|
|
90
|
-
parsed.refName === '' ||
|
|
91
|
-
typeof parsed.start !== 'number' ||
|
|
92
|
-
typeof parsed.end !== 'number' ||
|
|
93
|
-
parsed.start > parsed.end);
|
|
94
|
-
}
|
|
95
|
-
return false;
|
|
96
|
-
},
|
|
97
|
-
get parsedLocString() {
|
|
98
|
-
const session = (0, util_1.getSession)(self);
|
|
99
|
-
const model = (0, mobx_state_tree_1.getParent)(self, 3).spreadsheet;
|
|
100
|
-
const { assemblyName } = model;
|
|
101
|
-
try {
|
|
102
|
-
return (0, util_1.parseLocString)(self.locString, refName => session.assemblyManager.isValidRefName(refName, assemblyName));
|
|
103
|
-
}
|
|
104
|
-
catch (e) {
|
|
105
|
-
return undefined;
|
|
106
|
-
}
|
|
107
|
-
},
|
|
108
|
-
}))
|
|
109
|
-
.views(self => ({
|
|
110
|
-
// returns a function that tests the given row
|
|
111
|
-
get predicate() {
|
|
112
|
-
const { locString, locStringIsInvalid, parsedLocString, operation, columnNumber, } = self; // avoid closing over self
|
|
113
|
-
if (!locString || locStringIsInvalid || !parsedLocString) {
|
|
114
|
-
return function alwaysTrue() {
|
|
115
|
-
return true;
|
|
116
|
-
};
|
|
117
|
-
}
|
|
118
|
-
return function stringPredicate(_sheet, row) {
|
|
119
|
-
const { cellsWithDerived: cells } = row;
|
|
120
|
-
const cell = cells[columnNumber];
|
|
121
|
-
if (!(cell === null || cell === void 0 ? void 0 : cell.text) || !cell.extendedData) {
|
|
122
|
-
return false;
|
|
123
|
-
}
|
|
124
|
-
const parsedCellText = cell.extendedData;
|
|
125
|
-
if (!parsedCellText.refName) {
|
|
126
|
-
return false;
|
|
127
|
-
}
|
|
128
|
-
const predicate = OPERATION_PREDICATES[operation];
|
|
129
|
-
if (!predicate) {
|
|
130
|
-
throw new Error(`"${operation}" not implemented in location filter`);
|
|
131
|
-
}
|
|
132
|
-
return predicate(parsedCellText, parsedLocString);
|
|
133
|
-
};
|
|
134
|
-
},
|
|
135
|
-
}))
|
|
136
|
-
.actions(self => ({
|
|
137
|
-
setLocString(s) {
|
|
138
|
-
self.locString = s;
|
|
139
|
-
},
|
|
140
|
-
setOperation(op) {
|
|
141
|
-
self.operation = op;
|
|
142
|
-
},
|
|
143
|
-
}))
|
|
144
|
-
.volatile(() => ({ ReactComponent: FilterReactComponent }));
|
|
145
|
-
// opens a new LGV at the location described in the locString in the cell text
|
|
146
|
-
async function locationLinkClick(spreadsheet, _columnNumber, cell) {
|
|
147
|
-
const session = (0, util_1.getSession)(spreadsheet);
|
|
148
|
-
const { assemblyName } = spreadsheet;
|
|
149
|
-
const { id } = (0, mobx_state_tree_1.getParent)(spreadsheet);
|
|
150
|
-
const newViewId = `${id}_${assemblyName}`;
|
|
151
|
-
let view = session.views.find(v => v.id === newViewId);
|
|
152
|
-
if (!view) {
|
|
153
|
-
view = session.addView('LinearGenomeView', {
|
|
154
|
-
id: newViewId,
|
|
155
|
-
});
|
|
156
|
-
}
|
|
157
|
-
await view.navToLocString(cell.text, assemblyName);
|
|
158
|
-
}
|
|
159
|
-
const DataCellReactComponent = (0, mobx_react_1.observer)(function ({ cell, columnNumber, spreadsheet, }) {
|
|
160
|
-
return (react_1.default.createElement("a", { onClick: async (evt) => {
|
|
161
|
-
evt.preventDefault();
|
|
162
|
-
const session = (0, util_1.getSession)(spreadsheet);
|
|
163
|
-
try {
|
|
164
|
-
await locationLinkClick(spreadsheet, columnNumber, cell);
|
|
165
|
-
}
|
|
166
|
-
catch (e) {
|
|
167
|
-
console.error(e);
|
|
168
|
-
session.notifyError(`${e}`, e);
|
|
169
|
-
}
|
|
170
|
-
}, title: "open a new linear genome view here", href: "#" }, cell.text));
|
|
171
|
-
});
|
|
172
|
-
const LocStringColumnType = (0, MakeSpreadsheetColumnType_1.default)('LocString', {
|
|
173
|
-
categoryName: 'Location',
|
|
174
|
-
displayName: 'Full location',
|
|
175
|
-
compare(cellA, cellB) {
|
|
176
|
-
return (0, util_1.compareLocs)(cellA.extendedData, cellB.extendedData);
|
|
177
|
-
},
|
|
178
|
-
FilterModelType,
|
|
179
|
-
DataCellReactComponent,
|
|
180
|
-
});
|
|
181
|
-
exports.default = LocStringColumnType;
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
/** utility function for assembling the MST model of a column data type */
|
|
3
|
-
export default function MakeSpreadsheetColumnType(name: string, { DataCellReactComponent, FilterModelType, compare, displayName, categoryName, }: {
|
|
4
|
-
compare?: any;
|
|
5
|
-
DataCellReactComponent?: React.FC<any> | null;
|
|
6
|
-
FilterModelType?: any;
|
|
7
|
-
displayName?: string;
|
|
8
|
-
categoryName?: string;
|
|
9
|
-
}): import("mobx-state-tree").IModelType<{
|
|
10
|
-
type: import("mobx-state-tree").ISimpleType<string>;
|
|
11
|
-
}, {
|
|
12
|
-
DataCellReactComponent: React.FC<any> | null;
|
|
13
|
-
FilterModelType: any;
|
|
14
|
-
displayName: string;
|
|
15
|
-
categoryName: string | undefined;
|
|
16
|
-
} & {
|
|
17
|
-
compare: any;
|
|
18
|
-
readonly hasFilter: boolean;
|
|
19
|
-
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.default = MakeSpreadsheetColumnType;
|
|
4
|
-
const mobx_state_tree_1 = require("mobx-state-tree");
|
|
5
|
-
/** utility function for assembling the MST model of a column data type */
|
|
6
|
-
function MakeSpreadsheetColumnType(name, { DataCellReactComponent = null, FilterModelType = null, compare, displayName = undefined, categoryName = undefined, }) {
|
|
7
|
-
return mobx_state_tree_1.types
|
|
8
|
-
.model(`ColumnDataType${name}`, {
|
|
9
|
-
type: mobx_state_tree_1.types.literal(name),
|
|
10
|
-
})
|
|
11
|
-
.volatile(() => ({
|
|
12
|
-
DataCellReactComponent,
|
|
13
|
-
FilterModelType: FilterModelType,
|
|
14
|
-
displayName: displayName || name,
|
|
15
|
-
categoryName,
|
|
16
|
-
}))
|
|
17
|
-
.views(() => ({
|
|
18
|
-
compare,
|
|
19
|
-
get hasFilter() {
|
|
20
|
-
return !!FilterModelType;
|
|
21
|
-
},
|
|
22
|
-
}));
|
|
23
|
-
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
declare const FilterModelType: import("mobx-state-tree").IModelType<{
|
|
3
|
-
type: import("mobx-state-tree").ISimpleType<"Number">;
|
|
4
|
-
columnNumber: import("mobx-state-tree").ISimpleType<number>;
|
|
5
|
-
firstNumber: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
|
|
6
|
-
secondNumber: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
|
|
7
|
-
operation: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
|
|
8
|
-
}, {
|
|
9
|
-
readonly predicate: (_sheet: any, row: any) => boolean;
|
|
10
|
-
} & {
|
|
11
|
-
setFirstNumber(n: number): void;
|
|
12
|
-
setSecondNumber(n: number): void;
|
|
13
|
-
setOperation(op: string): void;
|
|
14
|
-
} & {
|
|
15
|
-
ReactComponent: ({ filterModel }: {
|
|
16
|
-
filterModel: any;
|
|
17
|
-
}) => React.JSX.Element;
|
|
18
|
-
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
|
|
19
|
-
declare const NumberColumn: import("mobx-state-tree").IModelType<{
|
|
20
|
-
type: import("mobx-state-tree").ISimpleType<string>;
|
|
21
|
-
}, {
|
|
22
|
-
DataCellReactComponent: React.FC<any> | null;
|
|
23
|
-
FilterModelType: any;
|
|
24
|
-
displayName: string;
|
|
25
|
-
categoryName: string | undefined;
|
|
26
|
-
} & {
|
|
27
|
-
compare: any;
|
|
28
|
-
readonly hasFilter: boolean;
|
|
29
|
-
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
|
|
30
|
-
export { NumberColumn, FilterModelType };
|