cssstyle
Version:
CSSStyleDeclaration Object Model implementation
59 lines (53 loc) • 1.19 kB
JavaScript
const parsers = require("../parsers");
const positions = ["top", "right", "bottom", "left"];
module.exports.parse = function parse(v) {
const val = parsers.parseMeasurement(v);
if (val) {
return val;
}
return parsers.parseKeyword(v, ["auto"]);
};
module.exports.isValid = function isValid(v) {
if (v === "") {
return true;
}
return typeof module.exports.parse(v) === "string";
};
module.exports.definition = {
set(v) {
v = parsers.prepareValue(v, this._global);
if (parsers.hasVarFunc(v)) {
this._implicitSetter(
"margin",
"",
"",
module.exports.isValid,
module.exports.parse,
positions
);
this._setProperty("margin", v);
} else {
this._implicitSetter(
"margin",
"",
v,
module.exports.isValid,
module.exports.parse,
positions
);
}
},
get() {
const val = this._implicitGetter("margin", positions);
if (val === "") {
return this.getPropertyValue("margin");
}
if (parsers.hasVarFunc(val)) {
return "";
}
return val;
},
enumerable: true,
configurable: true
};
;