@defra/interactive-map 0.0.36-alpha → 0.0.38-alpha
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/assets/templates/draw-tools.njk +4 -3
- package/dist/css/index.css +1 -1
- package/dist/esm/im-core.js +1 -1
- package/dist/esm/im-shell.js +1 -1
- package/dist/umd/im-core.js +1 -1
- package/dist/umd/index.js +1 -1
- package/docs/api.md +32 -0
- package/docs/examples/draw-tools.mdx +0 -4
- package/docs/plugins/draw.md +482 -0
- package/docs/plugins.md +2 -6
- package/govuk-prototype-kit.config.json +3 -2
- package/package.json +2 -4
- package/plugins/beta/draw-es/dist/esm/im-draw-es-plugin.js +1 -1
- package/plugins/beta/draw-es/src/events.js +1 -1
- package/plugins/beta/draw-ml/dist/esm/im-draw-ml-plugin.js +1 -1
- package/plugins/beta/draw-ml/dist/umd/im-draw-ml-plugin.js +1 -1
- package/plugins/beta/draw-ol/dist/esm/im-draw-ol-plugin.js +1 -1
- package/plugins/beta/map-styles/dist/css/index.css +1 -97
- package/plugins/datasets/dist/esm/esriLayerAdapter.js +1 -1
- package/plugins/datasets/dist/esm/im-datasets-plugin.js +1 -1
- package/plugins/datasets/dist/umd/im-datasets-esri-adapter.js +1 -1
- package/plugins/datasets/dist/umd/im-datasets-plugin.js +1 -1
- package/plugins/datasets/src/adapters/esri/esriLayerAdapter.js +13 -0
- package/plugins/draw/dist/esm/im-draw-ml-adapter.js +1 -0
- package/plugins/draw/dist/esm/im-draw-ol-adapter.js +1 -0
- package/plugins/draw/dist/esm/im-draw-plugin.js +1 -0
- package/plugins/draw/dist/esm/index.js +1 -0
- package/plugins/draw/dist/umd/im-draw-ml-adapter.js +1 -0
- package/plugins/draw/dist/umd/im-draw-ol-adapter.js +2 -0
- package/plugins/draw/dist/umd/im-draw-ol-adapter.js.LICENSE.txt +1 -0
- package/plugins/draw/dist/umd/im-draw-plugin.js +2 -0
- package/plugins/draw/dist/umd/im-draw-plugin.js.LICENSE.txt +1 -0
- package/plugins/draw/dist/umd/index.js +2 -0
- package/plugins/draw/dist/umd/index.js.LICENSE.txt +1 -0
- package/plugins/draw/src/DrawInit.jsx +89 -0
- package/plugins/draw/src/DrawInit.test.jsx +184 -0
- package/plugins/draw/src/adapterEvents.js +127 -0
- package/plugins/draw/src/adapterEvents.test.js +20 -0
- package/plugins/draw/src/adapters/adapterContract.test.js +48 -0
- package/plugins/draw/src/adapters/loadDrawAdapter.js +14 -0
- package/plugins/draw/src/adapters/loadDrawAdapter.test.js +53 -0
- package/plugins/draw/src/adapters/maplibre/MaplibreDrawAdapter.js +367 -0
- package/plugins/draw/src/adapters/maplibre/MaplibreDrawAdapter.test.js +799 -0
- package/plugins/draw/src/adapters/maplibre/defaults.js +1 -0
- package/plugins/draw/src/adapters/maplibre/drawEvents.js +35 -0
- package/plugins/draw/src/adapters/maplibre/mapboxDraw.js +126 -0
- package/plugins/draw/src/adapters/maplibre/mapboxDraw.test.js +268 -0
- package/plugins/draw/src/adapters/maplibre/mapboxSnap.js +39 -0
- package/plugins/draw/src/adapters/maplibre/mapboxSnap.test.js +91 -0
- package/plugins/draw/src/adapters/maplibre/modes/createDrawMode.js +58 -0
- package/plugins/draw/src/adapters/maplibre/modes/createDrawMode.test.js +53 -0
- package/plugins/draw/src/adapters/maplibre/modes/disabledMode.js +23 -0
- package/plugins/draw/src/adapters/maplibre/modes/disabledMode.test.js +21 -0
- package/plugins/draw/src/adapters/maplibre/modes/drawLineMode.js +15 -0
- package/plugins/draw/src/adapters/maplibre/modes/drawLineMode.test.js +37 -0
- package/plugins/draw/src/adapters/maplibre/modes/drawMode/__helpers__/harness.js +115 -0
- package/plugins/draw/src/adapters/maplibre/modes/drawMode/clickHandlers.js +193 -0
- package/plugins/draw/src/adapters/maplibre/modes/drawMode/clickHandlers.test.js +241 -0
- package/plugins/draw/src/adapters/maplibre/modes/drawMode/keyboardHandlers.js +78 -0
- package/plugins/draw/src/adapters/maplibre/modes/drawMode/keyboardHandlers.test.js +75 -0
- package/plugins/draw/src/adapters/maplibre/modes/drawMode/lifecycle.js +78 -0
- package/plugins/draw/src/adapters/maplibre/modes/drawMode/lifecycle.test.js +48 -0
- package/plugins/draw/src/adapters/maplibre/modes/drawMode/pointerHandlers.js +103 -0
- package/plugins/draw/src/adapters/maplibre/modes/drawMode/pointerHandlers.test.js +127 -0
- package/plugins/draw/src/adapters/maplibre/modes/drawMode/renderHelpers.js +59 -0
- package/plugins/draw/src/adapters/maplibre/modes/drawMode/renderHelpers.test.js +34 -0
- package/plugins/draw/src/adapters/maplibre/modes/drawMode/undoHandlers.js +193 -0
- package/plugins/draw/src/adapters/maplibre/modes/drawMode/undoHandlers.test.js +195 -0
- package/plugins/draw/src/adapters/maplibre/modes/drawPolygonMode.js +16 -0
- package/plugins/draw/src/adapters/maplibre/modes/drawPolygonMode.test.js +27 -0
- package/plugins/draw/src/adapters/maplibre/modes/editVertexMode/__helpers__/harness.js +107 -0
- package/plugins/draw/src/adapters/maplibre/modes/editVertexMode/geometryHelpers.js +139 -0
- package/plugins/draw/src/adapters/maplibre/modes/editVertexMode/geometryHelpers.test.js +46 -0
- package/plugins/draw/src/adapters/maplibre/modes/editVertexMode/helpers.js +2 -0
- package/plugins/draw/src/adapters/maplibre/modes/editVertexMode/helpers.test.js +17 -0
- package/plugins/draw/src/adapters/maplibre/modes/editVertexMode/keyboardHandlers.js +151 -0
- package/plugins/draw/src/adapters/maplibre/modes/editVertexMode/keyboardHandlers.test.js +123 -0
- package/plugins/draw/src/adapters/maplibre/modes/editVertexMode/pointerHandlers.js +161 -0
- package/plugins/draw/src/adapters/maplibre/modes/editVertexMode/pointerHandlers.test.js +98 -0
- package/plugins/draw/src/adapters/maplibre/modes/editVertexMode/touchHandlers.js +133 -0
- package/plugins/draw/src/adapters/maplibre/modes/editVertexMode/touchHandlers.test.js +105 -0
- package/plugins/draw/src/adapters/maplibre/modes/editVertexMode/undoHandlers.js +166 -0
- package/plugins/draw/src/adapters/maplibre/modes/editVertexMode/undoHandlers.test.js +133 -0
- package/plugins/draw/src/adapters/maplibre/modes/editVertexMode/vertexOperations.js +210 -0
- package/plugins/draw/src/adapters/maplibre/modes/editVertexMode/vertexOperations.test.js +167 -0
- package/plugins/draw/src/adapters/maplibre/modes/editVertexMode/vertexQueries.js +121 -0
- package/plugins/draw/src/adapters/maplibre/modes/editVertexMode/vertexQueries.test.js +73 -0
- package/plugins/draw/src/adapters/maplibre/modes/editVertexMode.js +249 -0
- package/plugins/draw/src/adapters/maplibre/modes/editVertexMode.test.js +153 -0
- package/plugins/draw/src/adapters/maplibre/snap/constants.js +2 -0
- package/plugins/draw/src/adapters/maplibre/snap/mapHandlers.js +39 -0
- package/plugins/draw/src/adapters/maplibre/snap/mapHandlers.test.js +106 -0
- package/plugins/draw/src/adapters/maplibre/snap/prototypePatches.js +148 -0
- package/plugins/draw/src/adapters/maplibre/snap/prototypePatches.test.js +238 -0
- package/plugins/draw/src/adapters/maplibre/snap/snapInstance.js +115 -0
- package/plugins/draw/src/adapters/maplibre/snap/snapInstance.test.js +151 -0
- package/plugins/draw/src/adapters/maplibre/snap/sourceData.js +34 -0
- package/plugins/draw/src/adapters/maplibre/snap/sourceData.test.js +62 -0
- package/plugins/draw/src/adapters/maplibre/styles.js +207 -0
- package/plugins/draw/src/adapters/maplibre/styles.test.js +155 -0
- package/plugins/draw/src/adapters/maplibre/utils/snapHelpers.js +202 -0
- package/plugins/draw/src/adapters/maplibre/utils/snapHelpers.test.js +253 -0
- package/plugins/draw/src/adapters/maplibre/utils/touchClickWorkaround.js +57 -0
- package/plugins/draw/src/adapters/maplibre/utils/touchClickWorkaround.test.js +106 -0
- package/plugins/draw/src/adapters/openlayers/OLDrawAdapter.js +117 -0
- package/plugins/draw/src/adapters/openlayers/OLDrawAdapter.test.js +159 -0
- package/plugins/draw/src/adapters/openlayers/__helpers__/harness.js +90 -0
- package/plugins/draw/src/adapters/openlayers/core/OLDrawManager.js +178 -0
- package/plugins/draw/src/adapters/openlayers/core/OLDrawManager.test.js +153 -0
- package/plugins/draw/src/adapters/openlayers/core/featureStore.js +69 -0
- package/plugins/draw/src/adapters/openlayers/core/featureStore.test.js +58 -0
- package/plugins/draw/src/adapters/openlayers/core/internalEvents.js +8 -0
- package/plugins/draw/src/adapters/openlayers/core/styles.js +155 -0
- package/plugins/draw/src/adapters/openlayers/core/styles.test.js +143 -0
- package/plugins/draw/src/adapters/openlayers/defaults.js +1 -0
- package/plugins/draw/src/adapters/openlayers/draw/DrawMode.js +272 -0
- package/plugins/draw/src/adapters/openlayers/draw/DrawMode.test.js +431 -0
- package/plugins/draw/src/adapters/openlayers/draw/drawInput.js +139 -0
- package/plugins/draw/src/adapters/openlayers/draw/drawInput.test.js +140 -0
- package/plugins/draw/src/adapters/openlayers/draw/vertexPlacement.js +144 -0
- package/plugins/draw/src/adapters/openlayers/draw/vertexPlacement.test.js +196 -0
- package/plugins/draw/src/adapters/openlayers/edit/EditMode.js +385 -0
- package/plugins/draw/src/adapters/openlayers/edit/EditMode.test.js +303 -0
- package/plugins/draw/src/adapters/openlayers/edit/activeVertexLayer.js +55 -0
- package/plugins/draw/src/adapters/openlayers/edit/activeVertexLayer.test.js +53 -0
- package/plugins/draw/src/adapters/openlayers/edit/keyboardHandler.js +157 -0
- package/plugins/draw/src/adapters/openlayers/edit/keyboardHandler.test.js +195 -0
- package/plugins/draw/src/adapters/openlayers/edit/midpointLayer.js +57 -0
- package/plugins/draw/src/adapters/openlayers/edit/midpointLayer.test.js +42 -0
- package/plugins/draw/src/adapters/openlayers/edit/modifyInteraction.js +83 -0
- package/plugins/draw/src/adapters/openlayers/edit/modifyInteraction.test.js +80 -0
- package/plugins/draw/src/adapters/openlayers/edit/nudge.js +118 -0
- package/plugins/draw/src/adapters/openlayers/edit/nudge.test.js +165 -0
- package/plugins/draw/src/adapters/openlayers/edit/pointerHandlers.js +79 -0
- package/plugins/draw/src/adapters/openlayers/edit/pointerHandlers.test.js +78 -0
- package/plugins/draw/src/adapters/openlayers/edit/selectionState.js +116 -0
- package/plugins/draw/src/adapters/openlayers/edit/selectionState.test.js +109 -0
- package/plugins/draw/src/adapters/openlayers/edit/touchHandler.js +184 -0
- package/plugins/draw/src/adapters/openlayers/edit/touchHandler.test.js +133 -0
- package/plugins/draw/src/adapters/openlayers/edit/undoOps.js +94 -0
- package/plugins/draw/src/adapters/openlayers/edit/undoOps.test.js +64 -0
- package/plugins/draw/src/adapters/openlayers/edit/vertexHitTest.js +74 -0
- package/plugins/draw/src/adapters/openlayers/edit/vertexHitTest.test.js +28 -0
- package/plugins/draw/src/adapters/openlayers/edit/vertexLayer.js +49 -0
- package/plugins/draw/src/adapters/openlayers/edit/vertexLayer.test.js +42 -0
- package/plugins/draw/src/adapters/openlayers/edit/vertexOps.js +100 -0
- package/plugins/draw/src/adapters/openlayers/edit/vertexOps.test.js +80 -0
- package/plugins/draw/src/adapters/openlayers/olDraw.js +40 -0
- package/plugins/draw/src/adapters/openlayers/olDraw.test.js +70 -0
- package/plugins/draw/src/adapters/openlayers/snap/snapEngine.js +220 -0
- package/plugins/draw/src/adapters/openlayers/snap/snapEngine.test.js +232 -0
- package/plugins/draw/src/adapters/openlayers/snap/snapGeometry.js +198 -0
- package/plugins/draw/src/adapters/openlayers/snap/snapGeometry.test.js +136 -0
- package/plugins/draw/src/adapters/openlayers/snap/snapIndicator.js +81 -0
- package/plugins/draw/src/adapters/openlayers/snap/snapIndicator.test.js +72 -0
- package/plugins/draw/src/adapters/openlayers/snap/snapInteraction.js +57 -0
- package/plugins/draw/src/adapters/openlayers/snap/snapInteraction.test.js +68 -0
- package/plugins/draw/src/adapters/openlayers/snap/snapManager.js +99 -0
- package/plugins/draw/src/adapters/openlayers/snap/snapManager.test.js +101 -0
- package/plugins/draw/src/adapters/openlayers/utils/geometryHelpers.js +103 -0
- package/plugins/draw/src/adapters/openlayers/utils/geometryHelpers.test.js +76 -0
- package/plugins/draw/src/adapters/openlayers/utils/olCoords.js +35 -0
- package/plugins/draw/src/adapters/openlayers/utils/olCoords.test.js +22 -0
- package/plugins/draw/src/adapters/openlayers/utils/sketchHelpers.js +22 -0
- package/plugins/draw/src/adapters/openlayers/utils/sketchHelpers.test.js +18 -0
- package/plugins/draw/src/adapters/openlayers/utils/touchTarget.js +8 -0
- package/plugins/draw/src/api/addFeature.js +22 -0
- package/plugins/draw/src/api/addFeature.test.js +41 -0
- package/plugins/draw/src/api/deleteFeature.js +11 -0
- package/plugins/draw/src/api/deleteFeature.test.js +24 -0
- package/plugins/draw/src/api/editFeature.js +54 -0
- package/plugins/draw/src/api/editFeature.test.js +134 -0
- package/plugins/draw/src/api/merge.js +30 -0
- package/plugins/draw/src/api/merge.test.js +57 -0
- package/plugins/draw/src/api/newLine.js +41 -0
- package/plugins/draw/src/api/newLine.test.js +93 -0
- package/plugins/draw/src/api/newPolygon.js +41 -0
- package/plugins/draw/src/api/newPolygon.test.js +93 -0
- package/plugins/draw/src/api/split.js +117 -0
- package/plugins/draw/src/api/split.test.js +204 -0
- package/plugins/draw/src/defaults.js +52 -0
- package/plugins/draw/src/defaults.test.js +18 -0
- package/plugins/draw/src/draw.scss +43 -0
- package/plugins/draw/src/events.js +237 -0
- package/plugins/draw/src/events.test.js +369 -0
- package/plugins/draw/src/index.js +10 -0
- package/plugins/draw/src/index.test.js +24 -0
- package/plugins/draw/src/manifest.js +170 -0
- package/plugins/draw/src/manifest.test.js +147 -0
- package/plugins/draw/src/reducer.js +69 -0
- package/plugins/draw/src/reducer.test.js +85 -0
- package/plugins/draw/src/utils/debounce.js +16 -0
- package/plugins/draw/src/utils/debounce.test.js +40 -0
- package/plugins/draw/src/utils/eventBus.js +36 -0
- package/plugins/draw/src/utils/eventBus.test.js +47 -0
- package/plugins/draw/src/utils/flattenStyleProperties.js +25 -0
- package/plugins/draw/src/utils/flattenStyleProperties.test.js +33 -0
- package/plugins/draw/src/utils/getValueForStyle.js +33 -0
- package/plugins/draw/src/utils/getValueForStyle.test.js +32 -0
- package/plugins/draw/src/utils/resolveColors.js +39 -0
- package/plugins/draw/src/utils/resolveColors.test.js +34 -0
- package/plugins/draw/src/utils/spatial.js +243 -0
- package/plugins/draw/src/utils/spatial.test.js +243 -0
- package/plugins/draw/src/utils/touchTarget.js +95 -0
- package/plugins/draw/src/utils/touchTarget.test.js +107 -0
- package/plugins/draw/src/utils/undoStack.js +31 -0
- package/plugins/draw/src/utils/undoStack.test.js +49 -0
- package/plugins/draw/src/validation/liveDrawChecks.js +120 -0
- package/plugins/draw/src/validation/liveDrawChecks.test.js +159 -0
- package/plugins/draw/src/validation/liveStroke.js +85 -0
- package/plugins/draw/src/validation/liveStroke.test.js +150 -0
- package/plugins/draw/src/validation/rules.areaError.test.js +12 -0
- package/plugins/draw/src/validation/rules.js +186 -0
- package/plugins/draw/src/validation/rules.test.js +120 -0
- package/plugins/draw/src/validation/validateGeometry.js +119 -0
- package/plugins/draw/src/validation/validateGeometry.test.js +200 -0
- package/plugins/interact/dist/esm/im-interact-plugin.js +1 -1
- package/plugins/interact/dist/umd/im-interact-plugin.js +1 -1
- package/plugins/interact/src/hooks/useInteractionHandlers.js +1 -1
- package/plugins/interact/src/hooks/useInteractionHandlers.test.js +1 -1
- package/plugins/interact/src/utils/buildStylesMap.js +1 -0
- package/plugins/search/dist/css/index.css +1 -317
- package/rollup.esm.mjs +35 -28
- package/sonar-project.properties +2 -2
- package/src/App/components/Attributions/Attributions.module.scss +1 -0
- package/src/App/components/Hints/Hints.module.scss +5 -4
- package/src/App/components/KeyboardHelp/KeyboardHelp.jsx +1 -1
- package/src/App/components/KeyboardHelp/KeyboardHelp.test.jsx +11 -0
- package/src/App/components/MoveControl/MoveControl.jsx +73 -9
- package/src/App/components/MoveControl/MoveControl.module.scss +12 -2
- package/src/App/components/MoveControl/MoveControl.test.jsx +136 -0
- package/src/App/hooks/useHintsAPI.js +67 -0
- package/src/App/hooks/useHintsAPI.test.js +145 -0
- package/src/App/renderer/PluginInits.jsx +4 -0
- package/src/App/renderer/PluginInits.test.jsx +7 -1
- package/src/InteractiveMap/InteractiveMap.js +20 -0
- package/src/InteractiveMap/InteractiveMap.test.js +7 -0
- package/src/config/events.js +4 -0
- package/src/scss/settings/_dimensions.scss +3 -0
- package/src/services/announcer.js +38 -3
- package/src/services/announcer.test.js +133 -1
- package/src/services/hints.js +3 -0
- package/src/services/hints.test.js +19 -0
- package/src/types.js +12 -0
- package/src/utils/detectInterfaceType.js +5 -1
- package/src/utils/isMac.js +15 -0
- package/src/utils/isMac.test.js +37 -0
- package/webpack.umd.mjs +1 -0
|
@@ -1,317 +1 @@
|
|
|
1
|
-
.im-c-search-form {
|
|
2
|
-
display: none;
|
|
3
|
-
padding: 0;
|
|
4
|
-
min-height: auto;
|
|
5
|
-
border-radius: 0;
|
|
6
|
-
filter: var(--search-drop-shadow);
|
|
7
|
-
-webkit-transform: translate3d(0, 0, 0);
|
|
8
|
-
-moz-transform: translate3d(0, 0, 0);
|
|
9
|
-
-ms-transform: translate3d(0, 0, 0);
|
|
10
|
-
transform: translate3d(0, 0, 0);
|
|
11
|
-
}
|
|
12
|
-
.im-c-search-form:before {
|
|
13
|
-
border-radius: 0;
|
|
14
|
-
box-shadow: none;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
.im-o-app--mobile .im-c-search-form {
|
|
18
|
-
position: absolute;
|
|
19
|
-
left: 0;
|
|
20
|
-
top: 0;
|
|
21
|
-
right: 0;
|
|
22
|
-
height: auto;
|
|
23
|
-
overflow: visible;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
.im-o-app--tablet .im-c-search-form,
|
|
27
|
-
.im-o-app--desktop .im-c-search-form {
|
|
28
|
-
position: relative;
|
|
29
|
-
overflow: visible;
|
|
30
|
-
border-radius: var(--button-border-radius);
|
|
31
|
-
box-shadow: none;
|
|
32
|
-
}
|
|
33
|
-
.im-o-app--tablet .im-c-search-form:before,
|
|
34
|
-
.im-o-app--desktop .im-c-search-form:before {
|
|
35
|
-
border-radius: var(--button-border-radius);
|
|
36
|
-
}
|
|
37
|
-
.im-o-app--tablet .im-c-search-form .im-c-search-suggestions,
|
|
38
|
-
.im-o-app--desktop .im-c-search-form .im-c-search-suggestions {
|
|
39
|
-
position: absolute;
|
|
40
|
-
top: calc(100% + 2px);
|
|
41
|
-
left: 0;
|
|
42
|
-
right: 0;
|
|
43
|
-
z-index: 1;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
.im-c-search__status {
|
|
47
|
-
position: absolute;
|
|
48
|
-
top: 100%;
|
|
49
|
-
left: 0;
|
|
50
|
-
right: 0;
|
|
51
|
-
padding: var(--divider-gap) calc(var(--divider-gap) + 2px);
|
|
52
|
-
background-color: var(--background-color);
|
|
53
|
-
border-top: 1px solid var(--button-hover-color);
|
|
54
|
-
border-bottom-left-radius: var(--button-border-radius);
|
|
55
|
-
border-bottom-right-radius: var(--button-border-radius);
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
.im-o-app--mobile .im-c-search-form--default-expanded {
|
|
59
|
-
position: relative;
|
|
60
|
-
margin: calc(-1 * var(--primary-gap)) calc(-1 * var(--primary-gap)) 0;
|
|
61
|
-
}
|
|
62
|
-
.im-o-app--mobile .im-c-search-form--default-expanded .im-c-search-suggestions {
|
|
63
|
-
position: absolute;
|
|
64
|
-
top: 100%;
|
|
65
|
-
width: 100%;
|
|
66
|
-
left: 0;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
.im-c-search-close-button {
|
|
70
|
-
position: relative;
|
|
71
|
-
}
|
|
72
|
-
.im-c-search-close-button:before {
|
|
73
|
-
box-shadow: none;
|
|
74
|
-
}
|
|
75
|
-
.im-c-search-close-button[data-focus-visible=true] {
|
|
76
|
-
z-index: 1;
|
|
77
|
-
}
|
|
78
|
-
.im-c-search-close-button:hover {
|
|
79
|
-
z-index: 1;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
.im-c-search-submit-button {
|
|
83
|
-
position: relative;
|
|
84
|
-
}
|
|
85
|
-
.im-c-search-submit-button:before {
|
|
86
|
-
box-shadow: none;
|
|
87
|
-
}
|
|
88
|
-
.im-c-search-submit-button[data-focus-visible=true] {
|
|
89
|
-
z-index: 1;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
.im-c-search-suggestions {
|
|
93
|
-
max-height: calc(100vh - 66px);
|
|
94
|
-
overflow-y: auto;
|
|
95
|
-
scroll-padding: 0;
|
|
96
|
-
margin: 0;
|
|
97
|
-
padding: 0;
|
|
98
|
-
background-color: var(--background-color);
|
|
99
|
-
list-style: none;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
.im-c-search-suggestions__item {
|
|
103
|
-
margin: 0;
|
|
104
|
-
padding: calc(var(--divider-gap) + 2px) var(--primary-gap);
|
|
105
|
-
position: relative;
|
|
106
|
-
color: var(--secondary-text-color);
|
|
107
|
-
border-top: 1px solid var(--button-hover-color);
|
|
108
|
-
cursor: pointer;
|
|
109
|
-
user-select: none;
|
|
110
|
-
}
|
|
111
|
-
@media (-ms-high-contrast: active), screen and (forced-colors: active) {
|
|
112
|
-
.im-c-search-suggestions__item {
|
|
113
|
-
color: Highlight;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
.im-c-search-suggestions__item mark {
|
|
117
|
-
font-weight: bold;
|
|
118
|
-
color: var(--foreground-color);
|
|
119
|
-
background-color: transparent;
|
|
120
|
-
pointer-events: none;
|
|
121
|
-
}
|
|
122
|
-
@media (-ms-high-contrast: active), screen and (forced-colors: active) {
|
|
123
|
-
.im-c-search-suggestions__item mark {
|
|
124
|
-
color: Highlight;
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
@media (hover: hover) and (pointer: fine) {
|
|
128
|
-
.im-c-search-suggestions__item:hover:not([aria-selected=true]) {
|
|
129
|
-
background-color: var(--button-hover-color);
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
.im-c-search-suggestions__item[aria-selected=true] {
|
|
133
|
-
background-color: var(--button-hover-color);
|
|
134
|
-
}
|
|
135
|
-
.im-c-search-suggestions__item[aria-selected=true] mark {
|
|
136
|
-
color: var(--fixed-foreground-color);
|
|
137
|
-
}
|
|
138
|
-
@media (-ms-high-contrast: active), screen and (forced-colors: active) {
|
|
139
|
-
.im-c-search-suggestions__item[aria-selected=true] mark {
|
|
140
|
-
color: Highlight;
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
.im-c-search-suggestions__item:hover:not([aria-selected=true]) .im-c-search-suggestions__label {
|
|
144
|
-
text-decoration: underline;
|
|
145
|
-
text-underline-offset: 2px;
|
|
146
|
-
text-decoration-thickness: 2px;
|
|
147
|
-
text-decoration-color: var(--foreground-color);
|
|
148
|
-
text-decoration-skip-ink: none;
|
|
149
|
-
}
|
|
150
|
-
.im-c-search-suggestions__item[aria-selected=true] .im-c-search-suggestions__label {
|
|
151
|
-
outline: 3px solid rgba(0, 0, 0, 0);
|
|
152
|
-
color: var(--focus-border-color);
|
|
153
|
-
background-color: var(--focus-outline-color);
|
|
154
|
-
box-shadow: 0 -2px var(--focus-outline-color), 0 4px var(--focus-border-color);
|
|
155
|
-
text-decoration: none;
|
|
156
|
-
}
|
|
157
|
-
@media (-ms-high-contrast: active), screen and (forced-colors: active) {
|
|
158
|
-
.im-c-search-suggestions__item[aria-selected=true] .im-c-search-suggestions__label {
|
|
159
|
-
outline-color: Highlight;
|
|
160
|
-
color: Highlight;
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
.im-c-search-suggestions__label {
|
|
165
|
-
display: block;
|
|
166
|
-
overflow: hidden;
|
|
167
|
-
white-space: nowrap;
|
|
168
|
-
text-overflow: ellipsis;
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
.im-o-app--mobile .im-c-search-form--default-expanded .im-c-search-suggestions {
|
|
172
|
-
box-shadow: var(--panel-box-shadow);
|
|
173
|
-
clip-path: inset(0px 0px -20px 0px);
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
.im-o-app--tablet .im-c-search-suggestions,
|
|
177
|
-
.im-o-app--desktop .im-c-search-suggestions {
|
|
178
|
-
border-bottom-left-radius: var(--button-border-radius);
|
|
179
|
-
border-bottom-right-radius: var(--button-border-radius);
|
|
180
|
-
}
|
|
181
|
-
.im-o-app--tablet .im-c-search-suggestions__item,
|
|
182
|
-
.im-o-app--desktop .im-c-search-suggestions__item {
|
|
183
|
-
padding: var(--divider-gap) calc(var(--divider-gap) + 2px);
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
:root {
|
|
187
|
-
--search-drop-shadow: drop-shadow(0 -2px 20px rgba(0,0,0,.1)) drop-shadow(0 0 12px rgba(0,0,0,.1));
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
.im-c-search--collapsed {
|
|
191
|
-
display: none;
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
.im-c-search__input-container {
|
|
195
|
-
display: flex;
|
|
196
|
-
position: relative;
|
|
197
|
-
flex: 1 1 auto;
|
|
198
|
-
min-height: auto;
|
|
199
|
-
height: var(--button-size);
|
|
200
|
-
}
|
|
201
|
-
.im-c-search__input-container:before {
|
|
202
|
-
content: "";
|
|
203
|
-
z-index: 1;
|
|
204
|
-
position: absolute;
|
|
205
|
-
top: -2px;
|
|
206
|
-
right: -2px;
|
|
207
|
-
bottom: -2px;
|
|
208
|
-
left: -2px;
|
|
209
|
-
border-radius: var(--button-border-radius);
|
|
210
|
-
border: 2px solid var(--foreground-color);
|
|
211
|
-
pointer-events: none;
|
|
212
|
-
}
|
|
213
|
-
@media (-ms-high-contrast: active), screen and (forced-colors: active) {
|
|
214
|
-
.im-c-search__input-container:before {
|
|
215
|
-
border-color: ButtonText;
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
@media (-ms-high-contrast: active), screen and (forced-colors: active) {
|
|
219
|
-
.im-c-search__input-container:hover:not(:has(.im-c-search-close-button:hover)):before {
|
|
220
|
-
border-color: Highlight;
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
.im-c-search__input-container:after {
|
|
224
|
-
position: absolute;
|
|
225
|
-
content: "";
|
|
226
|
-
pointer-events: none;
|
|
227
|
-
z-index: 99;
|
|
228
|
-
top: -1px;
|
|
229
|
-
right: -1px;
|
|
230
|
-
bottom: -1px;
|
|
231
|
-
left: -1px;
|
|
232
|
-
border: var(--focus-border-width) solid var(--focus-border-color);
|
|
233
|
-
outline: var(--focus-box-shadow-width) solid var(--focus-outline-color);
|
|
234
|
-
border-radius: calc(var(--button-border-radius) - 2px);
|
|
235
|
-
opacity: 0;
|
|
236
|
-
}
|
|
237
|
-
@media (prefers-reduced-motion: no-preference) {
|
|
238
|
-
.im-c-search__input-container:after {
|
|
239
|
-
transition: opacity var(--duration) ease;
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
.im-o-app .im-c-search__input {
|
|
244
|
-
width: 100%;
|
|
245
|
-
color: var(--foreground-color);
|
|
246
|
-
background-color: transparent;
|
|
247
|
-
font-size: 1rem;
|
|
248
|
-
border: 0;
|
|
249
|
-
padding: var(--divider-gap) calc(var(--divider-gap) + 2px);
|
|
250
|
-
outline: 0;
|
|
251
|
-
}
|
|
252
|
-
.im-o-app .im-c-search__input:focus {
|
|
253
|
-
outline: 3px solid transparent;
|
|
254
|
-
box-shadow: none;
|
|
255
|
-
}
|
|
256
|
-
@media (-ms-high-contrast: active), screen and (forced-colors: active) {
|
|
257
|
-
.im-o-app .im-c-search__input:focus {
|
|
258
|
-
outline: none;
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
.im-o-app .im-c-search__input::placeholder {
|
|
262
|
-
color: var(--foreground-color);
|
|
263
|
-
}
|
|
264
|
-
.im-o-app .im-c-search__input::-webkit-search-cancel-button {
|
|
265
|
-
-webkit-appearance: none;
|
|
266
|
-
appearance: none;
|
|
267
|
-
display: none;
|
|
268
|
-
}
|
|
269
|
-
.im-o-app .im-c-search__input::-moz-search-clear {
|
|
270
|
-
display: none;
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
.im-c-search__hint {
|
|
274
|
-
display: none;
|
|
275
|
-
}
|
|
276
|
-
|
|
277
|
-
.im-o-app--exclusive-control .im-o-app__top .im-c-button-wrapper,
|
|
278
|
-
.im-o-app--exclusive-control .im-o-app__right .im-c-button-wrapper {
|
|
279
|
-
opacity: 0;
|
|
280
|
-
z-index: -1;
|
|
281
|
-
}
|
|
282
|
-
.im-o-app--exclusive-control .im-c-button-wrapper--search {
|
|
283
|
-
position: absolute;
|
|
284
|
-
pointer-events: none;
|
|
285
|
-
}
|
|
286
|
-
.im-o-app--exclusive-control .im-o-app__left-top .im-c-panel,
|
|
287
|
-
.im-o-app--exclusive-control .im-o-app__left-bottom .im-c-panel,
|
|
288
|
-
.im-o-app--exclusive-control .im-o-app__right-top .im-c-panel,
|
|
289
|
-
.im-o-app--exclusive-control .im-o-app__right-bottom .im-c-panel {
|
|
290
|
-
opacity: 0;
|
|
291
|
-
z-index: -1;
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
.im-o-app--mobile .im-c-search__input-container {
|
|
295
|
-
margin: var(--primary-gap);
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
@media (-ms-high-contrast: active), screen and (forced-colors: active) {
|
|
299
|
-
.im-c-search__input-container--keyboard-focus-within:before {
|
|
300
|
-
border-color: Highlight;
|
|
301
|
-
}
|
|
302
|
-
}
|
|
303
|
-
|
|
304
|
-
.im-c-search__input-container--keyboard-focus-within:after {
|
|
305
|
-
opacity: 1;
|
|
306
|
-
}
|
|
307
|
-
@media (-ms-high-contrast: active), screen and (forced-colors: active) {
|
|
308
|
-
.im-c-search__input-container--keyboard-focus-within:after {
|
|
309
|
-
opacity: 0;
|
|
310
|
-
}
|
|
311
|
-
}
|
|
312
|
-
|
|
313
|
-
@media (-ms-high-contrast: active), screen and (forced-colors: active) {
|
|
314
|
-
.im-c-search__input-container--keyboard-focus-within {
|
|
315
|
-
outline: var(--focus-highlight-width) solid Highlight;
|
|
316
|
-
}
|
|
317
|
-
}
|
|
1
|
+
.im-c-search-form{display:none;padding:0;min-height:auto;border-radius:0;filter:var(--search-drop-shadow);-webkit-transform:translate3d(0, 0, 0);-moz-transform:translate3d(0, 0, 0);-ms-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}.im-c-search-form:before{border-radius:0;box-shadow:none}.im-o-app--mobile .im-c-search-form{position:absolute;left:0;top:0;right:0;height:auto;overflow:visible}.im-o-app--tablet .im-c-search-form,.im-o-app--desktop .im-c-search-form{position:relative;overflow:visible;border-radius:var(--button-border-radius);box-shadow:none}.im-o-app--tablet .im-c-search-form:before,.im-o-app--desktop .im-c-search-form:before{border-radius:var(--button-border-radius)}.im-o-app--tablet .im-c-search-form .im-c-search-suggestions,.im-o-app--desktop .im-c-search-form .im-c-search-suggestions{position:absolute;top:calc(100% + 2px);left:0;right:0;z-index:1}.im-c-search__status{position:absolute;top:100%;left:0;right:0;padding:var(--divider-gap) calc(var(--divider-gap) + 2px);background-color:var(--background-color);border-top:1px solid var(--button-hover-color);border-bottom-left-radius:var(--button-border-radius);border-bottom-right-radius:var(--button-border-radius)}.im-o-app--mobile .im-c-search-form--default-expanded{position:relative;margin:calc(-1*var(--primary-gap)) calc(-1*var(--primary-gap)) 0}.im-o-app--mobile .im-c-search-form--default-expanded .im-c-search-suggestions{position:absolute;top:100%;width:100%;left:0}.im-c-search-close-button{position:relative}.im-c-search-close-button:before{box-shadow:none}.im-c-search-close-button[data-focus-visible=true]{z-index:1}.im-c-search-close-button:hover{z-index:1}.im-c-search-submit-button{position:relative}.im-c-search-submit-button:before{box-shadow:none}.im-c-search-submit-button[data-focus-visible=true]{z-index:1}.im-c-search-suggestions{max-height:calc(100vh - 66px);overflow-y:auto;scroll-padding:0;margin:0;padding:0;background-color:var(--background-color);list-style:none}.im-c-search-suggestions__item{margin:0;padding:calc(var(--divider-gap) + 2px) var(--primary-gap);position:relative;color:var(--secondary-text-color);border-top:1px solid var(--button-hover-color);cursor:pointer;user-select:none}@media(-ms-high-contrast: active),screen and (forced-colors: active){.im-c-search-suggestions__item{color:Highlight}}.im-c-search-suggestions__item mark{font-weight:bold;color:var(--foreground-color);background-color:rgba(0,0,0,0);pointer-events:none}@media(-ms-high-contrast: active),screen and (forced-colors: active){.im-c-search-suggestions__item mark{color:Highlight}}@media(hover: hover)and (pointer: fine){.im-c-search-suggestions__item:hover:not([aria-selected=true]){background-color:var(--button-hover-color)}}.im-c-search-suggestions__item[aria-selected=true]{background-color:var(--button-hover-color)}.im-c-search-suggestions__item[aria-selected=true] mark{color:var(--fixed-foreground-color)}@media(-ms-high-contrast: active),screen and (forced-colors: active){.im-c-search-suggestions__item[aria-selected=true] mark{color:Highlight}}.im-c-search-suggestions__item:hover:not([aria-selected=true]) .im-c-search-suggestions__label{text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:2px;text-decoration-color:var(--foreground-color);text-decoration-skip-ink:none}.im-c-search-suggestions__item[aria-selected=true] .im-c-search-suggestions__label{outline:3px solid rgba(0,0,0,0);color:var(--focus-border-color);background-color:var(--focus-outline-color);box-shadow:0 -2px var(--focus-outline-color),0 4px var(--focus-border-color);text-decoration:none}@media(-ms-high-contrast: active),screen and (forced-colors: active){.im-c-search-suggestions__item[aria-selected=true] .im-c-search-suggestions__label{outline-color:Highlight;color:Highlight}}.im-c-search-suggestions__label{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.im-o-app--mobile .im-c-search-form--default-expanded .im-c-search-suggestions{box-shadow:var(--panel-box-shadow);clip-path:inset(0px 0px -20px 0px)}.im-o-app--tablet .im-c-search-suggestions,.im-o-app--desktop .im-c-search-suggestions{border-bottom-left-radius:var(--button-border-radius);border-bottom-right-radius:var(--button-border-radius)}.im-o-app--tablet .im-c-search-suggestions__item,.im-o-app--desktop .im-c-search-suggestions__item{padding:var(--divider-gap) calc(var(--divider-gap) + 2px)}:root{--search-drop-shadow: drop-shadow(0 -2px 20px rgba(0,0,0,.1)) drop-shadow(0 0 12px rgba(0,0,0,.1))}.im-c-search--collapsed{display:none}.im-c-search__input-container{display:flex;position:relative;flex:1 1 auto;min-height:auto;height:var(--button-size)}.im-c-search__input-container:before{content:"";z-index:1;position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;border-radius:var(--button-border-radius);border:2px solid var(--foreground-color);pointer-events:none}@media(-ms-high-contrast: active),screen and (forced-colors: active){.im-c-search__input-container:before{border-color:ButtonText}}@media(-ms-high-contrast: active),screen and (forced-colors: active){.im-c-search__input-container:hover:not(:has(.im-c-search-close-button:hover)):before{border-color:Highlight}}.im-c-search__input-container:after{position:absolute;content:"";pointer-events:none;z-index:99;top:-1px;right:-1px;bottom:-1px;left:-1px;border:var(--focus-border-width) solid var(--focus-border-color);outline:var(--focus-box-shadow-width) solid var(--focus-outline-color);border-radius:calc(var(--button-border-radius) - 2px);opacity:0}@media(prefers-reduced-motion: no-preference){.im-c-search__input-container:after{transition:opacity var(--duration) ease}}.im-o-app .im-c-search__input{width:100%;color:var(--foreground-color);background-color:rgba(0,0,0,0);font-size:1rem;border:0;padding:var(--divider-gap) calc(var(--divider-gap) + 2px);outline:0}.im-o-app .im-c-search__input:focus{outline:3px solid rgba(0,0,0,0);box-shadow:none}@media(-ms-high-contrast: active),screen and (forced-colors: active){.im-o-app .im-c-search__input:focus{outline:none}}.im-o-app .im-c-search__input::placeholder{color:var(--foreground-color)}.im-o-app .im-c-search__input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none;display:none}.im-o-app .im-c-search__input::-moz-search-clear{display:none}.im-c-search__hint{display:none}.im-o-app--exclusive-control .im-o-app__top .im-c-button-wrapper,.im-o-app--exclusive-control .im-o-app__right .im-c-button-wrapper{opacity:0;z-index:-1}.im-o-app--exclusive-control .im-c-button-wrapper--search{position:absolute;pointer-events:none}.im-o-app--exclusive-control .im-o-app__left-top .im-c-panel,.im-o-app--exclusive-control .im-o-app__left-bottom .im-c-panel,.im-o-app--exclusive-control .im-o-app__right-top .im-c-panel,.im-o-app--exclusive-control .im-o-app__right-bottom .im-c-panel{opacity:0;z-index:-1}.im-o-app--mobile .im-c-search__input-container{margin:var(--primary-gap)}@media(-ms-high-contrast: active),screen and (forced-colors: active){.im-c-search__input-container--keyboard-focus-within:before{border-color:Highlight}}.im-c-search__input-container--keyboard-focus-within:after{opacity:1}@media(-ms-high-contrast: active),screen and (forced-colors: active){.im-c-search__input-container--keyboard-focus-within:after{opacity:0}}@media(-ms-high-contrast: active),screen and (forced-colors: active){.im-c-search__input-container--keyboard-focus-within{outline:var(--focus-highlight-width) solid Highlight}}
|
package/rollup.esm.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import path, { dirname } from 'path'
|
|
2
|
-
import { fileURLToPath } from 'url'
|
|
3
|
-
import fs from 'fs'
|
|
1
|
+
import path, { dirname } from 'node:path'
|
|
2
|
+
import { fileURLToPath } from 'node:url'
|
|
3
|
+
import fs from 'node:fs'
|
|
4
4
|
|
|
5
5
|
import { nodeResolve } from '@rollup/plugin-node-resolve'
|
|
6
6
|
import commonjs from '@rollup/plugin-commonjs'
|
|
@@ -11,7 +11,7 @@ import terser from '@rollup/plugin-terser'
|
|
|
11
11
|
import postcss from 'rollup-plugin-postcss'
|
|
12
12
|
import { visualizer } from 'rollup-plugin-visualizer'
|
|
13
13
|
|
|
14
|
-
const __dirname = dirname(fileURLToPath(import.meta.url))
|
|
14
|
+
const __dirname = dirname(fileURLToPath(import.meta.url)) // NOSONAR - Standard Node.js convention in bundler configs
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
17
|
* Cleans output directories before each build starts.
|
|
@@ -69,7 +69,7 @@ const removeFullCssPlugin = (cssDir) => ({
|
|
|
69
69
|
// rewritten by the alias plugin before Rollup's external check fires.
|
|
70
70
|
const PREACT_EXTERNALS = [
|
|
71
71
|
'preact',
|
|
72
|
-
'preact/compat',
|
|
72
|
+
'preact/compat', // NOSONAR
|
|
73
73
|
'preact/compat/client',
|
|
74
74
|
'preact/hooks',
|
|
75
75
|
'preact/jsx-runtime'
|
|
@@ -177,13 +177,12 @@ const createESMConfig = (entryPath, outDir, isCore = false, manualChunks = null,
|
|
|
177
177
|
...(isCore ? [removeFullCssPlugin(cssDir)] : []),
|
|
178
178
|
|
|
179
179
|
// Only runs when ANALYZE=1 is set; writes stats to dist/stats/<name>.html
|
|
180
|
-
...(process.env.ANALYZE
|
|
181
|
-
|
|
182
|
-
filename: path.resolve(__dirname, 'dist/stats', `${outDir.replace(/\//g, '-')}.html`),
|
|
180
|
+
...(process.env.ANALYZE ? [visualizer({
|
|
181
|
+
filename: path.resolve(__dirname, 'dist/stats', `${outDir.replace(/\//g, '-')}.html`), // NOSONAR replaceAll() requires Chrome 84 or later
|
|
183
182
|
open: false,
|
|
184
183
|
gzipSize: true
|
|
185
184
|
})]
|
|
186
|
-
: [])
|
|
185
|
+
: [])
|
|
187
186
|
],
|
|
188
187
|
|
|
189
188
|
output: {
|
|
@@ -219,83 +218,91 @@ const ALL_BUILDS = [
|
|
|
219
218
|
entryPath: './providers/maplibre/src/index.js',
|
|
220
219
|
outDir: 'providers/maplibre/dist/esm',
|
|
221
220
|
// maplibre-gl is external; only the provider class itself becomes a chunk
|
|
222
|
-
manualChunks: (id) =>
|
|
221
|
+
manualChunks: (id) => id.includes('/maplibreProvider') ? 'im-maplibre-provider' : undefined
|
|
223
222
|
},
|
|
224
223
|
{
|
|
225
224
|
entryPath: './providers/beta/open-names/src/index.js',
|
|
226
225
|
outDir: 'providers/beta/open-names/dist/esm',
|
|
227
|
-
manualChunks: (id) =>
|
|
226
|
+
manualChunks: (id) => id.includes('/reverseGeocode') ? 'im-reverse-geocode' : undefined
|
|
228
227
|
},
|
|
229
228
|
{
|
|
230
229
|
entryPath: './providers/beta/esri/src/index.js',
|
|
231
230
|
outDir: 'providers/beta/esri/dist/esm',
|
|
232
|
-
manualChunks: (id) =>
|
|
231
|
+
manualChunks: (id) => id.includes('/esriProvider') ? 'im-esri-provider' : undefined
|
|
233
232
|
},
|
|
234
233
|
{
|
|
235
234
|
entryPath: './providers/beta/openlayers/src/index.js',
|
|
236
235
|
outDir: 'providers/beta/openlayers/dist/esm',
|
|
237
236
|
extraExternals: [/^ol\//, 'proj4'],
|
|
238
|
-
manualChunks: (id) =>
|
|
239
|
-
if (id.includes('/openlayersProvider')) {
|
|
240
|
-
return 'im-openlayers-provider'
|
|
241
|
-
}
|
|
242
|
-
}
|
|
237
|
+
manualChunks: (id) => id.includes('/openlayersProvider') ? 'im-openlayers-provider' : undefined
|
|
243
238
|
},
|
|
244
239
|
|
|
245
240
|
// Plugins — each lazy-loads ./manifest.js; manualChunks names that split chunk
|
|
246
241
|
{
|
|
247
242
|
entryPath: './plugins/beta/scale-bar/src/index.js',
|
|
248
243
|
outDir: 'plugins/beta/scale-bar/dist/esm',
|
|
249
|
-
manualChunks: (id) =>
|
|
244
|
+
manualChunks: (id) => id.includes('/manifest') ? 'im-scale-bar-plugin' : undefined
|
|
250
245
|
},
|
|
251
246
|
{
|
|
252
247
|
entryPath: './plugins/beta/use-location/src/index.js',
|
|
253
248
|
outDir: 'plugins/beta/use-location/dist/esm',
|
|
254
|
-
manualChunks: (id) =>
|
|
249
|
+
manualChunks: (id) => id.includes('/manifest') ? 'im-use-location-plugin' : undefined
|
|
255
250
|
},
|
|
256
251
|
{
|
|
257
252
|
entryPath: './plugins/search/src/index.js',
|
|
258
253
|
outDir: 'plugins/search/dist/esm',
|
|
259
|
-
manualChunks: (id) =>
|
|
254
|
+
manualChunks: (id) => id.includes('/manifest') ? 'im-search-plugin' : undefined
|
|
260
255
|
},
|
|
261
256
|
{
|
|
262
257
|
entryPath: './plugins/interact/src/index.js',
|
|
263
258
|
outDir: 'plugins/interact/dist/esm',
|
|
264
|
-
manualChunks: (id) =>
|
|
259
|
+
manualChunks: (id) => id.includes('/manifest') ? 'im-interact-plugin' : undefined
|
|
265
260
|
},
|
|
266
261
|
{
|
|
267
262
|
entryPath: './plugins/datasets/src/index.js',
|
|
268
263
|
outDir: 'plugins/datasets/dist/esm',
|
|
269
264
|
manualChunks: (id) => {
|
|
270
|
-
if (id.includes('/manifest')) return 'im-datasets-plugin'
|
|
271
|
-
if (id.includes('maplibreLayerAdapter')) return 'im-datasets-ml-adapter'
|
|
265
|
+
if (id.includes('/manifest')) { return 'im-datasets-plugin' }
|
|
266
|
+
if (id.includes('maplibreLayerAdapter')) { return 'im-datasets-ml-adapter' }
|
|
267
|
+
return undefined
|
|
272
268
|
}
|
|
273
269
|
},
|
|
274
270
|
{
|
|
275
271
|
entryPath: './plugins/beta/map-styles/src/index.js',
|
|
276
272
|
outDir: 'plugins/beta/map-styles/dist/esm',
|
|
277
|
-
manualChunks: (id) =>
|
|
273
|
+
manualChunks: (id) => id.includes('/manifest') ? 'im-map-styles-plugin' : undefined
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
entryPath: './plugins/draw/src/index.js',
|
|
277
|
+
outDir: 'plugins/draw/dist/esm',
|
|
278
|
+
extraExternals: [/^ol\//],
|
|
279
|
+
manualChunks: (id) => {
|
|
280
|
+
if (id.includes('/manifest')) { return 'im-draw-plugin' }
|
|
281
|
+
if (id.includes('MaplibreDrawAdapter')) { return 'im-draw-ml-adapter' }
|
|
282
|
+
if (id.includes('OLDrawAdapter')) { return 'im-draw-ol-adapter' }
|
|
283
|
+
return undefined
|
|
284
|
+
}
|
|
278
285
|
},
|
|
279
286
|
{
|
|
280
287
|
entryPath: './plugins/beta/draw-ml/src/index.js',
|
|
281
288
|
outDir: 'plugins/beta/draw-ml/dist/esm',
|
|
282
|
-
manualChunks: (id) =>
|
|
289
|
+
manualChunks: (id) => id.includes('/manifest') ? 'im-draw-ml-plugin' : undefined
|
|
283
290
|
},
|
|
284
291
|
{
|
|
285
292
|
entryPath: './plugins/beta/draw-es/src/index.js',
|
|
286
293
|
outDir: 'plugins/beta/draw-es/dist/esm',
|
|
287
|
-
manualChunks: (id) =>
|
|
294
|
+
manualChunks: (id) => id.includes('/manifest') ? 'im-draw-es-plugin' : undefined
|
|
288
295
|
},
|
|
289
296
|
{
|
|
290
297
|
entryPath: './plugins/beta/draw-ol/src/index.js',
|
|
291
298
|
outDir: 'plugins/beta/draw-ol/dist/esm',
|
|
292
299
|
extraExternals: [/^ol\//],
|
|
293
|
-
manualChunks: (id) =>
|
|
300
|
+
manualChunks: (id) => id.includes('/manifest') ? 'im-draw-ol-plugin' : undefined
|
|
294
301
|
},
|
|
295
302
|
{
|
|
296
303
|
entryPath: './plugins/beta/frame/src/index.js',
|
|
297
304
|
outDir: 'plugins/beta/frame/dist/esm',
|
|
298
|
-
manualChunks: (id) =>
|
|
305
|
+
manualChunks: (id) => id.includes('/manifest') ? 'im-frame-plugin' : undefined
|
|
299
306
|
}
|
|
300
307
|
]
|
|
301
308
|
|
package/sonar-project.properties
CHANGED
|
@@ -11,10 +11,10 @@ sonar.javascript.lcov.reportPaths=coverage/lcov.info
|
|
|
11
11
|
sonar.sourceEncoding=UTF-8
|
|
12
12
|
|
|
13
13
|
sonar.sources=src,plugins,providers
|
|
14
|
-
sonar.exclusions=**/*.test.*,**/__mocks__/**,**/__stubs__/**,**/dist/**,**/node_modules/**,plugins/beta/**,providers/beta/**
|
|
14
|
+
sonar.exclusions=**/*.test.*,**/__mocks__/**,**/__stubs__/**,**/__helpers__/**,**/dist/**,**/node_modules/**,plugins/beta/**,providers/beta/**
|
|
15
15
|
sonar.tests=src,plugins,providers
|
|
16
16
|
sonar.test.inclusions=**/*.test.*,**/__mocks__/**,**/__stubs__/**
|
|
17
|
-
sonar.cpd.exclusions=**/*.test.*,**/__mocks__/**,**/__stubs__/**
|
|
17
|
+
sonar.cpd.exclusions=**/*.test.*,**/__mocks__/**,**/__stubs__/**,**/__helpers__/**
|
|
18
18
|
|
|
19
19
|
# Ignored rules
|
|
20
20
|
sonar.issue.ignore.multicriteria=reactPropsJs,reactPropsJsx,preferGlobalThisJs,preferGlobalThisJsx,preferAtJs,preferAtJsx,replaceAllJs,replaceAllJsx,stringReplaceAllJs,stringReplaceAllJsx,pascalCaseFunctionsJs,pascalCaseFunctionsJsx,pascalCaseFunctionsTs,pascalCaseFunctionsTsx,cssScopingRootMixins
|
|
@@ -5,9 +5,12 @@
|
|
|
5
5
|
.im-o-hints {
|
|
6
6
|
position: absolute;
|
|
7
7
|
bottom: var(--hint-bottom, var(--primary-gap));
|
|
8
|
-
left:
|
|
9
|
-
|
|
8
|
+
left: 0;
|
|
9
|
+
right: 0;
|
|
10
|
+
margin-inline: auto;
|
|
10
11
|
z-index: 1001;
|
|
12
|
+
width: fit-content;
|
|
13
|
+
max-width: min(var(--hint-max-width), calc(100% - (2 * var(--primary-gap))));
|
|
11
14
|
}
|
|
12
15
|
|
|
13
16
|
// ===================================================
|
|
@@ -22,8 +25,6 @@
|
|
|
22
25
|
}
|
|
23
26
|
|
|
24
27
|
.im-c-hints__hint {
|
|
25
|
-
text-wrap: nowrap;
|
|
26
|
-
|
|
27
28
|
color: var(--tooltip-foreground-color);
|
|
28
29
|
background-color: var(--tooltip-background-color);
|
|
29
30
|
border-radius: var(--tooltip-border-radius);
|
|
@@ -46,7 +46,7 @@ export const KeyboardHelp = ({ context = 'viewport' }) => { // NOSONAR: project
|
|
|
46
46
|
const allShortcuts = getKeyboardShortcuts(appConfig)
|
|
47
47
|
const shortcuts = listboxIsActive
|
|
48
48
|
? allShortcuts
|
|
49
|
-
: allShortcuts.filter(s =>
|
|
49
|
+
: allShortcuts.filter(s => s.context !== 'listbox')
|
|
50
50
|
const groupMap = buildGroupMap(shortcuts)
|
|
51
51
|
const groupEntries = Object.entries(groupMap)
|
|
52
52
|
|
|
@@ -163,6 +163,17 @@ describe('KeyboardHelp — listboxIsActive filtering', () => {
|
|
|
163
163
|
expect(screen.getByText('Move')).toBeInTheDocument()
|
|
164
164
|
})
|
|
165
165
|
|
|
166
|
+
it('shows non-listbox grouped shortcuts (e.g. Drawing) when listboxIsActive is false', () => {
|
|
167
|
+
getKeyboardShortcuts.mockReturnValue([
|
|
168
|
+
...VIEWPORT_SHORTCUTS,
|
|
169
|
+
{ id: 'd1', group: 'Drawing', title: 'Add new point', command: '<kbd>Enter</kbd>' },
|
|
170
|
+
...LISTBOX_SHORTCUTS
|
|
171
|
+
])
|
|
172
|
+
render(<KeyboardHelp />)
|
|
173
|
+
expect(screen.getByRole('tab', { name: 'Drawing' })).toBeInTheDocument()
|
|
174
|
+
expect(screen.queryByRole('tab', { name: SELECT_FEATURES_GROUP })).not.toBeInTheDocument()
|
|
175
|
+
})
|
|
176
|
+
|
|
166
177
|
it('renders as a flat list when only ungrouped shortcuts remain after filtering', () => {
|
|
167
178
|
getKeyboardShortcuts.mockReturnValue([...VIEWPORT_SHORTCUTS, ...LISTBOX_SHORTCUTS])
|
|
168
179
|
render(<KeyboardHelp />)
|