CSSStartingStyleRule.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. //.CommonJS
  2. var CSSOM = {
  3. CSSRule: require("./CSSRule").CSSRule,
  4. CSSRuleList: require("./CSSRuleList").CSSRuleList,
  5. CSSGroupingRule: require("./CSSGroupingRule").CSSGroupingRule
  6. };
  7. ///CommonJS
  8. /**
  9. * @constructor
  10. * @see http://www.w3.org/TR/shadow-dom/#host-at-rule
  11. */
  12. CSSOM.CSSStartingStyleRule = function CSSStartingStyleRule() {
  13. CSSOM.CSSGroupingRule.call(this);
  14. };
  15. CSSOM.CSSStartingStyleRule.prototype = Object.create(CSSOM.CSSGroupingRule.prototype);
  16. CSSOM.CSSStartingStyleRule.prototype.constructor = CSSOM.CSSStartingStyleRule;
  17. Object.setPrototypeOf(CSSOM.CSSStartingStyleRule, CSSOM.CSSGroupingRule);
  18. Object.defineProperty(CSSOM.CSSStartingStyleRule.prototype, "type", {
  19. value: 1002,
  20. writable: false
  21. });
  22. //FIXME
  23. //CSSOM.CSSStartingStyleRule.prototype.insertRule = CSSStyleSheet.prototype.insertRule;
  24. //CSSOM.CSSStartingStyleRule.prototype.deleteRule = CSSStyleSheet.prototype.deleteRule;
  25. Object.defineProperty(CSSOM.CSSStartingStyleRule.prototype, "cssText", {
  26. get: function() {
  27. var values = "";
  28. var valuesArr = [" {"];
  29. if (this.cssRules.length) {
  30. valuesArr.push(this.cssRules.reduce(function(acc, rule){
  31. if (rule.cssText !== "") {
  32. acc.push(rule.cssText);
  33. }
  34. return acc;
  35. }, []).join("\n "));
  36. }
  37. values = valuesArr.join("\n ") + "\n}";
  38. return "@starting-style" + values;
  39. }
  40. });
  41. //.CommonJS
  42. exports.CSSStartingStyleRule = CSSOM.CSSStartingStyleRule;
  43. ///CommonJS