@arcgis/core 5.1.0-next.78 → 5.1.0-next.79

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 (464) hide show
  1. package/analysis/ShadowCast/DiscreteOptions.d.ts +33 -6
  2. package/analysis/ShadowCast/DiscreteOptions.js +1 -1
  3. package/analysis/ShadowCast/MinDurationOptions.d.ts +6 -4
  4. package/analysis/ShadowCast/TotalDurationOptions.d.ts +33 -6
  5. package/analysis/ShadowCast/TotalDurationOptions.js +1 -1
  6. package/analysis/ShadowCast/colorStopsUtils.js +2 -0
  7. package/analysis/ShadowCastAnalysis.d.ts +24 -1
  8. package/analysis/ShadowCastAnalysis.js +1 -1
  9. package/analysis/Viewshed.d.ts +27 -0
  10. package/analysis/Viewshed.js +1 -1
  11. package/analysis/ViewshedAnalysis.js +1 -1
  12. package/arcade/FunctionWrapper.js +1 -1
  13. package/arcade/arcadeAsyncRuntime.js +1 -1
  14. package/arcade/arcadeCompiler.js +1 -1
  15. package/arcade/arcadeRuntime.js +1 -1
  16. package/arcade/compilerUtils.js +1 -1
  17. package/arcade/debug.d.ts +139 -0
  18. package/arcade/debug.js +2 -0
  19. package/arcade/featureSetCollection.js +1 -1
  20. package/arcade/featureSetUtils.js +1 -1
  21. package/arcade/featureset/actions/GroupBy.js +1 -1
  22. package/arcade/featureset/actions/OrderBy.js +1 -1
  23. package/arcade/functions/featuresetstring.js +1 -1
  24. package/arcade/languageUtils.js +1 -1
  25. package/arcade.d.ts +46 -2
  26. package/arcade.js +1 -1
  27. package/assets/esri/core/workers/RemoteClient.js +1 -1
  28. package/assets/esri/core/workers/chunks/{1c7183551f5269bdcf13.js → 01bd1b86ba899c6aa4c0.js} +1 -1
  29. package/assets/esri/core/workers/chunks/{1f8ccf96069ac3a40c3d.js → 01ee18782a50279f907e.js} +1 -1
  30. package/assets/esri/core/workers/chunks/{f81c6f6ccc201f584970.js → 022067e807905cabeaa1.js} +1 -1
  31. package/assets/esri/core/workers/chunks/{11ea4be441a26134ce1f.js → 052cdc7aaa803b5873f0.js} +1 -1
  32. package/assets/esri/core/workers/chunks/{b7bb7072dbee978f3ca3.js → 056fd7847caaff2c9514.js} +1 -1
  33. package/assets/esri/core/workers/chunks/{8acee3fba488f202f82f.js → 05c3146d87d917606193.js} +1 -1
  34. package/assets/esri/core/workers/chunks/{a8ca5d8740cc7e39197b.js → 0aebcbf41cb193e76809.js} +5 -5
  35. package/assets/esri/core/workers/chunks/{54023458195549f66215.js → 0b77c124b743067e4155.js} +1 -1
  36. package/assets/esri/core/workers/chunks/10408183681fd6c7b4ed.js +2 -0
  37. package/assets/esri/core/workers/chunks/{7595ceba529ed01c7590.js → 2c87c3112a43db8624f6.js} +1 -1
  38. package/assets/esri/core/workers/chunks/{13e60f19f436b8d683ae.js → 3c9482764c9e4f8bcbb0.js} +1 -1
  39. package/assets/esri/core/workers/chunks/{322c54081b25f1c53661.js → 3e37019eee1c49d2bf64.js} +1 -1
  40. package/assets/esri/core/workers/chunks/45c83eb7c2a06166e3b0.js +1 -0
  41. package/assets/esri/core/workers/chunks/48acd146bf0241d87647.js +1 -0
  42. package/assets/esri/core/workers/chunks/5818f1f526577068d6ca.js +2 -0
  43. package/assets/esri/core/workers/chunks/{34fe97bcacc0dfc5bce6.js → 5ccc325d83cec4f5ccdb.js} +1 -1
  44. package/assets/esri/core/workers/chunks/{30e710ec4d22c43d4e7e.js → 5cffc7b49966201eccdb.js} +1 -1
  45. package/assets/esri/core/workers/chunks/{1a87e9bbd85ba29b1514.js → 5da2051f548c2942e01a.js} +1 -1
  46. package/assets/esri/core/workers/chunks/5ec66e39e53c11e75179.js +2 -0
  47. package/assets/esri/core/workers/chunks/{0b1454a77a6a682541dc.js.LICENSE.txt → 5ec66e39e53c11e75179.js.LICENSE.txt} +9 -1
  48. package/assets/esri/core/workers/chunks/5f6fd20a7f4e80eafa25.js +1 -0
  49. package/assets/esri/core/workers/chunks/{abc06d10c7ac8ba5b0e4.js → 67ec1694d6e18b7c234c.js} +1 -1
  50. package/assets/esri/core/workers/chunks/{32e22d6eee9fed1f70b0.js → 6d696beddcc5fbed5875.js} +1 -1
  51. package/assets/esri/core/workers/chunks/{f590b60fca607d66001a.js → 716a4d7e8b908b81870b.js} +1 -1
  52. package/assets/esri/core/workers/chunks/71fe127734f33d020a44.js +1 -0
  53. package/assets/esri/core/workers/chunks/7cdd0492b2191df95102.js +2 -0
  54. package/assets/esri/core/workers/chunks/7cea68257d24ffd205bb.js +1 -0
  55. package/assets/esri/core/workers/chunks/7e530e635325dba07864.js +1 -0
  56. package/assets/esri/core/workers/chunks/8f6f5dad52747d252aac.js +596 -0
  57. package/assets/esri/core/workers/chunks/{d950d5c2844206502ff0.js → 992cd87ba0ab6346f692.js} +1 -1
  58. package/assets/esri/core/workers/chunks/{73c87eb9bd8f0f848481.js → 9c11e1fe785e1385fdb1.js} +1 -1
  59. package/assets/esri/core/workers/chunks/{5ed8d8b5336c81fbcda3.js → 9d216e30d04ea21fc8a2.js} +1 -1
  60. package/assets/esri/core/workers/chunks/a54aa93b6012a2597f82.js +1 -0
  61. package/assets/esri/core/workers/chunks/{cf14b3a44705dacefac4.js → a9b5ce00323cd5574bf7.js} +1 -1
  62. package/assets/esri/core/workers/chunks/ae6b3dfe5f757df539d6.js +1 -0
  63. package/assets/esri/core/workers/chunks/b14c4c3f295970f731ab.js +1 -0
  64. package/assets/esri/core/workers/chunks/{c70df6ed190f9ebcf6aa.js → bf2c202dec5ab7bc770b.js} +1 -1
  65. package/assets/esri/core/workers/chunks/c1d4110aa494a1dba3c4.js +1 -0
  66. package/assets/esri/core/workers/chunks/{85d8c7cc7f8decbe975d.js → c442916805975744dd92.js} +1 -1
  67. package/assets/esri/core/workers/chunks/dacc2e5fa462495ed1cc.js +2 -0
  68. package/assets/esri/core/workers/chunks/f227b34cce6843df0fb6.js +1 -0
  69. package/assets/esri/core/workers/chunks/{dda2cb5c073d1e65f14f.js → f43d628d47eec7d530c7.js} +1 -1
  70. package/assets/esri/core/workers/chunks/f7531aa69a87814c60d1.js +1 -0
  71. package/assets/esri/core/workers/chunks/{4ccb56333de0247dcb6f.js → fb100935fd8948d779f5.js} +1 -1
  72. package/assets/esri/core/workers/chunks/{5ee4b630ad39c21d11db.js → fb9e3e7cd532ac4353f1.js} +12 -12
  73. package/assets/esri/core/workers/chunks/fc6ca7ffb9f1b875059c.js +1 -0
  74. package/assets/esri/core/workers/chunks/{3d9fcbe95dd22dbe730e.js → ffc4f3406ce383b9bd88.js} +1 -1
  75. package/assets/esri/themes/base/widgets/_BatchAttributeForm.scss +6 -0
  76. package/assets/esri/themes/dark/main.css +1 -1
  77. package/assets/esri/themes/light/main.css +1 -1
  78. package/assets/esri/themes/light/view.css +1 -1
  79. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ar.json +1 -1
  80. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_bg.json +1 -1
  81. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_bs.json +1 -1
  82. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ca.json +1 -1
  83. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_cs.json +1 -1
  84. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_da.json +1 -1
  85. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_de.json +1 -1
  86. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_el.json +1 -1
  87. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_es.json +1 -1
  88. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_et.json +1 -1
  89. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_fi.json +1 -1
  90. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_fr.json +1 -1
  91. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_he.json +1 -1
  92. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_hr.json +1 -1
  93. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_hu.json +1 -1
  94. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_id.json +1 -1
  95. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_it.json +1 -1
  96. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ja.json +1 -1
  97. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ko.json +1 -1
  98. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_lt.json +1 -1
  99. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_lv.json +1 -1
  100. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_nl.json +1 -1
  101. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_no.json +1 -1
  102. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pl.json +1 -1
  103. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pt-BR.json +1 -1
  104. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pt-PT.json +1 -1
  105. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ro.json +1 -1
  106. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ru.json +1 -1
  107. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sk.json +1 -1
  108. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sl.json +1 -1
  109. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sr.json +1 -1
  110. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sv.json +1 -1
  111. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_th.json +1 -1
  112. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_tr.json +1 -1
  113. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_uk.json +1 -1
  114. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_vi.json +1 -1
  115. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-CN.json +1 -1
  116. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-HK.json +1 -1
  117. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-TW.json +1 -1
  118. package/assets/esri/widgets/Sketch/t9n/Sketch_ar.json +1 -1
  119. package/assets/esri/widgets/Sketch/t9n/Sketch_bg.json +1 -1
  120. package/assets/esri/widgets/Sketch/t9n/Sketch_bs.json +1 -1
  121. package/assets/esri/widgets/Sketch/t9n/Sketch_ca.json +1 -1
  122. package/assets/esri/widgets/Sketch/t9n/Sketch_cs.json +1 -1
  123. package/assets/esri/widgets/Sketch/t9n/Sketch_da.json +1 -1
  124. package/assets/esri/widgets/Sketch/t9n/Sketch_de.json +1 -1
  125. package/assets/esri/widgets/Sketch/t9n/Sketch_el.json +1 -1
  126. package/assets/esri/widgets/Sketch/t9n/Sketch_es.json +1 -1
  127. package/assets/esri/widgets/Sketch/t9n/Sketch_et.json +1 -1
  128. package/assets/esri/widgets/Sketch/t9n/Sketch_fi.json +1 -1
  129. package/assets/esri/widgets/Sketch/t9n/Sketch_fr.json +1 -1
  130. package/assets/esri/widgets/Sketch/t9n/Sketch_he.json +1 -1
  131. package/assets/esri/widgets/Sketch/t9n/Sketch_hr.json +1 -1
  132. package/assets/esri/widgets/Sketch/t9n/Sketch_hu.json +1 -1
  133. package/assets/esri/widgets/Sketch/t9n/Sketch_id.json +1 -1
  134. package/assets/esri/widgets/Sketch/t9n/Sketch_it.json +1 -1
  135. package/assets/esri/widgets/Sketch/t9n/Sketch_ja.json +1 -1
  136. package/assets/esri/widgets/Sketch/t9n/Sketch_ko.json +1 -1
  137. package/assets/esri/widgets/Sketch/t9n/Sketch_lt.json +1 -1
  138. package/assets/esri/widgets/Sketch/t9n/Sketch_lv.json +1 -1
  139. package/assets/esri/widgets/Sketch/t9n/Sketch_nl.json +1 -1
  140. package/assets/esri/widgets/Sketch/t9n/Sketch_no.json +1 -1
  141. package/assets/esri/widgets/Sketch/t9n/Sketch_pl.json +1 -1
  142. package/assets/esri/widgets/Sketch/t9n/Sketch_pt-BR.json +1 -1
  143. package/assets/esri/widgets/Sketch/t9n/Sketch_pt-PT.json +1 -1
  144. package/assets/esri/widgets/Sketch/t9n/Sketch_ro.json +1 -1
  145. package/assets/esri/widgets/Sketch/t9n/Sketch_ru.json +1 -1
  146. package/assets/esri/widgets/Sketch/t9n/Sketch_sk.json +1 -1
  147. package/assets/esri/widgets/Sketch/t9n/Sketch_sl.json +1 -1
  148. package/assets/esri/widgets/Sketch/t9n/Sketch_sr.json +1 -1
  149. package/assets/esri/widgets/Sketch/t9n/Sketch_sv.json +1 -1
  150. package/assets/esri/widgets/Sketch/t9n/Sketch_th.json +1 -1
  151. package/assets/esri/widgets/Sketch/t9n/Sketch_tr.json +1 -1
  152. package/assets/esri/widgets/Sketch/t9n/Sketch_uk.json +1 -1
  153. package/assets/esri/widgets/Sketch/t9n/Sketch_vi.json +1 -1
  154. package/assets/esri/widgets/Sketch/t9n/Sketch_zh-CN.json +1 -1
  155. package/assets/esri/widgets/Sketch/t9n/Sketch_zh-HK.json +1 -1
  156. package/assets/esri/widgets/Sketch/t9n/Sketch_zh-TW.json +1 -1
  157. package/chunks/ImageMaterial.glsl.js +7 -5
  158. package/chunks/SlicePlaneMaterial.glsl.js +21 -13
  159. package/chunks/arcade.js +1 -1
  160. package/chunks/languageUtils.js +1 -1
  161. package/config.js +1 -1
  162. package/core/MapUtils.js +1 -1
  163. package/core/arrayUtils.js +1 -1
  164. package/kernel.js +1 -1
  165. package/layers/IntegratedMeshLayer.d.ts +18 -14
  166. package/layers/SceneLayer.d.ts +35 -1
  167. package/layers/SceneLayer.js +1 -1
  168. package/layers/graphics/controllers/I3SOnDemandController.js +1 -1
  169. package/layers/scene/ModelFileInfo.d.ts +29 -0
  170. package/layers/scene/ModelFileInfo.js +2 -0
  171. package/layers/scene/ModelInfo.d.ts +38 -0
  172. package/layers/scene/ModelInfo.js +2 -0
  173. package/layers/scene/modelQuerySupport.js +2 -0
  174. package/layers/scene/types.d.ts +14 -0
  175. package/layers/support/infoFor3D.js +1 -1
  176. package/layers/support/serviceCapabilitiesUtils.js +1 -1
  177. package/layers/types.d.ts +13 -1
  178. package/package.json +3 -3
  179. package/popup/Features.d.ts +1 -6
  180. package/popup/Features.js +1 -1
  181. package/popup/actions.js +1 -1
  182. package/renderers/visualVariables/support/ColorStop.js +1 -1
  183. package/support/arcadeUtils.js +1 -1
  184. package/support/revision.js +1 -1
  185. package/views/2d/engine/flow/styles/Imagery.js +1 -1
  186. package/views/2d/engine/flow/styles/Particles.js +1 -1
  187. package/views/2d/engine/flow/styles/Streamlines.js +1 -1
  188. package/views/2d/engine/vectorTiles/Placement.js +1 -1
  189. package/views/2d/engine/vectorTiles/TextShaping.js +1 -1
  190. package/views/2d/engine/webgl/AttributeStoreView.js +1 -1
  191. package/views/2d/engine/webgl/GlyphMosaic.js +1 -1
  192. package/views/2d/engine/webgl/GlyphSource.js +1 -1
  193. package/views/2d/engine/webgl/Overlay.js +1 -1
  194. package/views/2d/engine/webgl/OverlayMultipoint.js +1 -1
  195. package/views/2d/engine/webgl/RenderingDevice.js +1 -1
  196. package/views/2d/engine/webgl/TextureManager.js +1 -1
  197. package/views/2d/engine/webgl/mesh/templates/shapingUtils.js +1 -1
  198. package/views/2d/engine/webgl/shaderGraph/GLSLShaderModule.js +1 -1
  199. package/views/2d/engine/webgl/shaderGraph/GraphShaderModule.js +1 -1
  200. package/views/2d/engine/webgl/shaderGraph/graph/ShaderGraphContext.js +1 -1
  201. package/views/2d/engine/webgl/shaderGraph/techniques/TechniqueProgramCache.js +1 -1
  202. package/views/2d/engine/webgl/shaderGraph/techniques/TestTechnique.js +1 -1
  203. package/views/2d/engine/webgl/shaderGraph/techniques/TextureStatisticsTechnique.js +1 -1
  204. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AAnimatedShader.js +1 -1
  205. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedTechnique.js +1 -1
  206. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimationUniformInfo.js +1 -1
  207. package/views/2d/engine/webgl/shaderGraph/techniques/bitmap/BitmapTechnique.js +1 -1
  208. package/views/2d/engine/webgl/shaderGraph/techniques/blend/BlendTechnique.js +1 -1
  209. package/views/2d/engine/webgl/shaderGraph/techniques/bloom/BloomTechnique.js +1 -1
  210. package/views/2d/engine/webgl/shaderGraph/techniques/blur/BlurTechnique.js +1 -1
  211. package/views/2d/engine/webgl/shaderGraph/techniques/clip/ClipTechnique.js +1 -1
  212. package/views/2d/engine/webgl/shaderGraph/techniques/colorize/ColorizeTechnique.js +1 -1
  213. package/views/2d/engine/webgl/shaderGraph/techniques/dotDensity/DotDensityPointShader.js +1 -1
  214. package/views/2d/engine/webgl/shaderGraph/techniques/dotDensity/DotDensityPolygonShader.js +1 -1
  215. package/views/2d/engine/webgl/shaderGraph/techniques/dotDensity/DotDensityTechnique.js +1 -1
  216. package/views/2d/engine/webgl/shaderGraph/techniques/drop-shadow/DropShadowTechnique.js +1 -1
  217. package/views/2d/engine/webgl/shaderGraph/techniques/featureTechniqueUtils.js +1 -1
  218. package/views/2d/engine/webgl/shaderGraph/techniques/fill/ComplexFillTechnique.js +1 -1
  219. package/views/2d/engine/webgl/shaderGraph/techniques/fill/ComplexOutlineFillTechnique.js +1 -1
  220. package/views/2d/engine/webgl/shaderGraph/techniques/fill/FillTechnique.js +1 -1
  221. package/views/2d/engine/webgl/shaderGraph/techniques/fill/GradientFillTechnique.js +1 -1
  222. package/views/2d/engine/webgl/shaderGraph/techniques/fill/OutlineFillTechnique.js +1 -1
  223. package/views/2d/engine/webgl/shaderGraph/techniques/fill/PatternFillTechnique.js +1 -1
  224. package/views/2d/engine/webgl/shaderGraph/techniques/fill/PatternOutlineFillTechnique.js +1 -1
  225. package/views/2d/engine/webgl/shaderGraph/techniques/flow/FlowTechnique.js +1 -1
  226. package/views/2d/engine/webgl/shaderGraph/techniques/grid/GridTechnique.js +1 -1
  227. package/views/2d/engine/webgl/shaderGraph/techniques/heatmap/HeatmapTechnique.js +1 -1
  228. package/views/2d/engine/webgl/shaderGraph/techniques/labels/LabelTechnique.js +1 -1
  229. package/views/2d/engine/webgl/shaderGraph/techniques/line/GradientStrokeTechnique.js +1 -1
  230. package/views/2d/engine/webgl/shaderGraph/techniques/line/LineTechnique.js +1 -1
  231. package/views/2d/engine/webgl/shaderGraph/techniques/line/TexturedLineTechnique.js +1 -1
  232. package/views/2d/engine/webgl/shaderGraph/techniques/magnifier/MagnifierTechnique.js +1 -1
  233. package/views/2d/engine/webgl/shaderGraph/techniques/markers/MarkerShader.js +1 -1
  234. package/views/2d/engine/webgl/shaderGraph/techniques/markers/MarkerTechnique.js +1 -1
  235. package/views/2d/engine/webgl/shaderGraph/techniques/opacity/OpacityTechnique.js +1 -1
  236. package/views/2d/engine/webgl/shaderGraph/techniques/overlay/OverlayTechnique.js +1 -1
  237. package/views/2d/engine/webgl/shaderGraph/techniques/pieChart/PieChartShader.js +1 -1
  238. package/views/2d/engine/webgl/shaderGraph/techniques/pieChart/PieChartTechnique.js +1 -1
  239. package/views/2d/engine/webgl/shaderGraph/techniques/raster/RasterColorizerTechnique.js +1 -1
  240. package/views/2d/engine/webgl/shaderGraph/techniques/raster/RasterHighlightTechnique.js +1 -1
  241. package/views/2d/engine/webgl/shaderGraph/techniques/raster/VectorFieldTechnique.js +1 -1
  242. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/AspectTechnique.js +1 -1
  243. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/BandArithmeticTechnique.js +1 -1
  244. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/BaseRasterProcessorTechnique.js +1 -1
  245. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/ColormapToRGBTechnique.js +1 -1
  246. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/CompositeBandTechnique.js +1 -1
  247. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/ComputeChangeTechnique.js +1 -1
  248. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/ContrastBrightnessTechnique.js +1 -1
  249. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/ConvolutionTechnique.js +1 -1
  250. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/CurvatureTechnique.js +1 -1
  251. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/ExtractBandTechnique.js +1 -1
  252. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/FocalStatisticsTechnique.js +1 -1
  253. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/GrayscaleTechnique.js +1 -1
  254. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/HillshadeTechnique.js +1 -1
  255. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/LocalTechnique.js +1 -1
  256. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/MaskTechnique.js +1 -1
  257. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/NDVITechnique.js +1 -1
  258. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/RemapTechnique.js +1 -1
  259. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/ReprojectTechnique.js +1 -1
  260. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/ShadedReliefTechnique.js +1 -1
  261. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/SlopeTechnique.js +1 -1
  262. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/SpectralConversionTechnique.js +1 -1
  263. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/StretchTechnique.js +1 -1
  264. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/AFeatureShader.js +1 -1
  265. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/BitmapShader.js +1 -1
  266. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/BlendShader.js +1 -1
  267. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/BlitShader.js +1 -1
  268. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/BloomShader.js +1 -1
  269. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/BlurShader.js +1 -1
  270. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/ColorizeShader.js +1 -1
  271. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/ComplexFillShader.js +1 -1
  272. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/ComplexOutlineFillShader.js +1 -1
  273. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/DropShadowShader.js +1 -1
  274. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/EntityStorage.js +1 -1
  275. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/GradientFillShader.js +1 -1
  276. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/GradientStrokeShader.js +1 -1
  277. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/HeatmapAccumulateShader.js +1 -1
  278. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/HeatmapResolveShader.js +1 -1
  279. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/MagnifierShader.js +1 -1
  280. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/MosaicInfo.js +1 -1
  281. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/OpacityShader.js +1 -1
  282. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/OverlayShader.js +1 -1
  283. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/PatternFillShader.js +1 -1
  284. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/PatternOutlineFillShader.js +1 -1
  285. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/TextureStatisticsDiffShader.js +1 -1
  286. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/TextureStatisticsMinMaxSumShader.js +1 -1
  287. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/TextureStatisticsStdDevShader.js +1 -1
  288. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/TextureStatisticsSumOfSquaredDiffShader.js +1 -1
  289. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/TexturedLineShader.js +1 -1
  290. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/TileDebugInfoShader.js +1 -1
  291. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/VideoScreenShader.js +1 -1
  292. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/flow/FlowImageryShader.js +1 -1
  293. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/flow/FlowUtils.js +1 -1
  294. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/BaseRasterColorizerShader.js +1 -1
  295. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/BaseRasterHighlightShader.js +1 -1
  296. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/RasterColorizerLUTShader.js +1 -1
  297. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/RasterColorizerShadedReliefShader.js +1 -1
  298. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/RasterColorizerStretchShader.js +1 -1
  299. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/RasterXYBandHighlightShader.js +1 -1
  300. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/lut.js +1 -1
  301. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/AspectShader.js +1 -1
  302. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/BaseRasterProcessorShader.js +1 -1
  303. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/ColormapToRGBShader.js +1 -1
  304. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/ConvolutionShader.js +1 -1
  305. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/CurvatureShader.js +1 -1
  306. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/FocalStatisticsShader.js +1 -1
  307. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/HillshadeShader.js +1 -1
  308. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/MultiRasterMixin.js +1 -1
  309. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/ShadedReliefShader.js +1 -1
  310. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/SlopeShader.js +1 -1
  311. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/projection.js +1 -1
  312. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/stretch.js +1 -1
  313. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/vector-tiles/VTLShaderBackground.js +1 -1
  314. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/vector-tiles/VTLShaderFill.js +1 -1
  315. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/vector-tiles/VTLShaderIcon.js +1 -1
  316. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/vector-tiles/VTLShaderLine.js +1 -1
  317. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/vector-tiles/VTLShaderText.js +1 -1
  318. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/vvUtils.js +1 -1
  319. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextShader.js +1 -1
  320. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextTechnique.js +1 -1
  321. package/views/2d/engine/webgl/shaderGraph/techniques/tile/TileDebugInfoTechnique.js +1 -1
  322. package/views/2d/engine/webgl/shaderGraph/techniques/tile/TileStencilTechnique.js +1 -1
  323. package/views/2d/engine/webgl/shaderGraph/techniques/vectorTiles/VTLTechniqueBackground.js +1 -1
  324. package/views/2d/engine/webgl/shaderGraph/techniques/vectorTiles/VTLTechniqueCircle.js +1 -1
  325. package/views/2d/engine/webgl/shaderGraph/techniques/vectorTiles/VTLTechniqueFill.js +1 -1
  326. package/views/2d/engine/webgl/shaderGraph/techniques/vectorTiles/VTLTechniqueLine.js +1 -1
  327. package/views/2d/engine/webgl/shaderGraph/techniques/vectorTiles/VTLTechniqueSymbol.js +1 -1
  328. package/views/2d/engine/webgl/shaderGraph/techniques/videoScreenRenderer/VideoScreenTechnique.js +1 -1
  329. package/views/2d/engine/webgl/shaderGraph/typed/TypedShaderProgram.js +1 -1
  330. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  331. package/views/3d/FocusAreasView.js +1 -1
  332. package/views/3d/StencilGeometry.js +2 -0
  333. package/views/3d/analysis/ShadowCastAnalysisView3D.js +1 -1
  334. package/views/3d/analysis/Viewshed/ViewshedComputedData.js +1 -1
  335. package/views/3d/analysis/Viewshed/ViewshedConfiguration.js +1 -1
  336. package/views/3d/analysis/Viewshed/ViewshedFieldOfViewManipulation.js +1 -1
  337. package/views/3d/analysis/Viewshed/ViewshedScaleOrientManipulation.js +1 -1
  338. package/views/3d/analysis/Viewshed/ViewshedShapeVisualElement.js +1 -1
  339. package/views/3d/analysis/Viewshed/ViewshedSubTool.js +1 -1
  340. package/views/3d/analysis/Viewshed/ViewshedSubVisualization.js +1 -1
  341. package/views/3d/analysis/Viewshed/ViewshedTool.js +1 -1
  342. package/views/3d/analysis/Viewshed/viewshedToolUtils.js +1 -1
  343. package/views/3d/analysis/ViewshedAnalysisView3D.js +1 -1
  344. package/views/3d/focusAreaUtils.js +2 -0
  345. package/views/3d/layers/BuildingComponentSublayerView3D.js +1 -1
  346. package/views/3d/layers/I3SMeshView3D.js +1 -1
  347. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  348. package/views/3d/layers/IntegratedMeshLayerView3D.js +1 -1
  349. package/views/3d/layers/IntegratedMeshNormals.js +1 -1
  350. package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
  351. package/views/3d/layers/SceneLayerView3D.js +1 -1
  352. package/views/3d/layers/SceneLayerWorker.js +1 -1
  353. package/views/3d/layers/i3s/I3SQueryEngine.js +1 -1
  354. package/views/3d/layers/i3s/I3SUtil.js +1 -1
  355. package/views/3d/layers/support/DefinitionExpressionSceneLayerView.js +1 -1
  356. package/views/3d/layers/support/TemporalSceneLayerView.js +1 -1
  357. package/views/3d/webgl-engine/collections/Component/Material/ComponentTechniqueConfiguration.js +1 -1
  358. package/views/3d/webgl-engine/core/shaderTechnique/ShaderTechniqueRepository.js +1 -1
  359. package/views/3d/webgl-engine/effects/atmosphere/ChapmanAtmosphere.js +1 -1
  360. package/views/3d/webgl-engine/effects/atmosphere/LocalAtmosphere.js +1 -1
  361. package/views/3d/webgl-engine/effects/atmosphere/MarsAtmosphere.js +1 -1
  362. package/views/3d/webgl-engine/effects/blit/Blit.js +1 -1
  363. package/views/3d/webgl-engine/effects/clouds/CloudsComposition.js +1 -1
  364. package/views/3d/webgl-engine/effects/clouds/CloudsRenderer.js +1 -1
  365. package/views/3d/webgl-engine/effects/clouds/CloudsTechnique.js +1 -1
  366. package/views/3d/webgl-engine/effects/clouds/NoiseTextureAtlas.js +1 -1
  367. package/views/3d/webgl-engine/effects/focusArea/FocusAreaColorNode.js +1 -1
  368. package/views/3d/webgl-engine/effects/focusArea/FocusAreaMaskNode.js +1 -1
  369. package/views/3d/webgl-engine/effects/focusArea/focusAreaMaskUtils.js +2 -0
  370. package/views/3d/webgl-engine/effects/fog/Fog.js +1 -1
  371. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.js +1 -1
  372. package/views/3d/webgl-engine/effects/glow/GlowRenderNode.js +1 -1
  373. package/views/3d/webgl-engine/effects/haze/Haze.js +1 -1
  374. package/views/3d/webgl-engine/effects/highlight/Highlight.js +1 -1
  375. package/views/3d/webgl-engine/effects/highlight/ShadowHighlight.js +1 -1
  376. package/views/3d/webgl-engine/effects/highlight/ShadowHighlightBuffer.js +1 -1
  377. package/views/3d/webgl-engine/effects/laserlines/LaserLineRenderer.js +1 -1
  378. package/views/3d/webgl-engine/effects/laserlines/LaserlinePathTechnique.js +1 -1
  379. package/views/3d/webgl-engine/effects/magnifier/Magnifier.js +1 -1
  380. package/views/3d/webgl-engine/effects/precipitation/Precipitation.js +1 -1
  381. package/views/3d/webgl-engine/effects/smaa/SMAA.js +1 -1
  382. package/views/3d/webgl-engine/effects/ssao/SSAO.js +1 -1
  383. package/views/3d/webgl-engine/effects/stars/Stars.js +1 -1
  384. package/views/3d/webgl-engine/effects/stars/StarsTechnique.js +1 -1
  385. package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
  386. package/views/3d/webgl-engine/lib/Compositor.js +1 -1
  387. package/views/3d/webgl-engine/lib/CutFillComputationRenderNode.js +1 -1
  388. package/views/3d/webgl-engine/lib/CutFillVisualizationRenderNode.js +1 -1
  389. package/views/3d/webgl-engine/lib/GaussianSplatRenderNode.js +1 -1
  390. package/views/3d/webgl-engine/lib/Material.js +1 -1
  391. package/views/3d/webgl-engine/lib/Normals.js +1 -1
  392. package/views/3d/webgl-engine/lib/OrderIndependentTransparency.js +1 -1
  393. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  394. package/views/3d/webgl-engine/lib/ShadowAccumulator.js +1 -1
  395. package/views/3d/webgl-engine/lib/Viewshed.js +1 -1
  396. package/views/3d/webgl-engine/lib/ViewshedShadowMap.js +1 -1
  397. package/views/3d/webgl-engine/materials/DefaultTechniqueConfiguration.js +1 -1
  398. package/views/3d/webgl-engine/shaders/CheckerBoardTechnique.js +1 -1
  399. package/views/3d/webgl-engine/shaders/ColorMaterialTechnique.js +1 -1
  400. package/views/3d/webgl-engine/shaders/CompositingTechnique.js +1 -1
  401. package/views/3d/webgl-engine/shaders/DefaultMaterialTechnique.js +1 -1
  402. package/views/3d/webgl-engine/shaders/ImageMaterialTechnique.js +1 -1
  403. package/views/3d/webgl-engine/shaders/LineMarkerTechnique.js +1 -1
  404. package/views/3d/webgl-engine/shaders/MeasurementArrowTechnique.js +1 -1
  405. package/views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js +10 -10
  406. package/views/3d/webgl-engine/shaders/RibbonLineTechnique.js +1 -1
  407. package/views/3d/webgl-engine/shaders/ShadedColorMaterialTechnique.js +1 -1
  408. package/views/3d/webgl-engine/shaders/SlicePlaneMaterialTechnique.js +1 -1
  409. package/views/View2D.js +1 -1
  410. package/views/draw/support/GraphicMover.js +1 -1
  411. package/views/draw/support/Reshape.js +1 -1
  412. package/views/draw/support/editingSessionUtils.js +1 -1
  413. package/views/webgl/FramebufferObject.js +1 -1
  414. package/widgets/BatchAttributeForm/css.js +1 -1
  415. package/widgets/BatchAttributeForm/inputs/GroupInput.d.ts +2 -1
  416. package/widgets/BatchAttributeForm/inputs/RelationshipElementInput.d.ts +54 -0
  417. package/widgets/BatchAttributeForm/inputs/RelationshipElementInput.js +2 -0
  418. package/widgets/BatchAttributeForm/inputs/support/createBatchFormInputs.js +1 -1
  419. package/widgets/BatchAttributeForm/inputs/support/inputUtils.js +1 -1
  420. package/widgets/BatchAttributeForm/inputs/types.d.ts +4 -3
  421. package/widgets/BatchAttributeForm/templates/AttachmentElementTemplate.js +1 -1
  422. package/widgets/BatchAttributeForm/templates/RelationshipElementTemplate.js +2 -0
  423. package/widgets/BatchAttributeForm/templates/support/createBatchFormTemplate.js +1 -1
  424. package/widgets/BatchAttributeForm/templates/support/hashElementTemplate.js +1 -1
  425. package/widgets/BatchAttributeForm/templates/support/templateUtils.js +1 -1
  426. package/widgets/BatchAttributeForm.js +1 -1
  427. package/widgets/CoordinateConversion/CoordinateConversionViewModel.d.ts +21 -1
  428. package/widgets/CoordinateConversion/CoordinateConversionViewModel.js +1 -1
  429. package/widgets/CoordinateConversion/support/Format.js +1 -1
  430. package/widgets/CoordinateConversion/support/coordinateConversionUtils.js +1 -1
  431. package/widgets/CoordinateConversion.d.ts +21 -1
  432. package/widgets/CoordinateConversion.js +1 -1
  433. package/widgets/Editor/CreateFeaturesWorkflow.js +1 -1
  434. package/widgets/Editor/SplitFeatureWorkflow.js +1 -1
  435. package/widgets/Editor/UpdateFeatureWorkflow.js +1 -1
  436. package/widgets/Editor/support/SketchController.js +1 -1
  437. package/widgets/Editor/workflowUtils.js +1 -1
  438. package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
  439. package/widgets/Sketch/SketchViewModel.js +1 -1
  440. package/widgets/support/ContingentValuesManager.js +1 -1
  441. package/widgets/types.d.ts +1 -1
  442. package/assets/esri/core/workers/chunks/07eff82916681fcff069.js +0 -1
  443. package/assets/esri/core/workers/chunks/0b1454a77a6a682541dc.js +0 -2
  444. package/assets/esri/core/workers/chunks/1c7fd0a229a8112b0539.js +0 -596
  445. package/assets/esri/core/workers/chunks/3697e51e1e4cf442f39a.js +0 -1
  446. package/assets/esri/core/workers/chunks/3cce9dad8ee0e4971d50.js +0 -1
  447. package/assets/esri/core/workers/chunks/3df8493b91aa3bce824d.js +0 -1
  448. package/assets/esri/core/workers/chunks/68a313155ddc29bd024d.js +0 -1
  449. package/assets/esri/core/workers/chunks/751609831b283903ba48.js +0 -1
  450. package/assets/esri/core/workers/chunks/7bacdd65a6cc4d284e0a.js +0 -2
  451. package/assets/esri/core/workers/chunks/7e97684e851274efd11f.js +0 -1
  452. package/assets/esri/core/workers/chunks/85aac8539996372f1ee8.js +0 -1
  453. package/assets/esri/core/workers/chunks/99d298d0039c536fcf3e.js +0 -1
  454. package/assets/esri/core/workers/chunks/9aaf78b831f8739bc127.js +0 -1
  455. package/assets/esri/core/workers/chunks/9b9916864b6575c42c8a.js +0 -1
  456. package/assets/esri/core/workers/chunks/bf7e019437a3b6036300.js +0 -2
  457. package/assets/esri/core/workers/chunks/d304343a781acfa3ff96.js +0 -1
  458. package/assets/esri/core/workers/chunks/dbb9bb28696ff9536678.js +0 -2
  459. package/assets/esri/core/workers/chunks/f09a41ad239d467d9438.js +0 -2
  460. package/assets/esri/core/workers/chunks/f6912532aae1638cbe8f.js +0 -1
  461. /package/assets/esri/core/workers/chunks/{7bacdd65a6cc4d284e0a.js.LICENSE.txt → 10408183681fd6c7b4ed.js.LICENSE.txt} +0 -0
  462. /package/assets/esri/core/workers/chunks/{f09a41ad239d467d9438.js.LICENSE.txt → 5818f1f526577068d6ca.js.LICENSE.txt} +0 -0
  463. /package/assets/esri/core/workers/chunks/{dbb9bb28696ff9536678.js.LICENSE.txt → 7cdd0492b2191df95102.js.LICENSE.txt} +0 -0
  464. /package/assets/esri/core/workers/chunks/{bf7e019437a3b6036300.js.LICENSE.txt → dacc2e5fa462495ed1cc.js.LICENSE.txt} +0 -0
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import e from"../../../../core/Error.js";import t from"../../../../core/Logger.js";import{getEffectiveFieldAlias as r}from"../../../../editing/fieldUtils.js";import n from"../../../../form/ExpressionInfo.js";import{isAttachmentElement as o,isFieldElement as i,isGroupElement as s,isTextElement as a}from"../../../../form/support/formUtils.js";import{getLowerCaseEditTrackingFields as l,isFieldVisibleByDefault as m}from"../../../../layers/support/fieldUtils.js";import{isSubtypeSublayer as d,isSubtypeGroupLayer as p}from"../../../../layers/support/layerUtils.js";import{unknown as c}from"../../../../time/constants.js";import{makeExpressionInfosMap as f,makeExecutorSetForFormElement as u}from"../../expressions/expressionUtils.js";import{AttachmentElementTemplate as x}from"../AttachmentElementTemplate.js";import y from"../BatchFormTemplate.js";import{FieldElementTemplate as w}from"../FieldElementTemplate.js";import{GroupElementTemplate as b}from"../GroupElementTemplate.js";import{TextElementTemplate as E}from"../TextElementTemplate.js";import{compileTextElementMarkdownToHTML as h}from"./textElementTemplateUtils.js";const T="expression/dea57012-47ca4b55a000-8df62742ed0c",v=()=>t.getLogger("esri.widgets.BatchAttributeForm.templates.templateUtils");async function I(e,t,r=e.formTemplate){return r?.elements&&r.elements.length>0?j(r,e,t):F(e,t)}async function F(e,{arcadeExecutorProvider:t,formTimeZone:r}){const n=new Set(l(e)),o={arcadeExecutorProvider:t,formTimeZone:r,layer:e},i=[];for(const a of e.fields)H(a,e,n)&&i.push(C(a,o));const s=await Promise.all(i);return new y({elements:s,preserveFieldValuesWhenHidden:!0})}function g(e,t){for(const r of e??[])if("group"!==r.type){if("field"===r.type){if(!1===r.editable&&!r.editableExpression)return!0;if(t.subtypeField&&(d(t)||p(t))&&r.fieldName?.toLowerCase()===t.subtypeField.toLowerCase())return!0}}else if(g(r.elements??[],t))return!0;return!1}async function j(e,t,r){let o=null;g(e.elements??[],t)&&(o=new n({title:"",name:T,expression:"false"}));const i=f(o?[...e.expressionInfos??[],o]:e.expressionInfos),s={description:e.description,elements:new Array,title:e.title,preserveFieldValuesWhenHidden:e.preserveFieldValuesWhenHidden,supportsAttachmentElements:e.supportsAttachmentElements},{elements:a}=e;if(!a)return new y(s);const{arcadeExecutorProvider:l,formTimeZone:m}=r;for(const n of a){const e=await L(n,{arcadeExecutorProvider:l,expressionInfos:i,layer:t,formTimeZone:m});e&&s.elements.push(e)}return e.supportsAttachmentElements,new y(s)}async function P(e,{arcadeExecutorProvider:t,expressionInfos:r,layer:n}){const o=new x({allowUserRename:e.allowUserRename,attachmentKeyword:e.attachmentKeyword,description:e.description,displayFilename:e.displayFilename,input:e.input,label:e.label,maxAttachmentCount:e.maxAttachmentCount,minAttachmentCount:e.minAttachmentCount,useOriginalFilename:e.useOriginalFilename}),i=await u({element:e,expressionInfos:r,provider:t});return o.addLayer(n,i),o}async function L(t,r){return o(t)?P(t,{arcadeExecutorProvider:r.arcadeExecutorProvider,expressionInfos:r.expressionInfos,layer:r.layer}):i(t)?A(t,r):s(t)?Z(t,r):a(t)?U(t,r):(v().warn(new e("batch-attribute-form:unsupported-element-type",`Form elements of type ${t.type} are not supported`)),null)}async function A(t,{arcadeExecutorProvider:r,expressionInfos:n,layer:o,formTimeZone:i}){const{fieldsIndex:s}=o,{description:a,domain:l,fieldName:m,hint:c,input:f,label:x}=t;if(null==m||!s.has(m))return v().warn(new e("batch-attribute-form:invalid-form-element-field",`Field element with label '${x}' does not refer to a valid field`)),null;!1!==t.editable||t.editableExpression||((t=t.clone()).editableExpression=T),o.subtypeField&&(d(o)||p(o))&&t.fieldName?.toLowerCase()===o.subtypeField.toLowerCase()&&((t=t.clone()).editableExpression=T);const y=new w({description:a,domain:l,field:s.get(m),hint:c,input:f,formTimeZone:i,layerTimeZone:k(o),label:x}),b=await u({element:t,expressionInfos:n,provider:r});return y.addLayer(o,b),y}async function Z(e,t){const{arcadeExecutorProvider:r,expressionInfos:n,layer:o}=t,{description:i,label:s,initialState:a}=e,l=[];for(const p of e.elements){const e=await L(p,t);e&&l.push(e)}const m=new b({description:i,elements:l,label:s,initialState:a??"expanded"}),d=await u({element:e,expressionInfos:n,provider:r});return m.addLayer(o,d),m}async function U(e,{arcadeExecutorProvider:t,expressionInfos:r,layer:n}){const{description:o,label:i,text:s,textFormat:a}=e,{fieldsIndex:l}=n,m=s&&"markdown"===a?await h(s):s,d=new E({compiledText:m,description:o,fieldsIndex:l,label:i}),p=await u({element:e,expressionInfos:r,provider:t}),{expressionParts:c}=d;if(c.length){const e=await Promise.all(c.map(e=>{const n=r.get(e)?.expression??e;return t.getArcadeExecutor(n)}));p.textExpressions=e}return d.addLayer(n,p),d}async function C(e,{arcadeExecutorProvider:t,layer:n,formTimeZone:o}){const i=r(e,n)||e.name,s=new w({field:e,label:i,formTimeZone:o,layerTimeZone:k(n)}),a={},l=(p(n)||d(n))&&n.subtypeField&&n.subtypeField.toLowerCase()===e.name.toLowerCase();return!l&&e.editable&&n.userHasUpdateItemPrivileges&&(a.editableExpression=await t.getArcadeExecutor("true")),l&&(a.editableExpression=await t.getArcadeExecutor("false")),s.addLayer(n,a),s}function H(e,t,r){return!r.has(e.name.toLowerCase())&&m(e,t)}function k(e){return d(e)&&e.parent&&(e=e.parent),e&&"datesInUnknownTimezone"in e&&e.datesInUnknownTimezone?c:e&&"preferredTimeZone"in e&&e.preferredTimeZone?e.preferredTimeZone:null}export{I as createBatchFormTemplate,F as createBatchFormTemplateFromFields};
2
+ import{createArcadeProfile as e,createArcadeExecutor as t}from"../../../../arcade.js";import r from"../../../../core/Error.js";import n from"../../../../core/Logger.js";import{getEffectiveFieldAlias as o}from"../../../../editing/fieldUtils.js";import i from"../../../../form/ExpressionInfo.js";import{isAttachmentElement as s,isFieldElement as a,isGroupElement as l,isRelationshipElement as m,isTextElement as p}from"../../../../form/support/formUtils.js";import{getLowerCaseEditTrackingFields as d,isFieldVisibleByDefault as c}from"../../../../layers/support/fieldUtils.js";import{isSubtypeSublayer as f,isSubtypeGroupLayer as u}from"../../../../layers/support/layerUtils.js";import{unknown as x}from"../../../../time/constants.js";import{makeExpressionInfosMap as y,makeExecutorSetForFormElement as w}from"../../expressions/expressionUtils.js";import{AttachmentElementTemplate as E}from"../AttachmentElementTemplate.js";import b from"../BatchFormTemplate.js";import{FieldElementTemplate as h}from"../FieldElementTemplate.js";import{GroupElementTemplate as T}from"../GroupElementTemplate.js";import{RelationshipElementTemplate as v}from"../RelationshipElementTemplate.js";import{TextElementTemplate as I}from"../TextElementTemplate.js";import{compileTextElementMarkdownToHTML as g}from"./textElementTemplateUtils.js";const F="expression/dea57012-47ca4b55a000-8df62742ed0c",j=e("form-attachment-filename-calculation"),P=()=>n.getLogger("esri.widgets.BatchAttributeForm.templates.templateUtils");async function L(e,t,r=e.formTemplate){return r?.elements&&r.elements.length>0?U(r,e,t):A(e,t)}async function A(e,{arcadeExecutorProvider:t,formTimeZone:r}){const n=new Set(d(e)),o={arcadeExecutorProvider:t,formTimeZone:r,layer:e},i=[];for(const a of e.fields)W(a,e,n)&&i.push(V(a,o));const s=await Promise.all(i);return new b({elements:s,preserveFieldValuesWhenHidden:!0})}function Z(e,t){for(const r of e??[])if("group"!==r.type){if("field"===r.type){if(!1===r.editable&&!r.editableExpression)return!0;if(t.subtypeField&&(f(t)||u(t))&&r.fieldName?.toLowerCase()===t.subtypeField.toLowerCase())return!0}}else if(Z(r.elements??[],t))return!0;return!1}async function U(e,t,r){let n=null;Z(e.elements??[],t)&&(n=new i({title:"",name:F,expression:"false"}));const o=y(n?[...e.expressionInfos??[],n]:e.expressionInfos),s={description:e.description,elements:new Array,title:e.title,preserveFieldValuesWhenHidden:e.preserveFieldValuesWhenHidden,supportsAttachmentElements:e.supportsAttachmentElements},{elements:a}=e;if(!a)return new b(s);const{arcadeExecutorProvider:l,formTimeZone:m}=r;for(const i of a){const e=await H(i,{arcadeExecutorProvider:l,expressionInfos:o,layer:t,formTimeZone:m});e&&s.elements.push(e)}return e.supportsAttachmentElements,new b(s)}async function C(e,{arcadeExecutorProvider:r,expressionInfos:n,layer:o}){const i=n.get(e.filenameExpression),s=i?await t(i.expression,j):null,a=new E({allowUserRename:e.allowUserRename,attachmentKeyword:e.attachmentKeyword,description:e.description,displayFilename:e.displayFilename,filenameExpressionExecutor:s,input:e.input,label:e.label,maxAttachmentCount:e.maxAttachmentCount,minAttachmentCount:e.minAttachmentCount,useOriginalFilename:e.useOriginalFilename}),l=await w({element:e,expressionInfos:n,provider:r});return a.addLayer(o,l),a}async function H(e,t){return s(e)?C(e,{arcadeExecutorProvider:t.arcadeExecutorProvider,expressionInfos:t.expressionInfos,layer:t.layer}):a(e)?k(e,t):l(e)?N(e,t):m(e)?R(e,t):p(e)?S(e,t):(P().warn(new r("batch-attribute-form:unsupported-element-type",`Form elements of type ${e.type} are not supported`)),null)}async function k(e,{arcadeExecutorProvider:t,expressionInfos:n,layer:o,formTimeZone:i}){const{fieldsIndex:s}=o,{description:a,domain:l,fieldName:m,hint:p,input:d,label:c}=e;if(null==m||!s.has(m))return P().warn(new r("batch-attribute-form:invalid-form-element-field",`Field element with label '${c}' does not refer to a valid field`)),null;!1!==e.editable||e.editableExpression||((e=e.clone()).editableExpression=F),o.subtypeField&&(f(o)||u(o))&&e.fieldName?.toLowerCase()===o.subtypeField.toLowerCase()&&((e=e.clone()).editableExpression=F);const x=new h({description:a,domain:l,field:s.get(m),hint:p,input:d,formTimeZone:i,layerTimeZone:z(o),label:c}),y=await w({element:e,expressionInfos:n,provider:t});return x.addLayer(o,y),x}async function N(e,t){const{arcadeExecutorProvider:r,expressionInfos:n,layer:o}=t,{description:i,label:s,initialState:a}=e,l=[];for(const d of e.elements){const e=await H(d,t);e&&l.push(e)}const m=new T({description:i,elements:l,label:s,initialState:a??"expanded"}),p=await w({element:e,expressionInfos:n,provider:r});return m.addLayer(o,p),m}async function R(e,t){const{description:r,label:n}=e,{arcadeExecutorProvider:o,expressionInfos:i,layer:s}=t,a=new v({description:r,label:n}),l=await w({element:e,expressionInfos:i,provider:o});return a.addLayer(s,l),a}async function S(e,{arcadeExecutorProvider:t,expressionInfos:r,layer:n}){const{description:o,label:i,text:s,textFormat:a}=e,{fieldsIndex:l}=n,m=s&&"markdown"===a?await g(s):s,p=new I({compiledText:m,description:o,fieldsIndex:l,label:i}),d=await w({element:e,expressionInfos:r,provider:t}),{expressionParts:c}=p;if(c.length){const e=await Promise.all(c.map(e=>{const n=r.get(e)?.expression??e;return t.getArcadeExecutor(n)}));d.textExpressions=e}return p.addLayer(n,d),p}async function V(e,{arcadeExecutorProvider:t,layer:r,formTimeZone:n}){const i=o(e,r)||e.name,s=new h({field:e,label:i,formTimeZone:n,layerTimeZone:z(r)}),a={},l=(u(r)||f(r))&&r.subtypeField&&r.subtypeField.toLowerCase()===e.name.toLowerCase();return!l&&e.editable&&r.userHasUpdateItemPrivileges&&(a.editableExpression=await t.getArcadeExecutor("true")),l&&(a.editableExpression=await t.getArcadeExecutor("false")),s.addLayer(r,a),s}function W(e,t,r){return!r.has(e.name.toLowerCase())&&c(e,t)}function z(e){return f(e)&&e.parent&&(e=e.parent),e&&"datesInUnknownTimezone"in e&&e.datesInUnknownTimezone?x:e&&"preferredTimeZone"in e&&e.preferredTimeZone?e.preferredTimeZone:null}export{L as createBatchFormTemplate,A as createBatchFormTemplateFromFields};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{numericHash as t}from"../../../../core/string.js";import{isBarcodeScannerInput as n,isComboBoxInput as e,isRadioButtonsInput as i,isDatePickerInput as r,isDateTimePickerInput as o,isDateTimeOffsetPickerInput as $,isSwitchInput as u,isTextAreaInput as c,isTextBoxInput as l,isTimePickerInput as a,isMultipleChoiceInput as m}from"../../../../form/elements/inputs/inputUtils.js";import{isFieldElementTemplate as f,isGroupElementTemplate as s,isTextElementTemplate as p,isAttachmentElementTemplate as g,isExcludedFromSharedForm as h}from"./templateUtils.js";const d="",S="num:";function y(n){return f(n)?t(O(n)).toString():s(n)?t(x(n)).toString():p(n)?t(b(n)).toString():g(n)?t(C(n)).toString():t(JSON.stringify(n)).toString()}function O(t){return`${V(t)}.${v(t.field)}.${w(t.domain)}.${t.hint??d}.${N(t.input)}.${t.layerTimeZone??""}`}function x(t){const n=V(t)+`.${t.initialState}`;let e=d;for(const i of t.elements)h(i)||(e+="."+y(i).toString());return`${n}${e}`}function b(t){const n=V(t),{compiledText:e}=t;return`${n}.${e??d}`}function C(t){return`${V(t)}.${t.allowUserRename}.${t.attachmentKeyword??d}.${t.displayFilename}.${T(t.input)}.${t.maxAttachmentCount??d}.${t.minAttachmentCount??d}.${t.useOriginalFilename}`}function V(t){return`${t.label??d}.${t.description??d}`}function N(t){if(!t)return d;const{type:f}=t;if(n(t))return f??d;if(e(t)||i(t)){const{showNoValueOption:n}=t;return`${f}.${n}.${t.noValueOptionLabel??d}`}if(r(t))return`${f}.${j(t)}`;if(o(t)){const n=t.min?.getTime(),e=t.max?.getTime(),{includeTime:i}=t;return`${f}.${n}.${e}.${i}`}if($(t)){const n=j(t),{includeTimeOffset:e,timeResolution:i}=t;return`${f}.${n}.${e}.${i}`}if(u(t)){const{offValue:n,onValue:e}=t;return`${f}.${R(n)}.${R(e)}`}if(c(t)||l(t)){return`${f}.${t.minLength?.toString()??d}.${t.maxLength?.toString()??d}`}if(a(t)){const n=j(t),{timeResolution:e}=t;return`${f}.${n}.${e}`}if(m(t)){return`${f}.${j({min:t.minSelectedChoices?.toString(),max:t.maxSelectedChoices?.toString()})}.${t.choiceDelimiter??d}.${t.includeOtherChoice}.${t.otherChoice?.fieldName??d}.${t.otherChoice?.label??d}.${t.otherChoice?.hint??d}.${J(t)}`}return JSON.stringify(t)}function T(t){return t?JSON.stringify(t.toJSON()):d}function j(t){return`${t.min??d}.${t.max??d}`}function J(t){return(t.choices??[]).map(({label:t,value:n})=>`${t}.${n}`).sort().join(".")}function v(t){const n=t.name,e=t.alias??d;return`${n}.${e===n?d:e}.${t.nullable}.${t.type}.${t.length??d}.${t.defaultValue??d}.${t.description??d}.${t.editable}.${t.visible}`}function w(t){return t?"coded-value"===t.type?L(t):"range"===t.type?U(t):JSON.stringify(t):d}function L(t){const{type:n}=t;return`${n}.${t.codedValues.map(({code:t,name:n})=>`${R(t)}.${n}`).sort().join(".")}`}function R(t){return"number"==typeof t?`${S}${t}`:t}function U(t){const{maxValue:n,minValue:e,type:i}=t;return`${i}.${e}.${n}`}export{y as hashElementTemplate};
2
+ import{numericHash as t}from"../../../../core/string.js";import{isBarcodeScannerInput as n,isComboBoxInput as e,isRadioButtonsInput as i,isDatePickerInput as r,isDateTimePickerInput as o,isDateTimeOffsetPickerInput as $,isSwitchInput as u,isTextAreaInput as c,isTextBoxInput as l,isTimePickerInput as a,isMultipleChoiceInput as m}from"../../../../form/elements/inputs/inputUtils.js";import{isFieldElementTemplate as f,isGroupElementTemplate as s,isRelationshipElementTemplate as p,isTextElementTemplate as g,isAttachmentElementTemplate as h,isExcludedFromSharedForm as d}from"./templateUtils.js";const S="",y="num:";function O(n){return f(n)?t(x(n)).toString():s(n)?t(b(n)).toString():p(n)?t(C(n)).toString():g(n)?t(V(n)).toString():h(n)?t(N(n)).toString():t(JSON.stringify(n)).toString()}function x(t){return`${T(t)}.${L(t.field)}.${R(t.domain)}.${t.hint??S}.${j(t.input)}.${t.layerTimeZone??""}`}function b(t){const n=T(t)+`.${t.initialState}`;let e=S;for(const i of t.elements)d(i)||(e+="."+O(i).toString());return`${n}${e}`}function C(t){return`${T(t)}`}function V(t){const n=T(t),{compiledText:e}=t;return`${n}.${e??S}`}function N(t){return`${T(t)}.${t.allowUserRename}.${t.attachmentKeyword??S}.${t.displayFilename}.${J(t.input)}.${t.maxAttachmentCount??S}.${t.minAttachmentCount??S}.${t.useOriginalFilename}`}function T(t){return`${t.label??S}.${t.description??S}`}function j(t){if(!t)return S;const{type:f}=t;if(n(t))return f??S;if(e(t)||i(t)){const{showNoValueOption:n}=t;return`${f}.${n}.${t.noValueOptionLabel??S}`}if(r(t))return`${f}.${v(t)}`;if(o(t)){const n=t.min?.getTime(),e=t.max?.getTime(),{includeTime:i}=t;return`${f}.${n}.${e}.${i}`}if($(t)){const n=v(t),{includeTimeOffset:e,timeResolution:i}=t;return`${f}.${n}.${e}.${i}`}if(u(t)){const{offValue:n,onValue:e}=t;return`${f}.${A(n)}.${A(e)}`}if(c(t)||l(t)){return`${f}.${t.minLength?.toString()??S}.${t.maxLength?.toString()??S}`}if(a(t)){const n=v(t),{timeResolution:e}=t;return`${f}.${n}.${e}`}if(m(t)){return`${f}.${v({min:t.minSelectedChoices?.toString(),max:t.maxSelectedChoices?.toString()})}.${t.choiceDelimiter??S}.${t.includeOtherChoice}.${t.otherChoice?.fieldName??S}.${t.otherChoice?.label??S}.${t.otherChoice?.hint??S}.${w(t)}`}return JSON.stringify(t)}function J(t){return t?JSON.stringify(t.toJSON()):S}function v(t){return`${t.min??S}.${t.max??S}`}function w(t){return(t.choices??[]).map(({label:t,value:n})=>`${t}.${n}`).sort().join(".")}function L(t){const n=t.name,e=t.alias??S;return`${n}.${e===n?S:e}.${t.nullable}.${t.type}.${t.length??S}.${t.defaultValue??S}.${t.description??S}.${t.editable}.${t.visible}`}function R(t){return t?"coded-value"===t.type?U(t):"range"===t.type?F(t):JSON.stringify(t):S}function U(t){const{type:n}=t;return`${n}.${t.codedValues.map(({code:t,name:n})=>`${A(t)}.${n}`).sort().join(".")}`}function A(t){return"number"==typeof t?`${y}${t}`:t}function F(t){const{maxValue:n,minValue:e,type:i}=t;return`${i}.${e}.${n}`}export{O as hashElementTemplate};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- function t(t){return"attachment"===t.type}function n(t){return"field"===t.type}function e(t){return"group"===t.type}function r(t){return"text"===t.type}function u(n){return r(n)||t(n)}export{t as isAttachmentElementTemplate,u as isExcludedFromSharedForm,n as isFieldElementTemplate,e as isGroupElementTemplate,r as isTextElementTemplate};
2
+ function t(t){return"attachment"===t.type}function n(t){return"field"===t.type}function e(t){return"group"===t.type}function r(t){return"relationship"===t.type}function u(t){return"text"===t.type}function i(n){return u(n)||t(n)||r(n)}export{t as isAttachmentElementTemplate,i as isExcludedFromSharedForm,n as isFieldElementTemplate,e as isGroupElementTemplate,r as isRelationshipElementTemplate,u as isTextElementTemplate};
@@ -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 i}from"../core/deprecate.js";import n from"../core/Logger.js";import{getOrCreateMapValue as o}from"../core/MapUtils.js";import{watch as a,on as s}from"../core/reactiveUtils.js";import{property as r,subclass as l}from"../core/accessorSupport/decorators.js";import{isIntegerField as d}from"../layers/support/fieldUtils.js";import{isString as p}from"../support/guards.js";import u from"./Widget.js";import{getHiddenFieldsValidationErrorMessage as m,getVisibleFieldInputValidationErrorMessage as c,isElementTemplateWithInputType as h}from"./BatchAttributeForm/batchAttributeFormUtils.js";import v from"./BatchAttributeForm/BatchAttributeFormViewModel.js";import{css as b}from"./BatchAttributeForm/css.js";import f from"./BatchAttributeForm/VisibleElements.js";import{isGroupInput as C,isFieldInput as g,isTextElementInput as _,differentValuesString as y}from"./BatchAttributeForm/inputs/support/inputUtils.js";import{loadCalciteComponents as F}from"./support/componentsUtils.js";import{getLabelForDateFieldValue as w,getIntlOptionsForField as I,prepareISOFieldValueForDateComponents as x,prepareUnixFieldValueForDateComponents as M,normalizeTimeOnlyString as k,getISOFieldValueFromDateComponents as O,getUnixFieldValueFromDateComponents as D}from"./support/dateUtils.js";import{globalCss as T}from"./support/globalCss.js";import{messageBundle as V,vmEvent as L,tsx as E}from"./support/widget.js";import{setFocus as U}from"./support/widgetUtils.js";import{isEmptyValue as S}from"./support/forms/formUtils.js";const R="data-element-id";let B=class extends u{constructor(e,t){super(e,t),this.headingLevel=2,this.messagesCommon=null,this.messages=null,this.featureFormMessages=null,this.viewModel=new v,this.visibleElements=new f,this.groupDisplay="all",this._attemptFocusOnNextRender=!1,this._dateComponentMap=new Map,this._touchedInputs=new Set,this._focusedFieldInput=null,this._batchSwitchInputInitialValues=new Map,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=()=>{i(n.getLogger(this),"Editor","arcgis-editor",{version:"5.0"})})}normalizeCtorArgs(e={}){const{suppressDeprecationWarning:t,...i}=e;return i}initialize(){this.addHandles([a(()=>this.features,()=>{this._dateComponentMap.clear()}),a(()=>this.viewModel.activeForm,()=>{this._batchSwitchInputInitialValues.clear()}),s(()=>this.viewModel,"submit",()=>{this.valid||this.goToFirstError()})])}loadDependencies(){return F({input:()=>import("@esri/calcite-components/dist/components/calcite-input"),block:()=>import("@esri/calcite-components/dist/components/calcite-block"),button:()=>import("@esri/calcite-components/dist/components/calcite-button"),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"),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"),"input-date-picker":()=>import("@esri/calcite-components/dist/components/calcite-input-date-picker"),"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"),"input-message":()=>import("@esri/calcite-components/dist/components/calcite-input-message"),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")})}get activeFeatureIndex(){return this.viewModel.activeFeatureIndex}set activeFeatureIndex(e){this.viewModel.activeFeatureIndex=e}get disabled(){return this.viewModel.disabled}set disabled(e){this.viewModel.disabled=e}get _effectiveDisabled(){return this.disabled||this.viewModel.updating}get features(){return this.viewModel.features}set features(e){this.viewModel.features=e}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 readOnly(){return this.viewModel.readOnly}set readOnly(e){this.viewModel.readOnly=e}get valid(){return this.viewModel.valid}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(){const{status:e}=this.viewModel;return"failed"===e?this.viewModel.hasTooManyComplexFeatures?this._renderErrorNotice(t(this.messages.formFailedToLoadTooManyComplexFeatures,{num:this.viewModel.maximumFeatureCountWithComplexForms})):this.viewModel.hasTooManyFeatures?this._renderErrorNotice(t(this.messages.formFailedToLoadTooManyFeatures,{num:this.viewModel.maximumFeatureCount})):this._renderErrorNotice(this.messages.formFailedToLoad):this.viewModel.expressionEvaluationFailed?this._renderErrorNotice(this.messages.expressionEvaluationFailed):this.viewModel.hasLayersWithContingentValues?this._renderErrorNotice(this.messages.unsupportedContingentValues):E("div",{class:this.classes(b.base,T.widget,T.panel)},"loaded"===e?this._renderForm():"loading"===e&&this.visibleElements.loadingIndicator?E("calcite-loader",{key:"loader",label:this.messagesCommon?.loading}):null)}submit(){this.viewModel.submit()}_setDateTimeTimeZoneMap(e){const{datePart:t,elementId:i}=e.dataset,n=o(this._dateComponentMap,`${i}`,()=>({}));switch(t){case"date":n.date=e;break;case"time":n.time=e;break;case"timeZone":n.timeZone=e}}_renderErrorNotice(e){return E("div",{class:this.classes(b.base,T.widget,T.panel)},E("calcite-notice",{class:b.noticeError,icon:!0,kind:"warning",open:!0},E("div",{slot:"message"},e)))}_renderForm(){return E("form",{class:b.form,onsubmit:this._onFormSubmit},this._renderInvisibleFieldsError(),this._renderContent())}_renderInvisibleFieldsError(){const{viewModel:e}=this,{hasNonActiveInvalidFeatures:t,activeForm:i}=e;let n;if(!e.submitHasBeenAttempted)return null;if(i.invalidHiddenInputs.length>0)if(n=m(i,e.mode,this.messages),"batch"===this.viewModel.mode){const e=i.invalidHiddenInputs.filter(e=>"hidden:group-visibility-expression:all-features"===e.effectiveVisibilityCode||"hidden:visibility-expression:all-features"===e.visibilityCode);e.length>0?n+=` (${e.map(e=>e.label).join(", ")})`:n=null}else n+=` (${i.invalidHiddenInputs.map(e=>e.label).join(", ")})`;else if(t)return null;return n?E("calcite-notice",{class:b.noticeError,icon:!0,kind:"danger",open:!0},E("div",{slot:"message"},n)):null}_renderContent(){if(!this.viewModel.hasVisibleInputs)return[E("calcite-notice",{class:b.noticeError,icon:!0,kind:"warning",open:!0},E("div",{slot:"message"},this.messages.noVisibleFields[this.viewModel.noVisibleElementsReason]))];const{inputs:e}=this.viewModel.activeForm;return e.filter(e=>e.visible).map(e=>this._renderInput(e))}_renderInput(e){return C(e)?this._renderGroupInput(e):g(e)?this._renderLabeledField(e):_(e)?this._renderTextComponent(e):void 0}_renderGroupInput(e){const{inputs:t,template:i,open:n}=e,o=t.filter(e=>e.visible),a=i.label??"";return E("calcite-block",{class:this.classes(b.group,"sequential"===this.groupDisplay?b.groupSequential:null,this.disabled?b.inputDisabled:null),collapsible:!0,description:i.description??void 0,disabled:this._effectiveDisabled,expanded:n,heading:a,headingLevel:this.headingLevel,key:`{${i.elementId}-key}`,label:a,onCalciteBlockClose:()=>{e.open=!1},onCalciteBlockOpen:()=>{e.open=!0}},o.map(e=>this._renderInput(e)))}_renderLabeledField(e){const{elementId:i}=e.template,{label:n,required:o,dataType:a}=e,s=o?t(this.messages.requiredFieldLabel,{name:n}):n;return E("calcite-label",{"aria-label":s,class:b.label,key:`field--${i}`},E("div",{class:b.labelTextContent,key:"labelTextContainer"},n,o?E("span",{"aria-hidden":"true",title:this.messagesCommon.required},"*"):void 0),"unsupported"!==a?this._renderFieldInput(e):this._renderReadOnlyComponent(e),this._renderAuxiliaryText(e))}_renderFieldInput(e){const t=this.getCommonInputProps(e),{dataType:i}=e;return"date"===i?this._renderDateComponents(e,t):"coded-value"===e.domain?.type?this._renderCodedInputs({input:e,props:t}):"number"===i?this._renderNumberComponent(e,t):this._renderStringComponent(e,t)}_renderAuxiliaryText(e){const{compositeError:t,description:i,submittable:n}=e,o=!n&&t&&(this.viewModel.submitHasBeenAttempted||this._touchedInputs.has(e.template.elementId))?c(e,t,this.messages):null;return o?E("calcite-input-message",{icon:!0,status:"invalid"},o):i?E("calcite-input-message",{class:b.description,icon:!1,status:"idle"},i):null}_renderCodedInputs({input:e,props:t}){const i=e.template.input?.type??null,n=e.codedValueOptions;switch(i){case"switch":return this._renderSwitchField({input:e,props:t});case"radio-buttons":return this._renderRadioButtonGroupComponent({input:e,options:n.flat(),props:t});default:return this._renderComboBoxComponent({options:n,props:t,input:e})}}_renderSwitchField({input:e,props:t}){if((this._batchSwitchInputInitialValues.get(e)===y||e.value===y)&&"batch"===this.viewModel.mode){const i={dropdown:{afterCreate:this._afterComponentCreateOrUpdate,afterUpdate:this._afterComponentCreateOrUpdate,disabled:t.readOnly,open:!1,[R]:t[R]},trigger:{appearance:"transparent",iconEnd:"chevron-down",kind:"neutral",slot:"trigger",label:t.label},group:{mode:"single"}};return this._renderDropdownComponent({buttonValue:e.value,dropdownProps:i,options:[{name:this.messages.differentValuesPlaceholder,value:y,disabled:!0},...e.codedValueDomainOptions]})}return this._renderSwitchComponent({input:e,props:t})}_renderSwitchComponent({input:e,props:t}){return E("calcite-switch",{...t,checked:!!h(e.template,"switch")&&e.value===e.template.input.onValue,class:b.inputSwitch,disabled:t.readOnly,onblur:()=>{this._focusedFieldInput=null},onCalciteSwitchChange:({currentTarget:e})=>this._saveInput(e)})}_renderDropdownComponent({buttonValue:e,options:t,dropdownProps:i}){const{trigger:n,dropdown:o,group:a}=i;return E("calcite-dropdown",{...o,onblur:()=>{this._focusedFieldInput=null},onfocus:this._onComponentFocus,topLayerDisabled:this.topLayerDisabled,onCalciteDropdownSelect:({currentTarget:e})=>this._saveInput(e)},E("calcite-button",{...n},e===y?this.messages.differentValuesPlaceholder:e),E("calcite-dropdown-group",{selectionMode:a.mode},t.map(t=>E("calcite-dropdown-item",{disabled:t.disabled,label:String(t.name),selected:e===t.value},t.name))))}_renderComboBoxComponent({input:e,options:t,props:i}){const n="INSERT"===this.viewModel.editType,o=this._touchedInputs.has(e?.template?.elementId),a=n&&e.showNoValueOptionEnabled&&!o?()=>{}:i.onblur,s={...i,onblur:a};return E("calcite-combobox",{...s,selectionMode:"single",topLayerDisabled:this.topLayerDisabled,value:i.placeholder===this.messages.differentValuesPlaceholder?y:String(i.value),onCalciteComboboxChange:({currentTarget:e})=>{e.value!==y&&this._saveInput(e)}},this.renderComboboxOptionsList({input:e,options:t,props:i}))}renderComboboxOptionsList({input:e,options:t,props:i}){const[n,o]=t.map(e=>e.map(({name:e,value:t})=>E("calcite-combobox-item",{heading:e,key:`#${t}`,selected:i.value===t,value:`${t}`}))),a=[...n];o.length>0&&a.push(E("calcite-combobox-item-group",{key:"unsupported",label:this.featureFormMessages.subtypes.unsupportedDomainGroupTitle},o));const s=i.placeholder===this.messages.differentValuesPlaceholder,r=!s&&S(i.value);return e.showNoValueOptionEnabled&&a.unshift(E("calcite-combobox-item",{heading:e.showNoValueLabel||this.messages.empty,key:"empty-option",selected:r,value:""})),s&&a.unshift(E("calcite-combobox-item",{heading:this.messages.differentValuesPlaceholder,key:y,selected:!0,value:y})),a}_renderRadioButtonGroupComponent({input:e,options:t,props:i}){const n=t.map(({name:t,value:n})=>this._renderRadioButtons({label:t,value:n,selected:n===e.value,props:i}));if(e.showNoValueOptionEnabled){const t="",o=e.showNoValueLabel||this.messages.empty,a=S(e.value);n.unshift(this._renderRadioButtons({label:o,value:t,selected:a,props:i}))}return E("calcite-radio-button-group",{afterCreate:this._afterRadioGroupCreateOrUpdate,afterUpdate:this._afterRadioGroupCreateOrUpdate,class:b.inputRadioGroup,disabled:i.readOnly,key:`${i.key}-radio-group`,layout:"vertical",name:i.name,required:i.required},n,i.placeholder===this.messages.differentValuesPlaceholder?E("calcite-label",{class:b.placeholderRadio,key:i.label,layout:"inline"},E("calcite-radio-button",{checked:!0,class:b.inputRadio,disabled:!0,name:i.placeholder,value:i.placeholder}),i.placeholder):null)}_renderRadioButtons({value:e,selected:t,label:i,props:n}){return E("calcite-label",{class:b.inputRadioLabel,key:n.label,layout:"inline"},E("calcite-radio-button",{...n,afterCreate:void 0,afterUpdate:void 0,checked:t,class:b.inputRadio,disabled:n.readOnly,name:n.label,onblur:()=>{this._focusedFieldInput=null},value:e,onCalciteRadioButtonChange:({currentTarget:e})=>{e.checked&&this._saveInput(e)}}),i)}_renderStringComponent(e,t){const{template:i}=e;return!i.field.editable||this.readOnly?this._renderReadOnlyComponent(e):"text-area"===i.input?.type?E("calcite-text-area",{...t,class:this.classes(b.individualElement),resize:"vertical",value:t.value?String(t.value):"",onCalciteTextAreaInput:({currentTarget:e})=>this._saveInput(e)}):E("calcite-input",{...t,class:this.classes(b.individualElement),type:"text",value:t.value?String(t.value):"",onCalciteInputInput:({currentTarget:e})=>this._saveInput(e)})}_renderNumberComponent(e,t){const i=d(e.field);return E("calcite-input-number",{...t,integer:i,type:"number",value:i&&""!==t.value?Math.round(parseFloat(String(t.value))).toString():String(t.value),onCalciteInputNumberInput:({currentTarget:e})=>this._saveInput(e)})}_renderReadOnlyComponent(e,t){const i=this.getCommonInputProps(e);return E("calcite-input",{...i,class:this.classes(b.fieldInput,b.inputDisabled,b.individualElement),readOnly:!0,type:"text",value:String(t??i.value??"")})}_renderDateComponents(e,t){const{field:i}=e;let n;switch(i.type){case"date":n=this._renderDateFieldComponents(e,t);break;case"date-only":n=this._renderDateOnlyFieldComponent(e,t);break;case"time-only":n=this._renderTimeOnlyFieldComponent(e,t);break;case"timestamp-offset":n=this._renderTimestampOffsetFieldComponents(e,t);break;default:n=this._renderReadOnlyComponent(e,w(i,t.value,{timeZone:e.effectiveTimeZone,...I(e.template.field)}))}return e.value===y?[n,E("calcite-input-message",{icon:"information",key:"diff-values-message",status:"idle"},this.messages.differentValues)]:n}_renderDateOnlyFieldComponent(e,t){const{class:i,key:n,readOnly:o}=t,{rawMax:a,rawMin:s}=e.range;return E("calcite-input-date-picker",{afterCreate:this._afterDateComponentCreate,afterUpdate:this._afterComponentCreateOrUpdate,class:i,"data-date-part":"date","data-element-id":t[R],key:`${n}-date-input`,max:p(a)?a:void 0,min:p(s)?s:void 0,onblur:()=>{this._focusedFieldInput=null},onfocus:this._onComponentFocus,overlayPositioning:"fixed",readOnly:o,topLayerDisabled:this.topLayerDisabled,value:e.value===y?"":e.value?String(e.value):"",onCalciteInputDatePickerChange:t=>this._saveValueFromDateComponent(e,t.currentTarget)})}_renderTimeOnlyFieldComponent(e,t){const{class:i,key:n,readOnly:o}=t;return E("calcite-input-time-picker",{afterCreate:this._afterDateComponentCreate,afterUpdate:this._afterComponentCreateOrUpdate,class:i,"data-date-part":"time","data-element-id":t[R],key:`${n}-time-input`,onblur:()=>{this._focusedFieldInput=null},onfocus:this._onComponentFocus,overlayPositioning:"fixed",readOnly:o,value:e.value===y?"":e.value?String(e.value):"",onCalciteInputTimePickerChange:t=>this._saveValueFromDateComponent(e,t.currentTarget)})}_renderTimestampOffsetFieldComponents(e,t){const{class:i,key:n,readOnly:o}=t,{rawMax:a,rawMin:s}=e.range,r=x(a),l=x(s),d=x(e.value===y?"":e.value),p=e.includeTimeOffset,u={afterCreate:this._afterDateComponentCreate,afterUpdate:this._afterComponentCreateOrUpdate,overlayPositioning:"fixed",readOnly:o,[R]:t[R],onfocus:this._onComponentFocus};return E("div",{class:b.dateInputContainer,key:`${n}-date-time-container`},E("calcite-input-date-picker",{...u,class:i,"data-date-part":"date",key:`${n}-date-input`,max:r?.date??void 0,min:l?.date??void 0,onblur:()=>{this._focusedFieldInput=null},topLayerDisabled:this.topLayerDisabled,value:d.date??"",onCalciteInputDatePickerChange:t=>this._saveValueFromDateComponent(e,t.target)}),E("calcite-input-time-picker",{...u,class:i,"data-date-part":"time",key:`${n}-time-input`,onblur:()=>{this._focusedFieldInput=null},value:d.time??"",onCalciteInputTimePickerChange:t=>this._saveValueFromDateComponent(e,t.target)}),p?E("calcite-input-time-zone",{...u,class:i,clearable:e.value===y||null==e.value,"data-date-part":"timeZone",key:`${n}-timezone-input`,onblur:()=>{this._focusedFieldInput=null},value:d.timeZoneOffset||"",onCalciteInputTimeZoneChange:t=>this._saveValueFromDateComponent(e,t.target)}):null)}_renderDateFieldComponents(e,t){const{class:i,key:n,readOnly:o,min:a,max:s}=t,r=e.effectiveTimeZone,l=M(e.value===y?"":e.value,r),d=M(s,r),p=M(a,r),u=e.includeTime,m={afterCreate:this._afterDateComponentCreate,afterUpdate:this._afterComponentCreateOrUpdate,overlayPositioning:"fixed",readOnly:o,[R]:t[R],onfocus:this._onComponentFocus};return E("div",{class:b.dateInputContainer,key:`${n}-date-time-container`},E("calcite-input-date-picker",{...m,class:i,"data-date-part":"date",key:`${n}-date-input`,max:d?.date??void 0,min:p?.date??void 0,onblur:()=>{this._focusedFieldInput=null},topLayerDisabled:this.topLayerDisabled,value:l.date??"",onCalciteInputDatePickerChange:t=>this._saveValueFromDateComponent(e,t.target)}),u?E("calcite-input-time-picker",{...m,"data-date-part":"time",key:`${n}-time-input`,onblur:()=>{this._focusedFieldInput=null},step:1,value:l.time??"",onCalciteInputTimePickerChange:t=>{this._saveValueFromDateComponent(e,t.target)}}):null)}_renderTextComponent(e){const{elementId:t}=e.template;return E("div",{class:b.textElementInput,"data-testid":`text-element-${t}`,innerHTML:e.text,key:`text-element-${t}`})}getCommonInputProps(e){const{template:t,valid:i,value:n,minLength:o,maxLength:a,required:s,fieldName:r,editable:l,userHasChangedValue:d,range:{max:p,min:u}}=e,m=!l||this.readOnly,c=!m&&this._effectiveDisabled;let h=t.hint??void 0,v=!1;return n===y&&(h=this.messages.differentValuesPlaceholder,v=!0),{afterCreate:this._afterComponentCreateOrUpdate,afterUpdate:this._afterComponentCreateOrUpdate,"aria-invalid":i?"false":"true",class:this.classes(b.fieldInput,m?b.inputDisabled:null),status:!d&&!this.viewModel.submitHasBeenAttempted||i?"idle":"invalid",maxLength:a&&a>-1?a:void 0,minLength:o&&o>-1?o:void 0,key:t.elementId,label:r,name:r,max:null!=p?p:void 0,min:null!=u?u:void 0,disabled:c,readOnly:m,onblur:this._onComponentBlur,required:s,placeholder:h,value:v?"":n??"",[R]:t.elementId,onfocus:this._onComponentFocus}}_onFormSubmit(e){e.preventDefault()}_getFieldInputFromHTMLElement(e){return this.viewModel.findFieldInput(e.getAttribute(R))}_afterRadioGroupCreateOrUpdate(e){const t=e.selectedItem,i=e.querySelector("calcite-radio-button"),n=t||i;n&&this._afterComponentCreateOrUpdate(n)}_onComponentFocus(e){const t=e.target,i=this._getFieldInputFromHTMLElement(t);this._touchedInputs.add(i.template.elementId),this._focusedFieldInput=i}_afterComponentCreateOrUpdate(e){const t=this._getFieldInputFromHTMLElement(e),i=this._focusedFieldInput;this._attemptFocusOnNextRender&&i===t&&(this._attemptFocusOnNextRender=!1,U(e))}_onComponentBlur(){this._focusedFieldInput=null}_parseValue(e,t){if(h(t.template,"switch")){if("calcite-dropdown"===e.localName&&t.domain)for(const i of t.domain.codedValues)if(i.name===e.selectedItems[0].textContent)return i.code;return e.checked?t.template.input.onValue:t.template.input.offValue}const i=e.value;return null==i||""===i?null:"number"===t.dataType?"-0"===i||"-0."===i||"-0,"===i?i:parseFloat(i):"date"===t.field.type?parseFloat(i):i}_saveInput(e){const t=this._getFieldInputFromHTMLElement(e),{elementId:i}=t.template;if(!t)return;const n=t?.value;if(h(t.template,"switch")&&"single"!==this.viewModel.mode){const e=o(this._batchSwitchInputInitialValues,t,()=>t.value);this._batchSwitchInputInitialValues.set(t,null===e?n:e)}const a=this._parseValue(e,t);a!==n&&this.viewModel.setValue(i,a)}_afterDateComponentCreate(e){this._setDateTimeTimeZoneMap(e),this._afterComponentCreateOrUpdate(e)}_saveValueFromDateComponent(e,t){const{elementId:i}=e.template,n=e.field.type,o=this._dateComponentMap.get(`${i}`);if(!o)return;const a=e.effectiveTimeZone;let s=e.value===y?void 0:e.value,r=null;"date-only"===n?r=Array.isArray(t.value)?t.value[0]:t.value:"time-only"===n?(s=k(s),r=k(t.value)):r="timestamp-offset"===n?null!=t.value?O({dateComponent:o.date,timeComponent:o.time,oldValue:s,timeZoneComponent:o.timeZone,defaultTimeZone:a}):null:null!=t.value?D({oldValue:s,dateComponent:o.date,timeZone:a,timeComponent:o.time?.value===y?void 0:o.time}):null,s!==r&&(null!==r&&t.value?this.viewModel.setValue(`${i}`,r):this.viewModel.setValue(`${i}`,null))}};e([r()],B.prototype,"activeFeatureIndex",null),e([r()],B.prototype,"disabled",null),e([r()],B.prototype,"_effectiveDisabled",null),e([r()],B.prototype,"features",null),e([r()],B.prototype,"map",null),e([r()],B.prototype,"maximumFeatureCount",null),e([r()],B.prototype,"maximumFeatureCountWithComplexForms",null),e([r()],B.prototype,"spatialReference",null),e([r()],B.prototype,"layerInfos",null),e([r()],B.prototype,"timeZone",null),e([r()],B.prototype,"headingLevel",void 0),e([r()],B.prototype,"icon",null),e([r(),V("esri/t9n/common")],B.prototype,"messagesCommon",void 0),e([r(),V("esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm")],B.prototype,"messages",void 0),e([r(),V("esri/widgets/FeatureForm/t9n/FeatureForm")],B.prototype,"featureFormMessages",void 0),e([r()],B.prototype,"readOnly",null),e([r()],B.prototype,"valid",null),e([r({type:v}),L(["value-change","submit"])],B.prototype,"viewModel",void 0),e([r({type:f,nonNullable:!0})],B.prototype,"visibleElements",void 0),e([r()],B.prototype,"groupDisplay",void 0),B=e([l("esri.widgets.BatchAttributeForm")],B);const N=B;export{N as default};
2
+ import{__decorate as e}from"tslib";import{substitute as t}from"../intl.js";import{deprecateWidget as i}from"../core/deprecate.js";import n from"../core/Logger.js";import{getOrCreateMapValue as o}from"../core/MapUtils.js";import{watch as a,on as s}from"../core/reactiveUtils.js";import{property as r,subclass as l}from"../core/accessorSupport/decorators.js";import{isIntegerField as d}from"../layers/support/fieldUtils.js";import{isString as p}from"../support/guards.js";import u from"./Widget.js";import{getHiddenFieldsValidationErrorMessage as m,getVisibleFieldInputValidationErrorMessage as c,isElementTemplateWithInputType as h}from"./BatchAttributeForm/batchAttributeFormUtils.js";import v from"./BatchAttributeForm/BatchAttributeFormViewModel.js";import{css as b}from"./BatchAttributeForm/css.js";import f from"./BatchAttributeForm/VisibleElements.js";import{isGroupInput as C,isFieldInput as g,isTextElementInput as _,isRelationshipElementInput as y,differentValuesString as F}from"./BatchAttributeForm/inputs/support/inputUtils.js";import{loadCalciteComponents as I}from"./support/componentsUtils.js";import{getLabelForDateFieldValue as w,getIntlOptionsForField as x,prepareISOFieldValueForDateComponents as M,prepareUnixFieldValueForDateComponents as k,normalizeTimeOnlyString as O,getISOFieldValueFromDateComponents as D,getUnixFieldValueFromDateComponents as T}from"./support/dateUtils.js";import{globalCss as V}from"./support/globalCss.js";import{messageBundle as E,vmEvent as L,tsx as U}from"./support/widget.js";import{setFocus as R}from"./support/widgetUtils.js";import{isEmptyValue as S}from"./support/forms/formUtils.js";const B="data-element-id";let $=class extends u{constructor(e,t){super(e,t),this.headingLevel=2,this.messagesCommon=null,this.messages=null,this.featureFormMessages=null,this.viewModel=new v,this.visibleElements=new f,this.groupDisplay="all",this._attemptFocusOnNextRender=!1,this._dateComponentMap=new Map,this._touchedInputs=new Set,this._focusedFieldInput=null,this._batchSwitchInputInitialValues=new Map,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=()=>{i(n.getLogger(this),"Editor","arcgis-editor",{version:"5.0"})})}normalizeCtorArgs(e={}){const{suppressDeprecationWarning:t,...i}=e;return i}initialize(){this.addHandles([a(()=>this.features,()=>{this._dateComponentMap.clear()}),a(()=>this.viewModel.activeForm,()=>{this._batchSwitchInputInitialValues.clear()}),s(()=>this.viewModel,"submit",()=>{this.valid||this.goToFirstError()})])}loadDependencies(){return I({input:()=>import("@esri/calcite-components/dist/components/calcite-input"),block:()=>import("@esri/calcite-components/dist/components/calcite-block"),button:()=>import("@esri/calcite-components/dist/components/calcite-button"),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"),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"),"input-date-picker":()=>import("@esri/calcite-components/dist/components/calcite-input-date-picker"),"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"),"input-message":()=>import("@esri/calcite-components/dist/components/calcite-input-message"),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")})}get activeFeatureIndex(){return this.viewModel.activeFeatureIndex}set activeFeatureIndex(e){this.viewModel.activeFeatureIndex=e}get disabled(){return this.viewModel.disabled}set disabled(e){this.viewModel.disabled=e}get _effectiveDisabled(){return this.disabled||this.viewModel.updating}get features(){return this.viewModel.features}set features(e){this.viewModel.features=e}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 readOnly(){return this.viewModel.readOnly}set readOnly(e){this.viewModel.readOnly=e}get valid(){return this.viewModel.valid}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(){const{status:e}=this.viewModel;return"failed"===e?this.viewModel.hasTooManyComplexFeatures?this._renderErrorNotice(t(this.messages.formFailedToLoadTooManyComplexFeatures,{num:this.viewModel.maximumFeatureCountWithComplexForms})):this.viewModel.hasTooManyFeatures?this._renderErrorNotice(t(this.messages.formFailedToLoadTooManyFeatures,{num:this.viewModel.maximumFeatureCount})):this._renderErrorNotice(this.messages.formFailedToLoad):this.viewModel.expressionEvaluationFailed?this._renderErrorNotice(this.messages.expressionEvaluationFailed):this.viewModel.hasLayersWithContingentValues?this._renderErrorNotice(this.messages.unsupportedContingentValues):U("div",{class:this.classes(b.base,V.widget,V.panel)},"loaded"===e?this._renderForm():"loading"===e&&this.visibleElements.loadingIndicator?U("calcite-loader",{key:"loader",label:this.messagesCommon?.loading}):null)}submit(){this.viewModel.submit()}_setDateTimeTimeZoneMap(e){const{datePart:t,elementId:i}=e.dataset,n=o(this._dateComponentMap,`${i}`,()=>({}));switch(t){case"date":n.date=e;break;case"time":n.time=e;break;case"timeZone":n.timeZone=e}}_renderErrorNotice(e){return U("div",{class:this.classes(b.base,V.widget,V.panel)},U("calcite-notice",{class:b.noticeError,icon:!0,kind:"warning",open:!0},U("div",{slot:"message"},e)))}_renderForm(){return U("form",{class:b.form,onsubmit:this._onFormSubmit},this._renderInvisibleFieldsError(),this._renderContent())}_renderInvisibleFieldsError(){const{viewModel:e}=this,{hasNonActiveInvalidFeatures:t,activeForm:i}=e;let n;if(!e.submitHasBeenAttempted)return null;if(i.invalidHiddenInputs.length>0)if(n=m(i,e.mode,this.messages),"batch"===this.viewModel.mode){const e=i.invalidHiddenInputs.filter(e=>"hidden:group-visibility-expression:all-features"===e.effectiveVisibilityCode||"hidden:visibility-expression:all-features"===e.visibilityCode);e.length>0?n+=` (${e.map(e=>e.label).join(", ")})`:n=null}else n+=` (${i.invalidHiddenInputs.map(e=>e.label).join(", ")})`;else if(t)return null;return n?U("calcite-notice",{class:b.noticeError,icon:!0,kind:"danger",open:!0},U("div",{slot:"message"},n)):null}_renderContent(){if(!this.viewModel.hasVisibleInputs)return[U("calcite-notice",{class:b.noticeError,icon:!0,kind:"warning",open:!0},U("div",{slot:"message"},this.messages.noVisibleFields[this.viewModel.noVisibleElementsReason]))];const{inputs:e}=this.viewModel.activeForm;return e.filter(e=>e.visible).map(e=>this._renderInput(e))}_renderInput(e){return C(e)?this._renderGroupInput(e):g(e)?this._renderLabeledField(e):_(e)?this._renderTextComponent(e):y(e)?this._renderRelationshipElementInput(e):void 0}_renderGroupInput(e){const{inputs:t,template:i,open:n}=e,o=t.filter(e=>e.visible),a=i.label??"";return U("calcite-block",{class:this.classes(b.group,"sequential"===this.groupDisplay?b.groupSequential:null,this.disabled?b.inputDisabled:null),collapsible:!0,description:i.description??void 0,disabled:this._effectiveDisabled,expanded:n,heading:a,headingLevel:this.headingLevel,key:`{${i.elementId}-key}`,label:a,onCalciteBlockClose:()=>{e.open=!1},onCalciteBlockOpen:()=>{e.open=!0}},o.map(e=>this._renderInput(e)))}_renderLabeledField(e){const{elementId:i}=e.template,{label:n,required:o,dataType:a}=e,s=o?t(this.messages.requiredFieldLabel,{name:n}):n;return U("calcite-label",{"aria-label":s,class:b.label,key:`field--${i}`},U("div",{class:b.labelTextContent,key:"labelTextContainer"},n,o?U("span",{"aria-hidden":"true",title:this.messagesCommon.required},"*"):void 0),"unsupported"!==a?this._renderFieldInput(e):this._renderReadOnlyComponent(e),this._renderAuxiliaryText(e))}_renderFieldInput(e){const t=this.getCommonInputProps(e),{dataType:i}=e;return"date"===i?this._renderDateComponents(e,t):"coded-value"===e.domain?.type?this._renderCodedInputs({input:e,props:t}):"number"===i?this._renderNumberComponent(e,t):this._renderStringComponent(e,t)}_renderAuxiliaryText(e){const{compositeError:t,description:i,submittable:n}=e,o=!n&&t&&(this.viewModel.submitHasBeenAttempted||this._touchedInputs.has(e.template.elementId))?c(e,t,this.messages):null;return o?U("calcite-input-message",{icon:!0,status:"invalid"},o):i?U("calcite-input-message",{class:b.description,icon:!1,status:"idle"},i):null}_renderCodedInputs({input:e,props:t}){const i=e.template.input?.type??null,n=e.codedValueOptions;switch(i){case"switch":return this._renderSwitchField({input:e,props:t});case"radio-buttons":return this._renderRadioButtonGroupComponent({input:e,options:n.flat(),props:t});default:return this._renderComboBoxComponent({options:n,props:t,input:e})}}_renderSwitchField({input:e,props:t}){if((this._batchSwitchInputInitialValues.get(e)===F||e.value===F)&&"batch"===this.viewModel.mode){const i={dropdown:{afterCreate:this._afterComponentCreateOrUpdate,afterUpdate:this._afterComponentCreateOrUpdate,disabled:t.readOnly,open:!1,[B]:t[B]},trigger:{appearance:"transparent",iconEnd:"chevron-down",kind:"neutral",slot:"trigger",label:t.label},group:{mode:"single"}};return this._renderDropdownComponent({buttonValue:e.value,dropdownProps:i,options:[{name:this.messages.differentValuesPlaceholder,value:F,disabled:!0},...e.codedValueDomainOptions]})}return this._renderSwitchComponent({input:e,props:t})}_renderSwitchComponent({input:e,props:t}){return U("calcite-switch",{...t,checked:!!h(e.template,"switch")&&e.value===e.template.input.onValue,class:b.inputSwitch,disabled:t.readOnly,onblur:()=>{this._focusedFieldInput=null},onCalciteSwitchChange:({currentTarget:e})=>this._saveInput(e)})}_renderDropdownComponent({buttonValue:e,options:t,dropdownProps:i}){const{trigger:n,dropdown:o,group:a}=i;return U("calcite-dropdown",{...o,onblur:()=>{this._focusedFieldInput=null},onfocus:this._onComponentFocus,topLayerDisabled:this.topLayerDisabled,onCalciteDropdownSelect:({currentTarget:e})=>this._saveInput(e)},U("calcite-button",{...n},e===F?this.messages.differentValuesPlaceholder:e),U("calcite-dropdown-group",{selectionMode:a.mode},t.map(t=>U("calcite-dropdown-item",{disabled:t.disabled,label:String(t.name),selected:e===t.value},t.name))))}_renderComboBoxComponent({input:e,options:t,props:i}){const n="INSERT"===this.viewModel.editType,o=this._touchedInputs.has(e?.template?.elementId),a=n&&e.showNoValueOptionEnabled&&!o?()=>{}:i.onblur,s={...i,onblur:a};return U("calcite-combobox",{...s,selectionMode:"single",topLayerDisabled:this.topLayerDisabled,value:i.placeholder===this.messages.differentValuesPlaceholder?F:String(i.value),onCalciteComboboxChange:({currentTarget:e})=>{e.value!==F&&this._saveInput(e)}},this.renderComboboxOptionsList({input:e,options:t,props:i}))}renderComboboxOptionsList({input:e,options:t,props:i}){const[n,o]=t.map(e=>e.map(({name:e,value:t})=>U("calcite-combobox-item",{heading:e,key:`#${t}`,selected:i.value===t,value:`${t}`}))),a=[...n];o.length>0&&a.push(U("calcite-combobox-item-group",{key:"unsupported",label:this.featureFormMessages.subtypes.unsupportedDomainGroupTitle},o));const s=i.placeholder===this.messages.differentValuesPlaceholder,r=!s&&S(i.value);return e.showNoValueOptionEnabled&&a.unshift(U("calcite-combobox-item",{heading:e.showNoValueLabel||this.messages.empty,key:"empty-option",selected:r,value:""})),s&&a.unshift(U("calcite-combobox-item",{heading:this.messages.differentValuesPlaceholder,key:F,selected:!0,value:F})),a}_renderRadioButtonGroupComponent({input:e,options:t,props:i}){const n=t.map(({name:t,value:n})=>this._renderRadioButtons({label:t,value:n,selected:n===e.value,props:i}));if(e.showNoValueOptionEnabled){const t="",o=e.showNoValueLabel||this.messages.empty,a=S(e.value);n.unshift(this._renderRadioButtons({label:o,value:t,selected:a,props:i}))}return U("calcite-radio-button-group",{afterCreate:this._afterRadioGroupCreateOrUpdate,afterUpdate:this._afterRadioGroupCreateOrUpdate,class:b.inputRadioGroup,disabled:i.readOnly,key:`${i.key}-radio-group`,layout:"vertical",name:i.name,required:i.required},n,i.placeholder===this.messages.differentValuesPlaceholder?U("calcite-label",{class:b.placeholderRadio,key:i.label,layout:"inline"},U("calcite-radio-button",{checked:!0,class:b.inputRadio,disabled:!0,name:i.placeholder,value:i.placeholder}),i.placeholder):null)}_renderRadioButtons({value:e,selected:t,label:i,props:n}){return U("calcite-label",{class:b.inputRadioLabel,key:n.label,layout:"inline"},U("calcite-radio-button",{...n,afterCreate:void 0,afterUpdate:void 0,checked:t,class:b.inputRadio,disabled:n.readOnly,name:n.label,onblur:()=>{this._focusedFieldInput=null},value:e,onCalciteRadioButtonChange:({currentTarget:e})=>{e.checked&&this._saveInput(e)}}),i)}_renderStringComponent(e,t){const{template:i}=e;return!i.field.editable||this.readOnly?this._renderReadOnlyComponent(e):"text-area"===i.input?.type?U("calcite-text-area",{...t,class:this.classes(b.individualElement),resize:"vertical",value:t.value?String(t.value):"",onCalciteTextAreaInput:({currentTarget:e})=>this._saveInput(e)}):U("calcite-input",{...t,class:this.classes(b.individualElement),type:"text",value:t.value?String(t.value):"",onCalciteInputInput:({currentTarget:e})=>this._saveInput(e)})}_renderNumberComponent(e,t){const i=d(e.field);return U("calcite-input-number",{...t,integer:i,type:"number",value:i&&""!==t.value?Math.round(parseFloat(String(t.value))).toString():String(t.value),onCalciteInputNumberInput:({currentTarget:e})=>this._saveInput(e)})}_renderReadOnlyComponent(e,t){const i=this.getCommonInputProps(e);return U("calcite-input",{...i,class:this.classes(b.fieldInput,b.inputDisabled,b.individualElement),readOnly:!0,type:"text",value:String(t??i.value??"")})}_renderDateComponents(e,t){const{field:i}=e;let n;switch(i.type){case"date":n=this._renderDateFieldComponents(e,t);break;case"date-only":n=this._renderDateOnlyFieldComponent(e,t);break;case"time-only":n=this._renderTimeOnlyFieldComponent(e,t);break;case"timestamp-offset":n=this._renderTimestampOffsetFieldComponents(e,t);break;default:n=this._renderReadOnlyComponent(e,w(i,t.value,{timeZone:e.effectiveTimeZone,...x(e.template.field)}))}return e.value===F?[n,U("calcite-input-message",{icon:"information",key:"diff-values-message",status:"idle"},this.messages.differentValues)]:n}_renderDateOnlyFieldComponent(e,t){const{class:i,key:n,readOnly:o}=t,{rawMax:a,rawMin:s}=e.range;return U("calcite-input-date-picker",{afterCreate:this._afterDateComponentCreate,afterUpdate:this._afterComponentCreateOrUpdate,class:i,"data-date-part":"date","data-element-id":t[B],key:`${n}-date-input`,max:p(a)?a:void 0,min:p(s)?s:void 0,onblur:()=>{this._focusedFieldInput=null},onfocus:this._onComponentFocus,overlayPositioning:"fixed",readOnly:o,topLayerDisabled:this.topLayerDisabled,value:e.value===F?"":e.value?String(e.value):"",onCalciteInputDatePickerChange:t=>this._saveValueFromDateComponent(e,t.currentTarget)})}_renderTimeOnlyFieldComponent(e,t){const{class:i,key:n,readOnly:o}=t;return U("calcite-input-time-picker",{afterCreate:this._afterDateComponentCreate,afterUpdate:this._afterComponentCreateOrUpdate,class:i,"data-date-part":"time","data-element-id":t[B],key:`${n}-time-input`,onblur:()=>{this._focusedFieldInput=null},onfocus:this._onComponentFocus,overlayPositioning:"fixed",readOnly:o,value:e.value===F?"":e.value?String(e.value):"",onCalciteInputTimePickerChange:t=>this._saveValueFromDateComponent(e,t.currentTarget)})}_renderTimestampOffsetFieldComponents(e,t){const{class:i,key:n,readOnly:o}=t,{rawMax:a,rawMin:s}=e.range,r=M(a),l=M(s),d=M(e.value===F?"":e.value),p=e.includeTimeOffset,u={afterCreate:this._afterDateComponentCreate,afterUpdate:this._afterComponentCreateOrUpdate,overlayPositioning:"fixed",readOnly:o,[B]:t[B],onfocus:this._onComponentFocus};return U("div",{class:b.dateInputContainer,key:`${n}-date-time-container`},U("calcite-input-date-picker",{...u,class:i,"data-date-part":"date",key:`${n}-date-input`,max:r?.date??void 0,min:l?.date??void 0,onblur:()=>{this._focusedFieldInput=null},topLayerDisabled:this.topLayerDisabled,value:d.date??"",onCalciteInputDatePickerChange:t=>this._saveValueFromDateComponent(e,t.target)}),U("calcite-input-time-picker",{...u,class:i,"data-date-part":"time",key:`${n}-time-input`,onblur:()=>{this._focusedFieldInput=null},value:d.time??"",onCalciteInputTimePickerChange:t=>this._saveValueFromDateComponent(e,t.target)}),p?U("calcite-input-time-zone",{...u,class:i,clearable:e.value===F||null==e.value,"data-date-part":"timeZone",key:`${n}-timezone-input`,onblur:()=>{this._focusedFieldInput=null},value:d.timeZoneOffset||"",onCalciteInputTimeZoneChange:t=>this._saveValueFromDateComponent(e,t.target)}):null)}_renderDateFieldComponents(e,t){const{class:i,key:n,readOnly:o,min:a,max:s}=t,r=e.effectiveTimeZone,l=k(e.value===F?"":e.value,r),d=k(s,r),p=k(a,r),u=e.includeTime,m={afterCreate:this._afterDateComponentCreate,afterUpdate:this._afterComponentCreateOrUpdate,overlayPositioning:"fixed",readOnly:o,[B]:t[B],onfocus:this._onComponentFocus};return U("div",{class:b.dateInputContainer,key:`${n}-date-time-container`},U("calcite-input-date-picker",{...m,class:i,"data-date-part":"date",key:`${n}-date-input`,max:d?.date??void 0,min:p?.date??void 0,onblur:()=>{this._focusedFieldInput=null},topLayerDisabled:this.topLayerDisabled,value:l.date??"",onCalciteInputDatePickerChange:t=>this._saveValueFromDateComponent(e,t.target)}),u?U("calcite-input-time-picker",{...m,"data-date-part":"time",key:`${n}-time-input`,onblur:()=>{this._focusedFieldInput=null},step:1,value:l.time??"",onCalciteInputTimePickerChange:t=>{this._saveValueFromDateComponent(e,t.target)}}):null)}_renderRelationshipElementInput(e){const{elementId:t}=e.template;return U("div",{class:b.relationshipElementInput,"data-testid":`relationship-element-${t}`,key:`relationship-element-${t}`})}_renderTextComponent(e){const{elementId:t}=e.template;return U("div",{class:b.textElementInput,"data-testid":`text-element-${t}`,innerHTML:e.text,key:`text-element-${t}`})}getCommonInputProps(e){const{template:t,valid:i,value:n,minLength:o,maxLength:a,required:s,fieldName:r,editable:l,userHasChangedValue:d,range:{max:p,min:u}}=e,m=!l||this.readOnly,c=!m&&this._effectiveDisabled;let h=t.hint??void 0,v=!1;return n===F&&(h=this.messages.differentValuesPlaceholder,v=!0),{afterCreate:this._afterComponentCreateOrUpdate,afterUpdate:this._afterComponentCreateOrUpdate,"aria-invalid":i?"false":"true",class:this.classes(b.fieldInput,m?b.inputDisabled:null),status:!d&&!this.viewModel.submitHasBeenAttempted||i?"idle":"invalid",maxLength:a&&a>-1?a:void 0,minLength:o&&o>-1?o:void 0,key:t.elementId,label:r,name:r,max:null!=p?p:void 0,min:null!=u?u:void 0,disabled:c,readOnly:m,onblur:this._onComponentBlur,required:s,placeholder:h,value:v?"":n??"",[B]:t.elementId,onfocus:this._onComponentFocus}}_onFormSubmit(e){e.preventDefault()}_getFieldInputFromHTMLElement(e){return this.viewModel.findFieldInput(e.getAttribute(B))}_afterRadioGroupCreateOrUpdate(e){const t=e.selectedItem,i=e.querySelector("calcite-radio-button"),n=t||i;n&&this._afterComponentCreateOrUpdate(n)}_onComponentFocus(e){const t=e.target,i=this._getFieldInputFromHTMLElement(t);this._touchedInputs.add(i.template.elementId),this._focusedFieldInput=i}_afterComponentCreateOrUpdate(e){const t=this._getFieldInputFromHTMLElement(e),i=this._focusedFieldInput;this._attemptFocusOnNextRender&&i===t&&(this._attemptFocusOnNextRender=!1,R(e))}_onComponentBlur(){this._focusedFieldInput=null}_parseValue(e,t){if(h(t.template,"switch")){if("calcite-dropdown"===e.localName&&t.domain)for(const i of t.domain.codedValues)if(i.name===e.selectedItems[0].textContent)return i.code;return e.checked?t.template.input.onValue:t.template.input.offValue}const i=e.value;return null==i||""===i?null:"number"===t.dataType?"-0"===i||"-0."===i||"-0,"===i?i:parseFloat(i):"date"===t.field.type?parseFloat(i):i}_saveInput(e){const t=this._getFieldInputFromHTMLElement(e),{elementId:i}=t.template;if(!t)return;const n=t?.value;if(h(t.template,"switch")&&"single"!==this.viewModel.mode){const e=o(this._batchSwitchInputInitialValues,t,()=>t.value);this._batchSwitchInputInitialValues.set(t,null===e?n:e)}const a=this._parseValue(e,t);a!==n&&this.viewModel.setValue(i,a)}_afterDateComponentCreate(e){this._setDateTimeTimeZoneMap(e),this._afterComponentCreateOrUpdate(e)}_saveValueFromDateComponent(e,t){const{elementId:i}=e.template,n=e.field.type,o=this._dateComponentMap.get(`${i}`);if(!o)return;const a=e.effectiveTimeZone;let s=e.value===F?void 0:e.value,r=null;"date-only"===n?r=Array.isArray(t.value)?t.value[0]:t.value:"time-only"===n?(s=O(s),r=O(t.value)):r="timestamp-offset"===n?null!=t.value?D({dateComponent:o.date,timeComponent:o.time,oldValue:s,timeZoneComponent:o.timeZone,defaultTimeZone:a}):null:null!=t.value?T({oldValue:s,dateComponent:o.date,timeZone:a,timeComponent:o.time?.value===F?void 0:o.time}):null,s!==r&&(null!==r&&t.value?this.viewModel.setValue(`${i}`,r):this.viewModel.setValue(`${i}`,null))}};e([r()],$.prototype,"activeFeatureIndex",null),e([r()],$.prototype,"disabled",null),e([r()],$.prototype,"_effectiveDisabled",null),e([r()],$.prototype,"features",null),e([r()],$.prototype,"map",null),e([r()],$.prototype,"maximumFeatureCount",null),e([r()],$.prototype,"maximumFeatureCountWithComplexForms",null),e([r()],$.prototype,"spatialReference",null),e([r()],$.prototype,"layerInfos",null),e([r()],$.prototype,"timeZone",null),e([r()],$.prototype,"headingLevel",void 0),e([r()],$.prototype,"icon",null),e([r(),E("esri/t9n/common")],$.prototype,"messagesCommon",void 0),e([r(),E("esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm")],$.prototype,"messages",void 0),e([r(),E("esri/widgets/FeatureForm/t9n/FeatureForm")],$.prototype,"featureFormMessages",void 0),e([r()],$.prototype,"readOnly",null),e([r()],$.prototype,"valid",null),e([r({type:v}),L(["value-change","submit"])],$.prototype,"viewModel",void 0),e([r({type:f,nonNullable:!0})],$.prototype,"visibleElements",void 0),e([r()],$.prototype,"groupDisplay",void 0),$=e([l("esri.widgets.BatchAttributeForm")],$);const N=$;export{N as default};
@@ -19,7 +19,7 @@ import type { PointSymbol3DProperties } from "../../symbols/PointSymbol3D.js";
19
19
  import type { PictureMarkerSymbolProperties } from "../../symbols/PictureMarkerSymbol.js";
20
20
  import type { SimpleMarkerSymbolProperties } from "../../symbols/SimpleMarkerSymbol.js";
21
21
 
22
- export interface CoordinateConversionViewModelProperties extends GoToProperties, Partial<Pick<CoordinateConversionViewModel, "mode" | "storageEnabled" | "storageType" | "view">> {
22
+ export interface CoordinateConversionViewModelProperties extends GoToProperties, Partial<Pick<CoordinateConversionViewModel, "calculateCoordinatePrecision" | "mode" | "removeLeadingZeros" | "storageEnabled" | "storageType" | "view">> {
23
23
  /**
24
24
  * A [Collection](https://developers.arcgis.com/javascript/latest/references/core/core/Collection/) containing every [Conversion](https://developers.arcgis.com/javascript/latest/references/core/widgets/CoordinateConversion/support/Conversion/)
25
25
  * that is currently displaying.
@@ -63,6 +63,14 @@ export type CoordinateConversionViewModelState = "ready" | "loading" | "disabled
63
63
  */
64
64
  export default class CoordinateConversionViewModel extends CoordinateConversionViewModelSuperclass {
65
65
  constructor(properties?: CoordinateConversionViewModelProperties);
66
+ /**
67
+ * This property determines whether the coordinates output by the viewModel will be truncated based
68
+ * on the current scale of the associated [MapView](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/) or [SceneView](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/).
69
+ *
70
+ * @default true
71
+ * @since 5.1
72
+ */
73
+ accessor calculateCoordinatePrecision: boolean;
66
74
  /**
67
75
  * A [Collection](https://developers.arcgis.com/javascript/latest/references/core/core/Collection/) containing every [Conversion](https://developers.arcgis.com/javascript/latest/references/core/widgets/CoordinateConversion/support/Conversion/)
68
76
  * that is currently displaying.
@@ -102,11 +110,23 @@ export default class CoordinateConversionViewModel extends CoordinateConversionV
102
110
  * * While in `live` mode, updates occur as the cursor moves.
103
111
  * * While in `capture` mode, updates occur on mouse click and then display a graphic
104
112
  * marking the current location.
113
+ * * While in `idle` mode, no updates occur but the coordinate remains visible.
105
114
  *
106
115
  * @default "live"
107
116
  * @since 4.7
108
117
  */
109
118
  accessor mode: Mode;
119
+ /**
120
+ * This property determines whether leading zeros in the coordinates will be removed.
121
+ * For example, the first coordinate includes leading zeros whereas the second does not:
122
+ *
123
+ * 1. 02 01 55.478822N 005 39 51.120259E
124
+ * 2. 1 55.478822N 5 39 51.120259E does not.
125
+ *
126
+ * @default false
127
+ * @since 5.1
128
+ */
129
+ accessor removeLeadingZeros: boolean;
110
130
  /**
111
131
  * The view model's state.
112
132
  *
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as t}from"tslib";import{getAssetUrl as e}from"../../assets.js";import o from"../../Graphic.js";import{onLocaleChange as i,getLocale as s,fetchMessageBundle as r}from"../../intl.js";import n from"../../core/Collection.js";import a from"../../core/Error.js";import{EventedAccessor as h}from"../../core/Evented.js";import c from"../../core/Logger.js";import{watch as d,initial as l,when as m,whenOnce as v}from"../../core/reactiveUtils.js";import{property as p,subclass as u}from"../../core/accessorSupport/decorators.js";import{ensureType as f}from"../../core/accessorSupport/ensureType.js";import g from"../../geometry/Point.js";import{load as w}from"../../geometry/projectionUtils.js";import _ from"../../symbols/PictureMarkerSymbol.js";import{pointSymbolTypes as y}from"../../symbols/support/typeUtils.js";import C from"./support/Conversion.js";import{isValidPoint as b,isSupportedNotation as L}from"./support/coordinateConversionUtils.js";import M from"./support/Format.js";import{generateDefaultFormats as P,setDefaultPatterns as F}from"./support/formatUtils.js";import{GoTo as S}from"../support/GoTo.js";const j=new g([0,0,500]),H="xy",G=["mgrs","utm","usng","dd","dms","ddm"],x="esri__coordinateConversionWidgetState",E={conversions:"conversions",formats:"formats",view:"view",viewChange:"view-change",cursor:"cursor"},W="esri/images/search/search-symbol-32.png";let U=class extends(S(h)){constructor(t){super(t),this._conversionPromise=null,this._locationGraphic=null,this._pointerCount=0,this.formats=new n,this.formatterAvailable=!1,this.formatterLoading=!0,this.messages=null,this.filteredFormats=new n,this.locationSymbol=new _({url:e(W),width:24,height:24}),this.storageEnabled=!0,this.storageType="session",this.view=null,this._saveWidgetState=this._saveWidgetState.bind(this),this._handleFormatChange=this._handleFormatChange.bind(this),this._handleConversionChange=this._handleConversionChange.bind(this),this._handleViewChange=this._handleViewChange.bind(this),this._onClick=this._onClick.bind(this),this._onPointerMove=this._onPointerMove.bind(this),this._onPointerDown=this._onPointerDown.bind(this),this._onPointerUp=this._onPointerUp.bind(this),this.conversions=new n}initialize(){const t=async()=>this.messages=await r("esri/widgets/CoordinateConversion/t9n/CoordinateConversion");this.formats.addMany(P()),t().then(()=>{this.destroyed||(F(this.messages,this.formats),this.storageEnabled&&this._loadWidgetState(),this.formats.forEach(t=>{t.viewModel=this,this.addHandles(d(()=>t.currentPattern,this._saveWidgetState),t.name??"unnamed-format")}),this.addHandles(this.conversions.on("change",this._handleConversionChange),E.conversions),this.addHandles(this.formats.on("change",this._handleFormatChange),E.formats),this.addHandles(i(()=>{t().then(()=>{F(this.messages,this.formats)})})),w().then(()=>{this.formatterAvailable=!0}).catch(t=>{c.getLogger(this).error(new a("coordinate-conversion:projection-load-failed","Failed to load the projection module.",{error:t})),this.formatterAvailable=!1,this._filterFormatsAndConversions()}).then(()=>this.addHandles(d(()=>this.view,this._handleViewChange,l),E.viewChange)).finally(()=>this.formatterLoading=!1),0===this.conversions.length&&this._addDefaultConversion())})}destroy(){this.removeHandles(),this._cleanUpView(this.view),this.view=null}get conversions(){return this._get("conversions")}set conversions(t){const e=new n;t.forEach(t=>{let o=null;if("string"==typeof t){const e=this.formats.find(e=>e.name===t);e&&(o=new C({format:e}))}else o=f(C,t);o&&e.add(o)}),this._set("conversions",e)}set currentLocation(t){this._set("currentLocation",t),this._updateConversions()}get currentLocation(){return this._get("currentLocation")||null}set mode(t){switch(t){case"capture":this.currentLocation=null,this._startCaptureMode(),this._set("mode",t);break;case"live":this._startLiveMode(),this._set("mode",t)}}get mode(){return this._get("mode")||"live"}get state(){const{messages:t,view:e}=this,o=e?.ready;return t?o?"ready":e?"loading":"disabled":"disabled"}get storage(){return"session"===this.storageType?sessionStorage:localStorage}get waitingForConversions(){return null!=this._conversionPromise}setLocation(t){if(this._locationGraphic&&this.view?.graphics.remove(this._locationGraphic),!t)return;const e=t.clone();e.hasZ&&(e.z=void 0),this._locationGraphic=new o({geometry:e,symbol:this.locationSymbol}),this.view?.graphics.add(this._locationGraphic)}async convert(t,e){if(!b(e))throw new a("coordinate-conversion:invalid-point","Invalid point cannot be converted.",{point:e});return await this._waitForFormatter(),Promise.resolve().then(()=>t.convert(e))}async goToLocation(t){const{view:e}=this;if(!e)throw new a("coordinate-conversion:go-to-failed","no view");const o="3d"===e.type?e.clippingArea:null,i=e.map?.basemap?.baseLayers;if(o||(i?.length??0)>0){const e=o??i?.at(0)?.fullExtent;if(null!=e&&!e.contains(t))throw new a("coordinate-conversion:go-to-failed","Point outside basemap extent.",{point:t})}return this.callGoTo({target:t})}pause(){this.currentLocation=null,this.removeHandles(E.view),this.view&&(this.removeHandles(E.cursor),this._locationGraphic&&this.view.graphics.remove(this._locationGraphic))}async previewConversion(t,e=this.currentLocation||j){return(await A(t,e)).displayCoordinate}resume(){"capture"===this.mode?this._startCaptureMode():this._startLiveMode()}async reverseConvert(t,e){return await this._waitForFormatter(),e.reverseConvert(t)}async updateConversions(t,e){if(await this._waitForFormatter(),"point"!==e?.type)throw this._clearConversions(this.conversions),new a("coordinate-conversion:invalid-input-point","Point is invalid, conversions cannot be updated.",{point:e});return this._convertMany(t,e)}_addDefaultConversion(){const t=this.formats.find(t=>t.name===H)||this.formats.at(0);t&&this.conversions.add(new C({format:t}))}_cleanUpView(t){t&&(this._locationGraphic&&t.graphics.remove(this._locationGraphic),this.removeHandles(E.view),this.removeHandles(E.cursor))}_clearConversions(t){t.forEach(t=>{t.position={location:null,coordinate:null}})}async _convertMany(t,e){return Promise.all(t.map(t=>A(t,e)))}_handleConversionChange(t){for(const e of t.added){const{format:t}=e;t&&(t.viewModel=this,this.currentLocation&&(this._set("waitingForConversions",!0),this.convert(t,this.currentLocation).then(t=>{e.position=t,this._set("waitingForConversions",!1)})))}this._saveWidgetState()}_handleFormatChange(t){t.added.forEach(t=>{this.addHandles(d(()=>t.currentPattern,this._saveWidgetState),t.name??"unnamed-format"),t.viewModel=this}),t.removed.forEach(t=>{t.viewModel=null;const e=this.conversions.filter(e=>e.format===t);this.conversions.removeMany(e),t.name&&this.removeHandles(t.name)}),0===this.conversions.length&&this._addDefaultConversion()}_loadWidgetState(){try{const t=JSON.parse(this.storage.getItem(x));t&&this._setWidgetState(t)}catch(t){c.getLogger(this).error(new a("coordinate-conversion:invalid-session-storage-json","Could not read from storage.",{error:t}))}}_startCaptureMode(){this.removeHandles(E.view),this.view&&(this.currentLocation&&this.setLocation(this.currentLocation),this.removeHandles(E.cursor),this.addHandles(this.view.acquireCursor("crosshair","high"),E.cursor),this.addHandles(this.view.on("click",this._onClick),E.view))}_startLiveMode(){this._pointerCount=0,this.removeHandles(E.view),this.view&&(this.removeHandles(E.cursor),this._locationGraphic&&this.view.graphics.remove(this._locationGraphic),this.addHandles([this.view.on("pointer-down",this._onPointerDown),this.view.on("pointer-up",this._onPointerUp),this.view.on("pointer-move",this._onPointerMove)],E.view))}_handleViewChange(t,e){e&&e!==t&&this._cleanUpView(e),t&&("capture"===this.mode?this._startCaptureMode():this._startLiveMode(),e&&this._filterFormatsAndConversions())}_onClick(t){if(0===t.button){const e=this.view?.toMap(t),o=e?.normalize();this.setLocation(o),this.currentLocation=o}}_onPointerDown(t){const{pointerType:e}=t;if(this._pointerCount++,("touch"===e||"pen"===e)&&1===this._pointerCount){const e=this.view?.toMap(t);this.currentLocation=e?.normalize()}}_onPointerMove(t){const{pointerType:e}=t;if("mouse"===e||1===this._pointerCount){const e=this.view?.toMap(t);this.currentLocation=e?.normalize()}}_onPointerUp(){this._pointerCount--}_setWidgetState(t){try{t.formats.forEach(e=>{const o=this.formats.find(t=>t.name===e.name);o&&t.locale===s()&&e.currentPattern&&(o.currentPattern=e.currentPattern),o&&e.index>=0&&this.conversions.add(new C({format:o}))})}catch(e){c.getLogger(this).warn(new a("coordinate-conversion:session-storage-read-error","Could not get state from stored JSON.",{error:e}))}}_saveWidgetState(){if(!this.storageEnabled)return;const t=this._toJSON();try{this.storage.setItem(x,JSON.stringify({formats:t,locale:s()}))}catch(e){c.getLogger(this).error(new a("coordinate-conversion:local-storage-write-error","Could not write to localStorage.",{error:e}))}}async _updateConversions(){try{await this.updateConversions(this.conversions.toArray(),this.currentLocation)}catch{}}_toJSON(){return this.formats.filter(t=>{const e=t.name;return"xy"===e||"basemap"===e||L(e)}).map(t=>({name:t.name,currentPattern:t.currentPattern,defaultPattern:t.defaultPattern,index:this.conversions.findIndex(e=>e.format===t)})).sort((t,e)=>t.index-e.index).toArray()}_filterFormatsAndConversions(){const{formatterAvailable:t,conversions:e,formats:o}=this;t||this.addHandles(m(()=>this.view?.spatialReference,t=>{const i=t.isWebMercator||t.isWGS84,s=o.filter(t=>{const{name:e}=t;return!!T(e)||"xy"===e&&!i}),r=this.filteredFormats.filter(t=>"xy"===t.name&&i&&!this.formats.includes(t)),n=e.filter(t=>s.includes(t.format));o.removeMany(s),e.removeMany(n),this.filteredFormats.addMany(s.filter(t=>!this.filteredFormats.includes(t))),o.addMany(r)},{once:!0,initial:!0}),E.view)}async _waitForFormatter(){this.formatterLoading&&await v(()=>!1===this.formatterLoading)}};async function A(t,e){try{t.position=await(t.format?.convert(e))}catch(o){t.position=null}return t}function T(t){return G.includes(t)}t([p()],U.prototype,"conversions",null),t([p({type:g})],U.prototype,"currentLocation",null),t([p({type:n.ofType(M)})],U.prototype,"formats",void 0),t([p()],U.prototype,"formatterLoading",void 0),t([p()],U.prototype,"messages",void 0),t([p()],U.prototype,"mode",null),t([p()],U.prototype,"filteredFormats",void 0),t([p({readOnly:!0})],U.prototype,"state",null),t([p({types:y})],U.prototype,"locationSymbol",void 0),t([p({readOnly:!0})],U.prototype,"storage",null),t([p()],U.prototype,"storageEnabled",void 0),t([p()],U.prototype,"storageType",void 0),t([p({readOnly:!0})],U.prototype,"waitingForConversions",null),t([p()],U.prototype,"view",void 0),U=t([u("esri.widgets.CoordinateConversion.CoordinateConversionViewModel")],U);const O=U;export{O as default};
2
+ import{__decorate as t}from"tslib";import{getAssetUrl as e}from"../../assets.js";import o from"../../Graphic.js";import{onLocaleChange as i,getLocale as s,fetchMessageBundle as r}from"../../intl.js";import n from"../../core/Collection.js";import a from"../../core/Error.js";import{EventedAccessor as h}from"../../core/Evented.js";import c from"../../core/Logger.js";import{watch as d,initial as l,when as m,whenOnce as v}from"../../core/reactiveUtils.js";import{property as p,subclass as u}from"../../core/accessorSupport/decorators.js";import{ensureType as f}from"../../core/accessorSupport/ensureType.js";import g from"../../geometry/Point.js";import{load as w}from"../../geometry/projectionUtils.js";import _ from"../../symbols/PictureMarkerSymbol.js";import{pointSymbolTypes as y}from"../../symbols/support/typeUtils.js";import C from"./support/Conversion.js";import{isValidPoint as b,isSupportedNotation as L}from"./support/coordinateConversionUtils.js";import P from"./support/Format.js";import{generateDefaultFormats as M,setDefaultPatterns as F}from"./support/formatUtils.js";import{GoTo as S}from"../support/GoTo.js";const j=new g([0,0,500]),H="xy",G=["mgrs","utm","usng","dd","dms","ddm"],x="esri__coordinateConversionWidgetState",E={conversions:"conversions",formats:"formats",view:"view",viewChange:"view-change",cursor:"cursor"},W="esri/images/search/search-symbol-32.png";let U=class extends(S(h)){constructor(t){super(t),this._conversionPromise=null,this._locationGraphic=null,this._pointerCount=0,this.calculateCoordinatePrecision=!0,this.formats=new n,this.formatterAvailable=!1,this.formatterLoading=!0,this.messages=null,this.filteredFormats=new n,this.locationSymbol=new _({url:e(W),width:24,height:24}),this.removeLeadingZeros=!1,this.storageEnabled=!0,this.storageType="session",this.view=null,this._saveWidgetState=this._saveWidgetState.bind(this),this._handleFormatChange=this._handleFormatChange.bind(this),this._handleConversionChange=this._handleConversionChange.bind(this),this._handleViewChange=this._handleViewChange.bind(this),this._onClick=this._onClick.bind(this),this._onPointerMove=this._onPointerMove.bind(this),this._onPointerDown=this._onPointerDown.bind(this),this._onPointerUp=this._onPointerUp.bind(this),this.conversions=new n}initialize(){const t=async()=>this.messages=await r("esri/widgets/CoordinateConversion/t9n/CoordinateConversion");this.formats.addMany(M()),t().then(()=>{this.destroyed||(F(this.messages,this.formats),this.storageEnabled&&this._loadWidgetState(),this.formats.forEach(t=>{t.viewModel=this,this.addHandles(d(()=>t.currentPattern,this._saveWidgetState),t.name??"unnamed-format")}),this.addHandles(this.conversions.on("change",this._handleConversionChange),E.conversions),this.addHandles(this.formats.on("change",this._handleFormatChange),E.formats),this.addHandles(i(()=>{t().then(()=>{F(this.messages,this.formats)})})),w().then(()=>{this.formatterAvailable=!0}).catch(t=>{c.getLogger(this).error(new a("coordinate-conversion:projection-load-failed","Failed to load the projection module.",{error:t})),this.formatterAvailable=!1,this._filterFormatsAndConversions()}).then(()=>this.addHandles(d(()=>this.view,this._handleViewChange,l),E.viewChange)).finally(()=>this.formatterLoading=!1),0===this.conversions.length&&this._addDefaultConversion())})}destroy(){this.removeHandles(),this._cleanUpView(this.view),this.view=null}get conversions(){return this._get("conversions")}set conversions(t){const e=new n;t.forEach(t=>{let o=null;if("string"==typeof t){const e=this.formats.find(e=>e.name===t);e&&(o=new C({format:e}))}else o=f(C,t);o&&e.add(o)}),this._set("conversions",e)}set currentLocation(t){this._set("currentLocation",t),this._updateConversions()}get currentLocation(){return this._get("currentLocation")||null}set mode(t){switch(t){case"capture":this.currentLocation=null,this._startCaptureMode(),this._set("mode",t);break;case"live":this._startLiveMode(),this._set("mode",t);break;case"idle":this.removeHandles(E.view),this.removeHandles(E.cursor),this._set("mode",t)}}get mode(){return this._get("mode")||"live"}get state(){const{messages:t,view:e}=this,o=e?.ready;return t?o?"ready":e?"loading":"disabled":"disabled"}get storage(){return"session"===this.storageType?sessionStorage:localStorage}get waitingForConversions(){return null!=this._conversionPromise}setLocation(t){if(this._locationGraphic&&this.view?.graphics.remove(this._locationGraphic),!t)return;const e=t.clone();e.hasZ&&(e.z=void 0),this._locationGraphic=new o({geometry:e,symbol:this.locationSymbol}),this.view?.graphics.add(this._locationGraphic)}async convert(t,e){if(!b(e))throw new a("coordinate-conversion:invalid-point","Invalid point cannot be converted.",{point:e});return await this._waitForFormatter(),Promise.resolve().then(()=>t.convert(e))}async goToLocation(t){const{view:e}=this;if(!e)throw new a("coordinate-conversion:go-to-failed","no view");const o="3d"===e.type?e.clippingArea:null,i=e.map?.basemap?.baseLayers;if(o||(i?.length??0)>0){const e=o??i?.at(0)?.fullExtent;if(null!=e&&!e.contains(t))throw new a("coordinate-conversion:go-to-failed","Point outside basemap extent.",{point:t})}return this.callGoTo({target:t})}pause(){this.currentLocation=null,this.removeHandles(E.view),this.view&&(this.removeHandles(E.cursor),this._locationGraphic&&this.view.graphics.remove(this._locationGraphic))}async previewConversion(t,e=this.currentLocation||j){return(await A(t,e)).displayCoordinate}resume(){const{mode:t}=this;"capture"===t?this._startCaptureMode():this._startLiveMode()}async reverseConvert(t,e){return await this._waitForFormatter(),e.reverseConvert(t)}async updateConversions(t,e){if(await this._waitForFormatter(),"point"!==e?.type)throw this._clearConversions(this.conversions),new a("coordinate-conversion:invalid-input-point","Point is invalid, conversions cannot be updated.",{point:e});return this._convertMany(t,e)}_addDefaultConversion(){const t=this.formats.find(t=>t.name===H)||this.formats.at(0);t&&this.conversions.add(new C({format:t}))}_cleanUpView(t){t&&(this._locationGraphic&&t.graphics.remove(this._locationGraphic),this.removeHandles(E.view),this.removeHandles(E.cursor))}_clearConversions(t){t.forEach(t=>{t.position={location:null,coordinate:null}})}async _convertMany(t,e){return Promise.all(t.map(t=>A(t,e)))}_handleConversionChange(t){for(const e of t.added){const{format:t}=e;t&&(t.viewModel=this,this.currentLocation&&(this._set("waitingForConversions",!0),this.convert(t,this.currentLocation).then(t=>{e.position=t,this._set("waitingForConversions",!1)})))}this._saveWidgetState()}_handleFormatChange(t){t.added.forEach(t=>{this.addHandles(d(()=>t.currentPattern,this._saveWidgetState),t.name??"unnamed-format"),t.viewModel=this}),t.removed.forEach(t=>{t.viewModel=null;const e=this.conversions.filter(e=>e.format===t);this.conversions.removeMany(e),t.name&&this.removeHandles(t.name)}),0===this.conversions.length&&this._addDefaultConversion()}_loadWidgetState(){try{const t=JSON.parse(this.storage.getItem(x));t&&this._setWidgetState(t)}catch(t){c.getLogger(this).error(new a("coordinate-conversion:invalid-session-storage-json","Could not read from storage.",{error:t}))}}_startCaptureMode(){this.removeHandles(E.view),this.view&&(this.currentLocation&&this.setLocation(this.currentLocation),this.removeHandles(E.cursor),this.addHandles(this.view.acquireCursor("crosshair","high"),E.cursor),this.addHandles(this.view.on("click",this._onClick),E.view))}_startLiveMode(){this._pointerCount=0,this.removeHandles(E.view),this.view&&(this.removeHandles(E.cursor),this._locationGraphic&&this.view.graphics.remove(this._locationGraphic),this.addHandles([this.view.on("pointer-down",this._onPointerDown),this.view.on("pointer-up",this._onPointerUp),this.view.on("pointer-move",this._onPointerMove)],E.view))}_handleViewChange(t,e){e&&e!==t&&this._cleanUpView(e),t&&("capture"===this.mode?this._startCaptureMode():"live"===this.mode&&this._startLiveMode(),e&&this._filterFormatsAndConversions())}_onClick(t){if(0===t.button){const e=this.view?.toMap(t),o=e?.normalize();this.setLocation(o),this.currentLocation=o}}_onPointerDown(t){const{pointerType:e}=t;if(this._pointerCount++,("touch"===e||"pen"===e)&&1===this._pointerCount){const e=this.view?.toMap(t);this.currentLocation=e?.normalize()}}_onPointerMove(t){const{pointerType:e}=t;if("mouse"===e||1===this._pointerCount){const e=this.view?.toMap(t);this.currentLocation=e?.normalize()}}_onPointerUp(){this._pointerCount--}_setWidgetState(t){try{t.formats.forEach(e=>{const o=this.formats.find(t=>t.name===e.name);o&&t.locale===s()&&e.currentPattern&&(o.currentPattern=e.currentPattern),o&&e.index>=0&&this.conversions.add(new C({format:o}))})}catch(e){c.getLogger(this).warn(new a("coordinate-conversion:session-storage-read-error","Could not get state from stored JSON.",{error:e}))}}_saveWidgetState(){if(!this.storageEnabled)return;const t=this._toJSON();try{this.storage.setItem(x,JSON.stringify({formats:t,locale:s()}))}catch(e){c.getLogger(this).error(new a("coordinate-conversion:local-storage-write-error","Could not write to localStorage.",{error:e}))}}async _updateConversions(){try{await this.updateConversions(this.conversions.toArray(),this.currentLocation)}catch{}}_toJSON(){return this.formats.filter(t=>{const e=t.name;return"xy"===e||"basemap"===e||L(e)}).map(t=>({name:t.name,currentPattern:t.currentPattern,defaultPattern:t.defaultPattern,index:this.conversions.findIndex(e=>e.format===t)})).sort((t,e)=>t.index-e.index).toArray()}_filterFormatsAndConversions(){const{formatterAvailable:t,conversions:e,formats:o}=this;t||this.addHandles(m(()=>this.view?.spatialReference,t=>{const i=t.isWebMercator||t.isWGS84,s=o.filter(t=>{const{name:e}=t;return!!T(e)||"xy"===e&&!i}),r=this.filteredFormats.filter(t=>"xy"===t.name&&i&&!this.formats.includes(t)),n=e.filter(t=>s.includes(t.format));o.removeMany(s),e.removeMany(n),this.filteredFormats.addMany(s.filter(t=>!this.filteredFormats.includes(t))),o.addMany(r)},{once:!0,initial:!0}),E.view)}async _waitForFormatter(){this.formatterLoading&&await v(()=>!1===this.formatterLoading)}};async function A(t,e){try{t.position=await(t.format?.convert(e))}catch(o){t.position=null}return t}function T(t){return G.includes(t)}t([p()],U.prototype,"calculateCoordinatePrecision",void 0),t([p()],U.prototype,"conversions",null),t([p({type:g})],U.prototype,"currentLocation",null),t([p({type:n.ofType(P)})],U.prototype,"formats",void 0),t([p()],U.prototype,"formatterLoading",void 0),t([p()],U.prototype,"messages",void 0),t([p()],U.prototype,"mode",null),t([p()],U.prototype,"filteredFormats",void 0),t([p({readOnly:!0})],U.prototype,"state",null),t([p({types:y})],U.prototype,"locationSymbol",void 0),t([p()],U.prototype,"removeLeadingZeros",void 0),t([p({readOnly:!0})],U.prototype,"storage",null),t([p()],U.prototype,"storageEnabled",void 0),t([p()],U.prototype,"storageType",void 0),t([p({readOnly:!0})],U.prototype,"waitingForConversions",null),t([p()],U.prototype,"view",void 0),U=t([u("esri.widgets.CoordinateConversion.CoordinateConversionViewModel")],U);const k=U;export{k as default};
@@ -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/Accessor.js";import r from"../../../core/Error.js";import"../../../core/has.js";import{property as n,subclass as i}from"../../../core/accessorSupport/decorators.js";import{fromUsng as o,fromUtm as a,fromMgrs as s,fromLatitudeLongitude as l,toUtm as c,toUsng as p,toMgrs as u,toLatitudeLongitude as m}from"../../../geometry/coordinateFormatter.js";import{isLoaded as h,project as d}from"../../../geometry/projectionUtils.js";import f from"../../../geometry/SpatialReference.js";import{equals as v}from"../../../geometry/support/spatialReferenceUtils.js";import{project as g}from"../../../geometry/support/webMercatorUtils.js";import{isValidPoint as y,fromXY as w,pointToCoordinate as b,getDegreePrecision as S}from"./coordinateConversionUtils.js";let _=class extends t{constructor(e){super(e),this.conversionInfo=null,this.coordinateSegments=null,this._currentPattern=void 0,this.defaultPattern=null,this.name=null,this.viewModel=null}get currentPattern(){return(this._currentPattern||this.defaultPattern)??""}set currentPattern(e){this._currentPattern=e}get label(){return this.name??""}set label(e){this._overrideIfSome("label",e)}get hasDisplayProperties(){return!(!this.defaultPattern||!this.coordinateSegments)}get spatialReference(){return"basemap"===this.name?this._viewSpatialReference:this.conversionInfo?.spatialReference??f.WGS84}set spatialReference(e){this._overrideIfSome("spatialReference",e)}get _viewSpatialReference(){return this.viewModel?.view?.spatialReference??f.WGS84}get _additionalCharactersPattern(){const e=this.coordinateSegments;if(!e)return null;const t=e.map(e=>e.alias),r=this.currentPattern.replaceAll(new RegExp(`["nsew${t.join()}]`,"gi"),"").replaceAll(" ","");return new RegExp(`[${r}]`,"g")}get test(){}async convert(e){if(!y(e))throw new r("format:invalid-point","Could not convert invalid point.",{point:e});const t=this.conversionInfo?.convert;if(t)return Promise.resolve().then(()=>t(e));const n=this._project(e,this.spatialReference);return{location:n,coordinate:this._getCoordinate(n)}}getConversionStrategy(){const e=this._viewSpatialReference;return this.conversionInfo?.convert||this.viewModel?.formatterAvailable||"xy"===this.name&&(e.isWebMercator||e.isWGS84)||"basemap"===this.name?"client":"server"}getDisplayCoordinate(e){if(!e)return null;if(!this.coordinateSegments||!this.currentPattern)return e;let t=this.currentPattern;const r=this._getSegmentMatches(e,!1);for(let n=this.coordinateSegments.length-1;n>=0;n--){const e=this.coordinateSegments[n];t=t.replace(e.alias,r[n])}return t}_parseUserInput(e){const{defaultPattern:t,_additionalCharactersPattern:r,coordinateSegments:n}=this;if(!t||!r)return"";let i=t.replace(r,"");e=e.replace(r,"");const o=this._getSegmentMatches(e,!0);if(n)for(let a=n.length-1;a>=0;a--){const e=n[a];i=i.replace(e.alias,o[a])}return i}_getSegmentMatches(e,t){const r=new Array,{coordinateSegments:n}=this;if(!n)return r;for(let i=0;i<n.length;i++){const o=n[i],a=e.match(o.searchPattern);if(!a){r.push("");continue}let s=a[0];if(e=e.replace(s,"").trim(),o.substitution){const e=t?o.substitution.input(s):o.substitution.output(s);e&&(s=`${e}`)}r.push(s)}return r}async reverseConvert(e){const t=this._parseUserInput(e),n=this.conversionInfo?.reverseConvert;let i;if(n)i=n(t);else if("xy"===this.name||"basemap"===this.name)i=w(t,this.spatialReference);else if(this.viewModel?.formatterAvailable)switch(this.name){case"dd":case"ddm":case"dms":i=l(t,this.spatialReference);break;case"mgrs":{const e="automatic";i=s(t,this.spatialReference,e);break}case"utm":{const e="latitude-band-indicators";i=a(t,this.spatialReference,e);break}case"usng":i=o(t,this.spatialReference);break;default:i=null}if(!i)throw new r("format:invalid-input","Could not parse input into point.",{coordinate:e});return this._project(i,this._viewSpatialReference)}_getCoordinate(e){const t=this.viewModel?.view?.scale??0;if(!y(e))throw new r("format:invalid-point","Could not transform invalid point into coordinate.",{point:e});if(this.viewModel?.formatterAvailable||"basemap"===this.name||"xy"===this.name)switch(this.name){case"dd":case"ddm":case"dms":{const r=S(t);return m(e,this.name,r)}case"mgrs":return u(e,"automatic",5,!1);case"usng":return p(e,5,!1);case"utm":return c(e,"latitude-band-indicators",!0);default:return b(e,t)}return b(e,t)}_project(e,t){if(v(e.spatialReference,t)||!t)return e;if(this.viewModel?.formatterAvailable&&h())return d(e,t);if(!this.viewModel?.formatterAvailable){const r=g(e,t);if(null!=r)return r}return null}};e([n()],_.prototype,"conversionInfo",void 0),e([n()],_.prototype,"coordinateSegments",void 0),e([n()],_.prototype,"currentPattern",null),e([n()],_.prototype,"_currentPattern",void 0),e([n()],_.prototype,"label",null),e([n()],_.prototype,"defaultPattern",void 0),e([n({readOnly:!0})],_.prototype,"hasDisplayProperties",null),e([n()],_.prototype,"name",void 0),e([n({type:f})],_.prototype,"spatialReference",null),e([n()],_.prototype,"viewModel",void 0),e([n({readOnly:!0})],_.prototype,"_viewSpatialReference",null),e([n({readOnly:!0})],_.prototype,"_additionalCharactersPattern",null),_=e([i("esri.widgets.CoordinateConversion.support.Format")],_);const P=_;export{P as default};
2
+ import{__decorate as e}from"tslib";import t from"../../../core/Accessor.js";import r from"../../../core/Error.js";import"../../../core/has.js";import{property as i,subclass as n}from"../../../core/accessorSupport/decorators.js";import{fromUsng as o,fromUtm as s,fromMgrs as a,fromLatitudeLongitude as l,toUtm as c,toUsng as p,toMgrs as u,toLatitudeLongitude as d}from"../../../geometry/coordinateFormatter.js";import{isLoaded as h,project as m}from"../../../geometry/projectionUtils.js";import f from"../../../geometry/SpatialReference.js";import{equals as v}from"../../../geometry/support/spatialReferenceUtils.js";import{project as g}from"../../../geometry/support/webMercatorUtils.js";import{isValidPoint as w,fromXY as y,pointToCoordinate as _,removeLeadingZeros as P,getGeometryPrecision as b,getDegreePrecision as S}from"./coordinateConversionUtils.js";let R=class extends t{constructor(e){super(e),this.conversionInfo=null,this.coordinateSegments=null,this._currentPattern=void 0,this.defaultPattern=null,this.name=null,this.viewModel=null}get currentPattern(){return(this._currentPattern||this.defaultPattern)??""}set currentPattern(e){this._currentPattern=e}get label(){return this.name??""}set label(e){this._overrideIfSome("label",e)}get hasDisplayProperties(){return!(!this.defaultPattern||!this.coordinateSegments)}get spatialReference(){return"basemap"===this.name?this._viewSpatialReference:this.conversionInfo?.spatialReference??f.WGS84}set spatialReference(e){this._overrideIfSome("spatialReference",e)}get _viewSpatialReference(){return this.viewModel?.view?.spatialReference??f.WGS84}get _additionalCharactersPattern(){const e=this.coordinateSegments;if(!e)return null;const t=e.map(e=>e.alias),r=this.currentPattern.replaceAll(new RegExp(`["nsew${t.join()}]`,"gi"),"").replaceAll(" ","");return new RegExp(`[${r}]`,"g")}get test(){}async convert(e){if(!w(e))throw new r("format:invalid-point","Could not convert invalid point.",{point:e});const t=this.conversionInfo?.convert;if(t)return Promise.resolve().then(()=>t(e));const i=this._project(e,this.spatialReference);return{location:i,coordinate:this._getCoordinate(i)}}getConversionStrategy(){const e=this._viewSpatialReference;return this.conversionInfo?.convert||this.viewModel?.formatterAvailable||"xy"===this.name&&(e.isWebMercator||e.isWGS84)||"basemap"===this.name?"client":"server"}getDisplayCoordinate(e){if(!e)return null;if(!this.coordinateSegments||!this.currentPattern)return e;let t=this.currentPattern;const r=this._getSegmentMatches(e,!1);for(let i=this.coordinateSegments.length-1;i>=0;i--){const e=this.coordinateSegments[i];t=t.replace(e.alias,r[i])}return t}_parseUserInput(e){const{defaultPattern:t,_additionalCharactersPattern:r,coordinateSegments:i}=this;if(!t||!r)return"";let n=t.replace(r,"");e=e.replace(r,"");const o=this._getSegmentMatches(e,!0);if(i)for(let s=i.length-1;s>=0;s--){const e=i[s];n=n.replace(e.alias,o[s])}return n}_getSegmentMatches(e,t){const r=new Array,{coordinateSegments:i}=this;if(!i)return r;for(let n=0;n<i.length;n++){const o=i[n],s=e.match(o.searchPattern);if(!s){r.push("");continue}let a=s[0];if(e=e.replace(a,"").trim(),o.substitution){const e=t?o.substitution.input(a):o.substitution.output(a);e&&(a=`${e}`)}r.push(a)}return r}async reverseConvert(e){const t=this._parseUserInput(e),i=this.conversionInfo?.reverseConvert;let n;if(i)n=i(t);else if("xy"===this.name||"basemap"===this.name)n=y(t,this.spatialReference);else if(this.viewModel?.formatterAvailable)switch(this.name){case"dd":case"ddm":case"dms":n=l(t,this.spatialReference);break;case"mgrs":{const e="automatic";n=a(t,this.spatialReference,e);break}case"utm":{const e="latitude-band-indicators";n=s(t,this.spatialReference,e);break}case"usng":n=o(t,this.spatialReference);break;default:n=null}if(!n)throw new r("format:invalid-input","Could not parse input into point.",{coordinate:e});return this._project(n,this._viewSpatialReference)}_getCoordinate(e){const t=this.viewModel?.view?.resolution??0,i=this.viewModel?.view?.scale??0,n=this.viewModel?.view?.spatialReference??f.WebMercator;if(!w(e))throw new r("format:invalid-point","Could not transform invalid point into coordinate.",{point:e});if(this.viewModel?.formatterAvailable||"basemap"===this.name||"xy"===this.name)switch(this.name){case"dd":case"ddm":case"dms":{const r=this._getPrecision(i,t,n,this.name),o=d(e,this.name,r);return this.viewModel?.removeLeadingZeros?P(o):o}case"mgrs":return u(e,"automatic",5,!1);case"usng":return p(e,5,!1);case"utm":return c(e,"latitude-band-indicators",!0);default:return _(e,this._getPrecision(i,t,n,"dd"))}return _(e,this._getPrecision(i,t,n,"dd"))}_getPrecision(e,t,r,i){return this.viewModel?.calculateCoordinatePrecision?b(t,r,i):S(e)}_project(e,t){if(v(e.spatialReference,t)||!t)return e;if(this.viewModel?.formatterAvailable&&h())return m(e,t);if(!this.viewModel?.formatterAvailable){const r=g(e,t);if(null!=r)return r}return null}};e([i()],R.prototype,"conversionInfo",void 0),e([i()],R.prototype,"coordinateSegments",void 0),e([i()],R.prototype,"currentPattern",null),e([i()],R.prototype,"_currentPattern",void 0),e([i()],R.prototype,"label",null),e([i()],R.prototype,"defaultPattern",void 0),e([i({readOnly:!0})],R.prototype,"hasDisplayProperties",null),e([i()],R.prototype,"name",void 0),e([i({type:f})],R.prototype,"spatialReference",null),e([i()],R.prototype,"viewModel",void 0),e([i({readOnly:!0})],R.prototype,"_viewSpatialReference",null),e([i({readOnly:!0})],R.prototype,"_additionalCharactersPattern",null),R=e([n("esri.widgets.CoordinateConversion.support.Format")],R);const M=R;export{M as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import n from"../../../geometry/Point.js";import t from"../../../geometry/SpatialReference.js";function e(n,t){const e=r(t);return[n[0].toFixed(e),n[1].toFixed(e)]}function r(n){return n>=500?6:n<500&&n>=50?7:n<50&&n>=5?8:9}function i(e,r){const i=e.includes(",")?",":" ",[u,c,s]=e.split(i).map(n=>{const t=n.trim();return t?Number(t):null});if(!o(u)||!o(c))return null;const f=new n({x:u,y:c,spatialReference:r||t.WGS84});return s&&(f.z=s,f.hasZ=!0),f}function o(n){return"number"==typeof n&&isFinite(n)}function u(n){return!!n&&o(n.x)&&o(n.y)}function c(n,t){if(n.spatialReference.isGeographic&&t){const[r,i]=e([n.x,n.y],t);return`${r}, ${i}`}return`${n.x.toFixed(3)}, ${n.y.toFixed(3)}`}const s=["dd","dms","ddm","mgrs","usng","utm"];function f(n){return s.includes(n)}export{e as clipLonLat,i as fromXY,r as getDegreePrecision,f as isSupportedNotation,u as isValidPoint,c as pointToCoordinate};
2
+ import{clamp as t}from"../../../core/mathUtils.js";import{getMetersPerUnitForSR as n}from"../../../core/units.js";import r from"../../../geometry/Point.js";import e from"../../../geometry/SpatialReference.js";function i(t,n){return[t[0].toFixed(n),t[1].toFixed(n)]}const o=new Map;function u(r,e,i,u=4){if(null==r||!e)return u;if(o.has(r)){const t=o.get(r);if(void 0!==t[i])return t[i]}const s=n(e);if(!Number.isFinite(s)||s<=0)return u;const c=r*s/111320,f="dd"===i?c:"ddm"===i?60*c:3600*c,m=t(Math.ceil(-Math.log10(f)),0,7);return o.has(r)||(o.clear(),o.set(r,{})),o.get(r)[i]=m,m}function s(t){return t>=500?6:t<500&&t>=50?7:t<50&&t>=5?8:9}function c(t,n){const i=t.includes(",")?",":" ",[o,u,s]=t.split(i).map(t=>{const n=t.trim();return n?Number(n):null});if(!f(o)||!f(u))return null;const c=new r({x:o,y:u,spatialReference:n||e.WGS84});return s&&(c.z=s,c.hasZ=!0),c}function f(t){return"number"==typeof t&&isFinite(t)}function m(t){return!!t&&f(t.x)&&f(t.y)}function l(t,n){const[r,e]=i([t.x,t.y],n);return`${r}, ${e}`}const d=["dd","dms","ddm","mgrs","usng","utm"];function a(t){return d.includes(t)}function p(t){return t?t.replaceAll(/(?<![\d.])0+(?=\d)/g,""):t}export{c as fromXY,s as getDegreePrecision,u as getGeometryPrecision,a as isSupportedNotation,m as isValidPoint,l as pointToCoordinate,p as removeLeadingZeros};
@@ -23,7 +23,7 @@ import type { PictureMarkerSymbolProperties } from "../symbols/PictureMarkerSymb
23
23
  import type { SimpleMarkerSymbolProperties } from "../symbols/SimpleMarkerSymbol.js";
24
24
  import type { CoordinateConversionViewModelProperties } from "./CoordinateConversion/CoordinateConversionViewModel.js";
25
25
 
26
- export interface CoordinateConversionProperties extends WidgetProperties, Partial<Pick<CoordinateConversion, "currentLocation" | "goToOverride" | "headingLevel" | "mode" | "multipleConversions" | "orientation" | "storageEnabled" | "storageType" | "view" | "visibleElements">> {
26
+ export interface CoordinateConversionProperties extends WidgetProperties, Partial<Pick<CoordinateConversion, "calculateCoordinatePrecision" | "currentLocation" | "goToOverride" | "headingLevel" | "mode" | "multipleConversions" | "orientation" | "removeLeadingZeros" | "storageEnabled" | "storageType" | "view" | "visibleElements">> {
27
27
  /**
28
28
  * A [Collection](https://developers.arcgis.com/javascript/latest/references/core/core/Collection/) containing every [Conversion](https://developers.arcgis.com/javascript/latest/references/core/widgets/CoordinateConversion/support/Conversion/)
29
29
  * that the widget is currently displaying.
@@ -146,6 +146,14 @@ export default class CoordinateConversion extends Widget {
146
146
  * });
147
147
  */
148
148
  constructor(properties?: CoordinateConversionProperties);
149
+ /**
150
+ * This property determines whether the coordinates output by the viewModel will be truncated based
151
+ * on the current scale of the associated [MapView](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/) or [SceneView](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/).
152
+ *
153
+ * @default true
154
+ * @since 5.1
155
+ */
156
+ accessor calculateCoordinatePrecision: boolean;
149
157
  /**
150
158
  * A [Collection](https://developers.arcgis.com/javascript/latest/references/core/core/Collection/) containing every [Conversion](https://developers.arcgis.com/javascript/latest/references/core/widgets/CoordinateConversion/support/Conversion/)
151
159
  * that the widget is currently displaying.
@@ -251,6 +259,7 @@ export default class CoordinateConversion extends Widget {
251
259
  * * While in `live` mode, the widget will update as the cursor moves.
252
260
  * * While in `capture` mode, the widget will update on mouse click and display a graphic
253
261
  * marking the current location.
262
+ * * While in `idle` mode, no updates occur but the coordinate remains visible.
254
263
  *
255
264
  * @default "live"
256
265
  * @since 4.7
@@ -272,6 +281,17 @@ export default class CoordinateConversion extends Widget {
272
281
  * @since 4.7
273
282
  */
274
283
  accessor orientation: CoordinateConversionOrientation;
284
+ /**
285
+ * This property determines whether leading zeros in the coordinates will be removed.
286
+ * For example, the first coordinate includes leading zeros whereas the second does not:
287
+ *
288
+ * 1. 02 01 55.478822N 005 39 51.120259E
289
+ * 2. 1 55.478822N 5 39 51.120259E does not.
290
+ *
291
+ * @default false
292
+ * @since 5.1
293
+ */
294
+ accessor removeLeadingZeros: boolean;
275
295
  /**
276
296
  * If this property is set to `true`, sessionStorage or localStorage (depending on [storageType](https://developers.arcgis.com/javascript/latest/references/core/widgets/CoordinateConversion/#storageType))
277
297
  * will be used to hydrate and persist the CoordinateConversion widget's state.
@@ -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{deprecateWidget as o}from"../core/deprecate.js";import i from"../core/Logger.js";import{maybeProperty as s}from"../core/maybe.js";import{property as n,cast as r,subclass as l}from"../core/accessorSupport/decorators.js";import{pointSymbolTypes as a}from"../symbols/support/typeUtils.js";import p from"./Widget.js";import c from"./CoordinateConversion/CoordinateConversionViewModel.js";import d from"./CoordinateConversion/support/Conversion.js";import u from"./CoordinateConversion/support/Format.js";import{loadCalciteComponents as h}from"./support/componentsUtils.js";import{globalCss as _}from"./support/globalCss.js";import{Heading as m}from"./support/Heading.js";import{legacyIcon as v}from"./support/legacyIcon.js";import{messageBundle as g,accessibleHandler as b,tsx as y,isRTL as C}from"./support/widget.js";import{storeNode as w}from"./support/widgetUtils.js";const f="esri-coordinate-conversion",T={base:f,captureMode:`${f}--capture-mode`,noBasemap:`${f}--no-basemap`,popup:`${f}__popup`,clipboardPopup:`${f}__clipboard-popup`,conversionList:`${f}__conversion-list`,conversionRow:`${f}__row`,coordDisplay:`${f}__display`,expandButton:`${f}__expand-button`,expanded:`${f}__conversions-view--expanded`,expandDown:`${f}__conversions-view--expand-down`,expandUp:`${f}__conversions-view--expand-up`,conversionsView:`${f}__conversions-view`,rowSelect:`${f}__select-row`,toolDisplay:`${f}__tools`,modeToggle:`${f}__mode-toggle`,rowButton:`${f}__row-button`,coordinateInput:`${f}__input-coordinate`,inputForm:`${f}__input-form`,inputFormGroup:`${f}__input-group`,inputSelect:`${f}__input-select`,sectionHeading:`${f}__heading`,patternInput:`${f}__pattern-input`,settings:`${f}__settings`,settingsFormGroup:`${f}__settings-group`,settingsFormGroupHorizontal:`${f}__settings-group-horizontal`,previewCoordinate:`${f}__preview-coordinate`},I={settingsButton:!0,inputButton:!0,captureButton:!0,expandButton:!0},x=750,P=2500;let M=class extends p{constructor(e,t){super(e,t),this._popupMessage=null,this._popupTimeoutId=void 0,this._clipboardPopupTimeoutId=void 0,this._coordinateInput=null,this._badInput=!1,this._goToEnabled=!1,this._conversionFormat=null,this._settingsFormat=null,this._previewConversion=null,this._expanded=!1,this._clipboardPopupVisible=!1,this._popupVisible=!1,this._settingsVisible=!1,this._inputVisible=!1,this.headingLevel=4,this.messages=null,this.messagesCommon=null,this.orientation="auto",this.viewModel=new c,this.visibleElements={...I},o(i.getLogger(this),"CoordinateConversion","arcgis-coordinate-conversion",{version:"4.34"})}loadDependencies(){return h({button:()=>import("@esri/calcite-components/dist/components/calcite-button"),checkbox:()=>import("@esri/calcite-components/dist/components/calcite-checkbox"),input:()=>import("@esri/calcite-components/dist/components/calcite-input"),label:()=>import("@esri/calcite-components/dist/components/calcite-label"),option:()=>import("@esri/calcite-components/dist/components/calcite-option"),select:()=>import("@esri/calcite-components/dist/components/calcite-select")})}get conversions(){return this.viewModel.conversions}set conversions(e){this.viewModel.conversions=e}get currentLocation(){return this.viewModel.currentLocation}set currentLocation(e){this.viewModel.currentLocation=e}get formats(){return this.viewModel.formats}set formats(e){this.viewModel.formats=e}get goToOverride(){return this.viewModel.goToOverride}set goToOverride(e){this.viewModel.goToOverride=e}get icon(){return"coordinate-system"}set icon(e){this._overrideIfSome("icon",e)}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get mode(){return this.viewModel.mode}set mode(e){this.viewModel.mode=e}set multipleConversions(e){!1===e&&(this._expanded=!1,this.conversions.splice(1,this.conversions.length-1)),this._set("multipleConversions",e)}get multipleConversions(){const e=this._get("multipleConversions");return"boolean"!=typeof e||e}get locationSymbol(){return this.viewModel.locationSymbol}set locationSymbol(e){this.viewModel.locationSymbol=e}get storageEnabled(){return this.viewModel.storageEnabled}set storageEnabled(e){this.viewModel.storageEnabled=e}get storageType(){return this.viewModel.storageType}set storageType(e){this.viewModel.storageType=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}castVisibleElements(e){return{...I,...e}}reverseConvert(e,t){return this.viewModel.reverseConvert(e,t)}render(){const e=this.viewModel?.state,t="disabled"===e?y("div",{key:"esri-coordinate__no-basemap"},this.messages?.noBasemap):null,o=!t&&this._inputVisible?this._renderInputForm():null,i=!t&&this._settingsVisible?this._renderSettings():null,s=t||o||i?null:this._renderConversionsView(),n=this._popupVisible?this._renderPopup():null,r={[T.captureMode]:"capture"===this.mode,[_.disabled]:"loading"===e,[T.noBasemap]:"disabled"===e};return y("div",{class:this.classes(T.base,_.widget,r)},n,t,s,i,o)}_addConversion(e){const t=e.target,o=t.selectedOption.value,i=$(t);if(null==o||null==i)return;const s=new d({format:o});t.value="default",i>=0?(this.conversions.removeAt(i),this.conversions.add(s,i)):this.conversions.add(s)}_findSettingsFormat(){return this._settingsFormat||this.conversions.reduceRight((e,t)=>{const o=t.format;return o?.hasDisplayProperties?o:e},null)||this.formats.find(e=>e.hasDisplayProperties)}_hidePopup(){this._popupTimeoutId&&(clearTimeout(this._popupTimeoutId),this._popupTimeoutId=void 0),this._popupVisible=!1,this._popupMessage=null,this.scheduleRender()}_hideClipboardPopup(){this._clipboardPopupTimeoutId&&(clearTimeout(this._clipboardPopupTimeoutId),this._clipboardPopupTimeoutId=void 0),this._clipboardPopupVisible=!1,this.scheduleRender()}_onConvertComplete(){this._inputVisible=!1,this._coordinateInput.value=""}_onCopy(e){const t=V(e.currentTarget)?.displayCoordinate;null!=t&&(e.clipboardData?.setData("text/plain",t),this._showClipboardPopup(),e.preventDefault())}_processUserInput(e){const t=s(e,"key"),o=this.viewModel;if("Enter"!==t&&t)this._badInput&&(this._badInput=!1);else{const e=this._conversionFormat||this.conversions.at(0).format;if(!e)return;const t=this._coordinateInput.value;this._reverseConvert(t,e).then(e=>{"capture"===this.mode?o.resume():this.mode="capture",this.currentLocation=e,o.setLocation(e),this._onConvertComplete()}).catch(e=>{i.getLogger(this).error(e),this._showPopup(this.messages?.invalidCoordinate),this._badInput=!0})}}async _reverseConvert(e,t){const o=this.viewModel,s=await t.reverseConvert(e);return this._goToEnabled&&s&&o.goToLocation(s).catch(e=>{i.getLogger(this).warn(e),this._showPopup(this.messages?.locationOffBasemap)}),s}_setInputFormat(e){const t=e.target.selectedOption.value;null!=t&&(this._conversionFormat=t)}_setPreviewConversion(){const e=this._findSettingsFormat(),t=this.viewModel;if(e){const o=this.conversions.find(t=>t.format===e);this._previewConversion=new d({format:e,position:{location:this.currentLocation,coordinate:o?.position?.coordinate}}),this._previewConversion.position?.coordinate||t.previewConversion(this._previewConversion)}}_setSettingsFormat(e){const t=e.target.selectedOption.value;null!=t&&(this._settingsFormat=t,this._setPreviewConversion())}_showClipboardPopup(){this._clipboardPopupVisible?clearTimeout(this._clipboardPopupTimeoutId):this._clipboardPopupVisible=!0,this.scheduleRender(),this._popupTimeoutId=setTimeout(()=>{this._popupTimeoutId=void 0,this._hideClipboardPopup()},x)}_showPopup(e,t=P){this._popupMessage=e,this._popupVisible?clearTimeout(this._popupTimeoutId):this._popupVisible=!0,this.scheduleRender(),this._popupTimeoutId=setTimeout(()=>{this._popupTimeoutId=void 0,this._hidePopup()},t)}_toggleGoTo(){this._goToEnabled=!this._goToEnabled}_updateCurrentPattern(e){e.stopPropagation();const t=e.target,o=this._findSettingsFormat();o&&(o.currentPattern=t.value)}_renderConversion(e,t){const{messages:o}=this;if(!o)return y("li",null);const{format:i}=e,s=i?.label??"",n=`${this.id}__list-item-${t}`,r=`${s} ${o.conversionOutputSuffix}`,l=0===t,a=l||this._expanded,p=l?this._renderFirstConversion(e):this._renderTools(t,e,n),c=l&&!e.displayCoordinate?o.noLocation:e.displayCoordinate,d=y("div",{"aria-label":c,class:T.coordDisplay,"data-conversion":e,role:"listitem",tabIndex:0,title:c??""},c),u=this._renderOptions(this.formats.filter(e=>e!==i));return a?y("li",{"aria-label":r,class:T.conversionRow,id:n,key:e,role:"group",tabIndex:0,title:r},y("calcite-select",{"aria-controls":n,bind:this,class:T.rowSelect,"data-index":t,label:o.selectFormat,scale:"s",onCalciteSelectChange:this._addConversion},y("calcite-option",{label:s.toUpperCase(),selected:!0},s.toUpperCase()),u),d,p):null}_renderCopyButton(e){const t=this._clipboardPopupVisible&&this._renderClipboardPopup(),{messagesCommon:o}=this;return o?y("li",{"aria-label":o.copy,bind:this,class:this.classes(_.widgetButton,T.rowButton),"data-conversion":e,onclick:this._copyCoordinateOutput,oncopy:this._onCopy,onkeydown:this._copyCoordinateOutput,role:"button",tabIndex:0,title:o.copy},t,y("span",{"aria-hidden":"true",class:v.duplicate})):y("li",null)}_renderFirstConversion(e){const t=this.id,{messages:o,messagesCommon:i,multipleConversions:s,visibleElements:n}=this;if(!i||!o)return y("ul",null);const r="live"===this.mode?o.captureMode:o.liveMode,l=this._expanded?i.collapse:i.expand,a=e.displayCoordinate&&"capture"===this.mode?this._renderCopyButton(e):null,p=s&&n.expandButton&&this._renderIconButton({iconType:this._expanded?"chevron-down":"chevron-up",clickFunction:this._toggleExpand,classes:[T.expandButton],attributes:{"aria-controls":`${t}__${T.conversionList}`,label:l}}),c=!s&&n.captureButton&&this._renderIconButton({iconType:"live"===this.mode?"pin-tear":"pin-tear-f",clickFunction:this._toggleMode,classes:[T.modeToggle],attributes:{label:r}});return y("ul",{class:T.toolDisplay},a,p,c)}_renderInputForm(){const e=this._conversionFormat||this.conversions.at(0).format,t=this.formats.findIndex(t=>t.name===e?.name),o=this.id,i=`${o}__${T.coordinateInput}`,s=`${o}__${T.coordinateInput}__header`,n=this._renderOptions(this.formats,!0,t),{messages:r,messagesCommon:l,headingLevel:a}=this;if(!l||!r)return y("div",null);const p=this._renderIconButton({iconType:C(this.container)?"arrow-right":"arrow-left",clickFunction:this._toggleInputVisibility,attributes:{label:l.back}});return y("div",{"aria-labelledby":s,class:T.inputForm,key:"esri-coordinate-conversion__input-form",role:"search"},y("div",{class:T.sectionHeading},p,y(m,{class:_.heading,id:s,level:a},r.inputCoordTitle)),y("div",{class:T.inputFormGroup},y("calcite-select",{"aria-controls":i,bind:this,class:T.inputSelect,label:r.selectFormat,scale:"s",onCalciteSelectChange:this._setInputFormat},n),y("calcite-input",{afterCreate:w,"aria-labelledby":s,bind:this,class:T.coordinateInput,"data-format":e,"data-node-ref":"_coordinateInput",id:i,onkeydown:this._processUserInput,placeholder:r.inputCoordTitle,required:!0,scale:"s",spellcheck:!1,status:this._badInput?"invalid":"idle"})),y("div",{class:T.inputFormGroup},y("calcite-label",{layout:"inline",scale:"s"},y("calcite-checkbox",{bind:this,checked:this._goToEnabled,onCalciteCheckboxChange:this._toggleGoTo}),r.goTo),y("calcite-button",{appearance:"outline",bind:this,kind:"neutral",onclick:this._processUserInput,type:"button",width:"auto"},r.convert)))}_renderConversionsView(){const{messages:e}=this;if(!e)return y("div",null);const t=`${this.id}__${T.conversionList}`,o=this._renderPrimaryTools(),i=this._renderOptions(this.formats),s=this.conversions.map((e,t)=>this._renderConversion(e,t)).toArray(),n=this._expanded?y("div",{class:T.conversionRow},y("calcite-select",{"aria-controls":t,bind:this,"data-index":-1,label:e.addConversion,scale:"s",onCalciteSelectChange:this._addConversion},y("calcite-option",{disabled:!0,selected:!0,value:"default"},e.addConversion),i),o):null,r={[T.expanded]:this._expanded,[T.expandUp]:"expand-up"===this.orientation,[T.expandDown]:"expand-down"===this.orientation};return y("div",{class:this.classes(T.conversionsView,r),key:"esri-coordinate-conversion__main-view"},y("ul",{"aria-expanded":this._expanded?"true":"false",class:T.conversionList,id:t},s),n)}_renderOptions(e,t,o){const i=this.conversions.at(0),s=i.format?.name;return e.map((e,n)=>{const r=!(t||!i)&&(s===e.name||this.conversions.map(e=>e.format?.name).includes(e.name));return y("calcite-option",{disabled:r,key:e.name??"unnamed-format",label:e.label.toUpperCase(),selected:n===o,value:e},e.label)}).toArray()}_renderPopup(){return y("div",{class:T.popup,role:"alert"},this._popupMessage)}_renderClipboardPopup(){const{messages:e}=this;return e?y("div",{class:this.classes(T.popup,T.clipboardPopup),role:"alert"},e.copySuccessMessage):y("div",null)}_renderPrimaryTools(){const{messages:e,visibleElements:t}=this;if(!e)return y("ul",null);const o="live"===this.mode?e.captureMode:e.liveMode,i=t.inputButton&&this._renderIconButton({iconType:"pencil",clickFunction:this._toggleInputVisibility,attributes:{label:e.inputCoordTitle}}),s=t.captureButton&&this._renderIconButton({iconType:"live"===this.mode?"pin-tear":"pin-tear-f",clickFunction:this._toggleMode,classes:[T.modeToggle],attributes:{label:o}}),n=t.settingsButton&&this._renderIconButton({iconType:"gear",clickFunction:this._toggleSettingsVisibility,attributes:{label:e.settingsTitle}});return y("ul",{class:T.toolDisplay},i,s,n)}_renderSettings(){const e=this.id,t=`${e}__${T.patternInput}`,o=`${e}__${T.patternInput}__header`,i=`${e}__${T.previewCoordinate}`,s=this.formats.filter(e=>e.hasDisplayProperties),n=this._findSettingsFormat(),r=n?s.indexOf(n):-1,l=this._renderOptions(s,!0,r),a=n?.currentPattern,{messages:p,messagesCommon:c,headingLevel:d}=this;if(!c||!p)return y("div",null);const u=this._renderIconButton({iconType:C(this.container)?"arrow-right":"arrow-left",clickFunction:this._toggleSettingsVisibility,attributes:{label:c.back}}),h=this._renderIconButton({iconType:"reset",clickFunction:this._setDefaultPattern,attributes:{label:p.defaultPattern}});return y("div",{"aria-labelledby":o,class:T.settings,key:T.settings},y("div",{class:T.sectionHeading},u,y(m,{class:_.heading,id:o,level:d},p.settingsTitle)),y("div",{class:T.settingsFormGroup},y("label",{for:t},p.changeCoordinateDisplay),y("calcite-select",{bind:this,label:p.selectFormat,width:"full",onCalciteSelectChange:this._setSettingsFormat},l),y("div",{class:T.settingsFormGroupHorizontal},y("calcite-input",{"aria-controls":i,bind:this,class:T.patternInput,id:t,spellcheck:!1,type:"text",value:a,onCalciteInputInput:this._updateCurrentPattern}),h)),y("div",{class:T.settingsFormGroup},y("label",null,c.preview,y("div",{class:T.previewCoordinate,id:i,tabIndex:0},this._previewConversion?.displayCoordinate))))}_renderIconButton(e){const{iconType:t,clickFunction:o,classes:i,attributes:s}=e;return y("calcite-button",{appearance:"transparent",bind:this,class:this.classes(i),iconStart:t,kind:"neutral",onclick:o,onkeydown:o,...s})}_renderTools(e,t,o){const i=t.displayCoordinate&&"capture"===this.mode?this._renderCopyButton(t):null,{messages:s}=this;if(!s)return y("ul",null);const n=this._renderIconButton({iconType:"x",clickFunction:this._removeConversion,attributes:{"aria-controls":o,label:s.removeConversion,"data-index":e}});return y("ul",{class:T.toolDisplay,role:"listitem"},i,y("li",{class:this.classes(T.rowButton)},n))}_copyCoordinateOutput(e){const t=e.target;if(!("createTextRange"in document.body)){const e=window.getSelection(),o=document.createRange();o.selectNodeContents(t),e?.removeAllRanges(),e?.addRange(o)}document.execCommand("copy")}_removeConversion(e){const t=$(e.currentTarget);null!=t&&this.conversions.removeAt(t)}_setDefaultPattern(e){e.stopPropagation();const t=this._findSettingsFormat();t&&(t.currentPattern=t.defaultPattern)}_toggleExpand(){this._expanded=!this._expanded}_toggleInputVisibility(){this._inputVisible=!this._inputVisible,this._popupVisible&&this._hidePopup(),this._inputVisible?this.viewModel.pause():this.viewModel.resume()}_toggleMode(){this.mode="live"===this.mode?"capture":"live"}_toggleSettingsVisibility(){this._settingsVisible=!this._settingsVisible,this._popupVisible&&this._hidePopup(),this._settingsVisible?(this._setPreviewConversion(),this.viewModel.pause()):this.viewModel.resume()}};e([n()],M.prototype,"conversions",null),e([n()],M.prototype,"currentLocation",null),e([n({type:t.ofType(u)})],M.prototype,"formats",null),e([n()],M.prototype,"goToOverride",null),e([n()],M.prototype,"headingLevel",void 0),e([n()],M.prototype,"icon",null),e([n()],M.prototype,"label",null),e([n(),g("esri/widgets/CoordinateConversion/t9n/CoordinateConversion")],M.prototype,"messages",void 0),e([n(),g("esri/t9n/common")],M.prototype,"messagesCommon",void 0),e([n()],M.prototype,"mode",null),e([n()],M.prototype,"orientation",void 0),e([n()],M.prototype,"multipleConversions",null),e([n({types:a})],M.prototype,"locationSymbol",null),e([n()],M.prototype,"storageEnabled",null),e([n()],M.prototype,"storageType",null),e([n()],M.prototype,"view",null),e([n({type:c})],M.prototype,"viewModel",void 0),e([n()],M.prototype,"visibleElements",void 0),e([r("visibleElements")],M.prototype,"castVisibleElements",null),e([b()],M.prototype,"_copyCoordinateOutput",null),e([b()],M.prototype,"_removeConversion",null),e([b()],M.prototype,"_setDefaultPattern",null),e([b()],M.prototype,"_toggleExpand",null),e([b()],M.prototype,"_toggleInputVisibility",null),e([b()],M.prototype,"_toggleMode",null),e([b()],M.prototype,"_toggleSettingsVisibility",null),M=e([l("esri.widgets.CoordinateConversion")],M);const F=M;function $(e){return e["data-index"]}function V(e){return e["data-conversion"]}export{F as default};
2
+ import{__decorate as e}from"tslib";import t from"../core/Collection.js";import{deprecateWidget as o}from"../core/deprecate.js";import i from"../core/Logger.js";import{maybeProperty as s}from"../core/maybe.js";import{property as n,cast as r,subclass as a}from"../core/accessorSupport/decorators.js";import{pointSymbolTypes as l}from"../symbols/support/typeUtils.js";import p from"./Widget.js";import c from"./CoordinateConversion/CoordinateConversionViewModel.js";import d from"./CoordinateConversion/support/Conversion.js";import u from"./CoordinateConversion/support/Format.js";import{loadCalciteComponents as h}from"./support/componentsUtils.js";import{globalCss as _}from"./support/globalCss.js";import{Heading as m}from"./support/Heading.js";import{legacyIcon as v}from"./support/legacyIcon.js";import{messageBundle as g,accessibleHandler as b,tsx as y,isRTL as C}from"./support/widget.js";import{storeNode as w}from"./support/widgetUtils.js";const f="esri-coordinate-conversion",T={base:f,captureMode:`${f}--capture-mode`,noBasemap:`${f}--no-basemap`,popup:`${f}__popup`,clipboardPopup:`${f}__clipboard-popup`,conversionList:`${f}__conversion-list`,conversionRow:`${f}__row`,coordDisplay:`${f}__display`,expandButton:`${f}__expand-button`,expanded:`${f}__conversions-view--expanded`,expandDown:`${f}__conversions-view--expand-down`,expandUp:`${f}__conversions-view--expand-up`,conversionsView:`${f}__conversions-view`,rowSelect:`${f}__select-row`,toolDisplay:`${f}__tools`,modeToggle:`${f}__mode-toggle`,rowButton:`${f}__row-button`,coordinateInput:`${f}__input-coordinate`,inputForm:`${f}__input-form`,inputFormGroup:`${f}__input-group`,inputSelect:`${f}__input-select`,sectionHeading:`${f}__heading`,patternInput:`${f}__pattern-input`,settings:`${f}__settings`,settingsFormGroup:`${f}__settings-group`,settingsFormGroupHorizontal:`${f}__settings-group-horizontal`,previewCoordinate:`${f}__preview-coordinate`},I={settingsButton:!0,inputButton:!0,captureButton:!0,expandButton:!0},x=750,P=2500;let M=class extends p{constructor(e,t){super(e,t),this._popupMessage=null,this._popupTimeoutId=void 0,this._clipboardPopupTimeoutId=void 0,this._coordinateInput=null,this._badInput=!1,this._goToEnabled=!1,this._conversionFormat=null,this._settingsFormat=null,this._previewConversion=null,this._expanded=!1,this._clipboardPopupVisible=!1,this._popupVisible=!1,this._settingsVisible=!1,this._inputVisible=!1,this.headingLevel=4,this.messages=null,this.messagesCommon=null,this.orientation="auto",this.viewModel=new c,this.visibleElements={...I},o(i.getLogger(this),"CoordinateConversion","arcgis-coordinate-conversion",{version:"4.34"})}loadDependencies(){return h({button:()=>import("@esri/calcite-components/dist/components/calcite-button"),checkbox:()=>import("@esri/calcite-components/dist/components/calcite-checkbox"),input:()=>import("@esri/calcite-components/dist/components/calcite-input"),label:()=>import("@esri/calcite-components/dist/components/calcite-label"),option:()=>import("@esri/calcite-components/dist/components/calcite-option"),select:()=>import("@esri/calcite-components/dist/components/calcite-select")})}get calculateCoordinatePrecision(){return this.viewModel.calculateCoordinatePrecision}set calculateCoordinatePrecision(e){this.viewModel.calculateCoordinatePrecision=e}get conversions(){return this.viewModel.conversions}set conversions(e){this.viewModel.conversions=e}get currentLocation(){return this.viewModel.currentLocation}set currentLocation(e){this.viewModel.currentLocation=e}get formats(){return this.viewModel.formats}set formats(e){this.viewModel.formats=e}get goToOverride(){return this.viewModel.goToOverride}set goToOverride(e){this.viewModel.goToOverride=e}get icon(){return"coordinate-system"}set icon(e){this._overrideIfSome("icon",e)}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get mode(){return this.viewModel.mode}set mode(e){this.viewModel.mode=e}set multipleConversions(e){!1===e&&(this._expanded=!1,this.conversions.splice(1,this.conversions.length-1)),this._set("multipleConversions",e)}get multipleConversions(){const e=this._get("multipleConversions");return"boolean"!=typeof e||e}get locationSymbol(){return this.viewModel.locationSymbol}set locationSymbol(e){this.viewModel.locationSymbol=e}get removeLeadingZeros(){return this.viewModel.removeLeadingZeros}set removeLeadingZeros(e){this.viewModel.removeLeadingZeros=e}get storageEnabled(){return this.viewModel.storageEnabled}set storageEnabled(e){this.viewModel.storageEnabled=e}get storageType(){return this.viewModel.storageType}set storageType(e){this.viewModel.storageType=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}castVisibleElements(e){return{...I,...e}}reverseConvert(e,t){return this.viewModel.reverseConvert(e,t)}render(){const e=this.viewModel?.state,t="disabled"===e?y("div",{key:"esri-coordinate__no-basemap"},this.messages?.noBasemap):null,o=!t&&this._inputVisible?this._renderInputForm():null,i=!t&&this._settingsVisible?this._renderSettings():null,s=t||o||i?null:this._renderConversionsView(),n=this._popupVisible?this._renderPopup():null,r={[T.captureMode]:"capture"===this.mode,[_.disabled]:"loading"===e,[T.noBasemap]:"disabled"===e};return y("div",{class:this.classes(T.base,_.widget,r)},n,t,s,i,o)}_addConversion(e){const t=e.target,o=t.selectedOption.value,i=$(t);if(null==o||null==i)return;const s=new d({format:o});t.value="default",i>=0?(this.conversions.removeAt(i),this.conversions.add(s,i)):this.conversions.add(s)}_findSettingsFormat(){return this._settingsFormat||this.conversions.reduceRight((e,t)=>{const o=t.format;return o?.hasDisplayProperties?o:e},null)||this.formats.find(e=>e.hasDisplayProperties)}_hidePopup(){this._popupTimeoutId&&(clearTimeout(this._popupTimeoutId),this._popupTimeoutId=void 0),this._popupVisible=!1,this._popupMessage=null,this.scheduleRender()}_hideClipboardPopup(){this._clipboardPopupTimeoutId&&(clearTimeout(this._clipboardPopupTimeoutId),this._clipboardPopupTimeoutId=void 0),this._clipboardPopupVisible=!1,this.scheduleRender()}_onConvertComplete(){this._inputVisible=!1,this._coordinateInput.value=""}_onCopy(e){const t=V(e.currentTarget)?.displayCoordinate;null!=t&&(e.clipboardData?.setData("text/plain",t),this._showClipboardPopup(),e.preventDefault())}_processUserInput(e){const t=s(e,"key"),o=this.viewModel;if("Enter"!==t&&t)this._badInput&&(this._badInput=!1);else{const e=this._conversionFormat||this.conversions.at(0).format;if(!e)return;const t=this._coordinateInput.value;this._reverseConvert(t,e).then(e=>{"capture"===this.mode?o.resume():this.mode="capture",this.currentLocation=e,o.setLocation(e),this._onConvertComplete()}).catch(e=>{i.getLogger(this).error(e),this._showPopup(this.messages?.invalidCoordinate),this._badInput=!0})}}async _reverseConvert(e,t){const o=this.viewModel,s=await t.reverseConvert(e);return this._goToEnabled&&s&&o.goToLocation(s).catch(e=>{i.getLogger(this).warn(e),this._showPopup(this.messages?.locationOffBasemap)}),s}_setInputFormat(e){const t=e.target.selectedOption.value;null!=t&&(this._conversionFormat=t)}_setPreviewConversion(){const e=this._findSettingsFormat(),t=this.viewModel;if(e){const o=this.conversions.find(t=>t.format===e);this._previewConversion=new d({format:e,position:{location:this.currentLocation,coordinate:o?.position?.coordinate}}),this._previewConversion.position?.coordinate||t.previewConversion(this._previewConversion)}}_setSettingsFormat(e){const t=e.target.selectedOption.value;null!=t&&(this._settingsFormat=t,this._setPreviewConversion())}_showClipboardPopup(){this._clipboardPopupVisible?clearTimeout(this._clipboardPopupTimeoutId):this._clipboardPopupVisible=!0,this.scheduleRender(),this._popupTimeoutId=setTimeout(()=>{this._popupTimeoutId=void 0,this._hideClipboardPopup()},x)}_showPopup(e,t=P){this._popupMessage=e,this._popupVisible?clearTimeout(this._popupTimeoutId):this._popupVisible=!0,this.scheduleRender(),this._popupTimeoutId=setTimeout(()=>{this._popupTimeoutId=void 0,this._hidePopup()},t)}_toggleGoTo(){this._goToEnabled=!this._goToEnabled}_updateCurrentPattern(e){e.stopPropagation();const t=e.target,o=this._findSettingsFormat();o&&(o.currentPattern=t.value)}_renderConversion(e,t){const{messages:o}=this;if(!o)return y("li",null);const{format:i}=e,s=i?.label??"",n=`${this.id}__list-item-${t}`,r=`${s} ${o.conversionOutputSuffix}`,a=0===t,l=a||this._expanded,p=a?this._renderFirstConversion(e):this._renderTools(t,e,n),c=a&&!e.displayCoordinate?o.noLocation:e.displayCoordinate,d=y("div",{"aria-label":c,class:T.coordDisplay,"data-conversion":e,role:"listitem",tabIndex:0,title:c??""},c),u=this._renderOptions(this.formats.filter(e=>e!==i));return l?y("li",{"aria-label":r,class:T.conversionRow,id:n,key:e,role:"group",tabIndex:0,title:r},y("calcite-select",{"aria-controls":n,bind:this,class:T.rowSelect,"data-index":t,label:o.selectFormat,scale:"s",onCalciteSelectChange:this._addConversion},y("calcite-option",{label:s.toUpperCase(),selected:!0},s.toUpperCase()),u),d,p):null}_renderCopyButton(e){const t=this._clipboardPopupVisible&&this._renderClipboardPopup(),{messagesCommon:o}=this;return o?y("li",{"aria-label":o.copy,bind:this,class:this.classes(_.widgetButton,T.rowButton),"data-conversion":e,onclick:this._copyCoordinateOutput,oncopy:this._onCopy,onkeydown:this._copyCoordinateOutput,role:"button",tabIndex:0,title:o.copy},t,y("span",{"aria-hidden":"true",class:v.duplicate})):y("li",null)}_renderFirstConversion(e){const t=this.id,{messages:o,messagesCommon:i,multipleConversions:s,visibleElements:n}=this;if(!i||!o)return y("ul",null);const r="live"===this.mode?o.captureMode:o.liveMode,a=this._expanded?i.collapse:i.expand,l=!e.displayCoordinate||"capture"!==this.mode&&"idle"!==this.mode?null:this._renderCopyButton(e),p=s&&n.expandButton&&this._renderIconButton({iconType:this._expanded?"chevron-down":"chevron-up",clickFunction:this._toggleExpand,classes:[T.expandButton],attributes:{"aria-controls":`${t}__${T.conversionList}`,label:a}}),c=!s&&n.captureButton&&this._renderIconButton({iconType:"capture"===this.mode?"pin-tear-f":"pin-tear",clickFunction:this._toggleMode,classes:[T.modeToggle],attributes:{label:r}});return y("ul",{class:T.toolDisplay},l,p,c)}_renderInputForm(){const e=this._conversionFormat||this.conversions.at(0).format,t=this.formats.findIndex(t=>t.name===e?.name),o=this.id,i=`${o}__${T.coordinateInput}`,s=`${o}__${T.coordinateInput}__header`,n=this._renderOptions(this.formats,!0,t),{messages:r,messagesCommon:a,headingLevel:l}=this;if(!a||!r)return y("div",null);const p=this._renderIconButton({iconType:C(this.container)?"arrow-right":"arrow-left",clickFunction:this._toggleInputVisibility,attributes:{label:a.back}});return y("div",{"aria-labelledby":s,class:T.inputForm,key:"esri-coordinate-conversion__input-form",role:"search"},y("div",{class:T.sectionHeading},p,y(m,{class:_.heading,id:s,level:l},r.inputCoordTitle)),y("div",{class:T.inputFormGroup},y("calcite-select",{"aria-controls":i,bind:this,class:T.inputSelect,label:r.selectFormat,scale:"s",onCalciteSelectChange:this._setInputFormat},n),y("calcite-input",{afterCreate:w,"aria-labelledby":s,bind:this,class:T.coordinateInput,"data-format":e,"data-node-ref":"_coordinateInput",id:i,onkeydown:this._processUserInput,placeholder:r.inputCoordTitle,required:!0,scale:"s",spellcheck:!1,status:this._badInput?"invalid":"idle"})),y("div",{class:T.inputFormGroup},y("calcite-label",{layout:"inline",scale:"s"},y("calcite-checkbox",{bind:this,checked:this._goToEnabled,onCalciteCheckboxChange:this._toggleGoTo}),r.goTo),y("calcite-button",{appearance:"outline",bind:this,kind:"neutral",onclick:this._processUserInput,type:"button",width:"auto"},r.convert)))}_renderConversionsView(){const{messages:e}=this;if(!e)return y("div",null);const t=`${this.id}__${T.conversionList}`,o=this._renderPrimaryTools(),i=this._renderOptions(this.formats),s=this.conversions.map((e,t)=>this._renderConversion(e,t)).toArray(),n=this._expanded?y("div",{class:T.conversionRow},y("calcite-select",{"aria-controls":t,bind:this,"data-index":-1,label:e.addConversion,scale:"s",onCalciteSelectChange:this._addConversion},y("calcite-option",{disabled:!0,selected:!0,value:"default"},e.addConversion),i),o):null,r={[T.expanded]:this._expanded,[T.expandUp]:"expand-up"===this.orientation,[T.expandDown]:"expand-down"===this.orientation};return y("div",{class:this.classes(T.conversionsView,r),key:"esri-coordinate-conversion__main-view"},y("ul",{"aria-expanded":this._expanded?"true":"false",class:T.conversionList,id:t},s),n)}_renderOptions(e,t,o){const i=this.conversions.at(0),s=i.format?.name;return e.map((e,n)=>{const r=!(t||!i)&&(s===e.name||this.conversions.map(e=>e.format?.name).includes(e.name));return y("calcite-option",{disabled:r,key:e.name??"unnamed-format",label:e.label.toUpperCase(),selected:n===o,value:e},e.label)}).toArray()}_renderPopup(){return y("div",{class:T.popup,role:"alert"},this._popupMessage)}_renderClipboardPopup(){const{messages:e}=this;return e?y("div",{class:this.classes(T.popup,T.clipboardPopup),role:"alert"},e.copySuccessMessage):y("div",null)}_renderPrimaryTools(){const{messages:e,visibleElements:t}=this;if(!e)return y("ul",null);const o="live"===this.mode?e.captureMode:e.liveMode,i=t.inputButton&&this._renderIconButton({iconType:"pencil",clickFunction:this._toggleInputVisibility,attributes:{label:e.inputCoordTitle}}),s=t.captureButton&&this._renderIconButton({iconType:"capture"===this.mode?"pin-tear-f":"pin-tear",clickFunction:this._toggleMode,classes:[T.modeToggle],attributes:{label:o}}),n=t.settingsButton&&this._renderIconButton({iconType:"gear",clickFunction:this._toggleSettingsVisibility,attributes:{label:e.settingsTitle}});return y("ul",{class:T.toolDisplay},i,s,n)}_renderSettings(){const e=this.id,t=`${e}__${T.patternInput}`,o=`${e}__${T.patternInput}__header`,i=`${e}__${T.previewCoordinate}`,s=this.formats.filter(e=>e.hasDisplayProperties),n=this._findSettingsFormat(),r=n?s.indexOf(n):-1,a=this._renderOptions(s,!0,r),l=n?.currentPattern,{messages:p,messagesCommon:c,headingLevel:d}=this;if(!c||!p)return y("div",null);const u=this._renderIconButton({iconType:C(this.container)?"arrow-right":"arrow-left",clickFunction:this._toggleSettingsVisibility,attributes:{label:c.back}}),h=this._renderIconButton({iconType:"reset",clickFunction:this._setDefaultPattern,attributes:{label:p.defaultPattern}});return y("div",{"aria-labelledby":o,class:T.settings,key:T.settings},y("div",{class:T.sectionHeading},u,y(m,{class:_.heading,id:o,level:d},p.settingsTitle)),y("div",{class:T.settingsFormGroup},y("label",{for:t},p.changeCoordinateDisplay),y("calcite-select",{bind:this,label:p.selectFormat,width:"full",onCalciteSelectChange:this._setSettingsFormat},a),y("div",{class:T.settingsFormGroupHorizontal},y("calcite-input",{"aria-controls":i,bind:this,class:T.patternInput,id:t,spellcheck:!1,type:"text",value:l,onCalciteInputInput:this._updateCurrentPattern}),h)),y("div",{class:T.settingsFormGroup},y("label",null,c.preview,y("div",{class:T.previewCoordinate,id:i,tabIndex:0},this._previewConversion?.displayCoordinate))))}_renderIconButton(e){const{iconType:t,clickFunction:o,classes:i,attributes:s}=e;return y("calcite-button",{appearance:"transparent",bind:this,class:this.classes(i),iconStart:t,kind:"neutral",onclick:o,onkeydown:o,...s})}_renderTools(e,t,o){const i=!t.displayCoordinate||"capture"!==this.mode&&"idle"!==this.mode?null:this._renderCopyButton(t),{messages:s}=this;if(!s)return y("ul",null);const n=this._renderIconButton({iconType:"x",clickFunction:this._removeConversion,attributes:{"aria-controls":o,label:s.removeConversion,"data-index":e}});return y("ul",{class:T.toolDisplay,role:"listitem"},i,y("li",{class:this.classes(T.rowButton)},n))}_copyCoordinateOutput(e){const t=e.target;if(!("createTextRange"in document.body)){const e=window.getSelection(),o=document.createRange();o.selectNodeContents(t),e?.removeAllRanges(),e?.addRange(o)}document.execCommand("copy")}_removeConversion(e){const t=$(e.currentTarget);null!=t&&this.conversions.removeAt(t)}_setDefaultPattern(e){e.stopPropagation();const t=this._findSettingsFormat();t&&(t.currentPattern=t.defaultPattern)}_toggleExpand(){this._expanded=!this._expanded}_toggleInputVisibility(){this._inputVisible=!this._inputVisible,this._popupVisible&&this._hidePopup(),this._inputVisible?this.viewModel.pause():this.viewModel.resume()}_toggleMode(){this.mode="live"===this.mode?"capture":"live"}_toggleSettingsVisibility(){this._settingsVisible=!this._settingsVisible,this._popupVisible&&this._hidePopup(),this._settingsVisible?(this._setPreviewConversion(),this.viewModel.pause()):this.viewModel.resume()}};e([n()],M.prototype,"calculateCoordinatePrecision",null),e([n()],M.prototype,"conversions",null),e([n()],M.prototype,"currentLocation",null),e([n({type:t.ofType(u)})],M.prototype,"formats",null),e([n()],M.prototype,"goToOverride",null),e([n()],M.prototype,"headingLevel",void 0),e([n()],M.prototype,"icon",null),e([n()],M.prototype,"label",null),e([n(),g("esri/widgets/CoordinateConversion/t9n/CoordinateConversion")],M.prototype,"messages",void 0),e([n(),g("esri/t9n/common")],M.prototype,"messagesCommon",void 0),e([n()],M.prototype,"mode",null),e([n()],M.prototype,"orientation",void 0),e([n()],M.prototype,"multipleConversions",null),e([n({types:l})],M.prototype,"locationSymbol",null),e([n()],M.prototype,"removeLeadingZeros",null),e([n()],M.prototype,"storageEnabled",null),e([n()],M.prototype,"storageType",null),e([n()],M.prototype,"view",null),e([n({type:c})],M.prototype,"viewModel",void 0),e([n()],M.prototype,"visibleElements",void 0),e([r("visibleElements")],M.prototype,"castVisibleElements",null),e([b()],M.prototype,"_copyCoordinateOutput",null),e([b()],M.prototype,"_removeConversion",null),e([b()],M.prototype,"_setDefaultPattern",null),e([b()],M.prototype,"_toggleExpand",null),e([b()],M.prototype,"_toggleInputVisibility",null),e([b()],M.prototype,"_toggleMode",null),e([b()],M.prototype,"_toggleSettingsVisibility",null),M=e([a("esri.widgets.CoordinateConversion")],M);const F=M;function $(e){return e["data-index"]}function V(e){return e["data-conversion"]}export{F as default};