incyclist-services 1.7.102 → 1.7.104
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/activities/page/service.js +2 -3
- package/lib/cjs/base/pages/service.js +0 -11
- package/lib/cjs/ride/page/service.js +1 -3
- package/lib/cjs/routes/list/cards/RouteCard.js +1 -2
- package/lib/cjs/routes/page/service.js +2 -3
- package/lib/cjs/workouts/list/service.js +19 -0
- package/lib/cjs/workouts/page/service.js +2 -17
- package/lib/esm/activities/page/service.js +2 -3
- package/lib/esm/base/pages/service.js +0 -11
- package/lib/esm/ride/page/service.js +1 -3
- package/lib/esm/routes/list/cards/RouteCard.js +1 -2
- package/lib/esm/routes/page/service.js +2 -3
- package/lib/esm/workouts/list/service.js +19 -0
- package/lib/esm/workouts/page/service.js +2 -17
- package/lib/types/activities/page/types.d.ts +0 -1
- package/lib/types/appstate/types.d.ts +1 -1
- package/lib/types/base/pages/service.d.ts +0 -1
- package/lib/types/routes/page/types.d.ts +0 -1
- package/lib/types/workouts/list/service.d.ts +4 -0
- package/lib/types/workouts/page/service.d.ts +0 -1
- package/lib/types/workouts/page/types.d.ts +1 -5
- package/package.json +1 -1
|
@@ -151,15 +151,14 @@ let ActivitiesPageService = (() => {
|
|
|
151
151
|
}
|
|
152
152
|
}
|
|
153
153
|
getActivityDetailsProps(activityId) {
|
|
154
|
-
const comboEnabled = this.isWorkoutComboEnabled();
|
|
155
154
|
try {
|
|
156
155
|
const workout = this.getWorkoutList().getSelected();
|
|
157
156
|
const attachedWorkout = workout ? { id: workout.id, title: workout.name } : null;
|
|
158
|
-
return { activityId, attachedWorkout
|
|
157
|
+
return { activityId, attachedWorkout };
|
|
159
158
|
}
|
|
160
159
|
catch (err) {
|
|
161
160
|
this.logError(err, 'getActivityDetailsProps');
|
|
162
|
-
return { activityId, attachedWorkout: null
|
|
161
|
+
return { activityId, attachedWorkout: null };
|
|
163
162
|
}
|
|
164
163
|
}
|
|
165
164
|
onClearWorkoutSelection() {
|
|
@@ -122,17 +122,6 @@ let IncyclistPageService = (() => {
|
|
|
122
122
|
getAppState() {
|
|
123
123
|
return (0, appstate_1.useAppState)();
|
|
124
124
|
}
|
|
125
|
-
isWorkoutComboEnabled() {
|
|
126
|
-
try {
|
|
127
|
-
const appState = this.getAppState();
|
|
128
|
-
return appState.hasFeature('MOBILE_WORKOUTS')
|
|
129
|
-
&& appState.hasFeature('MOBILE_WORKOUT_ROUTE_COMBO');
|
|
130
|
-
}
|
|
131
|
-
catch (err) {
|
|
132
|
-
this.logError(err, 'isWorkoutComboEnabled');
|
|
133
|
-
return false;
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
125
|
};
|
|
137
126
|
})();
|
|
138
127
|
exports.IncyclistPageService = IncyclistPageService;
|
|
@@ -388,7 +388,7 @@ let RidePageService = (() => {
|
|
|
388
388
|
}
|
|
389
389
|
getCornerWidget() {
|
|
390
390
|
try {
|
|
391
|
-
if (!this.isWorkoutAttached()
|
|
391
|
+
if (!this.isWorkoutAttached())
|
|
392
392
|
return undefined;
|
|
393
393
|
return this.getUserSettings().get(CORNER_WIDGET_SETTING_KEY, 'elevation');
|
|
394
394
|
}
|
|
@@ -764,8 +764,6 @@ let RidePageService = (() => {
|
|
|
764
764
|
return true;
|
|
765
765
|
if (!this.isRideType('Video', 'GPX'))
|
|
766
766
|
return false;
|
|
767
|
-
if (!this.isWorkoutComboEnabled())
|
|
768
|
-
return false;
|
|
769
767
|
return this.getWorkoutRide().inUse();
|
|
770
768
|
}
|
|
771
769
|
catch (err) {
|
|
@@ -383,8 +383,7 @@ let RouteCard = (() => {
|
|
|
383
383
|
const next = (0, route_1.getNextVideoId)(this.route);
|
|
384
384
|
showNextOverwrite = !!next;
|
|
385
385
|
hasWorkout = (0, valid_1.valid)(workouts.getSelected());
|
|
386
|
-
|
|
387
|
-
showWorkoutOption = workoutsEnabled && !hasWorkout;
|
|
386
|
+
showWorkoutOption = !hasWorkout;
|
|
388
387
|
if (showNextOverwrite) {
|
|
389
388
|
const card = (0, service_1.getRouteList)().getCard(next);
|
|
390
389
|
const route = card?.getData();
|
|
@@ -321,13 +321,12 @@ let RoutesPageService = (() => {
|
|
|
321
321
|
}
|
|
322
322
|
}
|
|
323
323
|
getRouteDetailsProps(routeId) {
|
|
324
|
-
const comboEnabled = this.isWorkoutComboEnabled();
|
|
325
324
|
try {
|
|
326
|
-
return { routeId, attachedWorkout: this.getAttachedWorkoutProps()
|
|
325
|
+
return { routeId, attachedWorkout: this.getAttachedWorkoutProps() };
|
|
327
326
|
}
|
|
328
327
|
catch (err) {
|
|
329
328
|
this.logError(err, 'getRouteDetailsProps');
|
|
330
|
-
return { routeId, attachedWorkout: null
|
|
329
|
+
return { routeId, attachedWorkout: null };
|
|
331
330
|
}
|
|
332
331
|
}
|
|
333
332
|
getAttachedWorkoutProps() {
|
|
@@ -48,6 +48,7 @@ const ActiveImportCard_1 = require("./cards/ActiveImportCard");
|
|
|
48
48
|
const WorkoutCard_1 = require("./cards/WorkoutCard");
|
|
49
49
|
const cards_1 = require("./cards");
|
|
50
50
|
const db_1 = require("./loaders/db");
|
|
51
|
+
const api_2 = require("./loaders/api");
|
|
51
52
|
const decorators_1 = require("../../base/decorators");
|
|
52
53
|
const calendar_1 = require("../calendar");
|
|
53
54
|
const ScheduledWorkoutCard_1 = require("./cards/ScheduledWorkoutCard");
|
|
@@ -84,6 +85,7 @@ let WorkoutListService = (() => {
|
|
|
84
85
|
preloadObserver;
|
|
85
86
|
items;
|
|
86
87
|
db;
|
|
88
|
+
api;
|
|
87
89
|
screenProps;
|
|
88
90
|
language;
|
|
89
91
|
selectedWorkout;
|
|
@@ -102,6 +104,7 @@ let WorkoutListService = (() => {
|
|
|
102
104
|
this.language = 'en';
|
|
103
105
|
this.myWorkouts.add(new cards_1.WorkoutImportCard());
|
|
104
106
|
this.myWorkouts.add(new cards_1.WorkoutCreateCard());
|
|
107
|
+
this.api = new api_2.WorkoutsApiLoader();
|
|
105
108
|
this.registerUserChangeHandler();
|
|
106
109
|
this.onUpdate = this.onScheduledWorkoutsUpdated.bind(this);
|
|
107
110
|
this.getWorkoutCalendar().on('updated', this.onUpdate);
|
|
@@ -504,6 +507,11 @@ let WorkoutListService = (() => {
|
|
|
504
507
|
});
|
|
505
508
|
}
|
|
506
509
|
async loadWorkouts() {
|
|
510
|
+
await this.loadWorkoutsFromRepo();
|
|
511
|
+
await this.loadWorkoutsFromApi();
|
|
512
|
+
this.logEvent({ message: 'loadWorkoutsFromApi done' });
|
|
513
|
+
}
|
|
514
|
+
async loadWorkoutsFromRepo() {
|
|
507
515
|
return new Promise((done, reject) => {
|
|
508
516
|
try {
|
|
509
517
|
const observer = this.getRepo().load();
|
|
@@ -519,6 +527,17 @@ let WorkoutListService = (() => {
|
|
|
519
527
|
}
|
|
520
528
|
});
|
|
521
529
|
}
|
|
530
|
+
async loadWorkoutsFromApi() {
|
|
531
|
+
return new Promise((done) => {
|
|
532
|
+
this.logEvent({ message: 'loadWorkoutsFromApi start' });
|
|
533
|
+
const observer = this.api.load();
|
|
534
|
+
const add = this.addItem.bind(this);
|
|
535
|
+
const update = this.updateItem.bind(this);
|
|
536
|
+
observer.on('workout.added', add);
|
|
537
|
+
observer.on('workout.updated', update);
|
|
538
|
+
observer.on('done', done);
|
|
539
|
+
});
|
|
540
|
+
}
|
|
522
541
|
addItem(item) {
|
|
523
542
|
const list = this.selectList(item);
|
|
524
543
|
let card;
|
|
@@ -38,7 +38,6 @@ exports.getWorkoutListPageService = exports.WorkoutListPageService = void 0;
|
|
|
38
38
|
const types_1 = require("../../base/types");
|
|
39
39
|
const pages_1 = require("../../base/pages");
|
|
40
40
|
const decorators_1 = require("../../base/decorators");
|
|
41
|
-
const appstate_1 = require("../../appstate");
|
|
42
41
|
const observer_1 = require("../../base/types/observer");
|
|
43
42
|
const settings_1 = require("../../settings");
|
|
44
43
|
const calendar_1 = require("../calendar");
|
|
@@ -59,7 +58,6 @@ let WorkoutListPageService = (() => {
|
|
|
59
58
|
let _getRouteList_decorators;
|
|
60
59
|
let _getWorkoutCalendar_decorators;
|
|
61
60
|
let _getUserSettings_decorators;
|
|
62
|
-
let _getAppState_decorators;
|
|
63
61
|
var WorkoutListPageService = class extends _classSuper {
|
|
64
62
|
static { _classThis = this; }
|
|
65
63
|
static {
|
|
@@ -69,13 +67,11 @@ let WorkoutListPageService = (() => {
|
|
|
69
67
|
_getRouteList_decorators = [decorators_1.Injectable];
|
|
70
68
|
_getWorkoutCalendar_decorators = [decorators_1.Injectable];
|
|
71
69
|
_getUserSettings_decorators = [decorators_1.Injectable];
|
|
72
|
-
_getAppState_decorators = [decorators_1.Injectable];
|
|
73
70
|
__esDecorate(this, null, _getDevicePairing_decorators, { kind: "method", name: "getDevicePairing", static: false, private: false, access: { has: obj => "getDevicePairing" in obj, get: obj => obj.getDevicePairing }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
74
71
|
__esDecorate(this, null, _getWorkoutList_decorators, { kind: "method", name: "getWorkoutList", static: false, private: false, access: { has: obj => "getWorkoutList" in obj, get: obj => obj.getWorkoutList }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
75
72
|
__esDecorate(this, null, _getRouteList_decorators, { kind: "method", name: "getRouteList", static: false, private: false, access: { has: obj => "getRouteList" in obj, get: obj => obj.getRouteList }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
76
73
|
__esDecorate(this, null, _getWorkoutCalendar_decorators, { kind: "method", name: "getWorkoutCalendar", static: false, private: false, access: { has: obj => "getWorkoutCalendar" in obj, get: obj => obj.getWorkoutCalendar }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
77
74
|
__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);
|
|
78
|
-
__esDecorate(this, null, _getAppState_decorators, { kind: "method", name: "getAppState", static: false, private: false, access: { has: obj => "getAppState" in obj, get: obj => obj.getAppState }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
79
75
|
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
80
76
|
WorkoutListPageService = _classThis = _classDescriptor.value;
|
|
81
77
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
@@ -97,11 +93,7 @@ let WorkoutListPageService = (() => {
|
|
|
97
93
|
openPage() {
|
|
98
94
|
try {
|
|
99
95
|
super.openPage();
|
|
100
|
-
|
|
101
|
-
if (!this.getAppState().hasFeature('MOBILE_WORKOUTS')) {
|
|
102
|
-
pageType = 'placeholder';
|
|
103
|
-
}
|
|
104
|
-
this.logEvent({ message: 'page shown', page: 'Workouts', pageType });
|
|
96
|
+
this.logEvent({ message: 'page shown', page: 'Workouts' });
|
|
105
97
|
const { observer } = this.getWorkoutList().open();
|
|
106
98
|
this.listObserver = observer;
|
|
107
99
|
this.listObserver?.on('started', this.listUpdateHandler);
|
|
@@ -134,9 +126,6 @@ let WorkoutListPageService = (() => {
|
|
|
134
126
|
}
|
|
135
127
|
getPageDisplayProps() {
|
|
136
128
|
try {
|
|
137
|
-
if (!this.getAppState().hasFeature('MOBILE_WORKOUTS')) {
|
|
138
|
-
return { pageType: 'placeholder' };
|
|
139
|
-
}
|
|
140
129
|
const service = this.getWorkoutList();
|
|
141
130
|
const loading = service.isStillLoading();
|
|
142
131
|
const upcoming = this.getUpcomingTrainingProps();
|
|
@@ -176,8 +165,7 @@ let WorkoutListPageService = (() => {
|
|
|
176
165
|
canDelete: card.canDelete(),
|
|
177
166
|
isScheduled,
|
|
178
167
|
date: isScheduled ? settingsProps.date : undefined,
|
|
179
|
-
attachedRoute: this.getAttachedRouteProps()
|
|
180
|
-
comboEnabled: this.isWorkoutComboEnabled()
|
|
168
|
+
attachedRoute: this.getAttachedRouteProps()
|
|
181
169
|
};
|
|
182
170
|
}
|
|
183
171
|
catch (err) {
|
|
@@ -526,9 +514,6 @@ let WorkoutListPageService = (() => {
|
|
|
526
514
|
getUserSettings() {
|
|
527
515
|
return (0, settings_1.useUserSettings)();
|
|
528
516
|
}
|
|
529
|
-
getAppState() {
|
|
530
|
-
return (0, appstate_1.useAppState)();
|
|
531
|
-
}
|
|
532
517
|
};
|
|
533
518
|
return WorkoutListPageService = _classThis;
|
|
534
519
|
})();
|
|
@@ -148,15 +148,14 @@ let ActivitiesPageService = (() => {
|
|
|
148
148
|
}
|
|
149
149
|
}
|
|
150
150
|
getActivityDetailsProps(activityId) {
|
|
151
|
-
const comboEnabled = this.isWorkoutComboEnabled();
|
|
152
151
|
try {
|
|
153
152
|
const workout = this.getWorkoutList().getSelected();
|
|
154
153
|
const attachedWorkout = workout ? { id: workout.id, title: workout.name } : null;
|
|
155
|
-
return { activityId, attachedWorkout
|
|
154
|
+
return { activityId, attachedWorkout };
|
|
156
155
|
}
|
|
157
156
|
catch (err) {
|
|
158
157
|
this.logError(err, 'getActivityDetailsProps');
|
|
159
|
-
return { activityId, attachedWorkout: null
|
|
158
|
+
return { activityId, attachedWorkout: null };
|
|
160
159
|
}
|
|
161
160
|
}
|
|
162
161
|
onClearWorkoutSelection() {
|
|
@@ -119,17 +119,6 @@ let IncyclistPageService = (() => {
|
|
|
119
119
|
getAppState() {
|
|
120
120
|
return useAppState();
|
|
121
121
|
}
|
|
122
|
-
isWorkoutComboEnabled() {
|
|
123
|
-
try {
|
|
124
|
-
const appState = this.getAppState();
|
|
125
|
-
return appState.hasFeature('MOBILE_WORKOUTS')
|
|
126
|
-
&& appState.hasFeature('MOBILE_WORKOUT_ROUTE_COMBO');
|
|
127
|
-
}
|
|
128
|
-
catch (err) {
|
|
129
|
-
this.logError(err, 'isWorkoutComboEnabled');
|
|
130
|
-
return false;
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
122
|
};
|
|
134
123
|
})();
|
|
135
124
|
export { IncyclistPageService };
|
|
@@ -385,7 +385,7 @@ let RidePageService = (() => {
|
|
|
385
385
|
}
|
|
386
386
|
getCornerWidget() {
|
|
387
387
|
try {
|
|
388
|
-
if (!this.isWorkoutAttached()
|
|
388
|
+
if (!this.isWorkoutAttached())
|
|
389
389
|
return undefined;
|
|
390
390
|
return this.getUserSettings().get(CORNER_WIDGET_SETTING_KEY, 'elevation');
|
|
391
391
|
}
|
|
@@ -761,8 +761,6 @@ let RidePageService = (() => {
|
|
|
761
761
|
return true;
|
|
762
762
|
if (!this.isRideType('Video', 'GPX'))
|
|
763
763
|
return false;
|
|
764
|
-
if (!this.isWorkoutComboEnabled())
|
|
765
|
-
return false;
|
|
766
764
|
return this.getWorkoutRide().inUse();
|
|
767
765
|
}
|
|
768
766
|
catch (err) {
|
|
@@ -380,8 +380,7 @@ let RouteCard = (() => {
|
|
|
380
380
|
const next = getNextVideoId(this.route);
|
|
381
381
|
showNextOverwrite = !!next;
|
|
382
382
|
hasWorkout = valid(workouts.getSelected());
|
|
383
|
-
|
|
384
|
-
showWorkoutOption = workoutsEnabled && !hasWorkout;
|
|
383
|
+
showWorkoutOption = !hasWorkout;
|
|
385
384
|
if (showNextOverwrite) {
|
|
386
385
|
const card = getRouteList().getCard(next);
|
|
387
386
|
const route = card?.getData();
|
|
@@ -318,13 +318,12 @@ let RoutesPageService = (() => {
|
|
|
318
318
|
}
|
|
319
319
|
}
|
|
320
320
|
getRouteDetailsProps(routeId) {
|
|
321
|
-
const comboEnabled = this.isWorkoutComboEnabled();
|
|
322
321
|
try {
|
|
323
|
-
return { routeId, attachedWorkout: this.getAttachedWorkoutProps()
|
|
322
|
+
return { routeId, attachedWorkout: this.getAttachedWorkoutProps() };
|
|
324
323
|
}
|
|
325
324
|
catch (err) {
|
|
326
325
|
this.logError(err, 'getRouteDetailsProps');
|
|
327
|
-
return { routeId, attachedWorkout: null
|
|
326
|
+
return { routeId, attachedWorkout: null };
|
|
328
327
|
}
|
|
329
328
|
}
|
|
330
329
|
getAttachedWorkoutProps() {
|
|
@@ -45,6 +45,7 @@ import { ActiveImportCard } from "./cards/ActiveImportCard";
|
|
|
45
45
|
import { WorkoutCard } from "./cards/WorkoutCard";
|
|
46
46
|
import { WorkoutImportCard, WorkoutCreateCard } from './cards';
|
|
47
47
|
import { WorkoutsDbLoader } from "./loaders/db";
|
|
48
|
+
import { WorkoutsApiLoader } from "./loaders/api";
|
|
48
49
|
import { Injectable } from "../../base/decorators";
|
|
49
50
|
import { useWorkoutCalendar } from "../calendar";
|
|
50
51
|
import { ScheduledWorkoutCard } from "./cards/ScheduledWorkoutCard";
|
|
@@ -81,6 +82,7 @@ let WorkoutListService = (() => {
|
|
|
81
82
|
preloadObserver;
|
|
82
83
|
items;
|
|
83
84
|
db;
|
|
85
|
+
api;
|
|
84
86
|
screenProps;
|
|
85
87
|
language;
|
|
86
88
|
selectedWorkout;
|
|
@@ -99,6 +101,7 @@ let WorkoutListService = (() => {
|
|
|
99
101
|
this.language = 'en';
|
|
100
102
|
this.myWorkouts.add(new WorkoutImportCard());
|
|
101
103
|
this.myWorkouts.add(new WorkoutCreateCard());
|
|
104
|
+
this.api = new WorkoutsApiLoader();
|
|
102
105
|
this.registerUserChangeHandler();
|
|
103
106
|
this.onUpdate = this.onScheduledWorkoutsUpdated.bind(this);
|
|
104
107
|
this.getWorkoutCalendar().on('updated', this.onUpdate);
|
|
@@ -501,6 +504,11 @@ let WorkoutListService = (() => {
|
|
|
501
504
|
});
|
|
502
505
|
}
|
|
503
506
|
async loadWorkouts() {
|
|
507
|
+
await this.loadWorkoutsFromRepo();
|
|
508
|
+
await this.loadWorkoutsFromApi();
|
|
509
|
+
this.logEvent({ message: 'loadWorkoutsFromApi done' });
|
|
510
|
+
}
|
|
511
|
+
async loadWorkoutsFromRepo() {
|
|
504
512
|
return new Promise((done, reject) => {
|
|
505
513
|
try {
|
|
506
514
|
const observer = this.getRepo().load();
|
|
@@ -516,6 +524,17 @@ let WorkoutListService = (() => {
|
|
|
516
524
|
}
|
|
517
525
|
});
|
|
518
526
|
}
|
|
527
|
+
async loadWorkoutsFromApi() {
|
|
528
|
+
return new Promise((done) => {
|
|
529
|
+
this.logEvent({ message: 'loadWorkoutsFromApi start' });
|
|
530
|
+
const observer = this.api.load();
|
|
531
|
+
const add = this.addItem.bind(this);
|
|
532
|
+
const update = this.updateItem.bind(this);
|
|
533
|
+
observer.on('workout.added', add);
|
|
534
|
+
observer.on('workout.updated', update);
|
|
535
|
+
observer.on('done', done);
|
|
536
|
+
});
|
|
537
|
+
}
|
|
519
538
|
addItem(item) {
|
|
520
539
|
const list = this.selectList(item);
|
|
521
540
|
let card;
|
|
@@ -35,7 +35,6 @@ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn,
|
|
|
35
35
|
import { Singleton } from "../../base/types";
|
|
36
36
|
import { IncyclistPageService } from "../../base/pages";
|
|
37
37
|
import { Injectable } from "../../base/decorators";
|
|
38
|
-
import { useAppState } from "../../appstate";
|
|
39
38
|
import { Observer } from "../../base/types/observer";
|
|
40
39
|
import { useUserSettings } from "../../settings";
|
|
41
40
|
import { useWorkoutCalendar } from "../calendar";
|
|
@@ -56,7 +55,6 @@ let WorkoutListPageService = (() => {
|
|
|
56
55
|
let _getRouteList_decorators;
|
|
57
56
|
let _getWorkoutCalendar_decorators;
|
|
58
57
|
let _getUserSettings_decorators;
|
|
59
|
-
let _getAppState_decorators;
|
|
60
58
|
var WorkoutListPageService = class extends _classSuper {
|
|
61
59
|
static { _classThis = this; }
|
|
62
60
|
static {
|
|
@@ -66,13 +64,11 @@ let WorkoutListPageService = (() => {
|
|
|
66
64
|
_getRouteList_decorators = [Injectable];
|
|
67
65
|
_getWorkoutCalendar_decorators = [Injectable];
|
|
68
66
|
_getUserSettings_decorators = [Injectable];
|
|
69
|
-
_getAppState_decorators = [Injectable];
|
|
70
67
|
__esDecorate(this, null, _getDevicePairing_decorators, { kind: "method", name: "getDevicePairing", static: false, private: false, access: { has: obj => "getDevicePairing" in obj, get: obj => obj.getDevicePairing }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
71
68
|
__esDecorate(this, null, _getWorkoutList_decorators, { kind: "method", name: "getWorkoutList", static: false, private: false, access: { has: obj => "getWorkoutList" in obj, get: obj => obj.getWorkoutList }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
72
69
|
__esDecorate(this, null, _getRouteList_decorators, { kind: "method", name: "getRouteList", static: false, private: false, access: { has: obj => "getRouteList" in obj, get: obj => obj.getRouteList }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
73
70
|
__esDecorate(this, null, _getWorkoutCalendar_decorators, { kind: "method", name: "getWorkoutCalendar", static: false, private: false, access: { has: obj => "getWorkoutCalendar" in obj, get: obj => obj.getWorkoutCalendar }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
74
71
|
__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);
|
|
75
|
-
__esDecorate(this, null, _getAppState_decorators, { kind: "method", name: "getAppState", static: false, private: false, access: { has: obj => "getAppState" in obj, get: obj => obj.getAppState }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
76
72
|
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
77
73
|
WorkoutListPageService = _classThis = _classDescriptor.value;
|
|
78
74
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
@@ -94,11 +90,7 @@ let WorkoutListPageService = (() => {
|
|
|
94
90
|
openPage() {
|
|
95
91
|
try {
|
|
96
92
|
super.openPage();
|
|
97
|
-
|
|
98
|
-
if (!this.getAppState().hasFeature('MOBILE_WORKOUTS')) {
|
|
99
|
-
pageType = 'placeholder';
|
|
100
|
-
}
|
|
101
|
-
this.logEvent({ message: 'page shown', page: 'Workouts', pageType });
|
|
93
|
+
this.logEvent({ message: 'page shown', page: 'Workouts' });
|
|
102
94
|
const { observer } = this.getWorkoutList().open();
|
|
103
95
|
this.listObserver = observer;
|
|
104
96
|
this.listObserver?.on('started', this.listUpdateHandler);
|
|
@@ -131,9 +123,6 @@ let WorkoutListPageService = (() => {
|
|
|
131
123
|
}
|
|
132
124
|
getPageDisplayProps() {
|
|
133
125
|
try {
|
|
134
|
-
if (!this.getAppState().hasFeature('MOBILE_WORKOUTS')) {
|
|
135
|
-
return { pageType: 'placeholder' };
|
|
136
|
-
}
|
|
137
126
|
const service = this.getWorkoutList();
|
|
138
127
|
const loading = service.isStillLoading();
|
|
139
128
|
const upcoming = this.getUpcomingTrainingProps();
|
|
@@ -173,8 +162,7 @@ let WorkoutListPageService = (() => {
|
|
|
173
162
|
canDelete: card.canDelete(),
|
|
174
163
|
isScheduled,
|
|
175
164
|
date: isScheduled ? settingsProps.date : undefined,
|
|
176
|
-
attachedRoute: this.getAttachedRouteProps()
|
|
177
|
-
comboEnabled: this.isWorkoutComboEnabled()
|
|
165
|
+
attachedRoute: this.getAttachedRouteProps()
|
|
178
166
|
};
|
|
179
167
|
}
|
|
180
168
|
catch (err) {
|
|
@@ -523,9 +511,6 @@ let WorkoutListPageService = (() => {
|
|
|
523
511
|
getUserSettings() {
|
|
524
512
|
return useUserSettings();
|
|
525
513
|
}
|
|
526
|
-
getAppState() {
|
|
527
|
-
return useAppState();
|
|
528
|
-
}
|
|
529
514
|
};
|
|
530
515
|
return WorkoutListPageService = _classThis;
|
|
531
516
|
})();
|
|
@@ -10,7 +10,6 @@ export type { AttachedWorkoutProps };
|
|
|
10
10
|
export interface ActivityDetailsProps {
|
|
11
11
|
activityId: string;
|
|
12
12
|
attachedWorkout: AttachedWorkoutProps | null;
|
|
13
|
-
comboEnabled: boolean;
|
|
14
13
|
}
|
|
15
14
|
export interface IActivitiesPageService extends IPageService {
|
|
16
15
|
getPageDisplayProps(): ActivitiesPageDisplayProps;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type FeatureToggle = 'NEW_SEARCH_UI' | 'CONTROLLERS' | '
|
|
1
|
+
export type FeatureToggle = 'NEW_SEARCH_UI' | 'CONTROLLERS' | 'WEBBLE_WINDOWS' | 'MOBILE_NEXT_VIDEO';
|
|
2
2
|
export type Interfaces = 'ant' | 'ble' | 'serial' | 'wifi' | 'tcpip';
|
|
3
3
|
export type BLEFeatures = {
|
|
4
4
|
services: Array<string>;
|
|
@@ -20,5 +20,4 @@ export declare class IncyclistPageService extends IncyclistService implements IP
|
|
|
20
20
|
protected getUIBinding(): import("../../api").INativeUI;
|
|
21
21
|
protected getBindings(): import("../../api").IncyclistBindings;
|
|
22
22
|
protected getAppState(): import("../../appstate").AppStateService;
|
|
23
|
-
protected isWorkoutComboEnabled(): boolean;
|
|
24
23
|
}
|
|
@@ -41,7 +41,6 @@ export interface AttachedWorkoutProps {
|
|
|
41
41
|
export interface RouteDetailsProps {
|
|
42
42
|
routeId: string;
|
|
43
43
|
attachedWorkout: AttachedWorkoutProps | null;
|
|
44
|
-
comboEnabled: boolean;
|
|
45
44
|
}
|
|
46
45
|
export type DownloadStatus = 'downloading' | 'done' | 'failed' | 'required';
|
|
47
46
|
export interface DownloadRowDisplayProps {
|
|
@@ -8,6 +8,7 @@ import { ActiveImportCard } from "./cards/ActiveImportCard";
|
|
|
8
8
|
import { WorkoutCard } from "./cards/WorkoutCard";
|
|
9
9
|
import { WorkoutSettings } from "./cards/types";
|
|
10
10
|
import { WorkoutsDbLoader } from "./loaders/db";
|
|
11
|
+
import { WorkoutsApiLoader } from "./loaders/api";
|
|
11
12
|
import { WP, WorkoutSettingsDisplayProps } from "./types";
|
|
12
13
|
import { ScheduledWorkout, WorkoutCalendarEntry } from "../calendar";
|
|
13
14
|
export declare class WorkoutListService extends IncyclistService implements IListService<WP> {
|
|
@@ -18,6 +19,7 @@ export declare class WorkoutListService extends IncyclistService implements ILis
|
|
|
18
19
|
protected preloadObserver: PromiseObserver<void>;
|
|
19
20
|
protected items: Array<WP>;
|
|
20
21
|
protected db: WorkoutsDbLoader;
|
|
22
|
+
protected api: WorkoutsApiLoader;
|
|
21
23
|
protected screenProps: any;
|
|
22
24
|
protected language: string;
|
|
23
25
|
protected selectedWorkout: Workout;
|
|
@@ -65,6 +67,8 @@ export declare class WorkoutListService extends IncyclistService implements ILis
|
|
|
65
67
|
protected resetLists(): void;
|
|
66
68
|
protected resetCards(): void;
|
|
67
69
|
protected loadWorkouts(): Promise<void>;
|
|
70
|
+
protected loadWorkoutsFromRepo(): Promise<void>;
|
|
71
|
+
protected loadWorkoutsFromApi(): Promise<void>;
|
|
68
72
|
protected addItem(item: WP): Card<WP>;
|
|
69
73
|
protected updateItem(item: WP): Promise<void>;
|
|
70
74
|
protected selectList(item: WP): CardList<WP>;
|
|
@@ -60,6 +60,5 @@ export declare class WorkoutListPageService extends IncyclistPageService impleme
|
|
|
60
60
|
protected getRouteList(): import("../../routes").RouteListService;
|
|
61
61
|
protected getWorkoutCalendar(): import("../calendar").WorkoutCalendarService;
|
|
62
62
|
protected getUserSettings(): import("../../settings").UserSettingsService;
|
|
63
|
-
protected getAppState(): import("../../appstate").AppStateService;
|
|
64
63
|
}
|
|
65
64
|
export declare const getWorkoutListPageService: () => WorkoutListPageService;
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import { FileInfo, IObserver } from "../../types";
|
|
2
2
|
import { Workout } from "../base/model";
|
|
3
|
-
export type WorkoutListPageDisplayProps =
|
|
4
|
-
export interface WorkoutListPlaceholderProps {
|
|
5
|
-
pageType: 'placeholder';
|
|
6
|
-
}
|
|
3
|
+
export type WorkoutListPageDisplayProps = WorkoutListContentProps;
|
|
7
4
|
export interface WorkoutListContentProps {
|
|
8
5
|
pageType: 'list';
|
|
9
6
|
loading: boolean;
|
|
@@ -62,7 +59,6 @@ export interface WorkoutDetailsProps {
|
|
|
62
59
|
isScheduled: boolean;
|
|
63
60
|
date?: Date;
|
|
64
61
|
attachedRoute: AttachedRouteProps | null;
|
|
65
|
-
comboEnabled: boolean;
|
|
66
62
|
}
|
|
67
63
|
export interface WorkoutImportDisplayProps {
|
|
68
64
|
phase: 'landing' | 'importing' | 'result' | 'error';
|