@symbiote-native/sensors 0.1.0
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/LICENSE +21 -0
- package/README.md +138 -0
- package/build/angular/index.d.ts +16 -0
- package/build/angular/index.js +12 -0
- package/build/angular/services/accelerometer.service/index.d.ts +6 -0
- package/build/angular/services/accelerometer.service/index.js +81 -0
- package/build/angular/services/barometer.service/index.d.ts +6 -0
- package/build/angular/services/barometer.service/index.js +81 -0
- package/build/angular/services/device-motion.service/index.d.ts +6 -0
- package/build/angular/services/device-motion.service/index.js +81 -0
- package/build/angular/services/gyroscope.service/index.d.ts +6 -0
- package/build/angular/services/gyroscope.service/index.js +81 -0
- package/build/angular/services/light-sensor.service/index.d.ts +6 -0
- package/build/angular/services/light-sensor.service/index.js +81 -0
- package/build/angular/services/magnetometer-uncalibrated.service/index.d.ts +6 -0
- package/build/angular/services/magnetometer-uncalibrated.service/index.js +81 -0
- package/build/angular/services/magnetometer.service/index.d.ts +6 -0
- package/build/angular/services/magnetometer.service/index.js +81 -0
- package/build/angular/services/pedometer.service/index.d.ts +6 -0
- package/build/angular/services/pedometer.service/index.js +76 -0
- package/build/core/accelerometer.d.ts +10 -0
- package/build/core/accelerometer.js +6 -0
- package/build/core/barometer.d.ts +9 -0
- package/build/core/barometer.js +6 -0
- package/build/core/device-motion.d.ts +40 -0
- package/build/core/device-motion.js +21 -0
- package/build/core/device-sensor.d.ts +27 -0
- package/build/core/device-sensor.js +61 -0
- package/build/core/gyroscope.d.ts +10 -0
- package/build/core/gyroscope.js +6 -0
- package/build/core/index.d.ts +11 -0
- package/build/core/index.js +10 -0
- package/build/core/light-sensor.d.ts +8 -0
- package/build/core/light-sensor.js +6 -0
- package/build/core/magnetometer-uncalibrated.d.ts +10 -0
- package/build/core/magnetometer-uncalibrated.js +6 -0
- package/build/core/magnetometer.d.ts +10 -0
- package/build/core/magnetometer.js +6 -0
- package/build/core/native/exponent-accelerometer.d.ts +3 -0
- package/build/core/native/exponent-accelerometer.js +3 -0
- package/build/core/native/exponent-barometer.d.ts +3 -0
- package/build/core/native/exponent-barometer.js +3 -0
- package/build/core/native/exponent-device-motion.d.ts +7 -0
- package/build/core/native/exponent-device-motion.js +3 -0
- package/build/core/native/exponent-gyroscope.d.ts +3 -0
- package/build/core/native/exponent-gyroscope.js +3 -0
- package/build/core/native/exponent-light-sensor/index.android.d.ts +3 -0
- package/build/core/native/exponent-light-sensor/index.android.js +3 -0
- package/build/core/native/exponent-light-sensor/index.d.ts +1 -0
- package/build/core/native/exponent-light-sensor/index.ios.d.ts +3 -0
- package/build/core/native/exponent-light-sensor/index.ios.js +6 -0
- package/build/core/native/exponent-light-sensor/index.js +5 -0
- package/build/core/native/exponent-magnetometer-uncalibrated.d.ts +3 -0
- package/build/core/native/exponent-magnetometer-uncalibrated.js +3 -0
- package/build/core/native/exponent-magnetometer.d.ts +3 -0
- package/build/core/native/exponent-magnetometer.js +3 -0
- package/build/core/native/exponent-pedometer.d.ts +10 -0
- package/build/core/native/exponent-pedometer.js +3 -0
- package/build/core/pedometer.d.ts +10 -0
- package/build/core/pedometer.js +44 -0
- package/build/react/hooks/use-accelerometer/index.d.ts +2 -0
- package/build/react/hooks/use-accelerometer/index.js +17 -0
- package/build/react/hooks/use-barometer/index.d.ts +2 -0
- package/build/react/hooks/use-barometer/index.js +17 -0
- package/build/react/hooks/use-device-motion/index.d.ts +2 -0
- package/build/react/hooks/use-device-motion/index.js +17 -0
- package/build/react/hooks/use-gyroscope/index.d.ts +2 -0
- package/build/react/hooks/use-gyroscope/index.js +17 -0
- package/build/react/hooks/use-light-sensor/index.d.ts +2 -0
- package/build/react/hooks/use-light-sensor/index.js +17 -0
- package/build/react/hooks/use-magnetometer/index.d.ts +2 -0
- package/build/react/hooks/use-magnetometer/index.js +17 -0
- package/build/react/hooks/use-magnetometer-uncalibrated/index.d.ts +2 -0
- package/build/react/hooks/use-magnetometer-uncalibrated/index.js +17 -0
- package/build/react/hooks/use-pedometer/index.d.ts +2 -0
- package/build/react/hooks/use-pedometer/index.js +14 -0
- package/build/react/index.d.ts +16 -0
- package/build/react/index.js +14 -0
- package/build/vue/composables/use-accelerometer/index.d.ts +3 -0
- package/build/vue/composables/use-accelerometer/index.js +25 -0
- package/build/vue/composables/use-barometer/index.d.ts +3 -0
- package/build/vue/composables/use-barometer/index.js +25 -0
- package/build/vue/composables/use-device-motion/index.d.ts +3 -0
- package/build/vue/composables/use-device-motion/index.js +25 -0
- package/build/vue/composables/use-gyroscope/index.d.ts +3 -0
- package/build/vue/composables/use-gyroscope/index.js +25 -0
- package/build/vue/composables/use-light-sensor/index.d.ts +3 -0
- package/build/vue/composables/use-light-sensor/index.js +25 -0
- package/build/vue/composables/use-magnetometer/index.d.ts +3 -0
- package/build/vue/composables/use-magnetometer/index.js +25 -0
- package/build/vue/composables/use-magnetometer-uncalibrated/index.d.ts +3 -0
- package/build/vue/composables/use-magnetometer-uncalibrated/index.js +25 -0
- package/build/vue/composables/use-pedometer/index.d.ts +3 -0
- package/build/vue/composables/use-pedometer/index.js +20 -0
- package/build/vue/index.d.ts +16 -0
- package/build/vue/index.js +14 -0
- package/build-ngc/angular/index.d.ts +16 -0
- package/build-ngc/angular/index.js +13 -0
- package/build-ngc/angular/index.js.map +1 -0
- package/build-ngc/angular/services/accelerometer.service/index.d.ts +9 -0
- package/build-ngc/angular/services/accelerometer.service/index.js +40 -0
- package/build-ngc/angular/services/accelerometer.service/index.js.map +1 -0
- package/build-ngc/angular/services/barometer.service/index.d.ts +9 -0
- package/build-ngc/angular/services/barometer.service/index.js +40 -0
- package/build-ngc/angular/services/barometer.service/index.js.map +1 -0
- package/build-ngc/angular/services/device-motion.service/index.d.ts +9 -0
- package/build-ngc/angular/services/device-motion.service/index.js +40 -0
- package/build-ngc/angular/services/device-motion.service/index.js.map +1 -0
- package/build-ngc/angular/services/gyroscope.service/index.d.ts +9 -0
- package/build-ngc/angular/services/gyroscope.service/index.js +40 -0
- package/build-ngc/angular/services/gyroscope.service/index.js.map +1 -0
- package/build-ngc/angular/services/light-sensor.service/index.d.ts +9 -0
- package/build-ngc/angular/services/light-sensor.service/index.js +40 -0
- package/build-ngc/angular/services/light-sensor.service/index.js.map +1 -0
- package/build-ngc/angular/services/magnetometer-uncalibrated.service/index.d.ts +9 -0
- package/build-ngc/angular/services/magnetometer-uncalibrated.service/index.js +40 -0
- package/build-ngc/angular/services/magnetometer-uncalibrated.service/index.js.map +1 -0
- package/build-ngc/angular/services/magnetometer.service/index.d.ts +9 -0
- package/build-ngc/angular/services/magnetometer.service/index.js +40 -0
- package/build-ngc/angular/services/magnetometer.service/index.js.map +1 -0
- package/build-ngc/angular/services/pedometer.service/index.d.ts +9 -0
- package/build-ngc/angular/services/pedometer.service/index.js +35 -0
- package/build-ngc/angular/services/pedometer.service/index.js.map +1 -0
- package/build-ngc/core/accelerometer.d.ts +10 -0
- package/build-ngc/core/accelerometer.js +7 -0
- package/build-ngc/core/accelerometer.js.map +1 -0
- package/build-ngc/core/barometer.d.ts +9 -0
- package/build-ngc/core/barometer.js +7 -0
- package/build-ngc/core/barometer.js.map +1 -0
- package/build-ngc/core/device-motion.d.ts +40 -0
- package/build-ngc/core/device-motion.js +22 -0
- package/build-ngc/core/device-motion.js.map +1 -0
- package/build-ngc/core/device-sensor.d.ts +27 -0
- package/build-ngc/core/device-sensor.js +62 -0
- package/build-ngc/core/device-sensor.js.map +1 -0
- package/build-ngc/core/gyroscope.d.ts +10 -0
- package/build-ngc/core/gyroscope.js +7 -0
- package/build-ngc/core/gyroscope.js.map +1 -0
- package/build-ngc/core/index.d.ts +11 -0
- package/build-ngc/core/index.js +11 -0
- package/build-ngc/core/index.js.map +1 -0
- package/build-ngc/core/light-sensor.d.ts +8 -0
- package/build-ngc/core/light-sensor.js +7 -0
- package/build-ngc/core/light-sensor.js.map +1 -0
- package/build-ngc/core/magnetometer-uncalibrated.d.ts +10 -0
- package/build-ngc/core/magnetometer-uncalibrated.js +7 -0
- package/build-ngc/core/magnetometer-uncalibrated.js.map +1 -0
- package/build-ngc/core/magnetometer.d.ts +10 -0
- package/build-ngc/core/magnetometer.js +7 -0
- package/build-ngc/core/magnetometer.js.map +1 -0
- package/build-ngc/core/native/exponent-accelerometer.d.ts +3 -0
- package/build-ngc/core/native/exponent-accelerometer.js +4 -0
- package/build-ngc/core/native/exponent-accelerometer.js.map +1 -0
- package/build-ngc/core/native/exponent-barometer.d.ts +3 -0
- package/build-ngc/core/native/exponent-barometer.js +4 -0
- package/build-ngc/core/native/exponent-barometer.js.map +1 -0
- package/build-ngc/core/native/exponent-device-motion.d.ts +7 -0
- package/build-ngc/core/native/exponent-device-motion.js +4 -0
- package/build-ngc/core/native/exponent-device-motion.js.map +1 -0
- package/build-ngc/core/native/exponent-gyroscope.d.ts +3 -0
- package/build-ngc/core/native/exponent-gyroscope.js +4 -0
- package/build-ngc/core/native/exponent-gyroscope.js.map +1 -0
- package/build-ngc/core/native/exponent-light-sensor/index.android.d.ts +3 -0
- package/build-ngc/core/native/exponent-light-sensor/index.android.js +4 -0
- package/build-ngc/core/native/exponent-light-sensor/index.android.js.map +1 -0
- package/build-ngc/core/native/exponent-light-sensor/index.d.ts +1 -0
- package/build-ngc/core/native/exponent-light-sensor/index.ios.d.ts +3 -0
- package/build-ngc/core/native/exponent-light-sensor/index.ios.js +7 -0
- package/build-ngc/core/native/exponent-light-sensor/index.ios.js.map +1 -0
- package/build-ngc/core/native/exponent-light-sensor/index.js +6 -0
- package/build-ngc/core/native/exponent-light-sensor/index.js.map +1 -0
- package/build-ngc/core/native/exponent-magnetometer-uncalibrated.d.ts +3 -0
- package/build-ngc/core/native/exponent-magnetometer-uncalibrated.js +4 -0
- package/build-ngc/core/native/exponent-magnetometer-uncalibrated.js.map +1 -0
- package/build-ngc/core/native/exponent-magnetometer.d.ts +3 -0
- package/build-ngc/core/native/exponent-magnetometer.js +4 -0
- package/build-ngc/core/native/exponent-magnetometer.js.map +1 -0
- package/build-ngc/core/native/exponent-pedometer.d.ts +10 -0
- package/build-ngc/core/native/exponent-pedometer.js +4 -0
- package/build-ngc/core/native/exponent-pedometer.js.map +1 -0
- package/build-ngc/core/pedometer.d.ts +10 -0
- package/build-ngc/core/pedometer.js +45 -0
- package/build-ngc/core/pedometer.js.map +1 -0
- package/package.json +106 -0
- package/src/angular/index.ts +26 -0
- package/src/angular/services/accelerometer.service/accelerometer.service.test.ts +118 -0
- package/src/angular/services/accelerometer.service/index.ts +39 -0
- package/src/angular/services/barometer.service/barometer.service.test.ts +122 -0
- package/src/angular/services/barometer.service/index.ts +39 -0
- package/src/angular/services/device-motion.service/device-motion.service.test.ts +125 -0
- package/src/angular/services/device-motion.service/index.ts +39 -0
- package/src/angular/services/gyroscope.service/gyroscope.service.test.ts +118 -0
- package/src/angular/services/gyroscope.service/index.ts +39 -0
- package/src/angular/services/light-sensor.service/index.ts +39 -0
- package/src/angular/services/light-sensor.service/light-sensor.service.test.ts +118 -0
- package/src/angular/services/magnetometer-uncalibrated.service/index.ts +39 -0
- package/src/angular/services/magnetometer-uncalibrated.service/magnetometer-uncalibrated.service.test.ts +123 -0
- package/src/angular/services/magnetometer.service/index.ts +39 -0
- package/src/angular/services/magnetometer.service/magnetometer.service.test.ts +118 -0
- package/src/angular/services/pedometer.service/index.ts +34 -0
- package/src/angular/services/pedometer.service/pedometer.service.test.ts +86 -0
- package/src/core/accelerometer.test.ts +49 -0
- package/src/core/accelerometer.ts +19 -0
- package/src/core/barometer.test.ts +46 -0
- package/src/core/barometer.ts +15 -0
- package/src/core/device-motion.test.ts +60 -0
- package/src/core/device-motion.ts +41 -0
- package/src/core/device-sensor.test.ts +76 -0
- package/src/core/device-sensor.ts +95 -0
- package/src/core/gyroscope.test.ts +46 -0
- package/src/core/gyroscope.ts +16 -0
- package/src/core/index.ts +37 -0
- package/src/core/light-sensor.test.ts +49 -0
- package/src/core/light-sensor.ts +18 -0
- package/src/core/magnetometer-uncalibrated.test.ts +49 -0
- package/src/core/magnetometer-uncalibrated.ts +20 -0
- package/src/core/magnetometer.test.ts +49 -0
- package/src/core/magnetometer.ts +19 -0
- package/src/core/native/exponent-accelerometer.ts +9 -0
- package/src/core/native/exponent-barometer.ts +9 -0
- package/src/core/native/exponent-device-motion.ts +15 -0
- package/src/core/native/exponent-gyroscope.ts +9 -0
- package/src/core/native/exponent-light-sensor/index.android.ts +9 -0
- package/src/core/native/exponent-light-sensor/index.ios.ts +12 -0
- package/src/core/native/exponent-light-sensor/index.ts +5 -0
- package/src/core/native/exponent-magnetometer-uncalibrated.ts +9 -0
- package/src/core/native/exponent-magnetometer.ts +9 -0
- package/src/core/native/exponent-pedometer.ts +17 -0
- package/src/core/pedometer.test.ts +118 -0
- package/src/core/pedometer.ts +62 -0
- package/src/react/hooks/use-accelerometer/index.ts +21 -0
- package/src/react/hooks/use-accelerometer/use-accelerometer.test.tsx +81 -0
- package/src/react/hooks/use-barometer/index.ts +21 -0
- package/src/react/hooks/use-barometer/use-barometer.test.tsx +83 -0
- package/src/react/hooks/use-device-motion/index.ts +21 -0
- package/src/react/hooks/use-device-motion/use-device-motion.test.tsx +88 -0
- package/src/react/hooks/use-gyroscope/index.ts +21 -0
- package/src/react/hooks/use-gyroscope/use-gyroscope.test.tsx +79 -0
- package/src/react/hooks/use-light-sensor/index.ts +21 -0
- package/src/react/hooks/use-light-sensor/use-light-sensor.test.tsx +79 -0
- package/src/react/hooks/use-magnetometer/index.ts +21 -0
- package/src/react/hooks/use-magnetometer/use-magnetometer.test.tsx +81 -0
- package/src/react/hooks/use-magnetometer-uncalibrated/index.ts +23 -0
- package/src/react/hooks/use-magnetometer-uncalibrated/use-magnetometer-uncalibrated.test.tsx +88 -0
- package/src/react/hooks/use-pedometer/index.ts +17 -0
- package/src/react/hooks/use-pedometer/use-pedometer.test.tsx +69 -0
- package/src/react/index.ts +29 -0
- package/src/vue/composables/use-accelerometer/index.ts +34 -0
- package/src/vue/composables/use-accelerometer/use-accelerometer.test.ts +96 -0
- package/src/vue/composables/use-barometer/index.ts +30 -0
- package/src/vue/composables/use-barometer/use-barometer.test.ts +100 -0
- package/src/vue/composables/use-device-motion/index.ts +30 -0
- package/src/vue/composables/use-device-motion/use-device-motion.test.ts +104 -0
- package/src/vue/composables/use-gyroscope/index.ts +30 -0
- package/src/vue/composables/use-gyroscope/use-gyroscope.test.ts +96 -0
- package/src/vue/composables/use-light-sensor/index.ts +30 -0
- package/src/vue/composables/use-light-sensor/use-light-sensor.test.ts +96 -0
- package/src/vue/composables/use-magnetometer/index.ts +30 -0
- package/src/vue/composables/use-magnetometer/use-magnetometer.test.ts +96 -0
- package/src/vue/composables/use-magnetometer-uncalibrated/index.ts +36 -0
- package/src/vue/composables/use-magnetometer-uncalibrated/use-magnetometer-uncalibrated.test.ts +103 -0
- package/src/vue/composables/use-pedometer/index.ts +25 -0
- package/src/vue/composables/use-pedometer/use-pedometer.test.ts +77 -0
- package/src/vue/index.ts +29 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type Signal } from '@angular/core';
|
|
2
|
+
import { type IMagnetometerUncalibratedMeasurement } from '../../../core';
|
|
3
|
+
export declare class MagnetometerUncalibratedService {
|
|
4
|
+
private readonly injector;
|
|
5
|
+
connect(updateIntervalMs?: number): Signal<IMagnetometerUncalibratedMeasurement | null>;
|
|
6
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
2
|
+
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
3
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
4
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
5
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
6
|
+
var _, done = false;
|
|
7
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
8
|
+
var context = {};
|
|
9
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
10
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
11
|
+
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
|
12
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
13
|
+
if (kind === "accessor") {
|
|
14
|
+
if (result === void 0) continue;
|
|
15
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
16
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
|
17
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
|
18
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
|
19
|
+
}
|
|
20
|
+
else if (_ = accept(result)) {
|
|
21
|
+
if (kind === "field") initializers.unshift(_);
|
|
22
|
+
else descriptor[key] = _;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
26
|
+
done = true;
|
|
27
|
+
};
|
|
28
|
+
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
29
|
+
var useValue = arguments.length > 2;
|
|
30
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
31
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
32
|
+
}
|
|
33
|
+
return useValue ? value : void 0;
|
|
34
|
+
};
|
|
35
|
+
import { effect, inject, Injectable, Injector, signal } from '@angular/core';
|
|
36
|
+
import { MagnetometerUncalibrated } from '../../../core/index.js';
|
|
37
|
+
// Angular twin of React's `useMagnetometerUncalibrated` hook and Vue's
|
|
38
|
+
// `useMagnetometerUncalibrated` composable. Angular has no per-instance hook — state and
|
|
39
|
+
// lifecycle live in DI instead, so `connect()` stands in for the hook's role: call it ONCE
|
|
40
|
+
// (typically from a component's field initializer, inside an injection context).
|
|
41
|
+
//
|
|
42
|
+
// readonly measurement = inject(MagnetometerUncalibratedService).connect();
|
|
43
|
+
// // template: {{ measurement()?.x }}
|
|
44
|
+
//
|
|
45
|
+
// Unlike HideAnimationService.connect(), there is no per-render config to re-sync — the
|
|
46
|
+
// subscription doesn't depend on anything the caller's own signals could change between
|
|
47
|
+
// renders — so a single effect() that subscribes once and cleans up once is enough; no
|
|
48
|
+
// `updateConfig`-style effect that re-runs on every read is needed here.
|
|
49
|
+
let MagnetometerUncalibratedService = (() => {
|
|
50
|
+
let _classDecorators = [Injectable({ providedIn: 'root' })];
|
|
51
|
+
let _classDescriptor;
|
|
52
|
+
let _classExtraInitializers = [];
|
|
53
|
+
let _classThis;
|
|
54
|
+
var MagnetometerUncalibratedService = class {
|
|
55
|
+
static { _classThis = this; }
|
|
56
|
+
static {
|
|
57
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
58
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
59
|
+
MagnetometerUncalibratedService = _classThis = _classDescriptor.value;
|
|
60
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
61
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
62
|
+
}
|
|
63
|
+
// Captured in the constructor (itself always run inside an injection context by Angular's
|
|
64
|
+
// own DI) so `connect()` can create an `effect()` even when called from plain field-initializer
|
|
65
|
+
// code that is not, on its own, an active injection context — mirrors HideAnimationService.
|
|
66
|
+
injector = inject(Injector);
|
|
67
|
+
connect(updateIntervalMs) {
|
|
68
|
+
const measurement = signal(null);
|
|
69
|
+
effect(onCleanup => {
|
|
70
|
+
if (updateIntervalMs !== undefined) {
|
|
71
|
+
MagnetometerUncalibrated.setUpdateInterval(updateIntervalMs);
|
|
72
|
+
}
|
|
73
|
+
const subscription = MagnetometerUncalibrated.addListener(next => measurement.set(next));
|
|
74
|
+
onCleanup(() => subscription.remove());
|
|
75
|
+
}, { injector: this.injector });
|
|
76
|
+
return measurement.asReadonly();
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
return MagnetometerUncalibratedService = _classThis;
|
|
80
|
+
})();
|
|
81
|
+
export { MagnetometerUncalibratedService };
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
2
|
+
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
3
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
4
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
5
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
6
|
+
var _, done = false;
|
|
7
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
8
|
+
var context = {};
|
|
9
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
10
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
11
|
+
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
|
12
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
13
|
+
if (kind === "accessor") {
|
|
14
|
+
if (result === void 0) continue;
|
|
15
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
16
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
|
17
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
|
18
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
|
19
|
+
}
|
|
20
|
+
else if (_ = accept(result)) {
|
|
21
|
+
if (kind === "field") initializers.unshift(_);
|
|
22
|
+
else descriptor[key] = _;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
26
|
+
done = true;
|
|
27
|
+
};
|
|
28
|
+
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
29
|
+
var useValue = arguments.length > 2;
|
|
30
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
31
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
32
|
+
}
|
|
33
|
+
return useValue ? value : void 0;
|
|
34
|
+
};
|
|
35
|
+
import { effect, inject, Injectable, Injector, signal } from '@angular/core';
|
|
36
|
+
import { Magnetometer } from '../../../core/index.js';
|
|
37
|
+
// Angular twin of React's `useMagnetometer` hook and Vue's `useMagnetometer` composable.
|
|
38
|
+
// Angular has no per-instance hook — state and lifecycle live in DI instead, so `connect()`
|
|
39
|
+
// stands in for the hook's role: call it ONCE (typically from a component's field initializer,
|
|
40
|
+
// inside an injection context).
|
|
41
|
+
//
|
|
42
|
+
// readonly measurement = inject(MagnetometerService).connect();
|
|
43
|
+
// // template: {{ measurement()?.x }}
|
|
44
|
+
//
|
|
45
|
+
// Unlike HideAnimationService.connect(), there is no per-render config to re-sync — the
|
|
46
|
+
// subscription doesn't depend on anything the caller's own signals could change between
|
|
47
|
+
// renders — so a single effect() that subscribes once and cleans up once is enough; no
|
|
48
|
+
// `updateConfig`-style effect that re-runs on every read is needed here.
|
|
49
|
+
let MagnetometerService = (() => {
|
|
50
|
+
let _classDecorators = [Injectable({ providedIn: 'root' })];
|
|
51
|
+
let _classDescriptor;
|
|
52
|
+
let _classExtraInitializers = [];
|
|
53
|
+
let _classThis;
|
|
54
|
+
var MagnetometerService = class {
|
|
55
|
+
static { _classThis = this; }
|
|
56
|
+
static {
|
|
57
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
58
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
59
|
+
MagnetometerService = _classThis = _classDescriptor.value;
|
|
60
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
61
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
62
|
+
}
|
|
63
|
+
// Captured in the constructor (itself always run inside an injection context by Angular's
|
|
64
|
+
// own DI) so `connect()` can create an `effect()` even when called from plain field-initializer
|
|
65
|
+
// code that is not, on its own, an active injection context — mirrors HideAnimationService.
|
|
66
|
+
injector = inject(Injector);
|
|
67
|
+
connect(updateIntervalMs) {
|
|
68
|
+
const measurement = signal(null);
|
|
69
|
+
effect(onCleanup => {
|
|
70
|
+
if (updateIntervalMs !== undefined) {
|
|
71
|
+
Magnetometer.setUpdateInterval(updateIntervalMs);
|
|
72
|
+
}
|
|
73
|
+
const subscription = Magnetometer.addListener(next => measurement.set(next));
|
|
74
|
+
onCleanup(() => subscription.remove());
|
|
75
|
+
}, { injector: this.injector });
|
|
76
|
+
return measurement.asReadonly();
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
return MagnetometerService = _classThis;
|
|
80
|
+
})();
|
|
81
|
+
export { MagnetometerService };
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
2
|
+
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
3
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
4
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
5
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
6
|
+
var _, done = false;
|
|
7
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
8
|
+
var context = {};
|
|
9
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
10
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
11
|
+
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
|
12
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
13
|
+
if (kind === "accessor") {
|
|
14
|
+
if (result === void 0) continue;
|
|
15
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
16
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
|
17
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
|
18
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
|
19
|
+
}
|
|
20
|
+
else if (_ = accept(result)) {
|
|
21
|
+
if (kind === "field") initializers.unshift(_);
|
|
22
|
+
else descriptor[key] = _;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
26
|
+
done = true;
|
|
27
|
+
};
|
|
28
|
+
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
29
|
+
var useValue = arguments.length > 2;
|
|
30
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
31
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
32
|
+
}
|
|
33
|
+
return useValue ? value : void 0;
|
|
34
|
+
};
|
|
35
|
+
import { effect, inject, Injectable, Injector, signal } from '@angular/core';
|
|
36
|
+
import { watchStepCount } from '../../../core/index.js';
|
|
37
|
+
// Angular twin of React's `usePedometer` hook and Vue's `usePedometer` composable. Angular has
|
|
38
|
+
// no per-instance hook — state and lifecycle live in DI instead, so `connect()` stands in for
|
|
39
|
+
// the hook's role: call it ONCE (typically from a component's field initializer, inside an
|
|
40
|
+
// injection context).
|
|
41
|
+
//
|
|
42
|
+
// readonly result = inject(PedometerService).connect();
|
|
43
|
+
// // template: {{ result()?.steps }}
|
|
44
|
+
//
|
|
45
|
+
// Unlike AccelerometerService.connect(), there is no updateIntervalMs to apply — Pedometer has
|
|
46
|
+
// no setUpdateInterval — so a single effect() that subscribes once and cleans up once is enough.
|
|
47
|
+
let PedometerService = (() => {
|
|
48
|
+
let _classDecorators = [Injectable({ providedIn: 'root' })];
|
|
49
|
+
let _classDescriptor;
|
|
50
|
+
let _classExtraInitializers = [];
|
|
51
|
+
let _classThis;
|
|
52
|
+
var PedometerService = class {
|
|
53
|
+
static { _classThis = this; }
|
|
54
|
+
static {
|
|
55
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
56
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
57
|
+
PedometerService = _classThis = _classDescriptor.value;
|
|
58
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
59
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
60
|
+
}
|
|
61
|
+
// Captured in the constructor (itself always run inside an injection context by Angular's own
|
|
62
|
+
// DI) so `connect()` can create an `effect()` even when called from plain field-initializer
|
|
63
|
+
// code that is not, on its own, an active injection context — mirrors AccelerometerService.
|
|
64
|
+
injector = inject(Injector);
|
|
65
|
+
connect() {
|
|
66
|
+
const result = signal(null);
|
|
67
|
+
effect(onCleanup => {
|
|
68
|
+
const subscription = watchStepCount(next => result.set(next));
|
|
69
|
+
onCleanup(() => subscription.remove());
|
|
70
|
+
}, { injector: this.injector });
|
|
71
|
+
return result.asReadonly();
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
return PedometerService = _classThis;
|
|
75
|
+
})();
|
|
76
|
+
export { PedometerService };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { DeviceSensor } from './device-sensor';
|
|
2
|
+
export type IAccelerometerMeasurement = {
|
|
3
|
+
x: number;
|
|
4
|
+
y: number;
|
|
5
|
+
z: number;
|
|
6
|
+
timestamp: number;
|
|
7
|
+
};
|
|
8
|
+
export declare class AccelerometerSensor extends DeviceSensor<IAccelerometerMeasurement> {
|
|
9
|
+
}
|
|
10
|
+
export declare const Accelerometer: AccelerometerSensor;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { DeviceSensor } from './device-sensor.js';
|
|
2
|
+
import { exponentAccelerometer } from './native/exponent-accelerometer.js';
|
|
3
|
+
export class AccelerometerSensor extends DeviceSensor {
|
|
4
|
+
}
|
|
5
|
+
const ACCELEROMETER_DID_UPDATE_EVENT_NAME = 'accelerometerDidUpdate';
|
|
6
|
+
export const Accelerometer = new AccelerometerSensor(exponentAccelerometer, ACCELEROMETER_DID_UPDATE_EVENT_NAME);
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { DeviceSensor } from './device-sensor';
|
|
2
|
+
export type IBarometerMeasurement = {
|
|
3
|
+
pressure: number;
|
|
4
|
+
relativeAltitude?: number;
|
|
5
|
+
timestamp: number;
|
|
6
|
+
};
|
|
7
|
+
export declare class BarometerSensor extends DeviceSensor<IBarometerMeasurement> {
|
|
8
|
+
}
|
|
9
|
+
export declare const Barometer: BarometerSensor;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { DeviceSensor } from './device-sensor.js';
|
|
2
|
+
import { exponentBarometer } from './native/exponent-barometer.js';
|
|
3
|
+
export class BarometerSensor extends DeviceSensor {
|
|
4
|
+
}
|
|
5
|
+
const BAROMETER_DID_UPDATE_EVENT_NAME = 'barometerDidUpdate';
|
|
6
|
+
export const Barometer = new BarometerSensor(exponentBarometer, BAROMETER_DID_UPDATE_EVENT_NAME);
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { DeviceSensor } from './device-sensor';
|
|
2
|
+
export type IDeviceMotionMeasurement = {
|
|
3
|
+
acceleration: null | {
|
|
4
|
+
x: number;
|
|
5
|
+
y: number;
|
|
6
|
+
z: number;
|
|
7
|
+
timestamp: number;
|
|
8
|
+
};
|
|
9
|
+
accelerationIncludingGravity: {
|
|
10
|
+
x: number;
|
|
11
|
+
y: number;
|
|
12
|
+
z: number;
|
|
13
|
+
timestamp: number;
|
|
14
|
+
};
|
|
15
|
+
rotation: {
|
|
16
|
+
alpha: number;
|
|
17
|
+
beta: number;
|
|
18
|
+
gamma: number;
|
|
19
|
+
timestamp: number;
|
|
20
|
+
};
|
|
21
|
+
rotationRate: null | {
|
|
22
|
+
alpha: number;
|
|
23
|
+
beta: number;
|
|
24
|
+
gamma: number;
|
|
25
|
+
timestamp: number;
|
|
26
|
+
};
|
|
27
|
+
interval: number;
|
|
28
|
+
orientation: DeviceMotionOrientation;
|
|
29
|
+
};
|
|
30
|
+
export declare enum DeviceMotionOrientation {
|
|
31
|
+
Portrait = 0,
|
|
32
|
+
RightLandscape = 90,
|
|
33
|
+
UpsideDown = 180,
|
|
34
|
+
LeftLandscape = -90
|
|
35
|
+
}
|
|
36
|
+
export declare class DeviceMotionSensor extends DeviceSensor<IDeviceMotionMeasurement> {
|
|
37
|
+
readonly gravity: number;
|
|
38
|
+
}
|
|
39
|
+
export declare const DeviceMotion: DeviceMotionSensor;
|
|
40
|
+
export declare const gravity: number;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { DeviceSensor } from './device-sensor.js';
|
|
2
|
+
import { exponentDeviceMotion } from './native/exponent-device-motion.js';
|
|
3
|
+
// Device orientation based on screen rotation.
|
|
4
|
+
export var DeviceMotionOrientation;
|
|
5
|
+
(function (DeviceMotionOrientation) {
|
|
6
|
+
DeviceMotionOrientation[DeviceMotionOrientation["Portrait"] = 0] = "Portrait";
|
|
7
|
+
DeviceMotionOrientation[DeviceMotionOrientation["RightLandscape"] = 90] = "RightLandscape";
|
|
8
|
+
DeviceMotionOrientation[DeviceMotionOrientation["UpsideDown"] = 180] = "UpsideDown";
|
|
9
|
+
DeviceMotionOrientation[DeviceMotionOrientation["LeftLandscape"] = -90] = "LeftLandscape";
|
|
10
|
+
})(DeviceMotionOrientation || (DeviceMotionOrientation = {}));
|
|
11
|
+
export class DeviceMotionSensor extends DeviceSensor {
|
|
12
|
+
// Standard gravitational acceleration for Earth (m/s^2), read off the native module rather
|
|
13
|
+
// than hardcoded — mirrors upstream's dual exposure as both an instance property and the
|
|
14
|
+
// standalone `gravity` export below.
|
|
15
|
+
gravity = exponentDeviceMotion.Gravity;
|
|
16
|
+
}
|
|
17
|
+
const DEVICE_MOTION_DID_UPDATE_EVENT_NAME = 'deviceMotionDidUpdate';
|
|
18
|
+
export const DeviceMotion = new DeviceMotionSensor(exponentDeviceMotion, DEVICE_MOTION_DID_UPDATE_EVENT_NAME);
|
|
19
|
+
// Standalone export mirroring the instance property above, for callers that only need the
|
|
20
|
+
// constant and not the full sensor singleton.
|
|
21
|
+
export const gravity = exponentDeviceMotion.Gravity;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { PermissionStatus, type EventSubscription, type PermissionExpiration, type PermissionResponse } from 'expo-modules-core';
|
|
2
|
+
export type IListener<Measurement> = (measurement: Measurement) => void;
|
|
3
|
+
export type INativeSensorModule<Measurement> = {
|
|
4
|
+
addListener(eventName: string, listener: IListener<Measurement>): EventSubscription;
|
|
5
|
+
listenerCount(eventName: string): number;
|
|
6
|
+
removeAllListeners(eventName: string): void;
|
|
7
|
+
setUpdateInterval?(intervalMs: number): void;
|
|
8
|
+
isAvailableAsync?(): Promise<boolean>;
|
|
9
|
+
getPermissionsAsync?(): Promise<PermissionResponse>;
|
|
10
|
+
requestPermissionsAsync?(): Promise<PermissionResponse>;
|
|
11
|
+
};
|
|
12
|
+
export declare class DeviceSensor<Measurement> {
|
|
13
|
+
readonly nativeModule: INativeSensorModule<Measurement>;
|
|
14
|
+
readonly nativeEventName: string;
|
|
15
|
+
constructor(nativeModule: INativeSensorModule<Measurement>, nativeEventName: string);
|
|
16
|
+
addListener(listener: IListener<Measurement>): EventSubscription;
|
|
17
|
+
hasListeners(): boolean;
|
|
18
|
+
getListenerCount(): number;
|
|
19
|
+
removeAllListeners(): void;
|
|
20
|
+
removeSubscription(subscription: EventSubscription): void;
|
|
21
|
+
setUpdateInterval(intervalMs: number): void;
|
|
22
|
+
isAvailableAsync(): Promise<boolean>;
|
|
23
|
+
getPermissionsAsync(): Promise<PermissionResponse>;
|
|
24
|
+
requestPermissionsAsync(): Promise<PermissionResponse>;
|
|
25
|
+
}
|
|
26
|
+
export { PermissionStatus };
|
|
27
|
+
export type { EventSubscription, PermissionExpiration, PermissionResponse };
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
// expo-sensors' own DeviceSensor imports PermissionResponse/PermissionExpiration/PermissionStatus
|
|
2
|
+
// from the `expo` meta-package. We never depend on `expo` itself (it drags in a second
|
|
3
|
+
// Metro/babel pipeline — see the symbiote-expo-native-module skill) so this pulls the same
|
|
4
|
+
// three exports straight from expo-modules-core, which is where `expo` re-exports them from.
|
|
5
|
+
import { Platform, PermissionStatus, } from 'expo-modules-core';
|
|
6
|
+
const DEFAULT_PERMISSION_RESPONSE = {
|
|
7
|
+
granted: true,
|
|
8
|
+
expires: 'never',
|
|
9
|
+
canAskAgain: true,
|
|
10
|
+
status: PermissionStatus.GRANTED,
|
|
11
|
+
};
|
|
12
|
+
export class DeviceSensor {
|
|
13
|
+
nativeModule;
|
|
14
|
+
nativeEventName;
|
|
15
|
+
constructor(nativeModule, nativeEventName) {
|
|
16
|
+
this.nativeModule = nativeModule;
|
|
17
|
+
this.nativeEventName = nativeEventName;
|
|
18
|
+
}
|
|
19
|
+
addListener(listener) {
|
|
20
|
+
return this.nativeModule.addListener(this.nativeEventName, listener);
|
|
21
|
+
}
|
|
22
|
+
hasListeners() {
|
|
23
|
+
return this.getListenerCount() > 0;
|
|
24
|
+
}
|
|
25
|
+
getListenerCount() {
|
|
26
|
+
return this.nativeModule.listenerCount(this.nativeEventName);
|
|
27
|
+
}
|
|
28
|
+
removeAllListeners() {
|
|
29
|
+
this.nativeModule.removeAllListeners(this.nativeEventName);
|
|
30
|
+
}
|
|
31
|
+
// upstream keeps this only for callers still holding a pre-subscription-object reference.
|
|
32
|
+
removeSubscription(subscription) {
|
|
33
|
+
subscription.remove();
|
|
34
|
+
}
|
|
35
|
+
setUpdateInterval(intervalMs) {
|
|
36
|
+
if (!this.nativeModule.setUpdateInterval) {
|
|
37
|
+
console.warn(`@symbiote-native/sensors: setUpdateInterval() is not supported on ${Platform.OS}`);
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
this.nativeModule.setUpdateInterval(intervalMs);
|
|
41
|
+
}
|
|
42
|
+
async isAvailableAsync() {
|
|
43
|
+
if (!this.nativeModule.isAvailableAsync) {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
return this.nativeModule.isAvailableAsync();
|
|
47
|
+
}
|
|
48
|
+
async getPermissionsAsync() {
|
|
49
|
+
if (!this.nativeModule.getPermissionsAsync) {
|
|
50
|
+
return DEFAULT_PERMISSION_RESPONSE;
|
|
51
|
+
}
|
|
52
|
+
return this.nativeModule.getPermissionsAsync();
|
|
53
|
+
}
|
|
54
|
+
async requestPermissionsAsync() {
|
|
55
|
+
if (!this.nativeModule.requestPermissionsAsync) {
|
|
56
|
+
return DEFAULT_PERMISSION_RESPONSE;
|
|
57
|
+
}
|
|
58
|
+
return this.nativeModule.requestPermissionsAsync();
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
export { PermissionStatus };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { DeviceSensor } from './device-sensor';
|
|
2
|
+
export type IGyroscopeMeasurement = {
|
|
3
|
+
x: number;
|
|
4
|
+
y: number;
|
|
5
|
+
z: number;
|
|
6
|
+
timestamp: number;
|
|
7
|
+
};
|
|
8
|
+
export declare class GyroscopeSensor extends DeviceSensor<IGyroscopeMeasurement> {
|
|
9
|
+
}
|
|
10
|
+
export declare const Gyroscope: GyroscopeSensor;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { DeviceSensor } from './device-sensor.js';
|
|
2
|
+
import { exponentGyroscope } from './native/exponent-gyroscope.js';
|
|
3
|
+
export class GyroscopeSensor extends DeviceSensor {
|
|
4
|
+
}
|
|
5
|
+
const GYROSCOPE_DID_UPDATE_EVENT_NAME = 'gyroscopeDidUpdate';
|
|
6
|
+
export const Gyroscope = new GyroscopeSensor(exponentGyroscope, GYROSCOPE_DID_UPDATE_EVENT_NAME);
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export { Accelerometer, AccelerometerSensor, type IAccelerometerMeasurement, } from './accelerometer';
|
|
2
|
+
export { Barometer, BarometerSensor, type IBarometerMeasurement } from './barometer';
|
|
3
|
+
export { DeviceMotion, DeviceMotionSensor, DeviceMotionOrientation, gravity, type IDeviceMotionMeasurement, } from './device-motion';
|
|
4
|
+
export { Gyroscope, GyroscopeSensor, type IGyroscopeMeasurement } from './gyroscope';
|
|
5
|
+
export { LightSensor, LightSensorSensor, type ILightSensorMeasurement } from './light-sensor';
|
|
6
|
+
export { Magnetometer, MagnetometerSensor, type IMagnetometerMeasurement } from './magnetometer';
|
|
7
|
+
export { MagnetometerUncalibrated, MagnetometerUncalibratedSensor, type IMagnetometerUncalibratedMeasurement, } from './magnetometer-uncalibrated';
|
|
8
|
+
export { watchStepCount, getStepCountAsync, isAvailableAsync, getPermissionsAsync, requestPermissionsAsync, type IPedometerResult, type IPedometerUpdateCallback, } from './pedometer';
|
|
9
|
+
export { DeviceSensor, type IListener, type INativeSensorModule } from './device-sensor';
|
|
10
|
+
export type { EventSubscription, PermissionExpiration, PermissionResponse, } from 'expo-modules-core';
|
|
11
|
+
export { PermissionStatus } from 'expo-modules-core';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { Accelerometer, AccelerometerSensor, } from './accelerometer.js';
|
|
2
|
+
export { Barometer, BarometerSensor } from './barometer.js';
|
|
3
|
+
export { DeviceMotion, DeviceMotionSensor, DeviceMotionOrientation, gravity, } from './device-motion.js';
|
|
4
|
+
export { Gyroscope, GyroscopeSensor } from './gyroscope.js';
|
|
5
|
+
export { LightSensor, LightSensorSensor } from './light-sensor.js';
|
|
6
|
+
export { Magnetometer, MagnetometerSensor } from './magnetometer.js';
|
|
7
|
+
export { MagnetometerUncalibrated, MagnetometerUncalibratedSensor, } from './magnetometer-uncalibrated.js';
|
|
8
|
+
export { watchStepCount, getStepCountAsync, isAvailableAsync, getPermissionsAsync, requestPermissionsAsync, } from './pedometer.js';
|
|
9
|
+
export { DeviceSensor } from './device-sensor.js';
|
|
10
|
+
export { PermissionStatus } from 'expo-modules-core';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { DeviceSensor } from './device-sensor';
|
|
2
|
+
export type ILightSensorMeasurement = {
|
|
3
|
+
illuminance: number;
|
|
4
|
+
timestamp: number;
|
|
5
|
+
};
|
|
6
|
+
export declare class LightSensorSensor extends DeviceSensor<ILightSensorMeasurement> {
|
|
7
|
+
}
|
|
8
|
+
export declare const LightSensor: LightSensorSensor;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { DeviceSensor } from './device-sensor.js';
|
|
2
|
+
import { exponentLightSensor } from './native/exponent-light-sensor';
|
|
3
|
+
export class LightSensorSensor extends DeviceSensor {
|
|
4
|
+
}
|
|
5
|
+
const LIGHT_SENSOR_DID_UPDATE_EVENT_NAME = 'lightSensorDidUpdate';
|
|
6
|
+
export const LightSensor = new LightSensorSensor(exponentLightSensor, LIGHT_SENSOR_DID_UPDATE_EVENT_NAME);
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { DeviceSensor } from './device-sensor';
|
|
2
|
+
export type IMagnetometerUncalibratedMeasurement = {
|
|
3
|
+
x: number;
|
|
4
|
+
y: number;
|
|
5
|
+
z: number;
|
|
6
|
+
timestamp: number;
|
|
7
|
+
};
|
|
8
|
+
export declare class MagnetometerUncalibratedSensor extends DeviceSensor<IMagnetometerUncalibratedMeasurement> {
|
|
9
|
+
}
|
|
10
|
+
export declare const MagnetometerUncalibrated: MagnetometerUncalibratedSensor;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { DeviceSensor } from './device-sensor.js';
|
|
2
|
+
import { exponentMagnetometerUncalibrated } from './native/exponent-magnetometer-uncalibrated.js';
|
|
3
|
+
export class MagnetometerUncalibratedSensor extends DeviceSensor {
|
|
4
|
+
}
|
|
5
|
+
const MAGNETOMETER_UNCALIBRATED_DID_UPDATE_EVENT_NAME = 'magnetometerUncalibratedDidUpdate';
|
|
6
|
+
export const MagnetometerUncalibrated = new MagnetometerUncalibratedSensor(exponentMagnetometerUncalibrated, MAGNETOMETER_UNCALIBRATED_DID_UPDATE_EVENT_NAME);
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { DeviceSensor } from './device-sensor';
|
|
2
|
+
export type IMagnetometerMeasurement = {
|
|
3
|
+
x: number;
|
|
4
|
+
y: number;
|
|
5
|
+
z: number;
|
|
6
|
+
timestamp: number;
|
|
7
|
+
};
|
|
8
|
+
export declare class MagnetometerSensor extends DeviceSensor<IMagnetometerMeasurement> {
|
|
9
|
+
}
|
|
10
|
+
export declare const Magnetometer: MagnetometerSensor;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { DeviceSensor } from './device-sensor.js';
|
|
2
|
+
import { exponentMagnetometer } from './native/exponent-magnetometer.js';
|
|
3
|
+
export class MagnetometerSensor extends DeviceSensor {
|
|
4
|
+
}
|
|
5
|
+
const MAGNETOMETER_DID_UPDATE_EVENT_NAME = 'magnetometerDidUpdate';
|
|
6
|
+
export const Magnetometer = new MagnetometerSensor(exponentMagnetometer, MAGNETOMETER_DID_UPDATE_EVENT_NAME);
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { INativeSensorModule } from '../device-sensor';
|
|
2
|
+
import type { IDeviceMotionMeasurement } from '../device-motion';
|
|
3
|
+
type IExponentDeviceMotionModule = INativeSensorModule<IDeviceMotionMeasurement> & {
|
|
4
|
+
Gravity: number;
|
|
5
|
+
};
|
|
6
|
+
export declare const exponentDeviceMotion: IExponentDeviceMotionModule;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { exponentLightSensor } from './index.ios';
|