@rasamjs/core 0.1.1 → 0.2.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 (115) hide show
  1. package/API.md +15 -5
  2. package/CHANGELOG.md +51 -1
  3. package/README.md +140 -20
  4. package/RELEASING.md +29 -18
  5. package/dist/changes/restore.js +2 -0
  6. package/dist/changes/restore.js.map +1 -1
  7. package/dist/changes/service.d.ts +5 -2
  8. package/dist/changes/service.d.ts.map +1 -1
  9. package/dist/changes/service.js +29 -4
  10. package/dist/changes/service.js.map +1 -1
  11. package/dist/changes/types.d.ts +9 -0
  12. package/dist/changes/types.d.ts.map +1 -1
  13. package/dist/changes/types.js.map +1 -1
  14. package/dist/changes.d.ts +5 -3
  15. package/dist/changes.d.ts.map +1 -1
  16. package/dist/changes.js +103 -2
  17. package/dist/changes.js.map +1 -1
  18. package/dist/dom/images.d.ts.map +1 -1
  19. package/dist/dom/images.js +3 -1
  20. package/dist/dom/images.js.map +1 -1
  21. package/dist/elements/image.d.ts.map +1 -1
  22. package/dist/elements/image.js +4 -1
  23. package/dist/elements/image.js.map +1 -1
  24. package/dist/elements/text.js +4 -4
  25. package/dist/elements/text.js.map +1 -1
  26. package/dist/interchange/clone.js +1 -1
  27. package/dist/interchange/clone.js.map +1 -1
  28. package/dist/interchange/dom.d.ts +3 -1
  29. package/dist/interchange/dom.d.ts.map +1 -1
  30. package/dist/interchange/dom.js +29 -5
  31. package/dist/interchange/dom.js.map +1 -1
  32. package/dist/interchange/markup.d.ts.map +1 -1
  33. package/dist/interchange/markup.js +71 -3
  34. package/dist/interchange/markup.js.map +1 -1
  35. package/dist/interchange/policy.d.ts.map +1 -1
  36. package/dist/interchange/policy.js +4 -0
  37. package/dist/interchange/policy.js.map +1 -1
  38. package/dist/interchange/types.d.ts +10 -1
  39. package/dist/interchange/types.d.ts.map +1 -1
  40. package/dist/mixins/transformable.d.ts.map +1 -1
  41. package/dist/mixins/transformable.js +25 -27
  42. package/dist/mixins/transformable.js.map +1 -1
  43. package/dist/raster/frame.d.ts +12 -0
  44. package/dist/raster/frame.d.ts.map +1 -0
  45. package/dist/raster/frame.js +43 -0
  46. package/dist/raster/frame.js.map +1 -0
  47. package/dist/raster/images.d.ts +2 -0
  48. package/dist/raster/images.d.ts.map +1 -0
  49. package/dist/raster/images.js +60 -0
  50. package/dist/raster/images.js.map +1 -0
  51. package/dist/raster/render.d.ts +3 -0
  52. package/dist/raster/render.d.ts.map +1 -0
  53. package/dist/raster/render.js +40 -0
  54. package/dist/raster/render.js.map +1 -0
  55. package/dist/raster/types.d.ts +10 -0
  56. package/dist/raster/types.d.ts.map +1 -0
  57. package/dist/raster/types.js +2 -0
  58. package/dist/raster/types.js.map +1 -0
  59. package/dist/raster.d.ts +6 -0
  60. package/dist/raster.d.ts.map +1 -0
  61. package/dist/raster.js +10 -0
  62. package/dist/raster.js.map +1 -0
  63. package/dist/resources/references.d.ts.map +1 -1
  64. package/dist/resources/references.js +3 -1
  65. package/dist/resources/references.js.map +1 -1
  66. package/dist/services/viewport.d.ts +2 -0
  67. package/dist/services/viewport.d.ts.map +1 -1
  68. package/dist/services/viewport.js +4 -3
  69. package/dist/services/viewport.js.map +1 -1
  70. package/dist/text/content.d.ts +0 -2
  71. package/dist/text/content.d.ts.map +1 -1
  72. package/dist/text/content.js +4 -10
  73. package/dist/text/content.js.map +1 -1
  74. package/dist/text/policies.d.ts +7 -0
  75. package/dist/text/policies.d.ts.map +1 -0
  76. package/dist/text/policies.js +13 -0
  77. package/dist/text/policies.js.map +1 -0
  78. package/dist/text/rich-textual.js +3 -3
  79. package/dist/text/rich-textual.js.map +1 -1
  80. package/package.json +6 -1
  81. package/reports/adoption.json +20 -20
  82. package/reports/animation-benchmark.json +613 -613
  83. package/reports/benchmark.json +51 -51
  84. package/reports/creation.json +26 -26
  85. package/reports/interchange-benchmark.json +85 -85
  86. package/reports/public-api-contract.json +20 -7
  87. package/reports/public-api-review.md +23 -0
  88. package/reports/size-parity.json +54 -19
  89. package/reports/size.json +2 -2
  90. package/reports/svgjs-comparison.json +3542 -3542
  91. package/reports/svgjs-comparison.md +17 -17
  92. package/reports/svgjs-parity-current.json +60 -39
  93. package/src/changes/restore.ts +2 -0
  94. package/src/changes/service.ts +39 -5
  95. package/src/changes/types.ts +9 -0
  96. package/src/changes.ts +93 -4
  97. package/src/dom/images.ts +2 -1
  98. package/src/elements/image.ts +4 -1
  99. package/src/elements/text.ts +3 -3
  100. package/src/interchange/clone.ts +1 -1
  101. package/src/interchange/dom.ts +34 -5
  102. package/src/interchange/markup.ts +77 -3
  103. package/src/interchange/policy.ts +6 -0
  104. package/src/interchange/types.ts +10 -1
  105. package/src/mixins/transformable.ts +23 -25
  106. package/src/raster/frame.ts +53 -0
  107. package/src/raster/images.ts +73 -0
  108. package/src/raster/render.ts +45 -0
  109. package/src/raster/types.ts +9 -0
  110. package/src/raster.ts +13 -0
  111. package/src/resources/references.ts +5 -1
  112. package/src/services/viewport.ts +5 -4
  113. package/src/text/content.ts +4 -14
  114. package/src/text/policies.ts +18 -0
  115. package/src/text/rich-textual.ts +2 -2
@@ -5,12 +5,41 @@ import { dependencyRoots, remapIds, restoreLocalReferences } from './references.
5
5
  import { InterchangeDom } from './dom.js';
6
6
  import { preflight, reconstruct } from './reconstruct.js';
7
7
  import { validateImportContent } from './policy.js';
8
+ import { BBox } from '../math/bbox.js';
9
+ import { isNestedViewport, viewportLength } from '../services/viewport.js';
10
+ import { Attributes } from '../dom/attributes.js';
11
+ function frameContent(source, envelope, padding) {
12
+ const bounds = source.bounds('root');
13
+ if (bounds.status === 'unavailable')
14
+ throw new Error(`Cannot frame SVG content: ${bounds.reason}`);
15
+ const box = 'box' in bounds
16
+ ? bounds.box
17
+ : {
18
+ x: 0,
19
+ y: 0,
20
+ width: BBox.numeric(source.context.root?.getAttributeValue('width'), 800) ?? 800,
21
+ height: BBox.numeric(source.context.root?.getAttributeValue('height'), 600) ?? 600,
22
+ };
23
+ const width = box.width + padding * 2, height = box.height + padding * 2;
24
+ if (![box.x - padding, box.y - padding, width, height].every(Number.isFinite))
25
+ throw new RangeError('SVG content frame must be finite');
26
+ envelope.setAttribute('viewBox', `${box.x - padding} ${box.y - padding} ${width} ${height}`);
27
+ envelope.setAttribute('width', String(width));
28
+ envelope.setAttribute('height', String(height));
29
+ }
8
30
  export function exportSvg(source, options = {}) {
9
31
  source.assertLive();
10
32
  if (options.format !== undefined && !['document', 'subtree'].includes(options.format))
11
33
  throw new TypeError('Unknown SVG export format');
12
34
  if (options.resources !== undefined && !['referenced', 'none'].includes(options.resources))
13
35
  throw new TypeError('Unknown export resource policy');
36
+ if (options.frame !== undefined && options.frame !== 'content')
37
+ throw new TypeError('Unknown SVG frame');
38
+ if (options.frame && options.format === 'subtree')
39
+ throw new TypeError('Content framing requires a document export');
40
+ const padding = options.padding ?? 0;
41
+ if (!Number.isFinite(padding) || padding < 0)
42
+ throw new RangeError('SVG padding must be nonnegative and finite');
14
43
  source.flush();
15
44
  const dependencies = options.resources === 'none' ? [] : dependencyRoots(source, 'local');
16
45
  const copies = new Map();
@@ -21,14 +50,26 @@ export function exportSvg(source, options = {}) {
21
50
  return InterchangeDom.serialize(element);
22
51
  }
23
52
  const document = element.ownerDocument;
24
- const envelope = element.localName === 'svg' ? element : document.createElementNS(SVG_NAMESPACE, 'svg');
53
+ const framedSubtree = options.frame === 'content' && source !== source.context.root;
54
+ const envelope = element.localName === 'svg' && !framedSubtree
55
+ ? element
56
+ : document.createElementNS(SVG_NAMESPACE, 'svg');
25
57
  if (envelope !== element) {
26
58
  for (const name of ['width', 'height', 'viewBox', 'preserveAspectRatio']) {
27
59
  const value = source.context.root?.getAttributeValue(name);
28
60
  if (value !== undefined)
29
61
  envelope.setAttribute(name, String(value));
30
62
  }
31
- envelope.append(element);
63
+ if (framedSubtree && source.parent) {
64
+ // The snapshot retains its own transform and any nested SVG viewport. Only
65
+ // the omitted ancestors need mapping into the document-space content frame.
66
+ const mapping = document.createElementNS(SVG_NAMESPACE, 'g');
67
+ mapping.setAttribute('transform', source.context.bounds.matrix(source.parent).toString());
68
+ mapping.append(element);
69
+ envelope.append(mapping);
70
+ }
71
+ else
72
+ envelope.append(element);
32
73
  }
33
74
  if (dependencies.length) {
34
75
  const defs = document.createElementNS(SVG_NAMESPACE, 'defs');
@@ -36,6 +77,19 @@ export function exportSvg(source, options = {}) {
36
77
  defs.append(snapshot(dependency, copies));
37
78
  envelope.prepend(defs);
38
79
  }
80
+ if (options.frame === 'content') {
81
+ frameContent(source, envelope, padding);
82
+ // Reframing changes percentage bases. Preserve each copied nested viewport's
83
+ // original placement and dimensions, including omitted 100% sizes.
84
+ for (const [node, copy] of copies) {
85
+ if (!isNestedViewport(node))
86
+ continue;
87
+ for (const name of ['x', 'y', 'width', 'height']) {
88
+ const axis = name === 'x' || name === 'width' ? 'width' : 'height';
89
+ copy.setAttribute(name, String(viewportLength(node, name, axis, name === axis ? '100%' : 0)));
90
+ }
91
+ }
92
+ }
39
93
  return InterchangeDom.serialize(envelope);
40
94
  }
41
95
  export function importSvg(parent, markup, options = {}) {
@@ -43,8 +97,18 @@ export function importSvg(parent, markup, options = {}) {
43
97
  assertCanAddChildren(parent);
44
98
  const index = options.index ?? parent.children.length;
45
99
  validateIndex(index, parent.children.length);
46
- const roots = InterchangeDom.parse(parent.el, markup);
100
+ if (options.document !== undefined &&
101
+ typeof options.document !== 'boolean' &&
102
+ !['presentation', 'replace'].includes(options.document))
103
+ throw new TypeError('Unknown document import mode');
104
+ if (options.document === 'replace' &&
105
+ (parent !== parent.context.root || parent.children.length))
106
+ throw new TypeError('Document replacement requires an empty owning drawing');
107
+ let roots = InterchangeDom.parse(parent.el, markup, !!options.document);
47
108
  validateImportContent(roots, options);
109
+ const replace = options.document === 'replace' && roots.length === 1 && roots[0].localName === 'svg';
110
+ if (options.document)
111
+ roots = InterchangeDom.unwrap(roots, options.document !== true);
48
112
  preflight(parent.context, roots);
49
113
  remapIds(parent, roots);
50
114
  return reconstruct(parent, roots, (nodes) => {
@@ -53,6 +117,10 @@ export function importSvg(parent, markup, options = {}) {
53
117
  parent[validateChild](node);
54
118
  for (let position = 0; position < nodes.length; position++)
55
119
  parent.add(nodes[position], index + position);
120
+ if (replace)
121
+ for (const name of Attributes.common)
122
+ if (!['id', 'class'].includes(name))
123
+ parent.setAttributeValue(name, undefined);
56
124
  return Object.freeze(nodes);
57
125
  });
58
126
  });
@@ -1 +1 @@
1
- {"version":3,"file":"markup.js","sourceRoot":"","sources":["../../src/interchange/markup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"markup.js","sourceRoot":"","sources":["../../src/interchange/markup.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/interchange/policy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAwGhD,+FAA+F;AAC/F,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,CAsChG"}
1
+ {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/interchange/policy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AA8GhD,+FAA+F;AAC/F,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,CAsChG"}
@@ -81,6 +81,10 @@ function validateUrl(tag, name, value, options) {
81
81
  if (name === 'href') {
82
82
  if (value === '')
83
83
  return;
84
+ // Image documents are passive resources; keep embedded image files restorable.
85
+ if (tag === 'image' &&
86
+ /^data:image\/(?:png|jpe?g|gif|webp|avif|svg\+xml)(?:;[^,]*)?,/i.test(value))
87
+ return;
84
88
  if (options.externalUrls === 'http' &&
85
89
  ['image', 'a', 'use'].includes(tag) &&
86
90
  /^https?:\/\//i.test(value) &&
@@ -1 +1 @@
1
- {"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/interchange/policy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/interchange/policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAG/D,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC;IACnB,KAAK;IACL,GAAG;IACH,MAAM;IACN,MAAM;IACN,QAAQ;IACR,SAAS;IACT,MAAM;IACN,UAAU;IACV,SAAS;IACT,MAAM;IACN,KAAK;IACL,MAAM;IACN,OAAO;IACP,UAAU;IACV,gBAAgB;IAChB,gBAAgB;IAChB,MAAM;IACN,UAAU;IACV,QAAQ;IACR,MAAM;IACN,SAAS;IACT,QAAQ;IACR,OAAO;IACP,GAAG;IACH,OAAO;IACP,MAAM;IACN,UAAU;CACX,CAAC,CAAC;AACH,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IAC9B,MAAM;IACN,QAAQ;IACR,cAAc;IACd,SAAS;IACT,cAAc;IACd,gBAAgB;IAChB,WAAW;IACX,gBAAgB;IAChB,iBAAiB;IACjB,mBAAmB;IACnB,kBAAkB;IAClB,mBAAmB;IACnB,SAAS;IACT,YAAY;IACZ,aAAa;IACb,WAAW;IACX,aAAa;IACb,YAAY;IACZ,cAAc;IACd,cAAc;IACd,gBAAgB;IAChB,cAAc;IACd,aAAa;IACb,mBAAmB;IACnB,gBAAgB;IAChB,QAAQ;IACR,aAAa;IACb,cAAc;CACf,CAAC,CAAC;AAEH,SAAS,aAAa,CAAC,KAAa;IAClC,IAAI,kCAAkC,CAAC,IAAI,CAAC,KAAK,CAAC;QAChD,MAAM,IAAI,SAAS,CAAC,qCAAqC,CAAC,CAAC;IAC7D,KAAK,MAAM,WAAW,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QACzE,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAClE,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACpD,IACE,KAAK,GAAG,CAAC;YACT,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC;YAC9B,CAAC,OAAO;YACR,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC;YACrC,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAC1C,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CACtD;YAED,MAAM,IAAI,SAAS,CACjB,0EAA0E,CAC3E,CAAC;IACN,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,GAAW,EAAE,IAAY,EAAE,KAAa,EAAE,OAAsB;IACnF,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACjD,IAAI,SAAS;QAAE,OAAO;IACtB,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,IAAI,KAAK,KAAK,EAAE;YAAE,OAAO;QACzB,+EAA+E;QAC/E,IACE,GAAG,KAAK,OAAO;YACf,gEAAgE,CAAC,IAAI,CAAC,KAAK,CAAC;YAE5E,OAAO;QACT,IACE,OAAO,CAAC,YAAY,KAAK,MAAM;YAC/B,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;YACnC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;YAC3B,CAAC,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,EACxC,CAAC;YACD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;YAC3B,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,QAAQ;gBAAE,OAAO;QAC7C,CAAC;QACD,MAAM,IAAI,SAAS,CAAC,sDAAsD,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,mCAAmC,CAAC,IAAI,CAAC,KAAK,CAAC;QACjD,MAAM,IAAI,SAAS,CAAC,qDAAqD,CAAC,CAAC;AAC/E,CAAC;AAED,+FAA+F;AAC/F,MAAM,UAAU,qBAAqB,CAAC,KAA4B,EAAE,OAAsB;IACxF,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC;QAC1F,MAAM,IAAI,SAAS,CAAC,6BAA6B,CAAC,CAAC;IACrD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,SAAS,KAAK,CAAC,OAAmB,EAAE,KAAa;QAC/C,IAAI,EAAE,KAAK,GAAG,MAAM,IAAI,KAAK,GAAG,GAAG;YACjC,MAAM,IAAI,UAAU,CAAC,sCAAsC,CAAC,CAAC;QAC/D,IAAI,OAAO,CAAC,YAAY,KAAK,aAAa,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC;YACxE,MAAM,IAAI,SAAS,CAAC,mCAAmC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;QAC9E,MAAM,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QACnE,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK;gBAC/E,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;YACzD,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YAC3C,OAAO,CAAC,iBAAiB,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QACrD,CAAC;QACD,KAAK,MAAM,SAAS,IAAI,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YAChD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,SAAS,CAAC;YAChD,IAAI,YAAY,KAAK,+BAA+B;gBAAE,SAAS;YAC/D,IACE,YAAY;gBACZ,CAAC,CAAC,YAAY,KAAK,aAAa,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAE7E,MAAM,IAAI,SAAS,CAAC,+CAA+C,IAAI,EAAE,CAAC,CAAC;YAC7E,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK;gBAC1E,MAAM,IAAI,SAAS,CAAC,qCAAqC,IAAI,EAAE,CAAC,CAAC;YACnE,IAAI,IAAI,KAAK,OAAO;gBAAE,aAAa,CAAC,KAAK,CAAC,CAAC;;gBACtC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM;YACtF,MAAM,IAAI,SAAS,CAAC,mDAAmD,CAAC,CAAC;QAC3E,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvC,IAAI,KAAK,CAAC,QAAQ,KAAK,CAAC;gBAAE,KAAK,CAAC,KAAmB,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;iBAC3D,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;gBAC1C,MAAM,IAAI,SAAS,CAAC,6BAA6B,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC3C,CAAC"}
@@ -9,10 +9,19 @@ export interface ExportOptions {
9
9
  format?: 'document' | 'subtree';
10
10
  /** Include reachable typed and unambiguous local references. CSS URLs are not traversed. */
11
11
  resources?: 'referenced' | 'none';
12
+ /** Frame geometric content in document coordinates rather than the current camera. */
13
+ frame?: 'content';
14
+ /** Nonnegative drawing units around a content frame; defaults to zero. */
15
+ padding?: number;
12
16
  }
13
17
  export interface ImportOptions {
14
18
  index?: number;
15
- /** External URLs are rejected by default. Opt in to absolute HTTP(S) image/link/Use URLs. */
19
+ /** true unwraps children; 'presentation' retains scoped root attributes without
20
+ * the viewport. 'replace' additionally clears configured root presentation for a
21
+ * full document, and requires an empty owning drawing. Fragments keep defaults. */
22
+ document?: boolean | 'presentation' | 'replace';
23
+ /** External URLs are rejected by default; embedded data images are allowed on image elements.
24
+ * Opt in to absolute HTTP(S) image/link/Use URLs. */
16
25
  externalUrls?: 'reject' | 'http';
17
26
  }
18
27
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/interchange/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,WAAW,YAAY;IAC3B,yEAAyE;IACzE,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,4FAA4F;IAC5F,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAC9B;AACD,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAChC,4FAA4F;IAC5F,SAAS,CAAC,EAAE,YAAY,GAAG,MAAM,CAAC;CACnC;AACD,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6FAA6F;IAC7F,YAAY,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;CAClC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/interchange/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,WAAW,YAAY;IAC3B,yEAAyE;IACzE,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,4FAA4F;IAC5F,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAC9B;AACD,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAChC,4FAA4F;IAC5F,SAAS,CAAC,EAAE,YAAY,GAAG,MAAM,CAAC;IAClC,sFAAsF;IACtF,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,0EAA0E;IAC1E,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AACD,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;uFAEmF;IACnF,QAAQ,CAAC,EAAE,OAAO,GAAG,cAAc,GAAG,SAAS,CAAC;IAChD;yDACqD;IACrD,YAAY,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;CAClC"}
@@ -1 +1 @@
1
- {"version":3,"file":"transformable.d.ts","sourceRoot":"","sources":["../../src/mixins/transformable.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAkBrD,eAAO,MAAM,aAAa,EAAE,kBA6U3B,CAAC"}
1
+ {"version":3,"file":"transformable.d.ts","sourceRoot":"","sources":["../../src/mixins/transformable.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAkBrD,eAAO,MAAM,aAAa,EAAE,kBA2U3B,CAAC"}
@@ -43,9 +43,9 @@ export const Transformable = (BaseClass) => {
43
43
  return value === undefined ? Matrix.identity() : Matrix.parse(String(value));
44
44
  }
45
45
  matrix(value) {
46
+ if (value === undefined)
47
+ return this.localMatrix();
46
48
  return mutation(this, () => {
47
- if (value === undefined)
48
- return this.localMatrix();
49
49
  this.assertLive();
50
50
  const matrix = Matrix.from(value);
51
51
  this.#matrixMode = true;
@@ -94,34 +94,32 @@ export const Transformable = (BaseClass) => {
94
94
  return { base, geometry };
95
95
  }
96
96
  transformState(state) {
97
- return mutation(this, () => {
98
- this.assertLive();
99
- if (state !== undefined)
100
- return this.restoreTransformState(state);
101
- const { base, geometry } = this.mappingState();
102
- const transform = this.getAttributeValue('transform');
103
- const common = {
104
- tag: this.context.dom.tag(this.el),
105
- transform: transform === undefined ? null : String(transform),
106
- geometry: Object.freeze(geometry.toArray()),
107
- attributes: geometrySnapshot(this),
108
- };
109
- if (this.#matrixMode || transform !== this.#lastTransform)
110
- return Object.freeze({
111
- ...common,
112
- mode: 'matrix',
113
- matrix: Object.freeze(base.toArray()),
114
- });
115
- const components = this.components;
97
+ this.assertLive();
98
+ if (state !== undefined)
99
+ return mutation(this, () => this.restoreTransformState(state));
100
+ const { base, geometry } = this.mappingState();
101
+ const transform = this.getAttributeValue('transform');
102
+ const common = {
103
+ tag: this.context.dom.tag(this.el),
104
+ transform: transform === undefined ? null : String(transform),
105
+ geometry: Object.freeze(geometry.toArray()),
106
+ attributes: geometrySnapshot(this),
107
+ };
108
+ if (this.#matrixMode || transform !== this.#lastTransform)
116
109
  return Object.freeze({
117
110
  ...common,
118
- mode: 'components',
119
- position: components.position,
120
- rotation: components.rotation,
121
- scale: components.scale,
122
- origin: components.origin,
123
- automaticOrigin: !components.explicitOrigin,
111
+ mode: 'matrix',
112
+ matrix: Object.freeze(base.toArray()),
124
113
  });
114
+ const components = this.components;
115
+ return Object.freeze({
116
+ ...common,
117
+ mode: 'components',
118
+ position: components.position,
119
+ rotation: components.rotation,
120
+ scale: components.scale,
121
+ origin: components.origin,
122
+ automaticOrigin: !components.explicitOrigin,
125
123
  });
126
124
  }
127
125
  restoreTransformState(state) {
@@ -1 +1 @@
1
- {"version":3,"file":"transformable.js","sourceRoot":"","sources":["../../src/mixins/transformable.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transformable.js","sourceRoot":"","sources":["../../src/mixins/transformable.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { AnyNode } from '../core/types.js';
2
+ import type { RasterOptions } from './types.js';
3
+ export declare function prepareRaster(root: AnyNode, options: RasterOptions): {
4
+ document: Document;
5
+ svg: HTMLElement;
6
+ type: "image/jpeg" | "image/png" | "image/webp";
7
+ background: string;
8
+ width: number;
9
+ height: number;
10
+ };
11
+ export type RasterSnapshot = ReturnType<typeof prepareRaster>;
12
+ //# sourceMappingURL=frame.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frame.d.ts","sourceRoot":"","sources":["../../src/raster/frame.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAEhD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa;;;;;;;EAgDlE;AACD,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC"}
@@ -0,0 +1,43 @@
1
+ import { exportSvg } from '../interchange/markup.js';
2
+ export function prepareRaster(root, options) {
3
+ root.assertLive();
4
+ const document = root.el.ownerDocument, view = document.defaultView;
5
+ if (!view)
6
+ throw new Error('Raster export needs a browser document');
7
+ const type = options.type ?? 'image/png', scale = options.scale ?? 1, frame = options.frame ?? 'content', padding = options.padding ?? 0;
8
+ if (!['image/png', 'image/webp', 'image/jpeg'].includes(type))
9
+ throw new TypeError('Unknown raster image type');
10
+ if (!Number.isFinite(scale) || scale <= 0)
11
+ throw new RangeError('Raster scale must be positive and finite');
12
+ if (!Number.isFinite(padding) || padding < 0)
13
+ throw new RangeError('Raster padding must be nonnegative and finite');
14
+ if (!['content', 'viewBox'].includes(frame))
15
+ throw new TypeError('Unknown raster frame');
16
+ const background = options.background ?? (type === 'image/jpeg' ? '#ffffff' : undefined);
17
+ if (background !== undefined &&
18
+ (typeof background !== 'string' || !view.CSS.supports('color', background)))
19
+ throw new TypeError('Raster background must be a CSS color');
20
+ const markup = exportSvg(root, { frame: frame === 'content' ? 'content' : undefined, padding });
21
+ const svg = new view.DOMParser().parseFromString(markup, 'image/svg+xml').documentElement;
22
+ const box = svg
23
+ .getAttribute('viewBox')
24
+ ?.trim()
25
+ .split(/[\s,]+/)
26
+ .map(Number);
27
+ const extent = root.context.root.el.getBoundingClientRect();
28
+ const length = (name, fallback) => {
29
+ const value = svg.getAttribute(name) ?? '';
30
+ return /^\d+(?:\.\d+)?(?:px)?$/.test(value) ? parseFloat(value) : fallback;
31
+ };
32
+ const width = box?.length === 4 ? box[2] : length('width', extent.width), height = box?.length === 4 ? box[3] : length('height', extent.height);
33
+ const pixels = [Math.ceil(width * scale), Math.ceil(height * scale)];
34
+ if (!pixels.every((value) => Number.isSafeInteger(value) && value > 0 && value <= 32767) ||
35
+ pixels[0] * pixels[1] > 16777216)
36
+ throw new RangeError('Raster export needs positive dimensions, at most 32767 per axis and 16777216 pixels; reduce scale or add padding to zero-size content');
37
+ svg.setAttribute('width', String(pixels[0]));
38
+ svg.setAttribute('height', String(pixels[1]));
39
+ if (!box)
40
+ svg.setAttribute('viewBox', `0 0 ${width} ${height}`);
41
+ return { document, svg, type, background, width: pixels[0], height: pixels[1] };
42
+ }
43
+ //# sourceMappingURL=frame.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frame.js","sourceRoot":"","sources":["../../src/raster/frame.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function embedImages(svg: Element, document: Document, base: string, ancestors?: readonly string[]): Promise<void>;
2
+ //# sourceMappingURL=images.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"images.d.ts","sourceRoot":"","sources":["../../src/raster/images.ts"],"names":[],"mappings":"AAEA,wBAAsB,WAAW,CAC/B,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,SAAS,GAAE,SAAS,MAAM,EAAO,GAChC,OAAO,CAAC,IAAI,CAAC,CAiEf"}
@@ -0,0 +1,60 @@
1
+ /** Inline supported image resources; SVG-as-image rendering cannot load external files. */
2
+ const xlink = 'http://www.w3.org/1999/xlink';
3
+ export async function embedImages(svg, document, base, ancestors = []) {
4
+ const view = document.defaultView;
5
+ for (const image of svg.querySelectorAll('image,feImage')) {
6
+ const href = image.getAttribute('href') ?? image.getAttributeNS(xlink, 'href');
7
+ if (!href || href.startsWith('#'))
8
+ continue;
9
+ const url = new URL(href, base);
10
+ if (url.protocol !== 'data:' &&
11
+ (!['http:', 'https:'].includes(url.protocol) || url.origin !== new URL(document.URL).origin))
12
+ throw new Error('Raster export supports only same-origin and data-URL images');
13
+ if (ancestors.length >= 8 || ancestors.includes(url.href))
14
+ throw new Error('Raster image resources are cyclic or too deeply nested');
15
+ let blob;
16
+ try {
17
+ const response = await view.fetch(url.href, url.protocol === 'data:'
18
+ ? {}
19
+ : { mode: 'same-origin', credentials: 'same-origin', redirect: 'error' });
20
+ if (!response.ok)
21
+ throw new Error(`HTTP ${response.status}`);
22
+ blob = await response.blob();
23
+ }
24
+ catch (cause) {
25
+ throw new Error('Cannot load a raster image resource', { cause });
26
+ }
27
+ const mime = blob.type.split(';')[0].toLowerCase();
28
+ if (![
29
+ 'image/png',
30
+ 'image/jpeg',
31
+ 'image/webp',
32
+ 'image/gif',
33
+ 'image/avif',
34
+ 'image/svg+xml',
35
+ ].includes(mime))
36
+ throw new Error('Unsupported raster image resource type');
37
+ if (mime === 'image/svg+xml') {
38
+ const nested = new view.DOMParser().parseFromString(await blob.text(), 'image/svg+xml');
39
+ if (nested.querySelector('parsererror') || nested.documentElement.localName !== 'svg')
40
+ throw new Error('Invalid SVG image resource');
41
+ await embedImages(nested.documentElement, document, url.protocol === 'data:' ? base : url.href, [...ancestors, url.href]);
42
+ blob = new view.Blob([new view.XMLSerializer().serializeToString(nested)], { type: mime });
43
+ }
44
+ const data = await new Promise((resolve, reject) => {
45
+ const reader = new view.FileReader();
46
+ reader.onload = () => resolve(String(reader.result));
47
+ reader.onerror = () => reject(new Error('Cannot encode a raster image resource'));
48
+ reader.readAsDataURL(blob);
49
+ });
50
+ await new Promise((resolve, reject) => {
51
+ const decoded = new view.Image();
52
+ decoded.onload = () => resolve();
53
+ decoded.onerror = () => reject(new Error('Cannot decode a raster image resource'));
54
+ decoded.src = data;
55
+ });
56
+ image.removeAttributeNS(xlink, 'href');
57
+ image.setAttribute('href', data);
58
+ }
59
+ }
60
+ //# sourceMappingURL=images.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"images.js","sourceRoot":"","sources":["../../src/raster/images.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { RasterSnapshot } from './frame.js';
2
+ export declare function renderRaster({ document, svg, type, background, width, height, }: RasterSnapshot): Promise<Blob>;
3
+ //# sourceMappingURL=render.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/raster/render.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,wBAAsB,YAAY,CAAC,EACjC,QAAQ,EACR,GAAG,EACH,IAAI,EACJ,UAAU,EACV,KAAK,EACL,MAAM,GACP,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAoChC"}
@@ -0,0 +1,40 @@
1
+ export async function renderRaster({ document, svg, type, background, width, height, }) {
2
+ const view = document.defaultView;
3
+ const url = view.URL.createObjectURL(new view.Blob([new view.XMLSerializer().serializeToString(svg)], { type: 'image/svg+xml' }));
4
+ try {
5
+ const image = new view.Image();
6
+ await new Promise((resolve, reject) => {
7
+ image.onload = () => resolve();
8
+ image.onerror = () => reject(new Error('Cannot decode SVG for raster export'));
9
+ image.src = url;
10
+ });
11
+ const canvas = document.createElement('canvas');
12
+ canvas.width = width;
13
+ canvas.height = height;
14
+ const context = canvas.getContext('2d');
15
+ if (!context)
16
+ throw new Error('Raster export needs a 2D canvas context');
17
+ if (background !== undefined) {
18
+ context.fillStyle = background;
19
+ context.fillRect(0, 0, canvas.width, canvas.height);
20
+ }
21
+ context.drawImage(image, 0, 0, canvas.width, canvas.height);
22
+ return await new Promise((resolve, reject) => canvas.toBlob((blob) => {
23
+ if (!blob)
24
+ reject(new Error('Browser could not encode the raster image'));
25
+ else if (blob.type !== type)
26
+ reject(new Error(`Browser cannot encode ${type}`));
27
+ else
28
+ resolve(blob);
29
+ }, type));
30
+ }
31
+ catch (cause) {
32
+ if (cause?.name === 'SecurityError')
33
+ throw new Error('Cannot export image: canvas is tainted by cross-origin content', { cause });
34
+ throw cause;
35
+ }
36
+ finally {
37
+ view.URL.revokeObjectURL(url);
38
+ }
39
+ }
40
+ //# sourceMappingURL=render.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/raster/render.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,EACjC,QAAQ,EACR,GAAG,EACH,IAAI,EACJ,UAAU,EACV,KAAK,EACL,MAAM,GACS;IACf,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAY,CAAC;IACnC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAClC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAC5F,CAAC;IACF,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,KAAK,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;YAC/B,KAAK,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC,CAAC;YAC/E,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;QAClB,CAAC,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;QACvB,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QACzE,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,CAAC,SAAS,GAAG,UAAU,CAAC;YAC/B,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5D,OAAO,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CACjD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YACrB,IAAI,CAAC,IAAI;gBAAE,MAAM,CAAC,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC,CAAC;iBACrE,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI;gBAAE,MAAM,CAAC,IAAI,KAAK,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC,CAAC;;gBAC3E,OAAO,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC,EAAE,IAAI,CAAC,CACT,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA2B,EAAE,IAAI,KAAK,eAAe;YACxD,MAAM,IAAI,KAAK,CAAC,gEAAgE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/F,MAAM,KAAK,CAAC;IACd,CAAC;YAAS,CAAC;QACT,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;AACH,CAAC"}
@@ -0,0 +1,10 @@
1
+ export interface RasterOptions {
2
+ readonly type?: 'image/png' | 'image/webp' | 'image/jpeg';
3
+ readonly scale?: number;
4
+ readonly background?: string;
5
+ /** Content bounds by default; viewBox exports the current document camera. */
6
+ readonly frame?: 'content' | 'viewBox';
7
+ /** Drawing units around content bounds, default zero. */
8
+ readonly padding?: number;
9
+ }
10
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/raster/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,YAAY,GAAG,YAAY,CAAC;IAC1D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,8EAA8E;IAC9E,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IACvC,yDAAyD;IACzD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/raster/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import type { AnyNode } from './core/types.js';
2
+ import type { RasterOptions } from './raster/types.js';
3
+ export type { RasterOptions };
4
+ /** Snapshot and render a passive SVG document without changing its camera or model. */
5
+ export declare function exportImage(root: AnyNode, options?: RasterOptions): Promise<Blob>;
6
+ //# sourceMappingURL=raster.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raster.d.ts","sourceRoot":"","sources":["../src/raster.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAIvD,YAAY,EAAE,aAAa,EAAE,CAAC;AAE9B,uFAAuF;AACvF,wBAAsB,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAI3F"}
package/dist/raster.js ADDED
@@ -0,0 +1,10 @@
1
+ import { prepareRaster } from './raster/frame.js';
2
+ import { embedImages } from './raster/images.js';
3
+ import { renderRaster } from './raster/render.js';
4
+ /** Snapshot and render a passive SVG document without changing its camera or model. */
5
+ export async function exportImage(root, options = {}) {
6
+ const snapshot = prepareRaster(root, options);
7
+ await embedImages(snapshot.svg, snapshot.document, root.el.baseURI);
8
+ return renderRaster(snapshot);
9
+ }
10
+ //# sourceMappingURL=raster.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raster.js","sourceRoot":"","sources":["../src/raster.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,uFAAuF;AACvF,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAa,EAAE,OAAO,GAAkB,EAAE;IAC1E,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9C,MAAM,WAAW,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;IACpE,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC;AAChC,CAAC"}