| import BrowserSprite from 'svg-baker-runtime/src/browser-sprite'; | 
| import domready from 'domready'; | 
|   | 
| const spriteNodeId = '__SVG_SPRITE_NODE__'; | 
| const spriteGlobalVarName = '__SVG_SPRITE__'; | 
| const isSpriteExists = !!window[spriteGlobalVarName]; | 
|   | 
| // eslint-disable-next-line import/no-mutable-exports | 
| let sprite; | 
|   | 
| if (isSpriteExists) { | 
|   sprite = window[spriteGlobalVarName]; | 
| } else { | 
|   sprite = new BrowserSprite({ | 
|     attrs: { | 
|       id: spriteNodeId, | 
|       'aria-hidden': 'true' | 
|     } | 
|   }); | 
|   window[spriteGlobalVarName] = sprite; | 
| } | 
|   | 
| const loadSprite = () => { | 
|   /** | 
|    * Check for page already contains sprite node | 
|    * If found - attach to and reuse it's content | 
|    * If not - render and mount the new sprite | 
|    */ | 
|   const existing = document.getElementById(spriteNodeId); | 
|   | 
|   if (existing) { | 
|     sprite.attach(existing); | 
|   } else { | 
|     sprite.mount(document.body, true); | 
|   } | 
| }; | 
|   | 
| if (document.body) { | 
|   loadSprite(); | 
| } else { | 
|   domready(loadSprite); | 
| } | 
|   | 
| export default sprite; |