@hadi77ir/pdfme-svg 0.1.0

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 (242) hide show
  1. package/README.md +63 -0
  2. package/dist/applyparseattributes.d.ts +6 -0
  3. package/dist/applyparseattributes.d.ts.map +1 -0
  4. package/dist/applyparseattributes.js +333 -0
  5. package/dist/applyparseattributes.js.map +1 -0
  6. package/dist/context/attributestate.d.ts +34 -0
  7. package/dist/context/attributestate.d.ts.map +1 -0
  8. package/dist/context/attributestate.js +109 -0
  9. package/dist/context/attributestate.js.map +1 -0
  10. package/dist/context/context.d.ts +59 -0
  11. package/dist/context/context.d.ts.map +1 -0
  12. package/dist/context/context.js +46 -0
  13. package/dist/context/context.js.map +1 -0
  14. package/dist/context/referenceshandler.d.ts +15 -0
  15. package/dist/context/referenceshandler.d.ts.map +1 -0
  16. package/dist/context/referenceshandler.js +31 -0
  17. package/dist/context/referenceshandler.js.map +1 -0
  18. package/dist/context/stylesheets.d.ts +13 -0
  19. package/dist/context/stylesheets.d.ts.map +1 -0
  20. package/dist/context/stylesheets.js +163 -0
  21. package/dist/context/stylesheets.js.map +1 -0
  22. package/dist/context/textmeasure.d.ts +19 -0
  23. package/dist/context/textmeasure.d.ts.map +1 -0
  24. package/dist/context/textmeasure.js +93 -0
  25. package/dist/context/textmeasure.js.map +1 -0
  26. package/dist/context/viewport.d.ts +6 -0
  27. package/dist/context/viewport.d.ts.map +1 -0
  28. package/dist/context/viewport.js +7 -0
  29. package/dist/context/viewport.js.map +1 -0
  30. package/dist/fill/ColorFill.d.ts +10 -0
  31. package/dist/fill/ColorFill.d.ts.map +1 -0
  32. package/dist/fill/ColorFill.js +10 -0
  33. package/dist/fill/ColorFill.js.map +1 -0
  34. package/dist/fill/Fill.d.ts +14 -0
  35. package/dist/fill/Fill.d.ts.map +1 -0
  36. package/dist/fill/Fill.js +2 -0
  37. package/dist/fill/Fill.js.map +1 -0
  38. package/dist/fill/GradientFill.d.ts +11 -0
  39. package/dist/fill/GradientFill.d.ts.map +1 -0
  40. package/dist/fill/GradientFill.js +37 -0
  41. package/dist/fill/GradientFill.js.map +1 -0
  42. package/dist/fill/PatternFill.d.ts +11 -0
  43. package/dist/fill/PatternFill.d.ts.map +1 -0
  44. package/dist/fill/PatternFill.js +67 -0
  45. package/dist/fill/PatternFill.js.map +1 -0
  46. package/dist/fill/parseFill.d.ts +4 -0
  47. package/dist/fill/parseFill.d.ts.map +1 -0
  48. package/dist/fill/parseFill.js +61 -0
  49. package/dist/fill/parseFill.js.map +1 -0
  50. package/dist/index.d.ts +7 -0
  51. package/dist/index.d.ts.map +1 -0
  52. package/dist/index.js +232 -0
  53. package/dist/index.js.map +1 -0
  54. package/dist/jspdf-shim.d.ts +132 -0
  55. package/dist/jspdf-shim.d.ts.map +1 -0
  56. package/dist/jspdf-shim.js +744 -0
  57. package/dist/jspdf-shim.js.map +1 -0
  58. package/dist/jspdf.d.ts +2 -0
  59. package/dist/jspdf.d.ts.map +1 -0
  60. package/dist/jspdf.js +2 -0
  61. package/dist/jspdf.js.map +1 -0
  62. package/dist/markerlist.d.ts +24 -0
  63. package/dist/markerlist.d.ts.map +1 -0
  64. package/dist/markerlist.js +47 -0
  65. package/dist/markerlist.js.map +1 -0
  66. package/dist/nodes/anchor.d.ts +6 -0
  67. package/dist/nodes/anchor.d.ts.map +1 -0
  68. package/dist/nodes/anchor.js +15 -0
  69. package/dist/nodes/anchor.js.map +1 -0
  70. package/dist/nodes/circle.d.ts +11 -0
  71. package/dist/nodes/circle.d.ts.map +1 -0
  72. package/dist/nodes/circle.js +17 -0
  73. package/dist/nodes/circle.js.map +1 -0
  74. package/dist/nodes/clippath.d.ts +10 -0
  75. package/dist/nodes/clippath.d.ts.map +1 -0
  76. package/dist/nodes/clippath.js +48 -0
  77. package/dist/nodes/clippath.js.map +1 -0
  78. package/dist/nodes/containernode.d.ts +8 -0
  79. package/dist/nodes/containernode.d.ts.map +1 -0
  80. package/dist/nodes/containernode.js +13 -0
  81. package/dist/nodes/containernode.js.map +1 -0
  82. package/dist/nodes/ellipse.d.ts +9 -0
  83. package/dist/nodes/ellipse.d.ts.map +1 -0
  84. package/dist/nodes/ellipse.js +14 -0
  85. package/dist/nodes/ellipse.js.map +1 -0
  86. package/dist/nodes/ellipsebase.d.ts +14 -0
  87. package/dist/nodes/ellipsebase.d.ts.map +1 -0
  88. package/dist/nodes/ellipsebase.js +30 -0
  89. package/dist/nodes/ellipsebase.js.map +1 -0
  90. package/dist/nodes/geometrynode.d.ts +19 -0
  91. package/dist/nodes/geometrynode.d.ts.map +1 -0
  92. package/dist/nodes/geometrynode.js +213 -0
  93. package/dist/nodes/geometrynode.js.map +1 -0
  94. package/dist/nodes/gradient.d.ts +28 -0
  95. package/dist/nodes/gradient.d.ts.map +1 -0
  96. package/dist/nodes/gradient.js +87 -0
  97. package/dist/nodes/gradient.js.map +1 -0
  98. package/dist/nodes/graphicsnode.d.ts +4 -0
  99. package/dist/nodes/graphicsnode.d.ts.map +1 -0
  100. package/dist/nodes/graphicsnode.js +4 -0
  101. package/dist/nodes/graphicsnode.js.map +1 -0
  102. package/dist/nodes/group.d.ts +8 -0
  103. package/dist/nodes/group.d.ts.map +1 -0
  104. package/dist/nodes/group.js +11 -0
  105. package/dist/nodes/group.js.map +1 -0
  106. package/dist/nodes/image.d.ts +23 -0
  107. package/dist/nodes/image.d.ts.map +1 -0
  108. package/dist/nodes/image.js +152 -0
  109. package/dist/nodes/image.js.map +1 -0
  110. package/dist/nodes/line.d.ts +13 -0
  111. package/dist/nodes/line.d.ts.map +1 -0
  112. package/dist/nodes/line.js +30 -0
  113. package/dist/nodes/line.js.map +1 -0
  114. package/dist/nodes/lineargradient.d.ts +7 -0
  115. package/dist/nodes/lineargradient.d.ts.map +1 -0
  116. package/dist/nodes/lineargradient.js +15 -0
  117. package/dist/nodes/lineargradient.js.map +1 -0
  118. package/dist/nodes/marker.d.ts +11 -0
  119. package/dist/nodes/marker.d.ts.map +1 -0
  120. package/dist/nodes/marker.js +70 -0
  121. package/dist/nodes/marker.js.map +1 -0
  122. package/dist/nodes/nonrenderednode.d.ts +11 -0
  123. package/dist/nodes/nonrenderednode.d.ts.map +1 -0
  124. package/dist/nodes/nonrenderednode.js +15 -0
  125. package/dist/nodes/nonrenderednode.js.map +1 -0
  126. package/dist/nodes/path.d.ts +12 -0
  127. package/dist/nodes/path.d.ts.map +1 -0
  128. package/dist/nodes/path.js +75 -0
  129. package/dist/nodes/path.js.map +1 -0
  130. package/dist/nodes/pattern.d.ts +11 -0
  131. package/dist/nodes/pattern.d.ts.map +1 -0
  132. package/dist/nodes/pattern.js +39 -0
  133. package/dist/nodes/pattern.js.map +1 -0
  134. package/dist/nodes/polygon.d.ts +6 -0
  135. package/dist/nodes/polygon.d.ts.map +1 -0
  136. package/dist/nodes/polygon.js +7 -0
  137. package/dist/nodes/polygon.js.map +1 -0
  138. package/dist/nodes/polyline.d.ts +6 -0
  139. package/dist/nodes/polyline.d.ts.map +1 -0
  140. package/dist/nodes/polyline.js +7 -0
  141. package/dist/nodes/polyline.js.map +1 -0
  142. package/dist/nodes/radialgradient.d.ts +7 -0
  143. package/dist/nodes/radialgradient.d.ts.map +1 -0
  144. package/dist/nodes/radialgradient.js +21 -0
  145. package/dist/nodes/radialgradient.js.map +1 -0
  146. package/dist/nodes/rect.d.ts +12 -0
  147. package/dist/nodes/rect.d.ts.map +1 -0
  148. package/dist/nodes/rect.js +50 -0
  149. package/dist/nodes/rect.js.map +1 -0
  150. package/dist/nodes/renderednode.d.ts +7 -0
  151. package/dist/nodes/renderednode.d.ts.map +1 -0
  152. package/dist/nodes/renderednode.js +43 -0
  153. package/dist/nodes/renderednode.js.map +1 -0
  154. package/dist/nodes/svg.d.ts +21 -0
  155. package/dist/nodes/svg.d.ts.map +1 -0
  156. package/dist/nodes/svg.js +175 -0
  157. package/dist/nodes/svg.js.map +1 -0
  158. package/dist/nodes/svgnode.d.ts +18 -0
  159. package/dist/nodes/svgnode.d.ts.map +1 -0
  160. package/dist/nodes/svgnode.js +30 -0
  161. package/dist/nodes/svgnode.js.map +1 -0
  162. package/dist/nodes/symbol.d.ts +10 -0
  163. package/dist/nodes/symbol.d.ts.map +1 -0
  164. package/dist/nodes/symbol.js +62 -0
  165. package/dist/nodes/symbol.js.map +1 -0
  166. package/dist/nodes/text.d.ts +13 -0
  167. package/dist/nodes/text.d.ts.map +1 -0
  168. package/dist/nodes/text.js +172 -0
  169. package/dist/nodes/text.js.map +1 -0
  170. package/dist/nodes/traverse.d.ts +15 -0
  171. package/dist/nodes/traverse.d.ts.map +1 -0
  172. package/dist/nodes/traverse.js +47 -0
  173. package/dist/nodes/traverse.js.map +1 -0
  174. package/dist/nodes/use.d.ts +15 -0
  175. package/dist/nodes/use.d.ts.map +1 -0
  176. package/dist/nodes/use.js +99 -0
  177. package/dist/nodes/use.js.map +1 -0
  178. package/dist/nodes/void.d.ts +11 -0
  179. package/dist/nodes/void.d.ts.map +1 -0
  180. package/dist/nodes/void.js +19 -0
  181. package/dist/nodes/void.js.map +1 -0
  182. package/dist/parse.d.ts +5 -0
  183. package/dist/parse.d.ts.map +1 -0
  184. package/dist/parse.js +96 -0
  185. package/dist/parse.js.map +1 -0
  186. package/dist/svg2pdf.d.ts +10 -0
  187. package/dist/svg2pdf.d.ts.map +1 -0
  188. package/dist/svg2pdf.js +49 -0
  189. package/dist/svg2pdf.js.map +1 -0
  190. package/dist/textchunk.d.ts +36 -0
  191. package/dist/textchunk.d.ts.map +1 -0
  192. package/dist/textchunk.js +144 -0
  193. package/dist/textchunk.js.map +1 -0
  194. package/dist/utils/applyclippath.d.ts +6 -0
  195. package/dist/utils/applyclippath.d.ts.map +1 -0
  196. package/dist/utils/applyclippath.js +20 -0
  197. package/dist/utils/applyclippath.js.map +1 -0
  198. package/dist/utils/bbox.d.ts +6 -0
  199. package/dist/utils/bbox.d.ts.map +1 -0
  200. package/dist/utils/bbox.js +62 -0
  201. package/dist/utils/bbox.js.map +1 -0
  202. package/dist/utils/constants.d.ts +7 -0
  203. package/dist/utils/constants.d.ts.map +1 -0
  204. package/dist/utils/constants.js +17 -0
  205. package/dist/utils/constants.js.map +1 -0
  206. package/dist/utils/fonts.d.ts +14 -0
  207. package/dist/utils/fonts.d.ts.map +1 -0
  208. package/dist/utils/fonts.js +59 -0
  209. package/dist/utils/fonts.js.map +1 -0
  210. package/dist/utils/geometry.d.ts +11 -0
  211. package/dist/utils/geometry.d.ts.map +1 -0
  212. package/dist/utils/geometry.js +26 -0
  213. package/dist/utils/geometry.js.map +1 -0
  214. package/dist/utils/misc.d.ts +12 -0
  215. package/dist/utils/misc.d.ts.map +1 -0
  216. package/dist/utils/misc.js +26 -0
  217. package/dist/utils/misc.js.map +1 -0
  218. package/dist/utils/node.d.ts +9 -0
  219. package/dist/utils/node.d.ts.map +1 -0
  220. package/dist/utils/node.js +58 -0
  221. package/dist/utils/node.js.map +1 -0
  222. package/dist/utils/parsing.d.ts +13 -0
  223. package/dist/utils/parsing.d.ts.map +1 -0
  224. package/dist/utils/parsing.js +41 -0
  225. package/dist/utils/parsing.js.map +1 -0
  226. package/dist/utils/path.d.ts +39 -0
  227. package/dist/utils/path.d.ts.map +1 -0
  228. package/dist/utils/path.js +86 -0
  229. package/dist/utils/path.js.map +1 -0
  230. package/dist/utils/rgbcolor.d.ts +15 -0
  231. package/dist/utils/rgbcolor.d.ts.map +1 -0
  232. package/dist/utils/rgbcolor.js +297 -0
  233. package/dist/utils/rgbcolor.js.map +1 -0
  234. package/dist/utils/text.d.ts +15 -0
  235. package/dist/utils/text.d.ts.map +1 -0
  236. package/dist/utils/text.js +57 -0
  237. package/dist/utils/text.js.map +1 -0
  238. package/dist/utils/transform.d.ts +5 -0
  239. package/dist/utils/transform.d.ts.map +1 -0
  240. package/dist/utils/transform.js +113 -0
  241. package/dist/utils/transform.js.map +1 -0
  242. package/package.json +57 -0
package/README.md ADDED
@@ -0,0 +1,63 @@
1
+ # pdfme-svg
2
+
3
+ A pdfME plugin that renders SVG content inside PDF templates.
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ npm install @hadi77ir/pdfme-svg @pdfme/common @pdfme/pdf-lib
9
+ ```
10
+
11
+ ## Build
12
+
13
+ This package ships its compiled output in `dist/`.
14
+
15
+ ```bash
16
+ npm run build
17
+ ```
18
+
19
+ ## Usage with pdfME
20
+
21
+ Register the plugin under the `svg` type and pass SVG strings as field values.
22
+
23
+ ```ts
24
+ import { generate } from '@pdfme/generator';
25
+ import svgPlugin from '@hadi77ir/pdfme-svg';
26
+
27
+ const template = {
28
+ basePdf: { width: 210, height: 297, padding: 0 },
29
+ schemas: [
30
+ {
31
+ name: 'logo',
32
+ type: 'svg',
33
+ position: { x: 20, y: 20 },
34
+ width: 60,
35
+ height: 60,
36
+ loadExternalStyleSheets: false,
37
+ },
38
+ ],
39
+ };
40
+
41
+ const inputs = [
42
+ {
43
+ logo: `<svg viewBox="0 0 120 120" xmlns="http://www.w3.org/2000/svg">
44
+ <rect x="10" y="10" width="100" height="100" rx="12" fill="#111827"/>
45
+ <circle cx="60" cy="60" r="30" fill="#60A5FA"/>
46
+ <path d="M40 62 L55 77 L82 46" stroke="#F9FAFB" stroke-width="8" fill="none"/>
47
+ </svg>`,
48
+ },
49
+ ];
50
+
51
+ const pdf = await generate({
52
+ template,
53
+ inputs,
54
+ plugins: { svg: svgPlugin },
55
+ });
56
+ ```
57
+
58
+ ### Notes
59
+
60
+ - Positions and sizes are in millimeters, matching pdfME's layout system.
61
+ - When a DOM is available (browser or a DOM shim in Node), the plugin uses the internal svg2pdf pipeline for higher fidelity.
62
+ - When no DOM is available, it falls back to `pdf-lib`'s `drawSvg` for compatibility.
63
+ - Set `loadExternalStyleSheets: true` to allow external CSS in SVGs (requires network access and a DOM-enabled environment).
@@ -0,0 +1,6 @@
1
+ import { Context } from './context/context';
2
+ import { SvgNode } from './nodes/svgnode';
3
+ export declare function parseAttributes(context: Context, svgNode: SvgNode, node?: Element): void;
4
+ export declare function applyAttributes(childContext: Context, parentContext: Context, node: Element): void;
5
+ export declare function applyContext(context: Context): void;
6
+ //# sourceMappingURL=applyparseattributes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applyparseattributes.d.ts","sourceRoot":"","sources":["../src/applyparseattributes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAK3C,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAWzC,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CA+IxF;AAED,wBAAgB,eAAe,CAC7B,YAAY,EAAE,OAAO,EACrB,aAAa,EAAE,OAAO,EACtB,IAAI,EAAE,OAAO,GACZ,IAAI,CA+JN;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgHnD"}
@@ -0,0 +1,333 @@
1
+ import { getAttribute, nodeIs } from './utils/node';
2
+ import { toPixels } from './utils/misc';
3
+ import { parseColor, parseFloats } from './utils/parsing';
4
+ import FontFamily from 'font-family-papandreou';
5
+ import { combineFontStyleAndFontWeight, findFirstAvailableFontFamily, fontAliases } from './utils/fonts';
6
+ import { parseFill } from './fill/parseFill';
7
+ import { ColorFill } from './fill/ColorFill';
8
+ import { GState } from 'jspdf';
9
+ import { RGBColor } from './utils/rgbcolor';
10
+ export function parseAttributes(context, svgNode, node) {
11
+ const domNode = node || svgNode.element;
12
+ // update color first so currentColor becomes available for this node
13
+ const color = getAttribute(domNode, context.styleSheets, 'color');
14
+ if (color) {
15
+ const fillColor = parseColor(color, context.attributeState);
16
+ if (fillColor.ok) {
17
+ context.attributeState.color = fillColor;
18
+ }
19
+ else {
20
+ // invalid color passed, reset to black
21
+ context.attributeState.color = new RGBColor('rgb(0,0,0)');
22
+ }
23
+ }
24
+ const visibility = getAttribute(domNode, context.styleSheets, 'visibility');
25
+ if (visibility) {
26
+ context.attributeState.visibility = visibility;
27
+ }
28
+ // fill mode
29
+ const fill = getAttribute(domNode, context.styleSheets, 'fill');
30
+ if (fill) {
31
+ context.attributeState.fill = parseFill(fill, context);
32
+ }
33
+ // opacity is realized via a pdf graphics state
34
+ const fillOpacity = getAttribute(domNode, context.styleSheets, 'fill-opacity');
35
+ if (fillOpacity) {
36
+ context.attributeState.fillOpacity = parseFloat(fillOpacity);
37
+ }
38
+ const strokeOpacity = getAttribute(domNode, context.styleSheets, 'stroke-opacity');
39
+ if (strokeOpacity) {
40
+ context.attributeState.strokeOpacity = parseFloat(strokeOpacity);
41
+ }
42
+ const opacity = getAttribute(domNode, context.styleSheets, 'opacity');
43
+ if (opacity) {
44
+ context.attributeState.opacity = parseFloat(opacity);
45
+ }
46
+ // stroke mode
47
+ const strokeWidth = getAttribute(domNode, context.styleSheets, 'stroke-width');
48
+ if (strokeWidth !== void 0 && strokeWidth !== '') {
49
+ context.attributeState.strokeWidth = Math.abs(parseFloat(strokeWidth));
50
+ }
51
+ const stroke = getAttribute(domNode, context.styleSheets, 'stroke');
52
+ if (stroke) {
53
+ if (stroke === 'none') {
54
+ context.attributeState.stroke = null;
55
+ }
56
+ else {
57
+ // gradients, patterns not supported for strokes ...
58
+ const strokeRGB = parseColor(stroke, context.attributeState);
59
+ if (strokeRGB.ok) {
60
+ context.attributeState.stroke = new ColorFill(strokeRGB);
61
+ }
62
+ }
63
+ }
64
+ if (stroke && context.attributeState.stroke instanceof ColorFill) {
65
+ context.attributeState.contextStroke = context.attributeState.stroke.color;
66
+ }
67
+ if (fill && context.attributeState.fill instanceof ColorFill) {
68
+ context.attributeState.contextFill = context.attributeState.fill.color;
69
+ }
70
+ const lineCap = getAttribute(domNode, context.styleSheets, 'stroke-linecap');
71
+ if (lineCap) {
72
+ context.attributeState.strokeLinecap = lineCap;
73
+ }
74
+ const lineJoin = getAttribute(domNode, context.styleSheets, 'stroke-linejoin');
75
+ if (lineJoin) {
76
+ context.attributeState.strokeLinejoin = lineJoin;
77
+ }
78
+ const dashArray = getAttribute(domNode, context.styleSheets, 'stroke-dasharray');
79
+ if (dashArray) {
80
+ const dashOffset = parseInt(getAttribute(domNode, context.styleSheets, 'stroke-dashoffset') || '0');
81
+ context.attributeState.strokeDasharray = parseFloats(dashArray);
82
+ context.attributeState.strokeDashoffset = dashOffset;
83
+ }
84
+ const miterLimit = getAttribute(domNode, context.styleSheets, 'stroke-miterlimit');
85
+ if (miterLimit !== void 0 && miterLimit !== '') {
86
+ context.attributeState.strokeMiterlimit = parseFloat(miterLimit);
87
+ }
88
+ const xmlSpace = domNode.getAttribute('xml:space');
89
+ if (xmlSpace) {
90
+ context.attributeState.xmlSpace = xmlSpace;
91
+ }
92
+ const whiteSpace = getAttribute(domNode, context.styleSheets, 'white-space');
93
+ if (whiteSpace) {
94
+ context.attributeState.whiteSpace = whiteSpace;
95
+ }
96
+ const fontWeight = getAttribute(domNode, context.styleSheets, 'font-weight');
97
+ if (fontWeight) {
98
+ context.attributeState.fontWeight = fontWeight;
99
+ }
100
+ const fontStyle = getAttribute(domNode, context.styleSheets, 'font-style');
101
+ if (fontStyle) {
102
+ context.attributeState.fontStyle = fontStyle;
103
+ }
104
+ const fontFamily = getAttribute(domNode, context.styleSheets, 'font-family');
105
+ if (fontFamily) {
106
+ const fontFamilies = FontFamily.parse(fontFamily);
107
+ context.attributeState.fontFamily = findFirstAvailableFontFamily(context.attributeState, fontFamilies, context);
108
+ }
109
+ const fontSize = getAttribute(domNode, context.styleSheets, 'font-size');
110
+ if (fontSize) {
111
+ const pdfFontSize = context.pdf.getFontSize();
112
+ context.attributeState.fontSize = toPixels(fontSize, pdfFontSize);
113
+ }
114
+ const alignmentBaseline = getAttribute(domNode, context.styleSheets, 'vertical-align') ||
115
+ getAttribute(domNode, context.styleSheets, 'alignment-baseline');
116
+ if (alignmentBaseline) {
117
+ const matchArr = alignmentBaseline.match(/(baseline|text-bottom|alphabetic|ideographic|middle|central|mathematical|text-top|bottom|center|top|hanging)/);
118
+ if (matchArr) {
119
+ context.attributeState.alignmentBaseline = matchArr[0];
120
+ }
121
+ }
122
+ const textAnchor = getAttribute(domNode, context.styleSheets, 'text-anchor');
123
+ if (textAnchor) {
124
+ context.attributeState.textAnchor = textAnchor;
125
+ }
126
+ const fillRule = getAttribute(domNode, context.styleSheets, 'fill-rule');
127
+ if (fillRule) {
128
+ context.attributeState.fillRule = fillRule;
129
+ }
130
+ }
131
+ export function applyAttributes(childContext, parentContext, node) {
132
+ let fillOpacity = 1.0, strokeOpacity = 1.0;
133
+ fillOpacity *= childContext.attributeState.fillOpacity;
134
+ fillOpacity *= childContext.attributeState.opacity;
135
+ if (childContext.attributeState.fill instanceof ColorFill &&
136
+ typeof childContext.attributeState.fill.color.a !== 'undefined') {
137
+ fillOpacity *= childContext.attributeState.fill.color.a;
138
+ }
139
+ strokeOpacity *= childContext.attributeState.strokeOpacity;
140
+ strokeOpacity *= childContext.attributeState.opacity;
141
+ if (childContext.attributeState.stroke instanceof ColorFill &&
142
+ typeof childContext.attributeState.stroke.color.a !== 'undefined') {
143
+ strokeOpacity *= childContext.attributeState.stroke.color.a;
144
+ }
145
+ let hasFillOpacity = fillOpacity < 1.0;
146
+ let hasStrokeOpacity = strokeOpacity < 1.0;
147
+ // This is a workaround for symbols that are used multiple times with different
148
+ // fill/stroke attributes. All paths within symbols are both filled and stroked
149
+ // and we set the fill/stroke to transparent if the use element has
150
+ // fill/stroke="none".
151
+ if (nodeIs(node, 'use')) {
152
+ hasFillOpacity = true;
153
+ hasStrokeOpacity = true;
154
+ fillOpacity *= childContext.attributeState.fill ? 1 : 0;
155
+ strokeOpacity *= childContext.attributeState.stroke ? 1 : 0;
156
+ }
157
+ else if (childContext.withinUse) {
158
+ if (childContext.attributeState.fill !== parentContext.attributeState.fill) {
159
+ hasFillOpacity = true;
160
+ fillOpacity *= childContext.attributeState.fill ? 1 : 0;
161
+ }
162
+ else if (hasFillOpacity && !childContext.attributeState.fill) {
163
+ fillOpacity = 0;
164
+ }
165
+ if (childContext.attributeState.stroke !== parentContext.attributeState.stroke) {
166
+ hasStrokeOpacity = true;
167
+ strokeOpacity *= childContext.attributeState.stroke ? 1 : 0;
168
+ }
169
+ else if (hasStrokeOpacity && !childContext.attributeState.stroke) {
170
+ strokeOpacity = 0;
171
+ }
172
+ }
173
+ if (hasFillOpacity || hasStrokeOpacity) {
174
+ const gState = {};
175
+ hasFillOpacity && (gState['opacity'] = fillOpacity);
176
+ hasStrokeOpacity && (gState['stroke-opacity'] = strokeOpacity);
177
+ childContext.pdf.setGState(new GState(gState));
178
+ }
179
+ if (childContext.attributeState.fill &&
180
+ childContext.attributeState.fill !== parentContext.attributeState.fill &&
181
+ childContext.attributeState.fill instanceof ColorFill &&
182
+ childContext.attributeState.fill.color.ok &&
183
+ !nodeIs(node, 'text')) {
184
+ // text fill color will be applied through setTextColor()
185
+ childContext.pdf.setFillColor(childContext.attributeState.fill.color.r, childContext.attributeState.fill.color.g, childContext.attributeState.fill.color.b);
186
+ }
187
+ if (childContext.attributeState.strokeWidth !== parentContext.attributeState.strokeWidth) {
188
+ childContext.pdf.setLineWidth(childContext.attributeState.strokeWidth);
189
+ }
190
+ if (childContext.attributeState.stroke !== parentContext.attributeState.stroke &&
191
+ childContext.attributeState.stroke instanceof ColorFill) {
192
+ childContext.pdf.setDrawColor(childContext.attributeState.stroke.color.r, childContext.attributeState.stroke.color.g, childContext.attributeState.stroke.color.b);
193
+ }
194
+ if (childContext.attributeState.strokeLinecap !== parentContext.attributeState.strokeLinecap) {
195
+ childContext.pdf.setLineCap(childContext.attributeState.strokeLinecap);
196
+ }
197
+ if (childContext.attributeState.strokeLinejoin !== parentContext.attributeState.strokeLinejoin) {
198
+ childContext.pdf.setLineJoin(childContext.attributeState.strokeLinejoin);
199
+ }
200
+ if ((childContext.attributeState.strokeDasharray !== parentContext.attributeState.strokeDasharray ||
201
+ childContext.attributeState.strokeDashoffset !==
202
+ parentContext.attributeState.strokeDashoffset) &&
203
+ childContext.attributeState.strokeDasharray) {
204
+ childContext.pdf.setLineDashPattern(childContext.attributeState.strokeDasharray, childContext.attributeState.strokeDashoffset);
205
+ }
206
+ if (childContext.attributeState.strokeMiterlimit !== parentContext.attributeState.strokeMiterlimit) {
207
+ childContext.pdf.setLineMiterLimit(childContext.attributeState.strokeMiterlimit);
208
+ }
209
+ let font;
210
+ if (childContext.attributeState.fontFamily !== parentContext.attributeState.fontFamily) {
211
+ if (fontAliases.hasOwnProperty(childContext.attributeState.fontFamily)) {
212
+ font = fontAliases[childContext.attributeState.fontFamily];
213
+ }
214
+ else {
215
+ font = childContext.attributeState.fontFamily;
216
+ }
217
+ }
218
+ if (childContext.attributeState.fill &&
219
+ childContext.attributeState.fill !== parentContext.attributeState.fill &&
220
+ childContext.attributeState.fill instanceof ColorFill &&
221
+ childContext.attributeState.fill.color.ok) {
222
+ const fillColor = childContext.attributeState.fill.color;
223
+ childContext.pdf.setTextColor(fillColor.r, fillColor.g, fillColor.b);
224
+ }
225
+ let fontStyle;
226
+ if (childContext.attributeState.fontWeight !== parentContext.attributeState.fontWeight ||
227
+ childContext.attributeState.fontStyle !== parentContext.attributeState.fontStyle) {
228
+ fontStyle = combineFontStyleAndFontWeight(childContext.attributeState.fontStyle, childContext.attributeState.fontWeight);
229
+ }
230
+ if (font !== undefined || fontStyle !== undefined) {
231
+ if (font === undefined) {
232
+ if (fontAliases.hasOwnProperty(childContext.attributeState.fontFamily)) {
233
+ font = fontAliases[childContext.attributeState.fontFamily];
234
+ }
235
+ else {
236
+ font = childContext.attributeState.fontFamily;
237
+ }
238
+ }
239
+ childContext.pdf.setFont(font, fontStyle);
240
+ }
241
+ if (childContext.attributeState.fontSize !== parentContext.attributeState.fontSize) {
242
+ // correct for a jsPDF-instance measurement unit that differs from `pt`
243
+ childContext.pdf.setFontSize(childContext.attributeState.fontSize * childContext.pdf.internal.scaleFactor);
244
+ }
245
+ }
246
+ export function applyContext(context) {
247
+ const { attributeState, pdf } = context;
248
+ let fillOpacity = 1.0, strokeOpacity = 1.0;
249
+ fillOpacity *= attributeState.fillOpacity;
250
+ fillOpacity *= attributeState.opacity;
251
+ if (attributeState.fill instanceof ColorFill &&
252
+ typeof attributeState.fill.color.a !== 'undefined') {
253
+ fillOpacity *= attributeState.fill.color.a;
254
+ }
255
+ strokeOpacity *= attributeState.strokeOpacity;
256
+ strokeOpacity *= attributeState.opacity;
257
+ if (attributeState.stroke instanceof ColorFill &&
258
+ typeof attributeState.stroke.color.a !== 'undefined') {
259
+ strokeOpacity *= attributeState.stroke.color.a;
260
+ }
261
+ const gState = {};
262
+ gState['opacity'] = fillOpacity;
263
+ gState['stroke-opacity'] = strokeOpacity;
264
+ pdf.setGState(new GState(gState));
265
+ if (attributeState.fill &&
266
+ attributeState.fill instanceof ColorFill &&
267
+ attributeState.fill.color.ok) {
268
+ // text fill color will be applied through setTextColor()
269
+ pdf.setFillColor(attributeState.fill.color.r, attributeState.fill.color.g, attributeState.fill.color.b);
270
+ }
271
+ else {
272
+ pdf.setFillColor(0, 0, 0);
273
+ }
274
+ pdf.setLineWidth(attributeState.strokeWidth);
275
+ if (attributeState.stroke instanceof ColorFill) {
276
+ pdf.setDrawColor(attributeState.stroke.color.r, attributeState.stroke.color.g, attributeState.stroke.color.b);
277
+ }
278
+ else {
279
+ pdf.setDrawColor(0, 0, 0);
280
+ }
281
+ pdf.setLineCap(attributeState.strokeLinecap);
282
+ pdf.setLineJoin(attributeState.strokeLinejoin);
283
+ if (attributeState.strokeDasharray) {
284
+ pdf.setLineDashPattern(attributeState.strokeDasharray, attributeState.strokeDashoffset);
285
+ }
286
+ else {
287
+ pdf.setLineDashPattern([], 0);
288
+ }
289
+ pdf.setLineMiterLimit(attributeState.strokeMiterlimit);
290
+ let font;
291
+ if (fontAliases.hasOwnProperty(attributeState.fontFamily)) {
292
+ font = fontAliases[attributeState.fontFamily];
293
+ }
294
+ else {
295
+ font = attributeState.fontFamily;
296
+ }
297
+ if (attributeState.fill &&
298
+ attributeState.fill instanceof ColorFill &&
299
+ attributeState.fill.color.ok) {
300
+ const fillColor = attributeState.fill.color;
301
+ pdf.setTextColor(fillColor.r, fillColor.g, fillColor.b);
302
+ }
303
+ else {
304
+ pdf.setTextColor(0, 0, 0);
305
+ }
306
+ let fontStyle = '';
307
+ if (attributeState.fontWeight === 'bold') {
308
+ fontStyle = 'bold';
309
+ }
310
+ if (attributeState.fontStyle === 'italic') {
311
+ fontStyle += 'italic';
312
+ }
313
+ if (fontStyle === '') {
314
+ fontStyle = 'normal';
315
+ }
316
+ if (font !== undefined || fontStyle !== undefined) {
317
+ if (font === undefined) {
318
+ if (fontAliases.hasOwnProperty(attributeState.fontFamily)) {
319
+ font = fontAliases[attributeState.fontFamily];
320
+ }
321
+ else {
322
+ font = attributeState.fontFamily;
323
+ }
324
+ }
325
+ pdf.setFont(font, fontStyle);
326
+ }
327
+ else {
328
+ pdf.setFont('helvetica', fontStyle);
329
+ }
330
+ // correct for a jsPDF-instance measurement unit that differs from `pt`
331
+ pdf.setFontSize(attributeState.fontSize * pdf.internal.scaleFactor);
332
+ }
333
+ //# sourceMappingURL=applyparseattributes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applyparseattributes.js","sourceRoot":"","sources":["../src/applyparseattributes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,UAAU,MAAM,wBAAwB,CAAA;AAE/C,OAAO,EACL,6BAA6B,EAC7B,4BAA4B,EAC5B,WAAW,EACZ,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAE3C,MAAM,UAAU,eAAe,CAAC,OAAgB,EAAE,OAAgB,EAAE,IAAc;IAChF,MAAM,OAAO,GAAG,IAAI,IAAI,OAAO,CAAC,OAAO,CAAA;IACvC,qEAAqE;IACrE,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;IACjE,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;QAC3D,IAAI,SAAS,CAAC,EAAE,EAAE,CAAC;YACjB,OAAO,CAAC,cAAc,CAAC,KAAK,GAAG,SAAS,CAAA;QAC1C,CAAC;aAAM,CAAC;YACN,uCAAuC;YACvC,OAAO,CAAC,cAAc,CAAC,KAAK,GAAG,IAAI,QAAQ,CAAC,YAAY,CAAC,CAAA;QAC3D,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,CAAA;IAC3E,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,CAAC,cAAc,CAAC,UAAU,GAAG,UAAU,CAAA;IAChD,CAAC;IACD,YAAY;IACZ,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;IAC/D,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,cAAc,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACxD,CAAC;IAED,+CAA+C;IAC/C,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE,cAAc,CAAC,CAAA;IAC9E,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,CAAC,cAAc,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC,CAAA;IAC9D,CAAC;IACD,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAA;IAClF,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,CAAC,cAAc,CAAC,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC,CAAA;IAClE,CAAC;IACD,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;IACrE,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,cAAc,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;IACtD,CAAC;IAED,cAAc;IACd,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE,cAAc,CAAC,CAAA;IAC9E,IAAI,WAAW,KAAK,KAAK,CAAC,IAAI,WAAW,KAAK,EAAE,EAAE,CAAC;QACjD,OAAO,CAAC,cAAc,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAA;IACxE,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;IACnE,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACtB,OAAO,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAA;QACtC,CAAC;aAAM,CAAC;YACN,oDAAoD;YACpD,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;YAC5D,IAAI,SAAS,CAAC,EAAE,EAAE,CAAC;gBACjB,OAAO,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,SAAS,CAAC,CAAA;YAC1D,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,MAAM,IAAI,OAAO,CAAC,cAAc,CAAC,MAAM,YAAY,SAAS,EAAE,CAAC;QACjE,OAAO,CAAC,cAAc,CAAC,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAA;IAC5E,CAAC;IAED,IAAI,IAAI,IAAI,OAAO,CAAC,cAAc,CAAC,IAAI,YAAY,SAAS,EAAE,CAAC;QAC7D,OAAO,CAAC,cAAc,CAAC,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAA;IACxE,CAAC;IAED,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAA;IAC5E,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,cAAc,CAAC,aAAa,GAAG,OAAO,CAAA;IAChD,CAAC;IACD,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAA;IAC9E,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,cAAc,CAAC,cAAc,GAAG,QAAQ,CAAA;IAClD,CAAC;IACD,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAA;IAChF,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,UAAU,GAAG,QAAQ,CACzB,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE,mBAAmB,CAAC,IAAI,GAAG,CACvE,CAAA;QACD,OAAO,CAAC,cAAc,CAAC,eAAe,GAAG,WAAW,CAAC,SAAS,CAAC,CAAA;QAC/D,OAAO,CAAC,cAAc,CAAC,gBAAgB,GAAG,UAAU,CAAA;IACtD,CAAC;IACD,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAA;IAClF,IAAI,UAAU,KAAK,KAAK,CAAC,IAAI,UAAU,KAAK,EAAE,EAAE,CAAC;QAC/C,OAAO,CAAC,cAAc,CAAC,gBAAgB,GAAG,UAAU,CAAC,UAAU,CAAC,CAAA;IAClE,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,CAAA;IAClD,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,cAAc,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC5C,CAAC;IAED,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE,aAAa,CAAC,CAAA;IAC5E,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,CAAC,cAAc,CAAC,UAAU,GAAG,UAAU,CAAA;IAChD,CAAC;IAED,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE,aAAa,CAAC,CAAA;IAC5E,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,CAAC,cAAc,CAAC,UAAU,GAAG,UAAU,CAAA;IAChD,CAAC;IAED,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,CAAA;IAC1E,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CAAC,cAAc,CAAC,SAAS,GAAG,SAAS,CAAA;IAC9C,CAAC;IAED,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE,aAAa,CAAC,CAAA;IAC5E,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;QACjD,OAAO,CAAC,cAAc,CAAC,UAAU,GAAG,4BAA4B,CAC9D,OAAO,CAAC,cAAc,EACtB,YAAY,EACZ,OAAO,CACR,CAAA;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;IACxE,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAA;QAC7C,OAAO,CAAC,cAAc,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;IACnE,CAAC;IAED,MAAM,iBAAiB,GACrB,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE,gBAAgB,CAAC;QAC5D,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAA;IAClE,IAAI,iBAAiB,EAAE,CAAC;QACtB,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CACtC,8GAA8G,CAC/G,CAAA;QACD,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,CAAC,cAAc,CAAC,iBAAiB,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;QACxD,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE,aAAa,CAAC,CAAA;IAC5E,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,CAAC,cAAc,CAAC,UAAU,GAAG,UAAU,CAAA;IAChD,CAAC;IAED,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;IACxE,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,cAAc,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC5C,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,YAAqB,EACrB,aAAsB,EACtB,IAAa;IAEb,IAAI,WAAW,GAAG,GAAG,EACnB,aAAa,GAAG,GAAG,CAAA;IAErB,WAAW,IAAI,YAAY,CAAC,cAAc,CAAC,WAAW,CAAA;IACtD,WAAW,IAAI,YAAY,CAAC,cAAc,CAAC,OAAO,CAAA;IAClD,IACE,YAAY,CAAC,cAAc,CAAC,IAAI,YAAY,SAAS;QACrD,OAAO,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,WAAW,EAC/D,CAAC;QACD,WAAW,IAAI,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IACzD,CAAC;IAED,aAAa,IAAI,YAAY,CAAC,cAAc,CAAC,aAAa,CAAA;IAC1D,aAAa,IAAI,YAAY,CAAC,cAAc,CAAC,OAAO,CAAA;IACpD,IACE,YAAY,CAAC,cAAc,CAAC,MAAM,YAAY,SAAS;QACvD,OAAO,YAAY,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,WAAW,EACjE,CAAC;QACD,aAAa,IAAI,YAAY,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IAC7D,CAAC;IAED,IAAI,cAAc,GAAG,WAAW,GAAG,GAAG,CAAA;IACtC,IAAI,gBAAgB,GAAG,aAAa,GAAG,GAAG,CAAA;IAE1C,+EAA+E;IAC/E,+EAA+E;IAC/E,mEAAmE;IACnE,sBAAsB;IACtB,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;QACxB,cAAc,GAAG,IAAI,CAAA;QACrB,gBAAgB,GAAG,IAAI,CAAA;QACvB,WAAW,IAAI,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACvD,aAAa,IAAI,YAAY,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC7D,CAAC;SAAM,IAAI,YAAY,CAAC,SAAS,EAAE,CAAC;QAClC,IAAI,YAAY,CAAC,cAAc,CAAC,IAAI,KAAK,aAAa,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;YAC3E,cAAc,GAAG,IAAI,CAAA;YACrB,WAAW,IAAI,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACzD,CAAC;aAAM,IAAI,cAAc,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;YAC/D,WAAW,GAAG,CAAC,CAAA;QACjB,CAAC;QACD,IAAI,YAAY,CAAC,cAAc,CAAC,MAAM,KAAK,aAAa,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;YAC/E,gBAAgB,GAAG,IAAI,CAAA;YACvB,aAAa,IAAI,YAAY,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC7D,CAAC;aAAM,IAAI,gBAAgB,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;YACnE,aAAa,GAAG,CAAC,CAAA;QACnB,CAAC;IACH,CAAC;IAED,IAAI,cAAc,IAAI,gBAAgB,EAAE,CAAC;QACvC,MAAM,MAAM,GAAW,EAAE,CAAA;QACzB,cAAc,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC,CAAA;QACnD,gBAAgB,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,aAAa,CAAC,CAAA;QAC9D,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;IAChD,CAAC;IAED,IACE,YAAY,CAAC,cAAc,CAAC,IAAI;QAChC,YAAY,CAAC,cAAc,CAAC,IAAI,KAAK,aAAa,CAAC,cAAc,CAAC,IAAI;QACtE,YAAY,CAAC,cAAc,CAAC,IAAI,YAAY,SAAS;QACrD,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QACzC,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,EACrB,CAAC;QACD,yDAAyD;QACzD,YAAY,CAAC,GAAG,CAAC,YAAY,CAC3B,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EACxC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EACxC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CACzC,CAAA;IACH,CAAC;IAED,IAAI,YAAY,CAAC,cAAc,CAAC,WAAW,KAAK,aAAa,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;QACzF,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;IACxE,CAAC;IAED,IACE,YAAY,CAAC,cAAc,CAAC,MAAM,KAAK,aAAa,CAAC,cAAc,CAAC,MAAM;QAC1E,YAAY,CAAC,cAAc,CAAC,MAAM,YAAY,SAAS,EACvD,CAAC;QACD,YAAY,CAAC,GAAG,CAAC,YAAY,CAC3B,YAAY,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAC1C,YAAY,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAC1C,YAAY,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAC3C,CAAA;IACH,CAAC;IAED,IAAI,YAAY,CAAC,cAAc,CAAC,aAAa,KAAK,aAAa,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;QAC7F,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,cAAc,CAAC,aAAa,CAAC,CAAA;IACxE,CAAC;IAED,IAAI,YAAY,CAAC,cAAc,CAAC,cAAc,KAAK,aAAa,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC;QAC/F,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,YAAY,CAAC,cAAc,CAAC,cAAc,CAAC,CAAA;IAC1E,CAAC;IAED,IACE,CAAC,YAAY,CAAC,cAAc,CAAC,eAAe,KAAK,aAAa,CAAC,cAAc,CAAC,eAAe;QAC3F,YAAY,CAAC,cAAc,CAAC,gBAAgB;YAC1C,aAAa,CAAC,cAAc,CAAC,gBAAgB,CAAC;QAClD,YAAY,CAAC,cAAc,CAAC,eAAe,EAC3C,CAAC;QACD,YAAY,CAAC,GAAG,CAAC,kBAAkB,CACjC,YAAY,CAAC,cAAc,CAAC,eAAe,EAC3C,YAAY,CAAC,cAAc,CAAC,gBAAgB,CAC7C,CAAA;IACH,CAAC;IAED,IACE,YAAY,CAAC,cAAc,CAAC,gBAAgB,KAAK,aAAa,CAAC,cAAc,CAAC,gBAAgB,EAC9F,CAAC;QACD,YAAY,CAAC,GAAG,CAAC,iBAAiB,CAAC,YAAY,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAA;IAClF,CAAC;IAED,IAAI,IAAwB,CAAA;IAC5B,IAAI,YAAY,CAAC,cAAc,CAAC,UAAU,KAAK,aAAa,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;QACvF,IAAI,WAAW,CAAC,cAAc,CAAC,YAAY,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;YACvE,IAAI,GAAG,WAAW,CAAC,YAAY,CAAC,cAAc,CAAC,UAAU,CAAC,CAAA;QAC5D,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,YAAY,CAAC,cAAc,CAAC,UAAU,CAAA;QAC/C,CAAC;IACH,CAAC;IAED,IACE,YAAY,CAAC,cAAc,CAAC,IAAI;QAChC,YAAY,CAAC,cAAc,CAAC,IAAI,KAAK,aAAa,CAAC,cAAc,CAAC,IAAI;QACtE,YAAY,CAAC,cAAc,CAAC,IAAI,YAAY,SAAS;QACrD,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EACzC,CAAC;QACD,MAAM,SAAS,GAAG,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAA;QACxD,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;IACtE,CAAC;IAED,IAAI,SAA6B,CAAA;IACjC,IACE,YAAY,CAAC,cAAc,CAAC,UAAU,KAAK,aAAa,CAAC,cAAc,CAAC,UAAU;QAClF,YAAY,CAAC,cAAc,CAAC,SAAS,KAAK,aAAa,CAAC,cAAc,CAAC,SAAS,EAChF,CAAC;QACD,SAAS,GAAG,6BAA6B,CACvC,YAAY,CAAC,cAAc,CAAC,SAAS,EACrC,YAAY,CAAC,cAAc,CAAC,UAAU,CACvC,CAAA;IACH,CAAC;IAED,IAAI,IAAI,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAClD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,WAAW,CAAC,cAAc,CAAC,YAAY,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;gBACvE,IAAI,GAAG,WAAW,CAAC,YAAY,CAAC,cAAc,CAAC,UAAU,CAAC,CAAA;YAC5D,CAAC;iBAAM,CAAC;gBACN,IAAI,GAAG,YAAY,CAAC,cAAc,CAAC,UAAU,CAAA;YAC/C,CAAC;QACH,CAAC;QACD,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IAC3C,CAAC;IAED,IAAI,YAAY,CAAC,cAAc,CAAC,QAAQ,KAAK,aAAa,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;QACnF,uEAAuE;QACvE,YAAY,CAAC,GAAG,CAAC,WAAW,CAC1B,YAAY,CAAC,cAAc,CAAC,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAC7E,CAAA;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAgB;IAC3C,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,GAAG,OAAO,CAAA;IAEvC,IAAI,WAAW,GAAG,GAAG,EACnB,aAAa,GAAG,GAAG,CAAA;IAErB,WAAW,IAAI,cAAc,CAAC,WAAW,CAAA;IACzC,WAAW,IAAI,cAAc,CAAC,OAAO,CAAA;IACrC,IACE,cAAc,CAAC,IAAI,YAAY,SAAS;QACxC,OAAO,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,WAAW,EAClD,CAAC;QACD,WAAW,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IAC5C,CAAC;IAED,aAAa,IAAI,cAAc,CAAC,aAAa,CAAA;IAC7C,aAAa,IAAI,cAAc,CAAC,OAAO,CAAA;IACvC,IACE,cAAc,CAAC,MAAM,YAAY,SAAS;QAC1C,OAAO,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,WAAW,EACpD,CAAC;QACD,aAAa,IAAI,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IAChD,CAAC;IAED,MAAM,MAAM,GAAW,EAAE,CAAA;IACzB,MAAM,CAAC,SAAS,CAAC,GAAG,WAAW,CAAA;IAC/B,MAAM,CAAC,gBAAgB,CAAC,GAAG,aAAa,CAAA;IACxC,GAAG,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;IAEjC,IACE,cAAc,CAAC,IAAI;QACnB,cAAc,CAAC,IAAI,YAAY,SAAS;QACxC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAC5B,CAAC;QACD,yDAAyD;QACzD,GAAG,CAAC,YAAY,CACd,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAC3B,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAC3B,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAC5B,CAAA;IACH,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAC3B,CAAC;IAED,GAAG,CAAC,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;IAE5C,IAAI,cAAc,CAAC,MAAM,YAAY,SAAS,EAAE,CAAC;QAC/C,GAAG,CAAC,YAAY,CACd,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAC7B,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAC7B,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAC9B,CAAA;IACH,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAC3B,CAAC;IAED,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,aAAa,CAAC,CAAA;IAC5C,GAAG,CAAC,WAAW,CAAC,cAAc,CAAC,cAAc,CAAC,CAAA;IAE9C,IAAI,cAAc,CAAC,eAAe,EAAE,CAAC;QACnC,GAAG,CAAC,kBAAkB,CAAC,cAAc,CAAC,eAAe,EAAE,cAAc,CAAC,gBAAgB,CAAC,CAAA;IACzF,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,kBAAkB,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;IAC/B,CAAC;IAED,GAAG,CAAC,iBAAiB,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAA;IAEtD,IAAI,IAAwB,CAAA;IAC5B,IAAI,WAAW,CAAC,cAAc,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1D,IAAI,GAAG,WAAW,CAAC,cAAc,CAAC,UAAU,CAAC,CAAA;IAC/C,CAAC;SAAM,CAAC;QACN,IAAI,GAAG,cAAc,CAAC,UAAU,CAAA;IAClC,CAAC;IAED,IACE,cAAc,CAAC,IAAI;QACnB,cAAc,CAAC,IAAI,YAAY,SAAS;QACxC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAC5B,CAAC;QACD,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAA;QAC3C,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;IACzD,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAC3B,CAAC;IAED,IAAI,SAAS,GAAuB,EAAE,CAAA;IACtC,IAAI,cAAc,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;QACzC,SAAS,GAAG,MAAM,CAAA;IACpB,CAAC;IACD,IAAI,cAAc,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC1C,SAAS,IAAI,QAAQ,CAAA;IACvB,CAAC;IAED,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;QACrB,SAAS,GAAG,QAAQ,CAAA;IACtB,CAAC;IAED,IAAI,IAAI,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAClD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,WAAW,CAAC,cAAc,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC1D,IAAI,GAAG,WAAW,CAAC,cAAc,CAAC,UAAU,CAAC,CAAA;YAC/C,CAAC;iBAAM,CAAC;gBACN,IAAI,GAAG,cAAc,CAAC,UAAU,CAAA;YAClC,CAAC;QACH,CAAC;QACD,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IAC9B,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;IACrC,CAAC;IAED,uEAAuE;IACvE,GAAG,CAAC,WAAW,CAAC,cAAc,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;AACrE,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { RGBColor } from '../utils/rgbcolor';
2
+ import { Fill } from '../fill/Fill';
3
+ import { Context } from './context';
4
+ export declare class AttributeState {
5
+ xmlSpace: string;
6
+ whiteSpace: string;
7
+ fill: Fill | null;
8
+ fillOpacity: number;
9
+ fontFamily: string;
10
+ fontSize: number;
11
+ fontStyle: string;
12
+ fontWeight: string;
13
+ opacity: number;
14
+ stroke: Fill | null;
15
+ strokeDasharray: number[] | null;
16
+ strokeDashoffset: number;
17
+ strokeLinecap: string;
18
+ strokeLinejoin: string;
19
+ strokeMiterlimit: number;
20
+ strokeOpacity: number;
21
+ strokeWidth: number;
22
+ alignmentBaseline: string;
23
+ textAnchor: string;
24
+ visibility: string;
25
+ color: RGBColor | null;
26
+ contextFill: RGBColor | null;
27
+ contextStroke: RGBColor | null;
28
+ fillRule: string | null;
29
+ clone(): AttributeState;
30
+ static default(): AttributeState;
31
+ static getContextColors(context: Context, includeCurrentColor?: boolean): ContextColors;
32
+ }
33
+ export type ContextColors = Partial<Pick<AttributeState, 'color' | 'contextFill' | 'contextStroke'>>;
34
+ //# sourceMappingURL=attributestate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attributestate.d.ts","sourceRoot":"","sources":["../../src/context/attributestate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAEnC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,qBAAa,cAAc;IAClB,QAAQ,SAAK;IACb,UAAU,SAAK;IACf,IAAI,EAAE,IAAI,GAAG,IAAI,CAAO;IACxB,WAAW,SAAM;IAEjB,UAAU,SAAK;IACf,QAAQ,SAAK;IACb,SAAS,SAAK;IAEd,UAAU,SAAK;IACf,OAAO,SAAM;IACb,MAAM,EAAE,IAAI,GAAG,IAAI,CAAO;IAC1B,eAAe,EAAE,MAAM,EAAE,GAAG,IAAI,CAAO;IACvC,gBAAgB,SAAI;IACpB,aAAa,SAAK;IAClB,cAAc,SAAK;IACnB,gBAAgB,SAAM;IACtB,aAAa,SAAM;IACnB,WAAW,SAAM;IAEjB,iBAAiB,SAAK;IACtB,UAAU,SAAK;IACf,UAAU,SAAK;IACf,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAO;IAC7B,WAAW,EAAE,QAAQ,GAAG,IAAI,CAAO;IACnC,aAAa,EAAE,QAAQ,GAAG,IAAI,CAAO;IACrC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAO;IAErC,KAAK,IAAI,cAAc;IAmCvB,MAAM,CAAC,OAAO,IAAI,cAAc;IAmChC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,mBAAmB,UAAQ,GAAG,aAAa;CAetF;AAED,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,GAAG,aAAa,GAAG,eAAe,CAAC,CAAC,CAAA"}
@@ -0,0 +1,109 @@
1
+ import { RGBColor } from '../utils/rgbcolor';
2
+ import { ColorFill } from '../fill/ColorFill';
3
+ export class AttributeState {
4
+ constructor() {
5
+ this.xmlSpace = '';
6
+ this.whiteSpace = '';
7
+ this.fill = null;
8
+ this.fillOpacity = 1.0;
9
+ // public fillRule: string = null
10
+ this.fontFamily = '';
11
+ this.fontSize = 16;
12
+ this.fontStyle = '';
13
+ // public fontVariant: string
14
+ this.fontWeight = '';
15
+ this.opacity = 1.0;
16
+ this.stroke = null;
17
+ this.strokeDasharray = null;
18
+ this.strokeDashoffset = 0;
19
+ this.strokeLinecap = '';
20
+ this.strokeLinejoin = '';
21
+ this.strokeMiterlimit = 4.0;
22
+ this.strokeOpacity = 1.0;
23
+ this.strokeWidth = 1.0;
24
+ // public textAlign: string
25
+ this.alignmentBaseline = '';
26
+ this.textAnchor = '';
27
+ this.visibility = '';
28
+ this.color = null;
29
+ this.contextFill = null;
30
+ this.contextStroke = null;
31
+ this.fillRule = null;
32
+ }
33
+ clone() {
34
+ const clone = new AttributeState();
35
+ clone.xmlSpace = this.xmlSpace;
36
+ clone.whiteSpace = this.whiteSpace;
37
+ clone.fill = this.fill;
38
+ clone.fillOpacity = this.fillOpacity;
39
+ // clone.fillRule = this.fillRule;
40
+ clone.fontFamily = this.fontFamily;
41
+ clone.fontSize = this.fontSize;
42
+ clone.fontStyle = this.fontStyle;
43
+ // clone.fontVariant = this.fontVariant;
44
+ clone.fontWeight = this.fontWeight;
45
+ clone.opacity = this.opacity;
46
+ clone.stroke = this.stroke;
47
+ clone.strokeDasharray = this.strokeDasharray;
48
+ clone.strokeDashoffset = this.strokeDashoffset;
49
+ clone.strokeLinecap = this.strokeLinecap;
50
+ clone.strokeLinejoin = this.strokeLinejoin;
51
+ clone.strokeMiterlimit = this.strokeMiterlimit;
52
+ clone.strokeOpacity = this.strokeOpacity;
53
+ clone.strokeWidth = this.strokeWidth;
54
+ // clone.textAlign = this.textAlign;
55
+ clone.textAnchor = this.textAnchor;
56
+ clone.alignmentBaseline = this.alignmentBaseline;
57
+ clone.visibility = this.visibility;
58
+ clone.color = this.color;
59
+ clone.fillRule = this.fillRule;
60
+ clone.contextFill = this.contextFill;
61
+ clone.contextStroke = this.contextStroke;
62
+ return clone;
63
+ }
64
+ static default() {
65
+ const attributeState = new AttributeState();
66
+ attributeState.xmlSpace = 'default';
67
+ attributeState.whiteSpace = 'normal';
68
+ attributeState.fill = new ColorFill(new RGBColor('rgb(0, 0, 0)'));
69
+ attributeState.fillOpacity = 1.0;
70
+ // attributeState.fillRule = "nonzero";
71
+ attributeState.fontFamily = 'times';
72
+ attributeState.fontSize = 16;
73
+ attributeState.fontStyle = 'normal';
74
+ // attributeState.fontVariant = "normal";
75
+ attributeState.fontWeight = 'normal';
76
+ attributeState.opacity = 1.0;
77
+ attributeState.stroke = null;
78
+ attributeState.strokeDasharray = null;
79
+ attributeState.strokeDashoffset = 0;
80
+ attributeState.strokeLinecap = 'butt';
81
+ attributeState.strokeLinejoin = 'miter';
82
+ attributeState.strokeMiterlimit = 4.0;
83
+ attributeState.strokeOpacity = 1.0;
84
+ attributeState.strokeWidth = 1.0;
85
+ // attributeState.textAlign = "start";
86
+ attributeState.alignmentBaseline = 'baseline';
87
+ attributeState.textAnchor = 'start';
88
+ attributeState.visibility = 'visible';
89
+ attributeState.color = new RGBColor('rgb(0, 0, 0)');
90
+ attributeState.fillRule = 'nonzero';
91
+ attributeState.contextFill = null;
92
+ attributeState.contextStroke = null;
93
+ return attributeState;
94
+ }
95
+ static getContextColors(context, includeCurrentColor = false) {
96
+ const colors = {};
97
+ if (context.attributeState.contextFill) {
98
+ colors['contextFill'] = context.attributeState.contextFill;
99
+ }
100
+ if (context.attributeState.contextStroke) {
101
+ colors['contextStroke'] = context.attributeState.contextStroke;
102
+ }
103
+ if (includeCurrentColor && context.attributeState.color) {
104
+ colors['color'] = context.attributeState.color;
105
+ }
106
+ return colors;
107
+ }
108
+ }
109
+ //# sourceMappingURL=attributestate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attributestate.js","sourceRoot":"","sources":["../../src/context/attributestate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ import { ReferencesHandler } from './referenceshandler';
2
+ import { AttributeState } from './attributestate';
3
+ import { TextMeasure } from './textmeasure';
4
+ import { StyleSheets } from './stylesheets';
5
+ import { jsPDF, Matrix } from 'jspdf';
6
+ import { Viewport } from './viewport';
7
+ /**
8
+ *
9
+ * @package
10
+ * @param values
11
+ * @constructor
12
+ * @property pdf
13
+ * @property attributeState Keeps track of parent attributes that are inherited automatically
14
+ * @property refsHandler The handler that will render references on demand
15
+ * @property styleSheets
16
+ * @property textMeasure
17
+ * @property transform The current transformation matrix
18
+ * @property withinClipPath
19
+ */
20
+ export declare class Context {
21
+ pdf: jsPDF;
22
+ svg2pdfParameters: Svg2pdfParameters;
23
+ attributeState: AttributeState;
24
+ viewport: Viewport;
25
+ refsHandler: ReferencesHandler;
26
+ styleSheets: StyleSheets;
27
+ textMeasure: TextMeasure;
28
+ transform: Matrix;
29
+ withinClipPath: boolean;
30
+ withinUse: boolean;
31
+ constructor(pdf: jsPDF, values: ContextOptions);
32
+ clone(values?: {
33
+ viewport?: Viewport;
34
+ attributeState?: AttributeState;
35
+ transform?: Matrix;
36
+ withinClipPath?: boolean;
37
+ withinUse?: boolean;
38
+ }): Context;
39
+ }
40
+ export interface ContextOptions {
41
+ svg2pdfParameters: Svg2pdfParameters;
42
+ viewport: Viewport;
43
+ attributeState?: AttributeState;
44
+ refsHandler: ReferencesHandler;
45
+ styleSheets: StyleSheets;
46
+ textMeasure: TextMeasure;
47
+ transform?: Matrix;
48
+ withinClipPath?: boolean;
49
+ withinUse?: boolean;
50
+ }
51
+ export interface Svg2pdfParameters {
52
+ element: Element;
53
+ x?: number;
54
+ y?: number;
55
+ width?: number;
56
+ height?: number;
57
+ loadExternalStyleSheets?: boolean;
58
+ }
59
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/context/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC;;;;;;;;;;;;GAYG;AACH,qBAAa,OAAO;IAClB,GAAG,EAAE,KAAK,CAAA;IACV,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,cAAc,EAAE,cAAc,CAAA;IAC9B,QAAQ,EAAE,QAAQ,CAAA;IAClB,WAAW,EAAE,iBAAiB,CAAA;IAC9B,WAAW,EAAE,WAAW,CAAA;IACxB,WAAW,EAAE,WAAW,CAAA;IACxB,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,OAAO,CAAA;IACvB,SAAS,EAAE,OAAO,CAAA;gBAEN,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc;IAgB9C,KAAK,CACH,MAAM,GAAE;QACN,QAAQ,CAAC,EAAE,QAAQ,CAAA;QACnB,cAAc,CAAC,EAAE,cAAc,CAAA;QAC/B,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,cAAc,CAAC,EAAE,OAAO,CAAA;QACxB,SAAS,CAAC,EAAE,OAAO,CAAA;KACf,GACL,OAAO;CAeX;AAED,MAAM,WAAW,cAAc;IAC7B,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,QAAQ,EAAE,QAAQ,CAAA;IAClB,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,WAAW,EAAE,iBAAiB,CAAA;IAC9B,WAAW,EAAE,WAAW,CAAA;IACxB,WAAW,EAAE,WAAW,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAA;IAChB,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,uBAAuB,CAAC,EAAE,OAAO,CAAA;CAClC"}