@arcgis/core 4.32.0-next.20250102 → 4.32.0-next.20250104

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 (276) hide show
  1. package/Color.js +1 -1
  2. package/PopupTemplate.js +1 -1
  3. package/arcade/functions/date.js +1 -1
  4. package/arcade/functions/featuresetbase.js +1 -1
  5. package/arcade/functions/featuresetstats.js +1 -1
  6. package/arcade/functions/featuresetstring.js +1 -1
  7. package/arcade/functions/geomasync.js +1 -1
  8. package/arcade/functions/geometry.js +1 -1
  9. package/arcade/functions/geomsync.js +1 -1
  10. package/arcade/functions/knowledgegraph.js +1 -1
  11. package/arcade/functions/string.js +1 -1
  12. package/arcade/geometry/extendedUnitData.js +5 -0
  13. package/arcade/geometry/functions.js +5 -0
  14. package/arcade/geometry/operators.js +5 -0
  15. package/arcade/geometry/unitConversion.js +5 -0
  16. package/arcade/geometry/wkt.js +5 -0
  17. package/arcade/languageUtils.js +1 -1
  18. package/assets/esri/core/workers/RemoteClient.js +1 -1
  19. package/assets/esri/core/workers/chunks/{e371f4f0eb3c22f222df.js → 005727711cca0614c2ab.js} +2 -2
  20. package/assets/esri/core/workers/chunks/{e371f4f0eb3c22f222df.js.LICENSE.txt → 005727711cca0614c2ab.js.LICENSE.txt} +1 -1
  21. package/assets/esri/core/workers/chunks/{2d908c115ea18e813b95.js → 00c0fbe19c12691cf2c3.js} +1 -1
  22. package/assets/esri/core/workers/chunks/08e28328385066c519c2.js +1 -0
  23. package/assets/esri/core/workers/chunks/{0e735d01296d340b393e.js → 0b95ec12218f3c04df18.js} +1 -1
  24. package/assets/esri/core/workers/chunks/{59bf879b4802a5ba431e.js → 0ee669947c23f469e357.js} +1 -1
  25. package/assets/esri/core/workers/chunks/116103ecec27cce47a2f.js +1 -0
  26. package/assets/esri/core/workers/chunks/11f00218905f0db447ff.js +1 -0
  27. package/assets/esri/core/workers/chunks/14b87f3dd9942e6b19d0.js +1 -0
  28. package/assets/esri/core/workers/chunks/16d7c07e1c11b88dae84.js +1 -0
  29. package/assets/esri/core/workers/chunks/1d04fe800cb98e4d6bc4.js +1 -0
  30. package/assets/esri/core/workers/chunks/{71f6e5742cf0c482066b.js → 1dc6b5b177022b80c473.js} +1 -1
  31. package/assets/esri/core/workers/chunks/{59455e2dd44b4c01cc76.js → 2586741c359057b3f626.js} +1 -1
  32. package/assets/esri/core/workers/chunks/{250a810dd4e1ff293564.js → 318a39b56851e707edad.js} +1 -1
  33. package/assets/esri/core/workers/chunks/{648d7d8fa19a2e772c89.js → 3582836342fa78873fe4.js} +1 -1
  34. package/assets/esri/core/workers/chunks/{b1e4813f0c73fc2a483c.js → 370b230fd2d7703d0698.js} +2 -2
  35. package/assets/esri/core/workers/chunks/{b1e4813f0c73fc2a483c.js.LICENSE.txt → 370b230fd2d7703d0698.js.LICENSE.txt} +1 -1
  36. package/assets/esri/core/workers/chunks/{ebf9caf2dc8af89afec2.js → 42aa697b4718b75b8cb2.js} +2 -2
  37. package/assets/esri/core/workers/chunks/{ebf9caf2dc8af89afec2.js.LICENSE.txt → 42aa697b4718b75b8cb2.js.LICENSE.txt} +1 -1
  38. package/assets/esri/core/workers/chunks/44cc3ea8cec8ddd1e3ab.js +1 -0
  39. package/assets/esri/core/workers/chunks/{801dbea20966806db1c9.js → 53cd990b2c988518de6d.js} +1 -1
  40. package/assets/esri/core/workers/chunks/5a1eb0d1e25ff5574c43.js +1 -0
  41. package/assets/esri/core/workers/chunks/6157c49e7431f5868c77.js +1 -0
  42. package/assets/esri/core/workers/chunks/{eef2d94a73064f9bc085.js → 61d64f163840563017d5.js} +1 -1
  43. package/assets/esri/core/workers/chunks/6ed57d01be6bc054c7cd.js +1 -0
  44. package/assets/esri/core/workers/chunks/7254956381e823219db0.js +1 -0
  45. package/assets/esri/core/workers/chunks/740e6bdb3b76f2ea6d61.js +1 -0
  46. package/assets/esri/core/workers/chunks/756c2f7c8659deab6c96.js.LICENSE.txt +1 -1
  47. package/assets/esri/core/workers/chunks/{56fc353421252f2d0a99.js → 75e8ba7e02647b7216ae.js} +1 -1
  48. package/assets/esri/core/workers/chunks/89d7eec47e5b29935d92.js +1 -0
  49. package/assets/esri/core/workers/chunks/8cd2c9ec1e541836b81c.js +1 -0
  50. package/assets/esri/core/workers/chunks/{0b3e1e903120da297641.js → 932375de79e3d33bc4d7.js} +1 -1
  51. package/assets/esri/core/workers/chunks/{263adfd1c2641ef5c0f5.js → 95f23bd17ce9e07fc8ef.js} +1 -1
  52. package/assets/esri/core/workers/chunks/{7de9c01849c4aa1940e7.js → 986889cea53c4a470347.js} +1 -1
  53. package/assets/esri/core/workers/chunks/{cc6160e8ab3cea4040c2.js → 9e9b2fd958e816b1b5f6.js} +1 -1
  54. package/assets/esri/core/workers/chunks/a57cead317eb2fc9afd8.js +1 -0
  55. package/assets/esri/core/workers/chunks/acec58a7f23b2cc938ee.js +1 -0
  56. package/assets/esri/core/workers/chunks/b0f4254d8a32dd713009.js +1 -0
  57. package/assets/esri/core/workers/chunks/b277b8c2f556918e4f9a.js +1 -0
  58. package/assets/esri/core/workers/chunks/{deffd56e39ce725ce377.js → b30046a40bcfbec8abe4.js} +1 -1
  59. package/assets/esri/core/workers/chunks/{5c11e2e65b97565e5003.js → b7db64b07edb0b37ece1.js} +1 -1
  60. package/assets/esri/core/workers/chunks/bd1fb82e8bac439d05ea.js +1 -0
  61. package/assets/esri/core/workers/chunks/bf0a0ca7fdac98f06a89.js.LICENSE.txt +1 -1
  62. package/assets/esri/core/workers/chunks/c44ce0302dc82fb66ada.js +1 -0
  63. package/assets/esri/core/workers/chunks/c52872a50a5989121388.js +1 -0
  64. package/assets/esri/core/workers/chunks/c8cd6ba5600d8ff8db0b.js +2 -0
  65. package/assets/esri/core/workers/chunks/{a100fb789d72410f8d4f.js.LICENSE.txt → c8cd6ba5600d8ff8db0b.js.LICENSE.txt} +1 -1
  66. package/assets/esri/core/workers/chunks/{57c1370b310768c0790a.js → ca1e186f136abb23ae4b.js} +1 -1
  67. package/assets/esri/core/workers/chunks/{d14e4fc82ad772899336.js → ca4a37bdc0f7fb705146.js} +1 -1
  68. package/assets/esri/core/workers/chunks/cb94fc9b0f613ad50b3f.js +1 -0
  69. package/assets/esri/core/workers/chunks/d20764cc99fcabcb7cbf.js +1 -0
  70. package/assets/esri/core/workers/chunks/df18a72e3625cbe31935.js +1 -0
  71. package/assets/esri/core/workers/chunks/eff8fcb6393cd1193cbc.js +1 -0
  72. package/assets/esri/core/workers/chunks/f19d3c855f6e93544918.js +1 -0
  73. package/assets/esri/core/workers/chunks/f4e3db71d1adae717535.js +2 -0
  74. package/assets/esri/core/workers/chunks/{d82b3e2905cab511ff3a.js.LICENSE.txt → f4e3db71d1adae717535.js.LICENSE.txt} +1 -1
  75. package/assets/esri/core/workers/chunks/{60b40b2319d1651dd150.js → f7e50a8284d12da21355.js} +1 -1
  76. package/assets/esri/core/workers/chunks/f9c0d571f62e611ffe2b.js +1 -0
  77. package/assets/esri/core/workers/chunks/fdfe8e0d942b78f08191.js +1 -0
  78. package/assets/esri/core/workers/chunks/ff21207f46a354786eed.js +1 -0
  79. package/assets/esri/libs/parquet/pkg/arcgis_parquet_bg.wasm +0 -0
  80. package/chunks/Bufferer-BiY2mtjI.js +1 -1
  81. package/chunks/Centroid-DZi-eb9F.js +1 -1
  82. package/chunks/Clipper-a9xfvRaw.js +1 -1
  83. package/chunks/CrackAndCluster-CfzXpEle.js +1 -1
  84. package/chunks/Distance2DCalculator-eS0piaux.js +1 -1
  85. package/chunks/GeodeticDistanceCalculator-bNilDneE.js +1 -1
  86. package/chunks/Geometry.js +1 -1
  87. package/chunks/GeometryCleaner-DVgW95-D.js +1 -1
  88. package/chunks/Intersector-K1VmdfQW.js +1 -1
  89. package/chunks/LineSeries.js +1 -1
  90. package/chunks/OperatorClip.js +1 -1
  91. package/chunks/OperatorCrosses.js +1 -1
  92. package/chunks/OperatorCut.js +1 -1
  93. package/chunks/OperatorDensify.js +1 -1
  94. package/chunks/OperatorDifference.js +1 -1
  95. package/chunks/OperatorGeneralize.js +1 -1
  96. package/chunks/OperatorGeodesicBuffer.js +1 -1
  97. package/chunks/OperatorGeodeticArea.js +1 -1
  98. package/chunks/OperatorGeodeticDensifyByLength.js +1 -1
  99. package/chunks/OperatorGeodeticDistance.js +1 -1
  100. package/chunks/OperatorGeodeticLength.js +1 -1
  101. package/chunks/OperatorIntersection.js +1 -1
  102. package/chunks/OperatorIntersects.js +1 -1
  103. package/chunks/OperatorMultiPartToSinglePart.js +1 -1
  104. package/chunks/OperatorOverlaps.js +1 -1
  105. package/chunks/OperatorProject.js +1 -1
  106. package/chunks/OperatorProximity.js +1 -1
  107. package/chunks/OperatorProximityGeodesic.js +1 -1
  108. package/chunks/OperatorShapePreservingDensify.js +1 -1
  109. package/chunks/OperatorShapePreservingLength.js +1 -1
  110. package/chunks/OperatorSimplify.js +1 -1
  111. package/chunks/OperatorTouches.js +1 -1
  112. package/chunks/OperatorUnion.js +1 -1
  113. package/chunks/OperatorWithin.js +1 -1
  114. package/chunks/QuadraticBezier.js +1 -1
  115. package/chunks/SideCalculator2D-Bf4QCxCR.js +1 -1
  116. package/chunks/Theme.js +1 -1
  117. package/chunks/Tick.js +1 -1
  118. package/chunks/Transformation2D.js +1 -1
  119. package/chunks/arcade.js +1 -1
  120. package/chunks/areaOperator.js +5 -0
  121. package/chunks/array.js +1 -1
  122. package/chunks/bufferOperator.js +5 -0
  123. package/chunks/centroidOperator.js +5 -0
  124. package/chunks/chartUtilsAm5.js +1 -1
  125. package/chunks/clipOperator.js +5 -0
  126. package/chunks/containsOperator.js +5 -0
  127. package/chunks/convexHullOperator.js +5 -0
  128. package/chunks/crossesOperator.js +5 -0
  129. package/chunks/cutOperator.js +5 -0
  130. package/chunks/densifyOperator.js +5 -0
  131. package/chunks/differenceOperator.js +5 -0
  132. package/chunks/disjointOperator.js +5 -0
  133. package/chunks/distanceOperator.js +5 -0
  134. package/chunks/equalsOperator.js +5 -0
  135. package/chunks/generalizeOperator.js +5 -0
  136. package/chunks/geodesicBufferOperator.js +5 -0
  137. package/chunks/geodeticAreaOperator.js +5 -0
  138. package/chunks/geodeticDensifyOperator.js +5 -0
  139. package/chunks/geodeticLengthOperator.js +5 -0
  140. package/chunks/i3s.js +1 -1
  141. package/chunks/intersectionOperator.js +5 -0
  142. package/chunks/intersectsOperator.js +5 -0
  143. package/chunks/languageUtils.js +1 -1
  144. package/chunks/lclayout.js +1 -1
  145. package/chunks/lengthOperator.js +5 -0
  146. package/chunks/lyr3DMain.js +1 -1
  147. package/chunks/lyr3DWorker.js +1 -1
  148. package/chunks/offsetOperator.js +5 -0
  149. package/chunks/overlapsOperator.js +5 -0
  150. package/chunks/pe-wasm.js +1 -1
  151. package/chunks/proximityOperator.js +5 -0
  152. package/chunks/relateOperator.js +5 -0
  153. package/chunks/simplifyOperator.js +5 -0
  154. package/chunks/symmetricDifferenceOperator.js +5 -0
  155. package/chunks/touchesOperator.js +5 -0
  156. package/chunks/unionOperator.js +5 -0
  157. package/chunks/vxlLayer.js +1 -1
  158. package/chunks/withinOperator.js +5 -0
  159. package/copyright.txt +2 -2
  160. package/core/Evented.js +1 -1
  161. package/geometry/operators/areaOperator.js +1 -1
  162. package/geometry/operators/bufferOperator.js +1 -1
  163. package/geometry/operators/centroidOperator.js +1 -1
  164. package/geometry/operators/clipOperator.js +1 -1
  165. package/geometry/operators/containsOperator.js +1 -1
  166. package/geometry/operators/convexHullOperator.js +1 -1
  167. package/geometry/operators/crossesOperator.js +1 -1
  168. package/geometry/operators/cutOperator.js +1 -1
  169. package/geometry/operators/densifyOperator.js +1 -1
  170. package/geometry/operators/differenceOperator.js +1 -1
  171. package/geometry/operators/disjointOperator.js +1 -1
  172. package/geometry/operators/distanceOperator.js +1 -1
  173. package/geometry/operators/equalsOperator.js +1 -1
  174. package/geometry/operators/extendOperator.js +1 -1
  175. package/geometry/operators/generalizeOperator.js +1 -1
  176. package/geometry/operators/geodesicBufferOperator.js +1 -1
  177. package/geometry/operators/geodeticAreaOperator.js +1 -1
  178. package/geometry/operators/geodeticDensifyOperator.js +1 -1
  179. package/geometry/operators/geodeticLengthOperator.js +1 -1
  180. package/geometry/operators/gx/operatorAffineTransform.js +1 -1
  181. package/geometry/operators/gx/operatorAlphaShape.js +1 -1
  182. package/geometry/operators/gx/operatorAutoComplete.js +1 -1
  183. package/geometry/operators/gx/operatorBoundary.js +1 -1
  184. package/geometry/operators/gx/operatorBuffer.js +1 -1
  185. package/geometry/operators/gx/operatorConvexHull.js +1 -1
  186. package/geometry/operators/gx/operatorGraphicBuffer.js +1 -1
  187. package/geometry/operators/gx/operatorIntegrate.js +1 -1
  188. package/geometry/operators/gx/operatorLabelPoint.js +1 -1
  189. package/geometry/operators/gx/operatorLinesToPolygons.js +1 -1
  190. package/geometry/operators/gx/operatorLocateBetween.js +1 -1
  191. package/geometry/operators/gx/operatorMinimumBoundingCircle.js +1 -1
  192. package/geometry/operators/gx/operatorOffset.js +1 -1
  193. package/geometry/operators/gx/operatorPolygonOverlay.js +1 -1
  194. package/geometry/operators/gx/operatorPolygonSlicer.js +1 -1
  195. package/geometry/operators/gx/operatorSinglePartToMultiPart.js +1 -1
  196. package/geometry/operators/gx/operatorSymmetricDifference.js +1 -1
  197. package/geometry/operators/intersectionOperator.js +1 -1
  198. package/geometry/operators/intersectsOperator.js +1 -1
  199. package/geometry/operators/isNearOperator.js +1 -1
  200. package/geometry/operators/json/disjointOperator.js +1 -1
  201. package/geometry/operators/lengthOperator.js +1 -1
  202. package/geometry/operators/offsetOperator.js +1 -1
  203. package/geometry/operators/overlapsOperator.js +1 -1
  204. package/geometry/operators/proximityOperator.js +1 -1
  205. package/geometry/operators/relateOperator.js +1 -1
  206. package/geometry/operators/reshapeOperator.js +1 -1
  207. package/geometry/operators/simplifyOperator.js +1 -1
  208. package/geometry/operators/support/apiConverter.js +1 -1
  209. package/geometry/operators/support/jsonConverter.js +1 -1
  210. package/geometry/operators/symmetricDifferenceOperator.js +1 -1
  211. package/geometry/operators/touchesOperator.js +1 -1
  212. package/geometry/operators/unionOperator.js +1 -1
  213. package/geometry/operators/withinOperator.js +1 -1
  214. package/geometry/support/contains.js +1 -1
  215. package/interfaces.d.ts +56 -0
  216. package/kernel.js +1 -1
  217. package/layers/KMLLayer.js +1 -1
  218. package/layers/WCSLayer.js +1 -1
  219. package/layers/graphics/sources/ParquetSource.js +1 -1
  220. package/layers/support/parquetLayerUtils.js +1 -1
  221. package/layers/support/rasterDatasets/WCSRaster.js +1 -1
  222. package/layers/support/rasterFormats/RasterCodec.js +1 -1
  223. package/layers/support/rasterFormats/TiffDecoder.js +1 -1
  224. package/layers/support/wmtsUtils.js +1 -1
  225. package/libs/parquet/parquet.js +1 -1
  226. package/package.json +3 -3
  227. package/smartMapping/renderers/support/utils.js +1 -1
  228. package/smartMapping/symbology/support/Theme.js +1 -1
  229. package/support/revision.js +1 -1
  230. package/views/2d/layers/features/FeatureContainer.js +1 -1
  231. package/views/2d/layers/features/FeaturePipelineWorker.js +1 -1
  232. package/views/2d/layers/features/Processor.js +1 -1
  233. package/views/2d/layers/features/sources/FeatureSource.js +1 -1
  234. package/views/2d/layers/features/sources/strategies/ParquetLoadStrategy.js +1 -1
  235. package/views/2d/layers/features/sources/strategies/chunks/SourceChunkStore.js +1 -1
  236. package/views/3d/interactive/measurementTools/areaMeasurement3D/AreaMeasurement3DView.js +1 -1
  237. package/views/3d/support/DisplayQualityProfile.js +1 -1
  238. package/views/3d/webgl-engine/core/shaderModules/interfaces.js +1 -1
  239. package/views/3d/webgl-engine/lib/Octree.js +1 -1
  240. package/views/SelectionManager.js +1 -1
  241. package/widgets/BatchAttributeForm.js +1 -1
  242. package/widgets/Feature/support/featureUtils.js +1 -1
  243. package/widgets/LayerList/LayerListItem.js +1 -1
  244. package/widgets/LayerList/support/layerListUtils.js +1 -1
  245. package/widgets/Legend/support/heatmapRampUtils.js +1 -1
  246. package/widgets/OrientedImageryViewer/OrientedImageryViewerVisibleElements.js +1 -1
  247. package/widgets/OrientedImageryViewer.js +1 -1
  248. package/widgets/support/widgetUtils.js +1 -1
  249. package/assets/esri/core/workers/chunks/015285436ca965f94e17.js +0 -1
  250. package/assets/esri/core/workers/chunks/048d296efa26ccd79056.js +0 -1
  251. package/assets/esri/core/workers/chunks/0e0b978459d70b15acb5.js +0 -1
  252. package/assets/esri/core/workers/chunks/10fa211987b16fd71a1a.js +0 -1
  253. package/assets/esri/core/workers/chunks/200a5f1864c2c2f7536c.js +0 -1
  254. package/assets/esri/core/workers/chunks/23a697d48f6e45cc033e.js +0 -1
  255. package/assets/esri/core/workers/chunks/29b610ff44708e044cbd.js +0 -1
  256. package/assets/esri/core/workers/chunks/3600125c58d5d04c515a.js +0 -1
  257. package/assets/esri/core/workers/chunks/457d4abc938d14f28e31.js +0 -1
  258. package/assets/esri/core/workers/chunks/4b5dbdcad438cb2dd4bf.js +0 -1
  259. package/assets/esri/core/workers/chunks/69efc716991a407c3d23.js +0 -1
  260. package/assets/esri/core/workers/chunks/6e254e846e284223ef63.js +0 -1
  261. package/assets/esri/core/workers/chunks/785610aa615198fd3815.js +0 -1
  262. package/assets/esri/core/workers/chunks/7bf7aace72f81f5de4e4.js +0 -1
  263. package/assets/esri/core/workers/chunks/7ea3d652536e1d79dfc6.js +0 -1
  264. package/assets/esri/core/workers/chunks/816c9c81352cd0ca8ce8.js +0 -1
  265. package/assets/esri/core/workers/chunks/9291508232b23f030178.js +0 -1
  266. package/assets/esri/core/workers/chunks/9fc49968dea8e2b64f3e.js +0 -1
  267. package/assets/esri/core/workers/chunks/a0b3d70a1b0360084593.js +0 -1
  268. package/assets/esri/core/workers/chunks/a100fb789d72410f8d4f.js +0 -2
  269. package/assets/esri/core/workers/chunks/b4d76d46661aba356ea3.js +0 -1
  270. package/assets/esri/core/workers/chunks/cb3af81e1fe6405c4885.js +0 -1
  271. package/assets/esri/core/workers/chunks/cbf57abb537e86c1dd7f.js +0 -1
  272. package/assets/esri/core/workers/chunks/cebdf2f88c4d2ad8baab.js +0 -1
  273. package/assets/esri/core/workers/chunks/d56d77125798beb7e493.js +0 -1
  274. package/assets/esri/core/workers/chunks/d82b3e2905cab511ff3a.js +0 -2
  275. package/assets/esri/core/workers/chunks/e2f91098793b8742fae6.js +0 -1
  276. package/assets/esri/core/workers/chunks/f25c04cf1a4bc1d2636a.js +0 -1
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.32/esri/copyright.txt for details.
4
4
  */
5
- import{a as e,c as t,b as s,n as i,L as n,S as h}from"./QuadraticBezier.js";import{G as r,i as a,t as m,g as o,a as x}from"./Geometry.js";import{m as c,P as p,s as l,c as _}from"./Transformation2D.js";function g(e,t,s,i,n){return u(e,t,null,s,i,n)}function u(s,i,n,h,c,p){const l=s.getGeometryType();if(l===r.enumPoint){const e=s.getXY();return i.contains(e)?s:s.createInstance()}if(l===r.enumEnvelope){const t=e.constructEmpty();if(s.queryEnvelope(t),t.intersect(i)){const e=s.clone();return e.setEnvelope(t),e}return s.createInstance()}if(s.isEmpty())return s;if(i.isEmpty())return s.createInstance();const _=i.clone();{const t=new e;if(s.queryLooseEnvelope(t),_.containsEnvelope(t))return s;if(!_.isIntersecting(t))return s.createInstance();0===c&&(t.intersect(_),t.inflate(Math.max(.1*t.maxDimension(),1)),t.intersect(_),_.assign(t))}let u=h;if((null!==n||Number.isNaN(u))&&(u=t(n,_,!1).total()),l===r.enumGeometryCollection){const e=s,t=s.createInstance();for(let s=0,i=e.getGeometryCount();s<i;s++){const i=e.getGeometry(s);if(i.isEmpty())continue;const n=g(i,_,u,c,p);n.isEmpty()||(n===i?t.addGeometry(n.clone()):t.addGeometry(n))}return t}a(l)||m("Clip: geometry not supported");const y=s.getImpl().getAccelerators();if(null!==y){const e=y.getRasterizedGeometry();o(null===e)}switch(l){case r.enumMultiPoint:{const e=s;let t;const i=e.getPointCount(),n=e.getImpl().getAttributeStreamRef(0);let h=0;for(let s=0;s<i;s++){const i=n.readPoint2D(2*s);_.contains(i)||(0===h&&(t=e.createInstance()),h<s&&t.addPoints(e,h,s),h=s+1)}return h>0&&t.addPoints(e,h,i),0===h?e:(o(null!==t),t)}case r.enumPolygon:case r.enumPolyline:return f(s,_,u,c,p);default:x("")}}function y(t,s,i,n,h,r){const a=new v(s,r),m=new e;return t.queryLooseEnvelope(m),s.containsEnvelope(m)?t:s.isIntersecting(m)?a.clipPolesOut(t,h):t.createInstance()}function f(e,t,s,i,n){return new v(t,n).clipMultiPath2(e,s,i)}class v{constructor(t,n){this.m_shape=new s,this.m_geometry=i,this.m_verticesOnExtentIndex=-1,this.m_verticesOnExtent=[],this.m_progressCounter=0,this.m_extent=new e(t),this.m_progressTracker=n}progress_(){}clipMultiPath2(e,t,s){return e.getGeometryType()===r.enumPolygon?this.clipPolygonOrProjectedPolyline2(e,s):this.clipPolyline(e,t)}clipPolygonOrProjectedPolyline2(t,s){const h=t.getGeometryType()===r.enumPolyline;if(0===this.m_extent.width()||0===this.m_extent.height())return t.createInstance();const a=e.constructEmpty();t.queryLooseEnvelope(a),this.m_geometry=h?this.m_shape.addGeometry(t):this.m_shape.addGeometry(t,this.m_extent);const m=e.constructEmpty(),x=e.constructEmpty(),l=new p,_=new p,g=new Array(9),u=new Array(9),y=c(p,9);let f=null;const d=new n,P=[];let V=!1;for(let e=0;!V&&e<4;e++){let t=!1;const s=!!(1&e);let n=0;switch(e){case 0:n=this.m_extent.xmin,t=a.xmin<=n&&a.xmax>=n;break;case 1:n=this.m_extent.ymin,t=a.ymin<=n&&a.ymax>=n;break;case 2:n=this.m_extent.xmax,t=a.xmin<=n&&a.xmax>=n;break;case 3:n=this.m_extent.ymax,t=a.ymin<=n&&a.ymax>=n}if(t){V=!0;for(let t=this.m_shape.getFirstPath(this.m_geometry);t!==i;){let r=!0,a=-1,c=-1;const p=this.m_shape.getFirstVertex(t);let E=p;do{this.progress_(),f=this.m_shape.getSegment(E);let t=f;if(null===t){const e=this.m_shape.getNextVertex(E);if(e===i){o(h),0===a&&P.push(E);break}this.m_shape.queryXY(E,l),d.setStartXY(l),this.m_shape.queryXY(e,_),d.setEndXY(_),t=d}t.queryLooseEnvelope(m);let p=v.checkSegmentIntersection(m,e,n);t.isCurve()&&0===p&&t.isCurve()&&(d.setStartXY(t.getStartXY()),d.setEndXY(t.getEndXY()),this.m_shape.replaceCurveWithLine(E),t=d,d.queryEnvelope(m),p=v.checkSegmentIntersection(m,e,n));let I=0,X=i;if(-1===p){const i=t.intersectionWithAxis2D(s,n,g,u);if(i>0){let e=null;if(t.isCurve()){e=y,o(i<=9);for(let e=0;e<i;e++)s?y[e].setCoords(g[e],n):y[e].setCoords(n,g[e]);I=this.m_shape.splitSegmentAxisAware(E,u,i,e,s?1:0)}else I=this.m_shape.splitSegmentAxisAware(E,u,i,null,-1)}else I=0;I+=1;let h=E,m=this.m_shape.getNextVertex(h);t=null;for(let t=0;t<I;t++){this.m_shape.queryXY(h,l),this.m_shape.queryXY(m,_),f=this.m_shape.getSegment(h);let t=f;null===t&&(d.setStartXY(l),d.setEndXY(_),t=d),t.queryEnvelope(x);let i=v.checkSegmentIntersection(x,e,n);if(t.isCurve()&&0===i&&(this.m_shape.replaceCurveWithLine(h),d.setStartXY(l),d.setEndXY(_),t=d,t.queryEnvelope(x),i=v.checkSegmentIntersection(x,e,n)),-1===i){if(s){Math.abs(l.y-n)<Math.abs(_.y-n)?(l.y=n,this.m_shape.setXY(h,l)):(_.y=n,this.m_shape.setXY(m,_))}else{Math.abs(l.x-n)<Math.abs(_.x-n)?(l.x=n,this.m_shape.setXY(h,l)):(_.x=n,this.m_shape.setXY(m,_))}f=this.m_shape.getSegment(h),t=f,null===t&&(d.setStartXY(l),d.setEndXY(_),t=d),t.queryEnvelope(x),i=v.checkSegmentIntersection(x,e,n),-1===i&&(i=v.checkSegmentIntersectionLoose(x,e,n))}const o=a;a=i,-1===c&&(c=a),0===o&&1===a||1===o&&0===a||0===o&&0===a&&P.push(h),1===a&&(V=!1,r=!1),h=m,X=h,m=this.m_shape.getNextVertex(m)}}if(0===I){const e=a;a=p,-1===c&&(c=a),0===e&&a>=1||e>=1&&0===a||0===e&&0===a&&P.push(E),1===a&&(V=!1,r=!1),X=this.m_shape.getNextVertex(E)}if(E=X,P.length>=256){for(let e=1,t=P.length-1;e<t;e++){const t=P[e];h?this.m_shape.snapVertexForPoleClipping(t,n):this.m_shape.removeVertex(t,!1)}P[1]=P.at(-1),P.length=2}}while(E!==p);if(!r){0!==c||!h&&0!==a&&2!==a||P.push(p);for(let e=0,t=P.length;e<t;e++){const t=P[e];h?this.m_shape.snapVertexForPoleClipping(t,n):this.m_shape.removeVertex(t,!1)}}P.length=0,t=r||0===this.m_shape.getPathSize(t)?this.m_shape.removePath(t):this.m_shape.getNextPath(t)}}}if(V)return t.createInstance();f=null,h?this.removeSpikesAlongPoles():this.resolveBoundaryOverlaps(),s>0&&this.densifyAlongClipExtent(s);const E=this.m_shape.getGeometry(this.m_geometry);if(E.getGeometryType()===r.enumPolygon){E.setFillRule(t.getFillRule())}return E}clipPolyline(t,s){const i=e.constructEmpty(),n=e.constructEmpty(),r=new Array(9),a=new Array(9),m=new h;let o=t;const x=e.constructEmpty();t.queryLooseEnvelope(x);for(let e=0;e<4;e++){let s=!1;const h=!!(1&e);let c=0;switch(e){case 0:c=this.m_extent.xmin,s=x.xmin<=c&&x.xmax>=c;break;case 1:c=this.m_extent.ymin,s=x.ymin<=c&&x.ymax>=c;break;case 2:c=this.m_extent.xmax,s=x.xmin<=c&&x.xmax>=c;break;case 3:c=this.m_extent.ymax,s=x.ymin<=c&&x.ymax>=c}if(!s)continue;const l=o;o=t.createInstance();const _=l.getImpl().querySegmentIterator();_.resetToFirstPath();const g=new p,u=new p;for(;_.nextPath();){let t=-1,s=!0;for(;_.hasNextSegment();){this.progress_();const x=_.nextSegment(),p=x.isDegenerate(0);x.queryLooseEnvelope(i);const l=v.checkSegmentIntersection(i,e,c);if(-1===l){const i=x.intersectionWithAxis2D(h,c,r,a);let l=0;g.assign(x.getStartXY());for(let _=0;_<=i;_++){const y=_<i?a[_]:1;if(l===y)continue;x.queryCut(l,y,m,!1);const f=m.get();let d=!1;if(f.getStartXY().equals(g)||(f.setStartXY(g),d=!0),_<i&&(h?(u.x=r[_],u.y=c):(u.x=c,u.y=r[_]),f.getEndXY().equals(u)||(f.setEndXY(u),d=!0)),d&&f.normalizeAfterEndpointChange(),!p&&f.isDegenerate(0))continue;f.queryEnvelope(n);let P=v.checkSegmentIntersection(n,e,c);if(-1===P){const t=f.getStartXY(),s=f.getEndXY();if(d=!1,h){Math.abs(t.y-c)<Math.abs(s.y-c)?(t.y=c,f.setStartXY(t),t.equals(f.getStartXY())||(f.setStartXY(t),d=!0)):(s.y=c,s.equals(f.getEndXY())||(f.setEndXY(s),d=!0))}else{Math.abs(t.x-c)<Math.abs(s.x-c)?(t.x=c,t.equals(f.getStartXY())||(f.setStartXY(t),d=!0)):(s.x=c,s.equals(f.getEndXY())||(f.setEndXY(s),d=!0))}d&&f.normalizeAfterEndpointChange(),f.queryEnvelope(n),P=v.checkSegmentIntersection(n,e,c),-1===P&&(P=v.checkSegmentIntersectionLoose(n,e,c))}g.assign(f.getEndXY()),l=y,t=P,t>=1?(o.addSegment(f,s),s=!1):s=!0}}else t=l,t>=1?(o.addSegment(x,s),s=!1):s=!0}}}return o}static checkSegmentIntersection(e,t,s){switch(t){case 0:return e.xmin<s&&e.xmax<=s?0:e.xmin>=s?e.xmax===s?2:1:-1;case 1:return e.ymin<s&&e.ymax<=s?0:e.ymin>=s?e.ymax===s?2:1:-1;case 2:return e.xmin>=s&&e.xmax>s?0:e.xmax<=s?e.xmin===s?2:1:-1;case 3:return e.ymin>=s&&e.ymax>s?0:e.ymax<=s?e.ymin===s?2:1:-1}return x(""),0}static checkSegmentIntersectionLoose(e,t,s){switch(t){case 0:{const t=Math.abs(e.xmin-s),i=Math.abs(e.xmax-s);return e.xmin<s?t>i?0:1:(x(""),1)}case 1:{const t=Math.abs(e.ymin-s),i=Math.abs(e.ymax-s);return e.ymin<s?t>i?0:1:(x(""),1)}case 2:{const t=Math.abs(e.xmin-s),i=Math.abs(e.xmax-s);return e.xmax>s?t<i?0:1:(x(""),1)}case 3:{const t=Math.abs(e.ymin-s),i=Math.abs(e.ymax-s);return e.ymax>s?t<i?0:1:(x(""),1)}}return x(""),0}resolveBoundaryOverlaps(){this.m_verticesOnExtentIndex=-1,this.splitSegments(!1,this.m_extent.xmin),this.splitSegments(!1,this.m_extent.xmax),this.splitSegments(!0,this.m_extent.ymin),this.splitSegments(!0,this.m_extent.ymax),this.m_verticesOnExtent.length=0,this.m_verticesOnExtentIndex=this.m_shape.createUserIndex();const e=new p;for(let t=this.m_shape.getFirstPath(this.m_geometry);t!==i;t=this.m_shape.getNextPath(t)){let s=this.m_shape.getFirstVertex(t);for(let i=0,n=this.m_shape.getPathSize(t);i<n;i++,s=this.m_shape.getNextVertex(s))this.progress_(),this.m_shape.queryXY(s,e),this.m_extent.xmin!==e.x&&this.m_extent.xmax!==e.x&&this.m_extent.ymin!==e.y&&this.m_extent.ymax!==e.y||(this.m_shape.setUserIndex(s,this.m_verticesOnExtentIndex,this.m_verticesOnExtent.length),this.m_verticesOnExtent.push(s))}this.dbgCheckPathFirst(),this.resolveOverlaps(!1,this.m_extent.xmin),this.dbgCheckPathFirst(),this.resolveOverlaps(!1,this.m_extent.xmax),this.dbgCheckPathFirst(),this.resolveOverlaps(!0,this.m_extent.ymin),this.dbgCheckPathFirst(),this.resolveOverlaps(!0,this.m_extent.ymax),this.fixPaths()}densifyAlongClipExtent(e){const t=new p(0,0),s=new p(0,0),n=new Array(2048);for(let h=this.m_shape.getFirstPath(this.m_geometry);h!==i;h=this.m_shape.getNextPath(h)){const i=this.m_shape.getFirstVertex(h);let r=i;do{const i=this.m_shape.getNextVertex(r);this.m_shape.queryXY(r,t);let h=-1;if(t.x===this.m_extent.xmin?(this.m_shape.queryXY(i,s),s.x===this.m_extent.xmin&&(h=1)):t.x===this.m_extent.xmax&&(this.m_shape.queryXY(i,s),s.x===this.m_extent.xmax&&(h=1)),t.y===this.m_extent.ymin?(this.m_shape.queryXY(i,s),s.y===this.m_extent.ymin&&(h=0)):t.y===this.m_extent.ymax&&(this.m_shape.queryXY(i,s),s.y===this.m_extent.ymax&&(h=0)),-1===h){r=i;continue}if(this.isCurve(r)){r=i;continue}const a=t.clone(),m=new p(0,0);if(h){const i=t.y-this.m_extent.ymin;m.y=l(s.y-t.y),a.y=e*_(Math.floor(Math.abs(i)/e),i)+this.m_extent.ymin,m.y<0&&(a.y+=e)}else{const i=t.x-this.m_extent.xmin;m.x=l(s.x-t.x),a.x=e*_(Math.floor(Math.abs(i)/e),i)+this.m_extent.xmin,m.x<0&&(a.x+=e)}const c=h?s.y-t.y:s.x-t.x,g=Math.abs(c);if(g/e>65536&&x(""),g>0){const s=Math.trunc(g/e)+2;n.length<s&&(n.length=s);let i=0;for(let r=0;;r++){const s=a.add(m.mul(r*e)),x=(h?s.y-t.y:s.x-t.x)/c;if(x>=1)break;x<=0||(o(i<=n.length),n[i]=x,i++)}0!==i&&this.m_shape.splitSegment(r,n,i)}r=i}while(r!==i)}}splitSegments(e,t){let s=-1;const n=new p,h=[];for(let p=this.m_shape.getFirstPath(this.m_geometry);p!==i;p=this.m_shape.getNextPath(p)){let r=this.m_shape.getFirstVertex(p),a=i;for(let i=0,m=this.m_shape.getPathSize(p);i<m;i++,r=a)if(this.progress_(),a=this.m_shape.getNextVertex(r),this.m_shape.queryXY(r,n),(e?n.y===t:n.x===t)&&(this.m_shape.queryXY(a,n),e?n.y===t:n.x===t)){if(this.isCurve(r))continue;-1===s&&(s=this.m_shape.createUserIndex()),1!==this.m_shape.getUserIndex(r,s)&&(h.push(r),this.m_shape.setUserIndex(r,s,1)),1!==this.m_shape.getUserIndex(a,s)&&(h.push(a),this.m_shape.setUserIndex(a,s,1))}}if(-1!==s&&this.m_shape.removeUserIndex(s),h.length<3)return;h.sort(((e,t)=>this.compareVertices(e,t)));const r=new p,a=new p,m=new p;a.setNAN();let o=-1;let x=[],c=[];const l=this.m_shape.createUserIndex(),_=this.m_shape.createUserIndex();for(let i=0,g=h.length;i<g;i++){const s=h[i];if(this.m_shape.queryXY(s,n),!n.isEqualPoint2D(a)){if(-1===o){o=i,a.setCoordsPoint2D(n);continue}for(let n=o;n<i;n++){const s=h[n],i=this.m_shape.getNextVertex(s),m=this.m_shape.getPrevVertex(s);let o=!1;this.m_shape.queryXY(i,r),a.compare(r)<0&&(e?r.y===t:r.x===t)&&(this.isCurve(s)||(x.push(s),o=!0,this.m_shape.setUserIndex(s,_,1))),this.m_shape.queryXY(m,r),a.compare(r)<0&&(e?r.y===t:r.x===t)&&(this.isCurve(m)||(o||x.push(s),this.m_shape.setUserIndex(s,l,1)))}for(let e=0,t=x.length;e<t;e++){const t=x[e],s=this.m_shape.getUserIndex(t,l),i=this.m_shape.getUserIndex(t,_);if(1===s){const e=this.m_shape.getPrevVertex(t);this.m_shape.queryXY(e,m);let s=0;if(!m.isEqualPoint2D(n)){const i=p.distance(a,m);s=p.distance(m,n)/i,0===s?s=Number.EPSILON:1===s&&(s=1-Number.EPSILON),this.m_shape.splitSegment(e,[s],1);const h=this.m_shape.getPrevVertex(t);this.m_shape.setXY(h,n),c.push(h),this.m_shape.setUserIndex(h,l,1),this.m_shape.setUserIndex(h,_,-1)}}if(1===i){const e=this.m_shape.getNextVertex(t);this.m_shape.queryXY(e,m);let s=0;if(!m.isEqualPoint2D(n)){const e=p.distance(a,m);s=p.distance(a,n)/e,0===s?s=Number.EPSILON:1===s&&(s=1-Number.EPSILON),this.m_shape.splitSegment(t,[s],1);const i=this.m_shape.getNextVertex(t);this.m_shape.setXY(i,n),c.push(i),this.m_shape.setUserIndex(i,l,-1),this.m_shape.setUserIndex(i,_,1)}}}const s=x;x=c,c=s,c.length=0,o=i,a.setCoordsPoint2D(n)}}this.m_shape.removeUserIndex(l),this.m_shape.removeUserIndex(_)}resolveOverlaps(e,t){const s=new p,n=[];let h=-1;for(let o=0,x=this.m_verticesOnExtent.length;o<x;o++){this.progress_();const r=this.m_verticesOnExtent[o];if(r===i)continue;const a=this.m_shape.getNextVertex(r);if(this.m_shape.queryXY(r,s),(e?s.y===t:s.x===t)&&(this.m_shape.queryXY(a,s),e?s.y===t:s.x===t)){if(this.isCurve(r))continue;-1===h&&(h=this.m_shape.createUserIndex()),-2!==this.m_shape.getUserIndex(r,h)&&(n.push(r),this.m_shape.setUserIndex(r,h,-2)),-2!==this.m_shape.getUserIndex(a,h)&&(n.push(a),this.m_shape.setUserIndex(a,h,-2))}}if(0===n.length)return void(-1!==h&&this.m_shape.removeUserIndex(h));o(-1!==h),n.sort(((e,t)=>this.compareVertices(e,t)));for(let i=0,o=n.length;i<o;i++){const e=n[i];this.m_shape.setUserIndex(e,h,i)}const r=new p,a=new p;a.setNAN();let m=-1;for(let o=0,x=n.length;o<x;o++){this.progress_();const x=n[o];if(x!==i&&(this.m_shape.queryXY(x,s),!s.isEqualPoint2D(a))){if(-1!==m)for(;;){let s=!1;const x=o;for(let c=m;c<x;c++){const m=n[c];if(m===i)continue;let x=i;const p=this.m_shape.getNextVertex(m);this.m_shape.queryXY(p,r),a.compare(r)<0&&(e?r.y===t:r.x===t)&&(this.isCurve(m)||(x=p));let l=i;const _=this.m_shape.getPrevVertex(m);if(this.m_shape.queryXY(_,r),a.compare(r)<0&&(e?r.y===t:r.x===t)&&(this.isCurve(_)||(l=_)),x===i||l===i){if(x!==i||l!==i){for(let p=c+1;p<o;p++){const o=n[p];if(o===i)continue;const c=this.m_shape.getNextVertex(o);let _=i;this.m_shape.queryXY(c,r),a.compare(r)<0&&(e?r.y===t:r.x===t)&&(this.isCurve(o)||(_=c));const g=this.m_shape.getPrevVertex(o);let u=i;if(this.m_shape.queryXY(g,r),a.compare(r)<0&&(e?r.y===t:r.x===t)&&(this.isCurve(g)||(u=g)),_!==i&&u!==i){this.beforeRemoveVertex(o,n,h),this.m_shape.removeVertex(o,!1),this.beforeRemoveVertex(_,n,h),this.m_shape.removeVertex(_,!1),s=!0;break}if(x!==i&&u!==i){this.removeOverlap(n,m,x,o,u,h),s=!0;break}if(l!==i&&_!==i){this.removeOverlap(n,o,_,m,l,h),s=!0;break}}if(s)break}}else this.beforeRemoveVertex(m,n,h),this.m_shape.removeVertex(m,!1),this.beforeRemoveVertex(x,n,h),this.m_shape.removeVertex(x,!1),s=!0}if(!s)break}m=o,a.setCoordsPoint2D(s)}}this.m_shape.removeUserIndex(h)}beforeRemoveVertex(e,t,s){let n=this.m_shape.getUserIndex(e,s);o(n>=0),t[n]=i,n=this.m_shape.getUserIndex(e,this.m_verticesOnExtentIndex),o(n>=0),this.m_verticesOnExtent[n]=i;const h=this.m_shape.getPathFromVertex(e);if(h!==i){this.m_shape.getFirstVertex(h)===e&&(this.m_shape.setFirstVertex(h,i),this.m_shape.setLastVertex(h,i))}}removeOverlap(e,t,s,i,n,h){this.m_shape.setNextVertex(t,i),this.m_shape.setPrevVertex(i,t),this.m_shape.setPrevVertex(s,n),this.m_shape.setNextVertex(n,s),this.beforeRemoveVertex(i,e,h),this.m_shape.removeVertexInternal(i,!1),this.beforeRemoveVertex(n,e,h),this.m_shape.removeVertexInternal(n,!0)}removeSpikesAlongPoles(){this.removeSpikesOnPole(this.m_extent.ymin),this.removeSpikesOnPole(this.m_extent.ymax)}removeSpikesOnPole(e){for(let t=this.m_shape.getFirstPath(this.m_geometry);t!==i;t=this.m_shape.getNextPath(t)){const s=this.m_shape.getPathSize(t);if(s<3)continue;let i=this.m_shape.getFirstVertex(t);const n=new p;this.m_shape.queryXY(i,n);let h=n.y===e&&!this.isCurve(i);i=this.m_shape.getNextVertex(i);const r=new p;this.m_shape.queryXY(i,r);let a=r.y===e&&!this.isCurve(i);i=this.m_shape.getNextVertex(i);const m=new p;for(let t=0,o=s-2;t<o;t++,i=this.m_shape.getNextVertex(i)){this.progress_(),this.m_shape.queryXY(i,m);const t=m.y===e;if(a&&h&&t){if((r.x-n.x)*(m.x-r.x)<=0){this.m_shape.removeVertex(this.m_shape.getPrevVertex(i),!1),r.setCoordsPoint2D(m),a=t&&!this.isCurve(i);continue}}n.setCoordsPoint2D(r),h=a,r.setCoordsPoint2D(m),a=t&&!this.isCurve(i)}}}fixPaths(){for(let h=0,r=this.m_verticesOnExtent.length;h<r;h++){const e=this.m_verticesOnExtent[h];e!==i&&this.m_shape.setPathToVertex(e,i)}const e=this.m_shape.hasCurves();let t=0,s=0;for(let h=this.m_shape.getFirstPath(this.m_geometry);h!==i;){const e=this.m_shape.getFirstVertex(h);if(e===i||h!==this.m_shape.getPathFromVertex(e)){const e=h;h=this.m_shape.getNextPath(h),this.m_shape.setFirstVertex(e,i),this.m_shape.removePathOnly(e);continue}let n=e,r=0;do{this.m_shape.setPathToVertex(n,h),r++,n=this.m_shape.getNextVertex(n)}while(n!==e);this.m_shape.setRingAreaValid(h,!1),this.m_shape.setLastVertex(h,this.m_shape.getPrevVertex(e)),this.m_shape.setPathSize(h,r),s+=r,t++,h=this.m_shape.getNextPath(h)}for(let h=0,r=this.m_verticesOnExtent.length;h<r;h++){let n=this.m_verticesOnExtent[h];if(n===i)continue;let r=this.m_shape.getPathFromVertex(n);if(r!==i)continue;r=this.m_shape.insertPath(this.m_geometry,i);let a=!1,m=0;const x=n;do{this.m_shape.setPathToVertex(n,r),m++,e&&m<=2&&(a||=this.isCurve(n)),n=this.m_shape.getNextVertex(n)}while(n!==x);if(a?0===m:m<=2){let e=this.m_shape.getUserIndex(x,this.m_verticesOnExtentIndex);o(e>=0),this.m_verticesOnExtent[e]=i;const t=this.m_shape.removeVertex(x,!1);2===m&&(e=this.m_shape.getUserIndex(t,this.m_verticesOnExtentIndex),e>=0&&(this.m_verticesOnExtent[e]=i),this.m_shape.removeVertex(t,!1));const s=r;r=this.m_shape.getNextPath(r),this.m_shape.setFirstVertex(s,i),this.m_shape.removePathOnly(s)}else this.m_shape.setClosedPath(r,!0),this.m_shape.setPathSize(r,m),this.m_shape.setFirstVertex(r,x),this.m_shape.setLastVertex(r,this.m_shape.getPrevVertex(x)),this.m_shape.setRingAreaValid(r,!1),s+=m,t++}this.m_shape.setGeometryPathCount(this.m_geometry,t),this.m_shape.setGeometryVertexCount(this.m_geometry,s);let n=0;for(let h=this.m_shape.getFirstGeometry();h!==i;h=this.m_shape.getNextGeometry(h))n+=this.m_shape.getPointCount(h);this.m_shape.setTotalPointCount(n)}dbgCheckPathFirst(){}isCurve(e){return null!==this.m_shape.getSegment(e)}compareVertices(e,t){const s=new p;this.m_shape.queryXY(e,s);const i=new p;this.m_shape.queryXY(t,i);return s.compare(i)}clipPolesOut(e,t){return this.clipPolygonOrProjectedPolyline2(e,t)}}export{u as a,y as b,g as c};
5
+ import{a as e,b as t,d as s,n as i,L as n,S as h}from"./QuadraticBezier.js";import{G as r,i as a,t as m,g as o,b as x}from"./Geometry.js";import{m as p,P as c,s as l,c as _}from"./Transformation2D.js";function g(e,t,s,i,n){return u(e,t,null,s,i,n)}function u(s,i,n,h,p,c){const l=s.getGeometryType();if(l===r.enumPoint){const e=s.getXY();return i.contains(e)?s:s.createInstance()}if(l===r.enumEnvelope){const t=e.constructEmpty();if(s.queryEnvelope(t),t.intersect(i)){const e=s.clone();return e.setEnvelope(t),e}return s.createInstance()}if(s.isEmpty())return s;if(i.isEmpty())return s.createInstance();const _=i.clone();{const t=new e;if(s.queryLooseEnvelope(t),_.containsEnvelope(t))return s;if(!_.isIntersecting(t))return s.createInstance();0===p&&(t.intersect(_),t.inflate(Math.max(.1*t.maxDimension(),1)),t.intersect(_),_.assign(t))}let u=h;if((null!==n||Number.isNaN(u))&&(u=t(n,_,!1).total()),l===r.enumGeometryCollection){const e=s,t=s.createInstance();for(let s=0,i=e.getGeometryCount();s<i;s++){const i=e.getGeometry(s);if(i.isEmpty())continue;const n=g(i,_,u,p,c);n.isEmpty()||(n===i?t.addGeometry(n.clone()):t.addGeometry(n))}return t}a(l)||m("Clip: geometry not supported");const y=s.getImpl().getAccelerators();if(null!==y){const e=y.getRasterizedGeometry();o(null===e)}switch(l){case r.enumMultiPoint:{const e=s;let t;const i=e.getPointCount(),n=e.getImpl().getAttributeStreamRef(0);let h=0;for(let s=0;s<i;s++){const i=n.readPoint2D(2*s);_.contains(i)||(0===h&&(t=e.createInstance()),h<s&&t.addPoints(e,h,s),h=s+1)}return h>0&&t.addPoints(e,h,i),0===h?e:(o(null!==t),t)}case r.enumPolygon:case r.enumPolyline:return f(s,_,u,p,c);default:x("")}}function y(t,s,i,n,h,r){const a=new v(s,r),m=new e;return t.queryLooseEnvelope(m),s.containsEnvelope(m)?t:s.isIntersecting(m)?a.clipPolesOut(t,h):t.createInstance()}function f(e,t,s,i,n){return new v(t,n).clipMultiPath2(e,s,i)}class v{constructor(t,n){this.m_shape=new s,this.m_geometry=i,this.m_verticesOnExtentIndex=-1,this.m_verticesOnExtent=[],this.m_progressCounter=0,this.m_extent=new e(t),this.m_progressTracker=n}progress_(){}clipMultiPath2(e,t,s){return e.getGeometryType()===r.enumPolygon?this.clipPolygonOrProjectedPolyline2(e,s):this.clipPolyline(e,t)}clipPolygonOrProjectedPolyline2(t,s){const h=t.getGeometryType()===r.enumPolyline;if(0===this.m_extent.width()||0===this.m_extent.height())return t.createInstance();const a=e.constructEmpty();t.queryLooseEnvelope(a),this.m_geometry=h?this.m_shape.addGeometry(t):this.m_shape.addGeometry(t,this.m_extent);const m=e.constructEmpty(),x=e.constructEmpty(),l=new c,_=new c,g=new Array(9),u=new Array(9),y=p(c,9);let f=null;const d=new n,P=[];let V=!1;for(let e=0;!V&&e<4;e++){let t=!1;const s=!!(1&e);let n=0;switch(e){case 0:n=this.m_extent.xmin,t=a.xmin<=n&&a.xmax>=n;break;case 1:n=this.m_extent.ymin,t=a.ymin<=n&&a.ymax>=n;break;case 2:n=this.m_extent.xmax,t=a.xmin<=n&&a.xmax>=n;break;case 3:n=this.m_extent.ymax,t=a.ymin<=n&&a.ymax>=n}if(t){V=!0;for(let t=this.m_shape.getFirstPath(this.m_geometry);t!==i;){let r=!0,a=-1,p=-1;const c=this.m_shape.getFirstVertex(t);let E=c;do{this.progress_(),f=this.m_shape.getSegment(E);let t=f;if(null===t){const e=this.m_shape.getNextVertex(E);if(e===i){o(h),0===a&&P.push(E);break}this.m_shape.queryXY(E,l),d.setStartXY(l),this.m_shape.queryXY(e,_),d.setEndXY(_),t=d}t.queryLooseEnvelope(m);let c=v.checkSegmentIntersection(m,e,n);t.isCurve()&&0===c&&t.isCurve()&&(d.setStartXY(t.getStartXY()),d.setEndXY(t.getEndXY()),this.m_shape.replaceCurveWithLine(E),t=d,d.queryEnvelope(m),c=v.checkSegmentIntersection(m,e,n));let I=0,X=i;if(-1===c){const i=t.intersectionWithAxis2D(s,n,g,u);if(i>0){let e=null;if(t.isCurve()){e=y,o(i<=9);for(let e=0;e<i;e++)s?y[e].setCoords(g[e],n):y[e].setCoords(n,g[e]);I=this.m_shape.splitSegmentAxisAware(E,u,i,e,s?1:0)}else I=this.m_shape.splitSegmentAxisAware(E,u,i,null,-1)}else I=0;I+=1;let h=E,m=this.m_shape.getNextVertex(h);t=null;for(let t=0;t<I;t++){this.m_shape.queryXY(h,l),this.m_shape.queryXY(m,_),f=this.m_shape.getSegment(h);let t=f;null===t&&(d.setStartXY(l),d.setEndXY(_),t=d),t.queryEnvelope(x);let i=v.checkSegmentIntersection(x,e,n);if(t.isCurve()&&0===i&&(this.m_shape.replaceCurveWithLine(h),d.setStartXY(l),d.setEndXY(_),t=d,t.queryEnvelope(x),i=v.checkSegmentIntersection(x,e,n)),-1===i){if(s){Math.abs(l.y-n)<Math.abs(_.y-n)?(l.y=n,this.m_shape.setXY(h,l)):(_.y=n,this.m_shape.setXY(m,_))}else{Math.abs(l.x-n)<Math.abs(_.x-n)?(l.x=n,this.m_shape.setXY(h,l)):(_.x=n,this.m_shape.setXY(m,_))}f=this.m_shape.getSegment(h),t=f,null===t&&(d.setStartXY(l),d.setEndXY(_),t=d),t.queryEnvelope(x),i=v.checkSegmentIntersection(x,e,n),-1===i&&(i=v.checkSegmentIntersectionLoose(x,e,n))}const o=a;a=i,-1===p&&(p=a),0===o&&1===a||1===o&&0===a||0===o&&0===a&&P.push(h),1===a&&(V=!1,r=!1),h=m,X=h,m=this.m_shape.getNextVertex(m)}}if(0===I){const e=a;a=c,-1===p&&(p=a),0===e&&a>=1||e>=1&&0===a||0===e&&0===a&&P.push(E),1===a&&(V=!1,r=!1),X=this.m_shape.getNextVertex(E)}if(E=X,P.length>=256){for(let e=1,t=P.length-1;e<t;e++){const t=P[e];h?this.m_shape.snapVertexForPoleClipping(t,n):this.m_shape.removeVertex(t,!1)}P[1]=P.at(-1),P.length=2}}while(E!==c);if(!r){0!==p||!h&&0!==a&&2!==a||P.push(c);for(let e=0,t=P.length;e<t;e++){const t=P[e];h?this.m_shape.snapVertexForPoleClipping(t,n):this.m_shape.removeVertex(t,!1)}}P.length=0,t=r||0===this.m_shape.getPathSize(t)?this.m_shape.removePath(t):this.m_shape.getNextPath(t)}}}if(V)return t.createInstance();f=null,h?this.removeSpikesAlongPoles():this.resolveBoundaryOverlaps(),s>0&&this.densifyAlongClipExtent(s);const E=this.m_shape.getGeometry(this.m_geometry);if(E.getGeometryType()===r.enumPolygon){E.setFillRule(t.getFillRule())}return E}clipPolyline(t,s){const i=e.constructEmpty(),n=e.constructEmpty(),r=new Array(9),a=new Array(9),m=new h;let o=t;const x=e.constructEmpty();t.queryLooseEnvelope(x);for(let e=0;e<4;e++){let s=!1;const h=!!(1&e);let p=0;switch(e){case 0:p=this.m_extent.xmin,s=x.xmin<=p&&x.xmax>=p;break;case 1:p=this.m_extent.ymin,s=x.ymin<=p&&x.ymax>=p;break;case 2:p=this.m_extent.xmax,s=x.xmin<=p&&x.xmax>=p;break;case 3:p=this.m_extent.ymax,s=x.ymin<=p&&x.ymax>=p}if(!s)continue;const l=o;o=t.createInstance();const _=l.getImpl().querySegmentIterator();_.resetToFirstPath();const g=new c,u=new c;for(;_.nextPath();){let t=-1,s=!0;for(;_.hasNextSegment();){this.progress_();const x=_.nextSegment(),c=x.isDegenerate(0);x.queryLooseEnvelope(i);const l=v.checkSegmentIntersection(i,e,p);if(-1===l){const i=x.intersectionWithAxis2D(h,p,r,a);let l=0;g.assign(x.getStartXY());for(let _=0;_<=i;_++){const y=_<i?a[_]:1;if(l===y)continue;x.queryCut(l,y,m,!1);const f=m.get();let d=!1;if(f.getStartXY().equals(g)||(f.setStartXY(g),d=!0),_<i&&(h?(u.x=r[_],u.y=p):(u.x=p,u.y=r[_]),f.getEndXY().equals(u)||(f.setEndXY(u),d=!0)),d&&f.normalizeAfterEndpointChange(),!c&&f.isDegenerate(0))continue;f.queryEnvelope(n);let P=v.checkSegmentIntersection(n,e,p);if(-1===P){const t=f.getStartXY(),s=f.getEndXY();if(d=!1,h){Math.abs(t.y-p)<Math.abs(s.y-p)?(t.y=p,f.setStartXY(t),t.equals(f.getStartXY())||(f.setStartXY(t),d=!0)):(s.y=p,s.equals(f.getEndXY())||(f.setEndXY(s),d=!0))}else{Math.abs(t.x-p)<Math.abs(s.x-p)?(t.x=p,t.equals(f.getStartXY())||(f.setStartXY(t),d=!0)):(s.x=p,s.equals(f.getEndXY())||(f.setEndXY(s),d=!0))}d&&f.normalizeAfterEndpointChange(),f.queryEnvelope(n),P=v.checkSegmentIntersection(n,e,p),-1===P&&(P=v.checkSegmentIntersectionLoose(n,e,p))}g.assign(f.getEndXY()),l=y,t=P,t>=1?(o.addSegment(f,s),s=!1):s=!0}}else t=l,t>=1?(o.addSegment(x,s),s=!1):s=!0}}}return o}static checkSegmentIntersection(e,t,s){switch(t){case 0:return e.xmin<s&&e.xmax<=s?0:e.xmin>=s?e.xmax===s?2:1:-1;case 1:return e.ymin<s&&e.ymax<=s?0:e.ymin>=s?e.ymax===s?2:1:-1;case 2:return e.xmin>=s&&e.xmax>s?0:e.xmax<=s?e.xmin===s?2:1:-1;case 3:return e.ymin>=s&&e.ymax>s?0:e.ymax<=s?e.ymin===s?2:1:-1}return x(""),0}static checkSegmentIntersectionLoose(e,t,s){switch(t){case 0:{const t=Math.abs(e.xmin-s),i=Math.abs(e.xmax-s);return e.xmin<s?t>i?0:1:(x(""),1)}case 1:{const t=Math.abs(e.ymin-s),i=Math.abs(e.ymax-s);return e.ymin<s?t>i?0:1:(x(""),1)}case 2:{const t=Math.abs(e.xmin-s),i=Math.abs(e.xmax-s);return e.xmax>s?t<i?0:1:(x(""),1)}case 3:{const t=Math.abs(e.ymin-s),i=Math.abs(e.ymax-s);return e.ymax>s?t<i?0:1:(x(""),1)}}return x(""),0}resolveBoundaryOverlaps(){this.m_verticesOnExtentIndex=-1,this.splitSegments(!1,this.m_extent.xmin),this.splitSegments(!1,this.m_extent.xmax),this.splitSegments(!0,this.m_extent.ymin),this.splitSegments(!0,this.m_extent.ymax),this.m_verticesOnExtent.length=0,this.m_verticesOnExtentIndex=this.m_shape.createUserIndex();const e=new c;for(let t=this.m_shape.getFirstPath(this.m_geometry);t!==i;t=this.m_shape.getNextPath(t)){let s=this.m_shape.getFirstVertex(t);for(let i=0,n=this.m_shape.getPathSize(t);i<n;i++,s=this.m_shape.getNextVertex(s))this.progress_(),this.m_shape.queryXY(s,e),this.m_extent.xmin!==e.x&&this.m_extent.xmax!==e.x&&this.m_extent.ymin!==e.y&&this.m_extent.ymax!==e.y||(this.m_shape.setUserIndex(s,this.m_verticesOnExtentIndex,this.m_verticesOnExtent.length),this.m_verticesOnExtent.push(s))}this.dbgCheckPathFirst(),this.resolveOverlaps(!1,this.m_extent.xmin),this.dbgCheckPathFirst(),this.resolveOverlaps(!1,this.m_extent.xmax),this.dbgCheckPathFirst(),this.resolveOverlaps(!0,this.m_extent.ymin),this.dbgCheckPathFirst(),this.resolveOverlaps(!0,this.m_extent.ymax),this.fixPaths()}densifyAlongClipExtent(e){const t=new c(0,0),s=new c(0,0),n=new Array(2048);for(let h=this.m_shape.getFirstPath(this.m_geometry);h!==i;h=this.m_shape.getNextPath(h)){const i=this.m_shape.getFirstVertex(h);let r=i;do{const i=this.m_shape.getNextVertex(r);this.m_shape.queryXY(r,t);let h=-1;if(t.x===this.m_extent.xmin?(this.m_shape.queryXY(i,s),s.x===this.m_extent.xmin&&(h=1)):t.x===this.m_extent.xmax&&(this.m_shape.queryXY(i,s),s.x===this.m_extent.xmax&&(h=1)),t.y===this.m_extent.ymin?(this.m_shape.queryXY(i,s),s.y===this.m_extent.ymin&&(h=0)):t.y===this.m_extent.ymax&&(this.m_shape.queryXY(i,s),s.y===this.m_extent.ymax&&(h=0)),-1===h){r=i;continue}if(this.isCurve(r)){r=i;continue}const a=t.clone(),m=new c(0,0);if(h){const i=t.y-this.m_extent.ymin;m.y=l(s.y-t.y),a.y=e*_(Math.floor(Math.abs(i)/e),i)+this.m_extent.ymin,m.y<0&&(a.y+=e)}else{const i=t.x-this.m_extent.xmin;m.x=l(s.x-t.x),a.x=e*_(Math.floor(Math.abs(i)/e),i)+this.m_extent.xmin,m.x<0&&(a.x+=e)}const p=h?s.y-t.y:s.x-t.x,g=Math.abs(p);if(g/e>65536&&x(""),g>0){const s=Math.trunc(g/e)+2;n.length<s&&(n.length=s);let i=0;for(let r=0;;r++){const s=a.add(m.mul(r*e)),x=(h?s.y-t.y:s.x-t.x)/p;if(x>=1)break;x<=0||(o(i<=n.length),n[i]=x,i++)}0!==i&&this.m_shape.splitSegment(r,n,i)}r=i}while(r!==i)}}splitSegments(e,t){let s=-1;const n=new c,h=[];for(let c=this.m_shape.getFirstPath(this.m_geometry);c!==i;c=this.m_shape.getNextPath(c)){let r=this.m_shape.getFirstVertex(c),a=i;for(let i=0,m=this.m_shape.getPathSize(c);i<m;i++,r=a)if(this.progress_(),a=this.m_shape.getNextVertex(r),this.m_shape.queryXY(r,n),(e?n.y===t:n.x===t)&&(this.m_shape.queryXY(a,n),e?n.y===t:n.x===t)){if(this.isCurve(r))continue;-1===s&&(s=this.m_shape.createUserIndex()),1!==this.m_shape.getUserIndex(r,s)&&(h.push(r),this.m_shape.setUserIndex(r,s,1)),1!==this.m_shape.getUserIndex(a,s)&&(h.push(a),this.m_shape.setUserIndex(a,s,1))}}if(-1!==s&&this.m_shape.removeUserIndex(s),h.length<3)return;h.sort(((e,t)=>this.compareVertices(e,t)));const r=new c,a=new c,m=new c;a.setNAN();let o=-1;let x=[],p=[];const l=this.m_shape.createUserIndex(),_=this.m_shape.createUserIndex();for(let i=0,g=h.length;i<g;i++){const s=h[i];if(this.m_shape.queryXY(s,n),!n.isEqualPoint2D(a)){if(-1===o){o=i,a.setCoordsPoint2D(n);continue}for(let n=o;n<i;n++){const s=h[n],i=this.m_shape.getNextVertex(s),m=this.m_shape.getPrevVertex(s);let o=!1;this.m_shape.queryXY(i,r),a.compare(r)<0&&(e?r.y===t:r.x===t)&&(this.isCurve(s)||(x.push(s),o=!0,this.m_shape.setUserIndex(s,_,1))),this.m_shape.queryXY(m,r),a.compare(r)<0&&(e?r.y===t:r.x===t)&&(this.isCurve(m)||(o||x.push(s),this.m_shape.setUserIndex(s,l,1)))}for(let e=0,t=x.length;e<t;e++){const t=x[e],s=this.m_shape.getUserIndex(t,l),i=this.m_shape.getUserIndex(t,_);if(1===s){const e=this.m_shape.getPrevVertex(t);this.m_shape.queryXY(e,m);let s=0;if(!m.isEqualPoint2D(n)){const i=c.distance(a,m);s=c.distance(m,n)/i,0===s?s=Number.EPSILON:1===s&&(s=1-Number.EPSILON),this.m_shape.splitSegment(e,[s],1);const h=this.m_shape.getPrevVertex(t);this.m_shape.setXY(h,n),p.push(h),this.m_shape.setUserIndex(h,l,1),this.m_shape.setUserIndex(h,_,-1)}}if(1===i){const e=this.m_shape.getNextVertex(t);this.m_shape.queryXY(e,m);let s=0;if(!m.isEqualPoint2D(n)){const e=c.distance(a,m);s=c.distance(a,n)/e,0===s?s=Number.EPSILON:1===s&&(s=1-Number.EPSILON),this.m_shape.splitSegment(t,[s],1);const i=this.m_shape.getNextVertex(t);this.m_shape.setXY(i,n),p.push(i),this.m_shape.setUserIndex(i,l,-1),this.m_shape.setUserIndex(i,_,1)}}}const s=x;x=p,p=s,p.length=0,o=i,a.setCoordsPoint2D(n)}}this.m_shape.removeUserIndex(l),this.m_shape.removeUserIndex(_)}resolveOverlaps(e,t){const s=new c,n=[];let h=-1;for(let o=0,x=this.m_verticesOnExtent.length;o<x;o++){this.progress_();const r=this.m_verticesOnExtent[o];if(r===i)continue;const a=this.m_shape.getNextVertex(r);if(this.m_shape.queryXY(r,s),(e?s.y===t:s.x===t)&&(this.m_shape.queryXY(a,s),e?s.y===t:s.x===t)){if(this.isCurve(r))continue;-1===h&&(h=this.m_shape.createUserIndex()),-2!==this.m_shape.getUserIndex(r,h)&&(n.push(r),this.m_shape.setUserIndex(r,h,-2)),-2!==this.m_shape.getUserIndex(a,h)&&(n.push(a),this.m_shape.setUserIndex(a,h,-2))}}if(0===n.length)return void(-1!==h&&this.m_shape.removeUserIndex(h));o(-1!==h),n.sort(((e,t)=>this.compareVertices(e,t)));for(let i=0,o=n.length;i<o;i++){const e=n[i];this.m_shape.setUserIndex(e,h,i)}const r=new c,a=new c;a.setNAN();let m=-1;for(let o=0,x=n.length;o<x;o++){this.progress_();const x=n[o];if(x!==i&&(this.m_shape.queryXY(x,s),!s.isEqualPoint2D(a))){if(-1!==m)for(;;){let s=!1;const x=o;for(let p=m;p<x;p++){const m=n[p];if(m===i)continue;let x=i;const c=this.m_shape.getNextVertex(m);this.m_shape.queryXY(c,r),a.compare(r)<0&&(e?r.y===t:r.x===t)&&(this.isCurve(m)||(x=c));let l=i;const _=this.m_shape.getPrevVertex(m);if(this.m_shape.queryXY(_,r),a.compare(r)<0&&(e?r.y===t:r.x===t)&&(this.isCurve(_)||(l=_)),x===i||l===i){if(x!==i||l!==i){for(let c=p+1;c<o;c++){const o=n[c];if(o===i)continue;const p=this.m_shape.getNextVertex(o);let _=i;this.m_shape.queryXY(p,r),a.compare(r)<0&&(e?r.y===t:r.x===t)&&(this.isCurve(o)||(_=p));const g=this.m_shape.getPrevVertex(o);let u=i;if(this.m_shape.queryXY(g,r),a.compare(r)<0&&(e?r.y===t:r.x===t)&&(this.isCurve(g)||(u=g)),_!==i&&u!==i){this.beforeRemoveVertex(o,n,h),this.m_shape.removeVertex(o,!1),this.beforeRemoveVertex(_,n,h),this.m_shape.removeVertex(_,!1),s=!0;break}if(x!==i&&u!==i){this.removeOverlap(n,m,x,o,u,h),s=!0;break}if(l!==i&&_!==i){this.removeOverlap(n,o,_,m,l,h),s=!0;break}}if(s)break}}else this.beforeRemoveVertex(m,n,h),this.m_shape.removeVertex(m,!1),this.beforeRemoveVertex(x,n,h),this.m_shape.removeVertex(x,!1),s=!0}if(!s)break}m=o,a.setCoordsPoint2D(s)}}this.m_shape.removeUserIndex(h)}beforeRemoveVertex(e,t,s){let n=this.m_shape.getUserIndex(e,s);o(n>=0),t[n]=i,n=this.m_shape.getUserIndex(e,this.m_verticesOnExtentIndex),o(n>=0),this.m_verticesOnExtent[n]=i;const h=this.m_shape.getPathFromVertex(e);if(h!==i){this.m_shape.getFirstVertex(h)===e&&(this.m_shape.setFirstVertex(h,i),this.m_shape.setLastVertex(h,i))}}removeOverlap(e,t,s,i,n,h){this.m_shape.setNextVertex(t,i),this.m_shape.setPrevVertex(i,t),this.m_shape.setPrevVertex(s,n),this.m_shape.setNextVertex(n,s),this.beforeRemoveVertex(i,e,h),this.m_shape.removeVertexInternal(i,!1),this.beforeRemoveVertex(n,e,h),this.m_shape.removeVertexInternal(n,!0)}removeSpikesAlongPoles(){this.removeSpikesOnPole(this.m_extent.ymin),this.removeSpikesOnPole(this.m_extent.ymax)}removeSpikesOnPole(e){for(let t=this.m_shape.getFirstPath(this.m_geometry);t!==i;t=this.m_shape.getNextPath(t)){const s=this.m_shape.getPathSize(t);if(s<3)continue;let i=this.m_shape.getFirstVertex(t);const n=new c;this.m_shape.queryXY(i,n);let h=n.y===e&&!this.isCurve(i);i=this.m_shape.getNextVertex(i);const r=new c;this.m_shape.queryXY(i,r);let a=r.y===e&&!this.isCurve(i);i=this.m_shape.getNextVertex(i);const m=new c;for(let t=0,o=s-2;t<o;t++,i=this.m_shape.getNextVertex(i)){this.progress_(),this.m_shape.queryXY(i,m);const t=m.y===e;if(a&&h&&t){if((r.x-n.x)*(m.x-r.x)<=0){this.m_shape.removeVertex(this.m_shape.getPrevVertex(i),!1),r.setCoordsPoint2D(m),a=t&&!this.isCurve(i);continue}}n.setCoordsPoint2D(r),h=a,r.setCoordsPoint2D(m),a=t&&!this.isCurve(i)}}}fixPaths(){for(let h=0,r=this.m_verticesOnExtent.length;h<r;h++){const e=this.m_verticesOnExtent[h];e!==i&&this.m_shape.setPathToVertex(e,i)}const e=this.m_shape.hasCurves();let t=0,s=0;for(let h=this.m_shape.getFirstPath(this.m_geometry);h!==i;){const e=this.m_shape.getFirstVertex(h);if(e===i||h!==this.m_shape.getPathFromVertex(e)){const e=h;h=this.m_shape.getNextPath(h),this.m_shape.setFirstVertex(e,i),this.m_shape.removePathOnly(e);continue}let n=e,r=0;do{this.m_shape.setPathToVertex(n,h),r++,n=this.m_shape.getNextVertex(n)}while(n!==e);this.m_shape.setRingAreaValid(h,!1),this.m_shape.setLastVertex(h,this.m_shape.getPrevVertex(e)),this.m_shape.setPathSize(h,r),s+=r,t++,h=this.m_shape.getNextPath(h)}for(let h=0,r=this.m_verticesOnExtent.length;h<r;h++){let n=this.m_verticesOnExtent[h];if(n===i)continue;let r=this.m_shape.getPathFromVertex(n);if(r!==i)continue;r=this.m_shape.insertPath(this.m_geometry,i);let a=!1,m=0;const x=n;do{this.m_shape.setPathToVertex(n,r),m++,e&&m<=2&&(a||=this.isCurve(n)),n=this.m_shape.getNextVertex(n)}while(n!==x);if(a?0===m:m<=2){let e=this.m_shape.getUserIndex(x,this.m_verticesOnExtentIndex);o(e>=0),this.m_verticesOnExtent[e]=i;const t=this.m_shape.removeVertex(x,!1);2===m&&(e=this.m_shape.getUserIndex(t,this.m_verticesOnExtentIndex),e>=0&&(this.m_verticesOnExtent[e]=i),this.m_shape.removeVertex(t,!1));const s=r;r=this.m_shape.getNextPath(r),this.m_shape.setFirstVertex(s,i),this.m_shape.removePathOnly(s)}else this.m_shape.setClosedPath(r,!0),this.m_shape.setPathSize(r,m),this.m_shape.setFirstVertex(r,x),this.m_shape.setLastVertex(r,this.m_shape.getPrevVertex(x)),this.m_shape.setRingAreaValid(r,!1),s+=m,t++}this.m_shape.setGeometryPathCount(this.m_geometry,t),this.m_shape.setGeometryVertexCount(this.m_geometry,s);let n=0;for(let h=this.m_shape.getFirstGeometry();h!==i;h=this.m_shape.getNextGeometry(h))n+=this.m_shape.getPointCount(h);this.m_shape.setTotalPointCount(n)}dbgCheckPathFirst(){}isCurve(e){return null!==this.m_shape.getSegment(e)}compareVertices(e,t){const s=new c;this.m_shape.queryXY(e,s);const i=new c;this.m_shape.queryXY(t,i);return s.compare(i)}clipPolesOut(e,t){return this.clipPolygonOrProjectedPolyline2(e,t)}}export{u as a,y as b,g as c};