| "use strict"; |
| |
| Object.defineProperty(exports, "__esModule", { |
| value: true |
| }); |
| exports.default = listStyleNormalizer; |
| |
| var _postcssValueParser = _interopRequireDefault(require("postcss-value-parser")); |
| |
| var _listStyleTypes = _interopRequireDefault(require("./listStyleTypes.json")); |
| |
| function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
| |
| const definedTypes = _listStyleTypes.default['list-style-type']; |
| const definedPosition = ['inside', 'outside']; |
| |
| function listStyleNormalizer(listStyle) { |
| const order = { |
| type: '', |
| position: '', |
| image: '' |
| }; |
| listStyle.walk(decl => { |
| if (decl.type === 'word') { |
| if (definedTypes.includes(decl.value)) { |
| // its a type field |
| order.type = `${order.type} ${decl.value}`; |
| } else if (definedPosition.includes(decl.value)) { |
| order.position = `${order.position} ${decl.value}`; |
| } else if (decl.value === 'none') { |
| if (order.type.split(' ').filter(e => e !== '' && e !== ' ').includes('none')) { |
| order.image = `${order.image} ${decl.value}`; |
| } else { |
| order.type = `${order.type} ${decl.value}`; |
| } |
| } else { |
| order.type = `${order.type} ${decl.value}`; |
| } |
| } |
| |
| if (decl.type === 'function') { |
| order.image = `${order.image} ${_postcssValueParser.default.stringify(decl)}`; |
| } |
| }); |
| return `${order.type.trim()} ${order.position.trim()} ${order.image.trim()}`.trim(); |
| } |
| |
| module.exports = exports.default; |