// All material copyright Esri, All Rights Reserved, unless otherwise specified. // See https://js.arcgis.com/4.30/esri/copyright.txt for details. //>>built define("exports ../../../geometry/support/boundsUtils ../../../geometry/support/centroid ../../../geometry/support/labelPoint ../CIMPlacements ../enums".split(" "),function(f,g,h,k,l,e){class c{static local(){null===c.instance&&(c.instance=new c);return c.instance}execute(a,b,d,n,p){return new m(a,b,d)}}c.instance=null;class m{constructor(a,b,d){this._geometryCursor=a;this._offsetX=void 0!==b.offsetX?b.offsetX*d:0;this._offsetY=void 0!==b.offsetY?b.offsetY*d:0;this._method=void 0!==b.method?b.method: e.PlacementPolygonCenterMethod.OnPolygon;this._internalPlacement=new l.Placement}next(){const a=this._geometryCursor;this._geometryCursor=null;return a?this._polygonCenter(a):null}_polygonCenter(a){let b=!1;switch(this._method){case e.PlacementPolygonCenterMethod.CenterOfMass:if(a=h.weightedAreaCentroid(a))this._internalPlacement.setTranslate(a[0]+this._offsetX,a[1]+this._offsetY),b=!0;break;case e.PlacementPolygonCenterMethod.BoundingBoxCenter:if(a=g.getCursorBoundsXY(a))this._internalPlacement.setTranslate((a[2]+ a[0])/2+this._offsetX,(a[3]+a[1])/2+this._offsetY),b=!0;break;default:a=k.getLabelPoint(a),null!==a&&(this._internalPlacement.setTranslate(a[0]+this._offsetX,a[1]+this._offsetY),b=!0)}return b?this._internalPlacement:null}}f.PlacementPolygonCenter=c;Object.defineProperty(f,Symbol.toStringTag,{value:"Module"})});