@retikz/core 0.1.0-alpha.3 → 0.1.0-alpha.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/es/compile/compile.d.ts +9 -10
- package/dist/es/compile/compile.d.ts.map +1 -1
- package/dist/es/compile/compile.js +31 -8
- package/dist/es/compile/node.d.ts +56 -54
- package/dist/es/compile/node.d.ts.map +1 -1
- package/dist/es/compile/node.js +137 -39
- package/dist/es/compile/parseTarget.d.ts +3 -8
- package/dist/es/compile/parseTarget.d.ts.map +1 -1
- package/dist/es/compile/parseTarget.js +7 -19
- package/dist/es/compile/path.d.ts +2 -19
- package/dist/es/compile/path.d.ts.map +1 -1
- package/dist/es/compile/path.js +232 -213
- package/dist/es/compile/position.d.ts +4 -5
- package/dist/es/compile/position.d.ts.map +1 -1
- package/dist/es/compile/position.js +32 -5
- package/dist/es/compile/text-metrics.d.ts +2 -4
- package/dist/es/compile/text-metrics.d.ts.map +1 -1
- package/dist/es/compile/view-box.d.ts +1 -4
- package/dist/es/compile/view-box.d.ts.map +1 -1
- package/dist/es/compile/view-box.js +1 -4
- package/dist/es/geometry/arc.d.ts +3 -28
- package/dist/es/geometry/arc.d.ts.map +1 -1
- package/dist/es/geometry/arc.js +4 -31
- package/dist/es/geometry/bend.d.ts +2 -13
- package/dist/es/geometry/bend.d.ts.map +1 -1
- package/dist/es/geometry/bend.js +2 -13
- package/dist/es/geometry/circle.d.ts +5 -13
- package/dist/es/geometry/circle.d.ts.map +1 -1
- package/dist/es/geometry/circle.js +1 -4
- package/dist/es/geometry/diamond.d.ts +9 -24
- package/dist/es/geometry/diamond.d.ts.map +1 -1
- package/dist/es/geometry/diamond.js +4 -14
- package/dist/es/geometry/ellipse.d.ts +9 -15
- package/dist/es/geometry/ellipse.d.ts.map +1 -1
- package/dist/es/geometry/ellipse.js +4 -8
- package/dist/es/geometry/point.d.ts +8 -9
- package/dist/es/geometry/point.d.ts.map +1 -1
- package/dist/es/geometry/point.js +8 -9
- package/dist/es/geometry/polar.d.ts +12 -21
- package/dist/es/geometry/polar.d.ts.map +1 -1
- package/dist/es/geometry/polar.js +7 -14
- package/dist/es/geometry/rect.d.ts +8 -32
- package/dist/es/geometry/rect.d.ts.map +1 -1
- package/dist/es/geometry/rect.js +7 -33
- package/dist/es/geometry/segment.d.ts +11 -18
- package/dist/es/geometry/segment.d.ts.map +1 -1
- package/dist/es/geometry/segment.js +9 -16
- package/dist/es/index.d.ts +6 -10
- package/dist/es/index.d.ts.map +1 -1
- package/dist/es/index.js +7 -4
- package/dist/es/ir/coordinate.d.ts +65 -0
- package/dist/es/ir/coordinate.d.ts.map +1 -0
- package/dist/es/ir/coordinate.js +22 -0
- package/dist/es/ir/index.d.ts +1 -0
- package/dist/es/ir/index.d.ts.map +1 -1
- package/dist/es/ir/node.d.ts +290 -50
- package/dist/es/ir/node.d.ts.map +1 -1
- package/dist/es/ir/node.js +32 -38
- package/dist/es/ir/path/arrow.d.ts +210 -12
- package/dist/es/ir/path/arrow.d.ts.map +1 -1
- package/dist/es/ir/path/arrow.js +39 -12
- package/dist/es/ir/path/path.d.ts +477 -153
- package/dist/es/ir/path/path.d.ts.map +1 -1
- package/dist/es/ir/path/path.js +2 -2
- package/dist/es/ir/path/step.d.ts +395 -223
- package/dist/es/ir/path/step.d.ts.map +1 -1
- package/dist/es/ir/path/step.js +13 -14
- package/dist/es/ir/path/target.d.ts +25 -16
- package/dist/es/ir/path/target.d.ts.map +1 -1
- package/dist/es/ir/path/target.js +8 -6
- package/dist/es/ir/position/at-position.d.ts +43 -0
- package/dist/es/ir/position/at-position.d.ts.map +1 -0
- package/dist/es/ir/position/at-position.js +23 -0
- package/dist/es/ir/position/index.d.ts +2 -0
- package/dist/es/ir/position/index.d.ts.map +1 -1
- package/dist/es/ir/position/offset-position.d.ts +14 -0
- package/dist/es/ir/position/offset-position.d.ts.map +1 -0
- package/dist/es/ir/position/offset-position.js +14 -0
- package/dist/es/ir/position/polar-position.d.ts +1 -4
- package/dist/es/ir/position/polar-position.d.ts.map +1 -1
- package/dist/es/ir/position/polar-position.js +1 -4
- package/dist/es/ir/scene.d.ts +1736 -386
- package/dist/es/ir/scene.d.ts.map +1 -1
- package/dist/es/ir/scene.js +6 -1
- package/dist/es/parsers/parseTargetSugar.d.ts.map +1 -1
- package/dist/es/parsers/parseTargetSugar.js +6 -19
- package/dist/es/parsers/parseWay.d.ts +26 -118
- package/dist/es/parsers/parseWay.d.ts.map +1 -1
- package/dist/es/parsers/parseWay.js +19 -61
- package/dist/es/primitive/ellipse.d.ts +4 -14
- package/dist/es/primitive/ellipse.d.ts.map +1 -1
- package/dist/es/primitive/group.d.ts +21 -3
- package/dist/es/primitive/group.d.ts.map +1 -1
- package/dist/es/primitive/path.d.ts +67 -7
- package/dist/es/primitive/path.d.ts.map +1 -1
- package/dist/es/primitive/scene.d.ts +2 -4
- package/dist/es/primitive/scene.d.ts.map +1 -1
- package/dist/es/primitive/text.d.ts +9 -32
- package/dist/es/primitive/text.d.ts.map +1 -1
- package/dist/lib/compile/compile.cjs +31 -8
- package/dist/lib/compile/compile.d.ts +9 -10
- package/dist/lib/compile/compile.d.ts.map +1 -1
- package/dist/lib/compile/node.cjs +137 -39
- package/dist/lib/compile/node.d.ts +56 -54
- package/dist/lib/compile/node.d.ts.map +1 -1
- package/dist/lib/compile/parseTarget.cjs +7 -19
- package/dist/lib/compile/parseTarget.d.ts +3 -8
- package/dist/lib/compile/parseTarget.d.ts.map +1 -1
- package/dist/lib/compile/path.cjs +231 -212
- package/dist/lib/compile/path.d.ts +2 -19
- package/dist/lib/compile/path.d.ts.map +1 -1
- package/dist/lib/compile/position.cjs +32 -5
- package/dist/lib/compile/position.d.ts +4 -5
- package/dist/lib/compile/position.d.ts.map +1 -1
- package/dist/lib/compile/text-metrics.d.ts +2 -4
- package/dist/lib/compile/text-metrics.d.ts.map +1 -1
- package/dist/lib/compile/view-box.cjs +1 -4
- package/dist/lib/compile/view-box.d.ts +1 -4
- package/dist/lib/compile/view-box.d.ts.map +1 -1
- package/dist/lib/geometry/arc.cjs +3 -31
- package/dist/lib/geometry/arc.d.ts +3 -28
- package/dist/lib/geometry/arc.d.ts.map +1 -1
- package/dist/lib/geometry/bend.cjs +2 -13
- package/dist/lib/geometry/bend.d.ts +2 -13
- package/dist/lib/geometry/bend.d.ts.map +1 -1
- package/dist/lib/geometry/circle.cjs +1 -4
- package/dist/lib/geometry/circle.d.ts +5 -13
- package/dist/lib/geometry/circle.d.ts.map +1 -1
- package/dist/lib/geometry/diamond.cjs +4 -14
- package/dist/lib/geometry/diamond.d.ts +9 -24
- package/dist/lib/geometry/diamond.d.ts.map +1 -1
- package/dist/lib/geometry/ellipse.cjs +4 -8
- package/dist/lib/geometry/ellipse.d.ts +9 -15
- package/dist/lib/geometry/ellipse.d.ts.map +1 -1
- package/dist/lib/geometry/point.cjs +8 -9
- package/dist/lib/geometry/point.d.ts +8 -9
- package/dist/lib/geometry/point.d.ts.map +1 -1
- package/dist/lib/geometry/polar.cjs +7 -14
- package/dist/lib/geometry/polar.d.ts +12 -21
- package/dist/lib/geometry/polar.d.ts.map +1 -1
- package/dist/lib/geometry/rect.cjs +7 -33
- package/dist/lib/geometry/rect.d.ts +8 -32
- package/dist/lib/geometry/rect.d.ts.map +1 -1
- package/dist/lib/geometry/segment.cjs +9 -16
- package/dist/lib/geometry/segment.d.ts +11 -18
- package/dist/lib/geometry/segment.d.ts.map +1 -1
- package/dist/lib/index.cjs +15 -2
- package/dist/lib/index.d.ts +6 -10
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/ir/coordinate.cjs +22 -0
- package/dist/lib/ir/coordinate.d.ts +65 -0
- package/dist/lib/ir/coordinate.d.ts.map +1 -0
- package/dist/lib/ir/index.d.ts +1 -0
- package/dist/lib/ir/index.d.ts.map +1 -1
- package/dist/lib/ir/node.cjs +32 -37
- package/dist/lib/ir/node.d.ts +290 -50
- package/dist/lib/ir/node.d.ts.map +1 -1
- package/dist/lib/ir/path/arrow.cjs +43 -11
- package/dist/lib/ir/path/arrow.d.ts +210 -12
- package/dist/lib/ir/path/arrow.d.ts.map +1 -1
- package/dist/lib/ir/path/path.cjs +1 -1
- package/dist/lib/ir/path/path.d.ts +477 -153
- package/dist/lib/ir/path/path.d.ts.map +1 -1
- package/dist/lib/ir/path/step.cjs +13 -14
- package/dist/lib/ir/path/step.d.ts +395 -223
- package/dist/lib/ir/path/step.d.ts.map +1 -1
- package/dist/lib/ir/path/target.cjs +9 -7
- package/dist/lib/ir/path/target.d.ts +25 -16
- package/dist/lib/ir/path/target.d.ts.map +1 -1
- package/dist/lib/ir/position/at-position.cjs +24 -0
- package/dist/lib/ir/position/at-position.d.ts +43 -0
- package/dist/lib/ir/position/at-position.d.ts.map +1 -0
- package/dist/lib/ir/position/index.d.ts +2 -0
- package/dist/lib/ir/position/index.d.ts.map +1 -1
- package/dist/lib/ir/position/offset-position.cjs +14 -0
- package/dist/lib/ir/position/offset-position.d.ts +14 -0
- package/dist/lib/ir/position/offset-position.d.ts.map +1 -0
- package/dist/lib/ir/position/polar-position.cjs +1 -4
- package/dist/lib/ir/position/polar-position.d.ts +1 -4
- package/dist/lib/ir/position/polar-position.d.ts.map +1 -1
- package/dist/lib/ir/scene.cjs +6 -1
- package/dist/lib/ir/scene.d.ts +1736 -386
- package/dist/lib/ir/scene.d.ts.map +1 -1
- package/dist/lib/parsers/parseTargetSugar.cjs +6 -19
- package/dist/lib/parsers/parseTargetSugar.d.ts.map +1 -1
- package/dist/lib/parsers/parseWay.cjs +19 -61
- package/dist/lib/parsers/parseWay.d.ts +26 -118
- package/dist/lib/parsers/parseWay.d.ts.map +1 -1
- package/dist/lib/primitive/ellipse.d.ts +4 -14
- package/dist/lib/primitive/ellipse.d.ts.map +1 -1
- package/dist/lib/primitive/group.d.ts +21 -3
- package/dist/lib/primitive/group.d.ts.map +1 -1
- package/dist/lib/primitive/path.d.ts +67 -7
- package/dist/lib/primitive/path.d.ts.map +1 -1
- package/dist/lib/primitive/scene.d.ts +2 -4
- package/dist/lib/primitive/scene.d.ts.map +1 -1
- package/dist/lib/primitive/text.d.ts +9 -32
- package/dist/lib/primitive/text.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/lib/ir/node.cjs
CHANGED
|
@@ -1,21 +1,12 @@
|
|
|
1
1
|
const require_position = require("./position/position.cjs");
|
|
2
2
|
const require_polar_position = require("./position/polar-position.cjs");
|
|
3
|
+
const require_at_position = require("./position/at-position.cjs");
|
|
4
|
+
const require_offset_position = require("./position/offset-position.cjs");
|
|
3
5
|
let zod = require("zod");
|
|
4
6
|
//#region src/ir/node.ts
|
|
5
7
|
/**
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* - `rectangle`:矩形(默认;UML 类、流程图常规节点)
|
|
10
|
-
* - `circle`:圆形(流程图起止、状态机)
|
|
11
|
-
* - `ellipse`:椭圆(状态机、集合图)
|
|
12
|
-
* - `diamond`:菱形(流程图判定)
|
|
13
|
-
*
|
|
14
|
-
* 每个 shape 的几何语义:node 的视觉边界包住"text 矩形 + padding"——
|
|
15
|
-
* - rectangle: 视觉 rect = text rect
|
|
16
|
-
* - circle: 外接圆,r = √(innerHalfW² + innerHalfH²)
|
|
17
|
-
* - ellipse: 外接椭圆,rx = innerHalfW×√2、ry = innerHalfH×√2
|
|
18
|
-
* - diamond: 外接菱形,halfA = 2×innerHalfW、halfB = 2×innerHalfH
|
|
8
|
+
* 节点形状常量(用 const + ValueOf 派生,不用 TS enum)
|
|
9
|
+
* @description rectangle 默认;circle/ellipse/diamond 几何语义:node 视觉边界包"text 矩形 + padding";rectangle: 视觉=text;circle: r=√(innerHalfW²+innerHalfH²);ellipse: rx=innerHalfW×√2,ry=innerHalfH×√2;diamond: halfA=2×innerHalfW,halfB=2×innerHalfH
|
|
19
10
|
*/
|
|
20
11
|
var NODE_SHAPES = {
|
|
21
12
|
rectangle: "rectangle",
|
|
@@ -23,12 +14,7 @@ var NODE_SHAPES = {
|
|
|
23
14
|
ellipse: "ellipse",
|
|
24
15
|
diamond: "diamond"
|
|
25
16
|
};
|
|
26
|
-
/**
|
|
27
|
-
* 节点字体规格——family / size / weight / style 全部可选;
|
|
28
|
-
* 单字段透传到 SVG `<text>` 的 `font-*` 属性 / `font-size`。
|
|
29
|
-
*
|
|
30
|
-
* 取代 alpha.1 的标量 `fontSize` 字段(已删)。
|
|
31
|
-
*/
|
|
17
|
+
/** 节点字体规格:family/size/weight/style 全部可选,透传 SVG `<text>` font-* 属性 */
|
|
32
18
|
var FontSchema = zod.z.object({
|
|
33
19
|
family: zod.z.string().optional().describe("CSS font-family string, e.g. \"serif\", \"monospace\", \"Inter, sans-serif\""),
|
|
34
20
|
size: zod.z.number().positive().optional().describe("Font size in user units; falls back to the renderer default when omitted"),
|
|
@@ -38,16 +24,10 @@ var FontSchema = zod.z.object({
|
|
|
38
24
|
"italic",
|
|
39
25
|
"oblique"
|
|
40
26
|
]).optional().describe("CSS font-style")
|
|
41
|
-
}).describe("Font properties for the node text label; all fields optional, nested object form
|
|
27
|
+
}).describe("Font properties for the node text label; all fields optional, nested object form.");
|
|
42
28
|
/**
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
* 行级覆盖只生效于本行的 `<tspan>`:
|
|
46
|
-
* - `fill`:仅这一行颜色
|
|
47
|
-
* - `opacity`:仅这一行 0~1 透明度
|
|
48
|
-
* - `font`:family / size / weight / style 任意子集;未填字段继承块级 font
|
|
49
|
-
*
|
|
50
|
-
* 块级 `align` / `lineHeight` 不可被行覆盖(多行块整体属性)。
|
|
29
|
+
* 单行文本规格:纯字符串走块级默认,对象形式可覆盖 fill/opacity/font
|
|
30
|
+
* @description 行级覆盖只生效于本行 `<tspan>`;font 子字段未填则继承块级;align/lineHeight 不可被行覆盖
|
|
51
31
|
*/
|
|
52
32
|
var LineSpecSchema = zod.z.union([zod.z.string(), zod.z.object({
|
|
53
33
|
text: zod.z.string().describe("Line content"),
|
|
@@ -56,25 +36,38 @@ var LineSpecSchema = zod.z.union([zod.z.string(), zod.z.object({
|
|
|
56
36
|
font: FontSchema.optional().describe("Per-line font overrides; missing fields inherit from block-level `font`")
|
|
57
37
|
})]).describe("Single line of text: bare string for default styling, or an object with per-line `fill` / `opacity` / `font` overrides.");
|
|
58
38
|
/**
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
* - `['Line 1', 'Line 2']` 两行无样式覆盖
|
|
62
|
-
* - `[{ text: 'Heading', fill: 'red', font: { weight: 'bold' } }, 'body']` 混排
|
|
63
|
-
*
|
|
64
|
-
* 选 `Array<LineSpec>` 而非 `'\n'` 字符串:JSON 友好(无 escape);行级覆盖天然落字段。
|
|
39
|
+
* 节点文本:单字符串或非空多行 LineSpec 数组
|
|
40
|
+
* @description 选数组而非 `\n` 字符串:JSON 友好无 escape,行级覆盖天然落字段
|
|
65
41
|
*/
|
|
66
42
|
var NodeTextSchema = zod.z.union([zod.z.string(), zod.z.array(LineSpecSchema).min(1)]).describe("Text label rendered inside the node: a single string for one line, or a non-empty array of line specs (string for default, object for per-line overrides).");
|
|
67
|
-
/**
|
|
43
|
+
/** 节点文本对齐(TikZ `align=` 同义) */
|
|
68
44
|
var NODE_TEXT_ALIGNS = {
|
|
69
45
|
left: "left",
|
|
70
46
|
center: "center",
|
|
71
47
|
right: "right"
|
|
72
48
|
};
|
|
49
|
+
/**
|
|
50
|
+
* 节点附属标签 label(TikZ `[label=above:foo]` 同义)
|
|
51
|
+
* @description 可挂多个;label 不参与 viewBox。position 支持 8 方向枚举或数字角度(polar 约定:0°=+x,90°=+y 屏幕下方);默认 position='above',distance=4
|
|
52
|
+
*/
|
|
53
|
+
var NodeLabelSchema = zod.z.object({
|
|
54
|
+
text: zod.z.string().describe("Label text content; rendered as a single line."),
|
|
55
|
+
position: zod.z.union([zod.z.nativeEnum(require_at_position.AT_DIRECTIONS), zod.z.number()]).optional().describe("Placement around the node border: 8-direction enum (above / right / above-left / ...) or numeric angle in degrees (`label=30:foo` for radial placement). Default `above`. Numeric uses the polar convention (0° = +x, 90° = +y, screen-down)."),
|
|
56
|
+
distance: zod.z.number().nonnegative().optional().describe("Gap between the node border and the label center, in user units. Default 4."),
|
|
57
|
+
textColor: zod.z.string().optional().describe("Label text color; falls back to currentColor."),
|
|
58
|
+
opacity: zod.z.number().min(0).max(1).optional().describe("Label-only opacity 0..1; multiplied with the node opacity if both are set."),
|
|
59
|
+
font: FontSchema.optional().describe("Label font overrides; missing fields inherit from the parent node font, then renderer defaults.")
|
|
60
|
+
}).describe("Extra text attached around a node border. Multiple labels supported via array form on `Node.label`.");
|
|
73
61
|
var NodeSchema = zod.z.object({
|
|
74
62
|
type: zod.z.literal("node").describe("Discriminator marking this child as a node"),
|
|
75
63
|
id: zod.z.string().min(1).optional().describe("Optional unique id; required if any path needs to reference this node by string"),
|
|
76
64
|
shape: zod.z.nativeEnum(NODE_SHAPES).optional().describe("Node visual shape; defaults to `rectangle`. The boundary fully contains text + padding (circumscribed for circle / ellipse / diamond)."),
|
|
77
|
-
position: zod.z.union([
|
|
65
|
+
position: zod.z.union([
|
|
66
|
+
require_position.PositionSchema,
|
|
67
|
+
require_polar_position.PolarPositionSchema,
|
|
68
|
+
require_at_position.AtPositionSchema,
|
|
69
|
+
require_offset_position.OffsetPositionSchema
|
|
70
|
+
]).describe("Center point of the node content box; Cartesian [x, y], polar, relative-to-another-node (`at`-style with `direction` / `of` / `distance?`), or offset from a base point (`{ of, offset }` form mirroring TikZ `calc`). All non-Cartesian forms resolve at compile time."),
|
|
78
71
|
rotate: zod.z.number().optional().describe("Rotation in degrees around the node center; positive = clockwise (matches TikZ rotate=...)"),
|
|
79
72
|
text: NodeTextSchema.optional(),
|
|
80
73
|
align: zod.z.nativeEnum(NODE_TEXT_ALIGNS).optional().describe("Multi-line text alignment within the text block; `left` / `center` / `right`. Defaults to `center` (matches TikZ)."),
|
|
@@ -101,12 +94,14 @@ var NodeSchema = zod.z.object({
|
|
|
101
94
|
outerSep: zod.z.number().nonnegative().optional().describe("Outer margin from border to path attachment point in user units; does NOT change the visible border. Falls back to `margin`."),
|
|
102
95
|
padding: zod.z.number().nonnegative().optional().describe("Symmetric inner padding (alias for `innerXSep` + `innerYSep`); axis-specific fields take precedence."),
|
|
103
96
|
margin: zod.z.number().nonnegative().optional().describe("Symmetric outer margin (alias for `outerSep`); axis-specific field takes precedence."),
|
|
104
|
-
font: FontSchema.optional().describe("Font spec for the inner text label (family / size / weight / style); all fields optional, all fall back to renderer defaults.")
|
|
97
|
+
font: FontSchema.optional().describe("Font spec for the inner text label (family / size / weight / style); all fields optional, all fall back to renderer defaults."),
|
|
98
|
+
label: zod.z.union([NodeLabelSchema, zod.z.array(NodeLabelSchema)]).optional().describe("Extra label(s) attached around the node border (TikZ `[label=above:foo]`); single object or array form. Compiled into one TextPrim per label, positioned by `position` direction / angle and `distance`.")
|
|
105
99
|
}).describe("Node primitive: a positioned, optionally textual shape (rectangle / circle / ellipse / diamond)");
|
|
106
100
|
//#endregion
|
|
107
101
|
exports.FontSchema = FontSchema;
|
|
108
102
|
exports.LineSpecSchema = LineSpecSchema;
|
|
109
103
|
exports.NODE_SHAPES = NODE_SHAPES;
|
|
110
104
|
exports.NODE_TEXT_ALIGNS = NODE_TEXT_ALIGNS;
|
|
105
|
+
exports.NodeLabelSchema = NodeLabelSchema;
|
|
111
106
|
exports.NodeSchema = NodeSchema;
|
|
112
107
|
exports.NodeTextSchema = NodeTextSchema;
|
package/dist/lib/ir/node.d.ts
CHANGED
|
@@ -1,19 +1,8 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { ValueOf } from '../types';
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* - `rectangle`:矩形(默认;UML 类、流程图常规节点)
|
|
8
|
-
* - `circle`:圆形(流程图起止、状态机)
|
|
9
|
-
* - `ellipse`:椭圆(状态机、集合图)
|
|
10
|
-
* - `diamond`:菱形(流程图判定)
|
|
11
|
-
*
|
|
12
|
-
* 每个 shape 的几何语义:node 的视觉边界包住"text 矩形 + padding"——
|
|
13
|
-
* - rectangle: 视觉 rect = text rect
|
|
14
|
-
* - circle: 外接圆,r = √(innerHalfW² + innerHalfH²)
|
|
15
|
-
* - ellipse: 外接椭圆,rx = innerHalfW×√2、ry = innerHalfH×√2
|
|
16
|
-
* - diamond: 外接菱形,halfA = 2×innerHalfW、halfB = 2×innerHalfH
|
|
4
|
+
* 节点形状常量(用 const + ValueOf 派生,不用 TS enum)
|
|
5
|
+
* @description rectangle 默认;circle/ellipse/diamond 几何语义:node 视觉边界包"text 矩形 + padding";rectangle: 视觉=text;circle: r=√(innerHalfW²+innerHalfH²);ellipse: rx=innerHalfW×√2,ry=innerHalfH×√2;diamond: halfA=2×innerHalfW,halfB=2×innerHalfH
|
|
17
6
|
*/
|
|
18
7
|
export declare const NODE_SHAPES: {
|
|
19
8
|
readonly rectangle: "rectangle";
|
|
@@ -21,14 +10,9 @@ export declare const NODE_SHAPES: {
|
|
|
21
10
|
readonly ellipse: "ellipse";
|
|
22
11
|
readonly diamond: "diamond";
|
|
23
12
|
};
|
|
24
|
-
/**
|
|
13
|
+
/** 节点形状字面量类型 */
|
|
25
14
|
export type NodeShape = ValueOf<typeof NODE_SHAPES>;
|
|
26
|
-
/**
|
|
27
|
-
* 节点字体规格——family / size / weight / style 全部可选;
|
|
28
|
-
* 单字段透传到 SVG `<text>` 的 `font-*` 属性 / `font-size`。
|
|
29
|
-
*
|
|
30
|
-
* 取代 alpha.1 的标量 `fontSize` 字段(已删)。
|
|
31
|
-
*/
|
|
15
|
+
/** 节点字体规格:family/size/weight/style 全部可选,透传 SVG `<text>` font-* 属性 */
|
|
32
16
|
export declare const FontSchema: z.ZodObject<{
|
|
33
17
|
family: z.ZodOptional<z.ZodString>;
|
|
34
18
|
size: z.ZodOptional<z.ZodNumber>;
|
|
@@ -45,17 +29,11 @@ export declare const FontSchema: z.ZodObject<{
|
|
|
45
29
|
weight?: number | "normal" | "bold" | undefined;
|
|
46
30
|
style?: "normal" | "italic" | "oblique" | undefined;
|
|
47
31
|
}>;
|
|
48
|
-
/**
|
|
32
|
+
/** 节点字体规格 IR 类型(所有字段可选,编译期解析默认值) */
|
|
49
33
|
export type IRFont = z.infer<typeof FontSchema>;
|
|
50
34
|
/**
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
* 行级覆盖只生效于本行的 `<tspan>`:
|
|
54
|
-
* - `fill`:仅这一行颜色
|
|
55
|
-
* - `opacity`:仅这一行 0~1 透明度
|
|
56
|
-
* - `font`:family / size / weight / style 任意子集;未填字段继承块级 font
|
|
57
|
-
*
|
|
58
|
-
* 块级 `align` / `lineHeight` 不可被行覆盖(多行块整体属性)。
|
|
35
|
+
* 单行文本规格:纯字符串走块级默认,对象形式可覆盖 fill/opacity/font
|
|
36
|
+
* @description 行级覆盖只生效于本行 `<tspan>`;font 子字段未填则继承块级;align/lineHeight 不可被行覆盖
|
|
59
37
|
*/
|
|
60
38
|
export declare const LineSpecSchema: z.ZodUnion<[z.ZodString, z.ZodObject<{
|
|
61
39
|
text: z.ZodString;
|
|
@@ -98,15 +76,11 @@ export declare const LineSpecSchema: z.ZodUnion<[z.ZodString, z.ZodObject<{
|
|
|
98
76
|
style?: "normal" | "italic" | "oblique" | undefined;
|
|
99
77
|
} | undefined;
|
|
100
78
|
}>]>;
|
|
101
|
-
/** 行规格 IR
|
|
79
|
+
/** 行规格 IR 类型 */
|
|
102
80
|
export type IRLineSpec = z.infer<typeof LineSpecSchema>;
|
|
103
81
|
/**
|
|
104
|
-
*
|
|
105
|
-
*
|
|
106
|
-
* - `['Line 1', 'Line 2']` 两行无样式覆盖
|
|
107
|
-
* - `[{ text: 'Heading', fill: 'red', font: { weight: 'bold' } }, 'body']` 混排
|
|
108
|
-
*
|
|
109
|
-
* 选 `Array<LineSpec>` 而非 `'\n'` 字符串:JSON 友好(无 escape);行级覆盖天然落字段。
|
|
82
|
+
* 节点文本:单字符串或非空多行 LineSpec 数组
|
|
83
|
+
* @description 选数组而非 `\n` 字符串:JSON 友好无 escape,行级覆盖天然落字段
|
|
110
84
|
*/
|
|
111
85
|
export declare const NodeTextSchema: z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodObject<{
|
|
112
86
|
text: z.ZodString;
|
|
@@ -149,14 +123,75 @@ export declare const NodeTextSchema: z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodUn
|
|
|
149
123
|
style?: "normal" | "italic" | "oblique" | undefined;
|
|
150
124
|
} | undefined;
|
|
151
125
|
}>]>, "many">]>;
|
|
152
|
-
/**
|
|
126
|
+
/** 节点文本对齐(TikZ `align=` 同义) */
|
|
153
127
|
export declare const NODE_TEXT_ALIGNS: {
|
|
154
128
|
readonly left: "left";
|
|
155
129
|
readonly center: "center";
|
|
156
130
|
readonly right: "right";
|
|
157
131
|
};
|
|
158
|
-
/** 多行文本对齐字面量类型 */
|
|
159
132
|
export type NodeTextAlign = ValueOf<typeof NODE_TEXT_ALIGNS>;
|
|
133
|
+
/**
|
|
134
|
+
* 节点附属标签 label(TikZ `[label=above:foo]` 同义)
|
|
135
|
+
* @description 可挂多个;label 不参与 viewBox。position 支持 8 方向枚举或数字角度(polar 约定:0°=+x,90°=+y 屏幕下方);默认 position='above',distance=4
|
|
136
|
+
*/
|
|
137
|
+
export declare const NodeLabelSchema: z.ZodObject<{
|
|
138
|
+
text: z.ZodString;
|
|
139
|
+
position: z.ZodOptional<z.ZodUnion<[z.ZodNativeEnum<{
|
|
140
|
+
readonly above: "above";
|
|
141
|
+
readonly below: "below";
|
|
142
|
+
readonly left: "left";
|
|
143
|
+
readonly right: "right";
|
|
144
|
+
readonly 'above-left': "above-left";
|
|
145
|
+
readonly 'above-right': "above-right";
|
|
146
|
+
readonly 'below-left': "below-left";
|
|
147
|
+
readonly 'below-right': "below-right";
|
|
148
|
+
}>, z.ZodNumber]>>;
|
|
149
|
+
distance: z.ZodOptional<z.ZodNumber>;
|
|
150
|
+
textColor: z.ZodOptional<z.ZodString>;
|
|
151
|
+
opacity: z.ZodOptional<z.ZodNumber>;
|
|
152
|
+
font: z.ZodOptional<z.ZodObject<{
|
|
153
|
+
family: z.ZodOptional<z.ZodString>;
|
|
154
|
+
size: z.ZodOptional<z.ZodNumber>;
|
|
155
|
+
weight: z.ZodOptional<z.ZodUnion<[z.ZodEnum<["normal", "bold"]>, z.ZodNumber]>>;
|
|
156
|
+
style: z.ZodOptional<z.ZodEnum<["normal", "italic", "oblique"]>>;
|
|
157
|
+
}, "strip", z.ZodTypeAny, {
|
|
158
|
+
family?: string | undefined;
|
|
159
|
+
size?: number | undefined;
|
|
160
|
+
weight?: number | "normal" | "bold" | undefined;
|
|
161
|
+
style?: "normal" | "italic" | "oblique" | undefined;
|
|
162
|
+
}, {
|
|
163
|
+
family?: string | undefined;
|
|
164
|
+
size?: number | undefined;
|
|
165
|
+
weight?: number | "normal" | "bold" | undefined;
|
|
166
|
+
style?: "normal" | "italic" | "oblique" | undefined;
|
|
167
|
+
}>>;
|
|
168
|
+
}, "strip", z.ZodTypeAny, {
|
|
169
|
+
text: string;
|
|
170
|
+
distance?: number | undefined;
|
|
171
|
+
opacity?: number | undefined;
|
|
172
|
+
position?: number | "above" | "below" | "left" | "right" | "above-left" | "above-right" | "below-left" | "below-right" | undefined;
|
|
173
|
+
font?: {
|
|
174
|
+
family?: string | undefined;
|
|
175
|
+
size?: number | undefined;
|
|
176
|
+
weight?: number | "normal" | "bold" | undefined;
|
|
177
|
+
style?: "normal" | "italic" | "oblique" | undefined;
|
|
178
|
+
} | undefined;
|
|
179
|
+
textColor?: string | undefined;
|
|
180
|
+
}, {
|
|
181
|
+
text: string;
|
|
182
|
+
distance?: number | undefined;
|
|
183
|
+
opacity?: number | undefined;
|
|
184
|
+
position?: number | "above" | "below" | "left" | "right" | "above-left" | "above-right" | "below-left" | "below-right" | undefined;
|
|
185
|
+
font?: {
|
|
186
|
+
family?: string | undefined;
|
|
187
|
+
size?: number | undefined;
|
|
188
|
+
weight?: number | "normal" | "bold" | undefined;
|
|
189
|
+
style?: "normal" | "italic" | "oblique" | undefined;
|
|
190
|
+
} | undefined;
|
|
191
|
+
textColor?: string | undefined;
|
|
192
|
+
}>;
|
|
193
|
+
/** Node label IR 类型 */
|
|
194
|
+
export type IRNodeLabel = z.infer<typeof NodeLabelSchema>;
|
|
160
195
|
export declare const NodeSchema: z.ZodObject<{
|
|
161
196
|
type: z.ZodLiteral<"node">;
|
|
162
197
|
id: z.ZodOptional<z.ZodString>;
|
|
@@ -166,7 +201,37 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
166
201
|
readonly ellipse: "ellipse";
|
|
167
202
|
readonly diamond: "diamond";
|
|
168
203
|
}>>;
|
|
169
|
-
position: z.ZodUnion<[z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodType<import('./position').PolarPosition, z.ZodTypeDef, import('./position').PolarPosition
|
|
204
|
+
position: z.ZodUnion<[z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodType<import('./position').PolarPosition, z.ZodTypeDef, import('./position').PolarPosition>, z.ZodObject<{
|
|
205
|
+
direction: z.ZodNativeEnum<{
|
|
206
|
+
readonly above: "above";
|
|
207
|
+
readonly below: "below";
|
|
208
|
+
readonly left: "left";
|
|
209
|
+
readonly right: "right";
|
|
210
|
+
readonly 'above-left': "above-left";
|
|
211
|
+
readonly 'above-right': "above-right";
|
|
212
|
+
readonly 'below-left': "below-left";
|
|
213
|
+
readonly 'below-right': "below-right";
|
|
214
|
+
}>;
|
|
215
|
+
of: z.ZodString;
|
|
216
|
+
distance: z.ZodOptional<z.ZodNumber>;
|
|
217
|
+
}, "strip", z.ZodTypeAny, {
|
|
218
|
+
direction: "above" | "below" | "left" | "right" | "above-left" | "above-right" | "below-left" | "below-right";
|
|
219
|
+
of: string;
|
|
220
|
+
distance?: number | undefined;
|
|
221
|
+
}, {
|
|
222
|
+
direction: "above" | "below" | "left" | "right" | "above-left" | "above-right" | "below-left" | "below-right";
|
|
223
|
+
of: string;
|
|
224
|
+
distance?: number | undefined;
|
|
225
|
+
}>, z.ZodObject<{
|
|
226
|
+
of: z.ZodUnion<[z.ZodString, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodType<import('./position').PolarPosition, z.ZodTypeDef, import('./position').PolarPosition>]>;
|
|
227
|
+
offset: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
|
|
228
|
+
}, "strip", z.ZodTypeAny, {
|
|
229
|
+
of: string | [number, number] | import('./position').PolarPosition;
|
|
230
|
+
offset: [number, number];
|
|
231
|
+
}, {
|
|
232
|
+
of: string | [number, number] | import('./position').PolarPosition;
|
|
233
|
+
offset: [number, number];
|
|
234
|
+
}>]>;
|
|
170
235
|
rotate: z.ZodOptional<z.ZodNumber>;
|
|
171
236
|
text: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodObject<{
|
|
172
237
|
text: z.ZodString;
|
|
@@ -253,10 +318,131 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
253
318
|
weight?: number | "normal" | "bold" | undefined;
|
|
254
319
|
style?: "normal" | "italic" | "oblique" | undefined;
|
|
255
320
|
}>>;
|
|
321
|
+
label: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
|
|
322
|
+
text: z.ZodString;
|
|
323
|
+
position: z.ZodOptional<z.ZodUnion<[z.ZodNativeEnum<{
|
|
324
|
+
readonly above: "above";
|
|
325
|
+
readonly below: "below";
|
|
326
|
+
readonly left: "left";
|
|
327
|
+
readonly right: "right";
|
|
328
|
+
readonly 'above-left': "above-left";
|
|
329
|
+
readonly 'above-right': "above-right";
|
|
330
|
+
readonly 'below-left': "below-left";
|
|
331
|
+
readonly 'below-right': "below-right";
|
|
332
|
+
}>, z.ZodNumber]>>;
|
|
333
|
+
distance: z.ZodOptional<z.ZodNumber>;
|
|
334
|
+
textColor: z.ZodOptional<z.ZodString>;
|
|
335
|
+
opacity: z.ZodOptional<z.ZodNumber>;
|
|
336
|
+
font: z.ZodOptional<z.ZodObject<{
|
|
337
|
+
family: z.ZodOptional<z.ZodString>;
|
|
338
|
+
size: z.ZodOptional<z.ZodNumber>;
|
|
339
|
+
weight: z.ZodOptional<z.ZodUnion<[z.ZodEnum<["normal", "bold"]>, z.ZodNumber]>>;
|
|
340
|
+
style: z.ZodOptional<z.ZodEnum<["normal", "italic", "oblique"]>>;
|
|
341
|
+
}, "strip", z.ZodTypeAny, {
|
|
342
|
+
family?: string | undefined;
|
|
343
|
+
size?: number | undefined;
|
|
344
|
+
weight?: number | "normal" | "bold" | undefined;
|
|
345
|
+
style?: "normal" | "italic" | "oblique" | undefined;
|
|
346
|
+
}, {
|
|
347
|
+
family?: string | undefined;
|
|
348
|
+
size?: number | undefined;
|
|
349
|
+
weight?: number | "normal" | "bold" | undefined;
|
|
350
|
+
style?: "normal" | "italic" | "oblique" | undefined;
|
|
351
|
+
}>>;
|
|
352
|
+
}, "strip", z.ZodTypeAny, {
|
|
353
|
+
text: string;
|
|
354
|
+
distance?: number | undefined;
|
|
355
|
+
opacity?: number | undefined;
|
|
356
|
+
position?: number | "above" | "below" | "left" | "right" | "above-left" | "above-right" | "below-left" | "below-right" | undefined;
|
|
357
|
+
font?: {
|
|
358
|
+
family?: string | undefined;
|
|
359
|
+
size?: number | undefined;
|
|
360
|
+
weight?: number | "normal" | "bold" | undefined;
|
|
361
|
+
style?: "normal" | "italic" | "oblique" | undefined;
|
|
362
|
+
} | undefined;
|
|
363
|
+
textColor?: string | undefined;
|
|
364
|
+
}, {
|
|
365
|
+
text: string;
|
|
366
|
+
distance?: number | undefined;
|
|
367
|
+
opacity?: number | undefined;
|
|
368
|
+
position?: number | "above" | "below" | "left" | "right" | "above-left" | "above-right" | "below-left" | "below-right" | undefined;
|
|
369
|
+
font?: {
|
|
370
|
+
family?: string | undefined;
|
|
371
|
+
size?: number | undefined;
|
|
372
|
+
weight?: number | "normal" | "bold" | undefined;
|
|
373
|
+
style?: "normal" | "italic" | "oblique" | undefined;
|
|
374
|
+
} | undefined;
|
|
375
|
+
textColor?: string | undefined;
|
|
376
|
+
}>, z.ZodArray<z.ZodObject<{
|
|
377
|
+
text: z.ZodString;
|
|
378
|
+
position: z.ZodOptional<z.ZodUnion<[z.ZodNativeEnum<{
|
|
379
|
+
readonly above: "above";
|
|
380
|
+
readonly below: "below";
|
|
381
|
+
readonly left: "left";
|
|
382
|
+
readonly right: "right";
|
|
383
|
+
readonly 'above-left': "above-left";
|
|
384
|
+
readonly 'above-right': "above-right";
|
|
385
|
+
readonly 'below-left': "below-left";
|
|
386
|
+
readonly 'below-right': "below-right";
|
|
387
|
+
}>, z.ZodNumber]>>;
|
|
388
|
+
distance: z.ZodOptional<z.ZodNumber>;
|
|
389
|
+
textColor: z.ZodOptional<z.ZodString>;
|
|
390
|
+
opacity: z.ZodOptional<z.ZodNumber>;
|
|
391
|
+
font: z.ZodOptional<z.ZodObject<{
|
|
392
|
+
family: z.ZodOptional<z.ZodString>;
|
|
393
|
+
size: z.ZodOptional<z.ZodNumber>;
|
|
394
|
+
weight: z.ZodOptional<z.ZodUnion<[z.ZodEnum<["normal", "bold"]>, z.ZodNumber]>>;
|
|
395
|
+
style: z.ZodOptional<z.ZodEnum<["normal", "italic", "oblique"]>>;
|
|
396
|
+
}, "strip", z.ZodTypeAny, {
|
|
397
|
+
family?: string | undefined;
|
|
398
|
+
size?: number | undefined;
|
|
399
|
+
weight?: number | "normal" | "bold" | undefined;
|
|
400
|
+
style?: "normal" | "italic" | "oblique" | undefined;
|
|
401
|
+
}, {
|
|
402
|
+
family?: string | undefined;
|
|
403
|
+
size?: number | undefined;
|
|
404
|
+
weight?: number | "normal" | "bold" | undefined;
|
|
405
|
+
style?: "normal" | "italic" | "oblique" | undefined;
|
|
406
|
+
}>>;
|
|
407
|
+
}, "strip", z.ZodTypeAny, {
|
|
408
|
+
text: string;
|
|
409
|
+
distance?: number | undefined;
|
|
410
|
+
opacity?: number | undefined;
|
|
411
|
+
position?: number | "above" | "below" | "left" | "right" | "above-left" | "above-right" | "below-left" | "below-right" | undefined;
|
|
412
|
+
font?: {
|
|
413
|
+
family?: string | undefined;
|
|
414
|
+
size?: number | undefined;
|
|
415
|
+
weight?: number | "normal" | "bold" | undefined;
|
|
416
|
+
style?: "normal" | "italic" | "oblique" | undefined;
|
|
417
|
+
} | undefined;
|
|
418
|
+
textColor?: string | undefined;
|
|
419
|
+
}, {
|
|
420
|
+
text: string;
|
|
421
|
+
distance?: number | undefined;
|
|
422
|
+
opacity?: number | undefined;
|
|
423
|
+
position?: number | "above" | "below" | "left" | "right" | "above-left" | "above-right" | "below-left" | "below-right" | undefined;
|
|
424
|
+
font?: {
|
|
425
|
+
family?: string | undefined;
|
|
426
|
+
size?: number | undefined;
|
|
427
|
+
weight?: number | "normal" | "bold" | undefined;
|
|
428
|
+
style?: "normal" | "italic" | "oblique" | undefined;
|
|
429
|
+
} | undefined;
|
|
430
|
+
textColor?: string | undefined;
|
|
431
|
+
}>, "many">]>>;
|
|
256
432
|
}, "strip", z.ZodTypeAny, {
|
|
257
433
|
type: "node";
|
|
258
|
-
position: [number, number] | import('./position').PolarPosition
|
|
434
|
+
position: [number, number] | import('./position').PolarPosition | {
|
|
435
|
+
direction: "above" | "below" | "left" | "right" | "above-left" | "above-right" | "below-left" | "below-right";
|
|
436
|
+
of: string;
|
|
437
|
+
distance?: number | undefined;
|
|
438
|
+
} | {
|
|
439
|
+
of: string | [number, number] | import('./position').PolarPosition;
|
|
440
|
+
offset: [number, number];
|
|
441
|
+
};
|
|
259
442
|
fill?: string | undefined;
|
|
443
|
+
shape?: "diamond" | "circle" | "rectangle" | "ellipse" | undefined;
|
|
444
|
+
scale?: number | undefined;
|
|
445
|
+
opacity?: number | undefined;
|
|
260
446
|
text?: string | (string | {
|
|
261
447
|
text: string;
|
|
262
448
|
fill?: string | undefined;
|
|
@@ -268,10 +454,33 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
268
454
|
style?: "normal" | "italic" | "oblique" | undefined;
|
|
269
455
|
} | undefined;
|
|
270
456
|
})[] | undefined;
|
|
271
|
-
|
|
457
|
+
label?: {
|
|
458
|
+
text: string;
|
|
459
|
+
distance?: number | undefined;
|
|
460
|
+
opacity?: number | undefined;
|
|
461
|
+
position?: number | "above" | "below" | "left" | "right" | "above-left" | "above-right" | "below-left" | "below-right" | undefined;
|
|
462
|
+
font?: {
|
|
463
|
+
family?: string | undefined;
|
|
464
|
+
size?: number | undefined;
|
|
465
|
+
weight?: number | "normal" | "bold" | undefined;
|
|
466
|
+
style?: "normal" | "italic" | "oblique" | undefined;
|
|
467
|
+
} | undefined;
|
|
468
|
+
textColor?: string | undefined;
|
|
469
|
+
} | {
|
|
470
|
+
text: string;
|
|
471
|
+
distance?: number | undefined;
|
|
472
|
+
opacity?: number | undefined;
|
|
473
|
+
position?: number | "above" | "below" | "left" | "right" | "above-left" | "above-right" | "below-left" | "below-right" | undefined;
|
|
474
|
+
font?: {
|
|
475
|
+
family?: string | undefined;
|
|
476
|
+
size?: number | undefined;
|
|
477
|
+
weight?: number | "normal" | "bold" | undefined;
|
|
478
|
+
style?: "normal" | "italic" | "oblique" | undefined;
|
|
479
|
+
} | undefined;
|
|
480
|
+
textColor?: string | undefined;
|
|
481
|
+
}[] | undefined;
|
|
272
482
|
stroke?: string | undefined;
|
|
273
483
|
strokeWidth?: number | undefined;
|
|
274
|
-
opacity?: number | undefined;
|
|
275
484
|
fillOpacity?: number | undefined;
|
|
276
485
|
drawOpacity?: number | undefined;
|
|
277
486
|
font?: {
|
|
@@ -280,6 +489,7 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
280
489
|
weight?: number | "normal" | "bold" | undefined;
|
|
281
490
|
style?: "normal" | "italic" | "oblique" | undefined;
|
|
282
491
|
} | undefined;
|
|
492
|
+
textColor?: string | undefined;
|
|
283
493
|
id?: string | undefined;
|
|
284
494
|
rotate?: number | undefined;
|
|
285
495
|
align?: "left" | "right" | "center" | undefined;
|
|
@@ -291,10 +501,8 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
291
501
|
minimumWidth?: number | undefined;
|
|
292
502
|
minimumHeight?: number | undefined;
|
|
293
503
|
minimumSize?: number | undefined;
|
|
294
|
-
scale?: number | undefined;
|
|
295
504
|
xScale?: number | undefined;
|
|
296
505
|
yScale?: number | undefined;
|
|
297
|
-
textColor?: string | undefined;
|
|
298
506
|
innerXSep?: number | undefined;
|
|
299
507
|
innerYSep?: number | undefined;
|
|
300
508
|
outerSep?: number | undefined;
|
|
@@ -302,8 +510,18 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
302
510
|
margin?: number | undefined;
|
|
303
511
|
}, {
|
|
304
512
|
type: "node";
|
|
305
|
-
position: [number, number] | import('./position').PolarPosition
|
|
513
|
+
position: [number, number] | import('./position').PolarPosition | {
|
|
514
|
+
direction: "above" | "below" | "left" | "right" | "above-left" | "above-right" | "below-left" | "below-right";
|
|
515
|
+
of: string;
|
|
516
|
+
distance?: number | undefined;
|
|
517
|
+
} | {
|
|
518
|
+
of: string | [number, number] | import('./position').PolarPosition;
|
|
519
|
+
offset: [number, number];
|
|
520
|
+
};
|
|
306
521
|
fill?: string | undefined;
|
|
522
|
+
shape?: "diamond" | "circle" | "rectangle" | "ellipse" | undefined;
|
|
523
|
+
scale?: number | undefined;
|
|
524
|
+
opacity?: number | undefined;
|
|
307
525
|
text?: string | (string | {
|
|
308
526
|
text: string;
|
|
309
527
|
fill?: string | undefined;
|
|
@@ -315,10 +533,33 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
315
533
|
style?: "normal" | "italic" | "oblique" | undefined;
|
|
316
534
|
} | undefined;
|
|
317
535
|
})[] | undefined;
|
|
318
|
-
|
|
536
|
+
label?: {
|
|
537
|
+
text: string;
|
|
538
|
+
distance?: number | undefined;
|
|
539
|
+
opacity?: number | undefined;
|
|
540
|
+
position?: number | "above" | "below" | "left" | "right" | "above-left" | "above-right" | "below-left" | "below-right" | undefined;
|
|
541
|
+
font?: {
|
|
542
|
+
family?: string | undefined;
|
|
543
|
+
size?: number | undefined;
|
|
544
|
+
weight?: number | "normal" | "bold" | undefined;
|
|
545
|
+
style?: "normal" | "italic" | "oblique" | undefined;
|
|
546
|
+
} | undefined;
|
|
547
|
+
textColor?: string | undefined;
|
|
548
|
+
} | {
|
|
549
|
+
text: string;
|
|
550
|
+
distance?: number | undefined;
|
|
551
|
+
opacity?: number | undefined;
|
|
552
|
+
position?: number | "above" | "below" | "left" | "right" | "above-left" | "above-right" | "below-left" | "below-right" | undefined;
|
|
553
|
+
font?: {
|
|
554
|
+
family?: string | undefined;
|
|
555
|
+
size?: number | undefined;
|
|
556
|
+
weight?: number | "normal" | "bold" | undefined;
|
|
557
|
+
style?: "normal" | "italic" | "oblique" | undefined;
|
|
558
|
+
} | undefined;
|
|
559
|
+
textColor?: string | undefined;
|
|
560
|
+
}[] | undefined;
|
|
319
561
|
stroke?: string | undefined;
|
|
320
562
|
strokeWidth?: number | undefined;
|
|
321
|
-
opacity?: number | undefined;
|
|
322
563
|
fillOpacity?: number | undefined;
|
|
323
564
|
drawOpacity?: number | undefined;
|
|
324
565
|
font?: {
|
|
@@ -327,6 +568,7 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
327
568
|
weight?: number | "normal" | "bold" | undefined;
|
|
328
569
|
style?: "normal" | "italic" | "oblique" | undefined;
|
|
329
570
|
} | undefined;
|
|
571
|
+
textColor?: string | undefined;
|
|
330
572
|
id?: string | undefined;
|
|
331
573
|
rotate?: number | undefined;
|
|
332
574
|
align?: "left" | "right" | "center" | undefined;
|
|
@@ -338,16 +580,14 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
338
580
|
minimumWidth?: number | undefined;
|
|
339
581
|
minimumHeight?: number | undefined;
|
|
340
582
|
minimumSize?: number | undefined;
|
|
341
|
-
scale?: number | undefined;
|
|
342
583
|
xScale?: number | undefined;
|
|
343
584
|
yScale?: number | undefined;
|
|
344
|
-
textColor?: string | undefined;
|
|
345
585
|
innerXSep?: number | undefined;
|
|
346
586
|
innerYSep?: number | undefined;
|
|
347
587
|
outerSep?: number | undefined;
|
|
348
588
|
padding?: number | undefined;
|
|
349
589
|
margin?: number | undefined;
|
|
350
590
|
}>;
|
|
351
|
-
/**
|
|
591
|
+
/** 节点:可定位的形状容器(矩形/圆/椭圆/菱形)+ 可选文本标签 */
|
|
352
592
|
export type IRNode = z.infer<typeof NodeSchema>;
|
|
353
593
|
//# sourceMappingURL=node.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../src/ir/node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGxC
|
|
1
|
+
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../src/ir/node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGxC;;;GAGG;AACH,eAAO,MAAM,WAAW;;;;;CAKd,CAAC;AAEX,gBAAgB;AAChB,MAAM,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC;AAEpD,qEAAqE;AACrE,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;EAwBpB,CAAC;AAEJ,oCAAoC;AACpC,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAEhD;;;GAGG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAsBxB,CAAC;AAEJ,gBAAgB;AAChB,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAExD;;;GAGG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAIxB,CAAC;AAEJ,+BAA+B;AAC/B,eAAO,MAAM,gBAAgB;;;;CAInB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE7D;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkCzB,CAAC;AAEJ,uBAAuB;AACvB,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE1D,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+KpB,CAAC;AAEJ,sCAAsC;AACtC,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC"}
|