From 26105034da4fcce7ac883c899d781f016559310d Mon Sep 17 00:00:00 2001 From: ruki Date: Thu, 8 Nov 2018 00:38:48 +0800 Subject: switch to vuepress --- node_modules/postcss-convert-values/dist/index.js | 108 +++++++++++++++++++++ .../postcss-convert-values/dist/lib/convert.js | 88 +++++++++++++++++ 2 files changed, 196 insertions(+) create mode 100644 node_modules/postcss-convert-values/dist/index.js create mode 100644 node_modules/postcss-convert-values/dist/lib/convert.js (limited to 'node_modules/postcss-convert-values/dist') diff --git a/node_modules/postcss-convert-values/dist/index.js b/node_modules/postcss-convert-values/dist/index.js new file mode 100644 index 00000000..a4c436b0 --- /dev/null +++ b/node_modules/postcss-convert-values/dist/index.js @@ -0,0 +1,108 @@ +'use strict'; + +exports.__esModule = true; + +var _postcss = require('postcss'); + +var _postcss2 = _interopRequireDefault(_postcss); + +var _postcssValueParser = require('postcss-value-parser'); + +var _postcssValueParser2 = _interopRequireDefault(_postcssValueParser); + +var _convert = require('./lib/convert'); + +var _convert2 = _interopRequireDefault(_convert); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var LENGTH_UNITS = ['em', 'ex', 'ch', 'rem', 'vw', 'vh', 'vmin', 'vmax', 'cm', 'mm', 'q', 'in', 'pt', 'pc', 'px']; + +function parseWord(node, opts, keepZeroUnit) { + var pair = (0, _postcssValueParser.unit)(node.value); + if (pair) { + var num = Number(pair.number); + var u = pair.unit.toLowerCase(); + if (num === 0) { + node.value = keepZeroUnit || !~LENGTH_UNITS.indexOf(u) && u !== '%' ? 0 + u : 0; + } else { + node.value = (0, _convert2.default)(num, u, opts); + + if (typeof opts.precision === 'number' && u === 'px' && ~pair.number.indexOf('.')) { + var precision = Math.pow(10, opts.precision); + node.value = Math.round(parseFloat(node.value) * precision) / precision + u; + } + } + } +} + +function clampOpacity(node) { + var pair = (0, _postcssValueParser.unit)(node.value); + if (!pair) { + return; + } + var num = Number(pair.number); + if (num > 1) { + node.value = 1 + pair.unit; + } else if (num < 0) { + node.value = 0 + pair.unit; + } +} + +function shouldStripPercent(_ref) { + var value = _ref.value, + prop = _ref.prop, + parent = _ref.parent; + + return ~value.indexOf('%') && (prop === 'max-height' || prop === 'height') || parent.parent && parent.parent.name === 'keyframes' && prop === 'stroke-dasharray' || prop === 'stroke-dashoffset' || prop === 'stroke-width'; +} + +function transform(opts) { + return function (decl) { + var prop = decl.prop; + + if (~prop.indexOf('flex') || prop.indexOf('--') === 0) { + return; + } + + decl.value = (0, _postcssValueParser2.default)(decl.value).walk(function (node) { + if (node.type === 'word') { + parseWord(node, opts, shouldStripPercent(decl)); + if (prop === 'opacity' || prop === 'shape-image-threshold') { + clampOpacity(node); + } + } else if (node.type === 'function') { + if (node.value === 'calc' || node.value === 'hsl' || node.value === 'hsla') { + (0, _postcssValueParser.walk)(node.nodes, function (n) { + if (n.type === 'word') { + parseWord(n, opts, true); + } + }); + return false; + } + if (node.value === 'url') { + return false; + } + } + }).toString(); + }; +} + +var plugin = 'postcss-convert-values'; + +exports.default = _postcss2.default.plugin(plugin, function () { + var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { precision: false }; + + if (opts.length === undefined && opts.convertLength !== undefined) { + console.warn(plugin + ': `convertLength` option is deprecated. Use `length`'); + opts.length = opts.convertLength; + } + if (opts.length === undefined && opts.convertTime !== undefined) { + console.warn(plugin + ': `convertTime` option is deprecated. Use `time`'); + opts.time = opts.convertTime; + } + return function (css) { + return css.walkDecls(transform(opts)); + }; +}); +module.exports = exports['default']; \ No newline at end of file diff --git a/node_modules/postcss-convert-values/dist/lib/convert.js b/node_modules/postcss-convert-values/dist/lib/convert.js new file mode 100644 index 00000000..91400bc7 --- /dev/null +++ b/node_modules/postcss-convert-values/dist/lib/convert.js @@ -0,0 +1,88 @@ +'use strict'; + +exports.__esModule = true; + +exports.default = function (number, unit, _ref) { + var time = _ref.time, + length = _ref.length, + angle = _ref.angle; + + var value = dropLeadingZero(number) + (unit ? unit : ''); + var converted = void 0; + + if (length !== false && unit in lengthConv) { + converted = transform(number, unit, lengthConv); + } + + if (time !== false && unit in timeConv) { + converted = transform(number, unit, timeConv); + } + + if (angle !== false && unit in angleConv) { + converted = transform(number, unit, angleConv); + } + + if (converted && converted.length < value.length) { + value = converted; + } + + return value; +}; + +var lengthConv = { + in: 96, + px: 1, + pt: 4 / 3, + pc: 16 +}; + +var timeConv = { + s: 1000, + ms: 1 +}; + +var angleConv = { + turn: 360, + deg: 1 +}; + +function dropLeadingZero(number) { + var value = String(number); + + if (number % 1) { + if (value[0] === '0') { + return value.slice(1); + } + + if (value[0] === '-' && value[1] === '0') { + return '-' + value.slice(2); + } + } + + return value; +} + +function transform(number, unit, conversion) { + var one = void 0, + base = void 0; + var convertionUnits = Object.keys(conversion).filter(function (u) { + if (conversion[u] === 1) { + one = u; + } + return unit !== u; + }); + + if (unit === one) { + base = number / conversion[unit]; + } else { + base = number * conversion[unit]; + } + + return convertionUnits.map(function (u) { + return dropLeadingZero(base / conversion[u]) + u; + }).reduce(function (a, b) { + return a.length < b.length ? a : b; + }); +} + +module.exports = exports['default']; \ No newline at end of file -- cgit v1.2.3