aboutsummaryrefslogtreecommitdiff
path: root/node_modules/cssnano/dist/lib/reduceDisplayValues.js
diff options
context:
space:
mode:
authorruki <waruqi@gmail.com>2018-11-08 00:38:48 +0800
committerruki <waruqi@gmail.com>2018-11-07 21:53:09 +0800
commit26105034da4fcce7ac883c899d781f016559310d (patch)
treec459a5dc4e3aa0972d9919033ece511ce76dd129 /node_modules/cssnano/dist/lib/reduceDisplayValues.js
parent2c77f00f1a7ecb6c8192f9c16d3b2001b254a107 (diff)
downloadxmake-docs-26105034da4fcce7ac883c899d781f016559310d.tar.gz
xmake-docs-26105034da4fcce7ac883c899d781f016559310d.zip
switch to vuepress
Diffstat (limited to 'node_modules/cssnano/dist/lib/reduceDisplayValues.js')
-rw-r--r--node_modules/cssnano/dist/lib/reduceDisplayValues.js55
1 files changed, 55 insertions, 0 deletions
diff --git a/node_modules/cssnano/dist/lib/reduceDisplayValues.js b/node_modules/cssnano/dist/lib/reduceDisplayValues.js
new file mode 100644
index 00000000..aba6c43f
--- /dev/null
+++ b/node_modules/cssnano/dist/lib/reduceDisplayValues.js
@@ -0,0 +1,55 @@
+'use strict';
+
+exports.__esModule = true;
+
+var _postcss = require('postcss');
+
+var _postcss2 = _interopRequireDefault(_postcss);
+
+var _postcssValueParser = require('postcss-value-parser');
+
+var _postcssValueParser2 = _interopRequireDefault(_postcssValueParser);
+
+var _evenValues = require('./evenValues');
+
+var _evenValues2 = _interopRequireDefault(_evenValues);
+
+var _getMatch = require('./getMatch');
+
+var _getMatch2 = _interopRequireDefault(_getMatch);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+/**
+ * Specification: https://drafts.csswg.org/css-display/#the-display-properties
+ */
+
+var mappings = [['block', ['block', 'flow']], ['flow-root', ['block', 'flow-root']], ['inline', ['inline', 'flow']], ['inline-block', ['inline', 'flow-root']], ['run-in', ['run-in', 'flow']], ['list-item', ['list-item', 'block', 'flow']], ['inline-list-item', ['list-item', 'inline', 'flow']], ['flex', ['block', 'flex']], ['inline-flex', ['inline', 'flex']], ['grid', ['block', 'grid']], ['inline-grid', ['inline', 'grid']], ['ruby', ['inline', 'ruby']], ['table', ['block', 'table']], ['inline-table', ['inline', 'table']], ['table-cell', ['table-cell', 'flow']], ['table-caption', ['table-caption', 'flow']], ['ruby-base', ['ruby-base', 'flow']], ['ruby-text', ['ruby-text', 'flow']]];
+
+var getMatch = (0, _getMatch2.default)(mappings);
+
+function transform(node) {
+ var _valueParser = (0, _postcssValueParser2.default)(node.value),
+ nodes = _valueParser.nodes;
+
+ if (nodes.length === 1) {
+ return;
+ }
+ var match = getMatch(nodes.filter(_evenValues2.default).map(function (n) {
+ return n.value;
+ }));
+ if (match.length) {
+ node.value = match[0][0];
+ }
+}
+
+var plugin = _postcss2.default.plugin('cssnano-reduce-display-values', function () {
+ return function (css) {
+ return css.walkDecls('display', transform);
+ };
+});
+
+plugin.mappings = mappings;
+
+exports.default = plugin;
+module.exports = exports['default']; \ No newline at end of file