@weng-lab/genomebrowser-ui 0.3.6 → 0.4.0-beta.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/.env.local +1 -1
- package/dist/TrackSelect/Folders/biosamples/shared/BiosampleViewSelector.d.ts +7 -0
- package/dist/TrackSelect/Folders/biosamples/shared/createFolder.d.ts +1 -13
- package/dist/TrackSelect/Folders/biosamples/shared/toTrack.d.ts +20 -0
- package/dist/TrackSelect/Folders/biosamples/shared/types.d.ts +4 -13
- package/dist/TrackSelect/Folders/genes/shared/createFolder.d.ts +1 -3
- package/dist/TrackSelect/Folders/genes/shared/toTrack.d.ts +18 -0
- package/dist/TrackSelect/Folders/index.d.ts +6 -12
- package/dist/TrackSelect/Folders/mohd/data/human.json.d.ts +2948 -0
- package/dist/TrackSelect/Folders/mohd/human.d.ts +1 -0
- package/dist/TrackSelect/Folders/mohd/shared/MohdGroupingCell.d.ts +2 -0
- package/dist/TrackSelect/Folders/mohd/shared/MohdTreeItem.d.ts +3 -0
- package/dist/TrackSelect/Folders/mohd/shared/MohdViewSelector.d.ts +7 -0
- package/dist/TrackSelect/Folders/mohd/shared/columns.d.ts +5 -0
- package/dist/TrackSelect/Folders/mohd/shared/config.d.ts +42 -0
- package/dist/TrackSelect/Folders/mohd/shared/createFolder.d.ts +9 -0
- package/dist/TrackSelect/Folders/mohd/shared/toTrack.d.ts +9 -0
- package/dist/TrackSelect/Folders/mohd/shared/types.d.ts +40 -0
- package/dist/TrackSelect/Folders/other-tracks/shared/toTrack.d.ts +5 -0
- package/dist/TrackSelect/Folders/other-tracks/shared/types.d.ts +1 -0
- package/dist/TrackSelect/Folders/types.d.ts +23 -55
- package/dist/TrackSelect/TrackSelect.d.ts +10 -7
- package/dist/TrackSelect/TreeView/TreeViewWrapper.d.ts +1 -1
- package/dist/TrackSelect/buildSelectedTree.d.ts +15 -0
- package/dist/TrackSelect/managedTracks.d.ts +13 -0
- package/dist/TrackSelect/resolveFolderView.d.ts +2 -0
- package/dist/TrackSelect/trackContext.d.ts +5 -0
- package/dist/TrackSelect/types.d.ts +12 -33
- package/dist/genomebrowser-ui.es.js +2224 -1717
- package/dist/genomebrowser-ui.es.js.map +1 -1
- package/dist/lib.d.ts +4 -4
- package/dist/muiLicense.d.ts +1 -0
- package/package.json +6 -3
- package/src/TrackSelect/Dialogs/ResetDialog.tsx +3 -2
- package/src/TrackSelect/FolderList/FolderCard.tsx +1 -1
- package/src/TrackSelect/Folders/biosamples/shared/BiosampleViewSelector.tsx +33 -0
- package/src/TrackSelect/Folders/biosamples/shared/createFolder.ts +39 -58
- package/src/TrackSelect/Folders/biosamples/shared/toTrack.ts +138 -0
- package/src/TrackSelect/Folders/biosamples/shared/types.ts +4 -16
- package/src/TrackSelect/Folders/genes/shared/createFolder.ts +10 -31
- package/src/TrackSelect/Folders/genes/shared/toTrack.ts +59 -0
- package/src/TrackSelect/Folders/index.ts +14 -17
- package/src/TrackSelect/Folders/mohd/data/human.json +2945 -0
- package/src/TrackSelect/Folders/mohd/human.ts +10 -0
- package/src/TrackSelect/Folders/mohd/shared/MohdGroupingCell.tsx +68 -0
- package/src/TrackSelect/Folders/mohd/shared/MohdTreeItem.tsx +17 -0
- package/src/TrackSelect/Folders/mohd/shared/MohdViewSelector.tsx +33 -0
- package/src/TrackSelect/Folders/mohd/shared/columns.tsx +79 -0
- package/src/TrackSelect/Folders/mohd/shared/config.tsx +71 -0
- package/src/TrackSelect/Folders/mohd/shared/createFolder.ts +144 -0
- package/src/TrackSelect/Folders/mohd/shared/toTrack.ts +164 -0
- package/src/TrackSelect/Folders/mohd/shared/types.ts +46 -0
- package/src/TrackSelect/Folders/other-tracks/shared/createFolder.ts +13 -14
- package/src/TrackSelect/Folders/other-tracks/shared/toTrack.ts +17 -0
- package/src/TrackSelect/Folders/other-tracks/shared/types.ts +1 -0
- package/src/TrackSelect/Folders/types.ts +26 -69
- package/src/TrackSelect/TrackSelect.tsx +299 -255
- package/src/TrackSelect/TreeView/CustomTreeItem.tsx +6 -6
- package/src/TrackSelect/TreeView/TreeViewWrapper.tsx +84 -6
- package/src/TrackSelect/buildSelectedTree.ts +145 -0
- package/src/TrackSelect/managedTracks.ts +92 -0
- package/src/TrackSelect/resolveFolderView.ts +20 -0
- package/src/TrackSelect/trackContext.ts +9 -0
- package/src/TrackSelect/types.ts +14 -39
- package/src/lib.ts +13 -7
- package/src/muiLicense.ts +9 -0
- package/src/vite-env.d.ts +9 -0
- package/test/TrackSelect.test.tsx +435 -0
- package/test/main.tsx +36 -352
- package/test/mocks/logo-test.tsx +11 -0
- package/test/mohdDisplay.test.tsx +45 -0
- package/test/startup.test.ts +206 -0
- package/test/trackSelectState.test.ts +176 -0
- package/vite.config.ts +1 -0
- package/vitest.config.ts +20 -0
- package/dist/TrackSelect/Folders/biosamples/shared/AssayToggle.d.ts +0 -18
- package/dist/TrackSelect/Folders/biosamples/shared/treeBuilder.d.ts +0 -28
- package/dist/TrackSelect/Folders/genes/shared/treeBuilder.d.ts +0 -13
- package/dist/TrackSelect/Folders/other-tracks/shared/treeBuilder.d.ts +0 -4
- package/dist/TrackSelect/store.d.ts +0 -4
- package/src/TrackSelect/Folders/NEW.md +0 -929
- package/src/TrackSelect/Folders/biosamples/shared/AssayToggle.tsx +0 -78
- package/src/TrackSelect/Folders/biosamples/shared/treeBuilder.ts +0 -224
- package/src/TrackSelect/Folders/genes/shared/treeBuilder.ts +0 -45
- package/src/TrackSelect/Folders/other-tracks/shared/treeBuilder.ts +0 -34
- package/src/TrackSelect/store.ts +0 -117
|
@@ -1,23 +1,22 @@
|
|
|
1
1
|
import { GridColDef, GridRenderCellParams } from "@mui/x-data-grid-premium";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { Track } from "@weng-lab/genomebrowser";
|
|
3
|
+
import type { TrackSelectTrackContext } from "../trackContext";
|
|
4
|
+
import { CustomTreeItemProps } from "../types";
|
|
4
5
|
|
|
5
6
|
export type Assembly = "GRCh38" | "mm10";
|
|
6
7
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
* how the DataGrid and TreeView display data.
|
|
11
|
-
*/
|
|
12
|
-
export interface FolderRuntimeConfig {
|
|
8
|
+
export interface FolderView {
|
|
9
|
+
id: string;
|
|
10
|
+
label: string;
|
|
13
11
|
columns: GridColDef[];
|
|
14
12
|
groupingModel: string[];
|
|
15
13
|
leafField: string;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/** Options passed to folder-owned track factories. */
|
|
17
|
+
export interface CreateTrackOptions {
|
|
18
|
+
assembly: Assembly;
|
|
19
|
+
trackContext?: TrackSelectTrackContext;
|
|
21
20
|
}
|
|
22
21
|
|
|
23
22
|
/**
|
|
@@ -30,77 +29,35 @@ export interface FolderRuntimeConfig {
|
|
|
30
29
|
* @template TRow - The type of row data stored in this folder
|
|
31
30
|
*/
|
|
32
31
|
export interface FolderDefinition<TRow = any> {
|
|
33
|
-
/** Unique identifier for this folder */
|
|
34
32
|
id: string;
|
|
35
|
-
|
|
36
|
-
/** Display label shown in the UI */
|
|
37
33
|
label: string;
|
|
38
|
-
|
|
39
|
-
/** Optional description shown in folder cards */
|
|
40
34
|
description?: string;
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Single source of truth for all row data.
|
|
44
|
-
* Maps row ID to the full row object.
|
|
45
|
-
*/
|
|
46
|
-
rowById: Map<string, TRow>;
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* Function to extract the unique ID from a row object.
|
|
50
|
-
* Used for selection tracking and lookups.
|
|
51
|
-
*/
|
|
52
|
-
getRowId: (row: TRow) => string;
|
|
53
|
-
|
|
54
|
-
/** Column definitions for the DataGrid */
|
|
35
|
+
rows: TRow[];
|
|
55
36
|
columns: GridColDef[];
|
|
56
|
-
|
|
57
|
-
/** Fields to group by in the DataGrid (row grouping) */
|
|
58
37
|
groupingModel: string[];
|
|
59
|
-
|
|
60
|
-
/** The field that represents the leaf level in the grouping hierarchy */
|
|
61
38
|
leafField: string;
|
|
62
39
|
|
|
63
40
|
/**
|
|
64
|
-
*
|
|
65
|
-
* Used to display selected items in the TreeView panel.
|
|
41
|
+
* Creates a browser track from a folder row.
|
|
66
42
|
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
43
|
+
* This keeps folder-specific track creation logic colocated with the
|
|
44
|
+
* folder's data and presentation logic instead of requiring consumers to
|
|
45
|
+
* branch on folder IDs.
|
|
70
46
|
*/
|
|
71
|
-
|
|
72
|
-
selectedIds: string[],
|
|
73
|
-
rowById: Map<string, TRow>,
|
|
74
|
-
) => TreeViewBaseItem<ExtendedTreeItemProps>[];
|
|
47
|
+
createTrack: (row: TRow, options: CreateTrackOptions) => Track | null;
|
|
75
48
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
* @param updateConfig - Callback to update the folder's runtime config
|
|
82
|
-
* @param folderId - The folder's unique identifier
|
|
83
|
-
* @param label - The folder's display label
|
|
84
|
-
* @param config - The current runtime config for this folder
|
|
85
|
-
*/
|
|
86
|
-
ToolbarExtras?: React.FC<{
|
|
87
|
-
updateConfig: (partial: Partial<FolderRuntimeConfig>) => void;
|
|
88
|
-
folderId: string;
|
|
89
|
-
label: string;
|
|
90
|
-
config: FolderRuntimeConfig;
|
|
49
|
+
views?: FolderView[];
|
|
50
|
+
ViewSelector?: React.FC<{
|
|
51
|
+
views: FolderView[];
|
|
52
|
+
activeViewId: string;
|
|
53
|
+
onChange: (viewId: string) => void;
|
|
91
54
|
}>;
|
|
92
55
|
|
|
93
|
-
/**
|
|
94
|
-
* Optional custom component for rendering grouping cells in the DataGrid.
|
|
95
|
-
* If not provided, a default grouping cell renderer will be used.
|
|
96
|
-
*/
|
|
97
56
|
GroupingCellComponent?: React.FC<GridRenderCellParams>;
|
|
98
|
-
|
|
99
|
-
/**
|
|
100
|
-
* Optional custom TreeItem component for the TreeView.
|
|
101
|
-
* If not provided, the default CustomTreeItem will be used.
|
|
102
|
-
*/
|
|
103
57
|
TreeItemComponent?: React.ForwardRefExoticComponent<
|
|
104
58
|
CustomTreeItemProps & React.RefAttributes<HTMLLIElement>
|
|
105
59
|
>;
|
|
60
|
+
LeafTreeItemComponent?: React.ForwardRefExoticComponent<
|
|
61
|
+
CustomTreeItemProps & React.RefAttributes<HTMLLIElement>
|
|
62
|
+
>;
|
|
106
63
|
}
|