@hanzogui/react-native-media-driver 8.3.0 → 8.3.2
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.js +16 -0
- package/dist/cjs/createMedia.js.map +1 -0
- package/dist/cjs/index.js +6 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/matchMedia.js +6 -0
- package/dist/cjs/matchMedia.js.map +1 -0
- package/dist/cjs/matchQuery.js +148 -0
- package/dist/cjs/matchQuery.js.map +1 -0
- package/dist/cjs/mediaQueryList.js +53 -0
- package/dist/cjs/mediaQueryList.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/dist/esm/createMedia.js +13 -0
- package/dist/esm/createMedia.js.map +1 -0
- package/dist/esm/index.js +3 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/matchMedia.js +3 -0
- package/dist/esm/matchMedia.js.map +1 -0
- package/dist/esm/matchQuery.js +144 -0
- package/dist/esm/matchQuery.js.map +1 -0
- package/dist/esm/mediaQueryList.js +49 -0
- package/dist/esm/mediaQueryList.js.map +1 -0
- package/dist/native/createMedia.js +13 -0
- package/dist/native/createMedia.js.map +1 -0
- package/dist/native/index.js +3 -0
- package/dist/native/index.js.map +1 -0
- package/dist/native/matchMedia.js +5 -0
- package/dist/native/matchMedia.js.map +1 -0
- package/dist/native/matchQuery.js +144 -0
- package/dist/native/matchQuery.js.map +1 -0
- package/dist/native/mediaQueryList.js +49 -0
- package/dist/native/mediaQueryList.js.map +1 -0
- package/package.json +12 -12
- package/src/createMedia.ts +1 -1
- package/src/index.ts +2 -2
- package/src/matchMedia.native.ts +1 -1
- package/src/mediaQueryList.ts +1 -1
- package/types/createMedia.d.ts +5 -6
- package/types/createMedia.d.ts.map +1 -11
- package/types/index.d.ts +2 -3
- package/types/index.d.ts.map +1 -11
- package/types/matchMedia.d.ts +1 -2
- package/types/matchMedia.d.ts.map +1 -11
- package/types/matchMedia.native.d.ts +1 -2
- package/types/matchMedia.native.d.ts.map +1 -11
- package/types/matchQuery.d.ts +7 -8
- package/types/matchQuery.d.ts.map +1 -11
- package/types/mediaQueryList.d.ts +14 -15
- package/types/mediaQueryList.d.ts.map +1 -11
- 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/cjs/index.cjs +0 -21
- package/dist/cjs/index.native.js +0 -24
- package/dist/cjs/index.native.js.map +0 -1
- package/dist/cjs/matchMedia.cjs +0 -28
- package/dist/cjs/matchMedia.native.js +0 -34
- package/dist/cjs/matchMedia.native.js.map +0 -1
- package/dist/cjs/matchQuery.cjs +0 -158
- package/dist/cjs/matchQuery.native.js +0 -163
- package/dist/cjs/matchQuery.native.js.map +0 -1
- package/dist/cjs/mediaQueryList.cjs +0 -78
- package/dist/cjs/mediaQueryList.native.js +0 -134
- package/dist/cjs/mediaQueryList.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.mjs +0 -3
- package/dist/esm/index.mjs.map +0 -1
- package/dist/esm/index.native.js +0 -3
- package/dist/esm/index.native.js.map +0 -1
- package/dist/esm/matchMedia.mjs +0 -3
- package/dist/esm/matchMedia.mjs.map +0 -1
- package/dist/esm/matchMedia.native.js +0 -6
- package/dist/esm/matchMedia.native.js.map +0 -1
- package/dist/esm/matchQuery.mjs +0 -132
- package/dist/esm/matchQuery.mjs.map +0 -1
- package/dist/esm/matchQuery.native.js +0 -134
- package/dist/esm/matchQuery.native.js.map +0 -1
- package/dist/esm/mediaQueryList.mjs +0 -53
- package/dist/esm/mediaQueryList.mjs.map +0 -1
- package/dist/esm/mediaQueryList.native.js +0 -106
- package/dist/esm/mediaQueryList.native.js.map +0 -1
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Copyright (c) 2014, Yahoo! Inc. All rights reserved.
|
|
3
|
+
Copyrights licensed under the New BSD License.
|
|
4
|
+
See the accompanying LICENSE file for terms.
|
|
5
|
+
*/
|
|
6
|
+
// -----------------------------------------------------------------------------
|
|
7
|
+
const RE_MEDIA_QUERY = /(?:(only|not)?\s*([^\s()]+)(?:\s*and)?\s*)?(.+)?/i;
|
|
8
|
+
const RE_MQ_EXPRESSION = /\(\s*([^\s:)]+)\s*(?::\s*([^\s)]+))?\s*\)/;
|
|
9
|
+
const RE_MQ_FEATURE = /^(?:(min|max)-)?(.+)/;
|
|
10
|
+
const RE_LENGTH_UNIT = /(em|rem|px|cm|mm|in|pt|pc)?$/;
|
|
11
|
+
const RE_RESOLUTION_UNIT = /(dpi|dpcm|dppx)?$/;
|
|
12
|
+
export function matchQuery(mediaQuery, values) {
|
|
13
|
+
return parseQuery(mediaQuery).some((query) => {
|
|
14
|
+
if (!query)
|
|
15
|
+
return;
|
|
16
|
+
const inverse = query.inverse;
|
|
17
|
+
// Either the parsed or specified `type` is "all", or the types must be
|
|
18
|
+
// equal for a match.
|
|
19
|
+
const typeMatch = query.type === 'all' || values.type === query.type;
|
|
20
|
+
// Quit early when `type` doesn't match, but take "not" into account.
|
|
21
|
+
if ((typeMatch && inverse) || !(typeMatch || inverse)) {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
const expressionsMatch = query.expressions.every((expression) => {
|
|
25
|
+
const feature = expression.feature;
|
|
26
|
+
const modifier = expression.modifier;
|
|
27
|
+
let expValue = expression.value;
|
|
28
|
+
let value = values[feature];
|
|
29
|
+
// Missing or falsy values don't match.
|
|
30
|
+
if (!value) {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
switch (feature) {
|
|
34
|
+
case 'orientation':
|
|
35
|
+
case 'scan':
|
|
36
|
+
return value.toLowerCase() === expValue.toLowerCase();
|
|
37
|
+
case 'width':
|
|
38
|
+
case 'height':
|
|
39
|
+
case 'device-width':
|
|
40
|
+
case 'device-height':
|
|
41
|
+
expValue = toPx(expValue);
|
|
42
|
+
value = toPx(value);
|
|
43
|
+
break;
|
|
44
|
+
case 'resolution':
|
|
45
|
+
expValue = toDpi(expValue);
|
|
46
|
+
value = toDpi(value);
|
|
47
|
+
break;
|
|
48
|
+
case 'aspect-ratio':
|
|
49
|
+
case 'device-aspect-ratio':
|
|
50
|
+
case /* Deprecated */ 'device-pixel-ratio':
|
|
51
|
+
expValue = toDecimal(expValue);
|
|
52
|
+
value = toDecimal(value);
|
|
53
|
+
break;
|
|
54
|
+
case 'grid':
|
|
55
|
+
case 'color':
|
|
56
|
+
case 'color-index':
|
|
57
|
+
case 'monochrome':
|
|
58
|
+
expValue = Number.parseInt(expValue, 10) || 1;
|
|
59
|
+
value = Number.parseInt(value, 10) || 0;
|
|
60
|
+
break;
|
|
61
|
+
}
|
|
62
|
+
switch (modifier) {
|
|
63
|
+
case 'min':
|
|
64
|
+
return value >= expValue;
|
|
65
|
+
case 'max':
|
|
66
|
+
return value <= expValue;
|
|
67
|
+
default:
|
|
68
|
+
return value === expValue;
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
return (expressionsMatch && !inverse) || (!expressionsMatch && inverse);
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
export function parseQuery(mediaQuery) {
|
|
75
|
+
return mediaQuery.split(',').map((query) => {
|
|
76
|
+
query = query.trim();
|
|
77
|
+
const captures = query.match(RE_MEDIA_QUERY);
|
|
78
|
+
if (!captures)
|
|
79
|
+
return null;
|
|
80
|
+
const modifier = captures[1];
|
|
81
|
+
const type = captures[2];
|
|
82
|
+
const expressionsCapture = captures[3] || '';
|
|
83
|
+
// Split expressions into a list.
|
|
84
|
+
const expressions = expressionsCapture.match(/\([^)]+\)/g) || [];
|
|
85
|
+
return {
|
|
86
|
+
inverse: !!modifier && modifier.toLowerCase() === 'not',
|
|
87
|
+
type: type ? type.toLowerCase() : 'all',
|
|
88
|
+
expressions: expressions.map((expression) => {
|
|
89
|
+
const captures = expression.match(RE_MQ_EXPRESSION);
|
|
90
|
+
const feature = captures[1].toLowerCase().match(RE_MQ_FEATURE);
|
|
91
|
+
return {
|
|
92
|
+
modifier: feature[1],
|
|
93
|
+
feature: feature[2],
|
|
94
|
+
value: captures[2],
|
|
95
|
+
};
|
|
96
|
+
}),
|
|
97
|
+
};
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
// -- Utilities ----------------------------------------------------------------
|
|
101
|
+
function toDecimal(ratio) {
|
|
102
|
+
let decimal = Number(ratio);
|
|
103
|
+
let numbers;
|
|
104
|
+
if (!decimal) {
|
|
105
|
+
numbers = ratio.match(/^(\d+)\s*\/\s*(\d+)$/);
|
|
106
|
+
decimal = numbers[1] / numbers[2];
|
|
107
|
+
}
|
|
108
|
+
return decimal;
|
|
109
|
+
}
|
|
110
|
+
function toDpi(resolution) {
|
|
111
|
+
const value = Number.parseFloat(resolution);
|
|
112
|
+
const units = String(resolution).match(RE_RESOLUTION_UNIT)?.[1];
|
|
113
|
+
switch (units) {
|
|
114
|
+
case 'dpcm':
|
|
115
|
+
return value / 2.54;
|
|
116
|
+
case 'dppx':
|
|
117
|
+
return value * 96;
|
|
118
|
+
default:
|
|
119
|
+
return value;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
function toPx(length) {
|
|
123
|
+
const value = Number.parseFloat(length);
|
|
124
|
+
const units = String(length).match(RE_LENGTH_UNIT)?.[1];
|
|
125
|
+
switch (units) {
|
|
126
|
+
case 'em':
|
|
127
|
+
return value * 16;
|
|
128
|
+
case 'rem':
|
|
129
|
+
return value * 16;
|
|
130
|
+
case 'cm':
|
|
131
|
+
return (value * 96) / 2.54;
|
|
132
|
+
case 'mm':
|
|
133
|
+
return (value * 96) / 2.54 / 10;
|
|
134
|
+
case 'in':
|
|
135
|
+
return value * 96;
|
|
136
|
+
case 'pt':
|
|
137
|
+
return value * 72;
|
|
138
|
+
case 'pc':
|
|
139
|
+
return (value * 72) / 12;
|
|
140
|
+
default:
|
|
141
|
+
return value;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=matchQuery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"matchQuery.js","sourceRoot":"","sources":["../../src/matchQuery.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Dimensions } from 'react-native';
|
|
2
|
+
import { matchQuery } from './matchQuery.js';
|
|
3
|
+
export class NativeMediaQueryList {
|
|
4
|
+
get orientation() {
|
|
5
|
+
const windowDimensions = Dimensions.get('window');
|
|
6
|
+
return windowDimensions.height > windowDimensions.width ? 'portrait' : 'landscape';
|
|
7
|
+
}
|
|
8
|
+
constructor(query) {
|
|
9
|
+
this.query = query;
|
|
10
|
+
this.listeners = [];
|
|
11
|
+
this.notify();
|
|
12
|
+
Dimensions.addEventListener('change', () => {
|
|
13
|
+
this.notify();
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
notify() {
|
|
17
|
+
this.listeners.forEach((listener) => {
|
|
18
|
+
listener(this.orientation);
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
addListener(listener) {
|
|
22
|
+
this.listeners.push(listener);
|
|
23
|
+
}
|
|
24
|
+
removeListener(listener) {
|
|
25
|
+
const index = this.listeners.indexOf(listener);
|
|
26
|
+
if (index !== -1)
|
|
27
|
+
this.listeners.splice(index, 1);
|
|
28
|
+
}
|
|
29
|
+
match(query, { width, height }) {
|
|
30
|
+
return matchQuery(query, {
|
|
31
|
+
type: 'screen',
|
|
32
|
+
orientation: height > width ? 'portrait' : 'landscape',
|
|
33
|
+
'device-width': width,
|
|
34
|
+
'device-height': height,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
get matches() {
|
|
38
|
+
const windowDimensions = Dimensions.get('window');
|
|
39
|
+
const matches = matchQuery(this.query, {
|
|
40
|
+
type: 'screen',
|
|
41
|
+
orientation: this.orientation,
|
|
42
|
+
...windowDimensions,
|
|
43
|
+
'device-width': windowDimensions.width,
|
|
44
|
+
'device-height': windowDimensions.height,
|
|
45
|
+
});
|
|
46
|
+
return matches;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=mediaQueryList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mediaQueryList.js","sourceRoot":"","sources":["../../src/mediaQueryList.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAM5C,MAAM,OAAO,oBAAoB;IAG/B,IAAY,WAAW;QACrB,MAAM,gBAAgB,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACjD,OAAO,gBAAgB,CAAC,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAA;IACpF,CAAC;IAED,YAAoB,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;QAPzB,cAAS,GAAe,EAAE,CAAA;QAQhC,IAAI,CAAC,MAAM,EAAE,CAAA;QACb,UAAU,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE;YACzC,IAAI,CAAC,MAAM,EAAE,CAAA;QACf,CAAC,CAAC,CAAA;IACJ,CAAC;IAEO,MAAM;QACZ,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YAClC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QAC5B,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,WAAW,CAAC,QAAkB;QAC5B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC/B,CAAC;IAED,cAAc,CAAC,QAAkB;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QAC9C,IAAI,KAAK,KAAK,CAAC,CAAC;YAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IACnD,CAAC;IAED,KAAK,CAAC,KAAa,EAAE,EAAE,KAAK,EAAE,MAAM,EAAqC;QACvE,OAAO,UAAU,CAAC,KAAK,EAAE;YACvB,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW;YACtD,cAAc,EAAE,KAAK;YACrB,eAAe,EAAE,MAAM;SACxB,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,OAAO;QACT,MAAM,gBAAgB,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACjD,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE;YACrC,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,GAAG,gBAAgB;YACnB,cAAc,EAAE,gBAAgB,CAAC,KAAK;YACtC,eAAe,EAAE,gBAAgB,CAAC,MAAM;SACzC,CAAC,CAAA;QACF,OAAO,OAAO,CAAA;IAChB,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hanzogui/react-native-media-driver",
|
|
3
|
-
"version": "8.3.
|
|
3
|
+
"version": "8.3.2",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"source": "src/index.ts",
|
|
6
6
|
"files": [
|
|
@@ -10,19 +10,19 @@
|
|
|
10
10
|
],
|
|
11
11
|
"type": "module",
|
|
12
12
|
"sideEffects": false,
|
|
13
|
-
"main": "dist/cjs",
|
|
14
|
-
"module": "dist/esm",
|
|
13
|
+
"main": "./dist/cjs/index.js",
|
|
14
|
+
"module": "./dist/esm/index.js",
|
|
15
15
|
"types": "./types/index.d.ts",
|
|
16
16
|
"exports": {
|
|
17
17
|
"./package.json": "./package.json",
|
|
18
18
|
".": {
|
|
19
19
|
"types": "./types/index.d.ts",
|
|
20
|
-
"react-native": "./dist/
|
|
21
|
-
"browser": "./dist/esm/index.
|
|
22
|
-
"module": "./dist/esm/index.
|
|
23
|
-
"import": "./dist/esm/index.
|
|
24
|
-
"require": "./dist/cjs/index.
|
|
25
|
-
"default": "./dist/esm/index.
|
|
20
|
+
"react-native": "./dist/native/index.js",
|
|
21
|
+
"browser": "./dist/esm/index.js",
|
|
22
|
+
"module": "./dist/esm/index.js",
|
|
23
|
+
"import": "./dist/esm/index.js",
|
|
24
|
+
"require": "./dist/cjs/index.js",
|
|
25
|
+
"default": "./dist/esm/index.js"
|
|
26
26
|
}
|
|
27
27
|
},
|
|
28
28
|
"publishConfig": {
|
|
@@ -35,11 +35,11 @@
|
|
|
35
35
|
"clean:build": "hanzogui-build clean:build"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@hanzogui/web": "8.3.
|
|
38
|
+
"@hanzogui/web": "8.3.2"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
|
-
"@hanzogui/build": "8.3.
|
|
42
|
-
"react-native": "0.
|
|
41
|
+
"@hanzogui/build": "8.3.2",
|
|
42
|
+
"react-native": "^0.87.1"
|
|
43
43
|
},
|
|
44
44
|
"repository": {
|
|
45
45
|
"type": "git",
|
package/src/createMedia.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { MediaQueryObject } from '@hanzogui/web'
|
|
2
2
|
import { setupMatchMedia } from '@hanzogui/web'
|
|
3
3
|
|
|
4
|
-
import { matchMedia } from './matchMedia'
|
|
4
|
+
import { matchMedia } from './matchMedia.ts'
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* @deprecated you no longer need to call createMedia or import @hanzogui/react-native-media-driver at all.
|
package/src/index.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './createMedia'
|
|
2
|
-
export * from './matchMedia'
|
|
1
|
+
export * from './createMedia.ts'
|
|
2
|
+
export * from './matchMedia.ts'
|
package/src/matchMedia.native.ts
CHANGED
package/src/mediaQueryList.ts
CHANGED
package/types/createMedia.d.ts
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import type { MediaQueryObject } from
|
|
1
|
+
import type { MediaQueryObject } from '@hanzogui/web';
|
|
2
2
|
/**
|
|
3
|
-
* @deprecated you no longer need to call createMedia or import @hanzogui/react-native-media-driver at all.
|
|
4
|
-
* Gui now automatically handles setting this up, you can just pass a plain object to createGui.
|
|
5
|
-
*/
|
|
3
|
+
* @deprecated you no longer need to call createMedia or import @hanzogui/react-native-media-driver at all.
|
|
4
|
+
* Gui now automatically handles setting this up, you can just pass a plain object to createGui.
|
|
5
|
+
*/
|
|
6
6
|
export declare function createMedia<A extends {
|
|
7
|
-
|
|
7
|
+
[key: string]: MediaQueryObject;
|
|
8
8
|
}>(media: A): A;
|
|
9
|
-
|
|
10
9
|
//# sourceMappingURL=createMedia.d.ts.map
|
|
@@ -1,11 +1 @@
|
|
|
1
|
-
{
|
|
2
|
-
"mappings": "AAAA,cAAc,wBAAwB;;;;;AAStC,OAAO,iBAAS,YACd,UAAU;gBACO;GAEjB,OAAO,IAAI",
|
|
3
|
-
"names": [],
|
|
4
|
-
"sources": [
|
|
5
|
-
"src/createMedia.ts"
|
|
6
|
-
],
|
|
7
|
-
"version": 3,
|
|
8
|
-
"sourcesContent": [
|
|
9
|
-
"import type { MediaQueryObject } from '@hanzogui/web'\nimport { setupMatchMedia } from '@hanzogui/web'\n\nimport { matchMedia } from './matchMedia'\n\n/**\n * @deprecated you no longer need to call createMedia or import @hanzogui/react-native-media-driver at all.\n * Gui now automatically handles setting this up, you can just pass a plain object to createGui.\n */\nexport function createMedia<\n A extends {\n [key: string]: MediaQueryObject\n },\n>(media: A): A {\n // this should ideally return a diff object that is then passed to createGui\n // but works for now we dont really support swapping out media drivers\n setupMatchMedia(matchMedia)\n return media\n}\n"
|
|
10
|
-
]
|
|
11
|
-
}
|
|
1
|
+
{"version":3,"file":"createMedia.d.ts","sourceRoot":"","sources":["../src/createMedia.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAKrD;;;GAGG;AACH,wBAAgB,WAAW,CACzB,CAAC,SAAS;IACR,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAAA;CAChC,EACD,KAAK,EAAE,CAAC,GAAG,CAAC,CAKb"}
|
package/types/index.d.ts
CHANGED
package/types/index.d.ts.map
CHANGED
|
@@ -1,11 +1 @@
|
|
|
1
|
-
{
|
|
2
|
-
"mappings": "AAAA,cAAc;AACd,cAAc",
|
|
3
|
-
"names": [],
|
|
4
|
-
"sources": [
|
|
5
|
-
"src/index.ts"
|
|
6
|
-
],
|
|
7
|
-
"version": 3,
|
|
8
|
-
"sourcesContent": [
|
|
9
|
-
"export * from './createMedia'\nexport * from './matchMedia'\n"
|
|
10
|
-
]
|
|
11
|
-
}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA"}
|
package/types/matchMedia.d.ts
CHANGED
|
@@ -1,11 +1 @@
|
|
|
1
|
-
{
|
|
2
|
-
"mappings": "AAEA,cAAc,kBAAkB;AAEhC,OAAO,cAAM,YAAY",
|
|
3
|
-
"names": [],
|
|
4
|
-
"sources": [
|
|
5
|
-
"src/matchMedia.ts"
|
|
6
|
-
],
|
|
7
|
-
"version": 3,
|
|
8
|
-
"sourcesContent": [
|
|
9
|
-
"// web-only use platform:\n\nimport type { MatchMedia } from '@hanzogui/web'\n\nexport const matchMedia: MatchMedia = globalThis['matchMedia']\n"
|
|
10
|
-
]
|
|
11
|
-
}
|
|
1
|
+
{"version":3,"file":"matchMedia.d.ts","sourceRoot":"","sources":["../src/matchMedia.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE/C,eAAO,MAAM,UAAU,EAAE,UAAqC,CAAA"}
|
|
@@ -1,11 +1 @@
|
|
|
1
|
-
{
|
|
2
|
-
"mappings": "AAAA,cAAc,kBAAkB;AAIhC,OAAO,cAAM,YAAY",
|
|
3
|
-
"names": [],
|
|
4
|
-
"sources": [
|
|
5
|
-
"src/matchMedia.native.ts"
|
|
6
|
-
],
|
|
7
|
-
"version": 3,
|
|
8
|
-
"sourcesContent": [
|
|
9
|
-
"import type { MatchMedia } from '@hanzogui/web'\n\nimport { NativeMediaQueryList } from './mediaQueryList'\n\nexport const matchMedia: MatchMedia = (query) => {\n return new NativeMediaQueryList(query)\n}\n"
|
|
10
|
-
]
|
|
11
|
-
}
|
|
1
|
+
{"version":3,"file":"matchMedia.native.d.ts","sourceRoot":"","sources":["../src/matchMedia.native.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAI/C,eAAO,MAAM,UAAU,EAAE,UAExB,CAAA"}
|
package/types/matchQuery.d.ts
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
export declare function matchQuery(mediaQuery: string, values: Record<string, any>): boolean;
|
|
2
2
|
export declare function parseQuery(mediaQuery: string): ({
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
inverse: boolean;
|
|
4
|
+
type: string;
|
|
5
|
+
expressions: {
|
|
6
|
+
modifier: any;
|
|
7
|
+
feature: any;
|
|
8
|
+
value: any;
|
|
9
|
+
}[];
|
|
10
10
|
} | null)[];
|
|
11
|
-
|
|
12
11
|
//# sourceMappingURL=matchQuery.d.ts.map
|
|
@@ -1,11 +1 @@
|
|
|
1
|
-
{
|
|
2
|
-
"mappings": "AAcA,OAAO,iBAAS,WAAW,oBAAoB,QAAQ;AA0EvD,OAAO,iBAAS,WAAW,sBAAsB;CAC/C;CACA;CACA,aAAa;EACX;EACA;EACA",
|
|
3
|
-
"names": [],
|
|
4
|
-
"sources": [
|
|
5
|
-
"src/matchQuery.ts"
|
|
6
|
-
],
|
|
7
|
-
"version": 3,
|
|
8
|
-
"sourcesContent": [
|
|
9
|
-
"/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n// -----------------------------------------------------------------------------\n\nconst 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)?$/\n\nexport function matchQuery(mediaQuery: string, values: Record<string, any>): boolean {\n return parseQuery(mediaQuery).some((query) => {\n if (!query) return\n\n const inverse = query.inverse\n\n // Either the parsed or specified `type` is \"all\", or the types must be\n // equal for a match.\n const typeMatch = query.type === 'all' || values.type === query.type\n\n // Quit early when `type` doesn't match, but take \"not\" into account.\n if ((typeMatch && inverse) || !(typeMatch || inverse)) {\n return false\n }\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\n // Missing or falsy values don't match.\n if (!value) {\n return false\n }\n\n switch (feature) {\n case 'orientation':\n case 'scan':\n return value.toLowerCase() === expValue.toLowerCase()\n\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\n case 'resolution':\n expValue = toDpi(expValue)\n value = toDpi(value)\n break\n\n case 'aspect-ratio':\n case 'device-aspect-ratio':\n case /* Deprecated */ 'device-pixel-ratio':\n expValue = toDecimal(expValue)\n value = toDecimal(value)\n break\n\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\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\n return (expressionsMatch && !inverse) || (!expressionsMatch && inverse)\n })\n}\n\nexport function parseQuery(mediaQuery: string): ({\n inverse: boolean\n type: string\n expressions: {\n modifier: any\n feature: any\n value: any\n }[]\n} | null)[] {\n return mediaQuery.split(',').map((query) => {\n query = query.trim()\n\n const captures = query.match(RE_MEDIA_QUERY)\n\n if (!captures) return null\n\n const modifier = captures[1]\n const type = captures[2]\n const expressionsCapture = captures[3] || ''\n // Split expressions into a list.\n const expressions = expressionsCapture.match(/\\([^)]+\\)/g) || []\n\n return {\n inverse: !!modifier && modifier.toLowerCase() === 'not',\n type: type ? type.toLowerCase() : 'all',\n expressions: expressions.map((expression) => {\n const captures = expression.match(RE_MQ_EXPRESSION)\n const feature = captures[1].toLowerCase().match(RE_MQ_FEATURE)\n return {\n modifier: feature[1],\n feature: feature[2],\n value: captures[2],\n }\n }),\n }\n })\n}\n\n// -- Utilities ----------------------------------------------------------------\n\nfunction toDecimal(ratio) {\n let decimal = Number(ratio)\n let numbers\n\n if (!decimal) {\n numbers = ratio.match(/^(\\d+)\\s*\\/\\s*(\\d+)$/)\n decimal = numbers[1] / numbers[2]\n }\n\n return decimal\n}\n\nfunction toDpi(resolution: string) {\n const value = Number.parseFloat(resolution)\n const units = String(resolution).match(RE_RESOLUTION_UNIT)?.[1]\n\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}\n\nfunction toPx(length: string) {\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}\n"
|
|
10
|
-
]
|
|
11
|
-
}
|
|
1
|
+
{"version":3,"file":"matchQuery.d.ts","sourceRoot":"","sources":["../src/matchQuery.ts"],"names":[],"mappings":"AAcA,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAwEnF;AAED,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,CAAC;IAC/C,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE;QACX,QAAQ,EAAE,GAAG,CAAA;QACb,OAAO,EAAE,GAAG,CAAA;QACZ,KAAK,EAAE,GAAG,CAAA;KACX,EAAE,CAAA;CACJ,GAAG,IAAI,CAAC,EAAE,CA4BV"}
|
|
@@ -1,20 +1,19 @@
|
|
|
1
|
-
import type { MediaQueryList } from
|
|
2
|
-
type Orientation =
|
|
1
|
+
import type { MediaQueryList } from '@hanzogui/web';
|
|
2
|
+
type Orientation = 'landscape' | 'portrait';
|
|
3
3
|
type Listener = (orientation: Orientation) => void;
|
|
4
4
|
export declare class NativeMediaQueryList implements MediaQueryList {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
5
|
+
private query;
|
|
6
|
+
private listeners;
|
|
7
|
+
private get orientation();
|
|
8
|
+
constructor(query: string);
|
|
9
|
+
private notify;
|
|
10
|
+
addListener(listener: Listener): void;
|
|
11
|
+
removeListener(listener: Listener): void;
|
|
12
|
+
match(query: string, { width, height }: {
|
|
13
|
+
width: number;
|
|
14
|
+
height: number;
|
|
15
|
+
}): boolean;
|
|
16
|
+
get matches(): boolean;
|
|
17
17
|
}
|
|
18
18
|
export {};
|
|
19
|
-
|
|
20
19
|
//# sourceMappingURL=mediaQueryList.d.ts.map
|
|
@@ -1,11 +1 @@
|
|
|
1
|
-
{
|
|
2
|
-
"mappings": "AAAA,cAAc,sBAAsB;KAK/B,cAAc,cAAc;KAE5B,YAAY,aAAa;AAE9B,OAAO,cAAM,gCAAgC,eAAe;CAQ9C;CAPZ,QAAQ;CAER,YAAY;CAKZ,YAAY,AAAQ;CAOpB,QAAQ;CAMR,YAAY,UAAU;CAItB,eAAe,UAAU;CAKzB,MAAM,eAAe,EAAE,OAAO,UAAU;EAAE;EAAe;;CASzD,IAAI",
|
|
3
|
-
"names": [],
|
|
4
|
-
"sources": [
|
|
5
|
-
"src/mediaQueryList.ts"
|
|
6
|
-
],
|
|
7
|
-
"version": 3,
|
|
8
|
-
"sourcesContent": [
|
|
9
|
-
"import type { MediaQueryList } from '@hanzogui/web'\nimport { Dimensions } from 'react-native'\n\nimport { matchQuery } from './matchQuery'\n\ntype Orientation = 'landscape' | 'portrait'\n\ntype Listener = (orientation: Orientation) => void\n\nexport class NativeMediaQueryList implements MediaQueryList {\n private listeners: Listener[] = []\n\n private get orientation(): Orientation {\n const windowDimensions = Dimensions.get('window')\n return windowDimensions.height > windowDimensions.width ? 'portrait' : 'landscape'\n }\n\n constructor(private query: string) {\n this.notify()\n Dimensions.addEventListener('change', () => {\n this.notify()\n })\n }\n\n private notify() {\n this.listeners.forEach((listener) => {\n listener(this.orientation)\n })\n }\n\n addListener(listener: Listener): void {\n this.listeners.push(listener)\n }\n\n removeListener(listener: Listener): void {\n const index = this.listeners.indexOf(listener)\n if (index !== -1) this.listeners.splice(index, 1)\n }\n\n match(query: string, { width, height }: { width: number; height: number }): boolean {\n return matchQuery(query, {\n type: 'screen',\n orientation: height > width ? 'portrait' : 'landscape',\n 'device-width': width,\n 'device-height': height,\n })\n }\n\n get matches(): boolean {\n const windowDimensions = Dimensions.get('window')\n const matches = matchQuery(this.query, {\n type: 'screen',\n orientation: this.orientation,\n ...windowDimensions,\n 'device-width': windowDimensions.width,\n 'device-height': windowDimensions.height,\n })\n return matches\n }\n}\n"
|
|
10
|
-
]
|
|
11
|
-
}
|
|
1
|
+
{"version":3,"file":"mediaQueryList.d.ts","sourceRoot":"","sources":["../src/mediaQueryList.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAKnD,KAAK,WAAW,GAAG,WAAW,GAAG,UAAU,CAAA;AAE3C,KAAK,QAAQ,GAAG,CAAC,WAAW,EAAE,WAAW,KAAK,IAAI,CAAA;AAElD,qBAAa,oBAAqB,YAAW,cAAc;IAQ7C,OAAO,CAAC,KAAK;IAPzB,OAAO,CAAC,SAAS,CAAiB;IAElC,OAAO,KAAK,WAAW,GAGtB;IAED,YAAoB,KAAK,EAAE,MAAM,EAKhC;IAED,OAAO,CAAC,MAAM;IAMd,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAEpC;IAED,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAGvC;IAED,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAOlF;IAED,IAAI,OAAO,IAAI,OAAO,CAUrB;CACF"}
|
package/dist/cjs/createMedia.cjs
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __export = (target, all) => {
|
|
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, {
|
|
14
|
-
get: () => from[key],
|
|
15
|
-
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
return to;
|
|
19
|
-
};
|
|
20
|
-
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
21
|
-
value: true
|
|
22
|
-
}), mod);
|
|
23
|
-
var createMedia_exports = {};
|
|
24
|
-
__export(createMedia_exports, {
|
|
25
|
-
createMedia: () => createMedia
|
|
26
|
-
});
|
|
27
|
-
module.exports = __toCommonJS(createMedia_exports);
|
|
28
|
-
var import_web = require("@hanzogui/web");
|
|
29
|
-
var import_matchMedia = require("./matchMedia.cjs");
|
|
30
|
-
function createMedia(media) {
|
|
31
|
-
(0, import_web.setupMatchMedia)(import_matchMedia.matchMedia);
|
|
32
|
-
return media;
|
|
33
|
-
}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __export = (target, all) => {
|
|
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, {
|
|
16
|
-
get: () => from[key],
|
|
17
|
-
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
return to;
|
|
21
|
-
};
|
|
22
|
-
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
23
|
-
value: true
|
|
24
|
-
}), mod);
|
|
25
|
-
var createMedia_exports = {};
|
|
26
|
-
__export(createMedia_exports, {
|
|
27
|
-
createMedia: () => createMedia
|
|
28
|
-
});
|
|
29
|
-
module.exports = __toCommonJS(createMedia_exports);
|
|
30
|
-
var import_web = require("@hanzogui/web");
|
|
31
|
-
var import_matchMedia = require("./matchMedia.native.js");
|
|
32
|
-
function createMedia(media) {
|
|
33
|
-
(0, import_web.setupMatchMedia)(import_matchMedia.matchMedia);
|
|
34
|
-
return media;
|
|
35
|
-
}
|
|
36
|
-
//# sourceMappingURL=createMedia.native.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","createMedia_exports","__export","createMedia","module","exports","import_web","require","import_matchMedia","media","setupMatchMedia","matchMedia"],"sources":["../../src/createMedia.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,mBAAA;AAAAC,QAAA,CAAAD,mBAAA;EAAAE,WAAA,EAAAA,CAAA,KAAAA;AAAA;AACAC,MAAA,CAAAC,OAAA,GAAgCT,YAAA,CAAAK,mBAAA;AAEhC,IAAAK,UAAA,GAAAC,OAA2B;AAMpB,IAAAC,iBAIL,GAAAD,OAAa;AAGb,SAAAJ,YAAAM,KAAA;EACA,IAAAH,UAAO,CAAAI,eAAA,EAAAF,iBAAA,CAAAG,UAAA;EACT,OAAAF,KAAA","ignoreList":[]}
|
package/dist/cjs/index.cjs
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __copyProps = (to, from, except, desc) => {
|
|
6
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
7
|
-
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
8
|
-
get: () => from[key],
|
|
9
|
-
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
10
|
-
});
|
|
11
|
-
}
|
|
12
|
-
return to;
|
|
13
|
-
};
|
|
14
|
-
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
15
|
-
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
16
|
-
value: true
|
|
17
|
-
}), mod);
|
|
18
|
-
var index_exports = {};
|
|
19
|
-
module.exports = __toCommonJS(index_exports);
|
|
20
|
-
__reExport(index_exports, require("./createMedia.cjs"), module.exports);
|
|
21
|
-
__reExport(index_exports, require("./matchMedia.cjs"), module.exports);
|
package/dist/cjs/index.native.js
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __copyProps = (to, from, except, desc) => {
|
|
8
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
9
|
-
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
10
|
-
get: () => from[key],
|
|
11
|
-
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
12
|
-
});
|
|
13
|
-
}
|
|
14
|
-
return to;
|
|
15
|
-
};
|
|
16
|
-
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
17
|
-
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
18
|
-
value: true
|
|
19
|
-
}), mod);
|
|
20
|
-
var index_exports = {};
|
|
21
|
-
module.exports = __toCommonJS(index_exports);
|
|
22
|
-
__reExport(index_exports, require("./createMedia.native.js"), module.exports);
|
|
23
|
-
__reExport(index_exports, require("./matchMedia.native.js"), module.exports);
|
|
24
|
-
//# sourceMappingURL=index.native.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","index_exports","module","exports","__reExport","require"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,aAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAP,YAAc,CAAAK,aAAA;AACdG,UAAA,CAAAH,aAAA,EAAcI,OAAA,6BADdH,MAAA,CAAAC,OAAA","ignoreList":[]}
|