@weng-lab/genomebrowser-ui 0.3.6 → 0.4.0-beta.1
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/columns.d.ts +2 -2
- 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/genes/shared/types.d.ts +2 -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 +2231 -1732
- 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/ClearDialog.tsx +3 -8
- package/src/TrackSelect/Dialogs/ResetDialog.tsx +5 -4
- 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/columns.tsx +2 -2
- package/src/TrackSelect/Folders/genes/shared/createFolder.ts +11 -31
- package/src/TrackSelect/Folders/genes/shared/toTrack.ts +59 -0
- package/src/TrackSelect/Folders/genes/shared/types.ts +2 -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 +301 -257
- package/src/TrackSelect/TreeView/CustomTreeItem.tsx +9 -9
- 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
package/.env.local
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
NEXT_PUBLIC_MUI_X_LICENSE_KEY=a8a7caa0861db35745fbff677471cad5Tz0xMjMzMTQsRT0xNzk3NTUxOTk5MDAwLFM9cHJlbWl1bSxMTT1zdWJzY3JpcHRpb24sUFY9aW5pdGlhbCxLVj0y
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { FolderView } from '../../types';
|
|
2
|
+
export interface BiosampleViewSelectorProps {
|
|
3
|
+
views: FolderView[];
|
|
4
|
+
activeViewId: string;
|
|
5
|
+
onChange: (viewId: string) => void;
|
|
6
|
+
}
|
|
7
|
+
export declare function BiosampleViewSelector({ views, activeViewId, onChange, }: BiosampleViewSelectorProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,24 +1,12 @@
|
|
|
1
1
|
import { FolderDefinition } from '../../types';
|
|
2
2
|
import { BiosampleDataFile, BiosampleRowInfo } from './types';
|
|
3
3
|
export interface CreateBiosampleFolderOptions {
|
|
4
|
-
/** Unique identifier for this folder */
|
|
5
4
|
id: string;
|
|
6
|
-
/** Display label shown in the UI */
|
|
7
5
|
label: string;
|
|
8
|
-
/** Optional description shown in folder cards */
|
|
9
6
|
description?: string;
|
|
10
|
-
/** Raw biosample data from JSON file */
|
|
11
7
|
data: BiosampleDataFile;
|
|
12
8
|
}
|
|
13
9
|
/**
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* This handles all the common setup for biosample folders:
|
|
17
|
-
* - Transforms JSON data into flattened rows
|
|
18
|
-
* - Creates the rowById lookup map
|
|
19
|
-
* - Configures columns, grouping, and tree building
|
|
20
|
-
*
|
|
21
|
-
* @param options - Configuration options for the folder
|
|
22
|
-
* @returns A complete FolderDefinition for the biosample data
|
|
10
|
+
* Build a biosample folder with its data, tree builder, and track factory.
|
|
23
11
|
*/
|
|
24
12
|
export declare function createBiosampleFolder(options: CreateBiosampleFolderOptions): FolderDefinition<BiosampleRowInfo>;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Rect, Track, ValuedPoint } from '@weng-lab/genomebrowser';
|
|
2
|
+
import { FC } from 'react';
|
|
3
|
+
import { CreateTrackOptions } from '../../types';
|
|
4
|
+
import { BiosampleRowInfo } from './types';
|
|
5
|
+
export type BiosampleTrackContext = {
|
|
6
|
+
onBiosampleFeatureClick?: (args: {
|
|
7
|
+
trackId: string;
|
|
8
|
+
row: BiosampleRowInfo;
|
|
9
|
+
rect: Rect;
|
|
10
|
+
}) => void;
|
|
11
|
+
onBiosampleFeatureHover?: (args: {
|
|
12
|
+
trackId: string;
|
|
13
|
+
row: BiosampleRowInfo;
|
|
14
|
+
rect: Rect;
|
|
15
|
+
}) => void;
|
|
16
|
+
biosampleFeatureTooltip?: FC<Rect>;
|
|
17
|
+
biosampleSignalTooltip?: FC<ValuedPoint[]>;
|
|
18
|
+
biosampleMethylTooltip?: FC<ValuedPoint[]>;
|
|
19
|
+
};
|
|
20
|
+
export declare function createBiosampleTrack(row: BiosampleRowInfo, options: CreateTrackOptions): Track;
|
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Types for biosample folder data
|
|
3
|
-
*/
|
|
4
1
|
export type CollectionType = "Core" | "Ancillary" | "Partial";
|
|
5
2
|
/**
|
|
6
|
-
*
|
|
7
|
-
* Standard assays have a single `url`, while WGBS assays have `cpgPlus`, `cpgMinus`, `coverage`.
|
|
3
|
+
* One assay entry from the source data. WGBS rows carry strand-specific URLs.
|
|
8
4
|
*/
|
|
9
5
|
export type BiosampleAssayInfo = {
|
|
10
6
|
id: string;
|
|
@@ -16,9 +12,7 @@ export type BiosampleAssayInfo = {
|
|
|
16
12
|
cpgMinus?: string;
|
|
17
13
|
coverage?: string;
|
|
18
14
|
};
|
|
19
|
-
/**
|
|
20
|
-
* Track information from the JSON data
|
|
21
|
-
*/
|
|
15
|
+
/** One biosample entry from the source data. */
|
|
22
16
|
export type BiosampleTrackInfo = {
|
|
23
17
|
name: string;
|
|
24
18
|
ontology: string;
|
|
@@ -29,8 +23,7 @@ export type BiosampleTrackInfo = {
|
|
|
29
23
|
collection: CollectionType;
|
|
30
24
|
};
|
|
31
25
|
/**
|
|
32
|
-
*
|
|
33
|
-
* Standard assays have a single `url`, while WGBS assays have `cpgPlus`, `cpgMinus`, `coverage`.
|
|
26
|
+
* Flattened table row used by TrackSelect and track creation.
|
|
34
27
|
*/
|
|
35
28
|
export type BiosampleRowInfo = {
|
|
36
29
|
id: string;
|
|
@@ -47,9 +40,7 @@ export type BiosampleRowInfo = {
|
|
|
47
40
|
cpgMinus?: string;
|
|
48
41
|
coverage?: string;
|
|
49
42
|
};
|
|
50
|
-
/**
|
|
51
|
-
* Structure of the biosample JSON data files
|
|
52
|
-
*/
|
|
43
|
+
/** Root shape for biosample JSON files. */
|
|
53
44
|
export type BiosampleDataFile = {
|
|
54
45
|
tracks: BiosampleTrackInfo[];
|
|
55
46
|
};
|
|
@@ -9,6 +9,6 @@ export declare const defaultColumns: GridColDef<GeneRowInfo>[];
|
|
|
9
9
|
*/
|
|
10
10
|
export declare const defaultGroupingModel: string[];
|
|
11
11
|
/**
|
|
12
|
-
* Leaf field - the
|
|
12
|
+
* Leaf field - the raw track ID (without folder prefix) used as the tree view leaf label
|
|
13
13
|
*/
|
|
14
|
-
export declare const defaultLeafField = "
|
|
14
|
+
export declare const defaultLeafField = "trackId";
|
|
@@ -6,7 +6,5 @@ export interface CreateGeneFolderOptions {
|
|
|
6
6
|
description?: string;
|
|
7
7
|
data: GeneDataFile;
|
|
8
8
|
}
|
|
9
|
-
/**
|
|
10
|
-
* Factory function that creates a FolderDefinition for genes
|
|
11
|
-
*/
|
|
9
|
+
/** Build a gene folder with its row lookup, tree, and track factory. */
|
|
12
10
|
export declare function createGeneFolder(options: CreateGeneFolderOptions): FolderDefinition<GeneRowInfo>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Track, Transcript } from '@weng-lab/genomebrowser';
|
|
2
|
+
import { FC } from 'react';
|
|
3
|
+
import { CreateTrackOptions } from '../../types';
|
|
4
|
+
import { GeneRowInfo } from './types';
|
|
5
|
+
export type GeneTrackContext = {
|
|
6
|
+
onGeneClick?: (args: {
|
|
7
|
+
trackId: string;
|
|
8
|
+
row: GeneRowInfo;
|
|
9
|
+
transcript: Transcript;
|
|
10
|
+
}) => void;
|
|
11
|
+
onGeneHover?: (args: {
|
|
12
|
+
trackId: string;
|
|
13
|
+
row: GeneRowInfo;
|
|
14
|
+
transcript: Transcript;
|
|
15
|
+
}) => void;
|
|
16
|
+
geneTooltip?: FC<Transcript>;
|
|
17
|
+
};
|
|
18
|
+
export declare function createGeneTrack(row: GeneRowInfo, options: CreateTrackOptions): Track;
|
|
@@ -1,17 +1,11 @@
|
|
|
1
1
|
import { Assembly, FolderDefinition } from './types';
|
|
2
|
-
export { type Assembly, type FolderDefinition, type
|
|
2
|
+
export { type Assembly, type FolderDefinition, type FolderView } from './types';
|
|
3
3
|
export type { BiosampleRowInfo } from './biosamples/shared/types';
|
|
4
|
+
export type { BiosampleTrackContext } from './biosamples/shared/toTrack';
|
|
4
5
|
export type { GeneRowInfo } from './genes/shared/types';
|
|
6
|
+
export type { GeneTrackContext } from './genes/shared/toTrack';
|
|
7
|
+
export type { MohdRowInfo } from './mohd/shared/types';
|
|
8
|
+
export type { MohdTrackContext } from './mohd/shared/toTrack';
|
|
5
9
|
export type { OtherTrackInfo } from './other-tracks/shared/types';
|
|
6
|
-
|
|
7
|
-
* Registry of folders available for each assembly.
|
|
8
|
-
*
|
|
9
|
-
* Each assembly can have multiple folders (e.g., biosamples, genes, etc.).
|
|
10
|
-
* TrackSelect receives the folders for the current assembly and renders
|
|
11
|
-
* them as tabs or a folder selector.
|
|
12
|
-
*
|
|
13
|
-
* To add a new folder:
|
|
14
|
-
* 1. Create a folder config file (e.g., folders/genes/human.ts)
|
|
15
|
-
* 2. Import and add it to the appropriate assembly array below
|
|
16
|
-
*/
|
|
10
|
+
export type { OtherTracksTrackContext } from './other-tracks/shared/toTrack';
|
|
17
11
|
export declare const foldersByAssembly: Record<Assembly, FolderDefinition[]>;
|