Blame view

node_modules/svgo/plugins/removeNonInheritableGroupAttrs.js 1.08 KB
aaac7fed   liuqimichale   add
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
  'use strict';
  
  exports.type = 'perItem';
  
  exports.active = true;
  
  exports.description = 'removes non-inheritable group’s presentational attributes';
  
  var inheritableAttrs = require('./_collections').inheritableAttrs,
      attrsGroups = require('./_collections').attrsGroups,
      excludedAttrs = ['display', 'opacity'];
  
  /**
   * Remove non-inheritable group's "presentation" attributes.
   *
   * @param {Object} item current iteration item
   * @return {Boolean} if false, item will be filtered out
   *
   * @author Kir Belevich
   */
  exports.fn = function(item) {
  
      if (item.isElem('g')) {
  
          item.eachAttr(function(attr) {
              if (
                  ~attrsGroups.presentation.indexOf(attr.name) &&
                  ~attrsGroups.graphicalEvent.indexOf(attr.name) &&
                  ~attrsGroups.core.indexOf(attr.name) &&
                  ~attrsGroups.conditionalProcessing.indexOf(attr.name) &&
                  !~excludedAttrs.indexOf(attr.name) &&
                  !~inheritableAttrs.indexOf(attr.name)
              ) {
                  item.removeAttr(attr.name);
              }
          });
  
      }
  
  };