less 3.8.1 → 3.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/Gruntfile.js +2 -1
- package/dist/less.js +254 -2136
- package/dist/less.min.js +7 -7
- package/lib/less/functions/list.js +44 -9
- package/lib/less/index.js +1 -1
- package/lib/less/tree/variable-call.js +6 -3
- package/package.json +1 -2
- package/test/browser/less.js +254 -2136
- package/test/css/functions-each.css +34 -0
- package/test/less/functions-each.less +51 -1
- package/test/less-bom/functions-each.less +51 -1
- package/test/css/3rd-party/bootstrap.css +0 -6814
- package/test/less/3rd-party/bootstrap.less +0 -1
- package/test/less-bom/3rd-party/bootstrap.less +0 -1
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
var
|
|
1
|
+
var Comment = require('../tree/comment'),
|
|
2
|
+
Dimension = require('../tree/dimension'),
|
|
2
3
|
Declaration = require('../tree/declaration'),
|
|
4
|
+
Expression = require('../tree/expression'),
|
|
3
5
|
Ruleset = require('../tree/ruleset'),
|
|
4
6
|
Selector = require('../tree/selector'),
|
|
5
7
|
Element = require('../tree/element'),
|
|
@@ -26,8 +28,36 @@ functionRegistry.addMultiple({
|
|
|
26
28
|
length: function(values) {
|
|
27
29
|
return new Dimension(getItemsFromNode(values).length);
|
|
28
30
|
},
|
|
31
|
+
/**
|
|
32
|
+
* Creates a Less list of incremental values.
|
|
33
|
+
* Modeled after Lodash's range function, also exists natively in PHP
|
|
34
|
+
*
|
|
35
|
+
* @param {Dimension} [start=1]
|
|
36
|
+
* @param {Dimension} end - e.g. 10 or 10px - unit is added to output
|
|
37
|
+
* @param {Dimension} [step=1]
|
|
38
|
+
*/
|
|
39
|
+
range: function(start, end, step) {
|
|
40
|
+
var from, to, stepValue = 1, list = [];
|
|
41
|
+
if (end) {
|
|
42
|
+
to = end;
|
|
43
|
+
from = start.value;
|
|
44
|
+
if (step) {
|
|
45
|
+
stepValue = step.value;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
from = 1;
|
|
50
|
+
to = start;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
for (var i = from; i <= to.value; i += stepValue) {
|
|
54
|
+
list.push(new Dimension(i, to.unit));
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
return new Expression(list);
|
|
58
|
+
},
|
|
29
59
|
each: function(list, rs) {
|
|
30
|
-
var
|
|
60
|
+
var rules = [], newRules, iterator;
|
|
31
61
|
|
|
32
62
|
if (list.value) {
|
|
33
63
|
if (Array.isArray(list.value)) {
|
|
@@ -37,6 +67,8 @@ functionRegistry.addMultiple({
|
|
|
37
67
|
}
|
|
38
68
|
} else if (list.ruleset) {
|
|
39
69
|
iterator = list.ruleset.rules;
|
|
70
|
+
} else if (list.rules) {
|
|
71
|
+
iterator = list.rules;
|
|
40
72
|
} else if (Array.isArray(list)) {
|
|
41
73
|
iterator = list;
|
|
42
74
|
} else {
|
|
@@ -55,17 +87,20 @@ functionRegistry.addMultiple({
|
|
|
55
87
|
} else {
|
|
56
88
|
rs = rs.ruleset;
|
|
57
89
|
}
|
|
58
|
-
|
|
59
|
-
iterator.
|
|
60
|
-
|
|
61
|
-
var key, value;
|
|
90
|
+
|
|
91
|
+
for (var i = 0; i < iterator.length; i++) {
|
|
92
|
+
var key, value, item = iterator[i];
|
|
62
93
|
if (item instanceof Declaration) {
|
|
63
94
|
key = typeof item.name === 'string' ? item.name : item.name[0].value;
|
|
64
95
|
value = item.value;
|
|
65
96
|
} else {
|
|
66
|
-
key = new Dimension(i);
|
|
97
|
+
key = new Dimension(i + 1);
|
|
67
98
|
value = item;
|
|
68
99
|
}
|
|
100
|
+
|
|
101
|
+
if (item instanceof Comment) {
|
|
102
|
+
continue;
|
|
103
|
+
}
|
|
69
104
|
|
|
70
105
|
newRules = rs.rules.slice(0);
|
|
71
106
|
if (valueName) {
|
|
@@ -75,7 +110,7 @@ functionRegistry.addMultiple({
|
|
|
75
110
|
}
|
|
76
111
|
if (indexName) {
|
|
77
112
|
newRules.push(new Declaration(indexName,
|
|
78
|
-
new Dimension(i),
|
|
113
|
+
new Dimension(i + 1),
|
|
79
114
|
false, false, this.index, this.currentFileInfo));
|
|
80
115
|
}
|
|
81
116
|
if (keyName) {
|
|
@@ -89,7 +124,7 @@ functionRegistry.addMultiple({
|
|
|
89
124
|
rs.strictImports,
|
|
90
125
|
rs.visibilityInfo()
|
|
91
126
|
));
|
|
92
|
-
}
|
|
127
|
+
}
|
|
93
128
|
|
|
94
129
|
return new Ruleset([ new(Selector)([ new Element("", '&') ]) ],
|
|
95
130
|
rules,
|
package/lib/less/index.js
CHANGED
|
@@ -2,7 +2,7 @@ module.exports = function(environment, fileManagers) {
|
|
|
2
2
|
var SourceMapOutput, SourceMapBuilder, ParseTree, ImportManager, Environment;
|
|
3
3
|
|
|
4
4
|
var initial = {
|
|
5
|
-
version: [3,
|
|
5
|
+
version: [3, 9, 0],
|
|
6
6
|
data: require('./data'),
|
|
7
7
|
tree: require('./tree'),
|
|
8
8
|
Environment: (Environment = require('./environment/environment')),
|
|
@@ -17,16 +17,19 @@ VariableCall.prototype.eval = function (context) {
|
|
|
17
17
|
error = new LessError({message: 'Could not evaluate variable call ' + this.variable});
|
|
18
18
|
|
|
19
19
|
if (!detachedRuleset.ruleset) {
|
|
20
|
-
if (
|
|
20
|
+
if (detachedRuleset.rules) {
|
|
21
21
|
rules = detachedRuleset;
|
|
22
22
|
}
|
|
23
|
+
else if (Array.isArray(detachedRuleset)) {
|
|
24
|
+
rules = new Ruleset('', detachedRuleset);
|
|
25
|
+
}
|
|
23
26
|
else if (Array.isArray(detachedRuleset.value)) {
|
|
24
|
-
rules = detachedRuleset.value;
|
|
27
|
+
rules = new Ruleset('', detachedRuleset.value);
|
|
25
28
|
}
|
|
26
29
|
else {
|
|
27
30
|
throw error;
|
|
28
31
|
}
|
|
29
|
-
detachedRuleset = new DetachedRuleset(
|
|
32
|
+
detachedRuleset = new DetachedRuleset(rules);
|
|
30
33
|
}
|
|
31
34
|
if (detachedRuleset.ruleset) {
|
|
32
35
|
return detachedRuleset.callEval(context);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "less",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.9.0",
|
|
4
4
|
"description": "Leaner CSS",
|
|
5
5
|
"homepage": "http://lesscss.org",
|
|
6
6
|
"author": {
|
|
@@ -51,7 +51,6 @@
|
|
|
51
51
|
"source-map": "~0.6.0"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
|
-
"bootstrap": "3.3.7",
|
|
55
54
|
"bootstrap-less-port": "0.3.0",
|
|
56
55
|
"diff": "^3.2.0",
|
|
57
56
|
"git-rev": "^0.2.1",
|