@knowvah/dot-engine 2.0.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/dist/async/render-async.d.ts.map +1 -1
- package/dist/common/arith.d.ts +6 -0
- package/dist/common/arith.d.ts.map +1 -1
- package/dist/common/poly-sizing.d.ts.map +1 -1
- package/dist/common/textmeasure-factory.d.ts +2 -1
- package/dist/common/textmeasure-factory.d.ts.map +1 -1
- package/dist/common/textmeasure.d.ts +1 -1
- package/dist/common/textmeasure.d.ts.map +1 -1
- package/dist/index.js +25 -10
- package/dist/index.js.map +3 -3
- package/dist/layout/dot/splines-label.d.ts.map +1 -1
- package/dist/layout/fdp/normalize.d.ts.map +1 -1
- package/dist/render.js +25 -10
- package/dist/render.js.map +3 -3
- package/package.json +1 -1
- package/src/async/render-async.ts +6 -3
- package/src/common/arith.ts +9 -0
- package/src/common/poly-sizing.ts +2 -1
- package/src/common/textmeasure-factory.ts +20 -1
- package/src/common/textmeasure.ts +1 -1
- package/src/layout/dot/splines-label.ts +2 -1
- package/src/layout/fdp/normalize.ts +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"splines-label.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/splines-label.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"splines-label.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/splines-label.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAWxD,oDAAoD;AACpD,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9B,KAAK,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC,GAAG,EAAE,OAAO,CAAC;CACd;AAMD,uEAAuE;AACvE,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,CAMjE;AAED,kDAAkD;AAClD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,CAI/D;AAED,sEAAsE;AACtE,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,GAAG,MAAM,CAIvD;AAOD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAW1C;AAOD,8DAA8D;AAC9D,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAO5C;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAe9C;AAOD,yFAAyF;AACzF,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAEtC,kGAAkG;AAClG,eAAO,MAAM,gBAAgB,MAAM,CAAC;AA8EpC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAM/D;AAyED,4DAA4D;AAC5D,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,GAAG,IAAI,CActD;AAOD;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAQrD;AAiCD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAK9C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../../src/layout/fdp/normalize.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../../src/layout/fdp/normalize.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AA0ClD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,CA6B3C"}
|
package/dist/render.js
CHANGED
|
@@ -5426,6 +5426,15 @@ function adviseHostFaithful() {
|
|
|
5426
5426
|
"@knowvah/dot-engine: measuring text with built-in metrics (kerning/shaping not applied). For host-faithful sizing matching the rendering font, install `canvas` and call setTextMeasurer(new CanvasTextMeasurer(createCanvas(0,0).getContext('2d'))). Silence with GV_FONT_QUIET=1.\n"
|
|
5427
5427
|
);
|
|
5428
5428
|
}
|
|
5429
|
+
function offscreenMeasurer() {
|
|
5430
|
+
if (typeof OffscreenCanvas === "undefined") return void 0;
|
|
5431
|
+
try {
|
|
5432
|
+
const ctx2d = new OffscreenCanvas(0, 0).getContext("2d");
|
|
5433
|
+
return ctx2d ? new CanvasTextMeasurer(ctx2d) : void 0;
|
|
5434
|
+
} catch {
|
|
5435
|
+
return void 0;
|
|
5436
|
+
}
|
|
5437
|
+
}
|
|
5429
5438
|
function createMeasurer() {
|
|
5430
5439
|
if (override) return override;
|
|
5431
5440
|
const forced = envMeasurer();
|
|
@@ -5437,6 +5446,9 @@ function createMeasurer() {
|
|
|
5437
5446
|
if (ctx2d) return new CanvasTextMeasurer(ctx2d);
|
|
5438
5447
|
} catch {
|
|
5439
5448
|
}
|
|
5449
|
+
} else {
|
|
5450
|
+
const offscreen = offscreenMeasurer();
|
|
5451
|
+
if (offscreen) return offscreen;
|
|
5440
5452
|
}
|
|
5441
5453
|
adviseHostFaithful();
|
|
5442
5454
|
return new EstimateTextMeasurer();
|
|
@@ -10493,6 +10505,14 @@ function fms(a, b, c) {
|
|
|
10493
10505
|
return fma(-a, b, c);
|
|
10494
10506
|
}
|
|
10495
10507
|
|
|
10508
|
+
// src/common/arith.ts
|
|
10509
|
+
function cround(v) {
|
|
10510
|
+
return v >= 0 ? Math.floor(v + 0.5) : Math.ceil(v - 0.5);
|
|
10511
|
+
}
|
|
10512
|
+
function RADIANS(deg) {
|
|
10513
|
+
return deg / 180 * Math.PI;
|
|
10514
|
+
}
|
|
10515
|
+
|
|
10496
10516
|
// src/common/poly-sizing.ts
|
|
10497
10517
|
var GAP = 4;
|
|
10498
10518
|
var XPAD = 4 * GAP;
|
|
@@ -10581,7 +10601,7 @@ function ellipsePeripheryBB(bb, peripheries, penwidth, hasOutline) {
|
|
|
10581
10601
|
}
|
|
10582
10602
|
function transformUnitVertex(R2, g, c, bb) {
|
|
10583
10603
|
const D = { x: R2.x * (c.skewdist + R2.y * c.gdistortion) + R2.y * c.gskew, y: R2.y };
|
|
10584
|
-
const alpha = g.orientation
|
|
10604
|
+
const alpha = RADIANS(g.orientation) + Math.atan2(D.y, D.x);
|
|
10585
10605
|
const r = Math.sqrt(D.x * D.x + D.y * D.y);
|
|
10586
10606
|
return { x: r * Math.cos(alpha) * bb.x, y: r * Math.sin(alpha) * bb.y };
|
|
10587
10607
|
}
|
|
@@ -16758,11 +16778,6 @@ function initEdgeLabels(e, g, measurer) {
|
|
|
16758
16778
|
if (hasEnd) applyEndLabels(e, g, measurer);
|
|
16759
16779
|
}
|
|
16760
16780
|
|
|
16761
|
-
// src/common/arith.ts
|
|
16762
|
-
function cround(v) {
|
|
16763
|
-
return v >= 0 ? Math.floor(v + 0.5) : Math.ceil(v - 0.5);
|
|
16764
|
-
}
|
|
16765
|
-
|
|
16766
16781
|
// src/common/graph-init.ts
|
|
16767
16782
|
var RANKDIR_TB = 0;
|
|
16768
16783
|
var RANKDIR_LR = 1;
|
|
@@ -28895,7 +28910,7 @@ function applyPortlabelPos(e, headP) {
|
|
|
28895
28910
|
}
|
|
28896
28911
|
function writePortlabelPos(l, pe, pf, angleStr, distanceStr) {
|
|
28897
28912
|
const angleDeg = lateDouble(angleStr, PORT_LABEL_ANGLE, -180);
|
|
28898
|
-
const angle = Math.atan2(pf.y - pe.y, pf.x - pe.x) +
|
|
28913
|
+
const angle = Math.atan2(pf.y - pe.y, pf.x - pe.x) + RADIANS(angleDeg);
|
|
28899
28914
|
const distMult = lateDouble(distanceStr || void 0, 1, 0);
|
|
28900
28915
|
const dist4 = PORT_LABEL_DISTANCE * distMult;
|
|
28901
28916
|
l.pos.x = pe.x + dist4 * Math.cos(angle);
|
|
@@ -41782,7 +41797,7 @@ function angleSet(g) {
|
|
|
41782
41797
|
if (a === void 0 || a === "") return null;
|
|
41783
41798
|
const ang = parseAngle2(a);
|
|
41784
41799
|
if (ang === null) return null;
|
|
41785
|
-
return wrapDegrees(ang)
|
|
41800
|
+
return RADIANS(wrapDegrees(ang));
|
|
41786
41801
|
}
|
|
41787
41802
|
function parseAngle2(a) {
|
|
41788
41803
|
const m = /^\s*[+-]?(?:\d+\.?\d*|\.\d+)(?:[eE][-+]?\d+)?/.exec(a);
|
|
@@ -55202,8 +55217,8 @@ async function loadFonts(fontSet, fonts, timeoutMs) {
|
|
|
55202
55217
|
var DEFAULT_FONT_TIMEOUT_MS = 3e3;
|
|
55203
55218
|
function defaultFontSet() {
|
|
55204
55219
|
const doc = Reflect.get(globalThis, "document");
|
|
55205
|
-
|
|
55206
|
-
const fonts = Reflect.get(
|
|
55220
|
+
const owner = typeof doc === "object" && doc !== null ? doc : globalThis;
|
|
55221
|
+
const fonts = Reflect.get(owner, "fonts");
|
|
55207
55222
|
if (typeof fonts !== "object" || fonts === null) return void 0;
|
|
55208
55223
|
return fonts;
|
|
55209
55224
|
}
|