@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.
@@ -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;AAUxD,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
+ {"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;AAyClD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,CA6B3C"}
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 * Math.PI / 180 + Math.atan2(D.y, D.x);
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) + Math.PI / 180 * angleDeg;
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) / 180 * Math.PI;
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
- if (typeof doc !== "object" || doc === null) return void 0;
55206
- const fonts = Reflect.get(doc, "fonts");
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
  }