react-spatial 1.2.0-beta.4 → 1.2.0-beta.7
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.
|
@@ -44,6 +44,12 @@ var propTypes = {
|
|
|
44
44
|
* @return {bool} true if the item is not displayed in the permalink
|
|
45
45
|
*/
|
|
46
46
|
isLayerHidden: PropTypes.func,
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Custom function to be called when the permalink is updated.
|
|
50
|
+
* This property has priority over the history parameter and window.history.replaceState calls.
|
|
51
|
+
*/
|
|
52
|
+
replace: PropTypes.func,
|
|
47
53
|
};
|
|
48
54
|
|
|
49
55
|
var defaultProps = {
|
|
@@ -55,6 +61,7 @@ var defaultProps = {
|
|
|
55
61
|
isLayerHidden: function () {
|
|
56
62
|
return false;
|
|
57
63
|
},
|
|
64
|
+
replace: null,
|
|
58
65
|
};
|
|
59
66
|
|
|
60
67
|
/**
|
|
@@ -237,6 +244,7 @@ var Permalink = /*@__PURE__*/(function (Component) {
|
|
|
237
244
|
var ref = this.props;
|
|
238
245
|
var params = ref.params;
|
|
239
246
|
var history = ref.history;
|
|
247
|
+
var replace = ref.replace;
|
|
240
248
|
var oldParams = qs.parse(window.location.search);
|
|
241
249
|
var parameters = Object.assign({}, oldParams, this.state, params);
|
|
242
250
|
|
|
@@ -258,7 +266,9 @@ var Permalink = /*@__PURE__*/(function (Component) {
|
|
|
258
266
|
(!qStr && window.location.search) ||
|
|
259
267
|
(qStr && search !== window.location.search)
|
|
260
268
|
) {
|
|
261
|
-
if (
|
|
269
|
+
if (replace) {
|
|
270
|
+
replace({ parameters: parameters, search: search });
|
|
271
|
+
} else if (history) {
|
|
262
272
|
history.replace({ search: search });
|
|
263
273
|
} else {
|
|
264
274
|
var ref$1 = window.location;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Permalink.js","sources":["../../../src/components/Permalink/Permalink.js"],"sourcesContent":["import { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport qs from 'query-string';\nimport OLMap from 'ol/Map';\nimport { unByKey } from 'ol/Observable';\nimport LayerService from '../../LayerService';\n\nconst propTypes = {\n /**\n * Either 'react-router' history object:\n * https://github.com/ReactTraining/react-router/blob/master/packages/react-router/docs/api/history.md<br>\n * or default fallback as HTML5 History:\n * https://developer.mozilla.org/en-US/docs/Web/API/History\n */\n history: PropTypes.shape({\n replace: PropTypes.func,\n }),\n\n /**\n * Layers provider.\n */\n layerService: PropTypes.instanceOf(LayerService),\n\n /**\n * An [ol/map](https://openlayers.org/en/latest/apidoc/module-ol_Map-Map.html).\n */\n map: PropTypes.instanceOf(OLMap),\n\n /**\n * Params to be written in url.\n */\n params: PropTypes.object,\n\n /**\n * Maximum number of decimals allowed for coordinates.\n */\n coordinateDecimals: PropTypes.number,\n\n /**\n * Determine if the layer is hidden in the permalink or not.\n *\n * @param {object} item The item to hide or not.\n *\n * @return {bool} true if the item is not displayed in the permalink\n */\n isLayerHidden: PropTypes.func,\n};\n\nconst defaultProps = {\n history: null,\n layerService: null,\n map: null,\n params: {},\n coordinateDecimals: 2,\n isLayerHidden: () => {\n return false;\n },\n};\n\n/**\n * This component handles permalink logic. Injecting an\n * __[ol/map](https://openlayers.org/en/latest/apidoc/module-ol_Map-Map.html)__\n * will add the *map center* (x, y) and the *zoom* (z) parameters to the permalink.\n * Injecting a\n * __[layerService](https://github.com/geops/react-spatial/blob/master/src/LayerService.js)__\n * (including at least one layer)\n * will add the *baselayers* and/or *layers* parameters. Further parameters can\n * be added using __params__.\n */\nclass Permalink extends Component {\n constructor(props) {\n super(props);\n this.state = {};\n this.moveEndRef = null;\n this.updateLayers = this.updateLayers.bind(this);\n }\n\n componentDidMount() {\n const { map, layerService, isLayerHidden } = this.props;\n if (map) {\n this.moveEndRef = map.on('moveend', () => {\n this.onMapMoved();\n });\n }\n\n if (layerService) {\n this.updateLayerService();\n\n // set layer visibility based on 'layers' parameter.\n const urlParams = qs.parse(window.location.search);\n\n if (urlParams.layers) {\n const visibleLayers = urlParams.layers.split(',');\n layerService.getLayersAsFlatArray().forEach((l) => {\n if (visibleLayers.includes(l.key)) {\n l.setVisible(true);\n } else if (\n !l.isBaseLayer &&\n !l.hasVisibleChildren() &&\n !isLayerHidden(l)\n ) {\n l.setVisible(false);\n }\n });\n }\n\n // Set baser layer visibility based on 'baseLayers' parameter.\n const visibleBaseLayers = (urlParams.baselayers || '').split(',');\n layerService.getBaseLayers().forEach((baseLayer) => {\n if (baseLayer.key === visibleBaseLayers[0]) {\n baseLayer.setVisible(true); // The radio group will hide the others baseLayers automatically\n }\n });\n }\n }\n\n componentDidUpdate(prevProps) {\n const { map, layerService } = this.props;\n\n if (layerService !== prevProps.layerService) {\n this.updateLayerService();\n }\n\n if (map !== prevProps.map) {\n this.moveEndRef = map.on('moveend', () => {\n return this.onMapMoved();\n });\n }\n\n this.updateHistory();\n }\n\n componentWillUnmount() {\n const { layerService, map } = this.props;\n\n if (map) {\n unByKey(this.moveEndRef);\n }\n\n if (layerService) {\n layerService.un('change:layers', this.updateLayers);\n layerService.un('change:visible', this.updateLayers);\n }\n }\n\n onMapMoved() {\n const { map } = this.props;\n const mapView = map.getView();\n const { center } = mapView.getProperties();\n\n this.setState({\n x: this.roundCoord(center[0]),\n y: this.roundCoord(center[1]),\n // rounds zoom to two digits max.\n z: +`${Math.round(`${parseFloat(mapView.getZoom())}e+2`)}e-2`,\n });\n }\n\n roundCoord(val) {\n const { coordinateDecimals } = this.props;\n return parseFloat(val.toFixed(coordinateDecimals));\n }\n\n updateLayerService() {\n const { layerService } = this.props;\n if (layerService) {\n layerService.un('change:visible', this.updateState);\n layerService.un('change:layers', this.updateLayers);\n this.updateLayers();\n layerService.on('change:layers', this.updateLayers);\n layerService.on('change:visible', this.updateLayers);\n }\n }\n\n updateLayers() {\n const { layerService, isLayerHidden } = this.props;\n const baseLayers = layerService.getBaseLayers();\n const idx = baseLayers.findIndex((l) => {\n return l.visible;\n });\n if (idx !== -1) {\n const baseLayerVisible = baseLayers.splice(idx, 1);\n baseLayers.unshift(baseLayerVisible[0]);\n }\n\n this.setState({\n layers: layerService\n .getLayersAsFlatArray()\n .filter((l) => {\n return (\n !l.isBaseLayer &&\n l.visible &&\n (!l.hasVisibleChildren() ||\n (l.children || []).every((child) => {\n return isLayerHidden(child);\n })) &&\n !isLayerHidden(l)\n );\n })\n .map((l) => {\n return l.key;\n })\n .join(),\n baselayers:\n baseLayers.length > 1\n ? baseLayers\n .map((l) => {\n return l.key;\n })\n .join()\n : undefined,\n });\n }\n\n updateHistory() {\n const { params, history } = this.props;\n const oldParams = qs.parse(window.location.search);\n const parameters = { ...oldParams, ...this.state, ...params };\n\n // Remove parameters that are undefined or null\n Object.entries(parameters).forEach(([key, value]) => {\n if (value === undefined || value === null) {\n delete parameters[key];\n }\n });\n\n // encodeURI to encode spaces, accents, etc. but not characters like ;,/?:@&=+$-_.!~*'()\n const qStr = encodeURI(qs.stringify(parameters, { encode: false }));\n const search = qStr ? `?${qStr}` : '';\n\n if (\n (!qStr && window.location.search) ||\n (qStr && search !== window.location.search)\n ) {\n if (history) {\n history.replace({ search });\n } else {\n const { hash } = window.location;\n window.history.replaceState(\n undefined,\n undefined,\n `${search}${hash || ''}`,\n );\n }\n }\n }\n\n render() {\n return null;\n }\n}\n\nPermalink.propTypes = propTypes;\nPermalink.defaultProps = defaultProps;\n\nexport default Permalink;\n"],"names":["const","super","this"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Permalink.js","sources":["../../../src/components/Permalink/Permalink.js"],"sourcesContent":["import { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport qs from 'query-string';\nimport OLMap from 'ol/Map';\nimport { unByKey } from 'ol/Observable';\nimport LayerService from '../../LayerService';\n\nconst propTypes = {\n /**\n * Either 'react-router' history object:\n * https://github.com/ReactTraining/react-router/blob/master/packages/react-router/docs/api/history.md<br>\n * or default fallback as HTML5 History:\n * https://developer.mozilla.org/en-US/docs/Web/API/History\n */\n history: PropTypes.shape({\n replace: PropTypes.func,\n }),\n\n /**\n * Layers provider.\n */\n layerService: PropTypes.instanceOf(LayerService),\n\n /**\n * An [ol/map](https://openlayers.org/en/latest/apidoc/module-ol_Map-Map.html).\n */\n map: PropTypes.instanceOf(OLMap),\n\n /**\n * Params to be written in url.\n */\n params: PropTypes.object,\n\n /**\n * Maximum number of decimals allowed for coordinates.\n */\n coordinateDecimals: PropTypes.number,\n\n /**\n * Determine if the layer is hidden in the permalink or not.\n *\n * @param {object} item The item to hide or not.\n *\n * @return {bool} true if the item is not displayed in the permalink\n */\n isLayerHidden: PropTypes.func,\n\n /**\n * Custom function to be called when the permalink is updated.\n * This property has priority over the history parameter and window.history.replaceState calls.\n */\n replace: PropTypes.func,\n};\n\nconst defaultProps = {\n history: null,\n layerService: null,\n map: null,\n params: {},\n coordinateDecimals: 2,\n isLayerHidden: () => {\n return false;\n },\n replace: null,\n};\n\n/**\n * This component handles permalink logic. Injecting an\n * __[ol/map](https://openlayers.org/en/latest/apidoc/module-ol_Map-Map.html)__\n * will add the *map center* (x, y) and the *zoom* (z) parameters to the permalink.\n * Injecting a\n * __[layerService](https://github.com/geops/react-spatial/blob/master/src/LayerService.js)__\n * (including at least one layer)\n * will add the *baselayers* and/or *layers* parameters. Further parameters can\n * be added using __params__.\n */\nclass Permalink extends Component {\n constructor(props) {\n super(props);\n this.state = {};\n this.moveEndRef = null;\n this.updateLayers = this.updateLayers.bind(this);\n }\n\n componentDidMount() {\n const { map, layerService, isLayerHidden } = this.props;\n if (map) {\n this.moveEndRef = map.on('moveend', () => {\n this.onMapMoved();\n });\n }\n\n if (layerService) {\n this.updateLayerService();\n\n // set layer visibility based on 'layers' parameter.\n const urlParams = qs.parse(window.location.search);\n\n if (urlParams.layers) {\n const visibleLayers = urlParams.layers.split(',');\n layerService.getLayersAsFlatArray().forEach((l) => {\n if (visibleLayers.includes(l.key)) {\n l.setVisible(true);\n } else if (\n !l.isBaseLayer &&\n !l.hasVisibleChildren() &&\n !isLayerHidden(l)\n ) {\n l.setVisible(false);\n }\n });\n }\n\n // Set baser layer visibility based on 'baseLayers' parameter.\n const visibleBaseLayers = (urlParams.baselayers || '').split(',');\n layerService.getBaseLayers().forEach((baseLayer) => {\n if (baseLayer.key === visibleBaseLayers[0]) {\n baseLayer.setVisible(true); // The radio group will hide the others baseLayers automatically\n }\n });\n }\n }\n\n componentDidUpdate(prevProps) {\n const { map, layerService } = this.props;\n\n if (layerService !== prevProps.layerService) {\n this.updateLayerService();\n }\n\n if (map !== prevProps.map) {\n this.moveEndRef = map.on('moveend', () => {\n return this.onMapMoved();\n });\n }\n\n this.updateHistory();\n }\n\n componentWillUnmount() {\n const { layerService, map } = this.props;\n\n if (map) {\n unByKey(this.moveEndRef);\n }\n\n if (layerService) {\n layerService.un('change:layers', this.updateLayers);\n layerService.un('change:visible', this.updateLayers);\n }\n }\n\n onMapMoved() {\n const { map } = this.props;\n const mapView = map.getView();\n const { center } = mapView.getProperties();\n\n this.setState({\n x: this.roundCoord(center[0]),\n y: this.roundCoord(center[1]),\n // rounds zoom to two digits max.\n z: +`${Math.round(`${parseFloat(mapView.getZoom())}e+2`)}e-2`,\n });\n }\n\n roundCoord(val) {\n const { coordinateDecimals } = this.props;\n return parseFloat(val.toFixed(coordinateDecimals));\n }\n\n updateLayerService() {\n const { layerService } = this.props;\n if (layerService) {\n layerService.un('change:visible', this.updateState);\n layerService.un('change:layers', this.updateLayers);\n this.updateLayers();\n layerService.on('change:layers', this.updateLayers);\n layerService.on('change:visible', this.updateLayers);\n }\n }\n\n updateLayers() {\n const { layerService, isLayerHidden } = this.props;\n const baseLayers = layerService.getBaseLayers();\n const idx = baseLayers.findIndex((l) => {\n return l.visible;\n });\n if (idx !== -1) {\n const baseLayerVisible = baseLayers.splice(idx, 1);\n baseLayers.unshift(baseLayerVisible[0]);\n }\n\n this.setState({\n layers: layerService\n .getLayersAsFlatArray()\n .filter((l) => {\n return (\n !l.isBaseLayer &&\n l.visible &&\n (!l.hasVisibleChildren() ||\n (l.children || []).every((child) => {\n return isLayerHidden(child);\n })) &&\n !isLayerHidden(l)\n );\n })\n .map((l) => {\n return l.key;\n })\n .join(),\n baselayers:\n baseLayers.length > 1\n ? baseLayers\n .map((l) => {\n return l.key;\n })\n .join()\n : undefined,\n });\n }\n\n updateHistory() {\n const { params, history, replace } = this.props;\n const oldParams = qs.parse(window.location.search);\n const parameters = { ...oldParams, ...this.state, ...params };\n\n // Remove parameters that are undefined or null\n Object.entries(parameters).forEach(([key, value]) => {\n if (value === undefined || value === null) {\n delete parameters[key];\n }\n });\n\n // encodeURI to encode spaces, accents, etc. but not characters like ;,/?:@&=+$-_.!~*'()\n const qStr = encodeURI(qs.stringify(parameters, { encode: false }));\n const search = qStr ? `?${qStr}` : '';\n\n if (\n (!qStr && window.location.search) ||\n (qStr && search !== window.location.search)\n ) {\n if (replace) {\n replace({ parameters, search });\n } else if (history) {\n history.replace({ search });\n } else {\n const { hash } = window.location;\n window.history.replaceState(\n undefined,\n undefined,\n `${search}${hash || ''}`,\n );\n }\n }\n }\n\n render() {\n return null;\n }\n}\n\nPermalink.propTypes = propTypes;\nPermalink.defaultProps = defaultProps;\n\nexport default Permalink;\n"],"names":["const","super","this"],"mappings":"AAAA,SAAS,SAAS,QAAQ,OAAO,CAAC;AAClC,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,MAAM,cAAc,CAAC;AAC9B,OAAO,KAAK,MAAM,QAAQ,CAAC;AAC3B,SAAS,OAAO,QAAQ,eAAe,CAAC;AACxC,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAC9C;AACAA,GAAK,CAAC,SAAS,GAAG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC;AAC3B,IAAI,OAAO,EAAE,SAAS,CAAC,IAAI;AAC3B,GAAG,CAAC;AACJ;AACA;AACA;AACA;AACA,EAAE,YAAY,EAAE,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC;AAClD;AACA;AACA;AACA;AACA,EAAE,GAAG,EAAE,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC;AAClC;AACA;AACA;AACA;AACA,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM;AAC1B;AACA;AACA;AACA;AACA,EAAE,kBAAkB,EAAE,SAAS,CAAC,MAAM;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,aAAa,EAAE,SAAS,CAAC,IAAI;AAC/B;AACA;AACA;AACA;AACA;AACA,EAAE,OAAO,EAAE,SAAS,CAAC,IAAI;AACzB,CAAC,CAAC;AACF;AACAA,GAAK,CAAC,YAAY,GAAG;AACrB,EAAE,OAAO,EAAE,IAAI;AACf,EAAE,YAAY,EAAE,IAAI;AACpB,EAAE,GAAG,EAAE,IAAI;AACX,EAAE,MAAM,EAAE,EAAE;AACZ,EAAE,kBAAkB,EAAE,CAAC;AACvB,EAAE,aAAa,WAAE,GAAM;AACvB,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG;AACH,EAAE,OAAO,EAAE,IAAI;AACf,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAM,SAAS,GAAkB;EAC/B,kBAAW,CAAC,KAAK,EAAE;AACrB,IAAIC,cAAK,OAAC,KAAK,CAAC,CAAC;AACjB,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AACpB,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC3B,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrD;;;;8CAAG;AACH;AACA,sBAAE,+CAAiB,GAAG;;AAAC;AACvB,WAA8C,GAAG,IAAI,CAAC;IAA1C;IAAK;IAAc,sCAA6B;AAC5D,IAAI,IAAI,GAAG,EAAE;AACb,MAAM,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,EAAE,CAAC,SAAS,WAAE,GAAM;AAChD,QAAQC,MAAI,CAAC,UAAU,EAAE,CAAC;AAC1B,OAAO,CAAC,CAAC;AACT,KAAK;AACL;AACA,IAAI,IAAI,YAAY,EAAE;AACtB,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAChC;AACA;AACA,MAAMF,GAAK,CAAC,SAAS,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACzD;AACA,MAAM,IAAI,SAAS,CAAC,MAAM,EAAE;AAC5B,QAAQA,GAAK,CAAC,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC1D,QAAQ,YAAY,CAAC,oBAAoB,EAAE,CAAC,OAAO,UAAC,CAAC,CAAC,EAAK;AAC3D,UAAU,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AAC7C,YAAY,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC/B,WAAW,MAAM;AACjB,YAAY,CAAC,CAAC,CAAC,WAAW;AAC1B,YAAY,CAAC,CAAC,CAAC,kBAAkB,EAAE;AACnC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC;AAC7B,YAAY;AACZ,YAAY,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAChC,WAAW;AACX,SAAS,CAAC,CAAC;AACX,OAAO;AACP;AACA;AACA,MAAMA,GAAK,CAAC,iBAAiB,GAAG,CAAC,SAAS,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACxE,MAAM,YAAY,CAAC,aAAa,EAAE,CAAC,OAAO,UAAC,CAAC,SAAS,EAAK;AAC1D,QAAQ,IAAI,SAAS,CAAC,GAAG,KAAK,iBAAiB,CAAC,CAAC,CAAC,EAAE;AACpD,UAAU,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACrC,SAAS;AACT,OAAO,CAAC,CAAC;AACT,KAAK;AACL,IAAG;AACH;AACA,sBAAE,iDAAkB,CAAC,SAAS,EAAE;;AAAC;AACjC,WAA+B,GAAG,IAAI,CAAC;IAA3B;IAAK,oCAA4B;AAC7C;AACA,IAAI,IAAI,YAAY,KAAK,SAAS,CAAC,YAAY,EAAE;AACjD,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAChC,KAAK;AACL;AACA,IAAI,IAAI,GAAG,KAAK,SAAS,CAAC,GAAG,EAAE;AAC/B,MAAM,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,EAAE,CAAC,SAAS,WAAE,GAAM;AAChD,QAAQ,OAAOE,MAAI,CAAC,UAAU,EAAE,CAAC;AACjC,OAAO,CAAC,CAAC;AACT,KAAK;AACL;AACA,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;AACzB,IAAG;AACH;AACA,sBAAE,qDAAoB,GAAG;AACzB,WAA+B,GAAG,IAAI,CAAC;IAA3B;IAAc,kBAAmB;AAC7C;AACA,IAAI,IAAI,GAAG,EAAE;AACb,MAAM,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC/B,KAAK;AACL;AACA,IAAI,IAAI,YAAY,EAAE;AACtB,MAAM,YAAY,CAAC,EAAE,CAAC,eAAe,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AAC1D,MAAM,YAAY,CAAC,EAAE,CAAC,gBAAgB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AAC3D,KAAK;AACL,IAAG;AACH;AACA,sBAAE,iCAAU,GAAG;AACf,WAAiB,GAAG,IAAI,CAAC;IAAb,kBAAmB;AAC/B,IAAIF,GAAK,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;AAClC,aAAoB,GAAG,OAAO,CAAC,aAAa;IAAhC,0BAAmC;AAC/C;AACA,IAAI,IAAI,CAAC,QAAQ,CAAC;AAClB,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACnC;AACA,MAAM,CAAC,EAAE,GAAI,IAAI,CAAC,KAAK,GAAI,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,EAAC,SAAK,EAAC,SAAK;AACnE,KAAK,CAAC,CAAC;AACP,IAAG;AACH;AACA,sBAAE,iCAAU,CAAC,GAAG,EAAE;AAClB,WAAgC,GAAG,IAAI,CAAC;IAA5B,gDAAkC;AAC9C,IAAI,OAAO,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC;AACvD,IAAG;AACH;AACA,sBAAE,iDAAkB,GAAG;AACvB,WAA0B,GAAG,IAAI,CAAC;IAAtB,oCAA4B;AACxC,IAAI,IAAI,YAAY,EAAE;AACtB,MAAM,YAAY,CAAC,EAAE,CAAC,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AAC1D,MAAM,YAAY,CAAC,EAAE,CAAC,eAAe,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AAC1D,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;AAC1B,MAAM,YAAY,CAAC,EAAE,CAAC,eAAe,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AAC1D,MAAM,YAAY,CAAC,EAAE,CAAC,gBAAgB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AAC3D,KAAK;AACL,IAAG;AACH;AACA,sBAAE,qCAAY,GAAG;AACjB,WAAyC,GAAG,IAAI,CAAC;IAArC;IAAc,sCAA6B;AACvD,IAAIA,GAAK,CAAC,UAAU,GAAG,YAAY,CAAC,aAAa,EAAE,CAAC;AACpD,IAAIA,GAAK,CAAC,GAAG,GAAG,UAAU,CAAC,SAAS,UAAC,CAAC,CAAC,EAAK;AAC5C,MAAM,OAAO,CAAC,CAAC,OAAO,CAAC;AACvB,KAAK,CAAC,CAAC;AACP,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE;AACpB,MAAMA,GAAK,CAAC,gBAAgB,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACzD,MAAM,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,KAAK;AACL;AACA,IAAI,IAAI,CAAC,QAAQ,CAAC;AAClB,MAAM,MAAM,EAAE,YAAY;AAC1B,SAAS,oBAAoB,EAAE;AAC/B,SAAS,MAAM,UAAC,CAAC,CAAC,EAAK;AACvB,UAAU,OAAO;AACjB,YAAY,CAAC,CAAC,CAAC,WAAW;AAC1B,YAAY,CAAC,CAAC,OAAO;AACrB,YAAY,CAAC,CAAC,CAAC,CAAC,kBAAkB,EAAE;AACpC,cAAc,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,KAAK,UAAC,CAAC,KAAK,EAAK;AAClD,gBAAgB,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;AAC5C,eAAe,CAAC,CAAC;AACjB,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC;AAC7B,WAAW,CAAC;AACZ,SAAS,CAAC;AACV,SAAS,GAAG,UAAC,CAAC,CAAC,EAAK;AACpB,UAAU,OAAO,CAAC,CAAC,GAAG,CAAC;AACvB,SAAS,CAAC;AACV,SAAS,IAAI,EAAE;AACf,MAAM,UAAU;AAChB,QAAQ,UAAU,CAAC,MAAM,GAAG,CAAC;AAC7B,YAAY,UAAU;AACtB,eAAe,GAAG,UAAC,CAAC,CAAC,EAAK;AAC1B,gBAAgB,OAAO,CAAC,CAAC,GAAG,CAAC;AAC7B,eAAe,CAAC;AAChB,eAAe,IAAI,EAAE;AACrB,YAAY,SAAS;AACrB,KAAK,CAAC,CAAC;AACP,IAAG;AACH;AACA,sBAAE,uCAAa,GAAG;AAClB,WAAsC,GAAG,IAAI,CAAC;IAAlC;IAAQ;IAAS,0BAAuB;AACpD,IAAIA,GAAK,CAAC,SAAS,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACvD,IAAIA,GAAK,CAAC,UAAU,GAAG,kBAAK,SAAS,EAAK,IAAI,CAAC,KAAK,EAAK,MAAM,CAAE,CAAC;AAClE;AACA;AACA,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,UAAC,IAAa,EAAK,CAAhB;uBAAK;;AAAY;AAC1D,MAAM,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE;AACjD,QAAQ,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;AAC/B,OAAO;AACP,KAAK,CAAC,CAAC;AACP;AACA;AACA,IAAIA,GAAK,CAAC,IAAI,GAAG,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AACxE,IAAIA,GAAK,CAAC,MAAM,GAAG,IAAI,GAAG,OAAI,KAAM,GAAG,EAAE,CAAC;AAC1C;AACA,IAAI;AACJ,MAAM,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;AACvC,MAAM,CAAC,IAAI,IAAI,MAAM,KAAK,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;AACjD,MAAM;AACN,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,OAAO,CAAC,cAAE,UAAU,UAAE,MAAM,EAAE,CAAC,CAAC;AACxC,OAAO,MAAM,IAAI,OAAO,EAAE;AAC1B,QAAQ,OAAO,CAAC,OAAO,CAAC,UAAE,MAAM,EAAE,CAAC,CAAC;AACpC,OAAO,MAAM;AACb,iBAAsB,GAAG,MAAM,CAAC;QAAhB,sBAAyB;AACzC,QAAQ,MAAM,CAAC,OAAO,CAAC,YAAY;AACnC,UAAU,SAAS;AACnB,UAAU,SAAS;AACnB,UAAU,MAAG,UAAS,IAAI,IAAI,IAAK;AACnC,SAAS,CAAC;AACV,OAAO;AACP,KAAK;AACL,IAAG;AACH;AACA,sBAAE,yBAAM,GAAG;AACX,IAAI,OAAO,IAAI,CAAC;AAChB;;;EAtLwB,YAuLvB;AACD;AACA,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC;AAChC,SAAS,CAAC,YAAY,GAAG,YAAY,CAAC;AACtC;AACA,eAAe,SAAS,CAAC;"}
|
|
@@ -77,13 +77,13 @@ var defaultRenderStationImg = function (
|
|
|
77
77
|
isNotStation
|
|
78
78
|
) {
|
|
79
79
|
var length = stations.length;
|
|
80
|
-
var src = station;
|
|
80
|
+
var src = station.src || station;
|
|
81
81
|
if (index === 0) {
|
|
82
|
-
src = firstStation;
|
|
82
|
+
src = firstStation.src || firstStation;
|
|
83
83
|
} else if (index === length - 1) {
|
|
84
|
-
src = lastStation;
|
|
84
|
+
src = lastStation.src || lastStation;
|
|
85
85
|
} else if (isNotStation) {
|
|
86
|
-
src = line;
|
|
86
|
+
src = line.src || line;
|
|
87
87
|
}
|
|
88
88
|
return React.createElement( 'img', { src: src, alt: "routeScheduleLine", className: "rt-route-icon" });
|
|
89
89
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RouteSchedule.js","sources":["../../../src/components/RouteSchedule/RouteSchedule.js"],"sourcesContent":["/* eslint-disable react/no-unused-prop-types */\n/* eslint-disable react/prop-types */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { TrackerLayer } from 'mobility-toolbox-js/ol';\nimport { getBgColor } from 'mobility-toolbox-js/common/trackerConfig';\nimport { getHoursAndMinutes, getDelayString } from '../../utils/timeUtils';\nimport ReactTransitPropTypes from '../../propTypes';\nimport firstStation from '../../images/RouteSchedule/firstStation.png';\nimport station from '../../images/RouteSchedule/station.png';\nimport lastStation from '../../images/RouteSchedule/lastStation.png';\nimport line from '../../images/RouteSchedule/line.png';\n\n/**\n * Returns a color class to display the delay.\n * @param {Number} time Delay time in milliseconds.\n */\nconst getDelayColor = (time) => {\n const secs = Math.round(((time / 1800 / 2) * 3600) / 1000);\n if (secs >= 3600) {\n return 'dark-red';\n }\n if (secs >= 500) {\n return 'middle-red';\n }\n if (secs >= 300) {\n return 'light-red';\n }\n if (secs >= 180) {\n return 'orange';\n }\n return 'green';\n};\n\n/**\n * Returns true if the train doesn't stop to the station.\n * @param {Object} stop Station information.\n */\nconst isNotStop = (stop) => {\n return !stop.arrivalTime && !stop.departureTime;\n};\n\n/**\n * Returns if the station has already been passed by the vehicule.\n * @param {Object} stop Station information.\n * @param {number} time The current time to test in ms.\n * @param {Array<Object>} stops the list of all stops of the train.\n * @param {idx} idx The index of the stop object in the stops array.\n */\nconst isPassed = (stop, time, stops, idx) => {\n // If the train doesn't stop to the stop object, we test if the stop just before has been passed or not.\n // if yes the current stop is considered as passed.\n if (isNotStop(stop)) {\n if (stops[idx - 1] && idx > 0) {\n return isPassed(stops[idx - 1], time, stops, idx);\n }\n return true;\n }\n\n // Sometimes stop.departureDelay is undefined.\n const timeToCompare = stop.departureTime || stop.arrivalTime || 0;\n const delayToCompare = stop.departureDelay || stop.arrivalDelay || 0;\n return timeToCompare + delayToCompare <= time;\n};\n\n/**\n * Returns an image for first, middle or last stations.\n * @param {Number} stations The stations list.\n * @param {Number} index Index of the station in the list.\n * @param {Boolean} isStationPassed If the train is already passed at this station.\n * @param {Boolean} isNotStation If the train doesn't stop to this station.\n */\nconst defaultRenderStationImg = (\n stations,\n index,\n isStationPassed,\n isNotStation,\n) => {\n const { length } = stations;\n let src = station;\n if (index === 0) {\n src = firstStation;\n } else if (index === length - 1) {\n src = lastStation;\n } else if (isNotStation) {\n src = line;\n }\n return <img src={src} alt=\"routeScheduleLine\" className=\"rt-route-icon\" />;\n};\n\nconst defaultRenderStation = ({\n lineInfos,\n onStationClick,\n trackerLayer,\n renderStationImg,\n stop,\n idx,\n}) => {\n const {\n stationId,\n arrivalDelay,\n departureDelay,\n arrivalTime,\n departureTime,\n cancelled,\n stationName,\n } = stop;\n const { stations } = lineInfos;\n const isFirstStation = idx === 0;\n const isLastStation = idx === stations.length - 1;\n const isStationPassed = isPassed(stop, trackerLayer.time, stations, idx);\n const isNotStation = isNotStop(stop);\n return (\n <div\n // Train line can go in circle so begin and end have the same id,\n // using the time in the key should fix the issue.\n key={(stationId || stationName) + arrivalTime + departureTime}\n role=\"button\"\n className={[\n 'rt-route-station',\n isStationPassed ? ' rt-passed' : '',\n isNotStation ? ' rt-no-stop' : '',\n ].join('')}\n onClick={(e) => {\n return onStationClick(stop, e);\n }}\n tabIndex={0}\n onKeyPress={(e) => {\n return e.which === 13 && onStationClick(stop, e);\n }}\n >\n <div className=\"rt-route-delay\">\n {typeof arrivalDelay === 'undefined' || isFirstStation || cancelled ? (\n ''\n ) : (\n <span\n className={`rt-route-delay-arrival${` ${getDelayColor(\n arrivalDelay,\n )}`}`}\n >\n {`+${getDelayString(arrivalDelay)}`}\n </span>\n )}\n {typeof departureDelay === 'undefined' || isLastStation || cancelled ? (\n ''\n ) : (\n <span\n className={`rt-route-delay-departure${` ${getDelayColor(\n departureDelay,\n )}`}`}\n >\n {`+${getDelayString(departureDelay)}`}\n </span>\n )}\n </div>\n <div className=\"rt-route-times\">\n <span\n className={`rt-route-time-arrival ${\n cancelled ? 'rt-route-cancelled' : ''\n }`}\n >\n {getHoursAndMinutes(arrivalTime)}\n </span>\n <span\n className={`rt-route-time-departure ${\n cancelled ? 'rt-route-cancelled' : ''\n }`}\n >\n {getHoursAndMinutes(departureTime)}\n </span>\n </div>\n {renderStationImg(stations, idx, isStationPassed, isNotStation)}\n <div className={cancelled ? 'rt-route-cancelled' : ''}>{stationName}</div>\n </div>\n );\n};\n\nconst renderRouteIdentifier = ({ routeIdentifier, longName }) => {\n if (routeIdentifier) {\n // first part of the id, without leading zeros.\n const id = parseInt(routeIdentifier.split('.')[0], 10);\n if (!longName.includes(id)) {\n return ` (${id})`;\n }\n }\n return null;\n};\n\nconst defaultRenderHeader = ({ lineInfos, renderHeaderButtons }) => {\n const {\n type,\n vehicleType,\n shortName,\n longName,\n stroke,\n destination,\n routeIdentifier,\n text_color: textColor,\n } = lineInfos;\n return (\n <div className=\"rt-route-header\">\n <span\n className=\"rt-route-icon\"\n style={{\n /* stylelint-disable-next-line value-keyword-case */\n backgroundColor: stroke || getBgColor(type || vehicleType),\n color: textColor || 'black',\n }}\n >\n {shortName}\n </span>\n <div className=\"rt-route-title\">\n <span className=\"rt-route-name\">{destination}</span>\n <span>\n {longName}\n {renderRouteIdentifier(lineInfos)}\n </span>\n </div>\n <div className=\"rt-route-buttons\">\n {renderHeaderButtons(routeIdentifier)}\n </div>\n </div>\n );\n};\n\nconst defaultRenderFooter = (props) => {\n const { lineInfos, renderCopyright } = props;\n if (!lineInfos.operator && !lineInfos.publisher) {\n return null;\n }\n return <div className=\"rt-route-footer\">{renderCopyright({ ...props })}</div>;\n};\n\nconst defaultRenderLink = (text, url) => {\n return (\n <div className=\"rt-route-copyright-link\">\n {url ? (\n <a href={url} target=\"_blank\" rel=\"noreferrer\">\n {text}\n </a>\n ) : (\n <>{text}</>\n )}\n </div>\n );\n};\n\nconst defaultRenderCopyright = ({ lineInfos }) => {\n return (\n <span className=\"rt-route-copyright\">\n {lineInfos.operator &&\n defaultRenderLink(lineInfos.operator, lineInfos.operatorUrl)}\n {lineInfos.operator && lineInfos.publisher && <span> - </span>}\n {lineInfos.publisher &&\n defaultRenderLink(lineInfos.publisher, lineInfos.publisherUrl)}\n {lineInfos.license && <span> (</span>}\n {lineInfos.license &&\n defaultRenderLink(lineInfos.license, lineInfos.licenseUrl)}\n {lineInfos.license && ')'}\n </span>\n );\n};\n\nconst propTypes = {\n /**\n * CSS class of the route schedule wrapper.\n */\n className: PropTypes.string,\n\n /**\n * Trajectory stations informations.\n */\n lineInfos: ReactTransitPropTypes.lineInfos,\n\n /**\n * Trackerlayer.\n */\n trackerLayer: PropTypes.instanceOf(TrackerLayer).isRequired,\n\n /**\n * Render Header of the route scheduler.\n */\n renderHeader: PropTypes.func,\n\n /**\n * Render Footer of the route scheduler.\n */\n renderFooter: PropTypes.func,\n\n /**\n * Render Copyright of the route scheduler.\n */\n renderCopyright: PropTypes.func,\n\n /**\n * Render the status of the station image.\n */\n renderStationImg: PropTypes.func,\n\n /**\n * Render a station.\n */\n renderStation: PropTypes.func,\n\n /**\n * Function triggered on station's click event.\n */\n onStationClick: PropTypes.func,\n\n /**\n * Function to render header buttons.\n */\n renderHeaderButtons: PropTypes.func,\n};\n\nconst defaultProps = {\n className: 'rt-route-schedule',\n lineInfos: null,\n renderHeader: defaultRenderHeader,\n renderStation: defaultRenderStation,\n renderStationImg: defaultRenderStationImg,\n renderCopyright: defaultRenderCopyright,\n renderFooter: defaultRenderFooter,\n renderHeaderButtons: () => {\n return null;\n },\n onStationClick: () => {},\n};\n\n/**\n * RouteSchedule displays information, stops and punctuality about the clicked route.\n */\nfunction RouteSchedule(props) {\n const { lineInfos, className, renderStation, renderHeader, renderFooter } =\n props;\n\n if (!lineInfos) {\n return null;\n }\n\n return (\n <div className={className}>\n {renderHeader({ ...props })}\n <div className=\"rt-route-body\">\n {lineInfos.stations.map((stop, idx) => {\n return renderStation({ ...props, stop, idx });\n })}\n </div>\n {renderFooter({ ...props })}\n </div>\n );\n}\n\nRouteSchedule.propTypes = propTypes;\nRouteSchedule.defaultProps = defaultProps;\n\nexport default React.memo(RouteSchedule);\n"],"names":["const","let"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RouteSchedule.js","sources":["../../../src/components/RouteSchedule/RouteSchedule.js"],"sourcesContent":["/* eslint-disable react/no-unused-prop-types */\n/* eslint-disable react/prop-types */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { TrackerLayer } from 'mobility-toolbox-js/ol';\nimport { getBgColor } from 'mobility-toolbox-js/common/trackerConfig';\nimport { getHoursAndMinutes, getDelayString } from '../../utils/timeUtils';\nimport ReactTransitPropTypes from '../../propTypes';\nimport firstStation from '../../images/RouteSchedule/firstStation.png';\nimport station from '../../images/RouteSchedule/station.png';\nimport lastStation from '../../images/RouteSchedule/lastStation.png';\nimport line from '../../images/RouteSchedule/line.png';\n\n/**\n * Returns a color class to display the delay.\n * @param {Number} time Delay time in milliseconds.\n */\nconst getDelayColor = (time) => {\n const secs = Math.round(((time / 1800 / 2) * 3600) / 1000);\n if (secs >= 3600) {\n return 'dark-red';\n }\n if (secs >= 500) {\n return 'middle-red';\n }\n if (secs >= 300) {\n return 'light-red';\n }\n if (secs >= 180) {\n return 'orange';\n }\n return 'green';\n};\n\n/**\n * Returns true if the train doesn't stop to the station.\n * @param {Object} stop Station information.\n */\nconst isNotStop = (stop) => {\n return !stop.arrivalTime && !stop.departureTime;\n};\n\n/**\n * Returns if the station has already been passed by the vehicule.\n * @param {Object} stop Station information.\n * @param {number} time The current time to test in ms.\n * @param {Array<Object>} stops the list of all stops of the train.\n * @param {idx} idx The index of the stop object in the stops array.\n */\nconst isPassed = (stop, time, stops, idx) => {\n // If the train doesn't stop to the stop object, we test if the stop just before has been passed or not.\n // if yes the current stop is considered as passed.\n if (isNotStop(stop)) {\n if (stops[idx - 1] && idx > 0) {\n return isPassed(stops[idx - 1], time, stops, idx);\n }\n return true;\n }\n\n // Sometimes stop.departureDelay is undefined.\n const timeToCompare = stop.departureTime || stop.arrivalTime || 0;\n const delayToCompare = stop.departureDelay || stop.arrivalDelay || 0;\n return timeToCompare + delayToCompare <= time;\n};\n\n/**\n * Returns an image for first, middle or last stations.\n * @param {Number} stations The stations list.\n * @param {Number} index Index of the station in the list.\n * @param {Boolean} isStationPassed If the train is already passed at this station.\n * @param {Boolean} isNotStation If the train doesn't stop to this station.\n */\nconst defaultRenderStationImg = (\n stations,\n index,\n isStationPassed,\n isNotStation,\n) => {\n const { length } = stations;\n let src = station.src || station;\n if (index === 0) {\n src = firstStation.src || firstStation;\n } else if (index === length - 1) {\n src = lastStation.src || lastStation;\n } else if (isNotStation) {\n src = line.src || line;\n }\n return <img src={src} alt=\"routeScheduleLine\" className=\"rt-route-icon\" />;\n};\n\nconst defaultRenderStation = ({\n lineInfos,\n onStationClick,\n trackerLayer,\n renderStationImg,\n stop,\n idx,\n}) => {\n const {\n stationId,\n arrivalDelay,\n departureDelay,\n arrivalTime,\n departureTime,\n cancelled,\n stationName,\n } = stop;\n const { stations } = lineInfos;\n const isFirstStation = idx === 0;\n const isLastStation = idx === stations.length - 1;\n const isStationPassed = isPassed(stop, trackerLayer.time, stations, idx);\n const isNotStation = isNotStop(stop);\n return (\n <div\n // Train line can go in circle so begin and end have the same id,\n // using the time in the key should fix the issue.\n key={(stationId || stationName) + arrivalTime + departureTime}\n role=\"button\"\n className={[\n 'rt-route-station',\n isStationPassed ? ' rt-passed' : '',\n isNotStation ? ' rt-no-stop' : '',\n ].join('')}\n onClick={(e) => {\n return onStationClick(stop, e);\n }}\n tabIndex={0}\n onKeyPress={(e) => {\n return e.which === 13 && onStationClick(stop, e);\n }}\n >\n <div className=\"rt-route-delay\">\n {typeof arrivalDelay === 'undefined' || isFirstStation || cancelled ? (\n ''\n ) : (\n <span\n className={`rt-route-delay-arrival${` ${getDelayColor(\n arrivalDelay,\n )}`}`}\n >\n {`+${getDelayString(arrivalDelay)}`}\n </span>\n )}\n {typeof departureDelay === 'undefined' || isLastStation || cancelled ? (\n ''\n ) : (\n <span\n className={`rt-route-delay-departure${` ${getDelayColor(\n departureDelay,\n )}`}`}\n >\n {`+${getDelayString(departureDelay)}`}\n </span>\n )}\n </div>\n <div className=\"rt-route-times\">\n <span\n className={`rt-route-time-arrival ${\n cancelled ? 'rt-route-cancelled' : ''\n }`}\n >\n {getHoursAndMinutes(arrivalTime)}\n </span>\n <span\n className={`rt-route-time-departure ${\n cancelled ? 'rt-route-cancelled' : ''\n }`}\n >\n {getHoursAndMinutes(departureTime)}\n </span>\n </div>\n {renderStationImg(stations, idx, isStationPassed, isNotStation)}\n <div className={cancelled ? 'rt-route-cancelled' : ''}>{stationName}</div>\n </div>\n );\n};\n\nconst renderRouteIdentifier = ({ routeIdentifier, longName }) => {\n if (routeIdentifier) {\n // first part of the id, without leading zeros.\n const id = parseInt(routeIdentifier.split('.')[0], 10);\n if (!longName.includes(id)) {\n return ` (${id})`;\n }\n }\n return null;\n};\n\nconst defaultRenderHeader = ({ lineInfos, renderHeaderButtons }) => {\n const {\n type,\n vehicleType,\n shortName,\n longName,\n stroke,\n destination,\n routeIdentifier,\n text_color: textColor,\n } = lineInfos;\n return (\n <div className=\"rt-route-header\">\n <span\n className=\"rt-route-icon\"\n style={{\n /* stylelint-disable-next-line value-keyword-case */\n backgroundColor: stroke || getBgColor(type || vehicleType),\n color: textColor || 'black',\n }}\n >\n {shortName}\n </span>\n <div className=\"rt-route-title\">\n <span className=\"rt-route-name\">{destination}</span>\n <span>\n {longName}\n {renderRouteIdentifier(lineInfos)}\n </span>\n </div>\n <div className=\"rt-route-buttons\">\n {renderHeaderButtons(routeIdentifier)}\n </div>\n </div>\n );\n};\n\nconst defaultRenderFooter = (props) => {\n const { lineInfos, renderCopyright } = props;\n if (!lineInfos.operator && !lineInfos.publisher) {\n return null;\n }\n return <div className=\"rt-route-footer\">{renderCopyright({ ...props })}</div>;\n};\n\nconst defaultRenderLink = (text, url) => {\n return (\n <div className=\"rt-route-copyright-link\">\n {url ? (\n <a href={url} target=\"_blank\" rel=\"noreferrer\">\n {text}\n </a>\n ) : (\n <>{text}</>\n )}\n </div>\n );\n};\n\nconst defaultRenderCopyright = ({ lineInfos }) => {\n return (\n <span className=\"rt-route-copyright\">\n {lineInfos.operator &&\n defaultRenderLink(lineInfos.operator, lineInfos.operatorUrl)}\n {lineInfos.operator && lineInfos.publisher && <span> - </span>}\n {lineInfos.publisher &&\n defaultRenderLink(lineInfos.publisher, lineInfos.publisherUrl)}\n {lineInfos.license && <span> (</span>}\n {lineInfos.license &&\n defaultRenderLink(lineInfos.license, lineInfos.licenseUrl)}\n {lineInfos.license && ')'}\n </span>\n );\n};\n\nconst propTypes = {\n /**\n * CSS class of the route schedule wrapper.\n */\n className: PropTypes.string,\n\n /**\n * Trajectory stations informations.\n */\n lineInfos: ReactTransitPropTypes.lineInfos,\n\n /**\n * Trackerlayer.\n */\n trackerLayer: PropTypes.instanceOf(TrackerLayer).isRequired,\n\n /**\n * Render Header of the route scheduler.\n */\n renderHeader: PropTypes.func,\n\n /**\n * Render Footer of the route scheduler.\n */\n renderFooter: PropTypes.func,\n\n /**\n * Render Copyright of the route scheduler.\n */\n renderCopyright: PropTypes.func,\n\n /**\n * Render the status of the station image.\n */\n renderStationImg: PropTypes.func,\n\n /**\n * Render a station.\n */\n renderStation: PropTypes.func,\n\n /**\n * Function triggered on station's click event.\n */\n onStationClick: PropTypes.func,\n\n /**\n * Function to render header buttons.\n */\n renderHeaderButtons: PropTypes.func,\n};\n\nconst defaultProps = {\n className: 'rt-route-schedule',\n lineInfos: null,\n renderHeader: defaultRenderHeader,\n renderStation: defaultRenderStation,\n renderStationImg: defaultRenderStationImg,\n renderCopyright: defaultRenderCopyright,\n renderFooter: defaultRenderFooter,\n renderHeaderButtons: () => {\n return null;\n },\n onStationClick: () => {},\n};\n\n/**\n * RouteSchedule displays information, stops and punctuality about the clicked route.\n */\nfunction RouteSchedule(props) {\n const { lineInfos, className, renderStation, renderHeader, renderFooter } =\n props;\n\n if (!lineInfos) {\n return null;\n }\n\n return (\n <div className={className}>\n {renderHeader({ ...props })}\n <div className=\"rt-route-body\">\n {lineInfos.stations.map((stop, idx) => {\n return renderStation({ ...props, stop, idx });\n })}\n </div>\n {renderFooter({ ...props })}\n </div>\n );\n}\n\nRouteSchedule.propTypes = propTypes;\nRouteSchedule.defaultProps = defaultProps;\n\nexport default React.memo(RouteSchedule);\n"],"names":["const","let"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-spatial",
|
|
3
3
|
"description": "Components to build React map apps.",
|
|
4
|
-
"version": "1.2.0-beta.
|
|
4
|
+
"version": "1.2.0-beta.7",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"dependencies": {
|
|
7
7
|
"@geops/geops-ui": "0.1.13",
|
|
@@ -21,8 +21,8 @@
|
|
|
21
21
|
"mapbox-gl": "^1",
|
|
22
22
|
"mobility-toolbox-js": "^1",
|
|
23
23
|
"ol": "^6",
|
|
24
|
-
"react": "^
|
|
25
|
-
"react-dom": "^
|
|
24
|
+
"react": "^18",
|
|
25
|
+
"react-dom": "^18"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@babel/core": "7.15.0",
|
|
@@ -66,14 +66,14 @@
|
|
|
66
66
|
"jsts": "2.7.3",
|
|
67
67
|
"lint-staged": "11.2.0",
|
|
68
68
|
"mapbox-gl": "1.13.1",
|
|
69
|
-
"mobility-toolbox-js": "1.
|
|
69
|
+
"mobility-toolbox-js": "1.7.10-beta.3",
|
|
70
70
|
"ol": "6.6.1",
|
|
71
71
|
"prettier": "2.4.1",
|
|
72
72
|
"proj4": "2.7.5",
|
|
73
73
|
"prop-types": "15.7.2",
|
|
74
|
-
"react": "
|
|
74
|
+
"react": "17",
|
|
75
75
|
"react-app-polyfill": "2.0.0",
|
|
76
|
-
"react-dom": "
|
|
76
|
+
"react-dom": "17",
|
|
77
77
|
"react-styleguidist": "11.0.8",
|
|
78
78
|
"react-svg-loader": "3.0.3",
|
|
79
79
|
"react-test-renderer": "16.13.1",
|