@genome-spy/core 0.41.0 → 0.42.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/dist/bundle/index--cKb-dKG.js +615 -0
- package/dist/bundle/{index-gn8bhQ8w.js → index-d7k3kkin.js} +365 -366
- package/dist/bundle/index.es.js +4225 -4040
- package/dist/bundle/index.js +122 -79
- package/dist/schema.json +58 -6
- package/dist/src/data/sources/dynamic/axisGenomeSource.js +1 -1
- package/dist/src/data/sources/dynamic/axisTickSource.js +3 -3
- package/dist/src/data/sources/dynamic/bamSource.d.ts +3 -21
- package/dist/src/data/sources/dynamic/bamSource.d.ts.map +1 -1
- package/dist/src/data/sources/dynamic/bamSource.js +38 -55
- package/dist/src/data/sources/dynamic/bigBedSource.d.ts +2 -38
- package/dist/src/data/sources/dynamic/bigBedSource.d.ts.map +1 -1
- package/dist/src/data/sources/dynamic/bigBedSource.js +14 -71
- package/dist/src/data/sources/dynamic/bigWigSource.d.ts +4 -42
- package/dist/src/data/sources/dynamic/bigWigSource.d.ts.map +1 -1
- package/dist/src/data/sources/dynamic/bigWigSource.js +23 -60
- package/dist/src/data/sources/dynamic/gff3Source.d.ts.map +1 -1
- package/dist/src/data/sources/dynamic/gff3Source.js +1 -0
- package/dist/src/data/sources/dynamic/indexedFastaSource.d.ts +2 -20
- package/dist/src/data/sources/dynamic/indexedFastaSource.d.ts.map +1 -1
- package/dist/src/data/sources/dynamic/indexedFastaSource.js +23 -41
- package/dist/src/data/sources/dynamic/singleAxisLazySource.d.ts +23 -4
- package/dist/src/data/sources/dynamic/singleAxisLazySource.d.ts.map +1 -1
- package/dist/src/data/sources/dynamic/singleAxisLazySource.js +29 -4
- package/dist/src/data/sources/dynamic/singleAxisWindowedSource.d.ts +60 -0
- package/dist/src/data/sources/dynamic/singleAxisWindowedSource.d.ts.map +1 -0
- package/dist/src/data/sources/dynamic/singleAxisWindowedSource.js +152 -0
- package/dist/src/data/sources/dynamic/tabixSource.d.ts +6 -40
- package/dist/src/data/sources/dynamic/tabixSource.d.ts.map +1 -1
- package/dist/src/data/sources/dynamic/tabixSource.js +29 -78
- package/dist/src/data/transforms/regexFold.d.ts.map +1 -1
- package/dist/src/data/transforms/regexFold.js +8 -0
- package/dist/src/data/transforms/regexFold.test.js +28 -0
- package/dist/src/encoder/encoder.d.ts +6 -1
- package/dist/src/encoder/encoder.d.ts.map +1 -1
- package/dist/src/encoder/encoder.js +10 -0
- package/dist/src/genomeSpy.d.ts +14 -0
- package/dist/src/genomeSpy.d.ts.map +1 -1
- package/dist/src/genomeSpy.js +114 -8
- package/dist/src/gl/arrayBuilder.js +1 -1
- package/dist/src/gl/colorUtils.d.ts.map +1 -0
- package/dist/src/{scale → gl}/colorUtils.js +1 -1
- package/dist/src/gl/dataToVertices.d.ts +1 -9
- package/dist/src/gl/dataToVertices.d.ts.map +1 -1
- package/dist/src/gl/dataToVertices.js +33 -73
- package/dist/src/{scale → gl}/glslScaleGenerator.d.ts +23 -1
- package/dist/src/gl/glslScaleGenerator.d.ts.map +1 -0
- package/dist/src/{scale → gl}/glslScaleGenerator.js +59 -8
- package/dist/src/gl/webGLHelper.d.ts +6 -21
- package/dist/src/gl/webGLHelper.d.ts.map +1 -1
- package/dist/src/gl/webGLHelper.js +8 -39
- package/dist/src/img/90-ring-with-bg.svg +1 -0
- package/dist/src/img/README.md +5 -0
- package/dist/src/marks/link.d.ts +7 -0
- package/dist/src/marks/link.d.ts.map +1 -1
- package/dist/src/marks/link.js +74 -39
- package/dist/src/marks/mark.d.ts +2 -1
- package/dist/src/marks/mark.d.ts.map +1 -1
- package/dist/src/marks/mark.js +31 -2
- package/dist/src/marks/{pointMark.d.ts → point.d.ts} +1 -1
- package/dist/src/marks/point.d.ts.map +1 -0
- package/dist/src/marks/{pointMark.js → point.js} +3 -3
- package/dist/src/marks/{rectMark.d.ts → rect.d.ts} +1 -1
- package/dist/src/marks/rect.d.ts.map +1 -0
- package/dist/src/marks/{rectMark.js → rect.js} +2 -3
- package/dist/src/marks/rect.vertex.glsl.js +2 -0
- package/dist/src/marks/rule.js +3 -3
- package/dist/src/marks/text.d.ts.map +1 -1
- package/dist/src/marks/text.js +19 -20
- package/dist/src/spec/data.d.ts +28 -13
- package/dist/src/spec/mark.d.ts +0 -8
- 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 +33 -4
- package/dist/src/styles/genome-spy.scss +40 -4
- package/dist/src/types/viewContext.d.ts +9 -0
- package/dist/src/utils/binnedIndex.d.ts +2 -0
- package/dist/src/utils/binnedIndex.d.ts.map +1 -1
- package/dist/src/utils/binnedIndex.js +59 -10
- package/dist/src/utils/binnedIndex.test.js +46 -0
- package/dist/src/utils/indexer.d.ts.map +1 -1
- package/dist/src/utils/indexer.js +10 -1
- package/dist/src/utils/indexer.test.js +2 -0
- package/dist/src/view/gridView.d.ts.map +1 -1
- package/dist/src/view/gridView.js +2 -0
- package/dist/src/view/layerView.d.ts.map +1 -1
- package/dist/src/view/layerView.js +2 -0
- package/dist/src/view/unitView.d.ts +1 -7
- package/dist/src/view/unitView.d.ts.map +1 -1
- package/dist/src/view/unitView.js +4 -11
- package/dist/src/view/view.d.ts +6 -0
- package/dist/src/view/view.d.ts.map +1 -1
- package/dist/src/view/view.js +11 -0
- package/dist/src/view/view.test.js +1 -1
- package/package.json +3 -3
- package/dist/bundle/index-Cbz74kpR.js +0 -638
- package/dist/src/data/sources/dynamic/windowedMixin.d.ts +0 -32
- package/dist/src/data/sources/dynamic/windowedMixin.d.ts.map +0 -1
- package/dist/src/data/sources/dynamic/windowedMixin.js +0 -53
- package/dist/src/gl/rect.vertex.glsl.js +0 -2
- package/dist/src/marks/pointMark.d.ts.map +0 -1
- package/dist/src/marks/rectMark.d.ts.map +0 -1
- package/dist/src/scale/colorUtils.d.ts.map +0 -1
- package/dist/src/scale/glslScaleGenerator.d.ts.map +0 -1
- /package/dist/src/{scale → gl}/colorUtils.d.ts +0 -0
- /package/dist/src/{gl → marks}/link.fragment.glsl.js +0 -0
- /package/dist/src/{gl → marks}/link.vertex.glsl.js +0 -0
- /package/dist/src/{gl → marks}/point.common.glsl.js +0 -0
- /package/dist/src/{gl → marks}/point.fragment.glsl.js +0 -0
- /package/dist/src/{gl → marks}/point.vertex.glsl.js +0 -0
- /package/dist/src/{gl → marks}/rect.fragment.glsl.js +0 -0
- /package/dist/src/{gl → marks}/rule.common.glsl.js +0 -0
- /package/dist/src/{gl → marks}/rule.fragment.glsl.js +0 -0
- /package/dist/src/{gl → marks}/rule.vertex.glsl.js +0 -0
- /package/dist/src/{gl → marks}/text.common.glsl.js +0 -0
- /package/dist/src/{gl → marks}/text.fragment.glsl.js +0 -0
- /package/dist/src/{gl → marks}/text.vertex.glsl.js +0 -0
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
/** @typedef {new (...args: any[]) => any} Constructor */
|
|
2
|
-
|
|
3
|
-
import { shallowArrayEquals } from "../../../utils/arrayUtils.js";
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Utils for handling data sources that are fetched in chunks.
|
|
7
|
-
*
|
|
8
|
-
* @template {!Constructor} T
|
|
9
|
-
* @param {T} superclass - The class to extend
|
|
10
|
-
*/
|
|
11
|
-
export default function windowedMixin(superclass) {
|
|
12
|
-
return class FormControl extends superclass {
|
|
13
|
-
/**
|
|
14
|
-
* @type {number[]}
|
|
15
|
-
*/
|
|
16
|
-
lastQuantizedInterval = [0, 0];
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Returns three consecutive windows. The idea is to immediately have some data
|
|
20
|
-
* to show to the user when they pan the view.
|
|
21
|
-
*
|
|
22
|
-
* @param {number[]} interval
|
|
23
|
-
* @param {number} windowSize
|
|
24
|
-
* @returns
|
|
25
|
-
*/
|
|
26
|
-
quantizeInterval(interval, windowSize) {
|
|
27
|
-
return [
|
|
28
|
-
Math.max(
|
|
29
|
-
Math.floor(interval[0] / windowSize - 1) * windowSize,
|
|
30
|
-
0
|
|
31
|
-
),
|
|
32
|
-
Math.min(
|
|
33
|
-
Math.ceil(interval[1] / windowSize + 1) * windowSize,
|
|
34
|
-
this.genome.totalSize
|
|
35
|
-
),
|
|
36
|
-
];
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
*
|
|
41
|
-
* @param {number[]} interval
|
|
42
|
-
* @returns
|
|
43
|
-
*/
|
|
44
|
-
checkAndUpdateLastInterval(interval) {
|
|
45
|
-
if (shallowArrayEquals(this.lastQuantizedInterval, interval)) {
|
|
46
|
-
return false;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
this.lastQuantizedInterval = interval;
|
|
50
|
-
return true;
|
|
51
|
-
}
|
|
52
|
-
};
|
|
53
|
-
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const shader = "uniform Mark{uniform float uMinWidth;uniform float uMinHeight;uniform float uMinOpacity;uniform float uCornerRadiusTopRight;uniform float uCornerRadiusBottomRight;uniform float uCornerRadiusTopLeft;uniform float uCornerRadiusBottomLeft;};/***The vertex position wrt the rectangle specified by(x,x2,y,y2).*[0,0]=[x,y],[1,1]=[x2,y2].*The x or y component may contain fractional values if the rectangle*have been tessellated.*/in vec2 frac;out lowp vec4 vFillColor;out lowp vec4 vStrokeColor;out float vHalfStrokeWidth;out vec4 vCornerRadii;\n#if defined(ROUNDED_CORNERS) || defined(STROKED)\nout vec2 vPosInPixels;\n#endif\nout vec2 vHalfSizeInPixels;/***Clamps the minimumSize and returns an opacity that reflects the amount of clamping.*/float clampMinSize(inout float pos,float frac,float size,float minSize){if(minSize>0.0&&abs(size)<minSize){pos+=(frac-0.5)*(minSize*sign(size)-size);return abs(size)/minSize;}return 1.0;}void sort(inout float a,inout float b){if(a>b){float tmp=b;b=a;a=tmp;}}void main(void){vec2 normalizedMinSize=vec2(uMinWidth,uMinHeight)/uViewportSize;vec4 cornerRadii=vec4(uCornerRadiusTopRight,uCornerRadiusBottomRight,uCornerRadiusBottomLeft,uCornerRadiusTopLeft);float x=getScaled_x();float x2=getScaled_x2();float y=getScaled_y();float y2=getScaled_y2();sort(x,x2);sort(y,y2);float clampMargin=1.0;vec2 pos1=vec2(clamp(x,0.0-clampMargin,1.0+clampMargin),y);vec2 pos2=vec2(clamp(x2,0.0-clampMargin,1.0+clampMargin),y2);vec2 size=pos2-pos1;if(size.x<=0.0||size.y<=0.0){gl_Position=vec4(0.0,0.0,0.0,1.0);return;}vec2 pos=pos1+frac*size;size.y*=getSampleFacetHeight(pos);float opaFactor=uViewOpacity*max(uMinOpacity,clampMinSize(pos.x,frac.x,size.x,normalizedMinSize.x)*clampMinSize(pos.y,frac.y,size.y,normalizedMinSize.y));pos=applySampleFacet(pos);\n#if defined(ROUNDED_CORNERS) || defined(STROKED)\nfloat aaPadding=1.0/uDevicePixelRatio;float strokeWidth=getScaled_strokeWidth();float strokeOpacity=getScaled_strokeOpacity()*opaFactor;vec2 centeredFrac=frac-0.5;vec2 expand=centeredFrac*(strokeWidth+aaPadding)/uViewportSize;pos+=expand;vec2 sizeInPixels=size*uViewportSize;vPosInPixels=(centeredFrac+expand/size)*sizeInPixels;vHalfSizeInPixels=sizeInPixels/2.0;vCornerRadii=min(cornerRadii,min(vHalfSizeInPixels.x,vHalfSizeInPixels.y));vHalfStrokeWidth=strokeWidth/2.0;vStrokeColor=vec4(getScaled_stroke()*strokeOpacity,strokeOpacity);\n#endif\ngl_Position=unitToNdc(pos);float fillOpacity=getScaled_fillOpacity()*opaFactor;vFillColor=vec4(getScaled_fill()*fillOpacity,fillOpacity);setupPicking();}";
|
|
2
|
-
export default shader;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pointMark.d.ts","sourceRoot":"","sources":["../../../src/marks/pointMark.js"],"names":[],"mappings":"AAkBA;IAsGY,oCAMC;IA2CT,mCAQC;IAED;;OAEG;IACH,wDASC;IAED,+BAoBC;CAiDJ;iBA3PgB,WAAW"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rectMark.d.ts","sourceRoot":"","sources":["../../../src/marks/rectMark.js"],"names":[],"mappings":"AAYA;IA2NI;;;;;;;;;;OAUG;IACH,8BALW,GAAG,KACH,OAAO,oBAAoB,EAAE,MAAM,GACjC,GAAG,CAyBf;;CACJ;iBApQgB,WAAW"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"colorUtils.d.ts","sourceRoot":"","sources":["../../../src/scale/colorUtils.js"],"names":[],"mappings":"AAOA;;;;;GAKG;AACH,kDALW,MAAM,GAAG,OAAO,kBAAkB,EAAE,YAAY,MAChD,sBAAsB,UACtB,MAAM,oBACN,YAAY,gBAqCtB;AAED;;;;;GAKG;AACH,uDALW,MAAM,EAAE,qBACR,OAAO,kBAAkB,EAAE,gBAAgB,GAAG,OAAO,kBAAkB,EAAE,sBAAsB,MAC/F,sBAAsB,oBACtB,YAAY,gBA6BtB;AAED;;;;;;;;GAQG;AACH,6CALW,MAAM,EAAE,MACR,sBAAsB,UACtB,MAAM,oBACN,YAAY,gBAqBtB;AAED;;;;;;;GAOG;AACH,mDALW,MAAM,EAAE,MACR,sBAAsB,UACtB,MAAM,oBACN,YAAY,gBActB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"glslScaleGenerator.d.ts","sourceRoot":"","sources":["../../../src/scale/glslScaleGenerator.js"],"names":[],"mappings":"AAiDA;;;;GAIG;AACH,2CAHW,OAAO,SACP,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,GAAG,OAAO,UAsC9C;AAED;;;;;GAKG;AAEH,2CALW,OAAO,SACP,GAAG,cACH,OAAO,oBAAoB,EAAE,UAAU;;;EA8QjD;AA+FD;;;GAGG;AACH,2CAFW,MAAM,WAIhB;AAOD;;;GAGG;AACH,sCAHW,MAAM,QACN,MAAM,EAAE,YAYlB;AAYD;;GAEG;AACH,qDAFW,MAAM,EAAE,YAIlB;AAteD,uCAAwC;AACxC,uCAAwC;AACxC,oCAAqC;AACrC,6CAA8C;AAC9C,kDAAmD;AACnD,oDAAqD;sBAMxC,OAAO,oBAAoB,EAAE,OAAO;;;;8BAgXpC,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|