PHP 7.4.33
Preview: collapseDuplicateDeclarations.js Size: 3.51 KB
/var/www/cookieconsent.bitkit.dk/httpdocs/node_modules/tailwindcss/lib/lib/collapseDuplicateDeclarations.js
"use strict";
Object.defineProperty(exports, "__esModule", {
    value: true
});
Object.defineProperty(exports, "default", {
    enumerable: true,
    get: function() {
        return collapseDuplicateDeclarations;
    }
});
function collapseDuplicateDeclarations() {
    return (root)=>{
        root.walkRules((node)=>{
            let seen = new Map();
            let droppable = new Set([]);
            let byProperty = new Map();
            node.walkDecls((decl)=>{
                // This could happen if we have nested selectors. In that case the
                // parent will loop over all its declarations but also the declarations
                // of nested rules. With this we ensure that we are shallowly checking
                // declarations.
                if (decl.parent !== node) {
                    return;
                }
                if (seen.has(decl.prop)) {
                    // Exact same value as what we have seen so far
                    if (seen.get(decl.prop).value === decl.value) {
                        // Keep the last one, drop the one we've seen so far
                        droppable.add(seen.get(decl.prop));
                        // Override the existing one with the new value. This is necessary
                        // so that if we happen to have more than one declaration with the
                        // same value, that we keep removing the previous one. Otherwise we
                        // will only remove the *first* one.
                        seen.set(decl.prop, decl);
                        return;
                    }
                    // Not the same value, so we need to check if we can merge it so
                    // let's collect it first.
                    if (!byProperty.has(decl.prop)) {
                        byProperty.set(decl.prop, new Set());
                    }
                    byProperty.get(decl.prop).add(seen.get(decl.prop));
                    byProperty.get(decl.prop).add(decl);
                }
                seen.set(decl.prop, decl);
            });
            // Drop all the duplicate declarations with the exact same value we've
            // already seen so far.
            for (let decl of droppable){
                decl.remove();
            }
            // Analyze the declarations based on its unit, drop all the declarations
            // with the same unit but the last one in the list.
            for (let declarations of byProperty.values()){
                let byUnit = new Map();
                for (let decl of declarations){
                    let unit = resolveUnit(decl.value);
                    if (unit === null) {
                        continue;
                    }
                    if (!byUnit.has(unit)) {
                        byUnit.set(unit, new Set());
                    }
                    byUnit.get(unit).add(decl);
                }
                for (let declarations of byUnit.values()){
                    // Get all but the last one
                    let removableDeclarations = Array.from(declarations).slice(0, -1);
                    for (let decl of removableDeclarations){
                        decl.remove();
                    }
                }
            }
        });
    };
}
let UNITLESS_NUMBER = Symbol("unitless-number");
function resolveUnit(input) {
    let result = /^-?\d*.?\d+([\w%]+)?$/g.exec(input);
    if (result) {
        var _result_;
        return (_result_ = result[1]) !== null && _result_ !== void 0 ? _result_ : UNITLESS_NUMBER;
    }
    return null;
}

Directory Contents

Dirs: 0 × Files: 22
Name Size Perms Modified Actions
2.96 KB lrw-r--r-- 2025-06-16 05:45:40
Edit Download
2.10 KB lrw-r--r-- 2025-06-16 05:45:40
Edit Download
3.51 KB lrw-r--r-- 2025-06-16 05:45:40
Edit Download
9.70 KB lrw-r--r-- 2025-06-16 05:45:40
Edit Download
10.22 KB lrw-r--r-- 2025-06-16 05:45:40
Edit Download
9.21 KB lrw-r--r-- 2025-06-16 05:45:40
Edit Download
22.55 KB lrw-r--r-- 2025-06-16 05:45:40
Edit Download
11.43 KB lrw-r--r-- 2025-06-16 05:45:40
Edit Download
1.94 KB lrw-r--r-- 2025-06-16 05:45:40
Edit Download
37.42 KB lrw-r--r-- 2025-06-16 05:45:40
Edit Download
2.85 KB lrw-r--r-- 2025-06-16 05:45:40
Edit Download
1.96 KB lrw-r--r-- 2025-06-16 05:45:40
Edit Download
3.55 KB lrw-r--r-- 2025-06-16 05:45:40
Edit Download
12.36 KB lrw-r--r-- 2025-06-16 05:45:40
Edit Download
1.44 KB lrw-r--r-- 2025-06-16 05:45:40
Edit Download
1.89 KB lrw-r--r-- 2025-06-16 05:45:40
Edit Download
2.73 KB lrw-r--r-- 2025-06-16 05:45:40
Edit Download
6.38 KB lrw-r--r-- 2025-06-16 05:45:40
Edit Download
56.63 KB lrw-r--r-- 2025-06-16 05:45:40
Edit Download
7.95 KB lrw-r--r-- 2025-06-16 05:45:40
Edit Download
2.14 KB lrw-r--r-- 2025-06-16 05:45:40
Edit Download
1.04 KB lrw-r--r-- 2025-06-16 05:45:40
Edit Download
If ZipArchive is unavailable, a .tar will be created (no compression).