svg-toolbox 1.1.1 → 1.1.2
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/README.md +17 -6
- package/es/applyDiffSvg.js +6 -1
- package/es/applyDiffSvg.js.map +1 -1
- package/es/applyRemoveNanCoordinates.js +19 -4
- package/es/applyRemoveNanCoordinates.js.map +1 -1
- package/lib/applyDiffSvg.js +6 -1
- package/lib/applyDiffSvg.js.map +1 -1
- package/lib/applyRemoveNanCoordinates.js +19 -4
- package/lib/applyRemoveNanCoordinates.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
# svg-toolbox
|
|
2
2
|
This library provides some SVG-related tools
|
|
3
3
|
|
|
4
|
+
[](https://www.npmjs.com/package/svg-toolbox)
|
|
5
|
+
[](https://www.npmjs.com/package/svg-toolbox)
|
|
6
|
+
[](https://www.npmjs.com/package/svg-toolbox)
|
|
7
|
+
|
|
4
8
|
## Installation
|
|
5
9
|
```bash
|
|
6
10
|
npm install svg-toolbox
|
|
7
11
|
```
|
|
8
12
|
## Usage
|
|
9
|
-
```
|
|
13
|
+
```typescript
|
|
10
14
|
const { svg2png } = require('svg-toolbox')
|
|
11
15
|
|
|
12
16
|
...
|
|
@@ -14,18 +18,25 @@ svg2png(svgPath, pngSavePath, x)
|
|
|
14
18
|
...
|
|
15
19
|
```
|
|
16
20
|
|
|
17
|
-
```
|
|
21
|
+
```typescript
|
|
18
22
|
const { diffSvg } = require('svg-toolbox')
|
|
19
23
|
|
|
20
24
|
...
|
|
21
|
-
|
|
25
|
+
const {
|
|
26
|
+
diffPngBuffer,
|
|
27
|
+
numDiffPixels
|
|
28
|
+
}:Promise<{
|
|
29
|
+
diffPngBuffer: Buffer<ArrayBufferLike>
|
|
30
|
+
numDiffPixels: number
|
|
31
|
+
} | void> = await diffSvg(svgPath1, svgPath2, diffResultSavePath)
|
|
32
|
+
const diffPngBase64 = `data:image/png;base64,${diffPngBuffer.toString('base64')}`;
|
|
22
33
|
...
|
|
23
34
|
```
|
|
24
35
|
|
|
25
|
-
```
|
|
36
|
+
```typescript
|
|
26
37
|
const { removeEmptyCoordinates } = require('svg-toolbox')
|
|
27
38
|
|
|
28
39
|
...
|
|
29
|
-
const
|
|
40
|
+
const modifiedSvgContent: string = removeEmptyCoordinates(svgContent)
|
|
30
41
|
...
|
|
31
|
-
```
|
|
42
|
+
```
|
package/es/applyDiffSvg.js
CHANGED
|
@@ -59,6 +59,11 @@ export default async function (pathA, pathB, diffFilePath) {
|
|
|
59
59
|
console.log(`\x1b[33mFile name: ${diffFileName} Number of different pixels: ${numDiffPixels}\x1b[0m`);
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
|
-
return {
|
|
62
|
+
return {
|
|
63
|
+
// The diff image buffer
|
|
64
|
+
diffPngBuffer,
|
|
65
|
+
// The number of different pixels
|
|
66
|
+
numDiffPixels
|
|
67
|
+
};
|
|
63
68
|
}
|
|
64
69
|
//# sourceMappingURL=applyDiffSvg.js.map
|
package/es/applyDiffSvg.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"applyDiffSvg.js","sourceRoot":"","sources":["../src/applyDiffSvg.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;AAEtB;;;;GAIG;AACH,SAAS,WAAW,CAAC,QAAgB;IACnC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;AACvC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,CAAC,KAAK,WAAW,KAAa,EAAE,KAAa,EAAE,YAAoB;IAC/E,gCAAgC;IAChC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC3C,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;IAE3C,yBAAyB;IACzB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAE/B,6CAA6C;IAC7C,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAExC,4DAA4D;IAC5D,MAAM,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;IAErG,mCAAmC;IACnC,MAAM,aAAa,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE3C,uDAAuD;IACvD,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACjD,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,KAAK,CAAC,oBAAoB,YAAY,2BAA2B,CAAC,CAAC;YAC3E,OAAO;QACT,CAAC;QACD,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;QAE9C,iBAAiB;QACjB,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,sBAAsB,YAAY,gCAAgC,aAAa,SAAS,CAAC,CAAC;QACxG,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,sBAAsB,YAAY,gCAAgC,aAAa,SAAS,CAAC,CAAC;QACxG,CAAC;IACH,CAAC;IAED,OAAO,
|
|
1
|
+
{"version":3,"file":"applyDiffSvg.js","sourceRoot":"","sources":["../src/applyDiffSvg.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;AAEtB;;;;GAIG;AACH,SAAS,WAAW,CAAC,QAAgB;IACnC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;AACvC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,CAAC,KAAK,WAAW,KAAa,EAAE,KAAa,EAAE,YAAoB;IAC/E,gCAAgC;IAChC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC3C,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;IAE3C,yBAAyB;IACzB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAE/B,6CAA6C;IAC7C,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAExC,4DAA4D;IAC5D,MAAM,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;IAErG,mCAAmC;IACnC,MAAM,aAAa,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE3C,uDAAuD;IACvD,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACjD,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,KAAK,CAAC,oBAAoB,YAAY,2BAA2B,CAAC,CAAC;YAC3E,OAAO;QACT,CAAC;QACD,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;QAE9C,iBAAiB;QACjB,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,sBAAsB,YAAY,gCAAgC,aAAa,SAAS,CAAC,CAAC;QACxG,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,sBAAsB,YAAY,gCAAgC,aAAa,SAAS,CAAC,CAAC;QACxG,CAAC;IACH,CAAC;IAED,OAAO;QACL,wBAAwB;QACxB,aAAa;QACb,iCAAiC;QACjC,aAAa;KACd,CAAC;AACJ,CAAC"}
|
|
@@ -16,8 +16,11 @@ export default function (svgContent) {
|
|
|
16
16
|
const dom = new JSDOM(svgContent, {
|
|
17
17
|
contentType: 'image/svg+xml' // Set content type to SVG
|
|
18
18
|
});
|
|
19
|
+
// Get the document and SVG element
|
|
19
20
|
const document = dom.window.document;
|
|
21
|
+
// Get the SVG element
|
|
20
22
|
const svgElement = document.querySelector('svg');
|
|
23
|
+
// Check if an SVG element was found
|
|
21
24
|
if (!svgElement) {
|
|
22
25
|
throw new Error('No SVG element found in the provided content.');
|
|
23
26
|
}
|
|
@@ -25,11 +28,23 @@ export default function (svgContent) {
|
|
|
25
28
|
// Iterate over each path element
|
|
26
29
|
Array.from(paths).forEach((path) => {
|
|
27
30
|
const d = path.getAttribute('d'); // Get the 'd' attribute
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
+
if (d === null) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
// Split the 'd' attribute into commands and parameters
|
|
35
|
+
const commands = d
|
|
36
|
+
// Remove 'nan' and '-nan' values
|
|
37
|
+
.replace(/nan|-nan/g, ' ')
|
|
38
|
+
// Split the 'd' attribute into commands and parameters
|
|
39
|
+
.split(/(?=[MmLlHhVvCcSsQqTtAaZz])/).map((command) => {
|
|
40
|
+
// Split each command into type and parameters
|
|
41
|
+
const type = command[0];
|
|
42
|
+
// Split parameters by spaces or commas, filter out empty values, and convert to numbers
|
|
43
|
+
const params = command.slice(1).trim().split(/[\s,]+/).filter(Number);
|
|
31
44
|
return { type, params };
|
|
32
|
-
})
|
|
45
|
+
})
|
|
46
|
+
// Filter out commands with no parameters
|
|
47
|
+
.filter((command) => (command.type === 'Z' || command.params.length > 0));
|
|
33
48
|
// Reconstruct the 'd' attribute
|
|
34
49
|
const modifiedD = commands.map((command) => {
|
|
35
50
|
return command.type + command.params.join(' ');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"applyRemoveNanCoordinates.js","sourceRoot":"","sources":["../src/applyRemoveNanCoordinates.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAE9B;;;;GAIG;AACH,MAAM,CAAC,OAAO,WAAW,UAAkB;IACzC,oCAAoC;IACpC,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,UAAU,EAAE;QAChC,WAAW,EAAE,eAAe,CAAC,0BAA0B;KACxD,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;IACrC,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"applyRemoveNanCoordinates.js","sourceRoot":"","sources":["../src/applyRemoveNanCoordinates.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAE9B;;;;GAIG;AACH,MAAM,CAAC,OAAO,WAAW,UAAkB;IACzC,oCAAoC;IACpC,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,UAAU,EAAE;QAChC,WAAW,EAAE,eAAe,CAAC,0BAA0B;KACxD,CAAC,CAAC;IACH,mCAAmC;IACnC,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;IACrC,sBAAsB;IACtB,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAEjD,oCAAoC;IACpC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAClD,iCAAiC;IACjC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACjC,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,wBAAwB;QAC1D,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QACD,uDAAuD;QACvD,MAAM,QAAQ,GAAG,CAAC;YAChB,iCAAiC;aAChC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC;YAC1B,uDAAuD;aACtD,KAAK,CAAC,4BAA4B,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YACnD,8CAA8C;YAC9C,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACxB,wFAAwF;YACxF,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACtE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAC1B,CAAC,CAAC;YACF,yCAAyC;aACxC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QAC5E,gCAAgC;QAChC,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YACzC,OAAO,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACZ,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,iCAAiC;IACtE,CAAC,CAAC,CAAC;IAEH,0BAA0B;IAC1B,MAAM,aAAa,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAClD,OAAO,aAAa,CAAC;AACvB,CAAC"}
|
package/lib/applyDiffSvg.js
CHANGED
|
@@ -104,7 +104,12 @@ function default_1(pathA, pathB, diffFilePath) {
|
|
|
104
104
|
console.log("\u001B[33mFile name: ".concat(diffFileName, " Number of different pixels: ").concat(numDiffPixels, "\u001B[0m"));
|
|
105
105
|
}
|
|
106
106
|
}
|
|
107
|
-
return [2 /*return*/, {
|
|
107
|
+
return [2 /*return*/, {
|
|
108
|
+
// The diff image buffer
|
|
109
|
+
diffPngBuffer: diffPngBuffer,
|
|
110
|
+
// The number of different pixels
|
|
111
|
+
numDiffPixels: numDiffPixels
|
|
112
|
+
}];
|
|
108
113
|
}
|
|
109
114
|
});
|
|
110
115
|
});
|
package/lib/applyDiffSvg.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"applyDiffSvg.js","sourceRoot":"","sources":["../src/applyDiffSvg.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCA,
|
|
1
|
+
{"version":3,"file":"applyDiffSvg.js","sourceRoot":"","sources":["../src/applyDiffSvg.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCA,4BA0CC;AA5ED;;;;;;;;;GASG;AACH,0CAAoB;AACpB,gDAA0B;AAC1B,gDAA0B;AAC1B,8CAAwB;AACxB,0DAAoC;AAEpC,IAAM,GAAG,GAAG,eAAK,CAAC,GAAG,CAAC;AAEtB;;;;GAIG;AACH,SAAS,WAAW,CAAC,QAAgB;IACnC,OAAO,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;AACvC,CAAC;AAED;;;;;;GAMG;AACH,mBAA+B,KAAa,EAAE,KAAa,EAAE,YAAoB;;;;;wBAElE,qBAAM,IAAA,eAAK,EAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAA;;oBAApC,IAAI,GAAG,SAA6B;oBAC7B,qBAAM,IAAA,eAAK,EAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAA;;oBAApC,IAAI,GAAG,SAA6B;oBAGpC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC3B,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACzB,KAAK,GAAa,IAAI,MAAjB,EAAE,MAAM,GAAK,IAAI,OAAT,CAAU;oBAGzB,IAAI,GAAG,IAAI,GAAG,CAAC,EAAE,KAAK,OAAA,EAAE,MAAM,QAAA,EAAE,CAAC,CAAC;oBAGlC,aAAa,GAAG,IAAA,oBAAU,EAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;oBAG/F,aAAa,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAE3C,uDAAuD;oBACvD,IAAI,YAAY,EAAE,CAAC;wBACX,YAAY,GAAG,cAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;wBACjD,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,CAAC;4BAC/B,OAAO,CAAC,KAAK,CAAC,2BAAoB,YAAY,8BAA2B,CAAC,CAAC;4BAC3E,sBAAO;wBACT,CAAC;wBACD,YAAE,CAAC,aAAa,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;wBAE9C,iBAAiB;wBACjB,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;4BACxB,OAAO,CAAC,GAAG,CAAC,+BAAsB,YAAY,0CAAgC,aAAa,cAAS,CAAC,CAAC;wBACxG,CAAC;6BAAM,CAAC;4BACN,OAAO,CAAC,GAAG,CAAC,+BAAsB,YAAY,0CAAgC,aAAa,cAAS,CAAC,CAAC;wBACxG,CAAC;oBACH,CAAC;oBAED,sBAAO;4BACL,wBAAwB;4BACxB,aAAa,eAAA;4BACb,iCAAiC;4BACjC,aAAa,eAAA;yBACd,EAAC;;;;CACH"}
|
|
@@ -19,8 +19,11 @@ function default_1(svgContent) {
|
|
|
19
19
|
var dom = new jsdom_1.JSDOM(svgContent, {
|
|
20
20
|
contentType: 'image/svg+xml' // Set content type to SVG
|
|
21
21
|
});
|
|
22
|
+
// Get the document and SVG element
|
|
22
23
|
var document = dom.window.document;
|
|
24
|
+
// Get the SVG element
|
|
23
25
|
var svgElement = document.querySelector('svg');
|
|
26
|
+
// Check if an SVG element was found
|
|
24
27
|
if (!svgElement) {
|
|
25
28
|
throw new Error('No SVG element found in the provided content.');
|
|
26
29
|
}
|
|
@@ -28,11 +31,23 @@ function default_1(svgContent) {
|
|
|
28
31
|
// Iterate over each path element
|
|
29
32
|
Array.from(paths).forEach(function (path) {
|
|
30
33
|
var d = path.getAttribute('d'); // Get the 'd' attribute
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
+
if (d === null) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
// Split the 'd' attribute into commands and parameters
|
|
38
|
+
var commands = d
|
|
39
|
+
// Remove 'nan' and '-nan' values
|
|
40
|
+
.replace(/nan|-nan/g, ' ')
|
|
41
|
+
// Split the 'd' attribute into commands and parameters
|
|
42
|
+
.split(/(?=[MmLlHhVvCcSsQqTtAaZz])/).map(function (command) {
|
|
43
|
+
// Split each command into type and parameters
|
|
44
|
+
var type = command[0];
|
|
45
|
+
// Split parameters by spaces or commas, filter out empty values, and convert to numbers
|
|
46
|
+
var params = command.slice(1).trim().split(/[\s,]+/).filter(Number);
|
|
34
47
|
return { type: type, params: params };
|
|
35
|
-
})
|
|
48
|
+
})
|
|
49
|
+
// Filter out commands with no parameters
|
|
50
|
+
.filter(function (command) { return (command.type === 'Z' || command.params.length > 0); });
|
|
36
51
|
// Reconstruct the 'd' attribute
|
|
37
52
|
var modifiedD = commands.map(function (command) {
|
|
38
53
|
return command.type + command.params.join(' ');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"applyRemoveNanCoordinates.js","sourceRoot":"","sources":["../src/applyRemoveNanCoordinates.ts"],"names":[],"mappings":";;AAcA,
|
|
1
|
+
{"version":3,"file":"applyRemoveNanCoordinates.js","sourceRoot":"","sources":["../src/applyRemoveNanCoordinates.ts"],"names":[],"mappings":";;AAcA,4BA8CC;AA5DD;;;;;;GAMG;AACH,+BAA8B;AAE9B;;;;GAIG;AACH,mBAAyB,UAAkB;IACzC,oCAAoC;IACpC,IAAM,GAAG,GAAG,IAAI,aAAK,CAAC,UAAU,EAAE;QAChC,WAAW,EAAE,eAAe,CAAC,0BAA0B;KACxD,CAAC,CAAC;IACH,mCAAmC;IACnC,IAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;IACrC,sBAAsB;IACtB,IAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAEjD,oCAAoC;IACpC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IAED,IAAM,KAAK,GAAG,UAAU,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAClD,iCAAiC;IACjC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAC,IAAI;QAC7B,IAAM,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,wBAAwB;QAC1D,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QACD,uDAAuD;QACvD,IAAM,QAAQ,GAAG,CAAC;YAChB,iCAAiC;aAChC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC;YAC1B,uDAAuD;aACtD,KAAK,CAAC,4BAA4B,CAAC,CAAC,GAAG,CAAC,UAAC,OAAO;YAC/C,8CAA8C;YAC9C,IAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACxB,wFAAwF;YACxF,IAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACtE,OAAO,EAAE,IAAI,MAAA,EAAE,MAAM,QAAA,EAAE,CAAC;QAC1B,CAAC,CAAC;YACF,yCAAyC;aACxC,MAAM,CAAC,UAAC,OAAO,IAAK,OAAA,CAAC,OAAO,CAAC,IAAI,KAAK,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAnD,CAAmD,CAAC,CAAC;QAC5E,gCAAgC;QAChC,IAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAC,OAAO;YACrC,OAAO,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACZ,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,iCAAiC;IACtE,CAAC,CAAC,CAAC;IAEH,0BAA0B;IAC1B,IAAM,aAAa,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAClD,OAAO,aAAa,CAAC;AACvB,CAAC"}
|