@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,546 @@
1
+ (self["webpackChunk_vaadin_bundles"] = self["webpackChunk_vaadin_bundles"] || []).push([["vendors-node_modules_ol_render_Feature_js"],{
2
+
3
+ /***/ "./node_modules/ol/render/Feature.js":
4
+ /*!*******************************************!*\
5
+ !*** ./node_modules/ol/render/Feature.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 */ "toFeature": () => (/* binding */ toFeature),
13
+ /* harmony export */ "toGeometry": () => (/* binding */ toGeometry)
14
+ /* harmony export */ });
15
+ /* harmony import */ var _Feature_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../Feature.js */ "./node_modules/ol/Feature.js");
16
+ /* harmony import */ var _array_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../array.js */ "./node_modules/ol/array.js");
17
+ /* harmony import */ var _extent_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../extent.js */ "./node_modules/ol/extent.js");
18
+ /* harmony import */ var _functions_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../functions.js */ "./node_modules/ol/functions.js");
19
+ /* harmony import */ var _geom_flat_center_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../geom/flat/center.js */ "./node_modules/ol/geom/flat/center.js");
20
+ /* harmony import */ var _geom_flat_interiorpoint_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../geom/flat/interiorpoint.js */ "./node_modules/ol/geom/flat/interiorpoint.js");
21
+ /* harmony import */ var _geom_flat_interpolate_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../geom/flat/interpolate.js */ "./node_modules/ol/geom/flat/interpolate.js");
22
+ /* harmony import */ var _geom_flat_orient_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../geom/flat/orient.js */ "./node_modules/ol/geom/flat/orient.js");
23
+ /* harmony import */ var _geom_flat_simplify_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../geom/flat/simplify.js */ "./node_modules/ol/geom/flat/simplify.js");
24
+ /* harmony import */ var _geom_flat_transform_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../geom/flat/transform.js */ "./node_modules/ol/geom/flat/transform.js");
25
+ /* harmony import */ var _geom_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../geom.js */ "./node_modules/ol/geom/Point.js");
26
+ /* harmony import */ var _geom_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../geom.js */ "./node_modules/ol/geom/MultiPoint.js");
27
+ /* harmony import */ var _geom_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../geom.js */ "./node_modules/ol/geom/LineString.js");
28
+ /* harmony import */ var _geom_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../geom.js */ "./node_modules/ol/geom/MultiLineString.js");
29
+ /* harmony import */ var _geom_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../geom.js */ "./node_modules/ol/geom/MultiPolygon.js");
30
+ /* harmony import */ var _geom_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../geom.js */ "./node_modules/ol/geom/Polygon.js");
31
+ /* harmony import */ var _proj_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../proj.js */ "./node_modules/ol/proj.js");
32
+ /* harmony import */ var _transform_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../transform.js */ "./node_modules/ol/transform.js");
33
+ /**
34
+ * @module ol/render/Feature
35
+ */
36
+
37
+
38
+
39
+
40
+
41
+
42
+
43
+
44
+
45
+
46
+
47
+
48
+
49
+
50
+ /**
51
+ * @typedef {'Point' | 'LineString' | 'LinearRing' | 'Polygon' | 'MultiPoint' | 'MultiLineString'} Type
52
+ * The geometry type. One of `'Point'`, `'LineString'`, `'LinearRing'`,
53
+ * `'Polygon'`, `'MultiPoint'` or 'MultiLineString'`.
54
+ */
55
+
56
+ /**
57
+ * @type {import("../transform.js").Transform}
58
+ */
59
+ const tmpTransform = (0,_transform_js__WEBPACK_IMPORTED_MODULE_1__.create)();
60
+
61
+ /**
62
+ * Lightweight, read-only, {@link module:ol/Feature~Feature} and {@link module:ol/geom/Geometry~Geometry} like
63
+ * structure, optimized for vector tile rendering and styling. Geometry access
64
+ * through the API is limited to getting the type and extent of the geometry.
65
+ */
66
+ class RenderFeature {
67
+ /**
68
+ * @param {Type} type Geometry type.
69
+ * @param {Array<number>} flatCoordinates Flat coordinates. These always need
70
+ * to be right-handed for polygons.
71
+ * @param {Array<number>} ends Ends.
72
+ * @param {number} stride Stride.
73
+ * @param {Object<string, *>} properties Properties.
74
+ * @param {number|string|undefined} id Feature id.
75
+ */
76
+ constructor(type, flatCoordinates, ends, stride, properties, id) {
77
+ /**
78
+ * @type {import("../style/Style.js").StyleFunction|undefined}
79
+ */
80
+ this.styleFunction;
81
+
82
+ /**
83
+ * @private
84
+ * @type {import("../extent.js").Extent|undefined}
85
+ */
86
+ this.extent_;
87
+
88
+ /**
89
+ * @private
90
+ * @type {number|string|undefined}
91
+ */
92
+ this.id_ = id;
93
+
94
+ /**
95
+ * @private
96
+ * @type {Type}
97
+ */
98
+ this.type_ = type;
99
+
100
+ /**
101
+ * @private
102
+ * @type {Array<number>}
103
+ */
104
+ this.flatCoordinates_ = flatCoordinates;
105
+
106
+ /**
107
+ * @private
108
+ * @type {Array<number>}
109
+ */
110
+ this.flatInteriorPoints_ = null;
111
+
112
+ /**
113
+ * @private
114
+ * @type {Array<number>}
115
+ */
116
+ this.flatMidpoints_ = null;
117
+
118
+ /**
119
+ * @private
120
+ * @type {Array<number>|null}
121
+ */
122
+ this.ends_ = ends || null;
123
+
124
+ /**
125
+ * @private
126
+ * @type {Object<string, *>}
127
+ */
128
+ this.properties_ = properties;
129
+
130
+ /**
131
+ * @private
132
+ * @type {number}
133
+ */
134
+ this.squaredTolerance_;
135
+
136
+ /**
137
+ * @private
138
+ * @type {number}
139
+ */
140
+ this.stride_ = stride;
141
+
142
+ /**
143
+ * @private
144
+ * @type {RenderFeature}
145
+ */
146
+ this.simplifiedGeometry_;
147
+ }
148
+
149
+ /**
150
+ * Get a feature property by its key.
151
+ * @param {string} key Key
152
+ * @return {*} Value for the requested key.
153
+ * @api
154
+ */
155
+ get(key) {
156
+ return this.properties_[key];
157
+ }
158
+
159
+ /**
160
+ * Get the extent of this feature's geometry.
161
+ * @return {import("../extent.js").Extent} Extent.
162
+ * @api
163
+ */
164
+ getExtent() {
165
+ if (!this.extent_) {
166
+ this.extent_ =
167
+ this.type_ === 'Point'
168
+ ? (0,_extent_js__WEBPACK_IMPORTED_MODULE_2__.createOrUpdateFromCoordinate)(this.flatCoordinates_)
169
+ : (0,_extent_js__WEBPACK_IMPORTED_MODULE_2__.createOrUpdateFromFlatCoordinates)(
170
+ this.flatCoordinates_,
171
+ 0,
172
+ this.flatCoordinates_.length,
173
+ 2,
174
+ );
175
+ }
176
+ return this.extent_;
177
+ }
178
+
179
+ /**
180
+ * @return {Array<number>} Flat interior points.
181
+ */
182
+ getFlatInteriorPoint() {
183
+ if (!this.flatInteriorPoints_) {
184
+ const flatCenter = (0,_extent_js__WEBPACK_IMPORTED_MODULE_2__.getCenter)(this.getExtent());
185
+ this.flatInteriorPoints_ = (0,_geom_flat_interiorpoint_js__WEBPACK_IMPORTED_MODULE_3__.getInteriorPointOfArray)(
186
+ this.flatCoordinates_,
187
+ 0,
188
+ this.ends_,
189
+ 2,
190
+ flatCenter,
191
+ 0,
192
+ );
193
+ }
194
+ return this.flatInteriorPoints_;
195
+ }
196
+
197
+ /**
198
+ * @return {Array<number>} Flat interior points.
199
+ */
200
+ getFlatInteriorPoints() {
201
+ if (!this.flatInteriorPoints_) {
202
+ const ends = (0,_geom_flat_orient_js__WEBPACK_IMPORTED_MODULE_4__.inflateEnds)(this.flatCoordinates_, this.ends_);
203
+ const flatCenters = (0,_geom_flat_center_js__WEBPACK_IMPORTED_MODULE_5__.linearRingss)(this.flatCoordinates_, 0, ends, 2);
204
+ this.flatInteriorPoints_ = (0,_geom_flat_interiorpoint_js__WEBPACK_IMPORTED_MODULE_3__.getInteriorPointsOfMultiArray)(
205
+ this.flatCoordinates_,
206
+ 0,
207
+ ends,
208
+ 2,
209
+ flatCenters,
210
+ );
211
+ }
212
+ return this.flatInteriorPoints_;
213
+ }
214
+
215
+ /**
216
+ * @return {Array<number>} Flat midpoint.
217
+ */
218
+ getFlatMidpoint() {
219
+ if (!this.flatMidpoints_) {
220
+ this.flatMidpoints_ = (0,_geom_flat_interpolate_js__WEBPACK_IMPORTED_MODULE_6__.interpolatePoint)(
221
+ this.flatCoordinates_,
222
+ 0,
223
+ this.flatCoordinates_.length,
224
+ 2,
225
+ 0.5,
226
+ );
227
+ }
228
+ return this.flatMidpoints_;
229
+ }
230
+
231
+ /**
232
+ * @return {Array<number>} Flat midpoints.
233
+ */
234
+ getFlatMidpoints() {
235
+ if (!this.flatMidpoints_) {
236
+ this.flatMidpoints_ = [];
237
+ const flatCoordinates = this.flatCoordinates_;
238
+ let offset = 0;
239
+ const ends = /** @type {Array<number>} */ (this.ends_);
240
+ for (let i = 0, ii = ends.length; i < ii; ++i) {
241
+ const end = ends[i];
242
+ const midpoint = (0,_geom_flat_interpolate_js__WEBPACK_IMPORTED_MODULE_6__.interpolatePoint)(flatCoordinates, offset, end, 2, 0.5);
243
+ (0,_array_js__WEBPACK_IMPORTED_MODULE_7__.extend)(this.flatMidpoints_, midpoint);
244
+ offset = end;
245
+ }
246
+ }
247
+ return this.flatMidpoints_;
248
+ }
249
+
250
+ /**
251
+ * Get the feature identifier. This is a stable identifier for the feature and
252
+ * is set when reading data from a remote source.
253
+ * @return {number|string|undefined} Id.
254
+ * @api
255
+ */
256
+ getId() {
257
+ return this.id_;
258
+ }
259
+
260
+ /**
261
+ * @return {Array<number>} Flat coordinates.
262
+ */
263
+ getOrientedFlatCoordinates() {
264
+ return this.flatCoordinates_;
265
+ }
266
+
267
+ /**
268
+ * For API compatibility with {@link module:ol/Feature~Feature}, this method is useful when
269
+ * determining the geometry type in style function (see {@link #getType}).
270
+ * @return {RenderFeature} Feature.
271
+ * @api
272
+ */
273
+ getGeometry() {
274
+ return this;
275
+ }
276
+
277
+ /**
278
+ * @param {number} squaredTolerance Squared tolerance.
279
+ * @return {RenderFeature} Simplified geometry.
280
+ */
281
+ getSimplifiedGeometry(squaredTolerance) {
282
+ return this;
283
+ }
284
+
285
+ /**
286
+ * Get a transformed and simplified version of the geometry.
287
+ * @param {number} squaredTolerance Squared tolerance.
288
+ * @param {import("../proj.js").TransformFunction} [transform] Optional transform function.
289
+ * @return {RenderFeature} Simplified geometry.
290
+ */
291
+ simplifyTransformed(squaredTolerance, transform) {
292
+ return this;
293
+ }
294
+
295
+ /**
296
+ * Get the feature properties.
297
+ * @return {Object<string, *>} Feature properties.
298
+ * @api
299
+ */
300
+ getProperties() {
301
+ return this.properties_;
302
+ }
303
+
304
+ /**
305
+ * Get an object of all property names and values. This has the same behavior as getProperties,
306
+ * but is here to conform with the {@link module:ol/Feature~Feature} interface.
307
+ * @return {Object<string, *>?} Object.
308
+ */
309
+ getPropertiesInternal() {
310
+ return this.properties_;
311
+ }
312
+
313
+ /**
314
+ * @return {number} Stride.
315
+ */
316
+ getStride() {
317
+ return this.stride_;
318
+ }
319
+
320
+ /**
321
+ * @return {import('../style/Style.js').StyleFunction|undefined} Style
322
+ */
323
+ getStyleFunction() {
324
+ return this.styleFunction;
325
+ }
326
+
327
+ /**
328
+ * Get the type of this feature's geometry.
329
+ * @return {Type} Geometry type.
330
+ * @api
331
+ */
332
+ getType() {
333
+ return this.type_;
334
+ }
335
+
336
+ /**
337
+ * Transform geometry coordinates from tile pixel space to projected.
338
+ *
339
+ * @param {import("../proj.js").ProjectionLike} projection The data projection
340
+ */
341
+ transform(projection) {
342
+ projection = (0,_proj_js__WEBPACK_IMPORTED_MODULE_0__.get)(projection);
343
+ const pixelExtent = projection.getExtent();
344
+ const projectedExtent = projection.getWorldExtent();
345
+ if (pixelExtent && projectedExtent) {
346
+ const scale = (0,_extent_js__WEBPACK_IMPORTED_MODULE_2__.getHeight)(projectedExtent) / (0,_extent_js__WEBPACK_IMPORTED_MODULE_2__.getHeight)(pixelExtent);
347
+ (0,_transform_js__WEBPACK_IMPORTED_MODULE_1__.compose)(
348
+ tmpTransform,
349
+ projectedExtent[0],
350
+ projectedExtent[3],
351
+ scale,
352
+ -scale,
353
+ 0,
354
+ 0,
355
+ 0,
356
+ );
357
+ (0,_geom_flat_transform_js__WEBPACK_IMPORTED_MODULE_8__.transform2D)(
358
+ this.flatCoordinates_,
359
+ 0,
360
+ this.flatCoordinates_.length,
361
+ 2,
362
+ tmpTransform,
363
+ this.flatCoordinates_,
364
+ );
365
+ }
366
+ }
367
+
368
+ /**
369
+ * Apply a transform function to the coordinates of the geometry.
370
+ * The geometry is modified in place.
371
+ * If you do not want the geometry modified in place, first `clone()` it and
372
+ * then use this function on the clone.
373
+ * @param {import("../proj.js").TransformFunction} transformFn Transform function.
374
+ */
375
+ applyTransform(transformFn) {
376
+ transformFn(this.flatCoordinates_, this.flatCoordinates_, this.stride_);
377
+ }
378
+
379
+ /**
380
+ * @return {RenderFeature} A cloned render feature.
381
+ */
382
+ clone() {
383
+ return new RenderFeature(
384
+ this.type_,
385
+ this.flatCoordinates_.slice(),
386
+ this.ends_?.slice(),
387
+ this.stride_,
388
+ Object.assign({}, this.properties_),
389
+ this.id_,
390
+ );
391
+ }
392
+
393
+ /**
394
+ * @return {Array<number>|null} Ends.
395
+ */
396
+ getEnds() {
397
+ return this.ends_;
398
+ }
399
+
400
+ /**
401
+ * Add transform and resolution based geometry simplification to this instance.
402
+ * @return {RenderFeature} This render feature.
403
+ */
404
+ enableSimplifyTransformed() {
405
+ this.simplifyTransformed = (0,_functions_js__WEBPACK_IMPORTED_MODULE_9__.memoizeOne)((squaredTolerance, transform) => {
406
+ if (squaredTolerance === this.squaredTolerance_) {
407
+ return this.simplifiedGeometry_;
408
+ }
409
+ this.simplifiedGeometry_ = this.clone();
410
+ if (transform) {
411
+ this.simplifiedGeometry_.applyTransform(transform);
412
+ }
413
+ const simplifiedFlatCoordinates =
414
+ this.simplifiedGeometry_.getFlatCoordinates();
415
+ let simplifiedEnds;
416
+ switch (this.type_) {
417
+ case 'LineString':
418
+ simplifiedFlatCoordinates.length = (0,_geom_flat_simplify_js__WEBPACK_IMPORTED_MODULE_10__.douglasPeucker)(
419
+ simplifiedFlatCoordinates,
420
+ 0,
421
+ this.simplifiedGeometry_.flatCoordinates_.length,
422
+ this.simplifiedGeometry_.stride_,
423
+ squaredTolerance,
424
+ simplifiedFlatCoordinates,
425
+ 0,
426
+ );
427
+ simplifiedEnds = [simplifiedFlatCoordinates.length];
428
+ break;
429
+ case 'MultiLineString':
430
+ simplifiedEnds = [];
431
+ simplifiedFlatCoordinates.length = (0,_geom_flat_simplify_js__WEBPACK_IMPORTED_MODULE_10__.douglasPeuckerArray)(
432
+ simplifiedFlatCoordinates,
433
+ 0,
434
+ this.simplifiedGeometry_.ends_,
435
+ this.simplifiedGeometry_.stride_,
436
+ squaredTolerance,
437
+ simplifiedFlatCoordinates,
438
+ 0,
439
+ simplifiedEnds,
440
+ );
441
+ break;
442
+ case 'Polygon':
443
+ simplifiedEnds = [];
444
+ simplifiedFlatCoordinates.length = (0,_geom_flat_simplify_js__WEBPACK_IMPORTED_MODULE_10__.quantizeArray)(
445
+ simplifiedFlatCoordinates,
446
+ 0,
447
+ this.simplifiedGeometry_.ends_,
448
+ this.simplifiedGeometry_.stride_,
449
+ Math.sqrt(squaredTolerance),
450
+ simplifiedFlatCoordinates,
451
+ 0,
452
+ simplifiedEnds,
453
+ );
454
+ break;
455
+ default:
456
+ }
457
+ if (simplifiedEnds) {
458
+ this.simplifiedGeometry_ = new RenderFeature(
459
+ this.type_,
460
+ simplifiedFlatCoordinates,
461
+ simplifiedEnds,
462
+ 2,
463
+ this.properties_,
464
+ this.id_,
465
+ );
466
+ }
467
+ this.squaredTolerance_ = squaredTolerance;
468
+ return this.simplifiedGeometry_;
469
+ });
470
+ return this;
471
+ }
472
+ }
473
+
474
+ /**
475
+ * @return {Array<number>} Flat coordinates.
476
+ */
477
+ RenderFeature.prototype.getFlatCoordinates =
478
+ RenderFeature.prototype.getOrientedFlatCoordinates;
479
+
480
+ /**
481
+ * Create a geometry from an `ol/render/Feature`
482
+ * @param {RenderFeature} renderFeature
483
+ * Render Feature
484
+ * @return {Point|MultiPoint|LineString|MultiLineString|Polygon|MultiPolygon}
485
+ * New geometry instance.
486
+ * @api
487
+ */
488
+ function toGeometry(renderFeature) {
489
+ const geometryType = renderFeature.getType();
490
+ switch (geometryType) {
491
+ case 'Point':
492
+ return new _geom_js__WEBPACK_IMPORTED_MODULE_11__["default"](renderFeature.getFlatCoordinates());
493
+ case 'MultiPoint':
494
+ return new _geom_js__WEBPACK_IMPORTED_MODULE_12__["default"](renderFeature.getFlatCoordinates(), 'XY');
495
+ case 'LineString':
496
+ return new _geom_js__WEBPACK_IMPORTED_MODULE_13__["default"](renderFeature.getFlatCoordinates(), 'XY');
497
+ case 'MultiLineString':
498
+ return new _geom_js__WEBPACK_IMPORTED_MODULE_14__["default"](
499
+ renderFeature.getFlatCoordinates(),
500
+ 'XY',
501
+ /** @type {Array<number>} */ (renderFeature.getEnds()),
502
+ );
503
+ case 'Polygon':
504
+ const flatCoordinates = renderFeature.getFlatCoordinates();
505
+ const ends = renderFeature.getEnds();
506
+ const endss = (0,_geom_flat_orient_js__WEBPACK_IMPORTED_MODULE_4__.inflateEnds)(flatCoordinates, ends);
507
+ return endss.length > 1
508
+ ? new _geom_js__WEBPACK_IMPORTED_MODULE_15__["default"](flatCoordinates, 'XY', endss)
509
+ : new _geom_js__WEBPACK_IMPORTED_MODULE_16__["default"](flatCoordinates, 'XY', ends);
510
+ default:
511
+ throw new Error('Invalid geometry type:' + geometryType);
512
+ }
513
+ }
514
+
515
+ /**
516
+ * Create an `ol/Feature` from an `ol/render/Feature`
517
+ * @param {RenderFeature} renderFeature RenderFeature
518
+ * @param {string} [geometryName] Geometry name to use
519
+ * when creating the Feature.
520
+ * @return {Feature} Newly constructed `ol/Feature` with properties,
521
+ * geometry, and id copied over.
522
+ * @api
523
+ */
524
+ function toFeature(renderFeature, geometryName) {
525
+ const id = renderFeature.getId();
526
+ const geometry = toGeometry(renderFeature);
527
+ const properties = renderFeature.getProperties();
528
+ const feature = new _Feature_js__WEBPACK_IMPORTED_MODULE_17__["default"]();
529
+ if (geometryName !== undefined) {
530
+ feature.setGeometryName(geometryName);
531
+ }
532
+ feature.setGeometry(geometry);
533
+ if (id !== undefined) {
534
+ feature.setId(id);
535
+ }
536
+ feature.setProperties(properties, true);
537
+ return feature;
538
+ }
539
+
540
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (RenderFeature);
541
+
542
+
543
+ /***/ })
544
+
545
+ }])
546
+ //# sourceMappingURL=vendors-node_modules_ol_render_Feature_js.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vendors-node_modules_ol_render_Feature_js.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACoC;AACD;AAMb;AACqB;AAC+B;AAInC;AACsB;AACV;AAKjB;AACoB;AAQlC;AAC4B;AAIvB;;AAEzB;AACA,aAAa,sFAAsF;AACnG;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,qBAAqB,qDAAe;;AAEpC;AACA,4BAA4B,iCAAiC,KAAK,wCAAwC;AAC1G;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,eAAe;AAC5B;AACA,aAAa,eAAe;AAC5B,aAAa,QAAQ;AACrB,aAAa,mBAAmB;AAChC,aAAa,yBAAyB;AACtC;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc,GAAG;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,+BAA+B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wEAA4B;AACxC,YAAY,6EAAiC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc,eAAe;AAC7B;AACA;AACA;AACA,yBAAyB,qDAAS;AAClC,iCAAiC,oFAAuB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc,eAAe;AAC7B;AACA;AACA;AACA,mBAAmB,iEAAW;AAC9B,0BAA0B,kEAAkB;AAC5C,iCAAiC,0FAA6B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc,eAAe;AAC7B;AACA;AACA;AACA,4BAA4B,2EAAgB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc,eAAe;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,eAAe;AAC7C,wCAAwC,QAAQ;AAChD;AACA,yBAAyB,2EAAgB;AACzC,QAAQ,iDAAM;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,yBAAyB;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc,eAAe;AAC7B;AACA;AACA;AACA;;AAEA;AACA,iCAAiC,gCAAgC;AACjE,2DAA2D,eAAe;AAC1E,cAAc,eAAe;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc,eAAe;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,wCAAwC;AACrD,cAAc,eAAe;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,mBAAmB;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sCAAsC,iCAAiC;AACvE,cAAc,oBAAoB;AAClC;AACA;AACA;AACA;;AAEA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;;AAEA;AACA,cAAc,qDAAqD;AACnE;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,qCAAqC;AAClD;AACA;AACA,iBAAiB,6CAAa;AAC9B;AACA;AACA;AACA,oBAAoB,qDAAS,oBAAoB,qDAAS;AAC1D,MAAM,sDAAgB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,oEAAW;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,wCAAwC;AACrD;AACA;AACA;AACA;;AAEA;AACA,cAAc,eAAe;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;;AAEA;AACA,cAAc,oBAAoB;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,eAAe;AAC7B;AACA;AACA,+BAA+B,yDAAU;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,uEAAc;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,4EAAmB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,sEAAa;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;;AAEA;AACA;AACA,WAAW,eAAe;AAC1B;AACA,YAAY;AACZ;AACA;AACA;AACO;AACP;AACA;AACA;AACA,iBAAiB,iDAAK;AACtB;AACA,iBAAiB,iDAAU;AAC3B;AACA,iBAAiB,iDAAU;AAC3B;AACA,iBAAiB,iDAAe;AAChC;AACA;AACA,mBAAmB,eAAe;AAClC;AACA;AACA;AACA;AACA,oBAAoB,iEAAW;AAC/B;AACA,cAAc,iDAAY;AAC1B,cAAc,iDAAO;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,eAAe;AAC1B,WAAW,QAAQ;AACnB;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACO;AACP;AACA;AACA;AACA,sBAAsB,oDAAO;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,aAAa,EAAC","sources":["webpack://@vaadin/bundles/./node_modules/ol/render/Feature.js"],"sourcesContent":["/**\n * @module ol/render/Feature\n */\nimport Feature from '../Feature.js';\nimport {extend} from '../array.js';\nimport {\n createOrUpdateFromCoordinate,\n createOrUpdateFromFlatCoordinates,\n getCenter,\n getHeight,\n} from '../extent.js';\nimport {memoizeOne} from '../functions.js';\nimport {linearRingss as linearRingssCenter} from '../geom/flat/center.js';\nimport {\n getInteriorPointOfArray,\n getInteriorPointsOfMultiArray,\n} from '../geom/flat/interiorpoint.js';\nimport {interpolatePoint} from '../geom/flat/interpolate.js';\nimport {inflateEnds} from '../geom/flat/orient.js';\nimport {\n douglasPeucker,\n douglasPeuckerArray,\n quantizeArray,\n} from '../geom/flat/simplify.js';\nimport {transform2D} from '../geom/flat/transform.js';\nimport {\n LineString,\n MultiLineString,\n MultiPoint,\n MultiPolygon,\n Point,\n Polygon,\n} from '../geom.js';\nimport {get as getProjection} from '../proj.js';\nimport {\n compose as composeTransform,\n create as createTransform,\n} from '../transform.js';\n\n/**\n * @typedef {'Point' | 'LineString' | 'LinearRing' | 'Polygon' | 'MultiPoint' | 'MultiLineString'} Type\n * The geometry type. One of `'Point'`, `'LineString'`, `'LinearRing'`,\n * `'Polygon'`, `'MultiPoint'` or 'MultiLineString'`.\n */\n\n/**\n * @type {import(\"../transform.js\").Transform}\n */\nconst tmpTransform = createTransform();\n\n/**\n * Lightweight, read-only, {@link module:ol/Feature~Feature} and {@link module:ol/geom/Geometry~Geometry} like\n * structure, optimized for vector tile rendering and styling. Geometry access\n * through the API is limited to getting the type and extent of the geometry.\n */\nclass RenderFeature {\n /**\n * @param {Type} type Geometry type.\n * @param {Array<number>} flatCoordinates Flat coordinates. These always need\n * to be right-handed for polygons.\n * @param {Array<number>} ends Ends.\n * @param {number} stride Stride.\n * @param {Object<string, *>} properties Properties.\n * @param {number|string|undefined} id Feature id.\n */\n constructor(type, flatCoordinates, ends, stride, properties, id) {\n /**\n * @type {import(\"../style/Style.js\").StyleFunction|undefined}\n */\n this.styleFunction;\n\n /**\n * @private\n * @type {import(\"../extent.js\").Extent|undefined}\n */\n this.extent_;\n\n /**\n * @private\n * @type {number|string|undefined}\n */\n this.id_ = id;\n\n /**\n * @private\n * @type {Type}\n */\n this.type_ = type;\n\n /**\n * @private\n * @type {Array<number>}\n */\n this.flatCoordinates_ = flatCoordinates;\n\n /**\n * @private\n * @type {Array<number>}\n */\n this.flatInteriorPoints_ = null;\n\n /**\n * @private\n * @type {Array<number>}\n */\n this.flatMidpoints_ = null;\n\n /**\n * @private\n * @type {Array<number>|null}\n */\n this.ends_ = ends || null;\n\n /**\n * @private\n * @type {Object<string, *>}\n */\n this.properties_ = properties;\n\n /**\n * @private\n * @type {number}\n */\n this.squaredTolerance_;\n\n /**\n * @private\n * @type {number}\n */\n this.stride_ = stride;\n\n /**\n * @private\n * @type {RenderFeature}\n */\n this.simplifiedGeometry_;\n }\n\n /**\n * Get a feature property by its key.\n * @param {string} key Key\n * @return {*} Value for the requested key.\n * @api\n */\n get(key) {\n return this.properties_[key];\n }\n\n /**\n * Get the extent of this feature's geometry.\n * @return {import(\"../extent.js\").Extent} Extent.\n * @api\n */\n getExtent() {\n if (!this.extent_) {\n this.extent_ =\n this.type_ === 'Point'\n ? createOrUpdateFromCoordinate(this.flatCoordinates_)\n : createOrUpdateFromFlatCoordinates(\n this.flatCoordinates_,\n 0,\n this.flatCoordinates_.length,\n 2,\n );\n }\n return this.extent_;\n }\n\n /**\n * @return {Array<number>} Flat interior points.\n */\n getFlatInteriorPoint() {\n if (!this.flatInteriorPoints_) {\n const flatCenter = getCenter(this.getExtent());\n this.flatInteriorPoints_ = getInteriorPointOfArray(\n this.flatCoordinates_,\n 0,\n this.ends_,\n 2,\n flatCenter,\n 0,\n );\n }\n return this.flatInteriorPoints_;\n }\n\n /**\n * @return {Array<number>} Flat interior points.\n */\n getFlatInteriorPoints() {\n if (!this.flatInteriorPoints_) {\n const ends = inflateEnds(this.flatCoordinates_, this.ends_);\n const flatCenters = linearRingssCenter(this.flatCoordinates_, 0, ends, 2);\n this.flatInteriorPoints_ = getInteriorPointsOfMultiArray(\n this.flatCoordinates_,\n 0,\n ends,\n 2,\n flatCenters,\n );\n }\n return this.flatInteriorPoints_;\n }\n\n /**\n * @return {Array<number>} Flat midpoint.\n */\n getFlatMidpoint() {\n if (!this.flatMidpoints_) {\n this.flatMidpoints_ = interpolatePoint(\n this.flatCoordinates_,\n 0,\n this.flatCoordinates_.length,\n 2,\n 0.5,\n );\n }\n return this.flatMidpoints_;\n }\n\n /**\n * @return {Array<number>} Flat midpoints.\n */\n getFlatMidpoints() {\n if (!this.flatMidpoints_) {\n this.flatMidpoints_ = [];\n const flatCoordinates = this.flatCoordinates_;\n let offset = 0;\n const ends = /** @type {Array<number>} */ (this.ends_);\n for (let i = 0, ii = ends.length; i < ii; ++i) {\n const end = ends[i];\n const midpoint = interpolatePoint(flatCoordinates, offset, end, 2, 0.5);\n extend(this.flatMidpoints_, midpoint);\n offset = end;\n }\n }\n return this.flatMidpoints_;\n }\n\n /**\n * Get the feature identifier. This is a stable identifier for the feature and\n * is set when reading data from a remote source.\n * @return {number|string|undefined} Id.\n * @api\n */\n getId() {\n return this.id_;\n }\n\n /**\n * @return {Array<number>} Flat coordinates.\n */\n getOrientedFlatCoordinates() {\n return this.flatCoordinates_;\n }\n\n /**\n * For API compatibility with {@link module:ol/Feature~Feature}, this method is useful when\n * determining the geometry type in style function (see {@link #getType}).\n * @return {RenderFeature} Feature.\n * @api\n */\n getGeometry() {\n return this;\n }\n\n /**\n * @param {number} squaredTolerance Squared tolerance.\n * @return {RenderFeature} Simplified geometry.\n */\n getSimplifiedGeometry(squaredTolerance) {\n return this;\n }\n\n /**\n * Get a transformed and simplified version of the geometry.\n * @param {number} squaredTolerance Squared tolerance.\n * @param {import(\"../proj.js\").TransformFunction} [transform] Optional transform function.\n * @return {RenderFeature} Simplified geometry.\n */\n simplifyTransformed(squaredTolerance, transform) {\n return this;\n }\n\n /**\n * Get the feature properties.\n * @return {Object<string, *>} Feature properties.\n * @api\n */\n getProperties() {\n return this.properties_;\n }\n\n /**\n * Get an object of all property names and values. This has the same behavior as getProperties,\n * but is here to conform with the {@link module:ol/Feature~Feature} interface.\n * @return {Object<string, *>?} Object.\n */\n getPropertiesInternal() {\n return this.properties_;\n }\n\n /**\n * @return {number} Stride.\n */\n getStride() {\n return this.stride_;\n }\n\n /**\n * @return {import('../style/Style.js').StyleFunction|undefined} Style\n */\n getStyleFunction() {\n return this.styleFunction;\n }\n\n /**\n * Get the type of this feature's geometry.\n * @return {Type} Geometry type.\n * @api\n */\n getType() {\n return this.type_;\n }\n\n /**\n * Transform geometry coordinates from tile pixel space to projected.\n *\n * @param {import(\"../proj.js\").ProjectionLike} projection The data projection\n */\n transform(projection) {\n projection = getProjection(projection);\n const pixelExtent = projection.getExtent();\n const projectedExtent = projection.getWorldExtent();\n if (pixelExtent && projectedExtent) {\n const scale = getHeight(projectedExtent) / getHeight(pixelExtent);\n composeTransform(\n tmpTransform,\n projectedExtent[0],\n projectedExtent[3],\n scale,\n -scale,\n 0,\n 0,\n 0,\n );\n transform2D(\n this.flatCoordinates_,\n 0,\n this.flatCoordinates_.length,\n 2,\n tmpTransform,\n this.flatCoordinates_,\n );\n }\n }\n\n /**\n * Apply a transform function to the coordinates of the geometry.\n * The geometry is modified in place.\n * If you do not want the geometry modified in place, first `clone()` it and\n * then use this function on the clone.\n * @param {import(\"../proj.js\").TransformFunction} transformFn Transform function.\n */\n applyTransform(transformFn) {\n transformFn(this.flatCoordinates_, this.flatCoordinates_, this.stride_);\n }\n\n /**\n * @return {RenderFeature} A cloned render feature.\n */\n clone() {\n return new RenderFeature(\n this.type_,\n this.flatCoordinates_.slice(),\n this.ends_?.slice(),\n this.stride_,\n Object.assign({}, this.properties_),\n this.id_,\n );\n }\n\n /**\n * @return {Array<number>|null} Ends.\n */\n getEnds() {\n return this.ends_;\n }\n\n /**\n * Add transform and resolution based geometry simplification to this instance.\n * @return {RenderFeature} This render feature.\n */\n enableSimplifyTransformed() {\n this.simplifyTransformed = memoizeOne((squaredTolerance, transform) => {\n if (squaredTolerance === this.squaredTolerance_) {\n return this.simplifiedGeometry_;\n }\n this.simplifiedGeometry_ = this.clone();\n if (transform) {\n this.simplifiedGeometry_.applyTransform(transform);\n }\n const simplifiedFlatCoordinates =\n this.simplifiedGeometry_.getFlatCoordinates();\n let simplifiedEnds;\n switch (this.type_) {\n case 'LineString':\n simplifiedFlatCoordinates.length = douglasPeucker(\n simplifiedFlatCoordinates,\n 0,\n this.simplifiedGeometry_.flatCoordinates_.length,\n this.simplifiedGeometry_.stride_,\n squaredTolerance,\n simplifiedFlatCoordinates,\n 0,\n );\n simplifiedEnds = [simplifiedFlatCoordinates.length];\n break;\n case 'MultiLineString':\n simplifiedEnds = [];\n simplifiedFlatCoordinates.length = douglasPeuckerArray(\n simplifiedFlatCoordinates,\n 0,\n this.simplifiedGeometry_.ends_,\n this.simplifiedGeometry_.stride_,\n squaredTolerance,\n simplifiedFlatCoordinates,\n 0,\n simplifiedEnds,\n );\n break;\n case 'Polygon':\n simplifiedEnds = [];\n simplifiedFlatCoordinates.length = quantizeArray(\n simplifiedFlatCoordinates,\n 0,\n this.simplifiedGeometry_.ends_,\n this.simplifiedGeometry_.stride_,\n Math.sqrt(squaredTolerance),\n simplifiedFlatCoordinates,\n 0,\n simplifiedEnds,\n );\n break;\n default:\n }\n if (simplifiedEnds) {\n this.simplifiedGeometry_ = new RenderFeature(\n this.type_,\n simplifiedFlatCoordinates,\n simplifiedEnds,\n 2,\n this.properties_,\n this.id_,\n );\n }\n this.squaredTolerance_ = squaredTolerance;\n return this.simplifiedGeometry_;\n });\n return this;\n }\n}\n\n/**\n * @return {Array<number>} Flat coordinates.\n */\nRenderFeature.prototype.getFlatCoordinates =\n RenderFeature.prototype.getOrientedFlatCoordinates;\n\n/**\n * Create a geometry from an `ol/render/Feature`\n * @param {RenderFeature} renderFeature\n * Render Feature\n * @return {Point|MultiPoint|LineString|MultiLineString|Polygon|MultiPolygon}\n * New geometry instance.\n * @api\n */\nexport function toGeometry(renderFeature) {\n const geometryType = renderFeature.getType();\n switch (geometryType) {\n case 'Point':\n return new Point(renderFeature.getFlatCoordinates());\n case 'MultiPoint':\n return new MultiPoint(renderFeature.getFlatCoordinates(), 'XY');\n case 'LineString':\n return new LineString(renderFeature.getFlatCoordinates(), 'XY');\n case 'MultiLineString':\n return new MultiLineString(\n renderFeature.getFlatCoordinates(),\n 'XY',\n /** @type {Array<number>} */ (renderFeature.getEnds()),\n );\n case 'Polygon':\n const flatCoordinates = renderFeature.getFlatCoordinates();\n const ends = renderFeature.getEnds();\n const endss = inflateEnds(flatCoordinates, ends);\n return endss.length > 1\n ? new MultiPolygon(flatCoordinates, 'XY', endss)\n : new Polygon(flatCoordinates, 'XY', ends);\n default:\n throw new Error('Invalid geometry type:' + geometryType);\n }\n}\n\n/**\n * Create an `ol/Feature` from an `ol/render/Feature`\n * @param {RenderFeature} renderFeature RenderFeature\n * @param {string} [geometryName] Geometry name to use\n * when creating the Feature.\n * @return {Feature} Newly constructed `ol/Feature` with properties,\n * geometry, and id copied over.\n * @api\n */\nexport function toFeature(renderFeature, geometryName) {\n const id = renderFeature.getId();\n const geometry = toGeometry(renderFeature);\n const properties = renderFeature.getProperties();\n const feature = new Feature();\n if (geometryName !== undefined) {\n feature.setGeometryName(geometryName);\n }\n feature.setGeometry(geometry);\n if (id !== undefined) {\n feature.setId(id);\n }\n feature.setProperties(properties, true);\n return feature;\n}\n\nexport default RenderFeature;\n"],"names":[],"sourceRoot":""}