@any-routing/core 0.0.1 → 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/package.json
CHANGED
|
@@ -2,6 +2,7 @@ import { AnyRoutingDataResponse, RouteSummary } from './data-providers';
|
|
|
2
2
|
import { AnyRoutingEventsMap, AnyRoutingOptions, AnyRoutingState, Waypoint as InputWaypoint, InternalWaypoint, RecalculateOptions, Mode } from './libre-routing.model';
|
|
3
3
|
export declare class AnyRouting<R extends AnyRoutingDataResponse = AnyRoutingDataResponse> {
|
|
4
4
|
private readonly dispatcher;
|
|
5
|
+
private readonly geocoder?;
|
|
5
6
|
private _options;
|
|
6
7
|
private _plugins;
|
|
7
8
|
private _initialState;
|
|
@@ -38,4 +39,5 @@ export declare class AnyRouting<R extends AnyRoutingDataResponse = AnyRoutingDat
|
|
|
38
39
|
private _patchState;
|
|
39
40
|
private transformToInternalWaypoints;
|
|
40
41
|
private fire;
|
|
42
|
+
private geocodeWaypoints;
|
|
41
43
|
}
|
package/src/lib/libre-routing.js
CHANGED
|
@@ -37,6 +37,13 @@ export class AnyRouting {
|
|
|
37
37
|
this._state = Object.assign({}, this._initialState);
|
|
38
38
|
this._options = Object.assign({ uniqueKey: randomId() }, options);
|
|
39
39
|
this._plugins = (_a = options.plugins) !== null && _a !== void 0 ? _a : [];
|
|
40
|
+
if (this.options.waypointsSyncStrategy === 'geocodeFirst' && !this.options.geocoder) {
|
|
41
|
+
throw new Error('Geocoder is required when waypointsSyncStrategy is `geocodeFirst`');
|
|
42
|
+
}
|
|
43
|
+
this.geocoder =
|
|
44
|
+
this.options.geocoder && typeof this.options.geocoder === 'function'
|
|
45
|
+
? { geocode: this.options.geocoder }
|
|
46
|
+
: this.options.geocoder;
|
|
40
47
|
}
|
|
41
48
|
initialize() {
|
|
42
49
|
this.initPlugins();
|
|
@@ -52,7 +59,6 @@ export class AnyRouting {
|
|
|
52
59
|
setWaypoints(waypoints) {
|
|
53
60
|
const internalWaypoints = this.transformToInternalWaypoints(waypoints);
|
|
54
61
|
this._patchState({ waypoints: internalWaypoints });
|
|
55
|
-
this.fire('waypointsChanged', { waypoints: this.state.waypoints });
|
|
56
62
|
}
|
|
57
63
|
getWaypoint(waypointId) {
|
|
58
64
|
return this._state.waypoints[waypointId];
|
|
@@ -65,11 +71,6 @@ export class AnyRouting {
|
|
|
65
71
|
if (!this.options.dataProvider) {
|
|
66
72
|
throw new Error('No data provider');
|
|
67
73
|
}
|
|
68
|
-
this.fire('calculationStarted', {
|
|
69
|
-
mode: this.state.mode,
|
|
70
|
-
waypoints: this.waypoints,
|
|
71
|
-
recalculateOptions: opts,
|
|
72
|
-
});
|
|
73
74
|
if (opts.dropPendingRequests) {
|
|
74
75
|
yield this.options.dataProvider.abortAllRequests();
|
|
75
76
|
}
|
|
@@ -77,24 +78,39 @@ export class AnyRouting {
|
|
|
77
78
|
if (!this._state.loading) {
|
|
78
79
|
patchState = Object.assign(Object.assign({}, patchState), { loading: true });
|
|
79
80
|
}
|
|
81
|
+
this.fire('calculationStarted', {
|
|
82
|
+
mode: this.state.mode,
|
|
83
|
+
waypoints: this.waypoints,
|
|
84
|
+
recalculateOptions: opts,
|
|
85
|
+
});
|
|
80
86
|
this._patchState(patchState);
|
|
81
87
|
if ('loading' in patchState) {
|
|
82
88
|
this.fire('loadingChanged', { loading: true });
|
|
83
89
|
}
|
|
84
90
|
try {
|
|
91
|
+
let patchState = {};
|
|
92
|
+
if (opts.syncWaypoints !== false && this.options.waypointsSyncStrategy === 'geocodeFirst') {
|
|
93
|
+
const waypointsToSyncIds = this._state.waypoints.reduce((acc, w, index) => {
|
|
94
|
+
if (!w.geocoded) {
|
|
95
|
+
acc.push(index);
|
|
96
|
+
}
|
|
97
|
+
return acc;
|
|
98
|
+
}, []);
|
|
99
|
+
if (waypointsToSyncIds.length > 0) {
|
|
100
|
+
const waypoints = yield this.geocodeWaypoints(this._state.waypoints);
|
|
101
|
+
this._patchState({ waypoints });
|
|
102
|
+
waypointsToSyncIds.forEach((waypointId) => {
|
|
103
|
+
this.fire('waypointGeocoded', { waypoint: waypoints[waypointId] });
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
}
|
|
85
107
|
const data = (yield this.options.dataProvider.request(this._state.waypoints, {
|
|
86
108
|
mode: this.state.mode,
|
|
87
109
|
}));
|
|
88
|
-
|
|
89
|
-
data,
|
|
90
|
-
selectedRouteId: data.selectedRouteId,
|
|
91
|
-
routesShapeGeojson: data.routesShapeGeojson,
|
|
92
|
-
};
|
|
93
|
-
let waypointsUpdated = false;
|
|
110
|
+
patchState = Object.assign(Object.assign({}, patchState), { data, selectedRouteId: data.selectedRouteId, routesShapeGeojson: data.routesShapeGeojson });
|
|
94
111
|
if (opts.syncWaypoints !== false && this.options.waypointsSyncStrategy === 'toPath') {
|
|
95
112
|
const syncedWaypoints = this.syncWaypointsPositions(data.routes[0].waypoints);
|
|
96
113
|
patchState = Object.assign(Object.assign({}, patchState), { waypoints: syncedWaypoints });
|
|
97
|
-
waypointsUpdated = true;
|
|
98
114
|
}
|
|
99
115
|
this._patchState(patchState);
|
|
100
116
|
this.fire('routesFound', {
|
|
@@ -103,9 +119,6 @@ export class AnyRouting {
|
|
|
103
119
|
data,
|
|
104
120
|
recalculateOptions: opts,
|
|
105
121
|
});
|
|
106
|
-
if (waypointsUpdated) {
|
|
107
|
-
this.fire('waypointsChanged', { waypoints: this.state.waypoints });
|
|
108
|
-
}
|
|
109
122
|
return this._state.data;
|
|
110
123
|
}
|
|
111
124
|
catch (e) {
|
|
@@ -150,7 +163,7 @@ export class AnyRouting {
|
|
|
150
163
|
return `${name}-${this.options.uniqueKey}`;
|
|
151
164
|
}
|
|
152
165
|
syncWaypointsPositions(waypoints) {
|
|
153
|
-
const newWaypoints = waypoints.map((waypoint, index) => (Object.assign(Object.assign({}, this._state.waypoints[index]), { position: this._state.waypoints[index].
|
|
166
|
+
const newWaypoints = waypoints.map((waypoint, index) => (Object.assign(Object.assign({}, this._state.waypoints[index]), { position: waypoint, originalPosition: this._state.waypoints[index].originalPosition || this._state.waypoints[index].position, properties: this._state.waypoints[index].properties })));
|
|
154
167
|
return newWaypoints;
|
|
155
168
|
}
|
|
156
169
|
setState({ waypoints, data, routesShapeGeojson, selectedRouteId, }) {
|
|
@@ -196,6 +209,9 @@ export class AnyRouting {
|
|
|
196
209
|
return;
|
|
197
210
|
}
|
|
198
211
|
this._setState(Object.assign(Object.assign({}, this._state), patchState), source, Object.keys(patchState));
|
|
212
|
+
if ('waypoints' in patchState) {
|
|
213
|
+
this.fire('waypointsChanged', { waypoints: this.state.waypoints });
|
|
214
|
+
}
|
|
199
215
|
}
|
|
200
216
|
transformToInternalWaypoints(waypoints) {
|
|
201
217
|
return waypoints.map((waypoint, index) => InternalWaypointC.fromWaypoint(waypoint, { index, isFirst: index === 0, isLast: index === waypoints.length - 1 }));
|
|
@@ -204,5 +220,16 @@ export class AnyRouting {
|
|
|
204
220
|
//@ts-ignore
|
|
205
221
|
this.dispatcher.fire(event, Object.assign(Object.assign({}, data), { state: this.state, eventName: event }));
|
|
206
222
|
}
|
|
223
|
+
geocodeWaypoints(waypoints) {
|
|
224
|
+
const waypointGeocodes = waypoints.map((waypoint) => __awaiter(this, void 0, void 0, function* () {
|
|
225
|
+
if (waypoint.geocoded) {
|
|
226
|
+
return waypoint;
|
|
227
|
+
}
|
|
228
|
+
const geocodedWaypoint = yield this.geocoder.geocode(waypoint);
|
|
229
|
+
geocodedWaypoint.geocoded = true;
|
|
230
|
+
return geocodedWaypoint;
|
|
231
|
+
}));
|
|
232
|
+
return Promise.all(waypointGeocodes);
|
|
233
|
+
}
|
|
207
234
|
}
|
|
208
235
|
//# sourceMappingURL=libre-routing.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libre-routing.js","sourceRoot":"","sources":["../../../../../packages/core/src/lib/libre-routing.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EASL,iBAAiB,
|
|
1
|
+
{"version":3,"file":"libre-routing.js","sourceRoot":"","sources":["../../../../../packages/core/src/lib/libre-routing.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,6 +32,9 @@ export type RouteSelectedEvent<R extends AnyRoutingDataResponse = AnyRoutingData
|
|
|
32
32
|
export type WaypointsChangedEvent<R extends AnyRoutingDataResponse = AnyRoutingDataResponse> = BaseEvent<R> & {
|
|
33
33
|
waypoints: InternalWaypoint[];
|
|
34
34
|
};
|
|
35
|
+
export type WaypointGeocoded<R extends AnyRoutingDataResponse = AnyRoutingDataResponse> = BaseEvent<R> & {
|
|
36
|
+
waypoint: InternalWaypoint;
|
|
37
|
+
};
|
|
35
38
|
export type LoadingChangedEvent<R extends AnyRoutingDataResponse = AnyRoutingDataResponse> = BaseEvent<R> & {
|
|
36
39
|
loading: boolean;
|
|
37
40
|
};
|
|
@@ -47,6 +50,7 @@ export interface AnyRoutingEventsMap {
|
|
|
47
50
|
routesFound: RoutesFoundEvent;
|
|
48
51
|
routeSelected: RouteSelectedEvent;
|
|
49
52
|
waypointsChanged: WaypointsChangedEvent;
|
|
53
|
+
waypointGeocoded: WaypointGeocoded;
|
|
50
54
|
loadingChanged: LoadingChangedEvent;
|
|
51
55
|
stateUpdated: StateUpdatedEvent;
|
|
52
56
|
}
|
|
@@ -67,26 +71,27 @@ export type AnyRoutingState<DataType = AnyRoutingDataResponse> = {
|
|
|
67
71
|
export interface InternalWaypoint {
|
|
68
72
|
index: number;
|
|
69
73
|
position: WaypointPosition;
|
|
70
|
-
mappedPosition?: WaypointPosition;
|
|
71
74
|
originalPosition: WaypointPosition;
|
|
72
|
-
originalMappedPosition?: WaypointPosition;
|
|
73
75
|
properties: InternalWaypointProperties & Record<string, any>;
|
|
76
|
+
geocoded?: boolean;
|
|
74
77
|
}
|
|
75
78
|
export declare function isWaypointPositionEqual(posA: WaypointPosition, posB: WaypointPosition): boolean;
|
|
76
79
|
export declare class InternalWaypointC {
|
|
77
|
-
static isChanged(waypoint: InternalWaypoint): boolean;
|
|
78
|
-
static isPositionChanged(waypoint: InternalWaypoint): boolean;
|
|
79
|
-
static isMappedPositionChanged(waypoint: InternalWaypoint): boolean;
|
|
80
80
|
static fromWaypoint(waypoint: Waypoint, props: InternalWaypointProperties): InternalWaypoint;
|
|
81
81
|
}
|
|
82
82
|
export interface Waypoint {
|
|
83
83
|
position: WaypointPosition;
|
|
84
|
-
|
|
84
|
+
originalPosition?: WaypointPosition;
|
|
85
85
|
properties?: Record<string, string | boolean | number>;
|
|
86
|
+
geocoded?: boolean;
|
|
86
87
|
}
|
|
87
88
|
export type PluginFactory = AnyRoutingPlugin | (new (...args: any[]) => AnyRoutingPlugin);
|
|
89
|
+
export interface AnyRoutingGeocoder {
|
|
90
|
+
geocode(waypoint: InternalWaypoint): Promise<InternalWaypoint>;
|
|
91
|
+
}
|
|
88
92
|
export type AnyRoutingOptions = {
|
|
89
93
|
dataProvider: AnyRoutingDataProvider;
|
|
94
|
+
geocoder?: AnyRoutingGeocoder | ((waypoint: InternalWaypoint) => Promise<InternalWaypoint>);
|
|
90
95
|
plugins?: PluginFactory[];
|
|
91
96
|
uniqueKey?: string;
|
|
92
97
|
waypointsSyncStrategy: 'none' | 'toPath' | 'geocodeFirst';
|
|
@@ -2,24 +2,12 @@ export function isWaypointPositionEqual(posA, posB) {
|
|
|
2
2
|
return posA.lat === posB.lat && posA.lng === posB.lng;
|
|
3
3
|
}
|
|
4
4
|
export class InternalWaypointC {
|
|
5
|
-
static isChanged(waypoint) {
|
|
6
|
-
return !this.isPositionChanged(waypoint) || !this.isMappedPositionChanged(waypoint);
|
|
7
|
-
}
|
|
8
|
-
static isPositionChanged(waypoint) {
|
|
9
|
-
return !isWaypointPositionEqual(waypoint.originalPosition, waypoint.position);
|
|
10
|
-
}
|
|
11
|
-
static isMappedPositionChanged(waypoint) {
|
|
12
|
-
return (!!waypoint.originalMappedPosition &&
|
|
13
|
-
!!waypoint.mappedPosition &&
|
|
14
|
-
!isWaypointPositionEqual(waypoint.originalMappedPosition, waypoint.mappedPosition));
|
|
15
|
-
}
|
|
16
5
|
static fromWaypoint(waypoint, props) {
|
|
17
6
|
return {
|
|
18
7
|
index: props.index,
|
|
19
8
|
originalPosition: waypoint.position,
|
|
20
9
|
position: waypoint.position,
|
|
21
|
-
|
|
22
|
-
mappedPosition: waypoint.mappedPosition,
|
|
10
|
+
geocoded: waypoint.geocoded,
|
|
23
11
|
properties: Object.assign(Object.assign({}, props), (waypoint.properties || {})),
|
|
24
12
|
};
|
|
25
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libre-routing.model.js","sourceRoot":"","sources":["../../../../../packages/core/src/lib/libre-routing.model.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"libre-routing.model.js","sourceRoot":"","sources":["../../../../../packages/core/src/lib/libre-routing.model.ts"],"names":[],"mappings":"AA6FA,MAAM,UAAU,uBAAuB,CAAC,IAAsB,EAAE,IAAsB;IACpF,OAAO,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC;AACxD,CAAC;AAED,MAAM,OAAO,iBAAiB;IACrB,MAAM,CAAC,YAAY,CAAC,QAAkB,EAAE,KAAiC;QAC9E,OAAO;YACL,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,gBAAgB,EAAE,QAAQ,CAAC,QAAQ;YACnC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,UAAU,kCAAO,KAAK,GAAK,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC,CAAE;SACzD,CAAC;IACJ,CAAC;CACF"}
|