@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../../../src/ir/scene.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,WAAW
|
|
1
|
+
{"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../../../src/ir/scene.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
const require_font = require("./font.cjs");
|
|
2
|
+
let zod = require("zod");
|
|
3
|
+
//#region src/ir/text.ts
|
|
4
|
+
/**
|
|
5
|
+
* 单行文本规格:纯字符串走块级默认,对象形式可覆盖 fill/opacity/font
|
|
6
|
+
* @description 行级覆盖只生效于本行;font 子字段未填则继承块级;align/lineHeight 不可被行覆盖
|
|
7
|
+
*/
|
|
8
|
+
var LineSpecSchema = zod.z.union([zod.z.string(), zod.z.object({
|
|
9
|
+
text: zod.z.string().describe("Line content"),
|
|
10
|
+
fill: zod.z.string().optional().describe("Per-line text color; overrides block default"),
|
|
11
|
+
opacity: zod.z.number().min(0).max(1).optional().describe("Per-line opacity 0..1"),
|
|
12
|
+
font: require_font.FontSchema.optional().describe("Per-line font overrides; missing fields inherit from block-level `font`")
|
|
13
|
+
})]).describe("Single line of text: bare string for default styling, or an object with per-line `fill` / `opacity` / `font` overrides.");
|
|
14
|
+
/**
|
|
15
|
+
* 文本块:单字符串或非空多行 LineSpec 数组
|
|
16
|
+
* @description 选数组而非 `\n` 字符串:JSON 友好无 escape,行级覆盖天然落字段;通用文本结构,Node text / 未来 Step.label 等共用
|
|
17
|
+
*/
|
|
18
|
+
var TextBlockSchema = zod.z.union([zod.z.string(), zod.z.array(LineSpecSchema).min(1)]).describe("Text block: a single string for one line, or a non-empty array of line specs (string for default, object for per-line overrides).");
|
|
19
|
+
//#endregion
|
|
20
|
+
exports.LineSpecSchema = LineSpecSchema;
|
|
21
|
+
exports.TextBlockSchema = TextBlockSchema;
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* 单行文本规格:纯字符串走块级默认,对象形式可覆盖 fill/opacity/font
|
|
4
|
+
* @description 行级覆盖只生效于本行;font 子字段未填则继承块级;align/lineHeight 不可被行覆盖
|
|
5
|
+
*/
|
|
6
|
+
export declare const LineSpecSchema: z.ZodUnion<[z.ZodString, z.ZodObject<{
|
|
7
|
+
text: z.ZodString;
|
|
8
|
+
fill: z.ZodOptional<z.ZodString>;
|
|
9
|
+
opacity: z.ZodOptional<z.ZodNumber>;
|
|
10
|
+
font: z.ZodOptional<z.ZodObject<{
|
|
11
|
+
family: z.ZodOptional<z.ZodString>;
|
|
12
|
+
size: z.ZodOptional<z.ZodNumber>;
|
|
13
|
+
weight: z.ZodOptional<z.ZodUnion<[z.ZodEnum<["normal", "bold"]>, z.ZodNumber]>>;
|
|
14
|
+
style: z.ZodOptional<z.ZodEnum<["normal", "italic", "oblique"]>>;
|
|
15
|
+
}, "strip", z.ZodTypeAny, {
|
|
16
|
+
family?: string | undefined;
|
|
17
|
+
size?: number | undefined;
|
|
18
|
+
weight?: number | "normal" | "bold" | undefined;
|
|
19
|
+
style?: "normal" | "italic" | "oblique" | undefined;
|
|
20
|
+
}, {
|
|
21
|
+
family?: string | undefined;
|
|
22
|
+
size?: number | undefined;
|
|
23
|
+
weight?: number | "normal" | "bold" | undefined;
|
|
24
|
+
style?: "normal" | "italic" | "oblique" | undefined;
|
|
25
|
+
}>>;
|
|
26
|
+
}, "strip", z.ZodTypeAny, {
|
|
27
|
+
text: string;
|
|
28
|
+
fill?: string | undefined;
|
|
29
|
+
opacity?: number | undefined;
|
|
30
|
+
font?: {
|
|
31
|
+
family?: string | undefined;
|
|
32
|
+
size?: number | undefined;
|
|
33
|
+
weight?: number | "normal" | "bold" | undefined;
|
|
34
|
+
style?: "normal" | "italic" | "oblique" | undefined;
|
|
35
|
+
} | undefined;
|
|
36
|
+
}, {
|
|
37
|
+
text: string;
|
|
38
|
+
fill?: string | undefined;
|
|
39
|
+
opacity?: number | undefined;
|
|
40
|
+
font?: {
|
|
41
|
+
family?: string | undefined;
|
|
42
|
+
size?: number | undefined;
|
|
43
|
+
weight?: number | "normal" | "bold" | undefined;
|
|
44
|
+
style?: "normal" | "italic" | "oblique" | undefined;
|
|
45
|
+
} | undefined;
|
|
46
|
+
}>]>;
|
|
47
|
+
/** 行规格 IR 类型 */
|
|
48
|
+
export type IRLineSpec = z.infer<typeof LineSpecSchema>;
|
|
49
|
+
/**
|
|
50
|
+
* 文本块:单字符串或非空多行 LineSpec 数组
|
|
51
|
+
* @description 选数组而非 `\n` 字符串:JSON 友好无 escape,行级覆盖天然落字段;通用文本结构,Node text / 未来 Step.label 等共用
|
|
52
|
+
*/
|
|
53
|
+
export declare const TextBlockSchema: z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodObject<{
|
|
54
|
+
text: z.ZodString;
|
|
55
|
+
fill: z.ZodOptional<z.ZodString>;
|
|
56
|
+
opacity: z.ZodOptional<z.ZodNumber>;
|
|
57
|
+
font: z.ZodOptional<z.ZodObject<{
|
|
58
|
+
family: z.ZodOptional<z.ZodString>;
|
|
59
|
+
size: z.ZodOptional<z.ZodNumber>;
|
|
60
|
+
weight: z.ZodOptional<z.ZodUnion<[z.ZodEnum<["normal", "bold"]>, z.ZodNumber]>>;
|
|
61
|
+
style: z.ZodOptional<z.ZodEnum<["normal", "italic", "oblique"]>>;
|
|
62
|
+
}, "strip", z.ZodTypeAny, {
|
|
63
|
+
family?: string | undefined;
|
|
64
|
+
size?: number | undefined;
|
|
65
|
+
weight?: number | "normal" | "bold" | undefined;
|
|
66
|
+
style?: "normal" | "italic" | "oblique" | undefined;
|
|
67
|
+
}, {
|
|
68
|
+
family?: string | undefined;
|
|
69
|
+
size?: number | undefined;
|
|
70
|
+
weight?: number | "normal" | "bold" | undefined;
|
|
71
|
+
style?: "normal" | "italic" | "oblique" | undefined;
|
|
72
|
+
}>>;
|
|
73
|
+
}, "strip", z.ZodTypeAny, {
|
|
74
|
+
text: string;
|
|
75
|
+
fill?: string | undefined;
|
|
76
|
+
opacity?: number | undefined;
|
|
77
|
+
font?: {
|
|
78
|
+
family?: string | undefined;
|
|
79
|
+
size?: number | undefined;
|
|
80
|
+
weight?: number | "normal" | "bold" | undefined;
|
|
81
|
+
style?: "normal" | "italic" | "oblique" | undefined;
|
|
82
|
+
} | undefined;
|
|
83
|
+
}, {
|
|
84
|
+
text: string;
|
|
85
|
+
fill?: string | undefined;
|
|
86
|
+
opacity?: number | undefined;
|
|
87
|
+
font?: {
|
|
88
|
+
family?: string | undefined;
|
|
89
|
+
size?: number | undefined;
|
|
90
|
+
weight?: number | "normal" | "bold" | undefined;
|
|
91
|
+
style?: "normal" | "italic" | "oblique" | undefined;
|
|
92
|
+
} | undefined;
|
|
93
|
+
}>]>, "many">]>;
|
|
94
|
+
/** 文本块 IR 类型(单字符串或多行 LineSpec 数组) */
|
|
95
|
+
export type IRTextBlock = z.infer<typeof TextBlockSchema>;
|
|
96
|
+
//# sourceMappingURL=text.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../src/ir/text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;;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,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAIzB,CAAC;AAEJ,qCAAqC;AACrC,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC"}
|
|
@@ -1,31 +1,19 @@
|
|
|
1
1
|
//#region src/parsers/parseTargetSugar.ts
|
|
2
|
+
/** TikZ 风格相对偏移字面量正则:捕获 `+` / `++` 前缀 + dx / dy 数值 */
|
|
3
|
+
var RELATIVE_OFFSET_RE = /^(\+{1,2})\s*(-?\d+(?:\.\d+)?)\s*,\s*(-?\d+(?:\.\d+)?)$/;
|
|
2
4
|
/**
|
|
3
|
-
* Sugar
|
|
4
|
-
* `'
|
|
5
|
-
* 其它形态(节点 id `'A'` / `'A.north'`、笛卡尔元组、极坐标对象、已经
|
|
6
|
-
* 是 rel/relAccumulate 对象)原样返回。
|
|
7
|
-
*
|
|
8
|
-
* 语法:
|
|
9
|
-
* - `'+<dx>,<dy>'` → `{ rel: [dx, dy] }` (TikZ `+` 语义,不更新 prevEnd)
|
|
10
|
-
* - `'++<dx>,<dy>'` → `{ relAccumulate: [dx, dy] }` (TikZ `++` 语义,累积更新)
|
|
11
|
-
* - `<dx>` / `<dy>`:可带正负号小数,如 `'+1,0'` / `'++1.5,-2.5'` / `'+ -3, 4'`
|
|
12
|
-
*
|
|
13
|
-
* 不匹配的字符串(如 `'A'` / `'A.north'` / `'A.30'`)原样返回——首字母为字母时
|
|
14
|
-
* 不会撞 `+` 前缀;含 `.` 但不含 `,` 的也不撞。
|
|
15
|
-
*
|
|
16
|
-
* 这是纯函数,没有 nodeIndex 依赖,住在 core/parsers,react adapter 与
|
|
17
|
-
* Draw way DSL 共用。
|
|
5
|
+
* Sugar 字符串解析:TikZ 风格相对偏移字面量 → IR 对象
|
|
6
|
+
* @description `'+dx,dy'` → `{relative:[dx,dy]}`(TikZ `+`,不更新 prevEnd);`'++dx,dy'` → `{relativeAccumulate:[dx,dy]}`(TikZ `++`,累积);其他形态(节点 id、笛卡尔 / 极坐标、已是 relative 对象)原样返回。纯函数无 nodeIndex 依赖,react adapter 与 Draw DSL 共用
|
|
18
7
|
*/
|
|
19
|
-
var REL_RE = /^(\+{1,2})\s*(-?\d+(?:\.\d+)?)\s*,\s*(-?\d+(?:\.\d+)?)$/;
|
|
20
8
|
var parseTargetSugar = (input) => {
|
|
21
9
|
if (typeof input !== "string") return input;
|
|
22
|
-
const match = input.match(
|
|
10
|
+
const match = input.match(RELATIVE_OFFSET_RE);
|
|
23
11
|
if (!match) return input;
|
|
24
12
|
const plus = match[1];
|
|
25
13
|
const dx = Number(match[2]);
|
|
26
14
|
const dy = Number(match[3]);
|
|
27
|
-
if (plus === "++") return {
|
|
28
|
-
return {
|
|
15
|
+
if (plus === "++") return { relativeAccumulate: [dx, dy] };
|
|
16
|
+
return { relative: [dx, dy] };
|
|
29
17
|
};
|
|
30
18
|
//#endregion
|
|
31
19
|
exports.parseTargetSugar = parseTargetSugar;
|
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
import { IRTarget } from '../ir';
|
|
2
|
+
/**
|
|
3
|
+
* Sugar 字符串解析:TikZ 风格相对偏移字面量 → IR 对象
|
|
4
|
+
* @description `'+dx,dy'` → `{relative:[dx,dy]}`(TikZ `+`,不更新 prevEnd);`'++dx,dy'` → `{relativeAccumulate:[dx,dy]}`(TikZ `++`,累积);其他形态(节点 id、笛卡尔 / 极坐标、已是 relative 对象)原样返回。纯函数无 nodeIndex 依赖,react adapter 与 Draw DSL 共用
|
|
5
|
+
*/
|
|
2
6
|
export declare const parseTargetSugar: (input: unknown) => IRTarget;
|
|
3
7
|
//# sourceMappingURL=parseTargetSugar.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseTargetSugar.d.ts","sourceRoot":"","sources":["../../../src/parsers/parseTargetSugar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"parseTargetSugar.d.ts","sourceRoot":"","sources":["../../../src/parsers/parseTargetSugar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAKtC;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAAI,OAAO,OAAO,KAAG,QAWjD,CAAC"}
|
|
@@ -1,51 +1,25 @@
|
|
|
1
1
|
const require_parseTargetSugar = require("./parseTargetSugar.cjs");
|
|
2
2
|
//#region src/parsers/parseWay.ts
|
|
3
3
|
/**
|
|
4
|
-
* Sugar 层 way
|
|
5
|
-
*
|
|
6
|
-
* - `DrawWay.Cycle`:闭合到 way 起点(way 元素位置)。**底层字符串故意取得很丑**
|
|
7
|
-
* (`'retikz-keyword_cycle'`),保证不会与任何合理的节点 id 冲突;用户应当
|
|
8
|
-
* 只通过 `DrawWay.Cycle` 引用,不要直接写裸字面量。
|
|
9
|
-
* - `DrawWay.Hv`:折角算子,先水平后垂直(裸字面量 `'-|'`)。
|
|
10
|
-
* - `DrawWay.Vh`:折角算子,先垂直后水平(裸字面量 `'|-'`)。
|
|
11
|
-
* - `DrawWay.Relative` / `DrawWay.Accumulate`:相对偏移 way item 的 `type` 鉴别字段值。
|
|
12
|
-
* 配合 `{ position: [dx, dy], type: DrawWay.Relative | DrawWay.Accumulate }` 用——
|
|
13
|
-
* `Relative` 等价 TikZ `(+x, +y)`(不更新 prevEnd),`Accumulate` 等价 TikZ `(++x, ++y)`
|
|
14
|
-
* (累积更新)。底层字符串同样刻意写丑,保证不撞节点 id;用户只通过常量引用。
|
|
15
|
-
*
|
|
16
|
-
* 折角值(`-|` / `|-`)含特殊字符,与节点 id 不会冲突,因此**保留字面量与
|
|
17
|
-
* 常量两种写法都合法**。way 数组里直接放 `'-|'` 或 `'|-'`(infix 算子)
|
|
18
|
-
* 即把"上一项 → 下一项"那一段改成折角。
|
|
19
|
-
*
|
|
20
|
-
* 这里**故意不用 TS enum**——enum 在数值场景下生成 reverse-mapping 表、
|
|
21
|
-
* 在 string 场景下与字面量类型不互通,而 const + `as const` 的字面量联合
|
|
22
|
-
* 既可枚举也可与字面量字符串无缝混用。
|
|
4
|
+
* Sugar 层 way 数组的关键字常量
|
|
5
|
+
* @description Cycle 闭合到 way 起点(底层字符串故意写丑避节点 id 冲突,只通过 DrawWay.Cycle 引用);Hv/Vh 折角算子(裸字面量 `-|`/`|-` 与常量等价);Relative/Accumulate 相对偏移 way item 的 type 鉴别值(Relative=TikZ `(+x,+y)` 不推进 prevEnd,Accumulate=TikZ `(++x,++y)` 累积更新)。用 const + as const 而非 TS enum 避免 reverse-mapping 与字面量不互通
|
|
23
6
|
*/
|
|
24
7
|
var DrawWay = {
|
|
25
|
-
/**
|
|
26
|
-
* 闭合 way 到起点,等价于 `<Step kind="cycle" />`(TikZ 同名保留字 / SVG `Z`)。
|
|
27
|
-
* 底层字符串值刻意写丑以避开节点 id 冲突;不要硬编码这个字符串。
|
|
28
|
-
*/
|
|
8
|
+
/** 闭合到起点(TikZ `cycle` / SVG `Z`),底层字符串刻意写丑,不要硬编码 */
|
|
29
9
|
Cycle: "retikz-keyword_cycle",
|
|
30
10
|
/** 折角:先水平后垂直(TikZ `-|`) */
|
|
31
11
|
Hv: "-|",
|
|
32
12
|
/** 折角:先垂直后水平(TikZ `|-`) */
|
|
33
13
|
Vh: "|-",
|
|
34
|
-
/**
|
|
35
|
-
* 相对偏移 way item 的 `type` 字段值——非累积分支,等价 TikZ `(+x, +y)`。
|
|
36
|
-
* 解析为 IR `{ rel: position }`,**不**推进 prevEnd;多段链式偏移共享同一锚点。
|
|
37
|
-
*/
|
|
14
|
+
/** 相对偏移 type:非累积(TikZ `(+x,+y)`),不推进 prevEnd */
|
|
38
15
|
Relative: "retikz-keyword_relative",
|
|
39
|
-
/**
|
|
40
|
-
* 相对偏移 way item 的 `type` 字段值——累积分支,等价 TikZ `(++x, ++y)`。
|
|
41
|
-
* 解析为 IR `{ relAccumulate: position }`,每段累积更新 prevEnd。
|
|
42
|
-
*/
|
|
16
|
+
/** 相对偏移 type:累积(TikZ `(++x,++y)`),每段更新 prevEnd */
|
|
43
17
|
Accumulate: "retikz-keyword_accumulate"
|
|
44
18
|
};
|
|
45
19
|
var isWayCycle = (item) => item === DrawWay.Cycle;
|
|
46
20
|
var isWayVia = (item) => item === DrawWay.Hv || item === DrawWay.Vh;
|
|
47
21
|
var isPlainObject = (item) => typeof item === "object" && item !== null && !Array.isArray(item);
|
|
48
|
-
var
|
|
22
|
+
var isWayRelativeItem = (item) => isPlainObject(item) && "position" in item && "type" in item;
|
|
49
23
|
var isWayCurveOp = (item) => isPlainObject(item) && "curve" in item;
|
|
50
24
|
var isWayCubicOp = (item) => isPlainObject(item) && "cubic" in item;
|
|
51
25
|
var isWayBendOp = (item) => isPlainObject(item) && "bend" in item;
|
|
@@ -56,42 +30,26 @@ var isWayEllipseOp = (item) => isPlainObject(item) && "ellipse" in item;
|
|
|
56
30
|
var isWayShapeOp = (item) => isWayArcOp(item) || isWayCircleOp(item) || isWayEllipseOp(item);
|
|
57
31
|
var isWayLabelOp = (item) => isPlainObject(item) && "label" in item;
|
|
58
32
|
var isWayOperator = (item) => isWayCycle(item) || isWayVia(item) || isWayCurveLike(item) || isWayShapeOp(item) || isWayLabelOp(item);
|
|
59
|
-
/** sugar
|
|
33
|
+
/** sugar 字符串/对象 → IR step.label(字符串 = `{text:s}`) */
|
|
60
34
|
var normalizeLabel = (l) => typeof l === "string" ? { text: l } : { ...l };
|
|
61
|
-
/**
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
var desugarRelItem = (item) => {
|
|
66
|
-
if (!isWayRelItem(item)) return item;
|
|
67
|
-
return item.type === DrawWay.Accumulate ? { relAccumulate: item.position } : { rel: item.position };
|
|
35
|
+
/** sugar `{position,type}` → IR `{relative}|{relativeAccumulate}`;其它形态原样返回 */
|
|
36
|
+
var desugarRelativeItem = (item) => {
|
|
37
|
+
if (!isWayRelativeItem(item)) return item;
|
|
38
|
+
return item.type === DrawWay.Accumulate ? { relativeAccumulate: item.position } : { relative: item.position };
|
|
68
39
|
};
|
|
69
|
-
/**
|
|
40
|
+
/** WayItem 归约为"目标点",算子/关键字返回 null */
|
|
70
41
|
var targetOf = (item) => {
|
|
71
42
|
if (isWayOperator(item)) return null;
|
|
72
|
-
return
|
|
43
|
+
return desugarRelativeItem(item);
|
|
73
44
|
};
|
|
74
45
|
/**
|
|
75
|
-
*
|
|
76
|
-
*
|
|
77
|
-
* - 第一个元素始终是 move:取 way[0] 的目标点;若 way[0] 是 cycle / via 算子等
|
|
78
|
-
* 非 target 项,则降级到原点 `[0, 0]`(容错)。
|
|
79
|
-
* - 后续元素:
|
|
80
|
-
* - 普通 target / `WayRelItem` → line
|
|
81
|
-
* - `DrawWay.Cycle` → cycle 步
|
|
82
|
-
* - `'-|'` / `'|-'` → 与**下一项**合并成 fold 步;操作符在 way 末尾或后
|
|
83
|
-
* 接非 target 项时抛错
|
|
84
|
-
* - curve / cubic / bend infix 算子 → 与**下一项**合并成对应 step
|
|
85
|
-
* - arc / circle / ellipse infix 算子 → 单独成 step(不消耗下一项)
|
|
86
|
-
* - `{ label }` infix 算子(ADR-0004)→ 修饰**下一段**——挂在该段的
|
|
87
|
-
* `step.label` 上;连续 label / 末尾 label / cycle 上的 label 均抛错
|
|
88
|
-
*
|
|
89
|
-
* 这是纯函数,住在 core,被各框架 adapter 的 Sugar 组件复用。
|
|
46
|
+
* way 数组 → IRStep 序列
|
|
47
|
+
* @description 首元素始终 move(way[0] 是算子时降级到原点 [0,0]);后续元素按各自规则:target/RelItem→line;Cycle→cycle;-|/|- 与下一项合并 fold;curve/cubic/bend 与下一项合并;arc/circle/ellipse 单独成 step;label 算子修饰下一段。连续 label/末尾 label/cycle 上的 label 抛错。纯函数,各框架 adapter Sugar 组件复用
|
|
90
48
|
*/
|
|
91
49
|
var parseWay = (way) => {
|
|
92
50
|
if (way.length < 2) throw new Error("parseWay: way must contain at least 2 items");
|
|
93
51
|
const out = [];
|
|
94
|
-
/**
|
|
52
|
+
/** 当前未消费的 label 算子结果,下一个产生段的 way item 消耗 */
|
|
95
53
|
let pendingLabel;
|
|
96
54
|
const consumeLabel = () => {
|
|
97
55
|
const l = pendingLabel;
|
|
@@ -129,7 +87,7 @@ var parseWay = (way) => {
|
|
|
129
87
|
type: "step",
|
|
130
88
|
kind: "step",
|
|
131
89
|
via: item,
|
|
132
|
-
to: require_parseTargetSugar.parseTargetSugar(
|
|
90
|
+
to: require_parseTargetSugar.parseTargetSugar(desugarRelativeItem(next))
|
|
133
91
|
};
|
|
134
92
|
const label = consumeLabel();
|
|
135
93
|
if (label) fold.label = label;
|
|
@@ -141,7 +99,7 @@ var parseWay = (way) => {
|
|
|
141
99
|
if (i + 1 >= way.length) throw new Error(`parseWay: curve operator at end of way must be followed by a target`);
|
|
142
100
|
const next = way[i + 1];
|
|
143
101
|
if (isWayOperator(next)) throw new Error(`parseWay: curve operator must be followed by a target, got operator/keyword`);
|
|
144
|
-
const target = require_parseTargetSugar.parseTargetSugar(
|
|
102
|
+
const target = require_parseTargetSugar.parseTargetSugar(desugarRelativeItem(next));
|
|
145
103
|
const label = consumeLabel();
|
|
146
104
|
if (isWayCurveOp(item)) {
|
|
147
105
|
const curve = {
|
|
@@ -211,7 +169,7 @@ var parseWay = (way) => {
|
|
|
211
169
|
const lineStep = {
|
|
212
170
|
type: "step",
|
|
213
171
|
kind: "line",
|
|
214
|
-
to: require_parseTargetSugar.parseTargetSugar(
|
|
172
|
+
to: require_parseTargetSugar.parseTargetSugar(desugarRelativeItem(item))
|
|
215
173
|
};
|
|
216
174
|
const label = consumeLabel();
|
|
217
175
|
if (label) lineStep.label = label;
|
|
@@ -1,98 +1,48 @@
|
|
|
1
1
|
import { IRControlPoint, IRStep, IRStepLabel, IRTarget } from '../ir';
|
|
2
2
|
/**
|
|
3
|
-
* Sugar 层 way
|
|
4
|
-
*
|
|
5
|
-
* - `DrawWay.Cycle`:闭合到 way 起点(way 元素位置)。**底层字符串故意取得很丑**
|
|
6
|
-
* (`'retikz-keyword_cycle'`),保证不会与任何合理的节点 id 冲突;用户应当
|
|
7
|
-
* 只通过 `DrawWay.Cycle` 引用,不要直接写裸字面量。
|
|
8
|
-
* - `DrawWay.Hv`:折角算子,先水平后垂直(裸字面量 `'-|'`)。
|
|
9
|
-
* - `DrawWay.Vh`:折角算子,先垂直后水平(裸字面量 `'|-'`)。
|
|
10
|
-
* - `DrawWay.Relative` / `DrawWay.Accumulate`:相对偏移 way item 的 `type` 鉴别字段值。
|
|
11
|
-
* 配合 `{ position: [dx, dy], type: DrawWay.Relative | DrawWay.Accumulate }` 用——
|
|
12
|
-
* `Relative` 等价 TikZ `(+x, +y)`(不更新 prevEnd),`Accumulate` 等价 TikZ `(++x, ++y)`
|
|
13
|
-
* (累积更新)。底层字符串同样刻意写丑,保证不撞节点 id;用户只通过常量引用。
|
|
14
|
-
*
|
|
15
|
-
* 折角值(`-|` / `|-`)含特殊字符,与节点 id 不会冲突,因此**保留字面量与
|
|
16
|
-
* 常量两种写法都合法**。way 数组里直接放 `'-|'` 或 `'|-'`(infix 算子)
|
|
17
|
-
* 即把"上一项 → 下一项"那一段改成折角。
|
|
18
|
-
*
|
|
19
|
-
* 这里**故意不用 TS enum**——enum 在数值场景下生成 reverse-mapping 表、
|
|
20
|
-
* 在 string 场景下与字面量类型不互通,而 const + `as const` 的字面量联合
|
|
21
|
-
* 既可枚举也可与字面量字符串无缝混用。
|
|
3
|
+
* Sugar 层 way 数组的关键字常量
|
|
4
|
+
* @description Cycle 闭合到 way 起点(底层字符串故意写丑避节点 id 冲突,只通过 DrawWay.Cycle 引用);Hv/Vh 折角算子(裸字面量 `-|`/`|-` 与常量等价);Relative/Accumulate 相对偏移 way item 的 type 鉴别值(Relative=TikZ `(+x,+y)` 不推进 prevEnd,Accumulate=TikZ `(++x,++y)` 累积更新)。用 const + as const 而非 TS enum 避免 reverse-mapping 与字面量不互通
|
|
22
5
|
*/
|
|
23
6
|
export declare const DrawWay: {
|
|
24
|
-
/**
|
|
25
|
-
* 闭合 way 到起点,等价于 `<Step kind="cycle" />`(TikZ 同名保留字 / SVG `Z`)。
|
|
26
|
-
* 底层字符串值刻意写丑以避开节点 id 冲突;不要硬编码这个字符串。
|
|
27
|
-
*/
|
|
7
|
+
/** 闭合到起点(TikZ `cycle` / SVG `Z`),底层字符串刻意写丑,不要硬编码 */
|
|
28
8
|
readonly Cycle: "retikz-keyword_cycle";
|
|
29
9
|
/** 折角:先水平后垂直(TikZ `-|`) */
|
|
30
10
|
readonly Hv: "-|";
|
|
31
11
|
/** 折角:先垂直后水平(TikZ `|-`) */
|
|
32
12
|
readonly Vh: "|-";
|
|
33
|
-
/**
|
|
34
|
-
* 相对偏移 way item 的 `type` 字段值——非累积分支,等价 TikZ `(+x, +y)`。
|
|
35
|
-
* 解析为 IR `{ rel: position }`,**不**推进 prevEnd;多段链式偏移共享同一锚点。
|
|
36
|
-
*/
|
|
13
|
+
/** 相对偏移 type:非累积(TikZ `(+x,+y)`),不推进 prevEnd */
|
|
37
14
|
readonly Relative: "retikz-keyword_relative";
|
|
38
|
-
/**
|
|
39
|
-
* 相对偏移 way item 的 `type` 字段值——累积分支,等价 TikZ `(++x, ++y)`。
|
|
40
|
-
* 解析为 IR `{ relAccumulate: position }`,每段累积更新 prevEnd。
|
|
41
|
-
*/
|
|
15
|
+
/** 相对偏移 type:累积(TikZ `(++x,++y)`),每段更新 prevEnd */
|
|
42
16
|
readonly Accumulate: "retikz-keyword_accumulate";
|
|
43
17
|
};
|
|
44
|
-
/**
|
|
45
|
-
* way 折角算子的字面量类型。`DrawWay.Hv` / `DrawWay.Vh` 与裸字面量等价。
|
|
46
|
-
*/
|
|
18
|
+
/** way 折角算子字面量类型 */
|
|
47
19
|
export type WayVia = typeof DrawWay.Hv | typeof DrawWay.Vh;
|
|
48
|
-
/**
|
|
49
|
-
* way 闭合关键字的字面量类型,由 `DrawWay.Cycle` 派生。
|
|
50
|
-
*/
|
|
20
|
+
/** way 闭合关键字字面量类型 */
|
|
51
21
|
export type WayCycle = typeof DrawWay.Cycle;
|
|
52
22
|
/**
|
|
53
|
-
* 相对偏移 way item(sugar,TS-friendly
|
|
54
|
-
*
|
|
55
|
-
* `type: DrawWay.Accumulate` 累积更新(TikZ `(++x, ++y)`)。
|
|
56
|
-
*
|
|
57
|
-
* 与 sugar 字符串 `'+dx,dy'` / `'++dx,dy'` 等价,但对象形态在编辑器里能直接补全
|
|
58
|
-
* `position` / `type` 字段,TS 也能校验元组与鉴别字段值——更适合 IDE 协作。
|
|
59
|
-
*
|
|
60
|
-
* parseWay 在 sugar 层就地翻译为 IR `{ rel }` / `{ relAccumulate }`;IR 持久化
|
|
61
|
-
* 形态保持纯净,仍是带 `rel` / `relAccumulate` discriminator 的对象。
|
|
23
|
+
* 相对偏移 way item(sugar,TS-friendly),与字符串 `'+dx,dy'`/`'++dx,dy'` 等价
|
|
24
|
+
* @description 以前一 step 终点为基准(首项回退 [0,0]);Relative 不更新 prevEnd,Accumulate 累积更新。对象形态便于 IDE 补全字段;parseWay 在 sugar 层就地翻译为 IR `{relative}`/`{relativeAccumulate}`
|
|
62
25
|
*/
|
|
63
|
-
export type
|
|
26
|
+
export type WayRelativeItem = {
|
|
64
27
|
position: [number, number];
|
|
65
28
|
type: typeof DrawWay.Relative | typeof DrawWay.Accumulate;
|
|
66
29
|
};
|
|
67
|
-
/**
|
|
68
|
-
* 二次贝塞尔算子(infix):与折角算子一样坐落两个 target 之间,把
|
|
69
|
-
* "上一项 → 下一项"那段改成 curve step。`curve` 字段携带控制点 `[x, y]`。
|
|
70
|
-
*/
|
|
30
|
+
/** 二次贝塞尔算子(infix):把"上一项→下一项"段改成 curve step,curve 字段携控制点 */
|
|
71
31
|
export type WayCurveOp = {
|
|
72
32
|
curve: IRControlPoint;
|
|
73
33
|
};
|
|
74
|
-
/**
|
|
75
|
-
* 三次贝塞尔算子(infix):把"上一项 → 下一项"那段改成 cubic step。
|
|
76
|
-
* `cubic` 字段携带两个控制点 `[c1, c2]`。
|
|
77
|
-
*/
|
|
34
|
+
/** 三次贝塞尔算子(infix):cubic step;cubic 字段携两个控制点 */
|
|
78
35
|
export type WayCubicOp = {
|
|
79
36
|
cubic: [IRControlPoint, IRControlPoint];
|
|
80
37
|
};
|
|
81
|
-
/**
|
|
82
|
-
* 弧形简记算子(infix):把"上一项 → 下一项"那段改成 bend step。
|
|
83
|
-
* `bend` 字段是方向 `'left'` / `'right'`;`angle` 可选(缺省 30°)。
|
|
84
|
-
*/
|
|
38
|
+
/** 弧形简记算子(infix):bend step;bend=方向,angle 可选缺省 30° */
|
|
85
39
|
export type WayBendOp = {
|
|
86
40
|
bend: 'left' | 'right';
|
|
87
41
|
angle?: number;
|
|
88
42
|
};
|
|
89
43
|
/**
|
|
90
|
-
* 弧段算子(infix
|
|
91
|
-
*
|
|
92
|
-
*
|
|
93
|
-
* 注意与曲线 / 折角 infix 算子不同:way 数组里 `[..., target, { arc: {...} }, ...]`
|
|
94
|
-
* 时 arc 算子**只**消耗"前一个 target"作为圆心,**不**与"下一项"合并;
|
|
95
|
-
* 后续的 way item 仍按各自规则解析。
|
|
44
|
+
* 弧段算子(infix),以上一项为圆心
|
|
45
|
+
* @description 按起末角度 + 半径画弧;与 curve/fold infix 不同——只消耗前一 target 作圆心,不与下一项合并
|
|
96
46
|
*/
|
|
97
47
|
export type WayArcOp = {
|
|
98
48
|
arc: {
|
|
@@ -101,80 +51,38 @@ export type WayArcOp = {
|
|
|
101
51
|
radius: number;
|
|
102
52
|
};
|
|
103
53
|
};
|
|
104
|
-
/** 整圆算子(infix
|
|
54
|
+
/** 整圆算子(infix),以上一项为圆心、给定半径画整圆,pen 留圆心 */
|
|
105
55
|
export type WayCircleOp = {
|
|
106
56
|
circle: {
|
|
107
57
|
radius: number;
|
|
108
58
|
};
|
|
109
59
|
};
|
|
110
|
-
/** 整椭圆算子(infix
|
|
60
|
+
/** 整椭圆算子(infix),以上一项为圆心、给定 x/y 半径画整椭圆,pen 留圆心 */
|
|
111
61
|
export type WayEllipseOp = {
|
|
112
62
|
ellipse: {
|
|
113
63
|
radiusX: number;
|
|
114
64
|
radiusY: number;
|
|
115
65
|
};
|
|
116
66
|
};
|
|
117
|
-
/**
|
|
118
|
-
* 边标注的 sugar 形态(ADR-0004):
|
|
119
|
-
* - 字符串:等价 `{ text: <string> }`,其它字段走默认(midway / above)
|
|
120
|
-
* - 对象:与 IR `step.label` 字面一致
|
|
121
|
-
*/
|
|
67
|
+
/** 边标注 sugar 形态:字符串=`{text:s}`,对象=IR `step.label` 字面一致 */
|
|
122
68
|
export type WayLabel = IRStepLabel | string;
|
|
123
69
|
/**
|
|
124
|
-
* 边标注 prefix 算子(infix
|
|
125
|
-
*
|
|
126
|
-
* way item 把它消耗到自己的 IR step.label 上。
|
|
127
|
-
*
|
|
128
|
-
* `cycle` 不允许挂 label(schema 已禁),way 中"label op + cycle"的组合会抛错。
|
|
129
|
-
*
|
|
130
|
-
* 多个 label op 不能直接相邻,way 末尾未消费的 label op 同样抛错——保持"标注总有
|
|
131
|
-
* 段可挂"。
|
|
70
|
+
* 边标注 prefix 算子(infix),修饰下一段
|
|
71
|
+
* @description line/fold/curve/cubic/bend/arc/circle/ellipse 都可承载;下一个产生段的 way item 消耗到自己的 step.label 上。cycle 不允许挂 label;连续 label/末尾未消费 label 均抛错
|
|
132
72
|
*/
|
|
133
73
|
export type WayLabelOp = {
|
|
134
74
|
label: WayLabel;
|
|
135
75
|
};
|
|
136
76
|
/**
|
|
137
|
-
* Sugar
|
|
138
|
-
*
|
|
139
|
-
* 接受十二种形态:
|
|
140
|
-
* - 节点 id 字符串:`'A'` → line(首项时为 move)
|
|
141
|
-
* - 笛卡尔坐标:`[x, y]` → line
|
|
142
|
-
* - 极坐标:`{ origin?, angle, radius }` → line
|
|
143
|
-
* - 相对偏移对象(sugar,TS-friendly):`{ position: [dx, dy], type: DrawWay.Relative | DrawWay.Accumulate }`
|
|
144
|
-
* 翻译为 IR `{ rel }` / `{ relAccumulate }`;与裸字符串 `'+dx,dy'` / `'++dx,dy'` 等价
|
|
145
|
-
* - 折角算子:`'-|'` / `'|-'`(或 `DrawWay.Hv` / `DrawWay.Vh`)→ 当前项 +
|
|
146
|
-
* **下一项**合并成一个折角 step(与 TikZ 的 `(A) -| (B)` infix 写法对齐)
|
|
147
|
-
* - 闭合关键字:`DrawWay.Cycle` → cycle(闭合到起点)
|
|
148
|
-
* - 二次贝塞尔算子(infix):`{ curve: [cx, cy] }`,与下一项合并为 curve step
|
|
149
|
-
* - 三次贝塞尔算子(infix):`{ cubic: [[c1x, c1y], [c2x, c2y]] }`,与下一项合并为 cubic step
|
|
150
|
-
* - 弧形简记算子(infix):`{ bend: 'left' | 'right', angle?: number }`,与下一项合并为 bend step
|
|
151
|
-
* - 弧段算子(infix):`{ arc: { startAngle, endAngle, radius } }`,以"上一项"为圆心,**不**消耗下一项
|
|
152
|
-
* - 整圆算子(infix):`{ circle: { radius } }`,以"上一项"为圆心,**不**消耗下一项
|
|
153
|
-
* - 整椭圆算子(infix):`{ ellipse: { radiusX, radiusY } }`,以"上一项"为圆心,**不**消耗下一项
|
|
154
|
-
*
|
|
155
|
-
* 注意:闭合刻意只走 `DrawWay.Cycle`(底层字符串是 `'retikz-keyword_cycle'`),
|
|
156
|
-
* 这样裸字符串 `'cycle'` 仍可作为正常节点 id 使用。相对偏移的 `Relative` /
|
|
157
|
-
* `Accumulate` 同理刻意写丑——避免与节点 id / Position 形态撞结构。
|
|
77
|
+
* Sugar 层 way 数组 DSL 元素(十二种形态)
|
|
78
|
+
* @description 节点 id 字符串/笛卡尔/极坐标 → line(首项 move);`{position,type}` 相对偏移对象 → IR relative/relativeAccumulate;`-|`/`|-` 与下一项合并 fold;DrawWay.Cycle → cycle;curve/cubic/bend infix 与下一项合并;arc/circle/ellipse infix 以上一项为圆心不消耗下一项。Cycle/Relative/Accumulate 底层字符串刻意写丑避节点 id 撞结构
|
|
158
79
|
*/
|
|
159
|
-
export type WayItem = IRTarget |
|
|
160
|
-
/** way DSL 数组:sugar `<Draw way={...}>`
|
|
80
|
+
export type WayItem = IRTarget | WayRelativeItem | WayVia | WayCycle | WayCurveOp | WayCubicOp | WayBendOp | WayArcOp | WayCircleOp | WayEllipseOp | WayLabelOp;
|
|
81
|
+
/** way DSL 数组:sugar `<Draw way={...}>` 输入形态 */
|
|
161
82
|
export type WayDSL = Array<WayItem>;
|
|
162
83
|
/**
|
|
163
|
-
*
|
|
164
|
-
*
|
|
165
|
-
* - 第一个元素始终是 move:取 way[0] 的目标点;若 way[0] 是 cycle / via 算子等
|
|
166
|
-
* 非 target 项,则降级到原点 `[0, 0]`(容错)。
|
|
167
|
-
* - 后续元素:
|
|
168
|
-
* - 普通 target / `WayRelItem` → line
|
|
169
|
-
* - `DrawWay.Cycle` → cycle 步
|
|
170
|
-
* - `'-|'` / `'|-'` → 与**下一项**合并成 fold 步;操作符在 way 末尾或后
|
|
171
|
-
* 接非 target 项时抛错
|
|
172
|
-
* - curve / cubic / bend infix 算子 → 与**下一项**合并成对应 step
|
|
173
|
-
* - arc / circle / ellipse infix 算子 → 单独成 step(不消耗下一项)
|
|
174
|
-
* - `{ label }` infix 算子(ADR-0004)→ 修饰**下一段**——挂在该段的
|
|
175
|
-
* `step.label` 上;连续 label / 末尾 label / cycle 上的 label 均抛错
|
|
176
|
-
*
|
|
177
|
-
* 这是纯函数,住在 core,被各框架 adapter 的 Sugar 组件复用。
|
|
84
|
+
* way 数组 → IRStep 序列
|
|
85
|
+
* @description 首元素始终 move(way[0] 是算子时降级到原点 [0,0]);后续元素按各自规则:target/RelItem→line;Cycle→cycle;-|/|- 与下一项合并 fold;curve/cubic/bend 与下一项合并;arc/circle/ellipse 单独成 step;label 算子修饰下一段。连续 label/末尾 label/cycle 上的 label 抛错。纯函数,各框架 adapter Sugar 组件复用
|
|
178
86
|
*/
|
|
179
87
|
export declare const parseWay: (way: WayDSL) => Array<IRStep>;
|
|
180
88
|
//# sourceMappingURL=parseWay.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseWay.d.ts","sourceRoot":"","sources":["../../../src/parsers/parseWay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,cAAc,EAQd,MAAM,EACN,WAAW,EACX,QAAQ,EACT,MAAM,OAAO,CAAC;AAGf
|
|
1
|
+
{"version":3,"file":"parseWay.d.ts","sourceRoot":"","sources":["../../../src/parsers/parseWay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,cAAc,EAQd,MAAM,EACN,WAAW,EACX,QAAQ,EACT,MAAM,OAAO,CAAC;AAGf;;;GAGG;AACH,eAAO,MAAM,OAAO;IAClB,oDAAoD;;IAEpD,2BAA2B;;IAE3B,2BAA2B;;IAE3B,gDAAgD;;IAEhD,kDAAkD;;CAE1C,CAAC;AAEX,oBAAoB;AACpB,MAAM,MAAM,MAAM,GAAG,OAAO,OAAO,CAAC,EAAE,GAAG,OAAO,OAAO,CAAC,EAAE,CAAC;AAE3D,qBAAqB;AACrB,MAAM,MAAM,QAAQ,GAAG,OAAO,OAAO,CAAC,KAAK,CAAC;AAE5C;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3B,IAAI,EAAE,OAAO,OAAO,CAAC,QAAQ,GAAG,OAAO,OAAO,CAAC,UAAU,CAAC;CAC3D,CAAC;AAEF,2DAA2D;AAC3D,MAAM,MAAM,UAAU,GAAG;IAAE,KAAK,EAAE,cAAc,CAAA;CAAE,CAAC;AAEnD,+CAA+C;AAC/C,MAAM,MAAM,UAAU,GAAG;IAAE,KAAK,EAAE,CAAC,cAAc,EAAE,cAAc,CAAC,CAAA;CAAE,CAAC;AAErE,qDAAqD;AACrD,MAAM,MAAM,SAAS,GAAG;IAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnE;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB,GAAG,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/D,CAAC;AAEF,0CAA0C;AAC1C,MAAM,MAAM,WAAW,GAAG;IAAE,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAEzD,iDAAiD;AACjD,MAAM,MAAM,YAAY,GAAG;IAAE,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAE7E,0DAA0D;AAC1D,MAAM,MAAM,QAAQ,GAAG,WAAW,GAAG,MAAM,CAAC;AAE5C;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG;IAAE,KAAK,EAAE,QAAQ,CAAA;CAAE,CAAC;AAE7C;;;GAGG;AACH,MAAM,MAAM,OAAO,GACf,QAAQ,GACR,eAAe,GACf,MAAM,GACN,QAAQ,GACR,UAAU,GACV,UAAU,GACV,SAAS,GACT,QAAQ,GACR,WAAW,GACX,YAAY,GACZ,UAAU,CAAC;AAEf,+CAA+C;AAC/C,MAAM,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;AAqEpC;;;GAGG;AACH,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM,KAAG,KAAK,CAAC,MAAM,CAmKlD,CAAC"}
|
|
@@ -1,32 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* 旋转走 `rotate` 字段(度数,绕中心);非零时 renderer 用 SVG transform 包裹。
|
|
2
|
+
* 椭圆原语(cx/cy 圆心,rx/ry 半径)
|
|
3
|
+
* @description 圆形(rx=ry)复用同一 prim 单 case 处理;rotate 度数绕中心,非零时由 renderer 在 emit 阶段应用旋转变换
|
|
5
4
|
*/
|
|
6
5
|
export type EllipsePrim = {
|
|
7
|
-
/** 类型判别符 */
|
|
8
6
|
type: 'ellipse';
|
|
9
|
-
/** 中心横坐标 */
|
|
10
7
|
cx: number;
|
|
11
|
-
/** 中心纵坐标 */
|
|
12
8
|
cy: number;
|
|
13
|
-
/** 水平半轴 */
|
|
14
9
|
rx: number;
|
|
15
|
-
/** 垂直半轴 */
|
|
16
10
|
ry: number;
|
|
17
|
-
/**
|
|
11
|
+
/** 绕中心旋转度数 */
|
|
18
12
|
rotate?: number;
|
|
19
|
-
/** 填充色 */
|
|
20
13
|
fill?: string;
|
|
21
14
|
/** 填充透明度 0~1 */
|
|
22
15
|
fillOpacity?: number;
|
|
23
|
-
/** 描边色 */
|
|
24
16
|
stroke?: string;
|
|
25
|
-
/** 描边透明度 0~1
|
|
17
|
+
/** 描边透明度 0~1 */
|
|
26
18
|
strokeOpacity?: number;
|
|
27
|
-
/** 描边宽度 */
|
|
28
19
|
strokeWidth?: number;
|
|
29
|
-
/** SVG stroke-dasharray 模式 */
|
|
30
20
|
strokeDasharray?: string;
|
|
31
21
|
/** 整体透明度 0~1 */
|
|
32
22
|
opacity?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ellipse.d.ts","sourceRoot":"","sources":["../../../src/primitive/ellipse.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"ellipse.d.ts","sourceRoot":"","sources":["../../../src/primitive/ellipse.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,SAAS,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,cAAc;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC"}
|