@retikz/core 0.1.0-alpha.4 → 0.1.0-beta.1
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 +23 -13
- package/dist/es/compile/compile.d.ts.map +1 -1
- package/dist/es/compile/compile.js +44 -25
- package/dist/es/compile/index.d.ts +1 -1
- package/dist/es/compile/index.d.ts.map +1 -1
- package/dist/es/compile/node.d.ts +40 -59
- package/dist/es/compile/node.d.ts.map +1 -1
- package/dist/es/compile/node.js +51 -43
- 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/anchor.d.ts +19 -0
- package/dist/es/compile/path/anchor.d.ts.map +1 -0
- package/dist/es/compile/path/anchor.js +54 -0
- package/dist/es/compile/path/index.d.ts +24 -0
- package/dist/es/compile/path/index.d.ts.map +1 -0
- package/dist/es/compile/path/index.js +308 -0
- package/dist/es/compile/path/label.d.ts +18 -0
- package/dist/es/compile/path/label.d.ts.map +1 -0
- package/dist/es/compile/path/label.js +102 -0
- package/dist/es/compile/path/relative.d.ts +8 -0
- package/dist/es/compile/path/relative.d.ts.map +1 -0
- package/dist/es/compile/path/relative.js +48 -0
- package/dist/es/compile/path/shrink.d.ts +24 -0
- package/dist/es/compile/path/shrink.d.ts.map +1 -0
- package/dist/es/compile/path/shrink.js +136 -0
- package/dist/es/compile/path/split.d.ts +15 -0
- package/dist/es/compile/path/split.d.ts.map +1 -0
- package/dist/es/compile/path/split.js +46 -0
- package/dist/es/compile/position.d.ts +4 -8
- package/dist/es/compile/position.d.ts.map +1 -1
- package/dist/es/compile/position.js +10 -10
- package/dist/es/compile/text-metrics.d.ts +6 -5
- package/dist/es/compile/text-metrics.d.ts.map +1 -1
- package/dist/es/compile/text-metrics.js +11 -5
- 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/_transform.d.ts +21 -0
- package/dist/es/geometry/_transform.d.ts.map +1 -0
- package/dist/es/geometry/_transform.js +27 -0
- 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 +6 -15
- package/dist/es/geometry/circle.d.ts.map +1 -1
- package/dist/es/geometry/circle.js +2 -20
- package/dist/es/geometry/diamond.d.ts +10 -26
- package/dist/es/geometry/diamond.d.ts.map +1 -1
- package/dist/es/geometry/diamond.js +5 -30
- package/dist/es/geometry/ellipse.d.ts +10 -17
- package/dist/es/geometry/ellipse.d.ts.map +1 -1
- package/dist/es/geometry/ellipse.js +5 -24
- 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 +8 -19
- 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 +6 -49
- package/dist/es/geometry/segment.d.ts +15 -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 +13 -13
- package/dist/es/index.d.ts.map +1 -1
- package/dist/es/index.js +7 -4
- package/dist/es/ir/coordinate.d.ts +18 -10
- package/dist/es/ir/coordinate.d.ts.map +1 -1
- package/dist/es/ir/coordinate.js +6 -11
- package/dist/es/ir/font.d.ts +21 -0
- package/dist/es/ir/font.d.ts.map +1 -0
- package/dist/es/ir/font.js +15 -0
- package/dist/es/ir/index.d.ts +2 -0
- package/dist/es/ir/index.d.ts.map +1 -1
- package/dist/es/ir/node.d.ts +51 -181
- package/dist/es/ir/node.d.ts.map +1 -1
- package/dist/es/ir/node.js +15 -70
- 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 +6 -6
- 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 +21 -22
- 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 +4 -11
- package/dist/es/ir/position/at-position.d.ts.map +1 -1
- package/dist/es/ir/position/at-position.js +2 -9
- package/dist/es/ir/position/index.d.ts +1 -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 +3 -6
- package/dist/es/ir/position/position.d.ts.map +1 -1
- package/dist/es/ir/position/position.js +1 -1
- package/dist/es/ir/scene.d.ts +1236 -422
- package/dist/es/ir/scene.d.ts.map +1 -1
- package/dist/es/ir/text.d.ts +96 -0
- package/dist/es/ir/text.d.ts.map +1 -0
- package/dist/es/ir/text.js +20 -0
- package/dist/es/parsers/parseTargetSugar.d.ts +4 -0
- package/dist/es/parsers/parseTargetSugar.d.ts.map +1 -1
- package/dist/es/parsers/parseTargetSugar.js +7 -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 +37 -3
- package/dist/es/primitive/group.d.ts.map +1 -1
- package/dist/es/primitive/path.d.ts +107 -7
- package/dist/es/primitive/path.d.ts.map +1 -1
- package/dist/es/primitive/rect.d.ts +2 -2
- package/dist/es/primitive/rect.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 +16 -32
- package/dist/es/primitive/text.d.ts.map +1 -1
- package/dist/es/primitive/view-box.d.ts +1 -1
- package/dist/es/primitive/view-box.d.ts.map +1 -1
- package/dist/es/types.d.ts +8 -0
- package/dist/es/types.d.ts.map +1 -1
- package/dist/lib/compile/compile.cjs +44 -25
- package/dist/lib/compile/compile.d.ts +23 -13
- package/dist/lib/compile/compile.d.ts.map +1 -1
- package/dist/lib/compile/index.d.ts +1 -1
- package/dist/lib/compile/index.d.ts.map +1 -1
- package/dist/lib/compile/node.cjs +51 -43
- package/dist/lib/compile/node.d.ts +40 -59
- 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/anchor.cjs +58 -0
- package/dist/lib/compile/path/anchor.d.ts +19 -0
- package/dist/lib/compile/path/anchor.d.ts.map +1 -0
- package/dist/lib/compile/path/index.cjs +308 -0
- package/dist/lib/compile/path/index.d.ts +24 -0
- package/dist/lib/compile/path/index.d.ts.map +1 -0
- package/dist/lib/compile/path/label.cjs +103 -0
- package/dist/lib/compile/path/label.d.ts +18 -0
- package/dist/lib/compile/path/label.d.ts.map +1 -0
- package/dist/lib/compile/path/relative.cjs +48 -0
- package/dist/lib/compile/path/relative.d.ts +8 -0
- package/dist/lib/compile/path/relative.d.ts.map +1 -0
- package/dist/lib/compile/path/shrink.cjs +138 -0
- package/dist/lib/compile/path/shrink.d.ts +24 -0
- package/dist/lib/compile/path/shrink.d.ts.map +1 -0
- package/dist/lib/compile/path/split.cjs +46 -0
- package/dist/lib/compile/path/split.d.ts +15 -0
- package/dist/lib/compile/path/split.d.ts.map +1 -0
- package/dist/lib/compile/position.cjs +10 -10
- package/dist/lib/compile/position.d.ts +4 -8
- package/dist/lib/compile/position.d.ts.map +1 -1
- package/dist/lib/compile/text-metrics.cjs +11 -5
- package/dist/lib/compile/text-metrics.d.ts +6 -5
- 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/_transform.cjs +28 -0
- package/dist/lib/geometry/_transform.d.ts +21 -0
- package/dist/lib/geometry/_transform.d.ts.map +1 -0
- 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 +6 -24
- package/dist/lib/geometry/circle.d.ts +6 -15
- package/dist/lib/geometry/circle.d.ts.map +1 -1
- package/dist/lib/geometry/diamond.cjs +9 -34
- package/dist/lib/geometry/diamond.d.ts +10 -26
- package/dist/lib/geometry/diamond.d.ts.map +1 -1
- package/dist/lib/geometry/ellipse.cjs +9 -28
- package/dist/lib/geometry/ellipse.d.ts +10 -17
- 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 +8 -19
- 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 +10 -53
- 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 +15 -18
- package/dist/lib/geometry/segment.d.ts.map +1 -1
- package/dist/lib/index.cjs +14 -5
- package/dist/lib/index.d.ts +13 -13
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/ir/coordinate.cjs +6 -11
- package/dist/lib/ir/coordinate.d.ts +18 -10
- package/dist/lib/ir/coordinate.d.ts.map +1 -1
- package/dist/lib/ir/font.cjs +15 -0
- package/dist/lib/ir/font.d.ts +21 -0
- package/dist/lib/ir/font.d.ts.map +1 -0
- package/dist/lib/ir/index.d.ts +2 -0
- package/dist/lib/ir/index.d.ts.map +1 -1
- package/dist/lib/ir/node.cjs +16 -74
- package/dist/lib/ir/node.d.ts +51 -181
- 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 +5 -5
- 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 +21 -22
- 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 +2 -9
- package/dist/lib/ir/position/at-position.d.ts +4 -11
- package/dist/lib/ir/position/at-position.d.ts.map +1 -1
- package/dist/lib/ir/position/index.d.ts +1 -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 +3 -6
- 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/position/position.cjs +1 -1
- package/dist/lib/ir/position/position.d.ts.map +1 -1
- package/dist/lib/ir/scene.d.ts +1236 -422
- package/dist/lib/ir/scene.d.ts.map +1 -1
- package/dist/lib/ir/text.cjs +21 -0
- package/dist/lib/ir/text.d.ts +96 -0
- package/dist/lib/ir/text.d.ts.map +1 -0
- package/dist/lib/parsers/parseTargetSugar.cjs +7 -19
- package/dist/lib/parsers/parseTargetSugar.d.ts +4 -0
- 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 +37 -3
- package/dist/lib/primitive/group.d.ts.map +1 -1
- package/dist/lib/primitive/path.d.ts +107 -7
- package/dist/lib/primitive/path.d.ts.map +1 -1
- package/dist/lib/primitive/rect.d.ts +2 -2
- package/dist/lib/primitive/rect.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 +16 -32
- package/dist/lib/primitive/text.d.ts.map +1 -1
- package/dist/lib/primitive/view-box.d.ts +1 -1
- package/dist/lib/primitive/view-box.d.ts.map +1 -1
- package/dist/lib/types.d.ts +8 -0
- package/dist/lib/types.d.ts.map +1 -1
- package/package.json +13 -4
- package/dist/es/compile/path.d.ts +0 -30
- package/dist/es/compile/path.d.ts.map +0 -1
- package/dist/es/compile/path.js +0 -617
- package/dist/lib/compile/path.cjs +0 -617
- package/dist/lib/compile/path.d.ts +0 -30
- package/dist/lib/compile/path.d.ts.map +0 -1
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,152 +10,18 @@ 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
|
-
*/
|
|
32
|
-
export declare const FontSchema: z.ZodObject<{
|
|
33
|
-
family: z.ZodOptional<z.ZodString>;
|
|
34
|
-
size: z.ZodOptional<z.ZodNumber>;
|
|
35
|
-
weight: z.ZodOptional<z.ZodUnion<[z.ZodEnum<["normal", "bold"]>, z.ZodNumber]>>;
|
|
36
|
-
style: z.ZodOptional<z.ZodEnum<["normal", "italic", "oblique"]>>;
|
|
37
|
-
}, "strip", z.ZodTypeAny, {
|
|
38
|
-
family?: string | undefined;
|
|
39
|
-
size?: number | undefined;
|
|
40
|
-
weight?: number | "normal" | "bold" | undefined;
|
|
41
|
-
style?: "normal" | "italic" | "oblique" | undefined;
|
|
42
|
-
}, {
|
|
43
|
-
family?: string | undefined;
|
|
44
|
-
size?: number | undefined;
|
|
45
|
-
weight?: number | "normal" | "bold" | undefined;
|
|
46
|
-
style?: "normal" | "italic" | "oblique" | undefined;
|
|
47
|
-
}>;
|
|
48
|
-
/** 节点字体规格(IR 层)——所有字段可选,编译期解析默认值 */
|
|
49
|
-
export type IRFont = z.infer<typeof FontSchema>;
|
|
50
|
-
/**
|
|
51
|
-
* 单行文本规格——纯字符串走块级默认样式;对象形式可对该行覆盖 fill / opacity / font。
|
|
52
|
-
*
|
|
53
|
-
* 行级覆盖只生效于本行的 `<tspan>`:
|
|
54
|
-
* - `fill`:仅这一行颜色
|
|
55
|
-
* - `opacity`:仅这一行 0~1 透明度
|
|
56
|
-
* - `font`:family / size / weight / style 任意子集;未填字段继承块级 font
|
|
57
|
-
*
|
|
58
|
-
* 块级 `align` / `lineHeight` 不可被行覆盖(多行块整体属性)。
|
|
59
|
-
*/
|
|
60
|
-
export declare const LineSpecSchema: z.ZodUnion<[z.ZodString, z.ZodObject<{
|
|
61
|
-
text: z.ZodString;
|
|
62
|
-
fill: z.ZodOptional<z.ZodString>;
|
|
63
|
-
opacity: z.ZodOptional<z.ZodNumber>;
|
|
64
|
-
font: z.ZodOptional<z.ZodObject<{
|
|
65
|
-
family: z.ZodOptional<z.ZodString>;
|
|
66
|
-
size: z.ZodOptional<z.ZodNumber>;
|
|
67
|
-
weight: z.ZodOptional<z.ZodUnion<[z.ZodEnum<["normal", "bold"]>, z.ZodNumber]>>;
|
|
68
|
-
style: z.ZodOptional<z.ZodEnum<["normal", "italic", "oblique"]>>;
|
|
69
|
-
}, "strip", z.ZodTypeAny, {
|
|
70
|
-
family?: string | undefined;
|
|
71
|
-
size?: number | undefined;
|
|
72
|
-
weight?: number | "normal" | "bold" | undefined;
|
|
73
|
-
style?: "normal" | "italic" | "oblique" | undefined;
|
|
74
|
-
}, {
|
|
75
|
-
family?: string | undefined;
|
|
76
|
-
size?: number | undefined;
|
|
77
|
-
weight?: number | "normal" | "bold" | undefined;
|
|
78
|
-
style?: "normal" | "italic" | "oblique" | undefined;
|
|
79
|
-
}>>;
|
|
80
|
-
}, "strip", z.ZodTypeAny, {
|
|
81
|
-
text: string;
|
|
82
|
-
fill?: string | undefined;
|
|
83
|
-
opacity?: number | undefined;
|
|
84
|
-
font?: {
|
|
85
|
-
family?: string | undefined;
|
|
86
|
-
size?: number | undefined;
|
|
87
|
-
weight?: number | "normal" | "bold" | undefined;
|
|
88
|
-
style?: "normal" | "italic" | "oblique" | undefined;
|
|
89
|
-
} | undefined;
|
|
90
|
-
}, {
|
|
91
|
-
text: string;
|
|
92
|
-
fill?: string | undefined;
|
|
93
|
-
opacity?: number | undefined;
|
|
94
|
-
font?: {
|
|
95
|
-
family?: string | undefined;
|
|
96
|
-
size?: number | undefined;
|
|
97
|
-
weight?: number | "normal" | "bold" | undefined;
|
|
98
|
-
style?: "normal" | "italic" | "oblique" | undefined;
|
|
99
|
-
} | undefined;
|
|
100
|
-
}>]>;
|
|
101
|
-
/** 行规格 IR 类型(string 或对象) */
|
|
102
|
-
export type IRLineSpec = z.infer<typeof LineSpecSchema>;
|
|
103
|
-
/**
|
|
104
|
-
* 节点文本——单行字符串或非空多行数组(每元素一个 LineSpec):
|
|
105
|
-
* - `'Hello'` 等价于 `[{ text: 'Hello' }]`,按一行渲染
|
|
106
|
-
* - `['Line 1', 'Line 2']` 两行无样式覆盖
|
|
107
|
-
* - `[{ text: 'Heading', fill: 'red', font: { weight: 'bold' } }, 'body']` 混排
|
|
108
|
-
*
|
|
109
|
-
* 选 `Array<LineSpec>` 而非 `'\n'` 字符串:JSON 友好(无 escape);行级覆盖天然落字段。
|
|
110
|
-
*/
|
|
111
|
-
export declare const NodeTextSchema: z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodObject<{
|
|
112
|
-
text: z.ZodString;
|
|
113
|
-
fill: z.ZodOptional<z.ZodString>;
|
|
114
|
-
opacity: z.ZodOptional<z.ZodNumber>;
|
|
115
|
-
font: z.ZodOptional<z.ZodObject<{
|
|
116
|
-
family: z.ZodOptional<z.ZodString>;
|
|
117
|
-
size: z.ZodOptional<z.ZodNumber>;
|
|
118
|
-
weight: z.ZodOptional<z.ZodUnion<[z.ZodEnum<["normal", "bold"]>, z.ZodNumber]>>;
|
|
119
|
-
style: z.ZodOptional<z.ZodEnum<["normal", "italic", "oblique"]>>;
|
|
120
|
-
}, "strip", z.ZodTypeAny, {
|
|
121
|
-
family?: string | undefined;
|
|
122
|
-
size?: number | undefined;
|
|
123
|
-
weight?: number | "normal" | "bold" | undefined;
|
|
124
|
-
style?: "normal" | "italic" | "oblique" | undefined;
|
|
125
|
-
}, {
|
|
126
|
-
family?: string | undefined;
|
|
127
|
-
size?: number | undefined;
|
|
128
|
-
weight?: number | "normal" | "bold" | undefined;
|
|
129
|
-
style?: "normal" | "italic" | "oblique" | undefined;
|
|
130
|
-
}>>;
|
|
131
|
-
}, "strip", z.ZodTypeAny, {
|
|
132
|
-
text: string;
|
|
133
|
-
fill?: string | undefined;
|
|
134
|
-
opacity?: number | undefined;
|
|
135
|
-
font?: {
|
|
136
|
-
family?: string | undefined;
|
|
137
|
-
size?: number | undefined;
|
|
138
|
-
weight?: number | "normal" | "bold" | undefined;
|
|
139
|
-
style?: "normal" | "italic" | "oblique" | undefined;
|
|
140
|
-
} | undefined;
|
|
141
|
-
}, {
|
|
142
|
-
text: string;
|
|
143
|
-
fill?: string | undefined;
|
|
144
|
-
opacity?: number | undefined;
|
|
145
|
-
font?: {
|
|
146
|
-
family?: string | undefined;
|
|
147
|
-
size?: number | undefined;
|
|
148
|
-
weight?: number | "normal" | "bold" | undefined;
|
|
149
|
-
style?: "normal" | "italic" | "oblique" | undefined;
|
|
150
|
-
} | undefined;
|
|
151
|
-
}>]>, "many">]>;
|
|
152
|
-
/** 节点文本对齐(多行内文本对齐)——TikZ `align=` 同义词 */
|
|
15
|
+
/** 节点文本对齐(TikZ `align=` 同义) */
|
|
153
16
|
export declare const NODE_TEXT_ALIGNS: {
|
|
154
17
|
readonly left: "left";
|
|
155
18
|
readonly center: "center";
|
|
156
19
|
readonly right: "right";
|
|
157
20
|
};
|
|
158
|
-
/** 多行文本对齐字面量类型 */
|
|
159
21
|
export type NodeTextAlign = ValueOf<typeof NODE_TEXT_ALIGNS>;
|
|
160
22
|
/**
|
|
161
|
-
*
|
|
162
|
-
*
|
|
163
|
-
* 一个 Node 可挂多个 label(数组形态);label 自身不参与 viewBox(视觉外延少时可接受)。
|
|
164
|
-
*
|
|
165
|
-
* `position` 接受两种形态:
|
|
166
|
-
* - 8 方向枚举(`above` / `right` / `above-left` ...):标签贴在 node 该方向边界外
|
|
167
|
-
* - 数字角度:以 node 中心为原点,按该角度方向投射;约定与 polar 一致(0° = +x,90° = +y 屏幕下方)
|
|
168
|
-
*
|
|
169
|
-
* 默认 `position = 'above'`,`distance = 4`(user units,标签与 node 边界的距离)。
|
|
23
|
+
* 节点附属标签 label(TikZ `[label=above:foo]` 同义)
|
|
24
|
+
* @description 可挂多个;label 不参与 viewBox。position 支持 8 方向枚举或数字角度(polar 约定:0°=+x,90°=+y 屏幕下方);默认 position='above',distance=4
|
|
170
25
|
*/
|
|
171
26
|
export declare const NodeLabelSchema: z.ZodObject<{
|
|
172
27
|
text: z.ZodString;
|
|
@@ -202,7 +57,6 @@ export declare const NodeLabelSchema: z.ZodObject<{
|
|
|
202
57
|
}, "strip", z.ZodTypeAny, {
|
|
203
58
|
text: string;
|
|
204
59
|
distance?: number | undefined;
|
|
205
|
-
position?: number | "above" | "below" | "left" | "right" | "above-left" | "above-right" | "below-left" | "below-right" | undefined;
|
|
206
60
|
opacity?: number | undefined;
|
|
207
61
|
font?: {
|
|
208
62
|
family?: string | undefined;
|
|
@@ -210,11 +64,11 @@ export declare const NodeLabelSchema: z.ZodObject<{
|
|
|
210
64
|
weight?: number | "normal" | "bold" | undefined;
|
|
211
65
|
style?: "normal" | "italic" | "oblique" | undefined;
|
|
212
66
|
} | undefined;
|
|
67
|
+
position?: number | "above" | "below" | "left" | "right" | "above-left" | "above-right" | "below-left" | "below-right" | undefined;
|
|
213
68
|
textColor?: string | undefined;
|
|
214
69
|
}, {
|
|
215
70
|
text: string;
|
|
216
71
|
distance?: number | undefined;
|
|
217
|
-
position?: number | "above" | "below" | "left" | "right" | "above-left" | "above-right" | "below-left" | "below-right" | undefined;
|
|
218
72
|
opacity?: number | undefined;
|
|
219
73
|
font?: {
|
|
220
74
|
family?: string | undefined;
|
|
@@ -222,9 +76,10 @@ export declare const NodeLabelSchema: z.ZodObject<{
|
|
|
222
76
|
weight?: number | "normal" | "bold" | undefined;
|
|
223
77
|
style?: "normal" | "italic" | "oblique" | undefined;
|
|
224
78
|
} | undefined;
|
|
79
|
+
position?: number | "above" | "below" | "left" | "right" | "above-left" | "above-right" | "below-left" | "below-right" | undefined;
|
|
225
80
|
textColor?: string | undefined;
|
|
226
81
|
}>;
|
|
227
|
-
/** Node label IR
|
|
82
|
+
/** Node label IR 类型 */
|
|
228
83
|
export type IRNodeLabel = z.infer<typeof NodeLabelSchema>;
|
|
229
84
|
export declare const NodeSchema: z.ZodObject<{
|
|
230
85
|
type: z.ZodLiteral<"node">;
|
|
@@ -256,6 +111,15 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
256
111
|
direction: "above" | "below" | "left" | "right" | "above-left" | "above-right" | "below-left" | "below-right";
|
|
257
112
|
of: string;
|
|
258
113
|
distance?: number | undefined;
|
|
114
|
+
}>, z.ZodObject<{
|
|
115
|
+
of: z.ZodUnion<[z.ZodString, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodType<import('./position').PolarPosition, z.ZodTypeDef, import('./position').PolarPosition>]>;
|
|
116
|
+
offset: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
|
|
117
|
+
}, "strip", z.ZodTypeAny, {
|
|
118
|
+
of: string | [number, number] | import('./position').PolarPosition;
|
|
119
|
+
offset: [number, number];
|
|
120
|
+
}, {
|
|
121
|
+
of: string | [number, number] | import('./position').PolarPosition;
|
|
122
|
+
offset: [number, number];
|
|
259
123
|
}>]>;
|
|
260
124
|
rotate: z.ZodOptional<z.ZodNumber>;
|
|
261
125
|
text: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodObject<{
|
|
@@ -377,7 +241,6 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
377
241
|
}, "strip", z.ZodTypeAny, {
|
|
378
242
|
text: string;
|
|
379
243
|
distance?: number | undefined;
|
|
380
|
-
position?: number | "above" | "below" | "left" | "right" | "above-left" | "above-right" | "below-left" | "below-right" | undefined;
|
|
381
244
|
opacity?: number | undefined;
|
|
382
245
|
font?: {
|
|
383
246
|
family?: string | undefined;
|
|
@@ -385,11 +248,11 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
385
248
|
weight?: number | "normal" | "bold" | undefined;
|
|
386
249
|
style?: "normal" | "italic" | "oblique" | undefined;
|
|
387
250
|
} | undefined;
|
|
251
|
+
position?: number | "above" | "below" | "left" | "right" | "above-left" | "above-right" | "below-left" | "below-right" | undefined;
|
|
388
252
|
textColor?: string | undefined;
|
|
389
253
|
}, {
|
|
390
254
|
text: string;
|
|
391
255
|
distance?: number | undefined;
|
|
392
|
-
position?: number | "above" | "below" | "left" | "right" | "above-left" | "above-right" | "below-left" | "below-right" | undefined;
|
|
393
256
|
opacity?: number | undefined;
|
|
394
257
|
font?: {
|
|
395
258
|
family?: string | undefined;
|
|
@@ -397,6 +260,7 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
397
260
|
weight?: number | "normal" | "bold" | undefined;
|
|
398
261
|
style?: "normal" | "italic" | "oblique" | undefined;
|
|
399
262
|
} | undefined;
|
|
263
|
+
position?: number | "above" | "below" | "left" | "right" | "above-left" | "above-right" | "below-left" | "below-right" | undefined;
|
|
400
264
|
textColor?: string | undefined;
|
|
401
265
|
}>, z.ZodArray<z.ZodObject<{
|
|
402
266
|
text: z.ZodString;
|
|
@@ -432,7 +296,6 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
432
296
|
}, "strip", z.ZodTypeAny, {
|
|
433
297
|
text: string;
|
|
434
298
|
distance?: number | undefined;
|
|
435
|
-
position?: number | "above" | "below" | "left" | "right" | "above-left" | "above-right" | "below-left" | "below-right" | undefined;
|
|
436
299
|
opacity?: number | undefined;
|
|
437
300
|
font?: {
|
|
438
301
|
family?: string | undefined;
|
|
@@ -440,11 +303,11 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
440
303
|
weight?: number | "normal" | "bold" | undefined;
|
|
441
304
|
style?: "normal" | "italic" | "oblique" | undefined;
|
|
442
305
|
} | undefined;
|
|
306
|
+
position?: number | "above" | "below" | "left" | "right" | "above-left" | "above-right" | "below-left" | "below-right" | undefined;
|
|
443
307
|
textColor?: string | undefined;
|
|
444
308
|
}, {
|
|
445
309
|
text: string;
|
|
446
310
|
distance?: number | undefined;
|
|
447
|
-
position?: number | "above" | "below" | "left" | "right" | "above-left" | "above-right" | "below-left" | "below-right" | undefined;
|
|
448
311
|
opacity?: number | undefined;
|
|
449
312
|
font?: {
|
|
450
313
|
family?: string | undefined;
|
|
@@ -452,6 +315,7 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
452
315
|
weight?: number | "normal" | "bold" | undefined;
|
|
453
316
|
style?: "normal" | "italic" | "oblique" | undefined;
|
|
454
317
|
} | undefined;
|
|
318
|
+
position?: number | "above" | "below" | "left" | "right" | "above-left" | "above-right" | "below-left" | "below-right" | undefined;
|
|
455
319
|
textColor?: string | undefined;
|
|
456
320
|
}>, "many">]>>;
|
|
457
321
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -460,6 +324,9 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
460
324
|
direction: "above" | "below" | "left" | "right" | "above-left" | "above-right" | "below-left" | "below-right";
|
|
461
325
|
of: string;
|
|
462
326
|
distance?: number | undefined;
|
|
327
|
+
} | {
|
|
328
|
+
of: string | [number, number] | import('./position').PolarPosition;
|
|
329
|
+
offset: [number, number];
|
|
463
330
|
};
|
|
464
331
|
fill?: string | undefined;
|
|
465
332
|
text?: string | (string | {
|
|
@@ -473,10 +340,18 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
473
340
|
style?: "normal" | "italic" | "oblique" | undefined;
|
|
474
341
|
} | undefined;
|
|
475
342
|
})[] | undefined;
|
|
343
|
+
opacity?: number | undefined;
|
|
344
|
+
font?: {
|
|
345
|
+
family?: string | undefined;
|
|
346
|
+
size?: number | undefined;
|
|
347
|
+
weight?: number | "normal" | "bold" | undefined;
|
|
348
|
+
style?: "normal" | "italic" | "oblique" | undefined;
|
|
349
|
+
} | undefined;
|
|
350
|
+
shape?: "diamond" | "circle" | "rectangle" | "ellipse" | undefined;
|
|
351
|
+
scale?: number | undefined;
|
|
476
352
|
label?: {
|
|
477
353
|
text: string;
|
|
478
354
|
distance?: number | undefined;
|
|
479
|
-
position?: number | "above" | "below" | "left" | "right" | "above-left" | "above-right" | "below-left" | "below-right" | undefined;
|
|
480
355
|
opacity?: number | undefined;
|
|
481
356
|
font?: {
|
|
482
357
|
family?: string | undefined;
|
|
@@ -484,11 +359,11 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
484
359
|
weight?: number | "normal" | "bold" | undefined;
|
|
485
360
|
style?: "normal" | "italic" | "oblique" | undefined;
|
|
486
361
|
} | undefined;
|
|
362
|
+
position?: number | "above" | "below" | "left" | "right" | "above-left" | "above-right" | "below-left" | "below-right" | undefined;
|
|
487
363
|
textColor?: string | undefined;
|
|
488
364
|
} | {
|
|
489
365
|
text: string;
|
|
490
366
|
distance?: number | undefined;
|
|
491
|
-
position?: number | "above" | "below" | "left" | "right" | "above-left" | "above-right" | "below-left" | "below-right" | undefined;
|
|
492
367
|
opacity?: number | undefined;
|
|
493
368
|
font?: {
|
|
494
369
|
family?: string | undefined;
|
|
@@ -496,20 +371,13 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
496
371
|
weight?: number | "normal" | "bold" | undefined;
|
|
497
372
|
style?: "normal" | "italic" | "oblique" | undefined;
|
|
498
373
|
} | undefined;
|
|
374
|
+
position?: number | "above" | "below" | "left" | "right" | "above-left" | "above-right" | "below-left" | "below-right" | undefined;
|
|
499
375
|
textColor?: string | undefined;
|
|
500
376
|
}[] | undefined;
|
|
501
|
-
shape?: "diamond" | "circle" | "rectangle" | "ellipse" | undefined;
|
|
502
377
|
stroke?: string | undefined;
|
|
503
378
|
strokeWidth?: number | undefined;
|
|
504
|
-
opacity?: number | undefined;
|
|
505
379
|
fillOpacity?: number | undefined;
|
|
506
380
|
drawOpacity?: number | undefined;
|
|
507
|
-
font?: {
|
|
508
|
-
family?: string | undefined;
|
|
509
|
-
size?: number | undefined;
|
|
510
|
-
weight?: number | "normal" | "bold" | undefined;
|
|
511
|
-
style?: "normal" | "italic" | "oblique" | undefined;
|
|
512
|
-
} | undefined;
|
|
513
381
|
textColor?: string | undefined;
|
|
514
382
|
id?: string | undefined;
|
|
515
383
|
rotate?: number | undefined;
|
|
@@ -522,7 +390,6 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
522
390
|
minimumWidth?: number | undefined;
|
|
523
391
|
minimumHeight?: number | undefined;
|
|
524
392
|
minimumSize?: number | undefined;
|
|
525
|
-
scale?: number | undefined;
|
|
526
393
|
xScale?: number | undefined;
|
|
527
394
|
yScale?: number | undefined;
|
|
528
395
|
innerXSep?: number | undefined;
|
|
@@ -536,6 +403,9 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
536
403
|
direction: "above" | "below" | "left" | "right" | "above-left" | "above-right" | "below-left" | "below-right";
|
|
537
404
|
of: string;
|
|
538
405
|
distance?: number | undefined;
|
|
406
|
+
} | {
|
|
407
|
+
of: string | [number, number] | import('./position').PolarPosition;
|
|
408
|
+
offset: [number, number];
|
|
539
409
|
};
|
|
540
410
|
fill?: string | undefined;
|
|
541
411
|
text?: string | (string | {
|
|
@@ -549,10 +419,18 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
549
419
|
style?: "normal" | "italic" | "oblique" | undefined;
|
|
550
420
|
} | undefined;
|
|
551
421
|
})[] | undefined;
|
|
422
|
+
opacity?: number | undefined;
|
|
423
|
+
font?: {
|
|
424
|
+
family?: string | undefined;
|
|
425
|
+
size?: number | undefined;
|
|
426
|
+
weight?: number | "normal" | "bold" | undefined;
|
|
427
|
+
style?: "normal" | "italic" | "oblique" | undefined;
|
|
428
|
+
} | undefined;
|
|
429
|
+
shape?: "diamond" | "circle" | "rectangle" | "ellipse" | undefined;
|
|
430
|
+
scale?: number | undefined;
|
|
552
431
|
label?: {
|
|
553
432
|
text: string;
|
|
554
433
|
distance?: number | undefined;
|
|
555
|
-
position?: number | "above" | "below" | "left" | "right" | "above-left" | "above-right" | "below-left" | "below-right" | undefined;
|
|
556
434
|
opacity?: number | undefined;
|
|
557
435
|
font?: {
|
|
558
436
|
family?: string | undefined;
|
|
@@ -560,11 +438,11 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
560
438
|
weight?: number | "normal" | "bold" | undefined;
|
|
561
439
|
style?: "normal" | "italic" | "oblique" | undefined;
|
|
562
440
|
} | undefined;
|
|
441
|
+
position?: number | "above" | "below" | "left" | "right" | "above-left" | "above-right" | "below-left" | "below-right" | undefined;
|
|
563
442
|
textColor?: string | undefined;
|
|
564
443
|
} | {
|
|
565
444
|
text: string;
|
|
566
445
|
distance?: number | undefined;
|
|
567
|
-
position?: number | "above" | "below" | "left" | "right" | "above-left" | "above-right" | "below-left" | "below-right" | undefined;
|
|
568
446
|
opacity?: number | undefined;
|
|
569
447
|
font?: {
|
|
570
448
|
family?: string | undefined;
|
|
@@ -572,20 +450,13 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
572
450
|
weight?: number | "normal" | "bold" | undefined;
|
|
573
451
|
style?: "normal" | "italic" | "oblique" | undefined;
|
|
574
452
|
} | undefined;
|
|
453
|
+
position?: number | "above" | "below" | "left" | "right" | "above-left" | "above-right" | "below-left" | "below-right" | undefined;
|
|
575
454
|
textColor?: string | undefined;
|
|
576
455
|
}[] | undefined;
|
|
577
|
-
shape?: "diamond" | "circle" | "rectangle" | "ellipse" | undefined;
|
|
578
456
|
stroke?: string | undefined;
|
|
579
457
|
strokeWidth?: number | undefined;
|
|
580
|
-
opacity?: number | undefined;
|
|
581
458
|
fillOpacity?: number | undefined;
|
|
582
459
|
drawOpacity?: number | undefined;
|
|
583
|
-
font?: {
|
|
584
|
-
family?: string | undefined;
|
|
585
|
-
size?: number | undefined;
|
|
586
|
-
weight?: number | "normal" | "bold" | undefined;
|
|
587
|
-
style?: "normal" | "italic" | "oblique" | undefined;
|
|
588
|
-
} | undefined;
|
|
589
460
|
textColor?: string | undefined;
|
|
590
461
|
id?: string | undefined;
|
|
591
462
|
rotate?: number | undefined;
|
|
@@ -598,7 +469,6 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
598
469
|
minimumWidth?: number | undefined;
|
|
599
470
|
minimumHeight?: number | undefined;
|
|
600
471
|
minimumSize?: number | undefined;
|
|
601
|
-
scale?: number | undefined;
|
|
602
472
|
xScale?: number | undefined;
|
|
603
473
|
yScale?: number | undefined;
|
|
604
474
|
innerXSep?: number | undefined;
|
|
@@ -607,6 +477,6 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
607
477
|
padding?: number | undefined;
|
|
608
478
|
margin?: number | undefined;
|
|
609
479
|
}>;
|
|
610
|
-
/**
|
|
480
|
+
/** 节点:可定位的形状容器(矩形/圆/椭圆/菱形)+ 可选文本标签 */
|
|
611
481
|
export type IRNode = z.infer<typeof NodeSchema>;
|
|
612
482
|
//# 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;
|
|
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;AAKxC;;;GAGG;AACH,eAAO,MAAM,WAAW;;;;;CAKd,CAAC;AAEX,gBAAgB;AAChB,MAAM,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC;AAEpD,+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"}
|
|
@@ -1,16 +1,8 @@
|
|
|
1
|
+
let zod = require("zod");
|
|
1
2
|
//#region src/ir/path/arrow.ts
|
|
2
3
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* 在 string 场景与字面量类型不互通的两个坑。
|
|
6
|
-
*
|
|
7
|
-
* - `normal`:实心三角(默认;最常见)
|
|
8
|
-
* - `open`:空心三角(UML 泛化 / 继承)
|
|
9
|
-
* - `stealth`:尖锐倒钩三角(流图常见、视觉锐利)
|
|
10
|
-
* - `diamond`:实心菱形(UML 组合)
|
|
11
|
-
* - `openDiamond`:空心菱形(UML 聚合)
|
|
12
|
-
* - `circle`:实心圆点(连接点 / dot end)
|
|
13
|
-
* - `openCircle`:空心圆点(白圈 / o-end)
|
|
4
|
+
* 箭头形状常量(用 const 而非 TS enum 避免 reverse-mapping 和字面量不互通)
|
|
5
|
+
* @description normal 实心三角(默认);open 空心三角(UML 泛化/继承);stealth 尖锐倒钩;diamond 实心菱形(UML 组合);openDiamond 空心菱形(聚合);circle 实心圆点;openCircle 空心圆点
|
|
14
6
|
*/
|
|
15
7
|
var ARROW_SHAPES = {
|
|
16
8
|
normal: "normal",
|
|
@@ -21,5 +13,45 @@ var ARROW_SHAPES = {
|
|
|
21
13
|
circle: "circle",
|
|
22
14
|
openCircle: "openCircle"
|
|
23
15
|
};
|
|
16
|
+
/**
|
|
17
|
+
* 空心 shape 集合(fill 字段在这些 shape 上 silent no-op)
|
|
18
|
+
* @description compile 与 render 都引用此表判定 fill 是否丢弃;空心 shape 用 color 主导描边、lineWidth 控描边粗
|
|
19
|
+
*/
|
|
20
|
+
var HOLLOW_ARROW_SHAPES = new Set([
|
|
21
|
+
"open",
|
|
22
|
+
"openDiamond",
|
|
23
|
+
"openCircle"
|
|
24
|
+
]);
|
|
25
|
+
/** marker 默认尺寸(length / width 的 fallback;arrowMarkers viewBox 内的几何也按 10 单位定义) */
|
|
26
|
+
var ARROW_MARKER_DEFAULT_SIZE = 6;
|
|
27
|
+
/** 空心 shape 描边默认粗细(lineWidth fallback;refX / shrink 计算都用它做"back stroke 半宽") */
|
|
28
|
+
var ARROW_MARKER_HOLLOW_DEFAULT_LINE_WIDTH = 1.5;
|
|
29
|
+
/**
|
|
30
|
+
* 端点级箭头视觉规格 schema
|
|
31
|
+
* @description 顶层 8 字段全 optional;fill 在空心 shape 上 silent no-op(schema 不拒绝、compile/render 丢字段);start/end 子对象用相同字段集(无 start/end 递归)
|
|
32
|
+
*/
|
|
33
|
+
var ArrowEndDetailSchema = zod.z.object({
|
|
34
|
+
shape: zod.z.nativeEnum(ARROW_SHAPES).optional().describe("Arrow tip shape. Defaults to `normal` (filled triangle). Other values: `open` (hollow triangle), `stealth` (sharp barb), `diamond`, `openDiamond`, `circle`, `openCircle`."),
|
|
35
|
+
scale: zod.z.number().positive().optional().describe("Uniform tip scale factor; multiplies `length` and `width` (e.g. `length=10, scale=1.5` → effective 15). Defaults to 1."),
|
|
36
|
+
length: zod.z.number().nonnegative().optional().describe("Tip length in user units (the dimension along the path direction). Defaults to ~6 (matching the legacy hardcoded markerWidth)."),
|
|
37
|
+
width: zod.z.number().nonnegative().optional().describe("Tip width in user units (perpendicular to the path). Defaults to ~6 (matching the legacy hardcoded markerHeight)."),
|
|
38
|
+
color: zod.z.string().optional().describe("Stroke color override. When omitted, the marker inherits the path stroke via `context-stroke`."),
|
|
39
|
+
fill: zod.z.string().optional().describe("Fill color override (effective only on solid shapes). Hollow shapes (`open` / `openDiamond` / `openCircle`) silently ignore this field — `color` drives the stroke."),
|
|
40
|
+
opacity: zod.z.number().min(0).max(1).optional().describe("Arrow opacity 0..1, independent from the path opacity. When omitted, inherits the path opacity."),
|
|
41
|
+
lineWidth: zod.z.number().nonnegative().optional().describe("Stroke width for hollow shapes (user units). Defaults to 1.5. Solid shapes ignore this field.")
|
|
42
|
+
}).describe("Per-end arrow visual spec: shape + visual fields (scale / length / width / color / fill / opacity / lineWidth). All optional; omitted fields fall through to top-level `arrowDetail` defaults and then built-in defaults.");
|
|
43
|
+
/**
|
|
44
|
+
* Path 级箭头详细配置 schema
|
|
45
|
+
* @description 顶层视觉字段(与 `ArrowEndDetailSchema` 同字段集)作为起末共享默认;`start` / `end` 子对象逐字段 merge 顶层(缺省字段继承,已填字段 override)
|
|
46
|
+
*/
|
|
47
|
+
var ArrowDetailSchema = ArrowEndDetailSchema.extend({
|
|
48
|
+
start: ArrowEndDetailSchema.optional().describe("Start-end override (effective only when `arrow` includes a start arrow: `<-` / `<->`). Fields merge into the top-level defaults; omitted fields inherit, present fields override."),
|
|
49
|
+
end: ArrowEndDetailSchema.optional().describe("End-end override (effective only when `arrow` includes an end arrow: `->` / `<->`). Fields merge into the top-level defaults; omitted fields inherit, present fields override.")
|
|
50
|
+
}).describe("Path-level arrow detail. Top-level visual fields (shape / scale / length / width / color / fill / opacity / lineWidth) act as shared defaults for both ends; `start` / `end` sub-objects per-field override the defaults.");
|
|
24
51
|
//#endregion
|
|
52
|
+
exports.ARROW_MARKER_DEFAULT_SIZE = ARROW_MARKER_DEFAULT_SIZE;
|
|
53
|
+
exports.ARROW_MARKER_HOLLOW_DEFAULT_LINE_WIDTH = ARROW_MARKER_HOLLOW_DEFAULT_LINE_WIDTH;
|
|
25
54
|
exports.ARROW_SHAPES = ARROW_SHAPES;
|
|
55
|
+
exports.ArrowDetailSchema = ArrowDetailSchema;
|
|
56
|
+
exports.ArrowEndDetailSchema = ArrowEndDetailSchema;
|
|
57
|
+
exports.HOLLOW_ARROW_SHAPES = HOLLOW_ARROW_SHAPES;
|