@nowline/layout 0.2.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/LICENSE +190 -0
- package/README.md +103 -0
- package/dist/band-scale.d.ts +56 -0
- package/dist/band-scale.d.ts.map +1 -0
- package/dist/band-scale.js +86 -0
- package/dist/band-scale.js.map +1 -0
- package/dist/calendar.d.ts +79 -0
- package/dist/calendar.d.ts.map +1 -0
- package/dist/calendar.js +210 -0
- package/dist/calendar.js.map +1 -0
- package/dist/capacity.d.ts +72 -0
- package/dist/capacity.d.ts.map +1 -0
- package/dist/capacity.js +163 -0
- package/dist/capacity.js.map +1 -0
- package/dist/dsl-utils.d.ts +5 -0
- package/dist/dsl-utils.d.ts.map +1 -0
- package/dist/dsl-utils.js +28 -0
- package/dist/dsl-utils.js.map +1 -0
- package/dist/edge-routing.d.ts +89 -0
- package/dist/edge-routing.d.ts.map +1 -0
- package/dist/edge-routing.js +435 -0
- package/dist/edge-routing.js.map +1 -0
- package/dist/frame-tab-geometry.d.ts +78 -0
- package/dist/frame-tab-geometry.d.ts.map +1 -0
- package/dist/frame-tab-geometry.js +115 -0
- package/dist/frame-tab-geometry.js.map +1 -0
- package/dist/header-card-geometry.d.ts +29 -0
- package/dist/header-card-geometry.d.ts.map +1 -0
- package/dist/header-card-geometry.js +41 -0
- package/dist/header-card-geometry.js.map +1 -0
- package/dist/i18n.d.ts +48 -0
- package/dist/i18n.d.ts.map +1 -0
- package/dist/i18n.js +114 -0
- package/dist/i18n.js.map +1 -0
- package/dist/include-chrome-geometry.d.ts +86 -0
- package/dist/include-chrome-geometry.d.ts.map +1 -0
- package/dist/include-chrome-geometry.js +104 -0
- package/dist/include-chrome-geometry.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/item-bar-geometry.d.ts +127 -0
- package/dist/item-bar-geometry.d.ts.map +1 -0
- package/dist/item-bar-geometry.js +173 -0
- package/dist/item-bar-geometry.js.map +1 -0
- package/dist/lane-utilization.d.ts +90 -0
- package/dist/lane-utilization.d.ts.map +1 -0
- package/dist/lane-utilization.js +206 -0
- package/dist/lane-utilization.js.map +1 -0
- package/dist/layout-context.d.ts +143 -0
- package/dist/layout-context.d.ts.map +1 -0
- package/dist/layout-context.js +8 -0
- package/dist/layout-context.js.map +1 -0
- package/dist/layout.d.ts +18 -0
- package/dist/layout.d.ts.map +1 -0
- package/dist/layout.js +1213 -0
- package/dist/layout.js.map +1 -0
- package/dist/nodes/anchor-node.d.ts +16 -0
- package/dist/nodes/anchor-node.d.ts.map +1 -0
- package/dist/nodes/anchor-node.js +68 -0
- package/dist/nodes/anchor-node.js.map +1 -0
- package/dist/nodes/footnote-node.d.ts +10 -0
- package/dist/nodes/footnote-node.d.ts.map +1 -0
- package/dist/nodes/footnote-node.js +41 -0
- package/dist/nodes/footnote-node.js.map +1 -0
- package/dist/nodes/group-node.d.ts +29 -0
- package/dist/nodes/group-node.d.ts.map +1 -0
- package/dist/nodes/group-node.js +187 -0
- package/dist/nodes/group-node.js.map +1 -0
- package/dist/nodes/include-node.d.ts +16 -0
- package/dist/nodes/include-node.d.ts.map +1 -0
- package/dist/nodes/include-node.js +117 -0
- package/dist/nodes/include-node.js.map +1 -0
- package/dist/nodes/item-node.d.ts +51 -0
- package/dist/nodes/item-node.d.ts.map +1 -0
- package/dist/nodes/item-node.js +108 -0
- package/dist/nodes/item-node.js.map +1 -0
- package/dist/nodes/marker-geometry.d.ts +22 -0
- package/dist/nodes/marker-geometry.d.ts.map +1 -0
- package/dist/nodes/marker-geometry.js +38 -0
- package/dist/nodes/marker-geometry.js.map +1 -0
- package/dist/nodes/milestone-node.d.ts +48 -0
- package/dist/nodes/milestone-node.d.ts.map +1 -0
- package/dist/nodes/milestone-node.js +210 -0
- package/dist/nodes/milestone-node.js.map +1 -0
- package/dist/nodes/parallel-node.d.ts +21 -0
- package/dist/nodes/parallel-node.d.ts.map +1 -0
- package/dist/nodes/parallel-node.js +80 -0
- package/dist/nodes/parallel-node.js.map +1 -0
- package/dist/nodes/roadmap-node.d.ts +76 -0
- package/dist/nodes/roadmap-node.d.ts.map +1 -0
- package/dist/nodes/roadmap-node.js +788 -0
- package/dist/nodes/roadmap-node.js.map +1 -0
- package/dist/nodes/swimlane-node.d.ts +38 -0
- package/dist/nodes/swimlane-node.d.ts.map +1 -0
- package/dist/nodes/swimlane-node.js +308 -0
- package/dist/nodes/swimlane-node.js.map +1 -0
- package/dist/renderable.d.ts +44 -0
- package/dist/renderable.d.ts.map +1 -0
- package/dist/renderable.js +21 -0
- package/dist/renderable.js.map +1 -0
- package/dist/row-packer.d.ts +125 -0
- package/dist/row-packer.d.ts.map +1 -0
- package/dist/row-packer.js +169 -0
- package/dist/row-packer.js.map +1 -0
- package/dist/style-resolution.d.ts +14 -0
- package/dist/style-resolution.d.ts.map +1 -0
- package/dist/style-resolution.js +191 -0
- package/dist/style-resolution.js.map +1 -0
- package/dist/themes/dark.d.ts +4 -0
- package/dist/themes/dark.d.ts.map +1 -0
- package/dist/themes/dark.js +241 -0
- package/dist/themes/dark.js.map +1 -0
- package/dist/themes/index.d.ts +15 -0
- package/dist/themes/index.d.ts.map +1 -0
- package/dist/themes/index.js +30 -0
- package/dist/themes/index.js.map +1 -0
- package/dist/themes/light.d.ts +4 -0
- package/dist/themes/light.d.ts.map +1 -0
- package/dist/themes/light.js +248 -0
- package/dist/themes/light.js.map +1 -0
- package/dist/themes/shape.d.ts +194 -0
- package/dist/themes/shape.d.ts.map +1 -0
- package/dist/themes/shape.js +6 -0
- package/dist/themes/shape.js.map +1 -0
- package/dist/themes/shared.d.ts +145 -0
- package/dist/themes/shared.d.ts.map +1 -0
- package/dist/themes/shared.js +310 -0
- package/dist/themes/shared.js.map +1 -0
- package/dist/time-scale.d.ts +39 -0
- package/dist/time-scale.d.ts.map +1 -0
- package/dist/time-scale.js +62 -0
- package/dist/time-scale.js.map +1 -0
- package/dist/types.d.ts +483 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/dist/view-preset.d.ts +23 -0
- package/dist/view-preset.d.ts.map +1 -0
- package/dist/view-preset.js +146 -0
- package/dist/view-preset.js.map +1 -0
- package/dist/working-calendar.d.ts +14 -0
- package/dist/working-calendar.d.ts.map +1 -0
- package/dist/working-calendar.js +74 -0
- package/dist/working-calendar.js.map +1 -0
- package/package.json +37 -0
- package/src/band-scale.ts +115 -0
- package/src/calendar.ts +244 -0
- package/src/capacity.ts +191 -0
- package/src/dsl-utils.ts +30 -0
- package/src/edge-routing.ts +550 -0
- package/src/frame-tab-geometry.ts +165 -0
- package/src/header-card-geometry.ts +48 -0
- package/src/i18n.ts +124 -0
- package/src/include-chrome-geometry.ts +156 -0
- package/src/index.ts +116 -0
- package/src/item-bar-geometry.ts +222 -0
- package/src/lane-utilization.ts +259 -0
- package/src/layout-context.ts +182 -0
- package/src/layout.ts +1446 -0
- package/src/nodes/anchor-node.ts +77 -0
- package/src/nodes/footnote-node.ts +60 -0
- package/src/nodes/group-node.ts +252 -0
- package/src/nodes/include-node.ts +168 -0
- package/src/nodes/item-node.ts +171 -0
- package/src/nodes/marker-geometry.ts +43 -0
- package/src/nodes/milestone-node.ts +263 -0
- package/src/nodes/parallel-node.ts +101 -0
- package/src/nodes/roadmap-node.ts +957 -0
- package/src/nodes/swimlane-node.ts +423 -0
- package/src/renderable.ts +68 -0
- package/src/row-packer.ts +271 -0
- package/src/style-resolution.ts +243 -0
- package/src/themes/dark.ts +244 -0
- package/src/themes/index.ts +36 -0
- package/src/themes/light.ts +251 -0
- package/src/themes/shape.ts +230 -0
- package/src/themes/shared.ts +369 -0
- package/src/time-scale.ts +78 -0
- package/src/types.ts +607 -0
- package/src/view-preset.ts +180 -0
- package/src/working-calendar.ts +91 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roadmap-node.js","sourceRoot":"","sources":["../../src/nodes/roadmap-node.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { EntityProperty, GroupBlock, ItemDeclaration, ParallelBlock, SwimlaneDeclaration } from '@nowline/core';
|
|
2
|
+
import type { LayoutContext, TrackCursor } from '../layout-context.js';
|
|
3
|
+
import type { PositionedItem, PositionedSwimlane, PositionedTrackChild } from '../types.js';
|
|
4
|
+
/** Helpers that SwimlaneNode delegates to until the rest of m2.5c lands. */
|
|
5
|
+
export interface SwimlaneNodeDeps {
|
|
6
|
+
sequenceItem: (child: ItemDeclaration, cursor: TrackCursor, ctx: LayoutContext, ownerOverride?: string) => PositionedItem;
|
|
7
|
+
sequenceOne: (child: ItemDeclaration | GroupBlock | ParallelBlock, cursor: TrackCursor, ctx: LayoutContext) => PositionedTrackChild;
|
|
8
|
+
resolveChildStart: (props: EntityProperty[], seqDefault: number, laneLeftX: number, ctx: LayoutContext) => number;
|
|
9
|
+
newCursor: (x: number, y: number) => TrackCursor;
|
|
10
|
+
estimateTextWidth: (text: string, fontSize: number) => number;
|
|
11
|
+
/** Predict the extra vertical height an item's wrapped label-chip
|
|
12
|
+
* rows will add to its bar; used to size the row-packer's row
|
|
13
|
+
* pitch ahead of the call to `sequenceItem`. */
|
|
14
|
+
predictItemChipExtraHeight: (item: ItemDeclaration, ctx: LayoutContext) => number;
|
|
15
|
+
}
|
|
16
|
+
export interface SwimlaneNodeInput {
|
|
17
|
+
lane: SwimlaneDeclaration;
|
|
18
|
+
bandIndex: number;
|
|
19
|
+
}
|
|
20
|
+
export interface PlacedSwimlaneGeometry {
|
|
21
|
+
positioned: PositionedSwimlane;
|
|
22
|
+
usedHeight: number;
|
|
23
|
+
/** Rightmost x reached by any item or its spilled caption. */
|
|
24
|
+
usedRightX: number;
|
|
25
|
+
}
|
|
26
|
+
/** Anchor point passed to `SwimlaneNode.place`. */
|
|
27
|
+
export interface SwimlaneOrigin {
|
|
28
|
+
x: number;
|
|
29
|
+
y: number;
|
|
30
|
+
}
|
|
31
|
+
export declare class SwimlaneNode {
|
|
32
|
+
readonly input: SwimlaneNodeInput;
|
|
33
|
+
private readonly deps;
|
|
34
|
+
constructor(input: SwimlaneNodeInput, deps: SwimlaneNodeDeps);
|
|
35
|
+
get id(): string;
|
|
36
|
+
place(origin: SwimlaneOrigin, ctx: LayoutContext): PlacedSwimlaneGeometry;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=swimlane-node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swimlane-node.d.ts","sourceRoot":"","sources":["../../src/nodes/swimlane-node.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EACR,cAAc,EACd,UAAU,EACV,eAAe,EACf,aAAa,EACb,mBAAmB,EACtB,MAAM,eAAe,CAAC;AAYvB,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAIvE,OAAO,KAAK,EAGR,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACvB,MAAM,aAAa,CAAC;AAkCrB,4EAA4E;AAC5E,MAAM,WAAW,gBAAgB;IAC7B,YAAY,EAAE,CACV,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,aAAa,EAClB,aAAa,CAAC,EAAE,MAAM,KACrB,cAAc,CAAC;IACpB,WAAW,EAAE,CACT,KAAK,EAAE,eAAe,GAAG,UAAU,GAAG,aAAa,EACnD,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,aAAa,KACjB,oBAAoB,CAAC;IAC1B,iBAAiB,EAAE,CACf,KAAK,EAAE,cAAc,EAAE,EACvB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,aAAa,KACjB,MAAM,CAAC;IACZ,SAAS,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,WAAW,CAAC;IACjD,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9D;;qDAEiD;IACjD,0BAA0B,EAAE,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,aAAa,KAAK,MAAM,CAAC;CACrF;AAED,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,mBAAmB,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,sBAAsB;IACnC,UAAU,EAAE,kBAAkB,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,mDAAmD;AACnD,MAAM,WAAW,cAAc;IAC3B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACb;AA0ED,qBAAa,YAAY;aAED,KAAK,EAAE,iBAAiB;IAExC,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAFL,KAAK,EAAE,iBAAiB,EAEvB,IAAI,EAAE,gBAAgB;IAG3C,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,KAAK,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,aAAa,GAAG,sBAAsB;CAqN5E"}
|
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
// SwimlaneNode — second Renderable entity in the m2.5c port. Owns the
|
|
2
|
+
// per-lane row-packing decisions (title-tab top-pad collapse, sibling row
|
|
3
|
+
// bumps, previous-title-spill carry-forward, parallels/groups owning
|
|
4
|
+
// fresh rows) and emits a `PositionedSwimlane` plus the band's used
|
|
5
|
+
// height.
|
|
6
|
+
//
|
|
7
|
+
// Step-2 transitional shape:
|
|
8
|
+
// - Item children flow through the injected `deps.sequenceItem`. Once
|
|
9
|
+
// ItemNode's wire-in is complete (step 1 — done) the production
|
|
10
|
+
// `sequenceItem` already routes through ItemNode internally; deferring
|
|
11
|
+
// the recursive Renderable call here keeps the diff small.
|
|
12
|
+
// - Parallel + group children flow through `deps.sequenceOne` until
|
|
13
|
+
// their own nodes land in step 3.
|
|
14
|
+
// - The Renderable interface's `measure(MeasureContext)` is not yet
|
|
15
|
+
// wired through the production pipeline. The composition-root work
|
|
16
|
+
// in step 5 (`RoadmapNode`) will exercise it; meanwhile the legacy
|
|
17
|
+
// two-pass "buildSwimlane returns positioned + usedHeight" shape is
|
|
18
|
+
// preserved.
|
|
19
|
+
import { isItemDeclaration } from '@nowline/core';
|
|
20
|
+
import { deriveItemDurationDays } from '../calendar.js';
|
|
21
|
+
import { estimateCapacitySuffixWidth, formatCapacityNumber, parseCapacityValue, resolveCapacityIcon, } from '../capacity.js';
|
|
22
|
+
import { propValue } from '../dsl-utils.js';
|
|
23
|
+
import { frameTabGeometry } from '../frame-tab-geometry.js';
|
|
24
|
+
import { computeLaneUtilization, resolveLaneUtilizationThresholds } from '../lane-utilization.js';
|
|
25
|
+
import { RowPacker } from '../row-packer.js';
|
|
26
|
+
import { resolveStyle } from '../style-resolution.js';
|
|
27
|
+
import { ITEM_INSET_PX, MIN_ITEM_WIDTH } from '../themes/shared.js';
|
|
28
|
+
/**
|
|
29
|
+
* Font size (px) the renderer uses for the lane capacity badge. Mirrors
|
|
30
|
+
* the owner-badge font size in `renderSwimlane` so the two reads as a
|
|
31
|
+
* single info row inside the chiclet. Width estimates here must use the
|
|
32
|
+
* same value or the geometry-collision math diverges from the painted
|
|
33
|
+
* footprint.
|
|
34
|
+
*/
|
|
35
|
+
const LANE_CAPACITY_BADGE_FONT_SIZE_PX = 10;
|
|
36
|
+
/**
|
|
37
|
+
* Compute the lane's PositionedCapacity (or null when no `capacity:` is
|
|
38
|
+
* declared / value is non-positive) plus the px width the badge will
|
|
39
|
+
* occupy inside the frame tab. The width includes the bare badge —
|
|
40
|
+
* leading-separator handling lives in `frameTabGeometry`.
|
|
41
|
+
*/
|
|
42
|
+
function resolveLaneCapacity(lane, style, symbols) {
|
|
43
|
+
const raw = propValue(lane.properties, 'capacity');
|
|
44
|
+
const value = parseCapacityValue(raw);
|
|
45
|
+
if (value === null)
|
|
46
|
+
return { capacity: null, badgeWidthPx: 0 };
|
|
47
|
+
const text = formatCapacityNumber(value);
|
|
48
|
+
const icon = resolveCapacityIcon(style.capacityIcon, symbols);
|
|
49
|
+
const badgeWidthPx = estimateCapacitySuffixWidth(text, icon, LANE_CAPACITY_BADGE_FONT_SIZE_PX);
|
|
50
|
+
return {
|
|
51
|
+
capacity: { value, text, icon },
|
|
52
|
+
badgeWidthPx,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
const TAB_TOP_Y = 10; // matches renderer: tabY = box.y + 10
|
|
56
|
+
const TAB_BOTTOM_Y = 38; // tab (height 22) plus 6 px breathing room
|
|
57
|
+
const TAB_GUTTER_PX = 8;
|
|
58
|
+
/**
|
|
59
|
+
* Right edge (canvas px) of the lane title tab. Delegates to the
|
|
60
|
+
* shared `frameTabGeometry` helper that the renderer also uses, so
|
|
61
|
+
* the chiclet's collision footprint and its painted footprint stay
|
|
62
|
+
* exactly in sync. Capacity badge and footnote-indicator widths are
|
|
63
|
+
* added when present so the first-item collision math reserves
|
|
64
|
+
* enough horizontal space for the (now-wider) chiclet.
|
|
65
|
+
*/
|
|
66
|
+
function computeLaneTabRightX(lane, capacityBadgeWidthPx, footnoteIndicatorWidthPx) {
|
|
67
|
+
const title = lane.title ?? lane.name ?? '';
|
|
68
|
+
if (!title)
|
|
69
|
+
return 0;
|
|
70
|
+
const ownerRaw = propValue(lane.properties, 'owner');
|
|
71
|
+
// Box is laid out at `box.x = 0` for top-level lanes; the helper
|
|
72
|
+
// adds the standard `FRAME_TAB_OFFSET_FROM_BOX_PX` itself.
|
|
73
|
+
return frameTabGeometry(0, title, ownerRaw ?? undefined, capacityBadgeWidthPx, footnoteIndicatorWidthPx).rightX;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Footnote indicators (1-based numbers) that name this lane via `on:`,
|
|
77
|
+
* sorted ascending. Empty when the lane has no name or no matching
|
|
78
|
+
* footnote hosts. Computed up-front so the chiclet width reservation
|
|
79
|
+
* and the painted footnote text use the same numbers.
|
|
80
|
+
*/
|
|
81
|
+
function collectFootnoteIndicators(lane, ctx) {
|
|
82
|
+
if (!lane.name)
|
|
83
|
+
return [];
|
|
84
|
+
const out = [];
|
|
85
|
+
for (const [fid, host] of ctx.footnoteHosts.entries()) {
|
|
86
|
+
if (host.includes(lane.name)) {
|
|
87
|
+
const n = ctx.footnoteIndex.get(fid);
|
|
88
|
+
if (n !== undefined)
|
|
89
|
+
out.push(n);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
out.sort((a, b) => a - b);
|
|
93
|
+
return out;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Desired starting x for the first non-description child of a lane.
|
|
97
|
+
* Returns undefined when the lane has no chartable children. Used by
|
|
98
|
+
* the top-pad collapse decision (a row whose first item lives past the
|
|
99
|
+
* tab can sit at TAB_TOP_Y; otherwise rows drop below the tab).
|
|
100
|
+
*/
|
|
101
|
+
function firstChildStartX(lane, laneLeftX, ctx, deps) {
|
|
102
|
+
for (const child of lane.content) {
|
|
103
|
+
if (child.$type === 'DescriptionDirective')
|
|
104
|
+
continue;
|
|
105
|
+
const props = isItemDeclaration(child)
|
|
106
|
+
? child.properties
|
|
107
|
+
: (child.properties ?? []);
|
|
108
|
+
return deps.resolveChildStart(props, laneLeftX, laneLeftX, ctx);
|
|
109
|
+
}
|
|
110
|
+
return undefined;
|
|
111
|
+
}
|
|
112
|
+
export class SwimlaneNode {
|
|
113
|
+
input;
|
|
114
|
+
deps;
|
|
115
|
+
constructor(input,
|
|
116
|
+
// biome-ignore lint/correctness/noUnusedPrivateClassMembers: accessed via `const { deps } = this` destructuring inside methods, which the analyzer does not detect.
|
|
117
|
+
deps) {
|
|
118
|
+
this.input = input;
|
|
119
|
+
this.deps = deps;
|
|
120
|
+
}
|
|
121
|
+
get id() {
|
|
122
|
+
return this.input.lane.name ?? '';
|
|
123
|
+
}
|
|
124
|
+
place(origin, ctx) {
|
|
125
|
+
const { lane, bandIndex } = this.input;
|
|
126
|
+
const { deps } = this;
|
|
127
|
+
const style = resolveStyle('swimlane', lane.properties, ctx.styleCtx);
|
|
128
|
+
const laneLeftX = origin.x;
|
|
129
|
+
const step = ctx.bandScale.step();
|
|
130
|
+
// Each swimlane root opens a fresh flow — its direct children
|
|
131
|
+
// chain in time, so a milestone's `after:` predecessors that
|
|
132
|
+
// share a swimlane collapse to the latest one in file order
|
|
133
|
+
// (file order encodes the dependency on its own). Restored at
|
|
134
|
+
// the bottom of `place()`.
|
|
135
|
+
const previousFlowKey = ctx.currentFlowKey;
|
|
136
|
+
ctx.currentFlowKey = `lane:${lane.name ?? bandIndex}`;
|
|
137
|
+
// Resolve lane capacity early — its width feeds into the
|
|
138
|
+
// chiclet's right-edge collision calculation, which determines
|
|
139
|
+
// whether the first row sits at TAB_TOP_Y or TAB_BOTTOM_Y.
|
|
140
|
+
const { capacity, badgeWidthPx } = resolveLaneCapacity(lane, style, ctx.symbols);
|
|
141
|
+
// Footnote indicators (the small "1, 2" red text in the upper
|
|
142
|
+
// right of the chiclet) need to be reserved in the chiclet's
|
|
143
|
+
// width too, otherwise they paint on top of the owner / badge
|
|
144
|
+
// for shrink-wrapped chiclets. Computed up front from the
|
|
145
|
+
// pre-resolved footnote index/host map.
|
|
146
|
+
const footnoteIndicators = collectFootnoteIndicators(lane, ctx);
|
|
147
|
+
const footnoteIndicatorWidthPx = footnoteIndicators.length > 0
|
|
148
|
+
? deps.estimateTextWidth(footnoteIndicators.join(','), LANE_CAPACITY_BADGE_FONT_SIZE_PX)
|
|
149
|
+
: 0;
|
|
150
|
+
// Title-tab geometry (mirrors the renderer; see renderSwimlane).
|
|
151
|
+
const tabRightX = computeLaneTabRightX(lane, badgeWidthPx, footnoteIndicatorWidthPx);
|
|
152
|
+
// First-row Y: when the first child's desired x is past the title
|
|
153
|
+
// tab, top-align with the tab and reclaim ~28 px per lane.
|
|
154
|
+
// Otherwise drop below the tab.
|
|
155
|
+
const firstChildDesiredX = firstChildStartX(lane, laneLeftX, ctx, deps);
|
|
156
|
+
const canAlignFirstRowWithTab = !lane.title ||
|
|
157
|
+
firstChildDesiredX === undefined ||
|
|
158
|
+
firstChildDesiredX >= tabRightX + TAB_GUTTER_PX;
|
|
159
|
+
const startY = origin.y + (canAlignFirstRowWithTab ? TAB_TOP_Y : TAB_BOTTOM_Y);
|
|
160
|
+
// Topmost-fit row pack. See `RowPacker` for the full contract.
|
|
161
|
+
// The packer owns the rows; we feed it children in DSL order and
|
|
162
|
+
// it returns each child's resolved (rowIndex, y).
|
|
163
|
+
const packer = new RowPacker({
|
|
164
|
+
laneLeftX,
|
|
165
|
+
originY: startY,
|
|
166
|
+
minRowHeight: step,
|
|
167
|
+
slackCorridors: ctx.slackCorridors,
|
|
168
|
+
});
|
|
169
|
+
let timeCursorX = laneLeftX;
|
|
170
|
+
const children = [];
|
|
171
|
+
for (const child of lane.content) {
|
|
172
|
+
if (child.$type === 'DescriptionDirective')
|
|
173
|
+
continue;
|
|
174
|
+
if (!isItemDeclaration(child)) {
|
|
175
|
+
const blockProps = child.properties ?? [];
|
|
176
|
+
const blockStart = deps.resolveChildStart(blockProps, timeCursorX, laneLeftX, ctx);
|
|
177
|
+
const { rowIndex, y: blockY } = packer.placeBlock();
|
|
178
|
+
const cursor = deps.newCursor(blockStart, blockY);
|
|
179
|
+
const positioned = deps.sequenceOne(child, cursor, ctx);
|
|
180
|
+
children.push(positioned);
|
|
181
|
+
const blockEnd = positioned.box.x + positioned.box.width;
|
|
182
|
+
const blockHeight = Math.max(step, cursor.height);
|
|
183
|
+
packer.commitBlock({
|
|
184
|
+
rowIndex,
|
|
185
|
+
placed: positioned,
|
|
186
|
+
blockHeight,
|
|
187
|
+
blockEnd,
|
|
188
|
+
});
|
|
189
|
+
timeCursorX = Math.max(timeCursorX, blockEnd);
|
|
190
|
+
continue;
|
|
191
|
+
}
|
|
192
|
+
const props = child.properties;
|
|
193
|
+
const desiredStart = deps.resolveChildStart(props, timeCursorX, laneLeftX, ctx);
|
|
194
|
+
// Predict the item's logical extent so the row-pack can decide
|
|
195
|
+
// BEFORE handing off to sequenceItem. The arithmetic mirrors
|
|
196
|
+
// the duration → width math in `sequenceItem` (see
|
|
197
|
+
// packages/layout/src/layout.ts).
|
|
198
|
+
const durationDays = deriveItemDurationDays(props, ctx.sizes, ctx.cal);
|
|
199
|
+
const naturalWidth = Math.max(MIN_ITEM_WIDTH, durationDays * ctx.timeline.pixelsPerDay);
|
|
200
|
+
const desiredEnd = desiredStart + naturalWidth;
|
|
201
|
+
const childId = child.name ?? '';
|
|
202
|
+
const chipExtra = deps.predictItemChipExtraHeight(child, ctx);
|
|
203
|
+
const predictedHeight = step + chipExtra;
|
|
204
|
+
const { rowIndex, y: rowY } = packer.placeItem({
|
|
205
|
+
childId,
|
|
206
|
+
desiredStart,
|
|
207
|
+
desiredEnd,
|
|
208
|
+
// Row pitch = `step()` + extra chip-row height. Keeps
|
|
209
|
+
// the inter-row visible gap (= step - bandwidth) intact
|
|
210
|
+
// when an item's labels wrap and grow the bar.
|
|
211
|
+
predictedHeight,
|
|
212
|
+
});
|
|
213
|
+
const cursor = deps.newCursor(desiredStart, rowY);
|
|
214
|
+
const positioned = deps.sequenceItem(child, cursor, ctx);
|
|
215
|
+
children.push(positioned);
|
|
216
|
+
// Item end in LOGICAL space (one ITEM_INSET_PX past the visual
|
|
217
|
+
// bar's right edge). The next chained item starts here and
|
|
218
|
+
// lands edge-to-edge in time, with a 2 × ITEM_INSET_PX visible
|
|
219
|
+
// gutter between bars.
|
|
220
|
+
const itemLogicalEnd = positioned.box.x + positioned.box.width + ITEM_INSET_PX;
|
|
221
|
+
timeCursorX = Math.max(timeCursorX, itemLogicalEnd);
|
|
222
|
+
let spillReservation = null;
|
|
223
|
+
const hasAnySpill = positioned.textSpills ||
|
|
224
|
+
positioned.chipsOutside ||
|
|
225
|
+
positioned.dotSpills ||
|
|
226
|
+
positioned.iconSpills ||
|
|
227
|
+
positioned.footnoteSpills;
|
|
228
|
+
if (hasAnySpill) {
|
|
229
|
+
// `decorationsRightX` already aggregates the spilled
|
|
230
|
+
// dot / icon / footnote / caption right edges from
|
|
231
|
+
// `sequenceItem`; the chip column tracks separately
|
|
232
|
+
// via `chipsRightX`. Add a 6-px buffer so the next
|
|
233
|
+
// chained item's bar leaves a visible gutter past
|
|
234
|
+
// the spilled cluster instead of butting against it.
|
|
235
|
+
const farRight = Math.max(positioned.decorationsRightX, positioned.chipsOutside ? positioned.chipsRightX : 0);
|
|
236
|
+
spillReservation = farRight + 6;
|
|
237
|
+
}
|
|
238
|
+
packer.commitItem({
|
|
239
|
+
rowIndex,
|
|
240
|
+
placed: positioned,
|
|
241
|
+
logicalEnd: itemLogicalEnd,
|
|
242
|
+
spillReservation,
|
|
243
|
+
rowHeight: predictedHeight,
|
|
244
|
+
});
|
|
245
|
+
}
|
|
246
|
+
// `packer.usedHeight()` measures from `startY` (the first row,
|
|
247
|
+
// below the title tab); the swimlane band spans from `origin.y`
|
|
248
|
+
// (the band top, above the tab). Add the tab offset back so the
|
|
249
|
+
// band height covers everything the user sees.
|
|
250
|
+
const tabOffset = startY - origin.y;
|
|
251
|
+
const bandHeight = Math.max(step + 32, tabOffset + packer.usedHeight() + 16);
|
|
252
|
+
// Include the chiclet's right edge in the lane's reported
|
|
253
|
+
// right-extent so empty lanes still report a non-zero right edge
|
|
254
|
+
// — `buildIncludeRegions` uses this to size the include's dashed
|
|
255
|
+
// bracket around its content, and a lane with only a chiclet
|
|
256
|
+
// (no items) should still fit visibly inside that bracket.
|
|
257
|
+
const usedRightX = Math.max(packer.usedRightX(), tabRightX);
|
|
258
|
+
const box = {
|
|
259
|
+
x: 0,
|
|
260
|
+
y: origin.y,
|
|
261
|
+
width: ctx.chartRightX,
|
|
262
|
+
height: bandHeight,
|
|
263
|
+
};
|
|
264
|
+
// Owner display string: id → title for teams/people; falls back to id.
|
|
265
|
+
const ownerRaw = propValue(lane.properties, 'owner');
|
|
266
|
+
let ownerDisplay;
|
|
267
|
+
if (ownerRaw) {
|
|
268
|
+
const team = ctx.teams.get(ownerRaw);
|
|
269
|
+
const person = ctx.persons.get(ownerRaw);
|
|
270
|
+
ownerDisplay = team?.title ?? person?.title ?? ownerRaw;
|
|
271
|
+
}
|
|
272
|
+
// Lane utilization underline (m12). Computed *after* children are
|
|
273
|
+
// positioned so the contributors carry their final box.x / box.width.
|
|
274
|
+
// Returns null when the lane has no `capacity:`, no contributing
|
|
275
|
+
// items, or has opted out of every color band — the renderer reads
|
|
276
|
+
// null as "paint nothing".
|
|
277
|
+
const utilization = capacity
|
|
278
|
+
? (() => {
|
|
279
|
+
const { warn, over } = resolveLaneUtilizationThresholds(lane, ctx.styleCtx.defaults);
|
|
280
|
+
return computeLaneUtilization({
|
|
281
|
+
children,
|
|
282
|
+
capacityValue: capacity.value,
|
|
283
|
+
warnFraction: warn,
|
|
284
|
+
overFraction: over,
|
|
285
|
+
});
|
|
286
|
+
})()
|
|
287
|
+
: null;
|
|
288
|
+
ctx.currentFlowKey = previousFlowKey;
|
|
289
|
+
return {
|
|
290
|
+
positioned: {
|
|
291
|
+
id: lane.name,
|
|
292
|
+
title: lane.title ?? lane.name ?? '',
|
|
293
|
+
box,
|
|
294
|
+
bandIndex,
|
|
295
|
+
children,
|
|
296
|
+
nested: [],
|
|
297
|
+
style,
|
|
298
|
+
owner: ownerDisplay,
|
|
299
|
+
footnoteIndicators,
|
|
300
|
+
capacity,
|
|
301
|
+
utilization,
|
|
302
|
+
},
|
|
303
|
+
usedHeight: bandHeight,
|
|
304
|
+
usedRightX,
|
|
305
|
+
};
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
//# sourceMappingURL=swimlane-node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swimlane-node.js","sourceRoot":"","sources":["../../src/nodes/swimlane-node.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { BandScale } from './band-scale.js';
|
|
2
|
+
import type { TimeScale } from './time-scale.js';
|
|
3
|
+
import type { ResolvedStyle } from './types.js';
|
|
4
|
+
export interface Point {
|
|
5
|
+
x: number;
|
|
6
|
+
y: number;
|
|
7
|
+
}
|
|
8
|
+
export interface IntrinsicSize {
|
|
9
|
+
/**
|
|
10
|
+
* Width the node wants. For time-driven entities (items, the
|
|
11
|
+
* timeline header) this comes from `TimeScale.forward(end) -
|
|
12
|
+
* forward(start)`; for static entities it's content-driven.
|
|
13
|
+
*/
|
|
14
|
+
width: number;
|
|
15
|
+
/**
|
|
16
|
+
* Height the node wants. Bubbles up to the parent BandScale,
|
|
17
|
+
* which in v2 uses it to size band slots instead of a fixed
|
|
18
|
+
* `ITEM_ROW_HEIGHT` constant.
|
|
19
|
+
*/
|
|
20
|
+
height: number;
|
|
21
|
+
}
|
|
22
|
+
export interface MeasureContext {
|
|
23
|
+
time: TimeScale;
|
|
24
|
+
bands: BandScale;
|
|
25
|
+
style: ResolvedStyle;
|
|
26
|
+
}
|
|
27
|
+
export interface PlaceContext extends MeasureContext {
|
|
28
|
+
/**
|
|
29
|
+
* Horizontal extent of the band background that owns this node.
|
|
30
|
+
* Used by swimlanes to draw their full-width tab + band fill;
|
|
31
|
+
* defaults to `time.range` when absent.
|
|
32
|
+
*/
|
|
33
|
+
bandX?: number;
|
|
34
|
+
bandWidth?: number;
|
|
35
|
+
}
|
|
36
|
+
export interface Renderable<TPositioned> {
|
|
37
|
+
/** Stable id for the node (matches the DSL entity id). */
|
|
38
|
+
id: string;
|
|
39
|
+
/** Compute intrinsic size — pure and idempotent. */
|
|
40
|
+
measure(ctx: MeasureContext): IntrinsicSize;
|
|
41
|
+
/** Anchor + emit positioned form. May recurse into children. */
|
|
42
|
+
place(origin: Point, ctx: PlaceContext): TPositioned;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=renderable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderable.d.ts","sourceRoot":"","sources":["../src/renderable.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,WAAW,KAAK;IAClB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,aAAa;IAC1B;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,aAAa,CAAC;CACxB;AAED,MAAM,WAAW,YAAa,SAAQ,cAAc;IAChD;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAU,CAAC,WAAW;IACnC,0DAA0D;IAC1D,EAAE,EAAE,MAAM,CAAC;IACX,oDAAoD;IACpD,OAAO,CAAC,GAAG,EAAE,cAAc,GAAG,aAAa,CAAC;IAC5C,gEAAgE;IAChE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,GAAG,WAAW,CAAC;CACxD"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// Renderable — measure/place tree primitive that the m2.5c rewrite of
|
|
2
|
+
// `layout.ts` is built on. Each entity (item, swimlane, group, ...)
|
|
3
|
+
// implements this interface and reports its intrinsic size; parents
|
|
4
|
+
// stack children using BandScale and the children's reported heights.
|
|
5
|
+
//
|
|
6
|
+
// The interface intentionally separates two phases:
|
|
7
|
+
//
|
|
8
|
+
// 1. measure(ctx) -> IntrinsicSize
|
|
9
|
+
// Pure, idempotent. Computes width + height the node WANTS given
|
|
10
|
+
// the available scales and resolved style. No side effects.
|
|
11
|
+
//
|
|
12
|
+
// 2. place(origin, ctx) -> TPositioned
|
|
13
|
+
// Anchors the node at `origin` and emits its positioned form.
|
|
14
|
+
// Recursively places children inside this call.
|
|
15
|
+
//
|
|
16
|
+
// `place` may invoke `measure` again — implementations should make
|
|
17
|
+
// `measure` cheap. The production nodes (`ItemNode`, `SwimlaneNode`,
|
|
18
|
+
// etc. under `nodes/`) follow this pattern: place re-measures, but
|
|
19
|
+
// measure is O(content) without I/O.
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=renderable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderable.js","sourceRoot":"","sources":["../src/renderable.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,oEAAoE;AACpE,oEAAoE;AACpE,sEAAsE;AACtE,EAAE;AACF,oDAAoD;AACpD,EAAE;AACF,qCAAqC;AACrC,sEAAsE;AACtE,iEAAiE;AACjE,EAAE;AACF,yCAAyC;AACzC,mEAAmE;AACnE,qDAAqD;AACrD,EAAE;AACF,mEAAmE;AACnE,qEAAqE;AACrE,mEAAmE;AACnE,qCAAqC"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import type { PositionedItem, PositionedTrackChild, SlackCorridor } from './types.js';
|
|
2
|
+
export interface PackedRow {
|
|
3
|
+
/** Top-y of the row in canvas px. */
|
|
4
|
+
y: number;
|
|
5
|
+
/** Visible height of the row. Grows with the tallest committed child. */
|
|
6
|
+
height: number;
|
|
7
|
+
/** Logical x of the rightmost extent reached by a committed child. */
|
|
8
|
+
rightEdge: number;
|
|
9
|
+
/** Reserved x for caption spill. Items whose `desiredStart < spillX`
|
|
10
|
+
* bump to a new row even if `rightEdge` would let them in. */
|
|
11
|
+
spillX: number;
|
|
12
|
+
/** Children placed in this row. Used when the row's height grows
|
|
13
|
+
* after later rows exist — every child in every later row shifts
|
|
14
|
+
* down by the delta. */
|
|
15
|
+
placedChildren: PositionedTrackChild[];
|
|
16
|
+
}
|
|
17
|
+
export interface RowPackerOptions {
|
|
18
|
+
/** Logical left x of the track this packer owns (lane left edge or
|
|
19
|
+
* group's content left). New rows reset their `rightEdge` /
|
|
20
|
+
* `spillX` to this value. */
|
|
21
|
+
laneLeftX: number;
|
|
22
|
+
/** Top-y of the first row. */
|
|
23
|
+
originY: number;
|
|
24
|
+
/** Minimum height of any row. Typically `bandScale.step()`. */
|
|
25
|
+
minRowHeight: number;
|
|
26
|
+
/** Slack-arrow corridors to avoid. Items whose vertical band
|
|
27
|
+
* intersects a corridor at the candidate row bump to a new row. */
|
|
28
|
+
slackCorridors: SlackCorridor[];
|
|
29
|
+
}
|
|
30
|
+
/** Item placement query — passed to `placeItem` BEFORE sequencing. */
|
|
31
|
+
export interface ItemPlacementInput {
|
|
32
|
+
/** Item id; corridor-bumping is skipped for the corridor's own
|
|
33
|
+
* predecessor (the slack arrow's source item is exempt). */
|
|
34
|
+
childId: string;
|
|
35
|
+
/** Logical left x where the item wants to start. */
|
|
36
|
+
desiredStart: number;
|
|
37
|
+
/** Logical right x of the item's natural extent. */
|
|
38
|
+
desiredEnd: number;
|
|
39
|
+
/** Predicted intrinsic height of the item. Used to set the row's
|
|
40
|
+
* initial height when this is the first item in a fresh row, or
|
|
41
|
+
* to grow the row when a taller item lands in an existing row. */
|
|
42
|
+
predictedHeight: number;
|
|
43
|
+
}
|
|
44
|
+
/** Result of a `placeItem` query. */
|
|
45
|
+
export interface ItemPlacement {
|
|
46
|
+
rowIndex: number;
|
|
47
|
+
y: number;
|
|
48
|
+
}
|
|
49
|
+
/** Item-commit payload — passed to `commitItem` AFTER sequencing. */
|
|
50
|
+
export interface ItemCommitInput {
|
|
51
|
+
rowIndex: number;
|
|
52
|
+
placed: PositionedItem;
|
|
53
|
+
/** Logical right edge of the placed item. Includes the trailing
|
|
54
|
+
* `ITEM_INSET_PX` so the next chained item butts edge-to-edge in
|
|
55
|
+
* logical space (with a 2 × ITEM_INSET_PX visible gutter between
|
|
56
|
+
* bars). */
|
|
57
|
+
logicalEnd: number;
|
|
58
|
+
/** Reserved spill x for captions that overflow the bar's right
|
|
59
|
+
* edge. `null` resets the row's spill reservation to `laneLeftX`. */
|
|
60
|
+
spillReservation: number | null;
|
|
61
|
+
/** Total vertical reservation the placed item needs (e.g. bar
|
|
62
|
+
* height plus a multi-row spilled chip column hanging below the
|
|
63
|
+
* bar). When omitted, the row only grows to `placed.box.height`,
|
|
64
|
+
* which is fine for items whose entire content fits inside the
|
|
65
|
+
* bar. Set this to `predictedHeight` from `placeItem(...)` when
|
|
66
|
+
* the item has a chip overhang so the row grows even if it
|
|
67
|
+
* landed in an EXISTING row (where the placement step ignores
|
|
68
|
+
* `predictedHeight`). */
|
|
69
|
+
rowHeight?: number;
|
|
70
|
+
}
|
|
71
|
+
/** Result of a `placeBlock` query (parallel/group as a child). */
|
|
72
|
+
export interface BlockPlacement {
|
|
73
|
+
rowIndex: number;
|
|
74
|
+
y: number;
|
|
75
|
+
}
|
|
76
|
+
/** Block-commit payload — passed to `commitBlock` AFTER sequencing. */
|
|
77
|
+
export interface BlockCommitInput {
|
|
78
|
+
rowIndex: number;
|
|
79
|
+
placed: PositionedTrackChild;
|
|
80
|
+
/** Total vertical extent the block occupies (the block's reported
|
|
81
|
+
* `box.height`). The row this block landed on grows to at least
|
|
82
|
+
* this height. */
|
|
83
|
+
blockHeight: number;
|
|
84
|
+
/** Logical right edge of the block. */
|
|
85
|
+
blockEnd: number;
|
|
86
|
+
}
|
|
87
|
+
export declare class RowPacker {
|
|
88
|
+
readonly rows: PackedRow[];
|
|
89
|
+
private readonly opts;
|
|
90
|
+
constructor(opts: RowPackerOptions);
|
|
91
|
+
/**
|
|
92
|
+
* Find the topmost row where the item's natural extent fits without
|
|
93
|
+
* colliding with sibling content or a slack corridor; appending a
|
|
94
|
+
* fresh row at the bottom when none of the existing rows fit.
|
|
95
|
+
*/
|
|
96
|
+
placeItem(input: ItemPlacementInput): ItemPlacement;
|
|
97
|
+
/**
|
|
98
|
+
* Blocks (parallel / group) always claim a fresh row at the bottom
|
|
99
|
+
* of the stack so their inner sub-tracks have contiguous rows to
|
|
100
|
+
* expand into. If the bottom row is empty, we reuse it; otherwise
|
|
101
|
+
* we append.
|
|
102
|
+
*/
|
|
103
|
+
placeBlock(): BlockPlacement;
|
|
104
|
+
/**
|
|
105
|
+
* Record a placed item back into its row. Grows the row's height to
|
|
106
|
+
* fit the item, advances `rightEdge`, sets the caption spill, and
|
|
107
|
+
* shifts later rows down if this row got taller.
|
|
108
|
+
*/
|
|
109
|
+
commitItem(input: ItemCommitInput): void;
|
|
110
|
+
/**
|
|
111
|
+
* Record a placed block. Sets the row's height to the block's full
|
|
112
|
+
* height (blocks own their row, no other child shares it).
|
|
113
|
+
*/
|
|
114
|
+
commitBlock(input: BlockCommitInput): void;
|
|
115
|
+
/** Total vertical extent reached (last row's bottom - originY). */
|
|
116
|
+
usedHeight(): number;
|
|
117
|
+
/** Rightmost extent reached — bar logical end OR caption spill,
|
|
118
|
+
* whichever is wider, across every row. Empty rows contribute
|
|
119
|
+
* `laneLeftX`. */
|
|
120
|
+
usedRightX(): number;
|
|
121
|
+
private rowIntersectsCorridor;
|
|
122
|
+
private appendRow;
|
|
123
|
+
private growRowHeight;
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=row-packer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"row-packer.d.ts","sourceRoot":"","sources":["../src/row-packer.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEtF,MAAM,WAAW,SAAS;IACtB,qCAAqC;IACrC,CAAC,EAAE,MAAM,CAAC;IACV,yEAAyE;IACzE,MAAM,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,SAAS,EAAE,MAAM,CAAC;IAClB;mEAC+D;IAC/D,MAAM,EAAE,MAAM,CAAC;IACf;;6BAEyB;IACzB,cAAc,EAAE,oBAAoB,EAAE,CAAC;CAC1C;AAED,MAAM,WAAW,gBAAgB;IAC7B;;kCAE8B;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,YAAY,EAAE,MAAM,CAAC;IACrB;wEACoE;IACpE,cAAc,EAAE,aAAa,EAAE,CAAC;CACnC;AAED,sEAAsE;AACtE,MAAM,WAAW,kBAAkB;IAC/B;iEAC6D;IAC7D,OAAO,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,YAAY,EAAE,MAAM,CAAC;IACrB,oDAAoD;IACpD,UAAU,EAAE,MAAM,CAAC;IACnB;;uEAEmE;IACnE,eAAe,EAAE,MAAM,CAAC;CAC3B;AAED,qCAAqC;AACrC,MAAM,WAAW,aAAa;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,CAAC,EAAE,MAAM,CAAC;CACb;AAED,qEAAqE;AACrE,MAAM,WAAW,eAAe;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,cAAc,CAAC;IACvB;;;iBAGa;IACb,UAAU,EAAE,MAAM,CAAC;IACnB;0EACsE;IACtE,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC;;;;;;;8BAO0B;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,kEAAkE;AAClE,MAAM,WAAW,cAAc;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,CAAC,EAAE,MAAM,CAAC;CACb;AAED,uEAAuE;AACvE,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,oBAAoB,CAAC;IAC7B;;uBAEmB;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,SAAS;IAClB,SAAgB,IAAI,EAAE,SAAS,EAAE,CAAC;IAClC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAmB;gBAE5B,IAAI,EAAE,gBAAgB;IAalC;;;;OAIG;IACH,SAAS,CAAC,KAAK,EAAE,kBAAkB,GAAG,aAAa;IAYnD;;;;;OAKG;IACH,UAAU,IAAI,cAAc;IAS5B;;;;OAIG;IACH,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IASxC;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAQ1C,mEAAmE;IACnE,UAAU,IAAI,MAAM;IAKpB;;uBAEmB;IACnB,UAAU,IAAI,MAAM;IASpB,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,aAAa;CAaxB"}
|