Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
} else {
context = [], env = { frames: [] }
for (var i = 0; i < this.rules.length; i++) {
if (this.rules[i] instanceof tree.Import) {
Array.prototype.splice
.apply(this.rules, [i, 1].concat(this.rules[i].eval(env)));
}
}
}
// push the current ruleset to the frames stack
env.frames.unshift(this);
// Evaluate mixins
for (var i = 0; i < this.rules.length; i++) {
if (this.rules[i] instanceof tree.mixin.Call) {
Array.prototype.splice
.apply(this.rules, [i, 1].concat(this.rules[i].eval(env)));
}
}
// Evaluate rules and rulesets
for (var i = 0; i < this.rules.length; i++) {
rule = this.rules[i];
if (rule instanceof tree.Directive) {
rulesets.push(rule.eval(env).toCSS(paths, env));
} else if (rule.rules) {
rulesets.push(rule.toCSS(paths, env));
} else if (rule instanceof tree.Comment) {
if (this.root) {
rulesets.push(rule.toCSS());
call: function () {
var elements = [], e, c, args, index = i;
while (e = $(/[#.][a-zA-Z0-9_-]+/g)) {
elements.push(new(tree.Element)(c, e));
c = $('>');
}
$('(') && (args = $(this.entities.arguments)) && $(')');
if (elements.length > 0 && ($(';') || peek('}'))) {
return new(tree.mixin.Call)(elements, args, index);
}
},
}
}
return this.root.rules;
}
}
};
if (typeof(require) !== 'undefined' && typeof(__LESS_DIST__) === 'undefined') { var tree = require('less/tree') }
tree.Keyword = function Keyword(value) { this.value = value };
tree.Keyword.prototype = {
eval: function () { return this },
toCSS: function () { return this.value }
};
if (typeof(require) !== 'undefined' && typeof(__LESS_DIST__) === 'undefined') { var tree = require('less/tree') }
tree.mixin = {};
tree.mixin.Call = function MixinCall(elements, args, index) {
this.selector = new(tree.Selector)(elements);
this.arguments = args;
this.index = index;
};
tree.mixin.Call.prototype = {
eval: function (env) {
var mixins, rules = [], match = false;
for (var i = 0; i < env.frames.length; i++) {
if ((mixins = env.frames[i].find(this.selector)).length > 0) {
for (var m = 0; m < mixins.length; m++) {
if (mixins[m].match(this.arguments, env)) {
try {
Array.prototype.push.apply(
rules, mixins[m].eval(this.arguments, env).rules);
}
};
tree.mixin.Definition = function MixinDefinition(name, params, rules) {
this.name = name;
this.selectors = [new(tree.Selector)([new(tree.Element)(null, name)])];
this.params = params;
this.arity = params.length;
this.rules = rules;
this._lookups = {};
this.required = params.reduce(function (count, p) {
if (p.name && !p.value) { return count + 1 }
else { return count }
}, 0);
};
tree.mixin.Definition.prototype = {
toCSS: function () { return "" },
variable: function (name) { return tree.Ruleset.prototype.variable.call(this, name) },
find: function () { return tree.Ruleset.prototype.find.apply(this, arguments) },
rulesets: function () { return tree.Ruleset.prototype.rulesets.apply(this) },
eval: function (args, env) {
var frame = new(tree.Ruleset)(null, []), context;
for (var i = 0, val; i < this.params.length; i++) {
if (this.params[i].name) {
if (val = (args && args[i]) || this.params[i].value) {
frame.rules.unshift(new(tree.Rule)(this.params[i].name, val.eval(env)));
} else {
throw { message: "wrong number of arguments for " + this.name +
' (' + args.length + ' for ' + this.arity + ')' };
}
}
return this.root.rules;
}
}
};
if (typeof(require) !== 'undefined' && typeof(__LESS_DIST__) === 'undefined') { var tree = require('less/tree') }
tree.Keyword = function Keyword(value) { this.value = value };
tree.Keyword.prototype = {
eval: function () { return this },
toCSS: function () { return this.value }
};
if (typeof(require) !== 'undefined' && typeof(__LESS_DIST__) === 'undefined') { var tree = require('less/tree') }
tree.mixin = {};
tree.mixin.Call = function MixinCall(elements, args, index) {
this.selector = new(tree.Selector)(elements);
this.arguments = args;
this.index = index;
};
tree.mixin.Call.prototype = {
eval: function (env) {
var mixins, rules = [], match = false;
for (var i = 0; i < env.frames.length; i++) {
if ((mixins = env.frames[i].find(this.selector)).length > 0) {
for (var m = 0; m < mixins.length; m++) {
if (mixins[m].match(this.arguments, env)) {
try {
Array.prototype.push.apply(
rules, mixins[m].eval(this.arguments, env).rules);
match = true;
}
};
tree.mixin.Definition = function MixinDefinition(name, params, rules) {
this.name = name;
this.selectors = [new(tree.Selector)([new(tree.Element)(null, name)])];
this.params = params;
this.arity = params.length;
this.rules = rules;
this._lookups = {};
this.required = params.reduce(function (count, p) {
if (p.name && !p.value) { return count + 1 }
else { return count }
}, 0);
};
tree.mixin.Definition.prototype = {
toCSS: function () { return "" },
variable: function (name) { return tree.Ruleset.prototype.variable.call(this, name) },
find: function () { return tree.Ruleset.prototype.find.apply(this, arguments) },
rulesets: function () { return tree.Ruleset.prototype.rulesets.apply(this) },
eval: function (args, env) {
var frame = new(tree.Ruleset)(null, []), context;
for (var i = 0, val; i < this.params.length; i++) {
if (this.params[i].name) {
if (val = (args && args[i]) || this.params[i].value) {
frame.rules.unshift(new(tree.Rule)(this.params[i].name, val.eval(env)));
} else {
throw { message: "wrong number of arguments for " + this.name +
' (' + args.length + ' for ' + this.arity + ')' };
}
call: function () {
var elements = [], e, c, args, index = i;
while (e = $(/[#.][a-zA-Z0-9_-]+/g)) {
elements.push(new(tree.Element)(c, e));
c = $('>');
}
$('(') && (args = $(this.entities.arguments)) && $(')');
if (elements.length > 0 && ($(';') || peek('}'))) {
return new(tree.mixin.Call)(elements, args, index);
}
},
}
return this.root.rules;
}
}
};
if (typeof(require) !== 'undefined') { var tree = require('less/tree') }
tree.Keyword = function Keyword(value) { this.value = value };
tree.Keyword.prototype = {
eval: function () { return this },
toCSS: function () { return this.value }
};
if (typeof(require) !== 'undefined') { var tree = require('less/tree') }
tree.mixin = {};
tree.mixin.Call = function MixinCall(elements, args, index) {
this.selector = new(tree.Selector)(elements);
this.arguments = args;
this.index = index;
};
tree.mixin.Call.prototype = {
eval: function (env) {
var mixins, rules = [], match = false;
for (var i = 0; i < env.frames.length; i++) {
if ((mixins = env.frames[i].find(this.selector)).length > 0) {
for (var m = 0; m < mixins.length; m++) {
if (mixins[m].match(this.arguments, env)) {
try {
Array.prototype.push.apply(
rules, mixins[m].eval(this.arguments, env).rules);
match = true;
}
}
return this.root.rules;
}
}
};
if (typeof(require) !== 'undefined') { var tree = require('less/tree') }
tree.Keyword = function Keyword(value) { this.value = value };
tree.Keyword.prototype = {
eval: function () { return this },
toCSS: function () { return this.value }
};
if (typeof(require) !== 'undefined') { var tree = require('less/tree') }
tree.mixin = {};
tree.mixin.Call = function MixinCall(elements, args, index) {
this.selector = new(tree.Selector)(elements);
this.arguments = args;
this.index = index;
};
tree.mixin.Call.prototype = {
eval: function (env) {
var mixins, rules = [], match = false;
for (var i = 0; i < env.frames.length; i++) {
if ((mixins = env.frames[i].find(this.selector)).length > 0) {
for (var m = 0; m < mixins.length; m++) {
if (mixins[m].match(this.arguments, env)) {
try {
Array.prototype.push.apply(
rules, mixins[m].eval(this.arguments, env).rules);
this.rules.forEach(function (rule) {
if (rule.evalRules) {
rules.push(rule.evalRules(context));
} else if (rule instanceof tree.mixin.Call) {
Array.prototype.push.apply(rules, rule.eval(context));
} else {
rules.push(rule.eval(context));
}
});
this.rules = rules;