@tamagui/react-native-media-driver 2.0.0-rc.4 → 2.0.0-rc.40
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/createMedia.cjs +16 -13
- package/dist/cjs/createMedia.native.js +16 -13
- package/dist/cjs/createMedia.native.js.map +1 -1
- package/dist/cjs/index.cjs +7 -5
- package/dist/cjs/index.native.js +7 -5
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/matchMedia.cjs +13 -11
- package/dist/cjs/matchMedia.native.js +16 -14
- package/dist/cjs/matchMedia.native.js.map +1 -1
- package/dist/cjs/matchQuery.cjs +54 -37
- package/dist/cjs/matchQuery.native.js +89 -76
- package/dist/cjs/matchQuery.native.js.map +1 -1
- package/dist/cjs/mediaQueryList.cjs +19 -15
- package/dist/cjs/mediaQueryList.native.js +60 -39
- package/dist/cjs/mediaQueryList.native.js.map +1 -1
- package/dist/esm/createMedia.mjs +2 -1
- package/dist/esm/createMedia.mjs.map +1 -1
- package/dist/esm/createMedia.native.js +2 -1
- package/dist/esm/createMedia.native.js.map +1 -1
- package/dist/esm/index.js +2 -2
- package/dist/esm/index.js.map +1 -6
- package/dist/esm/matchMedia.mjs +1 -1
- package/dist/esm/matchMedia.mjs.map +1 -1
- package/dist/esm/matchQuery.mjs +42 -27
- package/dist/esm/matchQuery.mjs.map +1 -1
- package/dist/esm/matchQuery.native.js +77 -66
- package/dist/esm/matchQuery.native.js.map +1 -1
- package/dist/esm/mediaQueryList.mjs +5 -3
- package/dist/esm/mediaQueryList.mjs.map +1 -1
- package/dist/esm/mediaQueryList.native.js +46 -27
- package/dist/esm/mediaQueryList.native.js.map +1 -1
- package/package.json +7 -10
- package/types/createMedia.d.ts.map +2 -2
- package/types/index.d.ts.map +2 -2
- package/types/matchMedia.d.ts.map +4 -6
- package/types/matchMedia.native.d.ts.map +4 -6
- package/types/matchQuery.d.ts.map +2 -2
- package/types/mediaQueryList.d.ts.map +4 -6
- package/dist/cjs/createMedia.js +0 -24
- package/dist/cjs/createMedia.js.map +0 -6
- package/dist/cjs/index.js +0 -16
- package/dist/cjs/index.js.map +0 -6
- package/dist/cjs/matchMedia.js +0 -21
- package/dist/cjs/matchMedia.js.map +0 -6
- package/dist/cjs/matchQuery.js +0 -127
- package/dist/cjs/matchQuery.js.map +0 -6
- package/dist/cjs/mediaQueryList.js +0 -64
- package/dist/cjs/mediaQueryList.js.map +0 -6
- package/dist/esm/createMedia.js +0 -9
- package/dist/esm/createMedia.js.map +0 -6
- package/dist/esm/matchMedia.js +0 -5
- package/dist/esm/matchMedia.js.map +0 -6
- package/dist/esm/matchQuery.js +0 -111
- package/dist/esm/matchQuery.js.map +0 -6
- package/dist/esm/mediaQueryList.js +0 -49
- package/dist/esm/mediaQueryList.js.map +0 -6
|
@@ -3,32 +3,35 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
|
3
3
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
4
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
5
|
var __export = (target, all) => {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
6
|
+
for (var name in all) __defProp(target, name, {
|
|
7
|
+
get: all[name],
|
|
8
|
+
enumerable: true
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
13
14
|
get: () => from[key],
|
|
14
15
|
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
15
16
|
});
|
|
16
|
-
|
|
17
|
-
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
18
20
|
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
19
|
-
value:
|
|
21
|
+
value: true
|
|
20
22
|
}), mod);
|
|
21
23
|
var mediaQueryList_exports = {};
|
|
22
24
|
__export(mediaQueryList_exports, {
|
|
23
25
|
NativeMediaQueryList: () => NativeMediaQueryList
|
|
24
26
|
});
|
|
25
27
|
module.exports = __toCommonJS(mediaQueryList_exports);
|
|
26
|
-
var import_react_native = require("react-native-web")
|
|
27
|
-
|
|
28
|
+
var import_react_native = require("react-native-web");
|
|
29
|
+
var import_matchQuery = require("./matchQuery.cjs");
|
|
28
30
|
class NativeMediaQueryList {
|
|
29
31
|
constructor(query) {
|
|
30
32
|
this.query = query;
|
|
31
|
-
this.notify()
|
|
33
|
+
this.notify();
|
|
34
|
+
import_react_native.Dimensions.addEventListener("change", () => {
|
|
32
35
|
this.notify();
|
|
33
36
|
});
|
|
34
37
|
}
|
|
@@ -47,7 +50,7 @@ class NativeMediaQueryList {
|
|
|
47
50
|
}
|
|
48
51
|
removeListener(listener) {
|
|
49
52
|
const index = this.listeners.indexOf(listener);
|
|
50
|
-
index !== -1
|
|
53
|
+
if (index !== -1) this.listeners.splice(index, 1);
|
|
51
54
|
}
|
|
52
55
|
match(query, {
|
|
53
56
|
width,
|
|
@@ -62,12 +65,13 @@ class NativeMediaQueryList {
|
|
|
62
65
|
}
|
|
63
66
|
get matches() {
|
|
64
67
|
const windowDimensions = import_react_native.Dimensions.get("window");
|
|
65
|
-
|
|
68
|
+
const matches = (0, import_matchQuery.matchQuery)(this.query, {
|
|
66
69
|
type: "screen",
|
|
67
70
|
orientation: this.orientation,
|
|
68
71
|
...windowDimensions,
|
|
69
72
|
"device-width": windowDimensions.width,
|
|
70
73
|
"device-height": windowDimensions.height
|
|
71
74
|
});
|
|
75
|
+
return matches;
|
|
72
76
|
}
|
|
73
77
|
}
|
|
@@ -5,66 +5,86 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
|
5
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
6
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
7
|
var __export = (target, all) => {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
8
|
+
for (var name in all) __defProp(target, name, {
|
|
9
|
+
get: all[name],
|
|
10
|
+
enumerable: true
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
var __copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
15
16
|
get: () => from[key],
|
|
16
17
|
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
17
18
|
});
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
}
|
|
20
|
+
return to;
|
|
21
|
+
};
|
|
20
22
|
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
21
|
-
value:
|
|
23
|
+
value: true
|
|
22
24
|
}), mod);
|
|
23
25
|
var mediaQueryList_exports = {};
|
|
24
26
|
__export(mediaQueryList_exports, {
|
|
25
27
|
NativeMediaQueryList: () => NativeMediaQueryList
|
|
26
28
|
});
|
|
27
29
|
module.exports = __toCommonJS(mediaQueryList_exports);
|
|
28
|
-
var import_react_native = require("react-native")
|
|
29
|
-
|
|
30
|
+
var import_react_native = require("react-native");
|
|
31
|
+
var import_matchQuery = require("./matchQuery.native.js");
|
|
30
32
|
function _class_call_check(instance, Constructor) {
|
|
31
|
-
if (!(instance instanceof Constructor))
|
|
33
|
+
if (!(instance instanceof Constructor)) {
|
|
34
|
+
throw new TypeError("Cannot call a class as a function");
|
|
35
|
+
}
|
|
32
36
|
}
|
|
33
37
|
function _defineProperties(target, props) {
|
|
34
38
|
for (var i = 0; i < props.length; i++) {
|
|
35
39
|
var descriptor = props[i];
|
|
36
|
-
descriptor.enumerable = descriptor.enumerable ||
|
|
40
|
+
descriptor.enumerable = descriptor.enumerable || false;
|
|
41
|
+
descriptor.configurable = true;
|
|
42
|
+
if ("value" in descriptor) descriptor.writable = true;
|
|
43
|
+
Object.defineProperty(target, descriptor.key, descriptor);
|
|
37
44
|
}
|
|
38
45
|
}
|
|
39
46
|
function _create_class(Constructor, protoProps, staticProps) {
|
|
40
|
-
|
|
47
|
+
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
48
|
+
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
49
|
+
return Constructor;
|
|
41
50
|
}
|
|
42
51
|
function _define_property(obj, key, value) {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
52
|
+
if (key in obj) {
|
|
53
|
+
Object.defineProperty(obj, key, {
|
|
54
|
+
value,
|
|
55
|
+
enumerable: true,
|
|
56
|
+
configurable: true,
|
|
57
|
+
writable: true
|
|
58
|
+
});
|
|
59
|
+
} else {
|
|
60
|
+
obj[key] = value;
|
|
61
|
+
}
|
|
62
|
+
return obj;
|
|
49
63
|
}
|
|
50
64
|
var NativeMediaQueryList = /* @__PURE__ */function () {
|
|
51
65
|
"use strict";
|
|
52
66
|
|
|
53
67
|
function NativeMediaQueryList2(query) {
|
|
54
68
|
var _this = this;
|
|
55
|
-
_class_call_check(this, NativeMediaQueryList2)
|
|
69
|
+
_class_call_check(this, NativeMediaQueryList2);
|
|
70
|
+
_define_property(this, "query", void 0);
|
|
71
|
+
_define_property(this, "listeners", void 0);
|
|
72
|
+
this.query = query;
|
|
73
|
+
this.listeners = [];
|
|
74
|
+
this.notify();
|
|
75
|
+
import_react_native.Dimensions.addEventListener("change", function () {
|
|
56
76
|
_this.notify();
|
|
57
77
|
});
|
|
58
78
|
}
|
|
59
|
-
|
|
79
|
+
_create_class(NativeMediaQueryList2, [{
|
|
60
80
|
key: "orientation",
|
|
61
|
-
get: function () {
|
|
81
|
+
get: function get() {
|
|
62
82
|
var windowDimensions = import_react_native.Dimensions.get("window");
|
|
63
83
|
return windowDimensions.height > windowDimensions.width ? "portrait" : "landscape";
|
|
64
84
|
}
|
|
65
85
|
}, {
|
|
66
86
|
key: "notify",
|
|
67
|
-
value: function () {
|
|
87
|
+
value: function notify() {
|
|
68
88
|
var _this = this;
|
|
69
89
|
this.listeners.forEach(function (listener) {
|
|
70
90
|
listener(_this.orientation);
|
|
@@ -72,18 +92,18 @@ var NativeMediaQueryList = /* @__PURE__ */function () {
|
|
|
72
92
|
}
|
|
73
93
|
}, {
|
|
74
94
|
key: "addListener",
|
|
75
|
-
value: function (listener) {
|
|
95
|
+
value: function addListener(listener) {
|
|
76
96
|
this.listeners.push(listener);
|
|
77
97
|
}
|
|
78
98
|
}, {
|
|
79
99
|
key: "removeListener",
|
|
80
|
-
value: function (listener) {
|
|
100
|
+
value: function removeListener(listener) {
|
|
81
101
|
var index = this.listeners.indexOf(listener);
|
|
82
|
-
index !== -1
|
|
102
|
+
if (index !== -1) this.listeners.splice(index, 1);
|
|
83
103
|
}
|
|
84
104
|
}, {
|
|
85
105
|
key: "match",
|
|
86
|
-
value: function (query, param) {
|
|
106
|
+
value: function match(query, param) {
|
|
87
107
|
var {
|
|
88
108
|
width,
|
|
89
109
|
height
|
|
@@ -97,17 +117,18 @@ var NativeMediaQueryList = /* @__PURE__ */function () {
|
|
|
97
117
|
}
|
|
98
118
|
}, {
|
|
99
119
|
key: "matches",
|
|
100
|
-
get: function () {
|
|
101
|
-
var windowDimensions = import_react_native.Dimensions.get("window")
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
120
|
+
get: function get() {
|
|
121
|
+
var windowDimensions = import_react_native.Dimensions.get("window");
|
|
122
|
+
var matches = (0, import_matchQuery.matchQuery)(this.query, {
|
|
123
|
+
type: "screen",
|
|
124
|
+
orientation: this.orientation,
|
|
125
|
+
...windowDimensions,
|
|
126
|
+
"device-width": windowDimensions.width,
|
|
127
|
+
"device-height": windowDimensions.height
|
|
128
|
+
});
|
|
109
129
|
return matches;
|
|
110
130
|
}
|
|
111
|
-
}])
|
|
131
|
+
}]);
|
|
132
|
+
return NativeMediaQueryList2;
|
|
112
133
|
}();
|
|
113
134
|
//# sourceMappingURL=mediaQueryList.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","mediaQueryList_exports","__export","NativeMediaQueryList","module","exports","import_react_native","require","import_matchQuery","_class_call_check","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_create_class","protoProps","staticProps","prototype","_define_property","obj","NativeMediaQueryList2","query","_this","listeners","notify","Dimensions","addEventListener"
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","mediaQueryList_exports","__export","NativeMediaQueryList","module","exports","import_react_native","require","import_matchQuery","_class_call_check","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_create_class","protoProps","staticProps","prototype","_define_property","obj","NativeMediaQueryList2","query","_this","listeners","notify","Dimensions","addEventListener"],"sources":["../../src/mediaQueryList.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,sBAAA;AAAAC,QAAA,CAAAD,sBAAA;EAAAE,oBAAA,EAAAA,CAAA,KAAAA;AAAA;AACAC,MAAA,CAAAC,OAAA,GAAAT,YAA2B,CAAAK,sBAAA;AAE3B,IAAAK,mBAAA,GAA2BC,OAAA;AAMpB,IAAAC,iBAAM,GAAAD,OAA+C;AAAA,SAQ1DE,iBAAmCA,CAAAC,QAAA,EAAAC,WAAA;EAAf,MAAAD,QAAA,YAAAC,WAAA;IAClB,MAAK,IAAAC,SAAO;EACZ;AACE;AAAY,SACbC,kBAAAC,MAAA,EAAAC,KAAA;EACH,SAAAC,CAAA,MAAAA,CAAA,GAAAD,KAAA,CAAAE,MAAA,EAAAD,CAAA;IAZQ,IAAAE,UAAyB,GAAAH,KAAA,CAAAC,CAAA;IAEjCE,UAAY,CAAAC,UAA2B,GAAAD,UAAA,CAAAC,UAAA;IACrCD,UAAM,CAAAE,YAAA,GAAmB;IACzB,WAAO,IAAAF,UAAiB,EAAAA,UAAS,CAAAG,QAAA,OAAiB;IACpDC,MAAA,CAAAC,cAAA,CAAAT,MAAA,EAAAI,UAAA,CAAAM,GAAA,EAAAN,UAAA;EASQ;AACN;AACE,SAAAO,aAAcA,CAAAd,WAAW,EAAAe,UAAA,EAAAC,WAAA;EAAA,IAC1BD,UAAA,EAAAb,iBAAA,CAAAF,WAAA,CAAAiB,SAAA,EAAAF,UAAA;EACH,IAAAC,WAAA,EAAAd,iBAAA,CAAAF,WAAA,EAAAgB,WAAA;EAEA,OAAAhB,WAAY;AACV;AAA4B,SAC9BkB,iBAAAC,GAAA,EAAAN,GAAA,EAAAxB,KAAA;EAEA,IAAAwB,GAAA,IAAAM,GAAA,EAAe;IACbR,MAAM,CAAAC,cAAa,CAAAO,GAAA,EAAAN,GAAU;MAC7BxB,KAAI;MACNmB,UAAA;MAEAC,YAAuB,MAAO;MAC5BC,QAAA,EAAO;IAAkB,EACvB;EAAM,OACN;IAA2CS,GAC3C,CAAAN,GAAA,IAAAxB,KAAA;EAAgB;EACC,OAClB8B,GAAA;AAAA;AACH,IAEA3B,oBAAuB;EACrB,YAAM;;EACN,SAAM4B,qBAAUA,CAAAC,KAAA;IAAuB,IACrCC,KAAM;IAAAxB,iBACO,KAAK,EAAAsB,qBAAA;IAAAF,gBACf;IAAAA,gBACH,KAAgB,eAAiB;IAAA,IACjC,CAAAG,KAAA,GAAAA,KAAA;IACF,IAAC,CAAAE,SAAA;IACD,KAAAC,MAAO;IACT7B,mBAAA,CAAA8B,UAAA,CAAAC,gBAAA;MACFJ,KAAA,CAAAE,MAAA","ignoreList":[]}
|
package/dist/esm/createMedia.mjs
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { setupMatchMedia } from "@tamagui/web";
|
|
2
2
|
import { matchMedia } from "./matchMedia.mjs";
|
|
3
3
|
function createMedia(media) {
|
|
4
|
-
|
|
4
|
+
setupMatchMedia(matchMedia);
|
|
5
|
+
return media;
|
|
5
6
|
}
|
|
6
7
|
export { createMedia };
|
|
7
8
|
//# sourceMappingURL=createMedia.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["setupMatchMedia","matchMedia","createMedia","media"],"sources":["../../src/createMedia.ts"],"sourcesContent":[null],"mappings":"AACA,SAASA,eAAA,QAAuB;AAEhC,SAASC,UAAA,QAAkB;AAMpB,SAASC,YAIdC,KAAA,EAAa;
|
|
1
|
+
{"version":3,"names":["setupMatchMedia","matchMedia","createMedia","media"],"sources":["../../src/createMedia.ts"],"sourcesContent":[null],"mappings":"AACA,SAASA,eAAA,QAAuB;AAEhC,SAASC,UAAA,QAAkB;AAMpB,SAASC,YAIdC,KAAA,EAAa;EAGbH,eAAA,CAAgBC,UAAU;EAC1B,OAAOE,KAAA;AACT","ignoreList":[]}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { setupMatchMedia } from "@tamagui/web";
|
|
2
2
|
import { matchMedia } from "./matchMedia.native.js";
|
|
3
3
|
function createMedia(media) {
|
|
4
|
-
|
|
4
|
+
setupMatchMedia(matchMedia);
|
|
5
|
+
return media;
|
|
5
6
|
}
|
|
6
7
|
export { createMedia };
|
|
7
8
|
//# sourceMappingURL=createMedia.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["setupMatchMedia","matchMedia","createMedia","media"],"sources":["../../src/createMedia.ts"],"sourcesContent":[null],"mappings":"AACA,SAASA,eAAA,QAAuB;AAEhC,SAASC,UAAA,QAAkB;AAMpB,SAASC,YAIdC,KAAA,EAAa;
|
|
1
|
+
{"version":3,"names":["setupMatchMedia","matchMedia","createMedia","media"],"sources":["../../src/createMedia.ts"],"sourcesContent":[null],"mappings":"AACA,SAASA,eAAA,QAAuB;AAEhC,SAASC,UAAA,QAAkB;AAMpB,SAASC,YAIdC,KAAA,EAAa;EAGbH,eAAA,CAAgBC,UAAU;EAC1B,OAAOE,KAAA;AACT","ignoreList":[]}
|
package/dist/esm/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from "./createMedia";
|
|
2
|
-
export * from "./matchMedia";
|
|
1
|
+
export * from "./createMedia.mjs";
|
|
2
|
+
export * from "./matchMedia.mjs";
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
package/dist/esm/matchMedia.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["matchMedia","globalThis"],"sources":["../../src/matchMedia.ts"],"sourcesContent":[null],"mappings":"AAIO,MAAMA,UAAA,GAAyBC,UAAA,
|
|
1
|
+
{"version":3,"names":["matchMedia","globalThis"],"sources":["../../src/matchMedia.ts"],"sourcesContent":[null],"mappings":"AAIO,MAAMA,UAAA,GAAyBC,UAAA,CAAW,YAAY","ignoreList":[]}
|
package/dist/esm/matchQuery.mjs
CHANGED
|
@@ -1,20 +1,24 @@
|
|
|
1
|
-
const RE_MEDIA_QUERY = /(?:(only|not)?\s*([^\s()]+)(?:\s*and)?\s*)?(.+)?/i
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
const RE_MEDIA_QUERY = /(?:(only|not)?\s*([^\s()]+)(?:\s*and)?\s*)?(.+)?/i;
|
|
2
|
+
const RE_MQ_EXPRESSION = /\(\s*([^\s:)]+)\s*(?::\s*([^\s)]+))?\s*\)/;
|
|
3
|
+
const RE_MQ_FEATURE = /^(?:(min|max)-)?(.+)/;
|
|
4
|
+
const RE_LENGTH_UNIT = /(em|rem|px|cm|mm|in|pt|pc)?$/;
|
|
5
|
+
const RE_RESOLUTION_UNIT = /(dpi|dpcm|dppx)?$/;
|
|
6
6
|
function matchQuery(mediaQuery, values) {
|
|
7
7
|
return parseQuery(mediaQuery).some(query => {
|
|
8
8
|
if (!query) return;
|
|
9
|
-
const inverse = query.inverse
|
|
10
|
-
|
|
11
|
-
if (typeMatch && inverse || !(typeMatch || inverse))
|
|
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
|
+
}
|
|
12
14
|
const expressionsMatch = query.expressions.every(expression => {
|
|
13
|
-
const feature = expression.feature
|
|
14
|
-
|
|
15
|
-
let expValue = expression.value
|
|
16
|
-
|
|
17
|
-
if (!value)
|
|
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
|
+
}
|
|
18
22
|
switch (feature) {
|
|
19
23
|
case "orientation":
|
|
20
24
|
case "scan":
|
|
@@ -23,22 +27,26 @@ function matchQuery(mediaQuery, values) {
|
|
|
23
27
|
case "height":
|
|
24
28
|
case "device-width":
|
|
25
29
|
case "device-height":
|
|
26
|
-
expValue = toPx(expValue)
|
|
30
|
+
expValue = toPx(expValue);
|
|
31
|
+
value = toPx(value);
|
|
27
32
|
break;
|
|
28
33
|
case "resolution":
|
|
29
|
-
expValue = toDpi(expValue)
|
|
34
|
+
expValue = toDpi(expValue);
|
|
35
|
+
value = toDpi(value);
|
|
30
36
|
break;
|
|
31
37
|
case "aspect-ratio":
|
|
32
38
|
case "device-aspect-ratio":
|
|
33
39
|
case /* Deprecated */
|
|
34
40
|
"device-pixel-ratio":
|
|
35
|
-
expValue = toDecimal(expValue)
|
|
41
|
+
expValue = toDecimal(expValue);
|
|
42
|
+
value = toDecimal(value);
|
|
36
43
|
break;
|
|
37
44
|
case "grid":
|
|
38
45
|
case "color":
|
|
39
46
|
case "color-index":
|
|
40
47
|
case "monochrome":
|
|
41
|
-
expValue = Number.parseInt(expValue, 10) || 1
|
|
48
|
+
expValue = Number.parseInt(expValue, 10) || 1;
|
|
49
|
+
value = Number.parseInt(value, 10) || 0;
|
|
42
50
|
break;
|
|
43
51
|
}
|
|
44
52
|
switch (modifier) {
|
|
@@ -58,15 +66,16 @@ function parseQuery(mediaQuery) {
|
|
|
58
66
|
query = query.trim();
|
|
59
67
|
const captures = query.match(RE_MEDIA_QUERY);
|
|
60
68
|
if (!captures) return null;
|
|
61
|
-
const modifier = captures[1]
|
|
62
|
-
|
|
63
|
-
|
|
69
|
+
const modifier = captures[1];
|
|
70
|
+
const type = captures[2];
|
|
71
|
+
const expressionsCapture = captures[3] || "";
|
|
72
|
+
const expressions = expressionsCapture.match(/\([^)]+\)/g) || [];
|
|
64
73
|
return {
|
|
65
74
|
inverse: !!modifier && modifier.toLowerCase() === "not",
|
|
66
75
|
type: type ? type.toLowerCase() : "all",
|
|
67
76
|
expressions: expressions.map(expression => {
|
|
68
|
-
const captures2 = expression.match(RE_MQ_EXPRESSION)
|
|
69
|
-
|
|
77
|
+
const captures2 = expression.match(RE_MQ_EXPRESSION);
|
|
78
|
+
const feature = captures2[1].toLowerCase().match(RE_MQ_FEATURE);
|
|
70
79
|
return {
|
|
71
80
|
modifier: feature[1],
|
|
72
81
|
feature: feature[2],
|
|
@@ -77,13 +86,18 @@ function parseQuery(mediaQuery) {
|
|
|
77
86
|
});
|
|
78
87
|
}
|
|
79
88
|
function toDecimal(ratio) {
|
|
80
|
-
let decimal = Number(ratio)
|
|
81
|
-
|
|
82
|
-
|
|
89
|
+
let decimal = Number(ratio);
|
|
90
|
+
let numbers;
|
|
91
|
+
if (!decimal) {
|
|
92
|
+
numbers = ratio.match(/^(\d+)\s*\/\s*(\d+)$/);
|
|
93
|
+
decimal = numbers[1] / numbers[2];
|
|
94
|
+
}
|
|
95
|
+
return decimal;
|
|
83
96
|
}
|
|
84
97
|
function toDpi(resolution) {
|
|
85
98
|
const value = Number.parseFloat(resolution);
|
|
86
|
-
|
|
99
|
+
const units = String(resolution).match(RE_RESOLUTION_UNIT)?.[1];
|
|
100
|
+
switch (units) {
|
|
87
101
|
case "dpcm":
|
|
88
102
|
return value / 2.54;
|
|
89
103
|
case "dppx":
|
|
@@ -94,7 +108,8 @@ function toDpi(resolution) {
|
|
|
94
108
|
}
|
|
95
109
|
function toPx(length) {
|
|
96
110
|
const value = Number.parseFloat(length);
|
|
97
|
-
|
|
111
|
+
const units = String(length).match(RE_LENGTH_UNIT)?.[1];
|
|
112
|
+
switch (units) {
|
|
98
113
|
case "em":
|
|
99
114
|
return value * 16;
|
|
100
115
|
case "rem":
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["RE_MEDIA_QUERY","RE_MQ_EXPRESSION","RE_MQ_FEATURE","RE_LENGTH_UNIT","RE_RESOLUTION_UNIT","matchQuery","mediaQuery","values","parseQuery","some","query","inverse","typeMatch","type","expressionsMatch","expressions","every","expression","feature","modifier","expValue","value","toLowerCase","toPx","toDpi","toDecimal","Number","parseInt","split","map","trim","captures","match","captures2","ratio","decimal","numbers","resolution","parseFloat","String","length"],"sources":["../../src/matchQuery.ts"],"sourcesContent":[null],"mappings":"AAQA,MAAMA,cAAA,GAAiB;
|
|
1
|
+
{"version":3,"names":["RE_MEDIA_QUERY","RE_MQ_EXPRESSION","RE_MQ_FEATURE","RE_LENGTH_UNIT","RE_RESOLUTION_UNIT","matchQuery","mediaQuery","values","parseQuery","some","query","inverse","typeMatch","type","expressionsMatch","expressions","every","expression","feature","modifier","expValue","value","toLowerCase","toPx","toDpi","toDecimal","Number","parseInt","split","map","trim","captures","match","expressionsCapture","captures2","ratio","decimal","numbers","resolution","parseFloat","units","String","length"],"sources":["../../src/matchQuery.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,57 +1,64 @@
|
|
|
1
|
-
var RE_MEDIA_QUERY = /(?:(only|not)?\s*([^\s()]+)(?:\s*and)?\s*)?(.+)?/i
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
var RE_MEDIA_QUERY = /(?:(only|not)?\s*([^\s()]+)(?:\s*and)?\s*)?(.+)?/i;
|
|
2
|
+
var RE_MQ_EXPRESSION = /\(\s*([^\s:)]+)\s*(?::\s*([^\s)]+))?\s*\)/;
|
|
3
|
+
var RE_MQ_FEATURE = /^(?:(min|max)-)?(.+)/;
|
|
4
|
+
var RE_LENGTH_UNIT = /(em|rem|px|cm|mm|in|pt|pc)?$/;
|
|
5
|
+
var RE_RESOLUTION_UNIT = /(dpi|dpcm|dppx)?$/;
|
|
6
6
|
function matchQuery(mediaQuery, values) {
|
|
7
7
|
return parseQuery(mediaQuery).some(function (query) {
|
|
8
|
-
if (query)
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
var feature = expression.feature,
|
|
14
|
-
modifier = expression.modifier,
|
|
15
|
-
expValue = expression.value,
|
|
16
|
-
value = values[feature];
|
|
17
|
-
if (!value) return !1;
|
|
18
|
-
switch (feature) {
|
|
19
|
-
case "orientation":
|
|
20
|
-
case "scan":
|
|
21
|
-
return value.toLowerCase() === expValue.toLowerCase();
|
|
22
|
-
case "width":
|
|
23
|
-
case "height":
|
|
24
|
-
case "device-width":
|
|
25
|
-
case "device-height":
|
|
26
|
-
expValue = toPx(expValue), value = toPx(value);
|
|
27
|
-
break;
|
|
28
|
-
case "resolution":
|
|
29
|
-
expValue = toDpi(expValue), value = toDpi(value);
|
|
30
|
-
break;
|
|
31
|
-
case "aspect-ratio":
|
|
32
|
-
case "device-aspect-ratio":
|
|
33
|
-
case /* Deprecated */
|
|
34
|
-
"device-pixel-ratio":
|
|
35
|
-
expValue = toDecimal(expValue), value = toDecimal(value);
|
|
36
|
-
break;
|
|
37
|
-
case "grid":
|
|
38
|
-
case "color":
|
|
39
|
-
case "color-index":
|
|
40
|
-
case "monochrome":
|
|
41
|
-
expValue = Number.parseInt(expValue, 10) || 1, value = Number.parseInt(value, 10) || 0;
|
|
42
|
-
break;
|
|
43
|
-
}
|
|
44
|
-
switch (modifier) {
|
|
45
|
-
case "min":
|
|
46
|
-
return value >= expValue;
|
|
47
|
-
case "max":
|
|
48
|
-
return value <= expValue;
|
|
49
|
-
default:
|
|
50
|
-
return value === expValue;
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
return expressionsMatch && !inverse || !expressionsMatch && inverse;
|
|
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;
|
|
54
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":
|
|
25
|
+
return value.toLowerCase() === expValue.toLowerCase();
|
|
26
|
+
case "width":
|
|
27
|
+
case "height":
|
|
28
|
+
case "device-width":
|
|
29
|
+
case "device-height":
|
|
30
|
+
expValue = toPx(expValue);
|
|
31
|
+
value = toPx(value);
|
|
32
|
+
break;
|
|
33
|
+
case "resolution":
|
|
34
|
+
expValue = toDpi(expValue);
|
|
35
|
+
value = toDpi(value);
|
|
36
|
+
break;
|
|
37
|
+
case "aspect-ratio":
|
|
38
|
+
case "device-aspect-ratio":
|
|
39
|
+
case /* Deprecated */
|
|
40
|
+
"device-pixel-ratio":
|
|
41
|
+
expValue = toDecimal(expValue);
|
|
42
|
+
value = toDecimal(value);
|
|
43
|
+
break;
|
|
44
|
+
case "grid":
|
|
45
|
+
case "color":
|
|
46
|
+
case "color-index":
|
|
47
|
+
case "monochrome":
|
|
48
|
+
expValue = Number.parseInt(expValue, 10) || 1;
|
|
49
|
+
value = Number.parseInt(value, 10) || 0;
|
|
50
|
+
break;
|
|
51
|
+
}
|
|
52
|
+
switch (modifier) {
|
|
53
|
+
case "min":
|
|
54
|
+
return value >= expValue;
|
|
55
|
+
case "max":
|
|
56
|
+
return value <= expValue;
|
|
57
|
+
default:
|
|
58
|
+
return value === expValue;
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
return expressionsMatch && !inverse || !expressionsMatch && inverse;
|
|
55
62
|
});
|
|
56
63
|
}
|
|
57
64
|
function parseQuery(mediaQuery) {
|
|
@@ -59,16 +66,16 @@ function parseQuery(mediaQuery) {
|
|
|
59
66
|
query = query.trim();
|
|
60
67
|
var captures = query.match(RE_MEDIA_QUERY);
|
|
61
68
|
if (!captures) return null;
|
|
62
|
-
var modifier = captures[1]
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
69
|
+
var modifier = captures[1];
|
|
70
|
+
var type = captures[2];
|
|
71
|
+
var expressionsCapture = captures[3] || "";
|
|
72
|
+
var expressions = expressionsCapture.match(/\([^)]+\)/g) || [];
|
|
66
73
|
return {
|
|
67
74
|
inverse: !!modifier && modifier.toLowerCase() === "not",
|
|
68
75
|
type: type ? type.toLowerCase() : "all",
|
|
69
76
|
expressions: expressions.map(function (expression) {
|
|
70
|
-
var captures2 = expression.match(RE_MQ_EXPRESSION)
|
|
71
|
-
|
|
77
|
+
var captures2 = expression.match(RE_MQ_EXPRESSION);
|
|
78
|
+
var feature = captures2[1].toLowerCase().match(RE_MQ_FEATURE);
|
|
72
79
|
return {
|
|
73
80
|
modifier: feature[1],
|
|
74
81
|
feature: feature[2],
|
|
@@ -79,14 +86,18 @@ function parseQuery(mediaQuery) {
|
|
|
79
86
|
});
|
|
80
87
|
}
|
|
81
88
|
function toDecimal(ratio) {
|
|
82
|
-
var decimal = Number(ratio)
|
|
83
|
-
|
|
84
|
-
|
|
89
|
+
var decimal = Number(ratio);
|
|
90
|
+
var numbers;
|
|
91
|
+
if (!decimal) {
|
|
92
|
+
numbers = ratio.match(/^(\d+)\s*\/\s*(\d+)$/);
|
|
93
|
+
decimal = numbers[1] / numbers[2];
|
|
94
|
+
}
|
|
95
|
+
return decimal;
|
|
85
96
|
}
|
|
86
97
|
function toDpi(resolution) {
|
|
87
|
-
var _String_match
|
|
88
|
-
|
|
89
|
-
|
|
98
|
+
var _String_match;
|
|
99
|
+
var value = Number.parseFloat(resolution);
|
|
100
|
+
var units = (_String_match = String(resolution).match(RE_RESOLUTION_UNIT)) === null || _String_match === void 0 ? void 0 : _String_match[1];
|
|
90
101
|
switch (units) {
|
|
91
102
|
case "dpcm":
|
|
92
103
|
return value / 2.54;
|
|
@@ -97,9 +108,9 @@ function toDpi(resolution) {
|
|
|
97
108
|
}
|
|
98
109
|
}
|
|
99
110
|
function toPx(length) {
|
|
100
|
-
var _String_match
|
|
101
|
-
|
|
102
|
-
|
|
111
|
+
var _String_match;
|
|
112
|
+
var value = Number.parseFloat(length);
|
|
113
|
+
var units = (_String_match = String(length).match(RE_LENGTH_UNIT)) === null || _String_match === void 0 ? void 0 : _String_match[1];
|
|
103
114
|
switch (units) {
|
|
104
115
|
case "em":
|
|
105
116
|
return value * 16;
|