react-spatial 1.2.0 → 1.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/components/CanvasSaveButton/CanvasSaveButton.test.js +1 -1
  2. package/components/CanvasSaveButton/CanvasSaveButton.test.js.map +1 -1
  3. package/components/Copyright/Copyright.test.js +1 -1
  4. package/components/Copyright/Copyright.test.js.map +1 -1
  5. package/components/FeatureExportButton/FeatureExportButton.test.js +2 -2
  6. package/components/FeatureExportButton/FeatureExportButton.test.js.map +1 -1
  7. package/components/FilterButton/FilterButton.test.js +1 -1
  8. package/components/FilterButton/FilterButton.test.js.map +1 -1
  9. package/components/FitExtent/FitExtent.test.js +1 -1
  10. package/components/FitExtent/FitExtent.test.js.map +1 -1
  11. package/components/FollowButton/FollowButton.test.js +1 -1
  12. package/components/FollowButton/FollowButton.test.js.map +1 -1
  13. package/components/Geolocation/Geolocation.test.js +1 -1
  14. package/components/Geolocation/Geolocation.test.js.map +1 -1
  15. package/components/LayerTree/LayerTree.js +17 -1
  16. package/components/LayerTree/LayerTree.js.map +1 -1
  17. package/components/LayerTree/LayerTree.test.js +1 -1
  18. package/components/LayerTree/LayerTree.test.js.map +1 -1
  19. package/components/MousePosition/MousePosition.test.js +1 -1
  20. package/components/MousePosition/MousePosition.test.js.map +1 -1
  21. package/components/NorthArrow/NorthArrow.test.js +1 -1
  22. package/components/NorthArrow/NorthArrow.test.js.map +1 -1
  23. package/components/Overlay/Overlay.js +2 -2
  24. package/components/Overlay/Overlay.js.map +1 -1
  25. package/components/Overlay/Overlay.test.js +1 -1
  26. package/components/Overlay/Overlay.test.js.map +1 -1
  27. package/components/Permalink/Permalink.js +26 -12
  28. package/components/Permalink/Permalink.js.map +1 -1
  29. package/components/Permalink/Permalink.test.js +1 -1
  30. package/components/Permalink/Permalink.test.js.map +1 -1
  31. package/components/Popup/Popup.test.js +1 -1
  32. package/components/Popup/Popup.test.js.map +1 -1
  33. package/components/ResizeHandler/ResizeHandler.js +2 -2
  34. package/components/ResizeHandler/ResizeHandler.js.map +1 -1
  35. package/components/ResizeHandler/ResizeHandler.test.js +1 -1
  36. package/components/ResizeHandler/ResizeHandler.test.js.map +1 -1
  37. package/components/RouteSchedule/RouteSchedule.js +6 -5
  38. package/components/RouteSchedule/RouteSchedule.js.map +1 -1
  39. package/components/ScaleLine/ScaleLine.test.js +1 -1
  40. package/components/ScaleLine/ScaleLine.test.js.map +1 -1
  41. package/components/Zoom/Zoom.test.js +1 -1
  42. package/components/Zoom/Zoom.test.js.map +1 -1
  43. package/package.json +12 -12
  44. package/utils/KML.test.js +1 -1
  45. package/utils/KML.test.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"LayerTree.js","sources":["../../../src/components/LayerTree/LayerTree.js"],"sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nconst propTypes = {\n /**\n * Layers provider.\n */\n layerService: PropTypes.object,\n\n /**\n * CSS class to apply on the container.\n */\n className: PropTypes.string,\n\n /**\n * Padding left to apply on each level.\n */\n padding: PropTypes.number,\n\n /**\n * Determine if the item is hidden in the tree 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 tree\n */\n isItemHidden: PropTypes.func,\n\n /**\n * Determine the className used by the div containing the parent and its children.\n */\n getParentClassName: PropTypes.func,\n\n /**\n * Custom function to render an item in the tree.\n *\n * @param {object} item The item to render.\n *\n * @return {node} A jsx node.\n */\n renderItem: PropTypes.func,\n\n /**\n * Custom function to render only the content of an item in the tree.\n *\n * @param {object} item The item to render.\n *\n * @return {node} A jsx node.\n */\n renderItemContent: PropTypes.func,\n\n /**\n * Custom function to render custom content before the list of children of an item.\n *\n * @param {object} item The item to render.\n *\n * @return {node} A jsx node.\n */\n renderBeforeItem: PropTypes.func,\n\n /**\n * Custom function to render custom content after the list of children of an item.\n *\n * @param {object} item The item to render.\n *\n * @return {node} A jsx node.\n */\n renderAfterItem: PropTypes.func,\n\n /**\n * Object holding title for the layer tree's buttons.\n */\n titles: PropTypes.shape({\n /**\n * aria-label on checkbox to show layer.\n */\n layerShow: PropTypes.string,\n /**\n * aria-label on checkbox to hide layer.\n */\n layerHide: PropTypes.string,\n /**\n * title on button to show sublayers.\n */\n subLayerShow: PropTypes.string,\n /**\n * title on button to show sublayers.\n */\n subLayerHide: PropTypes.string,\n }),\n\n /**\n * Boolean determining whether children collapse/expand when their parent is toggled\n * @param {...(boolean|function)} expandChildren Boolean or function returning a boolean.\n * @return {boolean} True or false\n */\n expandChildren: PropTypes.oneOfType([PropTypes.bool, PropTypes.func]),\n\n /**\n * Translation function.\n * @param {function} Translation function returning the translated string.\n */\n t: PropTypes.func,\n};\n\nconst defaultProps = {\n layerService: undefined,\n className: 'rs-layer-tree',\n padding: 30,\n isItemHidden: () => {\n return false;\n },\n getParentClassName: () => {\n return undefined;\n },\n renderItem: null,\n renderItemContent: null,\n renderBeforeItem: null,\n renderAfterItem: null,\n titles: {\n layerShow: 'Show layer',\n layerHide: 'Hide layer',\n subLayerShow: 'Show sublayer',\n subLayerHide: 'Hide sublayer',\n },\n t: (s) => {\n return s;\n },\n expandChildren: false,\n};\n\n/**\n * The LayerTree component renders an interface for toggling\n * [mobility-toolbox-js layers](https://mobility-toolbox-js.geops.io/api/identifiers%20html#ol-layers)\n * and their corresponding child layers.\n */\n\nclass LayerTree extends Component {\n constructor(props) {\n super(props);\n const { layerService, isItemHidden } = this.props;\n const initialExpandedLayers =\n layerService && layerService.getLayers()\n ? this.getExpandedLayers(\n layerService.getLayers().filter((l) => {\n return (\n !isItemHidden(l) &&\n l.getVisibleChildren().filter((c) => {\n return !isItemHidden(c);\n }).length\n );\n }),\n )\n : [];\n\n this.state = {\n layers: layerService ? layerService.getLayers() : [],\n expandedLayers: initialExpandedLayers,\n };\n this.updateLayers = this.updateLayers.bind(this);\n this.olKeys = [];\n }\n\n componentDidMount() {\n this.updateLayerService();\n }\n\n componentDidUpdate(prevProps) {\n const { layerService } = this.props;\n\n if (layerService !== prevProps.layerService) {\n this.updateLayerService();\n }\n }\n\n componentWillUnmount() {\n const { layerService } = this.props;\n layerService.un('change:visible', this.updateLayers);\n }\n\n onInputClick(layer, toggle = false) {\n if (toggle) {\n this.onToggle(layer);\n } else {\n layer.setVisible(!layer.visible);\n }\n }\n\n onToggle(layer) {\n const { expandedLayers } = this.state;\n const pos = expandedLayers.indexOf(layer);\n if (pos > -1) {\n expandedLayers.splice(pos, 1);\n } else {\n expandedLayers.push(...this.getExpandedLayers([layer]));\n }\n\n this.setState({ expandedLayers });\n }\n\n /**\n * Get the always expanded ancestors (isAlwaysExpanded=true) of the given layers\n * together with the (given) initially expanded layers\n *\n * @param {Layer} layers Initially expanded layers\n * @return {Array.<Layer>} Initially expanded layers and all its always expanded ancestors\n */\n getExpandedLayers(layers) {\n const { isItemHidden } = this.props;\n const children = layers.flatMap((l) => {\n return l.children.filter((c) => {\n return !isItemHidden(c) && c.get('isAlwaysExpanded');\n });\n });\n\n if (!children.length) {\n return layers;\n }\n return [...layers, this.getExpandedLayers(children)].flat();\n }\n\n updateLayerService() {\n const { layerService } = this.props;\n if (layerService) {\n layerService.un('change:visible', this.updateLayers);\n this.updateLayers();\n layerService.on('change:visible', this.updateLayers);\n }\n }\n\n updateLayers() {\n const { layerService, expandChildren } = this.props;\n const layers = layerService.getLayers();\n if (\n typeof expandChildren === 'function'\n ? expandChildren(layers)\n : expandChildren\n ) {\n this.setState({\n expandedLayers: layers.flatMap((l) => {\n return this.expandLayer(l);\n }),\n });\n }\n this.setState({\n layers,\n });\n }\n\n expandLayer(layer, expLayers = []) {\n const { isItemHidden } = this.props;\n if (layer.visible && !isItemHidden(layer)) {\n const children = layer.children\n .filter((c) => {\n return !isItemHidden(c) && !c.get('isAlwaysExpanded');\n })\n .flatMap((c) => {\n return this.expandLayer(c, expLayers);\n });\n return [...expLayers, ...children, layer];\n }\n return expLayers;\n }\n\n renderInput(layer) {\n const { titles, isItemHidden } = this.props;\n let tabIndex = 0;\n\n if (\n !layer.children.filter((c) => {\n return !isItemHidden(c);\n }).length\n ) {\n // We forbid focus on keypress event for first level layers and layers without children.\n tabIndex = -1;\n }\n\n const inputType = layer.get('radioGroup') ? 'radio' : 'checkbox';\n return (\n // eslint-disable-next-line jsx-a11y/label-has-associated-control,jsx-a11y/no-noninteractive-element-interactions\n <label\n className={`rs-layer-tree-input rs-layer-tree-input-${inputType} rs-${inputType}`}\n tabIndex={tabIndex}\n title={layer.visible ? titles.layerHide : titles.layerShow}\n aria-label={layer.visible ? titles.layerHide : titles.layerShow}\n onKeyPress={(e) => {\n if (e.which === 13) {\n this.onInputClick(layer);\n }\n }}\n >\n <input\n type={inputType}\n tabIndex={-1}\n checked={layer.visible}\n readOnly\n onClick={() => {\n return this.onInputClick(layer);\n }}\n />\n <span />\n </label>\n );\n }\n\n renderArrow(layer) {\n const { isItemHidden } = this.props;\n const { expandedLayers } = this.state;\n\n if (\n !layer.children.filter((c) => {\n return !isItemHidden(c);\n }).length ||\n layer.get('isAlwaysExpanded')\n ) {\n return null;\n }\n\n return (\n <div\n className={`rs-layer-tree-arrow rs-layer-tree-arrow-${\n !expandedLayers.includes(layer) ? 'collapsed' : 'expanded'\n }`}\n />\n );\n }\n\n // Render a button which expands/collapse the layer if there is children\n // or simulate a click on the input otherwise.\n renderToggleButton(layer) {\n const { t, titles, isItemHidden } = this.props;\n const { expandedLayers } = this.state;\n const onInputClick = () => {\n this.onInputClick(\n layer,\n layer.children.filter((c) => {\n return !isItemHidden(c);\n }).length && !layer.get('isAlwaysExpanded'),\n );\n };\n const title = `${t(layer.name)} ${\n !expandedLayers.includes(layer)\n ? titles.subLayerShow\n : titles.subLayerHide\n }`;\n return (\n <div\n role=\"button\"\n tabIndex={0}\n className=\"rs-layer-tree-toggle\"\n title={title}\n aria-expanded={expandedLayers.includes(layer)}\n aria-label={title}\n onClick={onInputClick}\n onKeyPress={onInputClick}\n >\n <div>{t(layer.name)}</div>\n {this.renderArrow(layer)}\n </div>\n );\n }\n\n renderItemContent(layer) {\n return (\n <>\n {this.renderInput(layer)}\n {this.renderToggleButton(layer)}\n </>\n );\n }\n\n renderItem(layer, level) {\n const { isItemHidden } = this.props;\n const {\n renderItem,\n renderItemContent,\n renderBeforeItem,\n renderAfterItem,\n padding,\n getParentClassName,\n } = this.props;\n const { expandedLayers } = this.state;\n\n const children = expandedLayers.includes(layer)\n ? [\n ...layer.children.filter((c) => {\n return !isItemHidden(c);\n }),\n ]\n : [];\n\n if (renderItem) {\n return renderItem(layer, this.onInputClick, this.onToggle);\n }\n\n return (\n <div className={getParentClassName()} key={layer.key}>\n <div\n className={`rs-layer-tree-item ${layer.visible ? 'rs-visible' : ''}`}\n style={{\n paddingLeft: `${padding * level}px`,\n }}\n >\n {renderItemContent\n ? renderItemContent(layer, this)\n : this.renderItemContent(layer)}\n </div>\n {renderBeforeItem && renderBeforeItem(layer, level, this)}\n {[...children].reverse().map((child) => {\n return this.renderItem(child, level + 1);\n })}\n {renderAfterItem && renderAfterItem(layer, level, this)}\n </div>\n );\n }\n\n renderTree() {\n const { isItemHidden } = this.props;\n const { layers } = this.state;\n\n if (!layers) {\n return null;\n }\n\n return (\n <>\n {layers\n .filter((l) => {\n return !isItemHidden(l);\n })\n .reverse()\n .map((l) => {\n return this.renderItem(l, 0);\n })}\n </>\n );\n }\n\n render() {\n const { className } = this.props;\n return <div className={className}>{this.renderTree()}</div>;\n }\n}\n\nLayerTree.propTypes = propTypes;\nLayerTree.defaultProps = defaultProps;\n\nexport default LayerTree;\n"],"names":["const","super","this","let"],"mappings":"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"}
1
+ {"version":3,"file":"LayerTree.js","sources":["../../../src/components/LayerTree/LayerTree.js"],"sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nconst propTypes = {\n /**\n * Layers provider.\n */\n layerService: PropTypes.object,\n\n /**\n * CSS class to apply on the container.\n */\n className: PropTypes.string,\n\n /**\n * Padding left to apply on each level.\n */\n padding: PropTypes.number,\n\n /**\n * Determine if the item is hidden in the tree 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 tree\n */\n isItemHidden: PropTypes.func,\n\n /**\n * Determine the className used by the div containing the parent and its children.\n */\n getParentClassName: PropTypes.func,\n\n /**\n * Custom function to render an item in the tree.\n *\n * @param {object} item The item to render.\n *\n * @return {node} A jsx node.\n */\n renderItem: PropTypes.func,\n\n /**\n * Custom function to render only the content of an item in the tree.\n *\n * @param {object} item The item to render.\n *\n * @return {node} A jsx node.\n */\n renderItemContent: PropTypes.func,\n\n /**\n * Custom function to render custom content before the list of children of an item.\n *\n * @param {object} item The item to render.\n *\n * @return {node} A jsx node.\n */\n renderBeforeItem: PropTypes.func,\n\n /**\n * Custom function to render custom content after the list of children of an item.\n *\n * @param {object} item The item to render.\n *\n * @return {node} A jsx node.\n */\n renderAfterItem: PropTypes.func,\n\n /**\n * Custom function to render the label.\n *\n * @param {string} item The label to render.\n * @param {LayerTree} comp The LayerTree component.\n *\n * @return {node} A jsx node.\n */\n renderLabel: PropTypes.func,\n\n /**\n * Object holding title for the layer tree's buttons.\n */\n titles: PropTypes.shape({\n /**\n * aria-label on checkbox to show layer.\n */\n layerShow: PropTypes.string,\n /**\n * aria-label on checkbox to hide layer.\n */\n layerHide: PropTypes.string,\n /**\n * title on button to show sublayers.\n */\n subLayerShow: PropTypes.string,\n /**\n * title on button to show sublayers.\n */\n subLayerHide: PropTypes.string,\n }),\n\n /**\n * Boolean determining whether children collapse/expand when their parent is toggled\n * @param {...(boolean|function)} expandChildren Boolean or function returning a boolean.\n * @return {boolean} True or false\n */\n expandChildren: PropTypes.oneOfType([PropTypes.bool, PropTypes.func]),\n\n /**\n * Translation function.\n * @param {function} Translation function returning the translated string.\n */\n t: PropTypes.func,\n};\n\nconst defaultProps = {\n layerService: undefined,\n className: 'rs-layer-tree',\n padding: 30,\n isItemHidden: () => {\n return false;\n },\n getParentClassName: () => {\n return undefined;\n },\n renderItem: null,\n renderItemContent: null,\n renderBeforeItem: null,\n renderAfterItem: null,\n renderLabel: (layer, layerComp) => {\n const { t } = layerComp.props;\n return t(layer.name);\n },\n titles: {\n layerShow: 'Show layer',\n layerHide: 'Hide layer',\n subLayerShow: 'Show sublayer',\n subLayerHide: 'Hide sublayer',\n },\n t: (s) => {\n return s;\n },\n expandChildren: false,\n};\n\n/**\n * The LayerTree component renders an interface for toggling\n * [mobility-toolbox-js layers](https://mobility-toolbox-js.geops.io/api/identifiers%20html#ol-layers)\n * and their corresponding child layers.\n */\n\nclass LayerTree extends Component {\n constructor(props) {\n super(props);\n const { layerService, isItemHidden } = this.props;\n const initialExpandedLayers =\n layerService && layerService.getLayers()\n ? this.getExpandedLayers(\n layerService.getLayers().filter((l) => {\n return (\n !isItemHidden(l) &&\n l.getVisibleChildren().filter((c) => {\n return !isItemHidden(c);\n }).length\n );\n }),\n )\n : [];\n\n this.state = {\n layers: layerService ? layerService.getLayers() : [],\n expandedLayers: initialExpandedLayers,\n };\n this.updateLayers = this.updateLayers.bind(this);\n this.olKeys = [];\n }\n\n componentDidMount() {\n this.updateLayerService();\n }\n\n componentDidUpdate(prevProps) {\n const { layerService } = this.props;\n\n if (layerService !== prevProps.layerService) {\n this.updateLayerService();\n }\n }\n\n componentWillUnmount() {\n const { layerService } = this.props;\n layerService.un('change:visible', this.updateLayers);\n }\n\n onInputClick(layer, toggle = false) {\n if (toggle) {\n this.onToggle(layer);\n } else {\n layer.setVisible(!layer.visible);\n }\n }\n\n onToggle(layer) {\n const { expandedLayers } = this.state;\n const pos = expandedLayers.indexOf(layer);\n if (pos > -1) {\n expandedLayers.splice(pos, 1);\n } else {\n expandedLayers.push(...this.getExpandedLayers([layer]));\n }\n\n this.setState({ expandedLayers });\n }\n\n /**\n * Get the always expanded ancestors (isAlwaysExpanded=true) of the given layers\n * together with the (given) initially expanded layers\n *\n * @param {Layer} layers Initially expanded layers\n * @return {Array.<Layer>} Initially expanded layers and all its always expanded ancestors\n */\n getExpandedLayers(layers) {\n const { isItemHidden } = this.props;\n const children = layers.flatMap((l) => {\n return l.children.filter((c) => {\n return !isItemHidden(c) && c.get('isAlwaysExpanded');\n });\n });\n\n if (!children.length) {\n return layers;\n }\n return [...layers, this.getExpandedLayers(children)].flat();\n }\n\n updateLayerService() {\n const { layerService } = this.props;\n if (layerService) {\n layerService.un('change:visible', this.updateLayers);\n this.updateLayers();\n layerService.on('change:visible', this.updateLayers);\n }\n }\n\n updateLayers() {\n const { layerService, expandChildren } = this.props;\n const layers = layerService.getLayers();\n if (\n typeof expandChildren === 'function'\n ? expandChildren(layers)\n : expandChildren\n ) {\n this.setState({\n expandedLayers: layers.flatMap((l) => {\n return this.expandLayer(l);\n }),\n });\n }\n this.setState({\n layers,\n });\n }\n\n expandLayer(layer, expLayers = []) {\n const { isItemHidden } = this.props;\n if (layer.visible && !isItemHidden(layer)) {\n const children = layer.children\n .filter((c) => {\n return !isItemHidden(c) && !c.get('isAlwaysExpanded');\n })\n .flatMap((c) => {\n return this.expandLayer(c, expLayers);\n });\n return [...expLayers, ...children, layer];\n }\n return expLayers;\n }\n\n renderInput(layer) {\n const { titles, isItemHidden } = this.props;\n let tabIndex = 0;\n\n if (\n !layer.children.filter((c) => {\n return !isItemHidden(c);\n }).length\n ) {\n // We forbid focus on keypress event for first level layers and layers without children.\n tabIndex = -1;\n }\n\n const inputType = layer.get('radioGroup') ? 'radio' : 'checkbox';\n return (\n // eslint-disable-next-line jsx-a11y/label-has-associated-control,jsx-a11y/no-noninteractive-element-interactions\n <label\n className={`rs-layer-tree-input rs-layer-tree-input-${inputType} rs-${inputType}`}\n tabIndex={tabIndex}\n title={layer.visible ? titles.layerHide : titles.layerShow}\n aria-label={layer.visible ? titles.layerHide : titles.layerShow}\n onKeyPress={(e) => {\n if (e.which === 13) {\n this.onInputClick(layer);\n }\n }}\n >\n <input\n type={inputType}\n tabIndex={-1}\n checked={layer.visible}\n readOnly\n onClick={() => {\n return this.onInputClick(layer);\n }}\n />\n <span />\n </label>\n );\n }\n\n renderArrow(layer) {\n const { isItemHidden } = this.props;\n const { expandedLayers } = this.state;\n\n if (\n !layer.children.filter((c) => {\n return !isItemHidden(c);\n }).length ||\n layer.get('isAlwaysExpanded')\n ) {\n return null;\n }\n\n return (\n <div\n className={`rs-layer-tree-arrow rs-layer-tree-arrow-${\n !expandedLayers.includes(layer) ? 'collapsed' : 'expanded'\n }`}\n />\n );\n }\n\n // Render a button which expands/collapse the layer if there is children\n // or simulate a click on the input otherwise.\n renderToggleButton(layer) {\n const { t, titles, isItemHidden, renderLabel } = this.props;\n const { expandedLayers } = this.state;\n const onInputClick = () => {\n this.onInputClick(\n layer,\n layer.children.filter((c) => {\n return !isItemHidden(c);\n }).length && !layer.get('isAlwaysExpanded'),\n );\n };\n const title = `${t(layer.name)} ${\n !expandedLayers.includes(layer)\n ? titles.subLayerShow\n : titles.subLayerHide\n }`;\n return (\n <div\n role=\"button\"\n tabIndex={0}\n className=\"rs-layer-tree-toggle\"\n title={title}\n aria-expanded={expandedLayers.includes(layer)}\n aria-label={title}\n onClick={onInputClick}\n onKeyPress={onInputClick}\n >\n <div>{renderLabel(layer, this)}</div>\n {this.renderArrow(layer)}\n </div>\n );\n }\n\n renderItemContent(layer) {\n return (\n <>\n {this.renderInput(layer)}\n {this.renderToggleButton(layer)}\n </>\n );\n }\n\n renderItem(layer, level) {\n const { isItemHidden } = this.props;\n const {\n renderItem,\n renderItemContent,\n renderBeforeItem,\n renderAfterItem,\n padding,\n getParentClassName,\n } = this.props;\n const { expandedLayers } = this.state;\n\n const children = expandedLayers.includes(layer)\n ? [\n ...layer.children.filter((c) => {\n return !isItemHidden(c);\n }),\n ]\n : [];\n\n if (renderItem) {\n return renderItem(layer, this.onInputClick, this.onToggle);\n }\n\n return (\n <div className={getParentClassName()} key={layer.key}>\n <div\n className={`rs-layer-tree-item ${layer.visible ? 'rs-visible' : ''}`}\n style={{\n paddingLeft: `${padding * level}px`,\n }}\n >\n {renderItemContent\n ? renderItemContent(layer, this)\n : this.renderItemContent(layer)}\n </div>\n {renderBeforeItem && renderBeforeItem(layer, level, this)}\n {[...children].reverse().map((child) => {\n return this.renderItem(child, level + 1);\n })}\n {renderAfterItem && renderAfterItem(layer, level, this)}\n </div>\n );\n }\n\n renderTree() {\n const { isItemHidden } = this.props;\n const { layers } = this.state;\n\n if (!layers) {\n return null;\n }\n\n return (\n <>\n {layers\n .filter((l) => {\n return !isItemHidden(l);\n })\n .reverse()\n .map((l) => {\n return this.renderItem(l, 0);\n })}\n </>\n );\n }\n\n render() {\n const { className } = this.props;\n return <div className={className}>{this.renderTree()}</div>;\n }\n}\n\nLayerTree.propTypes = propTypes;\nLayerTree.defaultProps = defaultProps;\n\nexport default LayerTree;\n"],"names":["const","super","this","let"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  /* eslint-disable react/jsx-props-no-spreading */
2
2
  import React from 'react';
3
3
  import { configure, mount } from 'enzyme';
4
- import Adapter from 'enzyme-adapter-react-16';
4
+ import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
5
5
  import 'jest-canvas-mock';
6
6
  import renderer from 'react-test-renderer';
7
7
  import { Layer } from 'mobility-toolbox-js/ol';
@@ -1 +1 @@
1
- {"version":3,"file":"LayerTree.test.js","sources":["../../../src/components/LayerTree/LayerTree.test.js"],"sourcesContent":["/* eslint-disable react/jsx-props-no-spreading */\nimport React from 'react';\nimport { configure, mount } from 'enzyme';\nimport Adapter from 'enzyme-adapter-react-16';\nimport 'jest-canvas-mock';\nimport renderer from 'react-test-renderer';\nimport { Layer } from 'mobility-toolbox-js/ol';\nimport LayerTree from './LayerTree';\nimport LayerService from '../../LayerService';\n\nconfigure({ adapter: new Adapter() });\n\nconst mountLayerTree = (layers) => {\n const layerService = new LayerService(layers);\n return mount(<LayerTree layerService={layerService} />);\n};\n\nconst renderLayerTree = (layers, props) => {\n const layerService = new LayerService(layers);\n const component = renderer.create(\n <LayerTree layerService={layerService} {...(props || {})} />,\n );\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n};\n\nconst classItem = '.rs-layer-tree-item';\nconst toggleItem = '.rs-layer-tree-toggle';\n\ndescribe('LayerTree', () => {\n let layers;\n\n beforeEach(() => {\n layers = [\n new Layer({\n name: 'root',\n }),\n new Layer({\n name: '1',\n children: [\n new Layer({\n name: '1-1',\n properties: {\n radioGroup: 'radio',\n },\n }),\n new Layer({\n name: '1-2',\n properties: {\n radioGroup: 'radio',\n },\n visible: false,\n children: [\n new Layer({\n name: '1-2-1',\n visible: false,\n }),\n new Layer({\n name: '1-2-2',\n visible: false,\n }),\n new Layer({\n name: '2',\n visible: false,\n }),\n ],\n }),\n ],\n }),\n ];\n });\n describe('matches snapshots', () => {\n test('using default properties.', () => {\n renderLayerTree(layers);\n });\n\n test('when no layers.', () => {\n const layerService = new LayerService();\n const component = renderer.create(\n <LayerTree layerService={layerService} />,\n );\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n\n test('when renderItem is used.', () => {\n renderLayerTree(layers, {\n renderItem: (item) => {\n const { name } = item;\n return <div key={name}>{name}</div>;\n },\n });\n });\n\n test('when classNames are used.', () => {\n renderLayerTree(layers, { className: 'foo' });\n });\n\n test('when an item is hidden.', () => {\n renderLayerTree(layers, {\n isItemHidden: (item) => {\n return !!item.children.length;\n },\n });\n });\n\n test('when an item is hidden (different layer tree levels)', () => {\n renderLayerTree(layers, {\n isItemHidden: (item) => {\n return item.isBaseLayer || item.get('hideInLegend');\n },\n });\n });\n\n test('when an item use renderBeforeItem.', () => {\n renderLayerTree(layers, {\n renderBeforeItem: (layer, level) => {\n const { name } = layer;\n return (\n <div>\n Render name before item: {name}, level: {level}\n </div>\n );\n },\n });\n });\n\n test('when an item use renderAfterItem.', () => {\n renderLayerTree(layers, {\n renderAfterItem: (layer, level) => {\n const { name } = layer;\n return (\n <div>\n Render name after item: {name}, level: {level}\n </div>\n );\n },\n });\n });\n\n test('when expandChildren is true.', () => {\n renderLayerTree(layers, {\n expandChildren: true,\n });\n });\n\n test('when expandChildren is a function.', () => {\n renderLayerTree(layers, {\n expandChildren: (lyrs) => {\n return lyrs.length === 3;\n },\n });\n });\n\n test('when items are always expanded', () => {\n const newLayers = [\n new Layer({\n name: 'Expanded layer 1 (because of level 1)',\n visible: true,\n children: [\n new Layer({\n name: 'Expanded layer 1.1 (because of isAlwaysExpanded=true)',\n visible: true,\n properties: {\n isAlwaysExpanded: true,\n },\n children: [\n new Layer({\n name: 'Expanded layer 1.1.1 (because of isAlwaysExpanded=true)',\n visible: true,\n properties: {\n isAlwaysExpanded: true,\n },\n children: [\n new Layer({\n name: 'Visible layer 1.1.1.1 (as parent is expanded)',\n visible: true,\n }),\n ],\n }),\n new Layer({\n name: 'Hidden layer 1.1.1 (because of hidden=true)',\n visible: true,\n properties: {\n hideInLegend: true,\n },\n children: [\n new Layer({\n name: 'Invisible layer 1.1.1.1 (as parent is hidden)',\n visible: true,\n }),\n ],\n }),\n ],\n }),\n new Layer({\n name: 'Expanded layer 1.2 (because of isAlwaysExpanded=true)',\n visible: true,\n properties: {\n isAlwaysExpanded: true,\n },\n children: [\n new Layer({\n name: 'Visible layer 1.2.1 (as parent is expanded)',\n visible: true,\n children: [\n new Layer({\n name: 'Invisible layer 1.2.1.1 (as parent isAlwaysExpanded=false)',\n visible: true,\n }),\n ],\n }),\n ],\n }),\n ],\n }),\n new Layer({\n name: 'Expanded layer 2 (because of level 1)',\n visible: true,\n children: [\n new Layer({\n name: 'Visible layer 2.1 (as parent is expanded)',\n visible: true,\n children: [\n new Layer({\n name: 'Invisible layer 2.1.1 (as parent isAlwaysExpanded=false)',\n visible: true,\n properties: {\n isAlwaysExpanded: true,\n },\n children: [\n new Layer({\n name: 'Invisible layer 2.1.1.1 (as parent is not visible)',\n visible: true,\n }),\n ],\n }),\n ],\n }),\n new Layer({\n name: 'Visible layer 2.2 (as parent is expanded)',\n visible: true,\n children: [\n new Layer({\n name: 'Invisible layer 2.2.1 (as parent isAlwaysExpanded=false)',\n visible: true,\n children: [\n new Layer({\n name: 'Invisible layer 2.2.1.1 (as parent is not visible)',\n visible: true,\n }),\n ],\n }),\n ],\n }),\n ],\n }),\n ];\n\n renderLayerTree(newLayers, {\n isItemHidden: (item) => {\n return item.get('hideInLegend');\n },\n });\n });\n });\n\n describe('triggers onInputClick', () => {\n let wrapper;\n let spy;\n let spy2;\n const newLayers = [\n new Layer({\n name: 'foo',\n }),\n ];\n const expectCalled = () => {\n expect(spy).toHaveBeenCalledTimes(1);\n expect(spy2).toHaveBeenCalledTimes(0);\n expect(spy.mock.calls[0][0].name).toBe('foo');\n };\n\n beforeEach(() => {\n spy = jest.spyOn(LayerTree.prototype, 'onInputClick');\n spy2 = jest.spyOn(LayerTree.prototype, 'onToggle');\n wrapper = mountLayerTree(newLayers);\n });\n\n afterEach(() => {\n spy.mockRestore();\n spy2.mockRestore();\n });\n\n test('when we press enter with keyboard on the label element.', () => {\n wrapper.find('label').at(0).simulate('keypress', { which: 13 });\n expectCalled();\n });\n\n test('when we click on input.', () => {\n wrapper.find('input').at(0).simulate('click');\n expectCalled();\n });\n\n test('when we click on toggle button (label+arrow) of an item without children.', () => {\n wrapper.find(classItem).first().childAt(1).simulate('click');\n expectCalled();\n });\n });\n\n describe('triggers onToggle', () => {\n let wrapper;\n let spy;\n const newLayers = [\n new Layer({\n name: '1',\n children: [\n new Layer({\n name: '1-1',\n }),\n new Layer({\n name: '1-1-1',\n }),\n ],\n }),\n ];\n\n const expectCalled = () => {\n expect(spy).toHaveBeenCalledTimes(1);\n };\n\n beforeEach(() => {\n spy = jest.spyOn(LayerTree.prototype, 'onToggle');\n wrapper = mountLayerTree(newLayers);\n });\n\n test('when we click on toggle button (label+arrow) of an item with children', () => {\n wrapper.find(toggleItem).first().simulate('click');\n expectCalled();\n });\n });\n});\n"],"names":["const","let"],"mappings":"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"}
1
+ {"version":3,"file":"LayerTree.test.js","sources":["../../../src/components/LayerTree/LayerTree.test.js"],"sourcesContent":["/* eslint-disable react/jsx-props-no-spreading */\nimport React from 'react';\nimport { configure, mount } from 'enzyme';\nimport Adapter from '@wojtekmaj/enzyme-adapter-react-17';\nimport 'jest-canvas-mock';\nimport renderer from 'react-test-renderer';\nimport { Layer } from 'mobility-toolbox-js/ol';\nimport LayerTree from './LayerTree';\nimport LayerService from '../../LayerService';\n\nconfigure({ adapter: new Adapter() });\n\nconst mountLayerTree = (layers) => {\n const layerService = new LayerService(layers);\n return mount(<LayerTree layerService={layerService} />);\n};\n\nconst renderLayerTree = (layers, props) => {\n const layerService = new LayerService(layers);\n const component = renderer.create(\n <LayerTree layerService={layerService} {...(props || {})} />,\n );\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n};\n\nconst classItem = '.rs-layer-tree-item';\nconst toggleItem = '.rs-layer-tree-toggle';\n\ndescribe('LayerTree', () => {\n let layers;\n\n beforeEach(() => {\n layers = [\n new Layer({\n name: 'root',\n }),\n new Layer({\n name: '1',\n children: [\n new Layer({\n name: '1-1',\n properties: {\n radioGroup: 'radio',\n },\n }),\n new Layer({\n name: '1-2',\n properties: {\n radioGroup: 'radio',\n },\n visible: false,\n children: [\n new Layer({\n name: '1-2-1',\n visible: false,\n }),\n new Layer({\n name: '1-2-2',\n visible: false,\n }),\n new Layer({\n name: '2',\n visible: false,\n }),\n ],\n }),\n ],\n }),\n ];\n });\n describe('matches snapshots', () => {\n test('using default properties.', () => {\n renderLayerTree(layers);\n });\n\n test('when no layers.', () => {\n const layerService = new LayerService();\n const component = renderer.create(\n <LayerTree layerService={layerService} />,\n );\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n\n test('when renderItem is used.', () => {\n renderLayerTree(layers, {\n renderItem: (item) => {\n const { name } = item;\n return <div key={name}>{name}</div>;\n },\n });\n });\n\n test('when classNames are used.', () => {\n renderLayerTree(layers, { className: 'foo' });\n });\n\n test('when an item is hidden.', () => {\n renderLayerTree(layers, {\n isItemHidden: (item) => {\n return !!item.children.length;\n },\n });\n });\n\n test('when an item is hidden (different layer tree levels)', () => {\n renderLayerTree(layers, {\n isItemHidden: (item) => {\n return item.isBaseLayer || item.get('hideInLegend');\n },\n });\n });\n\n test('when an item use renderBeforeItem.', () => {\n renderLayerTree(layers, {\n renderBeforeItem: (layer, level) => {\n const { name } = layer;\n return (\n <div>\n Render name before item: {name}, level: {level}\n </div>\n );\n },\n });\n });\n\n test('when an item use renderAfterItem.', () => {\n renderLayerTree(layers, {\n renderAfterItem: (layer, level) => {\n const { name } = layer;\n return (\n <div>\n Render name after item: {name}, level: {level}\n </div>\n );\n },\n });\n });\n\n test('when expandChildren is true.', () => {\n renderLayerTree(layers, {\n expandChildren: true,\n });\n });\n\n test('when expandChildren is a function.', () => {\n renderLayerTree(layers, {\n expandChildren: (lyrs) => {\n return lyrs.length === 3;\n },\n });\n });\n\n test('when items are always expanded', () => {\n const newLayers = [\n new Layer({\n name: 'Expanded layer 1 (because of level 1)',\n visible: true,\n children: [\n new Layer({\n name: 'Expanded layer 1.1 (because of isAlwaysExpanded=true)',\n visible: true,\n properties: {\n isAlwaysExpanded: true,\n },\n children: [\n new Layer({\n name: 'Expanded layer 1.1.1 (because of isAlwaysExpanded=true)',\n visible: true,\n properties: {\n isAlwaysExpanded: true,\n },\n children: [\n new Layer({\n name: 'Visible layer 1.1.1.1 (as parent is expanded)',\n visible: true,\n }),\n ],\n }),\n new Layer({\n name: 'Hidden layer 1.1.1 (because of hidden=true)',\n visible: true,\n properties: {\n hideInLegend: true,\n },\n children: [\n new Layer({\n name: 'Invisible layer 1.1.1.1 (as parent is hidden)',\n visible: true,\n }),\n ],\n }),\n ],\n }),\n new Layer({\n name: 'Expanded layer 1.2 (because of isAlwaysExpanded=true)',\n visible: true,\n properties: {\n isAlwaysExpanded: true,\n },\n children: [\n new Layer({\n name: 'Visible layer 1.2.1 (as parent is expanded)',\n visible: true,\n children: [\n new Layer({\n name: 'Invisible layer 1.2.1.1 (as parent isAlwaysExpanded=false)',\n visible: true,\n }),\n ],\n }),\n ],\n }),\n ],\n }),\n new Layer({\n name: 'Expanded layer 2 (because of level 1)',\n visible: true,\n children: [\n new Layer({\n name: 'Visible layer 2.1 (as parent is expanded)',\n visible: true,\n children: [\n new Layer({\n name: 'Invisible layer 2.1.1 (as parent isAlwaysExpanded=false)',\n visible: true,\n properties: {\n isAlwaysExpanded: true,\n },\n children: [\n new Layer({\n name: 'Invisible layer 2.1.1.1 (as parent is not visible)',\n visible: true,\n }),\n ],\n }),\n ],\n }),\n new Layer({\n name: 'Visible layer 2.2 (as parent is expanded)',\n visible: true,\n children: [\n new Layer({\n name: 'Invisible layer 2.2.1 (as parent isAlwaysExpanded=false)',\n visible: true,\n children: [\n new Layer({\n name: 'Invisible layer 2.2.1.1 (as parent is not visible)',\n visible: true,\n }),\n ],\n }),\n ],\n }),\n ],\n }),\n ];\n\n renderLayerTree(newLayers, {\n isItemHidden: (item) => {\n return item.get('hideInLegend');\n },\n });\n });\n });\n\n describe('triggers onInputClick', () => {\n let wrapper;\n let spy;\n let spy2;\n const newLayers = [\n new Layer({\n name: 'foo',\n }),\n ];\n const expectCalled = () => {\n expect(spy).toHaveBeenCalledTimes(1);\n expect(spy2).toHaveBeenCalledTimes(0);\n expect(spy.mock.calls[0][0].name).toBe('foo');\n };\n\n beforeEach(() => {\n spy = jest.spyOn(LayerTree.prototype, 'onInputClick');\n spy2 = jest.spyOn(LayerTree.prototype, 'onToggle');\n wrapper = mountLayerTree(newLayers);\n });\n\n afterEach(() => {\n spy.mockRestore();\n spy2.mockRestore();\n });\n\n test('when we press enter with keyboard on the label element.', () => {\n wrapper.find('label').at(0).simulate('keypress', { which: 13 });\n expectCalled();\n });\n\n test('when we click on input.', () => {\n wrapper.find('input').at(0).simulate('click');\n expectCalled();\n });\n\n test('when we click on toggle button (label+arrow) of an item without children.', () => {\n wrapper.find(classItem).first().childAt(1).simulate('click');\n expectCalled();\n });\n });\n\n describe('triggers onToggle', () => {\n let wrapper;\n let spy;\n const newLayers = [\n new Layer({\n name: '1',\n children: [\n new Layer({\n name: '1-1',\n }),\n new Layer({\n name: '1-1-1',\n }),\n ],\n }),\n ];\n\n const expectCalled = () => {\n expect(spy).toHaveBeenCalledTimes(1);\n };\n\n beforeEach(() => {\n spy = jest.spyOn(LayerTree.prototype, 'onToggle');\n wrapper = mountLayerTree(newLayers);\n });\n\n test('when we click on toggle button (label+arrow) of an item with children', () => {\n wrapper.find(toggleItem).first().simulate('click');\n expectCalled();\n });\n });\n});\n"],"names":["const","let"],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  import React from 'react';
3
3
  import renderer from 'react-test-renderer';
4
4
  import { configure, mount } from 'enzyme';
5
- import Adapter from 'enzyme-adapter-react-16';
5
+ import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
6
6
  import 'jest-canvas-mock';
7
7
  import OLMap from 'ol/Map';
8
8
  import OLMousePosition from 'ol/control/MousePosition';
@@ -1 +1 @@
1
- {"version":3,"file":"MousePosition.test.js","sources":["../../../src/components/MousePosition/MousePosition.test.js"],"sourcesContent":["/* eslint-disable react/jsx-props-no-spreading */\nimport React from 'react';\nimport renderer from 'react-test-renderer';\nimport { configure, mount } from 'enzyme';\nimport Adapter from 'enzyme-adapter-react-16';\nimport 'jest-canvas-mock';\nimport OLMap from 'ol/Map';\nimport OLMousePosition from 'ol/control/MousePosition';\nimport MousePosition from './MousePosition';\n\nconfigure({ adapter: new Adapter() });\nconst expectSnapshot = (props) => {\n const map = new OLMap({});\n const component = renderer.create(<MousePosition map={map} {...props} />);\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n};\n\ndescribe('MousePosition', () => {\n describe('matches snapshots', () => {\n test('using default values.', () => {\n expectSnapshot({});\n });\n\n test('using no projections.', () => {\n expectSnapshot({\n projections: [],\n });\n });\n\n test('using only one projection', () => {\n expectSnapshot({\n projections: [{ label: 'foo', value: 'foo' }],\n });\n });\n\n test('using multiple projections.', () => {\n expectSnapshot({\n projections: [\n { label: 'foo', value: 'foo' },\n { label: 'bar', value: 'bar' },\n ],\n });\n });\n });\n\n test('add MousePosition control to the map.', () => {\n const map = new OLMap({});\n const spy = jest.spyOn(map, 'removeControl');\n const spy2 = jest.spyOn(map, 'addControl');\n const fn = jest.fn();\n mount(\n <MousePosition\n map={map}\n projections={[\n {\n label: 'EPSG:4326',\n value: 'EPSG:4326',\n format: fn,\n },\n ]}\n />,\n );\n const ctrl = spy2.mock.calls[0][0];\n expect(spy).toHaveBeenCalledTimes(0);\n expect(spy2).toHaveBeenCalledTimes(1);\n expect(ctrl).toBeInstanceOf(OLMousePosition);\n expect(ctrl.getProjection().getCode()).toBe('EPSG:4326');\n expect(ctrl.getCoordinateFormat()).toBe(fn);\n });\n\n test('add/remove MousePosition control on mount/unmount.', () => {\n const map = new OLMap({});\n const spy = jest.spyOn(map, 'removeControl');\n const spy2 = jest.spyOn(map, 'addControl');\n const wrapper = mount(<MousePosition map={map} />);\n expect(spy).toHaveBeenCalledTimes(0);\n expect(spy2).toHaveBeenCalledTimes(1);\n wrapper.unmount();\n expect(spy).toHaveBeenCalledTimes(1);\n expect(spy.mock.calls[0][0]).toBe(spy2.mock.calls[0][0]);\n });\n\n test('triggers onChange when select projection.', () => {\n const map = new OLMap({});\n const onChange = jest.fn(() => {});\n const wrapper = mount(\n <MousePosition\n map={map}\n onChange={onChange}\n projections={[\n {\n label: 'EPSG:4326',\n value: 'EPSG:4326',\n format: jest.fn(),\n },\n ]}\n />,\n );\n // onChange triggered on instantiation.\n expect(onChange).toHaveBeenCalledTimes(0);\n wrapper.find('select').simulate('change', {});\n expect(onChange).toHaveBeenCalledTimes(1);\n });\n\n test('applies new format and value when we select a new projection.', () => {\n const map = new OLMap({});\n const spy = jest.spyOn(map, 'addControl');\n const projs = [\n {\n label: 'EPSG:4326',\n value: 'EPSG:4326',\n format: jest.fn(),\n },\n {\n label: 'EPSG:3857',\n value: 'EPSG:3857',\n format: jest.fn(),\n },\n ];\n const wrapper = mount(<MousePosition map={map} projections={projs} />);\n\n const ctrl = spy.mock.calls[0][0];\n expect(ctrl.getProjection().getCode()).toBe(projs[0].value);\n expect(ctrl.getCoordinateFormat()).toBe(projs[0].format);\n wrapper\n .find('select')\n .simulate('change', { target: { value: 'EPSG:3857' } });\n expect(ctrl.getProjection().getCode()).toBe(projs[1].value);\n expect(ctrl.getCoordinateFormat()).toBe(projs[1].format);\n });\n});\n"],"names":["const"],"mappings":"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"}
1
+ {"version":3,"file":"MousePosition.test.js","sources":["../../../src/components/MousePosition/MousePosition.test.js"],"sourcesContent":["/* eslint-disable react/jsx-props-no-spreading */\nimport React from 'react';\nimport renderer from 'react-test-renderer';\nimport { configure, mount } from 'enzyme';\nimport Adapter from '@wojtekmaj/enzyme-adapter-react-17';\nimport 'jest-canvas-mock';\nimport OLMap from 'ol/Map';\nimport OLMousePosition from 'ol/control/MousePosition';\nimport MousePosition from './MousePosition';\n\nconfigure({ adapter: new Adapter() });\nconst expectSnapshot = (props) => {\n const map = new OLMap({});\n const component = renderer.create(<MousePosition map={map} {...props} />);\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n};\n\ndescribe('MousePosition', () => {\n describe('matches snapshots', () => {\n test('using default values.', () => {\n expectSnapshot({});\n });\n\n test('using no projections.', () => {\n expectSnapshot({\n projections: [],\n });\n });\n\n test('using only one projection', () => {\n expectSnapshot({\n projections: [{ label: 'foo', value: 'foo' }],\n });\n });\n\n test('using multiple projections.', () => {\n expectSnapshot({\n projections: [\n { label: 'foo', value: 'foo' },\n { label: 'bar', value: 'bar' },\n ],\n });\n });\n });\n\n test('add MousePosition control to the map.', () => {\n const map = new OLMap({});\n const spy = jest.spyOn(map, 'removeControl');\n const spy2 = jest.spyOn(map, 'addControl');\n const fn = jest.fn();\n mount(\n <MousePosition\n map={map}\n projections={[\n {\n label: 'EPSG:4326',\n value: 'EPSG:4326',\n format: fn,\n },\n ]}\n />,\n );\n const ctrl = spy2.mock.calls[0][0];\n expect(spy).toHaveBeenCalledTimes(0);\n expect(spy2).toHaveBeenCalledTimes(1);\n expect(ctrl).toBeInstanceOf(OLMousePosition);\n expect(ctrl.getProjection().getCode()).toBe('EPSG:4326');\n expect(ctrl.getCoordinateFormat()).toBe(fn);\n });\n\n test('add/remove MousePosition control on mount/unmount.', () => {\n const map = new OLMap({});\n const spy = jest.spyOn(map, 'removeControl');\n const spy2 = jest.spyOn(map, 'addControl');\n const wrapper = mount(<MousePosition map={map} />);\n expect(spy).toHaveBeenCalledTimes(0);\n expect(spy2).toHaveBeenCalledTimes(1);\n wrapper.unmount();\n expect(spy).toHaveBeenCalledTimes(1);\n expect(spy.mock.calls[0][0]).toBe(spy2.mock.calls[0][0]);\n });\n\n test('triggers onChange when select projection.', () => {\n const map = new OLMap({});\n const onChange = jest.fn(() => {});\n const wrapper = mount(\n <MousePosition\n map={map}\n onChange={onChange}\n projections={[\n {\n label: 'EPSG:4326',\n value: 'EPSG:4326',\n format: jest.fn(),\n },\n ]}\n />,\n );\n // onChange triggered on instantiation.\n expect(onChange).toHaveBeenCalledTimes(0);\n wrapper.find('select').simulate('change', {});\n expect(onChange).toHaveBeenCalledTimes(1);\n });\n\n test('applies new format and value when we select a new projection.', () => {\n const map = new OLMap({});\n const spy = jest.spyOn(map, 'addControl');\n const projs = [\n {\n label: 'EPSG:4326',\n value: 'EPSG:4326',\n format: jest.fn(),\n },\n {\n label: 'EPSG:3857',\n value: 'EPSG:3857',\n format: jest.fn(),\n },\n ];\n const wrapper = mount(<MousePosition map={map} projections={projs} />);\n\n const ctrl = spy.mock.calls[0][0];\n expect(ctrl.getProjection().getCode()).toBe(projs[0].value);\n expect(ctrl.getCoordinateFormat()).toBe(projs[0].format);\n wrapper\n .find('select')\n .simulate('change', { target: { value: 'EPSG:3857' } });\n expect(ctrl.getProjection().getCode()).toBe(projs[1].value);\n expect(ctrl.getCoordinateFormat()).toBe(projs[1].format);\n });\n});\n"],"names":["const"],"mappings":"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"}
@@ -3,7 +3,7 @@ import React from 'react';
3
3
  import renderer from 'react-test-renderer';
4
4
  import { act } from 'react-dom/test-utils';
5
5
  import { configure, mount } from 'enzyme';
6
- import Adapter from 'enzyme-adapter-react-16';
6
+ import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
7
7
  import MapEvent from 'ol/MapEvent';
8
8
  import OLMap from 'ol/Map';
9
9
  import OLView from 'ol/View';
@@ -1 +1 @@
1
- {"version":3,"file":"NorthArrow.test.js","sources":["../../../src/components/NorthArrow/NorthArrow.test.js"],"sourcesContent":["import 'jest-canvas-mock';\nimport React from 'react';\nimport renderer from 'react-test-renderer';\nimport { act } from 'react-dom/test-utils';\nimport { configure, mount } from 'enzyme';\nimport Adapter from 'enzyme-adapter-react-16';\nimport MapEvent from 'ol/MapEvent';\nimport OLMap from 'ol/Map';\nimport OLView from 'ol/View';\nimport { TiImage } from 'react-icons/ti';\nimport NorthArrow from './NorthArrow';\n\nconfigure({ adapter: new Adapter() });\nlet olView;\nlet olMap;\n\ndescribe('NorthArrow', () => {\n beforeEach(() => {\n olView = new OLView();\n olMap = new OLMap({ view: olView });\n });\n\n test('should match snapshot with default value.', () => {\n let component;\n renderer.act(() => {\n component = renderer.create(<NorthArrow map={olMap} />);\n });\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n\n test('should match snapshot with custom attributes.', () => {\n let component;\n renderer.act(() => {\n component = renderer.create(\n <NorthArrow map={olMap} className=\"test-class\" tabIndex={0} />,\n );\n });\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n\n test('should match snapshot with children.', () => {\n let component;\n renderer.act(() => {\n component = renderer.create(\n <NorthArrow map={olMap}>\n <TiImage />\n </NorthArrow>,\n );\n });\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n\n test('should match snapshot rotated.', () => {\n let component;\n renderer.act(() => {\n component = renderer.create(\n <NorthArrow map={olMap} rotationOffset={45} />,\n );\n });\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n\n test('should match snapshot with circle.', () => {\n let component;\n renderer.act(() => {\n component = renderer.create(<NorthArrow circled map={olMap} />);\n });\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n\n test('should react on view rotation (transform: `rotate(20deg)`)', () => {\n const wrapper = mount(<NorthArrow map={olMap} />);\n // Trigger view rotation\n olMap.getView().setRotation(0.3490658503988659);\n act(() => {\n olMap.dispatchEvent(new MapEvent('postrender', olMap));\n // 20 degrees = 0.3490658503988659 radians\n });\n expect(wrapper.html()).toMatchSnapshot();\n });\n\n test('should react on view rotation with offset (transform: `rotate(10deg)`)', () => {\n const wrapper = mount(<NorthArrow map={olMap} rotationOffset={-10} />);\n olMap.getView().setRotation(0.3490658503988659);\n act(() => {\n olMap.dispatchEvent(new MapEvent('postrender', olMap));\n });\n expect(wrapper.html()).toMatchSnapshot();\n });\n\n test('should remove post render event on unmount', () => {\n const wrapper = mount(<NorthArrow map={olMap} rotationOffset={-10} />);\n // eslint-disable-next-line no-underscore-dangle\n expect(olMap.listeners_.postrender.length).toBe(4);\n wrapper.unmount();\n // eslint-disable-next-line no-underscore-dangle\n expect(olMap.listeners_.postrender.length).toBe(3);\n });\n});\n"],"names":["let","const"],"mappings":"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"}
1
+ {"version":3,"file":"NorthArrow.test.js","sources":["../../../src/components/NorthArrow/NorthArrow.test.js"],"sourcesContent":["import 'jest-canvas-mock';\nimport React from 'react';\nimport renderer from 'react-test-renderer';\nimport { act } from 'react-dom/test-utils';\nimport { configure, mount } from 'enzyme';\nimport Adapter from '@wojtekmaj/enzyme-adapter-react-17';\nimport MapEvent from 'ol/MapEvent';\nimport OLMap from 'ol/Map';\nimport OLView from 'ol/View';\nimport { TiImage } from 'react-icons/ti';\nimport NorthArrow from './NorthArrow';\n\nconfigure({ adapter: new Adapter() });\nlet olView;\nlet olMap;\n\ndescribe('NorthArrow', () => {\n beforeEach(() => {\n olView = new OLView();\n olMap = new OLMap({ view: olView });\n });\n\n test('should match snapshot with default value.', () => {\n let component;\n renderer.act(() => {\n component = renderer.create(<NorthArrow map={olMap} />);\n });\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n\n test('should match snapshot with custom attributes.', () => {\n let component;\n renderer.act(() => {\n component = renderer.create(\n <NorthArrow map={olMap} className=\"test-class\" tabIndex={0} />,\n );\n });\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n\n test('should match snapshot with children.', () => {\n let component;\n renderer.act(() => {\n component = renderer.create(\n <NorthArrow map={olMap}>\n <TiImage />\n </NorthArrow>,\n );\n });\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n\n test('should match snapshot rotated.', () => {\n let component;\n renderer.act(() => {\n component = renderer.create(\n <NorthArrow map={olMap} rotationOffset={45} />,\n );\n });\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n\n test('should match snapshot with circle.', () => {\n let component;\n renderer.act(() => {\n component = renderer.create(<NorthArrow circled map={olMap} />);\n });\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n\n test('should react on view rotation (transform: `rotate(20deg)`)', () => {\n const wrapper = mount(<NorthArrow map={olMap} />);\n // Trigger view rotation\n olMap.getView().setRotation(0.3490658503988659);\n act(() => {\n olMap.dispatchEvent(new MapEvent('postrender', olMap));\n // 20 degrees = 0.3490658503988659 radians\n });\n expect(wrapper.html()).toMatchSnapshot();\n });\n\n test('should react on view rotation with offset (transform: `rotate(10deg)`)', () => {\n const wrapper = mount(<NorthArrow map={olMap} rotationOffset={-10} />);\n olMap.getView().setRotation(0.3490658503988659);\n act(() => {\n olMap.dispatchEvent(new MapEvent('postrender', olMap));\n });\n expect(wrapper.html()).toMatchSnapshot();\n });\n\n test('should remove post render event on unmount', () => {\n const wrapper = mount(<NorthArrow map={olMap} rotationOffset={-10} />);\n // eslint-disable-next-line no-underscore-dangle\n expect(olMap.listeners_.postrender.length).toBe(4);\n wrapper.unmount();\n // eslint-disable-next-line no-underscore-dangle\n expect(olMap.listeners_.postrender.length).toBe(3);\n });\n});\n"],"names":["let","const"],"mappings":"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"}
@@ -19,9 +19,9 @@ var propTypes = {
19
19
  */
20
20
  observe: PropTypes.oneOfType([
21
21
  PropTypes.string,
22
- PropTypes.instanceOf(Element),
22
+ PropTypes.node,
23
23
  PropTypes.instanceOf(Component),
24
- PropTypes.shape({ current: PropTypes.instanceOf(Element) }),
24
+ PropTypes.shape({ current: PropTypes.node }),
25
25
  PropTypes.shape({ current: PropTypes.instanceOf(Component) }) ]),
26
26
 
27
27
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Overlay.js","sources":["../../../src/components/Overlay/Overlay.js"],"sourcesContent":["import React, { Component, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Resizable } from 're-resizable';\nimport ResizeHandler from '../ResizeHandler';\n\nconst propTypes = {\n /**\n * CSS class added to container.\n */\n className: PropTypes.string,\n\n /**\n * Children content of the overlay.\n */\n children: PropTypes.node,\n\n /**\n * Observed element to define screen size.\n */\n observe: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.instanceOf(Element),\n PropTypes.instanceOf(Component),\n PropTypes.shape({ current: PropTypes.instanceOf(Element) }),\n PropTypes.shape({ current: PropTypes.instanceOf(Component) }),\n ]),\n\n /**\n * Deactivate the ability to resize the overlay on mobile.\n * /!\\ This prop is only used if isMobile (observer width < 768px).\n */\n isMobileResizable: PropTypes.bool,\n\n /**\n * Size parameters to the Resizable component on mobile.\n * Pass following prop to re-resizable component: 'size', 'defaultSize', 'minHeight' & 'maxHeight'\n * (https://github.com/bokuweb/re-resizable)\n * /!\\ This prop is only used if isMobile (observer width < 768px).\n */\n mobileSize: PropTypes.shape({\n minimalHeight: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n maximalHeight: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n defaultSize: PropTypes.shape({\n height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n }),\n size: PropTypes.shape({\n height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n }),\n }),\n\n /**\n * Minimal width to consider the observed as mobile.\n * Default is 768px.\n */\n thresholdWidthForMobile: PropTypes.number,\n\n /**\n * Callback when stop resizing\n * Pass following prop to re-resizable component\n * (https://github.com/bokuweb/re-resizable)\n */\n onResizeStop: PropTypes.func,\n\n /**\n * Callback when start resizing\n * Pass following prop to re-resizable component\n * (https://github.com/bokuweb/re-resizable)\n */\n onResizeStart: PropTypes.func,\n};\n\nconst defaultMobileSize = {\n defaultSize: {\n width: '100%',\n height: '25%',\n },\n size: undefined,\n maximalHeight: '100%',\n minimalHeight: '25%',\n};\n\nconst defaultProps = {\n className: null,\n children: null,\n observe: null,\n isMobileResizable: true,\n mobileSize: defaultMobileSize,\n thresholdWidthForMobile: 768,\n onResizeStop: () => {},\n onResizeStart: () => {},\n};\n\n/**\n * The Overlay component creates a resizable, swipable overlay <div\\>\n */\nconst Overlay = ({\n observe,\n className,\n children,\n isMobileResizable,\n mobileSize,\n onResizeStop,\n onResizeStart,\n thresholdWidthForMobile,\n}) => {\n const [isMobile, setIsMobile] = useState();\n\n const onResize = (entries) => {\n for (let i = 0; i < entries.length; i += 1) {\n const { width } = entries[i].contentRect;\n setIsMobile(width <= thresholdWidthForMobile);\n }\n };\n\n let resizableMobileSize;\n if (mobileSize) {\n resizableMobileSize = { ...defaultMobileSize, ...mobileSize };\n }\n\n return (\n <>\n {observe ? <ResizeHandler observe={observe} onResize={onResize} /> : null}\n {isMobile ? (\n <Resizable\n style={{\n position: 'absolute',\n }}\n enable={{\n top: isMobileResizable,\n right: false,\n bottom: false,\n left: false,\n topRight: false,\n bottomRight: false,\n bottomLeft: false,\n topLeft: false,\n }}\n maxHeight={mobileSize && resizableMobileSize.maximalHeight}\n minHeight={mobileSize && resizableMobileSize.minimalHeight}\n handleComponent={{\n top: <div className=\"tm-overlay-handler\">&mdash;</div>,\n }}\n onResizeStart={onResizeStart}\n onResizeStop={onResizeStop}\n handleStyles={{\n top: {\n top: '-20px',\n height: '20px',\n padding: '20px 0',\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n }}\n size={resizableMobileSize.size}\n defaultSize={mobileSize && resizableMobileSize.defaultSize}\n className={`tm-overlay-mobile${className ? ` ${className}` : ''}`}\n >\n <div className=\"tm-overlay-mobile-content\">{children}</div>\n </Resizable>\n ) : (\n <div className={`tm-overlay${className ? ` ${className}` : ''}`}>\n {children}\n </div>\n )}\n </>\n );\n};\n\nOverlay.propTypes = propTypes;\nOverlay.defaultProps = defaultProps;\n\nexport default Overlay;\n"],"names":["const","let"],"mappings":"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"}
1
+ {"version":3,"file":"Overlay.js","sources":["../../../src/components/Overlay/Overlay.js"],"sourcesContent":["import React, { Component, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Resizable } from 're-resizable';\nimport ResizeHandler from '../ResizeHandler';\n\nconst propTypes = {\n /**\n * CSS class added to container.\n */\n className: PropTypes.string,\n\n /**\n * Children content of the overlay.\n */\n children: PropTypes.node,\n\n /**\n * Observed element to define screen size.\n */\n observe: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.node,\n PropTypes.instanceOf(Component),\n PropTypes.shape({ current: PropTypes.node }),\n PropTypes.shape({ current: PropTypes.instanceOf(Component) }),\n ]),\n\n /**\n * Deactivate the ability to resize the overlay on mobile.\n * /!\\ This prop is only used if isMobile (observer width < 768px).\n */\n isMobileResizable: PropTypes.bool,\n\n /**\n * Size parameters to the Resizable component on mobile.\n * Pass following prop to re-resizable component: 'size', 'defaultSize', 'minHeight' & 'maxHeight'\n * (https://github.com/bokuweb/re-resizable)\n * /!\\ This prop is only used if isMobile (observer width < 768px).\n */\n mobileSize: PropTypes.shape({\n minimalHeight: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n maximalHeight: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n defaultSize: PropTypes.shape({\n height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n }),\n size: PropTypes.shape({\n height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n }),\n }),\n\n /**\n * Minimal width to consider the observed as mobile.\n * Default is 768px.\n */\n thresholdWidthForMobile: PropTypes.number,\n\n /**\n * Callback when stop resizing\n * Pass following prop to re-resizable component\n * (https://github.com/bokuweb/re-resizable)\n */\n onResizeStop: PropTypes.func,\n\n /**\n * Callback when start resizing\n * Pass following prop to re-resizable component\n * (https://github.com/bokuweb/re-resizable)\n */\n onResizeStart: PropTypes.func,\n};\n\nconst defaultMobileSize = {\n defaultSize: {\n width: '100%',\n height: '25%',\n },\n size: undefined,\n maximalHeight: '100%',\n minimalHeight: '25%',\n};\n\nconst defaultProps = {\n className: null,\n children: null,\n observe: null,\n isMobileResizable: true,\n mobileSize: defaultMobileSize,\n thresholdWidthForMobile: 768,\n onResizeStop: () => {},\n onResizeStart: () => {},\n};\n\n/**\n * The Overlay component creates a resizable, swipable overlay <div\\>\n */\nconst Overlay = ({\n observe,\n className,\n children,\n isMobileResizable,\n mobileSize,\n onResizeStop,\n onResizeStart,\n thresholdWidthForMobile,\n}) => {\n const [isMobile, setIsMobile] = useState();\n\n const onResize = (entries) => {\n for (let i = 0; i < entries.length; i += 1) {\n const { width } = entries[i].contentRect;\n setIsMobile(width <= thresholdWidthForMobile);\n }\n };\n\n let resizableMobileSize;\n if (mobileSize) {\n resizableMobileSize = { ...defaultMobileSize, ...mobileSize };\n }\n\n return (\n <>\n {observe ? <ResizeHandler observe={observe} onResize={onResize} /> : null}\n {isMobile ? (\n <Resizable\n style={{\n position: 'absolute',\n }}\n enable={{\n top: isMobileResizable,\n right: false,\n bottom: false,\n left: false,\n topRight: false,\n bottomRight: false,\n bottomLeft: false,\n topLeft: false,\n }}\n maxHeight={mobileSize && resizableMobileSize.maximalHeight}\n minHeight={mobileSize && resizableMobileSize.minimalHeight}\n handleComponent={{\n top: <div className=\"tm-overlay-handler\">&mdash;</div>,\n }}\n onResizeStart={onResizeStart}\n onResizeStop={onResizeStop}\n handleStyles={{\n top: {\n top: '-20px',\n height: '20px',\n padding: '20px 0',\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n }}\n size={resizableMobileSize.size}\n defaultSize={mobileSize && resizableMobileSize.defaultSize}\n className={`tm-overlay-mobile${className ? ` ${className}` : ''}`}\n >\n <div className=\"tm-overlay-mobile-content\">{children}</div>\n </Resizable>\n ) : (\n <div className={`tm-overlay${className ? ` ${className}` : ''}`}>\n {children}\n </div>\n )}\n </>\n );\n};\n\nOverlay.propTypes = propTypes;\nOverlay.defaultProps = defaultProps;\n\nexport default Overlay;\n"],"names":["const","let"],"mappings":"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"}
@@ -3,7 +3,7 @@ import PropTypes from 'prop-types';
3
3
  import { act } from 'react-dom/test-utils';
4
4
  import { configure, mount } from 'enzyme';
5
5
  import renderer from 'react-test-renderer';
6
- import Adapter from 'enzyme-adapter-react-16';
6
+ import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
7
7
  import ResizeObserver from 'resize-observer-polyfill';
8
8
  import { Resizable } from 're-resizable';
9
9
  import Overlay from './Overlay';
@@ -1 +1 @@
1
- {"version":3,"file":"Overlay.test.js","sources":["../../../src/components/Overlay/Overlay.test.js"],"sourcesContent":["import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { act } from 'react-dom/test-utils';\nimport { configure, mount } from 'enzyme';\nimport renderer from 'react-test-renderer';\nimport Adapter from 'enzyme-adapter-react-16';\nimport ResizeObserver from 'resize-observer-polyfill';\nimport { Resizable } from 're-resizable';\nimport Overlay from './Overlay';\n\njest.mock('resize-observer-polyfill');\n\nconfigure({ adapter: new Adapter() });\n\nconst propTypes = {\n isMobileResizable: PropTypes.bool,\n thresholdWidthForMobile: PropTypes.number,\n};\n\nconst defaultProps = {\n isMobileResizable: undefined,\n thresholdWidthForMobile: undefined,\n};\n\nconst BasicComponent = ({ thresholdWidthForMobile, isMobileResizable }) => {\n const [ref, setRef] = useState(null);\n\n return (\n <>\n <div\n ref={(node) => {\n if (node !== ref) {\n setRef(node);\n }\n }}\n className=\"observer\"\n />\n <Overlay\n observe={ref}\n thresholdWidthForMobile={thresholdWidthForMobile}\n isMobileResizable={isMobileResizable}\n >\n Test content\n </Overlay>\n </>\n );\n};\nBasicComponent.propTypes = propTypes;\nBasicComponent.defaultProps = defaultProps;\n\ndescribe('Overlay', () => {\n test('should match snapshot.', () => {\n const component = renderer.create(<Overlay>Test content</Overlay>);\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n\n test('should react on observe resize.', () => {\n const wrapper = mount(<BasicComponent />);\n const target = wrapper.find('.observer').getDOMNode();\n\n act(() => {\n // The mock class set the onResize property, we just have to run it to\n // simulate a resize\n ResizeObserver.onResize([\n {\n target,\n contentRect: {\n width: 200,\n height: 200,\n },\n },\n ]);\n });\n wrapper.update();\n\n expect(wrapper.find('.tm-overlay').length > 0).toBe(false);\n expect(wrapper.find('.tm-overlay-mobile').length > 0).toBe(true);\n });\n\n test('should force mobile overlay display on big screen.', () => {\n const wrapper = mount(\n <BasicComponent thresholdWidthForMobile={Infinity} />,\n );\n const target = wrapper.find('.observer').getDOMNode();\n\n act(() => {\n ResizeObserver.onResize([\n {\n target,\n contentRect: {\n width: 1200,\n height: 200,\n },\n },\n ]);\n });\n wrapper.update();\n\n expect(wrapper.find('.tm-overlay').length > 0).toBe(false);\n expect(wrapper.find('.tm-overlay-mobile').length > 0).toBe(true);\n });\n\n test('should allow resizing with top handler on mobile.', () => {\n const wrapper = mount(<BasicComponent />);\n const target = wrapper.find('.observer').getDOMNode();\n\n // Force resize to make it mobile.\n act(() => {\n ResizeObserver.onResize([\n {\n target,\n contentRect: {\n width: 200,\n height: 200,\n },\n },\n ]);\n });\n wrapper.update();\n\n const resizableProps = wrapper.find(Resizable).props();\n\n expect(resizableProps.enable.top).toBe(true);\n });\n\n test('should not allow resizing with top handler on mobile.', () => {\n const wrapper = mount(<BasicComponent isMobileResizable={false} />);\n const target = wrapper.find('.observer').getDOMNode();\n\n // Force resize to make it mobile.\n act(() => {\n ResizeObserver.onResize([\n {\n target,\n contentRect: {\n width: 200,\n height: 200,\n },\n },\n ]);\n });\n wrapper.update();\n\n const resizableProps = wrapper.find(Resizable).props();\n\n expect(resizableProps.enable.top).toBe(false);\n });\n});\n"],"names":["const"],"mappings":"AAAA,OAAO,KAAK,IAAI,QAAQ,QAAQ,OAAO,CAAC;AACxC,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,SAAS,GAAG,QAAQ,sBAAsB,CAAC;AAC3C,SAAS,SAAS,EAAE,KAAK,QAAQ,QAAQ,CAAC;AAC1C,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,OAAO,OAAO,MAAM,yBAAyB,CAAC;AAC9C,OAAO,cAAc,MAAM,0BAA0B,CAAC;AACtD,SAAS,SAAS,QAAQ,cAAc,CAAC;AACzC,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC;AACA,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;AACtC;AACA,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC;AACtC;AACAA,GAAK,CAAC,SAAS,GAAG;AAClB,EAAE,iBAAiB,EAAE,SAAS,CAAC,IAAI;AACnC,EAAE,uBAAuB,EAAE,SAAS,CAAC,MAAM;AAC3C,CAAC,CAAC;AACF;AACAA,GAAK,CAAC,YAAY,GAAG;AACrB,EAAE,iBAAiB,EAAE,SAAS;AAC9B,EAAE,uBAAuB,EAAE,SAAS;AACpC,CAAC,CAAC;AACF;AACAA,GAAK,CAAC,cAAc,YAAG,MAA+C,EAAK,CAAjD;8DAAyB;;AAAyB;AAC5E,WAAqB,GAAG,QAAQ,CAAC,IAAI;EAA5B;EAAK,sBAAyB;AACvC;AACA,EAAE,OAAO;AACT,IAAI,0CAAE;AACN,MAAM,sBAAC,OAAG;AACV,QAAQ,cAAK,CAAC,IAAI,EAAK;AACvB,UAAU,IAAI,IAAI,KAAK,GAAG,EAAE;AAC5B,YAAY,MAAM,CAAC,IAAI,CAAC,CAAC;AACzB,WAAW;AACX,SAAU,EACF,WAAU,YAAU,EACpB;AACR,MAAM,qBAAC,UAAO;AACd,QAAQ,SAAS,GAAI,EACb,yBAAyB,uBAAwB,EACjD,mBAAmB,qBACpB,cAED,CAAU;AAChB,IAAI,CAAG;AACP,GAAG,CAAC;AACJ,CAAC,CAAC;AACF,cAAc,CAAC,SAAS,GAAG,SAAS,CAAC;AACrC,cAAc,CAAC,YAAY,GAAG,YAAY,CAAC;AAC3C;AACA,QAAQ,CAAC,SAAS,WAAE,GAAM;AAC1B,EAAE,IAAI,CAAC,wBAAwB,WAAE,GAAM;AACvC,IAAIA,GAAK,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,qBAAC,eAAQ,cAAY,EAAU,CAAC,CAAC;AACvE,IAAIA,GAAK,CAAC,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;AACpC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;AACnC,GAAG,CAAC,CAAC;AACL;AACA,EAAE,IAAI,CAAC,iCAAiC,WAAE,GAAM;AAChD,IAAIA,GAAK,CAAC,OAAO,GAAG,KAAK,CAAC,qBAAC,oBAAc,EAAG,CAAC,CAAC;AAC9C,IAAIA,GAAK,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,UAAU,EAAE,CAAC;AAC1D;AACA,IAAI,GAAG,UAAC,GAAM;AACd;AACA;AACA,MAAM,cAAc,CAAC,QAAQ,CAAC;AAC9B,QAAQ;AACR,kBAAU,MAAM;AAChB,UAAU,WAAW,EAAE;AACvB,YAAY,KAAK,EAAE,GAAG;AACtB,YAAY,MAAM,EAAE,GAAG;AACvB,WAAW;AACX,SAAS,CACH,CAAC,CAAC,CAAC;AACT,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;AACrB;AACA,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/D,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrE,GAAG,CAAC,CAAC;AACL;AACA,EAAE,IAAI,CAAC,oDAAoD,WAAE,GAAM;AACnE,IAAIA,GAAK,CAAC,OAAO,GAAG,KAAK;AACzB,MAAM,qBAAC,iBAAc,CAAC,yBAAyB,UAAS,CAAI;AAC5D,KAAK,CAAC;AACN,IAAIA,GAAK,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,UAAU,EAAE,CAAC;AAC1D;AACA,IAAI,GAAG,UAAC,GAAM;AACd,MAAM,cAAc,CAAC,QAAQ,CAAC;AAC9B,QAAQ;AACR,kBAAU,MAAM;AAChB,UAAU,WAAW,EAAE;AACvB,YAAY,KAAK,EAAE,IAAI;AACvB,YAAY,MAAM,EAAE,GAAG;AACvB,WAAW;AACX,SAAS,CACH,CAAC,CAAC,CAAC;AACT,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;AACrB;AACA,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/D,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrE,GAAG,CAAC,CAAC;AACL;AACA,EAAE,IAAI,CAAC,mDAAmD,WAAE,GAAM;AAClE,IAAIA,GAAK,CAAC,OAAO,GAAG,KAAK,CAAC,qBAAC,oBAAc,EAAG,CAAC,CAAC;AAC9C,IAAIA,GAAK,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,UAAU,EAAE,CAAC;AAC1D;AACA;AACA,IAAI,GAAG,UAAC,GAAM;AACd,MAAM,cAAc,CAAC,QAAQ,CAAC;AAC9B,QAAQ;AACR,kBAAU,MAAM;AAChB,UAAU,WAAW,EAAE;AACvB,YAAY,KAAK,EAAE,GAAG;AACtB,YAAY,MAAM,EAAE,GAAG;AACvB,WAAW;AACX,SAAS,CACH,CAAC,CAAC,CAAC;AACT,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;AACrB;AACA,IAAIA,GAAK,CAAC,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC;AAC3D;AACA,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjD,GAAG,CAAC,CAAC;AACL;AACA,EAAE,IAAI,CAAC,uDAAuD,WAAE,GAAM;AACtE,IAAIA,GAAK,CAAC,OAAO,GAAG,KAAK,CAAC,qBAAC,iBAAc,CAAC,mBAAmB,OAAM,CAAG,CAAC,CAAC;AACxE,IAAIA,GAAK,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,UAAU,EAAE,CAAC;AAC1D;AACA;AACA,IAAI,GAAG,UAAC,GAAM;AACd,MAAM,cAAc,CAAC,QAAQ,CAAC;AAC9B,QAAQ;AACR,kBAAU,MAAM;AAChB,UAAU,WAAW,EAAE;AACvB,YAAY,KAAK,EAAE,GAAG;AACtB,YAAY,MAAM,EAAE,GAAG;AACvB,WAAW;AACX,SAAS,CACH,CAAC,CAAC,CAAC;AACT,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;AACrB;AACA,IAAIA,GAAK,CAAC,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC;AAC3D;AACA,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAClD,GAAG,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;"}
1
+ {"version":3,"file":"Overlay.test.js","sources":["../../../src/components/Overlay/Overlay.test.js"],"sourcesContent":["import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { act } from 'react-dom/test-utils';\nimport { configure, mount } from 'enzyme';\nimport renderer from 'react-test-renderer';\nimport Adapter from '@wojtekmaj/enzyme-adapter-react-17';\nimport ResizeObserver from 'resize-observer-polyfill';\nimport { Resizable } from 're-resizable';\nimport Overlay from './Overlay';\n\njest.mock('resize-observer-polyfill');\n\nconfigure({ adapter: new Adapter() });\n\nconst propTypes = {\n isMobileResizable: PropTypes.bool,\n thresholdWidthForMobile: PropTypes.number,\n};\n\nconst defaultProps = {\n isMobileResizable: undefined,\n thresholdWidthForMobile: undefined,\n};\n\nconst BasicComponent = ({ thresholdWidthForMobile, isMobileResizable }) => {\n const [ref, setRef] = useState(null);\n\n return (\n <>\n <div\n ref={(node) => {\n if (node !== ref) {\n setRef(node);\n }\n }}\n className=\"observer\"\n />\n <Overlay\n observe={ref}\n thresholdWidthForMobile={thresholdWidthForMobile}\n isMobileResizable={isMobileResizable}\n >\n Test content\n </Overlay>\n </>\n );\n};\nBasicComponent.propTypes = propTypes;\nBasicComponent.defaultProps = defaultProps;\n\ndescribe('Overlay', () => {\n test('should match snapshot.', () => {\n const component = renderer.create(<Overlay>Test content</Overlay>);\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n\n test('should react on observe resize.', () => {\n const wrapper = mount(<BasicComponent />);\n const target = wrapper.find('.observer').getDOMNode();\n\n act(() => {\n // The mock class set the onResize property, we just have to run it to\n // simulate a resize\n ResizeObserver.onResize([\n {\n target,\n contentRect: {\n width: 200,\n height: 200,\n },\n },\n ]);\n });\n wrapper.update();\n\n expect(wrapper.find('.tm-overlay').length > 0).toBe(false);\n expect(wrapper.find('.tm-overlay-mobile').length > 0).toBe(true);\n });\n\n test('should force mobile overlay display on big screen.', () => {\n const wrapper = mount(\n <BasicComponent thresholdWidthForMobile={Infinity} />,\n );\n const target = wrapper.find('.observer').getDOMNode();\n\n act(() => {\n ResizeObserver.onResize([\n {\n target,\n contentRect: {\n width: 1200,\n height: 200,\n },\n },\n ]);\n });\n wrapper.update();\n\n expect(wrapper.find('.tm-overlay').length > 0).toBe(false);\n expect(wrapper.find('.tm-overlay-mobile').length > 0).toBe(true);\n });\n\n test('should allow resizing with top handler on mobile.', () => {\n const wrapper = mount(<BasicComponent />);\n const target = wrapper.find('.observer').getDOMNode();\n\n // Force resize to make it mobile.\n act(() => {\n ResizeObserver.onResize([\n {\n target,\n contentRect: {\n width: 200,\n height: 200,\n },\n },\n ]);\n });\n wrapper.update();\n\n const resizableProps = wrapper.find(Resizable).props();\n\n expect(resizableProps.enable.top).toBe(true);\n });\n\n test('should not allow resizing with top handler on mobile.', () => {\n const wrapper = mount(<BasicComponent isMobileResizable={false} />);\n const target = wrapper.find('.observer').getDOMNode();\n\n // Force resize to make it mobile.\n act(() => {\n ResizeObserver.onResize([\n {\n target,\n contentRect: {\n width: 200,\n height: 200,\n },\n },\n ]);\n });\n wrapper.update();\n\n const resizableProps = wrapper.find(Resizable).props();\n\n expect(resizableProps.enable.top).toBe(false);\n });\n});\n"],"names":["const"],"mappings":"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"}
@@ -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
  /**
@@ -135,6 +142,7 @@ var Permalink = /*@__PURE__*/(function (Component) {
135
142
  }
136
143
 
137
144
  if (map !== prevProps.map) {
145
+ unByKey(this.moveEndRef);
138
146
  this.moveEndRef = map.on('moveend', function () {
139
147
  return this$1.onMapMoved();
140
148
  });
@@ -146,11 +154,8 @@ var Permalink = /*@__PURE__*/(function (Component) {
146
154
  Permalink.prototype.componentWillUnmount = function componentWillUnmount () {
147
155
  var ref = this.props;
148
156
  var layerService = ref.layerService;
149
- var map = ref.map;
150
157
 
151
- if (map) {
152
- unByKey(this.moveEndRef);
153
- }
158
+ unByKey(this.moveEndRef);
154
159
 
155
160
  if (layerService) {
156
161
  layerService.un('change:layers', this.updateLayers);
@@ -162,15 +167,21 @@ var Permalink = /*@__PURE__*/(function (Component) {
162
167
  var ref = this.props;
163
168
  var map = ref.map;
164
169
  var mapView = map.getView();
165
- var ref$1 = mapView.getProperties();
166
- var center = ref$1.center;
170
+ var center = mapView.getCenter();
171
+ var params = {};
167
172
 
168
- this.setState({
169
- x: this.roundCoord(center[0]),
170
- y: this.roundCoord(center[1]),
173
+ if (
174
+ center !== undefined &&
175
+ center[0] !== undefined &&
176
+ center[1] !== undefined
177
+ ) {
178
+ params.x = this.roundCoord(center[0]);
179
+ params.y = this.roundCoord(center[1]);
180
+ }
181
+
182
+ this.setState(Object.assign({}, params,
171
183
  // rounds zoom to two digits max.
172
- z: +((Math.round(((parseFloat(mapView.getZoom())) + "e+2"))) + "e-2"),
173
- });
184
+ {z: +((Math.round(((parseFloat(mapView.getZoom())) + "e+2"))) + "e-2")}));
174
185
  };
175
186
 
176
187
  Permalink.prototype.roundCoord = function roundCoord (val) {
@@ -237,6 +248,7 @@ var Permalink = /*@__PURE__*/(function (Component) {
237
248
  var ref = this.props;
238
249
  var params = ref.params;
239
250
  var history = ref.history;
251
+ var replace = ref.replace;
240
252
  var oldParams = qs.parse(window.location.search);
241
253
  var parameters = Object.assign({}, oldParams, this.state, params);
242
254
 
@@ -258,7 +270,9 @@ var Permalink = /*@__PURE__*/(function (Component) {
258
270
  (!qStr && window.location.search) ||
259
271
  (qStr && search !== window.location.search)
260
272
  ) {
261
- if (history) {
273
+ if (replace) {
274
+ replace({ parameters: parameters, search: search });
275
+ } else if (history) {
262
276
  history.replace({ search: search });
263
277
  } else {
264
278
  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 unByKey(this.moveEndRef);\n this.moveEndRef = map.on('moveend', () => {\n return this.onMapMoved();\n });\n }\n\n this.updateHistory();\n }\n\n componentWillUnmount() {\n const { layerService } = this.props;\n\n unByKey(this.moveEndRef);\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.getCenter();\n const params = {};\n\n if (\n center !== undefined &&\n center[0] !== undefined &&\n center[1] !== undefined\n ) {\n params.x = this.roundCoord(center[0]);\n params.y = this.roundCoord(center[1]);\n }\n\n this.setState({\n ...params,\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":"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"}