@retikz/core 0.3.0-alpha.5 → 0.3.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/arrows/define.d.ts +9 -0
- package/dist/es/arrows/define.d.ts.map +1 -0
- package/dist/es/arrows/define.js +10 -0
- package/dist/es/arrows/index.d.ts +3 -1
- package/dist/es/arrows/index.d.ts.map +1 -1
- package/dist/es/arrows/index.js +14 -1
- package/dist/es/arrows/types.d.ts +4 -2
- package/dist/es/arrows/types.d.ts.map +1 -1
- package/dist/es/compile/anchor-cache.d.ts +3 -3
- package/dist/es/compile/anchor-cache.d.ts.map +1 -1
- package/dist/es/compile/anchor-cache.js +18 -5
- package/dist/es/compile/compile.d.ts +5 -14
- package/dist/es/compile/compile.d.ts.map +1 -1
- package/dist/es/compile/compile.js +39 -39
- package/dist/es/compile/{lowerComposites.d.ts → composite.d.ts} +9 -2
- package/dist/es/compile/composite.d.ts.map +1 -0
- package/dist/es/compile/{lowerComposites.js → composite.js} +9 -1
- package/dist/es/compile/constant.d.ts +32 -0
- package/dist/es/compile/constant.d.ts.map +1 -0
- package/dist/es/compile/constant.js +23 -0
- package/dist/es/compile/direction.d.ts +27 -0
- package/dist/es/compile/direction.d.ts.map +1 -0
- package/dist/es/compile/direction.js +30 -0
- package/dist/es/compile/index.d.ts +3 -1
- package/dist/es/compile/index.d.ts.map +1 -1
- package/dist/es/compile/name-stack.d.ts +3 -1
- package/dist/es/compile/name-stack.d.ts.map +1 -1
- package/dist/es/compile/name-stack.js +5 -1
- package/dist/es/compile/node.d.ts +18 -7
- package/dist/es/compile/node.d.ts.map +1 -1
- package/dist/es/compile/node.js +39 -63
- package/dist/es/compile/paint.js +1 -1
- package/dist/es/compile/path/anchor.d.ts +4 -3
- package/dist/es/compile/path/anchor.d.ts.map +1 -1
- package/dist/es/compile/path/anchor.js +9 -12
- package/dist/es/compile/path/index.d.ts +6 -8
- package/dist/es/compile/path/index.d.ts.map +1 -1
- package/dist/es/compile/path/index.js +57 -34
- package/dist/es/compile/path/relative.d.ts +1 -1
- package/dist/es/compile/path/relative.js +1 -1
- package/dist/es/compile/path/shrink.d.ts +3 -1
- package/dist/es/compile/path/shrink.d.ts.map +1 -1
- package/dist/es/compile/path/shrink.js +16 -11
- package/dist/es/compile/position.d.ts +2 -2
- package/dist/es/compile/position.d.ts.map +1 -1
- package/dist/es/compile/position.js +6 -19
- package/dist/es/compile/precision.d.ts +1 -1
- package/dist/es/compile/precision.d.ts.map +1 -1
- package/dist/es/compile/precision.js +2 -2
- package/dist/es/compile/scope.d.ts +7 -5
- package/dist/es/compile/scope.d.ts.map +1 -1
- package/dist/es/compile/scope.js +29 -13
- package/dist/es/compile/style.d.ts +2 -2
- package/dist/es/compile/style.d.ts.map +1 -1
- package/dist/es/compile/style.js +2 -2
- package/dist/es/composites/define.d.ts +8 -0
- package/dist/es/composites/define.d.ts.map +1 -0
- package/dist/es/composites/{types.js → define.js} +2 -2
- package/dist/es/composites/index.d.ts +1 -1
- package/dist/es/composites/index.d.ts.map +1 -1
- package/dist/es/composites/types.d.ts +0 -6
- package/dist/es/composites/types.d.ts.map +1 -1
- package/dist/es/geometry/anchor.d.ts +33 -0
- package/dist/es/geometry/anchor.d.ts.map +1 -0
- package/dist/es/geometry/anchor.js +45 -0
- package/dist/es/geometry/bend.d.ts +1 -1
- package/dist/es/geometry/bend.js +2 -2
- package/dist/es/geometry/circle.d.ts +4 -4
- package/dist/es/geometry/circle.d.ts.map +1 -1
- package/dist/es/geometry/circle.js +3 -3
- package/dist/es/geometry/{roundedContour.d.ts → contour.d.ts} +4 -5
- package/dist/es/geometry/contour.d.ts.map +1 -0
- package/dist/es/geometry/{roundedContour.js → contour.js} +22 -34
- package/dist/es/geometry/diamond.d.ts +3 -3
- package/dist/es/geometry/diamond.d.ts.map +1 -1
- package/dist/es/geometry/diamond.js +2 -2
- package/dist/{lib/geometry/_edge.d.ts → es/geometry/edge.d.ts} +1 -1
- package/dist/es/geometry/edge.d.ts.map +1 -0
- package/dist/es/geometry/{_edge.js → edge.js} +1 -1
- package/dist/es/geometry/ellipse.d.ts +3 -3
- package/dist/es/geometry/ellipse.d.ts.map +1 -1
- package/dist/es/geometry/ellipse.js +2 -2
- package/dist/es/geometry/index.d.ts +2 -1
- package/dist/es/geometry/index.d.ts.map +1 -1
- package/dist/es/geometry/point.d.ts +6 -0
- package/dist/es/geometry/point.d.ts.map +1 -1
- package/dist/es/geometry/point.js +17 -0
- package/dist/es/geometry/rect.d.ts +4 -17
- package/dist/es/geometry/rect.d.ts.map +1 -1
- package/dist/es/geometry/rect.js +4 -16
- package/dist/es/geometry/segment.d.ts.map +1 -1
- package/dist/es/geometry/segment.js +25 -47
- package/dist/{lib/geometry/_transform.d.ts → es/geometry/transform.d.ts} +1 -1
- package/dist/es/geometry/transform.d.ts.map +1 -0
- package/dist/es/geometry/{_transform.js → transform.js} +1 -1
- package/dist/es/index.d.ts +11 -11
- package/dist/es/index.d.ts.map +1 -1
- package/dist/es/index.js +17 -14
- package/dist/es/ir/animation.d.ts +6 -5
- package/dist/es/ir/animation.d.ts.map +1 -1
- package/dist/es/ir/boundary.d.ts +1 -1
- package/dist/es/ir/boundary.d.ts.map +1 -1
- package/dist/es/ir/coordinate.d.ts +8 -8
- package/dist/es/ir/node.d.ts +73 -72
- package/dist/es/ir/node.d.ts.map +1 -1
- package/dist/es/ir/node.js +23 -23
- package/dist/es/ir/paint.d.ts +19 -18
- package/dist/es/ir/paint.d.ts.map +1 -1
- package/dist/es/ir/paint.js +10 -10
- package/dist/es/ir/path/arrow.d.ts +15 -14
- package/dist/es/ir/path/arrow.d.ts.map +1 -1
- package/dist/es/ir/path/arrow.js +18 -16
- package/dist/es/ir/path/path.d.ts +893 -152
- package/dist/es/ir/path/path.d.ts.map +1 -1
- package/dist/es/ir/path/path.js +1 -1
- package/dist/es/ir/path/step.d.ts +932 -20
- package/dist/es/ir/path/step.d.ts.map +1 -1
- package/dist/es/ir/path/step.js +73 -22
- package/dist/es/ir/path/target.js +3 -3
- package/dist/es/ir/position/at-position.d.ts +18 -18
- package/dist/es/ir/position/at-position.d.ts.map +1 -1
- package/dist/es/ir/position/at-position.js +11 -11
- package/dist/es/ir/scope.d.ts +2559 -1057
- package/dist/es/ir/scope.d.ts.map +1 -1
- package/dist/es/ir/scope.js +5 -5
- package/dist/es/ir/transform.d.ts +44 -17
- package/dist/es/ir/transform.d.ts.map +1 -1
- package/dist/es/ir/transform.js +10 -3
- package/dist/es/parsers/index.d.ts +3 -3
- package/dist/es/parsers/index.d.ts.map +1 -1
- package/dist/es/parsers/{parseNodeTarget.d.ts → node-target.d.ts} +1 -1
- package/dist/es/parsers/node-target.d.ts.map +1 -0
- package/dist/es/parsers/{parseNodeTarget.js → node-target.js} +10 -8
- package/dist/{lib/parsers/parseTargetSugar.d.ts → es/parsers/target-sugar.d.ts} +1 -1
- package/dist/es/parsers/target-sugar.d.ts.map +1 -0
- package/dist/es/parsers/{parseTargetSugar.js → target-sugar.js} +9 -4
- package/dist/{lib/parsers/parseWay.d.ts → es/parsers/way.d.ts} +1 -1
- package/dist/es/parsers/way.d.ts.map +1 -0
- package/dist/es/parsers/{parseWay.js → way.js} +9 -5
- package/dist/es/path-generators/define.d.ts.map +1 -0
- package/dist/es/{pathGenerators → path-generators}/define.js +1 -1
- package/dist/es/path-generators/index.d.ts.map +1 -0
- package/dist/es/path-generators/types.d.ts.map +1 -0
- package/dist/es/patterns/define.d.ts +9 -0
- package/dist/es/patterns/define.d.ts.map +1 -0
- package/dist/es/patterns/define.js +10 -0
- package/dist/es/patterns/index.d.ts +1 -0
- package/dist/es/patterns/index.d.ts.map +1 -1
- package/dist/es/patterns/index.js +42 -35
- package/dist/es/presets/animation.js +2 -2
- package/dist/es/primitive/marker.d.ts +1 -1
- package/dist/es/primitive/paint.d.ts +1 -1
- package/dist/es/primitive/path.d.ts +1 -1
- package/dist/es/shapes/arc.js +2 -2
- package/dist/{lib/shapes/_contour.d.ts → es/shapes/contour.d.ts} +6 -3
- package/dist/es/shapes/contour.d.ts.map +1 -0
- package/dist/es/shapes/{_contour.js → contour.js} +14 -2
- package/dist/es/shapes/ellipse.js +2 -2
- package/dist/es/shapes/index.d.ts +1 -1
- package/dist/es/shapes/index.d.ts.map +1 -1
- package/dist/es/shapes/index.js +1 -1
- package/dist/es/shapes/polygon.d.ts +1 -1
- package/dist/es/shapes/polygon.d.ts.map +1 -1
- package/dist/es/shapes/polygon.js +26 -21
- package/dist/es/shapes/rectangle.js +5 -5
- package/dist/es/shapes/sector.d.ts.map +1 -1
- package/dist/es/shapes/sector.js +30 -22
- package/dist/es/shapes/{_shared.d.ts → shared.d.ts} +4 -8
- package/dist/es/shapes/shared.d.ts.map +1 -0
- package/dist/es/shapes/{_shared.js → shared.js} +8 -12
- package/dist/es/shapes/star.d.ts.map +1 -1
- package/dist/es/shapes/star.js +4 -14
- package/dist/lib/arrows/define.cjs +10 -0
- package/dist/lib/arrows/define.d.ts +9 -0
- package/dist/lib/arrows/define.d.ts.map +1 -0
- package/dist/lib/arrows/index.cjs +14 -1
- package/dist/lib/arrows/index.d.ts +3 -1
- package/dist/lib/arrows/index.d.ts.map +1 -1
- package/dist/lib/arrows/types.d.ts +4 -2
- package/dist/lib/arrows/types.d.ts.map +1 -1
- package/dist/lib/compile/anchor-cache.cjs +17 -4
- package/dist/lib/compile/anchor-cache.d.ts +3 -3
- package/dist/lib/compile/anchor-cache.d.ts.map +1 -1
- package/dist/lib/compile/compile.cjs +37 -37
- package/dist/lib/compile/compile.d.ts +5 -14
- package/dist/lib/compile/compile.d.ts.map +1 -1
- package/dist/lib/compile/{lowerComposites.cjs → composite.cjs} +9 -1
- package/dist/lib/compile/{lowerComposites.d.ts → composite.d.ts} +9 -2
- package/dist/lib/compile/composite.d.ts.map +1 -0
- package/dist/lib/compile/constant.cjs +24 -0
- package/dist/lib/compile/constant.d.ts +32 -0
- package/dist/lib/compile/constant.d.ts.map +1 -0
- package/dist/lib/compile/direction.cjs +31 -0
- package/dist/lib/compile/direction.d.ts +27 -0
- package/dist/lib/compile/direction.d.ts.map +1 -0
- package/dist/lib/compile/index.d.ts +3 -1
- package/dist/lib/compile/index.d.ts.map +1 -1
- package/dist/lib/compile/name-stack.cjs +5 -1
- package/dist/lib/compile/name-stack.d.ts +3 -1
- package/dist/lib/compile/name-stack.d.ts.map +1 -1
- package/dist/lib/compile/node.cjs +39 -62
- package/dist/lib/compile/node.d.ts +18 -7
- package/dist/lib/compile/node.d.ts.map +1 -1
- package/dist/lib/compile/paint.cjs +1 -1
- package/dist/lib/compile/path/anchor.cjs +10 -12
- package/dist/lib/compile/path/anchor.d.ts +4 -3
- package/dist/lib/compile/path/anchor.d.ts.map +1 -1
- package/dist/lib/compile/path/index.cjs +56 -33
- package/dist/lib/compile/path/index.d.ts +6 -8
- package/dist/lib/compile/path/index.d.ts.map +1 -1
- package/dist/lib/compile/path/relative.cjs +1 -1
- package/dist/lib/compile/path/relative.d.ts +1 -1
- package/dist/lib/compile/path/shrink.cjs +16 -11
- package/dist/lib/compile/path/shrink.d.ts +3 -1
- package/dist/lib/compile/path/shrink.d.ts.map +1 -1
- package/dist/lib/compile/position.cjs +6 -19
- package/dist/lib/compile/position.d.ts +2 -2
- package/dist/lib/compile/position.d.ts.map +1 -1
- package/dist/lib/compile/precision.cjs +2 -2
- package/dist/lib/compile/precision.d.ts +1 -1
- package/dist/lib/compile/precision.d.ts.map +1 -1
- package/dist/lib/compile/scope.cjs +29 -13
- package/dist/lib/compile/scope.d.ts +7 -5
- package/dist/lib/compile/scope.d.ts.map +1 -1
- package/dist/lib/compile/style.cjs +2 -2
- package/dist/lib/compile/style.d.ts +2 -2
- package/dist/lib/compile/style.d.ts.map +1 -1
- package/dist/lib/composites/{types.cjs → define.cjs} +2 -2
- package/dist/lib/composites/define.d.ts +8 -0
- package/dist/lib/composites/define.d.ts.map +1 -0
- package/dist/lib/composites/index.d.ts +1 -1
- package/dist/lib/composites/index.d.ts.map +1 -1
- package/dist/lib/composites/types.d.ts +0 -6
- package/dist/lib/composites/types.d.ts.map +1 -1
- package/dist/lib/geometry/anchor.cjs +47 -0
- package/dist/lib/geometry/anchor.d.ts +33 -0
- package/dist/lib/geometry/anchor.d.ts.map +1 -0
- package/dist/lib/geometry/bend.cjs +2 -2
- package/dist/lib/geometry/bend.d.ts +1 -1
- package/dist/lib/geometry/circle.cjs +9 -9
- package/dist/lib/geometry/circle.d.ts +4 -4
- package/dist/lib/geometry/circle.d.ts.map +1 -1
- package/dist/lib/geometry/{roundedContour.cjs → contour.cjs} +21 -32
- package/dist/lib/geometry/{roundedContour.d.ts → contour.d.ts} +4 -5
- package/dist/lib/geometry/contour.d.ts.map +1 -0
- package/dist/lib/geometry/diamond.cjs +7 -7
- package/dist/lib/geometry/diamond.d.ts +3 -3
- package/dist/lib/geometry/diamond.d.ts.map +1 -1
- package/dist/lib/geometry/{_edge.cjs → edge.cjs} +1 -1
- package/dist/{es/geometry/_edge.d.ts → lib/geometry/edge.d.ts} +1 -1
- package/dist/lib/geometry/edge.d.ts.map +1 -0
- package/dist/lib/geometry/ellipse.cjs +8 -8
- package/dist/lib/geometry/ellipse.d.ts +3 -3
- package/dist/lib/geometry/ellipse.d.ts.map +1 -1
- package/dist/lib/geometry/index.d.ts +2 -1
- package/dist/lib/geometry/index.d.ts.map +1 -1
- package/dist/lib/geometry/point.cjs +17 -0
- package/dist/lib/geometry/point.d.ts +6 -0
- package/dist/lib/geometry/point.d.ts.map +1 -1
- package/dist/lib/geometry/rect.cjs +9 -22
- package/dist/lib/geometry/rect.d.ts +4 -17
- package/dist/lib/geometry/rect.d.ts.map +1 -1
- package/dist/lib/geometry/segment.cjs +25 -47
- package/dist/lib/geometry/segment.d.ts.map +1 -1
- package/dist/lib/geometry/{_transform.cjs → transform.cjs} +1 -1
- package/dist/{es/geometry/_transform.d.ts → lib/geometry/transform.d.ts} +1 -1
- package/dist/lib/geometry/transform.d.ts.map +1 -0
- package/dist/lib/index.cjs +29 -22
- package/dist/lib/index.d.ts +11 -11
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/ir/animation.d.ts +6 -5
- package/dist/lib/ir/animation.d.ts.map +1 -1
- package/dist/lib/ir/boundary.d.ts +1 -1
- package/dist/lib/ir/boundary.d.ts.map +1 -1
- package/dist/lib/ir/coordinate.d.ts +8 -8
- package/dist/lib/ir/node.cjs +23 -23
- package/dist/lib/ir/node.d.ts +73 -72
- package/dist/lib/ir/node.d.ts.map +1 -1
- package/dist/lib/ir/paint.cjs +10 -10
- package/dist/lib/ir/paint.d.ts +19 -18
- package/dist/lib/ir/paint.d.ts.map +1 -1
- package/dist/lib/ir/path/arrow.cjs +18 -16
- package/dist/lib/ir/path/arrow.d.ts +15 -14
- 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 +893 -152
- package/dist/lib/ir/path/path.d.ts.map +1 -1
- package/dist/lib/ir/path/step.cjs +73 -21
- package/dist/lib/ir/path/step.d.ts +932 -20
- package/dist/lib/ir/path/step.d.ts.map +1 -1
- package/dist/lib/ir/path/target.cjs +3 -3
- package/dist/lib/ir/position/at-position.cjs +11 -11
- package/dist/lib/ir/position/at-position.d.ts +18 -18
- package/dist/lib/ir/position/at-position.d.ts.map +1 -1
- package/dist/lib/ir/scope.cjs +5 -5
- package/dist/lib/ir/scope.d.ts +2559 -1057
- package/dist/lib/ir/scope.d.ts.map +1 -1
- package/dist/lib/ir/transform.cjs +9 -2
- package/dist/lib/ir/transform.d.ts +44 -17
- package/dist/lib/ir/transform.d.ts.map +1 -1
- package/dist/lib/parsers/index.d.ts +3 -3
- package/dist/lib/parsers/index.d.ts.map +1 -1
- package/dist/lib/parsers/{parseNodeTarget.cjs → node-target.cjs} +10 -8
- package/dist/lib/parsers/{parseNodeTarget.d.ts → node-target.d.ts} +1 -1
- package/dist/lib/parsers/node-target.d.ts.map +1 -0
- package/dist/lib/parsers/{parseTargetSugar.cjs → target-sugar.cjs} +9 -4
- package/dist/{es/parsers/parseTargetSugar.d.ts → lib/parsers/target-sugar.d.ts} +1 -1
- package/dist/lib/parsers/target-sugar.d.ts.map +1 -0
- package/dist/lib/parsers/{parseWay.cjs → way.cjs} +12 -8
- package/dist/{es/parsers/parseWay.d.ts → lib/parsers/way.d.ts} +1 -1
- package/dist/lib/parsers/way.d.ts.map +1 -0
- package/dist/lib/{pathGenerators → path-generators}/define.cjs +1 -1
- package/dist/lib/path-generators/define.d.ts.map +1 -0
- package/dist/lib/path-generators/index.d.ts.map +1 -0
- package/dist/lib/path-generators/types.d.ts.map +1 -0
- package/dist/lib/patterns/define.cjs +10 -0
- package/dist/lib/patterns/define.d.ts +9 -0
- package/dist/lib/patterns/define.d.ts.map +1 -0
- package/dist/lib/patterns/index.cjs +42 -35
- package/dist/lib/patterns/index.d.ts +1 -0
- package/dist/lib/patterns/index.d.ts.map +1 -1
- package/dist/lib/presets/animation.cjs +2 -2
- package/dist/lib/primitive/marker.d.ts +1 -1
- package/dist/lib/primitive/paint.d.ts +1 -1
- package/dist/lib/primitive/path.d.ts +1 -1
- package/dist/lib/shapes/arc.cjs +4 -4
- package/dist/lib/shapes/{_contour.cjs → contour.cjs} +14 -1
- package/dist/{es/shapes/_contour.d.ts → lib/shapes/contour.d.ts} +6 -3
- package/dist/lib/shapes/contour.d.ts.map +1 -0
- package/dist/lib/shapes/ellipse.cjs +2 -2
- package/dist/lib/shapes/index.cjs +1 -1
- package/dist/lib/shapes/index.d.ts +1 -1
- package/dist/lib/shapes/index.d.ts.map +1 -1
- package/dist/lib/shapes/polygon.cjs +29 -24
- package/dist/lib/shapes/polygon.d.ts +1 -1
- package/dist/lib/shapes/polygon.d.ts.map +1 -1
- package/dist/lib/shapes/rectangle.cjs +11 -11
- package/dist/lib/shapes/sector.cjs +41 -33
- package/dist/lib/shapes/sector.d.ts.map +1 -1
- package/dist/lib/shapes/{_shared.cjs → shared.cjs} +7 -12
- package/dist/lib/shapes/{_shared.d.ts → shared.d.ts} +4 -8
- package/dist/lib/shapes/shared.d.ts.map +1 -0
- package/dist/lib/shapes/star.cjs +7 -17
- package/dist/lib/shapes/star.d.ts.map +1 -1
- package/package.json +2 -3
- package/dist/es/compile/lowerComposites.d.ts.map +0 -1
- package/dist/es/geometry/_edge.d.ts.map +0 -1
- package/dist/es/geometry/_transform.d.ts.map +0 -1
- package/dist/es/geometry/roundedContour.d.ts.map +0 -1
- package/dist/es/parsers/parseNodeTarget.d.ts.map +0 -1
- package/dist/es/parsers/parseTargetSugar.d.ts.map +0 -1
- package/dist/es/parsers/parseWay.d.ts.map +0 -1
- package/dist/es/pathGenerators/define.d.ts.map +0 -1
- package/dist/es/pathGenerators/index.d.ts.map +0 -1
- package/dist/es/pathGenerators/types.d.ts.map +0 -1
- package/dist/es/shapes/_contour.d.ts.map +0 -1
- package/dist/es/shapes/_shared.d.ts.map +0 -1
- package/dist/lib/compile/lowerComposites.d.ts.map +0 -1
- package/dist/lib/geometry/_edge.d.ts.map +0 -1
- package/dist/lib/geometry/_transform.d.ts.map +0 -1
- package/dist/lib/geometry/roundedContour.d.ts.map +0 -1
- package/dist/lib/parsers/parseNodeTarget.d.ts.map +0 -1
- package/dist/lib/parsers/parseTargetSugar.d.ts.map +0 -1
- package/dist/lib/parsers/parseWay.d.ts.map +0 -1
- package/dist/lib/pathGenerators/define.d.ts.map +0 -1
- package/dist/lib/pathGenerators/index.d.ts.map +0 -1
- package/dist/lib/pathGenerators/types.d.ts.map +0 -1
- package/dist/lib/shapes/_contour.d.ts.map +0 -1
- package/dist/lib/shapes/_shared.d.ts.map +0 -1
- /package/dist/es/{pathGenerators → path-generators}/define.d.ts +0 -0
- /package/dist/es/{pathGenerators → path-generators}/index.d.ts +0 -0
- /package/dist/es/{pathGenerators → path-generators}/types.d.ts +0 -0
- /package/dist/lib/{pathGenerators → path-generators}/define.d.ts +0 -0
- /package/dist/lib/{pathGenerators → path-generators}/index.d.ts +0 -0
- /package/dist/lib/{pathGenerators → path-generators}/types.d.ts +0 -0
|
@@ -2,6 +2,7 @@ const require_json = require("../../ir/json.cjs");
|
|
|
2
2
|
const require_rect = require("../../geometry/rect.cjs");
|
|
3
3
|
const require_arc = require("../../geometry/arc.cjs");
|
|
4
4
|
const require_index = require("../../arrows/index.cjs");
|
|
5
|
+
const require_constant = require("../constant.cjs");
|
|
5
6
|
const require_scope = require("../scope.cjs");
|
|
6
7
|
const require_bend = require("../../geometry/bend.cjs");
|
|
7
8
|
const require_segment = require("../../geometry/segment.cjs");
|
|
@@ -65,7 +66,7 @@ var assertValidGeneratedCommand = (name, cmd) => {
|
|
|
65
66
|
/**
|
|
66
67
|
* 语义 stroke 档位 → 数值(user units)
|
|
67
68
|
* @description 对齐 TikZ 比例(thin=0.4pt→1=默认 strokeWidth):ultraThin 0.25、veryThin 0.5、thin 1、semithick 1.5、thick 2、veryThick 3、ultraThick 4。显式 strokeWidth 覆盖 thickness。
|
|
68
|
-
* `as const satisfies` + `AssertEqual` 双约束:加 IRPath['thickness'] 档位时漏写 TS
|
|
69
|
+
* `as const satisfies` + `AssertEqual` 双约束:加 IRPath['thickness'] 档位时漏写 TS 报错(字段表互锁)
|
|
69
70
|
*/
|
|
70
71
|
var THICKNESS_TO_WIDTH = {
|
|
71
72
|
ultraThin: .25,
|
|
@@ -181,7 +182,7 @@ var emitPathPrimitive = (path, nameStack, round, measureText = require_text_metr
|
|
|
181
182
|
const steps = require_relative.normalizeRelativeTargets(path.children, nameStack, scopeChain);
|
|
182
183
|
const soloSelfContained = steps.length === 1 && steps[0].kind === "rectangle";
|
|
183
184
|
if (steps.length < 2 && !soloSelfContained) {
|
|
184
|
-
warn(
|
|
185
|
+
warn(require_constant.CompileWarningCode.PathTooShort, `Path requires at least 2 steps (got ${steps.length}); the entire path is skipped`, "children");
|
|
185
186
|
return null;
|
|
186
187
|
}
|
|
187
188
|
/** 每段 step.label 翻译出的 TextPrim(或 sloped 旋转的 group),与 path 主体同级返回 */
|
|
@@ -206,7 +207,7 @@ var emitPathPrimitive = (path, nameStack, round, measureText = require_text_metr
|
|
|
206
207
|
if (!hasTo(s)) return null;
|
|
207
208
|
const ref = require_anchor.refPointOfTarget(s.to, nameStack, scopeChain);
|
|
208
209
|
const toId = nodeRefId(s.to);
|
|
209
|
-
if (!ref && toId !== void 0) warn(
|
|
210
|
+
if (!ref && toId !== void 0) warn(require_constant.CompileWarningCode.UnresolvedNodeReference, `Step.to references undefined node id '${toId}'; the entire path is skipped`, `children[${idx}].to`);
|
|
210
211
|
return ref;
|
|
211
212
|
});
|
|
212
213
|
/**
|
|
@@ -244,7 +245,16 @@ var emitPathPrimitive = (path, nameStack, round, measureText = require_text_metr
|
|
|
244
245
|
*/
|
|
245
246
|
const readCursor = () => lastEnd;
|
|
246
247
|
const roundPoint = (p) => [round(p[0]), round(p[1])];
|
|
247
|
-
const
|
|
248
|
+
const endpointSource = {
|
|
249
|
+
firstAutoBoundary: false,
|
|
250
|
+
lastAutoBoundary: false
|
|
251
|
+
};
|
|
252
|
+
const noteEndpointSource = (sourceAutoBoundary) => {
|
|
253
|
+
if (commands.length === 0) endpointSource.firstAutoBoundary = sourceAutoBoundary;
|
|
254
|
+
endpointSource.lastAutoBoundary = sourceAutoBoundary;
|
|
255
|
+
};
|
|
256
|
+
const emitMove = (p, sourceAutoBoundary = false) => {
|
|
257
|
+
noteEndpointSource(sourceAutoBoundary);
|
|
248
258
|
const rp = roundPoint(p);
|
|
249
259
|
commands.push({
|
|
250
260
|
kind: "move",
|
|
@@ -254,7 +264,8 @@ var emitPathPrimitive = (path, nameStack, round, measureText = require_text_metr
|
|
|
254
264
|
subPathStart = p;
|
|
255
265
|
lastEnd = p;
|
|
256
266
|
};
|
|
257
|
-
const emitLine = (p) => {
|
|
267
|
+
const emitLine = (p, sourceAutoBoundary = false) => {
|
|
268
|
+
noteEndpointSource(sourceAutoBoundary);
|
|
258
269
|
const rp = roundPoint(p);
|
|
259
270
|
commands.push({
|
|
260
271
|
kind: "line",
|
|
@@ -267,7 +278,8 @@ var emitPathPrimitive = (path, nameStack, round, measureText = require_text_metr
|
|
|
267
278
|
commands.push({ kind: "close" });
|
|
268
279
|
lastEnd = subPathStart;
|
|
269
280
|
};
|
|
270
|
-
const emitQuad = (control, p) => {
|
|
281
|
+
const emitQuad = (control, p, sourceAutoBoundary = false) => {
|
|
282
|
+
noteEndpointSource(sourceAutoBoundary);
|
|
271
283
|
const rc = roundPoint(control);
|
|
272
284
|
const rp = roundPoint(p);
|
|
273
285
|
commands.push({
|
|
@@ -279,7 +291,8 @@ var emitPathPrimitive = (path, nameStack, round, measureText = require_text_metr
|
|
|
279
291
|
points.push(p);
|
|
280
292
|
lastEnd = p;
|
|
281
293
|
};
|
|
282
|
-
const emitCubic = (c1, c2, p) => {
|
|
294
|
+
const emitCubic = (c1, c2, p, sourceAutoBoundary = false) => {
|
|
295
|
+
noteEndpointSource(sourceAutoBoundary);
|
|
283
296
|
const rc1 = roundPoint(c1);
|
|
284
297
|
const rc2 = roundPoint(c2);
|
|
285
298
|
const rp = roundPoint(p);
|
|
@@ -295,6 +308,7 @@ var emitPathPrimitive = (path, nameStack, round, measureText = require_text_metr
|
|
|
295
308
|
lastEnd = p;
|
|
296
309
|
};
|
|
297
310
|
const emitArc = (center, radius, startAngle, endAngle) => {
|
|
311
|
+
noteEndpointSource(false);
|
|
298
312
|
const rc = roundPoint(center);
|
|
299
313
|
commands.push({
|
|
300
314
|
kind: "arc",
|
|
@@ -307,6 +321,7 @@ var emitPathPrimitive = (path, nameStack, round, measureText = require_text_metr
|
|
|
307
321
|
lastEnd = require_arc.arcEndPoint(center, radius, endAngle);
|
|
308
322
|
};
|
|
309
323
|
const emitEllipseArc = (center, radiusX, radiusY, startAngle, endAngle) => {
|
|
324
|
+
noteEndpointSource(false);
|
|
310
325
|
const rc = roundPoint(center);
|
|
311
326
|
commands.push({
|
|
312
327
|
kind: "ellipseArc",
|
|
@@ -321,9 +336,9 @@ var emitPathPrimitive = (path, nameStack, round, measureText = require_text_metr
|
|
|
321
336
|
lastEnd = endPt;
|
|
322
337
|
};
|
|
323
338
|
/** 段起点:与 lastEnd 相同则复用 cursor(省 move),否则发 move */
|
|
324
|
-
const startSegment = (p) => {
|
|
339
|
+
const startSegment = (p, sourceAutoBoundary = false) => {
|
|
325
340
|
if (require_anchor.samePoint(p, lastEnd)) return;
|
|
326
|
-
emitMove(p);
|
|
341
|
+
emitMove(p, sourceAutoBoundary);
|
|
327
342
|
};
|
|
328
343
|
/** 部分圆/椭圆的闭合模式:'open' 直接返回;'sector' 连回中心;缺省 / 误给 'closed' 回退 'chord' */
|
|
329
344
|
const resolvePartialClosed = (closed, idx) => {
|
|
@@ -339,7 +354,10 @@ var emitPathPrimitive = (path, nameStack, round, measureText = require_text_metr
|
|
|
339
354
|
if (prevStep.kind === "move") lastMoveTo = prevStep.to;
|
|
340
355
|
}
|
|
341
356
|
const step = steps[i];
|
|
342
|
-
if (step.kind === "move")
|
|
357
|
+
if (step.kind === "move") {
|
|
358
|
+
penOverride = null;
|
|
359
|
+
continue;
|
|
360
|
+
}
|
|
343
361
|
if (step.kind === "generator") {
|
|
344
362
|
const generators = warnHook.effectivePathGenerators ?? {};
|
|
345
363
|
const def = Object.prototype.hasOwnProperty.call(generators, step.name) ? generators[step.name] : void 0;
|
|
@@ -407,20 +425,22 @@ var emitPathPrimitive = (path, nameStack, round, measureText = require_text_metr
|
|
|
407
425
|
continue;
|
|
408
426
|
}
|
|
409
427
|
if (step.kind === "cycle") {
|
|
428
|
+
const usedOverride = penOverride;
|
|
429
|
+
penOverride = null;
|
|
410
430
|
const moveTo = lastMoveTo;
|
|
411
431
|
const prev = findPrev();
|
|
412
|
-
if (!moveTo || !prev) continue;
|
|
432
|
+
if (!moveTo || !prev && !usedOverride) continue;
|
|
413
433
|
const moveAnchor = require_anchor.refPointOfTarget(moveTo, nameStack, scopeChain);
|
|
414
434
|
if (!moveAnchor) return null;
|
|
415
|
-
const fromClip = require_anchor.clipForTarget(prev.step.to, moveAnchor, nameStack, scopeChain);
|
|
416
|
-
const toClip = require_anchor.clipForTarget(moveTo, prev
|
|
435
|
+
const fromClip = usedOverride ?? (prev ? require_anchor.clipForTarget(prev.step.to, moveAnchor, nameStack, scopeChain) : null);
|
|
436
|
+
const toClip = require_anchor.clipForTarget(moveTo, fromClip ?? prev?.anchor ?? moveAnchor, nameStack, scopeChain);
|
|
417
437
|
if (!fromClip || !toClip) return null;
|
|
418
438
|
if (require_anchor.samePoint(fromClip, lastEnd) && require_anchor.samePoint(toClip, subPathStart)) {
|
|
419
439
|
emitClose();
|
|
420
440
|
continue;
|
|
421
441
|
}
|
|
422
|
-
startSegment(fromClip);
|
|
423
|
-
emitLine(toClip);
|
|
442
|
+
startSegment(fromClip, usedOverride === null && prev !== null && require_anchor.isAutoBoundaryTarget(prev.step.to));
|
|
443
|
+
emitLine(toClip, require_anchor.isAutoBoundaryTarget(moveTo));
|
|
424
444
|
continue;
|
|
425
445
|
}
|
|
426
446
|
if (step.kind === "rectangle") {
|
|
@@ -429,8 +449,8 @@ var emitPathPrimitive = (path, nameStack, round, measureText = require_text_metr
|
|
|
429
449
|
if (!fromPt || !toPt) {
|
|
430
450
|
const fromId = nodeRefId(step.from);
|
|
431
451
|
const rectToId = nodeRefId(step.to);
|
|
432
|
-
if (!fromPt && fromId !== void 0) warn(
|
|
433
|
-
if (!toPt && rectToId !== void 0) warn(
|
|
452
|
+
if (!fromPt && fromId !== void 0) warn(require_constant.CompileWarningCode.UnresolvedNodeReference, `Rectangle from references undefined node id '${fromId}'; the entire path is skipped`, `children[${i}].from`);
|
|
453
|
+
if (!toPt && rectToId !== void 0) warn(require_constant.CompileWarningCode.UnresolvedNodeReference, `Rectangle to references undefined node id '${rectToId}'; the entire path is skipped`, `children[${i}].to`);
|
|
434
454
|
return null;
|
|
435
455
|
}
|
|
436
456
|
let rectStart = null;
|
|
@@ -449,14 +469,17 @@ var emitPathPrimitive = (path, nameStack, round, measureText = require_text_metr
|
|
|
449
469
|
continue;
|
|
450
470
|
}
|
|
451
471
|
const prev = findPrev();
|
|
452
|
-
if (!prev)
|
|
472
|
+
if (!prev) {
|
|
473
|
+
warn(require_constant.CompileWarningCode.PathTooShort, `Step '${step.kind}' requires a previous position; the entire path is skipped`, `children[${i}]`);
|
|
474
|
+
return null;
|
|
475
|
+
}
|
|
453
476
|
if (step.kind === "arc") {
|
|
454
477
|
let center;
|
|
455
478
|
if (step.center !== void 0) {
|
|
456
479
|
const c = require_anchor.refPointOfTarget(step.center, nameStack, scopeChain);
|
|
457
480
|
if (!c) {
|
|
458
481
|
const centerId = nodeRefId(step.center);
|
|
459
|
-
if (centerId !== void 0) warn(
|
|
482
|
+
if (centerId !== void 0) warn(require_constant.CompileWarningCode.UnresolvedNodeReference, `Arc step center references undefined node id '${centerId}'; the entire path is skipped`, `children[${i}].center`);
|
|
460
483
|
return null;
|
|
461
484
|
}
|
|
462
485
|
center = c;
|
|
@@ -480,7 +503,7 @@ var emitPathPrimitive = (path, nameStack, round, measureText = require_text_metr
|
|
|
480
503
|
penOverride = require_arc.arcEndPoint(center, r, step.endAngle);
|
|
481
504
|
continue;
|
|
482
505
|
}
|
|
483
|
-
warn(
|
|
506
|
+
warn(require_constant.CompileWarningCode.ArcMissingRadius, "Arc step requires radius (circular) or both radiusX and radiusY (elliptical); the entire path is skipped", `children[${i}]`);
|
|
484
507
|
return null;
|
|
485
508
|
}
|
|
486
509
|
if (step.kind === "circlePath") {
|
|
@@ -504,7 +527,7 @@ var emitPathPrimitive = (path, nameStack, round, measureText = require_text_metr
|
|
|
504
527
|
} else penOverride = require_arc.ellipseArcPoint(center, r, r, endA);
|
|
505
528
|
continue;
|
|
506
529
|
}
|
|
507
|
-
if (step.startAngle !== void 0 || step.endAngle !== void 0) warn(
|
|
530
|
+
if (step.startAngle !== void 0 || step.endAngle !== void 0) warn(require_constant.CompileWarningCode.PartialArcNeedsBothAngles, "circlePath needs both startAngle and endAngle for a partial circle; treated as a full circle", `children[${i}]`);
|
|
508
531
|
startSegment([center[0] + r, center[1]]);
|
|
509
532
|
emitEllipseArc(center, r, r, 0, 360);
|
|
510
533
|
points.push([center[0] + r, center[1]]);
|
|
@@ -537,7 +560,7 @@ var emitPathPrimitive = (path, nameStack, round, measureText = require_text_metr
|
|
|
537
560
|
} else penOverride = require_arc.ellipseArcPoint(center, rx, ry, endA);
|
|
538
561
|
continue;
|
|
539
562
|
}
|
|
540
|
-
if (step.startAngle !== void 0 || step.endAngle !== void 0) warn(
|
|
563
|
+
if (step.startAngle !== void 0 || step.endAngle !== void 0) warn(require_constant.CompileWarningCode.PartialArcNeedsBothAngles, "ellipsePath needs both startAngle and endAngle for a partial ellipse; treated as a full ellipse", `children[${i}]`);
|
|
541
564
|
startSegment([center[0] + rx, center[1]]);
|
|
542
565
|
emitEllipseArc(center, rx, ry, 0, 360);
|
|
543
566
|
points.push([center[0] + rx, center[1]]);
|
|
@@ -556,8 +579,8 @@ var emitPathPrimitive = (path, nameStack, round, measureText = require_text_metr
|
|
|
556
579
|
const fromClip = usedOverride ?? require_anchor.clipForTarget(prev.step.to, currAnchor, nameStack, scopeChain);
|
|
557
580
|
const toClip = require_anchor.clipForTarget(step.to, prev.anchor, nameStack, scopeChain);
|
|
558
581
|
if (!fromClip || !toClip) return null;
|
|
559
|
-
startSegment(fromClip);
|
|
560
|
-
emitLine(toClip);
|
|
582
|
+
startSegment(fromClip, usedOverride === null && require_anchor.isAutoBoundaryTarget(prev.step.to));
|
|
583
|
+
emitLine(toClip, require_anchor.isAutoBoundaryTarget(step.to));
|
|
561
584
|
collectLabel(step, (t) => require_segment.lineSegmentSample(fromClip, toClip, t));
|
|
562
585
|
continue;
|
|
563
586
|
}
|
|
@@ -565,8 +588,8 @@ var emitPathPrimitive = (path, nameStack, round, measureText = require_text_metr
|
|
|
565
588
|
const fromClip = usedOverride ?? require_anchor.clipForTarget(prev.step.to, step.control, nameStack, scopeChain);
|
|
566
589
|
const toClip = require_anchor.clipForTarget(step.to, step.control, nameStack, scopeChain);
|
|
567
590
|
if (!fromClip || !toClip) return null;
|
|
568
|
-
startSegment(fromClip);
|
|
569
|
-
emitQuad(step.control, toClip);
|
|
591
|
+
startSegment(fromClip, usedOverride === null && require_anchor.isAutoBoundaryTarget(prev.step.to));
|
|
592
|
+
emitQuad(step.control, toClip, require_anchor.isAutoBoundaryTarget(step.to));
|
|
570
593
|
collectLabel(step, (t) => require_segment.quadSegmentSample(fromClip, step.control, toClip, t));
|
|
571
594
|
continue;
|
|
572
595
|
}
|
|
@@ -574,8 +597,8 @@ var emitPathPrimitive = (path, nameStack, round, measureText = require_text_metr
|
|
|
574
597
|
const fromClip = usedOverride ?? require_anchor.clipForTarget(prev.step.to, step.control1, nameStack, scopeChain);
|
|
575
598
|
const toClip = require_anchor.clipForTarget(step.to, step.control2, nameStack, scopeChain);
|
|
576
599
|
if (!fromClip || !toClip) return null;
|
|
577
|
-
startSegment(fromClip);
|
|
578
|
-
emitCubic(step.control1, step.control2, toClip);
|
|
600
|
+
startSegment(fromClip, usedOverride === null && require_anchor.isAutoBoundaryTarget(prev.step.to));
|
|
601
|
+
emitCubic(step.control1, step.control2, toClip, require_anchor.isAutoBoundaryTarget(step.to));
|
|
579
602
|
collectLabel(step, (t) => require_segment.cubicSegmentSample(fromClip, step.control1, step.control2, toClip, t));
|
|
580
603
|
continue;
|
|
581
604
|
}
|
|
@@ -585,8 +608,8 @@ var emitPathPrimitive = (path, nameStack, round, measureText = require_text_metr
|
|
|
585
608
|
const fromClip = usedOverride ?? require_anchor.clipForTarget(prev.step.to, c1, nameStack, scopeChain);
|
|
586
609
|
const toClip = require_anchor.clipForTarget(step.to, c2, nameStack, scopeChain);
|
|
587
610
|
if (!fromClip || !toClip) return null;
|
|
588
|
-
startSegment(fromClip);
|
|
589
|
-
emitCubic(c1, c2, toClip);
|
|
611
|
+
startSegment(fromClip, usedOverride === null && require_anchor.isAutoBoundaryTarget(prev.step.to));
|
|
612
|
+
emitCubic(c1, c2, toClip, require_anchor.isAutoBoundaryTarget(step.to));
|
|
590
613
|
collectLabel(step, (t) => require_segment.cubicSegmentSample(fromClip, c1, c2, toClip, t));
|
|
591
614
|
continue;
|
|
592
615
|
}
|
|
@@ -594,9 +617,9 @@ var emitPathPrimitive = (path, nameStack, round, measureText = require_text_metr
|
|
|
594
617
|
const fromClip = usedOverride ?? require_anchor.clipForTarget(prev.step.to, corner, nameStack, scopeChain);
|
|
595
618
|
const toClip = require_anchor.clipForTarget(step.to, corner, nameStack, scopeChain);
|
|
596
619
|
if (!fromClip || !toClip) return null;
|
|
597
|
-
startSegment(fromClip);
|
|
620
|
+
startSegment(fromClip, usedOverride === null && require_anchor.isAutoBoundaryTarget(prev.step.to));
|
|
598
621
|
emitLine(corner);
|
|
599
|
-
emitLine(toClip);
|
|
622
|
+
emitLine(toClip, require_anchor.isAutoBoundaryTarget(step.to));
|
|
600
623
|
collectLabel(step, (t) => require_segment.foldSegmentSample(fromClip, corner, toClip, t));
|
|
601
624
|
}
|
|
602
625
|
const strokeWidth = path.strokeWidth ?? (path.thickness ? THICKNESS_TO_WIDTH[path.thickness] : 1);
|
|
@@ -627,7 +650,7 @@ var emitPathPrimitive = (path, nameStack, round, measureText = require_text_metr
|
|
|
627
650
|
points.push(sample.point);
|
|
628
651
|
}
|
|
629
652
|
}
|
|
630
|
-
require_shrink.applyArrowShrinks(commands, arrows.shrinkStart, arrows.shrinkEnd, strokeWidth, round);
|
|
653
|
+
require_shrink.applyArrowShrinks(commands, arrows.shrinkStart + (endpointSource.firstAutoBoundary ? arrows.boundaryOuterInsetStart : 0), arrows.shrinkEnd + (endpointSource.lastAutoBoundary ? arrows.boundaryOuterInsetEnd : 0), strokeWidth, round);
|
|
631
654
|
const endpointSpecs = {};
|
|
632
655
|
if (arrows.arrowStart) endpointSpecs.arrowStart = arrows.arrowStart;
|
|
633
656
|
if (arrows.arrowEnd) endpointSpecs.arrowEnd = arrows.arrowEnd;
|
|
@@ -1,30 +1,27 @@
|
|
|
1
1
|
import { PaintResolver } from '../paint';
|
|
2
2
|
import { IRPath, IRPosition } from '../../ir';
|
|
3
3
|
import { ScenePrimitive, Transform } from '../../primitive';
|
|
4
|
-
import { PathGeneratorDefinition } from '../../
|
|
4
|
+
import { PathGeneratorDefinition } from '../../path-generators';
|
|
5
|
+
import { CompileWarning } from '../constant';
|
|
5
6
|
import { NameStack } from '../name-stack';
|
|
6
7
|
import { TextMeasurer } from '../text-metrics';
|
|
7
8
|
import { EffectiveArrows } from './shrink';
|
|
8
9
|
/** emitPathPrimitive 可选 warn 钩子 */
|
|
9
10
|
export type EmitPathWarnHook = {
|
|
10
11
|
/** 警告收集器(由 compileToScene 传入) */
|
|
11
|
-
onWarn?: (warning:
|
|
12
|
-
code: string;
|
|
13
|
-
message: string;
|
|
14
|
-
path: string;
|
|
15
|
-
}) => void;
|
|
12
|
+
onWarn?: (warning: CompileWarning) => void;
|
|
16
13
|
/** 当前 path 在 IR 中的 locator 前缀(如 `'children[3].path'`) */
|
|
17
14
|
irPath?: string;
|
|
18
15
|
/**
|
|
19
16
|
* 该 path 所属 scope 的累积 Cartesian-only transform 链
|
|
20
17
|
* @description step.to 内的 polar/at/offset 字面量按"当前 scope 局部度量 + 末端 apply chain"
|
|
21
|
-
* 投影回全局;顶层 path / 无 scope chain 时为 `[]
|
|
18
|
+
* 投影回全局;顶层 path / 无 scope chain 时为 `[]`(恒等,全局坐标)
|
|
22
19
|
*/
|
|
23
20
|
scopeChain?: ReadonlyArray<Transform>;
|
|
24
21
|
/** fill 解析器(PaintSpec → resourceRef + 登记资源);缺省时纯色透传、PaintSpec 退化为无填充 */
|
|
25
22
|
resolveFill?: PaintResolver;
|
|
26
23
|
/**
|
|
27
|
-
* 有效 arrow 表(内置
|
|
24
|
+
* 有效 arrow 表(内置 8 + 注入);缺省 = 仅内置 8
|
|
28
25
|
* @description compileToScene 合并 `{ ...BUILTIN_ARROWS, ...options.arrows }` 传入;
|
|
29
26
|
* endpointArrows 据此查表算 shrink / 调 def.emit;未注册名编译期 throw
|
|
30
27
|
*/
|
|
@@ -45,4 +42,5 @@ export declare const emitPathPrimitive: (path: IRPath, nameStack: NameStack, rou
|
|
|
45
42
|
primitives: Array<ScenePrimitive>;
|
|
46
43
|
points: Array<IRPosition>;
|
|
47
44
|
} | null;
|
|
45
|
+
export { refPointOfTarget } from './anchor';
|
|
48
46
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/compile/path/index.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAY9C,OAAO,KAAK,EACV,MAAM,EAEN,UAAU,EAGX,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EAIV,cAAc,EACd,SAAS,EACV,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/compile/path/index.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAY9C,OAAO,KAAK,EACV,MAAM,EAEN,UAAU,EAGX,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EAIV,cAAc,EACd,SAAS,EACV,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAErE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,KAAK,YAAY,EAAoB,MAAM,iBAAiB,CAAC;AAKtE,OAAO,EAAE,KAAK,eAAe,EAA2D,MAAM,UAAU,CAAC;AA8FzG,mCAAmC;AACnC,MAAM,MAAM,gBAAgB,GAAG;IAC7B,iCAAiC;IACjC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;IAC3C,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,UAAU,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IACtC,wEAAwE;IACxE,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B;;;;OAIG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC;;;;;OAKG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;CACnE,CAAC;AA0EF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAC5B,MAAM,MAAM,EACZ,WAAW,SAAS,EACpB,OAAO,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EAC5B,cAAa,YAA+B,EAC5C,WAAU,gBAAqB,KAC9B;IAAE,UAAU,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;IAAC,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,CAAA;CAAE,GAAG,IA6xBrE,CAAC;AAEF,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -9,7 +9,7 @@ const require_anchor = require("./anchor.cjs");
|
|
|
9
9
|
* 先反向投影 prevEnd 到 scope 局部 + 加 (dx, dy) 得局部 tuple,写回 step.to。下游
|
|
10
10
|
* `refPointOfTarget` / `clipForTarget` 把 tuple 视作 scope 局部字面量,统一 `applyTransformChain` 投回全局——
|
|
11
11
|
* relative 分支只负责"折算到局部",不能在此处提前投影到全局,否则与下游 chain apply 形成 double-apply。
|
|
12
|
-
* `scopeChain=[]` 时 inverse
|
|
12
|
+
* `scopeChain=[]` 时 inverse 恒等,保持全局坐标语义。
|
|
13
13
|
*/
|
|
14
14
|
var normalizeRelativeTargets = (steps, nameStack, scopeChain = []) => {
|
|
15
15
|
let prevEnd = null;
|
|
@@ -8,7 +8,7 @@ import { NameStack } from '../name-stack';
|
|
|
8
8
|
* 先反向投影 prevEnd 到 scope 局部 + 加 (dx, dy) 得局部 tuple,写回 step.to。下游
|
|
9
9
|
* `refPointOfTarget` / `clipForTarget` 把 tuple 视作 scope 局部字面量,统一 `applyTransformChain` 投回全局——
|
|
10
10
|
* relative 分支只负责"折算到局部",不能在此处提前投影到全局,否则与下游 chain apply 形成 double-apply。
|
|
11
|
-
* `scopeChain=[]` 时 inverse
|
|
11
|
+
* `scopeChain=[]` 时 inverse 恒等,保持全局坐标语义。
|
|
12
12
|
*/
|
|
13
13
|
export declare const normalizeRelativeTargets: (steps: ReadonlyArray<IRStep>, nameStack: NameStack, scopeChain?: ReadonlyArray<Transform>) => Array<IRStep>;
|
|
14
14
|
//# sourceMappingURL=relative.d.ts.map
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
const require_arrow = require("../../ir/path/arrow.cjs");
|
|
2
|
+
const require_arc = require("../../geometry/arc.cjs");
|
|
2
3
|
const require_marker_prim = require("../marker-prim.cjs");
|
|
3
4
|
const require_anchor = require("./anchor.cjs");
|
|
4
5
|
//#region src/compile/path/shrink.ts
|
|
@@ -45,6 +46,7 @@ var assertFiniteGeometry = (shape, def) => {
|
|
|
45
46
|
if (!Number.isFinite(def.lineContactX)) throw new Error(`Arrow '${shape}' has a non-finite lineContactX (${String(def.lineContactX)}); it must be a finite number.`);
|
|
46
47
|
if (def.baseSize !== void 0 && (!Number.isFinite(def.baseSize) || def.baseSize <= 0)) throw new Error(`Arrow '${shape}' has an invalid baseSize (${String(def.baseSize)}); it must be a finite number greater than 0.`);
|
|
47
48
|
if (def.tipX !== void 0 && !Number.isFinite(def.tipX)) throw new Error(`Arrow '${shape}' has a non-finite tipX (${String(def.tipX)}); it must be a finite number.`);
|
|
49
|
+
if (def.outerInset !== void 0 && !Number.isFinite(def.outerInset)) throw new Error(`Arrow '${shape}' has a non-finite outerInset (${String(def.outerInset)}); it must be a finite number.`);
|
|
48
50
|
};
|
|
49
51
|
/**
|
|
50
52
|
* 调 def.emit 收集 marker 并跑窄子集 + JSON-safe 校验
|
|
@@ -73,7 +75,9 @@ var resolveGeometry = (visual, effective) => {
|
|
|
73
75
|
const scale = visual.scale ?? 1;
|
|
74
76
|
const resolvedLength = (visual.length ?? def.defaultLength ?? 6) * scale;
|
|
75
77
|
const resolvedWidth = (visual.width ?? def.defaultWidth ?? 6) * scale;
|
|
78
|
+
const boundaryOuterInset = (def.outerInset ?? (def.hollow ? lineWidth / 2 : 0)) * resolvedLength / baseSize;
|
|
76
79
|
if (!Number.isFinite(resolvedLength) || !Number.isFinite(resolvedWidth)) throw new Error(`Arrow '${visual.shape}' resolved length/width is non-finite (length × scale overflowed); use smaller length / scale values.`);
|
|
80
|
+
if (!Number.isFinite(boundaryOuterInset)) throw new Error(`Arrow '${visual.shape}' resolved outerInset is non-finite; use smaller outerInset / length / scale values.`);
|
|
77
81
|
return {
|
|
78
82
|
def,
|
|
79
83
|
baseSize,
|
|
@@ -81,7 +85,8 @@ var resolveGeometry = (visual, effective) => {
|
|
|
81
85
|
contactX,
|
|
82
86
|
lineWidth,
|
|
83
87
|
resolvedLength,
|
|
84
|
-
resolvedWidth
|
|
88
|
+
resolvedWidth,
|
|
89
|
+
boundaryOuterInset
|
|
85
90
|
};
|
|
86
91
|
};
|
|
87
92
|
/**
|
|
@@ -131,26 +136,32 @@ var materializeArrowEndSpec = (visual, geometry, round) => {
|
|
|
131
136
|
var endpointArrows = (arrow, detail, effective, round) => {
|
|
132
137
|
if (!arrow || arrow === "none") return {
|
|
133
138
|
shrinkStart: 0,
|
|
134
|
-
shrinkEnd: 0
|
|
139
|
+
shrinkEnd: 0,
|
|
140
|
+
boundaryOuterInsetStart: 0,
|
|
141
|
+
boundaryOuterInsetEnd: 0
|
|
135
142
|
};
|
|
136
143
|
const top = detail ?? {};
|
|
137
144
|
const wantStart = arrow === "<-" || arrow === "<->";
|
|
138
145
|
const wantEnd = arrow === "->" || arrow === "<->";
|
|
139
146
|
const result = {
|
|
140
147
|
shrinkStart: 0,
|
|
141
|
-
shrinkEnd: 0
|
|
148
|
+
shrinkEnd: 0,
|
|
149
|
+
boundaryOuterInsetStart: 0,
|
|
150
|
+
boundaryOuterInsetEnd: 0
|
|
142
151
|
};
|
|
143
152
|
if (wantStart) {
|
|
144
153
|
const visual = resolveArrowVisual(top, top.start, effective);
|
|
145
154
|
const geometry = resolveGeometry(visual, effective);
|
|
146
155
|
result.arrowStart = materializeArrowEndSpec(visual, geometry, round);
|
|
147
156
|
result.shrinkStart = computeShrink(geometry);
|
|
157
|
+
result.boundaryOuterInsetStart = geometry.boundaryOuterInset;
|
|
148
158
|
}
|
|
149
159
|
if (wantEnd) {
|
|
150
160
|
const visual = resolveArrowVisual(top, top.end, effective);
|
|
151
161
|
const geometry = resolveGeometry(visual, effective);
|
|
152
162
|
result.arrowEnd = materializeArrowEndSpec(visual, geometry, round);
|
|
153
163
|
result.shrinkEnd = computeShrink(geometry);
|
|
164
|
+
result.boundaryOuterInsetEnd = geometry.boundaryOuterInset;
|
|
154
165
|
}
|
|
155
166
|
return result;
|
|
156
167
|
};
|
|
@@ -180,14 +191,8 @@ var endpointOf = (cmd) => {
|
|
|
180
191
|
case "line":
|
|
181
192
|
case "quad":
|
|
182
193
|
case "cubic": return [cmd.to[0], cmd.to[1]];
|
|
183
|
-
case "arc":
|
|
184
|
-
|
|
185
|
-
return [cmd.center[0] + Math.cos(rad) * cmd.radius, cmd.center[1] + Math.sin(rad) * cmd.radius];
|
|
186
|
-
}
|
|
187
|
-
case "ellipseArc": {
|
|
188
|
-
const rad = cmd.endAngle * Math.PI / 180;
|
|
189
|
-
return [cmd.center[0] + Math.cos(rad) * cmd.radiusX, cmd.center[1] + Math.sin(rad) * cmd.radiusY];
|
|
190
|
-
}
|
|
194
|
+
case "arc": return require_arc.arcEndPoint(cmd.center, cmd.radius, cmd.endAngle);
|
|
195
|
+
case "ellipseArc": return require_arc.ellipseArcPoint(cmd.center, cmd.radiusX, cmd.radiusY, cmd.endAngle);
|
|
191
196
|
case "close": return null;
|
|
192
197
|
}
|
|
193
198
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { IRArrowDetail, IRArrowMark } from '../../ir';
|
|
2
2
|
import { ArrowDefinition } from '../../arrows';
|
|
3
3
|
import { ArrowEndSpec, PathCommand } from '../../primitive';
|
|
4
|
-
/** 有效 arrow 表:内置
|
|
4
|
+
/** 有效 arrow 表:内置 8 + 注入(同名注入覆盖内置) */
|
|
5
5
|
export type EffectiveArrows = Record<string, ArrowDefinition>;
|
|
6
6
|
/**
|
|
7
7
|
* IR path-level `arrow` + `arrowDetail` → PathPrim 起末端点已解析 marker 描述
|
|
@@ -14,6 +14,8 @@ export declare const endpointArrows: (arrow: "none" | "->" | "<-" | "<->" | unde
|
|
|
14
14
|
arrowEnd?: ArrowEndSpec;
|
|
15
15
|
shrinkStart: number;
|
|
16
16
|
shrinkEnd: number;
|
|
17
|
+
boundaryOuterInsetStart: number;
|
|
18
|
+
boundaryOuterInsetEnd: number;
|
|
17
19
|
};
|
|
18
20
|
/**
|
|
19
21
|
* 解析一个中段标记 `IRArrowMark` 为已物化的 marker 描述(`ArrowEndSpec`)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shrink.d.ts","sourceRoot":"","sources":["../../../../src/compile/path/shrink.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,aAAa,EAElB,KAAK,WAAW,EAEjB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,eAAe,EAAoB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"shrink.d.ts","sourceRoot":"","sources":["../../../../src/compile/path/shrink.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,aAAa,EAElB,KAAK,WAAW,EAEjB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,eAAe,EAAoB,MAAM,cAAc,CAAC;AAEtE,OAAO,KAAK,EAAE,YAAY,EAA+B,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAI9F,qCAAqC;AACrC,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;AAsN9D;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GACzB,OAAO,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,SAAS,EAC/C,QAAQ,aAAa,GAAG,SAAS,EACjC,WAAW,eAAe,EAC1B,OAAO,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,KAC3B;IACD,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,uBAAuB,EAAE,MAAM,CAAC;IAChC,qBAAqB,EAAE,MAAM,CAAC;CAyC/B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAC/B,MAAM,WAAW,EACjB,WAAW,eAAe,EAC1B,OAAO,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,KAC3B,YAaF,CAAC;AAuCF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAC5B,UAAU,KAAK,CAAC,WAAW,CAAC,EAC5B,aAAa,MAAM,EACnB,WAAW,MAAM,EACjB,aAAa,MAAM,EACnB,OAAO,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,KAC3B,IA4CF,CAAC"}
|
|
@@ -1,34 +1,22 @@
|
|
|
1
|
+
const require_arc = require("../geometry/arc.cjs");
|
|
2
|
+
const require_direction = require("./direction.cjs");
|
|
1
3
|
const require_scope = require("./scope.cjs");
|
|
2
4
|
//#region src/compile/position.ts
|
|
3
5
|
/** 默认相对定位距离(CompileOptions.nodeDistance 未配时使用) */
|
|
4
6
|
var DEFAULT_NODE_DISTANCE = 1;
|
|
5
7
|
/**
|
|
6
|
-
* 8 方向 → 屏幕坐标系(y 向下)单位向量
|
|
7
|
-
* @description above=视觉上方 (y 减小);4 对角分量 1/√2 保证斜向与水平/垂直距离等长(对角点落在半径=distance 圆周上)
|
|
8
|
-
*/
|
|
9
|
-
var DIRECTION_VECTOR = {
|
|
10
|
-
above: [0, -1],
|
|
11
|
-
below: [0, 1],
|
|
12
|
-
left: [-1, 0],
|
|
13
|
-
right: [1, 0],
|
|
14
|
-
"above-left": [-Math.SQRT1_2, -Math.SQRT1_2],
|
|
15
|
-
"above-right": [Math.SQRT1_2, -Math.SQRT1_2],
|
|
16
|
-
"below-left": [-Math.SQRT1_2, Math.SQRT1_2],
|
|
17
|
-
"below-right": [Math.SQRT1_2, Math.SQRT1_2]
|
|
18
|
-
};
|
|
19
|
-
/**
|
|
20
8
|
* IR 各种位置形态(笛卡尔/极坐标/相对定位/偏移定位/节点 id)→ 笛卡尔位置
|
|
21
9
|
* @description
|
|
22
10
|
* - **返回值语义**:当 `scopeChain` 非空时,返回**当前 scope 局部坐标系**下的笛卡尔位置;
|
|
23
11
|
* 调用方负责走 `applyTransformChain(local, scopeChain)` 投回全局。当 `scopeChain` 为空时
|
|
24
|
-
*
|
|
12
|
+
* 直接按全局坐标返回。
|
|
25
13
|
* - **referent 处理**:node id lookup 拿到的 layout.rect 已是全局坐标;本函数内部用
|
|
26
14
|
* `inverseTransformChain` 把全局 referent 反向投影到当前 scope 局部坐标系作为"在当前
|
|
27
15
|
* scope 局部的固定点"基准。relative 部分(polar 的 angle/radius、at 的 direction/distance、
|
|
28
16
|
* offset 的 dx/dy)在当前 scope 局部度量后加到 referent 局部坐标上。
|
|
29
17
|
* - **嵌套**:PolarPosition.origin / OffsetPosition.of 是嵌套 polar 时,递归调用传同样
|
|
30
18
|
* scopeChain——整条嵌套链都在当前 scope 局部度量。
|
|
31
|
-
* - **笛卡尔字面量**:`Position` 形态直接返回(
|
|
19
|
+
* - **笛卡尔字面量**:`Position` 形态直接返回(scope 内笛卡尔字面量在
|
|
32
20
|
* 当前 scope 局部度量;调用方走 applyTransformChain 投全局)。
|
|
33
21
|
* - 极坐标 origin / 偏移定位 of 均可递归引用节点 id 或字面坐标;relative `AtPosition` of
|
|
34
22
|
* 必须引用已定义节点/coordinate;解析失败返回 null。
|
|
@@ -49,7 +37,7 @@ var resolvePosition = (pos, nameStack, nodeDistance = DEFAULT_NODE_DISTANCE, sco
|
|
|
49
37
|
const refGlobal = [ref.rect.x, ref.rect.y];
|
|
50
38
|
const refLocal = scopeChain.length === 0 ? refGlobal : require_scope.inverseTransformChain(refGlobal, scopeChain);
|
|
51
39
|
const distance = pos.distance ?? nodeDistance;
|
|
52
|
-
const [dx, dy] =
|
|
40
|
+
const [dx, dy] = require_direction.DirectionVectorByAtDirection[pos.direction];
|
|
53
41
|
return [refLocal[0] + dx * distance, refLocal[1] + dy * distance];
|
|
54
42
|
}
|
|
55
43
|
if ("offset" in pos) {
|
|
@@ -70,8 +58,7 @@ var resolvePosition = (pos, nameStack, nodeDistance = DEFAULT_NODE_DISTANCE, sco
|
|
|
70
58
|
if (!resolved) return null;
|
|
71
59
|
origin = resolved;
|
|
72
60
|
}
|
|
73
|
-
|
|
74
|
-
return [origin[0] + Math.cos(rad) * pos.radius, origin[1] + Math.sin(rad) * pos.radius];
|
|
61
|
+
return require_arc.arcEndPoint(origin, pos.radius, pos.angle);
|
|
75
62
|
};
|
|
76
63
|
//#endregion
|
|
77
64
|
exports.resolvePosition = resolvePosition;
|
|
@@ -12,14 +12,14 @@ export type ResolveBetweenGlobal = (between: IRBetweenPosition, nameStack: NameS
|
|
|
12
12
|
* @description
|
|
13
13
|
* - **返回值语义**:当 `scopeChain` 非空时,返回**当前 scope 局部坐标系**下的笛卡尔位置;
|
|
14
14
|
* 调用方负责走 `applyTransformChain(local, scopeChain)` 投回全局。当 `scopeChain` 为空时
|
|
15
|
-
*
|
|
15
|
+
* 直接按全局坐标返回。
|
|
16
16
|
* - **referent 处理**:node id lookup 拿到的 layout.rect 已是全局坐标;本函数内部用
|
|
17
17
|
* `inverseTransformChain` 把全局 referent 反向投影到当前 scope 局部坐标系作为"在当前
|
|
18
18
|
* scope 局部的固定点"基准。relative 部分(polar 的 angle/radius、at 的 direction/distance、
|
|
19
19
|
* offset 的 dx/dy)在当前 scope 局部度量后加到 referent 局部坐标上。
|
|
20
20
|
* - **嵌套**:PolarPosition.origin / OffsetPosition.of 是嵌套 polar 时,递归调用传同样
|
|
21
21
|
* scopeChain——整条嵌套链都在当前 scope 局部度量。
|
|
22
|
-
* - **笛卡尔字面量**:`Position` 形态直接返回(
|
|
22
|
+
* - **笛卡尔字面量**:`Position` 形态直接返回(scope 内笛卡尔字面量在
|
|
23
23
|
* 当前 scope 局部度量;调用方走 applyTransformChain 投全局)。
|
|
24
24
|
* - 极坐标 origin / 偏移定位 of 均可递归引用节点 id 或字面坐标;relative `AtPosition` of
|
|
25
25
|
* 必须引用已定义节点/coordinate;解析失败返回 null。
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"position.d.ts","sourceRoot":"","sources":["../../../src/compile/position.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"position.d.ts","sourceRoot":"","sources":["../../../src/compile/position.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE1G,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAG9C;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG,CACjC,OAAO,EAAE,iBAAiB,EAC1B,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,aAAa,CAAC,SAAS,CAAC,KACjC,UAAU,GAAG,IAAI,CAAC;AAKvB;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,eAAe,GAC1B,KAAK,UAAU,GAAG,aAAa,GAAG,YAAY,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,MAAM,EAC9F,WAAW,SAAS,EACpB,eAAc,MAA8B,EAC5C,aAAY,aAAa,CAAC,SAAS,CAAM,EACzC,uBAAuB,oBAAoB,KAC1C,UAAU,GAAG,IA6Cf,CAAC"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* 而 `JSON.stringify(-0) === '0'` 会让 Scene round-trip 在 `Object.is` 层失真(`-0 !== 0` 于 Object.is)。
|
|
6
6
|
* 归一让序列化往返稳定;数值上 `-0 === 0`,渲染 / 计算无影响。
|
|
7
7
|
*/
|
|
8
|
-
var
|
|
8
|
+
var createRound = (precision) => {
|
|
9
9
|
const factor = 10 ** precision;
|
|
10
10
|
return (n) => {
|
|
11
11
|
const r = Math.round(n * factor) / factor;
|
|
@@ -13,4 +13,4 @@ var makeRound = (precision) => {
|
|
|
13
13
|
};
|
|
14
14
|
};
|
|
15
15
|
//#endregion
|
|
16
|
-
exports.
|
|
16
|
+
exports.createRound = createRound;
|
|
@@ -6,5 +6,5 @@ export declare const DEFAULT_PRECISION = 2;
|
|
|
6
6
|
* 而 `JSON.stringify(-0) === '0'` 会让 Scene round-trip 在 `Object.is` 层失真(`-0 !== 0` 于 Object.is)。
|
|
7
7
|
* 归一让序列化往返稳定;数值上 `-0 === 0`,渲染 / 计算无影响。
|
|
8
8
|
*/
|
|
9
|
-
export declare const
|
|
9
|
+
export declare const createRound: (precision: number) => (n: number) => number;
|
|
10
10
|
//# sourceMappingURL=precision.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"precision.d.ts","sourceRoot":"","sources":["../../../src/compile/precision.ts"],"names":[],"mappings":"AAAA,sBAAsB;AACtB,eAAO,MAAM,iBAAiB,IAAI,CAAC;AAEnC;;;;;GAKG;AACH,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"precision.d.ts","sourceRoot":"","sources":["../../../src/compile/precision.ts"],"names":[],"mappings":"AAAA,sBAAsB;AACtB,eAAO,MAAM,iBAAiB,IAAI,CAAC;AAEnC;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GAAI,WAAW,MAAM,MAEnC,GAAG,MAAM,WAIlB,CAAC"}
|