@opentripplanner/map-popup 7.0.0 → 8.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/index.js +22 -14
- package/esm/index.js.map +1 -1
- package/esm/util.js +9 -8
- package/esm/util.js.map +1 -1
- package/i18n/en-US.yml +3 -1
- package/lib/index.d.ts +7 -5
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +92 -126
- package/lib/index.js.map +1 -1
- package/lib/styled.js +17 -10
- package/lib/styled.js.map +1 -1
- package/lib/util.d.ts +4 -3
- package/lib/util.d.ts.map +1 -1
- package/lib/util.js +58 -52
- package/lib/util.js.map +1 -1
- package/package.json +3 -3
- package/src/MapPopup.story.tsx +28 -35
- package/src/__snapshots__/MapPopup.story.tsx.snap +3 -3
- package/src/index.tsx +24 -20
- package/src/util.ts +27 -18
- package/tsconfig.tsbuildinfo +1 -1
package/esm/index.js
CHANGED
|
@@ -7,7 +7,8 @@ import { FocusTrapWrapper } from "@opentripplanner/building-blocks";
|
|
|
7
7
|
import { flatten } from "flat";
|
|
8
8
|
import { FormattedMessage, useIntl } from "react-intl";
|
|
9
9
|
import { Styled } from "@opentripplanner/base-map";
|
|
10
|
-
import
|
|
10
|
+
import coreUtils from "@opentripplanner/core-utils";
|
|
11
|
+
import { makeDefaultGetEntityName } from "./util";
|
|
11
12
|
import { ViewStopButton } from "./styled";
|
|
12
13
|
|
|
13
14
|
// Load the default messages.
|
|
@@ -34,31 +35,34 @@ var generateLocation = function generateLocation(entity, name) {
|
|
|
34
35
|
};
|
|
35
36
|
};
|
|
36
37
|
var StationHubDetails = function StationHubDetails(_ref) {
|
|
37
|
-
var
|
|
38
|
+
var availableVehicles = _ref.availableVehicles,
|
|
39
|
+
availableSpaces = _ref.availableSpaces;
|
|
38
40
|
return /*#__PURE__*/React.createElement(Styled.PopupRow, null, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(FormattedMessage, {
|
|
39
41
|
defaultMessage: defaultMessages["otpUi.MapPopup.availableBikes"],
|
|
40
42
|
description: "Label text for the number of bikes available",
|
|
41
43
|
id: "otpUi.MapPopup.availableBikes",
|
|
42
44
|
values: {
|
|
43
|
-
value:
|
|
45
|
+
value: availableVehicles
|
|
44
46
|
}
|
|
45
47
|
})), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(FormattedMessage, {
|
|
46
48
|
defaultMessage: defaultMessages["otpUi.MapPopup.availableDocks"],
|
|
47
49
|
description: "Label text for the number of docks available",
|
|
48
50
|
id: "otpUi.MapPopup.availableDocks",
|
|
49
51
|
values: {
|
|
50
|
-
value:
|
|
52
|
+
value: availableSpaces
|
|
51
53
|
}
|
|
52
54
|
})));
|
|
53
55
|
};
|
|
54
56
|
var StopDetails = function StopDetails(_ref2) {
|
|
55
57
|
var id = _ref2.id,
|
|
58
|
+
feedName = _ref2.feedName,
|
|
56
59
|
setViewedStop = _ref2.setViewedStop;
|
|
57
60
|
return /*#__PURE__*/React.createElement(Styled.PopupRow, null, id && /*#__PURE__*/React.createElement("strong", null, /*#__PURE__*/React.createElement(FormattedMessage, {
|
|
58
61
|
defaultMessage: defaultMessages["otpUi.MapPopup.stopId"],
|
|
59
62
|
description: "Displays the stop id",
|
|
60
63
|
id: "otpUi.MapPopup.stopId",
|
|
61
64
|
values: {
|
|
65
|
+
feedName: feedName,
|
|
62
66
|
stopId: id
|
|
63
67
|
}
|
|
64
68
|
})), /*#__PURE__*/React.createElement(ViewStopButton, {
|
|
@@ -70,14 +74,15 @@ var StopDetails = function StopDetails(_ref2) {
|
|
|
70
74
|
id: "otpUi.MapPopup.stopViewer"
|
|
71
75
|
})));
|
|
72
76
|
};
|
|
73
|
-
function
|
|
74
|
-
return "
|
|
75
|
-
}
|
|
77
|
+
var entityIsStop = function entityIsStop(entity) {
|
|
78
|
+
return "gtfsId" in entity;
|
|
79
|
+
};
|
|
76
80
|
|
|
77
81
|
/**
|
|
78
82
|
* Renders a map popup for a stop, scooter, or shared bike
|
|
79
83
|
*/
|
|
80
84
|
export function MapPopup(_ref3) {
|
|
85
|
+
var _entity$availableSpac, _entity$availableVehi;
|
|
81
86
|
var _ref3$closePopup = _ref3.closePopup,
|
|
82
87
|
closePopup = _ref3$closePopup === void 0 ? function () {} : _ref3$closePopup,
|
|
83
88
|
configCompanies = _ref3.configCompanies,
|
|
@@ -102,10 +107,11 @@ export function MapPopup(_ref3) {
|
|
|
102
107
|
feedName = feed === null || feed === void 0 || (_feed$publisher = feed.publisher) === null || _feed$publisher === void 0 ? void 0 : _feed$publisher.name;
|
|
103
108
|
}
|
|
104
109
|
var name = getNameFunc(entity, configCompanies, feedName);
|
|
105
|
-
var
|
|
106
|
-
var
|
|
107
|
-
var
|
|
108
|
-
var
|
|
110
|
+
var titleName = getNameFunc(entity, configCompanies, feedName, false);
|
|
111
|
+
var stationNetwork = "rentalNetwork" in entity && (coreUtils.itinerary.getCompaniesLabelFromNetworks(entity === null || entity === void 0 ? void 0 : entity.rentalNetwork.networkId, configCompanies) || (entity === null || entity === void 0 ? void 0 : entity.rentalNetwork.networkId));
|
|
112
|
+
var vehiclesAvailable = "availableVehicles" in entity;
|
|
113
|
+
var entityIsStationHub = vehiclesAvailable && (entity === null || entity === void 0 ? void 0 : entity.availableVehicles) !== undefined;
|
|
114
|
+
var stopId = entityIsStop(entity) ? entity.code : "";
|
|
109
115
|
var id = "focus-".concat(encodeURIComponent(entity.id).replace(/%/g, ""), "-popup");
|
|
110
116
|
return /*#__PURE__*/React.createElement(Styled.MapOverlayPopup, null, /*#__PURE__*/React.createElement(FocusTrapWrapper, {
|
|
111
117
|
closePopup: closePopup,
|
|
@@ -115,13 +121,15 @@ export function MapPopup(_ref3) {
|
|
|
115
121
|
description: "Text for title of the popup, contains an optional company name",
|
|
116
122
|
id: "otpUi.MapPopup.popupTitle",
|
|
117
123
|
values: {
|
|
118
|
-
name:
|
|
124
|
+
name: titleName,
|
|
119
125
|
stationNetwork: stationNetwork
|
|
120
126
|
}
|
|
121
127
|
})), entityIsStationHub && /*#__PURE__*/React.createElement(StationHubDetails, {
|
|
122
|
-
|
|
123
|
-
|
|
128
|
+
availableSpaces: (_entity$availableSpac = entity.availableSpaces) === null || _entity$availableSpac === void 0 ? void 0 : _entity$availableSpac.total,
|
|
129
|
+
availableVehicles: (_entity$availableVehi = entity.availableVehicles) === null || _entity$availableVehi === void 0 ? void 0 : _entity$availableVehi.total
|
|
130
|
+
}), setViewedStop && entityIsStop(entity) && /*#__PURE__*/React.createElement(StopDetails, {
|
|
124
131
|
id: stopId,
|
|
132
|
+
feedName: feedName,
|
|
125
133
|
setViewedStop: useCallback(function () {
|
|
126
134
|
return setViewedStop(entity);
|
|
127
135
|
}, [entity])
|
package/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","useCallback","FromToLocationPicker","FocusTrapWrapper","flatten","FormattedMessage","useIntl","Styled","getNetwork","makeDefaultGetEntityName","ViewStopButton","defaultEnglishMessages","defaultMessages","generateLocation","entity","name","entityLon","lon","entityLat","lat","x","y","StationHubDetails","_ref","station","createElement","PopupRow","defaultMessage","description","id","values","value","vehiclesAvailable","spacesAvailable","StopDetails","_ref2","setViewedStop","stopId","onClick","entityIsStation","MapPopup","_ref3","_ref3$closePopup","closePopup","configCompanies","getEntityName","getEntityPrefix","setLocation","feeds","intl","Fragment","getNameFunc","feedName","_feed$publisher","feedId","split","feed","find","f","publisher","stationNetwork","bikesAvailablePresent","entityIsStationHub","undefined","isFloatingBike","code","concat","encodeURIComponent","replace","MapOverlayPopup","PopupTitle","label","location"],"sources":["../src/index.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport FromToLocationPicker from \"@opentripplanner/from-to-location-picker\";\n\n// eslint-disable-next-line prettier/prettier\nimport type {\n Company,\n ConfiguredCompany,\n Location,\n Stop,\n StopEventHandler,\n TileLayerStation\n} from \"@opentripplanner/types\";\n\nimport { FocusTrapWrapper } from \"@opentripplanner/building-blocks\";\nimport { flatten } from \"flat\";\nimport { FormattedMessage, useIntl } from \"react-intl\";\nimport { Styled } from \"@opentripplanner/base-map\";\n\nimport { Entity, getNetwork, makeDefaultGetEntityName, type StopIdAgencyMap } from \"./util\";\nimport { ViewStopButton } from \"./styled\";\n\n// Load the default messages.\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.\nexport const defaultMessages: { [key: string]: string } = flatten(defaultEnglishMessages);\n\nexport type Feed = {\n feedId: string;\n publisher: {\n name: string;\n };\n};\n\n\nconst generateLocation = (entity: Entity, name: string) => {\n // @ts-expect-error some of these values may be null, but that's ok\n const { lon: entityLon, lat: entityLat, x, y } = entity\n\n const lat = entityLat || y\n const lon = entityLon || x\n if (!lat || !lon) return null\n\n return { lat, lon, name };\n}\n\nconst StationHubDetails = ({ station }: { station: TileLayerStation }) => {\n return (\n <Styled.PopupRow>\n <div>\n <FormattedMessage\n defaultMessage={\n defaultMessages[\"otpUi.MapPopup.availableBikes\"]\n }\n description=\"Label text for the number of bikes available\"\n id=\"otpUi.MapPopup.availableBikes\"\n values={{ value: station.vehiclesAvailable }}\n />\n </div>\n <div>\n <FormattedMessage\n defaultMessage={\n defaultMessages[\"otpUi.MapPopup.availableDocks\"]\n }\n description=\"Label text for the number of docks available\"\n id=\"otpUi.MapPopup.availableDocks\"\n values={{ value: station.spacesAvailable }}\n />\n </div>\n </Styled.PopupRow>\n )\n}\n\nconst StopDetails = ({ id, setViewedStop }: { id: string, setViewedStop: () => void; }) => {\n return (\n <Styled.PopupRow>\n {id &&\n <strong>\n <FormattedMessage\n defaultMessage={defaultMessages[\"otpUi.MapPopup.stopId\"]}\n description=\"Displays the stop id\"\n id=\"otpUi.MapPopup.stopId\"\n values={{\n stopId: id\n }}\n />\n </strong>}\n <ViewStopButton onClick={setViewedStop} stopId={id}> \n <FormattedMessage\n defaultMessage={defaultMessages[\"otpUi.MapPopup.stopViewer\"]}\n description=\"Text for link that opens the stop viewer\"\n id=\"otpUi.MapPopup.stopViewer\"\n />\n </ViewStopButton>\n </Styled.PopupRow>\n )\n}\n\ntype Props = {\n closePopup?: (arg?: boolean) => void\n configCompanies?: ConfiguredCompany[];\n entity: Entity\n getEntityName?: (entity: Entity, configCompanies: Company[], feedName?: string) => string;\n getEntityPrefix?: (entity: Entity) => JSX.Element\n feeds?: Feed[]\n setLocation?: ({ location, locationType }: { location: Location, locationType: string }) => void;\n setViewedStop?: StopEventHandler;\n};\n\nfunction entityIsStation(entity: Entity): entity is TileLayerStation {\n return \"vehiclesAvailable\" in entity\n}\n\n/**\n * Renders a map popup for a stop, scooter, or shared bike\n */\nexport function MapPopup({ \n closePopup = () => {}, \n configCompanies, \n entity, \n getEntityName, \n getEntityPrefix, \n setLocation, \n setViewedStop, \n feeds,\n}: Props): JSX.Element {\n\n const intl = useIntl()\n if (!entity) return <></>\n\n const getNameFunc = getEntityName || makeDefaultGetEntityName(intl, defaultMessages);\n \n // Find the feed name using the logic from generateLabel in otp.ts\n let feedName: string | undefined;\n if (feeds && entity.id) {\n const feedId = entity.id.split(\":\")[0];\n const feed = feeds.find(f => f.feedId === feedId);\n feedName = feed?.publisher?.name;\n }\n \n const name = getNameFunc(entity, configCompanies, feedName);\n\n const stationNetwork = getNetwork(entity, configCompanies);\n\n const bikesAvailablePresent = entityIsStation(entity)\n const entityIsStationHub = bikesAvailablePresent && entity.vehiclesAvailable !== undefined && !entity.isFloatingBike;\n const stopId = !bikesAvailablePresent && \"code\" in entity && entity.code;\n const id = `focus-${encodeURIComponent(entity.id).replace(/%/g, \"\")}-popup`\n\n return (\n <Styled.MapOverlayPopup>\n <FocusTrapWrapper closePopup={closePopup} id={id}>\n <Styled.PopupTitle>\n {getEntityPrefix && getEntityPrefix(entity)}\n <FormattedMessage\n defaultMessage={defaultMessages[\"otpUi.MapPopup.popupTitle\"]}\n description=\"Text for title of the popup, contains an optional company name\"\n id=\"otpUi.MapPopup.popupTitle\"\n values={{ name, stationNetwork }}\n />\n </Styled.PopupTitle>\n {/* render dock info if it is available */}\n {entityIsStationHub && <StationHubDetails station={entity} />}\n\n {/* render stop viewer link if available */}\n {setViewedStop && !bikesAvailablePresent && (\n <StopDetails\n id={stopId}\n setViewedStop={useCallback(() => setViewedStop(entity as Stop), [entity])}\n />\n )}\n\n {/* The \"Set as [from/to]\" ButtonGroup */}\n {setLocation && (\n <Styled.PopupRow>\n <FromToLocationPicker\n label\n location={generateLocation(entity, name)}\n setLocation={setLocation}\n />\n </Styled.PopupRow>\n )}\n </FocusTrapWrapper>\n \n </Styled.MapOverlayPopup>\n );\n}\n\nexport default MapPopup;\nexport { type StopIdAgencyMap };"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","useCallback","FromToLocationPicker","FocusTrapWrapper","flatten","FormattedMessage","useIntl","Styled","coreUtils","makeDefaultGetEntityName","ViewStopButton","defaultEnglishMessages","defaultMessages","generateLocation","entity","name","entityLon","lon","entityLat","lat","x","y","StationHubDetails","_ref","availableVehicles","availableSpaces","createElement","PopupRow","defaultMessage","description","id","values","value","StopDetails","_ref2","feedName","setViewedStop","stopId","onClick","entityIsStop","MapPopup","_ref3","_entity$availableSpac","_entity$availableVehi","_ref3$closePopup","closePopup","configCompanies","getEntityName","getEntityPrefix","setLocation","feeds","intl","Fragment","getNameFunc","_feed$publisher","feedId","split","feed","find","f","publisher","titleName","stationNetwork","itinerary","getCompaniesLabelFromNetworks","rentalNetwork","networkId","vehiclesAvailable","entityIsStationHub","undefined","code","concat","encodeURIComponent","replace","MapOverlayPopup","PopupTitle","total","label","location"],"sources":["../src/index.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport FromToLocationPicker from \"@opentripplanner/from-to-location-picker\";\n\nimport { RentalVehicle, VehicleRentalStation } from \"@opentripplanner/types/otp2\";\n// eslint-disable-next-line prettier/prettier\nimport type {\n Company,\n ConfiguredCompany,\n Location,\n Stop,\n StopEventHandler,\n} from \"@opentripplanner/types\";\n\nimport { FocusTrapWrapper } from \"@opentripplanner/building-blocks\";\nimport { flatten } from \"flat\";\nimport { FormattedMessage, useIntl } from \"react-intl\";\nimport { Styled } from \"@opentripplanner/base-map\";\nimport coreUtils from \"@opentripplanner/core-utils\";\n\nimport { makeDefaultGetEntityName, type StopIdAgencyMap } from \"./util\";\nimport { ViewStopButton } from \"./styled\";\n\n// Load the default messages.\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.\nexport const defaultMessages: { [key: string]: string } = flatten(defaultEnglishMessages);\n\nexport type Feed = {\n feedId: string;\n publisher: {\n name: string;\n };\n};\n\n\nconst generateLocation = (entity: MapPopupEntity, name: string) => {\n // @ts-expect-error some of these values may be null, but that's ok\n const { lon: entityLon, lat: entityLat, x, y } = entity\n\n const lat = entityLat || y\n const lon = entityLon || x\n if (!lat || !lon) return null\n\n return { lat, lon, name };\n}\n\nconst StationHubDetails = ({ availableVehicles, availableSpaces }: { availableVehicles: number, availableSpaces: number }) => {\n return (\n <Styled.PopupRow>\n <div>\n <FormattedMessage\n defaultMessage={\n defaultMessages[\"otpUi.MapPopup.availableBikes\"]\n }\n description=\"Label text for the number of bikes available\"\n id=\"otpUi.MapPopup.availableBikes\"\n values={{ value: availableVehicles }}\n />\n </div>\n <div>\n <FormattedMessage\n defaultMessage={\n defaultMessages[\"otpUi.MapPopup.availableDocks\"]\n }\n description=\"Label text for the number of docks available\"\n id=\"otpUi.MapPopup.availableDocks\"\n values={{ value: availableSpaces }}\n />\n </div>\n </Styled.PopupRow>\n )\n}\n\nconst StopDetails = ({ id, feedName, setViewedStop }: { id: string, feedName?: string, setViewedStop: () => void; }) => {\n return (\n <Styled.PopupRow>\n {id &&\n <strong>\n <FormattedMessage\n defaultMessage={defaultMessages[\"otpUi.MapPopup.stopId\"]}\n description=\"Displays the stop id\"\n id=\"otpUi.MapPopup.stopId\"\n values={{\n feedName,\n stopId: id\n }}\n />\n </strong>}\n <ViewStopButton onClick={setViewedStop} stopId={id}> \n <FormattedMessage\n defaultMessage={defaultMessages[\"otpUi.MapPopup.stopViewer\"]}\n description=\"Text for link that opens the stop viewer\"\n id=\"otpUi.MapPopup.stopViewer\"\n />\n </ViewStopButton>\n </Styled.PopupRow>\n )\n}\n\ntype MapPopupEntity = Stop | VehicleRentalStation | RentalVehicle\n\ntype Props = {\n closePopup?: (arg?: boolean) => void\n configCompanies?: ConfiguredCompany[];\n entity: MapPopupEntity\n getEntityName?: (entity: MapPopupEntity, configCompanies: Company[], feedName?: string, includeParenthetical?: boolean) => string;\n getEntityPrefix?: (entity: MapPopupEntity) => JSX.Element\n feeds?: Feed[]\n setLocation?: ({ location, locationType }: { location: Location, locationType: string }) => void;\n setViewedStop?: StopEventHandler;\n};\n\nconst entityIsStop = (entity: MapPopupEntity): entity is Stop => \"gtfsId\" in entity;\n\n/**\n * Renders a map popup for a stop, scooter, or shared bike\n */\nexport function MapPopup({ \n closePopup = () => {}, \n configCompanies, \n entity, \n getEntityName, \n getEntityPrefix, \n setLocation, \n setViewedStop, \n feeds,\n}: Props): JSX.Element {\n\n const intl = useIntl()\n if (!entity) return <></>\n\n const getNameFunc = getEntityName || makeDefaultGetEntityName(intl, defaultMessages);\n \n // Find the feed name using the logic from generateLabel in otp.ts\n let feedName: string | undefined;\n if (feeds && entity.id) {\n const feedId = entity.id.split(\":\")[0];\n const feed = feeds.find(f => f.feedId === feedId);\n feedName = feed?.publisher?.name;\n }\n \n const name = getNameFunc(entity, configCompanies, feedName);\n const titleName = getNameFunc(entity, configCompanies, feedName, false);\n\n const stationNetwork = \"rentalNetwork\" in entity && (coreUtils.itinerary.getCompaniesLabelFromNetworks(entity?.rentalNetwork.networkId, configCompanies) || entity?.rentalNetwork.networkId);\n\n const vehiclesAvailable = \"availableVehicles\" in entity;\n const entityIsStationHub = vehiclesAvailable && entity?.availableVehicles !== undefined;\n const stopId = entityIsStop(entity) ? entity.code : \"\";\n const id = `focus-${encodeURIComponent(entity.id).replace(/%/g, \"\")}-popup`\n\n return (\n <Styled.MapOverlayPopup>\n <FocusTrapWrapper closePopup={closePopup} id={id}>\n <Styled.PopupTitle>\n {getEntityPrefix && getEntityPrefix(entity)}\n <FormattedMessage\n defaultMessage={defaultMessages[\"otpUi.MapPopup.popupTitle\"]}\n description=\"Text for title of the popup, contains an optional company name\"\n id=\"otpUi.MapPopup.popupTitle\"\n values={{ name: titleName, stationNetwork }}\n />\n </Styled.PopupTitle>\n {/* render dock info if it is available */}\n {entityIsStationHub && <StationHubDetails availableSpaces={entity.availableSpaces?.total} availableVehicles={entity.availableVehicles?.total} />}\n\n {/* render stop viewer link if available */}\n {setViewedStop && entityIsStop(entity) && (\n <StopDetails\n id={stopId}\n feedName={feedName}\n setViewedStop={useCallback(() => setViewedStop(entity as Stop), [entity])}\n />\n )}\n\n {/* The \"Set as [from/to]\" ButtonGroup */}\n {setLocation && (\n <Styled.PopupRow>\n <FromToLocationPicker\n label\n location={generateLocation(entity, name)}\n setLocation={setLocation}\n />\n </Styled.PopupRow>\n )}\n </FocusTrapWrapper>\n \n </Styled.MapOverlayPopup>\n );\n}\n\nexport default MapPopup;\nexport { type StopIdAgencyMap };"],"mappings":"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","ignoreList":[]}
|
package/esm/util.js
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import coreUtils from "@opentripplanner/core-utils";
|
|
2
2
|
export function getNetwork(entity, configCompanies) {
|
|
3
|
-
return "
|
|
3
|
+
return "rentalNetwork" in entity && (coreUtils.itinerary.getCompaniesLabelFromNetworks(entity.rentalNetwork.networkId, configCompanies) || entity.rentalNetwork.networkId);
|
|
4
4
|
}
|
|
5
5
|
|
|
6
6
|
// eslint-disable-next-line import/prefer-default-export
|
|
7
7
|
export function makeDefaultGetEntityName(intl, defaultEnglishMessages) {
|
|
8
8
|
return function defaultGetEntityName(entity, configCompanies, feedName) {
|
|
9
|
+
var _entity$vehicleType, _entity$vehicleType2, _entity$vehicleType3;
|
|
10
|
+
var includeParenthetical = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
|
|
9
11
|
var stationName = entity.name || entity.id;
|
|
10
12
|
// If the station name or id is a giant UUID (with more than 3 "-" characters)
|
|
11
13
|
// best not to show that at all. The company name will still be shown.
|
|
@@ -13,7 +15,7 @@ export function makeDefaultGetEntityName(intl, defaultEnglishMessages) {
|
|
|
13
15
|
if ((stationName.match(/-/g) || []).length > 3 || stationName === "Default vehicle type") {
|
|
14
16
|
stationName = null;
|
|
15
17
|
}
|
|
16
|
-
if ("
|
|
18
|
+
if ("vehicleType" in entity && !("availableVehicles" in entity) && ((_entity$vehicleType = entity.vehicleType) === null || _entity$vehicleType === void 0 ? void 0 : _entity$vehicleType.formFactor) === "BICYCLE") {
|
|
17
19
|
stationName = intl.formatMessage({
|
|
18
20
|
defaultMessage: defaultEnglishMessages["otpUi.MapPopup.floatingBike"],
|
|
19
21
|
description: "Popup title for a free-floating bike",
|
|
@@ -21,20 +23,19 @@ export function makeDefaultGetEntityName(intl, defaultEnglishMessages) {
|
|
|
21
23
|
}, {
|
|
22
24
|
name: stationName
|
|
23
25
|
});
|
|
24
|
-
} else if ("
|
|
26
|
+
} else if ("vehicleType" in entity && ((_entity$vehicleType2 = entity.vehicleType) === null || _entity$vehicleType2 === void 0 ? void 0 : _entity$vehicleType2.formFactor) === "CAR") {
|
|
25
27
|
// TODO: Stop generating this / passing it to the car string? Is it needed?
|
|
26
28
|
// In English we say "Car: " instead
|
|
27
|
-
var
|
|
29
|
+
var network = getNetwork(entity, configCompanies);
|
|
28
30
|
stationName = intl.formatMessage({
|
|
29
31
|
defaultMessage: defaultEnglishMessages["otpUi.MapPopup.floatingCar"],
|
|
30
32
|
description: "Popup title for a free-floating car",
|
|
31
33
|
id: "otpUi.MapPopup.floatingCar"
|
|
32
34
|
}, {
|
|
33
|
-
company:
|
|
35
|
+
company: network,
|
|
34
36
|
name: stationName
|
|
35
37
|
});
|
|
36
|
-
} else if ("
|
|
37
|
-
// assumes that all floating vehicles are E-scooters
|
|
38
|
+
} else if ("vehicleType" in entity && !("availableVehicles" in entity) && (_entity$vehicleType3 = entity.vehicleType) !== null && _entity$vehicleType3 !== void 0 && _entity$vehicleType3.formFactor.startsWith("SCOOTER")) {
|
|
38
39
|
stationName = intl.formatMessage({
|
|
39
40
|
defaultMessage: defaultEnglishMessages["otpUi.MapPopup.floatingEScooter"],
|
|
40
41
|
description: "Popup title for a free-floating e-scooter",
|
|
@@ -42,7 +43,7 @@ export function makeDefaultGetEntityName(intl, defaultEnglishMessages) {
|
|
|
42
43
|
}, {
|
|
43
44
|
name: stationName
|
|
44
45
|
});
|
|
45
|
-
} else if (feedName && "code" in entity) {
|
|
46
|
+
} else if (includeParenthetical && feedName && "code" in entity) {
|
|
46
47
|
stationName = "".concat(stationName, " (").concat(feedName, " ").concat(entity.code, ")");
|
|
47
48
|
}
|
|
48
49
|
return stationName;
|
package/esm/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","names":["coreUtils","getNetwork","entity","configCompanies","itinerary","getCompaniesLabelFromNetworks","
|
|
1
|
+
{"version":3,"file":"util.js","names":["coreUtils","getNetwork","entity","configCompanies","itinerary","getCompaniesLabelFromNetworks","rentalNetwork","networkId","makeDefaultGetEntityName","intl","defaultEnglishMessages","defaultGetEntityName","feedName","_entity$vehicleType","_entity$vehicleType2","_entity$vehicleType3","includeParenthetical","arguments","length","undefined","stationName","name","id","match","vehicleType","formFactor","formatMessage","defaultMessage","description","network","company","startsWith","concat","code"],"sources":["../src/util.ts"],"sourcesContent":["import {\n RentalVehicle,\n VehicleRentalStation\n} from \"@opentripplanner/types/otp2\";\nimport { Agency, Company, Stop } from \"@opentripplanner/types\";\nimport { IntlShape } from \"react-intl\";\nimport coreUtils from \"@opentripplanner/core-utils\";\n\nexport type StopIdAgencyMap = Record<string, Agency>;\nexport type Entity = VehicleRentalStation | Stop | RentalVehicle;\n\nexport function getNetwork(entity: Entity, configCompanies: Company[]): string {\n return (\n \"rentalNetwork\" in entity &&\n (coreUtils.itinerary.getCompaniesLabelFromNetworks(\n entity.rentalNetwork.networkId,\n configCompanies\n ) ||\n entity.rentalNetwork.networkId)\n );\n}\n\n// eslint-disable-next-line import/prefer-default-export\nexport function makeDefaultGetEntityName(\n intl: IntlShape,\n defaultEnglishMessages: { [key: string]: string }\n) {\n return function defaultGetEntityName(\n entity: Entity,\n configCompanies: Company[],\n feedName?: string,\n includeParenthetical = true\n ): string | null {\n let stationName: string | null = entity.name || entity.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 // Also ignore \"Default Vehicle Type\"\n if (\n (stationName.match(/-/g) || []).length > 3 ||\n stationName === \"Default vehicle type\"\n ) {\n stationName = null;\n }\n\n if (\n \"vehicleType\" in entity &&\n !(\"availableVehicles\" in entity) &&\n entity.vehicleType?.formFactor === \"BICYCLE\"\n ) {\n stationName = intl.formatMessage(\n {\n defaultMessage: defaultEnglishMessages[\"otpUi.MapPopup.floatingBike\"],\n description: \"Popup title for a free-floating bike\",\n id: \"otpUi.MapPopup.floatingBike\"\n },\n { name: stationName }\n );\n } else if (\n \"vehicleType\" in entity &&\n entity.vehicleType?.formFactor === \"CAR\"\n ) {\n // TODO: Stop generating this / passing it to the car string? Is it needed?\n // In English we say \"Car: \" instead\n const network = getNetwork(entity, configCompanies);\n stationName = intl.formatMessage(\n {\n defaultMessage: defaultEnglishMessages[\"otpUi.MapPopup.floatingCar\"],\n description: \"Popup title for a free-floating car\",\n id: \"otpUi.MapPopup.floatingCar\"\n },\n {\n company: network,\n name: stationName\n }\n );\n } else if (\n \"vehicleType\" in entity &&\n !(\"availableVehicles\" in entity) &&\n entity.vehicleType?.formFactor.startsWith(\"SCOOTER\")\n ) {\n stationName = intl.formatMessage(\n {\n defaultMessage:\n defaultEnglishMessages[\"otpUi.MapPopup.floatingEScooter\"],\n description: \"Popup title for a free-floating e-scooter\",\n id: \"otpUi.MapPopup.floatingEScooter\"\n },\n { name: stationName }\n );\n } else if (includeParenthetical && feedName && \"code\" in entity) {\n stationName = `${stationName} (${feedName} ${entity.code})`;\n }\n return stationName;\n };\n}\n"],"mappings":"AAMA,OAAOA,SAAS,MAAM,6BAA6B;AAKnD,OAAO,SAASC,UAAUA,CAACC,MAAc,EAAEC,eAA0B,EAAU;EAC7E,OACE,eAAe,IAAID,MAAM,KACxBF,SAAS,CAACI,SAAS,CAACC,6BAA6B,CAChDH,MAAM,CAACI,aAAa,CAACC,SAAS,EAC9BJ,eACF,CAAC,IACCD,MAAM,CAACI,aAAa,CAACC,SAAS,CAAC;AAErC;;AAEA;AACA,OAAO,SAASC,wBAAwBA,CACtCC,IAAe,EACfC,sBAAiD,EACjD;EACA,OAAO,SAASC,oBAAoBA,CAClCT,MAAc,EACdC,eAA0B,EAC1BS,QAAiB,EAEF;IAAA,IAAAC,mBAAA,EAAAC,oBAAA,EAAAC,oBAAA;IAAA,IADfC,oBAAoB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;IAE3B,IAAIG,WAA0B,GAAGlB,MAAM,CAACmB,IAAI,IAAInB,MAAM,CAACoB,EAAE;IACzD;IACA;IACA;IACA,IACE,CAACF,WAAW,CAACG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,EAAEL,MAAM,GAAG,CAAC,IAC1CE,WAAW,KAAK,sBAAsB,EACtC;MACAA,WAAW,GAAG,IAAI;IACpB;IAEA,IACE,aAAa,IAAIlB,MAAM,IACvB,EAAE,mBAAmB,IAAIA,MAAM,CAAC,IAChC,EAAAW,mBAAA,GAAAX,MAAM,CAACsB,WAAW,cAAAX,mBAAA,uBAAlBA,mBAAA,CAAoBY,UAAU,MAAK,SAAS,EAC5C;MACAL,WAAW,GAAGX,IAAI,CAACiB,aAAa,CAC9B;QACEC,cAAc,EAAEjB,sBAAsB,CAAC,6BAA6B,CAAC;QACrEkB,WAAW,EAAE,sCAAsC;QACnDN,EAAE,EAAE;MACN,CAAC,EACD;QAAED,IAAI,EAAED;MAAY,CACtB,CAAC;IACH,CAAC,MAAM,IACL,aAAa,IAAIlB,MAAM,IACvB,EAAAY,oBAAA,GAAAZ,MAAM,CAACsB,WAAW,cAAAV,oBAAA,uBAAlBA,oBAAA,CAAoBW,UAAU,MAAK,KAAK,EACxC;MACA;MACA;MACA,IAAMI,OAAO,GAAG5B,UAAU,CAACC,MAAM,EAAEC,eAAe,CAAC;MACnDiB,WAAW,GAAGX,IAAI,CAACiB,aAAa,CAC9B;QACEC,cAAc,EAAEjB,sBAAsB,CAAC,4BAA4B,CAAC;QACpEkB,WAAW,EAAE,qCAAqC;QAClDN,EAAE,EAAE;MACN,CAAC,EACD;QACEQ,OAAO,EAAED,OAAO;QAChBR,IAAI,EAAED;MACR,CACF,CAAC;IACH,CAAC,MAAM,IACL,aAAa,IAAIlB,MAAM,IACvB,EAAE,mBAAmB,IAAIA,MAAM,CAAC,KAAAa,oBAAA,GAChCb,MAAM,CAACsB,WAAW,cAAAT,oBAAA,eAAlBA,oBAAA,CAAoBU,UAAU,CAACM,UAAU,CAAC,SAAS,CAAC,EACpD;MACAX,WAAW,GAAGX,IAAI,CAACiB,aAAa,CAC9B;QACEC,cAAc,EACZjB,sBAAsB,CAAC,iCAAiC,CAAC;QAC3DkB,WAAW,EAAE,2CAA2C;QACxDN,EAAE,EAAE;MACN,CAAC,EACD;QAAED,IAAI,EAAED;MAAY,CACtB,CAAC;IACH,CAAC,MAAM,IAAIJ,oBAAoB,IAAIJ,QAAQ,IAAI,MAAM,IAAIV,MAAM,EAAE;MAC/DkB,WAAW,MAAAY,MAAA,CAAMZ,WAAW,QAAAY,MAAA,CAAKpB,QAAQ,OAAAoB,MAAA,CAAI9B,MAAM,CAAC+B,IAAI,MAAG;IAC7D;IACA,OAAOb,WAAW;EACpB,CAAC;AACH","ignoreList":[]}
|
package/i18n/en-US.yml
CHANGED
|
@@ -6,5 +6,7 @@ otpUi:
|
|
|
6
6
|
floatingCar: "Car: {name}"
|
|
7
7
|
floatingEScooter: "E-scooter: {name}"
|
|
8
8
|
popupTitle: "{stationNetwork, select, false {{name}} other {{stationNetwork} {name}}}"
|
|
9
|
-
stopId:
|
|
9
|
+
stopId: >-
|
|
10
|
+
{feedName, select, undefined {Stop ID: {stopId}} other {Stop ID:
|
|
11
|
+
{feedName} {stopId}}}
|
|
10
12
|
stopViewer: Stop Viewer
|
package/lib/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
2
|
+
import { RentalVehicle, VehicleRentalStation } from "@opentripplanner/types/otp2";
|
|
3
|
+
import type { Company, ConfiguredCompany, Location, Stop, StopEventHandler } from "@opentripplanner/types";
|
|
4
|
+
import { type StopIdAgencyMap } from "./util";
|
|
4
5
|
export declare const defaultMessages: {
|
|
5
6
|
[key: string]: string;
|
|
6
7
|
};
|
|
@@ -10,12 +11,13 @@ export type Feed = {
|
|
|
10
11
|
name: string;
|
|
11
12
|
};
|
|
12
13
|
};
|
|
14
|
+
type MapPopupEntity = Stop | VehicleRentalStation | RentalVehicle;
|
|
13
15
|
type Props = {
|
|
14
16
|
closePopup?: (arg?: boolean) => void;
|
|
15
17
|
configCompanies?: ConfiguredCompany[];
|
|
16
|
-
entity:
|
|
17
|
-
getEntityName?: (entity:
|
|
18
|
-
getEntityPrefix?: (entity:
|
|
18
|
+
entity: MapPopupEntity;
|
|
19
|
+
getEntityName?: (entity: MapPopupEntity, configCompanies: Company[], feedName?: string, includeParenthetical?: boolean) => string;
|
|
20
|
+
getEntityPrefix?: (entity: MapPopupEntity) => JSX.Element;
|
|
19
21
|
feeds?: Feed[];
|
|
20
22
|
setLocation?: ({ location, locationType }: {
|
|
21
23
|
location: Location;
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAElF,OAAO,KAAK,EACV,OAAO,EACP,iBAAiB,EACjB,QAAQ,EACR,IAAI,EACJ,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AAQhC,OAAO,EAA4B,KAAK,eAAe,EAAE,MAAM,QAAQ,CAAC;AAUxE,eAAO,MAAM,eAAe,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAoC,CAAC;AAE1F,MAAM,MAAM,IAAI,GAAG;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE;QACT,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH,CAAC;AAmEF,KAAK,cAAc,GAAG,IAAI,GAAG,oBAAoB,GAAG,aAAa,CAAA;AAEjE,KAAK,KAAK,GAAG;IACX,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;IACpC,eAAe,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACtC,MAAM,EAAE,cAAc,CAAA;IACtB,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,OAAO,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,oBAAoB,CAAC,EAAE,OAAO,KAAK,MAAM,CAAC;IAClI,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,GAAG,CAAC,OAAO,CAAA;IACzD,KAAK,CAAC,EAAE,IAAI,EAAE,CAAA;IACd,WAAW,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACjG,aAAa,CAAC,EAAE,gBAAgB,CAAC;CAClC,CAAC;AAIF;;GAEG;AACH,wBAAgB,QAAQ,CAAC,EACvB,UAAqB,EACrB,eAAe,EACf,MAAM,EACN,aAAa,EACb,eAAe,EACf,WAAW,EACX,aAAa,EACb,KAAK,GACN,EAAE,KAAK,GAAG,GAAG,CAAC,OAAO,CA+DrB;AAED,eAAe,QAAQ,CAAC;AACxB,OAAO,EAAE,KAAK,eAAe,EAAE,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -1,143 +1,109 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
Object.
|
|
5
|
-
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
6
17
|
});
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
var
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.MapPopup = exports.defaultMessages = void 0;
|
|
30
|
+
const react_1 = __importStar(require("react"));
|
|
31
|
+
const from_to_location_picker_1 = __importDefault(require("@opentripplanner/from-to-location-picker"));
|
|
32
|
+
const building_blocks_1 = require("@opentripplanner/building-blocks");
|
|
33
|
+
const flat_1 = require("flat");
|
|
34
|
+
const react_intl_1 = require("react-intl");
|
|
35
|
+
const base_map_1 = require("@opentripplanner/base-map");
|
|
36
|
+
const core_utils_1 = __importDefault(require("@opentripplanner/core-utils"));
|
|
37
|
+
const util_1 = require("./util");
|
|
38
|
+
const styled_1 = require("./styled");
|
|
22
39
|
// Load the default messages.
|
|
23
|
-
|
|
40
|
+
const en_US_yml_1 = __importDefault(require("../i18n/en-US.yml"));
|
|
24
41
|
// HACK: We should flatten the messages loaded above because
|
|
25
42
|
// the YAML loaders behave differently between webpack and our version of jest:
|
|
26
43
|
// - the yaml loader for webpack returns a nested object,
|
|
27
44
|
// - the yaml loader for jest returns messages with flattened ids.
|
|
28
|
-
|
|
45
|
+
exports.defaultMessages = (0, flat_1.flatten)(en_US_yml_1.default);
|
|
29
46
|
const generateLocation = (entity, name) => {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
const lat = entityLat || y;
|
|
38
|
-
const lon = entityLon || x;
|
|
39
|
-
if (!lat || !lon) return null;
|
|
40
|
-
return {
|
|
41
|
-
lat,
|
|
42
|
-
lon,
|
|
43
|
-
name
|
|
44
|
-
};
|
|
47
|
+
// @ts-expect-error some of these values may be null, but that's ok
|
|
48
|
+
const { lon: entityLon, lat: entityLat, x, y } = entity;
|
|
49
|
+
const lat = entityLat || y;
|
|
50
|
+
const lon = entityLon || x;
|
|
51
|
+
if (!lat || !lon)
|
|
52
|
+
return null;
|
|
53
|
+
return { lat, lon, name };
|
|
45
54
|
};
|
|
46
|
-
const StationHubDetails = ({
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
id: "otpUi.MapPopup.availableBikes",
|
|
53
|
-
values: {
|
|
54
|
-
value: station.vehiclesAvailable
|
|
55
|
-
}
|
|
56
|
-
})), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_reactIntl.FormattedMessage, {
|
|
57
|
-
defaultMessage: defaultMessages["otpUi.MapPopup.availableDocks"],
|
|
58
|
-
description: "Label text for the number of docks available",
|
|
59
|
-
id: "otpUi.MapPopup.availableDocks",
|
|
60
|
-
values: {
|
|
61
|
-
value: station.spacesAvailable
|
|
62
|
-
}
|
|
63
|
-
})));
|
|
55
|
+
const StationHubDetails = ({ availableVehicles, availableSpaces }) => {
|
|
56
|
+
return (react_1.default.createElement(base_map_1.Styled.PopupRow, null,
|
|
57
|
+
react_1.default.createElement("div", null,
|
|
58
|
+
react_1.default.createElement(react_intl_1.FormattedMessage, { defaultMessage: exports.defaultMessages["otpUi.MapPopup.availableBikes"], description: "Label text for the number of bikes available", id: "otpUi.MapPopup.availableBikes", values: { value: availableVehicles } })),
|
|
59
|
+
react_1.default.createElement("div", null,
|
|
60
|
+
react_1.default.createElement(react_intl_1.FormattedMessage, { defaultMessage: exports.defaultMessages["otpUi.MapPopup.availableDocks"], description: "Label text for the number of docks available", id: "otpUi.MapPopup.availableDocks", values: { value: availableSpaces } }))));
|
|
64
61
|
};
|
|
65
|
-
const StopDetails = ({
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
}
|
|
76
|
-
})), /*#__PURE__*/_react.default.createElement(_styled.ViewStopButton, {
|
|
77
|
-
onClick: setViewedStop,
|
|
78
|
-
stopId: id
|
|
79
|
-
}, /*#__PURE__*/_react.default.createElement(_reactIntl.FormattedMessage, {
|
|
80
|
-
defaultMessage: defaultMessages["otpUi.MapPopup.stopViewer"],
|
|
81
|
-
description: "Text for link that opens the stop viewer",
|
|
82
|
-
id: "otpUi.MapPopup.stopViewer"
|
|
83
|
-
})));
|
|
62
|
+
const StopDetails = ({ id, feedName, setViewedStop }) => {
|
|
63
|
+
return (react_1.default.createElement(base_map_1.Styled.PopupRow, null,
|
|
64
|
+
id &&
|
|
65
|
+
react_1.default.createElement("strong", null,
|
|
66
|
+
react_1.default.createElement(react_intl_1.FormattedMessage, { defaultMessage: exports.defaultMessages["otpUi.MapPopup.stopId"], description: "Displays the stop id", id: "otpUi.MapPopup.stopId", values: {
|
|
67
|
+
feedName,
|
|
68
|
+
stopId: id
|
|
69
|
+
} })),
|
|
70
|
+
react_1.default.createElement(styled_1.ViewStopButton, { onClick: setViewedStop, stopId: id },
|
|
71
|
+
react_1.default.createElement(react_intl_1.FormattedMessage, { defaultMessage: exports.defaultMessages["otpUi.MapPopup.stopViewer"], description: "Text for link that opens the stop viewer", id: "otpUi.MapPopup.stopViewer" }))));
|
|
84
72
|
};
|
|
85
|
-
|
|
86
|
-
return "vehiclesAvailable" in entity;
|
|
87
|
-
}
|
|
88
|
-
|
|
73
|
+
const entityIsStop = (entity) => "gtfsId" in entity;
|
|
89
74
|
/**
|
|
90
75
|
* Renders a map popup for a stop, scooter, or shared bike
|
|
91
76
|
*/
|
|
92
|
-
function MapPopup({
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
const getNameFunc = getEntityName || (0, _util.makeDefaultGetEntityName)(intl, defaultMessages);
|
|
105
|
-
|
|
106
|
-
// Find the feed name using the logic from generateLabel in otp.ts
|
|
107
|
-
let feedName;
|
|
108
|
-
if (feeds && entity.id) {
|
|
109
|
-
var _feed$publisher;
|
|
110
|
-
const feedId = entity.id.split(":")[0];
|
|
111
|
-
const feed = feeds.find(f => f.feedId === feedId);
|
|
112
|
-
feedName = feed === null || feed === void 0 || (_feed$publisher = feed.publisher) === null || _feed$publisher === void 0 ? void 0 : _feed$publisher.name;
|
|
113
|
-
}
|
|
114
|
-
const name = getNameFunc(entity, configCompanies, feedName);
|
|
115
|
-
const stationNetwork = (0, _util.getNetwork)(entity, configCompanies);
|
|
116
|
-
const bikesAvailablePresent = entityIsStation(entity);
|
|
117
|
-
const entityIsStationHub = bikesAvailablePresent && entity.vehiclesAvailable !== undefined && !entity.isFloatingBike;
|
|
118
|
-
const stopId = !bikesAvailablePresent && "code" in entity && entity.code;
|
|
119
|
-
const id = `focus-${encodeURIComponent(entity.id).replace(/%/g, "")}-popup`;
|
|
120
|
-
return /*#__PURE__*/_react.default.createElement(_baseMap.Styled.MapOverlayPopup, null, /*#__PURE__*/_react.default.createElement(_buildingBlocks.FocusTrapWrapper, {
|
|
121
|
-
closePopup: closePopup,
|
|
122
|
-
id: id
|
|
123
|
-
}, /*#__PURE__*/_react.default.createElement(_baseMap.Styled.PopupTitle, null, getEntityPrefix && getEntityPrefix(entity), /*#__PURE__*/_react.default.createElement(_reactIntl.FormattedMessage, {
|
|
124
|
-
defaultMessage: defaultMessages["otpUi.MapPopup.popupTitle"],
|
|
125
|
-
description: "Text for title of the popup, contains an optional company name",
|
|
126
|
-
id: "otpUi.MapPopup.popupTitle",
|
|
127
|
-
values: {
|
|
128
|
-
name,
|
|
129
|
-
stationNetwork
|
|
77
|
+
function MapPopup({ closePopup = () => { }, configCompanies, entity, getEntityName, getEntityPrefix, setLocation, setViewedStop, feeds, }) {
|
|
78
|
+
var _a, _b, _c;
|
|
79
|
+
const intl = (0, react_intl_1.useIntl)();
|
|
80
|
+
if (!entity)
|
|
81
|
+
return react_1.default.createElement(react_1.default.Fragment, null);
|
|
82
|
+
const getNameFunc = getEntityName || (0, util_1.makeDefaultGetEntityName)(intl, exports.defaultMessages);
|
|
83
|
+
// Find the feed name using the logic from generateLabel in otp.ts
|
|
84
|
+
let feedName;
|
|
85
|
+
if (feeds && entity.id) {
|
|
86
|
+
const feedId = entity.id.split(":")[0];
|
|
87
|
+
const feed = feeds.find(f => f.feedId === feedId);
|
|
88
|
+
feedName = (_a = feed === null || feed === void 0 ? void 0 : feed.publisher) === null || _a === void 0 ? void 0 : _a.name;
|
|
130
89
|
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
90
|
+
const name = getNameFunc(entity, configCompanies, feedName);
|
|
91
|
+
const titleName = getNameFunc(entity, configCompanies, feedName, false);
|
|
92
|
+
const stationNetwork = "rentalNetwork" in entity && (core_utils_1.default.itinerary.getCompaniesLabelFromNetworks(entity === null || entity === void 0 ? void 0 : entity.rentalNetwork.networkId, configCompanies) || (entity === null || entity === void 0 ? void 0 : entity.rentalNetwork.networkId));
|
|
93
|
+
const vehiclesAvailable = "availableVehicles" in entity;
|
|
94
|
+
const entityIsStationHub = vehiclesAvailable && (entity === null || entity === void 0 ? void 0 : entity.availableVehicles) !== undefined;
|
|
95
|
+
const stopId = entityIsStop(entity) ? entity.code : "";
|
|
96
|
+
const id = `focus-${encodeURIComponent(entity.id).replace(/%/g, "")}-popup`;
|
|
97
|
+
return (react_1.default.createElement(base_map_1.Styled.MapOverlayPopup, null,
|
|
98
|
+
react_1.default.createElement(building_blocks_1.FocusTrapWrapper, { closePopup: closePopup, id: id },
|
|
99
|
+
react_1.default.createElement(base_map_1.Styled.PopupTitle, null,
|
|
100
|
+
getEntityPrefix && getEntityPrefix(entity),
|
|
101
|
+
react_1.default.createElement(react_intl_1.FormattedMessage, { defaultMessage: exports.defaultMessages["otpUi.MapPopup.popupTitle"], description: "Text for title of the popup, contains an optional company name", id: "otpUi.MapPopup.popupTitle", values: { name: titleName, stationNetwork } })),
|
|
102
|
+
entityIsStationHub && react_1.default.createElement(StationHubDetails, { availableSpaces: (_b = entity.availableSpaces) === null || _b === void 0 ? void 0 : _b.total, availableVehicles: (_c = entity.availableVehicles) === null || _c === void 0 ? void 0 : _c.total }),
|
|
103
|
+
setViewedStop && entityIsStop(entity) && (react_1.default.createElement(StopDetails, { id: stopId, feedName: feedName, setViewedStop: (0, react_1.useCallback)(() => setViewedStop(entity), [entity]) })),
|
|
104
|
+
setLocation && (react_1.default.createElement(base_map_1.Styled.PopupRow, null,
|
|
105
|
+
react_1.default.createElement(from_to_location_picker_1.default, { label: true, location: generateLocation(entity, name), setLocation: setLocation }))))));
|
|
141
106
|
}
|
|
142
|
-
|
|
107
|
+
exports.MapPopup = MapPopup;
|
|
108
|
+
exports.default = MapPopup;
|
|
143
109
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_react","_interopRequireWildcard","require","_fromToLocationPicker","_interopRequireDefault","_buildingBlocks","_flat","_reactIntl","_baseMap","_util","_styled","_enUS","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","defaultMessages","exports","flatten","defaultEnglishMessages","generateLocation","entity","name","lon","entityLon","lat","entityLat","x","y","StationHubDetails","station","createElement","Styled","PopupRow","FormattedMessage","defaultMessage","description","id","values","value","vehiclesAvailable","spacesAvailable","StopDetails","setViewedStop","stopId","ViewStopButton","onClick","entityIsStation","MapPopup","closePopup","configCompanies","getEntityName","getEntityPrefix","setLocation","feeds","intl","useIntl","Fragment","getNameFunc","makeDefaultGetEntityName","feedName","_feed$publisher","feedId","split","feed","find","f","publisher","stationNetwork","getNetwork","bikesAvailablePresent","entityIsStationHub","undefined","isFloatingBike","code","encodeURIComponent","replace","MapOverlayPopup","FocusTrapWrapper","PopupTitle","useCallback","label","location","_default"],"sources":["../src/index.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport FromToLocationPicker from \"@opentripplanner/from-to-location-picker\";\n\n// eslint-disable-next-line prettier/prettier\nimport type {\n Company,\n ConfiguredCompany,\n Location,\n Stop,\n StopEventHandler,\n TileLayerStation\n} from \"@opentripplanner/types\";\n\nimport { FocusTrapWrapper } from \"@opentripplanner/building-blocks\";\nimport { flatten } from \"flat\";\nimport { FormattedMessage, useIntl } from \"react-intl\";\nimport { Styled } from \"@opentripplanner/base-map\";\n\nimport { Entity, getNetwork, makeDefaultGetEntityName, type StopIdAgencyMap } from \"./util\";\nimport { ViewStopButton } from \"./styled\";\n\n// Load the default messages.\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.\nexport const defaultMessages: { [key: string]: string } = flatten(defaultEnglishMessages);\n\nexport type Feed = {\n feedId: string;\n publisher: {\n name: string;\n };\n};\n\n\nconst generateLocation = (entity: Entity, name: string) => {\n // @ts-expect-error some of these values may be null, but that's ok\n const { lon: entityLon, lat: entityLat, x, y } = entity\n\n const lat = entityLat || y\n const lon = entityLon || x\n if (!lat || !lon) return null\n\n return { lat, lon, name };\n}\n\nconst StationHubDetails = ({ station }: { station: TileLayerStation }) => {\n return (\n <Styled.PopupRow>\n <div>\n <FormattedMessage\n defaultMessage={\n defaultMessages[\"otpUi.MapPopup.availableBikes\"]\n }\n description=\"Label text for the number of bikes available\"\n id=\"otpUi.MapPopup.availableBikes\"\n values={{ value: station.vehiclesAvailable }}\n />\n </div>\n <div>\n <FormattedMessage\n defaultMessage={\n defaultMessages[\"otpUi.MapPopup.availableDocks\"]\n }\n description=\"Label text for the number of docks available\"\n id=\"otpUi.MapPopup.availableDocks\"\n values={{ value: station.spacesAvailable }}\n />\n </div>\n </Styled.PopupRow>\n )\n}\n\nconst StopDetails = ({ id, setViewedStop }: { id: string, setViewedStop: () => void; }) => {\n return (\n <Styled.PopupRow>\n {id &&\n <strong>\n <FormattedMessage\n defaultMessage={defaultMessages[\"otpUi.MapPopup.stopId\"]}\n description=\"Displays the stop id\"\n id=\"otpUi.MapPopup.stopId\"\n values={{\n stopId: id\n }}\n />\n </strong>}\n <ViewStopButton onClick={setViewedStop} stopId={id}> \n <FormattedMessage\n defaultMessage={defaultMessages[\"otpUi.MapPopup.stopViewer\"]}\n description=\"Text for link that opens the stop viewer\"\n id=\"otpUi.MapPopup.stopViewer\"\n />\n </ViewStopButton>\n </Styled.PopupRow>\n )\n}\n\ntype Props = {\n closePopup?: (arg?: boolean) => void\n configCompanies?: ConfiguredCompany[];\n entity: Entity\n getEntityName?: (entity: Entity, configCompanies: Company[], feedName?: string) => string;\n getEntityPrefix?: (entity: Entity) => JSX.Element\n feeds?: Feed[]\n setLocation?: ({ location, locationType }: { location: Location, locationType: string }) => void;\n setViewedStop?: StopEventHandler;\n};\n\nfunction entityIsStation(entity: Entity): entity is TileLayerStation {\n return \"vehiclesAvailable\" in entity\n}\n\n/**\n * Renders a map popup for a stop, scooter, or shared bike\n */\nexport function MapPopup({ \n closePopup = () => {}, \n configCompanies, \n entity, \n getEntityName, \n getEntityPrefix, \n setLocation, \n setViewedStop, \n feeds,\n}: Props): JSX.Element {\n\n const intl = useIntl()\n if (!entity) return <></>\n\n const getNameFunc = getEntityName || makeDefaultGetEntityName(intl, defaultMessages);\n \n // Find the feed name using the logic from generateLabel in otp.ts\n let feedName: string | undefined;\n if (feeds && entity.id) {\n const feedId = entity.id.split(\":\")[0];\n const feed = feeds.find(f => f.feedId === feedId);\n feedName = feed?.publisher?.name;\n }\n \n const name = getNameFunc(entity, configCompanies, feedName);\n\n const stationNetwork = getNetwork(entity, configCompanies);\n\n const bikesAvailablePresent = entityIsStation(entity)\n const entityIsStationHub = bikesAvailablePresent && entity.vehiclesAvailable !== undefined && !entity.isFloatingBike;\n const stopId = !bikesAvailablePresent && \"code\" in entity && entity.code;\n const id = `focus-${encodeURIComponent(entity.id).replace(/%/g, \"\")}-popup`\n\n return (\n <Styled.MapOverlayPopup>\n <FocusTrapWrapper closePopup={closePopup} id={id}>\n <Styled.PopupTitle>\n {getEntityPrefix && getEntityPrefix(entity)}\n <FormattedMessage\n defaultMessage={defaultMessages[\"otpUi.MapPopup.popupTitle\"]}\n description=\"Text for title of the popup, contains an optional company name\"\n id=\"otpUi.MapPopup.popupTitle\"\n values={{ name, stationNetwork }}\n />\n </Styled.PopupTitle>\n {/* render dock info if it is available */}\n {entityIsStationHub && <StationHubDetails station={entity} />}\n\n {/* render stop viewer link if available */}\n {setViewedStop && !bikesAvailablePresent && (\n <StopDetails\n id={stopId}\n setViewedStop={useCallback(() => setViewedStop(entity as Stop), [entity])}\n />\n )}\n\n {/* The \"Set as [from/to]\" ButtonGroup */}\n {setLocation && (\n <Styled.PopupRow>\n <FromToLocationPicker\n label\n location={generateLocation(entity, name)}\n setLocation={setLocation}\n />\n </Styled.PopupRow>\n )}\n </FocusTrapWrapper>\n \n </Styled.MapOverlayPopup>\n );\n}\n\nexport default MapPopup;\nexport { type StopIdAgencyMap };"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
|