@genome-spy/core 0.63.0 → 0.65.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/bundle/{index-CCJIjehY.js → AbortablePromiseCache-CcuMrnn7.js} +22 -91
- package/dist/bundle/browser-txUcLy2H.js +123 -0
- package/dist/bundle/index-BQpbYrv4.js +1712 -0
- package/dist/bundle/index-BhtHKLUo.js +73 -0
- package/dist/bundle/index-C0llXMqm.js +280 -0
- package/dist/bundle/index-CCe8rnZz.js +716 -0
- package/dist/bundle/index-CD7FLu9x.js +269 -0
- package/dist/bundle/{index-C08YCM2T.js → index-D-w7Mmt9.js} +246 -126
- package/dist/bundle/index-D74H8TTz.js +508 -0
- package/dist/bundle/index-DhcU-Gk-.js +1487 -0
- package/dist/bundle/index.es.js +5394 -4989
- package/dist/bundle/index.js +420 -362
- package/dist/bundle/inflate-DRgHi_KK.js +1050 -0
- package/dist/schema.json +93 -13
- package/dist/src/data/collector.d.ts +7 -2
- package/dist/src/data/collector.d.ts.map +1 -1
- package/dist/src/data/collector.js +13 -2
- package/dist/src/data/dataFlow.d.ts +20 -42
- package/dist/src/data/dataFlow.d.ts.map +1 -1
- package/dist/src/data/dataFlow.js +57 -80
- package/dist/src/data/dataFlow.test.js +35 -2
- package/dist/src/data/flowHandle.d.ts +15 -0
- package/dist/src/data/flowHandle.d.ts.map +1 -0
- package/dist/src/data/flowHandle.js +13 -0
- package/dist/src/data/flowInit.d.ts +85 -0
- package/dist/src/data/flowInit.d.ts.map +1 -0
- package/dist/src/data/flowInit.js +238 -0
- package/dist/src/data/flowInit.test.d.ts +2 -0
- package/dist/src/data/flowInit.test.d.ts.map +1 -0
- package/dist/src/data/flowInit.test.js +413 -0
- package/dist/src/data/flowOptimizer.d.ts +6 -4
- package/dist/src/data/flowOptimizer.d.ts.map +1 -1
- package/dist/src/data/flowOptimizer.js +29 -14
- package/dist/src/data/flowOptimizer.test.js +20 -15
- package/dist/src/data/sources/lazy/bamSource.js +1 -1
- package/dist/src/data/sources/lazy/bigBedSource.js +1 -1
- package/dist/src/data/sources/lazy/bigWigSource.js +1 -1
- package/dist/src/data/sources/lazy/gff3Source.d.ts +2 -6
- package/dist/src/data/sources/lazy/gff3Source.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/gff3Source.js +4 -8
- package/dist/src/data/sources/lazy/indexedFastaSource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/indexedFastaSource.js +17 -17
- package/dist/src/data/sources/lazy/tabixSource.js +1 -1
- package/dist/src/genomeSpy.d.ts +1 -1
- package/dist/src/genomeSpy.d.ts.map +1 -1
- package/dist/src/genomeSpy.js +18 -61
- package/dist/src/gl/webGLHelper.d.ts.map +1 -1
- package/dist/src/gl/webGLHelper.js +8 -0
- package/dist/src/marks/link.fragment.glsl.js +1 -1
- package/dist/src/marks/link.vertex.glsl.js +1 -1
- package/dist/src/marks/mark.d.ts +1 -0
- package/dist/src/marks/mark.d.ts.map +1 -1
- package/dist/src/marks/mark.js +22 -1
- package/dist/src/marks/point.fragment.glsl.js +1 -1
- package/dist/src/marks/point.vertex.glsl.js +1 -1
- package/dist/src/marks/rect.fragment.glsl.js +1 -1
- package/dist/src/marks/rect.vertex.glsl.js +1 -1
- package/dist/src/marks/rule.fragment.glsl.js +1 -1
- package/dist/src/marks/rule.vertex.glsl.js +1 -1
- package/dist/src/marks/text.fragment.glsl.js +1 -1
- package/dist/src/marks/text.vertex.glsl.js +1 -1
- package/dist/src/selection/selection.d.ts +5 -0
- package/dist/src/selection/selection.d.ts.map +1 -1
- package/dist/src/selection/selection.js +43 -6
- package/dist/src/selection/selection.test.d.ts +2 -0
- package/dist/src/selection/selection.test.d.ts.map +1 -0
- package/dist/src/selection/selection.test.js +14 -0
- package/dist/src/spec/parameter.d.ts +28 -2
- package/dist/src/spec/sampleView.d.ts +3 -2
- package/dist/src/styles/{genome-spy.scss → genome-spy.css} +25 -21
- package/dist/src/styles/genome-spy.css.d.ts +1 -1
- package/dist/src/styles/genome-spy.css.d.ts.map +1 -1
- package/dist/src/styles/genome-spy.css.js +264 -195
- package/dist/src/styles/update.sh +14 -4
- package/dist/src/types/viewContext.d.ts +1 -1
- package/dist/src/utils/expression.d.ts +5 -0
- package/dist/src/utils/expression.d.ts.map +1 -1
- package/dist/src/utils/expression.js +37 -0
- package/dist/src/utils/interactionEvent.d.ts +18 -1
- package/dist/src/utils/interactionEvent.d.ts.map +1 -1
- package/dist/src/utils/interactionEvent.js +101 -1
- package/dist/src/utils/interactionEvent.test.d.ts +2 -0
- package/dist/src/utils/interactionEvent.test.d.ts.map +1 -0
- package/dist/src/utils/interactionEvent.test.js +35 -0
- package/dist/src/view/axisResolution.d.ts +5 -0
- package/dist/src/view/axisResolution.d.ts.map +1 -1
- package/dist/src/view/axisResolution.js +16 -1
- package/dist/src/view/facetView.d.ts +1 -1
- package/dist/src/view/facetView.d.ts.map +1 -1
- package/dist/src/view/facetView.js +1 -0
- package/dist/src/view/flowBuilder.d.ts +2 -2
- package/dist/src/view/flowBuilder.d.ts.map +1 -1
- package/dist/src/view/flowBuilder.js +21 -4
- package/dist/src/view/gridView/gridView.d.ts.map +1 -1
- package/dist/src/view/gridView/gridView.js +13 -0
- package/dist/src/view/gridView/selectionRect.d.ts +8 -4
- package/dist/src/view/gridView/selectionRect.d.ts.map +1 -1
- package/dist/src/view/gridView/selectionRect.js +28 -3
- package/dist/src/view/gridView/selectionRect.test.d.ts +2 -0
- package/dist/src/view/gridView/selectionRect.test.d.ts.map +1 -0
- package/dist/src/view/gridView/selectionRect.test.js +87 -0
- package/dist/src/view/paramMediator.d.ts +2 -1
- package/dist/src/view/paramMediator.d.ts.map +1 -1
- package/dist/src/view/paramMediator.js +13 -1
- package/dist/src/view/paramMediator.test.js +22 -0
- package/dist/src/view/scaleResolution.d.ts +5 -0
- package/dist/src/view/scaleResolution.d.ts.map +1 -1
- package/dist/src/view/scaleResolution.js +10 -0
- package/dist/src/view/testUtils.d.ts.map +1 -1
- package/dist/src/view/testUtils.js +16 -4
- package/dist/src/view/unitView.d.ts.map +1 -1
- package/dist/src/view/unitView.js +103 -10
- package/dist/src/view/view.d.ts +17 -1
- package/dist/src/view/view.d.ts.map +1 -1
- package/dist/src/view/view.js +57 -1
- package/dist/src/view/viewDispose.test.d.ts +2 -0
- package/dist/src/view/viewDispose.test.d.ts.map +1 -0
- package/dist/src/view/viewDispose.test.js +110 -0
- package/dist/src/view/viewUtils.d.ts +4 -4
- package/dist/src/view/viewUtils.d.ts.map +1 -1
- package/dist/src/view/viewUtils.js +19 -15
- package/dist/src/view/viewUtils.test.d.ts +2 -0
- package/dist/src/view/viewUtils.test.d.ts.map +1 -0
- package/dist/src/view/viewUtils.test.js +87 -0
- package/package.json +16 -16
- package/dist/bundle/__vite-browser-external-C--ziKoh.js +0 -8
- package/dist/bundle/_commonjsHelpers-DjF3Plf2.js +0 -26
- package/dist/bundle/index-5ajWdKly.js +0 -1319
- package/dist/bundle/index-B03-Om4z.js +0 -274
- package/dist/bundle/index-BftNdA0O.js +0 -27
- package/dist/bundle/index-Bg7C4Xat.js +0 -2750
- package/dist/bundle/index-C3QR8Lv6.js +0 -2131
- package/dist/bundle/index-DTcHjAHp.js +0 -505
- package/dist/bundle/index-DnIkxb0L.js +0 -1025
- package/dist/bundle/index-Ww3TAo6_.js +0 -71
- package/dist/bundle/index-g8iXgW0W.js +0 -651
- package/dist/bundle/long-B-FASCSo.js +0 -2387
- package/dist/bundle/remoteFile-BuaqFGWk.js +0 -94
|
@@ -166,9 +166,27 @@ export type SelectionInitInterval =
|
|
|
166
166
|
|
|
167
167
|
export type InteractionEventType = "click" | "dblclick" | "mouseover";
|
|
168
168
|
|
|
169
|
+
// TODO: merge with InteractionEventType
|
|
170
|
+
export type DomEventType = "click" | "dblclick" | "mouseover" | "pointerover";
|
|
171
|
+
|
|
172
|
+
export interface EventConfig {
|
|
173
|
+
/**
|
|
174
|
+
* The type of event to listen to. For example, `"click"` or `"mouseover"`.
|
|
175
|
+
*/
|
|
176
|
+
type: DomEventType;
|
|
177
|
+
|
|
178
|
+
/**
|
|
179
|
+
* An optional filter expression to further filter events of the specified type.
|
|
180
|
+
* The expression can only refer to the event object as `event`, and should
|
|
181
|
+
* evaluate to a boolean value indicating whether to include the event.
|
|
182
|
+
* No other data or parameters are in scope.
|
|
183
|
+
*/
|
|
184
|
+
filter?: string;
|
|
185
|
+
}
|
|
186
|
+
|
|
169
187
|
export interface BaseSelectionConfig<T extends SelectionType = SelectionType> {
|
|
170
188
|
/**
|
|
171
|
-
*
|
|
189
|
+
* The selection type.
|
|
172
190
|
*
|
|
173
191
|
* - `"point"` -- to select multiple discrete data values; the first value is selected on `click` and additional values toggled on shift-click.
|
|
174
192
|
* - `"interval"` -- to select a continuous range of data values on `drag`.
|
|
@@ -176,8 +194,16 @@ export interface BaseSelectionConfig<T extends SelectionType = SelectionType> {
|
|
|
176
194
|
type: T;
|
|
177
195
|
|
|
178
196
|
/**
|
|
197
|
+
* A string or object that defines the events to which the selection should listen.
|
|
198
|
+
*/
|
|
199
|
+
on?: DomEventType | EventConfig | string;
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
* A string or object that defines the events that should clear the selection.
|
|
203
|
+
*
|
|
204
|
+
* __Default value:__ `"dblclick"`
|
|
179
205
|
*/
|
|
180
|
-
|
|
206
|
+
clear?: DomEventType | EventConfig | string | boolean;
|
|
181
207
|
}
|
|
182
208
|
|
|
183
209
|
export interface PointSelectionConfig extends BaseSelectionConfig<"point"> {
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { Type } from "./channel.js";
|
|
2
1
|
import { Data } from "./data.js";
|
|
3
2
|
import { Align, FontStyle, FontWeight } from "./font.js";
|
|
4
3
|
import { Scale } from "./scale.js";
|
|
@@ -31,11 +30,13 @@ export interface SampleSpec extends ViewSpecBase {
|
|
|
31
30
|
stickySummaries?: boolean;
|
|
32
31
|
}
|
|
33
32
|
|
|
33
|
+
export type SampleAttributeType = "nominal" | "ordinal" | "quantitative";
|
|
34
|
+
|
|
34
35
|
export interface SampleAttributeDef {
|
|
35
36
|
/**
|
|
36
37
|
* The attribute type. One of `"nominal"`, `"ordinal"`, or `"quantitative"`.
|
|
37
38
|
*/
|
|
38
|
-
type?:
|
|
39
|
+
type?: SampleAttributeType;
|
|
39
40
|
|
|
40
41
|
/**
|
|
41
42
|
* Scale definition for the (default) color channel
|
|
@@ -1,12 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
:root {
|
|
2
|
+
--genome-spy-basic-spacing: 10px;
|
|
3
|
+
--genome-spy-font-family: system-ui, "Segoe UI", Roboto, Helvetica, Arial,
|
|
4
|
+
sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
|
5
|
+
}
|
|
4
6
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
+
@keyframes genome-spy-blinker {
|
|
8
|
+
50% {
|
|
9
|
+
opacity: 0;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
7
12
|
|
|
8
13
|
.genome-spy {
|
|
9
|
-
font-family:
|
|
14
|
+
font-family: var(--genome-spy-font-family);
|
|
10
15
|
|
|
11
16
|
position: relative;
|
|
12
17
|
|
|
@@ -58,13 +63,7 @@ $font-family: system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif,
|
|
|
58
63
|
opacity: 1;
|
|
59
64
|
|
|
60
65
|
.ellipsis {
|
|
61
|
-
animation: blinker 1s linear infinite;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
@keyframes blinker {
|
|
65
|
-
50% {
|
|
66
|
-
opacity: 0;
|
|
67
|
-
}
|
|
66
|
+
animation: genome-spy-blinker 1s linear infinite;
|
|
68
67
|
}
|
|
69
68
|
}
|
|
70
69
|
}
|
|
@@ -119,10 +118,12 @@ $font-family: system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif,
|
|
|
119
118
|
max-width: 450px;
|
|
120
119
|
overflow: hidden;
|
|
121
120
|
|
|
122
|
-
|
|
123
|
-
background:
|
|
124
|
-
padding:
|
|
125
|
-
|
|
121
|
+
--background-color: #f6f6f6;
|
|
122
|
+
background: var(--background-color);
|
|
123
|
+
padding: var(--genome-spy-basic-spacing);
|
|
124
|
+
|
|
125
|
+
--font-size: 12px;
|
|
126
|
+
font-size: var(--font-size);
|
|
126
127
|
|
|
127
128
|
box-shadow: 0px 3px 15px 0px rgba(0, 0, 0, 0.21);
|
|
128
129
|
|
|
@@ -147,9 +148,11 @@ $font-family: system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif,
|
|
|
147
148
|
}
|
|
148
149
|
|
|
149
150
|
> .title {
|
|
150
|
-
padding-bottom:
|
|
151
|
-
margin-bottom:
|
|
152
|
-
border-bottom: 1px dashed
|
|
151
|
+
padding-bottom: calc(var(--genome-spy-basic-spacing) / 2);
|
|
152
|
+
margin-bottom: calc(var(--genome-spy-basic-spacing) / 2);
|
|
153
|
+
border-bottom: 1px dashed var(--background-color);
|
|
154
|
+
border-bottom: 1px dashed
|
|
155
|
+
color-mix(in srgb, black 25%, var(--background-color));
|
|
153
156
|
}
|
|
154
157
|
|
|
155
158
|
.summary {
|
|
@@ -167,6 +170,7 @@ $font-family: system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif,
|
|
|
167
170
|
td {
|
|
168
171
|
padding: 2px 0.4em;
|
|
169
172
|
vertical-align: top;
|
|
173
|
+
font-size: var(--font-size);
|
|
170
174
|
|
|
171
175
|
&:first-child {
|
|
172
176
|
padding-left: 0;
|
|
@@ -264,5 +268,5 @@ $font-family: system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif,
|
|
|
264
268
|
.gs-input-bindings {
|
|
265
269
|
flex-basis: content;
|
|
266
270
|
font-size: 14px;
|
|
267
|
-
padding:
|
|
271
|
+
padding: var(--genome-spy-basic-spacing);
|
|
268
272
|
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export default css;
|
|
2
|
-
declare const css: "\n
|
|
2
|
+
declare const css: "\n:root {\n--genome-spy-basic-spacing: 10px;\n--genome-spy-font-family: system-ui, \"Segoe UI\", Roboto, Helvetica, Arial,\nsans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n}\n\n@keyframes genome-spy-blinker {\n50% {\nopacity: 0;\n}\n}\n\n.genome-spy {\nfont-family: var(--genome-spy-font-family);\n\nposition: relative;\n\ndisplay: flex;\nflex-direction: column;\n\n.canvas-wrapper {\nposition: relative;\nflex-grow: 1;\noverflow: hidden;\n}\n\ncanvas {\ndisplay: block;\ntransform: scale(1, 1);\nopacity: 1;\ntransition:\ntransform 0.6s,\nopacity 0.6s;\n\n&:focus,\n&:focus-visible {\noutline: none;\n}\n}\n\n.loading-message {\nposition: absolute;\ninset: 0;\ndisplay: flex;\n\nalign-items: center;\njustify-content: center;\n\n.message {\ncolor: #666;\nopacity: 0;\ntransition: opacity 0.7s;\n}\n}\n\n.loading {\n> canvas {\ntransform: scale(0.95, 0.95);\nopacity: 0;\n}\n\n> .loading-message .message {\nopacity: 1;\n\n.ellipsis {\nanimation: genome-spy-blinker 1s linear infinite;\n}\n}\n}\n\n.loading-indicators {\nposition: absolute;\ninset: 0;\n\nuser-select: none;\npointer-events: none;\n\ndiv {\nposition: absolute;\ndisplay: flex;\nalign-items: center;\njustify-content: center;\n\n> div {\nfont-size: 11px;\ntransition: opacity 0.2s;\nbackground: white;\npadding: 2px 5px;\ndisplay: flex;\nborder-radius: 3px;\ngap: 0.5em;\nopacity: 0;\n\n&.loading {\nopacity: 0.5;\n}\n\n&.error {\nopacity: 0.8;\ncolor: firebrick;\n}\n\n> * {\ndisplay: block;\n}\n\nimg {\nwidth: 1.5em;\nheight: 1.5em;\n}\n}\n}\n}\n\n.tooltip {\nposition: absolute;\n\nmax-width: 450px;\noverflow: hidden;\n\n--background-color: #f6f6f6;\nbackground: var(--background-color);\npadding: var(--genome-spy-basic-spacing);\n\n--font-size: 12px;\nfont-size: var(--font-size);\n\nbox-shadow: 0px 3px 15px 0px rgba(0, 0, 0, 0.21);\n\n&:not(.sticky) {\npointer-events: none;\n}\n\ntransition:\noutline-color 0.3s ease-in-out,\nbox-shadow 0.3s ease-in-out;\n\noutline: 0px solid transparent;\n&.sticky {\noutline: 2px solid black;\nbox-shadow: 0px 3px 18px 0px rgba(0, 0, 0, 0.3);\n}\n\nz-index: 100;\n\n> :last-child {\nmargin-bottom: 0;\n}\n\n> .title {\npadding-bottom: calc(var(--genome-spy-basic-spacing) / 2);\nmargin-bottom: calc(var(--genome-spy-basic-spacing) / 2);\nborder-bottom: 1px dashed var(--background-color);\nborder-bottom: 1px dashed\ncolor-mix(in srgb, black 25%, var(--background-color));\n}\n\n.summary {\nfont-size: 12px;\n}\n\ntable {\n&:first-child {\nmargin-top: 0;\n}\n\nborder-collapse: collapse;\n\nth,\ntd {\npadding: 2px 0.4em;\nvertical-align: top;\nfont-size: var(--font-size);\n\n&:first-child {\npadding-left: 0;\n}\n}\n\nth {\ntext-align: left;\nfont-weight: bold;\n}\n}\n\n.color-legend {\ndisplay: inline-block;\nwidth: 0.8em;\nheight: 0.8em;\nmargin-left: 0.4em;\nbox-shadow: 0px 0px 3px 1px white;\n}\n\n.attributes {\n.hovered {\nbackground-color: #e0e0e0;\n}\n}\n\n.na {\ncolor: #aaa;\nfont-style: italic;\nfont-size: 80%;\n}\n}\n\n.gene-track-tooltip {\n.summary {\nfont-size: 90%;\n}\n}\n\n.message-box {\ndisplay: flex;\nalign-items: center;\njustify-content: center;\nposition: absolute;\ntop: 0;\nheight: 100%;\nwidth: 100%;\n\n> div {\nborder: 1px solid red;\npadding: 10px;\nbackground: #fff0f0;\n}\n}\n}\n\n.gs-input-binding {\ndisplay: grid;\ngrid-template-columns: max-content max-content;\ncolumn-gap: 1em;\nrow-gap: 0.3em;\njustify-items: start;\n\n> select,\n> input:not([type=\"checkbox\"]) {\nwidth: 100%;\n}\n\ninput[type=\"range\"] + span {\ndisplay: inline-block;\nmargin-left: 0.3em;\nmin-width: 2.2em;\nfont-variant-numeric: tabular-nums;\n}\n\ninput[type=\"range\"],\ninput[type=\"radio\"] {\nvertical-align: text-bottom;\n}\n\n.radio-group {\ndisplay: flex;\nalign-items: center;\n}\n\n.description {\nmax-width: 26em;\ngrid-column: 1 / -1;\ncolor: #777;\nfont-size: 90%;\nmargin-top: -0.5em;\n}\n}\n\n.gs-input-bindings {\nflex-basis: content;\nfont-size: 14px;\npadding: var(--genome-spy-basic-spacing);\n}\n";
|
|
3
3
|
//# sourceMappingURL=genome-spy.css.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"genome-spy.css.d.ts","sourceRoot":"","sources":["../../../src/styles/genome-spy.css.js"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"genome-spy.css.d.ts","sourceRoot":"","sources":["../../../src/styles/genome-spy.css.js"],"names":[],"mappings":";AAAA,+5HAiRE"}
|
|
@@ -1,206 +1,275 @@
|
|
|
1
1
|
const css = `
|
|
2
|
+
:root {
|
|
3
|
+
--genome-spy-basic-spacing: 10px;
|
|
4
|
+
--genome-spy-font-family: system-ui, "Segoe UI", Roboto, Helvetica, Arial,
|
|
5
|
+
sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
@keyframes genome-spy-blinker {
|
|
9
|
+
50% {
|
|
10
|
+
opacity: 0;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
2
14
|
.genome-spy {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
.
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
.
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
15
|
+
font-family: var(--genome-spy-font-family);
|
|
16
|
+
|
|
17
|
+
position: relative;
|
|
18
|
+
|
|
19
|
+
display: flex;
|
|
20
|
+
flex-direction: column;
|
|
21
|
+
|
|
22
|
+
.canvas-wrapper {
|
|
23
|
+
position: relative;
|
|
24
|
+
flex-grow: 1;
|
|
25
|
+
overflow: hidden;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
canvas {
|
|
29
|
+
display: block;
|
|
30
|
+
transform: scale(1, 1);
|
|
31
|
+
opacity: 1;
|
|
32
|
+
transition:
|
|
33
|
+
transform 0.6s,
|
|
34
|
+
opacity 0.6s;
|
|
35
|
+
|
|
36
|
+
&:focus,
|
|
37
|
+
&:focus-visible {
|
|
38
|
+
outline: none;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.loading-message {
|
|
43
|
+
position: absolute;
|
|
44
|
+
inset: 0;
|
|
45
|
+
display: flex;
|
|
46
|
+
|
|
47
|
+
align-items: center;
|
|
48
|
+
justify-content: center;
|
|
49
|
+
|
|
50
|
+
.message {
|
|
51
|
+
color: #666;
|
|
52
|
+
opacity: 0;
|
|
53
|
+
transition: opacity 0.7s;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.loading {
|
|
58
|
+
> canvas {
|
|
59
|
+
transform: scale(0.95, 0.95);
|
|
60
|
+
opacity: 0;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
> .loading-message .message {
|
|
64
|
+
opacity: 1;
|
|
65
|
+
|
|
66
|
+
.ellipsis {
|
|
67
|
+
animation: genome-spy-blinker 1s linear infinite;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.loading-indicators {
|
|
73
|
+
position: absolute;
|
|
74
|
+
inset: 0;
|
|
75
|
+
|
|
76
|
+
user-select: none;
|
|
77
|
+
pointer-events: none;
|
|
78
|
+
|
|
79
|
+
div {
|
|
80
|
+
position: absolute;
|
|
81
|
+
display: flex;
|
|
82
|
+
align-items: center;
|
|
83
|
+
justify-content: center;
|
|
84
|
+
|
|
85
|
+
> div {
|
|
86
|
+
font-size: 11px;
|
|
87
|
+
transition: opacity 0.2s;
|
|
88
|
+
background: white;
|
|
89
|
+
padding: 2px 5px;
|
|
90
|
+
display: flex;
|
|
91
|
+
border-radius: 3px;
|
|
92
|
+
gap: 0.5em;
|
|
93
|
+
opacity: 0;
|
|
94
|
+
|
|
95
|
+
&.loading {
|
|
96
|
+
opacity: 0.5;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
&.error {
|
|
100
|
+
opacity: 0.8;
|
|
101
|
+
color: firebrick;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
> * {
|
|
105
|
+
display: block;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
img {
|
|
109
|
+
width: 1.5em;
|
|
110
|
+
height: 1.5em;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
.tooltip {
|
|
117
|
+
position: absolute;
|
|
118
|
+
|
|
119
|
+
max-width: 450px;
|
|
120
|
+
overflow: hidden;
|
|
121
|
+
|
|
122
|
+
--background-color: #f6f6f6;
|
|
123
|
+
background: var(--background-color);
|
|
124
|
+
padding: var(--genome-spy-basic-spacing);
|
|
125
|
+
|
|
126
|
+
--font-size: 12px;
|
|
127
|
+
font-size: var(--font-size);
|
|
128
|
+
|
|
129
|
+
box-shadow: 0px 3px 15px 0px rgba(0, 0, 0, 0.21);
|
|
130
|
+
|
|
131
|
+
&:not(.sticky) {
|
|
132
|
+
pointer-events: none;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
transition:
|
|
136
|
+
outline-color 0.3s ease-in-out,
|
|
137
|
+
box-shadow 0.3s ease-in-out;
|
|
138
|
+
|
|
139
|
+
outline: 0px solid transparent;
|
|
140
|
+
&.sticky {
|
|
141
|
+
outline: 2px solid black;
|
|
142
|
+
box-shadow: 0px 3px 18px 0px rgba(0, 0, 0, 0.3);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
z-index: 100;
|
|
146
|
+
|
|
147
|
+
> :last-child {
|
|
148
|
+
margin-bottom: 0;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
> .title {
|
|
152
|
+
padding-bottom: calc(var(--genome-spy-basic-spacing) / 2);
|
|
153
|
+
margin-bottom: calc(var(--genome-spy-basic-spacing) / 2);
|
|
154
|
+
border-bottom: 1px dashed var(--background-color);
|
|
155
|
+
border-bottom: 1px dashed
|
|
156
|
+
color-mix(in srgb, black 25%, var(--background-color));
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
.summary {
|
|
160
|
+
font-size: 12px;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
table {
|
|
164
|
+
&:first-child {
|
|
165
|
+
margin-top: 0;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
border-collapse: collapse;
|
|
169
|
+
|
|
170
|
+
th,
|
|
171
|
+
td {
|
|
172
|
+
padding: 2px 0.4em;
|
|
173
|
+
vertical-align: top;
|
|
174
|
+
font-size: var(--font-size);
|
|
175
|
+
|
|
176
|
+
&:first-child {
|
|
177
|
+
padding-left: 0;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
th {
|
|
182
|
+
text-align: left;
|
|
183
|
+
font-weight: bold;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
.color-legend {
|
|
188
|
+
display: inline-block;
|
|
189
|
+
width: 0.8em;
|
|
190
|
+
height: 0.8em;
|
|
191
|
+
margin-left: 0.4em;
|
|
192
|
+
box-shadow: 0px 0px 3px 1px white;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
.attributes {
|
|
196
|
+
.hovered {
|
|
197
|
+
background-color: #e0e0e0;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
.na {
|
|
202
|
+
color: #aaa;
|
|
203
|
+
font-style: italic;
|
|
204
|
+
font-size: 80%;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
.gene-track-tooltip {
|
|
209
|
+
.summary {
|
|
210
|
+
font-size: 90%;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
.message-box {
|
|
215
|
+
display: flex;
|
|
216
|
+
align-items: center;
|
|
217
|
+
justify-content: center;
|
|
218
|
+
position: absolute;
|
|
219
|
+
top: 0;
|
|
220
|
+
height: 100%;
|
|
221
|
+
width: 100%;
|
|
222
|
+
|
|
223
|
+
> div {
|
|
224
|
+
border: 1px solid red;
|
|
225
|
+
padding: 10px;
|
|
226
|
+
background: #fff0f0;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
165
229
|
}
|
|
166
230
|
|
|
167
231
|
.gs-input-binding {
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
232
|
+
display: grid;
|
|
233
|
+
grid-template-columns: max-content max-content;
|
|
234
|
+
column-gap: 1em;
|
|
235
|
+
row-gap: 0.3em;
|
|
236
|
+
justify-items: start;
|
|
237
|
+
|
|
238
|
+
> select,
|
|
239
|
+
> input:not([type="checkbox"]) {
|
|
240
|
+
width: 100%;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
input[type="range"] + span {
|
|
244
|
+
display: inline-block;
|
|
245
|
+
margin-left: 0.3em;
|
|
246
|
+
min-width: 2.2em;
|
|
247
|
+
font-variant-numeric: tabular-nums;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
input[type="range"],
|
|
251
|
+
input[type="radio"] {
|
|
252
|
+
vertical-align: text-bottom;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
.radio-group {
|
|
256
|
+
display: flex;
|
|
257
|
+
align-items: center;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
.description {
|
|
261
|
+
max-width: 26em;
|
|
262
|
+
grid-column: 1 / -1;
|
|
263
|
+
color: #777;
|
|
264
|
+
font-size: 90%;
|
|
265
|
+
margin-top: -0.5em;
|
|
266
|
+
}
|
|
198
267
|
}
|
|
199
268
|
|
|
200
269
|
.gs-input-bindings {
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
270
|
+
flex-basis: content;
|
|
271
|
+
font-size: 14px;
|
|
272
|
+
padding: var(--genome-spy-basic-spacing);
|
|
204
273
|
}
|
|
205
274
|
`;
|
|
206
275
|
export default css;
|