@open-pioneer/selection 0.9.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,37 @@
1
1
  # @open-pioneer/selection
2
2
 
3
+ ## 0.10.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 193068a: Deprecate the `mapId` property on React components.
8
+ Use the `MapModel` directly instead to pass a reference to the map.
9
+
10
+ Example:
11
+
12
+ ```tsx
13
+ // Default map for entire component tree
14
+ <DefaultMapProvider map={mapModel}>
15
+ <Toc />
16
+ </DefaultMapProvider>
17
+
18
+ // Map for specific component
19
+ <Toc map={mapModel} />
20
+ ```
21
+
22
+ ### Patch Changes
23
+
24
+ - cd1435b: Update ol to 10.5.0
25
+ - 032eed7: Bump dependencies.
26
+ - cd1435b: Update to react 19.1.0
27
+ - Updated dependencies [2bafdad]
28
+ - Updated dependencies [cd1435b]
29
+ - Updated dependencies [193068a]
30
+ - Updated dependencies [032eed7]
31
+ - Updated dependencies [cd1435b]
32
+ - Updated dependencies [7558df4]
33
+ - @open-pioneer/map@0.10.0
34
+
3
35
  ## 0.9.0
4
36
 
5
37
  ### Minor Changes
package/DragController.js CHANGED
@@ -92,11 +92,8 @@ class DragController {
92
92
  */
93
93
  createDrag(olMap, viewPort, interactionResources) {
94
94
  const condition = function(mapBrowserEvent) {
95
- const originalEvent = (
96
- /** @type {MouseEvent} */
97
- mapBrowserEvent.originalEvent
98
- );
99
- return originalEvent.button == 2;
95
+ const originalEvent = mapBrowserEvent.originalEvent;
96
+ return "button" in originalEvent && originalEvent.button == 2;
100
97
  };
101
98
  const drag = new DragPan({
102
99
  condition
@@ -1 +1 @@
1
- {"version":3,"file":"DragController.js","sources":["DragController.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2023-2025 Open Pioneer project (https://github.com/open-pioneer)\n// SPDX-License-Identifier: Apache-2.0\nimport { Resource } from \"@open-pioneer/core\";\nimport OlMap from \"ol/Map\";\nimport { unByKey } from \"ol/Observable\";\nimport Overlay from \"ol/Overlay\";\nimport { mouseActionButton } from \"ol/events/condition\";\nimport Geometry from \"ol/geom/Geometry\";\nimport { DragBox, DragPan } from \"ol/interaction\";\nimport PointerInteraction from \"ol/interaction/Pointer\";\n\ninterface InteractionResource extends Resource {\n interaction: PointerInteraction;\n}\n/** Represents a tooltip rendered on the OpenLayers map. */\ninterface Tooltip extends Resource {\n overlay: Overlay;\n element: HTMLDivElement;\n setText(value: string): void;\n}\n\nconst ACTIVE_CLASS = \"selection-active\";\nconst INACTIVE_CLASS = \"selection-inactive\";\n\nexport class DragController {\n private tooltip: Tooltip;\n private interactionResources: InteractionResource[] = [];\n private olMap: OlMap;\n private isActive: boolean = true;\n private tooltipMessage: string;\n private tooltipDisabledMessage: string;\n\n constructor(\n olMap: OlMap,\n tooltipMessage: string,\n tooltipDisabledMessage: string,\n onExtentSelected: (geometry: Geometry) => void\n ) {\n const viewPort = this.initViewport(olMap);\n this.interactionResources.push(\n this.createDragBox(olMap, onExtentSelected, viewPort, this.interactionResources)\n );\n this.interactionResources.push(this.createDrag(olMap, viewPort, this.interactionResources));\n\n this.tooltip = this.createHelpTooltip(olMap, tooltipMessage);\n this.olMap = olMap;\n this.tooltipMessage = tooltipMessage;\n this.tooltipDisabledMessage = tooltipDisabledMessage;\n }\n\n initViewport(olMap: OlMap) {\n const viewPort = olMap.getViewport();\n viewPort.classList.add(ACTIVE_CLASS);\n\n viewPort.oncontextmenu = (e) => {\n e.preventDefault();\n return false;\n };\n return viewPort;\n }\n\n /**\n * Method for destroying the controller when it is no longer needed\n */\n destroy() {\n this.tooltip.destroy();\n this.interactionResources.forEach((interaction) => {\n interaction.destroy();\n });\n }\n\n setActive(isActive: boolean) {\n if (this.isActive === isActive) return;\n const viewPort = this.olMap.getViewport();\n if (isActive) {\n this.interactionResources.forEach((interaction) =>\n this.olMap.addInteraction(interaction.interaction)\n );\n this.tooltip.setText(this.tooltipMessage);\n viewPort.classList.remove(INACTIVE_CLASS);\n viewPort.classList.add(ACTIVE_CLASS);\n this.isActive = true;\n } else {\n this.interactionResources.forEach((interaction) =>\n this.olMap.removeInteraction(interaction.interaction)\n );\n this.tooltip.setText(this.tooltipDisabledMessage);\n viewPort.classList.remove(ACTIVE_CLASS);\n viewPort.classList.add(INACTIVE_CLASS);\n this.isActive = false;\n }\n }\n\n /**\n * Method to create a simple extent-selection\n */\n private createDragBox(\n olMap: OlMap,\n onExtentSelected: (geometry: Geometry) => void,\n viewPort: HTMLElement,\n interactionResources: InteractionResource[]\n ): InteractionResource {\n const dragBox = new DragBox({\n className: \"selection-drag-box\",\n condition: mouseActionButton\n });\n\n olMap.addInteraction(dragBox);\n dragBox.on(\"boxend\", function () {\n onExtentSelected(dragBox.getGeometry());\n });\n\n const interactionResource: InteractionResource = {\n interaction: dragBox,\n destroy() {\n olMap.removeInteraction(dragBox);\n interactionResources.splice(interactionResources.indexOf(this));\n dragBox.dispose();\n viewPort.classList.remove(ACTIVE_CLASS);\n viewPort.classList.remove(INACTIVE_CLASS);\n viewPort.oncontextmenu = null;\n }\n };\n return interactionResource;\n }\n\n /**\n * Method to activate pan with right-mouse-click\n */\n private createDrag(\n olMap: OlMap,\n viewPort: HTMLElement,\n interactionResources: InteractionResource[]\n ): InteractionResource {\n const condition = function (mapBrowserEvent: {\n originalEvent: MouseEvent;\n dragging: unknown;\n }) {\n const originalEvent = /** @type {MouseEvent} */ mapBrowserEvent.originalEvent;\n return originalEvent.button == 2;\n };\n const drag = new DragPan({\n condition: condition\n });\n\n olMap.addInteraction(drag);\n\n const interactionResource: InteractionResource = {\n interaction: drag,\n destroy() {\n olMap.removeInteraction(drag);\n interactionResources.splice(interactionResources.indexOf(this));\n drag.dispose();\n viewPort.classList.remove(ACTIVE_CLASS);\n viewPort.classList.remove(INACTIVE_CLASS);\n viewPort.oncontextmenu = null;\n }\n };\n\n return interactionResource;\n }\n\n /**\n * Method to generate a tooltip on the mouse cursor\n */\n private createHelpTooltip(olMap: OlMap, message: string): Tooltip {\n const element = document.createElement(\"div\");\n element.className = \"selection-tooltip printing-hide\";\n element.role = \"tooltip\";\n\n const content = document.createElement(\"span\");\n content.textContent = message;\n element.appendChild(content);\n\n const overlay = new Overlay({\n element: element,\n offset: [15, 0],\n positioning: \"center-left\"\n });\n\n const pointHandler = olMap.on(\"pointermove\", (evt) => {\n overlay.setPosition(evt.coordinate);\n });\n\n olMap.addOverlay(overlay);\n return {\n overlay,\n element,\n destroy() {\n olMap.removeOverlay(overlay);\n overlay.dispose();\n unByKey(pointHandler);\n },\n setText(value) {\n content.textContent = value;\n }\n };\n }\n\n /**\n * Method for testing purposes only\n * @returns InteractionResource of class DragBox\n */\n getDragboxInteraction() {\n return this.interactionResources.find(\n (interactionResource) => interactionResource.interaction instanceof DragBox\n );\n }\n\n /**\n * Method for testing purposes only\n * @returns InteractionResource of class DragPan\n */\n getDragPanInteraction() {\n return this.interactionResources.find(\n (interactionResource) => interactionResource.interaction instanceof DragPan\n );\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DragController.js","sources":["DragController.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2023-2025 Open Pioneer project (https://github.com/open-pioneer)\n// SPDX-License-Identifier: Apache-2.0\nimport { Resource } from \"@open-pioneer/core\";\nimport { MapBrowserEvent } from \"ol\";\nimport OlMap from \"ol/Map\";\nimport { unByKey } from \"ol/Observable\";\nimport Overlay from \"ol/Overlay\";\nimport { mouseActionButton } from \"ol/events/condition\";\nimport Geometry from \"ol/geom/Geometry\";\nimport { DragBox, DragPan } from \"ol/interaction\";\nimport PointerInteraction from \"ol/interaction/Pointer\";\n\ninterface InteractionResource extends Resource {\n interaction: PointerInteraction;\n}\n/** Represents a tooltip rendered on the OpenLayers map. */\ninterface Tooltip extends Resource {\n overlay: Overlay;\n element: HTMLDivElement;\n setText(value: string): void;\n}\n\nconst ACTIVE_CLASS = \"selection-active\";\nconst INACTIVE_CLASS = \"selection-inactive\";\n\nexport class DragController {\n private tooltip: Tooltip;\n private interactionResources: InteractionResource[] = [];\n private olMap: OlMap;\n private isActive: boolean = true;\n private tooltipMessage: string;\n private tooltipDisabledMessage: string;\n\n constructor(\n olMap: OlMap,\n tooltipMessage: string,\n tooltipDisabledMessage: string,\n onExtentSelected: (geometry: Geometry) => void\n ) {\n const viewPort = this.initViewport(olMap);\n this.interactionResources.push(\n this.createDragBox(olMap, onExtentSelected, viewPort, this.interactionResources)\n );\n this.interactionResources.push(this.createDrag(olMap, viewPort, this.interactionResources));\n\n this.tooltip = this.createHelpTooltip(olMap, tooltipMessage);\n this.olMap = olMap;\n this.tooltipMessage = tooltipMessage;\n this.tooltipDisabledMessage = tooltipDisabledMessage;\n }\n\n initViewport(olMap: OlMap) {\n const viewPort = olMap.getViewport();\n viewPort.classList.add(ACTIVE_CLASS);\n\n viewPort.oncontextmenu = (e) => {\n e.preventDefault();\n return false;\n };\n return viewPort;\n }\n\n /**\n * Method for destroying the controller when it is no longer needed\n */\n destroy() {\n this.tooltip.destroy();\n this.interactionResources.forEach((interaction) => {\n interaction.destroy();\n });\n }\n\n setActive(isActive: boolean) {\n if (this.isActive === isActive) return;\n const viewPort = this.olMap.getViewport();\n if (isActive) {\n this.interactionResources.forEach((interaction) =>\n this.olMap.addInteraction(interaction.interaction)\n );\n this.tooltip.setText(this.tooltipMessage);\n viewPort.classList.remove(INACTIVE_CLASS);\n viewPort.classList.add(ACTIVE_CLASS);\n this.isActive = true;\n } else {\n this.interactionResources.forEach((interaction) =>\n this.olMap.removeInteraction(interaction.interaction)\n );\n this.tooltip.setText(this.tooltipDisabledMessage);\n viewPort.classList.remove(ACTIVE_CLASS);\n viewPort.classList.add(INACTIVE_CLASS);\n this.isActive = false;\n }\n }\n\n /**\n * Method to create a simple extent-selection\n */\n private createDragBox(\n olMap: OlMap,\n onExtentSelected: (geometry: Geometry) => void,\n viewPort: HTMLElement,\n interactionResources: InteractionResource[]\n ): InteractionResource {\n const dragBox = new DragBox({\n className: \"selection-drag-box\",\n condition: mouseActionButton\n });\n\n olMap.addInteraction(dragBox);\n dragBox.on(\"boxend\", function () {\n onExtentSelected(dragBox.getGeometry());\n });\n\n const interactionResource: InteractionResource = {\n interaction: dragBox,\n destroy() {\n olMap.removeInteraction(dragBox);\n interactionResources.splice(interactionResources.indexOf(this));\n dragBox.dispose();\n viewPort.classList.remove(ACTIVE_CLASS);\n viewPort.classList.remove(INACTIVE_CLASS);\n viewPort.oncontextmenu = null;\n }\n };\n return interactionResource;\n }\n\n /**\n * Method to activate pan with right-mouse-click\n */\n private createDrag(\n olMap: OlMap,\n viewPort: HTMLElement,\n interactionResources: InteractionResource[]\n ): InteractionResource {\n const condition = function (mapBrowserEvent: MapBrowserEvent) {\n const originalEvent = mapBrowserEvent.originalEvent;\n return \"button\" in originalEvent && originalEvent.button == 2;\n };\n const drag = new DragPan({\n condition: condition\n });\n\n olMap.addInteraction(drag);\n\n const interactionResource: InteractionResource = {\n interaction: drag,\n destroy() {\n olMap.removeInteraction(drag);\n interactionResources.splice(interactionResources.indexOf(this));\n drag.dispose();\n viewPort.classList.remove(ACTIVE_CLASS);\n viewPort.classList.remove(INACTIVE_CLASS);\n viewPort.oncontextmenu = null;\n }\n };\n\n return interactionResource;\n }\n\n /**\n * Method to generate a tooltip on the mouse cursor\n */\n private createHelpTooltip(olMap: OlMap, message: string): Tooltip {\n const element = document.createElement(\"div\");\n element.className = \"selection-tooltip printing-hide\";\n element.role = \"tooltip\";\n\n const content = document.createElement(\"span\");\n content.textContent = message;\n element.appendChild(content);\n\n const overlay = new Overlay({\n element: element,\n offset: [15, 0],\n positioning: \"center-left\"\n });\n\n const pointHandler = olMap.on(\"pointermove\", (evt) => {\n overlay.setPosition(evt.coordinate);\n });\n\n olMap.addOverlay(overlay);\n return {\n overlay,\n element,\n destroy() {\n olMap.removeOverlay(overlay);\n overlay.dispose();\n unByKey(pointHandler);\n },\n setText(value) {\n content.textContent = value;\n }\n };\n }\n\n /**\n * Method for testing purposes only\n * @returns InteractionResource of class DragBox\n */\n getDragboxInteraction() {\n return this.interactionResources.find(\n (interactionResource) => interactionResource.interaction instanceof DragBox\n );\n }\n\n /**\n * Method for testing purposes only\n * @returns InteractionResource of class DragPan\n */\n getDragPanInteraction() {\n return this.interactionResources.find(\n (interactionResource) => interactionResource.interaction instanceof DragPan\n );\n }\n}\n"],"names":[],"mappings":"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"}
package/README.md CHANGED
@@ -6,11 +6,14 @@ This package provides a UI component to perform a selection on given selection s
6
6
 
7
7
  To add the component to your app, import `Selection` from `@open-pioneer/selection`. The `@open-pioneer/notifier` package is required too.
8
8
 
9
- The mandatory properties are `mapId` and `sources` (layer source to be selected on).
9
+ The mandatory properties are `map` (unless the `DefaultMapProvider`is used) and `sources` (layer source to be selected on).
10
10
  The limit per selection is 10.000 items.
11
11
 
12
12
  ```tsx
13
- <Selection mapId={MAP_ID} sources={selectionsources} />
13
+ <Selection
14
+ map={map}
15
+ sources={selectionsources}
16
+ /> /* instead of passing the map, the `DefaultMapProvider` can alternatively be used */
14
17
  ```
15
18
 
16
19
  ### Listening to events
@@ -23,7 +26,7 @@ In case of the `onSelectionSourceChanged` event, you can access the selected sel
23
26
  ```tsx
24
27
  import { Search, SearchSelectEvent } from "@open-pioneer/search";
25
28
  <Selection
26
- mapId={MAP_ID}
29
+ map={map}
27
30
  sources={datasources}
28
31
  onSelectionComplete={(event: SelectionCompleteEvent) => {
29
32
  // do something
@@ -65,7 +68,7 @@ class MySelectionSource implements SelectionSource {
65
68
  const selectionsources: SelectionSource[] = [new MySelectionSource()];
66
69
 
67
70
  // In your JSX template:
68
- <Selection mapId={MAP_ID} sources={selectionsources} />;
71
+ <Selection map={map} sources={selectionsources} />;
69
72
  ```
70
73
 
71
74
  ### VectorLayer as selection source
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "module",
3
3
  "name": "@open-pioneer/selection",
4
- "version": "0.9.0",
4
+ "version": "0.10.0",
5
5
  "description": "This package provides a UI component to perform a selection on given selection sources from the map.",
6
6
  "keywords": [
7
7
  "open-pioneer-trails"
@@ -15,20 +15,20 @@
15
15
  },
16
16
  "dependencies": {
17
17
  "@chakra-ui/icons": "^2.2.4",
18
- "@open-pioneer/chakra-integration": "^3.0.0",
19
- "@open-pioneer/core": "^3.0.0",
20
- "@open-pioneer/notifier": "^3.0.0",
21
- "@open-pioneer/react-utils": "^3.0.0",
22
- "@open-pioneer/runtime": "^3.0.0",
18
+ "@open-pioneer/chakra-integration": "^3.1.0",
19
+ "@open-pioneer/core": "^3.1.0",
20
+ "@open-pioneer/notifier": "^3.1.0",
21
+ "@open-pioneer/react-utils": "^3.1.0",
22
+ "@open-pioneer/runtime": "^3.1.0",
23
23
  "classnames": "^2.3.2",
24
24
  "chakra-react-select": "^5.0.4",
25
- "ol": "^10.4.0",
26
- "react": "^19.0.0",
25
+ "ol": "^10.5.0",
26
+ "react": "^19.1.0",
27
27
  "react-icons": "^5.3.0",
28
28
  "uuid": "^11.1.0",
29
- "@conterra/reactivity-core": "^0.4.3",
30
- "@open-pioneer/reactivity": "^3.0.0",
31
- "@open-pioneer/map": "^0.9.0"
29
+ "@conterra/reactivity-core": "^0.5.0",
30
+ "@open-pioneer/reactivity": "^3.1.0",
31
+ "@open-pioneer/map": "^0.10.0"
32
32
  },
33
33
  "exports": {
34
34
  "./package.json": "./package.json",