react-svg 16.0.0 → 16.1.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/README.md +4 -41
- package/dist/ReactSVG.d.ts +4 -0
- package/dist/react-svg.cjs.development.js +28 -1
- package/dist/react-svg.cjs.development.js.map +1 -1
- package/dist/react-svg.cjs.production.js +1 -1
- package/dist/react-svg.cjs.production.js.map +1 -1
- package/dist/react-svg.esm.js +28 -1
- package/dist/react-svg.esm.js.map +1 -1
- package/dist/react-svg.umd.development.js +28 -1
- package/dist/react-svg.umd.development.js.map +1 -1
- package/dist/react-svg.umd.production.js +1 -1
- package/dist/react-svg.umd.production.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/package.json +16 -16
package/README.md
CHANGED
|
@@ -52,12 +52,14 @@ root.render(<ReactSVG src="svg.svg" />)
|
|
|
52
52
|
- `src` - The SVG URL.
|
|
53
53
|
- `afterInjection(svg)` - _Optional_ Function to call after the SVG is injected. `svg` is the injected SVG DOM element. If an error occurs during execution it will be routed to the `onError` callback, and if a `fallback` is specified it will be rendered. Defaults to `() => {}`.
|
|
54
54
|
- `beforeInjection(svg)` - _Optional_ Function to call just before the SVG is injected. `svg` is the SVG DOM element which is about to be injected. If an error occurs during execution it will be routed to the `onError` callback, and if a `fallback` is specified it will be rendered. Defaults to `() => {}`.
|
|
55
|
+
- `desc` - _Optional_ String used for SVG `<desc>` element content. If a `<desc>` exists it will be replaced, otherwise a new `<desc>` is created. Defaults to `''`, which is a noop.
|
|
55
56
|
- `evalScripts` - _Optional_ Run any script blocks found in the SVG. One of `'always'`, `'once'`, or `'never'`. Defaults to `'never'`.
|
|
56
57
|
- `fallback` - _Optional_ Fallback to use if an error occurs during injection, or if errors are thrown from the `beforeInjection` or `afterInjection` functions. Can be a string, class component, or function component. Defaults to `null`.
|
|
57
58
|
- `httpRequestWithCredentials` - _Optional_ Boolean indicating if cross-site Access-Control requests for the SVG should be made using credentials. Defaults to `false`.
|
|
58
59
|
- `loading` - _Optional_ Component to use during loading. Can be a string, class component, or function component. Defaults to `null`.
|
|
59
60
|
- `onError(error)` - _Optional_ Function to call if an error occurs during injection, or if errors are thrown from the `beforeInjection` or `afterInjection` functions. `error` is an `unknown` object. Defaults to `() => {}`.
|
|
60
61
|
- `renumerateIRIElements` - _Optional_ Boolean indicating if SVG IRI addressable elements should be renumerated. Defaults to `true`.
|
|
62
|
+
- `title` - _Optional_ String used for SVG `<title>` element content. If a `<title>` exists it will be replaced, otherwise a new `<title>` is created. Defaults to `''`, which is a noop.
|
|
61
63
|
- `useRequestCache` - _Optional_ Use SVG request cache. Defaults to `true`.
|
|
62
64
|
- `wrapper` - _Optional_ Wrapper element types. One of `'div'`, `'span'` or `'svg'`. Defaults to `'div'`.
|
|
63
65
|
|
|
@@ -75,6 +77,7 @@ Other non-documented properties are applied to the outermost wrapper element.
|
|
|
75
77
|
svg.setAttribute('style', 'width: 200px')
|
|
76
78
|
}}
|
|
77
79
|
className="wrapper-class-name"
|
|
80
|
+
desc="Description"
|
|
78
81
|
evalScripts="always"
|
|
79
82
|
fallback={() => <span>Error!</span>}
|
|
80
83
|
httpRequestWithCredentials={true}
|
|
@@ -87,6 +90,7 @@ Other non-documented properties are applied to the outermost wrapper element.
|
|
|
87
90
|
}}
|
|
88
91
|
renumerateIRIElements={false}
|
|
89
92
|
src="svg.svg"
|
|
93
|
+
title="Title"
|
|
90
94
|
useRequestCache={false}
|
|
91
95
|
wrapper="span"
|
|
92
96
|
/>
|
|
@@ -149,47 +153,6 @@ Related issues and PRs:
|
|
|
149
153
|
|
|
150
154
|
</details>
|
|
151
155
|
|
|
152
|
-
<details>
|
|
153
|
-
|
|
154
|
-
<summary>
|
|
155
|
-
How can I improve the accessibility of the rendered output?
|
|
156
|
-
</summary>
|
|
157
|
-
|
|
158
|
-
Let's assume we want to add `role` and `aria-label` attributes to the outermost wrapper element, plus `title` and `desc` elements to the SVG.
|
|
159
|
-
|
|
160
|
-
Since non-documented properties are applied to the outermost wrapper element, and the `beforeInjection` function allows us to modify the SVG DOM, we can do something like the following:
|
|
161
|
-
|
|
162
|
-
```jsx
|
|
163
|
-
<ReactSVG
|
|
164
|
-
aria-label="Description of the overall image"
|
|
165
|
-
beforeInjection={(svg) => {
|
|
166
|
-
const desc = document.createElementNS(
|
|
167
|
-
'http://www.w3.org/2000/svg',
|
|
168
|
-
'desc'
|
|
169
|
-
)
|
|
170
|
-
desc.innerHTML = 'A description'
|
|
171
|
-
svg.prepend(desc)
|
|
172
|
-
|
|
173
|
-
const title = document.createElementNS(
|
|
174
|
-
'http://www.w3.org/2000/svg',
|
|
175
|
-
'title'
|
|
176
|
-
)
|
|
177
|
-
title.innerHTML = 'A title'
|
|
178
|
-
svg.prepend(title)
|
|
179
|
-
}}
|
|
180
|
-
role="img"
|
|
181
|
-
src="svg.svg"
|
|
182
|
-
/>
|
|
183
|
-
```
|
|
184
|
-
|
|
185
|
-
A live example is available [here](https://codesandbox.io/s/github/tanem/react-svg/tree/master/examples/accessibility).
|
|
186
|
-
|
|
187
|
-
Related issue:
|
|
188
|
-
|
|
189
|
-
- [#639](https://github.com/tanem/react-svg/issues/639).
|
|
190
|
-
|
|
191
|
-
</details>
|
|
192
|
-
|
|
193
156
|
## License
|
|
194
157
|
|
|
195
158
|
MIT
|
package/dist/ReactSVG.d.ts
CHANGED
|
@@ -5,18 +5,21 @@ export declare class ReactSVG extends React.Component<Props, State> {
|
|
|
5
5
|
static defaultProps: {
|
|
6
6
|
afterInjection: () => undefined;
|
|
7
7
|
beforeInjection: () => undefined;
|
|
8
|
+
desc: string;
|
|
8
9
|
evalScripts: string;
|
|
9
10
|
fallback: null;
|
|
10
11
|
httpRequestWithCredentials: boolean;
|
|
11
12
|
loading: null;
|
|
12
13
|
onError: () => undefined;
|
|
13
14
|
renumerateIRIElements: boolean;
|
|
15
|
+
title: string;
|
|
14
16
|
useRequestCache: boolean;
|
|
15
17
|
wrapper: string;
|
|
16
18
|
};
|
|
17
19
|
static propTypes: {
|
|
18
20
|
afterInjection: PropTypes.Requireable<(...args: any[]) => any>;
|
|
19
21
|
beforeInjection: PropTypes.Requireable<(...args: any[]) => any>;
|
|
22
|
+
desc: PropTypes.Requireable<string>;
|
|
20
23
|
evalScripts: PropTypes.Requireable<string>;
|
|
21
24
|
fallback: PropTypes.Requireable<NonNullable<string | object | null | undefined>>;
|
|
22
25
|
httpRequestWithCredentials: PropTypes.Requireable<boolean>;
|
|
@@ -24,6 +27,7 @@ export declare class ReactSVG extends React.Component<Props, State> {
|
|
|
24
27
|
onError: PropTypes.Requireable<(...args: any[]) => any>;
|
|
25
28
|
renumerateIRIElements: PropTypes.Requireable<boolean>;
|
|
26
29
|
src: PropTypes.Validator<string>;
|
|
30
|
+
title: PropTypes.Requireable<string>;
|
|
27
31
|
useRequestCache: PropTypes.Requireable<boolean>;
|
|
28
32
|
wrapper: PropTypes.Requireable<string>;
|
|
29
33
|
};
|
|
@@ -48,7 +48,7 @@ var shallowDiffers = function shallowDiffers(a, b) {
|
|
|
48
48
|
return false;
|
|
49
49
|
};
|
|
50
50
|
|
|
51
|
-
var _excluded = ["afterInjection", "beforeInjection", "evalScripts", "fallback", "httpRequestWithCredentials", "loading", "renumerateIRIElements", "src", "useRequestCache", "wrapper"];
|
|
51
|
+
var _excluded = ["afterInjection", "beforeInjection", "desc", "evalScripts", "fallback", "httpRequestWithCredentials", "loading", "renumerateIRIElements", "src", "title", "useRequestCache", "wrapper"];
|
|
52
52
|
var svgNamespace = 'http://www.w3.org/2000/svg';
|
|
53
53
|
var xlinkNamespace = 'http://www.w3.org/1999/xlink';
|
|
54
54
|
var ReactSVG = /*#__PURE__*/function (_React$Component) {
|
|
@@ -78,10 +78,12 @@ var ReactSVG = /*#__PURE__*/function (_React$Component) {
|
|
|
78
78
|
/* istanbul ignore else */
|
|
79
79
|
if (this.reactWrapper instanceof ownerWindow(this.reactWrapper).Node) {
|
|
80
80
|
var _this$props = this.props,
|
|
81
|
+
desc = _this$props.desc,
|
|
81
82
|
evalScripts = _this$props.evalScripts,
|
|
82
83
|
httpRequestWithCredentials = _this$props.httpRequestWithCredentials,
|
|
83
84
|
renumerateIRIElements = _this$props.renumerateIRIElements,
|
|
84
85
|
src = _this$props.src,
|
|
86
|
+
title = _this$props.title,
|
|
85
87
|
useRequestCache = _this$props.useRequestCache;
|
|
86
88
|
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
87
89
|
var onError = this.props.onError;
|
|
@@ -139,6 +141,25 @@ var ReactSVG = /*#__PURE__*/function (_React$Component) {
|
|
|
139
141
|
}
|
|
140
142
|
};
|
|
141
143
|
var beforeEach = function beforeEach(svg) {
|
|
144
|
+
svg.setAttribute('role', 'img');
|
|
145
|
+
if (desc) {
|
|
146
|
+
var originalDesc = svg.querySelector(':scope > desc');
|
|
147
|
+
if (originalDesc) {
|
|
148
|
+
svg.removeChild(originalDesc);
|
|
149
|
+
}
|
|
150
|
+
var newDesc = document.createElement('desc');
|
|
151
|
+
newDesc.innerHTML = desc;
|
|
152
|
+
svg.prepend(newDesc);
|
|
153
|
+
}
|
|
154
|
+
if (title) {
|
|
155
|
+
var originalTitle = svg.querySelector(':scope > title');
|
|
156
|
+
if (originalTitle) {
|
|
157
|
+
svg.removeChild(originalTitle);
|
|
158
|
+
}
|
|
159
|
+
var newTitle = document.createElement('title');
|
|
160
|
+
newTitle.innerHTML = title;
|
|
161
|
+
svg.prepend(newTitle);
|
|
162
|
+
}
|
|
142
163
|
try {
|
|
143
164
|
beforeInjection(svg);
|
|
144
165
|
} catch (error) {
|
|
@@ -186,12 +207,14 @@ var ReactSVG = /*#__PURE__*/function (_React$Component) {
|
|
|
186
207
|
var _this$props2 = this.props;
|
|
187
208
|
_this$props2.afterInjection;
|
|
188
209
|
_this$props2.beforeInjection;
|
|
210
|
+
_this$props2.desc;
|
|
189
211
|
_this$props2.evalScripts;
|
|
190
212
|
var Fallback = _this$props2.fallback;
|
|
191
213
|
_this$props2.httpRequestWithCredentials;
|
|
192
214
|
var Loading = _this$props2.loading;
|
|
193
215
|
_this$props2.renumerateIRIElements;
|
|
194
216
|
_this$props2.src;
|
|
217
|
+
_this$props2.title;
|
|
195
218
|
_this$props2.useRequestCache;
|
|
196
219
|
var wrapper = _this$props2.wrapper,
|
|
197
220
|
rest = _objectWithoutPropertiesLoose(_this$props2, _excluded);
|
|
@@ -214,6 +237,7 @@ ReactSVG.defaultProps = {
|
|
|
214
237
|
beforeInjection: function beforeInjection() {
|
|
215
238
|
return undefined;
|
|
216
239
|
},
|
|
240
|
+
desc: '',
|
|
217
241
|
evalScripts: 'never',
|
|
218
242
|
fallback: null,
|
|
219
243
|
httpRequestWithCredentials: false,
|
|
@@ -222,12 +246,14 @@ ReactSVG.defaultProps = {
|
|
|
222
246
|
return undefined;
|
|
223
247
|
},
|
|
224
248
|
renumerateIRIElements: true,
|
|
249
|
+
title: '',
|
|
225
250
|
useRequestCache: true,
|
|
226
251
|
wrapper: 'div'
|
|
227
252
|
};
|
|
228
253
|
ReactSVG.propTypes = {
|
|
229
254
|
afterInjection: PropTypes__namespace.func,
|
|
230
255
|
beforeInjection: PropTypes__namespace.func,
|
|
256
|
+
desc: PropTypes__namespace.string,
|
|
231
257
|
evalScripts: PropTypes__namespace.oneOf(['always', 'once', 'never']),
|
|
232
258
|
fallback: PropTypes__namespace.oneOfType([PropTypes__namespace.func, PropTypes__namespace.object, PropTypes__namespace.string]),
|
|
233
259
|
httpRequestWithCredentials: PropTypes__namespace.bool,
|
|
@@ -235,6 +261,7 @@ ReactSVG.propTypes = {
|
|
|
235
261
|
onError: PropTypes__namespace.func,
|
|
236
262
|
renumerateIRIElements: PropTypes__namespace.bool,
|
|
237
263
|
src: PropTypes__namespace.string.isRequired,
|
|
264
|
+
title: PropTypes__namespace.string,
|
|
238
265
|
useRequestCache: PropTypes__namespace.bool,
|
|
239
266
|
wrapper: PropTypes__namespace.oneOf(['div', 'span', 'svg'])
|
|
240
267
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react-svg.cjs.development.js","sources":["../compiled/owner-window.js","../compiled/shallow-differs.js","../compiled/ReactSVG.js"],"sourcesContent":["// Hat-tip: https://github.com/mui/material-ui/tree/master/packages/mui-utils/src.\nconst ownerWindow = (node) => {\n const doc = node?.ownerDocument || document;\n return doc.defaultView || window;\n};\nexport default ownerWindow;\n","// Hat-tip: https://github.com/developit/preact-compat/blob/master/src/index.js#L402.\nconst shallowDiffers = (a, b) => {\n for (const i in a) {\n if (!(i in b)) {\n return true;\n }\n }\n for (const i in b) {\n if (a[i] !== b[i]) {\n return true;\n }\n }\n return false;\n};\nexport default shallowDiffers;\n","import { SVGInjector } from '@tanem/svg-injector';\nimport * as PropTypes from 'prop-types';\nimport * as React from 'react';\nimport ownerWindow from './owner-window';\nimport shallowDiffers from './shallow-differs';\nconst svgNamespace = 'http://www.w3.org/2000/svg';\nconst xlinkNamespace = 'http://www.w3.org/1999/xlink';\nexport class ReactSVG extends React.Component {\n static defaultProps = {\n afterInjection: () => undefined,\n beforeInjection: () => undefined,\n evalScripts: 'never',\n fallback: null,\n httpRequestWithCredentials: false,\n loading: null,\n onError: () => undefined,\n renumerateIRIElements: true,\n useRequestCache: true,\n wrapper: 'div',\n };\n static propTypes = {\n afterInjection: PropTypes.func,\n beforeInjection: PropTypes.func,\n evalScripts: PropTypes.oneOf(['always', 'once', 'never']),\n fallback: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.object,\n PropTypes.string,\n ]),\n httpRequestWithCredentials: PropTypes.bool,\n loading: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.object,\n PropTypes.string,\n ]),\n onError: PropTypes.func,\n renumerateIRIElements: PropTypes.bool,\n src: PropTypes.string.isRequired,\n useRequestCache: PropTypes.bool,\n wrapper: PropTypes.oneOf(['div', 'span', 'svg']),\n };\n initialState = {\n hasError: false,\n isLoading: true,\n };\n state = this.initialState;\n _isMounted = false;\n reactWrapper;\n nonReactWrapper;\n refCallback = (reactWrapper) => {\n this.reactWrapper = reactWrapper;\n };\n renderSVG() {\n /* istanbul ignore else */\n if (this.reactWrapper instanceof ownerWindow(this.reactWrapper).Node) {\n const { evalScripts, httpRequestWithCredentials, renumerateIRIElements, src, useRequestCache, } = this.props;\n /* eslint-disable @typescript-eslint/no-non-null-assertion */\n const onError = this.props.onError;\n const beforeInjection = this.props.beforeInjection;\n const afterInjection = this.props.afterInjection;\n const wrapper = this.props.wrapper;\n let nonReactWrapper;\n let nonReactTarget;\n if (wrapper === 'svg') {\n nonReactWrapper = document.createElementNS(svgNamespace, wrapper);\n nonReactWrapper.setAttribute('xmlns', svgNamespace);\n nonReactWrapper.setAttribute('xmlns:xlink', xlinkNamespace);\n nonReactTarget = document.createElementNS(svgNamespace, wrapper);\n }\n else {\n nonReactWrapper = document.createElement(wrapper);\n nonReactTarget = document.createElement(wrapper);\n }\n nonReactWrapper.appendChild(nonReactTarget);\n nonReactTarget.dataset.src = src;\n this.nonReactWrapper = this.reactWrapper.appendChild(nonReactWrapper);\n const handleError = (error) => {\n this.removeSVG();\n if (!this._isMounted) {\n onError(error);\n return;\n }\n this.setState(() => ({\n hasError: true,\n isLoading: false,\n }), () => {\n onError(error);\n });\n };\n const afterEach = (error, svg) => {\n if (error) {\n handleError(error);\n return;\n }\n // TODO (Tane): It'd be better to cleanly unsubscribe from SVGInjector\n // callbacks instead of tracking a property like this.\n if (this._isMounted) {\n this.setState(() => ({\n isLoading: false,\n }), () => {\n try {\n afterInjection(svg);\n }\n catch (afterInjectionError) {\n handleError(afterInjectionError);\n }\n });\n }\n };\n const beforeEach = (svg) => {\n try {\n beforeInjection(svg);\n }\n catch (error) {\n handleError(error);\n }\n };\n SVGInjector(nonReactTarget, {\n afterEach,\n beforeEach,\n cacheRequests: useRequestCache,\n evalScripts,\n httpRequestWithCredentials,\n renumerateIRIElements,\n });\n }\n }\n removeSVG() {\n if (this.nonReactWrapper?.parentNode) {\n this.nonReactWrapper.parentNode.removeChild(this.nonReactWrapper);\n this.nonReactWrapper = null;\n }\n }\n componentDidMount() {\n this._isMounted = true;\n this.renderSVG();\n }\n componentDidUpdate(prevProps) {\n if (shallowDiffers({ ...prevProps }, this.props)) {\n this.setState(() => this.initialState, () => {\n this.removeSVG();\n this.renderSVG();\n });\n }\n }\n componentWillUnmount() {\n this._isMounted = false;\n this.removeSVG();\n }\n render() {\n /* eslint-disable @typescript-eslint/no-unused-vars */\n const { afterInjection, beforeInjection, evalScripts, fallback: Fallback, httpRequestWithCredentials, loading: Loading, renumerateIRIElements, src, useRequestCache, wrapper, ...rest } = this.props;\n /* eslint-enable @typescript-eslint/no-unused-vars */\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const Wrapper = wrapper;\n return (React.createElement(Wrapper, { ...rest, ref: this.refCallback, ...(wrapper === 'svg'\n ? {\n xmlns: svgNamespace,\n xmlnsXlink: xlinkNamespace,\n }\n : {}) },\n this.state.isLoading && Loading && React.createElement(Loading, null),\n this.state.hasError && Fallback && React.createElement(Fallback, null)));\n }\n}\n"],"names":["ownerWindow","node","doc","ownerDocument","document","defaultView","window","shallowDiffers","a","b","i","svgNamespace","xlinkNamespace","ReactSVG","initialState","hasError","isLoading","state","_isMounted","reactWrapper","nonReactWrapper","refCallback","renderSVG","Node","props","evalScripts","httpRequestWithCredentials","renumerateIRIElements","src","useRequestCache","onError","beforeInjection","afterInjection","wrapper","nonReactTarget","createElementNS","setAttribute","createElement","appendChild","dataset","handleError","error","removeSVG","setState","afterEach","svg","afterInjectionError","beforeEach","SVGInjector","cacheRequests","parentNode","removeChild","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","render","Fallback","fallback","Loading","loading","rest","Wrapper","React","ref","xmlns","xmlnsXlink","Component","defaultProps","undefined","propTypes","PropTypes","func","oneOf","oneOfType","object","string","bool","isRequired"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"react-svg.cjs.development.js","sources":["../compiled/owner-window.js","../compiled/shallow-differs.js","../compiled/ReactSVG.js"],"sourcesContent":["// Hat-tip: https://github.com/mui/material-ui/tree/master/packages/mui-utils/src.\nconst ownerWindow = (node) => {\n const doc = node?.ownerDocument || document;\n return doc.defaultView || window;\n};\nexport default ownerWindow;\n","// Hat-tip: https://github.com/developit/preact-compat/blob/master/src/index.js#L402.\nconst shallowDiffers = (a, b) => {\n for (const i in a) {\n if (!(i in b)) {\n return true;\n }\n }\n for (const i in b) {\n if (a[i] !== b[i]) {\n return true;\n }\n }\n return false;\n};\nexport default shallowDiffers;\n","import { SVGInjector } from '@tanem/svg-injector';\nimport * as PropTypes from 'prop-types';\nimport * as React from 'react';\nimport ownerWindow from './owner-window';\nimport shallowDiffers from './shallow-differs';\nconst svgNamespace = 'http://www.w3.org/2000/svg';\nconst xlinkNamespace = 'http://www.w3.org/1999/xlink';\nexport class ReactSVG extends React.Component {\n static defaultProps = {\n afterInjection: () => undefined,\n beforeInjection: () => undefined,\n desc: '',\n evalScripts: 'never',\n fallback: null,\n httpRequestWithCredentials: false,\n loading: null,\n onError: () => undefined,\n renumerateIRIElements: true,\n title: '',\n useRequestCache: true,\n wrapper: 'div',\n };\n static propTypes = {\n afterInjection: PropTypes.func,\n beforeInjection: PropTypes.func,\n desc: PropTypes.string,\n evalScripts: PropTypes.oneOf(['always', 'once', 'never']),\n fallback: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.object,\n PropTypes.string,\n ]),\n httpRequestWithCredentials: PropTypes.bool,\n loading: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.object,\n PropTypes.string,\n ]),\n onError: PropTypes.func,\n renumerateIRIElements: PropTypes.bool,\n src: PropTypes.string.isRequired,\n title: PropTypes.string,\n useRequestCache: PropTypes.bool,\n wrapper: PropTypes.oneOf(['div', 'span', 'svg']),\n };\n initialState = {\n hasError: false,\n isLoading: true,\n };\n state = this.initialState;\n _isMounted = false;\n reactWrapper;\n nonReactWrapper;\n refCallback = (reactWrapper) => {\n this.reactWrapper = reactWrapper;\n };\n renderSVG() {\n /* istanbul ignore else */\n if (this.reactWrapper instanceof ownerWindow(this.reactWrapper).Node) {\n const { desc, evalScripts, httpRequestWithCredentials, renumerateIRIElements, src, title, useRequestCache, } = this.props;\n /* eslint-disable @typescript-eslint/no-non-null-assertion */\n const onError = this.props.onError;\n const beforeInjection = this.props.beforeInjection;\n const afterInjection = this.props.afterInjection;\n const wrapper = this.props.wrapper;\n let nonReactWrapper;\n let nonReactTarget;\n if (wrapper === 'svg') {\n nonReactWrapper = document.createElementNS(svgNamespace, wrapper);\n nonReactWrapper.setAttribute('xmlns', svgNamespace);\n nonReactWrapper.setAttribute('xmlns:xlink', xlinkNamespace);\n nonReactTarget = document.createElementNS(svgNamespace, wrapper);\n }\n else {\n nonReactWrapper = document.createElement(wrapper);\n nonReactTarget = document.createElement(wrapper);\n }\n nonReactWrapper.appendChild(nonReactTarget);\n nonReactTarget.dataset.src = src;\n this.nonReactWrapper = this.reactWrapper.appendChild(nonReactWrapper);\n const handleError = (error) => {\n this.removeSVG();\n if (!this._isMounted) {\n onError(error);\n return;\n }\n this.setState(() => ({\n hasError: true,\n isLoading: false,\n }), () => {\n onError(error);\n });\n };\n const afterEach = (error, svg) => {\n if (error) {\n handleError(error);\n return;\n }\n // TODO (Tane): It'd be better to cleanly unsubscribe from SVGInjector\n // callbacks instead of tracking a property like this.\n if (this._isMounted) {\n this.setState(() => ({\n isLoading: false,\n }), () => {\n try {\n afterInjection(svg);\n }\n catch (afterInjectionError) {\n handleError(afterInjectionError);\n }\n });\n }\n };\n const beforeEach = (svg) => {\n svg.setAttribute('role', 'img');\n if (desc) {\n const originalDesc = svg.querySelector(':scope > desc');\n if (originalDesc) {\n svg.removeChild(originalDesc);\n }\n const newDesc = document.createElement('desc');\n newDesc.innerHTML = desc;\n svg.prepend(newDesc);\n }\n if (title) {\n const originalTitle = svg.querySelector(':scope > title');\n if (originalTitle) {\n svg.removeChild(originalTitle);\n }\n const newTitle = document.createElement('title');\n newTitle.innerHTML = title;\n svg.prepend(newTitle);\n }\n try {\n beforeInjection(svg);\n }\n catch (error) {\n handleError(error);\n }\n };\n SVGInjector(nonReactTarget, {\n afterEach,\n beforeEach,\n cacheRequests: useRequestCache,\n evalScripts,\n httpRequestWithCredentials,\n renumerateIRIElements,\n });\n }\n }\n removeSVG() {\n if (this.nonReactWrapper?.parentNode) {\n this.nonReactWrapper.parentNode.removeChild(this.nonReactWrapper);\n this.nonReactWrapper = null;\n }\n }\n componentDidMount() {\n this._isMounted = true;\n this.renderSVG();\n }\n componentDidUpdate(prevProps) {\n if (shallowDiffers({ ...prevProps }, this.props)) {\n this.setState(() => this.initialState, () => {\n this.removeSVG();\n this.renderSVG();\n });\n }\n }\n componentWillUnmount() {\n this._isMounted = false;\n this.removeSVG();\n }\n render() {\n /* eslint-disable @typescript-eslint/no-unused-vars */\n const { afterInjection, beforeInjection, desc, evalScripts, fallback: Fallback, httpRequestWithCredentials, loading: Loading, renumerateIRIElements, src, title, useRequestCache, wrapper, ...rest } = this.props;\n /* eslint-enable @typescript-eslint/no-unused-vars */\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const Wrapper = wrapper;\n return (React.createElement(Wrapper, { ...rest, ref: this.refCallback, ...(wrapper === 'svg'\n ? {\n xmlns: svgNamespace,\n xmlnsXlink: xlinkNamespace,\n }\n : {}) },\n this.state.isLoading && Loading && React.createElement(Loading, null),\n this.state.hasError && Fallback && React.createElement(Fallback, null)));\n }\n}\n"],"names":["ownerWindow","node","doc","ownerDocument","document","defaultView","window","shallowDiffers","a","b","i","svgNamespace","xlinkNamespace","ReactSVG","initialState","hasError","isLoading","state","_isMounted","reactWrapper","nonReactWrapper","refCallback","renderSVG","Node","props","desc","evalScripts","httpRequestWithCredentials","renumerateIRIElements","src","title","useRequestCache","onError","beforeInjection","afterInjection","wrapper","nonReactTarget","createElementNS","setAttribute","createElement","appendChild","dataset","handleError","error","removeSVG","setState","afterEach","svg","afterInjectionError","beforeEach","originalDesc","querySelector","removeChild","newDesc","innerHTML","prepend","originalTitle","newTitle","SVGInjector","cacheRequests","parentNode","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","render","Fallback","fallback","Loading","loading","rest","Wrapper","React","ref","xmlns","xmlnsXlink","Component","defaultProps","undefined","propTypes","PropTypes","func","string","oneOf","oneOfType","object","bool","isRequired"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var _objectWithoutPropertiesLoose=require("@babel/runtime/helpers/objectWithoutPropertiesLoose"),_extends=require("@babel/runtime/helpers/extends"),_inheritsLoose=require("@babel/runtime/helpers/inheritsLoose"),svgInjector=require("@tanem/svg-injector"),React=require("react");function _interopNamespaceDefault(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var React__namespace=_interopNamespaceDefault(React),ownerWindow=function(e){return((null==e?void 0:e.ownerDocument)||document).defaultView||window},shallowDiffers=function(e,t){for(var r in e)if(!(r in t))return!0;for(var n in t)if(e[n]!==t[n])return!0;return!1},_excluded=["afterInjection","beforeInjection","evalScripts","fallback","httpRequestWithCredentials","loading","renumerateIRIElements","src","useRequestCache","wrapper"],svgNamespace="http://www.w3.org/2000/svg",xlinkNamespace="http://www.w3.org/1999/xlink",ReactSVG=function(e){function t(){for(var t,r=arguments.length,n=new Array(r),a=0;a<r;a++)n[a]=arguments[a];return(t=e.call.apply(e,[this].concat(n))||this).initialState={hasError:!1,isLoading:!0},t.state=t.initialState,t._isMounted=!1,t.reactWrapper=void 0,t.nonReactWrapper=void 0,t.refCallback=function(e){t.reactWrapper=e},t}_inheritsLoose(t,e);var r=t.prototype;return r.renderSVG=function(){var e=this;if(this.reactWrapper instanceof ownerWindow(this.reactWrapper).Node){var t,r,n=this.props,a=n.
|
|
1
|
+
"use strict";var _objectWithoutPropertiesLoose=require("@babel/runtime/helpers/objectWithoutPropertiesLoose"),_extends=require("@babel/runtime/helpers/extends"),_inheritsLoose=require("@babel/runtime/helpers/inheritsLoose"),svgInjector=require("@tanem/svg-injector"),React=require("react");function _interopNamespaceDefault(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var React__namespace=_interopNamespaceDefault(React),ownerWindow=function(e){return((null==e?void 0:e.ownerDocument)||document).defaultView||window},shallowDiffers=function(e,t){for(var r in e)if(!(r in t))return!0;for(var n in t)if(e[n]!==t[n])return!0;return!1},_excluded=["afterInjection","beforeInjection","desc","evalScripts","fallback","httpRequestWithCredentials","loading","renumerateIRIElements","src","title","useRequestCache","wrapper"],svgNamespace="http://www.w3.org/2000/svg",xlinkNamespace="http://www.w3.org/1999/xlink",ReactSVG=function(e){function t(){for(var t,r=arguments.length,n=new Array(r),a=0;a<r;a++)n[a]=arguments[a];return(t=e.call.apply(e,[this].concat(n))||this).initialState={hasError:!1,isLoading:!0},t.state=t.initialState,t._isMounted=!1,t.reactWrapper=void 0,t.nonReactWrapper=void 0,t.refCallback=function(e){t.reactWrapper=e},t}_inheritsLoose(t,e);var r=t.prototype;return r.renderSVG=function(){var e=this;if(this.reactWrapper instanceof ownerWindow(this.reactWrapper).Node){var t,r,n=this.props,a=n.desc,i=n.evalScripts,o=n.httpRequestWithCredentials,s=n.renumerateIRIElements,c=n.src,p=n.title,u=n.useRequestCache,l=this.props.onError,d=this.props.beforeInjection,h=this.props.afterInjection,f=this.props.wrapper;"svg"===f?((t=document.createElementNS(svgNamespace,f)).setAttribute("xmlns",svgNamespace),t.setAttribute("xmlns:xlink",xlinkNamespace),r=document.createElementNS(svgNamespace,f)):(t=document.createElement(f),r=document.createElement(f)),t.appendChild(r),r.dataset.src=c,this.nonReactWrapper=this.reactWrapper.appendChild(t);var m=function(t){e.removeSVG(),e._isMounted?e.setState((function(){return{hasError:!0,isLoading:!1}}),(function(){l(t)})):l(t)};svgInjector.SVGInjector(r,{afterEach:function(t,r){t?m(t):e._isMounted&&e.setState((function(){return{isLoading:!1}}),(function(){try{h(r)}catch(e){m(e)}}))},beforeEach:function(e){if(e.setAttribute("role","img"),a){var t=e.querySelector(":scope > desc");t&&e.removeChild(t);var r=document.createElement("desc");r.innerHTML=a,e.prepend(r)}if(p){var n=e.querySelector(":scope > title");n&&e.removeChild(n);var i=document.createElement("title");i.innerHTML=p,e.prepend(i)}try{d(e)}catch(e){m(e)}},cacheRequests:u,evalScripts:i,httpRequestWithCredentials:o,renumerateIRIElements:s})}},r.removeSVG=function(){var e;null!=(e=this.nonReactWrapper)&&e.parentNode&&(this.nonReactWrapper.parentNode.removeChild(this.nonReactWrapper),this.nonReactWrapper=null)},r.componentDidMount=function(){this._isMounted=!0,this.renderSVG()},r.componentDidUpdate=function(e){var t=this;shallowDiffers(_extends({},e),this.props)&&this.setState((function(){return t.initialState}),(function(){t.removeSVG(),t.renderSVG()}))},r.componentWillUnmount=function(){this._isMounted=!1,this.removeSVG()},r.render=function(){var e=this.props,t=e.fallback,r=e.loading,n=e.wrapper,a=_objectWithoutPropertiesLoose(e,_excluded);return React__namespace.createElement(n,_extends({},a,{ref:this.refCallback},"svg"===n?{xmlns:svgNamespace,xmlnsXlink:xlinkNamespace}:{}),this.state.isLoading&&r&&React__namespace.createElement(r,null),this.state.hasError&&t&&React__namespace.createElement(t,null))},t}(React__namespace.Component);ReactSVG.defaultProps={afterInjection:function(){},beforeInjection:function(){},desc:"",evalScripts:"never",fallback:null,httpRequestWithCredentials:!1,loading:null,onError:function(){},renumerateIRIElements:!0,title:"",useRequestCache:!0,wrapper:"div"},exports.ReactSVG=ReactSVG;
|
|
2
2
|
//# sourceMappingURL=react-svg.cjs.production.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react-svg.cjs.production.js","sources":["../compiled/owner-window.js","../compiled/shallow-differs.js","../compiled/ReactSVG.js"],"sourcesContent":["// Hat-tip: https://github.com/mui/material-ui/tree/master/packages/mui-utils/src.\nconst ownerWindow = (node) => {\n const doc = node?.ownerDocument || document;\n return doc.defaultView || window;\n};\nexport default ownerWindow;\n","// Hat-tip: https://github.com/developit/preact-compat/blob/master/src/index.js#L402.\nconst shallowDiffers = (a, b) => {\n for (const i in a) {\n if (!(i in b)) {\n return true;\n }\n }\n for (const i in b) {\n if (a[i] !== b[i]) {\n return true;\n }\n }\n return false;\n};\nexport default shallowDiffers;\n","import { SVGInjector } from '@tanem/svg-injector';\nimport * as PropTypes from 'prop-types';\nimport * as React from 'react';\nimport ownerWindow from './owner-window';\nimport shallowDiffers from './shallow-differs';\nconst svgNamespace = 'http://www.w3.org/2000/svg';\nconst xlinkNamespace = 'http://www.w3.org/1999/xlink';\nexport class ReactSVG extends React.Component {\n static defaultProps = {\n afterInjection: () => undefined,\n beforeInjection: () => undefined,\n evalScripts: 'never',\n fallback: null,\n httpRequestWithCredentials: false,\n loading: null,\n onError: () => undefined,\n renumerateIRIElements: true,\n useRequestCache: true,\n wrapper: 'div',\n };\n static propTypes = {\n afterInjection: PropTypes.func,\n beforeInjection: PropTypes.func,\n evalScripts: PropTypes.oneOf(['always', 'once', 'never']),\n fallback: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.object,\n PropTypes.string,\n ]),\n httpRequestWithCredentials: PropTypes.bool,\n loading: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.object,\n PropTypes.string,\n ]),\n onError: PropTypes.func,\n renumerateIRIElements: PropTypes.bool,\n src: PropTypes.string.isRequired,\n useRequestCache: PropTypes.bool,\n wrapper: PropTypes.oneOf(['div', 'span', 'svg']),\n };\n initialState = {\n hasError: false,\n isLoading: true,\n };\n state = this.initialState;\n _isMounted = false;\n reactWrapper;\n nonReactWrapper;\n refCallback = (reactWrapper) => {\n this.reactWrapper = reactWrapper;\n };\n renderSVG() {\n /* istanbul ignore else */\n if (this.reactWrapper instanceof ownerWindow(this.reactWrapper).Node) {\n const { evalScripts, httpRequestWithCredentials, renumerateIRIElements, src, useRequestCache, } = this.props;\n /* eslint-disable @typescript-eslint/no-non-null-assertion */\n const onError = this.props.onError;\n const beforeInjection = this.props.beforeInjection;\n const afterInjection = this.props.afterInjection;\n const wrapper = this.props.wrapper;\n let nonReactWrapper;\n let nonReactTarget;\n if (wrapper === 'svg') {\n nonReactWrapper = document.createElementNS(svgNamespace, wrapper);\n nonReactWrapper.setAttribute('xmlns', svgNamespace);\n nonReactWrapper.setAttribute('xmlns:xlink', xlinkNamespace);\n nonReactTarget = document.createElementNS(svgNamespace, wrapper);\n }\n else {\n nonReactWrapper = document.createElement(wrapper);\n nonReactTarget = document.createElement(wrapper);\n }\n nonReactWrapper.appendChild(nonReactTarget);\n nonReactTarget.dataset.src = src;\n this.nonReactWrapper = this.reactWrapper.appendChild(nonReactWrapper);\n const handleError = (error) => {\n this.removeSVG();\n if (!this._isMounted) {\n onError(error);\n return;\n }\n this.setState(() => ({\n hasError: true,\n isLoading: false,\n }), () => {\n onError(error);\n });\n };\n const afterEach = (error, svg) => {\n if (error) {\n handleError(error);\n return;\n }\n // TODO (Tane): It'd be better to cleanly unsubscribe from SVGInjector\n // callbacks instead of tracking a property like this.\n if (this._isMounted) {\n this.setState(() => ({\n isLoading: false,\n }), () => {\n try {\n afterInjection(svg);\n }\n catch (afterInjectionError) {\n handleError(afterInjectionError);\n }\n });\n }\n };\n const beforeEach = (svg) => {\n try {\n beforeInjection(svg);\n }\n catch (error) {\n handleError(error);\n }\n };\n SVGInjector(nonReactTarget, {\n afterEach,\n beforeEach,\n cacheRequests: useRequestCache,\n evalScripts,\n httpRequestWithCredentials,\n renumerateIRIElements,\n });\n }\n }\n removeSVG() {\n if (this.nonReactWrapper?.parentNode) {\n this.nonReactWrapper.parentNode.removeChild(this.nonReactWrapper);\n this.nonReactWrapper = null;\n }\n }\n componentDidMount() {\n this._isMounted = true;\n this.renderSVG();\n }\n componentDidUpdate(prevProps) {\n if (shallowDiffers({ ...prevProps }, this.props)) {\n this.setState(() => this.initialState, () => {\n this.removeSVG();\n this.renderSVG();\n });\n }\n }\n componentWillUnmount() {\n this._isMounted = false;\n this.removeSVG();\n }\n render() {\n /* eslint-disable @typescript-eslint/no-unused-vars */\n const { afterInjection, beforeInjection, evalScripts, fallback: Fallback, httpRequestWithCredentials, loading: Loading, renumerateIRIElements, src, useRequestCache, wrapper, ...rest } = this.props;\n /* eslint-enable @typescript-eslint/no-unused-vars */\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const Wrapper = wrapper;\n return (React.createElement(Wrapper, { ...rest, ref: this.refCallback, ...(wrapper === 'svg'\n ? {\n xmlns: svgNamespace,\n xmlnsXlink: xlinkNamespace,\n }\n : {}) },\n this.state.isLoading && Loading && React.createElement(Loading, null),\n this.state.hasError && Fallback && React.createElement(Fallback, null)));\n }\n}\n"],"names":["ownerWindow","node","ownerDocument","document","defaultView","window","shallowDiffers","a","b","i","svgNamespace","xlinkNamespace","ReactSVG","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","this","concat","initialState","hasError","isLoading","state","_isMounted","reactWrapper","nonReactWrapper","refCallback","_inheritsLoose","_proto","prototype","renderSVG","_this2","Node","nonReactTarget","_this$props","props","evalScripts","httpRequestWithCredentials","renumerateIRIElements","src","useRequestCache","onError","beforeInjection","afterInjection","wrapper","createElementNS","setAttribute","createElement","appendChild","dataset","handleError","error","removeSVG","setState","SVGInjector","afterEach","svg","afterInjectionError","beforeEach","cacheRequests","_this$nonReactWrapper","parentNode","removeChild","componentDidMount","componentDidUpdate","prevProps","_this3","componentWillUnmount","render","_this$props2","Fallback","fallback","Loading","loading","rest","_objectWithoutPropertiesLoose","_excluded","React","ref","xmlns","xmlnsXlink","Component","defaultProps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"react-svg.cjs.production.js","sources":["../compiled/owner-window.js","../compiled/shallow-differs.js","../compiled/ReactSVG.js"],"sourcesContent":["// Hat-tip: https://github.com/mui/material-ui/tree/master/packages/mui-utils/src.\nconst ownerWindow = (node) => {\n const doc = node?.ownerDocument || document;\n return doc.defaultView || window;\n};\nexport default ownerWindow;\n","// Hat-tip: https://github.com/developit/preact-compat/blob/master/src/index.js#L402.\nconst shallowDiffers = (a, b) => {\n for (const i in a) {\n if (!(i in b)) {\n return true;\n }\n }\n for (const i in b) {\n if (a[i] !== b[i]) {\n return true;\n }\n }\n return false;\n};\nexport default shallowDiffers;\n","import { SVGInjector } from '@tanem/svg-injector';\nimport * as PropTypes from 'prop-types';\nimport * as React from 'react';\nimport ownerWindow from './owner-window';\nimport shallowDiffers from './shallow-differs';\nconst svgNamespace = 'http://www.w3.org/2000/svg';\nconst xlinkNamespace = 'http://www.w3.org/1999/xlink';\nexport class ReactSVG extends React.Component {\n static defaultProps = {\n afterInjection: () => undefined,\n beforeInjection: () => undefined,\n desc: '',\n evalScripts: 'never',\n fallback: null,\n httpRequestWithCredentials: false,\n loading: null,\n onError: () => undefined,\n renumerateIRIElements: true,\n title: '',\n useRequestCache: true,\n wrapper: 'div',\n };\n static propTypes = {\n afterInjection: PropTypes.func,\n beforeInjection: PropTypes.func,\n desc: PropTypes.string,\n evalScripts: PropTypes.oneOf(['always', 'once', 'never']),\n fallback: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.object,\n PropTypes.string,\n ]),\n httpRequestWithCredentials: PropTypes.bool,\n loading: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.object,\n PropTypes.string,\n ]),\n onError: PropTypes.func,\n renumerateIRIElements: PropTypes.bool,\n src: PropTypes.string.isRequired,\n title: PropTypes.string,\n useRequestCache: PropTypes.bool,\n wrapper: PropTypes.oneOf(['div', 'span', 'svg']),\n };\n initialState = {\n hasError: false,\n isLoading: true,\n };\n state = this.initialState;\n _isMounted = false;\n reactWrapper;\n nonReactWrapper;\n refCallback = (reactWrapper) => {\n this.reactWrapper = reactWrapper;\n };\n renderSVG() {\n /* istanbul ignore else */\n if (this.reactWrapper instanceof ownerWindow(this.reactWrapper).Node) {\n const { desc, evalScripts, httpRequestWithCredentials, renumerateIRIElements, src, title, useRequestCache, } = this.props;\n /* eslint-disable @typescript-eslint/no-non-null-assertion */\n const onError = this.props.onError;\n const beforeInjection = this.props.beforeInjection;\n const afterInjection = this.props.afterInjection;\n const wrapper = this.props.wrapper;\n let nonReactWrapper;\n let nonReactTarget;\n if (wrapper === 'svg') {\n nonReactWrapper = document.createElementNS(svgNamespace, wrapper);\n nonReactWrapper.setAttribute('xmlns', svgNamespace);\n nonReactWrapper.setAttribute('xmlns:xlink', xlinkNamespace);\n nonReactTarget = document.createElementNS(svgNamespace, wrapper);\n }\n else {\n nonReactWrapper = document.createElement(wrapper);\n nonReactTarget = document.createElement(wrapper);\n }\n nonReactWrapper.appendChild(nonReactTarget);\n nonReactTarget.dataset.src = src;\n this.nonReactWrapper = this.reactWrapper.appendChild(nonReactWrapper);\n const handleError = (error) => {\n this.removeSVG();\n if (!this._isMounted) {\n onError(error);\n return;\n }\n this.setState(() => ({\n hasError: true,\n isLoading: false,\n }), () => {\n onError(error);\n });\n };\n const afterEach = (error, svg) => {\n if (error) {\n handleError(error);\n return;\n }\n // TODO (Tane): It'd be better to cleanly unsubscribe from SVGInjector\n // callbacks instead of tracking a property like this.\n if (this._isMounted) {\n this.setState(() => ({\n isLoading: false,\n }), () => {\n try {\n afterInjection(svg);\n }\n catch (afterInjectionError) {\n handleError(afterInjectionError);\n }\n });\n }\n };\n const beforeEach = (svg) => {\n svg.setAttribute('role', 'img');\n if (desc) {\n const originalDesc = svg.querySelector(':scope > desc');\n if (originalDesc) {\n svg.removeChild(originalDesc);\n }\n const newDesc = document.createElement('desc');\n newDesc.innerHTML = desc;\n svg.prepend(newDesc);\n }\n if (title) {\n const originalTitle = svg.querySelector(':scope > title');\n if (originalTitle) {\n svg.removeChild(originalTitle);\n }\n const newTitle = document.createElement('title');\n newTitle.innerHTML = title;\n svg.prepend(newTitle);\n }\n try {\n beforeInjection(svg);\n }\n catch (error) {\n handleError(error);\n }\n };\n SVGInjector(nonReactTarget, {\n afterEach,\n beforeEach,\n cacheRequests: useRequestCache,\n evalScripts,\n httpRequestWithCredentials,\n renumerateIRIElements,\n });\n }\n }\n removeSVG() {\n if (this.nonReactWrapper?.parentNode) {\n this.nonReactWrapper.parentNode.removeChild(this.nonReactWrapper);\n this.nonReactWrapper = null;\n }\n }\n componentDidMount() {\n this._isMounted = true;\n this.renderSVG();\n }\n componentDidUpdate(prevProps) {\n if (shallowDiffers({ ...prevProps }, this.props)) {\n this.setState(() => this.initialState, () => {\n this.removeSVG();\n this.renderSVG();\n });\n }\n }\n componentWillUnmount() {\n this._isMounted = false;\n this.removeSVG();\n }\n render() {\n /* eslint-disable @typescript-eslint/no-unused-vars */\n const { afterInjection, beforeInjection, desc, evalScripts, fallback: Fallback, httpRequestWithCredentials, loading: Loading, renumerateIRIElements, src, title, useRequestCache, wrapper, ...rest } = this.props;\n /* eslint-enable @typescript-eslint/no-unused-vars */\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const Wrapper = wrapper;\n return (React.createElement(Wrapper, { ...rest, ref: this.refCallback, ...(wrapper === 'svg'\n ? {\n xmlns: svgNamespace,\n xmlnsXlink: xlinkNamespace,\n }\n : {}) },\n this.state.isLoading && Loading && React.createElement(Loading, null),\n this.state.hasError && Fallback && React.createElement(Fallback, null)));\n }\n}\n"],"names":["ownerWindow","node","ownerDocument","document","defaultView","window","shallowDiffers","a","b","i","svgNamespace","xlinkNamespace","ReactSVG","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","this","concat","initialState","hasError","isLoading","state","_isMounted","reactWrapper","nonReactWrapper","refCallback","_inheritsLoose","_proto","prototype","renderSVG","_this2","Node","nonReactTarget","_this$props","props","desc","evalScripts","httpRequestWithCredentials","renumerateIRIElements","src","title","useRequestCache","onError","beforeInjection","afterInjection","wrapper","createElementNS","setAttribute","createElement","appendChild","dataset","handleError","error","removeSVG","setState","SVGInjector","afterEach","svg","afterInjectionError","beforeEach","originalDesc","querySelector","removeChild","newDesc","innerHTML","prepend","originalTitle","newTitle","cacheRequests","_this$nonReactWrapper","parentNode","componentDidMount","componentDidUpdate","prevProps","_this3","componentWillUnmount","render","_this$props2","Fallback","fallback","Loading","loading","rest","_objectWithoutPropertiesLoose","_excluded","React","ref","xmlns","xmlnsXlink","Component","defaultProps"],"mappings":"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"}
|
package/dist/react-svg.esm.js
CHANGED
|
@@ -26,7 +26,7 @@ var shallowDiffers = function shallowDiffers(a, b) {
|
|
|
26
26
|
return false;
|
|
27
27
|
};
|
|
28
28
|
|
|
29
|
-
var _excluded = ["afterInjection", "beforeInjection", "evalScripts", "fallback", "httpRequestWithCredentials", "loading", "renumerateIRIElements", "src", "useRequestCache", "wrapper"];
|
|
29
|
+
var _excluded = ["afterInjection", "beforeInjection", "desc", "evalScripts", "fallback", "httpRequestWithCredentials", "loading", "renumerateIRIElements", "src", "title", "useRequestCache", "wrapper"];
|
|
30
30
|
var svgNamespace = 'http://www.w3.org/2000/svg';
|
|
31
31
|
var xlinkNamespace = 'http://www.w3.org/1999/xlink';
|
|
32
32
|
var ReactSVG = /*#__PURE__*/function (_React$Component) {
|
|
@@ -56,10 +56,12 @@ var ReactSVG = /*#__PURE__*/function (_React$Component) {
|
|
|
56
56
|
/* istanbul ignore else */
|
|
57
57
|
if (this.reactWrapper instanceof ownerWindow(this.reactWrapper).Node) {
|
|
58
58
|
var _this$props = this.props,
|
|
59
|
+
desc = _this$props.desc,
|
|
59
60
|
evalScripts = _this$props.evalScripts,
|
|
60
61
|
httpRequestWithCredentials = _this$props.httpRequestWithCredentials,
|
|
61
62
|
renumerateIRIElements = _this$props.renumerateIRIElements,
|
|
62
63
|
src = _this$props.src,
|
|
64
|
+
title = _this$props.title,
|
|
63
65
|
useRequestCache = _this$props.useRequestCache;
|
|
64
66
|
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
65
67
|
var onError = this.props.onError;
|
|
@@ -117,6 +119,25 @@ var ReactSVG = /*#__PURE__*/function (_React$Component) {
|
|
|
117
119
|
}
|
|
118
120
|
};
|
|
119
121
|
var beforeEach = function beforeEach(svg) {
|
|
122
|
+
svg.setAttribute('role', 'img');
|
|
123
|
+
if (desc) {
|
|
124
|
+
var originalDesc = svg.querySelector(':scope > desc');
|
|
125
|
+
if (originalDesc) {
|
|
126
|
+
svg.removeChild(originalDesc);
|
|
127
|
+
}
|
|
128
|
+
var newDesc = document.createElement('desc');
|
|
129
|
+
newDesc.innerHTML = desc;
|
|
130
|
+
svg.prepend(newDesc);
|
|
131
|
+
}
|
|
132
|
+
if (title) {
|
|
133
|
+
var originalTitle = svg.querySelector(':scope > title');
|
|
134
|
+
if (originalTitle) {
|
|
135
|
+
svg.removeChild(originalTitle);
|
|
136
|
+
}
|
|
137
|
+
var newTitle = document.createElement('title');
|
|
138
|
+
newTitle.innerHTML = title;
|
|
139
|
+
svg.prepend(newTitle);
|
|
140
|
+
}
|
|
120
141
|
try {
|
|
121
142
|
beforeInjection(svg);
|
|
122
143
|
} catch (error) {
|
|
@@ -164,12 +185,14 @@ var ReactSVG = /*#__PURE__*/function (_React$Component) {
|
|
|
164
185
|
var _this$props2 = this.props;
|
|
165
186
|
_this$props2.afterInjection;
|
|
166
187
|
_this$props2.beforeInjection;
|
|
188
|
+
_this$props2.desc;
|
|
167
189
|
_this$props2.evalScripts;
|
|
168
190
|
var Fallback = _this$props2.fallback;
|
|
169
191
|
_this$props2.httpRequestWithCredentials;
|
|
170
192
|
var Loading = _this$props2.loading;
|
|
171
193
|
_this$props2.renumerateIRIElements;
|
|
172
194
|
_this$props2.src;
|
|
195
|
+
_this$props2.title;
|
|
173
196
|
_this$props2.useRequestCache;
|
|
174
197
|
var wrapper = _this$props2.wrapper,
|
|
175
198
|
rest = _objectWithoutPropertiesLoose(_this$props2, _excluded);
|
|
@@ -192,6 +215,7 @@ ReactSVG.defaultProps = {
|
|
|
192
215
|
beforeInjection: function beforeInjection() {
|
|
193
216
|
return undefined;
|
|
194
217
|
},
|
|
218
|
+
desc: '',
|
|
195
219
|
evalScripts: 'never',
|
|
196
220
|
fallback: null,
|
|
197
221
|
httpRequestWithCredentials: false,
|
|
@@ -200,12 +224,14 @@ ReactSVG.defaultProps = {
|
|
|
200
224
|
return undefined;
|
|
201
225
|
},
|
|
202
226
|
renumerateIRIElements: true,
|
|
227
|
+
title: '',
|
|
203
228
|
useRequestCache: true,
|
|
204
229
|
wrapper: 'div'
|
|
205
230
|
};
|
|
206
231
|
ReactSVG.propTypes = {
|
|
207
232
|
afterInjection: PropTypes.func,
|
|
208
233
|
beforeInjection: PropTypes.func,
|
|
234
|
+
desc: PropTypes.string,
|
|
209
235
|
evalScripts: PropTypes.oneOf(['always', 'once', 'never']),
|
|
210
236
|
fallback: PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.string]),
|
|
211
237
|
httpRequestWithCredentials: PropTypes.bool,
|
|
@@ -213,6 +239,7 @@ ReactSVG.propTypes = {
|
|
|
213
239
|
onError: PropTypes.func,
|
|
214
240
|
renumerateIRIElements: PropTypes.bool,
|
|
215
241
|
src: PropTypes.string.isRequired,
|
|
242
|
+
title: PropTypes.string,
|
|
216
243
|
useRequestCache: PropTypes.bool,
|
|
217
244
|
wrapper: PropTypes.oneOf(['div', 'span', 'svg'])
|
|
218
245
|
} ;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react-svg.esm.js","sources":["../compiled/owner-window.js","../compiled/shallow-differs.js","../compiled/ReactSVG.js"],"sourcesContent":["// Hat-tip: https://github.com/mui/material-ui/tree/master/packages/mui-utils/src.\nconst ownerWindow = (node) => {\n const doc = node?.ownerDocument || document;\n return doc.defaultView || window;\n};\nexport default ownerWindow;\n","// Hat-tip: https://github.com/developit/preact-compat/blob/master/src/index.js#L402.\nconst shallowDiffers = (a, b) => {\n for (const i in a) {\n if (!(i in b)) {\n return true;\n }\n }\n for (const i in b) {\n if (a[i] !== b[i]) {\n return true;\n }\n }\n return false;\n};\nexport default shallowDiffers;\n","import { SVGInjector } from '@tanem/svg-injector';\nimport * as PropTypes from 'prop-types';\nimport * as React from 'react';\nimport ownerWindow from './owner-window';\nimport shallowDiffers from './shallow-differs';\nconst svgNamespace = 'http://www.w3.org/2000/svg';\nconst xlinkNamespace = 'http://www.w3.org/1999/xlink';\nexport class ReactSVG extends React.Component {\n static defaultProps = {\n afterInjection: () => undefined,\n beforeInjection: () => undefined,\n evalScripts: 'never',\n fallback: null,\n httpRequestWithCredentials: false,\n loading: null,\n onError: () => undefined,\n renumerateIRIElements: true,\n useRequestCache: true,\n wrapper: 'div',\n };\n static propTypes = {\n afterInjection: PropTypes.func,\n beforeInjection: PropTypes.func,\n evalScripts: PropTypes.oneOf(['always', 'once', 'never']),\n fallback: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.object,\n PropTypes.string,\n ]),\n httpRequestWithCredentials: PropTypes.bool,\n loading: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.object,\n PropTypes.string,\n ]),\n onError: PropTypes.func,\n renumerateIRIElements: PropTypes.bool,\n src: PropTypes.string.isRequired,\n useRequestCache: PropTypes.bool,\n wrapper: PropTypes.oneOf(['div', 'span', 'svg']),\n };\n initialState = {\n hasError: false,\n isLoading: true,\n };\n state = this.initialState;\n _isMounted = false;\n reactWrapper;\n nonReactWrapper;\n refCallback = (reactWrapper) => {\n this.reactWrapper = reactWrapper;\n };\n renderSVG() {\n /* istanbul ignore else */\n if (this.reactWrapper instanceof ownerWindow(this.reactWrapper).Node) {\n const { evalScripts, httpRequestWithCredentials, renumerateIRIElements, src, useRequestCache, } = this.props;\n /* eslint-disable @typescript-eslint/no-non-null-assertion */\n const onError = this.props.onError;\n const beforeInjection = this.props.beforeInjection;\n const afterInjection = this.props.afterInjection;\n const wrapper = this.props.wrapper;\n let nonReactWrapper;\n let nonReactTarget;\n if (wrapper === 'svg') {\n nonReactWrapper = document.createElementNS(svgNamespace, wrapper);\n nonReactWrapper.setAttribute('xmlns', svgNamespace);\n nonReactWrapper.setAttribute('xmlns:xlink', xlinkNamespace);\n nonReactTarget = document.createElementNS(svgNamespace, wrapper);\n }\n else {\n nonReactWrapper = document.createElement(wrapper);\n nonReactTarget = document.createElement(wrapper);\n }\n nonReactWrapper.appendChild(nonReactTarget);\n nonReactTarget.dataset.src = src;\n this.nonReactWrapper = this.reactWrapper.appendChild(nonReactWrapper);\n const handleError = (error) => {\n this.removeSVG();\n if (!this._isMounted) {\n onError(error);\n return;\n }\n this.setState(() => ({\n hasError: true,\n isLoading: false,\n }), () => {\n onError(error);\n });\n };\n const afterEach = (error, svg) => {\n if (error) {\n handleError(error);\n return;\n }\n // TODO (Tane): It'd be better to cleanly unsubscribe from SVGInjector\n // callbacks instead of tracking a property like this.\n if (this._isMounted) {\n this.setState(() => ({\n isLoading: false,\n }), () => {\n try {\n afterInjection(svg);\n }\n catch (afterInjectionError) {\n handleError(afterInjectionError);\n }\n });\n }\n };\n const beforeEach = (svg) => {\n try {\n beforeInjection(svg);\n }\n catch (error) {\n handleError(error);\n }\n };\n SVGInjector(nonReactTarget, {\n afterEach,\n beforeEach,\n cacheRequests: useRequestCache,\n evalScripts,\n httpRequestWithCredentials,\n renumerateIRIElements,\n });\n }\n }\n removeSVG() {\n if (this.nonReactWrapper?.parentNode) {\n this.nonReactWrapper.parentNode.removeChild(this.nonReactWrapper);\n this.nonReactWrapper = null;\n }\n }\n componentDidMount() {\n this._isMounted = true;\n this.renderSVG();\n }\n componentDidUpdate(prevProps) {\n if (shallowDiffers({ ...prevProps }, this.props)) {\n this.setState(() => this.initialState, () => {\n this.removeSVG();\n this.renderSVG();\n });\n }\n }\n componentWillUnmount() {\n this._isMounted = false;\n this.removeSVG();\n }\n render() {\n /* eslint-disable @typescript-eslint/no-unused-vars */\n const { afterInjection, beforeInjection, evalScripts, fallback: Fallback, httpRequestWithCredentials, loading: Loading, renumerateIRIElements, src, useRequestCache, wrapper, ...rest } = this.props;\n /* eslint-enable @typescript-eslint/no-unused-vars */\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const Wrapper = wrapper;\n return (React.createElement(Wrapper, { ...rest, ref: this.refCallback, ...(wrapper === 'svg'\n ? {\n xmlns: svgNamespace,\n xmlnsXlink: xlinkNamespace,\n }\n : {}) },\n this.state.isLoading && Loading && React.createElement(Loading, null),\n this.state.hasError && Fallback && React.createElement(Fallback, null)));\n }\n}\n"],"names":["ownerWindow","node","doc","ownerDocument","document","defaultView","window","shallowDiffers","a","b","i","svgNamespace","xlinkNamespace","ReactSVG","initialState","hasError","isLoading","state","_isMounted","reactWrapper","nonReactWrapper","refCallback","renderSVG","Node","props","evalScripts","httpRequestWithCredentials","renumerateIRIElements","src","useRequestCache","onError","beforeInjection","afterInjection","wrapper","nonReactTarget","createElementNS","setAttribute","createElement","appendChild","dataset","handleError","error","removeSVG","setState","afterEach","svg","afterInjectionError","beforeEach","SVGInjector","cacheRequests","parentNode","removeChild","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","render","Fallback","fallback","Loading","loading","rest","Wrapper","React","ref","xmlns","xmlnsXlink","Component","defaultProps","undefined","propTypes","PropTypes","func","oneOf","oneOfType","object","string","bool","isRequired"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"react-svg.esm.js","sources":["../compiled/owner-window.js","../compiled/shallow-differs.js","../compiled/ReactSVG.js"],"sourcesContent":["// Hat-tip: https://github.com/mui/material-ui/tree/master/packages/mui-utils/src.\nconst ownerWindow = (node) => {\n const doc = node?.ownerDocument || document;\n return doc.defaultView || window;\n};\nexport default ownerWindow;\n","// Hat-tip: https://github.com/developit/preact-compat/blob/master/src/index.js#L402.\nconst shallowDiffers = (a, b) => {\n for (const i in a) {\n if (!(i in b)) {\n return true;\n }\n }\n for (const i in b) {\n if (a[i] !== b[i]) {\n return true;\n }\n }\n return false;\n};\nexport default shallowDiffers;\n","import { SVGInjector } from '@tanem/svg-injector';\nimport * as PropTypes from 'prop-types';\nimport * as React from 'react';\nimport ownerWindow from './owner-window';\nimport shallowDiffers from './shallow-differs';\nconst svgNamespace = 'http://www.w3.org/2000/svg';\nconst xlinkNamespace = 'http://www.w3.org/1999/xlink';\nexport class ReactSVG extends React.Component {\n static defaultProps = {\n afterInjection: () => undefined,\n beforeInjection: () => undefined,\n desc: '',\n evalScripts: 'never',\n fallback: null,\n httpRequestWithCredentials: false,\n loading: null,\n onError: () => undefined,\n renumerateIRIElements: true,\n title: '',\n useRequestCache: true,\n wrapper: 'div',\n };\n static propTypes = {\n afterInjection: PropTypes.func,\n beforeInjection: PropTypes.func,\n desc: PropTypes.string,\n evalScripts: PropTypes.oneOf(['always', 'once', 'never']),\n fallback: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.object,\n PropTypes.string,\n ]),\n httpRequestWithCredentials: PropTypes.bool,\n loading: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.object,\n PropTypes.string,\n ]),\n onError: PropTypes.func,\n renumerateIRIElements: PropTypes.bool,\n src: PropTypes.string.isRequired,\n title: PropTypes.string,\n useRequestCache: PropTypes.bool,\n wrapper: PropTypes.oneOf(['div', 'span', 'svg']),\n };\n initialState = {\n hasError: false,\n isLoading: true,\n };\n state = this.initialState;\n _isMounted = false;\n reactWrapper;\n nonReactWrapper;\n refCallback = (reactWrapper) => {\n this.reactWrapper = reactWrapper;\n };\n renderSVG() {\n /* istanbul ignore else */\n if (this.reactWrapper instanceof ownerWindow(this.reactWrapper).Node) {\n const { desc, evalScripts, httpRequestWithCredentials, renumerateIRIElements, src, title, useRequestCache, } = this.props;\n /* eslint-disable @typescript-eslint/no-non-null-assertion */\n const onError = this.props.onError;\n const beforeInjection = this.props.beforeInjection;\n const afterInjection = this.props.afterInjection;\n const wrapper = this.props.wrapper;\n let nonReactWrapper;\n let nonReactTarget;\n if (wrapper === 'svg') {\n nonReactWrapper = document.createElementNS(svgNamespace, wrapper);\n nonReactWrapper.setAttribute('xmlns', svgNamespace);\n nonReactWrapper.setAttribute('xmlns:xlink', xlinkNamespace);\n nonReactTarget = document.createElementNS(svgNamespace, wrapper);\n }\n else {\n nonReactWrapper = document.createElement(wrapper);\n nonReactTarget = document.createElement(wrapper);\n }\n nonReactWrapper.appendChild(nonReactTarget);\n nonReactTarget.dataset.src = src;\n this.nonReactWrapper = this.reactWrapper.appendChild(nonReactWrapper);\n const handleError = (error) => {\n this.removeSVG();\n if (!this._isMounted) {\n onError(error);\n return;\n }\n this.setState(() => ({\n hasError: true,\n isLoading: false,\n }), () => {\n onError(error);\n });\n };\n const afterEach = (error, svg) => {\n if (error) {\n handleError(error);\n return;\n }\n // TODO (Tane): It'd be better to cleanly unsubscribe from SVGInjector\n // callbacks instead of tracking a property like this.\n if (this._isMounted) {\n this.setState(() => ({\n isLoading: false,\n }), () => {\n try {\n afterInjection(svg);\n }\n catch (afterInjectionError) {\n handleError(afterInjectionError);\n }\n });\n }\n };\n const beforeEach = (svg) => {\n svg.setAttribute('role', 'img');\n if (desc) {\n const originalDesc = svg.querySelector(':scope > desc');\n if (originalDesc) {\n svg.removeChild(originalDesc);\n }\n const newDesc = document.createElement('desc');\n newDesc.innerHTML = desc;\n svg.prepend(newDesc);\n }\n if (title) {\n const originalTitle = svg.querySelector(':scope > title');\n if (originalTitle) {\n svg.removeChild(originalTitle);\n }\n const newTitle = document.createElement('title');\n newTitle.innerHTML = title;\n svg.prepend(newTitle);\n }\n try {\n beforeInjection(svg);\n }\n catch (error) {\n handleError(error);\n }\n };\n SVGInjector(nonReactTarget, {\n afterEach,\n beforeEach,\n cacheRequests: useRequestCache,\n evalScripts,\n httpRequestWithCredentials,\n renumerateIRIElements,\n });\n }\n }\n removeSVG() {\n if (this.nonReactWrapper?.parentNode) {\n this.nonReactWrapper.parentNode.removeChild(this.nonReactWrapper);\n this.nonReactWrapper = null;\n }\n }\n componentDidMount() {\n this._isMounted = true;\n this.renderSVG();\n }\n componentDidUpdate(prevProps) {\n if (shallowDiffers({ ...prevProps }, this.props)) {\n this.setState(() => this.initialState, () => {\n this.removeSVG();\n this.renderSVG();\n });\n }\n }\n componentWillUnmount() {\n this._isMounted = false;\n this.removeSVG();\n }\n render() {\n /* eslint-disable @typescript-eslint/no-unused-vars */\n const { afterInjection, beforeInjection, desc, evalScripts, fallback: Fallback, httpRequestWithCredentials, loading: Loading, renumerateIRIElements, src, title, useRequestCache, wrapper, ...rest } = this.props;\n /* eslint-enable @typescript-eslint/no-unused-vars */\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const Wrapper = wrapper;\n return (React.createElement(Wrapper, { ...rest, ref: this.refCallback, ...(wrapper === 'svg'\n ? {\n xmlns: svgNamespace,\n xmlnsXlink: xlinkNamespace,\n }\n : {}) },\n this.state.isLoading && Loading && React.createElement(Loading, null),\n this.state.hasError && Fallback && React.createElement(Fallback, null)));\n }\n}\n"],"names":["ownerWindow","node","doc","ownerDocument","document","defaultView","window","shallowDiffers","a","b","i","svgNamespace","xlinkNamespace","ReactSVG","initialState","hasError","isLoading","state","_isMounted","reactWrapper","nonReactWrapper","refCallback","renderSVG","Node","props","desc","evalScripts","httpRequestWithCredentials","renumerateIRIElements","src","title","useRequestCache","onError","beforeInjection","afterInjection","wrapper","nonReactTarget","createElementNS","setAttribute","createElement","appendChild","dataset","handleError","error","removeSVG","setState","afterEach","svg","afterInjectionError","beforeEach","originalDesc","querySelector","removeChild","newDesc","innerHTML","prepend","originalTitle","newTitle","SVGInjector","cacheRequests","parentNode","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","render","Fallback","fallback","Loading","loading","rest","Wrapper","React","ref","xmlns","xmlnsXlink","Component","defaultProps","undefined","propTypes","PropTypes","func","string","oneOf","oneOfType","object","bool","isRequired"],"mappings":"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"}
|