@arcgis/core 4.28.0-rc.2 → 4.28.0-rc.4

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 (163) hide show
  1. package/arcade/ArcadeDate.js +1 -1
  2. package/arcade/functions/featuresetbase.js +1 -1
  3. package/assets/esri/core/workers/RemoteClient.js +1 -1
  4. package/assets/esri/core/workers/chunks/{0e354096ad8817971eed.js → 02d235849ba93541d7ad.js} +1 -1
  5. package/assets/esri/core/workers/chunks/0422c5160491fbcf01dc.js +1 -0
  6. package/assets/esri/core/workers/chunks/1da721608993783dc9cf.js +1 -0
  7. package/assets/esri/core/workers/chunks/224e79f6c172da444e0a.js +1 -0
  8. package/assets/esri/core/workers/chunks/{ca3d5803cdf035d7389d.js → 30776102fbab294bfe7b.js} +1 -1
  9. package/assets/esri/core/workers/chunks/{61dec8399919b278b636.js → 3ac9001b19a90faf5573.js} +1 -1
  10. package/assets/esri/core/workers/chunks/{fa6103e3d4e857b0035b.js → 3dcb2a82e1e4b520c9c9.js} +11 -8
  11. package/assets/esri/core/workers/chunks/41081c921037e543a22f.js +1 -0
  12. package/assets/esri/core/workers/chunks/4564a7885d045a850887.js +1 -0
  13. package/assets/esri/core/workers/chunks/4adf3a8c6b49c381a633.js +1 -0
  14. package/assets/esri/core/workers/chunks/{2721aa6b6941b28b9758.js → 63c8bf00120a4e67f5b0.js} +1 -1
  15. package/assets/esri/core/workers/chunks/6bc1f6f8a2408fa4bb6a.js +1 -0
  16. package/assets/esri/core/workers/chunks/74951370a341f02d3714.js +1 -0
  17. package/assets/esri/core/workers/chunks/78e49a70193e5adea17c.js +1 -0
  18. package/assets/esri/core/workers/chunks/7b8377b3a9f78f9d3613.js +1 -0
  19. package/assets/esri/core/workers/chunks/{fd28400141a6751327ae.js → 7cf7f2b991a7cbdad2ce.js} +1 -1
  20. package/assets/esri/core/workers/chunks/830d99e6c58a52a58973.js +1 -0
  21. package/assets/esri/core/workers/chunks/{1a723bb4a341f645e5fe.js → 83b8141f0c80e3448012.js} +1 -1
  22. package/assets/esri/core/workers/chunks/8f7997e8e6ee9e56239f.js +1 -0
  23. package/assets/esri/core/workers/chunks/934c32c49bb9e21482fd.js +1 -0
  24. package/assets/esri/core/workers/chunks/{a4341ec0fe89b865d849.js → a160576f21ada91995ac.js} +1 -1
  25. package/assets/esri/core/workers/chunks/a1e16c33f1843dbdce26.js +1 -0
  26. package/assets/esri/core/workers/chunks/{d07235ce2765a25b9be4.js → a50ec5b647a160199cb2.js} +1 -1
  27. package/assets/esri/core/workers/chunks/b6bd31674076e543d8b2.js +1 -0
  28. package/assets/esri/core/workers/chunks/{77923afde29ae1ff10ca.js → b6e86e179f99b5cf8dff.js} +1 -1
  29. package/assets/esri/core/workers/chunks/c3ddf5dbc34f118002df.js +1 -0
  30. package/assets/esri/core/workers/chunks/{562eafa5090827ebb7ec.js → c87e9280681c20d042b5.js} +1 -1
  31. package/assets/esri/core/workers/chunks/{7b3d5f044c96e2c2af11.js → d191267d91a53db42956.js} +1 -1
  32. package/assets/esri/core/workers/chunks/ffa330a19a09679212fb.js +1 -0
  33. package/assets/esri/themes/base/widgets/_BasemapGallery.scss +9 -13
  34. package/assets/esri/themes/base/widgets/_Features.scss +5 -0
  35. package/assets/esri/themes/base/widgets/_Legend.scss +1 -1
  36. package/assets/esri/themes/base/widgets/_Popup.scss +0 -1
  37. package/assets/esri/themes/base/widgets/_TimeZoneLabel.scss +3 -3
  38. package/assets/esri/themes/dark/main.css +1 -1
  39. package/assets/esri/themes/light/main.css +1 -1
  40. package/assets/esri/themes/light/view.css +1 -1
  41. package/geometry/support/meshUtils/georeference.js +1 -1
  42. package/interfaces.d.ts +1506 -314
  43. package/intl/date.js +1 -1
  44. package/kernel.js +1 -1
  45. package/layers/FeatureLayer.js +1 -1
  46. package/layers/GroupLayer.js +1 -1
  47. package/layers/OrientedImageryLayer.js +1 -1
  48. package/layers/SceneLayer.js +1 -1
  49. package/layers/graphics/controllers/I3SOnDemandController.js +1 -1
  50. package/layers/graphics/data/QueryEngineResult.js +1 -1
  51. package/layers/graphics/data/queryValidationUtils.js +1 -1
  52. package/layers/mixins/ArcGISMapService.js +1 -1
  53. package/layers/save/groupLayerUtils.js +1 -1
  54. package/layers/save/utils.js +1 -1
  55. package/layers/support/ImageElement.js +1 -1
  56. package/layers/support/LayerContingentValuesCache.js +1 -1
  57. package/layers/support/Sublayer.js +1 -1
  58. package/layers/support/Subtype.d.ts +4 -0
  59. package/layers/support/Subtype.js +1 -1
  60. package/layers/support/imageryRendererUtils.js +1 -1
  61. package/networks/Network.js +1 -1
  62. package/package.json +1 -1
  63. package/portal/support/jsonContext.js +1 -1
  64. package/portal/support/layersLoader.js +1 -1
  65. package/rest/featureService/FeatureService.d.ts +4 -0
  66. package/rest/featureService/FeatureService.js +1 -1
  67. package/rest/featureService/utils.d.ts +4 -0
  68. package/rest/query/operations/query.js +1 -1
  69. package/smartMapping/support/utils.js +1 -1
  70. package/statistics/utils.js +1 -1
  71. package/support/basemapUtils.js +1 -1
  72. package/support/revision.js +1 -1
  73. package/versionManagement/VersionManagementService.d.ts +4 -0
  74. package/versionManagement/VersionManagementService.js +1 -1
  75. package/views/2d/engine/Container.js +1 -1
  76. package/views/2d/engine/vectorTiles/VTLPainter3D.js +1 -1
  77. package/views/2d/engine/webgl/Overlay.js +1 -1
  78. package/views/2d/input/handlers/KeyPan.js +1 -1
  79. package/views/2d/interactive/editingTools/manipulations/DragManipulation.js +1 -1
  80. package/views/2d/layers/FeatureLayerView2D.js +1 -1
  81. package/views/3d/analysis/Slice/RotateManipulator.js +1 -1
  82. package/views/3d/analysis/Slice/ShiftManipulator.js +1 -1
  83. package/views/3d/interactive/editingTools/transformGraphic/ExtentTransformTool.js +1 -1
  84. package/views/3d/interactive/measurementTools/areaMeasurement3D/AreaMeasurement3DView.js +1 -1
  85. package/views/3d/interactive/visualElements/LineVisualElement.js +1 -1
  86. package/views/3d/layers/I3SMeshView3D.js +1 -1
  87. package/views/3d/layers/MediaLayerView3D.js +1 -1
  88. package/views/3d/layers/SceneLayerWorker.js +1 -1
  89. package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
  90. package/views/3d/layers/graphics/defaultSymbolComplexity.js +1 -1
  91. package/views/3d/layers/graphics/elevationAlignPointsInFeatures.js +1 -1
  92. package/views/3d/layers/i3s/I3SClientNodeLoader.js +1 -1
  93. package/views/3d/support/MemoryController.js +1 -1
  94. package/views/3d/support/PBFDecoder.js +1 -1
  95. package/views/3d/support/ResourceController.js +1 -1
  96. package/views/3d/terrain/OverlayFramebufferObject.js +1 -1
  97. package/views/3d/webgl-engine/core/FBOCache.js +1 -1
  98. package/views/3d/webgl-engine/core/FBOPool.js +5 -0
  99. package/views/3d/webgl-engine/core/shaderLibrary/attributes/InstancedDoublePrecision.glsl.js +9 -6
  100. package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js +2 -2
  101. package/views/3d/webgl-engine/effects/highlight/Highlight.js +1 -1
  102. package/views/3d/webgl-engine/effects/ssao/SSAO.js +1 -1
  103. package/views/3d/webgl-engine/lib/Camera.js +1 -1
  104. package/views/3d/webgl-engine/lib/OffscreenRendering.js +1 -1
  105. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  106. package/views/3d/webgl-engine/lib/Texture.js +1 -1
  107. package/views/3d/webgl-engine/lib/textureUtils.js +1 -1
  108. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  109. package/views/3d/webgl-engine/parts/RenderView.js +1 -1
  110. package/views/3d/webgl-engine/parts/ScreenshotManager.js +1 -1
  111. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/EdgeUtil.glsl.js +1 -1
  112. package/views/draw/DrawOperation.js +1 -1
  113. package/views/draw/support/Reshape.js +1 -1
  114. package/views/interactive/sketch/constraints.js +1 -1
  115. package/views/interactive/snapping/FeatureSnappingEngine.js +1 -1
  116. package/views/interactive/snapping/featureSources/FeatureCollectionSnappingSource.js +1 -1
  117. package/views/interactive/snapping/featureSources/FeatureServiceSnappingSource.js +1 -1
  118. package/views/interactive/snapping/featureSources/GraphicsSnappingSource.js +1 -1
  119. package/views/interactive/snapping/featureSources/featureServiceSource/FeatureServiceSnappingSourceWorker.js +1 -1
  120. package/views/interactive/snapping/featureSources/featureServiceSource/FeatureServiceSnappingSourceWorkerHandle.js +1 -1
  121. package/views/interactive/snapping/featureSources/queryEngineUtils.js +1 -1
  122. package/views/interactive/snapping/featureSources/snappingCandidateElevationAlignment.js +1 -1
  123. package/webdoc/support/writeUtils.js +1 -1
  124. package/widgets/BasemapGallery.js +1 -1
  125. package/widgets/DirectionalPad.js +1 -1
  126. package/widgets/Editor/CreateFeaturesWorkflow.js +1 -1
  127. package/widgets/Editor/EditorViewModel.js +1 -1
  128. package/widgets/Editor/UpdateRecordWorkflow.js +1 -1
  129. package/widgets/Editor/UpdateWorkflow.js +1 -1
  130. package/widgets/Editor/VisibleElements.js +1 -1
  131. package/widgets/Editor/workflowUtils.js +1 -1
  132. package/widgets/Editor.js +1 -1
  133. package/widgets/FeatureForm/FieldInput.js +1 -1
  134. package/widgets/FeatureForm/FormExpressionsManager.js +1 -1
  135. package/widgets/FeatureForm.js +1 -1
  136. package/widgets/Features.js +1 -1
  137. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.d.ts +4 -0
  138. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  139. package/widgets/OrientedImageryViewer.js +1 -1
  140. package/widgets/TimeSlider.js +1 -1
  141. package/widgets/TimeZoneLabel.js +1 -1
  142. package/widgets/UtilityNetworkTrace/UtilityNetworkTraceViewModel.js +1 -1
  143. package/widgets/UtilityNetworkTrace.js +1 -1
  144. package/widgets/support/dateUtils.js +1 -1
  145. package/assets/esri/core/workers/chunks/00da3c16741a9bc47f3a.js +0 -1
  146. package/assets/esri/core/workers/chunks/0e4646d14fa0775bf463.js +0 -1
  147. package/assets/esri/core/workers/chunks/4e0bf30da4281070e453.js +0 -1
  148. package/assets/esri/core/workers/chunks/51b8913dff24e693bd25.js +0 -1
  149. package/assets/esri/core/workers/chunks/5e907ec0ee1565b5fbbc.js +0 -1
  150. package/assets/esri/core/workers/chunks/7388fd97e7b1a2142744.js +0 -1
  151. package/assets/esri/core/workers/chunks/7648f3341b7dff2825c3.js +0 -1
  152. package/assets/esri/core/workers/chunks/92d8f75e616afa5c761e.js +0 -1
  153. package/assets/esri/core/workers/chunks/9c77d69a13ec22cdd760.js +0 -1
  154. package/assets/esri/core/workers/chunks/a821fa1870b83fed5d31.js +0 -1
  155. package/assets/esri/core/workers/chunks/a877a4826cd6a46ec99b.js +0 -1
  156. package/assets/esri/core/workers/chunks/b251d8a856dc8b9406e0.js +0 -1
  157. package/assets/esri/core/workers/chunks/c416df0668f6c596095f.js +0 -1
  158. package/assets/esri/core/workers/chunks/d8c696da42f8f8919b83.js +0 -1
  159. package/assets/esri/core/workers/chunks/f0d342303fc20e266d27.js +0 -1
  160. package/assets/esri/core/workers/chunks/fac3e57784d7f37053af.js +0 -1
  161. package/assets/esri/core/workers/chunks/fc95b1a36ed68b851400.js +0 -1
  162. package/widgets/DirectionalPad/DirectionalPadViewModel.d.ts +0 -4
  163. package/widgets/DirectionalPad.d.ts +0 -4
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import{prefersReducedMotion as t}from"../core/a11yUtils.js";import i from"../core/Logger.js";import{watch as s,initial as a}from"../core/reactiveUtils.js";import{property as o}from"../core/accessorSupport/decorators/property.js";import{cast as r}from"../core/accessorSupport/decorators/cast.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as n}from"../core/accessorSupport/decorators/subclass.js";import l from"../layers/support/rasterDatasets/RasterFactory.js";import c from"./Widget.js";import{getAllArcPath as d}from"./OrientedImageryViewer/arcUtils.js";import{defaultVisibleElements as h,css as g,navigationToolRotationFrom as m,navigationToolRotationTo as v,base as p,root as u,segmentArcs as b,sectorsRadii as y,featureCircleRadius as _,navigation as C,navigationToolDimensionLength as w}from"./OrientedImageryViewer/constants.js";import I from"./OrientedImageryViewer/OrientedImageryViewerViewModel.js";import{loadCalciteComponents as T}from"./support/componentsUtils.js";import"./support/widgetUtils.js";import{messageBundle as f}from"./support/decorators/messageBundle.js";import{tsx as M}from"./support/jsxFactory.js";let A=class extends c{constructor(e,t){super(e,t),this.isDocked=!1,this.galleryOpened=!1,this.imageEnhancementToolActive=!1,this.navigationToolActive=!1,this.viewModel=new I,this.messagesCommon=null,this.visibleElements={...h},this._navigationTool=null,this._actionItems=new Map,this._galleryController=new AbortController,this._galleryObserver=new IntersectionObserver(this._lazyLoadImage.bind(this)),this._loadImageFromGallery=this._loadImageFromGallery.bind(this),this._registerGalleryItem=this._registerGalleryItem.bind(this),this._unregisterGalleryItem=this._unregisterGalleryItem.bind(this),this._renderViewerContainer=this._renderViewerContainer.bind(this),this._renderViewer=this._renderViewer.bind(this)}initialize(){this.addHandles([s((()=>[this.viewModel?.selectedFeatureAngle,this._navigationTool]),(([e,t])=>{!this.viewModel.updating&&t&&this._updateNavigationTool(t)}),a),s((()=>this.currentCoverageVisible),(e=>this._onCurrentCoverageVisibilityChange(e))),s((()=>this.isAdditionalCoverageVisible),(e=>this._onAdditionalCoverageVisibilityChange(e))),s((()=>this.isAdditionalPointSourcesVisible),(e=>this._onAdditionalCameraLocationsVisibility(e)))])}loadDependencies(){return T({tooltip:()=>import("@esri/calcite-components/dist/components/calcite-tooltip.js"),action:()=>import("@esri/calcite-components/dist/components/calcite-action.js"),"action-group":()=>import("@esri/calcite-components/dist/components/calcite-action-group.js"),"action-bar":()=>import("@esri/calcite-components/dist/components/calcite-action-bar.js"),label:()=>import("@esri/calcite-components/dist/components/calcite-label.js"),panel:()=>import("@esri/calcite-components/dist/components/calcite-panel.js"),slider:()=>import("@esri/calcite-components/dist/components/calcite-slider.js")})}destroy(){this._galleryController.abort(),this._galleryObserver.disconnect()}get activeLayer(){return this.viewModel.activeLayer}set activeLayer(e){this.viewModel.activeLayer=e}get currentCoverageVisible(){return this.viewModel.currentCoverageVisible}set currentCoverageVisible(e){this.viewModel.currentCoverageVisible=e}get disabled(){return this.viewModel.disabled}set disabled(e){this.viewModel.disabled=e}get imageGalleryEnabled(){return this.viewModel.imageGalleryEnabled}get isAdditionalCoverageVisible(){return this.viewModel.isAdditionalCoverageVisible}set isAdditionalCoverageVisible(e){this.viewModel.isAdditionalCoverageVisible=e}get isAdditionalPointSourcesVisible(){return this.viewModel.isAdditionalPointSourcesVisible}set isAdditionalPointSourcesVisible(e){this.viewModel.isAdditionalPointSourcesVisible=e}get mapImageConversionToolState(){return this.viewModel.mapImageConversionToolState}set mapImageConversionToolState(e){this.viewModel.mapImageConversionToolState=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}castVisibleElements(e){return{...h,...e}}async _getThumbnailPixelBlockInternal(e,t){const{level:s,offset:a,size:o}=this._getMaxLevelRasterParameters(e);try{const{pixelBlock:i}=await e.fetchRawPixels(s,a,o,t);return i}catch(r){i.getLogger(this).warn("failed to create canvas with pixeldata",r)}return null}_getMaxLevelRasterParameters(e){const{storageInfo:t,width:i,height:s}=e.rasterInfo,{maximumPyramidLevel:a,pyramidScalingFactor:o}=t,r=o??2;return{level:a,offset:{x:0,y:0},size:{width:Math.ceil(i/r**a),height:Math.ceil(s/r**a)}}}async _getThumbnailPixelBlock(e){const{signal:t}=this._galleryController;try{const i=await l.open({url:e,signal:t});return i?await this._getThumbnailPixelBlockInternal(i,{signal:t}):null}catch(s){i.getLogger(this).error("failed to create thumbnail",s)}return null}_handleBrightnessChange(e){this.viewModel.brightness=e.target.value??0}_handleContrastChange(e){this.viewModel.contrast=e.target.value??0}_handleSharpnessChange(e){this.viewModel.sharpness=e.target.value??0}_lazyLoadImage(e,t){e.forEach((async e=>{if(e.isIntersecting){const i=e.target,s=i.getAttribute("data-src");if(!s)return;const a=await this._getThumbnailPixelBlock(s);if(!a)return;i.width=a.width,i.height=a.height;const o=i.getContext("2d");if(!o)return;const r=o.createImageData(i.width,i.height);r.data.set(a.getAsRGBA()),o.putImageData(r,0,0),t.unobserve(i)}}))}_loadImageFromGallery(e){const{target:t}=e;if(!t)return;const i=t.getAttribute("data-objectid");i&&this.viewModel.selectedFeature?.attributes.objectId!==Number(i)&&(this.viewModel.selectedFeature=this.viewModel.features?.find((({attributes:e})=>e.objectId===Number(i))))}_onAdditionalCoverageVisibilityChange(e){this.viewModel.setAdditionalCoverageVisibility(e)}_onAdditionalCameraLocationsVisibility(e){this.viewModel.setAdditionalCameraLocationsVisibility(e)}_onCurrentCoverageVisibilityChange(e){this.viewModel.setCurrentCoverageVisibility(e)}_registerGalleryItem(e){this._galleryObserver.observe(e)}_resetImageTools(){this.viewModel.sharpness=this.viewModel.brightness=this.viewModel.contrast=0}_resizeNavigationTool(){this._navigationTool?.parentElement?.classList.toggle(g.navigationZoomed)}_storeActionElement(e){this._actionItems.set(e.text,e)}_storeNavigationToolReference(e){this._navigationTool=e}_toggleAdditionalCameraLocations(){this.isAdditionalPointSourcesVisible=!this.isAdditionalPointSourcesVisible}_toggleAdditionalCoverage(){this.isAdditionalCoverageVisible=!this.isAdditionalCoverageVisible}_toggleCurrentCoverage(){this.currentCoverageVisible=!this.currentCoverageVisible}_toggleImageEnhancementToolState(e){e.stopPropagation(),this.imageEnhancementToolActive=!this.imageEnhancementToolActive,this.imageEnhancementToolActive&&(this.galleryOpened&&(this.galleryOpened=!1),this.navigationToolActive&&(this.navigationToolActive=!1))}_toggleImageGallery(e){e.stopPropagation(),this.galleryOpened=!!this.imageGalleryEnabled&&!this.galleryOpened,this.galleryOpened&&(this.imageEnhancementToolActive&&(this.imageEnhancementToolActive=!1),this.navigationToolActive&&(this.navigationToolActive=!1))}_toggleNavigationTool(){this.navigationToolActive=!this.navigationToolActive,this.navigationToolActive&&(this.galleryOpened&&(this.galleryOpened=!1),this.imageEnhancementToolActive&&(this.imageEnhancementToolActive=!1))}_toggleMapImageConversionToolState(){this.mapImageConversionToolState=!this.mapImageConversionToolState}_unregisterGalleryItem(e){this._galleryObserver.unobserve(e)}_updateNavigationTool(e){const{previousFeatureAngle:t,selectedFeatureAngle:i}=this.viewModel,s=(i-t+540)%360-180;e.style.setProperty(m,`${t}deg`),e.style.setProperty(v,`${t+s}deg`)}resetImage(){this.viewModel.resetImage()}render(){const{isDocked:e,viewModel:{updating:t}}=this;return M("div",{class:this.classes(p,u)},M("calcite-panel",{bind:this,class:e?g.dock:g.float,heading:this.visibleElements.title?this.messages.title:void 0,loading:t},this.visibleElements.coverageMenu?this._renderMenuBarContainer():null,this._renderBody()))}_renderActionTooltips(){return[...this._actionItems].map((([e,t])=>M("calcite-tooltip",{key:e,referenceElement:t},M("span",null,e))))}_renderBody(){return M("div",{class:g.body},this._renderViewerContainer(),this._renderImageGallery(),this._renderImageEnhancementTools(),this._renderNavigation())}_renderImageEnhancementTools(){const{imageEnhancementToolActive:e,viewModel:{brightness:t,contrast:i,sharpness:s}}=this;return e&&M("calcite-panel",{bind:this,class:g.imageEnhancementWrapper,closable:!0,closed:!e,heading:this.messages.imageEnhancement,key:this.messages.imageEnhancement,onCalcitePanelClose:this._toggleImageEnhancementToolState},M("div",{class:g.imageEnhancementTools},M("div",{class:g.imageEnhancementToolContainer},M("calcite-label",null,this.messages.brightness,M("calcite-slider",{bind:this,labelTicks:!0,max:10,min:-10,ticks:5,value:t,onCalciteSliderInput:this._handleBrightnessChange}))),M("div",{class:g.imageEnhancementToolContainer},M("calcite-label",null,this.messages.contrast,M("calcite-slider",{bind:this,labelTicks:!0,max:10,min:-10,ticks:5,value:i,onCalciteSliderInput:this._handleContrastChange}))),M("div",{class:g.imageEnhancementToolContainer},M("calcite-label",null,this.messages.sharpness,M("calcite-slider",{bind:this,labelTicks:!0,max:1,min:0,step:.1,ticks:.5,value:s,onCalciteSliderInput:this._handleSharpnessChange})))),M("calcite-action",{bind:this,icon:"reset",onclick:this._resetImageTools,slot:"header-actions-end",text:this.messagesCommon.reset}))}_renderImageGallery(){const{container:e,galleryOpened:t,imageGalleryEnabled:i,viewModel:{thumbnails:s}}=this;return i&&t&&(e&&s)?M("calcite-panel",{bind:this,class:g.carousel,closable:!0,closed:!t,heading:this.messages.imageGallery,key:this.messages.imageGallery,onCalcitePanelClose:this._toggleImageGallery},M("div",{class:g.carouselContainer},this._renderThumbnails(s))):null}_renderMapImageConversionTool(){const{mapImageConversionToolState:e,viewModel:{state:t}}=this;return M("calcite-action",{active:e,afterCreate:this._storeActionElement,bind:this,disabled:"image-loaded"!==t,icon:"image-pin",onclick:this._toggleMapImageConversionToolState,text:this.messages.mapImageConversionTool})}_renderNavigation(){const{viewModel:{sectorData:e,features:i,selectedFeature:s,updating:a,navigatorSelectedFeature:o}}=this;if(!i.length||!this.container||!s)return null;let r,n,l,c,h;if(o){const{x:e,y:t,direction:i}=o,[s,a,d,g]=b[i];r=`M ${e} ${t} L ${s} ${a} A ${y[2]} ${y[2]} 0 0 1 ${d} ${g} Z`,n=e,c=t,l=b[i][4],h=b[i][5]}const m=e=>{const t=e.target.dataset?.sector;t&&this.viewModel.handleSectorClick(+t)},v=e=>{const t=e.target.dataset;if(!t)return;const{featureIndexInSector:i,sector:s}=t;i&&s&&this.viewModel.handleFeatureClick({sector:s,featureIndexInSector:+i})},p=e=>{e.removeEventListener("click",v)},u=e?.map((e=>e?.items)).filter(Boolean).flatMap((e=>e?.map((({x:e,y:t,objectID:i,featureIndexInSector:a,sector:o})=>M("circle",{afterRemoved:p,class:this.classes(g.feature,{selected:s.attributes.objectId===i}),cx:e,cy:t,"data-featureIndexInSector":a,"data-sector":o,key:`${g.feature}-${i}`,onclick:v,r:_}))))),I=e=>{e.removeEventListener("click",m)};return this.navigationToolActive&&!a?M("div",{bind:this,class:g.navigationWrapper,key:this.messages.navigationTool},M("svg",{afterCreate:this._storeNavigationToolReference.bind(this),class:t()?C:g.rotateWithAnimation,focusable:"false",height:w,role:"img",width:w,xmlns:"http://www.w3.org/2000/svg"},M("defs",null,M("linearGradient",{gradientUnits:"userSpaceOnUse",id:`${this.id}-coverage-fill`,x1:n,x2:l,y1:c,y2:h},M("stop",{class:g.navigationPathOffset0,offset:0}),M("stop",{class:g.navigationPathOffset1,offset:1}))),M("g",null,M("circle",{class:this.classes(g.sector,g.outerSector),cx:y[3],cy:y[3],onclick:this._resizeNavigationTool.bind(this),r:y[3]}),M("circle",{class:g.sector,cx:y[3],cy:y[3],r:y[2]}),M("circle",{class:g.sector,cx:y[3],cy:y[3],r:y[1]}),M("circle",{class:g.sector,cx:y[3],cy:y[3],r:y[0]}),M("path",{class:g.pointer,d:"M 56.5 6.06217782649107 L 60 0 L 63.5 6.06217782649107 Z",key:`${g.pointer}-west`}),M("path",{class:this.classes(g.pointer,g.north),d:"M 113.93782217350893 56.5 L 120 60 L 113.93782217350893 63.5 Z",key:`${g.pointer}-north`}),M("path",{class:g.pointer,d:"M 56.5 113.93782217350893 L 60 120 L 63.5 113.93782217350893 Z",key:`${g.pointer}-east`}),M("path",{class:g.pointer,d:"M 6.06217782649107 56.5 L 0 60 L 6.06217782649107 63.5 Z",key:`${g.pointer}-south`}),M("path",{class:this.classes(g.sector,g.sectorSeparator),d:"M 23.937554159486076 23.937554159486076 L 96.06244584051393 96.06244584051393 M 23.937554159486076 96.06244584051393 L 96.06244584051393 23.937554159486076",key:g.sectorSeparator}),d([y[2],y[1],y[0]],y[3],y[3]).map(((t,i)=>M("path",{afterRemoved:I,class:this.classes(g.sector,e?.[i]?.length?g.sectorEnabled:g.sectorDisabled),d:t,"data-sector":`${i}`,key:`${g.sector}-${i}`,onclick:m}))),M("path",{class:this.classes(g.sector,g.sectorCross),d:"M 56.4 56.4 L 63.53 63.53 M 63.53 56.4 L 56.4 63.53",key:g.sectorCross}),u,s.attributes.cameraPitch>=5&&r?M("path",{class:g.selectedFeaturePath,d:r,fill:`url(#${this.id}-coverage-fill)`,key:g.selectedFeaturePath}):null))):null}_renderNavigationTool(){const{state:e}=this.viewModel;return M("calcite-action",{active:this.navigationToolActive,afterCreate:this._storeActionElement,bind:this,disabled:"image-loaded"!==e,icon:"explore",onclick:this._toggleNavigationTool,text:this.messages.navigationTool})}_renderImageEnhancementTool(){const{state:e}=this.viewModel;return M("calcite-action",{active:this.imageEnhancementToolActive,afterCreate:this._storeActionElement,bind:this,disabled:"image-loaded"!==e,icon:"sliders-horizontal",onclick:this._toggleImageEnhancementToolState,text:this.messages.imageEnhancement})}_renderMenuBarContainer(){const{currentCoverageVisible:e,isAdditionalCoverageVisible:t,isAdditionalPointSourcesVisible:i,imageGalleryEnabled:s}=this;return M("calcite-action-bar",{expandDisabled:!0,layout:"horizontal",slot:"action-bar"},M("calcite-action-group",{expanded:!0},M("calcite-action",{active:e,afterCreate:this._storeActionElement,bind:this,class:g.currentCoverage,icon:"trapezoid-area",onclick:this._toggleCurrentCoverage,text:this.messages.currentFootprint}),M("calcite-action",{active:t,afterCreate:this._storeActionElement,bind:this,class:g.addCoverage,icon:"trapezoid-area",onclick:this._toggleAdditionalCoverage,text:this.messages.additionalFootprints}),M("calcite-action",{active:i,afterCreate:this._storeActionElement,bind:this,class:g.addExpPoints,icon:"circle-area",onclick:this._toggleAdditionalCameraLocations,text:this.messages.additionalCameraLocations})),M("calcite-action-group",{layout:"horizontal"},this.visibleElements.mapImageConversionTool?this._renderMapImageConversionTool():null,this.visibleElements.navigationTool?this._renderNavigationTool():null,this.visibleElements.imageEnhancement?this._renderImageEnhancementTool():null),M("calcite-action-group",null,M("calcite-action",{active:this.galleryOpened,afterCreate:this._storeActionElement,bind:this,disabled:!s,icon:"images",onclick:this._toggleImageGallery,text:this.messages.imageGallery,textEnabled:!0})),this._renderActionTooltips())}_renderMessageBox(){const{displayMessage:e}=this.viewModel;return e?M("span",{class:g.messageBox},this.messages[e.key],e?.data):null}_renderThumbnails(e){const{selectedFeature:t}=this.viewModel;return t?M("div",{class:g.carouselContent},e.items.map((({url:e,objectId:i},s)=>M("div",{class:`${g.carouselItemWrapper}${t.attributes.objectId===i?"--selected":""}`,key:`${g.carouselItemWrapper}-${s}`},M("canvas",{afterCreate:this._registerGalleryItem,afterRemoved:this._unregisterGalleryItem,alt:`thumbnail-${i}`,class:g.carouselItem,"data-objectid":`${i}`,"data-src":e,onclick:this._loadImageFromGallery}))))):null}_renderViewerContainer(){return M("div",{class:g.viewerContainer},this._renderViewer(),this._renderMessageBox())}_renderViewer(){const{displayMessage:e}=this.viewModel;return M("div",{afterCreate:this.viewModel.loadViewer,bind:this,class:`${g.viewer}${e?"--hide":""}`})}};e([o()],A.prototype,"activeLayer",null),e([o()],A.prototype,"currentCoverageVisible",null),e([o()],A.prototype,"disabled",null),e([o()],A.prototype,"isDocked",void 0),e([o()],A.prototype,"galleryOpened",void 0),e([o()],A.prototype,"imageEnhancementToolActive",void 0),e([o()],A.prototype,"imageGalleryEnabled",null),e([o()],A.prototype,"isAdditionalCoverageVisible",null),e([o()],A.prototype,"isAdditionalPointSourcesVisible",null),e([o()],A.prototype,"mapImageConversionToolState",null),e([o()],A.prototype,"navigationToolActive",void 0),e([o({type:I})],A.prototype,"viewModel",void 0),e([o(),f("esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer")],A.prototype,"messages",void 0),e([o(),f("esri/t9n/common")],A.prototype,"messagesCommon",void 0),e([o()],A.prototype,"view",null),e([o()],A.prototype,"visibleElements",void 0),e([r("visibleElements")],A.prototype,"castVisibleElements",null),e([o()],A.prototype,"_navigationTool",void 0),A=e([n("esri.widgets.OrientedImageryViewer")],A);const E=A;export{E as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import{prefersReducedMotion as t}from"../core/a11yUtils.js";import{deprecatedProperty as i}from"../core/deprecate.js";import s from"../core/Logger.js";import{watch as a,initial as o}from"../core/reactiveUtils.js";import{property as r}from"../core/accessorSupport/decorators/property.js";import{cast as n}from"../core/accessorSupport/decorators/cast.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as l}from"../core/accessorSupport/decorators/subclass.js";import c from"../layers/support/rasterDatasets/RasterFactory.js";import d from"./Widget.js";import{getAllArcPath as h}from"./OrientedImageryViewer/arcUtils.js";import{defaultVisibleElements as g,css as m,navigationToolRotationFrom as v,navigationToolRotationTo as p,base as u,root as b,segmentArcs as y,sectorsRadii as _,featureCircleRadius as C,navigation as w,navigationToolDimensionLength as I}from"./OrientedImageryViewer/constants.js";import f from"./OrientedImageryViewer/OrientedImageryViewerViewModel.js";import{loadCalciteComponents as M}from"./support/componentsUtils.js";import"./support/widgetUtils.js";import{messageBundle as T}from"./support/decorators/messageBundle.js";import{tsx as A}from"./support/jsxFactory.js";let E=class extends d{constructor(e,t){super(e,t),this.dockEnabled=!1,this.galleryOpened=!1,this.imageEnhancementToolActive=!1,this.navigationToolActive=!1,this.viewModel=new f,this.messagesCommon=null,this.visibleElements={...g},this._navigationTool=null,this._actionItems=new Map,this._galleryController=new AbortController,this._galleryObserver=new IntersectionObserver(this._lazyLoadImage.bind(this)),this._loadImageFromGallery=this._loadImageFromGallery.bind(this),this._registerGalleryItem=this._registerGalleryItem.bind(this),this._unregisterGalleryItem=this._unregisterGalleryItem.bind(this),this._renderViewerContainer=this._renderViewerContainer.bind(this),this._renderViewer=this._renderViewer.bind(this)}initialize(){this.addHandles([a((()=>[this.viewModel?.selectedFeatureAngle,this._navigationTool]),(([e,t])=>{!this.viewModel.updating&&t&&this._updateNavigationTool(t)}),o),a((()=>this.currentCoverageVisible),(e=>this._onCurrentCoverageVisibilityChange(e))),a((()=>this.isAdditionalCoverageVisible),(e=>this._onAdditionalCoverageVisibilityChange(e))),a((()=>this.isAdditionalPointSourcesVisible),(e=>this._onAdditionalCameraLocationsVisibility(e)))])}loadDependencies(){return M({tooltip:()=>import("@esri/calcite-components/dist/components/calcite-tooltip.js"),action:()=>import("@esri/calcite-components/dist/components/calcite-action.js"),"action-group":()=>import("@esri/calcite-components/dist/components/calcite-action-group.js"),"action-bar":()=>import("@esri/calcite-components/dist/components/calcite-action-bar.js"),label:()=>import("@esri/calcite-components/dist/components/calcite-label.js"),panel:()=>import("@esri/calcite-components/dist/components/calcite-panel.js"),slider:()=>import("@esri/calcite-components/dist/components/calcite-slider.js")})}destroy(){this._galleryController.abort(),this._galleryObserver.disconnect()}get activeLayer(){return i(s.getLogger(this),"activeLayer",{replacement:"layer"}),this.layer}set activeLayer(e){i(s.getLogger(this),"activeLayer",{replacement:"layer"}),this.layer=e}get currentCoverageVisible(){return this.viewModel.currentCoverageVisible}set currentCoverageVisible(e){this.viewModel.currentCoverageVisible=e}get disabled(){return this.viewModel.disabled}set disabled(e){this.viewModel.disabled=e}get isDocked(){return i(s.getLogger(this),"isDocked",{replacement:"dockEnabled"}),this.dockEnabled}set isDocked(e){i(s.getLogger(this),"isDocked",{replacement:"dockEnabled"}),this.dockEnabled=e}get imageGalleryEnabled(){return this.viewModel.imageGalleryEnabled}get isAdditionalCoverageVisible(){return this.viewModel.isAdditionalCoverageVisible}set isAdditionalCoverageVisible(e){this.viewModel.isAdditionalCoverageVisible=e}get isAdditionalPointSourcesVisible(){return this.viewModel.isAdditionalPointSourcesVisible}set isAdditionalPointSourcesVisible(e){this.viewModel.isAdditionalPointSourcesVisible=e}get mapImageConversionToolState(){return this.viewModel.mapImageConversionToolState}set mapImageConversionToolState(e){this.viewModel.mapImageConversionToolState=e}get layer(){return this.viewModel.layer}set layer(e){this.viewModel.layer=e}get referencePoint(){return this.viewModel.referencePoint??null}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}castVisibleElements(e){return{...g,...e}}async _getThumbnailPixelBlockInternal(e,t){const{level:i,offset:a,size:o}=this._getMaxLevelRasterParameters(e);try{const{pixelBlock:s}=await e.fetchRawPixels(i,a,o,t);return s}catch(r){s.getLogger(this).warn("failed to create canvas with pixeldata",r)}return null}_getMaxLevelRasterParameters(e){const{storageInfo:t,width:i,height:s}=e.rasterInfo,{maximumPyramidLevel:a,pyramidScalingFactor:o}=t,r=o??2;return{level:a,offset:{x:0,y:0},size:{width:Math.ceil(i/r**a),height:Math.ceil(s/r**a)}}}async _getThumbnailPixelBlock(e){const{signal:t}=this._galleryController;try{const i=await c.open({url:e,signal:t});return i?await this._getThumbnailPixelBlockInternal(i,{signal:t}):null}catch(i){s.getLogger(this).error("failed to create thumbnail",i)}return null}_handleBrightnessChange(e){this.viewModel.brightness=e.target.value??0}_handleContrastChange(e){this.viewModel.contrast=e.target.value??0}_handleSharpnessChange(e){this.viewModel.sharpness=e.target.value??0}_lazyLoadImage(e,t){e.forEach((async e=>{if(e.isIntersecting){const i=e.target,s=i.getAttribute("data-src");if(!s)return;const a=await this._getThumbnailPixelBlock(s);if(!a)return;i.width=a.width,i.height=a.height;const o=i.getContext("2d");if(!o)return;const r=o.createImageData(i.width,i.height);r.data.set(a.getAsRGBA()),o.putImageData(r,0,0),t.unobserve(i)}}))}_loadImageFromGallery(e){const{target:t}=e;if(!t)return;const i=t.getAttribute("data-objectid");i&&this.viewModel.selectedFeature?.attributes.objectId!==Number(i)&&(this.viewModel.selectedFeature=this.viewModel.features?.find((({attributes:e})=>e.objectId===Number(i))))}_onAdditionalCoverageVisibilityChange(e){this.viewModel.setAdditionalCoverageVisibility(e)}_onAdditionalCameraLocationsVisibility(e){this.viewModel.setAdditionalCameraLocationsVisibility(e)}_onCurrentCoverageVisibilityChange(e){this.viewModel.setCurrentCoverageVisibility(e)}_registerGalleryItem(e){this._galleryObserver.observe(e)}_resetImageTools(){this.viewModel.sharpness=this.viewModel.brightness=this.viewModel.contrast=0}_resizeNavigationTool(){this._navigationTool?.parentElement?.classList.toggle(m.navigationZoomed)}_storeActionElement(e){this._actionItems.set(e.text,e)}_storeNavigationToolReference(e){this._navigationTool=e}_toggleAdditionalCameraLocations(){this.isAdditionalPointSourcesVisible=!this.isAdditionalPointSourcesVisible}_toggleAdditionalCoverage(){this.isAdditionalCoverageVisible=!this.isAdditionalCoverageVisible}_toggleCurrentCoverage(){this.currentCoverageVisible=!this.currentCoverageVisible}_toggleImageEnhancementToolState(e){e.stopPropagation(),this.imageEnhancementToolActive=!this.imageEnhancementToolActive,this.imageEnhancementToolActive&&(this.galleryOpened&&(this.galleryOpened=!1),this.navigationToolActive&&(this.navigationToolActive=!1))}_toggleImageGallery(e){e.stopPropagation(),this.galleryOpened=!!this.imageGalleryEnabled&&!this.galleryOpened,this.galleryOpened&&(this.imageEnhancementToolActive&&(this.imageEnhancementToolActive=!1),this.navigationToolActive&&(this.navigationToolActive=!1))}_toggleNavigationTool(){this.navigationToolActive=!this.navigationToolActive,this.navigationToolActive&&(this.galleryOpened&&(this.galleryOpened=!1),this.imageEnhancementToolActive&&(this.imageEnhancementToolActive=!1))}_toggleMapImageConversionToolState(){this.mapImageConversionToolState=!this.mapImageConversionToolState}_unregisterGalleryItem(e){this._galleryObserver.unobserve(e)}_updateNavigationTool(e){const{previousFeatureAngle:t,selectedFeatureAngle:i}=this.viewModel,s=(i-t+540)%360-180;e.style.setProperty(v,`${t}deg`),e.style.setProperty(p,`${t+s}deg`)}loadBestImage(e){this.viewModel.loadBestImage(e)}async plotMapPoint(e){return this.viewModel.plotMapPoint(e)}resetImage(){this.viewModel.resetImage()}render(){const{dockEnabled:e,viewModel:{updating:t}}=this;return A("div",{class:this.classes(u,b)},A("calcite-panel",{bind:this,class:e?m.dock:m.float,heading:this.visibleElements.title?this.messages.title:void 0,loading:t},this.visibleElements.coverageMenu?this._renderMenuBarContainer():null,this._renderBody()))}_renderActionTooltips(){return[...this._actionItems].map((([e,t])=>A("calcite-tooltip",{key:e,referenceElement:t},A("span",null,e))))}_renderBody(){return A("div",{class:m.body},this._renderViewerContainer(),this._renderImageGallery(),this._renderImageEnhancementTools(),this._renderNavigation())}_renderImageEnhancementTools(){const{imageEnhancementToolActive:e,viewModel:{brightness:t,contrast:i,sharpness:s}}=this;return e&&A("calcite-panel",{bind:this,class:m.imageEnhancementWrapper,closable:!0,closed:!e,heading:this.messages.imageEnhancement,key:this.messages.imageEnhancement,onCalcitePanelClose:this._toggleImageEnhancementToolState},A("div",{class:m.imageEnhancementTools},A("div",{class:m.imageEnhancementToolContainer},A("calcite-label",null,this.messages.brightness,A("calcite-slider",{bind:this,labelTicks:!0,max:10,min:-10,ticks:5,value:t,onCalciteSliderInput:this._handleBrightnessChange}))),A("div",{class:m.imageEnhancementToolContainer},A("calcite-label",null,this.messages.contrast,A("calcite-slider",{bind:this,labelTicks:!0,max:10,min:-10,ticks:5,value:i,onCalciteSliderInput:this._handleContrastChange}))),A("div",{class:m.imageEnhancementToolContainer},A("calcite-label",null,this.messages.sharpness,A("calcite-slider",{bind:this,labelTicks:!0,max:1,min:0,step:.1,ticks:.5,value:s,onCalciteSliderInput:this._handleSharpnessChange})))),A("calcite-action",{bind:this,icon:"reset",onclick:this._resetImageTools,slot:"header-actions-end",text:this.messagesCommon.reset}))}_renderImageGallery(){const{container:e,galleryOpened:t,imageGalleryEnabled:i,viewModel:{thumbnails:s}}=this;return i&&t&&(e&&s)?A("calcite-panel",{bind:this,class:m.carousel,closable:!0,closed:!t,heading:this.messages.imageGallery,key:this.messages.imageGallery,onCalcitePanelClose:this._toggleImageGallery},A("div",{class:m.carouselContainer},this._renderThumbnails(s))):null}_renderMapImageConversionTool(){const{mapImageConversionToolState:e,viewModel:{imageLoaded:t}}=this;return A("calcite-action",{active:e,afterCreate:this._storeActionElement,bind:this,disabled:!t,icon:"image-pin",onclick:this._toggleMapImageConversionToolState,text:this.messages.mapImageConversionTool})}_renderNavigation(){const{viewModel:{sectorData:e,features:i,selectedFeature:s,updating:a,navigatorSelectedFeature:o}}=this;if(!i.length||!this.container||!s)return null;let r,n,l,c,d;if(o){const{x:e,y:t,direction:i}=o,[s,a,h,g]=y[i];r=`M ${e} ${t} L ${s} ${a} A ${_[2]} ${_[2]} 0 0 1 ${h} ${g} Z`,n=e,c=t,l=y[i][4],d=y[i][5]}const g=e=>{const t=e.target.dataset?.sector;t&&this.viewModel.handleSectorClick(+t)},v=e=>{const t=e.target.dataset;if(!t)return;const{featureIndexInSector:i,sector:s}=t;i&&s&&this.viewModel.handleFeatureClick({sector:s,featureIndexInSector:+i})},p=e=>{e.removeEventListener("click",v)},u=e?.map((e=>e?.items)).filter(Boolean).flatMap((e=>e?.map((({x:e,y:t,objectID:i,featureIndexInSector:a,sector:o})=>A("circle",{afterRemoved:p,class:this.classes(m.feature,{selected:s.attributes.objectId===i}),cx:e,cy:t,"data-featureIndexInSector":a,"data-sector":o,key:`${m.feature}-${i}`,onclick:v,r:C}))))),b=e=>{e.removeEventListener("click",g)};return this.navigationToolActive&&!a?A("div",{bind:this,class:m.navigationWrapper,key:this.messages.navigationTool},A("svg",{afterCreate:this._storeNavigationToolReference.bind(this),class:t()?w:m.rotateWithAnimation,focusable:"false",height:I,role:"img",width:I,xmlns:"http://www.w3.org/2000/svg"},A("defs",null,A("linearGradient",{gradientUnits:"userSpaceOnUse",id:`${this.id}-coverage-fill`,x1:n,x2:l,y1:c,y2:d},A("stop",{class:m.navigationPathOffset0,offset:0}),A("stop",{class:m.navigationPathOffset1,offset:1}))),A("g",null,A("circle",{class:this.classes(m.sector,m.outerSector),cx:_[3],cy:_[3],onclick:this._resizeNavigationTool.bind(this),r:_[3]}),A("circle",{class:m.sector,cx:_[3],cy:_[3],r:_[2]}),A("circle",{class:m.sector,cx:_[3],cy:_[3],r:_[1]}),A("circle",{class:m.sector,cx:_[3],cy:_[3],r:_[0]}),A("path",{class:m.pointer,d:"M 56.5 6.06217782649107 L 60 0 L 63.5 6.06217782649107 Z",key:`${m.pointer}-west`}),A("path",{class:this.classes(m.pointer,m.north),d:"M 113.93782217350893 56.5 L 120 60 L 113.93782217350893 63.5 Z",key:`${m.pointer}-north`}),A("path",{class:m.pointer,d:"M 56.5 113.93782217350893 L 60 120 L 63.5 113.93782217350893 Z",key:`${m.pointer}-east`}),A("path",{class:m.pointer,d:"M 6.06217782649107 56.5 L 0 60 L 6.06217782649107 63.5 Z",key:`${m.pointer}-south`}),A("path",{class:this.classes(m.sector,m.sectorSeparator),d:"M 23.937554159486076 23.937554159486076 L 96.06244584051393 96.06244584051393 M 23.937554159486076 96.06244584051393 L 96.06244584051393 23.937554159486076",key:m.sectorSeparator}),h([_[2],_[1],_[0]],_[3],_[3]).map(((t,i)=>A("path",{afterRemoved:b,class:this.classes(m.sector,e?.[i]?.length?m.sectorEnabled:m.sectorDisabled),d:t,"data-sector":`${i}`,key:`${m.sector}-${i}`,onclick:g}))),A("path",{class:this.classes(m.sector,m.sectorCross),d:"M 56.4 56.4 L 63.53 63.53 M 63.53 56.4 L 56.4 63.53",key:m.sectorCross}),u,s.attributes.cameraPitch>=5&&r?A("path",{class:m.selectedFeaturePath,d:r,fill:`url(#${this.id}-coverage-fill)`,key:m.selectedFeaturePath}):null))):null}_renderNavigationTool(){const{imageLoaded:e}=this.viewModel;return A("calcite-action",{active:this.navigationToolActive,afterCreate:this._storeActionElement,bind:this,disabled:!e,icon:"explore",onclick:this._toggleNavigationTool,text:this.messages.navigationTool})}_renderImageEnhancementTool(){const{imageLoaded:e}=this.viewModel;return A("calcite-action",{active:this.imageEnhancementToolActive,afterCreate:this._storeActionElement,bind:this,disabled:!e,icon:"sliders-horizontal",onclick:this._toggleImageEnhancementToolState,text:this.messages.imageEnhancement})}_renderMenuBarContainer(){const{currentCoverageVisible:e,isAdditionalCoverageVisible:t,isAdditionalPointSourcesVisible:i,imageGalleryEnabled:s}=this;return A("calcite-action-bar",{expandDisabled:!0,layout:"horizontal",slot:"action-bar"},A("calcite-action-group",{expanded:!0},A("calcite-action",{active:e,afterCreate:this._storeActionElement,bind:this,class:m.currentCoverage,icon:"trapezoid-area",onclick:this._toggleCurrentCoverage,text:this.messages.currentFootprint}),A("calcite-action",{active:t,afterCreate:this._storeActionElement,bind:this,class:m.addCoverage,icon:"trapezoid-area",onclick:this._toggleAdditionalCoverage,text:this.messages.additionalFootprints}),A("calcite-action",{active:i,afterCreate:this._storeActionElement,bind:this,class:m.addExpPoints,icon:"circle-area",onclick:this._toggleAdditionalCameraLocations,text:this.messages.additionalCameraLocations})),A("calcite-action-group",{layout:"horizontal"},this.visibleElements.mapImageConversionTool?this._renderMapImageConversionTool():null,this.visibleElements.navigationTool?this._renderNavigationTool():null,this.visibleElements.imageEnhancement?this._renderImageEnhancementTool():null),A("calcite-action-group",null,A("calcite-action",{active:this.galleryOpened,afterCreate:this._storeActionElement,bind:this,disabled:!s,icon:"images",onclick:this._toggleImageGallery,text:this.messages.imageGallery,textEnabled:!0})),this._renderActionTooltips())}_renderMessageBox(){const{displayMessage:e}=this.viewModel;return e?A("span",{class:m.messageBox},this.messages[e.key],e?.data):null}_renderThumbnails(e){const{selectedFeature:t}=this.viewModel;return t?A("div",{class:m.carouselContent},e.items.map((({url:e,objectId:i},s)=>A("div",{class:`${m.carouselItemWrapper}${t.attributes.objectId===i?"--selected":""}`,key:`${m.carouselItemWrapper}-${s}`},A("canvas",{afterCreate:this._registerGalleryItem,afterRemoved:this._unregisterGalleryItem,alt:`thumbnail-${i}`,class:m.carouselItem,"data-objectid":`${i}`,"data-src":e,onclick:this._loadImageFromGallery}))))):null}_renderViewerContainer(){return A("div",{class:m.viewerContainer},this._renderViewer(),this._renderMessageBox())}_renderViewer(){const{displayMessage:e}=this.viewModel;return A("div",{afterCreate:this.viewModel.loadViewer,bind:this,class:`${m.viewer}${e?"--hide":""}`})}};e([r()],E.prototype,"activeLayer",null),e([r()],E.prototype,"currentCoverageVisible",null),e([r()],E.prototype,"disabled",null),e([r()],E.prototype,"dockEnabled",void 0),e([r()],E.prototype,"isDocked",null),e([r()],E.prototype,"galleryOpened",void 0),e([r()],E.prototype,"imageEnhancementToolActive",void 0),e([r({readOnly:!0})],E.prototype,"imageGalleryEnabled",null),e([r()],E.prototype,"isAdditionalCoverageVisible",null),e([r()],E.prototype,"isAdditionalPointSourcesVisible",null),e([r()],E.prototype,"mapImageConversionToolState",null),e([r()],E.prototype,"layer",null),e([r()],E.prototype,"navigationToolActive",void 0),e([r({type:f})],E.prototype,"viewModel",void 0),e([r(),T("esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer")],E.prototype,"messages",void 0),e([r(),T("esri/t9n/common")],E.prototype,"messagesCommon",void 0),e([r()],E.prototype,"referencePoint",null),e([r()],E.prototype,"view",null),e([r()],E.prototype,"visibleElements",void 0),e([n("visibleElements")],E.prototype,"castVisibleElements",null),e([r()],E.prototype,"_navigationTool",void 0),E=e([l("esri.widgets.OrientedImageryViewer")],E);const k=E;export{k as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as t}from"../chunks/tslib.es6.js";import e from"../TimeInterval.js";import{equals as i}from"../core/arrayUtils.js";import{neverReached as s}from"../core/compilerUtils.js";import{watch as o,initial as a}from"../core/reactiveUtils.js";import{truncateDate as n,offsetDate as r}from"../core/timeUtils.js";import{property as l}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import{subclass as m}from"../core/accessorSupport/decorators/subclass.js";import{formatDate as u,convertDateFormatToIntlOptions as d}from"../intl/date.js";import{unknown as c,system as p}from"../time/timeZoneUtils.js";import v from"./Slider.js";import h from"./Widget.js";import{loadCalciteComponents as f}from"./support/componentsUtils.js";import{globalCss as y}from"./support/globalCss.js";import{legacyIcon as g}from"./support/legacyIcon.js";import{accessibleHandler as b}from"./support/decorators/accessibleHandler.js";import{messageBundle as x}from"./support/decorators/messageBundle.js";import{vmEvent as w}from"./support/decorators/vmEvent.js";import{tsx as k}from"./support/jsxFactory.js";import{onResize as j}from"./support/widgetUtils.js";import{getCalciteThemeClass as T}from"../support/themeUtils.js";import{css as _}from"./TimeSlider/css.js";import E from"./TimeSlider/TimeSliderViewModel.js";const M=3,S=858,F=[{minor:{value:100,unit:"milliseconds"},major:{value:1,unit:"seconds"},format:{second:"numeric"}},{minor:{value:500,unit:"milliseconds"},major:{value:5,unit:"seconds"},format:{second:"numeric"}},{minor:{value:1,unit:"seconds"},major:{value:20,unit:"seconds"},format:{minute:"numeric",second:"numeric"}},{minor:{value:2,unit:"seconds"},major:{value:30,unit:"seconds"},format:{minute:"numeric",second:"numeric"}},{minor:{value:10,unit:"seconds"},major:{value:1,unit:"minutes"},format:{minute:"numeric"}},{minor:{value:15,unit:"seconds"},major:{value:5,unit:"minutes"},format:{hour:"numeric",minute:"numeric"}},{minor:{value:1,unit:"minutes"},major:{value:20,unit:"minutes"},format:{hour:"numeric",minute:"numeric"}},{minor:{value:5,unit:"minutes"},major:{value:2,unit:"hours"},format:{hour:"numeric",minute:"numeric"}},{minor:{value:15,unit:"minutes"},major:{value:6,unit:"hours"},format:{hour:"numeric",minute:"numeric"}},{minor:{value:1,unit:"hours"},major:{value:1,unit:"days"},format:{day:"numeric",month:"short"}},{minor:{value:6,unit:"hours"},major:{value:1,unit:"weeks"},format:{day:"numeric",month:"short"}},{minor:{value:1,unit:"days"},major:{value:1,unit:"months"},format:{month:"long"}},{minor:{value:2,unit:"days"},major:{value:1,unit:"months"},format:{month:"short"}},{minor:{value:3,unit:"days"},major:{value:1,unit:"months"},format:{month:"short"}},{minor:{value:4,unit:"days"},major:{value:3,unit:"months"},format:{month:"short",year:"numeric"}},{minor:{value:1,unit:"weeks"},major:{value:1,unit:"years"},format:{year:"numeric"}},{minor:{value:1,unit:"months"},major:{value:1,unit:"years"},format:{year:"numeric"}},{minor:{value:2,unit:"months"},major:{value:2,unit:"years"},format:{year:"numeric"}},{minor:{value:1,unit:"years"},major:{value:1,unit:"decades"},format:{year:"numeric"}},{minor:{value:2,unit:"years"},major:{value:5,unit:"decades"},format:{year:"numeric"}},{minor:{value:5,unit:"decades"},major:{value:10,unit:"centuries"},format:{era:"short",year:"numeric"}},{minor:{value:1,unit:"centuries"},major:{value:10,unit:"centuries"},format:{era:"short",year:"numeric"}},{minor:{value:2,unit:"centuries"},major:{value:20,unit:"centuries"},format:{era:"short",year:"numeric"}},{minor:{value:5,unit:"centuries"},major:{value:50,unit:"centuries"},format:{era:"short",year:"numeric"}},{minor:{value:10,unit:"centuries"},major:{value:100,unit:"centuries"},format:{era:"short",year:"numeric"}},{minor:{value:20,unit:"centuries"},major:{value:200,unit:"centuries"},format:{era:"short",year:"numeric"}},{minor:{value:50,unit:"centuries"},major:{value:500,unit:"centuries"},format:{era:"short",year:"numeric"}},{minor:{value:100,unit:"centuries"},major:{value:1e3,unit:"centuries"},format:{era:"short",year:"numeric"}},{minor:{value:200,unit:"centuries"},major:{value:1e3,unit:"centuries"},format:{era:"short",year:"numeric"}},{minor:{value:500,unit:"centuries"},major:{value:5e3,unit:"centuries"},format:{era:"short",year:"numeric"}},{minor:{value:1e3,unit:"centuries"},major:{value:1e4,unit:"centuries"},format:{era:"short",year:"numeric"}}];let C=class extends h{constructor(t,e){super(t,e),this._ignoreNextSliderUpdate=!1,this._slider=new v({precision:0,visibleElements:{rangeLabels:!1},rangeLabelInputsEnabled:!1,thumbsConstrained:!1}),this._tickFormat=null,this.disabled=!1,this.iconClass=_.widgetIcon,this.icon=null,this.labelFormatFunction=null,this.messages=null,this.messagesCommon=null,this.tickConfigs=null,this.timeVisible=!1,this.viewModel=new E}initialize(){this.addHandles([o((()=>this._slider.values),(t=>{if(this._ignoreNextSliderUpdate)return void(this._ignoreNextSliderUpdate=!1);const e=this.viewModel.valuesToTimeExtent(t);null!=this.timeExtent?null!=e?this.timeExtent.equals(e)||(this.timeExtent=e):this.timeExtent=null:null!=e&&(this.timeExtent=e)})),o((()=>this.effectiveStops),(()=>this._updateSliderSteps()),a)])}loadDependencies(){return f({action:()=>import("@esri/calcite-components/dist/components/calcite-action.js"),"action-menu":()=>import("@esri/calcite-components/dist/components/calcite-action-menu.js")})}destroy(){this._slider.destroy(),this._tickFormat=null}get _dateFormat(){return this._getIntlOptions("short-date")}get _timeFormat(){return this._getIntlOptions("long-time")}get actions(){return this.viewModel.actions}set actions(t){this.viewModel.actions=t}get effectiveStops(){return this.viewModel.effectiveStops}get fullTimeExtent(){return this.viewModel.fullTimeExtent}set fullTimeExtent(t){this.viewModel.fullTimeExtent=t}get interactive(){return!(this.disabled||"disabled"===this.viewModel.state||this.viewModel.view?.timeZone===c)}get label(){return this.messages?.widgetLabel??""}set label(t){this._overrideIfSome("label",t)}set layout(t){["auto","compact","wide"].includes(t)||(t="auto"),this._set("layout",t)}get loop(){return this.viewModel.loop}set loop(t){this.viewModel.loop=t}get mode(){return this.viewModel.mode}set mode(t){this.viewModel.mode=t}get playRate(){return this.viewModel.playRate}set playRate(t){this.viewModel.playRate=t}get stops(){return this.viewModel.stops}set stops(t){this.viewModel.stops=t}get tickFormats(){const{timeZone:t}=this;return F.map((({minor:i,major:s,format:o})=>({minor:new e(i),major:new e(s),format:{...o,timeZone:t}})))}get timeExtent(){return this.viewModel.timeExtent}set timeExtent(t){this.viewModel.timeExtent=t}get timeZone(){return this.viewModel.view?.timeZone??p}set timeZone(t){this._overrideIfSome("timeZone",t)}get view(){return this.viewModel.view}set view(t){this.viewModel.view=t}static async getPropertiesFromWebMap(t,e){return E.getPropertiesFromWebMap(t,e)}next(){return this.viewModel.next()}play(){return this.viewModel.play()}previous(){return this.viewModel.previous()}stop(){return this.viewModel.stop()}render(){const{_slider:t,actions:e,domNode:s,effectiveStops:o,fullTimeExtent:a,interactive:n,messages:r,messagesCommon:l,mode:m,tickConfigs:d,timeExtent:c,timeVisible:p,viewModel:{state:v,timeExtentValues:h}}=this;if(null!=a){const{start:e,end:i}=a;if(null!=e&&null!=i){const s=e.getTime(),o=i.getTime(),a=t.min!==s||t.max!==o;if(a&&(t.min=s,t.max=o),null!=d)t.tickConfigs!==d&&(t.tickConfigs=d);else{const e=(o-s)/(t.trackElement?.offsetWidth||400),i=this.tickFormats.find((t=>t.minor.toMilliseconds()>M*e))??this.tickFormats.at(-1),n=this._tickFormat!==i&&null!=i;if(n&&(this._tickFormat=i),a||n){const e={mode:"position",values:this._getTickPositions(i.minor),labelsVisible:!1,tickCreatedFunction:(t,e)=>{e?.classList.add(_.sliderMinorTick)}},s={mode:"position",values:this._getTickPositions(i.major),labelsVisible:!0,tickCreatedFunction:(t,e)=>{e?.classList.add(_.sliderMajorTick)},labelFormatFunction:t=>u(t,i.format)};t.tickConfigs=[e,s]}}}}const f=null==this.fullTimeExtent?.start||null==this.fullTimeExtent.end||null==this.timeExtent||this.timeExtent.isAllTime||this.timeExtent.isEmpty||null!=this.timeExtent.start&&(this.timeExtent.start<this.fullTimeExtent.start||this.timeExtent.start>this.fullTimeExtent.end)||null!=this.timeExtent.end&&(this.timeExtent.end>this.fullTimeExtent.end||this.timeExtent.end<this.fullTimeExtent.start);if(f)switch(this._ignoreNextSliderUpdate=!0,m){case"time-window":t.values=[t.min,t.max];break;case"instant":case"cumulative-from-end":t.values=[t.min];break;case"cumulative-from-start":t.values=[t.max]}else null!=h?i(t.values,h)||(t.values=h):t.values=null;t.disabled=!n;const b="ready"===v,x="playing"===v,w=f||!n||null==o||0===o.length,E="auto"===this.layout?s.clientWidth<S?"compact":"wide":this.layout,F=k("div",{class:_.animation},k("button",{"aria-disabled":w?"true":"false","aria-label":x?l.control.stop:l.control.play,bind:this,class:this.classes(y.widgetButton,_.animationButton,w&&y.buttonDisabled),disabled:w,onclick:this._playOrStopClick,title:x?l.control.stop:l.control.play,type:"button"},k("div",{class:this.classes((b||w)&&g.play,x&&g.pause)}))),C=null!=this.labelFormatFunction?k("div",{afterCreate:this._createLabel,afterUpdate:this._createLabel,bind:this,class:_.timeExtentDate,"data-date":c?[c.start,c.end]:null,"data-layout":E,"data-type":"extent",key:"extent"}):null==c||null!=c&&c.isAllTime?[k("div",{class:this.classes(_.warning,g.noticeTriangle)}),k("div",{class:_.warningText,key:"warning-text"},r.noTimeExtent)]:c.isEmpty?[k("div",{class:this.classes(_.warning,g.noticeTriangle)}),k("div",{class:_.warningText,key:"warning-text"},r.emptyTimeExtent)]:[null!=c.start&&k("div",{class:_.timeExtentGroup,key:"start-date-group"},k("div",{class:_.timeExtentDate,key:"start-date"},this._formatDate(c.start)),p?k("div",{class:_.timeExtentTime,key:"start-time"},this._formatTime(c.start)):null),null!=c.start&&null!=c.end&&c.start.getTime()!==c.end.getTime()&&k("div",{class:_.timeExtentSeparator,key:"separator"},"–"),null!=c.end&&(null==c.start||c.start.getTime()!==c.end.getTime())&&k("div",{class:_.timeExtentGroup,key:"end-date-group"},k("div",{class:_.timeExtentDate,key:"end-date"},this._formatDate(c.end)),p?k("div",{class:_.timeExtentTime,key:"end-time"},this._formatTime(c.end)):null)],D=k("div",{class:this.classes(_.timeExtent,!n&&y.buttonDisabled)},[C]),U=null!=this.labelFormatFunction?k("div",{afterCreate:this._createLabel,afterUpdate:this._createLabel,bind:this,class:_.minDate,"data-date":a?.start,"data-layout":E,"data-type":"min",key:"min-date"}):null!=a?.start&&[k("div",{class:_.minDate,key:"min-date"},this._formatDate(a.start)),p&&k("div",{class:_.minTime,key:"min-time"},this._formatTime(a.start))],L=k("div",{class:this.classes(_.min,!n&&y.buttonDisabled)},[U]),Z=k("div",{class:_.slider},t.render()),R=null!=this.labelFormatFunction?k("div",{afterCreate:this._createLabel,afterUpdate:this._createLabel,bind:this,class:_.maxDate,"data-date":a?.end,"data-layout":E,"data-type":"max",key:"max-date"}):null!=a?.end&&[k("div",{class:_.maxDate,key:"max-date"},this._formatDate(a.end)),p&&k("div",{class:_.maxTime,key:"max-time"},this._formatTime(a.end))],B=k("div",{class:this.classes(_.max,!n&&y.buttonDisabled)},[R]),I=k("div",{class:_.previous},k("button",{"aria-disabled":w?"true":"false","aria-label":l.pagination.previous,bind:this,class:this.classes(y.widgetButton,_.previousButton,(x||w)&&y.buttonDisabled),disabled:w,onclick:this._previousClick,title:l.pagination.previous,type:"button"},k("div",{class:g.reverse}))),O=k("div",{class:_.next},k("button",{"aria-disabled":w?"true":"false","aria-label":l.pagination.next,bind:this,class:this.classes(y.widgetButton,_.nextButton,(x||w)&&y.buttonDisabled),disabled:w,onclick:this._nextClick,title:l.pagination.next,type:"button"},k("div",{class:g.forward}))),A=e?.length>0,V=A&&k("div",{class:_.actions,title:l.options},k("calcite-action-menu",{class:_.actionsButton,label:l.options},e.toArray().map((t=>k("calcite-action",{bind:this,icon:t.icon,id:t.id,onclick:()=>this.viewModel.triggerAction(t),text:t.title,textEnabled:!0})))));return k("div",{afterCreate:t=>{this.addHandles(j(t,(()=>this.scheduleRender())))},"aria-label":r.widgetLabel,class:this.classes(_.timeSlider,y.widget,`${_.timeSliderMode}${m}`,`${_.timeSliderLayout}${E}`,!n&&y.disabled,f&&_.timeSliderOutOfBounds,A&&_.hasActions,T())},"wide"===E&&k("div",{class:_.timeSliderRow},k("div",{class:_.playbackControls},[F,D,L,Z,B,I,O]),V),"compact"===E&&[k("div",{class:_.timeSliderRow,key:"time-slider-row-1"},[D,V]),k("div",{class:_.timeSliderRow,key:"time-slider-row-2"},[Z]),k("div",{class:_.timeSliderRow,key:"time-slider-row-3"},[L,I,F,O,B])])}updateWebDocument(t){this.viewModel?.updateWebDocument(t)}_createLabel(t){if(null==this.labelFormatFunction)return;const e=t.getAttribute("data-type"),i=t.getAttribute("data-layout"),s=t["data-date"];this.labelFormatFunction(s,e,t,i)}_formatDate(t){return u(t,this._dateFormat)}_formatTime(t){return u(t,this._timeFormat)}_getIntlOptions(t){const{timeZone:e}=this;return{...d(t),timeZone:e}}_getTickPositions(t){const{fullTimeExtent:e}=this;if(null==e?.start||null==e.end)return[];const{start:i,end:s}=e,o=[],{value:a,unit:l}=t;let m=n(i,l,this.timeZone);for(;m.getTime()<=s.getTime();)m.getTime()>=i.getTime()&&o.push(m.getTime()),m=r(m,a,l,this.timeZone);return o}_updateSliderSteps(){this._slider.steps=null!=this.effectiveStops&&this.effectiveStops.length>0?this.effectiveStops.map((t=>t.getTime())):null}_playOrStopClick(){switch(this.viewModel.state){case"ready":this.viewModel.play();break;case"playing":this.viewModel.stop();break;case"disabled":break;default:s(this.viewModel.state)}}_previousClick(){this.viewModel.previous()}_nextClick(){this.viewModel.next()}};t([l()],C.prototype,"_dateFormat",null),t([l()],C.prototype,"_timeFormat",null),t([l()],C.prototype,"actions",null),t([l()],C.prototype,"disabled",void 0),t([l()],C.prototype,"effectiveStops",null),t([l()],C.prototype,"fullTimeExtent",null),t([l()],C.prototype,"iconClass",void 0),t([l()],C.prototype,"icon",void 0),t([l({readOnly:!0})],C.prototype,"interactive",null),t([l()],C.prototype,"label",null),t([l()],C.prototype,"labelFormatFunction",void 0),t([l({value:"auto"})],C.prototype,"layout",null),t([l()],C.prototype,"loop",null),t([l(),x("esri/widgets/TimeSlider/t9n/TimeSlider")],C.prototype,"messages",void 0),t([l(),x("esri/t9n/common")],C.prototype,"messagesCommon",void 0),t([l()],C.prototype,"mode",null),t([l()],C.prototype,"playRate",null),t([l()],C.prototype,"stops",null),t([l()],C.prototype,"tickConfigs",void 0),t([l()],C.prototype,"tickFormats",null),t([l()],C.prototype,"timeExtent",null),t([l({nonNullable:!0})],C.prototype,"timeVisible",void 0),t([l()],C.prototype,"timeZone",null),t([l()],C.prototype,"view",null),t([l({type:E}),w("trigger-action")],C.prototype,"viewModel",void 0),t([b()],C.prototype,"_playOrStopClick",null),t([b()],C.prototype,"_previousClick",null),t([b()],C.prototype,"_nextClick",null),C=t([m("esri.widgets.TimeSlider")],C);const D=C;export{D as default};
5
+ import{_ as t}from"../chunks/tslib.es6.js";import e from"../TimeInterval.js";import{equals as i}from"../core/arrayUtils.js";import{neverReached as s}from"../core/compilerUtils.js";import{watch as o,initial as a}from"../core/reactiveUtils.js";import{truncateDate as n,offsetDate as r}from"../core/timeUtils.js";import{property as l}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import{subclass as m}from"../core/accessorSupport/decorators/subclass.js";import{formatDate as u,convertDateFormatToIntlOptions as d}from"../intl/date.js";import{unknown as c,system as p}from"../time/timeZoneUtils.js";import h from"./Slider.js";import v from"./Widget.js";import{loadCalciteComponents as f}from"./support/componentsUtils.js";import{globalCss as y}from"./support/globalCss.js";import{legacyIcon as g}from"./support/legacyIcon.js";import{accessibleHandler as b}from"./support/decorators/accessibleHandler.js";import{messageBundle as x}from"./support/decorators/messageBundle.js";import{vmEvent as w}from"./support/decorators/vmEvent.js";import{tsx as k}from"./support/jsxFactory.js";import{onResize as j}from"./support/widgetUtils.js";import{getCalciteThemeClass as T}from"../support/themeUtils.js";import{css as _}from"./TimeSlider/css.js";import E from"./TimeSlider/TimeSliderViewModel.js";const M=3,S=858,F=[{minor:{value:100,unit:"milliseconds"},major:{value:1,unit:"seconds"},format:{second:"numeric"}},{minor:{value:500,unit:"milliseconds"},major:{value:5,unit:"seconds"},format:{second:"numeric"}},{minor:{value:1,unit:"seconds"},major:{value:20,unit:"seconds"},format:{minute:"numeric",second:"numeric"}},{minor:{value:2,unit:"seconds"},major:{value:30,unit:"seconds"},format:{minute:"numeric",second:"numeric"}},{minor:{value:10,unit:"seconds"},major:{value:1,unit:"minutes"},format:{minute:"numeric"}},{minor:{value:15,unit:"seconds"},major:{value:5,unit:"minutes"},format:{hour:"numeric",minute:"numeric"}},{minor:{value:1,unit:"minutes"},major:{value:20,unit:"minutes"},format:{hour:"numeric",minute:"numeric"}},{minor:{value:5,unit:"minutes"},major:{value:2,unit:"hours"},format:{hour:"numeric",minute:"numeric"}},{minor:{value:15,unit:"minutes"},major:{value:6,unit:"hours"},format:{hour:"numeric",minute:"numeric"}},{minor:{value:1,unit:"hours"},major:{value:1,unit:"days"},format:{day:"numeric",month:"short"}},{minor:{value:6,unit:"hours"},major:{value:1,unit:"weeks"},format:{day:"numeric",month:"short"}},{minor:{value:1,unit:"days"},major:{value:1,unit:"months"},format:{month:"long"}},{minor:{value:2,unit:"days"},major:{value:1,unit:"months"},format:{month:"short"}},{minor:{value:3,unit:"days"},major:{value:1,unit:"months"},format:{month:"short"}},{minor:{value:4,unit:"days"},major:{value:3,unit:"months"},format:{month:"short",year:"numeric"}},{minor:{value:1,unit:"weeks"},major:{value:1,unit:"years"},format:{year:"numeric"}},{minor:{value:1,unit:"months"},major:{value:1,unit:"years"},format:{year:"numeric"}},{minor:{value:2,unit:"months"},major:{value:2,unit:"years"},format:{year:"numeric"}},{minor:{value:1,unit:"years"},major:{value:1,unit:"decades"},format:{year:"numeric"}},{minor:{value:2,unit:"years"},major:{value:5,unit:"decades"},format:{year:"numeric"}},{minor:{value:5,unit:"decades"},major:{value:10,unit:"centuries"},format:{era:"short",year:"numeric"}},{minor:{value:1,unit:"centuries"},major:{value:10,unit:"centuries"},format:{era:"short",year:"numeric"}},{minor:{value:2,unit:"centuries"},major:{value:20,unit:"centuries"},format:{era:"short",year:"numeric"}},{minor:{value:5,unit:"centuries"},major:{value:50,unit:"centuries"},format:{era:"short",year:"numeric"}},{minor:{value:10,unit:"centuries"},major:{value:100,unit:"centuries"},format:{era:"short",year:"numeric"}},{minor:{value:20,unit:"centuries"},major:{value:200,unit:"centuries"},format:{era:"short",year:"numeric"}},{minor:{value:50,unit:"centuries"},major:{value:500,unit:"centuries"},format:{era:"short",year:"numeric"}},{minor:{value:100,unit:"centuries"},major:{value:1e3,unit:"centuries"},format:{era:"short",year:"numeric"}},{minor:{value:200,unit:"centuries"},major:{value:1e3,unit:"centuries"},format:{era:"short",year:"numeric"}},{minor:{value:500,unit:"centuries"},major:{value:5e3,unit:"centuries"},format:{era:"short",year:"numeric"}},{minor:{value:1e3,unit:"centuries"},major:{value:1e4,unit:"centuries"},format:{era:"short",year:"numeric"}}];let C=class extends v{constructor(t,e){super(t,e),this._ignoreNextSliderUpdate=!1,this._slider=new h({precision:0,visibleElements:{rangeLabels:!1},rangeLabelInputsEnabled:!1,thumbsConstrained:!1}),this._tickFormat=null,this.disabled=!1,this.iconClass=_.widgetIcon,this.icon=null,this.labelFormatFunction=null,this.messages=null,this.messagesCommon=null,this.tickConfigs=null,this.timeVisible=!1,this.viewModel=new E}initialize(){this.addHandles([o((()=>this._slider.values),(t=>{if(this._ignoreNextSliderUpdate)return void(this._ignoreNextSliderUpdate=!1);const e=this.viewModel.valuesToTimeExtent(t);null!=this.timeExtent?null!=e?this.timeExtent.equals(e)||(this.timeExtent=e):this.timeExtent=null:null!=e&&(this.timeExtent=e)})),o((()=>this.effectiveStops),(()=>this._updateSliderSteps()),a)])}loadDependencies(){return f({action:()=>import("@esri/calcite-components/dist/components/calcite-action.js"),"action-menu":()=>import("@esri/calcite-components/dist/components/calcite-action-menu.js")})}destroy(){this._slider.destroy(),this._tickFormat=null}get _dateFormat(){return this._getIntlOptions("short-date")}get _timeFormat(){return this._getIntlOptions("long-time")}get actions(){return this.viewModel.actions}set actions(t){this.viewModel.actions=t}get effectiveStops(){return this.viewModel.effectiveStops}get fullTimeExtent(){return this.viewModel.fullTimeExtent}set fullTimeExtent(t){this.viewModel.fullTimeExtent=t}get interactive(){return!(this.disabled||"disabled"===this.viewModel.state||this.timeZone===c)}get label(){return this.messages?.widgetLabel??""}set label(t){this._overrideIfSome("label",t)}set layout(t){["auto","compact","wide"].includes(t)||(t="auto"),this._set("layout",t)}get loop(){return this.viewModel.loop}set loop(t){this.viewModel.loop=t}get mode(){return this.viewModel.mode}set mode(t){this.viewModel.mode=t}get playRate(){return this.viewModel.playRate}set playRate(t){this.viewModel.playRate=t}get stops(){return this.viewModel.stops}set stops(t){this.viewModel.stops=t}get tickFormats(){const{timeZone:t}=this;return F.map((({minor:i,major:s,format:o})=>({minor:new e(i),major:new e(s),format:{...o,timeZone:t}})))}get timeExtent(){return this.viewModel.timeExtent}set timeExtent(t){this.viewModel.timeExtent=t}get timeZone(){return this.viewModel.view?.timeZone??p}set timeZone(t){this._overrideIfSome("timeZone",t)}get view(){return this.viewModel.view}set view(t){this.viewModel.view=t}static async getPropertiesFromWebMap(t,e){return E.getPropertiesFromWebMap(t,e)}next(){return this.viewModel.next()}play(){return this.viewModel.play()}previous(){return this.viewModel.previous()}stop(){return this.viewModel.stop()}render(){const{_slider:t,actions:e,domNode:s,effectiveStops:o,fullTimeExtent:a,interactive:n,messages:r,messagesCommon:l,mode:m,tickConfigs:d,timeExtent:c,timeVisible:p,viewModel:{state:h,timeExtentValues:v}}=this;if(null!=a){const{start:e,end:i}=a;if(null!=e&&null!=i){const s=e.getTime(),o=i.getTime(),a=t.min!==s||t.max!==o;if(a&&(t.min=s,t.max=o),null!=d)t.tickConfigs!==d&&(t.tickConfigs=d);else{const e=(o-s)/(t.trackElement?.offsetWidth||400),i=this.tickFormats.find((t=>t.minor.toMilliseconds()>M*e))??this.tickFormats.at(-1),n=this._tickFormat!==i&&null!=i;if(n&&(this._tickFormat=i),a||n){const e={mode:"position",values:this._getTickPositions(i.minor),labelsVisible:!1,tickCreatedFunction:(t,e)=>{e?.classList.add(_.sliderMinorTick)}},s={mode:"position",values:this._getTickPositions(i.major),labelsVisible:!0,tickCreatedFunction:(t,e)=>{e?.classList.add(_.sliderMajorTick)},labelFormatFunction:t=>u(t,i.format)};t.tickConfigs=[e,s]}}}}const f=null==this.fullTimeExtent?.start||null==this.fullTimeExtent.end||null==this.timeExtent||this.timeExtent.isAllTime||this.timeExtent.isEmpty||null!=this.timeExtent.start&&(this.timeExtent.start<this.fullTimeExtent.start||this.timeExtent.start>this.fullTimeExtent.end)||null!=this.timeExtent.end&&(this.timeExtent.end>this.fullTimeExtent.end||this.timeExtent.end<this.fullTimeExtent.start);if(f)switch(this._ignoreNextSliderUpdate=!0,m){case"time-window":t.values=[t.min,t.max];break;case"instant":case"cumulative-from-end":t.values=[t.min];break;case"cumulative-from-start":t.values=[t.max]}else null!=v?i(t.values,v)||(t.values=v):t.values=null;t.disabled=!n;const b="ready"===h,x="playing"===h,w=f||!n||null==o||0===o.length,E="auto"===this.layout?s.clientWidth<S?"compact":"wide":this.layout,F=k("div",{class:_.animation},k("button",{"aria-disabled":w?"true":"false","aria-label":x?l.control.stop:l.control.play,bind:this,class:this.classes(y.widgetButton,_.animationButton,w&&y.buttonDisabled),disabled:w,onclick:this._playOrStopClick,title:x?l.control.stop:l.control.play,type:"button"},k("div",{class:this.classes((b||w)&&g.play,x&&g.pause)}))),C=null!=this.labelFormatFunction?k("div",{afterCreate:this._createLabel,afterUpdate:this._createLabel,bind:this,class:_.timeExtentDate,"data-date":c?[c.start,c.end]:null,"data-layout":E,"data-type":"extent",key:"extent"}):null==c||null!=c&&c.isAllTime?[k("div",{class:this.classes(_.warning,g.noticeTriangle)}),k("div",{class:_.warningText,key:"warning-text"},r.noTimeExtent)]:c.isEmpty?[k("div",{class:this.classes(_.warning,g.noticeTriangle)}),k("div",{class:_.warningText,key:"warning-text"},r.emptyTimeExtent)]:[null!=c.start&&k("div",{class:_.timeExtentGroup,key:"start-date-group"},k("div",{class:_.timeExtentDate,key:"start-date"},this._formatDate(c.start)),p?k("div",{class:_.timeExtentTime,key:"start-time"},this._formatTime(c.start)):null),null!=c.start&&null!=c.end&&c.start.getTime()!==c.end.getTime()&&k("div",{class:_.timeExtentSeparator,key:"separator"},"–"),null!=c.end&&(null==c.start||c.start.getTime()!==c.end.getTime())&&k("div",{class:_.timeExtentGroup,key:"end-date-group"},k("div",{class:_.timeExtentDate,key:"end-date"},this._formatDate(c.end)),p?k("div",{class:_.timeExtentTime,key:"end-time"},this._formatTime(c.end)):null)],D=k("div",{class:this.classes(_.timeExtent,!n&&y.buttonDisabled)},[C]),U=null!=this.labelFormatFunction?k("div",{afterCreate:this._createLabel,afterUpdate:this._createLabel,bind:this,class:_.minDate,"data-date":a?.start,"data-layout":E,"data-type":"min",key:"min-date"}):null!=a?.start&&[k("div",{class:_.minDate,key:"min-date"},this._formatDate(a.start)),p&&k("div",{class:_.minTime,key:"min-time"},this._formatTime(a.start))],L=k("div",{class:this.classes(_.min,!n&&y.buttonDisabled)},[U]),Z=k("div",{class:_.slider},t.render()),R=null!=this.labelFormatFunction?k("div",{afterCreate:this._createLabel,afterUpdate:this._createLabel,bind:this,class:_.maxDate,"data-date":a?.end,"data-layout":E,"data-type":"max",key:"max-date"}):null!=a?.end&&[k("div",{class:_.maxDate,key:"max-date"},this._formatDate(a.end)),p&&k("div",{class:_.maxTime,key:"max-time"},this._formatTime(a.end))],B=k("div",{class:this.classes(_.max,!n&&y.buttonDisabled)},[R]),I=k("div",{class:_.previous},k("button",{"aria-disabled":w?"true":"false","aria-label":l.pagination.previous,bind:this,class:this.classes(y.widgetButton,_.previousButton,(x||w)&&y.buttonDisabled),disabled:w,onclick:this._previousClick,title:l.pagination.previous,type:"button"},k("div",{class:g.reverse}))),O=k("div",{class:_.next},k("button",{"aria-disabled":w?"true":"false","aria-label":l.pagination.next,bind:this,class:this.classes(y.widgetButton,_.nextButton,(x||w)&&y.buttonDisabled),disabled:w,onclick:this._nextClick,title:l.pagination.next,type:"button"},k("div",{class:g.forward}))),A=e?.length>0,V=A&&k("div",{class:_.actions,title:l.options},k("calcite-action-menu",{class:_.actionsButton,label:l.options},e.toArray().map((t=>k("calcite-action",{bind:this,icon:t.icon,id:t.id,onclick:()=>this.viewModel.triggerAction(t),text:t.title,textEnabled:!0})))));return k("div",{afterCreate:t=>{this.addHandles(j(t,(()=>this.scheduleRender())))},"aria-label":r.widgetLabel,class:this.classes(_.timeSlider,y.widget,`${_.timeSliderMode}${m}`,`${_.timeSliderLayout}${E}`,!n&&y.disabled,f&&_.timeSliderOutOfBounds,A&&_.hasActions,T())},"wide"===E&&k("div",{class:_.timeSliderRow},k("div",{class:_.playbackControls},[F,D,L,Z,B,I,O]),V),"compact"===E&&[k("div",{class:_.timeSliderRow,key:"time-slider-row-1"},[D,V]),k("div",{class:_.timeSliderRow,key:"time-slider-row-2"},[Z]),k("div",{class:_.timeSliderRow,key:"time-slider-row-3"},[L,I,F,O,B])])}updateWebDocument(t){this.viewModel?.updateWebDocument(t)}_createLabel(t){if(null==this.labelFormatFunction)return;const e=t.getAttribute("data-type"),i=t.getAttribute("data-layout"),s=t["data-date"];this.labelFormatFunction(s,e,t,i)}_formatDate(t){return u(t,this._dateFormat)}_formatTime(t){return u(t,this._timeFormat)}_getIntlOptions(t){const{timeZone:e}=this;return{...d(t),timeZone:e}}_getTickPositions(t){const{fullTimeExtent:e}=this;if(null==e?.start||null==e.end)return[];const{start:i,end:s}=e,o=[],{value:a,unit:l}=t;let m=n(i,l,this.timeZone);for(;m.getTime()<=s.getTime();)m.getTime()>=i.getTime()&&o.push(m.getTime()),m=r(m,a,l,this.timeZone);return o}_updateSliderSteps(){this._slider.steps=null!=this.effectiveStops&&this.effectiveStops.length>0?this.effectiveStops.map((t=>t.getTime())):null}_playOrStopClick(){switch(this.viewModel.state){case"ready":this.viewModel.play();break;case"playing":this.viewModel.stop();break;case"disabled":break;default:s(this.viewModel.state)}}_previousClick(){this.viewModel.previous()}_nextClick(){this.viewModel.next()}};t([l()],C.prototype,"_dateFormat",null),t([l()],C.prototype,"_timeFormat",null),t([l()],C.prototype,"actions",null),t([l()],C.prototype,"disabled",void 0),t([l()],C.prototype,"effectiveStops",null),t([l()],C.prototype,"fullTimeExtent",null),t([l()],C.prototype,"iconClass",void 0),t([l()],C.prototype,"icon",void 0),t([l({readOnly:!0})],C.prototype,"interactive",null),t([l()],C.prototype,"label",null),t([l()],C.prototype,"labelFormatFunction",void 0),t([l({value:"auto"})],C.prototype,"layout",null),t([l()],C.prototype,"loop",null),t([l(),x("esri/widgets/TimeSlider/t9n/TimeSlider")],C.prototype,"messages",void 0),t([l(),x("esri/t9n/common")],C.prototype,"messagesCommon",void 0),t([l()],C.prototype,"mode",null),t([l()],C.prototype,"playRate",null),t([l()],C.prototype,"stops",null),t([l()],C.prototype,"tickConfigs",void 0),t([l()],C.prototype,"tickFormats",null),t([l()],C.prototype,"timeExtent",null),t([l({nonNullable:!0})],C.prototype,"timeVisible",void 0),t([l()],C.prototype,"timeZone",null),t([l()],C.prototype,"view",null),t([l({type:E}),w("trigger-action")],C.prototype,"viewModel",void 0),t([b()],C.prototype,"_playOrStopClick",null),t([b()],C.prototype,"_previousClick",null),t([b()],C.prototype,"_nextClick",null),C=t([m("esri.widgets.TimeSlider")],C);const D=C;export{D as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import{getAssetPath as t}from"@esri/calcite-components/dist/components/index.js";import"../intl.js";import s from"../request.js";import{property as i}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as o}from"../core/accessorSupport/decorators/subclass.js";import{getShortOffsetTimeZoneSuffix as r}from"../intl/date.js";import{unknown as n}from"../time/timeZoneUtils.js";import a from"./Widget.js";import{loadCalciteComponents as l}from"./support/componentsUtils.js";import{globalCss as d}from"./support/globalCss.js";import{isRTL as p}from"./support/widgetUtils.js";import{messageBundle as c}from"./support/decorators/messageBundle.js";import{tsx as m}from"./support/jsxFactory.js";import{css as u}from"./TimeZoneLabel/css.js";import h from"./TimeZoneLabel/TimeZoneLabelViewModel.js";import{onLocaleChange as g,getLocale as b}from"../intl/locale.js";import{substitute as v}from"../intl/substitute.js";import{normalizeMessageBundleLocale as f}from"../intl/messages.js";let j=class extends a{constructor(e,t){super(e,t),this.disabled=!1,this.expanded=!1,this.icon=null,this.inputTimeZoneMessages=null,this.messages=null,this.viewModel=new h,this._onExpanderClick=()=>{this.expanded=!this.expanded}}initialize(){this.addHandles(g((()=>this._updateMessageBundle()))),this._updateMessageBundle()}loadDependencies(){return l({action:()=>import("@esri/calcite-components/dist/components/calcite-action.js"),icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js")})}get formattedTimeZone(){const{timeZoneComponents:e}=this.viewModel;if(!e)return"";const{timeZone:t}=e;if("area"in e){const{area:s,location:i}=e;if("etc"===s.toLowerCase())return r(t)??t;const o=this.messages.area[s.toLowerCase()]??s,n=this.inputTimeZoneMessages??{},a=Object.entries(n).find((([e])=>e.toLowerCase()===t.toLowerCase()))?.[1]??i;return v(this.messages.locationArea,{area:o,location:a})}return t===n?this.messages.noAdjustment:t}get interactive(){return!(this.disabled||"disabled"===this.viewModel.state)}get label(){return this.messages.widgetLabel}set label(e){this._overrideIfSome("label",e)}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}render(){const{interactive:e,label:t,view:s}=this,i=this.classes(u.base,d.widget,!e&&d.disabled),o=this.container?s?.ui.getPosition(this.container):null,r="top-right"===o||"bottom-right"===o||"top-trailing"===o||"bottom-trailing"===o,n=[this._renderExpander(r),this._renderName(),this._renderBadge()],a=p();return(!a&&r||a&&!r)&&n.reverse(),m("div",{"aria-label":t,class:i},n)}_renderExpander(e){const{expanded:t,interactive:s,label:i}=this;return m("calcite-action",{active:!1,class:u.expander,disabled:!s,icon:t?e?"chevrons-right":"chevrons-left":"time-zone",key:u.expander,onclick:this._onExpanderClick,text:i,textEnabled:!1,title:i})}_renderBadge(){const{expanded:e,interactive:t}=this;return m("div",{class:this.classes(u.badge,!e&&u.badgeHidden,!t&&u.badgeDisabled)},m("calcite-icon",{class:u.badgeIcon,icon:"time-zone",scale:"s"}))}_renderName(){const{expanded:e,formattedTimeZone:t,interactive:s}=this;return m("span",{class:this.classes(u.name,!e&&u.nameHidden,!s&&u.nameDisabled),key:u.name},t)}async _updateMessageBundle(){const e=t("assets/input-time-zone/t9n/messages"),i=b(),o=`${e}_${f(i)}.json`,r=await s(o,{responseType:"text"}).catch((()=>{}));this.inputTimeZoneMessages=JSON.parse(r?.data??{})}};e([i()],j.prototype,"disabled",void 0),e([i()],j.prototype,"expanded",void 0),e([i({readOnly:!0})],j.prototype,"formattedTimeZone",null),e([i()],j.prototype,"icon",void 0),e([i()],j.prototype,"inputTimeZoneMessages",void 0),e([i({readOnly:!0})],j.prototype,"interactive",null),e([i()],j.prototype,"label",null),e([i(),c("esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel")],j.prototype,"messages",void 0),e([i()],j.prototype,"view",null),e([i()],j.prototype,"viewModel",void 0),j=e([o("esri.widgets.TimeZoneLabel")],j);const w=j;export{w as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import{getAssetPath as t}from"@esri/calcite-components/dist/components/index.js";import"../intl.js";import s from"../request.js";import{property as i}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as o}from"../core/accessorSupport/decorators/subclass.js";import{getShortOffsetTimeZoneSuffix as r}from"../intl/date.js";import{unknown as n}from"../time/timeZoneUtils.js";import a from"./Widget.js";import{loadCalciteComponents as c}from"./support/componentsUtils.js";import{globalCss as d}from"./support/globalCss.js";import{isRTL as l}from"./support/widgetUtils.js";import{messageBundle as p}from"./support/decorators/messageBundle.js";import{tsx as m}from"./support/jsxFactory.js";import{css as u}from"./TimeZoneLabel/css.js";import h from"./TimeZoneLabel/TimeZoneLabelViewModel.js";import{onLocaleChange as g,getLocale as b}from"../intl/locale.js";import{substitute as v}from"../intl/substitute.js";import{normalizeMessageBundleLocale as f}from"../intl/messages.js";let j=class extends a{constructor(e,t){super(e,t),this.disabled=!1,this.expanded=!1,this.icon=null,this.inputTimeZoneMessages=null,this.messages=null,this.viewModel=new h,this._onExpanderClick=()=>{this.expanded=!this.expanded}}initialize(){this.addHandles(g((()=>this._updateMessageBundle()))),this._updateMessageBundle()}loadDependencies(){return c({action:()=>import("@esri/calcite-components/dist/components/calcite-action.js"),icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js")})}get expandDirection(){if(!this.view||!this.container)return"end";const e=l();switch(this.view.ui.getPosition(this.container)){case"top-right":case"bottom-right":case"top-trailing":case"bottom-trailing":return e?"end":"start";case"top-left":case"bottom-left":case"top-leading":case"bottom-leading":return e?"start":"end";default:return"end"}}set expandDirection(e){this._overrideIfSome("expandDirection",e)}get formattedTimeZone(){const{timeZoneComponents:e}=this.viewModel;if(!e)return"";const{timeZone:t}=e;if("area"in e){const{area:s,location:i}=e;if("etc"===s.toLowerCase())return r(t)??t;const o=this.messages.area[s.toLowerCase()]??s,n=this.inputTimeZoneMessages??{},a=Object.entries(n).find((([e])=>e.toLowerCase()===t.toLowerCase()))?.[1]??i;return v(this.messages.locationArea,{area:o,location:a})}return t===n?this.messages.noAdjustment:t}get interactive(){return!(this.disabled||"disabled"===this.viewModel.state)}get label(){return this.messages.widgetLabel}set label(e){this._overrideIfSome("label",e)}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}render(){const{expandDirection:e,interactive:t,label:s}=this,i=this.classes(u.base,d.widget,!t&&d.disabled),o=[this._renderExpander(),this._renderName(),this._renderBadge()];return"start"===e&&o.reverse(),m("div",{"aria-label":s,class:i},o)}_getIcon(){const{expanded:e,expandDirection:t}=this;return e?l()?"start"===t?"chevrons-left":"chevrons-right":"start"===t?"chevrons-right":"chevrons-left":"time-zone"}_renderExpander(){const{interactive:e,label:t}=this,s=this._getIcon();return m("calcite-action",{active:!1,class:u.expander,disabled:!e,icon:s,key:u.expander,onclick:this._onExpanderClick,scale:"s",text:t,textEnabled:!1,title:t})}_renderBadge(){const{expanded:e,interactive:t}=this;return m("div",{class:this.classes(u.badge,!e&&u.badgeHidden,!t&&u.badgeDisabled)},m("calcite-icon",{class:u.badgeIcon,icon:"time-zone",scale:"s"}))}_renderName(){const{expanded:e,formattedTimeZone:t,interactive:s}=this;return m("span",{class:this.classes(u.name,!e&&u.nameHidden,!s&&u.nameDisabled),key:u.name},t)}async _updateMessageBundle(){const e=t("assets/input-time-zone/t9n/messages"),i=b(),o=`${e}_${f(i)}.json`,r=await s(o,{responseType:"text"}).catch((()=>{}));this.inputTimeZoneMessages=JSON.parse(r?.data??{})}};e([i()],j.prototype,"disabled",void 0),e([i()],j.prototype,"expandDirection",null),e([i()],j.prototype,"expanded",void 0),e([i({readOnly:!0})],j.prototype,"formattedTimeZone",null),e([i()],j.prototype,"icon",void 0),e([i()],j.prototype,"inputTimeZoneMessages",void 0),e([i({readOnly:!0})],j.prototype,"interactive",null),e([i()],j.prototype,"label",null),e([i(),p("esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel")],j.prototype,"messages",void 0),e([i()],j.prototype,"view",null),e([i()],j.prototype,"viewModel",void 0),j=e([o("esri.widgets.TimeZoneLabel")],j);const w=j;export{w as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../chunks/tslib.es6.js";import{id as t}from"../../kernel.js";import r from"../../core/Collection.js";import s from"../../core/Error.js";import i from"../../core/Evented.js";import a from"../../core/Logger.js";import{when as l}from"../../core/reactiveUtils.js";import{property as o}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{subclass as n}from"../../core/accessorSupport/decorators/subclass.js";import c from"../../geometry/Point.js";import{fetchMessageBundle as h}from"../../intl/messages.js";import u from"../../layers/FeatureLayer.js";import p from"../../layers/GraphicsLayer.js";import d from"../../layers/support/CodedValueDomain.js";import{isFeatureLayer as g}from"../../layers/support/layerUtils.js";import m from"../../networks/UtilityNetwork.js";import{getObjectIdsFromElements as y,getFeaturesFromLayers as f}from"../../networks/support/utils.js";import w from"../../portal/Portal.js";import{hasUserTypeExtension as _}from"../../portal/support/utils.js";import{trace as b}from"../../rest/networks/trace.js";import A from"../../rest/networks/support/TraceLocation.js";import v from"../../rest/networks/support/TraceParameters.js";import{GeometryHandler as R}from"./support/GeometryHandler.js";import{GraphicHandler as I}from"./support/GraphicHandler.js";import{ResultAreaHandler as k}from"./support/ResultAreaHandler.js";import{UtilityHelper as F}from"./support/UtilityHelper.js";const S=()=>h("esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace"),T=()=>h("esri/core/t9n/Units"),G=`utility-network-trace-flags-${Date.now()}`,L=`utility-network-trace-results-${Date.now()}`;function H(e){return e instanceof d}function P(e){return"feature"===e.layer.type||"subtype-group"===e.layer.type}function U(e){return"layer"in e}function N(e){return void 0!==e.layerViews}function C(e){return"graphics"===e.type}async function E(e){const t=new u({url:e.networkSystemLayers.dirtyAreasLayerUrl});await t.load();const r=t.version;if(Number(r)<=11.1){const t=new w({url:new URL(e.layerUrl).origin+"/portal"});await t.load();const r=t?.user?.username;return!!r&&_(t,r,"utilityNetwork")}return!0}let B=class extends i.EventedAccessor{constructor(e){super(e),this._activeProgress=!1,this._clickHandler=null,this._flags=[],this._geometryHandler=null,this._highlightHandler=[],this._resultAreaHandler=null,this._utilityHelper=new F,this._traces=[],this._watchHandler=null,this._validUNLayers=[],this._traceTimeout=6e5,this.graphicHandler=null,this.defaultGraphicColor={color:[255,255,0,.6],haloOpacity:.9,fillOpacity:.2,hex:"#FFFF00"},this.enableResultArea=!1,this.flags=[],this.gdbVersion="sde.DEFAULT",this.messages=null,this.messagesUnits=null,this.defaultResultAreaProperties={type:"convexhull",distance:10,unit:"meters",areaUnit:"square-meters",color:{color:[255,165,0,.5],haloOpacity:.9,fillOpacity:.2,hex:"#ffa500"},show:!1},this.selectedTraces=[],this.selectOnComplete=!0,this.showGraphicsOnComplete=!0,this.showSelectionAttributes=!0,this.traceResults=[],this.utilityNetwork=null}initialize(){this._geometryHandler=new R,this.graphicHandler=new I,this._resultAreaHandler=new k;(async()=>{const[e,t]=await Promise.all([S(),T()]);this.set({messages:e,messagesUnits:t})})()}destroy(){this.view=null}get resultAreaProperties(){return this.defaultResultAreaProperties}set resultAreaProperties(e){this._set("resultAreaProperties",{...this.defaultResultAreaProperties,...e}),this.graphicHandler.addCustomColor(this.resultAreaProperties.color),this.traceResults.forEach((t=>{t.resultArea={...this.defaultResultAreaProperties,...e};const r=t.resultArea.show;this.removeResultAreaFromMap(t),r&&this.enableResultArea&&this.addResultAreaToMap(t)}))}get state(){return this.view?.ready?"ready":"loading"}get view(){return this._get("view")}set view(e){e&&"2d"!==e.type&&a.getLogger(this).error(new s("view:invalid-view","SceneView is not supported",{view:e})),this._set("view",e)}addFlagByHit(e,t){const r=e=>{this.view?.popup&&(this.view.popupEnabled=e)};return new Promise(((s,i)=>{r(!1),this._clickHandler?.remove(),this.emit("add-flag",{type:e}),this._clickHandler=this.view?.on("click",(a=>{this.queryFlagByHitTest(a,e,t).then((i=>{r(!0),this._clickHandler?.remove(),this.emit("add-flag-complete",{type:e,symbol:t}),s(i)})).catch((s=>{r(!0),this._clickHandler?.remove(),this.emit("add-flag-error",{type:e,symbol:t}),i(s)}))}))}))}async addFlagsOnLoad(){return new Promise((e=>{const t=[];this._watchHandler=l((()=>null!=this.view&&!this.view.updating),(async()=>{if(this._flags.length>0)e(t);else{const r=this.flags.map((async e=>{if(e.mapPoint){const r=new c({x:e.mapPoint.x,y:e.mapPoint.y,spatialReference:e.mapPoint.spatialReference.wkid}),s={screenPoint:this.view.toScreen(r),mapPoint:r};await this.queryFlagByHitTest(s,e.type)||("barrier"===e.type?t.push("barrier"):t.push("starting-point"))}}));await Promise.all(r),e(t)}}),{initial:!0})}))}addResultAreaToMap(e){if(e.resultArea.show=!0,null!==e.results?.aggregatedGeometry){const t=this._geometryHandler.mergeAggregatedToGeometries(e.results?.aggregatedGeometry);if(t.length>0){const r=Array(t.length).fill(e.resultArea?.distance);this.createResultAreaGeometries(e,t,r)}}else{const t=this._groupResultsByNetworkSource(e.results.elements),r=[];for(const e in t)r.push(this.queryFeaturesById(t[e]));Promise.all(r).then((t=>{const r=[];for(const e of t)for(const t of e)for(const e of t.featureSet.features)r.push(e.geometry);const s=Array(r.length).fill(e.resultArea?.distance);this.createResultAreaGeometries(e,r,s)})).catch((e=>{console.log(e)}))}}async addResultGraphicToView(e,t){const{view:r}=this,{results:s}=e;if(r&&s)for(const i in s.aggregatedGeometry)if("line,multipoint,polygon".includes(i)){const a=i,l=s.aggregatedGeometry[a];if(null!=l){l.spatialReference=this.utilityNetwork.spatialReference,e.graphicEnabled=!0;const s=await this._geometryHandler.projectGeometry(l,r.spatialReference),i={globalid:e.trace.globalId};if(null!==s){const e=this.graphicHandler.makeGraphic(s,t.color,i,r.spatialReference);this._getGraphicLayer(L)?.add(e)}}}}addTerminal(e,t){const r=[...this._flags];r.forEach((r=>{r.globalId===t.globalId&&(t.selectedTerminals?.includes(parseInt(e,10))||r.selectedTerminals?.push(parseInt(e,10)))})),this._flags=r}async callTrace(){const e=this._traces.filter((e=>e.selected));return e.length>0&&(this.traceResults.length>0&&this.traceResults.forEach((e=>{this.removeResultGraphicFromView(e)})),this.traceResults=[],this.removeSelection(),await Promise.all(e.map((async(e,t)=>{const r=e,s=new v({gdbVersion:this.gdbVersion,moment:null,traceType:r.traceType,traceLocations:this._flags,namedTraceConfigurationGlobalId:r.globalId,traceConfiguration:null,outSpatialReference:null,resultTypes:null});await this.executeTrace(r,this.utilityNetwork.networkServiceUrl,s).then((e=>{if(e.hasOwnProperty("results")){const r={...e};if(null!==r.results){r.resultArea={...this.resultAreaProperties};const e=[...r.results.elements];r.results.elements.length=0;const s=new Map;for(const t of e)s.has(t.globalId)||(s.set(t.globalId,!0),r.results.elements.push(t));const i=[...this.traceResults];i.splice(t,0,r),this.traceResults=i,null!==r.results&&(this.selectOnComplete&&this.mergeSelection(!0,r.trace),this.showGraphicsOnComplete&&this.addResultGraphicToView(r,r.graphicColor),this.enableResultArea&&r.resultArea.show&&this.addResultAreaToMap(r))}else{const r=[...this.traceResults];r.splice(t,0,e),this.traceResults=r}this._activeProgress=!1}else{this._activeProgress=!1;const r=[...this.traceResults];r.splice(t,0,e),this.traceResults=r}})).catch((e=>{throw this._activeProgress=!1,e}))}))),!0)}changeResultAreaColor(e,t){e.resultArea&&(e.resultArea.color=t,this._resultAreaHandler?.changeResultAreaColor(e.trace.globalId,t,this.view.map))}changeResultGraphicColor(e,t){const r=[...this.traceResults];r.length>0&&r.forEach((r=>{r.trace.globalId===t.trace.globalId&&(r.graphicColor=e,r.graphicEnabled=!0)})),this.traceResults=r,this.removeResultGraphicFromView(t),this.addResultGraphicToView(t,e)}changeFlagSymbol(e,t){this._flags.length>0&&this._flags.forEach((r=>{r.type===e&&t&&r.mapGraphic&&(r.mapGraphic.symbol=t)}))}checkCanTrace(){const e={status:!0,issues:[]};let t=!1;const r=this._flags.some((e=>"starting-point"===e.type)),s=this._flags.filter((e=>null!==e.allTerminals));s.length>0&&(t=s.some((e=>e.selectedTerminals.length<=0)));let i=[];return r?(i=this._traces.filter((e=>e.selected)),i.length<=0?(e.status=!1,e.issues=["noTrace"],t&&(e.status=!1,e.issues=["noTrace","noTerminalSelected"])):t&&(e.status=!1,e.issues=["noTerminalSelected"])):(i=this._traces.filter((e=>!0===e.selected)),i.length>0?(e.status=!1,e.issues=["noStart"],t&&(e.status=!1,e.issues=["noStart","noTerminalSelected"])):(e.status=!1,e.issues=["noStart","noTrace"],t&&(e.status=!1,e.issues=["noStart","noTrace","noTerminalSelected"]))),e}checkSelectionExist(){let e=!1;return this._highlightHandler.some((t=>{t&&(e=!0)})),e}clearResult(e){if(!this.view)return;let t=this.traceResults;if(t.length>0){const r=t.filter((t=>t.trace.globalId===e.globalId));r.length>0&&(this.removeResultGraphicFromView(r[0]),this.removeResultAreaFromMap(r[0])),t=t.filter((t=>t.trace.globalId!==e.globalId))}this.traceResults=t,0===t.length?(this.removeAllResultAreaGraphics(),this.removeSelection(),this.emit("clear-selection",{resultSet:[]})):this.mergeSelection(!1,e)}createResultAreaGeometries(e,t,r){if(!this.view||!this.resultAreaProperties)return;let s;if("convexhull"===this.resultAreaProperties?.type?s=this._resultAreaHandler?.createConvexHull(t,e.resultArea?.distance,e.resultArea?.unit):t&&(s=this._resultAreaHandler?.createBuffer(t,r,e.resultArea?.unit,!0)),s&&Array.isArray(s)){if(s.length>0)for(const i of s){const t=this.getResultAreaAttributes(e,i),r=this._resultAreaHandler?.createResultAreaGraphic(i,t,e.resultArea?.areaUnit,this.messages,this.messagesUnits,e.resultArea?.color);r&&(this._resultAreaHandler?.addResultAreaToMap(r,this.view.map),this.emit("add-result-area",{graphic:r}))}}else{const t=this.getResultAreaAttributes(e,s),r=this._resultAreaHandler?.createResultAreaGraphic(s,t,e.resultArea?.areaUnit,this.messages,this.messagesUnits,e.resultArea?.color);r&&(this._resultAreaHandler?.addResultAreaToMap(r,this.view.map),this.emit("add-result-area",{graphic:r}))}}executeTrace(e,t,r){const s=this._processFlags(r.traceLocations);return r.traceLocations=s,b(t,r,{timeout:this._traceTimeout}).then((t=>({trace:e,results:t,selectionEnabled:!1,graphicEnabled:!1,graphicColor:this.defaultGraphicColor,status:"success",date:new Date}))).catch((t=>({trace:e,results:null,selectionEnabled:!1,graphicEnabled:!1,graphicColor:this.defaultGraphicColor,status:t.message,date:new Date})))}getResultAreaAttributes(e,r){const{messages:s}=this,i=[],a=[];this._flags.forEach((e=>{const t=e.displayValue?.field+":"+e.displayValue?.value+";"+s.attributeStrings.globalid+":"+e.globalId+";"+s.attributeStrings.terminalid+":"+e.terminalId+";"+s.attributeStrings.x+":"+e.mapPoint?.x+";"+s.attributeStrings.y+":"+e.mapPoint?.y;"starting-point"===e.type?i.push(t):a.push(t)}));return{traceId:e.trace.globalId,traceName:e.trace.title,traceDescription:e.trace.description??"",startingPoints:i.toString(),barriers:a.toString(),version:this.gdbVersion,username:t.credentials[0].userId,date:e.date,elementCount:e.results?.elements.length,functionResult:JSON.stringify(e.results?.globalFunctionResults),areaStatistic:this._geometryHandler.calculateArea(r,e.resultArea?.areaUnit)}}getValidSources(){let e=[];const t=this.utilityNetwork.dataElement?.domainNetworks??[];for(const r of t)e=e.concat(r.junctionSources),e=e.concat(r.edgeSources);return e}async loadUtilityNetwork(){const{view:e}=this;if(!e)return null;if(await e.when(),this.utilityNetwork){if(this.utilityNetwork.loaded||await this.utilityNetwork.load(),this.utilityNetwork instanceof m){try{const t=e.map;await t.loadAll(),this._loadUNSupportItems()}catch(i){this._loadUNSupportItems()}return this.utilityNetwork}return null}const t=e.map,r=t.utilityNetworks?.at(0);if(r){if(await r.load(),this.utilityNetwork=r,!await E(r))throw new s("utility-network:no-user-type-extension","User type extension not found");try{await t.loadAll(),this._loadUNSupportItems()}catch(i){}finally{this._loadUNSupportItems()}return r}return null}manageFilterBarrier(e,t){const r=[...this._flags];r.forEach((r=>{r.globalId===t.globalId&&"barrier"===t.type&&r.id===t.id&&(r.isFilterBarrier=e)})),this._flags=r}mergeSelection(e,t){let r=[];const s=[...this.traceResults],i=t.globalId;s.forEach((t=>{i===t.trace.globalId&&(t.selectionEnabled=e),t.selectionEnabled&&null!==t.results?.elements&&(r=[...r,...t.results?.elements??[]])})),this.selectResults([...new Set(r)])}async queryFeaturesById(e){const{view:t}=this;if(!t)return null;const s=y(this.utilityNetwork,e),i={layerUrl:s[0].layerUrl,objectIds:s[0].objectIds,outFields:["*"]},a=t.map?.allTables.toArray().filter((e=>e?.parsedUrl?.path===s[0].layerUrl)).filter(g)??[];this._getUniqueMapLayerViews(t).filter((({layer:e})=>e?.parsedUrl?.path===s[0].layerUrl)).forEach((({layer:e})=>{"feature"!==e.type&&"subtype-group"!==e.type||a.push(e)}));const l=(await Promise.all(a.map((async e=>{const s={layers:new r([e]),layerInfos:[i],returnGeometry:!0,outSpatialReference:t.spatialReference},[a]=await f(s,!1);return a})))).filter((({featureSet:e})=>e.features.length>0));return l.length>0?l:null}queryFlagByHitTest(e,t,r){return this._lookupFlagByHit(e).then((e=>{const{view:s}=this;if(!s)return!1;if(e.length>0){const s=[...this._flags],i=r;return e.forEach((e=>{const r=e.graphic,a=r.attributes.hasOwnProperty("GLOBALID")?r.attributes.GLOBALID:r.attributes.globalid;if(s.filter((e=>e.globalId===a)).length<=0){const e=this.graphicHandler.getFlagGraphic(r.mapPoint,t,r,i);this._getGraphicLayer(G)?.add(e),s.push({...r,type:t,globalId:r.attributes.globalid||r.attributes.GLOBALID,details:r,mapGraphic:e,id:s.length+1})}else if(null!==r.percentAlong){const e=this.graphicHandler.getFlagGraphic(r.mapPoint,t,r,i);this._getGraphicLayer(G)?.add(e),s.push({...r,type:t,globalId:r.attributes.globalid||r.attributes.GLOBALID,details:r,mapGraphic:e,id:s.length+1})}})),this._flags=s,!0}return!1}))}removeResultGraphicFromView(e){const{view:t}=this;if(!t)return;const r=this._getGraphicLayer(L)?.graphics;e.graphicEnabled=!1;const s=r?.filter((t=>t.attributes[t.attributes.hasOwnProperty("GLOBALID")?"GLOBALID":"globalid"]===e.trace.globalId));s?.forEach((e=>{this._getGraphicLayer(L)?.remove(e)}))}removeFlag(e){const t=this._flags.filter((t=>{if(t.id!==e.id)return t}));this._removeGraphic(e),this._flags=t}removeAllResultAreaGraphics(){this._resultAreaHandler?.removeAllResultAreaGraphics(this.view.map)}removeResultAreaFromMap(e){e.resultArea.show=!1;const t=this._resultAreaHandler?.removeResultArea(e.trace.globalId,this.view?.map);t&&this.emit("remove-result-area",{graphic:t})}removeSelection(){this._highlightHandler.forEach((e=>{e&&e.remove()})),this._highlightHandler=[]}removeTerminal(e,t){const r=[...this._flags];r.forEach((r=>{if(r.globalId===t.globalId&&t.selectedTerminals?.includes(parseInt(e,10))){const s=t.selectedTerminals.indexOf(parseInt(e,10));r.selectedTerminals?.splice(s,1)}})),this._flags=r}removeFlagsOnLoadWatcher(){this._watchHandler&&null!==this._watchHandler&&this._watchHandler.remove()}reset(){this._flags=[],this.traceResults=[];const e=[...this._traces];e.forEach((e=>{e.selected=!1})),this._traces=e,this.view&&(this._getGraphicLayer(L)?.removeAll(),this._getGraphicLayer(G)?.removeAll(),this.removeAllResultAreaGraphics(),this.removeSelection(),this.emit("clear-selection",{resultSet:[]}))}selectFeaturesById(e){const{view:t}=this;if(!t)return;const r=y(this.utilityNetwork,e);this._getUniqueMapLayerViews(t).forEach((e=>{U(e)&&e.layer?.parsedUrl?.path===r[0].layerUrl&&P(e)&&this._highlightHandler.push(e.highlight(r[0].objectIds))}))}selectResults(e){if(e.length>0){this.removeSelection();const t=this._groupResultsByNetworkSource(e),r=[];for(const e in t)this.selectFeaturesById(t[e]),r.push(this.queryFeaturesById(t[e]));Promise.all(r).then((e=>{this.emit("select-features",{resultSet:e})}))}else this.removeSelection(),this.emit("clear-selection",{resultSet:[]})}selectTraces(e,t){const r=[...this._traces];r.forEach((r=>{t===r.globalId&&(r.selected=e)})),this._traces=r}selectTracesOnLoad(){this.utilityNetwork.hasOwnProperty("sharedNamedTraceConfigurations")&&(this._traces=[...this.utilityNetwork.sharedNamedTraceConfigurations],this._traces.forEach((e=>{e.selected=!1,this.selectedTraces.includes(e.globalId)&&(e.selected=!0)})))}zoomToAsset(e){this.view?.goTo(e).catch((e=>console.error(e)))}_loadUNSupportItems(){const{map:e}=this.view,{messages:t}=this;this._populateOutfields(),this._createGraphicLayer(G),this._createGraphicLayer(L),this._resultAreaHandler?.createGraphicLayer(e,t?.alertsStrings.genericResultHeader),this._validUNLayers=this._utilityHelper.getValidUtilityNetworkLayers(e,this.utilityNetwork)}_getUniqueMapLayerViews(e){const t=[];return e.layerViews.filter((({layer:{type:e}})=>"feature"===e||"group"===e||"subtype-group"===e)).toArray().forEach((e=>{switch(e.layer.type){case"group":if(N(e))for(const r of e.layerViews)t.push(r);break;case"subtype-group":t.push(e);break;default:t.some((t=>t.layer.id===e.layer.id))||t.push(e)}})),t}_processFlags(e){const t=[];return e.forEach((e=>{if(null!==e.selectedTerminals&&e.selectedTerminals.length>0)e.selectedTerminals.forEach((r=>{const s=new A({globalId:e.globalId,percentAlong:e.percentAlong,terminalId:r,type:e.type,isFilterBarrier:e.isFilterBarrier});t.push(s)}));else{const r=new A({globalId:e.globalId,percentAlong:e.percentAlong,terminalId:null,type:e.type,isFilterBarrier:e.isFilterBarrier});t.push(r)}})),t}_getDisplayField(e){return"subtype-sublayer"===e?.layer?.type?this._getDisplayFieldBySublayer(e):this._getDisplayFieldByFeatureLayer(e)}_getDisplayFieldBySublayer(e){let t="",r="";const s=e.layer;t=this._checkParentForData(s,"displayField");for(const i in e.attributes){const a=i.toLowerCase();a===t?.toLowerCase()?(r=e.attributes[i],"assetgroup"===a||"assettype"===a?r=this._checkSubtype(s,s.subtypeCode):(r=this._checkDomain(s.fields,i,r),"string"==typeof r&&(r=this._defaultDisplayField(r,s)))):(r=this._checkDomain(s.fields,i,r),"string"==typeof r&&(r=this._defaultDisplayField(r,s)))}return{field:t,value:r.toString()}}_getDisplayFieldByFeatureLayer(e){const t=e.layer;let r=t.displayField,s="";for(const i in e.attributes){const a=i.toLowerCase();if(a===r?.toLowerCase())if(s=e.attributes[i],"assetgroup"===a||"assettype"===a){let a=e.attributes[t.typeIdField.toUpperCase()];a||(a=e.attributes[t.typeIdField.toLowerCase()]),r=t.typeIdField,s=this._checkSubtype(t,a),""===r&&(t.templates&&t.templates.length>0?(r=t.templates[0]?.name,s=t.templates[0]?.name):(r=t.displayField,s=e.attributes[i]))}else s=this._checkDomain(t.fields,i,s),"string"==typeof s&&(s=this._defaultDisplayField(s,t));else s=this._checkDomain(t.fields,i,s),"string"==typeof s&&(s=this._defaultDisplayField(s,t))}return{field:r,value:s?s.toString():""}}_checkSubtype(e,t){let r=t;if("subtype-sublayer"===e.type){const s=this._checkParentForData(e,"subtypes");s?.length>0&&s.forEach((e=>{e.code===t&&(r=e.name)}))}else if(null!=e.types&&e.types.length>0){const s=e.types.filter((e=>e.id===t));s.length>0&&(r=s[0].name)}return r}_checkDomain(e,t,r){let s=r;const i=e.filter((e=>e.name.toLowerCase()===t.toLowerCase()));if(i.length>0&&H(i[0].domain)&&i[0].domain?.codedValues){const e=i[0].domain.codedValues.filter((({code:e})=>e===r));e.length>0&&(s=e[0].name)}return s}_checkParentForData(e,t){return e.parent?.[t]??null}_defaultDisplayField(e,t){return e.trim()?e:t.templates&&t.templates?.length>0?t.templates[0].name:t.title}_groupBy(e,t){return e.reduce(((e,r)=>((e[r[t]]=e[r[t]]||[]).push(r),e)),{})}_groupResultsByNetworkSource(e){if(e.length>0){return this._groupBy(e,"networkSourceId")}return[]}_lookupFlagByHit(e){return this.view.hitTest(e.screenPoint,{include:this._validUNLayers}).then((t=>{const r=[];if(t.results.length>0){const s=t.results.find((e=>null!==e.layer));if(null!=s.graphic?.geometry)if("polyline"===s.graphic.geometry.type){const t=this._geometryHandler.getPercentageAlong(s.graphic.geometry,e.mapPoint,s.graphic.geometry.spatialReference),i=this._getDisplayField(s.graphic);s.graphic.terminalId=null,s.graphic.isFilterBarrier=!1,s.graphic.allTerminals=null,s.graphic.selectedTerminals=null,s.graphic.percentAlong=t,s.graphic.displayValue=i,s.graphic.mapPoint=s.mapPoint,r.push(s)}else if(("point"===s.graphic.geometry.type||"polygon"===s.graphic.geometry.type)&&null!==this.utilityNetwork){const e=this.utilityNetwork.getTerminalConfiguration(s.graphic),t=this._getDisplayField(s.graphic);s.graphic.terminalId=e?e.terminals[0].id||null:1,s.graphic.isFilterBarrier=!1,s.graphic.allTerminals=e??null,s.graphic.selectedTerminals=[e?e.terminals[0].id||null:1],s.graphic.percentAlong=null,s.graphic.displayValue=t,s.graphic.mapPoint=s.mapPoint,r.push(s)}}return r}))}async _populateOutfields(){const e=this.view?.map,t=this.getValidSources();e?.layers.forEach((e=>{"group"===e.type?e.layers.forEach((e=>{t.some((t=>t.layerId===e.layerId))&&e.fields.some((e=>"assetgroup"===e.name.toLowerCase()))&&(e.outFields=["assetgroup","assettype","globalid","objectid"])})):t.some((t=>t.layerId===e.layerId))&&e.fields.some((e=>"assetgroup"===e.name.toLowerCase()))&&(e.outFields=["assetgroup","assettype","globalid","objectid"])}))}_removeGraphic(e){this._getGraphicLayer(G)?.remove(e.mapGraphic)}_createGraphicLayer(e){const{map:t}=this.view;if(!t.findLayerById(e)){const r=new p({title:e,listMode:"hide",id:e});t.add(r)}}_getGraphicLayer(e){const{map:t}=this.view;if(t){const r=t.findLayerById(e);if(r&&C(r))return r}return null}};e([o()],B.prototype,"_activeProgress",void 0),e([o()],B.prototype,"_flags",void 0),e([o()],B.prototype,"_traces",void 0),e([o()],B.prototype,"defaultGraphicColor",void 0),e([o()],B.prototype,"enableResultArea",void 0),e([o()],B.prototype,"flags",void 0),e([o()],B.prototype,"gdbVersion",void 0),e([o()],B.prototype,"messages",void 0),e([o()],B.prototype,"messagesUnits",void 0),e([o()],B.prototype,"resultAreaProperties",null),e([o()],B.prototype,"selectedTraces",void 0),e([o()],B.prototype,"selectOnComplete",void 0),e([o()],B.prototype,"showGraphicsOnComplete",void 0),e([o()],B.prototype,"showSelectionAttributes",void 0),e([o({readOnly:!0})],B.prototype,"state",null),e([o()],B.prototype,"traceResults",void 0),e([o()],B.prototype,"utilityNetwork",void 0),e([o({value:null})],B.prototype,"view",null),B=e([n("esri.widgets.UtilityNetworkTrace.UtilityNetworkTraceViewModel")],B);const j=B;export{j as default};
5
+ import{_ as e}from"../../chunks/tslib.es6.js";import{id as t}from"../../kernel.js";import r from"../../core/Collection.js";import s from"../../core/Error.js";import i from"../../core/Evented.js";import a from"../../core/Logger.js";import{when as l}from"../../core/reactiveUtils.js";import{property as o}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{subclass as n}from"../../core/accessorSupport/decorators/subclass.js";import c from"../../geometry/Point.js";import{fetchMessageBundle as h}from"../../intl/messages.js";import u from"../../layers/FeatureLayer.js";import p from"../../layers/GraphicsLayer.js";import d from"../../layers/support/CodedValueDomain.js";import{isFeatureLayer as g}from"../../layers/support/layerUtils.js";import m from"../../networks/UtilityNetwork.js";import{getObjectIdsFromElements as y,getFeaturesFromLayers as f}from"../../networks/support/utils.js";import w from"../../portal/Portal.js";import{hasUserTypeExtension as _}from"../../portal/support/utils.js";import{trace as b}from"../../rest/networks/trace.js";import A from"../../rest/networks/support/TraceLocation.js";import v from"../../rest/networks/support/TraceParameters.js";import{GeometryHandler as R}from"./support/GeometryHandler.js";import{GraphicHandler as I}from"./support/GraphicHandler.js";import{ResultAreaHandler as k}from"./support/ResultAreaHandler.js";import{UtilityHelper as F}from"./support/UtilityHelper.js";const S=()=>h("esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace"),T=()=>h("esri/core/t9n/Units"),G=`utility-network-trace-flags-${Date.now()}`,L=`utility-network-trace-results-${Date.now()}`;function H(e){return e instanceof d}function P(e){return"feature"===e.layer.type||"subtype-group"===e.layer.type}function U(e){return"layer"in e}function N(e){return void 0!==e.layerViews}function C(e){return"graphics"===e.type}async function E(e){const t=new u({url:e.networkSystemLayers.dirtyAreasLayerUrl});await t.load();const r=t.version;if(Number(r)<=11.1){const t=new w({url:new URL(e.layerUrl).origin+"/portal"});await t.load();const r=t?.user?.username;return!!r&&_(t,r,"utilityNetwork")}return!0}let B=class extends i.EventedAccessor{constructor(e){super(e),this._activeProgress=!1,this._clickHandler=null,this._flags=[],this._geometryHandler=null,this._highlightHandler=[],this._resultAreaHandler=null,this._utilityHelper=new F,this._traces=[],this._watchHandler=null,this._validUNLayers=[],this._traceTimeout=6e5,this.graphicHandler=null,this.defaultGraphicColor={color:[255,255,0,.6],haloOpacity:.9,fillOpacity:.2,hex:"#FFFF00"},this.enableResultArea=!1,this.flags=[],this.gdbVersion="sde.DEFAULT",this.messages=null,this.messagesUnits=null,this.defaultResultAreaProperties={type:"convexhull",distance:10,unit:"meters",areaUnit:"square-meters",color:{color:[255,165,0,.5],haloOpacity:.9,fillOpacity:.2,hex:"#ffa500"},show:!1},this.selectedTraces=[],this.selectOnComplete=!0,this.showGraphicsOnComplete=!0,this.showSelectionAttributes=!0,this.traceResults=[],this.utilityNetwork=null}initialize(){this._geometryHandler=new R,this.graphicHandler=new I,this._resultAreaHandler=new k;(async()=>{const[e,t]=await Promise.all([S(),T()]);this.set({messages:e,messagesUnits:t})})()}destroy(){this.view=null}get resultAreaProperties(){return this.defaultResultAreaProperties}set resultAreaProperties(e){this._set("resultAreaProperties",{...this.defaultResultAreaProperties,...e}),this.graphicHandler.addCustomColor(this.resultAreaProperties.color),this.traceResults.forEach((t=>{t.resultArea={...this.defaultResultAreaProperties,...e};const r=t.resultArea.show;this.removeResultAreaFromMap(t),r&&this.enableResultArea&&this.addResultAreaToMap(t)}))}get state(){return this.view?.ready?"ready":"loading"}get view(){return this._get("view")}set view(e){e&&"2d"!==e.type&&a.getLogger(this).error(new s("view:invalid-view","SceneView is not supported",{view:e})),this._set("view",e)}addFlagByHit(e,t){const r=e=>{this.view?.popup&&(this.view.popupEnabled=e)};return new Promise(((s,i)=>{r(!1),this._clickHandler?.remove(),this.emit("add-flag",{type:e}),this._clickHandler=this.view?.on("click",(a=>{this.queryFlagByHitTest(a,e,t).then((i=>{r(!0),this._clickHandler?.remove(),this.emit("add-flag-complete",{type:e,symbol:t}),s(i)})).catch((s=>{r(!0),this._clickHandler?.remove(),this.emit("add-flag-error",{type:e,symbol:t}),i(s)}))}))}))}async addFlagsOnLoad(){return new Promise((e=>{const t=[];this._watchHandler=l((()=>null!=this.view&&!this.view.updating),(async()=>{if(this._flags.length>0)e(t);else{const r=this.flags.map((async e=>{if(e.mapPoint){const r=new c({x:e.mapPoint.x,y:e.mapPoint.y,spatialReference:e.mapPoint.spatialReference.wkid}),s={screenPoint:this.view.toScreen(r),mapPoint:r};await this.queryFlagByHitTest(s,e.type)||("barrier"===e.type?t.push("barrier"):t.push("starting-point"))}}));await Promise.all(r),e(t)}}),{initial:!0})}))}addResultAreaToMap(e){if(e.resultArea.show=!0,null!==e.results?.aggregatedGeometry){const t=this._geometryHandler.mergeAggregatedToGeometries(e.results?.aggregatedGeometry);if(t.length>0){const r=Array(t.length).fill(e.resultArea?.distance);this.createResultAreaGeometries(e,t,r)}}else{const t=this._groupResultsByNetworkSource(e.results.elements),r=[];for(const e in t)r.push(this.queryFeaturesById(t[e]));Promise.all(r).then((t=>{const r=[];for(const e of t)for(const t of e)for(const e of t.featureSet.features)r.push(e.geometry);const s=Array(r.length).fill(e.resultArea?.distance);this.createResultAreaGeometries(e,r,s)})).catch((e=>{console.log(e)}))}}async addResultGraphicToView(e,t){const{view:r}=this,{results:s}=e;if(r&&s)for(const i in s.aggregatedGeometry)if("line,multipoint,polygon".includes(i)){const a=i,l=s.aggregatedGeometry[a];if(null!=l){l.spatialReference=this.utilityNetwork.spatialReference,e.graphicEnabled=!0;const s=await this._geometryHandler.projectGeometry(l,r.spatialReference),i={globalid:e.trace.globalId};if(null!==s){const e=this.graphicHandler.makeGraphic(s,t.color,i,r.spatialReference);this._getGraphicLayer(L)?.add(e)}}}}addTerminal(e,t){const r=[...this._flags];r.forEach((r=>{r.globalId===t.globalId&&(t.selectedTerminals?.includes(parseInt(e,10))||r.selectedTerminals?.push(parseInt(e,10)))})),this._flags=r}async callTrace(){const e=this._traces.filter((e=>e.selected));return e.length>0&&(this.traceResults.length>0&&this.traceResults.forEach((e=>{this.removeResultGraphicFromView(e)})),this.traceResults=[],this.removeSelection(),await Promise.all(e.map((async(e,t)=>{const r=e,s=new v({gdbVersion:this.gdbVersion,moment:null,traceType:r.traceType,traceLocations:this._flags,namedTraceConfigurationGlobalId:r.globalId,traceConfiguration:null,outSpatialReference:null,resultTypes:null});await this.executeTrace(r,this.utilityNetwork.networkServiceUrl,s).then((e=>{if(e.hasOwnProperty("results")){const r={...e};if(null!==r.results){r.resultArea={...this.resultAreaProperties};const e=[...r.results.elements];r.results.elements.length=0;const s=new Map;for(const t of e)s.has(t.globalId)||(s.set(t.globalId,!0),r.results.elements.push(t));const i=[...this.traceResults];i.splice(t,0,r),this.traceResults=i,null!==r.results&&(this.selectOnComplete&&this.mergeSelection(!0,r.trace),this.showGraphicsOnComplete&&this.addResultGraphicToView(r,r.graphicColor),this.enableResultArea&&r.resultArea.show&&this.addResultAreaToMap(r))}else{const r=[...this.traceResults];r.splice(t,0,e),this.traceResults=r}this._activeProgress=!1}else{this._activeProgress=!1;const r=[...this.traceResults];r.splice(t,0,e),this.traceResults=r}})).catch((e=>{throw this._activeProgress=!1,e}))}))),!0)}changeResultAreaColor(e,t){e.resultArea&&(e.resultArea.color=t,this._resultAreaHandler?.changeResultAreaColor(e.trace.globalId,t,this.view.map))}changeResultGraphicColor(e,t){const r=[...this.traceResults];r.length>0&&r.forEach((r=>{r.trace.globalId===t.trace.globalId&&(r.graphicColor=e,r.graphicEnabled=!0)})),this.traceResults=r,this.removeResultGraphicFromView(t),this.addResultGraphicToView(t,e)}changeFlagSymbol(e,t){this._flags.length>0&&this._flags.forEach((r=>{r.type===e&&t&&r.mapGraphic&&(r.mapGraphic.symbol=t)}))}checkCanTrace(){const e={status:!0,issues:[]};let t=!1;const r=this._flags.some((e=>"starting-point"===e.type)),s=this._flags.filter((e=>null!==e.allTerminals));s.length>0&&(t=s.some((e=>e.selectedTerminals.length<=0)));let i=[];return r?(i=this._traces.filter((e=>e.selected)),i.length<=0?(e.status=!1,e.issues=["noTrace"],t&&(e.status=!1,e.issues=["noTrace","noTerminalSelected"])):t&&(e.status=!1,e.issues=["noTerminalSelected"])):(i=this._traces.filter((e=>!0===e.selected)),i.length>0?(e.status=!1,e.issues=["noStart"],t&&(e.status=!1,e.issues=["noStart","noTerminalSelected"])):(e.status=!1,e.issues=["noStart","noTrace"],t&&(e.status=!1,e.issues=["noStart","noTrace","noTerminalSelected"]))),e}checkSelectionExist(){let e=!1;return this._highlightHandler.some((t=>{t&&(e=!0)})),e}clearResult(e){if(!this.view)return;let t=this.traceResults;if(t.length>0){const r=t.filter((t=>t.trace.globalId===e.globalId));r.length>0&&(this.removeResultGraphicFromView(r[0]),this.removeResultAreaFromMap(r[0])),t=t.filter((t=>t.trace.globalId!==e.globalId))}this.traceResults=t,0===t.length?(this.removeAllResultAreaGraphics(),this.removeSelection(),this.emit("clear-selection",{resultSet:[]})):this.mergeSelection(!1,e)}createResultAreaGeometries(e,t,r){if(!this.view||!this.resultAreaProperties)return;let s;if("convexhull"===this.resultAreaProperties?.type?s=this._resultAreaHandler?.createConvexHull(t,e.resultArea?.distance,e.resultArea?.unit):t&&(s=this._resultAreaHandler?.createBuffer(t,r,e.resultArea?.unit,!0)),s&&Array.isArray(s)){if(s.length>0)for(const i of s){const t=this.getResultAreaAttributes(e,i),r=this._resultAreaHandler?.createResultAreaGraphic(i,t,e.resultArea?.areaUnit,this.messages,this.messagesUnits,e.resultArea?.color);r&&(this._resultAreaHandler?.addResultAreaToMap(r,this.view.map),this.emit("add-result-area",{graphic:r}))}}else{const t=this.getResultAreaAttributes(e,s),r=this._resultAreaHandler?.createResultAreaGraphic(s,t,e.resultArea?.areaUnit,this.messages,this.messagesUnits,e.resultArea?.color);r&&(this._resultAreaHandler?.addResultAreaToMap(r,this.view.map),this.emit("add-result-area",{graphic:r}))}}executeTrace(e,t,r){const s=this._processFlags(r.traceLocations);return r.traceLocations=s,b(t,r,{timeout:this._traceTimeout}).then((t=>({trace:e,results:t,selectionEnabled:!1,graphicEnabled:!1,graphicColor:this.defaultGraphicColor,status:"success",date:new Date}))).catch((t=>({trace:e,results:null,selectionEnabled:!1,graphicEnabled:!1,graphicColor:this.defaultGraphicColor,status:t.message,date:new Date})))}getResultAreaAttributes(e,r){const{messages:s}=this,i=[],a=[];this._flags.forEach((e=>{const t=e.displayValue?.field+":"+e.displayValue?.value+";"+s.attributeStrings.globalid+":"+e.globalId+";"+s.attributeStrings.terminalid+":"+e.terminalId+";"+s.attributeStrings.x+":"+e.mapPoint?.x+";"+s.attributeStrings.y+":"+e.mapPoint?.y;"starting-point"===e.type?i.push(t):a.push(t)}));return{traceId:e.trace.globalId,traceName:e.trace.title,traceDescription:e.trace.description??"",startingPoints:i.toString(),barriers:a.toString(),version:this.gdbVersion,username:t.credentials[0].userId,date:e.date,elementCount:e.results?.elements.length,functionResult:JSON.stringify(e.results?.globalFunctionResults),areaStatistic:r?this._geometryHandler.calculateArea(r,e.resultArea?.areaUnit):0}}getValidSources(){let e=[];const t=this.utilityNetwork.dataElement?.domainNetworks??[];for(const r of t)e=e.concat(r.junctionSources),e=e.concat(r.edgeSources);return e}async loadUtilityNetwork(){const{view:e}=this;if(!e)return null;if(await e.when(),this.utilityNetwork){if(this.utilityNetwork.loaded||await this.utilityNetwork.load(),this.utilityNetwork instanceof m){try{const t=e.map;await t.loadAll(),this._loadUNSupportItems()}catch(i){this._loadUNSupportItems()}return this.utilityNetwork}return null}const t=e.map,r=t.utilityNetworks?.at(0);if(r){if(await r.load(),this.utilityNetwork=r,!await E(r))throw new s("utility-network:no-user-type-extension","User type extension not found");try{await t.loadAll(),this._loadUNSupportItems()}catch(i){}finally{this._loadUNSupportItems()}return r}return null}manageFilterBarrier(e,t){const r=[...this._flags];r.forEach((r=>{r.globalId===t.globalId&&"barrier"===t.type&&r.id===t.id&&(r.isFilterBarrier=e)})),this._flags=r}mergeSelection(e,t){let r=[];const s=[...this.traceResults],i=t.globalId;s.forEach((t=>{i===t.trace.globalId&&(t.selectionEnabled=e),t.selectionEnabled&&null!==t.results?.elements&&(r=[...r,...t.results?.elements??[]])})),this.selectResults([...new Set(r)])}async queryFeaturesById(e){const{view:t}=this;if(!t)return null;const s=y(this.utilityNetwork,e),i={layerUrl:s[0].layerUrl,objectIds:s[0].objectIds,outFields:["*"]},a=t.map?.allTables.toArray().filter((e=>e?.parsedUrl?.path===s[0].layerUrl)).filter(g)??[];this._getUniqueMapLayerViews(t).filter((({layer:e})=>e?.parsedUrl?.path===s[0].layerUrl)).forEach((({layer:e})=>{"feature"!==e.type&&"subtype-group"!==e.type||a.push(e)}));const l=(await Promise.all(a.map((async e=>{const s={layers:new r([e]),layerInfos:[i],returnGeometry:!0,outSpatialReference:t.spatialReference},[a]=await f(s,!1);return a})))).filter((({featureSet:e})=>e.features.length>0));return l.length>0?l:null}queryFlagByHitTest(e,t,r){return this._lookupFlagByHit(e).then((e=>{const{view:s}=this;if(!s)return!1;if(e.length>0){const s=[...this._flags],i=r;return e.forEach((e=>{const r=e.graphic,a=r.attributes.hasOwnProperty("GLOBALID")?r.attributes.GLOBALID:r.attributes.globalid;if(s.filter((e=>e.globalId===a)).length<=0){const e=this.graphicHandler.getFlagGraphic(r.mapPoint,t,r,i);this._getGraphicLayer(G)?.add(e),s.push({...r,type:t,globalId:r.attributes.globalid||r.attributes.GLOBALID,details:r,mapGraphic:e,id:s.length+1})}else if(null!==r.percentAlong){const e=this.graphicHandler.getFlagGraphic(r.mapPoint,t,r,i);this._getGraphicLayer(G)?.add(e),s.push({...r,type:t,globalId:r.attributes.globalid||r.attributes.GLOBALID,details:r,mapGraphic:e,id:s.length+1})}})),this._flags=s,!0}return!1}))}removeResultGraphicFromView(e){const{view:t}=this;if(!t)return;const r=this._getGraphicLayer(L)?.graphics;e.graphicEnabled=!1;const s=r?.filter((t=>t.attributes[t.attributes.hasOwnProperty("GLOBALID")?"GLOBALID":"globalid"]===e.trace.globalId));s?.forEach((e=>{this._getGraphicLayer(L)?.remove(e)}))}removeFlag(e){const t=this._flags.filter((t=>{if(t.id!==e.id)return t}));this._removeGraphic(e),this._flags=t}removeAllResultAreaGraphics(){this._resultAreaHandler?.removeAllResultAreaGraphics(this.view.map)}removeResultAreaFromMap(e){e.resultArea.show=!1;const t=this._resultAreaHandler?.removeResultArea(e.trace.globalId,this.view?.map);t&&this.emit("remove-result-area",{graphic:t})}removeSelection(){this._highlightHandler.forEach((e=>{e&&e.remove()})),this._highlightHandler=[]}removeTerminal(e,t){const r=[...this._flags];r.forEach((r=>{if(r.globalId===t.globalId&&t.selectedTerminals?.includes(parseInt(e,10))){const s=t.selectedTerminals.indexOf(parseInt(e,10));r.selectedTerminals?.splice(s,1)}})),this._flags=r}removeFlagsOnLoadWatcher(){this._watchHandler&&null!==this._watchHandler&&this._watchHandler.remove()}reset(){this._flags=[],this.traceResults=[];const e=[...this._traces];e.forEach((e=>{e.selected=!1})),this._traces=e,this.view&&(this._getGraphicLayer(L)?.removeAll(),this._getGraphicLayer(G)?.removeAll(),this.removeAllResultAreaGraphics(),this.removeSelection(),this.emit("clear-selection",{resultSet:[]}))}selectFeaturesById(e){const{view:t}=this;if(!t)return;const r=y(this.utilityNetwork,e);this._getUniqueMapLayerViews(t).forEach((e=>{U(e)&&e.layer?.parsedUrl?.path===r[0].layerUrl&&P(e)&&this._highlightHandler.push(e.highlight(r[0].objectIds))}))}selectResults(e){if(e.length>0){this.removeSelection();const t=this._groupResultsByNetworkSource(e),r=[];for(const e in t)this.selectFeaturesById(t[e]),r.push(this.queryFeaturesById(t[e]));Promise.all(r).then((e=>{this.emit("select-features",{resultSet:e})}))}else this.removeSelection(),this.emit("clear-selection",{resultSet:[]})}selectTraces(e,t){const r=[...this._traces];r.forEach((r=>{t===r.globalId&&(r.selected=e)})),this._traces=r}selectTracesOnLoad(){this.utilityNetwork.hasOwnProperty("sharedNamedTraceConfigurations")&&(this._traces=[...this.utilityNetwork.sharedNamedTraceConfigurations],this._traces.forEach((e=>{e.selected=!1,this.selectedTraces.includes(e.globalId)&&(e.selected=!0)})))}zoomToAsset(e){this.view?.goTo(e).catch((e=>console.error(e)))}_loadUNSupportItems(){const{map:e}=this.view,{messages:t}=this;this._populateOutfields(),this._createGraphicLayer(G),this._createGraphicLayer(L),this._resultAreaHandler?.createGraphicLayer(e,t?.alertsStrings.genericResultHeader),this._validUNLayers=this._utilityHelper.getValidUtilityNetworkLayers(e,this.utilityNetwork)}_getUniqueMapLayerViews(e){const t=[];return e.layerViews.filter((({layer:{type:e}})=>"feature"===e||"group"===e||"subtype-group"===e)).toArray().forEach((e=>{switch(e.layer.type){case"group":if(N(e))for(const r of e.layerViews)t.push(r);break;case"subtype-group":t.push(e);break;default:t.some((t=>t.layer.id===e.layer.id))||t.push(e)}})),t}_processFlags(e){const t=[];return e.forEach((e=>{if(null!==e.selectedTerminals&&e.selectedTerminals.length>0)e.selectedTerminals.forEach((r=>{const s=new A({globalId:e.globalId,percentAlong:e.percentAlong,terminalId:r,type:e.type,isFilterBarrier:e.isFilterBarrier});t.push(s)}));else{const r=new A({globalId:e.globalId,percentAlong:e.percentAlong,terminalId:null,type:e.type,isFilterBarrier:e.isFilterBarrier});t.push(r)}})),t}_getDisplayField(e){return"subtype-sublayer"===e?.layer?.type?this._getDisplayFieldBySublayer(e):this._getDisplayFieldByFeatureLayer(e)}_getDisplayFieldBySublayer(e){let t="",r="";const s=e.layer;t=this._checkParentForData(s,"displayField");for(const i in e.attributes){const a=i.toLowerCase();a===t?.toLowerCase()?(r=e.attributes[i],"assetgroup"===a||"assettype"===a?r=this._checkSubtype(s,s.subtypeCode):(r=this._checkDomain(s.fields,i,r),"string"==typeof r&&(r=this._defaultDisplayField(r,s)))):(r=this._checkDomain(s.fields,i,r),"string"==typeof r&&(r=this._defaultDisplayField(r,s)))}return{field:t,value:r.toString()}}_getDisplayFieldByFeatureLayer(e){const t=e.layer;let r=t.displayField,s="";for(const i in e.attributes){const a=i.toLowerCase();if(a===r?.toLowerCase())if(s=e.attributes[i],"assetgroup"===a||"assettype"===a){let a=e.attributes[t.typeIdField.toUpperCase()];a||(a=e.attributes[t.typeIdField.toLowerCase()]),r=t.typeIdField,s=this._checkSubtype(t,a),""===r&&(t.templates&&t.templates.length>0?(r=t.templates[0]?.name,s=t.templates[0]?.name):(r=t.displayField,s=e.attributes[i]))}else s=this._checkDomain(t.fields,i,s),"string"==typeof s&&(s=this._defaultDisplayField(s,t));else s=this._checkDomain(t.fields,i,s),"string"==typeof s&&(s=this._defaultDisplayField(s,t))}return{field:r,value:s?s.toString():""}}_checkSubtype(e,t){let r=t;if("subtype-sublayer"===e.type){const s=this._checkParentForData(e,"subtypes");s?.length>0&&s.forEach((e=>{e.code===t&&(r=e.name)}))}else if(null!=e.types&&e.types.length>0){const s=e.types.filter((e=>e.id===t));s.length>0&&(r=s[0].name)}return r}_checkDomain(e,t,r){let s=r;const i=e.filter((e=>e.name.toLowerCase()===t.toLowerCase()));if(i.length>0&&H(i[0].domain)&&i[0].domain?.codedValues){const e=i[0].domain.codedValues.filter((({code:e})=>e===r));e.length>0&&(s=e[0].name)}return s}_checkParentForData(e,t){return e.parent?.[t]??null}_defaultDisplayField(e,t){return e.trim()?e:t.templates&&t.templates?.length>0?t.templates[0].name:t.title}_groupBy(e,t){return e.reduce(((e,r)=>((e[r[t]]=e[r[t]]||[]).push(r),e)),{})}_groupResultsByNetworkSource(e){if(e.length>0){return this._groupBy(e,"networkSourceId")}return[]}_lookupFlagByHit(e){return this.view.hitTest(e.screenPoint,{include:this._validUNLayers}).then((t=>{const r=[];if(t.results.length>0){const s=t.results.find((e=>null!==e.layer));if(null!=s.graphic?.geometry)if("polyline"===s.graphic.geometry.type){const t=this._geometryHandler.getPercentageAlong(s.graphic.geometry,e.mapPoint,s.graphic.geometry.spatialReference),i=this._getDisplayField(s.graphic);s.graphic.terminalId=null,s.graphic.isFilterBarrier=!1,s.graphic.allTerminals=null,s.graphic.selectedTerminals=null,s.graphic.percentAlong=t,s.graphic.displayValue=i,s.graphic.mapPoint=s.mapPoint,r.push(s)}else if(("point"===s.graphic.geometry.type||"polygon"===s.graphic.geometry.type)&&null!==this.utilityNetwork){const e=this.utilityNetwork.getTerminalConfiguration(s.graphic),t=this._getDisplayField(s.graphic);s.graphic.terminalId=e?e.terminals[0].id||null:1,s.graphic.isFilterBarrier=!1,s.graphic.allTerminals=e??null,s.graphic.selectedTerminals=[e?e.terminals[0].id||null:1],s.graphic.percentAlong=null,s.graphic.displayValue=t,s.graphic.mapPoint=s.mapPoint,r.push(s)}}return r}))}async _populateOutfields(){const e=this.view?.map,t=this.getValidSources();e?.layers.forEach((e=>{"group"===e.type?e.layers.forEach((e=>{t.some((t=>t.layerId===e.layerId))&&e.fields.some((e=>"assetgroup"===e.name.toLowerCase()))&&(e.outFields=["assetgroup","assettype","globalid","objectid"])})):t.some((t=>t.layerId===e.layerId))&&e.fields.some((e=>"assetgroup"===e.name.toLowerCase()))&&(e.outFields=["assetgroup","assettype","globalid","objectid"])}))}_removeGraphic(e){this._getGraphicLayer(G)?.remove(e.mapGraphic)}_createGraphicLayer(e){const{map:t}=this.view;if(!t.findLayerById(e)){const r=new p({title:e,listMode:"hide",id:e});t.add(r)}}_getGraphicLayer(e){const{map:t}=this.view;if(t){const r=t.findLayerById(e);if(r&&C(r))return r}return null}};e([o()],B.prototype,"_activeProgress",void 0),e([o()],B.prototype,"_flags",void 0),e([o()],B.prototype,"_traces",void 0),e([o()],B.prototype,"defaultGraphicColor",void 0),e([o()],B.prototype,"enableResultArea",void 0),e([o()],B.prototype,"flags",void 0),e([o()],B.prototype,"gdbVersion",void 0),e([o()],B.prototype,"messages",void 0),e([o()],B.prototype,"messagesUnits",void 0),e([o()],B.prototype,"resultAreaProperties",null),e([o()],B.prototype,"selectedTraces",void 0),e([o()],B.prototype,"selectOnComplete",void 0),e([o()],B.prototype,"showGraphicsOnComplete",void 0),e([o()],B.prototype,"showSelectionAttributes",void 0),e([o({readOnly:!0})],B.prototype,"state",null),e([o()],B.prototype,"traceResults",void 0),e([o()],B.prototype,"utilityNetwork",void 0),e([o({value:null})],B.prototype,"view",null),B=e([n("esri.widgets.UtilityNetworkTrace.UtilityNetworkTraceViewModel")],B);const j=B;export{j as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import{watch as t,when as s}from"../core/reactiveUtils.js";import{property as i}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as r}from"../core/accessorSupport/decorators/subclass.js";import l from"../layers/support/CodedValueDomain.js";import o from"./Widget.js";import{loadCalciteComponents as a}from"./support/componentsUtils.js";import{globalCss as n}from"./support/globalCss.js";import{legacyIcon as c}from"./support/legacyIcon.js";import{storeNode as d}from"./support/widgetUtils.js";import{messageBundle as h}from"./support/decorators/messageBundle.js";import{vmEvent as u}from"./support/decorators/vmEvent.js";import{tsx as p}from"./support/jsxFactory.js";import g from"./UtilityNetworkTrace/UtilityNetworkTraceViewModel.js";import{defaultSwatchColors as m}from"./UtilityNetworkTrace/support/GraphicHandler.js";const _="esri-utility-trace-network",w={base:_,widgetIcon:c.polyline,loaderContainer:`${_}__loader-container`,loader:`${_}__loader`,fadeIn:`${_}--fade-in`,addButtonContainer:`${_}__add-button-container`,noticeContainer:`${_}__notice-container`,listContainer:`${_}__list-container`,resultsContainer:`${_}__results-container`,flow:`${_}__flow`,numberInput:`${_}__number-input`,clearPrompt:`${_}__reset-prompt`,promptDivider:`${_}__divider`,paddingTop:`${_}__padTop`},v="esri.widgets.UtilityNetworkTrace";function b(e){return{height:e+"px"}}function y(e){return{width:e+"px"}}function T(){return{width:"75%"}}function S(){return{textAlign:"center",padding:"1rem"}}function f(){return{width:"100%"}}function R(){return{height:"100%"}}function C(e){return{display:"flex",flexDirection:e}}function A(e){return e instanceof l}const F={noExtension:-2147208474};let k=class extends o{constructor(e,t){super(e,t),this._tracesExists=!0,this._selectToolActive=!1,this._activeTrace=null,this._activeSwatch="",this._traceHeaderForFlow="",this._assetGroupHeader="",this._assetTypeHeader="",this._traceResultsFunctions=[],this._traceResultsAssetGroup=[],this._traceResultsAssetType=[],this._traceResultsIndividual=[],this._showTraceResultFunctions=!1,this._showTraceResultAssetGroup=!1,this._showTraceResultAssetType=!1,this._showIndividualRecords=!1,this._activeTab="input",this._flagViewType="starting-point",this._alertRemoveModal=!1,this._warningNoFlag=!1,this._warningNoTraceSelected=!1,this._warningNoStartAssetFound=!1,this._warningNoBarrierAssetFound=!1,this._warningNoTerminal=!1,this._confirmReset=!1,this._showResultOptions=!1,this._resultObjectIdField="objectid",this._resultDisplayField="objectid",this._resultSortField="objectid",this._resultSortOrder="desc",this._swatchNode=null,this._individualResultNode=null,this._symbolStartFlag=null,this._symbolBarrier=null,this._watchHandler=null,this._loadUNError=!0,this._errorMessage="",this.disabled=!0,this.iconClass=w.widgetIcon,this.inputSettings=[],this.messages=null,this.messagesCommon=null,this.messagesUnits=null,this.viewModel=new g,this._afterComponentCreate=this._afterComponentCreate.bind(this)}initialize(){this._utilityNetworkTraceInitialized(),this.addHandles(t((()=>this.viewModel?.resultAreaProperties),(()=>this.scheduleRender())))}get defaultGraphicColor(){return this.viewModel.defaultGraphicColor}set defaultGraphicColor(e){this.viewModel.defaultGraphicColor=e}get flags(){return this.viewModel.flags}set flags(e){this.viewModel.flags=e}get gdbVersion(){return this.viewModel.gdbVersion}set gdbVersion(e){this.viewModel.gdbVersion=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get resultAreaProperties(){return this.viewModel.resultAreaProperties}set resultAreaProperties(e){this.viewModel.resultAreaProperties=e}get selectedTraces(){return this.viewModel.selectedTraces}set selectedTraces(e){this.viewModel.selectedTraces=e}get selectOnComplete(){return this.viewModel.selectOnComplete}set selectOnComplete(e){this.viewModel.selectOnComplete=e}get showGraphicsOnComplete(){return this.viewModel.showGraphicsOnComplete}set showGraphicsOnComplete(e){this.viewModel.showGraphicsOnComplete=e}get enableResultArea(){return this.viewModel.enableResultArea}set enableResultArea(e){this.viewModel.enableResultArea=e}get showSelectionAttributes(){return this.viewModel.showSelectionAttributes}set showSelectionAttributes(e){this.viewModel.showSelectionAttributes=e}get utilityNetwork(){return this.viewModel.utilityNetwork}set utilityNetwork(e){this.viewModel.utilityNetwork=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}async checkCanTrace(){this._confirmReset=!1;const e=this.viewModel.checkCanTrace();e.status?(this._warningNoFlag=!1,this._warningNoTraceSelected=!1,this._warningNoTraceSelected=!1,this._warningNoTerminal=!1,this._showTraceResultFunctions=!1,this._showTraceResultAssetGroup=!1,this._showTraceResultAssetType=!1,this._showIndividualRecords=!1,this.switchTab("result"),this.viewModel._activeProgress=!0,this.viewModel.removeAllResultAreaGraphics(),await this.viewModel.callTrace(),this.viewModel._activeProgress=!1):e.issues.forEach((e=>{switch(e){case"noStart":this._warningNoFlag=!0;break;case"noTerminalSelected":this._warningNoTerminal=!0;break;default:this._warningNoTraceSelected=!0}}))}confirmReset(){this._confirmReset=!0}render(){const{state:e}=this.viewModel;this._mixCustomStrings(),this._overrideFlagSymbol();const t="loading"===e?this._renderLoading():this._renderUtilityNetworkTrace();return p("div",{class:this.classes(w.base,n.widget,n.panel,{[n.widgetDisabled]:this.disabled}),styles:R()},t)}loadDependencies(){return a({action:()=>import("@esri/calcite-components/dist/components/calcite-action.js"),"action-group":()=>import("@esri/calcite-components/dist/components/calcite-action-group.js"),"action-pad":()=>import("@esri/calcite-components/dist/components/calcite-action-pad.js"),block:()=>import("@esri/calcite-components/dist/components/calcite-block.js"),"block-section":()=>import("@esri/calcite-components/dist/components/calcite-block-section.js"),button:()=>import("@esri/calcite-components/dist/components/calcite-button.js"),checkbox:()=>import("@esri/calcite-components/dist/components/calcite-checkbox.js"),"color-picker-swatch":()=>import("@esri/calcite-components/dist/components/calcite-color-picker-swatch.js"),combobox:()=>import("@esri/calcite-components/dist/components/calcite-combobox.js"),"combobox-item":()=>import("@esri/calcite-components/dist/components/calcite-combobox-item.js"),flow:()=>import("@esri/calcite-components/dist/components/calcite-flow.js"),"flow-item":()=>import("@esri/calcite-components/dist/components/calcite-flow-item.js"),icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js"),"input-number":()=>import("@esri/calcite-components/dist/components/calcite-input-number.js"),label:()=>import("@esri/calcite-components/dist/components/calcite-label.js"),list:()=>import("@esri/calcite-components/dist/components/calcite-list.js"),"list-item":()=>import("@esri/calcite-components/dist/components/calcite-list-item.js"),loader:()=>import("@esri/calcite-components/dist/components/calcite-loader.js"),notice:()=>import("@esri/calcite-components/dist/components/calcite-notice.js"),option:()=>import("@esri/calcite-components/dist/components/calcite-option.js"),panel:()=>import("@esri/calcite-components/dist/components/calcite-panel.js"),popover:()=>import("@esri/calcite-components/dist/components/calcite-popover.js"),scrim:()=>import("@esri/calcite-components/dist/components/calcite-scrim.js"),select:()=>import("@esri/calcite-components/dist/components/calcite-select.js"),tab:()=>import("@esri/calcite-components/dist/components/calcite-tab.js"),"tab-nav":()=>import("@esri/calcite-components/dist/components/calcite-tab-nav.js"),"tab-title":()=>import("@esri/calcite-components/dist/components/calcite-tab-title.js"),tabs:()=>import("@esri/calcite-components/dist/components/calcite-tabs.js"),tooltip:()=>import("@esri/calcite-components/dist/components/calcite-tooltip.js")})}switchTab(e){this._activeTab=e}switchToFunctions(e,t){this._traceResultsFunctions=e,this._showTraceResultFunctions=t}switchToAssetGroup(e,t,s){this._traceHeaderForFlow=t,this._traceResultsAssetGroup=e,this._showTraceResultAssetGroup=s}switchToAssetType(e,t,s){this._assetGroupHeader=t,this._traceResultsAssetType=e,this._showTraceResultAssetType=s}switchToIndividualRecords(e,t,s){this._assetTypeHeader=t,this._traceResultsIndividual=e,this._showIndividualRecords=s}_renderLoading(){return p("div",{class:w.loaderContainer,key:"loader"},p("div",{class:w.loader}))}_renderUtilityNetworkTrace(){const{messages:e,messagesCommon:t}=this;let s=p("calcite-tabs",{layout:"center",position:"top",styles:f()},p("calcite-tab-nav",{slot:"title-group"},p("calcite-tab-title",{onclick:()=>{this.switchTab("input")},selected:"input"===this._activeTab},e.inputsStrings.headerTabInputs),p("calcite-tab-title",{onclick:()=>{this.switchTab("result")},selected:"result"===this._activeTab},e.resultsStrings.headerTabResults)),p("calcite-tab",{selected:"input"===this._activeTab},this._renderInputPanel()),p("calcite-tab",{selected:"result"===this._activeTab},this.viewModel._activeProgress?p("calcite-loader",{label:e.alertsStrings.traceExecuting,text:e.alertsStrings.traceExecuting,type:"indeterminate"}):this.viewModel.traceResults.length>0?this._renderResultPanel():this._renderWarningMessage("noTraceExecuted",!1),this._confirmReset?p("calcite-scrim",{key:"prompt"},p("div",{class:w.clearPrompt},p("h3",{slot:"header"},e.resultsStrings.startOverButton),p("div",{slot:"content"},e.resultsStrings.startOverValidation),p("div",{class:w.promptDivider}),p("div",{styles:C("row")},p("calcite-button",{appearance:"outline",onclick:()=>{this._confirmReset=!1},slot:"secondary",width:"full"},t.cancel),p("calcite-button",{onclick:()=>{this._confirmReset=!1,this.viewModel.reset(),this.switchTab("input")},slot:"primary",width:"full"},t.form.ok)))):null));return this._tracesExists||(s=p("calcite-panel",null,this._renderWarningMessage("noTraceConfig",!1))),this._loadUNError||(s=p("calcite-panel",null,this._renderWarningMessage("loadUNError",!1,this._errorMessage))),s}_renderInputPanel(){const{messages:e}=this;return p("calcite-flow",{class:w.flow},p("calcite-flow-item",null,this._warningNoFlag?this._renderWarningMessage("flag",!0):null,this._warningNoTerminal?this._renderWarningMessage("noTerminal",!0):null,this._warningNoTraceSelected?this._renderWarningMessage("trace",!0):null,this._renderTraceSelectorContainer(),this._renderStartFlagsContainer(),this._renderBarriersFlagsContainer(),this._warningNoFlag&&this._warningNoTraceSelected?p("div",{styles:b(10)}):null,p("calcite-button",{kind:"brand",onclick:()=>{this.checkCanTrace()},scale:"m",slot:"footer",width:"full"},e.tracingStrings.runTrace)),this._selectToolActive?this._renderActiveTool():null)}_renderResultPanel(){return p("calcite-flow",{styles:R()},this._renderTraceResults(),this._showTraceResultFunctions?this._renderTraceResultFunctions():null,this._showTraceResultAssetGroup?this._renderTraceResultByAssetGroup():null,this._showTraceResultAssetType?this._renderTraceResultByAssetType():null,this._showIndividualRecords?this._renderTraceResultIndividual():null,this._showIndividualRecords?this._renderTraceResultIndividualPopover():null)}_renderStartFlagsContainer(){const{messages:e}=this,t=[];let s=[];s=this.viewModel._flags.filter((e=>"starting-point"===e.type)),s.forEach((e=>{e.displayValue&&t.push(this._renderFlagRow(e,"start"))}));let i=null;return this._symbolStartFlag&&(i=this._getSymbolIcon(this._symbolStartFlag)),p("calcite-block",{collapsible:!0,heading:e.inputsStrings.headerStartingPoint+" ("+s.length+")",open:!0},p("div",{slot:"icon"},i||p("calcite-icon",{icon:"pin",scale:"s"})),p("div",null,e.inputsStrings.startingPointHint),p("div",{class:w.listContainer},t),this._warningNoStartAssetFound?this._renderWarningMessage("noStartAsset",!0):null,p("div",{class:w.addButtonContainer},p("calcite-button",{alignment:"center",appearance:"outline",href:"",iconStart:"plus",label:e.inputsStrings.addPointOption,onclick:()=>{this._changeCursor("crosshair"),this._flagViewType="starting-point",this._selectToolActive=!0,this._warningNoStartAssetFound=!1,this.viewModel.addFlagByHit("starting-point",this._symbolStartFlag).then((e=>{this._changeCursor("default"),e?this._warningNoFlag=!1:this._warningNoStartAssetFound=!0,this._selectToolActive=!1}))},round:!0,scale:"m"})))}_renderBarriersFlagsContainer(){const{messages:e}=this,t=[];let s=[];s=this.viewModel._flags.filter((e=>"barrier"===e.type)),s.forEach((e=>{e.displayValue&&t.push(this._renderFlagRow(e,"barrier"))}));let i=null;return this._symbolBarrier&&(i=this._getSymbolIcon(this._symbolBarrier)),p("calcite-block",{collapsible:!0,heading:e.inputsStrings.headerBarrier+" ("+s.length+")",open:!1},p("div",{slot:"icon"},i||p("calcite-icon",{icon:"x-circle-f",scale:"s"})),p("div",null,e.inputsStrings.barrierPointHint),p("div",{class:w.listContainer},t),this._warningNoBarrierAssetFound?this._renderWarningMessage("noBarrierAsset",!0):null,p("div",{class:w.addButtonContainer},p("calcite-button",{alignment:"center",appearance:"outline",href:"",iconStart:"plus",kind:"brand",label:e.inputsStrings.addPointOption,onclick:()=>{this._changeCursor("crosshair"),this._flagViewType="barrier",this._selectToolActive=!0,this._warningNoBarrierAssetFound=!1,this.viewModel.addFlagByHit("barrier",this._symbolBarrier).then((e=>{this._changeCursor("default"),e||(this._warningNoBarrierAssetFound=!0),this._selectToolActive=!1}))},round:!0,scale:"m"})))}_renderFlagRow(e,t){const{messages:s,messagesCommon:i}=this,r=[];let l=!1;return null!=e.allTerminals&&e.allTerminals.terminals.length>0&&(l=!0,e.allTerminals.terminals.forEach((t=>{let s=!1;e?.selectedTerminals?.includes(t.id)&&(s=!0),r.push(p("calcite-combobox-item",{key:t.name,selected:s,textLabel:t.name,value:t.id}))}))),p("calcite-block",{collapsible:null!==e.allTerminals||"barrier"===e.type,heading:e.displayValue?.value??"",key:"pop"+e.globalId+e.type+e.id+t},p("calcite-action",{icon:"trash",label:i.remove,onclick:()=>{this.viewModel.removeFlag(e)},scale:"s",slot:"header-menu-actions",text:i.remove,textEnabled:!0}),p("calcite-action",{icon:"zoom-to-object",label:s.globalStrings.zoomToFeature,onclick:()=>{this.viewModel.zoomToAsset(e.details.geometry)},scale:"s",slot:"header-menu-actions",text:s.globalStrings.zoomToFeature,textEnabled:!0}),"barrier"===e.type?p("calcite-label",{layout:"inline",scale:"s"},p("calcite-checkbox",{checked:e.isFilterBarrier,onclick:()=>{this.viewModel.manageFilterBarrier(!e.isFilterBarrier,e)},scale:"s"}),s.inputsStrings.barrierFilter):null,l?p("calcite-combobox",{label:s.globalStrings.selectTerminalPlaceholder,maxItems:0,placeholder:s.globalStrings.selectTerminalPlaceholder,scale:"s",selectionMode:"multiple",onCalciteComboboxChange:t=>{t.target.selectedItems.length>0?(e.selectedTerminals=[],t.target.selectedItems.forEach((t=>{this.viewModel.addTerminal(t.value,e)}))):e.selectedTerminals=[]},onCalciteComboboxChipClose:t=>{t.preventDefault(),this.viewModel.removeTerminal(t.target.value,e)}},r):null)}_renderActiveTool(){const{messages:e}=this;let t=null;return"starting-point"===this._flagViewType?this._symbolStartFlag&&(t=this._getSymbolIcon(this._symbolStartFlag)):this._symbolBarrier&&(t=this._getSymbolIcon(this._symbolBarrier)),p("calcite-flow-item",{heading:e.inputsStrings.addPointOption,onCalciteFlowItemBack:()=>{this.viewModel._clickHandler&&(this.viewModel._clickHandler.remove(),this.view?.popup&&(this.view.popupEnabled=!0)),this._selectToolActive=!1}},p("calcite-block",{collapsible:!1,heading:"",open:!0},p("div",{styles:S()},t||p("calcite-icon",{icon:"starting-point"===this._flagViewType?"pin-plus":"x-circle-f",scale:"m"})),p("div",{styles:S()},e.inputsStrings.addPointHint)))}_renderTraceSelectorContainer(){const{messages:e}=this,t=[];let s=e.tracingStrings.traceOperation,i=0;return this.viewModel._traces.length>0&&this.viewModel._traces.forEach((e=>{t.push(p("calcite-combobox-item",{key:e.globalId,selected:e.selected,textLabel:e.title,value:e.globalId,onCalciteComboboxItemChange:e=>{const t=e.target;this.viewModel.selectTraces(t.selected,t.value),this.viewModel._traces.length>0&&(this._warningNoTraceSelected=!1)}})),e.selected&&i++})),s+=` (${i})`,p("calcite-block",{collapsible:!0,heading:s,open:!0},p("calcite-icon",{icon:"utility-network-trace",scale:"s",slot:"icon"}),p("calcite-combobox",{label:e.inputsStrings.selectTraces,maxItems:0,overlayPositioning:"fixed",placeholder:e.inputsStrings.selectTraces,scale:"s",selectionMode:"multiple"},t))}_renderStartOverContainer(){const{messages:e}=this;return p("calcite-button",{kind:"brand",onclick:()=>{this.confirmReset()},scale:"m",slot:"footer",width:"full"},e.resultsStrings.startOverButton)}_renderWarningMessage(e,t,s){const{messages:i}=this;let r=i.alertsStrings.NoRunAlertHeader,l=i.alertsStrings.noResultsInfo;switch(e){case"flag":r=i.alertsStrings.startingPointAlertHeader,l=i.alertsStrings.startingPointAlert;break;case"noTerminal":r=i.alertsStrings.noTerminalDefinedHeader,l=i.alertsStrings.noTerminalDefined;break;case"trace":r=i.alertsStrings.selectTraceAlertHeader,l=i.alertsStrings.selectTraceAlert;break;case"noTraceExecuted":r=i.alertsStrings.NoRunAlertHeader,l=i.alertsStrings.noResultsInfo;break;case"noBarrierAsset":case"noStartAsset":r=i.alertsStrings.noAssetsFoundHeader,l=i.alertsStrings.noAssetFound;break;case"noTraceConfig":r="",l=i.alertsStrings.noTraceSupported;break;default:r=i.alertsStrings.genericErrorHeader,l=s||""}return p("div",{class:w.noticeContainer,key:e},p("calcite-notice",{closable:t,icon:!0,key:e,kind:"danger",open:!0,scale:"s",width:"auto",onCalciteNoticeClose:()=>{switch(e){case"flag":this._warningNoFlag=!1;break;case"noTerminal":this._warningNoTerminal=!1;break;case"trace":this._warningNoTraceSelected=!1;break;case"noStartAsset":this._warningNoStartAssetFound=!1;break;case"noBarrierAsset":this._warningNoBarrierAssetFound=!1}}},p("div",{slot:"title"},r),p("div",{slot:"message"},l)))}_renderRemoveTraceContainer(e){const{messages:t}=this;return p("calcite-action",{icon:"trash",label:t.globalStrings.clearResults,onclick:()=>{this._alertRemoveModal=!0,this._activeTrace=e.trace},scale:"s",slot:"header-menu-actions",text:t.globalStrings.clearResults,textEnabled:!0})}_renderHighlightColorPicker(e,t,s){const{messages:i}=this,{graphicHandler:r}=this.viewModel,l=[],o=new RegExp(`^${e.hex}$`,"i"),a=r.highlightColor.length>m.length?5:4;for(const n of r.highlightColor)l.push(p("calcite-action",{active:o.test(n.hex),key:n.hex,label:i.resultsStrings.graphicColor,onclick:()=>{"aggregate"===s?this.viewModel.changeResultGraphicColor(n,t):this.viewModel.changeResultAreaColor(t,n)},scale:"s",text:i.resultsStrings.graphicColor},p("calcite-color-picker-swatch",{active:o.test(n.hex),color:n.hex,scale:"s"})));return p("calcite-action-pad",{expandDisabled:!0,layout:"grid",position:"start"},p("calcite-action-group",{columns:a,layout:"grid"},l))}_renderTraceResults(){const{messages:e,messagesCommon:t}=this,{selectFeatures:s}=e.resultsStrings,i=this.viewModel.traceResults,r=[];return i.forEach(((t,i)=>{let l=[],o=[],a=!1,n=!1,c=!1,d="";null!==t.results&&t.results.hasOwnProperty("elements")?(null!==t.results.aggregatedGeometry&&(n=!0),null!==t.results.globalFunctionResults&&t.results.globalFunctionResults.length>0&&(o=t.results.globalFunctionResults,o.length>0&&(c=!0)),t.results.elements&&t.results.elements.length>0&&(l=t.results.elements,l.length>0&&(a=!0)),(n||a)&&(d=this.messagesUnits.units[t.resultArea?.unit]?.abbr),r.push(p("calcite-block",{collapsible:!0,description:t.trace.description??"",heading:t.trace.title,key:`${t.trace.title}${i}`,open:!0},this._renderRemoveTraceContainer(t),p("calcite-list",null,c?p("calcite-list-item",{label:e.resultsStrings.functionHeader+" ("+o.length+")",onCalciteListItemSelect:()=>{this.switchToFunctions(o,!0)}},p("calcite-icon",{icon:"chevron-right",scale:"s",slot:"content-end"})):null,a&&this.viewModel.showSelectionAttributes?p("calcite-list-item",{key:this.id,label:e.resultsStrings.viewFeatures+" ("+l.length+")",onCalciteListItemSelect:()=>{this.switchToAssetGroup(this._groupResultsByAssetGroup(t),t.trace.title+" ("+l.length+")",!0)}},p("calcite-icon",{icon:"chevron-right",scale:"s",slot:"content-end"})):this.viewModel.showSelectionAttributes?p("calcite-label",{layout:"inline",scale:"s"},e.resultsStrings.noSelectionResults):null),a?p("div",{class:w.paddingTop},p("calcite-label",{layout:"inline",onclick:e=>{e.preventDefault(),e.stopPropagation(),this.viewModel.mergeSelection(!t.selectionEnabled,t.trace)},scale:"s"},p("calcite-checkbox",{checked:t.selectionEnabled,onclick:e=>{e.preventDefault(),e.stopPropagation(),this.viewModel.mergeSelection(!t.selectionEnabled,t.trace)},scale:"m"}),this.viewModel.showSelectionAttributes?s:`${s} (${l.length})`)):null,n?p("calcite-block-section",{key:`aggregate-${t.trace.title}-${i}`,open:t.graphicEnabled,text:e.resultsStrings.highlightTrace,toggleDisplay:"switch",onCalciteBlockSectionToggle:e=>{e.target.open?this.viewModel.changeResultGraphicColor(t.graphicColor,t):this.viewModel.removeResultGraphicFromView(t)}},p("calcite-list",{selectionMode:"none"},p("calcite-list-item",{label:e.resultsStrings.graphicColor,onclick:e=>{const t=e.target;this._swatchNode=t,this._activeSwatch="aggGeom_"+i}},p("calcite-color-picker-swatch",{color:t.graphicColor.hex,scale:"s",slot:"actions-end"})))):null,this.enableResultArea&&(n||a)?p("calcite-block-section",{key:`area-${t.trace.title}-${i}`,open:t.resultArea?.show,text:e.resultsStrings.resultAreaHeader,toggleDisplay:"switch",onCalciteBlockSectionToggle:e=>{e.target.open?this.viewModel.addResultAreaToMap(t):this.viewModel.removeResultAreaFromMap(t)}},p("calcite-list",{selectionMode:"none"},p("calcite-list-item",{label:e.resultsStrings.graphicColor,onclick:e=>{const t=e.target;this._swatchNode=t,this._activeSwatch="resultArea_"+i}},p("calcite-color-picker-swatch",{color:t.resultArea?.color.hex,scale:"s",slot:"actions-end"}))),p("calcite-list",{selectionMode:"none"},p("calcite-list-item",{label:e.resultsStrings.resultAreaBuffer},p("calcite-input-number",{afterCreate:this._afterComponentCreate,class:w.numberInput,max:999999,maxLength:999999,min:0,scale:"s",slot:"actions-end",suffixText:d,value:t.resultArea?.distance.toString(),onCalciteInputNumberChange:e=>{if(!this.view?.popup)return;this.view.popup.visible&&this.view.closePopup();const s=e.target;t.resultArea.distance>=0?(t.resultArea.distance=parseInt(s.value,10),this.viewModel.removeResultAreaFromMap(t),this.viewModel.addResultAreaToMap(t)):(t.resultArea.distance=0,this.viewModel.removeResultAreaFromMap(t),this.viewModel.addResultAreaToMap(t))}})))):null,p("calcite-popover",{autoClose:!0,closable:!0,label:e.resultsStrings.graphicColor,offsetDistance:0,offsetSkidding:0,open:this._activeSwatch==="aggGeom_"+i||this._activeSwatch==="resultArea_"+i,placement:"auto-start",referenceElement:this._swatchNode,scale:"s",onCalcitePopoverClose:()=>{this._swatchNode=null,this._activeSwatch=null}},this._renderHighlightColorPicker(this._activeSwatch==="resultArea_"+i?t.resultArea?.color:t.graphicColor,t,this._activeSwatch==="resultArea_"+i?"resultArea":"aggregate"))))):r.push(p("calcite-block",{collapsible:!1,heading:t.trace.title,key:"error-"+i,open:!0},this._renderRemoveTraceContainer(t),this._renderWarningMessage("noController",!1,t.status)))})),p("calcite-flow-item",{key:"traceResults",styles:R()},r,this._renderStartOverContainer(),this._alertRemoveModal?p("calcite-scrim",{key:"prompt"},p("div",{class:w.clearPrompt},p("h3",{slot:"header"},e.globalStrings.clearResults),p("div",{slot:"content"},e.alertsStrings.clearResultsAlert),p("div",{class:w.promptDivider}),p("div",{styles:C("row")},p("calcite-button",{appearance:"outline",onclick:()=>{this._alertRemoveModal=!1},slot:"secondary",width:"full"},t.cancel),p("calcite-button",{onclick:()=>{this._activeTrace&&this.viewModel.clearResult(this._activeTrace),this._alertRemoveModal=!1,0===this.viewModel.traceResults.length?this.switchTab("input"):(this._activeTrace=this.viewModel.traceResults[0].trace,this._showTraceResultFunctions=!1,this._showTraceResultAssetGroup=!1,this._showTraceResultAssetType=!1,this._showIndividualRecords=!1)},slot:"primary",width:"full"},t.form.ok)))):null)}_renderTraceResultFunctions(){const{messages:e}=this,t=this._traceResultsFunctions,s=[];return t.forEach((e=>{s.push(this._renderResultRowFunctions(e))})),p("calcite-flow-item",{heading:e.resultsStrings.functionHeader,key:"functionResultMultiple",onCalciteFlowItemBack:()=>{this.switchToFunctions([],!1)}},s,this._renderStartOverContainer())}_renderTraceResultByAssetGroup(){const e=this._traceResultsAssetGroup,t=[];for(const s in e){const i=e[s];for(const e in i)t.push(this._renderResultRowAssetGroup(i[e]))}return p("calcite-flow-item",{heading:this._traceHeaderForFlow,key:"assetGroupResultMultiple",onCalciteFlowItemBack:()=>{this.switchToAssetGroup([],"",!1)}},p("calcite-list",null,t),this._renderStartOverContainer())}_renderTraceResultByAssetType(){const e=this._traceResultsAssetType,t=[];for(const s in e)e[s].length>0&&t.push(this._renderResultRowAssetType(e[s]));return p("calcite-flow-item",{heading:this._assetGroupHeader,key:"assetTypeResult",onCalciteFlowItemBack:()=>{this.switchToAssetType([],"",!1)}},p("calcite-list",{selectionMode:"none"},t),this._renderStartOverContainer())}_renderTraceResultIndividual(){const{messages:e}=this,t=this._traceResultsIndividual;t.sort(this._compare(this._resultSortField,this._resultSortOrder));const s=[];if(t.length>0){(t[0].details?.fields.some((({name:e})=>e.toLowerCase()===this._resultDisplayField.toLocaleLowerCase()))??!1)||(this._resultDisplayField=this._resultObjectIdField,this._resultSortField=this._resultObjectIdField),t.forEach((e=>{e?.details&&s.push(this._renderResultRowIndividual(e))})),0===s.length&&s.push(p("calcite-list-item",{label:e.resultsStrings.noFeaturesInMap}))}return p("calcite-flow-item",{heading:this._assetTypeHeader,key:"individualResult",onCalciteFlowItemBack:()=>{this._showResultOptions=!1,this.switchToIndividualRecords([],"",!1)}},p("calcite-action",{afterCreate:d,bind:this,"data-node-ref":"_individualResultNode",icon:"gear",id:"field_options"+this.id,label:e.resultsStrings.displayAttribute,onclick:()=>{this._showResultOptions=!0},scale:"m",slot:"header-actions-end",text:e.resultsStrings.displayAttribute}),p("calcite-list",{selectionMode:"none"},s),this._renderStartOverContainer())}_renderTraceResultIndividualPopover(){const{messages:e}=this,t=this._traceResultsIndividual,s=[],i=[];return t.length>0&&(t[0].details?t[0].details.fields.forEach((({name:e,alias:t})=>{s.push(p("calcite-option",{key:`display-${e}`,label:t??e,selected:e===this._resultDisplayField,value:e})),i.push(p("calcite-option",{key:`sort-${e}`,label:t??e,selected:e===this._resultSortField,value:e}))})):(s.push(p("calcite-option",{key:`display-${this._resultDisplayField}`,label:this._resultDisplayField,value:this._resultDisplayField})),i.push(p("calcite-option",{key:`sort-${this._resultDisplayField}`,label:this._resultDisplayField,value:this._resultDisplayField})))),p("calcite-popover",{autoClose:!0,label:e.resultsStrings.displayAttribute,offsetDistance:0,offsetSkidding:0,open:this._showResultOptions,overlayPositioning:"fixed",placement:"left-start",referenceElement:this._individualResultNode,styles:null!==this.domNode?y(.75*this.domNode.clientWidth):T()},p("calcite-block",{heading:"",open:!0},p("calcite-label",{scale:"s"},e.resultsStrings.displayAttribute,p("calcite-select",{label:e.resultsStrings.displayAttribute,scale:"s",onCalciteSelectChange:e=>{const t=e.target;this._resultDisplayField=t.selectedOption.value,this._showResultOptions=!1}},s)),p("calcite-label",{scale:"s"},e.resultsStrings.sortBy,p("calcite-select",{label:e.resultsStrings.sortBy,scale:"s",onCalciteSelectChange:e=>{const s=e.target;this._resultSortField=s.selectedOption.value,t.sort(this._compare(this._resultSortField,this._resultSortOrder)),this._traceResultsIndividual=t,this._showResultOptions=!1}},i))))}_renderResultRowFunctions(e){return p("calcite-block",{collapsible:!1,heading:e.networkAttributeName+" "+e.functionType+" = "+e.result})}_renderResultRowAssetGroup(e){const t=this._getAssetGroupName(e[0]);return p("calcite-list-item",{label:t+" ("+e.length+")",onCalciteListItemSelect:()=>{this.switchToAssetType(this._groupResultsByAssetType(e),t+" ("+e.length+")",!0)}},p("calcite-icon",{icon:"chevron-right",scale:"s",slot:"content-end"}))}_renderResultRowAssetType(e){const t=this._getAssetTypeName(e[0]);return p("calcite-list-item",{label:t+" ("+e.length+")",onCalciteListItemSelect:()=>{this.viewModel.queryFeaturesById(e).then((s=>{if(s?.length){this._resultObjectIdField=s[0].layer.objectIdField,"objectid"===this._resultDisplayField&&(this._resultDisplayField=s[0].layer.objectIdField),"objectid"===this._resultSortField&&(this._resultSortField=s[0].layer.objectIdField);const i=this._appendAttributes(e,s,"objectId");this.switchToIndividualRecords(i,t+" ("+e.length+")",!0)}else this.switchToIndividualRecords(e,t+" ("+e.length+")",!0)}))}},p("calcite-icon",{icon:"chevron-right",scale:"s",slot:"content-end"}))}_renderResultRowIndividual(e){const{messages:t}=this,s=`display-${e.objectId}-nso`,{nonSpatialObject:i,zoomToFeature:r}=t.globalStrings;let l="",o=null;if(o=e?.details?.fields.find((({name:e})=>e===this._resultDisplayField)),"date"===o?.type){l=new Date(e.details.attributes[this._resultDisplayField]).toDateString()}else if(o?.domain&&A(o.domain)){let t="";const{codedValues:s}=o.domain;for(let i=0;i<s.length;i++)s[i].code===e.details.attributes[this._resultDisplayField]&&(t=s[i].name);l=t}else l="assetgroup"===this._resultDisplayField.toLocaleLowerCase()?this._getAssetGroupName(e):"assettype"===this._resultDisplayField.toLocaleLowerCase()?this._getAssetTypeName(e):e.details?.attributes[this._resultDisplayField]??e.objectId;return l&&""!==l&&null!==l?"string"==typeof l&&(l.trim()||(l=t.resultsStrings.noValue)):l=t.resultsStrings.noValue,null!==e?.details?.geometry?p("calcite-list-item",{label:l,onCalciteListItemSelect:()=>{this.viewModel.zoomToAsset(e.details.geometry)}},p("calcite-icon",{icon:"zoom-to-object",scale:"s",slot:"content-end",textLabel:r})):p("calcite-list-item",{label:l},p("calcite-icon",{icon:"table",id:s,scale:"s",slot:"content-end",textLabel:i}),p("calcite-tooltip",{label:i,referenceElement:s},p("span",null,i)))}_afterComponentCreate(e){"value"in e&&null!=e.value&&"setNumberValue"in e&&e.setNumberValue({committing:!1,value:e.value,origin:"direct"})}_mixCustomStrings(){const{messages:e}=this;this.inputSettings.length>0&&this.inputSettings.forEach((t=>{"starting-point"===t.type&&(e.inputsStrings.headerStartingPoint=t.label,e.inputsStrings.startingPointHint=t.description),"barrier"===t.type&&(e.inputsStrings.headerBarrier=t.label,e.inputsStrings.barrierPointHint=t.description)}))}_overrideFlagSymbol(){this.inputSettings.length>0&&this.inputSettings.forEach((e=>{"starting-point"===e.type?this._symbolStartFlag=e.symbol:this._symbolBarrier=e.symbol,this.viewModel.changeFlagSymbol(e.type,e.symbol)}))}_utilityNetworkTraceInitialized(){return this.viewModel.loadUtilityNetwork().then((e=>{if(e)return this.viewModel.selectTracesOnLoad(),this._registerWatchers(),this.viewModel._traces.length<=0&&(this._tracesExists=!1),this.viewModel.flags.length>0&&this._processFlagOnLoad(),this.view?.when().then((()=>{this._watchViewState()}));this._tracesExists=!1,this.disabled=!1})).catch((e=>{const{messages:t}=this;this._loadUNError=!1,"utility-network:no-user-type-extension"===e.name||e.details.raw.extendedCode===F.noExtension?this._errorMessage=t.alertsStrings.noUserExtension:this._errorMessage=e.message,this.disabled=!1}))}_processFlagOnLoad(){return this.view?.when().then((()=>{this._watchHandler=s((()=>!this.view?.updating),(async()=>{this._warningNoFlag=!1,this._warningNoBarrierAssetFound=!1,this._warningNoStartAssetFound=!1;const e=await this.viewModel.addFlagsOnLoad();this.viewModel.removeFlagsOnLoadWatcher(),e.includes("barrier")&&(this._warningNoBarrierAssetFound=!0),e.includes("starting-point")&&(this._warningNoStartAssetFound=!0),this.disabled=!1,null!==this._watchHandler&&this._watchHandler.remove()}))}))}_registerWatchers(){this.addHandles([t((()=>this.selectedTraces),(()=>{this.viewModel.selectTracesOnLoad(),this.scheduleRender()})),t((()=>this.defaultGraphicColor),(()=>{this.viewModel.traceResults.length>0&&this.viewModel.traceResults.forEach((e=>{this.viewModel.changeResultGraphicColor(this.viewModel.defaultGraphicColor,e)})),this.scheduleRender()}))])}_groupResultsByAssetGroup(e){const t=[],s=e.results?.elements,i=this._groupBy(s??[],"networkSourceId");for(const r in i)t.push(this._groupBy(i[r],"assetGroupCode"));return t}_groupResultsByAssetType(e){return this._groupBy(e,"assetTypeCode")}_appendAttributes(e,t,s){const i=[];return e.forEach((e=>{t.forEach((t=>{t.featureSet.features.forEach((r=>{e[s]===r.attributes[this._resultObjectIdField]&&(e.details=r,e.details.fields=t.featureSet.fields,i.push(e))}))}))})),i}_getAssetGroupName(e){let t=e.assetGroupCode.toString();const s=e.assetGroupCode,i=this.viewModel.getValidSources().find((t=>t.sourceId===e.networkSourceId));if(i){const e=i.assetGroups.find((e=>e.assetGroupCode===s));e&&(t=e.assetGroupName)}return t}_getAssetTypeName(e){let t=e.assetTypeCode.toString();const s=e.assetGroupCode,i=this.viewModel.getValidSources().find((t=>t.sourceId===e.networkSourceId));if(i){const r=i.assetGroups.find((e=>e.assetGroupCode===s));if(r){const s=r.assetTypes.find((t=>t.assetTypeCode===e.assetTypeCode));s&&(t=s.assetTypeName)}}return t}_compare(e,t){return(s,i)=>{let r=0,l=s.details?.attributes[e]??s.objectId,o=i.details?.attributes[e]??i.objectId;return isNaN(l)&&(l=l.toLowerCase()),isNaN(o)&&(o=o.toLowerCase()),"desc"===t?l>o?r=1:l<o&&(r=-1):l<o?r=1:l>o&&(r=-1),r}}_groupBy(e,t){return e.reduce(((e,s)=>((e[s[t]]=e[s[t]]||[]).push(s),e)),{})}_getSymbolIcon(e){return"picture-marker"===e.type?p("img",{height:e.height,src:e.url??void 0,width:e.width}):null}_watchViewState(){this._watchHandler=s((()=>!this.view?.updating),(()=>{this.disabled=!1,null!==this._watchHandler&&this._watchHandler.remove()}),{initial:!0})}_changeCursor(e="default"){const t=this.view?.container?.style;t&&(t.cursor=e)}};e([i()],k.prototype,"_tracesExists",void 0),e([i()],k.prototype,"_selectToolActive",void 0),e([i()],k.prototype,"_activeTrace",void 0),e([i()],k.prototype,"_activeSwatch",void 0),e([i()],k.prototype,"_traceHeaderForFlow",void 0),e([i()],k.prototype,"_assetGroupHeader",void 0),e([i()],k.prototype,"_assetTypeHeader",void 0),e([i()],k.prototype,"_traceResultsFunctions",void 0),e([i()],k.prototype,"_traceResultsAssetGroup",void 0),e([i()],k.prototype,"_traceResultsAssetType",void 0),e([i()],k.prototype,"_traceResultsIndividual",void 0),e([i()],k.prototype,"_showTraceResultFunctions",void 0),e([i()],k.prototype,"_showTraceResultAssetGroup",void 0),e([i()],k.prototype,"_showTraceResultAssetType",void 0),e([i()],k.prototype,"_showIndividualRecords",void 0),e([i()],k.prototype,"_activeTab",void 0),e([i()],k.prototype,"_alertRemoveModal",void 0),e([i()],k.prototype,"_warningNoFlag",void 0),e([i()],k.prototype,"_warningNoTraceSelected",void 0),e([i()],k.prototype,"_confirmReset",void 0),e([i()],k.prototype,"_swatchNode",void 0),e([i()],k.prototype,"_errorMessage",void 0),e([i()],k.prototype,"defaultGraphicColor",null),e([i()],k.prototype,"disabled",void 0),e([i()],k.prototype,"flags",null),e([i()],k.prototype,"gdbVersion",null),e([i()],k.prototype,"iconClass",void 0),e([i()],k.prototype,"inputSettings",void 0),e([i()],k.prototype,"label",null),e([i(),h("esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace")],k.prototype,"messages",void 0),e([i(),h("esri/t9n/common")],k.prototype,"messagesCommon",void 0),e([i(),h("esri/core/t9n/Units")],k.prototype,"messagesUnits",void 0),e([i()],k.prototype,"resultAreaProperties",null),e([i()],k.prototype,"selectedTraces",null),e([i()],k.prototype,"selectOnComplete",null),e([i()],k.prototype,"showGraphicsOnComplete",null),e([i()],k.prototype,"enableResultArea",null),e([i()],k.prototype,"showSelectionAttributes",null),e([i()],k.prototype,"utilityNetwork",null),e([i()],k.prototype,"view",null),e([u(["add-flag","add-flag-complete","add-flag-error","select-features","clear-selection","add-result-area","remove-result-area"]),i({type:g})],k.prototype,"viewModel",void 0),k=e([r(v)],k);const M=k;export{M as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import{watch as t,when as s}from"../core/reactiveUtils.js";import{property as i}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as r}from"../core/accessorSupport/decorators/subclass.js";import l from"../layers/support/CodedValueDomain.js";import o from"./Widget.js";import{loadCalciteComponents as a}from"./support/componentsUtils.js";import{globalCss as n}from"./support/globalCss.js";import{legacyIcon as c}from"./support/legacyIcon.js";import{storeNode as d}from"./support/widgetUtils.js";import{messageBundle as h}from"./support/decorators/messageBundle.js";import{vmEvent as u}from"./support/decorators/vmEvent.js";import{tsx as p}from"./support/jsxFactory.js";import g from"./UtilityNetworkTrace/UtilityNetworkTraceViewModel.js";import{defaultSwatchColors as m}from"./UtilityNetworkTrace/support/GraphicHandler.js";const _="esri-utility-trace-network",w={base:_,widgetIcon:c.polyline,loaderContainer:`${_}__loader-container`,loader:`${_}__loader`,fadeIn:`${_}--fade-in`,addButtonContainer:`${_}__add-button-container`,noticeContainer:`${_}__notice-container`,listContainer:`${_}__list-container`,resultsContainer:`${_}__results-container`,flow:`${_}__flow`,numberInput:`${_}__number-input`,clearPrompt:`${_}__reset-prompt`,promptDivider:`${_}__divider`,paddingTop:`${_}__padTop`},v="esri.widgets.UtilityNetworkTrace";function b(e){return{height:e+"px"}}function y(e){return{width:e+"px"}}function T(){return{width:"75%"}}function f(){return{textAlign:"center",padding:"1rem"}}function S(){return{width:"100%"}}function R(){return{height:"100%"}}function C(e){return{display:"flex",flexDirection:e}}function A(e){return e instanceof l}const F={noExtension:-2147208474};let k=class extends o{constructor(e,t){super(e,t),this._tracesExists=!0,this._selectToolActive=!1,this._activeTrace=null,this._activeSwatch="",this._traceHeaderForFlow="",this._assetGroupHeader="",this._assetTypeHeader="",this._traceResultsFunctions=[],this._traceResultsAssetGroup=[],this._traceResultsAssetType=[],this._traceResultsIndividual=[],this._showTraceResultFunctions=!1,this._showTraceResultAssetGroup=!1,this._showTraceResultAssetType=!1,this._showIndividualRecords=!1,this._activeTab="input",this._flagViewType="starting-point",this._alertRemoveModal=!1,this._warningNoFlag=!1,this._warningNoTraceSelected=!1,this._warningNoStartAssetFound=!1,this._warningNoBarrierAssetFound=!1,this._warningNoTerminal=!1,this._confirmReset=!1,this._showResultOptions=!1,this._resultObjectIdField="objectid",this._resultDisplayField="objectid",this._resultSortField="objectid",this._resultSortOrder="desc",this._swatchNode=null,this._individualResultNode=null,this._symbolStartFlag=null,this._symbolBarrier=null,this._watchHandler=null,this._loadUNError=!0,this._errorMessage="",this.disabled=!0,this.iconClass=w.widgetIcon,this.inputSettings=[],this.messages=null,this.messagesCommon=null,this.messagesUnits=null,this.viewModel=new g,this._afterComponentCreate=this._afterComponentCreate.bind(this)}initialize(){this._utilityNetworkTraceInitialized(),this.addHandles(t((()=>this.viewModel?.resultAreaProperties),(()=>this.scheduleRender())))}get defaultGraphicColor(){return this.viewModel.defaultGraphicColor}set defaultGraphicColor(e){this.viewModel.defaultGraphicColor=e}get flags(){return this.viewModel.flags}set flags(e){this.viewModel.flags=e}get gdbVersion(){return this.viewModel.gdbVersion}set gdbVersion(e){this.viewModel.gdbVersion=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get resultAreaProperties(){return this.viewModel.resultAreaProperties}set resultAreaProperties(e){this.viewModel.resultAreaProperties=e}get selectedTraces(){return this.viewModel.selectedTraces}set selectedTraces(e){this.viewModel.selectedTraces=e}get selectOnComplete(){return this.viewModel.selectOnComplete}set selectOnComplete(e){this.viewModel.selectOnComplete=e}get showGraphicsOnComplete(){return this.viewModel.showGraphicsOnComplete}set showGraphicsOnComplete(e){this.viewModel.showGraphicsOnComplete=e}get enableResultArea(){return this.viewModel.enableResultArea}set enableResultArea(e){this.viewModel.enableResultArea=e}get showSelectionAttributes(){return this.viewModel.showSelectionAttributes}set showSelectionAttributes(e){this.viewModel.showSelectionAttributes=e}get utilityNetwork(){return this.viewModel.utilityNetwork}set utilityNetwork(e){this.viewModel.utilityNetwork=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}async checkCanTrace(){this._confirmReset=!1;const e=this.viewModel.checkCanTrace();e.status?(this._warningNoFlag=!1,this._warningNoTraceSelected=!1,this._warningNoTraceSelected=!1,this._warningNoTerminal=!1,this._showTraceResultFunctions=!1,this._showTraceResultAssetGroup=!1,this._showTraceResultAssetType=!1,this._showIndividualRecords=!1,this.switchTab("result"),this.viewModel._activeProgress=!0,this.viewModel.removeAllResultAreaGraphics(),await this.viewModel.callTrace(),this.viewModel._activeProgress=!1):e.issues.forEach((e=>{switch(e){case"noStart":this._warningNoFlag=!0;break;case"noTerminalSelected":this._warningNoTerminal=!0;break;default:this._warningNoTraceSelected=!0}}))}confirmReset(){this._confirmReset=!0}render(){const{state:e}=this.viewModel;this._mixCustomStrings(),this._overrideFlagSymbol();const t="loading"===e?this._renderLoading():this._renderUtilityNetworkTrace();return p("div",{class:this.classes(w.base,n.widget,n.panel,{[n.widgetDisabled]:this.disabled}),styles:R()},t)}loadDependencies(){return a({action:()=>import("@esri/calcite-components/dist/components/calcite-action.js"),"action-group":()=>import("@esri/calcite-components/dist/components/calcite-action-group.js"),"action-pad":()=>import("@esri/calcite-components/dist/components/calcite-action-pad.js"),block:()=>import("@esri/calcite-components/dist/components/calcite-block.js"),"block-section":()=>import("@esri/calcite-components/dist/components/calcite-block-section.js"),button:()=>import("@esri/calcite-components/dist/components/calcite-button.js"),checkbox:()=>import("@esri/calcite-components/dist/components/calcite-checkbox.js"),"color-picker-swatch":()=>import("@esri/calcite-components/dist/components/calcite-color-picker-swatch.js"),combobox:()=>import("@esri/calcite-components/dist/components/calcite-combobox.js"),"combobox-item":()=>import("@esri/calcite-components/dist/components/calcite-combobox-item.js"),flow:()=>import("@esri/calcite-components/dist/components/calcite-flow.js"),"flow-item":()=>import("@esri/calcite-components/dist/components/calcite-flow-item.js"),icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js"),"input-number":()=>import("@esri/calcite-components/dist/components/calcite-input-number.js"),label:()=>import("@esri/calcite-components/dist/components/calcite-label.js"),list:()=>import("@esri/calcite-components/dist/components/calcite-list.js"),"list-item":()=>import("@esri/calcite-components/dist/components/calcite-list-item.js"),loader:()=>import("@esri/calcite-components/dist/components/calcite-loader.js"),notice:()=>import("@esri/calcite-components/dist/components/calcite-notice.js"),option:()=>import("@esri/calcite-components/dist/components/calcite-option.js"),panel:()=>import("@esri/calcite-components/dist/components/calcite-panel.js"),popover:()=>import("@esri/calcite-components/dist/components/calcite-popover.js"),scrim:()=>import("@esri/calcite-components/dist/components/calcite-scrim.js"),select:()=>import("@esri/calcite-components/dist/components/calcite-select.js"),tab:()=>import("@esri/calcite-components/dist/components/calcite-tab.js"),"tab-nav":()=>import("@esri/calcite-components/dist/components/calcite-tab-nav.js"),"tab-title":()=>import("@esri/calcite-components/dist/components/calcite-tab-title.js"),tabs:()=>import("@esri/calcite-components/dist/components/calcite-tabs.js"),tooltip:()=>import("@esri/calcite-components/dist/components/calcite-tooltip.js")})}switchTab(e){this._activeTab=e}switchToFunctions(e,t){this._traceResultsFunctions=e,this._showTraceResultFunctions=t}switchToAssetGroup(e,t,s){this._traceHeaderForFlow=t,this._traceResultsAssetGroup=e,this._showTraceResultAssetGroup=s}switchToAssetType(e,t,s){this._assetGroupHeader=t,this._traceResultsAssetType=e,this._showTraceResultAssetType=s}switchToIndividualRecords(e,t,s){this._assetTypeHeader=t,this._traceResultsIndividual=e,this._showIndividualRecords=s}_renderLoading(){return p("div",{class:w.loaderContainer,key:"loader"},p("div",{class:w.loader}))}_renderUtilityNetworkTrace(){const{messages:e,messagesCommon:t}=this;let s=p("calcite-tabs",{layout:"center",position:"top",styles:S()},p("calcite-tab-nav",{slot:"title-group"},p("calcite-tab-title",{onclick:()=>{this.switchTab("input")},selected:"input"===this._activeTab},e.inputsStrings.headerTabInputs),p("calcite-tab-title",{onclick:()=>{this.switchTab("result")},selected:"result"===this._activeTab},e.resultsStrings.headerTabResults)),p("calcite-tab",{selected:"input"===this._activeTab},this._renderInputPanel()),p("calcite-tab",{selected:"result"===this._activeTab},this.viewModel._activeProgress?p("calcite-loader",{label:e.alertsStrings.traceExecuting,text:e.alertsStrings.traceExecuting,type:"indeterminate"}):this.viewModel.traceResults.length>0?this._renderResultPanel():this._renderWarningMessage("noTraceExecuted",!1),this._confirmReset?p("calcite-scrim",{key:"prompt"},p("div",{class:w.clearPrompt},p("h3",{slot:"header"},e.resultsStrings.startOverButton),p("div",{slot:"content"},e.resultsStrings.startOverValidation),p("div",{class:w.promptDivider}),p("div",{styles:C("row")},p("calcite-button",{appearance:"outline",onclick:()=>{this._confirmReset=!1},slot:"secondary",width:"full"},t.cancel),p("calcite-button",{onclick:()=>{this._confirmReset=!1,this.viewModel.reset(),this.switchTab("input")},slot:"primary",width:"full"},t.form.ok)))):null));return this._tracesExists||(s=p("calcite-panel",null,this._renderWarningMessage("noTraceConfig",!1))),this._loadUNError||(s=p("calcite-panel",null,this._renderWarningMessage("loadUNError",!1,this._errorMessage))),s}_renderInputPanel(){const{messages:e}=this;return p("calcite-flow",{class:w.flow},p("calcite-flow-item",null,this._warningNoFlag?this._renderWarningMessage("flag",!0):null,this._warningNoTerminal?this._renderWarningMessage("noTerminal",!0):null,this._warningNoTraceSelected?this._renderWarningMessage("trace",!0):null,this._renderTraceSelectorContainer(),this._renderStartFlagsContainer(),this._renderBarriersFlagsContainer(),this._warningNoFlag&&this._warningNoTraceSelected?p("div",{styles:b(10)}):null,p("calcite-button",{kind:"brand",onclick:()=>{this.checkCanTrace()},scale:"m",slot:"footer",width:"full"},e.tracingStrings.runTrace)),this._selectToolActive?this._renderActiveTool():null)}_renderResultPanel(){return p("calcite-flow",{styles:R()},this._renderTraceResults(),this._showTraceResultFunctions?this._renderTraceResultFunctions():null,this._showTraceResultAssetGroup?this._renderTraceResultByAssetGroup():null,this._showTraceResultAssetType?this._renderTraceResultByAssetType():null,this._showIndividualRecords?this._renderTraceResultIndividual():null,this._showIndividualRecords?this._renderTraceResultIndividualPopover():null)}_renderStartFlagsContainer(){const{messages:e}=this,t=[];let s=[];s=this.viewModel._flags.filter((e=>"starting-point"===e.type)),s.forEach((e=>{e.displayValue&&t.push(this._renderFlagRow(e,"start"))}));let i=null;return this._symbolStartFlag&&(i=this._getSymbolIcon(this._symbolStartFlag)),p("calcite-block",{collapsible:!0,heading:e.inputsStrings.headerStartingPoint+" ("+s.length+")",open:!0},p("div",{slot:"icon"},i||p("calcite-icon",{icon:"pin",scale:"s"})),p("div",null,e.inputsStrings.startingPointHint),p("div",{class:w.listContainer},t),this._warningNoStartAssetFound?this._renderWarningMessage("noStartAsset",!0):null,p("div",{class:w.addButtonContainer},p("calcite-button",{alignment:"center",appearance:"outline",href:"",iconStart:"plus",label:e.inputsStrings.addPointOption,onclick:()=>{this._changeCursor("crosshair"),this._flagViewType="starting-point",this._selectToolActive=!0,this._warningNoStartAssetFound=!1,this.viewModel.addFlagByHit("starting-point",this._symbolStartFlag).then((e=>{this._changeCursor("default"),e?this._warningNoFlag=!1:this._warningNoStartAssetFound=!0,this._selectToolActive=!1}))},round:!0,scale:"m"})))}_renderBarriersFlagsContainer(){const{messages:e}=this,t=[];let s=[];s=this.viewModel._flags.filter((e=>"barrier"===e.type)),s.forEach((e=>{e.displayValue&&t.push(this._renderFlagRow(e,"barrier"))}));let i=null;return this._symbolBarrier&&(i=this._getSymbolIcon(this._symbolBarrier)),p("calcite-block",{collapsible:!0,heading:e.inputsStrings.headerBarrier+" ("+s.length+")",open:!1},p("div",{slot:"icon"},i||p("calcite-icon",{icon:"x-circle-f",scale:"s"})),p("div",null,e.inputsStrings.barrierPointHint),p("div",{class:w.listContainer},t),this._warningNoBarrierAssetFound?this._renderWarningMessage("noBarrierAsset",!0):null,p("div",{class:w.addButtonContainer},p("calcite-button",{alignment:"center",appearance:"outline",href:"",iconStart:"plus",kind:"brand",label:e.inputsStrings.addPointOption,onclick:()=>{this._changeCursor("crosshair"),this._flagViewType="barrier",this._selectToolActive=!0,this._warningNoBarrierAssetFound=!1,this.viewModel.addFlagByHit("barrier",this._symbolBarrier).then((e=>{this._changeCursor("default"),e||(this._warningNoBarrierAssetFound=!0),this._selectToolActive=!1}))},round:!0,scale:"m"})))}_renderFlagRow(e,t){const{messages:s,messagesCommon:i}=this,r=[];let l=!1;return null!=e.allTerminals&&e.allTerminals.terminals.length>0&&(l=!0,e.allTerminals.terminals.forEach((t=>{let s=!1;e?.selectedTerminals?.includes(t.id)&&(s=!0),r.push(p("calcite-combobox-item",{key:t.name,selected:s,textLabel:t.name,value:t.id}))}))),p("calcite-block",{collapsible:null!==e.allTerminals||"barrier"===e.type,heading:e.displayValue?.value??"",key:"pop"+e.globalId+e.type+e.id+t},p("calcite-action",{icon:"trash",label:i.remove,onclick:()=>{this.viewModel.removeFlag(e)},scale:"s",slot:"header-menu-actions",text:i.remove,textEnabled:!0}),p("calcite-action",{icon:"zoom-to-object",label:s.globalStrings.zoomToFeature,onclick:()=>{this.viewModel.zoomToAsset(e.details.geometry)},scale:"s",slot:"header-menu-actions",text:s.globalStrings.zoomToFeature,textEnabled:!0}),"barrier"===e.type?p("calcite-label",{layout:"inline",scale:"s"},p("calcite-checkbox",{checked:e.isFilterBarrier,onclick:()=>{this.viewModel.manageFilterBarrier(!e.isFilterBarrier,e)},scale:"s"}),s.inputsStrings.barrierFilter):null,l?p("calcite-combobox",{label:s.globalStrings.selectTerminalPlaceholder,maxItems:0,placeholder:s.globalStrings.selectTerminalPlaceholder,scale:"s",selectionMode:"multiple",onCalciteComboboxChange:t=>{t.target.selectedItems.length>0?(e.selectedTerminals=[],t.target.selectedItems.forEach((t=>{this.viewModel.addTerminal(t.value,e)}))):e.selectedTerminals=[]},onCalciteComboboxChipClose:t=>{t.preventDefault(),this.viewModel.removeTerminal(t.target.value,e)}},r):null)}_renderActiveTool(){const{messages:e}=this;let t=null;return"starting-point"===this._flagViewType?this._symbolStartFlag&&(t=this._getSymbolIcon(this._symbolStartFlag)):this._symbolBarrier&&(t=this._getSymbolIcon(this._symbolBarrier)),p("calcite-flow-item",{heading:e.inputsStrings.addPointOption,onCalciteFlowItemBack:()=>{this.viewModel._clickHandler&&(this.viewModel._clickHandler.remove(),this.view?.popup&&(this.view.popupEnabled=!0)),this._selectToolActive=!1}},p("calcite-block",{collapsible:!1,heading:"",open:!0},p("div",{styles:f()},t||p("calcite-icon",{icon:"starting-point"===this._flagViewType?"pin-plus":"x-circle-f",scale:"m"})),p("div",{styles:f()},e.inputsStrings.addPointHint)))}_renderTraceSelectorContainer(){const{messages:e}=this,t=[];let s=e.tracingStrings.traceOperation,i=0;return this.viewModel._traces.length>0&&this.viewModel._traces.forEach((e=>{t.push(p("calcite-combobox-item",{key:e.globalId,selected:e.selected,textLabel:e.title,value:e.globalId,onCalciteComboboxItemChange:e=>{const t=e.target;this.viewModel.selectTraces(t.selected,t.value),this.viewModel._traces.length>0&&(this._warningNoTraceSelected=!1)}})),e.selected&&i++})),s+=` (${i})`,p("calcite-block",{collapsible:!0,heading:s,open:!0},p("calcite-icon",{icon:"utility-network-trace",scale:"s",slot:"icon"}),p("calcite-combobox",{label:e.inputsStrings.selectTraces,maxItems:0,overlayPositioning:"fixed",placeholder:e.inputsStrings.selectTraces,scale:"s",selectionMode:"multiple"},t))}_renderStartOverContainer(){const{messages:e}=this;return p("calcite-button",{kind:"brand",onclick:()=>{this.confirmReset()},scale:"m",slot:"footer",width:"full"},e.resultsStrings.startOverButton)}_renderWarningMessage(e,t,s){const{messages:i}=this;let r=i.alertsStrings.NoRunAlertHeader,l=i.alertsStrings.noResultsInfo;switch(e){case"flag":r=i.alertsStrings.startingPointAlertHeader,l=i.alertsStrings.startingPointAlert;break;case"noTerminal":r=i.alertsStrings.noTerminalDefinedHeader,l=i.alertsStrings.noTerminalDefined;break;case"trace":r=i.alertsStrings.selectTraceAlertHeader,l=i.alertsStrings.selectTraceAlert;break;case"noTraceExecuted":r=i.alertsStrings.NoRunAlertHeader,l=i.alertsStrings.noResultsInfo;break;case"noBarrierAsset":case"noStartAsset":r=i.alertsStrings.noAssetsFoundHeader,l=i.alertsStrings.noAssetFound;break;case"noTraceConfig":r="",l=i.alertsStrings.noTraceSupported;break;default:r=i.alertsStrings.genericErrorHeader,l=s||""}return p("div",{class:w.noticeContainer,key:e},p("calcite-notice",{closable:t,icon:!0,key:e,kind:"danger",open:!0,scale:"s",width:"auto",onCalciteNoticeClose:()=>{switch(e){case"flag":this._warningNoFlag=!1;break;case"noTerminal":this._warningNoTerminal=!1;break;case"trace":this._warningNoTraceSelected=!1;break;case"noStartAsset":this._warningNoStartAssetFound=!1;break;case"noBarrierAsset":this._warningNoBarrierAssetFound=!1}}},p("div",{slot:"title"},r),p("div",{slot:"message"},l)))}_renderRemoveTraceContainer(e){const{messages:t}=this;return p("calcite-action",{icon:"trash",label:t.globalStrings.clearResults,onclick:()=>{this._alertRemoveModal=!0,this._activeTrace=e.trace},scale:"s",slot:"header-menu-actions",text:t.globalStrings.clearResults,textEnabled:!0})}_renderHighlightColorPicker(e,t,s){const{messages:i}=this,{graphicHandler:r}=this.viewModel,l=[],o=new RegExp(`^${e.hex}$`,"i"),a=r.highlightColor.length>m.length?5:4;for(const n of r.highlightColor)l.push(p("calcite-action",{active:o.test(n.hex),key:n.hex,label:i.resultsStrings.graphicColor,onclick:()=>{"aggregate"===s?this.viewModel.changeResultGraphicColor(n,t):this.viewModel.changeResultAreaColor(t,n)},scale:"s",text:i.resultsStrings.graphicColor},p("calcite-color-picker-swatch",{active:o.test(n.hex),color:n.hex,scale:"s"})));return p("calcite-action-pad",{expandDisabled:!0,layout:"grid",position:"start"},p("calcite-action-group",{columns:a,layout:"grid"},l))}_renderTraceResults(){const{messages:e,messagesCommon:t}=this,{selectFeatures:s}=e.resultsStrings,i=this.viewModel.traceResults,r=[];return i.forEach(((t,i)=>{let l=[],o=[],a=!1,n=!1,c=!1,d="";null!==t.results&&t.results.hasOwnProperty("elements")?(null!==t.results.aggregatedGeometry&&(n=!0),null!==t.results.globalFunctionResults&&t.results.globalFunctionResults.length>0&&(o=t.results.globalFunctionResults,o.length>0&&(c=!0)),t.results.elements&&t.results.elements.length>0&&(l=t.results.elements,l.length>0&&(a=!0)),(n||a)&&(d=this.messagesUnits.units[t.resultArea?.unit]?.abbr),r.push(p("calcite-block",{collapsible:!0,description:t.trace.description??"",heading:t.trace.title,key:`${t.trace.title}${i}`,open:!0},this._renderRemoveTraceContainer(t),p("calcite-list",null,c?p("calcite-list-item",{label:e.resultsStrings.functionHeader+" ("+o.length+")",onCalciteListItemSelect:()=>{this.switchToFunctions(o,!0)}},p("calcite-icon",{icon:"chevron-right",scale:"s",slot:"content-end"})):null,a&&this.viewModel.showSelectionAttributes?p("calcite-list-item",{key:this.id,label:e.resultsStrings.viewFeatures+" ("+l.length+")",onCalciteListItemSelect:()=>{this.switchToAssetGroup(this._groupResultsByAssetGroup(t),t.trace.title+" ("+l.length+")",!0)}},p("calcite-icon",{icon:"chevron-right",scale:"s",slot:"content-end"})):this.viewModel.showSelectionAttributes?p("calcite-label",{layout:"inline",scale:"s"},e.resultsStrings.noSelectionResults):null),a?p("div",{class:w.paddingTop},p("calcite-label",{layout:"inline",onclick:e=>{e.preventDefault(),e.stopPropagation(),this.viewModel.mergeSelection(!t.selectionEnabled,t.trace)},scale:"s"},p("calcite-checkbox",{checked:t.selectionEnabled,onclick:e=>{e.preventDefault(),e.stopPropagation(),this.viewModel.mergeSelection(!t.selectionEnabled,t.trace)},scale:"m"}),this.viewModel.showSelectionAttributes?s:`${s} (${l.length})`)):null,n?p("calcite-block-section",{key:`aggregate-${t.trace.title}-${i}`,open:t.graphicEnabled,text:e.resultsStrings.highlightTrace,toggleDisplay:"switch",onCalciteBlockSectionToggle:e=>{e.target.open?this.viewModel.changeResultGraphicColor(t.graphicColor,t):this.viewModel.removeResultGraphicFromView(t)}},p("calcite-list",{selectionMode:"none"},p("calcite-list-item",{label:e.resultsStrings.graphicColor,onclick:e=>{const t=e.target;this._swatchNode=t,this._activeSwatch="aggGeom_"+i}},p("calcite-color-picker-swatch",{color:t.graphicColor.hex,scale:"s",slot:"actions-end"})))):null,this.enableResultArea&&(n||a)?p("calcite-block-section",{key:`area-${t.trace.title}-${i}`,open:t.resultArea?.show,text:e.resultsStrings.resultAreaHeader,toggleDisplay:"switch",onCalciteBlockSectionToggle:e=>{e.target.open?this.viewModel.addResultAreaToMap(t):this.viewModel.removeResultAreaFromMap(t)}},p("calcite-list",{selectionMode:"none"},p("calcite-list-item",{label:e.resultsStrings.graphicColor,onclick:e=>{const t=e.target;this._swatchNode=t,this._activeSwatch="resultArea_"+i}},p("calcite-color-picker-swatch",{color:t.resultArea?.color.hex,scale:"s",slot:"actions-end"}))),p("calcite-list",{selectionMode:"none"},p("calcite-list-item",{label:e.resultsStrings.resultAreaBuffer},p("calcite-input-number",{afterCreate:this._afterComponentCreate,class:w.numberInput,max:999999,maxLength:999999,min:0,scale:"s",slot:"actions-end",suffixText:d,value:t.resultArea?.distance.toString(),onCalciteInputNumberChange:e=>{if(!this.view?.popup)return;this.view.popup.visible&&this.view.closePopup();const s=e.target;t.resultArea.distance>=0?(t.resultArea.distance=parseInt(s.value,10),this.viewModel.removeResultAreaFromMap(t),this.viewModel.addResultAreaToMap(t)):(t.resultArea.distance=0,this.viewModel.removeResultAreaFromMap(t),this.viewModel.addResultAreaToMap(t))}})))):null,p("calcite-popover",{autoClose:!0,closable:!0,label:e.resultsStrings.graphicColor,offsetDistance:0,offsetSkidding:0,open:this._activeSwatch==="aggGeom_"+i||this._activeSwatch==="resultArea_"+i,placement:"auto-start",referenceElement:this._swatchNode,scale:"s",onCalcitePopoverClose:()=>{this._swatchNode=null,this._activeSwatch=null}},this._renderHighlightColorPicker(this._activeSwatch==="resultArea_"+i?t.resultArea?.color:t.graphicColor,t,this._activeSwatch==="resultArea_"+i?"resultArea":"aggregate"))))):r.push(p("calcite-block",{collapsible:!1,heading:t.trace.title,key:"error-"+i,open:!0},this._renderRemoveTraceContainer(t),this._renderWarningMessage("noController",!1,t.status)))})),p("calcite-flow-item",{key:"traceResults",styles:R()},r,this._renderStartOverContainer(),this._alertRemoveModal?p("calcite-scrim",{key:"prompt"},p("div",{class:w.clearPrompt},p("h3",{slot:"header"},e.globalStrings.clearResults),p("div",{slot:"content"},e.alertsStrings.clearResultsAlert),p("div",{class:w.promptDivider}),p("div",{styles:C("row")},p("calcite-button",{appearance:"outline",onclick:()=>{this._alertRemoveModal=!1},slot:"secondary",width:"full"},t.cancel),p("calcite-button",{onclick:()=>{this._activeTrace&&this.viewModel.clearResult(this._activeTrace),this._alertRemoveModal=!1,0===this.viewModel.traceResults.length?this.switchTab("input"):(this._activeTrace=this.viewModel.traceResults[0].trace,this._showTraceResultFunctions=!1,this._showTraceResultAssetGroup=!1,this._showTraceResultAssetType=!1,this._showIndividualRecords=!1)},slot:"primary",width:"full"},t.form.ok)))):null)}_renderTraceResultFunctions(){const{messages:e}=this,t=this._traceResultsFunctions,s=[];return t.forEach((e=>{s.push(this._renderResultRowFunctions(e))})),p("calcite-flow-item",{heading:e.resultsStrings.functionHeader,key:"functionResultMultiple",onCalciteFlowItemBack:()=>{this.switchToFunctions([],!1)}},s,this._renderStartOverContainer())}_renderTraceResultByAssetGroup(){const e=this._traceResultsAssetGroup,t=[];for(const s in e){const i=e[s];for(const e in i)t.push(this._renderResultRowAssetGroup(i[e]))}return p("calcite-flow-item",{heading:this._traceHeaderForFlow,key:"assetGroupResultMultiple",onCalciteFlowItemBack:()=>{this.switchToAssetGroup([],"",!1)}},p("calcite-list",null,t),this._renderStartOverContainer())}_renderTraceResultByAssetType(){const e=this._traceResultsAssetType,t=[];for(const s in e)e[s].length>0&&t.push(this._renderResultRowAssetType(e[s]));return p("calcite-flow-item",{heading:this._assetGroupHeader,key:"assetTypeResult",onCalciteFlowItemBack:()=>{this.switchToAssetType([],"",!1)}},p("calcite-list",{selectionMode:"none"},t),this._renderStartOverContainer())}_renderTraceResultIndividual(){const{messages:e}=this,t=this._traceResultsIndividual;t.sort(this._compare(this._resultSortField,this._resultSortOrder));const s=[];if(t.length>0){(t[0].details?.fields.some((({name:e})=>e.toLowerCase()===this._resultDisplayField.toLocaleLowerCase()))??!1)||(this._resultDisplayField=this._resultObjectIdField,this._resultSortField=this._resultObjectIdField),t.forEach((e=>{e?.details&&s.push(this._renderResultRowIndividual(e))})),0===s.length&&s.push(p("calcite-list-item",{label:e.resultsStrings.noFeaturesInMap}))}return p("calcite-flow-item",{heading:this._assetTypeHeader,key:"individualResult",onCalciteFlowItemBack:()=>{this._showResultOptions=!1,this.switchToIndividualRecords([],"",!1)}},p("calcite-action",{afterCreate:d,bind:this,"data-node-ref":"_individualResultNode",icon:"gear",id:"field_options"+this.id,label:e.resultsStrings.displayAttribute,onclick:()=>{this._showResultOptions=!0},scale:"m",slot:"header-actions-end",text:e.resultsStrings.displayAttribute}),p("calcite-list",{selectionMode:"none"},s),this._renderStartOverContainer())}_renderTraceResultIndividualPopover(){const{messages:e}=this,t=this._traceResultsIndividual,s=[],i=[];return t.length>0&&(t[0].details?t[0].details.fields.forEach((({name:e,alias:t})=>{s.push(p("calcite-option",{key:`display-${e}`,label:t??e,selected:e===this._resultDisplayField,value:e})),i.push(p("calcite-option",{key:`sort-${e}`,label:t??e,selected:e===this._resultSortField,value:e}))})):(s.push(p("calcite-option",{key:`display-${this._resultDisplayField}`,label:this._resultDisplayField,value:this._resultDisplayField})),i.push(p("calcite-option",{key:`sort-${this._resultDisplayField}`,label:this._resultDisplayField,value:this._resultDisplayField})))),p("calcite-popover",{autoClose:!0,label:e.resultsStrings.displayAttribute,offsetDistance:0,offsetSkidding:0,open:this._showResultOptions,overlayPositioning:"fixed",placement:"left-start",referenceElement:this._individualResultNode,styles:null!==this.domNode?y(.75*this.domNode.clientWidth):T()},p("calcite-block",{heading:"",open:!0},p("calcite-label",{scale:"s"},e.resultsStrings.displayAttribute,p("calcite-select",{label:e.resultsStrings.displayAttribute,scale:"s",onCalciteSelectChange:e=>{const t=e.target;this._resultDisplayField=t.selectedOption.value,this._showResultOptions=!1}},s)),p("calcite-label",{scale:"s"},e.resultsStrings.sortBy,p("calcite-select",{label:e.resultsStrings.sortBy,scale:"s",onCalciteSelectChange:e=>{const s=e.target;this._resultSortField=s.selectedOption.value,t.sort(this._compare(this._resultSortField,this._resultSortOrder)),this._traceResultsIndividual=t,this._showResultOptions=!1}},i))))}_renderResultRowFunctions(e){return p("calcite-block",{collapsible:!1,heading:e.networkAttributeName+" "+e.functionType+" = "+e.result})}_renderResultRowAssetGroup(e){const t=this._getAssetGroupName(e[0]);return p("calcite-list-item",{label:t+" ("+e.length+")",onCalciteListItemSelect:()=>{this.switchToAssetType(this._groupResultsByAssetType(e),t+" ("+e.length+")",!0)}},p("calcite-icon",{icon:"chevron-right",scale:"s",slot:"content-end"}))}_renderResultRowAssetType(e){const t=this._getAssetTypeName(e[0]);return p("calcite-list-item",{label:t+" ("+e.length+")",onCalciteListItemSelect:()=>{this.viewModel.queryFeaturesById(e).then((s=>{if(s?.length){this._resultObjectIdField=s[0].layer.objectIdField,"objectid"===this._resultDisplayField&&(this._resultDisplayField=s[0].layer.objectIdField),"objectid"===this._resultSortField&&(this._resultSortField=s[0].layer.objectIdField);const i=this._appendAttributes(e,s,"objectId");this.switchToIndividualRecords(i,t+" ("+e.length+")",!0)}else this.switchToIndividualRecords(e,t+" ("+e.length+")",!0)}))}},p("calcite-icon",{icon:"chevron-right",scale:"s",slot:"content-end"}))}_renderResultRowIndividual(e){const{messages:t}=this,s=`display-${e.objectId}-nso`,{nonSpatialObject:i,zoomToFeature:r}=t.globalStrings;let l="",o=null;if(o=e?.details?.fields.find((({name:e})=>e===this._resultDisplayField)),"date"===o?.type){l=new Date(e.details.attributes[this._resultDisplayField]).toDateString()}else if("assetgroup"===this._resultDisplayField.toLowerCase())l=this._getAssetGroupName(e);else if("assettype"===this._resultDisplayField.toLowerCase())l=this._getAssetTypeName(e);else if(o?.domain&&A(o.domain)){const t=o.domain.codedValues.find((({code:t})=>t===e.details.attributes[this._resultDisplayField]));l=t?.name}else l=e.details?.attributes[this._resultDisplayField]??e.objectId;return l&&""!==l&&null!==l?"string"==typeof l&&(l.trim()||(l=t.resultsStrings.noValue)):l=t.resultsStrings.noValue,null!==e?.details?.geometry?p("calcite-list-item",{label:l,onCalciteListItemSelect:()=>{this.viewModel.zoomToAsset(e.details.geometry)}},p("calcite-icon",{icon:"zoom-to-object",scale:"s",slot:"content-end",textLabel:r})):p("calcite-list-item",{label:l},p("calcite-icon",{icon:"table",id:s,scale:"s",slot:"content-end",textLabel:i}),p("calcite-tooltip",{label:i,referenceElement:s},p("span",null,i)))}_afterComponentCreate(e){"value"in e&&null!=e.value&&"setNumberValue"in e&&e.setNumberValue({committing:!1,value:e.value,origin:"direct"})}_mixCustomStrings(){const{messages:e}=this;this.inputSettings.length>0&&this.inputSettings.forEach((t=>{"starting-point"===t.type&&(e.inputsStrings.headerStartingPoint=t.label,e.inputsStrings.startingPointHint=t.description),"barrier"===t.type&&(e.inputsStrings.headerBarrier=t.label,e.inputsStrings.barrierPointHint=t.description)}))}_overrideFlagSymbol(){this.inputSettings.length>0&&this.inputSettings.forEach((e=>{"starting-point"===e.type?this._symbolStartFlag=e.symbol:this._symbolBarrier=e.symbol,this.viewModel.changeFlagSymbol(e.type,e.symbol)}))}_utilityNetworkTraceInitialized(){return this.viewModel.loadUtilityNetwork().then((e=>{if(e)return this.viewModel.selectTracesOnLoad(),this._registerWatchers(),this.viewModel._traces.length<=0&&(this._tracesExists=!1),this.viewModel.flags.length>0&&this._processFlagOnLoad(),this.view?.when().then((()=>{this._watchViewState()}));this._tracesExists=!1,this.disabled=!1})).catch((e=>{const{messages:t}=this;this._loadUNError=!1,"utility-network:no-user-type-extension"===e.name||e.details.raw.extendedCode===F.noExtension?this._errorMessage=t.alertsStrings.noUserExtension:this._errorMessage=e.message,this.disabled=!1}))}_processFlagOnLoad(){return this.view?.when().then((()=>{this._watchHandler=s((()=>!this.view?.updating),(async()=>{this._warningNoFlag=!1,this._warningNoBarrierAssetFound=!1,this._warningNoStartAssetFound=!1;const e=await this.viewModel.addFlagsOnLoad();this.viewModel.removeFlagsOnLoadWatcher(),e.includes("barrier")&&(this._warningNoBarrierAssetFound=!0),e.includes("starting-point")&&(this._warningNoStartAssetFound=!0),this.disabled=!1,null!==this._watchHandler&&this._watchHandler.remove()}))}))}_registerWatchers(){this.addHandles([t((()=>this.selectedTraces),(()=>{this.viewModel.selectTracesOnLoad(),this.scheduleRender()})),t((()=>this.defaultGraphicColor),(()=>{this.viewModel.traceResults.length>0&&this.viewModel.traceResults.forEach((e=>{this.viewModel.changeResultGraphicColor(this.viewModel.defaultGraphicColor,e)})),this.scheduleRender()}))])}_groupResultsByAssetGroup(e){const t=[],s=e.results?.elements,i=this._groupBy(s??[],"networkSourceId");for(const r in i)t.push(this._groupBy(i[r],"assetGroupCode"));return t}_groupResultsByAssetType(e){return this._groupBy(e,"assetTypeCode")}_appendAttributes(e,t,s){const i=[];return e.forEach((e=>{t.forEach((t=>{t.featureSet.features.forEach((r=>{e[s]===r.attributes[this._resultObjectIdField]&&(e.details=r,e.details.fields=t.featureSet.fields,i.push(e))}))}))})),i}_getAssetGroupName(e){let t=e.assetGroupCode.toString();const s=e.assetGroupCode,i=this.viewModel.getValidSources().find((t=>t.sourceId===e.networkSourceId));if(i){const e=i.assetGroups.find((e=>e.assetGroupCode===s));e&&(t=e.assetGroupName)}return t}_getAssetTypeName(e){let t=e.assetTypeCode.toString();const s=e.assetGroupCode,i=this.viewModel.getValidSources().find((t=>t.sourceId===e.networkSourceId));if(i){const r=i.assetGroups.find((e=>e.assetGroupCode===s));if(r){const s=r.assetTypes.find((t=>t.assetTypeCode===e.assetTypeCode));s&&(t=s.assetTypeName)}}return t}_compare(e,t){return(s,i)=>{let r=0,l=s.details?.attributes[e]??s.objectId,o=i.details?.attributes[e]??i.objectId;return isNaN(l)&&(l=l.toLowerCase()),isNaN(o)&&(o=o.toLowerCase()),"desc"===t?l>o?r=1:l<o&&(r=-1):l<o?r=1:l>o&&(r=-1),r}}_groupBy(e,t){return e.reduce(((e,s)=>((e[s[t]]=e[s[t]]||[]).push(s),e)),{})}_getSymbolIcon(e){return"picture-marker"===e.type?p("img",{height:e.height,src:e.url??void 0,width:e.width}):null}_watchViewState(){this._watchHandler=s((()=>!this.view?.updating),(()=>{this.disabled=!1,null!==this._watchHandler&&this._watchHandler.remove()}),{initial:!0})}_changeCursor(e="default"){const t=this.view?.container?.style;t&&(t.cursor=e)}};e([i()],k.prototype,"_tracesExists",void 0),e([i()],k.prototype,"_selectToolActive",void 0),e([i()],k.prototype,"_activeTrace",void 0),e([i()],k.prototype,"_activeSwatch",void 0),e([i()],k.prototype,"_traceHeaderForFlow",void 0),e([i()],k.prototype,"_assetGroupHeader",void 0),e([i()],k.prototype,"_assetTypeHeader",void 0),e([i()],k.prototype,"_traceResultsFunctions",void 0),e([i()],k.prototype,"_traceResultsAssetGroup",void 0),e([i()],k.prototype,"_traceResultsAssetType",void 0),e([i()],k.prototype,"_traceResultsIndividual",void 0),e([i()],k.prototype,"_showTraceResultFunctions",void 0),e([i()],k.prototype,"_showTraceResultAssetGroup",void 0),e([i()],k.prototype,"_showTraceResultAssetType",void 0),e([i()],k.prototype,"_showIndividualRecords",void 0),e([i()],k.prototype,"_activeTab",void 0),e([i()],k.prototype,"_alertRemoveModal",void 0),e([i()],k.prototype,"_warningNoFlag",void 0),e([i()],k.prototype,"_warningNoTraceSelected",void 0),e([i()],k.prototype,"_confirmReset",void 0),e([i()],k.prototype,"_swatchNode",void 0),e([i()],k.prototype,"_errorMessage",void 0),e([i()],k.prototype,"defaultGraphicColor",null),e([i()],k.prototype,"disabled",void 0),e([i()],k.prototype,"flags",null),e([i()],k.prototype,"gdbVersion",null),e([i()],k.prototype,"iconClass",void 0),e([i()],k.prototype,"inputSettings",void 0),e([i()],k.prototype,"label",null),e([i(),h("esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace")],k.prototype,"messages",void 0),e([i(),h("esri/t9n/common")],k.prototype,"messagesCommon",void 0),e([i(),h("esri/core/t9n/Units")],k.prototype,"messagesUnits",void 0),e([i()],k.prototype,"resultAreaProperties",null),e([i()],k.prototype,"selectedTraces",null),e([i()],k.prototype,"selectOnComplete",null),e([i()],k.prototype,"showGraphicsOnComplete",null),e([i()],k.prototype,"enableResultArea",null),e([i()],k.prototype,"showSelectionAttributes",null),e([i()],k.prototype,"utilityNetwork",null),e([i()],k.prototype,"view",null),e([u(["add-flag","add-flag-complete","add-flag-error","select-features","clear-selection","add-result-area","remove-result-area"]),i({type:g})],k.prototype,"viewModel",void 0),k=e([r(v)],k);const M=k;export{M as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import"../../intl.js";import{clamp as n}from"../../core/mathUtils.js";import{formatTimestamp as e,formatTimeOnly as t,formatDateOnly as l,formatDate as o}from"../../intl/date.js";import{utc as i}from"../../time/timeZoneUtils.js";import{DateTime as u,FixedOffsetZone as r}from"luxon";import{getLocale as m}from"../../intl/locale.js";const s=i,a={date:null,dateAsString:null,time:null,timeZoneOffset:null},f=new Map([["hours",3600],["minutes",60],["seconds",1],["deciseconds",.1],["centiseconds",.01],["milliseconds",.001]]),c="yyyy-MM-dd",d="TT";var y;!function(n){n.HM="HH:mm",n.HMS="HH:mm:ss",n.HMS_MS="HH:mm:ss.SSS"}(y||(y={}));const S=[y.HMS_MS,y.HMS,y.HM,d],p="latn",M=new Set(["date-only","time-only","timestamp-offset"]),h=n=>"valueAsDate"in n;function v(n){return{locale:m(),numberingSystem:p,zone:n??s}}function H(n){return n?.isValid?n.toMillis():null}function O(n,e){return null===n?null:u.fromMillis(n,v(e))}function Z(n){if(null==n)return a;const e=u.fromISO(n,{setZone:!0});return{date:e.toJSDate(),dateAsString:e.toFormat(c,v()),time:e.toFormat(y.HMS_MS,v()),timeZoneOffset:e.offset.toString()}}function g(n,e){if(null==n||isNaN(n))return a;const t=O(n,e);return t?{date:t.toJSDate(),dateAsString:t.toFormat(c,v(e)),time:t.toFormat(d,v(e))}:a}function w(n,i,u){if(!n||null==i)return null;switch(n.type){case"date":return o(i,u);case"date-only":return l(i,u);case"time-only":return t(i,u);case"timestamp-offset":return e(i,u);default:return null}}function x(n){const{dateComponent:e,timeComponent:t,timeZoneComponent:l,oldValue:o}=n;if(!e?.value||!t?.value)return null;const{year:m,month:s,day:a}=u.fromFormat(e.value,c),{hour:f,minute:d,second:y,millisecond:S}=V(t,i)??u.now(),p=Z(o),M=null!=l?.value?parseInt(l.value,10):null!=p.timeZoneOffset?parseInt(p.timeZoneOffset,10):(new Date).getTimezoneOffset(),h=r.instance(M),v=u.fromObject({year:m,month:s,day:a,hour:f,minute:d,second:y,millisecond:S},{zone:h});return v.isValid?v.toISO({includeOffset:!0}):null}function F(n){const{dateComponent:e,timeComponent:t,timeZone:l,max:o,min:i,oldValue:r}=n,m=V(e,l);let s=!!n.applyRange;if(!m)return null;let a=null;if(null!=t?.value){const n=V(t,l),e=Date.now(),i=null!=o&&o<e?o:e,r=u.fromMillis(i,v(l)),s=m||r,{year:f,month:c,day:d}=s,{hour:y,minute:S,second:p,millisecond:M}=n||r;a=s.set({year:f,month:c,day:d,hour:y,minute:S,second:p,millisecond:M})}else{const n=O(A({value:r??Date.now(),max:o,min:i}),l),{year:e,month:t,day:u}=m,{hour:f,minute:c,second:d,millisecond:y}=n;s=!0,a=m.set({year:e,month:t,day:u,hour:f,minute:c,second:d,millisecond:y})}if(!a.isValid)return null;const f=a.toMillis();return s?A({value:f,max:o,min:i}):f}function V(n,e){if(!n)return null;let t=null;if(h(n)){const l=n.value;if(!l||Array.isArray(l))return null;t=u.fromFormat(l,c,v(e))}else{if(!n.value)return null;S.find((l=>(t=u.fromFormat(n.value,l,v(e)),t.isValid)))}return t?.isValid?t:null}function j(n){const{max:e,min:t,value:l}=n;return!isNaN(l)&&(!(null!=e&&l>e)&&!(null!=t&&l<t))}function A(e){const{max:t,min:l,value:o}=e;return null!=t&&null!=l?n(o,l,t):null!=t&&o>t?t:null!=l&&o<l?l:o}export{y as TimeStampOffsetPattern,A as clampValueToRange,O as createDateTimeFromFieldValue,M as dateFieldsWithStringFieldValue,H as dateTimeToFieldValue,c as defaultDatePattern,d as defaultTimePattern,v as getDefaultLocaleOptions,x as getISOFieldValueFromDateComponents,w as getLabelForDateFieldValue,V as getLocalDateTimeFromComponent,F as getUnixFieldValueFromDateComponents,h as isCalciteDateComponent,p as numberingSystem,Z as prepareISOFieldValueForDateComponents,g as prepareUnixFieldValueForDateComponents,S as supportedTimeFormats,f as timeResolutionToStepMap,j as valueIsInRange};
5
+ import"../../intl.js";import n from"../../core/Error.js";import{clamp as t}from"../../core/mathUtils.js";import{formatTimestamp as e,formatTimeOnly as o,formatDateOnly as l,formatDate as i}from"../../intl/date.js";import{utc as r}from"../../time/timeZoneUtils.js";import{DateTime as u,FixedOffsetZone as a}from"luxon";import{getLocale as m}from"../../intl/locale.js";const s=r,f={date:null,dateAsString:null,time:null,timeZoneOffset:null},c=new Map([["hours",3600],["minutes",60],["seconds",1],["deciseconds",.1],["centiseconds",.01],["milliseconds",.001]]),d="yyyy-MM-dd",y="TT";var S;!function(n){n.HM="HH:mm",n.HMS="HH:mm:ss",n.HMS_MS="HH:mm:ss.SSS"}(S||(S={}));const p=[S.HMS_MS,S.HMS,S.HM,y],h="latn",v=new Set(["date-only","time-only","timestamp-offset"]),M=n=>"valueAsDate"in n;function H(n){return{locale:m(),numberingSystem:h,zone:n??s}}function O(n){return n?.isValid?n.toMillis():null}function g(n,t){return null===n?null:u.fromMillis(n,H(t))}function w(n){if(null==n)return f;const t=u.fromISO(n,{setZone:!0});return{date:t.toJSDate(),dateAsString:t.toFormat(d,H()),time:t.toFormat(S.HMS_MS,H()),timeZoneOffset:t.offset.toString()}}function j(n,t){if(null==n||isNaN(n))return f;const e=g(n,t);return e?{date:e.toJSDate(),dateAsString:e.toFormat(d,H(t)),time:e.toFormat(y,H(t))}:f}function Z(n,t,r){if(!n||null==t)return null;switch(n.type){case"date":return i(t,r);case"date-only":return l(t,r);case"time-only":return o(t,r);case"timestamp-offset":return e(t,r);default:return null}}function I(n){const{dateComponent:t,timeComponent:e,timeZoneComponent:o,oldValue:l}=n;if(!t?.value||!e?.value)return null;const{year:i,month:m,day:s}=u.fromFormat(t.value,d),{hour:f,minute:c,second:y,millisecond:S}=A(e,r)??u.now(),p=w(l),h=null!=o?.value?parseInt(o.value,10):null!=p.timeZoneOffset?parseInt(p.timeZoneOffset,10):(new Date).getTimezoneOffset(),v=a.instance(h),M=u.fromObject({year:i,month:m,day:s,hour:f,minute:c,second:y,millisecond:S},{zone:v});return M.isValid?M.toISO({includeOffset:!0}):null}function x(n){const{dateComponent:t,timeComponent:e,timeZone:o,max:l,min:i,oldValue:r}=n,a=A(t,o);let m=!!n.applyRange;if(!a)return null;let s=null;if(null!=e?.value){const n=A(e,o),t=Date.now(),i=null!=l&&l<t?l:t,r=u.fromMillis(i,H(o)),m=a||r,{year:f,month:c,day:d}=m,{hour:y,minute:S,second:p,millisecond:h}=n||r;s=m.set({year:f,month:c,day:d,hour:y,minute:S,second:p,millisecond:h})}else{const n=g(F({value:r??Date.now(),max:l,min:i}),o),{year:t,month:e,day:u}=a,{hour:f,minute:c,second:d,millisecond:y}=n;m=!0,s=a.set({year:t,month:e,day:u,hour:f,minute:c,second:d,millisecond:y})}if(!s.isValid)return null;const f=s.toMillis();return m?F({value:f,max:l,min:i}):f}function A(n,t){if(!n)return null;let e=null;if(M(n)){const o=n.value;if(!o||Array.isArray(o))return null;e=u.fromFormat(o,d,H(t))}else{if(!n.value)return null;p.find((o=>(e=u.fromFormat(n.value,o,H(t)),e.isValid)))}return e?.isValid?e:null}function D(n){const{max:t,min:e,value:o}=n;return!isNaN(o)&&(!(null!=t&&o>t)&&!(null!=e&&o<e))}function F(n){const{max:e,min:o,value:l}=n;return null!=e&&null!=o?t(l,o,e):null!=e&&l>e?e:null!=o&&l<o?o:l}function V(t){if(!t)return"";const e=t.split(".").at(0);if(!e||e.length<1)throw new n("invalid time-only field",`Cannot parse valid time-only field value from ${t}`);const o=e.split(":"),l=new Array(3);for(let n=0;n<3;n++){const t=o.at(n)??"";l[n]=t.padStart(2,"0")}return l.join(":")}function C(n,t){switch(t){case"date":return n.getTime();case"date-only":return n.toISODate();case"time-only":return V(n.toISOTime(!0,!1));case"timestamp-offset":return n.toISOString(!1);default:return null}}function T(n){return!!n&&"object"==typeof n&&"getTime"in n&&"toISOString"in n&&"timeZone"in n}export{S as TimeStampOffsetPattern,C as arcadeDateToFieldValue,F as clampValueToRange,g as createDateTimeFromFieldValue,v as dateFieldsWithStringFieldValue,O as dateTimeToFieldValue,d as defaultDatePattern,y as defaultTimePattern,H as getDefaultLocaleOptions,I as getISOFieldValueFromDateComponents,Z as getLabelForDateFieldValue,A as getLocalDateTimeFromComponent,x as getUnixFieldValueFromDateComponents,T as isArcadeDate,M as isCalciteDateComponent,V as normalizeTimeOnlyString,h as numberingSystem,w as prepareISOFieldValueForDateComponents,j as prepareUnixFieldValueForDateComponents,p as supportedTimeFormats,c as timeResolutionToStepMap,D as valueIsInRange};