@arcgis/portal-components 5.2.0-next.47 → 5.2.0-next.49

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 (325) hide show
  1. package/dist/cdn/{KM5XGRXL.js → 2EJG4DOC.js} +1 -1
  2. package/dist/cdn/2JCFEF3J.js +2 -0
  3. package/dist/cdn/2VLAJOZX.js +2 -0
  4. package/dist/cdn/3MIY7CNH.js +2 -0
  5. package/dist/cdn/3PWVEX4V.js +2 -0
  6. package/dist/cdn/6D3PU4ZT.js +2 -0
  7. package/dist/cdn/75N65DHR.js +2 -0
  8. package/dist/cdn/7QXIBQV7.js +2 -0
  9. package/dist/cdn/AWIVXH7M.js +2 -0
  10. package/dist/cdn/BJTJP57C.js +2 -0
  11. package/dist/cdn/{IBP5XPD5.js → BUKOHPY6.js} +1 -1
  12. package/dist/cdn/{6RK4FBHZ.js → BZRM2V6V.js} +1 -1
  13. package/dist/cdn/{7E5GJIZV.js → CF7ZMRAH.js} +1 -1
  14. package/dist/cdn/CSH3WCYD.js +2 -0
  15. package/dist/cdn/{ZVFNCDG5.js → CU34VHCE.js} +1 -1
  16. package/dist/cdn/DALGPO36.js +2 -0
  17. package/dist/cdn/{GJTJLK6T.js → DHMH2XFA.js} +1 -1
  18. package/dist/cdn/DNMB343K.js +2 -0
  19. package/dist/cdn/{JZKBUYPV.js → EJZ55DVU.js} +1 -1
  20. package/dist/cdn/F3G5N2UU.js +2 -0
  21. package/dist/cdn/{GQMPPCEL.js → FDQ3EJUR.js} +1 -1
  22. package/dist/cdn/{JOUSVRID.js → GKBK32VH.js} +1 -1
  23. package/dist/cdn/GYFQDPCN.js +2 -0
  24. package/dist/cdn/IF2LNWBA.js +2 -0
  25. package/dist/cdn/IFYHXRHA.js +2 -0
  26. package/dist/cdn/{RKNDXSVK.js → ILBX6R25.js} +1 -1
  27. package/dist/cdn/{NJ2WDAJM.js → IOVOCADO.js} +1 -1
  28. package/dist/cdn/{L4DRNGOL.js → IZTK4QQL.js} +1 -1
  29. package/dist/cdn/{TJAX7J4T.js → J46I5HEQ.js} +1 -1
  30. package/dist/cdn/JJ7P5JJ3.js +2 -0
  31. package/dist/cdn/{WO23VQK3.js → JZ2ZI5WO.js} +1 -1
  32. package/dist/cdn/{WGZZB2DJ.js → K7NCYRPX.js} +1 -1
  33. package/dist/cdn/LDCSQHZX.js +2 -0
  34. package/dist/cdn/{CGT2DH3Z.js → LTQA5JRV.js} +1 -1
  35. package/dist/cdn/{BYXDMWEZ.js → M5MGOBU3.js} +1 -1
  36. package/dist/cdn/{HZ5W3DBR.js → M6X5KCWL.js} +1 -1
  37. package/dist/cdn/{JYIPREIH.js → O6QBY4ST.js} +1 -1
  38. package/dist/cdn/OBBYT2AV.js +2 -0
  39. package/dist/cdn/OBVMQ64S.js +2 -0
  40. package/dist/cdn/{AXM6XCZD.js → OFDH6CTA.js} +1 -1
  41. package/dist/cdn/{3KR5RIDQ.js → OGC5YU6V.js} +1 -1
  42. package/dist/cdn/OUN473QW.js +2 -0
  43. package/dist/cdn/{GKOXTQHB.js → P6P7SKFX.js} +1 -1
  44. package/dist/cdn/{IXVR3KMC.js → PBH3JZCG.js} +1 -1
  45. package/dist/cdn/QPFPNUHH.js +2 -0
  46. package/dist/cdn/{WSWHK6LB.js → R3VY2KZV.js} +1 -1
  47. package/dist/cdn/R6SSAPLB.js +3 -0
  48. package/dist/cdn/{3Z3ZPFGJ.js → SJDQS32I.js} +1 -1
  49. package/dist/cdn/SQVFNATF.js +2 -0
  50. package/dist/cdn/{JV23HJTE.js → STZRXY35.js} +1 -1
  51. package/dist/cdn/{SXZRHHXC.js → U2QZZSPC.js} +1 -1
  52. package/dist/cdn/{ZPIXIG3Z.js → UCCRV44E.js} +1 -1
  53. package/dist/cdn/{FXIP4QXJ.js → UQWELJR5.js} +1 -1
  54. package/dist/cdn/{JS45DWQ3.js → VMNR4TQZ.js} +1 -1
  55. package/dist/cdn/{WX65MRDH.js → X6N7Y4IA.js} +1 -1
  56. package/dist/cdn/{D76KMXZD.js → XQJNAQVO.js} +1 -1
  57. package/dist/cdn/{IBU3M4KD.js → XVFCF4AX.js} +2 -2
  58. package/dist/cdn/{AL57LV4E.js → Y4YNN6DS.js} +1 -1
  59. package/dist/cdn/Y5CRBUVL.js +2 -0
  60. package/dist/cdn/YR5FO6PO.js +2 -0
  61. package/dist/cdn/YVKSTDL6.js +2 -0
  62. package/dist/cdn/{WZYBNC3M.js → ZR7DM7HF.js} +3 -3
  63. package/dist/cdn/assets/portal-account-switcher/t9n/messages.en.json +1 -0
  64. package/dist/cdn/assets/portal-navigation/apps/api-for-python.avif +0 -0
  65. package/dist/cdn/assets/portal-navigation/apps/appstudio.avif +0 -0
  66. package/dist/cdn/assets/portal-navigation/apps/arcade.avif +0 -0
  67. package/dist/cdn/assets/portal-navigation/apps/arcgis-360-vr.avif +0 -0
  68. package/dist/cdn/assets/portal-navigation/apps/arcgis-earth.avif +0 -0
  69. package/dist/cdn/assets/portal-navigation/apps/arcgis-enterprise.avif +0 -0
  70. package/dist/cdn/assets/portal-navigation/apps/arcgis-experience-builder.avif +0 -0
  71. package/dist/cdn/assets/portal-navigation/apps/arcgis-geoanalytics.avif +0 -0
  72. package/dist/cdn/assets/portal-navigation/apps/arcgis-hub.avif +0 -0
  73. package/dist/cdn/assets/portal-navigation/apps/arcgis-online.avif +0 -0
  74. package/dist/cdn/assets/portal-navigation/apps/arcgis-pro.avif +0 -0
  75. package/dist/cdn/assets/portal-navigation/apps/arcgis-reality-studio.avif +0 -0
  76. package/dist/cdn/assets/portal-navigation/apps/arcgis-urban.avif +0 -0
  77. package/dist/cdn/assets/portal-navigation/apps/blank.avif +0 -0
  78. package/dist/cdn/assets/portal-navigation/apps/business-analyst.avif +0 -0
  79. package/dist/cdn/assets/portal-navigation/apps/city-engine.avif +0 -0
  80. package/dist/cdn/assets/portal-navigation/apps/collector.avif +0 -0
  81. package/dist/cdn/assets/portal-navigation/apps/community-analyst.avif +0 -0
  82. package/dist/cdn/assets/portal-navigation/apps/configurable-apps.avif +0 -0
  83. package/dist/cdn/assets/portal-navigation/apps/dashboards-beta.avif +0 -0
  84. package/dist/cdn/assets/portal-navigation/apps/dashboards-classic.avif +0 -0
  85. package/dist/cdn/assets/portal-navigation/apps/data-pipelines.avif +0 -0
  86. package/dist/cdn/assets/portal-navigation/apps/deeplearningstudio.avif +0 -0
  87. package/dist/cdn/assets/portal-navigation/apps/demographics.avif +0 -0
  88. package/dist/cdn/assets/portal-navigation/apps/drone2map.avif +0 -0
  89. package/dist/cdn/assets/portal-navigation/apps/esri-events.avif +0 -0
  90. package/dist/cdn/assets/portal-navigation/apps/essential-apps.avif +0 -0
  91. package/dist/cdn/assets/portal-navigation/apps/excalibur.avif +0 -0
  92. package/dist/cdn/assets/portal-navigation/apps/explorer.avif +0 -0
  93. package/dist/cdn/assets/portal-navigation/apps/field-apps.avif +0 -0
  94. package/dist/cdn/assets/portal-navigation/apps/fieldmaps-beta.avif +0 -0
  95. package/dist/cdn/assets/portal-navigation/apps/fieldmaps-ea.avif +0 -0
  96. package/dist/cdn/assets/portal-navigation/apps/fieldmaps.avif +0 -0
  97. package/dist/cdn/assets/portal-navigation/apps/generic-app.avif +0 -0
  98. package/dist/cdn/assets/portal-navigation/apps/geobim.avif +0 -0
  99. package/dist/cdn/assets/portal-navigation/apps/geoplanner.avif +0 -0
  100. package/dist/cdn/assets/portal-navigation/apps/grid-view-9.avif +0 -0
  101. package/dist/cdn/assets/portal-navigation/apps/indoor.avif +0 -0
  102. package/dist/cdn/assets/portal-navigation/apps/indoors.avif +0 -0
  103. package/dist/cdn/assets/portal-navigation/apps/insights.avif +0 -0
  104. package/dist/cdn/assets/portal-navigation/apps/instant-apps.avif +0 -0
  105. package/dist/cdn/assets/portal-navigation/apps/ips.avif +0 -0
  106. package/dist/cdn/assets/portal-navigation/apps/knowledge-studio.avif +0 -0
  107. package/dist/cdn/assets/portal-navigation/apps/living-atlas.avif +0 -0
  108. package/dist/cdn/assets/portal-navigation/apps/location-platform.avif +0 -0
  109. package/dist/cdn/assets/portal-navigation/apps/map-maker.avif +0 -0
  110. package/dist/cdn/assets/portal-navigation/apps/map-viewer-beta.avif +0 -0
  111. package/dist/cdn/assets/portal-navigation/apps/map-viewer-classic.avif +0 -0
  112. package/dist/cdn/assets/portal-navigation/apps/map-viewer.avif +0 -0
  113. package/dist/cdn/assets/portal-navigation/apps/maps-adobe-cloud.avif +0 -0
  114. package/dist/cdn/assets/portal-navigation/apps/maps-for-office.avif +0 -0
  115. package/dist/cdn/assets/portal-navigation/apps/maps-for-power-bi.avif +0 -0
  116. package/dist/cdn/assets/portal-navigation/apps/maps-for-sharepoint.avif +0 -0
  117. package/dist/cdn/assets/portal-navigation/apps/marketplace.avif +0 -0
  118. package/dist/cdn/assets/portal-navigation/apps/mission.avif +0 -0
  119. package/dist/cdn/assets/portal-navigation/apps/monitor.avif +0 -0
  120. package/dist/cdn/assets/portal-navigation/apps/navigator.avif +0 -0
  121. package/dist/cdn/assets/portal-navigation/apps/notebook.avif +0 -0
  122. package/dist/cdn/assets/portal-navigation/apps/office-apps.avif +0 -0
  123. package/dist/cdn/assets/portal-navigation/apps/open-data.avif +0 -0
  124. package/dist/cdn/assets/portal-navigation/apps/operations-dashboard.avif +0 -0
  125. package/dist/cdn/assets/portal-navigation/apps/ortho-maker.avif +0 -0
  126. package/dist/cdn/assets/portal-navigation/apps/pro-extension.avif +0 -0
  127. package/dist/cdn/assets/portal-navigation/apps/quick-capture.avif +0 -0
  128. package/dist/cdn/assets/portal-navigation/apps/redistricting.avif +0 -0
  129. package/dist/cdn/assets/portal-navigation/apps/runtime.avif +0 -0
  130. package/dist/cdn/assets/portal-navigation/apps/scene-viewer.avif +0 -0
  131. package/dist/cdn/assets/portal-navigation/apps/sites.avif +0 -0
  132. package/dist/cdn/assets/portal-navigation/apps/solutions.avif +0 -0
  133. package/dist/cdn/assets/portal-navigation/apps/story-maps.avif +0 -0
  134. package/dist/cdn/assets/portal-navigation/apps/streetmap-premium.avif +0 -0
  135. package/dist/cdn/assets/portal-navigation/apps/survey123.avif +0 -0
  136. package/dist/cdn/assets/portal-navigation/apps/svg-app-circle.svg +1 -0
  137. package/dist/cdn/assets/portal-navigation/apps/svg-app-icon.svg +1 -0
  138. package/dist/cdn/assets/portal-navigation/apps/track-viewer.avif +0 -0
  139. package/dist/cdn/assets/portal-navigation/apps/user-type-extension-online.avif +0 -0
  140. package/dist/cdn/assets/portal-navigation/apps/user-type-extension.avif +0 -0
  141. package/dist/cdn/assets/portal-navigation/apps/vector-tile-style-editor.avif +0 -0
  142. package/dist/cdn/assets/portal-navigation/apps/velocity.avif +0 -0
  143. package/dist/cdn/assets/portal-navigation/apps/web-app-builder.avif +0 -0
  144. package/dist/cdn/assets/portal-navigation/apps/web-editor.avif +0 -0
  145. package/dist/cdn/assets/portal-navigation/apps/web-mapping.avif +0 -0
  146. package/dist/cdn/assets/portal-navigation/apps/workflow-manager-beta.avif +0 -0
  147. package/dist/cdn/assets/portal-navigation/apps/workflow-manager.avif +0 -0
  148. package/dist/cdn/assets/portal-navigation/apps/workforce.avif +0 -0
  149. package/dist/cdn/assets/portal-navigation/product-logos/advanced-editing-user-type-extension-glyph-32.svg +1 -0
  150. package/dist/cdn/assets/portal-navigation/product-logos/arc-hydro-glyph-32.svg +1 -0
  151. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-360-vr-glyph-32.svg +1 -0
  152. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-api-for-python-glyph-32.svg +1 -0
  153. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-appstudio-glyph-32.svg +1 -0
  154. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-arcade-expression-language-glyph-32.svg +1 -0
  155. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-business-analyst-glyph-32.svg +1 -0
  156. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-cityengine-glyph-32.svg +1 -0
  157. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-collector-glyph-32.svg +1 -0
  158. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-community-analyst-glyph-32.svg +1 -0
  159. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-connectors-for-power-automate-glyph-32.svg +1 -0
  160. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-dashboards-glyph-32.svg +1 -0
  161. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-data-interoperability-glyph-32.svg +1 -0
  162. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-data-pipelines-glyph-32.svg +1 -0
  163. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-data-reviewer-glyph-32.svg +1 -0
  164. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-deep-learning-studio-glyph-32.svg +1 -0
  165. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-drone2map-glyph-32.svg +1 -0
  166. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-earth-glyph-32.svg +1 -0
  167. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-enterprise-glyph-32.svg +1 -0
  168. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-excalibur-glyph-32.svg +1 -0
  169. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-excalibur-gray-glyph-32.svg +1 -0
  170. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-experience-builder-glyph-32.svg +1 -0
  171. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-explorer-glyph-32.svg +1 -0
  172. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-field-maps-designer-ea-glyph-32.svg +1 -0
  173. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-field-maps-glyph-32.svg +1 -0
  174. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-flight-glyph-32.svg +1 -0
  175. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-for-autocad-glyph-32.svg +1 -0
  176. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-for-autodesk-forma-glyph-32.svg +1 -0
  177. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-for-developers-glyph-32.svg +1 -0
  178. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-for-excel-glyph-32.svg +1 -0
  179. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-for-microsoft-365-glyph-32.svg +1 -0
  180. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-for-power-apps-glyph-32.svg +1 -0
  181. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-for-teams-glyph-32.svg +1 -0
  182. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-geoanalytics-engine-glyph-32.svg +1 -0
  183. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-geobim-glyph-32.svg +1 -0
  184. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-geoplanner-glyph-32.svg +1 -0
  185. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-hub-glyph-32.svg +1 -0
  186. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-image-glyph-32.svg +1 -0
  187. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-indoors-glyph-32.svg +1 -0
  188. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-insights-glyph-32.svg +1 -0
  189. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-instant-apps-glyph-32.svg +1 -0
  190. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-knowledge-glyph-32.svg +1 -0
  191. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-living-atlas-of-the-world-glyph-32.svg +1 -0
  192. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-location-platform-glyph-32.svg +1 -0
  193. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-logo-glyph-32.svg +76 -0
  194. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-maps-for-adobe-creative-cloud-glyph-32.svg +1 -0
  195. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-maps-for-power-bi-glyph-32.svg +1 -0
  196. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-maps-for-sharepoint-glyph-32.svg +1 -0
  197. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-maps-sdk-for-javascript-glyph-32.svg +1 -0
  198. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-maps-sdks-for-game-engines-glyph-32.svg +1 -0
  199. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-maps-sdks-for-native-apps-glyph-32.svg +1 -0
  200. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-maritime-glyph-32.svg +1 -0
  201. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-marketplace-glyph-32.svg +1 -0
  202. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-mission-glyph-32.svg +1 -0
  203. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-monitor-glyph-32.svg +1 -0
  204. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-monitor-white-glyph-32.svg +1 -0
  205. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-navigator-glyph-32.svg +1 -0
  206. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-notebooks-glyph-32.svg +1 -0
  207. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-online-glyph-32.svg +1 -0
  208. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-open-data-glyph-32.svg +1 -0
  209. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-open-source-apps-glyph-32.svg +1 -0
  210. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-ortho-maker-glyph-32.svg +1 -0
  211. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-parcel-fabric-glyph-32.svg +1 -0
  212. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-pipeline-referencing-glyph-32.svg +1 -0
  213. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-pro-for-intelligence-glyph-32.svg +1 -0
  214. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-pro-glyph-32.svg +1 -0
  215. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-quickcapture-glyph-32.svg +1 -0
  216. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-reality-studio-glyph-32.svg +1 -0
  217. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-roads-and-highways-glyph-32.svg +1 -0
  218. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-sites-glyph-32.svg +1 -0
  219. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-solutions-glyph-32.svg +1 -0
  220. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-storymaps-glyph-32.svg +1 -0
  221. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-streetmap-premium-glyph-32.svg +1 -0
  222. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-survey123-connect-glyph-32.svg +1 -0
  223. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-survey123-glyph-32.svg +1 -0
  224. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-tracker-glyph-32.svg +1 -0
  225. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-urban-glyph-32.svg +1 -0
  226. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-utility-network-management-glyph-32.svg +1 -0
  227. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-velocity-glyph-32.svg +6 -0
  228. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-web-appbuilder-glyph-32.svg +1 -0
  229. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-web-editor-glyph-32.svg +1 -0
  230. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-workflow-manager-glyph-32.svg +1 -0
  231. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-workforce-glyph-32.svg +1 -0
  232. package/dist/cdn/assets/portal-navigation/product-logos/arcgis-world-geocoder-glyph-32.svg +1 -0
  233. package/dist/cdn/assets/portal-navigation/product-logos/calcite-design-system-glyph-32.svg +1 -0
  234. package/dist/cdn/assets/portal-navigation/product-logos/esri-community-glyph-32.svg +1 -0
  235. package/dist/cdn/assets/portal-navigation/product-logos/esri-demographics-glyph-32.svg +1 -0
  236. package/dist/cdn/assets/portal-navigation/product-logos/esri-events-glyph-32.svg +1 -0
  237. package/dist/cdn/assets/portal-navigation/product-logos/esri-offline-documentation-center--glyph-32.svg +1 -0
  238. package/dist/cdn/assets/portal-navigation/product-logos/esri-redistricting-glyph-32.svg +1 -0
  239. package/dist/cdn/assets/portal-navigation/product-logos/esri-reports-glyph-32.svg +1 -0
  240. package/dist/cdn/assets/portal-navigation/product-logos/esri-support-glyph-32.svg +1 -0
  241. package/dist/cdn/assets/portal-navigation/product-logos/map-viewer-glyph-32.svg +1 -0
  242. package/dist/cdn/assets/portal-navigation/product-logos/sceneviewer-glyph-32.svg +1 -0
  243. package/dist/cdn/assets/portal-navigation/product-logos/site-scan-for-arcgis-glyph-32.svg +1 -0
  244. package/dist/cdn/assets/portal-navigation/product-logos/site-scan-for-arcgis-le-glyph-32.svg +1 -0
  245. package/dist/cdn/assets/portal-navigation/product-logos/vector-tile-style-editor-glyph-32.svg +1 -0
  246. package/dist/cdn/assets/portal-navigation/product-logos/xr-viewer-glyph-32.svg +1 -0
  247. package/dist/cdn/assets/portal-navigation/t9n/messages.en.json +1 -0
  248. package/dist/cdn/index.js +1 -1
  249. package/dist/cdn/main.css +1 -1
  250. package/dist/chunks/dom.js +18 -13
  251. package/dist/chunks/fieldAddDelete.js +1 -1
  252. package/dist/chunks/groups2.js +64 -0
  253. package/dist/chunks/icons.js +11 -0
  254. package/dist/chunks/item.js +29 -123
  255. package/dist/chunks/item2.js +119 -77
  256. package/dist/chunks/loadClassificationData.js +19 -19
  257. package/dist/chunks/portal-account-switcher.js +6 -0
  258. package/dist/chunks/portal.js +58 -23
  259. package/dist/chunks/portal2.js +33 -0
  260. package/dist/chunks/requests.js +92 -44
  261. package/dist/chunks/string.js +31 -0
  262. package/dist/chunks/user.js +16 -4
  263. package/dist/chunks/user2.js +146 -75
  264. package/dist/chunks/utils.js +645 -0
  265. package/dist/components/arcgis-portal-account-switcher/customElement.d.ts +98 -0
  266. package/dist/components/arcgis-portal-account-switcher/customElement.js +364 -0
  267. package/dist/components/arcgis-portal-account-switcher/index.d.ts +1 -0
  268. package/dist/components/arcgis-portal-account-switcher/index.js +11 -0
  269. package/dist/components/arcgis-portal-account-switcher-accounts/customElement.d.ts +100 -0
  270. package/dist/components/arcgis-portal-account-switcher-accounts/customElement.js +31 -0
  271. package/dist/components/arcgis-portal-account-switcher-accounts/index.d.ts +1 -0
  272. package/dist/components/arcgis-portal-account-switcher-accounts/index.js +5 -0
  273. package/dist/components/arcgis-portal-account-switcher-list/customElement.d.ts +104 -0
  274. package/dist/components/arcgis-portal-account-switcher-list/customElement.js +51 -0
  275. package/dist/components/arcgis-portal-account-switcher-list/index.d.ts +1 -0
  276. package/dist/components/arcgis-portal-account-switcher-list/index.js +7 -0
  277. package/dist/components/arcgis-portal-ai-assistant/customElement.js +45 -44
  278. package/dist/components/arcgis-portal-classification-config/customElement.js +1 -1
  279. package/dist/components/arcgis-portal-classification-favorite/customElement.js +1 -1
  280. package/dist/components/arcgis-portal-info-banner/customElement.d.ts +14 -0
  281. package/dist/components/arcgis-portal-info-banner/customElement.js +31 -0
  282. package/dist/components/arcgis-portal-info-banner/index.d.ts +1 -0
  283. package/dist/components/arcgis-portal-info-banner/index.js +1 -0
  284. package/dist/components/arcgis-portal-item-type/customElement.d.ts +1 -1
  285. package/dist/components/arcgis-portal-item-type/customElement.js +22 -659
  286. package/dist/components/arcgis-portal-mentionable-text-area/customElement.js +3 -2
  287. package/dist/components/arcgis-portal-navigation/customElement.d.ts +516 -0
  288. package/dist/components/arcgis-portal-navigation/customElement.js +1813 -0
  289. package/dist/components/arcgis-portal-navigation/index.d.ts +1 -0
  290. package/dist/components/arcgis-portal-navigation/index.js +32 -0
  291. package/dist/components/arcgis-portal-navigation/types.d.ts +43 -0
  292. package/dist/components/arcgis-portal-replacement-item-redirect/customElement.js +12 -27
  293. package/dist/components/arcgis-portal-user-popup/customElement.js +83 -102
  294. package/dist/docs/api.json +1 -1
  295. package/dist/docs/docs.json +1 -1
  296. package/dist/docs/vscode.html-custom-data.json +1 -1
  297. package/dist/docs/web-types.json +1 -1
  298. package/dist/index.d.ts +44 -0
  299. package/dist/loader.js +7 -2
  300. package/dist/types/app-switcher.d.ts +71 -0
  301. package/dist/types/item.d.ts +2 -2
  302. package/dist/types/lumina.d.ts +34 -0
  303. package/dist/types/portal.d.ts +6 -0
  304. package/dist/types/preact.d.ts +39 -0
  305. package/dist/types/react.d.ts +44 -0
  306. package/dist/types/search.d.ts +4 -1
  307. package/dist/types/stencil.d.ts +34 -0
  308. package/dist/types/user.d.ts +14 -1
  309. package/package.json +4 -4
  310. package/dist/cdn/2C475EKD.js +0 -2
  311. package/dist/cdn/35SKVD6F.js +0 -2
  312. package/dist/cdn/3J46PXFF.js +0 -3
  313. package/dist/cdn/6W2IHKCA.js +0 -2
  314. package/dist/cdn/BUJPYZSX.js +0 -2
  315. package/dist/cdn/EI6BAXCQ.js +0 -2
  316. package/dist/cdn/GE75KDIM.js +0 -2
  317. package/dist/cdn/GXJU3U7U.js +0 -2
  318. package/dist/cdn/HMBSJR37.js +0 -2
  319. package/dist/cdn/IC65R4QE.js +0 -2
  320. package/dist/cdn/IHSJ4MKS.js +0 -2
  321. package/dist/cdn/O3KBWLGU.js +0 -2
  322. package/dist/cdn/SUPKZF5M.js +0 -2
  323. package/dist/cdn/U3FVMN32.js +0 -2
  324. package/dist/cdn/WSNLUGEP.js +0 -2
  325. package/dist/cdn/XBIV54LX.js +0 -2
@@ -0,0 +1,1813 @@
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
+ import { g as te, c as lt } from "../../chunks/runtime.js";
3
+ import { html as c, svg as ut, nothing as M, css as dt } from "lit";
4
+ import { safeStyleMap as pt, safeClassMap as oe, LitElement as ht, createEvent as H } from "@arcgis/lumina";
5
+ import { u as ft } from "../../chunks/useT9n.js";
6
+ import { formatDate as mt, substitute as K, getLocale as gt } from "@arcgis/core/intl.js";
7
+ import { b as Q, d as bt, e as se, n as vt, g as ae, f as q, a as wt } from "../../chunks/portal.js";
8
+ import { r as D } from "../../chunks/requests.js";
9
+ import { repeat as j } from "lit/directives/repeat.js";
10
+ import { m as _t } from "../../chunks/icons.js";
11
+ import { i as C, c as he, a as yt } from "../../chunks/user.js";
12
+ import "@arcgis/core/portal/Portal.js";
13
+ import { a as $t, b as At, c as kt, d as St, e as It } from "../../chunks/portal2.js";
14
+ import { d as xt, e as Pt, h as Tt, i as Nt } from "../../chunks/user2.js";
15
+ import { i as ye, a as Ct } from "../../chunks/utils.js";
16
+ import { g as $e } from "../../chunks/item.js";
17
+ import { keyed as ce } from "lit/directives/keyed.js";
18
+ import { ref as F, createRef as U } from "lit/directives/ref.js";
19
+ import { c as Mt, g as Lt } from "../../chunks/dom.js";
20
+ import { debounce as fe } from "@arcgis/toolkit/function";
21
+ import Ot from "@arcgis/core/identity/IdentityManager.js";
22
+ import { t as Et } from "../../chunks/functionalities.js";
23
+ import { c as jt } from "../../chunks/string.js";
24
+ function Dt({ navigate: e, portal: t, product: i, productInfo: n, productHref: r, messages: o, searchActive: s, showNav: a, projectTitleEditing: u }) {
25
+ const f = s && i === "Online" && !a || i !== "Online" && u && window.innerWidth < 960;
26
+ if (!i || !t || !o || f)
27
+ return null;
28
+ const { name: m, glyph: v } = n || {};
29
+ return c`<calcite-navigation-logo class="logo fade-in" .heading=${m} .description=${t.name || ""} .href=${r} @click=${r ? (d) => {
30
+ e({ event: d, href: r });
31
+ } : void 0} .thumbnail=${v}></calcite-navigation-logo>`;
32
+ }
33
+ const Z = {}, N = {
34
+ Month: 2628e3,
35
+ Week: 604800,
36
+ Day: 86400,
37
+ Hour: 3600,
38
+ Minute: 60,
39
+ Second: 1
40
+ };
41
+ function Ae(e) {
42
+ if (!e)
43
+ return null;
44
+ const t = Math.floor(e / 1e3), i = Math.abs(t), n = N.Day * 365;
45
+ switch (!0) {
46
+ case i < N.Minute:
47
+ return [Math.floor(t / N.Second), "second"];
48
+ case i < N.Hour:
49
+ return [Math.floor(t / N.Minute), "minute"];
50
+ case i < N.Day:
51
+ return [Math.floor(t / N.Hour), "hour"];
52
+ case i < N.Week:
53
+ return [Math.floor(t / N.Day), "day"];
54
+ case i < N.Month:
55
+ return [Math.floor(t / N.Week), "week"];
56
+ case i < n:
57
+ return [Math.floor(t / N.Month), "month"];
58
+ default:
59
+ return [Math.floor(t / n), "year"];
60
+ }
61
+ }
62
+ function ke(e) {
63
+ return (typeof e == "number" ? e : e.getTime?.()) - (/* @__PURE__ */ new Date()).getTime();
64
+ }
65
+ function Se({ locale: e, time: t, t9n: i }) {
66
+ if (!e || !t)
67
+ return "";
68
+ const n = ke(t);
69
+ Z[e] ??= new Intl.RelativeTimeFormat(e, { style: "long" });
70
+ const r = Ae(n);
71
+ return r ? r[1] === "second" ? i?.lessThanOneMinute || `< ${Z[e].format(r[0] > 0 ? 1 : -1, "minutes")}` : Z[e].format(r[0], r[1]) : "";
72
+ }
73
+ const Gt = {
74
+ month: "long",
75
+ day: "numeric",
76
+ year: "numeric"
77
+ }, Ut = {
78
+ month: "long",
79
+ day: "numeric"
80
+ };
81
+ function Ft({ locale: e, time: t }, i) {
82
+ if (!e || !t)
83
+ return "";
84
+ const n = new Date(t);
85
+ return mt(n, i ? Gt : Ut);
86
+ }
87
+ async function Bt({ portal: e }) {
88
+ if (!e?.user)
89
+ return { result: [] };
90
+ const t = `${e.restUrl}/community/users/${e.user.id}/notifications`, { result: i, error: n } = await D(t);
91
+ return n ? { error: n } : { result: i?.notifications };
92
+ }
93
+ async function zt(e, t) {
94
+ if (!e?.user)
95
+ return { success: !0 };
96
+ const i = t.map((o) => ({ portal: e, id: o })).map(Ie);
97
+ return { success: !((await Promise.allSettled(i))?.filter((o) => o.status === "rejected" || !o.value?.success)).length };
98
+ }
99
+ async function Ie({
100
+ portal: e,
101
+ id: t
102
+ }) {
103
+ const i = `${e.restUrl}/community/users/${e.user?.id}/notifications/${t}/delete`, { result: n } = await D(i, { method: "post" });
104
+ return n?.success ? { success: !0, id: t } : { success: !1, id: t };
105
+ }
106
+ const xe = "notifications-menu";
107
+ function Rt(e) {
108
+ try {
109
+ const t = decodeURIComponent(e);
110
+ return t !== e ? t : e;
111
+ } catch {
112
+ return e;
113
+ }
114
+ }
115
+ function Wt(e) {
116
+ switch (e) {
117
+ case "group_join_admin":
118
+ return "users";
119
+ case "group_application_accepted":
120
+ return "register";
121
+ case "group_join":
122
+ return "file-user";
123
+ case "group_application_declined":
124
+ return "user-risk";
125
+ case "user_invitation_declined":
126
+ return "group-x";
127
+ case "user_invitation_accepted":
128
+ return "user-plus";
129
+ case "user_invite":
130
+ return "envelope";
131
+ case "user_added_to_group":
132
+ return "user-plus";
133
+ case "collaboration_workspace_added":
134
+ case "collaboration_deleted":
135
+ case "collaboration_leaving":
136
+ case "collaboration_join":
137
+ case "collaboration_participant_workspace_join":
138
+ case "collaboration_participant_workspace_unjoin":
139
+ case "collaboration_participant_removed":
140
+ case "collaboration_peer_participant_removed":
141
+ case "collaboration_participant_access_changed":
142
+ return "collaboration";
143
+ case "collaboration_participant_join":
144
+ return "collaboration-user";
145
+ case "collaboration_content_store_disk_limit_reached":
146
+ return "gauge";
147
+ case "user_email_bounced":
148
+ return "speech-bubble-exclamation";
149
+ case "feature_layer_copy_over_failed":
150
+ case "feature_layer_one_way_shared_not_two_way":
151
+ case "feature_view_copy_over_failed":
152
+ case "webapp_not_copied":
153
+ case "webapp_not_copied_portal":
154
+ case "insights_item_not_copied":
155
+ return "collaboration";
156
+ case "scheduled_task_disabled":
157
+ return "date-time";
158
+ case "portal_certificate_about_to_expire":
159
+ case "portal_certificate_expired":
160
+ return "hourglass-expired";
161
+ case "notebook_runtime_deprecated":
162
+ return "notebook-server";
163
+ case "ingress_certificate_about_to_expire":
164
+ case "ingress_certificate_expired":
165
+ return "certificate";
166
+ default:
167
+ return "bell";
168
+ }
169
+ }
170
+ function Vt({
171
+ notification: e,
172
+ portal: t,
173
+ locale: i,
174
+ t9n: n
175
+ }) {
176
+ if (e?.received && e.id) {
177
+ const r = {
178
+ date: Se({ locale: i, time: e.received, t9n: n }),
179
+ id: e.id,
180
+ text: "",
181
+ icon: Wt(e.type)
182
+ };
183
+ if (e.type === "webapp_not_copied" && t.isPortal && (e.type = "webapp_not_copied_portal"), e.data?.taskTitle && (e.data.taskTitle = Rt(e.data.taskTitle)), e.type === "message_received")
184
+ r.text = e.data.message || "";
185
+ else if (n.types[e.type]) {
186
+ const o = Q({ portal: t, usePortalHostname: !!t.user });
187
+ e.data.baseUrl = `${o}/home/`, r.text = K(n.types[e.type], e.data);
188
+ }
189
+ if (r.text)
190
+ return r;
191
+ }
192
+ return null;
193
+ }
194
+ async function me({
195
+ portal: e,
196
+ locale: t,
197
+ t9n: i
198
+ }) {
199
+ if (!i)
200
+ return [];
201
+ const { result: n, error: r } = await Bt({ portal: e });
202
+ return r && console.error(r), n?.length ? n.map((s) => Vt({ notification: s, portal: e, t9n: i, locale: t })).filter((s) => s) : [];
203
+ }
204
+ function Ht({ notifications: e, messages: t }) {
205
+ return t ? c`<calcite-action class="action" scale=l .text=${t.label} icon=bell .indicator=${!!e?.length} id=${xe}></calcite-action>` : null;
206
+ }
207
+ function J({ icon: e, title: t, description: i }) {
208
+ return !t && !i ? null : c`<div class="empty">${e && c`<svg xmlns=http://www.w3.org/2000/svg width=64 height=64 viewBox="0 0 64 64" fill=none>${ut`<path d=${_t[e] ?? M} fill=var(--calcite-color-border-input) />`}</svg>` || ""}${t && c`<h3 class="notifications__empty__header">${t}</h3>` || ""}${i && c`<p class="notifications__empty__text">${i}</p>` || ""}</div>`;
209
+ }
210
+ function qt({ notifications: e, deleteNotifications: t, messages: i, notificationDeleteProgress: n }) {
211
+ return i ? c`<calcite-popover .referenceElement=${xe} .label=${i.label} auto-close pointer-disabled flip-disabled placement=bottom-end scale=l .heading=${i.label}>${e?.length > 0 ? c`<div class="notifications notifications--full">${typeof n == "number" && c`<calcite-scrim><calcite-loader type=determinate-value .label=${i.deleting} .value=${n}></calcite-loader></calcite-scrim>` || ""}<calcite-list .label=${i.label} interaction-mode=static class="notifications__list" scale=l>${j(e, (r) => r.id, (r) => c`<calcite-list-item closable @calciteListItemClose=${async () => await t([r.id])} .messageOverrides=${{ close: i.dismissLabel }} .iconStart=${r.icon}><div slot=content class="notification"><div class="notification__message" .innerHTML=${r.text ?? ""}></div><div class="notification__date">${r.date}</div></div></calcite-list-item>`)}</calcite-list></div><calcite-button class="notifications__dismiss" scale=l appearance=transparent @click=${async (r) => {
212
+ const o = r.currentTarget?.parentElement;
213
+ await t(e?.map(({ id: s }) => s)), o.open = !1;
214
+ }}>${i.dismissAllLabel}</calcite-button>` : c`<div class="notifications">${J({ title: i.noNotifications, description: i.noNotificationsDescription, icon: "check" })}</div>`}</calcite-popover>` : null;
215
+ }
216
+ function Jt(e) {
217
+ return e.replace(/[.*+?^${}()|[\]\\]/gu, "\\$&");
218
+ }
219
+ function Kt(e, t, i, n) {
220
+ ti(e, JSON.stringify(t), i);
221
+ }
222
+ function Qt(e) {
223
+ return Zt(e, !0);
224
+ }
225
+ function Xt(e) {
226
+ try {
227
+ window.localStorage.removeItem(e);
228
+ } catch {
229
+ }
230
+ }
231
+ function Yt(e) {
232
+ try {
233
+ window.sessionStorage.removeItem(e);
234
+ } catch {
235
+ }
236
+ }
237
+ function Zt(e, t) {
238
+ const i = ei(e);
239
+ return i && t ? JSON.parse(i) : i;
240
+ }
241
+ function ei(e) {
242
+ const t = document.cookie, i = new RegExp(`(?:^|; )${Jt(e)}=([^;]*)`, "u"), n = t.match(i);
243
+ return n ? decodeURIComponent(n[1]) : "";
244
+ }
245
+ function ti(e, t, i) {
246
+ i = i || {};
247
+ let n = i?.expires;
248
+ if (typeof n == "number") {
249
+ const o = /* @__PURE__ */ new Date(), s = n * 24 * 60 * 60 * 1e3;
250
+ o.setTime(Date.now() + s), n = o, i.expires = o;
251
+ }
252
+ typeof n != "string" && n?.toUTCString && (i.expires = n.toUTCString());
253
+ let r = `${e}=${encodeURIComponent(t)}`;
254
+ for (const o of Object.keys(i)) {
255
+ r += `; ${o}`;
256
+ const s = i[o];
257
+ s !== !0 && (r += `=${s}`);
258
+ }
259
+ document.cookie = r;
260
+ }
261
+ async function ii(e) {
262
+ const i = `owner:"${e.isPortal ? "esri" : "esri_config"}" AND title:"AppSwitcher Config" AND type:"Application Configuration"`, n = `${e.restUrl}/search`;
263
+ return await D(n, { query: {
264
+ num: 1,
265
+ start: 0,
266
+ sortField: "title",
267
+ sortOrder: "asc",
268
+ q: i
269
+ } });
270
+ }
271
+ async function ni(e) {
272
+ const t = { appSwitcher: { apps: [] } };
273
+ if (!e?.id || !e.user)
274
+ return t;
275
+ const { result: i } = await ii(e), n = i?.results?.[0];
276
+ if (!n)
277
+ return t;
278
+ const r = n.id;
279
+ return (await $e(e, r)).result;
280
+ }
281
+ async function ri(e, t, i) {
282
+ if (!t || !e?.length)
283
+ return { result: null };
284
+ const n = `${i.restUrl}/search`;
285
+ return await D(n, {
286
+ query: {
287
+ num: 100,
288
+ q: `id:(${e.map((r) => `"${r.itemId}"`).join(" OR ")})`
289
+ }
290
+ });
291
+ }
292
+ async function oi(e) {
293
+ const t = `${e.restUrl}/search`, i = {
294
+ num: 10,
295
+ start: 0,
296
+ sortField: "title",
297
+ sortOrder: "asc",
298
+ q: 'owner:"esri" AND title:"BlockedApps Config" AND type: "Application Configuration"'
299
+ }, { result: n } = await D(t, { query: i }), r = n?.results?.[0]?.id;
300
+ return r ? (await $e(e, r))?.result?.blockedApps || [] : [];
301
+ }
302
+ function si(e, t) {
303
+ const i = e?.toLowerCase() || "", n = `${t.title || ""} ${t.label || ""}`;
304
+ return !i || n.toLowerCase().includes(i);
305
+ }
306
+ function ai() {
307
+ if (Qt("APSW-query")?.expires > (/* @__PURE__ */ new Date()).setHours((/* @__PURE__ */ new Date()).getHours()))
308
+ return !0;
309
+ const t = { expires: (/* @__PURE__ */ new Date()).setHours((/* @__PURE__ */ new Date()).getHours() + 5) };
310
+ return Kt(
311
+ "APSW-query",
312
+ t,
313
+ {
314
+ path: "/",
315
+ domain: window.location.hostname,
316
+ sameSite: "Strict"
317
+ }
318
+ ), !1;
319
+ }
320
+ function ci(e, t) {
321
+ const { landingPage: i } = t || {};
322
+ return {
323
+ image: "arcgis-online.png",
324
+ label: "ArcGIS Online",
325
+ title: "ArcGIS Online",
326
+ url: `${Q({ portal: e })}${i?.url ? i.url : ye(e.user) ? "organization.html" : "index.html"}`
327
+ };
328
+ }
329
+ function ge(e) {
330
+ const i = [
331
+ "api-for-python",
332
+ "appstudio",
333
+ "arcade",
334
+ "arcgis-earth",
335
+ "arcgis-enterprise",
336
+ "arcgis-experience-builder",
337
+ "arcgis-geoanalytics",
338
+ "arcgis-hub",
339
+ "arcgis-online",
340
+ "arcgis-pro",
341
+ "arcgis-urban",
342
+ "blank",
343
+ "business-analyst",
344
+ "city-engine",
345
+ "collector",
346
+ "community-analyst",
347
+ "configurable-apps",
348
+ "dashboards-beta",
349
+ "dashboards-classic",
350
+ "data-pipelines",
351
+ "deeplearningstudio",
352
+ "demographics",
353
+ "drone2map",
354
+ "esri-events",
355
+ "essential-apps",
356
+ "excalibur",
357
+ "explorer",
358
+ "field-apps",
359
+ "fieldmaps-beta",
360
+ "fieldmaps-ea",
361
+ "fieldmaps",
362
+ "generic-app",
363
+ "geobim",
364
+ "geoplanner",
365
+ "grid-view-9",
366
+ "indoor",
367
+ "indoors",
368
+ "insights",
369
+ "instant-apps",
370
+ "ips",
371
+ "knowledge-studio",
372
+ "living-atlas",
373
+ "location-platform",
374
+ "map-maker",
375
+ "map-viewer-beta",
376
+ "map-viewer-classic",
377
+ "map-viewer",
378
+ "maps-adobe-cloud",
379
+ "maps-for-office",
380
+ "maps-for-power-bi",
381
+ "maps-for-sharepoint",
382
+ "marketplace",
383
+ "mission",
384
+ "monitor",
385
+ "navigator",
386
+ "notebook",
387
+ "office-apps",
388
+ "open-data",
389
+ "operations-dashboard",
390
+ "ortho-maker",
391
+ "pro-extension",
392
+ "quick-capture",
393
+ "redistricting",
394
+ "runtime",
395
+ "scene-viewer",
396
+ "sites",
397
+ "solutions",
398
+ "story-maps",
399
+ "streetmap-premium",
400
+ "survey123",
401
+ "track-viewer",
402
+ "user-type-extension-online",
403
+ "user-type-extension",
404
+ "vector-tile-style-editor",
405
+ "velocity",
406
+ "web-app-builder",
407
+ "web-editor",
408
+ "web-mapping",
409
+ "workflow-manager-beta",
410
+ "workflow-manager",
411
+ "workforce"
412
+ ].find((n) => e?.includes(n) && B(`${n}.png`) === e);
413
+ return i ? B(`${i}.avif`) : e;
414
+ }
415
+ function li(e, t) {
416
+ const i = e?.blockedApps || [], n = [];
417
+ return !i.length && !e.blockBetaApps || !t?.length ? [] : (e.blockBetaApps && t.forEach((r) => {
418
+ r.isBeta && !i.includes(r.clientid) && i.push(r.clientid);
419
+ }), i.forEach((r) => {
420
+ const o = t.find((s) => s.clientid === r);
421
+ o && n.push(o);
422
+ }), n);
423
+ }
424
+ function x(e, t) {
425
+ return t && t[e.toLowerCase()]?.valid || !1;
426
+ }
427
+ function ui(e, t) {
428
+ return e?.portalProperties && !e.portalProperties?.openData?.enabled ? !1 : x("HubforArcGIS", t);
429
+ }
430
+ function di(e, t) {
431
+ if (!e)
432
+ return !1;
433
+ const i = [
434
+ "portal:publisher:publishFeeds",
435
+ "portal:publisher:publishRealTimeAnalytics",
436
+ "portal:publisher:publishBigDataAnalytics"
437
+ ], r = (e?.privileges || []).some((s) => i.includes(s)), o = x("velocity", t);
438
+ return r && o;
439
+ }
440
+ function pi(e) {
441
+ return x("HubforArcGIS", e);
442
+ }
443
+ function hi(e, t) {
444
+ return !(e.isPortal && e.portalProperties?.newMapViewerEnabled === !1) && x("arcgisWebApps", t);
445
+ }
446
+ function fi(e) {
447
+ return !!e.helperServices?.rasterAnalytics && !!e.helperServices.orthoMapping;
448
+ }
449
+ function mi(e, t, i) {
450
+ const n = i && (!e.isPortal || !!e.sourceJSON?.supportsHostedNotebooks), r = !!t?.privileges?.length && t.privileges.some((o) => o === "premium:publisher:createNotebooks");
451
+ return n && r;
452
+ }
453
+ function gi(e, t) {
454
+ return !!e.helperServices?.locationTracking && t;
455
+ }
456
+ function bi(e, t, i, n) {
457
+ const r = e?.user;
458
+ return {
459
+ "Open Data": {
460
+ hasAccess: () => ui(e, n)
461
+ },
462
+ AppStudio: {
463
+ hasAccess: () => x("arcgisWebApps", n)
464
+ },
465
+ "ArcGIS Velocity": {
466
+ hasAccess: () => e.isPortal || di(r, n)
467
+ },
468
+ "ArcGIS Hub": {
469
+ hasAccess: () => x("HubforArcGIS", n)
470
+ },
471
+ "ArcGIS Enterprise Sites": {
472
+ hasAccess: () => pi(n)
473
+ },
474
+ "ArcGIS QuickCapture Web Designer": {
475
+ hasAccess: () => x("arcgisWebApps", n)
476
+ },
477
+ "ArcGIS Dashboards": {
478
+ hasAccess: () => x("dashboards", n)
479
+ },
480
+ "Map Viewer": {
481
+ hasAccess: () => hi(e, n)
482
+ },
483
+ "Map Viewer Classic": {
484
+ hasAccess: () => x("arcgisWebApps", n)
485
+ },
486
+ "Operations Dashboard for ArcGIS": {
487
+ hasAccess: () => x("opsdashboard", n)
488
+ },
489
+ "ArcGIS Dashboards Classic": {
490
+ hasAccess: () => x("opsdashboard", n)
491
+ },
492
+ "Ortho Maker": {
493
+ hasAccess: () => fi(e)
494
+ },
495
+ Notebook: {
496
+ hasAccess: () => mi(e, r, t)
497
+ },
498
+ "Scene Viewer": {
499
+ hasAccess: () => x("arcgisWebApps", n)
500
+ },
501
+ "Story Maps": {
502
+ hasAccess: () => x("arcgisWebApps", n)
503
+ },
504
+ Survey123: {
505
+ hasAccess: () => x("survey123", n)
506
+ },
507
+ "Track Viewer": {
508
+ hasAccess: () => gi(e, i)
509
+ },
510
+ "Instant Apps": {
511
+ // For Portal
512
+ hasAccess: () => x("arcgisWebApps", n)
513
+ },
514
+ "ArcGIS Maps for Adobe Creative Cloud": {
515
+ hasAccess: () => x("arcgisWebApps", n) && !e.isPortal
516
+ }
517
+ };
518
+ }
519
+ function vi(e) {
520
+ let t = {
521
+ opsdashboard: 1,
522
+ arcgisWebApps: 1,
523
+ Workforce: 1,
524
+ geoplanner: 1,
525
+ webappbuilder: 1,
526
+ HubforArcGIS: 1,
527
+ appstudio: 1,
528
+ survey123: 1,
529
+ storymaps: 1,
530
+ mapsForOffice: 1,
531
+ mapsForO365: 1,
532
+ mapsForSharePoint: 1,
533
+ mapsForCreativeCloud: 1,
534
+ indoorsweb: 1,
535
+ indoorskiosk: 1,
536
+ indoorsspaceplanner: 1,
537
+ locationplatformWebApps: 1,
538
+ // eslint-disable-next-line @typescript-eslint/naming-convention
539
+ communityanalyst_2: 1
540
+ };
541
+ return e.isPortal && (t = { ...t, arcgisonline: 1, arcgisUrban: 1, arcgisinstantapps: 1 }), t;
542
+ }
543
+ function ie(e) {
544
+ return e.sourceJSON?.subscriptionInfo?.options?.includes("Developer");
545
+ }
546
+ function B(e) {
547
+ return te(`assets/portal-navigation/apps/${e || ""}`);
548
+ }
549
+ function Pe(e, t, i) {
550
+ return e.icon ? `${t.restUrl}/portals/self/resources/${e.icon}?token=${i}` : `${t.restUrl}/content/items/${e.itemId}/resources/${e.image || e.properties?.appSwitcher?.image}?token=${i}`;
551
+ }
552
+ function E(e, t, i) {
553
+ if (e.image ? e.image = B(e.image) : e.placeHolderIcon = `${B()}svg-app-icon.svg`, e.url?.startsWith("../")) {
554
+ const n = i.urlKey ? `${i.urlKey}.${i.customBaseUrl}` : i.portalHostname;
555
+ e.url = `${window.location.protocol}//${n}${e.url.substring(2, e.url.length)}`;
556
+ }
557
+ return delete e.isLicensed, delete e.privileges, e.itemId = t, e;
558
+ }
559
+ function Te() {
560
+ return `${B()}svg-app-circle.svg`;
561
+ }
562
+ function wi(e, t, i) {
563
+ const n = e.properties?.appSwitcher?.image || e.icon;
564
+ return {
565
+ abbr: e.properties?.appSwitcher?.abbr || e.abbreviation,
566
+ itemId: e.itemId,
567
+ canAccess: !0,
568
+ webMappingApp: !0,
569
+ image: n ? Pe(e, t, i) : void 0,
570
+ label: e.title || e.label,
571
+ url: e.url,
572
+ placeHolderIcon: e.placeHolderIcon || Te()
573
+ };
574
+ }
575
+ function _i(e, t, i) {
576
+ return e.appSwitcher?.image || e.icon ? e.image = Pe(e, t, i) : e.placeHolderIcon = Te(), e.abbr = e.appSwitcher?.abbr || e.abbreviation, delete e.abbreviation, delete e.appSwitcher, delete e.approvedApp, delete e.webMappingApp, e;
577
+ }
578
+ function be(e, t) {
579
+ e.forEach((i) => {
580
+ i.uid === "Map Viewer Beta" && (i.uid = "Map Viewer"), t.isPortal && (i.uid === "Operations Dashboard for ArcGIS" ? i.uid = "ArcGIS Dashboards Classic" : i.uid === "Workforce for ArcGIS" && (i.uid = "ArcGIS Workforce"));
581
+ });
582
+ }
583
+ async function yi({
584
+ userApps: e,
585
+ servers: t,
586
+ portal: i,
587
+ licenses: n,
588
+ blockedApps: r,
589
+ provisionedListings: o,
590
+ orgCapabilities: s,
591
+ trackViewerEnabled: a,
592
+ notebookServerEnabled: u,
593
+ willQueryForItems: f,
594
+ approvedApps: m
595
+ }) {
596
+ const v = {}, d = {}, S = bi(i, u, a, n), I = vi(i), w = [], P = e.length;
597
+ for (let p = 0; p < P; p++) {
598
+ const l = e[p], b = l.itemId || l.title;
599
+ let A = !0;
600
+ const h = !l.serverFunction || t?.some((T) => {
601
+ const W = (T.serverFunction?.split(",") || []).includes(l.serverFunction);
602
+ return W && l.serverFunction === "Velocity" && (l.url = T.url), W;
603
+ }), _ = r?.some(
604
+ (T) => l.itemId && l.itemId === T.itemid || l.title && l.title === T.title
605
+ );
606
+ if (v[b] = 1, d[b] = l, _ || ie(i) && !l.showInLocationPlatform || i.sourceJSON?.portalDeploymentType === "ArcGISEnterpriseOnKubernetes" && l.supportsKubernetes === !1)
607
+ continue;
608
+ const k = l.title;
609
+ if (S[k] && !S[k]?.hasAccess())
610
+ continue;
611
+ const G = i.sourceJSON?.subscriptionInfo;
612
+ if (l.subscriptionType) {
613
+ G?.type === l.subscriptionType && (d[b].canAccess = !0, w.push(E(l, b, i)));
614
+ continue;
615
+ }
616
+ if (l.orgCapabilities) {
617
+ s?.length && s.some((R) => l.orgCapabilities?.includes(R.id)) && (d[b].canAccess = !0, w.push(E(l, b, i)));
618
+ continue;
619
+ }
620
+ if (!l.privileges?.length && !l.isLicensed && h && (l.label !== "ArcGIS Location Platform" || ie(i))) {
621
+ d[b].canAccess = !0, w.push(E(l, b, i));
622
+ continue;
623
+ }
624
+ if (i.user?.sourceJSON?.userLicenseTypeId?.toLowerCase() === "storytellerut" && l.label?.toLowerCase() === "storymaps") {
625
+ d[b].canAccess = !0, w.push(E(l, b, i));
626
+ continue;
627
+ }
628
+ if (l.privileges?.length && i.user?.privileges) {
629
+ for (let T = 0; T < l.privileges.length; T++)
630
+ if (!i.user.privileges.includes(l.privileges[T])) {
631
+ A = !1;
632
+ break;
633
+ }
634
+ if (!l.isLicensed && A && h) {
635
+ d[b].canAccess = !0, w.push(E(l, b, i));
636
+ continue;
637
+ }
638
+ }
639
+ if (l.isLicensed && A && h) {
640
+ for (let T = 0; T < o.length; T++)
641
+ if (b === o[T].itemId || b === o[T].title) {
642
+ d[b].canAccess = !0, w.push(E(l, b, i));
643
+ break;
644
+ }
645
+ }
646
+ }
647
+ const g = await Nt(i);
648
+ return o.forEach((p) => {
649
+ if (p.type === "Web Mapping Application" && !I[p.clientId] && !v[p.itemId] && p.url && p.title && !v[p.title] && !p.typeKeywords.includes("hideFromAppSwitcher")) {
650
+ const l = wi(p, i, g);
651
+ d[p.itemId] = l, w.push(l);
652
+ }
653
+ }), {
654
+ apps: [
655
+ ...m.map((p) => {
656
+ const l = {
657
+ ...p.appProperties,
658
+ itemId: p.itemId,
659
+ webMappingApp: !0,
660
+ approvedApp: !0,
661
+ canAccess: !f
662
+ };
663
+ return d[p.itemId] = l, _i(l, i, g);
664
+ }),
665
+ ...w
666
+ ],
667
+ appDictionary: d
668
+ };
669
+ }
670
+ function ee(e, t) {
671
+ return e.filter((i) => !t?.some(
672
+ (r) => i.itemId && i.itemId === r.itemid || i.title && i.title === r.title
673
+ ));
674
+ }
675
+ function ve({
676
+ apps: e,
677
+ app: t,
678
+ appDictionary: i,
679
+ newAppDictionary: n,
680
+ portal: r
681
+ }) {
682
+ let s = Object.keys(i).map((a) => i[a]).filter((a) => a.itemId === t.uid || a.title === t.uid).shift();
683
+ return s && !i[t.uid] && (t.uid = s.itemId || s.title || ""), s?.hasBeenPopulated || (s ? ((t.hasChanged || s.hasChanged || !s.canAccess && !s.ignoreNoAccess) && ye(r.user) && (i[t.uid].hasChanged = !0, i[t.uid].ignoreNoAccess = t.ignoreNoAccess), t.isNew && (i[t.uid].isNew = !0), delete n[t.uid]) : (s = t, s.canAccess = !1, s.itemId = t.uid, i[t.uid] = s), i[t.uid].hasBeenPopulated = !0, e.push(s)), e;
684
+ }
685
+ async function $i({
686
+ portal: e,
687
+ trackViewerEnabled: t,
688
+ notebookServerEnabled: i
689
+ }) {
690
+ if (!e?.id || !e.user)
691
+ return { apps: [], hiddenApps: {} };
692
+ const n = ai(), [r, o, s, a, u, f, m] = await Promise.all([
693
+ ni(e),
694
+ Pt(e),
695
+ Tt(e),
696
+ $t(e),
697
+ At(e),
698
+ kt(e),
699
+ oi(e)
700
+ ]), v = e.isPortal ? await St(e) : null, d = s?.result?.properties;
701
+ let S = r?.appSwitcher?.apps || [];
702
+ e.isPortal || (S = S.filter(
703
+ (h) => h.title !== "Map Viewer Classic" || e.sourceJSON.created < /* @__PURE__ */ new Date("February 26 2025")
704
+ ), S.unshift(ci(e, d)));
705
+ const I = a?.result?.approvedApps?.filter((h) => !h.hideForNonPrivilegedMember) || [], w = {};
706
+ o?.forEach((h) => {
707
+ const _ = h.clientId?.toLowerCase();
708
+ _ && (w[_] = {
709
+ valid: !0,
710
+ itemId: h.itemId,
711
+ clientId: h.clientId
712
+ });
713
+ }), u?.forEach((h) => {
714
+ const _ = h.id?.toLowerCase();
715
+ _ && (w[_] = {
716
+ valid: !0,
717
+ clientId: h.id
718
+ });
719
+ });
720
+ const P = li(f, m), { apps: g, appDictionary: y } = await yi({
721
+ userApps: S,
722
+ servers: v,
723
+ portal: e,
724
+ blockedApps: P,
725
+ provisionedListings: o,
726
+ orgCapabilities: u,
727
+ licenses: w,
728
+ trackViewerEnabled: t,
729
+ notebookServerEnabled: i,
730
+ willQueryForItems: n,
731
+ approvedApps: I
732
+ });
733
+ d?.appLauncher && (d?.appLauncher.primary && be(d?.appLauncher.primary, e), d?.appLauncher.secondary && be(d?.appLauncher.secondary, e));
734
+ let p = [], l = [];
735
+ if (!d?.appLauncher?.primary || !d?.appLauncher.secondary)
736
+ p = g.slice().sort((h, _) => (h.label || "") < (_.label || "") ? -1 : 1), p = ee(p, P), l = [];
737
+ else {
738
+ const { result: h } = await ri(I, n, e);
739
+ h?.results?.length && h.results.forEach(($) => {
740
+ const k = y[$.id];
741
+ k.canAccess = !0, k.hasChanged = k.url !== $.url ? !!$.url : !1;
742
+ });
743
+ const _ = { ...y };
744
+ d?.appLauncher?.primary?.forEach(($) => {
745
+ $.label === "Map Viewer" && ($.uid = "Map Viewer");
746
+ }), p = d?.appLauncher.primary.reduce(
747
+ ($, k) => ve({ apps: $, app: k, appDictionary: y, newAppDictionary: _, portal: e }),
748
+ []
749
+ ) || [], l = d?.appLauncher.secondary.reduce(
750
+ ($, k) => ve({ apps: $, app: k, appDictionary: y, newAppDictionary: _, portal: e }),
751
+ []
752
+ ) || [], p = ee(p, P), l = ee(l, P), ie(e) && (p = p.filter(($) => $.canAccess), l = l.filter(($) => $.canAccess));
753
+ for (const $ of Object.keys(_))
754
+ _[$].canAccess && (_[$].isNew = !0, y[$] = _[$], p.push(_[$]));
755
+ }
756
+ const b = [...p, ...l], A = l.reduce((h, _) => (_.itemId && (h[_.itemId] = !0), h), {});
757
+ return {
758
+ apps: b,
759
+ hiddenApps: A,
760
+ signInSettings: f,
761
+ licenses: w,
762
+ userProperties: d
763
+ };
764
+ }
765
+ function Ai(e, t) {
766
+ return !e?.itemId || !t ? !1 : t[e.itemId];
767
+ }
768
+ async function ki({
769
+ apps: e,
770
+ hiddenApps: t,
771
+ userProperties: i,
772
+ portal: n
773
+ }) {
774
+ const r = e.reduce(
775
+ (s, a) => {
776
+ const u = t[a.itemId];
777
+ return s[u ? "secondary" : "primary"].push({
778
+ label: a.label,
779
+ uid: a.itemId || a.title
780
+ }), s;
781
+ },
782
+ { primary: [], secondary: [] }
783
+ ), o = { ...i || {}, appLauncher: r };
784
+ return await xt(o, n);
785
+ }
786
+ function Ne({ app: e }) {
787
+ if (!e)
788
+ return null;
789
+ if (!e.canAccess)
790
+ return c`<span class="list-item__logo list-item__logo-empty"></span>`;
791
+ const t = !e.image && e.abbr;
792
+ return c`${t && c`<span class="list-item__logo">${e.placeHolderIcon && c`<img src=${ge(e.placeHolderIcon) ?? M} class="list-item__logo-bg" alt>` || ""}<span style=${pt({ fontSize: e.fontSize || "20px" })} class="list-item__abbr">${e.abbr}</span></span>` || ""}${e.image && c`<img src=${ge(e.image) ?? M} class="list-item__logo" alt>` || ""}${e.isNew && c`<span class=${oe({ "list-item__indicator": !0 })}></span>` || ""}`;
793
+ }
794
+ function Si({ app: e, hiddenApps: t, messages: i, toggleAppVisibility: n }) {
795
+ if (!e || !i)
796
+ return null;
797
+ const r = Ai(e, t), { title: o, itemId: s, label: a } = e;
798
+ return c`<calcite-list-item .label=${o || a} class=${oe(r ? "app--hidden" : "")}><span slot=content-start>${Ne({ app: e })}</span><calcite-action .text=${r ? i.show : i.hide} .icon=${r ? "view-hide" : "view-visible"} slot=actions-end @click=${() => s && n(s, !r)}></calcite-action></calcite-list-item>`;
799
+ }
800
+ function Ii({ app: e, messages: t }) {
801
+ if (!e || !t)
802
+ return null;
803
+ const { title: i, itemId: n, label: r, url: o, isNew: s } = e, a = t?.descriptions?.[i] || t?.descriptions?.[r];
804
+ return c`<li class="list-item" id=${n ?? M}><a class="list-item__link" href=${o ?? M}>${c`<span class="list-item__container">${Ne({ app: e })}<span class="list-item__title">${i || r}</span>${s && c`<calcite-chip scale=s class="list-item__chip" icon=asterisk-small .label=${t.new}>${t.new}</calcite-chip>` || ""}</span>`}</a>${a && c`<calcite-tooltip .referenceElement=${n} placement=trailing>${a}</calcite-tooltip>` || ""}</li>`;
805
+ }
806
+ function xi({ apps: e, appsLoading: t, appsSearchTerm: i, hiddenApps: n, messages: r, handleAppsSearch: o, handleAppReorder: s, handleAppSave: a, handleAppHide: u, handleAppCancel: f, handleAppEdit: m, editingApplications: v, portal: d }) {
807
+ if (!e || !r)
808
+ return null;
809
+ const S = i?.length > 0, I = (e || []).filter((g) => g.itemId && (!n?.[g.itemId] || S) && si(i, g)), w = S ? r.noAppResults.replace("${term}", i) : r.noAppsAvailable, P = S ? C(d) ? r.noAppsDescriptionPublic : r.noAppResultsDescriptionOrg : r.noAppsAvailable;
810
+ return v ? c`<div class="list__header"><calcite-button appearance=outline width=half @click=${() => {
811
+ f();
812
+ }}>${r.cancel}</calcite-button><calcite-button width=half @click=${() => {
813
+ a();
814
+ }}>${r.applyChanges}</calcite-button></div><calcite-list .label=${r.allMyApplications} drag-enabled @calciteListDragEnd=${(g) => {
815
+ const { newIndex: y, oldIndex: p } = g.detail;
816
+ s({ newIndex: y, oldIndex: p });
817
+ }} .loading=${t}>${j(e, (g) => g.itemId, (g) => Si({ app: g, hiddenApps: n, messages: r, toggleAppVisibility: (y, p) => {
818
+ u({ app: y, hidden: p });
819
+ } }))}</calcite-list>` : c`<div class="list__header"><calcite-input type=search icon .placeholder=${r.searchMyApps} scale=m class="list__search" @calciteInputInput=${(g) => {
820
+ o(g.currentTarget.value);
821
+ }}></calcite-input><calcite-button appearance=transparent kind=neutral icon-start=reorder-cards .label=${r.reorder} @click=${() => m()}></calcite-button></div>${I?.length > 0 ? c`<ul class="list">${j(I, (g) => g.itemId, (g) => Ii({ app: g, messages: r }))}</ul>` : J({ title: w, description: P, icon: i ? "search" : "apps" })}`;
822
+ }
823
+ const we = "portalAppClientId", le = {
824
+ GeoanalyticsEngine: "geoanalyticsengine",
825
+ GeoanalyticsFabric: "geoanalyticsfabric",
826
+ IndoorsOnline: "indoorsonline"
827
+ };
828
+ function ue(e) {
829
+ return le.GeoanalyticsEngine === e;
830
+ }
831
+ function de(e) {
832
+ return le.GeoanalyticsFabric === e;
833
+ }
834
+ function Ce(e) {
835
+ return le.IndoorsOnline === e;
836
+ }
837
+ function pe(e) {
838
+ return ["Location Platform", "GeoAnalytics Fabric", "GeoAnalytics Engine", "Online", "Enterprise"].includes(e);
839
+ }
840
+ function Pi({
841
+ portal: e,
842
+ messages: t,
843
+ licenses: i,
844
+ clientId: n,
845
+ signInSettings: r
846
+ }) {
847
+ if (!t || !e)
848
+ return [];
849
+ const o = e.sourceJSON?.subscriptionInfo, s = Mi({ messages: t, portal: e });
850
+ if (!e.user)
851
+ return s;
852
+ if (!e || !s || e?.user && !i && !C(e))
853
+ return [];
854
+ const a = Oi({
855
+ portal: e,
856
+ licenses: i,
857
+ subscriptionInfo: o
858
+ });
859
+ return Li({ messages: t, portal: e, clientId: n, signInSettings: r, navLinkDictionary: a });
860
+ }
861
+ function Ti(e) {
862
+ const { id: t, access: i, isPortal: n } = e;
863
+ return !t && !i && !n;
864
+ }
865
+ function Ni(e) {
866
+ return new URL(e).pathname === window.location.pathname;
867
+ }
868
+ function Me({
869
+ portal: e,
870
+ clientId: t,
871
+ signInSettings: i
872
+ }) {
873
+ const n = e.user, r = Ce(t), o = !!i?.blockedApps?.includes("arcgisnotebooks"), {
874
+ gallery: s = "all",
875
+ groups: a = "all",
876
+ map: u = "all",
877
+ notebook: f = "notebookCreators",
878
+ scene: m = "all"
879
+ } = e.portalProperties?.topNav || {};
880
+ let v = ["home"];
881
+ if (!n) {
882
+ if (!e.portalProperties?.topNav) {
883
+ const S = ["gallery", "map", "scene", "groups"], I = e.isPortal ? ["help"] : [];
884
+ return [...v, ...S, ...I];
885
+ }
886
+ return [
887
+ ...v,
888
+ ...s === "all" ? ["gallery"] : [],
889
+ ...u === "all" ? ["map"] : [],
890
+ ...m === "all" ? ["scene"] : [],
891
+ ...a === "all" ? ["groups"] : [],
892
+ ...e.isPortal ? ["help"] : []
893
+ ];
894
+ }
895
+ const d = n.orgId === e.id;
896
+ return !e.portalProperties?.topNav && C(e) ? v = ["ArcGIS", "overview", "pricing", "map", "scene", "groups", "myContent"] : v = [
897
+ ...v,
898
+ ...(s === "all" || s === "members" && d) && !r ? ["gallery"] : [],
899
+ ...(u === "all" || u === "members" && d || u === "mapCreators" && he(n)) && !r ? ["map"] : [],
900
+ ...(m === "all" || m === "members" && d || m === "sceneCreators" && he(n)) && !r ? ["scene"] : [],
901
+ ...!o && (!e.isPortal || e.sourceJSON.supportsHostedNotebooks) && (f === "members" && d || f === "notebookCreators" && yt(n)) && !r ? ["notebook"] : [],
902
+ ...(a === "all" || a === "members" && d) && !r ? ["groups"] : [],
903
+ ...d && !r ? ["myContent", "organization"] : []
904
+ ], v;
905
+ }
906
+ function L(e) {
907
+ return `${bt({ portal: e })}/`;
908
+ }
909
+ function Ci({
910
+ keys: e,
911
+ navLinkDictionary: t,
912
+ messages: i
913
+ }) {
914
+ const n = [];
915
+ return e.forEach((r) => {
916
+ const o = t[r];
917
+ if (o && (!("show" in o) || o.show)) {
918
+ const { href: s, newTab: a, icon: u } = o;
919
+ n.push({
920
+ label: i[r],
921
+ href: s,
922
+ newTab: a,
923
+ icon: u
924
+ });
925
+ }
926
+ }), n;
927
+ }
928
+ function Mi({
929
+ messages: e,
930
+ portal: t
931
+ }) {
932
+ if (!e || !t)
933
+ return [];
934
+ const i = L(t), n = {
935
+ overview: { label: e.overview, href: `${i}../features/features.html`, icon: "information" },
936
+ pricing: { label: e.pricing, href: `${i}../features/plans/pricing.html`, icon: "credit-card" },
937
+ map: { label: e.map, href: `${i}apps/mapviewer/index.html`, icon: "map" },
938
+ scene: { label: e.scene, href: `${i}webscene/viewer.html`, icon: "globe" },
939
+ help: { label: e.help, href: se(t), newTab: !0, icon: "headset" },
940
+ home: { label: e.home, href: `${i}index.html`, icon: "home" },
941
+ gallery: { label: e.gallery, href: `${i}gallery.html`, icon: "gallery" },
942
+ groups: { label: e.groups, href: `${i}groups.html`, icon: "group" }
943
+ };
944
+ return (Ti(t) ? ["overview", "pricing", "map", "scene", "help"] : Me({ portal: t })).map((o) => n[o]);
945
+ }
946
+ function Li({
947
+ messages: e,
948
+ portal: t,
949
+ clientId: i,
950
+ signInSettings: n,
951
+ navLinkDictionary: r
952
+ }) {
953
+ const o = ue(i), s = Me({ portal: t, clientId: i, signInSettings: n }), a = `${L(t)}geoanalytics${o ? "engine" : "fabric"}.html`;
954
+ return o || de(i) ? [
955
+ {
956
+ // TODO: active calculations in the component need to account for hash for these options
957
+ href: `${a}#subscription`,
958
+ label: e.subscription
959
+ },
960
+ ...o ? [
961
+ {
962
+ href: `${a}#downloads`,
963
+ label: e.downloads
964
+ }
965
+ ] : [],
966
+ {
967
+ href: `${a}#credentials`,
968
+ label: e.developerCredentials
969
+ },
970
+ {
971
+ href: `${a}#account`,
972
+ label: e.account
973
+ }
974
+ ] : Ci({ keys: s, messages: e, navLinkDictionary: r });
975
+ }
976
+ function Oi({
977
+ portal: e,
978
+ licenses: t,
979
+ subscriptionInfo: i
980
+ }) {
981
+ const n = e.user, r = L(e), o = i?.options?.includes("Developer"), s = x("arcgiswebapps", t) || o && x("locationplatformwebapps", t) || C(e);
982
+ return {
983
+ pricing: { href: `${r}../features/plans/pricing.html` },
984
+ overview: { href: `${r}../features/features.html` },
985
+ ArcGIS: {
986
+ href: `${r}${C(e) ? "index.html" : "../features/features.html"}`,
987
+ show: C(e) || !n
988
+ },
989
+ groups: {
990
+ href: `${r}groups.html`,
991
+ icon: "group"
992
+ },
993
+ myContent: {
994
+ href: `${r}content.html`,
995
+ icon: "files"
996
+ },
997
+ map: {
998
+ show: s,
999
+ href: `${r}/apps/mapviewer/index.html`,
1000
+ icon: "map"
1001
+ },
1002
+ help: {
1003
+ href: se(e),
1004
+ newTab: !0
1005
+ },
1006
+ gallery: {
1007
+ show: !!e.id && !o,
1008
+ href: `${r}gallery.html`,
1009
+ icon: "gallery"
1010
+ },
1011
+ home: {
1012
+ show: !C(e) && !o,
1013
+ href: `${r}index.html`,
1014
+ icon: "home"
1015
+ },
1016
+ scene: {
1017
+ show: s,
1018
+ href: `${r}webscene/viewer.html`,
1019
+ icon: "globe"
1020
+ },
1021
+ notebook: {
1022
+ show: vt(e),
1023
+ href: `${r}notebook/notebookhome.html`,
1024
+ icon: "notebook"
1025
+ },
1026
+ organization: {
1027
+ show: !C(e),
1028
+ href: `${r}organization.html`,
1029
+ icon: "organization"
1030
+ },
1031
+ features: {
1032
+ show: C(e) && !e.isPortal,
1033
+ href: `${r}../features/features.html`,
1034
+ icon: "information"
1035
+ }
1036
+ };
1037
+ }
1038
+ function Ei({ portal: e, item: t, messages: i, navigate: n, locale: r }) {
1039
+ if (!t || !i || !t.modified)
1040
+ return null;
1041
+ const o = t.modified, s = { lessThanOneMinute: i.lessThanOneMinute }, a = Ae(ke(o)), u = a?.[1] === "year" || a?.[1] === "month" ? Ft({ locale: r, time: o }, a?.[1] === "year") : Se({ locale: r, time: o, t9n: s }), f = `${L(e)}item.html?id=${t.id}`;
1042
+ return ce(t.id, c`<li class="list-item"><a class="list-item__link" href=${f ?? M} @click=${(m) => n({ event: m, href: f })}>${c`<span class="list-item__container"><span class="list-item__logo list-item__logo--item-type"><arcgis-portal-item-type .item=${t} .user=${e.user} hide-text></arcgis-portal-item-type></span><span class="list-item__content"><span class="list-item__title list-item__title--regular">${t.title}</span><span class="list-item__subtitle">${K(i.lastUpdated, { date: u })}</span></span></span>`}</a></li>`);
1043
+ }
1044
+ function ji({ locale: e, navigate: t, portal: i, open: n, apps: r, appsLoading: o, hiddenApps: s, appsSearchTerm: a, handlePlatformClose: u, handleAppsSearch: f, handleAppReorder: m, handleAppSave: v, handleAppHide: d, handleAppCancel: S, handleAppEdit: I, handleItemSearch: w, editingApplications: P, recentContent: g, recentContentLoading: y, recentContentSearchTerm: p, product: l, productInfo: b, links: A, messages: h }) {
1045
+ if (!l || !i || !h)
1046
+ return null;
1047
+ const { name: _, icon: $ } = b || {};
1048
+ return c`<calcite-sheet class="platform" .label=${h.label} position=inline-start display-mode=overlay id=example-sheet .open=${n} @calciteSheetClose=${u}><calcite-panel class="platform__panel"><div slot=header-content class="platform__header"><img src=${$ ?? M} class="platform__header-image"><div class="platform__header-text"><h2 class="platform__title">${_}</h2><p class="platform__subtitle">${i.name}</p></div><calcite-action icon=x text="Close menu" scale=l @click=${u}></calcite-action></div><div class="platform__container"><div class="platform__tiles">${A.filter(({ icon: k }) => k).map(({ label: k, href: G, icon: z }) => c`<calcite-tile .icon=${z} .description=${k} .href=${G} alignment=center scale=s></calcite-tile>`)}</div>${i?.user && !C(i) && c`<calcite-tabs layout=center class="platform__tabs"><calcite-tab-nav slot=title-group><calcite-tab-title selected>${h.myApps}</calcite-tab-title><calcite-tab-title>${h.recentContent}</calcite-tab-title></calcite-tab-nav><calcite-tab selected class="platform__tab">${o && c`<calcite-scrim loading></calcite-scrim>` || ""}${xi({ apps: r, appsLoading: o, appsSearchTerm: a, hiddenApps: s, messages: h, handleAppsSearch: f, handleAppReorder: m, handleAppSave: v, handleAppHide: d, handleAppCancel: S, handleAppEdit: I, editingApplications: P, portal: i })}</calcite-tab><calcite-tab class="platform__tab"><div class="list__header"><calcite-input type=search icon .placeholder=${h.searchRecentContent} scale=m class="list__search" @calciteInputInput=${(k) => w(k.target.value)}></calcite-input></div>${y && !o && c`<calcite-scrim loading></calcite-scrim>` || ""}<div class="list__container">${g?.length > 0 || y ? c`<ul class="list">${j(g, (k) => k.id, (k) => Ei({ portal: i, messages: h, navigate: t, item: k, locale: e }))}</ul>` : p?.length ? J({ title: K(h.noAppResults, { term: p }), description: h.recentContentNoResultsDescription, icon: "search" }) : J({ title: h.noContent, description: h.noContentDescription, icon: "clock" })}</div></calcite-tab></calcite-tabs>` || ""}</div></calcite-panel></calcite-sheet>`;
1049
+ }
1050
+ const ne = [
1051
+ "new",
1052
+ "open",
1053
+ "rename",
1054
+ "save",
1055
+ "saveCopy",
1056
+ "share",
1057
+ "copyLink",
1058
+ "embed",
1059
+ "details"
1060
+ ];
1061
+ async function Di(e) {
1062
+ return await Promise.resolve({ status: "success" });
1063
+ }
1064
+ function re(e) {
1065
+ return ne.includes(e.id);
1066
+ }
1067
+ function Gi(e) {
1068
+ return (e || [])?.toSorted((t, i) => {
1069
+ const n = re(t), r = re(i);
1070
+ return n && !r ? -1 : r && !n ? 1 : r && n ? ne.indexOf(t.id) - ne.indexOf(i.id) : -1;
1071
+ });
1072
+ }
1073
+ function Ui(e, t) {
1074
+ const i = {
1075
+ new: [],
1076
+ save: [],
1077
+ share: [],
1078
+ details: [],
1079
+ custom: []
1080
+ };
1081
+ if (!t || !e?.length)
1082
+ return i;
1083
+ const n = {
1084
+ new: { text: t.new, group: "new" },
1085
+ open: { text: t.open, group: "new" },
1086
+ rename: { text: t.rename, group: "save" },
1087
+ save: { text: t.save, group: "save" },
1088
+ saveCopy: { text: t.saveAsCopy, group: "save" },
1089
+ share: { text: t.manageSharing, group: "share" },
1090
+ copyLink: { text: t.copyLink, group: "share" },
1091
+ embed: { text: t.embed, group: "share" },
1092
+ details: { text: t.itemDetails, group: "details", external: !0 }
1093
+ }, r = Gi(e), o = [];
1094
+ return r.forEach((s) => {
1095
+ if (!re(s)) {
1096
+ o.push(s);
1097
+ return;
1098
+ }
1099
+ const { text: u, external: f, group: m } = n[s.id];
1100
+ i[m].push({ text: u, external: f, ...s });
1101
+ }), o.forEach((s) => {
1102
+ const a = s.group || "custom";
1103
+ i[a].push(s);
1104
+ }), i;
1105
+ }
1106
+ function Fi({ navigate: e, portal: t, menuItem: i, messages: n, portalItem: r, openProjectTitleEdit: o, projectMenuClick: s }) {
1107
+ if (!t || !n || !i || i.id === "details" && !r)
1108
+ return null;
1109
+ const { external: a, id: u, text: f } = i, m = `${L(t)}item.html?id=${r?.id}`;
1110
+ return ce(`${u}${f}`, c`<calcite-dropdown-item .iconEnd=${a ? "launch" : void 0} .href=${u === "details" ? m : i.href} .target=${a ? "_blank" : void 0} @calciteDropdownItemSelect=${(v) => {
1111
+ if (u === "rename") {
1112
+ o?.();
1113
+ return;
1114
+ }
1115
+ u === "details" && e({ event: v, href: m }), s?.({ type: u });
1116
+ }}>${f}${u === "save" && c`<calcite-icon icon=bullet-point-large class="project__indicator" scale=s></calcite-icon>` || ""}</calcite-dropdown-item>`);
1117
+ }
1118
+ function Bi({ navigate: e, portal: t, projectTitle: i, editedProjectTitle: n, handleProjectTitleSave: r, handleProjectTitleEdit: o, handleProjectTitleCancel: s, openProjectTitleEdit: a, portalItem: u, projectTitleEditing: f, projectTitleSaving: m, projectTitleErrorMessage: v, projectMenuIcon: d, projectMenuSaveIndicator: S, projectMenuClick: I, projectMenuOptions: w, projectTitleInputRef: P, projectButtonRef: g, messages: y }) {
1119
+ if (!t || !y || !w?.length)
1120
+ return null;
1121
+ const p = Ui(w, y), l = !!v;
1122
+ return f ? c`<form class="rename" @submit=${async (b) => {
1123
+ b.preventDefault(), await r?.(n);
1124
+ }} @keydown=${(b) => {
1125
+ b.key === "Escape" && s?.();
1126
+ }}><calcite-input id=project-title-input type=text scale=l class="rename__input" .label=${y.title} .value=${n} .status=${l ? "invalid" : "idle"} @calciteInputInput=${(b) => o?.(b.target.value)} ${F(P)}></calcite-input>${l && c`<calcite-popover open .label=${y.error} .referenceElement=${P?.value || "project-title-input"} pointer-disabled placement=bottom-start><calcite-notice kind=danger open><div slot=message>${v}</div></calcite-notice></calcite-popover>` || ""}<calcite-action .disabled=${m} icon=check scale=l .text=${y?.saveRename} active class="rename__action" type=submit .loading=${m}></calcite-action><calcite-action .disabled=${m} icon=x scale=l .text=${y?.cancelRename} class="rename__action" @click=${() => s?.()}></calcite-action></form>` : c`<calcite-dropdown width=m class="fade-in"><calcite-button slot=trigger .iconStart=${d} icon-end=chevron-down scale=m class="project" appearance=transparent kind=neutral ${F(g)}><span class="project__text">${i}${S && c`<calcite-icon scale=s icon=bullet-point-large class="project__indicator"></calcite-icon>` || ""}</span></calcite-button>${j(Object.entries(p).filter(([b, A]) => A.length), ([b, A]) => b, ([b, A]) => c`<calcite-dropdown-group selection-mode=none>${A.map((h) => Fi({ menuItem: h, navigate: e, portal: t, messages: y, portalItem: u, openProjectTitleEdit: a, projectMenuClick: I }))}</calcite-dropdown-group>`)}</calcite-dropdown>`;
1127
+ }
1128
+ function zi(e) {
1129
+ return ["Location Platform", "Online", "Enterprise"].includes(e);
1130
+ }
1131
+ function Le({
1132
+ portal: e,
1133
+ searchType: t,
1134
+ searchTerm: i
1135
+ }) {
1136
+ const r = e?.sourceJSON?.vectorSearchEnabled ? `&mode=${t}` : "";
1137
+ return `${L(e)}search.html?q=${i}${r}`;
1138
+ }
1139
+ function Ri({ portal: e, item: t, messages: i, navigate: n }) {
1140
+ if (!t || !i)
1141
+ return null;
1142
+ const r = K(i.by, {
1143
+ itemType: Ct(t),
1144
+ owner: t.owner
1145
+ }), o = `${L(e)}item.html?id=${t.id}`;
1146
+ return ce(t.id, c`<li class="list-item"><a class="list-item__link" href=${o ?? M} @click=${(s) => n({ event: s, href: o })}>${c`<span class="list-item__container"><span class="list-item__logo list-item__logo--item-type"><arcgis-portal-item-type .item=${t} .user=${e.user} hide-text></arcgis-portal-item-type></span><span class="list-item__content"><span class="list-item__title list-item__title--regular list-item__title--large">${t.title}</span><span class="list-item__subtitle list-item__subtitle--large">${r}</span></span></span>`}</a></li>`);
1147
+ }
1148
+ function Wi({ portal: e, suggestions: t, messages: i, navigate: n, searchType: r, searchTerm: o }) {
1149
+ if (!i || !e || !o)
1150
+ return null;
1151
+ if (!t)
1152
+ return c`<div><calcite-loader scale=l .label=${i.loadingResults}></calcite-loader></div>`;
1153
+ const s = Le({ portal: e, searchType: r, searchTerm: o });
1154
+ return c`<ul class="list">${t.map((a) => Ri({ messages: i, portal: e, item: a, navigate: n }))}</ul><div class="suggestions__footer"><calcite-button icon-end=arrow-right scale=l appearance=outline class="suggestions__footer__button" kind=neutral round .href=${s} @click=${(a) => {
1155
+ n({ href: s, event: a });
1156
+ }}>${i.viewAll}</calcite-button></div>`;
1157
+ }
1158
+ function Vi({ portal: e, messages: t, searchType: i, handleSearchTypeChange: n }) {
1159
+ if (!t || !e?.sourceJSON?.vectorSearchEnabled)
1160
+ return null;
1161
+ const r = i === "keyword", o = t.searchType;
1162
+ return c`<calcite-chip .label=${o.label} .icon=${r ? "text" : "effects"} id=search-type-toggle appearance=solid kind=neutral><span>${r ? o.keywordTitle : o.semanticTitle}</span><calcite-icon icon=chevron-down scale=s class="suggestions__search-type__icon" aria-hidden=true></calcite-icon></calcite-chip><calcite-popover pointer-disabled .label=${t.searchType.label} reference-element=search-type-toggle placement=bottom-end class="suggestions__search-type"><div class="esri-header-search-type-popover-contents"><calcite-list .label=${t.searchType.label} interaction-mode=interactive display-mode=flat scale=m selection-mode=none><calcite-list-item @calciteListItemSelect=${() => n("keyword")} icon-start=text value=keyword .label=${o.keywordTitle} .description=${o.keywordDescription}></calcite-list-item><calcite-list-item @calciteListItemSelect=${() => n("vector")} icon-start=effects value=semantic .label=${o.semanticTitle} .description=${o.semanticDescription}></calcite-list-item></calcite-list></div></calcite-popover>`;
1163
+ }
1164
+ function Hi({ navigate: e, product: t, portal: i, messages: n, searchActive: r, searchType: o, searchTerm: s, suggestions: a, searchInputRef: u, searchActionRef: f, searchPopoverRef: m, handleSearch: v, handleToggleSearch: d, handleSearchTypeChange: S }) {
1165
+ if (!zi(t) || !n || !i)
1166
+ return null;
1167
+ const I = Le({ portal: i, searchTerm: s, searchType: o });
1168
+ return r ? c`<div class="search" id=search-reference-element><calcite-input type=search scale=l icon=search class="search__input" @calciteInputInput=${(w) => v(w.target.value)} @keydown=${(w) => {
1169
+ w.key === "Enter" && (e({ href: I, event: w }), w.defaultPrevented || (window.location.href = I)), w.key === "Escape" && d(!1);
1170
+ }} ${F(u)}></calcite-input><calcite-action icon=x scale=l .text=${n?.close} active class="search__action" @click=${() => d(!1)}></calcite-action><calcite-popover .label=${n.suggestions} reference-element=search-reference-element .open=${r && !!s} pointer-disabled placement=bottom-start trigger-disabled .focusTrapOptions=${{ initialFocus: !1 }} ${F(m)}><div class="suggestions__header"><h3 class="suggestions__title">${n.topResults}</h3>${Vi({ portal: i, messages: n, searchType: o, handleSearchTypeChange: S })}</div><div class="suggestions__results">${Wi({ portal: i, suggestions: a, navigate: e, messages: n, searchType: o, searchTerm: s })}</div></calcite-popover></div>` : c`<calcite-action icon=search scale=l text=search class="search__action fade-in" @click=${() => d(!0)} ${F(f)}></calcite-action>`;
1171
+ }
1172
+ function qi({ signIn: e, messages: t }) {
1173
+ return c`<calcite-menu slot=user .label=${t?.account || ""} class="border-start fade-in"><calcite-menu-item .label=${t?.signIn || ""} text-enabled .text=${t?.signIn || ""} @calciteMenuItemSelect=${() => e()}></calcite-menu-item></calcite-menu>`;
1174
+ }
1175
+ function Ji({ navigate: e, portal: t, product: i, links: n, messages: r, searchActive: o }) {
1176
+ return !i || !t || !r || !pe(i) || !n || o ? null : c`<calcite-menu slot=content-start .label=${r.label} class="site-nav fade-in">${j(n, ({ href: s }) => s, ({ label: s, href: a }) => c`<calcite-menu-item .text=${s} text-enabled .label=${s} .href=${a} .active=${Ni(a)} @click=${(u) => e({ event: u, href: a })}></calcite-menu-item>`)}</calcite-menu>`;
1177
+ }
1178
+ function Ki({ userLinks: e, messages: t, openAccountSwitcher: i, portal: n, signOut: r, textDisabled: o }) {
1179
+ const s = n?.user;
1180
+ return !s || !e || !t || e?.account?.options.length < 1 && e?.resources?.options.length < 1 ? null : c`<div slot=user class="user fade-in"><calcite-navigation-user id=navigation-user full-name=${s?.fullName ?? M} .username=${s?.username} .thumbnail=${s.thumbnailUrl || void 0} .userId=${s?.id} .textDisabled=${o}></calcite-navigation-user><calcite-dropdown width=m reference-element=navigation-user>${o && c`<div class="user__top"><arcgis-portal-user-avatar .user=${s} .portal=${n} scale=l class="user__avatar"></arcgis-portal-user-avatar><div class="user__top__text"><h2 class="user__top__full">${s.fullName}</h2><p class="user__top__username">${s.username}</p></div></div>` || ""}${Object.values(e).filter((a) => a.options.length).map(({ title: a, options: u }) => c`<calcite-dropdown-group selection-mode=none .groupTitle=${a}>${u.map(({ icon: f, label: m, href: v }) => c`<calcite-dropdown-item .iconStart=${f} .href=${v}>${m}</calcite-dropdown-item>`)}</calcite-dropdown-group>`)}<calcite-dropdown-group selection-mode=none><calcite-dropdown-item icon-start=sign-out @calciteDropdownItemSelect=${() => r()}>${t.signOut}</calcite-dropdown-item>${i && c`<calcite-dropdown-item icon-start=users @calciteDropdownItemSelect=${(a) => {
1181
+ const u = Mt(a.target, "calcite-dropdown");
1182
+ u && (u.open = !1), i();
1183
+ }}>${t.switchAccounts}</calcite-dropdown-item>` || ""}</calcite-dropdown-group></calcite-dropdown></div>`;
1184
+ }
1185
+ const Oe = {
1186
+ community: "https://community.esri.com/plugins/common/feature/oauth2sso_v2/sso_login_redirect?referer=https%3A%2F%2Fcommunity.esri.com%2F",
1187
+ myEsri: "https://my.esri.com"
1188
+ };
1189
+ function Qi({
1190
+ messages: e,
1191
+ userLinks: t
1192
+ }) {
1193
+ const i = {
1194
+ account: { title: e.account, options: [] },
1195
+ resources: { title: e.resources, options: [] }
1196
+ };
1197
+ return t.forEach((n) => {
1198
+ i[n.group].options.push(n);
1199
+ }), i;
1200
+ }
1201
+ function Xi({
1202
+ portal: e,
1203
+ messages: t,
1204
+ clientId: i
1205
+ }) {
1206
+ if (!e?.user || !t)
1207
+ return {
1208
+ account: { title: t?.account, options: [] },
1209
+ resources: { title: t?.account, options: [] }
1210
+ };
1211
+ const n = en(e), r = Yi({ navLinkDictionary: n, messages: t, clientId: i });
1212
+ return Qi({ userLinks: r, messages: t });
1213
+ }
1214
+ function Yi({
1215
+ navLinkDictionary: e,
1216
+ messages: t,
1217
+ clientId: i
1218
+ }) {
1219
+ let n = [
1220
+ "myProfile",
1221
+ "mySettings",
1222
+ "myEsri",
1223
+ "training",
1224
+ "trialDownload",
1225
+ "communityForums",
1226
+ "arcgisBlog",
1227
+ "help"
1228
+ ];
1229
+ return (ue(i) || de(i)) && (n = ["mySettings", "arcgisBlog", "help"]), Ce(i) && (n = []), Zi(n, t, e);
1230
+ }
1231
+ function Zi(e, t, i) {
1232
+ const n = [];
1233
+ return e.forEach((r) => {
1234
+ const o = i[r];
1235
+ if (o && (!("show" in o) || o.show)) {
1236
+ const { href: s, newTab: a, icon: u, group: f } = o;
1237
+ n.push({
1238
+ label: t[r],
1239
+ group: f,
1240
+ href: s,
1241
+ newTab: a,
1242
+ icon: u
1243
+ });
1244
+ }
1245
+ }), n;
1246
+ }
1247
+ function en(e) {
1248
+ const t = L(e), i = tn(e);
1249
+ return {
1250
+ myProfile: {
1251
+ href: `${t}user.html${window.location.pathname.includes("home/user.html") ? "?nav=1" : ""}`,
1252
+ group: "account",
1253
+ icon: "user"
1254
+ },
1255
+ mySettings: {
1256
+ href: `${t}user.html${window.location.pathname.includes("home/user.html") ? "?nav=1" : ""}#settings`,
1257
+ group: "account",
1258
+ icon: "gear"
1259
+ },
1260
+ help: {
1261
+ group: "resources",
1262
+ icon: "question",
1263
+ href: se(e),
1264
+ newTab: !0
1265
+ },
1266
+ communityForums: {
1267
+ show: i,
1268
+ group: "resources",
1269
+ icon: "speech-bubbles",
1270
+ href: Oe.community,
1271
+ newTab: !0
1272
+ },
1273
+ myEsri: {
1274
+ show: i,
1275
+ group: "account",
1276
+ icon: "globe",
1277
+ href: rn(e),
1278
+ newTab: !0
1279
+ },
1280
+ arcgisBlog: {
1281
+ show: i,
1282
+ group: "resources",
1283
+ icon: "article",
1284
+ href: "https://www.esri.com/arcgis-blog/products/arcgis-online",
1285
+ newTab: !0
1286
+ },
1287
+ training: {
1288
+ show: i,
1289
+ group: "resources",
1290
+ icon: "education",
1291
+ href: nn(e),
1292
+ newTab: !0
1293
+ },
1294
+ trialDownload: {
1295
+ group: "resources",
1296
+ icon: "download-to",
1297
+ show: sn(e),
1298
+ href: `${t}/home/user.html${window.location.pathname.includes("home/user.html") ? "?nav=1&tab=licenses" : "?tab=licenses"}#settings`
1299
+ }
1300
+ };
1301
+ }
1302
+ function tn(e) {
1303
+ return !e.isPortal && e?.user?.sourceJSON?.userType === "both";
1304
+ }
1305
+ function nn(e) {
1306
+ return Ee(
1307
+ e,
1308
+ `${window.location.protocol}//www.esri.com/training/arcgis-online-training`
1309
+ );
1310
+ }
1311
+ function rn(e) {
1312
+ return Ee(e, Oe.myEsri);
1313
+ }
1314
+ function Ee(e, t) {
1315
+ const i = ae(e), n = on(e), r = `https://accounts${n ? n === "dev" ? "-dev" : "-stg" : ""}.esri.com/`, o = `&authBaseUrl=${q(i.replace("/sharing/rest/", ""), e)}`, s = `${r}LoginHandler/switchuser?`, a = `username=${e?.user?.username ?? ""}&redirect_uri=${t}${o}`;
1316
+ return `${s}${a}`;
1317
+ }
1318
+ function on(e) {
1319
+ const t = e.portalHostname;
1320
+ return t?.includes("dev") ? "dev" : t?.includes("qa") ? "qa" : "";
1321
+ }
1322
+ function sn(e) {
1323
+ return !e?.isPortal && ["Trial", "Trial Press"].includes(e?.sourceJSON.subscriptionInfo?.type);
1324
+ }
1325
+ function an(e) {
1326
+ switch (e) {
1327
+ case "360 VR":
1328
+ return {
1329
+ name: "360 VR",
1330
+ fileName: "arcgis-360-vr",
1331
+ icon: "arcgis-360-vr"
1332
+ };
1333
+ case "Business Analyst":
1334
+ return {
1335
+ name: "ArcGIS Business Analyst",
1336
+ fileName: "arcgis-business-analyst",
1337
+ icon: "business-analyst"
1338
+ };
1339
+ case "Dashboards":
1340
+ return {
1341
+ name: "ArcGIS Dashboards",
1342
+ fileName: "arcgis-dashboards",
1343
+ icon: "operations-dashboard"
1344
+ };
1345
+ case "Data Pipelines":
1346
+ return {
1347
+ name: "ArcGIS Data Pipelines",
1348
+ fileName: "arcgis-data-pipelines",
1349
+ icon: "data-pipelines"
1350
+ };
1351
+ case "Deep Learning Studio":
1352
+ return {
1353
+ name: "Deep Learning Studio",
1354
+ fileName: "arcgis-deep-learning-studio",
1355
+ icon: "deeplearningstudio"
1356
+ };
1357
+ case "Enterprise":
1358
+ return {
1359
+ name: "ArcGIS Enterprise",
1360
+ fileName: "arcgis-enterprise",
1361
+ icon: "arcgis-enterprise"
1362
+ };
1363
+ case "Excalibur":
1364
+ return {
1365
+ name: "ArcGIS Excalibur",
1366
+ fileName: "arcgis-excalibur",
1367
+ icon: "excalibur"
1368
+ };
1369
+ case "Experience Builder":
1370
+ return {
1371
+ name: "ArcGIS Experience Builder",
1372
+ fileName: "arcgis-experience-builder",
1373
+ icon: "arcgis-experience-builder"
1374
+ };
1375
+ case "Field Maps":
1376
+ return {
1377
+ name: "Field Maps Designer",
1378
+ fileName: "arcgis-field-maps",
1379
+ icon: "fieldmaps"
1380
+ };
1381
+ case "Field Maps Designer EA":
1382
+ return {
1383
+ name: "Field Maps Designer (EA)",
1384
+ fileName: "arcgis-field-maps-designer-ea",
1385
+ icon: "fieldmaps"
1386
+ };
1387
+ case "GeoAnalytics Engine":
1388
+ case "GeoAnalytics Fabric":
1389
+ return {
1390
+ name: e,
1391
+ fileName: "arcgis-geoanalytics-engine",
1392
+ icon: "arcgis-geoanalytics"
1393
+ };
1394
+ case "GeoBIM":
1395
+ return {
1396
+ name: "ArcGIS GeoBIM",
1397
+ fileName: "arcgis-geobim",
1398
+ icon: "geobim"
1399
+ };
1400
+ case "Hub":
1401
+ return {
1402
+ name: "ArcGIS Hub",
1403
+ fileName: "arcgis-hub",
1404
+ icon: "arcgis-hub"
1405
+ };
1406
+ case "Instant Apps":
1407
+ return {
1408
+ name: "Instant Apps",
1409
+ fileName: "arcgis-instant-apps",
1410
+ icon: "instant-apps"
1411
+ };
1412
+ case "Knowledge":
1413
+ return {
1414
+ name: "ArcGIS Knowledge Studio",
1415
+ fileName: "arcgis-knowledge",
1416
+ icon: "knowledge-studio"
1417
+ };
1418
+ case "Location Platform":
1419
+ return {
1420
+ name: "Location Platform",
1421
+ fileName: "arcgis-location-platform",
1422
+ icon: "location-platform"
1423
+ };
1424
+ case "Map Viewer":
1425
+ return {
1426
+ name: "Map Viewer",
1427
+ fileName: "map-viewer",
1428
+ icon: "map-viewer"
1429
+ };
1430
+ case "Mission":
1431
+ return {
1432
+ name: "ArcGIS Mission Manager",
1433
+ fileName: "arcgis-mission",
1434
+ icon: "mission"
1435
+ };
1436
+ case "Monitor":
1437
+ return {
1438
+ name: "ArcGIS Monitor",
1439
+ fileName: "arcgis-monitor",
1440
+ icon: "monitor"
1441
+ };
1442
+ case "Notebooks":
1443
+ return {
1444
+ name: "ArcGIS Notebooks",
1445
+ fileName: "arcgis-notebooks",
1446
+ icon: "notebook"
1447
+ };
1448
+ case "Online":
1449
+ return {
1450
+ name: "ArcGIS Online",
1451
+ fileName: "arcgis-online",
1452
+ icon: "arcgis-online"
1453
+ };
1454
+ case "Ortho Maker":
1455
+ return {
1456
+ name: "Ortho Maker",
1457
+ fileName: "arcgis-ortho-maker",
1458
+ icon: "ortho-maker"
1459
+ };
1460
+ case "QuickCapture":
1461
+ return {
1462
+ name: "ArcGIS QuickCapture",
1463
+ fileName: "arcgis-quickcapture",
1464
+ icon: "quick-capture"
1465
+ };
1466
+ case "Reality Studio":
1467
+ return {
1468
+ name: "ArcGIS Reality Studio",
1469
+ fileName: "arcgis-reality-studio",
1470
+ icon: "arcgis-reality-studio"
1471
+ };
1472
+ case "Scene Viewer":
1473
+ return {
1474
+ name: "Scene Viewer",
1475
+ fileName: "sceneviewer",
1476
+ icon: "scene-viewer"
1477
+ };
1478
+ case "Solutions":
1479
+ return {
1480
+ name: "ArcGIS Solutions",
1481
+ fileName: "arcgis-solutions",
1482
+ icon: "solutions"
1483
+ };
1484
+ case "StoryMaps":
1485
+ return {
1486
+ name: "ArcGIS StoryMaps",
1487
+ fileName: "arcgis-storymaps",
1488
+ icon: "story-maps"
1489
+ };
1490
+ case "Survey123":
1491
+ return {
1492
+ name: "ArcGIS Survey123",
1493
+ fileName: "arcgis-survey123",
1494
+ icon: "survey123"
1495
+ };
1496
+ case "Tracker":
1497
+ return {
1498
+ name: "Track Viewer",
1499
+ fileName: "arcgis-tracker",
1500
+ icon: "track-viewer"
1501
+ };
1502
+ case "Urban":
1503
+ return {
1504
+ name: "ArcGIS Urban",
1505
+ fileName: "arcgis-urban",
1506
+ icon: "arcgis-urban"
1507
+ };
1508
+ case "Vector Tile Style Editor":
1509
+ return {
1510
+ name: "Vector Tile Style Editor",
1511
+ fileName: "vector-tile-style-editor",
1512
+ icon: "vector-tile-style-editor"
1513
+ };
1514
+ case "Velocity":
1515
+ return {
1516
+ name: "ArcGIS Velocity",
1517
+ fileName: "arcgis-velocity",
1518
+ icon: "velocity"
1519
+ };
1520
+ case "Web Editor":
1521
+ return {
1522
+ name: "Web Editor",
1523
+ fileName: "arcgis-web-editor",
1524
+ icon: "web-editor"
1525
+ };
1526
+ case "Workflow Manager":
1527
+ return {
1528
+ name: "ArcGIS Workflow Manager",
1529
+ fileName: "arcgis-workflow-manager",
1530
+ icon: "workflow-manager"
1531
+ };
1532
+ case "Workforce":
1533
+ return {
1534
+ name: "ArcGIS Workforce",
1535
+ fileName: "arcgis-workforce",
1536
+ icon: "workforce"
1537
+ };
1538
+ default:
1539
+ return {
1540
+ name: "ArcGIS Online",
1541
+ fileName: "arcgis-online",
1542
+ icon: "arcgis-online"
1543
+ };
1544
+ }
1545
+ }
1546
+ function cn({
1547
+ product: e,
1548
+ portal: t,
1549
+ clientId: i
1550
+ }) {
1551
+ return e !== "Online" ? e : t?.sourceJSON?.subscriptionInfo?.options?.includes("Developer") ? "Location Platform" : de(i) ? "GeoAnalytics Fabric" : ue(i) ? "GeoAnalytics Engine" : t?.isPortal ? "Enterprise" : "Online";
1552
+ }
1553
+ function ln(e) {
1554
+ const t = cn(e), { name: i, fileName: n, icon: r } = an(t);
1555
+ return {
1556
+ name: i,
1557
+ glyph: te(`assets/portal-navigation/product-logos/${n}-glyph-32.svg`),
1558
+ icon: te(`assets/portal-navigation/apps/${r}.avif`)
1559
+ };
1560
+ }
1561
+ function un() {
1562
+ const e = gt();
1563
+ ["item.html", "group.html"].some((t) => window.location.href.includes(t)) ? window.location.href = `./signin.html?locale=${e}&useLandingPage=false&returnUrl=${encodeURIComponent(
1564
+ window.location.href
1565
+ )}` : window.location.href = `./signin.html?locale=${e}&useLandingPage=true`;
1566
+ }
1567
+ function dn({ portal: e, clientId: t }) {
1568
+ const i = Q({ portal: e });
1569
+ if (e?.isPortal) {
1570
+ const n = e.access === "private" ? q("signin.html", e) : e.allSSL || window.location.protocol === "https:" ? q("./index.html", e) : `${i}/index.html`;
1571
+ hn(e, n);
1572
+ } else
1573
+ window.location.href = `${i}/pages/Account/manage_accounts.html#client_id=${t}&signout=true`;
1574
+ }
1575
+ function pn() {
1576
+ Xt(we), Yt(we);
1577
+ }
1578
+ function hn(e, t = window.location.href) {
1579
+ const i = window.location.href.startsWith("http://"), n = wt(e);
1580
+ Ot.destroyCredentials(), pn();
1581
+ const r = new URL(q(`${ae(e)}oauth2/signout`, e)), { searchParams: o } = r;
1582
+ o.append("client_id", "arcgisonline"), o.append("redirect_uri", t), n && i && (e.isPortal || e.user?.sourceJSON.provider === "enterprise") && o.append("token", n), window.location.href = r.href;
1583
+ }
1584
+ function O(e, t) {
1585
+ if (!e)
1586
+ return 0;
1587
+ const i = Lt({ text: e, font: `${t === "s" ? ".875rem" : "1rem"} 'Avenir Next'` });
1588
+ return Math.ceil(i);
1589
+ }
1590
+ function fn({
1591
+ portal: e,
1592
+ product: t,
1593
+ projectTitle: i,
1594
+ links: n,
1595
+ messages: r,
1596
+ productInfo: o
1597
+ }) {
1598
+ if (!t || !e)
1599
+ return;
1600
+ const s = e.user, u = pe(t) && n?.length ? 24 + n.reduce((v, d) => v + 16 + O(d.label) + 16, 0) : 0, f = 40 + O(i) + 32 + 16 + 16 + 12, m = s ? Math.max(O(s?.username, "s"), O(s?.fullName)) : O(r?.signIn);
1601
+ return {
1602
+ actions: 192,
1603
+ project: i ? f : 0,
1604
+ product: 64 + Math.max(O(o?.name), O(e.name, "s")) + 16,
1605
+ nav: u,
1606
+ user: 64 + m + 16
1607
+ };
1608
+ }
1609
+ function mn({
1610
+ measurements: e,
1611
+ screenWidth: t
1612
+ }) {
1613
+ const { actions: i, nav: n, product: r, project: o, user: s } = e, a = 64, u = t - i - a > n, f = t - i - (u ? n : 0) - o - a > r, m = t - n - o - i - r < s;
1614
+ return {
1615
+ nav: u,
1616
+ product: f,
1617
+ user: m ? "avatar" : "full"
1618
+ };
1619
+ }
1620
+ const je = ' -type:"Code Attachment" -type:"Featured Items" -type:"Symbol Set" -type:"Color Set" -type:"Windows Viewer Add In" -type:"Windows Viewer Configuration" -type:"Map Area" -typekeywords:"MapAreaPackage" -type:"Indoors Map Configuration" -typekeywords:"SMX"';
1621
+ async function _e({
1622
+ portal: e,
1623
+ searchTerm: t
1624
+ }) {
1625
+ if (!e?.user)
1626
+ return [];
1627
+ try {
1628
+ return (await e.queryItems({
1629
+ ...t ? { query: t } : {},
1630
+ filter: `owner:${e.user.username}${je}`,
1631
+ num: 20,
1632
+ sortField: "modified",
1633
+ sortOrder: "desc"
1634
+ })).results;
1635
+ } catch {
1636
+ return [];
1637
+ }
1638
+ }
1639
+ async function gn({
1640
+ portal: e,
1641
+ searchTerm: t
1642
+ }) {
1643
+ if (!e?.user)
1644
+ return [];
1645
+ const i = jt((t || "").substring(0, 409)), n = `${e?.id ? `accountid:"${e.id}"` : ""}${je}`, r = `${ae(e)}search/suggest`;
1646
+ return (await D(r, { query: {
1647
+ suggest: i,
1648
+ filters: n,
1649
+ searchFields: "title",
1650
+ f: "json"
1651
+ } }))?.result?.results || [];
1652
+ }
1653
+ const bn = dt`:host{display:block}.navigation{width:100%;min-width:0;min-height:4rem;background:var(--calcite-color-foreground-1);border-bottom:1px solid var(--calcite-color-border-3);display:flex;align-items:stretch}.navigation--loading .fade-in{opacity:0}.fade-in{opacity:1;transition:opacity ease-in-out .15s}.content-end{margin-inline-start:auto;display:flex;align-items:center}.content-end[hidden]{display:none}.action{height:100%;--calcite-internal-action-spacing: 1.25rem}.border-start{border-inline-start:1px solid var(--calcite-color-border-3)}.platform{--calcite-sheet-scrim-background: var(--calcite-color-transparent-scrim);--calcite-sheet-width: 24rem}.platform__container{display:flex;flex-direction:column;max-height:100%}.platform__header{display:flex;align-items:center}.platform__header-image{width:48px;height:48px;margin-inline-end:1rem}.platform__header-text{flex:1 1 auto;line-height:1.375}.platform__title{margin:0;padding:0;color:var(--calcite-color-text-1);font-size:var(--calcite-font-size--1);font-weight:var(--calcite-font-weight-medium)}.platform__subtitle{margin:0;padding:0;font-size:var(--calcite-font-size--2);color:var(--calcite-color-text-2)}.platform__panel{border-inline-end:1px solid var(--calcite-color-border-3);--calcite-panel-background-color: var(--calcite-color-foreground-1)}.platform__tiles{margin:.75rem .75rem 1.5rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));grid-gap:.5rem}.platform__tabs{min-height:0;flex:1 1 auto;--calcite-tab-content-space-y: 0}.platform__tab{position:relative}.list{list-style:none;margin:0;padding:0}.list__container{position:relative}.list__header{display:flex;align-items:center;padding:.5rem .75rem;border-bottom:1px solid var(--calcite-color-border-3);background-color:var(--calcite-color-foreground-1);position:sticky;top:0;z-index:701}.list__search{flex:1 1 auto;--calcite-color-border-input: var(--calcite-color-foreground-1)}.list-item__link{display:block;box-sizing:border-box;width:100%;padding-inline-start:.75rem;background-color:var(--calcite-color-foreground-1);outline-color:transparent;text-decoration:none;outline-offset:0;transition:color var(--calcite-animation-timing) ease-in-out,background-color var(--calcite-animation-timing) ease-in-out,outline-color var(--calcite-internal-animation-timing-fast) ease-in-out,outline-offset var(--calcite-internal-animation-timing-fast) ease-in-out}.list-item__link:hover{background-color:var(--calcite-color-transparent-hover)}.list-item__link:focus{outline:var(--calcite-border-width-md) solid var(--calcite-color-focus);outline-offset:-2px}.list-item__container{box-sizing:border-box;width:100%;padding-block:.5rem;padding-inline-start:0;padding-inline-end:.5rem;border-bottom:1px solid var(--calcite-color-border-3);display:flex;align-items:center;position:relative}.list-item__content{display:flex;flex-direction:column;justify-content:center;min-width:0}.list-item__logo{width:48px;height:48px;flex:0 0 auto;box-sizing:border-box;margin-inline-end:.5rem;justify-content:center;align-items:center;position:relative;display:flex}.list-item__logo-bg{position:absolute}.list-item__indicator{position:absolute;width:.5rem;height:.5rem;border-radius:50%;background-color:var(--calcite-color-status-success);border:2px solid var(--calcite-color-foreground-1);z-index:50;top:.25rem;inset-inline-start:-.25rem}.list-item__abbr{color:#fff;font-weight:700;position:relative}.list-item__logo-empty{border:2px dashed var(--calcite-color-border-3);border-radius:8px}.list-item__logo--item-type{background-color:var(--calcite-color-background);display:flex;justify-content:center;align-items:center}.list-item__title{display:block;font-size:var(--calcite-font-size--1);color:var(--calcite-color-text-1);font-weight:500;word-wrap:break-word}.list-item__title--regular{font-weight:400;padding-top:.25rem}.list-item__title--large{font-size:var(--calcite-font-size-0);line-height:1}.list-item__subtitle{display:block;font-size:var(--calcite-font-size--2);color:var(--calcite-color-text-3);font-weight:500;padding-top:.25rem;padding-bottom:.25rem}.list-item__subtitle--large{font-size:var(--calcite-font-size--1);font-weight:400;padding:0}.list-item__chip{margin-inline-start:auto;--calcite-chip-background-color: var(--calcite-color-foreground-current)}.app--hidden{--calcite-list-background-color: var(--calcite-color-background)}.app--hidden .list-item__logo{opacity:.4}.logo{border-inline-end:1px solid var(--calcite-color-border-3)}.site-nav{margin-inline-start:1.5rem}.project{border-inline-end:1px solid var(--calcite-color-border-3)}.project__indicator{margin-inline-start:1rem;--calcite-ui-icon-color: var(--calcite-color-status-danger);float:inline-end}.project__text{display:flex;font-size:1rem}.rename{width:100%;min-width:0;display:flex;flex:1 1 0;align-items:center;margin-inline-start:.5rem}.rename__action{margin-inline-end:.5rem;display:flex;align-items:center}.rename__input{margin-inline-end:.5rem;display:block;width:100%}.search{width:100%;min-width:0;display:flex;flex:1 1 0;align-items:center;margin-inline-start:.5rem}.search__action{margin-inline-end:.5rem;display:flex;align-items:center}.search__input{margin-inline-end:.5rem;display:block;width:100%}.suggestions__header{display:flex;align-items:center;width:var(--calcite-popover-max-size-x);box-sizing:border-box;padding:.75rem 1rem;border-bottom:1px solid var(--calcite-color-border-3)}.suggestions__title{padding:0;margin:0;font-weight:500;color:var(--calcite-color-text-1);font-size:var(--calcite-font-size-1);flex:1 1 0}.suggestions__search-type{--calcite-popover-max-size-x: 320px}.suggestions__search-type__icon{vertical-align:-.2rem}.suggestions__footer{display:flex;align-items:center;justify-content:center;padding:1rem}.notifications{width:min(24rem,80vw)}.notifications--full:after{content:"";display:block;border-top:1px solid var(--calcite-color-border-3);margin-left:1rem}.notifications__list{max-height:min(18rem,80vh);overflow:auto}.notifications--empty{padding:2rem}.empty{padding:1rem;text-align:center;color:var(--calcite-color-text-3);--calcite-icon-color: var(--calcite-color-status-success-hover)}.empty__header{margin:0;padding:.75rem 0 0;color:var(--calcite-color-text-1);font-weight:500;font-size:var(--calcite-font-size-1)}.empty__text{margin:0;padding:0;color:var(--calcite-color-text-3);font-weight:400;font-size:var(--calcite-font-size-0)}.notification{display:flex;flex-direction:column;padding:.5rem}.notification__message{color:var(--calcite-color-text-1);font-size:var(--calcite-font-size-0);--calcite-color-brand-underline: transparent}.notification__date{color:var(--calcite-color-text-3);font-size:var(--calcite-font-size-0)}.notifications__dismiss{margin-inline-start:auto;margin-inline-end:1rem;margin-block:.5rem}.user{display:flex;--calcite-dropdown-item-text-color: var(--calcite-color-text-3);--calcite-dropdown-group-title-text-color: var(--calcite-color-text-2)}.user__top{display:flex;padding:.75rem;border-bottom:1px solid var(--calcite-color-border-3)}.user__top__avatar{flex:0 0 auto}.user__top__text{box-sizing:border-box;word-wrap:break-word;flex:1 1 0;min-width:0;padding-inline-start:1rem;line-height:1.375}.user__top__full{font-size:1rem;font-weight:medium;color:var(--calcite-colot-text-1);padding:0;margin:0}.user__top__username{font-size:1rem;color:var(--calcite-colot-text-2);padding:0;margin:0}`;
1654
+ function vn({ messages: e, portal: t, showNav: i, openPlatformMenu: n }) {
1655
+ return !e || i && !t?.user ? null : c`<calcite-action .label=${e.applicationMenu} text="app switcher" icon=app-launcher scale=l class="action" @click=${n}></calcite-action>`;
1656
+ }
1657
+ class wn extends ht {
1658
+ constructor() {
1659
+ super(...arguments), this.messages = ft({ blocking: !0 }), this.refreshNotifications = async () => {
1660
+ const { portal: t, messages: i } = this;
1661
+ this.notifications = await me({ portal: t, locale: i._t9nLocale, t9n: i.notifications });
1662
+ }, this.deleteNotifications = async (t) => {
1663
+ const { portal: i } = this;
1664
+ if (t?.length < 20)
1665
+ await zt(i, t);
1666
+ else {
1667
+ let n = 0;
1668
+ for await (const r of t)
1669
+ await Ie({ id: r, portal: i }), this.notificationDeleteProgress = Math.ceil(n++ / t.length * 100);
1670
+ }
1671
+ this.notificationDeleteProgress = void 0, this.refreshNotifications();
1672
+ }, this.navigate = (t) => {
1673
+ this.arcgisNavigate.emit(t);
1674
+ }, this.openPlatformMenu = () => {
1675
+ this.platformMenuOpen = !0;
1676
+ }, this.projectMenuClick = (t) => {
1677
+ this.arcgisNavigationProjectMenuClick.emit(t);
1678
+ }, this.openProjectTitleEdit = () => {
1679
+ this.projectTitleEditing = !0, this.editedProjectTitle = this.projectTitle, requestAnimationFrame(() => {
1680
+ this.projectTitleInputRef?.value?.setFocus();
1681
+ });
1682
+ }, this.closeProjectTitleEdit = () => {
1683
+ this.projectTitleEditing = !1, this.projectTitleErrorMessage = void 0, requestAnimationFrame(() => {
1684
+ this.projectButtonRef?.value?.setFocus();
1685
+ });
1686
+ }, this.handleProjectTitleSave = async (t) => {
1687
+ this.projectTitleSaving = !0;
1688
+ const n = await (this.projectTitleSave || Di)(t);
1689
+ if (this.projectTitleSaving = !1, n.status === "success") {
1690
+ this.closeProjectTitleEdit();
1691
+ return;
1692
+ }
1693
+ n.message && (this.projectTitleErrorMessage = n.message);
1694
+ }, this.handleProjectTitleEdit = (t) => {
1695
+ this.editedProjectTitle = t;
1696
+ }, this.handleProjectTitleCancel = () => {
1697
+ this.editedProjectTitle = this.projectTitle, this.closeProjectTitleEdit();
1698
+ }, this.signOut = () => {
1699
+ const { portal: t, clientId: i } = this;
1700
+ dn({ portal: t, clientId: i }), this.arcgisNavigationSignOut.emit();
1701
+ }, this.signIn = () => {
1702
+ this.arcgisNavigationSignIn.emit(), un();
1703
+ }, this.openAccountSwitcher = () => {
1704
+ this.accountSwitcherOpen = !0;
1705
+ }, this.handlePlatformClose = () => {
1706
+ this.platformMenuOpen = !1, this.handleAppCancel();
1707
+ }, this.handleAppSave = async () => {
1708
+ const { hiddenApps: t, sortedApps: i, userProperties: n, portal: r } = this;
1709
+ this.apps = [...i], this.editingApplications = !1, this.appsLoading = !0;
1710
+ const { result: o } = await ki({ apps: i, hiddenApps: t, userProperties: n, portal: r });
1711
+ o?.success && (this.previousAppState = {
1712
+ apps: i,
1713
+ hiddenApps: t
1714
+ }), await Et(1e3), this.appsLoading = !1;
1715
+ }, this.handleAppCancel = () => {
1716
+ this.previousAppState && (this.apps = this.previousAppState.apps, this.hiddenApps = this.previousAppState.hiddenApps), this.editingApplications = !1;
1717
+ }, this.handleAppHide = ({ app: t, hidden: i }) => {
1718
+ !this.hiddenApps || !t || (this.hiddenApps = { ...this.hiddenApps || {}, [t]: i });
1719
+ }, this.handleAppReorder = ({ oldIndex: t, newIndex: i }) => {
1720
+ const n = [...this.sortedApps], r = n[t];
1721
+ n.splice(t, 1), n.splice(i, 0, r), this.sortedApps = n;
1722
+ }, this.handleItemSearch = (t) => {
1723
+ this.recentContentLoading = !0, this.recentContentSearchTerm = t, this.debouncedItemSearch(t);
1724
+ }, this.debouncedItemSearch = fe(async (t) => {
1725
+ this.recentContent = await _e({ portal: this.portal, searchTerm: t }), this.recentContentLoading = !1;
1726
+ }, 1e3), this.debouncedSuggest = fe(async (t) => {
1727
+ this.suggestions = await gn({ portal: this.portal, searchTerm: t });
1728
+ }, 1e3), this.handleSearch = (t) => {
1729
+ this.searchTerm = t, this.suggestions = void 0, this.debouncedSuggest(t);
1730
+ }, this.sizeSearchPopover = () => {
1731
+ const t = this.searchInput?.value, i = this.searchPopover?.value;
1732
+ if (!t || !i)
1733
+ return;
1734
+ const n = t.offsetWidth > 480 ? `${t.offsetWidth}px` : "80vw";
1735
+ i.style?.setProperty?.("--calcite-popover-max-size-x", n);
1736
+ }, this.handleToggleSearch = (t) => {
1737
+ this.searchActive = t, this.searchTerm = "", this.suggestions = void 0, requestAnimationFrame(() => {
1738
+ if (t) {
1739
+ this.searchInput?.value?.setFocus(), this.sizeSearchPopover();
1740
+ return;
1741
+ }
1742
+ this.searchAction?.value?.setFocus();
1743
+ });
1744
+ }, this.handleSearchTypeChange = (t) => {
1745
+ this.searchType = t;
1746
+ }, this.searchInput = U(), this.searchAction = U(), this.searchPopover = U(), this.projectTitleInputRef = U(), this.projectButtonRef = U(), this.links = [], this.notifications = [], this.apps = [], this.hiddenApps = {}, this.sortedApps = [], this.appsSearchTerm = "", this.appsLoading = !0, this.editingApplications = !1, this.recentContent = [], this.recentContentSearchTerm = "", this.recentContentLoading = !0, this.platformMenuOpen = !1, this.accountSwitcherOpen = !1, this.projectTitleEditing = !1, this.projectTitleSaving = !1, this.screenWidth = window.innerWidth, this.searchActive = !1, this.searchTerm = "", this.searchType = "keyword", this.projectMenuOptions = [], this.arcgisNavigate = H(), this.arcgisNavigationProjectMenuClick = H(), this.arcgisNavigationSignIn = H(), this.arcgisNavigationSignOut = H();
1747
+ }
1748
+ static {
1749
+ this.properties = { infoBanner: 16, links: 16, userLinks: 16, notifications: 16, apps: 16, hiddenApps: 16, sortedApps: 16, previousAppState: 16, appsSearchTerm: 16, appsLoading: 16, editingApplications: 16, recentContent: 16, recentContentSearchTerm: 16, recentContentLoading: 16, platformMenuOpen: 16, accountSwitcherOpen: 16, editedProjectTitle: 16, projectTitleEditing: 16, projectTitleSaving: 16, projectTitleErrorMessage: 16, productInfo: 16, notificationDeleteProgress: 16, measurements: 16, screenWidth: 16, showProduct: 16, showNav: 16, showUser: 16, searchActive: 16, searchTerm: 16, suggestions: 16, searchType: 16, portal: 0, portalItem: 0, product: 1, productHref: 1, projectTitle: 1, projectTitleSave: 0, projectMenuIcon: 1, projectMenuSaveIndicator: 5, projectMenuOptions: 0, disableTrackViewer: 5, disableNotebookServer: 5, clientId: 1 };
1750
+ }
1751
+ static {
1752
+ this.styles = bn;
1753
+ }
1754
+ #e;
1755
+ async loaded() {
1756
+ const { portal: t, messages: i, clientId: n, product: r } = this;
1757
+ this.calculateMeasurements(), this.productInfo = ln({ product: r, clientId: n, portal: t }), this.userLinks = Xi({ portal: t, messages: i.user, clientId: n }), this.notifications = await me({ portal: t, locale: i._t9nLocale, t9n: i.notifications }), this.recentContent = await _e({ portal: t }), this.recentContentLoading = !1;
1758
+ const { apps: o, hiddenApps: s, signInSettings: a, licenses: u, userProperties: f } = await $i({
1759
+ portal: t,
1760
+ trackViewerEnabled: !this.disableTrackViewer,
1761
+ notebookServerEnabled: !this.disableNotebookServer
1762
+ }), m = await It(t);
1763
+ this.infoBanner = m?.informationalBanner, this.userProperties = f, this.apps = o, this.hiddenApps = s, this.sortedApps = o, this.previousAppState = { apps: o, hiddenApps: s }, this.appsLoading = !1, this.links = Pi({
1764
+ portal: t,
1765
+ messages: i.links,
1766
+ licenses: u,
1767
+ clientId: n,
1768
+ signInSettings: a
1769
+ }), this.calculateMeasurements();
1770
+ }
1771
+ connectedCallback() {
1772
+ super.connectedCallback(), !(typeof ResizeObserver > "u") && (this.#e = new ResizeObserver(() => {
1773
+ requestAnimationFrame(() => {
1774
+ this.screenWidth = window.innerWidth, this.updateBreakpoints(), this.sizeSearchPopover();
1775
+ });
1776
+ }));
1777
+ }
1778
+ firstUpdated() {
1779
+ this.el && this.#e && (this.#e.observe(this.el), this.screenWidth = window.innerWidth);
1780
+ }
1781
+ disconnectedCallback() {
1782
+ this.#e?.disconnect(), this.#e = void 0, super.disconnectedCallback();
1783
+ }
1784
+ calculateMeasurements() {
1785
+ const { links: t, messages: i, portal: n, product: r, productInfo: o, projectTitle: s } = this;
1786
+ if (n) {
1787
+ const a = fn({
1788
+ portal: n,
1789
+ product: r,
1790
+ productInfo: o,
1791
+ links: t,
1792
+ messages: i.user,
1793
+ projectTitle: s
1794
+ });
1795
+ this.measurements = a, this.updateBreakpoints();
1796
+ }
1797
+ }
1798
+ updateBreakpoints() {
1799
+ const { measurements: t, screenWidth: i } = this;
1800
+ if (t) {
1801
+ const n = mn({ measurements: t, screenWidth: i });
1802
+ this.showProduct = n.product, this.showNav = n.nav, this.showUser = n.user;
1803
+ }
1804
+ }
1805
+ render() {
1806
+ const { accountSwitcherOpen: t, apps: i, appsLoading: n, appsSearchTerm: r, handleAppCancel: o, handleAppHide: s, handleAppReorder: a, handleAppSave: u, handleItemSearch: f, handlePlatformClose: m, handleSearch: v, handleToggleSearch: d, handleSearchTypeChange: S, hiddenApps: I, infoBanner: w, links: P, messages: g, navigate: y, notifications: p, notificationDeleteProgress: l, openAccountSwitcher: b, portal: A, portalItem: h, product: _, productInfo: $, productHref: k, projectTitle: G, editedProjectTitle: z, handleProjectTitleSave: T, handleProjectTitleEdit: R, handleProjectTitleCancel: W, openProjectTitleEdit: De, openPlatformMenu: Ge, platformMenuOpen: Ue, projectTitleEditing: X, projectTitleSaving: Fe, projectTitleErrorMessage: Be, projectMenuIcon: ze, projectMenuSaveIndicator: Re, projectMenuClick: We, projectMenuOptions: Ve, projectTitleInputRef: He, projectButtonRef: qe, recentContent: Je, recentContentSearchTerm: Ke, recentContentLoading: Qe, userLinks: Xe, searchActive: V, searchTerm: Ye, searchType: Ze, searchInput: et, searchAction: tt, searchPopover: it, showNav: Y, showProduct: nt, showUser: rt, suggestions: ot } = this, st = A?.user, at = pe(_) && !P?.length || !this.measurements;
1807
+ return c`<arcgis-portal-info-banner .config=${w}></arcgis-portal-info-banner>${A?.isPortal && h?.loaded && c`<arcgis-portal-classification-banner .portalItem=${h}></arcgis-portal-classification-banner>` || ""}<header class=${oe({ navigation: !0, "navigation--loading": at })}>${vn({ messages: g?.platform, portal: A, showNav: Y, openPlatformMenu: Ge })}${nt && Dt({ navigate: y, portal: A, product: _, productInfo: $, productHref: k, messages: g?.logo, showNav: Y, searchActive: V, projectTitleEditing: X }) || ""}${Bi({ navigate: y, portal: A, portalItem: h, messages: g?.project, projectTitle: G, editedProjectTitle: z, handleProjectTitleSave: T, handleProjectTitleEdit: R, openProjectTitleEdit: De, projectTitleErrorMessage: Be, handleProjectTitleCancel: W, projectTitleEditing: X, projectTitleSaving: Fe, projectMenuIcon: ze, projectMenuSaveIndicator: Re, projectMenuClick: We, projectMenuOptions: Ve, projectTitleInputRef: He, projectButtonRef: qe })}${Y && Ji({ searchActive: V, navigate: y, portal: A, product: _, messages: g?.links, links: P }) || ""}<div slot=content-end class="content-end fade-in" .hidden=${X || V}><slot name=content-end></slot></div>${Hi({ navigate: y, portal: A, product: _, messages: g?.search, searchActive: V, searchType: Ze, searchTerm: Ye, suggestions: ot, handleSearch: v, handleToggleSearch: d, handleSearchTypeChange: S, searchInputRef: et, searchActionRef: tt, searchPopoverRef: it })}${st ? c`<calcite-menu class="border-start fade-in" label=test>${Ht({ notifications: p, messages: g?.notifications })}${qt({ notifications: p, deleteNotifications: this.deleteNotifications, messages: g?.notifications, notificationDeleteProgress: l })}</calcite-menu>${Ki({ portal: A, userLinks: Xe, openAccountSwitcher: A?.isPortal ? void 0 : b, signOut: this.signOut, messages: g?.user, textDisabled: rt === "avatar" })}` : qi({ messages: g.user, signIn: this.signIn })}</header>${ji({ locale: g._t9nLocale, navigate: y, portal: A, product: _, productInfo: $, messages: g?.platform, apps: i, appsLoading: n, hiddenApps: I, appsSearchTerm: r, editingApplications: this.editingApplications, open: Ue, links: P, recentContent: Je, recentContentSearchTerm: Ke, recentContentLoading: Qe, handlePlatformClose: m, handleAppReorder: a, handleAppEdit: () => this.editingApplications = !0, handleAppsSearch: (ct) => this.appsSearchTerm = ct, handleAppSave: u, handleAppCancel: o, handleAppHide: s, handleItemSearch: f })}${t && c`<arcgis-portal-account-switcher .portal=${A} .baseUrl=${Q({ portal: A })}></arcgis-portal-account-switcher>` || ""}`;
1808
+ }
1809
+ }
1810
+ lt("arcgis-portal-navigation", wn);
1811
+ export {
1812
+ wn as ArcGISPortalNavigation
1813
+ };