happy-dom 9.18.3 → 9.19.1

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 (135) hide show
  1. package/README.md +15 -1
  2. package/lib/css/CSSParser.d.ts.map +1 -1
  3. package/lib/css/CSSParser.js +16 -6
  4. package/lib/css/CSSParser.js.map +1 -1
  5. package/lib/css/declaration/AbstractCSSStyleDeclaration.d.ts +2 -2
  6. package/lib/css/declaration/AbstractCSSStyleDeclaration.d.ts.map +1 -1
  7. package/lib/css/declaration/AbstractCSSStyleDeclaration.js +2 -2
  8. package/lib/css/declaration/AbstractCSSStyleDeclaration.js.map +1 -1
  9. package/lib/css/declaration/css-parser/CSSStyleDeclarationCSSParser.d.ts.map +1 -0
  10. package/lib/css/declaration/css-parser/CSSStyleDeclarationCSSParser.js.map +1 -0
  11. package/lib/css/declaration/{utilities → element-style}/CSSStyleDeclarationElementStyle.d.ts +14 -3
  12. package/lib/css/declaration/element-style/CSSStyleDeclarationElementStyle.d.ts.map +1 -0
  13. package/lib/css/declaration/{utilities → element-style}/CSSStyleDeclarationElementStyle.js +102 -84
  14. package/lib/css/declaration/element-style/CSSStyleDeclarationElementStyle.js.map +1 -0
  15. package/lib/css/declaration/element-style/config/CSSStyleDeclarationElementDefaultCSS.d.ts.map +1 -0
  16. package/lib/css/declaration/{utilities → element-style/config}/CSSStyleDeclarationElementDefaultCSS.js +1 -1
  17. package/lib/css/declaration/element-style/config/CSSStyleDeclarationElementDefaultCSS.js.map +1 -0
  18. package/lib/css/declaration/element-style/config/CSSStyleDeclarationElementInheritedProperties.d.ts.map +1 -0
  19. package/lib/css/declaration/element-style/config/CSSStyleDeclarationElementInheritedProperties.js.map +1 -0
  20. package/lib/css/declaration/element-style/config/CSSStyleDeclarationElementMeasurementProperties.d.ts +3 -0
  21. package/lib/css/declaration/element-style/config/CSSStyleDeclarationElementMeasurementProperties.d.ts.map +1 -0
  22. package/lib/css/declaration/element-style/config/CSSStyleDeclarationElementMeasurementProperties.js +44 -0
  23. package/lib/css/declaration/element-style/config/CSSStyleDeclarationElementMeasurementProperties.js.map +1 -0
  24. package/lib/css/declaration/measurement-converter/CSSMeasurementConverter.d.ts +32 -0
  25. package/lib/css/declaration/measurement-converter/CSSMeasurementConverter.d.ts.map +1 -0
  26. package/lib/css/declaration/measurement-converter/CSSMeasurementConverter.js +70 -0
  27. package/lib/css/declaration/measurement-converter/CSSMeasurementConverter.js.map +1 -0
  28. package/lib/css/declaration/{utilities → property-manager}/CSSStyleDeclarationPropertyGetParser.d.ts +9 -0
  29. package/lib/css/declaration/property-manager/CSSStyleDeclarationPropertyGetParser.d.ts.map +1 -0
  30. package/lib/css/declaration/{utilities → property-manager}/CSSStyleDeclarationPropertyGetParser.js +38 -0
  31. package/lib/css/declaration/property-manager/CSSStyleDeclarationPropertyGetParser.js.map +1 -0
  32. package/lib/css/declaration/{utilities → property-manager}/CSSStyleDeclarationPropertyManager.d.ts +1 -1
  33. package/lib/css/declaration/property-manager/CSSStyleDeclarationPropertyManager.d.ts.map +1 -0
  34. package/lib/css/declaration/{utilities → property-manager}/CSSStyleDeclarationPropertyManager.js +32 -1
  35. package/lib/css/declaration/property-manager/CSSStyleDeclarationPropertyManager.js.map +1 -0
  36. package/lib/css/declaration/{utilities → property-manager}/CSSStyleDeclarationPropertySetParser.d.ts +90 -0
  37. package/lib/css/declaration/property-manager/CSSStyleDeclarationPropertySetParser.d.ts.map +1 -0
  38. package/lib/css/declaration/{utilities → property-manager}/CSSStyleDeclarationPropertySetParser.js +171 -25
  39. package/lib/css/declaration/property-manager/CSSStyleDeclarationPropertySetParser.js.map +1 -0
  40. package/lib/css/declaration/property-manager/CSSStyleDeclarationValueParser.d.ts.map +1 -0
  41. package/lib/css/declaration/{utilities → property-manager}/CSSStyleDeclarationValueParser.js +1 -1
  42. package/lib/css/declaration/property-manager/CSSStyleDeclarationValueParser.js.map +1 -0
  43. package/lib/css/declaration/property-manager/ICSSStyleDeclarationPropertyValue.d.ts +5 -0
  44. package/lib/css/declaration/property-manager/ICSSStyleDeclarationPropertyValue.d.ts.map +1 -0
  45. package/lib/css/declaration/property-manager/ICSSStyleDeclarationPropertyValue.js.map +1 -0
  46. package/lib/match-media/IMediaQueryRange.d.ts +12 -0
  47. package/lib/match-media/IMediaQueryRange.d.ts.map +1 -0
  48. package/lib/match-media/IMediaQueryRange.js +3 -0
  49. package/lib/match-media/IMediaQueryRange.js.map +1 -0
  50. package/lib/match-media/IMediaQueryRule.d.ts +5 -0
  51. package/lib/match-media/IMediaQueryRule.d.ts.map +1 -0
  52. package/lib/match-media/IMediaQueryRule.js +3 -0
  53. package/lib/match-media/IMediaQueryRule.js.map +1 -0
  54. package/lib/match-media/MediaQueryItem.d.ts +77 -0
  55. package/lib/match-media/MediaQueryItem.d.ts.map +1 -0
  56. package/lib/match-media/MediaQueryItem.js +283 -0
  57. package/lib/match-media/MediaQueryItem.js.map +1 -0
  58. package/lib/match-media/MediaQueryList.d.ts +18 -4
  59. package/lib/match-media/MediaQueryList.d.ts.map +1 -1
  60. package/lib/match-media/MediaQueryList.js +37 -21
  61. package/lib/match-media/MediaQueryList.js.map +1 -1
  62. package/lib/match-media/MediaQueryParser.d.ts +22 -0
  63. package/lib/match-media/MediaQueryParser.d.ts.map +1 -0
  64. package/lib/match-media/MediaQueryParser.js +112 -0
  65. package/lib/match-media/MediaQueryParser.js.map +1 -0
  66. package/lib/match-media/MediaQueryTypeEnum.d.ts +7 -0
  67. package/lib/match-media/MediaQueryTypeEnum.d.ts.map +1 -0
  68. package/lib/match-media/MediaQueryTypeEnum.js +10 -0
  69. package/lib/match-media/MediaQueryTypeEnum.js.map +1 -0
  70. package/lib/nodes/element/Element.d.ts +2 -0
  71. package/lib/nodes/element/Element.d.ts.map +1 -1
  72. package/lib/nodes/element/Element.js +1 -0
  73. package/lib/nodes/element/Element.js.map +1 -1
  74. package/lib/window/IHappyDOMOptions.d.ts +4 -0
  75. package/lib/window/IHappyDOMOptions.d.ts.map +1 -1
  76. package/lib/window/IHappyDOMSettings.d.ts +4 -0
  77. package/lib/window/IHappyDOMSettings.d.ts.map +1 -1
  78. package/lib/window/Window.d.ts +4 -0
  79. package/lib/window/Window.d.ts.map +1 -1
  80. package/lib/window/Window.js +16 -4
  81. package/lib/window/Window.js.map +1 -1
  82. package/lib/xml-http-request/utilities/XMLHttpRequestURLUtility.d.ts.map +1 -1
  83. package/lib/xml-http-request/utilities/XMLHttpRequestURLUtility.js +1 -0
  84. package/lib/xml-http-request/utilities/XMLHttpRequestURLUtility.js.map +1 -1
  85. package/package.json +1 -1
  86. package/src/css/CSSParser.ts +21 -6
  87. package/src/css/declaration/AbstractCSSStyleDeclaration.ts +2 -2
  88. package/src/css/declaration/{utilities → element-style}/CSSStyleDeclarationElementStyle.ts +117 -94
  89. package/src/css/declaration/{utilities → element-style/config}/CSSStyleDeclarationElementDefaultCSS.ts +1 -1
  90. package/src/css/declaration/element-style/config/CSSStyleDeclarationElementMeasurementProperties.ts +41 -0
  91. package/src/css/declaration/measurement-converter/CSSMeasurementConverter.ts +81 -0
  92. package/src/css/declaration/{utilities → property-manager}/CSSStyleDeclarationPropertyGetParser.ts +51 -0
  93. package/src/css/declaration/{utilities → property-manager}/CSSStyleDeclarationPropertyManager.ts +34 -2
  94. package/src/css/declaration/{utilities → property-manager}/CSSStyleDeclarationPropertySetParser.ts +235 -20
  95. package/src/css/declaration/{utilities → property-manager}/CSSStyleDeclarationValueParser.ts +2 -1
  96. package/src/css/declaration/{utilities → property-manager}/ICSSStyleDeclarationPropertyValue.ts +2 -2
  97. package/src/match-media/IMediaQueryRange.ts +5 -0
  98. package/src/match-media/IMediaQueryRule.ts +4 -0
  99. package/src/match-media/MediaQueryItem.ts +336 -0
  100. package/src/match-media/MediaQueryList.ts +43 -20
  101. package/src/match-media/MediaQueryParser.ts +113 -0
  102. package/src/match-media/MediaQueryTypeEnum.ts +7 -0
  103. package/src/nodes/element/Element.ts +2 -0
  104. package/src/window/IHappyDOMOptions.ts +4 -0
  105. package/src/window/IHappyDOMSettings.ts +4 -0
  106. package/src/window/Window.ts +16 -4
  107. package/src/xml-http-request/utilities/XMLHttpRequestURLUtility.ts +1 -0
  108. package/lib/css/declaration/utilities/CSSStyleDeclarationCSSParser.d.ts.map +0 -1
  109. package/lib/css/declaration/utilities/CSSStyleDeclarationCSSParser.js.map +0 -1
  110. package/lib/css/declaration/utilities/CSSStyleDeclarationElementDefaultCSS.d.ts.map +0 -1
  111. package/lib/css/declaration/utilities/CSSStyleDeclarationElementDefaultCSS.js.map +0 -1
  112. package/lib/css/declaration/utilities/CSSStyleDeclarationElementInheritedProperties.d.ts.map +0 -1
  113. package/lib/css/declaration/utilities/CSSStyleDeclarationElementInheritedProperties.js.map +0 -1
  114. package/lib/css/declaration/utilities/CSSStyleDeclarationElementStyle.d.ts.map +0 -1
  115. package/lib/css/declaration/utilities/CSSStyleDeclarationElementStyle.js.map +0 -1
  116. package/lib/css/declaration/utilities/CSSStyleDeclarationPropertyGetParser.d.ts.map +0 -1
  117. package/lib/css/declaration/utilities/CSSStyleDeclarationPropertyGetParser.js.map +0 -1
  118. package/lib/css/declaration/utilities/CSSStyleDeclarationPropertyManager.d.ts.map +0 -1
  119. package/lib/css/declaration/utilities/CSSStyleDeclarationPropertyManager.js.map +0 -1
  120. package/lib/css/declaration/utilities/CSSStyleDeclarationPropertySetParser.d.ts.map +0 -1
  121. package/lib/css/declaration/utilities/CSSStyleDeclarationPropertySetParser.js.map +0 -1
  122. package/lib/css/declaration/utilities/CSSStyleDeclarationValueParser.d.ts.map +0 -1
  123. package/lib/css/declaration/utilities/CSSStyleDeclarationValueParser.js.map +0 -1
  124. package/lib/css/declaration/utilities/ICSSStyleDeclarationPropertyValue.d.ts +0 -5
  125. package/lib/css/declaration/utilities/ICSSStyleDeclarationPropertyValue.d.ts.map +0 -1
  126. package/lib/css/declaration/utilities/ICSSStyleDeclarationPropertyValue.js.map +0 -1
  127. /package/lib/css/declaration/{utilities → css-parser}/CSSStyleDeclarationCSSParser.d.ts +0 -0
  128. /package/lib/css/declaration/{utilities → css-parser}/CSSStyleDeclarationCSSParser.js +0 -0
  129. /package/lib/css/declaration/{utilities → element-style/config}/CSSStyleDeclarationElementDefaultCSS.d.ts +0 -0
  130. /package/lib/css/declaration/{utilities → element-style/config}/CSSStyleDeclarationElementInheritedProperties.d.ts +0 -0
  131. /package/lib/css/declaration/{utilities → element-style/config}/CSSStyleDeclarationElementInheritedProperties.js +0 -0
  132. /package/lib/css/declaration/{utilities → property-manager}/CSSStyleDeclarationValueParser.d.ts +0 -0
  133. /package/lib/css/declaration/{utilities → property-manager}/ICSSStyleDeclarationPropertyValue.js +0 -0
  134. /package/src/css/declaration/{utilities → css-parser}/CSSStyleDeclarationCSSParser.ts +0 -0
  135. /package/src/css/declaration/{utilities → element-style/config}/CSSStyleDeclarationElementInheritedProperties.ts +0 -0
@@ -0,0 +1,283 @@
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 CSSMeasurementConverter_1 = __importDefault(require("../css/declaration/measurement-converter/CSSMeasurementConverter"));
7
+ const MediaQueryTypeEnum_1 = __importDefault(require("./MediaQueryTypeEnum"));
8
+ /**
9
+ * Media query this.
10
+ */
11
+ class MediaQueryItem {
12
+ /**
13
+ * Constructor.
14
+ *
15
+ * @param options Options.
16
+ * @param options.ownerWindow Owner window.
17
+ * @param [options.rootFontSize] Root font size.
18
+ * @param [options.mediaTypes] Media types.
19
+ * @param [options.not] Not.
20
+ * @param [options.rules] Rules.
21
+ * @param [options.ranges] Ranges.
22
+ */
23
+ constructor(options) {
24
+ this.rootFontSize = null;
25
+ this.ownerWindow = options.ownerWindow;
26
+ this.rootFontSize = options.rootFontSize || null;
27
+ this.mediaTypes = options.mediaTypes || [];
28
+ this.not = options.not || false;
29
+ this.rules = options.rules || [];
30
+ this.ranges = options.ranges || [];
31
+ }
32
+ /**
33
+ * Returns media string.
34
+ */
35
+ toString() {
36
+ return `${this.not ? 'not ' : ''}${this.mediaTypes.join(', ')}${(this.not || this.mediaTypes.length > 0) && !!this.ranges.length ? ' and ' : ''}${this.ranges
37
+ .map((range) => `(${range.before ? `${range.before.value} ${range.before.operator} ` : ''}${range.type}${range.after ? ` ${range.after.operator} ${range.after.value}` : ''})`)
38
+ .join(' and ')}${(this.not || this.mediaTypes.length > 0) && !!this.rules.length ? ' and ' : ''}${this.rules
39
+ .map((rule) => (rule.value ? `(${rule.name}: ${rule.value})` : `(${rule.name})`))
40
+ .join(' and ')}`;
41
+ }
42
+ /**
43
+ * Returns "true" if the item matches.
44
+ */
45
+ matches() {
46
+ return this.not ? !this.matchesAll() : this.matchesAll();
47
+ }
48
+ /**
49
+ * Returns "true" if all matches.
50
+ *
51
+ * @returns "true" if all matches.
52
+ */
53
+ matchesAll() {
54
+ if (!!this.mediaTypes.length) {
55
+ let isMediaTypeMatch = false;
56
+ for (const mediaType of this.mediaTypes) {
57
+ if (this.matchesMediaType(mediaType)) {
58
+ isMediaTypeMatch = true;
59
+ break;
60
+ }
61
+ }
62
+ if (!isMediaTypeMatch) {
63
+ return false;
64
+ }
65
+ }
66
+ for (const rule of this.rules) {
67
+ if (!this.matchesRule(rule)) {
68
+ return false;
69
+ }
70
+ }
71
+ for (const range of this.ranges) {
72
+ if (!this.matchesRange(range)) {
73
+ return false;
74
+ }
75
+ }
76
+ return true;
77
+ }
78
+ /**
79
+ * Returns "true" if the mediaType matches.
80
+ *
81
+ * @param mediaType Media type.
82
+ * @returns "true" if the mediaType matches.
83
+ */
84
+ matchesMediaType(mediaType) {
85
+ if (mediaType === MediaQueryTypeEnum_1.default.all) {
86
+ return true;
87
+ }
88
+ return mediaType === this.ownerWindow.happyDOM.settings.device.mediaType;
89
+ }
90
+ /**
91
+ * Returns "true" if the range matches.
92
+ *
93
+ * @param range Range.
94
+ * @returns "true" if the range matches.
95
+ */
96
+ matchesRange(range) {
97
+ const windowSize = range.type === 'width' ? this.ownerWindow.innerWidth : this.ownerWindow.innerHeight;
98
+ if (range.before) {
99
+ const beforeValue = this.toPixels(range.before.value);
100
+ if (beforeValue === null) {
101
+ return false;
102
+ }
103
+ switch (range.before.operator) {
104
+ case '<':
105
+ if (beforeValue >= windowSize) {
106
+ return false;
107
+ }
108
+ break;
109
+ case '<=':
110
+ if (beforeValue > windowSize) {
111
+ return false;
112
+ }
113
+ break;
114
+ case '>':
115
+ if (beforeValue <= windowSize) {
116
+ return false;
117
+ }
118
+ break;
119
+ case '>=':
120
+ if (beforeValue < windowSize) {
121
+ return false;
122
+ }
123
+ break;
124
+ }
125
+ }
126
+ if (range.after) {
127
+ const afterValue = this.toPixels(range.after.value);
128
+ if (afterValue === null) {
129
+ return false;
130
+ }
131
+ switch (range.after.operator) {
132
+ case '<':
133
+ if (windowSize >= afterValue) {
134
+ return false;
135
+ }
136
+ break;
137
+ case '<=':
138
+ if (windowSize > afterValue) {
139
+ return false;
140
+ }
141
+ break;
142
+ case '>':
143
+ if (windowSize <= afterValue) {
144
+ return false;
145
+ }
146
+ break;
147
+ case '>=':
148
+ if (windowSize < afterValue) {
149
+ return false;
150
+ }
151
+ break;
152
+ }
153
+ }
154
+ return true;
155
+ }
156
+ /**
157
+ * Returns "true" if the rule matches.
158
+ *
159
+ * @param rule Rule.
160
+ * @returns "true" if the rule matches.
161
+ */
162
+ matchesRule(rule) {
163
+ if (!rule.value) {
164
+ switch (rule.name) {
165
+ case 'min-width':
166
+ case 'max-width':
167
+ case 'min-height':
168
+ case 'max-height':
169
+ case 'width':
170
+ case 'height':
171
+ case 'orientation':
172
+ case 'prefers-color-scheme':
173
+ case 'hover':
174
+ case 'any-hover':
175
+ case 'any-pointer':
176
+ case 'pointer':
177
+ case 'display-mode':
178
+ case 'min-aspect-ratio':
179
+ case 'max-aspect-ratio':
180
+ case 'aspect-ratio':
181
+ return true;
182
+ }
183
+ return false;
184
+ }
185
+ switch (rule.name) {
186
+ case 'min-width':
187
+ const minWidth = this.toPixels(rule.value);
188
+ return minWidth !== null && this.ownerWindow.innerWidth >= minWidth;
189
+ case 'max-width':
190
+ const maxWidth = this.toPixels(rule.value);
191
+ return maxWidth !== null && this.ownerWindow.innerWidth <= maxWidth;
192
+ case 'min-height':
193
+ const minHeight = this.toPixels(rule.value);
194
+ return minHeight !== null && this.ownerWindow.innerHeight >= minHeight;
195
+ case 'max-height':
196
+ const maxHeight = this.toPixels(rule.value);
197
+ return maxHeight !== null && this.ownerWindow.innerHeight <= maxHeight;
198
+ case 'width':
199
+ const width = this.toPixels(rule.value);
200
+ return width !== null && this.ownerWindow.innerWidth === width;
201
+ case 'height':
202
+ const height = this.toPixels(rule.value);
203
+ return height !== null && this.ownerWindow.innerHeight === height;
204
+ case 'orientation':
205
+ return rule.value === 'landscape'
206
+ ? this.ownerWindow.innerWidth > this.ownerWindow.innerHeight
207
+ : this.ownerWindow.innerWidth < this.ownerWindow.innerHeight;
208
+ case 'prefers-color-scheme':
209
+ return rule.value === this.ownerWindow.happyDOM.settings.device.prefersColorScheme;
210
+ case 'any-hover':
211
+ case 'hover':
212
+ if (rule.value === 'none') {
213
+ return this.ownerWindow.navigator.maxTouchPoints > 0;
214
+ }
215
+ if (rule.value === 'hover') {
216
+ return this.ownerWindow.navigator.maxTouchPoints === 0;
217
+ }
218
+ return false;
219
+ case 'any-pointer':
220
+ case 'pointer':
221
+ if (rule.value === 'none') {
222
+ return false;
223
+ }
224
+ if (rule.value === 'coarse') {
225
+ return this.ownerWindow.navigator.maxTouchPoints > 0;
226
+ }
227
+ if (rule.value === 'fine') {
228
+ return this.ownerWindow.navigator.maxTouchPoints === 0;
229
+ }
230
+ return false;
231
+ case 'display-mode':
232
+ return rule.value === 'browser';
233
+ case 'min-aspect-ratio':
234
+ case 'max-aspect-ratio':
235
+ case 'aspect-ratio':
236
+ const aspectRatio = rule.value.split('/');
237
+ const aspectRatioWidth = parseInt(aspectRatio[0], 10);
238
+ const aspectRatioHeight = parseInt(aspectRatio[1], 10);
239
+ if (isNaN(aspectRatioWidth) || isNaN(aspectRatioHeight)) {
240
+ return false;
241
+ }
242
+ switch (rule.name) {
243
+ case 'min-aspect-ratio':
244
+ return (aspectRatioWidth / aspectRatioHeight <=
245
+ this.ownerWindow.innerWidth / this.ownerWindow.innerHeight);
246
+ case 'max-aspect-ratio':
247
+ return (aspectRatioWidth / aspectRatioHeight >=
248
+ this.ownerWindow.innerWidth / this.ownerWindow.innerHeight);
249
+ case 'aspect-ratio':
250
+ return (aspectRatioWidth / aspectRatioHeight ===
251
+ this.ownerWindow.innerWidth / this.ownerWindow.innerHeight);
252
+ }
253
+ }
254
+ return false;
255
+ }
256
+ /**
257
+ * Convert to pixels.
258
+ *
259
+ * @param value Value.
260
+ * @returns Value in pixels.
261
+ */
262
+ toPixels(value) {
263
+ if (value.endsWith('em')) {
264
+ this.rootFontSize =
265
+ this.rootFontSize ||
266
+ parseFloat(this.ownerWindow.getComputedStyle(this.ownerWindow.document.documentElement).fontSize);
267
+ return CSSMeasurementConverter_1.default.toPixels({
268
+ ownerWindow: this.ownerWindow,
269
+ value,
270
+ rootFontSize: this.rootFontSize,
271
+ parentFontSize: this.rootFontSize
272
+ });
273
+ }
274
+ return CSSMeasurementConverter_1.default.toPixels({
275
+ ownerWindow: this.ownerWindow,
276
+ value,
277
+ rootFontSize: 16,
278
+ parentFontSize: 16
279
+ });
280
+ }
281
+ }
282
+ exports.default = MediaQueryItem;
283
+ //# sourceMappingURL=MediaQueryItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MediaQueryItem.js","sourceRoot":"","sources":["../../src/match-media/MediaQueryItem.ts"],"names":[],"mappings":"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"}
@@ -9,16 +9,30 @@ import IEventListener from '../event/IEventListener';
9
9
  * https://developer.mozilla.org/en-US/docs/Web/API/MediaQueryList.
10
10
  */
11
11
  export default class MediaQueryList extends EventTarget {
12
- readonly media: string;
13
12
  onchange: (event: Event) => void;
14
13
  private _ownerWindow;
14
+ private _items;
15
+ private _media;
16
+ private _rootFontSize;
15
17
  /**
16
18
  * Constructor.
17
19
  *
18
- * @param ownerWindow Window.
19
- * @param media Media.
20
+ * @param options Options.
21
+ * @param options.ownerWindow Owner window.
22
+ * @param options.media Media.
23
+ * @param [options.rootFontSize] Root font size.
20
24
  */
21
- constructor(ownerWindow: IWindow, media: string);
25
+ constructor(options: {
26
+ ownerWindow: IWindow;
27
+ media: string;
28
+ rootFontSize?: string | number;
29
+ });
30
+ /**
31
+ * Returns media.
32
+ *
33
+ * @returns Media.
34
+ */
35
+ get media(): string;
22
36
  /**
23
37
  * Returns "true" if the document matches.
24
38
  *
@@ -1 +1 @@
1
- {"version":3,"file":"MediaQueryList.d.ts","sourceRoot":"","sources":["../../src/match-media/MediaQueryList.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,sBAAsB,CAAC;AAC/C,OAAO,KAAK,MAAM,gBAAgB,CAAC;AACnC,OAAO,OAAO,MAAM,mBAAmB,CAAC;AACxC,OAAO,cAAc,MAAM,yBAAyB,CAAC;AAMrD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,WAAW;IACtD,SAAgB,KAAK,EAAE,MAAM,CAAM;IAC5B,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAQ;IAC/C,OAAO,CAAC,YAAY,CAAU;IAE9B;;;;;OAKG;gBACS,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM;IAM/C;;;;OAIG;IACH,IAAW,OAAO,IAAI,OAAO,CAc5B;IAED;;;;;OAKG;IACI,WAAW,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI;IAI1D;;;;;OAKG;IACI,cAAc,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI;IAI7D;;OAEG;IACI,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,GAAG,IAAI;IAgBhG;;OAEG;IACI,mBAAmB,CACzB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,cAAc,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,GACjD,IAAI;CAMP"}
1
+ {"version":3,"file":"MediaQueryList.d.ts","sourceRoot":"","sources":["../../src/match-media/MediaQueryList.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,sBAAsB,CAAC;AAC/C,OAAO,KAAK,MAAM,gBAAgB,CAAC;AACnC,OAAO,OAAO,MAAM,mBAAmB,CAAC;AACxC,OAAO,cAAc,MAAM,yBAAyB,CAAC;AAKrD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,WAAW;IAC/C,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAQ;IAC/C,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,aAAa,CAAgC;IAErD;;;;;;;OAOG;gBACS,OAAO,EAAE;QAAE,WAAW,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE;IAO5F;;;;OAIG;IACH,IAAW,KAAK,IAAI,MAAM,CAUzB;IAED;;;;OAIG;IACH,IAAW,OAAO,IAAI,OAAO,CAgB5B;IAED;;;;;OAKG;IACI,WAAW,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI;IAI1D;;;;;OAKG;IACI,cAAc,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI;IAI7D;;OAEG;IACI,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,GAAG,IAAI;IAgBhG;;OAEG;IACI,mBAAmB,CACzB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,cAAc,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,GACjD,IAAI;CAMP"}
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const EventTarget_1 = __importDefault(require("../event/EventTarget"));
7
7
  const MediaQueryListEvent_1 = __importDefault(require("../event/events/MediaQueryListEvent"));
8
- const MEDIA_REGEXP = /min-width: *([0-9]+) *px|max-width: *([0-9]+) *px|min-height: *([0-9]+) *px|max-height: *([0-9]+) *px/;
8
+ const MediaQueryParser_1 = __importDefault(require("./MediaQueryParser"));
9
9
  /**
10
10
  * Media Query List.
11
11
  *
@@ -16,15 +16,34 @@ class MediaQueryList extends EventTarget_1.default {
16
16
  /**
17
17
  * Constructor.
18
18
  *
19
- * @param ownerWindow Window.
20
- * @param media Media.
19
+ * @param options Options.
20
+ * @param options.ownerWindow Owner window.
21
+ * @param options.media Media.
22
+ * @param [options.rootFontSize] Root font size.
21
23
  */
22
- constructor(ownerWindow, media) {
24
+ constructor(options) {
23
25
  super();
24
- this.media = '';
25
26
  this.onchange = null;
26
- this._ownerWindow = ownerWindow;
27
- this.media = media;
27
+ this._items = null;
28
+ this._rootFontSize = null;
29
+ this._ownerWindow = options.ownerWindow;
30
+ this._media = options.media;
31
+ this._rootFontSize = options.rootFontSize || null;
32
+ }
33
+ /**
34
+ * Returns media.
35
+ *
36
+ * @returns Media.
37
+ */
38
+ get media() {
39
+ this._items =
40
+ this._items ||
41
+ MediaQueryParser_1.default.parse({
42
+ ownerWindow: this._ownerWindow,
43
+ mediaQuery: this._media,
44
+ rootFontSize: this._rootFontSize
45
+ });
46
+ return this._items.map((item) => item.toString()).join(', ');
28
47
  }
29
48
  /**
30
49
  * Returns "true" if the document matches.
@@ -32,22 +51,19 @@ class MediaQueryList extends EventTarget_1.default {
32
51
  * @returns Matches.
33
52
  */
34
53
  get matches() {
35
- const match = MEDIA_REGEXP.exec(this.media);
36
- if (match) {
37
- if (match[1]) {
38
- return this._ownerWindow.innerWidth >= parseInt(match[1]);
39
- }
40
- else if (match[2]) {
41
- return this._ownerWindow.innerWidth <= parseInt(match[2]);
42
- }
43
- else if (match[3]) {
44
- return this._ownerWindow.innerHeight >= parseInt(match[3]);
45
- }
46
- else if (match[4]) {
47
- return this._ownerWindow.innerHeight <= parseInt(match[4]);
54
+ this._items =
55
+ this._items ||
56
+ MediaQueryParser_1.default.parse({
57
+ ownerWindow: this._ownerWindow,
58
+ mediaQuery: this._media,
59
+ rootFontSize: this._rootFontSize
60
+ });
61
+ for (const item of this._items) {
62
+ if (!item.matches()) {
63
+ return false;
48
64
  }
49
65
  }
50
- return false;
66
+ return true;
51
67
  }
52
68
  /**
53
69
  * Adds a listener.
@@ -1 +1 @@
1
- {"version":3,"file":"MediaQueryList.js","sourceRoot":"","sources":["../../src/match-media/MediaQueryList.ts"],"names":[],"mappings":";;;;;AAAA,uEAA+C;AAI/C,8FAAsE;AAEtE,MAAM,YAAY,GACjB,uGAAuG,CAAC;AAEzG;;;;;GAKG;AACH,MAAqB,cAAe,SAAQ,qBAAW;IAKtD;;;;;OAKG;IACH,YAAY,WAAoB,EAAE,KAAa;QAC9C,KAAK,EAAE,CAAC;QAXO,UAAK,GAAW,EAAE,CAAC;QAC5B,aAAQ,GAA2B,IAAI,CAAC;QAW9C,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACH,IAAW,OAAO;QACjB,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,KAAK,EAAE;YACV,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;gBACb,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;aAC1D;iBAAM,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;gBACpB,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;aAC1D;iBAAM,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;gBACpB,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;aAC3D;iBAAM,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;gBACpB,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;aAC3D;SACD;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACI,WAAW,CAAC,QAAgC;QAClD,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;OAKG;IACI,cAAc,CAAC,QAAgC;QACrD,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACI,gBAAgB,CAAC,IAAY,EAAE,QAAmD;QACxF,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACvC,IAAI,IAAI,KAAK,QAAQ,EAAE;YACtB,IAAI,YAAY,GAAG,KAAK,CAAC;YACzB,MAAM,cAAc,GAAG,GAAS,EAAE;gBACjC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC7B,IAAI,OAAO,KAAK,YAAY,EAAE;oBAC7B,YAAY,GAAG,OAAO,CAAC;oBACvB,IAAI,CAAC,aAAa,CAAC,IAAI,6BAAmB,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;iBACtF;YACF,CAAC,CAAC;YACF,QAAQ,CAAC,uBAAuB,CAAC,GAAG,cAAc,CAAC;YACnD,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;SAC7D;IACF,CAAC;IAED;;OAEG;IACI,mBAAmB,CACzB,IAAY,EACZ,QAAmD;QAEnD,KAAK,CAAC,mBAAmB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC1C,IAAI,IAAI,KAAK,QAAQ,IAAI,QAAQ,CAAC,uBAAuB,CAAC,EAAE;YAC3D,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAAC;SACnF;IACF,CAAC;CACD;AAzFD,iCAyFC"}
1
+ {"version":3,"file":"MediaQueryList.js","sourceRoot":"","sources":["../../src/match-media/MediaQueryList.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import MediaQueryItem from './MediaQueryItem';
2
+ import IWindow from '../window/IWindow';
3
+ /**
4
+ * Utility for parsing a query string.
5
+ */
6
+ export default class MediaQueryParser {
7
+ /**
8
+ * Parses a media query string.
9
+ *
10
+ * @param options Options.
11
+ * @param options.ownerWindow Owner window.
12
+ * @param options.mediaQuery Media query string.
13
+ * @param [options.rootFontSize] Root font size.
14
+ * @returns Media query items.
15
+ */
16
+ static parse(options: {
17
+ ownerWindow: IWindow;
18
+ mediaQuery: string;
19
+ rootFontSize?: string | number | null;
20
+ }): MediaQueryItem[];
21
+ }
22
+ //# sourceMappingURL=MediaQueryParser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MediaQueryParser.d.ts","sourceRoot":"","sources":["../../src/match-media/MediaQueryParser.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAE9C,OAAO,OAAO,MAAM,mBAAmB,CAAC;AA8BxC;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACpC;;;;;;;;OAQG;WACW,KAAK,CAAC,OAAO,EAAE;QAC5B,WAAW,EAAE,OAAO,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;KACtC,GAAG,cAAc,EAAE;CA+DpB"}
@@ -0,0 +1,112 @@
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 MediaQueryItem_1 = __importDefault(require("./MediaQueryItem"));
7
+ const MediaQueryTypeEnum_1 = __importDefault(require("./MediaQueryTypeEnum"));
8
+ /**
9
+ * Media query RegExp.
10
+ *
11
+ * Group 1: "not", "only", "all", "screen", "print".
12
+ * Group 2: Rule.
13
+ * Group 3: Rule end paranthesis (must be present if no value).
14
+ * Group 4: Comma (,).
15
+ * Group 5: "or", "and".
16
+ */
17
+ const MEDIA_QUERY_REGEXP = /(not|only|all|screen|print)|\(([^\)]+)(\)){0,1}|(,)| +(or|and) +/g;
18
+ /**
19
+ * Check if resolution RegExp.
20
+ */
21
+ const IS_RESOLUTION_REGEXP = /[<>]/;
22
+ /**
23
+ * Resolution RegExp.
24
+ *
25
+ * Group 1: First resolution value.
26
+ * Group 2: First resolution operator.
27
+ * Group 3: Resolution type.
28
+ * Group 4: Second resolution operator.
29
+ * Group 5: Second resolution value.
30
+ */
31
+ const RESOLUTION_REGEXP = /(?:([0-9]+[a-z]+) *(<|<=|>|=>)){0,1} *(width|height) *(?:(<|<=|>|=>) *([0-9]+[a-z]+)){0,1}/;
32
+ /**
33
+ * Utility for parsing a query string.
34
+ */
35
+ class MediaQueryParser {
36
+ /**
37
+ * Parses a media query string.
38
+ *
39
+ * @param options Options.
40
+ * @param options.ownerWindow Owner window.
41
+ * @param options.mediaQuery Media query string.
42
+ * @param [options.rootFontSize] Root font size.
43
+ * @returns Media query items.
44
+ */
45
+ static parse(options) {
46
+ let currentMediaQueryItem = new MediaQueryItem_1.default({
47
+ ownerWindow: options.ownerWindow,
48
+ rootFontSize: options.rootFontSize
49
+ });
50
+ const mediaQueryItems = [currentMediaQueryItem];
51
+ const regexp = new RegExp(MEDIA_QUERY_REGEXP);
52
+ let match = null;
53
+ while ((match = regexp.exec(options.mediaQuery.toLowerCase()))) {
54
+ if (match[4] === ',' || match[5] === 'or') {
55
+ currentMediaQueryItem = new MediaQueryItem_1.default({
56
+ ownerWindow: options.ownerWindow,
57
+ rootFontSize: options.rootFontSize
58
+ });
59
+ mediaQueryItems.push(currentMediaQueryItem);
60
+ }
61
+ else if (match[1] === 'all' || match[1] === 'screen' || match[1] === 'print') {
62
+ currentMediaQueryItem.mediaTypes.push(match[1]);
63
+ }
64
+ else if (match[1] === 'not') {
65
+ currentMediaQueryItem.not = true;
66
+ }
67
+ else if (match[2]) {
68
+ const resolutionMatch = IS_RESOLUTION_REGEXP.test(match[2])
69
+ ? match[2].match(RESOLUTION_REGEXP)
70
+ : null;
71
+ if (resolutionMatch && (resolutionMatch[1] || resolutionMatch[5])) {
72
+ currentMediaQueryItem.ranges.push({
73
+ before: resolutionMatch[1]
74
+ ? {
75
+ value: resolutionMatch[1],
76
+ operator: resolutionMatch[2]
77
+ }
78
+ : null,
79
+ type: resolutionMatch[3],
80
+ after: resolutionMatch[5]
81
+ ? {
82
+ value: resolutionMatch[5],
83
+ operator: resolutionMatch[4]
84
+ }
85
+ : null
86
+ });
87
+ }
88
+ else {
89
+ const [name, value] = match[2].split(':');
90
+ const trimmedValue = value ? value.trim() : null;
91
+ if (!trimmedValue && !match[3]) {
92
+ return [
93
+ new MediaQueryItem_1.default({
94
+ ownerWindow: options.ownerWindow,
95
+ rootFontSize: options.rootFontSize,
96
+ not: true,
97
+ mediaTypes: [MediaQueryTypeEnum_1.default.all]
98
+ })
99
+ ];
100
+ }
101
+ currentMediaQueryItem.rules.push({
102
+ name: name.trim(),
103
+ value: trimmedValue
104
+ });
105
+ }
106
+ }
107
+ }
108
+ return mediaQueryItems;
109
+ }
110
+ }
111
+ exports.default = MediaQueryParser;
112
+ //# sourceMappingURL=MediaQueryParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MediaQueryParser.js","sourceRoot":"","sources":["../../src/match-media/MediaQueryParser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ declare enum MediaQueryTypeEnum {
2
+ all = "all",
3
+ print = "print",
4
+ screen = "screen"
5
+ }
6
+ export default MediaQueryTypeEnum;
7
+ //# sourceMappingURL=MediaQueryTypeEnum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MediaQueryTypeEnum.d.ts","sourceRoot":"","sources":["../../src/match-media/MediaQueryTypeEnum.ts"],"names":[],"mappings":"AAAA,aAAK,kBAAkB;IACtB,GAAG,QAAQ;IACX,KAAK,UAAU;IACf,MAAM,WAAW;CACjB;AAED,eAAe,kBAAkB,CAAC"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var MediaQueryTypeEnum;
4
+ (function (MediaQueryTypeEnum) {
5
+ MediaQueryTypeEnum["all"] = "all";
6
+ MediaQueryTypeEnum["print"] = "print";
7
+ MediaQueryTypeEnum["screen"] = "screen";
8
+ })(MediaQueryTypeEnum || (MediaQueryTypeEnum = {}));
9
+ exports.default = MediaQueryTypeEnum;
10
+ //# sourceMappingURL=MediaQueryTypeEnum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MediaQueryTypeEnum.js","sourceRoot":"","sources":["../../src/match-media/MediaQueryTypeEnum.ts"],"names":[],"mappings":";;AAAA,IAAK,kBAIJ;AAJD,WAAK,kBAAkB;IACtB,iCAAW,CAAA;IACX,qCAAe,CAAA;IACf,uCAAiB,CAAA;AAClB,CAAC,EAJI,kBAAkB,KAAlB,kBAAkB,QAItB;AAED,kBAAe,kBAAkB,CAAC"}
@@ -11,6 +11,7 @@ import IDOMRectList from './IDOMRectList';
11
11
  import IAttr from '../attr/IAttr';
12
12
  import INamedNodeMap from '../../named-node-map/INamedNodeMap';
13
13
  import Event from '../../event/Event';
14
+ import CSSStyleDeclaration from '../../css/declaration/CSSStyleDeclaration';
14
15
  /**
15
16
  * Element.
16
17
  */
@@ -65,6 +66,7 @@ export default class Element extends Node implements IElement {
65
66
  };
66
67
  private _classList;
67
68
  _isValue?: string;
69
+ _computedStyle: CSSStyleDeclaration | null;
68
70
  /**
69
71
  * Returns class list.
70
72
  *