| 'use strict'; |
| |
| exports.type = 'perItem'; |
| |
| exports.active = true; |
| |
| exports.description = 'removes empty <text> elements'; |
| |
| exports.params = { |
| text: true, |
| tspan: true, |
| tref: true |
| }; |
| |
| /** |
| * Remove empty Text elements. |
| * |
| * @see http://www.w3.org/TR/SVG/text.html |
| * |
| * @example |
| * Remove empty text element: |
| * <text/> |
| * |
| * Remove empty tspan element: |
| * <tspan/> |
| * |
| * Remove tref with empty xlink:href attribute: |
| * <tref xlink:href=""/> |
| * |
| * @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) { |
| |
| // Remove empty text element |
| if ( |
| params.text && |
| item.isElem('text') && |
| item.isEmpty() |
| ) return false; |
| |
| // Remove empty tspan element |
| if ( |
| params.tspan && |
| item.isElem('tspan') && |
| item.isEmpty() |
| ) return false; |
| |
| // Remove tref with empty xlink:href attribute |
| if ( |
| params.tref && |
| item.isElem('tref') && |
| !item.hasAttrLocal('href') |
| ) return false; |
| |
| }; |