@wemap/providers 3.1.23 → 3.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/babel.config.json +16 -0
  2. package/debug/MainComponent.jsx +5 -5
  3. package/debug/components/AbsoluteAttitudeComponent.jsx +5 -5
  4. package/debug/components/AbsolutePositionComponent.jsx +7 -9
  5. package/debug/components/GnssWifiComponent.jsx +5 -5
  6. package/debug/components/ImuComponent.jsx +4 -4
  7. package/debug/components/InclinationComponent.jsx +4 -4
  8. package/debug/components/RelativeAttitudeComponent.jsx +4 -4
  9. package/debug/components/StepDetectionComponent.jsx +4 -4
  10. package/debug/components/Utils.js +1 -1
  11. package/debug/{Common.css → css/App.css} +0 -44
  12. package/debug/css/UserOnMapHandler.css +43 -0
  13. package/debug/details/DetailsAttitudeComponent.jsx +1 -1
  14. package/debug/details/DetailsComponent.jsx +4 -5
  15. package/debug/details/DetailsPositionComponent.jsx +2 -2
  16. package/debug/details/ItineraryComponent.jsx +10 -69
  17. package/debug/index.js +8 -8
  18. package/debug/map/MapComponent.jsx +23 -15
  19. package/debug/map/MapHandler.js +7 -16
  20. package/debug/map/helpers/ItineraryMapHandler.js +15 -16
  21. package/debug/map/helpers/MapClickHandler.js +9 -7
  22. package/debug/map/helpers/UserOnMapHandler.js +23 -417
  23. package/debug/stores/ItineraryStore.js +23 -48
  24. package/dist/assets/indoor-maps/bureaux-wemap-montpellier.geojson +339 -513
  25. package/dist/js/providers-components.js +2361 -0
  26. package/dist/logger.html +58 -0
  27. package/index.js +7 -5
  28. package/package.json +25 -21
  29. package/src/Providers.js +15 -15
  30. package/src/ProvidersInterface.js +7 -5
  31. package/src/errors/MissingAccelerometerError.js +2 -2
  32. package/src/errors/MissingGyroscopeError.js +2 -2
  33. package/src/errors/MissingMagnetometerError.js +1 -1
  34. package/src/events/ProviderEvent.js +1 -1
  35. package/src/events/{ProvidersLogger.js → ProvidersLoggerOld.js} +7 -7
  36. package/src/logger/NavigationLogger.js +131 -0
  37. package/src/logger/NavigationLoggerConverter.js +228 -0
  38. package/src/providers/FakeProvider.spec.js +3 -4
  39. package/src/providers/MetaProvider.js +3 -3
  40. package/src/providers/Provider.js +12 -11
  41. package/src/providers/Provider.spec.js +5 -7
  42. package/src/providers/attitude/EkfAttitude.spec.js +1 -1
  43. package/src/providers/attitude/absolute/AbsoluteAttitudeFromBrowserProvider.js +9 -8
  44. package/src/providers/attitude/absolute/AbsoluteAttitudeFromRelAttProvider.js +5 -6
  45. package/src/providers/attitude/absolute/AbsoluteAttitudeProvider.js +3 -3
  46. package/src/providers/attitude/relative/RelativeAttitudeFromBrowserProvider.js +5 -5
  47. package/src/providers/attitude/relative/RelativeAttitudeFromEkfProvider.js +5 -5
  48. package/src/providers/attitude/relative/RelativeAttitudeFromInertialProvider.js +3 -3
  49. package/src/providers/attitude/relative/RelativeAttitudeProvider.js +5 -4
  50. package/src/providers/imu/AccelerometerProvider.js +4 -4
  51. package/src/providers/imu/GyroscopeProvider.js +4 -4
  52. package/src/providers/imu/ImuProvider.js +5 -4
  53. package/src/providers/inclination/InclinationFromAccProvider.js +3 -3
  54. package/src/providers/inclination/InclinationFromRelativeAttitudeProvider.js +3 -3
  55. package/src/providers/inclination/InclinationProvider.js +3 -3
  56. package/src/providers/legacy/helpers/HeadingUnlocker.spec.js +1 -1
  57. package/src/providers/others/BarcodeProvider.js +3 -3
  58. package/src/providers/others/CameraNativeProvider.js +4 -4
  59. package/src/providers/others/CameraProjectionMatrixProvider.js +3 -3
  60. package/src/providers/position/absolute/AbsolutePositionFromRelProvider.js +4 -4
  61. package/src/providers/position/absolute/AbsolutePositionProvider.js +5 -5
  62. package/src/providers/position/absolute/GnssWifiProvider.js +9 -6
  63. package/src/providers/position/absolute/IpProvider.js +3 -3
  64. package/src/providers/position/relative/ArCoreProvider.js +5 -5
  65. package/src/providers/position/relative/GeoRelativePositionFromArCoreProvider.js +3 -3
  66. package/src/providers/position/relative/GeoRelativePositionProvider.js +3 -3
  67. package/src/providers/position/relative/PdrProvider.js +3 -3
  68. package/src/providers/steps/StepDetectionProvider.js +11 -4
  69. package/src/smoothers/PositionSmoother.spec.js +1 -1
  70. package/webpack/{webpack.common.js → webpack.common.cjs} +7 -1
  71. package/webpack/{webpack.dev.js → webpack.dev.cjs} +1 -7
  72. package/webpack/{webpack.prod.js → webpack.prod.cjs} +1 -1
  73. package/babel.config.js +0 -11
  74. package/debug/map/MapboxHelper.js +0 -50
@@ -0,0 +1,228 @@
1
+ /* eslint-disable complexity */
2
+ import { UserPosition } from '@wemap/geo';
3
+ import { Network } from '@wemap/graph';
4
+
5
+ import EventType from '../events/EventType.js';
6
+
7
+ const PRECISION = 1e-6;
8
+ const PRECISION_INV = 1 / PRECISION;
9
+ const round = num => typeof num === 'number' ? Math.round(num * PRECISION_INV) / PRECISION_INV : num;
10
+
11
+ class NavigationLoggerConverter {
12
+
13
+ static externalDataToArray(eventType, time, data) {
14
+ switch (eventType) {
15
+ case EventType.Network:
16
+ return [0, 'network', round(time), data === null ? null : JSON.stringify(data.toCompressedJson())];
17
+ case EventType.AbsolutePosition:
18
+ return [0, 'absolute-position', round(time), JSON.stringify(data.toJson())];
19
+ case EventType.AbsoluteHeading:
20
+ return [0, 'absolute-heading', round(time), JSON.stringify(data.toJson())];
21
+ case EventType.AbsoluteAttitude:
22
+ return [0, 'absolute-attitude', round(time), JSON.stringify(data.toJson())];
23
+ }
24
+ return [0, 'unknown', eventType];
25
+ }
26
+
27
+ static rawDataToArray(eventName, time, data) {
28
+ switch (eventName) {
29
+
30
+ case 'devicemotion':
31
+ const acc = data.accelerationIncludingGravity;
32
+ const gyr = data.rotationRate;
33
+ const linearAcc = data.acceleration;
34
+
35
+ return [
36
+ 1,
37
+ round(time),
38
+ round(data.timeStamp),
39
+ acc && typeof acc.x === 'number' ? round(acc.x) : Number.MIN_VALUE,
40
+ acc && typeof acc.y === 'number' ? round(acc.y) : Number.MIN_VALUE,
41
+ acc && typeof acc.z === 'number' ? round(acc.z) : Number.MIN_VALUE,
42
+ gyr && typeof gyr.alpha === 'number' ? round(gyr.alpha) : Number.MIN_VALUE,
43
+ gyr && typeof gyr.beta === 'number' ? round(gyr.beta) : Number.MIN_VALUE,
44
+ gyr && typeof gyr.gamma === 'number' ? round(gyr.gamma) : Number.MIN_VALUE,
45
+ linearAcc && typeof linearAcc.x === 'number' ? round(linearAcc.x) : Number.MIN_VALUE,
46
+ linearAcc && typeof linearAcc.y === 'number' ? round(linearAcc.y) : Number.MIN_VALUE,
47
+ linearAcc && typeof linearAcc.z === 'number' ? round(linearAcc.z) : Number.MIN_VALUE,
48
+ round(data.interval)
49
+ ];
50
+
51
+ case 'deviceorientation':
52
+ return [
53
+ 2,
54
+ round(time),
55
+ round(data.timeStamp),
56
+ round(data.alpha),
57
+ round(data.beta),
58
+ round(data.gamma),
59
+ round(data.webkitCompassHeading),
60
+ data.absolute ? 1 : 0
61
+ ];
62
+
63
+ case 'deviceorientationabsolute':
64
+ return [
65
+ 3,
66
+ round(time),
67
+ round(data.timeStamp),
68
+ round(data.alpha),
69
+ round(data.beta),
70
+ round(data.gamma),
71
+ data.absolute ? 1 : 0
72
+ ];
73
+
74
+ case 'geolocation':
75
+ return [
76
+ 4,
77
+ round(time),
78
+ round(data.timestamp),
79
+ data.coords.latitude,
80
+ data.coords.longitude,
81
+ typeof data.coords.altitude === 'number' ? round(data.coords.altitude) : Number.MIN_VALUE,
82
+ round(data.coords.accuracy),
83
+ typeof data.coords.altitudeAccuracy === 'number' ? round(data.coords.altitudeAccuracy) : Number.MIN_VALUE,
84
+ typeof data.coords.heading === 'number' ? round(data.coords.heading) : Number.MIN_VALUE,
85
+ typeof data.coords.speed === 'number' ? round(data.coords.speed) : Number.MIN_VALUE
86
+ ];
87
+ }
88
+
89
+ throw new Error(`Cannot parse eventName: ${eventName}`);
90
+ }
91
+
92
+ static _strToObj(str) {
93
+
94
+ const indexOfFirstComma = str.indexOf(',');
95
+ const rowType = parseInt(str.substring(0, indexOfFirstComma), 10);
96
+
97
+ let array;
98
+
99
+ switch (rowType) {
100
+
101
+ case 1:
102
+ array = str.split(',').map(parseFloat);
103
+ return {
104
+ eventName: 'devicemotion',
105
+ time: array[1],
106
+ data: {
107
+ timeStamp: array[2],
108
+ accelerationIncludingGravity: {
109
+ x: array[3] === Number.MIN_VALUE ? null : array[3],
110
+ y: array[4] === Number.MIN_VALUE ? null : array[4],
111
+ z: array[5] === Number.MIN_VALUE ? null : array[5]
112
+ },
113
+ rotationRate: {
114
+ alpha: array[6] === Number.MIN_VALUE ? null : array[6],
115
+ beta: array[7] === Number.MIN_VALUE ? null : array[7],
116
+ gamma: array[8] === Number.MIN_VALUE ? null : array[8]
117
+ },
118
+ acceleration: {
119
+ x: array[9] === Number.MIN_VALUE ? null : array[9],
120
+ y: array[10] === Number.MIN_VALUE ? null : array[10],
121
+ z: array[11] === Number.MIN_VALUE ? null : array[11]
122
+ }
123
+ },
124
+ isExternal: false
125
+ };
126
+
127
+ case 2:
128
+ array = str.split(',').map(parseFloat);
129
+ return {
130
+ eventName: 'deviceorientation',
131
+ time: array[1],
132
+ data: {
133
+ timeStamp: array[2],
134
+ alpha: array[3],
135
+ beta: array[4],
136
+ gamma: array[5],
137
+ webkitCompassHeading: array[6],
138
+ absolute: array[7] === 1
139
+ },
140
+ isExternal: false
141
+ };
142
+
143
+ case 3:
144
+ array = str.split(',').map(parseFloat);
145
+ return {
146
+ eventName: 'deviceorientationabsolute',
147
+ time: array[1],
148
+ data: {
149
+ timeStamp: array[2],
150
+ alpha: array[3],
151
+ beta: array[4],
152
+ gamma: array[5],
153
+ absolute: array[6] === 1
154
+ },
155
+ isExternal: false
156
+ };
157
+
158
+ case 4:
159
+ array = str.split(',').map(parseFloat);
160
+ return {
161
+ eventName: 'geolocation',
162
+ time: array[1],
163
+ data: {
164
+ timestamp: array[2],
165
+ coords: {
166
+ latitude: array[3],
167
+ longitude: array[4],
168
+ altitude: array[5] === Number.MIN_VALUE ? null : array[5],
169
+ accuracy: array[6],
170
+ altitudeAccuracy: array[7] === Number.MIN_VALUE ? null : array[7],
171
+ heading: array[8] === Number.MIN_VALUE ? null : array[8],
172
+ speed: array[9] === Number.MIN_VALUE ? null : array[9]
173
+ }
174
+ },
175
+ isExternal: false
176
+ };
177
+
178
+ case 0:
179
+
180
+ const indexOfSecondComma = str.indexOf(',', indexOfFirstComma + 1);
181
+ const eventTypeStr = str.substring(indexOfFirstComma + 1, indexOfSecondComma);
182
+
183
+ const indexOfThirdComma = str.indexOf(',', indexOfSecondComma + 1);
184
+ const time = str.substring(indexOfSecondComma + 1, indexOfThirdComma);
185
+
186
+ const dataStr = str.substring(indexOfThirdComma + 1);
187
+ const dataJson = JSON.parse(dataStr);
188
+
189
+ let eventType, data;
190
+ switch (eventTypeStr) {
191
+
192
+ case 'network':
193
+ eventType = EventType.Network;
194
+ data = dataStr === null ? null : Network.fromCompressedJson(dataJson);
195
+ break;
196
+
197
+ case 'absolute-position':
198
+ eventType = EventType.AbsolutePosition;
199
+ data = dataStr === null ? null : UserPosition.fromJson(dataJson);
200
+ break;
201
+
202
+ case 'absolute-attitude':
203
+ eventType = EventType.AbsoluteAttitude;
204
+ data = dataStr === null ? null : UserPosition.fromJson(dataJson);
205
+ break;
206
+
207
+ case 'absolute-heading':
208
+ eventType = EventType.AbsoluteHeading;
209
+ data = dataStr === null ? null : UserPosition.fromJson(dataJson);
210
+ break;
211
+
212
+ default:
213
+ throw new Error(`Cannot parse eventType: ${array[1]}`);
214
+ }
215
+
216
+ return {
217
+ eventType,
218
+ data,
219
+ time: round(time),
220
+ isExternal: true
221
+ };
222
+ }
223
+
224
+ return null;
225
+ }
226
+ }
227
+
228
+ export default NavigationLoggerConverter;
@@ -1,10 +1,9 @@
1
1
  import { UserPosition } from '@wemap/geo';
2
-
3
- import Provider from './Provider';
4
-
5
- import EventType from '../events/EventType';
6
2
  import { TimeUtils } from '@wemap/utils';
7
3
 
4
+ import Provider from './Provider.js';
5
+ import EventType from '../events/EventType.js';
6
+
8
7
  class FakeProvider1 extends Provider {
9
8
  static get pname() {
10
9
  return 'FakeProvider1';
@@ -1,6 +1,6 @@
1
- import EventType from '../events/EventType';
2
- import Provider from './Provider';
3
- import ProviderEvent from '../events/ProviderEvent';
1
+ import EventType from '../events/EventType.js';
2
+ import Provider from './Provider.js';
3
+ import ProviderEvent from '../events/ProviderEvent.js';
4
4
 
5
5
  class MetaProvider extends Provider {
6
6
 
@@ -2,12 +2,12 @@ import noop from 'lodash.noop';
2
2
 
3
3
  import { TimeUtils } from '@wemap/utils';
4
4
 
5
- import EventType from '../events/EventType';
6
- import ProviderEvent from '../events/ProviderEvent';
7
- import ProvidersLogger from '../events/ProvidersLogger';
8
- import ContainsIgnoredProviderError from '../errors/ContainsIgnoredProviderError';
9
- import ProvidersOptions from '../ProvidersOptions';
10
- import ProviderState from './ProviderState';
5
+ import EventType from '../events/EventType.js';
6
+ import ProviderEvent from '../events/ProviderEvent.js';
7
+ import ProvidersLoggerOld from '../events/ProvidersLoggerOld.js';
8
+ import ContainsIgnoredProviderError from '../errors/ContainsIgnoredProviderError.js';
9
+ import ProvidersOptions from '../ProvidersOptions.js';
10
+ import ProviderState from './ProviderState.js';
11
11
 
12
12
  let uniqueId = 1;
13
13
 
@@ -52,7 +52,7 @@ class Provider {
52
52
 
53
53
  this.id = uniqueId++;
54
54
 
55
- ProvidersLogger.addEvent(this, 'constructor');
55
+ ProvidersLoggerOld.addEvent(this, 'constructor');
56
56
  }
57
57
 
58
58
  /**
@@ -166,6 +166,7 @@ class Provider {
166
166
  if (this.state !== ProviderState.STOPPPED) {
167
167
  return id;
168
168
  }
169
+ this.state = ProviderState.STARTING;
169
170
 
170
171
  // Check availability on start if defined in options
171
172
  let availabilityPromise = Promise.resolve();
@@ -175,9 +176,8 @@ class Provider {
175
176
 
176
177
  availabilityPromise
177
178
  .then(() => {
178
- this.state = ProviderState.STARTING;
179
179
 
180
- ProvidersLogger.addEvent(this, 'start');
180
+ ProvidersLoggerOld.addEvent(this, 'start');
181
181
  // Call the child start function
182
182
  this.start();
183
183
 
@@ -186,6 +186,7 @@ class Provider {
186
186
  this._monitoringCallbacks.forEach(({ onStarted }) => onStarted());
187
187
  })
188
188
  .catch(e => {
189
+ this.state = ProviderState.STOPPPED;
189
190
  this.notifyError(e);
190
191
  })
191
192
  // notifyError can throw an error if onStop is not defined
@@ -226,7 +227,7 @@ class Provider {
226
227
  return;
227
228
  }
228
229
 
229
- ProvidersLogger.addEvent(this, 'stop');
230
+ ProvidersLoggerOld.addEvent(this, 'stop');
230
231
  // Call the child stop function
231
232
  this.stop();
232
233
 
@@ -283,7 +284,7 @@ class Provider {
283
284
  */
284
285
  notify(...events) {
285
286
  // Logging
286
- ProvidersLogger.incrementNotifications(this);
287
+ ProvidersLoggerOld.incrementNotifications(this);
287
288
 
288
289
  // Add current provider to the list of providers for this event.
289
290
  events.forEach(event => event.providersStack.unshift(this.pname));
@@ -5,15 +5,13 @@ import noop from 'lodash.noop';
5
5
 
6
6
  import Logger from '@wemap/logger';
7
7
 
8
- import Provider from './Provider';
9
-
10
- import ContainsIgnoredProviderError from '../errors/ContainsIgnoredProviderError';
11
-
8
+ import Provider from './Provider.js';
9
+ import ContainsIgnoredProviderError from '../errors/ContainsIgnoredProviderError.js';
12
10
  import {
13
11
  FakeProvider1, FakeProvider2, FakeProvider3, FakeProvider4
14
- } from './FakeProvider.spec';
15
- import ProvidersOptions from '../ProvidersOptions';
16
- import ProviderState from './ProviderState';
12
+ } from './FakeProvider.spec.js';
13
+ import ProvidersOptions from '../ProvidersOptions.js';
14
+ import ProviderState from './ProviderState.js';
17
15
 
18
16
  chai.use(chaiAsPromised);
19
17
  Logger.enable(false);
@@ -2,7 +2,7 @@ import chai from 'chai';
2
2
 
3
3
  import { Quaternion } from '@wemap/maths';
4
4
 
5
- import EkfAttitude from './EkfAttitude';
5
+ import EkfAttitude from './EkfAttitude.js';
6
6
 
7
7
  const expect = chai.expect;
8
8
 
@@ -10,12 +10,13 @@ import {
10
10
  Browser, BrowserUtils
11
11
  } from '@wemap/utils';
12
12
 
13
- import Provider from '../../Provider';
14
- import EventType from '../../../events/EventType';
15
- import AskImuOnDesktopError from '../../../errors/AskImuOnDesktopError';
16
- import MissingMagnetometerError from '../../../errors/MissingMagnetometerError';
17
- import MissingSensorError from '../../../errors/MissingSensorError';
18
- import { AbsolutePosition } from '../../../Providers';
13
+ import Provider from '../../Provider.js';
14
+ import EventType from '../../../events/EventType.js';
15
+ import NavigationLogger from '../../../logger/NavigationLogger.js';
16
+ import AskImuOnDesktopError from '../../../errors/AskImuOnDesktopError.js';
17
+ import MissingMagnetometerError from '../../../errors/MissingMagnetometerError.js';
18
+ import MissingSensorError from '../../../errors/MissingSensorError.js';
19
+ import { AbsolutePosition } from '../../../Providers.js';
19
20
 
20
21
 
21
22
  /**
@@ -78,7 +79,6 @@ class AbsoluteAttitudeFromBrowserProvider extends Provider {
78
79
  break;
79
80
 
80
81
  case Browser.SAFARI:
81
- case Browser.IOS_WEBVIEW:
82
82
  window.addEventListener('deviceorientation',
83
83
  this.onDeviceOrientationSafariEvent, true);
84
84
  break;
@@ -124,7 +124,6 @@ class AbsoluteAttitudeFromBrowserProvider extends Provider {
124
124
  break;
125
125
 
126
126
  case Browser.SAFARI:
127
- case Browser.IOS_WEBVIEW:
128
127
  window.removeEventListener('deviceorientation',
129
128
  this.onDeviceOrientationSafariEvent, true);
130
129
  break;
@@ -137,6 +136,7 @@ class AbsoluteAttitudeFromBrowserProvider extends Provider {
137
136
 
138
137
 
139
138
  onDeviceOrientationChromeEvent = e => {
139
+ NavigationLogger.feedRawData('deviceorientationabsolute', e);
140
140
 
141
141
  this.magQuaternionTimestamp = e.timeStamp / 1e3;
142
142
 
@@ -153,6 +153,7 @@ class AbsoluteAttitudeFromBrowserProvider extends Provider {
153
153
 
154
154
 
155
155
  onDeviceOrientationSafariEvent = e => {
156
+ NavigationLogger.feedRawData('deviceorientation', e);
156
157
 
157
158
  this.magQuaternionTimestamp = e.timeStamp / 1e3;
158
159
 
@@ -1,10 +1,10 @@
1
1
  import { Quaternion } from '@wemap/maths';
2
2
  import { Attitude } from '@wemap/geo';
3
3
 
4
- import Provider from '../../Provider';
5
- import EventType from '../../../events/EventType';
4
+ import Provider from '../../Provider.js';
5
+ import EventType from '../../../events/EventType.js';
6
6
  import {
7
- RelativeAttitude, AbsoluteAttitude, AbsoluteAttitudeFromBrowser
7
+ RelativeAttitude, AbsoluteAttitude
8
8
  } from '../../../Providers.js';
9
9
 
10
10
  /**
@@ -90,8 +90,7 @@ class AbsoluteAttitudeFromRelAttProvider extends Provider {
90
90
  /**
91
91
  * Use absolute attitude events only when they are not from this provider
92
92
  */
93
- if (absoluteAttitudeEvent.providersStack.includes(this.pname)
94
- || absoluteAttitudeEvent.providersStack.includes(AbsoluteAttitudeFromBrowser.pname)) {
93
+ if (absoluteAttitudeEvent.providersStack.includes(this.pname)) {
95
94
  return;
96
95
  }
97
96
  this.absoluteAttitudeEvent = absoluteAttitudeEvent;
@@ -115,7 +114,7 @@ class AbsoluteAttitudeFromRelAttProvider extends Provider {
115
114
  const absoluteAttitudeAccuracy = this.absoluteAttitudeEvent.data.accuracy;
116
115
 
117
116
  const absoluteQuat = Quaternion.multiply(this.zOffset, quaternion);
118
- const newAccuracy = absoluteAttitudeAccuracy + this.accuracy;
117
+ const newAccuracy = Math.min(absoluteAttitudeAccuracy + this.accuracy, Math.PI);
119
118
  const attitude = new Attitude(absoluteQuat, time, newAccuracy, this.pname);
120
119
 
121
120
  this.notify(this.createEvent(
@@ -3,11 +3,11 @@ import {
3
3
  } from '@wemap/geo';
4
4
  import { PromiseUtils } from '@wemap/utils';
5
5
 
6
- import MetaProvider from '../../MetaProvider';
7
- import EventType from '../../../events/EventType';
6
+ import MetaProvider from '../../MetaProvider.js';
7
+ import EventType from '../../../events/EventType.js';
8
8
  import {
9
9
  AbsoluteAttitudeFromBrowser, AbsoluteAttitudeFromRelAtt
10
- } from '../../../Providers';
10
+ } from '../../../Providers.js';
11
11
 
12
12
 
13
13
  /**
@@ -2,11 +2,11 @@ import { Attitude } from '@wemap/geo';
2
2
  import { Rotations } from '@wemap/maths';
3
3
  import { BrowserUtils } from '@wemap/utils';
4
4
 
5
- import Provider from '../../Provider';
6
- import EventType from '../../../events/EventType';
7
- import AskImuOnDesktopError from '../../../errors/AskImuOnDesktopError';
8
- import MissingSensorError from '../../../errors/MissingSensorError';
9
- import RelativeAttitudeFromInertialProvider from './RelativeAttitudeFromInertialProvider';
5
+ import Provider from '../../Provider.js';
6
+ import EventType from '../../../events/EventType.js';
7
+ import AskImuOnDesktopError from '../../../errors/AskImuOnDesktopError.js';
8
+ import MissingSensorError from '../../../errors/MissingSensorError.js';
9
+ import RelativeAttitudeFromInertialProvider from './RelativeAttitudeFromInertialProvider.js';
10
10
 
11
11
 
12
12
  /**
@@ -1,12 +1,12 @@
1
1
  import { Attitude } from '@wemap/geo';
2
2
 
3
- import Provider from '../../Provider';
4
- import EventType from '../../../events/EventType';
5
- import EkfAttitude from '../EkfAttitude';
6
- import RelativeAttitudeFromInertialProvider from './RelativeAttitudeFromInertialProvider';
3
+ import Provider from '../../Provider.js';
4
+ import EventType from '../../../events/EventType.js';
5
+ import EkfAttitude from '../EkfAttitude.js';
6
+ import RelativeAttitudeFromInertialProvider from './RelativeAttitudeFromInertialProvider.js';
7
7
  import {
8
8
  Accelerometer, Gyroscope
9
- } from '../../../Providers';
9
+ } from '../../../Providers.js';
10
10
 
11
11
 
12
12
  /**
@@ -1,11 +1,11 @@
1
1
  import { deg2rad } from '@wemap/maths';
2
2
  import { PromiseUtils } from '@wemap/utils';
3
3
 
4
- import Provider from '../../Provider';
5
- import EventType from '../../../events/EventType';
4
+ import Provider from '../../Provider.js';
5
+ import EventType from '../../../events/EventType.js';
6
6
  import {
7
7
  RelativeAttitudeFromEkf, RelativeAttitudeFromBrowser
8
- } from '../../../Providers';
8
+ } from '../../../Providers.js';
9
9
 
10
10
  class RelativeAttitudeFromInertialProvider extends Provider {
11
11
 
@@ -1,10 +1,11 @@
1
- import Provider from '../../Provider';
2
- import EventType from '../../../events/EventType';
3
1
  import noop from 'lodash.noop';
4
- import ProviderState from '../../ProviderState';
2
+
3
+ import Provider from '../../Provider.js';
4
+ import EventType from '../../../events/EventType.js';
5
+ import ProviderState from '../../ProviderState.js';
5
6
  import {
6
7
  RelativeAttitudeFromInertial, ArCore
7
- } from '../../../Providers';
8
+ } from '../../../Providers.js';
8
9
 
9
10
 
10
11
  /**
@@ -1,7 +1,7 @@
1
- import Provider from '../Provider';
2
- import EventType from '../../events/EventType';
3
- import MissingAccelerometerError from '../../errors/MissingAccelerometerError';
4
- import { Imu } from '../../Providers';
1
+ import Provider from '../Provider.js';
2
+ import EventType from '../../events/EventType.js';
3
+ import MissingAccelerometerError from '../../errors/MissingAccelerometerError.js';
4
+ import { Imu } from '../../Providers.js';
5
5
 
6
6
  class AccelerometerProvider extends Provider {
7
7
 
@@ -1,7 +1,7 @@
1
- import Provider from '../Provider';
2
- import EventType from '../../events/EventType';
3
- import MissingGyroscopeError from '../../errors/MissingGyroscopeError';
4
- import { Imu } from '../../Providers';
1
+ import Provider from '../Provider.js';
2
+ import EventType from '../../events/EventType.js';
3
+ import MissingGyroscopeError from '../../errors/MissingGyroscopeError.js';
4
+ import { Imu } from '../../Providers.js';
5
5
 
6
6
  class GyroscopeProvider extends Provider {
7
7
 
@@ -3,9 +3,10 @@ import {
3
3
  Browser, BrowserUtils
4
4
  } from '@wemap/utils';
5
5
 
6
- import Provider from '../Provider';
6
+ import Provider from '../Provider.js';
7
7
  import EventType from '../../events/EventType';
8
- import AskImuOnDesktopError from '../../errors/AskImuOnDesktopError';
8
+ import AskImuOnDesktopError from '../../errors/AskImuOnDesktopError.js';
9
+ import NavigationLogger from '../../logger/NavigationLogger.js';
9
10
 
10
11
  /**
11
12
  * Imu (Inertial Measurement Unit) provider retrieve acceleration data
@@ -82,6 +83,7 @@ class ImuProvider extends Provider {
82
83
  * @private
83
84
  */
84
85
  parseDeviceMotionEvent = e => {
86
+ NavigationLogger.feedRawData('devicemotion', e);
85
87
 
86
88
  const events = [];
87
89
 
@@ -96,8 +98,7 @@ class ImuProvider extends Provider {
96
98
  if (typeof x === 'number' && typeof y === 'number' && typeof z === 'number') {
97
99
  acc = [x, y, z];
98
100
 
99
- if (BrowserUtils.name === Browser.SAFARI
100
- || BrowserUtils.name === Browser.IOS_WEBVIEW) {
101
+ if (BrowserUtils.name === Browser.SAFARI) {
101
102
  acc[0] *= -1;
102
103
  acc[1] *= -1;
103
104
  acc[2] *= -1;
@@ -1,6 +1,6 @@
1
- import Provider from '../Provider';
2
- import EventType from '../../events/EventType';
3
- import { Accelerometer } from '../../Providers';
1
+ import Provider from '../Provider.js';
2
+ import EventType from '../../events/EventType.js';
3
+ import { Accelerometer } from '../../Providers.js';
4
4
 
5
5
  /**
6
6
  * Inclination provider gives the inclination of the device using Imu Sensor
@@ -1,6 +1,6 @@
1
- import Provider from '../Provider';
2
- import EventType from '../../events/EventType';
3
- import { RelativeAttitudeFromInertial } from '../../Providers';
1
+ import Provider from '../Provider.js';
2
+ import EventType from '../../events/EventType.js';
3
+ import { RelativeAttitudeFromInertial } from '../../Providers.js';
4
4
 
5
5
  /**
6
6
  * Inclination provider gives the inclination of the device using Relative Attitude
@@ -1,10 +1,10 @@
1
1
  import { PromiseUtils } from '@wemap/utils';
2
2
 
3
- import MetaProvider from '../MetaProvider';
4
- import EventType from '../../events/EventType';
3
+ import MetaProvider from '../MetaProvider.js';
4
+ import EventType from '../../events/EventType.js';
5
5
  import {
6
6
  InclinationFromRelativeAttitude, InclinationFromAcc
7
- } from '../../Providers';
7
+ } from '../../Providers.js';
8
8
 
9
9
  /**
10
10
  * Inclination provider gives the inclination of the device using Imu Sensor
@@ -3,7 +3,7 @@ import chaiAlmost from 'chai-almost';
3
3
 
4
4
  import { deg2rad } from '@wemap/maths';
5
5
 
6
- import HeadingUnlocker from './HeadingUnlocker';
6
+ import HeadingUnlocker from './HeadingUnlocker.js';
7
7
 
8
8
  const expect = chai.expect;
9
9
  chai.use(chaiAlmost());
@@ -1,6 +1,6 @@
1
- import Provider from '../Provider';
2
- import EventType from '../../events/EventType';
3
- import { ArCore } from '../../Providers';
1
+ import Provider from '../Provider.js';
2
+ import EventType from '../../events/EventType.js';
3
+ import { ArCore } from '../../Providers.js';
4
4
 
5
5
  class BarcodeProvider extends Provider {
6
6
 
@@ -1,7 +1,7 @@
1
- import MetaProvider from '../MetaProvider';
2
- import EventType from '../../events/EventType';
3
- import { ArCore } from '../../Providers';
4
- import ProviderState from '../ProviderState';
1
+ import MetaProvider from '../MetaProvider.js';
2
+ import EventType from '../../events/EventType.js';
3
+ import { ArCore } from '../../Providers.js';
4
+ import ProviderState from '../ProviderState.js';
5
5
 
6
6
  class CameraNativeProvider extends MetaProvider {
7
7