diff options
| author | littleblack111 <littleblack11111@gmail.com> | 2026-05-18 23:10:59 +0800 |
|---|---|---|
| committer | littleblack111 <littleblack11111@gmail.com> | 2026-05-18 23:41:44 +0800 |
| commit | fc87c009806dcc98867f6b58efe29b042aa01dee (patch) | |
| tree | 8f59b3f4a5b66e9dfef2d40c8d318e258a521228 /node_modules/postcss-input-style/index.js | |
| parent | 3336b2356ee6152d9c6ae59bd9b87ccbc0958407 (diff) | |
node: updatemain
Diffstat (limited to 'node_modules/postcss-input-style/index.js')
| -rw-r--r-- | node_modules/postcss-input-style/index.js | 147 |
1 files changed, 0 insertions, 147 deletions
diff --git a/node_modules/postcss-input-style/index.js b/node_modules/postcss-input-style/index.js deleted file mode 100644 index bc93f63f..00000000 --- a/node_modules/postcss-input-style/index.js +++ /dev/null @@ -1,147 +0,0 @@ -var postcss = require('postcss'); - - -// Map new selectors to outputs -var selectors = { - rangeTrack: '::track', - rangeThumb: '::thumb' -}; - -var pseudos = { - rangeTrack: [ - '::-webkit-slider-runnable-track', - '::-moz-range-track', - '::-ms-track' - ], - - rangeThumb: [ - '::-webkit-slider-thumb', - '::-moz-range-thumb', - '::-ms-thumb' - ] -}; - -/** - * Check if selector in array contains any of our psuedo elements - * @param {String} selector string to check for elements - * @return {Boolean} whether it contains pseudo - */ -var containsPseudo = function(selector) { - return selector.match(/::track|::thumb/); -}; - -/** - * Check if selector in array is free from our psuedo elements - * @param {String} selector string to check for elements - * @return {Boolean} whether it is free from pseudo - */ -var doesntContainPseudo = function(selector) { - return selector.match(/^((?!(::thumb|::track)).)*$/); -}; - -/** - * Extra processing for new range track rules - * @param {Object} rule CSS rule to process - * @return undefined - */ -var processTracks = function(rule) { - - if (rule.selector.indexOf('::-webkit-slider-runnable-track') > -1) { - rule.prepend({ prop: '-webkit-appearance', value: 'none' }); - } - - if (rule.selector.indexOf('::-moz-range-track') > -1) { - rule.prepend({ prop: '-moz-appearance', value: 'none' }); - } - -}; - -/** - * Extra processing for new range thumb rules - * @param {Object} rule CSS rule to process - * @return undefined - */ -var processThumbs = function(rule) { - - if (rule.selector.indexOf('::-webkit-slider-thumb') > -1) { - rule.prepend({ prop: '-webkit-appearance', value: 'none' }); - } - - if (rule.selector.indexOf('::-moz-range-thumb') > -1) { - rule.prepend({ prop: '-moz-appearance', value: 'none' }); - } - -}; - - -/** - * Expand and process CSS rules - * @param {Object} rule CSS rule to transform - * @return undefined - */ -var ruleHandler = function(rule) { - - // Loop over our selectors - Object.keys(selectors).forEach(function(select){ - - // If the rule doesn't contain our selector, exit - if (rule.selector.indexOf(selectors[select]) === -1){ - return; - } - - // Expand the pseudo selector - pseudos[select].forEach(function(pseudo){ - - // Create the new rule - var newRule, - newSelector; - - newRule = rule.cloneBefore(); - newSelector = newRule.selectors.filter(containsPseudo).map(function(selector){ - return selector.replace(selectors[select], pseudo); - }).join(',\n'); - - newRule.selector = newSelector; - - // Do extra processing on the new rules - processTracks(newRule); - processThumbs(newRule); - - }); - - // Add necessary additional base rules - var webkitRule = rule.cloneBefore(); - webkitRule.selector = 'input[type="range"]'; - webkitRule.removeAll().append({ prop: '-webkit-appearance', value: 'none' }); - - var mozRule = rule.cloneBefore(); - mozRule.selector = 'input[type="range"]::-moz-focus-outer'; - mozRule.removeAll().append({ prop: 'border', value: '0' }); - - // If the rule only contained our elements remove it, else clean it - if (rule.selectors.every(containsPseudo)) { - rule.remove(); - } else { - rule.selector = rule.selectors.filter(doesntContainPseudo).join(',\n'); - } - - }); - -}; - -module.exports = postcss.plugin('postcss-input-style', function () { - return function (css) { - - css.walkRules(function(rule) { - - if (!containsPseudo(rule.selector)) { - return; - } - - // Handle dem rules - ruleHandler(rule); - - }); - - }; -}); |
