@opentripplanner/map-popup 6.1.0 → 7.0.1

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
@@ -1,6 +1,5 @@
1
1
  import React, { useCallback } from "react";
2
2
  import FromToLocationPicker from "@opentripplanner/from-to-location-picker";
3
- import coreUtils from "@opentripplanner/core-utils";
4
3
 
5
4
  // eslint-disable-next-line prettier/prettier
6
5
 
@@ -8,11 +7,11 @@ import { FocusTrapWrapper } from "@opentripplanner/building-blocks";
8
7
  import { flatten } from "flat";
9
8
  import { FormattedMessage, useIntl } from "react-intl";
10
9
  import { Styled } from "@opentripplanner/base-map";
10
+ import { getNetwork, makeDefaultGetEntityName } from "./util";
11
11
  import { ViewStopButton } from "./styled";
12
12
 
13
13
  // Load the default messages.
14
14
  import defaultEnglishMessages from "../i18n/en-US.yml";
15
- import { makeDefaultGetEntityName } from "./util";
16
15
 
17
16
  // HACK: We should flatten the messages loaded above because
18
17
  // the YAML loaders behave differently between webpack and our version of jest:
@@ -41,7 +40,7 @@ var StationHubDetails = function StationHubDetails(_ref) {
41
40
  description: "Label text for the number of bikes available",
42
41
  id: "otpUi.MapPopup.availableBikes",
43
42
  values: {
44
- value: station.bikesAvailable
43
+ value: station.vehiclesAvailable
45
44
  }
46
45
  })), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(FormattedMessage, {
47
46
  defaultMessage: defaultMessages["otpUi.MapPopup.availableDocks"],
@@ -54,12 +53,14 @@ var StationHubDetails = function StationHubDetails(_ref) {
54
53
  };
55
54
  var StopDetails = function StopDetails(_ref2) {
56
55
  var id = _ref2.id,
56
+ feedName = _ref2.feedName,
57
57
  setViewedStop = _ref2.setViewedStop;
58
58
  return /*#__PURE__*/React.createElement(Styled.PopupRow, null, id && /*#__PURE__*/React.createElement("strong", null, /*#__PURE__*/React.createElement(FormattedMessage, {
59
59
  defaultMessage: defaultMessages["otpUi.MapPopup.stopId"],
60
60
  description: "Displays the stop id",
61
61
  id: "otpUi.MapPopup.stopId",
62
62
  values: {
63
+ feedName: feedName,
63
64
  stopId: id
64
65
  }
65
66
  })), /*#__PURE__*/React.createElement(ViewStopButton, {
@@ -72,14 +73,13 @@ var StopDetails = function StopDetails(_ref2) {
72
73
  })));
73
74
  };
74
75
  function entityIsStation(entity) {
75
- return "bikesAvailable" in entity;
76
+ return "vehiclesAvailable" in entity;
76
77
  }
77
78
 
78
79
  /**
79
80
  * Renders a map popup for a stop, scooter, or shared bike
80
81
  */
81
82
  export function MapPopup(_ref3) {
82
- var _entity$networks;
83
83
  var _ref3$closePopup = _ref3.closePopup,
84
84
  closePopup = _ref3$closePopup === void 0 ? function () {} : _ref3$closePopup,
85
85
  configCompanies = _ref3.configCompanies,
@@ -104,10 +104,11 @@ export function MapPopup(_ref3) {
104
104
  feedName = feed === null || feed === void 0 || (_feed$publisher = feed.publisher) === null || _feed$publisher === void 0 ? void 0 : _feed$publisher.name;
105
105
  }
106
106
  var name = getNameFunc(entity, configCompanies, feedName);
107
- var stationNetwork = "networks" in entity && (coreUtils.itinerary.getCompaniesLabelFromNetworks((entity === null || entity === void 0 ? void 0 : entity.networks) || [], configCompanies) || (entity === null || entity === void 0 || (_entity$networks = entity.networks) === null || _entity$networks === void 0 ? void 0 : _entity$networks[0]));
107
+ var titleName = getNameFunc(entity, configCompanies, feedName, false);
108
+ var stationNetwork = getNetwork(entity, configCompanies);
108
109
  var bikesAvailablePresent = entityIsStation(entity);
109
- var entityIsStationHub = bikesAvailablePresent && (entity === null || entity === void 0 ? void 0 : entity.bikesAvailable) !== undefined && !(entity !== null && entity !== void 0 && entity.isFloatingBike);
110
- var stopId = !bikesAvailablePresent && (entity === null || entity === void 0 ? void 0 : entity.code);
110
+ var entityIsStationHub = bikesAvailablePresent && entity.vehiclesAvailable !== undefined && !entity.isFloatingBike;
111
+ var stopId = !bikesAvailablePresent && "code" in entity && entity.code;
111
112
  var id = "focus-".concat(encodeURIComponent(entity.id).replace(/%/g, ""), "-popup");
112
113
  return /*#__PURE__*/React.createElement(Styled.MapOverlayPopup, null, /*#__PURE__*/React.createElement(FocusTrapWrapper, {
113
114
  closePopup: closePopup,
@@ -117,13 +118,14 @@ export function MapPopup(_ref3) {
117
118
  description: "Text for title of the popup, contains an optional company name",
118
119
  id: "otpUi.MapPopup.popupTitle",
119
120
  values: {
120
- name: name,
121
+ name: titleName,
121
122
  stationNetwork: stationNetwork
122
123
  }
123
124
  })), entityIsStationHub && /*#__PURE__*/React.createElement(StationHubDetails, {
124
125
  station: entity
125
126
  }), setViewedStop && !bikesAvailablePresent && /*#__PURE__*/React.createElement(StopDetails, {
126
127
  id: stopId,
128
+ feedName: feedName,
127
129
  setViewedStop: useCallback(function () {
128
130
  return setViewedStop(entity);
129
131
  }, [entity])
package/esm/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useCallback","FromToLocationPicker","coreUtils","FocusTrapWrapper","flatten","FormattedMessage","useIntl","Styled","ViewStopButton","defaultEnglishMessages","makeDefaultGetEntityName","defaultMessages","generateLocation","entity","name","entityLon","lon","entityLat","lat","x","y","StationHubDetails","_ref","station","createElement","PopupRow","defaultMessage","description","id","values","value","bikesAvailable","spacesAvailable","StopDetails","_ref2","setViewedStop","stopId","onClick","entityIsStation","MapPopup","_ref3","_entity$networks","_ref3$closePopup","closePopup","configCompanies","getEntityName","getEntityPrefix","setLocation","feeds","intl","Fragment","getNameFunc","feedName","_feed$publisher","feedId","split","feed","find","f","publisher","stationNetwork","itinerary","getCompaniesLabelFromNetworks","networks","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\";\nimport coreUtils from \"@opentripplanner/core-utils\";\n\n// eslint-disable-next-line prettier/prettier\nimport type { Company, ConfiguredCompany, Location, Station, Stop, StopEventHandler } 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 { ViewStopButton } from \"./styled\";\n\n// Load the default messages.\nimport defaultEnglishMessages from \"../i18n/en-US.yml\";\nimport { makeDefaultGetEntityName, type StopIdAgencyMap } from \"./util\";\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: Station }) => {\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.bikesAvailable }}\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 Entity = Stop | Station\ntype Props = {\n closePopup?: (arg?: any) => 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 Station {\n return \"bikesAvailable\" 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 = \"networks\" in entity && (coreUtils.itinerary.getCompaniesLabelFromNetworks(entity?.networks || [], configCompanies) || entity?.networks?.[0]);\n\n const bikesAvailablePresent = entityIsStation(entity)\n const entityIsStationHub = bikesAvailablePresent && entity?.bikesAvailable !== undefined && !entity?.isFloatingBike;\n const stopId = !bikesAvailablePresent && 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), [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","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","feedName","setViewedStop","stopId","onClick","entityIsStation","MapPopup","_ref3","_ref3$closePopup","closePopup","configCompanies","getEntityName","getEntityPrefix","setLocation","feeds","intl","Fragment","getNameFunc","_feed$publisher","feedId","split","feed","find","f","publisher","titleName","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, 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 Props = {\n closePopup?: (arg?: boolean) => void\n configCompanies?: ConfiguredCompany[];\n entity: Entity\n getEntityName?: (entity: Entity, configCompanies: Company[], feedName?: string, includeParenthetical?: boolean) => 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 const titleName = getNameFunc(entity, configCompanies, feedName, false);\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: titleName, 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 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,12 @@
1
1
  import coreUtils from "@opentripplanner/core-utils";
2
+ export function getNetwork(entity, configCompanies) {
3
+ return "network" in entity && (coreUtils.itinerary.getCompaniesLabelFromNetworks([entity.network], configCompanies) || entity.network);
4
+ }
5
+
2
6
  // eslint-disable-next-line import/prefer-default-export
3
7
  export function makeDefaultGetEntityName(intl, defaultEnglishMessages) {
4
8
  return function defaultGetEntityName(entity, configCompanies, feedName) {
5
- var _entity$networks;
6
- // TODO: Stop generating this / passing it to the car string? Is it needed?
7
- // In English we say "Car: " instead
8
- var stationNetworks = "networks" in entity && (coreUtils.itinerary.getCompaniesLabelFromNetworks((entity === null || entity === void 0 ? void 0 : entity.networks) || [], configCompanies) || (entity === null || entity === void 0 || (_entity$networks = entity.networks) === null || _entity$networks === void 0 ? void 0 : _entity$networks[0]));
9
+ var includeParenthetical = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
9
10
  var stationName = entity.name || entity.id;
10
11
  // If the station name or id is a giant UUID (with more than 3 "-" characters)
11
12
  // best not to show that at all. The company name will still be shown.
@@ -22,12 +23,15 @@ export function makeDefaultGetEntityName(intl, defaultEnglishMessages) {
22
23
  name: stationName
23
24
  });
24
25
  } else if ("isFloatingCar" in entity && entity.isFloatingCar) {
26
+ // TODO: Stop generating this / passing it to the car string? Is it needed?
27
+ // In English we say "Car: " instead
28
+ var stationNetwork = getNetwork(entity, configCompanies);
25
29
  stationName = intl.formatMessage({
26
30
  defaultMessage: defaultEnglishMessages["otpUi.MapPopup.floatingCar"],
27
31
  description: "Popup title for a free-floating car",
28
32
  id: "otpUi.MapPopup.floatingCar"
29
33
  }, {
30
- company: stationNetworks,
34
+ company: stationNetwork,
31
35
  name: stationName
32
36
  });
33
37
  } else if ("isFloatingVehicle" in entity && entity.isFloatingVehicle) {
@@ -39,7 +43,7 @@ export function makeDefaultGetEntityName(intl, defaultEnglishMessages) {
39
43
  }, {
40
44
  name: stationName
41
45
  });
42
- } else if (feedName && "code" in entity) {
46
+ } else if (includeParenthetical && feedName && "code" in entity) {
43
47
  stationName = "".concat(stationName, " (").concat(feedName, " ").concat(entity.code, ")");
44
48
  }
45
49
  return stationName;
package/esm/util.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","names":["coreUtils","makeDefaultGetEntityName","intl","defaultEnglishMessages","defaultGetEntityName","entity","configCompanies","feedName","_entity$networks","stationNetworks","itinerary","getCompaniesLabelFromNetworks","networks","stationName","name","id","match","length","isFloatingBike","formatMessage","defaultMessage","description","isFloatingCar","company","isFloatingVehicle","concat","code"],"sources":["../src/util.ts"],"sourcesContent":["import { Agency, Company, Station, Stop } from \"@opentripplanner/types\";\nimport { IntlShape } from \"react-intl\";\nimport coreUtils from \"@opentripplanner/core-utils\";\n\nexport type StopIdAgencyMap = Record<string, Agency>;\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: Station | Stop,\n configCompanies: Company[],\n feedName?: string\n ): string | null {\n // TODO: Stop generating this / passing it to the car string? Is it needed?\n // In English we say \"Car: \" instead\n const stationNetworks =\n \"networks\" in entity &&\n (coreUtils.itinerary.getCompaniesLabelFromNetworks(\n entity?.networks || [],\n configCompanies\n ) ||\n entity?.networks?.[0]);\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 (\"isFloatingBike\" in entity && entity.isFloatingBike) {\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 (\"isFloatingCar\" in entity && entity.isFloatingCar) {\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: stationNetworks,\n name: stationName\n }\n );\n } else if (\"isFloatingVehicle\" in entity && entity.isFloatingVehicle) {\n // assumes that all floating vehicles are E-scooters\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 (feedName && \"code\" in entity) {\n stationName = `${stationName} (${feedName} ${entity.code})`;\n }\n return stationName;\n };\n}\n"],"mappings":"AAEA,OAAOA,SAAS,MAAM,6BAA6B;AAInD;AACA,OAAO,SAASC,wBAAwBA,CACtCC,IAAe,EACfC,sBAAiD,EACjD;EACA,OAAO,SAASC,oBAAoBA,CAClCC,MAAsB,EACtBC,eAA0B,EAC1BC,QAAiB,EACF;IAAA,IAAAC,gBAAA;IACf;IACA;IACA,IAAMC,eAAe,GACnB,UAAU,IAAIJ,MAAM,KACnBL,SAAS,CAACU,SAAS,CAACC,6BAA6B,CAChD,CAAAN,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEO,QAAQ,KAAI,EAAE,EACtBN,eACF,CAAC,KACCD,MAAM,aAANA,MAAM,gBAAAG,gBAAA,GAANH,MAAM,CAAEO,QAAQ,cAAAJ,gBAAA,uBAAhBA,gBAAA,CAAmB,CAAC,CAAC,EAAC;IAC1B,IAAIK,WAA0B,GAAGR,MAAM,CAACS,IAAI,IAAIT,MAAM,CAACU,EAAE;IACzD;IACA;IACA;IACA,IACE,CAACF,WAAW,CAACG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,EAAEC,MAAM,GAAG,CAAC,IAC1CJ,WAAW,KAAK,sBAAsB,EACtC;MACAA,WAAW,GAAG,IAAI;IACpB;IAEA,IAAI,gBAAgB,IAAIR,MAAM,IAAIA,MAAM,CAACa,cAAc,EAAE;MACvDL,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,IAAI,eAAe,IAAIR,MAAM,IAAIA,MAAM,CAACiB,aAAa,EAAE;MAC5DT,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,eAAe;QACxBK,IAAI,EAAED;MACR,CACF,CAAC;IACH,CAAC,MAAM,IAAI,mBAAmB,IAAIR,MAAM,IAAIA,MAAM,CAACmB,iBAAiB,EAAE;MACpE;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,IAAIN,QAAQ,IAAI,MAAM,IAAIF,MAAM,EAAE;MACvCQ,WAAW,MAAAY,MAAA,CAAMZ,WAAW,QAAAY,MAAA,CAAKlB,QAAQ,OAAAkB,MAAA,CAAIpB,MAAM,CAACqB,IAAI,MAAG;IAC7D;IACA,OAAOb,WAAW;EACpB,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"file":"util.js","names":["coreUtils","getNetwork","entity","configCompanies","itinerary","getCompaniesLabelFromNetworks","network","makeDefaultGetEntityName","intl","defaultEnglishMessages","defaultGetEntityName","feedName","includeParenthetical","arguments","length","undefined","stationName","name","id","match","isFloatingBike","formatMessage","defaultMessage","description","isFloatingCar","stationNetwork","company","isFloatingVehicle","concat","code"],"sources":["../src/util.ts"],"sourcesContent":["import {\n Agency,\n Company,\n Station,\n Stop,\n TileLayerStation\n} from \"@opentripplanner/types\";\nimport { IntlShape } from \"react-intl\";\nimport coreUtils from \"@opentripplanner/core-utils\";\n\nexport type StopIdAgencyMap = Record<string, Agency>;\nexport type Entity = Station | Stop | TileLayerStation;\n\nexport function getNetwork(entity: Entity, configCompanies: Company[]): string {\n return (\n \"network\" in entity &&\n (coreUtils.itinerary.getCompaniesLabelFromNetworks(\n [entity.network],\n configCompanies\n ) ||\n entity.network)\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 (\"isFloatingBike\" in entity && entity.isFloatingBike) {\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 (\"isFloatingCar\" in entity && entity.isFloatingCar) {\n // TODO: Stop generating this / passing it to the car string? Is it needed?\n // In English we say \"Car: \" instead\n const stationNetwork = 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: stationNetwork,\n name: stationName\n }\n );\n } else if (\"isFloatingVehicle\" in entity && entity.isFloatingVehicle) {\n // assumes that all floating vehicles are E-scooters\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":"AAQA,OAAOA,SAAS,MAAM,6BAA6B;AAKnD,OAAO,SAASC,UAAUA,CAACC,MAAc,EAAEC,eAA0B,EAAU;EAC7E,OACE,SAAS,IAAID,MAAM,KAClBF,SAAS,CAACI,SAAS,CAACC,6BAA6B,CAChD,CAACH,MAAM,CAACI,OAAO,CAAC,EAChBH,eACF,CAAC,IACCD,MAAM,CAACI,OAAO,CAAC;AAErB;;AAEA;AACA,OAAO,SAASC,wBAAwBA,CACtCC,IAAe,EACfC,sBAAiD,EACjD;EACA,OAAO,SAASC,oBAAoBA,CAClCR,MAAc,EACdC,eAA0B,EAC1BQ,QAAiB,EAEF;IAAA,IADfC,oBAAoB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;IAE3B,IAAIG,WAA0B,GAAGd,MAAM,CAACe,IAAI,IAAIf,MAAM,CAACgB,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,IAAI,gBAAgB,IAAId,MAAM,IAAIA,MAAM,CAACkB,cAAc,EAAE;MACvDJ,WAAW,GAAGR,IAAI,CAACa,aAAa,CAC9B;QACEC,cAAc,EAAEb,sBAAsB,CAAC,6BAA6B,CAAC;QACrEc,WAAW,EAAE,sCAAsC;QACnDL,EAAE,EAAE;MACN,CAAC,EACD;QAAED,IAAI,EAAED;MAAY,CACtB,CAAC;IACH,CAAC,MAAM,IAAI,eAAe,IAAId,MAAM,IAAIA,MAAM,CAACsB,aAAa,EAAE;MAC5D;MACA;MACA,IAAMC,cAAc,GAAGxB,UAAU,CAACC,MAAM,EAAEC,eAAe,CAAC;MAC1Da,WAAW,GAAGR,IAAI,CAACa,aAAa,CAC9B;QACEC,cAAc,EAAEb,sBAAsB,CAAC,4BAA4B,CAAC;QACpEc,WAAW,EAAE,qCAAqC;QAClDL,EAAE,EAAE;MACN,CAAC,EACD;QACEQ,OAAO,EAAED,cAAc;QACvBR,IAAI,EAAED;MACR,CACF,CAAC;IACH,CAAC,MAAM,IAAI,mBAAmB,IAAId,MAAM,IAAIA,MAAM,CAACyB,iBAAiB,EAAE;MACpE;MACAX,WAAW,GAAGR,IAAI,CAACa,aAAa,CAC9B;QACEC,cAAc,EACZb,sBAAsB,CAAC,iCAAiC,CAAC;QAC3Dc,WAAW,EAAE,2CAA2C;QACxDL,EAAE,EAAE;MACN,CAAC,EACD;QAAED,IAAI,EAAED;MAAY,CACtB,CAAC;IACH,CAAC,MAAM,IAAIJ,oBAAoB,IAAID,QAAQ,IAAI,MAAM,IAAIT,MAAM,EAAE;MAC/Dc,WAAW,MAAAY,MAAA,CAAMZ,WAAW,QAAAY,MAAA,CAAKjB,QAAQ,OAAAiB,MAAA,CAAI1B,MAAM,CAAC2B,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: "Stop ID: {stopId}"
9
+ stopId: >-
10
+ {feedName, select, undefined {Stop ID: {stopId}} other {Stop ID:
11
+ {feedName} {stopId}}}
10
12
  stopViewer: Stop Viewer
package/i18n/pl.yml CHANGED
@@ -1,10 +1,10 @@
1
1
  otpUi:
2
2
  MapPopup:
3
- popupTitle: '{stationNetwork, select, false {{name}} other {{stationNetwork} {name}}}'
4
- availableBikes: 'Dostępne rowery: {value}'
5
- availableDocks: 'Dostępne stanowiska: {value}'
6
- floatingBike: 'Wolnostojące rowery: {name}'
7
- floatingCar: 'Samochód: {name}'
8
- floatingEScooter: 'Hulajnoga elektryczna: {name}'
9
- stopId: 'Numer przystanku: {stopId}'
3
+ availableBikes: "Dostępne rowery: {value}"
4
+ availableDocks: "Dostępne stanowiska: {value}"
5
+ floatingBike: "Wolnostojące rowery: {name}"
6
+ floatingCar: "Samochód: {name}"
7
+ floatingEScooter: "Hulajnoga elektryczna: {name}"
8
+ popupTitle: "{stationNetwork, select, false {{name}} other {{stationNetwork} {name}}}"
9
+ stopId: "Numer przystanku: {stopId}"
10
10
  stopViewer: Podgląd przystanku
package/lib/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
- import type { Company, ConfiguredCompany, Location, Station, Stop, StopEventHandler } from "@opentripplanner/types";
3
- import { type StopIdAgencyMap } from "./util";
2
+ import type { Company, ConfiguredCompany, Location, StopEventHandler } from "@opentripplanner/types";
3
+ import { Entity, type StopIdAgencyMap } from "./util";
4
4
  export declare const defaultMessages: {
5
5
  [key: string]: string;
6
6
  };
@@ -10,12 +10,11 @@ export type Feed = {
10
10
  name: string;
11
11
  };
12
12
  };
13
- type Entity = Stop | Station;
14
13
  type Props = {
15
- closePopup?: (arg?: any) => void;
14
+ closePopup?: (arg?: boolean) => void;
16
15
  configCompanies?: ConfiguredCompany[];
17
16
  entity: Entity;
18
- getEntityName?: (entity: Entity, configCompanies: Company[], feedName?: string) => string;
17
+ getEntityName?: (entity: Entity, configCompanies: Company[], feedName?: string, includeParenthetical?: boolean) => string;
19
18
  getEntityPrefix?: (entity: Entity) => JSX.Element;
20
19
  feeds?: Feed[];
21
20
  setLocation?: ({ location, locationType }: {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":";AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAWpH,OAAO,EAA4B,KAAK,eAAe,EAAE,MAAM,QAAQ,CAAC;AAMxE,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;AAkEF,KAAK,MAAM,GAAG,IAAI,GAAG,OAAO,CAAA;AAC5B,KAAK,KAAK,GAAG;IACX,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,IAAI,CAAA;IAChC,eAAe,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACtC,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC1F,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,GAAG,CAAC,OAAO,CAAA;IACjD,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;AAMF;;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,CA6DrB;AAED,eAAe,QAAQ,CAAC;AACxB,OAAO,EAAE,KAAK,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":";AAIA,OAAO,KAAK,EACV,OAAO,EACP,iBAAiB,EACjB,QAAQ,EAER,gBAAgB,EAEjB,MAAM,wBAAwB,CAAC;AAOhC,OAAO,EAAE,MAAM,EAAwC,KAAK,eAAe,EAAE,MAAM,QAAQ,CAAC;AAU5F,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,KAAK,GAAG;IACX,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;IACpC,eAAe,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACtC,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,oBAAoB,CAAC,EAAE,OAAO,KAAK,MAAM,CAAC;IAC1H,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,GAAG,CAAC,OAAO,CAAA;IACjD,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;AAMF;;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,145 +1,110 @@
1
1
  "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
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
- exports.MapPopup = MapPopup;
8
- exports.defaultMessages = exports.default = void 0;
9
- var _react = _interopRequireWildcard(require("react"));
10
- var _fromToLocationPicker = _interopRequireDefault(require("@opentripplanner/from-to-location-picker"));
11
- var _coreUtils = _interopRequireDefault(require("@opentripplanner/core-utils"));
12
- var _buildingBlocks = require("@opentripplanner/building-blocks");
13
- var _flat = require("flat");
14
- var _reactIntl = require("react-intl");
15
- var _baseMap = require("@opentripplanner/base-map");
16
- var _styled = require("./styled");
17
- var _enUS = _interopRequireDefault(require("../i18n/en-US.yml"));
18
- var _util = require("./util");
19
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
20
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
21
- // eslint-disable-next-line prettier/prettier
22
-
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 util_1 = require("./util");
37
+ const styled_1 = require("./styled");
23
38
  // Load the default messages.
24
-
39
+ const en_US_yml_1 = __importDefault(require("../i18n/en-US.yml"));
25
40
  // HACK: We should flatten the messages loaded above because
26
41
  // the YAML loaders behave differently between webpack and our version of jest:
27
42
  // - the yaml loader for webpack returns a nested object,
28
43
  // - the yaml loader for jest returns messages with flattened ids.
29
- const defaultMessages = exports.defaultMessages = (0, _flat.flatten)(_enUS.default);
44
+ exports.defaultMessages = (0, flat_1.flatten)(en_US_yml_1.default);
30
45
  const generateLocation = (entity, name) => {
31
- // @ts-expect-error some of these values may be null, but that's ok
32
- const {
33
- lon: entityLon,
34
- lat: entityLat,
35
- x,
36
- y
37
- } = entity;
38
- const lat = entityLat || y;
39
- const lon = entityLon || x;
40
- if (!lat || !lon) return null;
41
- return {
42
- lat,
43
- lon,
44
- name
45
- };
46
+ // @ts-expect-error some of these values may be null, but that's ok
47
+ const { lon: entityLon, lat: entityLat, x, y } = entity;
48
+ const lat = entityLat || y;
49
+ const lon = entityLon || x;
50
+ if (!lat || !lon)
51
+ return null;
52
+ return { lat, lon, name };
46
53
  };
47
- const StationHubDetails = ({
48
- station
49
- }) => {
50
- return /*#__PURE__*/_react.default.createElement(_baseMap.Styled.PopupRow, null, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_reactIntl.FormattedMessage, {
51
- defaultMessage: defaultMessages["otpUi.MapPopup.availableBikes"],
52
- description: "Label text for the number of bikes available",
53
- id: "otpUi.MapPopup.availableBikes",
54
- values: {
55
- value: station.bikesAvailable
56
- }
57
- })), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_reactIntl.FormattedMessage, {
58
- defaultMessage: defaultMessages["otpUi.MapPopup.availableDocks"],
59
- description: "Label text for the number of docks available",
60
- id: "otpUi.MapPopup.availableDocks",
61
- values: {
62
- value: station.spacesAvailable
63
- }
64
- })));
54
+ const StationHubDetails = ({ station }) => {
55
+ return (react_1.default.createElement(base_map_1.Styled.PopupRow, null,
56
+ react_1.default.createElement("div", null,
57
+ 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: station.vehiclesAvailable } })),
58
+ react_1.default.createElement("div", null,
59
+ 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: station.spacesAvailable } }))));
65
60
  };
66
- const StopDetails = ({
67
- id,
68
- setViewedStop
69
- }) => {
70
- return /*#__PURE__*/_react.default.createElement(_baseMap.Styled.PopupRow, null, id && /*#__PURE__*/_react.default.createElement("strong", null, /*#__PURE__*/_react.default.createElement(_reactIntl.FormattedMessage, {
71
- defaultMessage: defaultMessages["otpUi.MapPopup.stopId"],
72
- description: "Displays the stop id",
73
- id: "otpUi.MapPopup.stopId",
74
- values: {
75
- stopId: id
76
- }
77
- })), /*#__PURE__*/_react.default.createElement(_styled.ViewStopButton, {
78
- onClick: setViewedStop,
79
- stopId: id
80
- }, /*#__PURE__*/_react.default.createElement(_reactIntl.FormattedMessage, {
81
- defaultMessage: defaultMessages["otpUi.MapPopup.stopViewer"],
82
- description: "Text for link that opens the stop viewer",
83
- id: "otpUi.MapPopup.stopViewer"
84
- })));
61
+ const StopDetails = ({ id, feedName, setViewedStop }) => {
62
+ return (react_1.default.createElement(base_map_1.Styled.PopupRow, null,
63
+ id &&
64
+ react_1.default.createElement("strong", null,
65
+ react_1.default.createElement(react_intl_1.FormattedMessage, { defaultMessage: exports.defaultMessages["otpUi.MapPopup.stopId"], description: "Displays the stop id", id: "otpUi.MapPopup.stopId", values: {
66
+ feedName,
67
+ stopId: id
68
+ } })),
69
+ react_1.default.createElement(styled_1.ViewStopButton, { onClick: setViewedStop, stopId: id },
70
+ 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" }))));
85
71
  };
86
72
  function entityIsStation(entity) {
87
- return "bikesAvailable" in entity;
73
+ return "vehiclesAvailable" in entity;
88
74
  }
89
-
90
75
  /**
91
76
  * Renders a map popup for a stop, scooter, or shared bike
92
77
  */
93
- function MapPopup({
94
- closePopup = () => {},
95
- configCompanies,
96
- entity,
97
- getEntityName,
98
- getEntityPrefix,
99
- setLocation,
100
- setViewedStop,
101
- feeds
102
- }) {
103
- var _entity$networks;
104
- const intl = (0, _reactIntl.useIntl)();
105
- if (!entity) return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
106
- const getNameFunc = getEntityName || (0, _util.makeDefaultGetEntityName)(intl, defaultMessages);
107
-
108
- // Find the feed name using the logic from generateLabel in otp.ts
109
- let feedName;
110
- if (feeds && entity.id) {
111
- var _feed$publisher;
112
- const feedId = entity.id.split(":")[0];
113
- const feed = feeds.find(f => f.feedId === feedId);
114
- feedName = feed === null || feed === void 0 || (_feed$publisher = feed.publisher) === null || _feed$publisher === void 0 ? void 0 : _feed$publisher.name;
115
- }
116
- const name = getNameFunc(entity, configCompanies, feedName);
117
- const stationNetwork = "networks" in entity && (_coreUtils.default.itinerary.getCompaniesLabelFromNetworks((entity === null || entity === void 0 ? void 0 : entity.networks) || [], configCompanies) || (entity === null || entity === void 0 || (_entity$networks = entity.networks) === null || _entity$networks === void 0 ? void 0 : _entity$networks[0]));
118
- const bikesAvailablePresent = entityIsStation(entity);
119
- const entityIsStationHub = bikesAvailablePresent && (entity === null || entity === void 0 ? void 0 : entity.bikesAvailable) !== undefined && !(entity !== null && entity !== void 0 && entity.isFloatingBike);
120
- const stopId = !bikesAvailablePresent && (entity === null || entity === void 0 ? void 0 : entity.code);
121
- const id = `focus-${encodeURIComponent(entity.id).replace(/%/g, "")}-popup`;
122
- return /*#__PURE__*/_react.default.createElement(_baseMap.Styled.MapOverlayPopup, null, /*#__PURE__*/_react.default.createElement(_buildingBlocks.FocusTrapWrapper, {
123
- closePopup: closePopup,
124
- id: id
125
- }, /*#__PURE__*/_react.default.createElement(_baseMap.Styled.PopupTitle, null, getEntityPrefix && getEntityPrefix(entity), /*#__PURE__*/_react.default.createElement(_reactIntl.FormattedMessage, {
126
- defaultMessage: defaultMessages["otpUi.MapPopup.popupTitle"],
127
- description: "Text for title of the popup, contains an optional company name",
128
- id: "otpUi.MapPopup.popupTitle",
129
- values: {
130
- name,
131
- stationNetwork
78
+ function MapPopup({ closePopup = () => { }, configCompanies, entity, getEntityName, getEntityPrefix, setLocation, setViewedStop, feeds, }) {
79
+ var _a;
80
+ const intl = (0, react_intl_1.useIntl)();
81
+ if (!entity)
82
+ return react_1.default.createElement(react_1.default.Fragment, null);
83
+ const getNameFunc = getEntityName || (0, util_1.makeDefaultGetEntityName)(intl, exports.defaultMessages);
84
+ // Find the feed name using the logic from generateLabel in otp.ts
85
+ let feedName;
86
+ if (feeds && entity.id) {
87
+ const feedId = entity.id.split(":")[0];
88
+ const feed = feeds.find(f => f.feedId === feedId);
89
+ feedName = (_a = feed === null || feed === void 0 ? void 0 : feed.publisher) === null || _a === void 0 ? void 0 : _a.name;
132
90
  }
133
- })), entityIsStationHub && /*#__PURE__*/_react.default.createElement(StationHubDetails, {
134
- station: entity
135
- }), setViewedStop && !bikesAvailablePresent && /*#__PURE__*/_react.default.createElement(StopDetails, {
136
- id: stopId,
137
- setViewedStop: (0, _react.useCallback)(() => setViewedStop(entity), [entity])
138
- }), setLocation && /*#__PURE__*/_react.default.createElement(_baseMap.Styled.PopupRow, null, /*#__PURE__*/_react.default.createElement(_fromToLocationPicker.default, {
139
- label: true,
140
- location: generateLocation(entity, name),
141
- setLocation: setLocation
142
- }))));
91
+ const name = getNameFunc(entity, configCompanies, feedName);
92
+ const titleName = getNameFunc(entity, configCompanies, feedName, false);
93
+ const stationNetwork = (0, util_1.getNetwork)(entity, configCompanies);
94
+ const bikesAvailablePresent = entityIsStation(entity);
95
+ const entityIsStationHub = bikesAvailablePresent && entity.vehiclesAvailable !== undefined && !entity.isFloatingBike;
96
+ const stopId = !bikesAvailablePresent && "code" in entity && entity.code;
97
+ const id = `focus-${encodeURIComponent(entity.id).replace(/%/g, "")}-popup`;
98
+ return (react_1.default.createElement(base_map_1.Styled.MapOverlayPopup, null,
99
+ react_1.default.createElement(building_blocks_1.FocusTrapWrapper, { closePopup: closePopup, id: id },
100
+ react_1.default.createElement(base_map_1.Styled.PopupTitle, null,
101
+ getEntityPrefix && getEntityPrefix(entity),
102
+ 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 } })),
103
+ entityIsStationHub && react_1.default.createElement(StationHubDetails, { station: entity }),
104
+ setViewedStop && !bikesAvailablePresent && (react_1.default.createElement(StopDetails, { id: stopId, feedName: feedName, setViewedStop: (0, react_1.useCallback)(() => setViewedStop(entity), [entity]) })),
105
+ setLocation && (react_1.default.createElement(base_map_1.Styled.PopupRow, null,
106
+ react_1.default.createElement(from_to_location_picker_1.default, { label: true, location: generateLocation(entity, name), setLocation: setLocation }))))));
143
107
  }
144
- var _default = exports.default = MapPopup;
108
+ exports.MapPopup = MapPopup;
109
+ exports.default = MapPopup;
145
110
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_react","_interopRequireWildcard","require","_fromToLocationPicker","_interopRequireDefault","_coreUtils","_buildingBlocks","_flat","_reactIntl","_baseMap","_styled","_enUS","_util","_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","bikesAvailable","spacesAvailable","StopDetails","setViewedStop","stopId","ViewStopButton","onClick","entityIsStation","MapPopup","closePopup","configCompanies","getEntityName","getEntityPrefix","setLocation","feeds","_entity$networks","intl","useIntl","Fragment","getNameFunc","makeDefaultGetEntityName","feedName","_feed$publisher","feedId","split","feed","find","f","publisher","stationNetwork","coreUtils","itinerary","getCompaniesLabelFromNetworks","networks","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\";\nimport coreUtils from \"@opentripplanner/core-utils\";\n\n// eslint-disable-next-line prettier/prettier\nimport type { Company, ConfiguredCompany, Location, Station, Stop, StopEventHandler } 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 { ViewStopButton } from \"./styled\";\n\n// Load the default messages.\nimport defaultEnglishMessages from \"../i18n/en-US.yml\";\nimport { makeDefaultGetEntityName, type StopIdAgencyMap } from \"./util\";\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: Station }) => {\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.bikesAvailable }}\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 Entity = Stop | Station\ntype Props = {\n closePopup?: (arg?: any) => 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 Station {\n return \"bikesAvailable\" 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 = \"networks\" in entity && (coreUtils.itinerary.getCompaniesLabelFromNetworks(entity?.networks || [], configCompanies) || entity?.networks?.[0]);\n\n const bikesAvailablePresent = entityIsStation(entity)\n const entityIsStationHub = bikesAvailablePresent && entity?.bikesAvailable !== undefined && !entity?.isFloatingBike;\n const stopId = !bikesAvailablePresent && 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), [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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAA2C;AAC3C,uGAA4E;AAY5E,sEAAoE;AACpE,+BAA+B;AAC/B,2CAAuD;AACvD,wDAAmD;AAEnD,iCAA4F;AAC5F,qCAA0C;AAE1C,6BAA6B;AAC7B,kEAAuD;AAEvD,4DAA4D;AAC5D,+EAA+E;AAC/E,yDAAyD;AACzD,kEAAkE;AACrD,QAAA,eAAe,GAA8B,IAAA,cAAO,EAAC,mBAAsB,CAAC,CAAC;AAU1F,MAAM,gBAAgB,GAAG,CAAC,MAAc,EAAE,IAAY,EAAE,EAAE;IACxD,mEAAmE;IACnE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,MAAM,CAAA;IAEvD,MAAM,GAAG,GAAG,SAAS,IAAI,CAAC,CAAA;IAC1B,MAAM,GAAG,GAAG,SAAS,IAAI,CAAC,CAAA;IAC1B,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAA;IAE7B,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AAC5B,CAAC,CAAA;AAED,MAAM,iBAAiB,GAAG,CAAC,EAAE,OAAO,EAAiC,EAAE,EAAE;IACvE,OAAO,CACL,8BAAC,iBAAM,CAAC,QAAQ;QACd;YACE,8BAAC,6BAAgB,IACf,cAAc,EACZ,uBAAe,CAAC,+BAA+B,CAAC,EAElD,WAAW,EAAC,8CAA8C,EAC1D,EAAE,EAAC,+BAA+B,EAClC,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,iBAAiB,EAAE,GAC5C,CACE;QACN;YACE,8BAAC,6BAAgB,IACf,cAAc,EACZ,uBAAe,CAAC,+BAA+B,CAAC,EAElD,WAAW,EAAC,8CAA8C,EAC1D,EAAE,EAAC,+BAA+B,EAClC,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,eAAe,EAAE,GAC1C,CACE,CACU,CACnB,CAAA;AACH,CAAC,CAAA;AAED,MAAM,WAAW,GAAG,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAiE,EAAE,EAAE;IACrH,OAAO,CACL,8BAAC,iBAAM,CAAC,QAAQ;QACb,EAAE;YACD;gBACE,8BAAC,6BAAgB,IACf,cAAc,EAAE,uBAAe,CAAC,uBAAuB,CAAC,EACxD,WAAW,EAAC,sBAAsB,EAClC,EAAE,EAAC,uBAAuB,EAC1B,MAAM,EAAE;wBACN,QAAQ;wBACR,MAAM,EAAE,EAAE;qBACX,GACD,CACK;QACX,8BAAC,uBAAc,IAAC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE;YAChD,8BAAC,6BAAgB,IACf,cAAc,EAAE,uBAAe,CAAC,2BAA2B,CAAC,EAC5D,WAAW,EAAC,0CAA0C,EACtD,EAAE,EAAC,2BAA2B,GAC9B,CACa,CACD,CACnB,CAAA;AACH,CAAC,CAAA;AAaD,SAAS,eAAe,CAAC,MAAc;IACrC,OAAO,mBAAmB,IAAI,MAAM,CAAA;AACtC,CAAC;AAED;;GAEG;AACH,SAAgB,QAAQ,CAAC,EACvB,UAAU,GAAG,GAAG,EAAE,GAAE,CAAC,EACrB,eAAe,EACf,MAAM,EACN,aAAa,EACb,eAAe,EACf,WAAW,EACX,aAAa,EACb,KAAK,GACC;;IAEN,MAAM,IAAI,GAAG,IAAA,oBAAO,GAAE,CAAA;IACtB,IAAI,CAAC,MAAM;QAAE,OAAO,6DAAK,CAAA;IAEzB,MAAM,WAAW,GAAG,aAAa,IAAI,IAAA,+BAAwB,EAAC,IAAI,EAAE,uBAAe,CAAC,CAAC;IAErF,kEAAkE;IAClE,IAAI,QAA4B,CAAC;IACjC,IAAI,KAAK,IAAI,MAAM,CAAC,EAAE,EAAE;QACtB,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;QAClD,QAAQ,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,0CAAE,IAAI,CAAC;KAClC;IAED,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAExE,MAAM,cAAc,GAAG,IAAA,iBAAU,EAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAE3D,MAAM,qBAAqB,GAAG,eAAe,CAAC,MAAM,CAAC,CAAA;IACrD,MAAM,kBAAkB,GAAG,qBAAqB,IAAI,MAAM,CAAC,iBAAiB,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;IACrH,MAAM,MAAM,GAAG,CAAC,qBAAqB,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC;IACzE,MAAM,EAAE,GAAG,SAAS,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAA;IAE3E,OAAO,CACL,8BAAC,iBAAM,CAAC,eAAe;QACrB,8BAAC,kCAAgB,IAAC,UAAU,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE;YAChD,8BAAC,iBAAM,CAAC,UAAU;gBACf,eAAe,IAAI,eAAe,CAAC,MAAM,CAAC;gBAC3C,8BAAC,6BAAgB,IACf,cAAc,EAAE,uBAAe,CAAC,2BAA2B,CAAC,EAC5D,WAAW,EAAC,gEAAgE,EAC5E,EAAE,EAAC,2BAA2B,EAC9B,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,cAAc,EAAE,GAC3C,CACgB;YAEnB,kBAAkB,IAAI,8BAAC,iBAAiB,IAAC,OAAO,EAAE,MAAM,GAAI;YAG5D,aAAa,IAAI,CAAC,qBAAqB,IAAI,CAC1C,8BAAC,WAAW,IACV,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,QAAQ,EAClB,aAAa,EAAE,IAAA,mBAAW,EAAC,GAAG,EAAE,CAAC,aAAa,CAAC,MAAc,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,GACzE,CACH;YAGA,WAAW,IAAI,CACd,8BAAC,iBAAM,CAAC,QAAQ;gBACd,8BAAC,iCAAoB,IACnB,KAAK,QACL,QAAQ,EAAE,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,EACxC,WAAW,EAAE,WAAW,GACxB,CACc,CACnB,CACkB,CAEI,CAC1B,CAAC;AACJ,CAAC;AAxED,4BAwEC;AAED,kBAAe,QAAQ,CAAC"}