@slithy/prim-interface 0.2.9 → 0.2.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +12 -16
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -113,15 +113,8 @@ async function saveRasterFromVector(svgString, width, height, format = "png", qu
|
|
|
113
113
|
saveRaster(canvas, format, quality, options);
|
|
114
114
|
}
|
|
115
115
|
async function copyRasterFromVector(svgString, width, height) {
|
|
116
|
-
await
|
|
117
|
-
|
|
118
|
-
"image/png": svgToCanvas(svgString, width, height).then(
|
|
119
|
-
(canvas) => new Promise(
|
|
120
|
-
(resolve, reject) => canvas.toBlob((b) => b ? resolve(b) : reject(new Error("toBlob failed")))
|
|
121
|
-
)
|
|
122
|
-
)
|
|
123
|
-
})
|
|
124
|
-
]);
|
|
116
|
+
const canvas = await svgToCanvas(svgString, width, height);
|
|
117
|
+
return copyRaster(canvas);
|
|
125
118
|
}
|
|
126
119
|
async function shareFromVector(svgString, width, height, options) {
|
|
127
120
|
const canvas = await svgToCanvas(svgString, width, height);
|
|
@@ -136,14 +129,17 @@ function saveVector(svgString, options) {
|
|
|
136
129
|
async function copyVector(svgString) {
|
|
137
130
|
await navigator.clipboard.writeText(svgString);
|
|
138
131
|
}
|
|
132
|
+
function dataUrlToBlob(dataUrl) {
|
|
133
|
+
const [header, data] = dataUrl.split(",");
|
|
134
|
+
const mime = header.match(/:(.*?);/)[1];
|
|
135
|
+
const bytes = atob(data);
|
|
136
|
+
const arr = new Uint8Array(bytes.length);
|
|
137
|
+
for (let i = 0; i < bytes.length; i++) arr[i] = bytes.charCodeAt(i);
|
|
138
|
+
return new Blob([arr], { type: mime });
|
|
139
|
+
}
|
|
139
140
|
async function copyRaster(canvas) {
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
"image/png": new Promise(
|
|
143
|
-
(resolve, reject) => canvas.toBlob((b) => b ? resolve(b) : reject(new Error("toBlob failed")))
|
|
144
|
-
)
|
|
145
|
-
})
|
|
146
|
-
]);
|
|
141
|
+
const blob = dataUrlToBlob(canvas.toDataURL("image/png"));
|
|
142
|
+
await navigator.clipboard.write([new ClipboardItem({ "image/png": blob })]);
|
|
147
143
|
}
|
|
148
144
|
async function share(canvas, options) {
|
|
149
145
|
const blob = await new Promise((resolve, reject) => canvas.toBlob((b) => b ? resolve(b) : reject(new Error("toBlob failed"))));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@slithy/prim-interface",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.10",
|
|
4
4
|
"description": "Browser-facing API for primitive-based image reconstruction.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -22,8 +22,8 @@
|
|
|
22
22
|
"tsup": "^8",
|
|
23
23
|
"typescript": "^5",
|
|
24
24
|
"vitest": "^4",
|
|
25
|
-
"@slithy/
|
|
26
|
-
"@slithy/
|
|
25
|
+
"@slithy/eslint-config": "0.0.0",
|
|
26
|
+
"@slithy/tsconfig": "0.0.0"
|
|
27
27
|
},
|
|
28
28
|
"author": {
|
|
29
29
|
"name": "Matthew Campagna",
|