| // NOTICE: This file is generated by Rollup. To modify it, |
| // please instead edit the ESM counterpart and rebuild with Rollup (npm run build). |
| 'use strict'; |
| |
| const valueParser = require('postcss-value-parser'); |
| const blurInterpolation = require('./blurInterpolation.cjs'); |
| const isStandardSyntaxValue = require('./isStandardSyntaxValue.cjs'); |
| |
| /** |
| * Get Dimension from value node; |
| * `unit` and `number` return null if neither is found |
| * |
| * @param {import('postcss-value-parser').Node} node |
| * |
| * @returns {{unit: null, number: null} | valueParser.Dimension} |
| */ |
| function getDimension(node) { |
| if (!node || !node.value) { |
| return { |
| unit: null, |
| number: null, |
| }; |
| } |
| |
| // Ignore non-word nodes |
| if (node.type !== 'word') { |
| return { |
| unit: null, |
| number: null, |
| }; |
| } |
| |
| // Ignore non standard syntax |
| if (!isStandardSyntaxValue(node.value)) { |
| return { |
| unit: null, |
| number: null, |
| }; |
| } |
| |
| // Ignore HEX |
| if (node.value.startsWith('#')) { |
| return { |
| unit: null, |
| number: null, |
| }; |
| } |
| |
| // Remove non standard stuff |
| const value = blurInterpolation(node.value, '') |
| // ignore hack unit |
| .replace('\\0', '') |
| .replace('\\9', ''); |
| |
| const parsedUnit = valueParser.unit(value); |
| |
| if (!parsedUnit) { |
| return { |
| unit: null, |
| number: null, |
| }; |
| } |
| |
| return parsedUnit; |
| } |
| |
| module.exports = getDimension; |