@nativescript/canvas-svg 2.0.0-beta.19 → 2.0.0-beta.20
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/Elements/Circle.js +1 -1
- package/Elements/Circle.js.map +1 -1
- package/Elements/ClipPath.js +1 -1
- package/Elements/ClipPath.js.map +1 -1
- package/Elements/Defs.js +1 -1
- package/Elements/Defs.js.map +1 -1
- package/Elements/Ellipse.js +5 -5
- package/Elements/Ellipse.js.map +1 -1
- package/Elements/G.d.ts +4 -0
- package/Elements/G.js +22 -1
- package/Elements/G.js.map +1 -1
- package/Elements/Image.js +2 -2
- package/Elements/Image.js.map +1 -1
- package/Elements/Line.js +5 -5
- package/Elements/Line.js.map +1 -1
- package/Elements/LinearGradient.js +1 -1
- package/Elements/LinearGradient.js.map +1 -1
- package/Elements/Path.js +2 -2
- package/Elements/Path.js.map +1 -1
- package/Elements/Pattern.js +1 -1
- package/Elements/Pattern.js.map +1 -1
- package/Elements/Polygon.js +2 -2
- package/Elements/Polygon.js.map +1 -1
- package/Elements/Polyline.js +2 -2
- package/Elements/Polyline.js.map +1 -1
- package/Elements/RadialGradient.d.ts +11 -0
- package/Elements/RadialGradient.js +14 -0
- package/Elements/RadialGradient.js.map +1 -0
- package/Elements/Rect.js +1 -1
- package/Elements/Rect.js.map +1 -1
- package/Elements/SVGItem.d.ts +1 -1
- package/Elements/SVGItem.js +2 -2
- package/Elements/SVGItem.js.map +1 -1
- package/Elements/Stop.js +1 -1
- package/Elements/Stop.js.map +1 -1
- package/Elements/Symbol.js +1 -1
- package/Elements/Symbol.js.map +1 -1
- package/Elements/Text.js +5 -5
- package/Elements/Text.js.map +1 -1
- package/Elements/Use.js +1 -1
- package/Elements/Use.js.map +1 -1
- package/Elements/index.d.ts +1 -1
- package/Elements/index.js +1 -1
- package/Elements/index.js.map +1 -1
- package/common.d.ts +3 -2
- package/common.js +13 -13
- package/common.js.map +1 -1
- package/index.android.d.ts +3 -1
- package/index.android.js +156 -16
- package/index.android.js.map +1 -1
- package/index.d.ts +2 -0
- package/index.ios.d.ts +2 -0
- package/index.ios.js +148 -11
- package/index.ios.js.map +1 -1
- package/package.json +1 -1
- package/platforms/android/canvassvg-release.aar +0 -0
- package/platforms/ios/CanvasSVG.xcframework/ios-arm64/CanvasSVG.framework/CanvasSVG +0 -0
- package/platforms/ios/CanvasSVG.xcframework/ios-arm64/CanvasSVG.framework/Headers/CanvasSVG-Swift.h +340 -0
- package/platforms/ios/CanvasSVG.xcframework/ios-arm64/CanvasSVG.framework/Headers/canvas_svg.h +2 -0
- package/platforms/ios/CanvasSVG.xcframework/ios-arm64/CanvasSVG.framework/Modules/CanvasSVG.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo +0 -0
- package/platforms/ios/CanvasSVG.xcframework/ios-arm64/CanvasSVG.framework/Modules/CanvasSVG.swiftmodule/arm64-apple-ios.abi.json +457 -6
- package/platforms/ios/CanvasSVG.xcframework/ios-arm64/CanvasSVG.framework/Modules/CanvasSVG.swiftmodule/arm64-apple-ios.private.swiftinterface +15 -0
- package/platforms/ios/CanvasSVG.xcframework/ios-arm64/CanvasSVG.framework/Modules/CanvasSVG.swiftmodule/arm64-apple-ios.swiftinterface +15 -0
- package/platforms/ios/CanvasSVG.xcframework/ios-arm64/CanvasSVG.framework/Modules/module.modulemap +5 -0
- package/platforms/ios/CanvasSVG.xcframework/ios-arm64/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/DWARF/CanvasSVG +0 -0
- package/platforms/ios/CanvasSVG.xcframework/ios-arm64/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/Relocations/aarch64/CanvasSVG.yml +217 -194
- package/platforms/ios/CanvasSVG.xcframework/ios-arm64_x86_64-simulator/CanvasSVG.framework/CanvasSVG +0 -0
- package/platforms/ios/CanvasSVG.xcframework/ios-arm64_x86_64-simulator/CanvasSVG.framework/Headers/CanvasSVG-Swift.h +676 -0
- package/platforms/ios/CanvasSVG.xcframework/ios-arm64_x86_64-simulator/CanvasSVG.framework/Headers/canvas_svg.h +2 -0
- package/platforms/ios/CanvasSVG.xcframework/ios-arm64_x86_64-simulator/CanvasSVG.framework/Modules/CanvasSVG.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo +0 -0
- package/platforms/ios/CanvasSVG.xcframework/ios-arm64_x86_64-simulator/CanvasSVG.framework/Modules/CanvasSVG.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo +0 -0
- package/platforms/ios/CanvasSVG.xcframework/ios-arm64_x86_64-simulator/CanvasSVG.framework/Modules/CanvasSVG.swiftmodule/arm64-apple-ios-simulator.abi.json +457 -6
- package/platforms/ios/CanvasSVG.xcframework/ios-arm64_x86_64-simulator/CanvasSVG.framework/Modules/CanvasSVG.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +15 -0
- package/platforms/ios/CanvasSVG.xcframework/ios-arm64_x86_64-simulator/CanvasSVG.framework/Modules/CanvasSVG.swiftmodule/arm64-apple-ios-simulator.swiftinterface +15 -0
- package/platforms/ios/CanvasSVG.xcframework/ios-arm64_x86_64-simulator/CanvasSVG.framework/Modules/CanvasSVG.swiftmodule/x86_64-apple-ios-simulator.abi.json +457 -6
- package/platforms/ios/CanvasSVG.xcframework/ios-arm64_x86_64-simulator/CanvasSVG.framework/Modules/CanvasSVG.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +15 -0
- package/platforms/ios/CanvasSVG.xcframework/ios-arm64_x86_64-simulator/CanvasSVG.framework/Modules/CanvasSVG.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +15 -0
- package/platforms/ios/CanvasSVG.xcframework/ios-arm64_x86_64-simulator/CanvasSVG.framework/Modules/module.modulemap +5 -0
- package/platforms/ios/CanvasSVG.xcframework/ios-arm64_x86_64-simulator/CanvasSVG.framework/_CodeSignature/CodeResources +35 -24
- package/platforms/ios/CanvasSVG.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/DWARF/CanvasSVG +0 -0
- package/platforms/ios/CanvasSVG.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/Relocations/aarch64/CanvasSVG.yml +217 -195
- package/platforms/ios/CanvasSVG.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/Relocations/x86_64/CanvasSVG.yml +286 -257
- package/platforms/ios/build.xcconfig +1 -0
- package/Elements/SVG.d.ts +0 -32
- package/Elements/SVG.js +0 -205
- package/Elements/SVG.js.map +0 -1
package/index.android.d.ts
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import { SVGBase } from './common';
|
|
2
2
|
import { SVGItem } from './Elements/SVGItem';
|
|
3
|
+
export * from './Elements';
|
|
3
4
|
export declare class Svg extends SVGBase {
|
|
4
5
|
_svg: any;
|
|
5
6
|
constructor();
|
|
6
7
|
createNativeView(): any;
|
|
7
8
|
get native(): any;
|
|
8
|
-
onLayout(left: number, top: number, right: number, bottom: number): void;
|
|
9
9
|
__redraw(): void;
|
|
10
10
|
onLoaded(): void;
|
|
11
11
|
onUnloaded(): void;
|
|
12
12
|
addChild(view: SVGItem): void;
|
|
13
13
|
removeChild(view: SVGItem): void;
|
|
14
|
+
static fromSrcSync(value: string): Svg | null;
|
|
15
|
+
static fromSrc(value: string): Promise<Svg>;
|
|
14
16
|
}
|
package/index.android.js
CHANGED
|
@@ -1,11 +1,60 @@
|
|
|
1
1
|
import { initialSVG, SVGBase, srcProperty, syncProperty } from './common';
|
|
2
|
-
import { Application, Http, knownFolders, path, Utils } from '@nativescript/core';
|
|
2
|
+
import { Application, Http, knownFolders, path, Screen, Utils } from '@nativescript/core';
|
|
3
|
+
export * from './Elements';
|
|
4
|
+
function parseSVGDimensions(svgString) {
|
|
5
|
+
const svgRegex = /<svg([^>]*)>/i;
|
|
6
|
+
const match = svgString.match(svgRegex);
|
|
7
|
+
if (!match) {
|
|
8
|
+
return { width: 0, height: 0 };
|
|
9
|
+
}
|
|
10
|
+
const svgAttributes = match[1];
|
|
11
|
+
const regex = /\b(?:width|height|viewBox)\s*=\s*"([^"]*(?:"[^"]*")*[^"]*)"/g;
|
|
12
|
+
const matches = svgAttributes.match(regex);
|
|
13
|
+
let width, height, viewBox;
|
|
14
|
+
if (matches) {
|
|
15
|
+
matches.forEach((match) => {
|
|
16
|
+
const parts = match.split('=');
|
|
17
|
+
const attributeName = parts[0].trim();
|
|
18
|
+
const attributeValue = parts[1].trim().replace(/"/g, '');
|
|
19
|
+
if (attributeName === 'width') {
|
|
20
|
+
if (width === undefined) {
|
|
21
|
+
width = parseFloat(attributeValue) ?? 0;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
else if (attributeName === 'height') {
|
|
25
|
+
if (height === undefined) {
|
|
26
|
+
height = parseFloat(attributeValue) ?? 0;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
else if (attributeName === 'viewBox') {
|
|
30
|
+
if (viewBox === undefined) {
|
|
31
|
+
viewBox = attributeValue.split(' ').map(parseFloat).splice(0, 4);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
if (!width && viewBox && viewBox.length === 4) {
|
|
37
|
+
const viewBoxWidth = viewBox[2];
|
|
38
|
+
const viewBoxHeight = viewBox[3];
|
|
39
|
+
const aspectRatio = viewBoxWidth / viewBoxHeight;
|
|
40
|
+
width = (height ?? Screen.mainScreen.widthDIPs) * aspectRatio;
|
|
41
|
+
}
|
|
42
|
+
if (!height && viewBox && viewBox.length === 4) {
|
|
43
|
+
const viewBoxWidth = viewBox[2];
|
|
44
|
+
const viewBoxHeight = viewBox[3];
|
|
45
|
+
const aspectRatio = viewBoxWidth / viewBoxHeight;
|
|
46
|
+
height = (width ?? Screen.mainScreen.heightDIPs) / aspectRatio;
|
|
47
|
+
}
|
|
48
|
+
return { width: width ?? 0, height: height ?? 0 };
|
|
49
|
+
}
|
|
3
50
|
export class Svg extends SVGBase {
|
|
4
51
|
constructor() {
|
|
5
52
|
super();
|
|
6
53
|
const context = Application.android.foregroundActivity || Application.android.startActivity || Utils.android.getApplicationContext();
|
|
7
54
|
this._svg = new org.nativescript.canvas.svg.NSCSVG(context);
|
|
8
|
-
this.
|
|
55
|
+
this.on('layoutChanged', (args) => {
|
|
56
|
+
this.__redraw();
|
|
57
|
+
});
|
|
9
58
|
}
|
|
10
59
|
createNativeView() {
|
|
11
60
|
return this._svg;
|
|
@@ -40,23 +89,22 @@ export class Svg extends SVGBase {
|
|
|
40
89
|
[syncProperty.setNative](value) {
|
|
41
90
|
this._svg.setSync(value);
|
|
42
91
|
}
|
|
43
|
-
onLayout(left, top, right, bottom) {
|
|
44
|
-
super.onLayout(left, top, right, bottom);
|
|
45
|
-
this.__redraw();
|
|
46
|
-
}
|
|
47
|
-
// this.__internalElement._dom.documentElement.setAttribute('id', value);
|
|
48
92
|
__redraw() {
|
|
49
93
|
if (this._attachedToDom) {
|
|
50
|
-
const domCopy = this.
|
|
51
|
-
const
|
|
52
|
-
const
|
|
53
|
-
const
|
|
54
|
-
if (width
|
|
55
|
-
|
|
56
|
-
}
|
|
57
|
-
if (height
|
|
58
|
-
|
|
94
|
+
const domCopy = this.__domElement.valueOf();
|
|
95
|
+
// const width = domCopy.documentElement.getAttribute('width');
|
|
96
|
+
// const height = domCopy.documentElement.getAttribute('height');
|
|
97
|
+
const viewBox = domCopy.getAttribute('viewBox');
|
|
98
|
+
// if (!width) {
|
|
99
|
+
// domCopy.documentElement.setAttribute('width', `${this.getMeasuredWidth()}`);
|
|
100
|
+
// }
|
|
101
|
+
// if (!height) {
|
|
102
|
+
// domCopy.documentElement.setAttribute('height', `${this.getMeasuredHeight()}`);
|
|
103
|
+
// }
|
|
104
|
+
if (!viewBox) {
|
|
105
|
+
domCopy.setAttribute('viewBox', '0 0 0 0');
|
|
59
106
|
}
|
|
107
|
+
const serialized = this._serializer.serializeToString(domCopy);
|
|
60
108
|
if (serialized !== initialSVG) {
|
|
61
109
|
this.src = serialized;
|
|
62
110
|
}
|
|
@@ -82,5 +130,97 @@ export class Svg extends SVGBase {
|
|
|
82
130
|
this.__children = this.__children.filter((item) => item !== view);
|
|
83
131
|
}
|
|
84
132
|
}
|
|
133
|
+
static fromSrcSync(value) {
|
|
134
|
+
if (typeof value === 'string') {
|
|
135
|
+
const context = Utils.android.getApplicationContext();
|
|
136
|
+
if (value.indexOf('<svg') > -1) {
|
|
137
|
+
const { width, height } = parseSVGDimensions(value);
|
|
138
|
+
if (width > 0 && height > 0) {
|
|
139
|
+
const svg = org.nativescript.canvas.svg.NSCSVG.fromStringSync(context, width * Screen.mainScreen.scale, height * Screen.mainScreen.scale, value);
|
|
140
|
+
const view = new Svg();
|
|
141
|
+
view._svg = svg;
|
|
142
|
+
view.width = width;
|
|
143
|
+
view.height = height;
|
|
144
|
+
return view;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
let nativeSvg;
|
|
149
|
+
try {
|
|
150
|
+
if (value.startsWith('~')) {
|
|
151
|
+
nativeSvg = org.nativescript.canvas.svg.NSCSVG.fromPathSync(context, path.join(knownFolders.currentApp().path, value.replace('~', '')));
|
|
152
|
+
}
|
|
153
|
+
else if (value.startsWith('/')) {
|
|
154
|
+
nativeSvg = org.nativescript.canvas.svg.NSCSVG.fromPathSync(context, value);
|
|
155
|
+
}
|
|
156
|
+
else if (value.startsWith('http')) {
|
|
157
|
+
nativeSvg = org.nativescript.canvas.svg.NSCSVG.fromRemoteSync(context, value);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
catch (error) { }
|
|
161
|
+
if (nativeSvg) {
|
|
162
|
+
const view = new Svg();
|
|
163
|
+
view._svg = nativeSvg;
|
|
164
|
+
const lp = nativeSvg.getLayoutParams();
|
|
165
|
+
view.width = lp.width / Screen.mainScreen.scale;
|
|
166
|
+
view.height = lp.height / Screen.mainScreen.scale;
|
|
167
|
+
return view;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
return null;
|
|
172
|
+
}
|
|
173
|
+
static fromSrc(value) {
|
|
174
|
+
return new Promise((resolve, reject) => {
|
|
175
|
+
if (typeof value === 'string') {
|
|
176
|
+
const context = Utils.android.getApplicationContext();
|
|
177
|
+
if (value.indexOf('<svg') > -1) {
|
|
178
|
+
const { width, height } = parseSVGDimensions(value);
|
|
179
|
+
if (width > 0 && height > 0) {
|
|
180
|
+
org.nativescript.canvas.svg.NSCSVG.fromString(context, width * Screen.mainScreen.scale, height * Screen.mainScreen.scale, value, new org.nativescript.canvas.svg.NSCSVG.Callback({
|
|
181
|
+
onSuccess(svg) {
|
|
182
|
+
const view = new Svg();
|
|
183
|
+
view._svg = svg;
|
|
184
|
+
view.width = width;
|
|
185
|
+
view.height = height;
|
|
186
|
+
resolve(view);
|
|
187
|
+
},
|
|
188
|
+
}));
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
else {
|
|
193
|
+
const cb = new org.nativescript.canvas.svg.NSCSVG.Callback({
|
|
194
|
+
onSuccess(nativeSvg) {
|
|
195
|
+
if (nativeSvg) {
|
|
196
|
+
const view = new Svg();
|
|
197
|
+
const lp = nativeSvg.getLayoutParams();
|
|
198
|
+
view._svg = nativeSvg;
|
|
199
|
+
view.width = lp.width / Screen.mainScreen.scale;
|
|
200
|
+
view.height = lp.height / Screen.mainScreen.scale;
|
|
201
|
+
resolve(view);
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
reject(new Error('Failed to parse SVG'));
|
|
205
|
+
}
|
|
206
|
+
},
|
|
207
|
+
});
|
|
208
|
+
if (value.startsWith('~')) {
|
|
209
|
+
org.nativescript.canvas.svg.NSCSVG.fromPath(context, path.join(knownFolders.currentApp().path, value.replace('~', '')), cb);
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
212
|
+
else if (value.startsWith('/')) {
|
|
213
|
+
org.nativescript.canvas.svg.NSCSVG.fromPath(context, value, cb);
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
216
|
+
else if (value.startsWith('http')) {
|
|
217
|
+
org.nativescript.canvas.svg.NSCSVG.fromRemote(context, value, cb);
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
reject(new Error('Source is not valid'));
|
|
223
|
+
});
|
|
224
|
+
}
|
|
85
225
|
}
|
|
86
226
|
//# sourceMappingURL=index.android.js.map
|
package/index.android.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.android.js","sourceRoot":"","sources":["../../../packages/canvas-svg/index.android.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.android.js","sourceRoot":"","sources":["../../../packages/canvas-svg/index.android.ts"],"names":[],"mappings":"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"}
|
package/index.d.ts
CHANGED
package/index.ios.d.ts
CHANGED
package/index.ios.js
CHANGED
|
@@ -1,10 +1,56 @@
|
|
|
1
1
|
import { SVGBase, srcProperty, syncProperty, initialSVG } from './common';
|
|
2
|
-
import { Http, knownFolders, path, Utils } from '@nativescript/core';
|
|
2
|
+
import { Http, knownFolders, path, Screen, Utils } from '@nativescript/core';
|
|
3
3
|
export * from './Elements';
|
|
4
|
+
function parseSVGDimensions(svgString) {
|
|
5
|
+
const svgRegex = /<svg([^>]*)>/i;
|
|
6
|
+
const match = svgString.match(svgRegex);
|
|
7
|
+
if (!match) {
|
|
8
|
+
return { width: 0, height: 0 };
|
|
9
|
+
}
|
|
10
|
+
const svgAttributes = match[1];
|
|
11
|
+
const regex = /\b(?:width|height|viewBox)\s*=\s*"([^"]*(?:"[^"]*")*[^"]*)"/g;
|
|
12
|
+
const matches = svgAttributes.match(regex);
|
|
13
|
+
let width, height, viewBox;
|
|
14
|
+
if (matches) {
|
|
15
|
+
matches.forEach((match) => {
|
|
16
|
+
const parts = match.split('=');
|
|
17
|
+
const attributeName = parts[0].trim();
|
|
18
|
+
const attributeValue = parts[1].trim().replace(/"/g, '');
|
|
19
|
+
if (attributeName === 'width') {
|
|
20
|
+
if (width === undefined) {
|
|
21
|
+
width = parseFloat(attributeValue) ?? 0;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
else if (attributeName === 'height') {
|
|
25
|
+
if (height === undefined) {
|
|
26
|
+
height = parseFloat(attributeValue) ?? 0;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
else if (attributeName === 'viewBox') {
|
|
30
|
+
if (viewBox === undefined) {
|
|
31
|
+
viewBox = attributeValue.split(' ').map(parseFloat).splice(0, 4);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
if (!width && viewBox && viewBox.length === 4) {
|
|
37
|
+
const viewBoxWidth = viewBox[2];
|
|
38
|
+
const viewBoxHeight = viewBox[3];
|
|
39
|
+
const aspectRatio = viewBoxWidth / viewBoxHeight;
|
|
40
|
+
width = (height ?? Screen.mainScreen.widthDIPs) * aspectRatio;
|
|
41
|
+
}
|
|
42
|
+
if (!height && viewBox && viewBox.length === 4) {
|
|
43
|
+
const viewBoxWidth = viewBox[2];
|
|
44
|
+
const viewBoxHeight = viewBox[3];
|
|
45
|
+
const aspectRatio = viewBoxWidth / viewBoxHeight;
|
|
46
|
+
height = (width ?? Screen.mainScreen.heightDIPs) / aspectRatio;
|
|
47
|
+
}
|
|
48
|
+
return { width: width ?? 0, height: height ?? 0 };
|
|
49
|
+
}
|
|
4
50
|
export class Svg extends SVGBase {
|
|
5
51
|
constructor() {
|
|
6
52
|
super();
|
|
7
|
-
this._svg =
|
|
53
|
+
this._svg = NSCSVG.alloc().initWithFrame(CGRectZero);
|
|
8
54
|
this._svg.backgroundColor = UIColor.clearColor;
|
|
9
55
|
}
|
|
10
56
|
createNativeView() {
|
|
@@ -31,7 +77,7 @@ export class Svg extends SVGBase {
|
|
|
31
77
|
this._svg.srcPath = res.path;
|
|
32
78
|
})
|
|
33
79
|
.catch((e) => {
|
|
34
|
-
console.
|
|
80
|
+
console.error(e);
|
|
35
81
|
});
|
|
36
82
|
}
|
|
37
83
|
}
|
|
@@ -54,16 +100,20 @@ export class Svg extends SVGBase {
|
|
|
54
100
|
}
|
|
55
101
|
__redraw() {
|
|
56
102
|
if (this._attachedToDom) {
|
|
57
|
-
const domCopy = this.
|
|
58
|
-
const
|
|
59
|
-
const
|
|
60
|
-
const
|
|
61
|
-
if (width
|
|
62
|
-
domCopy.
|
|
103
|
+
const domCopy = this.__domElement.valueOf();
|
|
104
|
+
const width = domCopy.getAttribute('width');
|
|
105
|
+
const height = domCopy.getAttribute('height');
|
|
106
|
+
const viewBox = domCopy.getAttribute('viewBox');
|
|
107
|
+
if (!width) {
|
|
108
|
+
domCopy.setAttribute('width', `${this.getMeasuredWidth() / Screen.mainScreen.scale}`);
|
|
109
|
+
}
|
|
110
|
+
if (!height) {
|
|
111
|
+
domCopy.setAttribute('height', `${this.getMeasuredHeight() / Screen.mainScreen.scale}`);
|
|
63
112
|
}
|
|
64
|
-
if (
|
|
65
|
-
domCopy.
|
|
113
|
+
if (!viewBox) {
|
|
114
|
+
domCopy.setAttribute('viewBox', '0 0 100 100');
|
|
66
115
|
}
|
|
116
|
+
const serialized = this._serializer.serializeToString(domCopy);
|
|
67
117
|
if (serialized !== initialSVG) {
|
|
68
118
|
this.src = serialized;
|
|
69
119
|
}
|
|
@@ -89,5 +139,92 @@ export class Svg extends SVGBase {
|
|
|
89
139
|
this.__children = this.__children.filter((item) => item !== view);
|
|
90
140
|
}
|
|
91
141
|
}
|
|
142
|
+
static fromSrcSync(value) {
|
|
143
|
+
if (typeof value === 'string') {
|
|
144
|
+
if (value.indexOf('<svg') > -1) {
|
|
145
|
+
const { width, height } = parseSVGDimensions(value);
|
|
146
|
+
if (width > 0 && height > 0) {
|
|
147
|
+
const svg = NSCSVG.fromStringSync(value);
|
|
148
|
+
svg.backgroundColor = UIColor.redColor;
|
|
149
|
+
const view = new Svg();
|
|
150
|
+
view._svg = svg;
|
|
151
|
+
view.width = svg.frame.size.width;
|
|
152
|
+
view.height = svg.frame.size.height;
|
|
153
|
+
return view;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
let nativeSvg;
|
|
158
|
+
try {
|
|
159
|
+
if (value.startsWith('~')) {
|
|
160
|
+
nativeSvg = NSCSVG.fromPathSync(path.join(knownFolders.currentApp().path, value.replace('~', '')));
|
|
161
|
+
}
|
|
162
|
+
else if (value.startsWith('/')) {
|
|
163
|
+
nativeSvg = NSCSVG.fromPathSync(value);
|
|
164
|
+
}
|
|
165
|
+
else if (value.startsWith('http')) {
|
|
166
|
+
nativeSvg = NSCSVG.fromRemoteSync(value);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
catch (error) { }
|
|
170
|
+
if (nativeSvg) {
|
|
171
|
+
const view = new Svg();
|
|
172
|
+
view._svg = nativeSvg;
|
|
173
|
+
const frame = nativeSvg.frame.size;
|
|
174
|
+
view.width = frame.width;
|
|
175
|
+
view.height = frame.height;
|
|
176
|
+
return view;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
return null;
|
|
181
|
+
}
|
|
182
|
+
static fromSrc(value) {
|
|
183
|
+
return new Promise((resolve, reject) => {
|
|
184
|
+
if (typeof value === 'string') {
|
|
185
|
+
if (value.indexOf('<svg') > -1) {
|
|
186
|
+
const { width, height } = parseSVGDimensions(value);
|
|
187
|
+
if (width > 0 && height > 0) {
|
|
188
|
+
NSCSVG.fromString(value, (svg) => {
|
|
189
|
+
const view = new Svg();
|
|
190
|
+
view._svg = svg;
|
|
191
|
+
view.width = width;
|
|
192
|
+
view.height = height;
|
|
193
|
+
resolve(view);
|
|
194
|
+
});
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
const cb = (nativeSvg) => {
|
|
200
|
+
if (nativeSvg) {
|
|
201
|
+
const view = new Svg();
|
|
202
|
+
const lp = nativeSvg.frame.size;
|
|
203
|
+
view._svg = nativeSvg;
|
|
204
|
+
view.width = lp.width;
|
|
205
|
+
view.height = lp.height;
|
|
206
|
+
resolve(view);
|
|
207
|
+
}
|
|
208
|
+
else {
|
|
209
|
+
reject(new Error('Failed to parse SVG'));
|
|
210
|
+
}
|
|
211
|
+
};
|
|
212
|
+
if (value.startsWith('~')) {
|
|
213
|
+
NSCSVG.fromPath(path.join(knownFolders.currentApp().path, value.replace('~', '')), cb);
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
216
|
+
else if (value.startsWith('/')) {
|
|
217
|
+
NSCSVG.fromPath(value, cb);
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
else if (value.startsWith('http')) {
|
|
221
|
+
NSCSVG.fromRemote(value, cb);
|
|
222
|
+
return;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
reject(new Error('Source is not valid'));
|
|
227
|
+
});
|
|
228
|
+
}
|
|
92
229
|
}
|
|
93
230
|
//# sourceMappingURL=index.ios.js.map
|
package/index.ios.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.ios.js","sourceRoot":"","sources":["../../../packages/canvas-svg/index.ios.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.ios.js","sourceRoot":"","sources":["../../../packages/canvas-svg/index.ios.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
Binary file
|