@arcgis/core 6.0.0-next.1 → 6.0.0-next.3

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 (106) hide show
  1. package/analysis/DimensionSimpleStyle.js +1 -1
  2. package/assets/esri/core/workers/RemoteClient.js +1 -1
  3. package/assets/esri/core/workers/chunks/01803f76bc0d9f2cd566.js +1 -0
  4. package/assets/esri/core/workers/chunks/{a7325ebb7edf3273bb34.js → 12b84262dedc6b393136.js} +1 -1
  5. package/assets/esri/core/workers/chunks/19bb07942c265d64e321.js +1 -0
  6. package/assets/esri/core/workers/chunks/25e6013e2c095629b236.js +1 -0
  7. package/assets/esri/core/workers/chunks/261fea092ee7d27608a0.js +1 -0
  8. package/assets/esri/core/workers/chunks/347bf269c2b1583d2dca.js +1 -0
  9. package/assets/esri/core/workers/chunks/{8af92bcc075e03e3e902.js → 512628db534605a2a93e.js} +22 -22
  10. package/assets/esri/core/workers/chunks/5e4d6c283c2fa28db022.js +1 -0
  11. package/assets/esri/core/workers/chunks/64770e2cf41211b63fd2.js +1 -0
  12. package/assets/esri/core/workers/chunks/{ffb3728e6ac428f62af1.js → 71103472c45928bd730c.js} +1 -1
  13. package/assets/esri/core/workers/chunks/73a87fb270818aa75fc5.js +1 -0
  14. package/assets/esri/core/workers/chunks/7ef182e24cad50815b4e.js +1 -0
  15. package/assets/esri/core/workers/chunks/8313c626596a76c7449d.js +1 -0
  16. package/assets/esri/core/workers/chunks/84e9258a57d8c365f361.js +1 -0
  17. package/assets/esri/core/workers/chunks/{b0cfec11c758eed8095f.js → 87b4e916b2668203a6b0.js} +1 -1
  18. package/assets/esri/core/workers/chunks/{40fb1910f780e78c128c.js → 8b54589f173259c1ba55.js} +1 -1
  19. package/assets/esri/core/workers/chunks/{61ad8306ab79aca79505.js → 8ba32d3a0df4a206ef1c.js} +1 -1
  20. package/assets/esri/core/workers/chunks/{aa1054834738aef48bda.js → a0356702f2d3f787aeac.js} +1 -1
  21. package/assets/esri/core/workers/chunks/ac4cc49104d26c384e98.js +1 -0
  22. package/assets/esri/core/workers/chunks/b1008bdfca995ebf98ed.js +1 -0
  23. package/assets/esri/core/workers/chunks/bc7b9a5a8942aa3ea249.js +1 -0
  24. package/assets/esri/core/workers/chunks/d4926545193414cf2f16.js +1 -0
  25. package/assets/esri/core/workers/chunks/ec28e18275d36e71b438.js +1 -0
  26. package/assets/esri/core/workers/chunks/{050c4b212f2b5691db34.js → f762f70e7d39634ce797.js} +1 -1
  27. package/assets/esri/core/workers/chunks/{32d08b571bbd996d4e6d.js → fb4ff0ac2bc445fec413.js} +1 -1
  28. package/assets/esri/core/workers/chunks/{4310c8d2b40ae69c3681.js → fccbb902fe08448f91de.js} +1 -1
  29. package/assets/esri/libs/librust-parquet/pkg/parquet_bg.wasm +0 -0
  30. package/chunks/RibbonLine.glsl.js +9 -11
  31. package/config.js +1 -1
  32. package/core/screenUtils.js +1 -1
  33. package/kernel.js +1 -1
  34. package/layers/GeospatialPDFLayer.d.ts +2 -5
  35. package/layers/GeospatialPDFLayer.js +1 -1
  36. package/layers/ParquetLayer.d.ts +8 -1
  37. package/layers/ParquetLayer.js +1 -1
  38. package/layers/geospatialPDF/renderExtentUtils.js +1 -1
  39. package/package.json +3 -3
  40. package/smartMapping/renderers/support/spikeUtils.js +3 -3
  41. package/symbols/LineSymbol3DLayer.js +1 -1
  42. package/symbols/callouts/LineCallout3D.js +1 -1
  43. package/symbols/cim/CIMSymbolDrawHelper.js +1 -1
  44. package/symbols/edges/Edges3D.js +1 -1
  45. package/symbols/support/Symbol3DIconOutline.js +1 -1
  46. package/symbols/support/Symbol3DOutline.js +1 -1
  47. package/symbols/support/Symbol3DTextBorder.js +1 -1
  48. package/symbols/support/defaults3D.js +1 -1
  49. package/views/2d/analysis/AreaMeasurement/AreaMeasurementTool.js +1 -1
  50. package/views/2d/analysis/AreaMeasurementAnalysisView2D.d.ts +2 -0
  51. package/views/2d/analysis/AreaMeasurementAnalysisView2D.js +1 -1
  52. package/views/2d/analysis/DistanceMeasurement/DistanceMeasurementTool.js +1 -1
  53. package/views/2d/analysis/DistanceMeasurementAnalysisView2D.d.ts +2 -0
  54. package/views/2d/analysis/DistanceMeasurementAnalysisView2D.js +1 -1
  55. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedMarkerMeshWriter.js +1 -1
  56. package/views/2d/engine/webgl/shaderGraph/techniques/markers/MarkerMeshWriter.js +1 -1
  57. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/LineShader.js +1 -1
  58. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/TexturedLineShader.js +1 -1
  59. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextMeshWriter.js +1 -1
  60. package/views/3d/analysis/LineOfSight/LineOfSightEditTool.js +1 -1
  61. package/views/3d/analysis/LineOfSight/LineOfSightItemManipulatedObject3D.js +1 -1
  62. package/views/3d/analysis/LineOfSight/LineOfSightItemTool.js +1 -1
  63. package/views/3d/analysis/LineOfSight/LineOfSightPlacementController.js +1 -1
  64. package/views/3d/analysis/LineOfSight/lineOfSightPlacementUtils.js +1 -1
  65. package/views/3d/analysis/Viewshed/ViewshedPlacementController.js +1 -1
  66. package/views/3d/analysis/Viewshed/ViewshedPlacementPointPlugin.js +1 -1
  67. package/views/3d/analysis/Viewshed/placementUtils.js +1 -1
  68. package/views/3d/interactive/SnappingVisualizer3D.js +1 -1
  69. package/views/3d/interactive/editingTools/move/MoveTool3D.js +1 -1
  70. package/views/3d/interactive/visualElements/ExtendedLineVisualElement.js +1 -1
  71. package/views/3d/interactive/visualElements/ParallelLineVisualElement.js +1 -1
  72. package/views/3d/interactive/visualElements/RightAngleQuadVisualElement.js +1 -1
  73. package/views/3d/layers/GaussianSplatLayerView3D.js +1 -1
  74. package/views/3d/layers/graphics/Graphics3DIconSymbolLayer.js +1 -1
  75. package/views/3d/layers/graphics/Graphics3DLineSymbolLayer.js +1 -1
  76. package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js +3 -3
  77. package/views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js +23 -9
  78. package/views/DOMContainer.d.ts +1 -0
  79. package/views/draw/support/PluginContext.js +1 -1
  80. package/views/draw/support/managers/TooltipManager.js +1 -1
  81. package/views/interactive/snapping/SnappingVisualizer.js +1 -1
  82. package/views/interactive/tooltip/infos/DynamicTooltipInfo.js +1 -1
  83. package/views/layers/FeatureLikeLayerView.d.ts +1 -0
  84. package/views/layers/GraphicsLayerView.d.ts +1 -0
  85. package/views/layers/ImageryLayerView.d.ts +1 -0
  86. package/widgets/Editor/workflowUtils.js +1 -1
  87. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  88. package/widgets/OrientedImageryViewer/types.d.ts +20 -0
  89. package/widgets/OrientedImageryViewer.d.ts +9 -1
  90. package/widgets/support/SelectionList/FeatureItem.d.ts +9 -2
  91. package/assets/esri/core/workers/chunks/01b00fbf6a6a22d573ee.js +0 -1
  92. package/assets/esri/core/workers/chunks/084222c00d263a534952.js +0 -1
  93. package/assets/esri/core/workers/chunks/1f3148cebee1961249a4.js +0 -1
  94. package/assets/esri/core/workers/chunks/37a636f61cfe89c6bfd1.js +0 -1
  95. package/assets/esri/core/workers/chunks/380cc538c1ab453870fa.js +0 -1
  96. package/assets/esri/core/workers/chunks/4848f195eb93cc93dd15.js +0 -1
  97. package/assets/esri/core/workers/chunks/750a9f3cdb96b966274a.js +0 -1
  98. package/assets/esri/core/workers/chunks/897fc8e78a0d54a5ff5a.js +0 -1
  99. package/assets/esri/core/workers/chunks/9432feca48ca3e5849bd.js +0 -1
  100. package/assets/esri/core/workers/chunks/956a40f40bde416efe93.js +0 -1
  101. package/assets/esri/core/workers/chunks/985b3f18cee87c3fe022.js +0 -1
  102. package/assets/esri/core/workers/chunks/ae2181805d8ba130babc.js +0 -1
  103. package/assets/esri/core/workers/chunks/ca7fb75e2c62e7d37122.js +0 -1
  104. package/assets/esri/core/workers/chunks/cfae60b9d2f2939e9c16.js +0 -1
  105. package/assets/esri/core/workers/chunks/d6d5a9e73ee43d6066d3.js +0 -1
  106. package/assets/esri/core/workers/chunks/e7c60bd85abbd36cdc64.js +0 -1
@@ -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"../../../core/Accessor.js";import n from"../../../core/Error.js";import{makeHandle as r}from"../../../core/handleUtils.js";import{createScalar as i,createLength as a,toUnit as o}from"../../../core/quantity.js";import{generateUUID as s}from"../../../core/uuid.js";import{property as c}from"../../../core/accessorSupport/decorators/property.js";import{subclass as l}from"../../../core/accessorSupport/decorators/subclass.js";import{isWebMercator as u,isGeographic as d}from"../../../geometry/support/spatialReferenceUtils.js";import{createViewAlignedCoordinateSystem as f}from"./surfaceCoordinateSystems.js";import{knownFieldDisplayOrders as p}from"./types.js";import{createGeographicCoordinate as m}from"../../interactive/tooltip/fields/parsingAndFormattingUtils.js";import{elevationFromPoint as h}from"../../support/euclideanLengthMeasurementUtils.js";const g={x:p.Coordinates+10,y:p.Coordinates+11,elevation:p.Coordinates+12};let _=class extends t{constructor(e){super(e)}normalizeCtorArgs(e){let{drawTool:t,plugin:n,...r}=e;return{_drawTool:t,_plugin:n,...r}}get positionOfLastUserInput(){return this._drawTool.positionOfLastUserInput}get elevationConstraint(){return this._drawTool.tooltipManager?.elevationConstraint}getSession(e){return this._drawTool.editSessionManager.getSession(e)}readBooleanSetting(e){let t=this._plugin.configuration?.uniqueId;if(t)return this._drawTool.readPluginSettingValue(t,e)}createInteractiveHandle(e,t){let r=this._drawTool.interactiveHandleManager,a=this._drawTool.tooltipManager,o=this._plugin,c=this.session,l=this._drawTool.coordinateHelper;if(!r||!a)throw new n(`draw-tool:interactive-handle-missing-dependencies`,`Attempted to set up an interactive handle without required dependencies.`);let f=e.name??s(),p=e.defaultCaptureMode??`capture-always`,h=r.registerHandle(o,{...e,name:f,editSession:c,defaultCaptureMode:p,captureMode:p});if(this._drawTool.addPromise(r.setupManipulatorForHandle(h,this._drawTool.lastScreenPosition,this._drawTool.movementCommandContext)),!t?.disableDefaultXYFields){let e=l.spatialReference;u(e)||d(e)?(a.createMeasuredField(o,{id:Symbol(`tooltip-long-${f}`),preset:`longitude`,getMeasurementInput:()=>h.outputMapPosition,measure:async e=>m(e?.longitude),fieldProperties:{displayOrder:g.x},fieldFilters:{appliesToHandlesWithName:f}}),a.createMeasuredField(o,{id:Symbol(`tooltip-lat-${f}`),preset:`latitude`,getMeasurementInput:()=>h.outputMapPosition,measure:async e=>m(e?.latitude),fieldProperties:{displayOrder:g.y},fieldFilters:{appliesToHandlesWithName:f}})):(a.createMeasuredField(o,{id:Symbol(`tooltip-x-${f}`),preset:`x`,getMeasurementInput:()=>h.outputMapPosition,measure:async e=>e?i(e.x):null,fieldProperties:{displayOrder:g.x},fieldFilters:{appliesToHandlesWithName:f}}),a.createMeasuredField(o,{id:Symbol(`tooltip-y-${f}`),preset:`y`,getMeasurementInput:()=>h.outputMapPosition,measure:async e=>e?i(e.y):null,fieldProperties:{displayOrder:g.y},fieldFilters:{appliesToHandlesWithName:f}})),this._drawTool.hasZ&&h.role===`primary`&&a.createMeasuredField(o,{id:Symbol(`tooltip-z-${f}`),preset:`elevation`,getMeasurementInput:()=>h.outputMapPosition,measure:async(e,t)=>this.measureElevation(e,t.inputUnitInfos.verticalLength.unit),fieldProperties:{displayOrder:g.elevation},fieldFilters:{appliesToHandlesWithName:f}})}return h}removeInteractiveHandle(e){let t=e;this._drawTool.interactiveHandleManager?.unregisterHandle(this._plugin,t)}createConstraint(e,t){this._drawTool.interactiveHandleManager?.registerCustomConstraint(this._plugin,e,t)}removeConstraint(e){this._drawTool.interactiveHandleManager?.unregisterCustomConstraint(this._plugin,e)}createCustomField(e){if(!this._drawTool.tooltipManager)throw new n(`draw-tool:tooltip-manager-missing`,`Attempted to create a field without access to a tooltip manager.`);return this._drawTool.tooltipManager.createCustomField(this._plugin,e)}createMeasuredField(e){if(!this._drawTool.tooltipManager)throw new n(`draw-tool:tooltip-manager-missing`,`Attempted to create a field without access to a tooltip manager.`);return this._drawTool.tooltipManager.createMeasuredField(this._plugin,e)}requestComplete(){this._drawTool.complete(this._plugin)}requestCancel(e){this._drawTool.lifecycleManager.cancel(this._plugin)}requestBeginDownstreamPlugin(e,t){this._drawTool.lifecycleManager.begin([e],this._plugin,t?.cancelExisting)}async measureLength(e,t,n,r){let{_drawTool:i,_plugin:a}=this;if(n!==`tooltip`||i.tooltipManager?.effectiveEnabled)return await i.measurementManager.measureLength(a,t,e,r)}async measureArea(e,t,n,r){let{_drawTool:i,_plugin:a}=this;if(n!==`tooltip`||i.tooltipManager?.effectiveEnabled)return await i.measurementManager.measureArea(a,t,e,r)}async measureDistance(e,t,n,r){let{_drawTool:i,_plugin:a}=this;if(n!==`tooltip`||i.tooltipManager?.effectiveEnabled)return await i.measurementManager.measureDistance(a,t,e,r)}measureElevation(e,t){let n=this._drawTool,r=h(e);if(!r){let e=n.surfaceManager?.metersPerVerticalUnit;e&&(r=a(n.defaultZ*e,`meters`))}return t&&r&&r.unit!==t?o(r,t):r}getGlobalState(){return this._drawTool.globalStateManager.getGlobalState()}setGlobalState(e,t){this._drawTool.globalStateManager.setGlobalState(this._plugin,e,t)}addOrUpdateGraphic(e,t){let{_plugin:n,_drawTool:i}=this,a=i.renderer;a?.addOrUpdateGraphic(e,t),n.hasHandles(e)||n.addHandles(r(()=>a?.removeGraphic(e)),e)}addOrUpdateVisual(e,t){let n=this._plugin,i=this._drawTool.renderer;i?.addOrUpdateVisual(e,t),n.hasHandles(e)||n.addHandles(r(()=>i?.removeVisual(e)),e)}removeGraphic(e){this._plugin.removeHandles(e)}removeVisual(e){this._plugin.removeHandles(e)}getViewInformation(){return this._drawTool.view}getViewAlignedSurfaceCoordinateSystem(e){let{view:t,coordinateHelper:n}=this._drawTool;return!t||!n?null:f(t,n.pointToVector(e))}};e([c()],_.prototype,`_plugin`,void 0),e([c()],_.prototype,`_drawTool`,void 0),e([c({nonNullable:!0})],_.prototype,`session`,void 0),e([c()],_.prototype,`positionOfLastUserInput`,null),e([c()],_.prototype,`elevationConstraint`,null),_=e([l(`esri.views.draw.support.PluginContext`)],_);export{_ as PluginContext};
2
+ import{__decorate as e}from"tslib";import t from"../../../core/Accessor.js";import n from"../../../core/Error.js";import{makeHandle as r}from"../../../core/handleUtils.js";import{createScalar as i,createLength as a,toUnit as o}from"../../../core/quantity.js";import{generateUUID as s}from"../../../core/uuid.js";import{property as c}from"../../../core/accessorSupport/decorators/property.js";import{subclass as l}from"../../../core/accessorSupport/decorators/subclass.js";import{isWebMercator as u,isGeographic as d}from"../../../geometry/support/spatialReferenceUtils.js";import{getEffectiveElevationMode as f}from"../../../support/elevationInfoUtils.js";import{createViewAlignedCoordinateSystem as p}from"./surfaceCoordinateSystems.js";import{knownFieldDisplayOrders as m}from"./types.js";import{createGeographicCoordinate as h}from"../../interactive/tooltip/fields/parsingAndFormattingUtils.js";import{elevationFromPoint as g}from"../../support/euclideanLengthMeasurementUtils.js";const _={x:m.Coordinates+10,y:m.Coordinates+11,elevation:m.Coordinates+12};let v=class extends t{constructor(e){super(e)}normalizeCtorArgs(e){let{drawTool:t,plugin:n,...r}=e;return{_drawTool:t,_plugin:n,...r}}get positionOfLastUserInput(){return this._drawTool.positionOfLastUserInput}get elevationConstraint(){return this._drawTool.tooltipManager?.elevationConstraint}getSession(e){return this._drawTool.editSessionManager.getSession(e)}readBooleanSetting(e){let t=this._plugin.configuration?.uniqueId;if(t)return this._drawTool.readPluginSettingValue(t,e)}createInteractiveHandle(e,t){let r=this._drawTool.interactiveHandleManager,a=this._drawTool.tooltipManager,o=this._plugin,c=this.session,l=this._drawTool.coordinateHelper;if(!r||!a)throw new n(`draw-tool:interactive-handle-missing-dependencies`,`Attempted to set up an interactive handle without required dependencies.`);let p=e.name??s(),m=e.defaultCaptureMode??`capture-always`,g=r.registerHandle(o,{...e,name:p,editSession:c,defaultCaptureMode:m,captureMode:m});if(this._drawTool.addPromise(r.setupManipulatorForHandle(g,this._drawTool.lastScreenPosition,this._drawTool.movementCommandContext)),!t?.disableDefaultXYFields){let e=l.spatialReference;if(u(e)||d(e)?(a.createMeasuredField(o,{id:Symbol(`tooltip-long-${p}`),preset:`longitude`,getMeasurementInput:()=>g.outputMapPosition,measure:async e=>h(e?.longitude),fieldProperties:{displayOrder:_.x},fieldFilters:{appliesToHandlesWithName:p}}),a.createMeasuredField(o,{id:Symbol(`tooltip-lat-${p}`),preset:`latitude`,getMeasurementInput:()=>g.outputMapPosition,measure:async e=>h(e?.latitude),fieldProperties:{displayOrder:_.y},fieldFilters:{appliesToHandlesWithName:p}})):(a.createMeasuredField(o,{id:Symbol(`tooltip-x-${p}`),preset:`x`,getMeasurementInput:()=>g.outputMapPosition,measure:async e=>e?i(e.x):null,fieldProperties:{displayOrder:_.x},fieldFilters:{appliesToHandlesWithName:p}}),a.createMeasuredField(o,{id:Symbol(`tooltip-y-${p}`),preset:`y`,getMeasurementInput:()=>g.outputMapPosition,measure:async e=>e?i(e.y):null,fieldProperties:{displayOrder:_.y},fieldFilters:{appliesToHandlesWithName:p}})),this._drawTool.hasZ&&g.role===`primary`){let e=a.createMeasuredField(o,{id:Symbol(`tooltip-z-${p}`),preset:`elevation`,getMeasurementInput:()=>g.outputMapPosition,measure:async(e,t)=>this.measureElevation(e,t.inputUnitInfos.verticalLength.unit),fieldProperties:{displayOrder:_.elevation},fieldFilters:{appliesToHandlesWithName:p}}).field,{view:t,hasZ:n,elevationInfo:r}=this._drawTool;t.type===`3d`&&f(n,r)!==`absolute-height`&&!e.locked&&e.lock(this.measureElevation(null))}}return g}removeInteractiveHandle(e){let t=e;this._drawTool.interactiveHandleManager?.unregisterHandle(this._plugin,t)}createConstraint(e,t){this._drawTool.interactiveHandleManager?.registerCustomConstraint(this._plugin,e,t)}removeConstraint(e){this._drawTool.interactiveHandleManager?.unregisterCustomConstraint(this._plugin,e)}createCustomField(e){if(!this._drawTool.tooltipManager)throw new n(`draw-tool:tooltip-manager-missing`,`Attempted to create a field without access to a tooltip manager.`);return this._drawTool.tooltipManager.createCustomField(this._plugin,e)}createMeasuredField(e){if(!this._drawTool.tooltipManager)throw new n(`draw-tool:tooltip-manager-missing`,`Attempted to create a field without access to a tooltip manager.`);return this._drawTool.tooltipManager.createMeasuredField(this._plugin,e)}requestComplete(){this._drawTool.complete(this._plugin)}requestCancel(e){this._drawTool.lifecycleManager.cancel(this._plugin)}requestBeginDownstreamPlugin(e,t){this._drawTool.lifecycleManager.begin([e],this._plugin,t?.cancelExisting)}async measureLength(e,t,n,r){let{_drawTool:i,_plugin:a}=this;if(n!==`tooltip`||i.tooltipManager?.effectiveEnabled)return await i.measurementManager.measureLength(a,t,e,r)}async measureArea(e,t,n,r){let{_drawTool:i,_plugin:a}=this;if(n!==`tooltip`||i.tooltipManager?.effectiveEnabled)return await i.measurementManager.measureArea(a,t,e,r)}async measureDistance(e,t,n,r){let{_drawTool:i,_plugin:a}=this;if(n!==`tooltip`||i.tooltipManager?.effectiveEnabled)return await i.measurementManager.measureDistance(a,t,e,r)}measureElevation(e,t){let n=this._drawTool,r=g(e);if(!r){let e=n.surfaceManager?.metersPerVerticalUnit;e&&(r=a(n.defaultZ*e,`meters`))}return t&&r&&r.unit!==t?o(r,t):r}getGlobalState(){return this._drawTool.globalStateManager.getGlobalState()}setGlobalState(e,t){this._drawTool.globalStateManager.setGlobalState(this._plugin,e,t)}addOrUpdateGraphic(e,t){let{_plugin:n,_drawTool:i}=this,a=i.renderer;a?.addOrUpdateGraphic(e,t),n.hasHandles(e)||n.addHandles(r(()=>a?.removeGraphic(e)),e)}addOrUpdateVisual(e,t){let n=this._plugin,i=this._drawTool.renderer;i?.addOrUpdateVisual(e,t),n.hasHandles(e)||n.addHandles(r(()=>i?.removeVisual(e)),e)}removeGraphic(e){this._plugin.removeHandles(e)}removeVisual(e){this._plugin.removeHandles(e)}getViewInformation(){return this._drawTool.view}getViewAlignedSurfaceCoordinateSystem(e){let{view:t,coordinateHelper:n}=this._drawTool;return!t||!n?null:p(t,n.pointToVector(e))}};e([c()],v.prototype,`_plugin`,void 0),e([c()],v.prototype,`_drawTool`,void 0),e([c({nonNullable:!0})],v.prototype,`session`,void 0),e([c()],v.prototype,`positionOfLastUserInput`,null),e([c()],v.prototype,`elevationConstraint`,null),v=e([l(`esri.views.draw.support.PluginContext`)],v);export{v as PluginContext};
@@ -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"../../../../core/Accessor.js";import{createTask as n}from"../../../../core/asyncUtils.js";import r from"../../../../core/Error.js";import{getOrCreateMapValue as i}from"../../../../core/MapUtils.js";import{destroyMaybe as a}from"../../../../core/maybe.js";import o from"../../../../core/ReactiveMap.js";import{watch as s,syncAndInitial as c,initial as l}from"../../../../core/reactiveUtils.js";import{property as u}from"../../../../core/accessorSupport/decorators.js";import{subclass as d}from"../../../../core/accessorSupport/decorators/subclass.js";import{UpdatingHandles as f}from"../../../../core/support/UpdatingHandles.js";import{isLoaded as p,load as m}from"../../../../geometry/coordinateFormatter.js";import{absoluteHeightElevationInfo as h}from"../../../../support/elevationInfoUtils.js";import{ManagedTooltipField as g}from"../ManagedTooltipField.js";import{getConstraintContext as _}from"../../../interactive/sketch/constraintUtils.js";import{makeTooltip as v}from"../../../interactive/tooltip/tooltipCommonUtils.js";import{makeScalarField as y,makeOrientationField as b,makeAreaField as x,makeLengthField as S,makeRadiusField as C,makeTotalLengthField as w,makeSizeField as T,makeScaleField as E,makeYField as D,makeXField as O,makeLongitudeField as k,makeLatitudeField as A,makeElevationField as j,makeDistanceField as M,makeDirectionField as N}from"../../../interactive/tooltip/fields/fields.js";import{TooltipField as P}from"../../../interactive/tooltip/fields/TooltipField.js";import{DynamicTooltipInfo as F,isKnownConstraintField as I}from"../../../interactive/tooltip/infos/DynamicTooltipInfo.js";let L=class extends t{constructor(e){super(e),this._pluginTooltipFieldRegistry=new o,this._updatingHandles=new f,this._coordinateFormatterLoadTask=null,this._constraintSnapshot=null,this.constraintsEnabled=!0,this.keepTooltipAliveEvenWhenTooltipsAreNotEnabled=!1,this.enabled=!0}initialize(){this.addHandles([s(()=>[this.effectiveEnabled,this.context?.view,this.context?.toolOptions],([e,t,n])=>{let{context:r}=this;e&&t&&n?(this._tooltipInfo??=new F({toolOptions:n,getAllFields:()=>this.allFields,getActiveHandle:()=>this.effectiveActiveHandle,getHelpMessageKey:()=>this.context?.getHelpMessageKey(),viewType:t.type}),this._tooltip||this._setupTooltip(r)):(this._tooltip=a(this._tooltip),this._tooltipInfo=a(this._tooltipInfo),this.inputModeHandle=null)},c)])}destroy(){this._tooltip=a(this._tooltip),this._tooltipInfo=a(this._tooltipInfo)}get context(){return this.getDependencies?.()}get focusedHandle(){return this.context?.getActiveHandle?.()}get allHandles(){return this.context?.getAllHandles?.()}get effectiveActiveHandle(){return this._tooltip?.isInInputMode?this.inputModeHandle:this.focusedHandle}get updating(){return this._updatingHandles.updating}get tooltip(){return this._tooltip}get tooltipInfo(){return this._tooltipInfo}get elevationConstraint(){return this.getConstraints(this.focusedHandle)?.elevation}get allFields(){return Array.from(this._pluginTooltipFieldRegistry.values()).flatMap(e=>Array.from(e.values()))}get effectiveEnabled(){return this.enabled&&(this.context?.toolOptions.tooltips.effectiveEnabled||this.keepTooltipAliveEvenWhenTooltipsAreNotEnabled)}getConstraints(e){let{tooltipInfo:t,context:n}=this,{view:r,editGeometryOperations:i,elevationInfo:a,toolOptions:o}=n??{},s=this.getLastScreenPosition?.();if(!s||!r||!t||!i||!o)return null;let{coordinateHelper:c,spatialReference:l}=i.data,u=r.toMap(s);if(!u)return null;let d=_(u,r,l,a??h,c.hasZ(),o.values.effectiveDirectionMode);return{...V(t.getConstraintFieldsForHandle(e)),context:d}}storeConstraintSnapshot(){let e=this.tooltipInfo?.allFields.filter(e=>e.locked&&!e.unlockOnVertexPlacement).filter(I);this._constraintSnapshot=e?.length?V(e):null}unlockOnVertexPlacement(){this.tooltipInfo?.allFields.forEach(e=>{e.unlockOnVertexPlacement&&(e.committed=null)})}unregisterPluginFields(e){let t=this._pluginTooltipFieldRegistry.get(e);t?.forEach(e=>e.destroy()),t?.clear(),this._pluginTooltipFieldRegistry.delete(e)}createMeasuredField(e,{id:t,preset:n,getMeasurementInput:r,measure:i,fieldProperties:a,fieldFilters:o}){let c=this._getOrCreateField(e,t,n,a,o);return c.registerMeasurement(r,i,()=>this.tooltipInfo?.renderContext),c.addHandles(s(()=>this.tooltipInfo?.isEffectiveVisibleField(c.field),e=>c.enabled=!!e,l)),c}createCustomField(e,{id:t,preset:n,fieldProperties:r,fieldFilters:i}){return this._getOrCreateField(e,t,n,r,i)}_setupTooltip(e){let t=this._tooltip=v(()=>({view:e.view,options:e.toolOptions.tooltips,info:this.tooltipInfo}));t.addHandles([s(()=>this.focusedHandle,e=>{(e&&(!t.isInInputMode||this.inputModeHandle==null)||this.inputModeHandle&&!this.allHandles?.includes(this.inputModeHandle))&&(this.inputModeHandle=e)},c),s(()=>this.focusedHandle?.screenPosition,e=>{e?(t.position=e,t.hidden=!1):t.hidden=!0},c),t.on(`commit`,()=>{this.context?.notifyTooltipsChanged()})]),!this._coordinateFormatterLoadTask&&!p()&&(this._coordinateFormatterLoadTask=n(()=>m()),this.addHandles(this._coordinateFormatterLoadTask),this._updatingHandles.addPromise(this._coordinateFormatterLoadTask.promise))}_getOrCreateField(e,t,n,r,a){let s=i(this._pluginTooltipFieldRegistry,e,()=>new o);if(s.has(t))return s.get(t);let c=B(n,r),l=new g({field:c,displayGroup:r?.displayGroup,...a});s.set(t,l);let u=I(c)?this._constraintSnapshot?.[c.name]:void 0;return u&&c.lock(u),l}};e([u()],L.prototype,`_updatingHandles`,void 0),e([u()],L.prototype,`_tooltip`,void 0),e([u()],L.prototype,`_tooltipInfo`,void 0),e([u()],L.prototype,`_coordinateFormatterLoadTask`,void 0),e([u()],L.prototype,`_constraintSnapshot`,void 0),e([u()],L.prototype,`getDependencies`,void 0),e([u()],L.prototype,`getLastScreenPosition`,void 0),e([u()],L.prototype,`context`,null),e([u()],L.prototype,`inputModeHandle`,void 0),e([u()],L.prototype,`focusedHandle`,null),e([u()],L.prototype,`allHandles`,null),e([u()],L.prototype,`effectiveActiveHandle`,null),e([u()],L.prototype,`updating`,null),e([u()],L.prototype,`tooltip`,null),e([u()],L.prototype,`tooltipInfo`,null),e([u()],L.prototype,`constraintsEnabled`,void 0),e([u()],L.prototype,`elevationConstraint`,null),e([u()],L.prototype,`allFields`,null),e([u()],L.prototype,`keepTooltipAliveEvenWhenTooltipsAreNotEnabled`,void 0),e([u()],L.prototype,`enabled`,void 0),e([u()],L.prototype,`effectiveEnabled`,null),L=e([d(`esri.views.draw.support.managers.TooltipManager`)],L);function R(e){return e==null||!(`unit`in e)||!(`rotationType`in e)?null:e}function z(e){return e==null||`rotationType`in e?null:e}function B(e,t){let n=t?{...t}:{};switch(delete n.displayGroup,e){case`area`:return x({...n,name:`area`});case`direction`:return N({...n,name:`direction`});case`distance`:return M({...n,name:`distance`});case`elevation`:{let e=j({...n,name:`elevation`});return e.showAsZ=!0,e}case`latitude`:return A({...n,name:`y`});case`longitude`:return k({...n,name:`x`});case`x`:return O({...n,name:`x`});case`y`:return D({...n,name:`y`});case`orientation`:return b({...n,name:`orientation`});case`scale`:return E({...n,name:`scale`});case`size`:return T({...n,name:`size`});case`totalLength`:return w({...n,name:`totalLength`});case`radius`:return C({...n,name:`radius`});case`generic-length`:return S({...n,name:null});case`generic-area`:return x({...n,name:null});case`generic-angle`:return b({...n,name:null});case`generic-scalar`:return y({...n,name:null});default:if(!n)throw new r(`draw-tool:tooltips:invalid-field-config`,`Attempted to create a tooltip without a preset definition and without tooltip configuration.`);return new P(n)}}function V(e){let t={};for(let n of e)switch(n.name){case`direction`:t[n.name]=n.committed;break;case`distance`:case`elevation`:t[n.name]=n.committed;break;case`x`:t[n.name]=z(n.committed),t.longitude=R(n.committed);break;case`y`:t[n.name]=z(n.committed),t.latitude=R(n.committed)}return t}export{L as TooltipManager};
2
+ import{__decorate as e}from"tslib";import t from"../../../../core/Accessor.js";import{createTask as n}from"../../../../core/asyncUtils.js";import r from"../../../../core/Error.js";import{getOrCreateMapValue as i}from"../../../../core/MapUtils.js";import{destroyMaybe as a}from"../../../../core/maybe.js";import o from"../../../../core/ReactiveMap.js";import{watch as s,syncAndInitial as c,initial as l}from"../../../../core/reactiveUtils.js";import{property as u}from"../../../../core/accessorSupport/decorators.js";import{subclass as d}from"../../../../core/accessorSupport/decorators/subclass.js";import{UpdatingHandles as f}from"../../../../core/support/UpdatingHandles.js";import{isLoaded as p,load as m}from"../../../../geometry/coordinateFormatter.js";import{absoluteHeightElevationInfo as h}from"../../../../support/elevationInfoUtils.js";import{ManagedTooltipField as g}from"../ManagedTooltipField.js";import{getConstraintContext as _}from"../../../interactive/sketch/constraintUtils.js";import{makeTooltip as v}from"../../../interactive/tooltip/tooltipCommonUtils.js";import{makeScalarField as y,makeOrientationField as b,makeAreaField as x,makeLengthField as S,makeRadiusField as C,makeTotalLengthField as w,makeSizeField as T,makeScaleField as E,makeYField as D,makeXField as O,makeLongitudeField as k,makeLatitudeField as A,makeElevationField as j,makeDistanceField as M,makeDirectionField as N}from"../../../interactive/tooltip/fields/fields.js";import{TooltipField as P}from"../../../interactive/tooltip/fields/TooltipField.js";import{DynamicTooltipInfo as F,filterFieldsForHandle as I,isKnownConstraintField as L}from"../../../interactive/tooltip/infos/DynamicTooltipInfo.js";let R=class extends t{constructor(e){super(e),this._pluginTooltipFieldRegistry=new o,this._updatingHandles=new f,this._coordinateFormatterLoadTask=null,this._constraintSnapshot=null,this.constraintsEnabled=!0,this.keepTooltipAliveEvenWhenTooltipsAreNotEnabled=!1,this.enabled=!0}initialize(){this.addHandles([s(()=>[this.effectiveEnabled,this.context?.view,this.context?.toolOptions],([e,t,n])=>{let{context:r}=this;e&&t&&n?(this._tooltipInfo??=new F({toolOptions:n,getAllFields:()=>this.allFields,getActiveHandle:()=>this.effectiveActiveHandle,getHelpMessageKey:()=>this.context?.getHelpMessageKey(),viewType:t.type}),this._tooltip||this._setupTooltip(r)):(this._tooltip=a(this._tooltip),this._tooltipInfo=a(this._tooltipInfo),this.inputModeHandle=null)},c)])}destroy(){this._tooltip=a(this._tooltip),this._tooltipInfo=a(this._tooltipInfo)}get context(){return this.getDependencies?.()}get focusedHandle(){return this.context?.getActiveHandle?.()}get allHandles(){return this.context?.getAllHandles?.()}get effectiveActiveHandle(){return this._tooltip?.isInInputMode?this.inputModeHandle:this.focusedHandle}get updating(){return this._updatingHandles.updating}get tooltip(){return this._tooltip}get tooltipInfo(){return this._tooltipInfo}get elevationConstraint(){return I(this.allFields,this.focusedHandle).map(({field:e})=>e).filter(L).find(e=>e.name===`elevation`)?.committed}get allFields(){return Array.from(this._pluginTooltipFieldRegistry.values()).flatMap(e=>Array.from(e.values()))}get effectiveEnabled(){return this.enabled&&(this.context?.toolOptions.tooltips.effectiveEnabled||this.keepTooltipAliveEvenWhenTooltipsAreNotEnabled)}getConstraints(e){let{tooltipInfo:t,context:n}=this,{view:r,editGeometryOperations:i,elevationInfo:a,toolOptions:o}=n??{},s=this.getLastScreenPosition?.();if(!s||!r||!t||!i||!o)return null;let{coordinateHelper:c,spatialReference:l}=i.data,u=r.toMap(s);if(!u)return null;let d=_(u,r,l,a??h,c.hasZ(),o.values.effectiveDirectionMode);return{...H(t.getConstraintFieldsForHandle(e)),context:d}}storeConstraintSnapshot(){let e=I(this.allFields,this.focusedHandle).map(({field:e})=>e).filter(e=>e.locked&&!e.unlockOnVertexPlacement).filter(L);this._constraintSnapshot=e.length?H(e):null}unlockOnVertexPlacement(){this.tooltipInfo?.allFields.forEach(e=>{e.unlockOnVertexPlacement&&(e.committed=null)})}unregisterPluginFields(e){let t=this._pluginTooltipFieldRegistry.get(e);t?.forEach(e=>e.destroy()),t?.clear(),this._pluginTooltipFieldRegistry.delete(e)}createMeasuredField(e,{id:t,preset:n,getMeasurementInput:r,measure:i,fieldProperties:a,fieldFilters:o}){let c=this._getOrCreateField(e,t,n,a,o);return c.registerMeasurement(r,i,()=>this.tooltipInfo?.renderContext),c.addHandles(s(()=>this.tooltipInfo?.isEffectiveVisibleField(c.field),e=>c.enabled=!!e,l)),c}createCustomField(e,{id:t,preset:n,fieldProperties:r,fieldFilters:i}){return this._getOrCreateField(e,t,n,r,i)}_setupTooltip(e){let t=this._tooltip=v(()=>({view:e.view,options:e.toolOptions.tooltips,info:this.tooltipInfo}));t.addHandles([s(()=>this.focusedHandle,e=>{(e&&(!t.isInInputMode||this.inputModeHandle==null)||this.inputModeHandle&&!this.allHandles?.includes(this.inputModeHandle))&&(this.inputModeHandle=e)},c),s(()=>this.focusedHandle?.screenPosition,e=>{e?(t.position=e,t.hidden=!1):t.hidden=!0},c),t.on(`commit`,()=>{this.context?.notifyTooltipsChanged()})]),!this._coordinateFormatterLoadTask&&!p()&&(this._coordinateFormatterLoadTask=n(()=>m()),this.addHandles(this._coordinateFormatterLoadTask),this._updatingHandles.addPromise(this._coordinateFormatterLoadTask.promise))}_getOrCreateField(e,t,n,r,a){let s=i(this._pluginTooltipFieldRegistry,e,()=>new o);if(s.has(t))return s.get(t);let c=V(n,r),l=new g({field:c,displayGroup:r?.displayGroup,...a});s.set(t,l);let u=L(c)?this._constraintSnapshot?.[c.name]:void 0;return u&&c.lock(u),l}};e([u()],R.prototype,`_updatingHandles`,void 0),e([u()],R.prototype,`_tooltip`,void 0),e([u()],R.prototype,`_tooltipInfo`,void 0),e([u()],R.prototype,`_coordinateFormatterLoadTask`,void 0),e([u()],R.prototype,`_constraintSnapshot`,void 0),e([u()],R.prototype,`getDependencies`,void 0),e([u()],R.prototype,`getLastScreenPosition`,void 0),e([u()],R.prototype,`context`,null),e([u()],R.prototype,`inputModeHandle`,void 0),e([u()],R.prototype,`focusedHandle`,null),e([u()],R.prototype,`allHandles`,null),e([u()],R.prototype,`effectiveActiveHandle`,null),e([u()],R.prototype,`updating`,null),e([u()],R.prototype,`tooltip`,null),e([u()],R.prototype,`tooltipInfo`,null),e([u()],R.prototype,`constraintsEnabled`,void 0),e([u()],R.prototype,`elevationConstraint`,null),e([u()],R.prototype,`allFields`,null),e([u()],R.prototype,`keepTooltipAliveEvenWhenTooltipsAreNotEnabled`,void 0),e([u()],R.prototype,`enabled`,void 0),e([u()],R.prototype,`effectiveEnabled`,null),R=e([d(`esri.views.draw.support.managers.TooltipManager`)],R);function z(e){return e==null||!(`unit`in e)||!(`rotationType`in e)?null:e}function B(e){return e==null||`rotationType`in e?null:e}function V(e,t){let n=t?{...t}:{};switch(delete n.displayGroup,e){case`area`:return x({...n,name:`area`});case`direction`:return N({...n,name:`direction`});case`distance`:return M({...n,name:`distance`});case`elevation`:{let e=j({...n,name:`elevation`});return e.showAsZ=!0,e}case`latitude`:return A({...n,name:`y`});case`longitude`:return k({...n,name:`x`});case`x`:return O({...n,name:`x`});case`y`:return D({...n,name:`y`});case`orientation`:return b({...n,name:`orientation`});case`scale`:return E({...n,name:`scale`});case`size`:return T({...n,name:`size`});case`totalLength`:return w({...n,name:`totalLength`});case`radius`:return C({...n,name:`radius`});case`generic-length`:return S({...n,name:null});case`generic-area`:return x({...n,name:null});case`generic-angle`:return b({...n,name:null});case`generic-scalar`:return y({...n,name:null});default:if(!n)throw new r(`draw-tool:tooltips:invalid-field-config`,`Attempted to create a tooltip without a preset definition and without tooltip configuration.`);return new P(n)}}function H(e){let t={};for(let n of e)switch(n.name){case`direction`:t[n.name]=n.committed;break;case`distance`:case`elevation`:t[n.name]=n.committed;break;case`x`:t[n.name]=B(n.committed),t.longitude=z(n.committed);break;case`y`:t[n.name]=B(n.committed),t.latitude=z(n.committed)}return t}export{R as TooltipManager};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{handlesGroup as e}from"../../../core/handleUtils.js";import{CurveSnappingHint as t}from"./hints/CurveSnappingHint.js";import{IntersectionSnappingHint as n}from"./hints/IntersectionSnappingHint.js";import{LineSnappingHint as r}from"./hints/LineSnappingHint.js";import{ParallelSnappingHint as i}from"./hints/ParallelSnappingHint.js";import{PointSnappingHint as a}from"./hints/PointSnappingHint.js";import{RightAngleSnappingHint as o}from"./hints/RightAngleSnappingHint.js";class s{draw(s,l){let u=c(s),d=this.sortUniqueHints(u),f=[];for(let e of d)e instanceof n&&f.push(this.visualizeIntersectionPoint(e,l)),e instanceof r&&f.push(this.visualizeLine(e,l)),e instanceof t&&f.push(this.visualizeCurve(e,l)),e instanceof i&&f.push(this.visualizeParallelSign(e,l)),e instanceof o&&f.push(this.visualizeRightAngleQuad(e,l)),e instanceof a&&f.push(this.visualizePoint(e,l));return e(f)}sortUniqueHints(e){return e}}function c(e){let t=[];for(let n of e){let e=!0;for(let r of t)if(n.equals(r)){e=!1;break}e&&t.push(n)}return t}export{s as SnappingVisualizer};
2
+ import{handlesGroup as e}from"../../../core/handleUtils.js";import{CurveSnappingHint as t}from"./hints/CurveSnappingHint.js";import{IntersectionSnappingHint as n}from"./hints/IntersectionSnappingHint.js";import{LineSnappingHint as r}from"./hints/LineSnappingHint.js";import{ParallelSnappingHint as i}from"./hints/ParallelSnappingHint.js";import{PointSnappingHint as a}from"./hints/PointSnappingHint.js";import{RightAngleSnappingHint as o}from"./hints/RightAngleSnappingHint.js";class s{draw(s,l){let u=c(s),d=this.sortUniqueHints(u),f=[];for(let e=0;e<d.length;++e){let s=d[e];s instanceof n&&f.push(this.visualizeIntersectionPoint(s,l,e)),s instanceof r&&f.push(this.visualizeLine(s,l,e)),s instanceof t&&f.push(this.visualizeCurve(s,l,e)),s instanceof i&&f.push(this.visualizeParallelSign(s,l,e)),s instanceof o&&f.push(this.visualizeRightAngleQuad(s,l,e)),s instanceof a&&f.push(this.visualizePoint(s,l,e))}return e(f)}sortUniqueHints(e){return e}}function c(e){let t=[];for(let n of e){let e=!0;for(let r of t)if(n.equals(r)){e=!1;break}e&&t.push(n)}return t}export{s as SnappingVisualizer};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{watch as t}from"../../../../core/reactiveUtils.js";import{property as n,subclass as r}from"../../../../core/accessorSupport/decorators.js";import{SketchTooltipInfo as i}from"./SketchTooltipInfo.js";let a=class extends i{constructor(e){super(e),this.type=`dynamic`,this.renderContext=null,this.helpMessage=void 0,this._isVisibleField=e=>{if(!e.visible)return!1;let t=e.name;switch(t){case`x`:case`y`:return this.visibleElements.coordinates;default:return this.visibleElements[t]??!0}}}initialize(){this.addHandles(t(()=>this.getHelpMessageKey?.(),e=>this.helpMessage=e??void 0))}get availableFields(){return this.getAllFields?.()?.map(e=>e.field)??[]}get availableFieldsForCurrentHandle(){let e=this.getAllFields?.(),t=this.getActiveHandle?.();return l(e??[],t)}get allManagedFields(){let{availableFieldsForCurrentHandle:e}=this,t=this.getActiveHandle?.(),n=this._getXyMode(t);return(this._useCoordinateDisplay(t,n)?e.filter(e=>s(e.field)):this._useDirectionDistanceDisplay(t,n)?e.filter(e=>c(e.field)):e).filter(e=>this._isVisibleField(e.field)).sort((e,t)=>o(e.field,t.field))}get fieldsGroupedForDisplay(){let e=this.allManagedFields,t=new Map,n=[];for(let n of e){let e=n.displayGroup;t.has(e)||t.set(e,[]),t.get(e)?.push(n)}for(let[e,r]of t.entries())if(r.length!==2||!e)n.push(...r.map(e=>e.field));else{let e=r.toSorted((e,t)=>o(e.field,t.field));n.push({left:e[0].field,right:e[1].field})}return n}get xyMode(){return this._getXyMode(this.getActiveHandle?.())}get allFields(){return this.allManagedFields.map(e=>e.field)}getConstraintFieldsForHandle(e){let t=this.getAllFields?.(),n=this._getXyMode(e),r=l(t??[],e).map(e=>e.field).filter(u);return(this._useCoordinateDisplay(e,n)?r.filter(s):this._useDirectionDistanceDisplay(e,n)?r.filter(c):r).filter(this._isVisibleField)}getConstraintFieldByName(e,t){return this.getConstraintFieldsForHandle(e).find(e=>e.name===t)}isEffectiveVisibleField(e){let{allFields:t,renderContext:n}=this;return e.visible&&!!n&&t.includes(e)}_getXyMode(e){let t=this.toolOptions.tooltips.xyMode,n=e?.editSession?.endVertex?.leftSegment?.leftVertex&&e?.role===`primary`?`direction-distance`:`coordinates`;return t===`auto`?n:t}_useCoordinateDisplay(e,t){let{availableFields:n}=this;return(t===`coordinates`||e?.role===`secondary`)&&n.some(e=>e.name===`x`)&&n.some(e=>e.name===`y`)}_useDirectionDistanceDisplay(e,t){let{availableFields:n}=this;return t===`direction-distance`&&e?.role===`primary`&&n.some(e=>e.name===`distance`)&&n.some(e=>e.name===`direction`)}};e([n()],a.prototype,`type`,void 0),e([n()],a.prototype,`getAllFields`,void 0),e([n()],a.prototype,`getActiveHandle`,void 0),e([n()],a.prototype,`getHelpMessageKey`,void 0),e([n()],a.prototype,`availableFields`,null),e([n()],a.prototype,`availableFieldsForCurrentHandle`,null),e([n()],a.prototype,`allManagedFields`,null),e([n()],a.prototype,`fieldsGroupedForDisplay`,null),e([n()],a.prototype,`xyMode`,null),e([n()],a.prototype,`allFields`,null),e([n()],a.prototype,`renderContext`,void 0),e([n()],a.prototype,`helpMessage`,void 0),a=e([r(`esri.views.interactive.tooltip.infos.DynamicTooltipInfo`)],a);function o(e,t){return e.displayOrder-t.displayOrder}function s(e){return e.name!==`direction`&&e.name!==`distance`}function c(e){return e.name!==`x`&&e.name!==`y`}function l(e,t){let{name:n,role:r}=t??{};return e?.filter(e=>(e.appliesToHandlesWithName==null||e.appliesToHandlesWithName===n)&&(e.appliesToHandlesWithRole==null||e.appliesToHandlesWithRole===r))??[]}function u(e){switch(e.name){case`direction`:case`distance`:case`elevation`:case`x`:case`y`:return!0;default:return!1}}export{a as DynamicTooltipInfo,u as isKnownConstraintField};
2
+ import{__decorate as e}from"tslib";import{watch as t}from"../../../../core/reactiveUtils.js";import{property as n,subclass as r}from"../../../../core/accessorSupport/decorators.js";import{SketchTooltipInfo as i}from"./SketchTooltipInfo.js";let a=class extends i{constructor(e){super(e),this.type=`dynamic`,this.renderContext=null,this.helpMessage=void 0,this._isVisibleField=e=>{if(!e.visible)return!1;let t=e.name;switch(t){case`x`:case`y`:return this.visibleElements.coordinates;default:return this.visibleElements[t]??!0}}}initialize(){this.addHandles(t(()=>this.getHelpMessageKey?.(),e=>this.helpMessage=e??void 0))}get availableFields(){return this.getAllFields?.()?.map(e=>e.field)??[]}get availableFieldsForCurrentHandle(){let e=this.getAllFields?.(),t=this.getActiveHandle?.();return l(e??[],t)}get allManagedFields(){let{availableFieldsForCurrentHandle:e}=this,t=this.getActiveHandle?.(),n=this._getXyMode(t);return(this._useCoordinateDisplay(t,n)?e.filter(e=>s(e.field)):this._useDirectionDistanceDisplay(t,n)?e.filter(e=>c(e.field)):e).filter(e=>this._isVisibleField(e.field)).sort((e,t)=>o(e.field,t.field))}get fieldsGroupedForDisplay(){let e=this.allManagedFields,t=new Map,n=[];for(let n of e){let e=n.displayGroup;t.has(e)||t.set(e,[]),t.get(e)?.push(n)}for(let[e,r]of t.entries())if(r.length!==2||!e)n.push(...r.map(e=>e.field));else{let e=r.toSorted((e,t)=>o(e.field,t.field));n.push({left:e[0].field,right:e[1].field})}return n}get xyMode(){return this._getXyMode(this.getActiveHandle?.())}get allFields(){return this.allManagedFields.map(e=>e.field)}getConstraintFieldsForHandle(e){let t=this.getAllFields?.(),n=this._getXyMode(e),r=l(t??[],e).map(e=>e.field).filter(u);return(this._useCoordinateDisplay(e,n)?r.filter(s):this._useDirectionDistanceDisplay(e,n)?r.filter(c):r).filter(this._isVisibleField)}getConstraintFieldByName(e,t){return this.getConstraintFieldsForHandle(e).find(e=>e.name===t)}isEffectiveVisibleField(e){let{allFields:t,renderContext:n}=this;return e.visible&&!!n&&t.includes(e)}_getXyMode(e){let t=this.toolOptions.tooltips.xyMode,n=e?.editSession?.endVertex?.leftSegment?.leftVertex&&e?.role===`primary`?`direction-distance`:`coordinates`;return t===`auto`?n:t}_useCoordinateDisplay(e,t){let{availableFields:n}=this;return(t===`coordinates`||e?.role===`secondary`)&&n.some(e=>e.name===`x`)&&n.some(e=>e.name===`y`)}_useDirectionDistanceDisplay(e,t){let{availableFields:n}=this;return t===`direction-distance`&&e?.role===`primary`&&n.some(e=>e.name===`distance`)&&n.some(e=>e.name===`direction`)}};e([n()],a.prototype,`type`,void 0),e([n()],a.prototype,`getAllFields`,void 0),e([n()],a.prototype,`getActiveHandle`,void 0),e([n()],a.prototype,`getHelpMessageKey`,void 0),e([n()],a.prototype,`availableFields`,null),e([n()],a.prototype,`availableFieldsForCurrentHandle`,null),e([n()],a.prototype,`allManagedFields`,null),e([n()],a.prototype,`fieldsGroupedForDisplay`,null),e([n()],a.prototype,`xyMode`,null),e([n()],a.prototype,`allFields`,null),e([n()],a.prototype,`renderContext`,void 0),e([n()],a.prototype,`helpMessage`,void 0),a=e([r(`esri.views.interactive.tooltip.infos.DynamicTooltipInfo`)],a);function o(e,t){return e.displayOrder-t.displayOrder}function s(e){return e.name!==`direction`&&e.name!==`distance`}function c(e){return e.name!==`x`&&e.name!==`y`}function l(e,t){let{name:n,role:r}=t??{};return e?.filter(e=>(e.appliesToHandlesWithName==null||e.appliesToHandlesWithName===n)&&(e.appliesToHandlesWithRole==null||e.appliesToHandlesWithRole===r))??[]}function u(e){switch(e.name){case`direction`:case`distance`:case`elevation`:case`x`:case`y`:return!0;default:return!1}}export{a as DynamicTooltipInfo,l as filterFieldsForHandle,u as isKnownConstraintField};
@@ -340,6 +340,7 @@ export default abstract class FeatureLikeLayerView extends LayerView {
340
340
  * ```
341
341
  */
342
342
  get highlightOptions(): HighlightOptions | null | undefined;
343
+ /** @deprecated */
343
344
  set highlightOptions(value: HighlightOptionsProperties | null | undefined);
344
345
  /** The layer being viewed. */
345
346
  get layer(): FeatureLikeLayerViewLayer;
@@ -50,6 +50,7 @@ export default abstract class GraphicsLayerView extends LayerView {
50
50
  * ```
51
51
  */
52
52
  get highlightOptions(): HighlightOptions | null | undefined;
53
+ /** @deprecated */
53
54
  set highlightOptions(value: HighlightOptionsProperties | null | undefined);
54
55
  /** The layer being viewed. */
55
56
  get layer(): GraphicsLayer;
@@ -80,6 +80,7 @@ export default abstract class ImageryLayerView extends LayerView {
80
80
  * ```
81
81
  */
82
82
  get highlightOptions(): HighlightOptions | null | undefined;
83
+ /** @deprecated */
83
84
  set highlightOptions(value: HighlightOptionsProperties | null | undefined);
84
85
  /**
85
86
  * An object that provides the user access to
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import e from"../../Color.js";import t from"../../Graphic.js";import{isSome as n,equals as r,addMany as i}from"../../core/arrayUtils.js";import a from"../../core/Error.js";import{handlesGroup as o,makeHandle as s,abortHandle as c}from"../../core/handleUtils.js";import{clone as l}from"../../core/lang.js";import u from"../../core/Logger.js";import{getOrCreateMapValue as d}from"../../core/MapUtils.js";import{debounce as f,isPromiseLike as p,whenOrAbort as m}from"../../core/promiseUtils.js";import{watch as h,on as g,whenOnce as ee,when as te}from"../../core/reactiveUtils.js";import{px2pt as _}from"../../core/screenUtils.js";import{addMany as v}from"../../core/SetUtils.js";import{isSharedTemplateOrMetadata as y,isSharedGroupTemplate as b,getCreationAttributes as x,isSharedPresetTemplate as S}from"../../editing/templateUtils.js";import{isCurvedGeometry as C,hasUnsupportedCurve as ne}from"../../geometry/support/curves/curveUtils.js";import re from"../../layers/GraphicsLayer.js";import{featureHasFields as ie,fixFields as w,getDisplayFieldName as ae}from"../../layers/support/fieldUtils.js";import{isSubtypeSublayer as oe}from"../../layers/support/layerUtils.js";import{calculateTolerance as se}from"../../renderers/support/clickToleranceUtils.js";import{meterIn as ce}from"../../renderers/support/lengthUtils.js";import{isRenderer as le}from"../../renderers/support/typeUtils.js";import{getTransformationType as ue}from"../../renderers/visualVariables/support/sizeVariableUtils.js";import{isGraphic as de}from"../../support/graphicInstanceUtils.js";import fe from"../../symbols/SimpleFillSymbol.js";import T from"../../symbols/SimpleLineSymbol.js";import pe from"../../symbols/SimpleMarkerSymbol.js";import{to3D as me}from"../../symbols/support/symbolConversion.js";import{getDisplayedSymbol as E}from"../../symbols/support/symbolUtils.js";import{getServices as he}from"../../undoredo/support/Services.js";import{defaultDrawingMode as ge}from"../../views/draw/drawingModes.js";import{updateGraphicSymbolWhenRequired as D,fetchFullFeaturesByObjectId as _e}from"../../views/draw/support/editingSessionUtils.js";import{createQueryGeometry as ve}from"../../views/support/drapedUtils.js";import{filterGraphicHits as O,hitTestSelectSimilarDistance as ye}from"../../views/support/hitTestSelectUtils.js";import{isNextOrLegacyUpdateWorkflow as be,isNextOrLegacyUpdateFeaturesWorkflow as xe}from"./compatibilityAdapters.js";import{dependencySort as Se}from"./support/dependencySort.js";import{isDrawGraphicTool as k,isDrawTool as Ce}from"../Sketch/support/sketchUtils.js";const we=()=>u.getLogger(`esri.widgets.Editor.workflowUtils`);function Te(e){return De(e)||A(e)}function Ee(e){return!!e&&`features`in e}function A(e){return e!=null&&e.type===`update-features`}function De(e){return e!=null&&e.type.includes(`update-`)&&`fullFeature`in e}function Oe(e){return e!=null&&e.type===`merge-features`}function ke(e){return e!=null&&e.type===`split-feature`}function Ae(e){let t=e?.type;return t===`update-feature`||t===`update-table-record`||t===`update-features`||t===`split-feature`}function je(e){return e?.type===`merge`}function Me(e){return e?.type===`split`}function Ne(e){return Oe(e)||ke(e)}function Pe(e){return e?.type===`update-multiple`}function j(e){let t=e&&`renderer`in e?e.renderer:null;if(!I(t))return{rotation:null,size:null};let n=t.getVisualVariablesForType(`rotation`).filter(e=>(!e.axis||e.axis===`heading`)&&e.field&&!e.valueExpression),r=t.getVisualVariablesForType(`size`).filter(e=>e.field&&!e.useSymbolValue&&!e.valueExpression&&ue(e)===`real-world-size`);return{rotation:n.length===1?n[0]:null,size:r.length===1?r[0]:null}}function M(e){let t=e.sourceLayer;if(!(t&&`renderer`in t&&I(t.renderer)))return{rotation:null,size:null};let{rotation:n,size:r}=j(t),i=null,a=null;if(n){let e=t.fields?.filter(e=>e.name===n.field);i=N(n,e?.length===1?e[0]:null)}if(r){let e=t.fields?.filter(e=>e.name===r.field);a=P(r,e?.length===1?e[0]:null)}return{rotation:i,size:a}}function N(e,t){let n=(e.axis||`heading`)===`heading`&&e.rotationType===`arithmetic`?-1:1,r=t?.type??`double`,i={initial:0,current:0};return{field:e.field,fieldType:r,getDefaultValue:()=>Promise.resolve(0),getValue:e=>(i.current=i.initial-n*e,F((i.current+360)%360,r)),setInitialValue:e=>{i.initial=e,i.current=0},isUpdatingInteractively:!1,rotationType:e.rotationType??`geographic`}}function Fe(e,t){switch(t){case`width`:return e[0];case`depth`:return e[1];case`height`:return e[2];default:return e[2]||e[1]||e[0]}}async function Ie(e,t,n){if(t==null)return 0;let{symbol:r}=me(t);if(r==null||r.type===`web-style`||r.type===`cim`)return 0;let i=r.symbolLayers.at(0);if(!i)return 0;switch(i.type){case`icon`:{let{computeIconLayerResourceSize:e}=await import(`../../symbols/support/symbolLayerUtils.js`);return Math.min(Q.icon,(await e(i,Q.icon))[0])||Q.icon}case`text`:return Q.text;case`line`:return Q.line;case`object`:{let{computeObjectLayerResourceSize:t}=await import(`../../symbols/support/symbolLayerUtils.js`);return Fe(await t(i,e.scale/Q.viewScaleSizeFactor),n)}case`path`:return e.scale/Q.viewScaleSizeFactor;case`extrude`:return e.scale/Q.viewScaleSizeFactor;case`fill`:case`water`:return 0;default:return 0}}function P(e,t){let n=e.axis,r=t?.type??`double`,i={initial:0,current:0},a=ce[e.valueUnit]??1,o;return o=e.valueRepresentation===`area`?e=>(e*a/2)**2*Math.PI:e.valueRepresentation===`radius`||e.valueRepresentation===`distance`?e=>e*a/2:e=>e*a,{field:e.field,fieldType:r,getDefaultValue:async(e,t)=>F(o(await Ie(t,e,n)),r),getValue:(e,t)=>(i.initial||=t.pixelSizeAt(t.center),i.current=i.initial*e,F(i.current,r)),setInitialValue:e=>{i.initial=e,i.current=0},isUpdatingInteractively:!1,displayUnit:ot(e.valueUnit),axis:e.axis}}function F(e,t){switch(t){case`small-integer`:case`integer`:case`long`:return Math.round(e);case`double`:case`single`:return e;default:return 0}}function I(e){if(!le(e))return!1;switch(e?.type){case`class-breaks`:case`simple`:case`unique-value`:case`dot-density`:case`dictionary`:case`pie-chart`:return!0;default:return!1}}function L(e,t){if(!e||!t)throw Error(`no geometry type`);if(e===`multipatch`)return{tool:`mesh`,createOptions:{mode:`hybrid`}};let n=new Map;n.set(`circle`,{mode:`freehand`}),n.set(`rectangle`,{mode:`freehand`});let r={mode:ge,optionsPerTool:n};if(y(t)){let i=t.defaultTool,a=b(t)?t.definition?.inputGeometryType??e:e;switch(i){case`freehand`:case`stream-line`:return{tool:a===`polyline`?`freehandPolyline`:`freehandPolygon`,createOptions:r};case`autocomplete-freehand-polygons`:case`stream-polygon`:return{tool:`freehandPolygon`,createOptions:r};case`autocomplete-polygons`:case`difference-polygon`:case`create-structures`:case`polygon`:case`trace`:return{tool:a===`polygon`?`polygon`:`polyline`,createOptions:r};case`circle`:return n.get(`circle`).preserveAspectRatio=!0,{tool:`circle`,createOptions:r};case`ellipse`:return n.get(`circle`).preserveAspectRatio=!1,{tool:`circle`,createOptions:r};case`create-points-along-line`:case`multipoint`:return{tool:`multipoint`,createOptions:r};case`line`:case`radial-line`:case`right-angle-line`:case`split`:case`two-point-line`:return{tool:`polyline`,createOptions:r};case`rectangle`:case`regular-polygon`:case`right-angle-polygon`:return{tool:`rectangle`,createOptions:r};case`elevation-point-from-contour`:case`elevation-point-from-dem`:case`parcel-seed`:case`point`:case`point-and-rotation`:case`point-at-end-of-line`:return{tool:`point`,createOptions:r}}}else{let i=t.drawingTool;if(i===`circle`||i===`ellipse`)return n.get(`circle`).preserveAspectRatio=i===`circle`,{tool:`circle`,createOptions:r};if(i===`rectangle`)return{tool:`rectangle`,createOptions:r};if(i===`freehand`)return{tool:e===`polygon`?`freehandPolygon`:`freehandPolyline`,createOptions:r}}return{tool:e,createOptions:r}}async function Le(e,t,n){let{creationInfo:r,fullTemplate:i}=n;if(!r)throw new a(`featureworkflow`,`No creation info provided.`);let o=r.layer,s=x(i,r.attributeOverrides,r.layer),{view:c}=e,l=c?.type===`2d`;!b(i)&&!S(i)&&await q(e,o,s,l?c.scale:null);let{capabilities:u}=o;t.elevationInfo=o.elevationInfo;let d=L(o.geometryType,i);e.defaultCreateOptions={graphicProperties:{attributes:s,sourceLayer:o},mode:d.createOptions.mode,optionsPerTool:d.createOptions.optionsPerTool,preserveAspectRatio:d.createOptions.preserveAspectRatio,hasZ:u.data.supportsZ,defaultZ:(l?u.editing.zDefault:null)??e.defaultCreateOptions.defaultZ},r.geometryToPlace==null?await e.create(d.tool):await e.place(r.geometryToPlace,{graphicProperties:{attributes:s,sourceLayer:o}})}async function Re(e){return o([ze(e),Be(e)])}function ze({creationAttributes:e,data:t,sketchViewModel:n,view:r}){let{creationInfo:i}=t,{fullTemplate:a}=t;if(!i||r?.type!==`2d`||b(a)||S(a))return null;let o=f(t=>q(n,i.layer,e,t));return h(()=>r.scale,e=>o(e))}function Be({data:t,sketchViewModel:n,view:r}){let{templateExecutorInfo:i}=t;if(!i)return null;let c=n.activeComponent;if(!r||!k(c)&&!Ce(c))return we().error(new a(`featureworkflow`,`Failed to set up template feedback.`)),null;let l=new re({effect:`saturate(0.6) opacity(0.8)`,listMode:`hide`,title:`Shared Template Feedback Graphics`});r.map?.add(l);let{executor:u,serviceLayersById:d}=i,f=r.theme?.accentColor??new e([255,165,0,1]);return o([g(()=>c,[`cursor-update`,`vertex-add`],()=>{l.removeAll();let e=k(c)?c.graphic?.geometry:c.unprocessedGeometry;if(!e||!Ve(e))return;let t=u(e,`digitizing`);if(!p(t))for(let e of t.edits){let t=d.get(e.id);if(t&&e.addFeatures&&e.addFeatures.length!==0){for(let n of t)if(!n.isTable)for(let t of e.addFeatures){let e=He(t,f);e&&l.add(e)}}}}),s(()=>{r.map.remove(l),l.destroy()})])}function Ve(e){switch(e.type){case`point`:case`multipoint`:return!0;case`polyline`:{if(C(e))return e.curvePaths[0].length>1;let t=e.paths[0];return t?t.length>1:!1}case`polygon`:{if(C(e))return e.curveRings[0].length>2;let t=e.rings[0];return t?r(t.at(0),t.at(-1))?t.length>2:t.length>1:!1}default:return!1}}function He(e,n){let r=null;switch(e.geometry?.type){case`point`:case`multipoint`:r=new pe({angle:0,color:n,outline:new T({cap:`round`,color:n,join:`round`,miterLimit:1,style:`solid`,width:1}),path:`undefined`,size:8,style:`circle`,xoffset:0,yoffset:0});break;case`polygon`:r=new fe({color:n,outline:new T({cap:`round`,color:n,join:`round`,miterLimit:1,style:`solid`,width:3}),style:`none`});break;case`polyline`:r=new T({cap:`round`,color:n,join:`round`,miterLimit:1,style:`solid`,width:2});break;default:return null}return new t({geometry:e.geometry,symbol:r,attributes:{...e.attributes}})}function R(e,t){let n=he(t),r=oe(e)?e.parent:e;return n.tablesAndLayersLookup.get(r)}function Ue(e,t){let n=R(e,t);if(!n)return new Map;let r=new Map;for(let e of n.layersAndTables)d(r,e.layerId,()=>[]).push(e);return r}function z(e){let t=e.objectIdField,n=e.globalIdField??``;return{id:e.layerId,identifierFields:{objectIdField:t,globalIdField:n},addFeatures:[],deleteAttachments:[],addAttachments:[],deleteFeatures:[],updateFeatures:[]}}function We(e){let{edits:t,serviceInfo:r,view:i,findOriginalFeature:a}=e,o=B(r.layersAndTables),s=r.layersAndTables.toArray(),{allEditData:c,editDataByLayerIdMap:l,editDataByIdMap:u}=Ge(t,o,a),d=H(c,V(s,l),l);if(i&&G(c,d,i),d.length===0)return t;let f=Se(d,{continueOnCircularDependency:!0}).map(e=>u.get(e)).filter(n),p=new Map;for(let e of f)p.set(e.uniqueId,e);let m=[];for(let e of c)p.has(e.uniqueId)||m.push(e);let h=[],g=null;for(let e of f){let{layer:t}=e;switch(g==null?g=z(t):g.id!==t.layerId&&(h.push(g),g=z(t)),e.operationType){case`add`:case`modify`:g.addFeatures.push(e.after);break;case`delete`:g.deleteFeatures.push(e.before)}}g!==null&&h.push(g);for(let e of m){let t=e.layer.layerId,n=h.find(e=>e.id===t)??z(e.layer);switch(h.includes(n)||h.push(n),e.operationType){case`add`:n.addFeatures.push(e.after);break;case`modify`:n.updateFeatures.push(e.after);break;case`delete`:n.deleteFeatures.push(e.before);break;case`deleteAttachment`:n.deleteAttachments.push(e.attachmentId);break;case`addAttachment`:n.addAttachments.push(e.attachment)}}for(let e of h)e.deleteAttachments!==void 0&&e.deleteAttachments.length===0&&delete e.deleteAttachments,e.addAttachments!==void 0&&e.addAttachments.length===0&&delete e.addAttachments;return h}function B(e){let t=new Map;for(let n of e)t.set(n.layerId,n);return t}function V(e,t){let n=new Map;for(let r of e)for(let e of r.relationships??[])if(n.set(U(r,e),``),t.has(e.relatedTableId)){let i=t.get(e.relatedTableId);if(i.length>0){for(let t of i[0].layer.relationships??[])if(t.id===e.id){n.set(U(r,e),t.keyField);break}}}return n}function Ge(e,t,n){let r=new Map,i=[],o=new Map,s=1;for(let c of e){let e=[],l=t.get(c.id);if(!l)throw new a(`featureworkflow`,`Failed to prepare applyEdits payload. Layer with id ${c.id} not found.`);for(let t of c.addFeatures??[])e.push({uniqueId:`T${s++}`,operationType:`add`,layer:l,after:t});for(let t of c.deleteFeatures??[])e.push({uniqueId:`T${s++}`,operationType:`delete`,before:t,layer:l});for(let t of c.deleteAttachments??[])e.push({uniqueId:`T${s++}`,operationType:`deleteAttachment`,attachmentId:t,layer:l});for(let t of c.addAttachments??[])e.push({uniqueId:`T${s++}`,operationType:`addAttachment`,attachment:t,layer:l});for(let t of c.updateFeatures??[])e.push({uniqueId:`T${s++}`,operationType:`modify`,before:n(t),after:t,layer:l});r.set(l.layerId,e);for(let t of e)i.push(t),o.set(t.uniqueId,t)}return{allEditData:i,editDataByIdMap:o,editDataByLayerIdMap:r}}function H(e,t,n){let r=[];for(let i of e){let e=i.layer.relationships??[],{uniqueId:a}=i;for(let o of e){let e=o.keyField;if(o.role===`origin`){let s=n.get(o.relatedTableId);if(!s||s.length===0)continue;let c=U(i.layer,o),l=t.get(c);if(l===void 0||l===``)continue;switch(i.operationType){case`add`:for(let t of s)t!==i&&(t.operationType===`add`||t.operationType===`modify`)&&t.after.attributes[l]===i.after.attributes[e]&&r.push([a,t.uniqueId]);break;case`modify`:if(i.before.attributes[e]!==i.after.attributes[e])for(let t of s){let n=t.uniqueId;t!==i&&(t.operationType===`delete`?t.before.attributes[l]===i.before.attributes[e]?r.push([n,a]):t.before.attributes[l]===i.after.attributes[e]&&r.push([a,n]):t.operationType===`add`?t.after.attributes[l]===i.after.attributes[e]?r.push([a,n]):t.after.attributes[l]===i.before.attributes[e]&&r.push([n,a]):t.operationType===`modify`&&(t.before.attributes[l]===t.after.attributes[l]||t.after.attributes[l]===i.after.attributes[e]?r.push([a,n]):r.push([n,a])))}break;case`delete`:for(let t of s)t!==i&&(t.operationType===`delete`||t.operationType===`modify`)&&t.before.attributes[l]===i.before.attributes[e]&&r.push([t.uniqueId,a])}}}}return r}function U(e,t){return`${e.layerId}:${t.id}`}function W(e,t){return!!(t?.map&&`utilityNetworks`in t.map&&t.map.utilityNetworks?.length&&t.map.utilityNetworks.some(t=>!!(t.loaded&&e.url?.startsWith(t.featureServiceUrl)&&e.layerId===t.networkSystemLayers.associationsTableId)))}function G(e,t,n){let r=[];for(let t of e)W(t.layer,n)&&r.push(t);if(r.length===0)return;let i=[];for(let n of r){let r=n.layer;switch(n.operationType){case`delete`:i=[...K(n.before.attributes[r.fieldsIndex.get(`fromglobalid`).name],e),...K(n.before.attributes[r.fieldsIndex.get(`toglobalid`).name],e)];for(let e of i)t.push([n.uniqueId,e.uniqueId]);break;case`add`:i=[...K(n.after.attributes[r.fieldsIndex.get(`fromglobalid`).name],e),...K(n.after.attributes[r.fieldsIndex.get(`toglobalid`).name],e)];for(let e of i)t.push([e.uniqueId,n.uniqueId])}}}function K(e,t){let n=[],r=t.filter(({layer:e})=>e.globalIdField!==``&&e.globalIdField!=null);for(let t of r){let r=t.layer.globalIdField;(`before`in t&&t.before?.attributes[r]===e||`after`in t&&t.after?.attributes[r]===e)&&n.push(t)}return n}async function q(e,n,r,i){let a=new t({sourceLayer:n,attributes:r}),{rotation:o,size:s}=M(a),c=await E(a,{useSourceLayer:!0,scale:i}),l=!1;for(let t of[s,o])t!=null&&(r[t.field]??(r[t.field]=await t.getDefaultValue(c,e.view),l=!0));switch(l&&(c=await E(a,{useSourceLayer:!0,scale:i})),c?.type){case`simple-fill`:case`polygon-3d`:e.polygonSymbol=c;break;case`simple-line`:case`line-3d`:e.polylineSymbol=c;break;case`simple-marker`:case`picture-marker`:case`point-3d`:case`cim`:e.pointSymbol=c;break;case`mesh-3d`:e.meshSymbol=c}J(e.tooltipOptions,s,o)}function J(e,t,n){e.visualVariables=t!=null||n!=null?{size:t==null?null:{unit:t.displayUnit,axis:t.axis,valueType:t.fieldType},rotation:n==null?null:{valueType:n.fieldType,rotationType:n.rotationType??`geographic`}}:null}function Y(e,t){return e.find(e=>e.layer===t)}function Ke(e,t){let n=Y(e,t);if(n==null)throw new a(`no-editorItem-found`,`The EditorViewModel provided did not have an EditorItem associated with the specified layer`);return n}function qe(e,t){return e?.find(e=>e.layer===t)}async function Je(e,t,n,r){switch(t.type){case`3d`:return Ye(e,t,n,r);case`2d`:return Xe(e,t,n,r)}}async function Ye(e,t,n,r){if(e.length===0)return[];let{updatable:a,graphicsByLayer:o}=await n.defer(async()=>{let{results:i}=await m(ye(t,n),r),a=new Map,o=e=>{let t=e.layer,n=a.get(t);if(!n){let e=[];return a.set(t,e),e}return n};O(i).forEach(({graphic:e})=>o(e).push(e));let s=e.filter(({capabilities:e,layer:t})=>e.update.enabled&&a.has(t));return s.length!==0&&n.stopPropagation(),{updatable:s,graphicsByLayer:a}});return m(Promise.allSettled(a.map(async({layer:e})=>{let t=o.get(e),n=X(e);if(t.every(e=>ie(e,n)))return t;let a=[];for(let e of t){a.push(e.getObjectId());let t=Object.keys(e.attributes);i(n,t)}let s=e.createQuery();return s.returnGeometry=!1,s.objectIds=a,s.outFields=w(e.fieldsIndex,n),e.queryFeatures(s,{signal:r}).then(({features:e})=>e)})),r)}async function Xe(e,t,n,r){if(e.length===0)return[];let{mapPoint:i}=n;if(i==null)return[];let a=null,o=await n.defer(async()=>{let{results:i}=await m(t.hitTest(n),r);if(i.length===0)return[];let o=new Set;a=O(i),a.forEach(({graphic:e})=>e&&o.add(e.layer));let s=e.filter(e=>o.has(e.layer)&&e.supportsUpdateWorkflow);return s.length>0&&n.stopPropagation(),s});return m(Promise.allSettled(o.map(async({layer:e})=>{let o=e.createQuery();o.returnGeometry=!0,o.outFields=X(e);let s=`renderer`in e?se({renderer:e.renderer,pointerType:n.pointerType}):0;o.geometry=ve(i,s,t),o.outSpatialReference=t.spatialReference;let{features:c}=await e.queryFeatures(o,{signal:r});return a?.forEach(({graphic:t})=>{t.layer===e&&!c.some(e=>e.getObjectId()===t.getObjectId())&&c.push(t)}),c})),r)}function X(e){return w(e.fieldsIndex,[e.objectIdField,ae({displayField:`displayField`in e?e.displayField:null,fields:e.fields})])}async function Ze(e,t,r,i){let a=e.map(e=>e.getObjectId()??e.attributes[t.objectIdField]).filter(n);return await _e(a,t,r,i)}async function Z(e){let{graphic:t,sketchViewModel:n,sourceLayer:r,updateOptions:i,visualVariables:a}=e;await $e(e);let o={multipleSelectionEnabled:!1,...i};return r.geometryType===`point`&&(o.enableRotation=a.rotation!=null,o.enableScaling=a.size!=null),n.update(t,o)}function Qe(e,t){let{activeUpdateOptions:n}=e;n&&(e.activeUpdateOptions={...n,...t,reshapeOptions:{...n.reshapeOptions,...t.reshapeOptions},highlightOptions:{...n.highlightOptions,...t.highlightOptions}})}async function $e(e){let{graphic:t,sketchLayer:n,sketchViewModel:r,sourceLayer:i,visualVariables:a}=e,o=!1,{rotation:s,size:c}=a;for(let e of[s,c]){if(e==null)continue;let n=t.getAttribute(e.field);if(n!=null)e.setInitialValue(n);else{let n=await e.getDefaultValue(t.symbol,r.view);e.setInitialValue(n),t.setAttribute(e.field,n),o=!0}}if(o){let e=r.view?.type===`2d`?r.view.scale:null;await D(t,e)}J(r.tooltipOptions,c,s),n.elevationInfo=i.elevationInfo}function et(e){return e!=null&&(e.type===`rotate-start`||e.type===`rotate`||e.type===`rotate-stop`)?e:null}function tt(e){return e!=null&&(e.type===`scale-start`||e.type===`scale`||e.type===`scale-stop`)?e:null}function nt(e,t,n,r){if(t.geometry==null||t.geometry?.type!==`point`)return!1;let i=t.attributes,a=!1,o=r.rotation,s=et(n.toolEventInfo);if(o!=null&&s!=null){let{field:n,getValue:r}=o;if(s.type===`rotate-stop`)o.isUpdatingInteractively=!1,o.setInitialValue(t.getAttribute(n));else{o.isUpdatingInteractively=!0;let c=r(s.angle,e);c!==i[n]&&t.setAttribute(n,c),a=!0}}let c=r.size,l=tt(n.toolEventInfo);if(c!=null&&l!=null){let{field:n,getValue:r}=c;if(l.type===`scale-stop`)c.isUpdatingInteractively=!1,c.setInitialValue(t.getAttribute(n));else{c.isUpdatingInteractively=!0;let o=r(l.xScale,e);o!==i[n]&&t.setAttribute(n,o),a=!0}}return a}async function rt({feature:e,featureClone:t,sketchLayer:n,sketchViewModel:r,getUpdateOptions:i,view:a,visualVariableAttributes:l,addHandle:u,updatingHandles:d,onUpdate:p}){await D(t,a.type===`2d`?a.scale:null);let m=null;if(r?.view?.type===`2d`){let e=f(e=>D(t,e));m=d.add(()=>r?.view?.scale,t=>d.consumePromise(e(t)))}let h=t.sourceLayer,g=ct(a,h);await Z({graphic:t,sketchLayer:n,sketchViewModel:r,sourceLayer:h,updateOptions:i(),visualVariables:l});let _=null;g.then(e=>_=e).catch(()=>{});let v=l.size,y=l.rotation,b=d.add(()=>e.attributes,async e=>{let n=!1;for(let r in e){let i=e[r];i!==t.getAttribute(r)&&(t.setAttribute(r,i),v!=null&&!v.isUpdatingInteractively&&v.field===r&&v.setInitialValue(i),y!=null&&!y.isUpdatingInteractively&&y.field===r&&y.setInitialValue(i),(_==null||_.requiredFields.includes(r))&&(n=!0))}n&&await d.addPromise(D(t,a.type===`2d`?a.scale:null))}),x=r.on(`update`,async e=>{let t=e.graphics[0],o={graphic:t,sketchLayer:n,sketchViewModel:r,sourceLayer:h,updateOptions:i(),visualVariables:l};if(e.state===`complete`){let e=new AbortController;u(c(e)),d.consumePromise(ee(()=>a.activeTool===null,e.signal).then(async()=>{if(!e.signal.aborted)return e.abort(),Z(o)}))}else nt(a,t,e,l)&&await d.addPromise(D(t,a.type===`2d`?a.scale:null)),p($(t),e)}),S=te(()=>a.activeTool!=null&&a.activeTool!==r.activeComponent,()=>r.cancel()),C=r.on([`undo`,`redo`],e=>{p($(e.graphics[0]),e)});return o([C,x,S,s(()=>r.cancel()),b,m])}const Q={icon:_(24),text:_(12),line:_(1),viewScaleSizeFactor:100};function it(e,t,n){let r=!1;return e.filter(e=>r?!0:(r=e===t,r)).map(e=>n[e]())}function at(e,t){e.viewModel.syncFeatureTemplates();let n=e.creationInfo;if(t[0].id===`awaiting-feature-creation-info`&&n){let r=n.layer,i=e.viewModel.getTemplatesForLayer(r);i.length===1&&r.type!==`scene`&&(n.template=i[0],t.shift())}return t}function ot(e){switch(e){case`unknown`:return null;default:return e}}const st=e=>e.includes(`-stop`)||e.includes(`vertex-`),ct=(e,t)=>{let n=t.type===`subtype-sublayer`?t.parent:t;return e.whenLayerView(n)};function lt(e){return`createInteractiveEditSession`in e}function $(e){let t=e.geometry;if(t?.type===`mesh`){let n=e.cloneShallow();return n.attributes=l(e.attributes),n.geometry=t.cloneShallow(),n.geometry.transform=t.transform?.clone()??null,n}return e.clone()}function ut(e){return e.acquireCursor(`progress`)}function dt(e){for(let t of e){let{destinationGraphic:e,destinationField:n,sourceGraphic:r,sourceField:i}=t;e.setAttribute(n,r.getAttribute(i))}}function ft(e){let t=e.templateExecutorInfo?.completionResults;return t?.length?(t.forEach(e=>dt(e.relationships)),t.flatMap(e=>e.edits)):null}function pt(e){let t=be(e)?e.activeWorkflow:e;if(t==null)return[];if(xe(t))return t.data.layers;let n=t.layer;return n?[n]:[]}function mt({attributes:e},t){let n=new Set;n.add(t.objectIdField),`uniqueIdFields`in t&&t.uniqueIdFields&&t.uniqueIdFields.length>0&&v(n,t.uniqueIdFields);let r={};for(let t of n)e[t]!=null&&(r[t]=e[t]);if(t.type===`scene`&&t.infoFor3D!=null){let n=t.associatedLayer?.globalIdField;n!=null&&(e[n]=e[n])}return r}function ht(e){if(!gt(e))return e;let t=new Map;for(let n of e){let e=n.getObjectId();if(e!=null){let r=n.sourceLayer??n.layer;d(t,r,()=>[]).push(e)}}return Array.from(t.entries()).map(([e,t])=>({layer:e,objectIds:t}))}function gt(e){return e.length===0||de(e[0])}function _t({drawTool:e},t){let n=e?.mostDownstreamPlugin?.configuration?.curveTypes;if(!t||!n||n.length===0)return!1;let r=new Set(t.capabilities.supportedCurveTypes);return n.some(e=>!r.has(e))}function vt(e,t){let n=new Set(t.capabilities.supportedCurveTypes);return e.some(({geometry:e})=>e&&C(e)&&ne(e,n))}function yt({filter:e,forEachFeature:t,forEachValueChange:n}){return r=>{for(let{feature:i,changes:a}of r.data)if(!e||e(i)){for(let{fieldName:e,value:t}of a)n?.(e,t,i);t?.(i,a)}}}export{_t as activeSketchToolDrawsUnsupportedCurve,G as appendAllUtilityNetworkAssociationRelationships,at as avoidFeatureTemplateSelectionWithOnlyOneItem,lt as canCreateInteractiveEditSession,$ as cloneGraphicExceptMesh,vt as containsUnsupportedCurve,B as createLayerIdMap,V as createRelationshipKeyMap,L as createToolFromGeometryType,it as createWorkflowSteps,Je as fetchCandidates,Ze as fetchFullFeatures,H as findAllDependencies,K as findChangesByGlobalId,Y as findEditorItemForLayer,Ke as findEditorItemForLayerOrThrow,qe as findLayerInfo,U as generateHashForRelationship,pt as getLayersFromWorkflow,N as getRotationVariableAttribute,ft as getServiceEditsFromWorkflowData,R as getServiceInfoForLayer,Ue as getServiceLayersById,P as getSizeVariableAttribute,M as getVisualVariableAttributes,j as getVisualVariablesForLayer,yt as handleFormValuesChangeEvent,Te as isAnyUpdateLeafWorkflow,Ee as isBatchAttributeFormViewModel,gt as isGraphicsArray,Oe as isMergeFeaturesWorkflow,je as isMergeWorkflowOptions,Ae as isParentWorkflow,ke as isSplitFeatureWorkflow,Me as isSplitWorkflowOptions,st as isTerminalUpdateEventType,A as isUpdateFeaturesWorkflow,Pe as isUpdateFeaturesWorkflowOptions,De as isUpdateRecordWorkflow,W as isUtilityNetworkAssociationsTable,mt as makeMinimalAttributes,We as orderEditsByRelationshipDependencies,dt as setRelationshipFields,rt as setUpGeometryUpdate,Re as setUpSketchCreateWatchers,$e as setVisualVariablesAndElevationInfoForUpdate,ut as showProgressCursor,Q as sizeDefaults,ot as sizeVariableUnitToLengthUnit,Le as startCreatingNewFeature,Z as startUpdatingFeatureGeometry,Qe as syncUpdateOptions,ht as toFeatureInfos,nt as visualVariableInteractiveUpdate,ct as whenEditorLayerView,Ne as workflowInfluencesOutcomeOfParent};
2
+ import e from"../../Color.js";import t from"../../Graphic.js";import{isSome as n,equals as r,addMany as i}from"../../core/arrayUtils.js";import a from"../../core/Error.js";import{handlesGroup as o,makeHandle as s,abortHandle as c}from"../../core/handleUtils.js";import{clone as l}from"../../core/lang.js";import u from"../../core/Logger.js";import{getOrCreateMapValue as d}from"../../core/MapUtils.js";import{debounce as f,isPromiseLike as p,whenOrAbort as m}from"../../core/promiseUtils.js";import{watch as h,on as g,whenOnce as ee,when as te}from"../../core/reactiveUtils.js";import{onePixelInPoints as _,px2pt as v}from"../../core/screenUtils.js";import{addMany as y}from"../../core/SetUtils.js";import{isSharedTemplateOrMetadata as b,isSharedGroupTemplate as x,getCreationAttributes as S,isSharedPresetTemplate as C}from"../../editing/templateUtils.js";import{isCurvedGeometry as w,hasUnsupportedCurve as ne}from"../../geometry/support/curves/curveUtils.js";import re from"../../layers/GraphicsLayer.js";import{featureHasFields as ie,fixFields as ae,getDisplayFieldName as oe}from"../../layers/support/fieldUtils.js";import{isSubtypeSublayer as se}from"../../layers/support/layerUtils.js";import{calculateTolerance as ce}from"../../renderers/support/clickToleranceUtils.js";import{meterIn as le}from"../../renderers/support/lengthUtils.js";import{isRenderer as ue}from"../../renderers/support/typeUtils.js";import{getTransformationType as de}from"../../renderers/visualVariables/support/sizeVariableUtils.js";import{isGraphic as fe}from"../../support/graphicInstanceUtils.js";import pe from"../../symbols/SimpleFillSymbol.js";import T from"../../symbols/SimpleLineSymbol.js";import me from"../../symbols/SimpleMarkerSymbol.js";import{to3D as he}from"../../symbols/support/symbolConversion.js";import{getDisplayedSymbol as E}from"../../symbols/support/symbolUtils.js";import{getServices as ge}from"../../undoredo/support/Services.js";import{defaultDrawingMode as _e}from"../../views/draw/drawingModes.js";import{updateGraphicSymbolWhenRequired as D,fetchFullFeaturesByObjectId as ve}from"../../views/draw/support/editingSessionUtils.js";import{createQueryGeometry as ye}from"../../views/support/drapedUtils.js";import{filterGraphicHits as O,hitTestSelectSimilarDistance as be}from"../../views/support/hitTestSelectUtils.js";import{isNextOrLegacyUpdateWorkflow as xe,isNextOrLegacyUpdateFeaturesWorkflow as Se}from"./compatibilityAdapters.js";import{dependencySort as Ce}from"./support/dependencySort.js";import{isDrawGraphicTool as k,isDrawTool as we}from"../Sketch/support/sketchUtils.js";const Te=()=>u.getLogger(`esri.widgets.Editor.workflowUtils`);function Ee(e){return ke(e)||Oe(e)}function De(e){return!!e&&`features`in e}function Oe(e){return e!=null&&e.type===`update-features`}function ke(e){return e!=null&&e.type.includes(`update-`)&&`fullFeature`in e}function Ae(e){return e!=null&&e.type===`merge-features`}function A(e){return e!=null&&e.type===`split-feature`}function je(e){let t=e?.type;return t===`update-feature`||t===`update-table-record`||t===`update-features`||t===`split-feature`}function Me(e){return e?.type===`merge`}function Ne(e){return e?.type===`split`}function Pe(e){return Ae(e)||A(e)}function Fe(e){return e?.type===`update-multiple`}function j(e){let t=e&&`renderer`in e?e.renderer:null;if(!I(t))return{rotation:null,size:null};let n=t.getVisualVariablesForType(`rotation`).filter(e=>(!e.axis||e.axis===`heading`)&&e.field&&!e.valueExpression),r=t.getVisualVariablesForType(`size`).filter(e=>e.field&&!e.useSymbolValue&&!e.valueExpression&&de(e)===`real-world-size`);return{rotation:n.length===1?n[0]:null,size:r.length===1?r[0]:null}}function M(e){let t=e.sourceLayer;if(!(t&&`renderer`in t&&I(t.renderer)))return{rotation:null,size:null};let{rotation:n,size:r}=j(t),i=null,a=null;if(n){let e=t.fields?.filter(e=>e.name===n.field);i=N(n,e?.length===1?e[0]:null)}if(r){let e=t.fields?.filter(e=>e.name===r.field);a=P(r,e?.length===1?e[0]:null)}return{rotation:i,size:a}}function N(e,t){let n=(e.axis||`heading`)===`heading`&&e.rotationType===`arithmetic`?-1:1,r=t?.type??`double`,i={initial:0,current:0};return{field:e.field,fieldType:r,getDefaultValue:()=>Promise.resolve(0),getValue:e=>(i.current=i.initial-n*e,F((i.current+360)%360,r)),setInitialValue:e=>{i.initial=e,i.current=0},isUpdatingInteractively:!1,rotationType:e.rotationType??`geographic`}}function Ie(e,t){switch(t){case`width`:return e[0];case`depth`:return e[1];case`height`:return e[2];default:return e[2]||e[1]||e[0]}}async function Le(e,t,n){if(t==null)return 0;let{symbol:r}=he(t);if(r==null||r.type===`web-style`||r.type===`cim`)return 0;let i=r.symbolLayers.at(0);if(!i)return 0;switch(i.type){case`icon`:{let{computeIconLayerResourceSize:e}=await import(`../../symbols/support/symbolLayerUtils.js`);return Math.min(Q.icon,(await e(i,Q.icon))[0])||Q.icon}case`text`:return Q.text;case`line`:return Q.line;case`object`:{let{computeObjectLayerResourceSize:t}=await import(`../../symbols/support/symbolLayerUtils.js`);return Ie(await t(i,e.scale/Q.viewScaleSizeFactor),n)}case`path`:return e.scale/Q.viewScaleSizeFactor;case`extrude`:return e.scale/Q.viewScaleSizeFactor;case`fill`:case`water`:return 0;default:return 0}}function P(e,t){let n=e.axis,r=t?.type??`double`,i={initial:0,current:0},a=le[e.valueUnit]??1,o;return o=e.valueRepresentation===`area`?e=>(e*a/2)**2*Math.PI:e.valueRepresentation===`radius`||e.valueRepresentation===`distance`?e=>e*a/2:e=>e*a,{field:e.field,fieldType:r,getDefaultValue:async(e,t)=>F(o(await Le(t,e,n)),r),getValue:(e,t)=>(i.initial||=t.pixelSizeAt(t.center),i.current=i.initial*e,F(i.current,r)),setInitialValue:e=>{i.initial=e,i.current=0},isUpdatingInteractively:!1,displayUnit:st(e.valueUnit),axis:e.axis}}function F(e,t){switch(t){case`small-integer`:case`integer`:case`long`:return Math.round(e);case`double`:case`single`:return e;default:return 0}}function I(e){if(!ue(e))return!1;switch(e?.type){case`class-breaks`:case`simple`:case`unique-value`:case`dot-density`:case`dictionary`:case`pie-chart`:return!0;default:return!1}}function L(e,t){if(!e||!t)throw Error(`no geometry type`);if(e===`multipatch`)return{tool:`mesh`,createOptions:{mode:`hybrid`}};let n=new Map;n.set(`circle`,{mode:`freehand`}),n.set(`rectangle`,{mode:`freehand`});let r={mode:_e,optionsPerTool:n};if(b(t)){let i=t.defaultTool,a=x(t)?t.definition?.inputGeometryType??e:e;switch(i){case`freehand`:case`stream-line`:return{tool:a===`polyline`?`freehandPolyline`:`freehandPolygon`,createOptions:r};case`autocomplete-freehand-polygons`:case`stream-polygon`:return{tool:`freehandPolygon`,createOptions:r};case`autocomplete-polygons`:case`difference-polygon`:case`create-structures`:case`polygon`:case`trace`:return{tool:a===`polygon`?`polygon`:`polyline`,createOptions:r};case`circle`:return n.get(`circle`).preserveAspectRatio=!0,{tool:`circle`,createOptions:r};case`ellipse`:return n.get(`circle`).preserveAspectRatio=!1,{tool:`circle`,createOptions:r};case`create-points-along-line`:case`multipoint`:return{tool:`multipoint`,createOptions:r};case`line`:case`radial-line`:case`right-angle-line`:case`split`:case`two-point-line`:return{tool:`polyline`,createOptions:r};case`rectangle`:case`regular-polygon`:case`right-angle-polygon`:return{tool:`rectangle`,createOptions:r};case`elevation-point-from-contour`:case`elevation-point-from-dem`:case`parcel-seed`:case`point`:case`point-and-rotation`:case`point-at-end-of-line`:return{tool:`point`,createOptions:r}}}else{let i=t.drawingTool;if(i===`circle`||i===`ellipse`)return n.get(`circle`).preserveAspectRatio=i===`circle`,{tool:`circle`,createOptions:r};if(i===`rectangle`)return{tool:`rectangle`,createOptions:r};if(i===`freehand`)return{tool:e===`polygon`?`freehandPolygon`:`freehandPolyline`,createOptions:r}}return{tool:e,createOptions:r}}async function Re(e,t,n){let{creationInfo:r,fullTemplate:i}=n;if(!r)throw new a(`featureworkflow`,`No creation info provided.`);let o=r.layer,s=S(i,r.attributeOverrides,r.layer),{view:c}=e,l=c?.type===`2d`;!x(i)&&!C(i)&&await q(e,o,s,l?c.scale:null);let{capabilities:u}=o;t.elevationInfo=o.elevationInfo;let d=L(o.geometryType,i);e.defaultCreateOptions={graphicProperties:{attributes:s,sourceLayer:o},mode:d.createOptions.mode,optionsPerTool:d.createOptions.optionsPerTool,preserveAspectRatio:d.createOptions.preserveAspectRatio,hasZ:u.data.supportsZ,defaultZ:(l?u.editing.zDefault:null)??e.defaultCreateOptions.defaultZ},r.geometryToPlace==null?await e.create(d.tool):await e.place(r.geometryToPlace,{graphicProperties:{attributes:s,sourceLayer:o}})}async function ze(e){return o([Be(e),Ve(e)])}function Be({creationAttributes:e,data:t,sketchViewModel:n,view:r}){let{creationInfo:i}=t,{fullTemplate:a}=t;if(!i||r?.type!==`2d`||x(a)||C(a))return null;let o=f(t=>q(n,i.layer,e,t));return h(()=>r.scale,e=>o(e))}function Ve({data:t,sketchViewModel:n,view:r}){let{templateExecutorInfo:i}=t;if(!i)return null;let c=n.activeComponent;if(!r||!k(c)&&!we(c))return Te().error(new a(`featureworkflow`,`Failed to set up template feedback.`)),null;let l=new re({effect:`saturate(0.6) opacity(0.8)`,listMode:`hide`,title:`Shared Template Feedback Graphics`});r.map?.add(l);let{executor:u,serviceLayersById:d}=i,f=r.theme?.accentColor??new e([255,165,0,1]);return o([g(()=>c,[`cursor-update`,`vertex-add`],()=>{l.removeAll();let e=k(c)?c.graphic?.geometry:c.unprocessedGeometry;if(!e||!He(e))return;let t=u(e,`digitizing`);if(!p(t))for(let e of t.edits){let t=d.get(e.id);if(t&&e.addFeatures&&e.addFeatures.length!==0){for(let n of t)if(!n.isTable)for(let t of e.addFeatures){let e=Ue(t,f);e&&l.add(e)}}}}),s(()=>{r.map.remove(l),l.destroy()})])}function He(e){switch(e.type){case`point`:case`multipoint`:return!0;case`polyline`:{if(w(e))return e.curvePaths[0].length>1;let t=e.paths[0];return t?t.length>1:!1}case`polygon`:{if(w(e))return e.curveRings[0].length>2;let t=e.rings[0];return t?r(t.at(0),t.at(-1))?t.length>2:t.length>1:!1}default:return!1}}function Ue(e,n){let r=null;switch(e.geometry?.type){case`point`:case`multipoint`:r=new me({angle:0,color:n,outline:new T({cap:`round`,color:n,join:`round`,miterLimit:1,style:`solid`,width:1}),path:`undefined`,size:8,style:`circle`,xoffset:0,yoffset:0});break;case`polygon`:r=new pe({color:n,outline:new T({cap:`round`,color:n,join:`round`,miterLimit:1,style:`solid`,width:3}),style:`none`});break;case`polyline`:r=new T({cap:`round`,color:n,join:`round`,miterLimit:1,style:`solid`,width:2});break;default:return null}return new t({geometry:e.geometry,symbol:r,attributes:{...e.attributes}})}function R(e,t){let n=ge(t),r=se(e)?e.parent:e;return n.tablesAndLayersLookup.get(r)}function We(e,t){let n=R(e,t);if(!n)return new Map;let r=new Map;for(let e of n.layersAndTables)d(r,e.layerId,()=>[]).push(e);return r}function z(e){let t=e.objectIdField,n=e.globalIdField??``;return{id:e.layerId,identifierFields:{objectIdField:t,globalIdField:n},addFeatures:[],deleteAttachments:[],addAttachments:[],deleteFeatures:[],updateFeatures:[]}}function Ge(e){let{edits:t,serviceInfo:r,view:i,findOriginalFeature:a}=e,o=B(r.layersAndTables),s=r.layersAndTables.toArray(),{allEditData:c,editDataByLayerIdMap:l,editDataByIdMap:u}=Ke(t,o,a),d=H(c,V(s,l),l);if(i&&G(c,d,i),d.length===0)return t;let f=Ce(d,{continueOnCircularDependency:!0}).map(e=>u.get(e)).filter(n),p=new Map;for(let e of f)p.set(e.uniqueId,e);let m=[];for(let e of c)p.has(e.uniqueId)||m.push(e);let h=[],g=null;for(let e of f){let{layer:t}=e;switch(g==null?g=z(t):g.id!==t.layerId&&(h.push(g),g=z(t)),e.operationType){case`add`:case`modify`:g.addFeatures.push(e.after);break;case`delete`:g.deleteFeatures.push(e.before)}}g!==null&&h.push(g);for(let e of m){let t=e.layer.layerId,n=h.find(e=>e.id===t)??z(e.layer);switch(h.includes(n)||h.push(n),e.operationType){case`add`:n.addFeatures.push(e.after);break;case`modify`:n.updateFeatures.push(e.after);break;case`delete`:n.deleteFeatures.push(e.before);break;case`deleteAttachment`:n.deleteAttachments.push(e.attachmentId);break;case`addAttachment`:n.addAttachments.push(e.attachment)}}for(let e of h)e.deleteAttachments!==void 0&&e.deleteAttachments.length===0&&delete e.deleteAttachments,e.addAttachments!==void 0&&e.addAttachments.length===0&&delete e.addAttachments;return h}function B(e){let t=new Map;for(let n of e)t.set(n.layerId,n);return t}function V(e,t){let n=new Map;for(let r of e)for(let e of r.relationships??[])if(n.set(U(r,e),``),t.has(e.relatedTableId)){let i=t.get(e.relatedTableId);if(i.length>0){for(let t of i[0].layer.relationships??[])if(t.id===e.id){n.set(U(r,e),t.keyField);break}}}return n}function Ke(e,t,n){let r=new Map,i=[],o=new Map,s=1;for(let c of e){let e=[],l=t.get(c.id);if(!l)throw new a(`featureworkflow`,`Failed to prepare applyEdits payload. Layer with id ${c.id} not found.`);for(let t of c.addFeatures??[])e.push({uniqueId:`T${s++}`,operationType:`add`,layer:l,after:t});for(let t of c.deleteFeatures??[])e.push({uniqueId:`T${s++}`,operationType:`delete`,before:t,layer:l});for(let t of c.deleteAttachments??[])e.push({uniqueId:`T${s++}`,operationType:`deleteAttachment`,attachmentId:t,layer:l});for(let t of c.addAttachments??[])e.push({uniqueId:`T${s++}`,operationType:`addAttachment`,attachment:t,layer:l});for(let t of c.updateFeatures??[])e.push({uniqueId:`T${s++}`,operationType:`modify`,before:n(t),after:t,layer:l});r.set(l.layerId,e);for(let t of e)i.push(t),o.set(t.uniqueId,t)}return{allEditData:i,editDataByIdMap:o,editDataByLayerIdMap:r}}function H(e,t,n){let r=[];for(let i of e){let e=i.layer.relationships??[],{uniqueId:a}=i;for(let o of e){let e=o.keyField;if(o.role===`origin`){let s=n.get(o.relatedTableId);if(!s||s.length===0)continue;let c=U(i.layer,o),l=t.get(c);if(l===void 0||l===``)continue;switch(i.operationType){case`add`:for(let t of s)t!==i&&(t.operationType===`add`||t.operationType===`modify`)&&t.after.attributes[l]===i.after.attributes[e]&&r.push([a,t.uniqueId]);break;case`modify`:if(i.before.attributes[e]!==i.after.attributes[e])for(let t of s){let n=t.uniqueId;t!==i&&(t.operationType===`delete`?t.before.attributes[l]===i.before.attributes[e]?r.push([n,a]):t.before.attributes[l]===i.after.attributes[e]&&r.push([a,n]):t.operationType===`add`?t.after.attributes[l]===i.after.attributes[e]?r.push([a,n]):t.after.attributes[l]===i.before.attributes[e]&&r.push([n,a]):t.operationType===`modify`&&(t.before.attributes[l]===t.after.attributes[l]||t.after.attributes[l]===i.after.attributes[e]?r.push([a,n]):r.push([n,a])))}break;case`delete`:for(let t of s)t!==i&&(t.operationType===`delete`||t.operationType===`modify`)&&t.before.attributes[l]===i.before.attributes[e]&&r.push([t.uniqueId,a])}}}}return r}function U(e,t){return`${e.layerId}:${t.id}`}function W(e,t){return!!(t?.map&&`utilityNetworks`in t.map&&t.map.utilityNetworks?.length&&t.map.utilityNetworks.some(t=>!!(t.loaded&&e.url?.startsWith(t.featureServiceUrl)&&e.layerId===t.networkSystemLayers.associationsTableId)))}function G(e,t,n){let r=[];for(let t of e)W(t.layer,n)&&r.push(t);if(r.length===0)return;let i=[];for(let n of r){let r=n.layer;switch(n.operationType){case`delete`:i=[...K(n.before.attributes[r.fieldsIndex.get(`fromglobalid`).name],e),...K(n.before.attributes[r.fieldsIndex.get(`toglobalid`).name],e)];for(let e of i)t.push([n.uniqueId,e.uniqueId]);break;case`add`:i=[...K(n.after.attributes[r.fieldsIndex.get(`fromglobalid`).name],e),...K(n.after.attributes[r.fieldsIndex.get(`toglobalid`).name],e)];for(let e of i)t.push([e.uniqueId,n.uniqueId])}}}function K(e,t){let n=[],r=t.filter(({layer:e})=>e.globalIdField!==``&&e.globalIdField!=null);for(let t of r){let r=t.layer.globalIdField;(`before`in t&&t.before?.attributes[r]===e||`after`in t&&t.after?.attributes[r]===e)&&n.push(t)}return n}async function q(e,n,r,i){let a=new t({sourceLayer:n,attributes:r}),{rotation:o,size:s}=M(a),c=await E(a,{useSourceLayer:!0,scale:i}),l=!1;for(let t of[s,o])t!=null&&(r[t.field]??(r[t.field]=await t.getDefaultValue(c,e.view),l=!0));switch(l&&(c=await E(a,{useSourceLayer:!0,scale:i})),c?.type){case`simple-fill`:case`polygon-3d`:e.polygonSymbol=c;break;case`simple-line`:case`line-3d`:e.polylineSymbol=c;break;case`simple-marker`:case`picture-marker`:case`point-3d`:case`cim`:e.pointSymbol=c;break;case`mesh-3d`:e.meshSymbol=c}J(e.tooltipOptions,s,o)}function J(e,t,n){e.visualVariables=t!=null||n!=null?{size:t==null?null:{unit:t.displayUnit,axis:t.axis,valueType:t.fieldType},rotation:n==null?null:{valueType:n.fieldType,rotationType:n.rotationType??`geographic`}}:null}function Y(e,t){return e.find(e=>e.layer===t)}function qe(e,t){let n=Y(e,t);if(n==null)throw new a(`no-editorItem-found`,`The EditorViewModel provided did not have an EditorItem associated with the specified layer`);return n}function Je(e,t){return e?.find(e=>e.layer===t)}async function Ye(e,t,n,r){switch(t.type){case`3d`:return Xe(e,t,n,r);case`2d`:return Ze(e,t,n,r)}}async function Xe(e,t,n,r){if(e.length===0)return[];let{updatable:a,graphicsByLayer:o}=await n.defer(async()=>{let{results:i}=await m(be(t,n),r),a=new Map,o=e=>{let t=e.layer,n=a.get(t);if(!n){let e=[];return a.set(t,e),e}return n};O(i).forEach(({graphic:e})=>o(e).push(e));let s=e.filter(({capabilities:e,layer:t})=>e.update.enabled&&a.has(t));return s.length!==0&&n.stopPropagation(),{updatable:s,graphicsByLayer:a}});return m(Promise.allSettled(a.map(async({layer:e})=>{let t=o.get(e),n=X(e);if(t.every(e=>ie(e,n)))return t;let a=[];for(let e of t){a.push(e.getObjectId());let t=Object.keys(e.attributes);i(n,t)}let s=e.createQuery();return s.returnGeometry=!1,s.objectIds=a,s.outFields=ae(e.fieldsIndex,n),e.queryFeatures(s,{signal:r}).then(({features:e})=>e)})),r)}async function Ze(e,t,n,r){if(e.length===0)return[];let{mapPoint:i}=n;if(i==null)return[];let a=null,o=await n.defer(async()=>{let{results:i}=await m(t.hitTest(n),r);if(i.length===0)return[];let o=new Set;a=O(i),a.forEach(({graphic:e})=>e&&o.add(e.layer));let s=e.filter(e=>o.has(e.layer)&&e.supportsUpdateWorkflow);return s.length>0&&n.stopPropagation(),s});return m(Promise.allSettled(o.map(async({layer:e})=>{let o=e.createQuery();o.returnGeometry=!0,o.outFields=X(e);let s=`renderer`in e?ce({renderer:e.renderer,pointerType:n.pointerType}):0;o.geometry=ye(i,s,t),o.outSpatialReference=t.spatialReference;let{features:c}=await e.queryFeatures(o,{signal:r});return a?.forEach(({graphic:t})=>{t.layer===e&&!c.some(e=>e.getObjectId()===t.getObjectId())&&c.push(t)}),c})),r)}function X(e){return ae(e.fieldsIndex,[e.objectIdField,oe({displayField:`displayField`in e?e.displayField:null,fields:e.fields})])}async function Qe(e,t,r,i){let a=e.map(e=>e.getObjectId()??e.attributes[t.objectIdField]).filter(n);return await ve(a,t,r,i)}async function Z(e){let{graphic:t,sketchViewModel:n,sourceLayer:r,updateOptions:i,visualVariables:a}=e;await et(e);let o={multipleSelectionEnabled:!1,...i};return r.geometryType===`point`&&(o.enableRotation=a.rotation!=null,o.enableScaling=a.size!=null),n.update(t,o)}function $e(e,t){let{activeUpdateOptions:n}=e;n&&(e.activeUpdateOptions={...n,...t,reshapeOptions:{...n.reshapeOptions,...t.reshapeOptions},highlightOptions:{...n.highlightOptions,...t.highlightOptions}})}async function et(e){let{graphic:t,sketchLayer:n,sketchViewModel:r,sourceLayer:i,visualVariables:a}=e,o=!1,{rotation:s,size:c}=a;for(let e of[s,c]){if(e==null)continue;let n=t.getAttribute(e.field);if(n!=null)e.setInitialValue(n);else{let n=await e.getDefaultValue(t.symbol,r.view);e.setInitialValue(n),t.setAttribute(e.field,n),o=!0}}if(o){let e=r.view?.type===`2d`?r.view.scale:null;await D(t,e)}J(r.tooltipOptions,c,s),n.elevationInfo=i.elevationInfo}function tt(e){return e!=null&&(e.type===`rotate-start`||e.type===`rotate`||e.type===`rotate-stop`)?e:null}function nt(e){return e!=null&&(e.type===`scale-start`||e.type===`scale`||e.type===`scale-stop`)?e:null}function rt(e,t,n,r){if(t.geometry==null||t.geometry?.type!==`point`)return!1;let i=t.attributes,a=!1,o=r.rotation,s=tt(n.toolEventInfo);if(o!=null&&s!=null){let{field:n,getValue:r}=o;if(s.type===`rotate-stop`)o.isUpdatingInteractively=!1,o.setInitialValue(t.getAttribute(n));else{o.isUpdatingInteractively=!0;let c=r(s.angle,e);c!==i[n]&&t.setAttribute(n,c),a=!0}}let c=r.size,l=nt(n.toolEventInfo);if(c!=null&&l!=null){let{field:n,getValue:r}=c;if(l.type===`scale-stop`)c.isUpdatingInteractively=!1,c.setInitialValue(t.getAttribute(n));else{c.isUpdatingInteractively=!0;let o=r(l.xScale,e);o!==i[n]&&t.setAttribute(n,o),a=!0}}return a}async function it({feature:e,featureClone:t,sketchLayer:n,sketchViewModel:r,getUpdateOptions:i,view:a,visualVariableAttributes:l,addHandle:u,updatingHandles:d,onUpdate:p}){await D(t,a.type===`2d`?a.scale:null);let m=null;if(r?.view?.type===`2d`){let e=f(e=>D(t,e));m=d.add(()=>r?.view?.scale,t=>d.consumePromise(e(t)))}let h=t.sourceLayer,g=lt(a,h);await Z({graphic:t,sketchLayer:n,sketchViewModel:r,sourceLayer:h,updateOptions:i(),visualVariables:l});let _=null;g.then(e=>_=e).catch(()=>{});let v=l.size,y=l.rotation,b=d.add(()=>e.attributes,async e=>{let n=!1;for(let r in e){let i=e[r];i!==t.getAttribute(r)&&(t.setAttribute(r,i),v!=null&&!v.isUpdatingInteractively&&v.field===r&&v.setInitialValue(i),y!=null&&!y.isUpdatingInteractively&&y.field===r&&y.setInitialValue(i),(_==null||_.requiredFields.includes(r))&&(n=!0))}n&&await d.addPromise(D(t,a.type===`2d`?a.scale:null))}),x=r.on(`update`,async e=>{let t=e.graphics[0],o={graphic:t,sketchLayer:n,sketchViewModel:r,sourceLayer:h,updateOptions:i(),visualVariables:l};if(e.state===`complete`){let e=new AbortController;u(c(e)),d.consumePromise(ee(()=>a.activeTool===null,e.signal).then(async()=>{if(!e.signal.aborted)return e.abort(),Z(o)}))}else rt(a,t,e,l)&&await d.addPromise(D(t,a.type===`2d`?a.scale:null)),p($(t),e)}),S=te(()=>a.activeTool!=null&&a.activeTool!==r.activeComponent,()=>r.cancel()),C=r.on([`undo`,`redo`],e=>{p($(e.graphics[0]),e)});return o([C,x,S,s(()=>r.cancel()),b,m])}const Q={icon:v(24),text:v(12),line:_,viewScaleSizeFactor:100};function at(e,t,n){let r=!1;return e.filter(e=>r?!0:(r=e===t,r)).map(e=>n[e]())}function ot(e,t){e.viewModel.syncFeatureTemplates();let n=e.creationInfo;if(t[0].id===`awaiting-feature-creation-info`&&n){let r=n.layer,i=e.viewModel.getTemplatesForLayer(r);i.length===1&&r.type!==`scene`&&(n.template=i[0],t.shift())}return t}function st(e){switch(e){case`unknown`:return null;default:return e}}const ct=e=>e.includes(`-stop`)||e.includes(`vertex-`),lt=(e,t)=>{let n=t.type===`subtype-sublayer`?t.parent:t;return e.whenLayerView(n)};function ut(e){return`createInteractiveEditSession`in e}function $(e){let t=e.geometry;if(t?.type===`mesh`){let n=e.cloneShallow();return n.attributes=l(e.attributes),n.geometry=t.cloneShallow(),n.geometry.transform=t.transform?.clone()??null,n}return e.clone()}function dt(e){return e.acquireCursor(`progress`)}function ft(e){for(let t of e){let{destinationGraphic:e,destinationField:n,sourceGraphic:r,sourceField:i}=t;e.setAttribute(n,r.getAttribute(i))}}function pt(e){let t=e.templateExecutorInfo?.completionResults;return t?.length?(t.forEach(e=>ft(e.relationships)),t.flatMap(e=>e.edits)):null}function mt(e){let t=xe(e)?e.activeWorkflow:e;if(t==null)return[];if(Se(t))return t.data.layers;let n=t.layer;return n?[n]:[]}function ht({attributes:e},t){let n=new Set;n.add(t.objectIdField),`uniqueIdFields`in t&&t.uniqueIdFields&&t.uniqueIdFields.length>0&&y(n,t.uniqueIdFields);let r={};for(let t of n)e[t]!=null&&(r[t]=e[t]);if(t.type===`scene`&&t.infoFor3D!=null){let n=t.associatedLayer?.globalIdField;n!=null&&(e[n]=e[n])}return r}function gt(e){if(!_t(e))return e;let t=new Map;for(let n of e){let e=n.getObjectId();if(e!=null){let r=n.sourceLayer??n.layer;d(t,r,()=>[]).push(e)}}return Array.from(t.entries()).map(([e,t])=>({layer:e,objectIds:t}))}function _t(e){return e.length===0||fe(e[0])}function vt({drawTool:e},t){let n=e?.mostDownstreamPlugin?.configuration?.curveTypes;if(!t||!n||n.length===0)return!1;let r=new Set(t.capabilities.supportedCurveTypes);return n.some(e=>!r.has(e))}function yt(e,t){let n=new Set(t.capabilities.supportedCurveTypes);return e.some(({geometry:e})=>e&&w(e)&&ne(e,n))}function bt({filter:e,forEachFeature:t,forEachValueChange:n}){return r=>{for(let{feature:i,changes:a}of r.data)if(!e||e(i)){for(let{fieldName:e,value:t}of a)n?.(e,t,i);t?.(i,a)}}}export{vt as activeSketchToolDrawsUnsupportedCurve,G as appendAllUtilityNetworkAssociationRelationships,ot as avoidFeatureTemplateSelectionWithOnlyOneItem,ut as canCreateInteractiveEditSession,$ as cloneGraphicExceptMesh,yt as containsUnsupportedCurve,B as createLayerIdMap,V as createRelationshipKeyMap,L as createToolFromGeometryType,at as createWorkflowSteps,Ye as fetchCandidates,Qe as fetchFullFeatures,H as findAllDependencies,K as findChangesByGlobalId,Y as findEditorItemForLayer,qe as findEditorItemForLayerOrThrow,Je as findLayerInfo,U as generateHashForRelationship,mt as getLayersFromWorkflow,N as getRotationVariableAttribute,pt as getServiceEditsFromWorkflowData,R as getServiceInfoForLayer,We as getServiceLayersById,P as getSizeVariableAttribute,M as getVisualVariableAttributes,j as getVisualVariablesForLayer,bt as handleFormValuesChangeEvent,Ee as isAnyUpdateLeafWorkflow,De as isBatchAttributeFormViewModel,_t as isGraphicsArray,Ae as isMergeFeaturesWorkflow,Me as isMergeWorkflowOptions,je as isParentWorkflow,A as isSplitFeatureWorkflow,Ne as isSplitWorkflowOptions,ct as isTerminalUpdateEventType,Oe as isUpdateFeaturesWorkflow,Fe as isUpdateFeaturesWorkflowOptions,ke as isUpdateRecordWorkflow,W as isUtilityNetworkAssociationsTable,ht as makeMinimalAttributes,Ge as orderEditsByRelationshipDependencies,ft as setRelationshipFields,it as setUpGeometryUpdate,ze as setUpSketchCreateWatchers,et as setVisualVariablesAndElevationInfoForUpdate,dt as showProgressCursor,Q as sizeDefaults,st as sizeVariableUnitToLengthUnit,Re as startCreatingNewFeature,Z as startUpdatingFeatureGeometry,$e as syncUpdateOptions,gt as toFeatureInfos,rt as visualVariableInteractiveUpdate,lt as whenEditorLayerView,Pe as workflowInfluencesOutcomeOfParent};