@tamagui/react-native-media-driver 2.7.7 → 3.0.0-beta.637.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.
- package/dist/cjs/index.cjs +10 -12
- package/dist/cjs/index.native.cjs +21 -0
- package/dist/cjs/index.native.js +10 -11
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/matchMedia.cjs +15 -18
- package/dist/cjs/matchMedia.native.cjs +30 -0
- package/dist/cjs/matchMedia.native.js +17 -19
- package/dist/cjs/matchMedia.native.js.map +1 -1
- package/dist/cjs/matchQuery.cjs +115 -132
- package/dist/cjs/matchQuery.native.cjs +145 -0
- package/dist/cjs/matchQuery.native.js +117 -133
- package/dist/cjs/matchQuery.native.js.map +1 -1
- package/dist/cjs/mediaQueryList.cjs +102 -66
- package/dist/cjs/mediaQueryList.native.cjs +180 -0
- package/dist/cjs/mediaQueryList.native.js +158 -110
- package/dist/cjs/mediaQueryList.native.js.map +1 -1
- package/dist/esm/index.js +1 -3
- package/dist/esm/index.mjs +1 -3
- package/dist/esm/index.native.js +1 -3
- package/dist/esm/matchMedia.mjs +1 -0
- package/dist/esm/matchMedia.mjs.map +1 -1
- package/dist/esm/matchMedia.native.js +4 -2
- package/dist/esm/matchMedia.native.js.map +1 -1
- package/dist/esm/matchQuery.mjs +100 -115
- package/dist/esm/matchQuery.mjs.map +1 -1
- package/dist/esm/matchQuery.native.js +102 -117
- package/dist/esm/matchQuery.native.js.map +1 -1
- package/dist/esm/mediaQueryList.mjs +90 -49
- package/dist/esm/mediaQueryList.mjs.map +1 -1
- package/dist/esm/mediaQueryList.native.js +146 -94
- package/dist/esm/mediaQueryList.native.js.map +1 -1
- package/package.json +7 -4
- package/src/index.ts +0 -1
- package/src/mediaQueryList.ts +58 -3
- package/types/index.d.ts +0 -1
- package/types/index.d.ts.map +2 -2
- package/types/mediaQueryList.d.ts +2 -2
- package/types/mediaQueryList.d.ts.map +2 -2
- package/dist/cjs/createMedia.cjs +0 -33
- package/dist/cjs/createMedia.native.js +0 -36
- package/dist/cjs/createMedia.native.js.map +0 -1
- package/dist/esm/createMedia.mjs +0 -8
- package/dist/esm/createMedia.mjs.map +0 -1
- package/dist/esm/createMedia.native.js +0 -8
- package/dist/esm/createMedia.native.js.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/index.mjs.map +0 -1
- package/dist/esm/index.native.js.map +0 -1
- package/src/createMedia.ts +0 -19
- package/types/createMedia.d.ts +0 -10
- package/types/createMedia.d.ts.map +0 -11
package/dist/esm/matchQuery.mjs
CHANGED
|
@@ -4,129 +4,114 @@ const RE_MQ_FEATURE = /^(?:(min|max)-)?(.+)/;
|
|
|
4
4
|
const RE_LENGTH_UNIT = /(em|rem|px|cm|mm|in|pt|pc)?$/;
|
|
5
5
|
const RE_RESOLUTION_UNIT = /(dpi|dpcm|dppx)?$/;
|
|
6
6
|
function matchQuery(mediaQuery, values) {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
return value === expValue;
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
return expressionsMatch && !inverse || !expressionsMatch && inverse;
|
|
62
|
-
});
|
|
7
|
+
return parseQuery(mediaQuery).some((query) => {
|
|
8
|
+
if (!query) return;
|
|
9
|
+
const inverse = query.inverse;
|
|
10
|
+
const typeMatch = query.type === "all" || values.type === query.type;
|
|
11
|
+
if (typeMatch && inverse || !(typeMatch || inverse)) {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
const expressionsMatch = query.expressions.every((expression) => {
|
|
15
|
+
const feature = expression.feature;
|
|
16
|
+
const modifier = expression.modifier;
|
|
17
|
+
let expValue = expression.value;
|
|
18
|
+
let value = values[feature];
|
|
19
|
+
if (!value) {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
switch (feature) {
|
|
23
|
+
case "orientation":
|
|
24
|
+
case "scan": return value.toLowerCase() === expValue.toLowerCase();
|
|
25
|
+
case "width":
|
|
26
|
+
case "height":
|
|
27
|
+
case "device-width":
|
|
28
|
+
case "device-height":
|
|
29
|
+
expValue = toPx(expValue);
|
|
30
|
+
value = toPx(value);
|
|
31
|
+
break;
|
|
32
|
+
case "resolution":
|
|
33
|
+
expValue = toDpi(expValue);
|
|
34
|
+
value = toDpi(value);
|
|
35
|
+
break;
|
|
36
|
+
case "aspect-ratio":
|
|
37
|
+
case "device-aspect-ratio":
|
|
38
|
+
case "device-pixel-ratio":
|
|
39
|
+
expValue = toDecimal(expValue);
|
|
40
|
+
value = toDecimal(value);
|
|
41
|
+
break;
|
|
42
|
+
case "grid":
|
|
43
|
+
case "color":
|
|
44
|
+
case "color-index":
|
|
45
|
+
case "monochrome":
|
|
46
|
+
expValue = Number.parseInt(expValue, 10) || 1;
|
|
47
|
+
value = Number.parseInt(value, 10) || 0;
|
|
48
|
+
break;
|
|
49
|
+
}
|
|
50
|
+
switch (modifier) {
|
|
51
|
+
case "min": return value >= expValue;
|
|
52
|
+
case "max": return value <= expValue;
|
|
53
|
+
default: return value === expValue;
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
return expressionsMatch && !inverse || !expressionsMatch && inverse;
|
|
57
|
+
});
|
|
63
58
|
}
|
|
64
59
|
function parseQuery(mediaQuery) {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
60
|
+
return mediaQuery.split(",").map((query) => {
|
|
61
|
+
query = query.trim();
|
|
62
|
+
const captures = query.match(RE_MEDIA_QUERY);
|
|
63
|
+
if (!captures) return null;
|
|
64
|
+
const modifier = captures[1];
|
|
65
|
+
const type = captures[2];
|
|
66
|
+
const expressionsCapture = captures[3] || "";
|
|
67
|
+
const expressions = expressionsCapture.match(/\([^)]+\)/g) || [];
|
|
68
|
+
return {
|
|
69
|
+
inverse: !!modifier && modifier.toLowerCase() === "not",
|
|
70
|
+
type: type ? type.toLowerCase() : "all",
|
|
71
|
+
expressions: expressions.map((expression) => {
|
|
72
|
+
const captures2 = expression.match(RE_MQ_EXPRESSION);
|
|
73
|
+
const feature = captures2[1].toLowerCase().match(RE_MQ_FEATURE);
|
|
74
|
+
return {
|
|
75
|
+
modifier: feature[1],
|
|
76
|
+
feature: feature[2],
|
|
77
|
+
value: captures2[2]
|
|
78
|
+
};
|
|
79
|
+
})
|
|
80
|
+
};
|
|
81
|
+
});
|
|
87
82
|
}
|
|
88
83
|
function toDecimal(ratio) {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
84
|
+
let decimal = Number(ratio);
|
|
85
|
+
let numbers;
|
|
86
|
+
if (!decimal) {
|
|
87
|
+
numbers = ratio.match(/^(\d+)\s*\/\s*(\d+)$/);
|
|
88
|
+
decimal = numbers[1] / numbers[2];
|
|
89
|
+
}
|
|
90
|
+
return decimal;
|
|
96
91
|
}
|
|
97
92
|
function toDpi(resolution) {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
default:
|
|
106
|
-
return value;
|
|
107
|
-
}
|
|
93
|
+
const value = Number.parseFloat(resolution);
|
|
94
|
+
const units = String(resolution).match(RE_RESOLUTION_UNIT)?.[1];
|
|
95
|
+
switch (units) {
|
|
96
|
+
case "dpcm": return value / 2.54;
|
|
97
|
+
case "dppx": return value * 96;
|
|
98
|
+
default: return value;
|
|
99
|
+
}
|
|
108
100
|
}
|
|
109
101
|
function toPx(length) {
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
return value * 96;
|
|
123
|
-
case "pt":
|
|
124
|
-
return value * 72;
|
|
125
|
-
case "pc":
|
|
126
|
-
return value * 72 / 12;
|
|
127
|
-
default:
|
|
128
|
-
return value;
|
|
129
|
-
}
|
|
102
|
+
const value = Number.parseFloat(length);
|
|
103
|
+
const units = String(length).match(RE_LENGTH_UNIT)?.[1];
|
|
104
|
+
switch (units) {
|
|
105
|
+
case "em": return value * 16;
|
|
106
|
+
case "rem": return value * 16;
|
|
107
|
+
case "cm": return value * 96 / 2.54;
|
|
108
|
+
case "mm": return value * 96 / 2.54 / 10;
|
|
109
|
+
case "in": return value * 96;
|
|
110
|
+
case "pt": return value * 72;
|
|
111
|
+
case "pc": return value * 72 / 12;
|
|
112
|
+
default: return value;
|
|
113
|
+
}
|
|
130
114
|
}
|
|
115
|
+
|
|
131
116
|
export { matchQuery, parseQuery };
|
|
132
117
|
//# sourceMappingURL=matchQuery.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"matchQuery.js","names":[],"sources":["esm/matchQuery.js"],"sourcesContent":["const RE_MEDIA_QUERY = /(?:(only|not)?\\s*([^\\s()]+)(?:\\s*and)?\\s*)?(.+)?/i;\nconst RE_MQ_EXPRESSION = /\\(\\s*([^\\s:)]+)\\s*(?::\\s*([^\\s)]+))?\\s*\\)/;\nconst RE_MQ_FEATURE = /^(?:(min|max)-)?(.+)/;\nconst RE_LENGTH_UNIT = /(em|rem|px|cm|mm|in|pt|pc)?$/;\nconst RE_RESOLUTION_UNIT = /(dpi|dpcm|dppx)?$/;\nfunction matchQuery(mediaQuery, values) {\n return parseQuery(mediaQuery).some((query) => {\n if (!query) return;\n const inverse = query.inverse;\n const typeMatch = query.type === \"all\" || values.type === query.type;\n if (typeMatch && inverse || !(typeMatch || inverse)) {\n return false;\n }\n const expressionsMatch = query.expressions.every((expression) => {\n const feature = expression.feature;\n const modifier = expression.modifier;\n let expValue = expression.value;\n let value = values[feature];\n if (!value) {\n return false;\n }\n switch (feature) {\n case \"orientation\":\n case \"scan\":\n return value.toLowerCase() === expValue.toLowerCase();\n case \"width\":\n case \"height\":\n case \"device-width\":\n case \"device-height\":\n expValue = toPx(expValue);\n value = toPx(value);\n break;\n case \"resolution\":\n expValue = toDpi(expValue);\n value = toDpi(value);\n break;\n case \"aspect-ratio\":\n case \"device-aspect-ratio\":\n case /* Deprecated */\n \"device-pixel-ratio\":\n expValue = toDecimal(expValue);\n value = toDecimal(value);\n break;\n case \"grid\":\n case \"color\":\n case \"color-index\":\n case \"monochrome\":\n expValue = Number.parseInt(expValue, 10) || 1;\n value = Number.parseInt(value, 10) || 0;\n break;\n }\n switch (modifier) {\n case \"min\":\n return value >= expValue;\n case \"max\":\n return value <= expValue;\n default:\n return value === expValue;\n }\n });\n return expressionsMatch && !inverse || !expressionsMatch && inverse;\n });\n}\nfunction parseQuery(mediaQuery) {\n return mediaQuery.split(\",\").map((query) => {\n query = query.trim();\n const captures = query.match(RE_MEDIA_QUERY);\n if (!captures) return null;\n const modifier = captures[1];\n const type = captures[2];\n const expressionsCapture = captures[3] || \"\";\n const expressions = expressionsCapture.match(/\\([^)]+\\)/g) || [];\n return {\n inverse: !!modifier && modifier.toLowerCase() === \"not\",\n type: type ? type.toLowerCase() : \"all\",\n expressions: expressions.map((expression) => {\n const captures2 = expression.match(RE_MQ_EXPRESSION);\n const feature = captures2[1].toLowerCase().match(RE_MQ_FEATURE);\n return {\n modifier: feature[1],\n feature: feature[2],\n value: captures2[2]\n };\n })\n };\n });\n}\nfunction toDecimal(ratio) {\n let decimal = Number(ratio);\n let numbers;\n if (!decimal) {\n numbers = ratio.match(/^(\\d+)\\s*\\/\\s*(\\d+)$/);\n decimal = numbers[1] / numbers[2];\n }\n return decimal;\n}\nfunction toDpi(resolution) {\n const value = Number.parseFloat(resolution);\n const units = String(resolution).match(RE_RESOLUTION_UNIT)?.[1];\n switch (units) {\n case \"dpcm\":\n return value / 2.54;\n case \"dppx\":\n return value * 96;\n default:\n return value;\n }\n}\nfunction toPx(length) {\n const value = Number.parseFloat(length);\n const units = String(length).match(RE_LENGTH_UNIT)?.[1];\n switch (units) {\n case \"em\":\n return value * 16;\n case \"rem\":\n return value * 16;\n case \"cm\":\n return value * 96 / 2.54;\n case \"mm\":\n return value * 96 / 2.54 / 10;\n case \"in\":\n return value * 96;\n case \"pt\":\n return value * 72;\n case \"pc\":\n return value * 72 / 12;\n default:\n return value;\n }\n}\nexport {\n matchQuery,\n parseQuery\n};\n//# sourceMappingURL=matchQuery.js.map\n"],"mappings":"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"}
|
|
@@ -4,131 +4,116 @@ var RE_MQ_FEATURE = /^(?:(min|max)-)?(.+)/;
|
|
|
4
4
|
var RE_LENGTH_UNIT = /(em|rem|px|cm|mm|in|pt|pc)?$/;
|
|
5
5
|
var RE_RESOLUTION_UNIT = /(dpi|dpcm|dppx)?$/;
|
|
6
6
|
function matchQuery(mediaQuery, values) {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
return value === expValue;
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
return expressionsMatch && !inverse || !expressionsMatch && inverse;
|
|
62
|
-
});
|
|
7
|
+
return parseQuery(mediaQuery).some(function(query) {
|
|
8
|
+
if (!query) return;
|
|
9
|
+
var inverse = query.inverse;
|
|
10
|
+
var typeMatch = query.type === "all" || values.type === query.type;
|
|
11
|
+
if (typeMatch && inverse || !(typeMatch || inverse)) {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
var expressionsMatch = query.expressions.every(function(expression) {
|
|
15
|
+
var feature = expression.feature;
|
|
16
|
+
var modifier = expression.modifier;
|
|
17
|
+
var expValue = expression.value;
|
|
18
|
+
var value = values[feature];
|
|
19
|
+
if (!value) {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
switch (feature) {
|
|
23
|
+
case "orientation":
|
|
24
|
+
case "scan": return value.toLowerCase() === expValue.toLowerCase();
|
|
25
|
+
case "width":
|
|
26
|
+
case "height":
|
|
27
|
+
case "device-width":
|
|
28
|
+
case "device-height":
|
|
29
|
+
expValue = toPx(expValue);
|
|
30
|
+
value = toPx(value);
|
|
31
|
+
break;
|
|
32
|
+
case "resolution":
|
|
33
|
+
expValue = toDpi(expValue);
|
|
34
|
+
value = toDpi(value);
|
|
35
|
+
break;
|
|
36
|
+
case "aspect-ratio":
|
|
37
|
+
case "device-aspect-ratio":
|
|
38
|
+
case "device-pixel-ratio":
|
|
39
|
+
expValue = toDecimal(expValue);
|
|
40
|
+
value = toDecimal(value);
|
|
41
|
+
break;
|
|
42
|
+
case "grid":
|
|
43
|
+
case "color":
|
|
44
|
+
case "color-index":
|
|
45
|
+
case "monochrome":
|
|
46
|
+
expValue = Number.parseInt(expValue, 10) || 1;
|
|
47
|
+
value = Number.parseInt(value, 10) || 0;
|
|
48
|
+
break;
|
|
49
|
+
}
|
|
50
|
+
switch (modifier) {
|
|
51
|
+
case "min": return value >= expValue;
|
|
52
|
+
case "max": return value <= expValue;
|
|
53
|
+
default: return value === expValue;
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
return expressionsMatch && !inverse || !expressionsMatch && inverse;
|
|
57
|
+
});
|
|
63
58
|
}
|
|
64
59
|
function parseQuery(mediaQuery) {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
60
|
+
return mediaQuery.split(",").map(function(query) {
|
|
61
|
+
query = query.trim();
|
|
62
|
+
var captures = query.match(RE_MEDIA_QUERY);
|
|
63
|
+
if (!captures) return null;
|
|
64
|
+
var modifier = captures[1];
|
|
65
|
+
var type = captures[2];
|
|
66
|
+
var expressionsCapture = captures[3] || "";
|
|
67
|
+
var expressions = expressionsCapture.match(/\([^)]+\)/g) || [];
|
|
68
|
+
return {
|
|
69
|
+
inverse: !!modifier && modifier.toLowerCase() === "not",
|
|
70
|
+
type: type ? type.toLowerCase() : "all",
|
|
71
|
+
expressions: expressions.map(function(expression) {
|
|
72
|
+
var captures2 = expression.match(RE_MQ_EXPRESSION);
|
|
73
|
+
var feature = captures2[1].toLowerCase().match(RE_MQ_FEATURE);
|
|
74
|
+
return {
|
|
75
|
+
modifier: feature[1],
|
|
76
|
+
feature: feature[2],
|
|
77
|
+
value: captures2[2]
|
|
78
|
+
};
|
|
79
|
+
})
|
|
80
|
+
};
|
|
81
|
+
});
|
|
87
82
|
}
|
|
88
83
|
function toDecimal(ratio) {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
84
|
+
var decimal = Number(ratio);
|
|
85
|
+
var numbers;
|
|
86
|
+
if (!decimal) {
|
|
87
|
+
numbers = ratio.match(/^(\d+)\s*\/\s*(\d+)$/);
|
|
88
|
+
decimal = numbers[1] / numbers[2];
|
|
89
|
+
}
|
|
90
|
+
return decimal;
|
|
96
91
|
}
|
|
97
92
|
function toDpi(resolution) {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
default:
|
|
107
|
-
return value;
|
|
108
|
-
}
|
|
93
|
+
var _String_match;
|
|
94
|
+
var value = Number.parseFloat(resolution);
|
|
95
|
+
var units = (_String_match = String(resolution).match(RE_RESOLUTION_UNIT)) === null || _String_match === void 0 ? void 0 : _String_match[1];
|
|
96
|
+
switch (units) {
|
|
97
|
+
case "dpcm": return value / 2.54;
|
|
98
|
+
case "dppx": return value * 96;
|
|
99
|
+
default: return value;
|
|
100
|
+
}
|
|
109
101
|
}
|
|
110
102
|
function toPx(length) {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
return value * 96;
|
|
125
|
-
case "pt":
|
|
126
|
-
return value * 72;
|
|
127
|
-
case "pc":
|
|
128
|
-
return value * 72 / 12;
|
|
129
|
-
default:
|
|
130
|
-
return value;
|
|
131
|
-
}
|
|
103
|
+
var _String_match;
|
|
104
|
+
var value = Number.parseFloat(length);
|
|
105
|
+
var units = (_String_match = String(length).match(RE_LENGTH_UNIT)) === null || _String_match === void 0 ? void 0 : _String_match[1];
|
|
106
|
+
switch (units) {
|
|
107
|
+
case "em": return value * 16;
|
|
108
|
+
case "rem": return value * 16;
|
|
109
|
+
case "cm": return value * 96 / 2.54;
|
|
110
|
+
case "mm": return value * 96 / 2.54 / 10;
|
|
111
|
+
case "in": return value * 96;
|
|
112
|
+
case "pt": return value * 72;
|
|
113
|
+
case "pc": return value * 72 / 12;
|
|
114
|
+
default: return value;
|
|
115
|
+
}
|
|
132
116
|
}
|
|
117
|
+
|
|
133
118
|
export { matchQuery, parseQuery };
|
|
134
119
|
//# sourceMappingURL=matchQuery.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"matchQuery.native.js","names":[],"sources":["esm/matchQuery.native.js"],"sourcesContent":["var RE_MEDIA_QUERY = /(?:(only|not)?\\s*([^\\s()]+)(?:\\s*and)?\\s*)?(.+)?/i;\nvar RE_MQ_EXPRESSION = /\\(\\s*([^\\s:)]+)\\s*(?::\\s*([^\\s)]+))?\\s*\\)/;\nvar RE_MQ_FEATURE = /^(?:(min|max)-)?(.+)/;\nvar RE_LENGTH_UNIT = /(em|rem|px|cm|mm|in|pt|pc)?$/;\nvar RE_RESOLUTION_UNIT = /(dpi|dpcm|dppx)?$/;\nfunction matchQuery(mediaQuery, values) {\n return parseQuery(mediaQuery).some(function(query) {\n if (!query) return;\n var inverse = query.inverse;\n var typeMatch = query.type === \"all\" || values.type === query.type;\n if (typeMatch && inverse || !(typeMatch || inverse)) {\n return false;\n }\n var expressionsMatch = query.expressions.every(function(expression) {\n var feature = expression.feature;\n var modifier = expression.modifier;\n var expValue = expression.value;\n var value = values[feature];\n if (!value) {\n return false;\n }\n switch (feature) {\n case \"orientation\":\n case \"scan\":\n return value.toLowerCase() === expValue.toLowerCase();\n case \"width\":\n case \"height\":\n case \"device-width\":\n case \"device-height\":\n expValue = toPx(expValue);\n value = toPx(value);\n break;\n case \"resolution\":\n expValue = toDpi(expValue);\n value = toDpi(value);\n break;\n case \"aspect-ratio\":\n case \"device-aspect-ratio\":\n case /* Deprecated */\n \"device-pixel-ratio\":\n expValue = toDecimal(expValue);\n value = toDecimal(value);\n break;\n case \"grid\":\n case \"color\":\n case \"color-index\":\n case \"monochrome\":\n expValue = Number.parseInt(expValue, 10) || 1;\n value = Number.parseInt(value, 10) || 0;\n break;\n }\n switch (modifier) {\n case \"min\":\n return value >= expValue;\n case \"max\":\n return value <= expValue;\n default:\n return value === expValue;\n }\n });\n return expressionsMatch && !inverse || !expressionsMatch && inverse;\n });\n}\nfunction parseQuery(mediaQuery) {\n return mediaQuery.split(\",\").map(function(query) {\n query = query.trim();\n var captures = query.match(RE_MEDIA_QUERY);\n if (!captures) return null;\n var modifier = captures[1];\n var type = captures[2];\n var expressionsCapture = captures[3] || \"\";\n var expressions = expressionsCapture.match(/\\([^)]+\\)/g) || [];\n return {\n inverse: !!modifier && modifier.toLowerCase() === \"not\",\n type: type ? type.toLowerCase() : \"all\",\n expressions: expressions.map(function(expression) {\n var captures2 = expression.match(RE_MQ_EXPRESSION);\n var feature = captures2[1].toLowerCase().match(RE_MQ_FEATURE);\n return {\n modifier: feature[1],\n feature: feature[2],\n value: captures2[2]\n };\n })\n };\n });\n}\nfunction toDecimal(ratio) {\n var decimal = Number(ratio);\n var numbers;\n if (!decimal) {\n numbers = ratio.match(/^(\\d+)\\s*\\/\\s*(\\d+)$/);\n decimal = numbers[1] / numbers[2];\n }\n return decimal;\n}\nfunction toDpi(resolution) {\n var _String_match;\n var value = Number.parseFloat(resolution);\n var units = (_String_match = String(resolution).match(RE_RESOLUTION_UNIT)) === null || _String_match === void 0 ? void 0 : _String_match[1];\n switch (units) {\n case \"dpcm\":\n return value / 2.54;\n case \"dppx\":\n return value * 96;\n default:\n return value;\n }\n}\nfunction toPx(length) {\n var _String_match;\n var value = Number.parseFloat(length);\n var units = (_String_match = String(length).match(RE_LENGTH_UNIT)) === null || _String_match === void 0 ? void 0 : _String_match[1];\n switch (units) {\n case \"em\":\n return value * 16;\n case \"rem\":\n return value * 16;\n case \"cm\":\n return value * 96 / 2.54;\n case \"mm\":\n return value * 96 / 2.54 / 10;\n case \"in\":\n return value * 96;\n case \"pt\":\n return value * 72;\n case \"pc\":\n return value * 72 / 12;\n default:\n return value;\n }\n}\nexport {\n matchQuery,\n parseQuery\n};\n//# sourceMappingURL=matchQuery.js.map\n"],"mappings":"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"}
|