@vaadin/bundles 25.0.0-alpha3 → 25.0.0-alpha5

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 (192) hide show
  1. package/node_modules_ol_ImageCanvas_js.js +76 -83
  2. package/node_modules_ol_ImageCanvas_js.js.map +1 -1
  3. package/node_modules_ol_TileRange_js.js +128 -110
  4. package/node_modules_ol_TileRange_js.js.map +1 -1
  5. package/node_modules_ol_Tile_js.js +279 -0
  6. package/node_modules_ol_Tile_js.js.map +1 -0
  7. package/node_modules_ol_VectorRenderTile_js.js +428 -143
  8. package/node_modules_ol_VectorRenderTile_js.js.map +1 -1
  9. package/node_modules_ol_VectorTile_js.js +405 -119
  10. package/node_modules_ol_VectorTile_js.js.map +1 -1
  11. package/node_modules_ol_control_MousePosition_js.js +327 -0
  12. package/node_modules_ol_control_MousePosition_js.js.map +1 -0
  13. package/node_modules_ol_control_ZoomToExtent_js.js +118 -0
  14. package/node_modules_ol_control_ZoomToExtent_js.js.map +1 -0
  15. package/node_modules_ol_events_SnapEvent_js.js +79 -0
  16. package/node_modules_ol_events_SnapEvent_js.js.map +1 -0
  17. package/node_modules_ol_featureloader_js.js +205 -0
  18. package/node_modules_ol_featureloader_js.js.map +1 -0
  19. package/node_modules_ol_geom_Circle_js.js +300 -0
  20. package/node_modules_ol_geom_Circle_js.js.map +1 -0
  21. package/node_modules_ol_geom_GeometryCollection_js.js +369 -0
  22. package/node_modules_ol_geom_GeometryCollection_js.js.map +1 -0
  23. package/node_modules_ol_geom_MultiPoint_js.js +228 -0
  24. package/node_modules_ol_geom_MultiPoint_js.js.map +1 -0
  25. package/node_modules_ol_geom_flat_center_js.js +47 -0
  26. package/node_modules_ol_geom_flat_center_js.js.map +1 -0
  27. package/node_modules_ol_geom_flat_geodesic_js.js +123 -88
  28. package/node_modules_ol_geom_flat_geodesic_js.js.map +1 -1
  29. package/node_modules_ol_geom_flat_interpolate_js.js +230 -0
  30. package/node_modules_ol_geom_flat_interpolate_js.js.map +1 -0
  31. package/node_modules_ol_geom_flat_length_js-_375a0.js +58 -0
  32. package/node_modules_ol_geom_flat_length_js-_375a0.js.map +1 -0
  33. package/node_modules_ol_geom_flat_length_js-_375a1.js +58 -0
  34. package/node_modules_ol_geom_flat_length_js-_375a1.js.map +1 -0
  35. package/node_modules_ol_geom_flat_length_js-_375a2.js +58 -0
  36. package/node_modules_ol_geom_flat_length_js-_375a2.js.map +1 -0
  37. package/node_modules_ol_geom_flat_length_js-_375a3.js +58 -0
  38. package/node_modules_ol_geom_flat_length_js-_375a3.js.map +1 -0
  39. package/node_modules_ol_geom_flat_length_js-_375a4.js +58 -0
  40. package/node_modules_ol_geom_flat_length_js-_375a4.js.map +1 -0
  41. package/node_modules_ol_geom_flat_linechunk_js.js +76 -0
  42. package/node_modules_ol_geom_flat_linechunk_js.js.map +1 -0
  43. package/node_modules_ol_geom_flat_straightchunk_js.js +68 -0
  44. package/node_modules_ol_geom_flat_straightchunk_js.js.map +1 -0
  45. package/node_modules_ol_geom_flat_textpath_js.js +178 -0
  46. package/node_modules_ol_geom_flat_textpath_js.js.map +1 -0
  47. package/node_modules_ol_interaction_DblClickDragZoom_js.js +285 -0
  48. package/node_modules_ol_interaction_DblClickDragZoom_js.js.map +1 -0
  49. package/node_modules_ol_interaction_DragAndDrop_js.js +351 -0
  50. package/node_modules_ol_interaction_DragAndDrop_js.js.map +1 -0
  51. package/node_modules_ol_interaction_DragRotateAndZoom_js.js +159 -0
  52. package/node_modules_ol_interaction_DragRotateAndZoom_js.js.map +1 -0
  53. package/node_modules_ol_layer_Vector_js-_49290.js +110 -0
  54. package/node_modules_ol_layer_Vector_js-_49290.js.map +1 -0
  55. package/node_modules_ol_layer_Vector_js-_49291.js +110 -0
  56. package/node_modules_ol_layer_Vector_js-_49291.js.map +1 -0
  57. package/node_modules_ol_layer_Vector_js-_49292.js +110 -0
  58. package/node_modules_ol_layer_Vector_js-_49292.js.map +1 -0
  59. package/node_modules_ol_layer_Vector_js-_49293.js +110 -0
  60. package/node_modules_ol_layer_Vector_js-_49293.js.map +1 -0
  61. package/node_modules_ol_loadingstrategy_js.js +95 -0
  62. package/node_modules_ol_loadingstrategy_js.js.map +1 -0
  63. package/node_modules_ol_render_VectorContext_js-_3ad60.js +144 -0
  64. package/node_modules_ol_render_VectorContext_js-_3ad60.js.map +1 -0
  65. package/node_modules_ol_render_VectorContext_js-_3ad61.js +144 -0
  66. package/node_modules_ol_render_VectorContext_js-_3ad61.js.map +1 -0
  67. package/node_modules_ol_render_VectorContext_js-node_modules_ol_render_canvas_hitdetect_js.js +372 -0
  68. package/node_modules_ol_render_VectorContext_js-node_modules_ol_render_canvas_hitdetect_js.js.map +1 -0
  69. package/node_modules_ol_render_canvas_ImageBuilder_js.js +318 -0
  70. package/node_modules_ol_render_canvas_ImageBuilder_js.js.map +1 -0
  71. package/node_modules_ol_render_canvas_Instruction_js.js +66 -0
  72. package/node_modules_ol_render_canvas_Instruction_js.js.map +1 -0
  73. package/node_modules_ol_render_canvas_LineStringBuilder_js.js +187 -0
  74. package/node_modules_ol_render_canvas_LineStringBuilder_js.js.map +1 -0
  75. package/node_modules_ol_render_canvas_PolygonBuilder_js.js +276 -0
  76. package/node_modules_ol_render_canvas_PolygonBuilder_js.js.map +1 -0
  77. package/node_modules_ol_render_canvas_ZIndexContext_js-_fab20.js +156 -0
  78. package/node_modules_ol_render_canvas_ZIndexContext_js-_fab20.js.map +1 -0
  79. package/node_modules_ol_render_canvas_ZIndexContext_js-_fab21.js +156 -0
  80. package/node_modules_ol_render_canvas_ZIndexContext_js-_fab21.js.map +1 -0
  81. package/node_modules_ol_render_js-node_modules_ol_render_VectorContext_js.js +301 -0
  82. package/node_modules_ol_render_js-node_modules_ol_render_VectorContext_js.js.map +1 -0
  83. package/node_modules_ol_renderer_Layer_js.js +219 -0
  84. package/node_modules_ol_renderer_Layer_js.js.map +1 -0
  85. package/node_modules_ol_source_Source_js.js +256 -0
  86. package/node_modules_ol_source_Source_js.js.map +1 -0
  87. package/node_modules_ol_source_VectorEventType_js-node_modules_ol_structs_RBush_js.js +318 -0
  88. package/node_modules_ol_source_VectorEventType_js-node_modules_ol_structs_RBush_js.js.map +1 -0
  89. package/node_modules_ol_source_VectorEventType_js.js +80 -0
  90. package/node_modules_ol_source_VectorEventType_js.js.map +1 -0
  91. package/node_modules_ol_structs_RBush_js.js +242 -0
  92. package/node_modules_ol_structs_RBush_js.js.map +1 -0
  93. package/node_modules_ol_style_js.js +2 -1
  94. package/node_modules_ol_style_js.js.map +1 -1
  95. package/node_modules_rbush_rbush_min_js.js +16 -0
  96. package/node_modules_rbush_rbush_min_js.js.map +1 -0
  97. package/package.json +142 -146
  98. package/vaadin-bundle.json +2447 -2352
  99. package/vaadin.js +52246 -63791
  100. package/vaadin.js.map +1 -1
  101. package/vendors-node_modules_dompurify_dist_purify_es_mjs.js +1364 -0
  102. package/vendors-node_modules_dompurify_dist_purify_es_mjs.js.map +1 -0
  103. package/vendors-node_modules_dompurify_dist_purify_js.js +26 -21
  104. package/vendors-node_modules_dompurify_dist_purify_js.js.map +1 -1
  105. package/vendors-node_modules_marked_lib_marked_esm_js.js +2205 -0
  106. package/vendors-node_modules_marked_lib_marked_esm_js.js.map +1 -0
  107. package/vendors-node_modules_marked_lib_marked_umd_js.js +2164 -2556
  108. package/vendors-node_modules_marked_lib_marked_umd_js.js.map +1 -1
  109. package/vendors-node_modules_ol_Feature_js.js +360 -0
  110. package/vendors-node_modules_ol_Feature_js.js.map +1 -0
  111. package/vendors-node_modules_ol_Geolocation_js.js +352 -293
  112. package/vendors-node_modules_ol_Geolocation_js.js.map +1 -1
  113. package/vendors-node_modules_ol_ImageTile_js.js +494 -0
  114. package/vendors-node_modules_ol_ImageTile_js.js.map +1 -0
  115. package/vendors-node_modules_ol_Overlay_js.js +606 -0
  116. package/vendors-node_modules_ol_Overlay_js.js.map +1 -0
  117. package/vendors-node_modules_ol_control_FullScreen_js.js +417 -0
  118. package/vendors-node_modules_ol_control_FullScreen_js.js.map +1 -0
  119. package/vendors-node_modules_ol_control_OverviewMap_js.js +711 -0
  120. package/vendors-node_modules_ol_control_OverviewMap_js.js.map +1 -0
  121. package/vendors-node_modules_ol_control_ScaleLine_js.js +509 -0
  122. package/vendors-node_modules_ol_control_ScaleLine_js.js.map +1 -0
  123. package/vendors-node_modules_ol_control_ZoomSlider_js.js +418 -0
  124. package/vendors-node_modules_ol_control_ZoomSlider_js.js.map +1 -0
  125. package/vendors-node_modules_ol_control_js.js +490 -0
  126. package/vendors-node_modules_ol_control_js.js.map +1 -0
  127. package/vendors-node_modules_ol_geom_LineString_js.js +574 -0
  128. package/vendors-node_modules_ol_geom_LineString_js.js.map +1 -0
  129. package/vendors-node_modules_ol_geom_MultiLineString_js.js +405 -0
  130. package/vendors-node_modules_ol_geom_MultiLineString_js.js.map +1 -0
  131. package/vendors-node_modules_ol_geom_MultiPolygon_js.js +773 -0
  132. package/vendors-node_modules_ol_geom_MultiPolygon_js.js.map +1 -0
  133. package/vendors-node_modules_ol_geom_js-node_modules_ol_geom_flat_length_js.js +769 -0
  134. package/vendors-node_modules_ol_geom_js-node_modules_ol_geom_flat_length_js.js.map +1 -0
  135. package/vendors-node_modules_ol_index_js.js +526 -675
  136. package/vendors-node_modules_ol_index_js.js.map +1 -1
  137. package/vendors-node_modules_ol_interaction_Draw_js.js +2777 -0
  138. package/vendors-node_modules_ol_interaction_Draw_js.js.map +1 -0
  139. package/vendors-node_modules_ol_interaction_Extent_js.js +586 -0
  140. package/vendors-node_modules_ol_interaction_Extent_js.js.map +1 -0
  141. package/vendors-node_modules_ol_interaction_Link_js.js +489 -0
  142. package/vendors-node_modules_ol_interaction_Link_js.js.map +1 -0
  143. package/vendors-node_modules_ol_interaction_Modify_js.js +1841 -0
  144. package/vendors-node_modules_ol_interaction_Modify_js.js.map +1 -0
  145. package/vendors-node_modules_ol_interaction_Select_js.js +623 -0
  146. package/vendors-node_modules_ol_interaction_Select_js.js.map +1 -0
  147. package/vendors-node_modules_ol_interaction_Snap_js.js +982 -0
  148. package/vendors-node_modules_ol_interaction_Snap_js.js.map +1 -0
  149. package/vendors-node_modules_ol_interaction_Translate_js.js +466 -0
  150. package/vendors-node_modules_ol_interaction_Translate_js.js.map +1 -0
  151. package/vendors-node_modules_ol_interaction_js.js +872 -0
  152. package/vendors-node_modules_ol_interaction_js.js.map +1 -0
  153. package/vendors-node_modules_ol_layer_Graticule_js.js +1374 -989
  154. package/vendors-node_modules_ol_layer_Graticule_js.js.map +1 -1
  155. package/vendors-node_modules_ol_render_Feature_js.js +546 -0
  156. package/vendors-node_modules_ol_render_Feature_js.js.map +1 -0
  157. package/vendors-node_modules_ol_render_canvas_BuilderGroup_js.js +897 -0
  158. package/vendors-node_modules_ol_render_canvas_BuilderGroup_js.js.map +1 -0
  159. package/vendors-node_modules_ol_render_canvas_Builder_js.js +907 -0
  160. package/vendors-node_modules_ol_render_canvas_Builder_js.js.map +1 -0
  161. package/vendors-node_modules_ol_render_canvas_ExecutorGroup_js.js +539 -0
  162. package/vendors-node_modules_ol_render_canvas_ExecutorGroup_js.js.map +1 -0
  163. package/vendors-node_modules_ol_render_canvas_Executor_js.js +1715 -0
  164. package/vendors-node_modules_ol_render_canvas_Executor_js.js.map +1 -0
  165. package/vendors-node_modules_ol_render_canvas_Immediate_js.js +1208 -0
  166. package/vendors-node_modules_ol_render_canvas_Immediate_js.js.map +1 -0
  167. package/vendors-node_modules_ol_render_canvas_TextBuilder_js.js +825 -0
  168. package/vendors-node_modules_ol_render_canvas_TextBuilder_js.js.map +1 -0
  169. package/vendors-node_modules_ol_renderer_canvas_Layer_js.js +654 -0
  170. package/vendors-node_modules_ol_renderer_canvas_Layer_js.js.map +1 -0
  171. package/vendors-node_modules_ol_renderer_canvas_VectorLayer_js.js +1044 -0
  172. package/vendors-node_modules_ol_renderer_canvas_VectorLayer_js.js.map +1 -0
  173. package/vendors-node_modules_ol_renderer_vector_js.js +460 -0
  174. package/vendors-node_modules_ol_renderer_vector_js.js.map +1 -0
  175. package/vendors-node_modules_ol_source_Vector_js.js +2091 -0
  176. package/vendors-node_modules_ol_source_Vector_js.js.map +1 -0
  177. package/node_modules_ol_ImageTile_js.js +0 -177
  178. package/node_modules_ol_ImageTile_js.js.map +0 -1
  179. package/node_modules_ol_render_js.js +0 -131
  180. package/node_modules_ol_render_js.js.map +0 -1
  181. package/node_modules_ol_structs_LRUCache_js.js +0 -275
  182. package/node_modules_ol_structs_LRUCache_js.js.map +0 -1
  183. package/node_modules_ol_tilecoord_js.js +0 -115
  184. package/node_modules_ol_tilecoord_js.js.map +0 -1
  185. package/vendors-node_modules_ol_TileCache_js.js +0 -461
  186. package/vendors-node_modules_ol_TileCache_js.js.map +0 -1
  187. package/vendors-node_modules_ol_Tile_js.js +0 -330
  188. package/vendors-node_modules_ol_Tile_js.js.map +0 -1
  189. package/vendors-node_modules_ol_style_Text_js.js +0 -509
  190. package/vendors-node_modules_ol_style_Text_js.js.map +0 -1
  191. package/vendors-node_modules_rbush_index_js.js +0 -531
  192. package/vendors-node_modules_rbush_index_js.js.map +0 -1
@@ -0,0 +1,372 @@
1
+ (self["webpackChunk_vaadin_bundles"] = self["webpackChunk_vaadin_bundles"] || []).push([["node_modules_ol_render_VectorContext_js-node_modules_ol_render_canvas_hitdetect_js"],{
2
+
3
+ /***/ "./node_modules/ol/render/VectorContext.js":
4
+ /*!*************************************************!*\
5
+ !*** ./node_modules/ol/render/VectorContext.js ***!
6
+ \*************************************************/
7
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
8
+
9
+ __webpack_require__.r(__webpack_exports__);
10
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
11
+ /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
12
+ /* harmony export */ });
13
+ /**
14
+ * @module ol/render/VectorContext
15
+ */
16
+
17
+ /**
18
+ * @classdesc
19
+ * Context for drawing geometries. A vector context is available on render
20
+ * events and does not need to be constructed directly.
21
+ * @api
22
+ */
23
+ class VectorContext {
24
+ /**
25
+ * Render a geometry with a custom renderer.
26
+ *
27
+ * @param {import("../geom/SimpleGeometry.js").default} geometry Geometry.
28
+ * @param {import("../Feature.js").FeatureLike} feature Feature.
29
+ * @param {Function} renderer Renderer.
30
+ * @param {Function} hitDetectionRenderer Renderer.
31
+ * @param {number} [index] Render order index.
32
+ */
33
+ drawCustom(geometry, feature, renderer, hitDetectionRenderer, index) {}
34
+
35
+ /**
36
+ * Render a geometry.
37
+ *
38
+ * @param {import("../geom/Geometry.js").default} geometry The geometry to render.
39
+ */
40
+ drawGeometry(geometry) {}
41
+
42
+ /**
43
+ * Set the rendering style.
44
+ *
45
+ * @param {import("../style/Style.js").default} style The rendering style.
46
+ */
47
+ setStyle(style) {}
48
+
49
+ /**
50
+ * @param {import("../geom/Circle.js").default} circleGeometry Circle geometry.
51
+ * @param {import("../Feature.js").default} feature Feature.
52
+ * @param {number} [index] Render order index.
53
+ */
54
+ drawCircle(circleGeometry, feature, index) {}
55
+
56
+ /**
57
+ * @param {import("../Feature.js").default} feature Feature.
58
+ * @param {import("../style/Style.js").default} style Style.
59
+ * @param {number} [index] Render order index.
60
+ */
61
+ drawFeature(feature, style, index) {}
62
+
63
+ /**
64
+ * @param {import("../geom/GeometryCollection.js").default} geometryCollectionGeometry Geometry collection.
65
+ * @param {import("../Feature.js").default} feature Feature.
66
+ * @param {number} [index] Render order index.
67
+ */
68
+ drawGeometryCollection(geometryCollectionGeometry, feature, index) {}
69
+
70
+ /**
71
+ * @param {import("../geom/LineString.js").default|import("./Feature.js").default} lineStringGeometry Line string geometry.
72
+ * @param {import("../Feature.js").FeatureLike} feature Feature.
73
+ * @param {number} [index] Render order index.
74
+ */
75
+ drawLineString(lineStringGeometry, feature, index) {}
76
+
77
+ /**
78
+ * @param {import("../geom/MultiLineString.js").default|import("./Feature.js").default} multiLineStringGeometry MultiLineString geometry.
79
+ * @param {import("../Feature.js").FeatureLike} feature Feature.
80
+ * @param {number} [index] Render order index.
81
+ */
82
+ drawMultiLineString(multiLineStringGeometry, feature, index) {}
83
+
84
+ /**
85
+ * @param {import("../geom/MultiPoint.js").default|import("./Feature.js").default} multiPointGeometry MultiPoint geometry.
86
+ * @param {import("../Feature.js").FeatureLike} feature Feature.
87
+ * @param {number} [index] Render order index.
88
+ */
89
+ drawMultiPoint(multiPointGeometry, feature, index) {}
90
+
91
+ /**
92
+ * @param {import("../geom/MultiPolygon.js").default} multiPolygonGeometry MultiPolygon geometry.
93
+ * @param {import("../Feature.js").FeatureLike} feature Feature.
94
+ * @param {number} [index] Render order index.
95
+ */
96
+ drawMultiPolygon(multiPolygonGeometry, feature, index) {}
97
+
98
+ /**
99
+ * @param {import("../geom/Point.js").default|import("./Feature.js").default} pointGeometry Point geometry.
100
+ * @param {import("../Feature.js").FeatureLike} feature Feature.
101
+ * @param {number} [index] Render order index.
102
+ */
103
+ drawPoint(pointGeometry, feature, index) {}
104
+
105
+ /**
106
+ * @param {import("../geom/Polygon.js").default|import("./Feature.js").default} polygonGeometry Polygon geometry.
107
+ * @param {import("../Feature.js").FeatureLike} feature Feature.
108
+ * @param {number} [index] Render order index.
109
+ */
110
+ drawPolygon(polygonGeometry, feature, index) {}
111
+
112
+ /**
113
+ * @param {import("../geom/SimpleGeometry.js").default|import("./Feature.js").default} geometry Geometry.
114
+ * @param {import("../Feature.js").FeatureLike} feature Feature.
115
+ * @param {number} [index] Render order index.
116
+ */
117
+ drawText(geometry, feature, index) {}
118
+
119
+ /**
120
+ * @param {import("../style/Fill.js").default} fillStyle Fill style.
121
+ * @param {import("../style/Stroke.js").default} strokeStyle Stroke style.
122
+ */
123
+ setFillStrokeStyle(fillStyle, strokeStyle) {}
124
+
125
+ /**
126
+ * @param {import("../style/Image.js").default} imageStyle Image style.
127
+ * @param {import("../render/canvas.js").DeclutterImageWithText} [declutterImageWithText] Shared data for combined decluttering with a text style.
128
+ */
129
+ setImageStyle(imageStyle, declutterImageWithText) {}
130
+
131
+ /**
132
+ * @param {import("../style/Text.js").default} textStyle Text style.
133
+ * @param {import("../render/canvas.js").DeclutterImageWithText} [declutterImageWithText] Shared data for combined decluttering with an image style.
134
+ */
135
+ setTextStyle(textStyle, declutterImageWithText) {}
136
+ }
137
+
138
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (VectorContext);
139
+
140
+
141
+ /***/ }),
142
+
143
+ /***/ "./node_modules/ol/render/canvas/hitdetect.js":
144
+ /*!****************************************************!*\
145
+ !*** ./node_modules/ol/render/canvas/hitdetect.js ***!
146
+ \****************************************************/
147
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
148
+
149
+ __webpack_require__.r(__webpack_exports__);
150
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
151
+ /* harmony export */ "HIT_DETECT_RESOLUTION": () => (/* binding */ HIT_DETECT_RESOLUTION),
152
+ /* harmony export */ "createHitDetectionImageData": () => (/* binding */ createHitDetectionImageData),
153
+ /* harmony export */ "hitDetect": () => (/* binding */ hitDetect)
154
+ /* harmony export */ });
155
+ /* harmony import */ var _array_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../array.js */ "./node_modules/ol/array.js");
156
+ /* harmony import */ var _dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../dom.js */ "./node_modules/ol/dom.js");
157
+ /* harmony import */ var _extent_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../extent.js */ "./node_modules/ol/extent.js");
158
+ /* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../math.js */ "./node_modules/ol/math.js");
159
+ /* harmony import */ var _proj_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../proj.js */ "./node_modules/ol/proj.js");
160
+ /* harmony import */ var _style_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../style.js */ "./node_modules/ol/style/Icon.js");
161
+ /* harmony import */ var _Immediate_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Immediate.js */ "./node_modules/ol/render/canvas/Immediate.js");
162
+ /**
163
+ * @module ol/render/canvas/hitdetect
164
+ */
165
+
166
+
167
+
168
+
169
+
170
+
171
+
172
+
173
+
174
+ const HIT_DETECT_RESOLUTION = 0.5;
175
+
176
+ /**
177
+ * @param {import("../../size.js").Size} size Canvas size in css pixels.
178
+ * @param {Array<import("../../transform.js").Transform>} transforms Transforms
179
+ * for rendering features to all worlds of the viewport, from coordinates to css
180
+ * pixels.
181
+ * @param {Array<import("../../Feature.js").FeatureLike>} features
182
+ * Features to consider for hit detection.
183
+ * @param {import("../../style/Style.js").StyleFunction|undefined} styleFunction
184
+ * Layer style function.
185
+ * @param {import("../../extent.js").Extent} extent Extent in render projection.
186
+ * @param {number} resolution Resolution.
187
+ * @param {number} rotation Rotation.
188
+ * @param {number} [squaredTolerance] Squared tolerance.
189
+ * @param {import("../../proj/Projection.js").default} [projection] Render projection.
190
+ * @return {ImageData} Hit detection image data.
191
+ */
192
+ function createHitDetectionImageData(
193
+ size,
194
+ transforms,
195
+ features,
196
+ styleFunction,
197
+ extent,
198
+ resolution,
199
+ rotation,
200
+ squaredTolerance,
201
+ projection,
202
+ ) {
203
+ const userExtent = projection ? (0,_proj_js__WEBPACK_IMPORTED_MODULE_0__.toUserExtent)(extent, projection) : extent;
204
+ const width = size[0] * HIT_DETECT_RESOLUTION;
205
+ const height = size[1] * HIT_DETECT_RESOLUTION;
206
+ const context = (0,_dom_js__WEBPACK_IMPORTED_MODULE_1__.createCanvasContext2D)(width, height);
207
+ context.imageSmoothingEnabled = false;
208
+ const canvas = context.canvas;
209
+ const renderer = new _Immediate_js__WEBPACK_IMPORTED_MODULE_2__["default"](
210
+ context,
211
+ HIT_DETECT_RESOLUTION,
212
+ extent,
213
+ null,
214
+ rotation,
215
+ squaredTolerance,
216
+ projection
217
+ ? (0,_proj_js__WEBPACK_IMPORTED_MODULE_0__.getTransformFromProjections)((0,_proj_js__WEBPACK_IMPORTED_MODULE_0__.getUserProjection)(), projection)
218
+ : null,
219
+ );
220
+ const featureCount = features.length;
221
+ // Stretch hit detection index to use the whole available color range
222
+ const indexFactor = Math.floor((256 * 256 * 256 - 1) / featureCount);
223
+ const featuresByZIndex = {};
224
+ for (let i = 1; i <= featureCount; ++i) {
225
+ const feature = features[i - 1];
226
+ const featureStyleFunction = feature.getStyleFunction() || styleFunction;
227
+ if (!featureStyleFunction) {
228
+ continue;
229
+ }
230
+ let styles = featureStyleFunction(feature, resolution);
231
+ if (!styles) {
232
+ continue;
233
+ }
234
+ if (!Array.isArray(styles)) {
235
+ styles = [styles];
236
+ }
237
+ const index = i * indexFactor;
238
+ const color = index.toString(16).padStart(7, '#00000');
239
+ for (let j = 0, jj = styles.length; j < jj; ++j) {
240
+ const originalStyle = styles[j];
241
+ const geometry = originalStyle.getGeometryFunction()(feature);
242
+ if (!geometry || !(0,_extent_js__WEBPACK_IMPORTED_MODULE_3__.intersects)(userExtent, geometry.getExtent())) {
243
+ continue;
244
+ }
245
+ const style = originalStyle.clone();
246
+ const fill = style.getFill();
247
+ if (fill) {
248
+ fill.setColor(color);
249
+ }
250
+ const stroke = style.getStroke();
251
+ if (stroke) {
252
+ stroke.setColor(color);
253
+ stroke.setLineDash(null);
254
+ }
255
+ style.setText(undefined);
256
+ const image = originalStyle.getImage();
257
+ if (image) {
258
+ const imgSize = image.getImageSize();
259
+ if (!imgSize) {
260
+ continue;
261
+ }
262
+
263
+ const imgContext = (0,_dom_js__WEBPACK_IMPORTED_MODULE_1__.createCanvasContext2D)(
264
+ imgSize[0],
265
+ imgSize[1],
266
+ undefined,
267
+ {alpha: false},
268
+ );
269
+ const img = imgContext.canvas;
270
+ imgContext.fillStyle = color;
271
+ imgContext.fillRect(0, 0, img.width, img.height);
272
+ style.setImage(
273
+ new _style_js__WEBPACK_IMPORTED_MODULE_4__["default"]({
274
+ img: img,
275
+ anchor: image.getAnchor(),
276
+ anchorXUnits: 'pixels',
277
+ anchorYUnits: 'pixels',
278
+ offset: image.getOrigin(),
279
+ opacity: 1,
280
+ size: image.getSize(),
281
+ scale: image.getScale(),
282
+ rotation: image.getRotation(),
283
+ rotateWithView: image.getRotateWithView(),
284
+ }),
285
+ );
286
+ }
287
+ const zIndex = style.getZIndex() || 0;
288
+ let byGeometryType = featuresByZIndex[zIndex];
289
+ if (!byGeometryType) {
290
+ byGeometryType = {};
291
+ featuresByZIndex[zIndex] = byGeometryType;
292
+ byGeometryType['Polygon'] = [];
293
+ byGeometryType['Circle'] = [];
294
+ byGeometryType['LineString'] = [];
295
+ byGeometryType['Point'] = [];
296
+ }
297
+ const type = geometry.getType();
298
+ if (type === 'GeometryCollection') {
299
+ const geometries =
300
+ /** @type {import("../../geom/GeometryCollection.js").default} */ (
301
+ geometry
302
+ ).getGeometriesArrayRecursive();
303
+ for (let i = 0, ii = geometries.length; i < ii; ++i) {
304
+ const geometry = geometries[i];
305
+ byGeometryType[geometry.getType().replace('Multi', '')].push(
306
+ geometry,
307
+ style,
308
+ );
309
+ }
310
+ } else {
311
+ byGeometryType[type.replace('Multi', '')].push(geometry, style);
312
+ }
313
+ }
314
+ }
315
+
316
+ const zIndexKeys = Object.keys(featuresByZIndex).map(Number).sort(_array_js__WEBPACK_IMPORTED_MODULE_5__.ascending);
317
+ for (let i = 0, ii = zIndexKeys.length; i < ii; ++i) {
318
+ const byGeometryType = featuresByZIndex[zIndexKeys[i]];
319
+ for (const type in byGeometryType) {
320
+ const geomAndStyle = byGeometryType[type];
321
+ for (let j = 0, jj = geomAndStyle.length; j < jj; j += 2) {
322
+ renderer.setStyle(geomAndStyle[j + 1]);
323
+ for (let k = 0, kk = transforms.length; k < kk; ++k) {
324
+ renderer.setTransform(transforms[k]);
325
+ renderer.drawGeometry(geomAndStyle[j]);
326
+ }
327
+ }
328
+ }
329
+ }
330
+ return context.getImageData(0, 0, canvas.width, canvas.height);
331
+ }
332
+
333
+ /**
334
+ * @param {import("../../pixel").Pixel} pixel Pixel coordinate on the hit
335
+ * detection canvas in css pixels.
336
+ * @param {Array<F>} features Features. Has to
337
+ * match the `features` array that was passed to `createHitDetectionImageData()`.
338
+ * @param {ImageData} imageData Hit detection image data generated by
339
+ * `createHitDetectionImageData()`.
340
+ * @return {Array<F>} Features.
341
+ * @template {import("../../Feature.js").FeatureLike} F
342
+ */
343
+ function hitDetect(pixel, features, imageData) {
344
+ /** @type {Array<F>} */
345
+ const resultFeatures = [];
346
+ if (imageData) {
347
+ const x = Math.floor(Math.round(pixel[0]) * HIT_DETECT_RESOLUTION);
348
+ const y = Math.floor(Math.round(pixel[1]) * HIT_DETECT_RESOLUTION);
349
+ // The pixel coordinate is clamped down to the hit-detect canvas' size to account
350
+ // for browsers returning coordinates slightly larger than the actual canvas size
351
+ // due to a non-integer pixel ratio.
352
+ const index =
353
+ ((0,_math_js__WEBPACK_IMPORTED_MODULE_6__.clamp)(x, 0, imageData.width - 1) +
354
+ (0,_math_js__WEBPACK_IMPORTED_MODULE_6__.clamp)(y, 0, imageData.height - 1) * imageData.width) *
355
+ 4;
356
+ const r = imageData.data[index];
357
+ const g = imageData.data[index + 1];
358
+ const b = imageData.data[index + 2];
359
+ const i = b + 256 * (g + 256 * r);
360
+ const indexFactor = Math.floor((256 * 256 * 256 - 1) / features.length);
361
+ if (i && i % indexFactor === 0) {
362
+ resultFeatures.push(features[i / indexFactor - 1]);
363
+ }
364
+ }
365
+ return resultFeatures;
366
+ }
367
+
368
+
369
+ /***/ })
370
+
371
+ }])
372
+ //# sourceMappingURL=node_modules_ol_render_VectorContext_js-node_modules_ol_render_canvas_hitdetect_js.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node_modules_ol_render_VectorContext_js-node_modules_ol_render_canvas_hitdetect_js.js","mappings":";;;;;;;;;;;;AAAA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,6CAA6C;AAC1D,aAAa,qCAAqC;AAClD,aAAa,UAAU;AACvB,aAAa,UAAU;AACvB,aAAa,QAAQ;AACrB;AACA;;AAEA;AACA;AACA;AACA,aAAa,uCAAuC;AACpD;AACA;;AAEA;AACA;AACA;AACA,aAAa,qCAAqC;AAClD;AACA;;AAEA;AACA,aAAa,qCAAqC;AAClD,aAAa,iCAAiC;AAC9C,aAAa,QAAQ;AACrB;AACA;;AAEA;AACA,aAAa,iCAAiC;AAC9C,aAAa,qCAAqC;AAClD,aAAa,QAAQ;AACrB;AACA;;AAEA;AACA,aAAa,iDAAiD;AAC9D,aAAa,iCAAiC;AAC9C,aAAa,QAAQ;AACrB;AACA;;AAEA;AACA,aAAa,wEAAwE;AACrF,aAAa,qCAAqC;AAClD,aAAa,QAAQ;AACrB;AACA;;AAEA;AACA,aAAa,6EAA6E;AAC1F,aAAa,qCAAqC;AAClD,aAAa,QAAQ;AACrB;AACA;;AAEA;AACA,aAAa,wEAAwE;AACrF,aAAa,qCAAqC;AAClD,aAAa,QAAQ;AACrB;AACA;;AAEA;AACA,aAAa,2CAA2C;AACxD,aAAa,qCAAqC;AAClD,aAAa,QAAQ;AACrB;AACA;;AAEA;AACA,aAAa,mEAAmE;AAChF,aAAa,qCAAqC;AAClD,aAAa,QAAQ;AACrB;AACA;;AAEA;AACA,aAAa,qEAAqE;AAClF,aAAa,qCAAqC;AAClD,aAAa,QAAQ;AACrB;AACA;;AAEA;AACA,aAAa,4EAA4E;AACzF,aAAa,qCAAqC;AAClD,aAAa,QAAQ;AACrB;AACA;;AAEA;AACA,aAAa,oCAAoC;AACjD,aAAa,sCAAsC;AACnD;AACA;;AAEA;AACA,aAAa,qCAAqC;AAClD,aAAa,sDAAsD;AACnE;AACA;;AAEA;AACA,aAAa,oCAAoC;AACjD,aAAa,sDAAsD;AACnE;AACA;AACA;;AAEA,iEAAe,aAAa,EAAC;;;;;;;;;;;;;;;;;;;;;;;;AC7H7B;AACA;AACA;;AAEyC;AACU;AACR;AACP;AAKb;AACa;AACiB;;AAE9C;;AAEP;AACA,WAAW,8BAA8B;AACzC,WAAW,+CAA+C;AAC1D;AACA;AACA,WAAW,+CAA+C;AAC1D;AACA,WAAW,wDAAwD;AACnE;AACA,WAAW,kCAAkC;AAC7C,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,4CAA4C;AACvD,YAAY,WAAW;AACvB;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,sDAAY;AAC9C;AACA;AACA,kBAAkB,8DAAqB;AACvC;AACA;AACA,uBAAuB,qDAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAA2B,CAAC,2DAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mBAAmB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,QAAQ;AAChD;AACA;AACA,wBAAwB,sDAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,8DAAqB;AAChD;AACA;AACA;AACA,WAAW,aAAa;AACxB;AACA;AACA;AACA;AACA;AACA,cAAc,iDAAI;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oDAAoD;AACzE;AACA;AACA,gDAAgD,QAAQ;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA,oEAAoE,gDAAS;AAC7E,0CAA0C,QAAQ;AAClD;AACA;AACA;AACA,gDAAgD,QAAQ;AACxD;AACA,gDAAgD,QAAQ;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,6BAA6B;AACxC;AACA,WAAW,UAAU;AACrB;AACA,WAAW,WAAW;AACtB;AACA,YAAY,UAAU;AACtB,cAAc,wCAAwC;AACtD;AACO;AACP,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,+CAAK;AACZ,QAAQ,+CAAK;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["webpack://@vaadin/bundles/./node_modules/ol/render/VectorContext.js","webpack://@vaadin/bundles/./node_modules/ol/render/canvas/hitdetect.js"],"sourcesContent":["/**\n * @module ol/render/VectorContext\n */\n\n/**\n * @classdesc\n * Context for drawing geometries. A vector context is available on render\n * events and does not need to be constructed directly.\n * @api\n */\nclass VectorContext {\n /**\n * Render a geometry with a custom renderer.\n *\n * @param {import(\"../geom/SimpleGeometry.js\").default} geometry Geometry.\n * @param {import(\"../Feature.js\").FeatureLike} feature Feature.\n * @param {Function} renderer Renderer.\n * @param {Function} hitDetectionRenderer Renderer.\n * @param {number} [index] Render order index.\n */\n drawCustom(geometry, feature, renderer, hitDetectionRenderer, index) {}\n\n /**\n * Render a geometry.\n *\n * @param {import(\"../geom/Geometry.js\").default} geometry The geometry to render.\n */\n drawGeometry(geometry) {}\n\n /**\n * Set the rendering style.\n *\n * @param {import(\"../style/Style.js\").default} style The rendering style.\n */\n setStyle(style) {}\n\n /**\n * @param {import(\"../geom/Circle.js\").default} circleGeometry Circle geometry.\n * @param {import(\"../Feature.js\").default} feature Feature.\n * @param {number} [index] Render order index.\n */\n drawCircle(circleGeometry, feature, index) {}\n\n /**\n * @param {import(\"../Feature.js\").default} feature Feature.\n * @param {import(\"../style/Style.js\").default} style Style.\n * @param {number} [index] Render order index.\n */\n drawFeature(feature, style, index) {}\n\n /**\n * @param {import(\"../geom/GeometryCollection.js\").default} geometryCollectionGeometry Geometry collection.\n * @param {import(\"../Feature.js\").default} feature Feature.\n * @param {number} [index] Render order index.\n */\n drawGeometryCollection(geometryCollectionGeometry, feature, index) {}\n\n /**\n * @param {import(\"../geom/LineString.js\").default|import(\"./Feature.js\").default} lineStringGeometry Line string geometry.\n * @param {import(\"../Feature.js\").FeatureLike} feature Feature.\n * @param {number} [index] Render order index.\n */\n drawLineString(lineStringGeometry, feature, index) {}\n\n /**\n * @param {import(\"../geom/MultiLineString.js\").default|import(\"./Feature.js\").default} multiLineStringGeometry MultiLineString geometry.\n * @param {import(\"../Feature.js\").FeatureLike} feature Feature.\n * @param {number} [index] Render order index.\n */\n drawMultiLineString(multiLineStringGeometry, feature, index) {}\n\n /**\n * @param {import(\"../geom/MultiPoint.js\").default|import(\"./Feature.js\").default} multiPointGeometry MultiPoint geometry.\n * @param {import(\"../Feature.js\").FeatureLike} feature Feature.\n * @param {number} [index] Render order index.\n */\n drawMultiPoint(multiPointGeometry, feature, index) {}\n\n /**\n * @param {import(\"../geom/MultiPolygon.js\").default} multiPolygonGeometry MultiPolygon geometry.\n * @param {import(\"../Feature.js\").FeatureLike} feature Feature.\n * @param {number} [index] Render order index.\n */\n drawMultiPolygon(multiPolygonGeometry, feature, index) {}\n\n /**\n * @param {import(\"../geom/Point.js\").default|import(\"./Feature.js\").default} pointGeometry Point geometry.\n * @param {import(\"../Feature.js\").FeatureLike} feature Feature.\n * @param {number} [index] Render order index.\n */\n drawPoint(pointGeometry, feature, index) {}\n\n /**\n * @param {import(\"../geom/Polygon.js\").default|import(\"./Feature.js\").default} polygonGeometry Polygon geometry.\n * @param {import(\"../Feature.js\").FeatureLike} feature Feature.\n * @param {number} [index] Render order index.\n */\n drawPolygon(polygonGeometry, feature, index) {}\n\n /**\n * @param {import(\"../geom/SimpleGeometry.js\").default|import(\"./Feature.js\").default} geometry Geometry.\n * @param {import(\"../Feature.js\").FeatureLike} feature Feature.\n * @param {number} [index] Render order index.\n */\n drawText(geometry, feature, index) {}\n\n /**\n * @param {import(\"../style/Fill.js\").default} fillStyle Fill style.\n * @param {import(\"../style/Stroke.js\").default} strokeStyle Stroke style.\n */\n setFillStrokeStyle(fillStyle, strokeStyle) {}\n\n /**\n * @param {import(\"../style/Image.js\").default} imageStyle Image style.\n * @param {import(\"../render/canvas.js\").DeclutterImageWithText} [declutterImageWithText] Shared data for combined decluttering with a text style.\n */\n setImageStyle(imageStyle, declutterImageWithText) {}\n\n /**\n * @param {import(\"../style/Text.js\").default} textStyle Text style.\n * @param {import(\"../render/canvas.js\").DeclutterImageWithText} [declutterImageWithText] Shared data for combined decluttering with an image style.\n */\n setTextStyle(textStyle, declutterImageWithText) {}\n}\n\nexport default VectorContext;\n","/**\n * @module ol/render/canvas/hitdetect\n */\n\nimport {ascending} from '../../array.js';\nimport {createCanvasContext2D} from '../../dom.js';\nimport {intersects} from '../../extent.js';\nimport {clamp} from '../../math.js';\nimport {\n getTransformFromProjections,\n getUserProjection,\n toUserExtent,\n} from '../../proj.js';\nimport {Icon} from '../../style.js';\nimport CanvasImmediateRenderer from './Immediate.js';\n\nexport const HIT_DETECT_RESOLUTION = 0.5;\n\n/**\n * @param {import(\"../../size.js\").Size} size Canvas size in css pixels.\n * @param {Array<import(\"../../transform.js\").Transform>} transforms Transforms\n * for rendering features to all worlds of the viewport, from coordinates to css\n * pixels.\n * @param {Array<import(\"../../Feature.js\").FeatureLike>} features\n * Features to consider for hit detection.\n * @param {import(\"../../style/Style.js\").StyleFunction|undefined} styleFunction\n * Layer style function.\n * @param {import(\"../../extent.js\").Extent} extent Extent in render projection.\n * @param {number} resolution Resolution.\n * @param {number} rotation Rotation.\n * @param {number} [squaredTolerance] Squared tolerance.\n * @param {import(\"../../proj/Projection.js\").default} [projection] Render projection.\n * @return {ImageData} Hit detection image data.\n */\nexport function createHitDetectionImageData(\n size,\n transforms,\n features,\n styleFunction,\n extent,\n resolution,\n rotation,\n squaredTolerance,\n projection,\n) {\n const userExtent = projection ? toUserExtent(extent, projection) : extent;\n const width = size[0] * HIT_DETECT_RESOLUTION;\n const height = size[1] * HIT_DETECT_RESOLUTION;\n const context = createCanvasContext2D(width, height);\n context.imageSmoothingEnabled = false;\n const canvas = context.canvas;\n const renderer = new CanvasImmediateRenderer(\n context,\n HIT_DETECT_RESOLUTION,\n extent,\n null,\n rotation,\n squaredTolerance,\n projection\n ? getTransformFromProjections(getUserProjection(), projection)\n : null,\n );\n const featureCount = features.length;\n // Stretch hit detection index to use the whole available color range\n const indexFactor = Math.floor((256 * 256 * 256 - 1) / featureCount);\n const featuresByZIndex = {};\n for (let i = 1; i <= featureCount; ++i) {\n const feature = features[i - 1];\n const featureStyleFunction = feature.getStyleFunction() || styleFunction;\n if (!featureStyleFunction) {\n continue;\n }\n let styles = featureStyleFunction(feature, resolution);\n if (!styles) {\n continue;\n }\n if (!Array.isArray(styles)) {\n styles = [styles];\n }\n const index = i * indexFactor;\n const color = index.toString(16).padStart(7, '#00000');\n for (let j = 0, jj = styles.length; j < jj; ++j) {\n const originalStyle = styles[j];\n const geometry = originalStyle.getGeometryFunction()(feature);\n if (!geometry || !intersects(userExtent, geometry.getExtent())) {\n continue;\n }\n const style = originalStyle.clone();\n const fill = style.getFill();\n if (fill) {\n fill.setColor(color);\n }\n const stroke = style.getStroke();\n if (stroke) {\n stroke.setColor(color);\n stroke.setLineDash(null);\n }\n style.setText(undefined);\n const image = originalStyle.getImage();\n if (image) {\n const imgSize = image.getImageSize();\n if (!imgSize) {\n continue;\n }\n\n const imgContext = createCanvasContext2D(\n imgSize[0],\n imgSize[1],\n undefined,\n {alpha: false},\n );\n const img = imgContext.canvas;\n imgContext.fillStyle = color;\n imgContext.fillRect(0, 0, img.width, img.height);\n style.setImage(\n new Icon({\n img: img,\n anchor: image.getAnchor(),\n anchorXUnits: 'pixels',\n anchorYUnits: 'pixels',\n offset: image.getOrigin(),\n opacity: 1,\n size: image.getSize(),\n scale: image.getScale(),\n rotation: image.getRotation(),\n rotateWithView: image.getRotateWithView(),\n }),\n );\n }\n const zIndex = style.getZIndex() || 0;\n let byGeometryType = featuresByZIndex[zIndex];\n if (!byGeometryType) {\n byGeometryType = {};\n featuresByZIndex[zIndex] = byGeometryType;\n byGeometryType['Polygon'] = [];\n byGeometryType['Circle'] = [];\n byGeometryType['LineString'] = [];\n byGeometryType['Point'] = [];\n }\n const type = geometry.getType();\n if (type === 'GeometryCollection') {\n const geometries =\n /** @type {import(\"../../geom/GeometryCollection.js\").default} */ (\n geometry\n ).getGeometriesArrayRecursive();\n for (let i = 0, ii = geometries.length; i < ii; ++i) {\n const geometry = geometries[i];\n byGeometryType[geometry.getType().replace('Multi', '')].push(\n geometry,\n style,\n );\n }\n } else {\n byGeometryType[type.replace('Multi', '')].push(geometry, style);\n }\n }\n }\n\n const zIndexKeys = Object.keys(featuresByZIndex).map(Number).sort(ascending);\n for (let i = 0, ii = zIndexKeys.length; i < ii; ++i) {\n const byGeometryType = featuresByZIndex[zIndexKeys[i]];\n for (const type in byGeometryType) {\n const geomAndStyle = byGeometryType[type];\n for (let j = 0, jj = geomAndStyle.length; j < jj; j += 2) {\n renderer.setStyle(geomAndStyle[j + 1]);\n for (let k = 0, kk = transforms.length; k < kk; ++k) {\n renderer.setTransform(transforms[k]);\n renderer.drawGeometry(geomAndStyle[j]);\n }\n }\n }\n }\n return context.getImageData(0, 0, canvas.width, canvas.height);\n}\n\n/**\n * @param {import(\"../../pixel\").Pixel} pixel Pixel coordinate on the hit\n * detection canvas in css pixels.\n * @param {Array<F>} features Features. Has to\n * match the `features` array that was passed to `createHitDetectionImageData()`.\n * @param {ImageData} imageData Hit detection image data generated by\n * `createHitDetectionImageData()`.\n * @return {Array<F>} Features.\n * @template {import(\"../../Feature.js\").FeatureLike} F\n */\nexport function hitDetect(pixel, features, imageData) {\n /** @type {Array<F>} */\n const resultFeatures = [];\n if (imageData) {\n const x = Math.floor(Math.round(pixel[0]) * HIT_DETECT_RESOLUTION);\n const y = Math.floor(Math.round(pixel[1]) * HIT_DETECT_RESOLUTION);\n // The pixel coordinate is clamped down to the hit-detect canvas' size to account\n // for browsers returning coordinates slightly larger than the actual canvas size\n // due to a non-integer pixel ratio.\n const index =\n (clamp(x, 0, imageData.width - 1) +\n clamp(y, 0, imageData.height - 1) * imageData.width) *\n 4;\n const r = imageData.data[index];\n const g = imageData.data[index + 1];\n const b = imageData.data[index + 2];\n const i = b + 256 * (g + 256 * r);\n const indexFactor = Math.floor((256 * 256 * 256 - 1) / features.length);\n if (i && i % indexFactor === 0) {\n resultFeatures.push(features[i / indexFactor - 1]);\n }\n }\n return resultFeatures;\n}\n"],"names":[],"sourceRoot":""}