borderWidth.js 975 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. "use strict";
  2. const parsers = require("../parsers");
  3. module.exports.parse = function parse(v) {
  4. const keywords = ["thin", "medium", "thick"];
  5. const key = parsers.parseKeyword(v, keywords);
  6. if (key) {
  7. return key;
  8. }
  9. return parsers.parseLength(v, true);
  10. };
  11. module.exports.isValid = function isValid(v) {
  12. if (v === "") {
  13. return true;
  14. }
  15. return typeof module.exports.parse(v) === "string";
  16. };
  17. module.exports.definition = {
  18. set(v) {
  19. v = parsers.prepareValue(v, this._global);
  20. if (parsers.hasVarFunc(v)) {
  21. this._setProperty("border", "");
  22. this._setProperty("border-width", v);
  23. } else {
  24. const positions = ["top", "right", "bottom", "left"];
  25. this._implicitSetter(
  26. "border",
  27. "width",
  28. v,
  29. module.exports.isValid,
  30. module.exports.parse,
  31. positions
  32. );
  33. }
  34. },
  35. get() {
  36. return this.getPropertyValue("border-width");
  37. },
  38. enumerable: true,
  39. configurable: true
  40. };