12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.groupByKeyValue = groupByKeyValue;
- exports.mapToKeyValue = mapToKeyValue;
- exports.parseFunctionArguments = parseFunctionArguments;
- var _postcssValueParser = _interopRequireDefault(require("postcss-value-parser"));
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
- function groupByKeyValue(nodes) {
- if (!nodes) {
- return [];
- }
- var groupIndex = 0;
- return nodes.reduce(function (acc, node, nodeIndex) {
- var isComma = node.type === "div" && node.value === ",";
- var skipTrailingComma = isComma && nodeIndex === nodes.length - 1;
- if (skipTrailingComma) {
- return acc;
- }
- if (isComma) {
- groupIndex++;
- }
- acc[groupIndex] = acc[groupIndex] || [];
- if (!isComma) {
- acc[groupIndex].push(node);
- }
- return acc;
- }, []);
- }
- function mapToKeyValue(nodes) {
- var keyVal = nodes.reduce(function (acc, curr, i) {
- if (acc.length === 1) {
- return acc;
- }
- var nextNode = nodes[i + 1];
- var isNextNodeColon = nextNode && nextNode.type === "div" && nextNode.value === ":";
- if (isNextNodeColon) {
- acc.push({
- key: _postcssValueParser["default"].stringify(nodes[i]),
- value: _postcssValueParser["default"].stringify(nodes.slice(2))
- });
- return acc;
- }
- acc.push({
- value: _postcssValueParser["default"].stringify(nodes)
- });
- return acc;
- }, []);
- return keyVal[0];
- }
- function parseFunctionArguments(value) {
- var parsed = (0, _postcssValueParser["default"])(value);
- if (!parsed.nodes[0] || parsed.nodes[0].type !== "function") {
- return [];
- }
- return parsed.nodes.map(function (node) {
- return groupByKeyValue(node.nodes).map(mapToKeyValue);
- })[0];
- }
|