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

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 (701) hide show
  1. package/analysis/AreaMeasurementAnalysis.d.ts +11 -1
  2. package/analysis/DimensionSimpleStyle.js +1 -1
  3. package/analysis/DirectLineMeasurementAnalysis.d.ts +11 -1
  4. package/analysis/DistanceMeasurementAnalysis.d.ts +8 -0
  5. package/arcade/featureSetUtils.js +1 -1
  6. package/arcade/functions/knowledgegraph.js +1 -1
  7. package/arcade/geometry/unitConversion.js +1 -1
  8. package/arcgisGlobal.d.ts +5 -5
  9. package/assets/esri/core/workers/RemoteClient.js +1 -1
  10. package/assets/esri/core/workers/chunks/01803f76bc0d9f2cd566.js +1 -0
  11. package/assets/esri/core/workers/chunks/{f09c9d9a554c33a753b4.js → 02253bdffbd580af22d8.js} +1 -1
  12. package/assets/esri/core/workers/chunks/{5078b66ba31b770b689f.js → 037a8cc19debbaaa4e10.js} +1 -1
  13. package/assets/esri/core/workers/chunks/066550852483ab8f77bc.js +1 -0
  14. package/assets/esri/core/workers/chunks/{1ede8666d804c553803e.js → 0b6941781e35ce0f7274.js} +1 -1
  15. package/assets/esri/core/workers/chunks/0ccab50877b24f862d6e.js +1 -0
  16. package/assets/esri/core/workers/chunks/0f725cf79ce00e790a7d.js +1 -0
  17. package/assets/esri/core/workers/chunks/{a0d459bdb91ee892d4b6.js → 116293b1ee788a89ce1e.js} +1 -1
  18. package/assets/esri/core/workers/chunks/12a7997a40c77f5c9160.js +1 -0
  19. package/assets/esri/core/workers/chunks/{a7325ebb7edf3273bb34.js → 12b84262dedc6b393136.js} +1 -1
  20. package/assets/esri/core/workers/chunks/1b077c92345ffb5916c2.js +1 -0
  21. package/assets/esri/core/workers/chunks/{6dd0b79fa3a629ab4f27.js → 1bca39e0e651426bdbb5.js} +1 -1
  22. package/assets/esri/core/workers/chunks/1c0c5cb13c2590aae906.js +1 -0
  23. package/assets/esri/core/workers/chunks/{8959a825f5e1ce6f38ac.js → 1c65ab9ed611c322ce27.js} +1 -1
  24. package/assets/esri/core/workers/chunks/1e0d2715d603f48a7e0b.js +1 -0
  25. package/assets/esri/core/workers/chunks/261fea092ee7d27608a0.js +1 -0
  26. package/assets/esri/core/workers/chunks/2686fe5b62dd0be699c0.js +1 -0
  27. package/assets/esri/core/workers/chunks/2a97268000c6d03ef720.js +1 -0
  28. package/assets/esri/core/workers/chunks/{83589144eeeb08f45557.js → 2aeb5cc32284dd3e4d22.js} +1 -1
  29. package/assets/esri/core/workers/chunks/2d9a1f23ec6ce90723ac.js +1 -0
  30. package/assets/esri/core/workers/chunks/2e096537a3a5555a4a93.js +1 -0
  31. package/assets/esri/core/workers/chunks/{7a05b18f655c1167ce0a.js → 2ef5237e4c876d6a4ee0.js} +1 -1
  32. package/assets/esri/core/workers/chunks/37d6a264a3f1d8072aa0.js +1 -0
  33. package/assets/esri/core/workers/chunks/3b3e519f15ed52c83f0c.js +1 -0
  34. package/assets/esri/core/workers/chunks/3c0ed15b544df6fb0903.js +1 -0
  35. package/assets/esri/core/workers/chunks/{b612de42ee86c0d95247.js → 3d9d7d3a40b51eb7ee3d.js} +1 -1
  36. package/assets/esri/core/workers/chunks/3df5500a85345577480a.js +1 -0
  37. package/assets/esri/core/workers/chunks/3ffda5bf0b91700dc308.js +1 -0
  38. package/assets/esri/core/workers/chunks/40a584cb952e94326e9e.js +1 -0
  39. package/assets/esri/core/workers/chunks/{1317ecdfd0cfa683a493.js → 42323093827adffe56d3.js} +1 -1
  40. package/assets/esri/core/workers/chunks/{1ba0dfbe0958cdbd7c9f.js → 42fd2a7b22b03dacc6a7.js} +1 -1
  41. package/assets/esri/core/workers/chunks/444e5f214abce3d607cd.js +1 -0
  42. package/assets/esri/core/workers/chunks/{d201fbf3ceff946d2bd6.js → 44d5508042cacdfcac47.js} +1 -1
  43. package/assets/esri/core/workers/chunks/4503b20ca6a80fb63d72.js +1 -0
  44. package/assets/esri/core/workers/chunks/45367aa8e5c5d574de94.js +1 -0
  45. package/assets/esri/core/workers/chunks/45800373650fbc8262e6.js +1 -0
  46. package/assets/esri/core/workers/chunks/{6a7ab1ef9a37e87db5ae.js → 46a7da93a63663878583.js} +1 -1
  47. package/assets/esri/core/workers/chunks/46b4fb6a7fe4877b0efc.js +1120 -0
  48. package/assets/esri/core/workers/chunks/47d074136a7f8e551a9a.js +1 -0
  49. package/assets/esri/core/workers/chunks/4911ce62421a6c3320b0.js +1 -0
  50. package/assets/esri/core/workers/chunks/4a1e23e021bac37a88ab.js +1 -0
  51. package/assets/esri/core/workers/chunks/4a6b92ecbb1f1c55cc43.js +1 -0
  52. package/assets/esri/core/workers/chunks/4debf2d9c3465250ef7a.js +1 -0
  53. package/assets/esri/core/workers/chunks/4e544de61f07ca660236.js +1 -0
  54. package/assets/esri/core/workers/chunks/4e8e322b469657ac22e2.js +1 -0
  55. package/assets/esri/core/workers/chunks/505227797bcf2a1d908d.js +1 -0
  56. package/assets/esri/core/workers/chunks/{67ac6b326bf80fc3d33d.js → 53be85d04cd2da4f391d.js} +1 -1
  57. package/assets/esri/core/workers/chunks/54778dec1598818d93cb.js +1 -0
  58. package/assets/esri/core/workers/chunks/54b18559280a7d2a8d93.js +1 -0
  59. package/assets/esri/core/workers/chunks/557671c897ca5563be6c.js +1 -0
  60. package/assets/esri/core/workers/chunks/567a65f4203f6e81f4b4.js +1 -0
  61. package/assets/esri/core/workers/chunks/5c7780f804d789cb37f5.js +1 -0
  62. package/assets/esri/core/workers/chunks/606ea251075fe81a1206.js +1 -0
  63. package/assets/esri/core/workers/chunks/{ceb680688fe7e570a774.js → 608be1172a908e92b9f1.js} +1 -1
  64. package/assets/esri/core/workers/chunks/{e521bb9ee2030245c3ce.js → 612104dff305ff062dfa.js} +2 -2
  65. package/assets/esri/core/workers/chunks/6299be5e7e26bf3c6859.js +1 -0
  66. package/assets/esri/core/workers/chunks/{3ac9dcbb0571a2580236.js → 62c8c9ad09e0166207fd.js} +1 -1
  67. package/assets/esri/core/workers/chunks/6400446b7615b97c3521.js +1 -0
  68. package/assets/esri/core/workers/chunks/6431480ba0fa8c8d487f.js +1 -0
  69. package/assets/esri/core/workers/chunks/6588725275c75fae0d9c.js +1 -0
  70. package/assets/esri/core/workers/chunks/665e31c494d2af505acc.js +1 -0
  71. package/assets/esri/core/workers/chunks/{9232f57623e1fa3ccabc.js → 67e4b5651fd7ff7d8cf0.js} +1 -1
  72. package/assets/esri/core/workers/chunks/68be3fb88ca61f82fb90.js +1 -0
  73. package/assets/esri/core/workers/chunks/6c9266120d46e8c69dbf.js +1 -0
  74. package/assets/esri/core/workers/chunks/6c9acd9e4e201dc380e9.js +1 -0
  75. package/assets/esri/core/workers/chunks/6ebe73f69ae822053b70.js +1 -0
  76. package/assets/esri/core/workers/chunks/709e019885822b1f6f3e.js +1 -0
  77. package/assets/esri/core/workers/chunks/70cc2d79653d66e85b58.js +1 -0
  78. package/assets/esri/core/workers/chunks/7449568eb2305bf2d650.js +1 -0
  79. package/assets/esri/core/workers/chunks/745a153d0cd34faa124e.js +1 -0
  80. package/assets/esri/core/workers/chunks/7572c2bc5062e66f6330.js +1 -0
  81. package/assets/esri/core/workers/chunks/76196c414e48834f7b92.js +1 -0
  82. package/assets/esri/core/workers/chunks/78472a57c2ba146fec65.js +1 -0
  83. package/assets/esri/core/workers/chunks/7ef182e24cad50815b4e.js +1 -0
  84. package/assets/esri/core/workers/chunks/7f0f9dddc44b1f1600f0.js +1 -0
  85. package/assets/esri/core/workers/chunks/814751e705c05099f864.js +1 -0
  86. package/assets/esri/core/workers/chunks/8293600f94553afc8c38.js +1 -0
  87. package/assets/esri/core/workers/chunks/8487727f1197cf7dbf50.js +1 -0
  88. package/assets/esri/core/workers/chunks/88e54449261ef94e390d.js +1 -0
  89. package/assets/esri/core/workers/chunks/8b0d5551978ab0aac0d1.js +1 -0
  90. package/assets/esri/core/workers/chunks/8d0c2de92770a1567536.js +1 -0
  91. package/assets/esri/core/workers/chunks/900181f68449d8f82eeb.js +1 -0
  92. package/assets/esri/core/workers/chunks/939942b00ba380e2957e.js +1 -0
  93. package/assets/esri/core/workers/chunks/943a0f140813ee4ab04a.js +1 -0
  94. package/assets/esri/core/workers/chunks/96c3900685cfb2a8ca12.js +1 -0
  95. package/assets/esri/core/workers/chunks/9ce91a909eccc4dfe388.js +1 -0
  96. package/assets/esri/core/workers/chunks/{c76c42c74eedd43263d3.js → 9dd1fc56eb1ea6eb705e.js} +1 -1
  97. package/assets/esri/core/workers/chunks/{86a051e9fe71aa356108.js → 9e3e442a9874ed23a043.js} +1 -1
  98. package/assets/esri/core/workers/chunks/{aa1054834738aef48bda.js → a0356702f2d3f787aeac.js} +1 -1
  99. package/assets/esri/core/workers/chunks/a40b6d8b5c73e06e14d4.js +1 -0
  100. package/assets/esri/core/workers/chunks/{1ba1f705b6ce5c8ea702.js → a655ebdb4bf0660615a2.js} +1 -1
  101. package/assets/esri/core/workers/chunks/a8286febe371dc186aaa.js +1 -0
  102. package/assets/esri/core/workers/chunks/aaba33611753c6aada68.js +1 -0
  103. package/assets/esri/core/workers/chunks/aba42885c5d6b2b5fe7f.js +1 -0
  104. package/assets/esri/core/workers/chunks/ad76f7ab2f3e6d5a5b3c.js +1 -0
  105. package/assets/esri/core/workers/chunks/ae40eac1eadd1a537bf4.js +1 -0
  106. package/assets/esri/core/workers/chunks/aeaaff7a4b1a99540f52.js +1 -0
  107. package/assets/esri/core/workers/chunks/af349c7bc8ef41a0e1bd.js +1 -0
  108. package/assets/esri/core/workers/chunks/af75747b06d79446a855.js +1 -0
  109. package/assets/esri/core/workers/chunks/b564ec4e03478f5659db.js +1 -0
  110. package/assets/esri/core/workers/chunks/bbf993dba74850bbf9d7.js +1 -0
  111. package/assets/esri/core/workers/chunks/bc0f54a2c15502b630ec.js +1 -0
  112. package/assets/esri/core/workers/chunks/{ff3a53c3f00335552317.js → c29c474c4b1049352d3e.js} +1 -1
  113. package/assets/esri/core/workers/chunks/{9ab25ee06041f907b9a2.js → c2c1f51a4668055c2838.js} +1 -1
  114. package/assets/esri/core/workers/chunks/c337fc0e6dc69c233e6d.js +1 -0
  115. package/assets/esri/core/workers/chunks/{a7985d20fa6e8d4878e7.js → d0f5bee9db1ad51ae687.js} +1 -1
  116. package/assets/esri/core/workers/chunks/d6ad4390df576198e45b.js +1 -0
  117. package/assets/esri/core/workers/chunks/d7f6021fd41b9571a02c.js +1 -0
  118. package/assets/esri/core/workers/chunks/d90a3bfd45b5ed4092e0.js +1 -0
  119. package/assets/esri/core/workers/chunks/dba280c370df13196711.js +1 -0
  120. package/assets/esri/core/workers/chunks/ddf0671976648f621269.js +1 -0
  121. package/assets/esri/core/workers/chunks/{c18189710d6198516175.js → de5ecb567bd69c613e9d.js} +1 -1
  122. package/assets/esri/core/workers/chunks/e10b57aefcc89671116e.js +1 -0
  123. package/assets/esri/core/workers/chunks/{534186fc921a0ccf58dc.js → e1f5d00878f27e1d413e.js} +1 -1
  124. package/assets/esri/core/workers/chunks/e65dfa19f030ec298437.js +1 -0
  125. package/assets/esri/core/workers/chunks/e932951598499befabf5.js +1 -0
  126. package/assets/esri/core/workers/chunks/{e1ba915dae7747932c0f.js → eb04e1717a1002cda3ab.js} +1 -1
  127. package/assets/esri/core/workers/chunks/f122c18af10e56f9ec2b.js +1 -0
  128. package/assets/esri/core/workers/chunks/f1df76f098a3cc924832.js +1 -0
  129. package/assets/esri/core/workers/chunks/f1f90adae13b04898008.js +1 -0
  130. package/assets/esri/core/workers/chunks/f46d9a19f79d4a4bd354.js +1 -0
  131. package/assets/esri/core/workers/chunks/f4f9d08b2df856e3b694.js +1 -0
  132. package/assets/esri/core/workers/chunks/{711cfb84659cb4437679.js → f528ac5c648ca6a98582.js} +1 -1
  133. package/assets/esri/core/workers/chunks/f92364afaefbac7e8f77.js +1 -0
  134. package/assets/esri/core/workers/chunks/fb444954be74c1962ced.js +1 -0
  135. package/assets/esri/core/workers/chunks/fc44227c1756f65b95df.js +1 -0
  136. package/assets/esri/core/workers/chunks/{72019baeba520edb6bb0.js → fc44d45598a7476bc606.js} +1 -1
  137. package/assets/esri/core/workers/chunks/fecaf0bc28aeea4d15db.js +1 -0
  138. package/assets/esri/libs/librust-parquet/pkg/parquet_bg.wasm +0 -0
  139. package/assets/esri/themes/base/_mixins.scss +2 -2
  140. package/assets/esri/themes/base/widgets/_Attribution.scss +1 -1
  141. package/assets/esri/themes/base/widgets/_BasemapLayerList.scss +2 -2
  142. package/assets/esri/themes/base/widgets/_BatchAttributeForm.scss +5 -5
  143. package/assets/esri/themes/base/widgets/_Bookmarks.scss +1 -1
  144. package/assets/esri/themes/base/widgets/_BuildingLevelPicker.scss +2 -2
  145. package/assets/esri/themes/base/widgets/_BuildingPhasePicker.scss +5 -5
  146. package/assets/esri/themes/base/widgets/_CatalogLayerList.scss +1 -1
  147. package/assets/esri/themes/base/widgets/_Compass.scss +0 -2
  148. package/assets/esri/themes/base/widgets/_DirectionalPad.scss +4 -10
  149. package/assets/esri/themes/base/widgets/_Directions.scss +40 -40
  150. package/assets/esri/themes/base/widgets/_Editor.scss +7 -7
  151. package/assets/esri/themes/base/widgets/_Expand.scss +1 -1
  152. package/assets/esri/themes/base/widgets/_Feature.scss +1 -1
  153. package/assets/esri/themes/base/widgets/_FeatureForm.scss +6 -6
  154. package/assets/esri/themes/base/widgets/_FeatureFormUtilityNetworkAssociationLayers.scss +1 -1
  155. package/assets/esri/themes/base/widgets/_FeatureFormUtilityNetworkAssociationList.scss +1 -1
  156. package/assets/esri/themes/base/widgets/_FeatureFormUtilityNetworkAssociationSettings.scss +4 -4
  157. package/assets/esri/themes/base/widgets/_FeatureTable.scss +27 -27
  158. package/assets/esri/themes/base/widgets/_FeatureTemplates.scss +1 -1
  159. package/assets/esri/themes/base/widgets/_Features.scss +6 -6
  160. package/assets/esri/themes/base/widgets/_FilterBuilder.scss +1 -1
  161. package/assets/esri/themes/base/widgets/_FilterCondition.scss +1 -1
  162. package/assets/esri/themes/base/widgets/_Grid.scss +18 -18
  163. package/assets/esri/themes/base/widgets/_GridControls.scss +11 -11
  164. package/assets/esri/themes/base/widgets/_LayerList.scss +1 -1
  165. package/assets/esri/themes/base/widgets/_Legend.scss +5 -5
  166. package/assets/esri/themes/base/widgets/_NavigationToggle.scss +4 -1
  167. package/assets/esri/themes/base/widgets/_OrientedImageryViewer.scss +23 -28
  168. package/assets/esri/themes/base/widgets/_ResponsiveToolbar.scss +0 -2
  169. package/assets/esri/themes/base/widgets/_SearchResultRenderer.scss +1 -1
  170. package/assets/esri/themes/base/widgets/_SelectionList.scss +15 -15
  171. package/assets/esri/themes/base/widgets/_SelectionToolbar.scss +3 -5
  172. package/assets/esri/themes/base/widgets/_ShadowCast.scss +11 -11
  173. package/assets/esri/themes/base/widgets/_Sketch.scss +1 -1
  174. package/assets/esri/themes/base/widgets/_Slice.scss +3 -3
  175. package/assets/esri/themes/base/widgets/_SnappingControls.scss +1 -1
  176. package/assets/esri/themes/base/widgets/_TimeSlider.scss +5 -5
  177. package/assets/esri/themes/base/widgets/_TimeZoneLabel.scss +5 -4
  178. package/assets/esri/themes/base/widgets/_Tooltip.scss +14 -17
  179. package/assets/esri/themes/base/widgets/_UtilityNetworkAssociations.scss +2 -2
  180. package/assets/esri/themes/base/widgets/_UtilityNetworkTrace.scss +1 -1
  181. package/assets/esri/themes/base/widgets/_UtilityNetworkValidateTopology.scss +2 -2
  182. package/assets/esri/themes/base/widgets/_ValuePicker.scss +2 -2
  183. package/assets/esri/themes/base/widgets/_VideoPlayer.scss +5 -5
  184. package/assets/esri/themes/base/widgets/_Widget.scss +5 -1
  185. package/assets/esri/themes/dark/main.css +1 -1
  186. package/assets/esri/themes/light/main.css +1 -1
  187. package/assets/esri/themes/light/view.css +1 -1
  188. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.en.json +1 -1
  189. package/{basemaps/BasemapCollection.d.ts → basemapGallery/BasemapGalleryModel.d.ts} +8 -8
  190. package/{basemaps/BasemapCollection.js → basemapGallery/BasemapGalleryModel.js} +1 -1
  191. package/{basemaps → basemapGallery}/BasemapsSource.d.ts +1 -1
  192. package/{basemaps → basemapGallery}/BasemapsSource.js +1 -1
  193. package/{basemaps → basemapGallery}/LocalBasemapsSource.d.ts +2 -2
  194. package/{basemaps → basemapGallery}/LocalBasemapsSource.js +1 -1
  195. package/{basemaps → basemapGallery}/PortalBasemapsSource.d.ts +2 -2
  196. package/{basemaps → basemapGallery}/PortalBasemapsSource.js +1 -1
  197. package/{basemaps → basemapGallery}/support/BasemapItem.d.ts +2 -2
  198. package/{basemaps → basemapGallery}/support/BasemapItem.js +1 -1
  199. package/{basemaps → basemapGallery}/types.d.ts +2 -2
  200. package/chunks/AtmosphereCompositing.glsl.js +1 -1
  201. package/chunks/ChapmanAtmosphere.glsl.js +3 -3
  202. package/chunks/CloudsComposition.glsl.js +1 -1
  203. package/chunks/Component.glsl.js +41 -41
  204. package/chunks/DefaultMaterial.glsl.js +2 -2
  205. package/chunks/EdgeShader.glsl.js +9 -9
  206. package/chunks/Fog.glsl.js +5 -5
  207. package/chunks/GaussianSplat.glsl.js +2 -2
  208. package/chunks/GlobalIllumination.glsl.js +13 -11
  209. package/chunks/GlobalIlluminationBlur.glsl.js +3 -5
  210. package/chunks/GlobalIlluminationUpscale.glsl.js +1 -1
  211. package/chunks/HUDMaterial.glsl.js +13 -13
  212. package/chunks/Haze.glsl.js +6 -6
  213. package/chunks/HazeCompositing.glsl.js +1 -1
  214. package/chunks/LaserlinePath.glsl.js +6 -6
  215. package/chunks/LineCallout.glsl.js +1 -1
  216. package/chunks/LineMarker.glsl.js +5 -5
  217. package/chunks/NavigationDepth.glsl.js +2 -2
  218. package/chunks/Path.glsl.js +1 -1
  219. package/chunks/Pattern.glsl.js +26 -26
  220. package/chunks/Precipitation.glsl.js +7 -7
  221. package/chunks/RealisticTree.glsl.js +2 -2
  222. package/chunks/RibbonLine.glsl.js +80 -73
  223. package/chunks/ShadowCastAccumulate.glsl.js +1 -1
  224. package/chunks/ShadowHighlight.glsl.js +5 -5
  225. package/chunks/ShadowHighlightBuffer.glsl.js +1 -1
  226. package/chunks/SimpleAtmosphere.glsl.js +4 -4
  227. package/chunks/Terrain.glsl.js +29 -32
  228. package/chunks/Viewshed.glsl.js +2 -2
  229. package/chunks/Water.glsl.js +2 -2
  230. package/config.js +1 -1
  231. package/core/Loadable.js +1 -1
  232. package/core/arrayUtils.js +1 -1
  233. package/core/colorUtils.js +1 -1
  234. package/core/has.js +1 -1
  235. package/core/screenUtils.js +1 -1
  236. package/core/units.js +1 -1
  237. package/core/workers/workerFactory.js +1 -1
  238. package/form/elements/inputs/DynamicChoiceInput.d.ts +35 -5
  239. package/geometry/HeightModelInfo.js +1 -1
  240. package/geometry/operators/proximityOperator.js +1 -1
  241. package/geometry/projectionUtils.js +1 -1
  242. package/geometry/support/meshUtils.d.ts +1 -1
  243. package/geometry/support/scaleUtils.js +1 -1
  244. package/geometry/support/wkt.js +2 -0
  245. package/kernel.js +1 -1
  246. package/layers/BaseDynamicLayer.d.ts +1 -0
  247. package/layers/BaseElevationLayer.d.ts +2 -0
  248. package/layers/BaseTileLayer.d.ts +12 -9
  249. package/layers/CSVLayer.d.ts +0 -15
  250. package/layers/FeatureLayer.d.ts +2 -15
  251. package/layers/GeoJSONLayer.d.ts +0 -52
  252. package/layers/GeoRSSLayer.d.ts +0 -44
  253. package/layers/GeospatialPDFLayer.d.ts +2 -5
  254. package/layers/GeospatialPDFLayer.js +1 -1
  255. package/layers/Lyr3DWasmPerSceneView.js +1 -1
  256. package/layers/OrientedImageryLayer.js +1 -1
  257. package/layers/ParquetLayer.d.ts +100 -12
  258. package/layers/ParquetLayer.js +1 -1
  259. package/layers/SketchLayer.d.ts +0 -1
  260. package/layers/VectorTileLayer.d.ts +2 -12
  261. package/layers/geospatialPDF/renderExtentUtils.js +1 -1
  262. package/layers/graphics/data/FeatureStore.js +1 -1
  263. package/layers/graphics/data/QueryEngineResult.js +1 -1
  264. package/layers/graphics/data/geometryUtils.js +1 -1
  265. package/layers/graphics/data/projectionSupport.js +1 -1
  266. package/layers/graphics/sources/FeatureLayerSource.js +1 -1
  267. package/layers/graphics/sources/support/ParquetSourceWorker.js +1 -1
  268. package/layers/graphics/transferFeatures.js +1 -1
  269. package/layers/knowledgeGraph/layerUtils.js +1 -1
  270. package/layers/knowledgeGraph/nodeMovementUtils.js +1 -1
  271. package/layers/mixins/PortalLayer.js +1 -1
  272. package/layers/mixins/RefreshableLayer.d.ts +1 -3
  273. package/layers/mixins/ScaleRangeLayer.js +1 -1
  274. package/layers/mixins/SublayersOwner.js +1 -1
  275. package/layers/orientedImagery/core/ExposurePoint.js +1 -1
  276. package/layers/orientedImagery/core/utils.js +1 -1
  277. package/layers/raster/datasets/GeospatialPDFRaster.js +1 -1
  278. package/layers/raster/datasets/TIFFRaster.js +1 -1
  279. package/layers/raster/datasets/byteStreamUtils.js +1 -1
  280. package/layers/raster/formats/tiffParser.js +1 -1
  281. package/layers/support/ParquetPortalItemData.d.ts +2 -0
  282. package/layers/support/ParquetPortalItemData.js +1 -1
  283. package/layers/support/PortalItemData.d.ts +21 -0
  284. package/layers/support/PortalItemData.js +1 -1
  285. package/layers/support/Sublayer.js +1 -1
  286. package/layers/support/SubtypeSublayer.js +1 -1
  287. package/layers/support/layersLoader.js +1 -1
  288. package/layers/support/parquetUtils.d.ts +1 -1
  289. package/layers/support/types.d.ts +1 -1
  290. package/package.json +3 -3
  291. package/popup/FeaturesModel.d.ts +27 -6
  292. package/popup/FeaturesModel.js +1 -1
  293. package/portal/support/layersLoader.js +1 -1
  294. package/portal/support/portalLayers.js +1 -1
  295. package/renderers/VectorFieldRenderer.d.ts +4 -4
  296. package/rest/print.d.ts +49 -3
  297. package/rest/print.js +1 -1
  298. package/rest/query/operations/pbfFlatFeatureSet.js +1 -1
  299. package/rest/support/printTaskUtils.js +1 -1
  300. package/smartMapping/renderers/color.js +1 -1
  301. package/smartMapping/renderers/dotDensity.js +1 -1
  302. package/smartMapping/renderers/heatmap.js +1 -1
  303. package/smartMapping/renderers/pieChart.js +1 -1
  304. package/smartMapping/renderers/support/spikeUtils.js +3 -3
  305. package/smartMapping/renderers/type.js +1 -1
  306. package/smartMapping/statistics/heatmapStatistics.js +1 -1
  307. package/smartMapping/statistics/histogram.js +1 -1
  308. package/smartMapping/statistics/summaryStatistics.js +1 -1
  309. package/smartMapping/statistics/summaryStatisticsForAttributes.js +1 -1
  310. package/smartMapping/statistics/uniqueValues.js +1 -1
  311. package/smartMapping/support/adapters/support/layerUtils.js +1 -1
  312. package/smartMapping/types.d.ts +3 -1
  313. package/symbols/LineSymbol3DLayer.js +1 -1
  314. package/symbols/callouts/LineCallout3D.js +1 -1
  315. package/symbols/cim/CIMSymbolDrawHelper.js +1 -1
  316. package/symbols/cim/CIMSymbolHelper.js +1 -1
  317. package/symbols/cim/cimAnalyzer.js +1 -1
  318. package/symbols/edges/Edges3D.js +1 -1
  319. package/symbols/support/Symbol3DIconOutline.js +1 -1
  320. package/symbols/support/Symbol3DOutline.js +1 -1
  321. package/symbols/support/Symbol3DTextBorder.js +1 -1
  322. package/symbols/support/defaults3D.js +1 -1
  323. package/views/2d/analysis/AreaMeasurement/AreaMeasurementTool.js +1 -1
  324. package/views/2d/analysis/AreaMeasurementAnalysisView2D.d.ts +6 -4
  325. package/views/2d/analysis/AreaMeasurementAnalysisView2D.js +1 -1
  326. package/views/2d/analysis/DistanceMeasurement/DistanceMeasurementTool.js +1 -1
  327. package/views/2d/analysis/DistanceMeasurementAnalysisView2D.d.ts +6 -4
  328. package/views/2d/analysis/DistanceMeasurementAnalysisView2D.js +1 -1
  329. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedMarkerMeshWriter.js +1 -1
  330. package/views/2d/engine/webgl/shaderGraph/techniques/markers/MarkerMeshWriter.js +1 -1
  331. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/LineShader.js +1 -1
  332. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/TexturedLineShader.js +1 -1
  333. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/hittestUtils.js +1 -1
  334. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextMeshWriter.js +1 -1
  335. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextShader.js +1 -1
  336. package/views/2d/interactive/snapping/featureSources/featureServiceSource/FeatureServiceTiles2D.js +1 -1
  337. package/views/2d/layers/FeatureLikeLayerView2D.js +1 -1
  338. package/views/2d/layers/LayerView2D.js +1 -1
  339. package/views/2d/layers/features/FeatureContainer.js +1 -1
  340. package/views/2d/layers/features/FeatureSourceEventLog.js +1 -1
  341. package/views/2d/layers/features/layerAdapters/ParquetLayerAdapter.js +1 -1
  342. package/views/2d/layers/features/sources/FeatureSource.js +1 -1
  343. package/views/2d/layers/features/sources/FeatureSourceQueryInfo.js +1 -1
  344. package/views/2d/layers/features/sources/strategies/AFeatureTileLoadStrategy.js +1 -1
  345. package/views/2d/layers/features/sources/strategies/FeatureDrillDownTileLoadStrategy.js +1 -1
  346. package/views/2d/layers/features/sources/strategies/ParquetTileLoadStrategy.js +1 -1
  347. package/views/2d/layers/features/support/FeatureSetReader.js +1 -1
  348. package/views/2d/layers/features/support/FeatureSetReaderIndirect.js +1 -1
  349. package/views/2d/layers/features/support/FeatureSetReaderJSON.js +1 -1
  350. package/views/2d/layers/features/support/FeatureSetReaderPBF.js +1 -1
  351. package/views/2d/layers/features/support/FeatureSetReaderPBFHeader.js +1 -1
  352. package/views/3d/analysis/LineOfSight/LineOfSightEditTool.js +1 -1
  353. package/views/3d/analysis/LineOfSight/LineOfSightInteractionVisuals.js +1 -1
  354. package/views/3d/analysis/LineOfSight/LineOfSightItemManipulatedObject3D.js +1 -1
  355. package/views/3d/analysis/LineOfSight/LineOfSightItemTool.js +1 -1
  356. package/views/3d/analysis/LineOfSight/LineOfSightPlacementController.js +1 -1
  357. package/views/3d/analysis/LineOfSight/lineOfSightPlacementUtils.js +1 -1
  358. package/views/3d/analysis/ShadowCast/ShadowCastTooltip.js +1 -1
  359. package/views/3d/analysis/ShadowCastAnalysisView3D.js +1 -1
  360. package/views/3d/analysis/Viewshed/ViewshedPlacementController.js +1 -1
  361. package/views/3d/analysis/Viewshed/ViewshedPlacementPointPlugin.js +1 -1
  362. package/views/3d/analysis/Viewshed/placementUtils.js +1 -1
  363. package/views/3d/analysis/Viewshed/types.d.ts +3 -1
  364. package/views/3d/analysis/ViewshedAnalysisView3D.d.ts +3 -0
  365. package/views/3d/analysis/VolumeMeasurementAnalysisView3D.d.ts +2 -1
  366. package/views/3d/environment/Environment.d.ts +2 -2
  367. package/views/3d/environment/Environment.js +1 -1
  368. package/views/3d/environment/EnvironmentView.js +2 -0
  369. package/views/3d/interactive/SnappingVisualizer3D.js +1 -1
  370. package/views/3d/interactive/editingTools/move/MoveTool3D.js +1 -1
  371. package/views/3d/interactive/editingTools/originGeometryVisualElementUtils.js +1 -1
  372. package/views/3d/interactive/visualElements/ExtendedLineVisualElement.js +1 -1
  373. package/views/3d/interactive/visualElements/ParallelLineVisualElement.js +1 -1
  374. package/views/3d/interactive/visualElements/RightAngleQuadVisualElement.js +1 -1
  375. package/views/3d/layers/BuildingComponentSublayerView3D.js +1 -1
  376. package/views/3d/layers/BuildingSceneLayerView3D.js +1 -1
  377. package/views/3d/layers/DynamicLayerView3D.js +1 -1
  378. package/views/3d/layers/FeatureLikeLayerViewBase3D.js +1 -1
  379. package/views/3d/layers/FlowSubView3D.js +1 -1
  380. package/views/3d/layers/GaussianSplatLayerView3D.js +1 -1
  381. package/views/3d/layers/GraphicsLayerView3D.js +1 -1
  382. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  383. package/views/3d/layers/IntegratedMeshLayerView3D.js +1 -1
  384. package/views/3d/layers/MediaLayerView3D.js +1 -1
  385. package/views/3d/layers/PointCloudLayerView3D.js +1 -1
  386. package/views/3d/layers/RouteLayerView3D.js +1 -1
  387. package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
  388. package/views/3d/layers/SceneLayerView3D.js +1 -1
  389. package/views/3d/layers/TiledLayerView3D.js +1 -1
  390. package/views/3d/layers/VoxelLayerView3D.js +1 -1
  391. package/views/3d/layers/graphics/Deconflictor.js +1 -1
  392. package/views/3d/layers/graphics/ElevationAligners.js +1 -1
  393. package/views/3d/layers/graphics/Graphics3DBufferGraphicLayer.js +2 -0
  394. package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
  395. package/views/3d/layers/graphics/Graphics3DDrapedBufferGraphicLayer.js +2 -0
  396. package/views/3d/layers/graphics/Graphics3DDrapedGraphicLayer.js +1 -1
  397. package/views/3d/layers/graphics/Graphics3DDrapedGraphicLayerBase.js +2 -0
  398. package/views/3d/layers/graphics/Graphics3DGraphic.js +1 -1
  399. package/views/3d/layers/graphics/Graphics3DIconSymbolLayer.js +1 -1
  400. package/views/3d/layers/graphics/Graphics3DLineSymbolLayer.js +1 -1
  401. package/views/3d/layers/graphics/Graphics3DObject3DGraphicLayer.js +1 -1
  402. package/views/3d/layers/graphics/Graphics3DScaleVisibility.js +1 -1
  403. package/views/3d/layers/graphics/Graphics3DStageObjectGraphicLayer.js +2 -0
  404. package/views/3d/layers/graphics/Graphics3DSymbol.js +1 -1
  405. package/views/3d/layers/graphics/LabelInfo.js +1 -1
  406. package/views/3d/layers/graphics/Labeler.js +1 -1
  407. package/views/3d/layers/graphics/elevationAlignmentUtils.js +1 -1
  408. package/views/3d/layers/graphics/pointUtils.js +1 -1
  409. package/views/3d/layers/support/FeatureMemory.js +1 -1
  410. package/views/3d/layers/support/FeatureTile.js +1 -1
  411. package/views/3d/layers/support/FeatureTileFetcher3D.js +1 -1
  412. package/views/3d/layers/support/HeatmapFeatureProcessor.js +1 -1
  413. package/views/3d/layers/support/ImageHighlightHelper3D.js +1 -1
  414. package/views/3d/layers/support/SampledGeometryMaxDistanceRatio.js +1 -1
  415. package/views/3d/layers/support/featureTileQuery3D.js +1 -1
  416. package/views/3d/support/PBFDecoder.js +1 -1
  417. package/views/3d/support/elevationUpdateUtils.js +1 -1
  418. package/views/3d/support/popupHitTest.js +1 -1
  419. package/views/3d/terrain/OverlayManager.js +1 -1
  420. package/views/3d/terrain/OverlayRenderer.js +1 -1
  421. package/views/3d/terrain/TerrainRenderer.js +1 -1
  422. package/views/3d/webgl-engine/collections/Component/Material/Component.glsl.js +1 -1
  423. package/views/3d/webgl-engine/core/shaderLibrary/Laserline.glsl.js +5 -5
  424. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexPosition.glsl.js +13 -13
  425. package/views/3d/webgl-engine/core/shaderLibrary/bindUniforms.js +2 -0
  426. package/views/3d/webgl-engine/core/shaderLibrary/hud/HUD.glsl.js +2 -2
  427. package/views/3d/webgl-engine/core/shaderLibrary/lastFrameUniforms.js +2 -0
  428. package/views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js +7 -7
  429. package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js +31 -29
  430. package/views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js +26 -12
  431. package/views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js +2 -2
  432. package/views/3d/webgl-engine/core/shaderLibrary/shading/MarkerSizing.glsl.js +14 -14
  433. package/views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js +1 -1
  434. package/views/3d/webgl-engine/core/shaderLibrary/shading/ReadGlobalIllumination.glsl.js +16 -11
  435. package/views/3d/webgl-engine/core/shaderLibrary/shading/ScreenSpaceRayMarching.glsl.js +5 -5
  436. package/views/3d/webgl-engine/core/shaderLibrary/shading/WaterColor.glsl.js +8 -8
  437. package/views/3d/webgl-engine/core/shaderLibrary/shading/evaluateSceneLightingFragment.glsl.js +1 -1
  438. package/views/3d/webgl-engine/core/shaderLibrary/shading/lightingUniforms.js +2 -0
  439. package/views/3d/webgl-engine/core/shaderLibrary/shading/pbrGlobals.glsl.js +1 -1
  440. package/views/3d/webgl-engine/core/shaderLibrary/shading/readShadow.glsl.js +6 -6
  441. package/views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js +1 -1
  442. package/views/3d/webgl-engine/core/shaderLibrary/util/CloudsParallaxShading.glsl.js +3 -3
  443. package/views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js +1 -1
  444. package/views/3d/webgl-engine/core/shaderLibrary/util/cameraUniforms.js +1 -1
  445. package/views/3d/webgl-engine/effects/WeatherFader.js +1 -1
  446. package/views/3d/webgl-engine/effects/atmosphere/ChapmanApproximation.glsl.js +3 -3
  447. package/views/3d/webgl-engine/effects/atmosphere/ChapmanAtmosphere.glsl.js +1 -1
  448. package/views/3d/webgl-engine/effects/atmosphere/ChapmanRaymarching.glsl.js +1 -1
  449. package/views/3d/webgl-engine/effects/atmosphere/SimpleAtmosphere.glsl.js +1 -1
  450. package/views/3d/webgl-engine/effects/clouds/CloudsComposition.glsl.js +1 -1
  451. package/views/3d/webgl-engine/effects/clouds/CloudsComposition.js +1 -1
  452. package/views/3d/webgl-engine/effects/fog/Fog.glsl.js +1 -1
  453. package/views/3d/webgl-engine/effects/fog/Fog.js +1 -1
  454. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.glsl.js +1 -1
  455. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.js +1 -1
  456. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationColorQuantization.glsl.js +2 -2
  457. package/views/3d/webgl-engine/effects/glow/applyEmissiveGlow.glsl.js +5 -5
  458. package/views/3d/webgl-engine/effects/haze/Haze.glsl.js +1 -1
  459. package/views/3d/webgl-engine/effects/haze/HazeCompositing.glsl.js +1 -1
  460. package/views/3d/webgl-engine/effects/highlight/ShadowHighlight.glsl.js +1 -1
  461. package/views/3d/webgl-engine/effects/highlight/ShadowHighlightBuffer.glsl.js +1 -1
  462. package/views/3d/webgl-engine/effects/laserlines/LaserlinePath.glsl.js +1 -1
  463. package/views/3d/webgl-engine/effects/raymarching/DistanceFalloff.glsl.js +1 -1
  464. package/views/3d/webgl-engine/effects/shadowAccumulation/ShadowCastAccumulate.glsl.js +1 -1
  465. package/views/3d/webgl-engine/lib/BufferGeometry.js +1 -1
  466. package/views/3d/webgl-engine/lib/BufferObject3D.js +1 -1
  467. package/views/3d/webgl-engine/lib/EmissionComposite.js +1 -1
  468. package/views/3d/webgl-engine/lib/GeometryUtil.js +1 -1
  469. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  470. package/views/3d/webgl-engine/lib/affectsGeometry.js +1 -1
  471. package/views/3d/webgl-engine/lib/bufferGeometryUtils.js +2 -0
  472. package/views/3d/webgl-engine/lib/edgeRendering/AdjustProjectedPosition.glsl.js +5 -5
  473. package/views/3d/webgl-engine/lib/edgeRendering/EdgeShader.glsl.js +1 -1
  474. package/views/3d/webgl-engine/lib/edgeRendering/EdgeUtil.glsl.js +11 -11
  475. package/views/3d/webgl-engine/materials/Path.glsl.js +1 -1
  476. package/views/3d/webgl-engine/materials/Water.glsl.js +1 -1
  477. package/views/3d/webgl-engine/shaders/AtmosphereCompositing.glsl.js +1 -1
  478. package/views/3d/webgl-engine/shaders/DefaultMaterial.glsl.js +1 -1
  479. package/views/3d/webgl-engine/shaders/GaussianSplat.glsl.js +1 -1
  480. package/views/3d/webgl-engine/shaders/HUDMaterial.glsl.js +1 -1
  481. package/views/3d/webgl-engine/shaders/LineCallout.glsl.js +1 -1
  482. package/views/3d/webgl-engine/shaders/Pattern.glsl.js +1 -1
  483. package/views/3d/webgl-engine/shaders/RealisticTree.glsl.js +1 -1
  484. package/views/3d/webgl-engine/shaders/RibbonLine.glsl.js +1 -1
  485. package/views/3d/webgl-engine/shaders/SphereDepthInterpolate.glsl.js +1 -1
  486. package/views/3d/webgl-engine/shaders/Terrain.glsl.js +1 -1
  487. package/views/3d/webgl-engine/shaders/Viewshed.glsl.js +1 -1
  488. package/views/3d/webgl-engine/shaders/lineUniforms.js +2 -0
  489. package/views/DOMContainer.d.ts +28 -9
  490. package/views/DOMContainer.js +1 -1
  491. package/views/PopupView.d.ts +6 -0
  492. package/views/SceneView.d.ts +4 -10
  493. package/views/SceneView.js +1 -1
  494. package/views/VideoView.d.ts +27 -9
  495. package/views/View.d.ts +20 -19
  496. package/views/View.js +1 -1
  497. package/views/View2D.d.ts +13 -13
  498. package/views/draw/Draw.d.ts +1 -1
  499. package/views/draw/support/InteractiveHandle.js +1 -1
  500. package/views/draw/support/PluginContext.js +1 -1
  501. package/views/draw/support/managers/TooltipManager.js +1 -1
  502. package/views/interactive/options/SnappingOptions.d.ts +29 -12
  503. package/views/interactive/options/TooltipOptions.d.ts +9 -1
  504. package/views/interactive/options/ValueOptions.d.ts +9 -2
  505. package/views/interactive/options/ViewOptions.d.ts +82 -6
  506. package/views/interactive/snapping/FeatureSnappingSourceInfo.js +1 -1
  507. package/views/interactive/snapping/SnappingManagerPool.js +1 -1
  508. package/views/interactive/snapping/SnappingOptions.d.ts +1 -1
  509. package/views/interactive/snapping/SnappingVisualizer.js +1 -1
  510. package/views/interactive/support/Units.d.ts +1 -0
  511. package/views/interactive/tooltip/components/DrawHeaderActions.js +1 -1
  512. package/views/interactive/tooltip/components/ElevationModeSelect.js +1 -1
  513. package/views/interactive/tooltip/components/TooltipEditableField.js +1 -1
  514. package/views/interactive/tooltip/infos/DynamicTooltipInfo.js +1 -1
  515. package/views/layers/FeatureLikeLayerView.d.ts +2 -2
  516. package/views/layers/GraphicsLayerView.d.ts +1 -0
  517. package/views/layers/ImageryLayerView.d.ts +1 -0
  518. package/views/layers/LayerView.js +1 -1
  519. package/views/layers/LineOfSightLayerView.d.ts +3 -4
  520. package/views/layers/ParquetLayerView.d.ts +15 -0
  521. package/views/layers/ParquetLayerView.js +1 -1
  522. package/views/layers/ViewshedLayerView.d.ts +5 -6
  523. package/views/support/layerViewUtils.js +1 -1
  524. package/views/support/projectionUtils.js +1 -1
  525. package/views/types.d.ts +3 -1
  526. package/webdoc/support/saveUtils.js +1 -1
  527. package/webdoc/support/unsupportedErrors.js +1 -1
  528. package/widgets/BasemapGallery/BasemapGalleryViewModel.d.ts +2 -2
  529. package/widgets/BasemapGallery/BasemapGalleryViewModel.js +1 -1
  530. package/widgets/BasemapGallery/support/BasemapGalleryItem.d.ts +3 -3
  531. package/widgets/BasemapGallery/support/LocalBasemapsSource.d.ts +2 -2
  532. package/widgets/BasemapGallery/support/PortalBasemapsSource.d.ts +2 -2
  533. package/widgets/BasemapGallery/types.d.ts +3 -3
  534. package/widgets/BasemapLayerList.js +1 -1
  535. package/widgets/BatchAttributeForm/BatchAttributeFormViewModel.js +1 -1
  536. package/widgets/BatchAttributeForm/expressions/ExpressionsManager.js +1 -1
  537. package/widgets/BatchAttributeForm/expressions/expressionUtils.js +1 -1
  538. package/widgets/BatchAttributeForm/inputs/FieldInput.d.ts +6 -0
  539. package/widgets/BatchAttributeForm/inputs/FieldInput.js +1 -1
  540. package/widgets/BatchAttributeForm/inputs/support/DynamicChoiceController.js +1 -1
  541. package/widgets/BatchAttributeForm/inputs/support/createBatchFormInputs.js +1 -1
  542. package/widgets/BatchAttributeForm.js +1 -1
  543. package/widgets/DirectionalPad.js +1 -1
  544. package/widgets/Editor/EditorViewModel.d.ts +13 -8
  545. package/widgets/Editor/components/UpdateFeaturePanelContent.js +1 -1
  546. package/widgets/Editor/workflowUtils.js +1 -1
  547. package/widgets/Editor.d.ts +19 -9
  548. package/widgets/Expand.js +1 -1
  549. package/widgets/FeatureForm.d.ts +2 -2
  550. package/widgets/FeatureForm.js +1 -1
  551. package/widgets/FeatureTable/FieldColumn.js +1 -1
  552. package/widgets/FeatureTable.js +1 -1
  553. package/widgets/Features/FeaturesDrillIn.js +1 -1
  554. package/widgets/Features.js +1 -1
  555. package/widgets/Legend.d.ts +1 -0
  556. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  557. package/widgets/OrientedImageryViewer/adapters/draw/HeightMeasurementAdapter.js +1 -1
  558. package/widgets/OrientedImageryViewer/adapters/sketch/MeasurementAdapter.js +1 -1
  559. package/widgets/OrientedImageryViewer/adapters/sketch/TriangulatedMeasurementAdapter.js +1 -1
  560. package/widgets/OrientedImageryViewer/adapters/view/SceneViewAdapter.js +1 -1
  561. package/widgets/OrientedImageryViewer/components/ImageLocationViewModel.js +1 -1
  562. package/widgets/OrientedImageryViewer/components/SequentialNavigationUI.js +1 -1
  563. package/widgets/OrientedImageryViewer/components/SketchTools.js +1 -1
  564. package/widgets/OrientedImageryViewer/services/ImageMeasurementService.js +1 -1
  565. package/widgets/OrientedImageryViewer/types.d.ts +20 -0
  566. package/widgets/OrientedImageryViewer.d.ts +9 -1
  567. package/widgets/PanoramicVideoViewer.js +1 -1
  568. package/widgets/Print/PrintViewModel.d.ts +3 -2
  569. package/widgets/Print/PrintViewModel.js +1 -1
  570. package/widgets/Print.js +1 -1
  571. package/widgets/ScaleRangeSlider.js +1 -1
  572. package/widgets/Search/SearchResultRenderer.js +1 -1
  573. package/widgets/ShadowCast/ShadowCastViewModel.js +1 -1
  574. package/widgets/Sketch/SketchViewModel.d.ts +14 -9
  575. package/widgets/Sketch/support/ResponsiveToolbar/ResponsiveToolbar.js +1 -1
  576. package/widgets/Sketch.d.ts +10 -10
  577. package/widgets/Track/TrackViewModel.d.ts +1 -1
  578. package/widgets/UtilityNetworkAssociations.js +1 -1
  579. package/widgets/UtilityNetworkTrace/UtilityNetworkTraceFeature.js +1 -1
  580. package/widgets/UtilityNetworkTrace/UtilityNetworkTraceFeaturesDrillIn.js +1 -1
  581. package/widgets/UtilityNetworkTrace/types.d.ts +2 -2
  582. package/widgets/UtilityNetworkTrace.js +1 -1
  583. package/widgets/UtilityNetworkValidateTopology.js +1 -1
  584. package/widgets/ValuePicker.js +1 -1
  585. package/widgets/VideoPlayer/components/PlayerActionsGroup.js +1 -1
  586. package/widgets/VideoPlayer/components/PlayerControlsGroup.js +1 -1
  587. package/widgets/support/GridControls.js +1 -1
  588. package/widgets/support/PluginSettingsControls.js +1 -1
  589. package/widgets/support/SelectionList/FeatureItem.d.ts +9 -2
  590. package/widgets/support/SelectionToolbar.js +1 -1
  591. package/widgets/support/SnappingControls.d.ts +1 -1
  592. package/widgets/support/SnappingControls.js +1 -1
  593. package/widgets/support/componentsUtils.js +1 -1
  594. package/arcade/geometry/wkt.js +0 -2
  595. package/assets/esri/core/workers/chunks/00a600c71ceebe7bfeee.js +0 -1
  596. package/assets/esri/core/workers/chunks/00d24415bdeb0adae3df.js +0 -1
  597. package/assets/esri/core/workers/chunks/0193df3f9fb23633da87.js +0 -1
  598. package/assets/esri/core/workers/chunks/01b00fbf6a6a22d573ee.js +0 -1
  599. package/assets/esri/core/workers/chunks/02d4f91652a79d2b637e.js +0 -1
  600. package/assets/esri/core/workers/chunks/050c4b212f2b5691db34.js +0 -1
  601. package/assets/esri/core/workers/chunks/05963f57cbe5a5249496.js +0 -1
  602. package/assets/esri/core/workers/chunks/05d865b2736f452ad2aa.js +0 -1
  603. package/assets/esri/core/workers/chunks/06e7400f5ebe0719b81c.js +0 -1
  604. package/assets/esri/core/workers/chunks/07aa6d36f1006b6ab7ff.js +0 -1
  605. package/assets/esri/core/workers/chunks/084222c00d263a534952.js +0 -1
  606. package/assets/esri/core/workers/chunks/0b36abcbf03037b4073d.js +0 -1
  607. package/assets/esri/core/workers/chunks/107b025dc5b09465a78f.js +0 -1
  608. package/assets/esri/core/workers/chunks/1b551ef3d84d9c1e93f9.js +0 -1
  609. package/assets/esri/core/workers/chunks/1ef39aef6b33c530cbe4.js +0 -1
  610. package/assets/esri/core/workers/chunks/1f3148cebee1961249a4.js +0 -1
  611. package/assets/esri/core/workers/chunks/1f43e06dcfe56229bb0f.js +0 -1
  612. package/assets/esri/core/workers/chunks/2164fcaced72b0fda31f.js +0 -1
  613. package/assets/esri/core/workers/chunks/25b0885d3bc190b28c04.js +0 -1
  614. package/assets/esri/core/workers/chunks/25d6c674b1c4829f040f.js +0 -1
  615. package/assets/esri/core/workers/chunks/260dcb79dfd0f981949f.js +0 -1
  616. package/assets/esri/core/workers/chunks/2a570ce6b99dac6ee996.js +0 -1
  617. package/assets/esri/core/workers/chunks/2e6a2f4d686b71249c0e.js +0 -1
  618. package/assets/esri/core/workers/chunks/2f9033890c465acff698.js +0 -1
  619. package/assets/esri/core/workers/chunks/303676d1b10676c9cab4.js +0 -1
  620. package/assets/esri/core/workers/chunks/303fde8f3459dde16555.js +0 -1
  621. package/assets/esri/core/workers/chunks/32d08b571bbd996d4e6d.js +0 -1
  622. package/assets/esri/core/workers/chunks/33956f12505e72e60293.js +0 -1
  623. package/assets/esri/core/workers/chunks/350540770781b281c39a.js +0 -1
  624. package/assets/esri/core/workers/chunks/37a636f61cfe89c6bfd1.js +0 -1
  625. package/assets/esri/core/workers/chunks/380cc538c1ab453870fa.js +0 -1
  626. package/assets/esri/core/workers/chunks/3880d2c7fb14955d7f93.js +0 -1
  627. package/assets/esri/core/workers/chunks/3b017b718ea2d4ed498f.js +0 -1
  628. package/assets/esri/core/workers/chunks/40fb1910f780e78c128c.js +0 -1
  629. package/assets/esri/core/workers/chunks/4310c8d2b40ae69c3681.js +0 -1
  630. package/assets/esri/core/workers/chunks/43fc42405167a5537039.js +0 -1
  631. package/assets/esri/core/workers/chunks/4848f195eb93cc93dd15.js +0 -1
  632. package/assets/esri/core/workers/chunks/4cddd217383b9333f32e.js +0 -1
  633. package/assets/esri/core/workers/chunks/4d82db661365daa513a6.js +0 -1
  634. package/assets/esri/core/workers/chunks/4fa59f8ed3b7b6239548.js +0 -1
  635. package/assets/esri/core/workers/chunks/57970d43cdcc5cf57a30.js +0 -1
  636. package/assets/esri/core/workers/chunks/5e184fd47e76eb976fa9.js +0 -1
  637. package/assets/esri/core/workers/chunks/5ea8809b6519c05ad9f6.js +0 -1
  638. package/assets/esri/core/workers/chunks/5f3ab77a79c408423fde.js +0 -1
  639. package/assets/esri/core/workers/chunks/5fd099ca1024707387b2.js +0 -1
  640. package/assets/esri/core/workers/chunks/604344e45c0f27497188.js +0 -1
  641. package/assets/esri/core/workers/chunks/61ad8306ab79aca79505.js +0 -1
  642. package/assets/esri/core/workers/chunks/633a9051580c5302d2f7.js +0 -1
  643. package/assets/esri/core/workers/chunks/6469c0d18d3663e7da4b.js +0 -1
  644. package/assets/esri/core/workers/chunks/65654e481cce9ae40e54.js +0 -1
  645. package/assets/esri/core/workers/chunks/669e39c3437d7273f0c7.js +0 -1
  646. package/assets/esri/core/workers/chunks/68e24fa3f564c2a5c9fd.js +0 -1
  647. package/assets/esri/core/workers/chunks/6aebf7cfd294e88bf926.js +0 -1
  648. package/assets/esri/core/workers/chunks/71f739bb3f7350704af6.js +0 -1
  649. package/assets/esri/core/workers/chunks/750a9f3cdb96b966274a.js +0 -1
  650. package/assets/esri/core/workers/chunks/776565dd9741ba2ba151.js +0 -1
  651. package/assets/esri/core/workers/chunks/798a63653f82c0e842c5.js +0 -1
  652. package/assets/esri/core/workers/chunks/841f67baf6a1634ada48.js +0 -1
  653. package/assets/esri/core/workers/chunks/84fcbf7a1d04f01685d1.js +0 -1
  654. package/assets/esri/core/workers/chunks/897fc8e78a0d54a5ff5a.js +0 -1
  655. package/assets/esri/core/workers/chunks/8af92bcc075e03e3e902.js +0 -1742
  656. package/assets/esri/core/workers/chunks/8e511079918e2fd9261f.js +0 -1
  657. package/assets/esri/core/workers/chunks/8e7a33cc1f83063043f2.js +0 -1
  658. package/assets/esri/core/workers/chunks/8fcfd515ee1b18c902e5.js +0 -1
  659. package/assets/esri/core/workers/chunks/9001e9a1e81bce175ddd.js +0 -1
  660. package/assets/esri/core/workers/chunks/9432feca48ca3e5849bd.js +0 -1
  661. package/assets/esri/core/workers/chunks/956a40f40bde416efe93.js +0 -1
  662. package/assets/esri/core/workers/chunks/95b82cbbe355266c65d7.js +0 -1
  663. package/assets/esri/core/workers/chunks/9673a9efec86040b8c13.js +0 -1
  664. package/assets/esri/core/workers/chunks/97dbbedea9fe03bd1306.js +0 -1
  665. package/assets/esri/core/workers/chunks/985b3f18cee87c3fe022.js +0 -1
  666. package/assets/esri/core/workers/chunks/9a7fc93cc693fd12b5d8.js +0 -1
  667. package/assets/esri/core/workers/chunks/9c0fd8baa00ee9733ba4.js +0 -1
  668. package/assets/esri/core/workers/chunks/a010d2e4e34eb7bc1fec.js +0 -1
  669. package/assets/esri/core/workers/chunks/a20526996d01386ec3b7.js +0 -1
  670. package/assets/esri/core/workers/chunks/a23272a7a47a95f6ddea.js +0 -1
  671. package/assets/esri/core/workers/chunks/a7edf7541569fef77cb3.js +0 -1
  672. package/assets/esri/core/workers/chunks/aa5b42e44d2959fdacd3.js +0 -1
  673. package/assets/esri/core/workers/chunks/ae2181805d8ba130babc.js +0 -1
  674. package/assets/esri/core/workers/chunks/b05a41a60e30935644be.js +0 -1
  675. package/assets/esri/core/workers/chunks/b0cfec11c758eed8095f.js +0 -1
  676. package/assets/esri/core/workers/chunks/bff767ec5bb4c0d6b324.js +0 -1
  677. package/assets/esri/core/workers/chunks/c906f984b2b6e7578c06.js +0 -1
  678. package/assets/esri/core/workers/chunks/ca7fb75e2c62e7d37122.js +0 -1
  679. package/assets/esri/core/workers/chunks/cbdebdfa5f2cded29d0d.js +0 -1
  680. package/assets/esri/core/workers/chunks/cbe6c0f32608cb504695.js +0 -1
  681. package/assets/esri/core/workers/chunks/cfae60b9d2f2939e9c16.js +0 -1
  682. package/assets/esri/core/workers/chunks/d270cc9807161033686e.js +0 -1
  683. package/assets/esri/core/workers/chunks/d56780290e0218d3e9de.js +0 -1
  684. package/assets/esri/core/workers/chunks/d6d5a9e73ee43d6066d3.js +0 -1
  685. package/assets/esri/core/workers/chunks/d89fe41c71c9621c41ae.js +0 -1
  686. package/assets/esri/core/workers/chunks/da18d96b35af20e73b3b.js +0 -1
  687. package/assets/esri/core/workers/chunks/de02a6a1f4810f99e9bb.js +0 -1
  688. package/assets/esri/core/workers/chunks/df0481bcc1613ee4b7af.js +0 -1
  689. package/assets/esri/core/workers/chunks/e22d45aeef293a5ffb78.js +0 -1
  690. package/assets/esri/core/workers/chunks/e5943f3a4bbc12c06c4d.js +0 -1
  691. package/assets/esri/core/workers/chunks/e7c60bd85abbd36cdc64.js +0 -1
  692. package/assets/esri/core/workers/chunks/ec9a2425b4a498054a19.js +0 -1
  693. package/assets/esri/core/workers/chunks/edf3be87a997f4f05b96.js +0 -1
  694. package/assets/esri/core/workers/chunks/f05de08e194a3f9b96f2.js +0 -1
  695. package/assets/esri/core/workers/chunks/f0a68d2900d24f56afa0.js +0 -1
  696. package/assets/esri/core/workers/chunks/f0aaa646b17ffdbdcefa.js +0 -1
  697. package/assets/esri/core/workers/chunks/f0c0c02730fe0d948fc1.js +0 -1
  698. package/assets/esri/core/workers/chunks/fd0254c6fc6c03ec11ba.js +0 -1
  699. package/assets/esri/core/workers/chunks/ffb3728e6ac428f62af1.js +0 -1
  700. package/views/3d/environment/EnvironmentManager.js +0 -2
  701. /package/{basemaps → basemapGallery}/support/basemapCompatibilityUtils.js +0 -0
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import e from"../../../../Graphic.js";import{isSome as t}from"../../../../core/arrayUtils.js";import{clamp as n}from"../../../../core/mathUtils.js";import{throwIfAborted as r,waitTick as i}from"../../../../core/promiseUtils.js";import a from"../../../../geometry/Mesh.js";import o from"../../../../geometry/Point.js";import{projectAsync as s}from"../../../../geometry/projectionUtils.js";import c from"../../../../geometry/support/MeshVertexAttributes.js";import{projectVertices as l,updateFrustum as u}from"../../../../layers/orientedImagery/core/coverageUtils.js";import d from"../../../../layers/orientedImagery/transformations/updateElevation.js";import{getPointerActions as f,eventMatchesMousePointerActions as p}from"../../../../views/input/handlers/support.js";import{fixedImageSize as m,invalidCameraHeading as h}from"../../constants.js";import{createFeatureCoverage as g}from"../../featureCoverage.js";import{activeFrustumSymbol as _,additionalFrustumSymbol as v}from"../../symbols.js";import{getDefaultSuperimposeFov as y,panoramicSuperimposeMaxFov as b,panoramicSuperimposeMinFov as x,panoramicSuperimposeZoomOutFactor as S,panoramicSuperimposeZoomInFactor as C,getViewCameraFieldOfView as w,panoramicSuperimposeMaxTilt as T,panoramicSuperimposeMinTilt as E,panoramicSuperimposeKeyboardAngleStep as D}from"../../support/superimposeUtils.js";class O{constructor(o){this.viewModel=o,this._defaultSuperimposeSecondaryDragAction=null,this._defaultSuperimposeNavigationHandles=[],this._panoramicSuperimposeAnchor=null,this._panoramicSuperimposeLastScreenPoint=null,this._panoramicSuperimposeNavigationHandles=[],this.createFootprints=async n=>{let{coverageFrustums:i,currentBestFeature:o,isAdditionalCoverageVisible:u,view:d}=this.viewModel,f=i.filter(t);for(let t of f){let i=t.clone();if(!d.spatialReference.equals(i.spatialReference)){let{components:e,spatialReference:t,origin:o,vertexAttributes:u,vertexSpace:f}=i;if(f.type===`local`){let e=await s(o,d.spatialReference,n);r(n),i.centerAt(e)}else{let o=u.position,s=Float64Array.from(await l([...o],t.clone(),d.spatialReference.clone(),n));r(n),i=new a({vertexAttributes:new c({position:s}),components:e,spatialReference:d.spatialReference.clone()})}}t.imageID===o.attributes.objectId?this.viewModel.bestFeatureFootprint=new e({attributes:{imageID:t.imageID},geometry:i,symbol:_.clone(),visible:!1}):this.viewModel.additionalFootprints.push(new e({attributes:{imageID:t.imageID},geometry:i,symbol:v.clone(),visible:u}))}},this.updateFootprint=async(n,i,a)=>{let{bestFeatureFootprint:o,currentBestFeature:c,activeViewer:l,footprintExtent:d,view:f,mode:p}=this.viewModel,h=p===`video`?m:l?.imageSize,g=i??c;if(!c||!o?.geometry||!h||!d||!g||!f?.spatialReference){this.viewModel.updateCurrentCoveragePolygon(null);return}let{attributes:{cameraHeight:v,location:y,cameraPitch:b,horizontalFieldOfView:x,verticalFieldOfView:S,cameraRoll:C}}=g,w=null;i&&(w=await this._computeFeatureFootprint(i,a));let T=g.attributes.location.toArray(),{vertexAttributes:{position:E},spatialReference:D}=(i&&w?w:o).geometry,O=await k(E,D,y.spatialReference),A=await this.viewModel.getMapPoint(n);r(a);let j=A.filter(t);if(!j.length)return;j[0].spatialReference.equals(y.spatialReference)||(j=await Promise.all(j.map(async e=>{let t=await s(e,y.spatialReference,a);return r(a),t})));let M=await u(n.map(({x:e,y:t})=>[e,t]),j.map(e=>e.toArray()),{cameraHeight:v,cameraLocation:T,cameraPitch:b,frustumVertices:O,horizontalFieldOfView:x,imageHeight:h[1],imageWidth:h[0],inSRS:{wkid:y.spatialReference.wkid},outSRS:{wkid:f.spatialReference.wkid},verticalFieldOfView:S,cameraRoll:C??0,options:a});this.viewModel.updateCurrentCoveragePolygon(new e({attributes:{imageID:g.attributes.objectId},geometry:M,symbol:_.clone(),visible:this.viewModel.currentCoverageVisible}))},this.updateVideoFootprint=async n=>{let{points:i,feature:a,scale:o,options:c}=n,{bestFeatureFootprint:l,currentBestFeature:d,activeViewer:f,footprintExtent:p,view:h,mode:g}=this.viewModel,v=g===`video`?m:f?.imageSize,y=a??d;if(!d||!l?.geometry||!v||!p||!y||!h?.spatialReference||g===`none`){this.viewModel.updateCurrentCoveragePolygon(null);return}let{attributes:{cameraHeight:b,location:x,cameraPitch:S,horizontalFieldOfView:C,verticalFieldOfView:w,cameraRoll:T}}=y,E=null;a&&(E=await this._computeFeatureFootprint(a,c));let D=y.attributes.location.toArray(),{vertexAttributes:{position:O},spatialReference:A}=(a&&E?E:l).geometry,M=await k(O,A,x.spatialReference),N={feature:y,mode:g,imageSize:v,footprintExtent:p},P=await this.viewModel.getMapPointForFeature(i,N,c);r(c);let F=P.filter(t);if(!F.length)return;F[0].spatialReference.equals(x.spatialReference)||(F=await Promise.all(F.map(async e=>{let t=await s(e,x.spatialReference,c);return r(c),t})));let I=await u(i.map(({x:e,y:t})=>[e,t]),F.map(e=>e.toArray()),{cameraHeight:b,cameraLocation:D,cameraPitch:S,frustumVertices:M,horizontalFieldOfView:C,imageHeight:v[1],imageWidth:v[0],inSRS:{wkid:x.spatialReference.wkid},outSRS:{wkid:h.spatialReference.wkid},verticalFieldOfView:w,cameraRoll:T??0,options:c});if(o&&I){let e=j(I);I.scale(o,{origin:e})}this.viewModel.updateCurrentCoveragePolygon(new e({attributes:{imageID:y.attributes.objectId},geometry:I,symbol:_.clone(),visible:this.viewModel.currentCoverageVisible}))},this.updateFootprintPanorama=async(t,n)=>{await i(n);let{horizontalFieldOfView:r,pitch:a,verticalFieldOfView:o,yaw:c,feature:l}=t,u=l?.clone()??this.viewModel.currentBestFeature?.clone();if(!u)return;let{attributes:d}=u;d.orientedImageryType=null,d.cameraHeading=c,d.cameraPitch=a,d.horizontalFieldOfView=r,d.verticalFieldOfView=o,d.cameraRoll=0;let{frustum:f}=g(d);if(!f){this.viewModel.updateCurrentCoveragePolygon(null);return}let p=this.viewModel.view?.spatialReference.equals(f.spatialReference)?f.clone():await s(f.clone(),this.viewModel.view?.spatialReference,n);this.viewModel.updateCurrentCoveragePolygon(new e({attributes:{imageID:d.objectId},geometry:p,symbol:_.clone(),visible:this.viewModel.currentCoverageVisible}))},this.updatePanoramicSuperimposeCamera=async(e,t)=>{let{camera:n,currentBestFeature:i}=e,{view:a}=this.viewModel;if(a?.type!==`3d`)return;let o=i.attributes.location,c=o.spatialReference.equals(a.spatialReference)?o:await s(o,a.spatialReference,t);if(r(t),!c)return;let l=n.clone();l.position=c.clone(),a.camera=l,this._enablePanoramicSuperimposeNavigation(c)},this.updateDefaultSuperimposeCamera=async(e,t)=>{let{currentBestFeature:i}=e,{view:a}=this.viewModel;if(a?.type!==`3d`)return;let{cameraHeading:o,cameraPitch:c,cameraRoll:l,horizontalFieldOfView:u,location:d,verticalFieldOfView:f}=i.attributes,p=d.spatialReference.equals(a.spatialReference)?d.clone():await s(d,a.spatialReference,t);if(r(t),!p)return;let m=y(a,u,f,l??0),g=a.camera.clone();g.position=p,g.fov=n(g.fov,x,b),o!=null&&o!==h&&(g.heading=o),c!=null&&(g.tilt=c),m!=null&&(g.fov=m),a.camera=g},this.enableDefaultSuperimposeNavigation=()=>{let{view:e}=this.viewModel;if(e?.type!==`3d`)return;let t=e.navigation.actionMap;this._defaultSuperimposeSecondaryDragAction??=t.dragSecondary,t.dragSecondary!==`none`&&(t.dragSecondary=`none`),this._defaultSuperimposeNavigationHandles.length||(this._defaultSuperimposeNavigationHandles=[e.on(`drag`,this._handleDefaultSuperimposeDrag)])},this.disableDefaultSuperimposeNavigation=()=>{let{view:e}=this.viewModel,t=this._defaultSuperimposeSecondaryDragAction;this._defaultSuperimposeNavigationHandles.forEach(e=>e.remove()),this._defaultSuperimposeNavigationHandles=[],e?.type!==`3d`||t==null||(e.navigation.actionMap.dragSecondary=t),this._defaultSuperimposeSecondaryDragAction=null},this.disablePanoramicSuperimposeNavigation=()=>{this._panoramicSuperimposeNavigationHandles.forEach(e=>e.remove()),this._panoramicSuperimposeNavigationHandles=[],this._panoramicSuperimposeAnchor=null,this._panoramicSuperimposeLastScreenPoint=null},this._handleDefaultSuperimposeDrag=e=>{let{view:t}=this.viewModel;if(!t||t.type!==`3d`)return;let n=f(`rotate`,t.navigation.actionMap);p(e,n)&&e.stopPropagation()},this._handlePanoramicSuperimposeDoubleClick=e=>{let{view:t}=this.viewModel;if(!t||t.type!==`3d`||!this._panoramicSuperimposeAnchor)return;e.stopPropagation();let r=t.camera.clone(),i=e.native.ctrlKey?S:C;r.position=this._panoramicSuperimposeAnchor.clone(),r.fov=n(r.fov*i,x,b),t.camera=r},this._handlePanoramicSuperimposeDrag=e=>{let{view:t}=this.viewModel;if(t&&t.type===`3d`&&this._panoramicSuperimposeAnchor)switch(e.stopPropagation(),e.action){case`start`:this._panoramicSuperimposeLastScreenPoint={x:e.x,y:e.y};return;case`update`:{let r=this._panoramicSuperimposeLastScreenPoint;if(!r){this._panoramicSuperimposeLastScreenPoint={x:e.x,y:e.y};return}let i=r.x-e.x,a=e.y-r.y;this._panoramicSuperimposeLastScreenPoint={x:e.x,y:e.y};let o=t.camera.clone(),{horizontal:s,vertical:c}=w(t);o.position=this._panoramicSuperimposeAnchor.clone(),o.heading+=s*i/Math.max(t.width,1),o.tilt=n(o.tilt+c*a/Math.max(t.height,1),E,T),t.camera=o;return}case`end`:this._panoramicSuperimposeLastScreenPoint=null;return}},this._handlePanoramicSuperimposeKeyDown=e=>{let{view:t}=this.viewModel;if(!t||t.type!==`3d`||!this._panoramicSuperimposeAnchor)return;let r=t.camera.clone(),i=!0;switch(r.position=this._panoramicSuperimposeAnchor.clone(),e.key){case`ArrowLeft`:r.heading-=D;break;case`ArrowRight`:r.heading+=D;break;case`ArrowUp`:r.tilt=n(r.tilt-D,E,T);break;case`ArrowDown`:r.tilt=n(r.tilt+D,E,T);break;default:i=!1}i&&(e.stopPropagation(),t.camera=r)},this._handlePanoramicSuperimposeWheel=e=>{let{view:t}=this.viewModel;if(!t||t.type!==`3d`||!this._panoramicSuperimposeAnchor)return;e.stopPropagation();let r=t.camera.clone();r.position=this._panoramicSuperimposeAnchor.clone(),r.fov=n(r.fov*(e.deltaY>0?S:C),x,b),t.camera=r}}async _computeFeatureFootprint(e,t){let{currentBestFeature:n,view:i}=this.viewModel,a=n?.elevationSample;if(a?.extent&&!a.extent.contains(e.geometry)&&(a=await this.viewModel.processFeatureElevation([e],e.geometry.clone(),t)??a),a){let n=await d(e.geometry.clone(),{elevationSample:a},t);r(t),e.attributes.elevation=n.z}return A(e,i.spatialReference,t)}_enablePanoramicSuperimposeNavigation(e){let{view:t}=this.viewModel;t&&t.type===`3d`&&(this.disablePanoramicSuperimposeNavigation(),this._panoramicSuperimposeAnchor=e.clone(),this._panoramicSuperimposeNavigationHandles=[t.on(`drag`,this._handlePanoramicSuperimposeDrag),t.on(`mouse-wheel`,this._handlePanoramicSuperimposeWheel),t.on(`double-click`,this._handlePanoramicSuperimposeDoubleClick),t.on(`key-down`,this._handlePanoramicSuperimposeKeyDown)])}}async function k(e,t,n,r){return Float64Array.from((await Promise.all(e.reduce((e,t,n)=>{let r=Math.floor(n/3);return e[r]=e[r]??[],e[r].push(t),e},[]).map(async e=>(await s(new o(e,t),n,r)).toArray()))).flat())}const A=async(t,n,i)=>{let{frustum:o}=g(t.attributes),u=o.clone();if(!n.equals(u.spatialReference)){let{components:e,spatialReference:t,origin:o,vertexAttributes:d,vertexSpace:f}=u;if(f.type===`local`){let e=await s(o,n,i);r(i),u.centerAt(e)}else{let o=d.position,s=Float64Array.from(await l([...o],t.clone(),n.clone(),i));r(i),u=new a({vertexAttributes:new c({position:s}),components:e,spatialReference:n.clone()})}}return new e({attributes:{imageID:o.imageID},geometry:u,symbol:_.clone(),visible:!1})},j=e=>{let t=e.vertexAttributes.position,n=0,r=0,i=0,a=t.length/3;for(let e=0;e<t.length;e+=3)n+=t[e],r+=t[e+1],i+=t[e+2];return new o({x:n/a,y:r/a,z:i/a,spatialReference:e.spatialReference})};export{O as default};
2
+ import e from"../../../../Graphic.js";import{isSome as t}from"../../../../core/arrayUtils.js";import{clamp as n}from"../../../../core/mathUtils.js";import{throwIfAborted as r,waitTick as i}from"../../../../core/promiseUtils.js";import a from"../../../../geometry/Mesh.js";import o from"../../../../geometry/Point.js";import{projectAsync as s}from"../../../../geometry/projectionUtils.js";import c from"../../../../geometry/support/MeshVertexAttributes.js";import{projectVertices as l,updateFrustum as u}from"../../../../layers/orientedImagery/core/coverageUtils.js";import d from"../../../../layers/orientedImagery/transformations/updateElevation.js";import{getPointerActions as f,eventMatchesMousePointerActions as p}from"../../../../views/input/handlers/support.js";import{fixedImageSize as m,invalidCameraHeading as h}from"../../constants.js";import{createFeatureCoverage as g}from"../../featureCoverage.js";import{activeFrustumSymbol as _,additionalFrustumSymbol as v}from"../../symbols.js";import{getDefaultSuperimposeFov as y,panoramicSuperimposeMaxFov as b,panoramicSuperimposeMinFov as x,panoramicSuperimposeZoomOutFactor as S,panoramicSuperimposeZoomInFactor as C,getViewCameraFieldOfView as w,panoramicSuperimposeMaxTilt as T,panoramicSuperimposeMinTilt as E,panoramicSuperimposeKeyboardAngleStep as D}from"../../support/superimposeUtils.js";class O{constructor(o){this.viewModel=o,this._defaultSuperimposeSecondaryDragAction=null,this._defaultSuperimposeNavigationHandles=[],this._panoramicSuperimposeAnchor=null,this._panoramicSuperimposeLastScreenPoint=null,this._panoramicSuperimposeNavigationHandles=[],this.createFootprints=async n=>{let{coverageFrustums:i,currentBestFeature:o,isAdditionalCoverageVisible:u,view:d}=this.viewModel,f=i.filter(t);for(let t of f){let i=t.clone();if(!d.spatialReference.equals(i.spatialReference)){let{components:e,spatialReference:t,origin:o,vertexAttributes:u,vertexSpace:f}=i;if(f.type===`local`){let e=await s(o,d.spatialReference,n);r(n),i.centerAt(e)}else{let o=u.position,s=Float64Array.from(await l([...o],t.clone(),d.spatialReference.clone(),n));r(n),i=new a({vertexAttributes:new c({position:s}),components:e,spatialReference:d.spatialReference.clone()})}}t.imageID===o.attributes.objectId?this.viewModel.bestFeatureFootprint=new e({attributes:{imageID:t.imageID},geometry:i,symbol:_.clone(),visible:!1}):this.viewModel.additionalFootprints.push(new e({attributes:{imageID:t.imageID},geometry:i,symbol:v.clone(),visible:u}))}},this.updateFootprint=async(n,i,a)=>{let{bestFeatureFootprint:o,currentBestFeature:c,activeViewer:l,footprintExtent:d,view:f,mode:p}=this.viewModel,h=p===`video`?m:l?.imageSize,g=i??c;if(!c||!o?.geometry||!h||!d||!g||!f?.spatialReference){this.viewModel.updateCurrentCoveragePolygon(null);return}let{attributes:{cameraHeight:v,location:y,cameraPitch:b,horizontalFieldOfView:x,verticalFieldOfView:S,cameraRoll:C}}=g,w=null;i&&(w=await this._computeFeatureFootprint(i,a));let T=g.attributes.location.toArray(),{vertexAttributes:{position:E},spatialReference:D}=(i&&w?w:o).geometry,O=await k(E,D,y.spatialReference),A=await this.viewModel.getMapPoint(n);r(a);let j=A.filter(t);if(!j.length)return;j[0].spatialReference.equals(y.spatialReference)||(j=await Promise.all(j.map(async e=>{let t=await s(e,y.spatialReference,a);return r(a),t})));let M=await u(n.map(({x:e,y:t})=>[e,t]),j.map(e=>e.toArray()),{cameraHeight:v,cameraLocation:T,cameraPitch:b,frustumVertices:O,horizontalFieldOfView:x,imageHeight:h[1],imageWidth:h[0],inSRS:{wkid:y.spatialReference.wkid},outSRS:{wkid:f.spatialReference.wkid},verticalFieldOfView:S,cameraRoll:C??0,options:a});this.viewModel.updateCurrentCoveragePolygon(new e({attributes:{imageID:g.attributes.objectId},geometry:M,symbol:_.clone(),visible:this.viewModel.currentCoverageVisible}))},this.updateVideoFootprint=async n=>{let{points:i,feature:a,scale:o,options:c}=n,{bestFeatureFootprint:l,currentBestFeature:d,activeViewer:f,footprintExtent:p,view:h,mode:g}=this.viewModel,v=g===`video`?m:f?.imageSize,y=a??d;if(!d||!l?.geometry||!v||!p||!y||!h?.spatialReference||g===`none`){this.viewModel.updateCurrentCoveragePolygon(null);return}let{attributes:{cameraHeight:b,location:x,cameraPitch:S,horizontalFieldOfView:C,verticalFieldOfView:w,cameraRoll:T}}=y,E=null;a&&(E=await this._computeFeatureFootprint(a,c));let D=y.attributes.location.toArray(),{vertexAttributes:{position:O},spatialReference:A}=(a&&E?E:l).geometry,M=await k(O,A,x.spatialReference),N={feature:y,mode:g,imageSize:v,footprintExtent:p},P=await this.viewModel.getMapPointForFeature(i,N,c);r(c);let F=P.filter(t);if(!F.length)return;F[0].spatialReference.equals(x.spatialReference)||(F=await Promise.all(F.map(async e=>{let t=await s(e,x.spatialReference,c);return r(c),t})));let I=await u(i.map(({x:e,y:t})=>[e,t]),F.map(e=>e.toArray()),{cameraHeight:b,cameraLocation:D,cameraPitch:S,frustumVertices:M,horizontalFieldOfView:C,imageHeight:v[1],imageWidth:v[0],inSRS:{wkid:x.spatialReference.wkid},outSRS:{wkid:h.spatialReference.wkid},verticalFieldOfView:w,cameraRoll:T??0,options:c});if(o&&I){let e=j(I);I.scale(o,{origin:e})}this.viewModel.updateCurrentCoveragePolygon(new e({attributes:{imageID:y.attributes.objectId},geometry:I,symbol:_.clone(),visible:this.viewModel.currentCoverageVisible}))},this.updateFootprintPanorama=async(t,n)=>{await i(n);let{horizontalFieldOfView:r,pitch:a,verticalFieldOfView:o,yaw:s,feature:c}=t,l=c?.clone()??this.viewModel.currentBestFeature?.clone();if(!l)return;let{attributes:u}=l;u.orientedImageryType=null,u.cameraHeading=s,u.cameraPitch=a,u.horizontalFieldOfView=r,u.verticalFieldOfView=o,u.cameraRoll=0;let{frustum:d}=g(u);!d||!this.viewModel.view?.spatialReference.equals(d.spatialReference)?this.viewModel.updateCurrentCoveragePolygon(null):this.viewModel.updateCurrentCoveragePolygon(new e({attributes:{imageID:u.objectId},geometry:d.clone(),symbol:_.clone(),visible:this.viewModel.currentCoverageVisible}))},this.updatePanoramicSuperimposeCamera=async(e,t)=>{let{camera:n,currentBestFeature:i}=e,{view:a}=this.viewModel;if(a?.type!==`3d`)return;let o=i.attributes.location,c=o.spatialReference.equals(a.spatialReference)?o:await s(o,a.spatialReference,t);if(r(t),!c)return;let l=n.clone();l.position=c.clone(),a.camera=l,this._enablePanoramicSuperimposeNavigation(c)},this.updateDefaultSuperimposeCamera=async(e,t)=>{let{currentBestFeature:i}=e,{view:a}=this.viewModel;if(a?.type!==`3d`)return;let{cameraHeading:o,cameraPitch:c,cameraRoll:l,horizontalFieldOfView:u,location:d,verticalFieldOfView:f}=i.attributes,p=d.spatialReference.equals(a.spatialReference)?d.clone():await s(d,a.spatialReference,t);if(r(t),!p)return;let m=y(a,u,f,l??0),g=a.camera.clone();g.position=p,g.fov=n(g.fov,x,b),o!=null&&o!==h&&(g.heading=o),c!=null&&(g.tilt=c),m!=null&&(g.fov=m),a.camera=g},this.enableDefaultSuperimposeNavigation=()=>{let{view:e}=this.viewModel;if(e?.type!==`3d`)return;let t=e.navigation.actionMap;this._defaultSuperimposeSecondaryDragAction??=t.dragSecondary,t.dragSecondary!==`none`&&(t.dragSecondary=`none`),this._defaultSuperimposeNavigationHandles.length||(this._defaultSuperimposeNavigationHandles=[e.on(`drag`,this._handleDefaultSuperimposeDrag)])},this.disableDefaultSuperimposeNavigation=()=>{let{view:e}=this.viewModel,t=this._defaultSuperimposeSecondaryDragAction;this._defaultSuperimposeNavigationHandles.forEach(e=>e.remove()),this._defaultSuperimposeNavigationHandles=[],e?.type!==`3d`||t==null||(e.navigation.actionMap.dragSecondary=t),this._defaultSuperimposeSecondaryDragAction=null},this.disablePanoramicSuperimposeNavigation=()=>{this._panoramicSuperimposeNavigationHandles.forEach(e=>e.remove()),this._panoramicSuperimposeNavigationHandles=[],this._panoramicSuperimposeAnchor=null,this._panoramicSuperimposeLastScreenPoint=null},this._handleDefaultSuperimposeDrag=e=>{let{view:t}=this.viewModel;if(!t||t.type!==`3d`)return;let n=f(`rotate`,t.navigation.actionMap);p(e,n)&&e.stopPropagation()},this._handlePanoramicSuperimposeDoubleClick=e=>{let{view:t}=this.viewModel;if(!t||t.type!==`3d`||!this._panoramicSuperimposeAnchor)return;e.stopPropagation();let r=t.camera.clone(),i=e.native.ctrlKey?S:C;r.position=this._panoramicSuperimposeAnchor.clone(),r.fov=n(r.fov*i,x,b),t.camera=r},this._handlePanoramicSuperimposeDrag=e=>{let{view:t}=this.viewModel;if(t&&t.type===`3d`&&this._panoramicSuperimposeAnchor)switch(e.stopPropagation(),e.action){case`start`:this._panoramicSuperimposeLastScreenPoint={x:e.x,y:e.y};return;case`update`:{let r=this._panoramicSuperimposeLastScreenPoint;if(!r){this._panoramicSuperimposeLastScreenPoint={x:e.x,y:e.y};return}let i=r.x-e.x,a=e.y-r.y;this._panoramicSuperimposeLastScreenPoint={x:e.x,y:e.y};let o=t.camera.clone(),{horizontal:s,vertical:c}=w(t);o.position=this._panoramicSuperimposeAnchor.clone(),o.heading+=s*i/Math.max(t.width,1),o.tilt=n(o.tilt+c*a/Math.max(t.height,1),E,T),t.camera=o;return}case`end`:this._panoramicSuperimposeLastScreenPoint=null;return}},this._handlePanoramicSuperimposeKeyDown=e=>{let{view:t}=this.viewModel;if(!t||t.type!==`3d`||!this._panoramicSuperimposeAnchor)return;let r=t.camera.clone(),i=!0;switch(r.position=this._panoramicSuperimposeAnchor.clone(),e.key){case`ArrowLeft`:r.heading-=D;break;case`ArrowRight`:r.heading+=D;break;case`ArrowUp`:r.tilt=n(r.tilt-D,E,T);break;case`ArrowDown`:r.tilt=n(r.tilt+D,E,T);break;default:i=!1}i&&(e.stopPropagation(),t.camera=r)},this._handlePanoramicSuperimposeWheel=e=>{let{view:t}=this.viewModel;if(!t||t.type!==`3d`||!this._panoramicSuperimposeAnchor)return;e.stopPropagation();let r=t.camera.clone();r.position=this._panoramicSuperimposeAnchor.clone(),r.fov=n(r.fov*(e.deltaY>0?S:C),x,b),t.camera=r}}async _computeFeatureFootprint(e,t){let{currentBestFeature:n,view:i}=this.viewModel,a=n?.elevationSample;if(a?.extent&&!a.extent.contains(e.geometry)&&(a=await this.viewModel.processFeatureElevation([e],e.geometry.clone(),t)??a),a){let n=await d(e.geometry.clone(),{elevationSample:a},t);r(t),e.attributes.elevation=n.z}return A(e,i.spatialReference,t)}_enablePanoramicSuperimposeNavigation(e){let{view:t}=this.viewModel;t&&t.type===`3d`&&(this.disablePanoramicSuperimposeNavigation(),this._panoramicSuperimposeAnchor=e.clone(),this._panoramicSuperimposeNavigationHandles=[t.on(`drag`,this._handlePanoramicSuperimposeDrag),t.on(`mouse-wheel`,this._handlePanoramicSuperimposeWheel),t.on(`double-click`,this._handlePanoramicSuperimposeDoubleClick),t.on(`key-down`,this._handlePanoramicSuperimposeKeyDown)])}}async function k(e,t,n,r){return Float64Array.from((await Promise.all(e.reduce((e,t,n)=>{let r=Math.floor(n/3);return e[r]=e[r]??[],e[r].push(t),e},[]).map(async e=>(await s(new o(e,t),n,r)).toArray()))).flat())}const A=async(t,n,i)=>{let{frustum:o}=g(t.attributes),u=o.clone();if(!n.equals(u.spatialReference)){let{components:e,spatialReference:t,origin:o,vertexAttributes:d,vertexSpace:f}=u;if(f.type===`local`){let e=await s(o,n,i);r(i),u.centerAt(e)}else{let o=d.position,s=Float64Array.from(await l([...o],t.clone(),n.clone(),i));r(i),u=new a({vertexAttributes:new c({position:s}),components:e,spatialReference:n.clone()})}}return new e({attributes:{imageID:o.imageID},geometry:u,symbol:_.clone(),visible:!1})},j=e=>{let t=e.vertexAttributes.position,n=0,r=0,i=0,a=t.length/3;for(let e=0;e<t.length;e+=3)n+=t[e],r+=t[e+1],i+=t[e+2];return new o({x:n/a,y:r/a,z:i/a,spatialReference:e.spatialReference})};export{O as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../../../Graphic.js";import n from"../../../core/Accessor.js";import{createTask as r}from"../../../core/asyncUtils.js";import{equalsMaybe as i}from"../../../core/maybe.js";import{throwIfAborted as a}from"../../../core/promiseUtils.js";import{on as o,watch as s,syncAndInitial as c}from"../../../core/reactiveUtils.js";import{property as l,subclass as u}from"../../../core/accessorSupport/decorators.js";import{isSerializable as d}from"../../../core/support/jsonUtils.js";import{projectAsync as f}from"../../../geometry/projectionUtils.js";import{or as p}from"../../../layers/orientedImagery/transformations/utils.js";import{computeTriangulatedVector as m,computeTriangulatedPoint as h}from"../imageMeasurementUtils.js";import{locationSymbol as g,locationSymbol3D as _}from"../symbols.js";import{registryKeys as v}from"../types.js";import{extractHorizonAnglesFromMedia as y}from"../utils.js";import{imageSpaceToPoint as b}from"../support/geometryUtils.js";let x=class extends n{constructor(e){super(e),this.referenceTransformationService=null,this._createImageLocationHandle=()=>{this.oiViewModel.removeHandles(`image-click`);let{imageLocationToolState:e,mode:t,activeViewer:n,currentBestFeature:i,footprintExtent:s,layer:c}=this.oiViewModel,l=n?.imageSize;if(!e||t===`none`||!l||!s||!i)return;this.oiViewModel.clickAction=`pixel-location`;let u=null,d=o(()=>n,`pixel-location`,e=>{let{currentBestFeatureMeasurementImage:o,triangularMeasurementActive:l,activeTriangulatedViewer:d}=this.oiViewModel;if(!e)return;this.oiViewModel.pixelCoordinates=e;let m=o!=null&&!d?.state.includes(`loading`);p(!l,m)&&this._plotLocationPointOnImage(e),u?.abort();let h=r(async r=>{if(!e)return;let o=await this.oiViewModel.getMapPoint(e);a(r);let d=this.oiViewModel.view?.spatialReference;d&&!o.spatialReference.equals(d)&&(o=await f(o,d),a(r)),this.oiViewModel.groundCoordinates=o,this.oiViewModel.groundCoordinatesAccuracy=null,l&&o&&m&&await this._triangulatedLocationWorkflow(o,r);let p=c?.orientationAccuracy;if(!p){u===h&&(this.oiViewModel.groundCoordinatesAccuracyLoading=!1);return}this.oiViewModel.groundCoordinatesAccuracyLoading=!0;let g={pixel:e,currentResult:o,currentBestFeature:i,mode:t,activeViewer:n,footprintExtent:s,accuracyParameters:p,viewSpatialReference:d,signal:r};try{let e=await this.oiViewModel.calculateLocationAccuracy(g);a(r),e&&(this.oiViewModel.groundCoordinatesAccuracy=e)}finally{u===h&&(this.oiViewModel.groundCoordinatesAccuracyLoading=!1)}});u=h});this.oiViewModel.addHandles(d,`image-click`)},this._createTriangularImageLocationHandle=()=>{this.oiViewModel.removeHandles(v.triangularImageClick);let{imageLocationToolState:e,mode:t,activeTriangulatedViewer:n}=this.oiViewModel,i=n?.imageSize;if(!e||t===`none`||!i)return;this.oiViewModel.clickAction=`pixel-location`;let s=null,c=o(()=>n,`pixel-location`,e=>{this.measurementVectors.length===1&&e&&(this._plotLocationPointOnImage(e,!0),s?.abort(),s=r(async t=>{if(!e||this.oiViewModel.triangulatedPoint||this.measurementVectors?.length===2||!this.oiViewModel.currentBestFeatureMeasurementImage)return;let n=await this.referenceTransformationService?.pixelToMapPoint(e);if(a(t),!n)return;let r=this.oiViewModel.view?.spatialReference;r&&!n.spatialReference.equals(r)&&(n=await f(n,r),a(t)),await this._calculateTriangulatedPointFromGroundPoint(n,{signal:t}),a(t)}))});this.oiViewModel.addHandles(c,v.triangularImageClick)}}initialize(){this.addHandles([s(()=>[this.oiViewModel.state,this.oiViewModel.imageLocationToolState,this.oiViewModel.view],(e,t)=>{this._resetMeasurementVectors(),this._createImageLocationHandle(),e[1]?e[1]!==t?.[1]&&this._setMeasurementCursor():(this.oiViewModel.clearPreviousGroundLocation(),this._resetCursor())},c)])}async _calculateTriangulatedPointFromGroundPoint(e,t){if(this.oiViewModel.currentBestFeatureMeasurementImage&&e){let{currentBestFeatureMeasurementImage:n,view:r}=this.oiViewModel,o=m(e,n);o&&this.measurementVectors.push(o);let s=await h(this.measurementVectors);a(t),i(s?.spatialReference,r?.spatialReference)||(s=await f(s,r?.spatialReference)),this.oiViewModel.triangulatedPoint=s??this.oiViewModel.triangulatedPoint}}async _plotReferenceLocationPoint(e,t){if(this.oiViewModel.currentBestFeatureMeasurementImage){let n=await this.referenceTransformationService?.pointToPixel(e,{signal:t});a(t),n&&this._plotLocationPointOnImage(n,!0)}}_plotLocationPointOnImage(e,n=!1){let{activeViewer:r,mode:i,state:a,activeTriangulatedViewer:o}=this.oiViewModel,s=n?o:r;if(a!==`image-loaded`||!s?.imageSize||i!=="default"&&i!==`panoramic`)return;this.oiViewModel.clearLocationPointOnImage(n);let c=d(e)?e.toJSON():e,l=y(s?.media),u=b(c,i,s.imageSize,l),f=new t({geometry:u,symbol:i==="default"?g:_});n?this.oiViewModel.correctedLocationPointOnImage=f:this.oiViewModel.locationPointOnImage=f,s.addGraphic(f,0)}_resetCursor(){let{activeViewer:e,imageMeasurementViewer:t}=this.oiViewModel;e&&this.oiViewModel.removeHandles(v.activeViewerCursorHandles),t&&this.oiViewModel.removeHandles(v.imageViewerCursorHandles)}_resetMeasurementVectors(){this.measurementVectors=[]}_setMeasurementCursor(){let{activeViewer:e,imageMeasurementViewer:t,triangularMeasurementActive:n}=this.oiViewModel;e&&this.oiViewModel.addHandles(e.imageRenderer.acquireCursor(`crosshair`,`high`),v.activeViewerCursorHandles),t&&n&&this.oiViewModel.addHandles(t.imageRenderer.acquireCursor(`crosshair`,`high`),v.activeViewerCursorHandles)}async _triangulatedLocationWorkflow(e,t){if(this.oiViewModel.currentBestFeature&&e){let{currentBestFeature:n}=this.oiViewModel;this.oiViewModel.triangulatedPoint&&(this.measurementVectors=[],this.oiViewModel.triangulatedPoint=null,this.oiViewModel.clearLocationPointOnImage(!0));let r=m(e,n);if(!r)return;this.measurementVectors.push(r),await this._plotReferenceLocationPoint(e,t),a(t),this._createTriangularImageLocationHandle()}}};e([l()],x.prototype,`measurementVectors`,void 0),e([l()],x.prototype,`oiViewModel`,void 0),e([l()],x.prototype,`referenceTransformationService`,void 0),x=e([u(`esri.widgets.OrientedImageryViewer.components.ImageLocationViewModel`)],x);const S=x;export{S as default};
2
+ import{__decorate as e}from"tslib";import t from"../../../Graphic.js";import n from"../../../core/Accessor.js";import{createTask as r}from"../../../core/asyncUtils.js";import{equalsMaybe as i}from"../../../core/maybe.js";import{throwIfAborted as a}from"../../../core/promiseUtils.js";import{on as o,watch as s,syncAndInitial as c}from"../../../core/reactiveUtils.js";import{property as l,subclass as u}from"../../../core/accessorSupport/decorators.js";import{isSerializable as d}from"../../../core/support/jsonUtils.js";import{projectAsync as f}from"../../../geometry/projectionUtils.js";import{or as p}from"../../../layers/orientedImagery/transformations/utils.js";import{computeTriangulatedVector as m,computeTriangulatedPoint as h}from"../imageMeasurementUtils.js";import{locationSymbol as g,locationSymbol3D as _}from"../symbols.js";import{registryKeys as v}from"../types.js";import{extractHorizonAnglesFromMedia as y}from"../utils.js";import{imageSpaceToPoint as b}from"../support/geometryUtils.js";let x=class extends n{constructor(e){super(e),this.referenceTransformationService=null,this._createImageLocationHandle=()=>{this.oiViewModel.removeHandles(`image-click`);let{imageLocationToolState:e,mode:t,activeViewer:n,currentBestFeature:i,footprintExtent:s}=this.oiViewModel,c=n?.imageSize;if(!e||t===`none`||!c||!s||!i)return;this.oiViewModel.clickAction=`pixel-location`;let l=null,u=o(()=>n,`pixel-location`,e=>{let{currentBestFeatureMeasurementImage:o,triangularMeasurementActive:c,activeTriangulatedViewer:u}=this.oiViewModel;if(!e)return;this.oiViewModel.pixelCoordinates=e;let d=o!=null&&!u?.state.includes(`loading`);p(!c,d)&&this._plotLocationPointOnImage(e),l?.abort();let m=r(async r=>{if(!e)return;let o=await this.oiViewModel.getMapPoint(e);a(r);let u=this.oiViewModel.view?.spatialReference;u&&!o.spatialReference.equals(u)&&(o=await f(o,u),a(r)),this.oiViewModel.groundCoordinates=o,this.oiViewModel.groundCoordinatesAccuracy=null,c&&o&&d&&await this._triangulatedLocationWorkflow(o,r);let p=i.attributes.orientationAccuracy;if(!p){l===m&&(this.oiViewModel.groundCoordinatesAccuracyLoading=!1);return}this.oiViewModel.groundCoordinatesAccuracyLoading=!0;let h={pixel:e,currentResult:o,currentBestFeature:i,mode:t,activeViewer:n,footprintExtent:s,accuracyParameters:p,viewSpatialReference:u,signal:r};try{let e=await this.oiViewModel.calculateLocationAccuracy(h);a(r),e&&(this.oiViewModel.groundCoordinatesAccuracy=e)}finally{l===m&&(this.oiViewModel.groundCoordinatesAccuracyLoading=!1)}});l=m});this.oiViewModel.addHandles(u,`image-click`)},this._createTriangularImageLocationHandle=()=>{this.oiViewModel.removeHandles(v.triangularImageClick);let{imageLocationToolState:e,mode:t,activeTriangulatedViewer:n}=this.oiViewModel,i=n?.imageSize;if(!e||t===`none`||!i)return;this.oiViewModel.clickAction=`pixel-location`;let s=null,c=o(()=>n,`pixel-location`,e=>{this.measurementVectors.length===1&&e&&(this._plotLocationPointOnImage(e,!0),s?.abort(),s=r(async t=>{if(!e||this.oiViewModel.triangulatedPoint||this.measurementVectors?.length===2||!this.oiViewModel.currentBestFeatureMeasurementImage)return;let n=await this.referenceTransformationService?.pixelToMapPoint(e);if(a(t),!n)return;let r=this.oiViewModel.view?.spatialReference;r&&!n.spatialReference.equals(r)&&(n=await f(n,r),a(t)),await this._calculateTriangulatedPointFromGroundPoint(n,{signal:t}),a(t)}))});this.oiViewModel.addHandles(c,v.triangularImageClick)}}initialize(){this.addHandles([s(()=>[this.oiViewModel.state,this.oiViewModel.imageLocationToolState,this.oiViewModel.view],(e,t)=>{this._resetMeasurementVectors(),this._createImageLocationHandle(),e[1]?e[1]!==t?.[1]&&this._setMeasurementCursor():(this.oiViewModel.clearPreviousGroundLocation(),this._resetCursor())},c)])}async _calculateTriangulatedPointFromGroundPoint(e,t){if(this.oiViewModel.currentBestFeatureMeasurementImage&&e){let{currentBestFeatureMeasurementImage:n,view:r}=this.oiViewModel,o=m(e,n);o&&this.measurementVectors.push(o);let s=await h(this.measurementVectors);a(t),i(s?.spatialReference,r?.spatialReference)||(s=await f(s,r?.spatialReference)),this.oiViewModel.triangulatedPoint=s??this.oiViewModel.triangulatedPoint}}async _plotReferenceLocationPoint(e,t){if(this.oiViewModel.currentBestFeatureMeasurementImage){let n=await this.referenceTransformationService?.pointToPixel(e,{signal:t});a(t),n&&this._plotLocationPointOnImage(n,!0)}}_plotLocationPointOnImage(e,n=!1){let{activeViewer:r,mode:i,state:a,activeTriangulatedViewer:o}=this.oiViewModel,s=n?o:r;if(a!==`image-loaded`||!s?.imageSize||i!=="default"&&i!==`panoramic`)return;this.oiViewModel.clearLocationPointOnImage(n);let c=d(e)?e.toJSON():e,l=y(s?.media),u=b(c,i,s.imageSize,l),f=new t({geometry:u,symbol:i==="default"?g:_});n?this.oiViewModel.correctedLocationPointOnImage=f:this.oiViewModel.locationPointOnImage=f,s.addGraphic(f,0)}_resetCursor(){let{activeViewer:e,imageMeasurementViewer:t}=this.oiViewModel;e&&this.oiViewModel.removeHandles(v.activeViewerCursorHandles),t&&this.oiViewModel.removeHandles(v.imageViewerCursorHandles)}_resetMeasurementVectors(){this.measurementVectors=[]}_setMeasurementCursor(){let{activeViewer:e,imageMeasurementViewer:t,triangularMeasurementActive:n}=this.oiViewModel;e&&this.oiViewModel.addHandles(e.imageRenderer.acquireCursor(`crosshair`,`high`),v.activeViewerCursorHandles),t&&n&&this.oiViewModel.addHandles(t.imageRenderer.acquireCursor(`crosshair`,`high`),v.activeViewerCursorHandles)}async _triangulatedLocationWorkflow(e,t){if(this.oiViewModel.currentBestFeature&&e){let{currentBestFeature:n}=this.oiViewModel;this.oiViewModel.triangulatedPoint&&(this.measurementVectors=[],this.oiViewModel.triangulatedPoint=null,this.oiViewModel.clearLocationPointOnImage(!0));let r=m(e,n);if(!r)return;this.measurementVectors.push(r),await this._plotReferenceLocationPoint(e,t),a(t),this._createTriangularImageLocationHandle()}}};e([l()],x.prototype,`measurementVectors`,void 0),e([l()],x.prototype,`oiViewModel`,void 0),e([l()],x.prototype,`referenceTransformationService`,void 0),x=e([u(`esri.widgets.OrientedImageryViewer.components.ImageLocationViewModel`)],x);const S=x;export{S as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{loadCalciteComponents as e}from"../../support/componentsUtils.js";import{tsx as t}from"../../support/widget.js";function n(){return e({action:()=>import(`@esri/calcite-components/dist/components/calcite-action`),"action-bar":()=>import(`@esri/calcite-components/dist/components/calcite-action-bar`)})}function r(e){let{expandDisabled:n,layout:r,overlayPositioning:i,actions:a}=e;return t(`calcite-action-bar`,{expandDisabled:n,floating:!0,layout:r,overlayPositioning:i,slot:`fab`},a.map(e=>t(`calcite-action`,{icon:e.icon,key:e.title,scale:e.scale,text:e.text,title:e.title,onclick:e.onclick})))}function i(e){let{uiStrings:n,layout:i,onNext:a,onPrev:o}=e;return t(r,{actions:[{icon:`chevron-left`,scale:`s`,text:n.previous,title:n.previous,onclick:o},{icon:`chevron-right`,scale:`s`,text:n.next,title:n.next,onclick:a}],expandDisabled:!0,layout:i,overlayPositioning:`fixed`})}export{r as FloatingActionBar,i as SequentialNavigationUI,n as loadSequentialNavigationUIComponents};
2
+ import{loadCalciteComponents as e}from"../../support/componentsUtils.js";import{tsx as t}from"../../support/widget.js";function n(){return e({action:()=>import(`@esri/calcite-components/dist/components/calcite-action`),"action-bar":()=>import(`@esri/calcite-components/dist/components/calcite-action-bar`)})}function r(e){let{expandDisabled:n,layout:r,overlayPositioning:i,actions:a}=e;return t(`calcite-action-bar`,{expandToggleDisabled:n,floating:!0,layout:r,overlayPositioning:i,slot:`fab`},a.map(e=>t(`calcite-action`,{icon:e.icon,key:e.title,scale:e.scale,text:e.text,title:e.title,onclick:e.onclick})))}function i(e){let{uiStrings:n,layout:i,onNext:a,onPrev:o}=e;return t(r,{actions:[{icon:`chevron-left`,scale:`s`,text:n.previous,title:n.previous,onclick:o},{icon:`chevron-right`,scale:`s`,text:n.next,title:n.next,onclick:a}],expandDisabled:!0,layout:i,overlayPositioning:`fixed`})}export{r as FloatingActionBar,i as SequentialNavigationUI,n as loadSequentialNavigationUIComponents};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{property as t,subclass as n}from"../../../core/accessorSupport/decorators.js";import{get as r}from"../../../core/accessorSupport/get.js";import i from"../../Widget.js";import{loadCalciteComponents as a}from"../../support/componentsUtils.js";import{tsx as o}from"../../support/widget.js";const s={point:()=>[l(`pin`,`point`,`draw.point`),l(`line`,`polyline`,`draw.polyline`),l(`polygon`,`polygon`,`draw.polygon`)],polyline:()=>[l(`line`,`polyline`,`draw.polyline`)],polygon:()=>[l(`polygon`,`polygon`,`draw.polygon`)]};let c=class extends i{constructor(e){super(e),this.messages=null,this.type=null}loadDependencies(){return a({"action-bar":()=>import(`@esri/calcite-components/dist/components/calcite-action-bar`),"action-group":()=>import(`@esri/calcite-components/dist/components/calcite-action-group`),action:()=>import(`@esri/calcite-components/dist/components/calcite-action`)})}static{this.vnodeSelector=`calcite-action-bar`}render(){let{messages:e,type:t}=this,n=u(t);return o(`calcite-action-bar`,{expandDisabled:!0,floating:!0,layout:`horizontal`,position:`start`},n.map(({icon:t,messageKey:n,action:i})=>{let a=r(e,n);return o(`calcite-action-group`,null,o(`calcite-action`,{alignment:`center`,bind:this,"data-action":i,icon:t,text:a,title:a,onclick:this.onAction}))}))}};e([t()],c.prototype,`messages`,void 0),e([t()],c.prototype,`onAction`,void 0),e([t()],c.prototype,`type`,void 0),c=e([n(`esri.widgets.OrientedImageryViewer.components.SketchTools`)],c);function l(e,t,n){return{icon:e,messageKey:n,action:`draw-${t}`}}function u(e){return[{icon:`cursor`,messageKey:`selectFeature`,action:`select-feature`},...s[e]?.()??[],{icon:`save`,messageKey:`save`,action:`save`},{icon:`trash`,messageKey:`delete`,action:`delete-feature`}]}const d=c;export{d as default};
2
+ import{__decorate as e}from"tslib";import{property as t,subclass as n}from"../../../core/accessorSupport/decorators.js";import{get as r}from"../../../core/accessorSupport/get.js";import i from"../../Widget.js";import{loadCalciteComponents as a}from"../../support/componentsUtils.js";import{tsx as o}from"../../support/widget.js";const s={point:()=>[l(`pin`,`point`,`draw.point`),l(`line`,`polyline`,`draw.polyline`),l(`polygon`,`polygon`,`draw.polygon`)],polyline:()=>[l(`line`,`polyline`,`draw.polyline`)],polygon:()=>[l(`polygon`,`polygon`,`draw.polygon`)]};let c=class extends i{constructor(e){super(e),this.messages=null,this.type=null}loadDependencies(){return a({"action-bar":()=>import(`@esri/calcite-components/dist/components/calcite-action-bar`),"action-group":()=>import(`@esri/calcite-components/dist/components/calcite-action-group`),action:()=>import(`@esri/calcite-components/dist/components/calcite-action`)})}static{this.vnodeSelector=`calcite-action-bar`}render(){let{messages:e,type:t}=this,n=u(t);return o(`calcite-action-bar`,{expandToggleDisabled:!0,floating:!0,layout:`horizontal`,position:`start`},n.map(({icon:t,messageKey:n,action:i})=>{let a=r(e,n);return o(`calcite-action-group`,null,o(`calcite-action`,{alignment:`center`,bind:this,"data-action":i,icon:t,text:a,title:a,onclick:this.onAction}))}))}};e([t()],c.prototype,`messages`,void 0),e([t()],c.prototype,`onAction`,void 0),e([t()],c.prototype,`type`,void 0),c=e([n(`esri.widgets.OrientedImageryViewer.components.SketchTools`)],c);function l(e,t,n){return{icon:e,messageKey:n,action:`draw-${t}`}}function u(e){return[{icon:`cursor`,messageKey:`selectFeature`,action:`select-feature`},...s[e]?.()??[],{icon:`save`,messageKey:`save`,action:`save`},{icon:`trash`,messageKey:`delete`,action:`delete-feature`}]}const d=c;export{d as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{throwIfAborted as e}from"../../../core/promiseUtils.js";import{open as t}from"../../../core/workers.js";import n from"../../../geometry/Point.js";import{projectAsync as r}from"../../../geometry/projectionUtils.js";import{imageToWorld as i,imageToWorldPanoramic as a}from"../../../layers/orientedImagery/transformations/imageToWorld.js";import{convertSphereVertexToPixelLocation as o}from"../../../layers/orientedImagery/transformations/utils.js";import{getMeasurementProperties as s,pixelAreaMeasurement2D as c,pixelDistanceMeasurement2D as l,getRootOfSumOfSquaredErrors as u,heightMeasurementPanoramic as d,heightMeasurement2D as f,getMeasurementPropertiesPanoramic as p,calculateLocationAccuracyFromDeviations as m,pixelAreaMeasurementPanoramic as h,pixelDistanceMeasurementPanoramic as g,computeTriangulatedAreaMeasurement as _,computeTriangulatedDistanceMeasurement as v,getModeCorrectedPoints as y,computeTriangulatedVector as b}from"../imageMeasurementUtils.js";import{extractHorizonAnglesFromMedia as x}from"../utils.js";class S{constructor(e){this.referenceTransformationService=null,this.measurementVectors=[],this._connection=null,this.transformationService=e.transformationService,this.referenceTransformationService=e.referenceTransformationService}async _load(){this._connection??=await t(`ImageMeasurementWorker`)}async calculateAccuracy(t){await this._load();let{measurementArray:r,measurementType:i,currentBestFeature:a,currentBestFeatureMeasurementImage:o,activeViewer:d,imageSize:f,layer:p,triangularMeasurementActive:m,footprintExtent:h,signal:g}=t,_=p?.orientationAccuracy,v=_?.every(e=>e===0)||!_?.length;if(i===`area`&&r.length<3||i===`distance`&&r.length<2||!a||!d?.imageSize||v)return null;let y=null;if(m&&o&&f?y=await s(o,f,h):(y=await s(a,d?.imageSize,h),e(g)),!y)return null;let b=i===`area`?await c(r,y,!0):await l([r.at(0),r.at(-1)],y,!0);e(g);let{updateElevationProps:x}=y,S=this.getWorkerMethodProps(y,_),C=await this._connection?.invoke(`generateCombinationsWorker`,S,{signal:g});if(e(g),!C?.length)return null;let w=C.map(async t=>{let a={...t,cameraLocation:new n(t.cameraLocation),updateElevationProps:x},o=i===`area`?await c(r,a,!0):await l([r.at(0),r.at(-1)],a,!0);if(e(g),o&&b){if(i===`area`){let e=typeof o==`number`?null:o.area;return e?Math.abs(e-b.area):null}return Math.abs(o-b)}return null}),T=await Promise.all(w);e(g);let E=T.filter(e=>e!==null);return E.length===0?null:u(E)}async calculateHeightAccuracy(e){await this._load();let{mode:t,pixelObj:n,accuracyParameters:r,height:i,properties:a,currentBestFeature:o,signal:s}=e;return t===`panoramic`?this.calculateHeightAccuracyPanoramic(r,n,a,i,o,s):this.calculateHeightAccuracy2D(r,n,a,i,s)}async calculateHeightAccuracyPanoramic(t,r,i,a,o,s){if(r.length<2||!a||!i||!t||!o)throw Error(`Missing parameters`);let c=this.getWorkerMethodProps(i,t),l=await this._connection?.invoke(`generateCombinationsPanoramicWorker`,c,{signal:s});if(e(s),!l?.length)return null;let u=r.map(e=>[e.x,e.y]),f=u.at(0),p=u.at(-1),m=l.map(e=>(e.cameraLocation=new n(e.cameraLocation),d([f,p],e,t,o,!0,!1,s))),h=await Promise.all(m);e(s);let g=0;for(let e of h){if(!e)return 0;let t=Math.abs(e-a);g=Math.max(t,g)}return g}async calculateHeightAccuracy2D(t,r,i,a,o){if(r.length<2||!a||!i||!t)throw Error(`Missing parameters`);let s=this.getWorkerMethodProps(i,t),c=await this._connection?.invoke(`generateCombinationsWorker`,s,{signal:o});if(e(o),!c?.length)return null;let l=r.map(e=>[e.x,e.y]),u=l.at(0),d=l.at(-1);if(!u||!d)return null;let p=c.map(e=>(e.cameraLocation=new n(e.cameraLocation),f([u,d],e,t,!0,!1,o))),m=await Promise.all(p);e(o);let h=0;for(let e of m){if(!e)return 0;let t=Math.abs(e-a);h=Math.max(t,h)}return h}async calculateLocationAccuracy(t){await this._load();let{pixel:o,currentResult:c,currentBestFeature:l,mode:u,activeViewer:d,footprintExtent:f,accuracyParameters:h,viewSpatialReference:g,signal:_}=t,v=u??`default`,y=g??null,b=v==="default"?await s(l,d?.imageSize,f):await p(l,d?.imageSize,f);if(e(_),!b)return null;let{updateElevationProps:x}=b,S=v==="default"?`generateCombinationsWorker`:`generateCombinationsPanoramicWorker`,C=this.getWorkerMethodProps(b,h),w=await this._connection?.invoke(S,C,{signal:_});if(e(_),!w?.length)return null;let T=w.map(async t=>{let{...s}={...t,cameraLocation:new n(t.cameraLocation)},l=v==="default"?await i(o,s,x):await a(o,s,x);return e(_),y&&!l.spatialReference.equals(y)&&(l=await r(l,y),e(_)),l&&c?[Math.abs(l.x-c.x),Math.abs(l.y-c.y),l.z&&c.z?Math.abs(l.z-c.z):0]:null}),E=await Promise.all(T);if(e(_),!E?.length)return null;let D=E.map(e=>[e?.[0]??0,e?.[1]??0,e?.[2]??0]),[O,k,A]=m(D);return{x:O,y:k,z:A}}async calculateAccuracyPanoramic(t){await this._load();let{measurementArray:r,measurementType:i,secondaryViewer:a,currentBestFeature:o,currentBestFeatureMeasurementImage:s,activeViewer:c,activeTriangulatedViewer:l,layer:d,footprintExtent:f,signal:m}=t,_=a??!1,v=d?.orientationAccuracy,y=v?.every(e=>e===0)||!v?.length;if(i===`area`&&r.length<3||i===`distance`&&r.length<2||!o||!c?.imageSize||y)return null;let b=l?.imageSize,x=_&&s&&b?await p(s,b,f):await p(o,c?.imageSize,f);if(e(m),!x)return null;let S=i===`area`?await h(r,x,!0):await g([r.at(0),r.at(-1)],x,!0);e(m);let{updateElevationProps:C}=x,w=this.getWorkerMethodProps(x,v),T=await this._connection?.invoke(`generateCombinationsPanoramicWorker`,w,{signal:m});if(e(m),!T?.length)return null;let E=T.map(async t=>{let a={...t,cameraLocation:new n(t.cameraLocation),updateElevationProps:C},o=i===`area`?await h(r,a,!0):await g([r.at(0),r.at(-1)],a,!0);if(e(m),o&&S){if(i===`area`){let e=typeof o==`number`?null:o.area;return e?Math.abs(e-S.area):null}return Math.abs(o-S)}return null}),D=await Promise.all(E);e(m);let O=D.filter(e=>e!==null);return O.length===0?null:u(O)}async calculateTriangulatedMeasurements(e){let{pixels:t,measureType:n,currentBestFeature:r,currentBestFeatureMeasurementImage:i,activeViewer:a,activeTriangulatedViewer:s,mode:c,imageSize:l,layer:u,footprintExtent:d}=e;if(!s?.imageSize)return;let[f,p]=s.imageSize;switch(n){case`distance`:{let e=await v(this.measurementVectors),n=t.map(([e,t,n])=>o({x:e,y:t,z:n},f,p)).map(({x:e,y:t})=>[e,t]),m={measurementArray:t,measurementType:`distance`,currentBestFeature:r,currentBestFeatureMeasurementImage:i,activeViewer:a,imageSize:l,layer:u,triangularMeasurementActive:!0,footprintExtent:d},h={measurementArray:n,measurementType:`distance`,secondaryViewer:!0,currentBestFeature:r,currentBestFeatureMeasurementImage:i,activeViewer:a,activeTriangulatedViewer:s,layer:u,footprintExtent:d},g=c==="default"?await this.calculateAccuracy(m):await this.calculateAccuracyPanoramic(h);if(g&&e?.distance)return{distance:e,accuracy:{distanceAccuracy:g,angleAccuracy:Math.atan(g/e.distance)}};break}case`area`:if(i?.geometry.spatialReference){let e=await _(this.measurementVectors,i.geometry.spatialReference),n=null;if(c==="default"){let e={measurementArray:t,measurementType:`area`,currentBestFeature:r,currentBestFeatureMeasurementImage:i,activeViewer:a,imageSize:l,layer:u,triangularMeasurementActive:!0,footprintExtent:d},o=await this.calculateAccuracy(e);o&&(n=o)}else if(c===`panoramic`){let e={measurementArray:t.map(([e,t,n])=>o({x:e,y:t,z:n},f,p)).map(({x:e,y:t})=>[e,t]),measurementType:`area`,secondaryViewer:!0,currentBestFeature:r,currentBestFeatureMeasurementImage:i,activeViewer:a,activeTriangulatedViewer:s,layer:u,footprintExtent:d},c=await this.calculateAccuracyPanoramic(e);c&&(n=c)}return{area:e,accuracy:n}}}c===`panoramic`&&s.viewModel.restoreNavigationHandles()}async computeMeasurementVector(e){let{pixels:t,activeFeature:n,activeViewer:i,mode:a,spatialReference:o}=e,s=i?.imageSize,c=x(i?.media);if(!t||!n||!s)return;let l=y(t,a,s,c).map(async e=>{let t={x:e[0],y:e[1]},n=null;return n=this.measurementVectors.length===0?await this.transformationService.pixelToMapPoint(t):await this.referenceTransformationService?.pixelToMapPoint(t),n?(o&&!n.spatialReference.equals(o)&&(n=await r(n,o)),n):null}),u=(await Promise.all(l)).filter(e=>e!==null);return b(u,n)}resetMeasurementVectors(){this.measurementVectors=[]}async updateMeasurementVectorsArray(e){let{activeFeature:t}=e;if(t){let t=await this.computeMeasurementVector(e);t&&this.measurementVectors.push(t)}}getWorkerMethodProps(e,t){let{updateElevationProps:n,...r}=e;return{imageToWorldProps:{...r,cameraLocation:r.cameraLocation.toJSON()},accuracyParameters:t}}}export{S as ImageMeasurementService};
2
+ import{throwIfAborted as e}from"../../../core/promiseUtils.js";import{open as t}from"../../../core/workers.js";import n from"../../../geometry/Point.js";import{projectAsync as r}from"../../../geometry/projectionUtils.js";import{imageToWorld as i,imageToWorldPanoramic as a}from"../../../layers/orientedImagery/transformations/imageToWorld.js";import{convertSphereVertexToPixelLocation as o}from"../../../layers/orientedImagery/transformations/utils.js";import{getMeasurementProperties as s,pixelAreaMeasurement2D as c,pixelDistanceMeasurement2D as l,getRootOfSumOfSquaredErrors as u,heightMeasurementPanoramic as d,heightMeasurement2D as f,getMeasurementPropertiesPanoramic as p,calculateLocationAccuracyFromDeviations as m,pixelAreaMeasurementPanoramic as h,pixelDistanceMeasurementPanoramic as g,computeTriangulatedAreaMeasurement as _,computeTriangulatedDistanceMeasurement as v,getModeCorrectedPoints as y,computeTriangulatedVector as b}from"../imageMeasurementUtils.js";import{extractHorizonAnglesFromMedia as x}from"../utils.js";class S{constructor(e){this.referenceTransformationService=null,this.measurementVectors=[],this._connection=null,this.transformationService=e.transformationService,this.referenceTransformationService=e.referenceTransformationService}async _load(){this._connection??=await t(`ImageMeasurementWorker`)}async calculateAccuracy(t){await this._load();let{measurementArray:r,measurementType:i,currentBestFeature:a,currentBestFeatureMeasurementImage:o,activeViewer:d,imageSize:f,triangularMeasurementActive:p,footprintExtent:m,signal:h}=t,g=(p&&o&&f?o:a)?.attributes.orientationAccuracy,_=!g||g.every(e=>e===0);if(i===`area`&&r.length<3||i===`distance`&&r.length<2||!a||!d?.imageSize||_)return null;let v=null;if(p&&o&&f?v=await s(o,f,m):(v=await s(a,d?.imageSize,m),e(h)),!v)return null;let y=i===`area`?await c(r,v,!0):await l([r.at(0),r.at(-1)],v,!0);e(h);let{updateElevationProps:b}=v,x=this.getWorkerMethodProps(v,g),S=await this._connection?.invoke(`generateCombinationsWorker`,x,{signal:h});if(e(h),!S?.length)return null;let C=S.map(async t=>{let a={...t,cameraLocation:new n(t.cameraLocation),updateElevationProps:b},o=i===`area`?await c(r,a,!0):await l([r.at(0),r.at(-1)],a,!0);if(e(h),o&&y){if(i===`area`){let e=typeof o==`number`?null:o.area;return e?Math.abs(e-y.area):null}return Math.abs(o-y)}return null}),w=await Promise.all(C);e(h);let T=w.filter(e=>e!==null);return T.length===0?null:u(T)}async calculateHeightAccuracy(e){await this._load();let{mode:t,pixelObj:n,accuracyParameters:r,height:i,properties:a,currentBestFeature:o,signal:s}=e;return t===`panoramic`?this.calculateHeightAccuracyPanoramic(r,n,a,i,o,s):this.calculateHeightAccuracy2D(r,n,a,i,s)}async calculateHeightAccuracyPanoramic(t,r,i,a,o,s){if(r.length<2||!a||!i||!t||!o)throw Error(`Missing parameters`);let c=this.getWorkerMethodProps(i,t),l=await this._connection?.invoke(`generateCombinationsPanoramicWorker`,c,{signal:s});if(e(s),!l?.length)return null;let u=r.map(e=>[e.x,e.y]),f=u.at(0),p=u.at(-1),m=l.map(e=>(e.cameraLocation=new n(e.cameraLocation),d([f,p],e,t,o,!0,!1,s))),h=await Promise.all(m);e(s);let g=0;for(let e of h){if(!e)return 0;let t=Math.abs(e-a);g=Math.max(t,g)}return g}async calculateHeightAccuracy2D(t,r,i,a,o){if(r.length<2||!a||!i||!t)throw Error(`Missing parameters`);let s=this.getWorkerMethodProps(i,t),c=await this._connection?.invoke(`generateCombinationsWorker`,s,{signal:o});if(e(o),!c?.length)return null;let l=r.map(e=>[e.x,e.y]),u=l.at(0),d=l.at(-1);if(!u||!d)return null;let p=c.map(e=>(e.cameraLocation=new n(e.cameraLocation),f([u,d],e,t,!0,!1,o))),m=await Promise.all(p);e(o);let h=0;for(let e of m){if(!e)return 0;let t=Math.abs(e-a);h=Math.max(t,h)}return h}async calculateLocationAccuracy(t){await this._load();let{pixel:o,currentResult:c,currentBestFeature:l,mode:u,activeViewer:d,footprintExtent:f,accuracyParameters:h,viewSpatialReference:g,signal:_}=t,v=u??`default`,y=g??null,b=v==="default"?await s(l,d?.imageSize,f):await p(l,d?.imageSize,f);if(e(_),!b)return null;let{updateElevationProps:x}=b,S=v==="default"?`generateCombinationsWorker`:`generateCombinationsPanoramicWorker`,C=this.getWorkerMethodProps(b,h),w=await this._connection?.invoke(S,C,{signal:_});if(e(_),!w?.length)return null;let T=w.map(async t=>{let{...s}={...t,cameraLocation:new n(t.cameraLocation)},l=v==="default"?await i(o,s,x):await a(o,s,x);return e(_),y&&!l.spatialReference.equals(y)&&(l=await r(l,y),e(_)),l&&c?[Math.abs(l.x-c.x),Math.abs(l.y-c.y),l.z&&c.z?Math.abs(l.z-c.z):0]:null}),E=await Promise.all(T);if(e(_),!E?.length)return null;let D=E.map(e=>[e?.[0]??0,e?.[1]??0,e?.[2]??0]),[O,k,A]=m(D);return{x:O,y:k,z:A}}async calculateAccuracyPanoramic(t){await this._load();let{measurementArray:r,measurementType:i,secondaryViewer:a,currentBestFeature:o,currentBestFeatureMeasurementImage:s,activeViewer:c,activeTriangulatedViewer:l,footprintExtent:d,signal:f}=t,m=a??!1,_=(m&&s&&l?.imageSize?s:o)?.attributes.orientationAccuracy,v=!_||_.every(e=>e===0);if(i===`area`&&r.length<3||i===`distance`&&r.length<2||!o||!c?.imageSize||v)return null;let y=l?.imageSize,b=m&&s&&y?await p(s,y,d):await p(o,c?.imageSize,d);if(e(f),!b)return null;let x=i===`area`?await h(r,b,!0):await g([r.at(0),r.at(-1)],b,!0);e(f);let{updateElevationProps:S}=b,C=this.getWorkerMethodProps(b,_),w=await this._connection?.invoke(`generateCombinationsPanoramicWorker`,C,{signal:f});if(e(f),!w?.length)return null;let T=w.map(async t=>{let a={...t,cameraLocation:new n(t.cameraLocation),updateElevationProps:S},o=i===`area`?await h(r,a,!0):await g([r.at(0),r.at(-1)],a,!0);if(e(f),o&&x){if(i===`area`){let e=typeof o==`number`?null:o.area;return e?Math.abs(e-x.area):null}return Math.abs(o-x)}return null}),E=await Promise.all(T);e(f);let D=E.filter(e=>e!==null);return D.length===0?null:u(D)}async calculateTriangulatedMeasurements(e){let{pixels:t,measureType:n,currentBestFeature:r,currentBestFeatureMeasurementImage:i,activeViewer:a,activeTriangulatedViewer:s,mode:c,imageSize:l,footprintExtent:u}=e;if(!s?.imageSize)return;let[d,f]=s.imageSize;switch(n){case`distance`:{let e=await v(this.measurementVectors),n=t.map(([e,t,n])=>o({x:e,y:t,z:n},d,f)).map(({x:e,y:t})=>[e,t]),p={measurementArray:t,measurementType:`distance`,currentBestFeature:r,currentBestFeatureMeasurementImage:i,activeViewer:a,imageSize:l,triangularMeasurementActive:!0,footprintExtent:u},m={measurementArray:n,measurementType:`distance`,secondaryViewer:!0,currentBestFeature:r,currentBestFeatureMeasurementImage:i,activeViewer:a,activeTriangulatedViewer:s,footprintExtent:u},h=c==="default"?await this.calculateAccuracy(p):await this.calculateAccuracyPanoramic(m);if(h&&e?.distance)return{distance:e,accuracy:{distanceAccuracy:h,angleAccuracy:Math.atan(h/e.distance)}};break}case`area`:if(i?.geometry.spatialReference){let e=await _(this.measurementVectors,i.geometry.spatialReference),n=null;if(c==="default"){let e={measurementArray:t,measurementType:`area`,currentBestFeature:r,currentBestFeatureMeasurementImage:i,activeViewer:a,imageSize:l,triangularMeasurementActive:!0,footprintExtent:u},o=await this.calculateAccuracy(e);o&&(n=o)}else if(c===`panoramic`){let e={measurementArray:t.map(([e,t,n])=>o({x:e,y:t,z:n},d,f)).map(({x:e,y:t})=>[e,t]),measurementType:`area`,secondaryViewer:!0,currentBestFeature:r,currentBestFeatureMeasurementImage:i,activeViewer:a,activeTriangulatedViewer:s,footprintExtent:u},c=await this.calculateAccuracyPanoramic(e);c&&(n=c)}return{area:e,accuracy:n}}}c===`panoramic`&&s.viewModel.restoreNavigationHandles()}async computeMeasurementVector(e){let{pixels:t,activeFeature:n,activeViewer:i,mode:a,spatialReference:o}=e,s=i?.imageSize,c=x(i?.media);if(!t||!n||!s)return;let l=y(t,a,s,c).map(async e=>{let t={x:e[0],y:e[1]},n=null;return n=this.measurementVectors.length===0?await this.transformationService.pixelToMapPoint(t):await this.referenceTransformationService?.pixelToMapPoint(t),n?(o&&!n.spatialReference.equals(o)&&(n=await r(n,o)),n):null}),u=(await Promise.all(l)).filter(e=>e!==null);return b(u,n)}resetMeasurementVectors(){this.measurementVectors=[]}async updateMeasurementVectorsArray(e){let{activeFeature:t}=e;if(t){let t=await this.computeMeasurementVector(e);t&&this.measurementVectors.push(t)}}getWorkerMethodProps(e,t){let{updateElevationProps:n,...r}=e;return{imageToWorldProps:{...r,cameraLocation:r.cameraLocation.toJSON()},accuracyParameters:t}}}export{S as ImageMeasurementService};
@@ -1,3 +1,6 @@
1
+ import type Point from "../../geometry/Point.js";
2
+ import type { AbortOptions } from "../../core/promiseUtils.js";
3
+
1
4
  /**
2
5
  * @deprecated since version 5.0. Use the [Oriented Imagery Viewer](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-oriented-imagery-viewer/) component instead. For information on widget deprecation, read about [Esri's move to web components](https://developers.arcgis.com/javascript/latest/components-transition-plan/).
3
6
  * @since 5.1
@@ -38,4 +41,21 @@ export interface LocationInImageSpace {
38
41
  * @since 5.0
39
42
  */
40
43
  y: number;
44
+ }
45
+
46
+ /**
47
+ * Options for displaying the image corresponding to a specific object ID.
48
+ *
49
+ * @since 5.2
50
+ */
51
+ export interface ShowImageByObjectIdOptions extends AbortOptions {
52
+ /**
53
+ * Provide this point to locate features around this point after loading the image.
54
+ *
55
+ * > [!Note]
56
+ * > The selected point must be visible from the image corresponding to the specified object ID.
57
+ *
58
+ * @internal
59
+ */
60
+ selectedPoint?: Point;
41
61
  }
@@ -7,7 +7,7 @@ import type { Icon } from "@esri/calcite-components/components/calcite-icon";
7
7
  import type { AbortOptions } from "../core/promiseUtils.js";
8
8
  import type { MapViewOrSceneView } from "../views/MapViewOrSceneView.js";
9
9
  import type { ObjectId } from "../views/types.js";
10
- import type { OrientedImageryViewerViewModelEvents } from "./OrientedImageryViewer/types.js";
10
+ import type { OrientedImageryViewerViewModelEvents, ShowImageByObjectIdOptions } from "./OrientedImageryViewer/types.js";
11
11
  import type { OrientedImageryViewerVisibleElementsProperties } from "./OrientedImageryViewer/OrientedImageryViewerVisibleElements.js";
12
12
  import type { WidgetProperties } from "./Widget.js";
13
13
 
@@ -247,4 +247,12 @@ export default class OrientedImageryViewer extends Widget {
247
247
  * @since 4.34
248
248
  */
249
249
  reset(): void;
250
+ /**
251
+ * Displays the image corresponding to the specified object ID.
252
+ *
253
+ * @param objectId - The object ID of the image to display.
254
+ * @param options - Optional parameters for displaying the image.
255
+ * @since 5.2
256
+ */
257
+ showImageByObjectId(objectId: ObjectId, options?: ShowImageByObjectIdOptions): Promise<void>;
250
258
  }
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../Camera.js";import{property as n,subclass as r}from"../core/accessorSupport/decorators.js";import i from"./Widget.js";import a from"./PanoramicViewer/PanoramicVideoViewerViewModel.js";import{loadCalciteComponents as o}from"./support/componentsUtils.js";import{globalCss as s}from"./support/globalCss.js";import{tsx as c,messageBundle as l,vmEvent as u}from"./support/widget.js";const d=`esri-panoramic-viewer`,f=`${d}__slider-container`;let p=class extends i{constructor(e){super(e),this.messagesCommon=null,this.viewModel=new a,this._afterContainerCreate=e=>{this.imageRenderer.container=e},this.addGraphic=(e,t)=>{this.viewModel.addGraphic(e,t)},this.addManyGraphics=e=>{this.viewModel.addManyGraphics(e)},this.clearGraphics=()=>{this.viewModel.clearGraphics()},this.clearImage=()=>{this.viewModel.clearImage()},this.loadVideo=e=>this.viewModel.loadVideo(e),this.removeGraphic=e=>{this.viewModel.removeGraphic(e)},this.removeManyGraphics=e=>{this.viewModel.removeManyGraphics(e)}}loadDependencies(){return o({panel:()=>import(`@esri/calcite-components/dist/components/calcite-panel`),"action-bar":()=>import(`@esri/calcite-components/dist/components/calcite-action-bar`),"action-group":()=>import(`@esri/calcite-components/dist/components/calcite-action-group`),action:()=>import(`@esri/calcite-components/dist/components/calcite-action`),block:()=>import(`@esri/calcite-components/dist/components/calcite-block`),slider:()=>import(`@esri/calcite-components/dist/components/calcite-slider`)})}get activeAudioIcon(){let{videoMuted:e}=this.viewModel;return e?`sound-off`:`sound`}get activeVideoIcon(){let{videoPaused:e,videoLoaded:t}=this.viewModel;return!t||e!==!1?`play`:`pause`}get autoLoad(){return this.viewModel.autoLoad}set autoLoad(e){this.viewModel.autoLoad=e}get camera(){return this.viewModel.camera}set camera(e){e&&(this.viewModel.camera=e)}get clickAction(){return this.viewModel.clickAction}set clickAction(e){this.viewModel.clickAction=e}get fov(){return this.camera?.fov}set fov(e){this.viewModel.fov=e}get hfov(){return this.viewModel.hfov}get horizonAngles(){return this.viewModel.horizonAngles}get icon(){return`360-view`}set icon(e){this._overrideIfSome(`icon`,e)}get imageRenderer(){return this.viewModel.imageRenderer}get imageSize(){return this.viewModel.imageSize}get oiViewModel(){return this.viewModel.oiViewModel}set oiViewModel(e){this.viewModel.oiViewModel=e}get video(){return this.viewModel.video}get videoSource(){return this.viewModel.videoSource}set videoSource(e){this.viewModel.videoSource=e}get pitch(){return this.viewModel.pitch}set pitch(e){this.viewModel.pitch=e}get state(){return this.viewModel.state}get ui(){return this.imageRenderer.ui}get vfov(){return this.viewModel.vfov}get yaw(){return this.viewModel.yaw}set yaw(e){this.viewModel.yaw=e}_handleVideoSeek(e){let t=this.viewModel?.video;t&&(t.currentTime=e.target.value,t.play())}reset(){this.viewModel.resetVideo()}render(){let{control:e,reset:t}=this.messagesCommon,{mute:n,unmute:r}=this.messages;return c(`calcite-panel`,null,c(`calcite-panel`,{loading:this.viewModel.updating},c(`calcite-panel`,{afterCreate:this._afterContainerCreate,bind:this,class:this.classes(s.widget,d)}),c(`calcite-block`,{class:f,expanded:!0},c(`calcite-slider`,{bind:this,labelHandles:!0,labelTicks:!0,max:this.viewModel?.videoDuration,minLabel:`0`,value:this.viewModel.currentTime??0,onCalciteSliderChange:this._handleVideoSeek})),c(`calcite-action-bar`,{expandDisabled:!0,layout:`horizontal`},c(`calcite-action-group`,null,c(`calcite-action`,{bind:this,icon:this.activeVideoIcon,text:`Play`,title:this.viewModel.videoPaused?e.play:e.pause,onclick:()=>this.viewModel.playPanoramicVideoHandler()})),c(`calcite-action-group`,null,c(`calcite-action`,{bind:this,icon:`refresh`,text:`Rewind`,title:t,onclick:()=>this.viewModel.rewindPanoramicVideoHandler()})),c(`calcite-action-group`,null,c(`calcite-action`,{bind:this,icon:this.activeAudioIcon,text:`Audio`,title:this.viewModel.videoMuted?n:r,onclick:()=>this.viewModel.togglePanoramicAudio()})))))}static{this.vnodeSelector=`calcite-panel`}};e([n()],p.prototype,`activeAudioIcon`,null),e([n()],p.prototype,`activeVideoIcon`,null),e([n({type:Boolean})],p.prototype,`autoLoad`,null),e([n({type:t})],p.prototype,`camera`,null),e([n()],p.prototype,`clickAction`,null),e([n({type:Number})],p.prototype,`fov`,null),e([n({readOnly:!0,type:Number})],p.prototype,`hfov`,null),e([n()],p.prototype,`horizonAngles`,null),e([n()],p.prototype,`icon`,null),e([n({readOnly:!0})],p.prototype,`imageRenderer`,null),e([n({readOnly:!0})],p.prototype,`imageSize`,null),e([n()],p.prototype,`oiViewModel`,null),e([n(),l(`esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer`)],p.prototype,`messages`,void 0),e([n(),l(`esri/t9n/common`)],p.prototype,`messagesCommon`,void 0),e([n()],p.prototype,`video`,null),e([n()],p.prototype,`videoSource`,null),e([n({type:Number})],p.prototype,`pitch`,null),e([n({readOnly:!0})],p.prototype,`state`,null),e([n()],p.prototype,`ui`,null),e([n({readOnly:!0,type:Number})],p.prototype,`vfov`,null),e([u([`click`,`hittest-response`,`pixel-location`]),n({type:a})],p.prototype,`viewModel`,void 0),e([n({type:Number})],p.prototype,`yaw`,null),p=e([r(`esri.widgets.PanoramicVideoViewer`)],p);const m=p;export{m as default};
2
+ import{__decorate as e}from"tslib";import t from"../Camera.js";import{property as n,subclass as r}from"../core/accessorSupport/decorators.js";import i from"./Widget.js";import a from"./PanoramicViewer/PanoramicVideoViewerViewModel.js";import{loadCalciteComponents as o}from"./support/componentsUtils.js";import{globalCss as s}from"./support/globalCss.js";import{tsx as c,messageBundle as l,vmEvent as u}from"./support/widget.js";const d=`esri-panoramic-viewer`,f=`${d}__slider-container`;let p=class extends i{constructor(e){super(e),this.messagesCommon=null,this.viewModel=new a,this._afterContainerCreate=e=>{this.imageRenderer.container=e},this.addGraphic=(e,t)=>{this.viewModel.addGraphic(e,t)},this.addManyGraphics=e=>{this.viewModel.addManyGraphics(e)},this.clearGraphics=()=>{this.viewModel.clearGraphics()},this.clearImage=()=>{this.viewModel.clearImage()},this.loadVideo=e=>this.viewModel.loadVideo(e),this.removeGraphic=e=>{this.viewModel.removeGraphic(e)},this.removeManyGraphics=e=>{this.viewModel.removeManyGraphics(e)}}loadDependencies(){return o({panel:()=>import(`@esri/calcite-components/dist/components/calcite-panel`),"action-bar":()=>import(`@esri/calcite-components/dist/components/calcite-action-bar`),"action-group":()=>import(`@esri/calcite-components/dist/components/calcite-action-group`),action:()=>import(`@esri/calcite-components/dist/components/calcite-action`),block:()=>import(`@esri/calcite-components/dist/components/calcite-block`),slider:()=>import(`@esri/calcite-components/dist/components/calcite-slider`)})}get activeAudioIcon(){let{videoMuted:e}=this.viewModel;return e?`sound-off`:`sound`}get activeVideoIcon(){let{videoPaused:e,videoLoaded:t}=this.viewModel;return!t||e!==!1?`play`:`pause`}get autoLoad(){return this.viewModel.autoLoad}set autoLoad(e){this.viewModel.autoLoad=e}get camera(){return this.viewModel.camera}set camera(e){e&&(this.viewModel.camera=e)}get clickAction(){return this.viewModel.clickAction}set clickAction(e){this.viewModel.clickAction=e}get fov(){return this.camera?.fov}set fov(e){this.viewModel.fov=e}get hfov(){return this.viewModel.hfov}get horizonAngles(){return this.viewModel.horizonAngles}get icon(){return`360-view`}set icon(e){this._overrideIfSome(`icon`,e)}get imageRenderer(){return this.viewModel.imageRenderer}get imageSize(){return this.viewModel.imageSize}get oiViewModel(){return this.viewModel.oiViewModel}set oiViewModel(e){this.viewModel.oiViewModel=e}get video(){return this.viewModel.video}get videoSource(){return this.viewModel.videoSource}set videoSource(e){this.viewModel.videoSource=e}get pitch(){return this.viewModel.pitch}set pitch(e){this.viewModel.pitch=e}get state(){return this.viewModel.state}get ui(){return this.imageRenderer.ui}get vfov(){return this.viewModel.vfov}get yaw(){return this.viewModel.yaw}set yaw(e){this.viewModel.yaw=e}_handleVideoSeek(e){let t=this.viewModel?.video;t&&(t.currentTime=e.target.value,t.play())}reset(){this.viewModel.resetVideo()}render(){let{control:e,reset:t}=this.messagesCommon,{mute:n,unmute:r}=this.messages;return c(`calcite-panel`,null,c(`calcite-panel`,{loading:this.viewModel.updating},c(`calcite-panel`,{afterCreate:this._afterContainerCreate,bind:this,class:this.classes(s.widget,d)}),c(`calcite-block`,{class:f,expanded:!0},c(`calcite-slider`,{bind:this,labelHandles:!0,labelTicks:!0,max:this.viewModel?.videoDuration,minLabel:`0`,value:this.viewModel.currentTime??0,onCalciteSliderChange:this._handleVideoSeek})),c(`calcite-action-bar`,{expandToggleDisabled:!0,layout:`horizontal`},c(`calcite-action-group`,null,c(`calcite-action`,{bind:this,icon:this.activeVideoIcon,text:`Play`,title:this.viewModel.videoPaused?e.play:e.pause,onclick:()=>this.viewModel.playPanoramicVideoHandler()})),c(`calcite-action-group`,null,c(`calcite-action`,{bind:this,icon:`refresh`,text:`Rewind`,title:t,onclick:()=>this.viewModel.rewindPanoramicVideoHandler()})),c(`calcite-action-group`,null,c(`calcite-action`,{bind:this,icon:this.activeAudioIcon,text:`Audio`,title:this.viewModel.videoMuted?n:r,onclick:()=>this.viewModel.togglePanoramicAudio()})))))}static{this.vnodeSelector=`calcite-panel`}};e([n()],p.prototype,`activeAudioIcon`,null),e([n()],p.prototype,`activeVideoIcon`,null),e([n({type:Boolean})],p.prototype,`autoLoad`,null),e([n({type:t})],p.prototype,`camera`,null),e([n()],p.prototype,`clickAction`,null),e([n({type:Number})],p.prototype,`fov`,null),e([n({readOnly:!0,type:Number})],p.prototype,`hfov`,null),e([n()],p.prototype,`horizonAngles`,null),e([n()],p.prototype,`icon`,null),e([n({readOnly:!0})],p.prototype,`imageRenderer`,null),e([n({readOnly:!0})],p.prototype,`imageSize`,null),e([n()],p.prototype,`oiViewModel`,null),e([n(),l(`esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer`)],p.prototype,`messages`,void 0),e([n(),l(`esri/t9n/common`)],p.prototype,`messagesCommon`,void 0),e([n()],p.prototype,`video`,null),e([n()],p.prototype,`videoSource`,null),e([n({type:Number})],p.prototype,`pitch`,null),e([n({readOnly:!0})],p.prototype,`state`,null),e([n()],p.prototype,`ui`,null),e([n({readOnly:!0,type:Number})],p.prototype,`vfov`,null),e([u([`click`,`hittest-response`,`pixel-location`]),n({type:a})],p.prototype,`viewModel`,void 0),e([n({type:Number})],p.prototype,`yaw`,null),p=e([r(`esri.widgets.PanoramicVideoViewer`)],p);const m=p;export{m as default};
@@ -12,6 +12,7 @@ import type TemplateOptions from "./TemplateOptions.js";
12
12
  import type { EventedAccessor } from "../../core/Evented.js";
13
13
  import type { LoadableMixin, LoadableMixinProperties } from "../../core/Loadable.js";
14
14
  import type { EsriPromiseMixin } from "../../core/Promise.js";
15
+ import type { PrintCapabilities } from "../../rest/print.js";
15
16
  import type { PrintResponse } from "../../rest/types.js";
16
17
  import type { Formats, Layouts, State, TemplateCustomTextElements, TemplatesInfo } from "./types.js";
17
18
  import type { FileLinkProperties } from "./FileLink.js";
@@ -20,7 +21,7 @@ import type { SpatialReferenceProperties } from "../../geometry/SpatialReference
20
21
  import type { PortalProperties } from "../../portal/Portal.js";
21
22
  import type { TemplateOptionsProperties } from "./TemplateOptions.js";
22
23
 
23
- export interface PrintViewModelProperties extends LoadableMixinProperties, Partial<Pick<PrintViewModel, "allowedFormats" | "allowedLayouts" | "cimVersion" | "datumTransformations" | "extraParameters" | "includeDefaultTemplates" | "printServiceUrl" | "printTimeout" | "showPrintAreaEnabled" | "templateCustomTextElements" | "updateDelay" | "view">> {
24
+ export interface PrintViewModelProperties extends LoadableMixinProperties, Partial<Pick<PrintViewModel, "allowedFormats" | "allowedLayouts" | "capabilities" | "datumTransformations" | "extraParameters" | "includeDefaultTemplates" | "printServiceUrl" | "printTimeout" | "showPrintAreaEnabled" | "templateCustomTextElements" | "updateDelay" | "view">> {
24
25
  /**
25
26
  * The collection of links exported from Print.
26
27
  *
@@ -172,7 +173,7 @@ export default class PrintViewModel extends PrintViewModelSuperclass {
172
173
  */
173
174
  get browseTemplates(): Collection<CustomTemplate>;
174
175
  /** @internal */
175
- accessor cimVersion: string | undefined;
176
+ accessor capabilities: PrintCapabilities | undefined;
176
177
  /**
177
178
  * An array of [geographic transformations](https://developers.arcgis.com/javascript/latest/references/core/geometry/operators/support/GeographicTransformation/) to be used by the print service when
178
179
  * projecting geometries for the printout.
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{isSome as t}from"../../core/arrayUtils.js";import n from"../../core/Collection.js";import r from"../../core/Error.js";import{EventedAccessor as i}from"../../core/Evented.js";import{JSONMap as a}from"../../core/jsonMap.js";import{clone as o}from"../../core/lang.js";import{LoadableMixin as s}from"../../core/Loadable.js";import{EsriPromiseMixin as c}from"../../core/Promise.js";import l from"../../core/ReactiveMap.js";import{watch as u,initial as d,whenOnce as f}from"../../core/reactiveUtils.js";import{createScreenPoint as p}from"../../core/screenUtils.js";import{unitType as m,convertUnit as h,getMetersPerUnitForSR as g,inchesPerMeter as _}from"../../core/units.js";import{property as v,subclass as y}from"../../core/accessorSupport/decorators.js";import b from"../../geometry/Extent.js";import x from"../../geometry/SpatialReference.js";import{formatDate as S,convertDateFormatToIntlOptions as C}from"../../intl/date.js";import{getLocaleLanguage as w}from"../../intl/locale.js";import T from"../../portal/Portal.js";import E from"../../portal/PortalQueryParams.js";import{execute as ee,getPrintCache as D,getTaskInfo as O}from"../../rest/print.js";import{formatJsonMap as k}from"../../rest/support/fileFormat.js";import{fromJSON as A}from"../../rest/support/layoutTemplate.js";import j from"../../rest/support/LegendLayer.js";import M from"../../rest/support/PrintParameters.js";import{getVisibleLayerViews as N}from"../../rest/support/printTaskUtils.js";import P from"../../rest/support/PrintTemplate.js";import{getExtent as F}from"../../views/2d/viewpointUtils.js";import{ViewEventPriorities as I}from"../../views/input/InputManager.js";import L from"../../views/overlay/BoxOverlayItem.js";import R from"./CustomTemplate.js";import z from"./FileLink.js";import B from"./TemplateOptions.js";import{fetchLayoutTemplateInfos as V,valueUnitKebabDict as H}from"./utils.js";const U=[30,144,255,255],W=[237,211,23,255],G=[216,48,32,255],K=/(\/GPServer\/).+/i,q=n.ofType(R),J=n.ofType(z),Y=new a({Feet:`feet`,Miles:`miles`,Meters:`meters`,Kilometers:`kilometers`});function X(e){if(e.layoutOptions??={},e.layoutOptions.customTextElements??=[],!e.layoutOptions.customTextElements.find(e=>`date`in e)){let{customTextElements:t}=e.layoutOptions,n=S(Date.now(),C(`short-date`));w()===`ar`&&(n=`‏`+n),t.push({date:n})}}function Z(e,t,n){let r=e.visible??!0,i=e.legendEnabled??!0;if(!r||!i)return;let a=t===0,o=e.minScale??0,s=e.maxScale??0;if(!(a||(o===0||t<=o)&&(s===0||t>=s)))return;let c=e.sublayers?.toArray();if(c)for(let e of c)Z(e,t,n);else e.id!=null&&n.push(String(e.id))}function te(e,t,n,r){if(!t.layoutOptions)return;if(!n){t.layoutOptions.legendLayers=[];return}if(!e)return;let i=0;t.scalePreserved&&(i=t.outScale||e.scale);let a=N(e),o=[];for(let e of a)if(e.legendEnabled){let t=`sublayers`in e.layer&&e.layer.sublayers?e.layer.sublayers.toArray():void 0,n=[];for(let e of t??[])Z(e,i,n);o.push(new j({layerId:e.layer.id,title:e.layer.title||void 0,subLayerIds:t?n:void 0,dynamicLegend:r}))}t.layoutOptions.legendLayers=o}function Q(e,t,n){t&&t.visible!==n&&e.layoutOptions&&(e.layoutOptions.elementOverrides?e.layoutOptions.elementOverrides[t.name]={visible:n}:e.layoutOptions.elementOverrides={[t.name]:{visible:n}})}let $=class extends s(c(i)){constructor(e){super(e),this._serviceTemplateCustomTextElements=null,this._templateIdToCustomTemplate=new l,this._isFreeHand=!1,this._freeHandWidth=0,this._freehandHeight=0,this._asyncPrintTaskUrl=null,this._layoutInfoTaskUrl=null,this._portalLayoutInfoTaskUrl=null,this._customLayoutOptions=null,this._exportedFileNameMap={},this._layoutTemplateInfosCache=new Map,this._tasksInfoCache=new Map,this.allowedFormats=`all`,this.allowedLayouts=`all`,this.browseTemplates=new q,this.datumTransformations=null,this.defaultTemplates=new q,this.error=null,this.exportedLinks=new J,this.extraParameters=null,this.includeDefaultTemplates=!0,this.outSpatialReference=null,this.portal=T.getDefault(),this.portalTemplateIds=[],this.printServiceTemplates=new q,this.defaultTemplate=null,this.showPrintAreaEnabled=!1,this.printServiceUrl=null,this.printTimeout=12e4,this.saveExportEnabled=!1,this.templatesInfo=null,this.updateDelay=1e3,this.view=null,this.templateCustomTextElements=null,this.templateOptions=new B}initialize(){this.addHandles([u(()=>[this.showPrintAreaEnabled,this.view],()=>{this.showPrintAreaEnabled?this._enablePrintPreview():(this.removeHandles(`overlay-handler`),this.view?.overlay?.removeItem(this._getOverlayItem()))}),u(()=>[this.templateOptions.layout,this.templateOptions.layoutItem],()=>{this.loaded&&this._processTemplateOptions().catch(()=>{})}),u(()=>[this.allowedFormats,this.allowedLayouts],()=>{this.loaded&&this._loadTemplateInfos().catch(()=>{})}),u(()=>this.exportedLinks,()=>{let e={};for(let{name:t,extension:n}of this.exportedLinks){if(!t||!n)continue;let r=`${t}${n}`,i=e[r];e[r]=i===void 0?0:i+1}this._exportedFileNameMap=e},d)])}destroy(){this.removeHandles(`overlay-handler`),this.view&&=(this._overlayItem&&=(this.view.overlay?.removeItem(this._overlayItem),this._overlayItem.destroy(),null),null)}get effectivePrintServiceUrl(){return this.printServiceUrl??null}get effectiveTemplateCustomTextElements(){if(!this._serviceTemplateCustomTextElements)return{};let e=o(this._serviceTemplateCustomTextElements);return this.templateCustomTextElements&&Object.keys(this.templateCustomTextElements).forEach(t=>{let n=e[t];if(n){let e=this.templateCustomTextElements?.[t];n.forEach(t=>{let[n]=Object.entries(t)[0];e?.forEach(e=>{let[r,i]=Object.entries(e)[0];n===r&&(t[n]=i)})})}}),Object.freeze(e)}get state(){return this.loadStatus===`loading`?`initializing`:this.loadStatus===`failed`||this.error?`error`:this.loadStatus===`loaded`&&this.view?.ready?`ready`:`disabled`}async print(e){let{view:t,extraParameters:n,updateDelay:i,outSpatialReference:a,datumTransformations:o}=this;if(!t)throw new r(`print:view-required`,`view is not set`);X(e);let s=this._getOverlayItem(),c=e.scalePreserved||!this.showPrintAreaEnabled?void 0:F(new b,t.viewpoint,e.layout===`map-only`?[e.exportOptions.width,e.exportOptions.height]:[s.boxWidth,s.boxHeight]),l=new M({view:t,template:e,extent:c,extraParameters:n,updateDelay:i,outSpatialReference:a,datumTransformations:o});try{let t=!!e.layoutItem?.id&&(this.defaultTemplates.some(t=>t.layoutItem?.id===e.layoutItem?.id)||this.browseTemplates.some(t=>t.layoutItem?.id===e.layoutItem?.id));return await ee(t&&this._asyncPrintTaskUrl?this._asyncPrintTaskUrl:this.effectivePrintServiceUrl,l,{timeout:this.printTimeout})}catch(e){throw new r(`print:export-error`,`An error occurred while exporting the web map.`,{error:e})}}async load(e){return this.addResolvingPromise(this._loadResources(e).catch(e=>this.error=e)),this}toPrintTemplate({attributionEnabled:e,author:t,copyright:n,customTextElements:i,dpi:a,forceFeatureAttributes:o,format:s,height:c,id:l,includeTables:u,layout:d,layoutItem:f,legendEnabled:p,dynamicLegendEnabled:m,northArrowEnabled:h,scale:g,scaleBarEnabled:_,scaleBarUnit:v,scaleEnabled:y,title:b,width:x}){if(!d&&!f)throw new r(`print:layout-required`,`layout is not set`);let S={};t&&(S.authorText=t),n&&(S.copyrightText=n),i&&(S.customTextElements=i),b&&(S.titleText=b),_&&v&&(S.scalebarUnit=Y.toJSON(v));let C=new P({attributionVisible:e,forceFeatureAttributes:o,format:s,includeTables:u,layout:d,layoutItem:f,layoutOptions:S,outScale:g??0,scalePreserved:y});if(x&&(C.exportOptions.width=x),c&&(C.exportOptions.height=c),a&&(C.exportOptions.dpi=a),C.layoutOptions){te(this.view,C,p,m);let e=this.getLayoutTemplateById(l)?.mapSurroundInfoOptions;if(e){let t=e.northArrow;for(let e of t)Q(C,e,h);let n=e.scaleBar;for(let e of n)Q(C,e,_);let r=e.legend;for(let e of r)Q(C,e,p)}}return C}getLayoutTemplateById(e){return e?this._templateIdToCustomTemplate.get(e):null}async addPortalTemplate(e){if(!this.portal||!e?.id)return;try{if(this.loadStatus===`loading`&&await f(()=>this.loaded),!this.loaded)throw new r(`print:load-required`,`PrintViewModel must be loaded before adding portal templates.`);e.loaded||await e.load()}catch{this.applyTemplate(this.defaultTemplate);return}let t=new R({type:`browse-template`,layoutInfoTaskUrl:this._portalLayoutInfoTaskUrl,label:e.title,layoutItem:e});this._templateIdToCustomTemplate.set(t.id,t),this.browseTemplates.add(t)}removePortalTemplate(e){e.layoutItem&&this.templateOptions.id===e.layoutItem.id&&(this.defaultTemplate?this.applyTemplate(this.defaultTemplate):this.templateOptions.reset()),this.browseTemplates.remove(e),this._templateIdToCustomTemplate.delete(e.id)}async applyTemplate(e){if(e&&e===this.getLayoutTemplateById(this.templateOptions.id)||(this.templateOptions.reset(),!e))return;if(e===`map-only`){this.templateOptions.layout=`map-only`;return}!e.layout||!this.templatesInfo||this.templatesInfo.layout.choiceList.includes(e.layout)||(this.defaultTemplate?e=this.defaultTemplate:this.templateOptions.reset());let t=e.layout||e.layoutItem?.id,n=t?this.templateCustomTextElements?.[t]:void 0;if(await this.templateOptions.applyTemplate(e,{customTextElements:n,customLayoutOptions:this._customLayoutOptions}),t&&this._serviceTemplateCustomTextElements&&!this._serviceTemplateCustomTextElements[t]&&e.layoutTemplateInfo?.layoutOptions?.customTextElements){let n=o(this._serviceTemplateCustomTextElements);n[t]=e.layoutTemplateInfo.layoutOptions.customTextElements,this._serviceTemplateCustomTextElements=Object.freeze(n)}}createExportedFileLink(e){let t=this.toPrintTemplate(this.templateOptions).format.toLowerCase(),n=t.includes(`png`)?`png`:t,r=e+n;return this._updateExportedFileNameMap(r),new z({name:e,extension:n,count:this._exportedFileNameMap[r]})}export(e){let t=this.createExportedFileLink(e);this.exportedLinks.add(t);let n=this.print(this.toPrintTemplate(this.templateOptions)).then(e=>t.set({url:e?.url,state:`ready`})).catch(e=>t.set({error:e,state:`error`}));return this.emit(`submit`,{link:t,saveExportEnabled:this.saveExportEnabled}),n.then(e=>this.emit(`complete`,{link:e,saveExportEnabled:this.saveExportEnabled})),{link:t,promise:n}}async _loadResources(e){if(!this.destroyed){if(await this._loadUrls(e),await this._loadTemplateInfos(e),this.effectivePrintServiceUrl){let t=await D(this.effectivePrintServiceUrl,e);this.cimVersion=t?.cimVersion}await this._updateOverLayItem()}}async _loadTemplateInfos(e){let t=[...this.defaultTemplates,...this.printServiceTemplates];for(let{id:e}of t)this._templateIdToCustomTemplate.delete(e);this.defaultTemplates.removeAll(),this.printServiceTemplates.removeAll();let[n,r]=await Promise.all([this._getLayoutToLayoutTemplateInfos(e),this._getPrintServiceTemplatesInfo(e)]);await this._loadAllTemplates(n,r,e),this._processPrintServiceTemplatesInfo(r),await this._processTemplateOptions()}_updateExportedFileNameMap(e){this._exportedFileNameMap[e]===void 0?this._exportedFileNameMap[e]=0:this._exportedFileNameMap[e]++}async _processTemplateOptions(){let{layout:e,layoutItem:t}=this.templateOptions;if(e!==`map-only`){if(this._customLayoutOptions={legend:this.templateOptions.legendEnabled,northArrow:this.templateOptions.northArrowEnabled,scaleBar:this.templateOptions.scaleBarEnabled},t?.id){try{t.loaded||await t.load()}catch{this.applyTemplate(this.defaultTemplate);return}let e=this._templateIdToCustomTemplate.get(t.id);e||(e=new R({label:t.title,layoutItem:t,layoutInfoTaskUrl:this._portalLayoutInfoTaskUrl}),this._templateIdToCustomTemplate.set(e.id,e)),await this.applyTemplate(e)}else if(e){let e=this.defaultTemplates.find(e=>e.layout===this.templateOptions.layout)??this.printServiceTemplates.find(e=>e.layout===this.templateOptions.layout);await this.applyTemplate(e??this.defaultTemplate)}}}async _loadPortal(e){try{await this.portal.load(e)}catch(e){throw new r(`print:could-not-load-portal`,`Cannot load print resource information from portal`,{error:e,url:this.effectivePrintServiceUrl})}}async _loadUrls(e){if(this.printServiceUrl)this._set(`effectivePrintServiceUrl`,this.printServiceUrl),this._layoutInfoTaskUrl=await this._getLayoutInfoTaskUrl(this.effectivePrintServiceUrl,e);else{await this._loadPortal(e);let{printTask:t,asyncPrintTask:n,layoutInfoTask:r}=this.portal?.helperServices??{};this._set(`effectivePrintServiceUrl`,t?.url),this._asyncPrintTaskUrl=n?.url,this._layoutInfoTaskUrl=await this._getLayoutInfoTaskUrl(this.effectivePrintServiceUrl,e),this._portalLayoutInfoTaskUrl=!r?.url||this.effectivePrintServiceUrl===r.url?this._layoutInfoTaskUrl:await this._getLayoutInfoTaskUrl(r.url,e)}if(!(this.effectivePrintServiceUrl?.toLowerCase().split(`/`))?.includes(`gpserver`))throw new r(`print:invalid-print-service-url`,`Can't fetch print templates information from provided URL`,{url:this.effectivePrintServiceUrl})}async _getLayoutInfoTaskUrl(e,t){if(!e)return null;let n=await O(e,`GetLayoutTemplatesInfo`,t);return n?e.replace(K,`$1${encodeURI(n.displayName)}`):null}_getPortalDefaultTemplates(e,t){return this.portal?.helperServices?.printTask?.templates?.filter(e=>e.layout.toLowerCase()!==`map_only`&&(!t||t.includes(A(e.layout))))?.map(t=>{let n=R.fromJSON(t);if(n.type=`default-template`,n.layoutInfoTaskUrl=this._layoutInfoTaskUrl,n.layout){let t=e.get(n.layout);t&&n.setLayoutTemplateInfo(t)}return n})??[]}async _getPortalCustomTemplates(e){if(this.printServiceUrl||!this.portal)return[];let{portal:t}=this,{layoutGroupQuery:n,sourceJSON:r}=t,{state:i,user:a}=r??{},{availableCredits:o=0,assignedCredits:s=0}=a??{},c=i===`suspended`,l=i===`active`&&o<=0&&s>0,u=a?.privileges?.includes(`premium:user:print:customlayout`);if(!n||c||l||!u)return[];let d=new E({query:n,disableExtraQuery:!0}),f=await this.portal.queryGroups(d,e);if(!f.total)return[];let p=f.results[0],m=new E({num:100,query:`type:Layout`,sortField:p.sortField,sortOrder:p.sortOrder??void 0}),h=(await p.queryItems(m,e)).results;return h.length?h.map(e=>(this.portalTemplateIds.push(e.id),new R({type:`default-template`,label:e.title,layoutItem:e,layoutInfoTaskUrl:this._portalLayoutInfoTaskUrl}))):[]}async _loadAllTemplates(e,t,n){let r=!1,i=t?.layout?.choiceList;if(this.includeDefaultTemplates&&this.portal&&!this.printServiceUrl){let t=this._getPortalDefaultTemplates(e,i);r=!!t.length,this.defaultTemplates.addMany(t);let a=await this._getPortalCustomTemplates(n);this.defaultTemplates.addMany(a);for(let e of this.defaultTemplates)this._templateIdToCustomTemplate.set(e.id,e)}r||e.forEach((e,t)=>{if(!i||i.includes(t)){let n=new R({type:`print-service-template`,layout:t,layoutInfoTaskUrl:this._layoutInfoTaskUrl});n.setLayoutTemplateInfo(e),this.printServiceTemplates.add(n),this._templateIdToCustomTemplate.set(n.id,n)}})}_processPrintServiceTemplatesInfo(e){this._set(`templatesInfo`,e);let t=e?.layout?.defaultValue;if(t&&t!==`map-only`){let e=this.defaultTemplates.find(e=>e.layout===t)??this.printServiceTemplates.find(e=>e.layout===t)??this.defaultTemplates.at(0)??this.printServiceTemplates.at(0);this._set(`defaultTemplate`,e)}}async _getLayoutToLayoutTemplateInfos(e){let t=this._layoutInfoTaskUrl,n=t?this._layoutTemplateInfosCache.get(t):void 0,r=n??(t?await V(t,void 0,e):[]);!n&&t&&this._layoutTemplateInfosCache.set(t,r);let i=new Map,a={};for(let e of r){let t=A(e.layoutTemplate);i.set(t,e),a[t]=e.layoutOptions.customTextElements}return this._serviceTemplateCustomTextElements=Object.freeze(a),i}async _getPrintServiceTemplatesInfo(e){let t=this.effectivePrintServiceUrl?this._tasksInfoCache.get(this.effectivePrintServiceUrl):void 0,n=t??(this.effectivePrintServiceUrl?await O(this.effectivePrintServiceUrl,`ExportWebMap`,e):void 0);if(!n)throw new r(`print:unavailable-service-info`,`Can't fetch templates info from service`);!t&&this.effectivePrintServiceUrl&&this._tasksInfoCache.set(this.effectivePrintServiceUrl,n);let{parameters:i}=n,a=i.find(({name:e})=>e===`Format`),o=i.find(({name:e})=>e===`Layout_Template`);return{format:this._getFormat(a),layout:this._getLayout(o)}}_getFormat(e){let n=this.allowedFormats===`all`?e.choiceList:e.choiceList.filter(e=>typeof this.allowedFormats!=`string`&&this.allowedFormats.some(t=>RegExp(`\\b${t}\\b`,`i`).test(e))),r=(n.length?n:e.choiceList).map(e=>k.fromJSON(e)).filter(t),i=k.fromJSON(e.defaultValue);return{choiceList:r,defaultValue:r.some(e=>RegExp(`\\b${i}\\b`,`i`).test(e))?i:r[0]}}_getLayout(e){let n=e.choiceList.filter(e=>e.toLowerCase()!==`map_only`),r=this.allowedLayouts===`all`?n:n.filter(e=>this.allowedLayouts.includes(A(e))),i=(r.length?r:n).map(A).filter(t),a=A(e.defaultValue);return{choiceList:i,defaultValue:i.includes(a)?a:i.find(e=>/(?=.*letter)(?=.*landscape)/i.test(e))??i.find(e=>/(?=.*a4)(?=.*landscape)/i.test(e))??i[0]}}_getOverlayItem(){return this._overlayItem||=new L({strokeDash:[5],strokeWidth:2,strokeColor:[30,144,255,255]}),this._overlayItem}_enablePrintPreview(){if(!this.view?.overlay)return;let e=this.templateOptions,t=this._getOverlayItem();this.addHandles([u(()=>[e.width,e.height,e.scaleEnabled,e.scale,e.layout,e.layoutItem,e.id,e.state,e.dpi,this.view?.scale,this.view?.size,this.view?.state.paddedViewState.size,this.view?.state.padding,this.loaded],()=>void this._updateOverLayItem(),d),this.view?.on(`drag`,[`Shift`],e=>this._handleDrag(e),I.WIDGET),this.view?.on(`key-down`,[`Escape`],()=>this._resetDrag(),I.WIDGET)],`overlay-handler`),this.view.overlay.addItem(t)}async _updateOverLayItem(){if(!this.view)return;await this.view.when();let e=this.templateOptions,t=this._getOverlayItem(),n=e.layoutItem?.id??e.layout,r=this.view,i=r.spatialReference,[a,o]=r.state.paddedViewState.size,s=r.state.padding,c=0,l=0;if(n===`map-only`)e.width!=null&&e.height!=null&&(c=e.width,l=e.height);else if(n){let{webMapFrameSize:t,pageUnits:n}=(e.id?this._templateIdToCustomTemplate.get(e.id):null)?.layoutTemplateInfo??{},r=!1;if(t&&n){if(this._isFreeHand){let e=t[0]/t[1];c=this._freeHandWidth,l=this._freehandHeight,c>l?l=c/e:c=l*e}else{let e=H.fromJSON(n.toLowerCase()),a=i.unit;m(e)===m(a)?(c=h(t[0],e,a),l=h(t[1],e,a)):(r=!0,c=t[0],l=t[1])}}if(!this._isFreeHand){if(e.scaleEnabled&&e.scale){let e=r?Math.min(a/c,o/l):g(i)*_*96;c*=e,l*=e}else if(c===0||l===0)c=a,l=o;else{let e=a-a*.1,t=o-o*.1,n=e/c,r=t/l,i=Math.min(n,r);c*=i,l*=i}}}let{scaleEnabled:u,scale:d}=e,f=u&&d?d/this.view.scale:1;if(t.boxWidth=c*f||a,t.boxHeight=l*f||o,s&&(t.padding=s),t.backgroundWidth=a??0,t.backgroundHeight=o??0,this.loadStatus===`loading`)t.strokeColor=W;else if(this.loadStatus===`loaded`)switch(this.templateOptions.state){case`pending`:t.strokeColor=W;break;case`ready`:t.strokeColor=U;break;case`error`:t.strokeColor=G}}_resetDrag(){this._isFreeHand=!1,this._updateOverLayItem()}_handleDrag(e){switch(e.action){case`start`:this._start();break;case`update`:this._update(e);break;case`end`:this._end()}e.stopPropagation()}_start(){this._isFreeHand=!0}_update(e){let t=this._getOverlayItem(),{x:n,y:r}=e,{x:i,y:a}=e.origin;n>i?(t.x=i,t.boxWidth=n-i):(t.x=n,t.boxWidth=i-n),r>a?(t.y=a,t.boxHeight=r-a):(t.y=r,t.boxHeight=a-r)}_end(){let e=this._getOverlayItem();if(!this.view||e.x==null||e.y==null)return;let t=this.view,n=t.toMap(p(e.x+e.boxWidth*.5,e.y+e.boxHeight*.5));e.x=null,e.y=null,t.goTo({center:n}),this._freeHandWidth=e.boxWidth,this._freehandHeight=e.boxHeight,this.templateOptions.layout===`map-only`&&(this.templateOptions.width=this._freeHandWidth,this.templateOptions.height=this._freehandHeight),this.templateOptions.scale=this.view.scale,this._updateOverLayItem()}};e([v()],$.prototype,`_serviceTemplateCustomTextElements`,void 0),e([v()],$.prototype,`_templateIdToCustomTemplate`,void 0),e([v()],$.prototype,`allowedFormats`,void 0),e([v()],$.prototype,`allowedLayouts`,void 0),e([v({type:q})],$.prototype,`browseTemplates`,void 0),e([v()],$.prototype,`cimVersion`,void 0),e([v()],$.prototype,`datumTransformations`,void 0),e([v({type:q})],$.prototype,`defaultTemplates`,void 0),e([v()],$.prototype,`error`,void 0),e([v({type:J})],$.prototype,`exportedLinks`,void 0),e([v()],$.prototype,`extraParameters`,void 0),e([v()],$.prototype,`includeDefaultTemplates`,void 0),e([v({readOnly:!0})],$.prototype,`effectivePrintServiceUrl`,null),e([v()],$.prototype,`effectiveTemplateCustomTextElements`,null),e([v({type:x})],$.prototype,`outSpatialReference`,void 0),e([v({type:T})],$.prototype,`portal`,void 0),e([v()],$.prototype,`portalTemplateIds`,void 0),e([v({type:q})],$.prototype,`printServiceTemplates`,void 0),e([v({readOnly:!0})],$.prototype,`defaultTemplate`,void 0),e([v()],$.prototype,`showPrintAreaEnabled`,void 0),e([v()],$.prototype,`printServiceUrl`,void 0),e([v()],$.prototype,`printTimeout`,void 0),e([v()],$.prototype,`saveExportEnabled`,void 0),e([v({readOnly:!0})],$.prototype,`state`,null),e([v({readOnly:!0})],$.prototype,`templatesInfo`,void 0),e([v()],$.prototype,`updateDelay`,void 0),e([v()],$.prototype,`view`,void 0),e([v()],$.prototype,`templateCustomTextElements`,void 0),e([v({type:B})],$.prototype,`templateOptions`,void 0),$=e([y(`esri.widgets.Print.PrintViewModel`)],$);const ne=$;export{ne as default};
2
+ import{__decorate as e}from"tslib";import{isSome as t}from"../../core/arrayUtils.js";import n from"../../core/Collection.js";import r from"../../core/Error.js";import{EventedAccessor as i}from"../../core/Evented.js";import{JSONMap as a}from"../../core/jsonMap.js";import{clone as o}from"../../core/lang.js";import{LoadableMixin as s}from"../../core/Loadable.js";import{EsriPromiseMixin as c}from"../../core/Promise.js";import l from"../../core/ReactiveMap.js";import{watch as u,initial as d,whenOnce as f}from"../../core/reactiveUtils.js";import{createScreenPoint as p}from"../../core/screenUtils.js";import{unitType as m,convertUnit as h,getMetersPerUnitForSR as g,inchesPerMeter as _}from"../../core/units.js";import{property as v,subclass as y}from"../../core/accessorSupport/decorators.js";import b from"../../geometry/Extent.js";import x from"../../geometry/SpatialReference.js";import{formatDate as S,convertDateFormatToIntlOptions as C}from"../../intl/date.js";import{getLocaleLanguage as w}from"../../intl/locale.js";import T from"../../portal/Portal.js";import E from"../../portal/PortalQueryParams.js";import{execute as ee,getPrintCapabilities as D,getTaskInfo as O}from"../../rest/print.js";import{formatJsonMap as k}from"../../rest/support/fileFormat.js";import{fromJSON as A}from"../../rest/support/layoutTemplate.js";import j from"../../rest/support/LegendLayer.js";import M from"../../rest/support/PrintParameters.js";import{getVisibleLayerViews as N}from"../../rest/support/printTaskUtils.js";import P from"../../rest/support/PrintTemplate.js";import{getExtent as F}from"../../views/2d/viewpointUtils.js";import{ViewEventPriorities as I}from"../../views/input/InputManager.js";import L from"../../views/overlay/BoxOverlayItem.js";import R from"./CustomTemplate.js";import z from"./FileLink.js";import B from"./TemplateOptions.js";import{fetchLayoutTemplateInfos as V,valueUnitKebabDict as H}from"./utils.js";const U=[30,144,255,255],W=[237,211,23,255],G=[216,48,32,255],K=/(\/GPServer\/).+/i,q=n.ofType(R),J=n.ofType(z),Y=new a({Feet:`feet`,Miles:`miles`,Meters:`meters`,Kilometers:`kilometers`});function X(e){if(e.layoutOptions??={},e.layoutOptions.customTextElements??=[],!e.layoutOptions.customTextElements.find(e=>`date`in e)){let{customTextElements:t}=e.layoutOptions,n=S(Date.now(),C(`short-date`));w()===`ar`&&(n=`‏`+n),t.push({date:n})}}function Z(e,t,n){let r=e.visible??!0,i=e.legendEnabled??!0;if(!r||!i)return;let a=t===0,o=e.minScale??0,s=e.maxScale??0;if(!(a||(o===0||t<=o)&&(s===0||t>=s)))return;let c=e.sublayers?.toArray();if(c)for(let e of c)Z(e,t,n);else e.id!=null&&n.push(String(e.id))}function te(e,t,n,r){if(!t.layoutOptions)return;if(!n){t.layoutOptions.legendLayers=[];return}if(!e)return;let i=0;t.scalePreserved&&(i=t.outScale||e.scale);let a=N(e),o=[];for(let e of a)if(e.legendEnabled){let t=`sublayers`in e.layer&&e.layer.sublayers?e.layer.sublayers.toArray():void 0,n=[];for(let e of t??[])Z(e,i,n);o.push(new j({layerId:e.layer.id,title:e.layer.title||void 0,subLayerIds:t?n:void 0,dynamicLegend:r}))}t.layoutOptions.legendLayers=o}function Q(e,t,n){t&&t.visible!==n&&e.layoutOptions&&(e.layoutOptions.elementOverrides?e.layoutOptions.elementOverrides[t.name]={visible:n}:e.layoutOptions.elementOverrides={[t.name]:{visible:n}})}let $=class extends s(c(i)){constructor(e){super(e),this._serviceTemplateCustomTextElements=null,this._templateIdToCustomTemplate=new l,this._isFreeHand=!1,this._freeHandWidth=0,this._freehandHeight=0,this._asyncPrintTaskUrl=null,this._layoutInfoTaskUrl=null,this._portalLayoutInfoTaskUrl=null,this._customLayoutOptions=null,this._exportedFileNameMap={},this._layoutTemplateInfosCache=new Map,this.allowedFormats=`all`,this.allowedLayouts=`all`,this.browseTemplates=new q,this.datumTransformations=null,this.defaultTemplates=new q,this.error=null,this.exportedLinks=new J,this.extraParameters=null,this.includeDefaultTemplates=!0,this.outSpatialReference=null,this.portal=T.getDefault(),this.portalTemplateIds=[],this.printServiceTemplates=new q,this.defaultTemplate=null,this.showPrintAreaEnabled=!1,this.printServiceUrl=null,this.printTimeout=12e4,this.saveExportEnabled=!1,this.templatesInfo=null,this.updateDelay=1e3,this.view=null,this.templateCustomTextElements=null,this.templateOptions=new B}initialize(){this.addHandles([u(()=>[this.showPrintAreaEnabled,this.view],()=>{this.showPrintAreaEnabled?this._enablePrintPreview():(this.removeHandles(`overlay-handler`),this.view?.overlay?.removeItem(this._getOverlayItem()))}),u(()=>[this.templateOptions.layout,this.templateOptions.layoutItem],()=>{this.loaded&&this._processTemplateOptions().catch(()=>{})}),u(()=>[this.allowedFormats,this.allowedLayouts],()=>{this.loaded&&this._loadTemplateInfos().catch(()=>{})}),u(()=>this.exportedLinks,()=>{let e={};for(let{name:t,extension:n}of this.exportedLinks){if(!t||!n)continue;let r=`${t}${n}`,i=e[r];e[r]=i===void 0?0:i+1}this._exportedFileNameMap=e},d)])}destroy(){this.removeHandles(`overlay-handler`),this.view&&=(this._overlayItem&&=(this.view.overlay?.removeItem(this._overlayItem),this._overlayItem.destroy(),null),null)}get effectivePrintServiceUrl(){return this.printServiceUrl??null}get effectiveTemplateCustomTextElements(){if(!this._serviceTemplateCustomTextElements)return{};let e=o(this._serviceTemplateCustomTextElements);return this.templateCustomTextElements&&Object.keys(this.templateCustomTextElements).forEach(t=>{let n=e[t];if(n){let e=this.templateCustomTextElements?.[t];n.forEach(t=>{let[n]=Object.entries(t)[0];e?.forEach(e=>{let[r,i]=Object.entries(e)[0];n===r&&(t[n]=i)})})}}),Object.freeze(e)}get state(){return this.loadStatus===`loading`?`initializing`:this.loadStatus===`failed`||this.error?`error`:this.loadStatus===`loaded`&&this.view?.ready?`ready`:`disabled`}async print(e){let{view:t,extraParameters:n,updateDelay:i,outSpatialReference:a,datumTransformations:o}=this;if(!t)throw new r(`print:view-required`,`view is not set`);X(e);let s=this._getOverlayItem(),c=e.scalePreserved||!this.showPrintAreaEnabled?void 0:F(new b,t.viewpoint,e.layout===`map-only`?[e.exportOptions.width,e.exportOptions.height]:[s.boxWidth,s.boxHeight]),l=new M({view:t,template:e,extent:c,extraParameters:n,updateDelay:i,outSpatialReference:a,datumTransformations:o});try{let t=!!e.layoutItem?.id&&(this.defaultTemplates.some(t=>t.layoutItem?.id===e.layoutItem?.id)||this.browseTemplates.some(t=>t.layoutItem?.id===e.layoutItem?.id));return await ee(t&&this._asyncPrintTaskUrl?this._asyncPrintTaskUrl:this.effectivePrintServiceUrl,l,{timeout:this.printTimeout})}catch(e){throw new r(`print:export-error`,`An error occurred while exporting the web map.`,{error:e})}}async load(e){return this.addResolvingPromise(this._loadResources(e).catch(e=>this.error=e)),this}toPrintTemplate({attributionEnabled:e,author:t,copyright:n,customTextElements:i,dpi:a,forceFeatureAttributes:o,format:s,height:c,id:l,includeTables:u,layout:d,layoutItem:f,legendEnabled:p,dynamicLegendEnabled:m,northArrowEnabled:h,scale:g,scaleBarEnabled:_,scaleBarUnit:v,scaleEnabled:y,title:b,width:x}){if(!d&&!f)throw new r(`print:layout-required`,`layout is not set`);let S={};t&&(S.authorText=t),n&&(S.copyrightText=n),i&&(S.customTextElements=i),b&&(S.titleText=b),_&&v&&(S.scalebarUnit=Y.toJSON(v));let C=new P({attributionVisible:e,forceFeatureAttributes:o,format:s,includeTables:u,layout:d,layoutItem:f,layoutOptions:S,outScale:g??0,scalePreserved:y});if(x&&(C.exportOptions.width=x),c&&(C.exportOptions.height=c),a&&(C.exportOptions.dpi=a),C.layoutOptions){te(this.view,C,p,m);let e=this.getLayoutTemplateById(l)?.mapSurroundInfoOptions;if(e){let t=e.northArrow;for(let e of t)Q(C,e,h);let n=e.scaleBar;for(let e of n)Q(C,e,_);let r=e.legend;for(let e of r)Q(C,e,p)}}return C}getLayoutTemplateById(e){return e?this._templateIdToCustomTemplate.get(e):null}async addPortalTemplate(e){if(!this.portal||!e?.id)return;try{if(this.loadStatus===`loading`&&await f(()=>this.loaded),!this.loaded)throw new r(`print:load-required`,`PrintViewModel must be loaded before adding portal templates.`);e.loaded||await e.load()}catch{this.applyTemplate(this.defaultTemplate);return}let t=new R({type:`browse-template`,layoutInfoTaskUrl:this._portalLayoutInfoTaskUrl,label:e.title,layoutItem:e});this._templateIdToCustomTemplate.set(t.id,t),this.browseTemplates.add(t)}removePortalTemplate(e){e.layoutItem&&this.templateOptions.id===e.layoutItem.id&&(this.defaultTemplate?this.applyTemplate(this.defaultTemplate):this.templateOptions.reset()),this.browseTemplates.remove(e),this._templateIdToCustomTemplate.delete(e.id)}async applyTemplate(e){if(e&&e===this.getLayoutTemplateById(this.templateOptions.id)||(this.templateOptions.reset(),!e))return;if(e===`map-only`){this.templateOptions.layout=`map-only`;return}!e.layout||!this.templatesInfo||this.templatesInfo.layout.choiceList.includes(e.layout)||(this.defaultTemplate?e=this.defaultTemplate:this.templateOptions.reset());let t=e.layout||e.layoutItem?.id,n=t?this.templateCustomTextElements?.[t]:void 0;if(await this.templateOptions.applyTemplate(e,{customTextElements:n,customLayoutOptions:this._customLayoutOptions}),t&&this._serviceTemplateCustomTextElements&&!this._serviceTemplateCustomTextElements[t]&&e.layoutTemplateInfo?.layoutOptions?.customTextElements){let n=o(this._serviceTemplateCustomTextElements);n[t]=e.layoutTemplateInfo.layoutOptions.customTextElements,this._serviceTemplateCustomTextElements=Object.freeze(n)}}createExportedFileLink(e){let t=this.toPrintTemplate(this.templateOptions).format.toLowerCase(),n=t.includes(`png`)?`png`:t,r=e+n;return this._updateExportedFileNameMap(r),new z({name:e,extension:n,count:this._exportedFileNameMap[r]})}export(e){let t=this.createExportedFileLink(e);this.exportedLinks.add(t);let n=this.print(this.toPrintTemplate(this.templateOptions)).then(e=>t.set({url:e?.url,state:`ready`})).catch(e=>t.set({error:e,state:`error`}));return this.emit(`submit`,{link:t,saveExportEnabled:this.saveExportEnabled}),n.then(e=>this.emit(`complete`,{link:e,saveExportEnabled:this.saveExportEnabled})),{link:t,promise:n}}async _loadResources(e){this.destroyed||(await this._loadUrls(e),await this._loadTemplateInfos(e),this.effectivePrintServiceUrl&&(this.capabilities=await D(this.effectivePrintServiceUrl,e)),await this._updateOverLayItem())}async _loadTemplateInfos(e){let t=[...this.defaultTemplates,...this.printServiceTemplates];for(let{id:e}of t)this._templateIdToCustomTemplate.delete(e);this.defaultTemplates.removeAll(),this.printServiceTemplates.removeAll();let[n,r]=await Promise.all([this._getLayoutToLayoutTemplateInfos(e),this._getPrintServiceTemplatesInfo(e)]);await this._loadAllTemplates(n,r,e),this._processPrintServiceTemplatesInfo(r),await this._processTemplateOptions()}_updateExportedFileNameMap(e){this._exportedFileNameMap[e]===void 0?this._exportedFileNameMap[e]=0:this._exportedFileNameMap[e]++}async _processTemplateOptions(){let{layout:e,layoutItem:t}=this.templateOptions;if(e!==`map-only`){if(this._customLayoutOptions={legend:this.templateOptions.legendEnabled,northArrow:this.templateOptions.northArrowEnabled,scaleBar:this.templateOptions.scaleBarEnabled},t?.id){try{t.loaded||await t.load()}catch{this.applyTemplate(this.defaultTemplate);return}let e=this._templateIdToCustomTemplate.get(t.id);e||(e=new R({label:t.title,layoutItem:t,layoutInfoTaskUrl:this._portalLayoutInfoTaskUrl}),this._templateIdToCustomTemplate.set(e.id,e)),await this.applyTemplate(e)}else if(e){let e=this.defaultTemplates.find(e=>e.layout===this.templateOptions.layout)??this.printServiceTemplates.find(e=>e.layout===this.templateOptions.layout);await this.applyTemplate(e??this.defaultTemplate)}}}async _loadPortal(e){try{await this.portal.load(e)}catch(e){throw new r(`print:could-not-load-portal`,`Cannot load print resource information from portal`,{error:e,url:this.effectivePrintServiceUrl})}}async _loadUrls(e){if(this.printServiceUrl)this._set(`effectivePrintServiceUrl`,this.printServiceUrl),this._layoutInfoTaskUrl=await this._getLayoutInfoTaskUrl(this.effectivePrintServiceUrl,e);else{await this._loadPortal(e);let{printTask:t,asyncPrintTask:n,layoutInfoTask:r}=this.portal?.helperServices??{};this._set(`effectivePrintServiceUrl`,t?.url),this._asyncPrintTaskUrl=n?.url,this._layoutInfoTaskUrl=await this._getLayoutInfoTaskUrl(this.effectivePrintServiceUrl,e),this._portalLayoutInfoTaskUrl=!r?.url||this.effectivePrintServiceUrl===r.url?this._layoutInfoTaskUrl:await this._getLayoutInfoTaskUrl(r.url,e)}if(!(this.effectivePrintServiceUrl?.toLowerCase().split(`/`))?.includes(`gpserver`))throw new r(`print:invalid-print-service-url`,`Can't fetch print templates information from provided URL`,{url:this.effectivePrintServiceUrl})}async _getLayoutInfoTaskUrl(e,t){if(!e)return null;let n=await O(e,`GetLayoutTemplatesInfo`,t);return n?e.replace(K,`$1${encodeURI(n.displayName)}`):null}_getPortalDefaultTemplates(e,t){return this.portal?.helperServices?.printTask?.templates?.filter(e=>e.layout.toLowerCase()!==`map_only`&&(!t||t.includes(A(e.layout))))?.map(t=>{let n=R.fromJSON(t);if(n.type=`default-template`,n.layoutInfoTaskUrl=this._layoutInfoTaskUrl,n.layout){let t=e.get(n.layout);t&&n.setLayoutTemplateInfo(t)}return n})??[]}async _getPortalCustomTemplates(e){if(this.printServiceUrl||!this.portal)return[];let{portal:t}=this,{layoutGroupQuery:n,sourceJSON:r}=t,{state:i,user:a}=r??{},{availableCredits:o=0,assignedCredits:s=0}=a??{},c=i===`suspended`,l=i===`active`&&o<=0&&s>0,u=a?.privileges?.includes(`premium:user:print:customlayout`);if(!n||c||l||!u)return[];let d=new E({query:n,disableExtraQuery:!0}),f=await this.portal.queryGroups(d,e);if(!f.total)return[];let p=f.results[0],m=new E({num:100,query:`type:Layout`,sortField:p.sortField,sortOrder:p.sortOrder??void 0}),h=(await p.queryItems(m,e)).results;return h.length?h.map(e=>(this.portalTemplateIds.push(e.id),new R({type:`default-template`,label:e.title,layoutItem:e,layoutInfoTaskUrl:this._portalLayoutInfoTaskUrl}))):[]}async _loadAllTemplates(e,t,n){let r=!1,i=t?.layout?.choiceList;if(this.includeDefaultTemplates&&this.portal&&!this.printServiceUrl){let t=this._getPortalDefaultTemplates(e,i);r=!!t.length,this.defaultTemplates.addMany(t);let a=await this._getPortalCustomTemplates(n);this.defaultTemplates.addMany(a);for(let e of this.defaultTemplates)this._templateIdToCustomTemplate.set(e.id,e)}r||e.forEach((e,t)=>{if(!i||i.includes(t)){let n=new R({type:`print-service-template`,layout:t,layoutInfoTaskUrl:this._layoutInfoTaskUrl});n.setLayoutTemplateInfo(e),this.printServiceTemplates.add(n),this._templateIdToCustomTemplate.set(n.id,n)}})}_processPrintServiceTemplatesInfo(e){this._set(`templatesInfo`,e);let t=e?.layout?.defaultValue;if(t&&t!==`map-only`){let e=this.defaultTemplates.find(e=>e.layout===t)??this.printServiceTemplates.find(e=>e.layout===t)??this.defaultTemplates.at(0)??this.printServiceTemplates.at(0);this._set(`defaultTemplate`,e)}}async _getLayoutToLayoutTemplateInfos(e){let t=this._layoutInfoTaskUrl,n=t?this._layoutTemplateInfosCache.get(t):void 0,r=n??(t?await V(t,void 0,e):[]);!n&&t&&this._layoutTemplateInfosCache.set(t,r);let i=new Map,a={};for(let e of r){let t=A(e.layoutTemplate);i.set(t,e),a[t]=e.layoutOptions.customTextElements}return this._serviceTemplateCustomTextElements=Object.freeze(a),i}async _getPrintServiceTemplatesInfo(e){let t=this.effectivePrintServiceUrl?await O(this.effectivePrintServiceUrl,`ExportWebMap`,e):void 0;if(!t)throw new r(`print:unavailable-service-info`,`Can't fetch templates info from service`);let{parameters:n}=t,i=n.find(({name:e})=>e===`Format`),a=n.find(({name:e})=>e===`Layout_Template`);return{format:this._getFormat(i),layout:this._getLayout(a)}}_getFormat(e){let n=this.allowedFormats===`all`?e.choiceList:e.choiceList.filter(e=>typeof this.allowedFormats!=`string`&&this.allowedFormats.some(t=>RegExp(`\\b${t}\\b`,`i`).test(e))),r=(n.length?n:e.choiceList).map(e=>k.fromJSON(e)).filter(t),i=k.fromJSON(e.defaultValue);return{choiceList:r,defaultValue:r.some(e=>RegExp(`\\b${i}\\b`,`i`).test(e))?i:r[0]}}_getLayout(e){let n=e.choiceList.filter(e=>e.toLowerCase()!==`map_only`),r=this.allowedLayouts===`all`?n:n.filter(e=>this.allowedLayouts.includes(A(e))),i=(r.length?r:n).map(A).filter(t),a=A(e.defaultValue);return{choiceList:i,defaultValue:i.includes(a)?a:i.find(e=>/(?=.*letter)(?=.*landscape)/i.test(e))??i.find(e=>/(?=.*a4)(?=.*landscape)/i.test(e))??i[0]}}_getOverlayItem(){return this._overlayItem||=new L({strokeDash:[5],strokeWidth:2,strokeColor:[30,144,255,255]}),this._overlayItem}_enablePrintPreview(){if(!this.view?.overlay)return;let e=this.templateOptions,t=this._getOverlayItem();this.addHandles([u(()=>[e.width,e.height,e.scaleEnabled,e.scale,e.layout,e.layoutItem,e.id,e.state,e.dpi,this.view?.scale,this.view?.size,this.view?.state.paddedViewState.size,this.view?.state.padding,this.loaded],()=>void this._updateOverLayItem(),d),this.view?.on(`drag`,[`Shift`],e=>this._handleDrag(e),I.WIDGET),this.view?.on(`key-down`,[`Escape`],()=>this._resetDrag(),I.WIDGET)],`overlay-handler`),this.view.overlay.addItem(t)}async _updateOverLayItem(){if(!this.view)return;await this.view.when();let e=this.templateOptions,t=this._getOverlayItem(),n=e.layoutItem?.id??e.layout,r=this.view,i=r.spatialReference,[a,o]=r.state.paddedViewState.size,s=r.state.padding,c=0,l=0;if(n===`map-only`)e.width!=null&&e.height!=null&&(c=e.width,l=e.height);else if(n){let{webMapFrameSize:t,pageUnits:n}=(e.id?this._templateIdToCustomTemplate.get(e.id):null)?.layoutTemplateInfo??{},r=!1;if(t&&n){if(this._isFreeHand){let e=t[0]/t[1];c=this._freeHandWidth,l=this._freehandHeight,c>l?l=c/e:c=l*e}else{let e=H.fromJSON(n.toLowerCase()),a=i.unit;m(e)===m(a)?(c=h(t[0],e,a),l=h(t[1],e,a)):(r=!0,c=t[0],l=t[1])}}if(!this._isFreeHand){if(e.scaleEnabled&&e.scale){let e=r?Math.min(a/c,o/l):g(i)*_*96;c*=e,l*=e}else if(c===0||l===0)c=a,l=o;else{let e=a-a*.1,t=o-o*.1,n=e/c,r=t/l,i=Math.min(n,r);c*=i,l*=i}}}let{scaleEnabled:u,scale:d}=e,f=u&&d?d/this.view.scale:1;if(t.boxWidth=c*f||a,t.boxHeight=l*f||o,s&&(t.padding=s),t.backgroundWidth=a??0,t.backgroundHeight=o??0,this.loadStatus===`loading`)t.strokeColor=W;else if(this.loadStatus===`loaded`)switch(this.templateOptions.state){case`pending`:t.strokeColor=W;break;case`ready`:t.strokeColor=U;break;case`error`:t.strokeColor=G}}_resetDrag(){this._isFreeHand=!1,this._updateOverLayItem()}_handleDrag(e){switch(e.action){case`start`:this._start();break;case`update`:this._update(e);break;case`end`:this._end()}e.stopPropagation()}_start(){this._isFreeHand=!0}_update(e){let t=this._getOverlayItem(),{x:n,y:r}=e,{x:i,y:a}=e.origin;n>i?(t.x=i,t.boxWidth=n-i):(t.x=n,t.boxWidth=i-n),r>a?(t.y=a,t.boxHeight=r-a):(t.y=r,t.boxHeight=a-r)}_end(){let e=this._getOverlayItem();if(!this.view||e.x==null||e.y==null)return;let t=this.view,n=t.toMap(p(e.x+e.boxWidth*.5,e.y+e.boxHeight*.5));e.x=null,e.y=null,t.goTo({center:n}),this._freeHandWidth=e.boxWidth,this._freehandHeight=e.boxHeight,this.templateOptions.layout===`map-only`&&(this.templateOptions.width=this._freeHandWidth,this.templateOptions.height=this._freehandHeight),this.templateOptions.scale=this.view.scale,this._updateOverLayItem()}};e([v()],$.prototype,`_serviceTemplateCustomTextElements`,void 0),e([v()],$.prototype,`_templateIdToCustomTemplate`,void 0),e([v()],$.prototype,`allowedFormats`,void 0),e([v()],$.prototype,`allowedLayouts`,void 0),e([v({type:q})],$.prototype,`browseTemplates`,void 0),e([v()],$.prototype,`capabilities`,void 0),e([v()],$.prototype,`datumTransformations`,void 0),e([v({type:q})],$.prototype,`defaultTemplates`,void 0),e([v()],$.prototype,`error`,void 0),e([v({type:J})],$.prototype,`exportedLinks`,void 0),e([v()],$.prototype,`extraParameters`,void 0),e([v()],$.prototype,`includeDefaultTemplates`,void 0),e([v({readOnly:!0})],$.prototype,`effectivePrintServiceUrl`,null),e([v()],$.prototype,`effectiveTemplateCustomTextElements`,null),e([v({type:x})],$.prototype,`outSpatialReference`,void 0),e([v({type:T})],$.prototype,`portal`,void 0),e([v()],$.prototype,`portalTemplateIds`,void 0),e([v({type:q})],$.prototype,`printServiceTemplates`,void 0),e([v({readOnly:!0})],$.prototype,`defaultTemplate`,void 0),e([v()],$.prototype,`showPrintAreaEnabled`,void 0),e([v()],$.prototype,`printServiceUrl`,void 0),e([v()],$.prototype,`printTimeout`,void 0),e([v()],$.prototype,`saveExportEnabled`,void 0),e([v({readOnly:!0})],$.prototype,`state`,null),e([v({readOnly:!0})],$.prototype,`templatesInfo`,void 0),e([v()],$.prototype,`updateDelay`,void 0),e([v()],$.prototype,`view`,void 0),e([v()],$.prototype,`templateCustomTextElements`,void 0),e([v({type:B})],$.prototype,`templateOptions`,void 0),$=e([y(`esri.widgets.Print.PrintViewModel`)],$);const ne=$;export{ne as default};
package/widgets/Print.js CHANGED
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{formatNumber as t}from"../intl.js";import n from"../core/Collection.js";import{deprecateWidget as r}from"../core/deprecate.js";import{JSONMap as i}from"../core/jsonMap.js";import a from"../core/Logger.js";import{watch as o,on as s,whenOnce as c}from"../core/reactiveUtils.js";import{unitName as l}from"../core/unitFormatUtils.js";import{addProxy as u,hasSameOrigin as d}from"../core/urlUtils.js";import{property as f,subclass as p}from"../core/accessorSupport/decorators.js";import{ensureInteger as m}from"../core/accessorSupport/ensureType.js";import h from"../geometry/SpatialReference.js";import{isValid as g}from"../geometry/support/spatialReferenceUtils.js";import _ from"../portal/Portal.js";import{reArcGISOnlineDomain as v}from"../portal/support/urlUtils.js";import{findToken as y}from"../rest/utils.js";import{formatJsonMap as b}from"../rest/support/fileFormat.js";import x from"./Widget.js";import S from"./Print/FileLink.js";import C from"./Print/PrintViewModel.js";import w from"./Print/TemplateOptions.js";import{loadCalciteComponents as T}from"./support/componentsUtils.js";import{globalCss as E}from"./support/globalCss.js";import{Heading as D}from"./support/Heading.js";import{legacyIcon as O}from"./support/legacyIcon.js";import{messageBundle as k,tsx as A,isRTL as j,tsxFragment as M,isActivationKey as N}from"./support/widget.js";const P=`map-only`,F=`esri-print`,I={base:F,headerTitle:`${F}__header-title`,layoutTabList:`${F}__layout-tab-list`,layoutTab:`${F}__layout-tab`,layoutSection:`${F}__layout-section`,mapOnlySection:`${F}__map-only-section`,panelItemsCentered:`${F}__panel-items--centered`,loader:`${F}__loader`,swapButton:`${F}__swap-button`,printButton:`${F}__export-button`,printButtonSection:`${F}__export-button-section`,printButtonSectionDivider:`${F}__export-button-section--divider`,templateSelectContainer:`${F}__template-select-container`,templateSelectIcon:`${F}__template-select-icon`,templateSelectError:`${F}__template-select-error`,templateSelectArrow:`${F}__template-select-arrow`,formSectionContainer:`${F}__form-section-container`,advancedOptionsSection:`${F}__advanced-options-section`,advancedOptionsContainer:`${F}__advanced-options-container`,browseTemplateButtonContainer:`${F}__browse-template-button-container`,browseTemplateButtonContainerFilter:`${F}__browse-template-button-container-filter`,exportedFilesContainer:`${F}__export-panel-container`,exportedFilesTitle:`${F}__export-title`,exportedFile:`${F}__exported-file`,exportedFileLinkTitle:`${F}__exported-file-link-title`,exportedFileLinkDescription:`${F}__exported-file-link-description`,exportedFilesEmpty:`${F}__exported-files-empty`,printWidgetContainer:`${F}__container`,content:`${F}__content`,panelContainer:`${F}__panel-container`,scaleInfoContainer:`${F}__scale-info-container`,scaleInputContainer:`${F}__scale-input-container`,scaleInput:`${F}__scale-input`,sizeContainer:`${F}__size-container`,panelError:`${F}__panel--error`,exportedFileLoader:`${F}__exported-file--loader`,exportSection:`${F}__export-section`,exportSectionCentered:`${F}__export-section--centered`,templateButtonContainer:`${F}__template-button-container`,templateDoneButton:`${F}__template-done-button`,templateSelectFlowItemContainer:`${F}__template-select-flow-item-container`,templateSelectFlowItemContent:`${F}__template-select-flow-item-content`,templateSelectFlowItemListHeading:`${F}__template-select-flow-item-list-heading`,srLabel:`${F}__sr-label`,invalidWkidText:`${F}__invalid-wkid-text`};function L(e){return!isNaN(e)&&e>0&&Number.isFinite(e)}function R(e){return e?.toLowerCase()===P}function z(e){let{state:t,extension:n}=e;switch(t){case`pending`:return`spinner`;case`error`:return`exclamation-mark-circle`;default:return n?.toLowerCase()?.includes(`pdf`)?`file-pdf`:`file`}}const B=new i({inch:`inches`,foot:`feet`,yard:`yards`,mile:`miles`,"nautical-mile":`nautical-miles`,millimeter:`millimeters`,centimeter:`centimeters`,decimeter:`decimeters`,meter:`meters`,kilometer:`kilometers`}),V=new Map([[`a3-landscape`,`a3-landscape`],[`a3-portrait`,`a3-portrait`],[`a4-landscape`,`a4-landscape`],[`a4-portrait`,`a4-portrait`],[`letter-ansi-a-landscape`,`ansi-a-landscape`],[`letter-ansi-a-portrait`,`ansi-a-portrait`],[`tabloid-ansi-b-landscape`,`ansi-b-landscape`],[`tabloid-ansi-b-portrait`,`ansi-b-portrait`]]);let H=class extends x{constructor(e,t){super(e,t),this._activeTabFocusRequested=!1,this._awaitingServerResponse=!1,this._selectedTab=`layoutTab`,this._pendingExportScroll=!1,this._rootNode=null,this._selectedTemplate=null,this._formats=[],this._showTemplates=!1,this._isValidSpatialReference=!0,this.allowedFormatsForSaving=null,this.browseTemplateButtonOnClick=null,this.headerVisible=!0,this.headingLevel=3,this.includeOrganizationTemplates=!0,this.messagesCommon=null,this.messagesUnits=null,this.saveExportHidden=!0,this.saveAsButtonCallback=null,this.viewModel=new C,this._onInput=e=>{this._selectedTab===`layoutTab`?this.templateOptions.title=e.currentTarget.value:this._selectedTab===`mapOnlyTab`&&(this.templateOptions.fileName=e.currentTarget.value)},this._handleLinkClick=e=>{let t=e.currentTarget[`data-item`];if(!t||t.state!==`ready`||!t.url)return;let n=y(this.viewModel.effectivePrintServiceUrl),r=t.url,i=document.createElement(`a`);if(i.target=`_blank`,i.href=r,i.rel=`noreferrer`,i.download=t.formattedName??``,!n){i.click(),e.stopPropagation();return}e.preventDefault();let a=new URL(r);a.searchParams.set(`token`,n),i.href=a.href,i.click(),i.href=r},r(a.getLogger(this),`Print`,`arcgis-print`,{version:`4.33`}),this._focusOnTabChange=this._focusOnTabChange.bind(this)}initialize(){this.addHandles([o(()=>[this.templateOptions.format,this.viewModel.templatesInfo?.format],()=>{let{templatesInfo:e}=this.viewModel;if(!e)return;if(this._formats.length!==e.format.choiceList.length){let t=b.apiValues;this._formats=e.format.choiceList.map(e=>{let n=t.find(t=>RegExp(`\\b${t}\\b`,`i`).test(e))??e;return{value:n,label:e===n?e.toUpperCase():e}}).sort((e,t)=>e.label.localeCompare(t.label))}let t=this._formats.some(({value:e})=>RegExp(`\\b${e}\\b`,`i`).test(this.templateOptions.format));if(e.format.defaultValue&&!t){let t=this._formats.find(({value:t})=>RegExp(`\\b${t}\\b`,`i`).test(e.format.defaultValue))?.value;t&&(this.templateOptions.format=t)}}),o(()=>[this.templateOptions.id,this.viewModel.loaded],()=>{let{layout:e}=this.templateOptions;this._selectedTab=R(e)?`mapOnlyTab`:`layoutTab`,this._selectedTab===`layoutTab`&&this.viewModel.loaded&&(this._selectedTemplate=this.viewModel.getLayoutTemplateById(this.templateOptions.id))}),o(()=>this.templateOptions.dpi,e=>{e<=0&&(this.templateOptions.dpi=1)}),o(()=>this.viewModel.view?.scale,e=>{e&&(!this.templateOptions.scaleEnabled||!this.templateOptions.scale)&&(this.templateOptions.scale=e)}),s(()=>this.viewModel,`submit`,e=>this.emit(`submit`,e)),s(()=>this.viewModel,`complete`,e=>this.emit(`complete`,e))]);let{height:e,width:t}=this.templateOptions;this.templateOptions.width=t||800,this.templateOptions.height=e||1100;let n=setTimeout(()=>{this._awaitingServerResponse=!0,this.scheduleRender()},500);this.viewModel.load().then(()=>{clearTimeout(n),this._awaitingServerResponse=!1},()=>{})}loadDependencies(){return T({action:()=>import(`@esri/calcite-components/dist/components/calcite-action`),block:()=>import(`@esri/calcite-components/dist/components/calcite-block`),button:()=>import(`@esri/calcite-components/dist/components/calcite-button`),checkbox:()=>import(`@esri/calcite-components/dist/components/calcite-checkbox`),combobox:()=>import(`@esri/calcite-components/dist/components/calcite-combobox`),"combobox-item":()=>import(`@esri/calcite-components/dist/components/calcite-combobox-item`),flow:()=>import(`@esri/calcite-components/dist/components/calcite-flow`),"flow-item":()=>import(`@esri/calcite-components/dist/components/calcite-flow-item`),icon:()=>import(`@esri/calcite-components/dist/components/calcite-icon`),input:()=>import(`@esri/calcite-components/dist/components/calcite-input`),"input-number":()=>import(`@esri/calcite-components/dist/components/calcite-input-number`),label:()=>import(`@esri/calcite-components/dist/components/calcite-label`),list:()=>import(`@esri/calcite-components/dist/components/calcite-list`),"list-item":()=>import(`@esri/calcite-components/dist/components/calcite-list-item`),loader:()=>import(`@esri/calcite-components/dist/components/calcite-loader`),switch:()=>import(`@esri/calcite-components/dist/components/calcite-switch`),chip:()=>import(`@esri/calcite-components/dist/components/calcite-chip`),popover:()=>import(`@esri/calcite-components/dist/components/calcite-popover`),link:()=>import(`@esri/calcite-components/dist/components/calcite-link`)})}destroy(){this.viewModel.destroy()}get allowedFormats(){return this.viewModel.allowedFormats}set allowedFormats(e){this.viewModel.allowedFormats=e}get allowedLayouts(){return this.viewModel.allowedLayouts}set allowedLayouts(e){this.viewModel.allowedLayouts=e}get error(){return this.viewModel.error}get exportedLinks(){return this.viewModel.exportedLinks}set exportedLinks(e){this.viewModel.exportedLinks=e}get extraParameters(){return this.viewModel.extraParameters}set extraParameters(e){this.viewModel.extraParameters=e}get icon(){return`print`}set icon(e){this._overrideIfSome(`icon`,e)}get includeDefaultTemplates(){return this.viewModel.includeDefaultTemplates}set includeDefaultTemplates(e){this.viewModel.includeDefaultTemplates=e}get label(){return this.messages?.widgetLabel??``}set label(e){this._overrideIfSome(`label`,e)}get outSpatialReference(){return this.viewModel.outSpatialReference}set outSpatialReference(e){this.viewModel.outSpatialReference=e}get portal(){return this.viewModel.portal}set portal(e){this.viewModel.portal=e}get saveExportEnabled(){return this.viewModel.saveExportEnabled}set saveExportEnabled(e){this.viewModel.saveExportEnabled=e}get showPrintAreaEnabled(){return this.viewModel.showPrintAreaEnabled}set showPrintAreaEnabled(e){this.viewModel.showPrintAreaEnabled=e}get printServiceUrl(){return this.viewModel.printServiceUrl}set printServiceUrl(e){this.viewModel.printServiceUrl=e}get templateCustomTextElements(){return this.viewModel.templateCustomTextElements}set templateCustomTextElements(e){this.viewModel.templateCustomTextElements=e}get templateOptions(){return this.viewModel.templateOptions}set templateOptions(e){this.viewModel.templateOptions=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}render(){let{messages:e,templateOptions:t,viewModel:n,view:r}=this,{attributionEnabled:i,author:a,copyright:o,dpi:s,format:c,height:l,layout:u,layoutItem:d,legendEnabled:f,northArrowEnabled:p,scaleBarEnabled:_,scaleEnabled:v,scale:y,width:b}=t,x=n.state!==`ready`||this._awaitingServerResponse||!(u||d),S=this._renderTitleOrFileNameSection(),C=A(`div`,{class:I.formSectionContainer},A(`calcite-label`,null,e.fileFormatTitle,A(`calcite-combobox`,{clearDisabled:!0,label:e.formatDefaultOption,maxItems:6,placeholder:e.formatDefaultOption,selectionMode:`single-persist`,topLayerDisabled:this.topLayerDisabled,onCalciteComboboxChange:({currentTarget:e})=>{this.templateOptions.format=e.selectedItems[0]?.value??`pdf`}},this._formats.map(({value:e,label:t},n)=>A(`calcite-combobox-item`,{heading:t,key:`file-format-${n}`,selected:e===this.templateOptions.format,value:e}))))),w=A(`calcite-label`,{layout:`inline`},A(`calcite-switch`,{checked:this.showPrintAreaEnabled,onCalciteSwitchChange:e=>{this.showPrintAreaEnabled=!!e.currentTarget.checked}}),e.printPreview),T=A(`div`,null,A(`div`,{class:I.formSectionContainer},A(`calcite-label`,null,e.template,A(`calcite-block`,{class:I.templateSelectContainer,collapsible:!1,description:this._getPageSizeLabel(this._selectedTemplate),heading:this._getTemplateLabel(this._selectedTemplate,!0),key:`template-select-block`,label:e.template,loading:this._selectedTemplate?.state===`loading`,tabIndex:0,onclick:()=>this._showTemplates=!0,onkeydown:e=>{(e.key===`Enter`||e.key===` `)&&(this._showTemplates=!0)}},A(`calcite-icon`,{class:I.templateSelectIcon,icon:(this._selectedTemplate?.layout?V.get(this._selectedTemplate.layout):null)||`custom-print`,key:`template-select-icon`,scale:`l`,slot:`content-start`}),this._selectedTemplate?.state===`error`?A(`calcite-icon`,{class:I.templateSelectError,icon:`exclamation-mark-circle`,key:`template-select-error`,scale:`s`,slot:`actions-end`}):null,A(`calcite-icon`,{class:I.templateSelectArrow,icon:j()?`chevron-left`:`chevron-right`,key:`template-select-arrow`,scale:`s`,slot:`actions-end`})))),w),k=A(`div`,{class:I.formSectionContainer},A(`calcite-label`,null,e.dpi,A(`calcite-input-number`,{bind:this,"data-input-name":`dpi`,min:1,value:`${s}`,onCalciteInputNumberInput:this._updateNumberInputValue}))),M=A(`div`,{class:I.formSectionContainer},A(`calcite-label`,null,A(`div`,{class:I.srLabel},e.outSpatialReference,A(`calcite-link`,{href:`https://developers.arcgis.com/rest/services-reference/enterprise/using-spatial-references/`,target:`_blank`},`(WKID)`)),A(`calcite-input-number`,{bind:this,"data-input-name":`outSpatialReference`,integer:!0,numberButtonType:`none`,value:n.outSpatialReference?.wkid?.toString()??``,onCalciteInputNumberInput:({currentTarget:e})=>{let t=m(e.value);n.outSpatialReference=Number.isNaN(t)||t==null?null:new h({wkid:t}),this._isValidSpatialReference=!n.outSpatialReference||g(n.outSpatialReference)}}),this._isValidSpatialReference?null:A(`div`,{class:I.invalidWkidText,key:`out-sr-${n.outSpatialReference?.wkid}`},e.invalidWkid))),N=A(`div`,{class:this.classes(I.scaleInfoContainer,I.formSectionContainer)},A(`calcite-label`,{layout:`inline`},A(`calcite-checkbox`,{bind:this,checked:v,"data-option-name":`scaleEnabled`,onCalciteCheckboxChange:this._toggleInputValue}),e.scale),A(`div`,{class:I.scaleInputContainer},A(`calcite-input-number`,{"aria-label":e.scaleLabel,"aria-valuenow":`${y}`,bind:this,class:I.scaleInput,"data-input-name":`scale`,disabled:!v,value:`${y}`,onCalciteInputNumberInput:this._updateNumberInputValue}),A(`calcite-button`,{appearance:`outline`,"aria-label":e.reset,bind:this,disabled:!v,iconStart:`refresh`,kind:`neutral`,onclick:this._resetToCurrentScale}))),P=A(`div`,{"aria-labelledby":`${this.id}__advancedOptionsForLayout`,class:I.advancedOptionsContainer,key:`advanced-section-for-layout`},N,this._selectedTemplate?.layoutTemplateInfo?.layoutOptions?.hasAuthorText??!0?A(`div`,{class:I.formSectionContainer,key:`author-info`},A(`calcite-label`,null,e.author,A(`calcite-input`,{bind:this,"data-input-name":`author`,value:a??``,onCalciteInputInput:this._updateInputValue}))):null,this._selectedTemplate?.layoutTemplateInfo?.layoutOptions?.hasCopyrightText??!0?A(`div`,{class:I.formSectionContainer,key:`copyright-text`},A(`calcite-label`,null,e.copyright,A(`calcite-input`,{bind:this,"data-input-name":`copyright`,value:o??``,onCalciteInputInput:this._updateInputValue}))):null,k,M,this._renderCustomTextElementSection(),this._selectedTemplate?.layoutTemplateInfo?.layoutOptions?.hasLegend??!0?A(`div`,{class:I.formSectionContainer,key:`legend-info`},A(`calcite-label`,{layout:`inline`},A(`calcite-checkbox`,{bind:this,checked:!!f,"data-option-name":`legendEnabled`,onCalciteCheckboxChange:this._toggleInputValue}),e.legend)):null,this._selectedTemplate?.mapSurroundInfoOptions?.northArrow.length?A(`div`,{class:I.formSectionContainer,key:`north-arrow`},A(`calcite-label`,{layout:`inline`},A(`calcite-checkbox`,{bind:this,checked:!!p,"data-option-name":`northArrowEnabled`,onCalciteCheckboxChange:this._toggleInputValue}),e.northArrow)):null,this._selectedTemplate?.mapSurroundInfoOptions?.scaleBar.length?A(`div`,{class:I.formSectionContainer,key:`scale-bar`},A(`calcite-label`,{layout:`inline`},A(`calcite-checkbox`,{bind:this,checked:!!_,"data-option-name":`scaleBarEnabled`,onCalciteCheckboxChange:this._toggleInputValue}),e.scaleBar)):null),F=A(`div`,{"aria-labelledby":`${this.id}__advancedOptionsForMapOnly`,class:I.advancedOptionsContainer},N,k,M,A(`div`,{class:I.formSectionContainer},A(`calcite-label`,{layout:`inline`},A(`calcite-checkbox`,{bind:this,checked:i,"data-option-name":`attributionEnabled`,onCalciteCheckboxChange:this._toggleInputValue}),e.attribution)),this._renderCustomTextElementSection()),L=this.exportedLinks.toArray(),R=this._renderExportedLinkItems(L),z={[I.exportSectionCentered]:!L.length},B=this._selectedTab===`layoutTab`?A(`section`,{"aria-labelledby":`${this.id}__layoutTab`,class:I.layoutSection,id:`${this.id}__layoutContent`,key:`esri-print__layoutContent`,role:`tabpanel`},A(`div`,{class:I.panelContainer},this._selectedTemplate?.layoutTemplateInfo?.layoutOptions?.hasTitleText??!0?S:null,T,this._selectedTab===`layoutTab`?C:null,A(`calcite-block`,{"aria-label":e.advancedOptions,class:this.classes(I.panelContainer,I.advancedOptionsSection),collapsible:!0,disabled:!(u||d?.id),heading:e.advancedOptions,id:`advancedOptionsForLayout`,key:`advanced-options-for-layout`},P))):this._selectedTab===`mapOnlyTab`?A(`section`,{"aria-labelledby":`${this.id}__mapOnlyTab`,class:I.mapOnlySection,id:`${this.id}__mapOnlyContent`,key:`esri-print__mapOnlyContent`,role:`tabpanel`},A(`div`,{class:I.panelContainer},S,C,A(`div`,null,A(`div`,{class:this.classes(I.sizeContainer,I.formSectionContainer)},A(`calcite-label`,null,e.width,A(`calcite-input-number`,{bind:this,"data-input-name":`width`,value:`${b}`,onCalciteInputNumberInput:this._updateNumberInputValue})),A(`calcite-label`,null,e.height,A(`calcite-input-number`,{bind:this,"data-input-name":`height`,value:`${l}`,onCalciteInputNumberInput:this._updateNumberInputValue})),A(`button`,{"aria-label":e.swap,bind:this,class:this.classes(E.widgetButton,I.swapButton,O.swap),type:`button`,onclick:this._switchInput})),w),A(`calcite-block`,{"aria-label":e.advancedOptions,class:this.classes(I.panelContainer,I.advancedOptionsSection),collapsible:!0,heading:e.advancedOptions,id:`advancedOptionsForMapOnly`,key:`advanced-options-for-map-only`},F))):A(`section`,{"aria-labelledby":`${this.id}__exportTab`,class:this.classes(I.exportSection,z),id:`${this.id}__exportContent`,key:`esri-print__exportContent`,role:`tabpanel`},A(`div`,{class:I.panelContainer},A(`div`,{afterUpdate:this._scrollExportIntoView,bind:this,class:I.exportedFilesContainer},L.length===0?A(`div`,{class:I.exportedFilesEmpty},A(`calcite-icon`,{icon:`file`,scale:`l`}),A(`div`,null,A(D,{class:I.exportedFilesTitle,level:this.headingLevel},e.noExportedFiles),A(`div`,null,e.exportHint))):R))),H=r?.type!==`2d`,U=A(`div`,{class:I.panelError},r?H?e.sceneViewError:e.serviceError:e.noViewError),W=L.some(({state:e})=>e===`pending`),G=A(`div`,{class:I.content,key:`panel`},A(`div`,null,A(`ul`,{bind:this,class:I.layoutTabList,role:`tablist`,onclick:this._toggleLayoutPanel,onkeydown:this._handleLayoutPanelKeyDown},A(`li`,{afterCreate:this._focusOnTabChange,afterUpdate:this._focusOnTabChange,"aria-selected":`${this._selectedTab===`layoutTab`}`,class:I.layoutTab,"data-tab-id":`layoutTab`,id:`${this.id}__layoutTab`,role:`tab`,tabIndex:0},e.layoutTab),A(`li`,{afterCreate:this._focusOnTabChange,afterUpdate:this._focusOnTabChange,"aria-selected":`${this._selectedTab===`mapOnlyTab`}`,class:I.layoutTab,"data-tab-id":`mapOnlyTab`,id:`${this.id}__mapOnlyTab`,role:`tab`,tabIndex:0},e.mapOnlyTab),A(`li`,{afterCreate:this._focusOnTabChange,afterUpdate:this._focusOnTabChange,"aria-selected":`${this._selectedTab===`exportTab`}`,class:I.layoutTab,"data-tab-id":`exportTab`,id:`${this.id}__exportedFilesTab`,role:`tab`,tabIndex:0},W?A(`calcite-loader`,{inline:!0,label:`loading`,scale:`s`}):null,e.exportsTab)),B),this._selectedTab===`exportTab`?null:A(`div`,{class:this.classes(I.printButtonSection,!this.saveExportHidden&&this.portal?I.printButtonSectionDivider:null),key:`export-button-section`},!this.saveExportHidden&&this.portal?A(`calcite-label`,{layout:`inline`},A(`calcite-checkbox`,{bind:this,checked:this.saveExportEnabled,onCalciteCheckboxChange:e=>{this.saveExportEnabled=!!e.currentTarget.checked}}),e.saveExportToMyContent):null,A(`calcite-button`,{"aria-label":e.exportDescription,bind:this,class:this.classes(I.printButton),disabled:x||!(u||d?.id)&&!c,scale:`l`,width:`full`,onclick:this._handlePrintMap},e.export))),K=A(`calcite-flow`,{key:`root-flow`},A(`calcite-flow-item`,{bind:this,key:`root-flow-item`,selected:!this._showTemplates},A(`div`,{class:I.printWidgetContainer},this.headerVisible?A(`header`,{class:I.headerTitle},e.export):null,this.error||H||!r?U:G)),this._renderChooseTemplateFlowItem()),q=n.state===`initializing`,J=q?this._renderLoader():K,Y={[I.panelItemsCentered]:q};return A(`div`,{bind:this,class:this.classes(I.base,E.widget,E.panel,Y)},J)}_getPageSizeLabel(e){if(!e)return;let n=e.layoutTemplateInfo;if(!n)return;let r=B.fromJSON(n.pageUnits.toLowerCase());return`${t(n.pageSize[0])} \u00D7 ${t(n.pageSize[1])} ${l(this.messagesUnits,r,`abbr`)}`}_getTemplateLabel(e,t=!1){if(!e)return t?this.messages.selectTemplate:this.messages.untitled;let{label:n,layout:r,layoutItem:i}=e;return(r&&!i&&this.messages[r]?this.messages[r]:null)||((n??r??i?.id)?.replaceAll(`_`,` `)??this.messages.untitled)}_getPortalTemplates(){return this.includeDefaultTemplates&&this.includeOrganizationTemplates?this.viewModel.defaultTemplates.toArray().filter(({layout:e,layoutItem:t})=>!R(e)&&!!t?.id):[]}_getDefaultTemplates(){return this.includeDefaultTemplates?this.viewModel.defaultTemplates.toArray().filter(({layout:e,layoutItem:t})=>!R(e)&&!t?.id):[]}_getPrintServiceTemplates(){return!this.includeDefaultTemplates||!this._getDefaultTemplates().length?this.viewModel.printServiceTemplates.toArray().filter(({layout:e})=>!R(e)):[]}_renderLayoutTemplates(e,t=!1,n=!1){return t&&e.sort((e,t)=>(e.label??``)>(t.label??``)?1:-1),e.map(e=>A(`calcite-list-item`,{description:this._getPageSizeLabel(e),key:`template-${e.id}-${e.id===this.templateOptions.id}`,label:this._getTemplateLabel(e),selected:e.id===this.templateOptions.id,title:e.description??``,value:e},A(`calcite-icon`,{icon:(e.layout?V.get(e.layout):null)||`custom-print`,slot:`content-start`}),e.state===`loading`?A(`calcite-loader`,{inline:!0,key:`template-loader-${e.id}`,label:`loading`,scale:`s`,slot:`content-end`}):null,e?.state===`error`?A(`calcite-icon`,{class:I.templateSelectError,icon:`exclamation-mark-circle`,key:`template-error-${e.id}`,scale:`s`,slot:`content-end`}):null,n?A(`calcite-action`,{icon:`trash`,slot:`actions-end`,text:`delete`,onclick:()=>this.viewModel.removePortalTemplate(e)}):null))}_renderChooseTemplateFlowItem(){if(!this._showTemplates)return null;let{messages:e}=this,t=v.test(this.portal?.url),n=this.viewModel.browseTemplates.toArray(),r=this._getPortalTemplates(),i=this._getDefaultTemplates(),a=this._getPrintServiceTemplates(),o=n.length+r.length+i.length+a.length>15,s=this.browseTemplateButtonOnClick?A(`calcite-button`,{appearance:`outline`,class:o?I.browseTemplateButtonContainerFilter:I.browseTemplateButtonContainer,iconStart:`folder`,key:`browse-template-button`,slot:o?`filter-actions-end`:`default`,onclick:this.browseTemplateButtonOnClick},o?null:e.browseTemplates):null;return A(`calcite-flow-item`,{bind:this,closable:!1,heading:e.chooseTemplate,key:`template-flow-item`,selected:this._showTemplates,onCalciteFlowItemBack:e=>{e.preventDefault(),this._showTemplates=!1}},A(`div`,{class:I.templateSelectFlowItemContainer},A(`div`,{class:I.templateSelectFlowItemContent},o?null:s,A(`calcite-list`,{filterEnabled:o,filterProps:[`label`],key:`template-list`,label:e.templateList,selectionMode:`single-persist`,onCalciteListChange:({currentTarget:e})=>this.viewModel.applyTemplate(e.selectedItems[0]?.value)},o?s:null,n.length?A(`div`,{key:`my-templates`},A(`div`,{class:I.templateSelectFlowItemListHeading},e.myTemplates,t?A(`calcite-chip`,{appearance:`outline`,kind:`neutral`,label:e.beta,scale:`s`},e.beta):null),this._renderLayoutTemplates(n,!0,!0)):null,r.length?A(`div`,{key:`org-templates`},A(`div`,{class:I.templateSelectFlowItemListHeading},e.organizationTemplates,t?A(`calcite-chip`,{appearance:`outline`,kind:`neutral`,label:e.beta,scale:`s`},e.beta):null),this._renderLayoutTemplates(r)):null,n.length||r.length?i.length?A(`div`,{key:`default-templates`},A(`div`,{class:I.templateSelectFlowItemListHeading},e.defaultTemplates),this._renderLayoutTemplates(i,!0)):null:this._renderLayoutTemplates(i,!0),n.length||r.length?a.length?A(`div`,{key:`service-templates`},A(`div`,{class:I.templateSelectFlowItemListHeading},e.defaultTemplates),this._renderLayoutTemplates(a)):null:this._renderLayoutTemplates(a))),A(`div`,{class:I.templateButtonContainer},A(`calcite-button`,{class:I.templateDoneButton,onclick:()=>this._showTemplates=!1},this.messagesCommon.done))))}_renderCustomTextElementSection(){let{customTextElements:e}=this.templateOptions;return e?A(`div`,{class:I.formSectionContainer,key:`custom-text-elements`},e.map((e,t)=>{let[n,r]=Object.entries(e)[0];return n===`date`?null:A(`calcite-label`,{key:`custom-text-elements-${n}-${t}`},n,A(`calcite-input`,{bind:this,"data-input-custom":!0,"data-input-name":n,value:r??``,onCalciteInputInput:this._updateInputValue}))})):null}_renderTitleOrFileNameSection(){let{title:e,fileName:t,titlePlaceHolder:n,fileNamePlaceHolder:r}=this.messages,i=this._selectedTab===`layoutTab`?e:t,a=this._selectedTab===`layoutTab`?n:r,o=this._selectedTab===`layoutTab`?this.templateOptions.title:this.templateOptions.fileName;return A(`div`,{class:I.formSectionContainer,key:i},A(`calcite-label`,null,i,A(`calcite-input`,{placeholder:a,value:o??``,onCalciteInputInput:this._onInput})))}_focusOnTabChange(e){if(!this._activeTabFocusRequested)return;let t=e.getAttribute(`data-tab-id`);(t===`layoutTab`&&this._selectedTab===`layoutTab`||t===`mapOnlyTab`&&this._selectedTab===`mapOnlyTab`||t===`exportTab`&&this._selectedTab===`exportTab`)&&(e.focus(),this._activeTabFocusRequested=!1)}_renderLoader(){let e={[I.loader]:this._awaitingServerResponse};return A(`div`,{class:this.classes(e),key:`loader`})}_resetToCurrentScale(){this.templateOptions.scale=this.viewModel.view?.scale}_updateCustomTextElementValue(e,t,n){let r=e.find(e=>{let[n]=Object.entries(e)[0];return n===t});r[t]=n}_updateInputValue(e){let t=e.currentTarget,n=t.getAttribute(`data-input-name`),r=!!t[`data-input-custom`],{templateOptions:i}=this;r?this._updateCustomTextElementValue(i.customTextElements,n,t.value):i[n]=t.value}_updateNumberInputValue(e){let t=e.currentTarget,n=t.getAttribute(`data-input-name`),{templateOptions:r}=this,i=Number(t.value);L(i)?r[n]=i:t.value=`${r[n]}`}_handlePrintMap(){this._pendingExportScroll=!0;let{templateOptions:e}=this,t=this._selectedTab===`layoutTab`?e.title:e.fileName,{promise:n}=this.viewModel.export(t||this.messages.untitled);this._selectedTab=`exportTab`,n.then(()=>this.scheduleRender())}_switchInput(){[this.templateOptions.width,this.templateOptions.height]=[this.templateOptions.height,this.templateOptions.width]}_scrollExportIntoView(){if(!this._pendingExportScroll)return;this._pendingExportScroll=!1;let e=this._rootNode;if(!e)return;let{clientHeight:t,scrollHeight:n}=e,r=n-t;r>0&&(e.scrollTop=r)}_toggleInputValue(e){let t=e.target,n=t.getAttribute(`data-option-name`);this.templateOptions[n]=t.checked,n===`scaleEnabled`&&this._resetToCurrentScale()}_renderExportedLinkItemPopover(e){let t=this.messages,n=e.formattedName??``,{state:r}=e,i=this.saveAsButtonCallback&&r!==`error`&&this._isFormatAllowedForSaving(e.extension);return r!==`pending`&&i?A(`calcite-popover`,{autoClose:!0,key:`${n}-popover`,label:`Popover`,offsetDistance:1,overlayPositioning:`fixed`,pointerDisabled:!0,referenceElement:`${n}-popover-button`,scale:`s`,topLayerDisabled:this.topLayerDisabled},A(`calcite-list`,{label:``},e.portalItem?A(`calcite-list-item`,{label:t.openItem,onCalciteListItemSelect:()=>{let t=e.portalItem;if(!t||!t.itemPageUrl)return;let n=document.createElement(`a`);n.target=`_blank`,n.href=t.itemPageUrl,n.rel=`noreferrer`,n.click()}},A(`calcite-icon`,{icon:`launch2`,key:`${n}-launch-icon`,scale:`s`,slot:`content-start`})):A(`calcite-list-item`,{label:t.saveAs,onCalciteListItemSelect:async()=>{this.saveAsButtonCallback&&(c(()=>e.portalItem).then(e=>{e.itemPageUrl&&this.scheduleRender()}),await this.saveAsButtonCallback(e))}},A(`calcite-icon`,{icon:`save`,key:`${n}-save-icon`,scale:`s`,slot:`content-start`})),A(`calcite-list-item`,{label:this.messagesCommon.delete,onCalciteListItemSelect:()=>this.exportedLinks.remove(e)},A(`calcite-icon`,{icon:`trash`,key:`${n}-delete-icon`,scale:`s`,slot:`content-start`})))):null}_renderExportedLinkItemContent(e){let t=this.messages,{url:n,state:r,error:i}=e,a=e.formattedName??``,o=n||null;o&&=u(o);let s=d(o,location.href),c=r===`error`?i?.name===`print-task:cim-symbol-unsupported`?t.exportWebMapCIMError:t.exportWebMapError:null;return A(`div`,{class:I.exportedFile,"data-item":e,slot:`content`,onclick:this._handleLinkClick},A(`div`,null,A(`div`,{class:I.exportedFileLinkTitle},a),A(`div`,{class:I.exportedFileLinkDescription},r===`pending`?t.generatingExport:c||(s?t.ready:t.linkReady))),r===`ready`?A(`calcite-icon`,{"aria-label":`${a}. ${t.linkReady}`,icon:s?`download-to`:`launch`,key:`${a}-end-icon`,scale:`s`,slot:`content-end`}):null)}_renderExportedLinkItemIcon(e){let t=e.formattedName??``;return e.state===`pending`?A(`calcite-loader`,{class:I.exportedFileLoader,inline:!0,key:`${t}-loader`,label:this.messages.generatingExport,scale:`m`,slot:`content-start`}):A(`calcite-icon`,{icon:z(e),key:`${t}-start-icon`,scale:`s`,slot:`content-start`})}_renderExportedLinkItemAction(e){let{state:t}=e,n=e.formattedName??``,r=this.saveAsButtonCallback&&t!==`error`&&this._isFormatAllowedForSaving(e.extension);return t===`pending`?null:A(`calcite-action`,{icon:r?`ellipsis`:`x`,id:r?`${n}-popover-button`:void 0,key:r?`${n}-saveAs-action`:`${n}-action`,slot:`actions-end`,text:r?this.messagesCommon.options:this.messagesCommon.remove,onclick:r?void 0:()=>{this.exportedLinks.remove(e)}})}_renderExportedLinkItem(e){let t=e.formattedName??``;return A(M,null,A(`calcite-list-item`,{key:t,label:t},this._renderExportedLinkItemContent(e),this._renderExportedLinkItemIcon(e),this._renderExportedLinkItemAction(e)),this._renderExportedLinkItemPopover(e))}_renderExportedLinkItems(e){return A(`calcite-list`,{filterEnabled:e?.length>10,label:this.messages.exportedLinksList,selectionMode:`none`},e.map(this._renderExportedLinkItem.bind(this)))}_isFormatAllowedForSaving(e){return!this.allowedFormatsForSaving||this.allowedFormatsForSaving===`all`||!!(e&&this.allowedFormatsForSaving.includes(e))}_toggleLayoutPanel(e){let t=e.target;this._toggleTab(t.getAttribute(`data-tab-id`))}_toggleTab(e,t=!0){if(this._selectedTab=e,this._selectedTab===`mapOnlyTab`)this.viewModel.applyTemplate(P);else if(this._selectedTab===`layoutTab`){let e=this._selectedTemplate??this.viewModel.defaultTemplate;this.viewModel.applyTemplate(e)}t&&(this._activeTabFocusRequested=!0)}_handleLayoutPanelKeyDown(e){let{key:t}=e,n=e.target.getAttribute(`data-tab-id`);if(N(t))this._toggleTab(n),e.preventDefault(),e.stopPropagation();else if(t===`ArrowLeft`||t===`ArrowRight`){switch(n){case`layoutTab`:this._toggleTab(t===`ArrowLeft`?`exportTab`:`mapOnlyTab`);break;case`mapOnlyTab`:this._toggleTab(t===`ArrowLeft`?`layoutTab`:`exportTab`);break;case`exportTab`:this._toggleTab(t===`ArrowLeft`?`mapOnlyTab`:`layoutTab`)}e.preventDefault(),e.stopPropagation()}}};e([f()],H.prototype,`_showTemplates`,void 0),e([f()],H.prototype,`_isValidSpatialReference`,void 0),e([f()],H.prototype,`allowedFormats`,null),e([f()],H.prototype,`allowedFormatsForSaving`,void 0),e([f()],H.prototype,`allowedLayouts`,null),e([f()],H.prototype,`browseTemplateButtonOnClick`,void 0),e([f()],H.prototype,`error`,null),e([f({type:n.ofType(S)})],H.prototype,`exportedLinks`,null),e([f()],H.prototype,`extraParameters`,null),e([f()],H.prototype,`headerVisible`,void 0),e([f()],H.prototype,`headingLevel`,void 0),e([f()],H.prototype,`icon`,null),e([f()],H.prototype,`includeDefaultTemplates`,null),e([f()],H.prototype,`includeOrganizationTemplates`,void 0),e([f()],H.prototype,`label`,null),e([f(),k(`esri/widgets/Print/t9n/Print`)],H.prototype,`messages`,void 0),e([f(),k(`esri/t9n/common`)],H.prototype,`messagesCommon`,void 0),e([f(),k(`esri/core/t9n/Units`)],H.prototype,`messagesUnits`,void 0),e([f({type:h})],H.prototype,`outSpatialReference`,null),e([f({type:_})],H.prototype,`portal`,null),e([f()],H.prototype,`saveExportEnabled`,null),e([f()],H.prototype,`saveExportHidden`,void 0),e([f()],H.prototype,`showPrintAreaEnabled`,null),e([f()],H.prototype,`printServiceUrl`,null),e([f()],H.prototype,`saveAsButtonCallback`,void 0),e([f()],H.prototype,`templateCustomTextElements`,null),e([f({type:w})],H.prototype,`templateOptions`,null),e([f()],H.prototype,`view`,null),e([f({type:C})],H.prototype,`viewModel`,void 0),H=e([p(`esri.widgets.Print`)],H);const U=H;export{U as default};
2
+ import{__decorate as e}from"tslib";import{formatNumber as t}from"../intl.js";import n from"../core/Collection.js";import{deprecateWidget as r}from"../core/deprecate.js";import{JSONMap as i}from"../core/jsonMap.js";import a from"../core/Logger.js";import{watch as o,on as s,whenOnce as c}from"../core/reactiveUtils.js";import{unitName as l}from"../core/unitFormatUtils.js";import{addProxy as u,hasSameOrigin as d}from"../core/urlUtils.js";import{property as f,subclass as p}from"../core/accessorSupport/decorators.js";import{ensureInteger as m}from"../core/accessorSupport/ensureType.js";import h from"../geometry/SpatialReference.js";import{isValid as g}from"../geometry/support/spatialReferenceUtils.js";import _ from"../portal/Portal.js";import{reArcGISOnlineDomain as v}from"../portal/support/urlUtils.js";import{findToken as y}from"../rest/utils.js";import{formatJsonMap as b}from"../rest/support/fileFormat.js";import x from"./Widget.js";import S from"./Print/FileLink.js";import C from"./Print/PrintViewModel.js";import w from"./Print/TemplateOptions.js";import{loadCalciteComponents as T}from"./support/componentsUtils.js";import{globalCss as E}from"./support/globalCss.js";import{Heading as D}from"./support/Heading.js";import{legacyIcon as O}from"./support/legacyIcon.js";import{messageBundle as k,tsx as A,isRTL as j,tsxFragment as M,isActivationKey as N}from"./support/widget.js";const P=`map-only`,F=`esri-print`,I={base:F,headerTitle:`${F}__header-title`,layoutTabList:`${F}__layout-tab-list`,layoutTab:`${F}__layout-tab`,layoutSection:`${F}__layout-section`,mapOnlySection:`${F}__map-only-section`,panelItemsCentered:`${F}__panel-items--centered`,loader:`${F}__loader`,swapButton:`${F}__swap-button`,printButton:`${F}__export-button`,printButtonSection:`${F}__export-button-section`,printButtonSectionDivider:`${F}__export-button-section--divider`,templateSelectContainer:`${F}__template-select-container`,templateSelectIcon:`${F}__template-select-icon`,templateSelectError:`${F}__template-select-error`,templateSelectArrow:`${F}__template-select-arrow`,formSectionContainer:`${F}__form-section-container`,advancedOptionsSection:`${F}__advanced-options-section`,advancedOptionsContainer:`${F}__advanced-options-container`,browseTemplateButtonContainer:`${F}__browse-template-button-container`,browseTemplateButtonContainerFilter:`${F}__browse-template-button-container-filter`,exportedFilesContainer:`${F}__export-panel-container`,exportedFilesTitle:`${F}__export-title`,exportedFile:`${F}__exported-file`,exportedFileLinkTitle:`${F}__exported-file-link-title`,exportedFileLinkDescription:`${F}__exported-file-link-description`,exportedFilesEmpty:`${F}__exported-files-empty`,printWidgetContainer:`${F}__container`,content:`${F}__content`,panelContainer:`${F}__panel-container`,scaleInfoContainer:`${F}__scale-info-container`,scaleInputContainer:`${F}__scale-input-container`,scaleInput:`${F}__scale-input`,sizeContainer:`${F}__size-container`,panelError:`${F}__panel--error`,exportedFileLoader:`${F}__exported-file--loader`,exportSection:`${F}__export-section`,exportSectionCentered:`${F}__export-section--centered`,templateButtonContainer:`${F}__template-button-container`,templateDoneButton:`${F}__template-done-button`,templateSelectFlowItemContainer:`${F}__template-select-flow-item-container`,templateSelectFlowItemContent:`${F}__template-select-flow-item-content`,templateSelectFlowItemListHeading:`${F}__template-select-flow-item-list-heading`,srLabel:`${F}__sr-label`,invalidWkidText:`${F}__invalid-wkid-text`};function L(e){return!isNaN(e)&&e>0&&Number.isFinite(e)}function R(e){return e?.toLowerCase()===P}function z(e){let{state:t,extension:n}=e;switch(t){case`pending`:return`spinner`;case`error`:return`exclamation-mark-circle`;default:return n?.toLowerCase()?.includes(`pdf`)?`file-pdf`:`file`}}const B=new i({inch:`inches`,foot:`feet`,yard:`yards`,mile:`miles`,"nautical-mile":`nautical-miles`,millimeter:`millimeters`,centimeter:`centimeters`,decimeter:`decimeters`,meter:`meters`,kilometer:`kilometers`}),V=new Map([[`a3-landscape`,`a3-landscape`],[`a3-portrait`,`a3-portrait`],[`a4-landscape`,`a4-landscape`],[`a4-portrait`,`a4-portrait`],[`letter-ansi-a-landscape`,`ansi-a-landscape`],[`letter-ansi-a-portrait`,`ansi-a-portrait`],[`tabloid-ansi-b-landscape`,`ansi-b-landscape`],[`tabloid-ansi-b-portrait`,`ansi-b-portrait`]]);let H=class extends x{constructor(e,t){super(e,t),this._activeTabFocusRequested=!1,this._awaitingServerResponse=!1,this._selectedTab=`layoutTab`,this._pendingExportScroll=!1,this._rootNode=null,this._selectedTemplate=null,this._formats=[],this._showTemplates=!1,this._isValidSpatialReference=!0,this.allowedFormatsForSaving=null,this.browseTemplateButtonOnClick=null,this.headerVisible=!0,this.headingLevel=3,this.includeOrganizationTemplates=!0,this.messagesCommon=null,this.messagesUnits=null,this.saveExportHidden=!0,this.saveAsButtonCallback=null,this.viewModel=new C,this._onInput=e=>{this._selectedTab===`layoutTab`?this.templateOptions.title=e.currentTarget.value:this._selectedTab===`mapOnlyTab`&&(this.templateOptions.fileName=e.currentTarget.value)},this._handleLinkClick=e=>{let t=e.currentTarget[`data-item`];if(!t||t.state!==`ready`||!t.url)return;let n=y(this.viewModel.effectivePrintServiceUrl),r=t.url,i=document.createElement(`a`);if(i.target=`_blank`,i.href=r,i.rel=`noreferrer`,i.download=t.formattedName??``,!n){i.click(),e.stopPropagation();return}e.preventDefault();let a=new URL(r);a.searchParams.set(`token`,n),i.href=a.href,i.click(),i.href=r},r(a.getLogger(this),`Print`,`arcgis-print`,{version:`4.33`}),this._focusOnTabChange=this._focusOnTabChange.bind(this)}initialize(){this.addHandles([o(()=>[this.templateOptions.format,this.viewModel.templatesInfo?.format],()=>{let{templatesInfo:e}=this.viewModel;if(!e)return;if(this._formats.length!==e.format.choiceList.length){let t=b.apiValues;this._formats=e.format.choiceList.map(e=>{let n=t.find(t=>RegExp(`\\b${t}\\b`,`i`).test(e))??e;return{value:n,label:e===n?e.toUpperCase():e}}).sort((e,t)=>e.label.localeCompare(t.label))}let t=this._formats.some(({value:e})=>RegExp(`\\b${e}\\b`,`i`).test(this.templateOptions.format));if(e.format.defaultValue&&!t){let t=this._formats.find(({value:t})=>RegExp(`\\b${t}\\b`,`i`).test(e.format.defaultValue))?.value;t&&(this.templateOptions.format=t)}}),o(()=>[this.templateOptions.id,this.viewModel.loaded],()=>{let{layout:e}=this.templateOptions;this._selectedTab=R(e)?`mapOnlyTab`:`layoutTab`,this._selectedTab===`layoutTab`&&this.viewModel.loaded&&(this._selectedTemplate=this.viewModel.getLayoutTemplateById(this.templateOptions.id))}),o(()=>this.templateOptions.dpi,e=>{e<=0&&(this.templateOptions.dpi=1)}),o(()=>this.viewModel.view?.scale,e=>{e&&(!this.templateOptions.scaleEnabled||!this.templateOptions.scale)&&(this.templateOptions.scale=e)}),s(()=>this.viewModel,`submit`,e=>this.emit(`submit`,e)),s(()=>this.viewModel,`complete`,e=>this.emit(`complete`,e))]);let{height:e,width:t}=this.templateOptions;this.templateOptions.width=t||800,this.templateOptions.height=e||1100;let n=setTimeout(()=>{this._awaitingServerResponse=!0,this.scheduleRender()},500);this.viewModel.load().then(()=>{clearTimeout(n),this._awaitingServerResponse=!1},()=>{})}loadDependencies(){return T({action:()=>import(`@esri/calcite-components/dist/components/calcite-action`),block:()=>import(`@esri/calcite-components/dist/components/calcite-block`),button:()=>import(`@esri/calcite-components/dist/components/calcite-button`),checkbox:()=>import(`@esri/calcite-components/dist/components/calcite-checkbox`),combobox:()=>import(`@esri/calcite-components/dist/components/calcite-combobox`),"combobox-item":()=>import(`@esri/calcite-components/dist/components/calcite-combobox-item`),flow:()=>import(`@esri/calcite-components/dist/components/calcite-flow`),"flow-item":()=>import(`@esri/calcite-components/dist/components/calcite-flow-item`),icon:()=>import(`@esri/calcite-components/dist/components/calcite-icon`),input:()=>import(`@esri/calcite-components/dist/components/calcite-input`),"input-number":()=>import(`@esri/calcite-components/dist/components/calcite-input-number`),label:()=>import(`@esri/calcite-components/dist/components/calcite-label`),list:()=>import(`@esri/calcite-components/dist/components/calcite-list`),"list-item":()=>import(`@esri/calcite-components/dist/components/calcite-list-item`),loader:()=>import(`@esri/calcite-components/dist/components/calcite-loader`),switch:()=>import(`@esri/calcite-components/dist/components/calcite-switch`),chip:()=>import(`@esri/calcite-components/dist/components/calcite-chip`),popover:()=>import(`@esri/calcite-components/dist/components/calcite-popover`),link:()=>import(`@esri/calcite-components/dist/components/calcite-link`)})}destroy(){this.viewModel.destroy()}get allowedFormats(){return this.viewModel.allowedFormats}set allowedFormats(e){this.viewModel.allowedFormats=e}get allowedLayouts(){return this.viewModel.allowedLayouts}set allowedLayouts(e){this.viewModel.allowedLayouts=e}get error(){return this.viewModel.error}get exportedLinks(){return this.viewModel.exportedLinks}set exportedLinks(e){this.viewModel.exportedLinks=e}get extraParameters(){return this.viewModel.extraParameters}set extraParameters(e){this.viewModel.extraParameters=e}get icon(){return`print`}set icon(e){this._overrideIfSome(`icon`,e)}get includeDefaultTemplates(){return this.viewModel.includeDefaultTemplates}set includeDefaultTemplates(e){this.viewModel.includeDefaultTemplates=e}get label(){return this.messages?.widgetLabel??``}set label(e){this._overrideIfSome(`label`,e)}get outSpatialReference(){return this.viewModel.outSpatialReference}set outSpatialReference(e){this.viewModel.outSpatialReference=e}get portal(){return this.viewModel.portal}set portal(e){this.viewModel.portal=e}get saveExportEnabled(){return this.viewModel.saveExportEnabled}set saveExportEnabled(e){this.viewModel.saveExportEnabled=e}get showPrintAreaEnabled(){return this.viewModel.showPrintAreaEnabled}set showPrintAreaEnabled(e){this.viewModel.showPrintAreaEnabled=e}get printServiceUrl(){return this.viewModel.printServiceUrl}set printServiceUrl(e){this.viewModel.printServiceUrl=e}get templateCustomTextElements(){return this.viewModel.templateCustomTextElements}set templateCustomTextElements(e){this.viewModel.templateCustomTextElements=e}get templateOptions(){return this.viewModel.templateOptions}set templateOptions(e){this.viewModel.templateOptions=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}render(){let{messages:e,templateOptions:t,viewModel:n,view:r}=this,{attributionEnabled:i,author:a,copyright:o,dpi:s,format:c,height:l,layout:u,layoutItem:d,legendEnabled:f,northArrowEnabled:p,scaleBarEnabled:_,scaleEnabled:v,scale:y,width:b}=t,x=n.state!==`ready`||this._awaitingServerResponse||!(u||d),S=this._renderTitleOrFileNameSection(),C=A(`div`,{class:I.formSectionContainer},A(`calcite-label`,null,e.fileFormatTitle,A(`calcite-combobox`,{clearDisabled:!0,label:e.formatDefaultOption,maxItems:6,placeholder:e.formatDefaultOption,selectionMode:`single-persist`,topLayerDisabled:this.topLayerDisabled,onCalciteComboboxChange:({currentTarget:e})=>{this.templateOptions.format=e.selectedItems[0]?.value??`pdf`}},this._formats.map(({value:e,label:t},n)=>A(`calcite-combobox-item`,{heading:t,key:`file-format-${n}`,selected:e===this.templateOptions.format,value:e}))))),w=A(`calcite-label`,{layout:`inline`},A(`calcite-switch`,{checked:this.showPrintAreaEnabled,onCalciteSwitchChange:e=>{this.showPrintAreaEnabled=!!e.currentTarget.checked}}),e.printPreview),T=A(`div`,null,A(`div`,{class:I.formSectionContainer},A(`calcite-label`,null,e.template,A(`calcite-block`,{class:I.templateSelectContainer,description:this._getPageSizeLabel(this._selectedTemplate),expandable:!1,heading:this._getTemplateLabel(this._selectedTemplate,!0),key:`template-select-block`,label:e.template,loading:this._selectedTemplate?.state===`loading`,tabIndex:0,onclick:()=>this._showTemplates=!0,onkeydown:e=>{(e.key===`Enter`||e.key===` `)&&(this._showTemplates=!0)}},A(`calcite-icon`,{class:I.templateSelectIcon,icon:(this._selectedTemplate?.layout?V.get(this._selectedTemplate.layout):null)||`custom-print`,key:`template-select-icon`,scale:`l`,slot:`content-start`}),this._selectedTemplate?.state===`error`?A(`calcite-icon`,{class:I.templateSelectError,icon:`exclamation-mark-circle`,key:`template-select-error`,scale:`s`,slot:`actions-end`}):null,A(`calcite-icon`,{class:I.templateSelectArrow,icon:j()?`chevron-left`:`chevron-right`,key:`template-select-arrow`,scale:`s`,slot:`actions-end`})))),w),k=A(`div`,{class:I.formSectionContainer},A(`calcite-label`,null,e.dpi,A(`calcite-input-number`,{bind:this,"data-input-name":`dpi`,min:1,value:`${s}`,onCalciteInputNumberInput:this._updateNumberInputValue}))),M=A(`div`,{class:I.formSectionContainer},A(`calcite-label`,null,A(`div`,{class:I.srLabel},e.outSpatialReference,A(`calcite-link`,{href:`https://developers.arcgis.com/rest/services-reference/enterprise/using-spatial-references/`,target:`_blank`},`(WKID)`)),A(`calcite-input-number`,{bind:this,"data-input-name":`outSpatialReference`,integer:!0,numberButtonType:`none`,value:n.outSpatialReference?.wkid?.toString()??``,onCalciteInputNumberInput:({currentTarget:e})=>{let t=m(e.value);n.outSpatialReference=Number.isNaN(t)||t==null?null:new h({wkid:t}),this._isValidSpatialReference=!n.outSpatialReference||g(n.outSpatialReference)}}),this._isValidSpatialReference?null:A(`div`,{class:I.invalidWkidText,key:`out-sr-${n.outSpatialReference?.wkid}`},e.invalidWkid))),N=A(`div`,{class:this.classes(I.scaleInfoContainer,I.formSectionContainer)},A(`calcite-label`,{layout:`inline`},A(`calcite-checkbox`,{bind:this,checked:v,"data-option-name":`scaleEnabled`,onCalciteCheckboxChange:this._toggleInputValue}),e.scale),A(`div`,{class:I.scaleInputContainer},A(`calcite-input-number`,{"aria-label":e.scaleLabel,"aria-valuenow":`${y}`,bind:this,class:I.scaleInput,"data-input-name":`scale`,disabled:!v,value:`${y}`,onCalciteInputNumberInput:this._updateNumberInputValue}),A(`calcite-button`,{appearance:`outline`,"aria-label":e.reset,bind:this,disabled:!v,iconStart:`refresh`,kind:`neutral`,onclick:this._resetToCurrentScale}))),P=A(`div`,{"aria-labelledby":`${this.id}__advancedOptionsForLayout`,class:I.advancedOptionsContainer,key:`advanced-section-for-layout`},N,this._selectedTemplate?.layoutTemplateInfo?.layoutOptions?.hasAuthorText??!0?A(`div`,{class:I.formSectionContainer,key:`author-info`},A(`calcite-label`,null,e.author,A(`calcite-input`,{bind:this,"data-input-name":`author`,value:a??``,onCalciteInputInput:this._updateInputValue}))):null,this._selectedTemplate?.layoutTemplateInfo?.layoutOptions?.hasCopyrightText??!0?A(`div`,{class:I.formSectionContainer,key:`copyright-text`},A(`calcite-label`,null,e.copyright,A(`calcite-input`,{bind:this,"data-input-name":`copyright`,value:o??``,onCalciteInputInput:this._updateInputValue}))):null,k,M,this._renderCustomTextElementSection(),this._selectedTemplate?.layoutTemplateInfo?.layoutOptions?.hasLegend??!0?A(`div`,{class:I.formSectionContainer,key:`legend-info`},A(`calcite-label`,{layout:`inline`},A(`calcite-checkbox`,{bind:this,checked:!!f,"data-option-name":`legendEnabled`,onCalciteCheckboxChange:this._toggleInputValue}),e.legend)):null,this._selectedTemplate?.mapSurroundInfoOptions?.northArrow.length?A(`div`,{class:I.formSectionContainer,key:`north-arrow`},A(`calcite-label`,{layout:`inline`},A(`calcite-checkbox`,{bind:this,checked:!!p,"data-option-name":`northArrowEnabled`,onCalciteCheckboxChange:this._toggleInputValue}),e.northArrow)):null,this._selectedTemplate?.mapSurroundInfoOptions?.scaleBar.length?A(`div`,{class:I.formSectionContainer,key:`scale-bar`},A(`calcite-label`,{layout:`inline`},A(`calcite-checkbox`,{bind:this,checked:!!_,"data-option-name":`scaleBarEnabled`,onCalciteCheckboxChange:this._toggleInputValue}),e.scaleBar)):null),F=A(`div`,{"aria-labelledby":`${this.id}__advancedOptionsForMapOnly`,class:I.advancedOptionsContainer},N,k,M,A(`div`,{class:I.formSectionContainer},A(`calcite-label`,{layout:`inline`},A(`calcite-checkbox`,{bind:this,checked:i,"data-option-name":`attributionEnabled`,onCalciteCheckboxChange:this._toggleInputValue}),e.attribution)),this._renderCustomTextElementSection()),L=this.exportedLinks.toArray(),R=this._renderExportedLinkItems(L),z={[I.exportSectionCentered]:!L.length},B=this._selectedTab===`layoutTab`?A(`section`,{"aria-labelledby":`${this.id}__layoutTab`,class:I.layoutSection,id:`${this.id}__layoutContent`,key:`esri-print__layoutContent`,role:`tabpanel`},A(`div`,{class:I.panelContainer},this._selectedTemplate?.layoutTemplateInfo?.layoutOptions?.hasTitleText??!0?S:null,T,this._selectedTab===`layoutTab`?C:null,A(`calcite-block`,{"aria-label":e.advancedOptions,class:this.classes(I.panelContainer,I.advancedOptionsSection),disabled:!(u||d?.id),expandable:!0,heading:e.advancedOptions,id:`advancedOptionsForLayout`,key:`advanced-options-for-layout`},P))):this._selectedTab===`mapOnlyTab`?A(`section`,{"aria-labelledby":`${this.id}__mapOnlyTab`,class:I.mapOnlySection,id:`${this.id}__mapOnlyContent`,key:`esri-print__mapOnlyContent`,role:`tabpanel`},A(`div`,{class:I.panelContainer},S,C,A(`div`,null,A(`div`,{class:this.classes(I.sizeContainer,I.formSectionContainer)},A(`calcite-label`,null,e.width,A(`calcite-input-number`,{bind:this,"data-input-name":`width`,value:`${b}`,onCalciteInputNumberInput:this._updateNumberInputValue})),A(`calcite-label`,null,e.height,A(`calcite-input-number`,{bind:this,"data-input-name":`height`,value:`${l}`,onCalciteInputNumberInput:this._updateNumberInputValue})),A(`button`,{"aria-label":e.swap,bind:this,class:this.classes(E.widgetButton,I.swapButton,O.swap),type:`button`,onclick:this._switchInput})),w),A(`calcite-block`,{"aria-label":e.advancedOptions,class:this.classes(I.panelContainer,I.advancedOptionsSection),expandable:!0,heading:e.advancedOptions,id:`advancedOptionsForMapOnly`,key:`advanced-options-for-map-only`},F))):A(`section`,{"aria-labelledby":`${this.id}__exportTab`,class:this.classes(I.exportSection,z),id:`${this.id}__exportContent`,key:`esri-print__exportContent`,role:`tabpanel`},A(`div`,{class:I.panelContainer},A(`div`,{afterUpdate:this._scrollExportIntoView,bind:this,class:I.exportedFilesContainer},L.length===0?A(`div`,{class:I.exportedFilesEmpty},A(`calcite-icon`,{icon:`file`,scale:`l`}),A(`div`,null,A(D,{class:I.exportedFilesTitle,level:this.headingLevel},e.noExportedFiles),A(`div`,null,e.exportHint))):R))),H=r?.type!==`2d`,U=A(`div`,{class:I.panelError},r?H?e.sceneViewError:e.serviceError:e.noViewError),W=L.some(({state:e})=>e===`pending`),G=A(`div`,{class:I.content,key:`panel`},A(`div`,null,A(`ul`,{bind:this,class:I.layoutTabList,role:`tablist`,onclick:this._toggleLayoutPanel,onkeydown:this._handleLayoutPanelKeyDown},A(`li`,{afterCreate:this._focusOnTabChange,afterUpdate:this._focusOnTabChange,"aria-selected":`${this._selectedTab===`layoutTab`}`,class:I.layoutTab,"data-tab-id":`layoutTab`,id:`${this.id}__layoutTab`,role:`tab`,tabIndex:0},e.layoutTab),A(`li`,{afterCreate:this._focusOnTabChange,afterUpdate:this._focusOnTabChange,"aria-selected":`${this._selectedTab===`mapOnlyTab`}`,class:I.layoutTab,"data-tab-id":`mapOnlyTab`,id:`${this.id}__mapOnlyTab`,role:`tab`,tabIndex:0},e.mapOnlyTab),A(`li`,{afterCreate:this._focusOnTabChange,afterUpdate:this._focusOnTabChange,"aria-selected":`${this._selectedTab===`exportTab`}`,class:I.layoutTab,"data-tab-id":`exportTab`,id:`${this.id}__exportedFilesTab`,role:`tab`,tabIndex:0},W?A(`calcite-loader`,{inline:!0,label:`loading`,scale:`s`}):null,e.exportsTab)),B),this._selectedTab===`exportTab`?null:A(`div`,{class:this.classes(I.printButtonSection,!this.saveExportHidden&&this.portal?I.printButtonSectionDivider:null),key:`export-button-section`},!this.saveExportHidden&&this.portal?A(`calcite-label`,{layout:`inline`},A(`calcite-checkbox`,{bind:this,checked:this.saveExportEnabled,onCalciteCheckboxChange:e=>{this.saveExportEnabled=!!e.currentTarget.checked}}),e.saveExportToMyContent):null,A(`calcite-button`,{"aria-label":e.exportDescription,bind:this,class:this.classes(I.printButton),disabled:x||!(u||d?.id)&&!c,scale:`l`,width:`full`,onclick:this._handlePrintMap},e.export))),K=A(`calcite-flow`,{key:`root-flow`},A(`calcite-flow-item`,{bind:this,key:`root-flow-item`,selected:!this._showTemplates},A(`div`,{class:I.printWidgetContainer},this.headerVisible?A(`header`,{class:I.headerTitle},e.export):null,this.error||H||!r?U:G)),this._renderChooseTemplateFlowItem()),q=n.state===`initializing`,J=q?this._renderLoader():K,Y={[I.panelItemsCentered]:q};return A(`div`,{bind:this,class:this.classes(I.base,E.widget,E.panel,Y)},J)}_getPageSizeLabel(e){if(!e)return;let n=e.layoutTemplateInfo;if(!n)return;let r=B.fromJSON(n.pageUnits.toLowerCase());return`${t(n.pageSize[0])} \u00D7 ${t(n.pageSize[1])} ${l(this.messagesUnits,r,`abbr`)}`}_getTemplateLabel(e,t=!1){if(!e)return t?this.messages.selectTemplate:this.messages.untitled;let{label:n,layout:r,layoutItem:i}=e;return(r&&!i&&this.messages[r]?this.messages[r]:null)||((n??r??i?.id)?.replaceAll(`_`,` `)??this.messages.untitled)}_getPortalTemplates(){return this.includeDefaultTemplates&&this.includeOrganizationTemplates?this.viewModel.defaultTemplates.toArray().filter(({layout:e,layoutItem:t})=>!R(e)&&!!t?.id):[]}_getDefaultTemplates(){return this.includeDefaultTemplates?this.viewModel.defaultTemplates.toArray().filter(({layout:e,layoutItem:t})=>!R(e)&&!t?.id):[]}_getPrintServiceTemplates(){return!this.includeDefaultTemplates||!this._getDefaultTemplates().length?this.viewModel.printServiceTemplates.toArray().filter(({layout:e})=>!R(e)):[]}_renderLayoutTemplates(e,t=!1,n=!1){return t&&e.sort((e,t)=>(e.label??``)>(t.label??``)?1:-1),e.map(e=>A(`calcite-list-item`,{description:this._getPageSizeLabel(e),key:`template-${e.id}-${e.id===this.templateOptions.id}`,label:this._getTemplateLabel(e),selected:e.id===this.templateOptions.id,title:e.description??``,value:e},A(`calcite-icon`,{icon:(e.layout?V.get(e.layout):null)||`custom-print`,slot:`content-start`}),e.state===`loading`?A(`calcite-loader`,{inline:!0,key:`template-loader-${e.id}`,label:`loading`,scale:`s`,slot:`content-end`}):null,e?.state===`error`?A(`calcite-icon`,{class:I.templateSelectError,icon:`exclamation-mark-circle`,key:`template-error-${e.id}`,scale:`s`,slot:`content-end`}):null,n?A(`calcite-action`,{icon:`trash`,slot:`actions-end`,text:`delete`,onclick:()=>this.viewModel.removePortalTemplate(e)}):null))}_renderChooseTemplateFlowItem(){if(!this._showTemplates)return null;let{messages:e}=this,t=v.test(this.portal?.url),n=this.viewModel.browseTemplates.toArray(),r=this._getPortalTemplates(),i=this._getDefaultTemplates(),a=this._getPrintServiceTemplates(),o=n.length+r.length+i.length+a.length>15,s=this.browseTemplateButtonOnClick?A(`calcite-button`,{appearance:`outline`,class:o?I.browseTemplateButtonContainerFilter:I.browseTemplateButtonContainer,iconStart:`folder`,key:`browse-template-button`,slot:o?`filter-actions-end`:`default`,onclick:this.browseTemplateButtonOnClick},o?null:e.browseTemplates):null;return A(`calcite-flow-item`,{bind:this,closable:!1,heading:e.chooseTemplate,key:`template-flow-item`,selected:this._showTemplates,onCalciteFlowItemBack:e=>{e.preventDefault(),this._showTemplates=!1}},A(`div`,{class:I.templateSelectFlowItemContainer},A(`div`,{class:I.templateSelectFlowItemContent},o?null:s,A(`calcite-list`,{filterEnabled:o,filterProps:[`label`],key:`template-list`,label:e.templateList,selectionMode:`single-persist`,onCalciteListChange:({currentTarget:e})=>this.viewModel.applyTemplate(e.selectedItems[0]?.value)},o?s:null,n.length?A(`div`,{key:`my-templates`},A(`div`,{class:I.templateSelectFlowItemListHeading},e.myTemplates,t?A(`calcite-chip`,{appearance:`outline`,kind:`neutral`,label:e.beta,scale:`s`},e.beta):null),this._renderLayoutTemplates(n,!0,!0)):null,r.length?A(`div`,{key:`org-templates`},A(`div`,{class:I.templateSelectFlowItemListHeading},e.organizationTemplates,t?A(`calcite-chip`,{appearance:`outline`,kind:`neutral`,label:e.beta,scale:`s`},e.beta):null),this._renderLayoutTemplates(r)):null,n.length||r.length?i.length?A(`div`,{key:`default-templates`},A(`div`,{class:I.templateSelectFlowItemListHeading},e.defaultTemplates),this._renderLayoutTemplates(i,!0)):null:this._renderLayoutTemplates(i,!0),n.length||r.length?a.length?A(`div`,{key:`service-templates`},A(`div`,{class:I.templateSelectFlowItemListHeading},e.defaultTemplates),this._renderLayoutTemplates(a)):null:this._renderLayoutTemplates(a))),A(`div`,{class:I.templateButtonContainer},A(`calcite-button`,{class:I.templateDoneButton,onclick:()=>this._showTemplates=!1},this.messagesCommon.done))))}_renderCustomTextElementSection(){let{customTextElements:e}=this.templateOptions;return e?A(`div`,{class:I.formSectionContainer,key:`custom-text-elements`},e.map((e,t)=>{let[n,r]=Object.entries(e)[0];return n===`date`?null:A(`calcite-label`,{key:`custom-text-elements-${n}-${t}`},n,A(`calcite-input`,{bind:this,"data-input-custom":!0,"data-input-name":n,value:r??``,onCalciteInputInput:this._updateInputValue}))})):null}_renderTitleOrFileNameSection(){let{title:e,fileName:t,titlePlaceHolder:n,fileNamePlaceHolder:r}=this.messages,i=this._selectedTab===`layoutTab`?e:t,a=this._selectedTab===`layoutTab`?n:r,o=this._selectedTab===`layoutTab`?this.templateOptions.title:this.templateOptions.fileName;return A(`div`,{class:I.formSectionContainer,key:i},A(`calcite-label`,null,i,A(`calcite-input`,{placeholder:a,value:o??``,onCalciteInputInput:this._onInput})))}_focusOnTabChange(e){if(!this._activeTabFocusRequested)return;let t=e.getAttribute(`data-tab-id`);(t===`layoutTab`&&this._selectedTab===`layoutTab`||t===`mapOnlyTab`&&this._selectedTab===`mapOnlyTab`||t===`exportTab`&&this._selectedTab===`exportTab`)&&(e.focus(),this._activeTabFocusRequested=!1)}_renderLoader(){let e={[I.loader]:this._awaitingServerResponse};return A(`div`,{class:this.classes(e),key:`loader`})}_resetToCurrentScale(){this.templateOptions.scale=this.viewModel.view?.scale}_updateCustomTextElementValue(e,t,n){let r=e.find(e=>{let[n]=Object.entries(e)[0];return n===t});r[t]=n}_updateInputValue(e){let t=e.currentTarget,n=t.getAttribute(`data-input-name`),r=!!t[`data-input-custom`],{templateOptions:i}=this;r?this._updateCustomTextElementValue(i.customTextElements,n,t.value):i[n]=t.value}_updateNumberInputValue(e){let t=e.currentTarget,n=t.getAttribute(`data-input-name`),{templateOptions:r}=this,i=Number(t.value);L(i)?r[n]=i:t.value=`${r[n]}`}_handlePrintMap(){this._pendingExportScroll=!0;let{templateOptions:e}=this,t=this._selectedTab===`layoutTab`?e.title:e.fileName,{promise:n}=this.viewModel.export(t||this.messages.untitled);this._selectedTab=`exportTab`,n.then(()=>this.scheduleRender())}_switchInput(){[this.templateOptions.width,this.templateOptions.height]=[this.templateOptions.height,this.templateOptions.width]}_scrollExportIntoView(){if(!this._pendingExportScroll)return;this._pendingExportScroll=!1;let e=this._rootNode;if(!e)return;let{clientHeight:t,scrollHeight:n}=e,r=n-t;r>0&&(e.scrollTop=r)}_toggleInputValue(e){let t=e.target,n=t.getAttribute(`data-option-name`);this.templateOptions[n]=t.checked,n===`scaleEnabled`&&this._resetToCurrentScale()}_renderExportedLinkItemPopover(e){let t=this.messages,n=e.formattedName??``,{state:r}=e,i=this.saveAsButtonCallback&&r!==`error`&&this._isFormatAllowedForSaving(e.extension);return r!==`pending`&&i?A(`calcite-popover`,{autoClose:!0,key:`${n}-popover`,label:`Popover`,offsetDistance:1,overlayPositioning:`fixed`,pointerDisabled:!0,referenceElement:`${n}-popover-button`,scale:`s`,topLayerDisabled:this.topLayerDisabled},A(`calcite-list`,{label:``},e.portalItem?A(`calcite-list-item`,{label:t.openItem,onCalciteListItemSelect:()=>{let t=e.portalItem;if(!t||!t.itemPageUrl)return;let n=document.createElement(`a`);n.target=`_blank`,n.href=t.itemPageUrl,n.rel=`noreferrer`,n.click()}},A(`calcite-icon`,{icon:`launch2`,key:`${n}-launch-icon`,scale:`s`,slot:`content-start`})):A(`calcite-list-item`,{label:t.saveAs,onCalciteListItemSelect:async()=>{this.saveAsButtonCallback&&(c(()=>e.portalItem).then(e=>{e.itemPageUrl&&this.scheduleRender()}),await this.saveAsButtonCallback(e))}},A(`calcite-icon`,{icon:`save`,key:`${n}-save-icon`,scale:`s`,slot:`content-start`})),A(`calcite-list-item`,{label:this.messagesCommon.delete,onCalciteListItemSelect:()=>this.exportedLinks.remove(e)},A(`calcite-icon`,{icon:`trash`,key:`${n}-delete-icon`,scale:`s`,slot:`content-start`})))):null}_renderExportedLinkItemContent(e){let t=this.messages,{url:n,state:r,error:i}=e,a=e.formattedName??``,o=n||null;o&&=u(o);let s=d(o,location.href),c=r===`error`?i?.name===`print-task:cim-symbol-unsupported`?t.exportWebMapCIMError:t.exportWebMapError:null;return A(`div`,{class:I.exportedFile,"data-item":e,slot:`content`,onclick:this._handleLinkClick},A(`div`,null,A(`div`,{class:I.exportedFileLinkTitle},a),A(`div`,{class:I.exportedFileLinkDescription},r===`pending`?t.generatingExport:c||(s?t.ready:t.linkReady))),r===`ready`?A(`calcite-icon`,{"aria-label":`${a}. ${t.linkReady}`,icon:s?`download-to`:`launch`,key:`${a}-end-icon`,scale:`s`,slot:`content-end`}):null)}_renderExportedLinkItemIcon(e){let t=e.formattedName??``;return e.state===`pending`?A(`calcite-loader`,{class:I.exportedFileLoader,inline:!0,key:`${t}-loader`,label:this.messages.generatingExport,scale:`m`,slot:`content-start`}):A(`calcite-icon`,{icon:z(e),key:`${t}-start-icon`,scale:`s`,slot:`content-start`})}_renderExportedLinkItemAction(e){let{state:t}=e,n=e.formattedName??``,r=this.saveAsButtonCallback&&t!==`error`&&this._isFormatAllowedForSaving(e.extension);return t===`pending`?null:A(`calcite-action`,{icon:r?`ellipsis`:`x`,id:r?`${n}-popover-button`:void 0,key:r?`${n}-saveAs-action`:`${n}-action`,slot:`actions-end`,text:r?this.messagesCommon.options:this.messagesCommon.remove,onclick:r?void 0:()=>{this.exportedLinks.remove(e)}})}_renderExportedLinkItem(e){let t=e.formattedName??``;return A(M,null,A(`calcite-list-item`,{key:t,label:t},this._renderExportedLinkItemContent(e),this._renderExportedLinkItemIcon(e),this._renderExportedLinkItemAction(e)),this._renderExportedLinkItemPopover(e))}_renderExportedLinkItems(e){return A(`calcite-list`,{filterEnabled:e?.length>10,label:this.messages.exportedLinksList,selectionMode:`none`},e.map(this._renderExportedLinkItem.bind(this)))}_isFormatAllowedForSaving(e){return!this.allowedFormatsForSaving||this.allowedFormatsForSaving===`all`||!!(e&&this.allowedFormatsForSaving.includes(e))}_toggleLayoutPanel(e){let t=e.target;this._toggleTab(t.getAttribute(`data-tab-id`))}_toggleTab(e,t=!0){if(this._selectedTab=e,this._selectedTab===`mapOnlyTab`)this.viewModel.applyTemplate(P);else if(this._selectedTab===`layoutTab`){let e=this._selectedTemplate??this.viewModel.defaultTemplate;this.viewModel.applyTemplate(e)}t&&(this._activeTabFocusRequested=!0)}_handleLayoutPanelKeyDown(e){let{key:t}=e,n=e.target.getAttribute(`data-tab-id`);if(N(t))this._toggleTab(n),e.preventDefault(),e.stopPropagation();else if(t===`ArrowLeft`||t===`ArrowRight`){switch(n){case`layoutTab`:this._toggleTab(t===`ArrowLeft`?`exportTab`:`mapOnlyTab`);break;case`mapOnlyTab`:this._toggleTab(t===`ArrowLeft`?`layoutTab`:`exportTab`);break;case`exportTab`:this._toggleTab(t===`ArrowLeft`?`mapOnlyTab`:`layoutTab`)}e.preventDefault(),e.stopPropagation()}}};e([f()],H.prototype,`_showTemplates`,void 0),e([f()],H.prototype,`_isValidSpatialReference`,void 0),e([f()],H.prototype,`allowedFormats`,null),e([f()],H.prototype,`allowedFormatsForSaving`,void 0),e([f()],H.prototype,`allowedLayouts`,null),e([f()],H.prototype,`browseTemplateButtonOnClick`,void 0),e([f()],H.prototype,`error`,null),e([f({type:n.ofType(S)})],H.prototype,`exportedLinks`,null),e([f()],H.prototype,`extraParameters`,null),e([f()],H.prototype,`headerVisible`,void 0),e([f()],H.prototype,`headingLevel`,void 0),e([f()],H.prototype,`icon`,null),e([f()],H.prototype,`includeDefaultTemplates`,null),e([f()],H.prototype,`includeOrganizationTemplates`,void 0),e([f()],H.prototype,`label`,null),e([f(),k(`esri/widgets/Print/t9n/Print`)],H.prototype,`messages`,void 0),e([f(),k(`esri/t9n/common`)],H.prototype,`messagesCommon`,void 0),e([f(),k(`esri/core/t9n/Units`)],H.prototype,`messagesUnits`,void 0),e([f({type:h})],H.prototype,`outSpatialReference`,null),e([f({type:_})],H.prototype,`portal`,null),e([f()],H.prototype,`saveExportEnabled`,null),e([f()],H.prototype,`saveExportHidden`,void 0),e([f()],H.prototype,`showPrintAreaEnabled`,null),e([f()],H.prototype,`printServiceUrl`,null),e([f()],H.prototype,`saveAsButtonCallback`,void 0),e([f()],H.prototype,`templateCustomTextElements`,null),e([f({type:w})],H.prototype,`templateOptions`,null),e([f()],H.prototype,`view`,null),e([f({type:C})],H.prototype,`viewModel`,void 0),H=e([p(`esri.widgets.Print`)],H);const U=H;export{U as default};