保誠-保戶業務員媒合平台
HelenHuang
2022-06-09 9bdb95c9e34cef640534e5e5a1e2225a80442000
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
var postcss = require('postcss');
var makeFallbackFunction = require('./lib/rules-fabric');
 
module.exports = postcss.plugin('postcss-initial', function (opts) {
  opts = opts || {};
  opts.reset = opts.reset || 'all';
  opts.replace = opts.replace || false;
  var getFallback = makeFallbackFunction(opts.reset === 'inherited');
  var getPropPrevTo = function (prop, decl) {
    var foundPrev = false;
    decl.parent.walkDecls(function (child) {
      if (child.prop === decl.prop && child.value !== decl.value) {
        foundPrev = true;
      }
    });
    return foundPrev;
  };
  return function (css) {
    css.walkDecls(function (decl) {
      if (!/\binitial\b/.test(decl.value)) {
        return;
      }
      var fallBackRules = getFallback(decl.prop, decl.value);
      if (fallBackRules.length === 0) return;
      fallBackRules.forEach(function (rule) {
        if ( !getPropPrevTo(decl.prop, decl) ) {
          decl.cloneBefore(rule);
        }
      });
      if (opts.replace === true) {
        decl.remove();
      }
    });
  };
});