'use strict'; exports.type = 'perItem'; exports.active = true; exports.description = 'removes empty elements'; exports.params = { text: true, tspan: true, tref: true, }; /** * Remove empty Text elements. * * @see https://www.w3.org/TR/SVG11/text.html * * @example * Remove empty text element: * * * Remove empty tspan element: * * * Remove tref with empty xlink:href attribute: * * * @param {Object} item current iteration item * @param {Object} params plugin params * @return {Boolean} if false, item will be filtered out * * @author Kir Belevich */ exports.fn = function (item, params) { if (item.type === 'element') { // Remove empty text element if (params.text && item.name === 'text' && item.children.length === 0) { return false; } // Remove empty tspan element if (params.tspan && item.name === 'tspan' && item.children.length === 0) { return false; } // Remove tref with empty xlink:href attribute if ( params.tref && item.name === 'tref' && item.attributes['xlink:href'] == null ) { return false; } } };