@nowline/layout 0.0.0-dev.20261018161512.gdb10ecc → 0.0.0-dev.20261019024645.g95fa9ba
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/chart-translation.d.ts +18 -0
- package/dist/chart-translation.d.ts.map +1 -0
- package/dist/chart-translation.js +77 -0
- package/dist/chart-translation.js.map +1 -0
- package/dist/layout-context.d.ts +25 -3
- package/dist/layout-context.d.ts.map +1 -1
- package/dist/layout-context.js +12 -2
- package/dist/layout-context.js.map +1 -1
- package/dist/nodes/include-node.d.ts.map +1 -1
- package/dist/nodes/include-node.js +3 -2
- package/dist/nodes/include-node.js.map +1 -1
- package/dist/nodes/milestone-node.d.ts +9 -4
- package/dist/nodes/milestone-node.d.ts.map +1 -1
- package/dist/nodes/milestone-node.js +10 -5
- package/dist/nodes/milestone-node.js.map +1 -1
- package/dist/phases/finalize.d.ts +3 -2
- package/dist/phases/finalize.d.ts.map +1 -1
- package/dist/phases/finalize.js +36 -33
- package/dist/phases/finalize.js.map +1 -1
- package/dist/phases/place.d.ts +1 -0
- package/dist/phases/place.d.ts.map +1 -1
- package/dist/phases/place.js +7 -2
- package/dist/phases/place.js.map +1 -1
- package/package.json +2 -2
- package/src/chart-translation.ts +77 -0
- package/src/layout-context.ts +32 -3
- package/src/nodes/include-node.ts +3 -2
- package/src/nodes/milestone-node.ts +21 -9
- package/src/phases/finalize.ts +40 -33
- package/src/phases/place.ts +8 -2
- package/src/types.ts +1 -1
- package/dist/positioned-shift.d.ts +0 -12
- package/dist/positioned-shift.d.ts.map +0 -1
- package/dist/positioned-shift.js +0 -65
- package/dist/positioned-shift.js.map +0 -1
- package/src/positioned-shift.ts +0 -60
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { PositionedIncludeRegion, PositionedMilestone, PositionedSwimlane, PositionedTrackChild } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Move a positioned item, group or parallel (and everything inside it)
|
|
4
|
+
* down by `dy`: its box, its inline-date glyphs, and for an item its
|
|
5
|
+
* label chips and `before:` overflow box.
|
|
6
|
+
*/
|
|
7
|
+
export declare function translateTrackChildY(child: PositionedTrackChild, dy: number): void;
|
|
8
|
+
/** Move a swimlane band, its children and its nested lanes down by `dy`. */
|
|
9
|
+
export declare function translateSwimlaneY(lane: PositionedSwimlane, dy: number): void;
|
|
10
|
+
/** Move an include region, its nested lanes and its own markers down by `dy`. */
|
|
11
|
+
export declare function translateIncludeY(region: PositionedIncludeRegion, dy: number): void;
|
|
12
|
+
/**
|
|
13
|
+
* Move the chart part of a host milestone down by `dy`: its cut line and
|
|
14
|
+
* its slack arrows. Its diamond and label sit in the header's marker band,
|
|
15
|
+
* outside the chart, and stay.
|
|
16
|
+
*/
|
|
17
|
+
export declare function translateMilestoneChartY(milestone: PositionedMilestone, dy: number): void;
|
|
18
|
+
//# sourceMappingURL=chart-translation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chart-translation.d.ts","sourceRoot":"","sources":["../src/chart-translation.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EACR,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACvB,MAAM,YAAY,CAAC;AAEpB;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,oBAAoB,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CASlF;AAED,4EAA4E;AAC5E,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAI7E;AAED,iFAAiF;AACjF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,uBAAuB,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAenF;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,mBAAmB,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAIzF"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
// The chart's one vertical translation.
|
|
2
|
+
//
|
|
3
|
+
// Placement lays the chart out in local coordinates, with its top at y 0
|
|
4
|
+
// (`phases/place.ts`). Its top on the canvas is known only once the header
|
|
5
|
+
// rows above it stop growing (a now-pill row reserved on an extended axis,
|
|
6
|
+
// a marker band the final pack grew), so finalize translates the whole
|
|
7
|
+
// chart there, once, on every layout (`growHeaderRows`, f7). An isolated
|
|
8
|
+
// region also moves its own lanes down below its marker band, once, while
|
|
9
|
+
// it is placed (`include-node.ts`).
|
|
10
|
+
//
|
|
11
|
+
// Every y the chart's positioned model carries is listed exactly once,
|
|
12
|
+
// here. A new y-bearing field on `PositionedItem` / `PositionedGroup` /
|
|
13
|
+
// `PositionedParallel` has to join it or it stays at its local y, a chart
|
|
14
|
+
// top above where it belongs on every render.
|
|
15
|
+
//
|
|
16
|
+
// Arrow attach ports are deliberately NOT stored anywhere that needs
|
|
17
|
+
// translating: they are derived from each item's final box when the
|
|
18
|
+
// arrows are built (see `item-port-geometry.ts`).
|
|
19
|
+
/**
|
|
20
|
+
* Move a positioned item, group or parallel (and everything inside it)
|
|
21
|
+
* down by `dy`: its box, its inline-date glyphs, and for an item its
|
|
22
|
+
* label chips and `before:` overflow box.
|
|
23
|
+
*/
|
|
24
|
+
export function translateTrackChildY(child, dy) {
|
|
25
|
+
child.box.y += dy;
|
|
26
|
+
for (const pin of child.inlineDatePins ?? [])
|
|
27
|
+
pin.glyphTopLeft.y += dy;
|
|
28
|
+
if (child.kind === 'item') {
|
|
29
|
+
for (const chip of child.labelChips)
|
|
30
|
+
chip.box.y += dy;
|
|
31
|
+
if (child.overflowBox)
|
|
32
|
+
child.overflowBox.y += dy;
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
for (const c of child.children)
|
|
36
|
+
translateTrackChildY(c, dy);
|
|
37
|
+
}
|
|
38
|
+
/** Move a swimlane band, its children and its nested lanes down by `dy`. */
|
|
39
|
+
export function translateSwimlaneY(lane, dy) {
|
|
40
|
+
lane.box.y += dy;
|
|
41
|
+
for (const child of lane.children)
|
|
42
|
+
translateTrackChildY(child, dy);
|
|
43
|
+
for (const nested of lane.nested)
|
|
44
|
+
translateSwimlaneY(nested, dy);
|
|
45
|
+
}
|
|
46
|
+
/** Move an include region, its nested lanes and its own markers down by `dy`. */
|
|
47
|
+
export function translateIncludeY(region, dy) {
|
|
48
|
+
region.box.y += dy;
|
|
49
|
+
for (const lane of region.nestedSwimlanes)
|
|
50
|
+
translateSwimlaneY(lane, dy);
|
|
51
|
+
for (const marker of [...(region.anchors ?? []), ...(region.milestones ?? [])]) {
|
|
52
|
+
marker.center.y += dy;
|
|
53
|
+
marker.labelBox.y += dy;
|
|
54
|
+
marker.cutTopY += dy;
|
|
55
|
+
marker.cutBottomY += dy;
|
|
56
|
+
}
|
|
57
|
+
for (const milestone of region.milestones ?? []) {
|
|
58
|
+
for (const arrow of milestone.slackArrows ?? [])
|
|
59
|
+
arrow.y += dy;
|
|
60
|
+
}
|
|
61
|
+
for (const edge of region.edges ?? []) {
|
|
62
|
+
for (const point of edge.waypoints)
|
|
63
|
+
point.y += dy;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Move the chart part of a host milestone down by `dy`: its cut line and
|
|
68
|
+
* its slack arrows. Its diamond and label sit in the header's marker band,
|
|
69
|
+
* outside the chart, and stay.
|
|
70
|
+
*/
|
|
71
|
+
export function translateMilestoneChartY(milestone, dy) {
|
|
72
|
+
milestone.cutTopY += dy;
|
|
73
|
+
milestone.cutBottomY += dy;
|
|
74
|
+
for (const arrow of milestone.slackArrows ?? [])
|
|
75
|
+
arrow.y += dy;
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=chart-translation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chart-translation.js","sourceRoot":"","sources":["../src/chart-translation.ts"],"names":[],"mappings":"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"}
|
package/dist/layout-context.d.ts
CHANGED
|
@@ -134,7 +134,22 @@ export interface LayoutContext {
|
|
|
134
134
|
* runs, before milestones are positioned (f6) and anchors built (f10).
|
|
135
135
|
*/
|
|
136
136
|
markerRowPlacements: Map<string, MarkerRowPlacement>;
|
|
137
|
+
/**
|
|
138
|
+
* The chart's top. Placement lays the chart out in local coordinates,
|
|
139
|
+
* with the top at 0; finalize translates every placed y once, by the
|
|
140
|
+
* final top, when the header rows above it stop growing (f7), and
|
|
141
|
+
* sets this to that top. A region's context keeps its local value.
|
|
142
|
+
*/
|
|
137
143
|
chartTopY: number;
|
|
144
|
+
/**
|
|
145
|
+
* The chart top the measure phase estimated, in canvas coordinates.
|
|
146
|
+
* Placement reads it only to bring a canvas y into the chart's local
|
|
147
|
+
* frame: a marker's estimated row centre, which a slack arrow from a
|
|
148
|
+
* marker predecessor starts on (`chartFrameY`). f7 translates by the
|
|
149
|
+
* final top, so such a y moves by the header rows' growth, the one
|
|
150
|
+
* shift it always took.
|
|
151
|
+
*/
|
|
152
|
+
estimatedChartTopY: number;
|
|
138
153
|
chartBottomY: number;
|
|
139
154
|
/**
|
|
140
155
|
* Y coordinate at the bottom of the last swimlane / include region.
|
|
@@ -168,8 +183,9 @@ export interface ContextSource {
|
|
|
168
183
|
/**
|
|
169
184
|
* Build a `LayoutContext` for the root file or for an isolated region.
|
|
170
185
|
* `chart` passes the chart extents through unchanged: the root sets
|
|
171
|
-
* `chartTopY`
|
|
172
|
-
* three y fields to its inner start
|
|
186
|
+
* `chartTopY` to the local top 0 with both bottoms at 0, a region sets all
|
|
187
|
+
* three y fields to its inner start; both pass the measure phase's
|
|
188
|
+
* estimate of the chart top. The canvas width is not part of a
|
|
173
189
|
* context: placement never reads it (finalize owns the `CanvasExtent`).
|
|
174
190
|
* A region passes its own footnote index, numbered on after the host's,
|
|
175
191
|
* and no marker placements. The caller seeds
|
|
@@ -185,7 +201,7 @@ export declare function createLayoutContext(source: ContextSource, shared: {
|
|
|
185
201
|
axisColumns?: AxisColumns;
|
|
186
202
|
bandScale: BandScale;
|
|
187
203
|
waves?: WaveLayoutState;
|
|
188
|
-
}, chart: Pick<LayoutContext, 'chartTopY' | 'chartBottomY' | 'swimlaneBottomY'>, init: {
|
|
204
|
+
}, chart: Pick<LayoutContext, 'chartTopY' | 'estimatedChartTopY' | 'chartBottomY' | 'swimlaneBottomY'>, init: {
|
|
189
205
|
footnotes?: FootnoteIndex;
|
|
190
206
|
markerRowPlacements?: Map<string, MarkerRowPlacement>;
|
|
191
207
|
}): LayoutContext;
|
|
@@ -199,4 +215,10 @@ export declare function createLayoutContext(source: ContextSource, shared: {
|
|
|
199
215
|
export interface LayoutHelpers {
|
|
200
216
|
sequenceOne: (child: ItemDeclaration | GroupBlock | ParallelBlock, cursor: TrackCursor, ctx: LayoutContext) => PositionedTrackChild;
|
|
201
217
|
}
|
|
218
|
+
/**
|
|
219
|
+
* A canvas y (a marker row in the header) in the chart's local frame:
|
|
220
|
+
* relative to the estimated chart top, so f7's translation by the final
|
|
221
|
+
* top moves it by exactly the header rows' growth.
|
|
222
|
+
*/
|
|
223
|
+
export declare function chartFrameY(canvasY: number, ctx: LayoutContext): number;
|
|
202
224
|
//# sourceMappingURL=layout-context.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout-context.d.ts","sourceRoot":"","sources":["../src/layout-context.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"layout-context.d.ts","sourceRoot":"","sources":["../src/layout-context.ts"],"names":[],"mappings":"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"}
|
package/dist/layout-context.js
CHANGED
|
@@ -23,8 +23,9 @@ export function scheduledItemDays(ctx, item) {
|
|
|
23
23
|
/**
|
|
24
24
|
* Build a `LayoutContext` for the root file or for an isolated region.
|
|
25
25
|
* `chart` passes the chart extents through unchanged: the root sets
|
|
26
|
-
* `chartTopY`
|
|
27
|
-
* three y fields to its inner start
|
|
26
|
+
* `chartTopY` to the local top 0 with both bottoms at 0, a region sets all
|
|
27
|
+
* three y fields to its inner start; both pass the measure phase's
|
|
28
|
+
* estimate of the chart top. The canvas width is not part of a
|
|
28
29
|
* context: placement never reads it (finalize owns the `CanvasExtent`).
|
|
29
30
|
* A region passes its own footnote index, numbered on after the host's,
|
|
30
31
|
* and no marker placements. The caller seeds
|
|
@@ -64,6 +65,7 @@ export function createLayoutContext(source, shared, chart, init) {
|
|
|
64
65
|
slackCorridors: [],
|
|
65
66
|
markerRowPlacements: init.markerRowPlacements ?? new Map(),
|
|
66
67
|
chartTopY: chart.chartTopY,
|
|
68
|
+
estimatedChartTopY: chart.estimatedChartTopY,
|
|
67
69
|
chartBottomY: chart.chartBottomY,
|
|
68
70
|
swimlaneBottomY: chart.swimlaneBottomY,
|
|
69
71
|
nextParallelId: 0,
|
|
@@ -74,4 +76,12 @@ export function createLayoutContext(source, shared, chart, init) {
|
|
|
74
76
|
...(shared.waves ? { waves: shared.waves } : {}),
|
|
75
77
|
};
|
|
76
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* A canvas y (a marker row in the header) in the chart's local frame:
|
|
81
|
+
* relative to the estimated chart top, so f7's translation by the final
|
|
82
|
+
* top moves it by exactly the header rows' growth.
|
|
83
|
+
*/
|
|
84
|
+
export function chartFrameY(canvasY, ctx) {
|
|
85
|
+
return canvasY - ctx.estimatedChartTopY;
|
|
86
|
+
}
|
|
77
87
|
//# sourceMappingURL=layout-context.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout-context.js","sourceRoot":"","sources":["../src/layout-context.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,yEAAyE;AACzE,0EAA0E;AAC1E,8BAA8B;AAa9B,OAAO,EAAwB,YAAY,EAAE,MAAM,eAAe,CAAC;AAuCnE,MAAM,UAAU,SAAS,CAAC,CAAS,EAAE,CAAS;IAC1C,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;AAC1C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAkB,EAAE,IAAqB;IACvE,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChD,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACX,iBAAiB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,WAAW,8BAA8B,CACxF,CAAC;IACN,CAAC;IACD,OAAO,SAAS,CAAC,IAAI,CAAC;AAC1B,CAAC;
|
|
1
|
+
{"version":3,"file":"layout-context.js","sourceRoot":"","sources":["../src/layout-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"include-node.d.ts","sourceRoot":"","sources":["../../src/nodes/include-node.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"include-node.d.ts","sourceRoot":"","sources":["../../src/nodes/include-node.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGpD,OAAO,EAAuB,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAEnG,OAAO,KAAK,EAAe,uBAAuB,EAAsB,MAAM,aAAa,CAAC;AAsB5F,wBAAgB,mBAAmB,CAC/B,OAAO,EAAE,cAAc,EAAE,EACzB,GAAG,EAAE,aAAa,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,aAAa,EACtB,WAAW,EAAE,MAAM,GACpB;IAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC;IAAC,QAAQ,EAAE,aAAa,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAiGjF;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAShG;AAED,4FAA4F;AAC5F,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAY/F"}
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
// vertically with the tick row above the region. The label tab is
|
|
5
5
|
// reserved 18 px above the first region; subsequent regions are
|
|
6
6
|
// separated by GAP_BETWEEN_REGIONS px.
|
|
7
|
+
import { translateSwimlaneY } from '../chart-translation.js';
|
|
7
8
|
import { includeChromeGeometry } from '../include-chrome-geometry.js';
|
|
8
9
|
import { createLayoutContext } from '../layout-context.js';
|
|
9
|
-
import { shiftSwimlaneY } from '../positioned-shift.js';
|
|
10
10
|
import { resolveStyle } from '../style-resolution.js';
|
|
11
11
|
import { seedWaveEdges } from '../wave-layout.js';
|
|
12
12
|
import { maxLeafItemRightX } from './content-extent.js';
|
|
@@ -47,6 +47,7 @@ export function buildIncludeRegions(regions, ctx, startY, helpers, chartRightX)
|
|
|
47
47
|
waves: ctx.waves,
|
|
48
48
|
}, {
|
|
49
49
|
chartTopY: innerStartY,
|
|
50
|
+
estimatedChartTopY: ctx.estimatedChartTopY,
|
|
50
51
|
chartBottomY: innerStartY,
|
|
51
52
|
swimlaneBottomY: innerStartY,
|
|
52
53
|
}, { footnotes: indexFootnotes(region.content.footnotes, footnotesBefore) });
|
|
@@ -79,7 +80,7 @@ export function buildIncludeRegions(regions, ctx, startY, helpers, chartRightX)
|
|
|
79
80
|
const markers = placeRegionMarkers(region, childCtx, y, innerStartY, cursorY, chartRightX);
|
|
80
81
|
if (markers.laneShift !== 0) {
|
|
81
82
|
for (const lane of nestedSwimlanes)
|
|
82
|
-
|
|
83
|
+
translateSwimlaneY(lane, markers.laneShift);
|
|
83
84
|
cursorY += markers.laneShift;
|
|
84
85
|
}
|
|
85
86
|
const innerEndY = cursorY;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"include-node.js","sourceRoot":"","sources":["../../src/nodes/include-node.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,qEAAqE;AACrE,kEAAkE;AAClE,kEAAkE;AAClE,gEAAgE;AAChE,uCAAuC;AAGvC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"include-node.js","sourceRoot":"","sources":["../../src/nodes/include-node.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import type { MilestoneDeclaration } from '@nowline/core';
|
|
2
|
-
import type
|
|
2
|
+
import { type LayoutContext } from '../layout-context.js';
|
|
3
3
|
import type { MarkerRowPlacement, PositionedMilestone, ResolvedStyle, SlackCorridor } from '../types.js';
|
|
4
4
|
/**
|
|
5
5
|
* One predecessor of a milestone with everything placement and the
|
|
6
6
|
* slack-arrow pipeline need: its end in time (`endX`, also where its slack
|
|
7
7
|
* or overrun line starts, specs/true-width-layout.md §3.5), its attach y
|
|
8
|
-
* (bar bottom strip when text spills, nominal
|
|
8
|
+
* in the chart's local frame (bar bottom strip when text spills, nominal
|
|
9
|
+
* row midline otherwise; a marker's estimated row centre), and
|
|
9
10
|
* its flow key (used to dedupe so a chained-flow's siblings collapse to
|
|
10
11
|
* the last entry).
|
|
11
12
|
*/
|
|
@@ -18,7 +19,11 @@ export interface MilestonePredecessor {
|
|
|
18
19
|
* its slack or overrun line starts here.
|
|
19
20
|
*/
|
|
20
21
|
endX: number;
|
|
21
|
-
|
|
22
|
+
/**
|
|
23
|
+
* Undefined when the reference has no y: a wave, or a marker whose
|
|
24
|
+
* midpoint is not written yet.
|
|
25
|
+
*/
|
|
26
|
+
y: number | undefined;
|
|
22
27
|
flowKey: string;
|
|
23
28
|
/**
|
|
24
29
|
* Set when `ref` names a wave: `endX` is the seeded wave end `E_k`.
|
|
@@ -109,7 +114,7 @@ export declare function positionMilestones(placements: readonly MilestonePlaceme
|
|
|
109
114
|
* `MilestoneNode.place` would emit on `slackArrows`, so the row-packer
|
|
110
115
|
* and the renderer agree on every arrow's geometry.
|
|
111
116
|
*
|
|
112
|
-
* Each non-binding predecessor (`x < maxEnd`,
|
|
117
|
+
* Each non-binding predecessor (`x < maxEnd`, with a y) becomes one
|
|
113
118
|
* corridor; date-pinned milestones whose latest predecessor overruns
|
|
114
119
|
* the date contribute a single back-pointing corridor between the
|
|
115
120
|
* pinned column and the predecessor's right edge. Wave predecessors draw
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"milestone-node.d.ts","sourceRoot":"","sources":["../../src/nodes/milestone-node.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAG1D,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"milestone-node.d.ts","sourceRoot":"","sources":["../../src/nodes/milestone-node.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAG1D,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAEvE,OAAO,KAAK,EACR,kBAAkB,EAElB,mBAAmB,EACnB,aAAa,EACb,aAAa,EAChB,MAAM,aAAa,CAAC;AAIrB;;;;;;;;GAQG;AACH,MAAM,WAAW,oBAAoB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ;;;;;OAKG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CACxC,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,EAAE,aAAa,GACnB,oBAAoB,EAAE,CA2BxB;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,oBAAoB,EAAE,GAAG,oBAAoB,EAAE,CAO5F;AAaD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,oBAAoB,EAAE,GAAG,oBAAoB,GAAG,IAAI,CAOjG;AAiBD;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,KAAK,EAAE,OAAO,CAAC;IACf,WAAW,EAAE,KAAK,CAAC;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,SAAS,CAAC;IACzD,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,aAAa,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,IAAI,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,aAAa;aAEF,EAAE,EAAE,MAAM;aACV,SAAS,EAAE,oBAAoB;IAFnD,YACoB,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,oBAAoB,EAC/C;IAEJ;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,GAAG,EAAE,aAAa,GAAG,kBAAkB,GAAG,IAAI,CA2GnD;CACJ;AAED,wBAAgB,eAAe,CAC3B,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,EAC7C,GAAG,EAAE,aAAa,GACnB,kBAAkB,EAAE,CAOtB;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAC9B,UAAU,EAAE,SAAS,kBAAkB,EAAE,EACzC,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAC9C,mBAAmB,EAAE,CA0BvB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CACjC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,eAAe,EAAE,oBAAoB,CAAC,EACrE,GAAG,EAAE,aAAa,GACnB,aAAa,EAAE,CA+CjB"}
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
// placement and its row (`placeMarkers`, f6).
|
|
14
14
|
import { formatIsoDate, parseIsoDate, propValue, propValues } from '../dsl-utils.js';
|
|
15
15
|
import { itemSlackAttachY } from '../item-port-geometry.js';
|
|
16
|
+
import { chartFrameY } from '../layout-context.js';
|
|
16
17
|
import { resolveStyle } from '../style-resolution.js';
|
|
17
18
|
import { isOnWaveBoundary, WAVE_EDGE_TOLERANCE_PX } from '../wave-layout.js';
|
|
18
19
|
import { MARKER_DIAMOND_RADIUS_PX } from './marker-geometry.js';
|
|
@@ -33,9 +34,13 @@ export function collectMilestonePredecessors(refs, ctx) {
|
|
|
33
34
|
const endX = ctx.entityRightEdges.get(ref);
|
|
34
35
|
if (endX === undefined)
|
|
35
36
|
continue;
|
|
37
|
+
// A marker's midpoint is a canvas y in the header's marker band.
|
|
38
|
+
const markerY = item ? undefined : ctx.entityMidpoints.get(ref)?.y;
|
|
36
39
|
const y = item
|
|
37
40
|
? itemSlackAttachY(item, ctx.bandScale.bandwidth())
|
|
38
|
-
:
|
|
41
|
+
: markerY === undefined
|
|
42
|
+
? undefined
|
|
43
|
+
: chartFrameY(markerY, ctx);
|
|
39
44
|
// A wave reads its seeded end `E_k` (logical, not inset), so a
|
|
40
45
|
// milestone bound by it sits exactly on the boundary.
|
|
41
46
|
if (!item && ctx.waves?.plan.index.has(ref)) {
|
|
@@ -72,7 +77,7 @@ export function lastPredecessorPerFlow(preds) {
|
|
|
72
77
|
* draws a slack arrow: it ends before the milestone. A wave draws none.
|
|
73
78
|
*/
|
|
74
79
|
function hasSlackArrow(p, maxEnd) {
|
|
75
|
-
return p.endX < maxEnd && p.y
|
|
80
|
+
return p.endX < maxEnd && p.y !== undefined && p.wave === undefined;
|
|
76
81
|
}
|
|
77
82
|
/**
|
|
78
83
|
* The predecessor a dated milestone's overrun arrow starts from: the one
|
|
@@ -162,7 +167,7 @@ export class MilestoneNode {
|
|
|
162
167
|
slackArrows = [
|
|
163
168
|
{
|
|
164
169
|
x: maxPred.endX,
|
|
165
|
-
y: maxPred.y
|
|
170
|
+
y: maxPred.y ?? chartFrameY(estimatedCenterY, ctx),
|
|
166
171
|
},
|
|
167
172
|
];
|
|
168
173
|
}
|
|
@@ -288,7 +293,7 @@ export function positionMilestones(placements, rows) {
|
|
|
288
293
|
* `MilestoneNode.place` would emit on `slackArrows`, so the row-packer
|
|
289
294
|
* and the renderer agree on every arrow's geometry.
|
|
290
295
|
*
|
|
291
|
-
* Each non-binding predecessor (`x < maxEnd`,
|
|
296
|
+
* Each non-binding predecessor (`x < maxEnd`, with a y) becomes one
|
|
292
297
|
* corridor; date-pinned milestones whose latest predecessor overruns
|
|
293
298
|
* the date contribute a single back-pointing corridor between the
|
|
294
299
|
* pinned column and the predecessor's right edge. Wave predecessors draw
|
|
@@ -314,7 +319,7 @@ export function collectSlackCorridors(milestones, ctx) {
|
|
|
314
319
|
continue;
|
|
315
320
|
// Wave references draw no arrow, so they own no corridor.
|
|
316
321
|
const maxPred = latestArrowPredecessor(dedupedPreds);
|
|
317
|
-
if (maxPred && maxPred.endX > milestoneX && maxPred.y
|
|
322
|
+
if (maxPred && maxPred.endX > milestoneX && maxPred.y !== undefined) {
|
|
318
323
|
out.push({
|
|
319
324
|
xStart: Math.min(maxPred.endX, milestoneX),
|
|
320
325
|
xEnd: Math.max(maxPred.endX, milestoneX),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"milestone-node.js","sourceRoot":"","sources":["../../src/nodes/milestone-node.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,uEAAuE;AACvE,yEAAyE;AACzE,oEAAoE;AACpE,wEAAwE;AACxE,oDAAoD;AACpD,EAAE;AACF,6EAA6E;AAC7E,kEAAkE;AAClE,yEAAyE;AACzE,kEAAkE;AAClE,uEAAuE;AACvE,8CAA8C;AAG9C,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"milestone-node.js","sourceRoot":"","sources":["../../src/nodes/milestone-node.ts"],"names":[],"mappings":"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"}
|
|
@@ -79,8 +79,9 @@ export type FinalizeTrace = (step: string, changed: boolean, why?: readonly stri
|
|
|
79
79
|
* §9, F3): a leaf item bar (a bug: the schedule's extent and the placement
|
|
80
80
|
* disagree), a spilled caption (its one capped column), a date-pinned marker
|
|
81
81
|
* (a dated anchor or milestone on the last day), or an after-only milestone
|
|
82
|
-
* on the window end (decision 14)
|
|
83
|
-
* half passes a window that
|
|
82
|
+
* on the window end (decision 14), in the main chart or in an isolated
|
|
83
|
+
* region. A diamond sits on its day, so its right half passes a window that
|
|
84
|
+
* ends on that day.
|
|
84
85
|
*/
|
|
85
86
|
export type TimelineExtensionCause = 'bar' | 'caption' | 'datedMarker' | 'afterMilestone';
|
|
86
87
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"finalize.d.ts","sourceRoot":"","sources":["../../src/phases/finalize.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"finalize.d.ts","sourceRoot":"","sources":["../../src/phases/finalize.ts"],"names":[],"mappings":"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"}
|
package/dist/phases/finalize.js
CHANGED
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
// fails.
|
|
16
16
|
import { AxisColumns } from '../axis-columns.js';
|
|
17
17
|
import { daysBetween } from '../calendar.js';
|
|
18
|
+
import { translateIncludeY, translateMilestoneChartY, translateSwimlaneY, } from '../chart-translation.js';
|
|
18
19
|
import { localeStrings } from '../i18n.js';
|
|
19
20
|
import { buildAnchors } from '../nodes/anchor-node.js';
|
|
20
21
|
import { maxLeafItemRightX, maxSpilledCaptionRightX } from '../nodes/content-extent.js';
|
|
@@ -27,7 +28,6 @@ import { positionMilestones } from '../nodes/milestone-node.js';
|
|
|
27
28
|
import { buildNowline } from '../nodes/nowline-node.js';
|
|
28
29
|
import { regionMarkerCanvasRightX } from '../nodes/region-markers.js';
|
|
29
30
|
import { buildWaveLegend, buildWaves } from '../nodes/wave-node.js';
|
|
30
|
-
import { shiftIncludeY, shiftSwimlaneY } from '../positioned-shift.js';
|
|
31
31
|
import { estimateTextWidth } from '../text-measure.js';
|
|
32
32
|
import { ATTRIBUTION_GLYPH_HEIGHT, ATTRIBUTION_GLYPH_WIDTH, GUTTER_PX, NOW_PILL_HEIGHT_PX, WAVE_LEGEND_GAP_PX, } from '../themes/shared.js';
|
|
33
33
|
import { TimeScale } from '../time-scale.js';
|
|
@@ -376,7 +376,8 @@ function growCanvasForSpill(fx) {
|
|
|
376
376
|
* what passes it is a spilled caption and the right half of a diamond on
|
|
377
377
|
* the window's last day (specs/layout-phases.md §9, F3). Measure the
|
|
378
378
|
* rightmost CONTENT BOX edge — leaf item bars (never a spilled caption,
|
|
379
|
-
* see `maxLeafItemRightX`) and marker diamonds
|
|
379
|
+
* see `maxLeafItemRightX`) and marker diamonds, an isolated region's own
|
|
380
|
+
* included — and grow the window to
|
|
380
381
|
* the next tick boundary when content overflows it. A spilled caption past
|
|
381
382
|
* that end grows it by one more full column at most, labelled by the
|
|
382
383
|
* same rules as any other column: the item measure capped the caption to
|
|
@@ -405,6 +406,19 @@ function extendTimeline(fx) {
|
|
|
405
406
|
else
|
|
406
407
|
afterRightX = Math.max(afterRightX, m.x + m.radius);
|
|
407
408
|
}
|
|
409
|
+
// An isolated region's own markers sit on the same axis: placement put
|
|
410
|
+
// them at their final centre, and the window already reaches their days.
|
|
411
|
+
for (const inc of includes) {
|
|
412
|
+
for (const a of inc.anchors ?? []) {
|
|
413
|
+
datedRightX = Math.max(datedRightX, a.center.x + a.radius);
|
|
414
|
+
}
|
|
415
|
+
for (const m of inc.milestones ?? []) {
|
|
416
|
+
if (m.fixed)
|
|
417
|
+
datedRightX = Math.max(datedRightX, m.center.x + m.radius);
|
|
418
|
+
else
|
|
419
|
+
afterRightX = Math.max(afterRightX, m.center.x + m.radius);
|
|
420
|
+
}
|
|
421
|
+
}
|
|
408
422
|
const maxContentRightX = Math.max(barRightX, datedRightX, afterRightX);
|
|
409
423
|
const tickDays = calendar.daysPerUnit(scale.unit);
|
|
410
424
|
// Working-day counts on both sides of the comparison: under `show` x
|
|
@@ -604,8 +618,9 @@ function placeMarkers(fx) {
|
|
|
604
618
|
}
|
|
605
619
|
/**
|
|
606
620
|
* f7 (was P12): grow the header rows to what the final axis and the final
|
|
607
|
-
* marker pack need,
|
|
608
|
-
*
|
|
621
|
+
* marker pack need, then translate the chart, which placement laid out
|
|
622
|
+
* with its top at 0, to its top below them, in one translation on every
|
|
623
|
+
* layout. The rows grow at two places: the now-pill row above the tick
|
|
609
624
|
* panel, when f2 brought `today` into the axis (L2; the tick panel, wave
|
|
610
625
|
* strip and marker band move down with it, and f5 already packed the band
|
|
611
626
|
* there), and the marker band's bottom, when the final pack needs more
|
|
@@ -620,8 +635,6 @@ function growHeaderRows(fx) {
|
|
|
620
635
|
const timeline = ctx.timeline;
|
|
621
636
|
let changed = false;
|
|
622
637
|
if (rowsTop.pillRowHeight !== bands.pillRowHeight) {
|
|
623
|
-
// The box keeps its bottom here; the chart shift below moves it.
|
|
624
|
-
timeline.box.height += timeline.box.y - rowsTop.timelineY;
|
|
625
638
|
timeline.box.y = rowsTop.timelineY;
|
|
626
639
|
timeline.pillRowHeight = rowsTop.pillRowHeight;
|
|
627
640
|
timeline.tickPanelY = rowsTop.tickPanelY;
|
|
@@ -639,35 +652,25 @@ function growHeaderRows(fx) {
|
|
|
639
652
|
}
|
|
640
653
|
// The beside card hugs this bottom (f15).
|
|
641
654
|
fx.setHeaderRowsBottom(rowsTop.markerRowY + timeline.markerRow.height);
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
fx.chartY.
|
|
646
|
-
fx.chartY.bottom
|
|
647
|
-
|
|
648
|
-
// `
|
|
649
|
-
//
|
|
650
|
-
//
|
|
651
|
-
//
|
|
652
|
-
//
|
|
653
|
-
//
|
|
654
|
-
// pass-2 inputs consumed during placement.
|
|
655
|
+
const topY = ctx.estimatedChartTopY + deltaY;
|
|
656
|
+
fx.chartY.top = topY;
|
|
657
|
+
fx.chartY.bottom += topY;
|
|
658
|
+
fx.chartY.swimlaneBottom += topY;
|
|
659
|
+
timeline.box.height = fx.chartY.bottom - timeline.box.y;
|
|
660
|
+
// The translation moves every y the chart's positioned model carries
|
|
661
|
+
// (see `chart-translation.ts`). No LayoutContext map needs it: item
|
|
662
|
+
// attach ports are derived from the (now-translated) boxes in
|
|
663
|
+
// `placedItems` when edges are built (f11), the edge maps hold x only,
|
|
664
|
+
// itemFlowKey holds strings, marker midpoints and markerRowPlacements
|
|
665
|
+
// sit in the header, and slackCorridors are pass-2 inputs consumed
|
|
666
|
+
// during placement.
|
|
655
667
|
for (const lane of fx.chart.swimlanes)
|
|
656
|
-
|
|
668
|
+
translateSwimlaneY(lane, topY);
|
|
657
669
|
for (const inc of fx.chart.includes)
|
|
658
|
-
|
|
659
|
-
for (const m of need(fx.draft.milestones, 'the milestones'))
|
|
660
|
-
m
|
|
661
|
-
|
|
662
|
-
// Slack arrows were baked with the pre-shift attach Y when the
|
|
663
|
-
// milestones were placed. Shift them now so they land on the same
|
|
664
|
-
// row band as the (now-shifted) predecessor bar.
|
|
665
|
-
if (m.slackArrows) {
|
|
666
|
-
for (const arrow of m.slackArrows)
|
|
667
|
-
arrow.y += deltaY;
|
|
668
|
-
}
|
|
669
|
-
}
|
|
670
|
-
return true;
|
|
670
|
+
translateIncludeY(inc, topY);
|
|
671
|
+
for (const m of need(fx.draft.milestones, 'the milestones'))
|
|
672
|
+
translateMilestoneChartY(m, topY);
|
|
673
|
+
return changed;
|
|
671
674
|
}
|
|
672
675
|
/**
|
|
673
676
|
* f8 (was P13): the mirrored bottom tick panel, directly above the
|