abstract-image 8.2.2 → 8.3.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.
Files changed (23) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/lib/exporters/__tests__/svg-export-image/test-defs/svg-group.js +1 -1
  3. package/lib/exporters/__tests__/svg-export-image/test-defs/svg-group.js.map +1 -1
  4. package/lib/exporters/__tests__/svg-export-image/test-defs/svg-text-bold.js +1 -1
  5. package/lib/exporters/__tests__/svg-export-image/test-defs/svg-text-bold.js.map +1 -1
  6. package/lib/exporters/__tests__/svg-export-image/test-defs/svg-text-growth-directions.js +1 -1
  7. package/lib/exporters/__tests__/svg-export-image/test-defs/svg-text-growth-directions.js.map +1 -1
  8. package/lib/exporters/__tests__/svg-export-image/test-defs/svg-text-italic.js +1 -1
  9. package/lib/exporters/__tests__/svg-export-image/test-defs/svg-text-italic.js.map +1 -1
  10. package/lib/exporters/__tests__/svg-export-image/test-defs/svg-text.js +1 -1
  11. package/lib/exporters/__tests__/svg-export-image/test-defs/svg-text.js.map +1 -1
  12. package/lib/exporters/react-svg-export-image.js +8 -8
  13. package/lib/exporters/react-svg-export-image.js.map +1 -1
  14. package/lib/exporters/svg-export-image.js +27 -13
  15. package/lib/exporters/svg-export-image.js.map +1 -1
  16. package/package.json +2 -2
  17. package/src/exporters/__tests__/svg-export-image/test-defs/svg-group.ts +1 -1
  18. package/src/exporters/__tests__/svg-export-image/test-defs/svg-text-bold.ts +1 -1
  19. package/src/exporters/__tests__/svg-export-image/test-defs/svg-text-growth-directions.ts +1 -1
  20. package/src/exporters/__tests__/svg-export-image/test-defs/svg-text-italic.ts +1 -1
  21. package/src/exporters/__tests__/svg-export-image/test-defs/svg-text.ts +1 -1
  22. package/src/exporters/react-svg-export-image.tsx +20 -8
  23. package/src/exporters/svg-export-image.ts +32 -16
package/CHANGELOG.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/).
4
4
 
5
+ ## [8.3.0] - 2024-10-16
6
+
7
+ ### Added
8
+
9
+ - Svg and React svg exports uses the svg attribute 'alignment-baseline' to position text verticly.
10
+
5
11
  ## [8.2.0] - 2024-07-08
6
12
 
7
13
  ### Added
@@ -36,6 +36,6 @@ const svg = AbstractImage.createSVG(image);
36
36
  exports.test = {
37
37
  name: "svg group",
38
38
  abstractImage: svg,
39
- expectedImage: '<svg xmlns="http://www.w3.org/2000/svg" width="400px" height="400px" viewBox="0 0 400 400"><g name="group"><text style="text-anchor:middle;font-size:12px;font-weight:normal;font-family:Helvetica;fill:rgb(0, 0, 0);fill-opacity:1;" transform="rotate(0 200 200)"><tspan x="200" y="206" height="12px">Test</tspan></text><rect x="10" y="50" width="40" height="10" stroke="rgb(0, 0, 255)" stroke-opacity="1" stroke-width="2" fill="rgb(255, 0, 0)" fill-opacity="1"></rect></g></svg>',
39
+ expectedImage: '<svg xmlns="http://www.w3.org/2000/svg" width="400px" height="400px" viewBox="0 0 400 400"><g name="group"><text style="text-anchor:middle;font-size:12px;font-weight:normal;font-family:Helvetica;fill:rgb(0, 0, 0);fill-opacity:1;" transform="rotate(0 200 200)"><tspan x="200" y="200" height="12px"><tspan alignment-baseline="central">Test</tspan></tspan></text><rect x="10" y="50" width="40" height="10" stroke="rgb(0, 0, 255)" stroke-opacity="1" stroke-width="2" fill="rgb(255, 0, 0)" fill-opacity="1"></rect></g></svg>',
40
40
  };
41
41
  //# sourceMappingURL=svg-group.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"svg-group.js","sourceRoot":"","sources":["../../../../../src/exporters/__tests__/svg-export-image/test-defs/svg-group.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,wEAA0D;AAE1D,MAAM,UAAU,GAAG;IACjB,aAAa,CAAC,WAAW,CAAC,OAAO,EAAE;QACjC,aAAa,CAAC,UAAU,CACtB,aAAa,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,EACnC,MAAM,EACN,WAAW,EACX,EAAE,EACF,aAAa,CAAC,KAAK,EACnB,QAAQ,EACR,CAAC,EACD,QAAQ,EACR,SAAS,EACT,SAAS,EACT,CAAC,EACD,aAAa,CAAC,KAAK,EACnB,KAAK,CACN;QACD,aAAa,CAAC,eAAe,CAC3B,aAAa,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,EACjC,aAAa,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,EACjC,aAAa,CAAC,IAAI,EAClB,CAAC,EACD,aAAa,CAAC,GAAG,CAClB;KACF,CAAC;CACH,CAAC;AACF,MAAM,KAAK,GAAG,aAAa,CAAC,mBAAmB,CAC7C,aAAa,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,EAC/B,aAAa,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAClC,aAAa,CAAC,KAAK,EACnB,UAAU,CACX,CAAC;AAEF,MAAM,GAAG,GAAG,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAE9B,QAAA,IAAI,GAAkB;IACjC,IAAI,EAAE,WAAW;IACjB,aAAa,EAAE,GAAG;IAClB,aAAa,EACX,6dAA6d;CAChe,CAAC"}
1
+ {"version":3,"file":"svg-group.js","sourceRoot":"","sources":["../../../../../src/exporters/__tests__/svg-export-image/test-defs/svg-group.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,wEAA0D;AAE1D,MAAM,UAAU,GAAG;IACjB,aAAa,CAAC,WAAW,CAAC,OAAO,EAAE;QACjC,aAAa,CAAC,UAAU,CACtB,aAAa,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,EACnC,MAAM,EACN,WAAW,EACX,EAAE,EACF,aAAa,CAAC,KAAK,EACnB,QAAQ,EACR,CAAC,EACD,QAAQ,EACR,SAAS,EACT,SAAS,EACT,CAAC,EACD,aAAa,CAAC,KAAK,EACnB,KAAK,CACN;QACD,aAAa,CAAC,eAAe,CAC3B,aAAa,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,EACjC,aAAa,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,EACjC,aAAa,CAAC,IAAI,EAClB,CAAC,EACD,aAAa,CAAC,GAAG,CAClB;KACF,CAAC;CACH,CAAC;AACF,MAAM,KAAK,GAAG,aAAa,CAAC,mBAAmB,CAC7C,aAAa,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,EAC/B,aAAa,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAClC,aAAa,CAAC,KAAK,EACnB,UAAU,CACX,CAAC;AAEF,MAAM,GAAG,GAAG,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAE9B,QAAA,IAAI,GAAkB;IACjC,IAAI,EAAE,WAAW;IACjB,aAAa,EAAE,GAAG;IAClB,aAAa,EACX,ygBAAygB;CAC5gB,CAAC"}
@@ -34,6 +34,6 @@ const svg = AbstractImage.createSVG(image);
34
34
  exports.test = {
35
35
  name: "svg text bold",
36
36
  abstractImage: svg,
37
- expectedImage: '<svg xmlns="http://www.w3.org/2000/svg" width="400px" height="400px" viewBox="0 0 400 400"><text style="text-anchor:start;font-size:12px;font-weight:bold;font-family:Arial;stroke:rgb(255, 0, 0);stroke-opacity:1;stroke-width:2px;" transform="rotate(0 10 10)"><tspan x="10" y="22" height="12px">Hello World</tspan></text>,<text style="text-anchor:start;font-size:12px;font-weight:bold;font-family:Arial;fill:rgb(0, 0, 0);fill-opacity:1;" transform="rotate(0 10 10)"><tspan x="10" y="22" height="12px">Hello World</tspan></text><text style="text-anchor:start;font-size:12px;font-weight:mediumBold;font-family:Arial;stroke:rgb(255, 0, 0);stroke-opacity:1;stroke-width:2px;" transform="rotate(0 40 40)"><tspan x="40" y="52" height="12px">Hello World</tspan></text>,<text style="text-anchor:start;font-size:12px;font-weight:mediumBold;font-family:Arial;fill:rgb(0, 0, 0);fill-opacity:1;" transform="rotate(0 40 40)"><tspan x="40" y="52" height="12px">Hello World</tspan></text></svg>',
37
+ expectedImage: '<svg xmlns="http://www.w3.org/2000/svg" width="400px" height="400px" viewBox="0 0 400 400"><text style="text-anchor:start;font-size:12px;font-weight:bold;font-family:Arial;stroke:rgb(255, 0, 0);stroke-opacity:1;stroke-width:2px;" transform="rotate(0 10 10)"><tspan x="10" y="10" height="12px"><tspan alignment-baseline="hanging">Hello World</tspan></tspan></text>,<text style="text-anchor:start;font-size:12px;font-weight:bold;font-family:Arial;fill:rgb(0, 0, 0);fill-opacity:1;" transform="rotate(0 10 10)"><tspan x="10" y="10" height="12px"><tspan alignment-baseline="hanging">Hello World</tspan></tspan></text><text style="text-anchor:start;font-size:12px;font-weight:mediumBold;font-family:Arial;stroke:rgb(255, 0, 0);stroke-opacity:1;stroke-width:2px;" transform="rotate(0 40 40)"><tspan x="40" y="40" height="12px"><tspan alignment-baseline="hanging">Hello World</tspan></tspan></text>,<text style="text-anchor:start;font-size:12px;font-weight:mediumBold;font-family:Arial;fill:rgb(0, 0, 0);fill-opacity:1;" transform="rotate(0 40 40)"><tspan x="40" y="40" height="12px"><tspan alignment-baseline="hanging">Hello World</tspan></tspan></text></svg>',
38
38
  };
39
39
  //# sourceMappingURL=svg-text-bold.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"svg-text-bold.js","sourceRoot":"","sources":["../../../../../src/exporters/__tests__/svg-export-image/test-defs/svg-text-bold.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,wEAA0D;AAE1D,MAAM,UAAU,GAAG;IACjB,aAAa,CAAC,UAAU,CACtB,aAAa,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,EACjC,aAAa,EACb,OAAO,EACP,EAAE,EACF,aAAa,CAAC,KAAK,EACnB,MAAM,EACN,CAAC,EACD,QAAQ,EACR,OAAO,EACP,MAAM,EACN,CAAC,EACD,aAAa,CAAC,GAAG,EACjB,KAAK,CACN;IACD,aAAa,CAAC,UAAU,CACtB,aAAa,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,EACjC,aAAa,EACb,OAAO,EACP,EAAE,EACF,aAAa,CAAC,KAAK,EACnB,YAAY,EACZ,CAAC,EACD,QAAQ,EACR,OAAO,EACP,MAAM,EACN,CAAC,EACD,aAAa,CAAC,GAAG,EACjB,KAAK,CACN;CACF,CAAC;AACF,MAAM,KAAK,GAAG,aAAa,CAAC,mBAAmB,CAC7C,aAAa,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,EAC/B,aAAa,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAClC,aAAa,CAAC,KAAK,EACnB,UAAU,CACX,CAAC;AAEF,MAAM,GAAG,GAAG,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAE9B,QAAA,IAAI,GAAkB;IACjC,IAAI,EAAE,eAAe;IACrB,aAAa,EAAE,GAAG;IAClB,aAAa,EACX,m9BAAm9B;CACt9B,CAAC"}
1
+ {"version":3,"file":"svg-text-bold.js","sourceRoot":"","sources":["../../../../../src/exporters/__tests__/svg-export-image/test-defs/svg-text-bold.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,wEAA0D;AAE1D,MAAM,UAAU,GAAG;IACjB,aAAa,CAAC,UAAU,CACtB,aAAa,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,EACjC,aAAa,EACb,OAAO,EACP,EAAE,EACF,aAAa,CAAC,KAAK,EACnB,MAAM,EACN,CAAC,EACD,QAAQ,EACR,OAAO,EACP,MAAM,EACN,CAAC,EACD,aAAa,CAAC,GAAG,EACjB,KAAK,CACN;IACD,aAAa,CAAC,UAAU,CACtB,aAAa,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,EACjC,aAAa,EACb,OAAO,EACP,EAAE,EACF,aAAa,CAAC,KAAK,EACnB,YAAY,EACZ,CAAC,EACD,QAAQ,EACR,OAAO,EACP,MAAM,EACN,CAAC,EACD,aAAa,CAAC,GAAG,EACjB,KAAK,CACN;CACF,CAAC;AACF,MAAM,KAAK,GAAG,aAAa,CAAC,mBAAmB,CAC7C,aAAa,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,EAC/B,aAAa,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAClC,aAAa,CAAC,KAAK,EACnB,UAAU,CACX,CAAC;AAEF,MAAM,GAAG,GAAG,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAE9B,QAAA,IAAI,GAAkB;IACjC,IAAI,EAAE,eAAe;IACrB,aAAa,EAAE,GAAG;IAClB,aAAa,EACX,moCAAmoC;CACtoC,CAAC"}
@@ -36,6 +36,6 @@ const svg = AbstractImage.createSVG(image);
36
36
  exports.test = {
37
37
  name: "svg text growth directions",
38
38
  abstractImage: svg,
39
- expectedImage: '<svg xmlns="http://www.w3.org/2000/svg" width="400px" height="400px" viewBox="0 0 400 400"><text style="text-anchor:end;font-size:12px;font-weight:bold;font-family:Arial;stroke:rgb(255, 0, 0);stroke-opacity:1;stroke-width:2px;" transform="rotate(0 10 10)"><tspan x="10" y="10" height="12px">Hello World</tspan></text>,<text style="text-anchor:end;font-size:12px;font-weight:bold;font-family:Arial;fill:rgb(0, 0, 0);fill-opacity:1;" transform="rotate(0 10 10)"><tspan x="10" y="10" height="12px">Hello World</tspan></text><text style="text-anchor:middle;font-size:12px;font-weight:bold;font-family:Arial;stroke:rgb(255, 0, 0);stroke-opacity:1;stroke-width:2px;" transform="rotate(0 10 30)"><tspan x="10" y="36" height="12px">Hello World</tspan></text>,<text style="text-anchor:middle;font-size:12px;font-weight:bold;font-family:Arial;fill:rgb(0, 0, 0);fill-opacity:1;" transform="rotate(0 10 30)"><tspan x="10" y="36" height="12px">Hello World</tspan></text><text style="text-anchor:start;font-size:12px;font-weight:bold;font-family:Arial;stroke:rgb(255, 0, 0);stroke-opacity:1;stroke-width:2px;" transform="rotate(0 10 50)"><tspan x="10" y="62" height="12px">Hello World</tspan></text>,<text style="text-anchor:start;font-size:12px;font-weight:bold;font-family:Arial;fill:rgb(0, 0, 0);fill-opacity:1;" transform="rotate(0 10 50)"><tspan x="10" y="62" height="12px">Hello World</tspan></text><text style="text-anchor:start;font-size:12px;font-weight:bold;font-family:Arial;stroke:rgb(255, 0, 0);stroke-opacity:1;stroke-width:2px;" transform="rotate(0 10 70)"><tspan x="10" y="82" height="12px">Hello World</tspan></text>,<text style="text-anchor:start;font-size:12px;font-weight:bold;font-family:Arial;fill:rgb(0, 0, 0);fill-opacity:1;" transform="rotate(0 10 70)"><tspan x="10" y="82" height="12px">Hello World</tspan></text></svg>',
39
+ expectedImage: '<svg xmlns="http://www.w3.org/2000/svg" width="400px" height="400px" viewBox="0 0 400 400"><text style="text-anchor:end;font-size:12px;font-weight:bold;font-family:Arial;stroke:rgb(255, 0, 0);stroke-opacity:1;stroke-width:2px;" transform="rotate(0 10 10)"><tspan x="10" y="10" height="12px"><tspan alignment-baseline="baseline">Hello World</tspan></tspan></text>,<text style="text-anchor:end;font-size:12px;font-weight:bold;font-family:Arial;fill:rgb(0, 0, 0);fill-opacity:1;" transform="rotate(0 10 10)"><tspan x="10" y="10" height="12px"><tspan alignment-baseline="baseline">Hello World</tspan></tspan></text><text style="text-anchor:middle;font-size:12px;font-weight:bold;font-family:Arial;stroke:rgb(255, 0, 0);stroke-opacity:1;stroke-width:2px;" transform="rotate(0 10 30)"><tspan x="10" y="30" height="12px"><tspan alignment-baseline="central">Hello World</tspan></tspan></text>,<text style="text-anchor:middle;font-size:12px;font-weight:bold;font-family:Arial;fill:rgb(0, 0, 0);fill-opacity:1;" transform="rotate(0 10 30)"><tspan x="10" y="30" height="12px"><tspan alignment-baseline="central">Hello World</tspan></tspan></text><text style="text-anchor:start;font-size:12px;font-weight:bold;font-family:Arial;stroke:rgb(255, 0, 0);stroke-opacity:1;stroke-width:2px;" transform="rotate(0 10 50)"><tspan x="10" y="50" height="12px"><tspan alignment-baseline="hanging">Hello World</tspan></tspan></text>,<text style="text-anchor:start;font-size:12px;font-weight:bold;font-family:Arial;fill:rgb(0, 0, 0);fill-opacity:1;" transform="rotate(0 10 50)"><tspan x="10" y="50" height="12px"><tspan alignment-baseline="hanging">Hello World</tspan></tspan></text><text style="text-anchor:start;font-size:12px;font-weight:bold;font-family:Arial;stroke:rgb(255, 0, 0);stroke-opacity:1;stroke-width:2px;" transform="rotate(0 10 70)"><tspan x="10" y="70" height="12px"><tspan alignment-baseline="hanging">Hello World</tspan></tspan></text>,<text style="text-anchor:start;font-size:12px;font-weight:bold;font-family:Arial;fill:rgb(0, 0, 0);fill-opacity:1;" transform="rotate(0 10 70)"><tspan x="10" y="70" height="12px"><tspan alignment-baseline="hanging">Hello World</tspan></tspan></text></svg>',
40
40
  };
41
41
  //# sourceMappingURL=svg-text-growth-directions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"svg-text-growth-directions.js","sourceRoot":"","sources":["../../../../../src/exporters/__tests__/svg-export-image/test-defs/svg-text-growth-directions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,wEAA0D;AAE1D,MAAM,UAAU,GAAG;IACjB,aAAa,CAAC,UAAU,CACtB,aAAa,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,EACjC,aAAa,EACb,OAAO,EACP,EAAE,EACF,aAAa,CAAC,KAAK,EACnB,MAAM,EACN,CAAC,EACD,QAAQ,EACR,MAAM,EACN,IAAI,EACJ,CAAC,EACD,aAAa,CAAC,GAAG,EACjB,KAAK,CACN;IACD,aAAa,CAAC,UAAU,CACtB,aAAa,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,EACjC,aAAa,EACb,OAAO,EACP,EAAE,EACF,aAAa,CAAC,KAAK,EACnB,MAAM,EACN,CAAC,EACD,QAAQ,EACR,SAAS,EACT,SAAS,EACT,CAAC,EACD,aAAa,CAAC,GAAG,EACjB,KAAK,CACN;IACD,aAAa,CAAC,UAAU,CACtB,aAAa,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,EACjC,aAAa,EACb,OAAO,EACP,EAAE,EACF,aAAa,CAAC,KAAK,EACnB,MAAM,EACN,CAAC,EACD,MAAM,EACN,OAAO,EACP,MAAM,EACN,CAAC,EACD,aAAa,CAAC,GAAG,EACjB,KAAK,CACN;IACD,aAAa,CAAC,UAAU,CACtB,aAAa,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,EACjC,aAAa,EACb,OAAO,EACP,EAAE,EACF,aAAa,CAAC,KAAK,EACnB,MAAM,EACN,CAAC,EACD,OAAO,EACP,OAAO,EACP,MAAM,EACN,CAAC,EACD,aAAa,CAAC,GAAG,EACjB,KAAK,CACN;CACF,CAAC;AACF,MAAM,KAAK,GAAG,aAAa,CAAC,mBAAmB,CAC7C,aAAa,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,EAC/B,aAAa,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAClC,aAAa,CAAC,KAAK,EACnB,UAAU,CACX,CAAC;AAEF,MAAM,GAAG,GAAG,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAE9B,QAAA,IAAI,GAAkB;IACjC,IAAI,EAAE,4BAA4B;IAClC,aAAa,EAAE,GAAG;IAClB,aAAa,EACX,yyDAAyyD;CAC5yD,CAAC"}
1
+ {"version":3,"file":"svg-text-growth-directions.js","sourceRoot":"","sources":["../../../../../src/exporters/__tests__/svg-export-image/test-defs/svg-text-growth-directions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,wEAA0D;AAE1D,MAAM,UAAU,GAAG;IACjB,aAAa,CAAC,UAAU,CACtB,aAAa,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,EACjC,aAAa,EACb,OAAO,EACP,EAAE,EACF,aAAa,CAAC,KAAK,EACnB,MAAM,EACN,CAAC,EACD,QAAQ,EACR,MAAM,EACN,IAAI,EACJ,CAAC,EACD,aAAa,CAAC,GAAG,EACjB,KAAK,CACN;IACD,aAAa,CAAC,UAAU,CACtB,aAAa,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,EACjC,aAAa,EACb,OAAO,EACP,EAAE,EACF,aAAa,CAAC,KAAK,EACnB,MAAM,EACN,CAAC,EACD,QAAQ,EACR,SAAS,EACT,SAAS,EACT,CAAC,EACD,aAAa,CAAC,GAAG,EACjB,KAAK,CACN;IACD,aAAa,CAAC,UAAU,CACtB,aAAa,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,EACjC,aAAa,EACb,OAAO,EACP,EAAE,EACF,aAAa,CAAC,KAAK,EACnB,MAAM,EACN,CAAC,EACD,MAAM,EACN,OAAO,EACP,MAAM,EACN,CAAC,EACD,aAAa,CAAC,GAAG,EACjB,KAAK,CACN;IACD,aAAa,CAAC,UAAU,CACtB,aAAa,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,EACjC,aAAa,EACb,OAAO,EACP,EAAE,EACF,aAAa,CAAC,KAAK,EACnB,MAAM,EACN,CAAC,EACD,OAAO,EACP,OAAO,EACP,MAAM,EACN,CAAC,EACD,aAAa,CAAC,GAAG,EACjB,KAAK,CACN;CACF,CAAC;AACF,MAAM,KAAK,GAAG,aAAa,CAAC,mBAAmB,CAC7C,aAAa,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,EAC/B,aAAa,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAClC,aAAa,CAAC,KAAK,EACnB,UAAU,CACX,CAAC;AAEF,MAAM,GAAG,GAAG,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAE9B,QAAA,IAAI,GAAkB;IACjC,IAAI,EAAE,4BAA4B;IAClC,aAAa,EAAE,GAAG;IAClB,aAAa,EACX,2oEAA2oE;CAC9oE,CAAC"}
@@ -35,6 +35,6 @@ const svg = AbstractImage.createSVG(image);
35
35
  exports.test = {
36
36
  name: "svg text italic",
37
37
  abstractImage: svg,
38
- expectedImage: '<svg xmlns="http://www.w3.org/2000/svg" width="400px" height="400px" viewBox="0 0 400 400"><text style="text-anchor:start;font-size:12px;font-weight:normal;font-family:Arial;stroke:rgb(255, 0, 0);stroke-opacity:1;stroke-width:2px;" transform="rotate(0 10 10)"><tspan x="10" y="22" height="12px">Hello World</tspan></text>,<text style="text-anchor:start;font-size:12px;font-weight:normal;font-family:Arial;fill:rgb(0, 0, 0);fill-opacity:1;" transform="rotate(0 10 10)"><tspan x="10" y="22" height="12px">Hello World</tspan></text><text style="text-anchor:start;font-size:12px;font-weight:bold;font-family:Arial;stroke:rgb(255, 0, 0);stroke-opacity:1;stroke-width:2px;" transform="rotate(0 20 20)"><tspan x="20" y="32" height="12px">Hello World</tspan></text>,<text style="text-anchor:start;font-size:12px;font-weight:bold;font-family:Arial;fill:rgb(0, 0, 0);fill-opacity:1;" transform="rotate(0 20 20)"><tspan x="20" y="32" height="12px">Hello World</tspan></text><text style="text-anchor:start;font-size:12px;font-weight:mediumBold;font-family:Arial;stroke:rgb(255, 0, 0);stroke-opacity:1;stroke-width:2px;" transform="rotate(0 30 30)"><tspan x="30" y="42" height="12px">Hello World</tspan></text>,<text style="text-anchor:start;font-size:12px;font-weight:mediumBold;font-family:Arial;fill:rgb(0, 0, 0);fill-opacity:1;" transform="rotate(0 30 30)"><tspan x="30" y="42" height="12px">Hello World</tspan></text></svg>',
38
+ expectedImage: '<svg xmlns="http://www.w3.org/2000/svg" width="400px" height="400px" viewBox="0 0 400 400"><text style="text-anchor:start;font-size:12px;font-weight:normal;font-family:Arial;stroke:rgb(255, 0, 0);stroke-opacity:1;stroke-width:2px;" transform="rotate(0 10 10)"><tspan x="10" y="10" height="12px"><tspan alignment-baseline="hanging">Hello World</tspan></tspan></text>,<text style="text-anchor:start;font-size:12px;font-weight:normal;font-family:Arial;fill:rgb(0, 0, 0);fill-opacity:1;" transform="rotate(0 10 10)"><tspan x="10" y="10" height="12px"><tspan alignment-baseline="hanging">Hello World</tspan></tspan></text><text style="text-anchor:start;font-size:12px;font-weight:bold;font-family:Arial;stroke:rgb(255, 0, 0);stroke-opacity:1;stroke-width:2px;" transform="rotate(0 20 20)"><tspan x="20" y="20" height="12px"><tspan alignment-baseline="hanging">Hello World</tspan></tspan></text>,<text style="text-anchor:start;font-size:12px;font-weight:bold;font-family:Arial;fill:rgb(0, 0, 0);fill-opacity:1;" transform="rotate(0 20 20)"><tspan x="20" y="20" height="12px"><tspan alignment-baseline="hanging">Hello World</tspan></tspan></text><text style="text-anchor:start;font-size:12px;font-weight:mediumBold;font-family:Arial;stroke:rgb(255, 0, 0);stroke-opacity:1;stroke-width:2px;" transform="rotate(0 30 30)"><tspan x="30" y="30" height="12px"><tspan alignment-baseline="hanging">Hello World</tspan></tspan></text>,<text style="text-anchor:start;font-size:12px;font-weight:mediumBold;font-family:Arial;fill:rgb(0, 0, 0);fill-opacity:1;" transform="rotate(0 30 30)"><tspan x="30" y="30" height="12px"><tspan alignment-baseline="hanging">Hello World</tspan></tspan></text></svg>',
39
39
  };
40
40
  //# sourceMappingURL=svg-text-italic.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"svg-text-italic.js","sourceRoot":"","sources":["../../../../../src/exporters/__tests__/svg-export-image/test-defs/svg-text-italic.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,wEAA0D;AAE1D,MAAM,UAAU,GAAG;IACjB,aAAa,CAAC,UAAU,CACtB,aAAa,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,EACjC,aAAa,EACb,OAAO,EACP,EAAE,EACF,aAAa,CAAC,KAAK,EACnB,QAAQ,EACR,CAAC,EACD,QAAQ,EACR,OAAO,EACP,MAAM,EACN,CAAC,EACD,aAAa,CAAC,GAAG,EACjB,IAAI,CACL;IACD,aAAa,CAAC,UAAU,CACtB,aAAa,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,EACjC,aAAa,EACb,OAAO,EACP,EAAE,EACF,aAAa,CAAC,KAAK,EACnB,MAAM,EACN,CAAC,EACD,QAAQ,EACR,OAAO,EACP,MAAM,EACN,CAAC,EACD,aAAa,CAAC,GAAG,EACjB,IAAI,CACL;IACD,aAAa,CAAC,UAAU,CACtB,aAAa,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,EACjC,aAAa,EACb,OAAO,EACP,EAAE,EACF,aAAa,CAAC,KAAK,EACnB,YAAY,EACZ,CAAC,EACD,QAAQ,EACR,OAAO,EACP,MAAM,EACN,CAAC,EACD,aAAa,CAAC,GAAG,EACjB,IAAI,CACL;CACF,CAAC;AACF,MAAM,KAAK,GAAG,aAAa,CAAC,mBAAmB,CAC7C,aAAa,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,EAC/B,aAAa,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAClC,aAAa,CAAC,KAAK,EACnB,UAAU,CACX,CAAC;AAEF,MAAM,GAAG,GAAG,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAE9B,QAAA,IAAI,GAAkB;IACjC,IAAI,EAAE,iBAAiB;IACvB,aAAa,EAAE,GAAG;IAClB,aAAa,EACX,y4CAAy4C;CAC54C,CAAC"}
1
+ {"version":3,"file":"svg-text-italic.js","sourceRoot":"","sources":["../../../../../src/exporters/__tests__/svg-export-image/test-defs/svg-text-italic.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,wEAA0D;AAE1D,MAAM,UAAU,GAAG;IACjB,aAAa,CAAC,UAAU,CACtB,aAAa,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,EACjC,aAAa,EACb,OAAO,EACP,EAAE,EACF,aAAa,CAAC,KAAK,EACnB,QAAQ,EACR,CAAC,EACD,QAAQ,EACR,OAAO,EACP,MAAM,EACN,CAAC,EACD,aAAa,CAAC,GAAG,EACjB,IAAI,CACL;IACD,aAAa,CAAC,UAAU,CACtB,aAAa,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,EACjC,aAAa,EACb,OAAO,EACP,EAAE,EACF,aAAa,CAAC,KAAK,EACnB,MAAM,EACN,CAAC,EACD,QAAQ,EACR,OAAO,EACP,MAAM,EACN,CAAC,EACD,aAAa,CAAC,GAAG,EACjB,IAAI,CACL;IACD,aAAa,CAAC,UAAU,CACtB,aAAa,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,EACjC,aAAa,EACb,OAAO,EACP,EAAE,EACF,aAAa,CAAC,KAAK,EACnB,YAAY,EACZ,CAAC,EACD,QAAQ,EACR,OAAO,EACP,MAAM,EACN,CAAC,EACD,aAAa,CAAC,GAAG,EACjB,IAAI,CACL;CACF,CAAC;AACF,MAAM,KAAK,GAAG,aAAa,CAAC,mBAAmB,CAC7C,aAAa,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,EAC/B,aAAa,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAClC,aAAa,CAAC,KAAK,EACnB,UAAU,CACX,CAAC;AAEF,MAAM,GAAG,GAAG,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAE9B,QAAA,IAAI,GAAkB;IACjC,IAAI,EAAE,iBAAiB;IACvB,aAAa,EAAE,GAAG;IAClB,aAAa,EACX,ipDAAipD;CACppD,CAAC"}
@@ -33,6 +33,6 @@ const svg = AbstractImage.createSVG(image);
33
33
  exports.test = {
34
34
  name: "svg text",
35
35
  abstractImage: svg,
36
- expectedImage: '<svg xmlns="http://www.w3.org/2000/svg" width="400px" height="400px" viewBox="0 0 400 400"><text style="text-anchor:start;font-size:12px;font-weight:normal;font-family:Arial;stroke:rgb(255, 0, 0);stroke-opacity:1;stroke-width:2px;" transform="rotate(0 10 10)"><tspan x="10" y="22" height="12px">Hello World</tspan></text>,<text style="text-anchor:start;font-size:12px;font-weight:normal;font-family:Arial;fill:rgb(0, 0, 0);fill-opacity:1;" transform="rotate(0 10 10)"><tspan x="10" y="22" height="12px">Hello World</tspan></text></svg>',
36
+ expectedImage: '<svg xmlns="http://www.w3.org/2000/svg" width="400px" height="400px" viewBox="0 0 400 400"><text style="text-anchor:start;font-size:12px;font-weight:normal;font-family:Arial;stroke:rgb(255, 0, 0);stroke-opacity:1;stroke-width:2px;" transform="rotate(0 10 10)"><tspan x="10" y="10" height="12px"><tspan alignment-baseline="hanging">Hello World</tspan></tspan></text>,<text style="text-anchor:start;font-size:12px;font-weight:normal;font-family:Arial;fill:rgb(0, 0, 0);fill-opacity:1;" transform="rotate(0 10 10)"><tspan x="10" y="10" height="12px"><tspan alignment-baseline="hanging">Hello World</tspan></tspan></text></svg>',
37
37
  };
38
38
  //# sourceMappingURL=svg-text.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"svg-text.js","sourceRoot":"","sources":["../../../../../src/exporters/__tests__/svg-export-image/test-defs/svg-text.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,wEAA0D;AAE1D,MAAM,UAAU,GAAG;IACjB,aAAa,CAAC,UAAU,CACtB,aAAa,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,EACjC,aAAa,EACb,OAAO,EACP,EAAE,EACF,aAAa,CAAC,KAAK,EACnB,QAAQ,EACR,CAAC,EACD,QAAQ,EACR,OAAO,EACP,MAAM,EACN,CAAC,EACD,aAAa,CAAC,GAAG,EACjB,KAAK,CACN;CACF,CAAC;AACF,MAAM,KAAK,GAAG,aAAa,CAAC,mBAAmB,CAC7C,aAAa,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,EAC/B,aAAa,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAClC,aAAa,CAAC,KAAK,EACnB,UAAU,CACX,CAAC;AAEF,MAAM,GAAG,GAAG,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAE9B,QAAA,IAAI,GAAkB;IACjC,IAAI,EAAE,UAAU;IAChB,aAAa,EAAE,GAAG;IAClB,aAAa,EACX,yhBAAyhB;CAC5hB,CAAC"}
1
+ {"version":3,"file":"svg-text.js","sourceRoot":"","sources":["../../../../../src/exporters/__tests__/svg-export-image/test-defs/svg-text.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,wEAA0D;AAE1D,MAAM,UAAU,GAAG;IACjB,aAAa,CAAC,UAAU,CACtB,aAAa,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,EACjC,aAAa,EACb,OAAO,EACP,EAAE,EACF,aAAa,CAAC,KAAK,EACnB,QAAQ,EACR,CAAC,EACD,QAAQ,EACR,OAAO,EACP,MAAM,EACN,CAAC,EACD,aAAa,CAAC,GAAG,EACjB,KAAK,CACN;CACF,CAAC;AACF,MAAM,KAAK,GAAG,aAAa,CAAC,mBAAmB,CAC7C,aAAa,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,EAC/B,aAAa,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAClC,aAAa,CAAC,KAAK,EACnB,UAAU,CACX,CAAC;AAEF,MAAM,GAAG,GAAG,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAE9B,QAAA,IAAI,GAAkB;IACjC,IAAI,EAAE,UAAU;IAChB,aAAa,EAAE,GAAG;IAClB,aAAa,EACX,inBAAinB;CACpnB,CAAC"}
@@ -79,10 +79,10 @@ function Component({ component }) {
79
79
  if (!component.text) {
80
80
  return React.createElement(React.Fragment, null);
81
81
  }
82
- const dy = getBaselineAdjustment(component.verticalGrowthDirection);
82
+ const alignmentBaseline = getBaselineAdjustment(component.verticalGrowthDirection);
83
83
  const transform = `rotate(${component.clockwiseRotationDegrees} ${component.position.x} ${component.position.y})`;
84
84
  const lines = component.text !== null ? component.text.split("\n") : [];
85
- const tSpans = lines.map((t, i) => (React.createElement(TSpan, { key: t, text: t, x: component.position.x, y: component.position.y + (i + dy) * component.fontSize, fontSize: component.fontSize, lineHeight: component.fontSize })));
85
+ const tSpans = lines.map((t, i) => (React.createElement(TSpan, { key: t, text: t, x: component.position.x, y: component.position.y + i * component.fontSize, fontSize: component.fontSize, alignmentBaseline: alignmentBaseline, lineHeight: component.fontSize })));
86
86
  const baseStyle = {
87
87
  textAnchor: getTextAnchor(component.horizontalGrowthDirection),
88
88
  fontSize: component.fontSize.toString() + "px",
@@ -152,17 +152,17 @@ function getImageUrl(format, data) {
152
152
  return `data:image/svg+xml;base64,${base64}`;
153
153
  }
154
154
  }
155
- function TSpan({ text, x, y, fontSize, lineHeight, }) {
155
+ function TSpan({ text, x, y, fontSize, alignmentBaseline, lineHeight, }) {
156
156
  const split = text.split("<sub>").flatMap((t) => t.split("</sub>"));
157
157
  let inside = false;
158
158
  const tags = [];
159
159
  for (let i = 0; i < split.length; ++i) {
160
160
  const splitText = split[i];
161
161
  if (inside) {
162
- tags.push(React.createElement("tspan", { key: i, baselineShift: "sub", style: { fontSize: (fontSize * 0.8).toString() + "px" } }, splitText));
162
+ tags.push(React.createElement("tspan", { key: i, baselineShift: "sub", alignmentBaseline: alignmentBaseline, style: { fontSize: (fontSize * 0.8).toString() + "px" } }, splitText));
163
163
  }
164
164
  else {
165
- tags.push(React.createElement("tspan", { key: i }, splitText));
165
+ tags.push(React.createElement("tspan", { key: i, alignmentBaseline: alignmentBaseline }, splitText));
166
166
  }
167
167
  inside = !inside;
168
168
  }
@@ -170,13 +170,13 @@ function TSpan({ text, x, y, fontSize, lineHeight, }) {
170
170
  }
171
171
  function getBaselineAdjustment(d) {
172
172
  if (d === "up") {
173
- return 0.0;
173
+ return "baseline";
174
174
  }
175
175
  if (d === "uniform") {
176
- return 0.5;
176
+ return "central";
177
177
  }
178
178
  if (d === "down") {
179
- return 1.0;
179
+ return "hanging";
180
180
  }
181
181
  throw "Unknown text alignment " + d;
182
182
  }
@@ -1 +1 @@
1
- {"version":3,"file":"react-svg-export-image.js","sourceRoot":"","sources":["../../src/exporters/react-svg-export-image.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"react-svg-export-image.js","sourceRoot":"","sources":["../../src/exporters/react-svg-export-image.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAiC;AACjC,6CAA+B;AAC/B,8DAAgD;AAWhD,SAAgB,cAAc,CAC5B,KAAkC,EAClC,SAA6B;IAE7B,MAAM,EAAE,GAAG,SAAS,IAAI,EAAE,CAAC;IAC3B,MAAM,EAAE,GAAG,SAAS,CAAC;IACrB,OAAO,CACL,6BACE,EAAE,EAAE,EAAE,EACN,KAAK,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAC9B,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,EAChC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAC9D,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,EAClC,aAAa,EAAE,SAAS,CAAC,EAAE,CAAC,aAAa,EAAE,EAAE,CAAC,EAC9C,WAAW,EAAE,SAAS,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,EAC1C,aAAa,EAAE,SAAS,CAAC,EAAE,CAAC,aAAa,EAAE,EAAE,CAAC,IAE7C,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAC9B,oBAAC,SAAS,IAAC,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,GAAI,CACpC,CAAC,CACE,CACP,CAAC;AACJ,CAAC;AAtBD,wCAsBC;AAED,SAAS,SAAS,CAAC,QAAmC,EAAE,MAAc;IACpE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,CAAC,CAA4B,EAAE,EAAE;QACtC,MAAM,IAAI,GAAG,CAAC,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;QACrD,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QACtC,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC;QACrC,MAAM,UAAU,GAAG,aAAa,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC/D,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,MAAiB,EAAE,MAAM,CAAC,CAAC;QAClD,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACzD,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,EAAsB;IACxC,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,MAAM,EAAE,EAAE,CAAC;AACpB,CAAC;AAED,SAAS,SAAS,CAAC,MAA2B,EAAE,MAAc;IAC5D,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;QACpC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;IACrB,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC5C,OAAO,SAAS,CAAE,MAAM,CAAC,UAAsB,IAAI,SAAS,EAAE,MAAM,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,SAAS,CAAC,EAAE,SAAS,EAAmD;IAC/E,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;QACvB,KAAK,OAAO;YACV,OAAO,CACL,2BAAG,IAAI,EAAE,SAAS,CAAC,IAAI,IACpB,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACpC,oBAAC,SAAS,IAAC,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,GAAI,CACpC,CAAC,CACA,CACL,CAAC;QACJ,KAAK,aAAa;YAChB,MAAM,GAAG,GAAG,WAAW,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;YAC1D,OAAO,CACL,+BACE,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,EACtB,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,EACtB,KAAK,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,EACpD,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,EACrD,EAAE,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,EAC5B,IAAI,EAAE,GAAG,GACT,CACH,CAAC;QAEJ,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,eAAe,GACnB,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACvG,MAAM,gBAAgB,GACpB,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;YAC7F,OAAO,CACL,8BACE,EAAE,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,EAC5B,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,EACrB,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,EACrB,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,EACnB,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,EACnB,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,EACzC,WAAW,EAAE,SAAS,CAAC,eAAe,EACtC,aAAa,EAAE,cAAc,CAAC,SAAS,CAAC,WAAW,CAAC,EACpD,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,gBAAgB,GAClC,CACH,CAAC;QACJ,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;gBACpB,OAAO,yCAAK,CAAC;YACf,CAAC;YACD,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;YACnF,MAAM,SAAS,GAAG,UAAU,SAAS,CAAC,wBAAwB,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC;YAClH,MAAM,KAAK,GAAkB,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACvF,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACjC,oBAAC,KAAK,IACJ,GAAG,EAAE,CAAC,EACN,IAAI,EAAE,CAAC,EACP,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,EACvB,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,QAAQ,EAChD,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAC5B,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,SAAS,CAAC,QAAQ,GAC9B,CACH,CAAC,CAAC;YAEH,MAAM,SAAS,GAAG;gBAChB,UAAU,EAAE,aAAa,CAAC,SAAS,CAAC,yBAAyB,CAAC;gBAC9D,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,IAAI;gBAC9C,UAAU,EAAE,iBAAiB,CAAC,SAAS,CAAC,UAAU,CAAC;gBACnD,UAAU,EAAE,SAAS,CAAC,UAAU;aACjC,CAAC;YACF,OAAO,CACL;gBACG,SAAS,CAAC,eAAe,GAAG,CAAC,IAAI,SAAS,CAAC,WAAW,IAAI,CACzD,8BACE,KAAK,kCACA,SAAS,KACZ,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,EACzC,WAAW,EAAE,SAAS,CAAC,eAAe,KAExC,SAAS,EAAE,SAAS,IAEnB,MAAM,CACF,CACR;gBACD,8BACE,KAAK,kCAAO,SAAS,KAAE,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,KAC5D,SAAS,EAAE,SAAS,EACpB,EAAE,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,IAE3B,MAAM,CACF,CACN,CACJ,CAAC;QACJ,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;YACzE,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;YACzE,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;YACjE,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;YACjE,MAAM,eAAe,GACnB,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACvG,MAAM,gBAAgB,GACpB,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;YAC7F,OAAO,CACL,iCACE,EAAE,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,EAC5B,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,EACzC,WAAW,EAAE,SAAS,CAAC,eAAe,EACtC,aAAa,EAAE,cAAc,CAAC,SAAS,CAAC,WAAW,CAAC,EACpD,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,WAAW,EAAE,cAAc,CAAC,SAAS,CAAC,SAAS,CAAC,EAChD,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,GACrC,CACH,CAAC;QACJ,CAAC;QACD,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,IAAI,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9F,MAAM,eAAe,GACnB,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACvG,MAAM,gBAAgB,GACpB,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;YAC7F,OAAO,CACL,kCACE,EAAE,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,EAC5B,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,EACzC,WAAW,EAAE,SAAS,CAAC,eAAe,EACtC,aAAa,EAAE,cAAc,CAAC,SAAS,CAAC,WAAW,CAAC,EACpD,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,IAAI,EAAC,MAAM,GACX,CACH,CAAC;QACJ,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,IAAI,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1F,MAAM,eAAe,GACnB,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACvG,MAAM,gBAAgB,GACpB,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;YAC7F,OAAO,CACL,iCACE,EAAE,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,EAC5B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,EACzC,WAAW,EAAE,SAAS,CAAC,eAAe,EACtC,aAAa,EAAE,cAAc,CAAC,SAAS,CAAC,WAAW,CAAC,EACpD,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,WAAW,EAAE,cAAc,CAAC,SAAS,CAAC,SAAS,CAAC,EAChD,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,GACrC,CACH,CAAC;QACJ,CAAC;QACD,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,MAAM,eAAe,GACnB,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACvG,MAAM,gBAAgB,GACpB,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;YAC7F,OAAO,CACL,4CACE,EAAE,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,EAC5B,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,EACtB,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,EACtB,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAC9D,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAC/D,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,EACzC,WAAW,EAAE,SAAS,CAAC,eAAe,EACtC,aAAa,EAAE,cAAc,CAAC,SAAS,CAAC,WAAW,CAAC,EACpD,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,WAAW,EAAE,cAAc,CAAC,SAAS,CAAC,SAAS,CAAC,IAC5C,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IACtG,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,IACrC,CACH,CAAC;QACJ,CAAC;QACD;YACE,OAAO,yCAAK,CAAC;IACjB,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,UAA4C;IACrE,IAAI,UAAU,KAAK,YAAY,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;QAC9D,OAAO,MAAM,CAAC;IAChB,CAAC;SAAM,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;QAClC,OAAO,QAAQ,CAAC;IAClB,CAAC;SAAM,CAAC;QACN,OAAO,UAAU,CAAC;IACpB,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,MAAkC,EAAE,IAA6B;IACpF,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;SAAM,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7C,OAAO,yBAAyB,MAAM,EAAE,CAAC;IAC3C,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,wCAAwC,EAAE,EAAE,CAAC,CAAC;QACrG,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC;QACD,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QACxD,OAAO,6BAA6B,MAAM,EAAE,CAAC;IAC/C,CAAC;AACH,CAAC;AAED,SAAS,KAAK,CAAC,EACb,IAAI,EACJ,CAAC,EACD,CAAC,EACD,QAAQ,EACR,iBAAiB,EACjB,UAAU,GAQX;IACC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IACpE,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,MAAM,IAAI,GAAuB,EAAE,CAAC;IACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;QACtC,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,IAAI,CACP,+BACE,GAAG,EAAE,CAAC,EACN,aAAa,EAAC,KAAK,EACnB,iBAAiB,EAAE,iBAAiB,EACpC,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE,GAAG,IAAI,EAAE,IAEtD,SAAS,CACJ,CACT,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CACP,+BAAO,GAAG,EAAE,CAAC,EAAE,iBAAiB,EAAE,iBAAiB,IAChD,SAAS,CACJ,CACT,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,CAAC,MAAM,CAAC;IACnB,CAAC;IACD,OAAO,CACL,+BAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,QAAQ,EAAE,GAAG,IAAI,IACpD,IAAI,CACC,CACT,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,CAAgC;IAC7D,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QACf,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;QACpB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,CAAC,KAAK,MAAM,EAAE,CAAC;QACjB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,yBAAyB,GAAG,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,aAAa,CAAC,CAAgC;IACrD,IAAI,CAAC,KAAK,MAAM,EAAE,CAAC;QACjB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;QACpB,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC;QAClB,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,MAAM,sBAAsB,GAAG,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,UAAU,CAAC,KAA0B;IAC5C,OAAO,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,GAAG,CAAC;AACjG,CAAC;AAED,SAAS,cAAc,CAAC,KAA0B;IAChD,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;AACpC,CAAC"}
@@ -92,7 +92,7 @@ function abstractComponentToSVG(component) {
92
92
  fill: colorToRgb(component.textColor),
93
93
  fillOpacity: colorToOpacity(component.textColor),
94
94
  };
95
- const dy = getBaselineAdjustment(component.verticalGrowthDirection);
95
+ const alignmentBaseline = getBaselineAdjustment(component.verticalGrowthDirection);
96
96
  const transform = "rotate(" +
97
97
  component.clockwiseRotationDegrees.toString() +
98
98
  " " +
@@ -101,15 +101,29 @@ function abstractComponentToSVG(component) {
101
101
  component.position.y.toString() +
102
102
  ")";
103
103
  const lines = component.text !== null ? component.text.split("\n") : [];
104
- const tSpans = lines.map((t, i) => createElement("tspan", {
105
- x: component.position.x.toString(),
106
- y: (component.position.y + (i + dy) * lineHeight).toString(),
107
- height: lineHeight.toString() + "px",
108
- }, [
109
- t
110
- .replace("<sub>", `<tspan style="font-size: ${component.fontSize * 0.8}px" baseline-shift="sub">`)
111
- .replace("</sub>", "</tspan>"),
112
- ]));
104
+ const tSpans = lines.map((t, i) => {
105
+ const split = t.split("<sub>").flatMap((t) => t.split("</sub>"));
106
+ let inside = false;
107
+ const tags = [];
108
+ for (const st of split) {
109
+ if (inside) {
110
+ tags.push(createElement("tspan", {
111
+ "baseline-shift": "sub",
112
+ "font-size": (component.fontSize * 0.8).toString(),
113
+ "alignment-baseline": alignmentBaseline,
114
+ }, [st]));
115
+ }
116
+ else {
117
+ tags.push(createElement("tspan", { "alignment-baseline": alignmentBaseline }, [st]));
118
+ }
119
+ inside = !inside;
120
+ }
121
+ return createElement("tspan", {
122
+ x: component.position.x.toString(),
123
+ y: (component.position.y + i * lineHeight).toString(),
124
+ height: lineHeight.toString() + "px",
125
+ }, tags);
126
+ });
113
127
  const cs = [];
114
128
  if (component.strokeThickness > 0 && component.strokeColor !== null) {
115
129
  cs.push(createElement("text", { style: objectToAttributeValue(shadowStyle), transform: transform }, tSpans));
@@ -199,13 +213,13 @@ function convertUpperToHyphenLower(elementName) {
199
213
  }
200
214
  function getBaselineAdjustment(d) {
201
215
  if (d === "up") {
202
- return 0.0;
216
+ return "baseline";
203
217
  }
204
218
  if (d === "uniform") {
205
- return 0.5;
219
+ return "central";
206
220
  }
207
221
  if (d === "down") {
208
- return 1.0;
222
+ return "hanging";
209
223
  }
210
224
  throw "Unknown text alignment " + d;
211
225
  }
@@ -1 +1 @@
1
- {"version":3,"file":"svg-export-image.js","sourceRoot":"","sources":["../../src/exporters/svg-export-image.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"svg-export-image.js","sourceRoot":"","sources":["../../src/exporters/svg-export-image.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "abstract-image",
3
- "version": "8.2.2",
3
+ "version": "8.3.1",
4
4
  "description": "Dynamically create images using code or JSX and render to any format",
5
5
  "repository": "https://github.com/dividab/abstract-visuals/tree/master/packages/abstract-image",
6
6
  "main": "lib/index.js",
@@ -24,5 +24,5 @@
24
24
  "@types/react": "^18.3.3",
25
25
  "@types/react-dom": "^18.3.0"
26
26
  },
27
- "gitHead": "fa8dd3974a3b0374a15a829596f1f565ea92ffb5"
27
+ "gitHead": "b371270c2308183546e19757da43daddf7c91d8f"
28
28
  }
@@ -40,5 +40,5 @@ export const test: ExportTestDef = {
40
40
  name: "svg group",
41
41
  abstractImage: svg,
42
42
  expectedImage:
43
- '<svg xmlns="http://www.w3.org/2000/svg" width="400px" height="400px" viewBox="0 0 400 400"><g name="group"><text style="text-anchor:middle;font-size:12px;font-weight:normal;font-family:Helvetica;fill:rgb(0, 0, 0);fill-opacity:1;" transform="rotate(0 200 200)"><tspan x="200" y="206" height="12px">Test</tspan></text><rect x="10" y="50" width="40" height="10" stroke="rgb(0, 0, 255)" stroke-opacity="1" stroke-width="2" fill="rgb(255, 0, 0)" fill-opacity="1"></rect></g></svg>',
43
+ '<svg xmlns="http://www.w3.org/2000/svg" width="400px" height="400px" viewBox="0 0 400 400"><g name="group"><text style="text-anchor:middle;font-size:12px;font-weight:normal;font-family:Helvetica;fill:rgb(0, 0, 0);fill-opacity:1;" transform="rotate(0 200 200)"><tspan x="200" y="200" height="12px"><tspan alignment-baseline="central">Test</tspan></tspan></text><rect x="10" y="50" width="40" height="10" stroke="rgb(0, 0, 255)" stroke-opacity="1" stroke-width="2" fill="rgb(255, 0, 0)" fill-opacity="1"></rect></g></svg>',
44
44
  };
@@ -46,5 +46,5 @@ export const test: ExportTestDef = {
46
46
  name: "svg text bold",
47
47
  abstractImage: svg,
48
48
  expectedImage:
49
- '<svg xmlns="http://www.w3.org/2000/svg" width="400px" height="400px" viewBox="0 0 400 400"><text style="text-anchor:start;font-size:12px;font-weight:bold;font-family:Arial;stroke:rgb(255, 0, 0);stroke-opacity:1;stroke-width:2px;" transform="rotate(0 10 10)"><tspan x="10" y="22" height="12px">Hello World</tspan></text>,<text style="text-anchor:start;font-size:12px;font-weight:bold;font-family:Arial;fill:rgb(0, 0, 0);fill-opacity:1;" transform="rotate(0 10 10)"><tspan x="10" y="22" height="12px">Hello World</tspan></text><text style="text-anchor:start;font-size:12px;font-weight:mediumBold;font-family:Arial;stroke:rgb(255, 0, 0);stroke-opacity:1;stroke-width:2px;" transform="rotate(0 40 40)"><tspan x="40" y="52" height="12px">Hello World</tspan></text>,<text style="text-anchor:start;font-size:12px;font-weight:mediumBold;font-family:Arial;fill:rgb(0, 0, 0);fill-opacity:1;" transform="rotate(0 40 40)"><tspan x="40" y="52" height="12px">Hello World</tspan></text></svg>',
49
+ '<svg xmlns="http://www.w3.org/2000/svg" width="400px" height="400px" viewBox="0 0 400 400"><text style="text-anchor:start;font-size:12px;font-weight:bold;font-family:Arial;stroke:rgb(255, 0, 0);stroke-opacity:1;stroke-width:2px;" transform="rotate(0 10 10)"><tspan x="10" y="10" height="12px"><tspan alignment-baseline="hanging">Hello World</tspan></tspan></text>,<text style="text-anchor:start;font-size:12px;font-weight:bold;font-family:Arial;fill:rgb(0, 0, 0);fill-opacity:1;" transform="rotate(0 10 10)"><tspan x="10" y="10" height="12px"><tspan alignment-baseline="hanging">Hello World</tspan></tspan></text><text style="text-anchor:start;font-size:12px;font-weight:mediumBold;font-family:Arial;stroke:rgb(255, 0, 0);stroke-opacity:1;stroke-width:2px;" transform="rotate(0 40 40)"><tspan x="40" y="40" height="12px"><tspan alignment-baseline="hanging">Hello World</tspan></tspan></text>,<text style="text-anchor:start;font-size:12px;font-weight:mediumBold;font-family:Arial;fill:rgb(0, 0, 0);fill-opacity:1;" transform="rotate(0 40 40)"><tspan x="40" y="40" height="12px"><tspan alignment-baseline="hanging">Hello World</tspan></tspan></text></svg>',
50
50
  };
@@ -76,5 +76,5 @@ export const test: ExportTestDef = {
76
76
  name: "svg text growth directions",
77
77
  abstractImage: svg,
78
78
  expectedImage:
79
- '<svg xmlns="http://www.w3.org/2000/svg" width="400px" height="400px" viewBox="0 0 400 400"><text style="text-anchor:end;font-size:12px;font-weight:bold;font-family:Arial;stroke:rgb(255, 0, 0);stroke-opacity:1;stroke-width:2px;" transform="rotate(0 10 10)"><tspan x="10" y="10" height="12px">Hello World</tspan></text>,<text style="text-anchor:end;font-size:12px;font-weight:bold;font-family:Arial;fill:rgb(0, 0, 0);fill-opacity:1;" transform="rotate(0 10 10)"><tspan x="10" y="10" height="12px">Hello World</tspan></text><text style="text-anchor:middle;font-size:12px;font-weight:bold;font-family:Arial;stroke:rgb(255, 0, 0);stroke-opacity:1;stroke-width:2px;" transform="rotate(0 10 30)"><tspan x="10" y="36" height="12px">Hello World</tspan></text>,<text style="text-anchor:middle;font-size:12px;font-weight:bold;font-family:Arial;fill:rgb(0, 0, 0);fill-opacity:1;" transform="rotate(0 10 30)"><tspan x="10" y="36" height="12px">Hello World</tspan></text><text style="text-anchor:start;font-size:12px;font-weight:bold;font-family:Arial;stroke:rgb(255, 0, 0);stroke-opacity:1;stroke-width:2px;" transform="rotate(0 10 50)"><tspan x="10" y="62" height="12px">Hello World</tspan></text>,<text style="text-anchor:start;font-size:12px;font-weight:bold;font-family:Arial;fill:rgb(0, 0, 0);fill-opacity:1;" transform="rotate(0 10 50)"><tspan x="10" y="62" height="12px">Hello World</tspan></text><text style="text-anchor:start;font-size:12px;font-weight:bold;font-family:Arial;stroke:rgb(255, 0, 0);stroke-opacity:1;stroke-width:2px;" transform="rotate(0 10 70)"><tspan x="10" y="82" height="12px">Hello World</tspan></text>,<text style="text-anchor:start;font-size:12px;font-weight:bold;font-family:Arial;fill:rgb(0, 0, 0);fill-opacity:1;" transform="rotate(0 10 70)"><tspan x="10" y="82" height="12px">Hello World</tspan></text></svg>',
79
+ '<svg xmlns="http://www.w3.org/2000/svg" width="400px" height="400px" viewBox="0 0 400 400"><text style="text-anchor:end;font-size:12px;font-weight:bold;font-family:Arial;stroke:rgb(255, 0, 0);stroke-opacity:1;stroke-width:2px;" transform="rotate(0 10 10)"><tspan x="10" y="10" height="12px"><tspan alignment-baseline="baseline">Hello World</tspan></tspan></text>,<text style="text-anchor:end;font-size:12px;font-weight:bold;font-family:Arial;fill:rgb(0, 0, 0);fill-opacity:1;" transform="rotate(0 10 10)"><tspan x="10" y="10" height="12px"><tspan alignment-baseline="baseline">Hello World</tspan></tspan></text><text style="text-anchor:middle;font-size:12px;font-weight:bold;font-family:Arial;stroke:rgb(255, 0, 0);stroke-opacity:1;stroke-width:2px;" transform="rotate(0 10 30)"><tspan x="10" y="30" height="12px"><tspan alignment-baseline="central">Hello World</tspan></tspan></text>,<text style="text-anchor:middle;font-size:12px;font-weight:bold;font-family:Arial;fill:rgb(0, 0, 0);fill-opacity:1;" transform="rotate(0 10 30)"><tspan x="10" y="30" height="12px"><tspan alignment-baseline="central">Hello World</tspan></tspan></text><text style="text-anchor:start;font-size:12px;font-weight:bold;font-family:Arial;stroke:rgb(255, 0, 0);stroke-opacity:1;stroke-width:2px;" transform="rotate(0 10 50)"><tspan x="10" y="50" height="12px"><tspan alignment-baseline="hanging">Hello World</tspan></tspan></text>,<text style="text-anchor:start;font-size:12px;font-weight:bold;font-family:Arial;fill:rgb(0, 0, 0);fill-opacity:1;" transform="rotate(0 10 50)"><tspan x="10" y="50" height="12px"><tspan alignment-baseline="hanging">Hello World</tspan></tspan></text><text style="text-anchor:start;font-size:12px;font-weight:bold;font-family:Arial;stroke:rgb(255, 0, 0);stroke-opacity:1;stroke-width:2px;" transform="rotate(0 10 70)"><tspan x="10" y="70" height="12px"><tspan alignment-baseline="hanging">Hello World</tspan></tspan></text>,<text style="text-anchor:start;font-size:12px;font-weight:bold;font-family:Arial;fill:rgb(0, 0, 0);fill-opacity:1;" transform="rotate(0 10 70)"><tspan x="10" y="70" height="12px"><tspan alignment-baseline="hanging">Hello World</tspan></tspan></text></svg>',
80
80
  };
@@ -61,5 +61,5 @@ export const test: ExportTestDef = {
61
61
  name: "svg text italic",
62
62
  abstractImage: svg,
63
63
  expectedImage:
64
- '<svg xmlns="http://www.w3.org/2000/svg" width="400px" height="400px" viewBox="0 0 400 400"><text style="text-anchor:start;font-size:12px;font-weight:normal;font-family:Arial;stroke:rgb(255, 0, 0);stroke-opacity:1;stroke-width:2px;" transform="rotate(0 10 10)"><tspan x="10" y="22" height="12px">Hello World</tspan></text>,<text style="text-anchor:start;font-size:12px;font-weight:normal;font-family:Arial;fill:rgb(0, 0, 0);fill-opacity:1;" transform="rotate(0 10 10)"><tspan x="10" y="22" height="12px">Hello World</tspan></text><text style="text-anchor:start;font-size:12px;font-weight:bold;font-family:Arial;stroke:rgb(255, 0, 0);stroke-opacity:1;stroke-width:2px;" transform="rotate(0 20 20)"><tspan x="20" y="32" height="12px">Hello World</tspan></text>,<text style="text-anchor:start;font-size:12px;font-weight:bold;font-family:Arial;fill:rgb(0, 0, 0);fill-opacity:1;" transform="rotate(0 20 20)"><tspan x="20" y="32" height="12px">Hello World</tspan></text><text style="text-anchor:start;font-size:12px;font-weight:mediumBold;font-family:Arial;stroke:rgb(255, 0, 0);stroke-opacity:1;stroke-width:2px;" transform="rotate(0 30 30)"><tspan x="30" y="42" height="12px">Hello World</tspan></text>,<text style="text-anchor:start;font-size:12px;font-weight:mediumBold;font-family:Arial;fill:rgb(0, 0, 0);fill-opacity:1;" transform="rotate(0 30 30)"><tspan x="30" y="42" height="12px">Hello World</tspan></text></svg>',
64
+ '<svg xmlns="http://www.w3.org/2000/svg" width="400px" height="400px" viewBox="0 0 400 400"><text style="text-anchor:start;font-size:12px;font-weight:normal;font-family:Arial;stroke:rgb(255, 0, 0);stroke-opacity:1;stroke-width:2px;" transform="rotate(0 10 10)"><tspan x="10" y="10" height="12px"><tspan alignment-baseline="hanging">Hello World</tspan></tspan></text>,<text style="text-anchor:start;font-size:12px;font-weight:normal;font-family:Arial;fill:rgb(0, 0, 0);fill-opacity:1;" transform="rotate(0 10 10)"><tspan x="10" y="10" height="12px"><tspan alignment-baseline="hanging">Hello World</tspan></tspan></text><text style="text-anchor:start;font-size:12px;font-weight:bold;font-family:Arial;stroke:rgb(255, 0, 0);stroke-opacity:1;stroke-width:2px;" transform="rotate(0 20 20)"><tspan x="20" y="20" height="12px"><tspan alignment-baseline="hanging">Hello World</tspan></tspan></text>,<text style="text-anchor:start;font-size:12px;font-weight:bold;font-family:Arial;fill:rgb(0, 0, 0);fill-opacity:1;" transform="rotate(0 20 20)"><tspan x="20" y="20" height="12px"><tspan alignment-baseline="hanging">Hello World</tspan></tspan></text><text style="text-anchor:start;font-size:12px;font-weight:mediumBold;font-family:Arial;stroke:rgb(255, 0, 0);stroke-opacity:1;stroke-width:2px;" transform="rotate(0 30 30)"><tspan x="30" y="30" height="12px"><tspan alignment-baseline="hanging">Hello World</tspan></tspan></text>,<text style="text-anchor:start;font-size:12px;font-weight:mediumBold;font-family:Arial;fill:rgb(0, 0, 0);fill-opacity:1;" transform="rotate(0 30 30)"><tspan x="30" y="30" height="12px"><tspan alignment-baseline="hanging">Hello World</tspan></tspan></text></svg>',
65
65
  };
@@ -31,5 +31,5 @@ export const test: ExportTestDef = {
31
31
  name: "svg text",
32
32
  abstractImage: svg,
33
33
  expectedImage:
34
- '<svg xmlns="http://www.w3.org/2000/svg" width="400px" height="400px" viewBox="0 0 400 400"><text style="text-anchor:start;font-size:12px;font-weight:normal;font-family:Arial;stroke:rgb(255, 0, 0);stroke-opacity:1;stroke-width:2px;" transform="rotate(0 10 10)"><tspan x="10" y="22" height="12px">Hello World</tspan></text>,<text style="text-anchor:start;font-size:12px;font-weight:normal;font-family:Arial;fill:rgb(0, 0, 0);fill-opacity:1;" transform="rotate(0 10 10)"><tspan x="10" y="22" height="12px">Hello World</tspan></text></svg>',
34
+ '<svg xmlns="http://www.w3.org/2000/svg" width="400px" height="400px" viewBox="0 0 400 400"><text style="text-anchor:start;font-size:12px;font-weight:normal;font-family:Arial;stroke:rgb(255, 0, 0);stroke-opacity:1;stroke-width:2px;" transform="rotate(0 10 10)"><tspan x="10" y="10" height="12px"><tspan alignment-baseline="hanging">Hello World</tspan></tspan></text>,<text style="text-anchor:start;font-size:12px;font-weight:normal;font-family:Arial;fill:rgb(0, 0, 0);fill-opacity:1;" transform="rotate(0 10 10)"><tspan x="10" y="10" height="12px"><tspan alignment-baseline="hanging">Hello World</tspan></tspan></text></svg>',
35
35
  };
@@ -115,7 +115,7 @@ function Component({ component }: { readonly component: AbstractImage.Component
115
115
  if (!component.text) {
116
116
  return <></>;
117
117
  }
118
- const dy = getBaselineAdjustment(component.verticalGrowthDirection);
118
+ const alignmentBaseline = getBaselineAdjustment(component.verticalGrowthDirection);
119
119
  const transform = `rotate(${component.clockwiseRotationDegrees} ${component.position.x} ${component.position.y})`;
120
120
  const lines: Array<string> = component.text !== null ? component.text.split("\n") : [];
121
121
  const tSpans = lines.map((t, i) => (
@@ -123,8 +123,9 @@ function Component({ component }: { readonly component: AbstractImage.Component
123
123
  key={t}
124
124
  text={t}
125
125
  x={component.position.x}
126
- y={component.position.y + (i + dy) * component.fontSize}
126
+ y={component.position.y + i * component.fontSize}
127
127
  fontSize={component.fontSize}
128
+ alignmentBaseline={alignmentBaseline}
128
129
  lineHeight={component.fontSize}
129
130
  />
130
131
  ));
@@ -284,12 +285,14 @@ function TSpan({
284
285
  x,
285
286
  y,
286
287
  fontSize,
288
+ alignmentBaseline,
287
289
  lineHeight,
288
290
  }: {
289
291
  readonly text: string;
290
292
  readonly x: number;
291
293
  readonly y: number;
292
294
  readonly fontSize: number;
295
+ readonly alignmentBaseline: "baseline" | "central" | "hanging";
293
296
  readonly lineHeight: number;
294
297
  }): JSX.Element {
295
298
  const split = text.split("<sub>").flatMap((t) => t.split("</sub>"));
@@ -299,12 +302,21 @@ function TSpan({
299
302
  const splitText = split[i];
300
303
  if (inside) {
301
304
  tags.push(
302
- <tspan key={i} baselineShift="sub" style={{ fontSize: (fontSize * 0.8).toString() + "px" }}>
305
+ <tspan
306
+ key={i}
307
+ baselineShift="sub"
308
+ alignmentBaseline={alignmentBaseline}
309
+ style={{ fontSize: (fontSize * 0.8).toString() + "px" }}
310
+ >
303
311
  {splitText}
304
312
  </tspan>
305
313
  );
306
314
  } else {
307
- tags.push(<tspan key={i}>{splitText}</tspan>);
315
+ tags.push(
316
+ <tspan key={i} alignmentBaseline={alignmentBaseline}>
317
+ {splitText}
318
+ </tspan>
319
+ );
308
320
  }
309
321
  inside = !inside;
310
322
  }
@@ -315,15 +327,15 @@ function TSpan({
315
327
  );
316
328
  }
317
329
 
318
- function getBaselineAdjustment(d: AbstractImage.GrowthDirection): number {
330
+ function getBaselineAdjustment(d: AbstractImage.GrowthDirection): "baseline" | "central" | "hanging" {
319
331
  if (d === "up") {
320
- return 0.0;
332
+ return "baseline";
321
333
  }
322
334
  if (d === "uniform") {
323
- return 0.5;
335
+ return "central";
324
336
  }
325
337
  if (d === "down") {
326
- return 1.0;
338
+ return "hanging";
327
339
  }
328
340
  throw "Unknown text alignment " + d;
329
341
  }
@@ -110,7 +110,7 @@ function abstractComponentToSVG(component: AbstractImage.Component): string {
110
110
  fillOpacity: colorToOpacity(component.textColor),
111
111
  };
112
112
 
113
- const dy = getBaselineAdjustment(component.verticalGrowthDirection);
113
+ const alignmentBaseline = getBaselineAdjustment(component.verticalGrowthDirection);
114
114
 
115
115
  const transform =
116
116
  "rotate(" +
@@ -123,22 +123,38 @@ function abstractComponentToSVG(component: AbstractImage.Component): string {
123
123
 
124
124
  const lines: Array<string> = component.text !== null ? component.text.split("\n") : [];
125
125
 
126
- const tSpans = lines.map((t, i) =>
127
- createElement(
126
+ const tSpans = lines.map((t, i) => {
127
+ const split = t.split("<sub>").flatMap((t) => t.split("</sub>"));
128
+ let inside = false;
129
+ const tags: Array<string> = [];
130
+ for (const st of split) {
131
+ if (inside) {
132
+ tags.push(
133
+ createElement(
134
+ "tspan",
135
+ {
136
+ "baseline-shift": "sub",
137
+ "font-size": (component.fontSize * 0.8).toString(),
138
+ "alignment-baseline": alignmentBaseline,
139
+ },
140
+ [st]
141
+ )
142
+ );
143
+ } else {
144
+ tags.push(createElement("tspan", { "alignment-baseline": alignmentBaseline }, [st]));
145
+ }
146
+ inside = !inside;
147
+ }
148
+ return createElement(
128
149
  "tspan",
129
150
  {
130
151
  x: component.position.x.toString(),
131
- y: (component.position.y + (i + dy) * lineHeight).toString(),
152
+ y: (component.position.y + i * lineHeight).toString(),
132
153
  height: lineHeight.toString() + "px",
133
154
  },
134
- [
135
- t
136
- .replace("<sub>", `<tspan style="font-size: ${component.fontSize * 0.8}px" baseline-shift="sub">`)
137
- .replace("</sub>", "</tspan>"),
138
- ]
139
- )
140
- );
141
-
155
+ tags
156
+ );
157
+ });
142
158
  const cs: Array<string> = [];
143
159
 
144
160
  if (component.strokeThickness > 0 && component.strokeColor !== null) {
@@ -285,15 +301,15 @@ function convertUpperToHyphenLower(elementName: string): string {
285
301
  return elementName !== "viewBox" ? elementName.replace(/[A-Z]/g, upperToHyphenLower) : elementName;
286
302
  }
287
303
 
288
- function getBaselineAdjustment(d: AbstractImage.GrowthDirection): number {
304
+ function getBaselineAdjustment(d: AbstractImage.GrowthDirection): "baseline" | "central" | "hanging" {
289
305
  if (d === "up") {
290
- return 0.0;
306
+ return "baseline";
291
307
  }
292
308
  if (d === "uniform") {
293
- return 0.5;
309
+ return "central";
294
310
  }
295
311
  if (d === "down") {
296
- return 1.0;
312
+ return "hanging";
297
313
  }
298
314
  throw "Unknown text alignment " + d;
299
315
  }