@weng-lab/genomebrowser-ui 0.2.0-beta.2 → 0.2.0-beta.3
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/TrackSelect/Folders/biosamples/shared/AssayToggle.d.ts +7 -3
- package/dist/TrackSelect/Folders/biosamples/shared/columns.d.ts +1 -1
- package/dist/TrackSelect/Folders/biosamples/shared/treeBuilder.d.ts +4 -1
- package/dist/TrackSelect/Folders/types.d.ts +9 -1
- package/dist/TrackSelect/TreeView/TreeViewWrapper.d.ts +1 -1
- package/dist/TrackSelect/types.d.ts +12 -3
- package/dist/genomebrowser-ui.es.js +670 -597
- package/dist/genomebrowser-ui.es.js.map +1 -1
- package/package.json +1 -1
- package/src/TrackSelect/Folders/biosamples/shared/AssayToggle.tsx +19 -6
- package/src/TrackSelect/Folders/biosamples/shared/columns.tsx +2 -2
- package/src/TrackSelect/Folders/biosamples/shared/treeBuilder.ts +9 -12
- package/src/TrackSelect/Folders/types.ts +12 -1
- package/src/TrackSelect/TrackSelect.tsx +28 -16
- package/src/TrackSelect/TreeView/CustomTreeItem.tsx +2 -5
- package/src/TrackSelect/TreeView/TreeViewWrapper.tsx +44 -21
- package/src/TrackSelect/types.ts +14 -4
- package/test/main.tsx +2 -2
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { FolderRuntimeConfig } from '../../types';
|
|
2
2
|
export interface AssayToggleProps {
|
|
3
3
|
updateConfig: (partial: Partial<FolderRuntimeConfig>) => void;
|
|
4
|
+
folderId: string;
|
|
5
|
+
label: string;
|
|
6
|
+
config: FolderRuntimeConfig;
|
|
4
7
|
}
|
|
5
8
|
/**
|
|
6
9
|
* Biosample-specific toolbar component that toggles between
|
|
@@ -8,7 +11,8 @@ export interface AssayToggleProps {
|
|
|
8
11
|
*
|
|
9
12
|
* When toggled, it updates the folder's runtime config to switch:
|
|
10
13
|
* - columns: Different column definitions for each view
|
|
11
|
-
* - groupingModel: ["ontology", "displayName"] vs ["assay", "ontology"
|
|
12
|
-
* - leafField: "assay" vs "
|
|
14
|
+
* - groupingModel: ["ontology", "displayName"] vs ["assay", "ontology"]
|
|
15
|
+
* - leafField: "assay" vs "displayName"
|
|
16
|
+
* - buildTree: Different tree builder function
|
|
13
17
|
*/
|
|
14
|
-
export declare function AssayToggle({ updateConfig }: AssayToggleProps): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
export declare function AssayToggle({ updateConfig, folderId, label, config, }: AssayToggleProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -9,6 +9,6 @@ export declare const sortedByAssayGroupingModel: string[];
|
|
|
9
9
|
/** Default grouping model (ontology-based) */
|
|
10
10
|
export declare const defaultGroupingModel: string[];
|
|
11
11
|
/** Leaf field for sorted-by-assay view */
|
|
12
|
-
export declare const sortedByAssayLeafField = "
|
|
12
|
+
export declare const sortedByAssayLeafField = "displayName";
|
|
13
13
|
/** Default leaf field */
|
|
14
14
|
export declare const defaultLeafField = "assay";
|
|
@@ -3,7 +3,10 @@ import { ExtendedTreeItemProps } from '../../../types';
|
|
|
3
3
|
import { BiosampleRowInfo } from './types';
|
|
4
4
|
/**
|
|
5
5
|
* Builds tree in the sorted by assay view
|
|
6
|
-
* Hierarchy: Assay -> Ontology -> DisplayName
|
|
6
|
+
* Hierarchy: Assay -> Ontology -> DisplayName (leaf)
|
|
7
|
+
*
|
|
8
|
+
* This is the reverse of the default view - instead of grouping by sample first,
|
|
9
|
+
* we group by assay first, making displayName the leaf node.
|
|
7
10
|
*
|
|
8
11
|
* @param selectedIds - list of selected row IDs
|
|
9
12
|
* @param rowById - Mapping between an id and its BiosampleRowInfo object
|
|
@@ -5,12 +5,14 @@ export type Assembly = "GRCh38" | "mm10";
|
|
|
5
5
|
/**
|
|
6
6
|
* Runtime configuration that can be modified by ToolbarExtras components.
|
|
7
7
|
* This allows folder-specific UI (like AssayToggle) to dynamically update
|
|
8
|
-
* how the DataGrid
|
|
8
|
+
* how the DataGrid and TreeView display data.
|
|
9
9
|
*/
|
|
10
10
|
export interface FolderRuntimeConfig {
|
|
11
11
|
columns: GridColDef[];
|
|
12
12
|
groupingModel: string[];
|
|
13
13
|
leafField: string;
|
|
14
|
+
/** Optional override for the tree builder function */
|
|
15
|
+
buildTree?: (selectedIds: string[], rowById: Map<string, any>) => TreeViewBaseItem<ExtendedTreeItemProps>[];
|
|
14
16
|
}
|
|
15
17
|
/**
|
|
16
18
|
* Definition for a folder in TrackSelect.
|
|
@@ -59,9 +61,15 @@ export interface FolderDefinition<TRow = any> {
|
|
|
59
61
|
* that switches between sample-grouped and assay-grouped views.
|
|
60
62
|
*
|
|
61
63
|
* @param updateConfig - Callback to update the folder's runtime config
|
|
64
|
+
* @param folderId - The folder's unique identifier
|
|
65
|
+
* @param label - The folder's display label
|
|
66
|
+
* @param config - The current runtime config for this folder
|
|
62
67
|
*/
|
|
63
68
|
ToolbarExtras?: React.FC<{
|
|
64
69
|
updateConfig: (partial: Partial<FolderRuntimeConfig>) => void;
|
|
70
|
+
folderId: string;
|
|
71
|
+
label: string;
|
|
72
|
+
config: FolderRuntimeConfig;
|
|
65
73
|
}>;
|
|
66
74
|
/**
|
|
67
75
|
* Optional custom component for rendering grouping cells in the DataGrid.
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { TreeViewWrapperProps } from '../types';
|
|
2
|
-
export declare function TreeViewWrapper({
|
|
2
|
+
export declare function TreeViewWrapper({ folderTrees, selectedCount, onRemove, }: TreeViewWrapperProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -22,12 +22,21 @@ export type ExtendedTreeItemProps = {
|
|
|
22
22
|
*/
|
|
23
23
|
allExpAccessions?: string[];
|
|
24
24
|
};
|
|
25
|
-
|
|
25
|
+
/**
|
|
26
|
+
* Configuration for a single folder's tree in the TreeViewWrapper.
|
|
27
|
+
* Each folder gets its own tree with its own TreeItemComponent.
|
|
28
|
+
*/
|
|
29
|
+
export type FolderTreeConfig = {
|
|
30
|
+
folderId: string;
|
|
26
31
|
items: TreeViewBaseItem<ExtendedTreeItemProps>[];
|
|
32
|
+
/** Optional custom TreeItem component for this folder */
|
|
33
|
+
TreeItemComponent?: React.ForwardRefExoticComponent<CustomTreeItemProps & React.RefAttributes<HTMLLIElement>>;
|
|
34
|
+
};
|
|
35
|
+
export type TreeViewWrapperProps = {
|
|
36
|
+
/** Array of folder tree configurations, one per folder with selections */
|
|
37
|
+
folderTrees: FolderTreeConfig[];
|
|
27
38
|
selectedCount: number;
|
|
28
39
|
onRemove: (item: TreeViewBaseItem<ExtendedTreeItemProps>) => void;
|
|
29
|
-
/** Optional custom TreeItem component */
|
|
30
|
-
TreeItemComponent?: React.ForwardRefExoticComponent<CustomTreeItemProps & React.RefAttributes<HTMLLIElement>>;
|
|
31
40
|
};
|
|
32
41
|
export interface CustomLabelProps {
|
|
33
42
|
id: string;
|