incyclist-services 1.7.37 → 1.7.39
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/lib/cjs/ride/page/service.js +17 -0
- package/lib/cjs/ride/route/FollowRouteDisplayService.js +1 -1
- package/lib/cjs/ride/route/GpxDisplayService.js +39 -6
- package/lib/esm/ride/page/service.js +17 -0
- package/lib/esm/ride/route/FollowRouteDisplayService.js +1 -1
- package/lib/esm/ride/route/GpxDisplayService.js +39 -6
- package/lib/types/ride/base/types.d.ts +2 -1
- package/lib/types/ride/page/service.d.ts +2 -1
- package/lib/types/ride/page/types.d.ts +2 -2
- package/lib/types/ride/route/GpxDisplayService.d.ts +6 -2
- package/package.json +1 -1
|
@@ -160,6 +160,7 @@ let RidePageService = (() => {
|
|
|
160
160
|
const rideType = this.getRideDisplay().getRideType();
|
|
161
161
|
switch (rideType) {
|
|
162
162
|
case 'Video': return this.getVideoRideDisplayProps();
|
|
163
|
+
case 'GPX': return this.getGPXRideDisplayProps();
|
|
163
164
|
default:
|
|
164
165
|
return null;
|
|
165
166
|
}
|
|
@@ -267,6 +268,22 @@ let RidePageService = (() => {
|
|
|
267
268
|
};
|
|
268
269
|
return displayProps;
|
|
269
270
|
}
|
|
271
|
+
getGPXRideDisplayProps() {
|
|
272
|
+
const props = this.rideDisplayProps;
|
|
273
|
+
const state = this.getRideDisplay().getState();
|
|
274
|
+
const rideType = this.getRideDisplay().getRideType();
|
|
275
|
+
const isStarting = state === 'Idle' || state === 'Starting' || state === 'Error';
|
|
276
|
+
const displayProps = {
|
|
277
|
+
rideState: state,
|
|
278
|
+
rideType,
|
|
279
|
+
startGateProps: this.startGateProps,
|
|
280
|
+
startOverlayProps: isStarting ? this.getRideDisplay().getStartOverlayProps() : null,
|
|
281
|
+
menuProps: this.menuProps,
|
|
282
|
+
rideView: props.rideView,
|
|
283
|
+
route: props.route
|
|
284
|
+
};
|
|
285
|
+
return displayProps;
|
|
286
|
+
}
|
|
270
287
|
async checkSecretValidity() {
|
|
271
288
|
if (this.getBindings().appInfo.getChannel() === 'mobile') {
|
|
272
289
|
const secretsStatus = this.getSecretBinding().getSecretsStatus?.();
|
|
@@ -6,7 +6,7 @@ class FollowRouteDisplayService extends GpxDisplayService_1.GpxDisplayService {
|
|
|
6
6
|
getLogProps() {
|
|
7
7
|
const route = this.route;
|
|
8
8
|
const settings = this.startSettings;
|
|
9
|
-
const rideView = this.
|
|
9
|
+
const rideView = this.getRideView();
|
|
10
10
|
const bikeProps = this.getBikeLogProps();
|
|
11
11
|
const props = {
|
|
12
12
|
mode: 'follow route',
|
|
@@ -35,6 +35,7 @@ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn,
|
|
|
35
35
|
};
|
|
36
36
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
37
|
exports.GpxDisplayService = void 0;
|
|
38
|
+
const api_1 = require("../../api");
|
|
38
39
|
const apps_1 = require("../../apps");
|
|
39
40
|
const decorators_1 = require("../../base/decorators");
|
|
40
41
|
const types_1 = require("../../base/types");
|
|
@@ -49,13 +50,16 @@ let GpxDisplayService = (() => {
|
|
|
49
50
|
let _instanceExtraInitializers = [];
|
|
50
51
|
let _getUserSettings_decorators;
|
|
51
52
|
let _getGoogleMaps_decorators;
|
|
53
|
+
let _getBindings_decorators;
|
|
52
54
|
return class GpxDisplayService extends _classSuper {
|
|
53
55
|
static {
|
|
54
56
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
55
57
|
_getUserSettings_decorators = [decorators_1.Injectable];
|
|
56
58
|
_getGoogleMaps_decorators = [decorators_1.Injectable];
|
|
59
|
+
_getBindings_decorators = [decorators_1.Injectable];
|
|
57
60
|
__esDecorate(this, null, _getUserSettings_decorators, { kind: "method", name: "getUserSettings", static: false, private: false, access: { has: obj => "getUserSettings" in obj, get: obj => obj.getUserSettings }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
58
61
|
__esDecorate(this, null, _getGoogleMaps_decorators, { kind: "method", name: "getGoogleMaps", static: false, private: false, access: { has: obj => "getGoogleMaps" in obj, get: obj => obj.getGoogleMaps }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
62
|
+
__esDecorate(this, null, _getBindings_decorators, { kind: "method", name: "getBindings", static: false, private: false, access: { has: obj => "getBindings" in obj, get: obj => obj.getBindings }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
59
63
|
if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
60
64
|
}
|
|
61
65
|
mapLoaded = (__runInitializers(this, _instanceExtraInitializers), false);
|
|
@@ -74,7 +78,7 @@ let GpxDisplayService = (() => {
|
|
|
74
78
|
}
|
|
75
79
|
initView() {
|
|
76
80
|
try {
|
|
77
|
-
const rideView = this.
|
|
81
|
+
const rideView = this.getRideView();
|
|
78
82
|
if (rideView === 'sv') {
|
|
79
83
|
const updateFreq = this.getDefaultUpdateFrequency();
|
|
80
84
|
const minimalPause = this.getMinimalPause();
|
|
@@ -115,22 +119,30 @@ let GpxDisplayService = (() => {
|
|
|
115
119
|
};
|
|
116
120
|
}
|
|
117
121
|
getStartOverlayProps() {
|
|
118
|
-
const rideView = this.
|
|
122
|
+
const rideView = this.getRideView();
|
|
119
123
|
if (rideView === 'map') {
|
|
120
|
-
return {
|
|
124
|
+
return {
|
|
125
|
+
mapType: this.getRideViewName(),
|
|
126
|
+
mapState: 'Loaded'
|
|
127
|
+
};
|
|
121
128
|
}
|
|
122
129
|
return {
|
|
123
|
-
mapType:
|
|
130
|
+
mapType: this.getRideViewName(),
|
|
124
131
|
mapState: this.mapLoaded ? 'Loaded' : 'Loading',
|
|
125
132
|
mapStateError: this.mapError
|
|
126
133
|
};
|
|
127
134
|
}
|
|
128
135
|
isStartRideCompleted() {
|
|
136
|
+
const rideView = this.getRideView();
|
|
137
|
+
if (rideView === 'map') {
|
|
138
|
+
this.mapLoaded = true;
|
|
139
|
+
return true;
|
|
140
|
+
}
|
|
129
141
|
return this.mapLoaded;
|
|
130
142
|
}
|
|
131
143
|
getDisplayProperties(props) {
|
|
132
144
|
let routeProps = super.getDisplayProperties(props);
|
|
133
|
-
const rideView = this.
|
|
145
|
+
const rideView = this.getRideView();
|
|
134
146
|
if (rideView === 'sv') {
|
|
135
147
|
routeProps = { ...routeProps, ...this.getStreetViewProps(props) };
|
|
136
148
|
}
|
|
@@ -145,6 +157,21 @@ let GpxDisplayService = (() => {
|
|
|
145
157
|
...routeProps
|
|
146
158
|
};
|
|
147
159
|
}
|
|
160
|
+
getRideView() {
|
|
161
|
+
if (this.isMobile())
|
|
162
|
+
return 'map';
|
|
163
|
+
const rideView = this.getUserSettings().get('preferences.rideView', 'sv');
|
|
164
|
+
return rideView;
|
|
165
|
+
}
|
|
166
|
+
getRideViewName() {
|
|
167
|
+
const rideView = this.getRideView();
|
|
168
|
+
const map = {
|
|
169
|
+
map: 'Map',
|
|
170
|
+
sv: 'Street View',
|
|
171
|
+
sat: 'Satellite View'
|
|
172
|
+
};
|
|
173
|
+
return map?.[rideView] ?? rideView;
|
|
174
|
+
}
|
|
148
175
|
onSatelliteViewEvent(state, error) {
|
|
149
176
|
if (state === 'Loaded') {
|
|
150
177
|
this.mapLoaded = true;
|
|
@@ -232,7 +259,7 @@ let GpxDisplayService = (() => {
|
|
|
232
259
|
}
|
|
233
260
|
onPositionUpdate(state) {
|
|
234
261
|
const { route, position } = state ?? {};
|
|
235
|
-
const rideView = this.
|
|
262
|
+
const rideView = this.getRideView();
|
|
236
263
|
if (rideView === 'sv') {
|
|
237
264
|
const sincePrev = Date.now() - (this.tsPrevSVUpdate ?? 0);
|
|
238
265
|
if (sincePrev > this.getStreetViewUpdateDelay() - 25) {
|
|
@@ -275,12 +302,18 @@ let GpxDisplayService = (() => {
|
|
|
275
302
|
}
|
|
276
303
|
catch { }
|
|
277
304
|
}
|
|
305
|
+
isMobile() {
|
|
306
|
+
return this.getBindings().appInfo?.getChannel() === 'mobile';
|
|
307
|
+
}
|
|
278
308
|
getUserSettings() {
|
|
279
309
|
return (0, settings_1.useUserSettings)();
|
|
280
310
|
}
|
|
281
311
|
getGoogleMaps() {
|
|
282
312
|
return (0, apps_1.useGoogleMaps)();
|
|
283
313
|
}
|
|
314
|
+
getBindings() {
|
|
315
|
+
return (0, api_1.getBindings)();
|
|
316
|
+
}
|
|
284
317
|
};
|
|
285
318
|
})();
|
|
286
319
|
exports.GpxDisplayService = GpxDisplayService;
|
|
@@ -157,6 +157,7 @@ let RidePageService = (() => {
|
|
|
157
157
|
const rideType = this.getRideDisplay().getRideType();
|
|
158
158
|
switch (rideType) {
|
|
159
159
|
case 'Video': return this.getVideoRideDisplayProps();
|
|
160
|
+
case 'GPX': return this.getGPXRideDisplayProps();
|
|
160
161
|
default:
|
|
161
162
|
return null;
|
|
162
163
|
}
|
|
@@ -264,6 +265,22 @@ let RidePageService = (() => {
|
|
|
264
265
|
};
|
|
265
266
|
return displayProps;
|
|
266
267
|
}
|
|
268
|
+
getGPXRideDisplayProps() {
|
|
269
|
+
const props = this.rideDisplayProps;
|
|
270
|
+
const state = this.getRideDisplay().getState();
|
|
271
|
+
const rideType = this.getRideDisplay().getRideType();
|
|
272
|
+
const isStarting = state === 'Idle' || state === 'Starting' || state === 'Error';
|
|
273
|
+
const displayProps = {
|
|
274
|
+
rideState: state,
|
|
275
|
+
rideType,
|
|
276
|
+
startGateProps: this.startGateProps,
|
|
277
|
+
startOverlayProps: isStarting ? this.getRideDisplay().getStartOverlayProps() : null,
|
|
278
|
+
menuProps: this.menuProps,
|
|
279
|
+
rideView: props.rideView,
|
|
280
|
+
route: props.route
|
|
281
|
+
};
|
|
282
|
+
return displayProps;
|
|
283
|
+
}
|
|
267
284
|
async checkSecretValidity() {
|
|
268
285
|
if (this.getBindings().appInfo.getChannel() === 'mobile') {
|
|
269
286
|
const secretsStatus = this.getSecretBinding().getSecretsStatus?.();
|
|
@@ -3,7 +3,7 @@ export class FollowRouteDisplayService extends GpxDisplayService {
|
|
|
3
3
|
getLogProps() {
|
|
4
4
|
const route = this.route;
|
|
5
5
|
const settings = this.startSettings;
|
|
6
|
-
const rideView = this.
|
|
6
|
+
const rideView = this.getRideView();
|
|
7
7
|
const bikeProps = this.getBikeLogProps();
|
|
8
8
|
const props = {
|
|
9
9
|
mode: 'follow route',
|
|
@@ -32,6 +32,7 @@ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn,
|
|
|
32
32
|
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
33
33
|
done = true;
|
|
34
34
|
};
|
|
35
|
+
import { getBindings } from "../../api";
|
|
35
36
|
import { useGoogleMaps } from "../../apps";
|
|
36
37
|
import { Injectable } from "../../base/decorators";
|
|
37
38
|
import { Observer } from "../../base/types";
|
|
@@ -46,13 +47,16 @@ let GpxDisplayService = (() => {
|
|
|
46
47
|
let _instanceExtraInitializers = [];
|
|
47
48
|
let _getUserSettings_decorators;
|
|
48
49
|
let _getGoogleMaps_decorators;
|
|
50
|
+
let _getBindings_decorators;
|
|
49
51
|
return class GpxDisplayService extends _classSuper {
|
|
50
52
|
static {
|
|
51
53
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
52
54
|
_getUserSettings_decorators = [Injectable];
|
|
53
55
|
_getGoogleMaps_decorators = [Injectable];
|
|
56
|
+
_getBindings_decorators = [Injectable];
|
|
54
57
|
__esDecorate(this, null, _getUserSettings_decorators, { kind: "method", name: "getUserSettings", static: false, private: false, access: { has: obj => "getUserSettings" in obj, get: obj => obj.getUserSettings }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
55
58
|
__esDecorate(this, null, _getGoogleMaps_decorators, { kind: "method", name: "getGoogleMaps", static: false, private: false, access: { has: obj => "getGoogleMaps" in obj, get: obj => obj.getGoogleMaps }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
59
|
+
__esDecorate(this, null, _getBindings_decorators, { kind: "method", name: "getBindings", static: false, private: false, access: { has: obj => "getBindings" in obj, get: obj => obj.getBindings }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
56
60
|
if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
57
61
|
}
|
|
58
62
|
mapLoaded = (__runInitializers(this, _instanceExtraInitializers), false);
|
|
@@ -71,7 +75,7 @@ let GpxDisplayService = (() => {
|
|
|
71
75
|
}
|
|
72
76
|
initView() {
|
|
73
77
|
try {
|
|
74
|
-
const rideView = this.
|
|
78
|
+
const rideView = this.getRideView();
|
|
75
79
|
if (rideView === 'sv') {
|
|
76
80
|
const updateFreq = this.getDefaultUpdateFrequency();
|
|
77
81
|
const minimalPause = this.getMinimalPause();
|
|
@@ -112,22 +116,30 @@ let GpxDisplayService = (() => {
|
|
|
112
116
|
};
|
|
113
117
|
}
|
|
114
118
|
getStartOverlayProps() {
|
|
115
|
-
const rideView = this.
|
|
119
|
+
const rideView = this.getRideView();
|
|
116
120
|
if (rideView === 'map') {
|
|
117
|
-
return {
|
|
121
|
+
return {
|
|
122
|
+
mapType: this.getRideViewName(),
|
|
123
|
+
mapState: 'Loaded'
|
|
124
|
+
};
|
|
118
125
|
}
|
|
119
126
|
return {
|
|
120
|
-
mapType:
|
|
127
|
+
mapType: this.getRideViewName(),
|
|
121
128
|
mapState: this.mapLoaded ? 'Loaded' : 'Loading',
|
|
122
129
|
mapStateError: this.mapError
|
|
123
130
|
};
|
|
124
131
|
}
|
|
125
132
|
isStartRideCompleted() {
|
|
133
|
+
const rideView = this.getRideView();
|
|
134
|
+
if (rideView === 'map') {
|
|
135
|
+
this.mapLoaded = true;
|
|
136
|
+
return true;
|
|
137
|
+
}
|
|
126
138
|
return this.mapLoaded;
|
|
127
139
|
}
|
|
128
140
|
getDisplayProperties(props) {
|
|
129
141
|
let routeProps = super.getDisplayProperties(props);
|
|
130
|
-
const rideView = this.
|
|
142
|
+
const rideView = this.getRideView();
|
|
131
143
|
if (rideView === 'sv') {
|
|
132
144
|
routeProps = { ...routeProps, ...this.getStreetViewProps(props) };
|
|
133
145
|
}
|
|
@@ -142,6 +154,21 @@ let GpxDisplayService = (() => {
|
|
|
142
154
|
...routeProps
|
|
143
155
|
};
|
|
144
156
|
}
|
|
157
|
+
getRideView() {
|
|
158
|
+
if (this.isMobile())
|
|
159
|
+
return 'map';
|
|
160
|
+
const rideView = this.getUserSettings().get('preferences.rideView', 'sv');
|
|
161
|
+
return rideView;
|
|
162
|
+
}
|
|
163
|
+
getRideViewName() {
|
|
164
|
+
const rideView = this.getRideView();
|
|
165
|
+
const map = {
|
|
166
|
+
map: 'Map',
|
|
167
|
+
sv: 'Street View',
|
|
168
|
+
sat: 'Satellite View'
|
|
169
|
+
};
|
|
170
|
+
return map?.[rideView] ?? rideView;
|
|
171
|
+
}
|
|
145
172
|
onSatelliteViewEvent(state, error) {
|
|
146
173
|
if (state === 'Loaded') {
|
|
147
174
|
this.mapLoaded = true;
|
|
@@ -229,7 +256,7 @@ let GpxDisplayService = (() => {
|
|
|
229
256
|
}
|
|
230
257
|
onPositionUpdate(state) {
|
|
231
258
|
const { route, position } = state ?? {};
|
|
232
|
-
const rideView = this.
|
|
259
|
+
const rideView = this.getRideView();
|
|
233
260
|
if (rideView === 'sv') {
|
|
234
261
|
const sincePrev = Date.now() - (this.tsPrevSVUpdate ?? 0);
|
|
235
262
|
if (sincePrev > this.getStreetViewUpdateDelay() - 25) {
|
|
@@ -272,12 +299,18 @@ let GpxDisplayService = (() => {
|
|
|
272
299
|
}
|
|
273
300
|
catch { }
|
|
274
301
|
}
|
|
302
|
+
isMobile() {
|
|
303
|
+
return this.getBindings().appInfo?.getChannel() === 'mobile';
|
|
304
|
+
}
|
|
275
305
|
getUserSettings() {
|
|
276
306
|
return useUserSettings();
|
|
277
307
|
}
|
|
278
308
|
getGoogleMaps() {
|
|
279
309
|
return useGoogleMaps();
|
|
280
310
|
}
|
|
311
|
+
getBindings() {
|
|
312
|
+
return getBindings();
|
|
313
|
+
}
|
|
281
314
|
};
|
|
282
315
|
})();
|
|
283
316
|
export { GpxDisplayService };
|
|
@@ -99,8 +99,9 @@ export interface MapOverlayDisplayProps extends OverlayDisplayProps {
|
|
|
99
99
|
bounds?: Number[][];
|
|
100
100
|
onViewportChange?: (viewport: MapViewPort) => void;
|
|
101
101
|
}
|
|
102
|
+
export type RideViewType = 'sv' | 'map' | 'sat';
|
|
102
103
|
export interface GpxDisplayProps extends RouteDisplayProps {
|
|
103
|
-
rideView:
|
|
104
|
+
rideView: RideViewType;
|
|
104
105
|
}
|
|
105
106
|
export interface RouteOptionDisplayProps {
|
|
106
107
|
optionsDelay?: number;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { IncyclistPageService } from "../../base/pages";
|
|
2
2
|
import { CurrentRideDisplayProps, CurrentRideState, IObserver, RideType } from "../../types";
|
|
3
|
-
import { AnyRidePageDisplayProps, IRidePageService, RideMenuProps, StartGateProps, VideoRidePageDisplayProps } from "./types";
|
|
3
|
+
import { AnyRidePageDisplayProps, GPXRidePageDisplayProps, IRidePageService, RideMenuProps, StartGateProps, VideoRidePageDisplayProps } from "./types";
|
|
4
4
|
import { ISecretBinding } from "../../api/secret";
|
|
5
5
|
export declare class RidePageService extends IncyclistPageService implements IRidePageService {
|
|
6
6
|
protected eventHandler: Record<string, Function>;
|
|
@@ -28,6 +28,7 @@ export declare class RidePageService extends IncyclistPageService implements IRi
|
|
|
28
28
|
onIgnoreStart(): void;
|
|
29
29
|
onCancelStart(): Promise<void>;
|
|
30
30
|
protected getVideoRideDisplayProps(): VideoRidePageDisplayProps;
|
|
31
|
+
protected getGPXRideDisplayProps(): GPXRidePageDisplayProps;
|
|
31
32
|
protected checkSecretValidity(): Promise<void>;
|
|
32
33
|
protected showStartGate(): void;
|
|
33
34
|
protected hideStartgate(): void;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { IPageService } from "../../base/pages";
|
|
2
2
|
import { Route } from "../../routes/base/model/route";
|
|
3
3
|
import { IObserver } from "../../types";
|
|
4
|
-
import { CurrentRideState,
|
|
4
|
+
import { CurrentRideState, GPXStartOverlayProps, RideType, RideViewType, StartOverlayProps, VideoDisplayProps, VideoStartOverlayProps } from "../types";
|
|
5
5
|
export interface StartGateProps {
|
|
6
6
|
title: string;
|
|
7
7
|
body: string;
|
|
@@ -19,7 +19,7 @@ export interface VideoRidePageDisplayProps extends RidePageDisplayProps {
|
|
|
19
19
|
videos?: VideoDisplayProps[];
|
|
20
20
|
}
|
|
21
21
|
export interface GPXRidePageDisplayProps extends RidePageDisplayProps {
|
|
22
|
-
|
|
22
|
+
rideView?: RideViewType;
|
|
23
23
|
}
|
|
24
24
|
export type AnyRidePageDisplayProps = VideoRidePageDisplayProps | RidePageDisplayProps;
|
|
25
25
|
export interface RideMenuProps {
|
|
@@ -33,8 +33,8 @@ export declare class GpxDisplayService extends RouteDisplayService {
|
|
|
33
33
|
displayPosition: import("../base").CurrentPosition;
|
|
34
34
|
};
|
|
35
35
|
getStartOverlayProps(): {
|
|
36
|
-
mapType
|
|
37
|
-
mapState
|
|
36
|
+
mapType: string;
|
|
37
|
+
mapState: string;
|
|
38
38
|
mapStateError?: undefined;
|
|
39
39
|
} | {
|
|
40
40
|
mapType: string;
|
|
@@ -43,6 +43,8 @@ export declare class GpxDisplayService extends RouteDisplayService {
|
|
|
43
43
|
};
|
|
44
44
|
isStartRideCompleted(): boolean;
|
|
45
45
|
getDisplayProperties(props: CurrentRideDisplayProps): GpxDisplayProps;
|
|
46
|
+
protected getRideView(): string;
|
|
47
|
+
protected getRideViewName(): string;
|
|
46
48
|
protected onSatelliteViewEvent(state: SatelliteViewEvent, error?: string): void;
|
|
47
49
|
protected onMapViewEvent(state: SatelliteViewEvent, error?: string): void;
|
|
48
50
|
protected onStreetViewEvent(event: StreetViewEvent, data: any): void;
|
|
@@ -53,6 +55,8 @@ export declare class GpxDisplayService extends RouteDisplayService {
|
|
|
53
55
|
protected getMinimalPause(): number;
|
|
54
56
|
protected getBestCaseUpdateFrequency(): number;
|
|
55
57
|
protected getNumSetting(key: string): number;
|
|
58
|
+
protected isMobile(): boolean;
|
|
56
59
|
protected getUserSettings(): UserSettingsService;
|
|
57
60
|
protected getGoogleMaps(): GoogleMapsService;
|
|
61
|
+
protected getBindings(): import("../../api").IncyclistBindings;
|
|
58
62
|
}
|