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.
@@ -1,5 +1,7 @@
1
- var Dimension = require('../tree/dimension'),
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 i = 0, rules = [], newRules, iterator;
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.forEach(function(item) {
60
- i = i + 1;
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, 8, 1],
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 (Array.isArray(detachedRuleset)) {
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(new Ruleset('', rules));
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.8.1",
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",