react-spatial 1.2.2 → 1.2.3-beta.3

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 (186) hide show
  1. package/LayerService.js +128 -184
  2. package/LayerService.js.map +7 -1
  3. package/components/BaseLayerSwitcher/BaseLayerSwitcher.js +163 -221
  4. package/components/BaseLayerSwitcher/BaseLayerSwitcher.js.map +7 -1
  5. package/components/BaseLayerSwitcher/index.js +1 -3
  6. package/components/BaseLayerSwitcher/index.js.map +7 -1
  7. package/components/BasicMap/BasicMap.js +147 -285
  8. package/components/BasicMap/BasicMap.js.map +7 -1
  9. package/components/BasicMap/index.js +1 -3
  10. package/components/BasicMap/index.js.map +7 -1
  11. package/components/CanvasSaveButton/CanvasSaveButton.js +165 -419
  12. package/components/CanvasSaveButton/CanvasSaveButton.js.map +7 -1
  13. package/components/CanvasSaveButton/index.js +1 -3
  14. package/components/CanvasSaveButton/index.js.map +7 -1
  15. package/components/Copyright/Copyright.js +29 -70
  16. package/components/Copyright/Copyright.js.map +7 -1
  17. package/components/Copyright/index.js +1 -3
  18. package/components/Copyright/index.js.map +7 -1
  19. package/components/FeatureExportButton/FeatureExportButton.js +40 -106
  20. package/components/FeatureExportButton/FeatureExportButton.js.map +7 -1
  21. package/components/FeatureExportButton/index.js +1 -3
  22. package/components/FeatureExportButton/index.js.map +7 -1
  23. package/components/FilterButton/FilterButton.js +41 -106
  24. package/components/FilterButton/FilterButton.js.map +7 -1
  25. package/components/FilterButton/index.js +1 -3
  26. package/components/FilterButton/index.js.map +7 -1
  27. package/components/FitExtent/FitExtent.js +17 -50
  28. package/components/FitExtent/FitExtent.js.map +7 -1
  29. package/components/FitExtent/index.js +1 -3
  30. package/components/FitExtent/index.js.map +7 -1
  31. package/components/FollowButton/FollowButton.js +41 -111
  32. package/components/FollowButton/FollowButton.js.map +7 -1
  33. package/components/FollowButton/index.js +1 -3
  34. package/components/FollowButton/index.js.map +7 -1
  35. package/components/Geolocation/Geolocation.js +104 -213
  36. package/components/Geolocation/Geolocation.js.map +7 -1
  37. package/components/Geolocation/index.js +1 -3
  38. package/components/Geolocation/index.js.map +7 -1
  39. package/components/LayerTree/LayerTree.js +204 -410
  40. package/components/LayerTree/LayerTree.js.map +7 -1
  41. package/components/LayerTree/index.js +1 -3
  42. package/components/LayerTree/index.js.map +7 -1
  43. package/components/MousePosition/MousePosition.js +61 -130
  44. package/components/MousePosition/MousePosition.js.map +7 -1
  45. package/components/MousePosition/index.js +1 -3
  46. package/components/MousePosition/index.js.map +7 -1
  47. package/components/NorthArrow/NorthArrow.js +22 -62
  48. package/components/NorthArrow/NorthArrow.js.map +7 -1
  49. package/components/NorthArrow/index.js +1 -3
  50. package/components/NorthArrow/index.js.map +7 -1
  51. package/components/Overlay/Overlay.js +83 -130
  52. package/components/Overlay/Overlay.js.map +7 -1
  53. package/components/Overlay/index.js +1 -3
  54. package/components/Overlay/index.js.map +7 -1
  55. package/components/Permalink/Permalink.js +150 -244
  56. package/components/Permalink/Permalink.js.map +7 -1
  57. package/components/Permalink/index.js +1 -3
  58. package/components/Permalink/index.js.map +7 -1
  59. package/components/Popup/Popup.js +106 -233
  60. package/components/Popup/Popup.js.map +7 -1
  61. package/components/Popup/index.js +1 -3
  62. package/components/Popup/index.js.map +7 -1
  63. package/components/ResizeHandler/ResizeHandler.js +58 -113
  64. package/components/ResizeHandler/ResizeHandler.js.map +7 -1
  65. package/components/ResizeHandler/index.js +1 -3
  66. package/components/ResizeHandler/index.js.map +7 -1
  67. package/components/RouteSchedule/RouteSchedule.js +150 -283
  68. package/components/RouteSchedule/RouteSchedule.js.map +7 -1
  69. package/components/RouteSchedule/index.js +1 -3
  70. package/components/RouteSchedule/index.js.map +7 -1
  71. package/components/ScaleLine/ScaleLine.js +21 -45
  72. package/components/ScaleLine/ScaleLine.js.map +7 -1
  73. package/components/ScaleLine/index.js +1 -3
  74. package/components/ScaleLine/index.js.map +7 -1
  75. package/components/Search/Search.js +122 -186
  76. package/components/Search/Search.js.map +7 -1
  77. package/components/Search/SearchService.js +45 -69
  78. package/components/Search/SearchService.js.map +7 -1
  79. package/components/Search/engines/Engine.js +18 -25
  80. package/components/Search/engines/Engine.js.map +7 -1
  81. package/components/Search/engines/StopFinder.js +21 -38
  82. package/components/Search/engines/StopFinder.js.map +7 -1
  83. package/components/Search/index.js +3 -6
  84. package/components/Search/index.js.map +7 -1
  85. package/components/StopsFinder/StopsFinder.js +123 -174
  86. package/components/StopsFinder/StopsFinder.js.map +7 -1
  87. package/components/StopsFinder/StopsFinderOption.js +37 -54
  88. package/components/StopsFinder/StopsFinderOption.js.map +7 -1
  89. package/components/StopsFinder/index.js +1 -3
  90. package/components/StopsFinder/index.js.map +7 -1
  91. package/components/TrackerControl/TrackerControl.js +73 -128
  92. package/components/TrackerControl/TrackerControl.js.map +7 -1
  93. package/components/TrackerControl/index.js +1 -3
  94. package/components/TrackerControl/index.js.map +7 -1
  95. package/components/Zoom/Zoom.js +69 -112
  96. package/components/Zoom/Zoom.js.map +7 -1
  97. package/components/Zoom/index.js +1 -3
  98. package/components/Zoom/index.js.map +7 -1
  99. package/package.json +10 -5
  100. package/propTypes.js +17 -23
  101. package/propTypes.js.map +7 -1
  102. package/setupTests.js +2 -4
  103. package/setupTests.js.map +7 -1
  104. package/themes/README.md +26 -0
  105. package/themes/default/components.scss +0 -1
  106. package/themes/default/examples.scss +0 -1
  107. package/utils/GlobalsForOle.js +63 -64
  108. package/utils/GlobalsForOle.js.map +7 -1
  109. package/utils/KML.js +178 -364
  110. package/utils/KML.js.map +7 -1
  111. package/utils/KMLFormat.js +37 -73
  112. package/utils/KMLFormat.js.map +7 -1
  113. package/utils/Styles.js +24 -32
  114. package/utils/Styles.js.map +7 -1
  115. package/utils/getPolygonPattern.js +11 -44
  116. package/utils/getPolygonPattern.js.map +7 -1
  117. package/utils/timeUtils.js +16 -35
  118. package/utils/timeUtils.js.map +7 -1
  119. package/LayerService.test.js +0 -160
  120. package/LayerService.test.js.map +0 -1
  121. package/Projections.js +0 -16
  122. package/Projections.js.map +0 -1
  123. package/components/BaseLayerSwitcher/BaseLayerSwitcher.test.js +0 -88
  124. package/components/BaseLayerSwitcher/BaseLayerSwitcher.test.js.map +0 -1
  125. package/components/BaseLayerToggler/BaseLayerToggler.js +0 -490
  126. package/components/BaseLayerToggler/BaseLayerToggler.js.map +0 -1
  127. package/components/BaseLayerToggler/BaseLayerToggler.md.scss +0 -9
  128. package/components/BaseLayerToggler/BaseLayerToggler.scss +0 -49
  129. package/components/BaseLayerToggler/BaseLayerToggler.test.js +0 -127
  130. package/components/BaseLayerToggler/BaseLayerToggler.test.js.map +0 -1
  131. package/components/BaseLayerToggler/index.js +0 -3
  132. package/components/BaseLayerToggler/index.js.map +0 -1
  133. package/components/BasicMap/BasicMap.test.js +0 -288
  134. package/components/BasicMap/BasicMap.test.js.map +0 -1
  135. package/components/CanvasSaveButton/CanvasSaveButton.test.js +0 -173
  136. package/components/CanvasSaveButton/CanvasSaveButton.test.js.map +0 -1
  137. package/components/Copyright/Copyright.test.js +0 -133
  138. package/components/Copyright/Copyright.test.js.map +0 -1
  139. package/components/FeatureExportButton/FeatureExportButton.test.js +0 -407
  140. package/components/FeatureExportButton/FeatureExportButton.test.js.map +0 -1
  141. package/components/FilterButton/FilterButton.test.js +0 -48
  142. package/components/FilterButton/FilterButton.test.js.map +0 -1
  143. package/components/FitExtent/FitExtent.test.js +0 -44
  144. package/components/FitExtent/FitExtent.test.js.map +0 -1
  145. package/components/FollowButton/FollowButton.test.js +0 -57
  146. package/components/FollowButton/FollowButton.test.js.map +0 -1
  147. package/components/Geolocation/Geolocation.test.js +0 -263
  148. package/components/Geolocation/Geolocation.test.js.map +0 -1
  149. package/components/LayerTree/LayerTree.test.js +0 -323
  150. package/components/LayerTree/LayerTree.test.js.map +0 -1
  151. package/components/MousePosition/MousePosition.test.js +0 -125
  152. package/components/MousePosition/MousePosition.test.js.map +0 -1
  153. package/components/NorthArrow/NorthArrow.test.js +0 -106
  154. package/components/NorthArrow/NorthArrow.test.js.map +0 -1
  155. package/components/Overlay/Overlay.test.js +0 -145
  156. package/components/Overlay/Overlay.test.js.map +0 -1
  157. package/components/Permalink/Permalink.test.js +0 -267
  158. package/components/Permalink/Permalink.test.js.map +0 -1
  159. package/components/Popup/Popup.test.js +0 -291
  160. package/components/Popup/Popup.test.js.map +0 -1
  161. package/components/ResizeHandler/ResizeHandler.test.js +0 -410
  162. package/components/ResizeHandler/ResizeHandler.test.js.map +0 -1
  163. package/components/RouteSchedule/RouteSchedule.test.js +0 -102
  164. package/components/RouteSchedule/RouteSchedule.test.js.map +0 -1
  165. package/components/ScaleLine/ScaleLine.test.js +0 -32
  166. package/components/ScaleLine/ScaleLine.test.js.map +0 -1
  167. package/components/Search/Search.test.js +0 -15
  168. package/components/Search/Search.test.js.map +0 -1
  169. package/components/StopsFinder/StopsFinder.test.js +0 -19
  170. package/components/StopsFinder/StopsFinder.test.js.map +0 -1
  171. package/components/TrackerControl/TrackerControl.test.js +0 -17
  172. package/components/TrackerControl/TrackerControl.test.js.map +0 -1
  173. package/components/Zoom/Zoom.test.js +0 -150
  174. package/components/Zoom/Zoom.test.js.map +0 -1
  175. package/styleguidist/ComponentsList.js +0 -52
  176. package/styleguidist/ComponentsList.js.map +0 -1
  177. package/styleguidist/StyleGuide.js +0 -253
  178. package/styleguidist/StyleGuide.js.map +0 -1
  179. package/utils/KML.test.js +0 -163
  180. package/utils/KML.test.js.map +0 -1
  181. package/utils/KMLFormat.test.js +0 -22
  182. package/utils/KMLFormat.test.js.map +0 -1
  183. package/utils/getPolygonPattern.test.js +0 -66
  184. package/utils/getPolygonPattern.test.js.map +0 -1
  185. package/utils/timeUtils.test.js +0 -32
  186. package/utils/timeUtils.test.js.map +0 -1
@@ -1 +1,7 @@
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
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/LayerTree/LayerTree.js"],
4
+ "sourcesContent": ["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { Layer, getLayersAsFlatArray } from 'mobility-toolbox-js/ol';\nimport { unByKey } from 'ol/Observable';\n\nconst propTypes = {\n /**\n * Layers provider.\n */\n layers: PropTypes.arrayOf(Layer),\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 layers: [],\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\n const { layers, isItemHidden } = this.props;\n const initialExpandedLayers = layers\n ? this.getExpandedLayers(\n layers.filter((l) => {\n return (\n !isItemHidden(l) &&\n (l.children || [])\n .filter((child) => {\n return child.visible;\n })\n .filter((c) => {\n return !isItemHidden(c);\n }).length\n );\n }),\n )\n : [];\n\n this.state = {\n rootLayer: new Layer(),\n expandedLayers: initialExpandedLayers,\n revision: 0,\n };\n // this.updateLayers = this.updateLayers.bind(this);\n this.olKeys = [];\n }\n\n componentDidMount() {\n this.updateLayers();\n }\n\n componentDidUpdate(prevProps) {\n const { layers } = this.props;\n\n if (layers !== prevProps.layers) {\n this.updateLayers();\n }\n }\n\n componentWillUnmount() {\n unByKey(this.olKeys);\n this.olKeys = [];\n }\n\n onInputClick(layer, toggle = false) {\n if (toggle) {\n this.onToggle(layer);\n } else if (layer.setVisible) {\n layer.setVisible(!layer.visible);\n } else {\n // eslint-disable-next-line no-param-reassign\n layer.visible = !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 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 updateLayers() {\n const { layers, expandChildren } = this.props;\n\n // Update the root layer\n let rootLayer = new Layer();\n if (Array.isArray(layers)) {\n if (layers.length === 1) {\n [rootLayer] = layers;\n }\n rootLayer = new Layer({ children: layers });\n } else {\n rootLayer = layers;\n }\n\n getLayersAsFlatArray(rootLayer).forEach((layer) => {\n this.olKeys.push(\n layer.on('propertychange', (evt) => {\n const { revision } = this.state;\n this.setState({ revision: revision + 1 });\n }),\n );\n });\n\n const state = { rootLayer };\n if (\n typeof expandChildren === 'function'\n ? expandChildren(layers)\n : expandChildren\n ) {\n state.expandedLayers = rootLayer.children.flatMap((l) => {\n return this.expandLayer(l);\n });\n }\n\n this.setState(state);\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('group') ? '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\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) ? titles.subLayerHide : titles.subLayerShow\n }`;\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 { expandedLayers } = this.state;\n const {\n renderItem,\n renderItemContent,\n renderBeforeItem,\n renderAfterItem,\n padding,\n getParentClassName,\n } = this.props;\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 { rootLayer } = this.state;\n\n if (!rootLayer?.children?.length) {\n return null;\n }\n\n return (\n <>\n {rootLayer.children\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"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -1,3 +1 @@
1
- export { default } from './LayerTree';
2
-
3
- //# sourceMappingURL=index.js.map
1
+ export { default } from "./LayerTree";
@@ -1 +1,7 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/LayerTree/index.js"],"sourcesContent":["export { default } from './LayerTree';\n"],"names":[],"mappings":"AAAA,SAAS,OAAO,QAAQ,aAAa,CAAC;"}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/LayerTree/index.js"],
4
+ "sourcesContent": ["export { default } from './LayerTree';\n"],
5
+ "mappings": "AAAA,wBAAwB;",
6
+ "names": []
7
+ }
@@ -1,146 +1,83 @@
1
- function objectWithoutProperties (obj, exclude) { var target = {}; for (var k in obj) if (Object.prototype.hasOwnProperty.call(obj, k) && exclude.indexOf(k) === -1) target[k] = obj[k]; return target; }
2
- import React, { useState, useRef, useEffect, useCallback } from 'react';
3
- import PropTypes from 'prop-types';
4
- import OLMap from 'ol/Map';
5
- import { createStringXY } from 'ol/coordinate';
6
- import OLMousePosition from 'ol/control/MousePosition';
7
-
8
- var propTypes = {
9
- /**
10
- * An [ol/map](https://openlayers.org/en/latest/apidoc/module-ol_Map-Map.html).
11
- */
1
+ import React, { useState, useRef, useEffect, useCallback } from "react";
2
+ import PropTypes from "prop-types";
3
+ import OLMap from "ol/Map";
4
+ import { createStringXY } from "ol/coordinate";
5
+ import OLMousePosition from "ol/control/MousePosition";
6
+ const propTypes = {
12
7
  map: PropTypes.instanceOf(OLMap).isRequired,
13
-
14
- /**
15
- * List of projections to display.
16
- */
17
8
  projections: PropTypes.arrayOf(
18
9
  PropTypes.shape({
19
- /**
20
- * The label to display in the select box.
21
- */
22
10
  label: PropTypes.string.isRequired,
23
-
24
- /**
25
- * The value used to create the options´s projection of the MousePosition control.
26
- * See [doc](https://openlayers.org/en/latest/apidoc/module-ol_control_MousePosition.html).
27
- */
28
11
  value: PropTypes.string.isRequired,
29
-
30
- /**
31
- * A function following the [CoordinateFormat](https://openlayers.org/en/latest/apidoc/module-ol_coordinate.html#~CoordinateFormat).
32
- */
33
- format: PropTypes.func,
12
+ format: PropTypes.func
34
13
  })
35
14
  ),
36
-
37
- /**
38
- * The initially selected projection
39
- */
40
15
  projectionValue: PropTypes.shape({
41
- /**
42
- * The label to display in the select box.
43
- */
44
16
  label: PropTypes.string.isRequired,
45
-
46
- /**
47
- * The value used to create the options´s projection of the MousePosition control.
48
- * See [doc](https://openlayers.org/en/latest/apidoc/module-ol_control_MousePosition.html).
49
- */
50
17
  value: PropTypes.string.isRequired,
51
-
52
- /**
53
- * A function following the [CoordinateFormat](https://openlayers.org/en/latest/apidoc/module-ol_coordinate.html#~CoordinateFormat).
54
- */
55
- format: PropTypes.func,
18
+ format: PropTypes.func
56
19
  }),
57
-
58
- /**
59
- * Function triggered on projection's change event.
60
- * @param {Event} event The change event object.
61
- * @param {Object} projection The selected projection object.
62
- */
63
- onChange: PropTypes.func,
20
+ onChange: PropTypes.func
64
21
  };
65
-
66
- var defaultProps = {
67
- onChange: function () {},
22
+ const defaultProps = {
23
+ onChange: () => {
24
+ },
68
25
  projections: [
69
26
  {
70
- label: 'EPSG:4326',
71
- value: 'EPSG:4326',
27
+ label: "EPSG:4326",
28
+ value: "EPSG:4326"
72
29
  },
73
30
  {
74
- label: 'EPSG:3857',
75
- value: 'EPSG:3857',
76
- } ],
77
- projectionValue: null,
31
+ label: "EPSG:3857",
32
+ value: "EPSG:3857"
33
+ }
34
+ ],
35
+ projectionValue: null
78
36
  };
79
-
80
- /**
81
- * The MousePosition component renders a select box with map projection options
82
- * and the cursor position in coordinates using the selected projection.
83
- */
84
- function MousePosition(ref$1) {
85
- var map = ref$1.map;
86
- var projections = ref$1.projections;
87
- var projectionValue = ref$1.projectionValue;
88
- var onChange = ref$1.onChange;
89
- var rest = objectWithoutProperties( ref$1, ["map", "projections", "projectionValue", "onChange"] );
90
- var other = rest;
91
-
92
- var ref$2 = useState(
93
- projections &&
94
- ((projectionValue &&
95
- projections.find(function (p) {
96
- return p.value === projectionValue.value;
97
- })) ||
98
- projections[0])
37
+ function MousePosition({
38
+ map,
39
+ projections,
40
+ projectionValue,
41
+ onChange,
42
+ ...other
43
+ }) {
44
+ const [projection, setProjection] = useState(
45
+ projections && (projectionValue && projections.find((p) => {
46
+ return p.value === projectionValue.value;
47
+ }) || projections[0])
99
48
  );
100
- var projection = ref$2[0];
101
- var setProjection = ref$2[1];
102
- var ref$3 = useState();
103
- var control = ref$3[0];
104
- var setControl = ref$3[1];
105
- var ref = useRef();
106
-
107
- useEffect(function () {
108
- var mousePosition = new OLMousePosition({
49
+ const [control, setControl] = useState();
50
+ const ref = useRef();
51
+ useEffect(() => {
52
+ const mousePosition = new OLMousePosition({
109
53
  target: ref.current,
110
- undefinedHTML: '&nbsp;',
111
- className: '',
54
+ undefinedHTML: "&nbsp;",
55
+ className: ""
112
56
  });
113
57
  map.addControl(mousePosition);
114
58
  setControl(mousePosition);
115
-
116
- return function () {
59
+ return () => {
117
60
  map.removeControl(mousePosition);
118
61
  };
119
62
  }, [map]);
120
-
121
- useEffect(function () {
63
+ useEffect(() => {
122
64
  if (!projection || !control) {
123
65
  return;
124
66
  }
125
67
  control.setProjection(projection.value);
126
68
  control.setCoordinateFormat(projection.format || createStringXY(4));
127
69
  }, [projection, control]);
128
-
129
- useEffect(function () {
70
+ useEffect(() => {
130
71
  if (projections) {
131
- var proj =
132
- (projectionValue &&
133
- projections.find(function (p) {
134
- return p.value === projectionValue.value;
135
- })) ||
136
- projections[0];
72
+ const proj = projectionValue && projections.find((p) => {
73
+ return p.value === projectionValue.value;
74
+ }) || projections[0];
137
75
  setProjection(proj);
138
76
  }
139
77
  }, [projections, projectionValue]);
140
-
141
- var onChangeCb = useCallback(
142
- function (evt) {
143
- var newProj = projections.find(function (opt) {
78
+ const onChangeCb = useCallback(
79
+ (evt) => {
80
+ const newProj = projections.find((opt) => {
144
81
  return evt.target.value === opt.value;
145
82
  });
146
83
  setProjection(newProj);
@@ -148,32 +85,26 @@ function MousePosition(ref$1) {
148
85
  },
149
86
  [onChange, projections]
150
87
  );
151
-
152
88
  if (!projection || !projections || !projections.length) {
153
89
  return null;
154
90
  }
155
-
156
- return (
157
- // eslint-disable-next-line react/jsx-props-no-spreading
158
- React.createElement( 'div', Object.assign({}, { className: "rs-mouse-position" }, other),
159
- React.createElement( 'select', {
160
- className: "rs-select", value: projection.value, onChange: onChangeCb },
161
- projections.map(function (option) {
162
- return (
163
- React.createElement( 'option', { key: option.value, value: option.value },
164
- option.label
165
- )
166
- );
167
- })
168
- ),
169
- React.createElement( 'span', { ref: ref, className: "rs-coordinates" })
170
- )
171
- );
91
+ return /* @__PURE__ */ React.createElement("div", {
92
+ className: "rs-mouse-position",
93
+ ...other
94
+ }, /* @__PURE__ */ React.createElement("select", {
95
+ className: "rs-select",
96
+ value: projection.value,
97
+ onChange: onChangeCb
98
+ }, projections.map((option) => {
99
+ return /* @__PURE__ */ React.createElement("option", {
100
+ key: option.value,
101
+ value: option.value
102
+ }, option.label);
103
+ })), /* @__PURE__ */ React.createElement("span", {
104
+ ref,
105
+ className: "rs-coordinates"
106
+ }));
172
107
  }
173
-
174
108
  MousePosition.propTypes = propTypes;
175
109
  MousePosition.defaultProps = defaultProps;
176
-
177
110
  export default React.memo(MousePosition);
178
-
179
- //# sourceMappingURL=MousePosition.js.map
@@ -1 +1,7 @@
1
- {"version":3,"file":"MousePosition.js","sources":["../../../src/components/MousePosition/MousePosition.js"],"sourcesContent":["import React, { useState, useRef, useEffect, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport OLMap from 'ol/Map';\nimport { createStringXY } from 'ol/coordinate';\nimport OLMousePosition from 'ol/control/MousePosition';\n\nconst propTypes = {\n /**\n * An [ol/map](https://openlayers.org/en/latest/apidoc/module-ol_Map-Map.html).\n */\n map: PropTypes.instanceOf(OLMap).isRequired,\n\n /**\n * List of projections to display.\n */\n projections: PropTypes.arrayOf(\n PropTypes.shape({\n /**\n * The label to display in the select box.\n */\n label: PropTypes.string.isRequired,\n\n /**\n * The value used to create the options´s projection of the MousePosition control.\n * See [doc](https://openlayers.org/en/latest/apidoc/module-ol_control_MousePosition.html).\n */\n value: PropTypes.string.isRequired,\n\n /**\n * A function following the [CoordinateFormat](https://openlayers.org/en/latest/apidoc/module-ol_coordinate.html#~CoordinateFormat).\n */\n format: PropTypes.func,\n }),\n ),\n\n /**\n * The initially selected projection\n */\n projectionValue: PropTypes.shape({\n /**\n * The label to display in the select box.\n */\n label: PropTypes.string.isRequired,\n\n /**\n * The value used to create the options´s projection of the MousePosition control.\n * See [doc](https://openlayers.org/en/latest/apidoc/module-ol_control_MousePosition.html).\n */\n value: PropTypes.string.isRequired,\n\n /**\n * A function following the [CoordinateFormat](https://openlayers.org/en/latest/apidoc/module-ol_coordinate.html#~CoordinateFormat).\n */\n format: PropTypes.func,\n }),\n\n /**\n * Function triggered on projection's change event.\n * @param {Event} event The change event object.\n * @param {Object} projection The selected projection object.\n */\n onChange: PropTypes.func,\n};\n\nconst defaultProps = {\n onChange: () => {},\n projections: [\n {\n label: 'EPSG:4326',\n value: 'EPSG:4326',\n },\n {\n label: 'EPSG:3857',\n value: 'EPSG:3857',\n },\n ],\n projectionValue: null,\n};\n\n/**\n * The MousePosition component renders a select box with map projection options\n * and the cursor position in coordinates using the selected projection.\n */\nfunction MousePosition({\n map,\n projections,\n projectionValue,\n onChange,\n ...other\n}) {\n const [projection, setProjection] = useState(\n projections &&\n ((projectionValue &&\n projections.find((p) => {\n return p.value === projectionValue.value;\n })) ||\n projections[0]),\n );\n const [control, setControl] = useState();\n const ref = useRef();\n\n useEffect(() => {\n const mousePosition = new OLMousePosition({\n target: ref.current,\n undefinedHTML: '&nbsp;',\n className: '',\n });\n map.addControl(mousePosition);\n setControl(mousePosition);\n\n return () => {\n map.removeControl(mousePosition);\n };\n }, [map]);\n\n useEffect(() => {\n if (!projection || !control) {\n return;\n }\n control.setProjection(projection.value);\n control.setCoordinateFormat(projection.format || createStringXY(4));\n }, [projection, control]);\n\n useEffect(() => {\n if (projections) {\n const proj =\n (projectionValue &&\n projections.find((p) => {\n return p.value === projectionValue.value;\n })) ||\n projections[0];\n setProjection(proj);\n }\n }, [projections, projectionValue]);\n\n const onChangeCb = useCallback(\n (evt) => {\n const newProj = projections.find((opt) => {\n return evt.target.value === opt.value;\n });\n setProjection(newProj);\n onChange(evt, newProj);\n },\n [onChange, projections],\n );\n\n if (!projection || !projections || !projections.length) {\n return null;\n }\n\n return (\n // eslint-disable-next-line react/jsx-props-no-spreading\n <div className=\"rs-mouse-position\" {...other}>\n <select\n className=\"rs-select\"\n value={projection.value}\n onChange={onChangeCb}\n >\n {projections.map((option) => {\n return (\n <option key={option.value} value={option.value}>\n {option.label}\n </option>\n );\n })}\n </select>\n <span ref={ref} className=\"rs-coordinates\" />\n </div>\n );\n}\n\nMousePosition.propTypes = propTypes;\nMousePosition.defaultProps = defaultProps;\n\nexport default React.memo(MousePosition);\n"],"names":["const"],"mappings":"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"}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/MousePosition/MousePosition.js"],
4
+ "sourcesContent": ["import React, { useState, useRef, useEffect, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport OLMap from 'ol/Map';\nimport { createStringXY } from 'ol/coordinate';\nimport OLMousePosition from 'ol/control/MousePosition';\n\nconst propTypes = {\n /**\n * An [ol/map](https://openlayers.org/en/latest/apidoc/module-ol_Map-Map.html).\n */\n map: PropTypes.instanceOf(OLMap).isRequired,\n\n /**\n * List of projections to display.\n */\n projections: PropTypes.arrayOf(\n PropTypes.shape({\n /**\n * The label to display in the select box.\n */\n label: PropTypes.string.isRequired,\n\n /**\n * The value used to create the options\u00B4s projection of the MousePosition control.\n * See [doc](https://openlayers.org/en/latest/apidoc/module-ol_control_MousePosition.html).\n */\n value: PropTypes.string.isRequired,\n\n /**\n * A function following the [CoordinateFormat](https://openlayers.org/en/latest/apidoc/module-ol_coordinate.html#~CoordinateFormat).\n */\n format: PropTypes.func,\n }),\n ),\n\n /**\n * The initially selected projection\n */\n projectionValue: PropTypes.shape({\n /**\n * The label to display in the select box.\n */\n label: PropTypes.string.isRequired,\n\n /**\n * The value used to create the options\u00B4s projection of the MousePosition control.\n * See [doc](https://openlayers.org/en/latest/apidoc/module-ol_control_MousePosition.html).\n */\n value: PropTypes.string.isRequired,\n\n /**\n * A function following the [CoordinateFormat](https://openlayers.org/en/latest/apidoc/module-ol_coordinate.html#~CoordinateFormat).\n */\n format: PropTypes.func,\n }),\n\n /**\n * Function triggered on projection's change event.\n * @param {Event} event The change event object.\n * @param {Object} projection The selected projection object.\n */\n onChange: PropTypes.func,\n};\n\nconst defaultProps = {\n onChange: () => {},\n projections: [\n {\n label: 'EPSG:4326',\n value: 'EPSG:4326',\n },\n {\n label: 'EPSG:3857',\n value: 'EPSG:3857',\n },\n ],\n projectionValue: null,\n};\n\n/**\n * The MousePosition component renders a select box with map projection options\n * and the cursor position in coordinates using the selected projection.\n */\nfunction MousePosition({\n map,\n projections,\n projectionValue,\n onChange,\n ...other\n}) {\n const [projection, setProjection] = useState(\n projections &&\n ((projectionValue &&\n projections.find((p) => {\n return p.value === projectionValue.value;\n })) ||\n projections[0]),\n );\n const [control, setControl] = useState();\n const ref = useRef();\n\n useEffect(() => {\n const mousePosition = new OLMousePosition({\n target: ref.current,\n undefinedHTML: '&nbsp;',\n className: '',\n });\n map.addControl(mousePosition);\n setControl(mousePosition);\n\n return () => {\n map.removeControl(mousePosition);\n };\n }, [map]);\n\n useEffect(() => {\n if (!projection || !control) {\n return;\n }\n control.setProjection(projection.value);\n control.setCoordinateFormat(projection.format || createStringXY(4));\n }, [projection, control]);\n\n useEffect(() => {\n if (projections) {\n const proj =\n (projectionValue &&\n projections.find((p) => {\n return p.value === projectionValue.value;\n })) ||\n projections[0];\n setProjection(proj);\n }\n }, [projections, projectionValue]);\n\n const onChangeCb = useCallback(\n (evt) => {\n const newProj = projections.find((opt) => {\n return evt.target.value === opt.value;\n });\n setProjection(newProj);\n onChange(evt, newProj);\n },\n [onChange, projections],\n );\n\n if (!projection || !projections || !projections.length) {\n return null;\n }\n\n return (\n // eslint-disable-next-line react/jsx-props-no-spreading\n <div className=\"rs-mouse-position\" {...other}>\n <select\n className=\"rs-select\"\n value={projection.value}\n onChange={onChangeCb}\n >\n {projections.map((option) => {\n return (\n <option key={option.value} value={option.value}>\n {option.label}\n </option>\n );\n })}\n </select>\n <span ref={ref} className=\"rs-coordinates\" />\n </div>\n );\n}\n\nMousePosition.propTypes = propTypes;\nMousePosition.defaultProps = defaultProps;\n\nexport default React.memo(MousePosition);\n"],
5
+ "mappings": "AAAA,OAAO,SAAS,UAAU,QAAQ,WAAW,mBAAmB;AAChE,OAAO,eAAe;AACtB,OAAO,WAAW;AAClB,SAAS,sBAAsB;AAC/B,OAAO,qBAAqB;AAE5B,MAAM,YAAY;AAAA,EAIhB,KAAK,UAAU,WAAW,KAAK,EAAE;AAAA,EAKjC,aAAa,UAAU;AAAA,IACrB,UAAU,MAAM;AAAA,MAId,OAAO,UAAU,OAAO;AAAA,MAMxB,OAAO,UAAU,OAAO;AAAA,MAKxB,QAAQ,UAAU;AAAA,IACpB,CAAC;AAAA,EACH;AAAA,EAKA,iBAAiB,UAAU,MAAM;AAAA,IAI/B,OAAO,UAAU,OAAO;AAAA,IAMxB,OAAO,UAAU,OAAO;AAAA,IAKxB,QAAQ,UAAU;AAAA,EACpB,CAAC;AAAA,EAOD,UAAU,UAAU;AACtB;AAEA,MAAM,eAAe;AAAA,EACnB,UAAU,MAAM;AAAA,EAAC;AAAA,EACjB,aAAa;AAAA,IACX;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA,iBAAiB;AACnB;AAMA,SAAS,cAAc;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,KACG;AACL,GAAG;AACD,QAAM,CAAC,YAAY,aAAa,IAAI;AAAA,IAClC,gBACI,mBACA,YAAY,KAAK,CAAC,MAAM;AACtB,aAAO,EAAE,UAAU,gBAAgB;AAAA,IACrC,CAAC,KACD,YAAY;AAAA,EAClB;AACA,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS;AACvC,QAAM,MAAM,OAAO;AAEnB,YAAU,MAAM;AACd,UAAM,gBAAgB,IAAI,gBAAgB;AAAA,MACxC,QAAQ,IAAI;AAAA,MACZ,eAAe;AAAA,MACf,WAAW;AAAA,IACb,CAAC;AACD,QAAI,WAAW,aAAa;AAC5B,eAAW,aAAa;AAExB,WAAO,MAAM;AACX,UAAI,cAAc,aAAa;AAAA,IACjC;AAAA,EACF,GAAG,CAAC,GAAG,CAAC;AAER,YAAU,MAAM;AACd,QAAI,CAAC,cAAc,CAAC,SAAS;AAC3B;AAAA,IACF;AACA,YAAQ,cAAc,WAAW,KAAK;AACtC,YAAQ,oBAAoB,WAAW,UAAU,eAAe,CAAC,CAAC;AAAA,EACpE,GAAG,CAAC,YAAY,OAAO,CAAC;AAExB,YAAU,MAAM;AACd,QAAI,aAAa;AACf,YAAM,OACH,mBACC,YAAY,KAAK,CAAC,MAAM;AACtB,eAAO,EAAE,UAAU,gBAAgB;AAAA,MACrC,CAAC,KACH,YAAY;AACd,oBAAc,IAAI;AAAA,IACpB;AAAA,EACF,GAAG,CAAC,aAAa,eAAe,CAAC;AAEjC,QAAM,aAAa;AAAA,IACjB,CAAC,QAAQ;AACP,YAAM,UAAU,YAAY,KAAK,CAAC,QAAQ;AACxC,eAAO,IAAI,OAAO,UAAU,IAAI;AAAA,MAClC,CAAC;AACD,oBAAc,OAAO;AACrB,eAAS,KAAK,OAAO;AAAA,IACvB;AAAA,IACA,CAAC,UAAU,WAAW;AAAA,EACxB;AAEA,MAAI,CAAC,cAAc,CAAC,eAAe,CAAC,YAAY,QAAQ;AACtD,WAAO;AAAA,EACT;AAEA,SAEE,oCAAC;AAAA,IAAI,WAAU;AAAA,IAAqB,GAAG;AAAA,KACrC,oCAAC;AAAA,IACC,WAAU;AAAA,IACV,OAAO,WAAW;AAAA,IAClB,UAAU;AAAA,KAET,YAAY,IAAI,CAAC,WAAW;AAC3B,WACE,oCAAC;AAAA,MAAO,KAAK,OAAO;AAAA,MAAO,OAAO,OAAO;AAAA,OACtC,OAAO,KACV;AAAA,EAEJ,CAAC,CACH,GACA,oCAAC;AAAA,IAAK;AAAA,IAAU,WAAU;AAAA,GAAiB,CAC7C;AAEJ;AAEA,cAAc,YAAY;AAC1B,cAAc,eAAe;AAE7B,eAAe,MAAM,KAAK,aAAa;",
6
+ "names": []
7
+ }
@@ -1,3 +1 @@
1
- export { default } from './MousePosition';
2
-
3
- //# sourceMappingURL=index.js.map
1
+ export { default } from "./MousePosition";
@@ -1 +1,7 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/MousePosition/index.js"],"sourcesContent":["export { default } from './MousePosition';\n"],"names":[],"mappings":"AAAA,SAAS,OAAO,QAAQ,iBAAiB,CAAC;"}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/MousePosition/index.js"],
4
+ "sourcesContent": ["export { default } from './MousePosition';\n"],
5
+ "mappings": "AAAA,wBAAwB;",
6
+ "names": []
7
+ }
@@ -1,83 +1,43 @@
1
- function objectWithoutProperties (obj, exclude) { var target = {}; for (var k in obj) if (Object.prototype.hasOwnProperty.call(obj, k) && exclude.indexOf(k) === -1) target[k] = obj[k]; return target; }
2
- import React, { useEffect, useState } from 'react';
3
- import PropTypes from 'prop-types';
4
- import OLMap from 'ol/Map';
5
- import { unByKey } from 'ol/Observable';
6
- import degrees from 'radians-degrees';
7
- import NorthArrowSimple from '../../images/northArrow.svg';
8
- import NorthArrowCircle from '../../images/northArrowCircle.svg';
9
-
10
- var propTypes = {
11
- /**
12
- * An [ol/map](https://openlayers.org/en/latest/apidoc/module-ol_Map-Map.html).
13
- */
1
+ import React, { useEffect, useState } from "react";
2
+ import PropTypes from "prop-types";
3
+ import OLMap from "ol/Map";
4
+ import { unByKey } from "ol/Observable";
5
+ import degrees from "radians-degrees";
6
+ import NorthArrowSimple from "../../images/northArrow.svg";
7
+ import NorthArrowCircle from "../../images/northArrowCircle.svg";
8
+ const propTypes = {
14
9
  map: PropTypes.instanceOf(OLMap).isRequired,
15
-
16
- /**
17
- * Rotation of the north arrow in degrees.
18
- */
19
10
  rotationOffset: PropTypes.number,
20
-
21
- /**
22
- * Display circle around the north arrow. Not used if pass children.
23
- */
24
11
  circled: PropTypes.bool,
25
-
26
- /**
27
- * Children content of the north arrow.
28
- */
29
- children: PropTypes.node,
12
+ children: PropTypes.node
30
13
  };
31
-
32
- var defaultProps = {
14
+ const defaultProps = {
33
15
  rotationOffset: 0,
34
16
  circled: false,
35
- children: null,
17
+ children: null
36
18
  };
37
-
38
- var getRotation = function (map, rotationOffset) {
19
+ const getRotation = (map, rotationOffset) => {
39
20
  return degrees(map.getView().getRotation()) + rotationOffset;
40
21
  };
41
-
42
- /**
43
- * This NorthArrow component inserts an arrow pointing north into an
44
- * [ol/map](https://openlayers.org/en/latest/apidoc/module-ol_Map-Map.html).
45
- */
46
- function NorthArrow(ref) {
47
- var map = ref.map;
48
- var rotationOffset = ref.rotationOffset;
49
- var circled = ref.circled;
50
- var children = ref.children;
51
- var rest = objectWithoutProperties( ref, ["map", "rotationOffset", "circled", "children"] );
52
- var other = rest;
53
-
54
- var ref$1 = useState(rotationOffset);
55
- var rotation = ref$1[0];
56
- var setRotation = ref$1[1];
57
-
58
- useEffect(function () {
22
+ function NorthArrow({ map, rotationOffset, circled, children, ...other }) {
23
+ const [rotation, setRotation] = useState(rotationOffset);
24
+ useEffect(() => {
59
25
  if (!map) {
60
26
  return null;
61
27
  }
62
- var key = map.on('postrender', function () {
28
+ const key = map.on("postrender", () => {
63
29
  setRotation(getRotation(map, rotationOffset));
64
30
  });
65
- return function () {
31
+ return () => {
66
32
  unByKey(key);
67
33
  };
68
34
  }, [map, rotationOffset]);
69
-
70
- return (
71
- React.createElement( 'div', Object.assign({},
72
- { className: "rs-north-arrow" }, other, { style: { transform: ("rotate(" + rotation + "deg)") } }),
73
- children || (circled ? React.createElement( NorthArrowCircle, null ) : React.createElement( NorthArrowSimple, null ))
74
- )
75
- );
35
+ return /* @__PURE__ */ React.createElement("div", {
36
+ className: "rs-north-arrow",
37
+ ...other,
38
+ style: { transform: `rotate(${rotation}deg)` }
39
+ }, children || (circled ? /* @__PURE__ */ React.createElement(NorthArrowCircle, null) : /* @__PURE__ */ React.createElement(NorthArrowSimple, null)));
76
40
  }
77
-
78
41
  NorthArrow.propTypes = propTypes;
79
42
  NorthArrow.defaultProps = defaultProps;
80
-
81
43
  export default React.memo(NorthArrow);
82
-
83
- //# sourceMappingURL=NorthArrow.js.map
@@ -1 +1,7 @@
1
- {"version":3,"file":"NorthArrow.js","sources":["../../../src/components/NorthArrow/NorthArrow.js"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport OLMap from 'ol/Map';\nimport { unByKey } from 'ol/Observable';\nimport degrees from 'radians-degrees';\nimport NorthArrowSimple from '../../images/northArrow.svg';\nimport NorthArrowCircle from '../../images/northArrowCircle.svg';\n\nconst propTypes = {\n /**\n * An [ol/map](https://openlayers.org/en/latest/apidoc/module-ol_Map-Map.html).\n */\n map: PropTypes.instanceOf(OLMap).isRequired,\n\n /**\n * Rotation of the north arrow in degrees.\n */\n rotationOffset: PropTypes.number,\n\n /**\n * Display circle around the north arrow. Not used if pass children.\n */\n circled: PropTypes.bool,\n\n /**\n * Children content of the north arrow.\n */\n children: PropTypes.node,\n};\n\nconst defaultProps = {\n rotationOffset: 0,\n circled: false,\n children: null,\n};\n\nconst getRotation = (map, rotationOffset) => {\n return degrees(map.getView().getRotation()) + rotationOffset;\n};\n\n/**\n * This NorthArrow component inserts an arrow pointing north into an\n * [ol/map](https://openlayers.org/en/latest/apidoc/module-ol_Map-Map.html).\n */\nfunction NorthArrow({ map, rotationOffset, circled, children, ...other }) {\n const [rotation, setRotation] = useState(rotationOffset);\n\n useEffect(() => {\n if (!map) {\n return null;\n }\n const key = map.on('postrender', () => {\n setRotation(getRotation(map, rotationOffset));\n });\n return () => {\n unByKey(key);\n };\n }, [map, rotationOffset]);\n\n return (\n <div\n className=\"rs-north-arrow\"\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...other}\n style={{ transform: `rotate(${rotation}deg)` }}\n >\n {children || (circled ? <NorthArrowCircle /> : <NorthArrowSimple />)}\n </div>\n );\n}\n\nNorthArrow.propTypes = propTypes;\nNorthArrow.defaultProps = defaultProps;\n\nexport default React.memo(NorthArrow);\n"],"names":["const"],"mappings":";AAAA,OAAO,KAAK,IAAI,SAAS,EAAE,QAAQ,QAAQ,OAAO,CAAC;AACnD,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,KAAK,MAAM,QAAQ,CAAC;AAC3B,SAAS,OAAO,QAAQ,eAAe,CAAC;AACxC,OAAO,OAAO,MAAM,iBAAiB,CAAC;AACtC,OAAO,gBAAgB,MAAM,6BAA6B,CAAC;AAC3D,OAAO,gBAAgB,MAAM,mCAAmC,CAAC;AACjE;AACAA,GAAK,CAAC,SAAS,GAAG;AAClB;AACA;AACA;AACA,EAAE,GAAG,EAAE,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,UAAU;AAC7C;AACA;AACA;AACA;AACA,EAAE,cAAc,EAAE,SAAS,CAAC,MAAM;AAClC;AACA;AACA;AACA;AACA,EAAE,OAAO,EAAE,SAAS,CAAC,IAAI;AACzB;AACA;AACA;AACA;AACA,EAAE,QAAQ,EAAE,SAAS,CAAC,IAAI;AAC1B,CAAC,CAAC;AACF;AACAA,GAAK,CAAC,YAAY,GAAG;AACrB,EAAE,cAAc,EAAE,CAAC;AACnB,EAAE,OAAO,EAAE,KAAK;AAChB,EAAE,QAAQ,EAAE,IAAI;AAChB,CAAC,CAAC;AACF;AACAA,GAAK,CAAC,WAAW,YAAG,CAAC,GAAG,EAAE,cAAc,EAAK;AAC7C,EAAE,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC,GAAG,cAAc,CAAC;AAC/D,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA,SAAS,UAAU,IAAqD,EAAE,CAApD;oBAAK;0CAAgB;4BAAS;8BAAU;8FAAG;;AAAU;AAC3E,WAA+B,GAAG,QAAQ,CAAC,cAAc;EAAhD;EAAU,2BAAwC;AAC3D;AACA,EAAE,SAAS,UAAC,GAAM;AAClB,IAAI,IAAI,CAAC,GAAG,EAAE;AACd,MAAM,OAAO,IAAI,CAAC;AAClB,KAAK;AACL,IAAIA,GAAK,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,YAAY,WAAE,GAAM;AAC3C,MAAM,WAAW,CAAC,WAAW,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC;AACpD,KAAK,CAAC,CAAC;AACP,IAAI,gBAAO,GAAM;AACjB,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;AACnB,KAAK,CAAC;AACN,GAAG,EAAE,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC;AAC5B;AACA,EAAE,OAAO;AACT,IAAI,sBAAC,uBAAG;AACR,QAAM,WAAU,kBAAgB,EAEtB,KAAM,IACV,OAAO,EAAE,SAAS,EAAE,aAAU,QAAQ,UAAM,MAC7C;AACL,MAAO,QAAQ,IAAI,CAAC,OAAO,GAAG,qBAAC,sBAAgB,EAAG,GAAG,qBAAC,sBAAgB,EAAG,CAAE;AAC3E,IAAI,CAAM;AACV,GAAG,CAAC;AACJ,CAAC;AACD;AACA,UAAU,CAAC,SAAS,GAAG,SAAS,CAAC;AACjC,UAAU,CAAC,YAAY,GAAG,YAAY,CAAC;AACvC;AACA,eAAe,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;"}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/NorthArrow/NorthArrow.js"],
4
+ "sourcesContent": ["import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport OLMap from 'ol/Map';\nimport { unByKey } from 'ol/Observable';\nimport degrees from 'radians-degrees';\nimport NorthArrowSimple from '../../images/northArrow.svg';\nimport NorthArrowCircle from '../../images/northArrowCircle.svg';\n\nconst propTypes = {\n /**\n * An [ol/map](https://openlayers.org/en/latest/apidoc/module-ol_Map-Map.html).\n */\n map: PropTypes.instanceOf(OLMap).isRequired,\n\n /**\n * Rotation of the north arrow in degrees.\n */\n rotationOffset: PropTypes.number,\n\n /**\n * Display circle around the north arrow. Not used if pass children.\n */\n circled: PropTypes.bool,\n\n /**\n * Children content of the north arrow.\n */\n children: PropTypes.node,\n};\n\nconst defaultProps = {\n rotationOffset: 0,\n circled: false,\n children: null,\n};\n\nconst getRotation = (map, rotationOffset) => {\n return degrees(map.getView().getRotation()) + rotationOffset;\n};\n\n/**\n * This NorthArrow component inserts an arrow pointing north into an\n * [ol/map](https://openlayers.org/en/latest/apidoc/module-ol_Map-Map.html).\n */\nfunction NorthArrow({ map, rotationOffset, circled, children, ...other }) {\n const [rotation, setRotation] = useState(rotationOffset);\n\n useEffect(() => {\n if (!map) {\n return null;\n }\n const key = map.on('postrender', () => {\n setRotation(getRotation(map, rotationOffset));\n });\n return () => {\n unByKey(key);\n };\n }, [map, rotationOffset]);\n\n return (\n <div\n className=\"rs-north-arrow\"\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...other}\n style={{ transform: `rotate(${rotation}deg)` }}\n >\n {children || (circled ? <NorthArrowCircle /> : <NorthArrowSimple />)}\n </div>\n );\n}\n\nNorthArrow.propTypes = propTypes;\nNorthArrow.defaultProps = defaultProps;\n\nexport default React.memo(NorthArrow);\n"],
5
+ "mappings": "AAAA,OAAO,SAAS,WAAW,gBAAgB;AAC3C,OAAO,eAAe;AACtB,OAAO,WAAW;AAClB,SAAS,eAAe;AACxB,OAAO,aAAa;AACpB,OAAO,sBAAsB;AAC7B,OAAO,sBAAsB;AAE7B,MAAM,YAAY;AAAA,EAIhB,KAAK,UAAU,WAAW,KAAK,EAAE;AAAA,EAKjC,gBAAgB,UAAU;AAAA,EAK1B,SAAS,UAAU;AAAA,EAKnB,UAAU,UAAU;AACtB;AAEA,MAAM,eAAe;AAAA,EACnB,gBAAgB;AAAA,EAChB,SAAS;AAAA,EACT,UAAU;AACZ;AAEA,MAAM,cAAc,CAAC,KAAK,mBAAmB;AAC3C,SAAO,QAAQ,IAAI,QAAQ,EAAE,YAAY,CAAC,IAAI;AAChD;AAMA,SAAS,WAAW,EAAE,KAAK,gBAAgB,SAAS,aAAa,MAAM,GAAG;AACxE,QAAM,CAAC,UAAU,WAAW,IAAI,SAAS,cAAc;AAEvD,YAAU,MAAM;AACd,QAAI,CAAC,KAAK;AACR,aAAO;AAAA,IACT;AACA,UAAM,MAAM,IAAI,GAAG,cAAc,MAAM;AACrC,kBAAY,YAAY,KAAK,cAAc,CAAC;AAAA,IAC9C,CAAC;AACD,WAAO,MAAM;AACX,cAAQ,GAAG;AAAA,IACb;AAAA,EACF,GAAG,CAAC,KAAK,cAAc,CAAC;AAExB,SACE,oCAAC;AAAA,IACC,WAAU;AAAA,IAET,GAAG;AAAA,IACJ,OAAO,EAAE,WAAW,UAAU,eAAe;AAAA,KAE5C,aAAa,UAAU,oCAAC,sBAAiB,IAAK,oCAAC,sBAAiB,EACnE;AAEJ;AAEA,WAAW,YAAY;AACvB,WAAW,eAAe;AAE1B,eAAe,MAAM,KAAK,UAAU;",
6
+ "names": []
7
+ }
@@ -1,3 +1 @@
1
- export { default } from './NorthArrow';
2
-
3
- //# sourceMappingURL=index.js.map
1
+ export { default } from "./NorthArrow";
@@ -1 +1,7 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/NorthArrow/index.js"],"sourcesContent":["export { default } from './NorthArrow';\n"],"names":[],"mappings":"AAAA,SAAS,OAAO,QAAQ,cAAc,CAAC;"}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/NorthArrow/index.js"],
4
+ "sourcesContent": ["export { default } from './NorthArrow';\n"],
5
+ "mappings": "AAAA,wBAAwB;",
6
+ "names": []
7
+ }