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
@@ -0,0 +1,537 @@
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 CSSStyleDeclarationValueParser_1 = __importDefault(require("./CSSStyleDeclarationValueParser"));
7
+ /**
8
+ * Computed style property parser.
9
+ */
10
+ class CSSStyleDeclarationPropertyGetParser {
11
+ /**
12
+ * Returns margin.
13
+ *
14
+ * @param properties Properties.
15
+ * @returns Property value
16
+ */
17
+ static getMargin(properties) {
18
+ return this.getPaddingLikeProperty(['margin-top', 'margin-right', 'margin-bottom', 'margin-left'], properties);
19
+ }
20
+ /**
21
+ * Returns padding.
22
+ *
23
+ * @param properties Properties.
24
+ * @returns Property value
25
+ */
26
+ static getPadding(properties) {
27
+ return this.getPaddingLikeProperty(['padding-top', 'padding-right', 'padding-bottom', 'padding-left'], properties);
28
+ }
29
+ /**
30
+ * Returns border.
31
+ *
32
+ * @param properties Properties.
33
+ * @returns Property value
34
+ */
35
+ static getBorder(properties) {
36
+ if (!properties['border-top-width']?.value ||
37
+ properties['border-top-width']?.value !== properties['border-right-width']?.value ||
38
+ properties['border-top-width']?.value !== properties['border-bottom-width']?.value ||
39
+ properties['border-top-width']?.value !== properties['border-left-width']?.value ||
40
+ !properties['border-top-style']?.value ||
41
+ properties['border-top-style']?.value !== properties['border-right-style']?.value ||
42
+ properties['border-top-style']?.value !== properties['border-bottom-style']?.value ||
43
+ properties['border-top-style']?.value !== properties['border-left-style']?.value ||
44
+ !properties['border-top-color']?.value ||
45
+ properties['border-top-color']?.value !== properties['border-right-color']?.value ||
46
+ properties['border-top-color']?.value !== properties['border-bottom-color']?.value ||
47
+ properties['border-top-color']?.value !== properties['border-left-color']?.value ||
48
+ !properties['border-image-source']?.value ||
49
+ !properties['border-image-slice']?.value ||
50
+ !properties['border-image-width']?.value ||
51
+ !properties['border-image-outset']?.value ||
52
+ !properties['border-image-repeat']?.value) {
53
+ return null;
54
+ }
55
+ const important = properties['border-top-width'].important &&
56
+ properties['border-right-width'].important &&
57
+ properties['border-bottom-width'].important &&
58
+ properties['border-left-width'].important &&
59
+ properties['border-top-style'].important &&
60
+ properties['border-right-style'].important &&
61
+ properties['border-bottom-style'].important &&
62
+ properties['border-left-style'].important &&
63
+ properties['border-top-color'].important &&
64
+ properties['border-right-color'].important &&
65
+ properties['border-bottom-color'].important &&
66
+ properties['border-left-color'].important &&
67
+ properties['border-image-source'].important &&
68
+ properties['border-image-slice'].important &&
69
+ properties['border-image-width'].important &&
70
+ properties['border-image-outset'].important &&
71
+ properties['border-image-repeat'].important;
72
+ if (CSSStyleDeclarationValueParser_1.default.getGlobalExceptInitial(properties['border-top-width'].value) ||
73
+ CSSStyleDeclarationValueParser_1.default.getGlobalExceptInitial(properties['border-top-style'].value) ||
74
+ CSSStyleDeclarationValueParser_1.default.getGlobalExceptInitial(properties['border-top-color'].value) ||
75
+ CSSStyleDeclarationValueParser_1.default.getGlobalExceptInitial(properties['border-image-source'].value) ||
76
+ CSSStyleDeclarationValueParser_1.default.getGlobalExceptInitial(properties['border-image-slice'].value) ||
77
+ CSSStyleDeclarationValueParser_1.default.getGlobalExceptInitial(properties['border-image-width'].value) ||
78
+ CSSStyleDeclarationValueParser_1.default.getGlobalExceptInitial(properties['border-image-outset'].value) ||
79
+ CSSStyleDeclarationValueParser_1.default.getGlobalExceptInitial(properties['border-image-repeat'].value)) {
80
+ if (properties['border-top-width'].value !== properties['border-top-style'].value ||
81
+ properties['border-top-width'].value !== properties['border-top-color'].value ||
82
+ properties['border-top-width'].value !== properties['border-image-source'].value ||
83
+ properties['border-top-width'].value !== properties['border-image-slice'].value ||
84
+ properties['border-top-width'].value !== properties['border-image-width'].value ||
85
+ properties['border-top-width'].value !== properties['border-image-outset'].value ||
86
+ properties['border-top-width'].value !== properties['border-image-repeat'].value) {
87
+ return null;
88
+ }
89
+ return {
90
+ important,
91
+ value: properties['border-top-width'].value
92
+ };
93
+ }
94
+ const values = [];
95
+ if (!CSSStyleDeclarationValueParser_1.default.getInitial(properties['border-top-width'].value)) {
96
+ values.push(properties['border-top-width'].value);
97
+ }
98
+ if (!CSSStyleDeclarationValueParser_1.default.getInitial(properties['border-top-style'].value)) {
99
+ values.push(properties['border-top-style'].value);
100
+ }
101
+ if (!CSSStyleDeclarationValueParser_1.default.getInitial(properties['border-top-color'].value)) {
102
+ values.push(properties['border-top-color'].value);
103
+ }
104
+ return {
105
+ important,
106
+ value: values.join(' ')
107
+ };
108
+ }
109
+ /**
110
+ * Returns border.
111
+ *
112
+ * @param properties Properties.
113
+ * @returns Property value
114
+ */
115
+ static getBorderTop(properties) {
116
+ return this.getBorderTopRightBottomLeft('top', properties);
117
+ }
118
+ /**
119
+ * Returns border.
120
+ *
121
+ * @param properties Properties.
122
+ * @returns Property value
123
+ */
124
+ static getBorderRight(properties) {
125
+ return this.getBorderTopRightBottomLeft('right', properties);
126
+ }
127
+ /**
128
+ * Returns border.
129
+ *
130
+ * @param properties Properties.
131
+ * @returns Property value
132
+ */
133
+ static getBorderBottom(properties) {
134
+ return this.getBorderTopRightBottomLeft('bottom', properties);
135
+ }
136
+ /**
137
+ * Returns border.
138
+ *
139
+ * @param properties Properties.
140
+ * @returns Property value
141
+ */
142
+ static getBorderLeft(properties) {
143
+ return this.getBorderTopRightBottomLeft('left', properties);
144
+ }
145
+ /**
146
+ * Returns border.
147
+ *
148
+ * @param properties Properties.
149
+ * @returns Property value
150
+ */
151
+ static getBorderColor(properties) {
152
+ return this.getPaddingLikeProperty(['border-top-color', 'border-right-color', 'border-bottom-color', 'border-left-color'], properties);
153
+ }
154
+ /**
155
+ * Returns border.
156
+ *
157
+ * @param properties Properties.
158
+ * @returns Property value
159
+ */
160
+ static getBorderWidth(properties) {
161
+ return this.getPaddingLikeProperty(['border-top-width', 'border-right-width', 'border-bottom-width', 'border-left-width'], properties);
162
+ }
163
+ /**
164
+ * Returns border.
165
+ *
166
+ * @param properties Properties.
167
+ * @returns Property value
168
+ */
169
+ static getBorderStyle(properties) {
170
+ return this.getPaddingLikeProperty(['border-top-style', 'border-right-style', 'border-bottom-style', 'border-left-style'], properties);
171
+ }
172
+ /**
173
+ * Returns border radius.
174
+ *
175
+ * @param properties Properties.
176
+ * @returns Property value
177
+ */
178
+ static getBorderRadius(properties) {
179
+ return this.getPaddingLikeProperty([
180
+ 'border-top-left-radius',
181
+ 'border-top-right-radius',
182
+ 'border-bottom-right-radius',
183
+ 'border-bottom-left-radius'
184
+ ], properties);
185
+ }
186
+ /**
187
+ * Returns border image.
188
+ *
189
+ * @param properties Properties.
190
+ * @returns Property value
191
+ */
192
+ static getBorderImage(properties) {
193
+ if (!properties['border-image-source']?.value ||
194
+ !properties['border-image-slice']?.value ||
195
+ !properties['border-image-width']?.value ||
196
+ !properties['border-image-outset']?.value ||
197
+ !properties['border-image-repeat']?.value) {
198
+ return null;
199
+ }
200
+ const important = properties['border-image-source'].important &&
201
+ properties['border-image-slice'].important &&
202
+ properties['border-image-width'].important &&
203
+ properties['border-image-outset'].important &&
204
+ properties['border-image-repeat'].important;
205
+ if (CSSStyleDeclarationValueParser_1.default.getGlobal(properties['border-image-source'].value) ||
206
+ CSSStyleDeclarationValueParser_1.default.getGlobal(properties['border-image-slice'].value) ||
207
+ CSSStyleDeclarationValueParser_1.default.getGlobal(properties['border-image-width'].value) ||
208
+ CSSStyleDeclarationValueParser_1.default.getGlobal(properties['border-image-outset'].value) ||
209
+ CSSStyleDeclarationValueParser_1.default.getGlobal(properties['border-image-repeat'].value)) {
210
+ if (properties['border-image-source'].value !== properties['border-image-slice'].value ||
211
+ properties['border-image-source'].value !== properties['border-image-width'].value ||
212
+ properties['border-image-source'].value !== properties['border-image-outset'].value ||
213
+ properties['border-image-source'].value !== properties['border-image-repeat'].value) {
214
+ return null;
215
+ }
216
+ return {
217
+ important,
218
+ value: properties['border-image-source'].value
219
+ };
220
+ }
221
+ return {
222
+ important,
223
+ value: `${properties['border-image-source'].value} ${properties['border-image-slice'].value} / ${properties['border-image-width'].value} / ${properties['border-image-outset'].value} ${properties['border-image-repeat'].value}`
224
+ };
225
+ }
226
+ /**
227
+ * Returns background.
228
+ *
229
+ * @param properties Properties.
230
+ * @returns Property value
231
+ */
232
+ static getBackground(properties) {
233
+ if (!properties['background-image']?.value ||
234
+ !properties['background-repeat']?.value ||
235
+ !properties['background-attachment']?.value ||
236
+ !properties['background-position-x']?.value ||
237
+ !properties['background-position-y']?.value ||
238
+ !properties['background-color']?.value ||
239
+ !properties['background-size']?.value ||
240
+ !properties['background-origin']?.value ||
241
+ !properties['background-clip']?.value) {
242
+ return null;
243
+ }
244
+ const important = properties['background-image'].important &&
245
+ properties['background-repeat'].important &&
246
+ properties['background-attachment'].important &&
247
+ properties['background-position-x'].important &&
248
+ properties['background-position-y'].important &&
249
+ properties['background-color'].important &&
250
+ properties['background-size'].important &&
251
+ properties['background-origin'].important &&
252
+ properties['background-clip'].important;
253
+ if (CSSStyleDeclarationValueParser_1.default.getGlobalExceptInitial(properties['background-image'].value) ||
254
+ CSSStyleDeclarationValueParser_1.default.getGlobalExceptInitial(properties['background-repeat'].value) ||
255
+ CSSStyleDeclarationValueParser_1.default.getGlobalExceptInitial(properties['background-attachment'].value) ||
256
+ CSSStyleDeclarationValueParser_1.default.getGlobalExceptInitial(properties['background-position-x'].value) ||
257
+ CSSStyleDeclarationValueParser_1.default.getGlobalExceptInitial(properties['background-position-y'].value) ||
258
+ CSSStyleDeclarationValueParser_1.default.getGlobalExceptInitial(properties['background-color'].value) ||
259
+ CSSStyleDeclarationValueParser_1.default.getGlobalExceptInitial(properties['background-size'].value) ||
260
+ CSSStyleDeclarationValueParser_1.default.getGlobalExceptInitial(properties['background-origin'].value) ||
261
+ CSSStyleDeclarationValueParser_1.default.getGlobalExceptInitial(properties['background-clip'].value)) {
262
+ if (properties['background-image'].value !== properties['background-repeat'].value ||
263
+ properties['background-image'].value !== properties['background-attachment'].value ||
264
+ properties['background-image'].value !== properties['background-position-x'].value ||
265
+ properties['background-image'].value !== properties['background-position-y'].value ||
266
+ properties['background-image'].value !== properties['background-color'].value ||
267
+ properties['background-image'].value !== properties['background-size'].value ||
268
+ properties['background-image'].value !== properties['background-origin'].value ||
269
+ properties['background-image'].value !== properties['background-clip'].value) {
270
+ return null;
271
+ }
272
+ return {
273
+ important,
274
+ value: properties['background-image'].value
275
+ };
276
+ }
277
+ const values = [];
278
+ if (!CSSStyleDeclarationValueParser_1.default.getInitial(properties['background-image'].value)) {
279
+ values.push(properties['background-image'].value);
280
+ }
281
+ if (!CSSStyleDeclarationValueParser_1.default.getInitial(properties['background-position-x'].value) &&
282
+ !CSSStyleDeclarationValueParser_1.default.getInitial(properties['background-position-y'].value) &&
283
+ !CSSStyleDeclarationValueParser_1.default.getInitial(properties['background-size'].value)) {
284
+ values.push(`${properties['background-position-x'].value} ${properties['background-position-y'].value} / ${properties['background-size'].value}`);
285
+ }
286
+ else if (!CSSStyleDeclarationValueParser_1.default.getInitial(properties['background-position-x'].value) &&
287
+ !CSSStyleDeclarationValueParser_1.default.getInitial(properties['background-position-y'].value)) {
288
+ values.push(`${properties['background-position-x'].value} ${properties['background-position-y'].value}`);
289
+ }
290
+ if (!CSSStyleDeclarationValueParser_1.default.getInitial(properties['background-repeat'].value)) {
291
+ values.push(properties['background-repeat'].value);
292
+ }
293
+ if (!CSSStyleDeclarationValueParser_1.default.getInitial(properties['background-attachment'].value)) {
294
+ values.push(properties['background-attachment'].value);
295
+ }
296
+ if (!CSSStyleDeclarationValueParser_1.default.getInitial(properties['background-origin'].value)) {
297
+ values.push(properties['background-origin'].value);
298
+ }
299
+ if (!CSSStyleDeclarationValueParser_1.default.getInitial(properties['background-clip'].value)) {
300
+ values.push(properties['background-clip'].value);
301
+ }
302
+ if (!CSSStyleDeclarationValueParser_1.default.getInitial(properties['background-color'].value)) {
303
+ values.push(properties['background-color'].value);
304
+ }
305
+ return {
306
+ important,
307
+ value: values.join(' ')
308
+ };
309
+ }
310
+ /**
311
+ * Returns background position.
312
+ *
313
+ * @param properties Properties.
314
+ * @returns Property value
315
+ */
316
+ static getBackgroundPosition(properties) {
317
+ if (!properties['background-position-x']?.value ||
318
+ !properties['background-position-y']?.value) {
319
+ return null;
320
+ }
321
+ const important = properties['background-position-x'].important &&
322
+ properties['background-position-y'].important;
323
+ if (CSSStyleDeclarationValueParser_1.default.getGlobal(properties['background-position-x'].value) ||
324
+ CSSStyleDeclarationValueParser_1.default.getGlobal(properties['background-position-y'].value)) {
325
+ if (properties['background-position-x'].value !== properties['background-position-y'].value) {
326
+ return null;
327
+ }
328
+ return {
329
+ important,
330
+ value: properties['background-position-x'].value
331
+ };
332
+ }
333
+ const positionX = properties['background-position-x'].value.replace(/ *, */g, ',').split(',');
334
+ const positionY = properties['background-position-y'].value.replace(/ *, */g, ',').split(',');
335
+ const parts = [];
336
+ for (let i = 0; i < positionX.length; i++) {
337
+ parts.push(`${positionX[i]} ${positionY[i]}`);
338
+ }
339
+ return {
340
+ important,
341
+ value: parts.join(', ')
342
+ };
343
+ }
344
+ /**
345
+ * Returns flex.
346
+ *
347
+ * @param properties Properties.
348
+ * @returns Property value
349
+ */
350
+ static getFlex(properties) {
351
+ if (!properties['flex-grow']?.value ||
352
+ !properties['flex-shrink']?.value ||
353
+ !properties['flex-basis']?.value) {
354
+ return null;
355
+ }
356
+ const important = properties['flex-grow'].important &&
357
+ properties['flex-shrink'].important &&
358
+ properties['flex-basis'].important;
359
+ if (CSSStyleDeclarationValueParser_1.default.getGlobal(properties['flex-grow'].value) ||
360
+ CSSStyleDeclarationValueParser_1.default.getGlobal(properties['flex-shrink'].value) ||
361
+ CSSStyleDeclarationValueParser_1.default.getGlobal(properties['flex-basis'].value)) {
362
+ if (properties['flex-grow'].value !== properties['flex-shrink'].value ||
363
+ properties['flex-grow'].value !== properties['flex-basis'].value) {
364
+ return null;
365
+ }
366
+ return {
367
+ important,
368
+ value: properties['flex-grow'].value
369
+ };
370
+ }
371
+ return {
372
+ important,
373
+ value: `${properties['flex-grow'].value} ${properties['flex-shrink'].value} ${properties['flex-basis'].value}`
374
+ };
375
+ }
376
+ /**
377
+ * Returns flex.
378
+ *
379
+ * @param properties Properties.
380
+ * @returns Property value
381
+ */
382
+ static getFont(properties) {
383
+ if (!properties['font-size']?.value ||
384
+ !properties['font-family']?.value ||
385
+ !properties['font-weight']?.value ||
386
+ !properties['font-style']?.value ||
387
+ !properties['font-variant']?.value ||
388
+ !properties['font-stretch']?.value ||
389
+ !properties['line-height']?.value) {
390
+ return null;
391
+ }
392
+ const important = properties['font-size'].important &&
393
+ properties['font-family'].important &&
394
+ properties['font-weight'].important &&
395
+ properties['font-style'].important &&
396
+ properties['font-variant'].important &&
397
+ properties['font-stretch'].important &&
398
+ properties['line-height'].important;
399
+ if (CSSStyleDeclarationValueParser_1.default.getGlobal(properties['font-size'].value) ||
400
+ CSSStyleDeclarationValueParser_1.default.getGlobal(properties['font-family'].value) ||
401
+ CSSStyleDeclarationValueParser_1.default.getGlobal(properties['font-weight'].value) ||
402
+ CSSStyleDeclarationValueParser_1.default.getGlobal(properties['font-style'].value) ||
403
+ CSSStyleDeclarationValueParser_1.default.getGlobal(properties['font-variant'].value) ||
404
+ CSSStyleDeclarationValueParser_1.default.getGlobal(properties['font-stretch'].value) ||
405
+ CSSStyleDeclarationValueParser_1.default.getGlobal(properties['line-height'].value)) {
406
+ if (properties['font-size'].value !== properties['font-family'].value ||
407
+ properties['font-size'].value !== properties['font-weight'].value ||
408
+ properties['font-size'].value !== properties['font-style'].value ||
409
+ properties['font-size'].value !== properties['font-variant'].value ||
410
+ properties['font-size'].value !== properties['font-stretch'].value ||
411
+ properties['font-size'].value !== properties['line-height'].value) {
412
+ return null;
413
+ }
414
+ return {
415
+ important,
416
+ value: properties['font-size'].value
417
+ };
418
+ }
419
+ const values = [];
420
+ if (properties['font-style'].value !== 'normal') {
421
+ values.push(properties['font-style'].value);
422
+ }
423
+ if (properties['font-variant'].value !== 'normal') {
424
+ values.push(properties['font-variant'].value);
425
+ }
426
+ if (properties['font-weight'].value !== 'normal') {
427
+ values.push(properties['font-weight'].value);
428
+ }
429
+ if (properties['font-stretch'].value !== 'normal') {
430
+ values.push(properties['font-stretch'].value);
431
+ }
432
+ if (properties['line-height'].value !== 'normal') {
433
+ values.push(`${properties['font-size'].value} / ${properties['line-height'].value}`);
434
+ }
435
+ else {
436
+ values.push(properties['font-size'].value);
437
+ }
438
+ values.push(properties['font-family'].value);
439
+ return {
440
+ important,
441
+ value: values.join(' ')
442
+ };
443
+ }
444
+ /**
445
+ * Returns border.
446
+ *
447
+ * @param properties Properties.
448
+ * @param position
449
+ * @returns Property value
450
+ */
451
+ static getBorderTopRightBottomLeft(position, properties) {
452
+ if (!properties[`border-${position}-width`]?.value ||
453
+ !properties[`border-${position}-style`]?.value ||
454
+ !properties[`border-${position}-color`]?.value) {
455
+ return null;
456
+ }
457
+ const important = properties[`border-${position}-width`].important &&
458
+ properties[`border-${position}-style`].important &&
459
+ properties[`border-${position}-color`].important;
460
+ if (CSSStyleDeclarationValueParser_1.default.getGlobalExceptInitial(properties[`border-${position}-width`].value) &&
461
+ properties[`border-${position}-width`].value ===
462
+ properties[`border-${position}-style`].value &&
463
+ properties[`border-${position}-width`].value === properties[`border-${position}-color`].value) {
464
+ return {
465
+ important,
466
+ value: properties[`border-${position}-width`].value
467
+ };
468
+ }
469
+ const values = [];
470
+ if (!CSSStyleDeclarationValueParser_1.default.getInitial(properties[`border-${position}-width`].value)) {
471
+ values.push(properties[`border-${position}-width`].value);
472
+ }
473
+ if (!CSSStyleDeclarationValueParser_1.default.getInitial(properties[`border-${position}-style`]?.value)) {
474
+ values.push(properties[`border-${position}-style`].value);
475
+ }
476
+ if (!CSSStyleDeclarationValueParser_1.default.getInitial(properties[`border-${position}-color`]?.value)) {
477
+ values.push(properties[`border-${position}-color`].value);
478
+ }
479
+ return {
480
+ important,
481
+ value: values.join(' ')
482
+ };
483
+ }
484
+ /**
485
+ * Returns a padding like property.
486
+ *
487
+ * @param properties Properties.
488
+ * @param position
489
+ * @param propertyNames
490
+ * @returns Property value
491
+ */
492
+ static getPaddingLikeProperty(propertyNames, properties) {
493
+ if (!properties[propertyNames[0]]?.value ||
494
+ !properties[propertyNames[1]]?.value ||
495
+ !properties[propertyNames[2]]?.value ||
496
+ !properties[propertyNames[3]]?.value) {
497
+ return null;
498
+ }
499
+ const important = properties[propertyNames[0]].important &&
500
+ properties[propertyNames[1]].important &&
501
+ properties[propertyNames[2]].important &&
502
+ properties[propertyNames[3]].important;
503
+ if (CSSStyleDeclarationValueParser_1.default.getGlobal(properties[propertyNames[0]].value) ||
504
+ CSSStyleDeclarationValueParser_1.default.getGlobal(properties[propertyNames[1]].value) ||
505
+ CSSStyleDeclarationValueParser_1.default.getGlobal(properties[propertyNames[2]].value) ||
506
+ CSSStyleDeclarationValueParser_1.default.getGlobal(properties[propertyNames[3]].value)) {
507
+ if (properties[propertyNames[0]].value !== properties[propertyNames[1]].value ||
508
+ properties[propertyNames[0]].value !== properties[propertyNames[2]].value ||
509
+ properties[propertyNames[0]].value !== properties[propertyNames[3]].value) {
510
+ return null;
511
+ }
512
+ return {
513
+ important,
514
+ value: properties[propertyNames[0]].value
515
+ };
516
+ }
517
+ const values = [properties[propertyNames[0]].value];
518
+ if (properties[propertyNames[1]].value !== properties[propertyNames[0]].value ||
519
+ properties[propertyNames[2]].value !== properties[propertyNames[0]].value ||
520
+ properties[propertyNames[3]].value !== properties[propertyNames[1]].value) {
521
+ values.push(properties[propertyNames[1]].value);
522
+ }
523
+ if (properties[propertyNames[2]].value !== properties[propertyNames[0]].value ||
524
+ properties[propertyNames[3]].value !== properties[propertyNames[1]].value) {
525
+ values.push(properties[propertyNames[2]].value);
526
+ }
527
+ if (properties[propertyNames[3]].value !== properties[propertyNames[1]].value) {
528
+ values.push(properties[propertyNames[3]].value);
529
+ }
530
+ return {
531
+ important,
532
+ value: values.join(' ')
533
+ };
534
+ }
535
+ }
536
+ exports.default = CSSStyleDeclarationPropertyGetParser;
537
+ //# sourceMappingURL=CSSStyleDeclarationPropertyGetParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CSSStyleDeclarationPropertyGetParser.js","sourceRoot":"","sources":["../../../../src/css/declaration/utilities/CSSStyleDeclarationPropertyGetParser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ import ICSSStyleDeclarationPropertyValue from './ICSSStyleDeclarationPropertyValue';
2
+ /**
3
+ * Computed this.properties property parser.
4
+ */
5
+ export default class CSSStyleDeclarationPropertyManager {
6
+ properties: {
7
+ [k: string]: ICSSStyleDeclarationPropertyValue;
8
+ };
9
+ private definedPropertyNames;
10
+ /**
11
+ * Class construtor.
12
+ *
13
+ * @param [options] Options.
14
+ * @param [options.cssText] CSS string.
15
+ */
16
+ constructor(options?: {
17
+ cssText?: string;
18
+ });
19
+ /**
20
+ * Returns property value.
21
+ *
22
+ * @param name Property name.
23
+ * @returns Property value.
24
+ */
25
+ get(name: string): ICSSStyleDeclarationPropertyValue;
26
+ /**
27
+ * Removes a property.
28
+ *
29
+ * @param name Property name.
30
+ */
31
+ remove(name: string): void;
32
+ /**
33
+ * Sets a property
34
+ *
35
+ * @param name Name.
36
+ * @param value Value.
37
+ * @param important Important.
38
+ */
39
+ set(name: string, value: string, important: boolean): void;
40
+ /**
41
+ * Returns a clone.
42
+ *
43
+ * @returns Clone.
44
+ */
45
+ clone(): CSSStyleDeclarationPropertyManager;
46
+ /**
47
+ * Returns size.
48
+ *
49
+ * @returns Size.
50
+ */
51
+ size(): number;
52
+ /**
53
+ * Returns property name.
54
+ *
55
+ * @param index Index.
56
+ * @returns Property name.
57
+ */
58
+ item(index: number): string;
59
+ /**
60
+ * Converts properties to string.
61
+ *
62
+ * @returns String.
63
+ */
64
+ toString(): string;
65
+ }