react-inlinesvg 3.0.2 → 3.1.0-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/esm/index.js DELETED
@@ -1,428 +0,0 @@
1
- var __extends = (this && this.__extends) || (function () {
2
- var extendStatics = function (d, b) {
3
- extendStatics = Object.setPrototypeOf ||
4
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
5
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
6
- return extendStatics(d, b);
7
- };
8
- return function (d, b) {
9
- if (typeof b !== "function" && b !== null)
10
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
11
- extendStatics(d, b);
12
- function __() { this.constructor = d; }
13
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
14
- };
15
- })();
16
- var __assign = (this && this.__assign) || function () {
17
- __assign = Object.assign || function(t) {
18
- for (var s, i = 1, n = arguments.length; i < n; i++) {
19
- s = arguments[i];
20
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21
- t[p] = s[p];
22
- }
23
- return t;
24
- };
25
- return __assign.apply(this, arguments);
26
- };
27
- var __read = (this && this.__read) || function (o, n) {
28
- var m = typeof Symbol === "function" && o[Symbol.iterator];
29
- if (!m) return o;
30
- var i = m.call(o), r, ar = [], e;
31
- try {
32
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
33
- }
34
- catch (error) { e = { error: error }; }
35
- finally {
36
- try {
37
- if (r && !r.done && (m = i["return"])) m.call(i);
38
- }
39
- finally { if (e) throw e.error; }
40
- }
41
- return ar;
42
- };
43
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
44
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
45
- if (ar || !(i in from)) {
46
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
47
- ar[i] = from[i];
48
- }
49
- }
50
- return to.concat(ar || Array.prototype.slice.call(from));
51
- };
52
- import * as React from 'react';
53
- import convert from 'react-from-dom';
54
- import { canUseDOM, isSupportedEnvironment, omit, randomString, STATUS } from './helpers';
55
- export var cacheStore = Object.create(null);
56
- var InlineSVG = /** @class */ (function (_super) {
57
- __extends(InlineSVG, _super);
58
- function InlineSVG(props) {
59
- var _this = _super.call(this, props) || this;
60
- Object.defineProperty(_this, "isInitialized", {
61
- enumerable: true,
62
- configurable: true,
63
- writable: true,
64
- value: false
65
- });
66
- Object.defineProperty(_this, "isActive", {
67
- enumerable: true,
68
- configurable: true,
69
- writable: true,
70
- value: false
71
- });
72
- Object.defineProperty(_this, "hash", {
73
- enumerable: true,
74
- configurable: true,
75
- writable: true,
76
- value: void 0
77
- });
78
- Object.defineProperty(_this, "handleLoad", {
79
- enumerable: true,
80
- configurable: true,
81
- writable: true,
82
- value: function (content, hasCache) {
83
- if (hasCache === void 0) { hasCache = false; }
84
- /* istanbul ignore else */
85
- if (_this.isActive) {
86
- _this.setState({
87
- content: content,
88
- hasCache: hasCache,
89
- status: STATUS.LOADED,
90
- }, _this.getElement);
91
- }
92
- }
93
- });
94
- Object.defineProperty(_this, "handleError", {
95
- enumerable: true,
96
- configurable: true,
97
- writable: true,
98
- value: function (error) {
99
- var onError = _this.props.onError;
100
- var status = error.message === 'Browser does not support SVG' ? STATUS.UNSUPPORTED : STATUS.FAILED;
101
- /* istanbul ignore else */
102
- if (_this.isActive) {
103
- _this.setState({ status: status }, function () {
104
- /* istanbul ignore else */
105
- if (typeof onError === 'function') {
106
- onError(error);
107
- }
108
- });
109
- }
110
- }
111
- });
112
- Object.defineProperty(_this, "request", {
113
- enumerable: true,
114
- configurable: true,
115
- writable: true,
116
- value: function () {
117
- var _a = _this.props, cacheRequests = _a.cacheRequests, fetchOptions = _a.fetchOptions, src = _a.src;
118
- try {
119
- if (cacheRequests) {
120
- cacheStore[src] = { content: '', status: STATUS.LOADING };
121
- }
122
- return fetch(src, fetchOptions)
123
- .then(function (response) {
124
- var contentType = response.headers.get('content-type');
125
- var _a = __read((contentType || '').split(/ ?; ?/), 1), fileType = _a[0];
126
- if (response.status > 299) {
127
- throw new Error('Not found');
128
- }
129
- if (!['image/svg+xml', 'text/plain'].some(function (d) { return fileType.includes(d); })) {
130
- throw new Error("Content type isn't valid: ".concat(fileType));
131
- }
132
- return response.text();
133
- })
134
- .then(function (content) {
135
- var currentSrc = _this.props.src;
136
- // the current src don't match the previous one, skipping...
137
- if (src !== currentSrc) {
138
- if (cacheStore[src].status === STATUS.LOADING) {
139
- delete cacheStore[src];
140
- }
141
- return;
142
- }
143
- _this.handleLoad(content);
144
- /* istanbul ignore else */
145
- if (cacheRequests) {
146
- var cache = cacheStore[src];
147
- /* istanbul ignore else */
148
- if (cache) {
149
- cache.content = content;
150
- cache.status = STATUS.LOADED;
151
- }
152
- }
153
- })
154
- .catch(function (error) {
155
- _this.handleError(error);
156
- /* istanbul ignore else */
157
- if (cacheRequests) {
158
- var cache = cacheStore[src];
159
- /* istanbul ignore else */
160
- if (cache) {
161
- delete cacheStore[src];
162
- }
163
- }
164
- });
165
- }
166
- catch (error) {
167
- return _this.handleError(new Error(error.message));
168
- }
169
- }
170
- });
171
- _this.state = {
172
- content: '',
173
- element: null,
174
- hasCache: !!props.cacheRequests && !!cacheStore[props.src],
175
- status: STATUS.PENDING,
176
- };
177
- _this.hash = props.uniqueHash || randomString(8);
178
- return _this;
179
- }
180
- Object.defineProperty(InlineSVG.prototype, "componentDidMount", {
181
- enumerable: false,
182
- configurable: true,
183
- writable: true,
184
- value: function () {
185
- this.isActive = true;
186
- if (!canUseDOM() || this.isInitialized) {
187
- return;
188
- }
189
- var status = this.state.status;
190
- var src = this.props.src;
191
- try {
192
- /* istanbul ignore else */
193
- if (status === STATUS.PENDING) {
194
- /* istanbul ignore else */
195
- if (!isSupportedEnvironment()) {
196
- throw new Error('Browser does not support SVG');
197
- }
198
- /* istanbul ignore else */
199
- if (!src) {
200
- throw new Error('Missing src');
201
- }
202
- this.load();
203
- }
204
- }
205
- catch (error) {
206
- this.handleError(error);
207
- }
208
- this.isInitialized = true;
209
- }
210
- });
211
- Object.defineProperty(InlineSVG.prototype, "componentDidUpdate", {
212
- enumerable: false,
213
- configurable: true,
214
- writable: true,
215
- value: function (previousProps, previousState) {
216
- if (!canUseDOM()) {
217
- return;
218
- }
219
- var _a = this.state, hasCache = _a.hasCache, status = _a.status;
220
- var _b = this.props, onLoad = _b.onLoad, src = _b.src;
221
- if (previousState.status !== STATUS.READY && status === STATUS.READY) {
222
- /* istanbul ignore else */
223
- if (onLoad) {
224
- onLoad(src, hasCache);
225
- }
226
- }
227
- if (previousProps.src !== src) {
228
- if (!src) {
229
- this.handleError(new Error('Missing src'));
230
- return;
231
- }
232
- this.load();
233
- }
234
- }
235
- });
236
- Object.defineProperty(InlineSVG.prototype, "componentWillUnmount", {
237
- enumerable: false,
238
- configurable: true,
239
- writable: true,
240
- value: function () {
241
- this.isActive = false;
242
- }
243
- });
244
- Object.defineProperty(InlineSVG.prototype, "getNode", {
245
- enumerable: false,
246
- configurable: true,
247
- writable: true,
248
- value: function () {
249
- var _a = this.props, description = _a.description, title = _a.title;
250
- try {
251
- var svgText = this.processSVG();
252
- var node = convert(svgText, { nodeOnly: true });
253
- if (!node || !(node instanceof SVGSVGElement)) {
254
- throw new Error('Could not convert the src to a DOM Node');
255
- }
256
- var svg = this.updateSVGAttributes(node);
257
- if (description) {
258
- var originalDesc = svg.querySelector('desc');
259
- if (originalDesc && originalDesc.parentNode) {
260
- originalDesc.parentNode.removeChild(originalDesc);
261
- }
262
- var descElement = document.createElementNS('http://www.w3.org/2000/svg', 'desc');
263
- descElement.innerHTML = description;
264
- svg.prepend(descElement);
265
- }
266
- if (typeof title !== 'undefined') {
267
- var originalTitle = svg.querySelector('title');
268
- if (originalTitle && originalTitle.parentNode) {
269
- originalTitle.parentNode.removeChild(originalTitle);
270
- }
271
- if (title) {
272
- var titleElement = document.createElementNS('http://www.w3.org/2000/svg', 'title');
273
- titleElement.innerHTML = title;
274
- svg.prepend(titleElement);
275
- }
276
- }
277
- return svg;
278
- }
279
- catch (error) {
280
- return this.handleError(error);
281
- }
282
- }
283
- });
284
- Object.defineProperty(InlineSVG.prototype, "getElement", {
285
- enumerable: false,
286
- configurable: true,
287
- writable: true,
288
- value: function () {
289
- try {
290
- var node = this.getNode();
291
- var element = convert(node);
292
- if (!element || !React.isValidElement(element)) {
293
- throw new Error('Could not convert the src to a React element');
294
- }
295
- this.setState({
296
- element: element,
297
- status: STATUS.READY,
298
- });
299
- }
300
- catch (error) {
301
- this.handleError(new Error(error.message));
302
- }
303
- }
304
- });
305
- Object.defineProperty(InlineSVG.prototype, "load", {
306
- enumerable: false,
307
- configurable: true,
308
- writable: true,
309
- value: function () {
310
- var _this = this;
311
- /* istanbul ignore else */
312
- if (this.isActive) {
313
- this.setState({
314
- content: '',
315
- element: null,
316
- hasCache: false,
317
- status: STATUS.LOADING,
318
- }, function () {
319
- var _a = _this.props, cacheRequests = _a.cacheRequests, src = _a.src;
320
- var cache = cacheRequests && cacheStore[src];
321
- if (cache && cache.status === STATUS.LOADED) {
322
- _this.handleLoad(cache.content, true);
323
- return;
324
- }
325
- var dataURI = src.match(/data:image\/svg[^,]*?(;base64)?,(.*)/);
326
- var inlineSrc;
327
- if (dataURI) {
328
- inlineSrc = dataURI[1] ? window.atob(dataURI[2]) : decodeURIComponent(dataURI[2]);
329
- }
330
- else if (src.includes('<svg')) {
331
- inlineSrc = src;
332
- }
333
- if (inlineSrc) {
334
- _this.handleLoad(inlineSrc);
335
- return;
336
- }
337
- _this.request();
338
- });
339
- }
340
- }
341
- });
342
- Object.defineProperty(InlineSVG.prototype, "updateSVGAttributes", {
343
- enumerable: false,
344
- configurable: true,
345
- writable: true,
346
- value: function (node) {
347
- var _this = this;
348
- var _a = this.props, _b = _a.baseURL, baseURL = _b === void 0 ? '' : _b, uniquifyIDs = _a.uniquifyIDs;
349
- var replaceableAttributes = ['id', 'href', 'xlink:href', 'xlink:role', 'xlink:arcrole'];
350
- var linkAttributes = ['href', 'xlink:href'];
351
- var isDataValue = function (name, value) {
352
- return linkAttributes.includes(name) && (value ? !value.includes('#') : false);
353
- };
354
- if (!uniquifyIDs) {
355
- return node;
356
- }
357
- __spreadArray([], __read(node.children), false).map(function (d) {
358
- if (d.attributes && d.attributes.length) {
359
- var attributes_1 = Object.values(d.attributes).map(function (a) {
360
- var attribute = a;
361
- var match = a.value.match(/url\((.*?)\)/);
362
- if (match && match[1]) {
363
- attribute.value = a.value.replace(match[0], "url(".concat(baseURL).concat(match[1], "__").concat(_this.hash, ")"));
364
- }
365
- return attribute;
366
- });
367
- replaceableAttributes.forEach(function (r) {
368
- var attribute = attributes_1.find(function (a) { return a.name === r; });
369
- if (attribute && !isDataValue(r, attribute.value)) {
370
- attribute.value = "".concat(attribute.value, "__").concat(_this.hash);
371
- }
372
- });
373
- }
374
- if (d.children.length) {
375
- return _this.updateSVGAttributes(d);
376
- }
377
- return d;
378
- });
379
- return node;
380
- }
381
- });
382
- Object.defineProperty(InlineSVG.prototype, "processSVG", {
383
- enumerable: false,
384
- configurable: true,
385
- writable: true,
386
- value: function () {
387
- var content = this.state.content;
388
- var preProcessor = this.props.preProcessor;
389
- if (preProcessor) {
390
- return preProcessor(content);
391
- }
392
- return content;
393
- }
394
- });
395
- Object.defineProperty(InlineSVG.prototype, "render", {
396
- enumerable: false,
397
- configurable: true,
398
- writable: true,
399
- value: function () {
400
- var _a = this.state, element = _a.element, status = _a.status;
401
- var _b = this.props, _c = _b.children, children = _c === void 0 ? null : _c, innerRef = _b.innerRef, _d = _b.loader, loader = _d === void 0 ? null : _d;
402
- var elementProps = omit(this.props, 'baseURL', 'cacheRequests', 'children', 'description', 'fetchOptions', 'innerRef', 'loader', 'onError', 'onLoad', 'preProcessor', 'src', 'title', 'uniqueHash', 'uniquifyIDs');
403
- if (!canUseDOM()) {
404
- return loader;
405
- }
406
- if (element) {
407
- return React.cloneElement(element, __assign({ ref: innerRef }, elementProps));
408
- }
409
- if ([STATUS.UNSUPPORTED, STATUS.FAILED].includes(status)) {
410
- return children;
411
- }
412
- return loader;
413
- }
414
- });
415
- Object.defineProperty(InlineSVG, "defaultProps", {
416
- enumerable: true,
417
- configurable: true,
418
- writable: true,
419
- value: {
420
- cacheRequests: true,
421
- uniquifyIDs: false,
422
- }
423
- });
424
- return InlineSVG;
425
- }(React.PureComponent));
426
- export default InlineSVG;
427
- export * from './types';
428
- //# sourceMappingURL=index.js.map
package/esm/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
package/esm/types.d.ts DELETED
@@ -1,37 +0,0 @@
1
- import * as React from 'react';
2
- export type ErrorCallback = (error: Error | FetchError) => void;
3
- export type LoadCallback = (src: string, isCached: boolean) => void;
4
- export type PlainObject<T = unknown> = Record<string | number | symbol, T>;
5
- export type PreProcessorCallback = (code: string) => string;
6
- export interface Props extends Omit<React.SVGProps<SVGElement>, 'onLoad' | 'onError' | 'ref'> {
7
- baseURL?: string;
8
- cacheRequests?: boolean;
9
- children?: React.ReactNode;
10
- description?: string;
11
- fetchOptions?: RequestInit;
12
- innerRef?: React.Ref<SVGElement>;
13
- loader?: React.ReactNode;
14
- onError?: ErrorCallback;
15
- onLoad?: LoadCallback;
16
- preProcessor?: PreProcessorCallback;
17
- src: string;
18
- title?: string | null;
19
- uniqueHash?: string;
20
- uniquifyIDs?: boolean;
21
- }
22
- export interface State {
23
- content: string;
24
- element: React.ReactNode;
25
- hasCache: boolean;
26
- status: string;
27
- }
28
- export interface FetchError extends Error {
29
- code: string;
30
- errno: string;
31
- message: string;
32
- type: string;
33
- }
34
- export interface StorageItem {
35
- content: string;
36
- status: string;
37
- }
package/esm/types.js DELETED
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
package/esm/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/lib/helpers.d.ts DELETED
@@ -1,17 +0,0 @@
1
- import { PlainObject } from './types';
2
- export declare const STATUS: {
3
- FAILED: string;
4
- LOADED: string;
5
- LOADING: string;
6
- PENDING: string;
7
- READY: string;
8
- UNSUPPORTED: string;
9
- };
10
- export declare function canUseDOM(): boolean;
11
- export declare function isSupportedEnvironment(): boolean;
12
- export declare function supportsInlineSVG(): boolean;
13
- export declare function randomString(length: number): string;
14
- /**
15
- * Remove properties from an object
16
- */
17
- export declare function omit<T extends PlainObject, K extends keyof T>(input: T, ...filter: K[]): Omit<T, K>;
package/lib/helpers.js DELETED
@@ -1,66 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.omit = exports.randomString = exports.supportsInlineSVG = exports.isSupportedEnvironment = exports.canUseDOM = exports.STATUS = void 0;
4
- var exenv_1 = require("exenv");
5
- exports.STATUS = {
6
- FAILED: 'failed',
7
- LOADED: 'loaded',
8
- LOADING: 'loading',
9
- PENDING: 'pending',
10
- READY: 'ready',
11
- UNSUPPORTED: 'unsupported',
12
- };
13
- function canUseDOM() {
14
- return exenv_1.canUseDOM;
15
- }
16
- exports.canUseDOM = canUseDOM;
17
- function isSupportedEnvironment() {
18
- return supportsInlineSVG() && typeof window !== 'undefined' && window !== null;
19
- }
20
- exports.isSupportedEnvironment = isSupportedEnvironment;
21
- function supportsInlineSVG() {
22
- /* istanbul ignore next */
23
- if (!document) {
24
- return false;
25
- }
26
- var div = document.createElement('div');
27
- div.innerHTML = '<svg />';
28
- var svg = div.firstChild;
29
- return !!svg && svg.namespaceURI === 'http://www.w3.org/2000/svg';
30
- }
31
- exports.supportsInlineSVG = supportsInlineSVG;
32
- function randomCharacter(character) {
33
- return character[Math.floor(Math.random() * character.length)];
34
- }
35
- function randomString(length) {
36
- var letters = 'abcdefghijklmnopqrstuvwxyz';
37
- var numbers = '1234567890';
38
- var charset = "".concat(letters).concat(letters.toUpperCase()).concat(numbers);
39
- var R = '';
40
- for (var index = 0; index < length; index++) {
41
- R += randomCharacter(charset);
42
- }
43
- return R;
44
- }
45
- exports.randomString = randomString;
46
- /**
47
- * Remove properties from an object
48
- */
49
- function omit(input) {
50
- var filter = [];
51
- for (var _i = 1; _i < arguments.length; _i++) {
52
- filter[_i - 1] = arguments[_i];
53
- }
54
- var output = {};
55
- for (var key in input) {
56
- /* istanbul ignore else */
57
- if ({}.hasOwnProperty.call(input, key)) {
58
- if (!filter.includes(key)) {
59
- output[key] = input[key];
60
- }
61
- }
62
- }
63
- return output;
64
- }
65
- exports.omit = omit;
66
- //# sourceMappingURL=helpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":";;;AAAA,+BAAmD;AAItC,QAAA,MAAM,GAAG;IACpB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,aAAa;CAC3B,CAAC;AAEF,SAAgB,SAAS;IACvB,OAAO,iBAAa,CAAC;AACvB,CAAC;AAFD,8BAEC;AAED,SAAgB,sBAAsB;IACpC,OAAO,iBAAiB,EAAE,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,IAAI,CAAC;AACjF,CAAC;AAFD,wDAEC;AAED,SAAgB,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;AAZD,8CAYC;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,SAAgB,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;AAZD,oCAYC;AAED;;GAEG;AACH,SAAgB,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;AAhBD,oBAgBC"}
package/lib/index.d.ts DELETED
@@ -1,28 +0,0 @@
1
- import * as React from 'react';
2
- import { Props, State, StorageItem } from './types';
3
- export declare const cacheStore: {
4
- [key: string]: StorageItem;
5
- };
6
- export default class InlineSVG extends React.PureComponent<Props, State> {
7
- private isInitialized;
8
- private isActive;
9
- private readonly hash;
10
- static defaultProps: {
11
- cacheRequests: boolean;
12
- uniquifyIDs: boolean;
13
- };
14
- constructor(props: Props);
15
- componentDidMount(): void;
16
- componentDidUpdate(previousProps: Props, previousState: State): void;
17
- componentWillUnmount(): void;
18
- private getNode;
19
- private getElement;
20
- private handleLoad;
21
- private handleError;
22
- private request;
23
- private load;
24
- private updateSVGAttributes;
25
- private processSVG;
26
- render(): React.ReactNode;
27
- }
28
- export * from './types';