browser-haptic 1.0.11 → 1.0.13
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/haptic.d.ts.map +1 -1
- package/dist/haptic.js +17 -6
- package/package.json +1 -1
package/dist/haptic.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"haptic.d.ts","sourceRoot":"","sources":["../src/haptic.ts"],"names":[],"mappings":"AA4BA,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,MAAM,EAAE,CAAC;AAGrE,oBAAY,YAAY;IACtB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,KAAK,UAAU;CAChB;AAUD,MAAM,WAAW,MAAM;IACrB,YAAY,IAAI,OAAO,CAAC;IACxB,WAAW,IAAI,OAAO,CAAC;IACvB,OAAO,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACzC,KAAK,IAAI,IAAI,CAAC;IACd,MAAM,IAAI,IAAI,CAAC;IACf,KAAK,IAAI,IAAI,CAAC;IACd,OAAO,IAAI,IAAI,CAAC;IAChB,OAAO,IAAI,IAAI,CAAC;IAChB,KAAK,IAAI,IAAI,CAAC;CACf;
|
|
1
|
+
{"version":3,"file":"haptic.d.ts","sourceRoot":"","sources":["../src/haptic.ts"],"names":[],"mappings":"AA4BA,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,MAAM,EAAE,CAAC;AAGrE,oBAAY,YAAY;IACtB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,KAAK,UAAU;CAChB;AAUD,MAAM,WAAW,MAAM;IACrB,YAAY,IAAI,OAAO,CAAC;IACxB,WAAW,IAAI,OAAO,CAAC;IACvB,OAAO,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACzC,KAAK,IAAI,IAAI,CAAC;IACd,MAAM,IAAI,IAAI,CAAC;IACf,KAAK,IAAI,IAAI,CAAC;IACd,OAAO,IAAI,IAAI,CAAC;IAChB,OAAO,IAAI,IAAI,CAAC;IAChB,KAAK,IAAI,IAAI,CAAC;CACf;AAmHD,eAAO,MAAM,YAAY,QAAO,OAA4B,CAAC;AAmB7D,eAAO,MAAM,WAAW,QAAO,OAG9B,CAAC;AAoBF,eAAO,MAAM,OAAO,GAAI,SAAS,gBAAgB,KAAG,IAAwB,CAAC;AAQ7E,eAAO,MAAM,KAAK,QAAO,IAA8C,CAAC;AAQxE,eAAO,MAAM,MAAM,QAAO,IAA+C,CAAC;AAQ1E,eAAO,MAAM,KAAK,QAAO,IAA8C,CAAC;AAQxE,eAAO,MAAM,OAAO,QAAO,IAAgD,CAAC;AAQ5E,eAAO,MAAM,OAAO,QAAO,IAAgD,CAAC;AAQ5E,eAAO,MAAM,KAAK,QAAO,IAA8C,CAAC;AAExE,QAAA,MAAM,MAAM,EAAE,MAUb,CAAC;AAiBF,eAAe,MAAM,CAAC"}
|
package/dist/haptic.js
CHANGED
|
@@ -15,6 +15,14 @@ const VIBRATION_PRESETS = new Map([
|
|
|
15
15
|
[HapticPreset.Warning, [40, 30, 40]],
|
|
16
16
|
[HapticPreset.Error, [50, 30, 50, 30, 50]],
|
|
17
17
|
]);
|
|
18
|
+
const ANDROID_VIBRATION_PRESETS = new Map([
|
|
19
|
+
[HapticPreset.Light, 400],
|
|
20
|
+
[HapticPreset.Medium, 400],
|
|
21
|
+
[HapticPreset.Heavy, 500],
|
|
22
|
+
[HapticPreset.Success, [400, 80, 400]],
|
|
23
|
+
[HapticPreset.Warning, [400, 60, 400]],
|
|
24
|
+
[HapticPreset.Error, [400, 50, 400, 50, 400]],
|
|
25
|
+
]);
|
|
18
26
|
const IOS_PRESETS = new Map([
|
|
19
27
|
[HapticPreset.Light, [15, 40, 15]],
|
|
20
28
|
[HapticPreset.Medium, [15, 35, 15, 35, 15]],
|
|
@@ -23,8 +31,11 @@ const IOS_PRESETS = new Map([
|
|
|
23
31
|
[HapticPreset.Warning, [40, 30, 40]],
|
|
24
32
|
[HapticPreset.Error, [50, 30, 50, 30, 50]],
|
|
25
33
|
]);
|
|
34
|
+
const isAndroid = () => typeof navigator !== "undefined" && /Android/i.test(navigator.userAgent ?? "");
|
|
26
35
|
const getPreset = (variant) => {
|
|
27
|
-
|
|
36
|
+
if (!hasVibrationAPI())
|
|
37
|
+
return IOS_PRESETS.get(variant);
|
|
38
|
+
const presets = isAndroid() ? ANDROID_VIBRATION_PRESETS : VIBRATION_PRESETS;
|
|
28
39
|
return presets.get(variant);
|
|
29
40
|
};
|
|
30
41
|
const hasVibrationAPI = () => typeof navigator !== "undefined" && typeof navigator.vibrate === "function";
|
|
@@ -52,18 +63,18 @@ const toPatternArray = (pattern) => (Array.isArray(pattern) ? [...pattern] : [pa
|
|
|
52
63
|
const trigger = (pattern) => {
|
|
53
64
|
if (hasVibrationAPI()) {
|
|
54
65
|
try {
|
|
55
|
-
const
|
|
56
|
-
|
|
66
|
+
const normalized = toPatternArray(pattern);
|
|
67
|
+
const payload = normalized.length === 1 ? normalized[0] : normalized;
|
|
68
|
+
navigator.vibrate(payload);
|
|
57
69
|
}
|
|
58
70
|
catch {
|
|
59
71
|
}
|
|
60
72
|
return;
|
|
61
73
|
}
|
|
62
74
|
const arr = toPatternArray(pattern);
|
|
75
|
+
const pairs = Array.from({ length: Math.ceil(arr.length / 2) }, (_, i) => [arr[i * 2] ?? 0, arr[i * 2 + 1] ?? 0]);
|
|
63
76
|
let delay = 0;
|
|
64
|
-
for (
|
|
65
|
-
const vibrateMs = arr[i] ?? 0;
|
|
66
|
-
const pauseMs = arr[i + 1] ?? 0;
|
|
77
|
+
for (const [vibrateMs, pauseMs] of pairs) {
|
|
67
78
|
if (vibrateMs > 0)
|
|
68
79
|
setTimeout(fireIOSSwitch, delay);
|
|
69
80
|
delay += vibrateMs + pauseMs;
|
package/package.json
CHANGED