padding.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. 'use strict';
  2. var parsers = require('../parsers.js');
  3. var TYPES = parsers.TYPES;
  4. var isValid = function (v) {
  5. var type = parsers.valueType(v);
  6. return type === TYPES.LENGTH || type === TYPES.PERCENT || (type === TYPES.INTEGER && (v === '0' || v === 0));
  7. };
  8. var parser = function (v) {
  9. return parsers.parseMeasurement(v);
  10. };
  11. var mySetter = parsers.implicitSetter('padding', '', isValid, parser);
  12. var myGlobal = parsers.implicitSetter('padding', '', function () {
  13. return true;
  14. }, function (v) {
  15. return v;
  16. });
  17. module.exports.definition = {
  18. set: function (v) {
  19. if (typeof v === "number") {
  20. v = String(v);
  21. }
  22. if (typeof v !== "string") {
  23. return;
  24. }
  25. var V = v.toLowerCase();
  26. switch (V) {
  27. case 'inherit':
  28. case 'initial':
  29. case 'unset':
  30. case '':
  31. myGlobal.call(this, V);
  32. break;
  33. default:
  34. mySetter.call(this, v);
  35. break;
  36. }
  37. },
  38. get: function () {
  39. return this.getPropertyValue('padding');
  40. },
  41. enumerable: true,
  42. configurable: true
  43. };
  44. module.exports.isValid = isValid;
  45. module.exports.parser = parser;