atriusmaps-node-sdk 3.3.632 → 3.3.633
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.md +1 -2
- package/README.md +15 -16
- package/dist/cjs/deploy/prepareSDKConfig.js +73 -57
- package/dist/cjs/nodesdk/nodeEntry.js +51 -44
- package/dist/cjs/package.json.js +4 -1
- package/dist/cjs/plugins/clientAPI/src/clientAPI.js +6 -4
- package/dist/cjs/plugins/dynamicPois/src/dynamicPois.js +32 -26
- package/dist/cjs/plugins/dynamicPois/src/processors.js +41 -35
- package/dist/cjs/plugins/poiDataManager/src/poiDataManager.js +102 -95
- package/dist/cjs/plugins/sdkServer/src/sdkHeadless.js +52 -26
- package/dist/cjs/plugins/sdkServer/src/sdkServer.js +86 -66
- package/dist/cjs/plugins/searchService/src/flexsearchExports/lang.js +16 -16
- package/dist/cjs/plugins/searchService/src/flexsearchExports/simple.js +31 -8
- package/dist/cjs/plugins/searchService/src/poiSearch.js +14 -17
- package/dist/cjs/plugins/searchService/src/searchService.js +41 -39
- package/dist/cjs/plugins/searchService/src/searchTypeahead.js +14 -19
- package/dist/cjs/plugins/searchService/src/utils.js +4 -5
- package/dist/cjs/plugins/venueDataLoader/src/venueDataLoader.js +145 -127
- package/dist/cjs/plugins/venueDataLoader/src/venueLoadingUtils.js +37 -39
- package/dist/cjs/plugins/wayfinder/src/findRoute.js +11 -18
- package/dist/cjs/plugins/wayfinder/src/minPriorityQueue.js +18 -19
- package/dist/cjs/plugins/wayfinder/src/navGraph.js +111 -91
- package/dist/cjs/plugins/wayfinder/src/navGraphDebug.js +19 -16
- package/dist/cjs/plugins/wayfinder/src/segmentBadges.js +1 -1
- package/dist/cjs/plugins/wayfinder/src/segmentBuilder.js +79 -76
- package/dist/cjs/plugins/wayfinder/src/segmentCategories.js +1 -1
- package/dist/cjs/plugins/wayfinder/src/stepBuilder.js +147 -107
- package/dist/cjs/plugins/wayfinder/src/wayfinder.js +178 -148
- package/dist/cjs/src/app.js +64 -44
- package/dist/cjs/src/configs/postproc-mol-url-parms.js +22 -21
- package/dist/cjs/src/configs/postproc-stateTracking.js +5 -8
- package/dist/cjs/src/controller.js +11 -6
- package/dist/cjs/src/debugTools.js +61 -34
- package/dist/cjs/src/env.js +7 -4
- package/dist/cjs/src/extModules/bustle.js +35 -45
- package/dist/cjs/src/extModules/flexapi/src/help.js +16 -8
- package/dist/cjs/src/extModules/flexapi/src/index.js +39 -18
- package/dist/cjs/src/extModules/flexapi/src/validate.js +129 -87
- package/dist/cjs/src/extModules/geohasher.js +7 -7
- package/dist/cjs/src/extModules/log.js +20 -22
- package/dist/cjs/src/historyManager.js +2 -2
- package/dist/cjs/src/utils/bounds.js +6 -6
- package/dist/cjs/src/utils/buildStructureLookup.js +3 -3
- package/dist/cjs/src/utils/configUtils.js +14 -18
- package/dist/cjs/src/utils/dom.js +12 -18
- package/dist/cjs/src/utils/funcs.js +12 -15
- package/dist/cjs/src/utils/geodesy.js +7 -9
- package/dist/cjs/src/utils/geom.js +52 -40
- package/dist/cjs/src/utils/i18n.js +47 -36
- package/dist/cjs/src/utils/location.js +12 -13
- package/dist/cjs/src/utils/observable.js +27 -28
- package/dist/cjs/src/utils/rand.js +9 -10
- package/dist/package.json.js +1 -1
- package/package.json +1 -1
|
@@ -24,52 +24,35 @@ function _interopNamespaceDefault(e) {
|
|
|
24
24
|
|
|
25
25
|
var R__namespace = /*#__PURE__*/_interopNamespaceDefault(R);
|
|
26
26
|
|
|
27
|
-
const setSegmentCategory =
|
|
27
|
+
const setSegmentCategory = segments => {
|
|
28
28
|
// Set the category of each segment based on the type of the current segment or the type of the next segment in case we are walking
|
|
29
29
|
// to a portal or to a security checkpoint
|
|
30
30
|
segments.forEach((segment, index) => {
|
|
31
|
-
if (index === 0)
|
|
32
|
-
segment.segmentCategory = segmentCategories.START;
|
|
31
|
+
if (index === 0) segment.segmentCategory = segmentCategories.START;
|
|
33
32
|
else if (segment.waypoints[segment.waypoints.length - 1].isDestination)
|
|
34
33
|
segment.segmentCategory = segmentCategories.WALKING_TO_END;
|
|
35
|
-
else if (segment.type === 'Security Checkpoint')
|
|
36
|
-
|
|
37
|
-
else if (segment.type === '
|
|
38
|
-
segment.segmentCategory = segmentCategories.BUS;
|
|
39
|
-
else if (segment.type === 'Train')
|
|
40
|
-
segment.segmentCategory = segmentCategories.TRAIN;
|
|
34
|
+
else if (segment.type === 'Security Checkpoint') segment.segmentCategory = segmentCategories.SECURITY_CHECKPOINT;
|
|
35
|
+
else if (segment.type === 'Bus') segment.segmentCategory = segmentCategories.BUS;
|
|
36
|
+
else if (segment.type === 'Train') segment.segmentCategory = segmentCategories.TRAIN;
|
|
41
37
|
else if (segment.type === 'Stairs') {
|
|
42
|
-
if (segment.levelDifference > 0)
|
|
43
|
-
|
|
44
|
-
else
|
|
45
|
-
segment.segmentCategory = segmentCategories.STAIRS_DOWN;
|
|
46
|
-
else
|
|
47
|
-
segment.segmentCategory = segmentCategories.STAIRS;
|
|
38
|
+
if (segment.levelDifference > 0) segment.segmentCategory = segmentCategories.STAIRS_UP;
|
|
39
|
+
else if (segment.levelDifference < 0) segment.segmentCategory = segmentCategories.STAIRS_DOWN;
|
|
40
|
+
else segment.segmentCategory = segmentCategories.STAIRS;
|
|
48
41
|
} else if (segment.type === 'Elevator') {
|
|
49
|
-
if (segment.levelDifference > 0)
|
|
50
|
-
|
|
51
|
-
else
|
|
52
|
-
segment.segmentCategory = segmentCategories.ELEVATOR_DOWN;
|
|
53
|
-
else
|
|
54
|
-
segment.segmentCategory = segmentCategories.ELEVATOR;
|
|
42
|
+
if (segment.levelDifference > 0) segment.segmentCategory = segmentCategories.ELEVATOR_UP;
|
|
43
|
+
else if (segment.levelDifference < 0) segment.segmentCategory = segmentCategories.ELEVATOR_DOWN;
|
|
44
|
+
else segment.segmentCategory = segmentCategories.ELEVATOR;
|
|
55
45
|
} else if (segment.type === 'Escalator') {
|
|
56
|
-
if (segment.levelDifference > 0)
|
|
57
|
-
|
|
58
|
-
else
|
|
59
|
-
segment.segmentCategory = segmentCategories.ESCALATOR_DOWN;
|
|
60
|
-
else
|
|
61
|
-
segment.segmentCategory = segmentCategories.ESCALATOR;
|
|
46
|
+
if (segment.levelDifference > 0) segment.segmentCategory = segmentCategories.ESCALATOR_UP;
|
|
47
|
+
else if (segment.levelDifference < 0) segment.segmentCategory = segmentCategories.ESCALATOR_DOWN;
|
|
48
|
+
else segment.segmentCategory = segmentCategories.ESCALATOR;
|
|
62
49
|
} else if (segment.type === 'Ramp') {
|
|
63
|
-
if (segment.levelDifference > 0)
|
|
64
|
-
|
|
65
|
-
else
|
|
66
|
-
segment.segmentCategory = segmentCategories.RAMP_DOWN;
|
|
67
|
-
else
|
|
68
|
-
segment.segmentCategory = segmentCategories.RAMP;
|
|
50
|
+
if (segment.levelDifference > 0) segment.segmentCategory = segmentCategories.RAMP_UP;
|
|
51
|
+
else if (segment.levelDifference < 0) segment.segmentCategory = segmentCategories.RAMP_DOWN;
|
|
52
|
+
else segment.segmentCategory = segmentCategories.RAMP;
|
|
69
53
|
} else if (segments[index + 1].type === 'Security Checkpoint')
|
|
70
54
|
segment.segmentCategory = segmentCategories.WALKING_TO_SECURITY_CHECKPOINT;
|
|
71
|
-
else if (segments[index + 1].type !== 'Walk')
|
|
72
|
-
segment.segmentCategory = segmentCategories.WALKING_TO_PORTAL;
|
|
55
|
+
else if (segments[index + 1].type !== 'Walk') segment.segmentCategory = segmentCategories.WALKING_TO_PORTAL;
|
|
73
56
|
});
|
|
74
57
|
};
|
|
75
58
|
|
|
@@ -86,7 +69,7 @@ const existsEnd = (segments, lastWaypoint) => {
|
|
|
86
69
|
};
|
|
87
70
|
|
|
88
71
|
// todo refactor to not affect step builder
|
|
89
|
-
const joinSegments =
|
|
72
|
+
const joinSegments = segments => {
|
|
90
73
|
segments.forEach((segment, index) => {
|
|
91
74
|
if (index > 1) {
|
|
92
75
|
const firstWaypointOfSegment = R__namespace.head(segment.waypoints);
|
|
@@ -103,18 +86,19 @@ const calculateCurveLineCoordinates = segment =>
|
|
|
103
86
|
// todo index > 0 is hacky fix
|
|
104
87
|
if (index > 0 && waypoint.curvedPathForward && waypoint.curvedPathForward.length > 0) {
|
|
105
88
|
return waypoint.curvedPathForward
|
|
106
|
-
.flatMap(p =>
|
|
107
|
-
|
|
89
|
+
.flatMap(p =>
|
|
90
|
+
geom.bezierCurveTo(p.start.lng, p.start.lat, p.in.lng, p.in.lat, p.out.lng, p.out.lat, p.end.lng, p.end.lat),
|
|
91
|
+
)
|
|
92
|
+
.map(el => [el.x, el.y]);
|
|
108
93
|
} else {
|
|
109
|
-
return [[waypoint.position.lng, waypoint.position.lat]]
|
|
94
|
+
return [[waypoint.position.lng, waypoint.position.lat]];
|
|
110
95
|
}
|
|
111
96
|
});
|
|
112
97
|
|
|
113
|
-
const addCurveLineCoordinates = R__namespace.map(
|
|
114
|
-
R__namespace.converge(R__namespace.assoc('coordinates'), [calculateCurveLineCoordinates, R__namespace.identity]));
|
|
98
|
+
const addCurveLineCoordinates = R__namespace.map(R__namespace.converge(R__namespace.assoc('coordinates'), [calculateCurveLineCoordinates, R__namespace.identity]));
|
|
115
99
|
|
|
116
100
|
// todo refactor
|
|
117
|
-
const createSegments =
|
|
101
|
+
const createSegments = waypoints => {
|
|
118
102
|
const segments = [];
|
|
119
103
|
let segment = { segmentCategory: undefined, waypoints: [] };
|
|
120
104
|
let lastWaypoint = null;
|
|
@@ -129,30 +113,33 @@ const createSegments = (waypoints) => {
|
|
|
129
113
|
waypoints.forEach(waypoint => {
|
|
130
114
|
segmentWaypoints.push(waypoint);
|
|
131
115
|
|
|
132
|
-
if (!lastWaypoint) {
|
|
116
|
+
if (!lastWaypoint) {
|
|
117
|
+
// true on first waypoint only
|
|
133
118
|
segment.type = waypoint.isPortal ? waypoint.portalType : 'Walk';
|
|
134
119
|
lastWaypoint = waypoint;
|
|
135
120
|
} else {
|
|
136
|
-
if (
|
|
137
|
-
|
|
121
|
+
if (
|
|
122
|
+
lastWaypoint.isPortal === waypoint.isPortal &&
|
|
123
|
+
lastWaypoint.isSecurityCheckpoint === waypoint.isSecurityCheckpoint
|
|
124
|
+
) {
|
|
125
|
+
// todo not sure if this can happen
|
|
138
126
|
segment.levelDifference = waypoint.levelDifference;
|
|
139
127
|
} else {
|
|
140
128
|
segment.waypoints = segmentWaypoints;
|
|
141
129
|
|
|
142
130
|
if (waypoint.isPortal || lastWaypoint.isPortal) {
|
|
143
|
-
if (segmentWaypoints.length > 1)
|
|
144
|
-
segmentWaypoints.pop();
|
|
131
|
+
if (segmentWaypoints.length > 1) segmentWaypoints.pop();
|
|
145
132
|
|
|
146
133
|
// if the portal is not train or bus, we only want it to be one point segment
|
|
147
|
-
if (
|
|
134
|
+
if (
|
|
135
|
+
waypoint.isPortal &&
|
|
136
|
+
(waypoint.portalType.toLowerCase() === 'train' || waypoint.portalType.toLowerCase() === 'bus')
|
|
137
|
+
)
|
|
148
138
|
segmentWaypoints = [segmentWaypoints[segmentWaypoints.length - 1], waypoint];
|
|
149
|
-
else
|
|
150
|
-
|
|
151
|
-
} else
|
|
152
|
-
segmentWaypoints = [];
|
|
139
|
+
else segmentWaypoints = [waypoint];
|
|
140
|
+
} else segmentWaypoints = [];
|
|
153
141
|
|
|
154
|
-
if (lastWaypoint.poiId)
|
|
155
|
-
segment.poiId = lastWaypoint.poiId;
|
|
142
|
+
if (lastWaypoint.poiId) segment.poiId = lastWaypoint.poiId;
|
|
156
143
|
segments.push(segment);
|
|
157
144
|
|
|
158
145
|
segment = { segmentCategory: undefined, waypoints: [] };
|
|
@@ -167,8 +154,7 @@ const createSegments = (waypoints) => {
|
|
|
167
154
|
|
|
168
155
|
segment.waypoints = segmentWaypoints;
|
|
169
156
|
|
|
170
|
-
if (segmentWaypoints.length === 0)
|
|
171
|
-
segment.waypoints = [lastWaypoint];
|
|
157
|
+
if (segmentWaypoints.length === 0) segment.waypoints = [lastWaypoint];
|
|
172
158
|
|
|
173
159
|
segments.push(segment);
|
|
174
160
|
|
|
@@ -178,20 +164,20 @@ const createSegments = (waypoints) => {
|
|
|
178
164
|
|
|
179
165
|
joinSegments(segments);
|
|
180
166
|
|
|
181
|
-
return segments
|
|
167
|
+
return segments;
|
|
182
168
|
};
|
|
183
169
|
|
|
184
|
-
const getSegmentType =
|
|
170
|
+
const getSegmentType = segment => {
|
|
185
171
|
if (segment.type === 'Train') {
|
|
186
|
-
return 'nav.train'
|
|
172
|
+
return 'nav.train';
|
|
187
173
|
}
|
|
188
174
|
if (segment.type === 'Bus') {
|
|
189
|
-
return 'nav.transit'
|
|
175
|
+
return 'nav.transit';
|
|
190
176
|
}
|
|
191
177
|
if (segment.type === 'Security Checkpoint') {
|
|
192
|
-
return 'nav.secure'
|
|
178
|
+
return 'nav.secure';
|
|
193
179
|
}
|
|
194
|
-
return 'nav.primary'
|
|
180
|
+
return 'nav.primary';
|
|
195
181
|
};
|
|
196
182
|
|
|
197
183
|
/**
|
|
@@ -217,16 +203,24 @@ const getSegmentType = (segment) => {
|
|
|
217
203
|
* @param {boolean} requiresAccessibility
|
|
218
204
|
* @return {{steps: Step[], segments: Segment[]}}
|
|
219
205
|
*/
|
|
220
|
-
const buildSegments = (
|
|
206
|
+
const buildSegments = (
|
|
207
|
+
waypoints,
|
|
208
|
+
fromEndpoint,
|
|
209
|
+
toEndpoint,
|
|
210
|
+
floorIdToNameMap,
|
|
211
|
+
T,
|
|
212
|
+
queueTypes,
|
|
213
|
+
requiresAccessibility,
|
|
214
|
+
securityPois,
|
|
215
|
+
currentUnits,
|
|
216
|
+
) => {
|
|
221
217
|
let rawSegments = createSegments(waypoints);
|
|
222
218
|
rawSegments = addCurveLineCoordinates(rawSegments);
|
|
223
219
|
|
|
224
220
|
// add start location (kiosk) as first coordinate to link it with the navline
|
|
225
|
-
if (fromEndpoint)
|
|
226
|
-
rawSegments[0].coordinates.unshift([fromEndpoint.lng, fromEndpoint.lat]);
|
|
221
|
+
if (fromEndpoint) rawSegments[0].coordinates.unshift([fromEndpoint.lng, fromEndpoint.lat]);
|
|
227
222
|
|
|
228
|
-
if (toEndpoint)
|
|
229
|
-
R__namespace.last(rawSegments).coordinates.push([toEndpoint.lng, toEndpoint.lat]);
|
|
223
|
+
if (toEndpoint) R__namespace.last(rawSegments).coordinates.push([toEndpoint.lng, toEndpoint.lat]);
|
|
230
224
|
|
|
231
225
|
const segments = rawSegments.map((segment, index) => {
|
|
232
226
|
const startWaypoint = R__namespace.last(segment.waypoints);
|
|
@@ -236,7 +230,7 @@ const buildSegments = (waypoints, fromEndpoint, toEndpoint, floorIdToNameMap, T,
|
|
|
236
230
|
levelId: startWaypoint.position.structureId,
|
|
237
231
|
ordinalId: `ordinal: ${startWaypoint.position.ordinal}`,
|
|
238
232
|
coordinates,
|
|
239
|
-
shouldDrawSegment
|
|
233
|
+
shouldDrawSegment,
|
|
240
234
|
};
|
|
241
235
|
|
|
242
236
|
const badges = [];
|
|
@@ -244,24 +238,33 @@ const buildSegments = (waypoints, fromEndpoint, toEndpoint, floorIdToNameMap, T,
|
|
|
244
238
|
const nextSegment = rawSegments[index + 1];
|
|
245
239
|
badges.push({
|
|
246
240
|
canonicalName: `wayfinding.${nextSegment.segmentCategory}`,
|
|
247
|
-
coordinates: R__namespace.last(coordinates)
|
|
241
|
+
coordinates: R__namespace.last(coordinates),
|
|
248
242
|
});
|
|
249
243
|
} else if (segmentCategories.START !== segment.segmentCategory) {
|
|
250
244
|
badges.push({
|
|
251
245
|
canonicalName: `wayfinding.${segment.segmentCategory}`,
|
|
252
|
-
coordinates: R__namespace.last(coordinates)
|
|
246
|
+
coordinates: R__namespace.last(coordinates),
|
|
253
247
|
});
|
|
254
248
|
}
|
|
255
249
|
cookedSegment.badges = badges;
|
|
256
250
|
cookedSegment.segmentType = getSegmentType(segment);
|
|
257
|
-
if (segment.poiId)
|
|
258
|
-
|
|
259
|
-
return cookedSegment
|
|
251
|
+
if (segment.poiId) cookedSegment.poiId = segment.poiId;
|
|
252
|
+
return cookedSegment;
|
|
260
253
|
});
|
|
261
254
|
|
|
262
|
-
const steps = stepBuilder(
|
|
263
|
-
|
|
264
|
-
|
|
255
|
+
const steps = stepBuilder(
|
|
256
|
+
rawSegments,
|
|
257
|
+
R__namespace.prop('title', fromEndpoint),
|
|
258
|
+
R__namespace.prop('title', toEndpoint),
|
|
259
|
+
floorIdToNameMap,
|
|
260
|
+
T,
|
|
261
|
+
queueTypes,
|
|
262
|
+
requiresAccessibility,
|
|
263
|
+
securityPois,
|
|
264
|
+
currentUnits,
|
|
265
|
+
);
|
|
266
|
+
|
|
267
|
+
return { segments, steps };
|
|
265
268
|
};
|
|
266
269
|
|
|
267
270
|
exports.buildSegments = buildSegments;
|