diff options
Diffstat (limited to 'src/utils/utils.js')
-rw-r--r-- | src/utils/utils.js | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/utils/utils.js b/src/utils/utils.js index 0d297ec..2438431 100644 --- a/src/utils/utils.js +++ b/src/utils/utils.js @@ -124,3 +124,19 @@ export function getOrigin(o, element) { const descriptiveElements = new Set(['desc', 'metadata', 'title']) export const isDescriptive = (element) => descriptiveElements.has(element.nodeName) + +export const writeDataToDom = (element, data, defaults = {}) => { + const cloned = { ...data } + + for (const key in cloned) { + if (cloned[key].valueOf() === defaults[key]) { + delete cloned[key] + } + } + + if (Object.keys(cloned).length) { + element.node.setAttribute('svgjs:data', JSON.stringify(cloned)) // see #428 + } else { + element.node.removeAttribute('svgjs:data') + } +} |