diff options
| author | ruki <waruqi@gmail.com> | 2018-11-08 00:38:48 +0800 |
|---|---|---|
| committer | ruki <waruqi@gmail.com> | 2018-11-07 21:53:09 +0800 |
| commit | 26105034da4fcce7ac883c899d781f016559310d (patch) | |
| tree | c459a5dc4e3aa0972d9919033ece511ce76dd129 /node_modules/cssnano/dist/lib/reduceDisplayValues.js | |
| parent | 2c77f00f1a7ecb6c8192f9c16d3b2001b254a107 (diff) | |
| download | xmake-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.js | 55 |
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 |
