12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- 'use strict';
- exports.type = 'perItem';
- exports.active = false;
- exports.description = 'removes width and height in presence of viewBox (opposite to removeViewBox, disable it first)';
- /**
- * Remove width/height attributes and add the viewBox attribute if it's missing
- *
- * @example
- * <svg width="100" height="50" />
- * ↓
- * <svg viewBox="0 0 100 50" />
- *
- * @param {Object} item current iteration item
- * @return {Boolean} if true, with and height will be filtered out
- *
- * @author Benny Schudel
- */
- exports.fn = function(item) {
- if (item.isElem('svg')) {
- if (item.hasAttr('viewBox')) {
- item.removeAttr('width');
- item.removeAttr('height');
- } else if (
- item.hasAttr('width') &&
- item.hasAttr('height') &&
- !isNaN(Number(item.attr('width').value)) &&
- !isNaN(Number(item.attr('height').value))
- ) {
- item.addAttr({
- name: 'viewBox',
- value:
- '0 0 ' +
- Number(item.attr('width').value) +
- ' ' +
- Number(item.attr('height').value),
- prefix: '',
- local: 'viewBox'
- });
- item.removeAttr('width');
- item.removeAttr('height');
- }
- }
- };
|