Skip to content

Commit

Permalink
Improved SVG support - Fix #67
Browse files Browse the repository at this point in the history
  • Loading branch information
Guillaume Chau committed Nov 16, 2017
1 parent c5d2d4d commit 7c5d9ec
Showing 1 changed file with 22 additions and 4 deletions.
26 changes: 22 additions & 4 deletions src/utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,22 @@ export function convertToArray (value) {
*/
export function addClasses (el, classes) {
const newClasses = convertToArray(classes)
const classList = convertToArray(el.className)
let classList
if (classList instanceof SVGAnimatedString) {
classList = Array.from(classList)
} else {
classList = convertToArray(el.className)
}
newClasses.forEach((newClass) => {
if (classList.indexOf(newClass) === -1) {
classList.push(newClass)
}
})
el.className = classList.join(' ')
if (el instanceof SVGElement) {
el.setAttribute('class', classList.join(' '))
} else {
el.className = classList.join(' ')
}
}

/**
Expand All @@ -33,12 +42,21 @@ export function addClasses (el, classes) {
*/
export function removeClasses (el, classes) {
const newClasses = convertToArray(classes)
const classList = convertToArray(el.className)
let classList
if (classList instanceof SVGAnimatedString) {
classList = Array.from(classList)
} else {
classList = convertToArray(el.className)
}
newClasses.forEach((newClass) => {
const index = classList.indexOf(newClass)
if (index !== -1) {
classList.splice(index, 1)
}
})
el.className = classList.join(' ')
if (el instanceof SVGElement) {
el.setAttribute('class', classList.join(' '))
} else {
el.className = classList.join(' ')
}
}

0 comments on commit 7c5d9ec

Please sign in to comment.