react-inlinesvg 3.0.1 → 3.0.3
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 +14 -15
- package/esm/helpers.d.ts +7 -7
- package/esm/helpers.js +3 -3
- package/esm/helpers.js.map +1 -1
- package/esm/index.d.ts +6 -6
- package/esm/index.js +159 -111
- package/esm/index.js.map +1 -1
- package/esm/types.d.ts +9 -7
- package/lib/helpers.d.ts +7 -7
- package/lib/helpers.js +3 -3
- package/lib/helpers.js.map +1 -1
- package/lib/index.d.ts +6 -6
- package/lib/index.js +159 -111
- package/lib/index.js.map +1 -1
- package/lib/types.d.ts +9 -7
- package/package.json +23 -23
- package/src/helpers.ts +5 -5
- package/src/index.tsx +116 -119
- package/src/types.ts +8 -4
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# react-inlinesvg
|
|
2
2
|
|
|
3
|
-
[](https://www.npmjs.com/package/react-inlinesvg) [](https://github.com/gilbarbara/react-inlinesvg/actions/workflows/main.yml) [](https://www.npmjs.com/package/react-inlinesvg) [](https://github.com/gilbarbara/react-inlinesvg/actions/workflows/main.yml) [](https://sonarcloud.io/summary/new_code?id=gilbarbara_react-inlinesvg) [](https://sonarcloud.io/summary/new_code?id=gilbarbara_react-inlinesvg)
|
|
4
4
|
|
|
5
|
-
Load inline, local or remote SVGs in your React components.
|
|
5
|
+
Load inline, local, or remote SVGs in your React components.
|
|
6
6
|
|
|
7
7
|
View the [demo](https://codesandbox.io/s/github/gilbarbara/react-inlinesvg/tree/main/demo)
|
|
8
8
|
|
|
@@ -23,20 +23,18 @@ npm i react-inlinesvg
|
|
|
23
23
|
And import it into your code:
|
|
24
24
|
|
|
25
25
|
```tsx
|
|
26
|
-
import React
|
|
27
|
-
import SVG
|
|
28
|
-
|
|
29
|
-
const Logo = React.forwardRef<SVGElement, SVGProps>((props, ref) => (
|
|
30
|
-
<SVG innerRef={ref} title="MyLogo" {...props} />
|
|
31
|
-
));
|
|
32
|
-
|
|
33
|
-
export function App() {
|
|
34
|
-
const logo = useRef<SVGElement>(null);
|
|
26
|
+
import React from 'react';
|
|
27
|
+
import SVG from 'react-inlinesvg';
|
|
35
28
|
|
|
29
|
+
export default function App() {
|
|
36
30
|
return (
|
|
37
31
|
<main>
|
|
38
|
-
<SVG
|
|
39
|
-
|
|
32
|
+
<SVG
|
|
33
|
+
src="https://cdn.svgporn.com/logos/react.svg"
|
|
34
|
+
width={128}
|
|
35
|
+
height="auto"
|
|
36
|
+
title="React"
|
|
37
|
+
/>
|
|
40
38
|
</main>
|
|
41
39
|
);
|
|
42
40
|
}
|
|
@@ -107,8 +105,9 @@ This will receive 2 arguments: the `src` prop and a `hasCache` boolean
|
|
|
107
105
|
**preProcessor** {function} ▶︎ `string`
|
|
108
106
|
A function to process the contents of the SVG text before parsing.
|
|
109
107
|
|
|
110
|
-
**title** {string}
|
|
111
|
-
A title for your SVG. It will override an existing `<title>` tag.
|
|
108
|
+
**title** {string | null}
|
|
109
|
+
A title for your SVG. It will override an existing `<title>` tag.
|
|
110
|
+
If `null` is passed, the `<title>` tag will be removed.
|
|
112
111
|
|
|
113
112
|
**uniqueHash** {string} ▶︎ a random 8 characters string `[A-Za-z0-9]`
|
|
114
113
|
A string to use with `uniquifyIDs`.
|
package/esm/helpers.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { PlainObject } from './types';
|
|
1
|
+
import type { PlainObject } from './types';
|
|
2
2
|
export declare const STATUS: {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
READY:
|
|
8
|
-
UNSUPPORTED:
|
|
3
|
+
readonly IDLE: "idle";
|
|
4
|
+
readonly LOADING: "loading";
|
|
5
|
+
readonly LOADED: "loaded";
|
|
6
|
+
readonly FAILED: "failed";
|
|
7
|
+
readonly READY: "ready";
|
|
8
|
+
readonly UNSUPPORTED: "unsupported";
|
|
9
9
|
};
|
|
10
10
|
export declare function canUseDOM(): boolean;
|
|
11
11
|
export declare function isSupportedEnvironment(): boolean;
|
package/esm/helpers.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { canUseDOM as canUseDOMFlag } from 'exenv';
|
|
2
2
|
export var STATUS = {
|
|
3
|
-
|
|
4
|
-
LOADED: 'loaded',
|
|
3
|
+
IDLE: 'idle',
|
|
5
4
|
LOADING: 'loading',
|
|
6
|
-
|
|
5
|
+
LOADED: 'loaded',
|
|
6
|
+
FAILED: 'failed',
|
|
7
7
|
READY: 'ready',
|
|
8
8
|
UNSUPPORTED: 'unsupported',
|
|
9
9
|
};
|
package/esm/helpers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,OAAO,CAAC;AAInD,MAAM,CAAC,IAAM,MAAM,GAAG;IACpB,
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,OAAO,CAAC;AAInD,MAAM,CAAC,IAAM,MAAM,GAAG;IACpB,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,aAAa;CAClB,CAAC;AAEX,MAAM,UAAU,SAAS;IACvB,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,OAAO,iBAAiB,EAAE,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,IAAI,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,0BAA0B;IAC1B,IAAI,CAAC,QAAQ,EAAE;QACb,OAAO,KAAK,CAAC;KACd;IAED,IAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAE1C,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;IAC1B,IAAM,GAAG,GAAG,GAAG,CAAC,UAA2B,CAAC;IAE5C,OAAO,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,YAAY,KAAK,4BAA4B,CAAC;AACpE,CAAC;AAED,SAAS,eAAe,CAAC,SAAiB;IACxC,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAc;IACzC,IAAM,OAAO,GAAG,4BAA4B,CAAC;IAC7C,IAAM,OAAO,GAAG,YAAY,CAAC;IAC7B,IAAM,OAAO,GAAG,UAAG,OAAO,SAAG,OAAO,CAAC,WAAW,EAAE,SAAG,OAAO,CAAE,CAAC;IAE/D,IAAI,CAAC,GAAG,EAAE,CAAC;IAEX,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,EAAE,KAAK,EAAE,EAAE;QAC3C,CAAC,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC;KAC/B;IAED,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,IAAI,CAClB,KAAQ;IACR,gBAAc;SAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;QAAd,+BAAc;;IAEd,IAAM,MAAM,GAAQ,EAAE,CAAC;IAEvB,KAAK,IAAM,GAAG,IAAI,KAAK,EAAE;QACvB,0BAA0B;QAC1B,IAAI,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE;YACtC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAmB,CAAC,EAAE;gBACzC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;aAC1B;SACF;KACF;IAED,OAAO,MAAoB,CAAC;AAC9B,CAAC"}
|
package/esm/index.d.ts
CHANGED
|
@@ -4,9 +4,9 @@ export declare const cacheStore: {
|
|
|
4
4
|
[key: string]: StorageItem;
|
|
5
5
|
};
|
|
6
6
|
export default class InlineSVG extends React.PureComponent<Props, State> {
|
|
7
|
-
private isInitialized;
|
|
8
|
-
private isActive;
|
|
9
7
|
private readonly hash;
|
|
8
|
+
private isActive;
|
|
9
|
+
private isInitialized;
|
|
10
10
|
static defaultProps: {
|
|
11
11
|
cacheRequests: boolean;
|
|
12
12
|
uniquifyIDs: boolean;
|
|
@@ -15,14 +15,14 @@ export default class InlineSVG extends React.PureComponent<Props, State> {
|
|
|
15
15
|
componentDidMount(): void;
|
|
16
16
|
componentDidUpdate(previousProps: Props, previousState: State): void;
|
|
17
17
|
componentWillUnmount(): void;
|
|
18
|
-
private getNode;
|
|
19
18
|
private getElement;
|
|
20
|
-
private
|
|
19
|
+
private getNode;
|
|
21
20
|
private handleError;
|
|
22
|
-
private
|
|
21
|
+
private handleLoad;
|
|
23
22
|
private load;
|
|
24
|
-
private updateSVGAttributes;
|
|
25
23
|
private processSVG;
|
|
24
|
+
private request;
|
|
25
|
+
private updateSVGAttributes;
|
|
26
26
|
render(): React.ReactNode;
|
|
27
27
|
}
|
|
28
28
|
export * from './types';
|
package/esm/index.js
CHANGED
|
@@ -24,6 +24,42 @@ var __assign = (this && this.__assign) || function () {
|
|
|
24
24
|
};
|
|
25
25
|
return __assign.apply(this, arguments);
|
|
26
26
|
};
|
|
27
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
28
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
29
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
30
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
31
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
32
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
33
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
34
|
+
});
|
|
35
|
+
};
|
|
36
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
37
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
38
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
39
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
40
|
+
function step(op) {
|
|
41
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
42
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
43
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
44
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
45
|
+
switch (op[0]) {
|
|
46
|
+
case 0: case 1: t = op; break;
|
|
47
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
48
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
49
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
50
|
+
default:
|
|
51
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
52
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
53
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
54
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
55
|
+
if (t[2]) _.ops.pop();
|
|
56
|
+
_.trys.pop(); continue;
|
|
57
|
+
}
|
|
58
|
+
op = body.call(thisArg, _);
|
|
59
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
60
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
61
|
+
}
|
|
62
|
+
};
|
|
27
63
|
var __read = (this && this.__read) || function (o, n) {
|
|
28
64
|
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
29
65
|
if (!m) return o;
|
|
@@ -57,11 +93,11 @@ var InlineSVG = /** @class */ (function (_super) {
|
|
|
57
93
|
__extends(InlineSVG, _super);
|
|
58
94
|
function InlineSVG(props) {
|
|
59
95
|
var _this = _super.call(this, props) || this;
|
|
60
|
-
Object.defineProperty(_this, "
|
|
96
|
+
Object.defineProperty(_this, "hash", {
|
|
61
97
|
enumerable: true,
|
|
62
98
|
configurable: true,
|
|
63
99
|
writable: true,
|
|
64
|
-
value:
|
|
100
|
+
value: void 0
|
|
65
101
|
});
|
|
66
102
|
Object.defineProperty(_this, "isActive", {
|
|
67
103
|
enumerable: true,
|
|
@@ -69,25 +105,11 @@ var InlineSVG = /** @class */ (function (_super) {
|
|
|
69
105
|
writable: true,
|
|
70
106
|
value: false
|
|
71
107
|
});
|
|
72
|
-
Object.defineProperty(_this, "
|
|
73
|
-
enumerable: true,
|
|
74
|
-
configurable: true,
|
|
75
|
-
writable: true,
|
|
76
|
-
value: void 0
|
|
77
|
-
});
|
|
78
|
-
Object.defineProperty(_this, "handleLoad", {
|
|
108
|
+
Object.defineProperty(_this, "isInitialized", {
|
|
79
109
|
enumerable: true,
|
|
80
110
|
configurable: true,
|
|
81
111
|
writable: true,
|
|
82
|
-
value:
|
|
83
|
-
/* istanbul ignore else */
|
|
84
|
-
if (_this.isActive) {
|
|
85
|
-
_this.setState({
|
|
86
|
-
content: content,
|
|
87
|
-
status: STATUS.LOADED,
|
|
88
|
-
}, _this.getElement);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
112
|
+
value: false
|
|
91
113
|
});
|
|
92
114
|
Object.defineProperty(_this, "handleError", {
|
|
93
115
|
enumerable: true,
|
|
@@ -107,70 +129,93 @@ var InlineSVG = /** @class */ (function (_super) {
|
|
|
107
129
|
}
|
|
108
130
|
}
|
|
109
131
|
});
|
|
132
|
+
Object.defineProperty(_this, "handleLoad", {
|
|
133
|
+
enumerable: true,
|
|
134
|
+
configurable: true,
|
|
135
|
+
writable: true,
|
|
136
|
+
value: function (content, hasCache) {
|
|
137
|
+
if (hasCache === void 0) { hasCache = false; }
|
|
138
|
+
/* istanbul ignore else */
|
|
139
|
+
if (_this.isActive) {
|
|
140
|
+
_this.setState({
|
|
141
|
+
content: content,
|
|
142
|
+
hasCache: hasCache,
|
|
143
|
+
status: STATUS.LOADED,
|
|
144
|
+
}, _this.getElement);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
});
|
|
110
148
|
Object.defineProperty(_this, "request", {
|
|
111
149
|
enumerable: true,
|
|
112
150
|
configurable: true,
|
|
113
151
|
writable: true,
|
|
114
|
-
value: function () {
|
|
115
|
-
var _a
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
var contentType = response.headers.get('content-type');
|
|
123
|
-
var _a = __read((contentType || '').split(/ ?; ?/), 1), fileType = _a[0];
|
|
124
|
-
if (response.status > 299) {
|
|
125
|
-
throw new Error('Not found');
|
|
126
|
-
}
|
|
127
|
-
if (!['image/svg+xml', 'text/plain'].some(function (d) { return fileType.includes(d); })) {
|
|
128
|
-
throw new Error("Content type isn't valid: ".concat(fileType));
|
|
129
|
-
}
|
|
130
|
-
return response.text();
|
|
131
|
-
})
|
|
132
|
-
.then(function (content) {
|
|
133
|
-
var currentSrc = _this.props.src;
|
|
134
|
-
// the current src don't match the previous one, skipping...
|
|
135
|
-
if (src !== currentSrc) {
|
|
136
|
-
if (cacheStore[src].status === STATUS.LOADING) {
|
|
137
|
-
delete cacheStore[src];
|
|
152
|
+
value: function () { return __awaiter(_this, void 0, void 0, function () {
|
|
153
|
+
var _a, cacheRequests, fetchOptions, src, response, contentType, _b, fileType_1, content, currentSrc, cache, error_1, cache;
|
|
154
|
+
return __generator(this, function (_c) {
|
|
155
|
+
switch (_c.label) {
|
|
156
|
+
case 0:
|
|
157
|
+
_a = this.props, cacheRequests = _a.cacheRequests, fetchOptions = _a.fetchOptions, src = _a.src;
|
|
158
|
+
if (cacheRequests) {
|
|
159
|
+
cacheStore[src] = { content: '', status: STATUS.LOADING };
|
|
138
160
|
}
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
161
|
+
_c.label = 1;
|
|
162
|
+
case 1:
|
|
163
|
+
_c.trys.push([1, 4, , 5]);
|
|
164
|
+
return [4 /*yield*/, fetch(src, fetchOptions)];
|
|
165
|
+
case 2:
|
|
166
|
+
response = _c.sent();
|
|
167
|
+
contentType = response.headers.get('content-type');
|
|
168
|
+
_b = __read((contentType || '').split(/ ?; ?/), 1), fileType_1 = _b[0];
|
|
169
|
+
if (response.status > 299) {
|
|
170
|
+
throw new Error('Not found');
|
|
171
|
+
}
|
|
172
|
+
if (!['image/svg+xml', 'text/plain'].some(function (d) { return fileType_1.includes(d); })) {
|
|
173
|
+
throw new Error("Content type isn't valid: ".concat(fileType_1));
|
|
174
|
+
}
|
|
175
|
+
return [4 /*yield*/, response.text()];
|
|
176
|
+
case 3:
|
|
177
|
+
content = _c.sent();
|
|
178
|
+
currentSrc = this.props.src;
|
|
179
|
+
// the current src don't match the previous one, skipping...
|
|
180
|
+
if (src !== currentSrc) {
|
|
181
|
+
if (cacheStore[src].status === STATUS.LOADING) {
|
|
182
|
+
delete cacheStore[src];
|
|
183
|
+
}
|
|
184
|
+
return [2 /*return*/];
|
|
185
|
+
}
|
|
186
|
+
this.handleLoad(content);
|
|
145
187
|
/* istanbul ignore else */
|
|
146
|
-
if (
|
|
147
|
-
cache
|
|
148
|
-
|
|
188
|
+
if (cacheRequests) {
|
|
189
|
+
cache = cacheStore[src];
|
|
190
|
+
/* istanbul ignore else */
|
|
191
|
+
if (cache) {
|
|
192
|
+
cache.content = content;
|
|
193
|
+
cache.status = STATUS.LOADED;
|
|
194
|
+
}
|
|
149
195
|
}
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
/* istanbul ignore else */
|
|
155
|
-
if (cacheRequests) {
|
|
156
|
-
var cache = cacheStore[src];
|
|
196
|
+
return [3 /*break*/, 5];
|
|
197
|
+
case 4:
|
|
198
|
+
error_1 = _c.sent();
|
|
199
|
+
this.handleError(error_1);
|
|
157
200
|
/* istanbul ignore else */
|
|
158
|
-
if (
|
|
159
|
-
|
|
201
|
+
if (cacheRequests) {
|
|
202
|
+
cache = cacheStore[src];
|
|
203
|
+
/* istanbul ignore else */
|
|
204
|
+
if (cache) {
|
|
205
|
+
delete cacheStore[src];
|
|
206
|
+
}
|
|
160
207
|
}
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
}
|
|
167
|
-
}
|
|
208
|
+
return [3 /*break*/, 5];
|
|
209
|
+
case 5: return [2 /*return*/];
|
|
210
|
+
}
|
|
211
|
+
});
|
|
212
|
+
}); }
|
|
168
213
|
});
|
|
169
214
|
_this.state = {
|
|
170
215
|
content: '',
|
|
171
216
|
element: null,
|
|
172
217
|
hasCache: !!props.cacheRequests && !!cacheStore[props.src],
|
|
173
|
-
status: STATUS.
|
|
218
|
+
status: STATUS.IDLE,
|
|
174
219
|
};
|
|
175
220
|
_this.hash = props.uniqueHash || randomString(8);
|
|
176
221
|
return _this;
|
|
@@ -188,7 +233,7 @@ var InlineSVG = /** @class */ (function (_super) {
|
|
|
188
233
|
var src = this.props.src;
|
|
189
234
|
try {
|
|
190
235
|
/* istanbul ignore else */
|
|
191
|
-
if (status === STATUS.
|
|
236
|
+
if (status === STATUS.IDLE) {
|
|
192
237
|
/* istanbul ignore else */
|
|
193
238
|
if (!isSupportedEnvironment()) {
|
|
194
239
|
throw new Error('Browser does not support SVG');
|
|
@@ -239,6 +284,27 @@ var InlineSVG = /** @class */ (function (_super) {
|
|
|
239
284
|
this.isActive = false;
|
|
240
285
|
}
|
|
241
286
|
});
|
|
287
|
+
Object.defineProperty(InlineSVG.prototype, "getElement", {
|
|
288
|
+
enumerable: false,
|
|
289
|
+
configurable: true,
|
|
290
|
+
writable: true,
|
|
291
|
+
value: function () {
|
|
292
|
+
try {
|
|
293
|
+
var node = this.getNode();
|
|
294
|
+
var element = convert(node);
|
|
295
|
+
if (!element || !React.isValidElement(element)) {
|
|
296
|
+
throw new Error('Could not convert the src to a React element');
|
|
297
|
+
}
|
|
298
|
+
this.setState({
|
|
299
|
+
element: element,
|
|
300
|
+
status: STATUS.READY,
|
|
301
|
+
});
|
|
302
|
+
}
|
|
303
|
+
catch (error) {
|
|
304
|
+
this.handleError(new Error(error.message));
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
});
|
|
242
308
|
Object.defineProperty(InlineSVG.prototype, "getNode", {
|
|
243
309
|
enumerable: false,
|
|
244
310
|
configurable: true,
|
|
@@ -257,18 +323,20 @@ var InlineSVG = /** @class */ (function (_super) {
|
|
|
257
323
|
if (originalDesc && originalDesc.parentNode) {
|
|
258
324
|
originalDesc.parentNode.removeChild(originalDesc);
|
|
259
325
|
}
|
|
260
|
-
var descElement = document.
|
|
326
|
+
var descElement = document.createElementNS('http://www.w3.org/2000/svg', 'desc');
|
|
261
327
|
descElement.innerHTML = description;
|
|
262
328
|
svg.prepend(descElement);
|
|
263
329
|
}
|
|
264
|
-
if (title) {
|
|
330
|
+
if (typeof title !== 'undefined') {
|
|
265
331
|
var originalTitle = svg.querySelector('title');
|
|
266
332
|
if (originalTitle && originalTitle.parentNode) {
|
|
267
333
|
originalTitle.parentNode.removeChild(originalTitle);
|
|
268
334
|
}
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
335
|
+
if (title) {
|
|
336
|
+
var titleElement = document.createElementNS('http://www.w3.org/2000/svg', 'title');
|
|
337
|
+
titleElement.innerHTML = title;
|
|
338
|
+
svg.prepend(titleElement);
|
|
339
|
+
}
|
|
272
340
|
}
|
|
273
341
|
return svg;
|
|
274
342
|
}
|
|
@@ -277,27 +345,6 @@ var InlineSVG = /** @class */ (function (_super) {
|
|
|
277
345
|
}
|
|
278
346
|
}
|
|
279
347
|
});
|
|
280
|
-
Object.defineProperty(InlineSVG.prototype, "getElement", {
|
|
281
|
-
enumerable: false,
|
|
282
|
-
configurable: true,
|
|
283
|
-
writable: true,
|
|
284
|
-
value: function () {
|
|
285
|
-
try {
|
|
286
|
-
var node = this.getNode();
|
|
287
|
-
var element = convert(node);
|
|
288
|
-
if (!element || !React.isValidElement(element)) {
|
|
289
|
-
throw new Error('Could not convert the src to a React element');
|
|
290
|
-
}
|
|
291
|
-
this.setState({
|
|
292
|
-
element: element,
|
|
293
|
-
status: STATUS.READY,
|
|
294
|
-
});
|
|
295
|
-
}
|
|
296
|
-
catch (error) {
|
|
297
|
-
this.handleError(new Error(error.message));
|
|
298
|
-
}
|
|
299
|
-
}
|
|
300
|
-
});
|
|
301
348
|
Object.defineProperty(InlineSVG.prototype, "load", {
|
|
302
349
|
enumerable: false,
|
|
303
350
|
configurable: true,
|
|
@@ -309,15 +356,16 @@ var InlineSVG = /** @class */ (function (_super) {
|
|
|
309
356
|
this.setState({
|
|
310
357
|
content: '',
|
|
311
358
|
element: null,
|
|
359
|
+
hasCache: false,
|
|
312
360
|
status: STATUS.LOADING,
|
|
313
361
|
}, function () {
|
|
314
362
|
var _a = _this.props, cacheRequests = _a.cacheRequests, src = _a.src;
|
|
315
363
|
var cache = cacheRequests && cacheStore[src];
|
|
316
364
|
if (cache && cache.status === STATUS.LOADED) {
|
|
317
|
-
_this.handleLoad(cache.content);
|
|
365
|
+
_this.handleLoad(cache.content, true);
|
|
318
366
|
return;
|
|
319
367
|
}
|
|
320
|
-
var dataURI = src.match(
|
|
368
|
+
var dataURI = src.match(/^data:image\/svg[^,]*?(;base64)?,(.*)/u);
|
|
321
369
|
var inlineSrc;
|
|
322
370
|
if (dataURI) {
|
|
323
371
|
inlineSrc = dataURI[1] ? window.atob(dataURI[2]) : decodeURIComponent(dataURI[2]);
|
|
@@ -334,6 +382,19 @@ var InlineSVG = /** @class */ (function (_super) {
|
|
|
334
382
|
}
|
|
335
383
|
}
|
|
336
384
|
});
|
|
385
|
+
Object.defineProperty(InlineSVG.prototype, "processSVG", {
|
|
386
|
+
enumerable: false,
|
|
387
|
+
configurable: true,
|
|
388
|
+
writable: true,
|
|
389
|
+
value: function () {
|
|
390
|
+
var content = this.state.content;
|
|
391
|
+
var preProcessor = this.props.preProcessor;
|
|
392
|
+
if (preProcessor) {
|
|
393
|
+
return preProcessor(content);
|
|
394
|
+
}
|
|
395
|
+
return content;
|
|
396
|
+
}
|
|
397
|
+
});
|
|
337
398
|
Object.defineProperty(InlineSVG.prototype, "updateSVGAttributes", {
|
|
338
399
|
enumerable: false,
|
|
339
400
|
configurable: true,
|
|
@@ -349,7 +410,7 @@ var InlineSVG = /** @class */ (function (_super) {
|
|
|
349
410
|
if (!uniquifyIDs) {
|
|
350
411
|
return node;
|
|
351
412
|
}
|
|
352
|
-
__spreadArray([], __read(node.children), false).
|
|
413
|
+
__spreadArray([], __read(node.children), false).forEach(function (d) {
|
|
353
414
|
if (d.attributes && d.attributes.length) {
|
|
354
415
|
var attributes_1 = Object.values(d.attributes).map(function (a) {
|
|
355
416
|
var attribute = a;
|
|
@@ -374,19 +435,6 @@ var InlineSVG = /** @class */ (function (_super) {
|
|
|
374
435
|
return node;
|
|
375
436
|
}
|
|
376
437
|
});
|
|
377
|
-
Object.defineProperty(InlineSVG.prototype, "processSVG", {
|
|
378
|
-
enumerable: false,
|
|
379
|
-
configurable: true,
|
|
380
|
-
writable: true,
|
|
381
|
-
value: function () {
|
|
382
|
-
var content = this.state.content;
|
|
383
|
-
var preProcessor = this.props.preProcessor;
|
|
384
|
-
if (preProcessor) {
|
|
385
|
-
return preProcessor(content);
|
|
386
|
-
}
|
|
387
|
-
return content;
|
|
388
|
-
}
|
|
389
|
-
});
|
|
390
438
|
Object.defineProperty(InlineSVG.prototype, "render", {
|
|
391
439
|
enumerable: false,
|
|
392
440
|
configurable: true,
|
package/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
|
package/esm/types.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
|
|
3
|
-
export
|
|
4
|
-
export
|
|
5
|
-
export
|
|
2
|
+
import { STATUS } from './helpers';
|
|
3
|
+
export type ErrorCallback = (error: Error | FetchError) => void;
|
|
4
|
+
export type LoadCallback = (src: string, isCached: boolean) => void;
|
|
5
|
+
export type PlainObject<T = unknown> = Record<string, T>;
|
|
6
|
+
export type PreProcessorCallback = (code: string) => string;
|
|
6
7
|
export interface Props extends Omit<React.SVGProps<SVGElement>, 'onLoad' | 'onError' | 'ref'> {
|
|
7
8
|
baseURL?: string;
|
|
8
9
|
cacheRequests?: boolean;
|
|
@@ -15,7 +16,7 @@ export interface Props extends Omit<React.SVGProps<SVGElement>, 'onLoad' | 'onEr
|
|
|
15
16
|
onLoad?: LoadCallback;
|
|
16
17
|
preProcessor?: PreProcessorCallback;
|
|
17
18
|
src: string;
|
|
18
|
-
title?: string;
|
|
19
|
+
title?: string | null;
|
|
19
20
|
uniqueHash?: string;
|
|
20
21
|
uniquifyIDs?: boolean;
|
|
21
22
|
}
|
|
@@ -23,7 +24,7 @@ export interface State {
|
|
|
23
24
|
content: string;
|
|
24
25
|
element: React.ReactNode;
|
|
25
26
|
hasCache: boolean;
|
|
26
|
-
status:
|
|
27
|
+
status: Status;
|
|
27
28
|
}
|
|
28
29
|
export interface FetchError extends Error {
|
|
29
30
|
code: string;
|
|
@@ -31,7 +32,8 @@ export interface FetchError extends Error {
|
|
|
31
32
|
message: string;
|
|
32
33
|
type: string;
|
|
33
34
|
}
|
|
35
|
+
export type Status = (typeof STATUS)[keyof typeof STATUS];
|
|
34
36
|
export interface StorageItem {
|
|
35
37
|
content: string;
|
|
36
|
-
status:
|
|
38
|
+
status: Status;
|
|
37
39
|
}
|
package/lib/helpers.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { PlainObject } from './types';
|
|
1
|
+
import type { PlainObject } from './types';
|
|
2
2
|
export declare const STATUS: {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
READY:
|
|
8
|
-
UNSUPPORTED:
|
|
3
|
+
readonly IDLE: "idle";
|
|
4
|
+
readonly LOADING: "loading";
|
|
5
|
+
readonly LOADED: "loaded";
|
|
6
|
+
readonly FAILED: "failed";
|
|
7
|
+
readonly READY: "ready";
|
|
8
|
+
readonly UNSUPPORTED: "unsupported";
|
|
9
9
|
};
|
|
10
10
|
export declare function canUseDOM(): boolean;
|
|
11
11
|
export declare function isSupportedEnvironment(): boolean;
|
package/lib/helpers.js
CHANGED
|
@@ -3,10 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.omit = exports.randomString = exports.supportsInlineSVG = exports.isSupportedEnvironment = exports.canUseDOM = exports.STATUS = void 0;
|
|
4
4
|
var exenv_1 = require("exenv");
|
|
5
5
|
exports.STATUS = {
|
|
6
|
-
|
|
7
|
-
LOADED: 'loaded',
|
|
6
|
+
IDLE: 'idle',
|
|
8
7
|
LOADING: 'loading',
|
|
9
|
-
|
|
8
|
+
LOADED: 'loaded',
|
|
9
|
+
FAILED: 'failed',
|
|
10
10
|
READY: 'ready',
|
|
11
11
|
UNSUPPORTED: 'unsupported',
|
|
12
12
|
};
|