Files
zyt/TongjiUniApp/node_modules/less/lib/less/tree/detached-ruleset.js
T
2026-08-11 17:41:36 +08:00

46 lines
1.1 KiB
JavaScript

// @ts-check
/** @import { EvalContext, TreeVisitor } from './node.js' */
import Node from './node.js';
import contexts from '../contexts.js';
import * as utils from '../utils.js';
class DetachedRuleset extends Node {
get type() { return 'DetachedRuleset'; }
/**
* @param {Node} ruleset
* @param {Node[]} [frames]
*/
constructor(ruleset, frames) {
super();
this.ruleset = ruleset;
this.frames = frames;
this.evalFirst = true;
this.setParent(this.ruleset, this);
}
/** @param {TreeVisitor} visitor */
accept(visitor) {
this.ruleset = visitor.visit(this.ruleset);
}
/**
* @param {EvalContext} context
* @returns {DetachedRuleset}
*/
eval(context) {
const frames = this.frames || utils.copyArray(context.frames);
return new DetachedRuleset(this.ruleset, frames);
}
/**
* @param {EvalContext} context
* @returns {Node}
*/
callEval(context) {
return this.ruleset.eval(this.frames ? new contexts.Eval(context, this.frames.concat(context.frames)) : context);
}
}
export default DetachedRuleset;