@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.
- package/API.md +15 -5
- package/CHANGELOG.md +51 -1
- package/README.md +140 -20
- package/RELEASING.md +29 -18
- package/dist/changes/restore.js +2 -0
- package/dist/changes/restore.js.map +1 -1
- package/dist/changes/service.d.ts +5 -2
- package/dist/changes/service.d.ts.map +1 -1
- package/dist/changes/service.js +29 -4
- package/dist/changes/service.js.map +1 -1
- package/dist/changes/types.d.ts +9 -0
- package/dist/changes/types.d.ts.map +1 -1
- package/dist/changes/types.js.map +1 -1
- package/dist/changes.d.ts +5 -3
- package/dist/changes.d.ts.map +1 -1
- package/dist/changes.js +103 -2
- package/dist/changes.js.map +1 -1
- package/dist/dom/images.d.ts.map +1 -1
- package/dist/dom/images.js +3 -1
- package/dist/dom/images.js.map +1 -1
- package/dist/elements/image.d.ts.map +1 -1
- package/dist/elements/image.js +4 -1
- package/dist/elements/image.js.map +1 -1
- package/dist/elements/text.js +4 -4
- package/dist/elements/text.js.map +1 -1
- package/dist/interchange/clone.js +1 -1
- package/dist/interchange/clone.js.map +1 -1
- package/dist/interchange/dom.d.ts +3 -1
- package/dist/interchange/dom.d.ts.map +1 -1
- package/dist/interchange/dom.js +29 -5
- package/dist/interchange/dom.js.map +1 -1
- package/dist/interchange/markup.d.ts.map +1 -1
- package/dist/interchange/markup.js +71 -3
- package/dist/interchange/markup.js.map +1 -1
- package/dist/interchange/policy.d.ts.map +1 -1
- package/dist/interchange/policy.js +4 -0
- package/dist/interchange/policy.js.map +1 -1
- package/dist/interchange/types.d.ts +10 -1
- package/dist/interchange/types.d.ts.map +1 -1
- package/dist/mixins/transformable.d.ts.map +1 -1
- package/dist/mixins/transformable.js +25 -27
- package/dist/mixins/transformable.js.map +1 -1
- package/dist/raster/frame.d.ts +12 -0
- package/dist/raster/frame.d.ts.map +1 -0
- package/dist/raster/frame.js +43 -0
- package/dist/raster/frame.js.map +1 -0
- package/dist/raster/images.d.ts +2 -0
- package/dist/raster/images.d.ts.map +1 -0
- package/dist/raster/images.js +60 -0
- package/dist/raster/images.js.map +1 -0
- package/dist/raster/render.d.ts +3 -0
- package/dist/raster/render.d.ts.map +1 -0
- package/dist/raster/render.js +40 -0
- package/dist/raster/render.js.map +1 -0
- package/dist/raster/types.d.ts +10 -0
- package/dist/raster/types.d.ts.map +1 -0
- package/dist/raster/types.js +2 -0
- package/dist/raster/types.js.map +1 -0
- package/dist/raster.d.ts +6 -0
- package/dist/raster.d.ts.map +1 -0
- package/dist/raster.js +10 -0
- package/dist/raster.js.map +1 -0
- package/dist/resources/references.d.ts.map +1 -1
- package/dist/resources/references.js +3 -1
- package/dist/resources/references.js.map +1 -1
- package/dist/services/viewport.d.ts +2 -0
- package/dist/services/viewport.d.ts.map +1 -1
- package/dist/services/viewport.js +4 -3
- package/dist/services/viewport.js.map +1 -1
- package/dist/text/content.d.ts +0 -2
- package/dist/text/content.d.ts.map +1 -1
- package/dist/text/content.js +4 -10
- package/dist/text/content.js.map +1 -1
- package/dist/text/policies.d.ts +7 -0
- package/dist/text/policies.d.ts.map +1 -0
- package/dist/text/policies.js +13 -0
- package/dist/text/policies.js.map +1 -0
- package/dist/text/rich-textual.js +3 -3
- package/dist/text/rich-textual.js.map +1 -1
- package/package.json +6 -1
- package/reports/adoption.json +20 -20
- package/reports/animation-benchmark.json +613 -613
- package/reports/benchmark.json +51 -51
- package/reports/creation.json +26 -26
- package/reports/interchange-benchmark.json +85 -85
- package/reports/public-api-contract.json +20 -7
- package/reports/public-api-review.md +23 -0
- package/reports/size-parity.json +54 -19
- package/reports/size.json +2 -2
- package/reports/svgjs-comparison.json +3542 -3542
- package/reports/svgjs-comparison.md +17 -17
- package/reports/svgjs-parity-current.json +60 -39
- package/src/changes/restore.ts +2 -0
- package/src/changes/service.ts +39 -5
- package/src/changes/types.ts +9 -0
- package/src/changes.ts +93 -4
- package/src/dom/images.ts +2 -1
- package/src/elements/image.ts +4 -1
- package/src/elements/text.ts +3 -3
- package/src/interchange/clone.ts +1 -1
- package/src/interchange/dom.ts +34 -5
- package/src/interchange/markup.ts +77 -3
- package/src/interchange/policy.ts +6 -0
- package/src/interchange/types.ts +10 -1
- package/src/mixins/transformable.ts +23 -25
- package/src/raster/frame.ts +53 -0
- package/src/raster/images.ts +73 -0
- package/src/raster/render.ts +45 -0
- package/src/raster/types.ts +9 -0
- package/src/raster.ts +13 -0
- package/src/resources/references.ts +5 -1
- package/src/services/viewport.ts +5 -4
- package/src/text/content.ts +4 -14
- package/src/text/policies.ts +18 -0
- 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
|
|
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
|
-
|
|
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
|
-
|
|
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":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnG,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;
|
|
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;
|
|
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":"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"}
|
|
@@ -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
|
-
/**
|
|
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;
|
|
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,
|
|
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
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
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: '
|
|
119
|
-
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/raster/types.ts"],"names":[],"mappings":""}
|
package/dist/raster.d.ts
ADDED
|
@@ -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"}
|