UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

3 lines (2 loc) 1.7 kB
/* COPYRIGHT Esri - https://js.arcgis.com/5.0.19/LICENSE.txt */ import{__decorate as e}from"tslib";import t from"../../../../../core/Accessor.js";import{destroyMaybe as o}from"../../../../../core/maybe.js";import{watch as i,initial as r}from"../../../../../core/reactiveUtils.js";import{property as s,subclass as n}from"../../../../../core/accessorSupport/decorators.js";import{OutlineVisualElement as l}from"../../../interactive/visualElements/OutlineVisualElement.js";let a=class extends t{constructor(e){super(e)}initialize(){this.addHandles([i(()=>this.area.enabled,()=>this._ensureElement(),r),i(()=>this.area.outline?.color,e=>this._updateColor(e),r),i(()=>this.area.geometries,e=>this._updateGeometries(e),r)])}destroy(){this.removeAllHandles(),this._outlineElement=o(this._outlineElement)}_ensureElement(){this.area.enabled&&this.area.outline?.color?this._outlineElement??=new l({view:this.view,geometry:this._mergePolygons(this.area.geometries),isDraped:!0,attached:!0,isDecoration:!1,color:this.area.outline?.color.toUnitRGBA(),renderOccluded:4,width:3}):this._outlineElement=o(this._outlineElement)}_updateGeometries(e){this._ensureElement(),this._outlineElement&&(this._outlineElement.geometry=this._mergePolygons(e))}_updateColor(e){this._ensureElement(),this._outlineElement&&e&&(this._outlineElement.color=e.toUnitRGBA())}_mergePolygons(e){if(!e||0===e.length)return null;const t=e.at(0).clone();return t.rings.length=0,e.forEach(e=>t.rings.push(...e.rings)),t}};e([s({constructOnly:!0})],a.prototype,"view",void 0),e([s({constructOnly:!0})],a.prototype,"area",void 0),a=e([n("esri.views.3d.webgl-engine.effects.focusArea.FocusAreaOutlineItem")],a);export{a as FocusAreaOutlineItem};