less 4.1.3 → 4.2.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.
Files changed (144) hide show
  1. package/.eslintrc.js +63 -0
  2. package/Gruntfile.js +1 -1
  3. package/LICENSE +177 -0
  4. package/dist/less.js +7129 -6972
  5. package/dist/less.min.js +3 -3
  6. package/dist/less.min.js.map +1 -1
  7. package/lib/less/contexts.js +1 -1
  8. package/lib/less/contexts.js.map +1 -1
  9. package/lib/less/default-options.js +0 -1
  10. package/lib/less/default-options.js.map +1 -1
  11. package/lib/less/environment/abstract-file-manager.js +9 -3
  12. package/lib/less/environment/abstract-file-manager.js.map +1 -1
  13. package/lib/less/environment/environment-api.js +0 -25
  14. package/lib/less/environment/environment-api.js.map +1 -1
  15. package/lib/less/environment/environment.js +1 -1
  16. package/lib/less/environment/environment.js.map +1 -1
  17. package/lib/less/environment/file-manager-api.js +0 -103
  18. package/lib/less/environment/file-manager-api.js.map +1 -1
  19. package/lib/less/functions/color-blending.js +1 -0
  20. package/lib/less/functions/color-blending.js.map +1 -1
  21. package/lib/less/functions/color.js +19 -19
  22. package/lib/less/functions/color.js.map +1 -1
  23. package/lib/less/functions/default.js +2 -1
  24. package/lib/less/functions/default.js.map +1 -1
  25. package/lib/less/functions/function-registry.js +1 -0
  26. package/lib/less/functions/function-registry.js.map +1 -1
  27. package/lib/less/functions/list.js +2 -2
  28. package/lib/less/functions/list.js.map +1 -1
  29. package/lib/less/functions/math-helper.js +1 -1
  30. package/lib/less/functions/math-helper.js.map +1 -1
  31. package/lib/less/functions/math.js +1 -0
  32. package/lib/less/functions/math.js.map +1 -1
  33. package/lib/less/functions/number.js +4 -3
  34. package/lib/less/functions/number.js.map +1 -1
  35. package/lib/less/functions/svg.js +1 -1
  36. package/lib/less/functions/svg.js.map +1 -1
  37. package/lib/less/import-manager.js +0 -1
  38. package/lib/less/import-manager.js.map +1 -1
  39. package/lib/less/index.js +0 -1
  40. package/lib/less/index.js.map +1 -1
  41. package/lib/less/less-error.js +1 -2
  42. package/lib/less/less-error.js.map +1 -1
  43. package/lib/less/parse-tree.js +1 -2
  44. package/lib/less/parse-tree.js.map +1 -1
  45. package/lib/less/parse.js +1 -2
  46. package/lib/less/parse.js.map +1 -1
  47. package/lib/less/parser/chunker.js +0 -1
  48. package/lib/less/parser/chunker.js.map +1 -1
  49. package/lib/less/parser/parser-input.js +10 -4
  50. package/lib/less/parser/parser-input.js.map +1 -1
  51. package/lib/less/parser/parser.js +105 -89
  52. package/lib/less/parser/parser.js.map +1 -1
  53. package/lib/less/render.js +1 -2
  54. package/lib/less/render.js.map +1 -1
  55. package/lib/less/source-map-builder.js +0 -1
  56. package/lib/less/source-map-builder.js.map +1 -1
  57. package/lib/less/source-map-output.js +1 -1
  58. package/lib/less/source-map-output.js.map +1 -1
  59. package/lib/less/transform-tree.js +0 -1
  60. package/lib/less/transform-tree.js.map +1 -1
  61. package/lib/less/tree/atrule-syntax.js +10 -0
  62. package/lib/less/tree/atrule-syntax.js.map +1 -0
  63. package/lib/less/tree/attribute.js +1 -1
  64. package/lib/less/tree/attribute.js.map +1 -1
  65. package/lib/less/tree/call.js +1 -0
  66. package/lib/less/tree/call.js.map +1 -1
  67. package/lib/less/tree/color.js +2 -0
  68. package/lib/less/tree/color.js.map +1 -1
  69. package/lib/less/tree/container.js +48 -0
  70. package/lib/less/tree/container.js.map +1 -0
  71. package/lib/less/tree/debug-info.js +2 -2
  72. package/lib/less/tree/debug-info.js.map +1 -1
  73. package/lib/less/tree/dimension.js +4 -2
  74. package/lib/less/tree/dimension.js.map +1 -1
  75. package/lib/less/tree/extend.js +2 -0
  76. package/lib/less/tree/extend.js.map +1 -1
  77. package/lib/less/tree/import.js +1 -1
  78. package/lib/less/tree/import.js.map +1 -1
  79. package/lib/less/tree/index.js +4 -0
  80. package/lib/less/tree/index.js.map +1 -1
  81. package/lib/less/tree/js-eval-node.js +1 -1
  82. package/lib/less/tree/js-eval-node.js.map +1 -1
  83. package/lib/less/tree/media.js +4 -88
  84. package/lib/less/tree/media.js.map +1 -1
  85. package/lib/less/tree/namespace-value.js +1 -1
  86. package/lib/less/tree/namespace-value.js.map +1 -1
  87. package/lib/less/tree/nested-at-rule.js +91 -0
  88. package/lib/less/tree/nested-at-rule.js.map +1 -0
  89. package/lib/less/tree/node.js +6 -4
  90. package/lib/less/tree/node.js.map +1 -1
  91. package/lib/less/tree/query-in-parens.js +41 -0
  92. package/lib/less/tree/query-in-parens.js.map +1 -0
  93. package/lib/less/tree/quoted.js +1 -1
  94. package/lib/less/tree/quoted.js.map +1 -1
  95. package/lib/less/tree/ruleset.js +7 -4
  96. package/lib/less/tree/ruleset.js.map +1 -1
  97. package/lib/less/tree/selector.js +5 -3
  98. package/lib/less/tree/selector.js.map +1 -1
  99. package/lib/less/tree/unit.js +3 -1
  100. package/lib/less/tree/unit.js.map +1 -1
  101. package/lib/less/tree/url.js +1 -1
  102. package/lib/less/tree/url.js.map +1 -1
  103. package/lib/less/utils.js +7 -3
  104. package/lib/less/utils.js.map +1 -1
  105. package/lib/less/visitors/extend-visitor.js +4 -0
  106. package/lib/less/visitors/extend-visitor.js.map +1 -1
  107. package/lib/less/visitors/import-visitor.js +4 -0
  108. package/lib/less/visitors/import-visitor.js.map +1 -1
  109. package/lib/less/visitors/join-selector-visitor.js +4 -0
  110. package/lib/less/visitors/join-selector-visitor.js.map +1 -1
  111. package/lib/less/visitors/to-css-visitor.js +6 -2
  112. package/lib/less/visitors/to-css-visitor.js.map +1 -1
  113. package/lib/less-browser/bootstrap.js +3 -4
  114. package/lib/less-browser/bootstrap.js.map +1 -1
  115. package/lib/less-browser/cache.js +1 -1
  116. package/lib/less-browser/cache.js.map +1 -1
  117. package/lib/less-browser/error-reporting.js +2 -2
  118. package/lib/less-browser/error-reporting.js.map +1 -1
  119. package/lib/less-browser/file-manager.js +1 -2
  120. package/lib/less-browser/file-manager.js.map +1 -1
  121. package/lib/less-browser/index.js +6 -2
  122. package/lib/less-browser/index.js.map +1 -1
  123. package/lib/less-browser/plugin-loader.js +3 -2
  124. package/lib/less-browser/plugin-loader.js.map +1 -1
  125. package/lib/less-browser/utils.js +4 -4
  126. package/lib/less-browser/utils.js.map +1 -1
  127. package/lib/less-node/file-manager.js +16 -16
  128. package/lib/less-node/file-manager.js.map +1 -1
  129. package/lib/less-node/lessc-helper.js +1 -0
  130. package/lib/less-node/lessc-helper.js.map +1 -1
  131. package/lib/less-node/url-file-manager.js +5 -0
  132. package/lib/less-node/url-file-manager.js.map +1 -1
  133. package/package.json +9 -6
  134. package/test/browser/generator/benchmark.config.js +19 -19
  135. package/test/browser/generator/runner.config.js +69 -69
  136. package/test/browser/runner-rewrite-urls-spec.js +1 -1
  137. package/test/index.js +2 -0
  138. package/test/less-test.js +33 -9
  139. package/test/plugins/filemanager/index.js +1 -1
  140. package/test/sourcemaps-variable-selector/basic.json +1 -0
  141. package/test/test-es6.ts +5 -5
  142. package/tsconfig.build.json +7 -0
  143. package/tsconfig.json +4 -3
  144. package/.eslintrc.json +0 -71
@@ -14,6 +14,7 @@ var function_registry_1 = tslib_1.__importDefault(require("../functions/function
14
14
  var default_1 = tslib_1.__importDefault(require("../functions/default"));
15
15
  var debug_info_1 = tslib_1.__importDefault(require("./debug-info"));
16
16
  var utils = tslib_1.__importStar(require("../utils"));
17
+ var parser_1 = tslib_1.__importDefault(require("../parser/parser"));
17
18
  var Ruleset = function (selectors, rules, strictImports, visibilityInfo) {
18
19
  this.selectors = selectors;
19
20
  this.rules = rules;
@@ -42,7 +43,6 @@ Ruleset.prototype = Object.assign(new node_1.default(), {
42
43
  }
43
44
  },
44
45
  eval: function (context) {
45
- var that = this;
46
46
  var selectors;
47
47
  var selCnt;
48
48
  var selector;
@@ -74,7 +74,9 @@ Ruleset.prototype = Object.assign(new node_1.default(), {
74
74
  selector = selectors[i];
75
75
  toParseSelectors[i] = selector.toCSS(context);
76
76
  }
77
- this.parse.parseNode(toParseSelectors.join(','), ["selectors"], selectors[0].getIndex(), selectors[0].fileInfo(), function (err, result) {
77
+ var startingIndex = selectors[0].getIndex();
78
+ var selectorFileInfo = selectors[0].fileInfo();
79
+ new parser_1.default(context, this.parse.importManager, selectorFileInfo, startingIndex).parseNode(toParseSelectors.join(','), ['selectors'], function (err, result) {
78
80
  if (result) {
79
81
  selectors = utils.flattenArray(result);
80
82
  }
@@ -265,6 +267,7 @@ Ruleset.prototype = Object.assign(new node_1.default(), {
265
267
  if (r.type === 'Import' && r.root && r.root.variables) {
266
268
  var vars = r.root.variables();
267
269
  for (var name_1 in vars) {
270
+ // eslint-disable-next-line no-prototype-builtins
268
271
  if (vars.hasOwnProperty(name_1)) {
269
272
  hash[name_1] = r.root.variable(name_1);
270
273
  }
@@ -319,7 +322,7 @@ Ruleset.prototype = Object.assign(new node_1.default(), {
319
322
  function transformDeclaration(decl) {
320
323
  if (decl.value instanceof anonymous_1.default && !decl.parsed) {
321
324
  if (typeof decl.value.value === 'string') {
322
- this.parse.parseNode(decl.value.value, ['value', 'important'], decl.value.getIndex(), decl.fileInfo(), function (err, result) {
325
+ new parser_1.default(this.parse.context, this.parse.importManager, decl.fileInfo(), decl.value.getIndex()).parseNode(decl.value.value, ['value', 'important'], function (err, result) {
323
326
  if (err) {
324
327
  decl.parsed = true;
325
328
  }
@@ -648,7 +651,7 @@ Ruleset.prototype = Object.assign(new node_1.default(), {
648
651
  // non parent reference elements just get added
649
652
  if (el.value !== '&') {
650
653
  var nestedSelector = findNestedSelector(el);
651
- if (nestedSelector != null) {
654
+ if (nestedSelector !== null) {
652
655
  // merge the current list of non parent selector elements
653
656
  // on to the current list of selectors to add
654
657
  mergeElementsOnToSelectors(currentElements, newSelectors);
@@ -1 +1 @@
1
- {"version":3,"file":"ruleset.js","sourceRoot":"","sources":["../../../src/less/tree/ruleset.js"],"names":[],"mappings":"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","sourcesContent":["import Node from './node';\nimport Declaration from './declaration';\nimport Keyword from './keyword';\nimport Comment from './comment';\nimport Paren from './paren';\nimport Selector from './selector';\nimport Element from './element';\nimport Anonymous from './anonymous';\nimport contexts from '../contexts';\nimport globalFunctionRegistry from '../functions/function-registry';\nimport defaultFunc from '../functions/default';\nimport getDebugInfo from './debug-info';\nimport * as utils from '../utils';\n\nconst Ruleset = function(selectors, rules, strictImports, visibilityInfo) {\n this.selectors = selectors;\n this.rules = rules;\n this._lookups = {};\n this._variables = null;\n this._properties = null;\n this.strictImports = strictImports;\n this.copyVisibilityInfo(visibilityInfo);\n this.allowRoot = true;\n\n this.setParent(this.selectors, this);\n this.setParent(this.rules, this);\n}\n\nRuleset.prototype = Object.assign(new Node(), {\n type: 'Ruleset',\n isRuleset: true,\n\n isRulesetLike() { return true; },\n\n accept(visitor) {\n if (this.paths) {\n this.paths = visitor.visitArray(this.paths, true);\n } else if (this.selectors) {\n this.selectors = visitor.visitArray(this.selectors);\n }\n if (this.rules && this.rules.length) {\n this.rules = visitor.visitArray(this.rules);\n }\n },\n\n eval(context) {\n const that = this;\n let selectors;\n let selCnt;\n let selector;\n let i;\n let hasVariable;\n let hasOnePassingSelector = false;\n\n if (this.selectors && (selCnt = this.selectors.length)) {\n selectors = new Array(selCnt);\n defaultFunc.error({\n type: 'Syntax',\n message: 'it is currently only allowed in parametric mixin guards,'\n });\n\n for (i = 0; i < selCnt; i++) {\n selector = this.selectors[i].eval(context);\n for (var j = 0; j < selector.elements.length; j++) {\n if (selector.elements[j].isVariable) {\n hasVariable = true;\n break;\n }\n }\n selectors[i] = selector;\n if (selector.evaldCondition) {\n hasOnePassingSelector = true;\n }\n }\n\n if (hasVariable) {\n const toParseSelectors = new Array(selCnt);\n for (i = 0; i < selCnt; i++) {\n selector = selectors[i];\n toParseSelectors[i] = selector.toCSS(context);\n }\n this.parse.parseNode(\n toParseSelectors.join(','),\n [\"selectors\"], \n selectors[0].getIndex(), \n selectors[0].fileInfo(), \n function(err, result) {\n if (result) {\n selectors = utils.flattenArray(result);\n }\n });\n }\n\n defaultFunc.reset();\n } else {\n hasOnePassingSelector = true;\n }\n\n let rules = this.rules ? utils.copyArray(this.rules) : null;\n const ruleset = new Ruleset(selectors, rules, this.strictImports, this.visibilityInfo());\n let rule;\n let subRule;\n\n ruleset.originalRuleset = this;\n ruleset.root = this.root;\n ruleset.firstRoot = this.firstRoot;\n ruleset.allowImports = this.allowImports;\n\n if (this.debugInfo) {\n ruleset.debugInfo = this.debugInfo;\n }\n\n if (!hasOnePassingSelector) {\n rules.length = 0;\n }\n\n // inherit a function registry from the frames stack when possible;\n // otherwise from the global registry\n ruleset.functionRegistry = (function (frames) {\n let i = 0;\n const n = frames.length;\n let found;\n for ( ; i !== n ; ++i ) {\n found = frames[ i ].functionRegistry;\n if ( found ) { return found; }\n }\n return globalFunctionRegistry;\n }(context.frames)).inherit();\n\n // push the current ruleset to the frames stack\n const ctxFrames = context.frames;\n ctxFrames.unshift(ruleset);\n\n // currrent selectors\n let ctxSelectors = context.selectors;\n if (!ctxSelectors) {\n context.selectors = ctxSelectors = [];\n }\n ctxSelectors.unshift(this.selectors);\n\n // Evaluate imports\n if (ruleset.root || ruleset.allowImports || !ruleset.strictImports) {\n ruleset.evalImports(context);\n }\n\n // Store the frames around mixin definitions,\n // so they can be evaluated like closures when the time comes.\n const rsRules = ruleset.rules;\n for (i = 0; (rule = rsRules[i]); i++) {\n if (rule.evalFirst) {\n rsRules[i] = rule.eval(context);\n }\n }\n\n const mediaBlockCount = (context.mediaBlocks && context.mediaBlocks.length) || 0;\n\n // Evaluate mixin calls.\n for (i = 0; (rule = rsRules[i]); i++) {\n if (rule.type === 'MixinCall') {\n /* jshint loopfunc:true */\n rules = rule.eval(context).filter(function(r) {\n if ((r instanceof Declaration) && r.variable) {\n // do not pollute the scope if the variable is\n // already there. consider returning false here\n // but we need a way to \"return\" variable from mixins\n return !(ruleset.variable(r.name));\n }\n return true;\n });\n rsRules.splice.apply(rsRules, [i, 1].concat(rules));\n i += rules.length - 1;\n ruleset.resetCache();\n } else if (rule.type === 'VariableCall') {\n /* jshint loopfunc:true */\n rules = rule.eval(context).rules.filter(function(r) {\n if ((r instanceof Declaration) && r.variable) {\n // do not pollute the scope at all\n return false;\n }\n return true;\n });\n rsRules.splice.apply(rsRules, [i, 1].concat(rules));\n i += rules.length - 1;\n ruleset.resetCache();\n }\n }\n\n // Evaluate everything else\n for (i = 0; (rule = rsRules[i]); i++) {\n if (!rule.evalFirst) {\n rsRules[i] = rule = rule.eval ? rule.eval(context) : rule;\n }\n }\n\n // Evaluate everything else\n for (i = 0; (rule = rsRules[i]); i++) {\n // for rulesets, check if it is a css guard and can be removed\n if (rule instanceof Ruleset && rule.selectors && rule.selectors.length === 1) {\n // check if it can be folded in (e.g. & where)\n if (rule.selectors[0] && rule.selectors[0].isJustParentSelector()) {\n rsRules.splice(i--, 1);\n\n for (var j = 0; (subRule = rule.rules[j]); j++) {\n if (subRule instanceof Node) {\n subRule.copyVisibilityInfo(rule.visibilityInfo());\n if (!(subRule instanceof Declaration) || !subRule.variable) {\n rsRules.splice(++i, 0, subRule);\n }\n }\n }\n }\n }\n }\n\n // Pop the stack\n ctxFrames.shift();\n ctxSelectors.shift();\n\n if (context.mediaBlocks) {\n for (i = mediaBlockCount; i < context.mediaBlocks.length; i++) {\n context.mediaBlocks[i].bubbleSelectors(selectors);\n }\n }\n\n return ruleset;\n },\n\n evalImports(context) {\n const rules = this.rules;\n let i;\n let importRules;\n if (!rules) { return; }\n\n for (i = 0; i < rules.length; i++) {\n if (rules[i].type === 'Import') {\n importRules = rules[i].eval(context);\n if (importRules && (importRules.length || importRules.length === 0)) {\n rules.splice.apply(rules, [i, 1].concat(importRules));\n i += importRules.length - 1;\n } else {\n rules.splice(i, 1, importRules);\n }\n this.resetCache();\n }\n }\n },\n\n makeImportant() {\n const result = new Ruleset(this.selectors, this.rules.map(function (r) {\n if (r.makeImportant) {\n return r.makeImportant();\n } else {\n return r;\n }\n }), this.strictImports, this.visibilityInfo());\n\n return result;\n },\n\n matchArgs(args) {\n return !args || args.length === 0;\n },\n\n // lets you call a css selector with a guard\n matchCondition(args, context) {\n const lastSelector = this.selectors[this.selectors.length - 1];\n if (!lastSelector.evaldCondition) {\n return false;\n }\n if (lastSelector.condition &&\n !lastSelector.condition.eval(\n new contexts.Eval(context,\n context.frames))) {\n return false;\n }\n return true;\n },\n\n resetCache() {\n this._rulesets = null;\n this._variables = null;\n this._properties = null;\n this._lookups = {};\n },\n\n variables() {\n if (!this._variables) {\n this._variables = !this.rules ? {} : this.rules.reduce(function (hash, r) {\n if (r instanceof Declaration && r.variable === true) {\n hash[r.name] = r;\n }\n // when evaluating variables in an import statement, imports have not been eval'd\n // so we need to go inside import statements.\n // guard against root being a string (in the case of inlined less)\n if (r.type === 'Import' && r.root && r.root.variables) {\n const vars = r.root.variables();\n for (const name in vars) {\n if (vars.hasOwnProperty(name)) {\n hash[name] = r.root.variable(name);\n }\n }\n }\n return hash;\n }, {});\n }\n return this._variables;\n },\n\n properties() {\n if (!this._properties) {\n this._properties = !this.rules ? {} : this.rules.reduce(function (hash, r) {\n if (r instanceof Declaration && r.variable !== true) {\n const name = (r.name.length === 1) && (r.name[0] instanceof Keyword) ?\n r.name[0].value : r.name;\n // Properties don't overwrite as they can merge\n if (!hash[`$${name}`]) {\n hash[`$${name}`] = [ r ];\n }\n else {\n hash[`$${name}`].push(r);\n }\n }\n return hash;\n }, {});\n }\n return this._properties;\n },\n\n variable(name) {\n const decl = this.variables()[name];\n if (decl) {\n return this.parseValue(decl);\n }\n },\n\n property(name) {\n const decl = this.properties()[name];\n if (decl) {\n return this.parseValue(decl);\n }\n },\n\n lastDeclaration() {\n for (let i = this.rules.length; i > 0; i--) {\n const decl = this.rules[i - 1];\n if (decl instanceof Declaration) {\n return this.parseValue(decl);\n }\n }\n },\n\n parseValue(toParse) {\n const self = this;\n function transformDeclaration(decl) {\n if (decl.value instanceof Anonymous && !decl.parsed) {\n if (typeof decl.value.value === 'string') {\n this.parse.parseNode(\n decl.value.value,\n ['value', 'important'], \n decl.value.getIndex(), \n decl.fileInfo(), \n function(err, result) {\n if (err) {\n decl.parsed = true;\n }\n if (result) {\n decl.value = result[0];\n decl.important = result[1] || '';\n decl.parsed = true;\n }\n });\n } else {\n decl.parsed = true;\n }\n\n return decl;\n }\n else {\n return decl;\n }\n }\n if (!Array.isArray(toParse)) {\n return transformDeclaration.call(self, toParse);\n }\n else {\n const nodes = [];\n toParse.forEach(function(n) {\n nodes.push(transformDeclaration.call(self, n));\n });\n return nodes;\n }\n },\n\n rulesets() {\n if (!this.rules) { return []; }\n\n const filtRules = [];\n const rules = this.rules;\n let i;\n let rule;\n\n for (i = 0; (rule = rules[i]); i++) {\n if (rule.isRuleset) {\n filtRules.push(rule);\n }\n }\n\n return filtRules;\n },\n\n prependRule(rule) {\n const rules = this.rules;\n if (rules) {\n rules.unshift(rule);\n } else {\n this.rules = [ rule ];\n }\n this.setParent(rule, this);\n },\n\n find(selector, self, filter) {\n self = self || this;\n const rules = [];\n let match;\n let foundMixins;\n const key = selector.toCSS();\n\n if (key in this._lookups) { return this._lookups[key]; }\n\n this.rulesets().forEach(function (rule) {\n if (rule !== self) {\n for (let j = 0; j < rule.selectors.length; j++) {\n match = selector.match(rule.selectors[j]);\n if (match) {\n if (selector.elements.length > match) {\n if (!filter || filter(rule)) {\n foundMixins = rule.find(new Selector(selector.elements.slice(match)), self, filter);\n for (let i = 0; i < foundMixins.length; ++i) {\n foundMixins[i].path.push(rule);\n }\n Array.prototype.push.apply(rules, foundMixins);\n }\n } else {\n rules.push({ rule, path: []});\n }\n break;\n }\n }\n }\n });\n this._lookups[key] = rules;\n return rules;\n },\n\n genCSS(context, output) {\n let i;\n let j;\n const charsetRuleNodes = [];\n let ruleNodes = [];\n\n let // Line number debugging\n debugInfo;\n\n let rule;\n let path;\n\n context.tabLevel = (context.tabLevel || 0);\n\n if (!this.root) {\n context.tabLevel++;\n }\n\n const tabRuleStr = context.compress ? '' : Array(context.tabLevel + 1).join(' ');\n const tabSetStr = context.compress ? '' : Array(context.tabLevel).join(' ');\n let sep;\n\n let charsetNodeIndex = 0;\n let importNodeIndex = 0;\n for (i = 0; (rule = this.rules[i]); i++) {\n if (rule instanceof Comment) {\n if (importNodeIndex === i) {\n importNodeIndex++;\n }\n ruleNodes.push(rule);\n } else if (rule.isCharset && rule.isCharset()) {\n ruleNodes.splice(charsetNodeIndex, 0, rule);\n charsetNodeIndex++;\n importNodeIndex++;\n } else if (rule.type === 'Import') {\n ruleNodes.splice(importNodeIndex, 0, rule);\n importNodeIndex++;\n } else {\n ruleNodes.push(rule);\n }\n }\n ruleNodes = charsetRuleNodes.concat(ruleNodes);\n\n // If this is the root node, we don't render\n // a selector, or {}.\n if (!this.root) {\n debugInfo = getDebugInfo(context, this, tabSetStr);\n\n if (debugInfo) {\n output.add(debugInfo);\n output.add(tabSetStr);\n }\n\n const paths = this.paths;\n const pathCnt = paths.length;\n let pathSubCnt;\n\n sep = context.compress ? ',' : (`,\\n${tabSetStr}`);\n\n for (i = 0; i < pathCnt; i++) {\n path = paths[i];\n if (!(pathSubCnt = path.length)) { continue; }\n if (i > 0) { output.add(sep); }\n\n context.firstSelector = true;\n path[0].genCSS(context, output);\n\n context.firstSelector = false;\n for (j = 1; j < pathSubCnt; j++) {\n path[j].genCSS(context, output);\n }\n }\n\n output.add((context.compress ? '{' : ' {\\n') + tabRuleStr);\n }\n\n // Compile rules and rulesets\n for (i = 0; (rule = ruleNodes[i]); i++) {\n\n if (i + 1 === ruleNodes.length) {\n context.lastRule = true;\n }\n\n const currentLastRule = context.lastRule;\n if (rule.isRulesetLike(rule)) {\n context.lastRule = false;\n }\n\n if (rule.genCSS) {\n rule.genCSS(context, output);\n } else if (rule.value) {\n output.add(rule.value.toString());\n }\n\n context.lastRule = currentLastRule;\n\n if (!context.lastRule && rule.isVisible()) {\n output.add(context.compress ? '' : (`\\n${tabRuleStr}`));\n } else {\n context.lastRule = false;\n }\n }\n\n if (!this.root) {\n output.add((context.compress ? '}' : `\\n${tabSetStr}}`));\n context.tabLevel--;\n }\n\n if (!output.isEmpty() && !context.compress && this.firstRoot) {\n output.add('\\n');\n }\n },\n\n joinSelectors(paths, context, selectors) {\n for (let s = 0; s < selectors.length; s++) {\n this.joinSelector(paths, context, selectors[s]);\n }\n },\n\n joinSelector(paths, context, selector) {\n\n function createParenthesis(elementsToPak, originalElement) {\n let replacementParen, j;\n if (elementsToPak.length === 0) {\n replacementParen = new Paren(elementsToPak[0]);\n } else {\n const insideParent = new Array(elementsToPak.length);\n for (j = 0; j < elementsToPak.length; j++) {\n insideParent[j] = new Element(\n null,\n elementsToPak[j],\n originalElement.isVariable,\n originalElement._index,\n originalElement._fileInfo\n );\n }\n replacementParen = new Paren(new Selector(insideParent));\n }\n return replacementParen;\n }\n\n function createSelector(containedElement, originalElement) {\n let element, selector;\n element = new Element(null, containedElement, originalElement.isVariable, originalElement._index, originalElement._fileInfo);\n selector = new Selector([element]);\n return selector;\n }\n\n // joins selector path from `beginningPath` with selector path in `addPath`\n // `replacedElement` contains element that is being replaced by `addPath`\n // returns concatenated path\n function addReplacementIntoPath(beginningPath, addPath, replacedElement, originalSelector) {\n let newSelectorPath, lastSelector, newJoinedSelector;\n // our new selector path\n newSelectorPath = [];\n\n // construct the joined selector - if & is the first thing this will be empty,\n // if not newJoinedSelector will be the last set of elements in the selector\n if (beginningPath.length > 0) {\n newSelectorPath = utils.copyArray(beginningPath);\n lastSelector = newSelectorPath.pop();\n newJoinedSelector = originalSelector.createDerived(utils.copyArray(lastSelector.elements));\n }\n else {\n newJoinedSelector = originalSelector.createDerived([]);\n }\n\n if (addPath.length > 0) {\n // /deep/ is a CSS4 selector - (removed, so should deprecate)\n // that is valid without anything in front of it\n // so if the & does not have a combinator that is \"\" or \" \" then\n // and there is a combinator on the parent, then grab that.\n // this also allows + a { & .b { .a & { ... though not sure why you would want to do that\n let combinator = replacedElement.combinator;\n\n const parentEl = addPath[0].elements[0];\n if (combinator.emptyOrWhitespace && !parentEl.combinator.emptyOrWhitespace) {\n combinator = parentEl.combinator;\n }\n // join the elements so far with the first part of the parent\n newJoinedSelector.elements.push(new Element(\n combinator,\n parentEl.value,\n replacedElement.isVariable,\n replacedElement._index,\n replacedElement._fileInfo\n ));\n newJoinedSelector.elements = newJoinedSelector.elements.concat(addPath[0].elements.slice(1));\n }\n\n // now add the joined selector - but only if it is not empty\n if (newJoinedSelector.elements.length !== 0) {\n newSelectorPath.push(newJoinedSelector);\n }\n\n // put together the parent selectors after the join (e.g. the rest of the parent)\n if (addPath.length > 1) {\n let restOfPath = addPath.slice(1);\n restOfPath = restOfPath.map(function (selector) {\n return selector.createDerived(selector.elements, []);\n });\n newSelectorPath = newSelectorPath.concat(restOfPath);\n }\n return newSelectorPath;\n }\n\n // joins selector path from `beginningPath` with every selector path in `addPaths` array\n // `replacedElement` contains element that is being replaced by `addPath`\n // returns array with all concatenated paths\n function addAllReplacementsIntoPath( beginningPath, addPaths, replacedElement, originalSelector, result) {\n let j;\n for (j = 0; j < beginningPath.length; j++) {\n const newSelectorPath = addReplacementIntoPath(beginningPath[j], addPaths, replacedElement, originalSelector);\n result.push(newSelectorPath);\n }\n return result;\n }\n\n function mergeElementsOnToSelectors(elements, selectors) {\n let i, sel;\n\n if (elements.length === 0) {\n return ;\n }\n if (selectors.length === 0) {\n selectors.push([ new Selector(elements) ]);\n return;\n }\n\n for (i = 0; (sel = selectors[i]); i++) {\n // if the previous thing in sel is a parent this needs to join on to it\n if (sel.length > 0) {\n sel[sel.length - 1] = sel[sel.length - 1].createDerived(sel[sel.length - 1].elements.concat(elements));\n }\n else {\n sel.push(new Selector(elements));\n }\n }\n }\n\n // replace all parent selectors inside `inSelector` by content of `context` array\n // resulting selectors are returned inside `paths` array\n // returns true if `inSelector` contained at least one parent selector\n function replaceParentSelector(paths, context, inSelector) {\n // The paths are [[Selector]]\n // The first list is a list of comma separated selectors\n // The inner list is a list of inheritance separated selectors\n // e.g.\n // .a, .b {\n // .c {\n // }\n // }\n // == [[.a] [.c]] [[.b] [.c]]\n //\n let i, j, k, currentElements, newSelectors, selectorsMultiplied, sel, el, hadParentSelector = false, length, lastSelector;\n function findNestedSelector(element) {\n let maybeSelector;\n if (!(element.value instanceof Paren)) {\n return null;\n }\n\n maybeSelector = element.value.value;\n if (!(maybeSelector instanceof Selector)) {\n return null;\n }\n\n return maybeSelector;\n }\n\n // the elements from the current selector so far\n currentElements = [];\n // the current list of new selectors to add to the path.\n // We will build it up. We initiate it with one empty selector as we \"multiply\" the new selectors\n // by the parents\n newSelectors = [\n []\n ];\n\n for (i = 0; (el = inSelector.elements[i]); i++) {\n // non parent reference elements just get added\n if (el.value !== '&') {\n const nestedSelector = findNestedSelector(el);\n if (nestedSelector != null) {\n // merge the current list of non parent selector elements\n // on to the current list of selectors to add\n mergeElementsOnToSelectors(currentElements, newSelectors);\n\n const nestedPaths = [];\n let replaced;\n const replacedNewSelectors = [];\n replaced = replaceParentSelector(nestedPaths, context, nestedSelector);\n hadParentSelector = hadParentSelector || replaced;\n // the nestedPaths array should have only one member - replaceParentSelector does not multiply selectors\n for (k = 0; k < nestedPaths.length; k++) {\n const replacementSelector = createSelector(createParenthesis(nestedPaths[k], el), el);\n addAllReplacementsIntoPath(newSelectors, [replacementSelector], el, inSelector, replacedNewSelectors);\n }\n newSelectors = replacedNewSelectors;\n currentElements = [];\n } else {\n currentElements.push(el);\n }\n\n } else {\n hadParentSelector = true;\n // the new list of selectors to add\n selectorsMultiplied = [];\n\n // merge the current list of non parent selector elements\n // on to the current list of selectors to add\n mergeElementsOnToSelectors(currentElements, newSelectors);\n\n // loop through our current selectors\n for (j = 0; j < newSelectors.length; j++) {\n sel = newSelectors[j];\n // if we don't have any parent paths, the & might be in a mixin so that it can be used\n // whether there are parents or not\n if (context.length === 0) {\n // the combinator used on el should now be applied to the next element instead so that\n // it is not lost\n if (sel.length > 0) {\n sel[0].elements.push(new Element(el.combinator, '', el.isVariable, el._index, el._fileInfo));\n }\n selectorsMultiplied.push(sel);\n }\n else {\n // and the parent selectors\n for (k = 0; k < context.length; k++) {\n // We need to put the current selectors\n // then join the last selector's elements on to the parents selectors\n const newSelectorPath = addReplacementIntoPath(sel, context[k], el, inSelector);\n // add that to our new set of selectors\n selectorsMultiplied.push(newSelectorPath);\n }\n }\n }\n\n // our new selectors has been multiplied, so reset the state\n newSelectors = selectorsMultiplied;\n currentElements = [];\n }\n }\n\n // if we have any elements left over (e.g. .a& .b == .b)\n // add them on to all the current selectors\n mergeElementsOnToSelectors(currentElements, newSelectors);\n\n for (i = 0; i < newSelectors.length; i++) {\n length = newSelectors[i].length;\n if (length > 0) {\n paths.push(newSelectors[i]);\n lastSelector = newSelectors[i][length - 1];\n newSelectors[i][length - 1] = lastSelector.createDerived(lastSelector.elements, inSelector.extendList);\n }\n }\n\n return hadParentSelector;\n }\n\n function deriveSelector(visibilityInfo, deriveFrom) {\n const newSelector = deriveFrom.createDerived(deriveFrom.elements, deriveFrom.extendList, deriveFrom.evaldCondition);\n newSelector.copyVisibilityInfo(visibilityInfo);\n return newSelector;\n }\n\n // joinSelector code follows\n let i, newPaths, hadParentSelector;\n\n newPaths = [];\n hadParentSelector = replaceParentSelector(newPaths, context, selector);\n\n if (!hadParentSelector) {\n if (context.length > 0) {\n newPaths = [];\n for (i = 0; i < context.length; i++) {\n\n const concatenated = context[i].map(deriveSelector.bind(this, selector.visibilityInfo()));\n\n concatenated.push(selector);\n newPaths.push(concatenated);\n }\n }\n else {\n newPaths = [[selector]];\n }\n }\n\n for (i = 0; i < newPaths.length; i++) {\n paths.push(newPaths[i]);\n }\n\n }\n});\n\nexport default Ruleset;\n"]}
1
+ {"version":3,"file":"ruleset.js","sourceRoot":"","sources":["../../../src/less/tree/ruleset.js"],"names":[],"mappings":"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","sourcesContent":["import Node from './node';\nimport Declaration from './declaration';\nimport Keyword from './keyword';\nimport Comment from './comment';\nimport Paren from './paren';\nimport Selector from './selector';\nimport Element from './element';\nimport Anonymous from './anonymous';\nimport contexts from '../contexts';\nimport globalFunctionRegistry from '../functions/function-registry';\nimport defaultFunc from '../functions/default';\nimport getDebugInfo from './debug-info';\nimport * as utils from '../utils';\nimport Parser from '../parser/parser';\n\nconst Ruleset = function(selectors, rules, strictImports, visibilityInfo) {\n this.selectors = selectors;\n this.rules = rules;\n this._lookups = {};\n this._variables = null;\n this._properties = null;\n this.strictImports = strictImports;\n this.copyVisibilityInfo(visibilityInfo);\n this.allowRoot = true;\n\n this.setParent(this.selectors, this);\n this.setParent(this.rules, this);\n}\n\nRuleset.prototype = Object.assign(new Node(), {\n type: 'Ruleset',\n isRuleset: true,\n\n isRulesetLike() { return true; },\n\n accept(visitor) {\n if (this.paths) {\n this.paths = visitor.visitArray(this.paths, true);\n } else if (this.selectors) {\n this.selectors = visitor.visitArray(this.selectors);\n }\n if (this.rules && this.rules.length) {\n this.rules = visitor.visitArray(this.rules);\n }\n },\n\n eval(context) {\n let selectors;\n let selCnt;\n let selector;\n let i;\n let hasVariable;\n let hasOnePassingSelector = false;\n\n if (this.selectors && (selCnt = this.selectors.length)) {\n selectors = new Array(selCnt);\n defaultFunc.error({\n type: 'Syntax',\n message: 'it is currently only allowed in parametric mixin guards,'\n });\n\n for (i = 0; i < selCnt; i++) {\n selector = this.selectors[i].eval(context);\n for (let j = 0; j < selector.elements.length; j++) {\n if (selector.elements[j].isVariable) {\n hasVariable = true;\n break;\n }\n }\n selectors[i] = selector;\n if (selector.evaldCondition) {\n hasOnePassingSelector = true;\n }\n }\n\n if (hasVariable) {\n const toParseSelectors = new Array(selCnt);\n for (i = 0; i < selCnt; i++) {\n selector = selectors[i];\n toParseSelectors[i] = selector.toCSS(context);\n }\n const startingIndex = selectors[0].getIndex();\n const selectorFileInfo = selectors[0].fileInfo();\n new Parser(context, this.parse.importManager, selectorFileInfo, startingIndex).parseNode(\n toParseSelectors.join(','),\n ['selectors'],\n function(err, result) {\n if (result) {\n selectors = utils.flattenArray(result);\n }\n });\n }\n\n defaultFunc.reset();\n } else {\n hasOnePassingSelector = true;\n }\n\n let rules = this.rules ? utils.copyArray(this.rules) : null;\n const ruleset = new Ruleset(selectors, rules, this.strictImports, this.visibilityInfo());\n let rule;\n let subRule;\n\n ruleset.originalRuleset = this;\n ruleset.root = this.root;\n ruleset.firstRoot = this.firstRoot;\n ruleset.allowImports = this.allowImports;\n\n if (this.debugInfo) {\n ruleset.debugInfo = this.debugInfo;\n }\n\n if (!hasOnePassingSelector) {\n rules.length = 0;\n }\n\n // inherit a function registry from the frames stack when possible;\n // otherwise from the global registry\n ruleset.functionRegistry = (function (frames) {\n let i = 0;\n const n = frames.length;\n let found;\n for ( ; i !== n ; ++i ) {\n found = frames[ i ].functionRegistry;\n if ( found ) { return found; }\n }\n return globalFunctionRegistry;\n }(context.frames)).inherit();\n\n // push the current ruleset to the frames stack\n const ctxFrames = context.frames;\n ctxFrames.unshift(ruleset);\n\n // currrent selectors\n let ctxSelectors = context.selectors;\n if (!ctxSelectors) {\n context.selectors = ctxSelectors = [];\n }\n ctxSelectors.unshift(this.selectors);\n\n // Evaluate imports\n if (ruleset.root || ruleset.allowImports || !ruleset.strictImports) {\n ruleset.evalImports(context);\n }\n\n // Store the frames around mixin definitions,\n // so they can be evaluated like closures when the time comes.\n const rsRules = ruleset.rules;\n for (i = 0; (rule = rsRules[i]); i++) {\n if (rule.evalFirst) {\n rsRules[i] = rule.eval(context);\n }\n }\n\n const mediaBlockCount = (context.mediaBlocks && context.mediaBlocks.length) || 0;\n\n // Evaluate mixin calls.\n for (i = 0; (rule = rsRules[i]); i++) {\n if (rule.type === 'MixinCall') {\n /* jshint loopfunc:true */\n rules = rule.eval(context).filter(function(r) {\n if ((r instanceof Declaration) && r.variable) {\n // do not pollute the scope if the variable is\n // already there. consider returning false here\n // but we need a way to \"return\" variable from mixins\n return !(ruleset.variable(r.name));\n }\n return true;\n });\n rsRules.splice.apply(rsRules, [i, 1].concat(rules));\n i += rules.length - 1;\n ruleset.resetCache();\n } else if (rule.type === 'VariableCall') {\n /* jshint loopfunc:true */\n rules = rule.eval(context).rules.filter(function(r) {\n if ((r instanceof Declaration) && r.variable) {\n // do not pollute the scope at all\n return false;\n }\n return true;\n });\n rsRules.splice.apply(rsRules, [i, 1].concat(rules));\n i += rules.length - 1;\n ruleset.resetCache();\n }\n }\n\n // Evaluate everything else\n for (i = 0; (rule = rsRules[i]); i++) {\n if (!rule.evalFirst) {\n rsRules[i] = rule = rule.eval ? rule.eval(context) : rule;\n }\n }\n\n // Evaluate everything else\n for (i = 0; (rule = rsRules[i]); i++) {\n // for rulesets, check if it is a css guard and can be removed\n if (rule instanceof Ruleset && rule.selectors && rule.selectors.length === 1) {\n // check if it can be folded in (e.g. & where)\n if (rule.selectors[0] && rule.selectors[0].isJustParentSelector()) {\n rsRules.splice(i--, 1);\n\n for (let j = 0; (subRule = rule.rules[j]); j++) {\n if (subRule instanceof Node) {\n subRule.copyVisibilityInfo(rule.visibilityInfo());\n if (!(subRule instanceof Declaration) || !subRule.variable) {\n rsRules.splice(++i, 0, subRule);\n }\n }\n }\n }\n }\n }\n\n // Pop the stack\n ctxFrames.shift();\n ctxSelectors.shift();\n\n if (context.mediaBlocks) {\n for (i = mediaBlockCount; i < context.mediaBlocks.length; i++) {\n context.mediaBlocks[i].bubbleSelectors(selectors);\n }\n }\n\n return ruleset;\n },\n\n evalImports(context) {\n const rules = this.rules;\n let i;\n let importRules;\n if (!rules) { return; }\n\n for (i = 0; i < rules.length; i++) {\n if (rules[i].type === 'Import') {\n importRules = rules[i].eval(context);\n if (importRules && (importRules.length || importRules.length === 0)) {\n rules.splice.apply(rules, [i, 1].concat(importRules));\n i += importRules.length - 1;\n } else {\n rules.splice(i, 1, importRules);\n }\n this.resetCache();\n }\n }\n },\n\n makeImportant() {\n const result = new Ruleset(this.selectors, this.rules.map(function (r) {\n if (r.makeImportant) {\n return r.makeImportant();\n } else {\n return r;\n }\n }), this.strictImports, this.visibilityInfo());\n\n return result;\n },\n\n matchArgs(args) {\n return !args || args.length === 0;\n },\n\n // lets you call a css selector with a guard\n matchCondition(args, context) {\n const lastSelector = this.selectors[this.selectors.length - 1];\n if (!lastSelector.evaldCondition) {\n return false;\n }\n if (lastSelector.condition &&\n !lastSelector.condition.eval(\n new contexts.Eval(context,\n context.frames))) {\n return false;\n }\n return true;\n },\n\n resetCache() {\n this._rulesets = null;\n this._variables = null;\n this._properties = null;\n this._lookups = {};\n },\n\n variables() {\n if (!this._variables) {\n this._variables = !this.rules ? {} : this.rules.reduce(function (hash, r) {\n if (r instanceof Declaration && r.variable === true) {\n hash[r.name] = r;\n }\n // when evaluating variables in an import statement, imports have not been eval'd\n // so we need to go inside import statements.\n // guard against root being a string (in the case of inlined less)\n if (r.type === 'Import' && r.root && r.root.variables) {\n const vars = r.root.variables();\n for (const name in vars) {\n // eslint-disable-next-line no-prototype-builtins\n if (vars.hasOwnProperty(name)) {\n hash[name] = r.root.variable(name);\n }\n }\n }\n return hash;\n }, {});\n }\n return this._variables;\n },\n\n properties() {\n if (!this._properties) {\n this._properties = !this.rules ? {} : this.rules.reduce(function (hash, r) {\n if (r instanceof Declaration && r.variable !== true) {\n const name = (r.name.length === 1) && (r.name[0] instanceof Keyword) ?\n r.name[0].value : r.name;\n // Properties don't overwrite as they can merge\n if (!hash[`$${name}`]) {\n hash[`$${name}`] = [ r ];\n }\n else {\n hash[`$${name}`].push(r);\n }\n }\n return hash;\n }, {});\n }\n return this._properties;\n },\n\n variable(name) {\n const decl = this.variables()[name];\n if (decl) {\n return this.parseValue(decl);\n }\n },\n\n property(name) {\n const decl = this.properties()[name];\n if (decl) {\n return this.parseValue(decl);\n }\n },\n\n lastDeclaration() {\n for (let i = this.rules.length; i > 0; i--) {\n const decl = this.rules[i - 1];\n if (decl instanceof Declaration) {\n return this.parseValue(decl);\n }\n }\n },\n\n parseValue(toParse) {\n const self = this;\n function transformDeclaration(decl) {\n if (decl.value instanceof Anonymous && !decl.parsed) {\n if (typeof decl.value.value === 'string') {\n new Parser(this.parse.context, this.parse.importManager, decl.fileInfo(), decl.value.getIndex()).parseNode(\n decl.value.value,\n ['value', 'important'],\n function(err, result) {\n if (err) {\n decl.parsed = true;\n }\n if (result) {\n decl.value = result[0];\n decl.important = result[1] || '';\n decl.parsed = true;\n }\n });\n } else {\n decl.parsed = true;\n }\n\n return decl;\n }\n else {\n return decl;\n }\n }\n if (!Array.isArray(toParse)) {\n return transformDeclaration.call(self, toParse);\n }\n else {\n const nodes = [];\n toParse.forEach(function(n) {\n nodes.push(transformDeclaration.call(self, n));\n });\n return nodes;\n }\n },\n\n rulesets() {\n if (!this.rules) { return []; }\n\n const filtRules = [];\n const rules = this.rules;\n let i;\n let rule;\n\n for (i = 0; (rule = rules[i]); i++) {\n if (rule.isRuleset) {\n filtRules.push(rule);\n }\n }\n\n return filtRules;\n },\n\n prependRule(rule) {\n const rules = this.rules;\n if (rules) {\n rules.unshift(rule);\n } else {\n this.rules = [ rule ];\n }\n this.setParent(rule, this);\n },\n\n find(selector, self, filter) {\n self = self || this;\n const rules = [];\n let match;\n let foundMixins;\n const key = selector.toCSS();\n\n if (key in this._lookups) { return this._lookups[key]; }\n\n this.rulesets().forEach(function (rule) {\n if (rule !== self) {\n for (let j = 0; j < rule.selectors.length; j++) {\n match = selector.match(rule.selectors[j]);\n if (match) {\n if (selector.elements.length > match) {\n if (!filter || filter(rule)) {\n foundMixins = rule.find(new Selector(selector.elements.slice(match)), self, filter);\n for (let i = 0; i < foundMixins.length; ++i) {\n foundMixins[i].path.push(rule);\n }\n Array.prototype.push.apply(rules, foundMixins);\n }\n } else {\n rules.push({ rule, path: []});\n }\n break;\n }\n }\n }\n });\n this._lookups[key] = rules;\n return rules;\n },\n\n genCSS(context, output) {\n let i;\n let j;\n const charsetRuleNodes = [];\n let ruleNodes = [];\n\n let // Line number debugging\n debugInfo;\n\n let rule;\n let path;\n\n context.tabLevel = (context.tabLevel || 0);\n\n if (!this.root) {\n context.tabLevel++;\n }\n\n const tabRuleStr = context.compress ? '' : Array(context.tabLevel + 1).join(' ');\n const tabSetStr = context.compress ? '' : Array(context.tabLevel).join(' ');\n let sep;\n\n let charsetNodeIndex = 0;\n let importNodeIndex = 0;\n for (i = 0; (rule = this.rules[i]); i++) {\n if (rule instanceof Comment) {\n if (importNodeIndex === i) {\n importNodeIndex++;\n }\n ruleNodes.push(rule);\n } else if (rule.isCharset && rule.isCharset()) {\n ruleNodes.splice(charsetNodeIndex, 0, rule);\n charsetNodeIndex++;\n importNodeIndex++;\n } else if (rule.type === 'Import') {\n ruleNodes.splice(importNodeIndex, 0, rule);\n importNodeIndex++;\n } else {\n ruleNodes.push(rule);\n }\n }\n ruleNodes = charsetRuleNodes.concat(ruleNodes);\n\n // If this is the root node, we don't render\n // a selector, or {}.\n if (!this.root) {\n debugInfo = getDebugInfo(context, this, tabSetStr);\n\n if (debugInfo) {\n output.add(debugInfo);\n output.add(tabSetStr);\n }\n\n const paths = this.paths;\n const pathCnt = paths.length;\n let pathSubCnt;\n\n sep = context.compress ? ',' : (`,\\n${tabSetStr}`);\n\n for (i = 0; i < pathCnt; i++) {\n path = paths[i];\n if (!(pathSubCnt = path.length)) { continue; }\n if (i > 0) { output.add(sep); }\n\n context.firstSelector = true;\n path[0].genCSS(context, output);\n\n context.firstSelector = false;\n for (j = 1; j < pathSubCnt; j++) {\n path[j].genCSS(context, output);\n }\n }\n\n output.add((context.compress ? '{' : ' {\\n') + tabRuleStr);\n }\n\n // Compile rules and rulesets\n for (i = 0; (rule = ruleNodes[i]); i++) {\n\n if (i + 1 === ruleNodes.length) {\n context.lastRule = true;\n }\n\n const currentLastRule = context.lastRule;\n if (rule.isRulesetLike(rule)) {\n context.lastRule = false;\n }\n\n if (rule.genCSS) {\n rule.genCSS(context, output);\n } else if (rule.value) {\n output.add(rule.value.toString());\n }\n\n context.lastRule = currentLastRule;\n\n if (!context.lastRule && rule.isVisible()) {\n output.add(context.compress ? '' : (`\\n${tabRuleStr}`));\n } else {\n context.lastRule = false;\n }\n }\n\n if (!this.root) {\n output.add((context.compress ? '}' : `\\n${tabSetStr}}`));\n context.tabLevel--;\n }\n\n if (!output.isEmpty() && !context.compress && this.firstRoot) {\n output.add('\\n');\n }\n },\n\n joinSelectors(paths, context, selectors) {\n for (let s = 0; s < selectors.length; s++) {\n this.joinSelector(paths, context, selectors[s]);\n }\n },\n\n joinSelector(paths, context, selector) {\n\n function createParenthesis(elementsToPak, originalElement) {\n let replacementParen, j;\n if (elementsToPak.length === 0) {\n replacementParen = new Paren(elementsToPak[0]);\n } else {\n const insideParent = new Array(elementsToPak.length);\n for (j = 0; j < elementsToPak.length; j++) {\n insideParent[j] = new Element(\n null,\n elementsToPak[j],\n originalElement.isVariable,\n originalElement._index,\n originalElement._fileInfo\n );\n }\n replacementParen = new Paren(new Selector(insideParent));\n }\n return replacementParen;\n }\n\n function createSelector(containedElement, originalElement) {\n let element, selector;\n element = new Element(null, containedElement, originalElement.isVariable, originalElement._index, originalElement._fileInfo);\n selector = new Selector([element]);\n return selector;\n }\n\n // joins selector path from `beginningPath` with selector path in `addPath`\n // `replacedElement` contains element that is being replaced by `addPath`\n // returns concatenated path\n function addReplacementIntoPath(beginningPath, addPath, replacedElement, originalSelector) {\n let newSelectorPath, lastSelector, newJoinedSelector;\n // our new selector path\n newSelectorPath = [];\n\n // construct the joined selector - if & is the first thing this will be empty,\n // if not newJoinedSelector will be the last set of elements in the selector\n if (beginningPath.length > 0) {\n newSelectorPath = utils.copyArray(beginningPath);\n lastSelector = newSelectorPath.pop();\n newJoinedSelector = originalSelector.createDerived(utils.copyArray(lastSelector.elements));\n }\n else {\n newJoinedSelector = originalSelector.createDerived([]);\n }\n\n if (addPath.length > 0) {\n // /deep/ is a CSS4 selector - (removed, so should deprecate)\n // that is valid without anything in front of it\n // so if the & does not have a combinator that is \"\" or \" \" then\n // and there is a combinator on the parent, then grab that.\n // this also allows + a { & .b { .a & { ... though not sure why you would want to do that\n let combinator = replacedElement.combinator;\n\n const parentEl = addPath[0].elements[0];\n if (combinator.emptyOrWhitespace && !parentEl.combinator.emptyOrWhitespace) {\n combinator = parentEl.combinator;\n }\n // join the elements so far with the first part of the parent\n newJoinedSelector.elements.push(new Element(\n combinator,\n parentEl.value,\n replacedElement.isVariable,\n replacedElement._index,\n replacedElement._fileInfo\n ));\n newJoinedSelector.elements = newJoinedSelector.elements.concat(addPath[0].elements.slice(1));\n }\n\n // now add the joined selector - but only if it is not empty\n if (newJoinedSelector.elements.length !== 0) {\n newSelectorPath.push(newJoinedSelector);\n }\n\n // put together the parent selectors after the join (e.g. the rest of the parent)\n if (addPath.length > 1) {\n let restOfPath = addPath.slice(1);\n restOfPath = restOfPath.map(function (selector) {\n return selector.createDerived(selector.elements, []);\n });\n newSelectorPath = newSelectorPath.concat(restOfPath);\n }\n return newSelectorPath;\n }\n\n // joins selector path from `beginningPath` with every selector path in `addPaths` array\n // `replacedElement` contains element that is being replaced by `addPath`\n // returns array with all concatenated paths\n function addAllReplacementsIntoPath( beginningPath, addPaths, replacedElement, originalSelector, result) {\n let j;\n for (j = 0; j < beginningPath.length; j++) {\n const newSelectorPath = addReplacementIntoPath(beginningPath[j], addPaths, replacedElement, originalSelector);\n result.push(newSelectorPath);\n }\n return result;\n }\n\n function mergeElementsOnToSelectors(elements, selectors) {\n let i, sel;\n\n if (elements.length === 0) {\n return ;\n }\n if (selectors.length === 0) {\n selectors.push([ new Selector(elements) ]);\n return;\n }\n\n for (i = 0; (sel = selectors[i]); i++) {\n // if the previous thing in sel is a parent this needs to join on to it\n if (sel.length > 0) {\n sel[sel.length - 1] = sel[sel.length - 1].createDerived(sel[sel.length - 1].elements.concat(elements));\n }\n else {\n sel.push(new Selector(elements));\n }\n }\n }\n\n // replace all parent selectors inside `inSelector` by content of `context` array\n // resulting selectors are returned inside `paths` array\n // returns true if `inSelector` contained at least one parent selector\n function replaceParentSelector(paths, context, inSelector) {\n // The paths are [[Selector]]\n // The first list is a list of comma separated selectors\n // The inner list is a list of inheritance separated selectors\n // e.g.\n // .a, .b {\n // .c {\n // }\n // }\n // == [[.a] [.c]] [[.b] [.c]]\n //\n let i, j, k, currentElements, newSelectors, selectorsMultiplied, sel, el, hadParentSelector = false, length, lastSelector;\n function findNestedSelector(element) {\n let maybeSelector;\n if (!(element.value instanceof Paren)) {\n return null;\n }\n\n maybeSelector = element.value.value;\n if (!(maybeSelector instanceof Selector)) {\n return null;\n }\n\n return maybeSelector;\n }\n\n // the elements from the current selector so far\n currentElements = [];\n // the current list of new selectors to add to the path.\n // We will build it up. We initiate it with one empty selector as we \"multiply\" the new selectors\n // by the parents\n newSelectors = [\n []\n ];\n\n for (i = 0; (el = inSelector.elements[i]); i++) {\n // non parent reference elements just get added\n if (el.value !== '&') {\n const nestedSelector = findNestedSelector(el);\n if (nestedSelector !== null) {\n // merge the current list of non parent selector elements\n // on to the current list of selectors to add\n mergeElementsOnToSelectors(currentElements, newSelectors);\n\n const nestedPaths = [];\n let replaced;\n const replacedNewSelectors = [];\n replaced = replaceParentSelector(nestedPaths, context, nestedSelector);\n hadParentSelector = hadParentSelector || replaced;\n // the nestedPaths array should have only one member - replaceParentSelector does not multiply selectors\n for (k = 0; k < nestedPaths.length; k++) {\n const replacementSelector = createSelector(createParenthesis(nestedPaths[k], el), el);\n addAllReplacementsIntoPath(newSelectors, [replacementSelector], el, inSelector, replacedNewSelectors);\n }\n newSelectors = replacedNewSelectors;\n currentElements = [];\n } else {\n currentElements.push(el);\n }\n\n } else {\n hadParentSelector = true;\n // the new list of selectors to add\n selectorsMultiplied = [];\n\n // merge the current list of non parent selector elements\n // on to the current list of selectors to add\n mergeElementsOnToSelectors(currentElements, newSelectors);\n\n // loop through our current selectors\n for (j = 0; j < newSelectors.length; j++) {\n sel = newSelectors[j];\n // if we don't have any parent paths, the & might be in a mixin so that it can be used\n // whether there are parents or not\n if (context.length === 0) {\n // the combinator used on el should now be applied to the next element instead so that\n // it is not lost\n if (sel.length > 0) {\n sel[0].elements.push(new Element(el.combinator, '', el.isVariable, el._index, el._fileInfo));\n }\n selectorsMultiplied.push(sel);\n }\n else {\n // and the parent selectors\n for (k = 0; k < context.length; k++) {\n // We need to put the current selectors\n // then join the last selector's elements on to the parents selectors\n const newSelectorPath = addReplacementIntoPath(sel, context[k], el, inSelector);\n // add that to our new set of selectors\n selectorsMultiplied.push(newSelectorPath);\n }\n }\n }\n\n // our new selectors has been multiplied, so reset the state\n newSelectors = selectorsMultiplied;\n currentElements = [];\n }\n }\n\n // if we have any elements left over (e.g. .a& .b == .b)\n // add them on to all the current selectors\n mergeElementsOnToSelectors(currentElements, newSelectors);\n\n for (i = 0; i < newSelectors.length; i++) {\n length = newSelectors[i].length;\n if (length > 0) {\n paths.push(newSelectors[i]);\n lastSelector = newSelectors[i][length - 1];\n newSelectors[i][length - 1] = lastSelector.createDerived(lastSelector.elements, inSelector.extendList);\n }\n }\n\n return hadParentSelector;\n }\n\n function deriveSelector(visibilityInfo, deriveFrom) {\n const newSelector = deriveFrom.createDerived(deriveFrom.elements, deriveFrom.extendList, deriveFrom.evaldCondition);\n newSelector.copyVisibilityInfo(visibilityInfo);\n return newSelector;\n }\n\n // joinSelector code follows\n let i, newPaths, hadParentSelector;\n\n newPaths = [];\n hadParentSelector = replaceParentSelector(newPaths, context, selector);\n\n if (!hadParentSelector) {\n if (context.length > 0) {\n newPaths = [];\n for (i = 0; i < context.length; i++) {\n\n const concatenated = context[i].map(deriveSelector.bind(this, selector.visibilityInfo()));\n\n concatenated.push(selector);\n newPaths.push(concatenated);\n }\n }\n else {\n newPaths = [[selector]];\n }\n }\n\n for (i = 0; i < newPaths.length; i++) {\n paths.push(newPaths[i]);\n }\n\n }\n});\n\nexport default Ruleset;\n"]}
@@ -4,6 +4,8 @@ var tslib_1 = require("tslib");
4
4
  var node_1 = tslib_1.__importDefault(require("./node"));
5
5
  var element_1 = tslib_1.__importDefault(require("./element"));
6
6
  var less_error_1 = tslib_1.__importDefault(require("../less-error"));
7
+ var utils = tslib_1.__importStar(require("../utils"));
8
+ var parser_1 = tslib_1.__importDefault(require("../parser/parser"));
7
9
  var Selector = function (elements, extendList, condition, index, currentFileInfo, visibilityInfo) {
8
10
  this.extendList = extendList;
9
11
  this.condition = condition;
@@ -31,7 +33,7 @@ Selector.prototype = Object.assign(new node_1.default(), {
31
33
  createDerived: function (elements, extendList, evaldCondition) {
32
34
  elements = this.getElements(elements);
33
35
  var newSelector = new Selector(elements, extendList || this.extendList, null, this.getIndex(), this.fileInfo(), this.visibilityInfo());
34
- newSelector.evaldCondition = (evaldCondition != null) ? evaldCondition : this.evaldCondition;
36
+ newSelector.evaldCondition = (!utils.isNullOrUndefined(evaldCondition)) ? evaldCondition : this.evaldCondition;
35
37
  newSelector.mediaEmpty = this.mediaEmpty;
36
38
  return newSelector;
37
39
  },
@@ -40,7 +42,7 @@ Selector.prototype = Object.assign(new node_1.default(), {
40
42
  return [new element_1.default('', '&', false, this._index, this._fileInfo)];
41
43
  }
42
44
  if (typeof els === 'string') {
43
- this.parse.parseNode(els, ['selector'], this._index, this._fileInfo, function (err, result) {
45
+ new parser_1.default(this.parse.context, this.parse.importManager, this._fileInfo, this._index).parseNode(els, ['selector'], function (err, result) {
44
46
  if (err) {
45
47
  throw new less_error_1.default({
46
48
  index: err.index,
@@ -82,7 +84,7 @@ Selector.prototype = Object.assign(new node_1.default(), {
82
84
  }
83
85
  var elements = this.elements.map(function (v) {
84
86
  return v.combinator.value + (v.value.value || v.value);
85
- }).join('').match(/[,&#\*\.\w-]([\w-]|(\\.))*/g);
87
+ }).join('').match(/[,&#*.\w-]([\w-]|(\\.))*/g);
86
88
  if (elements) {
87
89
  if (elements[0] === '&') {
88
90
  elements.shift();
@@ -1 +1 @@
1
- {"version":3,"file":"selector.js","sourceRoot":"","sources":["../../../src/less/tree/selector.js"],"names":[],"mappings":"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","sourcesContent":["import Node from './node';\nimport Element from './element';\nimport LessError from '../less-error';\n\nconst Selector = function(elements, extendList, condition, index, currentFileInfo, visibilityInfo) {\n this.extendList = extendList;\n this.condition = condition;\n this.evaldCondition = !condition;\n this._index = index;\n this._fileInfo = currentFileInfo;\n this.elements = this.getElements(elements);\n this.mixinElements_ = undefined;\n this.copyVisibilityInfo(visibilityInfo);\n this.setParent(this.elements, this);\n};\n\nSelector.prototype = Object.assign(new Node(), {\n type: 'Selector',\n\n accept(visitor) {\n if (this.elements) {\n this.elements = visitor.visitArray(this.elements);\n }\n if (this.extendList) {\n this.extendList = visitor.visitArray(this.extendList);\n }\n if (this.condition) {\n this.condition = visitor.visit(this.condition);\n }\n },\n\n createDerived(elements, extendList, evaldCondition) {\n elements = this.getElements(elements);\n const newSelector = new Selector(elements, extendList || this.extendList,\n null, this.getIndex(), this.fileInfo(), this.visibilityInfo());\n newSelector.evaldCondition = (evaldCondition != null) ? evaldCondition : this.evaldCondition;\n newSelector.mediaEmpty = this.mediaEmpty;\n return newSelector;\n },\n\n getElements(els) {\n if (!els) {\n return [new Element('', '&', false, this._index, this._fileInfo)];\n }\n if (typeof els === 'string') {\n this.parse.parseNode(\n els, \n ['selector'],\n this._index, \n this._fileInfo, \n function(err, result) {\n if (err) {\n throw new LessError({\n index: err.index,\n message: err.message\n }, this.parse.imports, this._fileInfo.filename);\n }\n els = result[0].elements;\n });\n }\n return els;\n },\n\n createEmptySelectors() {\n const el = new Element('', '&', false, this._index, this._fileInfo), sels = [new Selector([el], null, null, this._index, this._fileInfo)];\n sels[0].mediaEmpty = true;\n return sels;\n },\n\n match(other) {\n const elements = this.elements;\n const len = elements.length;\n let olen;\n let i;\n\n other = other.mixinElements();\n olen = other.length;\n if (olen === 0 || len < olen) {\n return 0;\n } else {\n for (i = 0; i < olen; i++) {\n if (elements[i].value !== other[i]) {\n return 0;\n }\n }\n }\n\n return olen; // return number of matched elements\n },\n\n mixinElements() {\n if (this.mixinElements_) {\n return this.mixinElements_;\n }\n\n let elements = this.elements.map( function(v) {\n return v.combinator.value + (v.value.value || v.value);\n }).join('').match(/[,&#\\*\\.\\w-]([\\w-]|(\\\\.))*/g);\n\n if (elements) {\n if (elements[0] === '&') {\n elements.shift();\n }\n } else {\n elements = [];\n }\n\n return (this.mixinElements_ = elements);\n },\n\n isJustParentSelector() {\n return !this.mediaEmpty &&\n this.elements.length === 1 &&\n this.elements[0].value === '&' &&\n (this.elements[0].combinator.value === ' ' || this.elements[0].combinator.value === '');\n },\n\n eval(context) {\n const evaldCondition = this.condition && this.condition.eval(context);\n let elements = this.elements;\n let extendList = this.extendList;\n\n elements = elements && elements.map(function (e) { return e.eval(context); });\n extendList = extendList && extendList.map(function(extend) { return extend.eval(context); });\n\n return this.createDerived(elements, extendList, evaldCondition);\n },\n\n genCSS(context, output) {\n let i, element;\n if ((!context || !context.firstSelector) && this.elements[0].combinator.value === '') {\n output.add(' ', this.fileInfo(), this.getIndex());\n }\n for (i = 0; i < this.elements.length; i++) {\n element = this.elements[i];\n element.genCSS(context, output);\n }\n },\n\n getIsOutput() {\n return this.evaldCondition;\n }\n});\n\nexport default Selector;\n"]}
1
+ {"version":3,"file":"selector.js","sourceRoot":"","sources":["../../../src/less/tree/selector.js"],"names":[],"mappings":"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","sourcesContent":["import Node from './node';\nimport Element from './element';\nimport LessError from '../less-error';\nimport * as utils from '../utils';\nimport Parser from '../parser/parser';\n\nconst Selector = function(elements, extendList, condition, index, currentFileInfo, visibilityInfo) {\n this.extendList = extendList;\n this.condition = condition;\n this.evaldCondition = !condition;\n this._index = index;\n this._fileInfo = currentFileInfo;\n this.elements = this.getElements(elements);\n this.mixinElements_ = undefined;\n this.copyVisibilityInfo(visibilityInfo);\n this.setParent(this.elements, this);\n};\n\nSelector.prototype = Object.assign(new Node(), {\n type: 'Selector',\n\n accept(visitor) {\n if (this.elements) {\n this.elements = visitor.visitArray(this.elements);\n }\n if (this.extendList) {\n this.extendList = visitor.visitArray(this.extendList);\n }\n if (this.condition) {\n this.condition = visitor.visit(this.condition);\n }\n },\n\n createDerived(elements, extendList, evaldCondition) {\n elements = this.getElements(elements);\n const newSelector = new Selector(elements, extendList || this.extendList,\n null, this.getIndex(), this.fileInfo(), this.visibilityInfo());\n newSelector.evaldCondition = (!utils.isNullOrUndefined(evaldCondition)) ? evaldCondition : this.evaldCondition;\n newSelector.mediaEmpty = this.mediaEmpty;\n return newSelector;\n },\n\n getElements(els) {\n if (!els) {\n return [new Element('', '&', false, this._index, this._fileInfo)];\n }\n if (typeof els === 'string') {\n new Parser(this.parse.context, this.parse.importManager, this._fileInfo, this._index).parseNode(\n els,\n ['selector'],\n function(err, result) {\n if (err) {\n throw new LessError({\n index: err.index,\n message: err.message\n }, this.parse.imports, this._fileInfo.filename);\n }\n els = result[0].elements;\n });\n }\n return els;\n },\n\n createEmptySelectors() {\n const el = new Element('', '&', false, this._index, this._fileInfo), sels = [new Selector([el], null, null, this._index, this._fileInfo)];\n sels[0].mediaEmpty = true;\n return sels;\n },\n\n match(other) {\n const elements = this.elements;\n const len = elements.length;\n let olen;\n let i;\n\n other = other.mixinElements();\n olen = other.length;\n if (olen === 0 || len < olen) {\n return 0;\n } else {\n for (i = 0; i < olen; i++) {\n if (elements[i].value !== other[i]) {\n return 0;\n }\n }\n }\n\n return olen; // return number of matched elements\n },\n\n mixinElements() {\n if (this.mixinElements_) {\n return this.mixinElements_;\n }\n\n let elements = this.elements.map( function(v) {\n return v.combinator.value + (v.value.value || v.value);\n }).join('').match(/[,&#*.\\w-]([\\w-]|(\\\\.))*/g);\n\n if (elements) {\n if (elements[0] === '&') {\n elements.shift();\n }\n } else {\n elements = [];\n }\n\n return (this.mixinElements_ = elements);\n },\n\n isJustParentSelector() {\n return !this.mediaEmpty &&\n this.elements.length === 1 &&\n this.elements[0].value === '&' &&\n (this.elements[0].combinator.value === ' ' || this.elements[0].combinator.value === '');\n },\n\n eval(context) {\n const evaldCondition = this.condition && this.condition.eval(context);\n let elements = this.elements;\n let extendList = this.extendList;\n\n elements = elements && elements.map(function (e) { return e.eval(context); });\n extendList = extendList && extendList.map(function(extend) { return extend.eval(context); });\n\n return this.createDerived(elements, extendList, evaldCondition);\n },\n\n genCSS(context, output) {\n let i, element;\n if ((!context || !context.firstSelector) && this.elements[0].combinator.value === '') {\n output.add(' ', this.fileInfo(), this.getIndex());\n }\n for (i = 0; i < this.elements.length; i++) {\n element = this.elements[i];\n element.genCSS(context, output);\n }\n },\n\n getIsOutput() {\n return this.evaldCondition;\n }\n});\n\nexport default Selector;\n"]}
@@ -69,13 +69,14 @@ Unit.prototype = Object.assign(new node_1.default(), {
69
69
  var mapUnit;
70
70
  var groupName;
71
71
  mapUnit = function (atomicUnit) {
72
- /* jshint loopfunc:true */
72
+ // eslint-disable-next-line no-prototype-builtins
73
73
  if (group.hasOwnProperty(atomicUnit) && !result[groupName]) {
74
74
  result[groupName] = atomicUnit;
75
75
  }
76
76
  return atomicUnit;
77
77
  };
78
78
  for (groupName in unit_conversions_1.default) {
79
+ // eslint-disable-next-line no-prototype-builtins
79
80
  if (unit_conversions_1.default.hasOwnProperty(groupName)) {
80
81
  group = unit_conversions_1.default[groupName];
81
82
  this.map(mapUnit);
@@ -98,6 +99,7 @@ Unit.prototype = Object.assign(new node_1.default(), {
98
99
  this.numerator = [];
99
100
  this.denominator = [];
100
101
  for (atomicUnit in counter) {
102
+ // eslint-disable-next-line no-prototype-builtins
101
103
  if (counter.hasOwnProperty(atomicUnit)) {
102
104
  var count = counter[atomicUnit];
103
105
  if (count > 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"unit.js","sourceRoot":"","sources":["../../../src/less/tree/unit.js"],"names":[],"mappings":"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","sourcesContent":["import Node from './node';\nimport unitConversions from '../data/unit-conversions';\nimport * as utils from '../utils';\n\nconst Unit = function(numerator, denominator, backupUnit) {\n this.numerator = numerator ? utils.copyArray(numerator).sort() : [];\n this.denominator = denominator ? utils.copyArray(denominator).sort() : [];\n if (backupUnit) {\n this.backupUnit = backupUnit;\n } else if (numerator && numerator.length) {\n this.backupUnit = numerator[0];\n }\n};\n\nUnit.prototype = Object.assign(new Node(), {\n type: 'Unit',\n\n clone() {\n return new Unit(utils.copyArray(this.numerator), utils.copyArray(this.denominator), this.backupUnit);\n },\n\n genCSS(context, output) {\n // Dimension checks the unit is singular and throws an error if in strict math mode.\n const strictUnits = context && context.strictUnits;\n if (this.numerator.length === 1) {\n output.add(this.numerator[0]); // the ideal situation\n } else if (!strictUnits && this.backupUnit) {\n output.add(this.backupUnit);\n } else if (!strictUnits && this.denominator.length) {\n output.add(this.denominator[0]);\n }\n },\n\n toString() {\n let i, returnStr = this.numerator.join('*');\n for (i = 0; i < this.denominator.length; i++) {\n returnStr += `/${this.denominator[i]}`;\n }\n return returnStr;\n },\n\n compare(other) {\n return this.is(other.toString()) ? 0 : undefined;\n },\n\n is(unitString) {\n return this.toString().toUpperCase() === unitString.toUpperCase();\n },\n\n isLength() {\n return RegExp('^(px|em|ex|ch|rem|in|cm|mm|pc|pt|ex|vw|vh|vmin|vmax)$', 'gi').test(this.toCSS());\n },\n\n isEmpty() {\n return this.numerator.length === 0 && this.denominator.length === 0;\n },\n\n isSingular() {\n return this.numerator.length <= 1 && this.denominator.length === 0;\n },\n\n map(callback) {\n let i;\n\n for (i = 0; i < this.numerator.length; i++) {\n this.numerator[i] = callback(this.numerator[i], false);\n }\n\n for (i = 0; i < this.denominator.length; i++) {\n this.denominator[i] = callback(this.denominator[i], true);\n }\n },\n\n usedUnits() {\n let group;\n const result = {};\n let mapUnit;\n let groupName;\n\n mapUnit = function (atomicUnit) {\n /* jshint loopfunc:true */\n if (group.hasOwnProperty(atomicUnit) && !result[groupName]) {\n result[groupName] = atomicUnit;\n }\n\n return atomicUnit;\n };\n\n for (groupName in unitConversions) {\n if (unitConversions.hasOwnProperty(groupName)) {\n group = unitConversions[groupName];\n\n this.map(mapUnit);\n }\n }\n\n return result;\n },\n\n cancel() {\n const counter = {};\n let atomicUnit;\n let i;\n\n for (i = 0; i < this.numerator.length; i++) {\n atomicUnit = this.numerator[i];\n counter[atomicUnit] = (counter[atomicUnit] || 0) + 1;\n }\n\n for (i = 0; i < this.denominator.length; i++) {\n atomicUnit = this.denominator[i];\n counter[atomicUnit] = (counter[atomicUnit] || 0) - 1;\n }\n\n this.numerator = [];\n this.denominator = [];\n\n for (atomicUnit in counter) {\n if (counter.hasOwnProperty(atomicUnit)) {\n const count = counter[atomicUnit];\n\n if (count > 0) {\n for (i = 0; i < count; i++) {\n this.numerator.push(atomicUnit);\n }\n } else if (count < 0) {\n for (i = 0; i < -count; i++) {\n this.denominator.push(atomicUnit);\n }\n }\n }\n }\n\n this.numerator.sort();\n this.denominator.sort();\n }\n});\n\nexport default Unit;\n"]}
1
+ {"version":3,"file":"unit.js","sourceRoot":"","sources":["../../../src/less/tree/unit.js"],"names":[],"mappings":"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","sourcesContent":["import Node from './node';\nimport unitConversions from '../data/unit-conversions';\nimport * as utils from '../utils';\n\nconst Unit = function(numerator, denominator, backupUnit) {\n this.numerator = numerator ? utils.copyArray(numerator).sort() : [];\n this.denominator = denominator ? utils.copyArray(denominator).sort() : [];\n if (backupUnit) {\n this.backupUnit = backupUnit;\n } else if (numerator && numerator.length) {\n this.backupUnit = numerator[0];\n }\n};\n\nUnit.prototype = Object.assign(new Node(), {\n type: 'Unit',\n\n clone() {\n return new Unit(utils.copyArray(this.numerator), utils.copyArray(this.denominator), this.backupUnit);\n },\n\n genCSS(context, output) {\n // Dimension checks the unit is singular and throws an error if in strict math mode.\n const strictUnits = context && context.strictUnits;\n if (this.numerator.length === 1) {\n output.add(this.numerator[0]); // the ideal situation\n } else if (!strictUnits && this.backupUnit) {\n output.add(this.backupUnit);\n } else if (!strictUnits && this.denominator.length) {\n output.add(this.denominator[0]);\n }\n },\n\n toString() {\n let i, returnStr = this.numerator.join('*');\n for (i = 0; i < this.denominator.length; i++) {\n returnStr += `/${this.denominator[i]}`;\n }\n return returnStr;\n },\n\n compare(other) {\n return this.is(other.toString()) ? 0 : undefined;\n },\n\n is(unitString) {\n return this.toString().toUpperCase() === unitString.toUpperCase();\n },\n\n isLength() {\n return RegExp('^(px|em|ex|ch|rem|in|cm|mm|pc|pt|ex|vw|vh|vmin|vmax)$', 'gi').test(this.toCSS());\n },\n\n isEmpty() {\n return this.numerator.length === 0 && this.denominator.length === 0;\n },\n\n isSingular() {\n return this.numerator.length <= 1 && this.denominator.length === 0;\n },\n\n map(callback) {\n let i;\n\n for (i = 0; i < this.numerator.length; i++) {\n this.numerator[i] = callback(this.numerator[i], false);\n }\n\n for (i = 0; i < this.denominator.length; i++) {\n this.denominator[i] = callback(this.denominator[i], true);\n }\n },\n\n usedUnits() {\n let group;\n const result = {};\n let mapUnit;\n let groupName;\n\n mapUnit = function (atomicUnit) {\n // eslint-disable-next-line no-prototype-builtins\n if (group.hasOwnProperty(atomicUnit) && !result[groupName]) {\n result[groupName] = atomicUnit;\n }\n\n return atomicUnit;\n };\n\n for (groupName in unitConversions) {\n // eslint-disable-next-line no-prototype-builtins\n if (unitConversions.hasOwnProperty(groupName)) {\n group = unitConversions[groupName];\n\n this.map(mapUnit);\n }\n }\n\n return result;\n },\n\n cancel() {\n const counter = {};\n let atomicUnit;\n let i;\n\n for (i = 0; i < this.numerator.length; i++) {\n atomicUnit = this.numerator[i];\n counter[atomicUnit] = (counter[atomicUnit] || 0) + 1;\n }\n\n for (i = 0; i < this.denominator.length; i++) {\n atomicUnit = this.denominator[i];\n counter[atomicUnit] = (counter[atomicUnit] || 0) - 1;\n }\n\n this.numerator = [];\n this.denominator = [];\n\n for (atomicUnit in counter) {\n // eslint-disable-next-line no-prototype-builtins\n if (counter.hasOwnProperty(atomicUnit)) {\n const count = counter[atomicUnit];\n\n if (count > 0) {\n for (i = 0; i < count; i++) {\n this.numerator.push(atomicUnit);\n }\n } else if (count < 0) {\n for (i = 0; i < -count; i++) {\n this.denominator.push(atomicUnit);\n }\n }\n }\n }\n\n this.numerator.sort();\n this.denominator.sort();\n }\n});\n\nexport default Unit;\n"]}
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var tslib_1 = require("tslib");
4
4
  var node_1 = tslib_1.__importDefault(require("./node"));
5
5
  function escapePath(path) {
6
- return path.replace(/[\(\)'"\s]/g, function (match) { return "\\" + match; });
6
+ return path.replace(/[()'"\s]/g, function (match) { return "\\" + match; });
7
7
  }
8
8
  var URL = function (val, index, currentFileInfo, isEvald) {
9
9
  this.value = val;
@@ -1 +1 @@
1
- {"version":3,"file":"url.js","sourceRoot":"","sources":["../../../src/less/tree/url.js"],"names":[],"mappings":"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","sourcesContent":["import Node from './node';\n\nfunction escapePath(path) {\n return path.replace(/[\\(\\)'\"\\s]/g, function(match) { return `\\\\${match}`; });\n}\n\nconst URL = function(val, index, currentFileInfo, isEvald) {\n this.value = val;\n this._index = index;\n this._fileInfo = currentFileInfo;\n this.isEvald = isEvald;\n};\n\nURL.prototype = Object.assign(new Node(), {\n type: 'Url',\n\n accept(visitor) {\n this.value = visitor.visit(this.value);\n },\n\n genCSS(context, output) {\n output.add('url(');\n this.value.genCSS(context, output);\n output.add(')');\n },\n\n eval(context) {\n const val = this.value.eval(context);\n let rootpath;\n\n if (!this.isEvald) {\n // Add the rootpath if the URL requires a rewrite\n rootpath = this.fileInfo() && this.fileInfo().rootpath;\n if (typeof rootpath === 'string' &&\n typeof val.value === 'string' &&\n context.pathRequiresRewrite(val.value)) {\n if (!val.quote) {\n rootpath = escapePath(rootpath);\n }\n val.value = context.rewritePath(val.value, rootpath);\n } else {\n val.value = context.normalizePath(val.value);\n }\n\n // Add url args if enabled\n if (context.urlArgs) {\n if (!val.value.match(/^\\s*data:/)) {\n const delimiter = val.value.indexOf('?') === -1 ? '?' : '&';\n const urlArgs = delimiter + context.urlArgs;\n if (val.value.indexOf('#') !== -1) {\n val.value = val.value.replace('#', `${urlArgs}#`);\n } else {\n val.value += urlArgs;\n }\n }\n }\n }\n\n return new URL(val, this.getIndex(), this.fileInfo(), true);\n }\n});\n\nexport default URL;\n"]}
1
+ {"version":3,"file":"url.js","sourceRoot":"","sources":["../../../src/less/tree/url.js"],"names":[],"mappings":"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","sourcesContent":["import Node from './node';\n\nfunction escapePath(path) {\n return path.replace(/[()'\"\\s]/g, function(match) { return `\\\\${match}`; });\n}\n\nconst URL = function(val, index, currentFileInfo, isEvald) {\n this.value = val;\n this._index = index;\n this._fileInfo = currentFileInfo;\n this.isEvald = isEvald;\n};\n\nURL.prototype = Object.assign(new Node(), {\n type: 'Url',\n\n accept(visitor) {\n this.value = visitor.visit(this.value);\n },\n\n genCSS(context, output) {\n output.add('url(');\n this.value.genCSS(context, output);\n output.add(')');\n },\n\n eval(context) {\n const val = this.value.eval(context);\n let rootpath;\n\n if (!this.isEvald) {\n // Add the rootpath if the URL requires a rewrite\n rootpath = this.fileInfo() && this.fileInfo().rootpath;\n if (typeof rootpath === 'string' &&\n typeof val.value === 'string' &&\n context.pathRequiresRewrite(val.value)) {\n if (!val.quote) {\n rootpath = escapePath(rootpath);\n }\n val.value = context.rewritePath(val.value, rootpath);\n } else {\n val.value = context.normalizePath(val.value);\n }\n\n // Add url args if enabled\n if (context.urlArgs) {\n if (!val.value.match(/^\\s*data:/)) {\n const delimiter = val.value.indexOf('?') === -1 ? '?' : '&';\n const urlArgs = delimiter + context.urlArgs;\n if (val.value.indexOf('#') !== -1) {\n val.value = val.value.replace('#', `${urlArgs}#`);\n } else {\n val.value += urlArgs;\n }\n }\n }\n }\n\n return new URL(val, this.getIndex(), this.fileInfo(), true);\n }\n});\n\nexport default URL;\n"]}
package/lib/less/utils.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.flattenArray = exports.merge = exports.copyOptions = exports.defaults = exports.clone = exports.copyArray = exports.getLocation = void 0;
3
+ exports.isNullOrUndefined = exports.flattenArray = exports.merge = exports.copyOptions = exports.defaults = exports.clone = exports.copyArray = exports.getLocation = void 0;
4
4
  var tslib_1 = require("tslib");
5
5
  /* jshint proto: true */
6
6
  var Constants = tslib_1.__importStar(require("./constants"));
@@ -34,7 +34,7 @@ exports.copyArray = copyArray;
34
34
  function clone(obj) {
35
35
  var cloned = {};
36
36
  for (var prop in obj) {
37
- if (obj.hasOwnProperty(prop)) {
37
+ if (Object.prototype.hasOwnProperty.call(obj, prop)) {
38
38
  cloned[prop] = obj[prop];
39
39
  }
40
40
  }
@@ -99,7 +99,7 @@ function copyOptions(obj1, obj2) {
99
99
  exports.copyOptions = copyOptions;
100
100
  function merge(obj1, obj2) {
101
101
  for (var prop in obj2) {
102
- if (obj2.hasOwnProperty(prop)) {
102
+ if (Object.prototype.hasOwnProperty.call(obj2, prop)) {
103
103
  obj1[prop] = obj2[prop];
104
104
  }
105
105
  }
@@ -122,4 +122,8 @@ function flattenArray(arr, result) {
122
122
  return result;
123
123
  }
124
124
  exports.flattenArray = flattenArray;
125
+ function isNullOrUndefined(val) {
126
+ return val === null || val === undefined;
127
+ }
128
+ exports.isNullOrUndefined = isNullOrUndefined;
125
129
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/less/utils.js"],"names":[],"mappings":";;;;AAAA,wBAAwB;AACxB,6DAAyC;AACzC,+CAAqC;AAErC,SAAgB,WAAW,CAAC,KAAK,EAAE,WAAW;IAC1C,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;IAClB,IAAI,IAAI,GAAG,IAAI,CAAC;IAChB,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC;IAEhB,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;QAC/C,MAAM,EAAE,CAAC;KACZ;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC3B,IAAI,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;KAClE;IAED,OAAO;QACH,IAAI,MAAA;QACJ,MAAM,QAAA;KACT,CAAC;AACN,CAAC;AAjBD,kCAiBC;AAED,SAAgB,SAAS,CAAC,GAAG;IACzB,IAAI,CAAC,CAAC;IACN,IAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IAC1B,IAAM,IAAI,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;IAE/B,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;QACzB,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;KACpB;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AATD,8BASC;AAED,SAAgB,KAAK,CAAC,GAAG;IACrB,IAAM,MAAM,GAAG,EAAE,CAAC;IAClB,KAAK,IAAM,IAAI,IAAI,GAAG,EAAE;QACpB,IAAI,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;YAC1B,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;SAC5B;KACJ;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AARD,sBAQC;AAED,SAAgB,QAAQ,CAAC,IAAI,EAAE,IAAI;IAC/B,IAAI,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;IACxB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;QACjB,MAAM,GAAG,EAAE,CAAC;QACZ,IAAM,UAAQ,GAAG,oBAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,MAAM,CAAC,SAAS,GAAG,UAAQ,CAAC;QAC5B,IAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,oBAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,UAAQ,EAAE,MAAM,CAAC,CAAC;KAC3C;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAVD,4BAUC;AAED,SAAgB,WAAW,CAAC,IAAI,EAAE,IAAI;IAClC,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE;QACxB,OAAO,IAAI,CAAC;KACf;IACD,IAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAClC,IAAI,IAAI,CAAC,UAAU,EAAE;QACjB,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;KACrC;IACD,+CAA+C;IAC/C,IAAI,IAAI,CAAC,YAAY,EAAE;QACnB,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC;KAChD;IACD,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;QAC/B,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;YAC7B,KAAK,QAAQ;gBACT,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;gBAClC,MAAM;YACV,KAAK,iBAAiB;gBAClB,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC;gBAC3C,MAAM;YACV,KAAK,QAAQ,CAAC;YACd,KAAK,QAAQ;gBACT,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;gBAClC,MAAM;YACV;gBACI,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;SACzC;KACJ;IACD,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,EAAE;QACtC,QAAQ,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,EAAE;YACpC,KAAK,KAAK;gBACN,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC;gBAC7C,MAAM;YACV,KAAK,OAAO;gBACR,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC;gBAC/C,MAAM;YACV,KAAK,KAAK;gBACN,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC;gBAC7C,MAAM;SACb;KACJ;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AA1CD,kCA0CC;AAED,SAAgB,KAAK,CAAC,IAAI,EAAE,IAAI;IAC5B,KAAK,IAAM,IAAI,IAAI,IAAI,EAAE;QACrB,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;YAC3B,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;SAC3B;KACJ;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAPD,sBAOC;AAED,SAAgB,YAAY,CAAC,GAAG,EAAE,MAAW;IAAX,uBAAA,EAAA,WAAW;IACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,QAAM,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,QAAM,EAAE,CAAC,EAAE,EAAE;QAClD,IAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACtB,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;SAC/B;aAAM;YACH,IAAI,KAAK,KAAK,SAAS,EAAE;gBACrB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACtB;SACJ;KACJ;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAZD,oCAYC","sourcesContent":["/* jshint proto: true */\nimport * as Constants from './constants';\nimport { copy } from 'copy-anything';\n\nexport function getLocation(index, inputStream) {\n let n = index + 1;\n let line = null;\n let column = -1;\n\n while (--n >= 0 && inputStream.charAt(n) !== '\\n') {\n column++;\n }\n\n if (typeof index === 'number') {\n line = (inputStream.slice(0, index).match(/\\n/g) || '').length;\n }\n\n return {\n line,\n column\n };\n}\n\nexport function copyArray(arr) {\n let i;\n const length = arr.length;\n const copy = new Array(length);\n\n for (i = 0; i < length; i++) {\n copy[i] = arr[i];\n }\n return copy;\n}\n\nexport function clone(obj) {\n const cloned = {};\n for (const prop in obj) {\n if (obj.hasOwnProperty(prop)) {\n cloned[prop] = obj[prop];\n }\n }\n return cloned;\n}\n\nexport function defaults(obj1, obj2) {\n let newObj = obj2 || {};\n if (!obj2._defaults) {\n newObj = {};\n const defaults = copy(obj1);\n newObj._defaults = defaults;\n const cloned = obj2 ? copy(obj2) : {};\n Object.assign(newObj, defaults, cloned);\n }\n return newObj;\n}\n\nexport function copyOptions(obj1, obj2) {\n if (obj2 && obj2._defaults) {\n return obj2;\n }\n const opts = defaults(obj1, obj2);\n if (opts.strictMath) {\n opts.math = Constants.Math.PARENS;\n }\n // Back compat with changed relativeUrls option\n if (opts.relativeUrls) {\n opts.rewriteUrls = Constants.RewriteUrls.ALL;\n }\n if (typeof opts.math === 'string') {\n switch (opts.math.toLowerCase()) {\n case 'always':\n opts.math = Constants.Math.ALWAYS;\n break;\n case 'parens-division':\n opts.math = Constants.Math.PARENS_DIVISION;\n break;\n case 'strict':\n case 'parens':\n opts.math = Constants.Math.PARENS;\n break;\n default:\n opts.math = Constants.Math.PARENS;\n }\n }\n if (typeof opts.rewriteUrls === 'string') {\n switch (opts.rewriteUrls.toLowerCase()) {\n case 'off':\n opts.rewriteUrls = Constants.RewriteUrls.OFF;\n break;\n case 'local':\n opts.rewriteUrls = Constants.RewriteUrls.LOCAL;\n break;\n case 'all':\n opts.rewriteUrls = Constants.RewriteUrls.ALL;\n break;\n }\n }\n return opts;\n}\n\nexport function merge(obj1, obj2) {\n for (const prop in obj2) {\n if (obj2.hasOwnProperty(prop)) {\n obj1[prop] = obj2[prop];\n }\n }\n return obj1;\n}\n\nexport function flattenArray(arr, result = []) {\n for (let i = 0, length = arr.length; i < length; i++) {\n const value = arr[i];\n if (Array.isArray(value)) {\n flattenArray(value, result);\n } else {\n if (value !== undefined) {\n result.push(value);\n }\n }\n }\n return result;\n}"]}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/less/utils.js"],"names":[],"mappings":"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","sourcesContent":["/* jshint proto: true */\nimport * as Constants from './constants';\nimport { copy } from 'copy-anything';\n\nexport function getLocation(index, inputStream) {\n let n = index + 1;\n let line = null;\n let column = -1;\n\n while (--n >= 0 && inputStream.charAt(n) !== '\\n') {\n column++;\n }\n\n if (typeof index === 'number') {\n line = (inputStream.slice(0, index).match(/\\n/g) || '').length;\n }\n\n return {\n line,\n column\n };\n}\n\nexport function copyArray(arr) {\n let i;\n const length = arr.length;\n const copy = new Array(length);\n\n for (i = 0; i < length; i++) {\n copy[i] = arr[i];\n }\n return copy;\n}\n\nexport function clone(obj) {\n const cloned = {};\n for (const prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) {\n cloned[prop] = obj[prop];\n }\n }\n return cloned;\n}\n\nexport function defaults(obj1, obj2) {\n let newObj = obj2 || {};\n if (!obj2._defaults) {\n newObj = {};\n const defaults = copy(obj1);\n newObj._defaults = defaults;\n const cloned = obj2 ? copy(obj2) : {};\n Object.assign(newObj, defaults, cloned);\n }\n return newObj;\n}\n\nexport function copyOptions(obj1, obj2) {\n if (obj2 && obj2._defaults) {\n return obj2;\n }\n const opts = defaults(obj1, obj2);\n if (opts.strictMath) {\n opts.math = Constants.Math.PARENS;\n }\n // Back compat with changed relativeUrls option\n if (opts.relativeUrls) {\n opts.rewriteUrls = Constants.RewriteUrls.ALL;\n }\n if (typeof opts.math === 'string') {\n switch (opts.math.toLowerCase()) {\n case 'always':\n opts.math = Constants.Math.ALWAYS;\n break;\n case 'parens-division':\n opts.math = Constants.Math.PARENS_DIVISION;\n break;\n case 'strict':\n case 'parens':\n opts.math = Constants.Math.PARENS;\n break;\n default:\n opts.math = Constants.Math.PARENS;\n }\n }\n if (typeof opts.rewriteUrls === 'string') {\n switch (opts.rewriteUrls.toLowerCase()) {\n case 'off':\n opts.rewriteUrls = Constants.RewriteUrls.OFF;\n break;\n case 'local':\n opts.rewriteUrls = Constants.RewriteUrls.LOCAL;\n break;\n case 'all':\n opts.rewriteUrls = Constants.RewriteUrls.ALL;\n break;\n }\n }\n return opts;\n}\n\nexport function merge(obj1, obj2) {\n for (const prop in obj2) {\n if (Object.prototype.hasOwnProperty.call(obj2, prop)) {\n obj1[prop] = obj2[prop];\n }\n }\n return obj1;\n}\n\nexport function flattenArray(arr, result = []) {\n for (let i = 0, length = arr.length; i < length; i++) {\n const value = arr[i];\n if (Array.isArray(value)) {\n flattenArray(value, result);\n } else {\n if (value !== undefined) {\n result.push(value);\n }\n }\n }\n return result;\n}\n\nexport function isNullOrUndefined(val) {\n return val === null || val === undefined\n}"]}
@@ -1,6 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var tslib_1 = require("tslib");
4
+ /* eslint-disable no-unused-vars */
5
+ /**
6
+ * @todo - Remove unused when JSDoc types are added for visitor methods
7
+ */
4
8
  var tree_1 = tslib_1.__importDefault(require("../tree"));
5
9
  var visitor_1 = tslib_1.__importDefault(require("./visitor"));
6
10
  var logger_1 = tslib_1.__importDefault(require("../logger"));