carto/lib/less/tree/dimension.js

34 lines
938 B
JavaScript
Raw Normal View History

if (typeof(require) !== 'undefined') { var tree = require('less/tree') }
2010-02-24 02:39:05 +08:00
2010-03-24 06:33:17 +08:00
//
// A number with a unit
//
tree.Dimension = function Dimension(value, unit) {
2010-02-24 02:39:05 +08:00
this.value = parseFloat(value);
this.unit = unit || null;
};
tree.Dimension.prototype = {
2010-02-24 02:39:05 +08:00
eval: function () { return this },
toColor: function () {
return new(tree.Color)([this.value, this.value, this.value]);
},
2010-02-24 02:39:05 +08:00
toCSS: function () {
var css = this.value + this.unit;
return css;
},
2010-03-24 06:33:17 +08:00
// In an operation between two Dimensions,
// we default to the first Dimension's unit,
// so `1px + 2em` will yield `3px`.
// In the future, we could implement some unit
// conversions such that `100cm + 10mm` would yield
// `101cm`.
operate: function (op, other) {
return new(tree.Dimension)
(tree.operate(op, this.value, other.value),
this.unit || other.unit);
2010-02-24 02:39:05 +08:00
}
};