| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 | 
							- 'use strict';
 
- exports.type = 'perItem';
 
- exports.active = true;
 
- exports.description = 'removes useless stroke and fill attributes';
 
- exports.params = {
 
-     stroke: true,
 
-     fill: true,
 
-     removeNone: false,
 
-     hasStyleOrScript: false
 
- };
 
- var shape = require('./_collections').elemsGroups.shape,
 
-     regStrokeProps = /^stroke/,
 
-     regFillProps = /^fill-/,
 
-     styleOrScript = ['style', 'script'];
 
- /**
 
-  * Remove useless stroke and fill attrs.
 
-  *
 
-  * @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.isElem(styleOrScript)) {
 
-         params.hasStyleOrScript = true;
 
-     }
 
-     if (!params.hasStyleOrScript && item.isElem(shape) && !item.computedAttr('id')) {
 
-         var stroke = params.stroke && item.computedAttr('stroke'),
 
-             fill = params.fill && !item.computedAttr('fill', 'none');
 
-         // remove stroke*
 
-         if (
 
-             params.stroke &&
 
-             (!stroke ||
 
-                 stroke == 'none' ||
 
-                 item.computedAttr('stroke-opacity', '0') ||
 
-                 item.computedAttr('stroke-width', '0')
 
-             )
 
-         ) {
 
-             var parentStroke = item.parentNode.computedAttr('stroke'),
 
-                 declineStroke = parentStroke && parentStroke != 'none';
 
-             item.eachAttr(function(attr) {
 
-                 if (regStrokeProps.test(attr.name)) {
 
-                     item.removeAttr(attr.name);
 
-                 }
 
-             });
 
-             if (declineStroke) item.addAttr({
 
-                 name: 'stroke',
 
-                 value: 'none',
 
-                 prefix: '',
 
-                 local: 'stroke'
 
-             });
 
-         }
 
-         // remove fill*
 
-         if (
 
-             params.fill &&
 
-             (!fill || item.computedAttr('fill-opacity', '0'))
 
-         ) {
 
-             item.eachAttr(function(attr) {
 
-                 if (regFillProps.test(attr.name)) {
 
-                     item.removeAttr(attr.name);
 
-                 }
 
-             });
 
-             if (fill) {
 
-                 if (item.hasAttr('fill'))
 
-                     item.attr('fill').value = 'none';
 
-                 else
 
-                     item.addAttr({
 
-                         name: 'fill',
 
-                         value: 'none',
 
-                         prefix: '',
 
-                         local: 'fill'
 
-                     });
 
-             }
 
-         }
 
-         if (params.removeNone && 
 
-             (!stroke || item.hasAttr('stroke') && item.attr('stroke').value=='none') &&
 
-             (!fill || item.hasAttr('fill') && item.attr('fill').value=='none')) {
 
-             return false;
 
-         }
 
-     }
 
- };
 
 
  |