@nowline/embed 0.0.0-dev.20261019024645.g95fa9ba → 0.0.0-dev.20261019105958.g8f093e8
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/meta.json +21 -26
- package/dist/nowline.esm.js +133 -52
- package/dist/nowline.esm.js.map +3 -3
- package/dist/nowline.min.js +44 -44
- package/dist/nowline.min.js.map +3 -3
- package/package.json +6 -6
package/dist/meta.json
CHANGED
|
@@ -6107,7 +6107,7 @@
|
|
|
6107
6107
|
"format": "esm"
|
|
6108
6108
|
},
|
|
6109
6109
|
"../layout/dist/chart-translation.js": {
|
|
6110
|
-
"bytes":
|
|
6110
|
+
"bytes": 3417,
|
|
6111
6111
|
"imports": [],
|
|
6112
6112
|
"format": "esm"
|
|
6113
6113
|
},
|
|
@@ -6265,7 +6265,7 @@
|
|
|
6265
6265
|
"format": "esm"
|
|
6266
6266
|
},
|
|
6267
6267
|
"../layout/dist/layout-context.js": {
|
|
6268
|
-
"bytes":
|
|
6268
|
+
"bytes": 3490,
|
|
6269
6269
|
"imports": [
|
|
6270
6270
|
{
|
|
6271
6271
|
"path": "../layout/dist/calendar.js",
|
|
@@ -6496,7 +6496,7 @@
|
|
|
6496
6496
|
"format": "esm"
|
|
6497
6497
|
},
|
|
6498
6498
|
"../layout/dist/nodes/marker-band.js": {
|
|
6499
|
-
"bytes":
|
|
6499
|
+
"bytes": 13336,
|
|
6500
6500
|
"imports": [
|
|
6501
6501
|
{
|
|
6502
6502
|
"path": "../layout/dist/dsl-utils.js",
|
|
@@ -6517,7 +6517,7 @@
|
|
|
6517
6517
|
"format": "esm"
|
|
6518
6518
|
},
|
|
6519
6519
|
"../layout/dist/nodes/milestone-node.js": {
|
|
6520
|
-
"bytes":
|
|
6520
|
+
"bytes": 16559,
|
|
6521
6521
|
"imports": [
|
|
6522
6522
|
{
|
|
6523
6523
|
"path": "../layout/dist/dsl-utils.js",
|
|
@@ -6529,11 +6529,6 @@
|
|
|
6529
6529
|
"kind": "import-statement",
|
|
6530
6530
|
"original": "../item-port-geometry.js"
|
|
6531
6531
|
},
|
|
6532
|
-
{
|
|
6533
|
-
"path": "../layout/dist/layout-context.js",
|
|
6534
|
-
"kind": "import-statement",
|
|
6535
|
-
"original": "../layout-context.js"
|
|
6536
|
-
},
|
|
6537
6532
|
{
|
|
6538
6533
|
"path": "../layout/dist/style-resolution.js",
|
|
6539
6534
|
"kind": "import-statement",
|
|
@@ -6558,7 +6553,7 @@
|
|
|
6558
6553
|
"format": "esm"
|
|
6559
6554
|
},
|
|
6560
6555
|
"../layout/dist/nodes/region-markers.js": {
|
|
6561
|
-
"bytes":
|
|
6556
|
+
"bytes": 5923,
|
|
6562
6557
|
"imports": [
|
|
6563
6558
|
{
|
|
6564
6559
|
"path": "../layout/dist/text-measure.js",
|
|
@@ -6718,7 +6713,7 @@
|
|
|
6718
6713
|
"format": "esm"
|
|
6719
6714
|
},
|
|
6720
6715
|
"../layout/dist/nodes/include-node.js": {
|
|
6721
|
-
"bytes":
|
|
6716
|
+
"bytes": 7099,
|
|
6722
6717
|
"imports": [
|
|
6723
6718
|
{
|
|
6724
6719
|
"path": "../layout/dist/chart-translation.js",
|
|
@@ -6964,7 +6959,7 @@
|
|
|
6964
6959
|
"format": "esm"
|
|
6965
6960
|
},
|
|
6966
6961
|
"../layout/dist/phases/finalize.js": {
|
|
6967
|
-
"bytes":
|
|
6962
|
+
"bytes": 41313,
|
|
6968
6963
|
"imports": [
|
|
6969
6964
|
{
|
|
6970
6965
|
"path": "../layout/dist/axis-columns.js",
|
|
@@ -9549,7 +9544,7 @@
|
|
|
9549
9544
|
"format": "esm"
|
|
9550
9545
|
},
|
|
9551
9546
|
"../layout/dist/phases/place.js": {
|
|
9552
|
-
"bytes":
|
|
9547
|
+
"bytes": 10591,
|
|
9553
9548
|
"imports": [
|
|
9554
9549
|
{
|
|
9555
9550
|
"path": "../layout/dist/axis-columns.js",
|
|
@@ -10309,7 +10304,7 @@
|
|
|
10309
10304
|
"imports": [],
|
|
10310
10305
|
"exports": [],
|
|
10311
10306
|
"inputs": {},
|
|
10312
|
-
"bytes":
|
|
10307
|
+
"bytes": 3681395
|
|
10313
10308
|
},
|
|
10314
10309
|
"dist/nowline.min.js": {
|
|
10315
10310
|
"imports": [],
|
|
@@ -11154,7 +11149,7 @@
|
|
|
11154
11149
|
"bytesInOutput": 529
|
|
11155
11150
|
},
|
|
11156
11151
|
"../layout/dist/edge-routing.js": {
|
|
11157
|
-
"bytesInOutput":
|
|
11152
|
+
"bytesInOutput": 3280
|
|
11158
11153
|
},
|
|
11159
11154
|
"../layout/dist/frame-tab-geometry.js": {
|
|
11160
11155
|
"bytesInOutput": 357
|
|
@@ -11277,7 +11272,7 @@
|
|
|
11277
11272
|
"bytesInOutput": 2059
|
|
11278
11273
|
},
|
|
11279
11274
|
"../layout/dist/view-preset.js": {
|
|
11280
|
-
"bytesInOutput":
|
|
11275
|
+
"bytesInOutput": 5861
|
|
11281
11276
|
},
|
|
11282
11277
|
"../layout/dist/phases/date-window.js": {
|
|
11283
11278
|
"bytesInOutput": 1118
|
|
@@ -11286,7 +11281,7 @@
|
|
|
11286
11281
|
"bytesInOutput": 917
|
|
11287
11282
|
},
|
|
11288
11283
|
"../layout/dist/chart-translation.js": {
|
|
11289
|
-
"bytesInOutput":
|
|
11284
|
+
"bytesInOutput": 733
|
|
11290
11285
|
},
|
|
11291
11286
|
"../layout/dist/nodes/anchor-node.js": {
|
|
11292
11287
|
"bytesInOutput": 916
|
|
@@ -11316,7 +11311,7 @@
|
|
|
11316
11311
|
"bytesInOutput": 100
|
|
11317
11312
|
},
|
|
11318
11313
|
"../layout/dist/layout-context.js": {
|
|
11319
|
-
"bytesInOutput":
|
|
11314
|
+
"bytesInOutput": 1132
|
|
11320
11315
|
},
|
|
11321
11316
|
"../layout/dist/nodes/item-node.js": {
|
|
11322
11317
|
"bytesInOutput": 1704
|
|
@@ -11334,13 +11329,13 @@
|
|
|
11334
11329
|
"bytesInOutput": 1361
|
|
11335
11330
|
},
|
|
11336
11331
|
"../layout/dist/nodes/marker-band.js": {
|
|
11337
|
-
"bytesInOutput":
|
|
11332
|
+
"bytesInOutput": 2775
|
|
11338
11333
|
},
|
|
11339
11334
|
"../layout/dist/nodes/milestone-node.js": {
|
|
11340
|
-
"bytesInOutput":
|
|
11335
|
+
"bytesInOutput": 3598
|
|
11341
11336
|
},
|
|
11342
11337
|
"../layout/dist/nodes/region-markers.js": {
|
|
11343
|
-
"bytesInOutput":
|
|
11338
|
+
"bytesInOutput": 1279
|
|
11344
11339
|
},
|
|
11345
11340
|
"../layout/dist/lane-utilization.js": {
|
|
11346
11341
|
"bytesInOutput": 1842
|
|
@@ -11355,7 +11350,7 @@
|
|
|
11355
11350
|
"bytesInOutput": 1774
|
|
11356
11351
|
},
|
|
11357
11352
|
"../layout/dist/nodes/include-node.js": {
|
|
11358
|
-
"bytesInOutput":
|
|
11353
|
+
"bytesInOutput": 1431
|
|
11359
11354
|
},
|
|
11360
11355
|
"../layout/dist/nodes/nowline-node.js": {
|
|
11361
11356
|
"bytesInOutput": 506
|
|
@@ -11376,7 +11371,7 @@
|
|
|
11376
11371
|
"bytesInOutput": 1893
|
|
11377
11372
|
},
|
|
11378
11373
|
"../layout/dist/phases/finalize.js": {
|
|
11379
|
-
"bytesInOutput":
|
|
11374
|
+
"bytesInOutput": 11867
|
|
11380
11375
|
},
|
|
11381
11376
|
"../../node_modules/.pnpm/internmap@2.0.3/node_modules/internmap/src/index.js": {
|
|
11382
11377
|
"bytesInOutput": 633
|
|
@@ -11403,7 +11398,7 @@
|
|
|
11403
11398
|
"bytesInOutput": 727
|
|
11404
11399
|
},
|
|
11405
11400
|
"../layout/dist/phases/place.js": {
|
|
11406
|
-
"bytesInOutput":
|
|
11401
|
+
"bytesInOutput": 2171
|
|
11407
11402
|
},
|
|
11408
11403
|
"../layout/dist/nodes/group-node.js": {
|
|
11409
11404
|
"bytesInOutput": 1240
|
|
@@ -11463,7 +11458,7 @@
|
|
|
11463
11458
|
"bytesInOutput": 727
|
|
11464
11459
|
},
|
|
11465
11460
|
"../renderer/dist/svg/render.js": {
|
|
11466
|
-
"bytesInOutput":
|
|
11461
|
+
"bytesInOutput": 31140
|
|
11467
11462
|
},
|
|
11468
11463
|
"../browser/dist/pipeline.js": {
|
|
11469
11464
|
"bytesInOutput": 2126
|
|
@@ -11490,7 +11485,7 @@
|
|
|
11490
11485
|
"bytesInOutput": 257
|
|
11491
11486
|
}
|
|
11492
11487
|
},
|
|
11493
|
-
"bytes":
|
|
11488
|
+
"bytes": 673194
|
|
11494
11489
|
}
|
|
11495
11490
|
}
|
|
11496
11491
|
}
|
package/dist/nowline.esm.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @nowline/embed 0.0.0-dev.
|
|
1
|
+
/*! @nowline/embed 0.0.0-dev.20261019105958.g8f093e8 sha=8f093e8 built=2026-10-19T10:54:08Z */
|
|
2
2
|
var __create = Object.create;
|
|
3
3
|
var __defProp = Object.defineProperty;
|
|
4
4
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
@@ -32201,11 +32201,14 @@ function translateIncludeY(region, dy) {
|
|
|
32201
32201
|
point2.y += dy;
|
|
32202
32202
|
}
|
|
32203
32203
|
}
|
|
32204
|
-
function translateMilestoneChartY(milestone, dy) {
|
|
32204
|
+
function translateMilestoneChartY(milestone, placement, dy) {
|
|
32205
32205
|
milestone.cutTopY += dy;
|
|
32206
32206
|
milestone.cutBottomY += dy;
|
|
32207
|
-
|
|
32208
|
-
|
|
32207
|
+
milestone.slackArrows?.forEach((arrow, i2) => {
|
|
32208
|
+
const start = placement.slackArrows?.[i2];
|
|
32209
|
+
if (start && "y" in start)
|
|
32210
|
+
arrow.y += dy;
|
|
32211
|
+
});
|
|
32209
32212
|
}
|
|
32210
32213
|
|
|
32211
32214
|
// ../layout/dist/nodes/marker-geometry.js
|
|
@@ -32732,13 +32735,13 @@ function createLayoutContext(source, shared, chart, init2) {
|
|
|
32732
32735
|
entityLeftEdges: /* @__PURE__ */ new Map(),
|
|
32733
32736
|
entityRightEdges: /* @__PURE__ */ new Map(),
|
|
32734
32737
|
entityMidpoints: /* @__PURE__ */ new Map(),
|
|
32738
|
+
markerIds: /* @__PURE__ */ new Set([...source.content.anchors.keys(), ...source.content.milestones.keys()]),
|
|
32735
32739
|
placedItems: /* @__PURE__ */ new Map(),
|
|
32736
32740
|
itemFlowKey: /* @__PURE__ */ new Map(),
|
|
32737
32741
|
currentFlowKey: "",
|
|
32738
32742
|
slackCorridors: [],
|
|
32739
32743
|
markerRowPlacements: init2.markerRowPlacements ?? /* @__PURE__ */ new Map(),
|
|
32740
32744
|
chartTopY: chart.chartTopY,
|
|
32741
|
-
estimatedChartTopY: chart.estimatedChartTopY,
|
|
32742
32745
|
chartBottomY: chart.chartBottomY,
|
|
32743
32746
|
swimlaneBottomY: chart.swimlaneBottomY,
|
|
32744
32747
|
nextParallelId: 0,
|
|
@@ -32749,9 +32752,6 @@ function createLayoutContext(source, shared, chart, init2) {
|
|
|
32749
32752
|
...shared.waves ? { waves: shared.waves } : {}
|
|
32750
32753
|
};
|
|
32751
32754
|
}
|
|
32752
|
-
function chartFrameY(canvasY, ctx) {
|
|
32753
|
-
return canvasY - ctx.estimatedChartTopY;
|
|
32754
|
-
}
|
|
32755
32755
|
|
|
32756
32756
|
// ../layout/dist/nodes/item-node.js
|
|
32757
32757
|
var TEXT_INSET_PX = 12;
|
|
@@ -33644,10 +33644,22 @@ function markerLabelsRightX(entries, chartLeftX, chartRightX, estimateTextWidth2
|
|
|
33644
33644
|
function markerLabelWidth(e, estimateTextWidth2) {
|
|
33645
33645
|
return estimateTextWidth2(e.title, e.fontSize) * (e.bold ? MARKER_BOLD_WIDTH_FACTOR : 1);
|
|
33646
33646
|
}
|
|
33647
|
-
function
|
|
33647
|
+
function markerArrows(placements) {
|
|
33648
|
+
const out = [];
|
|
33649
|
+
for (const p of placements) {
|
|
33650
|
+
for (const a of p.slackArrows ?? []) {
|
|
33651
|
+
if ("marker" in a && a.marker !== p.id)
|
|
33652
|
+
out.push({ from: a.marker, to: p.id });
|
|
33653
|
+
}
|
|
33654
|
+
}
|
|
33655
|
+
return out;
|
|
33656
|
+
}
|
|
33657
|
+
function packMarkerRow(entries, chartLeftX, chartRightX, estimateTextWidth2, arrows = []) {
|
|
33648
33658
|
const sorted = [...entries].sort((a, b) => a.centerX - b.centerX);
|
|
33649
33659
|
const placements = /* @__PURE__ */ new Map();
|
|
33650
33660
|
let rowSpans = [];
|
|
33661
|
+
const byId = new Map(entries.map((e) => [e.id, e]));
|
|
33662
|
+
const knownArrows = arrows.filter((a) => byId.has(a.from) && byId.has(a.to));
|
|
33651
33663
|
for (const e of sorted) {
|
|
33652
33664
|
const labelWidth = markerLabelWidth(e, estimateTextWidth2);
|
|
33653
33665
|
const naturalRightX = e.centerX + e.radius + MARKER_LABEL_GAP_PX;
|
|
@@ -33658,17 +33670,47 @@ function packMarkerRow(entries, chartLeftX, chartRightX, estimateTextWidth2) {
|
|
|
33658
33670
|
const diamondRight = e.centerX + e.radius;
|
|
33659
33671
|
const sideXLeft = (s) => s === "right" ? naturalRightX : naturalLeftX;
|
|
33660
33672
|
const sideFitsCanvas = (s) => s === "right" ? fitsRightCanvas : fitsLeftCanvas;
|
|
33673
|
+
const runs = knownArrows.filter((a) => a.from === e.id).map((a) => {
|
|
33674
|
+
const to = byId.get(a.to);
|
|
33675
|
+
return {
|
|
33676
|
+
left: Math.min(e.centerX, to.centerX) + e.radius,
|
|
33677
|
+
right: Math.max(e.centerX, to.centerX) - to.radius
|
|
33678
|
+
};
|
|
33679
|
+
}).filter((r) => r.right > r.left);
|
|
33680
|
+
let minRow = -1;
|
|
33681
|
+
let maxRow = Number.POSITIVE_INFINITY;
|
|
33682
|
+
for (const a of knownArrows) {
|
|
33683
|
+
if (a.to === e.id) {
|
|
33684
|
+
const from = placements.get(a.from);
|
|
33685
|
+
if (from)
|
|
33686
|
+
maxRow = Math.min(maxRow, from.rowIndex);
|
|
33687
|
+
}
|
|
33688
|
+
if (a.from === e.id) {
|
|
33689
|
+
const to = placements.get(a.to);
|
|
33690
|
+
if (to)
|
|
33691
|
+
minRow = Math.max(minRow, to.rowIndex);
|
|
33692
|
+
}
|
|
33693
|
+
}
|
|
33694
|
+
const crossesOwnRun = (s) => {
|
|
33695
|
+
const xLeft = sideXLeft(s);
|
|
33696
|
+
return runs.some((r) => r.left < xLeft + labelWidth && r.right > xLeft);
|
|
33697
|
+
};
|
|
33698
|
+
const freeSide = (s) => sideFitsCanvas(s) && !crossesOwnRun(s);
|
|
33699
|
+
const growSide = freeSide("right") ? "right" : freeSide("left") ? "left" : fitsRightCanvas ? "right" : "left";
|
|
33661
33700
|
const collidesAt = (xLeft, row) => {
|
|
33662
33701
|
const extLeft2 = Math.min(diamondLeft, xLeft);
|
|
33663
33702
|
const extRight2 = Math.max(diamondRight, xLeft + labelWidth);
|
|
33664
|
-
|
|
33703
|
+
const own = [{ left: extLeft2, right: extRight2 }, ...runs];
|
|
33704
|
+
return rowSpans[row].some((s) => own.some((o) => s.left < o.right && s.right > o.left));
|
|
33665
33705
|
};
|
|
33666
33706
|
let placedRow = -1;
|
|
33667
33707
|
let placedSide = "right";
|
|
33668
33708
|
let placedXLeft = naturalRightX;
|
|
33669
33709
|
outer: for (let row = rowSpans.length - 1; row >= 0; row--) {
|
|
33710
|
+
if (row < minRow || row > maxRow)
|
|
33711
|
+
continue;
|
|
33670
33712
|
for (const side of ["right", "left"]) {
|
|
33671
|
-
if (!
|
|
33713
|
+
if (!freeSide(side))
|
|
33672
33714
|
continue;
|
|
33673
33715
|
const xLeft = sideXLeft(side);
|
|
33674
33716
|
if (collidesAt(xLeft, row))
|
|
@@ -33679,18 +33721,28 @@ function packMarkerRow(entries, chartLeftX, chartRightX, estimateTextWidth2) {
|
|
|
33679
33721
|
break outer;
|
|
33680
33722
|
}
|
|
33681
33723
|
}
|
|
33682
|
-
if (placedRow === -1) {
|
|
33724
|
+
if (placedRow === -1 && minRow >= 0 && minRow < maxRow) {
|
|
33725
|
+
const at = minRow + 1;
|
|
33726
|
+
for (const [id, p] of placements) {
|
|
33727
|
+
if (p.rowIndex >= at)
|
|
33728
|
+
placements.set(id, { ...p, rowIndex: p.rowIndex + 1 });
|
|
33729
|
+
}
|
|
33730
|
+
rowSpans.splice(at, 0, []);
|
|
33731
|
+
placedRow = at;
|
|
33732
|
+
placedSide = growSide;
|
|
33733
|
+
placedXLeft = sideXLeft(placedSide);
|
|
33734
|
+
} else if (placedRow === -1) {
|
|
33683
33735
|
for (const [id, p] of placements) {
|
|
33684
33736
|
placements.set(id, { ...p, rowIndex: p.rowIndex + 1 });
|
|
33685
33737
|
}
|
|
33686
33738
|
rowSpans = [[], ...rowSpans];
|
|
33687
33739
|
placedRow = 0;
|
|
33688
|
-
placedSide =
|
|
33740
|
+
placedSide = growSide;
|
|
33689
33741
|
placedXLeft = sideXLeft(placedSide);
|
|
33690
33742
|
}
|
|
33691
33743
|
const extLeft = Math.min(diamondLeft, placedXLeft);
|
|
33692
33744
|
const extRight = Math.max(diamondRight, placedXLeft + labelWidth);
|
|
33693
|
-
rowSpans[placedRow].push({ left: extLeft, right: extRight });
|
|
33745
|
+
rowSpans[placedRow].push({ left: extLeft, right: extRight }, ...runs);
|
|
33694
33746
|
placements.set(e.id, {
|
|
33695
33747
|
rowIndex: placedRow,
|
|
33696
33748
|
labelBox: { x: placedXLeft, y: 0, width: labelWidth, height: MARKER_LABEL_HEIGHT_PX },
|
|
@@ -33708,13 +33760,16 @@ function collectMilestonePredecessors(refs, ctx) {
|
|
|
33708
33760
|
const endX = ctx.entityRightEdges.get(ref);
|
|
33709
33761
|
if (endX === void 0)
|
|
33710
33762
|
continue;
|
|
33711
|
-
const
|
|
33712
|
-
const y = item ? itemSlackAttachY(item, ctx.bandScale.bandwidth()) : markerY === void 0 ? void 0 : chartFrameY(markerY, ctx);
|
|
33763
|
+
const y = item ? itemSlackAttachY(item, ctx.bandScale.bandwidth()) : void 0;
|
|
33713
33764
|
if (!item && ctx.waves?.plan.index.has(ref)) {
|
|
33714
33765
|
out.push({ ref, endX, y, flowKey: `wave:${ref}`, wave: ref });
|
|
33715
33766
|
continue;
|
|
33716
33767
|
}
|
|
33717
33768
|
const flowKey = ctx.itemFlowKey.get(ref) ?? `marker:${ref}`;
|
|
33769
|
+
if (!item && ctx.markerIds.has(ref)) {
|
|
33770
|
+
out.push({ ref, endX, y, marker: true, flowKey });
|
|
33771
|
+
continue;
|
|
33772
|
+
}
|
|
33718
33773
|
out.push({ ref, endX, y, flowKey });
|
|
33719
33774
|
}
|
|
33720
33775
|
return out;
|
|
@@ -33728,8 +33783,17 @@ function lastPredecessorPerFlow(preds) {
|
|
|
33728
33783
|
}
|
|
33729
33784
|
return Array.from(m.values());
|
|
33730
33785
|
}
|
|
33731
|
-
function
|
|
33732
|
-
return
|
|
33786
|
+
function isOnTopOf(p, x2) {
|
|
33787
|
+
return Math.abs(x2 - p.endX) <= 2 * MARKER_DIAMOND_RADIUS_PX;
|
|
33788
|
+
}
|
|
33789
|
+
function slackArrowStart(p, maxEnd) {
|
|
33790
|
+
if (p.endX >= maxEnd || p.wave !== void 0)
|
|
33791
|
+
return null;
|
|
33792
|
+
if (p.y !== void 0)
|
|
33793
|
+
return { x: p.endX, y: p.y };
|
|
33794
|
+
if (p.marker && !isOnTopOf(p, maxEnd))
|
|
33795
|
+
return { x: p.endX, marker: p.ref };
|
|
33796
|
+
return null;
|
|
33733
33797
|
}
|
|
33734
33798
|
function latestArrowPredecessor(preds) {
|
|
33735
33799
|
let maxPred = null;
|
|
@@ -33741,6 +33805,13 @@ function latestArrowPredecessor(preds) {
|
|
|
33741
33805
|
}
|
|
33742
33806
|
return maxPred;
|
|
33743
33807
|
}
|
|
33808
|
+
function overrunArrowStart(maxPred, x2, id) {
|
|
33809
|
+
if (maxPred.y !== void 0)
|
|
33810
|
+
return { x: maxPred.endX, y: maxPred.y };
|
|
33811
|
+
if (!maxPred.marker)
|
|
33812
|
+
return { x: maxPred.endX, marker: id };
|
|
33813
|
+
return isOnTopOf(maxPred, x2) ? null : { x: maxPred.endX, marker: maxPred.ref };
|
|
33814
|
+
}
|
|
33744
33815
|
function overrunningWave(preds, x2) {
|
|
33745
33816
|
let latest;
|
|
33746
33817
|
for (const p of preds) {
|
|
@@ -33763,12 +33834,12 @@ var MilestoneNode = class {
|
|
|
33763
33834
|
* resolvable `after:` predecessor (skipped silently — matches the
|
|
33764
33835
|
* legacy `buildMilestones` continue-paths).
|
|
33765
33836
|
*
|
|
33766
|
-
* Writes the milestone's entity edges and midpoint
|
|
33767
|
-
*
|
|
33837
|
+
* Writes the milestone's entity edges and midpoint; later milestones'
|
|
33838
|
+
* `after:` references read the edges. The midpoint's y is an
|
|
33768
33839
|
* estimate: the pre-pack row of a dated milestone, the band's first
|
|
33769
|
-
* row for an after-only one.
|
|
33770
|
-
* pack's row
|
|
33771
|
-
*
|
|
33840
|
+
* row for an after-only one. Nothing reads it before f6 replaces it
|
|
33841
|
+
* with the final pack's row, except f6's coverage trace, which
|
|
33842
|
+
* reports a milestone whose row differs from it.
|
|
33772
33843
|
*/
|
|
33773
33844
|
place(ctx) {
|
|
33774
33845
|
const m = this.milestone;
|
|
@@ -33799,12 +33870,9 @@ var MilestoneNode = class {
|
|
|
33799
33870
|
const maxPred = latestArrowPredecessor(dedupedPreds);
|
|
33800
33871
|
if (maxPred && maxPred.endX > x2) {
|
|
33801
33872
|
isOverrun = true;
|
|
33802
|
-
|
|
33803
|
-
|
|
33804
|
-
|
|
33805
|
-
y: maxPred.y ?? chartFrameY(estimatedCenterY, ctx)
|
|
33806
|
-
}
|
|
33807
|
-
];
|
|
33873
|
+
const arrow = overrunArrowStart(maxPred, x2, this.id);
|
|
33874
|
+
if (arrow)
|
|
33875
|
+
slackArrows = [arrow];
|
|
33808
33876
|
}
|
|
33809
33877
|
overrunByWave = overrunningWave(dedupedPreds, x2);
|
|
33810
33878
|
if (overrunByWave !== void 0)
|
|
@@ -33818,10 +33886,9 @@ var MilestoneNode = class {
|
|
|
33818
33886
|
fixed = false;
|
|
33819
33887
|
const arrows = [];
|
|
33820
33888
|
for (let i2 = 1; i2 < dedupedPreds.length; i2++) {
|
|
33821
|
-
const
|
|
33822
|
-
if (
|
|
33823
|
-
arrows.push(
|
|
33824
|
-
}
|
|
33889
|
+
const arrow = slackArrowStart(dedupedPreds[i2], maxEnd);
|
|
33890
|
+
if (arrow)
|
|
33891
|
+
arrows.push(arrow);
|
|
33825
33892
|
}
|
|
33826
33893
|
if (arrows.length > 0)
|
|
33827
33894
|
slackArrows = arrows;
|
|
@@ -33867,18 +33934,22 @@ function buildMilestones(milestones, ctx) {
|
|
|
33867
33934
|
return out;
|
|
33868
33935
|
}
|
|
33869
33936
|
function positionMilestones(placements, rows) {
|
|
33870
|
-
|
|
33871
|
-
const row = rows.get(
|
|
33937
|
+
const rowOf = (id) => {
|
|
33938
|
+
const row = rows.get(id);
|
|
33872
33939
|
if (!row) {
|
|
33873
|
-
throw new Error(`layout:
|
|
33940
|
+
throw new Error(`layout: marker "${id}" has no marker-row placement`);
|
|
33874
33941
|
}
|
|
33942
|
+
return row;
|
|
33943
|
+
};
|
|
33944
|
+
return placements.map((p) => {
|
|
33945
|
+
const row = rowOf(p.id);
|
|
33875
33946
|
const positioned = {
|
|
33876
33947
|
id: p.id,
|
|
33877
33948
|
title: p.title,
|
|
33878
33949
|
center: { x: p.x, y: row.centerY },
|
|
33879
33950
|
radius: p.radius,
|
|
33880
33951
|
fixed: p.fixed,
|
|
33881
|
-
slackArrows: p.slackArrows,
|
|
33952
|
+
slackArrows: p.slackArrows?.map((a) => "y" in a ? { x: a.x, y: a.y } : { x: a.x, y: rowOf(a.marker).centerY }),
|
|
33882
33953
|
isOverrun: p.isOverrun,
|
|
33883
33954
|
style: p.style,
|
|
33884
33955
|
cutTopY: p.cutTopY,
|
|
@@ -33927,11 +33998,12 @@ function collectSlackCorridors(milestones, ctx) {
|
|
|
33927
33998
|
const maxEnd = dedupedPreds[0].endX;
|
|
33928
33999
|
for (let i2 = 1; i2 < dedupedPreds.length; i2++) {
|
|
33929
34000
|
const p = dedupedPreds[i2];
|
|
33930
|
-
|
|
34001
|
+
const arrow = slackArrowStart(p, maxEnd);
|
|
34002
|
+
if (arrow && "y" in arrow) {
|
|
33931
34003
|
out.push({
|
|
33932
34004
|
xStart: p.endX,
|
|
33933
34005
|
xEnd: maxEnd,
|
|
33934
|
-
y:
|
|
34006
|
+
y: arrow.y,
|
|
33935
34007
|
slackPredId: p.ref,
|
|
33936
34008
|
milestoneId: id
|
|
33937
34009
|
});
|
|
@@ -33952,7 +34024,7 @@ function placeRegionMarkers(region, ctx, regionTopY, lanesTopY, lanesBottomY, ch
|
|
|
33952
34024
|
if (entries.length === 0)
|
|
33953
34025
|
return { anchors: [], milestones: [], laneShift: 0 };
|
|
33954
34026
|
const leftX = REGION_MARKER_INSET_X_PX;
|
|
33955
|
-
const packed = packMarkerRow(entries, leftX, markerLabelsRightX(entries, leftX, chartRightX - REGION_MARKER_INSET_X_PX, estimateTextWidth), estimateTextWidth);
|
|
34027
|
+
const packed = packMarkerRow(entries, leftX, markerLabelsRightX(entries, leftX, chartRightX - REGION_MARKER_INSET_X_PX, estimateTextWidth), estimateTextWidth, markerArrows(placements));
|
|
33956
34028
|
const bandTopY = regionTopY + REGION_MARKER_BAND_TOP_PX;
|
|
33957
34029
|
const laneShift = bandTopY + packed.rowCount * MARKER_ROW_PITCH_PX + REGION_MARKER_BAND_GAP_PX - lanesTopY;
|
|
33958
34030
|
const cutBottomY = lanesBottomY + laneShift;
|
|
@@ -33965,7 +34037,7 @@ function placeRegionMarkers(region, ctx, regionTopY, lanesTopY, lanesBottomY, ch
|
|
|
33965
34037
|
...p,
|
|
33966
34038
|
cutTopY: ctx.chartTopY,
|
|
33967
34039
|
cutBottomY,
|
|
33968
|
-
slackArrows: p.slackArrows?.map((a) =>
|
|
34040
|
+
slackArrows: p.slackArrows?.map((a) => "y" in a ? { x: a.x, y: a.y + laneShift } : a)
|
|
33969
34041
|
})), rows);
|
|
33970
34042
|
return { anchors: anchors2, milestones, laneShift };
|
|
33971
34043
|
}
|
|
@@ -34487,7 +34559,6 @@ function buildIncludeRegions(regions, ctx, startY, helpers, chartRightX) {
|
|
|
34487
34559
|
waves: ctx.waves
|
|
34488
34560
|
}, {
|
|
34489
34561
|
chartTopY: innerStartY,
|
|
34490
|
-
estimatedChartTopY: ctx.estimatedChartTopY,
|
|
34491
34562
|
chartBottomY: innerStartY,
|
|
34492
34563
|
swimlaneBottomY: innerStartY
|
|
34493
34564
|
}, { footnotes: indexFootnotes(region.content.footnotes, footnotesBefore) });
|
|
@@ -35646,7 +35717,7 @@ function fitWidths(fx) {
|
|
|
35646
35717
|
}
|
|
35647
35718
|
function packMarkers(fx) {
|
|
35648
35719
|
const entries = need(fx.draft.markerEntries, "the marker entries");
|
|
35649
|
-
const repacked = packMarkerRow(entries.all, fx.measured.header.chartLeftX, fx.canvas.final, estimateTextWidth);
|
|
35720
|
+
const repacked = packMarkerRow(entries.all, fx.measured.header.chartLeftX, fx.canvas.final, estimateTextWidth, markerArrows(fx.chart.milestones));
|
|
35650
35721
|
const placements = markerRowPlacements(repacked.placements, fx.headerRowsTop().markerRowY);
|
|
35651
35722
|
const rowCount = fx.measured.markers.hasEntities || entries.calendarCount > 0 ? Math.max(1, repacked.rowCount) : 0;
|
|
35652
35723
|
fx.setMarkerBand({ rowCount, placements });
|
|
@@ -35719,7 +35790,7 @@ function growHeaderRows(fx) {
|
|
|
35719
35790
|
changed = true;
|
|
35720
35791
|
}
|
|
35721
35792
|
fx.setHeaderRowsBottom(rowsTop.markerRowY + timeline.markerRow.height);
|
|
35722
|
-
const topY =
|
|
35793
|
+
const topY = bands.chartTopY + deltaY;
|
|
35723
35794
|
fx.chartY.top = topY;
|
|
35724
35795
|
fx.chartY.bottom += topY;
|
|
35725
35796
|
fx.chartY.swimlaneBottom += topY;
|
|
@@ -35728,8 +35799,11 @@ function growHeaderRows(fx) {
|
|
|
35728
35799
|
translateSwimlaneY(lane, topY);
|
|
35729
35800
|
for (const inc of fx.chart.includes)
|
|
35730
35801
|
translateIncludeY(inc, topY);
|
|
35731
|
-
|
|
35732
|
-
|
|
35802
|
+
const placements = fx.chart.milestones;
|
|
35803
|
+
const milestones = need(fx.draft.milestones, "the milestones");
|
|
35804
|
+
for (let i2 = 0; i2 < milestones.length; i2++) {
|
|
35805
|
+
translateMilestoneChartY(milestones[i2], placements[i2], topY);
|
|
35806
|
+
}
|
|
35733
35807
|
return changed;
|
|
35734
35808
|
}
|
|
35735
35809
|
function bottomTickPanel(fx) {
|
|
@@ -35859,7 +35933,7 @@ var FINALIZE_STEPS = [
|
|
|
35859
35933
|
},
|
|
35860
35934
|
{
|
|
35861
35935
|
name: "packMarkers",
|
|
35862
|
-
reads: ["canvas", "markerEntries", "headerBands", "scale"],
|
|
35936
|
+
reads: ["placement", "canvas", "markerEntries", "headerBands", "scale"],
|
|
35863
35937
|
writes: ["markerBand"],
|
|
35864
35938
|
run: packMarkers
|
|
35865
35939
|
},
|
|
@@ -35871,7 +35945,15 @@ var FINALIZE_STEPS = [
|
|
|
35871
35945
|
},
|
|
35872
35946
|
{
|
|
35873
35947
|
name: "growHeaderRows",
|
|
35874
|
-
reads: [
|
|
35948
|
+
reads: [
|
|
35949
|
+
"placement",
|
|
35950
|
+
"markerBand",
|
|
35951
|
+
"headerBands",
|
|
35952
|
+
"scale",
|
|
35953
|
+
"milestones",
|
|
35954
|
+
"chartTop",
|
|
35955
|
+
"laneBottom"
|
|
35956
|
+
],
|
|
35875
35957
|
writes: [
|
|
35876
35958
|
"chartTop",
|
|
35877
35959
|
"rowsBottom",
|
|
@@ -36210,7 +36292,7 @@ function placeChart(resolved, scope, window, measured, helpers) {
|
|
|
36210
36292
|
const { cal, calendar, schedule } = window;
|
|
36211
36293
|
const plan = schedule.plan;
|
|
36212
36294
|
const { originX, scale: timeScale } = measured.axis;
|
|
36213
|
-
const { timeline
|
|
36295
|
+
const { timeline } = measured;
|
|
36214
36296
|
const ctx = createLayoutContext(resolved, {
|
|
36215
36297
|
theme,
|
|
36216
36298
|
cal,
|
|
@@ -36223,7 +36305,6 @@ function placeChart(resolved, scope, window, measured, helpers) {
|
|
|
36223
36305
|
waves: plan ? createWaveLayoutState(plan, timeScale, originX, localeStrings(scope.locale).waveBackgroundItem) : void 0
|
|
36224
36306
|
}, {
|
|
36225
36307
|
chartTopY: 0,
|
|
36226
|
-
estimatedChartTopY: bands.chartTopY,
|
|
36227
36308
|
chartBottomY: 0,
|
|
36228
36309
|
swimlaneBottomY: 0
|
|
36229
36310
|
}, {
|
|
@@ -40655,8 +40736,8 @@ function effectiveTheme(theme, systemTheme) {
|
|
|
40655
40736
|
}
|
|
40656
40737
|
|
|
40657
40738
|
// src/index.ts
|
|
40658
|
-
var version = true ? "0.0.0-dev.
|
|
40659
|
-
var sha = true ? "
|
|
40739
|
+
var version = true ? "0.0.0-dev.20261019105958.g8f093e8" : "0.0.0";
|
|
40740
|
+
var sha = true ? "8f093e8" : "unknown";
|
|
40660
40741
|
var DEFAULT_SELECTOR = "pre code.language-nowline, code.language-nowline";
|
|
40661
40742
|
var initialConfig = {
|
|
40662
40743
|
theme: "auto",
|