@arcgis/core 6.0.0-next.16 → 6.0.0-next.18

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 (134) hide show
  1. package/assets/esri/core/workers/RemoteClient.js +1 -1
  2. package/assets/esri/core/workers/chunks/164c8eeefa8232b2b191.js +2 -0
  3. package/assets/esri/core/workers/chunks/1967b9c96045a5802d08.js +1 -0
  4. package/assets/esri/core/workers/chunks/{261fea092ee7d27608a0.js → 20a2124cbe43e5527c40.js} +1 -1
  5. package/assets/esri/core/workers/chunks/2853606099602f73d379.js +1 -0
  6. package/assets/esri/core/workers/chunks/2981e904ab62f3ed80d0.js +2 -0
  7. package/assets/esri/core/workers/chunks/32cc59e126df8c96a0cf.js +2 -0
  8. package/assets/esri/core/workers/chunks/{36cbd614454581aaf334.js → 34e0a8a3a2beea50f4f5.js} +1 -1
  9. package/assets/esri/core/workers/chunks/{3baa4a9c52f41bfd6abb.js → 3e30b96a8c75bd5b9ae2.js} +1 -1
  10. package/assets/esri/core/workers/chunks/{c79934cd6883307203f8.js → 42753cf4965a94bc91ca.js} +1 -1
  11. package/assets/esri/core/workers/chunks/{b564ec4e03478f5659db.js → 4c240ca50f70bf30813f.js} +1 -1
  12. package/assets/esri/core/workers/chunks/{70d3055f15d8b0cf4074.js → 532e9cda8ac3601d8892.js} +1 -1
  13. package/assets/esri/core/workers/chunks/{953ba13299e7aa92c1a0.js → 564565246dae080f5e6c.js} +1 -1
  14. package/assets/esri/core/workers/chunks/{2145a512d269d64036b0.js → 58c3ae6030def2ed5f31.js} +1 -1
  15. package/assets/esri/core/workers/chunks/5a19a9c3e01d3d415188.js +1 -0
  16. package/assets/esri/core/workers/chunks/5a830bc35adbedd33783.js +1 -0
  17. package/assets/esri/core/workers/chunks/{9f06ec95bdf0d0b52b41.js → 5b91e2dffdc84c006539.js} +1 -1
  18. package/assets/esri/core/workers/chunks/{5acb422fe3cf693d9d4f.js → 603fdbbe9534c614928f.js} +1 -1
  19. package/assets/esri/core/workers/chunks/{c5a9e77977e867a75ff2.js → 60f92eb03c6e17ab4747.js} +1 -1
  20. package/assets/esri/core/workers/chunks/{67ebc5a3d46b254b725c.js → 612345f17f5eeb99ea8f.js} +1 -1
  21. package/assets/esri/core/workers/chunks/{1b077c92345ffb5916c2.js → 65c98f3449044fa4fd79.js} +1 -1
  22. package/assets/esri/core/workers/chunks/{2bd4ee083ca4ad221f8b.js → 65cb5e39c467a35621ca.js} +1 -1
  23. package/assets/esri/core/workers/chunks/67a35155b8b4d36f171e.js +1 -0
  24. package/assets/esri/core/workers/chunks/{f9c5aa0bbf23e780fecc.js → 6ad309154fe84210d23c.js} +1 -1
  25. package/assets/esri/core/workers/chunks/784d6c6949284ed6e10b.js +1 -0
  26. package/assets/esri/core/workers/chunks/{e2190361247f35b02b32.js → 7b5cd150a4d0139850be.js} +1 -1
  27. package/assets/esri/core/workers/chunks/{9b051745d24d1f43480b.js → 7d2cbc767c336d15e4d5.js} +1 -1
  28. package/assets/esri/core/workers/chunks/{590e6c70206122e4cc3c.js → 844eedda8f749972f707.js} +2 -2
  29. package/assets/esri/core/workers/chunks/9503eedfdda55fc5adab.js +1 -0
  30. package/assets/esri/core/workers/chunks/999c23da883eb11cb29e.js +1 -0
  31. package/assets/esri/core/workers/chunks/9b6929faf649e81265fb.js +1 -0
  32. package/assets/esri/core/workers/chunks/a35c69a4751d28c39907.js +1 -0
  33. package/assets/esri/core/workers/chunks/{ec8b7476eac4718eb0ac.js → a504a5e06cb89a620799.js} +1 -1
  34. package/assets/esri/core/workers/chunks/a596779eaeec7310671d.js +1 -0
  35. package/assets/esri/core/workers/chunks/{d5d0fe8e198ff5a902ee.js → a5c8f9f5be4ef5063b42.js} +1 -1
  36. package/assets/esri/core/workers/chunks/{a7bd5ba4d7d97411fd33.js → ab1660f5f8a5268c2fac.js} +1 -1
  37. package/assets/esri/core/workers/chunks/{4bbe1f28f5f16a6bef05.js → ae0563d573baf91e01f7.js} +1 -1
  38. package/assets/esri/core/workers/chunks/b686cd74975da09b9c91.js +2 -0
  39. package/assets/esri/core/workers/chunks/{aa36c3a9bbaa086e3757.js → b8fd7c3b36981261378b.js} +1 -1
  40. package/assets/esri/core/workers/chunks/bd046399e05e759e0bc2.js +1 -0
  41. package/assets/esri/core/workers/chunks/bd46a04a9ee4ea9e6ef1.js +2 -0
  42. package/assets/esri/core/workers/chunks/bfb39590c548188f5052.js +1 -0
  43. package/assets/esri/core/workers/chunks/{bf35927979fc5e7e0478.js → dd0310184fe4832755a8.js} +1 -1
  44. package/assets/esri/core/workers/chunks/dfa5f1311806473e473f.js +1 -0
  45. package/assets/esri/core/workers/chunks/{634523cc7757da9020e4.js → fb70ab267a08e24b710f.js} +1 -1
  46. package/assets/esri/core/workers/chunks/fc139f251dc0523074e7.js +1 -0
  47. package/assets/esri/themes/base/widgets/_Weather.scss +1 -0
  48. package/assets/esri/themes/dark/main.css +1 -1
  49. package/assets/esri/themes/light/main.css +1 -1
  50. package/assets/esri/themes/light/view.css +1 -1
  51. package/chunks/lerc-wasm.js +1 -1
  52. package/config.js +1 -1
  53. package/core/sql/WhereGrammar.js +2 -2
  54. package/editing/sharedTemplates/executor/builders/equallySpaced.js +1 -1
  55. package/kernel.js +1 -1
  56. package/layers/ElevationLayer.js +1 -1
  57. package/layers/GeoJSONLayer.d.ts +1 -1
  58. package/layers/effects/parser.js +3 -3
  59. package/layers/raster/datasets/ImageServerRaster.js +1 -1
  60. package/layers/raster/formats/ElevationCodec.js +2 -0
  61. package/layers/raster/formats/Lerc.js +1 -1
  62. package/layers/support/LercWorker.js +1 -1
  63. package/layers/support/TileInfo.d.ts +1 -1
  64. package/layers/support/TileInfo.js +1 -1
  65. package/layers/support/layerOriginUtils.js +1 -1
  66. package/package.json +4 -4
  67. package/popup/FeaturesModel.js +1 -1
  68. package/smartMapping/support/adapters/FeatureLayerAdapter.js +1 -1
  69. package/smartMapping/support/adapters/FeatureLayerBinningAdapter.js +1 -1
  70. package/smartMapping/support/adapters/InMemoryLayerAdapter.js +1 -1
  71. package/smartMapping/support/adapters/OGCFeatureLayerAdapter.js +1 -1
  72. package/smartMapping/support/adapters/SceneLayerAdapter.js +1 -1
  73. package/smartMapping/support/adapters/support/utils.js +1 -1
  74. package/time/TimeExtent.d.ts +1 -1
  75. package/views/3d/analysis/Dimension/LengthDimensionSubTool.js +1 -1
  76. package/views/3d/analysis/LineOfSight/LineOfSightTool.js +1 -1
  77. package/views/3d/analysis/Viewshed/ViewshedTool.js +1 -1
  78. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementTool.js +1 -1
  79. package/views/3d/interactive/measurementTools/areaMeasurement3D/AreaMeasurement3DTool.js +1 -1
  80. package/views/3d/interactive/measurementTools/directLineMeasurement3D/DirectLineMeasurement3DTool.js +1 -1
  81. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  82. package/views/3d/layers/support/MediaLayerInteraction.js +1 -1
  83. package/views/3d/state/utils/navigationUtils.js +1 -1
  84. package/views/3d/terrain/OverlayRenderer.js +1 -1
  85. package/views/3d/webgl-engine/materials/renderers/MergedRenderer.js +1 -1
  86. package/views/View.js +1 -1
  87. package/views/analysis/ElevationProfile/ElevationProfileTool.js +1 -1
  88. package/views/interactive/snapping/SnappingManagerPool.js +1 -1
  89. package/views/interactive/snapping/allLayerSnapping.js +1 -1
  90. package/widgets/AreaMeasurement2D/AreaMeasurement2DViewModel.d.ts +2 -1
  91. package/widgets/BasemapToggle/BasemapToggleViewModel.d.ts +2 -0
  92. package/widgets/DistanceMeasurement2D/DistanceMeasurement2DViewModel.d.ts +2 -1
  93. package/widgets/ElevationProfile/components/Statistics.js +1 -1
  94. package/widgets/Expand/ExpandViewModel.d.ts +2 -0
  95. package/widgets/FeatureTable/support/FeatureStore.js +1 -1
  96. package/widgets/Fullscreen/FullscreenViewModel.d.ts +3 -1
  97. package/widgets/Home/HomeViewModel.d.ts +2 -0
  98. package/widgets/OrientedImageryViewer.js +1 -1
  99. package/widgets/Sketch/SketchViewModel.js +1 -1
  100. package/widgets/Swipe/SwipeViewModel.d.ts +2 -0
  101. package/widgets/Swipe/types.d.ts +9 -2
  102. package/widgets/TimeSlider/TimeSliderViewModel.d.ts +9 -5
  103. package/widgets/TimeSlider/types.d.ts +7 -0
  104. package/widgets/TimeSlider.d.ts +2 -3
  105. package/widgets/TimeSlider.js +1 -1
  106. package/widgets/Track/TrackViewModel.d.ts +4 -0
  107. package/widgets/Track/types.d.ts +1 -0
  108. package/widgets/support/Selector3D/selectorUtils.js +1 -1
  109. package/assets/esri/core/workers/chunks/0050916e462e3c9e0627.js +0 -1
  110. package/assets/esri/core/workers/chunks/23c43f09c4a4749516e1.js +0 -1
  111. package/assets/esri/core/workers/chunks/34cbaf844730ac2d92c2.js +0 -2
  112. package/assets/esri/core/workers/chunks/3c301a689c7853c9fa67.js +0 -2
  113. package/assets/esri/core/workers/chunks/3f946c13ad97fbed867b.js +0 -1
  114. package/assets/esri/core/workers/chunks/604f0f4150fb79ee54c8.js +0 -1
  115. package/assets/esri/core/workers/chunks/6299be5e7e26bf3c6859.js +0 -1
  116. package/assets/esri/core/workers/chunks/6a8dd8b18b0b825b0c1b.js +0 -1
  117. package/assets/esri/core/workers/chunks/745a153d0cd34faa124e.js +0 -1
  118. package/assets/esri/core/workers/chunks/7572c2bc5062e66f6330.js +0 -1
  119. package/assets/esri/core/workers/chunks/76ab353d80d786777161.js +0 -2
  120. package/assets/esri/core/workers/chunks/7b5f3c79e0605c32b267.js +0 -1
  121. package/assets/esri/core/workers/chunks/8483c50ed8f280fd74bb.js +0 -1
  122. package/assets/esri/core/workers/chunks/8cb716f110d164030309.js +0 -1
  123. package/assets/esri/core/workers/chunks/91dd65cf877c8f2e01a7.js +0 -1
  124. package/assets/esri/core/workers/chunks/b49df4ebd4be1181b0f9.js +0 -2
  125. package/assets/esri/core/workers/chunks/b557824bc1fa163d72a3.js +0 -2
  126. package/assets/esri/core/workers/chunks/d311ff96a5a2791d8cfc.js +0 -1
  127. package/assets/esri/core/workers/chunks/f9ff27cfcf0538ac5e26.js +0 -1
  128. package/assets/esri/core/workers/chunks/fc44227c1756f65b95df.js +0 -1
  129. /package/assets/esri/core/workers/chunks/{b557824bc1fa163d72a3.js.LICENSE.txt → 164c8eeefa8232b2b191.js.LICENSE.txt} +0 -0
  130. /package/assets/esri/core/workers/chunks/{b49df4ebd4be1181b0f9.js.LICENSE.txt → 2981e904ab62f3ed80d0.js.LICENSE.txt} +0 -0
  131. /package/assets/esri/core/workers/chunks/{34cbaf844730ac2d92c2.js.LICENSE.txt → 32cc59e126df8c96a0cf.js.LICENSE.txt} +0 -0
  132. /package/assets/esri/core/workers/chunks/{590e6c70206122e4cc3c.js.LICENSE.txt → 844eedda8f749972f707.js.LICENSE.txt} +0 -0
  133. /package/assets/esri/core/workers/chunks/{3c301a689c7853c9fa67.js.LICENSE.txt → b686cd74975da09b9c91.js.LICENSE.txt} +0 -0
  134. /package/assets/esri/core/workers/chunks/{76ab353d80d786777161.js.LICENSE.txt → bd46a04a9ee4ea9e6ef1.js.LICENSE.txt} +0 -0
@@ -1,4 +1,4 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{prefersRTL as t,substitute as n}from"../intl.js";import{prefersReducedMotion as r}from"../core/a11yUtils.js";import{createTask as i}from"../core/asyncUtils.js";import a from"../core/Collection.js";import{deprecateWidget as o,deprecatedProperty as s}from"../core/deprecate.js";import c from"../core/Logger.js";import{isAbortError as l}from"../core/promiseUtils.js";import{watch as u,initial as d,syncAndInitial as f,on as p,sync as m}from"../core/reactiveUtils.js";import{throttle as h}from"../core/throttle.js";import{property as g,subclass as ee}from"../core/accessorSupport/decorators.js";import{or as te}from"../layers/orientedImagery/transformations/utils.js";import ne from"./Expand.js";import re from"./PanoramicVideoViewer.js";import _ from"./PanoramicViewer.js";import v from"./Widget.js";import{getAllArcPath as y}from"./OrientedImageryViewer/arcUtils.js";import{getDelegatedEvents as b,defaultImageGeometryField as x,defaultOIObjectIDField as ie,segmentArcs as S,featureCircleRadius as ae,navigationToolDimensionLength as C,sectorsRadii as w}from"./OrientedImageryViewer/constants.js";import{css as T,navigation as oe,navigationToolRotationFrom as E,navigationToolRotationTo as D,root as O}from"./OrientedImageryViewer/css.js";import{isFeatureAttachment as k,loadImageForAttachment as A,getThumbnailPixelBlock as j,renderImageWithRotation as M}from"./OrientedImageryViewer/galleryUtils.js";import N from"./OrientedImageryViewer/OrientedImageryViewerViewModel.js";import P from"./OrientedImageryViewer/OrientedImageryViewerVisibleElements.js";import{loadAlertComponents as F,Alert as I}from"./OrientedImageryViewer/components/Alert.js";import L from"./OrientedImageryViewer/components/ImageLocationWidget.js";import R from"./OrientedImageryViewer/components/ImageViewer.js";import z from"./OrientedImageryViewer/components/NavigationUI.js";import B from"./OrientedImageryViewer/components/NavigationUI360.js";import{loadSequentialNavigationUIComponents as V,SequentialNavigationUI as H}from"./OrientedImageryViewer/components/SequentialNavigationUI.js";import{loadVideoEnhancementComponents as U,renderEnhancementSlider as W,VideoEnhancementTools as G}from"./OrientedImageryViewer/components/VideoEnhancementTools.js";import{NoImageLoadedError as K}from"./OrientedImageryViewer/navigation/errors.js";import{loadCalciteComponents as se}from"./support/componentsUtils.js";import{globalCss as q}from"./support/globalCss.js";import{iconByKind as ce}from"./support/iconUtils.js";import{vmEvent as J,messageBundle as Y,tsx as X}from"./support/widget.js";import{setFocus as Z}from"./support/widgetUtils.js";const Q={overlayed:`overlayed`};let $=class extends v{constructor(e,t){super(e,t),this.actionBarPosition=`top`,this.dataCaptureEnabled=!1,this.galleryOpened=!1,this.imageEnhancementToolActive=!1,this.videoEnhancementToolActive=!1,this.imageOverlaysOpened=!1,this.navigationToolActive=!1,this.viewModel=new N,this.messagesCommon=null,this.messagesSketch=null,this.pixelMeasurementUnit=`meters`,this.pixelAreaMeasurementUnit=`square-meters`,this.selectedGroup=null,this.showCameraLocations=!1,this.showMapFeatures=!1,this.visibleElements=new P,this._defaultSuperimposeZOffsetPercentage=100,this._panoramicSuperimposeRadiusOffsetPercentage=100,this._exploreImages3DMenuOpen=!1,this._exploreImages3DReferenceElement=null,this._imageOverlaysLoaderTask=null,this._imageMeasurementToolsLoaderTask=null,this._navigationSettingsLoaderTask=null,this._navigationTask=null,this._clearMeasurements=()=>{this.viewModel.measureType=null,this.viewModel.triangularMeasurementActive=!1,this.viewModel.displayNewMeasurementButton=!0,this.viewModel.clearPreviousMeasurements()},this._clearImageLocation=()=>{this.imageLocationToolActive=!1,this.triangularMeasurementActive=!1},this._createNavigationTask=async e=>(this._navigationTask?.abort(),this._navigationTask=i(async t=>await this.navigate({...e,signal:t})),this._navigationTask.promise),this._navigateNext=async()=>await this._createNavigationTask({step:1}),this._navigatePrevious=async()=>await this._createNavigationTask({step:-1}),this._navigationToolExpanded=!1,this._navigationTool=null,this._galleryController=new AbortController,this._galleryObserver=new IntersectionObserver(this._lazyLoadImage.bind(this)),this._overlayedLayers=new a,this._previousAction=null,this._closeImageSequenceAlert=()=>{this._set(`noImageInSequenceError`,!1)},this._handleDataCaptureLayerChange=async e=>{if(this.dataCaptureLayer&&await this.stopDataCapture(!0),this.dataCaptureLayer=this.dataCaptureLayer===e?null:e,this.dataCaptureLayer)return this.startDataCapture(this.dataCaptureLayer)},this._handleNavigationSettingsInputChange=(e,t)=>{this.set(`${e}Threshold`,t)},this._handleNavigationSettingsToggle=e=>{this.viewModel.preserveAngle=e},this._handleOverlayLayerDeselect=e=>{let t=e.layer;t===this.dataCaptureLayer&&(this.stopDataCapture(),this.dataCaptureLayer=null),this.removeOverlayedGraphicsOnImage(`${t.id}`)},this._handleOverlayLayerSelect=e=>{let t=e.layer;this.viewModel.overlayMapFeatures(t,this.showMapFeatures),this.addHandles(u(()=>t.visible,()=>{this.viewModel.toggleOverlayMapFeatures(t.id,t.visible,this.showMapFeatures)}),`${Q.overlayed}-${t.id}`)},this._highlight=e=>{let t=e.target?.dataset.objectid;t&&this.viewModel.highlight(t)},this._onAction=e=>{let{target:t}=e,{dataset:{action:n}}=t,{_previousAction:r}=this,i=r?.dataset.action,a=i?.includes(`draw`)??!1,o=i===`select-feature`,s=i!==n;switch(n){case`draw-point`:case`draw-polygon`:case`draw-polyline`:{r&&te(o,a&&s)&&(r.active=!1),t.active=!t.active;let e=n.replace(`draw-`,``);this.viewModel.digitizeCreate(e),this._previousAction=t.active?t:null;break}case`save`:this.viewModel.saveDrawing();break;case`select-feature`:a&&(this._previousAction.active=!1),t.active=!t.active,this.viewModel.toggleSelection(t.active),this._previousAction=t.active?t:null;break;case`delete-feature`:this.viewModel.digitizeDelete()}},this._onImageOverlayClosed=e=>{e.stopPropagation(),this.imageOverlaysOpened=!1},this._onShowCameraLocationsChanged=e=>{this.showCameraLocations=e},this._onShowMapFeaturesChanged=e=>{this.showMapFeatures=e},this._removeHighlight=()=>this.viewModel.removeHighlight(),this._restoreOverlays=async()=>Promise.all(this._overlayedLayers.map(e=>this.viewModel.overlayMapFeatures(e,this.showMapFeatures))),this._scaleNavigationTool=()=>{this._navigationToolExpanded=!this._navigationToolExpanded},this._sketchLoaderTask=null,this._handleExploreImages3DListChange=e=>{let{currentTarget:t}=e,n=t.selectedItems.map(({value:e})=>e);if(n.length)n.length===2?this._setExploreImages3DSearchMode(`both`):this._setExploreImages3DSearchMode(n[0]);else{let e=[...t.querySelectorAll(`calcite-list-item`)].find(({value:e})=>e===`3d`);e&&(e.selected=!0),this._setExploreImages3DSearchMode(`3d`)}},this._closeExploreImages3DMenu=()=>{this._exploreImages3DMenuOpen=!1},this._settingsToggle=null,this._toggleImageNavigation=async e=>{let t=this.navigationMode;this._closeAllImageTools(),this.navigationMode=t===e?null:e;let{activeViewer:n}=this.viewModel;if(!n)return;let{mode:r,preserveAngle:i}=this.viewModel;if(r==="default"){if(this.navigationMode===`directional`){let e=await this._loadNavigationSettings(),t=i===`heading`||i===`both`,n=i===`pitch`||i===`both`,{messages:r,messagesCommon:a}=this,o=new e({cameraHeadingThreshold:this.cameraHeadingThreshold,cameraPitchThreshold:this.cameraPitchThreshold,uiStrings:{configureNavigation:r.configureNavigation,preserveHeading:r.preserveHeading,preserveHeadingDescription:r.preserveHeadingDescription,preservePitch:r.preservePitch,preservePitchDescription:r.preservePitchDescription,settings:a.settings,thresholdLabel:r.thresholdLabel},onInputChange:this._handleNavigationSettingsInputChange,onToggle:this._handleNavigationSettingsToggle,preserveHeading:t,preservePitch:n});this._settingsToggle=new ne({content:o,expandIcon:`configure`}),this.viewModel.activeViewer?.ui.add(this._settingsToggle,{position:`top-left`})}else this._settingsToggle&&(this._settingsToggle.expanded=!1,this.viewModel.activeViewer?.ui.remove(this._settingsToggle))}},this._toggleImageAttributes=h(this.viewModel.toggleImageAttributes.bind(this.viewModel)),this._rootActionTitleToFocus=null,this._actionTitleToFocus=null,this._focusPendingAction=e=>{let t=this._actionTitleToFocus;if(!t)return;let n=[...e.querySelectorAll(`calcite-action`)].find(e=>e.getAttribute(`title`)===t);n&&(this._actionTitleToFocus=null,Z(n))},this.navigate=async e=>{let t=null;try{let{currentNode:n}=this.viewModel;if(!n)throw new K;t=await this.viewModel.navigate(n,e)}catch(e){l(e)||c.getLogger(this).error(`Error occurred while navigating`,e),[`NoImageInSequenceError`,`NoSequenceFoundError`].includes(e.name)&&this._set(`noImageInSequenceError`,!0)}return t},this.reset=()=>{this._closeAllImageTools(),this.viewModel.reset()},this._loadImageFromGallery=this._loadImageFromGallery.bind(this),this._registerGalleryItem=this._registerGalleryItem.bind(this),this._unregisterGalleryItem=this._unregisterGalleryItem.bind(this),this.loadImageFromSource=this.loadImageFromSource.bind(this),this.updateSuitabilities=this.updateSuitabilities.bind(this),this._handleVideoBrightnessChange=this._handleVideoBrightnessChange.bind(this),this._handleVideoContrastChange=this._handleVideoContrastChange.bind(this),this._handleBrightnessChange=this._handleBrightnessChange.bind(this),this._handleContrastChange=this._handleContrastChange.bind(this),this._handleSharpnessChange=this._handleSharpnessChange.bind(this),this._handleSuperimposeZOffsetChange=this._handleSuperimposeZOffsetChange.bind(this),this._toggleSuperimposeCameraLock=this._toggleSuperimposeCameraLock.bind(this),this._resetSuperimposeOffset=this._resetSuperimposeOffset.bind(this),this._resetVideoTools=this._resetVideoTools.bind(this),this._toggleEnhancementToolState=this._toggleEnhancementToolState.bind(this),this.announceDeprecation=()=>{o(c.getLogger(this),`Oriented Imagery Viewer`,`arcgis-oriented-imagery-viewer`,{version:`5.0`})}}initialize(){this.addHandles([u(()=>[this.viewModel?.bestFeatureAngle,this._navigationTool],([e,t])=>{t&&this._updateNavigationTool(t)},d),u(()=>this.currentCoverageVisible,e=>this._onCurrentCoverageVisibilityChange(e)),u(()=>this.isAdditionalCoverageVisible,e=>this._onAdditionalCoverageVisibilityChange(e)),u(()=>this.isAdditionalPointSourcesVisible,e=>this._onAdditionalCameraLocationsVisibility(e)),u(()=>this.superimposeViewEnabled,e=>{e?(this._closeAllImageTools(),this.selectedGroup=null,this.shouldShowSelectedImage=!1,this._disableExploreImages3D()):this._resetSuperimposeOffset()}),u(()=>({features:this.currentBestFeature,overlaysEnabled:this._imageOverlaysEnabled,showCameraLocations:this.showCameraLocations}),({overlaysEnabled:e,showCameraLocations:t})=>{e&&this.viewModel.overlayCameraLocations(t)},f),u(()=>({feature:this.currentBestFeature,overlaysEnabled:this._imageOverlaysEnabled,showMapFeatures:this.showMapFeatures}),async(e,t)=>{e.showMapFeatures!==t?.showMapFeatures&&await this.viewModel.toggleAllOverlayMapFeatures(e.showMapFeatures);let n=e.feature&&e.feature!==t?.feature,r=!e.overlaysEnabled&&!!t?.overlaysEnabled,i=e.overlaysEnabled&&!t?.overlaysEnabled,a=this.viewModel.mode===`video`||this.viewModel.mode===`panoramic-video`;r&&a?(this.viewModel.removeAllOverlayMapFeatures(),this.viewModel.mode===`video`&&this.viewModel.videoViewModel?.clearOverlayGraphics()):(n||i)&&(n&&(this._resetSuperimposeOffset(),this.viewModel.removeAllOverlayMapFeatures()),e.overlaysEnabled&&(this.dataCaptureLayer&&this.stopDataCapture(),await this._restoreOverlays(),this.dataCaptureLayer&&(await this.startDataCapture(this.dataCaptureLayer),this._previousAction?.active&&(this._previousAction.active=!1,this._previousAction=null))))},d),p(()=>this.viewModel,`popup-open`,async e=>{await this.view?.openPopup(e)},m),p(()=>this.viewModel,`popup-close`,()=>{this.view?.closePopup()},m),this._toggleImageAttributes])}loadDependencies(){return Promise.all([U(),V(),se({"action-bar":()=>import(`@esri/calcite-components/dist/components/calcite-action-bar`),"action-group":()=>import(`@esri/calcite-components/dist/components/calcite-action-group`),action:()=>import(`@esri/calcite-components/dist/components/calcite-action`),block:()=>import(`@esri/calcite-components/dist/components/calcite-block`),list:()=>import(`@esri/calcite-components/dist/components/calcite-list`),"list-item":()=>import(`@esri/calcite-components/dist/components/calcite-list-item`),panel:()=>import(`@esri/calcite-components/dist/components/calcite-panel`),popover:()=>import(`@esri/calcite-components/dist/components/calcite-popover`),shell:()=>import(`@esri/calcite-components/dist/components/calcite-shell`),dialog:()=>import(`@esri/calcite-components/dist/components/calcite-dialog`),slider:()=>import(`@esri/calcite-components/dist/components/calcite-slider`),notice:()=>import(`@esri/calcite-components/dist/components/calcite-notice`),"shell-panel":()=>import(`@esri/calcite-components/dist/components/calcite-shell-panel`)}),F()])}destroy(){this._galleryController.abort(),this._galleryObserver.disconnect(),this.currentBestFeature=null}get accuracyParametersMissing(){return this.viewModel.accuracyParametersMissing}get activeLayer(){return s(c.getLogger(this),`activeLayer`,{replacement:`layer`}),this.layer}set activeLayer(e){s(c.getLogger(this),`activeLayer`,{replacement:`layer`}),this.layer=e}get activeVideoIcon(){let{videoElement:e,videoViewModel:t}=this.viewModel;return!e?.loaded||!t||t.videoPaused?`play`:`pause`}get activeAudioIcon(){let{videoElement:e,videoViewModel:t}=this.viewModel;return e?.loaded&&t?.videoMuted?`sound-off`:`sound`}get cameraHeadingThreshold(){return this.viewModel.cameraHeadingThreshold}set cameraHeadingThreshold(e){this.viewModel.cameraHeadingThreshold=e}get cameraPitchThreshold(){return this.viewModel.cameraPitchThreshold}set cameraPitchThreshold(e){this.viewModel.cameraPitchThreshold=e}get canNavigateSequentially(){return!!this.layer?.effectiveSequenceOrderField?.length}get currentBestFeature(){return this.viewModel.currentBestFeature}set currentBestFeature(e){this.viewModel.currentBestFeature=e}get currentCoverageVisible(){return this.viewModel.currentCoverageVisible}set currentCoverageVisible(e){this.viewModel.currentCoverageVisible=e}get dataCaptureLayer(){return this.viewModel.dataCaptureLayer}set dataCaptureLayer(e){this.viewModel.dataCaptureLayer=e}get depthImageNotSupported(){return this.viewModel.depthImageNotSupported}get disabled(){return this.viewModel.disabled}set disabled(e){this.viewModel.disabled=e}get displayMessage(){return this.viewModel.displayMessage}get enhancementToolActive(){return this.viewModel.mode===`video`?this.videoEnhancementToolActive:this.imageEnhancementToolActive}set enhancementToolActive(e){this.viewModel.mode===`video`?this.videoEnhancementToolActive=e:this.imageEnhancementToolActive=e}get features(){return this.viewModel.features}get imagePointsInView(){return this.viewModel.imagePointsInView}get icon(){return`oriented-imagery-widget`}set icon(e){this._overrideIfSome(`icon`,e)}get imageGalleryEnabled(){return this.viewModel.imageGalleryEnabled}get imageLocationToolActive(){return this.viewModel.imageLocationToolState}set imageLocationToolActive(e){this.viewModel.imageLocationToolState=e}get invalidCameraHeading(){return this.viewModel.invalidCameraHeading}get isAdditionalCoverageVisible(){return this.viewModel.isAdditionalCoverageVisible}set isAdditionalCoverageVisible(e){this.viewModel.isAdditionalCoverageVisible=e}get isAdditionalPointSourcesVisible(){return this.viewModel.isAdditionalPointSourcesVisible}set isAdditionalPointSourcesVisible(e){this.viewModel.isAdditionalPointSourcesVisible=e}get mapImageConversionToolState(){return this.viewModel.mapImageConversionToolState}set mapImageConversionToolState(e){this.viewModel.setMapImageConversionToolState(e)}get measureType(){return this.viewModel.measureType}set measureType(e){this.viewModel.measureType=e}get layer(){return this.viewModel.layer}set layer(e){this.viewModel.layer=e}get navigationMode(){return this.viewModel.navigationMode}set navigationMode(e){this.viewModel.navigationMode=e}get popupEnabled(){let{popupEnabled:e,state:t}=this.viewModel;return(t===`image-loaded`||this.videoLoaded)&&e}get preloadMedia(){return this.viewModel.preloadMedia}set preloadMedia(e){this.viewModel.preloadMedia=e}get referencePoint(){return this.viewModel.referencePoint??null}get selectedFeatureObjectId(){return this.currentBestFeature?.attributes?.objectId??null}get selectedPoint(){return this.viewModel.selectedPoint}get sketchViewModel(){return this.viewModel.sketch}get triangularMeasurementActive(){return this.viewModel.triangularMeasurementActive}set triangularMeasurementActive(e){this.viewModel.triangularMeasurementActive=e}get videoLoaded(){let{mode:e,videoElement:t,panoramicVideoLoaded:n}=this.viewModel;return(e===`video`&&t?.loaded===!0||n)??!1}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}set determineWorkflowForFeature(e){this.viewModel.determineWorkflowForFeature=e}get determineWorkflowForFeature(){return this.viewModel.determineWorkflowForFeature}get shouldShowSelectedImage(){return this.viewModel.shouldShowSelectedImage}set shouldShowSelectedImage(e){this.viewModel.shouldShowSelectedImage=e}get superimposeViewEnabled(){return this.viewModel.superimposeViewEnabled}set superimposeViewEnabled(e){this.viewModel.superimposeViewEnabled=e}get defaultSuperimposeCameraLockEnabled(){return this.viewModel.defaultSuperimposeCameraLockEnabled}set defaultSuperimposeCameraLockEnabled(e){this.viewModel.defaultSuperimposeCameraLockEnabled=e}set updateFootprint(e){this.viewModel.updateFootprint=e}get updateFootprint(){return this.viewModel.updateFootprint}get verticalFilterEnabled(){return this.viewModel.verticalFilterEnabled}set verticalFilterEnabled(e){this.viewModel.verticalFilterEnabled=e}get _exploreImages3DSearchMode(){return this.verticalFilterEnabled&&this.viewModel.frustumSearchEnabled?`both`:this.viewModel.frustumSearchEnabled?`frustum`:`3d`}get _actionBarLayout(){return this.actionBarPosition===`start`||this.actionBarPosition===`end`?`vertical`:`horizontal`}_renderActionBar(){let{selectedGroup:e,superimposeViewEnabled:n}=this,r=this._actionBarLayout;if(n)return X(`calcite-action-bar`,{"data-testid":`action-bar--superimpose`,expandToggleDisabled:!0,layout:r,slot:`action-bar`},X(`calcite-action-group`,{overlayPositioning:`fixed`},this._superimposeViewToggle()));let i=t();return X(`calcite-action-bar`,{afterUpdate:this._focusPendingAction,"data-testid":`action-bar`,expandToggleDisabled:!0,layout:r,slot:`action-bar`},!e&&X(`calcite-action-group`,{key:`main`,overlayPositioning:`fixed`},this._searchGroupToggle(),this._overlaysGroupToggle(),this._navigationGroupToggle(),this._measurementsGroupToggle(),this._utilitiesGroupToggle()),this._renderGroupBackAction(i),e===`overlays`&&X(`calcite-action-group`,{key:`overlays`,overlayPositioning:`fixed`},this._currentFootprintToggle(),this._additionalFootprintToggle(),this._additionalPointSourcesToggle(),this._mapImageConversionToggle(),this._imageOverlaysToggle()),e===`navigation`?this._directionToolsToggle():null,e===`navigation`&&X(`calcite-action-group`,{key:`context-navigation`,overlayPositioning:`fixed`},this._navigationToolToggle(),this._imageGalleryToggle()),e===`measurements`&&this._measurementToolToggle(),e===`utilities`&&X(`calcite-action-group`,{overlayPositioning:`fixed`},this._imageEnhancementsToggle(),this._videoEnhancementsToggle(),this._superimposeViewToggle(),this._openPopupAction()),e===`search`&&X(`calcite-action-group`,{key:`search`,overlayPositioning:`fixed`},this._exploreImagesToggle(),this._exploreImages3DToggle(),this._showSelectedImageToggle()))}_renderGroupBackAction(e){return this.selectedGroup?X(`calcite-action`,{bind:this,icon:e?`arrow-right`:`arrow-left`,key:`back-arrow`,text:this.messages.previous,title:this.messages.previous,onclick:()=>this._toggleGroupSelection(null)}):null}get _activeMeasurementHeading(){let{measureType:e,messages:t,triangularMeasurementActive:n}=this,{groundArea:r,heightAboveGround:i,groundDistance:a,triangulatedAreaHeading:o,triangulatedDistanceHeading:s}=t;if(n)return e===`area`?o:s;switch(e){case`area`:return r;case`height`:return i;default:return a}}_additionalFootprintToggle(){let{isAdditionalCoverageVisible:e,invalidCameraHeading:t,visibleElements:{additionalFootprintToggle:n}}=this;return n?X(`calcite-action`,{active:e,bind:this,class:T.addCoverage,disabled:t,icon:`trapezoid-area`,text:this.messages.additionalFootprints,title:this.messages.additionalFootprints,onclick:this._toggleAdditionalCoverage}):null}_additionalPointSourcesToggle(){let{isAdditionalPointSourcesVisible:e,invalidCameraHeading:t,visibleElements:{additionalCameraLocationsToggle:n}}=this;return n?X(`calcite-action`,{active:e,bind:this,class:T.addExpPoints,disabled:t,icon:`circle-area`,text:this.messages.additionalCameraLocations,title:this.messages.additionalCameraLocations,onclick:this._toggleAdditionalCameraLocations}):null}get _measurementToggle(){let{viewModel:{state:e,measureType:t,currentBestFeatureMeasurementImage:n},triangularMeasurementActive:r,id:i}=this;if(e!==`image-loaded`||!t||r&&!n)return;this._imageMeasurementToolsLoaderTask||this._loadImageMeasurementResources();let a=this._imageMeasurementToolsLoaderTask?.value;return a?X(`calcite-dialog`,{bind:this,dragEnabled:!0,escapeDisabled:!0,heading:this._activeMeasurementHeading,id:`${i}-${t}-measurement`,open:!0,placement:`bottom-start`,resizable:!0,scale:`s`,slot:`dialogs`,width:`s`,onCalciteDialogBeforeClose:this._clearMeasurements},X(a,{measurementType:t,measurementUnitMessages:this.measurementUnitMessages,messages:this.messages,oiViewModel:this.viewModel})):null}get _renderRoot(){let{viewModel:{state:e},triangularMeasurementActive:t}=this;return X(`calcite-panel`,{bind:this,class:t?T.viewerContainerMeasurement:T.viewerContainer,heading:this.visibleElements.header?this.messages.title:void 0,loading:e.includes(`loading`)&&!t},X(`calcite-shell`,null,this.visibleElements.menu?X(`calcite-shell-panel`,{actionBarPosition:this.actionBarPosition,collapsed:!0,displayMode:`dock`,slot:`panel-${this.actionBarPosition}`},this._renderActionBar()):null,X(`calcite-panel`,null,this._imageViewer,this._panoramicViewer,this._panoramicVideoViewer,this._videoViewer,this._messageBox,this.invalidCameraHeading?null:[this._imageGalleryPanel,this._renderNavigation,this._imageOverlaysPanel()],this._exploreImages3DTools,this._imageEnhancementTools,this._videoEnhancementTools,this._superimposeTools,this._renderSketch(),this._navigationUI),this._imageViewerTriangular,this._measurementToggle,this._locationToggle,this.invalidCameraHeading?this._renderWarning(this.messages.invalidCameraHeadingWarningTitle,this.messages.invalidCameraHeadingWarningDescription):null,this.depthImageNotSupported?this._renderWarning(this.messages.depthImageNotSupportedTitle,this.messages.depthImageNotSupportedDescription):null,this.noImageInSequenceError?this._renderWarning(this.messages.sequentialNavigationWarning,this.messages.sequentialNavigationWarning,this._closeImageSequenceAlert):null))}_currentFootprintToggle(){let{currentCoverageVisible:e,invalidCameraHeading:t}=this,{currentFootprintToggle:n}=this.visibleElements;return n?X(`calcite-action`,{active:e,bind:this,class:T.currentCoverage,disabled:t,icon:`trapezoid-area`,text:this.messages.currentFootprint,title:this.messages.currentFootprint,onclick:this._toggleCurrentCoverage}):null}_exploreImagesToggle(){let{exploreImages:e}=this.messages;return this.visibleElements.exploreImages?X(`calcite-action`,{active:!this.disabled,bind:this,icon:`oriented-imagery-widget`,text:e,title:e,onclick:this._toggleExploreImages}):null}get _imageEnhancementTools(){let{enhancementToolActive:e,viewModel:{brightness:t,contrast:n,sharpness:r,state:i}}=this;return e&&i===`image-loaded`?X(`calcite-panel`,{bind:this,class:T.imageEnhancementWrapper,closable:!0,closed:!e,heading:this.messages.imageEnhancement,key:this.messages.imageEnhancement,onCalcitePanelClose:this._toggleEnhancementToolState},X(`div`,{class:T.imageEnhancementTools},W({title:this.messages.brightness,value:t,handleChange:this._handleBrightnessChange}),W({title:this.messages.contrast,value:n,handleChange:this._handleContrastChange}),W({title:this.messages.sharpness,value:r,max:1,min:0,ticks:.5,step:.1,handleChange:this._handleSharpnessChange})),X(`calcite-action`,{bind:this,icon:`reset`,slot:`header-actions-end`,text:this.messagesCommon.reset,title:this.messagesCommon.reset,onclick:this._resetImageTools})):null}get _videoEnhancementTools(){let{enhancementToolActive:e,viewModel:{videoViewModel:t,mode:n},messages:{videoEnhancement:r,brightness:i,contrast:a},messagesCommon:{reset:o}}=this;return!e||n!==`video`||!t?null:X(G,{brightness:t.videoBrightness,contrast:t.videoContrast,handleBrightnessChange:this._handleVideoBrightnessChange,handleContrastChange:this._handleVideoContrastChange,resetTools:this._resetVideoTools,uiStrings:{videoEnhancement:r,brightness:i,contrast:a,reset:o},videoEnhancementToolActive:e,onClose:this._toggleEnhancementToolState})}get _superimposeTools(){let{superimposeViewEnabled:e,view:t,viewModel:{state:n,mode:r},messages:{superimposeSettings:i,superimposeSliderTitle:a,superimposeSliderTooltip:o}}=this,s=r===`panoramic`;return!e||t?.type!==`3d`||n!==`image-loaded`?null:X(`calcite-panel`,{bind:this,class:this.classes(T.imageEnhancementWrapper,T.superimposeTools),heading:i,key:`superimpose-settings`},X(`div`,{class:T.imageEnhancementTools},W({title:a,tooltip:o,value:s?this._panoramicSuperimposeRadiusOffsetPercentage:this._defaultSuperimposeZOffsetPercentage,max:100,min:0,ticks:10,step:1,handleChange:this._handleSuperimposeZOffsetChange})),X(`calcite-action`,{bind:this,icon:`reset`,slot:`header-actions-end`,text:this.messagesCommon.reset,title:this.messagesCommon.reset,onclick:this._resetSuperimposeOffset}))}_imageEnhancementsToggle(){let{state:e,mode:t}=this.viewModel,{enhancementTool:n}=this.visibleElements;return!n||t===`video`?null:X(`calcite-action`,{active:this.enhancementToolActive,bind:this,disabled:t!=="default"||e!==`image-loaded`,icon:`sliders-horizontal`,text:this.messages.imageEnhancement,title:this.messages.imageEnhancement,onclick:this._toggleEnhancementToolState})}_exploreImages3DToggle(){let{exploreImages3D:e}=this.messages,t=this.view?.type!==`3d`||!this.layer?.hasZ;return this.visibleElements.exploreImages3D?X(`calcite-action`,{active:this._isExploreImages3DEnabled,afterCreate:e=>{this._exploreImages3DReferenceElement=e},bind:this,disabled:t,icon:`3d-search`,text:e,title:e,onclick:this._toggleExploreImages3DMenu}):null}get _exploreImages3DTools(){let{frustumRange:e,search3DFilters:t,verticalRange:n}=this.messages,r=this._exploreImages3DSearchMode;return!this.visibleElements.exploreImages3D||!this._exploreImages3DReferenceElement?null:X(`calcite-popover`,{closable:!0,heading:t,key:`explore-images-3d-tools`,label:t,open:this._exploreImages3DMenuOpen,overlayPositioning:`fixed`,placement:`bottom-start`,referenceElement:this._exploreImages3DReferenceElement,scale:`s`,onCalcitePopoverClose:this._closeExploreImages3DMenu},X(`calcite-list`,{label:t,scale:`s`,selectionMode:`multiple`,onCalciteListChange:this._handleExploreImages3DListChange},X(`calcite-list-item`,{label:n,selected:r===`3d`||r===`both`,value:`3d`}),X(`calcite-list-item`,{label:e,selected:r===`frustum`||r===`both`,value:`frustum`})))}_showSelectedImageToggle(){let{displayImages:e}=this.messages,t=this.viewModel.mode.includes(`video`);return this.visibleElements.showSelectedImage?X(`calcite-action`,{active:this.shouldShowSelectedImage,bind:this,disabled:t,icon:`show-oriented-imagery`,text:e,title:e,onclick:this._toggleShowSelectedImage}):null}_superimposeViewToggle(){let{superimposeView:e}=this.messages,{mode:t,accuracyParametersMissing:n}=this.viewModel,r=!this.superimposeViewEnabled&&(this.view?.type!==`3d`||t.includes(`video`)||n);return this.visibleElements.superimpose?X(`calcite-action`,{active:this.superimposeViewEnabled,bind:this,disabled:r,icon:`superimpose`,text:e,title:e,onclick:this._toggleSuperimposeView}):null}_videoEnhancementsToggle(){let{mode:e}=this.viewModel,{videoEnhancement:t}=this.messages,{enhancementTool:n}=this.visibleElements;return!n||e!==`video`?null:X(`calcite-action`,{active:this.enhancementToolActive,bind:this,disabled:e!==`video`,icon:`sliders-horizontal`,text:t,title:t,onclick:this._toggleEnhancementToolState})}get _imageGalleryPanel(){let{container:e,galleryOpened:t,imageGalleryEnabled:n}=this;return n&&t&&e?this._imageGalleryContext:null}get _imageGalleryContext(){let{galleryOpened:e,invalidCameraHeading:t}=this;return X(`calcite-panel`,{bind:this,class:T.carousel,closable:!0,closed:!e,disabled:t,heading:this.messages.imageGallery,key:this.messages.imageGallery,onCalcitePanelClose:this._toggleImageGallery},X(`div`,{class:T.carouselContainer},this._renderThumbnails))}_imageGalleryToggle(){let{imageGalleryEnabled:e,invalidCameraHeading:t,visibleElements:{imageGallery:n}}=this;return n?X(`calcite-action`,{active:this.galleryOpened,bind:this,disabled:!e||t,icon:`images`,text:this.messages.imageGallery,title:this.messages.imageGallery,onclick:this._toggleImageGallery}):null}get _imageOverlaysComponent(){let{_imageOverlayMessages:e,_imageOverlaysLoaderTask:t,_overlayedLayers:n,dataCaptureEnabled:r,dataCaptureLayer:a,imageOverlaysOpened:o,showCameraLocations:s,showMapFeatures:c,view:l,layer:u}=this,d=r&&!this.viewModel.mode.includes(`video`);if(!u)return null;let f=u.imageGeometryField?.length?u.imageGeometryField:x,p=u.imageReferenceField?.length?u.imageReferenceField:ie;t||(this._imageOverlaysLoaderTask=i(async()=>(await import(`./OrientedImageryViewer/components/ImageOverlays.js`)).default));let m=this._imageOverlaysLoaderTask?.value;return m?X(m,{closed:!o,dataCaptureEnabled:d,dataCaptureLayer:a,imageGeometryField:f,imageReferenceField:p,messages:e,overlayedLayers:n,showCameraLocations:s,showMapFeatures:c,view:l,onDataCaptureLayerChanged:this._handleDataCaptureLayerChange,onFilterCapturedFeatures:this.viewModel.filterCapturedFeatures,onImageOverlaysClosed:this._onImageOverlayClosed,onLayerDeselected:this._handleOverlayLayerDeselect,onLayerSelected:this._handleOverlayLayerSelect,onShowCameraLocationsChanged:this._onShowCameraLocationsChanged,onShowMapFeaturesChanged:this._onShowMapFeaturesChanged}):null}get _navigationUI(){let{navigationMode:e,viewModel:t}=this,{mode:n,state:r}=t;if(!(!e||n!=="default"&&n!==`panoramic`||r!==`image-loaded`))return e===`directional`?n==="default"?X(z,{cameraHeadingThreshold:this.cameraHeadingThreshold,cameraPitchThreshold:this.cameraPitchThreshold,currentNode:this.viewModel.currentNode,navigate:this._createNavigationTask,nodes:this.viewModel.navigationNodes,preserveAngle:this.viewModel.preserveAngle}):X(B,{currentNode:this.viewModel.currentNode,navigate:this._createNavigationTask,nodes:this.viewModel.navigationNodes}):X(H,{layout:`horizontal`,uiStrings:{end:this.messages.end,next:this.messages.next,previous:this.messages.previous,start:this.messages.start},onNext:this._navigateNext,onPrev:this._navigatePrevious})}get _imageOverlayMessages(){return{...this.messages,...this.messagesSketch}}get _imageSketchToolsMessages(){return{...this.messagesCommon,...this.messagesSketch}}_imageOverlaysPanel(){let{imageOverlaysOpened:e}=this,t=this.classes({[T.imageOverlaysContainer]:!0,[q.hidden]:!e||!this._imageOverlaysEnabled});return X(`div`,{class:t,key:this.messages.imageOverlays},this._imageOverlaysComponent)}_imageOverlaysToggle(){let{imageOverlaysOpened:e,invalidCameraHeading:t,visibleElements:{imageOverlays:n}}=this;return n?X(`calcite-action`,{active:e,bind:this,disabled:!this._imageOverlaysEnabled||t,icon:`layers`,text:this.messages.imageOverlays,title:this.messages.imageOverlays,onclick:this._toggleImageOverlays}):null}get _imageOverlaysEnabled(){return this.viewModel.overlayGraphicsEnabled}get _imageViewer(){let{displayMessage:e,loadImageViewer:t,mode:n,clickAction:r,state:i}=this.viewModel,a=e!=null||n!=="default"||i.includes(`loading`);return X(R,{afterCreate:t,clickAction:r,visible:!a})}get _imageViewerTriangular(){let{messages:e,triangularMeasurementActive:t}=this,{displayMessage:n,storeImageMeasurementViewer:r,storePanoramicMeasurementViewer:i,mode:a,state:o,clickAction:s}=this.viewModel,c=n!=null||a===`none`||a===`video`,l=this.classes({[T.viewer]:!c,[T.viewerHidden]:c});return t?X(`calcite-panel`,{class:T.viewerContainerMeasurement,heading:e.measurementViewerHeading,loading:o.includes(`loading`)},X(`calcite-panel`,{bind:this,class:l},a==="default"?X(R,{afterCreate:r,clickAction:s,uiStrings:e}):X(_,{afterCreate:i,clickAction:s,uiStrings:e}))):null}_utilitiesGroupToggle(){let{utilityTools:e}=this.messages;return this.visibleElements.utilityTools?X(`calcite-action`,{bind:this,icon:`tools`,key:`utilities-group-toggle`,text:e,title:e,onclick:e=>this._toggleGroupSelection(`utilities`,e)}):null}_searchGroupToggle(){let{searchTools:e}=this.messages;return this.visibleElements.searchTools?X(`calcite-action`,{bind:this,icon:`search`,key:`search-group-toggle`,text:e,title:e,onclick:e=>this._toggleGroupSelection(`search`,e)}):null}get _videoViewer(){let{mode:e,loadVideoViewer:t,videoViewModel:n}=this.viewModel,{control:r,reset:i}=this.messagesCommon,{mute:a,unmute:o}=this.messages,s=e!==`video`,c=this.classes({[T.viewer]:!s,[T.viewerHidden]:s}),l=`esri-image-viewer`,u=`${l}__slider-container`;return X(`calcite-panel`,{bind:this,class:c},X(`calcite-panel`,{afterCreate:t,class:this.classes(q.widget,l)}),X(`calcite-block`,{class:u,expanded:!0},X(`calcite-slider`,{bind:this,labelHandles:!0,labelTicks:!0,max:n?.videoDuration,minLabel:`0`,value:n?.currentTime??0,onCalciteSliderChange:this._handleVideoSeek})),X(`calcite-action-bar`,{"data-testid":`action-bar--video-controls`,expandToggleDisabled:!0,layout:`horizontal`},X(`calcite-action-group`,{overlayPositioning:`fixed`},X(`calcite-action`,{bind:this,icon:this.activeVideoIcon,text:`Play`,title:n?.videoPaused?r.play:r.pause,onclick:()=>n?.playVideoHandler()})),X(`calcite-action-group`,{overlayPositioning:`fixed`},X(`calcite-action`,{bind:this,icon:`refresh`,text:`Rewind`,title:i,onclick:()=>n?.rewindVideoHandler()})),X(`calcite-action-group`,{overlayPositioning:`fixed`},X(`calcite-action`,{bind:this,icon:this.activeAudioIcon,text:`Audio`,title:n?.videoMuted?a:o,onclick:()=>n?.toggleAudio()}))))}get _locationToggle(){let{viewModel:{state:e,groundCoordinates:t,groundCoordinatesAccuracy:n,groundCoordinatesAccuracyLoading:r,triangulatedPoint:i},imageLocationToolActive:a,triangularMeasurementActive:o,messages:{groundLocation:s,triangulatedLocationHeading:c}}=this;if(e!==`image-loaded`||!t||!a)return;let l=t;if(o){if(!i)return;l=i}return X(`calcite-dialog`,{bind:this,dragEnabled:!0,escapeDisabled:!0,heading:o?c:s,id:s,open:!0,placement:`bottom-start`,resizable:!0,scale:`s`,slot:`dialogs`,width:`s`,onCalciteDialogBeforeClose:this._clearImageLocation},X(L,{accuracy:n,accuracyLoading:r,groundCoordinates:l,messages:this.messages}))}_mapImageConversionToggle(){let{mapImageConversionToolState:e,viewModel:{state:t,disabled:n},videoLoaded:r,invalidCameraHeading:i,visibleElements:{mapImageConversionTool:a}}=this,o=!!(this.viewModel.mode===`video`&&r&&this.viewModel.videoViewModel?.videoPaused),s=this.viewModel.mode===`panoramic-video`&&this.viewModel.panoramicVideoLoaded&&this.viewModel.panoramicVideoPaused,c=t!==`image-loaded`&&!o&&!s||i||n;return a?X(`calcite-action`,{active:e,bind:this,disabled:c,icon:`image-pin`,text:this.messages.mapImageConversionTool,title:this.messages.mapImageConversionTool,onclick:this._toggleMapImageConversionToolState}):null}_measurementToolToggle(){let{measureType:e,viewModel:t,accuracyParametersMissing:n,messages:r,triangularMeasurementActive:i}=this,{state:a}=t,{groundDistance:o,groundArea:s,heightAboveGround:c,groundLocation:l,triangulatedDistanceHeading:u,triangulatedAreaHeading:d,triangulatedLocationHeading:f}=r,p=a!==`image-loaded`||n,m=this._actionBarLayout;return X(`calcite-action-group`,{key:`measurement-tools`,layout:m,overlayPositioning:`fixed`,scale:`m`},X(`calcite-action`,{active:e===`distance`&&!i,bind:this,disabled:p,icon:`measure-line`,key:`distance-measurement`,text:o,title:o,onclick:e=>this._toggleMeasurementSketch(e,`distance`)}),X(`calcite-action`,{active:e===`area`&&!i,bind:this,disabled:p,icon:`measure-area`,key:`area-measurement`,text:s,title:s,onclick:e=>this._toggleMeasurementSketch(e,`area`)}),X(`calcite-action`,{active:e===`height`,bind:this,disabled:p,icon:`measure-building-height-top-base`,key:`height-measurement`,text:c,title:c,onclick:e=>this._toggleMeasurementSketch(e,`height`)}),X(`calcite-action`,{active:this.imageLocationToolActive?!i:!1,bind:this,disabled:p,icon:`pin-tear`,key:`surface-location`,text:l,title:l,onclick:this._toggleLocationTool}),X(`calcite-action`,{active:i?this.imageLocationToolActive:!1,bind:this,disabled:p,icon:`dual-image-location`,key:`triangular-location`,text:f,title:f,onclick:this._toggleTriangularLocation}),X(`calcite-action`,{active:i?this.measureType===`distance`:!1,bind:this,disabled:p,icon:`dual-image-distance`,key:`triangular-distance`,text:u,title:u,onclick:this._toggleTriangularDistanceMeasurements}),X(`calcite-action`,{active:i?this.measureType===`area`:!1,bind:this,disabled:p,icon:`dual-image-area`,key:`triangular-area`,text:d,title:d,onclick:this._toggleTriangularAreaMeasurements}))}get _messageBox(){let{messages:e,viewModel:{displayMessage:t,mode:r}}=this;if(!t||r===`video`)return null;let{key:i,map:a,type:o}=t,s=`${a?n(e[i],a):e[i]}`,c=o===`error`?`danger`:o===`warn`?`warning`:`info`;return X(`calcite-notice`,{appearance:`transparent`,class:T.notice,icon:ce[c],kind:c,open:!0},X(`div`,{slot:`message`},s))}async _loadNavigationSettings(){return this._navigationSettingsLoaderTask||=i(async()=>(await import(`./OrientedImageryViewer/components/NavigationSettings.js`)).default),await this._navigationSettingsLoaderTask.promise}_measurementsGroupToggle(){let{measurementTools:e}=this.messages,{state:t,accuracyParametersMissing:n}=this.viewModel,r=t!==`image-loaded`||n;return this.visibleElements.measurementTools?X(`calcite-action`,{bind:this,disabled:r,icon:`measure-line`,key:`measurements-group-toggle`,text:e,title:e,onclick:e=>this._toggleGroupSelection(`measurements`,e)}):null}_navigationGroupToggle(){let{imageNavigation:e}=this.messages;return this.visibleElements.imageNavigationTools?X(`calcite-action`,{bind:this,icon:`absolute-direction`,key:`navigation-group-toggle`,text:e,title:e,onclick:e=>this._toggleGroupSelection(`navigation`,e)}):null}_navigationToolToggle(){let{state:e}=this.viewModel,{visibleElements:{navigationTool:t},videoLoaded:n}=this;return t?X(`calcite-action`,{active:this.navigationToolActive,bind:this,disabled:e!==`image-loaded`&&!n||this.invalidCameraHeading,icon:`explore`,text:this.messages.navigationTool,title:this.messages.navigationTool,onclick:this._toggleNavigationTool}):null}_directionToolsToggle(){let{messages:e,viewModel:t,visibleElements:n}=this,{directionalNavigation:r,sequentialNavigation:i}=n,{state:a}=t,{directionalNavigation:o,directionalNavigationDescription:s,sequentialNavigation:c,sequentialNavigationDescription:l}=e,u=this._actionBarLayout;return X(`calcite-action-group`,{key:`navigation-tools`,layout:u,overlayPositioning:`fixed`,scale:`m`},r?X(`calcite-action`,{active:this.navigationMode===`directional`,bind:this,disabled:a!==`image-loaded`||this.invalidCameraHeading,icon:`directional-navigation`,text:o,title:o+`
2
+ import{__decorate as e}from"tslib";import{prefersRTL as t,substitute as n}from"../intl.js";import{prefersReducedMotion as r}from"../core/a11yUtils.js";import{createTask as i}from"../core/asyncUtils.js";import a from"../core/Collection.js";import{deprecateWidget as o,deprecatedProperty as s}from"../core/deprecate.js";import c from"../core/Logger.js";import{isAbortError as l}from"../core/promiseUtils.js";import{watch as u,initial as d,syncAndInitial as f,on as p,sync as m}from"../core/reactiveUtils.js";import{throttle as h}from"../core/throttle.js";import{property as g,subclass as ee}from"../core/accessorSupport/decorators.js";import{or as te}from"../layers/orientedImagery/transformations/utils.js";import ne from"./Expand.js";import re from"./PanoramicVideoViewer.js";import _ from"./PanoramicViewer.js";import v from"./Widget.js";import{getAllArcPath as y}from"./OrientedImageryViewer/arcUtils.js";import{getDelegatedEvents as b,defaultImageGeometryField as x,defaultOIObjectIDField as ie,segmentArcs as S,featureCircleRadius as ae,navigationToolDimensionLength as C,sectorsRadii as w}from"./OrientedImageryViewer/constants.js";import{css as T,navigation as oe,navigationToolRotationFrom as E,navigationToolRotationTo as D,root as O}from"./OrientedImageryViewer/css.js";import{isFeatureAttachment as k,loadImageForAttachment as A,getThumbnailPixelBlock as j,renderImageWithRotation as M}from"./OrientedImageryViewer/galleryUtils.js";import N from"./OrientedImageryViewer/OrientedImageryViewerViewModel.js";import P from"./OrientedImageryViewer/OrientedImageryViewerVisibleElements.js";import{loadAlertComponents as F,Alert as I}from"./OrientedImageryViewer/components/Alert.js";import L from"./OrientedImageryViewer/components/ImageLocationWidget.js";import R from"./OrientedImageryViewer/components/ImageViewer.js";import z from"./OrientedImageryViewer/components/NavigationUI.js";import B from"./OrientedImageryViewer/components/NavigationUI360.js";import{loadSequentialNavigationUIComponents as V,SequentialNavigationUI as H}from"./OrientedImageryViewer/components/SequentialNavigationUI.js";import{loadVideoEnhancementComponents as U,renderEnhancementSlider as W,VideoEnhancementTools as G}from"./OrientedImageryViewer/components/VideoEnhancementTools.js";import{NoImageLoadedError as K}from"./OrientedImageryViewer/navigation/errors.js";import{loadCalciteComponents as se}from"./support/componentsUtils.js";import{globalCss as q}from"./support/globalCss.js";import{iconByKind as ce}from"./support/iconUtils.js";import{vmEvent as J,messageBundle as Y,tsx as X}from"./support/widget.js";import{setFocus as Z}from"./support/widgetUtils.js";const Q={overlayed:`overlayed`};let $=class extends v{constructor(e,t){super(e,t),this.actionBarPosition=`top`,this.dataCaptureEnabled=!1,this.galleryOpened=!1,this.imageEnhancementToolActive=!1,this.videoEnhancementToolActive=!1,this.imageOverlaysOpened=!1,this.navigationToolActive=!1,this.viewModel=new N,this.messagesCommon=null,this.messagesSketch=null,this.pixelMeasurementUnit=`meters`,this.pixelAreaMeasurementUnit=`square-meters`,this.selectedGroup=null,this.showCameraLocations=!1,this.showMapFeatures=!1,this.visibleElements=new P,this._defaultSuperimposeZOffsetPercentage=100,this._panoramicSuperimposeRadiusOffsetPercentage=100,this._exploreImages3DMenuOpen=!1,this._exploreImages3DReferenceElement=null,this._imageOverlaysLoaderTask=null,this._imageMeasurementToolsLoaderTask=null,this._navigationSettingsLoaderTask=null,this._navigationTask=null,this._clearMeasurements=()=>{this.viewModel.measureType=null,this.viewModel.triangularMeasurementActive=!1,this.viewModel.displayNewMeasurementButton=!0,this.viewModel.clearPreviousMeasurements()},this._clearImageLocation=()=>{this.imageLocationToolActive=!1,this.triangularMeasurementActive=!1},this._createNavigationTask=async e=>(this._navigationTask?.abort(),this._navigationTask=i(async t=>await this.navigate({...e,signal:t})),this._navigationTask.promise),this._navigateNext=async()=>await this._createNavigationTask({step:1}),this._navigatePrevious=async()=>await this._createNavigationTask({step:-1}),this._navigationToolExpanded=!1,this._navigationTool=null,this._galleryController=new AbortController,this._galleryObserver=new IntersectionObserver(this._lazyLoadImage.bind(this)),this._overlayedLayers=new a,this._previousAction=null,this._closeImageSequenceAlert=()=>{this._set(`noImageInSequenceError`,!1)},this._handleDataCaptureLayerChange=async e=>{if(this.dataCaptureLayer&&await this.stopDataCapture(!0),this.dataCaptureLayer=this.dataCaptureLayer===e?null:e,this.dataCaptureLayer)return this.startDataCapture(this.dataCaptureLayer)},this._handleNavigationSettingsInputChange=(e,t)=>{this.set(`${e}Threshold`,t)},this._handleNavigationSettingsToggle=e=>{this.viewModel.preserveAngle=e},this._handleOverlayLayerDeselect=e=>{let t=e.layer;t===this.dataCaptureLayer&&(this.stopDataCapture(),this.dataCaptureLayer=null),this.removeOverlayedGraphicsOnImage(`${t.id}`)},this._handleOverlayLayerSelect=e=>{let t=e.layer;this.viewModel.overlayMapFeatures(t,this.showMapFeatures),this.addHandles(u(()=>t.visible,()=>{this.viewModel.toggleOverlayMapFeatures(t.id,t.visible,this.showMapFeatures)}),`${Q.overlayed}-${t.id}`)},this._highlight=e=>{let t=e.target?.dataset.objectid;t&&this.viewModel.highlight(t)},this._onAction=e=>{let{target:t}=e,{dataset:{action:n}}=t,{_previousAction:r}=this,i=r?.dataset.action,a=i?.includes(`draw`)??!1,o=i===`select-feature`,s=i!==n;switch(n){case`draw-point`:case`draw-polygon`:case`draw-polyline`:{r&&te(o,a&&s)&&(r.active=!1),t.active=!t.active;let e=n.replace(`draw-`,``);this.viewModel.digitizeCreate(e),this._previousAction=t.active?t:null;break}case`save`:this.viewModel.saveDrawing();break;case`select-feature`:a&&(this._previousAction.active=!1),t.active=!t.active,this.viewModel.toggleSelection(t.active),this._previousAction=t.active?t:null;break;case`delete-feature`:this.viewModel.digitizeDelete()}},this._onImageOverlayClosed=e=>{e.stopPropagation(),this.imageOverlaysOpened=!1},this._onShowCameraLocationsChanged=e=>{this.showCameraLocations=e},this._onShowMapFeaturesChanged=e=>{this.showMapFeatures=e},this._removeHighlight=()=>this.viewModel.removeHighlight(),this._restoreOverlays=async()=>Promise.all(this._overlayedLayers.map(e=>this.viewModel.overlayMapFeatures(e,this.showMapFeatures))),this._scaleNavigationTool=()=>{this._navigationToolExpanded=!this._navigationToolExpanded},this._sketchLoaderTask=null,this._handleExploreImages3DListChange=e=>{let{currentTarget:t}=e,n=t.selectedItems.map(({value:e})=>e);if(n.length)n.length===2?this._setExploreImages3DSearchMode(`both`):this._setExploreImages3DSearchMode(n[0]);else{let e=[...t.querySelectorAll(`calcite-list-item`)].find(({value:e})=>e===`3d`);e&&(e.selected=!0),this._setExploreImages3DSearchMode(`3d`)}},this._closeExploreImages3DMenu=()=>{this._exploreImages3DMenuOpen=!1},this._settingsToggle=null,this._toggleImageNavigation=async e=>{let t=this.navigationMode;this._closeAllImageTools(),this.navigationMode=t===e?null:e;let{activeViewer:n}=this.viewModel;if(!n)return;let{mode:r,preserveAngle:i}=this.viewModel;if(r==="default"){if(this.navigationMode===`directional`){let e=await this._loadNavigationSettings(),t=i===`heading`||i===`both`,n=i===`pitch`||i===`both`,{messages:r,messagesCommon:a}=this,o=new e({cameraHeadingThreshold:this.cameraHeadingThreshold,cameraPitchThreshold:this.cameraPitchThreshold,uiStrings:{configureNavigation:r.configureNavigation,preserveHeading:r.preserveHeading,preserveHeadingDescription:r.preserveHeadingDescription,preservePitch:r.preservePitch,preservePitchDescription:r.preservePitchDescription,settings:a.settings,thresholdLabel:r.thresholdLabel},onInputChange:this._handleNavigationSettingsInputChange,onToggle:this._handleNavigationSettingsToggle,preserveHeading:t,preservePitch:n});this._settingsToggle=new ne({content:o,expandIcon:`configure`}),this.viewModel.activeViewer?.ui.add(this._settingsToggle,{position:`top-left`})}else this._settingsToggle&&(this._settingsToggle.expanded=!1,this.viewModel.activeViewer?.ui.remove(this._settingsToggle))}},this._toggleImageAttributes=h(this.viewModel.toggleImageAttributes.bind(this.viewModel)),this._rootActionTitleToFocus=null,this._actionTitleToFocus=null,this._focusPendingAction=e=>{let t=this._actionTitleToFocus;if(!t)return;let n=[...e.querySelectorAll(`calcite-action`)].find(e=>e.getAttribute(`title`)===t);n&&(this._actionTitleToFocus=null,Z(n))},this.navigate=async e=>{let t=null;try{let{currentNode:n}=this.viewModel;if(!n)throw new K;t=await this.viewModel.navigate(n,e)}catch(e){l(e)||c.getLogger(this).error(`Error occurred while navigating`,e),[`NoImageInSequenceError`,`NoSequenceFoundError`].includes(e.name)&&this._set(`noImageInSequenceError`,!0)}return t},this.reset=()=>{this._closeAllImageTools(),this.viewModel.reset()},this._loadImageFromGallery=this._loadImageFromGallery.bind(this),this._registerGalleryItem=this._registerGalleryItem.bind(this),this._unregisterGalleryItem=this._unregisterGalleryItem.bind(this),this.loadImageFromSource=this.loadImageFromSource.bind(this),this.updateSuitabilities=this.updateSuitabilities.bind(this),this._handleVideoBrightnessChange=this._handleVideoBrightnessChange.bind(this),this._handleVideoContrastChange=this._handleVideoContrastChange.bind(this),this._handleBrightnessChange=this._handleBrightnessChange.bind(this),this._handleContrastChange=this._handleContrastChange.bind(this),this._handleSharpnessChange=this._handleSharpnessChange.bind(this),this._handleSuperimposeZOffsetChange=this._handleSuperimposeZOffsetChange.bind(this),this._toggleSuperimposeCameraLock=this._toggleSuperimposeCameraLock.bind(this),this._resetSuperimposeOffset=this._resetSuperimposeOffset.bind(this),this._resetVideoTools=this._resetVideoTools.bind(this),this._toggleEnhancementToolState=this._toggleEnhancementToolState.bind(this),this.announceDeprecation=()=>{o(c.getLogger(this),`Oriented Imagery Viewer`,`arcgis-oriented-imagery-viewer`,{version:`5.0`})}}initialize(){this.addHandles([u(()=>[this.viewModel?.bestFeatureAngle,this._navigationTool],([e,t])=>{t&&this._updateNavigationTool(t)},d),u(()=>this.currentCoverageVisible,e=>this._onCurrentCoverageVisibilityChange(e)),u(()=>this.isAdditionalCoverageVisible,e=>this._onAdditionalCoverageVisibilityChange(e)),u(()=>this.isAdditionalPointSourcesVisible,e=>this._onAdditionalCameraLocationsVisibility(e)),u(()=>this.superimposeViewEnabled,e=>{e?(this._closeAllImageTools(),this.selectedGroup=null,this.shouldShowSelectedImage=!1,this._disableExploreImages3D()):this._resetSuperimposeOffset()}),u(()=>({features:this.currentBestFeature,overlaysEnabled:this._imageOverlaysEnabled,showCameraLocations:this.showCameraLocations}),({overlaysEnabled:e,showCameraLocations:t})=>{e&&this.viewModel.overlayCameraLocations(t)},f),u(()=>({feature:this.currentBestFeature,overlaysEnabled:this._imageOverlaysEnabled,showMapFeatures:this.showMapFeatures}),async(e,t)=>{e.showMapFeatures!==t?.showMapFeatures&&await this.viewModel.toggleAllOverlayMapFeatures(e.showMapFeatures);let n=e.feature&&e.feature!==t?.feature,r=!e.overlaysEnabled&&!!t?.overlaysEnabled,i=e.overlaysEnabled&&!t?.overlaysEnabled,a=this.viewModel.mode===`video`||this.viewModel.mode===`panoramic-video`;r&&a?(this.viewModel.removeAllOverlayMapFeatures(),this.viewModel.mode===`video`&&this.viewModel.videoViewModel?.clearOverlayGraphics()):(n||i)&&(n&&(this._resetSuperimposeOffset(),this.viewModel.removeAllOverlayMapFeatures()),e.overlaysEnabled&&(this.dataCaptureLayer&&this.stopDataCapture(),await this._restoreOverlays(),this.dataCaptureLayer&&(await this.startDataCapture(this.dataCaptureLayer),this._previousAction?.active&&(this._previousAction.active=!1,this._previousAction=null))))},d),p(()=>this.viewModel,`popup-open`,async e=>{await this.view?.openPopup(e)},m),p(()=>this.viewModel,`popup-close`,()=>{this.view?.closePopup()},m),this._toggleImageAttributes])}loadDependencies(){return Promise.all([U(),V(),se({"action-bar":()=>import(`@esri/calcite-components/dist/components/calcite-action-bar`),"action-group":()=>import(`@esri/calcite-components/dist/components/calcite-action-group`),action:()=>import(`@esri/calcite-components/dist/components/calcite-action`),block:()=>import(`@esri/calcite-components/dist/components/calcite-block`),list:()=>import(`@esri/calcite-components/dist/components/calcite-list`),"list-item":()=>import(`@esri/calcite-components/dist/components/calcite-list-item`),panel:()=>import(`@esri/calcite-components/dist/components/calcite-panel`),popover:()=>import(`@esri/calcite-components/dist/components/calcite-popover`),shell:()=>import(`@esri/calcite-components/dist/components/calcite-shell`),dialog:()=>import(`@esri/calcite-components/dist/components/calcite-dialog`),slider:()=>import(`@esri/calcite-components/dist/components/calcite-slider`),notice:()=>import(`@esri/calcite-components/dist/components/calcite-notice`),"shell-panel":()=>import(`@esri/calcite-components/dist/components/calcite-shell-panel`)}),F()])}destroy(){this._galleryController.abort(),this._galleryObserver.disconnect(),this.currentBestFeature=null}get accuracyParametersMissing(){return this.viewModel.accuracyParametersMissing}get activeLayer(){return s(c.getLogger(this),`activeLayer`,{replacement:`layer`}),this.layer}set activeLayer(e){s(c.getLogger(this),`activeLayer`,{replacement:`layer`}),this.layer=e}get activeVideoIcon(){let{videoElement:e,videoViewModel:t}=this.viewModel;return!e?.loaded||!t||t.videoPaused?`play`:`pause`}get activeAudioIcon(){let{videoElement:e,videoViewModel:t}=this.viewModel;return e?.loaded&&t?.videoMuted?`sound-off`:`sound`}get cameraHeadingThreshold(){return this.viewModel.cameraHeadingThreshold}set cameraHeadingThreshold(e){this.viewModel.cameraHeadingThreshold=e}get cameraPitchThreshold(){return this.viewModel.cameraPitchThreshold}set cameraPitchThreshold(e){this.viewModel.cameraPitchThreshold=e}get canNavigateSequentially(){return!!this.layer?.effectiveSequenceOrderField?.length}get currentBestFeature(){return this.viewModel.currentBestFeature}set currentBestFeature(e){this.viewModel.currentBestFeature=e}get currentCoverageVisible(){return this.viewModel.currentCoverageVisible}set currentCoverageVisible(e){this.viewModel.currentCoverageVisible=e}get dataCaptureLayer(){return this.viewModel.dataCaptureLayer}set dataCaptureLayer(e){this.viewModel.dataCaptureLayer=e}get depthImageNotSupported(){return this.viewModel.depthImageNotSupported}get disabled(){return this.viewModel.disabled}set disabled(e){this.viewModel.disabled=e}get displayMessage(){return this.viewModel.displayMessage}get enhancementToolActive(){return this.viewModel.mode===`video`?this.videoEnhancementToolActive:this.imageEnhancementToolActive}set enhancementToolActive(e){this.viewModel.mode===`video`?this.videoEnhancementToolActive=e:this.imageEnhancementToolActive=e}get features(){return this.viewModel.features}get imagePointsInView(){return this.viewModel.imagePointsInView}get icon(){return`oriented-imagery-widget`}set icon(e){this._overrideIfSome(`icon`,e)}get imageGalleryEnabled(){return this.viewModel.imageGalleryEnabled}get imageLocationToolActive(){return this.viewModel.imageLocationToolState}set imageLocationToolActive(e){this.viewModel.imageLocationToolState=e}get invalidCameraHeading(){return this.viewModel.invalidCameraHeading}get isAdditionalCoverageVisible(){return this.viewModel.isAdditionalCoverageVisible}set isAdditionalCoverageVisible(e){this.viewModel.isAdditionalCoverageVisible=e}get isAdditionalPointSourcesVisible(){return this.viewModel.isAdditionalPointSourcesVisible}set isAdditionalPointSourcesVisible(e){this.viewModel.isAdditionalPointSourcesVisible=e}get mapImageConversionToolState(){return this.viewModel.mapImageConversionToolState}set mapImageConversionToolState(e){this.viewModel.setMapImageConversionToolState(e)}get measureType(){return this.viewModel.measureType}set measureType(e){this.viewModel.measureType=e}get layer(){return this.viewModel.layer}set layer(e){this.viewModel.layer=e}get navigationMode(){return this.viewModel.navigationMode}set navigationMode(e){this.viewModel.navigationMode=e}get popupEnabled(){let{popupEnabled:e,state:t}=this.viewModel;return(t===`image-loaded`||this.videoLoaded)&&e}get preloadMedia(){return this.viewModel.preloadMedia}set preloadMedia(e){this.viewModel.preloadMedia=e}get referencePoint(){return this.viewModel.referencePoint??null}get selectedFeatureObjectId(){return this.currentBestFeature?.attributes?.objectId??null}get selectedPoint(){return this.viewModel.selectedPoint}get sketchViewModel(){return this.viewModel.sketch}get triangularMeasurementActive(){return this.viewModel.triangularMeasurementActive}set triangularMeasurementActive(e){this.viewModel.triangularMeasurementActive=e}get videoLoaded(){let{mode:e,videoElement:t,panoramicVideoLoaded:n}=this.viewModel;return(e===`video`&&t?.loaded===!0||n)??!1}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}set determineWorkflowForFeature(e){this.viewModel.determineWorkflowForFeature=e}get determineWorkflowForFeature(){return this.viewModel.determineWorkflowForFeature}get shouldShowSelectedImage(){return this.viewModel.shouldShowSelectedImage}set shouldShowSelectedImage(e){this.viewModel.shouldShowSelectedImage=e}get superimposeViewEnabled(){return this.viewModel.superimposeViewEnabled}set superimposeViewEnabled(e){this.viewModel.superimposeViewEnabled=e}get defaultSuperimposeCameraLockEnabled(){return this.viewModel.defaultSuperimposeCameraLockEnabled}set defaultSuperimposeCameraLockEnabled(e){this.viewModel.defaultSuperimposeCameraLockEnabled=e}set updateFootprint(e){this.viewModel.updateFootprint=e}get updateFootprint(){return this.viewModel.updateFootprint}get verticalFilterEnabled(){return this.viewModel.verticalFilterEnabled}set verticalFilterEnabled(e){this.viewModel.verticalFilterEnabled=e}get _exploreImages3DSearchMode(){return this.verticalFilterEnabled&&this.viewModel.frustumSearchEnabled?`both`:this.viewModel.frustumSearchEnabled?`frustum`:`3d`}get _actionBarLayout(){return this.actionBarPosition===`start`||this.actionBarPosition===`end`?`vertical`:`horizontal`}_renderActionBar(){let{selectedGroup:e,superimposeViewEnabled:n}=this,r=this._actionBarLayout;if(n)return X(`calcite-action-bar`,{"data-testid":`action-bar--superimpose`,expandToggleDisabled:!0,layout:r,slot:`action-bar`},X(`calcite-action-group`,{overlayPositioning:`fixed`},this._superimposeViewToggle()));let i=t();return X(`calcite-action-bar`,{afterUpdate:this._focusPendingAction,"data-testid":`action-bar`,expandToggleDisabled:!0,layout:r,slot:`action-bar`},!e&&X(`calcite-action-group`,{key:`main`,overlayPositioning:`fixed`},this._searchGroupToggle(),this._overlaysGroupToggle(),this._navigationGroupToggle(),this._measurementsGroupToggle(),this._utilitiesGroupToggle()),this._renderGroupBackAction(i),e===`overlays`&&X(`calcite-action-group`,{key:`overlays`,overlayPositioning:`fixed`},this._currentFootprintToggle(),this._additionalFootprintToggle(),this._additionalPointSourcesToggle(),this._mapImageConversionToggle(),this._imageOverlaysToggle()),e===`navigation`?this._directionToolsToggle():null,e===`navigation`&&X(`calcite-action-group`,{key:`context-navigation`,overlayPositioning:`fixed`},this._navigationToolToggle(),this._imageGalleryToggle()),e===`measurements`&&this._measurementToolToggle(),e===`utilities`&&X(`calcite-action-group`,{overlayPositioning:`fixed`},this._imageEnhancementsToggle(),this._videoEnhancementsToggle(),this._superimposeViewToggle(),this._openPopupAction()),e===`search`&&X(`calcite-action-group`,{key:`search`,overlayPositioning:`fixed`},this._exploreImagesToggle(),this._exploreImages3DToggle(),this._showSelectedImageToggle()))}_renderGroupBackAction(e){return this.selectedGroup?X(`calcite-action`,{bind:this,icon:e?`arrow-right`:`arrow-left`,key:`back-arrow`,text:this.messages.previous,title:this.messages.previous,onclick:()=>this._toggleGroupSelection(null)}):null}get _activeMeasurementHeading(){let{measureType:e,messages:t,triangularMeasurementActive:n}=this,{groundArea:r,heightAboveGround:i,groundDistance:a,triangulatedAreaHeading:o,triangulatedDistanceHeading:s}=t;if(n)return e===`area`?o:s;switch(e){case`area`:return r;case`height`:return i;default:return a}}_additionalFootprintToggle(){let{isAdditionalCoverageVisible:e,invalidCameraHeading:t,visibleElements:{additionalFootprintToggle:n}}=this;return n?X(`calcite-action`,{active:e,bind:this,class:T.addCoverage,disabled:t,icon:`trapezoid-area`,text:this.messages.additionalFootprints,title:this.messages.additionalFootprints,onclick:this._toggleAdditionalCoverage}):null}_additionalPointSourcesToggle(){let{isAdditionalPointSourcesVisible:e,invalidCameraHeading:t,visibleElements:{additionalCameraLocationsToggle:n}}=this;return n?X(`calcite-action`,{active:e,bind:this,class:T.addExpPoints,disabled:t,icon:`circle-area`,text:this.messages.additionalCameraLocations,title:this.messages.additionalCameraLocations,onclick:this._toggleAdditionalCameraLocations}):null}get _measurementToggle(){let{viewModel:{state:e,measureType:t,currentBestFeatureMeasurementImage:n},triangularMeasurementActive:r,id:i}=this;if(e!==`image-loaded`||!t||r&&!n)return;this._imageMeasurementToolsLoaderTask||this._loadImageMeasurementResources();let a=this._imageMeasurementToolsLoaderTask?.value;return a?X(`calcite-dialog`,{bind:this,dragEnabled:!0,escapeDisabled:!0,heading:this._activeMeasurementHeading,id:`${i}-${t}-measurement`,open:!0,placement:`bottom-start`,resizable:!0,scale:`s`,slot:`dialogs`,width:`s`,onCalciteDialogBeforeClose:this._clearMeasurements},X(a,{measurementType:t,measurementUnitMessages:this.measurementUnitMessages,messages:this.messages,oiViewModel:this.viewModel})):null}get _renderRoot(){let{viewModel:{state:e},triangularMeasurementActive:t}=this;return X(`calcite-panel`,{bind:this,class:t?T.viewerContainerMeasurement:T.viewerContainer,heading:this.visibleElements.header?this.messages.title:void 0,loading:e.includes(`loading`)&&!t},X(`calcite-shell`,null,this.visibleElements.menu?X(`calcite-shell-panel`,{collapsed:!0,displayMode:`dock`,slot:`panel-${this.actionBarPosition}`},this._renderActionBar()):null,X(`calcite-panel`,null,this._imageViewer,this._panoramicViewer,this._panoramicVideoViewer,this._videoViewer,this._messageBox,this.invalidCameraHeading?null:[this._imageGalleryPanel,this._renderNavigation,this._imageOverlaysPanel()],this._exploreImages3DTools,this._imageEnhancementTools,this._videoEnhancementTools,this._superimposeTools,this._renderSketch(),this._navigationUI),this._imageViewerTriangular,this._measurementToggle,this._locationToggle,this.invalidCameraHeading?this._renderWarning(this.messages.invalidCameraHeadingWarningTitle,this.messages.invalidCameraHeadingWarningDescription):null,this.depthImageNotSupported?this._renderWarning(this.messages.depthImageNotSupportedTitle,this.messages.depthImageNotSupportedDescription):null,this.noImageInSequenceError?this._renderWarning(this.messages.sequentialNavigationWarning,this.messages.sequentialNavigationWarning,this._closeImageSequenceAlert):null))}_currentFootprintToggle(){let{currentCoverageVisible:e,invalidCameraHeading:t}=this,{currentFootprintToggle:n}=this.visibleElements;return n?X(`calcite-action`,{active:e,bind:this,class:T.currentCoverage,disabled:t,icon:`trapezoid-area`,text:this.messages.currentFootprint,title:this.messages.currentFootprint,onclick:this._toggleCurrentCoverage}):null}_exploreImagesToggle(){let{exploreImages:e}=this.messages;return this.visibleElements.exploreImages?X(`calcite-action`,{active:!this.disabled,bind:this,icon:`oriented-imagery-widget`,text:e,title:e,onclick:this._toggleExploreImages}):null}get _imageEnhancementTools(){let{enhancementToolActive:e,viewModel:{brightness:t,contrast:n,sharpness:r,state:i}}=this;return e&&i===`image-loaded`?X(`calcite-panel`,{bind:this,class:T.imageEnhancementWrapper,closable:!0,closed:!e,heading:this.messages.imageEnhancement,key:this.messages.imageEnhancement,onCalcitePanelClose:this._toggleEnhancementToolState},X(`div`,{class:T.imageEnhancementTools},W({title:this.messages.brightness,value:t,handleChange:this._handleBrightnessChange}),W({title:this.messages.contrast,value:n,handleChange:this._handleContrastChange}),W({title:this.messages.sharpness,value:r,max:1,min:0,ticks:.5,step:.1,handleChange:this._handleSharpnessChange})),X(`calcite-action`,{bind:this,icon:`reset`,slot:`header-actions-end`,text:this.messagesCommon.reset,title:this.messagesCommon.reset,onclick:this._resetImageTools})):null}get _videoEnhancementTools(){let{enhancementToolActive:e,viewModel:{videoViewModel:t,mode:n},messages:{videoEnhancement:r,brightness:i,contrast:a},messagesCommon:{reset:o}}=this;return!e||n!==`video`||!t?null:X(G,{brightness:t.videoBrightness,contrast:t.videoContrast,handleBrightnessChange:this._handleVideoBrightnessChange,handleContrastChange:this._handleVideoContrastChange,resetTools:this._resetVideoTools,uiStrings:{videoEnhancement:r,brightness:i,contrast:a,reset:o},videoEnhancementToolActive:e,onClose:this._toggleEnhancementToolState})}get _superimposeTools(){let{superimposeViewEnabled:e,view:t,viewModel:{state:n,mode:r},messages:{superimposeSettings:i,superimposeSliderTitle:a,superimposeSliderTooltip:o}}=this,s=r===`panoramic`;return!e||t?.type!==`3d`||n!==`image-loaded`?null:X(`calcite-panel`,{bind:this,class:this.classes(T.imageEnhancementWrapper,T.superimposeTools),heading:i,key:`superimpose-settings`},X(`div`,{class:T.imageEnhancementTools},W({title:a,tooltip:o,value:s?this._panoramicSuperimposeRadiusOffsetPercentage:this._defaultSuperimposeZOffsetPercentage,max:100,min:0,ticks:10,step:1,handleChange:this._handleSuperimposeZOffsetChange})),X(`calcite-action`,{bind:this,icon:`reset`,slot:`header-actions-end`,text:this.messagesCommon.reset,title:this.messagesCommon.reset,onclick:this._resetSuperimposeOffset}))}_imageEnhancementsToggle(){let{state:e,mode:t}=this.viewModel,{enhancementTool:n}=this.visibleElements;return!n||t===`video`?null:X(`calcite-action`,{active:this.enhancementToolActive,bind:this,disabled:t!=="default"||e!==`image-loaded`,icon:`sliders-horizontal`,text:this.messages.imageEnhancement,title:this.messages.imageEnhancement,onclick:this._toggleEnhancementToolState})}_exploreImages3DToggle(){let{exploreImages3D:e}=this.messages,t=this.view?.type!==`3d`||!this.layer?.hasZ;return this.visibleElements.exploreImages3D?X(`calcite-action`,{active:this._isExploreImages3DEnabled,afterCreate:e=>{this._exploreImages3DReferenceElement=e},bind:this,disabled:t,icon:`3d-search`,text:e,title:e,onclick:this._toggleExploreImages3DMenu}):null}get _exploreImages3DTools(){let{frustumRange:e,search3DFilters:t,verticalRange:n}=this.messages,r=this._exploreImages3DSearchMode;return!this.visibleElements.exploreImages3D||!this._exploreImages3DReferenceElement?null:X(`calcite-popover`,{closable:!0,heading:t,key:`explore-images-3d-tools`,label:t,open:this._exploreImages3DMenuOpen,overlayPositioning:`fixed`,placement:`bottom-start`,referenceElement:this._exploreImages3DReferenceElement,scale:`s`,onCalcitePopoverClose:this._closeExploreImages3DMenu},X(`calcite-list`,{label:t,scale:`s`,selectionMode:`multiple`,onCalciteListChange:this._handleExploreImages3DListChange},X(`calcite-list-item`,{label:n,selected:r===`3d`||r===`both`,value:`3d`}),X(`calcite-list-item`,{label:e,selected:r===`frustum`||r===`both`,value:`frustum`})))}_showSelectedImageToggle(){let{displayImages:e}=this.messages,t=this.viewModel.mode.includes(`video`);return this.visibleElements.showSelectedImage?X(`calcite-action`,{active:this.shouldShowSelectedImage,bind:this,disabled:t,icon:`show-oriented-imagery`,text:e,title:e,onclick:this._toggleShowSelectedImage}):null}_superimposeViewToggle(){let{superimposeView:e}=this.messages,{mode:t,accuracyParametersMissing:n}=this.viewModel,r=!this.superimposeViewEnabled&&(this.view?.type!==`3d`||t.includes(`video`)||n);return this.visibleElements.superimpose?X(`calcite-action`,{active:this.superimposeViewEnabled,bind:this,disabled:r,icon:`superimpose`,text:e,title:e,onclick:this._toggleSuperimposeView}):null}_videoEnhancementsToggle(){let{mode:e}=this.viewModel,{videoEnhancement:t}=this.messages,{enhancementTool:n}=this.visibleElements;return!n||e!==`video`?null:X(`calcite-action`,{active:this.enhancementToolActive,bind:this,disabled:e!==`video`,icon:`sliders-horizontal`,text:t,title:t,onclick:this._toggleEnhancementToolState})}get _imageGalleryPanel(){let{container:e,galleryOpened:t,imageGalleryEnabled:n}=this;return n&&t&&e?this._imageGalleryContext:null}get _imageGalleryContext(){let{galleryOpened:e,invalidCameraHeading:t}=this;return X(`calcite-panel`,{bind:this,class:T.carousel,closable:!0,closed:!e,disabled:t,heading:this.messages.imageGallery,key:this.messages.imageGallery,onCalcitePanelClose:this._toggleImageGallery},X(`div`,{class:T.carouselContainer},this._renderThumbnails))}_imageGalleryToggle(){let{imageGalleryEnabled:e,invalidCameraHeading:t,visibleElements:{imageGallery:n}}=this;return n?X(`calcite-action`,{active:this.galleryOpened,bind:this,disabled:!e||t,icon:`images`,text:this.messages.imageGallery,title:this.messages.imageGallery,onclick:this._toggleImageGallery}):null}get _imageOverlaysComponent(){let{_imageOverlayMessages:e,_imageOverlaysLoaderTask:t,_overlayedLayers:n,dataCaptureEnabled:r,dataCaptureLayer:a,imageOverlaysOpened:o,showCameraLocations:s,showMapFeatures:c,view:l,layer:u}=this,d=r&&!this.viewModel.mode.includes(`video`);if(!u)return null;let f=u.imageGeometryField?.length?u.imageGeometryField:x,p=u.imageReferenceField?.length?u.imageReferenceField:ie;t||(this._imageOverlaysLoaderTask=i(async()=>(await import(`./OrientedImageryViewer/components/ImageOverlays.js`)).default));let m=this._imageOverlaysLoaderTask?.value;return m?X(m,{closed:!o,dataCaptureEnabled:d,dataCaptureLayer:a,imageGeometryField:f,imageReferenceField:p,messages:e,overlayedLayers:n,showCameraLocations:s,showMapFeatures:c,view:l,onDataCaptureLayerChanged:this._handleDataCaptureLayerChange,onFilterCapturedFeatures:this.viewModel.filterCapturedFeatures,onImageOverlaysClosed:this._onImageOverlayClosed,onLayerDeselected:this._handleOverlayLayerDeselect,onLayerSelected:this._handleOverlayLayerSelect,onShowCameraLocationsChanged:this._onShowCameraLocationsChanged,onShowMapFeaturesChanged:this._onShowMapFeaturesChanged}):null}get _navigationUI(){let{navigationMode:e,viewModel:t}=this,{mode:n,state:r}=t;if(!(!e||n!=="default"&&n!==`panoramic`||r!==`image-loaded`))return e===`directional`?n==="default"?X(z,{cameraHeadingThreshold:this.cameraHeadingThreshold,cameraPitchThreshold:this.cameraPitchThreshold,currentNode:this.viewModel.currentNode,navigate:this._createNavigationTask,nodes:this.viewModel.navigationNodes,preserveAngle:this.viewModel.preserveAngle}):X(B,{currentNode:this.viewModel.currentNode,navigate:this._createNavigationTask,nodes:this.viewModel.navigationNodes}):X(H,{layout:`horizontal`,uiStrings:{end:this.messages.end,next:this.messages.next,previous:this.messages.previous,start:this.messages.start},onNext:this._navigateNext,onPrev:this._navigatePrevious})}get _imageOverlayMessages(){return{...this.messages,...this.messagesSketch}}get _imageSketchToolsMessages(){return{...this.messagesCommon,...this.messagesSketch}}_imageOverlaysPanel(){let{imageOverlaysOpened:e}=this,t=this.classes({[T.imageOverlaysContainer]:!0,[q.hidden]:!e||!this._imageOverlaysEnabled});return X(`div`,{class:t,key:this.messages.imageOverlays},this._imageOverlaysComponent)}_imageOverlaysToggle(){let{imageOverlaysOpened:e,invalidCameraHeading:t,visibleElements:{imageOverlays:n}}=this;return n?X(`calcite-action`,{active:e,bind:this,disabled:!this._imageOverlaysEnabled||t,icon:`layers`,text:this.messages.imageOverlays,title:this.messages.imageOverlays,onclick:this._toggleImageOverlays}):null}get _imageOverlaysEnabled(){return this.viewModel.overlayGraphicsEnabled}get _imageViewer(){let{displayMessage:e,loadImageViewer:t,mode:n,clickAction:r,state:i}=this.viewModel,a=e!=null||n!=="default"||i.includes(`loading`);return X(R,{afterCreate:t,clickAction:r,visible:!a})}get _imageViewerTriangular(){let{messages:e,triangularMeasurementActive:t}=this,{displayMessage:n,storeImageMeasurementViewer:r,storePanoramicMeasurementViewer:i,mode:a,state:o,clickAction:s}=this.viewModel,c=n!=null||a===`none`||a===`video`,l=this.classes({[T.viewer]:!c,[T.viewerHidden]:c});return t?X(`calcite-panel`,{class:T.viewerContainerMeasurement,heading:e.measurementViewerHeading,loading:o.includes(`loading`)},X(`calcite-panel`,{bind:this,class:l},a==="default"?X(R,{afterCreate:r,clickAction:s,uiStrings:e}):X(_,{afterCreate:i,clickAction:s,uiStrings:e}))):null}_utilitiesGroupToggle(){let{utilityTools:e}=this.messages;return this.visibleElements.utilityTools?X(`calcite-action`,{bind:this,icon:`tools`,key:`utilities-group-toggle`,text:e,title:e,onclick:e=>this._toggleGroupSelection(`utilities`,e)}):null}_searchGroupToggle(){let{searchTools:e}=this.messages;return this.visibleElements.searchTools?X(`calcite-action`,{bind:this,icon:`search`,key:`search-group-toggle`,text:e,title:e,onclick:e=>this._toggleGroupSelection(`search`,e)}):null}get _videoViewer(){let{mode:e,loadVideoViewer:t,videoViewModel:n}=this.viewModel,{control:r,reset:i}=this.messagesCommon,{mute:a,unmute:o}=this.messages,s=e!==`video`,c=this.classes({[T.viewer]:!s,[T.viewerHidden]:s}),l=`esri-image-viewer`,u=`${l}__slider-container`;return X(`calcite-panel`,{bind:this,class:c},X(`calcite-panel`,{afterCreate:t,class:this.classes(q.widget,l)}),X(`calcite-block`,{class:u,expanded:!0},X(`calcite-slider`,{bind:this,labelHandles:!0,labelTicks:!0,max:n?.videoDuration,minLabel:`0`,value:n?.currentTime??0,onCalciteSliderChange:this._handleVideoSeek})),X(`calcite-action-bar`,{"data-testid":`action-bar--video-controls`,expandToggleDisabled:!0,layout:`horizontal`},X(`calcite-action-group`,{overlayPositioning:`fixed`},X(`calcite-action`,{bind:this,icon:this.activeVideoIcon,text:`Play`,title:n?.videoPaused?r.play:r.pause,onclick:()=>n?.playVideoHandler()})),X(`calcite-action-group`,{overlayPositioning:`fixed`},X(`calcite-action`,{bind:this,icon:`refresh`,text:`Rewind`,title:i,onclick:()=>n?.rewindVideoHandler()})),X(`calcite-action-group`,{overlayPositioning:`fixed`},X(`calcite-action`,{bind:this,icon:this.activeAudioIcon,text:`Audio`,title:n?.videoMuted?a:o,onclick:()=>n?.toggleAudio()}))))}get _locationToggle(){let{viewModel:{state:e,groundCoordinates:t,groundCoordinatesAccuracy:n,groundCoordinatesAccuracyLoading:r,triangulatedPoint:i},imageLocationToolActive:a,triangularMeasurementActive:o,messages:{groundLocation:s,triangulatedLocationHeading:c}}=this;if(e!==`image-loaded`||!t||!a)return;let l=t;if(o){if(!i)return;l=i}return X(`calcite-dialog`,{bind:this,dragEnabled:!0,escapeDisabled:!0,heading:o?c:s,id:s,open:!0,placement:`bottom-start`,resizable:!0,scale:`s`,slot:`dialogs`,width:`s`,onCalciteDialogBeforeClose:this._clearImageLocation},X(L,{accuracy:n,accuracyLoading:r,groundCoordinates:l,messages:this.messages}))}_mapImageConversionToggle(){let{mapImageConversionToolState:e,viewModel:{state:t,disabled:n},videoLoaded:r,invalidCameraHeading:i,visibleElements:{mapImageConversionTool:a}}=this,o=!!(this.viewModel.mode===`video`&&r&&this.viewModel.videoViewModel?.videoPaused),s=this.viewModel.mode===`panoramic-video`&&this.viewModel.panoramicVideoLoaded&&this.viewModel.panoramicVideoPaused,c=t!==`image-loaded`&&!o&&!s||i||n;return a?X(`calcite-action`,{active:e,bind:this,disabled:c,icon:`image-pin`,text:this.messages.mapImageConversionTool,title:this.messages.mapImageConversionTool,onclick:this._toggleMapImageConversionToolState}):null}_measurementToolToggle(){let{measureType:e,viewModel:t,accuracyParametersMissing:n,messages:r,triangularMeasurementActive:i}=this,{state:a}=t,{groundDistance:o,groundArea:s,heightAboveGround:c,groundLocation:l,triangulatedDistanceHeading:u,triangulatedAreaHeading:d,triangulatedLocationHeading:f}=r,p=a!==`image-loaded`||n,m=this._actionBarLayout;return X(`calcite-action-group`,{key:`measurement-tools`,layout:m,overlayPositioning:`fixed`,scale:`m`},X(`calcite-action`,{active:e===`distance`&&!i,bind:this,disabled:p,icon:`measure-line`,key:`distance-measurement`,text:o,title:o,onclick:e=>this._toggleMeasurementSketch(e,`distance`)}),X(`calcite-action`,{active:e===`area`&&!i,bind:this,disabled:p,icon:`measure-area`,key:`area-measurement`,text:s,title:s,onclick:e=>this._toggleMeasurementSketch(e,`area`)}),X(`calcite-action`,{active:e===`height`,bind:this,disabled:p,icon:`measure-building-height-top-base`,key:`height-measurement`,text:c,title:c,onclick:e=>this._toggleMeasurementSketch(e,`height`)}),X(`calcite-action`,{active:this.imageLocationToolActive?!i:!1,bind:this,disabled:p,icon:`pin-tear`,key:`surface-location`,text:l,title:l,onclick:this._toggleLocationTool}),X(`calcite-action`,{active:i?this.imageLocationToolActive:!1,bind:this,disabled:p,icon:`dual-image-location`,key:`triangular-location`,text:f,title:f,onclick:this._toggleTriangularLocation}),X(`calcite-action`,{active:i?this.measureType===`distance`:!1,bind:this,disabled:p,icon:`dual-image-distance`,key:`triangular-distance`,text:u,title:u,onclick:this._toggleTriangularDistanceMeasurements}),X(`calcite-action`,{active:i?this.measureType===`area`:!1,bind:this,disabled:p,icon:`dual-image-area`,key:`triangular-area`,text:d,title:d,onclick:this._toggleTriangularAreaMeasurements}))}get _messageBox(){let{messages:e,viewModel:{displayMessage:t,mode:r}}=this;if(!t||r===`video`)return null;let{key:i,map:a,type:o}=t,s=`${a?n(e[i],a):e[i]}`,c=o===`error`?`danger`:o===`warn`?`warning`:`info`;return X(`calcite-notice`,{appearance:`transparent`,class:T.notice,icon:ce[c],kind:c,open:!0},X(`div`,{slot:`message`},s))}async _loadNavigationSettings(){return this._navigationSettingsLoaderTask||=i(async()=>(await import(`./OrientedImageryViewer/components/NavigationSettings.js`)).default),await this._navigationSettingsLoaderTask.promise}_measurementsGroupToggle(){let{measurementTools:e}=this.messages,{state:t,accuracyParametersMissing:n}=this.viewModel,r=t!==`image-loaded`||n;return this.visibleElements.measurementTools?X(`calcite-action`,{bind:this,disabled:r,icon:`measure-line`,key:`measurements-group-toggle`,text:e,title:e,onclick:e=>this._toggleGroupSelection(`measurements`,e)}):null}_navigationGroupToggle(){let{imageNavigation:e}=this.messages;return this.visibleElements.imageNavigationTools?X(`calcite-action`,{bind:this,icon:`absolute-direction`,key:`navigation-group-toggle`,text:e,title:e,onclick:e=>this._toggleGroupSelection(`navigation`,e)}):null}_navigationToolToggle(){let{state:e}=this.viewModel,{visibleElements:{navigationTool:t},videoLoaded:n}=this;return t?X(`calcite-action`,{active:this.navigationToolActive,bind:this,disabled:e!==`image-loaded`&&!n||this.invalidCameraHeading,icon:`explore`,text:this.messages.navigationTool,title:this.messages.navigationTool,onclick:this._toggleNavigationTool}):null}_directionToolsToggle(){let{messages:e,viewModel:t,visibleElements:n}=this,{directionalNavigation:r,sequentialNavigation:i}=n,{state:a}=t,{directionalNavigation:o,directionalNavigationDescription:s,sequentialNavigation:c,sequentialNavigationDescription:l}=e,u=this._actionBarLayout;return X(`calcite-action-group`,{key:`navigation-tools`,layout:u,overlayPositioning:`fixed`,scale:`m`},r?X(`calcite-action`,{active:this.navigationMode===`directional`,bind:this,disabled:a!==`image-loaded`||this.invalidCameraHeading,icon:`directional-navigation`,text:o,title:o+`
3
3
  `+s,onclick:()=>void this._toggleImageNavigation(`directional`)}):null,i?X(`calcite-action`,{active:this.navigationMode===`sequential`,bind:this,disabled:a!==`image-loaded`||this.invalidCameraHeading||!this.canNavigateSequentially,icon:`sequential-navigation`,text:c,title:c+`
4
4
  `+l,onclick:()=>void this._toggleImageNavigation(`sequential`)}):null)}_overlaysGroupToggle(){let{overlays:e}=this.messages;return this.visibleElements.overlays?X(`calcite-action`,{bind:this,icon:`oriented-imagery-overlays`,key:`overlays-group-toggle`,text:e,title:e,onclick:e=>this._toggleGroupSelection(`overlays`,e)}):null}_openPopupAction(){let{showPopupsAction:e}=this.visibleElements;return e?X(`calcite-action`,{bind:this,disabled:!this.popupEnabled,icon:`popup`,text:this.messages.showPopups,title:this.messages.showPopups,onclick:this._toggleImageAttributes}):null}get _panoramicVideoViewer(){let{displayMessage:e,loadPanoramicVideoViewer:t,mode:n,clickAction:r,state:i,currentBestFeature:a}=this.viewModel,o=a?.attributes.imagePath,s=e!=null||n!==`panoramic-video`||i.includes(`loading`)||!o;return X(re,{afterCreate:t,clickAction:r,oiViewModel:this.viewModel,videoSource:o,visible:!s})}get _panoramicViewer(){let{displayMessage:e,loadPanoramicViewer:t,mode:n,clickAction:r,state:i}=this.viewModel,a=e!=null||n!==`panoramic`||i.includes(`loading`);return X(_,{afterCreate:t,clickAction:r,visible:!a})}get noImageInSequenceError(){return this._get(`noImageInSequenceError`)??!1}_activateTriangulatedImageLocationTool(){this.navigationToolActive=!0,this.imageLocationToolActive=!0}_activateTriangulatedImageLocationWorkflow(e,t){this._closeAllImageTools(),this.imageLocationToolActive=!0,this.triangularMeasurementActive=!e,this.navigationToolActive=t?!0:!t}_closeImageToolsAndToggleNavigation(e,t){this._closeAllImageTools(),this.triangularMeasurementActive=!e,this.navigationToolActive=!t}_resetMeasureTypeAndActivateImageLocationTool(){this.measureType=null,this.imageLocationToolActive=!0}_closeAllImageTools(){this.enhancementToolActive=!1,this.navigationToolActive=!1,this.imageOverlaysOpened=!1,this.galleryOpened=!1,this._exploreImages3DMenuOpen=!1,this.measureType=null,this.imageLocationToolActive=!1,this.navigationMode=null,this.triangularMeasurementActive=!1,this._settingsToggle&&(this._settingsToggle.expanded=!1,this.viewModel.activeViewer?.ui.remove(this._settingsToggle))}_handleBrightnessChange(e){this.viewModel.brightness=e.currentTarget.value??0}_handleVideoBrightnessChange(e){this.viewModel.videoViewModel?.handleVideoBrightnessChange(e.target.value)}_handleContrastChange(e){this.viewModel.contrast=e.currentTarget.value??0}_handleVideoContrastChange(e){this.viewModel.videoViewModel?.handleVideoContrastChange(e.target.value)}_handleVideoSeek(e){let t=this.viewModel?.videoElement?.content;t&&(t.currentTime=e.target.value,t.play())}_handleSharpnessChange(e){this.viewModel.sharpness=e.currentTarget.value??0}_handleSuperimposeZOffsetChange(e){let t=e.currentTarget.value??0;this.viewModel.mode==="default"?(this._defaultSuperimposeZOffsetPercentage=t,this.viewModel.setDefaultSuperimposeZOffsetPercentage(100-t)):(this._panoramicSuperimposeRadiusOffsetPercentage=t,this.viewModel.setPanoramicSuperimposeRadiusPercentage(100-t))}_lazyLoadImage(e,t){e.forEach(async e=>{if(e.isIntersecting){let n=e.target,r=n.getAttribute(`data-src`),i=n.getAttribute(`data-rotation`),a=n.getAttribute(`data-objectid`),o=i?parseFloat(i)%360:0,{layer:s,_galleryController:{signal:u}}=this;if(!r||!a)return;let d;try{d=k(r)?await A(s,a,{signal:u}):await j(r,{signal:u})}catch(e){l(e)||c.getLogger(`esri.widgets.OrientedImageryViewer`).error(`#lazyLoadImage()`,e)}finally{t.unobserve(n)}if(!d)return;M(d,n,o)}})}_loadImageFromGallery(e){let{target:t}=e;if(!t)return;let n=t.getAttribute(`data-objectid`);n&&this.viewModel.currentBestFeature?.attributes.objectId!==Number(n)&&this.viewModel.selectBestFeature(n)}_loadImageMeasurementResources(){this._imageMeasurementToolsLoaderTask=i(async()=>{let{default:e}=await import(`./OrientedImageryViewer/components/ImageMeasurementWidget.js`);return e})}_loadSketchResources(){this._sketchLoaderTask=i(async()=>(await import(`./OrientedImageryViewer/components/SketchTools.js`)).default)}_onAdditionalCoverageVisibilityChange(e){this.viewModel.setAdditionalCoverageVisibility(e)}_onAdditionalCameraLocationsVisibility(e){this.viewModel.setAdditionalCameraLocationsVisibility(e)}_onCurrentCoverageVisibilityChange(e){this.viewModel.setCurrentCoverageVisibility(e)}_registerGalleryItem(e){this._galleryObserver.observe(e)}_renderWarning(e,t,n){let{viewModel:{state:r}}=this;return r===`image-loaded`?X(I,{class:T.alert,icon:`exclamation-mark-triangle-f`,kind:`warning`,message:t,open:!0,title:e,tooltip:t,topLayerDisabled:this.topLayerDisabled,onClose:n}):null}get _renderNavigation(){let{viewModel:{sectorData:e,navigatorCurrentBestFeature:t,currentBestFeature:n,state:i}}=this;if(!this.container||!n)return null;let a,o,s,c,l;if(t){let{x:e,y:n,direction:r}=t,[i,u,d,f]=S[r];a=`M ${e} ${n} L ${i} ${u} A ${w[2]} ${w[2]} 0 0 1 ${d} ${f} Z`,o=e,c=n,s=S[r][4],l=S[r][5]}let u=e=>{let t=e.target.dataset?.sector;t&&this.viewModel.handleSectorClick(+t)},d=e=>{let t=e.target.dataset;if(!t)return;let{featureIndexInSector:n,sector:r}=t;n&&r&&this.viewModel.handleFeatureClick({sector:r,featureIndexInSector:+n})},f=e=>{e.removeEventListener(`click`,d)},p=n.attributes.objectId,m=e?.map(e=>e?.items).filter(Boolean).flatMap(e=>e?.map(({x:e,y:t,objectID:n,featureIndexInSector:r,sector:i})=>X(`circle`,{afterRemoved:f,class:this.classes(T.feature,{selected:p===n}),cx:e,cy:t,"data-feature-index-in-sector":r,"data-sector":i,key:`${T.feature}-${n}`,r:ae,onclick:d}))),h=e=>{e.removeEventListener(`click`,u)},g=this.classes({[T.navigationWrapper]:!0,[T.navigationWrapperVideo]:this.viewModel.mode.includes(`video`),[T.navigationZoomed]:this._navigationToolExpanded});return this.navigationToolActive&&(i===`image-loaded`||this.videoLoaded)?X(`div`,{bind:this,class:g,key:this.messages.navigationTool},X(`svg`,{afterCreate:e=>this._storeNavigationToolReference(e),class:r()?oe:T.rotateWithAnimation,focusable:`false`,height:C,role:`img`,width:C,xmlns:`http://www.w3.org/2000/svg`},X(`defs`,null,X(`linearGradient`,{gradientUnits:`userSpaceOnUse`,id:`${this.id}-coverage-fill`,x1:o,x2:s,y1:c,y2:l},X(`stop`,{class:T.navigationPathOffset0,offset:0}),X(`stop`,{class:T.navigationPathOffset1,offset:1}))),X(`g`,null,X(`circle`,{class:this.classes(T.sector,T.outerSector),cx:w[3],cy:w[3],r:w[3],onclick:this._scaleNavigationTool}),X(`circle`,{class:T.sector,cx:w[3],cy:w[3],r:w[2]}),X(`circle`,{class:T.sector,cx:w[3],cy:w[3],r:w[1]}),X(`circle`,{class:T.sector,cx:w[3],cy:w[3],r:w[0]}),X(`path`,{class:T.pointer,d:`M 56.5 6.06217782649107 L 60 0 L 63.5 6.06217782649107 Z`,key:`${T.pointer}-west`}),X(`path`,{class:this.classes(T.pointer,T.north),d:`M 113.93782217350893 56.5 L 120 60 L 113.93782217350893 63.5 Z`,key:`${T.pointer}-north`}),X(`path`,{class:T.pointer,d:`M 56.5 113.93782217350893 L 60 120 L 63.5 113.93782217350893 Z`,key:`${T.pointer}-east`}),X(`path`,{class:T.pointer,d:`M 6.06217782649107 56.5 L 0 60 L 6.06217782649107 63.5 Z`,key:`${T.pointer}-south`}),X(`path`,{class:this.classes(T.sector,T.sectorSeparator),d:`M 23.937554159486076 23.937554159486076 L 96.06244584051393 96.06244584051393 M 23.937554159486076 96.06244584051393 L 96.06244584051393 23.937554159486076`,key:T.sectorSeparator}),y([w[2],w[1],w[0]],w[3],w[3]).map((t,n)=>X(`path`,{afterRemoved:h,class:this.classes(T.sector,e?.[n]?.length?T.sectorEnabled:T.sectorDisabled),d:t,"data-sector":`${n}`,key:`${T.sector}-${n}`,onclick:u})),X(`path`,{class:this.classes(T.sector,T.sectorCross),d:`M 56.4 56.4 L 63.53 63.53 M 63.53 56.4 L 56.4 63.53`,key:T.sectorCross}),m,n.attributes.cameraPitch>=5&&a?X(`path`,{class:T.selectedFeaturePath,d:a,fill:`url(#${this.id}-coverage-fill)`,key:T.selectedFeaturePath}):null))):null}_renderSketch(){let{dataCaptureLayer:e,imageOverlaysOpened:t}=this;if(!e||t||(this._sketchLoaderTask||this._loadSketchResources(),!this._sketchLoaderTask?.value))return null;let{geometryType:n}=e,r=n===`point`?`pin`:n===`polyline`?`line`:`polygon`,i=this._sketchLoaderTask.value;return X(`div`,{class:T.sketchTools},X(i,{icon:r,messages:this._imageSketchToolsMessages,type:n,onAction:this._onAction}))}get _renderThumbnails(){let{currentBestFeature:e,thumbnails:t}=this.viewModel;return e?X(`div`,{class:T.carouselContent},t?.items.map(({url:t,objectId:n,rotation:r},i)=>X(`div`,{class:`${T.carouselItemWrapper}${e.attributes.objectId===n?`--selected`:``}`,key:`${T.carouselItemWrapper}-${i}`},X(`canvas`,{afterCreate:this._registerGalleryItem,afterRemoved:this._unregisterGalleryItem,alt:`thumbnail-${n}`,class:T.carouselItem,"data-objectid":`${n}`,"data-rotation":`${r}`,"data-src":t,onclick:this._loadImageFromGallery,onmouseenter:this._highlight,onmouseleave:this._removeHighlight})))):null}_resetImageTools(){this.viewModel.sharpness=this.viewModel.brightness=this.viewModel.contrast=0}_resetVideoTools(){this.viewModel.videoViewModel?.resetVideoEnhancementTools()}_storeNavigationToolReference(e){this._navigationTool=e}_toggleAdditionalCameraLocations(){this.isAdditionalPointSourcesVisible=!this.isAdditionalPointSourcesVisible}_toggleAdditionalCoverage(){this.isAdditionalCoverageVisible=!this.isAdditionalCoverageVisible}_toggleCurrentCoverage(){this.currentCoverageVisible=!this.currentCoverageVisible}_toggleShowSelectedImage(){let e=!this.shouldShowSelectedImage;e&&this._disableExploreImages3D(),this.shouldShowSelectedImage=e,this._toggleDisabledViewer(this.shouldShowSelectedImage)}_resetSuperimposeOffset(){this.viewModel.mode==="default"?(this._defaultSuperimposeZOffsetPercentage=100,this.viewModel.setDefaultSuperimposeZOffsetPercentage(0)):(this._panoramicSuperimposeRadiusOffsetPercentage=100,this.viewModel.setPanoramicSuperimposeRadiusPercentage(0))}_toggleSuperimposeCameraLock(){this.viewModel.updateDefaultSuperimposeCameraLock(!this.defaultSuperimposeCameraLockEnabled)}_toggleSuperimposeView(){this.superimposeViewEnabled=!this.superimposeViewEnabled}_disableExploreImages3D(){this._exploreImages3DMenuOpen=!1,this.verticalFilterEnabled=!1,this.viewModel.setFrustumSearchEnabled(!1)}_setExploreImages3DSearchMode(e){let t=e===`3d`||e===`both`,n=e===`frustum`||e===`both`,r=this.verticalFilterEnabled===t&&this.viewModel.frustumSearchEnabled===n;this.shouldShowSelectedImage=!1,this.verticalFilterEnabled=t,this.viewModel.setFrustumSearchEnabled(n),this._toggleDisabledViewer(!0),r&&this.scheduleRender()}_toggleExploreImages3DMenu(e){e.stopPropagation(),this._isExploreImages3DEnabled?this._disableExploreImages3D():(this._setExploreImages3DSearchMode(`3d`),this._exploreImages3DMenuOpen=!0)}_toggleDisabledViewer(e){e&&(this.disabled=!1)}_toggleEnhancementToolState(e){e.stopPropagation();let t=this.enhancementToolActive;this._closeAllImageTools(),this.enhancementToolActive=!t}_toggleExploreImages(){this.disabled=!this.disabled,this.disabled&&(this.shouldShowSelectedImage=!1,this._disableExploreImages3D())}_toggleGroupSelection(e,t){let n=this._rootActionTitleToFocus;e&&(this._rootActionTitleToFocus=t?.currentTarget?.getAttribute(`title`)),e!==`search`&&(this._exploreImages3DMenuOpen=!1),this.selectedGroup=e,this._actionTitleToFocus=e?this.messages.previous:n}_toggleImageOverlays(e){e.stopPropagation();let t=this.imageOverlaysOpened;this._closeAllImageTools(),this.imageOverlaysOpened=!t}_toggleImageGallery(e){e.stopPropagation();let t=this.galleryOpened;this._closeAllImageTools(),this.galleryOpened=this.imageGalleryEnabled?!t:!1}_toggleLocationTool(e){let t=this.imageLocationToolActive,n=this.triangularMeasurementActive&&t;this._closeAllImageTools(),this.imageLocationToolActive=n||!t,e.stopPropagation()}_toggleMeasurementSketch(e,t){e.stopPropagation();let n=this.measureType,r=this.triangularMeasurementActive;this._closeAllImageTools(),this.measureType=n===t&&!r?null:t,this.measureType===t&&(this.viewModel.displayNewMeasurementButton=!0)}_toggleNavigationTool(){let e=this.navigationToolActive;this._closeAllImageTools(),this.navigationToolActive=!e}_toggleMapImageConversionToolState(){this.mapImageConversionToolState=!this.mapImageConversionToolState}_toggleTriangularAreaMeasurements(){this._toggleTriangularMeasurements(`area`)}_toggleTriangularDistanceMeasurements(){this._toggleTriangularMeasurements(`distance`)}_toggleTriangularLocation(){let e=this.triangularMeasurementActive,t=this.navigationToolActive;e?this.measureType===null?this.imageLocationToolActive?this._closeImageToolsAndToggleNavigation(e,t):this._activateTriangulatedImageLocationTool():this._resetMeasureTypeAndActivateImageLocationTool():this._activateTriangulatedImageLocationWorkflow(e,t)}_toggleTriangularMeasurements(e){let t=this.triangularMeasurementActive,n=this.viewModel.measureType,r=this.navigationToolActive;t?e===n?(this._closeAllImageTools(),this.triangularMeasurementActive=!t,this.navigationToolActive=!r):(this.imageLocationToolActive=!1,this.measureType=e,this.viewModel.displayNewMeasurementButton=!0):(this._closeAllImageTools(),this.measureType=e,this.triangularMeasurementActive=!t,this.navigationToolActive=r?!0:!r,this.viewModel.displayNewMeasurementButton=!0)}_unregisterGalleryItem(e){this._galleryObserver.unobserve(e)}get _isExploreImages3DEnabled(){return this.verticalFilterEnabled||this.viewModel.frustumSearchEnabled}_updateNavigationTool(e){let{previousFeatureAngle:t,bestFeatureAngle:n}=this.viewModel,r=(n-t+540)%360-180;e.style.setProperty(E,`${t}deg`),e.style.setProperty(D,`${t+r}deg`)}async loadBestImage(e,t){return this.viewModel.loadBestImage(e,t)}loadImageFromSource(e,t,n){return e==="default"?this.viewModel.loadMediaSource(t,n):this.viewModel.loadPanoramicMediaSource(t,n)}async overlayMapFeatures(e,t){return this.removeHandles(`${Q.overlayed}-${e.id}`),this.addHandles(u(()=>e.visible,()=>{this.viewModel.toggleOverlayMapFeatures(e.id,e.visible,this.showMapFeatures)}),`${Q.overlayed}-${e.id}`),this._overlayedLayers.add(e),this.viewModel.overlayMapFeatures(e,t&&this.showMapFeatures)}async plotMapPoint(e){return this.viewModel.plotMapPoint(e)}plotReferencePointOnGround(e){this.viewModel.plotReferencePointOnGround(e)}plotReferencePointOnImage(e){this.viewModel.plotReferencePointOnImage(e)}removeOverlayedGraphicsOnImage(e){this.removeHandles(`${Q.overlayed}-${e}`),this._overlayedLayers.remove(this._overlayedLayers.find(t=>t.id===e)),this.viewModel.removeOverlayedGraphicsOnImage(e)}resetImage(){this.viewModel.resetImage()}render(){return X(`div`,{class:this.classes(q.widget,O)},this._renderRoot)}async showImageByObjectId(e,t){return this.viewModel.showImageByObjectId(e,t)}async startDataCapture(e){return this.viewModel.startDataCapture(e)}async stopDataCapture(e){return this.viewModel.stopDataCapture(e)}updateSuitabilities(e){this.viewModel.updateSuitabilities(e)}};e([g({readOnly:!0})],$.prototype,`accuracyParametersMissing`,null),e([g()],$.prototype,`actionBarPosition`,void 0),e([g()],$.prototype,`activeLayer`,null),e([g()],$.prototype,`activeVideoIcon`,null),e([g()],$.prototype,`activeAudioIcon`,null),e([g()],$.prototype,`cameraHeadingThreshold`,null),e([g()],$.prototype,`cameraPitchThreshold`,null),e([g()],$.prototype,`canNavigateSequentially`,null),e([g()],$.prototype,`currentBestFeature`,null),e([g()],$.prototype,`currentCoverageVisible`,null),e([g()],$.prototype,`dataCaptureEnabled`,void 0),e([g()],$.prototype,`dataCaptureLayer`,null),e([g()],$.prototype,`depthImageNotSupported`,null),e([g()],$.prototype,`disabled`,null),e([g()],$.prototype,`enhancementToolActive`,null),e([g()],$.prototype,`features`,null),e([g()],$.prototype,`imagePointsInView`,null),e([g()],$.prototype,`galleryOpened`,void 0),e([g()],$.prototype,`icon`,null),e([g()],$.prototype,`imageEnhancementToolActive`,void 0),e([g()],$.prototype,`videoEnhancementToolActive`,void 0),e([g({readOnly:!0})],$.prototype,`imageGalleryEnabled`,null),e([g()],$.prototype,`imageLocationToolActive`,null),e([g()],$.prototype,`imageOverlaysOpened`,void 0),e([g({readOnly:!0})],$.prototype,`invalidCameraHeading`,null),e([g()],$.prototype,`isAdditionalCoverageVisible`,null),e([g()],$.prototype,`isAdditionalPointSourcesVisible`,null),e([g()],$.prototype,`mapImageConversionToolState`,null),e([g()],$.prototype,`measureType`,null),e([g()],$.prototype,`layer`,null),e([g()],$.prototype,`navigationToolActive`,void 0),e([g()],$.prototype,`navigationMode`,null),e([J(b()),g({type:N})],$.prototype,`viewModel`,void 0),e([g(),Y(`esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer`)],$.prototype,`messages`,void 0),e([g(),Y(`esri/core/t9n/Units`)],$.prototype,`measurementUnitMessages`,void 0),e([g(),Y(`esri/t9n/common`)],$.prototype,`messagesCommon`,void 0),e([g(),Y(`esri/widgets/Sketch/t9n/Sketch`)],$.prototype,`messagesSketch`,void 0),e([g()],$.prototype,`pixelMeasurementUnit`,void 0),e([g()],$.prototype,`pixelAreaMeasurementUnit`,void 0),e([g({readOnly:!0})],$.prototype,`popupEnabled`,null),e([g()],$.prototype,`preloadMedia`,null),e([g()],$.prototype,`referencePoint`,null),e([g()],$.prototype,`selectedFeatureObjectId`,null),e([g()],$.prototype,`selectedPoint`,null),e([g()],$.prototype,`selectedGroup`,void 0),e([g()],$.prototype,`showCameraLocations`,void 0),e([g()],$.prototype,`showMapFeatures`,void 0),e([J([`create`,`delete`,`redo`,`undo`,`update`]),g({readOnly:!0})],$.prototype,`sketchViewModel`,null),e([g()],$.prototype,`triangularMeasurementActive`,null),e([g()],$.prototype,`videoLoaded`,null),e([g()],$.prototype,`view`,null),e([g({type:P,nonNullable:!0})],$.prototype,`visibleElements`,void 0),e([g()],$.prototype,`determineWorkflowForFeature`,null),e([g()],$.prototype,`shouldShowSelectedImage`,null),e([g()],$.prototype,`superimposeViewEnabled`,null),e([g()],$.prototype,`defaultSuperimposeCameraLockEnabled`,null),e([g()],$.prototype,`updateFootprint`,null),e([g()],$.prototype,`verticalFilterEnabled`,null),e([g()],$.prototype,`_exploreImages3DSearchMode`,null),e([g()],$.prototype,`_defaultSuperimposeZOffsetPercentage`,void 0),e([g()],$.prototype,`_panoramicSuperimposeRadiusOffsetPercentage`,void 0),e([g()],$.prototype,`_exploreImages3DMenuOpen`,void 0),e([g()],$.prototype,`_actionBarLayout`,null),e([g()],$.prototype,`_activeMeasurementHeading`,null),e([g()],$.prototype,`_imageOverlaysLoaderTask`,void 0),e([g()],$.prototype,`_imageMeasurementToolsLoaderTask`,void 0),e([g()],$.prototype,`_navigationSettingsLoaderTask`,void 0),e([g()],$.prototype,`_navigationTask`,void 0),e([g()],$.prototype,`_measurementToggle`,null),e([g()],$.prototype,`_renderRoot`,null),e([g()],$.prototype,`_imageEnhancementTools`,null),e([g()],$.prototype,`_videoEnhancementTools`,null),e([g()],$.prototype,`_superimposeTools`,null),e([g()],$.prototype,`_exploreImages3DTools`,null),e([g()],$.prototype,`_imageGalleryPanel`,null),e([g()],$.prototype,`_imageGalleryContext`,null),e([g()],$.prototype,`_imageOverlaysComponent`,null),e([g()],$.prototype,`_navigationUI`,null),e([g()],$.prototype,`_imageOverlayMessages`,null),e([g()],$.prototype,`_imageSketchToolsMessages`,null),e([g()],$.prototype,`_imageOverlaysEnabled`,null),e([g()],$.prototype,`_imageViewer`,null),e([g()],$.prototype,`_imageViewerTriangular`,null),e([g()],$.prototype,`_videoViewer`,null),e([g()],$.prototype,`_locationToggle`,null),e([g()],$.prototype,`_messageBox`,null),e([g()],$.prototype,`_navigationToolExpanded`,void 0),e([g()],$.prototype,`_navigationTool`,void 0),e([g()],$.prototype,`_panoramicVideoViewer`,null),e([g()],$.prototype,`_panoramicViewer`,null),e([g({readOnly:!0})],$.prototype,`noImageInSequenceError`,null),e([g()],$.prototype,`_renderNavigation`,null),e([g()],$.prototype,`_renderThumbnails`,null),e([g()],$.prototype,`_sketchLoaderTask`,void 0),e([g()],$.prototype,`_isExploreImages3DEnabled`,null),$=e([ee(`esri.widgets.OrientedImageryViewer`)],$);const le=$;export{le as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../../Graphic.js";import{isSome as n}from"../../core/arrayUtils.js";import r from"../../core/Collection.js";import i from"../../core/Error.js";import{EventedAccessor as a}from"../../core/Evented.js";import{handlesGroup as o,makeHandle as s,drainHandles as c,destroyHandle as l}from"../../core/handleUtils.js";import has from"../../core/has.js";import u from"../../core/Logger.js";import{destroyMaybe as d,abortMaybe as f,removeMaybe as p}from"../../core/maybe.js";import{createAbortError as m,ignoreAbortErrors as h,whenOrAbort as g}from"../../core/promiseUtils.js";import{watch as _,syncAndInitial as v,on as ee,when as te,sync as ne,whenOnce as y}from"../../core/reactiveUtils.js";import{property as b,subclass as re}from"../../core/accessorSupport/decorators.js";import{trackAccess as x}from"../../core/accessorSupport/tracking.js";import{SimpleObservable as ie}from"../../core/accessorSupport/tracking/SimpleObservable.js";import{UpdatingHandles as S}from"../../core/support/UpdatingHandles.js";import{getReferenceEllipsoid as ae}from"../../geometry/ellipsoidUtils.js";import{canProjectWithoutEngine as oe,isLoaded as se,load as ce,project as le}from"../../geometry/projectionUtils.js";import{geometryToCoordinates as C}from"../../geometry/support/coordsUtils.js";import{equals as ue}from"../../geometry/support/spatialReferenceUtils.js";import de from"../../layers/GraphicsLayer.js";import{isIntegratedMeshLayer as fe}from"../../layers/support/layerUtils.js";import{getEffectiveElevationInfo as pe}from"../../support/elevationInfoUtils.js";import me from"../../symbols/FillSymbol3DLayer.js";import he from"../../symbols/MeshSymbol3D.js";import ge from"../../symbols/SimpleFillSymbol.js";import _e from"../../symbols/SimpleLineSymbol.js";import w from"../../symbols/SimpleMarkerSymbol.js";import T from"../../symbols/TextSymbol.js";import{symbolTypes as E}from"../../symbols/support/typeUtils.js";import{isSupportedObjectResultMessage as D}from"../../views/3d/interactive/editingTools/isSupportedObjectUtils.js";import{isSupportedObject as ve}from"../../views/3d/interactive/editingTools/move/isSupportedObject.js";import{isSupportedObject as ye}from"../../views/3d/interactive/editingTools/reshape/isSupportedObject.js";import{isSupportedGraphic as be}from"../../views/3d/interactive/editingTools/transform/isSupportedGraphic.js";import{addUniqueLayer as O}from"../../views/draw/support/layerUtils.js";import{ViewEventPriorities as k}from"../../views/input/InputManager.js";import{sketchKeys as A}from"../../views/interactive/keybindings.js";import{bindViewToolOptions as xe}from"../../views/interactive/options/bindViewToolOptions.js";import j from"../../views/interactive/options/InteractiveToolOptions.js";import M from"../../views/interactive/sketch/SketchLabelOptions.js";import N from"../../views/interactive/sketch/SketchOptions.js";import Se from"../../views/interactive/sketch/SketchTooltipOptions.js";import Ce from"../../views/interactive/sketch/SketchValueOptions.js";import{SnappingManager as P}from"../../views/interactive/snapping/SnappingManager.js";import{acquire as we}from"../../views/interactive/snapping/SnappingManagerPool.js";import F from"../../views/interactive/snapping/SnappingOptions.js";import{setupSnappingToggleHandles as I}from"../../views/interactive/snapping/snappingUtils.js";import{GeometryWorkerHandle as Te}from"../../views/support/GeometryWorkerHandle.js";import{defaultHighlightName as Ee}from"../../views/support/HighlightDefaults.js";import{findFirstGraphicHit as De}from"../../views/support/hitTestSelectUtils.js";import{createScreenPointFromEvent as L}from"../../views/support/screenUtils.js";import Oe from"./adapters/layer/GraphicsLayerAdapter.js";import ke from"./adapters/layer/MapNotesLayerAdapter.js";import Ae from"./adapters/layer/SketchLayerAdapter.js";import{CreateOperationHandle as je,DrawToolOperationHandle as Me,UpdateOperationHandle as R}from"./support/OperationHandle.js";import{PluginManager as Ne}from"./support/PluginManager.js";import{SettingsManager as Pe}from"./support/SettingsManager.js";import{getLegacyTool as z,isCompletelyDegenerate as Fe,graphicsHaveTooFewVerticesForBox as B,getModeFromCreateOptions as Ie,getDrawToolGeometryTypeFromCreateTool as Le}from"./support/sketchUtils.js";const V={defaultZ:0},H={reshapeOptions:{edgeOperation:`split`,shapeOperation:`move`,vertexOperation:`move`,enableCreateCurveFromStraightEdge:!0},enableMoveAllGraphics:!0,enableRotation:!0,enableScaling:!0,multipleSelectionEnabled:!0,preserveAspectRatio:!1,toggleToolOnClick:!0,enableZ:!0,highlightOptions:{enabled:!0,name:Ee},tool:`transform`},U=Symbol(),W=Symbol();let G=class extends a{constructor(e){super(e),this._defaultSnappingManager=null,this._operationContext=null,this._internalGraphicsLayer=new de({listMode:`hide`,internal:!0,title:`SVM Internal`}),this._pluginManager=new Ne({sketchViewModel:this}),this.settingsManager=new Pe({availablePlugins:()=>this.pluginManager.visiblePluginsFlat}),this._operationHandle=null,this._updatingHandles=new S,this._toolTransitionHandles=new S,this._drawToolSimplifyAbortController=null,this._geometryWorkerHandle=new Te,this._viewHandlesKey=`viewHandles`,this.activeFillSymbol=null,this.activeLineSymbol=null,this.activeVertexSymbol=null,this.allowDeleteKey=!0,this.activeUpdateOptions=null,this.layer=null,this.pointSymbol=new w({style:`circle`,size:6,color:[255,255,255],outline:{color:[50,50,50],width:1}}),this.polygonSymbol=new ge({color:[150,150,150,.2],outline:{color:[50,50,50],width:2}}),this.polylineSymbol=new _e({color:[130,130,130,1],width:2}),this.meshSymbol=new he({symbolLayers:new r([new me])}),this.updateGraphics=new r,this.updateOnGraphicClick=!0,this.useViewOptions=!1,this.cancelUpdateOnClickAway=!0,this.creationMode=`single`,this.vertexSymbol=new w({style:`circle`,size:6,color:[255,255,255],outline:{color:[50,50,50],width:1}}),this.sketchOptions=new N,this.useLegacyCreateTools=!0,this._moduleLoaderAbortController=null,this._viewReadyAbortController=null,this._sketchContinuationFlag=!1,this._onLayerAdapterChange=async()=>{let{_layerAdapter:e}=this;if(this.removeHandles(W),!e)return;let t=[e.onGraphicsChange(e=>this._onLayerGraphicsChangeCallback(e)),_(()=>e.elevationInfo,e=>{e!==this._internalGraphicsLayer.elevationInfo&&(this.cancel(),this._internalGraphicsLayer&&(this._internalGraphicsLayer.elevationInfo=e))},v)].filter(n);this.addHandles(t,W)},this._originalPopupEnabled=null,this.defaultCreateOptions=V,this.defaultUpdateOptions=H,this.snappingOptions=e?.snappingManager?.options??e?.snappingOptions??new F,this.textSymbol=new T({text:`text`})}initialize(){this._updatingHandles.consumePromise(this._setupAdvancedDrawToolIntegrationMaybe()),this.addHandles([ee(()=>this.view?.map?.layers,`change`,e=>{this.layer&&e.removed.includes(this.layer)&&this.cancel()}),_(()=>this._layerAdapter,()=>this._onLayerAdapterChange(),v),_(()=>this.view,e=>{this._defaultSnappingManager=d(this._defaultSnappingManager),e&&(this.snappingManager||(this._defaultSnappingManager=new P({view:e,options:this.snappingOptions})),e.type===`2d`?(import(`../../views/2d/interactive/editingTools.js`),this._updatingHandles.consumePromise(this._setupAdvancedDrawToolIntegrationMaybe())):e.type===`3d`&&(import(`../../views/3d/interactive/editingTools.js`),import(`../../views/3d/layers/GraphicsLayerView3D.js`)))},v),_(()=>this.view?.spatialReference,(e,t)=>{e&&t&&!e.equals(t)&&this.cancel()})]),I(this,void 0,()=>this._operationSnappingManager?.options??this.snappingOptions)}destroy(){this.cancel(),this._removeDefaultLayer(),this._defaultSnappingManager=d(this._defaultSnappingManager),this._destroyOperationContext(),this._set(`snappingManager`,null),this._set(`view`,null),this._updatingHandles.destroy(),this._toolTransitionHandles.destroy(),this._drawToolSimplifyAbortController=f(this._drawToolSimplifyAbortController),this._geometryWorkerHandle.destroy(),this._pluginManager?.destroy(),this.emit(`destroy`)}get _operationSnappingManager(){return this._operationContext?.snappingManager??this.snappingManager}get _operationToolOptions(){return this._operationContext?.toolOptions??this.sketchOptions}get _layerAdapter(){let{layer:e}=this;switch(e?.type){case`graphics`:return new Oe(e);case`map-notes`:return new ke(e);case`sketch`:return new Ae(e);case void 0:default:return null}}get activeTool(){return this._operationHandle?.tool??null}get geometrySimplificationInProgress(){return!!this._drawToolSimplifyAbortController}get activeCreateToolDrawMode(){let e=this._operationHandle;if(e?.type===`create`&&e.activeComponent&&`mode`in e.activeComponent)return e.activeComponent.mode;if(e?.activeComponent?.type===`draw-2.0`){let t=e.activeComponent.pluginStack.map(e=>e.configuration).filter(n).toArray();if(t.length>0)return this._pluginManager?.getDrawingModeEquivalentToPluginStack(t)}return null}get activeTooltip(){let{activeComponent:e,destroyed:t}=this,n=!t&&e&&`tooltip`in e?e.tooltip:null;return n?.visible?n:null}get activeComponent(){return this._operationHandle?.activeComponent??null}get createGraphic(){return this.activeComponent!=null&&(this.activeComponent.type===`draw-3d`||this.activeComponent.type===`draw-2d`)?this.activeComponent.graphic:this._get(`createGraphic`)}get defaultCreateOptions(){return this._get(`defaultCreateOptions`)}set defaultCreateOptions(e){this._set(`defaultCreateOptions`,{...V,...e})}get defaultUpdateOptions(){return this._get(`defaultUpdateOptions`)}set defaultUpdateOptions(e){this._set(`defaultUpdateOptions`,{...H,...e,reshapeOptions:{...H.reshapeOptions,...e?.reshapeOptions},highlightOptions:{...H.highlightOptions,...e?.highlightOptions}})}get labelOptions(){return this.sketchOptions.labels}set labelOptions(e){this.sketchOptions.labels=e}get textSymbol(){return this._get(`textSymbol`)}set textSymbol(e){this._set(`textSymbol`,e)}get snappingOptions(){return this.snappingManager?.options??this._get(`snappingOptions`)}set snappingOptions(e){this._defaultSnappingManager!=null&&(this._defaultSnappingManager.options=e),this._set(`snappingOptions`,e)}get snappingManager(){return this._isOverridden(`snappingManager`)?this._get(`snappingManager`):this._defaultSnappingManager}set snappingManager(e){if(e)this._isOverridden(`snappingManager`)||(this._defaultSnappingManager=d(this._defaultSnappingManager)),this._override(`snappingManager`,e);else{let{view:e}=this;!this._defaultSnappingManager&&e&&(this._defaultSnappingManager=new P({options:this.snappingOptions,view:e})),this._clearOverride(`snappingManager`)}}get state(){let e=!!(this.view?.ready&&this.layer),t=this._operationHandle;return e&&t?`active`:e?`ready`:`disabled`}get toolTransitionInProgress(){return this._toolTransitionHandles.updating||!!this.drawTool?.lifecycleManager.updating}get tooltipOptions(){return this.sketchOptions.tooltips}set tooltipOptions(e){this.sketchOptions.tooltips=e}get updating(){return this.toolTransitionInProgress||this.activeComponent&&`updating`in this.activeComponent&&this.activeComponent.updating||!!(this._updatingHandles.updating||this._drawToolSimplifyAbortController||this.snappingManager?.updating||this.drawTool?.updating)}get valueOptions(){return this.sketchOptions.values}set valueOptions(e){this.sketchOptions.values=e}get view(){return this._get(`view`)}set view(e){let t=this._get(`view`);if(t){let{container:e,map:n}=t;e&&this._clearCursor(),n?.remove(this._internalGraphicsLayer),this.removeHandles(this._viewHandlesKey),this.cancel()}let n=`view-ready`;this.removeHandles(n),e&&this.addHandles(te(()=>e.ready,t=>{this.removeHandles(this._viewHandlesKey),t&&this.addHandles(this._generateViewHandles(e),this._viewHandlesKey)},v),n),this._set(`view`,e),this._updatingHandles.consumePromise(this._setupAdvancedDrawToolIntegrationMaybe())}get isUsingLegacyCreateTools(){return this.useLegacyCreateTools||this.view?.type!==`2d`}get pluginManager(){return this._pluginManager}get drawTool(){return this.activeComponent?.type===`draw-2.0`?this.activeComponent:null}get activePluginConfigurations(){return this.drawTool?.pluginStack.toArray().map(e=>e.configuration).filter(n)??[]}get rootPlugins(){return this._pluginManager?.availablePlugins}set rootPlugins(e){this._overrideIfSome(`rootPlugins`,e)}get effectiveAvailablePlugins(){if(this.isUsingLegacyCreateTools)return null;let e=this.view?.type??`2d`,{firstPluginWithSwappableLeaf:t}=this;return t?t.availableDownstreamPlugins.filter(t=>!t.excludedViews?.includes(e)):this.rootPlugins?.filter(t=>!t.excludedViews?.includes(e)).filter(n)??[]}get firstPluginWithSwappableLeaf(){let e=this.view?.type??`2d`;return this.drawTool?.pluginStack.toArray().map(e=>e.configuration).findLast(t=>t!=null&&!t.hidden&&t.availableDownstreamPlugins&&t.availableDownstreamPlugins.filter(t=>!t.excludedViews?.includes(e))?.length>1)}get multiplePluginsActive(){return this.drawTool?this.drawTool.pluginStack.length>1:!1}replaceLeaf(e){this.drawTool?.replaceLeaf(e)}addGraphic(e){this._layerAdapter?.add(e)}addGraphics(e){this._layerAdapter?.addMany(e)}hasGraphic(e){return!!this._layerAdapter?.has(e)}removeGraphic(e){this._layerAdapter?.remove(e)}removeGraphics(e){this._layerAdapter?.removeMany(e)}removeAllGraphics(){this._layerAdapter?.removeAll()}cancel(){this._moduleLoaderAbortController=f(this._moduleLoaderAbortController),this._viewReadyAbortController=f(this._viewReadyAbortController),this._drawToolSimplifyAbortController=f(this._drawToolSimplifyAbortController),this._sketchContinuationFlag=!0,this._operationHandle?.cancel()}complete(){this._operationHandle?.complete()}delete(){let{state:e,updateGraphics:t}=this;if(e===`active`&&t.length){let{activeTool:e}=this,n=t.toArray();this.removeGraphics(n),this.cancel(),this._emitDeleteEvent({graphics:n,tool:e})}}duplicate(){if(this.state===`active`&&this.updateGraphics.length){let e=this.updateGraphics.map(e=>e.clone()).toArray();return this.addGraphics(e),this.emit(`duplicate`,{graphics:e,type:`duplicate`}),e}return[]}async create(e,t){return this._toolTransitionHandles.addPromise(this._create(e,t))}async _create(e,t){this.cancel(),await this._updatingHandles.addPromise(this._waitViewReady());let{view:n,layer:r}=this;if(!n||this.state===`disabled`)throw r||this._logMissingLayer(),m();if(n.activeTool!=null&&(n.activeTool=null),!e){this._logError(`sketch:missing-parameter`,`Missing parameter 'tool'.`);return}O(n,this._internalGraphicsLayer);let i=this._createOperationContext(n),a;try{a=await this._updatingHandles.addPromise(this._setupCreateOperation(e,t))}catch(e){throw this._destroyOperationContext(i),e}if(a==null||this.destroyed||i!==this._operationContext){let e=i===this._operationContext;a?.onEnd(),d(a),this._destroyOperationContext(i),e&&n.map?.remove(this._internalGraphicsLayer);return}let o=z(e);a.on(`complete`,()=>{if(a===this._operationHandle){let n=this.createGraphic,r=this._operationHandle.cancelled;if(this._operationHandle.destroy(),this._operationHandle=null,this._destroyOperationContext(),this._set(`createGraphic`,null),this.view?.map?.remove(this._internalGraphicsLayer),!a.cancelled&&n!=null&&this.addGraphic(n),this._sketchContinuationFlag=!1,this.emit(`create`,{graphic:n,state:r?`cancel`:`complete`,tool:o??`point`,toolEventInfo:null,type:`create`}),r||this._sketchContinuationFlag)return;let{creationMode:i}=this;if(i===`continuous`){if(t?.geometryToPlace)return;this._updatingHandles.consumePromise(h(this.create(e,t)))}else i===`update`&&n&&this._updatingHandles.consumePromise(h(this.update([n])))}}),this._operationHandle=a,n.ready&&n.focus()}async place(e,t){return await e.load(),this.create(`mesh`,{mode:`click`,hasZ:e.hasZ,geometryToPlace:e,...t})}async update(e,t){return this._toolTransitionHandles.addPromise(this._update(e,t))}async _update(e,t){this.cancel(),await this._updatingHandles.addPromise(this._waitViewReady());let{layer:n,view:r,state:i}=this;if(!r||i===`disabled`)throw n||this._logMissingLayer(),m();r.activeTool!=null&&(r.activeTool=null);let a=Array.isArray(e)?e:[e];if(e==null||!a?.length){this._logError(`sketch:missing-parameter`,`Missing parameter 'graphics'.`);return}if(a.some(e=>this.hasGraphic(e)?e.geometry==null&&(this._logError(`sketch:invalid-parameter`,`Parameter 'graphics' contains one or more graphics with an unsupported geometry.`),!0):(this._logError(`sketch:invalid-parameter`,`Parameter 'graphics' contains one or more graphics missing from the supplied GraphicsLayer.`),!0)))return;let o=this._createOperationContext(r),s;try{s=await this._updatingHandles.addPromise(this._setupUpdateOperation(a,t))}catch(e){throw this._destroyOperationContext(o),e}this.destroyed||s==null||$(s)||o!==this._operationContext?(s&&!$(s)&&(s.onEnd(),s.destroy()),this._destroyOperationContext(o)):(O(r,this._internalGraphicsLayer),this._setUpdateOperationHandle(s,t),this.emit(`update`,{graphics:a,state:`start`,aborted:!1,tool:s.tool,toolEventInfo:null,type:`update`}))}async _updateSpatialReference(e){let t=this.view;if(!t)this._logMissingView();else{e=Array.isArray(e)?e:[e];for(let n of e)n.geometry!=null&&n.geometry.type!==`mesh`&&!ue(n.geometry.spatialReference,t.spatialReference)&&(!oe(n.geometry.spatialReference,t.spatialReference)&&!se()&&await ce(),n.geometry=le(n.geometry,t.spatialReference))}}undo(){this.canUndo()&&this._operationHandle?.undo()}redo(){this.canRedo()&&this._operationHandle?.redo()}canUndo(){return!!this._operationHandle?.canUndo()}canRedo(){return!!this._operationHandle?.canRedo()}toggleUpdateTool(){this._updatingHandles.consumePromise(this._operationHandle?.toggleTool())}_createOperationContext(e){this._destroyOperationContext();let t=this.useViewOptions?e.options:null,n=t?we(e):null,r=t?new j:this.sketchOptions,i;if(t){let{values:t}=r;i=o([xe(r,()=>e.options,()=>this.sketchOptions),_(()=>t.directionMode,e=>{this.sketchOptions.values.directionMode=e},ne)])}return this._operationContext={snappingManager:n?.snappingManager??this.snappingManager,toolOptions:r,...o([n,i])}}_destroyOperationContext(e=this._operationContext){e===this._operationContext?this._operationContext=p(this._operationContext):p(e)}async _getFirstHit(e){let t=this.view;if(!t)return this._logMissingView(),null;if(t.type===`2d`){let n=[];t.map.allLayers.forEach(e=>{(e.type===`vector-tile`||e.type===`imagery`)&&n.push(e)});let r=await t.hitTest(e,{exclude:n});return De(r.results)}let n=[t.map.ground];t.map.allLayers.forEach(e=>{fe(e)&&(!has(`enable-feature:im-as-ground`)||e.isUsedAsGroundLayer)&&n.push(e)});let r=await t.hitTest(e,{exclude:n});if(r.results.length>0){let e=r.results[0];if(e!=null&&e.type===`graphic`&&e.graphic&&(!r.ground.mapPoint||t.map.ground.opacity<1||r.ground.distance-(e.distance??0)>-Math.min(3*r.ground.distance,t.viewingMode===`global`?ae(t.renderCoordsHelper.spatialReference).radius/t.renderCoordsHelper.unitInMeters:1/0)))return e}return null}_generateViewHandles(e){return[e.on(`immediate-click`,async e=>{let t=this.state===`active`&&this._operationHandle?.type===`create`;this.state!==`disabled`&&!t&&this.updateOnGraphicClick&&await this._toolTransitionHandles.addPromise(this._handleImmediateClick(e))},k.WIDGET)]}async _handleImmediateClick(e){let t=await e.defer(()=>this._getFirstHit(L(e))),n=null;if(t!=null){let r=t.graphic;this.updateGraphics.includes(r)||this.hasGraphic(r)?(e.stopPropagation(),n=r):this.view?.type===`2d`&&!this._isComponentGraphic(r)&&this.state===`active`&&this.cancel()}else this.state===`active`&&this.cancelUpdateOnClickAway&&this.cancel();n!=null&&!this.updateGraphics.includes(n)&&await this.update([n],{...this.defaultUpdateOptions,reshapeOptions:{...this.defaultUpdateOptions.reshapeOptions}})}async _setupCreateOperation(e,t){let n=this.view;if(!n)return this._logMissingView(),null;let r={hasZ:n.type===`3d`,...this.defaultCreateOptions,...t},i=typeof e==`string`?this.pluginManager?.getPluginsEquivalentToCreateTool(e,r.mode):e,a=z(e);if(i&&!this.isUsingLegacyCreateTools){let e=await this._setupDrawTool(i,r,a??`polyline`);if(e)return this._setupDrawToolOperationHandle(e,a??`point`)}if(!a)return null;let o=await this._setupDrawGraphicTool(a,n,r);return o==null?null:(n.tools.add(o),n.activeTool=o,this._setupCreateOperationHandle(o,a))}async _setupDrawGraphicTool(e,t,n){if(e===`multipoint`&&t.type===`3d`)return this._logError(`sketch:create`,`Multipoint geometries are not supported in SceneView.`),null;if(!t)return this._logMissingView(),null;let{cursor:r,defaultZ:i,hasZ:a,geometryToPlace:o,graphicProperties:s,mode:c,preserveAspectRatio:l}=n,u=Ie(c,e),d=Le(e),f=n?.optionsPerTool?.has(e)?n.optionsPerTool.get(e):{},p=f?.preserveAspectRatio??l??e!==`rectangle`,m={centered:e!==`rectangle`&&!(e===`circle`&&!p),cursor:r,defaultZ:i,forceUniformSize:p,graphicProperties:{...s,attributes:{...s?.attributes}},geometryToPlace:o,geometryType:d,mode:u,graphicSymbol:n.graphicSymbol??this._getGraphicSymbolFromTool(e),hasZ:a,snappingManager:this._operationSnappingManager,snapToScene:!1,view:t,...f};return t.type===`2d`?this._makeDrawGraphicTool2D(m):this._makeDrawGraphicTool3D(m)}async _makeDrawGraphicTool2D(e){let t=await this._requireModule(import(`../../views/2d/interactive/editingTools.js`));return $(t)||this.destroyed?null:new t.module.DrawGraphicTool2D({...e,activeVertexSymbol:this.activeVertexSymbol,regularVerticesSymbol:this.vertexSymbol,activeLineSymbol:this.activeLineSymbol,activeFillSymbol:ze(e.geometryType)?this.activeFillSymbol:null,toolOptions:this._operationToolOptions})}async _makeDrawGraphicTool3D(e){let t=await this._requireModule(import(`../../views/3d/interactive/editingTools.js`));return $(t)||this.destroyed?null:new t.module.DrawGraphicTool3D({...e,elevationInfo:this._layerAdapter?.elevationInfo,snapToScene:!0,toolOptions:this._operationToolOptions})}_setupCreateOperationHandle(e,t){let n=this.view;if(!n)return this._logMissingView(),null;let r=null,i=e.forceUniformSize,a=e.centered,o=new ie,l=[s(()=>o.destroy()),n.on(`key-down`,t=>{if(t.key===A.pan)t.stopPropagation(),t.repeat||(e.enabled=!1);else if(t.key===A.complete)t.stopPropagation(),e.completeCreateOperation();else if(t.key===A.vertexAdd&&!t.repeat){let n=e.drawOperation.geometryType;(n===`polyline`||n===`polygon`||n===`multipoint`)&&(t.stopPropagation(),e.drawOperation.commitStagedVertex())}else t.key===A.undo?(t.stopPropagation(),u.undo()):t.key===A.redo?(t.stopPropagation(),u.redo()):t.key===A.constraint&&(e.geometryType===`rectangle`||e.geometryType===`circle`)&&!t.repeat?(e.forceUniformSize=!i,t.stopPropagation()):t.key===A.center&&(t.repeat||(e.centered=!a,t.stopPropagation()))},k.WIDGET),n.on(`key-up`,t=>{t.key===A.pan?e.enabled=!0:t.key===A.constraint&&(e.geometryType===`rectangle`||e.geometryType===`circle`)?(e.forceUniformSize=i,t.stopPropagation()):t.key===A.center&&(e.centered=a,t.stopPropagation())},k.WIDGET),e.on(`vertex-update`,()=>{o.notify()}),e.on(`vertex-add`,t=>{switch(o.notify(),r=r==null?`start`:`active`,t.operation){case`apply`:this.emit(`create`,{graphic:e.graphic,state:r,tool:this.activeTool,toolEventInfo:t,type:`create`});break;case`undo`:this._emitUndoEvent({graphics:[e.graphic],tool:e.geometryType});break;case`redo`:this._emitRedoEvent({graphics:[e.graphic],tool:e.geometryType})}}),e.on(`cursor-update`,t=>{e.drawOperation.numCommittedVertices>0&&this.emit(`create`,{graphic:e.graphic,state:`active`,tool:this.activeTool,toolEventInfo:{coordinates:t.vertices[0].coordinates,type:`cursor-update`},type:`create`})}),e.on(`vertex-remove`,t=>{switch(o.notify(),t.operation){case`apply`:this.emit(`create`,{graphic:e.graphic,state:`active`,tool:this.activeTool,toolEventInfo:t,type:`create`});break;case`undo`:this._emitUndoEvent({graphics:[e.graphic],tool:e.geometryType});break;case`redo`:this._emitRedoEvent({graphics:[e.graphic],tool:e.geometryType})}}),e.on(`complete`,e=>{this._set(`createGraphic`,e.graphic),r=`complete`,e.aborted?u&&u.cancel():u&&u.complete()}),_(()=>this._getGraphicSymbolFromTool(t),t=>{e.graphicSymbol=t})],u=new je({activeComponent:e,type:`create`,onEnd:()=>{c(l),n.tools?.remove(e)},undo:()=>{e.canUndo&&e.undo()},redo:()=>{e.canRedo&&e.redo()},canUndo:()=>(x(o),e.canUndo),canRedo:()=>(x(o),e.canRedo)});return u}_setupDrawToolOperationHandle(e,t){let r=this.view;if(!r)return this._logMissingView(),null;let i=null,a=[r.on(`key-down`,t=>{t.key===A.pan&&(t.stopPropagation(),t.repeat||(e.editable=!1))},k.WIDGET),r.on(`key-up`,t=>{t.key===A.pan&&(e.editable=!0)},k.WIDGET),e.on(`before-vertex-add`,t=>{let n=e.mostUpstreamPlugin?.configuration;if(n&&`legacyCreateTool`in n&&(n?.legacyCreateTool===`point`||n.legacyCreateTool===`text`)){let e=t.detail.originalEvent;e&&`key`in e&&e.key===A.vertexAdd&&t.preventDefault()}}),e.on(`before-complete`,t=>{let n=e.getGeometryIfCompleted();(!n||Fe(n))&&t.preventDefault()}),e.on([`vertex-add`,`vertex-remove`],r=>{switch(this.createGraphic&&(this.createGraphic.geometry=e.getGeometryIfCompleted()),i=i==null&&r.type!==`vertex-remove`?`start`:`active`,r.operation){case`apply`:this.emit(`create`,{graphic:this.createGraphic,state:i,tool:this.activeTool,toolEventInfo:r,type:`create`});break;case`undo`:this._emitUndoEvent({graphics:[this.createGraphic].filter(n),tool:t});break;case`redo`:this._emitRedoEvent({graphics:[this.createGraphic].filter(n),tool:t})}}),e.on(`cursor-update`,t=>{this.createGraphic&&(this.createGraphic.geometry=e.unprocessedGeometry),(t.vertices[0]?.vertexIndex>0||t.vertices[0]?.componentIndex>0)&&this.emit(`create`,{graphic:this.createGraphic,state:`active`,tool:this.activeTool,toolEventInfo:{coordinates:t.vertices[0].coordinates,type:`cursor-update`},type:`create`})}),e.on(`complete`,async({geometry:t,isSimple:n})=>{let r=this.createGraphic,i=!!t&&t.type!==`mesh`&&t.type!==`extent`&&!n;if(r&&(r.geometry=n?t:e.unprocessedGeometry??t),!i||!r)o.complete();else{this._internalGraphicsLayer.add(this.createGraphic);let e=new AbortController;this._drawToolSimplifyAbortController?.abort(),this._drawToolSimplifyAbortController=e,await this._updatingHandles.addPromise(h(this._finalizeDrawToolCompletion({abortController:e,geometry:t,graphic:r,handle:o})))}})],o=new Me({activeComponent:e,type:`create`,onEnd:()=>{c(a),r.tools.remove(e)},undo:()=>e.undo(),redo:()=>e.redo(),canUndo:()=>e.canUndo,canRedo:()=>e.canRedo});return a.push(e.on(`cancel`,()=>{this._drawToolSimplifyAbortController=f(this._drawToolSimplifyAbortController),o.cancel()})),o}async _finalizeDrawToolCompletion({abortController:e,geometry:t,graphic:n,handle:r}){let i=this.view?.acquireCursor(`progress`,`high`);i&&this.addHandles(i);let a=()=>e.signal.aborted?(n&&(this._layerAdapter?.remove(n),this._internalGraphicsLayer?.remove(n)),this._set(`createGraphic`,null),!0):!1;try{let i=await this._geometryWorkerHandle.simplify(t,e.signal);if(a())return;n.geometry=i??t,this._internalGraphicsLayer?.remove(n),r.complete()}finally{i?.remove(),this._drawToolSimplifyAbortController===e&&(this._drawToolSimplifyAbortController=null)}}_getGraphicSymbolFromTool(e){switch(e){case`point`:case`multipoint`:return this.pointSymbol;case`polyline`:case`freehandPolyline`:return this.polylineSymbol;case`circle`:case`rectangle`:case`polygon`:case`freehandPolygon`:return this.polygonSymbol;case`mesh`:return this.meshSymbol;case`text`:return this.textSymbol}}async _setupUpdateOperation(e,t){let{view:n}=this;if(!n)return this._logMissingView(),null;let r={...this.defaultUpdateOptions,...t,reshapeOptions:{...this.defaultUpdateOptions.reshapeOptions,...t?.reshapeOptions},highlightOptions:{...this.defaultUpdateOptions.highlightOptions,...t?.highlightOptions}};this.activeUpdateOptions=r;let i=r.tool??H.tool;if(this.removeGraphics(e),this.addGraphics(e),n.type===`3d`){if(e.length===0)return null;switch(i){case`move`:return this._setupMove3DOperation(e,r,n,i);case`reshape`:return e.length>1?(this._logError(`sketch:reshape-multiple`,`Reshape operation does not support multiple graphics.`),null):this._setupReshape3DOperation(e[0],r,n);case`transform`:return this._setupGraphicTransform3DOperation(e,r,n)}}switch(i){case`move`:return this._setupMove2DOperation(e,r,n);case`reshape`:return e.length>1?(this._logError(`sketch:reshape-multiple`,`Reshape operation does not support multiple graphics.`),null):this._setupTransformOrReshape2DOperation(e,i,r,n);case`transform`:return B(e)&&(i=`reshape`),this._setupTransformOrReshape2DOperation(e,i,r,n)}}async _setupMove3DOperation(e,t,n,r,i=!1){let a=await this._requireModule(import(`../../views/3d/interactive/editingTools.js`));if($(a))return a;let{ManipulatedObject3DGraphic:o,MoveTool3D:s}=a.module,l=new Map,u=()=>{l.forEach(e=>e.destroy()),l.clear()};for(let t of e){let e=new o({view:n,graphic:t}),r=ve(e);if(r!==0)return u(),this._logError(`sketch:move`,`Move operation not supported for provided graphic(s) (${D(r)}).`),null;l.set(t,e)}let d=new s({view:n,enableZ:t.enableZ,snappingManager:this._operationSnappingManager,toolOptions:this._operationToolOptions});n.tools.add(d),d.objects.addMany(Array.from(l.values())),i||this.updateGraphics.addMany(e);let f=[],p=new R({activeComponent:d,tool:r,type:`update`,onEnd:()=>{c(f),Q(n,d),u()},undo:()=>{X(this.view,d),q(p,this.updateGraphics.toArray()),this._emitUndoEvent({graphics:this.updateGraphics.toArray(),tool:r})},redo:()=>{J(p,this.updateGraphics.toArray()),this._emitRedoEvent({graphics:this.updateGraphics.toArray(),tool:r})},addToSelection:async e=>{this.updateGraphics.push(e);let t=new o({view:n,graphic:e});l.set(e,t),d.objects.push(t),this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{added:[e],removed:[],type:`selection-change`},type:`update`})},removeFromSelection:async e=>{let t=this.updateGraphics.indexOf(e);if(p.history.undo.forEach(e=>e.updates.splice(t,1)),p.history.redo.forEach(e=>e.updates.splice(t,1)),this.updateGraphics.remove(e),this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{added:[],removed:[e],type:`selection-change`},type:`update`}),this.updateGraphics.length===0){p.complete();return}let n=l.get(e);n&&(d.objects.remove(n),n.destroy(),l.delete(e))},toggleTool:async()=>{if(this.updateGraphics.length!==1||t.toggleToolOnClick===!1||r!==`transform`)return;let e=this.updateGraphics.at(0),i=await this._updatingHandles.addPromise(this._setupReshape3DOperation(e,t,n,!0));i&&!$(i)&&(p.onEnd(),p.destroy(),this._setUpdateOperationHandle(i,t))}});return f.push(...this._getHandlesForComponent(p,t),n.on(`immediate-click`,e=>this._getCommonUpdateOperationClickHandlers(p,e,t),k.WIDGET),n.on(`key-down`,e=>{this._getCommonUpdateOperationKeyDownHandlers(p,e)},k.WIDGET)),p}_setupGraphicTransform3DOperation(e,t,n,r=!1){if(e.length===1&&be(e[0])===0){let i=e[0],a=i.geometry;if(a!=null&&(a.type===`point`||a.type===`mesh`))return this._setupPointTransform3DOperation(i,t,n);if(a!=null&&(a.type===`polygon`||a.type===`polyline`))return this._setupPolyTransform3DOperation(i,t,n,r)}return this._setupMove3DOperation(e,t,n,`transform`,r)}async _setupPointTransform3DOperation(e,t,n){let r=`transform`,{enableRotation:i,enableScaling:a,enableZ:o}=t,s=await this._requireModule(import(`../../views/3d/interactive/editingTools.js`));if($(s))return s;let{TransformTool3D:l,ManipulatedObject3DGraphic:u}=s.module,d=new u({graphic:e,view:n}),f=new l({object:d,view:n,enableRotation:i,enableScaling:a,enableZ:o,snappingManager:this._operationSnappingManager,toolOptions:this._operationToolOptions});n.tools.add(f),this.updateGraphics.add(e);let p=[],m=new R({activeComponent:f,tool:r,type:`update`,onEnd:()=>{c(p),Q(n,f),d.destroy()},undo:()=>{X(this.view,f),q(m,this.updateGraphics.toArray()),this._emitUndoEvent({graphics:this.updateGraphics.toArray(),tool:r})},redo:()=>{J(m,this.updateGraphics.toArray()),this._emitRedoEvent({graphics:this.updateGraphics.toArray(),tool:r})},addToSelection:async e=>{this.updateGraphics.add(e),this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{added:[e],removed:[],type:`selection-change`},type:`update`}),await this._replaceUpdateOperationHandle(m,t,()=>this._setupMove3DOperation(this.updateGraphics.toArray(),t,n,`transform`,!0))},removeFromSelection:async e=>{this.updateGraphics.remove(e),this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{added:[],removed:[e],type:`selection-change`},type:`update`}),m.complete()},toggleTool:async()=>{}});return p.push(...this._getHandlesForComponent(m,t),n.on(`immediate-click`,e=>this._getCommonUpdateOperationClickHandlers(m,e,t),k.WIDGET),n.on(`key-down`,e=>{this._getCommonUpdateOperationKeyDownHandlers(m,e)},k.WIDGET)),m}async _setupPolyTransform3DOperation(e,t,n,r=!1){let i=`transform`,{enableRotation:a,enableScaling:o,enableZ:s,preserveAspectRatio:l}=t,u=await this._requireModule(import(`../../views/3d/interactive/editingTools.js`));if($(u))return u;let{ManipulatedObject3DGraphic:d,ExtentTransformTool:f}=u.module,p=this.view?.inputManager?.isModifierKeyDown(A.constraint),m=new d({view:n,graphic:e}),h=new f({object:m,view:n,enableRotation:a,enableScaling:o,enableZ:s,preserveAspectRatio:!!l!=!!p,toolOptions:this._operationToolOptions});n.tools.add(h),r||this.updateGraphics.add(e);let g=[],_=new R({activeComponent:h,tool:i,type:`update`,onEnd:()=>{c(g),Q(n,h),m.destroy()},canUndo:()=>!h.destroyed&&h.canUndo,undo:()=>{h.destroyed||(h.undo(),this._emitUndoEvent({graphics:this.updateGraphics.toArray(),tool:i}))},canRedo:()=>!h.destroyed&&h.canRedo,redo:()=>{h.destroyed||(h.redo(),this._emitRedoEvent({graphics:this.updateGraphics.toArray(),tool:i}))},addToSelection:async e=>{this.updateGraphics.add(e),this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{added:[e],removed:[],type:`selection-change`},type:`update`}),await this._replaceUpdateOperationHandle(_,t,()=>this._setupMove3DOperation(this.updateGraphics.toArray(),t,n,`transform`,!0))},removeFromSelection:async e=>{this.updateGraphics.remove(e),this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{added:[],removed:[e],type:`selection-change`},type:`update`}),_.complete()},toggleTool:async()=>{if(this.updateGraphics.length!==1||t.toggleToolOnClick===!1)return;let r=await this._updatingHandles.addPromise(this._setupReshape3DOperation(e,t,n,!0));r&&!$(r)&&(_.onEnd(),_.destroy(),this._setUpdateOperationHandle(r,t))}});return g.push(...this._getHandlesForComponent(_,t),n.on(`immediate-click`,e=>this._getCommonUpdateOperationClickHandlers(_,e,t),k.WIDGET),n.on(`key-down`,e=>this._getCommonUpdateOperationKeyDownHandlers(_,e),k.WIDGET),n.on(`key-down`,e=>{e.key===A.constraint&&!e.repeat&&(h.preserveAspectRatio=!h.preserveAspectRatio,e.stopPropagation())},k.WIDGET),n.on(`key-up`,e=>{e.key===A.constraint&&(h.preserveAspectRatio=!h.preserveAspectRatio,e.stopPropagation())},k.WIDGET)),_}async _setupMove2DOperation(e,t,n){let r=`move`;this.updateGraphics.addMany(e),await this._updatingHandles.addPromise(this._updateSpatialReference(e));let i=await this._updatingHandles.addPromise(this._getGraphicMover(e,t,n));if($(i))return i;let a=new R({activeComponent:i,tool:r,type:`update`,onEnd:()=>{this._clearCursor(),c(l),c(s),i.destroy(),this._internalGraphicsLayer?.removeMany([...this.updateGraphics.toArray()])},undo:()=>{let e=this.updateGraphics.toArray();q(a,e),a.refreshComponent(),this._emitUndoEvent({graphics:e,tool:r})},redo:()=>{let e=this.updateGraphics.toArray();J(a,e),a.refreshComponent(),this._emitRedoEvent({graphics:e,tool:r})},addToSelection:async e=>{await this._updatingHandles.addPromise(this._updateSpatialReference(e)),this.updateGraphics.push(e),i.graphics=this.updateGraphics.toArray(),this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{added:[e],removed:[],type:`selection-change`},type:`update`})},removeFromSelection:async e=>{let t=this.updateGraphics.indexOf(e);a.history.undo.forEach(e=>e.updates.splice(t,1)),a.history.redo.forEach(e=>e.updates.splice(t,1)),this.updateGraphics.remove(e);let n=this.updateGraphics.toArray();this.emit(`update`,{graphics:n,state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{added:[],removed:[e],type:`selection-change`},type:`update`}),this.updateGraphics.length===0?a.complete():i.graphics=n}}),o=!1,s=[n.on(`immediate-click`,e=>this._getCommonUpdateOperationClickHandlers(a,e,t),k.WIDGET),n.on(`key-down`,e=>{this._getCommonUpdateOperationKeyDownHandlers(a,e),e.key===A.constraint&&!e.repeat&&(o=!0,i.enableMoveAllGraphics=!i.enableMoveAllGraphics)},k.WIDGET),n.on(`key-up`,e=>{e.key===A.constraint&&o&&(o=!1,i.enableMoveAllGraphics=!i.enableMoveAllGraphics)},k.WIDGET)],l=this._getHandlesForComponent(a,t);return a}async _setupReshape3DOperation(e,t,n,r=!1){let i=`reshape`,a=await this._requireModule(import(`../../views/3d/interactive/editingTools.js`));if($(a))return a;let{ManipulatedObject3DGraphic:o,ReshapeTool3D:s}=a.module,l=new o({view:n,graphic:e}),u=ye(l);if(u!==0)return l.destroy(),this._logError(`sketch:reshape`,`Reshape operation not supported for provided graphic(s) (${D(u)}).`),null;let d=t.reshapeOptions,f=new s({view:n,object:l,enableZVertex:t.enableZ&&d?.vertexOperation===`move`,enableZShape:t.enableZ&&d?.shapeOperation===`move`,enableMoveObject:d?.shapeOperation===`move`||d?.shapeOperation===`move-xy`,enableMidpoints:d?.edgeOperation===`split`,enableEdgeOffset:d?.edgeOperation===`offset`,snappingManager:this._operationSnappingManager,toolOptions:this._operationToolOptions});n.tools.add(f),r||this.updateGraphics.add(l.graphic);let p=[],m=new R({activeComponent:f,tool:i,type:`update`,onEnd:()=>{c(p),Q(n,f),l.destroy()},canUndo:()=>!f.destroyed&&f.canUndo,undo:()=>{f.destroyed||(f.undo(),this._emitUndoEvent({graphics:this.updateGraphics.toArray(),tool:i}))},canRedo:()=>!f.destroyed&&f.canRedo,redo:()=>{f.destroyed||(f.redo(),this._emitRedoEvent({graphics:this.updateGraphics.toArray(),tool:i}))},addToSelection:async e=>{this.updateGraphics.add(e),this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{added:[e],removed:[],type:`selection-change`},type:`update`}),await this._replaceUpdateOperationHandle(m,t,()=>this._setupMove3DOperation(this.updateGraphics.toArray(),t,n,`transform`,!0))},removeFromSelection:async e=>{this.updateGraphics.remove(e),this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{added:[],removed:[e],type:`selection-change`},type:`update`}),m.complete()},toggleTool:async()=>{t.toggleToolOnClick!==!1&&await this._replaceUpdateOperationHandle(m,t,()=>this._setupGraphicTransform3DOperation(this.updateGraphics.toArray(),t,n,!0))}});return p.push(...this._getHandlesForComponent(m,t),n.on(`immediate-click`,e=>this._getCommonUpdateOperationClickHandlers(m,e,t),k.WIDGET),n.on(`key-down`,e=>{this._getCommonUpdateOperationKeyDownHandlers(m,e)},k.WIDGET)),m}async _setupTransformOrReshape2DOperation(e,t,n,r){this.updateGraphics.addMany(e),await this._updatingHandles.addPromise(this._updateSpatialReference(e));let i=await this._updatingHandles.addPromise(t===`transform`?this._getBox(e,n,r):this._getReshape(e,n,r));if($(i))return i;let a=new R({activeComponent:i,type:`update`,onEnd:()=>{c(s),c(o),a.activeComponent&&!a.activeComponent.destroyed&&a.activeComponent.destroy(),this._internalGraphicsLayer.removeMany(this.updateGraphics.toArray())},undo:()=>{q(a,this.updateGraphics.toArray()),a.refreshComponent(),this._emitUndoEvent({graphics:this.updateGraphics.toArray(),tool:a.tool})},redo:()=>{J(a,this.updateGraphics.toArray()),a.refreshComponent(),this._emitRedoEvent({graphics:this.updateGraphics.toArray(),tool:a.tool})},addToSelection:async e=>{let t=a.activeComponent;if(t?.type===`reshape`){let t=[...this.updateGraphics,e];if(this.updateGraphics.removeAll(),!await this._replaceUpdateOperationHandle(a,n,()=>this._setupTransformOrReshape2DOperation(t,`transform`,n,r)))return}else this.updateGraphics.add(e),t=t,t.graphics=this.updateGraphics.toArray(),t.refresh(),a.resetHistory();this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{added:[e],removed:[],type:`selection-change`},type:`update`})},removeFromSelection:async e=>{let t=this.updateGraphics.indexOf(e);a.history.undo.forEach(e=>e.updates.splice(t,1)),a.history.redo.forEach(e=>e.updates.splice(t,1)),this.updateGraphics.remove(e);let n=this.updateGraphics.toArray();n.length===0?a.complete():B(n)?await a.toggleTool():a.activeComponent.graphics=n,this.emit(`update`,{graphics:n,state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{added:[],removed:[e],type:`selection-change`},type:`update`})},toggleTool:async()=>{if(this.updateGraphics.length>1)return;let e=this.updateGraphics.at(0),t=e.geometry;if(t!=null&&(a.tool===`reshape`&&t.type===`point`||a.tool===`transform`&&t.type===`extent`))return;let i=null,o={...this.defaultUpdateOptions,...n,...this.activeUpdateOptions,reshapeOptions:{...this.defaultUpdateOptions.reshapeOptions,...n?.reshapeOptions,...this.activeUpdateOptions?.reshapeOptions},highlightOptions:{...this.defaultUpdateOptions.highlightOptions,...n?.highlightOptions,...this.activeUpdateOptions?.highlightOptions}};a.tool===`transform`?i=await this._updatingHandles.addPromise(this._getReshape([e],o,r)):a.tool===`reshape`&&(i=await this._updatingHandles.addPromise(this._getBox([e],o,r))),!$(i)&&(a.activeComponent?.destroy(),a.activeComponent=i,a.activeComponent&&(c(s),s=this._getHandlesForComponent(a,o)))}}),o=[r.on(`immediate-click`,e=>this._getCommonUpdateOperationClickHandlers(a,e,n),k.WIDGET),r.on(`key-down`,e=>{if(this._getCommonUpdateOperationKeyDownHandlers(a,e),e.key===A.constraint&&!e.repeat&&a){let e=a.activeComponent;e?.type===`box`&&(e.preserveAspectRatio=!e.preserveAspectRatio)}},k.WIDGET),r.on(`key-up`,e=>{if(e.key===A.constraint&&a){let e=a.activeComponent;e?.type===`box`&&(e.preserveAspectRatio=!e.preserveAspectRatio)}},k.WIDGET)],s=this._getHandlesForComponent(a,n);return a}async _getGraphicMover(e,t,n){let{enableMoveAllGraphics:r,highlightOptions:i}=t,a=await this._requireModule(import(`../../views/draw/support/GraphicMover.js`));return $(a)?a:new a.module.default({enableMoveAllGraphics:r,highlightName:i?.name,highlightsEnabled:!!i?.enabled,indicatorsEnabled:!1,graphics:e,view:n,callbacks:{onGraphicMoveStart:({dx:e,dy:t,graphic:n})=>{this._displayCursor(`grabbing`),this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{dx:e,dy:t,mover:n,type:`move-start`},type:`update`})},onGraphicMove:({dx:e,dy:t,graphic:n})=>this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{dx:e,dy:t,mover:n,type:`move`},type:`update`}),onGraphicMoveStop:({dx:e,dy:t,graphic:n})=>{this._displayCursor(`pointer`),this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{dx:e,dy:t,mover:n,type:`move-stop`},type:`update`})},onGraphicPointerOver:()=>this._displayCursor(`move`),onGraphicPointerOut:()=>this._clearCursor()}})}async _getBox(e,t,n){let{enableRotation:r,enableScaling:i,highlightOptions:a,preserveAspectRatio:o}=t,s=await this._requireModule(import(`../../views/draw/support/Box.js`));if($(s))return s;let c=this.view?.inputManager?.isModifierKeyDown(A.constraint),l=new s.module.default({graphics:e,enableRotation:r,enableScaling:i,highlightName:a?.name,highlightsEnabled:!!a?.enabled,preserveAspectRatio:!!o!=!!c,layer:this._internalGraphicsLayer,view:n,toolOptions:this._operationToolOptions,callbacks:{onMoveStart:e=>this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{...e},type:`update`}),onMove:e=>this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{...e},type:`update`}),onMoveStop:e=>this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{...e},type:`update`}),onScaleStart:e=>this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{...e},type:`update`}),onScale:e=>this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{...e},type:`update`}),onScaleStop:e=>this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{...e},type:`update`}),onRotateStart:e=>this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{...e},type:`update`}),onRotate:e=>this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{...e},type:`update`}),onRotateStop:e=>this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{...e},type:`update`})}});return l.addHandles(_(()=>[this.activeUpdateOptions?.enableRotation,this.activeUpdateOptions?.enableScaling],([e,n])=>{l.enableRotation=e??t.enableRotation??!0,l.enableScaling=n??t.enableScaling??!0,l.refresh()},v)),l}async _getReshape(e,t,n){let{highlightOptions:r,reshapeOptions:i}=t,a=i?.edgeOperation===`split`,o=i?.shapeOperation===`move`,s=!!i?.enableCreateCurveFromStraightEdge,c=await this._requireModule(import(`../../views/draw/support/Reshape.js`));return $(c)?c:new c.module.default({enableMidpoints:a,enableMovement:o,enableCurveOnMidpoint:s,graphic:e[0],highlightName:r?.name,highlightsEnabled:!!r?.enabled,layer:this._internalGraphicsLayer,snappingManager:this._operationSnappingManager,toolOptions:this._operationToolOptions,view:n,callbacks:{onReshapeStart:e=>this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{...e},type:`update`}),onReshape:e=>this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{...e},type:`update`}),onReshapeStop:({mover:e,type:t})=>this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e,type:t},type:`update`}),onMoveStart:({dx:e,dy:t,mover:n,type:r})=>this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{dx:e,dy:t,mover:n,type:r},type:`update`}),onMove:({dx:e,dy:t,mover:n,type:r})=>this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{dx:e,dy:t,mover:n,type:r},type:`update`}),onMoveStop:({dx:e,dy:t,mover:n,type:r})=>this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{dx:e,dy:t,mover:n,type:r},type:`update`}),onVertexAdd:({added:e,type:t,vertices:n})=>{let r=e.map(e=>C(e.geometry));this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{added:r,vertices:n,type:t},type:`update`})},onVertexRemove:({removed:e,type:t,vertices:n})=>{let r=e.map(e=>C(e.geometry));this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{removed:r,vertices:n,type:t},type:`update`})}}})}_getHandlesForComponent(e,t){let n=e.activeComponent;if(!n)return[];switch(n.type){case`graphic-mover`:return[n.on(`graphic-click`,({graphic:n,viewEvent:r})=>{r.native?.shiftKey&&t.multipleSelectionEnabled&&(r.stopPropagation(),this._updatingHandles.consumePromise(e.removeFromSelection(n)))}),n.on(`graphic-move-start`,t=>e.addToHistory(Z(t.allGraphics)))];case`box`:return[n.on(`graphic-click`,n=>this._onTransformOrReshape2DGraphicClick(e,t,n)),n.on(`move-start`,t=>e.addToHistory(Z(t.graphics))),n.on(`rotate-start`,t=>e.addToHistory(Z(t.graphics))),n.on(`scale-start`,t=>e.addToHistory(Z(t.graphics)))];case`reshape`:return[n.on(`graphic-click`,n=>this._onTransformOrReshape2DGraphicClick(e,t,n)),n.on(`move-start`,t=>e.addToHistory(Z([t.mover]))),n.on(`reshape-start`,t=>e.addToHistory(Z([t.graphic]))),n.on(`vertex-add`,t=>e.addToHistory(Z([t.oldGraphic]))),n.on(`vertex-remove`,t=>e.addToHistory(Z([t.oldGraphic])))];case`move-3d`:return[n.events.on(`record-undo`,({updates:t})=>{e.addToHistory({updates:t})}),n.events.on(`move-start`,e=>{this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{dx:0,dy:0,mover:e.objects.length>0?e.objects[0].graphic:null,type:`move-start`},type:`update`})}),n.events.on(`move`,e=>{this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{dx:e.dx,dy:e.dy,mover:e.objects.length>0?e.objects[0].graphic:null,type:`move`},type:`update`})}),n.events.on(`move-stop`,e=>{this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{dx:0,dy:0,mover:e.objects.length>0?e.objects[0].graphic:null,type:`move-stop`},type:`update`})}),n.events.on(`immediate-click`,n=>{this._updatingHandles.consumePromise(n.shiftKey?this._toggleSelection([n.object.graphic],e,t):e.toggleTool())})];case`transform-3d`:return[n.events.on(`record-undo`,({updates:t})=>{e.addToHistory({updates:t})}),n.events.on(`translate-start`,e=>{this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.object.graphic,dx:e.dxScreen,dy:e.dyScreen,type:`move-start`},type:`update`})}),n.events.on(`translate-stop`,e=>{this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.object.graphic,dx:e.dxScreen,dy:e.dyScreen,type:`move-stop`},type:`update`})}),n.events.on(`rotate-start`,e=>{this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.object.graphic,angle:e.angle,type:`rotate-start`},type:`update`})}),n.events.on(`rotate-stop`,e=>{this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.object.graphic,angle:e.angle,type:`rotate-stop`},type:`update`})}),n.events.on(`scale-start`,e=>{this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.object.graphic,xScale:e.xScale,yScale:e.yScale,type:`scale-start`},type:`update`})}),n.events.on(`scale-stop`,e=>{this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.object.graphic,xScale:e.xScale,yScale:e.yScale,type:`scale-stop`},type:`update`})}),n.events.on(`translate`,e=>{this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.object.graphic,dx:e.dxScreen,dy:e.dyScreen,type:`move`},type:`update`})}),n.events.on(`rotate`,e=>{this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.object.graphic,angle:e.angle,type:`rotate`},type:`update`})}),n.events.on(`scale`,e=>{this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.object.graphic,xScale:e.xScale,yScale:e.yScale,type:`scale`},type:`update`})}),n.events.on(`immediate-click`,n=>{this._updatingHandles.consumePromise(n.shiftKey?this._toggleSelection([n.object.graphic],e,t):e.toggleTool())})];case`reshape-3d`:return[n.events.on(`reshape`,e=>{this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{...e,mover:e.object.graphic},type:`update`})}),n.events.on(`move`,e=>{this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{...e,mover:e.object.graphic},type:`update`})}),n.events.on(`vertex-add`,e=>{this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:e,type:`update`})}),n.events.on(`vertex-remove`,e=>{this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:e,type:`update`})}),n.events.on(`immediate-click`,n=>{this._updatingHandles.consumePromise(n.shiftKey?this._toggleSelection([n.object.graphic],e,t):e.toggleTool())})]}}_onTransformOrReshape2DGraphicClick(e,t,n){let{graphic:r,viewEvent:i}=n;i.native?.shiftKey&&this.hasGraphic(r)?(i.stopPropagation(),this._updatingHandles.consumePromise(e.removeFromSelection(r))):t.toggleToolOnClick&&(i.stopPropagation(),this._updatingHandles.consumePromise(e.toggleTool()))}async _replaceUpdateOperationHandle(e,t,n){let r=this._operationContext;e.onEnd(),e.destroy();let i=await this._updatingHandles.addPromise(n());return!i||$(i)||r!==this._operationContext?(i&&!$(i)&&(i.onEnd(),i.destroy()),this._destroyOperationContext(r),!1):(this._setUpdateOperationHandle(i,t),!0)}_setUpdateOperationHandle(e,t){this._operationHandle=e;let n=this.view?.map;this._disablePopup(t),e.on(`complete`,()=>{if(e===this._operationHandle){let r=this.updateGraphics.toArray(),i=this._operationHandle.tool;this._operationHandle.destroy(),this._operationHandle=null,this._destroyOperationContext(),this._internalGraphicsLayer.removeMany(this.updateGraphics.toArray()),this.updateGraphics.removeAll(),n&&n.remove(this._internalGraphicsLayer),this._restorePopup(t),this.emit(`update`,{graphics:r,state:`complete`,aborted:e.cancelled,tool:i,toolEventInfo:null,type:`update`})}})}_getCommonUpdateOperationClickHandlers(e,t,n){return this._updatingHandles.addPromise(this._handleCommonUpdateOperationClick(e,t,n))}async _handleCommonUpdateOperationClick(e,t,n){let r=L(t),i=await t.defer(()=>this._getFirstHit(r));if(i==null){this.cancelUpdateOnClickAway&&e.complete();return}let a=t.native.shiftKey?this._toggleSelection([i.graphic],e,n):null;a?(t.stopPropagation(),await a):this.updateGraphics.includes(i.graphic)?this._shouldTemporarilyDisablePopup(n)&&t.stopPropagation():e.complete()}async _toggleSelection(e,t,n){let r=!!n.multipleSelectionEnabled;for(let n of e)if(n!=null&&r&&this.hasGraphic(n))return this.updateGraphics.includes(n)?await t.removeFromSelection(n):await t.addToSelection(n)}_getCommonUpdateOperationKeyDownHandlers(e,t){if(!e)return;let n=t.key;n===A.undo&&e.canUndo()?(t.stopPropagation(),e.undo()):n===A.redo&&e.canRedo()?(t.stopPropagation(),e.redo()):n===A.cancel?(t.stopPropagation(),e.cancel()):this.allowDeleteKey&&A.delete.includes(n)&&this._onDeleteKey(t)}_onDeleteKey(e){this._operationHandle&&this._operationHandle.type===`update`&&this.activeComponent!=null&&(e.stopPropagation(),this.delete())}_removeDefaultLayer(){this._internalGraphicsLayer&&=(this.view?.map?.remove(this._internalGraphicsLayer),d(this._internalGraphicsLayer))}_isComponentGraphic(e){let{activeComponent:t}=this;return!e||t==null?!1:e.attributes?.esriSketchTool||t.type===`draw-2d`&&t.graphic===e||(t.type===`box`||t.type===`reshape`)&&t.isUIGraphic(e)}_clearCursor(){this.removeHandles(U)}_displayCursor(e){this.removeHandles(U),this.view?.container&&e!=null&&this.addHandles(this.view.acquireCursor(e,`high`),U)}_logError(e,t,n){u.getLogger(this).error(new i(e,t,n))}async _requireModule(e){let t=new AbortController;this._moduleLoaderAbortController=t;let n=await e;return this._moduleLoaderAbortController!==t||t.signal.aborted?{requireError:`aborted`}:{module:n}}_emitUndoEvent(e){this.emit(`undo`,{...e,type:`undo`})}_emitRedoEvent(e){this.emit(`redo`,{...e,type:`redo`})}_emitDeleteEvent(e){this.emit(`delete`,{...e,type:`delete`})}_onLayerGraphicsChangeCallback(e){if(this._operationHandle!=null){let{updateGraphics:t}=this;for(let n of e.removed)if(t.includes(n)){if(t.length>1)this._updatingHandles.consumePromise(this._operationHandle.removeFromSelection(n));else{this._operationHandle.cancel();break}}}}async _setupAdvancedDrawToolIntegrationMaybe(){this.isUsingLegacyCreateTools||this.pluginManager.loaded||await this.pluginManager.loadPlugins()}async _setupDrawTool(e,n,r){if(this.isUsingLegacyCreateTools||!this._pluginManager)return null;let i=this.view,a=await import(`../../views/draw/DrawTool.js`);await this.pluginManager.loadPlugins();let o=await this.pluginManager.makeRenderer({customSymbol:n.graphicSymbol,useTextSymbol:r===`text`}),s=new a.DrawTool({view:i,elevationInfo:this._layerAdapter?.elevationInfo??pe(i.type===`3d`),hasZ:!!n.hasZ,toolOptions:this._operationToolOptions,renderer:o,defaultZ:n.defaultZ??0,directionOptions:n.directionOptions,snappingManager:this._operationSnappingManager,enableVertexVisuals:r!==`rectangle`&&r!==`circle`,readPluginSetting:(e,t)=>this.settingsManager.getValue(t)});s.addHandles(l(o));let c=new t({...n.graphicProperties,attributes:{...n.graphicProperties?.attributes},symbol:n.graphicSymbol??this._getGraphicSymbolFromTool(r)});return n.graphicSymbol||s.addHandles(_(()=>this._getGraphicSymbolFromTool(r),e=>c.symbol=e)),this._set(`createGraphic`,c),i.addAndActivateTool(s),s.begin(e),s}get test(){}wait(){return y(()=>!this.updating)}_shouldTemporarilyDisablePopup(e){return this.updateOnGraphicClick||(e?.toggleToolOnClick??!1)}_disablePopup(e){this._shouldTemporarilyDisablePopup(e)&&this.view&&this._originalPopupEnabled==null&&(this._originalPopupEnabled=this.view.popupEnabled,this.view.popupEnabled=!1)}_restorePopup(e){this._shouldTemporarilyDisablePopup(e)&&this.view&&this._originalPopupEnabled!=null&&(this.view.popupEnabled=this._originalPopupEnabled,this._originalPopupEnabled=null)}async _waitViewReady(){let e=this.view;e?(f(this._viewReadyAbortController),this._viewReadyAbortController=new AbortController,await g(y(()=>e?.ready),this._viewReadyAbortController.signal)):this._logMissingView()}_logMissingView(){this._logError(`sketch:missing-property`,K(`view`))}_logMissingLayer(){this._logError(Re,K(`layer`))}};e([b()],G.prototype,`_defaultSnappingManager`,void 0),e([b()],G.prototype,`_operationContext`,void 0),e([b()],G.prototype,`_layerAdapter`,null),e([b()],G.prototype,`_pluginManager`,void 0),e([b({readOnly:!0})],G.prototype,`settingsManager`,void 0),e([b()],G.prototype,`_operationHandle`,void 0),e([b({readOnly:!0})],G.prototype,`_updatingHandles`,void 0),e([b({readOnly:!0})],G.prototype,`_toolTransitionHandles`,void 0),e([b()],G.prototype,`_drawToolSimplifyAbortController`,void 0),e([b({readOnly:!0})],G.prototype,`activeTool`,null),e([b()],G.prototype,`geometrySimplificationInProgress`,null),e([b({readOnly:!0})],G.prototype,`activeCreateToolDrawMode`,null),e([b()],G.prototype,`activeTooltip`,null),e([b({types:E})],G.prototype,`activeFillSymbol`,void 0),e([b()],G.prototype,`activeLineSymbol`,void 0),e([b()],G.prototype,`activeVertexSymbol`,void 0),e([b()],G.prototype,`allowDeleteKey`,void 0),e([b({readOnly:!0})],G.prototype,`createGraphic`,null),e([b()],G.prototype,`defaultCreateOptions`,null),e([b()],G.prototype,`defaultUpdateOptions`,null),e([b()],G.prototype,`activeUpdateOptions`,void 0),e([b({type:M,nonNullable:!0})],G.prototype,`labelOptions`,null),e([b()],G.prototype,`layer`,void 0),e([b({types:E})],G.prototype,`pointSymbol`,void 0),e([b({types:E})],G.prototype,`polygonSymbol`,void 0),e([b({types:E})],G.prototype,`polylineSymbol`,void 0),e([b()],G.prototype,`meshSymbol`,void 0),e([b({type:T})],G.prototype,`textSymbol`,null),e([b({type:F,nonNullable:!0})],G.prototype,`snappingOptions`,null),e([b()],G.prototype,`snappingManager`,null),e([b({readOnly:!0})],G.prototype,`state`,null),e([b()],G.prototype,`toolTransitionInProgress`,null),e([b({type:Se,nonNullable:!0})],G.prototype,`tooltipOptions`,null),e([b({readOnly:!0})],G.prototype,`updateGraphics`,void 0),e([b()],G.prototype,`updateOnGraphicClick`,void 0),e([b()],G.prototype,`useViewOptions`,void 0),e([b()],G.prototype,`cancelUpdateOnClickAway`,void 0),e([b()],G.prototype,`updating`,null),e([b()],G.prototype,`creationMode`,void 0),e([b({type:Ce,nonNullable:!0})],G.prototype,`valueOptions`,null),e([b({types:E})],G.prototype,`vertexSymbol`,void 0),e([b({value:null})],G.prototype,`view`,null),e([b({constructOnly:!0,type:N})],G.prototype,`sketchOptions`,void 0),e([b()],G.prototype,`useLegacyCreateTools`,void 0),e([b()],G.prototype,`isUsingLegacyCreateTools`,null),e([b()],G.prototype,`pluginManager`,null),e([b()],G.prototype,`drawTool`,null),e([b()],G.prototype,`activePluginConfigurations`,null),e([b()],G.prototype,`rootPlugins`,null),e([b()],G.prototype,`effectiveAvailablePlugins`,null),e([b()],G.prototype,`firstPluginWithSwappableLeaf`,null),e([b()],G.prototype,`multiplePluginsActive`,null),G=e([re(`esri.widgets.Sketch.SketchViewModel`)],G);const Re=`sketch:missing-property`,K=e=>`Property '${e}' is missing on SketchViewModel.`;function ze(e){return e===`polygon`||e===`rectangle`||e===`circle`}function q(e,t){Y(`undo`,e.history.undo,e.history.redo,t)}function J(e,t){Y(`redo`,e.history.redo,e.history.undo,t)}function Y(e,t,n,r){let i=t.pop();if(!i)return;let a=i.updates,o=[];r.forEach((t,n)=>{let r=a[n];r!=null&&(`geometry`in r&&r.geometry!=null&&(o.push({geometry:t.geometry}),t.geometry=r.geometry),`symbol`in r&&r.symbol!=null&&(o.push({symbol:t.symbol}),t.symbol=r.symbol),`undo`in r&&(o.push(r),r[e](t)))}),n.push({updates:o})}function X(e,t){e!=null&&t.hasGrabbedManipulators&&(e.activeTool=null)}function Z(e){return{updates:e.map(({geometry:e})=>e?.type===`mesh`?{geometry:e.cloneShallow()}:{geometry:e})}}function Q(e,t){e.tools?.remove(t),t.destroyed||t.destroy()}function $(e){return`requireError`in e&&e.requireError===`aborted`}export{G as default};
2
+ import{__decorate as e}from"tslib";import t from"../../Graphic.js";import{isSome as n}from"../../core/arrayUtils.js";import r from"../../core/Collection.js";import i from"../../core/Error.js";import{EventedAccessor as a}from"../../core/Evented.js";import{handlesGroup as o,makeHandle as s,drainHandles as c,destroyHandle as l}from"../../core/handleUtils.js";import has from"../../core/has.js";import u from"../../core/Logger.js";import{destroyMaybe as d,abortMaybe as f,removeMaybe as p}from"../../core/maybe.js";import{createAbortError as m,ignoreAbortErrors as h,whenOrAbort as g}from"../../core/promiseUtils.js";import{watch as _,syncAndInitial as v,on as ee,when as te,sync as ne,whenOnce as y}from"../../core/reactiveUtils.js";import{property as b,subclass as re}from"../../core/accessorSupport/decorators.js";import{trackAccess as x}from"../../core/accessorSupport/tracking.js";import{SimpleObservable as ie}from"../../core/accessorSupport/tracking/SimpleObservable.js";import{UpdatingHandles as S}from"../../core/support/UpdatingHandles.js";import{getReferenceEllipsoid as ae}from"../../geometry/ellipsoidUtils.js";import{canProjectWithoutEngine as oe,isLoaded as se,load as ce,project as le}from"../../geometry/projectionUtils.js";import{geometryToCoordinates as C}from"../../geometry/support/coordsUtils.js";import{equals as ue}from"../../geometry/support/spatialReferenceUtils.js";import de from"../../layers/GraphicsLayer.js";import{isIntegratedMeshLayer as fe}from"../../layers/support/layerUtils.js";import{getEffectiveElevationInfo as pe}from"../../support/elevationInfoUtils.js";import me from"../../symbols/FillSymbol3DLayer.js";import he from"../../symbols/MeshSymbol3D.js";import ge from"../../symbols/SimpleFillSymbol.js";import _e from"../../symbols/SimpleLineSymbol.js";import w from"../../symbols/SimpleMarkerSymbol.js";import T from"../../symbols/TextSymbol.js";import{symbolTypes as E}from"../../symbols/support/typeUtils.js";import{isSupportedObjectResultMessage as D}from"../../views/3d/interactive/editingTools/isSupportedObjectUtils.js";import{isSupportedObject as ve}from"../../views/3d/interactive/editingTools/move/isSupportedObject.js";import{isSupportedObject as ye}from"../../views/3d/interactive/editingTools/reshape/isSupportedObject.js";import{isSupportedGraphic as be}from"../../views/3d/interactive/editingTools/transform/isSupportedGraphic.js";import{addUniqueLayer as O}from"../../views/draw/support/layerUtils.js";import{ViewEventPriorities as k}from"../../views/input/InputManager.js";import{sketchKeys as A}from"../../views/interactive/keybindings.js";import{bindViewToolOptions as xe}from"../../views/interactive/options/bindViewToolOptions.js";import j from"../../views/interactive/options/InteractiveToolOptions.js";import M from"../../views/interactive/sketch/SketchLabelOptions.js";import N from"../../views/interactive/sketch/SketchOptions.js";import Se from"../../views/interactive/sketch/SketchTooltipOptions.js";import Ce from"../../views/interactive/sketch/SketchValueOptions.js";import{SnappingManager as P}from"../../views/interactive/snapping/SnappingManager.js";import{acquireForViewOptions as we}from"../../views/interactive/snapping/SnappingManagerPool.js";import F from"../../views/interactive/snapping/SnappingOptions.js";import{setupSnappingToggleHandles as I}from"../../views/interactive/snapping/snappingUtils.js";import{GeometryWorkerHandle as Te}from"../../views/support/GeometryWorkerHandle.js";import{defaultHighlightName as Ee}from"../../views/support/HighlightDefaults.js";import{findFirstGraphicHit as De}from"../../views/support/hitTestSelectUtils.js";import{createScreenPointFromEvent as L}from"../../views/support/screenUtils.js";import Oe from"./adapters/layer/GraphicsLayerAdapter.js";import ke from"./adapters/layer/MapNotesLayerAdapter.js";import Ae from"./adapters/layer/SketchLayerAdapter.js";import{CreateOperationHandle as je,DrawToolOperationHandle as Me,UpdateOperationHandle as R}from"./support/OperationHandle.js";import{PluginManager as Ne}from"./support/PluginManager.js";import{SettingsManager as Pe}from"./support/SettingsManager.js";import{getLegacyTool as z,isCompletelyDegenerate as Fe,graphicsHaveTooFewVerticesForBox as B,getModeFromCreateOptions as Ie,getDrawToolGeometryTypeFromCreateTool as Le}from"./support/sketchUtils.js";const V={defaultZ:0},H={reshapeOptions:{edgeOperation:`split`,shapeOperation:`move`,vertexOperation:`move`,enableCreateCurveFromStraightEdge:!0},enableMoveAllGraphics:!0,enableRotation:!0,enableScaling:!0,multipleSelectionEnabled:!0,preserveAspectRatio:!1,toggleToolOnClick:!0,enableZ:!0,highlightOptions:{enabled:!0,name:Ee},tool:`transform`},U=Symbol(),W=Symbol();let G=class extends a{constructor(e){super(e),this._defaultSnappingManager=null,this._operationContext=null,this._internalGraphicsLayer=new de({listMode:`hide`,internal:!0,title:`SVM Internal`}),this._pluginManager=new Ne({sketchViewModel:this}),this.settingsManager=new Pe({availablePlugins:()=>this.pluginManager.visiblePluginsFlat}),this._operationHandle=null,this._updatingHandles=new S,this._toolTransitionHandles=new S,this._drawToolSimplifyAbortController=null,this._geometryWorkerHandle=new Te,this._viewHandlesKey=`viewHandles`,this.activeFillSymbol=null,this.activeLineSymbol=null,this.activeVertexSymbol=null,this.allowDeleteKey=!0,this.activeUpdateOptions=null,this.layer=null,this.pointSymbol=new w({style:`circle`,size:6,color:[255,255,255],outline:{color:[50,50,50],width:1}}),this.polygonSymbol=new ge({color:[150,150,150,.2],outline:{color:[50,50,50],width:2}}),this.polylineSymbol=new _e({color:[130,130,130,1],width:2}),this.meshSymbol=new he({symbolLayers:new r([new me])}),this.updateGraphics=new r,this.updateOnGraphicClick=!0,this.useViewOptions=!1,this.cancelUpdateOnClickAway=!0,this.creationMode=`single`,this.vertexSymbol=new w({style:`circle`,size:6,color:[255,255,255],outline:{color:[50,50,50],width:1}}),this.sketchOptions=new N,this.useLegacyCreateTools=!0,this._moduleLoaderAbortController=null,this._viewReadyAbortController=null,this._sketchContinuationFlag=!1,this._onLayerAdapterChange=async()=>{let{_layerAdapter:e}=this;if(this.removeHandles(W),!e)return;let t=[e.onGraphicsChange(e=>this._onLayerGraphicsChangeCallback(e)),_(()=>e.elevationInfo,e=>{e!==this._internalGraphicsLayer.elevationInfo&&(this.cancel(),this._internalGraphicsLayer&&(this._internalGraphicsLayer.elevationInfo=e))},v)].filter(n);this.addHandles(t,W)},this._originalPopupEnabled=null,this.defaultCreateOptions=V,this.defaultUpdateOptions=H,this.snappingOptions=e?.snappingManager?.options??e?.snappingOptions??new F,this.textSymbol=new T({text:`text`})}initialize(){this._updatingHandles.consumePromise(this._setupAdvancedDrawToolIntegrationMaybe()),this.addHandles([ee(()=>this.view?.map?.layers,`change`,e=>{this.layer&&e.removed.includes(this.layer)&&this.cancel()}),_(()=>this._layerAdapter,()=>this._onLayerAdapterChange(),v),_(()=>this.view,e=>{this._defaultSnappingManager=d(this._defaultSnappingManager),e&&(this.snappingManager||(this._defaultSnappingManager=new P({view:e,options:this.snappingOptions})),e.type===`2d`?(import(`../../views/2d/interactive/editingTools.js`),this._updatingHandles.consumePromise(this._setupAdvancedDrawToolIntegrationMaybe())):e.type===`3d`&&(import(`../../views/3d/interactive/editingTools.js`),import(`../../views/3d/layers/GraphicsLayerView3D.js`)))},v),_(()=>this.view?.spatialReference,(e,t)=>{e&&t&&!e.equals(t)&&this.cancel()})]),I(this,void 0,()=>this._operationSnappingManager?.options??this.snappingOptions)}destroy(){this.cancel(),this._removeDefaultLayer(),this._defaultSnappingManager=d(this._defaultSnappingManager),this._destroyOperationContext(),this._set(`snappingManager`,null),this._set(`view`,null),this._updatingHandles.destroy(),this._toolTransitionHandles.destroy(),this._drawToolSimplifyAbortController=f(this._drawToolSimplifyAbortController),this._geometryWorkerHandle.destroy(),this._pluginManager?.destroy(),this.emit(`destroy`)}get _operationSnappingManager(){return this._operationContext?.snappingManager??this.snappingManager}get _operationToolOptions(){return this._operationContext?.toolOptions??this.sketchOptions}get _layerAdapter(){let{layer:e}=this;switch(e?.type){case`graphics`:return new Oe(e);case`map-notes`:return new ke(e);case`sketch`:return new Ae(e);case void 0:default:return null}}get activeTool(){return this._operationHandle?.tool??null}get geometrySimplificationInProgress(){return!!this._drawToolSimplifyAbortController}get activeCreateToolDrawMode(){let e=this._operationHandle;if(e?.type===`create`&&e.activeComponent&&`mode`in e.activeComponent)return e.activeComponent.mode;if(e?.activeComponent?.type===`draw-2.0`){let t=e.activeComponent.pluginStack.map(e=>e.configuration).filter(n).toArray();if(t.length>0)return this._pluginManager?.getDrawingModeEquivalentToPluginStack(t)}return null}get activeTooltip(){let{activeComponent:e,destroyed:t}=this,n=!t&&e&&`tooltip`in e?e.tooltip:null;return n?.visible?n:null}get activeComponent(){return this._operationHandle?.activeComponent??null}get createGraphic(){return this.activeComponent!=null&&(this.activeComponent.type===`draw-3d`||this.activeComponent.type===`draw-2d`)?this.activeComponent.graphic:this._get(`createGraphic`)}get defaultCreateOptions(){return this._get(`defaultCreateOptions`)}set defaultCreateOptions(e){this._set(`defaultCreateOptions`,{...V,...e})}get defaultUpdateOptions(){return this._get(`defaultUpdateOptions`)}set defaultUpdateOptions(e){this._set(`defaultUpdateOptions`,{...H,...e,reshapeOptions:{...H.reshapeOptions,...e?.reshapeOptions},highlightOptions:{...H.highlightOptions,...e?.highlightOptions}})}get labelOptions(){return this.sketchOptions.labels}set labelOptions(e){this.sketchOptions.labels=e}get textSymbol(){return this._get(`textSymbol`)}set textSymbol(e){this._set(`textSymbol`,e)}get snappingOptions(){return this.snappingManager?.options??this._get(`snappingOptions`)}set snappingOptions(e){this._defaultSnappingManager!=null&&(this._defaultSnappingManager.options=e),this._set(`snappingOptions`,e)}get snappingManager(){return this._isOverridden(`snappingManager`)?this._get(`snappingManager`):this._defaultSnappingManager}set snappingManager(e){if(e)this._isOverridden(`snappingManager`)||(this._defaultSnappingManager=d(this._defaultSnappingManager)),this._override(`snappingManager`,e);else{let{view:e}=this;!this._defaultSnappingManager&&e&&(this._defaultSnappingManager=new P({options:this.snappingOptions,view:e})),this._clearOverride(`snappingManager`)}}get state(){let e=!!(this.view?.ready&&this.layer),t=this._operationHandle;return e&&t?`active`:e?`ready`:`disabled`}get toolTransitionInProgress(){return this._toolTransitionHandles.updating||!!this.drawTool?.lifecycleManager.updating}get tooltipOptions(){return this.sketchOptions.tooltips}set tooltipOptions(e){this.sketchOptions.tooltips=e}get updating(){return this.toolTransitionInProgress||this.activeComponent&&`updating`in this.activeComponent&&this.activeComponent.updating||!!(this._updatingHandles.updating||this._drawToolSimplifyAbortController||this.snappingManager?.updating||this.drawTool?.updating)}get valueOptions(){return this.sketchOptions.values}set valueOptions(e){this.sketchOptions.values=e}get view(){return this._get(`view`)}set view(e){let t=this._get(`view`);if(t){let{container:e,map:n}=t;e&&this._clearCursor(),n?.remove(this._internalGraphicsLayer),this.removeHandles(this._viewHandlesKey),this.cancel()}let n=`view-ready`;this.removeHandles(n),e&&this.addHandles(te(()=>e.ready,t=>{this.removeHandles(this._viewHandlesKey),t&&this.addHandles(this._generateViewHandles(e),this._viewHandlesKey)},v),n),this._set(`view`,e),this._updatingHandles.consumePromise(this._setupAdvancedDrawToolIntegrationMaybe())}get isUsingLegacyCreateTools(){return this.useLegacyCreateTools||this.view?.type!==`2d`}get pluginManager(){return this._pluginManager}get drawTool(){return this.activeComponent?.type===`draw-2.0`?this.activeComponent:null}get activePluginConfigurations(){return this.drawTool?.pluginStack.toArray().map(e=>e.configuration).filter(n)??[]}get rootPlugins(){return this._pluginManager?.availablePlugins}set rootPlugins(e){this._overrideIfSome(`rootPlugins`,e)}get effectiveAvailablePlugins(){if(this.isUsingLegacyCreateTools)return null;let e=this.view?.type??`2d`,{firstPluginWithSwappableLeaf:t}=this;return t?t.availableDownstreamPlugins.filter(t=>!t.excludedViews?.includes(e)):this.rootPlugins?.filter(t=>!t.excludedViews?.includes(e)).filter(n)??[]}get firstPluginWithSwappableLeaf(){let e=this.view?.type??`2d`;return this.drawTool?.pluginStack.toArray().map(e=>e.configuration).findLast(t=>t!=null&&!t.hidden&&t.availableDownstreamPlugins&&t.availableDownstreamPlugins.filter(t=>!t.excludedViews?.includes(e))?.length>1)}get multiplePluginsActive(){return this.drawTool?this.drawTool.pluginStack.length>1:!1}replaceLeaf(e){this.drawTool?.replaceLeaf(e)}addGraphic(e){this._layerAdapter?.add(e)}addGraphics(e){this._layerAdapter?.addMany(e)}hasGraphic(e){return!!this._layerAdapter?.has(e)}removeGraphic(e){this._layerAdapter?.remove(e)}removeGraphics(e){this._layerAdapter?.removeMany(e)}removeAllGraphics(){this._layerAdapter?.removeAll()}cancel(){this._moduleLoaderAbortController=f(this._moduleLoaderAbortController),this._viewReadyAbortController=f(this._viewReadyAbortController),this._drawToolSimplifyAbortController=f(this._drawToolSimplifyAbortController),this._sketchContinuationFlag=!0,this._operationHandle?.cancel()}complete(){this._operationHandle?.complete()}delete(){let{state:e,updateGraphics:t}=this;if(e===`active`&&t.length){let{activeTool:e}=this,n=t.toArray();this.removeGraphics(n),this.cancel(),this._emitDeleteEvent({graphics:n,tool:e})}}duplicate(){if(this.state===`active`&&this.updateGraphics.length){let e=this.updateGraphics.map(e=>e.clone()).toArray();return this.addGraphics(e),this.emit(`duplicate`,{graphics:e,type:`duplicate`}),e}return[]}async create(e,t){return this._toolTransitionHandles.addPromise(this._create(e,t))}async _create(e,t){this.cancel(),await this._updatingHandles.addPromise(this._waitViewReady());let{view:n,layer:r}=this;if(!n||this.state===`disabled`)throw r||this._logMissingLayer(),m();if(n.activeTool!=null&&(n.activeTool=null),!e){this._logError(`sketch:missing-parameter`,`Missing parameter 'tool'.`);return}O(n,this._internalGraphicsLayer);let i=this._createOperationContext(n),a;try{a=await this._updatingHandles.addPromise(this._setupCreateOperation(e,t))}catch(e){throw this._destroyOperationContext(i),e}if(a==null||this.destroyed||i!==this._operationContext){let e=i===this._operationContext;a?.onEnd(),d(a),this._destroyOperationContext(i),e&&n.map?.remove(this._internalGraphicsLayer);return}let o=z(e);a.on(`complete`,()=>{if(a===this._operationHandle){let n=this.createGraphic,r=this._operationHandle.cancelled;if(this._operationHandle.destroy(),this._operationHandle=null,this._destroyOperationContext(),this._set(`createGraphic`,null),this.view?.map?.remove(this._internalGraphicsLayer),!a.cancelled&&n!=null&&this.addGraphic(n),this._sketchContinuationFlag=!1,this.emit(`create`,{graphic:n,state:r?`cancel`:`complete`,tool:o??`point`,toolEventInfo:null,type:`create`}),r||this._sketchContinuationFlag)return;let{creationMode:i}=this;if(i===`continuous`){if(t?.geometryToPlace)return;this._updatingHandles.consumePromise(h(this.create(e,t)))}else i===`update`&&n&&this._updatingHandles.consumePromise(h(this.update([n])))}}),this._operationHandle=a,n.ready&&n.focus()}async place(e,t){return await e.load(),this.create(`mesh`,{mode:`click`,hasZ:e.hasZ,geometryToPlace:e,...t})}async update(e,t){return this._toolTransitionHandles.addPromise(this._update(e,t))}async _update(e,t){this.cancel(),await this._updatingHandles.addPromise(this._waitViewReady());let{layer:n,view:r,state:i}=this;if(!r||i===`disabled`)throw n||this._logMissingLayer(),m();r.activeTool!=null&&(r.activeTool=null);let a=Array.isArray(e)?e:[e];if(e==null||!a?.length){this._logError(`sketch:missing-parameter`,`Missing parameter 'graphics'.`);return}if(a.some(e=>this.hasGraphic(e)?e.geometry==null&&(this._logError(`sketch:invalid-parameter`,`Parameter 'graphics' contains one or more graphics with an unsupported geometry.`),!0):(this._logError(`sketch:invalid-parameter`,`Parameter 'graphics' contains one or more graphics missing from the supplied GraphicsLayer.`),!0)))return;let o=this._createOperationContext(r),s;try{s=await this._updatingHandles.addPromise(this._setupUpdateOperation(a,t))}catch(e){throw this._destroyOperationContext(o),e}this.destroyed||s==null||$(s)||o!==this._operationContext?(s&&!$(s)&&(s.onEnd(),s.destroy()),this._destroyOperationContext(o)):(O(r,this._internalGraphicsLayer),this._setUpdateOperationHandle(s,t),this.emit(`update`,{graphics:a,state:`start`,aborted:!1,tool:s.tool,toolEventInfo:null,type:`update`}))}async _updateSpatialReference(e){let t=this.view;if(!t)this._logMissingView();else{e=Array.isArray(e)?e:[e];for(let n of e)n.geometry!=null&&n.geometry.type!==`mesh`&&!ue(n.geometry.spatialReference,t.spatialReference)&&(!oe(n.geometry.spatialReference,t.spatialReference)&&!se()&&await ce(),n.geometry=le(n.geometry,t.spatialReference))}}undo(){this.canUndo()&&this._operationHandle?.undo()}redo(){this.canRedo()&&this._operationHandle?.redo()}canUndo(){return!!this._operationHandle?.canUndo()}canRedo(){return!!this._operationHandle?.canRedo()}toggleUpdateTool(){this._updatingHandles.consumePromise(this._operationHandle?.toggleTool())}_createOperationContext(e){this._destroyOperationContext();let t=this.useViewOptions?e.options:null,n=t?we(e):null,r=t?new j:this.sketchOptions,i;if(t){let{values:t}=r;i=o([xe(r,()=>e.options,()=>this.sketchOptions),_(()=>t.directionMode,e=>{this.sketchOptions.values.directionMode=e},ne)])}return this._operationContext={snappingManager:n?.snappingManager??this.snappingManager,toolOptions:r,...o([n,i])}}_destroyOperationContext(e=this._operationContext){e===this._operationContext?this._operationContext=p(this._operationContext):p(e)}async _getFirstHit(e){let t=this.view;if(!t)return this._logMissingView(),null;if(t.type===`2d`){let n=[];t.map.allLayers.forEach(e=>{(e.type===`vector-tile`||e.type===`imagery`)&&n.push(e)});let r=await t.hitTest(e,{exclude:n});return De(r.results)}let n=[t.map.ground];t.map.allLayers.forEach(e=>{fe(e)&&(!has(`enable-feature:im-as-ground`)||e.isUsedAsGroundLayer)&&n.push(e)});let r=await t.hitTest(e,{exclude:n});if(r.results.length>0){let e=r.results[0];if(e!=null&&e.type===`graphic`&&e.graphic&&(!r.ground.mapPoint||t.map.ground.opacity<1||r.ground.distance-(e.distance??0)>-Math.min(3*r.ground.distance,t.viewingMode===`global`?ae(t.renderCoordsHelper.spatialReference).radius/t.renderCoordsHelper.unitInMeters:1/0)))return e}return null}_generateViewHandles(e){return[e.on(`immediate-click`,async e=>{let t=this.state===`active`&&this._operationHandle?.type===`create`;this.state!==`disabled`&&!t&&this.updateOnGraphicClick&&await this._toolTransitionHandles.addPromise(this._handleImmediateClick(e))},k.WIDGET)]}async _handleImmediateClick(e){let t=await e.defer(()=>this._getFirstHit(L(e))),n=null;if(t!=null){let r=t.graphic;this.updateGraphics.includes(r)||this.hasGraphic(r)?(e.stopPropagation(),n=r):this.view?.type===`2d`&&!this._isComponentGraphic(r)&&this.state===`active`&&this.cancel()}else this.state===`active`&&this.cancelUpdateOnClickAway&&this.cancel();n!=null&&!this.updateGraphics.includes(n)&&await this.update([n],{...this.defaultUpdateOptions,reshapeOptions:{...this.defaultUpdateOptions.reshapeOptions}})}async _setupCreateOperation(e,t){let n=this.view;if(!n)return this._logMissingView(),null;let r={hasZ:n.type===`3d`,...this.defaultCreateOptions,...t},i=typeof e==`string`?this.pluginManager?.getPluginsEquivalentToCreateTool(e,r.mode):e,a=z(e);if(i&&!this.isUsingLegacyCreateTools){let e=await this._setupDrawTool(i,r,a??`polyline`);if(e)return this._setupDrawToolOperationHandle(e,a??`point`)}if(!a)return null;let o=await this._setupDrawGraphicTool(a,n,r);return o==null?null:(n.tools.add(o),n.activeTool=o,this._setupCreateOperationHandle(o,a))}async _setupDrawGraphicTool(e,t,n){if(e===`multipoint`&&t.type===`3d`)return this._logError(`sketch:create`,`Multipoint geometries are not supported in SceneView.`),null;if(!t)return this._logMissingView(),null;let{cursor:r,defaultZ:i,hasZ:a,geometryToPlace:o,graphicProperties:s,mode:c,preserveAspectRatio:l}=n,u=Ie(c,e),d=Le(e),f=n?.optionsPerTool?.has(e)?n.optionsPerTool.get(e):{},p=f?.preserveAspectRatio??l??e!==`rectangle`,m={centered:e!==`rectangle`&&!(e===`circle`&&!p),cursor:r,defaultZ:i,forceUniformSize:p,graphicProperties:{...s,attributes:{...s?.attributes}},geometryToPlace:o,geometryType:d,mode:u,graphicSymbol:n.graphicSymbol??this._getGraphicSymbolFromTool(e),hasZ:a,snappingManager:this._operationSnappingManager,snapToScene:!1,view:t,...f};return t.type===`2d`?this._makeDrawGraphicTool2D(m):this._makeDrawGraphicTool3D(m)}async _makeDrawGraphicTool2D(e){let t=await this._requireModule(import(`../../views/2d/interactive/editingTools.js`));return $(t)||this.destroyed?null:new t.module.DrawGraphicTool2D({...e,activeVertexSymbol:this.activeVertexSymbol,regularVerticesSymbol:this.vertexSymbol,activeLineSymbol:this.activeLineSymbol,activeFillSymbol:ze(e.geometryType)?this.activeFillSymbol:null,toolOptions:this._operationToolOptions})}async _makeDrawGraphicTool3D(e){let t=await this._requireModule(import(`../../views/3d/interactive/editingTools.js`));return $(t)||this.destroyed?null:new t.module.DrawGraphicTool3D({...e,elevationInfo:this._layerAdapter?.elevationInfo,snapToScene:!0,toolOptions:this._operationToolOptions})}_setupCreateOperationHandle(e,t){let n=this.view;if(!n)return this._logMissingView(),null;let r=null,i=e.forceUniformSize,a=e.centered,o=new ie,l=[s(()=>o.destroy()),n.on(`key-down`,t=>{if(t.key===A.pan)t.stopPropagation(),t.repeat||(e.enabled=!1);else if(t.key===A.complete)t.stopPropagation(),e.completeCreateOperation();else if(t.key===A.vertexAdd&&!t.repeat){let n=e.drawOperation.geometryType;(n===`polyline`||n===`polygon`||n===`multipoint`)&&(t.stopPropagation(),e.drawOperation.commitStagedVertex())}else t.key===A.undo?(t.stopPropagation(),u.undo()):t.key===A.redo?(t.stopPropagation(),u.redo()):t.key===A.constraint&&(e.geometryType===`rectangle`||e.geometryType===`circle`)&&!t.repeat?(e.forceUniformSize=!i,t.stopPropagation()):t.key===A.center&&(t.repeat||(e.centered=!a,t.stopPropagation()))},k.WIDGET),n.on(`key-up`,t=>{t.key===A.pan?e.enabled=!0:t.key===A.constraint&&(e.geometryType===`rectangle`||e.geometryType===`circle`)?(e.forceUniformSize=i,t.stopPropagation()):t.key===A.center&&(e.centered=a,t.stopPropagation())},k.WIDGET),e.on(`vertex-update`,()=>{o.notify()}),e.on(`vertex-add`,t=>{switch(o.notify(),r=r==null?`start`:`active`,t.operation){case`apply`:this.emit(`create`,{graphic:e.graphic,state:r,tool:this.activeTool,toolEventInfo:t,type:`create`});break;case`undo`:this._emitUndoEvent({graphics:[e.graphic],tool:e.geometryType});break;case`redo`:this._emitRedoEvent({graphics:[e.graphic],tool:e.geometryType})}}),e.on(`cursor-update`,t=>{e.drawOperation.numCommittedVertices>0&&this.emit(`create`,{graphic:e.graphic,state:`active`,tool:this.activeTool,toolEventInfo:{coordinates:t.vertices[0].coordinates,type:`cursor-update`},type:`create`})}),e.on(`vertex-remove`,t=>{switch(o.notify(),t.operation){case`apply`:this.emit(`create`,{graphic:e.graphic,state:`active`,tool:this.activeTool,toolEventInfo:t,type:`create`});break;case`undo`:this._emitUndoEvent({graphics:[e.graphic],tool:e.geometryType});break;case`redo`:this._emitRedoEvent({graphics:[e.graphic],tool:e.geometryType})}}),e.on(`complete`,e=>{this._set(`createGraphic`,e.graphic),r=`complete`,e.aborted?u&&u.cancel():u&&u.complete()}),_(()=>this._getGraphicSymbolFromTool(t),t=>{e.graphicSymbol=t})],u=new je({activeComponent:e,type:`create`,onEnd:()=>{c(l),n.tools?.remove(e)},undo:()=>{e.canUndo&&e.undo()},redo:()=>{e.canRedo&&e.redo()},canUndo:()=>(x(o),e.canUndo),canRedo:()=>(x(o),e.canRedo)});return u}_setupDrawToolOperationHandle(e,t){let r=this.view;if(!r)return this._logMissingView(),null;let i=null,a=[r.on(`key-down`,t=>{t.key===A.pan&&(t.stopPropagation(),t.repeat||(e.editable=!1))},k.WIDGET),r.on(`key-up`,t=>{t.key===A.pan&&(e.editable=!0)},k.WIDGET),e.on(`before-vertex-add`,t=>{let n=e.mostUpstreamPlugin?.configuration;if(n&&`legacyCreateTool`in n&&(n?.legacyCreateTool===`point`||n.legacyCreateTool===`text`)){let e=t.detail.originalEvent;e&&`key`in e&&e.key===A.vertexAdd&&t.preventDefault()}}),e.on(`before-complete`,t=>{let n=e.getGeometryIfCompleted();(!n||Fe(n))&&t.preventDefault()}),e.on([`vertex-add`,`vertex-remove`],r=>{switch(this.createGraphic&&(this.createGraphic.geometry=e.getGeometryIfCompleted()),i=i==null&&r.type!==`vertex-remove`?`start`:`active`,r.operation){case`apply`:this.emit(`create`,{graphic:this.createGraphic,state:i,tool:this.activeTool,toolEventInfo:r,type:`create`});break;case`undo`:this._emitUndoEvent({graphics:[this.createGraphic].filter(n),tool:t});break;case`redo`:this._emitRedoEvent({graphics:[this.createGraphic].filter(n),tool:t})}}),e.on(`cursor-update`,t=>{this.createGraphic&&(this.createGraphic.geometry=e.unprocessedGeometry),(t.vertices[0]?.vertexIndex>0||t.vertices[0]?.componentIndex>0)&&this.emit(`create`,{graphic:this.createGraphic,state:`active`,tool:this.activeTool,toolEventInfo:{coordinates:t.vertices[0].coordinates,type:`cursor-update`},type:`create`})}),e.on(`complete`,async({geometry:t,isSimple:n})=>{let r=this.createGraphic,i=!!t&&t.type!==`mesh`&&t.type!==`extent`&&!n;if(r&&(r.geometry=n?t:e.unprocessedGeometry??t),!i||!r)o.complete();else{this._internalGraphicsLayer.add(this.createGraphic);let e=new AbortController;this._drawToolSimplifyAbortController?.abort(),this._drawToolSimplifyAbortController=e,await this._updatingHandles.addPromise(h(this._finalizeDrawToolCompletion({abortController:e,geometry:t,graphic:r,handle:o})))}})],o=new Me({activeComponent:e,type:`create`,onEnd:()=>{c(a),r.tools.remove(e)},undo:()=>e.undo(),redo:()=>e.redo(),canUndo:()=>e.canUndo,canRedo:()=>e.canRedo});return a.push(e.on(`cancel`,()=>{this._drawToolSimplifyAbortController=f(this._drawToolSimplifyAbortController),o.cancel()})),o}async _finalizeDrawToolCompletion({abortController:e,geometry:t,graphic:n,handle:r}){let i=this.view?.acquireCursor(`progress`,`high`);i&&this.addHandles(i);let a=()=>e.signal.aborted?(n&&(this._layerAdapter?.remove(n),this._internalGraphicsLayer?.remove(n)),this._set(`createGraphic`,null),!0):!1;try{let i=await this._geometryWorkerHandle.simplify(t,e.signal);if(a())return;n.geometry=i??t,this._internalGraphicsLayer?.remove(n),r.complete()}finally{i?.remove(),this._drawToolSimplifyAbortController===e&&(this._drawToolSimplifyAbortController=null)}}_getGraphicSymbolFromTool(e){switch(e){case`point`:case`multipoint`:return this.pointSymbol;case`polyline`:case`freehandPolyline`:return this.polylineSymbol;case`circle`:case`rectangle`:case`polygon`:case`freehandPolygon`:return this.polygonSymbol;case`mesh`:return this.meshSymbol;case`text`:return this.textSymbol}}async _setupUpdateOperation(e,t){let{view:n}=this;if(!n)return this._logMissingView(),null;let r={...this.defaultUpdateOptions,...t,reshapeOptions:{...this.defaultUpdateOptions.reshapeOptions,...t?.reshapeOptions},highlightOptions:{...this.defaultUpdateOptions.highlightOptions,...t?.highlightOptions}};this.activeUpdateOptions=r;let i=r.tool??H.tool;if(this.removeGraphics(e),this.addGraphics(e),n.type===`3d`){if(e.length===0)return null;switch(i){case`move`:return this._setupMove3DOperation(e,r,n,i);case`reshape`:return e.length>1?(this._logError(`sketch:reshape-multiple`,`Reshape operation does not support multiple graphics.`),null):this._setupReshape3DOperation(e[0],r,n);case`transform`:return this._setupGraphicTransform3DOperation(e,r,n)}}switch(i){case`move`:return this._setupMove2DOperation(e,r,n);case`reshape`:return e.length>1?(this._logError(`sketch:reshape-multiple`,`Reshape operation does not support multiple graphics.`),null):this._setupTransformOrReshape2DOperation(e,i,r,n);case`transform`:return B(e)&&(i=`reshape`),this._setupTransformOrReshape2DOperation(e,i,r,n)}}async _setupMove3DOperation(e,t,n,r,i=!1){let a=await this._requireModule(import(`../../views/3d/interactive/editingTools.js`));if($(a))return a;let{ManipulatedObject3DGraphic:o,MoveTool3D:s}=a.module,l=new Map,u=()=>{l.forEach(e=>e.destroy()),l.clear()};for(let t of e){let e=new o({view:n,graphic:t}),r=ve(e);if(r!==0)return u(),this._logError(`sketch:move`,`Move operation not supported for provided graphic(s) (${D(r)}).`),null;l.set(t,e)}let d=new s({view:n,enableZ:t.enableZ,snappingManager:this._operationSnappingManager,toolOptions:this._operationToolOptions});n.tools.add(d),d.objects.addMany(Array.from(l.values())),i||this.updateGraphics.addMany(e);let f=[],p=new R({activeComponent:d,tool:r,type:`update`,onEnd:()=>{c(f),Q(n,d),u()},undo:()=>{X(this.view,d),q(p,this.updateGraphics.toArray()),this._emitUndoEvent({graphics:this.updateGraphics.toArray(),tool:r})},redo:()=>{J(p,this.updateGraphics.toArray()),this._emitRedoEvent({graphics:this.updateGraphics.toArray(),tool:r})},addToSelection:async e=>{this.updateGraphics.push(e);let t=new o({view:n,graphic:e});l.set(e,t),d.objects.push(t),this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{added:[e],removed:[],type:`selection-change`},type:`update`})},removeFromSelection:async e=>{let t=this.updateGraphics.indexOf(e);if(p.history.undo.forEach(e=>e.updates.splice(t,1)),p.history.redo.forEach(e=>e.updates.splice(t,1)),this.updateGraphics.remove(e),this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{added:[],removed:[e],type:`selection-change`},type:`update`}),this.updateGraphics.length===0){p.complete();return}let n=l.get(e);n&&(d.objects.remove(n),n.destroy(),l.delete(e))},toggleTool:async()=>{if(this.updateGraphics.length!==1||t.toggleToolOnClick===!1||r!==`transform`)return;let e=this.updateGraphics.at(0),i=await this._updatingHandles.addPromise(this._setupReshape3DOperation(e,t,n,!0));i&&!$(i)&&(p.onEnd(),p.destroy(),this._setUpdateOperationHandle(i,t))}});return f.push(...this._getHandlesForComponent(p,t),n.on(`immediate-click`,e=>this._getCommonUpdateOperationClickHandlers(p,e,t),k.WIDGET),n.on(`key-down`,e=>{this._getCommonUpdateOperationKeyDownHandlers(p,e)},k.WIDGET)),p}_setupGraphicTransform3DOperation(e,t,n,r=!1){if(e.length===1&&be(e[0])===0){let i=e[0],a=i.geometry;if(a!=null&&(a.type===`point`||a.type===`mesh`))return this._setupPointTransform3DOperation(i,t,n);if(a!=null&&(a.type===`polygon`||a.type===`polyline`))return this._setupPolyTransform3DOperation(i,t,n,r)}return this._setupMove3DOperation(e,t,n,`transform`,r)}async _setupPointTransform3DOperation(e,t,n){let r=`transform`,{enableRotation:i,enableScaling:a,enableZ:o}=t,s=await this._requireModule(import(`../../views/3d/interactive/editingTools.js`));if($(s))return s;let{TransformTool3D:l,ManipulatedObject3DGraphic:u}=s.module,d=new u({graphic:e,view:n}),f=new l({object:d,view:n,enableRotation:i,enableScaling:a,enableZ:o,snappingManager:this._operationSnappingManager,toolOptions:this._operationToolOptions});n.tools.add(f),this.updateGraphics.add(e);let p=[],m=new R({activeComponent:f,tool:r,type:`update`,onEnd:()=>{c(p),Q(n,f),d.destroy()},undo:()=>{X(this.view,f),q(m,this.updateGraphics.toArray()),this._emitUndoEvent({graphics:this.updateGraphics.toArray(),tool:r})},redo:()=>{J(m,this.updateGraphics.toArray()),this._emitRedoEvent({graphics:this.updateGraphics.toArray(),tool:r})},addToSelection:async e=>{this.updateGraphics.add(e),this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{added:[e],removed:[],type:`selection-change`},type:`update`}),await this._replaceUpdateOperationHandle(m,t,()=>this._setupMove3DOperation(this.updateGraphics.toArray(),t,n,`transform`,!0))},removeFromSelection:async e=>{this.updateGraphics.remove(e),this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{added:[],removed:[e],type:`selection-change`},type:`update`}),m.complete()},toggleTool:async()=>{}});return p.push(...this._getHandlesForComponent(m,t),n.on(`immediate-click`,e=>this._getCommonUpdateOperationClickHandlers(m,e,t),k.WIDGET),n.on(`key-down`,e=>{this._getCommonUpdateOperationKeyDownHandlers(m,e)},k.WIDGET)),m}async _setupPolyTransform3DOperation(e,t,n,r=!1){let i=`transform`,{enableRotation:a,enableScaling:o,enableZ:s,preserveAspectRatio:l}=t,u=await this._requireModule(import(`../../views/3d/interactive/editingTools.js`));if($(u))return u;let{ManipulatedObject3DGraphic:d,ExtentTransformTool:f}=u.module,p=this.view?.inputManager?.isModifierKeyDown(A.constraint),m=new d({view:n,graphic:e}),h=new f({object:m,view:n,enableRotation:a,enableScaling:o,enableZ:s,preserveAspectRatio:!!l!=!!p,toolOptions:this._operationToolOptions});n.tools.add(h),r||this.updateGraphics.add(e);let g=[],_=new R({activeComponent:h,tool:i,type:`update`,onEnd:()=>{c(g),Q(n,h),m.destroy()},canUndo:()=>!h.destroyed&&h.canUndo,undo:()=>{h.destroyed||(h.undo(),this._emitUndoEvent({graphics:this.updateGraphics.toArray(),tool:i}))},canRedo:()=>!h.destroyed&&h.canRedo,redo:()=>{h.destroyed||(h.redo(),this._emitRedoEvent({graphics:this.updateGraphics.toArray(),tool:i}))},addToSelection:async e=>{this.updateGraphics.add(e),this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{added:[e],removed:[],type:`selection-change`},type:`update`}),await this._replaceUpdateOperationHandle(_,t,()=>this._setupMove3DOperation(this.updateGraphics.toArray(),t,n,`transform`,!0))},removeFromSelection:async e=>{this.updateGraphics.remove(e),this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{added:[],removed:[e],type:`selection-change`},type:`update`}),_.complete()},toggleTool:async()=>{if(this.updateGraphics.length!==1||t.toggleToolOnClick===!1)return;let r=await this._updatingHandles.addPromise(this._setupReshape3DOperation(e,t,n,!0));r&&!$(r)&&(_.onEnd(),_.destroy(),this._setUpdateOperationHandle(r,t))}});return g.push(...this._getHandlesForComponent(_,t),n.on(`immediate-click`,e=>this._getCommonUpdateOperationClickHandlers(_,e,t),k.WIDGET),n.on(`key-down`,e=>this._getCommonUpdateOperationKeyDownHandlers(_,e),k.WIDGET),n.on(`key-down`,e=>{e.key===A.constraint&&!e.repeat&&(h.preserveAspectRatio=!h.preserveAspectRatio,e.stopPropagation())},k.WIDGET),n.on(`key-up`,e=>{e.key===A.constraint&&(h.preserveAspectRatio=!h.preserveAspectRatio,e.stopPropagation())},k.WIDGET)),_}async _setupMove2DOperation(e,t,n){let r=`move`;this.updateGraphics.addMany(e),await this._updatingHandles.addPromise(this._updateSpatialReference(e));let i=await this._updatingHandles.addPromise(this._getGraphicMover(e,t,n));if($(i))return i;let a=new R({activeComponent:i,tool:r,type:`update`,onEnd:()=>{this._clearCursor(),c(l),c(s),i.destroy(),this._internalGraphicsLayer?.removeMany([...this.updateGraphics.toArray()])},undo:()=>{let e=this.updateGraphics.toArray();q(a,e),a.refreshComponent(),this._emitUndoEvent({graphics:e,tool:r})},redo:()=>{let e=this.updateGraphics.toArray();J(a,e),a.refreshComponent(),this._emitRedoEvent({graphics:e,tool:r})},addToSelection:async e=>{await this._updatingHandles.addPromise(this._updateSpatialReference(e)),this.updateGraphics.push(e),i.graphics=this.updateGraphics.toArray(),this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{added:[e],removed:[],type:`selection-change`},type:`update`})},removeFromSelection:async e=>{let t=this.updateGraphics.indexOf(e);a.history.undo.forEach(e=>e.updates.splice(t,1)),a.history.redo.forEach(e=>e.updates.splice(t,1)),this.updateGraphics.remove(e);let n=this.updateGraphics.toArray();this.emit(`update`,{graphics:n,state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{added:[],removed:[e],type:`selection-change`},type:`update`}),this.updateGraphics.length===0?a.complete():i.graphics=n}}),o=!1,s=[n.on(`immediate-click`,e=>this._getCommonUpdateOperationClickHandlers(a,e,t),k.WIDGET),n.on(`key-down`,e=>{this._getCommonUpdateOperationKeyDownHandlers(a,e),e.key===A.constraint&&!e.repeat&&(o=!0,i.enableMoveAllGraphics=!i.enableMoveAllGraphics)},k.WIDGET),n.on(`key-up`,e=>{e.key===A.constraint&&o&&(o=!1,i.enableMoveAllGraphics=!i.enableMoveAllGraphics)},k.WIDGET)],l=this._getHandlesForComponent(a,t);return a}async _setupReshape3DOperation(e,t,n,r=!1){let i=`reshape`,a=await this._requireModule(import(`../../views/3d/interactive/editingTools.js`));if($(a))return a;let{ManipulatedObject3DGraphic:o,ReshapeTool3D:s}=a.module,l=new o({view:n,graphic:e}),u=ye(l);if(u!==0)return l.destroy(),this._logError(`sketch:reshape`,`Reshape operation not supported for provided graphic(s) (${D(u)}).`),null;let d=t.reshapeOptions,f=new s({view:n,object:l,enableZVertex:t.enableZ&&d?.vertexOperation===`move`,enableZShape:t.enableZ&&d?.shapeOperation===`move`,enableMoveObject:d?.shapeOperation===`move`||d?.shapeOperation===`move-xy`,enableMidpoints:d?.edgeOperation===`split`,enableEdgeOffset:d?.edgeOperation===`offset`,snappingManager:this._operationSnappingManager,toolOptions:this._operationToolOptions});n.tools.add(f),r||this.updateGraphics.add(l.graphic);let p=[],m=new R({activeComponent:f,tool:i,type:`update`,onEnd:()=>{c(p),Q(n,f),l.destroy()},canUndo:()=>!f.destroyed&&f.canUndo,undo:()=>{f.destroyed||(f.undo(),this._emitUndoEvent({graphics:this.updateGraphics.toArray(),tool:i}))},canRedo:()=>!f.destroyed&&f.canRedo,redo:()=>{f.destroyed||(f.redo(),this._emitRedoEvent({graphics:this.updateGraphics.toArray(),tool:i}))},addToSelection:async e=>{this.updateGraphics.add(e),this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{added:[e],removed:[],type:`selection-change`},type:`update`}),await this._replaceUpdateOperationHandle(m,t,()=>this._setupMove3DOperation(this.updateGraphics.toArray(),t,n,`transform`,!0))},removeFromSelection:async e=>{this.updateGraphics.remove(e),this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{added:[],removed:[e],type:`selection-change`},type:`update`}),m.complete()},toggleTool:async()=>{t.toggleToolOnClick!==!1&&await this._replaceUpdateOperationHandle(m,t,()=>this._setupGraphicTransform3DOperation(this.updateGraphics.toArray(),t,n,!0))}});return p.push(...this._getHandlesForComponent(m,t),n.on(`immediate-click`,e=>this._getCommonUpdateOperationClickHandlers(m,e,t),k.WIDGET),n.on(`key-down`,e=>{this._getCommonUpdateOperationKeyDownHandlers(m,e)},k.WIDGET)),m}async _setupTransformOrReshape2DOperation(e,t,n,r){this.updateGraphics.addMany(e),await this._updatingHandles.addPromise(this._updateSpatialReference(e));let i=await this._updatingHandles.addPromise(t===`transform`?this._getBox(e,n,r):this._getReshape(e,n,r));if($(i))return i;let a=new R({activeComponent:i,type:`update`,onEnd:()=>{c(s),c(o),a.activeComponent&&!a.activeComponent.destroyed&&a.activeComponent.destroy(),this._internalGraphicsLayer.removeMany(this.updateGraphics.toArray())},undo:()=>{q(a,this.updateGraphics.toArray()),a.refreshComponent(),this._emitUndoEvent({graphics:this.updateGraphics.toArray(),tool:a.tool})},redo:()=>{J(a,this.updateGraphics.toArray()),a.refreshComponent(),this._emitRedoEvent({graphics:this.updateGraphics.toArray(),tool:a.tool})},addToSelection:async e=>{let t=a.activeComponent;if(t?.type===`reshape`){let t=[...this.updateGraphics,e];if(this.updateGraphics.removeAll(),!await this._replaceUpdateOperationHandle(a,n,()=>this._setupTransformOrReshape2DOperation(t,`transform`,n,r)))return}else this.updateGraphics.add(e),t=t,t.graphics=this.updateGraphics.toArray(),t.refresh(),a.resetHistory();this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{added:[e],removed:[],type:`selection-change`},type:`update`})},removeFromSelection:async e=>{let t=this.updateGraphics.indexOf(e);a.history.undo.forEach(e=>e.updates.splice(t,1)),a.history.redo.forEach(e=>e.updates.splice(t,1)),this.updateGraphics.remove(e);let n=this.updateGraphics.toArray();n.length===0?a.complete():B(n)?await a.toggleTool():a.activeComponent.graphics=n,this.emit(`update`,{graphics:n,state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{added:[],removed:[e],type:`selection-change`},type:`update`})},toggleTool:async()=>{if(this.updateGraphics.length>1)return;let e=this.updateGraphics.at(0),t=e.geometry;if(t!=null&&(a.tool===`reshape`&&t.type===`point`||a.tool===`transform`&&t.type===`extent`))return;let i=null,o={...this.defaultUpdateOptions,...n,...this.activeUpdateOptions,reshapeOptions:{...this.defaultUpdateOptions.reshapeOptions,...n?.reshapeOptions,...this.activeUpdateOptions?.reshapeOptions},highlightOptions:{...this.defaultUpdateOptions.highlightOptions,...n?.highlightOptions,...this.activeUpdateOptions?.highlightOptions}};a.tool===`transform`?i=await this._updatingHandles.addPromise(this._getReshape([e],o,r)):a.tool===`reshape`&&(i=await this._updatingHandles.addPromise(this._getBox([e],o,r))),!$(i)&&(a.activeComponent?.destroy(),a.activeComponent=i,a.activeComponent&&(c(s),s=this._getHandlesForComponent(a,o)))}}),o=[r.on(`immediate-click`,e=>this._getCommonUpdateOperationClickHandlers(a,e,n),k.WIDGET),r.on(`key-down`,e=>{if(this._getCommonUpdateOperationKeyDownHandlers(a,e),e.key===A.constraint&&!e.repeat&&a){let e=a.activeComponent;e?.type===`box`&&(e.preserveAspectRatio=!e.preserveAspectRatio)}},k.WIDGET),r.on(`key-up`,e=>{if(e.key===A.constraint&&a){let e=a.activeComponent;e?.type===`box`&&(e.preserveAspectRatio=!e.preserveAspectRatio)}},k.WIDGET)],s=this._getHandlesForComponent(a,n);return a}async _getGraphicMover(e,t,n){let{enableMoveAllGraphics:r,highlightOptions:i}=t,a=await this._requireModule(import(`../../views/draw/support/GraphicMover.js`));return $(a)?a:new a.module.default({enableMoveAllGraphics:r,highlightName:i?.name,highlightsEnabled:!!i?.enabled,indicatorsEnabled:!1,graphics:e,view:n,callbacks:{onGraphicMoveStart:({dx:e,dy:t,graphic:n})=>{this._displayCursor(`grabbing`),this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{dx:e,dy:t,mover:n,type:`move-start`},type:`update`})},onGraphicMove:({dx:e,dy:t,graphic:n})=>this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{dx:e,dy:t,mover:n,type:`move`},type:`update`}),onGraphicMoveStop:({dx:e,dy:t,graphic:n})=>{this._displayCursor(`pointer`),this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{dx:e,dy:t,mover:n,type:`move-stop`},type:`update`})},onGraphicPointerOver:()=>this._displayCursor(`move`),onGraphicPointerOut:()=>this._clearCursor()}})}async _getBox(e,t,n){let{enableRotation:r,enableScaling:i,highlightOptions:a,preserveAspectRatio:o}=t,s=await this._requireModule(import(`../../views/draw/support/Box.js`));if($(s))return s;let c=this.view?.inputManager?.isModifierKeyDown(A.constraint),l=new s.module.default({graphics:e,enableRotation:r,enableScaling:i,highlightName:a?.name,highlightsEnabled:!!a?.enabled,preserveAspectRatio:!!o!=!!c,layer:this._internalGraphicsLayer,view:n,toolOptions:this._operationToolOptions,callbacks:{onMoveStart:e=>this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{...e},type:`update`}),onMove:e=>this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{...e},type:`update`}),onMoveStop:e=>this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{...e},type:`update`}),onScaleStart:e=>this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{...e},type:`update`}),onScale:e=>this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{...e},type:`update`}),onScaleStop:e=>this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{...e},type:`update`}),onRotateStart:e=>this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{...e},type:`update`}),onRotate:e=>this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{...e},type:`update`}),onRotateStop:e=>this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{...e},type:`update`})}});return l.addHandles(_(()=>[this.activeUpdateOptions?.enableRotation,this.activeUpdateOptions?.enableScaling],([e,n])=>{l.enableRotation=e??t.enableRotation??!0,l.enableScaling=n??t.enableScaling??!0,l.refresh()},v)),l}async _getReshape(e,t,n){let{highlightOptions:r,reshapeOptions:i}=t,a=i?.edgeOperation===`split`,o=i?.shapeOperation===`move`,s=!!i?.enableCreateCurveFromStraightEdge,c=await this._requireModule(import(`../../views/draw/support/Reshape.js`));return $(c)?c:new c.module.default({enableMidpoints:a,enableMovement:o,enableCurveOnMidpoint:s,graphic:e[0],highlightName:r?.name,highlightsEnabled:!!r?.enabled,layer:this._internalGraphicsLayer,snappingManager:this._operationSnappingManager,toolOptions:this._operationToolOptions,view:n,callbacks:{onReshapeStart:e=>this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{...e},type:`update`}),onReshape:e=>this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{...e},type:`update`}),onReshapeStop:({mover:e,type:t})=>this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e,type:t},type:`update`}),onMoveStart:({dx:e,dy:t,mover:n,type:r})=>this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{dx:e,dy:t,mover:n,type:r},type:`update`}),onMove:({dx:e,dy:t,mover:n,type:r})=>this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{dx:e,dy:t,mover:n,type:r},type:`update`}),onMoveStop:({dx:e,dy:t,mover:n,type:r})=>this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{dx:e,dy:t,mover:n,type:r},type:`update`}),onVertexAdd:({added:e,type:t,vertices:n})=>{let r=e.map(e=>C(e.geometry));this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{added:r,vertices:n,type:t},type:`update`})},onVertexRemove:({removed:e,type:t,vertices:n})=>{let r=e.map(e=>C(e.geometry));this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{removed:r,vertices:n,type:t},type:`update`})}}})}_getHandlesForComponent(e,t){let n=e.activeComponent;if(!n)return[];switch(n.type){case`graphic-mover`:return[n.on(`graphic-click`,({graphic:n,viewEvent:r})=>{r.native?.shiftKey&&t.multipleSelectionEnabled&&(r.stopPropagation(),this._updatingHandles.consumePromise(e.removeFromSelection(n)))}),n.on(`graphic-move-start`,t=>e.addToHistory(Z(t.allGraphics)))];case`box`:return[n.on(`graphic-click`,n=>this._onTransformOrReshape2DGraphicClick(e,t,n)),n.on(`move-start`,t=>e.addToHistory(Z(t.graphics))),n.on(`rotate-start`,t=>e.addToHistory(Z(t.graphics))),n.on(`scale-start`,t=>e.addToHistory(Z(t.graphics)))];case`reshape`:return[n.on(`graphic-click`,n=>this._onTransformOrReshape2DGraphicClick(e,t,n)),n.on(`move-start`,t=>e.addToHistory(Z([t.mover]))),n.on(`reshape-start`,t=>e.addToHistory(Z([t.graphic]))),n.on(`vertex-add`,t=>e.addToHistory(Z([t.oldGraphic]))),n.on(`vertex-remove`,t=>e.addToHistory(Z([t.oldGraphic])))];case`move-3d`:return[n.events.on(`record-undo`,({updates:t})=>{e.addToHistory({updates:t})}),n.events.on(`move-start`,e=>{this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{dx:0,dy:0,mover:e.objects.length>0?e.objects[0].graphic:null,type:`move-start`},type:`update`})}),n.events.on(`move`,e=>{this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{dx:e.dx,dy:e.dy,mover:e.objects.length>0?e.objects[0].graphic:null,type:`move`},type:`update`})}),n.events.on(`move-stop`,e=>{this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{dx:0,dy:0,mover:e.objects.length>0?e.objects[0].graphic:null,type:`move-stop`},type:`update`})}),n.events.on(`immediate-click`,n=>{this._updatingHandles.consumePromise(n.shiftKey?this._toggleSelection([n.object.graphic],e,t):e.toggleTool())})];case`transform-3d`:return[n.events.on(`record-undo`,({updates:t})=>{e.addToHistory({updates:t})}),n.events.on(`translate-start`,e=>{this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.object.graphic,dx:e.dxScreen,dy:e.dyScreen,type:`move-start`},type:`update`})}),n.events.on(`translate-stop`,e=>{this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.object.graphic,dx:e.dxScreen,dy:e.dyScreen,type:`move-stop`},type:`update`})}),n.events.on(`rotate-start`,e=>{this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.object.graphic,angle:e.angle,type:`rotate-start`},type:`update`})}),n.events.on(`rotate-stop`,e=>{this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.object.graphic,angle:e.angle,type:`rotate-stop`},type:`update`})}),n.events.on(`scale-start`,e=>{this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.object.graphic,xScale:e.xScale,yScale:e.yScale,type:`scale-start`},type:`update`})}),n.events.on(`scale-stop`,e=>{this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.object.graphic,xScale:e.xScale,yScale:e.yScale,type:`scale-stop`},type:`update`})}),n.events.on(`translate`,e=>{this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.object.graphic,dx:e.dxScreen,dy:e.dyScreen,type:`move`},type:`update`})}),n.events.on(`rotate`,e=>{this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.object.graphic,angle:e.angle,type:`rotate`},type:`update`})}),n.events.on(`scale`,e=>{this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.object.graphic,xScale:e.xScale,yScale:e.yScale,type:`scale`},type:`update`})}),n.events.on(`immediate-click`,n=>{this._updatingHandles.consumePromise(n.shiftKey?this._toggleSelection([n.object.graphic],e,t):e.toggleTool())})];case`reshape-3d`:return[n.events.on(`reshape`,e=>{this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{...e,mover:e.object.graphic},type:`update`})}),n.events.on(`move`,e=>{this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:{...e,mover:e.object.graphic},type:`update`})}),n.events.on(`vertex-add`,e=>{this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:e,type:`update`})}),n.events.on(`vertex-remove`,e=>{this.emit(`update`,{graphics:this.updateGraphics.toArray(),state:`active`,aborted:!1,tool:this.activeTool,toolEventInfo:e,type:`update`})}),n.events.on(`immediate-click`,n=>{this._updatingHandles.consumePromise(n.shiftKey?this._toggleSelection([n.object.graphic],e,t):e.toggleTool())})]}}_onTransformOrReshape2DGraphicClick(e,t,n){let{graphic:r,viewEvent:i}=n;i.native?.shiftKey&&this.hasGraphic(r)?(i.stopPropagation(),this._updatingHandles.consumePromise(e.removeFromSelection(r))):t.toggleToolOnClick&&(i.stopPropagation(),this._updatingHandles.consumePromise(e.toggleTool()))}async _replaceUpdateOperationHandle(e,t,n){let r=this._operationContext;e.onEnd(),e.destroy();let i=await this._updatingHandles.addPromise(n());return!i||$(i)||r!==this._operationContext?(i&&!$(i)&&(i.onEnd(),i.destroy()),this._destroyOperationContext(r),!1):(this._setUpdateOperationHandle(i,t),!0)}_setUpdateOperationHandle(e,t){this._operationHandle=e;let n=this.view?.map;this._disablePopup(t),e.on(`complete`,()=>{if(e===this._operationHandle){let r=this.updateGraphics.toArray(),i=this._operationHandle.tool;this._operationHandle.destroy(),this._operationHandle=null,this._destroyOperationContext(),this._internalGraphicsLayer.removeMany(this.updateGraphics.toArray()),this.updateGraphics.removeAll(),n&&n.remove(this._internalGraphicsLayer),this._restorePopup(t),this.emit(`update`,{graphics:r,state:`complete`,aborted:e.cancelled,tool:i,toolEventInfo:null,type:`update`})}})}_getCommonUpdateOperationClickHandlers(e,t,n){return this._updatingHandles.addPromise(this._handleCommonUpdateOperationClick(e,t,n))}async _handleCommonUpdateOperationClick(e,t,n){let r=L(t),i=await t.defer(()=>this._getFirstHit(r));if(i==null){this.cancelUpdateOnClickAway&&e.complete();return}let a=t.native.shiftKey?this._toggleSelection([i.graphic],e,n):null;a?(t.stopPropagation(),await a):this.updateGraphics.includes(i.graphic)?this._shouldTemporarilyDisablePopup(n)&&t.stopPropagation():e.complete()}async _toggleSelection(e,t,n){let r=!!n.multipleSelectionEnabled;for(let n of e)if(n!=null&&r&&this.hasGraphic(n))return this.updateGraphics.includes(n)?await t.removeFromSelection(n):await t.addToSelection(n)}_getCommonUpdateOperationKeyDownHandlers(e,t){if(!e)return;let n=t.key;n===A.undo&&e.canUndo()?(t.stopPropagation(),e.undo()):n===A.redo&&e.canRedo()?(t.stopPropagation(),e.redo()):n===A.cancel?(t.stopPropagation(),e.cancel()):this.allowDeleteKey&&A.delete.includes(n)&&this._onDeleteKey(t)}_onDeleteKey(e){this._operationHandle&&this._operationHandle.type===`update`&&this.activeComponent!=null&&(e.stopPropagation(),this.delete())}_removeDefaultLayer(){this._internalGraphicsLayer&&=(this.view?.map?.remove(this._internalGraphicsLayer),d(this._internalGraphicsLayer))}_isComponentGraphic(e){let{activeComponent:t}=this;return!e||t==null?!1:e.attributes?.esriSketchTool||t.type===`draw-2d`&&t.graphic===e||(t.type===`box`||t.type===`reshape`)&&t.isUIGraphic(e)}_clearCursor(){this.removeHandles(U)}_displayCursor(e){this.removeHandles(U),this.view?.container&&e!=null&&this.addHandles(this.view.acquireCursor(e,`high`),U)}_logError(e,t,n){u.getLogger(this).error(new i(e,t,n))}async _requireModule(e){let t=new AbortController;this._moduleLoaderAbortController=t;let n=await e;return this._moduleLoaderAbortController!==t||t.signal.aborted?{requireError:`aborted`}:{module:n}}_emitUndoEvent(e){this.emit(`undo`,{...e,type:`undo`})}_emitRedoEvent(e){this.emit(`redo`,{...e,type:`redo`})}_emitDeleteEvent(e){this.emit(`delete`,{...e,type:`delete`})}_onLayerGraphicsChangeCallback(e){if(this._operationHandle!=null){let{updateGraphics:t}=this;for(let n of e.removed)if(t.includes(n)){if(t.length>1)this._updatingHandles.consumePromise(this._operationHandle.removeFromSelection(n));else{this._operationHandle.cancel();break}}}}async _setupAdvancedDrawToolIntegrationMaybe(){this.isUsingLegacyCreateTools||this.pluginManager.loaded||await this.pluginManager.loadPlugins()}async _setupDrawTool(e,n,r){if(this.isUsingLegacyCreateTools||!this._pluginManager)return null;let i=this.view,a=await import(`../../views/draw/DrawTool.js`);await this.pluginManager.loadPlugins();let o=await this.pluginManager.makeRenderer({customSymbol:n.graphicSymbol,useTextSymbol:r===`text`}),s=new a.DrawTool({view:i,elevationInfo:this._layerAdapter?.elevationInfo??pe(i.type===`3d`),hasZ:!!n.hasZ,toolOptions:this._operationToolOptions,renderer:o,defaultZ:n.defaultZ??0,directionOptions:n.directionOptions,snappingManager:this._operationSnappingManager,enableVertexVisuals:r!==`rectangle`&&r!==`circle`,readPluginSetting:(e,t)=>this.settingsManager.getValue(t)});s.addHandles(l(o));let c=new t({...n.graphicProperties,attributes:{...n.graphicProperties?.attributes},symbol:n.graphicSymbol??this._getGraphicSymbolFromTool(r)});return n.graphicSymbol||s.addHandles(_(()=>this._getGraphicSymbolFromTool(r),e=>c.symbol=e)),this._set(`createGraphic`,c),i.addAndActivateTool(s),s.begin(e),s}get test(){}wait(){return y(()=>!this.updating)}_shouldTemporarilyDisablePopup(e){return this.updateOnGraphicClick||(e?.toggleToolOnClick??!1)}_disablePopup(e){this._shouldTemporarilyDisablePopup(e)&&this.view&&this._originalPopupEnabled==null&&(this._originalPopupEnabled=this.view.popupEnabled,this.view.popupEnabled=!1)}_restorePopup(e){this._shouldTemporarilyDisablePopup(e)&&this.view&&this._originalPopupEnabled!=null&&(this.view.popupEnabled=this._originalPopupEnabled,this._originalPopupEnabled=null)}async _waitViewReady(){let e=this.view;e?(f(this._viewReadyAbortController),this._viewReadyAbortController=new AbortController,await g(y(()=>e?.ready),this._viewReadyAbortController.signal)):this._logMissingView()}_logMissingView(){this._logError(`sketch:missing-property`,K(`view`))}_logMissingLayer(){this._logError(Re,K(`layer`))}};e([b()],G.prototype,`_defaultSnappingManager`,void 0),e([b()],G.prototype,`_operationContext`,void 0),e([b()],G.prototype,`_layerAdapter`,null),e([b()],G.prototype,`_pluginManager`,void 0),e([b({readOnly:!0})],G.prototype,`settingsManager`,void 0),e([b()],G.prototype,`_operationHandle`,void 0),e([b({readOnly:!0})],G.prototype,`_updatingHandles`,void 0),e([b({readOnly:!0})],G.prototype,`_toolTransitionHandles`,void 0),e([b()],G.prototype,`_drawToolSimplifyAbortController`,void 0),e([b({readOnly:!0})],G.prototype,`activeTool`,null),e([b()],G.prototype,`geometrySimplificationInProgress`,null),e([b({readOnly:!0})],G.prototype,`activeCreateToolDrawMode`,null),e([b()],G.prototype,`activeTooltip`,null),e([b({types:E})],G.prototype,`activeFillSymbol`,void 0),e([b()],G.prototype,`activeLineSymbol`,void 0),e([b()],G.prototype,`activeVertexSymbol`,void 0),e([b()],G.prototype,`allowDeleteKey`,void 0),e([b({readOnly:!0})],G.prototype,`createGraphic`,null),e([b()],G.prototype,`defaultCreateOptions`,null),e([b()],G.prototype,`defaultUpdateOptions`,null),e([b()],G.prototype,`activeUpdateOptions`,void 0),e([b({type:M,nonNullable:!0})],G.prototype,`labelOptions`,null),e([b()],G.prototype,`layer`,void 0),e([b({types:E})],G.prototype,`pointSymbol`,void 0),e([b({types:E})],G.prototype,`polygonSymbol`,void 0),e([b({types:E})],G.prototype,`polylineSymbol`,void 0),e([b()],G.prototype,`meshSymbol`,void 0),e([b({type:T})],G.prototype,`textSymbol`,null),e([b({type:F,nonNullable:!0})],G.prototype,`snappingOptions`,null),e([b()],G.prototype,`snappingManager`,null),e([b({readOnly:!0})],G.prototype,`state`,null),e([b()],G.prototype,`toolTransitionInProgress`,null),e([b({type:Se,nonNullable:!0})],G.prototype,`tooltipOptions`,null),e([b({readOnly:!0})],G.prototype,`updateGraphics`,void 0),e([b()],G.prototype,`updateOnGraphicClick`,void 0),e([b()],G.prototype,`useViewOptions`,void 0),e([b()],G.prototype,`cancelUpdateOnClickAway`,void 0),e([b()],G.prototype,`updating`,null),e([b()],G.prototype,`creationMode`,void 0),e([b({type:Ce,nonNullable:!0})],G.prototype,`valueOptions`,null),e([b({types:E})],G.prototype,`vertexSymbol`,void 0),e([b({value:null})],G.prototype,`view`,null),e([b({constructOnly:!0,type:N})],G.prototype,`sketchOptions`,void 0),e([b()],G.prototype,`useLegacyCreateTools`,void 0),e([b()],G.prototype,`isUsingLegacyCreateTools`,null),e([b()],G.prototype,`pluginManager`,null),e([b()],G.prototype,`drawTool`,null),e([b()],G.prototype,`activePluginConfigurations`,null),e([b()],G.prototype,`rootPlugins`,null),e([b()],G.prototype,`effectiveAvailablePlugins`,null),e([b()],G.prototype,`firstPluginWithSwappableLeaf`,null),e([b()],G.prototype,`multiplePluginsActive`,null),G=e([re(`esri.widgets.Sketch.SketchViewModel`)],G);const Re=`sketch:missing-property`,K=e=>`Property '${e}' is missing on SketchViewModel.`;function ze(e){return e===`polygon`||e===`rectangle`||e===`circle`}function q(e,t){Y(`undo`,e.history.undo,e.history.redo,t)}function J(e,t){Y(`redo`,e.history.redo,e.history.undo,t)}function Y(e,t,n,r){let i=t.pop();if(!i)return;let a=i.updates,o=[];r.forEach((t,n)=>{let r=a[n];r!=null&&(`geometry`in r&&r.geometry!=null&&(o.push({geometry:t.geometry}),t.geometry=r.geometry),`symbol`in r&&r.symbol!=null&&(o.push({symbol:t.symbol}),t.symbol=r.symbol),`undo`in r&&(o.push(r),r[e](t)))}),n.push({updates:o})}function X(e,t){e!=null&&t.hasGrabbedManipulators&&(e.activeTool=null)}function Z(e){return{updates:e.map(({geometry:e})=>e?.type===`mesh`?{geometry:e.cloneShallow()}:{geometry:e})}}function Q(e,t){e.tools?.remove(t),t.destroyed||t.destroy()}function $(e){return`requireError`in e&&e.requireError===`aborted`}export{G as default};
@@ -5,6 +5,7 @@ import type MapView from "../../views/MapView.js";
5
5
  import type { ReadonlyArrayOrCollection } from "../../core/Collection.js";
6
6
  import type { Direction, State } from "./types.js";
7
7
 
8
+ /** @deprecated since 5.2. Use the [Swipe component](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-swipe/) instead. */
8
9
  export interface SwipeViewModelProperties extends Partial<Pick<SwipeViewModel, "direction" | "position" | "step" | "stepMultiplier" | "view">> {
9
10
  /**
10
11
  * A collection of [Layer](https://developers.arcgis.com/javascript/latest/references/core/layers/Layer/)s that will show on the left or top side of the Swipe.
@@ -25,6 +26,7 @@ export interface SwipeViewModelProperties extends Partial<Pick<SwipeViewModel, "
25
26
  /**
26
27
  * Provides the logic for the [Swipe widget](https://developers.arcgis.com/javascript/latest/references/core/widgets/Swipe/) and [component](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-swipe/).
27
28
  *
29
+ * @deprecated since 5.2. Use the [Swipe component](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-swipe/) instead.
28
30
  * @since 4.13
29
31
  * @see [Swipe widget](https://developers.arcgis.com/javascript/latest/references/core/widgets/Swipe/) - _Deprecated since 4.32. Use the [Swipe component](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-swipe/) instead._
30
32
  * @see [Programming patterns: Widget viewModel pattern](https://developers.arcgis.com/javascript/latest/programming-patterns/#widget-viewmodel-pattern)
@@ -1,13 +1,20 @@
1
- /** @since 5.0 */
1
+ /**
2
+ * @deprecated since 5.2. Use the Swipe component's [`state`](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-swipe/#state) property instead.
3
+ * @since 5.0
4
+ */
2
5
  export type State = "ready" | "disabled";
3
6
 
4
- /** @since 5.0 */
7
+ /**
8
+ * @deprecated since 5.2. Use the Swipe component's [`direction`](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-swipe/#direction) property instead.
9
+ * @since 5.0
10
+ */
5
11
  export type Direction = "vertical" | "horizontal";
6
12
 
7
13
  /**
8
14
  * The visible elements that are displayed within the widget.
9
15
  * This provides the ability to turn individual elements of the widget's display on/off.
10
16
  *
17
+ * @deprecated since 5.2. Use the Swipe component's [`hideHandle`](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-swipe/#hideHandle) and [`hideDivider`](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-swipe/#hideDivider) properties instead.
11
18
  * @since 5.0
12
19
  */
13
20
  export interface VisibleElements {