@opentripplanner/vehicle-rental-overlay 2.1.0-alpha.3 → 2.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/esm/index.js CHANGED
@@ -8,7 +8,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
8
8
  import { MarkerWithPopup, Popup } from "@opentripplanner/base-map";
9
9
  import React, { useEffect, useState } from "react";
10
10
  import { Layer, Source, useMap } from "react-map-gl";
11
- import StationPopup from "./StationPopup";
11
+ import StationPopup from "@opentripplanner/map-popup";
12
12
  import { BaseBikeRentalIcon, StationMarker } from "./styled"; // TODO: Make configurable?
13
13
 
14
14
  var DETAILED_MARKER_CUTOFF = 16;
@@ -135,8 +135,11 @@ var VehicleRentalOverlay = function VehicleRentalOverlay(_ref2) {
135
135
 
136
136
  _setLocation(location);
137
137
  },
138
- getStationName: getStationName,
139
- station: station
138
+ getEntityName: // @ts-expect-error no stop support. Avoid a breaking change
139
+ getStationName && function (s, cc) {
140
+ return getStationName(cc, s);
141
+ },
142
+ entity: station
140
143
  }),
141
144
  position: [station.y, station.x]
142
145
  }, station.bikesAvailable !== undefined && !station.isFloatingBike && !station.isFloatingVehicle && station.spacesAvailable !== undefined ? /*#__PURE__*/React.createElement(BaseBikeRentalIcon, {
@@ -154,13 +157,16 @@ var VehicleRentalOverlay = function VehicleRentalOverlay(_ref2) {
154
157
  }
155
158
  }, /*#__PURE__*/React.createElement(StationPopup, {
156
159
  configCompanies: configCompanies,
157
- getStationName: getStationName,
160
+ getEntityName: // @ts-expect-error no stop support. Avoid a breaking change
161
+ getStationName && function (s, cc) {
162
+ return getStationName(cc, s);
163
+ },
158
164
  setLocation: function setLocation(location) {
159
165
  setClickedVehicle(null);
160
166
 
161
167
  _setLocation(location);
162
168
  },
163
- station: _objectSpread(_objectSpread({}, clickedVehicle), {}, {
169
+ entity: _objectSpread(_objectSpread({}, clickedVehicle), {}, {
164
170
  networks: JSON.parse(clickedVehicle.networks)
165
171
  })
166
172
  })));
package/esm/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.tsx"],"names":["MarkerWithPopup","Popup","React","useEffect","useState","Layer","Source","useMap","StationPopup","BaseBikeRentalIcon","StationMarker","DETAILED_MARKER_CUTOFF","getColorForStation","v","isFloatingCar","isFloatingVehicle","bikesAvailable","undefined","isFloatingBike","checkIfPositionInViewport","bounds","lat","lng","PADDING","_sw","_ne","sw","ne","VehicleRentalOverlay","companies","configCompanies","getStationName","id","refreshVehicles","setLocation","stations","visible","map","current","zoom","getZoom","getBounds","layerId","clickedVehicle","setClickedVehicle","setInterval","VEHICLE_LAYERS","forEach","stopLayer","on","getCanvas","style","cursor","event","features","properties","length","vehiclesGeoJSON","type","filter","vehicle","networks","includes","geometry","coordinates","x","y","JSON","stringify","color","station","location","spacesAvailable","parse"],"mappings":"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","sourcesContent":["import { MarkerWithPopup, Popup } from \"@opentripplanner/base-map\";\nimport {\n Company,\n ConfiguredCompany,\n MapLocationActionArg,\n Station\n} from \"@opentripplanner/types\";\nimport { EventData } from \"mapbox-gl\";\nimport React, { useEffect, useState } from \"react\";\nimport { Layer, Source, useMap } from \"react-map-gl\";\n\nimport StationPopup from \"./StationPopup\";\nimport { BaseBikeRentalIcon, StationMarker } from \"./styled\";\n\n// TODO: Make configurable?\nconst DETAILED_MARKER_CUTOFF = 16;\n\nconst getColorForStation = (v: Station) => {\n if (v.isFloatingCar) return \"#009cde\";\n if (v.isFloatingVehicle) return \"#f5a729\";\n // TODO: nicer color to match transitive\n if (v.bikesAvailable !== undefined || v.isFloatingBike) return \"#f00\";\n return \"gray\";\n};\n\nconst checkIfPositionInViewport = (\n bounds: mapboxgl.LngLatBounds,\n lat: number,\n lng: number\n): boolean => {\n const PADDING = 0.001;\n // @ts-expect-error types appear to be wrong? version issue?\n // eslint-disable-next-line no-underscore-dangle\n const [sw, ne] = [bounds._sw, bounds._ne];\n if (!sw || !ne) return false;\n\n return (\n lat >= sw.lat - PADDING &&\n lat <= ne.lat + PADDING &&\n lng >= sw.lng - PADDING &&\n lng <= ne.lng + PADDING\n );\n};\n\ntype Props = {\n /**\n * A list of companies that are applicable to just this instance of the\n * overlay.\n */\n companies?: string[];\n /**\n * The entire companies config array.\n */\n configCompanies: ConfiguredCompany[];\n /**\n * An id, used to make this layer uniquely identifiable\n */\n id: string;\n /**\n * An optional custom function to create a string name of a particular vehicle\n * rental station. This function takes two arguments of the configCompanies\n * prop and a vehicle rental station. The function must return a string.\n */\n getStationName?: (configCompanies: Company[], station: Station) => string;\n /**\n * If specified, a function that will be triggered every 30 seconds whenever this layer is\n * visible.\n */\n refreshVehicles?: () => void;\n /**\n * A callback for when a user clicks on setting this stop as either the from\n * or to location of a new search.\n *\n * This will be dispatched with the following argument:\n *\n * ```js\n * {\n * location: {\n * lat: number,\n * lon: number,\n * name: string\n * },\n * locationType: \"from\" or \"to\"\n * }\n * ```\n */\n setLocation?: (arg: MapLocationActionArg) => void;\n /**\n * A list of the vehicle rental stations specific to this overlay instance.\n */\n stations: Station[];\n /**\n * Whether the overlay is currently visible.\n */\n visible?: boolean;\n /**\n * TODO: Add props for overriding symbols?\n */\n};\n\n/**\n * This vehicle rental overlay can be used to render vehicle rentals of various\n * types. This layer can be configured to show different styles of markers at\n * different zoom levels.\n */\nconst VehicleRentalOverlay = ({\n companies,\n configCompanies,\n getStationName,\n id,\n refreshVehicles,\n setLocation,\n stations,\n visible\n}: Props): JSX.Element => {\n const { current: map } = useMap();\n const zoom = map?.getZoom();\n const bounds = map?.getBounds();\n\n const layerId = `rental-vehicles-${id}`;\n const [clickedVehicle, setClickedVehicle] = useState(null);\n\n useEffect(() => {\n // TODO: Make 30s configurable?\n if (!refreshVehicles || typeof refreshVehicles !== \"function\") {\n return;\n }\n\n refreshVehicles();\n setInterval(refreshVehicles, 30_000);\n }, [refreshVehicles]);\n\n useEffect(() => {\n const VEHICLE_LAYERS = [layerId];\n VEHICLE_LAYERS.forEach(stopLayer => {\n map?.on(\"mouseenter\", stopLayer, () => {\n map.getCanvas().style.cursor = \"pointer\";\n });\n map?.on(\"mouseleave\", stopLayer, () => {\n map.getCanvas().style.cursor = \"\";\n });\n map?.on(\"click\", stopLayer, (event: EventData) => {\n setClickedVehicle(event.features?.[0].properties);\n });\n });\n }, [map]);\n\n // Don't render if no map or no stops are defined.\n if (visible === false || !stations || stations.length === 0) {\n // Null can't be returned here -- react-map-gl dislikes null values as children\n return <></>;\n }\n\n const vehiclesGeoJSON: GeoJSON.FeatureCollection = {\n type: \"FeatureCollection\",\n features: stations\n .filter(\n vehicle =>\n // Include specified companies only if companies is specified and network info is available\n !companies ||\n !vehicle.networks ||\n companies.includes(vehicle.networks[0])\n )\n .map(vehicle => ({\n type: \"Feature\",\n geometry: { type: \"Point\", coordinates: [vehicle.x, vehicle.y] },\n properties: {\n ...vehicle,\n networks: JSON.stringify(vehicle.networks),\n \"stroke-width\":\n vehicle.isFloatingBike || vehicle.isFloatingVehicle ? 1 : 2,\n color: getColorForStation(vehicle)\n }\n }))\n };\n\n return (\n <>\n {zoom < DETAILED_MARKER_CUTOFF && (\n <Source type=\"geojson\" data={vehiclesGeoJSON}>\n <Layer\n id={layerId}\n paint={{\n \"circle-color\": [\"get\", \"color\"],\n \"circle-opacity\": 0.9,\n \"circle-stroke-color\": \"#333\",\n \"circle-stroke-width\": [\"get\", \"stroke-width\"]\n }}\n type=\"circle\"\n />\n {/* this is where we add the symbols layer. add a second layer that gets swapped in and out dynamically */}\n </Source>\n )}\n {zoom >= DETAILED_MARKER_CUTOFF &&\n stations\n .filter(station =>\n checkIfPositionInViewport(bounds, station.y, station.x)\n )\n .map(station => (\n <MarkerWithPopup\n key={station.id}\n popupContents={\n <StationPopup\n configCompanies={configCompanies}\n setLocation={location => {\n setClickedVehicle(null);\n setLocation(location);\n }}\n getStationName={getStationName}\n station={station}\n />\n }\n position={[station.y, station.x]}\n >\n {station.bikesAvailable !== undefined &&\n !station.isFloatingBike &&\n !station.isFloatingVehicle &&\n station.spacesAvailable !== undefined ? (\n <BaseBikeRentalIcon\n percent={\n station?.bikesAvailable /\n (station?.bikesAvailable + station?.spacesAvailable)\n }\n />\n ) : (\n <StationMarker width={12} color={getColorForStation(station)} />\n )}\n </MarkerWithPopup>\n ))}\n {clickedVehicle && (\n <Popup\n latitude={clickedVehicle.y}\n longitude={clickedVehicle.x}\n maxWidth=\"100%\"\n onClose={() => {\n setClickedVehicle(null);\n }}\n >\n <StationPopup\n configCompanies={configCompanies}\n getStationName={getStationName}\n setLocation={location => {\n setClickedVehicle(null);\n setLocation(location);\n }}\n station={{\n ...clickedVehicle,\n networks: JSON.parse(clickedVehicle.networks)\n }}\n />\n </Popup>\n )}\n </>\n );\n};\nexport default VehicleRentalOverlay;\nexport { StationPopup };\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../src/index.tsx"],"names":["MarkerWithPopup","Popup","React","useEffect","useState","Layer","Source","useMap","StationPopup","BaseBikeRentalIcon","StationMarker","DETAILED_MARKER_CUTOFF","getColorForStation","v","isFloatingCar","isFloatingVehicle","bikesAvailable","undefined","isFloatingBike","checkIfPositionInViewport","bounds","lat","lng","PADDING","_sw","_ne","sw","ne","VehicleRentalOverlay","companies","configCompanies","getStationName","id","refreshVehicles","setLocation","stations","visible","map","current","zoom","getZoom","getBounds","layerId","clickedVehicle","setClickedVehicle","setInterval","VEHICLE_LAYERS","forEach","stopLayer","on","getCanvas","style","cursor","event","features","properties","length","vehiclesGeoJSON","type","filter","vehicle","networks","includes","geometry","coordinates","x","y","JSON","stringify","color","station","location","s","cc","spacesAvailable","parse"],"mappings":"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","sourcesContent":["import { MarkerWithPopup, Popup } from \"@opentripplanner/base-map\";\nimport {\n Company,\n ConfiguredCompany,\n MapLocationActionArg,\n Station\n} from \"@opentripplanner/types\";\nimport { EventData } from \"mapbox-gl\";\nimport React, { useEffect, useState } from \"react\";\nimport { Layer, Source, useMap } from \"react-map-gl\";\n\nimport StationPopup from \"@opentripplanner/map-popup\";\nimport { BaseBikeRentalIcon, StationMarker } from \"./styled\";\n\n// TODO: Make configurable?\nconst DETAILED_MARKER_CUTOFF = 16;\n\nconst getColorForStation = (v: Station) => {\n if (v.isFloatingCar) return \"#009cde\";\n if (v.isFloatingVehicle) return \"#f5a729\";\n // TODO: nicer color to match transitive\n if (v.bikesAvailable !== undefined || v.isFloatingBike) return \"#f00\";\n return \"gray\";\n};\n\nconst checkIfPositionInViewport = (\n bounds: mapboxgl.LngLatBounds,\n lat: number,\n lng: number\n): boolean => {\n const PADDING = 0.001;\n // @ts-expect-error types appear to be wrong? version issue?\n // eslint-disable-next-line no-underscore-dangle\n const [sw, ne] = [bounds._sw, bounds._ne];\n if (!sw || !ne) return false;\n\n return (\n lat >= sw.lat - PADDING &&\n lat <= ne.lat + PADDING &&\n lng >= sw.lng - PADDING &&\n lng <= ne.lng + PADDING\n );\n};\n\ntype Props = {\n /**\n * A list of companies that are applicable to just this instance of the\n * overlay.\n */\n companies?: string[];\n /**\n * The entire companies config array.\n */\n configCompanies: ConfiguredCompany[];\n /**\n * An id, used to make this layer uniquely identifiable\n */\n id: string;\n /**\n * An optional custom function to create a string name of a particular vehicle\n * rental station. This function takes two arguments of the configCompanies\n * prop and a vehicle rental station. The function must return a string.\n */\n getStationName?: (configCompanies: Company[], station: Station) => string;\n /**\n * If specified, a function that will be triggered every 30 seconds whenever this layer is\n * visible.\n */\n refreshVehicles?: () => void;\n /**\n * A callback for when a user clicks on setting this stop as either the from\n * or to location of a new search.\n *\n * This will be dispatched with the following argument:\n *\n * ```js\n * {\n * location: {\n * lat: number,\n * lon: number,\n * name: string\n * },\n * locationType: \"from\" or \"to\"\n * }\n * ```\n */\n setLocation?: (arg: MapLocationActionArg) => void;\n /**\n * A list of the vehicle rental stations specific to this overlay instance.\n */\n stations: Station[];\n /**\n * Whether the overlay is currently visible.\n */\n visible?: boolean;\n /**\n * TODO: Add props for overriding symbols?\n */\n};\n\n/**\n * This vehicle rental overlay can be used to render vehicle rentals of various\n * types. This layer can be configured to show different styles of markers at\n * different zoom levels.\n */\nconst VehicleRentalOverlay = ({\n companies,\n configCompanies,\n getStationName,\n id,\n refreshVehicles,\n setLocation,\n stations,\n visible\n}: Props): JSX.Element => {\n const { current: map } = useMap();\n const zoom = map?.getZoom();\n const bounds = map?.getBounds();\n\n const layerId = `rental-vehicles-${id}`;\n const [clickedVehicle, setClickedVehicle] = useState(null);\n\n useEffect(() => {\n // TODO: Make 30s configurable?\n if (!refreshVehicles || typeof refreshVehicles !== \"function\") {\n return;\n }\n\n refreshVehicles();\n setInterval(refreshVehicles, 30_000);\n }, [refreshVehicles]);\n\n useEffect(() => {\n const VEHICLE_LAYERS = [layerId];\n VEHICLE_LAYERS.forEach(stopLayer => {\n map?.on(\"mouseenter\", stopLayer, () => {\n map.getCanvas().style.cursor = \"pointer\";\n });\n map?.on(\"mouseleave\", stopLayer, () => {\n map.getCanvas().style.cursor = \"\";\n });\n map?.on(\"click\", stopLayer, (event: EventData) => {\n setClickedVehicle(event.features?.[0].properties);\n });\n });\n }, [map]);\n\n // Don't render if no map or no stops are defined.\n if (visible === false || !stations || stations.length === 0) {\n // Null can't be returned here -- react-map-gl dislikes null values as children\n return <></>;\n }\n\n const vehiclesGeoJSON: GeoJSON.FeatureCollection = {\n type: \"FeatureCollection\",\n features: stations\n .filter(\n vehicle =>\n // Include specified companies only if companies is specified and network info is available\n !companies ||\n !vehicle.networks ||\n companies.includes(vehicle.networks[0])\n )\n .map(vehicle => ({\n type: \"Feature\",\n geometry: { type: \"Point\", coordinates: [vehicle.x, vehicle.y] },\n properties: {\n ...vehicle,\n networks: JSON.stringify(vehicle.networks),\n \"stroke-width\":\n vehicle.isFloatingBike || vehicle.isFloatingVehicle ? 1 : 2,\n color: getColorForStation(vehicle)\n }\n }))\n };\n\n return (\n <>\n {zoom < DETAILED_MARKER_CUTOFF && (\n <Source type=\"geojson\" data={vehiclesGeoJSON}>\n <Layer\n id={layerId}\n paint={{\n \"circle-color\": [\"get\", \"color\"],\n \"circle-opacity\": 0.9,\n \"circle-stroke-color\": \"#333\",\n \"circle-stroke-width\": [\"get\", \"stroke-width\"]\n }}\n type=\"circle\"\n />\n {/* this is where we add the symbols layer. add a second layer that gets swapped in and out dynamically */}\n </Source>\n )}\n {zoom >= DETAILED_MARKER_CUTOFF &&\n stations\n .filter(station =>\n checkIfPositionInViewport(bounds, station.y, station.x)\n )\n .map(station => (\n <MarkerWithPopup\n key={station.id}\n popupContents={\n <StationPopup\n configCompanies={configCompanies}\n setLocation={location => {\n setClickedVehicle(null);\n setLocation(location);\n }}\n getEntityName={\n // @ts-expect-error no stop support. Avoid a breaking change\n getStationName && ((s, cc) => getStationName(cc, s))\n }\n entity={station}\n />\n }\n position={[station.y, station.x]}\n >\n {station.bikesAvailable !== undefined &&\n !station.isFloatingBike &&\n !station.isFloatingVehicle &&\n station.spacesAvailable !== undefined ? (\n <BaseBikeRentalIcon\n percent={\n station?.bikesAvailable /\n (station?.bikesAvailable + station?.spacesAvailable)\n }\n />\n ) : (\n <StationMarker width={12} color={getColorForStation(station)} />\n )}\n </MarkerWithPopup>\n ))}\n {clickedVehicle && (\n <Popup\n latitude={clickedVehicle.y}\n longitude={clickedVehicle.x}\n maxWidth=\"100%\"\n onClose={() => {\n setClickedVehicle(null);\n }}\n >\n <StationPopup\n configCompanies={configCompanies}\n getEntityName={\n // @ts-expect-error no stop support. Avoid a breaking change\n getStationName && ((s, cc) => getStationName(cc, s))\n }\n setLocation={location => {\n setClickedVehicle(null);\n setLocation(location);\n }}\n entity={{\n ...clickedVehicle,\n networks: JSON.parse(clickedVehicle.networks)\n }}\n />\n </Popup>\n )}\n </>\n );\n};\nexport default VehicleRentalOverlay;\nexport { StationPopup };\n"],"file":"index.js"}
package/lib/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import { Company, ConfiguredCompany, MapLocationActionArg, Station } from "@opentripplanner/types";
3
- import StationPopup from "./StationPopup";
3
+ import StationPopup from "@opentripplanner/map-popup";
4
4
  declare type Props = {
5
5
  /**
6
6
  * A list of companies that are applicable to just this instance of the
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":";AACA,OAAO,EACL,OAAO,EACP,iBAAiB,EACjB,oBAAoB,EACpB,OAAO,EACR,MAAM,wBAAwB,CAAC;AAKhC,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAiC1C,aAAK,KAAK,GAAG;IACX;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB;;OAEG;IACH,eAAe,EAAE,iBAAiB,EAAE,CAAC;IACrC;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;;;OAIG;IACH,cAAc,CAAC,EAAE,CAAC,eAAe,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,KAAK,MAAM,CAAC;IAC1E;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B;;;;;;;;;;;;;;;;OAgBG;IACH,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAClD;;OAEG;IACH,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CAInB,CAAC;AAEF;;;;GAIG;AACH,QAAA,MAAM,oBAAoB,wGASvB,KAAK,KAAG,WA4IV,CAAC;AACF,eAAe,oBAAoB,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":";AACA,OAAO,EACL,OAAO,EACP,iBAAiB,EACjB,oBAAoB,EACpB,OAAO,EACR,MAAM,wBAAwB,CAAC;AAKhC,OAAO,YAAY,MAAM,4BAA4B,CAAC;AAiCtD,aAAK,KAAK,GAAG;IACX;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB;;OAEG;IACH,eAAe,EAAE,iBAAiB,EAAE,CAAC;IACrC;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;;;OAIG;IACH,cAAc,CAAC,EAAE,CAAC,eAAe,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,KAAK,MAAM,CAAC;IAC1E;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B;;;;;;;;;;;;;;;;OAgBG;IACH,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAClD;;OAEG;IACH,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CAInB,CAAC;AAEF;;;;GAIG;AACH,QAAA,MAAM,oBAAoB,wGASvB,KAAK,KAAG,WAkJV,CAAC;AACF,eAAe,oBAAoB,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,CAAC"}
package/lib/index.js CHANGED
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "__esModule", {
8
8
  Object.defineProperty(exports, "StationPopup", {
9
9
  enumerable: true,
10
10
  get: function () {
11
- return _StationPopup.default;
11
+ return _mapPopup.default;
12
12
  }
13
13
  });
14
14
  exports.default = void 0;
@@ -19,7 +19,7 @@ var _react = _interopRequireWildcard(require("react"));
19
19
 
20
20
  var _reactMapGl = require("react-map-gl");
21
21
 
22
- var _StationPopup = _interopRequireDefault(require("./StationPopup"));
22
+ var _mapPopup = _interopRequireDefault(require("@opentripplanner/map-popup"));
23
23
 
24
24
  var _styled = require("./styled");
25
25
 
@@ -130,14 +130,15 @@ const VehicleRentalOverlay = ({
130
130
  type: "circle"
131
131
  })), zoom >= DETAILED_MARKER_CUTOFF && stations.filter(station => checkIfPositionInViewport(bounds, station.y, station.x)).map(station => /*#__PURE__*/_react.default.createElement(_baseMap.MarkerWithPopup, {
132
132
  key: station.id,
133
- popupContents: /*#__PURE__*/_react.default.createElement(_StationPopup.default, {
133
+ popupContents: /*#__PURE__*/_react.default.createElement(_mapPopup.default, {
134
134
  configCompanies: configCompanies,
135
135
  setLocation: location => {
136
136
  setClickedVehicle(null);
137
137
  setLocation(location);
138
138
  },
139
- getStationName: getStationName,
140
- station: station
139
+ getEntityName: // @ts-expect-error no stop support. Avoid a breaking change
140
+ getStationName && ((s, cc) => getStationName(cc, s)),
141
+ entity: station
141
142
  }),
142
143
  position: [station.y, station.x]
143
144
  }, station.bikesAvailable !== undefined && !station.isFloatingBike && !station.isFloatingVehicle && station.spacesAvailable !== undefined ? /*#__PURE__*/_react.default.createElement(_styled.BaseBikeRentalIcon, {
@@ -152,14 +153,15 @@ const VehicleRentalOverlay = ({
152
153
  onClose: () => {
153
154
  setClickedVehicle(null);
154
155
  }
155
- }, /*#__PURE__*/_react.default.createElement(_StationPopup.default, {
156
+ }, /*#__PURE__*/_react.default.createElement(_mapPopup.default, {
156
157
  configCompanies: configCompanies,
157
- getStationName: getStationName,
158
+ getEntityName: // @ts-expect-error no stop support. Avoid a breaking change
159
+ getStationName && ((s, cc) => getStationName(cc, s)),
158
160
  setLocation: location => {
159
161
  setClickedVehicle(null);
160
162
  setLocation(location);
161
163
  },
162
- station: { ...clickedVehicle,
164
+ entity: { ...clickedVehicle,
163
165
  networks: JSON.parse(clickedVehicle.networks)
164
166
  }
165
167
  })));
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.tsx"],"names":["DETAILED_MARKER_CUTOFF","getColorForStation","v","isFloatingCar","isFloatingVehicle","bikesAvailable","undefined","isFloatingBike","checkIfPositionInViewport","bounds","lat","lng","PADDING","sw","ne","_sw","_ne","VehicleRentalOverlay","companies","configCompanies","getStationName","id","refreshVehicles","setLocation","stations","visible","current","map","zoom","getZoom","getBounds","layerId","clickedVehicle","setClickedVehicle","setInterval","VEHICLE_LAYERS","forEach","stopLayer","on","getCanvas","style","cursor","event","features","properties","length","vehiclesGeoJSON","type","filter","vehicle","networks","includes","geometry","coordinates","x","y","JSON","stringify","color","station","location","spacesAvailable","parse"],"mappings":"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","sourcesContent":["import { MarkerWithPopup, Popup } from \"@opentripplanner/base-map\";\nimport {\n Company,\n ConfiguredCompany,\n MapLocationActionArg,\n Station\n} from \"@opentripplanner/types\";\nimport { EventData } from \"mapbox-gl\";\nimport React, { useEffect, useState } from \"react\";\nimport { Layer, Source, useMap } from \"react-map-gl\";\n\nimport StationPopup from \"./StationPopup\";\nimport { BaseBikeRentalIcon, StationMarker } from \"./styled\";\n\n// TODO: Make configurable?\nconst DETAILED_MARKER_CUTOFF = 16;\n\nconst getColorForStation = (v: Station) => {\n if (v.isFloatingCar) return \"#009cde\";\n if (v.isFloatingVehicle) return \"#f5a729\";\n // TODO: nicer color to match transitive\n if (v.bikesAvailable !== undefined || v.isFloatingBike) return \"#f00\";\n return \"gray\";\n};\n\nconst checkIfPositionInViewport = (\n bounds: mapboxgl.LngLatBounds,\n lat: number,\n lng: number\n): boolean => {\n const PADDING = 0.001;\n // @ts-expect-error types appear to be wrong? version issue?\n // eslint-disable-next-line no-underscore-dangle\n const [sw, ne] = [bounds._sw, bounds._ne];\n if (!sw || !ne) return false;\n\n return (\n lat >= sw.lat - PADDING &&\n lat <= ne.lat + PADDING &&\n lng >= sw.lng - PADDING &&\n lng <= ne.lng + PADDING\n );\n};\n\ntype Props = {\n /**\n * A list of companies that are applicable to just this instance of the\n * overlay.\n */\n companies?: string[];\n /**\n * The entire companies config array.\n */\n configCompanies: ConfiguredCompany[];\n /**\n * An id, used to make this layer uniquely identifiable\n */\n id: string;\n /**\n * An optional custom function to create a string name of a particular vehicle\n * rental station. This function takes two arguments of the configCompanies\n * prop and a vehicle rental station. The function must return a string.\n */\n getStationName?: (configCompanies: Company[], station: Station) => string;\n /**\n * If specified, a function that will be triggered every 30 seconds whenever this layer is\n * visible.\n */\n refreshVehicles?: () => void;\n /**\n * A callback for when a user clicks on setting this stop as either the from\n * or to location of a new search.\n *\n * This will be dispatched with the following argument:\n *\n * ```js\n * {\n * location: {\n * lat: number,\n * lon: number,\n * name: string\n * },\n * locationType: \"from\" or \"to\"\n * }\n * ```\n */\n setLocation?: (arg: MapLocationActionArg) => void;\n /**\n * A list of the vehicle rental stations specific to this overlay instance.\n */\n stations: Station[];\n /**\n * Whether the overlay is currently visible.\n */\n visible?: boolean;\n /**\n * TODO: Add props for overriding symbols?\n */\n};\n\n/**\n * This vehicle rental overlay can be used to render vehicle rentals of various\n * types. This layer can be configured to show different styles of markers at\n * different zoom levels.\n */\nconst VehicleRentalOverlay = ({\n companies,\n configCompanies,\n getStationName,\n id,\n refreshVehicles,\n setLocation,\n stations,\n visible\n}: Props): JSX.Element => {\n const { current: map } = useMap();\n const zoom = map?.getZoom();\n const bounds = map?.getBounds();\n\n const layerId = `rental-vehicles-${id}`;\n const [clickedVehicle, setClickedVehicle] = useState(null);\n\n useEffect(() => {\n // TODO: Make 30s configurable?\n if (!refreshVehicles || typeof refreshVehicles !== \"function\") {\n return;\n }\n\n refreshVehicles();\n setInterval(refreshVehicles, 30_000);\n }, [refreshVehicles]);\n\n useEffect(() => {\n const VEHICLE_LAYERS = [layerId];\n VEHICLE_LAYERS.forEach(stopLayer => {\n map?.on(\"mouseenter\", stopLayer, () => {\n map.getCanvas().style.cursor = \"pointer\";\n });\n map?.on(\"mouseleave\", stopLayer, () => {\n map.getCanvas().style.cursor = \"\";\n });\n map?.on(\"click\", stopLayer, (event: EventData) => {\n setClickedVehicle(event.features?.[0].properties);\n });\n });\n }, [map]);\n\n // Don't render if no map or no stops are defined.\n if (visible === false || !stations || stations.length === 0) {\n // Null can't be returned here -- react-map-gl dislikes null values as children\n return <></>;\n }\n\n const vehiclesGeoJSON: GeoJSON.FeatureCollection = {\n type: \"FeatureCollection\",\n features: stations\n .filter(\n vehicle =>\n // Include specified companies only if companies is specified and network info is available\n !companies ||\n !vehicle.networks ||\n companies.includes(vehicle.networks[0])\n )\n .map(vehicle => ({\n type: \"Feature\",\n geometry: { type: \"Point\", coordinates: [vehicle.x, vehicle.y] },\n properties: {\n ...vehicle,\n networks: JSON.stringify(vehicle.networks),\n \"stroke-width\":\n vehicle.isFloatingBike || vehicle.isFloatingVehicle ? 1 : 2,\n color: getColorForStation(vehicle)\n }\n }))\n };\n\n return (\n <>\n {zoom < DETAILED_MARKER_CUTOFF && (\n <Source type=\"geojson\" data={vehiclesGeoJSON}>\n <Layer\n id={layerId}\n paint={{\n \"circle-color\": [\"get\", \"color\"],\n \"circle-opacity\": 0.9,\n \"circle-stroke-color\": \"#333\",\n \"circle-stroke-width\": [\"get\", \"stroke-width\"]\n }}\n type=\"circle\"\n />\n {/* this is where we add the symbols layer. add a second layer that gets swapped in and out dynamically */}\n </Source>\n )}\n {zoom >= DETAILED_MARKER_CUTOFF &&\n stations\n .filter(station =>\n checkIfPositionInViewport(bounds, station.y, station.x)\n )\n .map(station => (\n <MarkerWithPopup\n key={station.id}\n popupContents={\n <StationPopup\n configCompanies={configCompanies}\n setLocation={location => {\n setClickedVehicle(null);\n setLocation(location);\n }}\n getStationName={getStationName}\n station={station}\n />\n }\n position={[station.y, station.x]}\n >\n {station.bikesAvailable !== undefined &&\n !station.isFloatingBike &&\n !station.isFloatingVehicle &&\n station.spacesAvailable !== undefined ? (\n <BaseBikeRentalIcon\n percent={\n station?.bikesAvailable /\n (station?.bikesAvailable + station?.spacesAvailable)\n }\n />\n ) : (\n <StationMarker width={12} color={getColorForStation(station)} />\n )}\n </MarkerWithPopup>\n ))}\n {clickedVehicle && (\n <Popup\n latitude={clickedVehicle.y}\n longitude={clickedVehicle.x}\n maxWidth=\"100%\"\n onClose={() => {\n setClickedVehicle(null);\n }}\n >\n <StationPopup\n configCompanies={configCompanies}\n getStationName={getStationName}\n setLocation={location => {\n setClickedVehicle(null);\n setLocation(location);\n }}\n station={{\n ...clickedVehicle,\n networks: JSON.parse(clickedVehicle.networks)\n }}\n />\n </Popup>\n )}\n </>\n );\n};\nexport default VehicleRentalOverlay;\nexport { StationPopup };\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../src/index.tsx"],"names":["DETAILED_MARKER_CUTOFF","getColorForStation","v","isFloatingCar","isFloatingVehicle","bikesAvailable","undefined","isFloatingBike","checkIfPositionInViewport","bounds","lat","lng","PADDING","sw","ne","_sw","_ne","VehicleRentalOverlay","companies","configCompanies","getStationName","id","refreshVehicles","setLocation","stations","visible","current","map","zoom","getZoom","getBounds","layerId","clickedVehicle","setClickedVehicle","setInterval","VEHICLE_LAYERS","forEach","stopLayer","on","getCanvas","style","cursor","event","features","properties","length","vehiclesGeoJSON","type","filter","vehicle","networks","includes","geometry","coordinates","x","y","JSON","stringify","color","station","location","s","cc","spacesAvailable","parse"],"mappings":";;;;;;;;;;;;;;;AAAA;;AAQA;;AACA;;AAEA;;AACA;;;;;;AAEA;AACA,MAAMA,sBAAsB,GAAG,EAA/B;;AAEA,MAAMC,kBAAkB,GAAIC,CAAD,IAAgB;AACzC,MAAIA,CAAC,CAACC,aAAN,EAAqB,OAAO,SAAP;AACrB,MAAID,CAAC,CAACE,iBAAN,EAAyB,OAAO,SAAP,CAFgB,CAGzC;;AACA,MAAIF,CAAC,CAACG,cAAF,KAAqBC,SAArB,IAAkCJ,CAAC,CAACK,cAAxC,EAAwD,OAAO,MAAP;AACxD,SAAO,MAAP;AACD,CAND;;AAQA,MAAMC,yBAAyB,GAAG,CAChCC,MADgC,EAEhCC,GAFgC,EAGhCC,GAHgC,KAIpB;AACZ,QAAMC,OAAO,GAAG,KAAhB,CADY,CAEZ;AACA;;AACA,QAAM,CAACC,EAAD,EAAKC,EAAL,IAAW,CAACL,MAAM,CAACM,GAAR,EAAaN,MAAM,CAACO,GAApB,CAAjB;AACA,MAAI,CAACH,EAAD,IAAO,CAACC,EAAZ,EAAgB,OAAO,KAAP;AAEhB,SACEJ,GAAG,IAAIG,EAAE,CAACH,GAAH,GAASE,OAAhB,IACAF,GAAG,IAAII,EAAE,CAACJ,GAAH,GAASE,OADhB,IAEAD,GAAG,IAAIE,EAAE,CAACF,GAAH,GAASC,OAFhB,IAGAD,GAAG,IAAIG,EAAE,CAACH,GAAH,GAASC,OAJlB;AAMD,CAjBD;;AA2EA;AACA;AACA;AACA;AACA;AACA,MAAMK,oBAAoB,GAAG,CAAC;AAC5BC,EAAAA,SAD4B;AAE5BC,EAAAA,eAF4B;AAG5BC,EAAAA,cAH4B;AAI5BC,EAAAA,EAJ4B;AAK5BC,EAAAA,eAL4B;AAM5BC,EAAAA,WAN4B;AAO5BC,EAAAA,QAP4B;AAQ5BC,EAAAA;AAR4B,CAAD,KASH;AACxB,QAAM;AAAEC,IAAAA,OAAO,EAAEC;AAAX,MAAmB,yBAAzB;AACA,QAAMC,IAAI,GAAGD,GAAH,aAAGA,GAAH,uBAAGA,GAAG,CAAEE,OAAL,EAAb;AACA,QAAMpB,MAAM,GAAGkB,GAAH,aAAGA,GAAH,uBAAGA,GAAG,CAAEG,SAAL,EAAf;AAEA,QAAMC,OAAO,GAAI,mBAAkBV,EAAG,EAAtC;AACA,QAAM,CAACW,cAAD,EAAiBC,iBAAjB,IAAsC,qBAAS,IAAT,CAA5C;AAEA,wBAAU,MAAM;AACd;AACA,QAAI,CAACX,eAAD,IAAoB,OAAOA,eAAP,KAA2B,UAAnD,EAA+D;AAC7D;AACD;;AAEDA,IAAAA,eAAe;AACfY,IAAAA,WAAW,CAACZ,eAAD,EAAkB,MAAlB,CAAX;AACD,GARD,EAQG,CAACA,eAAD,CARH;AAUA,wBAAU,MAAM;AACd,UAAMa,cAAc,GAAG,CAACJ,OAAD,CAAvB;AACAI,IAAAA,cAAc,CAACC,OAAf,CAAuBC,SAAS,IAAI;AAClCV,MAAAA,GAAG,SAAH,IAAAA,GAAG,WAAH,YAAAA,GAAG,CAAEW,EAAL,CAAQ,YAAR,EAAsBD,SAAtB,EAAiC,MAAM;AACrCV,QAAAA,GAAG,CAACY,SAAJ,GAAgBC,KAAhB,CAAsBC,MAAtB,GAA+B,SAA/B;AACD,OAFD;AAGAd,MAAAA,GAAG,SAAH,IAAAA,GAAG,WAAH,YAAAA,GAAG,CAAEW,EAAL,CAAQ,YAAR,EAAsBD,SAAtB,EAAiC,MAAM;AACrCV,QAAAA,GAAG,CAACY,SAAJ,GAAgBC,KAAhB,CAAsBC,MAAtB,GAA+B,EAA/B;AACD,OAFD;AAGAd,MAAAA,GAAG,SAAH,IAAAA,GAAG,WAAH,YAAAA,GAAG,CAAEW,EAAL,CAAQ,OAAR,EAAiBD,SAAjB,EAA6BK,KAAD,IAAsB;AAAA;;AAChDT,QAAAA,iBAAiB,oBAACS,KAAK,CAACC,QAAP,oDAAC,gBAAiB,CAAjB,EAAoBC,UAArB,CAAjB;AACD,OAFD;AAGD,KAVD;AAWD,GAbD,EAaG,CAACjB,GAAD,CAbH,EAlBwB,CAiCxB;;AACA,MAAIF,OAAO,KAAK,KAAZ,IAAqB,CAACD,QAAtB,IAAkCA,QAAQ,CAACqB,MAAT,KAAoB,CAA1D,EAA6D;AAC3D;AACA,wBAAO,2DAAP;AACD;;AAED,QAAMC,eAA0C,GAAG;AACjDC,IAAAA,IAAI,EAAE,mBAD2C;AAEjDJ,IAAAA,QAAQ,EAAEnB,QAAQ,CACfwB,MADO,CAENC,OAAO,IACL;AACA,KAAC/B,SAAD,IACA,CAAC+B,OAAO,CAACC,QADT,IAEAhC,SAAS,CAACiC,QAAV,CAAmBF,OAAO,CAACC,QAAR,CAAiB,CAAjB,CAAnB,CANI,EAQPvB,GARO,CAQHsB,OAAO,KAAK;AACfF,MAAAA,IAAI,EAAE,SADS;AAEfK,MAAAA,QAAQ,EAAE;AAAEL,QAAAA,IAAI,EAAE,OAAR;AAAiBM,QAAAA,WAAW,EAAE,CAACJ,OAAO,CAACK,CAAT,EAAYL,OAAO,CAACM,CAApB;AAA9B,OAFK;AAGfX,MAAAA,UAAU,EAAE,EACV,GAAGK,OADO;AAEVC,QAAAA,QAAQ,EAAEM,IAAI,CAACC,SAAL,CAAeR,OAAO,CAACC,QAAvB,CAFA;AAGV,wBACED,OAAO,CAAC1C,cAAR,IAA0B0C,OAAO,CAAC7C,iBAAlC,GAAsD,CAAtD,GAA0D,CAJlD;AAKVsD,QAAAA,KAAK,EAAEzD,kBAAkB,CAACgD,OAAD;AALf;AAHG,KAAL,CARJ;AAFuC,GAAnD;AAuBA,sBACE,4DACGrB,IAAI,GAAG5B,sBAAP,iBACC,6BAAC,kBAAD;AAAQ,IAAA,IAAI,EAAC,SAAb;AAAuB,IAAA,IAAI,EAAE8C;AAA7B,kBACE,6BAAC,iBAAD;AACE,IAAA,EAAE,EAAEf,OADN;AAEE,IAAA,KAAK,EAAE;AACL,sBAAgB,CAAC,KAAD,EAAQ,OAAR,CADX;AAEL,wBAAkB,GAFb;AAGL,6BAAuB,MAHlB;AAIL,6BAAuB,CAAC,KAAD,EAAQ,cAAR;AAJlB,KAFT;AAQE,IAAA,IAAI,EAAC;AARP,IADF,CAFJ,EAgBGH,IAAI,IAAI5B,sBAAR,IACCwB,QAAQ,CACLwB,MADH,CACUW,OAAO,IACbnD,yBAAyB,CAACC,MAAD,EAASkD,OAAO,CAACJ,CAAjB,EAAoBI,OAAO,CAACL,CAA5B,CAF7B,EAIG3B,GAJH,CAIOgC,OAAO,iBACV,6BAAC,wBAAD;AACE,IAAA,GAAG,EAAEA,OAAO,CAACtC,EADf;AAEE,IAAA,aAAa,eACX,6BAAC,iBAAD;AACE,MAAA,eAAe,EAAEF,eADnB;AAEE,MAAA,WAAW,EAAEyC,QAAQ,IAAI;AACvB3B,QAAAA,iBAAiB,CAAC,IAAD,CAAjB;AACAV,QAAAA,WAAW,CAACqC,QAAD,CAAX;AACD,OALH;AAME,MAAA,aAAa,EACX;AACAxC,MAAAA,cAAc,KAAK,CAACyC,CAAD,EAAIC,EAAJ,KAAW1C,cAAc,CAAC0C,EAAD,EAAKD,CAAL,CAA9B,CARlB;AAUE,MAAA,MAAM,EAAEF;AAVV,MAHJ;AAgBE,IAAA,QAAQ,EAAE,CAACA,OAAO,CAACJ,CAAT,EAAYI,OAAO,CAACL,CAApB;AAhBZ,KAkBGK,OAAO,CAACtD,cAAR,KAA2BC,SAA3B,IACD,CAACqD,OAAO,CAACpD,cADR,IAED,CAACoD,OAAO,CAACvD,iBAFR,IAGDuD,OAAO,CAACI,eAAR,KAA4BzD,SAH3B,gBAIC,6BAAC,0BAAD;AACE,IAAA,OAAO,EACL,CAAAqD,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEtD,cAAT,KACC,CAAAsD,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEtD,cAAT,KAA0BsD,OAA1B,aAA0BA,OAA1B,uBAA0BA,OAAO,CAAEI,eAAnC,CADD;AAFJ,IAJD,gBAWC,6BAAC,qBAAD;AAAe,IAAA,KAAK,EAAE,EAAtB;AAA0B,IAAA,KAAK,EAAE9D,kBAAkB,CAAC0D,OAAD;AAAnD,IA7BJ,CALJ,CAjBJ,EAuDG3B,cAAc,iBACb,6BAAC,cAAD;AACE,IAAA,QAAQ,EAAEA,cAAc,CAACuB,CAD3B;AAEE,IAAA,SAAS,EAAEvB,cAAc,CAACsB,CAF5B;AAGE,IAAA,QAAQ,EAAC,MAHX;AAIE,IAAA,OAAO,EAAE,MAAM;AACbrB,MAAAA,iBAAiB,CAAC,IAAD,CAAjB;AACD;AANH,kBAQE,6BAAC,iBAAD;AACE,IAAA,eAAe,EAAEd,eADnB;AAEE,IAAA,aAAa,EACX;AACAC,IAAAA,cAAc,KAAK,CAACyC,CAAD,EAAIC,EAAJ,KAAW1C,cAAc,CAAC0C,EAAD,EAAKD,CAAL,CAA9B,CAJlB;AAME,IAAA,WAAW,EAAED,QAAQ,IAAI;AACvB3B,MAAAA,iBAAiB,CAAC,IAAD,CAAjB;AACAV,MAAAA,WAAW,CAACqC,QAAD,CAAX;AACD,KATH;AAUE,IAAA,MAAM,EAAE,EACN,GAAG5B,cADG;AAENkB,MAAAA,QAAQ,EAAEM,IAAI,CAACQ,KAAL,CAAWhC,cAAc,CAACkB,QAA1B;AAFJ;AAVV,IARF,CAxDJ,CADF;AAoFD,CA3JD;;eA4JejC,oB","sourcesContent":["import { MarkerWithPopup, Popup } from \"@opentripplanner/base-map\";\nimport {\n Company,\n ConfiguredCompany,\n MapLocationActionArg,\n Station\n} from \"@opentripplanner/types\";\nimport { EventData } from \"mapbox-gl\";\nimport React, { useEffect, useState } from \"react\";\nimport { Layer, Source, useMap } from \"react-map-gl\";\n\nimport StationPopup from \"@opentripplanner/map-popup\";\nimport { BaseBikeRentalIcon, StationMarker } from \"./styled\";\n\n// TODO: Make configurable?\nconst DETAILED_MARKER_CUTOFF = 16;\n\nconst getColorForStation = (v: Station) => {\n if (v.isFloatingCar) return \"#009cde\";\n if (v.isFloatingVehicle) return \"#f5a729\";\n // TODO: nicer color to match transitive\n if (v.bikesAvailable !== undefined || v.isFloatingBike) return \"#f00\";\n return \"gray\";\n};\n\nconst checkIfPositionInViewport = (\n bounds: mapboxgl.LngLatBounds,\n lat: number,\n lng: number\n): boolean => {\n const PADDING = 0.001;\n // @ts-expect-error types appear to be wrong? version issue?\n // eslint-disable-next-line no-underscore-dangle\n const [sw, ne] = [bounds._sw, bounds._ne];\n if (!sw || !ne) return false;\n\n return (\n lat >= sw.lat - PADDING &&\n lat <= ne.lat + PADDING &&\n lng >= sw.lng - PADDING &&\n lng <= ne.lng + PADDING\n );\n};\n\ntype Props = {\n /**\n * A list of companies that are applicable to just this instance of the\n * overlay.\n */\n companies?: string[];\n /**\n * The entire companies config array.\n */\n configCompanies: ConfiguredCompany[];\n /**\n * An id, used to make this layer uniquely identifiable\n */\n id: string;\n /**\n * An optional custom function to create a string name of a particular vehicle\n * rental station. This function takes two arguments of the configCompanies\n * prop and a vehicle rental station. The function must return a string.\n */\n getStationName?: (configCompanies: Company[], station: Station) => string;\n /**\n * If specified, a function that will be triggered every 30 seconds whenever this layer is\n * visible.\n */\n refreshVehicles?: () => void;\n /**\n * A callback for when a user clicks on setting this stop as either the from\n * or to location of a new search.\n *\n * This will be dispatched with the following argument:\n *\n * ```js\n * {\n * location: {\n * lat: number,\n * lon: number,\n * name: string\n * },\n * locationType: \"from\" or \"to\"\n * }\n * ```\n */\n setLocation?: (arg: MapLocationActionArg) => void;\n /**\n * A list of the vehicle rental stations specific to this overlay instance.\n */\n stations: Station[];\n /**\n * Whether the overlay is currently visible.\n */\n visible?: boolean;\n /**\n * TODO: Add props for overriding symbols?\n */\n};\n\n/**\n * This vehicle rental overlay can be used to render vehicle rentals of various\n * types. This layer can be configured to show different styles of markers at\n * different zoom levels.\n */\nconst VehicleRentalOverlay = ({\n companies,\n configCompanies,\n getStationName,\n id,\n refreshVehicles,\n setLocation,\n stations,\n visible\n}: Props): JSX.Element => {\n const { current: map } = useMap();\n const zoom = map?.getZoom();\n const bounds = map?.getBounds();\n\n const layerId = `rental-vehicles-${id}`;\n const [clickedVehicle, setClickedVehicle] = useState(null);\n\n useEffect(() => {\n // TODO: Make 30s configurable?\n if (!refreshVehicles || typeof refreshVehicles !== \"function\") {\n return;\n }\n\n refreshVehicles();\n setInterval(refreshVehicles, 30_000);\n }, [refreshVehicles]);\n\n useEffect(() => {\n const VEHICLE_LAYERS = [layerId];\n VEHICLE_LAYERS.forEach(stopLayer => {\n map?.on(\"mouseenter\", stopLayer, () => {\n map.getCanvas().style.cursor = \"pointer\";\n });\n map?.on(\"mouseleave\", stopLayer, () => {\n map.getCanvas().style.cursor = \"\";\n });\n map?.on(\"click\", stopLayer, (event: EventData) => {\n setClickedVehicle(event.features?.[0].properties);\n });\n });\n }, [map]);\n\n // Don't render if no map or no stops are defined.\n if (visible === false || !stations || stations.length === 0) {\n // Null can't be returned here -- react-map-gl dislikes null values as children\n return <></>;\n }\n\n const vehiclesGeoJSON: GeoJSON.FeatureCollection = {\n type: \"FeatureCollection\",\n features: stations\n .filter(\n vehicle =>\n // Include specified companies only if companies is specified and network info is available\n !companies ||\n !vehicle.networks ||\n companies.includes(vehicle.networks[0])\n )\n .map(vehicle => ({\n type: \"Feature\",\n geometry: { type: \"Point\", coordinates: [vehicle.x, vehicle.y] },\n properties: {\n ...vehicle,\n networks: JSON.stringify(vehicle.networks),\n \"stroke-width\":\n vehicle.isFloatingBike || vehicle.isFloatingVehicle ? 1 : 2,\n color: getColorForStation(vehicle)\n }\n }))\n };\n\n return (\n <>\n {zoom < DETAILED_MARKER_CUTOFF && (\n <Source type=\"geojson\" data={vehiclesGeoJSON}>\n <Layer\n id={layerId}\n paint={{\n \"circle-color\": [\"get\", \"color\"],\n \"circle-opacity\": 0.9,\n \"circle-stroke-color\": \"#333\",\n \"circle-stroke-width\": [\"get\", \"stroke-width\"]\n }}\n type=\"circle\"\n />\n {/* this is where we add the symbols layer. add a second layer that gets swapped in and out dynamically */}\n </Source>\n )}\n {zoom >= DETAILED_MARKER_CUTOFF &&\n stations\n .filter(station =>\n checkIfPositionInViewport(bounds, station.y, station.x)\n )\n .map(station => (\n <MarkerWithPopup\n key={station.id}\n popupContents={\n <StationPopup\n configCompanies={configCompanies}\n setLocation={location => {\n setClickedVehicle(null);\n setLocation(location);\n }}\n getEntityName={\n // @ts-expect-error no stop support. Avoid a breaking change\n getStationName && ((s, cc) => getStationName(cc, s))\n }\n entity={station}\n />\n }\n position={[station.y, station.x]}\n >\n {station.bikesAvailable !== undefined &&\n !station.isFloatingBike &&\n !station.isFloatingVehicle &&\n station.spacesAvailable !== undefined ? (\n <BaseBikeRentalIcon\n percent={\n station?.bikesAvailable /\n (station?.bikesAvailable + station?.spacesAvailable)\n }\n />\n ) : (\n <StationMarker width={12} color={getColorForStation(station)} />\n )}\n </MarkerWithPopup>\n ))}\n {clickedVehicle && (\n <Popup\n latitude={clickedVehicle.y}\n longitude={clickedVehicle.x}\n maxWidth=\"100%\"\n onClose={() => {\n setClickedVehicle(null);\n }}\n >\n <StationPopup\n configCompanies={configCompanies}\n getEntityName={\n // @ts-expect-error no stop support. Avoid a breaking change\n getStationName && ((s, cc) => getStationName(cc, s))\n }\n setLocation={location => {\n setClickedVehicle(null);\n setLocation(location);\n }}\n entity={{\n ...clickedVehicle,\n networks: JSON.parse(clickedVehicle.networks)\n }}\n />\n </Popup>\n )}\n </>\n );\n};\nexport default VehicleRentalOverlay;\nexport { StationPopup };\n"],"file":"index.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opentripplanner/vehicle-rental-overlay",
3
- "version": "2.1.0-alpha.3",
3
+ "version": "2.1.0",
4
4
  "description": "A map overlay to show vehicle rentals from a specific company",
5
5
  "main": "lib/index.js",
6
6
  "module": "esm/index.js",
@@ -19,15 +19,16 @@
19
19
  "url": "git+https://github.com/opentripplanner/otp-ui.git"
20
20
  },
21
21
  "dependencies": {
22
- "@opentripplanner/base-map": "^3.0.4",
23
- "@opentripplanner/core-utils": "^7.0.5",
24
- "@opentripplanner/from-to-location-picker": "^2.1.4",
22
+ "@opentripplanner/base-map": "^3.0.8",
23
+ "@opentripplanner/core-utils": "^8.0.0",
24
+ "@opentripplanner/from-to-location-picker": "^2.1.5",
25
+ "@opentripplanner/map-popup": "^1.0.0",
25
26
  "@styled-icons/fa-solid": "^10.34.0",
26
27
  "flat": "^5.0.2",
27
28
  "lodash.memoize": "^4.1.2"
28
29
  },
29
30
  "devDependencies": {
30
- "@opentripplanner/types": "^4.0.2"
31
+ "@opentripplanner/types": "^4.0.4"
31
32
  },
32
33
  "peerDependencies": {
33
34
  "react": "^16.14.0",
package/src/index.tsx CHANGED
@@ -9,7 +9,7 @@ import { EventData } from "mapbox-gl";
9
9
  import React, { useEffect, useState } from "react";
10
10
  import { Layer, Source, useMap } from "react-map-gl";
11
11
 
12
- import StationPopup from "./StationPopup";
12
+ import StationPopup from "@opentripplanner/map-popup";
13
13
  import { BaseBikeRentalIcon, StationMarker } from "./styled";
14
14
 
15
15
  // TODO: Make configurable?
@@ -206,8 +206,11 @@ const VehicleRentalOverlay = ({
206
206
  setClickedVehicle(null);
207
207
  setLocation(location);
208
208
  }}
209
- getStationName={getStationName}
210
- station={station}
209
+ getEntityName={
210
+ // @ts-expect-error no stop support. Avoid a breaking change
211
+ getStationName && ((s, cc) => getStationName(cc, s))
212
+ }
213
+ entity={station}
211
214
  />
212
215
  }
213
216
  position={[station.y, station.x]}
@@ -238,12 +241,15 @@ const VehicleRentalOverlay = ({
238
241
  >
239
242
  <StationPopup
240
243
  configCompanies={configCompanies}
241
- getStationName={getStationName}
244
+ getEntityName={
245
+ // @ts-expect-error no stop support. Avoid a breaking change
246
+ getStationName && ((s, cc) => getStationName(cc, s))
247
+ }
242
248
  setLocation={location => {
243
249
  setClickedVehicle(null);
244
250
  setLocation(location);
245
251
  }}
246
- station={{
252
+ entity={{
247
253
  ...clickedVehicle,
248
254
  networks: JSON.parse(clickedVehicle.networks)
249
255
  }}
@@ -1 +1 @@
1
- {"program":{"fileNames":["../../node_modules/typescript/lib/lib.d.ts","../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../node_modules/typescript/lib/lib.scripthost.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../node_modules/@types/react/global.d.ts","../../node_modules/csstype/index.d.ts","../../node_modules/@types/prop-types/index.d.ts","../../node_modules/@types/scheduler/tracing.d.ts","../../node_modules/@types/react/index.d.ts","../../node_modules/@types/geojson/index.d.ts","../../node_modules/@types/mapbox-gl/index.d.ts","../../node_modules/react-map-gl/dist/esm/types/external.d.ts","../../node_modules/react-map-gl/dist/esm/types/index.d.ts","../../node_modules/react-map-gl/dist/esm/mapbox/mapbox.d.ts","../../node_modules/react-map-gl/dist/esm/mapbox/create-ref.d.ts","../../node_modules/react-map-gl/dist/esm/utils/set-globals.d.ts","../../node_modules/react-map-gl/dist/esm/components/map.d.ts","../../node_modules/react-map-gl/dist/esm/components/marker.d.ts","../../node_modules/react-map-gl/dist/esm/components/popup.d.ts","../../node_modules/react-map-gl/dist/esm/components/attribution-control.d.ts","../../node_modules/react-map-gl/dist/esm/components/fullscreen-control.d.ts","../../node_modules/react-map-gl/dist/esm/components/geolocate-control.d.ts","../../node_modules/react-map-gl/dist/esm/components/navigation-control.d.ts","../../node_modules/react-map-gl/dist/esm/components/scale-control.d.ts","../../node_modules/react-map-gl/dist/esm/components/source.d.ts","../../node_modules/react-map-gl/dist/esm/components/layer.d.ts","../../node_modules/react-map-gl/dist/esm/components/use-control.d.ts","../../node_modules/react-map-gl/dist/esm/components/use-map.d.ts","../../node_modules/react-map-gl/dist/esm/index.d.ts","../../node_modules/@types/mapbox__point-geometry/index.d.ts","../../node_modules/@mapbox/tiny-sdf/index.d.ts","../../node_modules/@types/pbf/index.d.ts","../../node_modules/@types/mapbox__vector-tile/index.d.ts","../../node_modules/gl-matrix/index.d.ts","../../node_modules/potpack/index.d.ts","../../node_modules/@mapbox/mapbox-gl-supported/index.d.ts","../../node_modules/maplibre-gl/dist/maplibre-gl.d.ts","../../node_modules/@types/hoist-non-react-statics/index.d.ts","../../node_modules/@types/styled-components/index.d.ts","../base-map/lib/styled.d.ts","../base-map/lib/MarkerWithPopup.d.ts","../base-map/lib/index.d.ts","./node_modules/@opentripplanner/types/lib/index.d.ts","./node_modules/@opentripplanner/core-utils/lib/itinerary.d.ts","./node_modules/@opentripplanner/core-utils/lib/map.d.ts","./node_modules/@opentripplanner/core-utils/lib/route.d.ts","./node_modules/@opentripplanner/core-utils/lib/storage.d.ts","./node_modules/@opentripplanner/core-utils/lib/time.d.ts","./node_modules/@opentripplanner/core-utils/lib/ui.d.ts","./node_modules/@opentripplanner/core-utils/lib/index.d.ts","../from-to-location-picker/lib/styled.d.ts","../from-to-location-picker/node_modules/@opentripplanner/types/lib/index.d.ts","../from-to-location-picker/lib/types.d.ts","../from-to-location-picker/lib/index.d.ts","../../node_modules/@types/flat/index.d.ts","../../node_modules/@formatjs/ecma402-abstract/CanonicalizeLocaleList.d.ts","../../node_modules/@formatjs/ecma402-abstract/CanonicalizeTimeZoneName.d.ts","../../node_modules/@formatjs/ecma402-abstract/CoerceOptionsToObject.d.ts","../../node_modules/@formatjs/ecma402-abstract/GetNumberOption.d.ts","../../node_modules/@formatjs/ecma402-abstract/GetOption.d.ts","../../node_modules/@formatjs/ecma402-abstract/GetOptionsObject.d.ts","../../node_modules/@formatjs/ecma402-abstract/IsSanctionedSimpleUnitIdentifier.d.ts","../../node_modules/@formatjs/ecma402-abstract/IsValidTimeZoneName.d.ts","../../node_modules/@formatjs/ecma402-abstract/IsWellFormedCurrencyCode.d.ts","../../node_modules/@formatjs/ecma402-abstract/IsWellFormedUnitIdentifier.d.ts","../../node_modules/@formatjs/ecma402-abstract/types/core.d.ts","../../node_modules/@formatjs/ecma402-abstract/types/plural-rules.d.ts","../../node_modules/@formatjs/ecma402-abstract/types/number.d.ts","../../node_modules/@formatjs/ecma402-abstract/NumberFormat/ComputeExponent.d.ts","../../node_modules/@formatjs/ecma402-abstract/NumberFormat/ComputeExponentForMagnitude.d.ts","../../node_modules/@formatjs/ecma402-abstract/NumberFormat/CurrencyDigits.d.ts","../../node_modules/@formatjs/ecma402-abstract/NumberFormat/FormatNumericToParts.d.ts","../../node_modules/@formatjs/ecma402-abstract/NumberFormat/FormatNumericToString.d.ts","../../node_modules/@formatjs/ecma402-abstract/NumberFormat/InitializeNumberFormat.d.ts","../../node_modules/@formatjs/ecma402-abstract/NumberFormat/PartitionNumberPattern.d.ts","../../node_modules/@formatjs/ecma402-abstract/NumberFormat/SetNumberFormatDigitOptions.d.ts","../../node_modules/@formatjs/ecma402-abstract/NumberFormat/SetNumberFormatUnitOptions.d.ts","../../node_modules/@formatjs/ecma402-abstract/NumberFormat/ToRawFixed.d.ts","../../node_modules/@formatjs/ecma402-abstract/NumberFormat/ToRawPrecision.d.ts","../../node_modules/@formatjs/ecma402-abstract/NumberFormat/format_to_parts.d.ts","../../node_modules/@formatjs/ecma402-abstract/PartitionPattern.d.ts","../../node_modules/@formatjs/ecma402-abstract/SupportedLocales.d.ts","../../node_modules/@formatjs/ecma402-abstract/utils.d.ts","../../node_modules/@formatjs/ecma402-abstract/data.d.ts","../../node_modules/@formatjs/ecma402-abstract/types/relative-time.d.ts","../../node_modules/@formatjs/ecma402-abstract/types/date-time.d.ts","../../node_modules/@formatjs/ecma402-abstract/types/list.d.ts","../../node_modules/@formatjs/ecma402-abstract/types/displaynames.d.ts","../../node_modules/@formatjs/ecma402-abstract/262.d.ts","../../node_modules/@formatjs/ecma402-abstract/index.d.ts","../../node_modules/@formatjs/icu-skeleton-parser/date-time.d.ts","../../node_modules/@formatjs/icu-skeleton-parser/number.d.ts","../../node_modules/@formatjs/icu-skeleton-parser/index.d.ts","../../node_modules/@formatjs/icu-messageformat-parser/types.d.ts","../../node_modules/@formatjs/icu-messageformat-parser/error.d.ts","../../node_modules/@formatjs/icu-messageformat-parser/parser.d.ts","../../node_modules/@formatjs/icu-messageformat-parser/index.d.ts","../../node_modules/intl-messageformat/src/formatters.d.ts","../../node_modules/intl-messageformat/src/core.d.ts","../../node_modules/intl-messageformat/src/error.d.ts","../../node_modules/intl-messageformat/index.d.ts","../../node_modules/@formatjs/intl-listformat/index.d.ts","../../node_modules/@formatjs/intl-displaynames/index.d.ts","../../node_modules/@formatjs/intl/src/error.d.ts","../../node_modules/@formatjs/intl/src/utils.d.ts","../../node_modules/@formatjs/intl/src/types.d.ts","../../node_modules/@formatjs/intl/src/message.d.ts","../../node_modules/@formatjs/intl/src/dateTime.d.ts","../../node_modules/@formatjs/intl/src/displayName.d.ts","../../node_modules/@formatjs/intl/src/list.d.ts","../../node_modules/@formatjs/intl/src/plural.d.ts","../../node_modules/@formatjs/intl/src/relativeTime.d.ts","../../node_modules/@formatjs/intl/src/number.d.ts","../../node_modules/@formatjs/intl/src/create-intl.d.ts","../../node_modules/@formatjs/intl/index.d.ts","../../node_modules/react-intl/src/utils.d.ts","../../node_modules/react-intl/src/types.d.ts","../../node_modules/react-intl/src/components/injectIntl.d.ts","../../node_modules/react-intl/src/components/useIntl.d.ts","../../node_modules/react-intl/src/components/provider.d.ts","../../node_modules/react-intl/src/components/relative.d.ts","../../node_modules/react-intl/src/components/plural.d.ts","../../node_modules/react-intl/src/components/message.d.ts","../../node_modules/react-intl/src/components/dateTimeRange.d.ts","../../node_modules/react-intl/src/components/createFormattedComponent.d.ts","../../node_modules/react-intl/index.d.ts","./src/StationPopup.tsx","../../node_modules/@styled-icons/styled-icon/index.d.ts","../../node_modules/@styled-icons/fa-solid/MapMarkerAlt/MapMarkerAlt.d.ts","./src/styled.ts","./src/index.tsx","../../node_modules/@babel/types/lib/index.d.ts","../../node_modules/@types/babel__generator/index.d.ts","../../node_modules/@babel/parser/typings/babel-parser.d.ts","../../node_modules/@types/babel__template/index.d.ts","../../node_modules/@types/babel__traverse/index.d.ts","../../node_modules/@types/babel__core/index.d.ts","../../node_modules/@types/chroma-js/index.d.ts","../../node_modules/@types/color-name/index.d.ts","../../node_modules/@types/color-convert/conversions.d.ts","../../node_modules/@types/color-convert/route.d.ts","../../node_modules/@types/color-convert/index.d.ts","../../node_modules/@types/cookie/index.d.ts","../../node_modules/@types/estree/index.d.ts","../../node_modules/@types/node/assert/strict.d.ts","../../node_modules/@types/node/globals.d.ts","../../node_modules/@types/node/async_hooks.d.ts","../../node_modules/@types/node/buffer.d.ts","../../node_modules/@types/node/child_process.d.ts","../../node_modules/@types/node/cluster.d.ts","../../node_modules/@types/node/console.d.ts","../../node_modules/@types/node/constants.d.ts","../../node_modules/@types/node/crypto.d.ts","../../node_modules/@types/node/dgram.d.ts","../../node_modules/@types/node/diagnostic_channel.d.ts","../../node_modules/@types/node/dns.d.ts","../../node_modules/@types/node/dns/promises.d.ts","../../node_modules/@types/node/domain.d.ts","../../node_modules/@types/node/events.d.ts","../../node_modules/@types/node/fs.d.ts","../../node_modules/@types/node/fs/promises.d.ts","../../node_modules/@types/node/http.d.ts","../../node_modules/@types/node/http2.d.ts","../../node_modules/@types/node/https.d.ts","../../node_modules/@types/node/inspector.d.ts","../../node_modules/@types/node/module.d.ts","../../node_modules/@types/node/net.d.ts","../../node_modules/@types/node/os.d.ts","../../node_modules/@types/node/path.d.ts","../../node_modules/@types/node/perf_hooks.d.ts","../../node_modules/@types/node/process.d.ts","../../node_modules/@types/node/punycode.d.ts","../../node_modules/@types/node/querystring.d.ts","../../node_modules/@types/node/readline.d.ts","../../node_modules/@types/node/repl.d.ts","../../node_modules/@types/node/stream.d.ts","../../node_modules/@types/node/stream/promises.d.ts","../../node_modules/@types/node/string_decoder.d.ts","../../node_modules/@types/node/timers.d.ts","../../node_modules/@types/node/timers/promises.d.ts","../../node_modules/@types/node/tls.d.ts","../../node_modules/@types/node/trace_events.d.ts","../../node_modules/@types/node/tty.d.ts","../../node_modules/@types/node/url.d.ts","../../node_modules/@types/node/util.d.ts","../../node_modules/@types/node/util/types.d.ts","../../node_modules/@types/node/v8.d.ts","../../node_modules/@types/node/vm.d.ts","../../node_modules/@types/node/worker_threads.d.ts","../../node_modules/@types/node/zlib.d.ts","../../node_modules/@types/node/globals.global.d.ts","../../node_modules/@types/node/wasi.d.ts","../../node_modules/@types/node/ts3.6/base.d.ts","../../node_modules/@types/node/assert.d.ts","../../node_modules/@types/node/base.d.ts","../../node_modules/@types/node/index.d.ts","../../node_modules/@types/fs-extra/index.d.ts","../../node_modules/@types/minimatch/index.d.ts","../../node_modules/@types/glob/index.d.ts","../../node_modules/@types/graceful-fs/index.d.ts","../../node_modules/@types/unist/index.d.ts","../../node_modules/@types/hast/index.d.ts","../../node_modules/@types/html-minifier-terser/index.d.ts","../../node_modules/rxjs/internal/Subscription.d.ts","../../node_modules/rxjs/internal/types.d.ts","../../node_modules/rxjs/internal/Subscriber.d.ts","../../node_modules/rxjs/internal/Operator.d.ts","../../node_modules/rxjs/internal/observable/iif.d.ts","../../node_modules/rxjs/internal/observable/throwError.d.ts","../../node_modules/rxjs/internal/Observable.d.ts","../../node_modules/rxjs/internal/Subject.d.ts","../../node_modules/rxjs/internal/observable/ConnectableObservable.d.ts","../../node_modules/rxjs/internal/operators/groupBy.d.ts","../../node_modules/rxjs/internal/symbol/observable.d.ts","../../node_modules/rxjs/internal/BehaviorSubject.d.ts","../../node_modules/rxjs/internal/ReplaySubject.d.ts","../../node_modules/rxjs/internal/AsyncSubject.d.ts","../../node_modules/rxjs/internal/Scheduler.d.ts","../../node_modules/rxjs/internal/scheduler/Action.d.ts","../../node_modules/rxjs/internal/scheduler/AsyncScheduler.d.ts","../../node_modules/rxjs/internal/scheduler/AsyncAction.d.ts","../../node_modules/rxjs/internal/scheduler/AsapScheduler.d.ts","../../node_modules/rxjs/internal/scheduler/asap.d.ts","../../node_modules/rxjs/internal/scheduler/async.d.ts","../../node_modules/rxjs/internal/scheduler/QueueScheduler.d.ts","../../node_modules/rxjs/internal/scheduler/queue.d.ts","../../node_modules/rxjs/internal/scheduler/AnimationFrameScheduler.d.ts","../../node_modules/rxjs/internal/scheduler/animationFrame.d.ts","../../node_modules/rxjs/internal/scheduler/VirtualTimeScheduler.d.ts","../../node_modules/rxjs/internal/Notification.d.ts","../../node_modules/rxjs/internal/util/pipe.d.ts","../../node_modules/rxjs/internal/util/noop.d.ts","../../node_modules/rxjs/internal/util/identity.d.ts","../../node_modules/rxjs/internal/util/isObservable.d.ts","../../node_modules/rxjs/internal/util/ArgumentOutOfRangeError.d.ts","../../node_modules/rxjs/internal/util/EmptyError.d.ts","../../node_modules/rxjs/internal/util/ObjectUnsubscribedError.d.ts","../../node_modules/rxjs/internal/util/UnsubscriptionError.d.ts","../../node_modules/rxjs/internal/util/TimeoutError.d.ts","../../node_modules/rxjs/internal/observable/bindCallback.d.ts","../../node_modules/rxjs/internal/observable/bindNodeCallback.d.ts","../../node_modules/rxjs/internal/InnerSubscriber.d.ts","../../node_modules/rxjs/internal/OuterSubscriber.d.ts","../../node_modules/rxjs/internal/observable/combineLatest.d.ts","../../node_modules/rxjs/internal/observable/concat.d.ts","../../node_modules/rxjs/internal/observable/defer.d.ts","../../node_modules/rxjs/internal/observable/empty.d.ts","../../node_modules/rxjs/internal/observable/forkJoin.d.ts","../../node_modules/rxjs/internal/observable/from.d.ts","../../node_modules/rxjs/internal/observable/fromEvent.d.ts","../../node_modules/rxjs/internal/observable/fromEventPattern.d.ts","../../node_modules/rxjs/internal/observable/generate.d.ts","../../node_modules/rxjs/internal/observable/interval.d.ts","../../node_modules/rxjs/internal/observable/merge.d.ts","../../node_modules/rxjs/internal/observable/never.d.ts","../../node_modules/rxjs/internal/observable/of.d.ts","../../node_modules/rxjs/internal/observable/onErrorResumeNext.d.ts","../../node_modules/rxjs/internal/observable/pairs.d.ts","../../node_modules/rxjs/internal/observable/partition.d.ts","../../node_modules/rxjs/internal/observable/race.d.ts","../../node_modules/rxjs/internal/observable/range.d.ts","../../node_modules/rxjs/internal/observable/timer.d.ts","../../node_modules/rxjs/internal/observable/using.d.ts","../../node_modules/rxjs/internal/observable/zip.d.ts","../../node_modules/rxjs/internal/scheduled/scheduled.d.ts","../../node_modules/rxjs/internal/config.d.ts","../../node_modules/rxjs/index.d.ts","../../node_modules/@types/inquirer/lib/objects/choice.d.ts","../../node_modules/@types/inquirer/lib/objects/separator.d.ts","../../node_modules/@types/inquirer/lib/objects/choices.d.ts","../../node_modules/@types/inquirer/lib/utils/screen-manager.d.ts","../../node_modules/@types/inquirer/lib/prompts/base.d.ts","../../node_modules/@types/inquirer/lib/utils/paginator.d.ts","../../node_modules/@types/inquirer/lib/prompts/checkbox.d.ts","../../node_modules/@types/inquirer/lib/prompts/confirm.d.ts","../../node_modules/@types/inquirer/lib/prompts/editor.d.ts","../../node_modules/@types/inquirer/lib/prompts/expand.d.ts","../../node_modules/@types/inquirer/lib/prompts/input.d.ts","../../node_modules/@types/inquirer/lib/prompts/list.d.ts","../../node_modules/@types/inquirer/lib/prompts/number.d.ts","../../node_modules/@types/inquirer/lib/prompts/password.d.ts","../../node_modules/@types/inquirer/lib/prompts/rawlist.d.ts","../../node_modules/@types/inquirer/lib/utils/events.d.ts","../../node_modules/@types/inquirer/lib/utils/readline.d.ts","../../node_modules/@types/inquirer/lib/utils/utils.d.ts","../../node_modules/@types/through/index.d.ts","../../node_modules/@types/inquirer/lib/ui/baseUI.d.ts","../../node_modules/@types/inquirer/lib/ui/bottom-bar.d.ts","../../node_modules/@types/inquirer/lib/ui/prompt.d.ts","../../node_modules/@types/inquirer/index.d.ts","../../node_modules/@types/is-function/index.d.ts","../../node_modules/@types/istanbul-lib-coverage/index.d.ts","../../node_modules/@types/istanbul-lib-report/index.d.ts","../../node_modules/@types/istanbul-reports/index.d.ts","../../node_modules/jest-diff/build/cleanupSemantic.d.ts","../../node_modules/jest-diff/build/types.d.ts","../../node_modules/jest-diff/build/diffLines.d.ts","../../node_modules/jest-diff/build/printDiffs.d.ts","../../node_modules/jest-diff/build/index.d.ts","../../node_modules/@types/jest/node_modules/pretty-format/build/types.d.ts","../../node_modules/@types/jest/node_modules/pretty-format/build/index.d.ts","../../node_modules/@types/jest/index.d.ts","../../node_modules/@types/pixelmatch/index.d.ts","../../node_modules/ssim.js/dist/types.d.ts","../../node_modules/ssim.js/dist/index.d.ts","../../node_modules/@types/jest-image-snapshot/index.d.ts","../../node_modules/@types/jest-specific-snapshot/index.d.ts","../../node_modules/@types/js-levenshtein/index.d.ts","../../node_modules/@types/json-schema/index.d.ts","../../node_modules/@types/json-stable-stringify/index.d.ts","../../node_modules/@types/json5/index.d.ts","../../node_modules/@types/mdast/index.d.ts","../../node_modules/@types/minimist/index.d.ts","../../node_modules/@types/node-fetch/node_modules/form-data/index.d.ts","../../node_modules/@types/node-fetch/externals.d.ts","../../node_modules/@types/node-fetch/index.d.ts","../../node_modules/@types/normalize-package-data/index.d.ts","../../node_modules/@types/npmlog/index.d.ts","../../node_modules/@types/overlayscrollbars/index.d.ts","../../node_modules/@types/parse-json/index.d.ts","../../node_modules/@types/parse5/index.d.ts","../../node_modules/@types/prettier/index.d.ts","../../node_modules/@types/pretty-hrtime/index.d.ts","../../node_modules/@types/qs/index.d.ts","../../node_modules/@types/react-syntax-highlighter/index.d.ts","../../node_modules/@types/retry/index.d.ts","../../node_modules/@types/scheduler/index.d.ts","../../node_modules/@types/set-cookie-parser/index.d.ts","../../node_modules/@types/source-list-map/index.d.ts","../../node_modules/@types/stack-utils/index.d.ts","../../node_modules/@types/tapable/index.d.ts","../../node_modules/@types/throttle-debounce/index.d.ts","../../node_modules/source-map/source-map.d.ts","../../node_modules/@types/uglify-js/index.d.ts","../../node_modules/vfile-message/index.d.ts","../../node_modules/@types/vfile/index.d.ts","../../node_modules/@types/webpack/node_modules/anymatch/index.d.ts","../../node_modules/@types/webpack-sources/node_modules/source-map/source-map.d.ts","../../node_modules/@types/webpack-sources/lib/Source.d.ts","../../node_modules/@types/webpack-sources/lib/CompatSource.d.ts","../../node_modules/@types/webpack-sources/lib/ConcatSource.d.ts","../../node_modules/@types/webpack-sources/lib/OriginalSource.d.ts","../../node_modules/@types/webpack-sources/lib/PrefixSource.d.ts","../../node_modules/@types/webpack-sources/lib/RawSource.d.ts","../../node_modules/@types/webpack-sources/lib/ReplaceSource.d.ts","../../node_modules/@types/webpack-sources/lib/SizeOnlySource.d.ts","../../node_modules/@types/webpack-sources/lib/SourceMapSource.d.ts","../../node_modules/@types/webpack-sources/lib/index.d.ts","../../node_modules/@types/webpack-sources/lib/CachedSource.d.ts","../../node_modules/@types/webpack-sources/index.d.ts","../../node_modules/@types/webpack/index.d.ts","../../node_modules/@types/webpack-env/index.d.ts","../../node_modules/@types/yargs-parser/index.d.ts","../../node_modules/@types/yargs/index.d.ts","../../node_modules/@types/yauzl/index.d.ts"],"fileInfos":["2dc8c927c9c162a773c6bb3cdc4f3286c23f10eedc67414028f9cb5951610f60",{"version":"3ac1b83264055b28c0165688fda6dfcc39001e9e7828f649299101c23ad0a0c3","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06",{"version":"72704b10d97777e15f1a581b73f88273037ef752d2e50b72287bd0a90af64fe6","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"d8996609230d17e90484a2dd58f22668f9a05a3bfe00bfb1d6271171e54a31fb","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"1b3fe904465430e030c93239a348f05e1be80640d91f2f004c3512c2c2c89f34","affectsGlobalScope":true},{"version":"10bbdc1981b8d9310ee75bfac28ee0477bb2353e8529da8cff7cb26c409cb5e8","affectsGlobalScope":true},{"version":"ecf78e637f710f340ec08d5d92b3f31b134a46a4fcf2e758690d8c46ce62cba6","affectsGlobalScope":true},"4ee363f83d7be2202f34fcd84c44da71bf3a9329fee8a05f976f75083a52ea94","a7e32dcb90bf0c1b7a1e4ac89b0f7747cbcba25e7beddc1ebf17be1e161842ad","f5a8b384f182b3851cec3596ccc96cb7464f8d3469f48c74bf2befb782a19de5",{"version":"5a1b30146d105f86b15aaf11ff43af00c29972d18bc3b16c8b8f56aa47801733","affectsGlobalScope":true},"8c2e6e491e1a08855b8bf70820184ff66ae0d43f7cf0311fc680e6d860af211c","a49c26a7bad73494e987a795709e298223800407fa4e5c40c28539f752eb32ad","a0df1a13a256ff8bda9ff32c41e40e23406cd0b89ed9ceb71baed13dcdefd1f7","41fff171fe916f37c0bbf04715f003c748a844e1f4c5ec73933feae7188ef819","3660caee7bd0ac70e9a82120d9b6ac3d9a19f91de6119c870679165b46fa21a3","cd8afab9729010ef512695670765bb866531227c44e1d5263b83c5dfa7fcf237","2e25963caccfc798200150523055a16562f07b807999ccf93c49c1c25a1e11ec","7c761bd08228c10412e16810755c459bb5d535cea6133f2483c373578c5bc426","b14ce015be86192283b29647c912599ad3846828f23d8316e6bd697c3e3222a4","c3e15738511825d96735ced6c5cb071f259e95074529f71b4437aa7e71cb8331","41ff3650997388f8cb6b6058a410dbce9381ec42cfa486647de3fee66cc3e3d3","681afd9109720875b4226202d0ee32337f50057915f870c3a4d1f46d3bb8f894","d0724568c7956afbb419dfec616fb330ba8a54934e86f020c9360429b230ca5c","7479c56ea70b0ed20ef34e09f06845d8d68d5d2b16336e2618a0f300d93f2357","ff141ce16da0b8342f9dde1855fe85d62b5ca2460833fde64e53557df49ddad4","ece07845aecf7cad2f2969c1b62239fb672923d73659147d64fdcb000fcdd3d2","e61d90f796cc818f767a7faa2776978e32a958a3b2d6aa9fc863e9fcf10a6f3c","6c6bfee58280e0a41b6667d1274b63b0b4d56938333b90e966eb39af7b257501","040945ea19b2b1edbaebd0ab6fd4b6b8486fdde819e1989b5e0d09cc07785597","dfe2bee18a07185872defac3d281f0c3b9254837c5cae115c0f639f0e75756dd","e86cd9c6c99834f8591ed72f08e4ca31570296f081206d0168f58f032cec5b58","e3c43755b9c7d19fd888523f0cc47b81995bb7f320d19e51555e2b988471dfdf","2a856615ecd0af49997dfbb38cf94fd787d529062a2e96ce26b84432e61d785d","ab438f22fa7748112b6b9744b992ab6049d2fa6f46f011c145ff9c90e533856a","6b729c3274f6d4738fe470109bcb08b09ef98a6b356c01da3ca8dc0996b4458b","828ea2cf5792eba68ebd41d6dd17ac67d31622b7889965210f8fa50a6eb29eba","b8f252ac95b1c652ef9cdad9e80822c932353d2ab91df6464725a6d50123fb5d","8c4cfae683685e672645f2721f1d157e6e70c72e72ab2dc598516414eee8f173","bfe1b52cf71aea9bf8815810cc5d9490fa9617313e3d3c2ee3809a28b80d0bb4",{"version":"6839e1779e1f61e0ed62b1ca3ff7e74dc70479a5455077a38434d0e404103c28","affectsGlobalScope":true},"64b32b1c9c92692e2c1670e575600cf754fa053f7fea072a14a6b12a440dd0e0","27d78cb9925534467da9431effc4be95421641f109c1678977ad01506bdec42c","ecc5e104b57c1a4a6117a7af969d2ac8452572eafe89c0c53481f0de1d8884b5","e88664dc657d289fba0e6abfece3b4d2c2ec56c1ad0fc06686be6bf0f46839b3","11276c3e6c466d50a36792a968053427f5325e67600e8ebb4f92084deb6b1655","1dd55f033c2cef7bd9d60472df068b2387205ae1cfdce77f07dbda6fae38cbe5","13d814efd808002fe2486fb15c9ff8f0a0e5a4552efa7455008ac3dce8294607","1e9704378dc57075033c705776320e7122c7c27853f503649d56f5582863ddfc","f9a9c9cc5c67d1be3179f1a6372e9b34d1f79c367e528566d846e9a77503d255","3500cb4a6ce399f44f2b6e34700cba39c17cb9211967301084c2fa8aea47855a","1d70ffdcee3aaa052be9562efd39d3b97c5ece8cc3ebb190eed4205c2201674a","42509b307b7c1edd20b6fd7c92de1216a9ed27703fa74b574179d2d11c87a787","e88664dc657d289fba0e6abfece3b4d2c2ec56c1ad0fc06686be6bf0f46839b3","cab7284b5126359a2a46a1f4e85b2c1727d1d9a9943efd9a7c5d2cf955d9ecd4","8e893e66f81915e242438df66dee47c917ee595e76c7f8769b1ad3c22292aede","d9890ea8f1da57be3c2e2d3627b787cd4b4a463fd1747c823a0de24b240c8fe5","13f6a3df166c16f3dcf81a87c26d9803c7fd7895e7fcc71b7c149f52ee24b639","1ee5885d5027d5193ecacf31e8ed6b6f03a3a6de2e4fb37a3280b71e65915af1","494bf82a2bd0cf241e89fdb21dd46f273e530f49f6599a985b7852f7322fc192","0edc48b402f3efa10343c59746b269ec3cab88ea08be63d73014c78d372e94ab","ba9f6d4253a5b902ddb60345aead6f691b89292f9387068bf99d9928e839a9af","eabe0e0f52a2c58966cbbed77ea6b13ff3efdab453d411c88fbf91ba4964a5ff","257369022582c2220790c87a487fda57b264e1dcb16bb9ce34172345e7f933f3","5753b9cbd5ea496f68d4459b83a5091c0dbb33a896434d2f43c5f5b9e3f4ffa8","abbf59b2100d962d82f9c842c4a20cb5db35aee74175e5c942b361138870d8eb","f408d89ab81d183abcdaaf9961ebe9ef1a892064c5790b4b87af0b7d05a43240","eb974217eac7354c2ee28c68b1fefb3aebb5839c7da0dc8b2e1670eb1bb73fc3","20f33c814aaef326c0e3f2e37f627f8e3b22d85b0859a1b47c1013f1eaa0b628","4c32e274c22c133d96fa3bd1e66af0e213c88d37372598442247e1ea2b3f3616","b446fafdc7c077bec8f3117e200fd8e8606799ef212804a58bae3b7cd3ac353c","bfd64f97f7e12d92ad6c50caddd7a5e91080ccf15e887d4574646dda09b5b8d5","4475d3f490464dd09f29d5a590392ebc9f3026a79f2f0ba247f7b3f2acc01655","09eae5649c2133876c6c07137142b2786f858ef7f2269c24c2320dc950ab1866","f2061152503791189f5fcee1e6000e1db3601a60dba32011e6ee2c3a12f23510","03e162e0e48312346141962cf4dd2aa1569a58feff88a33ac579840d24c3d165","29f7e25ee9edb7ac875d3fea892e6328a439b55b6dd994431d55315dced635ae","a1e456a92e80e7884ed0bf9c83eac71e31a7ec949eb5982d36811154bed6fb1f","3a378f155a084b9722c89ffc3d2b2ab62f50603aa80fd5d5614ade949007a891","4a254ae095bd9e42bb24b0b539fa3ad0889089f0f56c7f8b63acf2adfd4ada66","ca32554db1a6962f85143e6e9216883c0e439408541d4379eac2b80aed60cb5f","64a89eb80302eca86236ef2f40dd6b914aa42f35a7384893e7fe864b6961695f","99bb361d32c05762ab4ac1d647f750eb2e280070e30011b5feff952327d07844","19a5ca90bcba89bd8fcb7e02c379ca017dce60050e1e7671bf45f68d921870cc","84747db6b80b4e5567c21a82cbaeda7a9810307ba4023ff5ffcd90e1f7713172","214c8b4c06c4858b93230b16745a7a480cef4524b0e7745ef64755ee9b81aaf6","dea3cf3a10d7caaededded8f0a794ce9f8b17da31ccbb8ee9159d7bd2fce42ac","51dc756ec3df8a7599ef0d16268cf7cd429d5d226ceb53cf8f85657a4ade6c29","4480de0ded16219521ccf012892091e5ec44863039c965ff1664f7f4799f4126","eeaf71356de97a805f3dfb0dd93a16196da7d2480955063a79216a8fd4f1414b","c38905d6fda359cf384b9306d6b9782a1b055e6670c7894b0ffda04c81b8e59a","6beedecf272c57713b780ee23040cf45adbfedb92f893b4be80ad11fe42c1cbe","3e873837e506db540c03f5e1069427b11ed7e1a016bd29c0d83fb4c4ea9d519f","b85018c97705258ff235ae9ac44d532ab3546eb5d0354123bd781e8bea3bdc18","4386eea018b5f6eadd8dc9dc407642369bea81dcaebe64dc30285e736b102343","69818b78af77862718c44e8236defa5fd318281de3ea1a8d43f3b350439589a4","cd41024509c20e761a3bd6ce8a976f1a79ae8193e1fdba46396744136d1b6bd0","81b6d7ff019d77399bdebae52a370011cea01943fc7c2016c3dc846839206df0","407bddb7f03e070e7969eb2bc19bf931cb76ddbe2761326b8ca1f0cccb6bd35b","1135099814b6525159e76fa51f295bf05942f0d9ef84c7030f0a7ad7563531f5","5cca0d064ddbcbde07a28b74038b3f5c6b9cd41d328fd927b060da5d3c59da7b","aa29954e994b2c4566ff98b0ca2313aeffcf60924aa140053efd916a15127c6a","4e799b631914398921cd8edda132320100399522cc3c8809d7c4dad89a697c5b","29dd54502be10cc940895ade56490b55cbc3624e20b2badeb2dc1c743c641ee2","64a5448ea756e5b0f2470d16f68cb2f30d0f606c491c4e6e9f56334e9ee41190","6fd49eaee0916183cccea31985df1f27b81a89eca283e64376c10926436d4fd1","248b709d3e86c12a409badb69a4f1ad132438b9189e00096668d097d8082d089",{"version":"7be0ff644833a7105ad4afa61705b1853e4cb6e52d86e449a7d9797f97a57263","affectsGlobalScope":true},"77cd04a35d49e967b0d566d44452671650a14915b9d7176fa89c5fa87e0e46fd","94d55aa0d00aea91bcd576f60105b6f14d2bc405bd13bf0564cfa76d11b69d48","33076a79792c4eb785364eaf2ef832bfd5bdde5b1f39022af3de577ce06f213e","7ac4a9ffbac175a1f93858b6732cf2e66bd4675989d45790107a621fdbe30cca","465cc5c7e96c60fb0bbd3e1d6aee28f9eb286480a3b1a91d27dc3933fceeb722","c5142d610c6b422c39912b14200a9919410e98deb2553c420086fc43635d761c","9badb3e1a92ed9644a5ef6f372d56316fc0e52ca3fed4c957c26b6714a76f9f4","7f7193422705cc4e69d4f6781da20ba3780719fc13592f3c6777866945049a64","ca2aec1a5ca037aa66b6291dbcd2cda26dc3f94e9bff08ad34e8050012017b2e","df3a3f23c1125459b7dc5186d2c314d7da4c56cf17c0c637d6f59b06856d7cb2","f3334e3fe73231bcd013653fbc8cc0fe08ea690afc41ccc497bfde0c7bb0e580","3e4ef6a498457322df6a2b212c740f3a8e909237ce159e56e3b2364ad949f58b","df5c276a5ae10d32421d2b3924035a71e074031e0a8d4649881782f926dd55a1","01b002cf26575fa47c3a33b200fee5a8300916ad9b94705d3cbc4fdfb0e75a51","b2fbd3ecedbc082d84e5ce8b52f69ea1b2284a256f945657e25fec32931e3f02","6a71a31f883062f6d471db722889637d64f0386788a74dada2e4fcda70cfef97","4fd8fd85ee70843365438aaa5c2faeec87d3f9f186a505b5831f06f0a2c5b237","d4a08b08f4a2ecf0407180e99c8201d724c64ce7ce6137d9ed3b9b6f0f61662e","9d137a1f88aed0f776de971bc319754673efd28097b31006948d2ed54146db29","516e2ded162ddc84294deb452dda9982b2a938e6df2d7f838ae0fd8b4ed38159","76ccbf8dadd9462a6359744ba749b77541fa02cf764ad396b44c8b6db3d9b2d1","a4ce8cb63b46ff55db10c4bdd3007240a42ba71c03f159ea7e6517aef9a8013c","6cb04fc9b712ac80f0335152d94bbe40ef582d77de95ccb565febf6d6983e10e","a1a48647b173dc4b7c7c585079051565e467ae4f9068fb0b7d49ce01806c1f49","59023cbcda30c96ffdc4c3df593205769126a8b10cd8bd5f3a06cf6c73143be1","98f40132aab59240e3daa408377a6f779aa81f4340f4451959cd2eba3750e456","b25c5f2970d06c729f464c0aeaa64b1a5b5f1355aa93554bb5f9c199b8624b1e","8670878e030b88a469db43b36ef90ffa208e74faf249416feeb8fbb6b646b4a9","3051751533eee92572241b3cef28333212401408c4e7aa21718714b793c0f4ed","3b043cf9a81854a72963fdb57d1884fc4da1cf5be69b5e0a4c5b751e58cb6d88","6f1d39d26959517da3bd105c552eded4c34702705c64d75b03f54d864b6e41c2","fae40de985385b22f775c1bea02959b251abddaa1cb168ee6c4f00d79ccfd8ef","f0cb4b3ab88193e3e51e9e2622e4c375955003f1f81239d72c5b7a95415dad3e","92450d617e92f96354d281c8ed5613fd16cacea79eb60b1e9736494b3c057e69","8a9086357fe289efb682dc925358f30b6312c7219a5ca92212857a0a79612012","92bc42ed0e2d41559513fd457ee30d834c2f0fedb9ed5004c029cbf0ad2f8bd9","117ffeecf6c55e25b6446f449ad079029b5e7317399b0a693858faaaea5ca73e","7d7c8ef7d48a035142c07dae60545ecc0e4af4c337742760cb09726f2f8e31db","c7bdc99177a2a94d25fb13722adaaf5b3291bf70b4d1b27584ba189dd3889ba3",{"version":"41a44aa1929121f5c3124733b5ca9c59717a092b899b3771cc983939ae99eeb2","affectsGlobalScope":true},"e23424b97418eca3226fd24de079f1203eb70360622e4e093af2aff14d4be6ec","a473cf45c3d9809518f8af913312139d9f4db6887dc554e0d06d0f4e52722e6b","297f4ea4e4a5161a6627bc65c83040a91e0792e92bdc4764e24650831cc9867c","04eaa93bd75f937f9184dcb95a7983800c5770cf8ddd8ac0f3734dc02f5b20ef",{"version":"c8155caf28fc7b0a564156a5df28ad8a844a3bd32d331d148d8f3ce88025c870","affectsGlobalScope":true},"45ac321f2e15d268fd74a90ddaa6467dcaaff2c5b13f95b4b85831520fb7a491","5375c30f03b01e610f7370e40ccf3ade1d96de99e9a9a9a0cb0f96fc98aefb71","797a9d37eb1f76143311c3f0a186ce5c0d8735e94c0ca08ff8712a876c9b4f9e","5cc0a492da3602510b8f5ed1852b1e0390002780d8758fbc8c0cd023ca7085f8","ec7dafafe751a5121f8f1c80201ebe7e7238c47e6329280a73c4d1ca4bb7fa28","64debeb10e4b7ae4ec9e89bfb4e04c6101ab98c3cc806d14e5488607cfec2753",{"version":"2866a528b2708aa272ec3eaafd3c980abb23aec1ef831cfc5eb2186b98c37ce5","affectsGlobalScope":true},{"version":"a5782d6cea81fe43d2db7ed41e789458c933ab3ab60602f7b5b14c4da3370496","affectsGlobalScope":true},"bd30510d2d803f453e10604277088a46327f5f0b6aa2b957306c458d7428f8f7","214cf066391a5a651001ebcee2c21ee4d45e8124579d271c59d7c2343bb9d29a","d28c8598067b15c7643558b936e68caefe5d171d0e629e19e2aa6ca870bb4b00","15543feaed3ce6b96bc0508f3e3f8b8f729fae62d0609bddacd483145e71c594","13257840c0850d4ebd7c2b17604a9e006f752de76c2400ebc752bc465c330452","42176966283d3835c34278b9b5c0f470d484c0c0c6a55c20a2c916a1ce69b6e8","0cff7901aedfe78e314f7d44088f07e2afa1b6e4f0473a4169b8456ca2fb245d","6ea59cf5479f3fad5db2caa4513d8d06d6cfee8d8df69e7a040c9b5b7f25f39c","69640cc2e76dad52daeb9914e6b70c5c9a5591a3a65190a2d3ea432cf0015e16","3ec1e108d587a5661ec790db607f482605ba9f3830e118ce578e3ffa3c42e22b","2e37dc691cb5511f49be0f8ba0df3259aa0b453b0098b436e478e60c06567ae0",{"version":"dd3f82b87fa256e7c5a66c9b8ddcc9b53275b3531c10a769722c5103a30a97e9","affectsGlobalScope":true},"7f77304372efe3c9967e5f9ea2061f1b4bf41dc3cda3c83cdd676f2e5af6b7e6","992c6f6be16c0a1d2eec13ece33adeea2c747ba27fcd078353a8f4bb5b4fea58","f6ea38ddcee37ec1bebde700e3a4d85040bf2d239600c877ecefd9b265066b24","a6b0abdb67d63ebe964ba5fee31bc3daf10c12eecd46b24d778426010c04c67e","1a63584d6605d1d5b5fd5c4fa2dc2fa5a2134aa775fcfd95fbdb705971c9ca29","fd2298fba0640e7295e7bd545e2dfbfcccbb00c27019e501c87965a02bbdebf6","4fd3c4debadce3e9ab9dec3eb45f7f5e2e3d4ad65cf975a6d938d883cfb25a50","f49709e8c096b05aca0674d39f471aa05261de7c756df9abdf4a53ed0fa98901","baca27d1de400e027cdc70217ca73e414002baef5798aa24a921097c20066fa1","75b9229192e6da08f6e06daa2b9243c251e14f179dfcc9cc9bf02dd70eabeb48","7df562288f949945cf69c21cd912100c2afedeeb7cdb219085f7f4b46cb7dde4","9d16690485ff1eb4f6fc57aebe237728fd8e03130c460919da3a35f4d9bd97f5","dcc6910d95a3625fd2b0487fda055988e46ab46c357a1b3618c27b4a8dd739c9","f4149f1aa299474c7040a35fe8f8ac2ad078cc1b190415adc1fff3ed52d490ea","3730099ed008776216268a97771de31753ef71e0a7d0ec650f588cba2a06ce44","8d649dbc429d7139a1d9a14ea2bf8af1dc089e0a879447539587463d4b6c248c","60c9e27816ec8ac8df7240598bb086e95b47edfb454c5cbf4003c812e0ed6e39","0431a29ecc5bb615e6d6d1709941bdf16e708f760099d017f5408a1e68e2d248","4926467de88a92a4fc9971d8c6f21b91eca1c0e7fc2a46cc4638ab9440c73875",{"version":"2708349d5a11a5c2e5f3a0765259ebe7ee00cdcc8161cb9990cb4910328442a1","affectsGlobalScope":true},"4e0a4d84b15692ea8669fe4f3d05a4f204567906b1347da7a58b75f45bae48d3","1288f8ee930c03fd535824f8fe852375ec7181d73e4c1f445b82b414c95c5bbe","b3593bd345ebea5e4d0a894c03251a3774b34df3d6db57075c18e089a599ba76","e61a21e9418f279bc480394a94d1581b2dee73747adcbdef999b6737e34d721b","30368d3789ec56ef3006c5f2115bd00faa21471aed6cbe6fec54a5683e5497ed","ed19da84b7dbf00952ad0b98ce5c194f1903bcf7c94d8103e8e0d63b271543ae","95c22bc19835e28e2e524a4bb8898eb5f2107b640d7279a6d3aade261916bbf2","725b884357ba84171341a8e4cc08edf11417854fd069842ca6d22afb2e340e45","3ebae8c00411116a66fca65b08228ea0cf0b72724701f9b854442100aab55aba","1320ee42b30487cceb6da9f230354fc34826111f76bf12f0ad76c717c12625b0","b6e83cdeca61289e5ffd770e55ed035babdffadd87d1ffa42b03e9fe8411333f","6767cce098e1e6369c26258b7a1f9e569c5467d501a47a090136d5ea6e80ae6d","6cb35d83d21a7e72bd00398c93302749bcd38349d0cc5e76ff3a90c6d1498a4d",{"version":"369dd7668d0e6c91550bce0c325f37ce6402e5dd40ecfca66fbb5283e23e559d","affectsGlobalScope":true},"2632057d8b983ee33295566088c080384d7d69a492bc60b008d6a6dfd3508d6b","4bf71cf2a94492fc71e97800bdf2bcb0a9a0fa5fce921c8fe42c67060780cbfa","0996ff06f64cb05b6dac158a6ada2e16f8c2ccd20f9ff6f3c3e871f1ba5fb6d9","5c492d01a19fea5ebfff9d27e786bc533e5078909521ca17ae41236f16f9686a","a6ee930b81c65ec79aca49025b797817dde6f2d2e9b0e0106f0844e18e2cc819","84fce15473e993e6b656db9dd3c9196b80f545647458e6621675e840fd700d29","7d5336ee766aa72dffb1cc2a515f61d18a4fb61b7a2757cbccfb7b286b783dfb","63e96248ab63f6e7a86e31aa3e654ed6de1c3f99e3b668e04800df05874e8b77","80da0f61195385d22b666408f6cccbc261c066d401611a286f07dfddf7764017","06a20cc7d937074863861ea1159ac783ff97b13952b4b5d1811c7d8ab5c94776","ab6de4af0e293eae73b67dad251af097d7bcc0b8b62de84e3674e831514cb056","18cbd79079af97af66c9c07c61b481fce14a4e7282eca078c474b40c970ba1d0","e7b45405689d87e745a217b648d3646fb47a6aaba9c8d775204de90c7ea9ff35","669b754ec246dd7471e19b655b73bda6c2ca5bb7ccb1a4dff44a9ae45b6a716a","bcfaca4a8ff50f57fd36df91fba5d34056883f213baff7192cbfc4d3805d2084","76a564b360b267502219a89514953058494713ee0923a63b2024e542c18b40e5","8f62cbd3afbd6a07bb8c934294b6bfbe437021b89e53a4da7de2648ecfc7af25","a20629551ed7923f35f7556c4c15d0c8b2ebe7afaa68ceaab079a1707ba64be2","d6de66600c97cd499526ddecea6e12166ab1c0e8d9bf36fb2339fd39c8b3372a","8e7a5b8f867b99cc8763c0b024068fb58e09f7da2c4810c12833e1ca6eb11c4f","a8932876de2e3138a5a27f9426b225a4d27f0ba0a1e2764ba20930b4c3faf4b9","df877050b04c29b9f8409aa10278d586825f511f0841d1ec41b6554f8362092b","027d600e00c5f5e1816c207854285d736f2f5fa28276e2829db746d5d6811ba1","5443113a16ef378446e08d6500bb48b35de582426459abdb5c9704f5c7d327d9","0fb581ecb53304a3c95bb930160b4fa610537470cce850371cbaad5a458ca0d9","7da4e290c009d7967343a7f8c3f145a3d2c157c62483362183ba9f637a536489","eb21ddc3a8136a12e69176531197def71dc28ffaf357b74d4bf83407bd845991","914560d0c4c6aa947cfe7489fe970c94ba25383c414bbe0168b44fd20dbf0df4","4fb3405055b54566dea2135845c3a776339e7e170d692401d97fd41ad9a20e5d","8d607832a6ef0eac30657173441367dd76c96bf7800d77193428b922e060c3af","20ff7207f0bb5cdde5fee8e83315ade7e5b8100cfa2087d20d39069a3d7d06f4","7ca4c534eab7cff43d81327e369a23464bc37ef38ce5337ceff24a42c6c84eb2","5252dec18a34078398be4e321dee884dc7f47930e5225262543a799b591b36d2","23caed4dff98bd28157d2b798b43f1dfefe727f18641648c01ce4e0e929a1630","f67e013d5374826596d7c23dbae1cdb14375a27cd72e16c5fb46a4b445059329","ea3401b70e2302683bbf4c18b69ef2292b60f4d8f8e6d920413b81fb7bde0f65","71afe26642c0fb86b9f8b1af4af5deb5181b43b6542a3ff2314871b53d04c749","0d7f01634e6234d84cf0106508efdb8ae00e5ed126eff9606d37b031ac1de654","f8d209086bad78af6bd7fef063c1ed449c815e6f8d36058115f222d9f788b848","3ad003278d569d1953779e2f838f7798f02e793f6a1eceac8e0065f1a202669b","fb2c5eceffcd918dbb86332afa0199f5e7b6cf6ee42809e930a827b28ef25afe","f664aaff6a981eeca68f1ff2d9fd21b6664f47bf45f3ae19874df5a6683a8d8a","ce066f85d73e09e9adbd0049bcf6471c7eefbfc2ec4b5692b5bcef1e36babd2a","09d302513cacfbcc54b67088739bd8ac1c3c57917f83f510b2d1adcb99fd7d2a","3faa54e978b92a6f726440c13fe3ab35993dc74d697c7709681dc1764a25219f","2bd0489e968925eb0c4c0fb12ef090be5165c86bd088e1e803102c38d4a717d8","88924207132b9ba339c1adb1ed3ea07e47b3149ff8a2e21a3ea1f91cee68589d","b8800b93d8ab532f8915be73f8195b9d4ef06376d8a82e8cdc17c400553172d6","d7d469703b78beba76d511957f8c8b534c3bbb02bea7ab4705c65ef573532fb8","74c8c3057669c03264263d911d0f82e876cef50b05be21c54fef23c900de0420","b303eda2ff2d582a9c3c5ecb708fb57355cdc25e8c8197a9f66d4d1bf09fda19","4e5dc89fa22ff43da3dee1db97d5add0591ebaff9e4adef6c8b6f0b41f0f60f0","ec4e82cb42a902fe83dc13153c7a260bee95684541f8d7ef26cb0629a2f4ca31","5f36e24cd92b0ff3e2a243685a8a780c9413941c36739f04b428cc4e15de629d","40a26494e6ab10a91851791169582ab77fed4fbd799518968177e7eefe08c7a9","208e125b45bc561765a74f6f1019d88e44e94678769824cf93726e1bac457961","b3985971de086ef3aa698ef19009a53527b72e65851b782dc188ac341a1e1390","c81d421aabb6113cd98b9d4f11e9a03273b363b841f294b457f37c15d513151d","30063e3a184ff31254bbafa782c78a2d6636943dfe59e1a34f451827fd7a68dc","c05d4cae0bceed02c9d013360d3e65658297acb1b7a90252fe366f2bf4f9ccc9","6f14b92848889abba03a474e0750f7350cc91fc190c107408ca48679a03975ae","a588d0765b1d18bf00a498b75a83e095aef75a9300b6c1e91cbf39e408f2fe2f","502bd3d3dd93b012e56864157c9ec3a3a53695fb05d1f42671f3e6314698a665","6b1b045b3e848a844ff1922ce2f82925f21d482bdeba5710883ab0c7df2c7e2b","8fac536b0b73249d9153424adafe49282c389a08163544917c18dfc1ddcbbd25","05a21cbb7cbe1ec502e7baca1f4846a4e860d96bad112f3e316b995ba99715b7","1eaee2b52f1c0e1848845a79050c1d06ae554d8050c35e3bf479f13d6ee19dd5","fd219904eea67c470dfebbaf44129b0db858207c3c3b55514bdc84de547b1687","4de232968f584b960b4101b4cdae593456aff149c5d0c70c2389248e9eb9fbac","9d6f6d1d788d8010417b914f4bad17be02645c6c5177a098dca97bee7561a0e1","c5430542eeebb207d651e8b00a08e4bb680c47ecb73dd388d8fa597a1fc5de5b","a6c5c9906262cf10549989c0061e5a44afdc1f61da77d5e09418a9ecea0018fe","1405d8968a5da39a3aed8c1701ca813d3284f51adb87b184337bb35402b077eb","33d63a317a3d2f2e06a10cf04a5caf7a781fe5f644a0dda5dfe81883c1ab2cca","ab60a5aea46b4fd3ee9d52ba0059d908f6f974cf4aba52a693f03361aa1adec0","7faa24bb6f24e79337fa302cc328d9f50ba3fb1af45a5aedcaa64e9b326a0bab","1a8f503c64bdb36308f245960d9e4acac4cf65d8b6bd0534f88230ebf0be7883","83c54a3b3e836d1773b8c23ff76ce6e0aae1a2209fc772b75e9de173fec9eac0","475e411f48f74c14b1f6e50cc244387a5cc8ce52340dddfae897c96e03f86527","948d08b7c693d1a4d0101bd2a48a2930e814811acde8f2a4c1226fd4a907cac0","656424ca784760c679bf2677d8aaf55d1cb8452cd0ac04bbe1c0f659f45f8c11","a2c1f4012459547d62116d724e7ec820bb2e6848da40ea0747bf160ffd99b283","0dc197e52512a7cbea4823cc33c23b0337af97bd59b38bf83be047f37cd8c9a8","492c93ade227fe4545fabb3035b9dd5d57d8b4fde322e5217fdaef20aa1b80a8","e84784554ccec0a03886acbd0b08dece208335465800bc3b5c9ab152c780a303","11ef35fa1e8aef8229ce6b62ac1a6a0761d1d4bb4de1538bce6d10762a919139","de18acda71730bac52f4b256ce7511bb56cc21f6f114c59c46782eff2f632857","7eb06594824ada538b1d8b48c3925a83e7db792f47a081a62cf3e5c4e23cf0ee","029769d13d9917e3284cb2356ed28a6576e8b07ae6a06ee1e672518adf21a102","d8aab31ba8e618cc3eea10b0945de81cb93b7e8150a013a482332263b9305322","69da61a7b5093dac77fa3bec8be95dcf9a74c95a0e9161edb98bb24e30e439d2","561eca7a381b96d6ccac6e4061e6d2ae53f5bc44203f3fd9f5b26864c32ae6e9","62ea38627e3ebab429f7616812a9394d327c2bc271003dfba985de9b4137369f","b4439890c168d646357928431100daac5cbdee1d345a34e6bf6eca9f3abe22bc","5d72971a459517c44c1379dab9ed248e87a61ba0a1e0f25c9d67e1e640cd9a09","02d734976af36f4273d930bea88b3e62adf6b078cf120c1c63d49aa8d8427c5c",{"version":"516a426e3960379f310107635b8f3a7e8c307c6c665080b128039d9299ec4087","affectsGlobalScope":true},"f30350dd37c3f3c11f47adb7ce4e7a4928f578f4ae8a3197e0c8a0811da46b92","948a49768a6f616ae03f7ce6ad074a0bf0cf1d139409041e0d441d037c49aabd","58729ebab0d9f2f97c1f976204c3541a1ea865811ecbeac421fbd887eb3f82e2",{"version":"a4a1baaca291763a32fb2011afe7c1d17c522b2429500455ac94dcde1abfc954","affectsGlobalScope":true},{"version":"597e57d1aed6e56c5711328daa1a5f835d9aa1a23093f133d98acabeedff06fe","affectsGlobalScope":true},"15a58e61533036fb08dfd567fa7b1f799acdedf0cacf5cbc93bbed0f0520e87f","0359682c54e487c4cab2b53b2b4d35cc8dea4d9914bc6abcdb5701f8b8e745a4","13cc3979e1f548aacaa23911f2d6e69c1a2999266c4a1952806de1e9593bdaaa","96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538","9a6d65d77455efaaaeff945bea30c38b8fe0922b807ba45cd23792392f1bfe76","e437d83044ba17246a861aa9691aa14223ff4a9d6f338ab1269c41c758586a88","736097ddbb2903bef918bb3b5811ef1c9c5656f2a73bd39b22a91b9cc2525e50","8fe9135b86994075c4192f3358a4350389e80d3abec712db2a82061962d9d21c","e0014889f31fee76a572b6b15e74b2174cbcf6346ae8ab5c69eb553a10e5c944","c9ad058b2cc9ce6dc2ed92960d6d009e8c04bef46d3f5312283debca6869f613","0d65b782b1a9b5891802ef2022c78481b19dfe133ba8d9f7596fe1320314342d","1502b874bbaafdb762b3907945740f787058a6aabff5e27377f9b45e4bb08ff3","2b8264b2fefd7367e0f20e2c04eed5d3038831fe00f5efbc110ff0131aab899b","c555dd691dd05955e99cd93dd99c685a65e5287813ccb5e6bfde951183248e26","65455ea1b00bae7bd26d3c8c2401eb3d10401c09c55192d6f3b8b2275eda20c2","b91aaad5f9c3f5dca5e8245d5f6464bdc63a77ba4453bb3e2d0c93959cddb13c","98437d5a640b67c41534f0de2dcb64c75433dcdff54ff8f8432e613663619a2e",{"version":"cffd3848b7af4922d70028c805b7df5e8f0eac4a8d2410b0f55b47ca62c6c3a8","affectsGlobalScope":true},"199f9ead0daf25ae4c5632e3d1f42570af59685294a38123eef457407e13f365","3169db033165677f1d414baf0c82ba27801089ca1b66d97af464512a47df31b5","db1bcf6210cc48986c17a758bff8dca8c4b93c3e9cc6cefd50316dcc5f90e1d1","67fc055eb86a0632e2e072838f889ffe1754083cb13c8c80a06a7d895d877aae","41422586881bcd739b4e62d9b91cd29909f8572aa3e3cdf316b7c50f14708d49","d558a0fe921ebcc88d3212c2c42108abf9f0d694d67ebdeba37d7728c044f579","4e22b9ea2805fec5f3c120146a690e5604a3117dbdee648c85393f58422eec16","2887592574fcdfd087647c539dcb0fbe5af2521270dad4a37f9d17c16190d579","bee79f5862fe1278d2ba275298862bce3f7abf1e59d9c669c4b9a4b2bba96956","a937bfb110176509a5fd6308b823e795525e7af8a12f1833f6567da6953ed035","6f56706c6828d0299f46f8b1a79ecae0757b91b48e63baf6f0c5292d02037129","4fb0b7d532aa6fb850b6cd2f1ee4f00802d877b5c66a51903bc1fb0624126349","b90c59ac4682368a01c83881b814738eb151de8a58f52eb7edadea2bcffb11b9","8560a87b2e9f8e2c3808c8f6172c9b7eb6c9b08cb9f937db71c285ecf292c81d","ffe3931ff864f28d80ae2f33bd11123ad3d7bad9896b910a1e61504cc093e1f5","083c1bd82f8dc3a1ed6fc9e8eaddf141f7c05df418eca386598821e045253af9","274ebe605bd7f71ce161f9f5328febc7d547a2929f803f04b44ec4a7d8729517","6ca0207e70d985a24396583f55836b10dc181063ab6069733561bfde404d1bad","5908142efeaab38ffdf43927ee0af681ae77e0d7672b956dfb8b6c705dbfe106","f772b188b943549b5c5eb803133314b8aa7689eced80eed0b70e2f30ca07ab9c","0026b816ef05cfbf290e8585820eef0f13250438669107dfc44482bac007b14f","8ef5aad624890acfe0fa48230edce255f00934016d16acb8de0edac0ea5b21bb","9af6248ff4baf0c1ddc62bb0bc43197437bd5fb2c95ff8e10e4cf2e699ea45c1","d84398556ba4595ee6be554671da142cfe964cbdebb2f0c517a10f76f2b016c0","89b42f8ee5d387a39db85ee2c7123a391c3ede266a2bcd502c85ad55626c3b2b","99c7f3bbc03f6eb3e663c26c104d639617620c2925e76fc284f7bedf1877fa2b",{"version":"5b3e6ce357a7a1a07c858432a3d2002750058725874db09a03a0a9e899d861f5","affectsGlobalScope":true},"3bdd93ec24853e61bfa4c63ebaa425ff3e474156e87a47d90122e1d8cc717c1f","1a81627b04dd2feab19e26d3df04e79f50d5dae42b9b5f9181d23dc820c9f048","b2d70a269840a9528db473ac7565442434333a05c1f66801a7a672e82beb903e"],"options":{"composite":true,"declaration":true,"declarationMap":true,"esModuleInterop":true,"jsx":2,"module":1,"noEmitOnError":false,"outDir":"./lib","rootDir":"./src","skipLibCheck":true,"sourceMap":true,"target":1},"fileIdsList":[[159],[95],[83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116],[93],[93,94],[93,95],[121],[121,123],[121,122],[117,120],[118,119],[117],[131,132,133,134,135,136,137,138,139,140,141],[133],[117,133],[129,133],[124,128,133],[117,124,128,129,130,131,132],[155],[36,66],[159,160,161,162,163],[159,161],[166],[167,168],[167],[187,223],[186,223,225],[228],[36],[201,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,315,316],[317],[295,296,317],[201,294,298,317],[201,299,300,317],[201,299,317],[201,294,299,317],[201,305,317],[201,317],[313,314,317],[294,314,317],[201,294],[298],[201],[294,317],[319],[319,320],[329,330,332],[329],[326,328],[327],[37],[37,57,59],[189,211,223,341,342],[189,203,223],[221],[220,221],[186,187,194,203],[176,186,194],[212],[180,187,195],[203,208],[183,186,194],[184],[183],[186],[186,188,203,211],[186,187],[194,203,211],[186,187,189,194,203,208,211],[189,208,211],[222],[211],[183,186,203],[196],[174],[210],[201,212,215],[186,204],[203],[206],[194],[172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219],[200],[213],[180,186,188,197,203,211,215],[223],[36,352],[32,33,34,35],[189,223],[33,36,65],[203,223],[360],[223,228,362],[223,366,367,368,369,370,371,372,373,374,375,376],[365,366,375],[366,375],[356,365,366,375],[366],[180,365,375],[365,366,367,368,369,370,371,372,373,374,376],[180,223,358,360,361,364,377],[380],[186,203,223],[125,126,127],[124,125],[117,124],[322,323],[322,323,324,325],[57,58,60,61,62,63],[36,117,124,129,130,142,144,145,146,147,148,149,150,151,152],[36,129,142,144],[36,117,142],[36,144],[36,128,142],[36,142],[36,142,144],[144],[36,142,143],[36,128,144],[36,40],[36,38,40],[38,40],[36,38,41,42,43,56],[38,40,44],[36,42],[39,42,44,45,46,47,48,49,50,51,52,53,54,55],[38,40,41],[38],[38,39],[231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,250,251,253,255,256,257,258,259,260,261,262,263,264,265,266,267,268,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293],[231,233,238],[233,270],[232,237],[231,232,233,234,235,236],[232,233],[233,269],[231,232,233,238],[231,232,246],[231,232,233,234,237],[231,232],[232],[231,233,237,238],[232,233,234,237,270],[237],[237,277],[231,232,233,237],[232,233,234,237],[231,232,233,237,238],[294],[231,232,245],[247,248],[231,232,246,247],[231,232,245,246,248],[247],[231,232,247,248],[254],[249],[252],[231,237],[331],[36,56],[36,56,64,66,67,68],[36,56,66],[36,78,80],[66],[36,70],[71,72,73,74,75,76],[70],[36,69,70,77,81,82,153],[36,38,56,69,70,154,157],[66,156]],"referencedMap":[[161,1],[96,2],[97,2],[99,2],[100,2],[101,2],[102,2],[103,2],[104,2],[105,2],[106,2],[107,2],[117,3],[115,4],[114,4],[95,5],[94,6],[112,5],[122,7],[124,8],[123,9],[121,10],[120,11],[119,12],[130,12],[129,12],[142,13],[141,14],[135,15],[136,14],[131,14],[137,16],[134,17],[140,14],[138,15],[139,14],[133,18],[132,15],[156,19],[155,20],[164,21],[160,1],[162,22],[163,1],[167,23],[169,24],[168,25],[224,26],[226,27],[227,26],[229,28],[65,29],[317,30],[295,31],[297,32],[296,31],[299,33],[301,34],[302,35],[303,36],[304,34],[305,35],[306,34],[307,37],[308,35],[309,34],[314,38],[315,39],[316,40],[310,41],[300,42],[311,43],[298,43],[312,44],[320,45],[321,46],[333,47],[334,48],[329,49],[328,50],[38,51],[60,52],[339,28],[343,53],[341,54],[172,55],[222,56],[176,57],[177,58],[178,59],[179,60],[180,61],[181,62],[183,63],[184,64],[185,65],[186,65],[187,66],[188,67],[189,68],[190,69],[191,70],[223,71],[192,65],[193,72],[194,73],[196,74],[197,75],[198,76],[201,65],[202,77],[203,78],[204,79],[207,80],[208,81],[220,82],[210,81],[211,83],[212,84],[214,79],[216,85],[217,79],[345,65],[330,86],[352,87],[36,88],[355,89],[66,90],[313,91],[361,92],[363,93],[377,94],[376,95],[367,96],[368,97],[369,97],[370,96],[371,96],[372,96],[373,98],[366,99],[374,95],[375,100],[378,101],[381,102],[382,103],[128,104],[126,105],[125,106],[324,107],[326,108],[325,107],[64,109],[153,110],[152,111],[151,112],[145,113],[150,114],[149,115],[147,116],[148,112],[146,117],[144,118],[143,119],[47,120],[48,120],[49,121],[53,122],[44,123],[45,121],[50,120],[46,121],[51,120],[52,122],[54,124],[55,125],[56,126],[42,127],[41,122],[39,128],[40,129],[294,130],[244,131],[242,131],[269,132],[257,133],[237,134],[234,135],[270,136],[243,137],[245,138],[238,139],[233,140],[231,141],[239,142],[267,133],[268,133],[271,143],[272,133],[273,133],[274,133],[275,133],[276,133],[277,144],[278,145],[279,133],[235,133],[280,133],[281,133],[282,144],[283,133],[284,133],[285,146],[286,133],[287,143],[288,133],[236,133],[289,133],[290,133],[291,147],[240,148],[292,149],[246,150],[254,151],[249,151],[248,152],[247,153],[252,154],[256,155],[255,156],[250,157],[251,154],[253,158],[232,159],[261,144],[258,141],[332,160],[362,28],[68,161],[69,162],[67,163],[81,164],[78,165],[80,166],[79,29],[77,167],[71,168],[72,168],[73,168],[75,168],[70,29],[154,169],[158,170],[157,171]],"exportedModulesMap":[[161,1],[96,2],[97,2],[99,2],[100,2],[101,2],[102,2],[103,2],[104,2],[105,2],[106,2],[107,2],[117,3],[115,4],[114,4],[95,5],[94,6],[112,5],[122,7],[124,8],[123,9],[121,10],[120,11],[119,12],[130,12],[129,12],[142,13],[141,14],[135,15],[136,14],[131,14],[137,16],[134,17],[140,14],[138,15],[139,14],[133,18],[132,15],[156,19],[155,20],[164,21],[160,1],[162,22],[163,1],[167,23],[169,24],[168,25],[224,26],[226,27],[227,26],[229,28],[65,29],[317,30],[295,31],[297,32],[296,31],[299,33],[301,34],[302,35],[303,36],[304,34],[305,35],[306,34],[307,37],[308,35],[309,34],[314,38],[315,39],[316,40],[310,41],[300,42],[311,43],[298,43],[312,44],[320,45],[321,46],[333,47],[334,48],[329,49],[328,50],[38,51],[60,52],[339,28],[343,53],[341,54],[172,55],[222,56],[176,57],[177,58],[178,59],[179,60],[180,61],[181,62],[183,63],[184,64],[185,65],[186,65],[187,66],[188,67],[189,68],[190,69],[191,70],[223,71],[192,65],[193,72],[194,73],[196,74],[197,75],[198,76],[201,65],[202,77],[203,78],[204,79],[207,80],[208,81],[220,82],[210,81],[211,83],[212,84],[214,79],[216,85],[217,79],[345,65],[330,86],[352,87],[36,88],[355,89],[66,90],[313,91],[361,92],[363,93],[377,94],[376,95],[367,96],[368,97],[369,97],[370,96],[371,96],[372,96],[373,98],[366,99],[374,95],[375,100],[378,101],[381,102],[382,103],[128,104],[126,105],[125,106],[324,107],[326,108],[325,107],[64,109],[153,110],[152,111],[151,112],[145,113],[150,114],[149,115],[147,116],[148,112],[146,117],[144,118],[143,119],[47,120],[48,120],[49,121],[53,122],[44,123],[45,121],[50,120],[46,121],[51,120],[52,122],[54,124],[55,125],[56,126],[42,127],[41,122],[39,128],[40,129],[294,130],[244,131],[242,131],[269,132],[257,133],[237,134],[234,135],[270,136],[243,137],[245,138],[238,139],[233,140],[231,141],[239,142],[267,133],[268,133],[271,143],[272,133],[273,133],[274,133],[275,133],[276,133],[277,144],[278,145],[279,133],[235,133],[280,133],[281,133],[282,144],[283,133],[284,133],[285,146],[286,133],[287,143],[288,133],[236,133],[289,133],[290,133],[291,147],[240,148],[292,149],[246,150],[254,151],[249,151],[248,152],[247,153],[252,154],[256,155],[255,156],[250,157],[251,154],[253,158],[232,159],[261,144],[258,141],[332,160],[362,28],[68,161],[69,162],[67,163],[81,164],[78,165],[80,166],[79,29],[77,167],[71,168],[72,168],[73,168],[75,168],[70,29],[154,169],[158,170],[157,171]],"semanticDiagnosticsPerFile":[161,159,116,83,84,85,86,87,88,89,90,91,92,96,97,98,99,100,101,102,103,104,105,106,107,108,109,111,117,93,113,115,114,95,94,112,110,122,124,123,121,118,120,119,130,129,142,141,135,136,131,137,134,140,138,139,133,132,63,58,156,155,164,160,162,163,165,167,169,168,166,170,171,82,224,37,226,227,229,65,230,317,295,297,296,299,301,302,303,304,305,306,307,308,309,314,315,316,310,300,311,298,312,318,319,320,321,333,334,329,328,327,335,336,337,338,38,57,60,339,225,340,342,343,341,221,172,174,222,175,176,177,178,179,180,181,182,183,184,185,186,187,188,173,218,189,190,191,223,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,220,210,211,212,213,214,215,219,216,217,344,345,346,347,348,59,330,349,350,34,351,352,32,36,353,354,35,355,356,357,66,358,359,313,361,228,363,379,377,376,367,368,369,370,371,372,373,366,374,375,365,378,364,380,381,382,33,61,128,126,127,125,322,324,326,325,323,64,62,153,152,151,145,150,149,147,148,146,144,143,47,48,49,53,44,45,50,46,51,52,54,55,56,42,41,39,40,43,294,244,242,269,257,237,234,270,243,245,238,233,231,293,239,267,268,271,272,273,274,275,276,277,278,279,235,280,281,282,283,284,285,286,287,288,236,289,290,291,240,292,246,254,249,248,247,252,256,255,250,251,253,241,232,262,263,264,266,265,260,261,259,258,360,332,331,1,7,11,10,3,12,13,14,15,16,17,18,19,4,5,23,20,21,22,24,25,26,6,27,28,29,30,2,31,9,8,362,68,69,67,81,78,80,79,77,71,72,73,74,75,76,70,154,158,157]},"version":"4.6.4"}
1
+ {"program":{"fileNames":["../../node_modules/typescript/lib/lib.d.ts","../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../node_modules/typescript/lib/lib.scripthost.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../node_modules/@types/react/global.d.ts","../../node_modules/csstype/index.d.ts","../../node_modules/@types/prop-types/index.d.ts","../../node_modules/@types/scheduler/tracing.d.ts","../../node_modules/@types/react/index.d.ts","../../node_modules/@types/geojson/index.d.ts","../../node_modules/@types/mapbox-gl/index.d.ts","../../node_modules/react-map-gl/dist/esm/types/external.d.ts","../../node_modules/react-map-gl/dist/esm/types/index.d.ts","../../node_modules/react-map-gl/dist/esm/mapbox/mapbox.d.ts","../../node_modules/react-map-gl/dist/esm/mapbox/create-ref.d.ts","../../node_modules/react-map-gl/dist/esm/utils/set-globals.d.ts","../../node_modules/react-map-gl/dist/esm/components/map.d.ts","../../node_modules/react-map-gl/dist/esm/components/marker.d.ts","../../node_modules/react-map-gl/dist/esm/components/popup.d.ts","../../node_modules/react-map-gl/dist/esm/components/attribution-control.d.ts","../../node_modules/react-map-gl/dist/esm/components/fullscreen-control.d.ts","../../node_modules/react-map-gl/dist/esm/components/geolocate-control.d.ts","../../node_modules/react-map-gl/dist/esm/components/navigation-control.d.ts","../../node_modules/react-map-gl/dist/esm/components/scale-control.d.ts","../../node_modules/react-map-gl/dist/esm/components/source.d.ts","../../node_modules/react-map-gl/dist/esm/components/layer.d.ts","../../node_modules/react-map-gl/dist/esm/components/use-control.d.ts","../../node_modules/react-map-gl/dist/esm/components/use-map.d.ts","../../node_modules/react-map-gl/dist/esm/index.d.ts","../../node_modules/@types/mapbox__point-geometry/index.d.ts","../../node_modules/@mapbox/tiny-sdf/index.d.ts","../../node_modules/@types/pbf/index.d.ts","../../node_modules/@types/mapbox__vector-tile/index.d.ts","../../node_modules/gl-matrix/index.d.ts","../../node_modules/potpack/index.d.ts","../../node_modules/@mapbox/mapbox-gl-supported/index.d.ts","../../node_modules/maplibre-gl/dist/maplibre-gl.d.ts","../../node_modules/@types/hoist-non-react-statics/index.d.ts","../../node_modules/@types/styled-components/index.d.ts","../base-map/lib/styled.d.ts","../base-map/lib/util.d.ts","../base-map/lib/MarkerWithPopup.d.ts","../base-map/lib/index.d.ts","../types/lib/index.d.ts","../map-popup/lib/styled.d.ts","../map-popup/lib/index.d.ts","../../node_modules/@styled-icons/styled-icon/index.d.ts","../../node_modules/@styled-icons/fa-solid/MapMarkerAlt/MapMarkerAlt.d.ts","./src/styled.ts","./src/index.tsx","../../node_modules/@babel/types/lib/index.d.ts","../../node_modules/@types/babel__generator/index.d.ts","../../node_modules/@babel/parser/typings/babel-parser.d.ts","../../node_modules/@types/babel__template/index.d.ts","../../node_modules/@types/babel__traverse/index.d.ts","../../node_modules/@types/babel__core/index.d.ts","../../node_modules/@types/chroma-js/index.d.ts","../../node_modules/@types/color-name/index.d.ts","../../node_modules/@types/color-convert/conversions.d.ts","../../node_modules/@types/color-convert/route.d.ts","../../node_modules/@types/color-convert/index.d.ts","../../node_modules/@types/cookie/index.d.ts","../../node_modules/@types/estree/index.d.ts","../../node_modules/@types/flat/index.d.ts","../../node_modules/@types/node/assert/strict.d.ts","../../node_modules/@types/node/globals.d.ts","../../node_modules/@types/node/async_hooks.d.ts","../../node_modules/@types/node/buffer.d.ts","../../node_modules/@types/node/child_process.d.ts","../../node_modules/@types/node/cluster.d.ts","../../node_modules/@types/node/console.d.ts","../../node_modules/@types/node/constants.d.ts","../../node_modules/@types/node/crypto.d.ts","../../node_modules/@types/node/dgram.d.ts","../../node_modules/@types/node/diagnostic_channel.d.ts","../../node_modules/@types/node/dns.d.ts","../../node_modules/@types/node/dns/promises.d.ts","../../node_modules/@types/node/domain.d.ts","../../node_modules/@types/node/events.d.ts","../../node_modules/@types/node/fs.d.ts","../../node_modules/@types/node/fs/promises.d.ts","../../node_modules/@types/node/http.d.ts","../../node_modules/@types/node/http2.d.ts","../../node_modules/@types/node/https.d.ts","../../node_modules/@types/node/inspector.d.ts","../../node_modules/@types/node/module.d.ts","../../node_modules/@types/node/net.d.ts","../../node_modules/@types/node/os.d.ts","../../node_modules/@types/node/path.d.ts","../../node_modules/@types/node/perf_hooks.d.ts","../../node_modules/@types/node/process.d.ts","../../node_modules/@types/node/punycode.d.ts","../../node_modules/@types/node/querystring.d.ts","../../node_modules/@types/node/readline.d.ts","../../node_modules/@types/node/repl.d.ts","../../node_modules/@types/node/stream.d.ts","../../node_modules/@types/node/stream/promises.d.ts","../../node_modules/@types/node/string_decoder.d.ts","../../node_modules/@types/node/timers.d.ts","../../node_modules/@types/node/timers/promises.d.ts","../../node_modules/@types/node/tls.d.ts","../../node_modules/@types/node/trace_events.d.ts","../../node_modules/@types/node/tty.d.ts","../../node_modules/@types/node/url.d.ts","../../node_modules/@types/node/util.d.ts","../../node_modules/@types/node/util/types.d.ts","../../node_modules/@types/node/v8.d.ts","../../node_modules/@types/node/vm.d.ts","../../node_modules/@types/node/worker_threads.d.ts","../../node_modules/@types/node/zlib.d.ts","../../node_modules/@types/node/globals.global.d.ts","../../node_modules/@types/node/wasi.d.ts","../../node_modules/@types/node/ts3.6/base.d.ts","../../node_modules/@types/node/assert.d.ts","../../node_modules/@types/node/base.d.ts","../../node_modules/@types/node/index.d.ts","../../node_modules/@types/fs-extra/index.d.ts","../../node_modules/@types/minimatch/index.d.ts","../../node_modules/@types/glob/index.d.ts","../../node_modules/@types/graceful-fs/index.d.ts","../../node_modules/@types/unist/index.d.ts","../../node_modules/@types/hast/index.d.ts","../../node_modules/@types/html-minifier-terser/index.d.ts","../../node_modules/rxjs/internal/Subscription.d.ts","../../node_modules/rxjs/internal/types.d.ts","../../node_modules/rxjs/internal/Subscriber.d.ts","../../node_modules/rxjs/internal/Operator.d.ts","../../node_modules/rxjs/internal/observable/iif.d.ts","../../node_modules/rxjs/internal/observable/throwError.d.ts","../../node_modules/rxjs/internal/Observable.d.ts","../../node_modules/rxjs/internal/Subject.d.ts","../../node_modules/rxjs/internal/observable/ConnectableObservable.d.ts","../../node_modules/rxjs/internal/operators/groupBy.d.ts","../../node_modules/rxjs/internal/symbol/observable.d.ts","../../node_modules/rxjs/internal/BehaviorSubject.d.ts","../../node_modules/rxjs/internal/ReplaySubject.d.ts","../../node_modules/rxjs/internal/AsyncSubject.d.ts","../../node_modules/rxjs/internal/Scheduler.d.ts","../../node_modules/rxjs/internal/scheduler/Action.d.ts","../../node_modules/rxjs/internal/scheduler/AsyncScheduler.d.ts","../../node_modules/rxjs/internal/scheduler/AsyncAction.d.ts","../../node_modules/rxjs/internal/scheduler/AsapScheduler.d.ts","../../node_modules/rxjs/internal/scheduler/asap.d.ts","../../node_modules/rxjs/internal/scheduler/async.d.ts","../../node_modules/rxjs/internal/scheduler/QueueScheduler.d.ts","../../node_modules/rxjs/internal/scheduler/queue.d.ts","../../node_modules/rxjs/internal/scheduler/AnimationFrameScheduler.d.ts","../../node_modules/rxjs/internal/scheduler/animationFrame.d.ts","../../node_modules/rxjs/internal/scheduler/VirtualTimeScheduler.d.ts","../../node_modules/rxjs/internal/Notification.d.ts","../../node_modules/rxjs/internal/util/pipe.d.ts","../../node_modules/rxjs/internal/util/noop.d.ts","../../node_modules/rxjs/internal/util/identity.d.ts","../../node_modules/rxjs/internal/util/isObservable.d.ts","../../node_modules/rxjs/internal/util/ArgumentOutOfRangeError.d.ts","../../node_modules/rxjs/internal/util/EmptyError.d.ts","../../node_modules/rxjs/internal/util/ObjectUnsubscribedError.d.ts","../../node_modules/rxjs/internal/util/UnsubscriptionError.d.ts","../../node_modules/rxjs/internal/util/TimeoutError.d.ts","../../node_modules/rxjs/internal/observable/bindCallback.d.ts","../../node_modules/rxjs/internal/observable/bindNodeCallback.d.ts","../../node_modules/rxjs/internal/InnerSubscriber.d.ts","../../node_modules/rxjs/internal/OuterSubscriber.d.ts","../../node_modules/rxjs/internal/observable/combineLatest.d.ts","../../node_modules/rxjs/internal/observable/concat.d.ts","../../node_modules/rxjs/internal/observable/defer.d.ts","../../node_modules/rxjs/internal/observable/empty.d.ts","../../node_modules/rxjs/internal/observable/forkJoin.d.ts","../../node_modules/rxjs/internal/observable/from.d.ts","../../node_modules/rxjs/internal/observable/fromEvent.d.ts","../../node_modules/rxjs/internal/observable/fromEventPattern.d.ts","../../node_modules/rxjs/internal/observable/generate.d.ts","../../node_modules/rxjs/internal/observable/interval.d.ts","../../node_modules/rxjs/internal/observable/merge.d.ts","../../node_modules/rxjs/internal/observable/never.d.ts","../../node_modules/rxjs/internal/observable/of.d.ts","../../node_modules/rxjs/internal/observable/onErrorResumeNext.d.ts","../../node_modules/rxjs/internal/observable/pairs.d.ts","../../node_modules/rxjs/internal/observable/partition.d.ts","../../node_modules/rxjs/internal/observable/race.d.ts","../../node_modules/rxjs/internal/observable/range.d.ts","../../node_modules/rxjs/internal/observable/timer.d.ts","../../node_modules/rxjs/internal/observable/using.d.ts","../../node_modules/rxjs/internal/observable/zip.d.ts","../../node_modules/rxjs/internal/scheduled/scheduled.d.ts","../../node_modules/rxjs/internal/config.d.ts","../../node_modules/rxjs/index.d.ts","../../node_modules/@types/inquirer/lib/objects/choice.d.ts","../../node_modules/@types/inquirer/lib/objects/separator.d.ts","../../node_modules/@types/inquirer/lib/objects/choices.d.ts","../../node_modules/@types/inquirer/lib/utils/screen-manager.d.ts","../../node_modules/@types/inquirer/lib/prompts/base.d.ts","../../node_modules/@types/inquirer/lib/utils/paginator.d.ts","../../node_modules/@types/inquirer/lib/prompts/checkbox.d.ts","../../node_modules/@types/inquirer/lib/prompts/confirm.d.ts","../../node_modules/@types/inquirer/lib/prompts/editor.d.ts","../../node_modules/@types/inquirer/lib/prompts/expand.d.ts","../../node_modules/@types/inquirer/lib/prompts/input.d.ts","../../node_modules/@types/inquirer/lib/prompts/list.d.ts","../../node_modules/@types/inquirer/lib/prompts/number.d.ts","../../node_modules/@types/inquirer/lib/prompts/password.d.ts","../../node_modules/@types/inquirer/lib/prompts/rawlist.d.ts","../../node_modules/@types/inquirer/lib/utils/events.d.ts","../../node_modules/@types/inquirer/lib/utils/readline.d.ts","../../node_modules/@types/inquirer/lib/utils/utils.d.ts","../../node_modules/@types/through/index.d.ts","../../node_modules/@types/inquirer/lib/ui/baseUI.d.ts","../../node_modules/@types/inquirer/lib/ui/bottom-bar.d.ts","../../node_modules/@types/inquirer/lib/ui/prompt.d.ts","../../node_modules/@types/inquirer/index.d.ts","../../node_modules/@types/is-function/index.d.ts","../../node_modules/@types/istanbul-lib-coverage/index.d.ts","../../node_modules/@types/istanbul-lib-report/index.d.ts","../../node_modules/@types/istanbul-reports/index.d.ts","../../node_modules/jest-diff/build/cleanupSemantic.d.ts","../../node_modules/jest-diff/build/types.d.ts","../../node_modules/jest-diff/build/diffLines.d.ts","../../node_modules/jest-diff/build/printDiffs.d.ts","../../node_modules/jest-diff/build/index.d.ts","../../node_modules/@types/jest/node_modules/pretty-format/build/types.d.ts","../../node_modules/@types/jest/node_modules/pretty-format/build/index.d.ts","../../node_modules/@types/jest/index.d.ts","../../node_modules/@types/pixelmatch/index.d.ts","../../node_modules/ssim.js/dist/types.d.ts","../../node_modules/ssim.js/dist/index.d.ts","../../node_modules/@types/jest-image-snapshot/index.d.ts","../../node_modules/@types/jest-specific-snapshot/index.d.ts","../../node_modules/@types/js-levenshtein/index.d.ts","../../node_modules/@types/json-schema/index.d.ts","../../node_modules/@types/json-stable-stringify/index.d.ts","../../node_modules/@types/json5/index.d.ts","../../node_modules/@types/mdast/index.d.ts","../../node_modules/@types/minimist/index.d.ts","../../node_modules/@types/node-fetch/node_modules/form-data/index.d.ts","../../node_modules/@types/node-fetch/externals.d.ts","../../node_modules/@types/node-fetch/index.d.ts","../../node_modules/@types/normalize-package-data/index.d.ts","../../node_modules/@types/npmlog/index.d.ts","../../node_modules/@types/overlayscrollbars/index.d.ts","../../node_modules/@types/parse-json/index.d.ts","../../node_modules/@types/parse5/index.d.ts","../../node_modules/@types/prettier/index.d.ts","../../node_modules/@types/pretty-hrtime/index.d.ts","../../node_modules/@types/qs/index.d.ts","../../node_modules/@types/react-syntax-highlighter/index.d.ts","../../node_modules/@types/retry/index.d.ts","../../node_modules/@types/scheduler/index.d.ts","../../node_modules/@types/set-cookie-parser/index.d.ts","../../node_modules/@types/source-list-map/index.d.ts","../../node_modules/@types/stack-utils/index.d.ts","../../node_modules/@types/tapable/index.d.ts","../../node_modules/@types/throttle-debounce/index.d.ts","../../node_modules/source-map/source-map.d.ts","../../node_modules/@types/uglify-js/index.d.ts","../../node_modules/vfile-message/index.d.ts","../../node_modules/@types/vfile/index.d.ts","../../node_modules/@types/webpack/node_modules/anymatch/index.d.ts","../../node_modules/@types/webpack-sources/node_modules/source-map/source-map.d.ts","../../node_modules/@types/webpack-sources/lib/Source.d.ts","../../node_modules/@types/webpack-sources/lib/CompatSource.d.ts","../../node_modules/@types/webpack-sources/lib/ConcatSource.d.ts","../../node_modules/@types/webpack-sources/lib/OriginalSource.d.ts","../../node_modules/@types/webpack-sources/lib/PrefixSource.d.ts","../../node_modules/@types/webpack-sources/lib/RawSource.d.ts","../../node_modules/@types/webpack-sources/lib/ReplaceSource.d.ts","../../node_modules/@types/webpack-sources/lib/SizeOnlySource.d.ts","../../node_modules/@types/webpack-sources/lib/SourceMapSource.d.ts","../../node_modules/@types/webpack-sources/lib/index.d.ts","../../node_modules/@types/webpack-sources/lib/CachedSource.d.ts","../../node_modules/@types/webpack-sources/index.d.ts","../../node_modules/@types/webpack/index.d.ts","../../node_modules/@types/webpack-env/index.d.ts","../../node_modules/@types/yargs-parser/index.d.ts","../../node_modules/@types/yargs/index.d.ts","../../node_modules/@types/yauzl/index.d.ts"],"fileInfos":["2dc8c927c9c162a773c6bb3cdc4f3286c23f10eedc67414028f9cb5951610f60",{"version":"3ac1b83264055b28c0165688fda6dfcc39001e9e7828f649299101c23ad0a0c3","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06",{"version":"72704b10d97777e15f1a581b73f88273037ef752d2e50b72287bd0a90af64fe6","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"d8996609230d17e90484a2dd58f22668f9a05a3bfe00bfb1d6271171e54a31fb","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"1b3fe904465430e030c93239a348f05e1be80640d91f2f004c3512c2c2c89f34","affectsGlobalScope":true},{"version":"10bbdc1981b8d9310ee75bfac28ee0477bb2353e8529da8cff7cb26c409cb5e8","affectsGlobalScope":true},{"version":"ecf78e637f710f340ec08d5d92b3f31b134a46a4fcf2e758690d8c46ce62cba6","affectsGlobalScope":true},"4ee363f83d7be2202f34fcd84c44da71bf3a9329fee8a05f976f75083a52ea94","a7e32dcb90bf0c1b7a1e4ac89b0f7747cbcba25e7beddc1ebf17be1e161842ad","f5a8b384f182b3851cec3596ccc96cb7464f8d3469f48c74bf2befb782a19de5",{"version":"5a1b30146d105f86b15aaf11ff43af00c29972d18bc3b16c8b8f56aa47801733","affectsGlobalScope":true},"8c2e6e491e1a08855b8bf70820184ff66ae0d43f7cf0311fc680e6d860af211c","a49c26a7bad73494e987a795709e298223800407fa4e5c40c28539f752eb32ad","a0df1a13a256ff8bda9ff32c41e40e23406cd0b89ed9ceb71baed13dcdefd1f7","41fff171fe916f37c0bbf04715f003c748a844e1f4c5ec73933feae7188ef819","3660caee7bd0ac70e9a82120d9b6ac3d9a19f91de6119c870679165b46fa21a3","cd8afab9729010ef512695670765bb866531227c44e1d5263b83c5dfa7fcf237","2e25963caccfc798200150523055a16562f07b807999ccf93c49c1c25a1e11ec","7c761bd08228c10412e16810755c459bb5d535cea6133f2483c373578c5bc426","b14ce015be86192283b29647c912599ad3846828f23d8316e6bd697c3e3222a4","c3e15738511825d96735ced6c5cb071f259e95074529f71b4437aa7e71cb8331","41ff3650997388f8cb6b6058a410dbce9381ec42cfa486647de3fee66cc3e3d3","681afd9109720875b4226202d0ee32337f50057915f870c3a4d1f46d3bb8f894","d0724568c7956afbb419dfec616fb330ba8a54934e86f020c9360429b230ca5c","7479c56ea70b0ed20ef34e09f06845d8d68d5d2b16336e2618a0f300d93f2357","ff141ce16da0b8342f9dde1855fe85d62b5ca2460833fde64e53557df49ddad4","ece07845aecf7cad2f2969c1b62239fb672923d73659147d64fdcb000fcdd3d2","e61d90f796cc818f767a7faa2776978e32a958a3b2d6aa9fc863e9fcf10a6f3c","6c6bfee58280e0a41b6667d1274b63b0b4d56938333b90e966eb39af7b257501","040945ea19b2b1edbaebd0ab6fd4b6b8486fdde819e1989b5e0d09cc07785597","dfe2bee18a07185872defac3d281f0c3b9254837c5cae115c0f639f0e75756dd","e86cd9c6c99834f8591ed72f08e4ca31570296f081206d0168f58f032cec5b58","e3c43755b9c7d19fd888523f0cc47b81995bb7f320d19e51555e2b988471dfdf","2a856615ecd0af49997dfbb38cf94fd787d529062a2e96ce26b84432e61d785d","ab438f22fa7748112b6b9744b992ab6049d2fa6f46f011c145ff9c90e533856a","6b729c3274f6d4738fe470109bcb08b09ef98a6b356c01da3ca8dc0996b4458b","828ea2cf5792eba68ebd41d6dd17ac67d31622b7889965210f8fa50a6eb29eba","b8f252ac95b1c652ef9cdad9e80822c932353d2ab91df6464725a6d50123fb5d","8c4cfae683685e672645f2721f1d157e6e70c72e72ab2dc598516414eee8f173","bfe1b52cf71aea9bf8815810cc5d9490fa9617313e3d3c2ee3809a28b80d0bb4",{"version":"6839e1779e1f61e0ed62b1ca3ff7e74dc70479a5455077a38434d0e404103c28","affectsGlobalScope":true},"64b32b1c9c92692e2c1670e575600cf754fa053f7fea072a14a6b12a440dd0e0","5a0cfc8613ecad7ce3494222d61862b4186b40c3fb051ec11b52dd69a999f030","d862297bb1b62861563f202b30bea92ea687509259d44648dbb73dae2098161a","babe31e7abe23cb690d7066a173d6cc7cf332e563d89842056c08eec34b6ffb6","937908b229615bc3cfe25bf1d1f1108057d1da9743d999bd65fe2d1a4eacc198","9bc6b379aa7b715c713028ee59d4b1ba49d73e697824b5e5501ece07a5a98f8d","7759a7126c1d9c5b15e458aa616e25baaababd943430efbf60d743a133971329","a4ce8cb63b46ff55db10c4bdd3007240a42ba71c03f159ea7e6517aef9a8013c","6cb04fc9b712ac80f0335152d94bbe40ef582d77de95ccb565febf6d6983e10e","a1a48647b173dc4b7c7c585079051565e467ae4f9068fb0b7d49ce01806c1f49","d38f1376ecb4c3f1cc04355be296189f1aa3a3022726b9f3aa0a85c417174fbc","98f40132aab59240e3daa408377a6f779aa81f4340f4451959cd2eba3750e456","b25c5f2970d06c729f464c0aeaa64b1a5b5f1355aa93554bb5f9c199b8624b1e","8670878e030b88a469db43b36ef90ffa208e74faf249416feeb8fbb6b646b4a9","3051751533eee92572241b3cef28333212401408c4e7aa21718714b793c0f4ed","3b043cf9a81854a72963fdb57d1884fc4da1cf5be69b5e0a4c5b751e58cb6d88","6f1d39d26959517da3bd105c552eded4c34702705c64d75b03f54d864b6e41c2","fae40de985385b22f775c1bea02959b251abddaa1cb168ee6c4f00d79ccfd8ef","f0cb4b3ab88193e3e51e9e2622e4c375955003f1f81239d72c5b7a95415dad3e","92450d617e92f96354d281c8ed5613fd16cacea79eb60b1e9736494b3c057e69","8a9086357fe289efb682dc925358f30b6312c7219a5ca92212857a0a79612012","92bc42ed0e2d41559513fd457ee30d834c2f0fedb9ed5004c029cbf0ad2f8bd9","117ffeecf6c55e25b6446f449ad079029b5e7317399b0a693858faaaea5ca73e","7d7c8ef7d48a035142c07dae60545ecc0e4af4c337742760cb09726f2f8e31db","d9890ea8f1da57be3c2e2d3627b787cd4b4a463fd1747c823a0de24b240c8fe5","c7bdc99177a2a94d25fb13722adaaf5b3291bf70b4d1b27584ba189dd3889ba3",{"version":"41a44aa1929121f5c3124733b5ca9c59717a092b899b3771cc983939ae99eeb2","affectsGlobalScope":true},"e23424b97418eca3226fd24de079f1203eb70360622e4e093af2aff14d4be6ec","a473cf45c3d9809518f8af913312139d9f4db6887dc554e0d06d0f4e52722e6b","297f4ea4e4a5161a6627bc65c83040a91e0792e92bdc4764e24650831cc9867c","04eaa93bd75f937f9184dcb95a7983800c5770cf8ddd8ac0f3734dc02f5b20ef",{"version":"c8155caf28fc7b0a564156a5df28ad8a844a3bd32d331d148d8f3ce88025c870","affectsGlobalScope":true},"45ac321f2e15d268fd74a90ddaa6467dcaaff2c5b13f95b4b85831520fb7a491","5375c30f03b01e610f7370e40ccf3ade1d96de99e9a9a9a0cb0f96fc98aefb71","797a9d37eb1f76143311c3f0a186ce5c0d8735e94c0ca08ff8712a876c9b4f9e","5cc0a492da3602510b8f5ed1852b1e0390002780d8758fbc8c0cd023ca7085f8","ec7dafafe751a5121f8f1c80201ebe7e7238c47e6329280a73c4d1ca4bb7fa28","64debeb10e4b7ae4ec9e89bfb4e04c6101ab98c3cc806d14e5488607cfec2753",{"version":"2866a528b2708aa272ec3eaafd3c980abb23aec1ef831cfc5eb2186b98c37ce5","affectsGlobalScope":true},{"version":"a5782d6cea81fe43d2db7ed41e789458c933ab3ab60602f7b5b14c4da3370496","affectsGlobalScope":true},"bd30510d2d803f453e10604277088a46327f5f0b6aa2b957306c458d7428f8f7","214cf066391a5a651001ebcee2c21ee4d45e8124579d271c59d7c2343bb9d29a","d28c8598067b15c7643558b936e68caefe5d171d0e629e19e2aa6ca870bb4b00","15543feaed3ce6b96bc0508f3e3f8b8f729fae62d0609bddacd483145e71c594","13257840c0850d4ebd7c2b17604a9e006f752de76c2400ebc752bc465c330452","42176966283d3835c34278b9b5c0f470d484c0c0c6a55c20a2c916a1ce69b6e8","0cff7901aedfe78e314f7d44088f07e2afa1b6e4f0473a4169b8456ca2fb245d","6ea59cf5479f3fad5db2caa4513d8d06d6cfee8d8df69e7a040c9b5b7f25f39c","69640cc2e76dad52daeb9914e6b70c5c9a5591a3a65190a2d3ea432cf0015e16","3ec1e108d587a5661ec790db607f482605ba9f3830e118ce578e3ffa3c42e22b","2e37dc691cb5511f49be0f8ba0df3259aa0b453b0098b436e478e60c06567ae0",{"version":"dd3f82b87fa256e7c5a66c9b8ddcc9b53275b3531c10a769722c5103a30a97e9","affectsGlobalScope":true},"7f77304372efe3c9967e5f9ea2061f1b4bf41dc3cda3c83cdd676f2e5af6b7e6","992c6f6be16c0a1d2eec13ece33adeea2c747ba27fcd078353a8f4bb5b4fea58","f6ea38ddcee37ec1bebde700e3a4d85040bf2d239600c877ecefd9b265066b24","a6b0abdb67d63ebe964ba5fee31bc3daf10c12eecd46b24d778426010c04c67e","1a63584d6605d1d5b5fd5c4fa2dc2fa5a2134aa775fcfd95fbdb705971c9ca29","fd2298fba0640e7295e7bd545e2dfbfcccbb00c27019e501c87965a02bbdebf6","4fd3c4debadce3e9ab9dec3eb45f7f5e2e3d4ad65cf975a6d938d883cfb25a50","f49709e8c096b05aca0674d39f471aa05261de7c756df9abdf4a53ed0fa98901","baca27d1de400e027cdc70217ca73e414002baef5798aa24a921097c20066fa1","75b9229192e6da08f6e06daa2b9243c251e14f179dfcc9cc9bf02dd70eabeb48","7df562288f949945cf69c21cd912100c2afedeeb7cdb219085f7f4b46cb7dde4","9d16690485ff1eb4f6fc57aebe237728fd8e03130c460919da3a35f4d9bd97f5","dcc6910d95a3625fd2b0487fda055988e46ab46c357a1b3618c27b4a8dd739c9","f4149f1aa299474c7040a35fe8f8ac2ad078cc1b190415adc1fff3ed52d490ea","3730099ed008776216268a97771de31753ef71e0a7d0ec650f588cba2a06ce44","8d649dbc429d7139a1d9a14ea2bf8af1dc089e0a879447539587463d4b6c248c","60c9e27816ec8ac8df7240598bb086e95b47edfb454c5cbf4003c812e0ed6e39","0431a29ecc5bb615e6d6d1709941bdf16e708f760099d017f5408a1e68e2d248","4926467de88a92a4fc9971d8c6f21b91eca1c0e7fc2a46cc4638ab9440c73875",{"version":"2708349d5a11a5c2e5f3a0765259ebe7ee00cdcc8161cb9990cb4910328442a1","affectsGlobalScope":true},"4e0a4d84b15692ea8669fe4f3d05a4f204567906b1347da7a58b75f45bae48d3","1288f8ee930c03fd535824f8fe852375ec7181d73e4c1f445b82b414c95c5bbe","b3593bd345ebea5e4d0a894c03251a3774b34df3d6db57075c18e089a599ba76","e61a21e9418f279bc480394a94d1581b2dee73747adcbdef999b6737e34d721b","30368d3789ec56ef3006c5f2115bd00faa21471aed6cbe6fec54a5683e5497ed","6435575b4feae200831d37df9f871de6e695c64d3148611fe1b4d714d648ea24","95c22bc19835e28e2e524a4bb8898eb5f2107b640d7279a6d3aade261916bbf2","725b884357ba84171341a8e4cc08edf11417854fd069842ca6d22afb2e340e45","3ebae8c00411116a66fca65b08228ea0cf0b72724701f9b854442100aab55aba","1320ee42b30487cceb6da9f230354fc34826111f76bf12f0ad76c717c12625b0","b6e83cdeca61289e5ffd770e55ed035babdffadd87d1ffa42b03e9fe8411333f","6767cce098e1e6369c26258b7a1f9e569c5467d501a47a090136d5ea6e80ae6d","6cb35d83d21a7e72bd00398c93302749bcd38349d0cc5e76ff3a90c6d1498a4d",{"version":"369dd7668d0e6c91550bce0c325f37ce6402e5dd40ecfca66fbb5283e23e559d","affectsGlobalScope":true},"2632057d8b983ee33295566088c080384d7d69a492bc60b008d6a6dfd3508d6b","4bf71cf2a94492fc71e97800bdf2bcb0a9a0fa5fce921c8fe42c67060780cbfa","0996ff06f64cb05b6dac158a6ada2e16f8c2ccd20f9ff6f3c3e871f1ba5fb6d9","5c492d01a19fea5ebfff9d27e786bc533e5078909521ca17ae41236f16f9686a","a6ee930b81c65ec79aca49025b797817dde6f2d2e9b0e0106f0844e18e2cc819","84fce15473e993e6b656db9dd3c9196b80f545647458e6621675e840fd700d29","7d5336ee766aa72dffb1cc2a515f61d18a4fb61b7a2757cbccfb7b286b783dfb","63e96248ab63f6e7a86e31aa3e654ed6de1c3f99e3b668e04800df05874e8b77","80da0f61195385d22b666408f6cccbc261c066d401611a286f07dfddf7764017","06a20cc7d937074863861ea1159ac783ff97b13952b4b5d1811c7d8ab5c94776","ab6de4af0e293eae73b67dad251af097d7bcc0b8b62de84e3674e831514cb056","18cbd79079af97af66c9c07c61b481fce14a4e7282eca078c474b40c970ba1d0","e7b45405689d87e745a217b648d3646fb47a6aaba9c8d775204de90c7ea9ff35","669b754ec246dd7471e19b655b73bda6c2ca5bb7ccb1a4dff44a9ae45b6a716a","bcfaca4a8ff50f57fd36df91fba5d34056883f213baff7192cbfc4d3805d2084","76a564b360b267502219a89514953058494713ee0923a63b2024e542c18b40e5","8f62cbd3afbd6a07bb8c934294b6bfbe437021b89e53a4da7de2648ecfc7af25","a20629551ed7923f35f7556c4c15d0c8b2ebe7afaa68ceaab079a1707ba64be2","d6de66600c97cd499526ddecea6e12166ab1c0e8d9bf36fb2339fd39c8b3372a","8e7a5b8f867b99cc8763c0b024068fb58e09f7da2c4810c12833e1ca6eb11c4f","a8932876de2e3138a5a27f9426b225a4d27f0ba0a1e2764ba20930b4c3faf4b9","df877050b04c29b9f8409aa10278d586825f511f0841d1ec41b6554f8362092b","027d600e00c5f5e1816c207854285d736f2f5fa28276e2829db746d5d6811ba1","5443113a16ef378446e08d6500bb48b35de582426459abdb5c9704f5c7d327d9","0fb581ecb53304a3c95bb930160b4fa610537470cce850371cbaad5a458ca0d9","7da4e290c009d7967343a7f8c3f145a3d2c157c62483362183ba9f637a536489","eb21ddc3a8136a12e69176531197def71dc28ffaf357b74d4bf83407bd845991","914560d0c4c6aa947cfe7489fe970c94ba25383c414bbe0168b44fd20dbf0df4","4fb3405055b54566dea2135845c3a776339e7e170d692401d97fd41ad9a20e5d","8d607832a6ef0eac30657173441367dd76c96bf7800d77193428b922e060c3af","20ff7207f0bb5cdde5fee8e83315ade7e5b8100cfa2087d20d39069a3d7d06f4","7ca4c534eab7cff43d81327e369a23464bc37ef38ce5337ceff24a42c6c84eb2","5252dec18a34078398be4e321dee884dc7f47930e5225262543a799b591b36d2","23caed4dff98bd28157d2b798b43f1dfefe727f18641648c01ce4e0e929a1630","f67e013d5374826596d7c23dbae1cdb14375a27cd72e16c5fb46a4b445059329","ea3401b70e2302683bbf4c18b69ef2292b60f4d8f8e6d920413b81fb7bde0f65","71afe26642c0fb86b9f8b1af4af5deb5181b43b6542a3ff2314871b53d04c749","0d7f01634e6234d84cf0106508efdb8ae00e5ed126eff9606d37b031ac1de654","f8d209086bad78af6bd7fef063c1ed449c815e6f8d36058115f222d9f788b848","3ad003278d569d1953779e2f838f7798f02e793f6a1eceac8e0065f1a202669b","fb2c5eceffcd918dbb86332afa0199f5e7b6cf6ee42809e930a827b28ef25afe","f664aaff6a981eeca68f1ff2d9fd21b6664f47bf45f3ae19874df5a6683a8d8a","ce066f85d73e09e9adbd0049bcf6471c7eefbfc2ec4b5692b5bcef1e36babd2a","09d302513cacfbcc54b67088739bd8ac1c3c57917f83f510b2d1adcb99fd7d2a","3faa54e978b92a6f726440c13fe3ab35993dc74d697c7709681dc1764a25219f","2bd0489e968925eb0c4c0fb12ef090be5165c86bd088e1e803102c38d4a717d8","88924207132b9ba339c1adb1ed3ea07e47b3149ff8a2e21a3ea1f91cee68589d","b8800b93d8ab532f8915be73f8195b9d4ef06376d8a82e8cdc17c400553172d6","d7d469703b78beba76d511957f8c8b534c3bbb02bea7ab4705c65ef573532fb8","74c8c3057669c03264263d911d0f82e876cef50b05be21c54fef23c900de0420","b303eda2ff2d582a9c3c5ecb708fb57355cdc25e8c8197a9f66d4d1bf09fda19","4e5dc89fa22ff43da3dee1db97d5add0591ebaff9e4adef6c8b6f0b41f0f60f0","ec4e82cb42a902fe83dc13153c7a260bee95684541f8d7ef26cb0629a2f4ca31","5f36e24cd92b0ff3e2a243685a8a780c9413941c36739f04b428cc4e15de629d","40a26494e6ab10a91851791169582ab77fed4fbd799518968177e7eefe08c7a9","208e125b45bc561765a74f6f1019d88e44e94678769824cf93726e1bac457961","b3985971de086ef3aa698ef19009a53527b72e65851b782dc188ac341a1e1390","c81d421aabb6113cd98b9d4f11e9a03273b363b841f294b457f37c15d513151d","30063e3a184ff31254bbafa782c78a2d6636943dfe59e1a34f451827fd7a68dc","c05d4cae0bceed02c9d013360d3e65658297acb1b7a90252fe366f2bf4f9ccc9","6f14b92848889abba03a474e0750f7350cc91fc190c107408ca48679a03975ae","a588d0765b1d18bf00a498b75a83e095aef75a9300b6c1e91cbf39e408f2fe2f","502bd3d3dd93b012e56864157c9ec3a3a53695fb05d1f42671f3e6314698a665","6b1b045b3e848a844ff1922ce2f82925f21d482bdeba5710883ab0c7df2c7e2b","8fac536b0b73249d9153424adafe49282c389a08163544917c18dfc1ddcbbd25","05a21cbb7cbe1ec502e7baca1f4846a4e860d96bad112f3e316b995ba99715b7","1eaee2b52f1c0e1848845a79050c1d06ae554d8050c35e3bf479f13d6ee19dd5","fd219904eea67c470dfebbaf44129b0db858207c3c3b55514bdc84de547b1687","4de232968f584b960b4101b4cdae593456aff149c5d0c70c2389248e9eb9fbac","9d6f6d1d788d8010417b914f4bad17be02645c6c5177a098dca97bee7561a0e1","c5430542eeebb207d651e8b00a08e4bb680c47ecb73dd388d8fa597a1fc5de5b","a6c5c9906262cf10549989c0061e5a44afdc1f61da77d5e09418a9ecea0018fe","1405d8968a5da39a3aed8c1701ca813d3284f51adb87b184337bb35402b077eb","33d63a317a3d2f2e06a10cf04a5caf7a781fe5f644a0dda5dfe81883c1ab2cca","ab60a5aea46b4fd3ee9d52ba0059d908f6f974cf4aba52a693f03361aa1adec0","7faa24bb6f24e79337fa302cc328d9f50ba3fb1af45a5aedcaa64e9b326a0bab","1a8f503c64bdb36308f245960d9e4acac4cf65d8b6bd0534f88230ebf0be7883","83c54a3b3e836d1773b8c23ff76ce6e0aae1a2209fc772b75e9de173fec9eac0","475e411f48f74c14b1f6e50cc244387a5cc8ce52340dddfae897c96e03f86527","948d08b7c693d1a4d0101bd2a48a2930e814811acde8f2a4c1226fd4a907cac0","656424ca784760c679bf2677d8aaf55d1cb8452cd0ac04bbe1c0f659f45f8c11","a2c1f4012459547d62116d724e7ec820bb2e6848da40ea0747bf160ffd99b283","0dc197e52512a7cbea4823cc33c23b0337af97bd59b38bf83be047f37cd8c9a8","492c93ade227fe4545fabb3035b9dd5d57d8b4fde322e5217fdaef20aa1b80a8","e84784554ccec0a03886acbd0b08dece208335465800bc3b5c9ab152c780a303","11ef35fa1e8aef8229ce6b62ac1a6a0761d1d4bb4de1538bce6d10762a919139","de18acda71730bac52f4b256ce7511bb56cc21f6f114c59c46782eff2f632857","7eb06594824ada538b1d8b48c3925a83e7db792f47a081a62cf3e5c4e23cf0ee","029769d13d9917e3284cb2356ed28a6576e8b07ae6a06ee1e672518adf21a102","d8aab31ba8e618cc3eea10b0945de81cb93b7e8150a013a482332263b9305322","69da61a7b5093dac77fa3bec8be95dcf9a74c95a0e9161edb98bb24e30e439d2","561eca7a381b96d6ccac6e4061e6d2ae53f5bc44203f3fd9f5b26864c32ae6e9","62ea38627e3ebab429f7616812a9394d327c2bc271003dfba985de9b4137369f","b4439890c168d646357928431100daac5cbdee1d345a34e6bf6eca9f3abe22bc","5d72971a459517c44c1379dab9ed248e87a61ba0a1e0f25c9d67e1e640cd9a09","02d734976af36f4273d930bea88b3e62adf6b078cf120c1c63d49aa8d8427c5c",{"version":"516a426e3960379f310107635b8f3a7e8c307c6c665080b128039d9299ec4087","affectsGlobalScope":true},"f30350dd37c3f3c11f47adb7ce4e7a4928f578f4ae8a3197e0c8a0811da46b92","948a49768a6f616ae03f7ce6ad074a0bf0cf1d139409041e0d441d037c49aabd","58729ebab0d9f2f97c1f976204c3541a1ea865811ecbeac421fbd887eb3f82e2",{"version":"a4a1baaca291763a32fb2011afe7c1d17c522b2429500455ac94dcde1abfc954","affectsGlobalScope":true},{"version":"597e57d1aed6e56c5711328daa1a5f835d9aa1a23093f133d98acabeedff06fe","affectsGlobalScope":true},"15a58e61533036fb08dfd567fa7b1f799acdedf0cacf5cbc93bbed0f0520e87f","0359682c54e487c4cab2b53b2b4d35cc8dea4d9914bc6abcdb5701f8b8e745a4","626520302b2c8880e9eaa3a6a12022cc8b577a32e4d903aef85e3dd275063da4","96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538","9a6d65d77455efaaaeff945bea30c38b8fe0922b807ba45cd23792392f1bfe76","e437d83044ba17246a861aa9691aa14223ff4a9d6f338ab1269c41c758586a88","736097ddbb2903bef918bb3b5811ef1c9c5656f2a73bd39b22a91b9cc2525e50","8fe9135b86994075c4192f3358a4350389e80d3abec712db2a82061962d9d21c","e0014889f31fee76a572b6b15e74b2174cbcf6346ae8ab5c69eb553a10e5c944","c9ad058b2cc9ce6dc2ed92960d6d009e8c04bef46d3f5312283debca6869f613","0d65b782b1a9b5891802ef2022c78481b19dfe133ba8d9f7596fe1320314342d","1502b874bbaafdb762b3907945740f787058a6aabff5e27377f9b45e4bb08ff3","2b8264b2fefd7367e0f20e2c04eed5d3038831fe00f5efbc110ff0131aab899b","c555dd691dd05955e99cd93dd99c685a65e5287813ccb5e6bfde951183248e26","65455ea1b00bae7bd26d3c8c2401eb3d10401c09c55192d6f3b8b2275eda20c2","b91aaad5f9c3f5dca5e8245d5f6464bdc63a77ba4453bb3e2d0c93959cddb13c","98437d5a640b67c41534f0de2dcb64c75433dcdff54ff8f8432e613663619a2e",{"version":"cffd3848b7af4922d70028c805b7df5e8f0eac4a8d2410b0f55b47ca62c6c3a8","affectsGlobalScope":true},"199f9ead0daf25ae4c5632e3d1f42570af59685294a38123eef457407e13f365","3169db033165677f1d414baf0c82ba27801089ca1b66d97af464512a47df31b5","db1bcf6210cc48986c17a758bff8dca8c4b93c3e9cc6cefd50316dcc5f90e1d1","67fc055eb86a0632e2e072838f889ffe1754083cb13c8c80a06a7d895d877aae","41422586881bcd739b4e62d9b91cd29909f8572aa3e3cdf316b7c50f14708d49","d558a0fe921ebcc88d3212c2c42108abf9f0d694d67ebdeba37d7728c044f579","4e22b9ea2805fec5f3c120146a690e5604a3117dbdee648c85393f58422eec16","2887592574fcdfd087647c539dcb0fbe5af2521270dad4a37f9d17c16190d579","bee79f5862fe1278d2ba275298862bce3f7abf1e59d9c669c4b9a4b2bba96956","a937bfb110176509a5fd6308b823e795525e7af8a12f1833f6567da6953ed035","6f56706c6828d0299f46f8b1a79ecae0757b91b48e63baf6f0c5292d02037129","4fb0b7d532aa6fb850b6cd2f1ee4f00802d877b5c66a51903bc1fb0624126349","b90c59ac4682368a01c83881b814738eb151de8a58f52eb7edadea2bcffb11b9","8560a87b2e9f8e2c3808c8f6172c9b7eb6c9b08cb9f937db71c285ecf292c81d","ffe3931ff864f28d80ae2f33bd11123ad3d7bad9896b910a1e61504cc093e1f5","083c1bd82f8dc3a1ed6fc9e8eaddf141f7c05df418eca386598821e045253af9","274ebe605bd7f71ce161f9f5328febc7d547a2929f803f04b44ec4a7d8729517","6ca0207e70d985a24396583f55836b10dc181063ab6069733561bfde404d1bad","5908142efeaab38ffdf43927ee0af681ae77e0d7672b956dfb8b6c705dbfe106","f772b188b943549b5c5eb803133314b8aa7689eced80eed0b70e2f30ca07ab9c","0026b816ef05cfbf290e8585820eef0f13250438669107dfc44482bac007b14f","8ef5aad624890acfe0fa48230edce255f00934016d16acb8de0edac0ea5b21bb","9af6248ff4baf0c1ddc62bb0bc43197437bd5fb2c95ff8e10e4cf2e699ea45c1","d84398556ba4595ee6be554671da142cfe964cbdebb2f0c517a10f76f2b016c0","89b42f8ee5d387a39db85ee2c7123a391c3ede266a2bcd502c85ad55626c3b2b","99c7f3bbc03f6eb3e663c26c104d639617620c2925e76fc284f7bedf1877fa2b",{"version":"5b3e6ce357a7a1a07c858432a3d2002750058725874db09a03a0a9e899d861f5","affectsGlobalScope":true},"3bdd93ec24853e61bfa4c63ebaa425ff3e474156e87a47d90122e1d8cc717c1f","1a81627b04dd2feab19e26d3df04e79f50d5dae42b9b5f9181d23dc820c9f048","b2d70a269840a9528db473ac7565442434333a05c1f66801a7a672e82beb903e"],"options":{"composite":true,"declaration":true,"declarationMap":true,"esModuleInterop":true,"jsx":2,"module":1,"noEmitOnError":false,"outDir":"./lib","rootDir":"./src","skipLibCheck":true,"sourceMap":true,"target":1},"fileIdsList":[[78],[74],[36,66],[78,79,80,81,82],[78,80],[85],[86,87],[86],[107,143],[106,143,145],[148],[36],[121,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,235,236],[237],[215,216,237],[121,214,218,237],[121,219,220,237],[121,219,237],[121,214,219,237],[121,225,237],[121,237],[233,234,237],[214,234,237],[121,214],[218],[121],[214,237],[239],[239,240],[249,250,252],[249],[246,248],[247],[37],[37,57,59],[109,131,143,261,262],[109,123,143],[141],[140,141],[106,107,114,123],[96,106,114],[132],[100,107,115],[123,128],[103,106,114],[104],[103],[106],[106,108,123,131],[106,107],[114,123,131],[106,107,109,114,123,128,131],[109,128,131],[142],[131],[103,106,123],[116],[94],[130],[121,132,135],[106,124],[123],[126],[114],[92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139],[120],[133],[100,106,108,117,123,131,135],[143],[36,272],[32,33,34,35],[109,143],[33,36,65],[123,143],[280],[143,148,282],[143,286,287,288,289,290,291,292,293,294,295,296],[285,286,295],[286,295],[276,285,286,295],[286],[100,285,295],[285,286,287,288,289,290,291,292,293,294,296],[100,143,278,280,281,284,297],[300],[106,123,143],[242,243],[242,243,244,245],[57,58,60,61,62,63],[36,40],[36,38,40],[38,40],[36,38,41,42,43,56],[38,40,44],[36,42],[39,42,44,45,46,47,48,49,50,51,52,53,54,55],[38,40,41],[38],[38,39],[151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,170,171,173,175,176,177,178,179,180,181,182,183,184,185,186,187,188,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213],[151,153,158],[153,190],[152,157],[151,152,153,154,155,156],[152,153],[153,189],[151,152,153,158],[151,152,166],[151,152,153,154,157],[151,152],[152],[151,153,157,158],[152,153,154,157,190],[157],[157,197],[151,152,153,157],[152,153,154,157],[151,152,153,157,158],[214],[151,152,165],[167,168],[151,152,166,167],[151,152,165,166,168],[167],[151,152,167,168],[174],[169],[172],[151,157],[251],[36,56],[36,56,64,66,67,68,69],[36,56,66],[38,56],[36,71,72],[66],[36,38,56,70,71,73,76],[66,75]],"referencedMap":[[80,1],[75,2],[74,3],[83,4],[79,1],[81,5],[82,1],[86,6],[88,7],[87,8],[144,9],[146,10],[147,9],[149,11],[65,12],[237,13],[215,14],[217,15],[216,14],[219,16],[221,17],[222,18],[223,19],[224,17],[225,18],[226,17],[227,20],[228,18],[229,17],[234,21],[235,22],[236,23],[230,24],[220,25],[231,26],[218,26],[232,27],[240,28],[241,29],[253,30],[254,31],[249,32],[248,33],[38,34],[60,35],[259,11],[263,36],[261,37],[92,38],[142,39],[96,40],[97,41],[98,42],[99,43],[100,44],[101,45],[103,46],[104,47],[105,48],[106,48],[107,49],[108,50],[109,51],[110,52],[111,53],[143,54],[112,48],[113,55],[114,56],[116,57],[117,58],[118,59],[121,48],[122,60],[123,61],[124,62],[127,63],[128,64],[140,65],[130,64],[131,66],[132,67],[134,62],[136,68],[137,62],[265,48],[250,69],[272,70],[36,71],[275,72],[66,73],[233,74],[281,75],[283,76],[297,77],[296,78],[287,79],[288,80],[289,80],[290,79],[291,79],[292,79],[293,81],[286,82],[294,78],[295,83],[298,84],[301,85],[302,86],[244,87],[246,88],[245,87],[64,89],[47,90],[48,90],[49,91],[53,92],[44,93],[45,91],[50,90],[46,91],[51,90],[52,92],[54,94],[55,95],[56,96],[42,97],[41,92],[39,98],[40,99],[214,100],[164,101],[162,101],[189,102],[177,103],[157,104],[154,105],[190,106],[163,107],[165,108],[158,109],[153,110],[151,111],[159,112],[187,103],[188,103],[191,113],[192,103],[193,103],[194,103],[195,103],[196,103],[197,114],[198,115],[199,103],[155,103],[200,103],[201,103],[202,114],[203,103],[204,103],[205,116],[206,103],[207,113],[208,103],[156,103],[209,103],[210,103],[211,117],[160,118],[212,119],[166,120],[174,121],[169,121],[168,122],[167,123],[172,124],[176,125],[175,126],[170,127],[171,124],[173,128],[152,129],[181,114],[178,111],[252,130],[282,11],[69,131],[70,132],[67,133],[68,134],[73,135],[72,136],[71,12],[77,137],[76,138]],"exportedModulesMap":[[80,1],[75,2],[74,3],[83,4],[79,1],[81,5],[82,1],[86,6],[88,7],[87,8],[144,9],[146,10],[147,9],[149,11],[65,12],[237,13],[215,14],[217,15],[216,14],[219,16],[221,17],[222,18],[223,19],[224,17],[225,18],[226,17],[227,20],[228,18],[229,17],[234,21],[235,22],[236,23],[230,24],[220,25],[231,26],[218,26],[232,27],[240,28],[241,29],[253,30],[254,31],[249,32],[248,33],[38,34],[60,35],[259,11],[263,36],[261,37],[92,38],[142,39],[96,40],[97,41],[98,42],[99,43],[100,44],[101,45],[103,46],[104,47],[105,48],[106,48],[107,49],[108,50],[109,51],[110,52],[111,53],[143,54],[112,48],[113,55],[114,56],[116,57],[117,58],[118,59],[121,48],[122,60],[123,61],[124,62],[127,63],[128,64],[140,65],[130,64],[131,66],[132,67],[134,62],[136,68],[137,62],[265,48],[250,69],[272,70],[36,71],[275,72],[66,73],[233,74],[281,75],[283,76],[297,77],[296,78],[287,79],[288,80],[289,80],[290,79],[291,79],[292,79],[293,81],[286,82],[294,78],[295,83],[298,84],[301,85],[302,86],[244,87],[246,88],[245,87],[64,89],[47,90],[48,90],[49,91],[53,92],[44,93],[45,91],[50,90],[46,91],[51,90],[52,92],[54,94],[55,95],[56,96],[42,97],[41,92],[39,98],[40,99],[214,100],[164,101],[162,101],[189,102],[177,103],[157,104],[154,105],[190,106],[163,107],[165,108],[158,109],[153,110],[151,111],[159,112],[187,103],[188,103],[191,113],[192,103],[193,103],[194,103],[195,103],[196,103],[197,114],[198,115],[199,103],[155,103],[200,103],[201,103],[202,114],[203,103],[204,103],[205,116],[206,103],[207,113],[208,103],[156,103],[209,103],[210,103],[211,117],[160,118],[212,119],[166,120],[174,121],[169,121],[168,122],[167,123],[172,124],[176,125],[175,126],[170,127],[171,124],[173,128],[152,129],[181,114],[178,111],[252,130],[282,11],[69,131],[70,132],[67,133],[68,134],[73,135],[72,136],[71,12],[77,137],[76,138]],"semanticDiagnosticsPerFile":[80,78,63,58,75,74,83,79,81,82,84,86,88,87,85,89,90,91,144,37,146,147,149,65,150,237,215,217,216,219,221,222,223,224,225,226,227,228,229,234,235,236,230,220,231,218,232,238,239,240,241,253,254,249,248,247,255,256,257,258,38,57,60,259,145,260,262,263,261,141,92,94,142,95,96,97,98,99,100,101,102,103,104,105,106,107,108,93,138,109,110,111,143,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,140,130,131,132,133,134,135,139,136,137,264,265,266,267,268,59,250,269,270,34,271,272,32,36,273,274,35,275,276,277,66,278,279,233,281,148,283,299,297,296,287,288,289,290,291,292,293,286,294,295,285,298,284,300,301,302,33,61,242,244,246,245,243,64,62,47,48,49,53,44,45,50,46,51,52,54,55,56,42,41,39,40,43,214,164,162,189,177,157,154,190,163,165,158,153,151,213,159,187,188,191,192,193,194,195,196,197,198,199,155,200,201,202,203,204,205,206,207,208,156,209,210,211,160,212,166,174,169,168,167,172,176,175,170,171,173,161,152,182,183,184,186,185,180,181,179,178,280,252,251,1,7,11,10,3,12,13,14,15,16,17,18,19,4,5,23,20,21,22,24,25,26,6,27,28,29,30,2,31,9,8,282,69,70,67,68,73,72,71,77,76]},"version":"4.6.4"}
@@ -1,101 +0,0 @@
1
- import { Styled as BaseMapStyled } from "@opentripplanner/base-map";
2
- import coreUtils from "@opentripplanner/core-utils";
3
- import FromToLocationPicker from "@opentripplanner/from-to-location-picker";
4
- import flatten from "flat";
5
- import { FormattedMessage, useIntl } from "react-intl";
6
- import React from "react"; // Load the default messages.
7
- // @ts-expect-error why is this failing?
8
-
9
- import defaultEnglishMessages from "../i18n/en-US.yml"; // HACK: We should flatten the messages loaded above because
10
- // the YAML loaders behave differently between webpack and our version of jest:
11
- // - the yaml loader for webpack returns a nested object,
12
- // - the yaml loader for jest returns messages with flattened ids.
13
-
14
- var defaultMessages = flatten(defaultEnglishMessages);
15
-
16
- function makeDefaultGetStationName(intl) {
17
- return function defaultGetStationName(configCompanies, station) {
18
- var _station$networks;
19
-
20
- var stationNetworks = coreUtils.itinerary.getCompaniesLabelFromNetworks((station === null || station === void 0 ? void 0 : station.networks) || [], configCompanies) || (station === null || station === void 0 ? void 0 : (_station$networks = station.networks) === null || _station$networks === void 0 ? void 0 : _station$networks[0]);
21
- var stationName = station.name || station.id; // If the station name or id is a giant UUID (with more than 3 "-" characters)
22
- // best not to show that at all. The company name will still be shown.
23
-
24
- if ((stationName.match(/-/g) || []).length > 3) {
25
- stationName = null;
26
- }
27
-
28
- if (station.isFloatingBike) {
29
- stationName = intl.formatMessage({
30
- defaultMessage: defaultEnglishMessages["otpUi.VehicleRentalOverlay.floatingBike"],
31
- description: "Popup title for a free-floating bike",
32
- id: "otpUi.VehicleRentalOverlay.floatingBike"
33
- }, {
34
- name: stationName || stationNetworks
35
- });
36
- } else if (station.isFloatingCar) {
37
- stationName = intl.formatMessage({
38
- defaultMessage: defaultEnglishMessages["otpUi.VehicleRentalOverlay.floatingCar"],
39
- description: "Popup title for a free-floating car",
40
- id: "otpUi.VehicleRentalOverlay.floatingCar"
41
- }, {
42
- company: stationNetworks,
43
- name: stationName
44
- });
45
- } else if (station.isFloatingVehicle) {
46
- // assumes that all floating vehicles are E-scooters
47
- stationName = intl.formatMessage({
48
- defaultMessage: defaultEnglishMessages["otpUi.VehicleRentalOverlay.floatingEScooter"],
49
- description: "Popup title for a free-floating e-scooter",
50
- id: "otpUi.VehicleRentalOverlay.floatingEScooter"
51
- }, {
52
- name: stationName || stationNetworks
53
- });
54
- }
55
-
56
- return stationName;
57
- };
58
- }
59
-
60
- /**
61
- * Render some popup html for a station. This contains custom logic for
62
- * displaying rental vehicles in the TriMet MOD website that might not be
63
- * applicable to other regions.
64
- */
65
- var StationPopup = function StationPopup(props) {
66
- var intl = useIntl();
67
- var configCompanies = props.configCompanies,
68
- getStationName = props.getStationName,
69
- setLocation = props.setLocation,
70
- station = props.station;
71
- var stationIsHub = station.bikesAvailable !== undefined && !station.isFloatingBike;
72
- var getStationNameFunc = getStationName || makeDefaultGetStationName(intl);
73
- var stationName = getStationNameFunc(configCompanies, station);
74
- var location = {
75
- lat: station.y,
76
- lon: station.x,
77
- name: stationName
78
- };
79
- return /*#__PURE__*/React.createElement(BaseMapStyled.MapOverlayPopup, null, /*#__PURE__*/React.createElement(BaseMapStyled.PopupTitle, null, stationName), stationIsHub && /*#__PURE__*/React.createElement(BaseMapStyled.PopupRow, null, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(FormattedMessage, {
80
- defaultMessage: defaultMessages["otpUi.VehicleRentalOverlay.availableBikes"],
81
- description: "Label text for the number of bikes available",
82
- id: "otpUi.VehicleRentalOverlay.availableBikes",
83
- values: {
84
- value: station.bikesAvailable
85
- }
86
- })), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(FormattedMessage, {
87
- defaultMessage: defaultMessages["otpUi.VehicleRentalOverlay.availableDocks"],
88
- description: "Label text for the number of docks available",
89
- id: "otpUi.VehicleRentalOverlay.availableDocks",
90
- values: {
91
- value: station.spacesAvailable
92
- }
93
- }))), /*#__PURE__*/React.createElement(BaseMapStyled.PopupRow, null, /*#__PURE__*/React.createElement(FromToLocationPicker, {
94
- label: true,
95
- location: location,
96
- setLocation: setLocation
97
- })));
98
- };
99
-
100
- export default StationPopup;
101
- //# sourceMappingURL=StationPopup.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/StationPopup.tsx"],"names":["Styled","BaseMapStyled","coreUtils","FromToLocationPicker","flatten","FormattedMessage","useIntl","React","defaultEnglishMessages","defaultMessages","makeDefaultGetStationName","intl","defaultGetStationName","configCompanies","station","stationNetworks","itinerary","getCompaniesLabelFromNetworks","networks","stationName","name","id","match","length","isFloatingBike","formatMessage","defaultMessage","description","isFloatingCar","company","isFloatingVehicle","StationPopup","props","getStationName","setLocation","stationIsHub","bikesAvailable","undefined","getStationNameFunc","location","lat","y","lon","x","value","spacesAvailable"],"mappings":"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","sourcesContent":["import { Styled as BaseMapStyled } from \"@opentripplanner/base-map\";\nimport coreUtils from \"@opentripplanner/core-utils\";\nimport FromToLocationPicker from \"@opentripplanner/from-to-location-picker\";\nimport {\n Company,\n ConfiguredCompany,\n MapLocationActionArg,\n Station\n} from \"@opentripplanner/types\";\nimport flatten from \"flat\";\nimport { FormattedMessage, IntlShape, useIntl } from \"react-intl\";\nimport React from \"react\";\n\n// Load the default messages.\n// @ts-expect-error why is this failing?\nimport defaultEnglishMessages from \"../i18n/en-US.yml\";\n\n// HACK: We should flatten the messages loaded above because\n// the YAML loaders behave differently between webpack and our version of jest:\n// - the yaml loader for webpack returns a nested object,\n// - the yaml loader for jest returns messages with flattened ids.\nconst defaultMessages = flatten(defaultEnglishMessages);\n\nfunction makeDefaultGetStationName(intl: IntlShape) {\n return function defaultGetStationName(\n configCompanies: Company[],\n station: Station\n ) {\n const stationNetworks =\n coreUtils.itinerary.getCompaniesLabelFromNetworks(\n station?.networks || [],\n configCompanies\n ) || station?.networks?.[0];\n let stationName = station.name || station.id;\n // If the station name or id is a giant UUID (with more than 3 \"-\" characters)\n // best not to show that at all. The company name will still be shown.\n if ((stationName.match(/-/g) || []).length > 3) {\n stationName = null;\n }\n\n if (station.isFloatingBike) {\n stationName = intl.formatMessage(\n {\n defaultMessage:\n defaultEnglishMessages[\"otpUi.VehicleRentalOverlay.floatingBike\"],\n description: \"Popup title for a free-floating bike\",\n id: \"otpUi.VehicleRentalOverlay.floatingBike\"\n },\n { name: stationName || stationNetworks }\n );\n } else if (station.isFloatingCar) {\n stationName = intl.formatMessage(\n {\n defaultMessage:\n defaultEnglishMessages[\"otpUi.VehicleRentalOverlay.floatingCar\"],\n description: \"Popup title for a free-floating car\",\n id: \"otpUi.VehicleRentalOverlay.floatingCar\"\n },\n {\n company: stationNetworks,\n name: stationName\n }\n );\n } else if (station.isFloatingVehicle) {\n // assumes that all floating vehicles are E-scooters\n stationName = intl.formatMessage(\n {\n defaultMessage:\n defaultEnglishMessages[\n \"otpUi.VehicleRentalOverlay.floatingEScooter\"\n ],\n description: \"Popup title for a free-floating e-scooter\",\n id: \"otpUi.VehicleRentalOverlay.floatingEScooter\"\n },\n { name: stationName || stationNetworks }\n );\n }\n return stationName;\n };\n}\n\ntype Props = {\n configCompanies: ConfiguredCompany[];\n getStationName?: (configCompanies: Company[], station: Station) => string;\n setLocation: (arg: MapLocationActionArg) => void;\n station: Station;\n};\n/**\n * Render some popup html for a station. This contains custom logic for\n * displaying rental vehicles in the TriMet MOD website that might not be\n * applicable to other regions.\n */\nconst StationPopup = (props: Props): JSX.Element => {\n const intl = useIntl();\n const { configCompanies, getStationName, setLocation, station } = props;\n const stationIsHub =\n station.bikesAvailable !== undefined && !station.isFloatingBike;\n const getStationNameFunc = getStationName || makeDefaultGetStationName(intl);\n const stationName = getStationNameFunc(configCompanies, station);\n const location = {\n lat: station.y,\n lon: station.x,\n name: stationName\n };\n return (\n <BaseMapStyled.MapOverlayPopup>\n <BaseMapStyled.PopupTitle>{stationName}</BaseMapStyled.PopupTitle>\n\n {/* render dock info if it is available */}\n {stationIsHub && (\n <BaseMapStyled.PopupRow>\n <div>\n <FormattedMessage\n defaultMessage={\n defaultMessages[\"otpUi.VehicleRentalOverlay.availableBikes\"]\n }\n description=\"Label text for the number of bikes available\"\n id=\"otpUi.VehicleRentalOverlay.availableBikes\"\n values={{ value: station.bikesAvailable }}\n />\n </div>\n <div>\n <FormattedMessage\n defaultMessage={\n defaultMessages[\"otpUi.VehicleRentalOverlay.availableDocks\"]\n }\n description=\"Label text for the number of docks available\"\n id=\"otpUi.VehicleRentalOverlay.availableDocks\"\n values={{ value: station.spacesAvailable }}\n />\n </div>\n </BaseMapStyled.PopupRow>\n )}\n\n {/* Set as from/to toolbar */}\n <BaseMapStyled.PopupRow>\n <FromToLocationPicker\n label\n location={location}\n setLocation={setLocation}\n />\n </BaseMapStyled.PopupRow>\n </BaseMapStyled.MapOverlayPopup>\n );\n};\n\nexport default StationPopup;\n"],"file":"StationPopup.js"}
package/i18n/ar.yml DELETED
@@ -1 +0,0 @@
1
- {}
package/i18n/en-US.yml DELETED
@@ -1,17 +0,0 @@
1
- # Default messages for the VehicleRentalOverlay component.
2
- # To use from a react-intl application:
3
- # - merge the content of this file into the messages object
4
- # that has your other localized strings,
5
- # - flatten the ids, i.e. convert a structure such as
6
- # otpUi > VehicleRentalOverlay > availableBikes
7
- # into "otpUi.VehicleRentalOverlay.availableBikes".
8
- # - pass the resulting object to the messages prop of IntlProvider.
9
- #
10
-
11
- otpUi:
12
- VehicleRentalOverlay:
13
- availableBikes: "Available bikes: {value}"
14
- availableDocks: "Available docks: {value}"
15
- floatingBike: "Free-floating bike: {name}"
16
- floatingCar: "{company} {name}" # as in "CarCompany Veh1234a"
17
- floatingEScooter: "E-scooter: {name}"
package/i18n/es.yml DELETED
@@ -1,7 +0,0 @@
1
- otpUi:
2
- VehicleRentalOverlay:
3
- availableBikes: "Bicicletas disponibles: {value}"
4
- availableDocks: "Estaciones de carga disponibles: {value}"
5
- floatingBike: "Bicicleta flotante: {name}"
6
- floatingCar: "{company} {name}"
7
- floatingEScooter: "{company} E-scooter"
package/i18n/fr.yml DELETED
@@ -1,17 +0,0 @@
1
- # Default messages for the VehicleRentalOverlay component.
2
- # To use from a react-intl application:
3
- # - merge the content of this file into the messages object
4
- # that has your other localized strings,
5
- # - flatten the ids, i.e. convert a structure such as
6
- # otpUi > VehicleRentalOverlay > availableBikes
7
- # into "otpUi.VehicleRentalOverlay.availableBikes".
8
- # - pass the resulting object to the messages prop of IntlProvider.
9
- #
10
-
11
- otpUi:
12
- VehicleRentalOverlay:
13
- availableBikes: "Vélos disponibles : {value}"
14
- availableDocks: "Bornes disponibles : {value}"
15
- floatingBike: "Vélo flottant : {name}"
16
- floatingCar: "{company} {name}" # as in "CarCompany Veh1234a"
17
- floatingEScooter: "Trottinette {company}"
package/i18n/ko.yml DELETED
@@ -1,7 +0,0 @@
1
- otpUi:
2
- VehicleRentalOverlay:
3
- floatingEScooter: "{company} 전기 스쿠터"
4
- availableDocks: "사용 가능한 독: {value}"
5
- availableBikes: "사용 가능한 자전거: {value}"
6
- floatingCar: "{company} {name}"
7
- floatingBike: "프리 플로팅 자전거: {name}"
package/i18n/vi.yml DELETED
@@ -1,7 +0,0 @@
1
- otpUi:
2
- VehicleRentalOverlay:
3
- availableBikes: "Xe đạp có sẵn: {value}"
4
- availableDocks: "Đế sạc có sẵn: {value}"
5
- floatingBike: "Xe đạp nổi tự do: {name}"
6
- floatingCar: "{company} {name}"
7
- floatingEScooter: "{company} Xe tay ga điện"
package/i18n/zh_Hans.yml DELETED
@@ -1,7 +0,0 @@
1
- otpUi:
2
- VehicleRentalOverlay:
3
- availableBikes: "可用的自行车: {value}"
4
- availableDocks: "可用的充电座: {value}"
5
- floatingBike: "自由浮动的自行车: {name}"
6
- floatingCar: "{company} {name}"
7
- floatingEScooter: "{company} 电动滑板车"
@@ -1,16 +0,0 @@
1
- /// <reference types="react" />
2
- import { Company, ConfiguredCompany, MapLocationActionArg, Station } from "@opentripplanner/types";
3
- declare type Props = {
4
- configCompanies: ConfiguredCompany[];
5
- getStationName?: (configCompanies: Company[], station: Station) => string;
6
- setLocation: (arg: MapLocationActionArg) => void;
7
- station: Station;
8
- };
9
- /**
10
- * Render some popup html for a station. This contains custom logic for
11
- * displaying rental vehicles in the TriMet MOD website that might not be
12
- * applicable to other regions.
13
- */
14
- declare const StationPopup: (props: Props) => JSX.Element;
15
- export default StationPopup;
16
- //# sourceMappingURL=StationPopup.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StationPopup.d.ts","sourceRoot":"","sources":["../src/StationPopup.tsx"],"names":[],"mappings":";AAGA,OAAO,EACL,OAAO,EACP,iBAAiB,EACjB,oBAAoB,EACpB,OAAO,EACR,MAAM,wBAAwB,CAAC;AAyEhC,aAAK,KAAK,GAAG;IACX,eAAe,EAAE,iBAAiB,EAAE,CAAC;IACrC,cAAc,CAAC,EAAE,CAAC,eAAe,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,KAAK,MAAM,CAAC;IAC1E,WAAW,EAAE,CAAC,GAAG,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACjD,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AACF;;;;GAIG;AACH,QAAA,MAAM,YAAY,UAAW,KAAK,KAAG,WAoDpC,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -1,120 +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.default = void 0;
9
-
10
- var _baseMap = require("@opentripplanner/base-map");
11
-
12
- var _coreUtils = _interopRequireDefault(require("@opentripplanner/core-utils"));
13
-
14
- var _fromToLocationPicker = _interopRequireDefault(require("@opentripplanner/from-to-location-picker"));
15
-
16
- var _flat = _interopRequireDefault(require("flat"));
17
-
18
- var _reactIntl = require("react-intl");
19
-
20
- var _react = _interopRequireDefault(require("react"));
21
-
22
- var _enUS = _interopRequireDefault(require("../i18n/en-US.yml"));
23
-
24
- // Load the default messages.
25
- // @ts-expect-error why is this failing?
26
- // HACK: We should flatten the messages loaded above because
27
- // the YAML loaders behave differently between webpack and our version of jest:
28
- // - the yaml loader for webpack returns a nested object,
29
- // - the yaml loader for jest returns messages with flattened ids.
30
- const defaultMessages = (0, _flat.default)(_enUS.default);
31
-
32
- function makeDefaultGetStationName(intl) {
33
- return function defaultGetStationName(configCompanies, station) {
34
- var _station$networks;
35
-
36
- const stationNetworks = _coreUtils.default.itinerary.getCompaniesLabelFromNetworks((station === null || station === void 0 ? void 0 : station.networks) || [], configCompanies) || (station === null || station === void 0 ? void 0 : (_station$networks = station.networks) === null || _station$networks === void 0 ? void 0 : _station$networks[0]);
37
- let stationName = station.name || station.id; // If the station name or id is a giant UUID (with more than 3 "-" characters)
38
- // best not to show that at all. The company name will still be shown.
39
-
40
- if ((stationName.match(/-/g) || []).length > 3) {
41
- stationName = null;
42
- }
43
-
44
- if (station.isFloatingBike) {
45
- stationName = intl.formatMessage({
46
- defaultMessage: _enUS.default["otpUi.VehicleRentalOverlay.floatingBike"],
47
- description: "Popup title for a free-floating bike",
48
- id: "otpUi.VehicleRentalOverlay.floatingBike"
49
- }, {
50
- name: stationName || stationNetworks
51
- });
52
- } else if (station.isFloatingCar) {
53
- stationName = intl.formatMessage({
54
- defaultMessage: _enUS.default["otpUi.VehicleRentalOverlay.floatingCar"],
55
- description: "Popup title for a free-floating car",
56
- id: "otpUi.VehicleRentalOverlay.floatingCar"
57
- }, {
58
- company: stationNetworks,
59
- name: stationName
60
- });
61
- } else if (station.isFloatingVehicle) {
62
- // assumes that all floating vehicles are E-scooters
63
- stationName = intl.formatMessage({
64
- defaultMessage: _enUS.default["otpUi.VehicleRentalOverlay.floatingEScooter"],
65
- description: "Popup title for a free-floating e-scooter",
66
- id: "otpUi.VehicleRentalOverlay.floatingEScooter"
67
- }, {
68
- name: stationName || stationNetworks
69
- });
70
- }
71
-
72
- return stationName;
73
- };
74
- }
75
-
76
- /**
77
- * Render some popup html for a station. This contains custom logic for
78
- * displaying rental vehicles in the TriMet MOD website that might not be
79
- * applicable to other regions.
80
- */
81
- const StationPopup = props => {
82
- const intl = (0, _reactIntl.useIntl)();
83
- const {
84
- configCompanies,
85
- getStationName,
86
- setLocation,
87
- station
88
- } = props;
89
- const stationIsHub = station.bikesAvailable !== undefined && !station.isFloatingBike;
90
- const getStationNameFunc = getStationName || makeDefaultGetStationName(intl);
91
- const stationName = getStationNameFunc(configCompanies, station);
92
- const location = {
93
- lat: station.y,
94
- lon: station.x,
95
- name: stationName
96
- };
97
- return /*#__PURE__*/_react.default.createElement(_baseMap.Styled.MapOverlayPopup, null, /*#__PURE__*/_react.default.createElement(_baseMap.Styled.PopupTitle, null, stationName), stationIsHub && /*#__PURE__*/_react.default.createElement(_baseMap.Styled.PopupRow, null, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_reactIntl.FormattedMessage, {
98
- defaultMessage: defaultMessages["otpUi.VehicleRentalOverlay.availableBikes"],
99
- description: "Label text for the number of bikes available",
100
- id: "otpUi.VehicleRentalOverlay.availableBikes",
101
- values: {
102
- value: station.bikesAvailable
103
- }
104
- })), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_reactIntl.FormattedMessage, {
105
- defaultMessage: defaultMessages["otpUi.VehicleRentalOverlay.availableDocks"],
106
- description: "Label text for the number of docks available",
107
- id: "otpUi.VehicleRentalOverlay.availableDocks",
108
- values: {
109
- value: station.spacesAvailable
110
- }
111
- }))), /*#__PURE__*/_react.default.createElement(_baseMap.Styled.PopupRow, null, /*#__PURE__*/_react.default.createElement(_fromToLocationPicker.default, {
112
- label: true,
113
- location: location,
114
- setLocation: setLocation
115
- })));
116
- };
117
-
118
- var _default = StationPopup;
119
- exports.default = _default;
120
- //# sourceMappingURL=StationPopup.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/StationPopup.tsx"],"names":["defaultMessages","defaultEnglishMessages","makeDefaultGetStationName","intl","defaultGetStationName","configCompanies","station","stationNetworks","coreUtils","itinerary","getCompaniesLabelFromNetworks","networks","stationName","name","id","match","length","isFloatingBike","formatMessage","defaultMessage","description","isFloatingCar","company","isFloatingVehicle","StationPopup","props","getStationName","setLocation","stationIsHub","bikesAvailable","undefined","getStationNameFunc","location","lat","y","lon","x","value","spacesAvailable"],"mappings":"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","sourcesContent":["import { Styled as BaseMapStyled } from \"@opentripplanner/base-map\";\nimport coreUtils from \"@opentripplanner/core-utils\";\nimport FromToLocationPicker from \"@opentripplanner/from-to-location-picker\";\nimport {\n Company,\n ConfiguredCompany,\n MapLocationActionArg,\n Station\n} from \"@opentripplanner/types\";\nimport flatten from \"flat\";\nimport { FormattedMessage, IntlShape, useIntl } from \"react-intl\";\nimport React from \"react\";\n\n// Load the default messages.\n// @ts-expect-error why is this failing?\nimport defaultEnglishMessages from \"../i18n/en-US.yml\";\n\n// HACK: We should flatten the messages loaded above because\n// the YAML loaders behave differently between webpack and our version of jest:\n// - the yaml loader for webpack returns a nested object,\n// - the yaml loader for jest returns messages with flattened ids.\nconst defaultMessages = flatten(defaultEnglishMessages);\n\nfunction makeDefaultGetStationName(intl: IntlShape) {\n return function defaultGetStationName(\n configCompanies: Company[],\n station: Station\n ) {\n const stationNetworks =\n coreUtils.itinerary.getCompaniesLabelFromNetworks(\n station?.networks || [],\n configCompanies\n ) || station?.networks?.[0];\n let stationName = station.name || station.id;\n // If the station name or id is a giant UUID (with more than 3 \"-\" characters)\n // best not to show that at all. The company name will still be shown.\n if ((stationName.match(/-/g) || []).length > 3) {\n stationName = null;\n }\n\n if (station.isFloatingBike) {\n stationName = intl.formatMessage(\n {\n defaultMessage:\n defaultEnglishMessages[\"otpUi.VehicleRentalOverlay.floatingBike\"],\n description: \"Popup title for a free-floating bike\",\n id: \"otpUi.VehicleRentalOverlay.floatingBike\"\n },\n { name: stationName || stationNetworks }\n );\n } else if (station.isFloatingCar) {\n stationName = intl.formatMessage(\n {\n defaultMessage:\n defaultEnglishMessages[\"otpUi.VehicleRentalOverlay.floatingCar\"],\n description: \"Popup title for a free-floating car\",\n id: \"otpUi.VehicleRentalOverlay.floatingCar\"\n },\n {\n company: stationNetworks,\n name: stationName\n }\n );\n } else if (station.isFloatingVehicle) {\n // assumes that all floating vehicles are E-scooters\n stationName = intl.formatMessage(\n {\n defaultMessage:\n defaultEnglishMessages[\n \"otpUi.VehicleRentalOverlay.floatingEScooter\"\n ],\n description: \"Popup title for a free-floating e-scooter\",\n id: \"otpUi.VehicleRentalOverlay.floatingEScooter\"\n },\n { name: stationName || stationNetworks }\n );\n }\n return stationName;\n };\n}\n\ntype Props = {\n configCompanies: ConfiguredCompany[];\n getStationName?: (configCompanies: Company[], station: Station) => string;\n setLocation: (arg: MapLocationActionArg) => void;\n station: Station;\n};\n/**\n * Render some popup html for a station. This contains custom logic for\n * displaying rental vehicles in the TriMet MOD website that might not be\n * applicable to other regions.\n */\nconst StationPopup = (props: Props): JSX.Element => {\n const intl = useIntl();\n const { configCompanies, getStationName, setLocation, station } = props;\n const stationIsHub =\n station.bikesAvailable !== undefined && !station.isFloatingBike;\n const getStationNameFunc = getStationName || makeDefaultGetStationName(intl);\n const stationName = getStationNameFunc(configCompanies, station);\n const location = {\n lat: station.y,\n lon: station.x,\n name: stationName\n };\n return (\n <BaseMapStyled.MapOverlayPopup>\n <BaseMapStyled.PopupTitle>{stationName}</BaseMapStyled.PopupTitle>\n\n {/* render dock info if it is available */}\n {stationIsHub && (\n <BaseMapStyled.PopupRow>\n <div>\n <FormattedMessage\n defaultMessage={\n defaultMessages[\"otpUi.VehicleRentalOverlay.availableBikes\"]\n }\n description=\"Label text for the number of bikes available\"\n id=\"otpUi.VehicleRentalOverlay.availableBikes\"\n values={{ value: station.bikesAvailable }}\n />\n </div>\n <div>\n <FormattedMessage\n defaultMessage={\n defaultMessages[\"otpUi.VehicleRentalOverlay.availableDocks\"]\n }\n description=\"Label text for the number of docks available\"\n id=\"otpUi.VehicleRentalOverlay.availableDocks\"\n values={{ value: station.spacesAvailable }}\n />\n </div>\n </BaseMapStyled.PopupRow>\n )}\n\n {/* Set as from/to toolbar */}\n <BaseMapStyled.PopupRow>\n <FromToLocationPicker\n label\n location={location}\n setLocation={setLocation}\n />\n </BaseMapStyled.PopupRow>\n </BaseMapStyled.MapOverlayPopup>\n );\n};\n\nexport default StationPopup;\n"],"file":"StationPopup.js"}
@@ -1,147 +0,0 @@
1
- import { Styled as BaseMapStyled } from "@opentripplanner/base-map";
2
- import coreUtils from "@opentripplanner/core-utils";
3
- import FromToLocationPicker from "@opentripplanner/from-to-location-picker";
4
- import {
5
- Company,
6
- ConfiguredCompany,
7
- MapLocationActionArg,
8
- Station
9
- } from "@opentripplanner/types";
10
- import flatten from "flat";
11
- import { FormattedMessage, IntlShape, useIntl } from "react-intl";
12
- import React from "react";
13
-
14
- // Load the default messages.
15
- // @ts-expect-error why is this failing?
16
- import defaultEnglishMessages from "../i18n/en-US.yml";
17
-
18
- // HACK: We should flatten the messages loaded above because
19
- // the YAML loaders behave differently between webpack and our version of jest:
20
- // - the yaml loader for webpack returns a nested object,
21
- // - the yaml loader for jest returns messages with flattened ids.
22
- const defaultMessages = flatten(defaultEnglishMessages);
23
-
24
- function makeDefaultGetStationName(intl: IntlShape) {
25
- return function defaultGetStationName(
26
- configCompanies: Company[],
27
- station: Station
28
- ) {
29
- const stationNetworks =
30
- coreUtils.itinerary.getCompaniesLabelFromNetworks(
31
- station?.networks || [],
32
- configCompanies
33
- ) || station?.networks?.[0];
34
- let stationName = station.name || station.id;
35
- // If the station name or id is a giant UUID (with more than 3 "-" characters)
36
- // best not to show that at all. The company name will still be shown.
37
- if ((stationName.match(/-/g) || []).length > 3) {
38
- stationName = null;
39
- }
40
-
41
- if (station.isFloatingBike) {
42
- stationName = intl.formatMessage(
43
- {
44
- defaultMessage:
45
- defaultEnglishMessages["otpUi.VehicleRentalOverlay.floatingBike"],
46
- description: "Popup title for a free-floating bike",
47
- id: "otpUi.VehicleRentalOverlay.floatingBike"
48
- },
49
- { name: stationName || stationNetworks }
50
- );
51
- } else if (station.isFloatingCar) {
52
- stationName = intl.formatMessage(
53
- {
54
- defaultMessage:
55
- defaultEnglishMessages["otpUi.VehicleRentalOverlay.floatingCar"],
56
- description: "Popup title for a free-floating car",
57
- id: "otpUi.VehicleRentalOverlay.floatingCar"
58
- },
59
- {
60
- company: stationNetworks,
61
- name: stationName
62
- }
63
- );
64
- } else if (station.isFloatingVehicle) {
65
- // assumes that all floating vehicles are E-scooters
66
- stationName = intl.formatMessage(
67
- {
68
- defaultMessage:
69
- defaultEnglishMessages[
70
- "otpUi.VehicleRentalOverlay.floatingEScooter"
71
- ],
72
- description: "Popup title for a free-floating e-scooter",
73
- id: "otpUi.VehicleRentalOverlay.floatingEScooter"
74
- },
75
- { name: stationName || stationNetworks }
76
- );
77
- }
78
- return stationName;
79
- };
80
- }
81
-
82
- type Props = {
83
- configCompanies: ConfiguredCompany[];
84
- getStationName?: (configCompanies: Company[], station: Station) => string;
85
- setLocation: (arg: MapLocationActionArg) => void;
86
- station: Station;
87
- };
88
- /**
89
- * Render some popup html for a station. This contains custom logic for
90
- * displaying rental vehicles in the TriMet MOD website that might not be
91
- * applicable to other regions.
92
- */
93
- const StationPopup = (props: Props): JSX.Element => {
94
- const intl = useIntl();
95
- const { configCompanies, getStationName, setLocation, station } = props;
96
- const stationIsHub =
97
- station.bikesAvailable !== undefined && !station.isFloatingBike;
98
- const getStationNameFunc = getStationName || makeDefaultGetStationName(intl);
99
- const stationName = getStationNameFunc(configCompanies, station);
100
- const location = {
101
- lat: station.y,
102
- lon: station.x,
103
- name: stationName
104
- };
105
- return (
106
- <BaseMapStyled.MapOverlayPopup>
107
- <BaseMapStyled.PopupTitle>{stationName}</BaseMapStyled.PopupTitle>
108
-
109
- {/* render dock info if it is available */}
110
- {stationIsHub && (
111
- <BaseMapStyled.PopupRow>
112
- <div>
113
- <FormattedMessage
114
- defaultMessage={
115
- defaultMessages["otpUi.VehicleRentalOverlay.availableBikes"]
116
- }
117
- description="Label text for the number of bikes available"
118
- id="otpUi.VehicleRentalOverlay.availableBikes"
119
- values={{ value: station.bikesAvailable }}
120
- />
121
- </div>
122
- <div>
123
- <FormattedMessage
124
- defaultMessage={
125
- defaultMessages["otpUi.VehicleRentalOverlay.availableDocks"]
126
- }
127
- description="Label text for the number of docks available"
128
- id="otpUi.VehicleRentalOverlay.availableDocks"
129
- values={{ value: station.spacesAvailable }}
130
- />
131
- </div>
132
- </BaseMapStyled.PopupRow>
133
- )}
134
-
135
- {/* Set as from/to toolbar */}
136
- <BaseMapStyled.PopupRow>
137
- <FromToLocationPicker
138
- label
139
- location={location}
140
- setLocation={setLocation}
141
- />
142
- </BaseMapStyled.PopupRow>
143
- </BaseMapStyled.MapOverlayPopup>
144
- );
145
- };
146
-
147
- export default StationPopup;