�PNG  IHDR��;���IDATx��ܻn�0���K�� �)(�pA��� ���7�LeG{�� �§㻢|��ذaÆ 6lذaÆ 6lذaÆ 6lom��$^�y���ذag�5bÆ 6lذaÆ 6lذa{���� 6lذaÆ �`����}H�Fkm�,�m����Ӫ���ô�ô!� �x�|'ܢ˟;�E:���9�&ᶒ�}�{�v]�n&�6� �h��_��t�ڠ͵-ҫ���Z;��Z$�.�P���k�ž)�!��o���>}l�eQfJ�T��u і���چ��\��X=8��Rن4`Vw�l�>����n�G�^��i�s��"ms�$�u��i��?w�bs[m�6�K4���O���.�4��%����/����b�C%��t ��M�ז� �-l�G6�mrz2���s�%�9��s@���-�k�9�=���)������k�B5����\��+͂�Zsٲ ��Rn��~G���R���C����� �wIcI��n7jJ���hۛNCS|���j0��8y�iHKֶۛ�k�Ɉ+;Sz������L/��F�*\��Ԕ�#"5��m�2��[S��������=�g��n�a�P�e�ғ�L�� lذaÆ 6l�^k��̱aÆ 6lذaÆ 6lذa;���� �_��ذaÆ 6lذaÆ 6lذaÆ ���R���IEND�B` '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) { // 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.type !== 'element') { return; } // remove element if it's `id` matches configured `id` params if (item.attributes.id != null && params.id.length !== 0) { return params.id.includes(item.attributes.id) === false; } // remove element if it's `class` contains any of the configured `class` params if (item.attributes.class && params.class.length !== 0) { const classList = item.attributes.class.split(' '); return params.class.some((item) => classList.includes(item)) === false; } };