@zukhruf/diagram 0.3.32 → 0.3.34
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/README.md +98 -52
- package/dist/index.d.ts +5 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/compiler/diagram-compile.d.ts +3 -4
- package/dist/lib/compiler/diagram-compile.d.ts.map +1 -1
- package/dist/lib/compiler/diagram-compile.js +85 -370
- package/dist/lib/compiler/diagram-compile.js.map +1 -1
- package/dist/lib/layouts/graph/attach.d.ts +25 -0
- package/dist/lib/layouts/graph/attach.d.ts.map +1 -0
- package/dist/lib/layouts/graph/attach.js +272 -0
- package/dist/lib/layouts/graph/attach.js.map +1 -0
- package/dist/lib/layouts/graph/connections.d.ts +45 -0
- package/dist/lib/layouts/graph/connections.d.ts.map +1 -0
- package/dist/lib/layouts/graph/connections.js +138 -0
- package/dist/lib/layouts/graph/connections.js.map +1 -0
- package/dist/lib/layouts/graph/graph-layout-result.d.ts +5 -3
- package/dist/lib/layouts/graph/graph-layout-result.d.ts.map +1 -1
- package/dist/lib/layouts/graph/graph-layout-result.js.map +1 -1
- package/dist/lib/layouts/graph/gutters.js +41 -22
- package/dist/lib/layouts/graph/gutters.js.map +1 -1
- package/dist/lib/layouts/graph/labels.d.ts +23 -0
- package/dist/lib/layouts/graph/labels.d.ts.map +1 -0
- package/dist/lib/layouts/graph/labels.js +120 -0
- package/dist/lib/layouts/graph/labels.js.map +1 -0
- package/dist/lib/layouts/graph/layout.d.ts +1 -1
- package/dist/lib/layouts/graph/layout.d.ts.map +1 -1
- package/dist/lib/layouts/graph/layout.js +37 -12
- package/dist/lib/layouts/graph/layout.js.map +1 -1
- package/dist/lib/layouts/graph/measure.d.ts +15 -11
- package/dist/lib/layouts/graph/measure.d.ts.map +1 -1
- package/dist/lib/layouts/graph/measure.js +82 -38
- package/dist/lib/layouts/graph/measure.js.map +1 -1
- package/dist/lib/layouts/graph/min-heap.d.ts +8 -0
- package/dist/lib/layouts/graph/min-heap.d.ts.map +1 -0
- package/dist/lib/layouts/graph/min-heap.js +56 -0
- package/dist/lib/layouts/graph/min-heap.js.map +1 -0
- package/dist/lib/layouts/graph/node-content.d.ts +2 -3
- package/dist/lib/layouts/graph/node-content.d.ts.map +1 -1
- package/dist/lib/layouts/graph/node-content.js +67 -47
- package/dist/lib/layouts/graph/node-content.js.map +1 -1
- package/dist/lib/layouts/graph/path.d.ts +6 -0
- package/dist/lib/layouts/graph/path.d.ts.map +1 -0
- package/dist/lib/layouts/graph/path.js +53 -0
- package/dist/lib/layouts/graph/path.js.map +1 -0
- package/dist/lib/layouts/graph/round.d.ts +11 -0
- package/dist/lib/layouts/graph/round.d.ts.map +1 -0
- package/dist/lib/layouts/graph/round.js +181 -0
- package/dist/lib/layouts/graph/round.js.map +1 -0
- package/dist/lib/layouts/graph/route-search.d.ts +34 -0
- package/dist/lib/layouts/graph/route-search.d.ts.map +1 -0
- package/dist/lib/layouts/graph/route-search.js +208 -0
- package/dist/lib/layouts/graph/route-search.js.map +1 -0
- package/dist/lib/layouts/graph/route.d.ts +20 -0
- package/dist/lib/layouts/graph/route.d.ts.map +1 -0
- package/dist/lib/layouts/graph/route.js +276 -0
- package/dist/lib/layouts/graph/route.js.map +1 -0
- package/dist/lib/layouts/graph/sides.d.ts +28 -0
- package/dist/lib/layouts/graph/sides.d.ts.map +1 -0
- package/dist/lib/layouts/graph/sides.js +98 -0
- package/dist/lib/layouts/graph/sides.js.map +1 -0
- package/dist/lib/layouts/timeline/timeline-layout.d.ts +2 -1
- package/dist/lib/layouts/timeline/timeline-layout.d.ts.map +1 -1
- package/dist/lib/layouts/timeline/timeline-layout.js +9 -4
- package/dist/lib/layouts/timeline/timeline-layout.js.map +1 -1
- package/dist/lib/model/diagram-ir.d.ts +19 -156
- package/dist/lib/model/diagram-ir.d.ts.map +1 -1
- package/dist/lib/model/diagram-ir.js.map +1 -1
- package/dist/lib/model/validate-graph.d.ts +7 -0
- package/dist/lib/model/validate-graph.d.ts.map +1 -0
- package/dist/lib/model/validate-graph.js +54 -0
- package/dist/lib/model/validate-graph.js.map +1 -0
- package/dist/lib/react/Diagram.d.ts +3 -9
- package/dist/lib/react/Diagram.d.ts.map +1 -1
- package/dist/lib/react/Diagram.js +1 -13
- package/dist/lib/react/Diagram.js.map +1 -1
- package/dist/lib/react/diagram-types.d.ts +17 -46
- package/dist/lib/react/diagram-types.d.ts.map +1 -1
- package/dist/lib/react/diagram-types.js.map +1 -1
- package/dist/lib/renderers/canvas/graph-canvas.d.ts +2 -5
- package/dist/lib/renderers/canvas/graph-canvas.d.ts.map +1 -1
- package/dist/lib/renderers/canvas/graph-canvas.js +68 -43
- package/dist/lib/renderers/canvas/graph-canvas.js.map +1 -1
- package/dist/lib/renderers/html/graph-html.d.ts +2 -3
- package/dist/lib/renderers/html/graph-html.d.ts.map +1 -1
- package/dist/lib/renderers/html/graph-html.js +298 -289
- package/dist/lib/renderers/html/graph-html.js.map +1 -1
- package/dist/lib/renderers/shared/graph-parts.d.ts +3 -1
- package/dist/lib/renderers/shared/graph-parts.d.ts.map +1 -1
- package/dist/lib/renderers/shared/graph-parts.js +350 -418
- package/dist/lib/renderers/shared/graph-parts.js.map +1 -1
- package/dist/lib/renderers/shared/node-parts.d.ts +5 -6
- package/dist/lib/renderers/shared/node-parts.d.ts.map +1 -1
- package/dist/lib/renderers/shared/node-parts.js +112 -190
- package/dist/lib/renderers/shared/node-parts.js.map +1 -1
- package/dist/lib/renderers/shared/run-spans.js +2 -2
- package/dist/lib/renderers/shared/run-spans.js.map +1 -1
- package/dist/lib/renderers/shared/text-runs.d.ts +0 -6
- package/dist/lib/renderers/shared/text-runs.d.ts.map +1 -1
- package/dist/lib/renderers/shared/text-runs.js +0 -12
- package/dist/lib/renderers/shared/text-runs.js.map +1 -1
- package/dist/lib/renderers/svg/graph-svg.d.ts +1 -3
- package/dist/lib/renderers/svg/graph-svg.d.ts.map +1 -1
- package/dist/lib/renderers/svg/graph-svg.js +66 -80
- package/dist/lib/renderers/svg/graph-svg.js.map +1 -1
- package/dist/lib/renderers/svg/timeline-svg.d.ts.map +1 -1
- package/dist/lib/renderers/svg/timeline-svg.js +7 -5
- package/dist/lib/renderers/svg/timeline-svg.js.map +1 -1
- package/package.json +1 -1
- package/dist/lib/layouts/graph/graph-layout.d.ts +0 -154
- package/dist/lib/layouts/graph/graph-layout.d.ts.map +0 -1
- package/dist/lib/layouts/graph/graph-layout.js +0 -2340
- package/dist/lib/layouts/graph/graph-layout.js.map +0 -1
- package/dist/lib/layouts/graph/legacy-graph-layout.d.ts +0 -6
- package/dist/lib/layouts/graph/legacy-graph-layout.d.ts.map +0 -1
- package/dist/lib/layouts/graph/legacy-graph-layout.js +0 -542
- package/dist/lib/layouts/graph/legacy-graph-layout.js.map +0 -1
- package/dist/lib/layouts/text-metrics.d.ts +0 -7
- package/dist/lib/layouts/text-metrics.d.ts.map +0 -1
- package/dist/lib/layouts/text-metrics.js +0 -40
- package/dist/lib/layouts/text-metrics.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeline-layout.js","names":["textAscent","widestLine","SEQ_W","ACTOR_W","ACTOR_H","ACTOR_RX","TOP_ACTOR_Y","ROW_H","FIRST_MSG_Y","LOOP_TOP_PAD","LOOP_X_PAD","FRAME_HEADER_H","FRAME_PAD","BOTTOM_ACTOR_GAP","DEFAULT_BOXED_STUB","SIGNAL_LABEL_FONT_SIZE","SIGNAL_LABEL_PAD_X","SIGNAL_LABEL_PAD_Y","SIGNAL_LABEL_LINE_H","SIGNAL_LABEL_BASELINE_GAP","SIGNAL_LABEL_LINE_STEP","buildTimelineSegments","totalSignals","hasLoop","frameMsgs","slotCount","step","i","segments","push","kind","index","start","end","m","measureSignalLabel","label","boxW","Math","ceil","boxH","length","signalLabelHeadroom","signal","boxed","signalLabelFootroom","computeBoxedSignal","args","fromX","toX","rowY","stub","position","headInset","direction","nearEdge","_exhaustive","Error","String","farEdge","stubA","x1","x2","stubB","stubALen","stubBLen","abs","boxLeft","min","boxRight","max","boxTop","boxBottom","laneCenterX","total","slot","computeTimelineLayout","spec","totalLanes","lanes","signals","frame","segOf","s","find","lifelineYStart","mainMsgY","lastMainMsgY","frameBottom","frameY","firstFrameSignal","lastFrameSignal","slice","firstRowOffset","lastRowOffset","frameH","seg","x","y","width","height","segmentStart","segmentEnd","map","ms","from","to","bottomActorY","lifelineYEnd","totalH","a","cx","id","centerX","rectX","topRectY","bottomRectY","accent","topLanesSegment","bottomLanesSegment"],"sources":["../../../../src/lib/layouts/timeline/timeline-layout.ts"],"sourcesContent":["import type {\n DiagramSignal,\n DiagramSignalBox,\n DiagramTimelineSpec,\n} from '../../model/diagram-ir.ts';\nimport { textAscent, widestLine } from '../text-metrics.ts';\n\nexport type {\n DiagramFrameElement,\n DiagramLane,\n DiagramSignal,\n DiagramSignalBox,\n} from '../../model/diagram-ir.ts';\n\nexport type TimelineLayoutSpec = DiagramTimelineSpec & { title?: string[] };\n\nexport const SEQ_W = 1000;\nexport const ACTOR_W = 190;\nexport const ACTOR_H = 72;\nexport const ACTOR_RX = 16;\nexport const TOP_ACTOR_Y = 30;\nexport const ROW_H = 70;\nexport const FIRST_MSG_Y = 200;\nexport const LOOP_TOP_PAD = 38;\nexport const LOOP_X_PAD = 24;\nexport const FRAME_HEADER_H = 22;\nexport const FRAME_PAD = 12;\nexport const BOTTOM_ACTOR_GAP = 50;\nexport const DEFAULT_BOXED_STUB = 12;\nexport const SIGNAL_LABEL_FONT_SIZE = 12;\nexport const SIGNAL_LABEL_PAD_X = 14;\nexport const SIGNAL_LABEL_PAD_Y = 10;\nexport const SIGNAL_LABEL_LINE_H = 18;\nexport const SIGNAL_LABEL_BASELINE_GAP = 12;\nexport const SIGNAL_LABEL_LINE_STEP = 15;\n\nexport type SegmentKind =\n 'top-lanes' | 'msg' | 'frame-frame' | 'frame-msg' | 'bottom-lanes';\n\nexport type LayoutSegment = {\n kind: SegmentKind;\n index: number;\n start: number;\n end: number;\n};\n\nexport function buildTimelineSegments(\n totalSignals: number,\n hasLoop: boolean,\n frameMsgs: number,\n): LayoutSegment[] {\n const slotCount = 1 + totalSignals + (hasLoop ? 1 + frameMsgs : 0) + 1;\n const step = 1 / slotCount;\n let i = 0;\n const segments: LayoutSegment[] = [];\n segments.push({\n kind: 'top-lanes',\n index: 0,\n start: i * step,\n end: ++i * step,\n });\n for (let m = 0; m < totalSignals; m++) {\n segments.push({ kind: 'msg', index: m, start: i * step, end: ++i * step });\n }\n if (hasLoop) {\n segments.push({\n kind: 'frame-frame',\n index: 0,\n start: i * step,\n end: ++i * step,\n });\n for (let m = 0; m < frameMsgs; m++) {\n segments.push({\n kind: 'frame-msg',\n index: m,\n start: i * step,\n end: ++i * step,\n });\n }\n }\n segments.push({\n kind: 'bottom-lanes',\n index: 0,\n start: i * step,\n end: (i + 1) * step,\n });\n return segments;\n}\n\nexport type BoxedSegment = {\n boxLeft: number;\n boxRight: number;\n boxTop: number;\n boxBottom: number;\n stubA: { x1: number; x2: number };\n stubB: { x1: number; x2: number };\n};\n\nexport function measureSignalLabel(label: string[]): {\n boxW: number;\n boxH: number;\n} {\n return {\n boxW:\n Math.ceil(widestLine(label, SIGNAL_LABEL_FONT_SIZE, 'mono')) +\n SIGNAL_LABEL_PAD_X * 2,\n boxH: label.length * SIGNAL_LABEL_LINE_H + SIGNAL_LABEL_PAD_Y * 2,\n };\n}\n\n/** Distance from a signal's row up to the top of its label or label box. */\nexport function signalLabelHeadroom(\n signal: Pick<DiagramSignal, 'label' | 'boxed'>,\n): number {\n if (signal.boxed) return measureSignalLabel(signal.label).boxH / 2;\n return (\n SIGNAL_LABEL_BASELINE_GAP +\n (signal.label.length - 1) * SIGNAL_LABEL_LINE_STEP +\n textAscent(SIGNAL_LABEL_FONT_SIZE, 'mono')\n );\n}\n\n/** Distance from a signal's row down to the bottom of its label box. */\nexport function signalLabelFootroom(\n signal: Pick<DiagramSignal, 'label' | 'boxed'>,\n): number {\n return signal.boxed ? measureSignalLabel(signal.label).boxH / 2 : 0;\n}\n\nexport function computeBoxedSignal(args: {\n fromX: number;\n toX: number;\n rowY: number;\n boxW: number;\n boxH: number;\n stub: number;\n position: DiagramSignalBox;\n headInset: number;\n}): BoxedSegment {\n const { fromX, toX, rowY, boxW, boxH, stub, position, headInset } = args;\n const direction = toX > fromX ? 1 : -1;\n\n let nearEdge: number;\n switch (position) {\n case 'source':\n nearEdge = fromX + stub * direction;\n break;\n case 'center':\n nearEdge = (fromX + toX) / 2 - (boxW / 2) * direction;\n break;\n case 'target':\n nearEdge = toX - (stub + boxW) * direction;\n break;\n default: {\n const _exhaustive: never = position;\n throw new Error(`invalid boxed signal position: ${String(_exhaustive)}`);\n }\n }\n const farEdge = nearEdge + boxW * direction;\n\n const stubA = { x1: fromX, x2: nearEdge };\n const stubB = { x1: farEdge, x2: toX - headInset * direction };\n\n const stubALen = (stubA.x2 - stubA.x1) * direction;\n const stubBLen = (stubB.x2 - stubB.x1) * direction;\n if (stubALen < 0 || stubBLen < 0) {\n throw new Error(\n `boxed signal label box (width=${boxW}) overflows the lane distance |toX-fromX|=${Math.abs(toX - fromX)} with stub=${stub}, position=${position}`,\n );\n }\n\n return {\n boxLeft: Math.min(nearEdge, farEdge),\n boxRight: Math.max(nearEdge, farEdge),\n boxTop: rowY - boxH / 2,\n boxBottom: rowY + boxH / 2,\n stubA,\n stubB,\n };\n}\n\nexport function laneCenterX(index: number, total: number): number {\n const slot = SEQ_W / total;\n return slot * index + slot / 2;\n}\n\nexport type LanePlacement = {\n id: string;\n centerX: number;\n rectX: number;\n topRectY: number;\n bottomRectY: number;\n accent: boolean;\n};\n\nexport type SignalPlacement = {\n index: number;\n from: string;\n to: string;\n rowY: number;\n segmentStart: number;\n segmentEnd: number;\n};\n\nexport type FramePlacement = {\n x: number;\n y: number;\n width: number;\n height: number;\n label: string;\n segmentStart: number;\n segmentEnd: number;\n signals: SignalPlacement[];\n};\n\nexport type TimelineLayout = {\n width: number;\n height: number;\n lanes: LanePlacement[];\n lifelineYStart: number;\n lifelineYEnd: number;\n signals: SignalPlacement[];\n frame: FramePlacement | null;\n topLanesSegment: { start: number; end: number };\n bottomLanesSegment: { start: number; end: number };\n};\n\nexport function computeTimelineLayout(\n spec: TimelineLayoutSpec,\n): TimelineLayout {\n const totalLanes = spec.lanes.length;\n const totalSignals = spec.signals.length;\n const hasLoop = !!spec.frame;\n const frameMsgs = spec.frame?.signals.length ?? 0;\n\n const segments = buildTimelineSegments(totalSignals, hasLoop, frameMsgs);\n const segOf = (kind: SegmentKind, index = 0) => {\n const s = segments.find((s) => s.kind === kind && s.index === index);\n if (!s) throw new Error(`segment ${kind}[${index}] missing`);\n return s;\n };\n\n const lifelineYStart = TOP_ACTOR_Y + ACTOR_H;\n const mainMsgY = (i: number) => FIRST_MSG_Y + i * ROW_H;\n const lastMainMsgY =\n spec.signals.length > 0 ? mainMsgY(spec.signals.length - 1) : FIRST_MSG_Y;\n\n let frame: FramePlacement | null = null;\n let frameBottom = lastMainMsgY;\n\n if (hasLoop && spec.frame) {\n const frameY = lastMainMsgY + LOOP_TOP_PAD;\n const [firstFrameSignal] = spec.frame.signals;\n const [lastFrameSignal] = spec.frame.signals.slice(-1);\n const firstRowOffset =\n FRAME_HEADER_H +\n FRAME_PAD +\n (firstFrameSignal ? signalLabelHeadroom(firstFrameSignal) : 0);\n const lastRowOffset = firstRowOffset + Math.max(0, frameMsgs - 1) * ROW_H;\n const frameH =\n lastRowOffset +\n (lastFrameSignal ? signalLabelFootroom(lastFrameSignal) : 0) +\n FRAME_PAD;\n frameBottom = frameY + frameH;\n const seg = segOf('frame-frame');\n frame = {\n x: LOOP_X_PAD,\n y: frameY,\n width: SEQ_W - 2 * LOOP_X_PAD,\n height: frameH,\n label: spec.frame.label,\n segmentStart: seg.start,\n segmentEnd: seg.end,\n signals: spec.frame.signals.map((m, i) => {\n const ms = segOf('frame-msg', i);\n return {\n index: i,\n from: m.from,\n to: m.to,\n rowY: frameY + firstRowOffset + i * ROW_H,\n segmentStart: ms.start,\n segmentEnd: ms.end,\n };\n }),\n };\n }\n\n const bottomActorY = frameBottom + BOTTOM_ACTOR_GAP;\n const lifelineYEnd = bottomActorY;\n const totalH = bottomActorY + ACTOR_H + 30;\n\n const lanes: LanePlacement[] = spec.lanes.map((a, i) => {\n const cx = laneCenterX(i, totalLanes);\n return {\n id: a.id,\n centerX: cx,\n rectX: cx - ACTOR_W / 2,\n topRectY: TOP_ACTOR_Y,\n bottomRectY: bottomActorY,\n accent: !!a.accent,\n };\n });\n\n const signals: SignalPlacement[] = spec.signals.map((m, i) => {\n const seg = segOf('msg', i);\n return {\n index: i,\n from: m.from,\n to: m.to,\n rowY: mainMsgY(i),\n segmentStart: seg.start,\n segmentEnd: seg.end,\n };\n });\n\n return {\n width: SEQ_W,\n height: totalH,\n lanes,\n lifelineYStart,\n lifelineYEnd,\n signals,\n frame,\n topLanesSegment: {\n start: segOf('top-lanes').start,\n end: segOf('top-lanes').end,\n },\n bottomLanesSegment: {\n start: segOf('bottom-lanes').start,\n end: segOf('bottom-lanes').end,\n },\n };\n}\n"],"mappings":"AAKA,SAASA,UAAU,EAAEC,UAAU,QAAQ,oBAAoB;AAW3D,OAAO,MAAMC,KAAK,GAAG,IAAI;AACzB,OAAO,MAAMC,OAAO,GAAG,GAAG;AAC1B,OAAO,MAAMC,OAAO,GAAG,EAAE;AACzB,OAAO,MAAMC,QAAQ,GAAG,EAAE;AAC1B,OAAO,MAAMC,WAAW,GAAG,EAAE;AAC7B,OAAO,MAAMC,KAAK,GAAG,EAAE;AACvB,OAAO,MAAMC,WAAW,GAAG,GAAG;AAC9B,OAAO,MAAMC,YAAY,GAAG,EAAE;AAC9B,OAAO,MAAMC,UAAU,GAAG,EAAE;AAC5B,OAAO,MAAMC,cAAc,GAAG,EAAE;AAChC,OAAO,MAAMC,SAAS,GAAG,EAAE;AAC3B,OAAO,MAAMC,gBAAgB,GAAG,EAAE;AAClC,OAAO,MAAMC,kBAAkB,GAAG,EAAE;AACpC,OAAO,MAAMC,sBAAsB,GAAG,EAAE;AACxC,OAAO,MAAMC,kBAAkB,GAAG,EAAE;AACpC,OAAO,MAAMC,kBAAkB,GAAG,EAAE;AACpC,OAAO,MAAMC,mBAAmB,GAAG,EAAE;AACrC,OAAO,MAAMC,yBAAyB,GAAG,EAAE;AAC3C,OAAO,MAAMC,sBAAsB,GAAG,EAAE;AAYxC,OAAO,SAASC,qBAAqBA,CACnCC,YAAoB,EACpBC,OAAgB,EAChBC,SAAiB,EACA;EACjB,MAAMC,SAAS,GAAG,CAAC,GAAGH,YAAY,IAAIC,OAAO,GAAG,CAAC,GAAGC,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC;EACtE,MAAME,IAAI,GAAG,CAAC,GAAGD,SAAS;EAC1B,IAAIE,CAAC,GAAG,CAAC;EACT,MAAMC,QAAyB,GAAG,EAAE;EACpCA,QAAQ,CAACC,IAAI,CAAC;IACZC,IAAI,EAAE,WAAW;IACjBC,KAAK,EAAE,CAAC;IACRC,KAAK,EAAEL,CAAC,GAAGD,IAAI;IACfO,GAAG,EAAE,EAAEN,CAAC,GAAGD;EACb,CAAC,CAAC;EACF,KAAK,IAAIQ,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGZ,YAAY,EAAEY,CAAC,EAAE,EAAE;IACrCN,QAAQ,CAACC,IAAI,CAAC;MAAEC,IAAI,EAAE,KAAK;MAAEC,KAAK,EAAEG,CAAC;MAAEF,KAAK,EAAEL,CAAC,GAAGD,IAAI;MAAEO,GAAG,EAAE,EAAEN,CAAC,GAAGD;IAAK,CAAC,CAAC;EAC5E;EACA,IAAIH,OAAO,EAAE;IACXK,QAAQ,CAACC,IAAI,CAAC;MACZC,IAAI,EAAE,aAAa;MACnBC,KAAK,EAAE,CAAC;MACRC,KAAK,EAAEL,CAAC,GAAGD,IAAI;MACfO,GAAG,EAAE,EAAEN,CAAC,GAAGD;IACb,CAAC,CAAC;IACF,KAAK,IAAIQ,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGV,SAAS,EAAEU,CAAC,EAAE,EAAE;MAClCN,QAAQ,CAACC,IAAI,CAAC;QACZC,IAAI,EAAE,WAAW;QACjBC,KAAK,EAAEG,CAAC;QACRF,KAAK,EAAEL,CAAC,GAAGD,IAAI;QACfO,GAAG,EAAE,EAAEN,CAAC,GAAGD;MACb,CAAC,CAAC;IACJ;EACF;EACAE,QAAQ,CAACC,IAAI,CAAC;IACZC,IAAI,EAAE,cAAc;IACpBC,KAAK,EAAE,CAAC;IACRC,KAAK,EAAEL,CAAC,GAAGD,IAAI;IACfO,GAAG,EAAE,CAACN,CAAC,GAAG,CAAC,IAAID;EACjB,CAAC,CAAC;EACF,OAAOE,QAAQ;AACjB;AAWA,OAAO,SAASO,kBAAkBA,CAACC,KAAe,EAGhD;EACA,OAAO;IACLC,IAAI,EACFC,IAAI,CAACC,IAAI,CAACtC,UAAU,CAACmC,KAAK,EAAErB,sBAAsB,EAAE,MAAM,CAAC,CAAC,GAC5DC,kBAAkB,GAAG,CAAC;IACxBwB,IAAI,EAAEJ,KAAK,CAACK,MAAM,GAAGvB,mBAAmB,GAAGD,kBAAkB,GAAG;EAClE,CAAC;AACH;;AAEA;AACA,OAAO,SAASyB,mBAAmBA,CACjCC,MAA8C,EACtC;EACR,IAAIA,MAAM,CAACC,KAAK,EAAE,OAAOT,kBAAkB,CAACQ,MAAM,CAACP,KAAK,CAAC,CAACI,IAAI,GAAG,CAAC;EAClE,OACErB,yBAAyB,GACzB,CAACwB,MAAM,CAACP,KAAK,CAACK,MAAM,GAAG,CAAC,IAAIrB,sBAAsB,GAClDpB,UAAU,CAACe,sBAAsB,EAAE,MAAM,CAAC;AAE9C;;AAEA;AACA,OAAO,SAAS8B,mBAAmBA,CACjCF,MAA8C,EACtC;EACR,OAAOA,MAAM,CAACC,KAAK,GAAGT,kBAAkB,CAACQ,MAAM,CAACP,KAAK,CAAC,CAACI,IAAI,GAAG,CAAC,GAAG,CAAC;AACrE;AAEA,OAAO,SAASM,kBAAkBA,CAACC,IASlC,EAAgB;EACf,MAAM;IAAEC,KAAK;IAAEC,GAAG;IAAEC,IAAI;IAAEb,IAAI;IAAEG,IAAI;IAAEW,IAAI;IAAEC,QAAQ;IAAEC;EAAU,CAAC,GAAGN,IAAI;EACxE,MAAMO,SAAS,GAAGL,GAAG,GAAGD,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;EAEtC,IAAIO,QAAgB;EACpB,QAAQH,QAAQ;IACd,KAAK,QAAQ;MACXG,QAAQ,GAAGP,KAAK,GAAGG,IAAI,GAAGG,SAAS;MACnC;IACF,KAAK,QAAQ;MACXC,QAAQ,GAAG,CAACP,KAAK,GAAGC,GAAG,IAAI,CAAC,GAAIZ,IAAI,GAAG,CAAC,GAAIiB,SAAS;MACrD;IACF,KAAK,QAAQ;MACXC,QAAQ,GAAGN,GAAG,GAAG,CAACE,IAAI,GAAGd,IAAI,IAAIiB,SAAS;MAC1C;IACF;MAAS;QACP,MAAME,WAAkB,GAAGJ,QAAQ;QACnC,MAAM,IAAIK,KAAK,CAAC,kCAAkCC,MAAM,CAACF,WAAW,CAAC,EAAE,CAAC;MAC1E;EACF;EACA,MAAMG,OAAO,GAAGJ,QAAQ,GAAGlB,IAAI,GAAGiB,SAAS;EAE3C,MAAMM,KAAK,GAAG;IAAEC,EAAE,EAAEb,KAAK;IAAEc,EAAE,EAAEP;EAAS,CAAC;EACzC,MAAMQ,KAAK,GAAG;IAAEF,EAAE,EAAEF,OAAO;IAAEG,EAAE,EAAEb,GAAG,GAAGI,SAAS,GAAGC;EAAU,CAAC;EAE9D,MAAMU,QAAQ,GAAG,CAACJ,KAAK,CAACE,EAAE,GAAGF,KAAK,CAACC,EAAE,IAAIP,SAAS;EAClD,MAAMW,QAAQ,GAAG,CAACF,KAAK,CAACD,EAAE,GAAGC,KAAK,CAACF,EAAE,IAAIP,SAAS;EAClD,IAAIU,QAAQ,GAAG,CAAC,IAAIC,QAAQ,GAAG,CAAC,EAAE;IAChC,MAAM,IAAIR,KAAK,CACb,iCAAiCpB,IAAI,6CAA6CC,IAAI,CAAC4B,GAAG,CAACjB,GAAG,GAAGD,KAAK,CAAC,cAAcG,IAAI,cAAcC,QAAQ,EACjJ,CAAC;EACH;EAEA,OAAO;IACLe,OAAO,EAAE7B,IAAI,CAAC8B,GAAG,CAACb,QAAQ,EAAEI,OAAO,CAAC;IACpCU,QAAQ,EAAE/B,IAAI,CAACgC,GAAG,CAACf,QAAQ,EAAEI,OAAO,CAAC;IACrCY,MAAM,EAAErB,IAAI,GAAGV,IAAI,GAAG,CAAC;IACvBgC,SAAS,EAAEtB,IAAI,GAAGV,IAAI,GAAG,CAAC;IAC1BoB,KAAK;IACLG;EACF,CAAC;AACH;AAEA,OAAO,SAASU,WAAWA,CAAC1C,KAAa,EAAE2C,KAAa,EAAU;EAChE,MAAMC,IAAI,GAAGzE,KAAK,GAAGwE,KAAK;EAC1B,OAAOC,IAAI,GAAG5C,KAAK,GAAG4C,IAAI,GAAG,CAAC;AAChC;AA2CA,OAAO,SAASC,qBAAqBA,CACnCC,IAAwB,EACR;EAChB,MAAMC,UAAU,GAAGD,IAAI,CAACE,KAAK,CAACtC,MAAM;EACpC,MAAMnB,YAAY,GAAGuD,IAAI,CAACG,OAAO,CAACvC,MAAM;EACxC,MAAMlB,OAAO,GAAG,CAAC,CAACsD,IAAI,CAACI,KAAK;EAC5B,MAAMzD,SAAS,GAAGqD,IAAI,CAACI,KAAK,EAAED,OAAO,CAACvC,MAAM,IAAI,CAAC;EAEjD,MAAMb,QAAQ,GAAGP,qBAAqB,CAACC,YAAY,EAAEC,OAAO,EAAEC,SAAS,CAAC;EACxE,MAAM0D,KAAK,GAAGA,CAACpD,IAAiB,EAAEC,KAAK,GAAG,CAAC,KAAK;IAC9C,MAAMoD,CAAC,GAAGvD,QAAQ,CAACwD,IAAI,CAAED,CAAC,IAAKA,CAAC,CAACrD,IAAI,KAAKA,IAAI,IAAIqD,CAAC,CAACpD,KAAK,KAAKA,KAAK,CAAC;IACpE,IAAI,CAACoD,CAAC,EAAE,MAAM,IAAI1B,KAAK,CAAC,WAAW3B,IAAI,IAAIC,KAAK,WAAW,CAAC;IAC5D,OAAOoD,CAAC;EACV,CAAC;EAED,MAAME,cAAc,GAAG/E,WAAW,GAAGF,OAAO;EAC5C,MAAMkF,QAAQ,GAAI3D,CAAS,IAAKnB,WAAW,GAAGmB,CAAC,GAAGpB,KAAK;EACvD,MAAMgF,YAAY,GAChBV,IAAI,CAACG,OAAO,CAACvC,MAAM,GAAG,CAAC,GAAG6C,QAAQ,CAACT,IAAI,CAACG,OAAO,CAACvC,MAAM,GAAG,CAAC,CAAC,GAAGjC,WAAW;EAE3E,IAAIyE,KAA4B,GAAG,IAAI;EACvC,IAAIO,WAAW,GAAGD,YAAY;EAE9B,IAAIhE,OAAO,IAAIsD,IAAI,CAACI,KAAK,EAAE;IACzB,MAAMQ,MAAM,GAAGF,YAAY,GAAG9E,YAAY;IAC1C,MAAM,CAACiF,gBAAgB,CAAC,GAAGb,IAAI,CAACI,KAAK,CAACD,OAAO;IAC7C,MAAM,CAACW,eAAe,CAAC,GAAGd,IAAI,CAACI,KAAK,CAACD,OAAO,CAACY,KAAK,CAAC,CAAC,CAAC,CAAC;IACtD,MAAMC,cAAc,GAClBlF,cAAc,GACdC,SAAS,IACR8E,gBAAgB,GAAGhD,mBAAmB,CAACgD,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAChE,MAAMI,aAAa,GAAGD,cAAc,GAAGvD,IAAI,CAACgC,GAAG,CAAC,CAAC,EAAE9C,SAAS,GAAG,CAAC,CAAC,GAAGjB,KAAK;IACzE,MAAMwF,MAAM,GACVD,aAAa,IACZH,eAAe,GAAG9C,mBAAmB,CAAC8C,eAAe,CAAC,GAAG,CAAC,CAAC,GAC5D/E,SAAS;IACX4E,WAAW,GAAGC,MAAM,GAAGM,MAAM;IAC7B,MAAMC,GAAG,GAAGd,KAAK,CAAC,aAAa,CAAC;IAChCD,KAAK,GAAG;MACNgB,CAAC,EAAEvF,UAAU;MACbwF,CAAC,EAAET,MAAM;MACTU,KAAK,EAAEjG,KAAK,GAAG,CAAC,GAAGQ,UAAU;MAC7B0F,MAAM,EAAEL,MAAM;MACd3D,KAAK,EAAEyC,IAAI,CAACI,KAAK,CAAC7C,KAAK;MACvBiE,YAAY,EAAEL,GAAG,CAAChE,KAAK;MACvBsE,UAAU,EAAEN,GAAG,CAAC/D,GAAG;MACnB+C,OAAO,EAAEH,IAAI,CAACI,KAAK,CAACD,OAAO,CAACuB,GAAG,CAAC,CAACrE,CAAC,EAAEP,CAAC,KAAK;QACxC,MAAM6E,EAAE,GAAGtB,KAAK,CAAC,WAAW,EAAEvD,CAAC,CAAC;QAChC,OAAO;UACLI,KAAK,EAAEJ,CAAC;UACR8E,IAAI,EAAEvE,CAAC,CAACuE,IAAI;UACZC,EAAE,EAAExE,CAAC,CAACwE,EAAE;UACRxD,IAAI,EAAEuC,MAAM,GAAGI,cAAc,GAAGlE,CAAC,GAAGpB,KAAK;UACzC8F,YAAY,EAAEG,EAAE,CAACxE,KAAK;UACtBsE,UAAU,EAAEE,EAAE,CAACvE;QACjB,CAAC;MACH,CAAC;IACH,CAAC;EACH;EAEA,MAAM0E,YAAY,GAAGnB,WAAW,GAAG3E,gBAAgB;EACnD,MAAM+F,YAAY,GAAGD,YAAY;EACjC,MAAME,MAAM,GAAGF,YAAY,GAAGvG,OAAO,GAAG,EAAE;EAE1C,MAAM2E,KAAsB,GAAGF,IAAI,CAACE,KAAK,CAACwB,GAAG,CAAC,CAACO,CAAC,EAAEnF,CAAC,KAAK;IACtD,MAAMoF,EAAE,GAAGtC,WAAW,CAAC9C,CAAC,EAAEmD,UAAU,CAAC;IACrC,OAAO;MACLkC,EAAE,EAAEF,CAAC,CAACE,EAAE;MACRC,OAAO,EAAEF,EAAE;MACXG,KAAK,EAAEH,EAAE,GAAG5G,OAAO,GAAG,CAAC;MACvBgH,QAAQ,EAAE7G,WAAW;MACrB8G,WAAW,EAAET,YAAY;MACzBU,MAAM,EAAE,CAAC,CAACP,CAAC,CAACO;IACd,CAAC;EACH,CAAC,CAAC;EAEF,MAAMrC,OAA0B,GAAGH,IAAI,CAACG,OAAO,CAACuB,GAAG,CAAC,CAACrE,CAAC,EAAEP,CAAC,KAAK;IAC5D,MAAMqE,GAAG,GAAGd,KAAK,CAAC,KAAK,EAAEvD,CAAC,CAAC;IAC3B,OAAO;MACLI,KAAK,EAAEJ,CAAC;MACR8E,IAAI,EAAEvE,CAAC,CAACuE,IAAI;MACZC,EAAE,EAAExE,CAAC,CAACwE,EAAE;MACRxD,IAAI,EAAEoC,QAAQ,CAAC3D,CAAC,CAAC;MACjB0E,YAAY,EAAEL,GAAG,CAAChE,KAAK;MACvBsE,UAAU,EAAEN,GAAG,CAAC/D;IAClB,CAAC;EACH,CAAC,CAAC;EAEF,OAAO;IACLkE,KAAK,EAAEjG,KAAK;IACZkG,MAAM,EAAES,MAAM;IACd9B,KAAK;IACLM,cAAc;IACduB,YAAY;IACZ5B,OAAO;IACPC,KAAK;IACLqC,eAAe,EAAE;MACftF,KAAK,EAAEkD,KAAK,CAAC,WAAW,CAAC,CAAClD,KAAK;MAC/BC,GAAG,EAAEiD,KAAK,CAAC,WAAW,CAAC,CAACjD;IAC1B,CAAC;IACDsF,kBAAkB,EAAE;MAClBvF,KAAK,EAAEkD,KAAK,CAAC,cAAc,CAAC,CAAClD,KAAK;MAClCC,GAAG,EAAEiD,KAAK,CAAC,cAAc,CAAC,CAACjD;IAC7B;EACF,CAAC;AACH","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"timeline-layout.js","names":["fontAscent","measureText","SEQ_W","ACTOR_W","ACTOR_H","ACTOR_RX","TOP_ACTOR_Y","ROW_H","FIRST_MSG_Y","LOOP_TOP_PAD","LOOP_X_PAD","FRAME_HEADER_H","FRAME_PAD","BOTTOM_ACTOR_GAP","DEFAULT_BOXED_STUB","SIGNAL_LABEL_FONT","face","size","weight","SIGNAL_LABEL_PAD_X","SIGNAL_LABEL_PAD_Y","SIGNAL_LABEL_LINE_H","SIGNAL_LABEL_BASELINE_GAP","SIGNAL_LABEL_LINE_STEP","buildTimelineSegments","totalSignals","hasLoop","frameMsgs","slotCount","step","i","segments","push","kind","index","start","end","m","measureSignalLabel","label","widestLineW","Math","max","map","line","boxW","ceil","boxH","length","signalLabelHeadroom","signal","boxed","signalLabelFootroom","computeBoxedSignal","args","fromX","toX","rowY","stub","position","headInset","direction","nearEdge","_exhaustive","Error","String","farEdge","stubA","x1","x2","stubB","stubALen","stubBLen","abs","boxLeft","min","boxRight","boxTop","boxBottom","laneCenterX","total","slot","computeTimelineLayout","spec","totalLanes","lanes","signals","frame","segOf","s","find","lifelineYStart","mainMsgY","lastMainMsgY","frameBottom","frameY","firstFrameSignal","lastFrameSignal","slice","firstRowOffset","lastRowOffset","frameH","seg","x","y","width","height","segmentStart","segmentEnd","ms","from","to","bottomActorY","lifelineYEnd","totalH","a","cx","id","centerX","rectX","topRectY","bottomRectY","accent","topLanesSegment","bottomLanesSegment"],"sources":["../../../../src/lib/layouts/timeline/timeline-layout.ts"],"sourcesContent":["import type {\n DiagramSignal,\n DiagramSignalBox,\n DiagramTimelineSpec,\n} from '../../model/diagram-ir.ts';\nimport type { Font } from '../text/font.ts';\nimport { fontAscent, measureText } from '../text/measure-text.ts';\n\nexport type {\n DiagramFrameElement,\n DiagramLane,\n DiagramSignal,\n DiagramSignalBox,\n} from '../../model/diagram-ir.ts';\n\nexport type TimelineLayoutSpec = DiagramTimelineSpec & { title?: string[] };\n\nexport const SEQ_W = 1000;\nexport const ACTOR_W = 190;\nexport const ACTOR_H = 72;\nexport const ACTOR_RX = 16;\nexport const TOP_ACTOR_Y = 30;\nexport const ROW_H = 70;\nexport const FIRST_MSG_Y = 200;\nexport const LOOP_TOP_PAD = 38;\nexport const LOOP_X_PAD = 24;\nexport const FRAME_HEADER_H = 22;\nexport const FRAME_PAD = 12;\nexport const BOTTOM_ACTOR_GAP = 50;\nexport const DEFAULT_BOXED_STUB = 12;\nexport const SIGNAL_LABEL_FONT: Font = { face: 'mono', size: 12, weight: 400 };\nexport const SIGNAL_LABEL_PAD_X = 14;\nexport const SIGNAL_LABEL_PAD_Y = 10;\nexport const SIGNAL_LABEL_LINE_H = 18;\nexport const SIGNAL_LABEL_BASELINE_GAP = 12;\nexport const SIGNAL_LABEL_LINE_STEP = 15;\n\nexport type SegmentKind =\n 'top-lanes' | 'msg' | 'frame-frame' | 'frame-msg' | 'bottom-lanes';\n\nexport type LayoutSegment = {\n kind: SegmentKind;\n index: number;\n start: number;\n end: number;\n};\n\nexport function buildTimelineSegments(\n totalSignals: number,\n hasLoop: boolean,\n frameMsgs: number,\n): LayoutSegment[] {\n const slotCount = 1 + totalSignals + (hasLoop ? 1 + frameMsgs : 0) + 1;\n const step = 1 / slotCount;\n let i = 0;\n const segments: LayoutSegment[] = [];\n segments.push({\n kind: 'top-lanes',\n index: 0,\n start: i * step,\n end: ++i * step,\n });\n for (let m = 0; m < totalSignals; m++) {\n segments.push({ kind: 'msg', index: m, start: i * step, end: ++i * step });\n }\n if (hasLoop) {\n segments.push({\n kind: 'frame-frame',\n index: 0,\n start: i * step,\n end: ++i * step,\n });\n for (let m = 0; m < frameMsgs; m++) {\n segments.push({\n kind: 'frame-msg',\n index: m,\n start: i * step,\n end: ++i * step,\n });\n }\n }\n segments.push({\n kind: 'bottom-lanes',\n index: 0,\n start: i * step,\n end: (i + 1) * step,\n });\n return segments;\n}\n\nexport type BoxedSegment = {\n boxLeft: number;\n boxRight: number;\n boxTop: number;\n boxBottom: number;\n stubA: { x1: number; x2: number };\n stubB: { x1: number; x2: number };\n};\n\nexport function measureSignalLabel(label: string[]): {\n boxW: number;\n boxH: number;\n} {\n const widestLineW = Math.max(\n 0,\n ...label.map((line) => measureText(line, SIGNAL_LABEL_FONT)),\n );\n return {\n boxW: Math.ceil(widestLineW) + SIGNAL_LABEL_PAD_X * 2,\n boxH: label.length * SIGNAL_LABEL_LINE_H + SIGNAL_LABEL_PAD_Y * 2,\n };\n}\n\n/** Distance from a signal's row up to the top of its label or label box. */\nexport function signalLabelHeadroom(\n signal: Pick<DiagramSignal, 'label' | 'boxed'>,\n): number {\n if (signal.boxed) return measureSignalLabel(signal.label).boxH / 2;\n return (\n SIGNAL_LABEL_BASELINE_GAP +\n (signal.label.length - 1) * SIGNAL_LABEL_LINE_STEP +\n fontAscent(SIGNAL_LABEL_FONT)\n );\n}\n\n/** Distance from a signal's row down to the bottom of its label box. */\nexport function signalLabelFootroom(\n signal: Pick<DiagramSignal, 'label' | 'boxed'>,\n): number {\n return signal.boxed ? measureSignalLabel(signal.label).boxH / 2 : 0;\n}\n\nexport function computeBoxedSignal(args: {\n fromX: number;\n toX: number;\n rowY: number;\n boxW: number;\n boxH: number;\n stub: number;\n position: DiagramSignalBox;\n headInset: number;\n}): BoxedSegment {\n const { fromX, toX, rowY, boxW, boxH, stub, position, headInset } = args;\n const direction = toX > fromX ? 1 : -1;\n\n let nearEdge: number;\n switch (position) {\n case 'source':\n nearEdge = fromX + stub * direction;\n break;\n case 'center':\n nearEdge = (fromX + toX) / 2 - (boxW / 2) * direction;\n break;\n case 'target':\n nearEdge = toX - (stub + boxW) * direction;\n break;\n default: {\n const _exhaustive: never = position;\n throw new Error(`invalid boxed signal position: ${String(_exhaustive)}`);\n }\n }\n const farEdge = nearEdge + boxW * direction;\n\n const stubA = { x1: fromX, x2: nearEdge };\n const stubB = { x1: farEdge, x2: toX - headInset * direction };\n\n const stubALen = (stubA.x2 - stubA.x1) * direction;\n const stubBLen = (stubB.x2 - stubB.x1) * direction;\n if (stubALen < 0 || stubBLen < 0) {\n throw new Error(\n `boxed signal label box (width=${boxW}) overflows the lane distance |toX-fromX|=${Math.abs(toX - fromX)} with stub=${stub}, position=${position}`,\n );\n }\n\n return {\n boxLeft: Math.min(nearEdge, farEdge),\n boxRight: Math.max(nearEdge, farEdge),\n boxTop: rowY - boxH / 2,\n boxBottom: rowY + boxH / 2,\n stubA,\n stubB,\n };\n}\n\nexport function laneCenterX(index: number, total: number): number {\n const slot = SEQ_W / total;\n return slot * index + slot / 2;\n}\n\nexport type LanePlacement = {\n id: string;\n centerX: number;\n rectX: number;\n topRectY: number;\n bottomRectY: number;\n accent: boolean;\n};\n\nexport type SignalPlacement = {\n index: number;\n from: string;\n to: string;\n rowY: number;\n segmentStart: number;\n segmentEnd: number;\n};\n\nexport type FramePlacement = {\n x: number;\n y: number;\n width: number;\n height: number;\n label: string;\n segmentStart: number;\n segmentEnd: number;\n signals: SignalPlacement[];\n};\n\nexport type TimelineLayout = {\n width: number;\n height: number;\n lanes: LanePlacement[];\n lifelineYStart: number;\n lifelineYEnd: number;\n signals: SignalPlacement[];\n frame: FramePlacement | null;\n topLanesSegment: { start: number; end: number };\n bottomLanesSegment: { start: number; end: number };\n};\n\nexport function computeTimelineLayout(\n spec: TimelineLayoutSpec,\n): TimelineLayout {\n const totalLanes = spec.lanes.length;\n const totalSignals = spec.signals.length;\n const hasLoop = !!spec.frame;\n const frameMsgs = spec.frame?.signals.length ?? 0;\n\n const segments = buildTimelineSegments(totalSignals, hasLoop, frameMsgs);\n const segOf = (kind: SegmentKind, index = 0) => {\n const s = segments.find((s) => s.kind === kind && s.index === index);\n if (!s) throw new Error(`segment ${kind}[${index}] missing`);\n return s;\n };\n\n const lifelineYStart = TOP_ACTOR_Y + ACTOR_H;\n const mainMsgY = (i: number) => FIRST_MSG_Y + i * ROW_H;\n const lastMainMsgY =\n spec.signals.length > 0 ? mainMsgY(spec.signals.length - 1) : FIRST_MSG_Y;\n\n let frame: FramePlacement | null = null;\n let frameBottom = lastMainMsgY;\n\n if (hasLoop && spec.frame) {\n const frameY = lastMainMsgY + LOOP_TOP_PAD;\n const [firstFrameSignal] = spec.frame.signals;\n const [lastFrameSignal] = spec.frame.signals.slice(-1);\n const firstRowOffset =\n FRAME_HEADER_H +\n FRAME_PAD +\n (firstFrameSignal ? signalLabelHeadroom(firstFrameSignal) : 0);\n const lastRowOffset = firstRowOffset + Math.max(0, frameMsgs - 1) * ROW_H;\n const frameH =\n lastRowOffset +\n (lastFrameSignal ? signalLabelFootroom(lastFrameSignal) : 0) +\n FRAME_PAD;\n frameBottom = frameY + frameH;\n const seg = segOf('frame-frame');\n frame = {\n x: LOOP_X_PAD,\n y: frameY,\n width: SEQ_W - 2 * LOOP_X_PAD,\n height: frameH,\n label: spec.frame.label,\n segmentStart: seg.start,\n segmentEnd: seg.end,\n signals: spec.frame.signals.map((m, i) => {\n const ms = segOf('frame-msg', i);\n return {\n index: i,\n from: m.from,\n to: m.to,\n rowY: frameY + firstRowOffset + i * ROW_H,\n segmentStart: ms.start,\n segmentEnd: ms.end,\n };\n }),\n };\n }\n\n const bottomActorY = frameBottom + BOTTOM_ACTOR_GAP;\n const lifelineYEnd = bottomActorY;\n const totalH = bottomActorY + ACTOR_H + 30;\n\n const lanes: LanePlacement[] = spec.lanes.map((a, i) => {\n const cx = laneCenterX(i, totalLanes);\n return {\n id: a.id,\n centerX: cx,\n rectX: cx - ACTOR_W / 2,\n topRectY: TOP_ACTOR_Y,\n bottomRectY: bottomActorY,\n accent: !!a.accent,\n };\n });\n\n const signals: SignalPlacement[] = spec.signals.map((m, i) => {\n const seg = segOf('msg', i);\n return {\n index: i,\n from: m.from,\n to: m.to,\n rowY: mainMsgY(i),\n segmentStart: seg.start,\n segmentEnd: seg.end,\n };\n });\n\n return {\n width: SEQ_W,\n height: totalH,\n lanes,\n lifelineYStart,\n lifelineYEnd,\n signals,\n frame,\n topLanesSegment: {\n start: segOf('top-lanes').start,\n end: segOf('top-lanes').end,\n },\n bottomLanesSegment: {\n start: segOf('bottom-lanes').start,\n end: segOf('bottom-lanes').end,\n },\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -9,20 +9,15 @@ export type DiagramLabelLine = string | {
|
|
|
9
9
|
fontWeight?: number;
|
|
10
10
|
};
|
|
11
11
|
export type DiagramSide = 'top' | 'bottom' | 'left' | 'right';
|
|
12
|
-
export type DiagramAnchor = DiagramSide | 'center';
|
|
13
12
|
export type DiagramLabelAlign = 'start' | 'center' | 'end';
|
|
14
|
-
export type DiagramTextAlign = 'start' | 'middle' | 'end';
|
|
15
|
-
export type DiagramEdgeLabelSide = 'auto' | 'above' | 'below' | 'left' | 'right';
|
|
16
13
|
export type DiagramEdgeLineStyle = 'solid' | 'dashed' | 'dotted';
|
|
17
14
|
export type DiagramEdgeDirection = 'forward' | 'both' | 'none';
|
|
18
15
|
export type DiagramEdgeLayer = 'background' | 'foreground';
|
|
19
|
-
export type
|
|
20
|
-
export type DiagramGuideOrientation = 'vertical' | 'horizontal';
|
|
16
|
+
export type DiagramEdgeWeight = 'regular' | 'bold';
|
|
21
17
|
export type DiagramStackDirection = 'up-left' | 'up-right' | 'down-left' | 'down-right';
|
|
22
18
|
export type DiagramNodePort = {
|
|
23
19
|
id: string;
|
|
24
20
|
side: DiagramSide;
|
|
25
|
-
offset?: number;
|
|
26
21
|
label?: string;
|
|
27
22
|
accent?: boolean;
|
|
28
23
|
};
|
|
@@ -30,44 +25,12 @@ export type Point = {
|
|
|
30
25
|
x: number;
|
|
31
26
|
y: number;
|
|
32
27
|
};
|
|
33
|
-
export type DiagramWaypoint = Point | {
|
|
34
|
-
row: number;
|
|
35
|
-
col: number;
|
|
36
|
-
dx?: number;
|
|
37
|
-
dy?: number;
|
|
38
|
-
} | {
|
|
39
|
-
guide: string;
|
|
40
|
-
target?: string;
|
|
41
|
-
anchor?: DiagramAnchor;
|
|
42
|
-
gap?: number;
|
|
43
|
-
row?: number;
|
|
44
|
-
col?: number;
|
|
45
|
-
x?: number;
|
|
46
|
-
y?: number;
|
|
47
|
-
dx?: number;
|
|
48
|
-
dy?: number;
|
|
49
|
-
} | {
|
|
50
|
-
target: string;
|
|
51
|
-
anchor?: DiagramAnchor;
|
|
52
|
-
gap?: number;
|
|
53
|
-
dx?: number;
|
|
54
|
-
dy?: number;
|
|
55
|
-
};
|
|
56
28
|
export type Box = {
|
|
57
29
|
x: number;
|
|
58
30
|
y: number;
|
|
59
31
|
w: number;
|
|
60
32
|
h: number;
|
|
61
33
|
};
|
|
62
|
-
export type DiagramGraphLayout = {
|
|
63
|
-
colWidth?: number;
|
|
64
|
-
rowHeight?: number;
|
|
65
|
-
columns?: number[];
|
|
66
|
-
rows?: number[];
|
|
67
|
-
padX?: number;
|
|
68
|
-
padY?: number;
|
|
69
|
-
titleTopPad?: number;
|
|
70
|
-
};
|
|
71
34
|
export type DiagramViewportFit = 'width' | 'contain' | 'natural';
|
|
72
35
|
export type DiagramViewport = {
|
|
73
36
|
fit?: DiagramViewportFit;
|
|
@@ -79,58 +42,50 @@ export type DiagramPaper = boolean | {
|
|
|
79
42
|
stroke?: boolean;
|
|
80
43
|
rx?: number;
|
|
81
44
|
};
|
|
45
|
+
/** React content drawn inside a node, in a box of the size its author gives. */
|
|
46
|
+
export type DiagramNodeContent = {
|
|
47
|
+
element: ReactNode;
|
|
48
|
+
size: {
|
|
49
|
+
w: number;
|
|
50
|
+
h: number;
|
|
51
|
+
};
|
|
52
|
+
};
|
|
82
53
|
export type DiagramNode = {
|
|
83
54
|
id: string;
|
|
84
55
|
label: string | DiagramLabelLine[];
|
|
85
|
-
/**
|
|
86
|
-
content?:
|
|
56
|
+
/** Only HtmlGraphDiagram draws it. */
|
|
57
|
+
content?: DiagramNodeContent;
|
|
87
58
|
kind?: 'node' | 'appliance' | 'connector' | 'junction' | 'marker' | 'note';
|
|
88
59
|
row?: number | undefined;
|
|
89
60
|
col?: number | undefined;
|
|
90
61
|
colSpan?: number | undefined;
|
|
91
62
|
rowSpan?: number | undefined;
|
|
92
|
-
/** Whether a Box or Card fills its grid area; other kinds keep their measured size. */
|
|
93
|
-
stretch?: boolean | undefined;
|
|
94
63
|
/** The id of the node or group a note explains. */
|
|
95
64
|
target?: string | undefined;
|
|
96
|
-
width?: number;
|
|
97
|
-
height?: number;
|
|
98
65
|
frame?: 'solid' | 'transparent' | 'flat' | 'filled' | 'none';
|
|
99
66
|
textColor?: DiagramTextColor | undefined;
|
|
100
67
|
tone?: DiagramTone | undefined;
|
|
101
68
|
texture?: DiagramTexture | undefined;
|
|
102
|
-
fontWeight?: number | undefined;
|
|
103
|
-
fontSize?: number | undefined;
|
|
104
|
-
bodyFontSize?: number;
|
|
105
|
-
bodyLineGap?: number;
|
|
106
69
|
accent?: boolean | undefined;
|
|
107
70
|
description?: string | string[];
|
|
108
71
|
items?: string[];
|
|
109
72
|
caption?: string | string[] | undefined;
|
|
110
73
|
captionSide?: DiagramSide | undefined;
|
|
111
74
|
captionFrame?: boolean;
|
|
112
|
-
captionOffset?: number | undefined;
|
|
113
75
|
captionColor?: DiagramTextColor | undefined;
|
|
114
|
-
|
|
115
|
-
captionFontWeight?: number | undefined;
|
|
76
|
+
/** The group the node is nested in. */
|
|
116
77
|
group?: string;
|
|
117
78
|
icon?: DiagramNodeIcon | undefined;
|
|
118
|
-
iconSize?: number | undefined;
|
|
119
79
|
ports?: DiagramNodePort[] | undefined;
|
|
120
|
-
|
|
80
|
+
/** Set for a Card: its text starts at the left edge under a title. */
|
|
121
81
|
textAlign?: 'center' | 'start' | undefined;
|
|
122
82
|
hidden?: boolean | undefined;
|
|
83
|
+
/** False for a Float, which no edge may start or end at. */
|
|
123
84
|
connectable?: boolean | undefined;
|
|
124
85
|
stack?: number;
|
|
125
|
-
stackOffset?: number;
|
|
126
86
|
stackDirection?: DiagramStackDirection;
|
|
127
|
-
stackDx?: number;
|
|
128
|
-
stackDy?: number;
|
|
129
|
-
stackWidthStep?: number;
|
|
130
|
-
stackHeightStep?: number;
|
|
131
87
|
appliancePorts?: number | undefined;
|
|
132
88
|
antenna?: boolean | undefined;
|
|
133
|
-
slant?: number | undefined;
|
|
134
89
|
};
|
|
135
90
|
export type DiagramEdge = {
|
|
136
91
|
from: string;
|
|
@@ -138,35 +93,14 @@ export type DiagramEdge = {
|
|
|
138
93
|
label?: string[];
|
|
139
94
|
badgeIcon?: DiagramNodeIcon;
|
|
140
95
|
badgeLabel?: string[];
|
|
141
|
-
badgeSide?: DiagramEdgeLabelSide;
|
|
142
|
-
badgeOffset?: number;
|
|
143
|
-
badgeDx?: number;
|
|
144
|
-
badgeDy?: number;
|
|
145
|
-
badgeT?: number;
|
|
146
|
-
labelSide?: DiagramEdgeLabelSide;
|
|
147
|
-
labelFontSize?: number;
|
|
148
|
-
labelOffset?: number;
|
|
149
|
-
labelT?: number;
|
|
150
|
-
labelSegment?: number;
|
|
151
|
-
labelDx?: number;
|
|
152
|
-
labelDy?: number;
|
|
153
|
-
labelAlign?: DiagramTextAlign;
|
|
154
96
|
labelFrame?: boolean;
|
|
155
|
-
labelFramePadding?: number;
|
|
156
|
-
labelLineGap?: number;
|
|
157
97
|
channel?: string;
|
|
158
98
|
lineStyle?: DiagramEdgeLineStyle;
|
|
159
99
|
direction?: DiagramEdgeDirection;
|
|
160
100
|
layer?: DiagramEdgeLayer;
|
|
161
|
-
|
|
162
|
-
strokeWidth?: number;
|
|
163
|
-
waypoints?: DiagramWaypoint[];
|
|
101
|
+
weight?: DiagramEdgeWeight;
|
|
164
102
|
exitSide?: DiagramSide;
|
|
165
|
-
exitOffset?: number;
|
|
166
103
|
entrySide?: DiagramSide;
|
|
167
|
-
entryOffset?: number;
|
|
168
|
-
entryGap?: number;
|
|
169
|
-
stubDistance?: number;
|
|
170
104
|
accent?: boolean;
|
|
171
105
|
dim?: boolean;
|
|
172
106
|
headless?: boolean | undefined;
|
|
@@ -179,7 +113,6 @@ export type DiagramGroup = {
|
|
|
179
113
|
accent?: boolean | undefined;
|
|
180
114
|
tone?: DiagramTone | undefined;
|
|
181
115
|
texture?: DiagramTexture | undefined;
|
|
182
|
-
rx?: number | undefined;
|
|
183
116
|
frame?: 'solid' | 'dashed' | 'none' | undefined;
|
|
184
117
|
fill?: 'surface' | 'none' | undefined;
|
|
185
118
|
ports?: DiagramNodePort[] | undefined;
|
|
@@ -189,51 +122,9 @@ export type DiagramGroup = {
|
|
|
189
122
|
col?: number | undefined;
|
|
190
123
|
rowSpan?: number | undefined;
|
|
191
124
|
colSpan?: number | undefined;
|
|
192
|
-
tight?: boolean | undefined;
|
|
193
|
-
tightX?: boolean | undefined;
|
|
194
|
-
tightY?: boolean | undefined;
|
|
195
125
|
titleBand?: boolean | undefined;
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
dividers?: {
|
|
199
|
-
rows?: number[];
|
|
200
|
-
cols?: number[];
|
|
201
|
-
} | undefined;
|
|
202
|
-
bounds?: {
|
|
203
|
-
rowStart: number;
|
|
204
|
-
rowEnd: number;
|
|
205
|
-
colStart: number;
|
|
206
|
-
colEnd: number;
|
|
207
|
-
} | undefined;
|
|
208
|
-
};
|
|
209
|
-
export type DiagramAnnotationLeaderRoute = 'straight' | 'elbow';
|
|
210
|
-
export type DiagramAnnotationLeader = {
|
|
211
|
-
target: string;
|
|
212
|
-
anchor: DiagramAnchor;
|
|
213
|
-
route: DiagramAnnotationLeaderRoute;
|
|
214
|
-
from: Point;
|
|
215
|
-
to: Point;
|
|
216
|
-
points: Point[];
|
|
217
|
-
};
|
|
218
|
-
export type DiagramAnnotation = {
|
|
219
|
-
x?: number;
|
|
220
|
-
y?: number;
|
|
221
|
-
target?: string;
|
|
222
|
-
targets?: string[];
|
|
223
|
-
anchor?: DiagramAnchor;
|
|
224
|
-
guide?: string;
|
|
225
|
-
offset?: number;
|
|
226
|
-
dx?: number;
|
|
227
|
-
dy?: number;
|
|
228
|
-
text: string[];
|
|
229
|
-
align?: DiagramTextAlign;
|
|
230
|
-
color?: DiagramTextColor;
|
|
231
|
-
fontWeight?: number;
|
|
232
|
-
fontSize?: number;
|
|
233
|
-
lineGap?: number;
|
|
234
|
-
leader?: boolean;
|
|
235
|
-
leaderGap?: number;
|
|
236
|
-
leaderRoute?: DiagramAnnotationLeaderRoute;
|
|
126
|
+
/** A line through every gutter inside the group. */
|
|
127
|
+
dividers?: boolean | undefined;
|
|
237
128
|
};
|
|
238
129
|
export type DiagramLane = {
|
|
239
130
|
id: string;
|
|
@@ -256,43 +147,15 @@ export type DiagramFrameElement = {
|
|
|
256
147
|
label: string;
|
|
257
148
|
signals: DiagramSignal[];
|
|
258
149
|
};
|
|
259
|
-
export type DiagramGuide = {
|
|
260
|
-
id?: string;
|
|
261
|
-
orientation?: DiagramGuideOrientation;
|
|
262
|
-
lane?: string;
|
|
263
|
-
x?: number;
|
|
264
|
-
y?: number;
|
|
265
|
-
row?: number;
|
|
266
|
-
col?: number;
|
|
267
|
-
target?: string;
|
|
268
|
-
anchor?: DiagramAnchor;
|
|
269
|
-
gap?: number;
|
|
270
|
-
dx?: number;
|
|
271
|
-
dy?: number;
|
|
272
|
-
yStart?: number;
|
|
273
|
-
yEnd?: number;
|
|
274
|
-
accent?: boolean;
|
|
275
|
-
};
|
|
276
150
|
export type DiagramMarker = DiagramNode;
|
|
277
|
-
export type
|
|
151
|
+
export type DiagramGraphIR = {
|
|
278
152
|
nodes: DiagramNode[];
|
|
279
153
|
edges: DiagramEdge[];
|
|
280
|
-
groups
|
|
281
|
-
annotations?: DiagramAnnotation[];
|
|
282
|
-
guides?: DiagramGuide[];
|
|
283
|
-
layout?: DiagramGraphLayout | undefined;
|
|
284
|
-
};
|
|
285
|
-
export type GraphLayoutSpec = DiagramGraphSpec & {
|
|
286
|
-
title?: string[];
|
|
154
|
+
groups: DiagramGroup[];
|
|
287
155
|
};
|
|
288
156
|
export type DiagramTimelineSpec = {
|
|
289
157
|
lanes: DiagramLane[];
|
|
290
158
|
signals: DiagramSignal[];
|
|
291
159
|
frame?: DiagramFrameElement | undefined;
|
|
292
160
|
};
|
|
293
|
-
export type DiagramGraphIR = DiagramGraphSpec & {
|
|
294
|
-
groups: DiagramGroup[];
|
|
295
|
-
annotations: DiagramAnnotation[];
|
|
296
|
-
guides: DiagramGuide[];
|
|
297
|
-
};
|
|
298
161
|
//# sourceMappingURL=diagram-ir.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagram-ir.d.ts","sourceRoot":"","sources":["../../../src/lib/model/diagram-ir.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"diagram-ir.d.ts","sourceRoot":"","sources":["../../../src/lib/model/diagram-ir.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagram-ir.js","names":[],"sources":["../../../src/lib/model/diagram-ir.ts"],"sourcesContent":["import type { ReactNode } from 'react';\n\nexport type DiagramTextColor = 'accent' | 'neutral' | 'dim';\n\nexport type DiagramTone =\n 'neutral' | 'green' | 'blue' | 'amber' | 'rose' | 'purple' | 'slate';\n\nexport type DiagramTexture = 'dots' | 'hatch' | 'none';\n\nexport type DiagramNodeIcon =\n | 'certificate'\n | 'cloudflare'\n | 'dashboard'\n | 'file'\n | 'git'\n | 'gpu'\n | 'user'\n | 'brain'\n | 'internet'\n | 'istio'\n | 'kubernetes'\n | 'logs'\n | 'metrics'\n | 'router'\n | 'server'\n | 'shield'\n | 'storage'\n | 'trace'\n | 'tunnel'\n | 'eye'\n | 'eye-off'\n | 'ellipsis';\n\nexport type DiagramLabelLine =\n | string\n | {\n text: string;\n textColor?: DiagramTextColor;\n fontWeight?: number;\n };\n\nexport type DiagramSide = 'top' | 'bottom' | 'left' | 'right';\nexport type
|
|
1
|
+
{"version":3,"file":"diagram-ir.js","names":[],"sources":["../../../src/lib/model/diagram-ir.ts"],"sourcesContent":["import type { ReactNode } from 'react';\n\nexport type DiagramTextColor = 'accent' | 'neutral' | 'dim';\n\nexport type DiagramTone =\n 'neutral' | 'green' | 'blue' | 'amber' | 'rose' | 'purple' | 'slate';\n\nexport type DiagramTexture = 'dots' | 'hatch' | 'none';\n\nexport type DiagramNodeIcon =\n | 'certificate'\n | 'cloudflare'\n | 'dashboard'\n | 'file'\n | 'git'\n | 'gpu'\n | 'user'\n | 'brain'\n | 'internet'\n | 'istio'\n | 'kubernetes'\n | 'logs'\n | 'metrics'\n | 'router'\n | 'server'\n | 'shield'\n | 'storage'\n | 'trace'\n | 'tunnel'\n | 'eye'\n | 'eye-off'\n | 'ellipsis';\n\nexport type DiagramLabelLine =\n | string\n | {\n text: string;\n textColor?: DiagramTextColor;\n fontWeight?: number;\n };\n\nexport type DiagramSide = 'top' | 'bottom' | 'left' | 'right';\nexport type DiagramLabelAlign = 'start' | 'center' | 'end';\nexport type DiagramEdgeLineStyle = 'solid' | 'dashed' | 'dotted';\nexport type DiagramEdgeDirection = 'forward' | 'both' | 'none';\nexport type DiagramEdgeLayer = 'background' | 'foreground';\nexport type DiagramEdgeWeight = 'regular' | 'bold';\nexport type DiagramStackDirection =\n 'up-left' | 'up-right' | 'down-left' | 'down-right';\n\nexport type DiagramNodePort = {\n id: string;\n side: DiagramSide;\n label?: string;\n accent?: boolean;\n};\n\nexport type Point = { x: number; y: number };\nexport type Box = { x: number; y: number; w: number; h: number };\n\nexport type DiagramViewportFit = 'width' | 'contain' | 'natural';\n\nexport type DiagramViewport = {\n fit?: DiagramViewportFit;\n zoom?: number;\n};\n\nexport type DiagramPaperFill = 'background' | 'surface';\n\nexport type DiagramPaper =\n | boolean\n | {\n fill?: DiagramPaperFill;\n stroke?: boolean;\n rx?: number;\n };\n\n/** React content drawn inside a node, in a box of the size its author gives. */\nexport type DiagramNodeContent = {\n element: ReactNode;\n size: { w: number; h: number };\n};\n\nexport type DiagramNode = {\n id: string;\n label: string | DiagramLabelLine[];\n /** Only HtmlGraphDiagram draws it. */\n content?: DiagramNodeContent;\n kind?: 'node' | 'appliance' | 'connector' | 'junction' | 'marker' | 'note';\n row?: number | undefined;\n col?: number | undefined;\n colSpan?: number | undefined;\n rowSpan?: number | undefined;\n /** The id of the node or group a note explains. */\n target?: string | undefined;\n frame?: 'solid' | 'transparent' | 'flat' | 'filled' | 'none';\n textColor?: DiagramTextColor | undefined;\n tone?: DiagramTone | undefined;\n texture?: DiagramTexture | undefined;\n accent?: boolean | undefined;\n description?: string | string[];\n items?: string[];\n caption?: string | string[] | undefined;\n captionSide?: DiagramSide | undefined;\n captionFrame?: boolean;\n captionColor?: DiagramTextColor | undefined;\n /** The group the node is nested in. */\n group?: string;\n icon?: DiagramNodeIcon | undefined;\n ports?: DiagramNodePort[] | undefined;\n /** Set for a Card: its text starts at the left edge under a title. */\n textAlign?: 'center' | 'start' | undefined;\n hidden?: boolean | undefined;\n /** False for a Float, which no edge may start or end at. */\n connectable?: boolean | undefined;\n stack?: number;\n stackDirection?: DiagramStackDirection;\n appliancePorts?: number | undefined;\n antenna?: boolean | undefined;\n};\n\nexport type DiagramEdge = {\n from: string;\n to: string;\n label?: string[];\n badgeIcon?: DiagramNodeIcon;\n badgeLabel?: string[];\n labelFrame?: boolean;\n channel?: string;\n lineStyle?: DiagramEdgeLineStyle;\n direction?: DiagramEdgeDirection;\n layer?: DiagramEdgeLayer;\n weight?: DiagramEdgeWeight;\n exitSide?: DiagramSide;\n entrySide?: DiagramSide;\n accent?: boolean;\n dim?: boolean;\n headless?: boolean | undefined;\n};\n\nexport type DiagramGroup = {\n id: string;\n label: string | string[];\n labelAlign?: DiagramLabelAlign | undefined;\n labelSide?: 'top' | 'bottom' | undefined;\n accent?: boolean | undefined;\n tone?: DiagramTone | undefined;\n texture?: DiagramTexture | undefined;\n frame?: 'solid' | 'dashed' | 'none' | undefined;\n fill?: 'surface' | 'none' | undefined;\n ports?: DiagramNodePort[] | undefined;\n parent?: string | undefined;\n /** An explicit grid area; without one the group covers the bounding box of its members. */\n row?: number | undefined;\n col?: number | undefined;\n rowSpan?: number | undefined;\n colSpan?: number | undefined;\n titleBand?: boolean | undefined;\n /** A line through every gutter inside the group. */\n dividers?: boolean | undefined;\n};\n\nexport type DiagramLane = {\n id: string;\n label: string[];\n accent?: boolean | undefined;\n};\n\nexport type DiagramSignalBox = 'source' | 'center' | 'target';\n\nexport type DiagramSignal = {\n from: string;\n to: string;\n label: string[];\n accent?: boolean;\n dim?: boolean;\n boxed?: DiagramSignalBox;\n stub?: number;\n bordered?: boolean;\n filled?: boolean;\n};\n\nexport type DiagramFrameElement = {\n label: string;\n signals: DiagramSignal[];\n};\n\nexport type DiagramMarker = DiagramNode;\n\nexport type DiagramGraphIR = {\n nodes: DiagramNode[];\n edges: DiagramEdge[];\n groups: DiagramGroup[];\n};\n\nexport type DiagramTimelineSpec = {\n lanes: DiagramLane[];\n signals: DiagramSignal[];\n frame?: DiagramFrameElement | undefined;\n};\n"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { DiagramGraphIR } from './diagram-ir.ts';
|
|
2
|
+
/**
|
|
3
|
+
* Rejects ids that clash and edges whose ends name no node, group or port,
|
|
4
|
+
* or a node that takes no edges.
|
|
5
|
+
*/
|
|
6
|
+
export declare function validateGraph(ir: DiagramGraphIR): void;
|
|
7
|
+
//# sourceMappingURL=validate-graph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-graph.d.ts","sourceRoot":"","sources":["../../../src/lib/model/validate-graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGtD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,cAAc,QAgE/C"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { parseEndpointRef } from "./endpoint-ref.js";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Rejects ids that clash and edges whose ends name no node, group or port,
|
|
5
|
+
* or a node that takes no edges.
|
|
6
|
+
*/
|
|
7
|
+
export function validateGraph(ir) {
|
|
8
|
+
const nodeIds = new Set();
|
|
9
|
+
for (const node of ir.nodes) {
|
|
10
|
+
if (nodeIds.has(node.id)) throw new Error(`Duplicate Diagram node id "${node.id}".`);
|
|
11
|
+
nodeIds.add(node.id);
|
|
12
|
+
}
|
|
13
|
+
const groupIds = new Set();
|
|
14
|
+
for (const group of ir.groups) {
|
|
15
|
+
if (groupIds.has(group.id)) throw new Error(`Duplicate Diagram group id "${group.id}".`);
|
|
16
|
+
groupIds.add(group.id);
|
|
17
|
+
}
|
|
18
|
+
const nodesById = new Map(ir.nodes.map(node => [node.id, node]));
|
|
19
|
+
const groupsById = new Map(ir.groups.map(group => [group.id, group]));
|
|
20
|
+
for (const node of ir.nodes) {
|
|
21
|
+
if (groupsById.has(node.id)) {
|
|
22
|
+
throw new Error(`Diagram node id "${node.id}" conflicts with a Diagram group id. Node and group endpoint ids must be unique.`);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
const hasPort = (ownerId, portId) => [nodesById.get(ownerId), groupsById.get(ownerId)].some(owner => owner?.ports?.some(port => port.id === portId));
|
|
26
|
+
for (const edge of ir.edges) {
|
|
27
|
+
const {
|
|
28
|
+
nodeId: sourceNodeId,
|
|
29
|
+
portId: sourcePortId
|
|
30
|
+
} = parseEndpointRef(edge.from);
|
|
31
|
+
const {
|
|
32
|
+
nodeId: targetNodeId,
|
|
33
|
+
portId: targetPortId
|
|
34
|
+
} = parseEndpointRef(edge.to);
|
|
35
|
+
if (!nodeIds.has(sourceNodeId) && !groupsById.has(sourceNodeId)) {
|
|
36
|
+
throw new Error(`Diagram edge ${edge.from}->${edge.to} references missing source "${sourceNodeId}".`);
|
|
37
|
+
}
|
|
38
|
+
if (!nodeIds.has(targetNodeId) && !groupsById.has(targetNodeId)) {
|
|
39
|
+
throw new Error(`Diagram edge ${edge.from}->${edge.to} references missing target "${targetNodeId}".`);
|
|
40
|
+
}
|
|
41
|
+
if (sourcePortId && !hasPort(sourceNodeId, sourcePortId)) {
|
|
42
|
+
throw new Error(`Diagram edge ${edge.from}->${edge.to} references missing source port "${sourcePortId}" on "${sourceNodeId}".`);
|
|
43
|
+
}
|
|
44
|
+
if (targetPortId && !hasPort(targetNodeId, targetPortId)) {
|
|
45
|
+
throw new Error(`Diagram edge ${edge.from}->${edge.to} references missing target port "${targetPortId}" on "${targetNodeId}".`);
|
|
46
|
+
}
|
|
47
|
+
for (const [relation, id] of [['start from', sourceNodeId], ['end at', targetNodeId]]) {
|
|
48
|
+
if (nodesById.get(id)?.connectable === false) {
|
|
49
|
+
throw new Error(`Diagram edge ${edge.from}->${edge.to} cannot ${relation} non-connectable node "${id}". Diagram.Float is display-only; connect a Box, Card, Label or Port.`);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=validate-graph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-graph.js","names":["parseEndpointRef","validateGraph","ir","nodeIds","Set","node","nodes","has","id","Error","add","groupIds","group","groups","nodesById","Map","map","groupsById","hasPort","ownerId","portId","get","some","owner","ports","port","edge","edges","nodeId","sourceNodeId","sourcePortId","from","targetNodeId","targetPortId","to","relation","connectable"],"sources":["../../../src/lib/model/validate-graph.ts"],"sourcesContent":["import type { DiagramGraphIR } from './diagram-ir.ts';\nimport { parseEndpointRef } from './endpoint-ref.ts';\n\n/**\n * Rejects ids that clash and edges whose ends name no node, group or port,\n * or a node that takes no edges.\n */\nexport function validateGraph(ir: DiagramGraphIR) {\n const nodeIds = new Set<string>();\n for (const node of ir.nodes) {\n if (nodeIds.has(node.id))\n throw new Error(`Duplicate Diagram node id \"${node.id}\".`);\n nodeIds.add(node.id);\n }\n const groupIds = new Set<string>();\n for (const group of ir.groups) {\n if (groupIds.has(group.id))\n throw new Error(`Duplicate Diagram group id \"${group.id}\".`);\n groupIds.add(group.id);\n }\n const nodesById = new Map(ir.nodes.map((node) => [node.id, node]));\n const groupsById = new Map(ir.groups.map((group) => [group.id, group]));\n for (const node of ir.nodes) {\n if (groupsById.has(node.id)) {\n throw new Error(\n `Diagram node id \"${node.id}\" conflicts with a Diagram group id. Node and group endpoint ids must be unique.`,\n );\n }\n }\n const hasPort = (ownerId: string, portId: string) =>\n [nodesById.get(ownerId), groupsById.get(ownerId)].some((owner) =>\n owner?.ports?.some((port) => port.id === portId),\n );\n for (const edge of ir.edges) {\n const { nodeId: sourceNodeId, portId: sourcePortId } = parseEndpointRef(\n edge.from,\n );\n const { nodeId: targetNodeId, portId: targetPortId } = parseEndpointRef(\n edge.to,\n );\n if (!nodeIds.has(sourceNodeId) && !groupsById.has(sourceNodeId)) {\n throw new Error(\n `Diagram edge ${edge.from}->${edge.to} references missing source \"${sourceNodeId}\".`,\n );\n }\n if (!nodeIds.has(targetNodeId) && !groupsById.has(targetNodeId)) {\n throw new Error(\n `Diagram edge ${edge.from}->${edge.to} references missing target \"${targetNodeId}\".`,\n );\n }\n if (sourcePortId && !hasPort(sourceNodeId, sourcePortId)) {\n throw new Error(\n `Diagram edge ${edge.from}->${edge.to} references missing source port \"${sourcePortId}\" on \"${sourceNodeId}\".`,\n );\n }\n if (targetPortId && !hasPort(targetNodeId, targetPortId)) {\n throw new Error(\n `Diagram edge ${edge.from}->${edge.to} references missing target port \"${targetPortId}\" on \"${targetNodeId}\".`,\n );\n }\n for (const [relation, id] of [\n ['start from', sourceNodeId],\n ['end at', targetNodeId],\n ] as const) {\n if (nodesById.get(id)?.connectable === false) {\n throw new Error(\n `Diagram edge ${edge.from}->${edge.to} cannot ${relation} non-connectable node \"${id}\". Diagram.Float is display-only; connect a Box, Card, Label or Port.`,\n );\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,34 +1,28 @@
|
|
|
1
|
-
import type { DiagramApplianceProps, DiagramConnectorProps, DiagramContentProps, DiagramEdgeProps,
|
|
1
|
+
import type { DiagramApplianceProps, DiagramConnectorProps, DiagramContentProps, DiagramEdgeProps, DiagramFrameProps, DiagramGroupProps, DiagramJunctionProps, DiagramLaneProps, DiagramLineProps, DiagramMarkerProps, DiagramNodeProps, DiagramNoteProps, DiagramSignalProps } from './diagram-types.ts';
|
|
2
2
|
export type { DiagramAccent, DiagramMode, DiagramStylePreset, } from './chrome/index.ts';
|
|
3
3
|
export type { DiagramEffects } from '../renderers/types.ts';
|
|
4
4
|
export type { DiagramPaper, DiagramStackDirection, DiagramViewport, } from '../model/diagram-ir.ts';
|
|
5
|
-
export type { DiagramApplianceProps, DiagramConnectorProps, DiagramContentProps, DiagramEdgeProps,
|
|
5
|
+
export type { DiagramApplianceProps, DiagramConnectorProps, DiagramContentProps, DiagramEdgeProps, DiagramFrameProps, DiagramGroupProps, DiagramJunctionProps, DiagramLaneProps, DiagramLineProps, DiagramMarkerProps, DiagramNodeProps, DiagramNoteProps, DiagramProps, DiagramSignalProps, } from './diagram-types.ts';
|
|
6
6
|
export declare const Diagram: {
|
|
7
7
|
Node: import("../compiler/diagram-compile.ts").PrimitiveComponent<DiagramNodeProps>;
|
|
8
8
|
Edge: import("../compiler/diagram-compile.ts").PrimitiveComponent<DiagramEdgeProps>;
|
|
9
9
|
Group: import("../compiler/diagram-compile.ts").PrimitiveComponent<DiagramGroupProps>;
|
|
10
10
|
Frame: import("../compiler/diagram-compile.ts").PrimitiveComponent<DiagramFrameProps>;
|
|
11
|
-
Text: import("../compiler/diagram-compile.ts").PrimitiveComponent<DiagramTextProps>;
|
|
12
11
|
Line: import("../compiler/diagram-compile.ts").PrimitiveComponent<DiagramLineProps>;
|
|
13
12
|
Lane: import("../compiler/diagram-compile.ts").PrimitiveComponent<DiagramLaneProps>;
|
|
14
13
|
Signal: import("../compiler/diagram-compile.ts").PrimitiveComponent<DiagramSignalProps>;
|
|
15
14
|
Marker: import("../compiler/diagram-compile.ts").PrimitiveComponent<DiagramMarkerProps>;
|
|
16
|
-
Guide: import("../compiler/diagram-compile.ts").PrimitiveComponent<import("../model/diagram-ir.ts").DiagramGuide>;
|
|
17
|
-
Waypoint: import("../compiler/diagram-compile.ts").PrimitiveComponent<import("../model/diagram-ir.ts").DiagramWaypoint>;
|
|
18
|
-
Entry: import("../compiler/diagram-compile.ts").PrimitiveComponent<DiagramEntryProps>;
|
|
19
|
-
Exit: import("../compiler/diagram-compile.ts").PrimitiveComponent<DiagramExitProps>;
|
|
20
15
|
Box: import("../compiler/diagram-compile.ts").PrimitiveComponent<DiagramNodeProps>;
|
|
21
16
|
Card: import("../compiler/diagram-compile.ts").PrimitiveComponent<DiagramNodeProps>;
|
|
22
17
|
Port: import("../compiler/diagram-compile.ts").PrimitiveComponent<DiagramNodeProps>;
|
|
23
18
|
Label: import("../compiler/diagram-compile.ts").PrimitiveComponent<DiagramNodeProps>;
|
|
24
19
|
Float: import("../compiler/diagram-compile.ts").PrimitiveComponent<DiagramNodeProps>;
|
|
25
|
-
Phantom: import("../compiler/diagram-compile.ts").PrimitiveComponent<DiagramPhantomProps>;
|
|
26
20
|
Appliance: import("../compiler/diagram-compile.ts").PrimitiveComponent<DiagramApplianceProps>;
|
|
27
21
|
Connector: import("../compiler/diagram-compile.ts").PrimitiveComponent<DiagramConnectorProps>;
|
|
28
22
|
Junction: import("../compiler/diagram-compile.ts").PrimitiveComponent<DiagramJunctionProps>;
|
|
29
23
|
Wire: import("../compiler/diagram-compile.ts").PrimitiveComponent<DiagramEdgeProps>;
|
|
30
24
|
Arrow: import("../compiler/diagram-compile.ts").PrimitiveComponent<DiagramEdgeProps>;
|
|
31
|
-
Note: import("../compiler/diagram-compile.ts").PrimitiveComponent<
|
|
25
|
+
Note: import("../compiler/diagram-compile.ts").PrimitiveComponent<DiagramNoteProps>;
|
|
32
26
|
Content: import("../compiler/diagram-compile.ts").PrimitiveComponent<DiagramContentProps>;
|
|
33
27
|
};
|
|
34
28
|
//# sourceMappingURL=Diagram.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Diagram.d.ts","sourceRoot":"","sources":["../../../src/lib/react/Diagram.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,
|
|
1
|
+
{"version":3,"file":"Diagram.d.ts","sourceRoot":"","sources":["../../../src/lib/react/Diagram.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EACV,aAAa,EACb,WAAW,EACX,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,YAAY,EACV,YAAY,EACZ,qBAAqB,EACrB,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAuB5B,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;CAqBnB,CAAC"}
|
|
@@ -5,7 +5,6 @@ const Card = primitive('card');
|
|
|
5
5
|
const Port = primitive('port');
|
|
6
6
|
const Label = primitive('label');
|
|
7
7
|
const Float = primitive('float');
|
|
8
|
-
const Phantom = primitive('phantom');
|
|
9
8
|
const Appliance = primitive('appliance');
|
|
10
9
|
const Connector = primitive('connector');
|
|
11
10
|
const Junction = primitive('junction');
|
|
@@ -13,38 +12,27 @@ const Edge = primitive('edge');
|
|
|
13
12
|
const Arrow = primitive('arrow');
|
|
14
13
|
const Wire = primitive('wire');
|
|
15
14
|
const Group = primitive('group');
|
|
16
|
-
const
|
|
15
|
+
const Note = primitive('note');
|
|
17
16
|
const Line = primitive('line');
|
|
18
17
|
const Lane = primitive('lane');
|
|
19
18
|
const Signal = primitive('signal');
|
|
20
19
|
const Frame = primitive('frame');
|
|
21
20
|
const Marker = primitive('marker');
|
|
22
|
-
const Guide = primitive('guide');
|
|
23
|
-
const Waypoint = primitive('waypoint');
|
|
24
|
-
const Entry = primitive('entry');
|
|
25
|
-
const Exit = primitive('exit');
|
|
26
21
|
const Content = primitive('content');
|
|
27
|
-
const Note = Text;
|
|
28
22
|
export const Diagram = {
|
|
29
23
|
Node,
|
|
30
24
|
Edge,
|
|
31
25
|
Group,
|
|
32
26
|
Frame,
|
|
33
|
-
Text,
|
|
34
27
|
Line,
|
|
35
28
|
Lane,
|
|
36
29
|
Signal,
|
|
37
30
|
Marker,
|
|
38
|
-
Guide,
|
|
39
|
-
Waypoint,
|
|
40
|
-
Entry,
|
|
41
|
-
Exit,
|
|
42
31
|
Box,
|
|
43
32
|
Card,
|
|
44
33
|
Port,
|
|
45
34
|
Label,
|
|
46
35
|
Float,
|
|
47
|
-
Phantom,
|
|
48
36
|
Appliance,
|
|
49
37
|
Connector,
|
|
50
38
|
Junction,
|