validateFormalSyntax.js 967 B

123456789101112131415161718192021222324
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. Object.defineProperty(exports, "backgroundSize", {
  6. enumerable: true,
  7. get: ()=>backgroundSize
  8. });
  9. const _dataTypes = require("./dataTypes");
  10. const _splitAtTopLevelOnly = require("./splitAtTopLevelOnly");
  11. function backgroundSize(value) {
  12. let keywordValues = [
  13. "cover",
  14. "contain"
  15. ];
  16. // the <length-percentage> type will probably be a css function
  17. // so we have to use `splitAtTopLevelOnly`
  18. return (0, _splitAtTopLevelOnly.splitAtTopLevelOnly)(value, ",").every((part)=>{
  19. let sizes = (0, _splitAtTopLevelOnly.splitAtTopLevelOnly)(part, "_").filter(Boolean);
  20. if (sizes.length === 1 && keywordValues.includes(sizes[0])) return true;
  21. if (sizes.length !== 1 && sizes.length !== 2) return false;
  22. return sizes.every((size)=>(0, _dataTypes.length)(size) || (0, _dataTypes.percentage)(size) || size === "auto");
  23. });
  24. }