1 | import BrowserSprite from 'svg-baker-runtime/src/browser-sprite';
|
2 | import domready from 'domready';
|
3 |
|
4 | const spriteNodeId = '__SVG_SPRITE_NODE__';
|
5 | const spriteGlobalVarName = '__SVG_SPRITE__';
|
6 | const isSpriteExists = !!window[spriteGlobalVarName];
|
7 |
|
8 |
|
9 | let sprite;
|
10 |
|
11 | if (isSpriteExists) {
|
12 | sprite = window[spriteGlobalVarName];
|
13 | } else {
|
14 | sprite = new BrowserSprite({
|
15 | attrs: {
|
16 | id: spriteNodeId,
|
17 | 'aria-hidden': 'true'
|
18 | }
|
19 | });
|
20 | window[spriteGlobalVarName] = sprite;
|
21 | }
|
22 |
|
23 | const loadSprite = () => {
|
24 | |
25 |
|
26 |
|
27 |
|
28 |
|
29 | const existing = document.getElementById(spriteNodeId);
|
30 |
|
31 | if (existing) {
|
32 | sprite.attach(existing);
|
33 | } else {
|
34 | sprite.mount(document.body, true);
|
35 | }
|
36 | };
|
37 |
|
38 | if (document.body) {
|
39 | loadSprite();
|
40 | } else {
|
41 | domready(loadSprite);
|
42 | }
|
43 |
|
44 | export default sprite;
|