PHP 7.4.33
Preview: Atrule.cjs Size: 2.48 KB
/var/www/cookieconsent.bitkit.dk/httpdocs/node_modules/css-tree/cjs/syntax/node/Atrule.cjs
'use strict';

const types = require('../../tokenizer/types.cjs');

function consumeRaw(startToken) {
    return this.Raw(startToken, this.consumeUntilLeftCurlyBracketOrSemicolon, true);
}

function isDeclarationBlockAtrule() {
    for (let offset = 1, type; type = this.lookupType(offset); offset++) {
        if (type === types.RightCurlyBracket) {
            return true;
        }

        if (type === types.LeftCurlyBracket ||
            type === types.AtKeyword) {
            return false;
        }
    }

    return false;
}


const name = 'Atrule';
const walkContext = 'atrule';
const structure = {
    name: String,
    prelude: ['AtrulePrelude', 'Raw', null],
    block: ['Block', null]
};

function parse(isDeclaration = false) {
    const start = this.tokenStart;
    let name;
    let nameLowerCase;
    let prelude = null;
    let block = null;

    this.eat(types.AtKeyword);

    name = this.substrToCursor(start + 1);
    nameLowerCase = name.toLowerCase();
    this.skipSC();

    // parse prelude
    if (this.eof === false &&
        this.tokenType !== types.LeftCurlyBracket &&
        this.tokenType !== types.Semicolon) {
        if (this.parseAtrulePrelude) {
            prelude = this.parseWithFallback(this.AtrulePrelude.bind(this, name, isDeclaration), consumeRaw);
        } else {
            prelude = consumeRaw.call(this, this.tokenIndex);
        }

        this.skipSC();
    }

    switch (this.tokenType) {
        case types.Semicolon:
            this.next();
            break;

        case types.LeftCurlyBracket:
            if (hasOwnProperty.call(this.atrule, nameLowerCase) &&
                typeof this.atrule[nameLowerCase].block === 'function') {
                block = this.atrule[nameLowerCase].block.call(this, isDeclaration);
            } else {
                // TODO: should consume block content as Raw?
                block = this.Block(isDeclarationBlockAtrule.call(this));
            }

            break;
    }

    return {
        type: 'Atrule',
        loc: this.getLocation(start, this.tokenStart),
        name,
        prelude,
        block
    };
}

function generate(node) {
    this.token(types.AtKeyword, '@' + node.name);

    if (node.prelude !== null) {
        this.node(node.prelude);
    }

    if (node.block) {
        this.node(node.block);
    } else {
        this.token(types.Semicolon, ';');
    }
}

exports.generate = generate;
exports.name = name;
exports.parse = parse;
exports.structure = structure;
exports.walkContext = walkContext;

Directory Contents

Dirs: 1 × Files: 51
Name Size Perms Modified Actions
common DIR
- drwxr-xr-x 2025-06-16 05:45:40
Edit Download
7.90 KB lrw-r--r-- 2025-06-16 05:45:39
Edit Download
2.48 KB lrw-r--r-- 2025-06-16 05:45:39
Edit Download
1.11 KB lrw-r--r-- 2025-06-16 05:45:39
Edit Download
3.55 KB lrw-r--r-- 2025-06-16 05:45:39
Edit Download
2.33 KB lrw-r--r-- 2025-06-16 05:45:39
Edit Download
752 B lrw-r--r-- 2025-06-16 05:45:39
Edit Download
460 B lrw-r--r-- 2025-06-16 05:45:39
Edit Download
462 B lrw-r--r-- 2025-06-16 05:45:39
Edit Download
619 B lrw-r--r-- 2025-06-16 05:45:40
Edit Download
1.40 KB lrw-r--r-- 2025-06-16 05:45:40
Edit Download
854 B lrw-r--r-- 2025-06-16 05:45:40
Edit Download
3.54 KB lrw-r--r-- 2025-06-16 05:45:40
Edit Download
4.47 KB lrw-r--r-- 2025-06-16 05:45:40
Edit Download
1.46 KB lrw-r--r-- 2025-06-16 05:45:40
Edit Download
642 B lrw-r--r-- 2025-06-16 05:45:40
Edit Download
1.68 KB lrw-r--r-- 2025-06-16 05:45:40
Edit Download
2.62 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
1.08 KB lrw-r--r-- 2025-06-16 05:45:40
Edit Download
587 B lrw-r--r-- 2025-06-16 05:45:40
Edit Download
482 B lrw-r--r-- 2025-06-16 05:45:40
Edit Download
847 B lrw-r--r-- 2025-06-16 05:45:40
Edit Download
3.50 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
3.38 KB lrw-r--r-- 2025-06-16 05:45:40
Edit Download
3.14 KB lrw-r--r-- 2025-06-16 05:45:40
Edit Download
1.83 KB lrw-r--r-- 2025-06-16 05:45:40
Edit Download
1.64 KB lrw-r--r-- 2025-06-16 05:45:40
Edit Download
287 B lrw-r--r-- 2025-06-16 05:45:40
Edit Download
1.15 KB lrw-r--r-- 2025-06-16 05:45:40
Edit Download
734 B lrw-r--r-- 2025-06-16 05:45:40
Edit Download
540 B lrw-r--r-- 2025-06-16 05:45:40
Edit Download
1.02 KB lrw-r--r-- 2025-06-16 05:45:40
Edit Download
479 B lrw-r--r-- 2025-06-16 05:45:40
Edit Download
502 B lrw-r--r-- 2025-06-16 05:45:40
Edit Download
775 B lrw-r--r-- 2025-06-16 05:45:40
Edit Download
507 B lrw-r--r-- 2025-06-16 05:45:40
Edit Download
1.53 KB lrw-r--r-- 2025-06-16 05:45:40
Edit Download
1.59 KB lrw-r--r-- 2025-06-16 05:45:40
Edit Download
1.82 KB lrw-r--r-- 2025-06-16 05:45:40
Edit Download
1.12 KB lrw-r--r-- 2025-06-16 05:45:40
Edit Download
1.22 KB lrw-r--r-- 2025-06-16 05:45:40
Edit Download
781 B lrw-r--r-- 2025-06-16 05:45:40
Edit Download
810 B lrw-r--r-- 2025-06-16 05:45:40
Edit Download
559 B lrw-r--r-- 2025-06-16 05:45:40
Edit Download
1.99 KB lrw-r--r-- 2025-06-16 05:45:40
Edit Download
1.16 KB lrw-r--r-- 2025-06-16 05:45:40
Edit Download
4.43 KB lrw-r--r-- 2025-06-16 05:45:40
Edit Download
1.26 KB lrw-r--r-- 2025-06-16 05:45:40
Edit Download
469 B lrw-r--r-- 2025-06-16 05:45:40
Edit Download
644 B lrw-r--r-- 2025-06-16 05:45:40
Edit Download
If ZipArchive is unavailable, a .tar will be created (no compression).