@genome-spy/core 0.50.0 → 0.50.2
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.es.js +3560 -3524
- package/dist/bundle/index.js +86 -86
- package/dist/schema.json +339 -256
- package/dist/src/data/flowOptimizer.d.ts.map +1 -1
- package/dist/src/data/flowOptimizer.js +1 -2
- package/dist/src/data/sources/lazy/axisTickSource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/axisTickSource.js +8 -1
- package/dist/src/data/sources/urlSource.d.ts.map +1 -1
- package/dist/src/data/sources/urlSource.js +17 -13
- package/dist/src/genomeSpy.d.ts.map +1 -1
- package/dist/src/genomeSpy.js +12 -8
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +5 -2
- 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 +7 -4
- package/dist/src/spec/mark.d.ts +43 -9
- package/dist/src/spec/view.d.ts +113 -32
- 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 +1 -0
- package/dist/src/styles/genome-spy.scss +1 -0
- package/dist/src/utils/url.d.ts +9 -2
- package/dist/src/utils/url.d.ts.map +1 -1
- package/dist/src/utils/url.js +29 -6
- package/dist/src/utils/url.test.d.ts +2 -0
- package/dist/src/utils/url.test.d.ts.map +1 -0
- package/dist/src/utils/url.test.js +28 -0
- package/dist/src/view/axisResolution.d.ts.map +1 -1
- package/dist/src/view/axisResolution.js +7 -1
- package/dist/src/view/layout/flexLayout.d.ts +6 -0
- package/dist/src/view/layout/flexLayout.d.ts.map +1 -1
- package/dist/src/view/layout/flexLayout.js +9 -0
- package/dist/src/view/view.d.ts.map +1 -1
- package/dist/src/view/view.js +3 -3
- package/dist/src/view/viewUtils.d.ts +2 -6
- package/dist/src/view/viewUtils.d.ts.map +1 -1
- package/dist/src/view/viewUtils.js +41 -33
- package/package.json +2 -2
package/dist/src/utils/url.d.ts
CHANGED
|
@@ -2,8 +2,15 @@
|
|
|
2
2
|
* Append a relative or absolute url to a base url.
|
|
3
3
|
* The base part is omitted if the append part is absolute.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* If the base part has no trailing slash, it is assumed to be a file and
|
|
6
|
+
* only the directory part is used.
|
|
7
|
+
*
|
|
8
|
+
* @param {string | (() => string)} base
|
|
6
9
|
* @param {string} append
|
|
7
10
|
*/
|
|
8
|
-
export function
|
|
11
|
+
export function concatUrl(base: string | (() => string), append: string): string;
|
|
12
|
+
/**
|
|
13
|
+
* @param {string} url
|
|
14
|
+
*/
|
|
15
|
+
export function getDirectory(url: string): string;
|
|
9
16
|
//# sourceMappingURL=url.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../../src/utils/url.js"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../../src/utils/url.js"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AACH,gCAHW,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,UACvB,MAAM,UAsBhB;AAED;;GAEG;AACH,kCAFW,MAAM,UAShB"}
|
package/dist/src/utils/url.js
CHANGED
|
@@ -4,19 +4,42 @@ const protoRe = /^([A-Za-z]+:)?\/\//;
|
|
|
4
4
|
* Append a relative or absolute url to a base url.
|
|
5
5
|
* The base part is omitted if the append part is absolute.
|
|
6
6
|
*
|
|
7
|
-
*
|
|
7
|
+
* If the base part has no trailing slash, it is assumed to be a file and
|
|
8
|
+
* only the directory part is used.
|
|
9
|
+
*
|
|
10
|
+
* @param {string | (() => string)} base
|
|
8
11
|
* @param {string} append
|
|
9
12
|
*/
|
|
10
|
-
export function
|
|
13
|
+
export function concatUrl(base, append) {
|
|
11
14
|
if (append && protoRe.test(append)) {
|
|
12
15
|
return append;
|
|
13
16
|
}
|
|
14
17
|
|
|
15
|
-
const
|
|
18
|
+
const baseString = typeof base == "function" ? base() : base;
|
|
19
|
+
if (!baseString) {
|
|
20
|
+
return append;
|
|
21
|
+
}
|
|
22
|
+
if (!append) {
|
|
23
|
+
return baseString;
|
|
24
|
+
}
|
|
16
25
|
|
|
17
|
-
if (
|
|
18
|
-
|
|
26
|
+
if (/[#?]/.test(baseString)) {
|
|
27
|
+
throw new Error(
|
|
28
|
+
`Cannot append to a url with query or hash. Append: ${append}, base: ${baseString}`
|
|
29
|
+
);
|
|
19
30
|
}
|
|
20
31
|
|
|
21
|
-
return
|
|
32
|
+
return getDirectory(baseString) + append;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* @param {string} url
|
|
37
|
+
*/
|
|
38
|
+
export function getDirectory(url) {
|
|
39
|
+
const directory = url.replace(/[^/]*$/, "");
|
|
40
|
+
return directory === ""
|
|
41
|
+
? undefined
|
|
42
|
+
: directory.endsWith("://")
|
|
43
|
+
? url + "/"
|
|
44
|
+
: directory;
|
|
22
45
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url.test.d.ts","sourceRoot":"","sources":["../../../src/utils/url.test.js"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { expect, test } from "vitest";
|
|
2
|
+
import { concatUrl, getDirectory } from "./url.js";
|
|
3
|
+
|
|
4
|
+
test("getDirectory", () => {
|
|
5
|
+
expect(getDirectory("foo")).toBeUndefined();
|
|
6
|
+
expect(getDirectory("foo/")).toBe("foo/");
|
|
7
|
+
expect(getDirectory("foo/index")).toBe("foo/");
|
|
8
|
+
expect(getDirectory("http://example.com")).toBe("http://example.com/");
|
|
9
|
+
expect(getDirectory("http://example.com/")).toBe("http://example.com/");
|
|
10
|
+
expect(getDirectory("http://example.com/a")).toBe("http://example.com/");
|
|
11
|
+
expect(getDirectory("http://example.com/a/")).toBe("http://example.com/a/");
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
test("concatUrl", () => {
|
|
15
|
+
expect(concatUrl("http://example.com", "foo")).toEqual(
|
|
16
|
+
"http://example.com/foo"
|
|
17
|
+
);
|
|
18
|
+
expect(concatUrl(() => "http://example.com", "foo")).toEqual(
|
|
19
|
+
"http://example.com/foo"
|
|
20
|
+
);
|
|
21
|
+
expect(concatUrl("http://example.com/", "http://genomespy.app/")).toEqual(
|
|
22
|
+
"http://genomespy.app/"
|
|
23
|
+
);
|
|
24
|
+
expect(concatUrl("foo/", "bar")).toEqual("foo/bar");
|
|
25
|
+
expect(concatUrl("foo/baz", "bar")).toEqual("foo/bar");
|
|
26
|
+
expect(concatUrl(undefined, "bar")).toEqual("bar");
|
|
27
|
+
expect(concatUrl("bar", undefined)).toEqual("bar");
|
|
28
|
+
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"axisResolution.d.ts","sourceRoot":"","sources":["../../../src/view/axisResolution.js"],"names":[],"mappings":"AAeA;;;;;;;GAOG;AACH;IACI;;;OAGG;IAEH;;OAEG;IACH,qBAFW,OAAO,oBAAoB,EAAE,wBAAwB,EAM/D;IAHG,+DAAsB;IACtB,wDAAwD;IACxD,SADW,oBAAoB,EAAE,CAChB;IAGrB,8DAEC;IAED;;;;;OAKG;IACH,qBAFW,oBAAoB,
|
|
1
|
+
{"version":3,"file":"axisResolution.d.ts","sourceRoot":"","sources":["../../../src/view/axisResolution.js"],"names":[],"mappings":"AAeA;;;;;;;GAOG;AACH;IACI;;;OAGG;IAEH;;OAEG;IACH,qBAFW,OAAO,oBAAoB,EAAE,wBAAwB,EAM/D;IAHG,+DAAsB;IACtB,wDAAwD;IACxD,SADW,oBAAoB,EAAE,CAChB;IAGrB,8DAEC;IAED;;;;;OAKG;IACH,qBAFW,oBAAoB,QAwB9B;IAED,qDAuBC;IAED,mBAyDC;CACJ;;UAxIS,OAAO,eAAe,EAAE,OAAO;aAC/B,CAAC;gBACD,OAAO,oBAAoB,EAAE,mBAAmB"}
|
|
@@ -58,7 +58,13 @@ export default class AxisResolution {
|
|
|
58
58
|
this.scaleResolution &&
|
|
59
59
|
newScaleResolution !== this.scaleResolution
|
|
60
60
|
) {
|
|
61
|
-
throw new Error(
|
|
61
|
+
throw new Error(
|
|
62
|
+
`Shared axes must have a shared scale! Channel: ${
|
|
63
|
+
this.channel
|
|
64
|
+
}, existing views: [${this.members
|
|
65
|
+
.map((m) => m.view.getPathString())
|
|
66
|
+
.join(", ")}], new view: ${view.getPathString()}.`
|
|
67
|
+
);
|
|
62
68
|
}
|
|
63
69
|
|
|
64
70
|
this.members.push(newMember);
|
|
@@ -123,6 +123,12 @@ export class FlexDimensions {
|
|
|
123
123
|
* @param {import("./padding.js").default} padding
|
|
124
124
|
*/
|
|
125
125
|
subtractPadding(padding: import("./padding.js").default): FlexDimensions;
|
|
126
|
+
/**
|
|
127
|
+
* Returns true if either of the dimensions is growing
|
|
128
|
+
*
|
|
129
|
+
* @returns {boolean}
|
|
130
|
+
*/
|
|
131
|
+
isGrowing(): boolean;
|
|
126
132
|
#private;
|
|
127
133
|
}
|
|
128
134
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flexLayout.d.ts","sourceRoot":"","sources":["../../../../src/view/layout/flexLayout.js"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wCALW,OAAO,EAAE,iBACT,MAAM,mDACN,WAAW,GACT,OAAO,EAAE,CAqGrB;AAED;;;;;GAKG;AACH,sCAHW,SAAS,OAAO,CAAC,gBACjB,WAAW,UAQrB;AAED;;;GAGG;AACH,sCAHW,SAAS,OAAO,CAAC,GACf,OAAO,CAWnB;AAED;;;GAGG;AACH,oCAFW,OAAO,EAAE,WAInB;AAED;;;GAGG;AACH,sCAFW,OAAO,EAAE;;;EASnB;
|
|
1
|
+
{"version":3,"file":"flexLayout.d.ts","sourceRoot":"","sources":["../../../../src/view/layout/flexLayout.js"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wCALW,OAAO,EAAE,iBACT,MAAM,mDACN,WAAW,GACT,OAAO,EAAE,CAqGrB;AAED;;;;;GAKG;AACH,sCAHW,SAAS,OAAO,CAAC,gBACjB,WAAW,UAQrB;AAED;;;GAGG;AACH,sCAHW,SAAS,OAAO,CAAC,GACf,OAAO,CAWnB;AAED;;;GAGG;AACH,oCAFW,OAAO,EAAE,WAInB;AAED;;;GAGG;AACH,sCAFW,OAAO,EAAE;;;EASnB;AA4ED;;;;GAIG;AACH,uCAFW,OAAO,WAIjB;AAWD;;;;GAIG;AACH,sDAEC;AAED;;;;GAIG;AACH,mCAHW,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,oBAAoB,EAAE,IAAI,GAChE,OAAO,CAiBnB;AAID;;;;;;;GAOG;AACH,0CALW,OAAO,MACP,OAAO,eACI,MAAM,GACf,OAAO,CA4BnB;AAED;;;;;;GAMG;AACH,0CAJW,OAAO,UACP,MAAM,UAAc,MAAM,CAAA,GACxB,OAAO,CAanB;AAED;;;;;;GAMG;AACH,sCAJW,OAAO,UACP,MAAM,UAAc,MAAM,CAAA,GACxB,OAAO,CAanB;AAED;;;GAGG;AACH,yCAHW,OAAO,SACP,MAAM,WAIhB;AA/MD;IACI;;;;OAIG;IACH,mBAHW,OAAO,UACP,OAAO,EAQjB;IAJG,gBAAgB;IAChB,wBAAkB;IAClB,gBAAgB;IAChB,yBAAoB;IAGxB;;;;OAIG;IACH,oBAFW,OAAO,cAAc,EAAE,OAAO,kBAIxC;IAED;;;;OAIG;IACH,yBAFW,OAAO,cAAc,EAAE,OAAO,kBAIxC;IAmBD;;;;OAIG;IACH,aAFa,OAAO,CAInB;;CACJ;AAED;;;;GAIG;AACH,2BAFU,OAAO,CAKd;AAEH,iDAGE;;;;;;;;SAlPQ,MAAM;;;;WACN,MAAM;;;;;;cAGN,MAAM;UACN,MAAM;;;;;;;;;;;;;;cAGN,MAAM;;;;;uBACN,MAAM;;;;aAEN,MAAM;;;;cACN,OAAO"}
|
|
@@ -228,6 +228,15 @@ export class FlexDimensions {
|
|
|
228
228
|
}
|
|
229
229
|
);
|
|
230
230
|
}
|
|
231
|
+
|
|
232
|
+
/**
|
|
233
|
+
* Returns true if either of the dimensions is growing
|
|
234
|
+
*
|
|
235
|
+
* @returns {boolean}
|
|
236
|
+
*/
|
|
237
|
+
isGrowing() {
|
|
238
|
+
return !!(this.width.grow || this.height.grow);
|
|
239
|
+
}
|
|
231
240
|
}
|
|
232
241
|
|
|
233
242
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../../src/view/view.js"],"names":[],"mappings":"AA0BA,oBAAoB;AACpB,sCAAuC;AACvC,0BAA0B;AAC1B,sCAAuC;AAKvC;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH;IAuBI;;;;;;;;;OASG;IACH,kBARW,OAAO,iBAAiB,EAAE,QAAQ,WAClC,OAAO,yBAAyB,EAAE,OAAO,gBACzC,OAAO,oBAAoB,EAAE,OAAO,cACpC,OAAO,WAAW,EAAE,OAAO,QAC3B,MAAM,YACN,WAAW,EAmDrB;IAvED;;OAEG;IACH,wBAFmB,MAAM,KAAE,MAAM,CAEQ;IAEzC;;;;;OAKG;IACH,aAFU,IAAI,GAAG,EAAE,OAAO,uBAAuB,EAAE,OAAO,CAAC,CAEX;IAiB5C,mDAAsB;IACtB,mDAAgC;IAChC,iBAA4B;IAC5B,aAA6B;IAC7B,yCAAgB;IAEhB;QACI;;;WAGG;eADO,QAAQ,OAAO,OAAO,oBAAoB,EAAE,gBAAgB,EAAE,OAAO,sBAAsB,EAAE,OAAO,CAAC,CAAC;QAGhH;;;WAGG;cADO,QAAQ,OAAO,OAAO,oBAAoB,EAAE,wBAAwB,EAAE,OAAO,qBAAqB,EAAE,OAAO,CAAC,CAAC;MAG1H;IAID;;;;kCAhEE,OAAO;;;;kCAEP,OAAO;MAkER;IAED;;;OAGG;IACH,WAFU,OAAO,OAAO,oBAAoB,EAAE,wBAAwB,EAAE,OAAO,CAAC,CAEzC;IAEvC,4BAA4B;IAC5B,eADW,aAAa,CAGvB;IASL;;;;;OAKG;IACH,sDAEC;IAED,sBAIC;IAED;;;;OAIG;IACH,eAFa,OAAO,CAInB;IAED;;;;;OAKG;IACH,gBAFa,OAAO,CAMnB;IAED;;;;;OAKG;IACH,WAFa,cAAc,CAW1B;IAED;;OAEG;IACH,mBAFa,cAAc,CAkB1B;IAoED,+BAEC;IAED,2BAEC;IAED;;;;;;;;OAQG;IACH,aAFa,OAAO,CAMnB;IAED;;;;;;;OAOG;IACH,uBAFa,MAAM,CAMlB;IAED,wBAKC;IAkBD;;OAEG;IACH,6BAEC;IAED;;OAEG;IACH,2BAEC;IAED;;;;OAIG;IACH,yBAFW,gBAAgB,QAO1B;IAED;;;;OAIG;IACH,2BAHW,MAAM,kBACG,gBAAgB,KAAE,IAAI,QASzC;IAED;;;;;;;;OAQG;IACH,yCANW,OAAO,uBAAuB,EAAE,OAAO,SAEvC,OAAO,8BAA8B,EAAE,OAAO,aAC9C,OAAO,QAUjB;IAED;;;;;;;;;;OAUG;IACH,kCAJW,MAAM,YACN,wBAAwB,eACxB,OAAO,QAajB;IAED;;;;;;;OAOG;IACH,eAJW,OAAO,GACL,WAAW,CAmBvB;IAED;;OAEG;IACH,yBAOC;IAED;;OAEG;IACH,6BASC;IAED;;;OAGG;IACH,uBAEC;
|
|
1
|
+
{"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../../src/view/view.js"],"names":[],"mappings":"AA0BA,oBAAoB;AACpB,sCAAuC;AACvC,0BAA0B;AAC1B,sCAAuC;AAKvC;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH;IAuBI;;;;;;;;;OASG;IACH,kBARW,OAAO,iBAAiB,EAAE,QAAQ,WAClC,OAAO,yBAAyB,EAAE,OAAO,gBACzC,OAAO,oBAAoB,EAAE,OAAO,cACpC,OAAO,WAAW,EAAE,OAAO,QAC3B,MAAM,YACN,WAAW,EAmDrB;IAvED;;OAEG;IACH,wBAFmB,MAAM,KAAE,MAAM,CAEQ;IAEzC;;;;;OAKG;IACH,aAFU,IAAI,GAAG,EAAE,OAAO,uBAAuB,EAAE,OAAO,CAAC,CAEX;IAiB5C,mDAAsB;IACtB,mDAAgC;IAChC,iBAA4B;IAC5B,aAA6B;IAC7B,yCAAgB;IAEhB;QACI;;;WAGG;eADO,QAAQ,OAAO,OAAO,oBAAoB,EAAE,gBAAgB,EAAE,OAAO,sBAAsB,EAAE,OAAO,CAAC,CAAC;QAGhH;;;WAGG;cADO,QAAQ,OAAO,OAAO,oBAAoB,EAAE,wBAAwB,EAAE,OAAO,qBAAqB,EAAE,OAAO,CAAC,CAAC;MAG1H;IAID;;;;kCAhEE,OAAO;;;;kCAEP,OAAO;MAkER;IAED;;;OAGG;IACH,WAFU,OAAO,OAAO,oBAAoB,EAAE,wBAAwB,EAAE,OAAO,CAAC,CAEzC;IAEvC,4BAA4B;IAC5B,eADW,aAAa,CAGvB;IASL;;;;;OAKG;IACH,sDAEC;IAED,sBAIC;IAED;;;;OAIG;IACH,eAFa,OAAO,CAInB;IAED;;;;;OAKG;IACH,gBAFa,OAAO,CAMnB;IAED;;;;;OAKG;IACH,WAFa,cAAc,CAW1B;IAED;;OAEG;IACH,mBAFa,cAAc,CAkB1B;IAoED,+BAEC;IAED,2BAEC;IAED;;;;;;;;OAQG;IACH,aAFa,OAAO,CAMnB;IAED;;;;;;;OAOG;IACH,uBAFa,MAAM,CAMlB;IAED,wBAKC;IAkBD;;OAEG;IACH,6BAEC;IAED;;OAEG;IACH,2BAEC;IAED;;;;OAIG;IACH,yBAFW,gBAAgB,QAO1B;IAED;;;;OAIG;IACH,2BAHW,MAAM,kBACG,gBAAgB,KAAE,IAAI,QASzC;IAED;;;;;;;;OAQG;IACH,yCANW,OAAO,uBAAuB,EAAE,OAAO,SAEvC,OAAO,8BAA8B,EAAE,OAAO,aAC9C,OAAO,QAUjB;IAED;;;;;;;;;;OAUG;IACH,kCAJW,MAAM,YACN,wBAAwB,eACxB,OAAO,QAajB;IAED;;;;;;;OAOG;IACH,eAJW,OAAO,GACL,WAAW,CAmBvB;IAED;;OAEG;IACH,yBAOC;IAED;;OAEG;IACH,6BASC;IAED;;;OAGG;IACH,uBAEC;IAtb2C,iMAGZ;IAychC;;;;;;OAMG;IACH,eAFY,OAAO,oBAAoB,EAAE,QAAQ,CAuBhD;IAED;;;;OAIG;IACH,+BAJW,IAAI,UAEM,MAAM,KAAE,GAAG,CAM/B;IAED;;;;;OAKG;IACH,6BAHW,IAAI,GACF,MAAM,EAAE,CASpB;IAED;;;;;;;;;;;;;;;OAeG;IACH,yBAFY,YAAY,CAIvB;IAED;;OAEG;IACH,4BAFW,OAAO,oBAAoB,EAAE,gBAAgB,0CAWvD;IAED;;OAEG;IACH,2BAFW,OAAO,oBAAoB,EAAE,iBAAiB,yCAWxD;IAED;;;;OAIG;IACH,iCAJW,OAAO,oBAAoB,EAAE,OAAO,GAAG,SAAS,kBAChD,OAAO,iBAAiB,EAAE,gBAAgB,GACxC,OAAO,iBAAiB,EAAE,kBAAkB,CAIxD;IAED;;;;OAIG;IACH,0CAJW,OAAO,oBAAoB,EAAE,OAAO,kBACpC,OAAO,iBAAiB,EAAE,gBAAgB,GACxC,OAAO,iBAAiB,EAAE,kBAAkB,CAQxD;IAED;;;;OAIG;IACH,8BAJW,OAAO,oBAAoB,EAAE,OAAO,kBACpC,OAAO,iBAAiB,EAAE,gBAAgB,GACxC,OAAO,iBAAiB,EAAE,kBAAkB,CAIxD;IAED;;OAEG;IACH,cAFa,MAAM,CAOlB;IAED;;OAEG;IACH,8BAEC;IAED,oBASC;IAED;;;;;;OAMG;IACH,yBANW,GAAG,wCAQb;IAED;;;;OAIG;IACH,8BAHW,MAAM,cACN,MAAM,GAAG,SAAS,GAAG,WAAW,QAiB1C;IAED,4BAEC;IAED;;;;;OAKG;IACH,iCAFW,OAAO,8BAA8B,EAAE,OAAO,QAIxD;;CACJ;AAoEM,iCAHI,GAAG,0CAGkC;0BA9uBnC,8BAAsB,IAAI;qCAG5B,IAAI,KACF,WAAW;sBAEX,eAAe,GAAG;IAC9B,SAAgB,CAAC,SAAW,IAAI,KAAE,IAAI,CAAC;IACvC,cAAqB,CAAC,SAAW,IAAI,KAAE,IAAI,CAAC;IAC5C,aAAoB,CAAC,SAAW,IAAI,KAAE,IAAI,CAAA;CAAC;;;;;UAIlC,OAAO,iBAAiB,EAAE,kBAAkB;;;;cAC5C,GAAG;;gDAGF,OAAO,uBAAuB,EAAE,OAAO,SAEvC,OAAO,8BAA8B,EAAE,OAAO;;;;;+BAG/C,OAAO;;;;+BAEP,OAAO;;0BAzCwB,oBAAoB;oBAbzC,qBAAqB;+BADlC,wBAAwB"}
|
package/dist/src/view/view.js
CHANGED
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
import { isNumber, isString, span } from "vega-util";
|
|
13
13
|
import { scaleLog } from "d3-scale";
|
|
14
14
|
import { isFieldDef, getPrimaryChannel } from "../encoder/encoder.js";
|
|
15
|
-
import {
|
|
15
|
+
import { concatUrl } from "../utils/url.js";
|
|
16
16
|
import { isDiscrete, bandSpace } from "vega-scale";
|
|
17
17
|
import { peek } from "../utils/arrayUtils.js";
|
|
18
18
|
import ViewError from "./viewError.js";
|
|
@@ -645,7 +645,7 @@ export default class View {
|
|
|
645
645
|
* @returns {string}
|
|
646
646
|
*/
|
|
647
647
|
getBaseUrl() {
|
|
648
|
-
return
|
|
648
|
+
return concatUrl(
|
|
649
649
|
() => this.dataParent?.getBaseUrl(),
|
|
650
650
|
this.spec.baseUrl
|
|
651
651
|
);
|
|
@@ -732,7 +732,7 @@ function isDynamicOpacity(opacity) {
|
|
|
732
732
|
* @returns {function(number):number}
|
|
733
733
|
*/
|
|
734
734
|
function createViewOpacityFunction(view) {
|
|
735
|
-
const opacityDef = view.spec.opacity;
|
|
735
|
+
const opacityDef = "opacity" in view.spec ? view.spec.opacity : undefined;
|
|
736
736
|
|
|
737
737
|
if (opacityDef !== undefined) {
|
|
738
738
|
if (isNumber(opacityDef)) {
|
|
@@ -75,13 +75,9 @@ export function findDescendantsByPath(root: View, name: string): View[];
|
|
|
75
75
|
*/
|
|
76
76
|
export function findUniqueViewNames(root: View): Set<string>;
|
|
77
77
|
/**
|
|
78
|
-
* @param {
|
|
78
|
+
* @param {import("./view.js").default} viewRoot
|
|
79
79
|
*/
|
|
80
|
-
export function
|
|
81
|
-
/**
|
|
82
|
-
* @param {import("./layout/flexLayout.js").FlexDimensions} viewRootSize
|
|
83
|
-
*/
|
|
84
|
-
export function calculateCanvasSize(viewRootSize: import("./layout/flexLayout.js").FlexDimensions): {
|
|
80
|
+
export function calculateCanvasSize(viewRoot: import("./view.js").default): {
|
|
85
81
|
width: number;
|
|
86
82
|
height: number;
|
|
87
83
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viewUtils.d.ts","sourceRoot":"","sources":["../../../src/view/viewUtils.js"],"names":[],"mappings":"AAWA;;;;GAIG;AACH,qCAHW,OAAO,oBAAoB,EAAE,UAAU,GAAG,OAAO,iBAAiB,EAAE,YAAY,yBAK1F;AAED;;;;GAIG;AACH,oCAHW,OAAO,oBAAoB,EAAE,aAAa,GAAG,OAAO,iBAAiB,EAAE,YAAY,wBAQ7F;AAED;;;GAGG;AACH,+BAFW,IAAI,6EAMd;AAED;;;;GAIG;AACH,wCAFW,IAAI,UASd;AAED;;GAEG;AACH,kDAFW,IAAI,QAiBd;AAED;;;;;;;GAOG;AACH,4CAFW,IAAI,QAUd;AAED;;;;GAIG;AACH,qCAJW,IAAI,iBACJ,OAAO,qBAAqB,EAAE,OAAO,CAAC,IAAI,CAAC,wDAcrD;AAED;;;GAGG;AACH,wCAFW,IAAI;UAGO,QAAQ;aAAW,OAAO,oBAAoB,EAAE,OAAO;WAAS,OAAO,oBAAoB,EAAE,KAAK;UAAQ,OAAO,oBAAoB,EAAE,IAAI;IAqBhK;AAED;;;;;GAKG;AACH,2CALW,OAAO,iBAAiB,EAAE,UAAU,WACpC,MAAM,eACN,OAAO,yBAAyB,EAAE,OAAO,GACvC,QAAQ,OAAO,iBAAiB,EAAE,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"viewUtils.d.ts","sourceRoot":"","sources":["../../../src/view/viewUtils.js"],"names":[],"mappings":"AAWA;;;;GAIG;AACH,qCAHW,OAAO,oBAAoB,EAAE,UAAU,GAAG,OAAO,iBAAiB,EAAE,YAAY,yBAK1F;AAED;;;;GAIG;AACH,oCAHW,OAAO,oBAAoB,EAAE,aAAa,GAAG,OAAO,iBAAiB,EAAE,YAAY,wBAQ7F;AAED;;;GAGG;AACH,+BAFW,IAAI,6EAMd;AAED;;;;GAIG;AACH,wCAFW,IAAI,UASd;AAED;;GAEG;AACH,kDAFW,IAAI,QAiBd;AAED;;;;;;;GAOG;AACH,4CAFW,IAAI,QAUd;AAED;;;;GAIG;AACH,qCAJW,IAAI,iBACJ,OAAO,qBAAqB,EAAE,OAAO,CAAC,IAAI,CAAC,wDAcrD;AAED;;;GAGG;AACH,wCAFW,IAAI;UAGO,QAAQ;aAAW,OAAO,oBAAoB,EAAE,OAAO;WAAS,OAAO,oBAAoB,EAAE,KAAK;UAAQ,OAAO,oBAAoB,EAAE,IAAI;IAqBhK;AAED;;;;;GAKG;AACH,2CALW,OAAO,iBAAiB,EAAE,UAAU,WACpC,MAAM,eACN,OAAO,yBAAyB,EAAE,OAAO,GACvC,QAAQ,OAAO,iBAAiB,EAAE,QAAQ,CAAC,CAsCvD;AAED;;GAEG;AACH,gDAFoB,IAAI,QAAE,IAAI,EAAE,KAAE,IAAI,+BAkBrC;AAED;;;;;;GAMG;AACH,4CAJW,IAAI,QACJ,MAAM,GACJ,IAAI,EAAE,CAalB;AAED;;;GAGG;AACH,0CAFW,IAAI,eAqBd;AAOD;;GAEG;AACH,8CAFW,OAAO,WAAW,EAAE,OAAO;;;EAoBrC;AAvBM,uCAFI,MAAM,WAE0D;iBAzP9B,WAAW;qBAFnC,eAAe"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { isObject, isString } from "vega-util";
|
|
2
|
-
import { loader as vegaLoader } from "vega-loader";
|
|
3
2
|
|
|
4
3
|
import UnitView from "./unitView.js";
|
|
5
4
|
// eslint-disable-next-line no-unused-vars
|
|
@@ -8,6 +7,7 @@ import { buildDataFlow } from "./flowBuilder.js";
|
|
|
8
7
|
import { optimizeDataFlow } from "../data/flowOptimizer.js";
|
|
9
8
|
import { isFieldDef, primaryPositionalChannels } from "../encoder/encoder.js";
|
|
10
9
|
import { rollup } from "d3-array";
|
|
10
|
+
import { concatUrl, getDirectory } from "../utils/url.js";
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
*
|
|
@@ -146,30 +146,39 @@ export function findEncodedFields(view) {
|
|
|
146
146
|
*/
|
|
147
147
|
export async function loadExternalViewSpec(spec, baseUrl, viewContext) {
|
|
148
148
|
const importParam = spec.import;
|
|
149
|
-
if ("url" in importParam) {
|
|
150
|
-
|
|
151
|
-
|
|
149
|
+
if (!("url" in importParam)) {
|
|
150
|
+
throw new Error("Not an url import: " + JSON.stringify(importParam));
|
|
151
|
+
}
|
|
152
152
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
);
|
|
158
|
-
})
|
|
159
|
-
);
|
|
153
|
+
const url = concatUrl(baseUrl, importParam.url);
|
|
154
|
+
|
|
155
|
+
/** @type {import("../spec/view.js").ViewSpec} */
|
|
156
|
+
let importedSpec;
|
|
160
157
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
throw new Error(
|
|
166
|
-
`The imported spec "${url}" is not a view spec: ${JSON.stringify(
|
|
167
|
-
spec
|
|
168
|
-
)}`
|
|
169
|
-
);
|
|
158
|
+
try {
|
|
159
|
+
const result = await fetch(url);
|
|
160
|
+
if (!result.ok) {
|
|
161
|
+
throw new Error(`${result.status} ${result.statusText}`);
|
|
170
162
|
}
|
|
163
|
+
importedSpec = await result.json();
|
|
164
|
+
} catch (e) {
|
|
165
|
+
throw new Error(
|
|
166
|
+
`Could not load imported view spec: ${url}. Reason: ${e.message}`
|
|
167
|
+
);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
if (viewContext.isViewSpec(importedSpec)) {
|
|
171
|
+
importedSpec.baseUrl = concatUrl(
|
|
172
|
+
getDirectory(importParam.url),
|
|
173
|
+
importedSpec.baseUrl
|
|
174
|
+
);
|
|
175
|
+
return importedSpec;
|
|
171
176
|
} else {
|
|
172
|
-
throw new Error(
|
|
177
|
+
throw new Error(
|
|
178
|
+
`The imported spec "${url}" is not a view spec: ${JSON.stringify(
|
|
179
|
+
spec
|
|
180
|
+
)}`
|
|
181
|
+
);
|
|
173
182
|
}
|
|
174
183
|
}
|
|
175
184
|
|
|
@@ -245,25 +254,24 @@ export function findUniqueViewNames(root) {
|
|
|
245
254
|
export const isCustomViewName = (name) => !/^(layer|concat)\d+$/.test(name);
|
|
246
255
|
|
|
247
256
|
/**
|
|
248
|
-
* @param {
|
|
257
|
+
* @param {import("./view.js").default} viewRoot
|
|
249
258
|
*/
|
|
250
|
-
export function
|
|
251
|
-
|
|
252
|
-
|
|
259
|
+
export function calculateCanvasSize(viewRoot) {
|
|
260
|
+
const size = viewRoot.getSize();
|
|
261
|
+
const padding = viewRoot.getPadding();
|
|
253
262
|
|
|
254
|
-
/**
|
|
255
|
-
* @param {import("./layout/flexLayout.js").FlexDimensions} viewRootSize
|
|
256
|
-
*/
|
|
257
|
-
export function calculateCanvasSize(viewRootSize) {
|
|
258
263
|
// If a dimension has an absolutely specified size (in pixels), use it for the canvas size.
|
|
259
264
|
// However, if the dimension has a growing component, the canvas should be fit to the
|
|
260
265
|
// container.
|
|
261
266
|
// TODO: Enforce the minimum size (in case of both absolute and growing components).
|
|
262
267
|
|
|
263
|
-
/**
|
|
264
|
-
|
|
268
|
+
/**
|
|
269
|
+
* @param {import("./layout/flexLayout.js").SizeDef} dim
|
|
270
|
+
* @param {number} totalPad
|
|
271
|
+
*/
|
|
272
|
+
const f = (dim, totalPad) => (dim.grow > 0 ? undefined : dim.px + totalPad);
|
|
265
273
|
return {
|
|
266
|
-
width: f(
|
|
267
|
-
height: f(
|
|
274
|
+
width: f(size.width, padding.horizontalTotal),
|
|
275
|
+
height: f(size.height, padding.verticalTotal),
|
|
268
276
|
};
|
|
269
277
|
}
|
package/package.json
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
},
|
|
8
8
|
"contributors": [],
|
|
9
9
|
"license": "MIT",
|
|
10
|
-
"version": "0.50.
|
|
10
|
+
"version": "0.50.2",
|
|
11
11
|
"jsdelivr": "dist/bundle/index.js",
|
|
12
12
|
"unpkg": "dist/bundle/index.js",
|
|
13
13
|
"browser": "dist/bundle/index.js",
|
|
@@ -67,5 +67,5 @@
|
|
|
67
67
|
"devDependencies": {
|
|
68
68
|
"@types/long": "^4.0.1"
|
|
69
69
|
},
|
|
70
|
-
"gitHead": "
|
|
70
|
+
"gitHead": "4d37043854a961111612b046d8e49e285db81ee0"
|
|
71
71
|
}
|