@arcgis/core 5.1.0-next.117 → 5.1.0-next.119

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 (238) hide show
  1. package/Graphic.d.ts +2 -1
  2. package/analysis/ShadowCast/TotalDurationOptions.d.ts +7 -9
  3. package/analysis/ShadowCastAnalysis.d.ts +6 -5
  4. package/analysis/SliceAnalysis.d.ts +1 -1
  5. package/arcgisGlobal.d.ts +2 -1
  6. package/assets/components/assets/icon/orientedImageryFullSuperimpose16.json +1 -0
  7. package/assets/components/assets/icon/orientedImageryFullSuperimpose24.json +1 -0
  8. package/assets/components/assets/icon/orientedImageryFullSuperimpose32.json +1 -0
  9. package/assets/components/assets/icon/orientedImageryHalfSuperimpose16.json +1 -0
  10. package/assets/components/assets/icon/orientedImageryHalfSuperimpose24.json +1 -0
  11. package/assets/components/assets/icon/orientedImageryHalfSuperimpose32.json +1 -0
  12. package/assets/components/assets/icon/orientedImagerySceneOnly16.json +1 -0
  13. package/assets/components/assets/icon/orientedImagerySceneOnly24.json +1 -0
  14. package/assets/components/assets/icon/orientedImagerySceneOnly32.json +1 -0
  15. package/assets/components/assets/icon/parquetFeatureLayer16.json +1 -0
  16. package/assets/components/assets/icon/parquetFeatureLayer24.json +1 -0
  17. package/assets/components/assets/icon/parquetFeatureLayer32.json +1 -0
  18. package/assets/esri/core/workers/RemoteClient.js +1 -1
  19. package/assets/esri/core/workers/chunks/{cf3036711bbe6095eaed.js → 017f50aae082d6664cfe.js} +1 -1
  20. package/assets/esri/core/workers/chunks/{325bfac7cfa28a6d568f.js → 0e774f14ba274832f390.js} +1 -1
  21. package/assets/esri/core/workers/chunks/{f231548c8ac7ecb59927.js → 0fbf9bf52ecb4cd8293b.js} +1 -1
  22. package/assets/esri/core/workers/chunks/{24b43fb12fc3009fdc30.js → 13940660fe88cfc0d9f3.js} +1 -1
  23. package/assets/esri/core/workers/chunks/14c6419568d8a7a15cd6.js +1 -0
  24. package/assets/esri/core/workers/chunks/153dc2a0b08a0e44a881.js +1 -0
  25. package/assets/esri/core/workers/chunks/1a527c0740d9f4fa0791.js +1 -0
  26. package/assets/esri/core/workers/chunks/{a814069325125466506b.js → 1a95370ddc22729ab3c6.js} +1 -1
  27. package/assets/esri/core/workers/chunks/{c88fd4f69cb2b53b48ec.js → 1b0765403b06294b3e1d.js} +1 -1
  28. package/assets/esri/core/workers/chunks/1bebf7202d5f94b15674.js +1 -0
  29. package/assets/esri/core/workers/chunks/{425c04b26a6ec6d04b08.js → 201007cf1a91e2b126fc.js} +1 -1
  30. package/assets/esri/core/workers/chunks/20e2d11f6de438ee883e.js +1 -0
  31. package/assets/esri/core/workers/chunks/{db012650fb34c10cecd0.js → 24acf3dd541347c2b297.js} +1 -1
  32. package/assets/esri/core/workers/chunks/{ba693317ed3939587f30.js → 290163964ec7f05f96d6.js} +1 -1
  33. package/assets/esri/core/workers/chunks/{9250615c78f8570a9cda.js → 29615df388a0df022d8c.js} +1 -1
  34. package/assets/esri/core/workers/chunks/2a2981f0987dd1eaa75a.js +1 -0
  35. package/assets/esri/core/workers/chunks/{94a5a834e32fc6cc6ed4.js → 2e11b4e9d66474a60064.js} +1 -1
  36. package/assets/esri/core/workers/chunks/{8e7ce4835b3106349684.js → 2ee9514396d22638870c.js} +1 -1
  37. package/assets/esri/core/workers/chunks/{702a3ef9e1b3442cbee7.js → 32323b0e0fcecd8f640e.js} +1 -1
  38. package/assets/esri/core/workers/chunks/3a6678ee9990d7e83e15.js +1 -0
  39. package/assets/esri/core/workers/chunks/{102ff3710db4ba5f083d.js → 3bf6d55511cd7722eb93.js} +1 -1
  40. package/assets/esri/core/workers/chunks/3eabc8af82512dc12355.js +1 -0
  41. package/assets/esri/core/workers/chunks/40df6ffeb61fea80aae3.js +1 -0
  42. package/assets/esri/core/workers/chunks/{7df05c3c82cd27b77300.js → 423a9882abd4a6dadf86.js} +1 -1
  43. package/assets/esri/core/workers/chunks/428561df7ba6f02e2d80.js +1 -0
  44. package/assets/esri/core/workers/chunks/{299b4eecd0288348c971.js → 45323491f9005629c602.js} +1 -1
  45. package/assets/esri/core/workers/chunks/46d3ddf62fa7a76dd57d.js +1 -0
  46. package/assets/esri/core/workers/chunks/{51816d79c6be15e4bfcf.js → 46fbd519cc1a37923bfc.js} +1 -1
  47. package/assets/esri/core/workers/chunks/{b0c242c4f5412e4cce73.js → 47d49777a3b3cd8e18bd.js} +1 -1
  48. package/assets/esri/core/workers/chunks/{22d4521637806a8b828f.js → 4bfffdfbe6d467f143a4.js} +1 -1
  49. package/assets/esri/core/workers/chunks/{7c2d7df4ef4d775cd648.js → 4d09ef7c57ab7f9782fe.js} +1 -1
  50. package/assets/esri/core/workers/chunks/{557e39e5156b313597f9.js → 4e314e7cf477ad54541d.js} +1 -1
  51. package/assets/esri/core/workers/chunks/{7c292f7b181f3b93352b.js → 4ef53455c8bc6efee80e.js} +1 -1
  52. package/assets/esri/core/workers/chunks/{86443e47ad99e555753a.js → 53246ce4d2c7d2d2fc62.js} +1 -1
  53. package/assets/esri/core/workers/chunks/5500dc39e11a0057ae16.js +1 -0
  54. package/assets/esri/core/workers/chunks/{dce37324a2382d2eef0d.js → 552945a73a95cd2a9f54.js} +1 -1
  55. package/assets/esri/core/workers/chunks/5784ddd18395f4d76016.js +640 -0
  56. package/assets/esri/core/workers/chunks/578ab400e1998d0bcd62.js +1 -0
  57. package/assets/esri/core/workers/chunks/{0a530fbbb4486c670ea2.js → 5c7aff9604b4576a0e1d.js} +1 -1
  58. package/assets/esri/core/workers/chunks/{0954e82f739d25001bcb.js → 603177137eb680afe371.js} +1 -1
  59. package/assets/esri/core/workers/chunks/62206d5d497b95fc4caf.js +1 -0
  60. package/assets/esri/core/workers/chunks/{69a1cbf0af059548f96a.js → 64daa2a714e59d22bbd4.js} +1 -1
  61. package/assets/esri/core/workers/chunks/{4cecc582513b8a83f194.js → 65621650a53f69f7b05a.js} +1 -1
  62. package/assets/esri/core/workers/chunks/{86a767c2b0b1e37ff493.js → 65a9a94162985b54571e.js} +1 -1
  63. package/assets/esri/core/workers/chunks/6af77529c977d034d287.js +1 -0
  64. package/assets/esri/core/workers/chunks/{1f3a676e7a4eae5ad566.js → 767ea5b455b3823afd09.js} +1 -1
  65. package/assets/esri/core/workers/chunks/{466c250537415f12eb59.js → 798e8bf3a7ad83d810e3.js} +1 -1
  66. package/assets/esri/core/workers/chunks/{f69c44479ee3fd8c831d.js → 7d220f574ebf2740c208.js} +1 -1
  67. package/assets/esri/core/workers/chunks/{e95ce76b5b816256a519.js → 7f54d3835c0ce573a942.js} +1 -1
  68. package/assets/esri/core/workers/chunks/804ab5f614efa12a131b.js +1 -0
  69. package/assets/esri/core/workers/chunks/{ed939fd5d3827a3f70e0.js → 81e3bd1a0634ddc2b833.js} +1 -1
  70. package/assets/esri/core/workers/chunks/823789261ca3338f0fa8.js +1 -0
  71. package/assets/esri/core/workers/chunks/8244b74e9c3a30d8d2f6.js +2 -0
  72. package/assets/esri/core/workers/chunks/{5cdf87e7a59ace38df87.js → 84b0b6e099d949e0fea5.js} +1 -1
  73. package/assets/esri/core/workers/chunks/{caf80facb0322be054ab.js → 8cc6a00c2991ce3fde67.js} +1 -1
  74. package/assets/esri/core/workers/chunks/8e1865392681d390ab2e.js +1 -0
  75. package/assets/esri/core/workers/chunks/93826180cfd66a6d2596.js +1 -0
  76. package/assets/esri/core/workers/chunks/{90b0fe5584fb6fc99766.js → 9d27cc631bab8aa7479e.js} +1 -1
  77. package/assets/esri/core/workers/chunks/a730235da6ba2b2d9f47.js +30 -0
  78. package/assets/esri/core/workers/chunks/a806ac351ef5da04c250.js +1 -0
  79. package/assets/esri/core/workers/chunks/{558606a1af22e4a0d536.js → aca6ff64495580d873d1.js} +1 -1
  80. package/assets/esri/core/workers/chunks/ad488985824fbb830ed6.js +1 -0
  81. package/assets/esri/core/workers/chunks/adac8583750783b9c599.js +2 -0
  82. package/assets/esri/core/workers/chunks/{762e23466308f22d7076.js → aea384f4d88121da8f54.js} +1 -1
  83. package/assets/esri/core/workers/chunks/{4e97c01698ef36cc5e0e.js → bfc2b75e4f7531dbd37f.js} +1 -1
  84. package/assets/esri/core/workers/chunks/c216cd5d6b5d4fe4bab3.js +2 -0
  85. package/assets/esri/core/workers/chunks/c44be4aaba829e6d149d.js +1 -0
  86. package/assets/esri/core/workers/chunks/{6a53c8db554be55c5885.js → c528b04d42dffbb491da.js} +31 -21
  87. package/assets/esri/core/workers/chunks/ca4245414d8ecd217f9d.js +1 -0
  88. package/assets/esri/core/workers/chunks/{7a3b05e25de2ff150f38.js → cc479daacd2cf715baa8.js} +1 -1
  89. package/assets/esri/core/workers/chunks/{1252da05832e576d4def.js → d1ccc5f2d8892328ab01.js} +2 -2
  90. package/assets/esri/core/workers/chunks/{3aebbed6d4fd1b993a35.js → d2dd6e252d5fecfc0f83.js} +1 -1
  91. package/assets/esri/core/workers/chunks/{b44f1d08784f2e50c853.js → d3af51a6d9014ff46170.js} +1 -1
  92. package/assets/esri/core/workers/chunks/{e6e15e9e890b864fb395.js → d41fe5a248221c0a1714.js} +1 -1
  93. package/assets/esri/core/workers/chunks/d561dc933d8fe1672d85.js +1 -0
  94. package/assets/esri/core/workers/chunks/daec09750a5a70cdb0f0.js +2 -0
  95. package/assets/esri/core/workers/chunks/de41c3f5b34c49175833.js +1 -0
  96. package/assets/esri/core/workers/chunks/e178cd0e9178d6716410.js +1 -0
  97. package/assets/esri/core/workers/chunks/e9dcc3e9dbafe9bbed84.js +1 -0
  98. package/assets/esri/core/workers/chunks/{185c670eb99474906836.js → edb55329305becdb204f.js} +1 -1
  99. package/assets/esri/core/workers/chunks/{d21bf107698fef03125e.js → f142f892e9e896052ddc.js} +1 -1
  100. package/assets/esri/core/workers/chunks/f58ddf37dee066a5c0d8.js +1 -0
  101. package/assets/esri/themes/base/widgets/_BatchAttributeForm.scss +27 -4
  102. package/assets/esri/themes/base/widgets/_Grid.scss +3 -3
  103. package/assets/esri/themes/dark/main.css +1 -1
  104. package/assets/esri/themes/light/main.css +1 -1
  105. package/assets/esri/themes/light/view.css +1 -1
  106. package/chunks/GlobalIllumination.glsl.js +20 -19
  107. package/chunks/GlobalIlluminationBlur.glsl.js +15 -12
  108. package/chunks/GlobalIlluminationUpscale.glsl.js +4 -3
  109. package/chunks/ShadowCastVisualize.glsl.js +20 -23
  110. package/config.js +1 -1
  111. package/editing/templates/{TemplateListing.d.ts → TemplateListItem.d.ts} +35 -6
  112. package/editing/templates/{TemplateListing.js → TemplateListItem.js} +1 -1
  113. package/interfaces.d.ts +7 -0
  114. package/kernel.js +1 -1
  115. package/layers/FeatureLayer.d.ts +29 -3
  116. package/layers/FeatureLayer.js +1 -1
  117. package/layers/ImageryTileLayer.js +1 -1
  118. package/layers/MediaLayer.d.ts +1 -1
  119. package/layers/SceneLayer.d.ts +2 -2
  120. package/layers/VectorTileLayer.d.ts +2 -2
  121. package/layers/mixins/ArcGISImageService.js +1 -1
  122. package/layers/mixins/BlendLayer.d.ts +1 -1
  123. package/layers/mixins/PortalLayer.js +1 -1
  124. package/layers/mixins/TiledImagery.js +1 -1
  125. package/layers/raster/datasets/ImageAuxRaster.js +1 -1
  126. package/layers/raster/datasets/RasterFactory.js +1 -1
  127. package/layers/save/featureLayerUtils.js +1 -1
  128. package/layers/support/FeatureFilter.d.ts +1 -1
  129. package/layers/support/FeatureReductionSelection.d.ts +1 -1
  130. package/layers/support/RasterJobHandler.js +1 -1
  131. package/layers/support/RasterWorker.js +1 -1
  132. package/layers/support/SymbolLayerDrawing.d.ts +10 -0
  133. package/layers/support/arcgisLayers.js +1 -1
  134. package/layers/support/fetchService.js +1 -1
  135. package/layers/support/layerUtils.js +1 -1
  136. package/layers/support/layersLoader.js +1 -1
  137. package/layers/support/rasterJobHelper.js +2 -0
  138. package/layers/types.d.ts +2 -3
  139. package/package.json +3 -3
  140. package/renderers/FlowRenderer.d.ts +2 -2
  141. package/rest/support/AttributeBinsQuery.d.ts +5 -5
  142. package/rest/support/OutDistance.d.ts +50 -0
  143. package/rest/support/OutDistance.js +1 -1
  144. package/rest/support/Query.d.ts +46 -5
  145. package/rest/support/TopFeaturesQuery.d.ts +5 -5
  146. package/smartMapping/raster/renderers/flow.d.ts +2 -2
  147. package/smartMapping/symbology/flow.d.ts +2 -2
  148. package/smartMapping/symbology/types.d.ts +2 -2
  149. package/support/revision.js +1 -1
  150. package/symbols/support/Symbol3DVerticalOffset.d.ts +2 -2
  151. package/views/2d/engine/vectorTiles/shaders/VTLBackgroundMaterial.js +1 -1
  152. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/vector-tiles/VTLShaderCircle.js +1 -1
  153. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  154. package/views/2d/layers/FeatureLikeLayerView2D.js +1 -1
  155. package/views/2d/layers/features/FeaturePipelineWorker.js +1 -1
  156. package/views/2d/layers/features/Processor.js +1 -1
  157. package/views/2d/layers/features/processor/AProcessorStrategy.js +1 -1
  158. package/views/2d/layers/features/processor/ClusterStrategy.js +1 -1
  159. package/views/2d/layers/features/sources/strategies/ParquetTileLoadStrategy.js +1 -1
  160. package/views/2d/layers/features/support/FeatureSetReaderParquet.js +1 -1
  161. package/views/3d/analysis/ShadowCast/ShadowCastTooltip.js +1 -1
  162. package/views/3d/analysis/ShadowCastAnalysisView3D.js +1 -1
  163. package/views/3d/analysis/ViewshedAnalysisView3D.js +1 -1
  164. package/views/3d/interactive/editingTools/transform/ExtentTransformTool.js +1 -1
  165. package/views/3d/layers/GaussianSplatLayerView3D.js +1 -1
  166. package/views/3d/layers/graphics/defaultSymbolComplexity.js +1 -1
  167. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.glsl.js +1 -1
  168. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationBlur.glsl.js +1 -1
  169. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationColorQuantization.glsl.js +7 -0
  170. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationUpscale.glsl.js +1 -1
  171. package/views/3d/webgl-engine/lib/ShadowAccumulator.js +1 -1
  172. package/views/SceneView.d.ts +1 -1
  173. package/views/interactive/sketch/SketchTooltipOptions.d.ts +1 -1
  174. package/views/interactive/snapping/SnappingOptions.d.ts +3 -3
  175. package/views/layers/ImageryLayerView.d.ts +1 -1
  176. package/widgets/BatchAttributeForm/BatchAttributeFormViewModel.d.ts +29 -1
  177. package/widgets/BatchAttributeForm/BatchAttributeFormViewModel.js +1 -1
  178. package/widgets/BatchAttributeForm/attachmentUtils.js +1 -1
  179. package/widgets/BatchAttributeForm/css.js +1 -1
  180. package/widgets/BatchAttributeForm/inputs/AttachmentElementInput.js +1 -1
  181. package/widgets/BatchAttributeForm/inputs/FieldInput.d.ts +0 -5
  182. package/widgets/BatchAttributeForm/inputs/FieldInput.js +1 -1
  183. package/widgets/BatchAttributeForm/inputs/UtilityNetworkAssociationsElementInput.js +1 -1
  184. package/widgets/BatchAttributeForm/inputs/support/inputUtils.js +1 -1
  185. package/widgets/BatchAttributeForm/types.d.ts +67 -0
  186. package/widgets/BatchAttributeForm.d.ts +26 -1
  187. package/widgets/BatchAttributeForm.js +1 -1
  188. package/widgets/Daylight.d.ts +1 -1
  189. package/widgets/Directions/DirectionsViewModel.js +1 -1
  190. package/widgets/Editor.d.ts +8 -8
  191. package/widgets/ElevationProfile.d.ts +1 -1
  192. package/widgets/FeatureTable/ActionColumn.d.ts +1 -1
  193. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  194. package/widgets/Print/PrintViewModel.js +1 -1
  195. package/widgets/Sketch/SketchViewModel.d.ts +38 -38
  196. package/widgets/Sketch/support/PluginManager.js +1 -1
  197. package/widgets/Sketch.d.ts +39 -39
  198. package/widgets/Sketch.js +1 -1
  199. package/widgets/Slice.d.ts +1 -1
  200. package/widgets/UtilityNetworkTrace.d.ts +1 -1
  201. package/widgets/UtilityNetworkValidateTopology.d.ts +1 -1
  202. package/assets/esri/core/workers/chunks/074f5e6aaeafca13bf72.js +0 -1
  203. package/assets/esri/core/workers/chunks/0e9804ece1fd2d59751b.js +0 -1
  204. package/assets/esri/core/workers/chunks/18ebf1d3ed05c8057f7d.js +0 -1
  205. package/assets/esri/core/workers/chunks/1da2c34743897d1b6a24.js +0 -1
  206. package/assets/esri/core/workers/chunks/2e8db0f05df2e38a14e1.js +0 -2
  207. package/assets/esri/core/workers/chunks/32f24a66f684de3c243d.js +0 -1
  208. package/assets/esri/core/workers/chunks/41074d383af3662673ca.js +0 -1
  209. package/assets/esri/core/workers/chunks/413d2fa54508e6f42c74.js +0 -1
  210. package/assets/esri/core/workers/chunks/4325fa92dafca465ae26.js +0 -1
  211. package/assets/esri/core/workers/chunks/438f35d41c6851736818.js +0 -30
  212. package/assets/esri/core/workers/chunks/544174c33628846284a1.js +0 -1
  213. package/assets/esri/core/workers/chunks/55b765c72d13b3b911f9.js +0 -1
  214. package/assets/esri/core/workers/chunks/55d168c13491fcdfb284.js +0 -1
  215. package/assets/esri/core/workers/chunks/62b5972d0ef9bf173308.js +0 -1
  216. package/assets/esri/core/workers/chunks/6af88bb722bbb37db198.js +0 -2
  217. package/assets/esri/core/workers/chunks/708bd77e6d723e3f0aa8.js +0 -1
  218. package/assets/esri/core/workers/chunks/70d8f5bdb452cee41536.js +0 -2
  219. package/assets/esri/core/workers/chunks/75a7de23c05435ec7649.js +0 -1
  220. package/assets/esri/core/workers/chunks/87a40e7f79f97ca637a9.js +0 -1
  221. package/assets/esri/core/workers/chunks/8a68884d40f6f6de1d12.js +0 -1
  222. package/assets/esri/core/workers/chunks/927c8ca7fd385b28a1b7.js +0 -640
  223. package/assets/esri/core/workers/chunks/92a7735973b2f82a66ce.js +0 -1
  224. package/assets/esri/core/workers/chunks/978b7d10054e17161145.js +0 -1
  225. package/assets/esri/core/workers/chunks/a0fce639319d59becd01.js +0 -2
  226. package/assets/esri/core/workers/chunks/aa03f770178693167aa0.js +0 -1
  227. package/assets/esri/core/workers/chunks/aea439d4c2308f88b295.js +0 -1
  228. package/assets/esri/core/workers/chunks/b78fb24b47d9f31f18c6.js +0 -1
  229. package/assets/esri/core/workers/chunks/b8dda9e55caba0e2b4c2.js +0 -1
  230. package/assets/esri/core/workers/chunks/c4872cf3b71d00f450e1.js +0 -1
  231. package/assets/esri/core/workers/chunks/d598d08dbf2796742e8c.js +0 -1
  232. package/assets/esri/core/workers/chunks/fa3138dd8139008b430d.js +0 -1
  233. package/assets/esri/core/workers/chunks/fc9fbc8e4e459edf4e37.js +0 -1
  234. /package/assets/esri/core/workers/chunks/{2e8db0f05df2e38a14e1.js.LICENSE.txt → 8244b74e9c3a30d8d2f6.js.LICENSE.txt} +0 -0
  235. /package/assets/esri/core/workers/chunks/{6af88bb722bbb37db198.js.LICENSE.txt → adac8583750783b9c599.js.LICENSE.txt} +0 -0
  236. /package/assets/esri/core/workers/chunks/{70d8f5bdb452cee41536.js.LICENSE.txt → c216cd5d6b5d4fe4bab3.js.LICENSE.txt} +0 -0
  237. /package/assets/esri/core/workers/chunks/{1252da05832e576d4def.js.LICENSE.txt → d1ccc5f2d8892328ab01.js.LICENSE.txt} +0 -0
  238. /package/assets/esri/core/workers/chunks/{a0fce639319d59becd01.js.LICENSE.txt → daec09750a5a70cdb0f0.js.LICENSE.txt} +0 -0
@@ -191,6 +191,73 @@ export interface ValueChangeEvent {
191
191
  value: FieldValue;
192
192
  }
193
193
 
194
+ /**
195
+ * Describes a field value change event with per-feature change details.
196
+ *
197
+ * @since 5.1
198
+ */
199
+ export interface ValuesChangeEvent {
200
+ /**
201
+ * The changed values for each affected feature.
202
+ *
203
+ * @since 5.1
204
+ */
205
+ data: ValuesChangeData[];
206
+ /**
207
+ * The field whose value was interactively changed.
208
+ * Additional field changes caused by expressions are included in [ValuesChangeData](https://developers.arcgis.com/javascript/latest/references/core/widgets/BatchAttributeForm/types/#ValuesChangeData-changes).
209
+ *
210
+ * @since 5.1
211
+ */
212
+ fieldName: string;
213
+ /**
214
+ * The name of the event.
215
+ *
216
+ * @since 5.1
217
+ */
218
+ name: "values-change";
219
+ }
220
+
221
+ /**
222
+ * Describes all field changes applied to a single feature during a `values-change` event.
223
+ *
224
+ * @since 5.1
225
+ */
226
+ export interface ValuesChangeData {
227
+ /**
228
+ * The feature whose values changed.
229
+ *
230
+ * @since 5.1
231
+ */
232
+ feature: Graphic;
233
+ /**
234
+ * The field-level changes that were applied to the feature.
235
+ *
236
+ * @since 5.1
237
+ */
238
+ changes: ValueChange[];
239
+ }
240
+
241
+ /**
242
+ * Describes a single field change for a feature in a `values-change` event.
243
+ *
244
+ * @since 5.1
245
+ */
246
+ export interface ValueChange {
247
+ /**
248
+ * The name of the field that changed.
249
+ *
250
+ * @since 5.1
251
+ */
252
+ fieldName: string;
253
+ /**
254
+ * The updated value for the field.
255
+ *
256
+ * @since 5.1
257
+ */
258
+ value: FieldValue;
259
+ }
260
+
194
261
  /**
195
262
  * Configurations used for setting the layer's [FormTemplate](https://developers.arcgis.com/javascript/latest/references/core/form/FormTemplate/) within `BatchAttributeForm`.
196
263
  *
@@ -1,13 +1,15 @@
1
1
  import type Graphic from "../Graphic.js";
2
2
  import type EsriMap from "../Map.js";
3
3
  import type Collection from "../core/Collection.js";
4
+ import type UtilityNetworkAssociationType from "../popup/support/UtilityNetworkAssociationType.js";
4
5
  import type Widget from "./Widget.js";
5
6
  import type BatchAttributeFormViewModel from "./BatchAttributeForm/BatchAttributeFormViewModel.js";
6
7
  import type VisibleElements from "./BatchAttributeForm/VisibleElements.js";
8
+ import type UtilityNetworkAssociationsElementInput from "./BatchAttributeForm/inputs/UtilityNetworkAssociationsElementInput.js";
7
9
  import type { Icon } from "@esri/calcite-components/components/calcite-icon";
8
10
  import type { WidgetProperties } from "./Widget.js";
9
11
  import type { BatchAttributeFormViewModelEvents, BatchAttributeFormViewModelProperties } from "./BatchAttributeForm/BatchAttributeFormViewModel.js";
10
- import type { AttributeFormSupportedLayerInfo, FooterButtonInfo, FooterNoticeInfo, Page, SelectedAttachmentDetails, SelectedAttachmentIdentifier } from "./BatchAttributeForm/types.js";
12
+ import type { AssociationsLayerUnion, AttributeFormSupportedLayerInfo, FooterButtonInfo, FooterNoticeInfo, Page, SelectedAttachmentDetails, SelectedAttachmentIdentifier } from "./BatchAttributeForm/types.js";
11
13
  import type { HeadingLevel } from "./support/types.js";
12
14
  import type { VisibleElementsProperties } from "./BatchAttributeForm/VisibleElements.js";
13
15
 
@@ -262,6 +264,29 @@ export default class BatchAttributeForm extends Widget<BatchAttributeFormPropert
262
264
  goHome(): Promise<void>;
263
265
  /** Focus the form on the first input element with an error. */
264
266
  goToFirstError(): void;
267
+ /**
268
+ * Used to specify an input to view associated layers for. This causes a list of associated layers to be displayed for the specified input.
269
+ * The list is filtered further by the current active association type. Related to the 'viewing-associated-layers' page.
270
+ *
271
+ * @param input - A reference to the input to display associated layers for.
272
+ * @internal
273
+ */
274
+ setActiveAssociationsInput(input: UtilityNetworkAssociationsElementInput | null | undefined): void;
275
+ /**
276
+ * Used to specify a layer to view associated features for. Causes a list of associated features to be displayed for the specified layer.
277
+ * Related to the 'viewing-associated-features' page.
278
+ *
279
+ * @param layer - A reference to a specific layer.
280
+ * @internal
281
+ */
282
+ setActiveAssociationsLayer(layer: AssociationsLayerUnion | null | undefined): void;
283
+ /**
284
+ * Used to filter the types of associations displayed in the 'viewing-associated-layers' page.
285
+ *
286
+ * @param type - A reference to a specific type of association.
287
+ * @internal
288
+ */
289
+ setActiveAssociationType(type: UtilityNetworkAssociationType | null | undefined): void;
265
290
  /**
266
291
  * Usually, this is called when the user clicks a specified `submit` button or when the form is programmatically submitted and calls the [FeatureLayer.applyEdits()](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#applyEdits) method
267
292
  * to update the features' attributes.
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{substitute as t}from"../intl.js";import{deprecateWidget as a}from"../core/deprecate.js";import i from"../core/Logger.js";import{getOrCreateMapValue as n}from"../core/MapUtils.js";import{watch as l,when as s,on as o}from"../core/reactiveUtils.js";import{formatFileSize as r}from"../core/unitFormatUtils.js";import{property as c,subclass as d}from"../core/accessorSupport/decorators.js";import{isIntegerField as m}from"../layers/support/fieldUtils.js";import{isString as h}from"../support/guards.js";import u from"./Widget.js";import{getAttachmentTypeCategory as p,getCalciteIconForAttachment as g}from"./Attachments/support/attachmentUtils.js";import{getAttachmentKey as v,isImageAttachment as f}from"./BatchAttributeForm/attachmentUtils.js";import{getHiddenFieldsValidationErrorMessage as b,getVisibleFieldInputValidationErrorMessage as C,isElementTemplateWithInputType as _}from"./BatchAttributeForm/batchAttributeFormUtils.js";import A from"./BatchAttributeForm/BatchAttributeFormViewModel.js";import{css as y}from"./BatchAttributeForm/css.js";import{makeAddAttachmentFooterButtons as I,makeDiscardAttachmentFooterButtons as F,makeReplaceAttachmentFooterButtons as w,makeViewingAttachmentFooterButtons as k,makeDefaultFooterButtons as x}from"./BatchAttributeForm/interfaceUtils.js";import D from"./BatchAttributeForm/VisibleElements.js";import{isGroupInput as M,isFieldInput as E,isTextElementInput as S,isRelationshipElementInput as O,isAttachmentElementInput as T,isUtilityNetworkAssociationsElementInput as V,differentValuesString as L}from"./BatchAttributeForm/inputs/support/inputUtils.js";import{clearMultipleChoiceOtherChoiceStateForViewModel as R,getMultipleChoiceCheckboxState as P,otherChoiceCheckedPlaceholderValue as U,getUpdatedMultipleChoiceValueForFeature as N,getMultipleChoiceSelectAllState as B,splitMultipleChoiceValue as $,canRestoreMultipleChoiceOtherChoiceDraftValue as j}from"./BatchAttributeForm/inputs/support/multipleChoiceInputUtils.js";import{loadRelationshipDetailsComponents as z,RelationshipDetails as H}from"./BatchAttributeForm/rendered-content/RelationshipDetails.js";import{downloadAttachmentInfo as Z}from"./FeatureTable/support/exportUtils.js";import{loadCalciteComponents as q}from"./support/componentsUtils.js";import{getLabelForDateFieldValue as G,getIntlOptionsForField as W,prepareISOFieldValueForDateComponents as K,prepareUnixFieldValueForDateComponents as X,normalizeTimeOnlyString as J,getISOFieldValueFromDateComponents as Q,getUnixFieldValueFromDateComponents as Y}from"./support/dateUtils.js";import{globalCss as ee}from"./support/globalCss.js";import{calciteListFilterProps as te}from"./support/listUtils.js";import{messageBundle as ae,vmEvent as ie,tsx as ne}from"./support/widget.js";import{setFocus as le}from"./support/widgetUtils.js";import{isEmptyValue as se}from"./support/forms/formUtils.js";const oe="data-element-id",re="esri_BatchAttributeForm_select_all",ce="esri_BatchAttributeForm_other_choice";let de=class extends u{constructor(e,t){super(e,t),this.headingLevel=2,this.messagesCommon=null,this.messages=null,this.messagesUnits=null,this.viewModel=new A,this.visibleElements=new D,this.groupDisplay="all",this._attemptFocusOnNextRender=!1,this._dateComponentMap=new Map,this._touchedInputs=new Set,this._focusedFieldInput=null,this._batchSwitchInputInitialValues=new Map,this._attachmentDialogInfo=null,this._attachmentListFilterText="",this._attachmentFileInputMap=new Map,this._selectedAttachmentReplaceFileInput=null,this._maximizeSelectedAttachment=()=>{this._attachmentDialogInfo=this.selectedAttachmentDetails},this._enterAttachmentReplaceView=()=>{this.readOnly||this.effectiveDisabled||!this.selectedAttachmentDetails||this.viewModel.setShowingSelectedAttachmentReplacePage(!0)},this._setSelectedAttachmentReplaceFileInput=e=>{this._selectedAttachmentReplaceFileInput=e},this._openSelectedAttachmentReplaceFilePicker=()=>{this.readOnly||this.effectiveDisabled||this._selectedAttachmentReplaceFileInput?.click()},this._resetSelectedAttachmentName=()=>{const e=this.selectedAttachmentDetails,t=e?.attachment.globalId,a=e?e.input.getAttachmentEditState(e.attachment).initialName:null;e&&t&&null!=a&&this.viewModel.stageRenameAttachment(e.input.template.elementId,t,a)},this._resetSelectedAttachmentChanges=()=>{const e=this.selectedAttachmentDetails,t=e?.attachment.globalId;e&&t&&this.viewModel.resetAttachmentChanges(e.input.template.elementId,t)},this._deleteSelectedAttachment=()=>{const e=this.selectedAttachmentDetails,t=e?.attachment.globalId;e&&t&&!this._isSelectedAttachmentDeleteDisabled()&&(this.viewModel.stageDeleteAttachment(e.input.template.elementId,t),this._setSelectedAttachment(null))},this._closeAttachmentDialog=()=>{this.hideAttachmentDialog()},this._saveInput=this._saveInput.bind(this),this._onFormSubmit=this._onFormSubmit.bind(this),this._onComponentFocus=this._onComponentFocus.bind(this),this._onComponentBlur=this._onComponentBlur.bind(this),this._afterComponentCreateOrUpdate=this._afterComponentCreateOrUpdate.bind(this),this._afterDateComponentCreate=this._afterDateComponentCreate.bind(this),this._afterRadioGroupCreateOrUpdate=this._afterRadioGroupCreateOrUpdate.bind(this),e?.suppressDeprecationWarning||(this.announceDeprecation=()=>{a(i.getLogger(this),"Editor","arcgis-editor",{version:"5.0"})})}normalizeCtorArgs(e={}){const{suppressDeprecationWarning:t,...a}=e;return a}initialize(){this.addHandles([l(()=>this.features,()=>{this._dateComponentMap.clear(),this._resetTransientFormState(),R(this.viewModel,{includeDraftValues:!0})}),l(()=>this.viewModel.activeForm,()=>{this._batchSwitchInputInitialValues.clear(),this._resetTransientFormState(),R(this.viewModel)}),l(()=>this.viewModel.selectedAttachmentAddElementId,()=>{this.hideAttachmentDialog()}),s(()=>!this.selectedAttachmentDetails,()=>this.hideAttachmentDialog()),l(()=>this.viewModel.selectedAttachmentListElementId,()=>{this._attachmentListFilterText=""}),o(()=>this.viewModel,"submit",()=>{this.valid||this.goToFirstError()})])}loadDependencies(){return Promise.all([q({action:()=>import("@esri/calcite-components/dist/components/calcite-action"),block:()=>import("@esri/calcite-components/dist/components/calcite-block"),button:()=>import("@esri/calcite-components/dist/components/calcite-button"),checkbox:()=>import("@esri/calcite-components/dist/components/calcite-checkbox"),combobox:()=>import("@esri/calcite-components/dist/components/calcite-combobox"),"combobox-item":()=>import("@esri/calcite-components/dist/components/calcite-combobox-item"),"combobox-item-group":()=>import("@esri/calcite-components/dist/components/calcite-combobox-item-group"),dialog:()=>import("@esri/calcite-components/dist/components/calcite-dialog"),dropdown:()=>import("@esri/calcite-components/dist/components/calcite-dropdown"),"dropdown-group":()=>import("@esri/calcite-components/dist/components/calcite-dropdown-group"),"dropdown-item":()=>import("@esri/calcite-components/dist/components/calcite-dropdown-item"),icon:()=>import("@esri/calcite-components/dist/components/calcite-icon"),input:()=>import("@esri/calcite-components/dist/components/calcite-input"),"input-date-picker":()=>import("@esri/calcite-components/dist/components/calcite-input-date-picker"),"input-message":()=>import("@esri/calcite-components/dist/components/calcite-input-message"),"input-number":()=>import("@esri/calcite-components/dist/components/calcite-input-number"),"input-time-picker":()=>import("@esri/calcite-components/dist/components/calcite-input-time-picker"),"input-time-zone":()=>import("@esri/calcite-components/dist/components/calcite-input-time-zone"),label:()=>import("@esri/calcite-components/dist/components/calcite-label"),list:()=>import("@esri/calcite-components/dist/components/calcite-list"),"list-item":()=>import("@esri/calcite-components/dist/components/calcite-list-item"),loader:()=>import("@esri/calcite-components/dist/components/calcite-loader"),notice:()=>import("@esri/calcite-components/dist/components/calcite-notice"),switch:()=>import("@esri/calcite-components/dist/components/calcite-switch"),"text-area":()=>import("@esri/calcite-components/dist/components/calcite-text-area"),"radio-button":()=>import("@esri/calcite-components/dist/components/calcite-radio-button"),"radio-button-group":()=>import("@esri/calcite-components/dist/components/calcite-radio-button-group")}),z()])}get activeFeatureIndex(){return this.viewModel.activeFeatureIndex}set activeFeatureIndex(e){this.viewModel.activeFeatureIndex=e}get callbacks(){return this.viewModel.callbacks}set callbacks(e){this.viewModel.callbacks=e}get disabled(){return this.viewModel.disabled}set disabled(e){this.viewModel.disabled=e}get effectiveTitle(){const{features:e,messages:t,page:a}=this;return"replacing-attachment"===a?t.titles.replaceAttachment:"viewing-attachment-details"===a?t.titles.editAttachment:"adding-attachments"===a?t.titles.addAttachments:"viewing-attachments"===a?t.titles.attachments:1===e.length||this.activeFeatureIndex>-1?t.titles.editFeature:e.length>1?t.titles.editFeatures:""}get effectiveDisabled(){return this.disabled||this.viewModel.updating}get features(){return this.viewModel.features}set features(e){this.viewModel.features=e}get footerButtonInfos(){if(!this.features.length)return[];const{page:e,messages:t}=this,a=this.viewModel.selectedAttachmentAddElementId,i=this.selectedAttachmentDetails,n=i?i.input.getAttachmentEditState(i.attachment):null;if("adding-attachments"===e&&a)return I({messages:t,onclick:()=>this._attachmentFileInputMap.get(a)?.click()});return!!i&&"replacing-attachment"!==e&&!!n?.isReplaced?F({message:this.messagesCommon.remove,onclick:this._resetSelectedAttachmentChanges}):"replacing-attachment"===e?w({disabled:this.readOnly||this.effectiveDisabled,messages:t,onclick:this._openSelectedAttachmentReplaceFilePicker}):"viewing-attachment-details"===e?k({deleteDisabled:this._isSelectedAttachmentDeleteDisabled(),deleteOnclick:this._deleteSelectedAttachment,doneOnclick:()=>this._setSelectedAttachment(null),messages:t.footerButtons}):"viewing-attachments"===e?[]:x({formId:this._formId,callback:this.submit,messages:t})}get footerNoticeInfos(){if(!this.features.length)return[];const{messages:{footerNotices:e}}=this;return this._isSelectedAttachmentDeleteDisabled()?[{icon:"information",message:e.deleteDisabledMinimumAttachments}]:[]}get map(){return this.viewModel.map}set map(e){this.viewModel.map=e}get maximumFeatureCount(){return this.viewModel.maximumFeatureCount}set maximumFeatureCount(e){this.viewModel.maximumFeatureCount=e}get maximumFeatureCountWithComplexForms(){return this.viewModel.maximumFeatureCountWithComplexForms}set maximumFeatureCountWithComplexForms(e){this.viewModel.maximumFeatureCountWithComplexForms=e}get spatialReference(){return this.viewModel.spatialReference}set spatialReference(e){this.viewModel.spatialReference=e}get layerInfos(){return this.viewModel.layerInfos}set layerInfos(e){this.viewModel.layerInfos=e}get timeZone(){return this.viewModel.timeZone}set timeZone(e){this.viewModel.timeZone=e}get icon(){return"edit-attributes"}set icon(e){this._overrideIfSome("icon",e)}get page(){return this.viewModel.page}get readOnly(){return this.viewModel.readOnly}set readOnly(e){this.viewModel.readOnly=e}get selectedAttachment(){return this.viewModel.selectedAttachment}get selectedAttachmentDetails(){return this.viewModel.selectedAttachmentDetails}get valid(){return this.viewModel.valid}get _associationsEnabled(){const{callbacks:e}=this;return!(!e?.addAssociation||!e.selectAssociatedFeature)}get _formId(){return`${this.id}-form`}get _relatedRecordsEnabled(){const{callbacks:e}=this;return!(!e||!e.addRelatedRecord&&!e.editRelatedRecord)}async goBack(){return this.viewModel.goBack()}async goHome(){return this.viewModel.goHome()}goToFirstError(){const e=this.viewModel.getFirstVisibleInvalidFieldInput();if(!e)return;const{groupInput:t}=e;t&&(t.open||(t.open=!0)),this._focusedFieldInput=e.input,this._attemptFocusOnNextRender=!0,this.scheduleRender()}render(){return ne("div",{class:this.classes(y.base,ee.widget,ee.panel)},this._renderContent(),this._renderAttachmentDialog())}submit(){return this.viewModel.submit()}_setDateTimeTimeZoneMap(e){const{datePart:t,elementId:a}=e.dataset,i=n(this._dateComponentMap,`${a}`,()=>({}));switch(t){case"date":i.date=e;break;case"time":i.time=e;break;case"timeZone":i.timeZone=e}}_renderContent(){const{messages:e,viewModel:a}=this,{status:i}=a;return"failed"===i?a.hasTooManyComplexFeatures?this._renderErrorNotice(t(e.formFailedToLoadTooManyComplexFeatures,{num:a.maximumFeatureCountWithComplexForms})):a.hasTooManyFeatures?this._renderErrorNotice(t(e.formFailedToLoadTooManyFeatures,{num:a.maximumFeatureCount})):e.formFailedToLoad:a.expressionEvaluationFailed?this._renderErrorNotice(e.expressionEvaluationFailed):a.hasLayersWithContingentValues&&this.viewModel.features.length>1?this._renderErrorNotice(e.unsupportedContingentValues):"loading"===i&&this.visibleElements.loadingIndicator?ne("calcite-loader",{key:"loader",label:this.messagesCommon?.loading}):0!==this.features.length?this._renderForm():void 0}_renderErrorNotice(e,t="warning"){return ne("calcite-notice",{class:y.noticeError,icon:!0,kind:t,open:!0},ne("div",{slot:"message"},e))}_renderForm(){return ne("form",{class:y.form,id:this._formId,onsubmit:this._onFormSubmit},this._renderInvisibleFieldsError(),this._renderPage())}_renderPage(){switch(this.page){case"adding-attachments":return this._renderAttachmentAddPage();case"replacing-attachment":case"viewing-attachments":return this._renderAttachmentListPage();case"viewing-attachment-details":return this._renderAttachmentDetailPage();default:return this._renderFormContent()}}_renderInvisibleFieldsError(){const{viewModel:e}=this,{hasNonActiveInvalidFeatures:t,activeForm:a}=e;let i;if(!e.submitHasBeenAttempted)return null;if(a.invalidHiddenInputs.length>0)if(i=b(a,e.mode,this.messages),"batch"===this.viewModel.mode){const e=a.invalidHiddenInputs.filter(e=>"hidden:group-visibility-expression:all-features"===e.effectiveVisibilityCode||"hidden:visibility-expression:all-features"===e.visibilityCode);e.length>0?i+=` (${e.map(e=>e.label).join(", ")})`:i=null}else i+=` (${a.invalidHiddenInputs.map(e=>e.label).join(", ")})`;else if(t)return null;return i?this._renderErrorNotice(i,"danger"):null}_renderFormContent(){return this.viewModel.hasVisibleInputs?this.viewModel.activeForm.inputs.filter(e=>e.visible).map(e=>this._renderInput(e)):this._renderErrorNotice(this.messages.noVisibleFields[this.viewModel.noVisibleElementsReason])}_renderInput(e){return M(e)?this._renderGroupInput(e):E(e)?this._renderLabeledField(e):S(e)?this._renderTextComponent(e):O(e)?this._renderRelationshipElementInput(e):T(e)?this._renderAttachmentElementInput(e):V(e)?this._renderUtilityNetworkAssociationsElementInput(e):void 0}_renderGroupInput(e){const{inputs:t,template:a,open:i}=e,n=t.filter(e=>e.visible),l=a.label??"";return ne("calcite-block",{class:this.classes(y.group,"sequential"===this.groupDisplay?y.groupSequential:null,this.disabled?y.inputDisabled:null),collapsible:!0,description:a.description??void 0,disabled:this.effectiveDisabled,expanded:i,heading:l,headingLevel:this.headingLevel,key:`{${a.elementId}-key}`,label:l,onCalciteBlockClose:()=>{e.open=!1},onCalciteBlockOpen:()=>{e.open=!0}},n.map(e=>this._renderInput(e)))}_renderLabeledField(e){const{elementId:a}=e.template,{label:i,required:n,dataType:l}=e,s=n?t(this.messages.requiredFieldLabel,{name:i}):i;return ne("calcite-label",{"aria-label":s,class:y.label,key:`field--${a}`},ne("div",{class:y.labelTextContent,key:"labelTextContainer"},i,n?ne("span",{"aria-hidden":"true",title:this.messagesCommon.required},"*"):void 0),"unsupported"!==l?this._renderFieldInput(e):this._renderReadOnlyComponent(e),this._renderAuxiliaryText(e))}_renderFieldInput(e){const t=this.getCommonInputProps(e),{dataType:a}=e;return"date"===a?this._renderDateComponents(e,t):"coded-value"===e.domain?.type?this._renderCodedInputs({input:e,props:t}):null!==e.multipleChoiceChoices?this._renderMultipleChoiceComponent({input:e,props:t}):"number"===a?this._renderNumberComponent(e,t):this._renderStringComponent(e,t)}_renderAuxiliaryText(e){const{compositeError:t,description:a,submittable:i}=e,n=!i&&t&&(this.viewModel.submitHasBeenAttempted||this._touchedInputs.has(e.template.elementId))?C(e,t,this.messages):null;return n?ne("calcite-input-message",{icon:!0,status:"invalid"},n):a?ne("calcite-input-message",{class:y.description,icon:!1,status:"idle"},a):null}_renderCodedInputs({input:e,props:t}){const a=e.input?.type??null,i=e.codedValueOptions;switch(a){case"switch":return this._renderSwitchField({input:e,props:t});case"radio-buttons":return this._renderRadioButtonGroupComponent({input:e,options:i,props:t});default:return this._renderComboBoxComponent({options:i,props:t,input:e})}}_renderMultipleChoiceComponent({input:e,props:t}){const{messages:a}=this,{multipleChoiceChoices:i,multipleChoiceInput:n,multipleChoiceValues:l}=e;if(!n||!i||!l)return null;const s=!0===n.includeSelectAllChoices,o=new Map;let r=l.length>0,c=!1;for(const f of l){const t=P({input:e,choiceValue:f});o.set(f,t),(t.checked||t.indeterminate)&&(c=!0),t.checked||(r=!1)}const d={checked:r,indeterminate:!r&&c},m=d.checked?a.deselectAllLabel:a.selectAllLabel,h=e.getMultipleChoiceOtherChoiceRenderState(this.messages.otherOptionLabel),u=t=>{this._saveValueFromMultipleChoiceCheckbox({input:e,checkbox:t,isSelectAllCheckbox:!0})},p=t=>{this._saveValueFromMultipleChoiceCheckbox({input:e,checkbox:t})},g=t=>{const{fieldName:a}=h;a&&this._saveOtherChoiceCheckboxValue({input:e,isChecked:t.checked,otherChoiceFieldName:a})},v=t=>{this._saveValueFromMultipleChoiceTextInput({input:e,textInput:t,otherChoiceFieldName:h.fieldName})};return ne("div",{class:y.multipleChoiceInput,key:`${t.key}-multiple-choice-group`},s?this._renderMultipleChoiceSelectAllCheckbox({props:t,selectAllState:d,selectAllLabel:m,handleSelectAllCheckboxChange:u}):null,this._renderMultipleChoiceChoiceCheckboxes({input:e,props:t,checkboxStatesByValue:o,handleChoiceCheckboxChange:p}),h.shouldShow?this._renderMultipleChoiceOtherChoice({props:t,includeSelectAllChoices:s,otherChoiceRenderState:h,handleOtherChoiceCheckboxChange:g,handleOtherChoiceInputChange:v,differentValuesPlaceholder:a.differentValuesPlaceholder}):null)}_renderMultipleChoiceSelectAllCheckbox({props:e,selectAllState:t,selectAllLabel:a,handleSelectAllCheckboxChange:i}){return ne("calcite-checkbox",{afterCreate:e.afterCreate,afterUpdate:e.afterUpdate,"aria-invalid":e["aria-invalid"],checked:t.checked,class:y.multipleChoiceSelectAll,"data-element-id":e[oe],disabled:e.readOnly,indeterminate:t.indeterminate,key:`${e.key}-select-all`,label:a,labelText:a,value:re,onblur:e.onblur,onCalciteCheckboxChange:({currentTarget:e})=>i(e),onfocus:e.onfocus})}_renderMultipleChoiceChoiceCheckboxes({input:e,props:t,checkboxStatesByValue:a,handleChoiceCheckboxChange:i}){const{multipleChoiceChoices:n}=e;return n?n.map(e=>{const n=a.get(e.value)??{checked:!1,indeterminate:!1};return ne("calcite-checkbox",{afterCreate:t.afterCreate,afterUpdate:t.afterUpdate,"aria-invalid":t["aria-invalid"],checked:n.checked,class:t.class,"data-element-id":t[oe],disabled:t.readOnly,indeterminate:n.indeterminate,key:`${t.key}-${e.value}`,label:e.label,labelText:e.label,required:t.required,value:e.value,onblur:t.onblur,onCalciteCheckboxChange:({currentTarget:e})=>i(e),onfocus:t.onfocus})}):[]}_renderMultipleChoiceOtherChoice({props:e,includeSelectAllChoices:t,otherChoiceRenderState:a,handleOtherChoiceCheckboxChange:i,handleOtherChoiceInputChange:n,differentValuesPlaceholder:l}){return ne("div",{class:this.classes(y.multipleChoiceOtherChoice,t?y.multipleChoiceOtherChoiceWithSelectAll:null),key:`${e.key}-other-choice`},ne("calcite-checkbox",{afterCreate:e.afterCreate,afterUpdate:e.afterUpdate,"aria-invalid":e["aria-invalid"],checked:a.checkboxState.checked,class:e.class,"data-element-id":e[oe],disabled:e.readOnly,indeterminate:a.checkboxState.indeterminate,key:`${e.key}-other-choice-checkbox`,label:a.label,labelText:a.label,value:ce,onblur:e.onblur,onCalciteCheckboxChange:({currentTarget:e})=>i(e),onfocus:e.onfocus}),a.checkboxState.checked?ne("calcite-input",{afterCreate:e.afterCreate,afterUpdate:e.afterUpdate,"aria-invalid":e["aria-invalid"],"aria-label":a.label,class:y.textElementInput,"data-element-id":e[oe],disabled:e.readOnly,key:`${e.key}-other-choice-input`,maxLength:a.maxLength,placeholder:a.value===L?l:a.hint,required:e.required,type:"text",value:a.normalizedValue===L?"":a.normalizedValue?String(a.normalizedValue):"",onblur:e.onblur,onCalciteInputInput:({currentTarget:e})=>n(e),onfocus:e.onfocus}):null)}async _saveValueFromMultipleChoiceCheckbox({input:e,checkbox:t,isSelectAllCheckbox:a=!1}){if(this._markFieldInputTouched(e),e.multipleChoiceInput&&!a&&"batch"===this.viewModel.mode)return void await this._saveMultipleChoiceCheckboxValueByFeature({input:e,checkbox:t});const i=e.value,n=this._parseValue(t,e,a);n!==i&&await this.viewModel.setValue(e.template.elementId,n)}async _saveValueFromMultipleChoiceTextInput({input:e,textInput:t,otherChoiceFieldName:a}){if(!a)return;const i=t.value,n=null==i||""===i?null:i;e.initializeExplicitMultipleChoiceOtherChoiceCheckedState(),e.stashMultipleChoiceOtherChoiceDraftValueForFeatures(e.features,n);const l=e.features.toArray().filter(e=>e.getAttribute(a)!==n);if(0!==l.length){for(const e of l)e.setAttribute(a,n);this.viewModel.userHasChangedValues=!0,await e.expressionsManager.valueChanged(a,l),this.viewModel.emit("value-change",{features:l.map(e=>e.source),fieldName:a,name:"value-change",value:n})}}async _saveOtherChoiceCheckboxValue({input:e,isChecked:t,otherChoiceFieldName:a}){e.setExplicitMultipleChoiceOtherChoiceCheckedState(t),this._markFieldInputTouched(e),t||e.setMultipleChoiceOtherChoiceDraftValuesFromFeatures(e.features.toArray());const i=e.features.toArray().filter(i=>{const n=i.getAttribute(a);if(t){if(!se(n))return!1;const t=e.getMultipleChoiceOtherChoiceDraftValue(i),l=j(t)?t:U;return i.setAttribute(a,l),!0}return null!=n&&(i.setAttribute(a,null),!0)});0!==i.length&&(this.viewModel.userHasChangedValues=!0,await e.expressionsManager.valueChanged(a,i),this.viewModel.emit("value-change",{features:i.map(e=>e.source),fieldName:a,name:"value-change",value:this._getFieldValueByFieldNameForInput(e,a)}))}async _saveMultipleChoiceCheckboxValueByFeature({input:e,checkbox:t}){if(!e.multipleChoiceInput||!e.multipleChoiceValues)return;const a=e.features.toArray().filter(a=>{const i=a.getAttribute(e.fieldName),n=N({input:e,choiceValue:t.value,currentValue:i,isChecked:t.checked});return i!==n&&(a.setAttribute(e.fieldName,n),!0)});0!==a.length&&(this.viewModel.userHasChangedValues=!0,await e.expressionsManager.valueChanged(e.fieldName,a),this.viewModel.emit("value-change",{features:a.map(e=>e.source),fieldName:e.fieldName,name:"value-change",value:this._getFieldValueByFieldNameForInput(e,e.fieldName)}))}_getFieldValueByFieldNameForInput(e,t){const a=e.features.toArray().map(e=>e.getAttribute(t));if(0===a.length)return null;const[i]=a;return a.every(e=>e===i)?i:L}_renderSwitchField({input:e,props:t}){if((this._batchSwitchInputInitialValues.get(e)===L||e.value===L)&&"batch"===this.viewModel.mode){const a={dropdown:{afterCreate:this._afterComponentCreateOrUpdate,afterUpdate:this._afterComponentCreateOrUpdate,disabled:t.readOnly,open:!1,[oe]:t[oe]},trigger:{appearance:"transparent",iconEnd:"chevron-down",kind:"neutral",slot:"trigger",label:t.label},group:{mode:"single"}};return this._renderDropdownComponent({buttonValue:e.value,dropdownProps:a,options:[{name:this.messages.differentValuesPlaceholder,value:L,disabled:!0},...e.codedValueDomainOptions]})}return this._renderSwitchComponent({input:e,props:t})}_renderSwitchComponent({input:e,props:t}){return ne("calcite-switch",{...t,checked:!!_(e.template,"switch")&&e.value===e.template.input.onValue,class:y.inputSwitch,disabled:t.readOnly,onblur:()=>{this._focusedFieldInput=null},onCalciteSwitchChange:({currentTarget:e})=>this._saveInput(e)})}_renderDropdownComponent({buttonValue:e,options:t,dropdownProps:a}){const{trigger:i,dropdown:n,group:l}=a;return ne("calcite-dropdown",{...n,topLayerDisabled:this.topLayerDisabled,onblur:()=>{this._focusedFieldInput=null},onCalciteDropdownSelect:({currentTarget:e})=>this._saveInput(e),onfocus:this._onComponentFocus},ne("calcite-button",{...i},e===L?this.messages.differentValuesPlaceholder:e),ne("calcite-dropdown-group",{selectionMode:l.mode},t.map(t=>ne("calcite-dropdown-item",{disabled:t.disabled,label:String(t.name),selected:e===t.value},t.name))))}_renderComboBoxComponent({input:e,options:t,props:a}){const i="INSERT"===this.viewModel.editType,n=this._touchedInputs.has(e?.template?.elementId),l=i&&e.showNoValueOptionEnabled&&!n?()=>{}:a.onblur,s={...a,onblur:l};return ne("calcite-combobox",{...s,selectionMode:"single",topLayerDisabled:this.topLayerDisabled,value:a.placeholder===this.messages.differentValuesPlaceholder?L:String(a.value),onCalciteComboboxChange:({currentTarget:e})=>{e.value!==L&&this._saveInput(e)}},this.renderComboboxOptionsList({input:e,options:t,props:a}))}renderComboboxOptionsList({input:e,options:t,props:a}){const i=e=>e.map(e=>{const{value:t}=e,i=se(e.value)?this.messages.empty:e.name;return ne("calcite-combobox-item",{heading:i,key:`#${t}`,selected:a.value===t,value:`${t}`})});let n=[];const{messages:l}=this;t.other.length>0&&n.push(ne("calcite-combobox-item-group",{key:"other",label:l.other},i(t.other))),t.unsupported.length>0&&n.push(ne("calcite-combobox-item-group",{key:"unsupported",label:l.unsupported},i(t.unsupported)));const s=i(t.recommended);n.length>0?n.unshift(ne("calcite-combobox-item-group",{key:"recommended",label:l.recommended},s)):n=s;const o=a.placeholder===this.messages.differentValuesPlaceholder,r=!o&&se(a.value);return e.showNoValueOptionEnabled&&!t.containsEmptyOption&&n.unshift(ne("calcite-combobox-item",{heading:e.showNoValueLabel||this.messages.empty,key:"empty-option",selected:r,value:""})),o&&n.unshift(ne("calcite-combobox-item",{heading:this.messages.differentValuesPlaceholder,key:L,selected:!0,value:L})),n}_renderRadioButtonGroupComponent({input:e,options:t,props:a}){const i=[...t.recommended,...t.other,...t.unsupported].map(({name:t,value:i})=>this._renderRadioButtons({label:t,value:i,selected:i===e.value,props:a}));if(e.showNoValueOptionEnabled&&!t.containsEmptyOption){const t="",n=e.showNoValueLabel||this.messages.empty,l=se(e.value);i.unshift(this._renderRadioButtons({label:n,value:t,selected:l,props:a}))}return ne("calcite-radio-button-group",{afterCreate:this._afterRadioGroupCreateOrUpdate,afterUpdate:this._afterRadioGroupCreateOrUpdate,class:y.inputRadioGroup,disabled:a.readOnly,key:`${a.key}-radio-group`,layout:"vertical",name:a.name,required:a.required},i,a.placeholder===this.messages.differentValuesPlaceholder?ne("calcite-label",{class:y.placeholderRadio,key:a.label,layout:"inline"},ne("calcite-radio-button",{checked:!0,class:y.inputRadio,disabled:!0,name:a.placeholder,value:a.placeholder}),a.placeholder):null)}_renderRadioButtons({value:e,selected:t,label:a,props:i}){return ne("calcite-label",{class:y.inputRadioLabel,key:i.label,layout:"inline"},ne("calcite-radio-button",{...i,afterCreate:void 0,afterUpdate:void 0,checked:t,class:y.inputRadio,disabled:i.readOnly,name:i.label,value:e,onblur:()=>{this._focusedFieldInput=null},onCalciteRadioButtonChange:({currentTarget:e})=>{e.checked&&this._saveInput(e)}}),a)}_renderStringComponent(e,t){const{template:a}=e;return!a.field.editable||this.readOnly?this._renderReadOnlyComponent(e):"text-area"===a.input?.type?ne("calcite-text-area",{...t,class:this.classes(y.individualElement),resize:"vertical",value:t.value?String(t.value):"",onCalciteTextAreaInput:({currentTarget:e})=>this._saveInput(e)}):ne("calcite-input",{...t,class:this.classes(y.individualElement),type:"text",value:t.value?String(t.value):"",onCalciteInputInput:({currentTarget:e})=>this._saveInput(e)})}_renderNumberComponent(e,t){const a=m(e.field);return ne("calcite-input-number",{...t,integer:a,type:"number",value:a&&""!==t.value?Math.round(parseFloat(String(t.value))).toString():String(t.value),onCalciteInputNumberInput:({currentTarget:e})=>this._saveInput(e)})}_renderReadOnlyComponent(e,t){const a=this.getCommonInputProps(e);return ne("calcite-input",{...a,class:this.classes(y.fieldInput,y.inputDisabled,y.individualElement),readOnly:!0,type:"text",value:String(t??a.value??"")})}_renderDateComponents(e,t){const{field:a}=e;let i;switch(a.type){case"date":i=this._renderDateFieldComponents(e,t);break;case"date-only":i=this._renderDateOnlyFieldComponent(e,t);break;case"time-only":i=this._renderTimeOnlyFieldComponent(e,t);break;case"timestamp-offset":i=this._renderTimestampOffsetFieldComponents(e,t);break;default:i=this._renderReadOnlyComponent(e,G(a,t.value,{timeZone:e.effectiveTimeZone,...W(e.template.field)}))}return e.value===L?[i,ne("calcite-input-message",{icon:"information",key:"diff-values-message",status:"idle"},this.messages.differentValues)]:i}_renderDateOnlyFieldComponent(e,t){const{class:a,key:i,readOnly:n}=t,{rawMax:l,rawMin:s}=e.range;return ne("calcite-input-date-picker",{afterCreate:this._afterDateComponentCreate,afterUpdate:this._afterComponentCreateOrUpdate,class:a,"data-date-part":"date","data-element-id":t[oe],key:`${i}-date-input`,max:h(l)?l:void 0,min:h(s)?s:void 0,overlayPositioning:"fixed",readOnly:n,topLayerDisabled:this.topLayerDisabled,value:e.value===L?"":e.value?String(e.value):"",onblur:()=>{this._focusedFieldInput=null},onCalciteInputDatePickerChange:t=>this._saveValueFromDateComponent(e,t.currentTarget),onfocus:this._onComponentFocus})}_renderTimeOnlyFieldComponent(e,t){const{class:a,key:i,readOnly:n}=t;return ne("calcite-input-time-picker",{afterCreate:this._afterDateComponentCreate,afterUpdate:this._afterComponentCreateOrUpdate,class:a,"data-date-part":"time","data-element-id":t[oe],key:`${i}-time-input`,overlayPositioning:"fixed",readOnly:n,value:e.value===L?"":e.value?String(e.value):"",onblur:()=>{this._focusedFieldInput=null},onCalciteInputTimePickerChange:t=>this._saveValueFromDateComponent(e,t.currentTarget),onfocus:this._onComponentFocus})}_renderTimestampOffsetFieldComponents(e,t){const{class:a,key:i,readOnly:n}=t,{rawMax:l,rawMin:s}=e.range,o=K(l),r=K(s),c=K(e.value===L?"":e.value),d=e.includeTimeOffset,m={afterCreate:this._afterDateComponentCreate,afterUpdate:this._afterComponentCreateOrUpdate,overlayPositioning:"fixed",readOnly:n,[oe]:t[oe],onfocus:this._onComponentFocus};return ne("div",{class:y.dateInputContainer,key:`${i}-date-time-container`},ne("calcite-input-date-picker",{...m,class:a,"data-date-part":"date",key:`${i}-date-input`,max:o?.date??void 0,min:r?.date??void 0,topLayerDisabled:this.topLayerDisabled,value:c.date??"",onblur:()=>{this._focusedFieldInput=null},onCalciteInputDatePickerChange:t=>this._saveValueFromDateComponent(e,t.target)}),ne("calcite-input-time-picker",{...m,class:a,"data-date-part":"time",key:`${i}-time-input`,value:c.time??"",onblur:()=>{this._focusedFieldInput=null},onCalciteInputTimePickerChange:t=>this._saveValueFromDateComponent(e,t.target)}),d?ne("calcite-input-time-zone",{...m,class:a,clearable:e.value===L||null==e.value,"data-date-part":"timeZone",key:`${i}-timezone-input`,value:c.timeZoneOffset||"",onblur:()=>{this._focusedFieldInput=null},onCalciteInputTimeZoneChange:t=>this._saveValueFromDateComponent(e,t.target)}):null)}_renderDateFieldComponents(e,t){const{class:a,key:i,readOnly:n,min:l,max:s}=t,o=e.effectiveTimeZone,r=X(e.value===L?"":e.value,o),c=X(s,o),d=X(l,o),m=e.includeTime,h={afterCreate:this._afterDateComponentCreate,afterUpdate:this._afterComponentCreateOrUpdate,overlayPositioning:"fixed",readOnly:n,[oe]:t[oe],onfocus:this._onComponentFocus};return ne("div",{class:y.dateInputContainer,key:`${i}-date-time-container`},ne("calcite-input-date-picker",{...h,class:a,"data-date-part":"date",key:`${i}-date-input`,max:c?.date??void 0,min:d?.date??void 0,topLayerDisabled:this.topLayerDisabled,value:r.date??"",onblur:()=>{this._focusedFieldInput=null},onCalciteInputDatePickerChange:t=>this._saveValueFromDateComponent(e,t.target)}),m?ne("calcite-input-time-picker",{...h,"data-date-part":"time",key:`${i}-time-input`,step:1,value:r.time??"",onblur:()=>{this._focusedFieldInput=null},onCalciteInputTimePickerChange:t=>{this._saveValueFromDateComponent(e,t.target)}}):null)}_renderRelationshipElementInput(e){return this._relatedRecordsEnabled?ne(H,{input:e,messages:this.messages,messagesCommon:this.messagesCommon,viewModel:this.viewModel}):null}_renderAttachmentElementInput(e){const{allAttachmentsVisibleOnDefaultPage:t,attachments:a,defaultPageAttachments:i,template:{description:n,elementId:l,label:s}}=e,o=t?a:i;return ne("div",{class:y.attachmentElementInput,"data-testid":`attachment-element-${l}`,key:`attachment-element-${l}`},s?ne("div",{class:y.attachmentElementLabel,key:`attachment-element-label-${l}`},s):null,n?ne("div",{class:y.description,key:`attachment-element-description-${l}`},n):null,a.length?this._renderAttachmentList(e,o,{label:s||this.messagesCommon.details,viewAllCount:t?null:a.length}):ne("div",{class:y.attachmentElementEmptyState,key:`attachment-element-empty-state-${l}`},this.messages.attachments.noAttachments),this._renderAttachmentAddAction(e))}_renderAttachmentListPage(){const e=this.viewModel.selectedAttachmentListInput;if(e)return ne("div",{class:y.attachmentElementAllPanel,key:`attachment-element-all-panel-${e.template.elementId}`},this._renderAttachmentList(e,e.attachments,{filterEnabled:!0,label:this.messages.titles.attachments}))}_renderAttachmentList(e,t,a){const{filterEnabled:i,label:n,viewAllCount:l}=a;return ne("calcite-list",{class:y.attachmentElementList,filterEnabled:i,filterPlaceholder:i?this.messages.attachments.searchAttachments:void 0,filterProps:i?te:void 0,filterText:i?this._attachmentListFilterText:void 0,label:n,selectionAppearance:"border",selectionMode:"none",onCalciteListFilter:i?e=>{this._attachmentListFilterText=e.currentTarget.filterText??""}:void 0},this._renderAttachmentListItems(e,t),null!=l?this._renderViewAllAttachmentsItem(e,l):null)}_renderAttachmentListItems(e,t){const{elementId:a}=e.template;return t.map((t,i)=>{const n=this._formatAttachmentSize(t.size),l=this._getAttachmentLabel(t,i,n,e.displayFilename),s=l===n?void 0:n,o=v(t),r=e.isStagedAttachmentAddition(t),c=e.getAttachmentEditState(t),d=r||c.isRenamed||c.isReplaced;return ne("calcite-list-item",{class:y.attachmentElementListItem,description:s,key:`attachment-item-${o}`,label:l,onCalciteListItemSelect:r?void 0:()=>this._setSelectedAttachment({attachmentKey:o,elementId:a})},ne("div",{class:y.attachmentElementListItemStart,slot:"content-start"},this._renderAttachmentPreviewThumbnail(t,l,e)),d?ne("span",{class:y.attachmentElementListItemStagedIndicator,slot:"content-end"}):null,r?[ne("calcite-action",{disabled:this.effectiveDisabled,icon:"x",scale:"s",slot:"actions-end",text:this.messagesCommon.delete,title:this.messagesCommon.delete,onclick:()=>this.viewModel.stageDeleteAttachment(a,t.globalId)})]:ne("calcite-action",{icon:"chevron-right",scale:"s",slot:"actions-end",text:l,title:l}))})}_renderViewAllAttachmentsItem(e,a){const{elementId:i}=e.template,{viewAll:n}=this.messages.attachments;return ne("calcite-list-item",{class:y.attachmentElementListItem,description:t(this.messages.attachments.count,{count:a}),key:`attachment-item-view-all-${i}`,label:n,onCalciteListItemSelect:()=>this._setAttachmentListElementId(i)},ne("calcite-action",{icon:"chevron-right",scale:"s",slot:"actions-end",text:n,title:n}))}_renderAttachmentAddAction(e){const{elementId:t}=e.template,a=this.effectiveDisabled||e.addDisabled;return ne("div",{class:y.attachmentElementEmptyAction,key:`attachment-element-empty-action-${t}`},ne("calcite-button",{appearance:"outline",disabled:a,iconStart:"attachment",kind:"neutral",round:!0,scale:"s",onclick:()=>this._setAttachmentAddElementId(t)},this.messages.attachments.attach))}_renderAttachmentAddPage(){const e=this.viewModel.selectedAttachmentAddInput;return e?this._renderAttachmentAddPanel(e):null}_renderAttachmentAddPanel(e){const{maxAttachmentCount:t}=e,{elementId:a}=e.template,i=null==t||t-e.attachments.length>1,n=this.effectiveDisabled||e.addDisabled,l=this.messages.attachments,s=l.dragAndDropFile,o="upload",r=e=>{this._attachmentFileInputMap.set(a,e)};return ne("div",{class:y.attachmentElementAddPanel,key:`attachment-element-add-panel-${a}`},ne("input",{accept:e.accept,afterCreate:r,afterRemoved:()=>{this._attachmentFileInputMap.delete(a)},afterUpdate:r,class:y.attachmentElementFileInput,"data-element-id":a,disabled:n,multiple:i,type:"file",onchange:e=>{const t=e.currentTarget,i=t.files?Array.from(t.files):[];this._stageAttachmentFiles(a,i),t.value=""}}),ne("div",{class:y.attachmentElementAddDropzone,"data-disabled":n?"true":"false",ondragover:e=>{e.preventDefault()},ondrop:e=>{if(e.preventDefault(),n)return;const t=e.dataTransfer?.files?Array.from(e.dataTransfer.files):[];this._stageAttachmentFiles(a,t)}},ne("calcite-icon",{class:y.attachmentElementAddDropzoneIcon,icon:o,scale:"l"}),ne("div",{class:y.attachmentElementAddDropzoneHeading},l.addFile),ne("div",{class:y.attachmentElementAddDropzoneDetail,title:s},s),ne("calcite-button",{appearance:"outline-fill",disabled:n,iconStart:"folder-open",scale:"s",type:"button",onclick:e=>{e.stopPropagation(),this._openAttachmentFilePicker(a,n)}},l.selectFile)))}async _stageAttachmentFiles(e,t){if(0!==t.length)try{await this.viewModel.stageAddAttachments(e,t)}finally{this.viewModel.setSelectedAttachmentAddElementId(null)}}_openAttachmentFilePicker(e,t){t||this._attachmentFileInputMap.get(e)?.click()}_renderAttachmentDetailPage(){const e=this.selectedAttachmentDetails;if(!e)return;if("replacing-attachment"===this.page)return this._renderAttachmentReplacePanel(e);const{attachment:t,input:a}=e,i=v(t),n=!!a.getAttachmentPreviewUrl(t),l=a.getAttachmentEditState(t),s=!this.readOnly&&!this.effectiveDisabled;return ne("div",{class:y.attachmentElementDetail,key:`attachment-detail-panel-${a.template.elementId}-${i}`},ne("div",{class:y.attachmentElementDetailPreview},this._renderAttachmentPreviewImageForInput(t,a)),ne("div",{class:y.attachmentElementDetailActions},ne("calcite-button",{appearance:"outline",disabled:!n,iconStart:"download-to",kind:"neutral",scale:"s",onclick:()=>{this._downloadAttachment(t)}},this.messages.attachments.download),f(t)?ne("calcite-button",{appearance:"outline",disabled:!n,iconStart:"expand",kind:"neutral",label:this.messages.attachments.maximize,scale:"m",title:this.messages.attachments.maximize,onclick:this._maximizeSelectedAttachment}):null,ne("calcite-button",{appearance:"outline",disabled:!n,iconStart:"download",kind:"neutral",label:this.messages.attachments.download,scale:"m",title:this.messages.attachments.download,onclick:()=>{this._downloadAttachment(t)}}),ne("calcite-button",{appearance:"outline",disabled:!s,iconStart:"upload-to",kind:"neutral",label:this.messages.attachments.replace,scale:"m",title:this.messages.attachments.replace,onclick:this._enterAttachmentReplaceView})),ne("div",{class:y.attachmentElementDetailMetadata},ne("div",{class:y.attachmentElementDetailMetadataGroup},ne("span",{class:y.attachmentElementDetailMetadataLabel},this.messages.attachments.fileName),a.allowUserRename?ne("div",{class:y.attachmentElementDetailFileNameRow},ne("calcite-input",{class:y.attachmentElementDetailFileNameInput,disabled:!s,scale:"m",value:t.name||"",onCalciteInputInput:({currentTarget:e})=>this._renameSelectedAttachment(e.value)}),ne("calcite-button",{appearance:"transparent",disabled:!s||null==l.initialName||!l.isRenamed,iconStart:"reset",kind:"neutral",scale:"m",title:this.messages.footerButtons.reset,onclick:this._resetSelectedAttachmentName})):ne("span",{class:y.attachmentElementDetailMetadataValue},t.name)),ne("div",{class:y.attachmentElementDetailMetadataGroup},ne("span",{class:y.attachmentElementDetailMetadataLabel},this.messages.attachments.size),ne("span",{class:y.attachmentElementDetailMetadataValue},this._formatAttachmentSize(t.size))),ne("div",{class:y.attachmentElementDetailMetadataGroup},ne("span",{class:y.attachmentElementDetailMetadataLabel},this.messages.attachments.type),ne("span",{class:y.attachmentElementDetailMetadataValue},this._getLabelForAttachmentType(t)))))}_renderAttachmentReplacePanel(e){const{attachment:t,input:a}=e,i=this.readOnly||this.effectiveDisabled,n=a.template.elementId;return ne("div",{class:y.attachmentElementAddPanel,key:`attachment-replace-panel-${n}-${v(t)}`},ne("input",{accept:a.accept,afterCreate:this._setSelectedAttachmentReplaceFileInput,afterRemoved:()=>{this._selectedAttachmentReplaceFileInput=null},afterUpdate:this._setSelectedAttachmentReplaceFileInput,class:y.attachmentElementFileInput,disabled:i,type:"file",onchange:e=>{const t=e.currentTarget,a=t.files?.[0];a&&this._stageSelectedAttachmentReplacement(a),t.value=""}}),ne("div",{class:y.attachmentElementAddDropzone,"data-disabled":i?"true":"false",ondragover:e=>{e.preventDefault()},ondrop:e=>{if(e.preventDefault(),i)return;const t=e.dataTransfer?.files?.[0];t&&this._stageSelectedAttachmentReplacement(t)}},ne("calcite-icon",{class:y.attachmentElementAddDropzoneIcon,icon:"refresh",scale:"l"}),ne("div",{class:y.attachmentElementAddDropzoneHeading},this.messages.attachments.replace),ne("div",{class:y.attachmentElementAddDropzoneDetail,title:this.messages.attachments.dragAndDropFile},this.messages.attachments.dragAndDropFile),ne("calcite-button",{appearance:"outline-fill",disabled:i,iconStart:"folder-open",scale:"s",onclick:e=>{e.stopPropagation(),this._openSelectedAttachmentReplaceFilePicker()}},this.messages.attachments.selectFile)),ne("div",{class:y.attachmentElementDetailMetadata},ne("div",{class:y.attachmentElementDetailMetadataGroup},ne("span",{class:y.attachmentElementDetailMetadataLabel},this.messages.attachments.fileToBeReplaced),ne("span",{class:y.attachmentElementDetailMetadataValue},t.name))))}_renderAttachmentDialog(){const e=this._attachmentDialogInfo;if(!e)return null;const{attachment:t,input:a}=e;return ne("calcite-dialog",{heading:t.name||this.messagesCommon.details,key:"attachment-preview-dialog",modal:!0,open:!0,placement:"cover",width:"l",onCalciteDialogClose:this._closeAttachmentDialog},ne("div",{class:y.attachmentElementDetailPreview},this._renderAttachmentPreviewImageForInput(t,a)))}_setSelectedAttachment(e){this.viewModel.setSelectedAttachment(e),e||this.hideAttachmentDialog()}_setAttachmentAddElementId(e){this.viewModel.setSelectedAttachmentAddElementId(e),this.hideAttachmentDialog()}_setAttachmentListElementId(e){this.viewModel.setSelectedAttachmentListElementId(e),this.hideAttachmentDialog()}_getAttachmentLabel(e,a,i,n){return!1!==n&&h(e.name)&&e.name.length>0?e.name:i!==this.messagesCommon.notApplicable?i:t(this.messages.attachments.attachmentNumberedLabel,{index:a+1})}_formatAttachmentSize(e){return null==e||Number.isNaN(e)?this.messagesCommon.notApplicable:r(this.messagesUnits,e)}_getLabelForAttachmentType({contentType:e}){if(!e)return this.messagesCommon.notApplicable;const t=this.messages.attachments.attachmentTypes,a=p(e);return t?.[a]||e}_renderAttachmentPreviewThumbnail(e,t,a){const i=a.getAttachmentPreviewUrl(e,64);return i&&f(e)?ne("img",{alt:t,class:y.attachmentElementListItemThumb,src:i}):ne("calcite-icon",{class:y.attachmentElementListItemIcon,icon:g(e.contentType),scale:"s"})}_renderAttachmentPreviewImageForInput(e,t){const a=t.getAttachmentPreviewUrl(e),i=e.name||this.messagesCommon.details;return a&&f(e)?ne("img",{alt:i,class:y.attachmentElementDetailPreviewImage,src:a,title:i}):[ne("calcite-icon",{class:y.attachmentElementDetailPreviewIcon,icon:g(e.contentType),scale:"l",textLabel:i,title:i}),this.messages.attachments.noPreviewAvailable]}async _downloadAttachment(e){await Z(e)}_exitAttachmentReplaceView(){this.viewModel.setShowingSelectedAttachmentReplacePage(!1),this._selectedAttachmentReplaceFileInput=null}async _stageSelectedAttachmentReplacement(e){const t=this.selectedAttachmentDetails,a=t?.attachment.globalId;if(t&&a)try{await this.viewModel.stageReplaceAttachment(t.input.template.elementId,a,e)}finally{this._exitAttachmentReplaceView()}}_renameSelectedAttachment(e){const t=this.selectedAttachmentDetails,a=t?.attachment.globalId;t&&a&&this.viewModel.stageRenameAttachment(t.input.template.elementId,a,e)}_isSelectedAttachmentDeleteDisabled(){const e=this.selectedAttachmentDetails;if(!e)return!1;if(this.readOnly||this.effectiveDisabled)return!0;const t=e.input.minAttachmentCount;return null!=t&&e.input.attachments.length<=t}hideAttachmentDialog(){this._attachmentDialogInfo=null}_renderTextComponent(e){const{elementId:t}=e.template;return ne("div",{class:y.textElementInput,"data-testid":`text-element-${t}`,innerHTML:e.text,key:`text-element-${t}`})}_renderUtilityNetworkAssociationsElementInput(e){if(!this._associationsEnabled)return;const{elementId:t}=e.template;return ne("div",{class:y.utilityNetworkAssociationsElementInput,"data-testid":t,key:t})}getCommonInputProps(e){const{template:t,valid:a,value:i,minLength:n,maxLength:l,required:s,fieldName:o,editable:r,userHasChangedValue:c,range:{max:d,min:m}}=e,h=!r||this.readOnly,u=!h&&this.effectiveDisabled;let p=t.hint??void 0,g=!1;return i===L&&(p=this.messages.differentValuesPlaceholder,g=!0),{afterCreate:this._afterComponentCreateOrUpdate,afterUpdate:this._afterComponentCreateOrUpdate,"aria-invalid":a?"false":"true",class:this.classes(y.fieldInput,h?y.inputDisabled:null),status:!c&&!this.viewModel.submitHasBeenAttempted||a?"idle":"invalid",maxLength:l&&l>-1?l:void 0,minLength:n&&n>-1?n:void 0,key:t.elementId,label:o,name:o,max:null!=d?d:void 0,min:null!=m?m:void 0,disabled:u,readOnly:h,onblur:this._onComponentBlur,required:s,placeholder:p,value:g?"":i??"",[oe]:t.elementId,onfocus:this._onComponentFocus}}_onFormSubmit(e){e.preventDefault()}_getFieldInputFromHTMLElement(e){return this.viewModel.findFieldInput(e.getAttribute(oe))}_afterRadioGroupCreateOrUpdate(e){const t=e.selectedItem,a=e.querySelector("calcite-radio-button"),i=t||a;i&&this._afterComponentCreateOrUpdate(i)}_onComponentFocus(e){const t=e.target,a=this._getFieldInputFromHTMLElement(t);this._isMultipleChoiceCheckbox(t,a)||this._markFieldInputTouched(a),this._focusedFieldInput=a}_markFieldInputTouched(e){this._touchedInputs.add(e.template.elementId)}_isMultipleChoiceCheckbox(e,t){return"CALCITE-CHECKBOX"===e.tagName&&null!=t.multipleChoiceInput}_afterComponentCreateOrUpdate(e){const t=this._getFieldInputFromHTMLElement(e),a=this._focusedFieldInput;this._attemptFocusOnNextRender&&a===t&&(this._attemptFocusOnNextRender=!1,le(e))}_onComponentBlur(){this._focusedFieldInput=null}_resetTransientFormState(){this._attemptFocusOnNextRender=!1,this._focusedFieldInput=null,this._attachmentDialogInfo=null,this._selectedAttachmentReplaceFileInput=null,this._attachmentListFilterText="",this._attachmentFileInputMap.clear()}_parseValue(e,t,a=!1){const i=t.multipleChoiceInput,n=t.multipleChoiceValues;if(i&&n){const l=i.choiceDelimiter,s=e;if(a){return B({input:t}).checked?null:n.length>0?n.join(l):null}const o=$(t.value,l).filter(e=>e!==L),r=new Set(o);s.checked?r.add(s.value):r.delete(s.value);const c=n.filter(e=>r.has(e));return c.length?c.join(l):null}if(_(t.template,"switch")){if("calcite-dropdown"===e.localName&&t.domain)for(const a of t.domain.codedValues)if(a.name===e.selectedItems[0].textContent)return a.code;return e.checked?t.template.input.onValue:t.template.input.offValue}const l=e.value;return null==l||""===l?null:"number"===t.dataType?"-0"===l||"-0."===l||"-0,"===l?l:parseFloat(l):"date"===t.field.type?parseFloat(l):l}_saveInput(e){const t=this._getFieldInputFromHTMLElement(e),{elementId:a}=t.template;if(!t)return;const i=t?.value;if(_(t.template,"switch")&&"single"!==this.viewModel.mode){const e=n(this._batchSwitchInputInitialValues,t,()=>t.value);this._batchSwitchInputInitialValues.set(t,null===e?i:e)}const l=this._parseValue(e,t);l!==i&&this.viewModel.setValue(a,l)}_afterDateComponentCreate(e){this._setDateTimeTimeZoneMap(e),this._afterComponentCreateOrUpdate(e)}_saveValueFromDateComponent(e,t){const{elementId:a}=e.template,i=e.field.type,n=this._dateComponentMap.get(`${a}`);if(!n)return;const l=e.effectiveTimeZone;let s=e.value===L?void 0:e.value,o=null;"date-only"===i?o=Array.isArray(t.value)?t.value[0]:t.value:"time-only"===i?(s=J(s),o=J(t.value)):o="timestamp-offset"===i?null!=t.value?Q({dateComponent:n.date,timeComponent:n.time,oldValue:s,timeZoneComponent:n.timeZone,defaultTimeZone:l}):null:null!=t.value?Y({oldValue:s,dateComponent:n.date,timeZone:l,timeComponent:n.time?.value===L?void 0:n.time}):null,s!==o&&(null!==o&&t.value?this.viewModel.setValue(`${a}`,o):this.viewModel.setValue(`${a}`,null))}};e([c()],de.prototype,"activeFeatureIndex",null),e([c()],de.prototype,"callbacks",null),e([c()],de.prototype,"disabled",null),e([c()],de.prototype,"effectiveTitle",null),e([c()],de.prototype,"effectiveDisabled",null),e([c()],de.prototype,"features",null),e([c()],de.prototype,"footerButtonInfos",null),e([c()],de.prototype,"footerNoticeInfos",null),e([c()],de.prototype,"map",null),e([c()],de.prototype,"maximumFeatureCount",null),e([c()],de.prototype,"maximumFeatureCountWithComplexForms",null),e([c()],de.prototype,"spatialReference",null),e([c()],de.prototype,"layerInfos",null),e([c()],de.prototype,"timeZone",null),e([c()],de.prototype,"headingLevel",void 0),e([c()],de.prototype,"icon",null),e([c(),ae("esri/t9n/common")],de.prototype,"messagesCommon",void 0),e([c(),ae("esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm")],de.prototype,"messages",void 0),e([c(),ae("esri/core/t9n/Units")],de.prototype,"messagesUnits",void 0),e([c()],de.prototype,"page",null),e([c()],de.prototype,"readOnly",null),e([c()],de.prototype,"selectedAttachment",null),e([c()],de.prototype,"selectedAttachmentDetails",null),e([c()],de.prototype,"valid",null),e([c({type:A}),ie(["value-change","submit"])],de.prototype,"viewModel",void 0),e([c({type:D,nonNullable:!0})],de.prototype,"visibleElements",void 0),e([c()],de.prototype,"groupDisplay",void 0),e([c()],de.prototype,"_associationsEnabled",null),e([c()],de.prototype,"_attemptFocusOnNextRender",void 0),e([c()],de.prototype,"_formId",null),e([c()],de.prototype,"_focusedFieldInput",void 0),e([c()],de.prototype,"_relatedRecordsEnabled",null),e([c()],de.prototype,"_attachmentDialogInfo",void 0),e([c()],de.prototype,"_attachmentListFilterText",void 0),de=e([d("esri.widgets.BatchAttributeForm")],de);const me=de;export{me as default};
2
+ import{__decorate as e}from"tslib";import{substitute as t}from"../intl.js";import{deprecateWidget as a}from"../core/deprecate.js";import i from"../core/Logger.js";import{getOrCreateMapValue as n}from"../core/MapUtils.js";import{destroyMaybe as s}from"../core/maybe.js";import l from"../core/ReactiveMap.js";import{watch as o,when as r,on as c,sync as d}from"../core/reactiveUtils.js";import{formatFileSize as m}from"../core/unitFormatUtils.js";import{property as h,subclass as u}from"../core/accessorSupport/decorators.js";import{isIntegerField as p}from"../layers/support/fieldUtils.js";import{isString as g}from"../support/guards.js";import v from"./Widget.js";import{getAttachmentTypeCategory as f,getCalciteIconForAttachment as b}from"./Attachments/support/attachmentUtils.js";import{getAttachmentKey as _,getCaptureButtonLabel as C,isImageAttachment as A}from"./BatchAttributeForm/attachmentUtils.js";import{getHiddenFieldsValidationErrorMessage as y,getVisibleFieldInputValidationErrorMessage as I,isElementTemplateWithInputType as F}from"./BatchAttributeForm/batchAttributeFormUtils.js";import w from"./BatchAttributeForm/BatchAttributeFormViewModel.js";import{css as k}from"./BatchAttributeForm/css.js";import{makeAddAttachmentFooterButtons as M,makeDiscardAttachmentFooterButtons as x,makeReplaceAttachmentFooterButtons as D,makeViewingAttachmentFooterButtons as S,makeDefaultFooterButtons as E}from"./BatchAttributeForm/interfaceUtils.js";import T from"./BatchAttributeForm/VisibleElements.js";import{isGroupInput as L,isFieldInput as O,isTextElementInput as V,isRelationshipElementInput as R,isAttachmentElementInput as U,isUtilityNetworkAssociationsElementInput as P,differentValuesString as N,getNormalizedFieldName as $}from"./BatchAttributeForm/inputs/support/inputUtils.js";import{clearMultipleChoiceOtherChoiceStateForViewModel as B,getMultipleChoiceCheckboxState as j,otherChoiceCheckedPlaceholderValue as z,getUpdatedMultipleChoiceValueForFeature as W,getMultipleChoiceSelectAllState as Z,splitMultipleChoiceValue as H,canRestoreMultipleChoiceOtherChoiceDraftValue as G}from"./BatchAttributeForm/inputs/support/multipleChoiceInputUtils.js";import{loadRelationshipDetailsComponents as q,RelationshipDetails as K}from"./BatchAttributeForm/rendered-content/RelationshipDetails.js";import{downloadAttachmentInfo as X}from"./FeatureTable/support/exportUtils.js";import{loadCalciteComponents as J}from"./support/componentsUtils.js";import{getLabelForDateFieldValue as Q,getIntlOptionsForField as Y,prepareISOFieldValueForDateComponents as ee,prepareUnixFieldValueForDateComponents as te,normalizeTimeOnlyString as ae,getISOFieldValueFromDateComponents as ie,getUnixFieldValueFromDateComponents as ne}from"./support/dateUtils.js";import{globalCss as se}from"./support/globalCss.js";import{calciteListFilterProps as le}from"./support/listUtils.js";import{messageBundle as oe,vmEvent as re,tsx as ce}from"./support/widget.js";import{setFocus as de}from"./support/widgetUtils.js";import{isEmptyValue as me}from"./support/forms/formUtils.js";const he="data-element-id",ue="esri_BatchAttributeForm_select_all",pe="esri_BatchAttributeForm_other_choice";let ge=class extends v{constructor(e,t){super(e,t),this.headingLevel=2,this.messagesCommon=null,this.messages=null,this.messagesUnits=null,this.viewModel=new w,this.visibleElements=new T,this.groupDisplay="all",this._associationsList=null,this._associationsWidgetsMap=new l,this._attemptFocusOnNextRender=!1,this._dateComponentMap=new Map,this._touchedInputs=new Set,this._focusedFieldInput=null,this._batchSwitchInputInitialValues=new Map,this._attachmentDialogInfo=null,this._attachmentListFilterText="",this._attachmentFileInputMap=new Map,this._selectedAttachmentReplaceFileInput=null,this._maximizeSelectedAttachment=()=>{this._attachmentDialogInfo=this.selectedAttachmentDetails},this._enterAttachmentReplaceView=()=>{this._canReplaceSelectedAttachment()&&this.viewModel.setShowingSelectedAttachmentReplacePage(!0)},this._setSelectedAttachmentReplaceFileInput=e=>{this._selectedAttachmentReplaceFileInput=e},this._openSelectedAttachmentReplaceFilePicker=()=>{this._canReplaceSelectedAttachment()&&this._selectedAttachmentReplaceFileInput?.click()},this._resetSelectedAttachmentName=()=>{const e=this.selectedAttachmentDetails,t=e?.attachment.globalId,a=e?e.input.getAttachmentEditState(e.attachment).initialName:null;e&&t&&null!=a&&this.viewModel.stageRenameAttachment(e.input.template.elementId,t,a)},this._resetSelectedAttachmentChanges=()=>{const e=this.selectedAttachmentDetails,t=e?.attachment.globalId;e&&t&&this.viewModel.resetAttachmentChanges(e.input.template.elementId,t)},this._deleteSelectedAttachment=()=>{const e=this.selectedAttachmentDetails,t=e?.attachment.globalId;e&&t&&!this._isSelectedAttachmentDeleteDisabled()&&(this.viewModel.stageDeleteAttachment(e.input.template.elementId,t),this._setSelectedAttachment(null))},this._closeAttachmentDialog=()=>{this.hideAttachmentDialog()},this._saveInput=this._saveInput.bind(this),this._onFormSubmit=this._onFormSubmit.bind(this),this._onComponentFocus=this._onComponentFocus.bind(this),this._onComponentBlur=this._onComponentBlur.bind(this),this._afterComponentCreateOrUpdate=this._afterComponentCreateOrUpdate.bind(this),this._afterDateComponentCreate=this._afterDateComponentCreate.bind(this),this._afterRadioGroupCreateOrUpdate=this._afterRadioGroupCreateOrUpdate.bind(this),e?.suppressDeprecationWarning||(this.announceDeprecation=()=>{a(i.getLogger(this),"Editor","arcgis-editor",{version:"5.0"})})}normalizeCtorArgs(e={}){const{suppressDeprecationWarning:t,...a}=e;return a}initialize(){this.addHandles([o(()=>this.features,()=>{this._dateComponentMap.clear(),this._resetTransientFormState(),B(this.viewModel,{includeDraftValues:!0})}),o(()=>this.viewModel.activeForm,()=>{this._batchSwitchInputInitialValues.clear(),this._resetTransientFormState(),B(this.viewModel)}),o(()=>this.viewModel.selectedAttachmentAddElementId,()=>{this.hideAttachmentDialog()}),r(()=>!this.selectedAttachmentDetails,()=>this.hideAttachmentDialog()),o(()=>this.viewModel.selectedAttachmentListElementId,()=>{this._attachmentListFilterText=""}),c(()=>this.viewModel,"submit",()=>{this.valid||this.goToFirstError()}),o(()=>[this._associationsEnabled,this.viewModel.activeForm.allUtilityNetworkAssociationsElementInputs],()=>this._setUpAssociationsWidgets(),d),o(()=>this.viewModel.activeAssociationsInput,e=>this._onActiveAssociationsInputChange(e))])}loadDependencies(){return Promise.all([J({action:()=>import("@esri/calcite-components/dist/components/calcite-action"),block:()=>import("@esri/calcite-components/dist/components/calcite-block"),button:()=>import("@esri/calcite-components/dist/components/calcite-button"),checkbox:()=>import("@esri/calcite-components/dist/components/calcite-checkbox"),combobox:()=>import("@esri/calcite-components/dist/components/calcite-combobox"),"combobox-item":()=>import("@esri/calcite-components/dist/components/calcite-combobox-item"),"combobox-item-group":()=>import("@esri/calcite-components/dist/components/calcite-combobox-item-group"),dialog:()=>import("@esri/calcite-components/dist/components/calcite-dialog"),dropdown:()=>import("@esri/calcite-components/dist/components/calcite-dropdown"),"dropdown-group":()=>import("@esri/calcite-components/dist/components/calcite-dropdown-group"),"dropdown-item":()=>import("@esri/calcite-components/dist/components/calcite-dropdown-item"),icon:()=>import("@esri/calcite-components/dist/components/calcite-icon"),input:()=>import("@esri/calcite-components/dist/components/calcite-input"),"input-date-picker":()=>import("@esri/calcite-components/dist/components/calcite-input-date-picker"),"input-message":()=>import("@esri/calcite-components/dist/components/calcite-input-message"),"input-number":()=>import("@esri/calcite-components/dist/components/calcite-input-number"),"input-time-picker":()=>import("@esri/calcite-components/dist/components/calcite-input-time-picker"),"input-time-zone":()=>import("@esri/calcite-components/dist/components/calcite-input-time-zone"),label:()=>import("@esri/calcite-components/dist/components/calcite-label"),list:()=>import("@esri/calcite-components/dist/components/calcite-list"),"list-item":()=>import("@esri/calcite-components/dist/components/calcite-list-item"),loader:()=>import("@esri/calcite-components/dist/components/calcite-loader"),notice:()=>import("@esri/calcite-components/dist/components/calcite-notice"),switch:()=>import("@esri/calcite-components/dist/components/calcite-switch"),"text-area":()=>import("@esri/calcite-components/dist/components/calcite-text-area"),"radio-button":()=>import("@esri/calcite-components/dist/components/calcite-radio-button"),"radio-button-group":()=>import("@esri/calcite-components/dist/components/calcite-radio-button-group")}),q()])}destroy(){this._destroyAssociationsWidgets()}get activeFeatureIndex(){return this.viewModel.activeFeatureIndex}set activeFeatureIndex(e){this.viewModel.activeFeatureIndex=e}get callbacks(){return this.viewModel.callbacks}set callbacks(e){this.viewModel.callbacks=e}get disabled(){return this.viewModel.disabled}set disabled(e){this.viewModel.disabled=e}get effectiveTitle(){const{features:e,messages:t,page:a}=this;return"replacing-attachment"===a?t.titles.replaceAttachment:"viewing-attachment-details"===a?t.titles.editAttachment:"adding-attachments"===a?t.titles.addAttachments:"viewing-attachments"===a?t.titles.attachments:1===e.length||this.activeFeatureIndex>-1?t.titles.editFeature:e.length>1?t.titles.editFeatures:""}get effectiveDisabled(){return this.disabled||this.viewModel.updating}get features(){return this.viewModel.features}set features(e){this.viewModel.features=e}get footerButtonInfos(){if(!this.features.length)return[];const{page:e,messages:t}=this,a=this.viewModel.selectedAttachmentAddElementId,i=this.selectedAttachmentDetails,n=i?i.input.getAttachmentEditState(i.attachment):null;if("adding-attachments"===e&&a)return M({messages:t,onclick:()=>this._attachmentFileInputMap.get(a)?.click()});return!!i&&"replacing-attachment"!==e&&!!n?.isReplaced?x({message:this.messagesCommon.remove,onclick:this._resetSelectedAttachmentChanges}):"replacing-attachment"===e?D({disabled:this.readOnly||this.effectiveDisabled,messages:t,onclick:this._openSelectedAttachmentReplaceFilePicker}):"viewing-attachment-details"===e?S({deleteDisabled:this._isSelectedAttachmentDeleteDisabled(),deleteOnclick:this._deleteSelectedAttachment,doneOnclick:()=>this._setSelectedAttachment(null),messages:t.footerButtons}):"viewing-attachments"===e?[]:E({formId:this._formId,callback:this.submit,messages:t})}get footerNoticeInfos(){if(!this.features.length)return[];const{messages:{footerNotices:e}}=this;return this._isSelectedAttachmentDeleteDisabled()?[{icon:"information",message:e.deleteDisabledMinimumAttachments}]:[]}get map(){return this.viewModel.map}set map(e){this.viewModel.map=e}get maximumFeatureCount(){return this.viewModel.maximumFeatureCount}set maximumFeatureCount(e){this.viewModel.maximumFeatureCount=e}get maximumFeatureCountWithComplexForms(){return this.viewModel.maximumFeatureCountWithComplexForms}set maximumFeatureCountWithComplexForms(e){this.viewModel.maximumFeatureCountWithComplexForms=e}get spatialReference(){return this.viewModel.spatialReference}set spatialReference(e){this.viewModel.spatialReference=e}get layerInfos(){return this.viewModel.layerInfos}set layerInfos(e){this.viewModel.layerInfos=e}get timeZone(){return this.viewModel.timeZone}set timeZone(e){this.viewModel.timeZone=e}get icon(){return"edit-attributes"}set icon(e){this._overrideIfSome("icon",e)}get page(){return this.viewModel.page}get readOnly(){return this.viewModel.readOnly}set readOnly(e){this.viewModel.readOnly=e}get selectedAttachment(){return this.viewModel.selectedAttachment}get selectedAttachmentDetails(){return this.viewModel.selectedAttachmentDetails}get valid(){return this.viewModel.valid}get _associationsEnabled(){const{callbacks:e}=this;return!(!e?.addAssociation&&!e?.editAssociatedFeature)}get _formId(){return`${this.id}-form`}get _relatedRecordsEnabled(){const{callbacks:e}=this;return!(!e||!e.addRelatedRecord&&!e.editRelatedRecord)}async goBack(){return this.viewModel.goBack()}async goHome(){return this.viewModel.goHome()}goToFirstError(){const e=this.viewModel.getFirstVisibleInvalidFieldInput();if(!e)return;const{groupInput:t}=e;t&&(t.open||(t.open=!0)),this._focusedFieldInput=e.input,this._attemptFocusOnNextRender=!0,this.scheduleRender()}render(){return ce("div",{class:this.classes(k.base,se.widget,se.panel)},this._renderContent(),this._renderAttachmentDialog())}setActiveAssociationsInput(e){this.viewModel.setActiveAssociationsInput(e)}setActiveAssociationsLayer(e){this.viewModel.setActiveAssociationsLayer(e)}setActiveAssociationType(e){this.viewModel.setActiveAssociationType(e)}submit(){return this.viewModel.submit()}_setDateTimeTimeZoneMap(e){const{datePart:t,elementId:a}=e.dataset,i=n(this._dateComponentMap,`${a}`,()=>({}));switch(t){case"date":i.date=e;break;case"time":i.time=e;break;case"timeZone":i.timeZone=e}}_renderContent(){const{messages:e,viewModel:a}=this,{status:i}=a;return"failed"===i?a.hasTooManyComplexFeatures?this._renderErrorNotice(t(e.formFailedToLoadTooManyComplexFeatures,{num:a.maximumFeatureCountWithComplexForms})):a.hasTooManyFeatures?this._renderErrorNotice(t(e.formFailedToLoadTooManyFeatures,{num:a.maximumFeatureCount})):e.formFailedToLoad:a.expressionEvaluationFailed?this._renderErrorNotice(e.expressionEvaluationFailed):a.hasLayersWithContingentValues&&this.viewModel.features.length>1?this._renderErrorNotice(e.unsupportedContingentValues):"loading"===i&&this.visibleElements.loadingIndicator?ce("calcite-loader",{key:"loader",label:this.messagesCommon?.loading}):0!==this.features.length?this._renderForm():void 0}_renderErrorNotice(e,t="warning"){return ce("calcite-notice",{class:k.noticeError,icon:!0,kind:t,open:!0},ce("div",{slot:"message"},e))}_renderForm(){return ce("form",{class:k.form,id:this._formId,onsubmit:this._onFormSubmit},this._renderInvisibleFieldsError(),this._renderPage())}_renderPage(){switch(this.page){case"adding-attachments":return this._renderAttachmentAddPage();case"replacing-attachment":case"viewing-attachments":return this._renderAttachmentListPage();case"viewing-attachment-details":return this._renderAttachmentDetailPage();case"viewing-associated-layers":case"viewing-associated-features":return this._renderViewingAssociationsPage();default:return this._renderFormContent()}}_renderInvisibleFieldsError(){const{viewModel:e}=this,{hasNonActiveInvalidFeatures:t,activeForm:a}=e;let i;if(!e.submitHasBeenAttempted)return null;if(a.invalidHiddenInputs.length>0)if(i=y(a,e.mode,this.messages),"batch"===this.viewModel.mode){const e=a.invalidHiddenInputs.filter(e=>"hidden:group-visibility-expression:all-features"===e.effectiveVisibilityCode||"hidden:visibility-expression:all-features"===e.visibilityCode);e.length>0?i+=` (${e.map(e=>e.label).join(", ")})`:i=null}else i+=` (${a.invalidHiddenInputs.map(e=>e.label).join(", ")})`;else if(t)return null;return i?this._renderErrorNotice(i,"danger"):null}_renderFormContent(){return this.viewModel.hasVisibleInputs?this.viewModel.activeForm.inputs.filter(e=>e.visible).map(e=>this._renderInput(e)):this._renderErrorNotice(this.messages.noVisibleFields[this.viewModel.noVisibleElementsReason])}_renderInput(e){return L(e)?this._renderGroupInput(e):O(e)?this._renderLabeledField(e):V(e)?this._renderTextComponent(e):R(e)?this._renderRelationshipElementInput(e):U(e)?this._renderAttachmentElementInput(e):P(e)?this._renderUtilityNetworkAssociationsElementInput(e):void 0}_renderGroupInput(e){const{inputs:t,template:a,open:i}=e,n=t.filter(e=>e.visible),s=a.label??"";return ce("calcite-block",{class:this.classes(k.group,"sequential"===this.groupDisplay?k.groupSequential:null,this.disabled?k.inputDisabled:null),collapsible:!0,description:a.description??void 0,disabled:this.effectiveDisabled,expanded:i,heading:s,headingLevel:this.headingLevel,key:`{${a.elementId}-key}`,label:s,onCalciteBlockClose:()=>{e.open=!1},onCalciteBlockOpen:()=>{e.open=!0}},n.map(e=>this._renderInput(e)))}_renderLabeledField(e){const{elementId:a}=e.template,{label:i,required:n,dataType:s}=e,l=n?t(this.messages.requiredFieldLabel,{name:i}):i;return ce("calcite-label",{"aria-label":l,class:k.label,key:`field--${a}`},ce("div",{class:k.labelTextContent,key:"labelTextContainer"},i,n?ce("span",{"aria-hidden":"true",title:this.messagesCommon.required},"*"):void 0),"unsupported"!==s?this._renderFieldInput(e):this._renderReadOnlyComponent(e),this._renderAuxiliaryText(e))}_renderFieldInput(e){const t=this.getCommonInputProps(e),{dataType:a}=e;return"date"===a?this._renderDateComponents(e,t):"coded-value"===e.domain?.type?this._renderCodedInputs({input:e,props:t}):null!==e.multipleChoiceChoices?this._renderMultipleChoiceComponent({input:e,props:t}):"number"===a?this._renderNumberComponent(e,t):this._renderStringComponent(e,t)}_renderAuxiliaryText(e){const{compositeError:t,description:a,submittable:i}=e,n=!i&&t&&(this.viewModel.submitHasBeenAttempted||this._touchedInputs.has(e.template.elementId))?I(e,t,this.messages):null;return n?ce("calcite-input-message",{icon:!0,status:"invalid"},n):a?ce("calcite-input-message",{class:k.description,icon:!1,status:"idle"},a):null}_renderCodedInputs({input:e,props:t}){const a=e.input?.type??null,i=e.codedValueOptions;switch(a){case"switch":return this._renderSwitchField({input:e,props:t});case"radio-buttons":return this._renderRadioButtonGroupComponent({input:e,options:i,props:t});default:return this._renderComboBoxComponent({options:i,props:t,input:e})}}_renderMultipleChoiceComponent({input:e,props:t}){const{messages:a}=this,{multipleChoiceChoices:i,multipleChoiceInput:n,multipleChoiceValues:s}=e;if(!n||!i||!s)return null;const l=!0===n.includeSelectAllChoices,o=new Map;let r=s.length>0,c=!1;for(const f of s){const t=j({input:e,choiceValue:f});o.set(f,t),(t.checked||t.indeterminate)&&(c=!0),t.checked||(r=!1)}const d={checked:r,indeterminate:!r&&c},m=d.checked?a.deselectAllLabel:a.selectAllLabel,h=e.getMultipleChoiceOtherChoiceRenderState(this.messages.otherOptionLabel),u=t=>{this._saveValueFromMultipleChoiceCheckbox({input:e,checkbox:t,isSelectAllCheckbox:!0})},p=t=>{this._saveValueFromMultipleChoiceCheckbox({input:e,checkbox:t})},g=t=>{const{fieldName:a}=h;a&&this._saveOtherChoiceCheckboxValue({input:e,isChecked:t.checked,otherChoiceFieldName:a})},v=t=>{this._saveValueFromMultipleChoiceTextInput({input:e,textInput:t,otherChoiceFieldName:h.fieldName})};return ce("div",{class:k.multipleChoiceInput,key:`${t.key}-multiple-choice-group`},l?this._renderMultipleChoiceSelectAllCheckbox({props:t,selectAllState:d,selectAllLabel:m,handleSelectAllCheckboxChange:u}):null,this._renderMultipleChoiceChoiceCheckboxes({input:e,props:t,checkboxStatesByValue:o,handleChoiceCheckboxChange:p}),h.shouldShow?this._renderMultipleChoiceOtherChoice({props:t,includeSelectAllChoices:l,otherChoiceRenderState:h,handleOtherChoiceCheckboxChange:g,handleOtherChoiceInputChange:v,differentValuesPlaceholder:a.differentValuesPlaceholder}):null)}_renderMultipleChoiceSelectAllCheckbox({props:e,selectAllState:t,selectAllLabel:a,handleSelectAllCheckboxChange:i}){return ce("calcite-checkbox",{afterCreate:e.afterCreate,afterUpdate:e.afterUpdate,"aria-invalid":e["aria-invalid"],checked:t.checked,class:k.multipleChoiceSelectAll,"data-element-id":e[he],disabled:e.readOnly,indeterminate:t.indeterminate,key:`${e.key}-select-all`,label:a,labelText:a,value:ue,onblur:e.onblur,onCalciteCheckboxChange:({currentTarget:e})=>i(e),onfocus:e.onfocus})}_renderMultipleChoiceChoiceCheckboxes({input:e,props:t,checkboxStatesByValue:a,handleChoiceCheckboxChange:i}){const{multipleChoiceChoices:n}=e;return n?n.map(e=>{const n=a.get(e.value)??{checked:!1,indeterminate:!1};return ce("calcite-checkbox",{afterCreate:t.afterCreate,afterUpdate:t.afterUpdate,"aria-invalid":t["aria-invalid"],checked:n.checked,class:t.class,"data-element-id":t[he],disabled:t.readOnly,indeterminate:n.indeterminate,key:`${t.key}-${e.value}`,label:e.label,labelText:e.label,required:t.required,value:e.value,onblur:t.onblur,onCalciteCheckboxChange:({currentTarget:e})=>i(e),onfocus:t.onfocus})}):[]}_renderMultipleChoiceOtherChoice({props:e,includeSelectAllChoices:t,otherChoiceRenderState:a,handleOtherChoiceCheckboxChange:i,handleOtherChoiceInputChange:n,differentValuesPlaceholder:s}){return ce("div",{class:this.classes(k.multipleChoiceOtherChoice,t?k.multipleChoiceOtherChoiceWithSelectAll:null),key:`${e.key}-other-choice`},ce("calcite-checkbox",{afterCreate:e.afterCreate,afterUpdate:e.afterUpdate,"aria-invalid":e["aria-invalid"],checked:a.checkboxState.checked,class:e.class,"data-element-id":e[he],disabled:e.readOnly,indeterminate:a.checkboxState.indeterminate,key:`${e.key}-other-choice-checkbox`,label:a.label,labelText:a.label,value:pe,onblur:e.onblur,onCalciteCheckboxChange:({currentTarget:e})=>i(e),onfocus:e.onfocus}),a.checkboxState.checked?ce("calcite-input",{afterCreate:e.afterCreate,afterUpdate:e.afterUpdate,"aria-invalid":e["aria-invalid"],"aria-label":a.label,class:k.textElementInput,"data-element-id":e[he],disabled:e.readOnly,key:`${e.key}-other-choice-input`,maxLength:a.maxLength,placeholder:a.value===N?s:a.hint,required:e.required,type:"text",value:a.normalizedValue===N?"":a.normalizedValue?String(a.normalizedValue):"",onblur:e.onblur,onCalciteInputInput:({currentTarget:e})=>n(e),onfocus:e.onfocus}):null)}async _saveValueFromMultipleChoiceCheckbox({input:e,checkbox:t,isSelectAllCheckbox:a=!1}){if(this._markFieldInputTouched(e),e.multipleChoiceInput&&!a&&"batch"===this.viewModel.mode)return void await this._saveMultipleChoiceCheckboxValueByFeature({input:e,checkbox:t});const i=e.value,n=this._parseValue(t,e,a);n!==i&&await this.viewModel.setValue(e.template.elementId,n)}async _saveValueFromMultipleChoiceTextInput({input:e,textInput:t,otherChoiceFieldName:a}){if(!a)return;const i=t.value,n=null==i||""===i?null:i;e.initializeExplicitMultipleChoiceOtherChoiceCheckedState(),e.stashMultipleChoiceOtherChoiceDraftValueForFeatures(e.features,n);const s=$(e,a);s&&await this.viewModel.setValueForFieldName(s,n,e.template.elementId,Array.from(e.features,e=>e.source))}async _saveOtherChoiceCheckboxValue({input:e,isChecked:t,otherChoiceFieldName:a}){e.setExplicitMultipleChoiceOtherChoiceCheckedState(t),this._markFieldInputTouched(e),t||e.setMultipleChoiceOtherChoiceDraftValuesFromFeatures(e.features.toArray());const i=$(e,a);if(!i)return;const n=new Map;for(const s of e.features){const i=s.getAttribute(a);if(t){if(!me(i))continue;const t=e.getMultipleChoiceOtherChoiceDraftValue(s),a=G(t)?t:z;n.set(s,a);continue}null!=i&&n.set(s,null)}0!==n.size&&await this.viewModel.setValuePerFeatureForFieldName(i,new Map(Array.from(n,([e,t])=>[e.source,t])),e.template.elementId)}async _saveMultipleChoiceCheckboxValueByFeature({input:e,checkbox:t}){if(!e.multipleChoiceInput||!e.multipleChoiceValues)return;const a=new Map(e.features.map(a=>[a,W({input:e,choiceValue:t.value,currentValue:a.getAttribute(e.fieldName),isChecked:t.checked})]));0!==a.size&&await this.viewModel.setFieldInputValuePerFeature(e,a)}_renderSwitchField({input:e,props:t}){if((this._batchSwitchInputInitialValues.get(e)===N||e.value===N)&&"batch"===this.viewModel.mode){const a={dropdown:{afterCreate:this._afterComponentCreateOrUpdate,afterUpdate:this._afterComponentCreateOrUpdate,disabled:t.readOnly,open:!1,[he]:t[he]},trigger:{appearance:"transparent",iconEnd:"chevron-down",kind:"neutral",slot:"trigger",label:t.label},group:{mode:"single"}};return this._renderDropdownComponent({buttonValue:e.value,dropdownProps:a,options:[{name:this.messages.differentValuesPlaceholder,value:N,disabled:!0},...e.codedValueDomainOptions]})}return this._renderSwitchComponent({input:e,props:t})}_renderSwitchComponent({input:e,props:t}){return ce("calcite-switch",{...t,checked:!!F(e.template,"switch")&&e.value===e.template.input.onValue,class:k.inputSwitch,disabled:t.readOnly,onblur:()=>{this._focusedFieldInput=null},onCalciteSwitchChange:({currentTarget:e})=>this._saveInput(e)})}_renderDropdownComponent({buttonValue:e,options:t,dropdownProps:a}){const{trigger:i,dropdown:n,group:s}=a;return ce("calcite-dropdown",{...n,topLayerDisabled:this.topLayerDisabled,onblur:()=>{this._focusedFieldInput=null},onCalciteDropdownSelect:({currentTarget:e})=>this._saveInput(e),onfocus:this._onComponentFocus},ce("calcite-button",{...i},e===N?this.messages.differentValuesPlaceholder:e),ce("calcite-dropdown-group",{selectionMode:s.mode},t.map(t=>ce("calcite-dropdown-item",{disabled:t.disabled,label:String(t.name),selected:e===t.value},t.name))))}_renderComboBoxComponent({input:e,options:t,props:a}){const i="INSERT"===this.viewModel.editType,n=this._touchedInputs.has(e?.template?.elementId),s=i&&e.showNoValueOptionEnabled&&!n?()=>{}:a.onblur,l={...a,onblur:s};return ce("calcite-combobox",{...l,selectionMode:"single",topLayerDisabled:this.topLayerDisabled,value:a.placeholder===this.messages.differentValuesPlaceholder?N:String(a.value),onCalciteComboboxChange:({currentTarget:e})=>{e.value!==N&&this._saveInput(e)}},this.renderComboboxOptionsList({input:e,options:t,props:a}))}renderComboboxOptionsList({input:e,options:t,props:a}){const i=e=>e.map(e=>{const{value:t}=e,i=me(e.value)?this.messages.empty:e.name;return ce("calcite-combobox-item",{heading:i,key:`#${t}`,selected:a.value===t,value:`${t}`})});let n=[];const{messages:s}=this;t.other.length>0&&n.push(ce("calcite-combobox-item-group",{key:"other",label:s.other},i(t.other))),t.unsupported.length>0&&n.push(ce("calcite-combobox-item-group",{key:"unsupported",label:s.unsupported},i(t.unsupported)));const l=i(t.recommended);n.length>0?n.unshift(ce("calcite-combobox-item-group",{key:"recommended",label:s.recommended},l)):n=l;const o=a.placeholder===this.messages.differentValuesPlaceholder,r=!o&&me(a.value);return e.showNoValueOptionEnabled&&!t.containsEmptyOption&&n.unshift(ce("calcite-combobox-item",{heading:e.showNoValueLabel||this.messages.empty,key:"empty-option",selected:r,value:""})),o&&n.unshift(ce("calcite-combobox-item",{heading:this.messages.differentValuesPlaceholder,key:N,selected:!0,value:N})),n}_renderRadioButtonGroupComponent({input:e,options:t,props:a}){const i=[...t.recommended,...t.other,...t.unsupported].map(({name:t,value:i})=>this._renderRadioButtons({label:t,value:i,selected:i===e.value,props:a}));if(e.showNoValueOptionEnabled&&!t.containsEmptyOption){const t="",n=e.showNoValueLabel||this.messages.empty,s=me(e.value);i.unshift(this._renderRadioButtons({label:n,value:t,selected:s,props:a}))}return ce("calcite-radio-button-group",{afterCreate:this._afterRadioGroupCreateOrUpdate,afterUpdate:this._afterRadioGroupCreateOrUpdate,class:k.inputRadioGroup,disabled:a.readOnly,key:`${a.key}-radio-group`,layout:"vertical",name:a.name,required:a.required},i,a.placeholder===this.messages.differentValuesPlaceholder?ce("calcite-label",{class:k.placeholderRadio,key:a.label,layout:"inline"},ce("calcite-radio-button",{checked:!0,class:k.inputRadio,disabled:!0,name:a.placeholder,value:a.placeholder}),a.placeholder):null)}_renderRadioButtons({value:e,selected:t,label:a,props:i}){return ce("calcite-label",{class:k.inputRadioLabel,key:i.label,layout:"inline"},ce("calcite-radio-button",{...i,afterCreate:void 0,afterUpdate:void 0,checked:t,class:k.inputRadio,disabled:i.readOnly,name:i.label,value:e,onblur:()=>{this._focusedFieldInput=null},onCalciteRadioButtonChange:({currentTarget:e})=>{e.checked&&this._saveInput(e)}}),a)}_renderStringComponent(e,t){const{template:a}=e;return!a.field.editable||this.readOnly?this._renderReadOnlyComponent(e):"text-area"===a.input?.type?ce("calcite-text-area",{...t,class:this.classes(k.individualElement),resize:"vertical",value:t.value?String(t.value):"",onCalciteTextAreaInput:({currentTarget:e})=>this._saveInput(e)}):ce("calcite-input",{...t,class:this.classes(k.individualElement),type:"text",value:t.value?String(t.value):"",onCalciteInputInput:({currentTarget:e})=>this._saveInput(e)})}_renderNumberComponent(e,t){const a=p(e.field);return ce("calcite-input-number",{...t,integer:a,type:"number",value:a&&""!==t.value?Math.round(parseFloat(String(t.value))).toString():String(t.value),onCalciteInputNumberInput:({currentTarget:e})=>this._saveInput(e)})}_renderReadOnlyComponent(e,t){const a=this.getCommonInputProps(e);return ce("calcite-input",{...a,class:this.classes(k.fieldInput,k.inputDisabled,k.individualElement),readOnly:!0,type:"text",value:String(t??a.value??"")})}_renderDateComponents(e,t){const{field:a}=e;let i;switch(a.type){case"date":i=this._renderDateFieldComponents(e,t);break;case"date-only":i=this._renderDateOnlyFieldComponent(e,t);break;case"time-only":i=this._renderTimeOnlyFieldComponent(e,t);break;case"timestamp-offset":i=this._renderTimestampOffsetFieldComponents(e,t);break;default:i=this._renderReadOnlyComponent(e,Q(a,t.value,{timeZone:e.effectiveTimeZone,...Y(e.template.field)}))}return e.value===N?[i,ce("calcite-input-message",{icon:"information",key:"diff-values-message",status:"idle"},this.messages.differentValues)]:i}_renderDateOnlyFieldComponent(e,t){const{class:a,key:i,readOnly:n}=t,{rawMax:s,rawMin:l}=e.range;return ce("calcite-input-date-picker",{afterCreate:this._afterDateComponentCreate,afterUpdate:this._afterComponentCreateOrUpdate,class:a,"data-date-part":"date","data-element-id":t[he],key:`${i}-date-input`,max:g(s)?s:void 0,min:g(l)?l:void 0,overlayPositioning:"fixed",readOnly:n,topLayerDisabled:this.topLayerDisabled,value:e.value===N?"":e.value?String(e.value):"",onblur:()=>{this._focusedFieldInput=null},onCalciteInputDatePickerChange:t=>this._saveValueFromDateComponent(e,t.currentTarget),onfocus:this._onComponentFocus})}_renderTimeOnlyFieldComponent(e,t){const{class:a,key:i,readOnly:n}=t;return ce("calcite-input-time-picker",{afterCreate:this._afterDateComponentCreate,afterUpdate:this._afterComponentCreateOrUpdate,class:a,"data-date-part":"time","data-element-id":t[he],key:`${i}-time-input`,overlayPositioning:"fixed",readOnly:n,value:e.value===N?"":e.value?String(e.value):"",onblur:()=>{this._focusedFieldInput=null},onCalciteInputTimePickerChange:t=>this._saveValueFromDateComponent(e,t.currentTarget),onfocus:this._onComponentFocus})}_renderTimestampOffsetFieldComponents(e,t){const{class:a,key:i,readOnly:n}=t,{rawMax:s,rawMin:l}=e.range,o=ee(s),r=ee(l),c=ee(e.value===N?"":e.value),d=e.includeTimeOffset,m={afterCreate:this._afterDateComponentCreate,afterUpdate:this._afterComponentCreateOrUpdate,overlayPositioning:"fixed",readOnly:n,[he]:t[he],onfocus:this._onComponentFocus};return ce("div",{class:k.dateInputContainer,key:`${i}-date-time-container`},ce("calcite-input-date-picker",{...m,class:a,"data-date-part":"date",key:`${i}-date-input`,max:o?.date??void 0,min:r?.date??void 0,topLayerDisabled:this.topLayerDisabled,value:c.date??"",onblur:()=>{this._focusedFieldInput=null},onCalciteInputDatePickerChange:t=>this._saveValueFromDateComponent(e,t.target)}),ce("calcite-input-time-picker",{...m,class:a,"data-date-part":"time",key:`${i}-time-input`,value:c.time??"",onblur:()=>{this._focusedFieldInput=null},onCalciteInputTimePickerChange:t=>this._saveValueFromDateComponent(e,t.target)}),d?ce("calcite-input-time-zone",{...m,class:a,clearable:e.value===N||null==e.value,"data-date-part":"timeZone",key:`${i}-timezone-input`,value:c.timeZoneOffset||"",onblur:()=>{this._focusedFieldInput=null},onCalciteInputTimeZoneChange:t=>this._saveValueFromDateComponent(e,t.target)}):null)}_renderDateFieldComponents(e,t){const{class:a,key:i,readOnly:n,min:s,max:l}=t,o=e.effectiveTimeZone,r=te(e.value===N?"":e.value,o),c=te(l,o),d=te(s,o),m=e.includeTime,h={afterCreate:this._afterDateComponentCreate,afterUpdate:this._afterComponentCreateOrUpdate,overlayPositioning:"fixed",readOnly:n,[he]:t[he],onfocus:this._onComponentFocus};return ce("div",{class:k.dateInputContainer,key:`${i}-date-time-container`},ce("calcite-input-date-picker",{...h,class:a,"data-date-part":"date",key:`${i}-date-input`,max:c?.date??void 0,min:d?.date??void 0,topLayerDisabled:this.topLayerDisabled,value:r.date??"",onblur:()=>{this._focusedFieldInput=null},onCalciteInputDatePickerChange:t=>this._saveValueFromDateComponent(e,t.target)}),m?ce("calcite-input-time-picker",{...h,"data-date-part":"time",key:`${i}-time-input`,step:1,value:r.time??"",onblur:()=>{this._focusedFieldInput=null},onCalciteInputTimePickerChange:t=>{this._saveValueFromDateComponent(e,t.target)}}):null)}_renderRelationshipElementInput(e){return this._relatedRecordsEnabled?ce(K,{input:e,messages:this.messages,messagesCommon:this.messagesCommon,viewModel:this.viewModel}):null}_renderAttachmentElementInput(e){const{allAttachmentsVisibleOnDefaultPage:t,attachments:a,defaultPageAttachments:i,template:{description:n,elementId:s,label:l}}=e,o=t?a:i;return ce("div",{class:k.attachmentElementInput,"data-testid":`attachment-element-${s}`,key:`attachment-element-${s}`},l?ce("div",{class:k.attachmentElementLabel,key:`attachment-element-label-${s}`},l):null,n?ce("div",{class:k.description,key:`attachment-element-description-${s}`},n):null,a.length?this._renderAttachmentList(e,o,{label:l||this.messagesCommon.details,viewAllCount:t?null:a.length}):ce("div",{class:k.attachmentElementEmptyState,key:`attachment-element-empty-state-${s}`},this.messages.attachments.noAttachments),this._renderAttachmentAddAction(e))}_renderAttachmentListPage(){const e=this.viewModel.selectedAttachmentListInput;if(e)return ce("div",{class:k.attachmentElementAllPanel,key:`attachment-element-all-panel-${e.template.elementId}`},this._renderAttachmentList(e,e.attachments,{filterEnabled:!0,label:this.messages.titles.attachments}))}_renderAttachmentList(e,t,a){const{filterEnabled:i,label:n,viewAllCount:s}=a;return ce("calcite-list",{class:k.attachmentElementList,filterEnabled:i,filterPlaceholder:i?this.messages.attachments.searchAttachments:void 0,filterProps:i?le:void 0,filterText:i?this._attachmentListFilterText:void 0,label:n,selectionAppearance:"border",selectionMode:"none",onCalciteListFilter:i?e=>{this._attachmentListFilterText=e.currentTarget.filterText??""}:void 0},this._renderAttachmentListItems(e,t),null!=s?this._renderViewAllAttachmentsItem(e,s):null)}_renderAttachmentListItems(e,t){const{elementId:a}=e.template;return t.map((t,i)=>{const n=this._formatAttachmentSize(t.size),s=this._getAttachmentLabel(t,i,n,e.displayFilename),l=s===n?void 0:n,o=_(t),r=e.isStagedAttachmentAddition(t),c=e.getAttachmentEditState(t),d=r||c.isRenamed||c.isReplaced;return ce("calcite-list-item",{class:k.attachmentElementListItem,description:l,key:`attachment-item-${o}`,label:s,onCalciteListItemSelect:r?void 0:()=>this._setSelectedAttachment({attachmentKey:o,elementId:a})},ce("div",{class:k.attachmentElementListItemStart,slot:"content-start"},this._renderAttachmentPreviewThumbnail(t,s,e)),d?ce("span",{class:k.attachmentElementListItemStagedIndicator,slot:"content-end"}):null,r?[ce("calcite-action",{disabled:this.effectiveDisabled,icon:"x",scale:"s",slot:"actions-end",text:this.messagesCommon.delete,title:this.messagesCommon.delete,onclick:()=>this.viewModel.stageDeleteAttachment(a,t.globalId)})]:ce("calcite-action",{icon:"chevron-right",scale:"s",slot:"actions-end",text:s,title:s}))})}_renderViewAllAttachmentsItem(e,a){const{elementId:i}=e.template,{viewAll:n}=this.messages.attachments;return ce("calcite-list-item",{class:k.attachmentElementListItem,description:t(this.messages.attachments.count,{count:a}),key:`attachment-item-view-all-${i}`,label:n,onCalciteListItemSelect:()=>this._setAttachmentListElementId(i)},ce("calcite-action",{icon:"chevron-right",scale:"s",slot:"actions-end",text:n,title:n}))}_renderAttachmentAddAction(e){const{elementId:t}=e.template,a=this.effectiveDisabled||e.addDisabled,i=e.canUploadFiles,n=e.hasCaptureInputs,s=C(this.messages.attachments,e.captureMediaType),l=ve(e.captureMediaType);return ce("div",{class:k.attachmentElementAddActions,key:`attachment-element-add-actions-${t}`},i?ce("calcite-button",{appearance:"outline",disabled:a,iconStart:"attachment",kind:"neutral",round:!0,scale:"s",onclick:()=>this._setAttachmentAddElementId(t)},this.messages.attachments.attach):null,n?ce("calcite-button",{appearance:"outline",disabled:!0,iconStart:l,kind:"neutral",round:!0,scale:"s"},s):null,e.captureDisabled?this._renderAttachmentCaptureDisabledNotice(t):null)}_renderAttachmentAddPage(){const e=this.viewModel.selectedAttachmentAddInput;return e?this._renderAttachmentAddPanel(e):null}_renderAttachmentAddPanel(e){const{maxAttachmentCount:t}=e,{elementId:a}=e.template;if(e.captureDisabled)return this._renderAttachmentCaptureDisabledNotice(a);const i=null==t||t-e.attachments.length>1,n=this.effectiveDisabled||e.addDisabled,s=this.messages.attachments,l=s.dragAndDropFile,o="upload",r=e=>{this._attachmentFileInputMap.set(a,e)};return ce("div",{class:k.attachmentElementAddPanel,key:`attachment-element-add-panel-${a}`},ce("input",{accept:e.accept,afterCreate:r,afterRemoved:()=>{this._attachmentFileInputMap.delete(a)},afterUpdate:r,class:k.attachmentElementFileInput,"data-element-id":a,disabled:n,multiple:i,type:"file",onchange:e=>{const t=e.currentTarget,i=t.files?Array.from(t.files):[];this._stageAttachmentFiles(a,i),t.value=""}}),ce("div",{class:k.attachmentElementAddDropzone,"data-disabled":n?"true":"false",ondragover:e=>{e.preventDefault()},ondrop:e=>{if(e.preventDefault(),n)return;const t=e.dataTransfer?.files?Array.from(e.dataTransfer.files):[];this._stageAttachmentFiles(a,t)}},ce("calcite-icon",{class:k.attachmentElementAddDropzoneIcon,icon:o,scale:"l"}),ce("div",{class:k.attachmentElementAddDropzoneHeading},s.addFile),ce("div",{class:k.attachmentElementAddDropzoneDetail,title:l},l),ce("calcite-button",{appearance:"outline-fill",disabled:n,iconStart:"folder-open",scale:"s",type:"button",onclick:e=>{e.stopPropagation(),this._openAttachmentFilePicker(a,n)}},s.selectFile)))}_renderAttachmentCaptureDisabledNotice(e){return ce("calcite-notice",{class:k.attachmentElementCaptureNotice,icon:!0,key:`attachment-element-capture-disabled-notice-${e}`,kind:"warning",open:!0,scale:"s"},ce("div",{slot:"message"},this.messages.attachments.captureMethodNotSupported))}async _stageAttachmentFiles(e,t){if(0!==t.length)try{await this.viewModel.stageAddAttachments(e,t)}finally{this.viewModel.setSelectedAttachmentAddElementId(null)}}_openAttachmentFilePicker(e,t){t||this._attachmentFileInputMap.get(e)?.click()}_renderAttachmentDetailPage(){const e=this.selectedAttachmentDetails;if(!e)return;if("replacing-attachment"===this.page)return this._renderAttachmentReplacePanel(e);const{attachment:t,input:a}=e,i=_(t),n=!!a.getAttachmentPreviewUrl(t),s=a.getAttachmentEditState(t),l=!this.readOnly&&!this.effectiveDisabled,o=l&&a.canUploadFiles;return ce("div",{class:k.attachmentElementDetail,key:`attachment-detail-panel-${a.template.elementId}-${i}`},ce("div",{class:k.attachmentElementDetailPreview},this._renderAttachmentPreviewImageForInput(t,a)),ce("div",{class:k.attachmentElementDetailActions},A(t)?ce("calcite-button",{appearance:"outline",disabled:!n,iconStart:"expand",kind:"neutral",label:this.messages.attachments.maximize,scale:"m",title:this.messages.attachments.maximize,onclick:this._maximizeSelectedAttachment}):null,ce("calcite-button",{appearance:"outline",disabled:!n,iconStart:"download",kind:"neutral",label:this.messages.attachments.download,scale:"m",title:this.messages.attachments.download,onclick:()=>{this._downloadAttachment(t)}}),ce("calcite-button",{appearance:"outline",disabled:!o,iconStart:"upload-to",kind:"neutral",label:this.messages.attachments.replace,scale:"m",title:this.messages.attachments.replace,onclick:this._enterAttachmentReplaceView})),ce("div",{class:k.attachmentElementDetailMetadata},ce("div",{class:k.attachmentElementDetailMetadataGroup},ce("span",{class:k.attachmentElementDetailMetadataLabel},this.messages.attachments.fileName),a.allowUserRename?ce("div",{class:k.attachmentElementDetailFileNameRow},ce("calcite-input",{class:k.attachmentElementDetailFileNameInput,disabled:!l,scale:"m",value:t.name||"",onCalciteInputInput:({currentTarget:e})=>this._renameSelectedAttachment(e.value)}),ce("calcite-button",{appearance:"transparent",disabled:!l||null==s.initialName||!s.isRenamed,iconStart:"reset",kind:"neutral",scale:"m",title:this.messages.footerButtons.reset,onclick:this._resetSelectedAttachmentName})):ce("span",{class:k.attachmentElementDetailMetadataValue},t.name)),ce("div",{class:k.attachmentElementDetailMetadataGroup},ce("span",{class:k.attachmentElementDetailMetadataLabel},this.messages.attachments.size),ce("span",{class:k.attachmentElementDetailMetadataValue},this._formatAttachmentSize(t.size))),ce("div",{class:k.attachmentElementDetailMetadataGroup},ce("span",{class:k.attachmentElementDetailMetadataLabel},this.messages.attachments.type),ce("span",{class:k.attachmentElementDetailMetadataValue},this._getLabelForAttachmentType(t)))))}_renderAttachmentReplacePanel(e){const{attachment:t,input:a}=e,i=this.readOnly||this.effectiveDisabled||!a.canUploadFiles,n=a.template.elementId;return ce("div",{class:k.attachmentElementAddPanel,key:`attachment-replace-panel-${n}-${_(t)}`},ce("input",{accept:a.accept,afterCreate:this._setSelectedAttachmentReplaceFileInput,afterRemoved:()=>{this._selectedAttachmentReplaceFileInput=null},afterUpdate:this._setSelectedAttachmentReplaceFileInput,class:k.attachmentElementFileInput,disabled:i,type:"file",onchange:e=>{const t=e.currentTarget,a=t.files?.[0];a&&this._stageSelectedAttachmentReplacement(a),t.value=""}}),ce("div",{class:k.attachmentElementAddDropzone,"data-disabled":i?"true":"false",ondragover:e=>{e.preventDefault()},ondrop:e=>{if(e.preventDefault(),i)return;const t=e.dataTransfer?.files?.[0];t&&this._stageSelectedAttachmentReplacement(t)}},ce("calcite-icon",{class:k.attachmentElementAddDropzoneIcon,icon:"refresh",scale:"l"}),ce("div",{class:k.attachmentElementAddDropzoneHeading},this.messages.attachments.replace),ce("div",{class:k.attachmentElementAddDropzoneDetail,title:this.messages.attachments.dragAndDropFile},this.messages.attachments.dragAndDropFile),ce("calcite-button",{appearance:"outline-fill",disabled:i,iconStart:"folder-open",scale:"s",onclick:e=>{e.stopPropagation(),this._openSelectedAttachmentReplaceFilePicker()}},this.messages.attachments.selectFile)),ce("div",{class:k.attachmentElementDetailMetadata},ce("div",{class:k.attachmentElementDetailMetadataGroup},ce("span",{class:k.attachmentElementDetailMetadataLabel},this.messages.attachments.fileToBeReplaced),ce("span",{class:k.attachmentElementDetailMetadataValue},t.name))))}_renderAttachmentDialog(){const e=this._attachmentDialogInfo;if(!e)return null;const{attachment:t,input:a}=e;return ce("calcite-dialog",{heading:t.name||this.messagesCommon.details,key:"attachment-preview-dialog",modal:!0,open:!0,placement:"cover",width:"l",onCalciteDialogClose:this._closeAttachmentDialog},ce("div",{class:k.attachmentElementDetailPreview},this._renderAttachmentPreviewImageForInput(t,a)))}_setSelectedAttachment(e){this.viewModel.setSelectedAttachment(e),e||this.hideAttachmentDialog()}_setAttachmentAddElementId(e){this.viewModel.setSelectedAttachmentAddElementId(e),this.hideAttachmentDialog()}_setAttachmentListElementId(e){this.viewModel.setSelectedAttachmentListElementId(e),this.hideAttachmentDialog()}_getAttachmentLabel(e,a,i,n){return!1!==n&&g(e.name)&&e.name.length>0?e.name:i!==this.messagesCommon.notApplicable?i:t(this.messages.attachments.attachmentNumberedLabel,{index:a+1})}_formatAttachmentSize(e){return null==e||Number.isNaN(e)?this.messagesCommon.notApplicable:m(this.messagesUnits,e)}_getLabelForAttachmentType({contentType:e}){if(!e)return this.messagesCommon.notApplicable;const t=this.messages.attachments.attachmentTypes,a=f(e);return t?.[a]||e}_renderAttachmentPreviewThumbnail(e,t,a){const i=a.getAttachmentPreviewUrl(e,64);return i&&A(e)?ce("img",{alt:t,class:k.attachmentElementListItemThumb,src:i}):ce("calcite-icon",{class:k.attachmentElementListItemIcon,icon:b(e.contentType),scale:"s"})}_renderAttachmentPreviewImageForInput(e,t){const a=t.getAttachmentPreviewUrl(e),i=e.name||this.messagesCommon.details;return a&&A(e)?ce("img",{alt:i,class:k.attachmentElementDetailPreviewImage,src:a,title:i}):[ce("calcite-icon",{class:k.attachmentElementDetailPreviewIcon,icon:b(e.contentType),scale:"l",textLabel:i,title:i}),this.messages.attachments.noPreviewAvailable]}async _downloadAttachment(e){await X(e)}_canReplaceSelectedAttachment(){return!this.readOnly&&!this.effectiveDisabled&&!!this.selectedAttachmentDetails?.input.canUploadFiles}_exitAttachmentReplaceView(){this.viewModel.setShowingSelectedAttachmentReplacePage(!1),this._selectedAttachmentReplaceFileInput=null}async _stageSelectedAttachmentReplacement(e){const t=this.selectedAttachmentDetails,a=t?.attachment.globalId;if(t&&a)try{await this.viewModel.stageReplaceAttachment(t.input.template.elementId,a,e)}finally{this._exitAttachmentReplaceView()}}_renameSelectedAttachment(e){const t=this.selectedAttachmentDetails,a=t?.attachment.globalId;t&&a&&this.viewModel.stageRenameAttachment(t.input.template.elementId,a,e)}_isSelectedAttachmentDeleteDisabled(){const e=this.selectedAttachmentDetails;if(!e)return!1;if(this.readOnly||this.effectiveDisabled)return!0;const t=e.input.minAttachmentCount;return null!=t&&e.input.attachments.length<=t}hideAttachmentDialog(){this._attachmentDialogInfo=null}_renderTextComponent(e){const{elementId:t}=e.template;return ce("div",{class:k.textElementInput,"data-testid":`text-element-${t}`,innerHTML:e.text,key:`text-element-${t}`})}_renderUtilityNetworkAssociationsElementInput(e){if(!this._associationsEnabled)return;const{elementId:t}=e.template;return ce("div",{class:k.utilityNetworkAssociationsElementInput,"data-testid":t,key:t},this._associationsWidgetsMap.get(e)?.render())}getCommonInputProps(e){const{template:t,valid:a,value:i,minLength:n,maxLength:s,required:l,fieldName:o,editable:r,userHasChangedValue:c,range:{max:d,min:m}}=e,h=!r||this.readOnly,u=!h&&this.effectiveDisabled;let p=t.hint??void 0,g=!1;return i===N&&(p=this.messages.differentValuesPlaceholder,g=!0),{afterCreate:this._afterComponentCreateOrUpdate,afterUpdate:this._afterComponentCreateOrUpdate,"aria-invalid":a?"false":"true",class:this.classes(k.fieldInput,h?k.inputDisabled:null),status:!c&&!this.viewModel.submitHasBeenAttempted||a?"idle":"invalid",maxLength:s&&s>-1?s:void 0,minLength:n&&n>-1?n:void 0,key:t.elementId,label:o,name:o,max:null!=d?d:void 0,min:null!=m?m:void 0,disabled:u,readOnly:h,onblur:this._onComponentBlur,required:l,placeholder:p,value:g?"":i??"",[he]:t.elementId,onfocus:this._onComponentFocus}}_onFormSubmit(e){e.preventDefault()}_getFieldInputFromHTMLElement(e){return this.viewModel.findFieldInput(e.getAttribute(he))}_afterRadioGroupCreateOrUpdate(e){const t=e.selectedItem,a=e.querySelector("calcite-radio-button"),i=t||a;i&&this._afterComponentCreateOrUpdate(i)}_onComponentFocus(e){const t=e.target,a=this._getFieldInputFromHTMLElement(t);this._isMultipleChoiceCheckbox(t,a)||this._markFieldInputTouched(a),this._focusedFieldInput=a}_markFieldInputTouched(e){this._touchedInputs.add(e.template.elementId)}_isMultipleChoiceCheckbox(e,t){return"CALCITE-CHECKBOX"===e.tagName&&null!=t.multipleChoiceInput}_afterComponentCreateOrUpdate(e){const t=this._getFieldInputFromHTMLElement(e),a=this._focusedFieldInput;this._attemptFocusOnNextRender&&a===t&&(this._attemptFocusOnNextRender=!1,de(e))}_onComponentBlur(){this._focusedFieldInput=null}_resetTransientFormState(){this._attemptFocusOnNextRender=!1,this._focusedFieldInput=null,this._attachmentDialogInfo=null,this._selectedAttachmentReplaceFileInput=null,this._attachmentListFilterText="",this._attachmentFileInputMap.clear()}_parseValue(e,t,a=!1){const i=t.multipleChoiceInput,n=t.multipleChoiceValues;if(i&&n){const s=i.choiceDelimiter,l=e;if(a){return Z({input:t}).checked?null:n.length>0?n.join(s):null}const o=H(t.value,s).filter(e=>e!==N),r=new Set(o);l.checked?r.add(l.value):r.delete(l.value);const c=n.filter(e=>r.has(e));return c.length?c.join(s):null}if(F(t.template,"switch")){if("calcite-dropdown"===e.localName&&t.domain)for(const a of t.domain.codedValues)if(a.name===e.selectedItems[0].textContent)return a.code;return e.checked?t.template.input.onValue:t.template.input.offValue}const s=e.value;return null==s||""===s?null:"number"===t.dataType?"-0"===s||"-0."===s||"-0,"===s?s:parseFloat(s):"date"===t.field.type?parseFloat(s):s}_saveInput(e){const t=this._getFieldInputFromHTMLElement(e),{elementId:a}=t.template;if(!t)return;const i=t?.value;if(F(t.template,"switch")&&"single"!==this.viewModel.mode){const e=n(this._batchSwitchInputInitialValues,t,()=>t.value);this._batchSwitchInputInitialValues.set(t,null===e?i:e)}const s=this._parseValue(e,t);s!==i&&this.viewModel.setValue(a,s)}_afterDateComponentCreate(e){this._setDateTimeTimeZoneMap(e),this._afterComponentCreateOrUpdate(e)}_saveValueFromDateComponent(e,t){const{elementId:a}=e.template,i=e.field.type,n=this._dateComponentMap.get(`${a}`);if(!n)return;const s=e.effectiveTimeZone;let l=e.value===N?void 0:e.value,o=null;"date-only"===i?o=Array.isArray(t.value)?t.value[0]:t.value:"time-only"===i?(l=ae(l),o=ae(t.value)):o="timestamp-offset"===i?null!=t.value?ie({dateComponent:n.date,timeComponent:n.time,oldValue:l,timeZoneComponent:n.timeZone,defaultTimeZone:s}):null:null!=t.value?ne({oldValue:l,dateComponent:n.date,timeZone:s,timeComponent:n.time?.value===N?void 0:n.time}):null,l!==o&&(null!==o&&t.value?this.viewModel.setValue(`${a}`,o):this.viewModel.setValue(`${a}`,null))}_renderViewingAssociationsPage(){return this._associationsList?.render()}_onActiveAssociationsInputChange(e){const t=this._associationsList;t&&(e?(t.associationInput=e,t.viewModel=e.viewModel):t.associationInput=null)}async _setUpAssociationsWidgets(){this._destroyAssociationsWidgets();const e=this.viewModel.activeForm.allUtilityNetworkAssociationsElementInputs;if(this._associationsEnabled&&0!==e.length){await this._setUpUtilityNetworkAssociationList();for(const t of e)this._associationsWidgetsMap.set(t,await this._createAssociationsWidget(t))}}async _setUpUtilityNetworkAssociationList(){if(this._associationsList)return;const e=(await import("./FeatureForm/FeatureFormUtilityNetworkAssociations/FeatureFormUtilityNetworkAssociationList.js")).default;this._associationsList=new e({onSelectLayer:this._onSelectAssociatedLayer.bind(this),onSelectFeature:this._onEditAssociatedFeature.bind(this),onAddAssociation:this._onAddAssociation.bind(this)})}async _createAssociationsWidget(e){return new(0,(await import("./Feature/FeatureUtilityNetworkAssociations.js")).default)({viewModel:e.viewModel,onSelectAssociationType:t=>this._onSelectAssociationType(e,t)})}_destroyAssociationsWidgets(){this._associationsList=s(this._associationsList),this._associationsWidgetsMap.forEach(e=>s(e)),this._associationsWidgetsMap.clear()}_onSelectAssociationType(e,{listType:t}){this.setActiveAssociationsInput(e),this.setActiveAssociationType(t)}_onSelectAssociatedLayer({layer:e}){this.setActiveAssociationsLayer(e)}async _onEditAssociatedFeature(e){const t=this.callbacks?.editAssociatedFeature,a=this.viewModel.activeAssociationsInput;if(!t||!a?.feature)return;const{association:i,feature:n}=e;await t({parentFeature:a.feature.plainGraphic,association:i,feature:n})}_onAddAssociation(e){const t=this.callbacks?.addAssociation,a=this.viewModel.activeAssociationsInput;if(!t||!a?.feature)return;const{associationType:i,utilityNetwork:n}=e;t({feature:a.feature.plainGraphic,associationType:i,utilityNetwork:n})}};function ve(e){switch(e){case"audio":return b("audio/mpeg");case"video":return b("video/mp4");case"image":return b("image/png");default:return"camera"}}e([h()],ge.prototype,"activeFeatureIndex",null),e([h()],ge.prototype,"callbacks",null),e([h()],ge.prototype,"disabled",null),e([h()],ge.prototype,"effectiveTitle",null),e([h()],ge.prototype,"effectiveDisabled",null),e([h()],ge.prototype,"features",null),e([h()],ge.prototype,"footerButtonInfos",null),e([h()],ge.prototype,"footerNoticeInfos",null),e([h()],ge.prototype,"map",null),e([h()],ge.prototype,"maximumFeatureCount",null),e([h()],ge.prototype,"maximumFeatureCountWithComplexForms",null),e([h()],ge.prototype,"spatialReference",null),e([h()],ge.prototype,"layerInfos",null),e([h()],ge.prototype,"timeZone",null),e([h()],ge.prototype,"headingLevel",void 0),e([h()],ge.prototype,"icon",null),e([h(),oe("esri/t9n/common")],ge.prototype,"messagesCommon",void 0),e([h(),oe("esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm")],ge.prototype,"messages",void 0),e([h(),oe("esri/core/t9n/Units")],ge.prototype,"messagesUnits",void 0),e([h()],ge.prototype,"page",null),e([h()],ge.prototype,"readOnly",null),e([h()],ge.prototype,"selectedAttachment",null),e([h()],ge.prototype,"selectedAttachmentDetails",null),e([h()],ge.prototype,"valid",null),e([h({type:w}),re(["value-change","values-change","submit"])],ge.prototype,"viewModel",void 0),e([h({type:T,nonNullable:!0})],ge.prototype,"visibleElements",void 0),e([h()],ge.prototype,"groupDisplay",void 0),e([h()],ge.prototype,"_associationsEnabled",null),e([h()],ge.prototype,"_associationsList",void 0),e([h()],ge.prototype,"_attemptFocusOnNextRender",void 0),e([h()],ge.prototype,"_formId",null),e([h()],ge.prototype,"_focusedFieldInput",void 0),e([h()],ge.prototype,"_relatedRecordsEnabled",null),e([h()],ge.prototype,"_attachmentDialogInfo",void 0),e([h()],ge.prototype,"_attachmentListFilterText",void 0),ge=e([u("esri.widgets.BatchAttributeForm")],ge);const fe=ge;export{fe as default};
@@ -102,7 +102,7 @@ export interface DaylightEvents extends DaylightViewModelEvents {}
102
102
  * });
103
103
  * ```
104
104
  *
105
- * ![daylight-animation](https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/daylight/daylight-animation.webm)
105
+ * <video src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/daylight/daylight-animation.webm" aria-label="daylight-animation" autoplay muted playsinline loop></video>
106
106
  *
107
107
  * Except for the daytime slider, all the elements in the daylight widget can be hidden by using the
108
108
  * [visibleElements](https://developers.arcgis.com/javascript/latest/references/core/widgets/Daylight/#visibleElements) property:
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../../core/Collection.js";import r from"../../core/Error.js";import{EventedAccessor as i}from"../../core/Evented.js";import o from"../../core/Logger.js";import{clamp as s}from"../../core/mathUtils.js";import{debounce as a,throwIfNotAbortError as l,isAbortError as n}from"../../core/promiseUtils.js";import{watch as u,syncAndInitial as d,when as c,on as h}from"../../core/reactiveUtils.js";import{property as p,subclass as m}from"../../core/accessorSupport/decorators.js";import{resolveTimeZone as v,formatTimestamp as y,convertDateFormatToIntlOptions as g}from"../../intl/date.js";import{getLocale as f,getLocaleParts as w}from"../../intl/locale.js";import{fetchServiceDescription as _}from"../../rest/networkService.js";import T from"../../rest/support/RouteParameters.js";import S from"../../rest/support/Stop.js";import D from"../../rest/support/TravelMode.js";import{defaultDatePattern as b,defaultTimePattern as C}from"../../support/dateUtils.js";import{system as M}from"../../time/constants.js";import{shortTimeZoneName as I}from"../../time/timeZoneUtils.js";import{DepartureTimeOption as j}from"./support/directionsUtils.js";import{getDefaultLocaleOptions as A}from"../support/dateUtils.js";import{GoTo as P}from"../support/GoTo.js";import{DateTime as L,FixedOffsetZone as O,IANAZone as R}from"luxon";function E(e){return e.map(e=>({locale:e,parts:w(e)})).filter(({parts:e})=>!!e)}function U(e,t){return e.find(({parts:e})=>V(e.language,t.language)&&e.region===t.region)?.locale??e.find(({parts:e})=>V(e.language,t.language))?.locale}function N(e){return"esri.Graphic"===e?.declaredClass}function k(e){return"no"===e||"nb"===e}function V(e,t){return e===t||k(e)&&k(t)}function z(e){return"esri.rest.support.Stop"===e?.declaredClass}let F=class extends(P(i)){constructor(e){super(e),this._debouncedSolveHandler=a(async e=>{switch(e.type){case"create":switch(e.state){case"start":case"active":return}break;case"delete":break;case"update":switch(e.state){case"start":return void(this._networkFeatureUpdated=!1);case"active":if(this._networkFeatureUpdated=!0,this.autoSolveOn.includes("active"))break;return;case"complete":if(!this._networkFeatureUpdated)return;if(this.autoSolveOn.includes("complete"))break;return}}if((this.layer?.stops.filter(({geometry:e})=>!!e).length??0)<2||!this.autoSolve)return;const t="update"===e.type&&"active"===e.state,r=t?e.networkFeatures.filter(e=>"stop"===e.type):void 0;try{await this.getDirections({zoomToSolvedRoute:!1,draggedStops:r,generalizeGeometry:t})}catch(i){o.getLogger(this).error(i)}}),this._highlight=null,this._loadController=null,this._loadPromise=null,this._networkFeatureUpdated=!1,this._layerView=null,this._routeController=null,this._serviceDescriptionStatus=3,this.apiKey=void 0,this.autoSolve=!0,this.autoSolveOn=["complete"],this.defaultTravelMode=null,this.departureIsoDate=void 0,this.departureIsoTime=void 0,this.departureOption=j.NOW,this.departureTime="now",this.lastError=null,this.lastRoute=null,this.layer=null,this.maxStops=50,this.routeParameters=new T({directionsLengthUnits:"kilometers",findBestSequence:!1,preserveFirstStop:!0,preserveLastStop:!0,returnZ:!0,useTimeWindows:!1}),this.serviceDescription=null,this.view=null}initialize(){this.addHandles([u(()=>this.layer,e=>{if(e){for(;e.stops.length<2;)e.stops.add(new S);this._set("defaultTravelMode",null),this.addHandles(c(()=>this.serviceDescription?e.routeInfo?.analysisSettings?.travelMode:null,e=>{this.defaultTravelMode=this._resolveDefaultTravelMode(e)},{once:!0}))}},d),u(()=>[this.layer,this.view],async()=>{this._layerView=await this._getRouteLayerView()},d),h(()=>this._layerView,["create","delete","update"],e=>{this._debouncedSolveHandler(e).catch(l)})]);const e=v(this.view?.timeZone??M),t=L.fromMillis(Date.now());this.departureIsoDate=t.toFormat(b,A(e)),this.departureIsoTime=t.toFormat(C,A(e))}get _directionsLanguage(){const e=this.serviceDescription?.directionsSupportedLanguages;if(!e)return;const t=this.routeParameters.directionsLanguage??f(),r=w(t),i=r?.language,o=r?.region;if(!i)return;return U(E(e),{language:i,region:o})}get formattedEta(){const e=this.layer?.routeInfo?.endTime,t=this.layer?.routeInfo?.endTimeOffset;if(this.departureOption===j.UNSPECIFIED||!e||!t)return null;const r=L.fromJSDate(e,{zone:O.instance(t)}),i=L.fromJSDate(e,{zone:R.create(v(this.view?.timeZone??M))}),o=L.fromJSDate(new Date,{zone:R.create(v(this.view?.timeZone??M))}),s=o.year===i.year&&o.month===i.month&&o.day===i.day,a=i.offset===t?void 0:I,l=s?void 0:g("short-date"),n=g("short-time");return y(r.toISO(),{...l,...n,timeZoneName:a})}get impedanceAttribute(){const e=this.routeParameters.travelMode?.impedanceAttributeName??this.routeParameters.impedanceAttribute??this.serviceDescription?.impedance??null;return this.getCostAttribute(e)}get selectedNetworkFeatures(){return this._layerView?.selectedNetworkFeatures??null}get selectedTravelMode(){return this.serviceDescription?this.defaultTravelMode??this.serviceDescription.defaultTravelMode??this.serviceDescription.supportedTravelModes?.[0]??null:null}set selectedTravelMode(e){this._override("selectedTravelMode",e)}get state(){if(this._routeController)return"routing";if(this.lastError)return"error";switch(this._serviceDescriptionStatus){case 4:return"unauthenticated";case 3:return"disabled";case 0:return"initializing";case 2:return"error";default:return"ready"}}get timeAttribute(){const e=this.routeParameters.travelMode?.timeAttributeName??this.routeParameters.directionsTimeAttribute??this.serviceDescription?.directionsTimeAttribute??null;return this.getCostAttribute(e)}get travelModes(){const e=this.serviceDescription?.supportedTravelModes?.slice()??[];return null==this.defaultTravelMode||e.includes(this.defaultTravelMode)||e.unshift(this.defaultTravelMode),e}async load(){if(this._loadPromise)return this._loadPromise;this._loadPromise=this._load(),await this._loadPromise,this._loadPromise=null}async highlight(e){this.clearHighlights();const t=await this._getRouteLayerView();this._highlight=t?.highlight(e)??null}clearHighlights(){this._highlight?.remove(),this._highlight=null}centerAt(e){if(!this.view)return;const t=z(e)||N(e)?e.geometry:e;t&&this.callGoTo({target:t})}clearResults(){this._set("lastRoute",null),this.layer?.removeResult()}async create(e){await(this._layerView?.create(e))}async getDirections(e={zoomToSolvedRoute:!0,generalizeGeometry:!1}){const{apiKey:t,layer:i,state:o}=this;if(!i)throw new r("directions-view-model:missing-route-layer","A route layer must be associated with the view model.");if("disabled"===o||"initializing"===o||"unauthenticated"===o||2===this._serviceDescriptionStatus)throw new r("directions-view-model:not-loaded","Cannot get directions until view model loads.");this._routeController?.abort(),this._routeController=null;const{startTime:s,startTimeIsUTC:a}=this._getStartTimeParameters(),l=this.view?.spatialReference??null,u=this.routeParameters.clone(),d=e.generalizeGeometry?this._getGeometryPrecision():null;u.set({apiKey:t,directionsLanguage:this._directionsLanguage,geometryPrecision:d,outSpatialReference:l,startTime:s,startTimeIsUTC:a}),this.selectedTravelMode&&(u.travelMode=this.selectedTravelMode);if(i.stops.filter(({geometry:e})=>!!e).length<2){const e=new r("directions-view-model:not-enough-stops","Not enough stops for routing");throw this._set("lastError",e),e}i.stops.forEach(e=>e.sequence=null),this._routeController=new AbortController;const{signal:c}=this._routeController;let h=null;try{h=await i.solve(u,{signal:c})}catch(p){if(!n(p)){const e=new r("directions-view-model:unable-to-route","Unable to route to these addresses",{error:p});throw this._set("lastError",e),this.clearResults(),e}}finally{this._routeController=null}this._set("lastError",null);for(const r of h.stops)r.geometry||(r.name=null);if(e.draggedStops&&i.stops.every(({objectId:e})=>!!e)&&h.stops.every(({objectId:e})=>!!e))for(const{objectId:r,geometry:n}of e.draggedStops){if(!r||!n)continue;const e=h.stops.find(e=>e.objectId===r);e&&(e.geometry=n.clone())}return i.update(h),this._set("lastRoute",h),e.zoomToSolvedRoute&&this.zoomToRoute(),h}getCostAttribute(e){return(this.serviceDescription?.networkDataset?.networkAttributes??[]).find(({name:t,usageType:r})=>t===e&&"cost"===r)??null}remove(e){this._layerView?.remove(e)}reset(){this.clearHighlights(),this.clearResults(),null!=this.layer&&(this.layer.removeAll(),this.layer.stops=new t([new S,new S]))}save(){if(!this.layer)throw new r("directions-view-model:missing-layer","save() requires a layer");return this.layer.save()}saveAs(e,t={}){if(!this.layer)throw new r("directions-view-model:missing-layer","saveAs() requires a layer");return this.layer.saveAs(e,t)}startEditing(){this._layerView&&(this._layerView.interactive=!0,this._layerView.interactiveOptions.waypointAdditionEnabled=!this.routeParameters.findBestSequence)}stopEditing(){this._layerView&&(this._layerView.interactive=!1)}updateDepartureTime(){if(this.departureIsoDate&&this.departureIsoTime)switch(this.departureOption){case j.NOW:this.departureTime="now";break;case j.DEPART_AT:{const e=L.fromISO(`${this.departureIsoDate}T${this.departureIsoTime}`,{zone:O.instance(0)});this.departureTime=e.toJSDate();break}case j.UNSPECIFIED:this.departureTime=null}}zoomToRoute(){const{view:e,layer:t}=this,r=t?.routeInfo?.geometry?.extent;if(!e||!r)return;const i=r.width>r.height,o=r.clone().expand(i?2:1);this.callGoTo({target:o})}_getGeometryPrecision(){const e=this.view?.resolution;return e?s(Math.ceil(-Math.log10(e)),0,4):null}async _getRouteLayerView(){return this.view&&this.layer?this.view.whenLayerView(this.layer):null}_getStartTimeParameters(){if("now"===this.departureTime){return{startTime:this.serviceDescription?.capabilities.supportsNow??!1?"now":new Date,startTimeIsUTC:!0}}return null==this.departureTime?{startTime:void 0,startTimeIsUTC:void 0}:{startTime:this.departureTime,startTimeIsUTC:!1}}async _load(){if(null==this.layer)return;null!=this._loadController&&(this._loadController.abort(),this._loadController=null),this._loadController=new AbortController;const{signal:e}=this._loadController;try{this._serviceDescriptionStatus=0;const t=await _(this.layer.url,this.apiKey,{signal:e});this._set("serviceDescription",t),this._serviceDescriptionStatus=1}catch(t){if(n(t))return void(this._serviceDescriptionStatus=3);if("identity-manager:user-aborted"===t.name)return void(this._serviceDescriptionStatus=4);const e=new r("directions-view-model:service-metadata-unavailable","Cannot load route service metadata",{error:t});throw this._serviceDescriptionStatus=2,this._set("lastError",e),e}finally{this._loadController=null}}_resolveDefaultTravelMode(e){if(null==this.serviceDescription)return null;const{defaultTravelMode:t,supportedTravelModes:r}=this.serviceDescription,i=/^<(?<name>.*)>$/i.exec(e.name)?.groups?.name;if(i){const o=r?.find(({name:e})=>e.toLocaleLowerCase()===i.trim().toLocaleLowerCase()),s=o??t;return D.fromJSON({...s?.toJSON(),...e.toJSON()})}const o=r?.find(({name:t})=>t.toLocaleLowerCase()===e.name.toLocaleLowerCase());return o??t}};e([p()],F.prototype,"_directionsLanguage",null),e([p()],F.prototype,"_layerView",void 0),e([p()],F.prototype,"_routeController",void 0),e([p()],F.prototype,"_serviceDescriptionStatus",void 0),e([p()],F.prototype,"apiKey",void 0),e([p()],F.prototype,"autoSolve",void 0),e([p({nonNullable:!0})],F.prototype,"autoSolveOn",void 0),e([p()],F.prototype,"defaultTravelMode",void 0),e([p()],F.prototype,"departureTime",void 0),e([p()],F.prototype,"formattedEta",null),e([p({readOnly:!0})],F.prototype,"impedanceAttribute",null),e([p()],F.prototype,"lastError",void 0),e([p({readOnly:!0})],F.prototype,"lastRoute",void 0),e([p()],F.prototype,"layer",void 0),e([p({type:Number,range:{min:2,max:50},nonNullable:!0})],F.prototype,"maxStops",void 0),e([p({type:T,nonNullable:!0})],F.prototype,"routeParameters",void 0),e([p({readOnly:!0})],F.prototype,"selectedNetworkFeatures",null),e([p({type:D})],F.prototype,"selectedTravelMode",null),e([p({readOnly:!0})],F.prototype,"serviceDescription",void 0),e([p({readOnly:!0})],F.prototype,"state",null),e([p({readOnly:!0})],F.prototype,"timeAttribute",null),e([p()],F.prototype,"travelModes",null),e([p()],F.prototype,"view",void 0),e([p()],F.prototype,"zoomToRoute",null),F=e([m("esri.widgets.Directions.DirectionsViewModel")],F);const x=F;export{x as default};
2
+ import{__decorate as e}from"tslib";import t from"../../core/Collection.js";import r from"../../core/Error.js";import{EventedAccessor as i}from"../../core/Evented.js";import o from"../../core/Logger.js";import{clamp as s}from"../../core/mathUtils.js";import{debounce as a,throwIfNotAbortError as n,isAbortError as l}from"../../core/promiseUtils.js";import{watch as u,syncAndInitial as d,when as c,on as h}from"../../core/reactiveUtils.js";import{property as p,subclass as m}from"../../core/accessorSupport/decorators.js";import{resolveTimeZone as v,formatTimestamp as y,convertDateFormatToIntlOptions as g}from"../../intl/date.js";import{getLocale as f,getLocaleParts as w}from"../../intl/locale.js";import{fetchServiceDescription as _}from"../../rest/networkService.js";import T from"../../rest/support/RouteParameters.js";import S from"../../rest/support/Stop.js";import b from"../../rest/support/TravelMode.js";import{defaultDatePattern as D,defaultTimePattern as C}from"../../support/dateUtils.js";import{system as M}from"../../time/constants.js";import{shortTimeZoneName as I}from"../../time/timeZoneUtils.js";import{DepartureTimeOption as A}from"./support/directionsUtils.js";import{getDefaultLocaleOptions as P}from"../support/dateUtils.js";import{GoTo as j}from"../support/GoTo.js";import{DateTime as O,FixedOffsetZone as E,IANAZone as L}from"luxon";function R(e){return e.map(e=>({locale:e,parts:w(e)})).filter(({parts:e})=>!!e)}function U(e,t){return e.find(({parts:e})=>k(e.language,t.language)&&e.region===t.region)?.locale??e.find(({parts:e})=>k(e.language,t.language))?.locale}function V(e){return"esri.Graphic"===e?.declaredClass}function N(e){return"no"===e||"nb"===e}function k(e,t){return e===t||N(e)&&N(t)}function z(e){return"esri.rest.support.Stop"===e?.declaredClass}let F=class extends(j(i)){constructor(e){super(e),this._debouncedSolveHandler=a(async e=>{switch(e.type){case"create":switch(e.state){case"start":case"active":return}break;case"delete":break;case"update":switch(e.state){case"start":return void(this._networkFeatureUpdated=!1);case"active":if(this._networkFeatureUpdated=!0,this.autoSolveOn.includes("active"))break;return;case"complete":if(!this._networkFeatureUpdated)return;if(this.autoSolveOn.includes("complete"))break;return}}if((this.layer?.stops.filter(({geometry:e})=>!!e).length??0)<2||!this.autoSolve||!this._layerView)return;const t="update"===e.type&&"active"===e.state,r=t?e.networkFeatures.filter(e=>"stop"===e.type):void 0;try{this._layerView.interactiveOptions.waypointAdditionEnabled=!1,await this.getDirections({zoomToSolvedRoute:!1,draggedStops:r,generalizeGeometry:t})}catch(i){o.getLogger(this).error(i)}finally{this._layerView.interactiveOptions.waypointAdditionEnabled=!this.routeParameters.findBestSequence}}),this._highlight=null,this._loadController=null,this._loadPromise=null,this._networkFeatureUpdated=!1,this._layerView=null,this._routeController=null,this._serviceDescriptionStatus=3,this.apiKey=void 0,this.autoSolve=!0,this.autoSolveOn=["complete"],this.defaultTravelMode=null,this.departureIsoDate=void 0,this.departureIsoTime=void 0,this.departureOption=A.NOW,this.departureTime="now",this.lastError=null,this.lastRoute=null,this.layer=null,this.maxStops=50,this.routeParameters=new T({directionsLengthUnits:"kilometers",findBestSequence:!1,preserveFirstStop:!0,preserveLastStop:!0,returnZ:!0,useTimeWindows:!1}),this.serviceDescription=null,this.view=null}initialize(){this.addHandles([u(()=>this.layer,e=>{if(e){for(;e.stops.length<2;)e.stops.add(new S);this._set("defaultTravelMode",null),this.addHandles(c(()=>this.serviceDescription?e.routeInfo?.analysisSettings?.travelMode:null,e=>{this.defaultTravelMode=this._resolveDefaultTravelMode(e)},{once:!0}))}},d),u(()=>[this.layer,this.view],async()=>{this._layerView=await this._getRouteLayerView()},d),h(()=>this._layerView,["create","delete","update"],e=>{this._debouncedSolveHandler(e).catch(n)})]);const e=v(this.view?.timeZone??M),t=O.fromMillis(Date.now());this.departureIsoDate=t.toFormat(D,P(e)),this.departureIsoTime=t.toFormat(C,P(e))}get _directionsLanguage(){const e=this.serviceDescription?.directionsSupportedLanguages;if(!e)return;const t=this.routeParameters.directionsLanguage??f(),r=w(t),i=r?.language,o=r?.region;if(!i)return;return U(R(e),{language:i,region:o})}get formattedEta(){const e=this.layer?.routeInfo?.endTime,t=this.layer?.routeInfo?.endTimeOffset;if(this.departureOption===A.UNSPECIFIED||!e||!t)return null;const r=O.fromJSDate(e,{zone:E.instance(t)}),i=O.fromJSDate(e,{zone:L.create(v(this.view?.timeZone??M))}),o=O.fromJSDate(new Date,{zone:L.create(v(this.view?.timeZone??M))}),s=o.year===i.year&&o.month===i.month&&o.day===i.day,a=i.offset===t?void 0:I,n=s?void 0:g("short-date"),l=g("short-time");return y(r.toISO(),{...n,...l,timeZoneName:a})}get impedanceAttribute(){const e=this.routeParameters.travelMode?.impedanceAttributeName??this.routeParameters.impedanceAttribute??this.serviceDescription?.impedance??null;return this.getCostAttribute(e)}get selectedNetworkFeatures(){return this._layerView?.selectedNetworkFeatures??null}get selectedTravelMode(){return this.serviceDescription?this.defaultTravelMode??this.serviceDescription.defaultTravelMode??this.serviceDescription.supportedTravelModes?.[0]??null:null}set selectedTravelMode(e){this._override("selectedTravelMode",e)}get state(){if(this._routeController)return"routing";if(this.lastError)return"error";switch(this._serviceDescriptionStatus){case 4:return"unauthenticated";case 3:return"disabled";case 0:return"initializing";case 2:return"error";default:return"ready"}}get timeAttribute(){const e=this.routeParameters.travelMode?.timeAttributeName??this.routeParameters.directionsTimeAttribute??this.serviceDescription?.directionsTimeAttribute??null;return this.getCostAttribute(e)}get travelModes(){const e=this.serviceDescription?.supportedTravelModes?.slice()??[];return null==this.defaultTravelMode||e.includes(this.defaultTravelMode)||e.unshift(this.defaultTravelMode),e}async load(){if(this._loadPromise)return this._loadPromise;this._loadPromise=this._load(),await this._loadPromise,this._loadPromise=null}async highlight(e){this.clearHighlights();const t=await this._getRouteLayerView();this._highlight=t?.highlight(e)??null}clearHighlights(){this._highlight?.remove(),this._highlight=null}centerAt(e){if(!this.view)return;const t=z(e)||V(e)?e.geometry:e;t&&this.callGoTo({target:t})}clearResults(){this._set("lastRoute",null),this.layer?.removeResult()}async create(e){await(this._layerView?.create(e))}async getDirections(e={zoomToSolvedRoute:!0,generalizeGeometry:!1}){const{apiKey:t,layer:i,state:o}=this;if(!i)throw new r("directions-view-model:missing-route-layer","A route layer must be associated with the view model.");if("disabled"===o||"initializing"===o||"unauthenticated"===o||2===this._serviceDescriptionStatus)throw new r("directions-view-model:not-loaded","Cannot get directions until view model loads.");this._routeController?.abort(),this._routeController=null;const{startTime:s,startTimeIsUTC:a}=this._getStartTimeParameters(),n=this.view?.spatialReference??null,u=this.routeParameters.clone(),d=e.generalizeGeometry?this._getGeometryPrecision():null;u.set({apiKey:t,directionsLanguage:this._directionsLanguage,geometryPrecision:d,outSpatialReference:n,startTime:s,startTimeIsUTC:a}),this.selectedTravelMode&&(u.travelMode=this.selectedTravelMode);if(i.stops.filter(({geometry:e})=>!!e).length<2){const e=new r("directions-view-model:not-enough-stops","Not enough stops for routing");throw this._set("lastError",e),e}i.stops.forEach(e=>e.sequence=null),this._routeController=new AbortController;const{signal:c}=this._routeController;let h=null;try{h=await i.solve(u,{signal:c})}catch(p){if(!l(p)){const e=new r("directions-view-model:unable-to-route","Unable to route to these addresses",{error:p});throw this._set("lastError",e),this.clearResults(),e}}finally{this._routeController=null}this._set("lastError",null);for(const r of h.stops)r.geometry||(r.name=null);if(e.draggedStops&&i.stops.every(({objectId:e})=>!!e)&&h.stops.every(({objectId:e})=>!!e))for(const{objectId:r,geometry:l}of e.draggedStops){if(!r||!l)continue;const e=h.stops.find(e=>e.objectId===r);e&&(e.geometry=l.clone())}return i.update(h),this._set("lastRoute",h),e.zoomToSolvedRoute&&this.zoomToRoute(),h}getCostAttribute(e){return(this.serviceDescription?.networkDataset?.networkAttributes??[]).find(({name:t,usageType:r})=>t===e&&"cost"===r)??null}remove(e){this._layerView?.remove(e)}reset(){this.clearHighlights(),this.clearResults(),null!=this.layer&&(this.layer.removeAll(),this.layer.stops=new t([new S,new S]))}save(){if(!this.layer)throw new r("directions-view-model:missing-layer","save() requires a layer");return this.layer.save()}saveAs(e,t={}){if(!this.layer)throw new r("directions-view-model:missing-layer","saveAs() requires a layer");return this.layer.saveAs(e,t)}startEditing(){this._layerView&&(this._layerView.interactive=!0,this._layerView.interactiveOptions.waypointAdditionEnabled=!this.routeParameters.findBestSequence)}stopEditing(){this._layerView&&(this._layerView.interactive=!1)}updateDepartureTime(){if(this.departureIsoDate&&this.departureIsoTime)switch(this.departureOption){case A.NOW:this.departureTime="now";break;case A.DEPART_AT:{const e=O.fromISO(`${this.departureIsoDate}T${this.departureIsoTime}`,{zone:E.instance(0)});this.departureTime=e.toJSDate();break}case A.UNSPECIFIED:this.departureTime=null}}zoomToRoute(){const{view:e,layer:t}=this,r=t?.routeInfo?.geometry?.extent;if(!e||!r)return;const i=r.width>r.height,o=r.clone().expand(i?2:1);this.callGoTo({target:o})}_getGeometryPrecision(){const e=this.view?.resolution;return e?s(Math.ceil(-Math.log10(e)),0,4):null}async _getRouteLayerView(){return this.view&&this.layer?this.view.whenLayerView(this.layer):null}_getStartTimeParameters(){if("now"===this.departureTime){return{startTime:this.serviceDescription?.capabilities.supportsNow??!1?"now":new Date,startTimeIsUTC:!0}}return null==this.departureTime?{startTime:void 0,startTimeIsUTC:void 0}:{startTime:this.departureTime,startTimeIsUTC:!1}}async _load(){if(null==this.layer)return;null!=this._loadController&&(this._loadController.abort(),this._loadController=null),this._loadController=new AbortController;const{signal:e}=this._loadController;try{this._serviceDescriptionStatus=0;const t=await _(this.layer.url,this.apiKey,{signal:e});this._set("serviceDescription",t),this._serviceDescriptionStatus=1}catch(t){if(l(t))return void(this._serviceDescriptionStatus=3);if("identity-manager:user-aborted"===t.name)return void(this._serviceDescriptionStatus=4);const e=new r("directions-view-model:service-metadata-unavailable","Cannot load route service metadata",{error:t});throw this._serviceDescriptionStatus=2,this._set("lastError",e),e}finally{this._loadController=null}}_resolveDefaultTravelMode(e){if(null==this.serviceDescription)return null;const{defaultTravelMode:t,supportedTravelModes:r}=this.serviceDescription,i=/^<(?<name>.*)>$/i.exec(e.name)?.groups?.name;if(i){const o=r?.find(({name:e})=>e.toLocaleLowerCase()===i.trim().toLocaleLowerCase()),s=o??t;return b.fromJSON({...s?.toJSON(),...e.toJSON()})}const o=r?.find(({name:t})=>t.toLocaleLowerCase()===e.name.toLocaleLowerCase());return o??t}};e([p()],F.prototype,"_directionsLanguage",null),e([p()],F.prototype,"_layerView",void 0),e([p()],F.prototype,"_routeController",void 0),e([p()],F.prototype,"_serviceDescriptionStatus",void 0),e([p()],F.prototype,"apiKey",void 0),e([p()],F.prototype,"autoSolve",void 0),e([p({nonNullable:!0})],F.prototype,"autoSolveOn",void 0),e([p()],F.prototype,"defaultTravelMode",void 0),e([p()],F.prototype,"departureTime",void 0),e([p()],F.prototype,"formattedEta",null),e([p({readOnly:!0})],F.prototype,"impedanceAttribute",null),e([p()],F.prototype,"lastError",void 0),e([p({readOnly:!0})],F.prototype,"lastRoute",void 0),e([p()],F.prototype,"layer",void 0),e([p({type:Number,range:{min:2,max:50},nonNullable:!0})],F.prototype,"maxStops",void 0),e([p({type:T,nonNullable:!0})],F.prototype,"routeParameters",void 0),e([p({readOnly:!0})],F.prototype,"selectedNetworkFeatures",null),e([p({type:b})],F.prototype,"selectedTravelMode",null),e([p({readOnly:!0})],F.prototype,"serviceDescription",void 0),e([p({readOnly:!0})],F.prototype,"state",null),e([p({readOnly:!0})],F.prototype,"timeAttribute",null),e([p()],F.prototype,"travelModes",null),e([p()],F.prototype,"view",void 0),e([p()],F.prototype,"zoomToRoute",null),F=e([m("esri.widgets.Directions.DirectionsViewModel")],F);const x=F;export{x as default};
@@ -127,7 +127,7 @@ export interface EditorEvents extends EditorViewModelEvents {}
127
127
  * [layerInfos](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/#layerInfos) property.
128
128
  * This property takes an array of objects which allows configuring the the editing experience for these layers.
129
129
  *
130
- * ![editor](https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/editor/editor-in-action2.webm)
130
+ * <video src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/editor/editor-in-action2.webm" aria-label="editor" autoplay muted playsinline loop></video>
131
131
  *
132
132
  * Note that the update operations (such as rotate, move, and transform) happen in the map space.
133
133
  * This means that, for example in 3D, if a graphic is rotated in a global WGS84 view, its shape and segment lengths change.
@@ -188,7 +188,7 @@ export interface EditorEvents extends EditorViewModelEvents {}
188
188
  *
189
189
  * See more about the available tooltip inputs and constraints under the [tooltip options](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/sketch/SketchTooltipOptions/) class.
190
190
  *
191
- * ![editing constraints](https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/editor/editing-constraints.webm)
191
+ * <video src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/editor/editing-constraints.webm" aria-label="editing constraints" autoplay muted playsinline loop></video>
192
192
  *
193
193
  * <span id="relationship-editing"></span>
194
194
  * ## Relationship editing
@@ -197,7 +197,7 @@ export interface EditorEvents extends EditorViewModelEvents {}
197
197
  *
198
198
  * Once the form is authored, the [Editor](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/) automatically checks if there is a [FormTemplate](https://developers.arcgis.com/javascript/latest/references/core/form/FormTemplate/) set on the editable [layer](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#formTemplate), or the widget's corresponding [LayerInfo](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/types/#LayerInfo). If the form's template is not set or is not configured to contain [relationship elements](https://developers.arcgis.com/javascript/latest/references/core/form/elements/RelationshipElement/), the Editor will not display the option to edit the relationship data. Additional considerations when using the Editor to edit related data are provided below.
199
199
  *
200
- * ![editing related records with the Editor widget](https://developers.arcgis.com/javascript/latest/assets/images/guide/whats-new/428/ff-related-features.webm)
200
+ * <video src="https://developers.arcgis.com/javascript/latest/assets/images/guide/whats-new/428/ff-related-features.webm" aria-label="editing related records with the Editor widget" autoplay muted playsinline loop></video>
201
201
  *
202
202
  * <details>
203
203
  * <summary>Read More</summary>
@@ -222,7 +222,7 @@ export interface EditorEvents extends EditorViewModelEvents {}
222
222
  *
223
223
  * Once the form is created, the [Editor](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/) checks if a [FormTemplate](https://developers.arcgis.com/javascript/latest/references/core/form/FormTemplate/) is assigned to the [layer](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#formTemplate) or the widget's [LayerInfo](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/types/#LayerInfo). If the form's template lacks the necessary [association elements](https://developers.arcgis.com/javascript/latest/references/core/form/elements/UtilityNetworkAssociationsElement/), the [Editor](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/) will not display associated features or options to edit them. Also, if an associated feature exists on a layer and that layer is not included in the [WebMap](https://developers.arcgis.com/javascript/latest/references/core/WebMap/) being used, the associated feature will not be shown in Editor.
224
224
  *
225
- * ![editing associated features with the Editor widget](https://developers.arcgis.com/javascript/latest/assets/images/guide/whats-new/432/ff-associated-features.webm)
225
+ * <video src="https://developers.arcgis.com/javascript/latest/assets/images/guide/whats-new/432/ff-associated-features.webm" aria-label="editing associated features with the Editor widget" autoplay muted playsinline loop></video>
226
226
  *
227
227
  * <span id="adding-associations"></span>
228
228
  * ### Creating associations
@@ -244,17 +244,17 @@ export interface EditorEvents extends EditorViewModelEvents {}
244
244
  *
245
245
  * Click "Add" to create the association.
246
246
  *
247
- * ![creating a new association with the Editor widget](https://developers.arcgis.com/javascript/latest/assets/images/guide/whats-new/432/ff-add-association.webm)
247
+ * <video src="https://developers.arcgis.com/javascript/latest/assets/images/guide/whats-new/432/ff-add-association.webm" aria-label="creating a new association with the Editor widget" autoplay muted playsinline loop></video>
248
248
  *
249
249
  * Alternatively, if compatible layers are visible on the map, a feature can be selected on the map using a spatial selection toolbar.
250
250
  * Features can be selected at a single point or within a region. Any compatible features at the selected point or within the defined region are displayed in a list.
251
251
  * Hover over a feature in the list to highlight it on the map; click a feature in the list to choose the feature to form the association with.
252
252
  *
253
- * ![spatially selecting a feature to form an association with](https://developers.arcgis.com/javascript/latest/assets/images/guide/whats-new/433/spatial-selection-demo-small.webm)
253
+ * <video src="https://developers.arcgis.com/javascript/latest/assets/images/guide/whats-new/433/spatial-selection-demo-small.webm" aria-label="spatially selecting a feature to form an association with" autoplay muted playsinline loop></video>
254
254
  *
255
255
  * While viewing compatible features on a layer, filters can optionally be used to find a specific feature to form an association with.
256
256
  *
257
- * ![creating a new association with attribute filter with the Editor widget](https://developers.arcgis.com/javascript/latest/assets/images/guide/whats-new/432/ff-add-association-filter.webm)
257
+ * <video src="https://developers.arcgis.com/javascript/latest/assets/images/guide/whats-new/432/ff-add-association-filter.webm" aria-label="creating a new association with attribute filter with the Editor widget" autoplay muted playsinline loop></video>
258
258
  *
259
259
  * <span id="deleting-associations"></span>
260
260
  * ### Deleting associations
@@ -283,7 +283,7 @@ export interface EditorEvents extends EditorViewModelEvents {}
283
283
  * While viewing associated features on a layer, a search bar can optionally be used to filter by the title of the
284
284
  * feature shown in the list.
285
285
  *
286
- * ![deleting an association with the Editor widget](https://developers.arcgis.com/javascript/latest/assets/images/guide/whats-new/432/ff-delete-association.webm)
286
+ * <video src="https://developers.arcgis.com/javascript/latest/assets/images/guide/whats-new/432/ff-delete-association.webm" aria-label="deleting an association with the Editor widget" autoplay muted playsinline loop></video>
287
287
  *
288
288
  * <span id="date-time"></span>
289
289
  * ## Editing date and time
@@ -144,7 +144,7 @@ export interface ElevationProfileProperties extends WidgetProperties, Partial<Pi
144
144
  * Scrolling the chart zooms in to a specific part of the profile chart. When zoomed in, click the minus button to reset the zoom.
145
145
  * On touch devices, pinch to zoom in and out.
146
146
  *
147
- * ![elevation-profile-draw](https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/elevation-profile/elevation-profile-draw.webm)
147
+ * <video src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/elevation-profile/elevation-profile-draw.webm" aria-label="elevation-profile-draw" autoplay muted playsinline loop></video>
148
148
  * _Drawing a path to get a ground profile._
149
149
  *
150
150
  * ![elevation-profile-zline](https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/elevation-profile/elevation-profile-zline.avif)
@@ -24,7 +24,7 @@ export interface ActionColumnProperties extends ColumnProperties, Partial<Pick<A
24
24
  *
25
25
  * ![featuretable action column](https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/featuretable/action-column.avif)
26
26
  *
27
- * [![FeatureTable action column](https://developers.arcgis.com/javascript/latest/assets/images/guide/whats-new/430/featuretable/table-actioncolumn.webm)](https://developers.arcgis.com/javascript/latest/sample-code/widgets-featuretable-row-highlights/)
27
+ * [<video src="https://developers.arcgis.com/javascript/latest/assets/images/guide/whats-new/430/featuretable/table-actioncolumn.webm" aria-label="FeatureTable action column" autoplay muted playsinline loop></video>](https://developers.arcgis.com/javascript/latest/sample-code/widgets-featuretable-row-highlights/)
28
28
  *
29
29
  * @since 4.30
30
30
  * @see [FeatureTable](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTable/)