@opentripplanner/core-utils 4.11.6-alpha.1 → 5.0.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.
Files changed (70) hide show
  1. package/esm/deprecated-with-types.js +47 -0
  2. package/esm/deprecated-with-types.js.map +1 -0
  3. package/esm/index.js +0 -4
  4. package/esm/index.js.map +1 -1
  5. package/esm/itinerary.js +1 -1
  6. package/esm/itinerary.js.map +1 -1
  7. package/esm/map.js +4 -9
  8. package/esm/map.js.map +1 -1
  9. package/esm/route.js +5 -3
  10. package/esm/route.js.map +1 -1
  11. package/esm/storage.js +1 -0
  12. package/esm/storage.js.map +1 -1
  13. package/esm/time.js +6 -36
  14. package/esm/time.js.map +1 -1
  15. package/esm/ui.js +1 -1
  16. package/esm/ui.js.map +1 -1
  17. package/lib/deprecated-with-types.d.ts +23 -0
  18. package/lib/deprecated-with-types.d.ts.map +1 -0
  19. package/lib/deprecated-with-types.js +61 -0
  20. package/lib/deprecated-with-types.js.map +1 -0
  21. package/lib/index.d.ts +19 -0
  22. package/lib/index.d.ts.map +1 -0
  23. package/lib/index.js +0 -6
  24. package/lib/index.js.map +1 -1
  25. package/lib/itinerary.d.ts +113 -0
  26. package/lib/itinerary.d.ts.map +1 -0
  27. package/lib/itinerary.js +2 -1
  28. package/lib/itinerary.js.map +1 -1
  29. package/lib/map.d.ts +30 -0
  30. package/lib/map.d.ts.map +1 -0
  31. package/lib/map.js +3 -8
  32. package/lib/map.js.map +1 -1
  33. package/lib/route.d.ts +98 -0
  34. package/lib/route.d.ts.map +1 -0
  35. package/lib/route.js +5 -3
  36. package/lib/route.js.map +1 -1
  37. package/lib/storage.d.ts +19 -0
  38. package/lib/storage.d.ts.map +1 -0
  39. package/lib/storage.js +2 -0
  40. package/lib/storage.js.map +1 -1
  41. package/lib/time.d.ts +65 -0
  42. package/lib/time.d.ts.map +1 -0
  43. package/lib/time.js +22 -39
  44. package/lib/time.js.map +1 -1
  45. package/lib/ui.d.ts +13 -0
  46. package/lib/ui.d.ts.map +1 -0
  47. package/lib/ui.js +1 -1
  48. package/lib/ui.js.map +1 -1
  49. package/package.json +4 -1
  50. package/src/__tests__/__snapshots__/route.js.snap +30 -30
  51. package/src/deprecated-with-types.ts +62 -0
  52. package/src/{index.js → index.ts} +0 -4
  53. package/src/{itinerary.js → itinerary.ts} +70 -36
  54. package/src/{map.js → map.ts} +43 -31
  55. package/src/{route.js → route.ts} +52 -28
  56. package/src/{storage.js → storage.ts} +6 -5
  57. package/src/{time.js → time.ts} +28 -46
  58. package/src/{ui.js → ui.ts} +8 -8
  59. package/tsconfig.json +15 -0
  60. package/tsconfig.tsbuildinfo +4921 -0
  61. package/esm/messages.js +0 -25
  62. package/esm/messages.js.map +0 -1
  63. package/esm/types.js +0 -560
  64. package/esm/types.js.map +0 -1
  65. package/lib/messages.js +0 -29
  66. package/lib/messages.js.map +0 -1
  67. package/lib/types.js +0 -661
  68. package/lib/types.js.map +0 -1
  69. package/src/messages.js +0 -20
  70. package/src/types.js +0 -605
package/lib/types.js DELETED
@@ -1,661 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.createChainableTypeChecker = createChainableTypeChecker;
9
- exports.userLocationType = exports.geocodedFeatureType = exports.configuredCompanyType = exports.configuredModesType = exports.configuredModeType = exports.modeSelectorOptionsType = exports.modeOptionType = exports.latlngType = exports.stationType = exports.transitiveDataType = exports.stopLayerStopType = exports.transitIndexStopWithRoutes = exports.timeOptionsType = exports.locationType = exports.itineraryType = exports.fareType = exports.legType = exports.placeType = exports.stepsType = exports.encodedPolylineType = exports.configType = exports.vehicleRentalMapOverlaySymbolsType = exports.transitVehicleType = exports.zoomBasedSymbolType = exports.languageConfigType = exports.transitOperatorType = exports.leafletPathType = exports.companyType = void 0;
10
-
11
- var _propTypes = _interopRequireDefault(require("prop-types"));
12
-
13
- var _react = require("react");
14
-
15
- var _map = require("./map");
16
-
17
- const companyType = _propTypes.default.shape({
18
- id: _propTypes.default.string.isRequired,
19
- label: _propTypes.default.string.isRequired,
20
-
21
- /* a comma-separated string listing the modes that this company has */
22
- modes: _propTypes.default.string.isRequired
23
- });
24
- /**
25
- * Leaflet path properties to use to style a CircleMarker, Marker or Polyline.
26
- *
27
- * See https://leafletjs.com/reference-1.6.0.html#path
28
- */
29
-
30
-
31
- exports.companyType = companyType;
32
-
33
- const leafletPathType = _propTypes.default.shape({
34
- bubblingMouseEvents: _propTypes.default.bool,
35
- color: _propTypes.default.string,
36
- className: _propTypes.default.string,
37
- dashArray: _propTypes.default.string,
38
- dashOffset: _propTypes.default.string,
39
- fill: _propTypes.default.bool,
40
- fillColor: _propTypes.default.string,
41
- fillOpacity: _propTypes.default.number,
42
- fillRule: _propTypes.default.string,
43
- lineCap: _propTypes.default.string,
44
- lineJoin: _propTypes.default.string,
45
- opacity: _propTypes.default.number,
46
- renderer: _propTypes.default.func,
47
- stroke: _propTypes.default.bool,
48
- weight: _propTypes.default.number
49
- });
50
- /**
51
- * Describes some options to help display data about a transit agency that is
52
- * configured in an opentripplanner instance.
53
- */
54
-
55
-
56
- exports.leafletPathType = leafletPathType;
57
-
58
- const transitOperatorType = _propTypes.default.shape({
59
- agencyId: _propTypes.default.string.isRequired,
60
- defaultRouteColor: _propTypes.default.string,
61
- defaultRouteTextColor: _propTypes.default.string,
62
- feedId: _propTypes.default.string.isRequired,
63
- logo: _propTypes.default.string,
64
- longNameSplitter: _propTypes.default.string,
65
- name: _propTypes.default.string,
66
- order: _propTypes.default.number
67
- });
68
-
69
- exports.transitOperatorType = transitOperatorType;
70
-
71
- const languageConfigType = _propTypes.default.shape({
72
- stopViewer: _propTypes.default.string
73
- });
74
- /**
75
- * Defines which symbol to render based on a zoom level, and optionally by entity type.
76
- * (Only one symbol is rendered for any zoom level.)
77
- */
78
-
79
-
80
- exports.languageConfigType = languageConfigType;
81
-
82
- const zoomBasedSymbolType = _propTypes.default.shape({
83
- /**
84
- * A function with the signature (entity: object) => string
85
- * that determines the type of an entity.
86
- * symbolByType and getType must be either be both specified or both omitted.
87
- */
88
- getType: _propTypes.default.func,
89
-
90
- /**
91
- * The zoom level beginning at which the marker is drawn,
92
- * unless another marker with a higher minZoom is met.
93
- */
94
- minZoom: _propTypes.default.number.isRequired,
95
-
96
- /**
97
- * The symbol-representing component to draw, with the signature
98
- * ({ entity: object, zoom: number }) => Element
99
- * where entity must have an id attribute and contain coordinates information for placement on the map.
100
- */
101
- symbol: _propTypes.default.elementType.isRequired,
102
-
103
- /**
104
- * The symbol-representing component to draw for each entity type,
105
- * with the same signature as symbol. If a type returned by getType() is not listed,
106
- * then the component defined in the 'symbol' attribute will be rendered by default.
107
- * symbolByType and getType must be either be both specified or both omitted.
108
- */
109
- symbolByType: _propTypes.default.objectOf(_propTypes.default.elementType)
110
- });
111
- /** describes the objects from the real-time vehicle service */
112
-
113
-
114
- exports.zoomBasedSymbolType = zoomBasedSymbolType;
115
-
116
- const transitVehicleType = _propTypes.default.shape({
117
- routeShortName: _propTypes.default.string,
118
- routeLongName: _propTypes.default.string,
119
- routeType: _propTypes.default.string,
120
- status: _propTypes.default.string,
121
- reportDate: _propTypes.default.string,
122
- seconds: _propTypes.default.number,
123
- stopSequence: _propTypes.default.number,
124
- stopId: _propTypes.default.string,
125
- vehicleId: _propTypes.default.string,
126
- tripId: _propTypes.default.string,
127
- blockId: _propTypes.default.string,
128
- lat: _propTypes.default.number,
129
- lon: _propTypes.default.number,
130
- heading: _propTypes.default.number
131
- });
132
-
133
- exports.transitVehicleType = transitVehicleType;
134
-
135
- const vehicleRentalMapOverlaySymbolsType = _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.shape({
136
- dockStrokeColor: _propTypes.default.string,
137
- fillColor: _propTypes.default.string,
138
- minZoom: _propTypes.default.number.isRequired,
139
- pixels: _propTypes.default.number,
140
- type: _propTypes.default.string.isRequired
141
- }), zoomBasedSymbolType]).isRequired);
142
- /**
143
- * Represents the expected configuration of the webapp.
144
- *
145
- * Note: this is an incomplete type mapping.
146
- */
147
-
148
-
149
- exports.vehicleRentalMapOverlaySymbolsType = vehicleRentalMapOverlaySymbolsType;
150
-
151
- const configType = _propTypes.default.shape({
152
- companies: _propTypes.default.arrayOf(companyType.isRequired),
153
- dateTime: _propTypes.default.shape({
154
- timeFormat: _propTypes.default.string,
155
- dateFormat: _propTypes.default.string,
156
- longDateFormat: _propTypes.default.string
157
- }),
158
- // TODO: add full typing
159
- map: _propTypes.default.shape({
160
- overlays: _propTypes.default.arrayOf(_propTypes.default.shape({
161
- /**
162
- * The applicable companies this overlay covers. Only applicable in
163
- * certain vehicle rental overlays.
164
- */
165
- companies: _propTypes.default.arrayOf(_propTypes.default.string.isRequired),
166
- name: _propTypes.default.string.isRequired,
167
-
168
- /**
169
- * The applicable map symbols. Only applicable in vehicle rental
170
- * overlays.
171
- */
172
- mapSymbols: vehicleRentalMapOverlaySymbolsType,
173
-
174
- /**
175
- * Only used during park and ride queries. This will filter out P&Rs
176
- * that are further than the specified number of meters from a transit
177
- * stop.
178
- */
179
- maxTransitDistance: _propTypes.default.number,
180
-
181
- /**
182
- * The applicable modes this overlay covers. Only applicable in certain
183
- * vehicle rental overlays.
184
- */
185
- modes: _propTypes.default.arrayOf(_propTypes.default.string.isRequired),
186
-
187
- /**
188
- * The type of overlay. Currently valid values include:
189
- *
190
- * "bike-rental", "car-rental", "micromobility-rental", "park-and-ride",
191
- * "stops", "tile"
192
- */
193
- type: _propTypes.default.string.isRequired
194
- }))
195
- }),
196
- transitOperators: _propTypes.default.arrayOf(transitOperatorType)
197
- });
198
-
199
- exports.configType = configType;
200
-
201
- const feedScopedIdType = _propTypes.default.shape({
202
- agencyId: _propTypes.default.string,
203
- id: _propTypes.default.string
204
- });
205
-
206
- const encodedPolylineType = _propTypes.default.shape({
207
- length: _propTypes.default.number.isRequired,
208
- points: _propTypes.default.string.isRequired
209
- });
210
-
211
- exports.encodedPolylineType = encodedPolylineType;
212
-
213
- const elevationData = _propTypes.default.arrayOf(_propTypes.default.shape({
214
- first: _propTypes.default.number.isRequired,
215
- second: _propTypes.default.number.isRequired
216
- }).isRequired);
217
-
218
- const alertType = _propTypes.default.shape({
219
- alertHeaderText: _propTypes.default.string,
220
- alertDescriptionText: _propTypes.default.string,
221
- alertUrl: _propTypes.default.string,
222
- effectiveStartDate: _propTypes.default.number
223
- });
224
- /**
225
- * Represents steps in a leg in an itinerary of an OTP plan response. These are
226
- * only for non-transit modes.
227
- * See documentation here: http://otp-docs.ibi-transit.com/api/json_WalkStep.html
228
- */
229
-
230
-
231
- const stepsType = _propTypes.default.arrayOf(_propTypes.default.shape({
232
- absoluteDirection: _propTypes.default.string,
233
- alerts: _propTypes.default.arrayOf(alertType),
234
- area: _propTypes.default.bool.isRequired,
235
- bogusName: _propTypes.default.bool.isRequired,
236
- distance: _propTypes.default.number.isRequired,
237
- elevation: elevationData.isRequired,
238
- lat: _propTypes.default.number.isRequired,
239
- lon: _propTypes.default.number.isRequired,
240
- relativeDirection: _propTypes.default.string.isRequired,
241
- stayOn: _propTypes.default.bool.isRequired,
242
- streetName: _propTypes.default.string.isRequired
243
- }));
244
-
245
- exports.stepsType = stepsType;
246
-
247
- const placeType = _propTypes.default.shape({
248
- arrival: _propTypes.default.number,
249
- departure: _propTypes.default.number,
250
- lat: _propTypes.default.number.isRequired,
251
- lon: _propTypes.default.number.isRequired,
252
- name: _propTypes.default.string.isRequired,
253
- networks: _propTypes.default.arrayOf(_propTypes.default.string.isRequired),
254
- stopCode: _propTypes.default.string,
255
- stopId: _propTypes.default.string,
256
- stopIndex: _propTypes.default.number,
257
- stopSequence: _propTypes.default.number,
258
- vertexType: _propTypes.default.string.isRequired,
259
- zoneId: _propTypes.default.string
260
- });
261
- /**
262
- * Represents a leg in an itinerary of an OTP plan response. Each leg represents
263
- * a portion of the overall itinerary that is done until either reaching the
264
- * destination or transitioning to another mode of travel. See OTP webservice
265
- * documentation here:
266
- * http://otp-docs.ibi-transit.com/api/json_Leg.html
267
- */
268
-
269
-
270
- exports.placeType = placeType;
271
-
272
- const legType = _propTypes.default.shape({
273
- agencyId: _propTypes.default.string,
274
- agencyName: _propTypes.default.string,
275
- agencyTimeZoneOffset: _propTypes.default.number.isRequired,
276
- agencyUrl: _propTypes.default.string,
277
- alerts: _propTypes.default.arrayOf(alertType),
278
- arrivalDelay: _propTypes.default.number.isRequired,
279
- departureDelay: _propTypes.default.number.isRequired,
280
- distance: _propTypes.default.number.isRequired,
281
- duration: _propTypes.default.number.isRequired,
282
- endTime: _propTypes.default.number.isRequired,
283
- from: placeType.isRequired,
284
- hailedCar: _propTypes.default.bool,
285
- headsign: _propTypes.default.string,
286
- interlineWithPreviousLeg: _propTypes.default.bool.isRequired,
287
- intermediateStops: _propTypes.default.arrayOf(placeType).isRequired,
288
- interStopGeometry: _propTypes.default.arrayOf(encodedPolylineType),
289
- legGeometry: encodedPolylineType.isRequired,
290
- mode: _propTypes.default.string.isRequired,
291
- pathway: _propTypes.default.bool.isRequired,
292
- realTime: _propTypes.default.bool.isRequired,
293
- rentedBike: _propTypes.default.bool.isRequired,
294
- rentedCar: _propTypes.default.bool.isRequired,
295
- rentedVehicle: _propTypes.default.bool.isRequired,
296
- route: _propTypes.default.string,
297
- routeId: _propTypes.default.string,
298
- routeType: _propTypes.default.number,
299
- serviceDate: _propTypes.default.string,
300
- startTime: _propTypes.default.number.isRequired,
301
- steps: stepsType.isRequired,
302
- tncData: _propTypes.default.shape({
303
- company: _propTypes.default.string.isRequired,
304
- currency: _propTypes.default.string.isRequired,
305
- displayName: _propTypes.default.string.isRequired,
306
- estimatedArrival: _propTypes.default.number.isRequired,
307
- maxCost: _propTypes.default.number.isRequired,
308
- minCost: _propTypes.default.number.isRequired,
309
- productId: _propTypes.default.string.isRequired,
310
- travelDuration: _propTypes.default.number.isRequired
311
- }),
312
- to: placeType.isRequired,
313
- transitLeg: _propTypes.default.bool.isRequired,
314
- tripBlockId: _propTypes.default.string,
315
- tripId: _propTypes.default.string
316
- });
317
-
318
- exports.legType = legType;
319
-
320
- const moneyType = _propTypes.default.shape({
321
- cents: _propTypes.default.number.isRequired,
322
- currency: _propTypes.default.shape({
323
- defaultFractionDigits: _propTypes.default.number.isRequired,
324
- currencyCode: _propTypes.default.string.isRequired,
325
- symbol: _propTypes.default.string.isRequired,
326
- currency: _propTypes.default.string.isRequired
327
- }).isRequired
328
- });
329
- /**
330
- * Represents the fare component of an itinerary of an OTP plan response. See
331
- * detailed documentation in OTP webservice documentation here:
332
- * http://otp-docs.ibi-transit.com/api/json_Fare.html
333
- *
334
- * NOTE: so far the fare includes ONLY a fare encountered on public transit and
335
- * not any bike rental or TNC rental fees.
336
- */
337
-
338
-
339
- const fareType = _propTypes.default.shape({
340
- details: _propTypes.default.objectOf(_propTypes.default.arrayOf(_propTypes.default.shape({
341
- fareId: _propTypes.default.oneOfType([_propTypes.default.string, feedScopedIdType]).isRequired,
342
- price: moneyType.isRequired,
343
- routes: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.string, feedScopedIdType])).isRequired
344
- })).isRequired),
345
- fare: _propTypes.default.objectOf(moneyType)
346
- });
347
- /**
348
- * Represents an itinerary of an OTP plan response. See detailed documentation
349
- * in OTP webservice documentation here:
350
- * http://otp-docs.ibi-transit.com/api/json_Itinerary.html
351
- */
352
-
353
-
354
- exports.fareType = fareType;
355
-
356
- const itineraryType = _propTypes.default.shape({
357
- duration: _propTypes.default.number.isRequired,
358
- elevationGained: _propTypes.default.number.isRequired,
359
- elevationLost: _propTypes.default.number.isRequired,
360
- endTime: _propTypes.default.number.isRequired,
361
- fare: fareType,
362
- legs: _propTypes.default.arrayOf(legType).isRequired,
363
- startTime: _propTypes.default.number.isRequired,
364
- tooSloped: _propTypes.default.bool,
365
- transfers: _propTypes.default.number.isRequired,
366
- transitTime: _propTypes.default.number.isRequired,
367
- waitingTime: _propTypes.default.number.isRequired,
368
- walkDistance: _propTypes.default.number.isRequired,
369
- walkLimitExceeded: _propTypes.default.bool.isRequired,
370
- walkTime: _propTypes.default.number.isRequired
371
- });
372
- /**
373
- * Used to model a location that is used in planning a trip.
374
- */
375
-
376
-
377
- exports.itineraryType = itineraryType;
378
-
379
- const locationType = _propTypes.default.shape({
380
- lat: _propTypes.default.number.isRequired,
381
- lon: _propTypes.default.number.isRequired,
382
- name: _propTypes.default.string.isRequired,
383
-
384
- /**
385
- * This is only used location that a user has saved. Can be either:
386
- * "home" or "work"
387
- */
388
- type: _propTypes.default.string
389
- });
390
- /**
391
- * Used to help display the time of day within the context of a particular itinerary.
392
- */
393
-
394
-
395
- exports.locationType = locationType;
396
-
397
- const timeOptionsType = _propTypes.default.shape({
398
- /**
399
- * A format string template to be used to display a date using moment.js
400
- */
401
- format: _propTypes.default.string,
402
-
403
- /*
404
- * The timezone offset in milliseconds if any should be added. This is
405
- * typically calculated using the itinerary.js#getTimeZoneOffset function.
406
- */
407
- offset: _propTypes.default.number
408
- });
409
- /**
410
- * This models data about a stop and it's associated routes that is obtained
411
- * from a transit index API.
412
- */
413
-
414
-
415
- exports.timeOptionsType = timeOptionsType;
416
-
417
- const transitIndexStopWithRoutes = _propTypes.default.shape({
418
- /**
419
- * The stop code if the stop has one
420
- */
421
- code: _propTypes.default.string,
422
-
423
- /**
424
- * The distance from the user to the stop in meters
425
- */
426
- dist: _propTypes.default.number,
427
- lat: _propTypes.default.number,
428
- lon: _propTypes.default.number,
429
- name: _propTypes.default.string,
430
- routes: _propTypes.default.arrayOf(_propTypes.default.shape({
431
- longName: _propTypes.default.string,
432
- shortName: _propTypes.default.string
433
- }))
434
- });
435
-
436
- exports.transitIndexStopWithRoutes = transitIndexStopWithRoutes;
437
-
438
- const stopLayerStopType = _propTypes.default.shape({
439
- id: _propTypes.default.string.isRequired,
440
- name: _propTypes.default.string.isRequired,
441
- lat: _propTypes.default.number.isRequired,
442
- lon: _propTypes.default.number.isRequired
443
- });
444
-
445
- exports.stopLayerStopType = stopLayerStopType;
446
-
447
- const transitivePlaceType = _propTypes.default.shape({
448
- place_id: _propTypes.default.string.isRequired,
449
- type: _propTypes.default.string.isRequired
450
- });
451
-
452
- const transitiveDataType = _propTypes.default.shape({
453
- journeys: _propTypes.default.arrayOf(_propTypes.default.shape({
454
- journey_id: _propTypes.default.string.isRequired,
455
- journey_name: _propTypes.default.string.isRequired,
456
- segments: _propTypes.default.arrayOf(_propTypes.default.shape({
457
- arc: _propTypes.default.bool,
458
- from: transitivePlaceType,
459
- patterns: _propTypes.default.arrayOf(_propTypes.default.shape({
460
- pattern_id: _propTypes.default.string.isRequired,
461
- from_stop_index: _propTypes.default.number.isRequired,
462
- to_stop_index: _propTypes.default.number.isRequired
463
- })),
464
- streetEdges: _propTypes.default.arrayOf(_propTypes.default.number),
465
- to: transitivePlaceType,
466
- type: _propTypes.default.string.isRequired
467
- })).isRequired
468
- })).isRequired,
469
- patterns: _propTypes.default.arrayOf(_propTypes.default.shape({
470
- pattern_id: _propTypes.default.string.isRequired,
471
- pattern_name: _propTypes.default.string.isRequired,
472
- route_id: _propTypes.default.string.isRequired,
473
- stops: _propTypes.default.arrayOf(_propTypes.default.shape({
474
- geometry: _propTypes.default.string,
475
- stop_id: _propTypes.default.string.isRequired
476
- })).isRequired
477
- })).isRequired,
478
- places: _propTypes.default.arrayOf(_propTypes.default.shape({
479
- place_id: _propTypes.default.string.isRequired,
480
- place_lat: _propTypes.default.number.isRequired,
481
- place_lon: _propTypes.default.number.isRequired,
482
- place_name: _propTypes.default.string
483
- })).isRequired,
484
- routes: _propTypes.default.arrayOf(_propTypes.default.shape({
485
- agency_id: _propTypes.default.string.isRequired,
486
- route_id: _propTypes.default.string.isRequired,
487
- route_short_name: _propTypes.default.string.isRequired,
488
- route_long_name: _propTypes.default.string.isRequired,
489
- route_type: _propTypes.default.number.isRequired,
490
- route_color: _propTypes.default.string
491
- })).isRequired,
492
- stops: _propTypes.default.arrayOf(_propTypes.default.shape({
493
- stop_id: _propTypes.default.string.isRequired,
494
- stop_name: _propTypes.default.string.isRequired,
495
- stop_lat: _propTypes.default.number.isRequired,
496
- stop_lon: _propTypes.default.number.isRequired
497
- })).isRequired,
498
- streetEdges: _propTypes.default.arrayOf(_propTypes.default.shape({
499
- edge_id: _propTypes.default.number.isRequired,
500
- geometry: encodedPolylineType
501
- })).isRequired
502
- });
503
- /**
504
- * This models data about a vehicle rental station as obtained from various
505
- * vehicle rental API endpoints from OTP.
506
- */
507
-
508
-
509
- exports.transitiveDataType = transitiveDataType;
510
-
511
- const stationType = _propTypes.default.shape({
512
- bikesAvailable: _propTypes.default.number,
513
- id: _propTypes.default.string.isRequired,
514
- isFloatingBike: _propTypes.default.bool,
515
- isFloatingCar: _propTypes.default.bool,
516
- isFloatingVehicle: _propTypes.default.bool,
517
- name: _propTypes.default.string,
518
- networks: _propTypes.default.arrayOf(_propTypes.default.string.isRequired).isRequired,
519
- spacesAvailable: _propTypes.default.number,
520
- x: _propTypes.default.number.isRequired,
521
- y: _propTypes.default.number.isRequired
522
- });
523
- /**
524
- * Utility function to help create chained validators
525
- * per https://www.ian-thomas.net/custom-proptype-validation-with-react/
526
- * @param {*} validator The validator to use.
527
- */
528
-
529
-
530
- exports.stationType = stationType;
531
-
532
- function createChainableTypeChecker(validator) {
533
- function checkType(isRequired, props, propName, componentName, location) {
534
- componentName = componentName || "ANONYMOUS";
535
-
536
- if (props[propName] == null) {
537
- if (isRequired) {
538
- const locationName = _react.ReactPropTypeLocationNames[location];
539
- return new Error(`Required '${locationName}/${propName}' was not specified in '${componentName}'.`);
540
- }
541
-
542
- return null;
543
- }
544
-
545
- return validator(props, propName, componentName, location);
546
- }
547
-
548
- const chainedCheckType = checkType.bind(null, false);
549
- chainedCheckType.isRequired = checkType.bind(null, true);
550
- return chainedCheckType;
551
- }
552
-
553
- const latlngType = createChainableTypeChecker((props, propName) => {
554
- // Source: https://reactjs.org/docs/typechecking-with-proptypes.html#react.proptypes
555
- if (!(0, _map.isValidLatLng)(props[propName])) {
556
- return new Error(`${propName} needs to be a [lat, lng] array`);
557
- }
558
-
559
- return null;
560
- });
561
- exports.latlngType = latlngType;
562
-
563
- const modeOptionType = _propTypes.default.shape({
564
- id: _propTypes.default.string.isRequired,
565
- selected: _propTypes.default.bool,
566
- showTitle: _propTypes.default.bool,
567
- text: _propTypes.default.node.isRequired,
568
- title: _propTypes.default.string
569
- });
570
-
571
- exports.modeOptionType = modeOptionType;
572
-
573
- const modeSelectorOptionsType = _propTypes.default.shape({
574
- primary: modeOptionType,
575
- secondary: _propTypes.default.arrayOf(modeOptionType),
576
- tertiary: _propTypes.default.arrayOf(modeOptionType)
577
- });
578
-
579
- exports.modeSelectorOptionsType = modeSelectorOptionsType;
580
-
581
- const configuredModeType = _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.shape({
582
- mode: _propTypes.default.string.isRequired,
583
- label: _propTypes.default.string.isRequired,
584
- company: _propTypes.default.string
585
- })]);
586
-
587
- exports.configuredModeType = configuredModeType;
588
-
589
- const configuredModesType = _propTypes.default.shape({
590
- transitModes: _propTypes.default.arrayOf(configuredModeType),
591
- accessModes: _propTypes.default.arrayOf(configuredModeType),
592
- exclusiveModes: _propTypes.default.arrayOf(configuredModeType),
593
- bicycleModes: _propTypes.default.arrayOf(configuredModeType),
594
- micromobilityModes: _propTypes.default.arrayOf(configuredModeType)
595
- });
596
-
597
- exports.configuredModesType = configuredModesType;
598
-
599
- const configuredCompanyType = _propTypes.default.shape({
600
- /**
601
- * The id of the company. This is typically in all-caps.
602
- */
603
- id: _propTypes.default.string.isRequired,
604
-
605
- /**
606
- * A human readable text value that can be displayed to users.
607
- */
608
- label: _propTypes.default.string.isRequired,
609
-
610
- /**
611
- * A comma-separated list of applicable modes of travel that the company
612
- * offers.
613
- */
614
- modes: _propTypes.default.string.isRequired
615
- });
616
- /**
617
- * Depending on the geocoder that is used, more properties than just the `label`
618
- * property might be provided by the geocoder. For example, with the Pelias
619
- * geocoder, properties such as `id`, `layer`, `source` are also included.
620
- */
621
-
622
-
623
- exports.configuredCompanyType = configuredCompanyType;
624
-
625
- const geocodedFeatureType = _propTypes.default.shape({
626
- geometry: _propTypes.default.shape({
627
- coordinates: _propTypes.default.arrayOf(_propTypes.default.number.isRequired).isRequired,
628
- type: _propTypes.default.string.isRequired
629
- }).isRequired,
630
- properties: _propTypes.default.shape({
631
- label: _propTypes.default.string.isRequired
632
- }).isRequired
633
- });
634
-
635
- exports.geocodedFeatureType = geocodedFeatureType;
636
-
637
- const userLocationType = _propTypes.default.shape({
638
- id: _propTypes.default.string,
639
-
640
- /**
641
- * Can be either 'home', 'work', or null
642
- */
643
- icon: _propTypes.default.string,
644
- lat: _propTypes.default.number.isRequired,
645
- lon: _propTypes.default.number.isRequired,
646
- name: _propTypes.default.string.isRequired,
647
-
648
- /**
649
- * This represents the last time that this location was selected in a
650
- * search
651
- */
652
- timestamp: _propTypes.default.number,
653
-
654
- /**
655
- * One of: 'home', 'work', 'stop' or 'recent'
656
- */
657
- type: _propTypes.default.string.isRequired
658
- });
659
-
660
- exports.userLocationType = userLocationType;
661
- //# sourceMappingURL=types.js.map