| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 | 'use strict';exports.type = 'perItem';exports.active = false;exports.description = 'removes arbitrary elements by ID or className (disabled by default)';exports.params = {    id: [],    class: []};/** * Remove arbitrary SVG elements by ID or className. * * @param id *   examples: * *     > single: remove element with ID of `elementID` *     --- *     removeElementsByAttr: *       id: 'elementID' * *     > list: remove multiple elements by ID *     --- *     removeElementsByAttr: *       id: *         - 'elementID' *         - 'anotherID' * * @param class *   examples: * *     > single: remove all elements with class of `elementClass` *     --- *     removeElementsByAttr: *       class: 'elementClass' * *     > list: remove all elements with class of `elementClass` or `anotherClass` *     --- *     removeElementsByAttr: *       class: *         - 'elementClass' *         - 'anotherClass' * * @param {Object} item current iteration item * @param {Object} params plugin params * @return {Boolean} if false, item will be filtered out * * @author Eli Dupuis (@elidupuis) */exports.fn = function(item, params) {    var elemId, elemClass;    // wrap params in an array if not already    ['id', 'class'].forEach(function(key) {        if (!Array.isArray(params[key])) {            params[key] = [ params[key] ];        }    });    // abort if current item is no an element    if (!item.isElem()) {        return;    }    // remove element if it's `id` matches configured `id` params    elemId = item.attr('id');    if (elemId) {        return params.id.indexOf(elemId.value) === -1;    }    // remove element if it's `class` contains any of the configured `class` params    elemClass = item.attr('class');    if (elemClass) {        var hasClassRegex = new RegExp(params.class.join('|'));        return !hasClassRegex.test(elemClass.value);    }};
 |