style Dashboard
This commit is contained in:
108
node_modules/postcss-svgo/dist/index.js
generated
vendored
Executable file
108
node_modules/postcss-svgo/dist/index.js
generated
vendored
Executable file
@@ -0,0 +1,108 @@
|
||||
'use strict';
|
||||
|
||||
exports.__esModule = true;
|
||||
|
||||
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
|
||||
|
||||
var _postcss = require('postcss');
|
||||
|
||||
var _postcss2 = _interopRequireDefault(_postcss);
|
||||
|
||||
var _postcssValueParser = require('postcss-value-parser');
|
||||
|
||||
var _postcssValueParser2 = _interopRequireDefault(_postcssValueParser);
|
||||
|
||||
var _svgo = require('svgo');
|
||||
|
||||
var _svgo2 = _interopRequireDefault(_svgo);
|
||||
|
||||
var _isSvg = require('is-svg');
|
||||
|
||||
var _isSvg2 = _interopRequireDefault(_isSvg);
|
||||
|
||||
var _url = require('./lib/url');
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
var PLUGIN = 'postcss-svgo';
|
||||
var dataURI = /data:image\/svg\+xml(;(charset=)?utf-8)?,/;
|
||||
|
||||
function minifyPromise(svgo, decl, opts) {
|
||||
var promises = [];
|
||||
|
||||
decl.value = (0, _postcssValueParser2.default)(decl.value).walk(function (node) {
|
||||
if (node.type !== 'function' || node.value !== 'url' || !node.nodes.length) {
|
||||
return;
|
||||
}
|
||||
var value = node.nodes[0].value;
|
||||
|
||||
var decodedUri = void 0,
|
||||
isUriEncoded = void 0;
|
||||
|
||||
try {
|
||||
decodedUri = (0, _url.decode)(value);
|
||||
isUriEncoded = decodedUri !== value;
|
||||
} catch (e) {
|
||||
// Swallow exception if we cannot decode the value
|
||||
isUriEncoded = false;
|
||||
}
|
||||
|
||||
if (isUriEncoded) {
|
||||
value = decodedUri;
|
||||
}
|
||||
if (opts.encode !== undefined) {
|
||||
isUriEncoded = opts.encode;
|
||||
}
|
||||
|
||||
var svg = value.replace(dataURI, '');
|
||||
|
||||
if (!(0, _isSvg2.default)(svg)) {
|
||||
return;
|
||||
}
|
||||
|
||||
promises.push(new Promise(function (resolve, reject) {
|
||||
return svgo.optimize(svg, function (result) {
|
||||
if (result.error) {
|
||||
return reject(PLUGIN + ': ' + result.error);
|
||||
}
|
||||
var data = isUriEncoded ? (0, _url.encode)(result.data) : result.data;
|
||||
// Should always encode # otherwise we yield a broken SVG
|
||||
// in Firefox (works in Chrome however). See this issue:
|
||||
// https://github.com/ben-eb/cssnano/issues/245
|
||||
data = data.replace(/#/g, '%23');
|
||||
node.nodes[0] = _extends({}, node.nodes[0], {
|
||||
value: 'data:image/svg+xml;charset=utf-8,' + data,
|
||||
quote: isUriEncoded ? '"' : '\'',
|
||||
type: 'string',
|
||||
before: '',
|
||||
after: ''
|
||||
});
|
||||
return resolve();
|
||||
});
|
||||
}));
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
return Promise.all(promises).then(function () {
|
||||
return decl.value = decl.value.toString();
|
||||
});
|
||||
}
|
||||
|
||||
exports.default = _postcss2.default.plugin(PLUGIN, function () {
|
||||
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
||||
|
||||
var svgo = new _svgo2.default(opts);
|
||||
return function (css) {
|
||||
return new Promise(function (resolve, reject) {
|
||||
var promises = [];
|
||||
css.walkDecls(function (decl) {
|
||||
if (dataURI.test(decl.value)) {
|
||||
promises.push(minifyPromise(svgo, decl, opts));
|
||||
}
|
||||
});
|
||||
return Promise.all(promises).then(resolve, reject);
|
||||
});
|
||||
};
|
||||
});
|
||||
module.exports = exports['default'];
|
||||
9
node_modules/postcss-svgo/dist/lib/url.js
generated
vendored
Executable file
9
node_modules/postcss-svgo/dist/lib/url.js
generated
vendored
Executable file
@@ -0,0 +1,9 @@
|
||||
'use strict';
|
||||
|
||||
exports.__esModule = true;
|
||||
exports.encode = encode;
|
||||
function encode(data) {
|
||||
return data.replace(/"/g, '\'').replace(/%/g, '%25').replace(/</g, '%3C').replace(/>/g, '%3E').replace(/&/g, '%26').replace(/#/g, '%23').replace(/\s+/g, ' ');
|
||||
};
|
||||
|
||||
var decode = exports.decode = decodeURIComponent;
|
||||
Reference in New Issue
Block a user