happy-dom 6.0.3 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of happy-dom might be problematic. Click here for more details.

Files changed (183) hide show
  1. package/lib/css/CSSParser.js +12 -6
  2. package/lib/css/CSSParser.js.map +1 -1
  3. package/lib/css/CSSRule.d.ts +15 -13
  4. package/lib/css/CSSRule.js +18 -13
  5. package/lib/css/CSSRule.js.map +1 -1
  6. package/lib/css/CSSRuleTypeEnum.d.ts +17 -0
  7. package/lib/css/CSSRuleTypeEnum.js +21 -0
  8. package/lib/css/CSSRuleTypeEnum.js.map +1 -0
  9. package/lib/css/CSSStyleSheet.d.ts +6 -16
  10. package/lib/css/CSSStyleSheet.js +11 -19
  11. package/lib/css/CSSStyleSheet.js.map +1 -1
  12. package/lib/css/declaration/AbstractCSSStyleDeclaration.d.ts +76 -0
  13. package/lib/css/declaration/AbstractCSSStyleDeclaration.js +182 -0
  14. package/lib/css/declaration/AbstractCSSStyleDeclaration.js.map +1 -0
  15. package/lib/css/declaration/CSSStyleDeclaration.d.ts +1194 -0
  16. package/lib/css/declaration/CSSStyleDeclaration.js +3566 -0
  17. package/lib/css/declaration/CSSStyleDeclaration.js.map +1 -0
  18. package/lib/css/declaration/utilities/CSSStyleDeclarationCSSParser.d.ts +12 -0
  19. package/lib/css/declaration/utilities/CSSStyleDeclarationCSSParser.js +34 -0
  20. package/lib/css/declaration/utilities/CSSStyleDeclarationCSSParser.js.map +1 -0
  21. package/lib/css/declaration/utilities/CSSStyleDeclarationElementDefaultCSS.d.ts +131 -0
  22. package/lib/css/declaration/utilities/CSSStyleDeclarationElementDefaultCSS.js +133 -0
  23. package/lib/css/declaration/utilities/CSSStyleDeclarationElementDefaultCSS.js.map +1 -0
  24. package/lib/css/declaration/utilities/CSSStyleDeclarationElementInheritedProperties.d.ts +40 -0
  25. package/lib/css/declaration/utilities/CSSStyleDeclarationElementInheritedProperties.js +42 -0
  26. package/lib/css/declaration/utilities/CSSStyleDeclarationElementInheritedProperties.js.map +1 -0
  27. package/lib/css/declaration/utilities/CSSStyleDeclarationElementStyle.d.ts +49 -0
  28. package/lib/css/declaration/utilities/CSSStyleDeclarationElementStyle.js +244 -0
  29. package/lib/css/declaration/utilities/CSSStyleDeclarationElementStyle.js.map +1 -0
  30. package/lib/css/declaration/utilities/CSSStyleDeclarationPropertyGetParser.d.ts +167 -0
  31. package/lib/css/declaration/utilities/CSSStyleDeclarationPropertyGetParser.js +537 -0
  32. package/lib/css/declaration/utilities/CSSStyleDeclarationPropertyGetParser.js.map +1 -0
  33. package/lib/css/declaration/utilities/CSSStyleDeclarationPropertyManager.d.ts +65 -0
  34. package/lib/css/declaration/utilities/CSSStyleDeclarationPropertyManager.js +565 -0
  35. package/lib/css/declaration/utilities/CSSStyleDeclarationPropertyManager.js.map +1 -0
  36. package/lib/css/declaration/utilities/CSSStyleDeclarationPropertySetParser.d.ts +809 -0
  37. package/lib/css/declaration/utilities/CSSStyleDeclarationPropertySetParser.js +2303 -0
  38. package/lib/css/declaration/utilities/CSSStyleDeclarationPropertySetParser.js.map +1 -0
  39. package/lib/css/declaration/utilities/CSSStyleDeclarationValueParser.d.ts +127 -0
  40. package/lib/css/declaration/utilities/CSSStyleDeclarationValueParser.js +411 -0
  41. package/lib/css/declaration/utilities/CSSStyleDeclarationValueParser.js.map +1 -0
  42. package/lib/css/declaration/utilities/ICSSStyleDeclarationPropertyValue.d.ts +4 -0
  43. package/lib/css/declaration/utilities/ICSSStyleDeclarationPropertyValue.js +3 -0
  44. package/lib/css/declaration/utilities/ICSSStyleDeclarationPropertyValue.js.map +1 -0
  45. package/lib/css/rules/CSSContainerRule.d.ts +15 -0
  46. package/lib/css/rules/CSSContainerRule.js +31 -0
  47. package/lib/css/rules/CSSContainerRule.js.map +1 -0
  48. package/lib/css/rules/CSSFontFaceRule.d.ts +10 -3
  49. package/lib/css/rules/CSSFontFaceRule.js +16 -0
  50. package/lib/css/rules/CSSFontFaceRule.js.map +1 -1
  51. package/lib/css/rules/CSSKeyframeRule.d.ts +10 -3
  52. package/lib/css/rules/CSSKeyframeRule.js +16 -0
  53. package/lib/css/rules/CSSKeyframeRule.js.map +1 -1
  54. package/lib/css/rules/CSSKeyframesRule.d.ts +1 -1
  55. package/lib/css/rules/CSSKeyframesRule.js +1 -1
  56. package/lib/css/rules/CSSKeyframesRule.js.map +1 -1
  57. package/lib/css/rules/CSSMediaRule.d.ts +1 -1
  58. package/lib/css/rules/CSSStyleRule.d.ts +10 -3
  59. package/lib/css/rules/CSSStyleRule.js +16 -0
  60. package/lib/css/rules/CSSStyleRule.js.map +1 -1
  61. package/lib/event/Event.d.ts +2 -3
  62. package/lib/event/Event.js.map +1 -1
  63. package/lib/event/events/IMediaQueryListInit.d.ts +5 -0
  64. package/lib/event/events/IMediaQueryListInit.js +3 -0
  65. package/lib/event/events/IMediaQueryListInit.js.map +1 -0
  66. package/lib/event/events/MediaQueryListEvent.d.ts +16 -0
  67. package/lib/event/events/MediaQueryListEvent.js +28 -0
  68. package/lib/event/events/MediaQueryListEvent.js.map +1 -0
  69. package/lib/exception/DOMException.js +5 -3
  70. package/lib/exception/DOMException.js.map +1 -1
  71. package/lib/exception/DOMExceptionNameEnum.d.ts +2 -1
  72. package/lib/exception/DOMExceptionNameEnum.js +1 -0
  73. package/lib/exception/DOMExceptionNameEnum.js.map +1 -1
  74. package/lib/fetch/Response.d.ts +4 -1
  75. package/lib/fetch/Response.js +5 -2
  76. package/lib/fetch/Response.js.map +1 -1
  77. package/lib/file/Blob.d.ts +9 -0
  78. package/lib/file/Blob.js +14 -0
  79. package/lib/file/Blob.js.map +1 -1
  80. package/lib/index.d.ts +9 -2
  81. package/lib/index.js +16 -2
  82. package/lib/index.js.map +1 -1
  83. package/lib/match-media/MediaQueryList.d.ts +19 -8
  84. package/lib/match-media/MediaQueryList.js +56 -13
  85. package/lib/match-media/MediaQueryList.js.map +1 -1
  86. package/lib/{attribute → nodes/attr}/Attr.d.ts +8 -7
  87. package/lib/{attribute → nodes/attr}/Attr.js +12 -5
  88. package/lib/nodes/attr/Attr.js.map +1 -0
  89. package/lib/nodes/attr/IAttr.d.ts +14 -0
  90. package/lib/nodes/attr/IAttr.js +3 -0
  91. package/lib/nodes/attr/IAttr.js.map +1 -0
  92. package/lib/nodes/child-node/ChildNodeUtility.js +2 -1
  93. package/lib/nodes/child-node/ChildNodeUtility.js.map +1 -1
  94. package/lib/nodes/document/Document.d.ts +4 -4
  95. package/lib/nodes/document/Document.js +5 -8
  96. package/lib/nodes/document/Document.js.map +1 -1
  97. package/lib/nodes/document/IDocument.d.ts +3 -3
  98. package/lib/nodes/element/Element.d.ts +11 -9
  99. package/lib/nodes/element/Element.js +2 -1
  100. package/lib/nodes/element/Element.js.map +1 -1
  101. package/lib/nodes/element/IElement.d.ts +10 -8
  102. package/lib/nodes/html-element/HTMLElement.d.ts +21 -5
  103. package/lib/nodes/html-element/HTMLElement.js +74 -11
  104. package/lib/nodes/html-element/HTMLElement.js.map +1 -1
  105. package/lib/nodes/html-element/IHTMLElement.d.ts +5 -1
  106. package/lib/nodes/html-link-element/HTMLLinkElement.d.ts +2 -2
  107. package/lib/nodes/html-link-element/HTMLLinkElement.js.map +1 -1
  108. package/lib/nodes/html-script-element/HTMLScriptElement.d.ts +2 -2
  109. package/lib/nodes/html-script-element/HTMLScriptElement.js.map +1 -1
  110. package/lib/nodes/html-select-element/HTMLSelectElement.js +1 -1
  111. package/lib/nodes/html-select-element/HTMLSelectElement.js.map +1 -1
  112. package/lib/nodes/html-style-element/HTMLStyleElement.js +1 -1
  113. package/lib/nodes/html-style-element/HTMLStyleElement.js.map +1 -1
  114. package/lib/nodes/node/INode.d.ts +2 -0
  115. package/lib/nodes/node/Node.d.ts +5 -1
  116. package/lib/nodes/node/Node.js +7 -1
  117. package/lib/nodes/node/Node.js.map +1 -1
  118. package/lib/nodes/node/NodeTypeEnum.d.ts +2 -0
  119. package/lib/nodes/node/NodeTypeEnum.js +2 -0
  120. package/lib/nodes/node/NodeTypeEnum.js.map +1 -1
  121. package/lib/nodes/svg-element/ISVGElement.d.ts +1 -1
  122. package/lib/nodes/svg-element/SVGElement.d.ts +4 -4
  123. package/lib/nodes/svg-element/SVGElement.js +2 -2
  124. package/lib/nodes/svg-element/SVGElement.js.map +1 -1
  125. package/lib/window/IWindow.d.ts +23 -3
  126. package/lib/window/Window.d.ts +35 -6
  127. package/lib/window/Window.js +58 -23
  128. package/lib/window/Window.js.map +1 -1
  129. package/package.json +2 -2
  130. package/src/css/CSSParser.ts +14 -6
  131. package/src/css/CSSRule.ts +15 -13
  132. package/src/css/CSSRuleTypeEnum.ts +18 -0
  133. package/src/css/CSSStyleSheet.ts +12 -22
  134. package/src/css/declaration/AbstractCSSStyleDeclaration.ts +202 -0
  135. package/src/css/declaration/CSSStyleDeclaration.ts +4743 -0
  136. package/src/css/declaration/utilities/CSSStyleDeclarationCSSParser.ts +35 -0
  137. package/src/css/declaration/utilities/CSSStyleDeclarationElementDefaultCSS.ts +130 -0
  138. package/src/css/declaration/utilities/CSSStyleDeclarationElementInheritedProperties.ts +39 -0
  139. package/src/css/declaration/utilities/CSSStyleDeclarationElementStyle.ts +282 -0
  140. package/src/css/declaration/utilities/CSSStyleDeclarationPropertyGetParser.ts +743 -0
  141. package/src/css/declaration/utilities/CSSStyleDeclarationPropertyManager.ts +592 -0
  142. package/src/css/declaration/utilities/CSSStyleDeclarationPropertySetParser.ts +3026 -0
  143. package/src/css/declaration/utilities/CSSStyleDeclarationValueParser.ts +437 -0
  144. package/src/css/declaration/utilities/ICSSStyleDeclarationPropertyValue.ts +4 -0
  145. package/src/css/rules/CSSContainerRule.ts +23 -0
  146. package/src/css/rules/CSSFontFaceRule.ts +17 -2
  147. package/src/css/rules/CSSKeyframeRule.ts +17 -2
  148. package/src/css/rules/CSSKeyframesRule.ts +1 -1
  149. package/src/css/rules/CSSStyleRule.ts +17 -2
  150. package/src/event/Event.ts +2 -3
  151. package/src/event/events/IMediaQueryListInit.ts +6 -0
  152. package/src/event/events/MediaQueryListEvent.ts +25 -0
  153. package/src/exception/DOMException.ts +3 -3
  154. package/src/exception/DOMExceptionNameEnum.ts +2 -1
  155. package/src/fetch/Response.ts +5 -2
  156. package/src/file/Blob.ts +16 -0
  157. package/src/index.ts +15 -1
  158. package/src/match-media/MediaQueryList.ts +63 -10
  159. package/src/{attribute → nodes/attr}/Attr.ts +11 -8
  160. package/src/nodes/attr/IAttr.ts +15 -0
  161. package/src/nodes/child-node/ChildNodeUtility.ts +2 -1
  162. package/src/nodes/document/Document.ts +8 -10
  163. package/src/nodes/document/IDocument.ts +3 -3
  164. package/src/nodes/element/Element.ts +13 -10
  165. package/src/nodes/element/IElement.ts +8 -8
  166. package/src/nodes/html-element/HTMLElement.ts +94 -16
  167. package/src/nodes/html-element/IHTMLElement.ts +3 -1
  168. package/src/nodes/html-link-element/HTMLLinkElement.ts +2 -2
  169. package/src/nodes/html-script-element/HTMLScriptElement.ts +2 -2
  170. package/src/nodes/html-select-element/HTMLSelectElement.ts +1 -1
  171. package/src/nodes/html-style-element/HTMLStyleElement.ts +1 -1
  172. package/src/nodes/node/INode.ts +2 -0
  173. package/src/nodes/node/Node.ts +7 -1
  174. package/src/nodes/node/NodeTypeEnum.ts +2 -0
  175. package/src/nodes/svg-element/ISVGElement.ts +1 -1
  176. package/src/nodes/svg-element/SVGElement.ts +5 -5
  177. package/src/window/IWindow.ts +23 -3
  178. package/src/window/Window.ts +51 -11
  179. package/lib/attribute/Attr.js.map +0 -1
  180. package/lib/css/CSSStyleDeclaration.d.ts +0 -3017
  181. package/lib/css/CSSStyleDeclaration.js +0 -4643
  182. package/lib/css/CSSStyleDeclaration.js.map +0 -1
  183. package/src/css/CSSStyleDeclaration.ts +0 -5026
@@ -8,7 +8,7 @@ const CSSStyleRule_1 = __importDefault(require("./rules/CSSStyleRule"));
8
8
  const CSSKeyframeRule_1 = __importDefault(require("./rules/CSSKeyframeRule"));
9
9
  const CSSKeyframesRule_1 = __importDefault(require("./rules/CSSKeyframesRule"));
10
10
  const CSSMediaRule_1 = __importDefault(require("./rules/CSSMediaRule"));
11
- const CSSStyleDeclaration_1 = __importDefault(require("./CSSStyleDeclaration"));
11
+ const CSSContainerRule_1 = __importDefault(require("./rules/CSSContainerRule"));
12
12
  const COMMENT_REGEXP = /\/\*[^*]*\*\//gm;
13
13
  /**
14
14
  * CSS parser.
@@ -49,6 +49,14 @@ class CSSParser {
49
49
  cssRules.push(newRule);
50
50
  parentRule = newRule;
51
51
  }
52
+ else if (selectorText.startsWith('@container')) {
53
+ const conditionalText = selectorText.replace(/@container */, '');
54
+ const newRule = new CSSContainerRule_1.default();
55
+ newRule.conditionalText = conditionalText;
56
+ newRule.parentStyleSheet = parentStyleSheet;
57
+ cssRules.push(newRule);
58
+ parentRule = newRule;
59
+ }
52
60
  else if (parentRule && parentRule.type === CSSRule_1.default.KEYFRAMES_RULE) {
53
61
  const newRule = new CSSKeyframeRule_1.default();
54
62
  newRule.keyText = selectorText.trim();
@@ -57,7 +65,8 @@ class CSSParser {
57
65
  parentRule.cssRules.push(newRule);
58
66
  parentRule = newRule;
59
67
  }
60
- else if (parentRule && parentRule.type === CSSRule_1.default.MEDIA_RULE) {
68
+ else if (parentRule &&
69
+ (parentRule.type === CSSRule_1.default.MEDIA_RULE || parentRule.type === CSSRule_1.default.CONTAINER_RULE)) {
61
70
  const newRule = new CSSStyleRule_1.default();
62
71
  newRule.selectorText = selectorText;
63
72
  newRule.parentStyleSheet = parentStyleSheet;
@@ -84,10 +93,7 @@ class CSSParser {
84
93
  case CSSRule_1.default.FONT_FACE_RULE:
85
94
  case CSSRule_1.default.KEYFRAME_RULE:
86
95
  case CSSRule_1.default.STYLE_RULE:
87
- const style = new CSSStyleDeclaration_1.default();
88
- style.cssText = cssText;
89
- style.parentRule = parentRule;
90
- parentRule.style = style;
96
+ parentRule._cssText = cssText;
91
97
  break;
92
98
  }
93
99
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CSSParser.js","sourceRoot":"","sources":["../../src/css/CSSParser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CSSParser.js","sourceRoot":"","sources":["../../src/css/CSSParser.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,23 @@
1
1
  import CSSStyleSheet from './CSSStyleSheet';
2
+ import CSSRuleTypeEnum from './CSSRuleTypeEnum';
2
3
  /**
3
4
  * CSSRule interface.
4
5
  */
5
6
  export default class CSSRule {
6
- static STYLE_RULE: number;
7
- static IMPORT_RULE: number;
8
- static MEDIA_RULE: number;
9
- static FONT_FACE_RULE: number;
10
- static PAGE_RULE: number;
11
- static KEYFRAMES_RULE: number;
12
- static KEYFRAME_RULE: number;
13
- static NAMESPACE_RULE: number;
14
- static COUNTER_STYLE_RULE: number;
15
- static SUPPORTS_RULE: number;
16
- static DOCUMENT_RULE: number;
17
- static FONT_FEATURE_VALUES_RULE: number;
18
- static REGION_STYLE_RULE: number;
7
+ static CONTAINER_RULE: CSSRuleTypeEnum;
8
+ static STYLE_RULE: CSSRuleTypeEnum;
9
+ static IMPORT_RULE: CSSRuleTypeEnum;
10
+ static MEDIA_RULE: CSSRuleTypeEnum;
11
+ static FONT_FACE_RULE: CSSRuleTypeEnum;
12
+ static PAGE_RULE: CSSRuleTypeEnum;
13
+ static KEYFRAMES_RULE: CSSRuleTypeEnum;
14
+ static KEYFRAME_RULE: CSSRuleTypeEnum;
15
+ static NAMESPACE_RULE: CSSRuleTypeEnum;
16
+ static COUNTER_STYLE_RULE: CSSRuleTypeEnum;
17
+ static SUPPORTS_RULE: CSSRuleTypeEnum;
18
+ static DOCUMENT_RULE: CSSRuleTypeEnum;
19
+ static FONT_FEATURE_VALUES_RULE: CSSRuleTypeEnum;
20
+ static REGION_STYLE_RULE: CSSRuleTypeEnum;
19
21
  parentRule: CSSRule;
20
22
  parentStyleSheet: CSSStyleSheet;
21
23
  type: number;
@@ -1,5 +1,9 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ const CSSRuleTypeEnum_1 = __importDefault(require("./CSSRuleTypeEnum"));
3
7
  /**
4
8
  * CSSRule interface.
5
9
  */
@@ -19,17 +23,18 @@ class CSSRule {
19
23
  }
20
24
  }
21
25
  exports.default = CSSRule;
22
- CSSRule.STYLE_RULE = 1;
23
- CSSRule.IMPORT_RULE = 3;
24
- CSSRule.MEDIA_RULE = 4;
25
- CSSRule.FONT_FACE_RULE = 5;
26
- CSSRule.PAGE_RULE = 6;
27
- CSSRule.KEYFRAMES_RULE = 7;
28
- CSSRule.KEYFRAME_RULE = 8;
29
- CSSRule.NAMESPACE_RULE = 10;
30
- CSSRule.COUNTER_STYLE_RULE = 11;
31
- CSSRule.SUPPORTS_RULE = 12;
32
- CSSRule.DOCUMENT_RULE = 13;
33
- CSSRule.FONT_FEATURE_VALUES_RULE = 14;
34
- CSSRule.REGION_STYLE_RULE = 16;
26
+ CSSRule.CONTAINER_RULE = CSSRuleTypeEnum_1.default.containerRule;
27
+ CSSRule.STYLE_RULE = CSSRuleTypeEnum_1.default.styleRule;
28
+ CSSRule.IMPORT_RULE = CSSRuleTypeEnum_1.default.importRule;
29
+ CSSRule.MEDIA_RULE = CSSRuleTypeEnum_1.default.mediaRule;
30
+ CSSRule.FONT_FACE_RULE = CSSRuleTypeEnum_1.default.fontFaceRule;
31
+ CSSRule.PAGE_RULE = CSSRuleTypeEnum_1.default.pageRule;
32
+ CSSRule.KEYFRAMES_RULE = CSSRuleTypeEnum_1.default.keyframesRule;
33
+ CSSRule.KEYFRAME_RULE = CSSRuleTypeEnum_1.default.keyframeRule;
34
+ CSSRule.NAMESPACE_RULE = CSSRuleTypeEnum_1.default.namespaceRule;
35
+ CSSRule.COUNTER_STYLE_RULE = CSSRuleTypeEnum_1.default.counterStyleRule;
36
+ CSSRule.SUPPORTS_RULE = CSSRuleTypeEnum_1.default.supportsRule;
37
+ CSSRule.DOCUMENT_RULE = CSSRuleTypeEnum_1.default.documentRule;
38
+ CSSRule.FONT_FEATURE_VALUES_RULE = CSSRuleTypeEnum_1.default.fontFeatureValuesRule;
39
+ CSSRule.REGION_STYLE_RULE = CSSRuleTypeEnum_1.default.regionStyleRule;
35
40
  //# sourceMappingURL=CSSRule.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CSSRule.js","sourceRoot":"","sources":["../../src/css/CSSRule.ts"],"names":[],"mappings":";;AAEA;;GAEG;AACH,MAAqB,OAAO;IAA5B;QAeQ,eAAU,GAAY,IAAI,CAAC;QAC3B,qBAAgB,GAAkB,IAAI,CAAC;QACvC,SAAI,GAAW,IAAI,CAAC;IAU5B,CAAC;IARA;;;;OAIG;IACH,IAAW,OAAO;QACjB,OAAO,EAAE,CAAC;IACX,CAAC;;AA1BF,0BA2BC;AA1Bc,kBAAU,GAAG,CAAC,CAAC;AACf,mBAAW,GAAG,CAAC,CAAC;AAChB,kBAAU,GAAG,CAAC,CAAC;AACf,sBAAc,GAAG,CAAC,CAAC;AACnB,iBAAS,GAAG,CAAC,CAAC;AACd,sBAAc,GAAG,CAAC,CAAC;AACnB,qBAAa,GAAG,CAAC,CAAC;AAClB,sBAAc,GAAG,EAAE,CAAC;AACpB,0BAAkB,GAAG,EAAE,CAAC;AACxB,qBAAa,GAAG,EAAE,CAAC;AACnB,qBAAa,GAAG,EAAE,CAAC;AACnB,gCAAwB,GAAG,EAAE,CAAC;AAC9B,yBAAiB,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"CSSRule.js","sourceRoot":"","sources":["../../src/css/CSSRule.ts"],"names":[],"mappings":";;;;;AACA,wEAAgD;AAEhD;;GAEG;AACH,MAAqB,OAAO;IAA5B;QAgBQ,eAAU,GAAY,IAAI,CAAC;QAC3B,qBAAgB,GAAkB,IAAI,CAAC;QACvC,SAAI,GAAW,IAAI,CAAC;IAU5B,CAAC;IARA;;;;OAIG;IACH,IAAW,OAAO;QACjB,OAAO,EAAE,CAAC;IACX,CAAC;;AA3BF,0BA4BC;AA3Bc,sBAAc,GAAG,yBAAe,CAAC,aAAa,CAAC;AAC/C,kBAAU,GAAG,yBAAe,CAAC,SAAS,CAAC;AACvC,mBAAW,GAAG,yBAAe,CAAC,UAAU,CAAC;AACzC,kBAAU,GAAG,yBAAe,CAAC,SAAS,CAAC;AACvC,sBAAc,GAAG,yBAAe,CAAC,YAAY,CAAC;AAC9C,iBAAS,GAAG,yBAAe,CAAC,QAAQ,CAAC;AACrC,sBAAc,GAAG,yBAAe,CAAC,aAAa,CAAC;AAC/C,qBAAa,GAAG,yBAAe,CAAC,YAAY,CAAC;AAC7C,sBAAc,GAAG,yBAAe,CAAC,aAAa,CAAC;AAC/C,0BAAkB,GAAG,yBAAe,CAAC,gBAAgB,CAAC;AACtD,qBAAa,GAAG,yBAAe,CAAC,YAAY,CAAC;AAC7C,qBAAa,GAAG,yBAAe,CAAC,YAAY,CAAC;AAC7C,gCAAwB,GAAG,yBAAe,CAAC,qBAAqB,CAAC;AACjE,yBAAiB,GAAG,yBAAe,CAAC,eAAe,CAAC"}
@@ -0,0 +1,17 @@
1
+ declare enum CSSRuleTypeEnum {
2
+ containerRule = 0,
3
+ styleRule = 1,
4
+ importRule = 3,
5
+ mediaRule = 4,
6
+ fontFaceRule = 5,
7
+ pageRule = 6,
8
+ keyframesRule = 7,
9
+ keyframeRule = 8,
10
+ namespaceRule = 10,
11
+ counterStyleRule = 11,
12
+ supportsRule = 12,
13
+ documentRule = 13,
14
+ fontFeatureValuesRule = 14,
15
+ regionStyleRule = 16
16
+ }
17
+ export default CSSRuleTypeEnum;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var CSSRuleTypeEnum;
4
+ (function (CSSRuleTypeEnum) {
5
+ CSSRuleTypeEnum[CSSRuleTypeEnum["containerRule"] = 0] = "containerRule";
6
+ CSSRuleTypeEnum[CSSRuleTypeEnum["styleRule"] = 1] = "styleRule";
7
+ CSSRuleTypeEnum[CSSRuleTypeEnum["importRule"] = 3] = "importRule";
8
+ CSSRuleTypeEnum[CSSRuleTypeEnum["mediaRule"] = 4] = "mediaRule";
9
+ CSSRuleTypeEnum[CSSRuleTypeEnum["fontFaceRule"] = 5] = "fontFaceRule";
10
+ CSSRuleTypeEnum[CSSRuleTypeEnum["pageRule"] = 6] = "pageRule";
11
+ CSSRuleTypeEnum[CSSRuleTypeEnum["keyframesRule"] = 7] = "keyframesRule";
12
+ CSSRuleTypeEnum[CSSRuleTypeEnum["keyframeRule"] = 8] = "keyframeRule";
13
+ CSSRuleTypeEnum[CSSRuleTypeEnum["namespaceRule"] = 10] = "namespaceRule";
14
+ CSSRuleTypeEnum[CSSRuleTypeEnum["counterStyleRule"] = 11] = "counterStyleRule";
15
+ CSSRuleTypeEnum[CSSRuleTypeEnum["supportsRule"] = 12] = "supportsRule";
16
+ CSSRuleTypeEnum[CSSRuleTypeEnum["documentRule"] = 13] = "documentRule";
17
+ CSSRuleTypeEnum[CSSRuleTypeEnum["fontFeatureValuesRule"] = 14] = "fontFeatureValuesRule";
18
+ CSSRuleTypeEnum[CSSRuleTypeEnum["regionStyleRule"] = 16] = "regionStyleRule";
19
+ })(CSSRuleTypeEnum || (CSSRuleTypeEnum = {}));
20
+ exports.default = CSSRuleTypeEnum;
21
+ //# sourceMappingURL=CSSRuleTypeEnum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CSSRuleTypeEnum.js","sourceRoot":"","sources":["../../src/css/CSSRuleTypeEnum.ts"],"names":[],"mappings":";;AAAA,IAAK,eAeJ;AAfD,WAAK,eAAe;IACnB,uEAAiB,CAAA;IACjB,+DAAa,CAAA;IACb,iEAAc,CAAA;IACd,+DAAa,CAAA;IACb,qEAAgB,CAAA;IAChB,6DAAY,CAAA;IACZ,uEAAiB,CAAA;IACjB,qEAAgB,CAAA;IAChB,wEAAkB,CAAA;IAClB,8EAAqB,CAAA;IACrB,sEAAiB,CAAA;IACjB,sEAAiB,CAAA;IACjB,wFAA0B,CAAA;IAC1B,4EAAoB,CAAA;AACrB,CAAC,EAfI,eAAe,KAAf,eAAe,QAenB;AAED,kBAAe,eAAe,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import CSSRule from './CSSRule';
2
2
  import MediaList from './MediaList';
3
3
  /**
4
- * Attr node interface.
4
+ * CSS StyleSheet.
5
5
  *
6
6
  * Reference:
7
7
  * https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet.
@@ -15,12 +15,10 @@ export default class CSSStyleSheet {
15
15
  title: string;
16
16
  alternate: boolean;
17
17
  disabled: boolean;
18
+ private _currentText;
18
19
  /**
19
20
  * Constructor.
20
21
  *
21
- * Constructable Stylesheets is a new feature that only Blink supports:
22
- * https://wicg.github.io/construct-stylesheets/.
23
- *
24
22
  * @param [options] Options.
25
23
  * @param [options.media] Media.
26
24
  * @param [options.title] Title.
@@ -36,9 +34,7 @@ export default class CSSStyleSheet {
36
34
  /**
37
35
  * Inserts a rule.
38
36
  *
39
- * Constructable Stylesheets is a new feature that only Blink supports:
40
- * https://wicg.github.io/construct-stylesheets/.
41
- *
37
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet/insertRule
42
38
  * @param rule Rule.
43
39
  * @param [index] Index.
44
40
  * @returns The newly inserterted rule's index.
@@ -47,18 +43,14 @@ export default class CSSStyleSheet {
47
43
  /**
48
44
  * Removes a rule.
49
45
  *
50
- * Constructable Stylesheets is a new feature that only Blink supports:
51
- * https://wicg.github.io/construct-stylesheets/.
52
- *
46
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet/deleteRule
53
47
  * @param index Index.
54
48
  */
55
49
  deleteRule(index: number): void;
56
50
  /**
57
51
  * Replaces all CSS rules.
58
52
  *
59
- * Constructable Stylesheets is a new feature that only Blink supports:
60
- * https://wicg.github.io/construct-stylesheets/.
61
- *
53
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet/replace
62
54
  * @param text CSS text.
63
55
  * @returns Promise.
64
56
  */
@@ -66,9 +58,7 @@ export default class CSSStyleSheet {
66
58
  /**
67
59
  * Replaces all CSS rules.
68
60
  *
69
- * Constructable Stylesheets is a new feature that only Blink supports:
70
- * https://wicg.github.io/construct-stylesheets/.
71
- *
61
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet/replaceSync
72
62
  * @param text CSS text.
73
63
  */
74
64
  replaceSync(text: string): void;
@@ -7,7 +7,7 @@ const DOMException_1 = __importDefault(require("../exception/DOMException"));
7
7
  const DOMExceptionNameEnum_1 = __importDefault(require("../exception/DOMExceptionNameEnum"));
8
8
  const CSSParser_1 = __importDefault(require("./CSSParser"));
9
9
  /**
10
- * Attr node interface.
10
+ * CSS StyleSheet.
11
11
  *
12
12
  * Reference:
13
13
  * https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet.
@@ -16,9 +16,6 @@ class CSSStyleSheet {
16
16
  /**
17
17
  * Constructor.
18
18
  *
19
- * Constructable Stylesheets is a new feature that only Blink supports:
20
- * https://wicg.github.io/construct-stylesheets/.
21
- *
22
19
  * @param [options] Options.
23
20
  * @param [options.media] Media.
24
21
  * @param [options.title] Title.
@@ -30,6 +27,7 @@ class CSSStyleSheet {
30
27
  this.name = null;
31
28
  this.namespaceURI = null;
32
29
  this.cssRules = [];
30
+ this._currentText = null;
33
31
  this.media = options && options.media ? options.media : '';
34
32
  this.title = options && options.title ? options.title : '';
35
33
  this.alternate = options && options.alternate ? options.alternate : false;
@@ -38,9 +36,7 @@ class CSSStyleSheet {
38
36
  /**
39
37
  * Inserts a rule.
40
38
  *
41
- * Constructable Stylesheets is a new feature that only Blink supports:
42
- * https://wicg.github.io/construct-stylesheets/.
43
- *
39
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet/insertRule
44
40
  * @param rule Rule.
45
41
  * @param [index] Index.
46
42
  * @returns The newly inserterted rule's index.
@@ -57,8 +53,7 @@ class CSSStyleSheet {
57
53
  if (index > this.cssRules.length) {
58
54
  throw new DOMException_1.default('Index is more than the length of CSSRuleList.', DOMExceptionNameEnum_1.default.indexSizeError);
59
55
  }
60
- this.cssRules.splice(index, 0);
61
- this.cssRules.push(rules[0]);
56
+ this.cssRules.splice(index, 0, rules[0]);
62
57
  return index;
63
58
  }
64
59
  const newIndex = this.cssRules.length;
@@ -68,9 +63,7 @@ class CSSStyleSheet {
68
63
  /**
69
64
  * Removes a rule.
70
65
  *
71
- * Constructable Stylesheets is a new feature that only Blink supports:
72
- * https://wicg.github.io/construct-stylesheets/.
73
- *
66
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet/deleteRule
74
67
  * @param index Index.
75
68
  */
76
69
  deleteRule(index) {
@@ -79,9 +72,7 @@ class CSSStyleSheet {
79
72
  /**
80
73
  * Replaces all CSS rules.
81
74
  *
82
- * Constructable Stylesheets is a new feature that only Blink supports:
83
- * https://wicg.github.io/construct-stylesheets/.
84
- *
75
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet/replace
85
76
  * @param text CSS text.
86
77
  * @returns Promise.
87
78
  */
@@ -91,13 +82,14 @@ class CSSStyleSheet {
91
82
  /**
92
83
  * Replaces all CSS rules.
93
84
  *
94
- * Constructable Stylesheets is a new feature that only Blink supports:
95
- * https://wicg.github.io/construct-stylesheets/.
96
- *
85
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet/replaceSync
97
86
  * @param text CSS text.
98
87
  */
99
88
  replaceSync(text) {
100
- this.cssRules = CSSParser_1.default.parseFromString(this, text);
89
+ if (this._currentText !== text) {
90
+ this._currentText = text;
91
+ this.cssRules = CSSParser_1.default.parseFromString(this, text);
92
+ }
101
93
  }
102
94
  }
103
95
  exports.default = CSSStyleSheet;
@@ -1 +1 @@
1
- {"version":3,"file":"CSSStyleSheet.js","sourceRoot":"","sources":["../../src/css/CSSStyleSheet.ts"],"names":[],"mappings":";;;;;AAAA,6EAAqD;AACrD,6FAAqE;AACrE,4DAAoC;AAIpC;;;;;GAKG;AACH,MAAqB,aAAa;IAcjC;;;;;;;;;;;OAWG;IACH,YAAY,OAKX;QA9BM,UAAK,GAAW,IAAI,CAAC;QACrB,SAAI,GAAW,IAAI,CAAC;QACpB,iBAAY,GAAW,IAAI,CAAC;QACnB,aAAQ,GAAc,EAAE,CAAC;QA4BxC,IAAI,CAAC,KAAK,GAAG,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,IAAI,CAAC,KAAK,GAAG,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,IAAI,CAAC,SAAS,GAAG,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;QAC1E,IAAI,CAAC,QAAQ,GAAG,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;IACxE,CAAC;IAED;;;;;;;;;OASG;IACI,UAAU,CAAC,IAAY,EAAE,KAAc;QAC7C,MAAM,KAAK,GAAG,mBAAS,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAEpD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YACvB,MAAM,IAAI,sBAAY,CAAC,mBAAmB,EAAE,8BAAoB,CAAC,qBAAqB,CAAC,CAAC;SACxF;QAED,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,MAAM,IAAI,sBAAY,CACrB,uCAAuC,EACvC,8BAAoB,CAAC,WAAW,CAChC,CAAC;SACF;QAED,IAAI,KAAK,KAAK,SAAS,EAAE;YACxB,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;gBACjC,MAAM,IAAI,sBAAY,CACrB,+CAA+C,EAC/C,8BAAoB,CAAC,cAAc,CACnC,CAAC;aACF;YACD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7B,OAAO,KAAK,CAAC;SACb;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAEtC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAE7B,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED;;;;;;;OAOG;IACI,UAAU,CAAC,KAAa;QAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED;;;;;;;;OAQG;IACI,KAAK,CAAC,OAAO,CAAC,IAAY;QAChC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED;;;;;;;OAOG;IACI,WAAW,CAAC,IAAY;QAClB,IAAI,CAAC,QAAS,GAAG,mBAAS,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACpE,CAAC;CACD;AArHD,gCAqHC"}
1
+ {"version":3,"file":"CSSStyleSheet.js","sourceRoot":"","sources":["../../src/css/CSSStyleSheet.ts"],"names":[],"mappings":";;;;;AAAA,6EAAqD;AACrD,6FAAqE;AACrE,4DAAoC;AAIpC;;;;;GAKG;AACH,MAAqB,aAAa;IAajC;;;;;;;;OAQG;IACH,YAAY,OAKX;QA1BM,UAAK,GAAW,IAAI,CAAC;QACrB,SAAI,GAAW,IAAI,CAAC;QACpB,iBAAY,GAAW,IAAI,CAAC;QACnB,aAAQ,GAAc,EAAE,CAAC;QAOjC,iBAAY,GAAW,IAAI,CAAC;QAiBnC,IAAI,CAAC,KAAK,GAAG,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,IAAI,CAAC,KAAK,GAAG,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,IAAI,CAAC,SAAS,GAAG,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;QAC1E,IAAI,CAAC,QAAQ,GAAG,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;IACxE,CAAC;IAED;;;;;;;OAOG;IACI,UAAU,CAAC,IAAY,EAAE,KAAc;QAC7C,MAAM,KAAK,GAAG,mBAAS,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAEpD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YACvB,MAAM,IAAI,sBAAY,CAAC,mBAAmB,EAAE,8BAAoB,CAAC,qBAAqB,CAAC,CAAC;SACxF;QAED,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,MAAM,IAAI,sBAAY,CACrB,uCAAuC,EACvC,8BAAoB,CAAC,WAAW,CAChC,CAAC;SACF;QAED,IAAI,KAAK,KAAK,SAAS,EAAE;YACxB,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;gBACjC,MAAM,IAAI,sBAAY,CACrB,+CAA+C,EAC/C,8BAAoB,CAAC,cAAc,CACnC,CAAC;aACF;YACD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACzC,OAAO,KAAK,CAAC;SACb;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAEtC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAE7B,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED;;;;;OAKG;IACI,UAAU,CAAC,KAAa;QAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,OAAO,CAAC,IAAY;QAChC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED;;;;;OAKG;IACI,WAAW,CAAC,IAAY;QAC9B,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,EAAE;YAC/B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACb,IAAI,CAAC,QAAS,GAAG,mBAAS,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SACnE;IACF,CAAC;CACD;AA3GD,gCA2GC"}
@@ -0,0 +1,76 @@
1
+ import IElement from '../../nodes/element/IElement';
2
+ import CSSRule from '../CSSRule';
3
+ import CSSStyleDeclarationElementStyle from './utilities/CSSStyleDeclarationElementStyle';
4
+ import CSSStyleDeclarationPropertyManager from './utilities/CSSStyleDeclarationPropertyManager';
5
+ /**
6
+ * CSS Style Declaration.
7
+ */
8
+ export default abstract class AbstractCSSStyleDeclaration {
9
+ readonly parentRule: CSSRule;
10
+ protected _style: CSSStyleDeclarationPropertyManager;
11
+ protected _ownerElement: IElement;
12
+ protected _computed: boolean;
13
+ protected _elementStyle: CSSStyleDeclarationElementStyle;
14
+ /**
15
+ * Constructor.
16
+ *
17
+ * @param [ownerElement] Computed style element.
18
+ * @param [computed] Computed.
19
+ */
20
+ constructor(ownerElement?: IElement, computed?: boolean);
21
+ /**
22
+ * Returns length.
23
+ *
24
+ * @returns Length.
25
+ */
26
+ get length(): number;
27
+ /**
28
+ * Returns the style decleration as a CSS text.
29
+ *
30
+ * @returns CSS text.
31
+ */
32
+ get cssText(): string;
33
+ /**
34
+ * Sets CSS text.
35
+ *
36
+ * @param cssText CSS text.
37
+ */
38
+ set cssText(cssText: string);
39
+ /**
40
+ * Returns item.
41
+ *
42
+ * @param index Index.
43
+ * @returns Item.
44
+ */
45
+ item(index: number): string;
46
+ /**
47
+ * Set a property.
48
+ *
49
+ * @param name Property name.
50
+ * @param value Value. Must not contain "!important" as that should be set using the priority parameter.
51
+ * @param [priority] Can be "important", or an empty string.
52
+ */
53
+ setProperty(name: string, value: string, priority?: 'important' | '' | undefined): void;
54
+ /**
55
+ * Removes a property.
56
+ *
57
+ * @param name Property name in kebab case.
58
+ * @param value Value. Must not contain "!important" as that should be set using the priority parameter.
59
+ * @param [priority] Can be "important", or an empty string.
60
+ */
61
+ removeProperty(name: string): void;
62
+ /**
63
+ * Returns a property.
64
+ *
65
+ * @param name Property name in kebab case.
66
+ * @returns Property value.
67
+ */
68
+ getPropertyValue(name: string): string;
69
+ /**
70
+ * Returns a property.
71
+ *
72
+ * @param name Property name in kebab case.
73
+ * @returns "important" if set to be important.
74
+ */
75
+ getPropertyPriority(name: string): string;
76
+ }
@@ -0,0 +1,182 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const Attr_1 = __importDefault(require("../../nodes/attr/Attr"));
7
+ const DOMExceptionNameEnum_1 = __importDefault(require("../../exception/DOMExceptionNameEnum"));
8
+ const DOMException_1 = __importDefault(require("../../exception/DOMException"));
9
+ const CSSStyleDeclarationElementStyle_1 = __importDefault(require("./utilities/CSSStyleDeclarationElementStyle"));
10
+ const CSSStyleDeclarationPropertyManager_1 = __importDefault(require("./utilities/CSSStyleDeclarationPropertyManager"));
11
+ /**
12
+ * CSS Style Declaration.
13
+ */
14
+ class AbstractCSSStyleDeclaration {
15
+ /**
16
+ * Constructor.
17
+ *
18
+ * @param [ownerElement] Computed style element.
19
+ * @param [computed] Computed.
20
+ */
21
+ constructor(ownerElement = null, computed = false) {
22
+ this.parentRule = null;
23
+ this._style = null;
24
+ this._elementStyle = null;
25
+ this._style = !ownerElement ? new CSSStyleDeclarationPropertyManager_1.default() : null;
26
+ this._ownerElement = ownerElement;
27
+ this._computed = ownerElement ? computed : false;
28
+ this._elementStyle = ownerElement
29
+ ? new CSSStyleDeclarationElementStyle_1.default(ownerElement, this._computed)
30
+ : null;
31
+ }
32
+ /**
33
+ * Returns length.
34
+ *
35
+ * @returns Length.
36
+ */
37
+ get length() {
38
+ if (this._ownerElement) {
39
+ const style = this._elementStyle.getElementStyle();
40
+ return style.size();
41
+ }
42
+ return this._style.size();
43
+ }
44
+ /**
45
+ * Returns the style decleration as a CSS text.
46
+ *
47
+ * @returns CSS text.
48
+ */
49
+ get cssText() {
50
+ if (this._ownerElement) {
51
+ if (this._computed) {
52
+ return '';
53
+ }
54
+ return this._elementStyle.getElementStyle().toString();
55
+ }
56
+ return this._style.toString();
57
+ }
58
+ /**
59
+ * Sets CSS text.
60
+ *
61
+ * @param cssText CSS text.
62
+ */
63
+ set cssText(cssText) {
64
+ if (this._computed) {
65
+ throw new DOMException_1.default(`Failed to execute 'cssText' on 'CSSStyleDeclaration': These styles are computed, and the properties are therefore read-only.`, DOMExceptionNameEnum_1.default.domException);
66
+ }
67
+ if (this._ownerElement) {
68
+ const style = new CSSStyleDeclarationPropertyManager_1.default({ cssText });
69
+ if (!style.size()) {
70
+ delete this._ownerElement['_attributes']['style'];
71
+ }
72
+ else {
73
+ if (!this._ownerElement['_attributes']['style']) {
74
+ Attr_1.default._ownerDocument = this._ownerElement.ownerDocument;
75
+ this._ownerElement['_attributes']['style'] = new Attr_1.default();
76
+ this._ownerElement['_attributes']['style'].name = 'style';
77
+ }
78
+ this._ownerElement['_attributes']['style'].value = style.toString();
79
+ }
80
+ }
81
+ else {
82
+ this._style = new CSSStyleDeclarationPropertyManager_1.default({ cssText });
83
+ }
84
+ }
85
+ /**
86
+ * Returns item.
87
+ *
88
+ * @param index Index.
89
+ * @returns Item.
90
+ */
91
+ item(index) {
92
+ if (this._ownerElement) {
93
+ return this._elementStyle.getElementStyle().item(index);
94
+ }
95
+ return this._style.item(index);
96
+ }
97
+ /**
98
+ * Set a property.
99
+ *
100
+ * @param name Property name.
101
+ * @param value Value. Must not contain "!important" as that should be set using the priority parameter.
102
+ * @param [priority] Can be "important", or an empty string.
103
+ */
104
+ setProperty(name, value, priority) {
105
+ if (this._computed) {
106
+ throw new DOMException_1.default(`Failed to execute 'setProperty' on 'CSSStyleDeclaration': These styles are computed, and therefore the '${name}' property is read-only.`, DOMExceptionNameEnum_1.default.domException);
107
+ }
108
+ if (priority !== '' && priority !== undefined && priority !== 'important') {
109
+ return;
110
+ }
111
+ if (!value) {
112
+ this.removeProperty(name);
113
+ }
114
+ else if (this._ownerElement) {
115
+ if (!this._ownerElement['_attributes']['style']) {
116
+ Attr_1.default._ownerDocument = this._ownerElement.ownerDocument;
117
+ this._ownerElement['_attributes']['style'] = new Attr_1.default();
118
+ this._ownerElement['_attributes']['style'].name = 'style';
119
+ }
120
+ const style = this._elementStyle.getElementStyle();
121
+ style.set(name, value, !!priority);
122
+ this._ownerElement['_attributes']['style'].value = style.toString();
123
+ }
124
+ else {
125
+ this._style.set(name, value, !!priority);
126
+ }
127
+ }
128
+ /**
129
+ * Removes a property.
130
+ *
131
+ * @param name Property name in kebab case.
132
+ * @param value Value. Must not contain "!important" as that should be set using the priority parameter.
133
+ * @param [priority] Can be "important", or an empty string.
134
+ */
135
+ removeProperty(name) {
136
+ if (this._computed) {
137
+ throw new DOMException_1.default(`Failed to execute 'removeProperty' on 'CSSStyleDeclaration': These styles are computed, and therefore the '${name}' property is read-only.`, DOMExceptionNameEnum_1.default.domException);
138
+ }
139
+ if (this._ownerElement) {
140
+ const style = this._elementStyle.getElementStyle();
141
+ style.remove(name);
142
+ const newCSSText = style.toString();
143
+ if (newCSSText) {
144
+ this._ownerElement['_attributes']['style'].value = newCSSText;
145
+ }
146
+ else {
147
+ delete this._ownerElement['_attributes']['style'];
148
+ }
149
+ }
150
+ else {
151
+ this._style.remove(name);
152
+ }
153
+ }
154
+ /**
155
+ * Returns a property.
156
+ *
157
+ * @param name Property name in kebab case.
158
+ * @returns Property value.
159
+ */
160
+ getPropertyValue(name) {
161
+ if (this._ownerElement) {
162
+ const style = this._elementStyle.getElementStyle();
163
+ return style.get(name)?.value || '';
164
+ }
165
+ return this._style.get(name)?.value || '';
166
+ }
167
+ /**
168
+ * Returns a property.
169
+ *
170
+ * @param name Property name in kebab case.
171
+ * @returns "important" if set to be important.
172
+ */
173
+ getPropertyPriority(name) {
174
+ if (this._ownerElement) {
175
+ const style = this._elementStyle.getElementStyle();
176
+ return style.get(name)?.important ? 'important' : '';
177
+ }
178
+ return this._style.get(name)?.important ? 'important' : '';
179
+ }
180
+ }
181
+ exports.default = AbstractCSSStyleDeclaration;
182
+ //# sourceMappingURL=AbstractCSSStyleDeclaration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractCSSStyleDeclaration.js","sourceRoot":"","sources":["../../../src/css/declaration/AbstractCSSStyleDeclaration.ts"],"names":[],"mappings":";;;;;AACA,iEAAyC;AAEzC,gGAAwE;AACxE,gFAAwD;AACxD,kHAA0F;AAC1F,wHAAgG;AAEhG;;GAEG;AACH,MAA8B,2BAA2B;IAOxD;;;;;OAKG;IACH,YAAY,eAAyB,IAAI,EAAE,QAAQ,GAAG,KAAK;QAZ3C,eAAU,GAAY,IAAI,CAAC;QACjC,WAAM,GAAuC,IAAI,CAAC;QAGlD,kBAAa,GAAoC,IAAI,CAAC;QAS/D,IAAI,CAAC,MAAM,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,4CAAkC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9E,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;QACjD,IAAI,CAAC,aAAa,GAAG,YAAY;YAChC,CAAC,CAAC,IAAI,yCAA+B,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC;YACnE,CAAC,CAAC,IAAI,CAAC;IACT,CAAC;IAED;;;;OAIG;IACH,IAAW,MAAM;QAChB,IAAI,IAAI,CAAC,aAAa,EAAE;YACvB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;YACnD,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;SACpB;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED;;;;OAIG;IACH,IAAW,OAAO;QACjB,IAAI,IAAI,CAAC,aAAa,EAAE;YACvB,IAAI,IAAI,CAAC,SAAS,EAAE;gBACnB,OAAO,EAAE,CAAC;aACV;YAED,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC,QAAQ,EAAE,CAAC;SACvD;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACH,IAAW,OAAO,CAAC,OAAe;QACjC,IAAI,IAAI,CAAC,SAAS,EAAE;YACnB,MAAM,IAAI,sBAAY,CACrB,8HAA8H,EAC9H,8BAAoB,CAAC,YAAY,CACjC,CAAC;SACF;QAED,IAAI,IAAI,CAAC,aAAa,EAAE;YACvB,MAAM,KAAK,GAAG,IAAI,4CAAkC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;YAClE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE;gBAClB,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC;aAClD;iBAAM;gBACN,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,EAAE;oBAChD,cAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;oBACvD,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,cAAI,EAAE,CAAC;oBACxD,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC;iBAC1D;gBAED,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;aACpE;SACD;aAAM;YACN,IAAI,CAAC,MAAM,GAAG,IAAI,4CAAkC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;SAClE;IACF,CAAC;IAED;;;;;OAKG;IACI,IAAI,CAAC,KAAa;QACxB,IAAI,IAAI,CAAC,aAAa,EAAE;YACvB,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACxD;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED;;;;;;OAMG;IACI,WAAW,CAAC,IAAY,EAAE,KAAa,EAAE,QAAuC;QACtF,IAAI,IAAI,CAAC,SAAS,EAAE;YACnB,MAAM,IAAI,sBAAY,CACrB,2GAA2G,IAAI,0BAA0B,EACzI,8BAAoB,CAAC,YAAY,CACjC,CAAC;SACF;QAED,IAAI,QAAQ,KAAK,EAAE,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,WAAW,EAAE;YAC1E,OAAO;SACP;QAED,IAAI,CAAC,KAAK,EAAE;YACX,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;SAC1B;aAAM,IAAI,IAAI,CAAC,aAAa,EAAE;YAC9B,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,EAAE;gBAChD,cAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;gBACvD,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,cAAI,EAAE,CAAC;gBACxD,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC;aAC1D;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;YACnD,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;YAEnC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;SACpE;aAAM;YACN,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;SACzC;IACF,CAAC;IAED;;;;;;OAMG;IACI,cAAc,CAAC,IAAY;QACjC,IAAI,IAAI,CAAC,SAAS,EAAE;YACnB,MAAM,IAAI,sBAAY,CACrB,8GAA8G,IAAI,0BAA0B,EAC5I,8BAAoB,CAAC,YAAY,CACjC,CAAC;SACF;QAED,IAAI,IAAI,CAAC,aAAa,EAAE;YACvB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;YACnD,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACnB,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;YACpC,IAAI,UAAU,EAAE;gBACf,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC;aAC9D;iBAAM;gBACN,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC;aAClD;SACD;aAAM;YACN,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SACzB;IACF,CAAC;IAED;;;;;OAKG;IACI,gBAAgB,CAAC,IAAY;QACnC,IAAI,IAAI,CAAC,aAAa,EAAE;YACvB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;YACnD,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC;SACpC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC;IAC3C,CAAC;IAED;;;;;OAKG;IACI,mBAAmB,CAAC,IAAY;QACtC,IAAI,IAAI,CAAC,aAAa,EAAE;YACvB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;YACnD,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;SACrD;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5D,CAAC;CACD;AA9LD,8CA8LC"}