react-msaview 1.3.2 → 2.1.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/bundle/index.js +285 -97099
- package/dist/StructureModel.d.ts +9 -0
- package/dist/StructureModel.js +11 -0
- package/dist/StructureModel.js.map +1 -0
- package/dist/UniprotTrack.d.ts +27 -0
- package/dist/UniprotTrack.js +53 -0
- package/dist/UniprotTrack.js.map +1 -0
- package/dist/colorSchemes.d.ts +5 -11
- package/dist/colorSchemes.js +27 -32
- package/dist/colorSchemes.js.map +1 -0
- package/dist/components/BoxTrack.d.ts +6 -6
- package/dist/components/BoxTrack.js +9 -137
- package/dist/components/BoxTrack.js.map +1 -0
- package/dist/components/BoxTrackBlock.d.ts +8 -0
- package/dist/components/BoxTrackBlock.js +136 -0
- package/dist/components/BoxTrackBlock.js.map +1 -0
- package/dist/components/Header.d.ts +2 -2
- package/dist/components/Header.js +55 -48
- package/dist/components/Header.js.map +1 -0
- package/dist/components/ImportForm.d.ts +2 -2
- package/dist/components/ImportForm.js +59 -71
- package/dist/components/ImportForm.js.map +1 -0
- package/dist/components/MSABlock.d.ts +8 -0
- package/dist/components/MSABlock.js +103 -0
- package/dist/components/MSABlock.js.map +1 -0
- package/dist/components/MSACanvas.d.ts +2 -2
- package/dist/components/MSACanvas.js +32 -133
- package/dist/components/MSACanvas.js.map +1 -0
- package/dist/components/MSAMouseoverCanvas.d.ts +6 -0
- package/dist/components/MSAMouseoverCanvas.js +52 -0
- package/dist/components/MSAMouseoverCanvas.js.map +1 -0
- package/dist/components/MSAView.d.ts +2 -2
- package/dist/components/MSAView.js +17 -62
- package/dist/components/MSAView.js.map +1 -0
- package/dist/components/MultiAlignmentSelector.d.ts +6 -0
- package/dist/components/MultiAlignmentSelector.js +13 -0
- package/dist/components/MultiAlignmentSelector.js.map +1 -0
- package/dist/components/ResizeHandles.d.ts +5 -5
- package/dist/components/ResizeHandles.js +31 -32
- package/dist/components/ResizeHandles.js.map +1 -0
- package/dist/components/Rubberband.d.ts +3 -2
- package/dist/components/Rubberband.js +41 -64
- package/dist/components/Rubberband.js.map +1 -0
- package/dist/components/Ruler.d.ts +2 -16
- package/dist/components/Ruler.js +19 -88
- package/dist/components/Ruler.js.map +1 -0
- package/dist/components/TextTrack.d.ts +5 -5
- package/dist/components/TextTrack.js +23 -24
- package/dist/components/TextTrack.js.map +1 -0
- package/dist/components/Track.d.ts +5 -5
- package/dist/components/Track.js +41 -40
- package/dist/components/Track.js.map +1 -0
- package/dist/components/TreeBranchMenu.d.ts +14 -0
- package/dist/components/TreeBranchMenu.js +26 -0
- package/dist/components/TreeBranchMenu.js.map +1 -0
- package/dist/components/TreeCanvas.d.ts +2 -2
- package/dist/components/TreeCanvas.js +24 -356
- package/dist/components/TreeCanvas.js.map +1 -0
- package/dist/components/TreeCanvasBlock.d.ts +7 -0
- package/dist/components/TreeCanvasBlock.js +252 -0
- package/dist/components/TreeCanvasBlock.js.map +1 -0
- package/dist/components/TreeMenu.d.ts +12 -0
- package/dist/components/TreeMenu.js +56 -0
- package/dist/components/TreeMenu.js.map +1 -0
- package/dist/components/TreeRuler.d.ts +2 -2
- package/dist/components/TreeRuler.js +3 -3
- package/dist/components/TreeRuler.js.map +1 -0
- package/dist/components/VerticalGuide.d.ts +7 -0
- package/dist/components/VerticalGuide.js +30 -0
- package/dist/components/VerticalGuide.js.map +1 -0
- package/dist/components/ZoomControls.d.ts +6 -0
- package/dist/components/ZoomControls.js +58 -0
- package/dist/components/ZoomControls.js.map +1 -0
- package/dist/components/data/seq2.d.ts +3 -3
- package/dist/components/data/seq2.js +33 -3
- package/dist/components/data/seq2.js.map +1 -0
- package/dist/components/dialogs/AboutDlg.d.ts +4 -0
- package/dist/components/dialogs/AboutDlg.js +40 -0
- package/dist/components/dialogs/AboutDlg.js.map +1 -0
- package/{bundle/components → dist/components/dialogs}/AddTrackDlg.d.ts +3 -3
- package/dist/components/dialogs/AddTrackDlg.js +26 -0
- package/dist/components/dialogs/AddTrackDlg.js.map +1 -0
- package/dist/components/{AnnotationDlg.d.ts → dialogs/AnnotationDlg.d.ts} +3 -3
- package/dist/components/dialogs/AnnotationDlg.js +65 -0
- package/dist/components/dialogs/AnnotationDlg.js.map +1 -0
- package/dist/components/dialogs/DetailsDlg.d.ts +7 -0
- package/dist/components/dialogs/DetailsDlg.js +13 -0
- package/dist/components/dialogs/DetailsDlg.js.map +1 -0
- package/dist/components/dialogs/MoreInfoDlg.d.ts +6 -0
- package/dist/components/dialogs/MoreInfoDlg.js +11 -0
- package/dist/components/dialogs/MoreInfoDlg.js.map +1 -0
- package/dist/components/dialogs/SettingsDlg.d.ts +7 -0
- package/dist/components/dialogs/SettingsDlg.js +48 -0
- package/dist/components/dialogs/SettingsDlg.js.map +1 -0
- package/dist/components/dialogs/TrackInfoDlg.d.ts +9 -0
- package/{bundle/components → dist/components/dialogs}/TrackInfoDlg.js +12 -13
- package/dist/components/dialogs/TrackInfoDlg.js.map +1 -0
- package/dist/components/dialogs/TracklistDlg.d.ts +7 -0
- package/dist/components/dialogs/TracklistDlg.js +18 -0
- package/dist/components/dialogs/TracklistDlg.js.map +1 -0
- package/{bundle/components/Ruler.d.ts → dist/components/util.d.ts} +1 -6
- package/dist/components/util.js +68 -0
- package/dist/components/util.js.map +1 -0
- package/dist/index.d.ts +2 -4
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -0
- package/dist/layout.js +14 -20
- package/dist/layout.js.map +1 -0
- package/dist/model.d.ts +114 -97
- package/dist/model.js +248 -486
- package/dist/model.js.map +1 -0
- package/dist/parseNewick.d.ts +1 -5
- package/dist/parseNewick.js +11 -8
- package/dist/parseNewick.js.map +1 -0
- package/dist/parsers/ClustalMSA.d.ts +6 -18
- package/dist/parsers/ClustalMSA.js +55 -64
- package/dist/parsers/ClustalMSA.js.map +1 -0
- package/dist/parsers/FastaMSA.d.ts +5 -12
- package/dist/parsers/FastaMSA.js +55 -64
- package/dist/parsers/FastaMSA.js.map +1 -0
- package/dist/parsers/StockholmMSA.d.ts +10 -17
- package/dist/parsers/StockholmMSA.js +81 -110
- package/dist/parsers/StockholmMSA.js.map +1 -0
- package/dist/util.d.ts +34 -7
- package/dist/util.js +76 -24
- package/dist/util.js.map +1 -0
- package/dist/version.d.ts +1 -0
- package/dist/version.js +2 -0
- package/dist/version.js.map +1 -0
- package/package.json +34 -34
- package/src/StructureModel.ts +11 -0
- package/src/UniprotTrack.ts +59 -0
- package/src/colorSchemes.ts +520 -0
- package/src/components/BoxTrack.tsx +33 -0
- package/src/components/BoxTrackBlock.tsx +198 -0
- package/src/components/Header.tsx +106 -0
- package/src/components/ImportForm.tsx +192 -0
- package/src/components/MSABlock.tsx +164 -0
- package/src/components/MSACanvas.tsx +142 -0
- package/src/components/MSAMouseoverCanvas.tsx +87 -0
- package/src/components/MSAView.tsx +88 -0
- package/src/components/MultiAlignmentSelector.tsx +33 -0
- package/src/components/ResizeHandles.tsx +137 -0
- package/src/components/Rubberband.tsx +270 -0
- package/src/components/Ruler.tsx +123 -0
- package/src/components/TextTrack.tsx +120 -0
- package/src/components/Track.tsx +153 -0
- package/src/components/TreeBranchMenu.tsx +67 -0
- package/src/components/TreeCanvas.tsx +128 -0
- package/src/components/TreeCanvasBlock.tsx +359 -0
- package/src/components/TreeMenu.tsx +105 -0
- package/src/components/TreeRuler.tsx +12 -0
- package/src/components/VerticalGuide.tsx +50 -0
- package/src/components/ZoomControls.tsx +78 -0
- package/src/components/data/seq2.ts +35 -0
- package/src/components/dialogs/AboutDlg.tsx +58 -0
- package/src/components/dialogs/AddTrackDlg.tsx +74 -0
- package/src/components/dialogs/AnnotationDlg.tsx +144 -0
- package/src/components/dialogs/DetailsDlg.tsx +28 -0
- package/src/components/dialogs/MoreInfoDlg.tsx +21 -0
- package/src/components/dialogs/SettingsDlg.tsx +154 -0
- package/src/components/dialogs/TrackInfoDlg.tsx +59 -0
- package/src/components/dialogs/TracklistDlg.tsx +59 -0
- package/src/components/util.ts +93 -0
- package/src/declare.d.ts +1 -0
- package/src/index.ts +2 -0
- package/src/layout.ts +83 -0
- package/src/model.ts +793 -0
- package/{bundle/parseNewick.d.ts → src/parseNewick.ts} +35 -5
- package/src/parsers/ClustalMSA.ts +79 -0
- package/src/parsers/FastaMSA.ts +82 -0
- package/src/parsers/StockholmMSA.ts +137 -0
- package/src/util.ts +142 -0
- package/src/version.ts +1 -0
- package/bundle/colorSchemes.d.ts +0 -16
- package/bundle/colorSchemes.js +0 -455
- package/bundle/components/AboutDlg.d.ts +0 -5
- package/bundle/components/AboutDlg.js +0 -47
- package/bundle/components/AddTrackDlg.js +0 -26
- package/bundle/components/AnnotationDlg.d.ts +0 -11
- package/bundle/components/AnnotationDlg.js +0 -77
- package/bundle/components/BoxTrack.d.ts +0 -7
- package/bundle/components/BoxTrack.js +0 -143
- package/bundle/components/DetailsDlg.d.ts +0 -8
- package/bundle/components/DetailsDlg.js +0 -12
- package/bundle/components/Header.d.ts +0 -6
- package/bundle/components/Header.js +0 -63
- package/bundle/components/ImportForm.d.ts +0 -6
- package/bundle/components/ImportForm.js +0 -89
- package/bundle/components/MSACanvas.d.ts +0 -6
- package/bundle/components/MSACanvas.js +0 -210
- package/bundle/components/MSAView.d.ts +0 -6
- package/bundle/components/MSAView.js +0 -88
- package/bundle/components/MoreInfoDlg.d.ts +0 -6
- package/bundle/components/MoreInfoDlg.js +0 -11
- package/bundle/components/ResizeHandles.d.ts +0 -8
- package/bundle/components/ResizeHandles.js +0 -110
- package/bundle/components/Rubberband.d.ts +0 -7
- package/bundle/components/Rubberband.js +0 -196
- package/bundle/components/Ruler.js +0 -121
- package/bundle/components/SettingsDlg.d.ts +0 -8
- package/bundle/components/SettingsDlg.js +0 -40
- package/bundle/components/TextTrack.d.ts +0 -7
- package/bundle/components/TextTrack.js +0 -72
- package/bundle/components/Track.d.ts +0 -11
- package/bundle/components/Track.js +0 -81
- package/bundle/components/TrackInfoDlg.d.ts +0 -6
- package/bundle/components/TracklistDlg.d.ts +0 -8
- package/bundle/components/TracklistDlg.js +0 -18
- package/bundle/components/TreeCanvas.d.ts +0 -6
- package/bundle/components/TreeCanvas.js +0 -431
- package/bundle/components/TreeRuler.d.ts +0 -6
- package/bundle/components/TreeRuler.js +0 -8
- package/bundle/components/data/seq2.d.ts +0 -3
- package/bundle/components/data/seq2.js +0 -3
- package/bundle/index.d.ts +0 -4
- package/bundle/layout.d.ts +0 -23
- package/bundle/layout.js +0 -53
- package/bundle/model.d.ts +0 -364
- package/bundle/model.js +0 -894
- package/bundle/parseNewick.js +0 -94
- package/bundle/parsers/ClustalMSA.d.ts +0 -39
- package/bundle/parsers/ClustalMSA.js +0 -77
- package/bundle/parsers/FastaMSA.d.ts +0 -26
- package/bundle/parsers/FastaMSA.js +0 -78
- package/bundle/parsers/StockholmMSA.d.ts +0 -75
- package/bundle/parsers/StockholmMSA.js +0 -142
- package/bundle/util.d.ts +0 -17
- package/bundle/util.js +0 -33
- package/dist/components/AboutDlg.d.ts +0 -5
- package/dist/components/AboutDlg.js +0 -50
- package/dist/components/AddTrackDlg.d.ts +0 -8
- package/dist/components/AddTrackDlg.js +0 -26
- package/dist/components/AnnotationDlg.js +0 -77
- package/dist/components/DetailsDlg.d.ts +0 -8
- package/dist/components/DetailsDlg.js +0 -12
- package/dist/components/MoreInfoDlg.d.ts +0 -6
- package/dist/components/MoreInfoDlg.js +0 -11
- package/dist/components/SettingsDlg.d.ts +0 -8
- package/dist/components/SettingsDlg.js +0 -40
- package/dist/components/TrackInfoDlg.d.ts +0 -6
- package/dist/components/TrackInfoDlg.js +0 -33
- package/dist/components/TracklistDlg.d.ts +0 -8
- package/dist/components/TracklistDlg.js +0 -18
- package/dist/components/package.json +0 -62
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare const StructureModel: import("mobx-state-tree").IModelType<{
|
|
2
|
+
id: import("mobx-state-tree").ISimpleType<string>;
|
|
3
|
+
structure: import("mobx-state-tree").IModelType<{
|
|
4
|
+
pdb: import("mobx-state-tree").ISimpleType<string>;
|
|
5
|
+
startPos: import("mobx-state-tree").ISimpleType<number>;
|
|
6
|
+
endPos: import("mobx-state-tree").ISimpleType<number>;
|
|
7
|
+
}, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
|
|
8
|
+
range: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
9
|
+
}, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { types } from 'mobx-state-tree';
|
|
2
|
+
export const StructureModel = types.model({
|
|
3
|
+
id: types.identifier,
|
|
4
|
+
structure: types.model({
|
|
5
|
+
pdb: types.string,
|
|
6
|
+
startPos: types.number,
|
|
7
|
+
endPos: types.number,
|
|
8
|
+
}),
|
|
9
|
+
range: types.maybe(types.string),
|
|
10
|
+
});
|
|
11
|
+
//# sourceMappingURL=StructureModel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StructureModel.js","sourceRoot":"","sources":["../src/StructureModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAEvC,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC;IACxC,EAAE,EAAE,KAAK,CAAC,UAAU;IACpB,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC;QACrB,GAAG,EAAE,KAAK,CAAC,MAAM;QACjB,QAAQ,EAAE,KAAK,CAAC,MAAM;QACtB,MAAM,EAAE,KAAK,CAAC,MAAM;KACrB,CAAC;IACF,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;CACjC,CAAC,CAAA"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export declare const UniprotTrack: import("mobx-state-tree").IModelType<{
|
|
2
|
+
id: import("mobx-state-tree").ISimpleType<string>;
|
|
3
|
+
accession: import("mobx-state-tree").ISimpleType<string>;
|
|
4
|
+
name: import("mobx-state-tree").ISimpleType<string>;
|
|
5
|
+
associatedRowName: import("mobx-state-tree").ISimpleType<string>;
|
|
6
|
+
height: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<number>, [undefined]>;
|
|
7
|
+
}, {
|
|
8
|
+
error: unknown;
|
|
9
|
+
data: string | undefined;
|
|
10
|
+
} & {
|
|
11
|
+
setError(error: unknown): void;
|
|
12
|
+
setData(data: string): void;
|
|
13
|
+
} & {
|
|
14
|
+
afterCreate(): void;
|
|
15
|
+
} & {
|
|
16
|
+
readonly loading: boolean;
|
|
17
|
+
readonly features: {
|
|
18
|
+
seq_id: string;
|
|
19
|
+
source: string;
|
|
20
|
+
type: string;
|
|
21
|
+
start: number;
|
|
22
|
+
end: number;
|
|
23
|
+
score: number;
|
|
24
|
+
strand: string;
|
|
25
|
+
phase: string;
|
|
26
|
+
}[] | undefined;
|
|
27
|
+
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { types, addDisposer } from 'mobx-state-tree';
|
|
2
|
+
import { autorun } from 'mobx';
|
|
3
|
+
// locals
|
|
4
|
+
import { parseGFF } from './util';
|
|
5
|
+
export const UniprotTrack = types
|
|
6
|
+
.model({
|
|
7
|
+
id: types.string,
|
|
8
|
+
accession: types.string,
|
|
9
|
+
name: types.string,
|
|
10
|
+
associatedRowName: types.string,
|
|
11
|
+
height: types.optional(types.number, 100),
|
|
12
|
+
})
|
|
13
|
+
.volatile(() => ({
|
|
14
|
+
error: undefined,
|
|
15
|
+
data: undefined,
|
|
16
|
+
}))
|
|
17
|
+
.actions(self => ({
|
|
18
|
+
setError(error) {
|
|
19
|
+
self.error = error;
|
|
20
|
+
},
|
|
21
|
+
setData(data) {
|
|
22
|
+
self.data = data;
|
|
23
|
+
},
|
|
24
|
+
}))
|
|
25
|
+
.actions(self => ({
|
|
26
|
+
afterCreate() {
|
|
27
|
+
addDisposer(self, autorun(async () => {
|
|
28
|
+
try {
|
|
29
|
+
const { accession } = self;
|
|
30
|
+
const accessionSansVersion = accession === null || accession === void 0 ? void 0 : accession.replace(/\.[^/.]+$/, '');
|
|
31
|
+
const url = `https://rest.uniprot.org/uniprotkb/${accessionSansVersion}.gff`;
|
|
32
|
+
const res = await fetch(url);
|
|
33
|
+
if (!res.ok) {
|
|
34
|
+
throw new Error(`HTTP ${res.status} fetching ${url}: ${await res.text()}`);
|
|
35
|
+
}
|
|
36
|
+
self.setData(await res.text());
|
|
37
|
+
}
|
|
38
|
+
catch (e) {
|
|
39
|
+
console.error(e);
|
|
40
|
+
self.setError(e);
|
|
41
|
+
}
|
|
42
|
+
}));
|
|
43
|
+
},
|
|
44
|
+
}))
|
|
45
|
+
.views(self => ({
|
|
46
|
+
get loading() {
|
|
47
|
+
return !self.data;
|
|
48
|
+
},
|
|
49
|
+
get features() {
|
|
50
|
+
return parseGFF(self.data);
|
|
51
|
+
},
|
|
52
|
+
}));
|
|
53
|
+
//# sourceMappingURL=UniprotTrack.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UniprotTrack.js","sourceRoot":"","sources":["../src/UniprotTrack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAE9B,SAAS;AACT,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAEjC,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK;KAC9B,KAAK,CAAC;IACL,EAAE,EAAE,KAAK,CAAC,MAAM;IAChB,SAAS,EAAE,KAAK,CAAC,MAAM;IACvB,IAAI,EAAE,KAAK,CAAC,MAAM;IAClB,iBAAiB,EAAE,KAAK,CAAC,MAAM;IAC/B,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC;CAC1C,CAAC;KACD,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;IACf,KAAK,EAAE,SAAoB;IAC3B,IAAI,EAAE,SAA+B;CACtC,CAAC,CAAC;KACF,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChB,QAAQ,CAAC,KAAc;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IACD,OAAO,CAAC,IAAY;QAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;CACF,CAAC,CAAC;KACF,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChB,WAAW;QACT,WAAW,CACT,IAAI,EACJ,OAAO,CAAC,KAAK,IAAI,EAAE;YACjB,IAAI;gBACF,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAA;gBAC1B,MAAM,oBAAoB,GAAG,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;gBAChE,MAAM,GAAG,GAAG,sCAAsC,oBAAoB,MAAM,CAAA;gBAC5E,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA;gBAC5B,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE;oBACX,MAAM,IAAI,KAAK,CACb,QAAQ,GAAG,CAAC,MAAM,aAAa,GAAG,KAAK,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,CAC1D,CAAA;iBACF;gBACD,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;aAC/B;YAAC,OAAO,CAAC,EAAE;gBACV,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;gBAChB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;aACjB;QACH,CAAC,CAAC,CACH,CAAA;IACH,CAAC;CACF,CAAC,CAAC;KACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACd,IAAI,OAAO;QACT,OAAO,CAAC,IAAI,CAAC,IAAI,CAAA;IACnB,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC5B,CAAC;CACF,CAAC,CAAC,CAAA"}
|
package/dist/colorSchemes.d.ts
CHANGED
|
@@ -1,16 +1,10 @@
|
|
|
1
1
|
declare const _default: {
|
|
2
|
-
[k: string]:
|
|
3
|
-
[key: string]: string;
|
|
4
|
-
};
|
|
2
|
+
[k: string]: Record<string, string>;
|
|
5
3
|
};
|
|
6
4
|
export default _default;
|
|
7
|
-
export declare function getClustalXColor(stats: {
|
|
8
|
-
[key: string]: number;
|
|
9
|
-
}, model: {
|
|
5
|
+
export declare function getClustalXColor(stats: Record<string, number>, model: {
|
|
10
6
|
columns: Record<string, string>;
|
|
11
|
-
}, row:
|
|
12
|
-
export declare function getPercentIdentityColor(stats: {
|
|
13
|
-
[key: string]: number;
|
|
14
|
-
}, model: {
|
|
7
|
+
}, row: string, col: number): "rgb(128,179,230)" | "#d88" | "rgb(192, 72, 192)" | "rgb(204, 77, 204)" | "#8f8" | "rgb(26,204,26)" | "rgb(240, 128, 128)" | "rgb(240, 144, 72)" | "rgb(204, 204, 0)" | "rgb(26, 179, 179)" | undefined;
|
|
8
|
+
export declare function getPercentIdentityColor(stats: Record<string, number>, model: {
|
|
15
9
|
columns: Record<string, string>;
|
|
16
|
-
}, row:
|
|
10
|
+
}, row: string, col: number): string | undefined;
|
package/dist/colorSchemes.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import Color from 'color';
|
|
2
2
|
import { transform } from './util';
|
|
3
|
-
|
|
3
|
+
const colorSchemes = {
|
|
4
4
|
clustal: {
|
|
5
5
|
G: 'orange',
|
|
6
6
|
P: 'orange',
|
|
@@ -62,7 +62,7 @@ var colorSchemes = {
|
|
|
62
62
|
T: 'red',
|
|
63
63
|
},
|
|
64
64
|
percent_identity_dynamic: {},
|
|
65
|
-
//https://github.com/biotite-dev/biotite/blob/8c460972f8ab904312f130dfb80f3efc8c9bd7c5/src/biotite/sequence/graphics/color_schemes/flower.json
|
|
65
|
+
// https://github.com/biotite-dev/biotite/blob/8c460972f8ab904312f130dfb80f3efc8c9bd7c5/src/biotite/sequence/graphics/color_schemes/flower.json
|
|
66
66
|
flower: {
|
|
67
67
|
A: '#b18a51',
|
|
68
68
|
C: '#ff5701',
|
|
@@ -92,7 +92,7 @@ var colorSchemes = {
|
|
|
92
92
|
T: '#f53737',
|
|
93
93
|
U: '#f53737',
|
|
94
94
|
},
|
|
95
|
-
//https://github.com/biotite-dev/biotite/blob/8c460972f8ab904312f130dfb80f3efc8c9bd7c5/src/biotite/sequence/graphics/color_schemes/clustalx_protein.json
|
|
95
|
+
// https://github.com/biotite-dev/biotite/blob/8c460972f8ab904312f130dfb80f3efc8c9bd7c5/src/biotite/sequence/graphics/color_schemes/clustalx_protein.json
|
|
96
96
|
clustalx_protein: {
|
|
97
97
|
A: '#197fe5',
|
|
98
98
|
C: '#e57f7f',
|
|
@@ -323,30 +323,24 @@ var colorSchemes = {
|
|
|
323
323
|
};
|
|
324
324
|
// turn all supplied colors to hex colors which getContrastText from mui
|
|
325
325
|
// requires
|
|
326
|
-
export default transform(colorSchemes,
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
transform(val, function (_a) {
|
|
331
|
-
var letter = _a[0], color = _a[1];
|
|
332
|
-
return [letter, Color(color).hex()];
|
|
333
|
-
}),
|
|
334
|
-
];
|
|
335
|
-
});
|
|
326
|
+
export default transform(colorSchemes, ([key, val]) => [
|
|
327
|
+
key,
|
|
328
|
+
transform(val, ([letter, color]) => [letter, Color(color).hex()]),
|
|
329
|
+
]);
|
|
336
330
|
// info http://www.jalview.org/help/html/colourSchemes/clustal.html
|
|
337
331
|
// modifications:
|
|
338
332
|
// reference to clustalX source code scheme modifies what the jalview.org
|
|
339
333
|
// scheme says there the jalview.org colorscheme says WLVIMAFCHP but it
|
|
340
334
|
// should be WLVIMAFCHPY, colprot.xml says e.g. %#ACFHILMVWYPp" which has Y
|
|
341
335
|
export function getClustalXColor(stats, model, row, col) {
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
336
|
+
const total = Object.values(stats).reduce((a, b) => a + b, 0);
|
|
337
|
+
const l = model.columns[row][col];
|
|
338
|
+
const { W = 0, L = 0, V = 0, I = 0, M = 0, A = 0, F = 0, C = 0, H = 0, P = 0, R = 0, K = 0, Q = 0, E = 0, D = 0, T = 0, S = 0, G = 0, Y = 0, N = 0, } = stats;
|
|
339
|
+
const WLVIMAFCHP = W + L + V + I + M + A + F + C + H + P + Y;
|
|
340
|
+
const KR = K + R;
|
|
341
|
+
const QE = Q + E;
|
|
342
|
+
const ED = E + D;
|
|
343
|
+
const TS = T + S;
|
|
350
344
|
if (WLVIMAFCHP / total > 0.6) {
|
|
351
345
|
if (l === 'W' ||
|
|
352
346
|
l === 'L' ||
|
|
@@ -434,22 +428,23 @@ export function getClustalXColor(stats, model, row, col) {
|
|
|
434
428
|
// scheme says there the jalview.org colorscheme says WLVIMAFCHP but it
|
|
435
429
|
// should be WLVIMAFCHPY, colprot.xml says e.g. %#ACFHILMVWYPp" which has Y
|
|
436
430
|
export function getPercentIdentityColor(stats, model, row, col) {
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
for (
|
|
443
|
-
if (
|
|
444
|
-
letter =
|
|
445
|
-
ent =
|
|
431
|
+
const total = Object.values(stats).reduce((a, b) => a + b, 0);
|
|
432
|
+
const l = model.columns[row][col];
|
|
433
|
+
const entries = Object.entries(stats);
|
|
434
|
+
let ent = 0;
|
|
435
|
+
let letter = '';
|
|
436
|
+
for (const entry of entries) {
|
|
437
|
+
if (entry[1] > ent && entry[0] !== '-') {
|
|
438
|
+
letter = entry[0];
|
|
439
|
+
ent = entry[1];
|
|
446
440
|
}
|
|
447
441
|
}
|
|
448
|
-
|
|
449
|
-
|
|
442
|
+
const proportion = ent / total;
|
|
443
|
+
const thresh = `hsl(240, 30%, ${100 * Math.max(1 - ent / total / 3, 0.3)}%)`;
|
|
450
444
|
if (proportion > 0.4) {
|
|
451
445
|
if (l === letter) {
|
|
452
446
|
return thresh;
|
|
453
447
|
}
|
|
454
448
|
}
|
|
455
449
|
}
|
|
450
|
+
//# sourceMappingURL=colorSchemes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"colorSchemes.js","sourceRoot":"","sources":["../src/colorSchemes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
import { MsaViewModel } from '../model';
|
|
3
|
-
declare const
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { IBoxTrack, MsaViewModel } from '../model';
|
|
3
|
+
declare const BoxTrack: ({ model, track, }: {
|
|
4
4
|
model: MsaViewModel;
|
|
5
|
-
track:
|
|
6
|
-
}) => JSX.Element;
|
|
7
|
-
export default
|
|
5
|
+
track: IBoxTrack;
|
|
6
|
+
}) => React.JSX.Element;
|
|
7
|
+
export default BoxTrack;
|
|
@@ -1,143 +1,15 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import { observer } from 'mobx-react';
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
var blockSize = model.blockSize, colWidth = model.colWidth, blanks = model.blanks, rowHeight = model.rowHeight, highResScaleFactor = model.highResScaleFactor, scrollX = model.scrollX;
|
|
8
|
-
var _b = track.model, height = _b.height, features = _b.features, associatedRowName = _b.associatedRowName;
|
|
9
|
-
var feats = isStateTreeNode(features)
|
|
10
|
-
? getSnapshot(features)
|
|
11
|
-
: features;
|
|
12
|
-
var layout = useMemo(function () {
|
|
13
|
-
var temp = new Layout();
|
|
14
|
-
feats === null || feats === void 0 ? void 0 : feats.forEach(function (feature, index) {
|
|
15
|
-
var start = feature.start, end = feature.end;
|
|
16
|
-
if (associatedRowName) {
|
|
17
|
-
var s = model.rowSpecificBpToPx(associatedRowName, start - 1);
|
|
18
|
-
var e = model.rowSpecificBpToPx(associatedRowName, end);
|
|
19
|
-
temp.addRect("".concat(index), s, e, rowHeight, feature);
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
var s = model.globalBpToPx(start - 1);
|
|
23
|
-
var e = model.globalBpToPx(end);
|
|
24
|
-
temp.addRect("".concat(index), s, e, rowHeight, feature);
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
return temp;
|
|
28
|
-
}, [rowHeight, feats, associatedRowName, model, blanks]);
|
|
29
|
-
var ref = useRef(null);
|
|
30
|
-
var labelRef = useRef(null);
|
|
31
|
-
var mouseoverRef = useRef(null);
|
|
32
|
-
useEffect(function () {
|
|
33
|
-
if (!ref.current) {
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
var ctx = ref.current.getContext('2d');
|
|
37
|
-
if (!ctx) {
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
ctx.resetTransform();
|
|
41
|
-
ctx.scale(highResScaleFactor, highResScaleFactor);
|
|
42
|
-
ctx.clearRect(0, 0, blockSize, height);
|
|
43
|
-
ctx.translate(-offsetX, 0);
|
|
44
|
-
ctx.textAlign = 'center';
|
|
45
|
-
ctx.font = ctx.font.replace(/\d+px/, "".concat(Math.max(8, rowHeight - 8), "px"));
|
|
46
|
-
var xStart = Math.max(0, Math.floor(offsetX / colWidth));
|
|
47
|
-
ctx.fillStyle = 'goldenrod';
|
|
48
|
-
layout.rectangles.forEach(function (value) {
|
|
49
|
-
var minX = value.minX, maxX = value.maxX, minY = value.minY, maxY = value.maxY;
|
|
50
|
-
var x1 = (minX - xStart) * colWidth + offsetX - (offsetX % colWidth);
|
|
51
|
-
var x2 = (maxX - xStart) * colWidth + offsetX - (offsetX % colWidth);
|
|
52
|
-
if (x2 - x1 > 0) {
|
|
53
|
-
ctx.fillRect(x1, minY, x2 - x1, (maxY - minY) / 2);
|
|
54
|
-
}
|
|
55
|
-
});
|
|
56
|
-
}, [
|
|
57
|
-
associatedRowName,
|
|
58
|
-
blockSize,
|
|
59
|
-
colWidth,
|
|
60
|
-
layout.rectangles,
|
|
61
|
-
model,
|
|
62
|
-
rowHeight,
|
|
63
|
-
height,
|
|
64
|
-
offsetX,
|
|
65
|
-
highResScaleFactor,
|
|
66
|
-
features,
|
|
67
|
-
blanks,
|
|
68
|
-
]);
|
|
69
|
-
useEffect(function () {
|
|
70
|
-
if (!labelRef.current) {
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
var ctx = labelRef.current.getContext('2d');
|
|
74
|
-
if (!ctx) {
|
|
75
|
-
return;
|
|
76
|
-
}
|
|
77
|
-
// this logic is very similar to MSACanvas
|
|
78
|
-
ctx.resetTransform();
|
|
79
|
-
ctx.scale(highResScaleFactor, highResScaleFactor);
|
|
80
|
-
ctx.clearRect(0, 0, blockSize, height);
|
|
81
|
-
ctx.translate(-offsetX, 0);
|
|
82
|
-
ctx.textAlign = 'center';
|
|
83
|
-
ctx.font = ctx.font.replace(/\d+px/, "".concat(Math.max(8, rowHeight - 8), "px"));
|
|
84
|
-
ctx.fillStyle = 'black';
|
|
85
|
-
ctx.textAlign = 'left';
|
|
86
|
-
layout.rectangles.forEach(function (value) {
|
|
87
|
-
var _a, _b, _c, _d;
|
|
88
|
-
var minX = value.minX, maxX = value.maxX, maxY = value.maxY, minY = value.minY;
|
|
89
|
-
var feature = value.data;
|
|
90
|
-
var x1 = minX * colWidth;
|
|
91
|
-
var x2 = maxX * colWidth;
|
|
92
|
-
if (x2 - x1 > 0) {
|
|
93
|
-
var note = (_b = (_a = feature.attributes) === null || _a === void 0 ? void 0 : _a.Note) === null || _b === void 0 ? void 0 : _b[0];
|
|
94
|
-
var name_1 = (_d = (_c = feature.attributes) === null || _c === void 0 ? void 0 : _c.Name) === null || _d === void 0 ? void 0 : _d[0];
|
|
95
|
-
var type = feature.type;
|
|
96
|
-
ctx.fillText([type, name_1, note].filter(function (f) { return !!f; }).join(' - '), Math.max(Math.min(-scrollX, x2), x1), minY + (maxY - minY));
|
|
97
|
-
}
|
|
98
|
-
});
|
|
99
|
-
}, [
|
|
100
|
-
blockSize,
|
|
101
|
-
colWidth,
|
|
102
|
-
scrollX,
|
|
103
|
-
highResScaleFactor,
|
|
104
|
-
height,
|
|
105
|
-
layout.rectangles,
|
|
106
|
-
offsetX,
|
|
107
|
-
features,
|
|
108
|
-
model,
|
|
109
|
-
rowHeight,
|
|
110
|
-
blanks,
|
|
111
|
-
]);
|
|
112
|
-
return !features ? null : (React.createElement(React.Fragment, null,
|
|
113
|
-
React.createElement("canvas", { ref: ref, height: height * highResScaleFactor, width: blockSize * highResScaleFactor, style: {
|
|
114
|
-
position: 'absolute',
|
|
115
|
-
left: scrollX + offsetX,
|
|
116
|
-
width: blockSize,
|
|
117
|
-
height: height,
|
|
118
|
-
} }),
|
|
119
|
-
React.createElement("canvas", { ref: labelRef, height: height * highResScaleFactor, width: blockSize * highResScaleFactor, style: {
|
|
120
|
-
position: 'absolute',
|
|
121
|
-
left: scrollX + offsetX,
|
|
122
|
-
width: blockSize,
|
|
123
|
-
height: height,
|
|
124
|
-
} }),
|
|
125
|
-
React.createElement("canvas", { ref: mouseoverRef, height: height * highResScaleFactor, width: blockSize * highResScaleFactor, style: {
|
|
126
|
-
position: 'absolute',
|
|
127
|
-
left: scrollX + offsetX,
|
|
128
|
-
width: blockSize,
|
|
129
|
-
height: height,
|
|
130
|
-
} })));
|
|
131
|
-
});
|
|
132
|
-
var AnnotationTrack = observer(function (_a) {
|
|
133
|
-
var model = _a.model, track = _a.track;
|
|
134
|
-
var blocksX = model.blocksX, msaAreaWidth = model.msaAreaWidth;
|
|
135
|
-
var height = track.model.height;
|
|
3
|
+
import BoxTrackBlock from './BoxTrackBlock';
|
|
4
|
+
const BoxTrack = observer(function ({ model, track, }) {
|
|
5
|
+
const { blocksX, msaAreaWidth } = model;
|
|
6
|
+
const { height } = track.model;
|
|
136
7
|
return (React.createElement("div", { style: {
|
|
137
8
|
position: 'relative',
|
|
138
|
-
height
|
|
9
|
+
height,
|
|
139
10
|
width: msaAreaWidth,
|
|
140
11
|
overflow: 'hidden',
|
|
141
|
-
} }, blocksX.map(
|
|
12
|
+
} }, blocksX.map(bx => (React.createElement(BoxTrackBlock, { track: track, key: bx, model: model, offsetX: bx })))));
|
|
142
13
|
});
|
|
143
|
-
export default
|
|
14
|
+
export default BoxTrack;
|
|
15
|
+
//# sourceMappingURL=BoxTrack.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BoxTrack.js","sourceRoot":"","sources":["../../src/components/BoxTrack.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAIrC,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAE3C,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,EAClC,KAAK,EACL,KAAK,GAIN;IACC,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,KAAK,CAAA;IACvC,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAA;IAC9B,OAAO,CACL,6BACE,KAAK,EAAE;YACL,QAAQ,EAAE,UAAU;YACpB,MAAM;YACN,KAAK,EAAE,YAAY;YACnB,QAAQ,EAAE,QAAQ;SACnB,IAEA,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CACjB,oBAAC,aAAa,IAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,GAAI,CACpE,CAAC,CACE,CACP,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,QAAQ,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { IBoxTrack, MsaViewModel } from '../model';
|
|
3
|
+
declare const BoxTrackBlock: ({ track, model, offsetX, }: {
|
|
4
|
+
track: IBoxTrack;
|
|
5
|
+
model: MsaViewModel;
|
|
6
|
+
offsetX: number;
|
|
7
|
+
}) => React.JSX.Element | null;
|
|
8
|
+
export default BoxTrackBlock;
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import React, { useRef, useMemo, useEffect } from 'react';
|
|
2
|
+
import { observer } from 'mobx-react';
|
|
3
|
+
import { getSnapshot, isStateTreeNode } from 'mobx-state-tree';
|
|
4
|
+
import Layout from '../layout';
|
|
5
|
+
const BoxTrackBlock = observer(function ({ track, model, offsetX, }) {
|
|
6
|
+
const { blockSize, colWidth, blanks, rowHeight, highResScaleFactor, scrollX, } = model;
|
|
7
|
+
const { height, features, associatedRowName } = track.model;
|
|
8
|
+
const feats = isStateTreeNode(features)
|
|
9
|
+
? // @ts-expect-error
|
|
10
|
+
getSnapshot(features)
|
|
11
|
+
: features;
|
|
12
|
+
const layout = useMemo(() => {
|
|
13
|
+
const temp = new Layout();
|
|
14
|
+
feats === null || feats === void 0 ? void 0 : feats.forEach((feature, index) => {
|
|
15
|
+
const { start, end } = feature;
|
|
16
|
+
if (associatedRowName) {
|
|
17
|
+
const s = model.rowSpecificBpToPx(associatedRowName, start - 1);
|
|
18
|
+
const e = model.rowSpecificBpToPx(associatedRowName, end);
|
|
19
|
+
temp.addRect(`${index}`, s, e, rowHeight, feature);
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
const s = model.globalBpToPx(start - 1);
|
|
23
|
+
const e = model.globalBpToPx(end);
|
|
24
|
+
temp.addRect(`${index}`, s, e, rowHeight, feature);
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
return temp;
|
|
28
|
+
// might convert to autorun based drawing
|
|
29
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
30
|
+
}, [rowHeight, feats, associatedRowName, model, blanks]);
|
|
31
|
+
const ref = useRef(null);
|
|
32
|
+
const labelRef = useRef(null);
|
|
33
|
+
const mouseoverRef = useRef(null);
|
|
34
|
+
useEffect(() => {
|
|
35
|
+
if (!ref.current) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
const ctx = ref.current.getContext('2d');
|
|
39
|
+
if (!ctx) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
ctx.resetTransform();
|
|
43
|
+
ctx.scale(highResScaleFactor, highResScaleFactor);
|
|
44
|
+
ctx.clearRect(0, 0, blockSize, height);
|
|
45
|
+
ctx.translate(-offsetX, 0);
|
|
46
|
+
ctx.textAlign = 'center';
|
|
47
|
+
ctx.font = ctx.font.replace(/\d+px/, `${Math.max(8, rowHeight - 8)}px`);
|
|
48
|
+
const xStart = Math.max(0, Math.floor(offsetX / colWidth));
|
|
49
|
+
ctx.fillStyle = 'goldenrod';
|
|
50
|
+
layout.rectangles.forEach(value => {
|
|
51
|
+
const { minX, maxX, minY, maxY } = value;
|
|
52
|
+
const x1 = (minX - xStart) * colWidth + offsetX - (offsetX % colWidth);
|
|
53
|
+
const x2 = (maxX - xStart) * colWidth + offsetX - (offsetX % colWidth);
|
|
54
|
+
if (x2 - x1 > 0) {
|
|
55
|
+
ctx.fillRect(x1, minY, x2 - x1, (maxY - minY) / 2);
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
}, [
|
|
59
|
+
associatedRowName,
|
|
60
|
+
blockSize,
|
|
61
|
+
colWidth,
|
|
62
|
+
layout.rectangles,
|
|
63
|
+
model,
|
|
64
|
+
rowHeight,
|
|
65
|
+
height,
|
|
66
|
+
offsetX,
|
|
67
|
+
highResScaleFactor,
|
|
68
|
+
features,
|
|
69
|
+
blanks,
|
|
70
|
+
]);
|
|
71
|
+
useEffect(() => {
|
|
72
|
+
var _a, _b, _c, _d;
|
|
73
|
+
if (!labelRef.current) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
const ctx = labelRef.current.getContext('2d');
|
|
77
|
+
if (!ctx) {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
// this logic is very similar to MSACanvas
|
|
81
|
+
ctx.resetTransform();
|
|
82
|
+
ctx.scale(highResScaleFactor, highResScaleFactor);
|
|
83
|
+
ctx.clearRect(0, 0, blockSize, height);
|
|
84
|
+
ctx.translate(-offsetX, 0);
|
|
85
|
+
ctx.textAlign = 'center';
|
|
86
|
+
ctx.font = ctx.font.replace(/\d+px/, `${Math.max(8, rowHeight - 8)}px`);
|
|
87
|
+
ctx.fillStyle = 'black';
|
|
88
|
+
ctx.textAlign = 'left';
|
|
89
|
+
for (const value of layout.rectangles.values()) {
|
|
90
|
+
const { minX, maxX, maxY, minY, data } = value;
|
|
91
|
+
const x1 = minX * colWidth;
|
|
92
|
+
const x2 = maxX * colWidth;
|
|
93
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
94
|
+
const feature = data;
|
|
95
|
+
if (x2 - x1 > 0) {
|
|
96
|
+
const note = (_b = (_a = feature.attributes) === null || _a === void 0 ? void 0 : _a.Note) === null || _b === void 0 ? void 0 : _b[0];
|
|
97
|
+
const name = (_d = (_c = feature.attributes) === null || _c === void 0 ? void 0 : _c.Name) === null || _d === void 0 ? void 0 : _d[0];
|
|
98
|
+
const type = feature.type;
|
|
99
|
+
ctx.fillText([type, name, note].filter(f => !!f).join(' - '), Math.max(Math.min(-scrollX, x2), x1), minY + (maxY - minY));
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}, [
|
|
103
|
+
blockSize,
|
|
104
|
+
colWidth,
|
|
105
|
+
scrollX,
|
|
106
|
+
highResScaleFactor,
|
|
107
|
+
height,
|
|
108
|
+
layout.rectangles,
|
|
109
|
+
offsetX,
|
|
110
|
+
features,
|
|
111
|
+
model,
|
|
112
|
+
rowHeight,
|
|
113
|
+
blanks,
|
|
114
|
+
]);
|
|
115
|
+
return !features ? null : (React.createElement(React.Fragment, null,
|
|
116
|
+
React.createElement("canvas", { ref: ref, height: height * highResScaleFactor, width: blockSize * highResScaleFactor, style: {
|
|
117
|
+
position: 'absolute',
|
|
118
|
+
left: scrollX + offsetX,
|
|
119
|
+
width: blockSize,
|
|
120
|
+
height,
|
|
121
|
+
} }),
|
|
122
|
+
React.createElement("canvas", { ref: labelRef, height: height * highResScaleFactor, width: blockSize * highResScaleFactor, style: {
|
|
123
|
+
position: 'absolute',
|
|
124
|
+
left: scrollX + offsetX,
|
|
125
|
+
width: blockSize,
|
|
126
|
+
height,
|
|
127
|
+
} }),
|
|
128
|
+
React.createElement("canvas", { ref: mouseoverRef, height: height * highResScaleFactor, width: blockSize * highResScaleFactor, style: {
|
|
129
|
+
position: 'absolute',
|
|
130
|
+
left: scrollX + offsetX,
|
|
131
|
+
width: blockSize,
|
|
132
|
+
height,
|
|
133
|
+
} })));
|
|
134
|
+
});
|
|
135
|
+
export default BoxTrackBlock;
|
|
136
|
+
//# sourceMappingURL=BoxTrackBlock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BoxTrackBlock.js","sourceRoot":"","sources":["../../src/components/BoxTrackBlock.tsx"],"names":[],"mappings":"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"}
|