From c06f7ee0a40255214c477e13d9b956a7e07c2900 Mon Sep 17 00:00:00 2001 From: littleblack111 Date: Sat, 14 Oct 2023 15:05:55 +0800 Subject: postcss,(plugins): nanocss, postcss-preset-env --- node_modules/csso/cjs/replace/Number.cjs | 45 ++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 node_modules/csso/cjs/replace/Number.cjs (limited to 'node_modules/csso/cjs/replace/Number.cjs') diff --git a/node_modules/csso/cjs/replace/Number.cjs b/node_modules/csso/cjs/replace/Number.cjs new file mode 100644 index 00000000..d85d6b52 --- /dev/null +++ b/node_modules/csso/cjs/replace/Number.cjs @@ -0,0 +1,45 @@ +'use strict'; + +const OMIT_PLUSSIGN = /^(?:\+|(-))?0*(\d*)(?:\.0*|(\.\d*?)0*)?$/; +const KEEP_PLUSSIGN = /^([\+\-])?0*(\d*)(?:\.0*|(\.\d*?)0*)?$/; +const unsafeToRemovePlusSignAfter = new Set([ + 'Dimension', + 'Hash', + 'Identifier', + 'Number', + 'Raw', + 'UnicodeRange' +]); + +function packNumber(value, item) { + // omit plus sign only if no prev or prev is safe type + const regexp = item && item.prev !== null && unsafeToRemovePlusSignAfter.has(item.prev.data.type) + ? KEEP_PLUSSIGN + : OMIT_PLUSSIGN; + + // 100 -> '100' + // 00100 -> '100' + // +100 -> '100' + // -100 -> '-100' + // 0.123 -> '.123' + // 0.12300 -> '.123' + // 0.0 -> '' + // 0 -> '' + // -0 -> '-' + value = String(value).replace(regexp, '$1$2$3'); + + if (value === '' || value === '-') { + value = '0'; + } + // FIXME: is it solution simplier? + // value = String(Number(value)).replace(/^(-?)0+\./, '$1.'); + + return value; +} + +function Number(node) { + node.value = packNumber(node.value); +} + +exports.Number = Number; +exports.packNumber = packNumber; -- cgit v1.2.3