import { remove, get, set } from 'lodash' const CLASSNAME_PATH = 'properties.className' export function toggleClass (node, name, add) { let className = get(node, CLASSNAME_PATH) if (!className) { set(node, CLASSNAME_PATH, []) className = node.properties.className } if (typeof add === 'boolean') { if (add && !className.includes(name)) { className.push(name) } else if (!add) { remove(className, c => c === name) } } else if (className.includes(name)) { remove(className, c => c === name) } else { className.push(name) } } export function addClass (node, name) { toggleClass(node, name, true) } export function removeClass (node, name) { toggleClass(node, name, false) } export function hasClass (node, name) { let className = get(node, CLASSNAME_PATH, []) return className.includes(name) }