@arcgis/core 4.34.0-next.23 → 4.34.0-next.24

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 (102) hide show
  1. package/arcade/parser.js +1 -1
  2. package/arcade/validation/arcadeValidator.js +1 -1
  3. package/assets/esri/core/workers/RemoteClient.js +1 -1
  4. package/assets/esri/core/workers/chunks/026fbeb0ff5b9e6c74df.js +1 -0
  5. package/assets/esri/core/workers/chunks/234cbc290b074eeb5dd6.js +1 -0
  6. package/assets/esri/core/workers/chunks/{00eef04fd026adaf0df8.js → 36a2a8b6547604bad2ab.js} +1 -1
  7. package/assets/esri/core/workers/chunks/{63cc4647b7775ff8aedf.js → 44d28849e59f62616e72.js} +1 -1
  8. package/assets/esri/core/workers/chunks/4c47d327815e281c457e.js +1 -0
  9. package/assets/esri/core/workers/chunks/{6bb1ecaa0afc2c7de79e.js → 4cc3eeb0b824c53793d0.js} +1 -1
  10. package/assets/esri/core/workers/chunks/{19ae76283a0cb0fe4dee.js → 4ea96aff38bb301dc40d.js} +1 -1
  11. package/assets/esri/core/workers/chunks/{cab1a1067f44ce374673.js → 7d7f8f2936ddee65e3da.js} +1 -1
  12. package/assets/esri/core/workers/chunks/{b57c0ef7bc57e3c91257.js → 865fccacf44ae5b70eba.js} +1 -1
  13. package/assets/esri/core/workers/chunks/{f43110391f124b8a179c.js → 909a6218db87cba2c9ba.js} +1 -1
  14. package/assets/esri/core/workers/chunks/a273f80298417edecc07.js +1 -0
  15. package/assets/esri/core/workers/chunks/{496e02cfe3d84010f675.js → a2ed7a3cd518dd136ec7.js} +1 -1
  16. package/assets/esri/core/workers/chunks/b32c1b60896a72e0ae90.js +1 -0
  17. package/assets/esri/core/workers/chunks/{6782114a752b9cc59168.js → b6b8272a74a5c24a6b86.js} +1 -1
  18. package/assets/esri/core/workers/chunks/b9f66d735a7e63417b3d.js +1 -0
  19. package/assets/esri/core/workers/chunks/d2ce360961ca4b58666c.js +1 -0
  20. package/assets/esri/core/workers/chunks/fe1902d63f610cebd947.js +1 -0
  21. package/chunks/Bufferer-Dw9Qi4T1.js +1 -1
  22. package/chunks/Envelope.js +1 -1
  23. package/chunks/MultiPathImpl.js +1 -1
  24. package/chunks/OperatorClip.js +1 -1
  25. package/chunks/ProjectionTransformation.js +1 -1
  26. package/chunks/index.js +1 -1
  27. package/config.js +1 -1
  28. package/core/MemCachePool.js +1 -1
  29. package/core/accessorSupport/overrideDefaultsFrom.js +1 -1
  30. package/geometry/operators/gx/operatorOffset.js +1 -1
  31. package/geometry/operators/support/jsonConverter.js +1 -1
  32. package/interfaces.d.ts +70 -2
  33. package/kernel.js +1 -1
  34. package/layers/orientedImagery/core/ExposurePoint.js +1 -1
  35. package/layers/orientedImagery/core/bestImageUtils.js +1 -1
  36. package/layers/support/ControlPointsGeoreference.js +1 -1
  37. package/layers/support/PixelBlock.js +1 -1
  38. package/layers/support/RasterJobHandler.js +1 -1
  39. package/layers/support/RasterWorker.js +1 -1
  40. package/layers/support/rasterFunctions/clipUtils.js +1 -1
  41. package/layers/support/rasterFunctions/rasterFunctionHelper.js +1 -1
  42. package/layers/video/VideoController.js +1 -1
  43. package/networks/support/UtilityNetworkLookupHelper.js +1 -1
  44. package/package.json +1 -1
  45. package/renderers/support/DictionaryControlString.js +1 -1
  46. package/support/revision.js +1 -1
  47. package/symbols/cim/cimAnalyzer.js +1 -1
  48. package/views/2d/engine/webgl/shaderGraph/techniques/mesh/MeshWriterInputEvaluator.js +1 -1
  49. package/views/2d/layers/features/FeatureContainer.js +1 -1
  50. package/views/2d/layers/features/processor/ClusterStrategy.js +1 -1
  51. package/views/2d/layers/features/processor/TrackStrategy.js +1 -1
  52. package/views/2d/layers/features/sources/strategies/chunks/Overrides.js +1 -1
  53. package/views/2d/layers/features/support/FeatureFilterEvaluator.js +1 -1
  54. package/views/2d/layers/graphics/GraphicsView2D.js +1 -1
  55. package/views/3d/analysis/images/heading-rotate-svg.js +1 -1
  56. package/views/3d/analysis/images/tilt-rotate-svg.js +1 -1
  57. package/views/3d/interactive/editingTools/draw/DrawGraphicTool3D.js +1 -1
  58. package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
  59. package/views/3d/layers/graphics/pipeline/Tile3DManager.js +1 -1
  60. package/views/3d/state/ViewStateManager.js +1 -1
  61. package/views/3d/webgl-engine/effects/highlight/Highlight.js +1 -1
  62. package/views/3d/webgl-engine/lib/Object3D.js +1 -1
  63. package/views/3d/webgl-engine/materials/internal/bufferWriterUtils.js +1 -1
  64. package/views/VideoView.js +1 -1
  65. package/views/draw/MultipointDrawAction.js +1 -1
  66. package/views/draw/PointDrawAction.js +1 -1
  67. package/views/draw/PolygonDrawAction.js +1 -1
  68. package/views/draw/PolylineDrawAction.js +1 -1
  69. package/views/magnifier/mask-svg.js +1 -1
  70. package/views/magnifier/overlay-svg.js +1 -1
  71. package/webmap/Bookmark.js +1 -1
  72. package/webscene/spec-certification/spec.js +1 -1
  73. package/widgets/BasemapLayerList.js +1 -1
  74. package/widgets/BatchAttributeForm/BatchAttributeFormViewModel.js +1 -1
  75. package/widgets/Editor/support/SketchController.js +1 -1
  76. package/widgets/Editor/workflowUtils.js +1 -1
  77. package/widgets/Editor.js +1 -1
  78. package/widgets/Feature/FeatureExpression/FeatureExpressionViewModel.js +1 -1
  79. package/widgets/Feature/support/arcadeFeatureUtils.js +1 -1
  80. package/widgets/LayerList.js +1 -1
  81. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  82. package/widgets/OrientedImageryViewer/components/ImageViewer.js +1 -1
  83. package/widgets/OrientedImageryViewer/components/ImageViewerViewModel.js +1 -1
  84. package/widgets/OrientedImageryViewer/components/OrientedImageryVideoViewModel.js +1 -1
  85. package/widgets/OrientedImageryViewer/navigation/NavigationManager.js +1 -1
  86. package/widgets/OrientedImageryViewer/navigation/queries.js +1 -1
  87. package/widgets/OrientedImageryViewer/navigation/utils.js +1 -1
  88. package/widgets/OrientedImageryViewer.js +1 -1
  89. package/widgets/PanoramicViewer/PanoramicViewerViewModel.js +1 -1
  90. package/widgets/PanoramicViewer.js +1 -1
  91. package/widgets/Print.js +1 -1
  92. package/widgets/Sketch/SketchViewModel.js +1 -1
  93. package/widgets/Slider/SliderViewModel.js +1 -1
  94. package/widgets/support/SelectionList.js +1 -1
  95. package/assets/esri/core/workers/chunks/0ba6177ba118a0f032e2.js +0 -1
  96. package/assets/esri/core/workers/chunks/573a8393bec916dcf16f.js +0 -1
  97. package/assets/esri/core/workers/chunks/81006d9eed65bbb82962.js +0 -1
  98. package/assets/esri/core/workers/chunks/9f91d519da67714f915f.js +0 -1
  99. package/assets/esri/core/workers/chunks/ad3871f497ecea1a08c9.js +0 -1
  100. package/assets/esri/core/workers/chunks/cd64181298d82c8d0e9d.js +0 -1
  101. package/assets/esri/core/workers/chunks/def8a854a05f17d3538e.js +0 -1
  102. package/assets/esri/core/workers/chunks/f3d5d92e0aefc2593208.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.34/esri/copyright.txt for details.
4
4
  */
5
- import{G as e}from"./SimpleGeometryCursor.js";import{a as t,c as s,G as i,i as n,g as r,d as h}from"./Geometry.js";import{c as m}from"./Envelope.js";import{Envelope2D as a}from"./Envelope2D.js";import{E as o,n as x,L as p,S as c}from"./MultiPathImpl.js";import{d as l,m as _,P as u,e as g,f as y}from"./Point2D.js";function f(e,t,s,i,n){return v(e,t,null,s,i,n)}function v(e,s,o,x,p,c){const l=e.getGeometryType();if(l===i.enumPoint){const t=e.getXY();return s.contains(t)?e:e.createInstance()}if(l===i.enumEnvelope){const t=a.constructEmpty();if(e.queryEnvelope(t),t.intersect(s)){const s=e.clone();return s.setEnvelope(t),s}return e.createInstance()}if(e.isEmpty())return e;if(s.isEmpty())return e.createInstance();const _=s.clone();{const t=new a;if(e.queryLooseEnvelope(t),_.containsEnvelope(t))return e;if(!_.isIntersecting(t))return e.createInstance();0===p&&(t.intersect(_),t.inflate(Math.max(.1*t.maxDimension(),1)),t.intersect(_),_.assign(t))}let u=x;if((null!==o||Number.isNaN(u))&&(u=m(o,_,!1).total()),l===i.enumGeometryCollection){const t=e,s=e.createInstance();for(let e=0,i=t.getGeometryCount();e<i;e++){const i=t.getGeometry(e);if(i.isEmpty())continue;const n=f(i,_,u,p,c);n.isEmpty()||(n===i?s.addGeometry(n.clone()):s.addGeometry(n))}return s}n(l)||t("Clip: geometry not supported");const g=e.getImpl().getAccelerators();if(null!==g){const e=g.getRasterizedGeometry();r(null===e)}switch(l){case i.enumMultiPoint:{const t=e;let s;const i=t.getPointCount(),n=t.getImpl().getAttributeStreamRef(0);let h=0;for(let e=0;e<i;e++){const i=n.readPoint2D(2*e);_.contains(i)||(0===h&&(s=t.createInstance()),h<e&&s.addPoints(t,h,e),h=e+1)}return h>0&&s.addPoints(t,h,i),0===h?t:(r(null!==s),s)}case i.enumPolygon:case i.enumPolyline:return P(e,_,u,p,c);default:h("")}}function d(e,t,s,i,n,r){const h=new E(t,r),m=new a;return e.queryLooseEnvelope(m),t.containsEnvelope(m)?e:t.isIntersecting(m)?h.clipPolesOut(e,n):e.createInstance()}function P(e,t,s,i,n){return new E(t,n).clipMultiPath2(e,s,i)}class E{constructor(e,t){this.m_shape=new o,this.m_geometry=x,this.m_verticesOnExtentIndex=-1,this.m_verticesOnExtent=[],this.m_progressCounter=0,this.m_extent=new a(e),this.m_progressTracker=t}progress_(){}clipMultiPath2(e,t,s){return e.getGeometryType()===i.enumPolygon?this.clipPolygonOrProjectedPolyline2(e,s):this.clipPolyline(e,t)}clipPolygonOrProjectedPolyline2(e,t){const s=e.getGeometryType()===i.enumPolyline;if(0===this.m_extent.width()||0===this.m_extent.height())return e.createInstance();const n=a.constructEmpty();e.queryLooseEnvelope(n),this.m_geometry=s?this.m_shape.addGeometry(e):this.m_shape.addGeometry(e,this.m_extent);const h=a.constructEmpty(),m=a.constructEmpty(),o=new u,c=new u,g=l(9,Number.NaN),y=l(9,Number.NaN),f=_(u,9);let v=null;const d=new p,P=[];let I=!1;for(let i=0;!I&&i<4;i++){let e=!1;const t=!!(1&i);let a=0;switch(i){case 0:a=this.m_extent.xmin,e=n.xmin<=a&&n.xmax>=a;break;case 1:a=this.m_extent.ymin,e=n.ymin<=a&&n.ymax>=a;break;case 2:a=this.m_extent.xmax,e=n.xmin<=a&&n.xmax>=a;break;case 3:a=this.m_extent.ymax,e=n.ymin<=a&&n.ymax>=a}if(e){I=!0;for(let e=this.m_shape.getFirstPath(this.m_geometry);e!==x;){let n=!0,p=-1,l=-1;const _=this.m_shape.getFirstVertex(e);let u=_;do{this.progress_(),v=this.m_shape.getSegment(u);let e=v;if(null===e){const t=this.m_shape.getNextVertex(u);if(t===x){r(s),0===p&&P.push(u);break}this.m_shape.queryXY(u,o),d.setStartXY(o),this.m_shape.queryXY(t,c),d.setEndXY(c),e=d}e.queryLooseEnvelope(h);let _=E.checkSegmentIntersection(h,i,a);e.isCurve()&&0===_&&e.isCurve()&&(d.setStartXY(e.getStartXY()),d.setEndXY(e.getEndXY()),this.m_shape.replaceCurveWithLine(u),e=d,d.queryEnvelope(h),_=E.checkSegmentIntersection(h,i,a));let V=0,X=x;if(-1===_){const s=e.intersectionWithAxis2D(t,a,g,y);if(s>0){let i=null;if(e.isCurve()){i=f,r(s<=9);for(let e=0;e<s;e++)t?f[e].setCoords(g[e],a):f[e].setCoords(a,g[e]);V=this.m_shape.splitSegmentAxisAware(u,y,s,i,t?1:0)}else V=this.m_shape.splitSegmentAxisAware(u,y,s,null,-1)}else V=0;V+=1;let h=u,x=this.m_shape.getNextVertex(h);e=null;for(let e=0;e<V;e++){this.m_shape.queryXY(h,o),this.m_shape.queryXY(x,c),v=this.m_shape.getSegment(h);let e=v;null===e&&(d.setStartXY(o),d.setEndXY(c),e=d),e.queryEnvelope(m);let s=E.checkSegmentIntersection(m,i,a);if(e.isCurve()&&0===s&&(this.m_shape.replaceCurveWithLine(h),d.setStartXY(o),d.setEndXY(c),e=d,e.queryEnvelope(m),s=E.checkSegmentIntersection(m,i,a)),-1===s){if(t){Math.abs(o.y-a)<Math.abs(c.y-a)?(o.y=a,this.m_shape.setXY(h,o)):(c.y=a,this.m_shape.setXY(x,c))}else{Math.abs(o.x-a)<Math.abs(c.x-a)?(o.x=a,this.m_shape.setXY(h,o)):(c.x=a,this.m_shape.setXY(x,c))}v=this.m_shape.getSegment(h),e=v,null===e&&(d.setStartXY(o),d.setEndXY(c),e=d),e.queryEnvelope(m),s=E.checkSegmentIntersection(m,i,a),-1===s&&(s=E.checkSegmentIntersectionLoose(m,i,a))}const r=p;p=s,-1===l&&(l=p),0===r&&1===p||1===r&&0===p||0===r&&0===p&&P.push(h),1===p&&(I=!1,n=!1),h=x,X=h,x=this.m_shape.getNextVertex(x)}}if(0===V){const e=p;p=_,-1===l&&(l=p),0===e&&p>=1||e>=1&&0===p||0===e&&0===p&&P.push(u),1===p&&(I=!1,n=!1),X=this.m_shape.getNextVertex(u)}if(u=X,P.length>=256){for(let e=1,t=P.length-1;e<t;e++){const t=P[e];s?this.m_shape.snapVertexForPoleClipping(t,a):this.m_shape.removeVertex(t,!1)}P[1]=P.at(-1),P.length=2}}while(u!==_);if(!n){0!==l||!s&&0!==p&&2!==p||P.push(_);for(let e=0,t=P.length;e<t;e++){const t=P[e];s?this.m_shape.snapVertexForPoleClipping(t,a):this.m_shape.removeVertex(t,!1)}}P.length=0,e=n||0===this.m_shape.getPathSize(e)?this.m_shape.removePath(e):this.m_shape.getNextPath(e)}}}if(I)return e.createInstance();v=null,s?this.removeSpikesAlongPoles():this.resolveBoundaryOverlaps(),t>0&&this.densifyAlongClipExtent(t);const V=this.m_shape.getGeometry(this.m_geometry);if(V.getGeometryType()===i.enumPolygon){V.setFillRule(e.getFillRule())}return V}clipPolyline(e,t){const s=a.constructEmpty(),i=a.constructEmpty(),n=l(9,Number.NaN),r=l(9,Number.NaN),h=new c;let m=e;const o=a.constructEmpty();e.queryLooseEnvelope(o);for(let a=0;a<4;a++){let t=!1;const x=!!(1&a);let p=0;switch(a){case 0:p=this.m_extent.xmin,t=o.xmin<=p&&o.xmax>=p;break;case 1:p=this.m_extent.ymin,t=o.ymin<=p&&o.ymax>=p;break;case 2:p=this.m_extent.xmax,t=o.xmin<=p&&o.xmax>=p;break;case 3:p=this.m_extent.ymax,t=o.ymin<=p&&o.ymax>=p}if(!t)continue;const c=m;m=e.createInstance();const l=c.getImpl().querySegmentIterator();l.resetToFirstPath();const _=new u,g=new u;for(;l.nextPath();){let e=-1,t=!0;for(;l.hasNextSegment();){this.progress_();const o=l.nextSegment(),c=o.isDegenerate(0);o.queryLooseEnvelope(s);const u=E.checkSegmentIntersection(s,a,p);if(-1===u){const s=o.intersectionWithAxis2D(x,p,n,r);let l=0;_.assign(o.getStartXY());for(let u=0;u<=s;u++){const y=u<s?r[u]:1;if(l===y)continue;o.queryCut(l,y,h,!1);const f=h.get();let v=!1;if(f.getStartXY().equals(_)||(f.setStartXY(_),v=!0),u<s&&(x?(g.x=n[u],g.y=p):(g.x=p,g.y=n[u]),f.getEndXY().equals(g)||(f.setEndXY(g),v=!0)),v&&f.normalizeAfterEndpointChange(),!c&&f.isDegenerate(0))continue;f.queryEnvelope(i);let d=E.checkSegmentIntersection(i,a,p);if(-1===d){const e=f.getStartXY(),t=f.getEndXY();if(v=!1,x){Math.abs(e.y-p)<Math.abs(t.y-p)?(e.y=p,f.setStartXY(e),e.equals(f.getStartXY())||(f.setStartXY(e),v=!0)):(t.y=p,t.equals(f.getEndXY())||(f.setEndXY(t),v=!0))}else{Math.abs(e.x-p)<Math.abs(t.x-p)?(e.x=p,e.equals(f.getStartXY())||(f.setStartXY(e),v=!0)):(t.x=p,t.equals(f.getEndXY())||(f.setEndXY(t),v=!0))}v&&f.normalizeAfterEndpointChange(),f.queryEnvelope(i),d=E.checkSegmentIntersection(i,a,p),-1===d&&(d=E.checkSegmentIntersectionLoose(i,a,p))}_.assign(f.getEndXY()),l=y,e=d,e>=1?(m.addSegment(f,t),t=!1):t=!0}}else e=u,e>=1?(m.addSegment(o,t),t=!1):t=!0}}}return m}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 h(""),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:(h(""),1)}case 1:{const t=Math.abs(e.ymin-s),i=Math.abs(e.ymax-s);return e.ymin<s?t>i?0:1:(h(""),1)}case 2:{const t=Math.abs(e.xmin-s),i=Math.abs(e.xmax-s);return e.xmax>s?t<i?0:1:(h(""),1)}case 3:{const t=Math.abs(e.ymin-s),i=Math.abs(e.ymax-s);return e.ymax>s?t<i?0:1:(h(""),1)}}return h(""),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 u;for(let t=this.m_shape.getFirstPath(this.m_geometry);t!==x;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 u(0,0),s=new u(0,0),i=l(2048,Number.NaN);for(let n=this.m_shape.getFirstPath(this.m_geometry);n!==x;n=this.m_shape.getNextPath(n)){const m=this.m_shape.getFirstVertex(n);let a=m;do{const n=this.m_shape.getNextVertex(a);this.m_shape.queryXY(a,t);let m=-1;if(t.x===this.m_extent.xmin?(this.m_shape.queryXY(n,s),s.x===this.m_extent.xmin&&(m=1)):t.x===this.m_extent.xmax&&(this.m_shape.queryXY(n,s),s.x===this.m_extent.xmax&&(m=1)),t.y===this.m_extent.ymin?(this.m_shape.queryXY(n,s),s.y===this.m_extent.ymin&&(m=0)):t.y===this.m_extent.ymax&&(this.m_shape.queryXY(n,s),s.y===this.m_extent.ymax&&(m=0)),-1===m){a=n;continue}if(this.isCurve(a)){a=n;continue}const o=t.clone(),x=new u(0,0);if(m){const i=t.y-this.m_extent.ymin;x.y=g(s.y-t.y),o.y=e*y(Math.floor(Math.abs(i)/e),i)+this.m_extent.ymin,x.y<0&&(o.y+=e)}else{const i=t.x-this.m_extent.xmin;x.x=g(s.x-t.x),o.x=e*y(Math.floor(Math.abs(i)/e),i)+this.m_extent.xmin,x.x<0&&(o.x+=e)}const p=m?s.y-t.y:s.x-t.x,c=Math.abs(p);if(c/e>65536&&h(""),c>0){const s=Math.trunc(c/e)+2;i.length<s&&(i.length=s);let n=0;for(let h=0;;h++){const s=o.add(x.mul(h*e)),a=(m?s.y-t.y:s.x-t.x)/p;if(a>=1)break;a<=0||(r(n<=i.length),i[n]=a,n++)}0!==n&&this.m_shape.splitSegment(a,i,n)}a=n}while(a!==m)}}splitSegments(e,t){let s=-1;const i=new u,n=[];for(let _=this.m_shape.getFirstPath(this.m_geometry);_!==x;_=this.m_shape.getNextPath(_)){let r=this.m_shape.getFirstVertex(_),h=x;for(let m=0,a=this.m_shape.getPathSize(_);m<a;m++,r=h)if(this.progress_(),h=this.m_shape.getNextVertex(r),this.m_shape.queryXY(r,i),(e?i.y===t:i.x===t)&&(this.m_shape.queryXY(h,i),e?i.y===t:i.x===t)){if(this.isCurve(r))continue;-1===s&&(s=this.m_shape.createUserIndex()),1!==this.m_shape.getUserIndex(r,s)&&(n.push(r),this.m_shape.setUserIndex(r,s,1)),1!==this.m_shape.getUserIndex(h,s)&&(n.push(h),this.m_shape.setUserIndex(h,s,1))}}if(-1!==s&&this.m_shape.removeUserIndex(s),n.length<3)return;n.sort((e,t)=>this.compareVertices(e,t));const r=new u,h=new u,m=new u;h.setNAN();let a=-1;let o=[],p=[];const c=this.m_shape.createUserIndex(),l=this.m_shape.createUserIndex();for(let x=0,_=n.length;x<_;x++){const s=n[x];if(this.m_shape.queryXY(s,i),!i.isEqualPoint2D(h)){if(-1===a){a=x,h.setCoordsPoint2D(i);continue}for(let i=a;i<x;i++){const s=n[i],m=this.m_shape.getNextVertex(s),a=this.m_shape.getPrevVertex(s);let x=!1;this.m_shape.queryXY(m,r),h.compare(r)<0&&(e?r.y===t:r.x===t)&&(this.isCurve(s)||(o.push(s),x=!0,this.m_shape.setUserIndex(s,l,1))),this.m_shape.queryXY(a,r),h.compare(r)<0&&(e?r.y===t:r.x===t)&&(this.isCurve(a)||(x||o.push(s),this.m_shape.setUserIndex(s,c,1)))}for(let e=0,t=o.length;e<t;e++){const t=o[e],s=this.m_shape.getUserIndex(t,c),n=this.m_shape.getUserIndex(t,l);if(1===s){const e=this.m_shape.getPrevVertex(t);this.m_shape.queryXY(e,m);let s=0;if(!m.isEqualPoint2D(i)){const n=u.distance(h,m);s=u.distance(m,i)/n,0===s?s=Number.EPSILON:1===s&&(s=1-Number.EPSILON),this.m_shape.splitSegment(e,[s],1);const r=this.m_shape.getPrevVertex(t);this.m_shape.setXY(r,i),p.push(r),this.m_shape.setUserIndex(r,c,1),this.m_shape.setUserIndex(r,l,-1)}}if(1===n){const e=this.m_shape.getNextVertex(t);this.m_shape.queryXY(e,m);let s=0;if(!m.isEqualPoint2D(i)){const e=u.distance(h,m);s=u.distance(h,i)/e,0===s?s=Number.EPSILON:1===s&&(s=1-Number.EPSILON),this.m_shape.splitSegment(t,[s],1);const n=this.m_shape.getNextVertex(t);this.m_shape.setXY(n,i),p.push(n),this.m_shape.setUserIndex(n,c,-1),this.m_shape.setUserIndex(n,l,1)}}}const s=o;o=p,p=s,p.length=0,a=x,h.setCoordsPoint2D(i)}}this.m_shape.removeUserIndex(c),this.m_shape.removeUserIndex(l)}resolveOverlaps(e,t){const s=new u,i=[];let n=-1;for(let r=0,o=this.m_verticesOnExtent.length;r<o;r++){this.progress_();const h=this.m_verticesOnExtent[r];if(h===x)continue;const m=this.m_shape.getNextVertex(h);if(this.m_shape.queryXY(h,s),(e?s.y===t:s.x===t)&&(this.m_shape.queryXY(m,s),e?s.y===t:s.x===t)){if(this.isCurve(h))continue;-1===n&&(n=this.m_shape.createUserIndex()),-2!==this.m_shape.getUserIndex(h,n)&&(i.push(h),this.m_shape.setUserIndex(h,n,-2)),-2!==this.m_shape.getUserIndex(m,n)&&(i.push(m),this.m_shape.setUserIndex(m,n,-2))}}if(0===i.length)return void(-1!==n&&this.m_shape.removeUserIndex(n));r(-1!==n),i.sort((e,t)=>this.compareVertices(e,t));for(let r=0,o=i.length;r<o;r++){const e=i[r];this.m_shape.setUserIndex(e,n,r)}const h=new u,m=new u;m.setNAN();let a=-1;for(let r=0,o=i.length;r<o;r++){this.progress_();const o=i[r];if(o!==x&&(this.m_shape.queryXY(o,s),!s.isEqualPoint2D(m))){if(-1!==a)for(;;){let s=!1;const o=r;for(let p=a;p<o;p++){const a=i[p];if(a===x)continue;let o=x;const c=this.m_shape.getNextVertex(a);this.m_shape.queryXY(c,h),m.compare(h)<0&&(e?h.y===t:h.x===t)&&(this.isCurve(a)||(o=c));let l=x;const _=this.m_shape.getPrevVertex(a);if(this.m_shape.queryXY(_,h),m.compare(h)<0&&(e?h.y===t:h.x===t)&&(this.isCurve(_)||(l=_)),o===x||l===x){if(o!==x||l!==x){for(let c=p+1;c<r;c++){const r=i[c];if(r===x)continue;const p=this.m_shape.getNextVertex(r);let _=x;this.m_shape.queryXY(p,h),m.compare(h)<0&&(e?h.y===t:h.x===t)&&(this.isCurve(r)||(_=p));const u=this.m_shape.getPrevVertex(r);let g=x;if(this.m_shape.queryXY(u,h),m.compare(h)<0&&(e?h.y===t:h.x===t)&&(this.isCurve(u)||(g=u)),_!==x&&g!==x){this.beforeRemoveVertex(r,i,n),this.m_shape.removeVertex(r,!1),this.beforeRemoveVertex(_,i,n),this.m_shape.removeVertex(_,!1),s=!0;break}if(o!==x&&g!==x){this.removeOverlap(i,a,o,r,g,n),s=!0;break}if(l!==x&&_!==x){this.removeOverlap(i,r,_,a,l,n),s=!0;break}}if(s)break}}else this.beforeRemoveVertex(a,i,n),this.m_shape.removeVertex(a,!1),this.beforeRemoveVertex(o,i,n),this.m_shape.removeVertex(o,!1),s=!0}if(!s)break}a=r,m.setCoordsPoint2D(s)}}this.m_shape.removeUserIndex(n)}beforeRemoveVertex(e,t,s){let i=this.m_shape.getUserIndex(e,s);r(i>=0),t[i]=x,i=this.m_shape.getUserIndex(e,this.m_verticesOnExtentIndex),r(i>=0),this.m_verticesOnExtent[i]=x;const n=this.m_shape.getPathFromVertex(e);if(n!==x){this.m_shape.getFirstVertex(n)===e&&(this.m_shape.setFirstVertex(n,x),this.m_shape.setLastVertex(n,x))}}removeOverlap(e,t,s,i,n,r){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,r),this.m_shape.removeVertexInternal(i,!1),this.beforeRemoveVertex(n,e,r),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!==x;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 u;this.m_shape.queryXY(i,n);let r=n.y===e&&!this.isCurve(i);i=this.m_shape.getNextVertex(i);const h=new u;this.m_shape.queryXY(i,h);let m=h.y===e&&!this.isCurve(i);i=this.m_shape.getNextVertex(i);const a=new u;for(let t=0,o=s-2;t<o;t++,i=this.m_shape.getNextVertex(i)){this.progress_(),this.m_shape.queryXY(i,a);const t=a.y===e;if(m&&r&&t){if((h.x-n.x)*(a.x-h.x)<=0){this.m_shape.removeVertex(this.m_shape.getPrevVertex(i),!1),h.setCoordsPoint2D(a),m=t&&!this.isCurve(i);continue}}n.setCoordsPoint2D(h),r=m,h.setCoordsPoint2D(a),m=t&&!this.isCurve(i)}}}fixPaths(){for(let n=0,r=this.m_verticesOnExtent.length;n<r;n++){const e=this.m_verticesOnExtent[n];e!==x&&this.m_shape.setPathToVertex(e,x)}const e=this.m_shape.hasCurves();let t=0,s=0;for(let n=this.m_shape.getFirstPath(this.m_geometry);n!==x;){const e=this.m_shape.getFirstVertex(n);if(e===x||n!==this.m_shape.getPathFromVertex(e)){const e=n;n=this.m_shape.getNextPath(n),this.m_shape.setFirstVertex(e,x),this.m_shape.removePathOnly(e);continue}let i=e,r=0;do{this.m_shape.setPathToVertex(i,n),r++,i=this.m_shape.getNextVertex(i)}while(i!==e);this.m_shape.setRingAreaValid(n,!1),this.m_shape.setLastVertex(n,this.m_shape.getPrevVertex(e)),this.m_shape.setPathSize(n,r),s+=r,t++,n=this.m_shape.getNextPath(n)}for(let n=0,h=this.m_verticesOnExtent.length;n<h;n++){let i=this.m_verticesOnExtent[n];if(i===x)continue;let h=this.m_shape.getPathFromVertex(i);if(h!==x)continue;h=this.m_shape.insertPath(this.m_geometry,x);let m=!1,a=0;const o=i;do{this.m_shape.setPathToVertex(i,h),a++,e&&a<=2&&(m||=this.isCurve(i)),i=this.m_shape.getNextVertex(i)}while(i!==o);if(m?0===a:a<=2){let e=this.m_shape.getUserIndex(o,this.m_verticesOnExtentIndex);r(e>=0),this.m_verticesOnExtent[e]=x;const t=this.m_shape.removeVertex(o,!1);2===a&&(e=this.m_shape.getUserIndex(t,this.m_verticesOnExtentIndex),e>=0&&(this.m_verticesOnExtent[e]=x),this.m_shape.removeVertex(t,!1));const s=h;h=this.m_shape.getNextPath(h),this.m_shape.setFirstVertex(s,x),this.m_shape.removePathOnly(s)}else this.m_shape.setClosedPath(h,!0),this.m_shape.setPathSize(h,a),this.m_shape.setFirstVertex(h,o),this.m_shape.setLastVertex(h,this.m_shape.getPrevVertex(o)),this.m_shape.setRingAreaValid(h,!1),s+=a,t++}this.m_shape.setGeometryPathCount(this.m_geometry,t),this.m_shape.setGeometryVertexCount(this.m_geometry,s);let i=0;for(let n=this.m_shape.getFirstGeometry();n!==x;n=this.m_shape.getNextGeometry(n))i+=this.m_shape.getPointCount(n);this.m_shape.setTotalPointCount(i)}dbgCheckPathFirst(){}isCurve(e){return null!==this.m_shape.getSegment(e)}compareVertices(e,t){const s=new u;this.m_shape.queryXY(e,s);const i=new u;this.m_shape.queryXY(t,i);return s.compare(i)}clipPolesOut(e,t){return this.clipPolygonOrProjectedPolyline2(e,t)}}class I{getOperatorType(){return 10004}supportsCurves(){return!0}accelerateGeometry(e,t,s){return!1}canAccelerateGeometry(e){return!1}executeMany(e,t,s,i){return new V(e,t,s,i)}execute(e,t,s,i){return X(e,t,s,i)}}class V extends e{constructor(e,s,i,n){super(),this.m_progressTracker=n,this.m_index=-1,e||t(""),this.m_envelope=s,this.m_inputGeometryCursor=e,this.m_spatialRefImpl=i,this.m_tolerance=m(i,s,!1).total()}next(){let e;return(e=this.m_inputGeometryCursor.next())?(s(e),this.m_index=this.m_inputGeometryCursor.getGeometryID(),f(e,this.m_envelope,this.m_tolerance,0,this.m_progressTracker)):null}getGeometryID(){return this.m_index}tock(){return!0}getRank(){return 1}}function X(e,t,s,i){return v(e,t,s,Number.NaN,0,i)}export{I as O,d as a,f as c};
5
+ import{G as e}from"./SimpleGeometryCursor.js";import{a as t,c as s,G as i,i as n,g as r,d as h}from"./Geometry.js";import{c as m}from"./Envelope.js";import{Envelope2D as a}from"./Envelope2D.js";import{E as o,n as x,L as p,S as c}from"./MultiPathImpl.js";import{d as l,m as _,P as u,e as g,f as y}from"./Point2D.js";function f(e,t,s,i,n){return v(e,t,null,s,i,n)}function v(e,s,o,x,p,c){const l=e.getGeometryType();if(l===i.enumPoint){const t=e.getXY();return s.contains(t)?e:e.createInstance()}if(l===i.enumEnvelope){const t=a.constructEmpty();if(e.queryEnvelope(t),t.intersect(s)){const s=e.clone();return s.setEnvelope(t),s}return e.createInstance()}if(e.isEmpty())return e;if(s.isEmpty())return e.createInstance();const _=s.clone();{const t=new a;if(e.queryLooseEnvelope(t),_.containsEnvelope(t))return e;if(!_.isIntersecting(t))return e.createInstance();0===p&&(t.intersect(_),t.inflate(Math.max(.1*t.maxDimension(),1)),t.intersect(_),_.assign(t))}let u=x;if((null!==o||Number.isNaN(u))&&(u=m(o,_,!1).total()),l===i.enumGeometryCollection){const t=e,s=e.createInstance();for(let e=0,i=t.getGeometryCount();e<i;e++){const i=t.getGeometry(e);if(i.isEmpty())continue;const n=f(i,_,u,p,c);n.isEmpty()||(n===i?s.addGeometry(n.clone()):s.addGeometry(n))}return s}n(l)||t("Clip: geometry not supported");const g=e.getImpl().getAccelerators();if(null!==g){const e=g.getRasterizedGeometry();r(null===e)}switch(l){case i.enumMultiPoint:{const t=e;let s;const i=t.getPointCount(),n=t.getImpl().getAttributeStreamRef(0);let h=0;for(let e=0;e<i;e++){const i=n.readPoint2D(2*e);_.contains(i)||(0===h&&(s=t.createInstance()),h<e&&s.addPoints(t,h,e),h=e+1)}return h>0&&s.addPoints(t,h,i),0===h?t:(r(null!==s),s)}case i.enumPolygon:case i.enumPolyline:return P(e,_,u,p,c);default:h("")}}function d(e,t,s,i,n,r){const h=new E(t,r),m=new a;return e.queryLooseEnvelope(m),t.containsEnvelope(m)?e:t.isIntersecting(m)?h.clipPolesOut(e,n):e.createInstance()}function P(e,t,s,i,n){return new E(t,n).clipMultiPath2(e,s,i)}class E{constructor(e,t){this.m_shape=new o,this.m_geometry=x,this.m_verticesOnExtentIndex=-1,this.m_verticesOnExtent=[],this.m_progressCounter=0,this.m_extent=new a(e),this.m_progressTracker=t}progress_(){}clipMultiPath2(e,t,s){return e.getGeometryType()===i.enumPolygon?this.clipPolygonOrProjectedPolyline2(e,s):this.clipPolyline(e,t)}clipPolygonOrProjectedPolyline2(e,t){const s=e.getGeometryType()===i.enumPolyline;if(0===this.m_extent.width()||0===this.m_extent.height())return e.createInstance();const n=a.constructEmpty();e.queryLooseEnvelope(n),this.m_geometry=s?this.m_shape.addGeometry(e):this.m_shape.addGeometry(e,this.m_extent);const h=a.constructEmpty(),m=a.constructEmpty(),o=new u,c=new u,g=l(9,Number.NaN),y=l(9,Number.NaN),f=_(u,9);let v=null;const d=new p,P=[];let I=!1;for(let i=0;!I&&i<4;i++){let e=!1;const t=!!(1&i);let a=0;switch(i){case 0:a=this.m_extent.xmin,e=n.xmin<=a&&n.xmax>=a;break;case 1:a=this.m_extent.ymin,e=n.ymin<=a&&n.ymax>=a;break;case 2:a=this.m_extent.xmax,e=n.xmin<=a&&n.xmax>=a;break;case 3:a=this.m_extent.ymax,e=n.ymin<=a&&n.ymax>=a}if(e){I=!0;for(let e=this.m_shape.getFirstPath(this.m_geometry);e!==x;){let n=!0,p=-1,l=-1;const _=this.m_shape.getFirstVertex(e);let u=_;do{this.progress_(),v=this.m_shape.getSegment(u);let e=v;if(null===e){const t=this.m_shape.getNextVertex(u);if(t===x){r(s),0===p&&P.push(u);break}this.m_shape.queryXY(u,o),d.setStartXY(o),this.m_shape.queryXY(t,c),d.setEndXY(c),e=d}e.queryLooseEnvelope(h);let _=E.checkSegmentIntersection(h,i,a);e.isCurve()&&0===_&&e.isCurve()&&(d.setStartXY(e.getStartXY()),d.setEndXY(e.getEndXY()),this.m_shape.replaceCurveWithLine(u),e=d,d.queryEnvelope(h),_=E.checkSegmentIntersection(h,i,a));let V=0,X=x;if(-1===_){const s=e.intersectionWithAxis2D(t,a,g,y);if(s>0){let i=null;if(e.isCurve()){i=f,r(s<=9);for(let e=0;e<s;e++)t?f[e].setCoords(g[e],a):f[e].setCoords(a,g[e]);V=this.m_shape.splitSegmentAxisAware(u,y,s,i,t?1:0)}else V=this.m_shape.splitSegmentAxisAware(u,y,s,null,-1)}else V=0;V+=1;let h=u,x=this.m_shape.getNextVertex(h);e=null;for(let e=0;e<V;e++){this.m_shape.queryXY(h,o),this.m_shape.queryXY(x,c),v=this.m_shape.getSegment(h);let e=v;null===e&&(d.setStartXY(o),d.setEndXY(c),e=d),e.queryEnvelope(m);let s=E.checkSegmentIntersection(m,i,a);if(e.isCurve()&&0===s&&(this.m_shape.replaceCurveWithLine(h),d.setStartXY(o),d.setEndXY(c),e=d,e.queryEnvelope(m),s=E.checkSegmentIntersection(m,i,a)),-1===s){if(t){Math.abs(o.y-a)<Math.abs(c.y-a)?(o.y=a,this.m_shape.setXY(h,o)):(c.y=a,this.m_shape.setXY(x,c))}else{Math.abs(o.x-a)<Math.abs(c.x-a)?(o.x=a,this.m_shape.setXY(h,o)):(c.x=a,this.m_shape.setXY(x,c))}v=this.m_shape.getSegment(h),e=v,null===e&&(d.setStartXY(o),d.setEndXY(c),e=d),e.queryEnvelope(m),s=E.checkSegmentIntersection(m,i,a),-1===s&&(s=E.checkSegmentIntersectionLoose(m,i,a))}const r=p;p=s,-1===l&&(l=p),0===r&&1===p||1===r&&0===p||0===r&&0===p&&P.push(h),1===p&&(I=!1,n=!1),h=x,X=h,x=this.m_shape.getNextVertex(x)}}if(0===V){const e=p;p=_,-1===l&&(l=p),0===e&&p>=1||e>=1&&0===p||0===e&&0===p&&P.push(u),1===p&&(I=!1,n=!1),X=this.m_shape.getNextVertex(u)}if(u=X,P.length>=256){for(let e=1,t=P.length-1;e<t;e++){const t=P[e];s?this.m_shape.snapVertexForPoleClipping(t,a):this.m_shape.removeVertex(t,!1)}P[1]=P.at(-1),P.length=2}}while(u!==_);if(!n){0!==l||!s&&0!==p&&2!==p||P.push(_);for(let e=0,t=P.length;e<t;e++){const t=P[e];s?this.m_shape.snapVertexForPoleClipping(t,a):this.m_shape.removeVertex(t,!1)}}P.length=0,e=n||0===this.m_shape.getPathSize(e)?this.m_shape.removePath(e):this.m_shape.getNextPath(e)}}}if(I)return e.createInstance();v=null,s?this.removeSpikesAlongPoles():this.resolveBoundaryOverlaps(),t>0&&this.densifyAlongClipExtent(t);const V=this.m_shape.getGeometry(this.m_geometry);if(V.getGeometryType()===i.enumPolygon){V.setFillRule(e.getFillRule())}return V}clipPolyline(e,t){const s=a.constructEmpty(),i=a.constructEmpty(),n=l(9,Number.NaN),r=l(9,Number.NaN),h=new c;let m=e;const o=a.constructEmpty();e.queryLooseEnvelope(o);for(let a=0;a<4;a++){let t=!1;const x=!!(1&a);let p=0;switch(a){case 0:p=this.m_extent.xmin,t=o.xmin<=p&&o.xmax>=p;break;case 1:p=this.m_extent.ymin,t=o.ymin<=p&&o.ymax>=p;break;case 2:p=this.m_extent.xmax,t=o.xmin<=p&&o.xmax>=p;break;case 3:p=this.m_extent.ymax,t=o.ymin<=p&&o.ymax>=p}if(!t)continue;const c=m;m=e.createInstance();const l=c.getImpl().querySegmentIterator();l.resetToFirstPath();const _=new u,g=new u;for(;l.nextPath();){let e=-1,t=!0;for(;l.hasNextSegment();){this.progress_();const o=l.nextSegment(),c=o.isDegenerate(0);o.queryLooseEnvelope(s);const u=E.checkSegmentIntersection(s,a,p);if(-1===u){const s=o.intersectionWithAxis2D(x,p,n,r);let l=0;_.assign(o.getStartXY());for(let u=0;u<=s;u++){const y=u<s?r[u]:1;if(l===y)continue;o.queryCut(l,y,h,!1);const f=h.get();let v=!1;if(f.getStartXY().equals(_)||(f.setStartXY(_),v=!0),u<s&&(x?(g.x=n[u],g.y=p):(g.x=p,g.y=n[u]),f.getEndXY().equals(g)||(f.setEndXY(g),v=!0)),v&&f.normalizeAfterEndpointChange(),!c&&f.isDegenerate(0))continue;f.queryEnvelope(i);let d=E.checkSegmentIntersection(i,a,p);if(-1===d){const e=f.getStartXY(),t=f.getEndXY();if(v=!1,x){Math.abs(e.y-p)<Math.abs(t.y-p)?(e.y=p,f.setStartXY(e),e.equals(f.getStartXY())||(f.setStartXY(e),v=!0)):(t.y=p,t.equals(f.getEndXY())||(f.setEndXY(t),v=!0))}else{Math.abs(e.x-p)<Math.abs(t.x-p)?(e.x=p,e.equals(f.getStartXY())||(f.setStartXY(e),v=!0)):(t.x=p,t.equals(f.getEndXY())||(f.setEndXY(t),v=!0))}v&&f.normalizeAfterEndpointChange(),f.queryEnvelope(i),d=E.checkSegmentIntersection(i,a,p),-1===d&&(d=E.checkSegmentIntersectionLoose(i,a,p))}_.assign(f.getEndXY()),l=y,e=d,e>=1?(m.addSegment(f,t),t=!1):t=!0}}else e=u,e>=1?(m.addSegment(o,t),t=!1):t=!0}}}return m}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 h(""),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:(h(""),1)}case 1:{const t=Math.abs(e.ymin-s),i=Math.abs(e.ymax-s);return e.ymin<s?t>i?0:1:(h(""),1)}case 2:{const t=Math.abs(e.xmin-s),i=Math.abs(e.xmax-s);return e.xmax>s?t<i?0:1:(h(""),1)}case 3:{const t=Math.abs(e.ymin-s),i=Math.abs(e.ymax-s);return e.ymax>s?t<i?0:1:(h(""),1)}}return h(""),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 u;for(let t=this.m_shape.getFirstPath(this.m_geometry);t!==x;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 u(0,0),s=new u(0,0),i=l(2048,Number.NaN);for(let n=this.m_shape.getFirstPath(this.m_geometry);n!==x;n=this.m_shape.getNextPath(n)){const m=this.m_shape.getFirstVertex(n);let a=m;do{const n=this.m_shape.getNextVertex(a);this.m_shape.queryXY(a,t);let m=-1;if(t.x===this.m_extent.xmin?(this.m_shape.queryXY(n,s),s.x===this.m_extent.xmin&&(m=1)):t.x===this.m_extent.xmax&&(this.m_shape.queryXY(n,s),s.x===this.m_extent.xmax&&(m=1)),t.y===this.m_extent.ymin?(this.m_shape.queryXY(n,s),s.y===this.m_extent.ymin&&(m=0)):t.y===this.m_extent.ymax&&(this.m_shape.queryXY(n,s),s.y===this.m_extent.ymax&&(m=0)),-1===m){a=n;continue}if(this.isCurve(a)){a=n;continue}const o=t.clone(),x=new u(0,0);if(m){const i=t.y-this.m_extent.ymin;x.y=g(s.y-t.y),o.y=e*y(Math.floor(Math.abs(i)/e),i)+this.m_extent.ymin,x.y<0&&(o.y+=e)}else{const i=t.x-this.m_extent.xmin;x.x=g(s.x-t.x),o.x=e*y(Math.floor(Math.abs(i)/e),i)+this.m_extent.xmin,x.x<0&&(o.x+=e)}const p=m?s.y-t.y:s.x-t.x,c=Math.abs(p);if(c/e>65536&&h(""),c>0){const s=Math.trunc(c/e)+2;i.length<s&&(i.length=s);let n=0;for(let h=0;;h++){const s=o.add(x.mul(h*e)),a=(m?s.y-t.y:s.x-t.x)/p;if(a>=1)break;a<=0||(r(n<=i.length),i[n]=a,n++)}0!==n&&this.m_shape.splitSegment(a,i,n)}a=n}while(a!==m)}}splitSegments(e,t){let s=-1;const i=new u,n=[];for(let _=this.m_shape.getFirstPath(this.m_geometry);_!==x;_=this.m_shape.getNextPath(_)){let r=this.m_shape.getFirstVertex(_),h=x;for(let m=0,a=this.m_shape.getPathSize(_);m<a;m++,r=h)if(this.progress_(),h=this.m_shape.getNextVertex(r),this.m_shape.queryXY(r,i),(e?i.y===t:i.x===t)&&(this.m_shape.queryXY(h,i),e?i.y===t:i.x===t)){if(this.isCurve(r))continue;-1===s&&(s=this.m_shape.createUserIndex()),1!==this.m_shape.getUserIndex(r,s)&&(n.push(r),this.m_shape.setUserIndex(r,s,1)),1!==this.m_shape.getUserIndex(h,s)&&(n.push(h),this.m_shape.setUserIndex(h,s,1))}}if(-1!==s&&this.m_shape.removeUserIndex(s),n.length<3)return;n.sort((e,t)=>this.compareVertices(e,t));const r=new u,h=new u,m=new u;h.setNAN();let a=-1;let o=[],p=[];const c=this.m_shape.createUserIndex(),l=this.m_shape.createUserIndex();for(let x=0,_=n.length;x<_;x++){const s=n[x];if(this.m_shape.queryXY(s,i),!i.isEqualPoint2D(h)){if(-1===a){a=x,h.setCoordsPoint2D(i);continue}for(let i=a;i<x;i++){const s=n[i],m=this.m_shape.getNextVertex(s),a=this.m_shape.getPrevVertex(s);let x=!1;this.m_shape.queryXY(m,r),h.compare(r)<0&&(e?r.y===t:r.x===t)&&(this.isCurve(s)||(o.push(s),x=!0,this.m_shape.setUserIndex(s,l,1))),this.m_shape.queryXY(a,r),h.compare(r)<0&&(e?r.y===t:r.x===t)&&(this.isCurve(a)||(x||o.push(s),this.m_shape.setUserIndex(s,c,1)))}for(let e=0,t=o.length;e<t;e++){const t=o[e],s=this.m_shape.getUserIndex(t,c),n=this.m_shape.getUserIndex(t,l);if(1===s){const e=this.m_shape.getPrevVertex(t);this.m_shape.queryXY(e,m);let s=0;if(!m.isEqualPoint2D(i)){const n=u.distance(h,m);s=u.distance(m,i)/n,0===s?s=Number.EPSILON:1===s&&(s=1-Number.EPSILON),this.m_shape.splitSegment(e,[s],1);const r=this.m_shape.getPrevVertex(t);this.m_shape.setXY(r,i),p.push(r),this.m_shape.setUserIndex(r,c,1),this.m_shape.setUserIndex(r,l,-1)}}if(1===n){const e=this.m_shape.getNextVertex(t);this.m_shape.queryXY(e,m);let s=0;if(!m.isEqualPoint2D(i)){const e=u.distance(h,m);s=u.distance(h,i)/e,0===s?s=Number.EPSILON:1===s&&(s=1-Number.EPSILON),this.m_shape.splitSegment(t,[s],1);const n=this.m_shape.getNextVertex(t);this.m_shape.setXY(n,i),p.push(n),this.m_shape.setUserIndex(n,c,-1),this.m_shape.setUserIndex(n,l,1)}}}const s=o;o=p,p=s,p.length=0,a=x,h.setCoordsPoint2D(i)}}this.m_shape.removeUserIndex(c),this.m_shape.removeUserIndex(l)}resolveOverlaps(e,t){const s=new u,i=[];let n=-1;for(let r=0,o=this.m_verticesOnExtent.length;r<o;r++){this.progress_();const h=this.m_verticesOnExtent[r];if(h===x)continue;const m=this.m_shape.getNextVertex(h);if(this.m_shape.queryXY(h,s),(e?s.y===t:s.x===t)&&(this.m_shape.queryXY(m,s),e?s.y===t:s.x===t)){if(this.isCurve(h))continue;-1===n&&(n=this.m_shape.createUserIndex()),-2!==this.m_shape.getUserIndex(h,n)&&(i.push(h),this.m_shape.setUserIndex(h,n,-2)),-2!==this.m_shape.getUserIndex(m,n)&&(i.push(m),this.m_shape.setUserIndex(m,n,-2))}}if(0===i.length)return void(-1!==n&&this.m_shape.removeUserIndex(n));r(-1!==n),i.sort((e,t)=>this.compareVertices(e,t));for(let r=0,o=i.length;r<o;r++){const e=i[r];this.m_shape.setUserIndex(e,n,r)}const h=new u,m=new u;m.setNAN();let a=-1;for(let r=0,o=i.length;r<o;r++){this.progress_();const o=i[r];if(o!==x&&(this.m_shape.queryXY(o,s),!s.isEqualPoint2D(m))){if(-1!==a)for(;;){let s=!1;const o=r;for(let p=a;p<o;p++){const a=i[p];if(a===x)continue;let o=x;const c=this.m_shape.getNextVertex(a);this.m_shape.queryXY(c,h),m.compare(h)<0&&(e?h.y===t:h.x===t)&&(this.isCurve(a)||(o=c));let l=x;const _=this.m_shape.getPrevVertex(a);if(this.m_shape.queryXY(_,h),m.compare(h)<0&&(e?h.y===t:h.x===t)&&(this.isCurve(_)||(l=_)),o===x||l===x){if(o!==x||l!==x){for(let c=p+1;c<r;c++){const r=i[c];if(r===x)continue;const p=this.m_shape.getNextVertex(r);let _=x;this.m_shape.queryXY(p,h),m.compare(h)<0&&(e?h.y===t:h.x===t)&&(this.isCurve(r)||(_=p));const u=this.m_shape.getPrevVertex(r);let g=x;if(this.m_shape.queryXY(u,h),m.compare(h)<0&&(e?h.y===t:h.x===t)&&(this.isCurve(u)||(g=u)),_!==x&&g!==x){this.beforeRemoveVertex(r,i,n),this.m_shape.removeVertex(r,!1),this.beforeRemoveVertex(_,i,n),this.m_shape.removeVertex(_,!1),s=!0;break}if(o!==x&&g!==x){this.removeOverlap(i,a,o,r,g,n),s=!0;break}if(l!==x&&_!==x){this.removeOverlap(i,r,_,a,l,n),s=!0;break}}if(s)break}}else this.beforeRemoveVertex(a,i,n),this.m_shape.removeVertex(a,!1),this.beforeRemoveVertex(o,i,n),this.m_shape.removeVertex(o,!1),s=!0}if(!s)break}a=r,m.setCoordsPoint2D(s)}}this.m_shape.removeUserIndex(n)}beforeRemoveVertex(e,t,s){let i=this.m_shape.getUserIndex(e,s);r(i>=0),t[i]=x,i=this.m_shape.getUserIndex(e,this.m_verticesOnExtentIndex),r(i>=0),this.m_verticesOnExtent[i]=x;const n=this.m_shape.getPathFromVertex(e);if(n!==x){this.m_shape.getFirstVertex(n)===e&&(this.m_shape.setFirstVertex(n,x),this.m_shape.setLastVertex(n,x))}}removeOverlap(e,t,s,i,n,r){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,r),this.m_shape.removeVertexInternal(i,!1),this.beforeRemoveVertex(n,e,r),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!==x;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 u;this.m_shape.queryXY(i,n);let r=n.y===e&&!this.isCurve(i);i=this.m_shape.getNextVertex(i);const h=new u;this.m_shape.queryXY(i,h);let m=h.y===e&&!this.isCurve(i);i=this.m_shape.getNextVertex(i);const a=new u;for(let t=0,o=s-2;t<o;t++,i=this.m_shape.getNextVertex(i)){this.progress_(),this.m_shape.queryXY(i,a);const t=a.y===e;if(m&&r&&t){if((h.x-n.x)*(a.x-h.x)<=0){this.m_shape.removeVertex(this.m_shape.getPrevVertex(i),!1),h.setCoordsPoint2D(a),m=t&&!this.isCurve(i);continue}}n.setCoordsPoint2D(h),r=m,h.setCoordsPoint2D(a),m=t&&!this.isCurve(i)}}}fixPaths(){for(let n=0,r=this.m_verticesOnExtent.length;n<r;n++){const e=this.m_verticesOnExtent[n];e!==x&&this.m_shape.setPathToVertex(e,x)}const e=this.m_shape.hasCurves();let t=0,s=0;for(let n=this.m_shape.getFirstPath(this.m_geometry);n!==x;){const e=this.m_shape.getFirstVertex(n);if(e===x||n!==this.m_shape.getPathFromVertex(e)){const e=n;n=this.m_shape.getNextPath(n),this.m_shape.setFirstVertex(e,x),this.m_shape.removePathOnly(e);continue}let i=e,r=0;do{this.m_shape.setPathToVertex(i,n),r++,i=this.m_shape.getNextVertex(i)}while(i!==e);this.m_shape.setRingAreaValid(n,!1),this.m_shape.setLastVertex(n,this.m_shape.getPrevVertex(e)),this.m_shape.setPathSize(n,r),s+=r,t++,n=this.m_shape.getNextPath(n)}for(let n=0,h=this.m_verticesOnExtent.length;n<h;n++){let i=this.m_verticesOnExtent[n];if(i===x)continue;let h=this.m_shape.getPathFromVertex(i);if(h!==x)continue;h=this.m_shape.insertPath(this.m_geometry,x);let m=!1,a=0;const o=i;do{this.m_shape.setPathToVertex(i,h),a++,e&&a<=2&&(m||=this.isCurve(i)),i=this.m_shape.getNextVertex(i)}while(i!==o);if(m?0===a:a<=2){let e=this.m_shape.getUserIndex(o,this.m_verticesOnExtentIndex);r(e>=0),this.m_verticesOnExtent[e]=x;const t=this.m_shape.removeVertex(o,!1);2===a&&(e=this.m_shape.getUserIndex(t,this.m_verticesOnExtentIndex),e>=0&&(this.m_verticesOnExtent[e]=x),this.m_shape.removeVertex(t,!1));const s=h;h=this.m_shape.getNextPath(h),this.m_shape.setFirstVertex(s,x),this.m_shape.removePathOnly(s);continue}this.m_shape.setClosedPath(h,!0),this.m_shape.setPathSize(h,a),this.m_shape.setFirstVertex(h,o),this.m_shape.setLastVertex(h,this.m_shape.getPrevVertex(o)),this.m_shape.setRingAreaValid(h,!1),s+=a,t++}this.m_shape.setGeometryPathCount(this.m_geometry,t),this.m_shape.setGeometryVertexCount(this.m_geometry,s);let i=0;for(let n=this.m_shape.getFirstGeometry();n!==x;n=this.m_shape.getNextGeometry(n))i+=this.m_shape.getPointCount(n);this.m_shape.setTotalPointCount(i)}dbgCheckPathFirst(){}isCurve(e){return null!==this.m_shape.getSegment(e)}compareVertices(e,t){const s=new u;this.m_shape.queryXY(e,s);const i=new u;this.m_shape.queryXY(t,i);return s.compare(i)}clipPolesOut(e,t){return this.clipPolygonOrProjectedPolyline2(e,t)}}class I{getOperatorType(){return 10004}supportsCurves(){return!0}accelerateGeometry(e,t,s){return!1}canAccelerateGeometry(e){return!1}executeMany(e,t,s,i){return new V(e,t,s,i)}execute(e,t,s,i){return X(e,t,s,i)}}class V extends e{constructor(e,s,i,n){super(),this.m_progressTracker=n,this.m_index=-1,e||t(""),this.m_envelope=s,this.m_inputGeometryCursor=e,this.m_spatialRefImpl=i,this.m_tolerance=m(i,s,!1).total()}next(){let e;return(e=this.m_inputGeometryCursor.next())?(s(e),this.m_index=this.m_inputGeometryCursor.getGeometryID(),f(e,this.m_envelope,this.m_tolerance,0,this.m_progressTracker)):null}getGeometryID(){return this.m_index}tock(){return!0}getRank(){return 1}}function X(e,t,s,i){return v(e,t,s,Number.NaN,0,i)}export{I as O,d as a,f as c};