1 | //.CommonJS
|
2 | var CSSOM = {
|
3 | CSSRule: require("./CSSRule").CSSRule
|
4 | };
|
5 | ///CommonJS
|
6 |
|
7 |
|
8 | /**
|
9 | * @constructor
|
10 | * @see https://drafts.csswg.org/cssom/#the-cssgroupingrule-interface
|
11 | */
|
12 | CSSOM.CSSGroupingRule = function CSSGroupingRule() {
|
13 | CSSOM.CSSRule.call(this);
|
14 | this.cssRules = [];
|
15 | };
|
16 |
|
17 | CSSOM.CSSGroupingRule.prototype = new CSSOM.CSSRule();
|
18 | CSSOM.CSSGroupingRule.prototype.constructor = CSSOM.CSSGroupingRule;
|
19 |
|
20 |
|
21 | /**
|
22 | * Used to insert a new CSS rule to a list of CSS rules.
|
23 | *
|
24 | * @example
|
25 | * cssGroupingRule.cssText
|
26 | * -> "body{margin:0;}"
|
27 | * cssGroupingRule.insertRule("img{border:none;}", 1)
|
28 | * -> 1
|
29 | * cssGroupingRule.cssText
|
30 | * -> "body{margin:0;}img{border:none;}"
|
31 | *
|
32 | * @param {string} rule
|
33 | * @param {number} [index]
|
34 | * @see https://www.w3.org/TR/cssom-1/#dom-cssgroupingrule-insertrule
|
35 | * @return {number} The index within the grouping rule's collection of the newly inserted rule.
|
36 | */
|
37 | CSSOM.CSSGroupingRule.prototype.insertRule = function insertRule(rule, index) {
|
38 | if (index < 0 || index > this.cssRules.length) {
|
39 | throw new RangeError("INDEX_SIZE_ERR");
|
40 | }
|
41 | var cssRule = CSSOM.parse(rule).cssRules[0];
|
42 | cssRule.parentRule = this;
|
43 | this.cssRules.splice(index, 0, cssRule);
|
44 | return index;
|
45 | };
|
46 |
|
47 | /**
|
48 | * Used to delete a rule from the grouping rule.
|
49 | *
|
50 | * cssGroupingRule.cssText
|
51 | * -> "img{border:none;}body{margin:0;}"
|
52 | * cssGroupingRule.deleteRule(0)
|
53 | * cssGroupingRule.cssText
|
54 | * -> "body{margin:0;}"
|
55 | *
|
56 | * @param {number} index within the grouping rule's rule list of the rule to remove.
|
57 | * @see https://www.w3.org/TR/cssom-1/#dom-cssgroupingrule-deleterule
|
58 | */
|
59 | CSSOM.CSSGroupingRule.prototype.deleteRule = function deleteRule(index) {
|
60 | if (index < 0 || index >= this.cssRules.length) {
|
61 | throw new RangeError("INDEX_SIZE_ERR");
|
62 | }
|
63 | this.cssRules.splice(index, 1)[0].parentRule = null;
|
64 | };
|
65 |
|
66 | //.CommonJS
|
67 | exports.CSSGroupingRule = CSSOM.CSSGroupingRule;
|
68 | ///CommonJS
|