CSSSupportsRule.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. //.CommonJS
  2. var CSSOM = {
  3. CSSRule: require("./CSSRule").CSSRule,
  4. CSSRuleList: require("./CSSRuleList").CSSRuleList,
  5. CSSGroupingRule: require("./CSSGroupingRule").CSSGroupingRule,
  6. CSSConditionRule: require("./CSSConditionRule").CSSConditionRule
  7. };
  8. ///CommonJS
  9. /**
  10. * @constructor
  11. * @see https://drafts.csswg.org/css-conditional-3/#the-csssupportsrule-interface
  12. */
  13. CSSOM.CSSSupportsRule = function CSSSupportsRule() {
  14. CSSOM.CSSConditionRule.call(this);
  15. };
  16. CSSOM.CSSSupportsRule.prototype = Object.create(CSSOM.CSSConditionRule.prototype);
  17. CSSOM.CSSSupportsRule.prototype.constructor = CSSOM.CSSSupportsRule;
  18. Object.setPrototypeOf(CSSOM.CSSSupportsRule, CSSOM.CSSConditionRule);
  19. Object.defineProperty(CSSOM.CSSSupportsRule.prototype, "type", {
  20. value: 12,
  21. writable: false
  22. });
  23. Object.defineProperty(CSSOM.CSSSupportsRule.prototype, "cssText", {
  24. get: function() {
  25. var values = "";
  26. var valuesArr = [" {"];
  27. if (this.cssRules.length) {
  28. valuesArr.push(this.cssRules.reduce(function(acc, rule){
  29. if (rule.cssText !== "") {
  30. acc.push(rule.cssText);
  31. }
  32. return acc;
  33. }, []).join("\n "));
  34. }
  35. values = valuesArr.join("\n ") + "\n}";
  36. return "@supports " + this.conditionText + values;
  37. }
  38. });
  39. //.CommonJS
  40. exports.CSSSupportsRule = CSSOM.CSSSupportsRule;
  41. ///CommonJS