@arcgis/portal-components 5.2.0-next.77 → 5.2.0-next.79
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cdn/{FLXTOBVV.js → BG35I5AA.js} +1 -1
- package/dist/cdn/J35PMSMA.js +2 -0
- package/dist/cdn/{IGF2UOWS.js → JGBFHQ6Q.js} +10 -10
- package/dist/cdn/{NDMJK6MD.js → WDDPDNVX.js} +13 -13
- package/dist/cdn/{2WI5FBDF.js → X7RTUKI5.js} +1 -1
- package/dist/cdn/assets/portal-item-type/icons/knowledgegraphconfiguration16.svg +1 -0
- package/dist/cdn/assets/portal-item-type/icons/knowledgegraphconfiguration32.svg +1 -0
- package/dist/cdn/assets/portal-navigation/t9n/messages.en.json +1 -1
- package/dist/cdn/index.js +1 -1
- package/dist/chunks/utils2.js +13 -10
- package/dist/components/arcgis-portal-navigation/customElement.d.ts +2 -0
- package/dist/components/arcgis-portal-navigation/customElement.js +502 -493
- package/dist/components/arcgis-portal-navigation/index.js +1 -1
- package/dist/docs/api.json +1 -1
- package/dist/docs/docs.json +1 -1
- package/dist/docs/web-types.json +1 -1
- package/dist/types/item.d.ts +1 -1
- package/package.json +6 -6
- package/dist/cdn/YY4236HO.js +0 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import c from"./
|
|
2
|
+
import c from"./X7RTUKI5.js";import b from"./D4VYYWA6.js";import"./VMQIDO4Z.js";import"./QS3GXAIH.js";import"./2GBRZSEC.js";import{a as f}from"./W3UBNVKL.js";import"./QZD2UBOW.js";import"./JVGCIDQW.js";import{M as d,N as h,P as p,S as g,T as y,h as m,j as a}from"./6BUBZ7WC.js";import"./UZLQALHY.js";export default $arcgis.t(([,{b:x}])=>{var $=m`:host{display:inline-flex;align-items:center}:host([scale="s"]){--arcgis-portal-item-type-font-size: var(--calcite-font-size--2);--arcgis-portal-item-type-spacing: 1rem}:host([scale="m"]){--arcgis-portal-item-type-font-size: var(--calcite-font-size--1);--arcgis-portal-item-type-spacing: 1rem}:host([scale="l"]){--arcgis-portal-item-type-font-size: var(--calcite-font-size-0);--arcgis-portal-item-type-spacing: 1rem}.icon{display:block;flex-grow:0;flex-shrink:0;width:var(--arcgis-portal-item-type-spacing);height:var(--arcgis-portal-item-type-spacing)}.text{color:var(--calcite-text-color-2);font-size:var(--arcgis-portal-item-type-font-size);line-height:1.25rem}.text--ellipsis{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.text--spaced{margin-inline-start:calc(var(--arcgis-portal-item-type-spacing) / 2);word-wrap:break-word;word-break:break-word}`,n=class extends d{constructor(){super(...arguments),this.messages=f({blocking:!0}),this.icon=null,this.displayName="",this.displayNameHosted="",this.scale="s"}static{this.properties={icon:16,displayName:16,displayNameHosted:16,item:0,serviceInfo:0,portal:0,user:0,scale:3,hideText:5,hideIcon:5,ellipsis:5,showHosted:5}}static{this.styles=$}async load(){this.item&&await this.getItemDisplayInformation()}async getItemDisplayInformation(){let{messages:o,user:r,serviceInfo:l,portal:e,item:t}=this,{displayName:i,displayNameHosted:c,icon:s}=await x({item:t,messages:o,serviceInfo:l,user:r,portal:e||t.portal});this.displayName=i,this.displayNameHosted=c,this.icon=s}render(){let{showHosted:o,displayNameHosted:r,scale:l,icon:e,hideText:t,hideIcon:i,ellipsis:c}=this;if(!e)return null;let s=o?r:this.displayName,v=s?.includes("(")?"":"‭",w=y(`./assets/portal-item-type/icons/${e}16.svg`),u=this.hideText?s:void 0;return a`${!i&&a`<span class="icon"><img src=${w??p} alt=${(u||"")??p} class=${`icon icon--${l}`}></span>`||""}${!t&&a`<span class=${h({text:!0,"text--spaced":!i,"text--ellipsis":c})} .innerHTML=${`${v}${s}`}></span>`||""}`}};g("arcgis-portal-item-type",n);return n},b,c)
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
+
import g from"./X7RTUKI5.js";import{b as Le}from"./4QA4AYHJ.js";import f from"./EBYEZR4N.js";import{a as ce}from"./XEK22IDA.js";import{b as j,c as se,d as Oe}from"./CFBSBZSS.js";import e from"./D4VYYWA6.js";import{a as Y}from"./TQLHU3PC.js";import{d as Ee,e as De}from"./OBBYT2AV.js";import d from"./A4AA5T6M.js";import"./DFTUMKSN.js";import{a as Me}from"./YVKSTDL6.js";import b from"./TGTT2CVD.js";import a from"./F3ODJVJC.js";import{a as Q,b as B,c as X,d as Se,j as Ie}from"./VMQIDO4Z.js";import{b as K,c as re}from"./QS3GXAIH.js";import{b as ke}from"./2GBRZSEC.js";import{a as O}from"./XLLMHJCE.js";import{a as Ne}from"./W3UBNVKL.js";import"./QZD2UBOW.js";import"./JVGCIDQW.js";import{K as G,L as R,M as Ae,N as q,O as ne,S as xe,T as J,h as ye,j as c,k as $e,m as N,w as H}from"./6BUBZ7WC.js";import"./UZLQALHY.js";export default $arcgis.t(([{formatDate:Vt,substitute:ee,getLocale:Ut},,qt,{e:L},{c:Te,f:Pe,g:je,h:Ce},{c:oe},,{a:ze,b:Ge,c:Re,d:We,e:Fe},{a:le,c:He}])=>{function Be({portal:e,productInfo:t}){let{name:i,glyph:a}=t||{};return c`<img alt class="logo__glyph" src=${a??N}><span class="logo__text"><span class="logo__title">${i}</span>${e?.name&&c`<span class="logo__subtitle">${e.name}</span>`||""}</span>`}function Jt({navigate:e,portal:t,product:i,productInfo:a,productHref:n,messages:r,searchActive:o,showNav:s,projectTitleEditing:l}){let u=o&&i==="Online"&&!s||i!=="Online"&&l&&window.innerWidth<960;return!i||!t||!r||u?null:n?c`<a href=${n??N} @click=${m=>{e({event:m,href:n})}} class="logo fade-in logo--link">${Be({portal:t,productInfo:a})}</a>`:c`<div class="logo fade-in">${Be({portal:t,productInfo:a})}</div>`}var pe={},C={Month:2628e3,Week:604800,Day:86400,Hour:3600,Minute:60,Second:1};function Ye(e){if(!e)return null;let t=Math.floor(e/1e3),i=Math.abs(t),a=C.Day*365;switch(!0){case i<C.Minute:return[Math.floor(t/C.Second),"second"];case i<C.Hour:return[Math.floor(t/C.Minute),"minute"];case i<C.Day:return[Math.floor(t/C.Hour),"hour"];case i<C.Week:return[Math.floor(t/C.Day),"day"];case i<C.Month:return[Math.floor(t/C.Week),"week"];case i<a:return[Math.floor(t/C.Month),"month"];default:return[Math.floor(t/a),"year"]}}function Ze(e){return(typeof e=="number"?e:e.getTime?.())-new Date().getTime()}function et({locale:e,time:t,t9n:i}){if(!e||!t)return"";let a=Ze(t);pe[e]??=new Intl.RelativeTimeFormat(e,{style:"long"});let n=Ye(a);return n?n[1]==="second"?i?.lessThanOneMinute||`< ${pe[e].format(n[0]>0?1:-1,"minutes")}`:pe[e].format(n[0],n[1]):""}var Kt={month:"long",day:"numeric",year:"numeric"},Qt={month:"long",day:"numeric"};function Xt({locale:e,time:t},i){if(!e||!t)return"";let a=new Date(t);return Vt(a,i?Kt:Qt)}async function Yt({portal:e}){if(!e?.user)return{result:[]};let t=`${e.restUrl}/community/users/${e.user.id}/notifications`,{result:i,error:a}=await L(t);return a?{error:a}:{result:i?.notifications}}async function Zt(e,t){if(!e?.user)return{success:!0};let i=t.map(a=>({portal:e,id:a})).map(tt);return{success:!((await Promise.allSettled(i))?.filter(a=>a.status==="rejected"||!a.value?.success)).length}}async function tt({portal:e,id:t}){let i=`${e.restUrl}/community/users/${e.user?.id}/notifications/${t}/delete`,{result:a}=await L(i,{method:"post"});return a?.success?{success:!0,id:t}:{success:!1,id:t}}var it="notifications-menu";function ei(e){try{let t=decodeURIComponent(e);return t!==e?t:e}catch{return e}}function ti(e){switch(e){case"group_join_admin":return"users";case"group_application_accepted":return"register";case"group_join":return"file-user";case"group_application_declined":return"user-risk";case"user_invitation_declined":return"group-x";case"user_invitation_accepted":return"user-plus";case"user_invite":return"envelope";case"user_added_to_group":return"user-plus";case"collaboration_workspace_added":case"collaboration_deleted":case"collaboration_leaving":case"collaboration_join":case"collaboration_participant_workspace_join":case"collaboration_participant_workspace_unjoin":case"collaboration_participant_removed":case"collaboration_peer_participant_removed":case"collaboration_participant_access_changed":return"collaboration";case"collaboration_participant_join":return"collaboration-user";case"collaboration_content_store_disk_limit_reached":return"gauge";case"user_email_bounced":return"speech-bubble-exclamation";case"feature_layer_copy_over_failed":case"feature_layer_one_way_shared_not_two_way":case"feature_view_copy_over_failed":case"webapp_not_copied":case"webapp_not_copied_portal":case"insights_item_not_copied":return"collaboration";case"scheduled_task_disabled":return"date-time";case"portal_certificate_about_to_expire":case"portal_certificate_expired":return"hourglass-expired";case"notebook_runtime_deprecated":return"notebook-server";case"ingress_certificate_about_to_expire":case"ingress_certificate_expired":return"certificate";default:return"bell"}}function ii({notification:e,portal:t,locale:i,t9n:a}){if(e?.received&&e.id){let n={date:et({locale:i,time:e.received,t9n:a}),id:e.id,text:"",icon:ti(e.type)};if(e.type==="webapp_not_copied"&&t.isPortal&&(e.type="webapp_not_copied_portal"),e.data?.taskTitle&&(e.data.taskTitle=ei(e.data.taskTitle)),e.type==="message_received")n.text=e.data.message||"";else if(a.types[e.type]){let r=K({portal:t,usePortalHostname:!!t.user});e.data.baseUrl=`${r}/home/`,n.text=ee(a.types[e.type],e.data)}if(n.text)return n}return null}async function Ve({portal:e,locale:t,t9n:i}){if(!i)return[];let{result:a,error:n}=await Yt({portal:e});return n&&console.error(n),a?.length?a.map(r=>ii({notification:r,portal:e,t9n:i,locale:t})).filter(r=>r):[]}function ai({notifications:e,messages:t,handleToggleNotifications:i,handleToggleSearch:a,notificationsActive:n}){return t?c`<calcite-action class="action" scale=l .text=${t.label} icon=bell .indicator=${!!e?.length} id=${it} @click=${()=>i(!n)} @focusin=${()=>a(!1,!0)}></calcite-action>`:null}function Z({icon:e,title:t,description:i}){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>${$e`<path d=${Me[e]??N} 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>`}function ni({notifications:e,deleteNotifications:t,messages:i,navigate:a,portal:n,notificationsActive:r,handleToggleNotifications:o,notificationDeleteProgress:s}){return i?c`<calcite-popover .referenceElement=${it} @calcitePopoverClose=${()=>o(!1)} .label=${i.label} auto-close .open=${r} pointer-disabled flip-disabled trigger-disabled placement=bottom-end scale=l .heading=${i.label}>${e?.length>0?c`<div class="notifications notifications--full">${typeof s=="number"&&c`<calcite-scrim><calcite-loader type=determinate-value .label=${i.deleting} .value=${s}></calcite-loader></calcite-scrim>`||""}<calcite-list .label=${i.label} interaction-mode=static class="notifications__list" scale=l>${O(e,l=>l.id,l=>c`<calcite-list-item closable @calciteListItemClose=${async()=>await t([l.id])} .messageOverrides=${{close:i.dismissLabel}} .iconStart=${l.icon}><div slot=content class="notification"><div class="notification__message" .innerHTML=${l.text??""} @click=${u=>{let m=u.target,v=m.href;if(m.nodeName==="CALCITE-LINK"&&v){let h=`${K({portal:n,usePortalHostname:!!n.user})}/home/`;a({event:u,href:v,relativePath:v.replace(h,"")})}}}></div><div class="notification__date">${l.date}</div></div></calcite-list-item>`)}</calcite-list></div><calcite-button class="notifications__dismiss" scale=l appearance=transparent @click=${async l=>{let u=l.currentTarget?.parentElement;await t(e?.map(({id:m})=>m)),u.open=!1}}>${i.dismissAllLabel}</calcite-button>`:c`<div class="notifications">${Z({title:i.noNotifications,description:i.noNotificationsDescription,icon:"check"})}</div>`}</calcite-popover>`:null}function ri(e){return e.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&")}function oi(e,t,i,a){ui(e,JSON.stringify(t),i)}function si(e){return pi(e,!0)}function ci(e){try{window.localStorage.removeItem(e)}catch{}}function li(e){try{window.sessionStorage.removeItem(e)}catch{}}function pi(e,t){let i=di(e);return i&&t?JSON.parse(i):i}function di(e){let t=document.cookie,i=new RegExp(`(?:^|; )${ri(e)}=([^;]*)`,"u"),a=t.match(i);return a?decodeURIComponent(a[1]):""}function ui(e,t,i){i=i||{};let a=i?.expires;if(typeof a=="number"){let r=new Date,o=a*24*60*60*1e3;r.setTime(Date.now()+o),a=r,i.expires=r}typeof a!="string"&&a?.toUTCString&&(i.expires=a.toUTCString());let n=`${e}=${encodeURIComponent(t)}`;for(let r of Object.keys(i)){n+=`; ${r}`;let o=i[r];o!==!0&&(n+=`=${o}`)}document.cookie=n}async function hi(e){let t=`owner:"${e.isPortal?"esri":"esri_config"}" AND title:"AppSwitcher Config" AND type:"Application Configuration"`,i=`${e.restUrl}/search`;return await L(i,{query:{num:1,start:0,sortField:"title",sortOrder:"asc",q:t}})}async function mi(e){let t={appSwitcher:{apps:[]}};if(!e?.id||!e.user)return t;let{result:i}=await hi(e),a=i?.results?.[0];if(!a)return t;let n=a.id;return(await oe(e,n)).result}async function gi(e,t,i){if(!t||!e?.length)return{result:null};let a=`${i.restUrl}/search`;return await L(a,{query:{num:100,q:`id:(${e.map(n=>`"${n.itemId}"`).join(" OR ")})`}})}async function fi(e){let t=`${e.restUrl}/search`,i={num:10,start:0,sortField:"title",sortOrder:"asc",q:'owner:"esri" AND title:"BlockedApps Config" AND type: "Application Configuration"'},{result:a}=await L(t,{query:i}),n=a?.results?.[0]?.id;return n?(await oe(e,n))?.result?.blockedApps||[]:[]}function vi(e,t){let i=e?.toLowerCase()||"",a=`${t.title||""} ${t.label||""}`;return!i||a.toLowerCase().includes(i)}function bi(){if(si("APSW-query")?.expires>new Date().setHours(new Date().getHours()))return!0;let e={expires:new Date().setHours(new Date().getHours()+5)};return oi("APSW-query",e,{path:"/",domain:window.location.hostname,sameSite:"Strict"}),!1}function _i(e,t){let{landingPage:i}=t||{};return{image:"arcgis-online.png",label:"ArcGIS Online",title:"ArcGIS Online",url:`${re({portal:e})}/${i?.url?i.url:le(e.user)?"organization.html":"index.html"}`}}function Ue(e){let t=["api-for-python","appstudio","arcade","arcgis-earth","arcgis-enterprise","arcgis-experience-builder","arcgis-geoanalytics","arcgis-hub","arcgis-online","arcgis-pro","arcgis-urban","blank","business-analyst","city-engine","collector","community-analyst","configurable-apps","dashboards-beta","dashboards-classic","data-pipelines","deeplearningstudio","demographics","drone2map","esri-events","essential-apps","excalibur","explorer","field-apps","fieldmaps-beta","fieldmaps-ea","fieldmaps","generic-app","geobim","geoplanner","grid-view-9","indoor","indoors","insights","instant-apps","ips","knowledge-studio","living-atlas","location-platform","map-maker","map-viewer-beta","map-viewer-classic","map-viewer","maps-adobe-cloud","maps-for-office","maps-for-power-bi","maps-for-sharepoint","marketplace","mission","monitor","navigator","notebook","office-apps","open-data","operations-dashboard","ortho-maker","pro-extension","quick-capture","redistricting","runtime","scene-viewer","sites","solutions","story-maps","streetmap-premium","survey123","track-viewer","user-type-extension-online","user-type-extension","vector-tile-style-editor","velocity","web-app-builder","web-editor","web-mapping","workflow-manager-beta","workflow-manager","workforce"].find(i=>e?.includes(i)&&V(`${i}.png`)===e);return t?V(`${t}.avif`):e}function wi(e,t){let i=e?.blockedApps||[],a=[];return!i.length&&!e.blockBetaApps||!t?.length?[]:(e.blockBetaApps&&t.forEach(n=>{n.isBeta&&!i.includes(n.clientid)&&i.push(n.clientid)}),i.forEach(n=>{let r=t.find(o=>o.clientid===n);r&&a.push(r)}),a)}function k(e,t){return t&&t[e.toLowerCase()]?.valid||!1}function yi(e,t){return e?.portalProperties&&!e.portalProperties?.openData?.enabled?!1:k("HubforArcGIS",t)}function $i(e,t){if(!e)return!1;let i=["portal:publisher:publishFeeds","portal:publisher:publishRealTimeAnalytics","portal:publisher:publishBigDataAnalytics"],a=(e?.privileges||[]).some(r=>i.includes(r)),n=k("velocity",t);return a&&n}function Ai(e){return k("HubforArcGIS",e)}function xi(e,t){return!(e.isPortal&&e.portalProperties?.newMapViewerEnabled===!1)&&k("arcgisWebApps",t)}function ki(e){return!!e.helperServices?.rasterAnalytics&&!!e.helperServices.orthoMapping}function Si(e,t,i){let a=i&&(!e.isPortal||!!e.sourceJSON?.supportsHostedNotebooks),n=!!t?.privileges?.length&&t.privileges.some(r=>r==="premium:publisher:createNotebooks");return a&&n}function Ii(e,t){return!!e.helperServices?.locationTracking&&t}function Ti(e,t,i,a){let n=e?.user;return{"Open Data":{hasAccess:()=>yi(e,a)},AppStudio:{hasAccess:()=>k("arcgisWebApps",a)},"ArcGIS Velocity":{hasAccess:()=>e.isPortal||$i(n,a)},"ArcGIS Hub":{hasAccess:()=>k("HubforArcGIS",a)},"ArcGIS Enterprise Sites":{hasAccess:()=>Ai(a)},"ArcGIS QuickCapture Web Designer":{hasAccess:()=>k("arcgisWebApps",a)},"ArcGIS Dashboards":{hasAccess:()=>k("dashboards",a)},"Map Viewer":{hasAccess:()=>xi(e,a)},"Map Viewer Classic":{hasAccess:()=>k("arcgisWebApps",a)},"Operations Dashboard for ArcGIS":{hasAccess:()=>k("opsdashboard",a)},"ArcGIS Dashboards Classic":{hasAccess:()=>k("opsdashboard",a)},"Ortho Maker":{hasAccess:()=>ki(e)},Notebook:{hasAccess:()=>Si(e,n,t)},"Scene Viewer":{hasAccess:()=>k("arcgisWebApps",a)},"Story Maps":{hasAccess:()=>k("arcgisWebApps",a)},Survey123:{hasAccess:()=>k("survey123",a)},"Track Viewer":{hasAccess:()=>Ii(e,i)},"Instant Apps":{hasAccess:()=>k("arcgisWebApps",a)},"ArcGIS Maps for Adobe Creative Cloud":{hasAccess:()=>k("arcgisWebApps",a)&&!e.isPortal}}}function Pi(e){let t={opsdashboard:1,arcgisWebApps:1,Workforce:1,geoplanner:1,webappbuilder:1,HubforArcGIS:1,appstudio:1,survey123:1,storymaps:1,mapsForOffice:1,mapsForO365:1,mapsForSharePoint:1,mapsForCreativeCloud:1,indoorsweb:1,indoorskiosk:1,indoorsspaceplanner:1,locationplatformWebApps:1,communityanalyst_2:1};return e.isPortal&&(t={...t,arcgisonline:1,arcgisUrban:1,arcgisinstantapps:1}),t}function ue(e){return e.sourceJSON?.subscriptionInfo?.options?.includes("Developer")}function V(e){return J(`assets/portal-navigation/apps/${e||""}`)}function at(e,t,i){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}`}function W(e,t,i){if(e.image?e.image=V(e.image):e.placeHolderIcon=`${V()}svg-app-icon.svg`,e.url?.startsWith("../")){let a=i.urlKey?`${i.urlKey}.${i.customBaseUrl}`:i.portalHostname;e.url=`${window.location.protocol}//${a}${e.url.substring(2,e.url.length)}`}return delete e.isLicensed,delete e.privileges,e.itemId=t,e}function nt(){return`${V()}svg-app-circle.svg`}function ji(e,t,i){let a=e.properties?.appSwitcher?.image||e.icon;return{abbr:e.properties?.appSwitcher?.abbr||e.abbreviation,itemId:e.itemId,canAccess:!0,webMappingApp:!0,image:a?at(e,t,i):void 0,label:e.title||e.label,url:e.url,placeHolderIcon:e.placeHolderIcon||nt()}}function Ci(e,t,i){return e.appSwitcher?.image||e.icon?e.image=at(e,t,i):e.placeHolderIcon=nt(),e.abbr=e.appSwitcher?.abbr||e.abbreviation,delete e.abbreviation,delete e.appSwitcher,delete e.approvedApp,delete e.webMappingApp,e}function qe(e,t){e.forEach(i=>{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"))})}async function Ni({userApps:e,servers:t,portal:i,licenses:a,blockedApps:n,provisionedListings:r,orgCapabilities:o,trackViewerEnabled:s,notebookServerEnabled:l,willQueryForItems:u,approvedApps:m}){let v={},h={},A=Ti(i,l,s,a),w=Pi(i),_=[],S=e.length;for(let d=0;d<S;d++){let p=e[d],g=p.itemId||p.title,x=!0,T=!p.serverFunction||t?.some(f=>(f.serverFunction?.split(",")||[]).includes(p.serverFunction)),y=n?.some(f=>p.itemId&&p.itemId===f.itemid||p.title&&p.title===f.title);if(v[g]=1,h[g]=p,y||ue(i)&&!p.showInLocationPlatform||i.sourceJSON?.portalDeploymentType==="ArcGISEnterpriseOnKubernetes"&&p.supportsKubernetes===!1)continue;let b=p.title;if(A[b]&&!A[b]?.hasAccess())continue;let $=i.sourceJSON?.subscriptionInfo;if(p.subscriptionType){$?.type===p.subscriptionType&&(h[g].canAccess=!0,_.push(W(p,g,i)));continue}if(p.orgCapabilities){o?.length&&o.some(f=>p.orgCapabilities?.includes(f.id))&&(h[g].canAccess=!0,_.push(W(p,g,i)));continue}if(!p.privileges?.length&&!p.isLicensed&&T&&(p.label!=="ArcGIS Location Platform"||ue(i))){h[g].canAccess=!0,_.push(W(p,g,i));continue}if(i.user?.sourceJSON?.userLicenseTypeId?.toLowerCase()==="storytellerut"&&p.label?.toLowerCase()==="storymaps"){h[g].canAccess=!0,_.push(W(p,g,i));continue}if(p.privileges?.length&&i.user?.privileges){for(let f=0;f<p.privileges.length;f++)if(!i.user.privileges.includes(p.privileges[f])){x=!1;break}if(!p.isLicensed&&x&&T){h[g].canAccess=!0,_.push(W(p,g,i));continue}}if(p.isLicensed&&x&&T){for(let f=0;f<r.length;f++)if(g===r[f].itemId||g===r[f].title){h[g].canAccess=!0,_.push(W(p,g,i));break}}}let I=await Te(i);return r.forEach(d=>{if(d.type==="Web Mapping Application"&&!w[d.clientId]&&!v[d.itemId]&&d.url&&d.title&&!v[d.title]&&!d.typeKeywords.includes("hideFromAppSwitcher")){let p=ji(d,i,I);h[d.itemId]=p,_.push(p)}}),{apps:[...m.map(d=>{let p={...d.appProperties,itemId:d.itemId,webMappingApp:!0,approvedApp:!0,canAccess:!u};return h[d.itemId]=p,Ci(p,i,I)}),..._],appDictionary:h}}function de(e,t){return e.filter(i=>!t?.some(a=>i.itemId&&i.itemId===a.itemid||i.title&&i.title===a.title))}function Je({apps:e,app:t,appDictionary:i,newAppDictionary:a,portal:n}){let r=Object.keys(i).map(o=>i[o]).filter(o=>o.itemId===t.uid||o.title===t.uid).shift();return r&&!i[t.uid]&&(t.uid=r.itemId||r.title||""),r?.hasBeenPopulated||(r?((t.hasChanged||r.hasChanged||!r.canAccess&&!r.ignoreNoAccess)&&le(n.user)&&(i[t.uid].hasChanged=!0,i[t.uid].ignoreNoAccess=t.ignoreNoAccess),t.isNew&&(i[t.uid].isNew=!0),delete a[t.uid]):(r=t,r.canAccess=!1,r.itemId=t.uid,i[t.uid]=r),i[t.uid].hasBeenPopulated=!0,e.push(r)),e}async function Mi({portal:e,trackViewerEnabled:t,notebookServerEnabled:i}){if(!e?.id||!e.user)return{apps:[],hiddenApps:{}};let a=bi(),[n,r,o,s,l,u,m]=await Promise.all([mi(e),Ce(e),Pe(e),ze(e),Ge(e),Fe(e),fi(e)]),v=e.isPortal?await We(e):null,h=o?.result?.properties,A=n?.appSwitcher?.apps||[];e.isPortal||(A=A.filter(y=>y.title!=="Map Viewer Classic"||e.sourceJSON.created<new Date("February 26 2025")),A.unshift(_i(e,h)));let w=s?.result?.approvedApps?.filter(y=>!y.hideForNonPrivilegedMember)||[],_={};r?.forEach(y=>{let b=y.clientId?.toLowerCase();b&&(_[b]={valid:!0,itemId:y.itemId,clientId:y.clientId})}),l?.forEach(y=>{let b=y.id?.toLowerCase();b&&(_[b]={valid:!0,clientId:y.id})});let S=wi(u,m),{apps:I,appDictionary:d}=await Ni({userApps:A,servers:v,portal:e,blockedApps:S,provisionedListings:r,orgCapabilities:l,licenses:_,trackViewerEnabled:t,notebookServerEnabled:i,willQueryForItems:a,approvedApps:w});h?.appLauncher&&(h?.appLauncher.primary&&qe(h?.appLauncher.primary,e),h?.appLauncher.secondary&&qe(h?.appLauncher.secondary,e));let p=[],g=[];if(!h?.appLauncher?.primary||!h?.appLauncher.secondary)p=I.slice().sort((y,b)=>(y.label||"")<(b.label||"")?-1:1),p=de(p,S),g=[];else{let{result:y}=await gi(w,a,e);y?.results?.length&&y.results.forEach($=>{let f=d[$.id];f.canAccess=!0,f.hasChanged=f.url!==$.url?!!$.url:!1});let b={...d};h?.appLauncher?.primary?.forEach($=>{$.label==="Map Viewer"&&($.uid="Map Viewer")}),p=h?.appLauncher.primary.reduce(($,f)=>Je({apps:$,app:f,appDictionary:d,newAppDictionary:b,portal:e}),[])||[],g=h?.appLauncher.secondary.reduce(($,f)=>Je({apps:$,app:f,appDictionary:d,newAppDictionary:b,portal:e}),[])||[],p=de(p,S),g=de(g,S),ue(e)&&(p=p.filter($=>$.canAccess),g=g.filter($=>$.canAccess));for(let $ of Object.keys(b))b[$].canAccess&&(b[$].isNew=!0,d[$]=b[$],p.push(b[$]))}let x=[...p,...g],T=g.reduce((y,b)=>(b.itemId&&(y[b.itemId]=!0),y),{});return{apps:x,hiddenApps:T,signInSettings:u,licenses:_,userProperties:h}}function Ei(e,t){return!e?.itemId||!t?!1:t[e.itemId]}async function Di({apps:e,hiddenApps:t,userProperties:i,portal:a}){let n=e.reduce((o,s)=>{let l=t[s.itemId];return o[l?"secondary":"primary"].push({label:s.label,uid:s.itemId||s.title}),o},{primary:[],secondary:[]}),r={...i||{},appLauncher:n};return await je(r,a)}function rt({app:e}){if(!e)return null;if(!e.canAccess)return c`<span class="list-item__logo list-item__logo-empty"></span>`;let t=!e.image&&e.abbr;return c`${t&&c`<span class="list-item__logo">${e.placeHolderIcon&&c`<img src=${Ue(e.placeHolderIcon)??N} class="list-item__logo-bg" alt>`||""}<span style=${ne({fontSize:e.fontSize||"20px"})} class="list-item__abbr">${e.abbr}</span></span>`||""}${e.image&&c`<img src=${Ue(e.image)??N} class="list-item__logo" alt>`||""}`}function Li({app:e,hiddenApps:t,messages:i,toggleAppVisibility:a,handleAppDelete:n}){if(!e||!i)return null;let r=Ei(e,t),{title:o,itemId:s,label:l}=e;return c`<calcite-list-item .label=${o||l} class=${q(r?"app--hidden":"")}><span slot=content-start>${rt({app:e})}</span>${e.canAccess?c`<calcite-action .text=${r?i.show:i.hide} .icon=${r?"view-hide":"view-visible"} slot=actions-end @click=${()=>s&&a(s,!r)}></calcite-action>`:c`<calcite-action .text=${i.delete} icon=x slot=actions-end @click=${()=>s&&n(s)}></calcite-action>`}</calcite-list-item>`}function Oi({app:e,messages:t}){if(!e||!t)return null;let{title:i,itemId:a,label:n,url:r,isNew:o}=e,s=t?.descriptions?.[i]||t?.descriptions?.[n];return c`<li class="list-item"><a class="list-item__link" href=${r??N} target=_blank id=${a??N} aria-describedby=${`${a}--tooltip`}>${c`<span class="list-item__container">${rt({app:e})}<span class="list-item__title">${i||n}</span>${o&&c`<calcite-chip scale=s class="list-item__chip" .label=${t.new}>${t.new}</calcite-chip>`||""}</span>`}</a>${s&&c`<calcite-tooltip .referenceElement=${a} placement=trailing .id=${`${a}--tooltip`} role=tooltip>${s}</calcite-tooltip>`||""}</li>`}function zi({apps:e,appsLoading:t,appsSearchTerm:i,hiddenApps:a,messages:n,handleAppsSearch:r,handleAppReorder:o,handleAppSave:s,handleAppHide:l,handleAppDelete:u,handleAppCancel:m,handleAppEdit:v,editingApplications:h,portal:A}){if(!e||!n)return null;let w=i?.length>0,_=(e||[]).filter(d=>d.itemId&&(!a?.[d.itemId]||w)&&vi(i,d)),S=w?n.noAppResults.replace("{term}",i):n.noAppsAvailable,I=w?j(A)?n.noAppsDescriptionPublic:n.noAppResultsDescriptionOrg:n.noAppsAvailable;return h?c`<div class="list__header"><calcite-button appearance=outline width=half @click=${()=>{m()}}>${n.cancel}</calcite-button><calcite-button width=half @click=${()=>{s()}}>${n.applyChanges}</calcite-button></div><calcite-list .label=${n.allMyApplications} drag-enabled @calciteListDragEnd=${d=>{let{newIndex:p,oldIndex:g}=d.detail;o({newIndex:p,oldIndex:g})}} .loading=${t}>${O(e,d=>d.itemId,d=>Li({app:d,hiddenApps:a,messages:n,toggleAppVisibility:(p,g)=>{l({app:p,hidden:g})},handleAppDelete:u}))}</calcite-list>`:c`<div class="list__header"><calcite-input type=search icon .placeholder=${n.searchMyApps} .value=${i} scale=m class="list__search" @calciteInputInput=${d=>{r(d.currentTarget.value)}}></calcite-input><calcite-button appearance=transparent kind=neutral icon-start=reorder-cards .label=${n.reorder} @click=${()=>v()} id=customize-apps></calcite-button><calcite-tooltip reference-element=customize-apps><span>${n.customizeApps}</span></calcite-tooltip></div>${_?.length>0?c`<ul class="list">${O(_,d=>d.itemId,d=>Oi({app:d,messages:n}))}</ul>`:Z({title:S,description:I,icon:i?"search":"apps"})}`}var Ke="portalAppClientId",fe={GeoanalyticsEngine:"geoanalyticsengine",GeoanalyticsFabric:"geoanalyticsfabric",IndoorsOnline:"indoorsonline"};function ve(e){return fe.GeoanalyticsEngine===e}function be(e){return fe.GeoanalyticsFabric===e}function ot(e){return fe.IndoorsOnline===e}function _e(e){return["Location Platform","GeoAnalytics Fabric","GeoAnalytics Engine","Online","Enterprise"].includes(e)}function Gi({portal:e,messages:t,licenses:i,clientId:a,signInSettings:n}){if(!t||!e)return[];let r=e.sourceJSON?.subscriptionInfo,o=Hi({messages:t,portal:e});if(!e.user)return o;if(!e||!o||e?.user&&!i&&!j(e))return[];let s=Vi({portal:e,licenses:i,subscriptionInfo:r});return Bi({messages:t,portal:e,clientId:a,signInSettings:n,navLinkDictionary:s})}function Ri(e){let{id:t,access:i,isPortal:a}=e;return!t&&!i&&!a}function Wi(e,t){let i=new URL(e),a=t||window.location.pathname;return i.pathname===a}function st({portal:e,clientId:t,signInSettings:i}){let a=e.user,n=ot(t),r=!!i?.blockedApps?.includes("arcgisnotebooks"),{gallery:o="all",groups:s="all",map:l="all",notebook:u="notebookCreators",scene:m="all"}=e.portalProperties?.topNav||{},v=["home"];if(!a){if(!e.portalProperties?.topNav){let A=["gallery","map","scene","groups"],w=e.isPortal?["help"]:[];return[...v,...A,...w]}return[...v,...o==="all"?["gallery"]:[],...l==="all"?["map"]:[],...m==="all"?["scene"]:[],...s==="all"?["groups"]:[],...e.isPortal?["help"]:[]]}let h=a.orgId===e.id;return!e.portalProperties?.topNav&&j(e)?v=["ArcGIS","overview","pricing","map","scene","groups","myContent"]:v=[...v,...(o==="all"||o==="members"&&h)&&!n?["gallery"]:[],...(l==="all"||l==="members"&&h||l==="mapCreators"&&se(a))&&!n?["map"]:[],...(m==="all"||m==="members"&&h||m==="sceneCreators"&&se(a))&&!n?["scene"]:[],...!r&&(!e.isPortal||e.sourceJSON.supportsHostedNotebooks)&&(u==="members"&&h||u==="notebookCreators"&&Oe(a))&&!n?["notebook"]:[],...(s==="all"||s==="members"&&h)&&!n?["groups"]:[],...h&&!n?["myContent","organization"]:[]],v}function E(e){return`${re({portal:e})}/`}function Fi({keys:e,navLinkDictionary:t,messages:i}){let a=[];return e.forEach(n=>{let r=t[n];if(r&&(!("show"in r)||r.show)){let{href:o,newTab:s,icon:l,relativePath:u}=r;a.push({label:i[n],href:o,newTab:s,relativePath:u,icon:l})}}),a}function Hi({messages:e,portal:t}){if(!e||!t)return[];let i=E(t),a={overview:{label:e.overview,href:`${i}../features/features.html`,icon:"information"},pricing:{label:e.pricing,href:`${i}../features/plans/pricing.html`,icon:"credit-card"},map:{label:e.map,href:`${i}apps/mapviewer/index.html`,icon:"map"},scene:{label:e.scene,href:`${i}webscene/viewer.html`,icon:"globe"},help:{label:e.help,href:X(t),newTab:!0,icon:"headset"},home:{label:e.home,href:`${i}index.html`,relativePath:"index.html",icon:"home"},gallery:{label:e.gallery,href:`${i}gallery.html`,relativePath:"gallery.html",icon:"gallery"},groups:{label:e.groups,href:`${i}groups.html`,relativePath:"groups.html",icon:"group"}};return(Ri(t)?["overview","pricing","map","scene","help"]:st({portal:t})).map(n=>a[n])}function Bi({messages:e,portal:t,clientId:i,signInSettings:a,navLinkDictionary:n}){let r=ve(i),o=st({portal:t,clientId:i,signInSettings:a}),s=`${E(t)}geoanalytics${r?"engine":"fabric"}.html`;return r||be(i)?[{href:`${s}#subscription`,label:e.subscription},...r?[{href:`${s}#downloads`,label:e.downloads}]:[],{href:`${s}#credentials`,label:e.developerCredentials},{href:`${s}#account`,label:e.account}]:Fi({keys:o,messages:e,navLinkDictionary:n})}function Vi({portal:e,licenses:t,subscriptionInfo:i}){let a=e.user,n=E(e),r=i?.options?.includes("Developer"),o=k("arcgiswebapps",t)||r&&k("locationplatformwebapps",t)||j(e);return{pricing:{href:`${n}../features/plans/pricing.html`},overview:{href:`${n}../features/features.html`},ArcGIS:{href:`${n}${j(e)?"index.html":"../features/features.html"}`,show:j(e)||!a},groups:{href:`${n}groups.html`,relativePath:"groups.html",icon:"group"},myContent:{href:`${n}content.html`,relativePath:"content.html",icon:"files"},map:{show:o,href:`${n}apps/mapviewer/index.html`,icon:"map"},help:{href:X(e),newTab:!0},gallery:{show:!!e.id&&!r,href:`${n}gallery.html`,relativePath:"gallery.html",icon:"gallery"},home:{show:!j(e)&&!r,href:`${n}index.html`,relativePath:"index.html",icon:"home"},scene:{show:o,href:`${n}webscene/viewer.html`,icon:"globe"},notebook:{show:Ie(e),href:`${n}notebook/notebookhome.html`,relativePath:"notebook/notebookhome.html",icon:"notebook"},organization:{show:!j(e),href:`${n}organization.html`,relativePath:"organization.html",icon:"organization"},features:{show:j(e)&&!e.isPortal,href:`${n}../features/features.html`,icon:"information"}}}function Ui({portal:e,item:t,messages:i,navigate:a,locale:n}){if(!t||!i||!t.modified)return null;let r=t.modified,o={lessThanOneMinute:i.lessThanOneMinute},s=Ye(Ze(r)),l=s?.[1]==="year"||s?.[1]==="month"?Xt({locale:n,time:r},s?.[1]==="year"):et({locale:n,time:r,t9n:o}),u=`item.html?id=${t.id}`,m=`${E(e)}${u}}`;return Y(t.id,c`<li class="list-item"><a class="list-item__link" href=${m??N} @click=${v=>{a({event:v,href:m,relativePath:u})}}>${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">${ee(i.lastUpdated,{date:l})}</span></span></span>`}</a></li>`)}function qi({locale:e,navigate:t,portal:i,open:a,apps:n,appsLoading:r,hiddenApps:o,appsSearchTerm:s,handlePlatformClose:l,handleAppsSearch:u,handleAppReorder:m,handleAppSave:v,handleAppDelete:h,handleAppHide:A,handleAppCancel:w,handleAppEdit:_,handleItemSearch:S,editingApplications:I,recentContent:d,recentContentLoading:p,recentContentSearchTerm:g,product:x,platformInfo:T,links:y,messages:b}){if(!x||!i||!b)return null;let{name:$,icon:f}=T||{};return c`<calcite-sheet class="platform" .label=${b.label} position=inline-start display-mode=overlay id=example-sheet .open=${a} @calciteSheetClose=${l}><calcite-panel class="platform__panel"><div slot=header-content class="platform__header"><img src=${f??N} 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=${l}></calcite-action></div><div class="platform__container"><div class="platform__tiles">${y.filter(({icon:P})=>P).map(({label:P,href:M,icon:te,relativePath:U})=>c`<calcite-tile .icon=${te} .description=${P} .href=${M} alignment=center scale=s @keydown=${D=>{(D.key==="Enter"||D.key===" ")&&t({event:D,href:M,relativePath:U})}} @click=${D=>{t({event:D,href:M,relativePath:U})}}></calcite-tile>`)}</div>${i?.user&&c`<calcite-tabs layout=center class="platform__tabs"><calcite-tab-nav slot=title-group>${!j(i)&&c`<calcite-tab-title selected>${b.myApps}</calcite-tab-title>`||""}<calcite-tab-title>${b.recentContent}</calcite-tab-title></calcite-tab-nav>${!j(i)&&c`<calcite-tab selected class="platform__tab">${r&&c`<calcite-scrim loading></calcite-scrim>`||""}${zi({apps:n,appsLoading:r,appsSearchTerm:s,hiddenApps:o,messages:b,handleAppsSearch:u,handleAppReorder:m,handleAppSave:v,handleAppDelete:h,handleAppHide:A,handleAppCancel:w,handleAppEdit:_,editingApplications:I,portal:i})}</calcite-tab>`||""}<calcite-tab class="platform__tab"><div class="list__header"><calcite-input type=search icon .placeholder=${b.searchRecentContent} scale=m class="list__search" @calciteInputInput=${P=>S(P.target.value)}></calcite-input></div>${p&&!r&&c`<calcite-scrim loading></calcite-scrim>`||""}<div class="list__container">${d?.length>0||p?c`<ul class="list">${O(d,P=>P.id,P=>Ui({portal:i,messages:b,navigate:t,item:P,locale:e}))}</ul>`:g?.length?Z({title:ee(b.noAppResults,{term:g}),description:b.recentContentNoResultsDescription,icon:"search"}):Z({title:b.noContent,description:b.noContentDescription,icon:"clock"})}</div></calcite-tab></calcite-tabs>`||""}</div></calcite-panel></calcite-sheet>`}var he=["new","open","rename","save","saveCopy","share","copyLink","embed","details"];async function Ji(e){return await Promise.resolve({status:"success"})}function me(e){return he.includes(e.id)}function Ki(e){return(e||[])?.toSorted((t,i)=>{let a=me(t),n=me(i);return a&&!n?-1:n&&!a?1:n&&a?he.indexOf(t.id)-he.indexOf(i.id):-1})}function Qi(e,t){let i={new:[],save:[],share:[],details:[],custom:[]};if(!t||!e?.length)return i;let a={new:{text:t.new,group:"new"},open:{text:t.open,group:"new"},rename:{text:t.rename,group:"save"},save:{text:t.save,group:"save"},saveCopy:{text:t.saveAsCopy,group:"save"},share:{text:t.manageSharing,group:"share"},copyLink:{text:t.copyLink,group:"share"},embed:{text:t.embed,group:"share"},details:{text:t.itemDetails,group:"details",external:!0}},n=Ki(e),r=[];return n.forEach(o=>{if(!me(o)){r.push(o);return}let{text:s,external:l,group:u}=a[o.id];i[u].push({text:s,external:l,...o})}),r.forEach(o=>{let s=o.group||"custom";i[s].push(o)}),i}function Xi({navigate:e,portal:t,menuItem:i,messages:a,portalItem:n,openProjectTitleEdit:r,projectMenuClick:o}){if(!t||!a||!i||i.id==="details"&&!n)return null;let{external:s,id:l,text:u}=i,m=`${E(t)}item.html?id=${n?.id}`;return Y(`${l}${u}`,c`<calcite-dropdown-item .iconEnd=${s?"launch":void 0} .href=${l==="details"?m:i.href} .target=${s?"_blank":void 0} @calciteDropdownItemSelect=${v=>{if(l==="rename"){r?.();return}l==="details"&&e({event:v,href:m}),o?.({type:l})}}>${u}${l==="save"&&c`<calcite-icon icon=bullet-point-large class="project__indicator" scale=s></calcite-icon>`||""}</calcite-dropdown-item>`)}function Yi({navigate:e,portal:t,projectTitle:i,editedProjectTitle:a,handleProjectTitleSave:n,handleProjectTitleEdit:r,handleProjectTitleCancel:o,openProjectTitleEdit:s,portalItem:l,projectTitleEditing:u,projectTitleSaving:m,projectTitleErrorMessage:v,projectMenuIcon:h,projectMenuSaveIndicator:A,projectMenuClick:w,projectMenuOptions:_,projectTitleInputRef:S,projectButtonRef:I,messages:d}){if(!t||!d||!_?.length&&!i)return null;if(!_?.length)return c`<div class="project__title">${h&&c`<calcite-icon .icon=${h} scale=s class="project__menu-icon"></calcite-icon>`||""}<h1 class="project__title__header">${i}</h1>${A&&c`<calcite-icon scale=s icon=bullet-point-large class="project__indicator"></calcite-icon>`||""}</div>`;let p=Qi(_,d),g=!!v;return u?c`<form class="rename" @submit=${async x=>{x.preventDefault(),await n?.(a)}} @keydown=${x=>{x.key==="Escape"&&o?.()}}><calcite-input id=project-title-input type=text scale=l class="rename__input" .label=${d.title} .value=${a} .status=${g?"invalid":"idle"} @calciteInputInput=${x=>r?.(x.target.value)} ${R(S)}></calcite-input>${g&&c`<calcite-popover open .label=${d.error} .referenceElement=${S?.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=${d?.saveRename} active class="rename__action" type=submit .loading=${m}></calcite-action><calcite-action .disabled=${m} icon=x scale=l .text=${d?.cancelRename} class="rename__action" @click=${()=>o?.()}></calcite-action></form>`:c`<calcite-dropdown width=m class="fade-in project__dropdown"><button slot=trigger class="project" ${R(I)}>${h&&c`<calcite-icon scale=s .icon=${h} class="project__menu-icon"></calcite-icon>`||""}<span class="project__text">${i}</span>${A&&c`<calcite-icon scale=s icon=bullet-point-large class="project__indicator"></calcite-icon>`||""}<calcite-icon scale=s icon=chevron-down></calcite-icon></button>${O(Object.entries(p).filter(([x,T])=>T.length),([x,T])=>x,([x,T])=>c`<calcite-dropdown-group selection-mode=none>${T.map(y=>Xi({menuItem:y,navigate:e,portal:t,messages:d,portalItem:l,openProjectTitleEdit:s,projectMenuClick:w}))}</calcite-dropdown-group>`)}</calcite-dropdown>`}function Zi(e){return["Location Platform","Online","Enterprise"].includes(e)}function ct({portal:e,searchType:t,searchTerm:i}){let a=e?.sourceJSON?.vectorSearchEnabled?`&mode=${t}`:"";return`search.html?q=${i}${a}`}function ea({portal:e,item:t,messages:i,navigate:a}){if(!t||!i)return null;let n=ee(i.by,{itemType:He(t),owner:t.owner}),r=`item.html?id=${t.id}`,o=`${E(e)}${r}`;return Y(t.id,c`<li class="list-item"><a class="list-item__link" href=${o??N} @click=${s=>a({event:s,href:o,relativePath:r})}>${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">${n}</span></span></span>`}</a></li>`)}function ta({portal:e,suggestions:t,messages:i,navigate:a,searchType:n,searchTerm:r}){if(!i||!e||!r)return null;if(!t)return c`<div><calcite-loader scale=l .label=${i.loadingResults}></calcite-loader></div>`;let o=ct({portal:e,searchType:n,searchTerm:r}),s=`/${o}`,l=`${E(e)}${o}`;return c`<ul class="list">${t.map(u=>ea({messages:i,portal:e,item:u,navigate:a}))}</ul><div class="suggestions__footer"><calcite-button icon-end=arrow-right scale=l appearance=outline class="suggestions__footer__button" kind=neutral round .href=${l} @click=${u=>{a({href:l,event:u,relativePath:s})}}>${i.viewAll}</calcite-button></div>`}function ia({portal:e,messages:t,searchType:i,handleSearchTypeChange:a}){if(!t||!e?.sourceJSON?.vectorSearchEnabled)return null;let n=i==="keyword",r=t.searchType;return c`<calcite-chip .label=${r.label} .icon=${n?"text":"effects"} id=search-type-toggle appearance=solid kind=neutral><span>${n?r.keywordTitle:r.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=${()=>a("keyword")} icon-start=text value=keyword .label=${r.keywordTitle} .description=${r.keywordDescription}></calcite-list-item><calcite-list-item @calciteListItemSelect=${()=>a("vector")} icon-start=effects value=semantic .label=${r.semanticTitle} .description=${r.semanticDescription}></calcite-list-item></calcite-list></div></calcite-popover>`}function aa({currentPathname:e,navigate:t,product:i,portal:a,messages:n,searchActive:r,searchType:o,searchTerm:s,suggestions:l,searchInputRef:u,searchActionRef:m,searchPopoverRef:v,handleSearch:h,handleToggleSearch:A,handleSearchTypeChange:w}){if(!Zi(i)||!n||!a||e?.includes("search.html"))return null;let _=ct({portal:a,searchType:o,searchTerm:s}),S=`/${_}`,I=`${E(a)}${_}`;return r?c`<div class="search" id=search-reference-element><calcite-input type=search scale=l icon=search class="search__input" .ariaLabel=${n.label} .placeholder=${o==="vector"?n.searchType.semanticPlaceholder:n.searchType.keywordPlaceholder} @calciteInputInput=${d=>h(d.target.value)} @keydown=${d=>{d.key==="Enter"&&(t({href:I,event:d,relativePath:S}),d.defaultPrevented||(window.location.href=I)),d.key==="Escape"&&A(!1)}} ${R(u)}></calcite-input><calcite-action icon=x scale=l .text=${n?.close} active class="search__action" @click=${()=>A(!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}} ${R(v)}><div class="suggestions__header"><h3 class="suggestions__title">${n.topResults}</h3>${ia({portal:a,messages:n,searchType:o,handleSearchTypeChange:w})}</div><div class="suggestions__results">${ta({portal:a,suggestions:l,navigate:t,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=${()=>A(!0)} ${R(m)}></calcite-action>`}function na({signIn:e,messages:t}){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>`}function ra({navigate:e,portal:t,product:i,links:a,messages:n,currentPathname:r,searchActive:o}){return!i||!t||!n||!_e(i)||!a||o?null:c`<calcite-menu slot=content-start .label=${n.label} class="site-nav fade-in">${O(a,({href:s})=>s,({label:s,href:l,relativePath:u})=>c`<calcite-menu-item .text=${s} text-enabled .label=${s} .href=${l} .active=${Wi(l,r)} @click=${m=>e({event:m,href:l,relativePath:u})}></calcite-menu-item>`)}</calcite-menu>`}function oa({userLinks:e,messages:t,navigate:i,openAccountSwitcher:a,portal:n,signOut:r,textDisabled:o}){let s=n?.user;return!s||!e||!t||e?.account?.options.length<1&&e?.resources?.options.length<1?null:c`<div class="user fade-in"><calcite-dropdown .width=${o?"l":"m"} class="user__dropdown"><calcite-button class="user__button" slot=trigger appearance=transparent kind=neutral><span class="user__button__contents"><arcgis-portal-user-avatar .user=${s} .portal=${n} scale=l class="user__button__avatar"></arcgis-portal-user-avatar>${!o&&c`<span class="user__button__text"><h2 class="user__button__full user__full">${s.fullName}</h2><p class="user__button__username user__username">${s.username}</p></span>`||""}</span></calcite-button>${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 user__full">${s.fullName}</h2><p class="user__top__username user__username">${s.username}</p></div></div>`||""}${Object.values(e).filter(l=>l.options.length).map(({title:l,options:u})=>c`<calcite-dropdown-group selection-mode=none .groupTitle=${l}>${u.map(({icon:m,label:v,href:h,relativePath:A})=>c`<calcite-dropdown-item .iconStart=${m} .href=${h} @keydown=${w=>{(w.key==="Enter"||w.key===" ")&&i({event:w,href:h,relativePath:A})}} @click=${w=>{i({event:w,href:h,relativePath:A})}}>${v}</calcite-dropdown-item>`)}</calcite-dropdown-group>`)}<calcite-dropdown-group selection-mode=none>${a&&c`<calcite-dropdown-item icon-start=users @calciteDropdownItemSelect=${l=>{let u=Ee(l.target,"calcite-dropdown");u&&(u.open=!1),a()}}>${t.switchAccounts}</calcite-dropdown-item>`||""}<calcite-dropdown-item icon-start=sign-out @calciteDropdownItemSelect=${()=>r()}>${t.signOut}</calcite-dropdown-item></calcite-dropdown-group></calcite-dropdown></div>`}var lt={community:"https://community.esri.com/plugins/common/feature/oauth2sso_v2/sso_login_redirect?referer=https%3A%2F%2Fcommunity.esri.com%2F",myEsri:"https://my.esri.com"};function sa({messages:e,userLinks:t}){let i={account:{title:e.account,options:[]},resources:{title:e.resources,options:[]}};return t.forEach(a=>{i[a.group].options.push(a)}),i}function ca({portal:e,messages:t,clientId:i}){if(!e?.user||!t)return{account:{title:t?.account,options:[]},resources:{title:t?.account,options:[]}};let a=da(e),n=la({navLinkDictionary:a,messages:t,clientId:i});return sa({userLinks:n,messages:t})}function la({navLinkDictionary:e,messages:t,clientId:i}){let a=["myProfile","mySettings","myEsri","training","trialDownload","communityForums","arcgisBlog","help"];return(ve(i)||be(i))&&(a=["mySettings","arcgisBlog","help"]),ot(i)&&(a=[]),pa(a,t,e)}function pa(e,t,i){let a=[];return e.forEach(n=>{let r=i[n];if(r&&(!("show"in r)||r.show)){let{href:o,newTab:s,icon:l,group:u,relativePath:m}=r;a.push({label:t[n],group:u,href:o,newTab:s,relativePath:m,icon:l})}}),a}function da(e){let t=E(e),i=ua(e),a=`user.html${window.location.pathname.includes("home/user.html")?"?nav=1":""}`;return{myProfile:{href:`${t}${a}`,relativePath:a,group:"account",icon:"user"},mySettings:{href:`${t}${a}#settings`,relativePath:`${a}#settings`,group:"account",icon:"gear"},help:{group:"resources",icon:"question",href:X(e),newTab:!0},communityForums:{show:i,group:"resources",icon:"speech-bubbles",href:lt.community,newTab:!0},myEsri:{show:i,group:"account",icon:"globe",href:ma(e),newTab:!0},arcgisBlog:{show:i,group:"resources",icon:"article",href:"https://www.esri.com/arcgis-blog/products/arcgis-online",newTab:!0},training:{show:i,group:"resources",icon:"education",href:ha(e),newTab:!0},trialDownload:{group:"resources",icon:"download-to",show:fa(e),href:`${t}/home/user.html${window.location.pathname.includes("home/user.html")?"?nav=1&tab=licenses":"?tab=licenses"}#settings`}}}function ua(e){return!e.isPortal&&e?.user?.sourceJSON?.userType==="both"}function ha(e){return pt(e,`${window.location.protocol}//www.esri.com/training/arcgis-online-training`)}function ma(e){return pt(e,lt.myEsri)}function pt(e,t){let i=Q(e),a=ga(e),n=`https://accounts${a?a==="dev"?"-dev":"-stg":""}.esri.com/`,r=`&authBaseUrl=${B(i.replace("/sharing/rest/",""),e)}`,o=`${n}LoginHandler/switchuser?`,s=`username=${e?.user?.username??""}&redirect_uri=${t}${r}`;return`${o}${s}`}function ga(e){let t=e.portalHostname;return t?.includes("dev")?"dev":t?.includes("qa")?"qa":""}function fa(e){return!e?.isPortal&&["Trial","Trial Press"].includes(e?.sourceJSON.subscriptionInfo?.type)}function dt(e){switch(e){case"360 VR":return{name:"360 VR",fileName:"arcgis-360-vr",icon:"arcgis-360-vr"};case"Business Analyst":return{name:"ArcGIS Business Analyst",fileName:"arcgis-business-analyst",icon:"business-analyst"};case"Dashboards":return{name:"ArcGIS Dashboards",fileName:"arcgis-dashboards",icon:"operations-dashboard"};case"Data Pipelines":return{name:"ArcGIS Data Pipelines",fileName:"arcgis-data-pipelines",icon:"data-pipelines"};case"Deep Learning Studio":return{name:"Deep Learning Studio",fileName:"arcgis-deep-learning-studio",icon:"deeplearningstudio"};case"Enterprise":return{name:"ArcGIS Enterprise",fileName:"arcgis-enterprise",icon:"arcgis-enterprise"};case"Excalibur":return{name:"ArcGIS Excalibur",fileName:"arcgis-excalibur",icon:"excalibur"};case"Experience Builder":return{name:"ArcGIS Experience Builder",fileName:"arcgis-experience-builder",icon:"arcgis-experience-builder"};case"Field Maps":return{name:"Field Maps Designer",fileName:"arcgis-field-maps",icon:"fieldmaps"};case"Field Maps Designer EA":return{name:"Field Maps Designer (EA)",fileName:"arcgis-field-maps-designer-ea",icon:"fieldmaps"};case"GeoAnalytics Engine":case"GeoAnalytics Fabric":return{name:e,fileName:"arcgis-geoanalytics-engine",icon:"arcgis-geoanalytics"};case"GeoBIM":return{name:"ArcGIS GeoBIM",fileName:"arcgis-geobim",icon:"geobim"};case"Hub":return{name:"ArcGIS Hub",fileName:"arcgis-hub",icon:"arcgis-hub"};case"Instant Apps":return{name:"Instant Apps",fileName:"arcgis-instant-apps",icon:"instant-apps"};case"Knowledge":return{name:"ArcGIS Knowledge Studio",fileName:"arcgis-knowledge",icon:"knowledge-studio"};case"Location Platform":return{name:"Location Platform",fileName:"arcgis-location-platform",icon:"location-platform"};case"Map Viewer":return{name:"Map Viewer",fileName:"map-viewer",icon:"map-viewer"};case"Mission":return{name:"ArcGIS Mission Manager",fileName:"arcgis-mission",icon:"mission"};case"Monitor":return{name:"ArcGIS Monitor",fileName:"arcgis-monitor",icon:"monitor"};case"Notebooks":return{name:"ArcGIS Notebooks",fileName:"arcgis-notebooks",icon:"notebook"};case"Online":return{name:"ArcGIS Online",fileName:"arcgis-online",icon:"arcgis-online"};case"Ortho Maker":return{name:"Ortho Maker",fileName:"arcgis-ortho-maker",icon:"ortho-maker"};case"QuickCapture":return{name:"ArcGIS QuickCapture",fileName:"arcgis-quickcapture",icon:"quick-capture"};case"Reality Studio":return{name:"ArcGIS Reality Studio",fileName:"arcgis-reality-studio",icon:"arcgis-reality-studio"};case"Scene Viewer":return{name:"Scene Viewer",fileName:"sceneviewer",icon:"scene-viewer"};case"Solutions":return{name:"ArcGIS Solutions",fileName:"arcgis-solutions",icon:"solutions"};case"StoryMaps":return{name:"ArcGIS StoryMaps",fileName:"arcgis-storymaps",icon:"story-maps"};case"Survey123":return{name:"ArcGIS Survey123",fileName:"arcgis-survey123",icon:"survey123"};case"Tracker":return{name:"Track Viewer",fileName:"arcgis-tracker",icon:"track-viewer"};case"Urban":return{name:"ArcGIS Urban",fileName:"arcgis-urban",icon:"arcgis-urban"};case"Vector Tile Style Editor":return{name:"Vector Tile Style Editor",fileName:"vector-tile-style-editor",icon:"vector-tile-style-editor"};case"Velocity":return{name:"ArcGIS Velocity",fileName:"arcgis-velocity",icon:"velocity"};case"Web Editor":return{name:"Web Editor",fileName:"arcgis-web-editor",icon:"web-editor"};case"Workflow Manager":return{name:"ArcGIS Workflow Manager",fileName:"arcgis-workflow-manager",icon:"workflow-manager"};case"Workforce":return{name:"ArcGIS Workforce",fileName:"arcgis-workforce",icon:"workforce"};default:return{name:"ArcGIS Online",fileName:"arcgis-online",icon:"arcgis-online"}}}function ut({name:e,fileName:t,icon:i}){return{name:e,glyph:J(`assets/portal-navigation/product-logos/${t}-glyph-32.svg`),icon:J(`assets/portal-navigation/apps/${i}.avif`)}}function ht({portal:e,clientId:t}){return e?.sourceJSON?.subscriptionInfo?.options?.includes("Developer")?"Location Platform":be(t)?"GeoAnalytics Fabric":ve(t)?"GeoAnalytics Engine":e?.isPortal?"Enterprise":"Online"}function va(e){let t=ht(e);return ut(dt(t))}function Qe(e){let t=e?.product==="Online"?ht(e):e?.product;return ut(dt(t))}function ba(){let e=Ut();["item.html","group.html"].some(t=>window.location.href.includes(t))?window.location.href=`./signin.html?locale=${e}&useLandingPage=false&returnUrl=${encodeURIComponent(window.location.href)}`:window.location.href=`./signin.html?locale=${e}&useLandingPage=true`}function _a({portal:e,clientId:t}){let i=K({portal:e});if(e?.isPortal){let a=e.access==="private"?B("signin.html",e):e.allSSL||window.location.protocol==="https:"?B("./index.html",e):`${i}/index.html`;ya(e,a)}else window.location.href=`${i}/pages/Account/manage_accounts.html#client_id=${t}&signout=true`}function wa(){ci(Ke),li(Ke)}function ya(e,t=window.location.href){let i=window.location.href.startsWith("http://"),a=Se(e);qt.destroyCredentials(),wa();let n=new URL(B(`${Q(e)}oauth2/signout`,e)),{searchParams:r}=n;r.append("client_id","arcgisonline"),r.append("redirect_uri",t),a&&i&&(e.isPortal||e.user?.sourceJSON.provider==="enterprise")&&r.append("token",a),window.location.href=n.href}function z(e,t){if(!e)return 0;let i=De({text:e,font:`${t==="s"?".875rem":"1rem"} 'Avenir Next'`});return Math.ceil(i)}function $a({portal:e,product:t,projectTitle:i,links:a,messages:n,productInfo:r}){if(!t||!e)return;let o=e.user,s=_e(t)&&a?.length?24+a.reduce((m,v)=>m+16+z(v.label)+16,0):0,l=40+z(i)+32+16+16+12,u=o?Math.max(z(o?.username,"s"),z(o?.fullName)):z(n?.signIn);return{actions:192,project:i?Math.min(l,400):0,product:64+Math.max(z(r?.name),z(e.name,"s"))+16,nav:s,user:64+u+16}}function Aa({measurements:e,screenWidth:t}){let{actions:i,nav:a,product:n,project:r,user:o}=e,s=64,l=t-i-s>a,u=t-i-(l?a:0)-r-s>Math.min(n,400),m=t-a-r-i-n<Math.min(o,320);return{nav:l,product:u,user:m?"avatar":"full"}}var mt=' -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"';async function Xe({portal:e,searchTerm:t}){if(!e?.user)return[];try{return(await e.queryItems({...t?{query:t}:{},filter:`owner:${e.user.username}${mt}`,num:20,sortField:"modified",sortOrder:"desc"})).results}catch{return[]}}async function xa({portal:e,searchTerm:t}){if(!e)return[];let i=Le((t||"").substring(0,409)),a=`${e?.id?`accountid:"${e.id}"`:""}${mt}`,n=`${Q(e)}search/suggest`;return(await L(n,{query:{suggest:i,filters:a,searchFields:"title",f:"json"}}))?.result?.results||[]}var ka=ye`:host{display:block;--arcgis-portal-navigation-logo-max-width: 260px;--arcgis-portal-navigation-logo-text-display: flex;--arcgis-portal-navigation-user-max-width: 260px;--arcgis-portal-navigation-user-text-display: block;--arcgis-portal-navigation-project-max-width: auto}.scrim{z-index:100;pointer-events:none;opacity:0;transition:opacity .2s ease-in-out;--calcite-scrim-background: rgba(0, 0, 0, .85)}.scrim--active{opacity:1}.wrapper{background:var(--calcite-color-foreground-1);border-bottom:1px solid var(--calcite-color-border-3);position:relative;z-index:200}.navigation{width:100%;min-width:0;min-height:4rem;display:flex;align-items:stretch;max-width:var(--arcgis-portal-navigation-max-width);margin-inline:auto;overflow:hidden}.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-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:focus-within .list-item__container{border-bottom-color:transparent}.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;pointer-events:none}.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);max-width:var(--arcgis-portal-navigation-logo-max-width);display:flex;align-items:center}.logo--link{text-decoration:none}.logo--link:hover{background-color:var(--calcite-color-transparent-hover)}.logo--link:focus{outline:2px solid var(--calcite-color-brand);outline-offset:-2px}.logo__glyph{width:32px;height:32px;padding-inline:1rem}.logo__text{display:var(--arcgis-portal-navigation-logo-text-display);flex-direction:column;overflow:hidden;white-space:nowrap;text-align:start;padding-inline:var(--calcite-internal-navigation-logo-padding-inline);padding-inline-end:1rem}.logo__title{margin:0;padding:0;color:var(--calcite-color-text-1);font-size:var(--calcite-font-size-0);font-weight:var(--calcite-font-weight-medium);line-height:1.25rem;text-overflow:ellipsis;overflow:hidden}.logo__subtitle{margin:0;padding:0;font-size:var(--calcite-font-size--1);color:var(--calcite-color-text-2);font-size:.875rem;line-height:1rem;text-overflow:ellipsis;overflow:hidden}.site-nav{margin-inline-start:1.5rem}.project{min-width:0;outline:none;border:none;border-inline-end:1px solid var(--calcite-color-border-3);cursor:pointer;background-color:var(--calcite-color-foreground-1);box-sizing:border-box;display:flex;user-select:none;appearance:none;align-items:center;justify-content:center;text-align:center;font-family:inherit;font-weight:var(--calcite-font-weight-normal);text-decoration-line:none;outline-color:transparent;box-shadow:var(--calcite-button-shadow, var(--calcite-shadow-none));color:var(--calcite-color-text-1);transition:all var(--calcite-animation-timing) ease-in-out 0s,outline 0s,outline-offset 0s;inset-inline-end:.25rem;background:transparent;white-space:nowrap;padding:0 1.375rem;flex-grow:2}.project:hover{background-color:var(--calcite-color-transparent-hover)}.project:focus{outline:2px solid var(--calcite-color-brand);outline-offset:-2px}.project__title{display:flex;justify-self:stretch;min-width:0;align-items:center;justify-content:center;padding:0 1.5rem;margin-inline-end:1.5rem;color:var(--calcite-color-text-1);border-inline-end:1px solid var(--calcite-color-border-3);max-width:var(--arcgis-portal-navigation-project-max-width, 60%)}.project__title__header{padding:0;margin:0;font-size:1rem;font-weight:400;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project__dropdown{max-width:var(--arcgis-portal-navigation-project-max-width, 60%);min-width:0;margin-inline-end:1.5rem}.project__indicator{margin-inline-end:.5rem;--calcite-ui-icon-color: var(--calcite-color-status-danger)}.project__menu-icon{margin-inline-end:.75rem}.project__text{font-size:1rem;min-width:0;overflow:hidden;text-overflow:ellipsis;margin-inline-end:.75rem}.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;box-sizing:border-box;width:100%}.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;max-width:var(--arcgis-portal-navigation-user-max-width);--calcite-dropdown-item-text-color: var(--calcite-color-text-3);--calcite-dropdown-group-title-text-color: var(--calcite-color-text-2)}.user__dropdown{max-width:100%}.user__button{max-width:100%;--calcite-spacing-base: -2px}.user__button__contents{display:flex;text-align:start}.user__button__text{display:var(--arcgis-portal-navigation-user-text-display);flex:1 1 0;min-width:0;padding-inline-start:1rem;line-height:1.375;overflow:hidden}.user__button__avatar{flex:0 0 auto}.user__button__full,.user__button__username{max-width:100%;overflow:hidden;text-overflow:ellipsis}.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__full{font-size:1rem;font-weight:medium;color:var(--calcite-colot-text-1);line-height:1.25;padding:0;margin:0}.user__username{font-size:.875rem;line-height:1.25;color:var(--calcite-colot-text-2);padding:0;margin:0}`;function Sa({messages:e,portal:t,showNav:i,openPlatformMenu:a,handleToggleSearch:n}){return!e||i&&!t?.user?null:c`<calcite-action .label=${e.applicationMenu} text="app switcher" icon=app-launcher scale=l class="action" @click=${a} @focusin=${()=>n(!1,!0)}></calcite-action>`}var ge=class extends Ae{constructor(){super(...arguments),this.messages=Ne({blocking:!0}),this.refreshNotifications=async()=>{let{portal:t,messages:i}=this;this.notifications=await Ve({portal:t,locale:i._t9nLocale,t9n:i.notifications})},this.deleteNotifications=async t=>{let{portal:i}=this;if(t?.length<20)await Zt(i,t);else{let a=0;for await(let n of t)await tt({id:n,portal:i}),this.notificationDeleteProgress=Math.ceil(a++/t.length*100)}this.notificationDeleteProgress=void 0,this.refreshNotifications()},this.navigate=t=>{this.arcgisNavigate.emit(t),this.platformMenuOpen=!1,this.notificationsActive=!1,this.searchActive=!1},this.openPlatformMenu=()=>{this.platformMenuOpen=!0,this.searchActive=!1},this.projectMenuClick=t=>{this.arcgisNavigationProjectMenuClick.emit(t)},this.openProjectTitleEdit=()=>{this.projectTitleEditing=!0,this.editedProjectTitle=this.projectTitle,requestAnimationFrame(()=>{this.projectTitleInputRef?.value?.setFocus()})},this.closeProjectTitleEdit=()=>{this.projectTitleEditing=!1,this.projectTitleErrorMessage=void 0,requestAnimationFrame(()=>{this.projectButtonRef?.value?.focus()})},this.handleProjectTitleSave=async t=>{this.projectTitleSaving=!0;let i=await(this.projectTitleSave||Ji)(t);if(this.projectTitleSaving=!1,i.status==="success"){this.closeProjectTitleEdit();return}i.message&&(this.projectTitleErrorMessage=i.message)},this.handleProjectTitleEdit=t=>{this.editedProjectTitle=t},this.handleProjectTitleCancel=()=>{this.editedProjectTitle=this.projectTitle,this.closeProjectTitleEdit()},this.signOut=()=>{let{portal:t,clientId:i}=this;_a({portal:t,clientId:i}),this.arcgisNavigationSignOut.emit()},this.signIn=()=>{this.arcgisNavigationSignIn.emit(),ba()},this.openAccountSwitcher=()=>{this.accountSwitcherOpen=!0},this.handlePlatformClose=()=>{this.platformMenuOpen=!1,this.handleAppCancel(),this.appsSearchTerm=""},this.handleAppSave=async()=>{let{hiddenApps:t,sortedApps:i,userProperties:a,portal:n}=this;this.apps=[...i],this.editingApplications=!1,this.appsLoading=!0;let{result:r}=await Di({apps:i,hiddenApps:t,userProperties:a,portal:n});r?.success&&(this.previousAppState={apps:i,hiddenApps:t}),await ke(1e3),this.appsLoading=!1},this.handleAppDelete=async t=>{t&&(this.apps=this.sortedApps.filter(i=>i.itemId!==t),this.sortedApps=this.sortedApps.filter(i=>i.itemId!==t))},this.handleAppCancel=()=>{this.previousAppState&&(this.apps=this.previousAppState.apps,this.hiddenApps=this.previousAppState.hiddenApps),this.editingApplications=!1},this.handleAppHide=({app:t,hidden:i})=>{!this.hiddenApps||!t||(this.hiddenApps={...this.hiddenApps||{},[t]:i})},this.handleAppReorder=({oldIndex:t,newIndex:i})=>{let a=[...this.sortedApps],n=a[t];a.splice(t,1),a.splice(i,0,n),this.sortedApps=a},this.handleItemSearch=t=>{this.recentContentLoading=!0,this.recentContentSearchTerm=t,this.debouncedItemSearch(t)},this.debouncedItemSearch=ce(async t=>{this.recentContent=await Xe({portal:this.portal,searchTerm:t}),this.recentContentLoading=!1},1e3),this.debouncedSuggest=ce(async t=>{this.suggestions=await xa({portal:this.portal,searchTerm:t})},1e3),this.handleSearch=t=>{this.searchTerm=t,this.suggestions=void 0,this.debouncedSuggest(t)},this.sizeSearchPopover=()=>{let t=this.searchInput?.value,i=this.searchPopover?.value;if(!t||!i)return;let a=t.offsetWidth>480?`${t.offsetWidth}px`:"80vw";i.style?.setProperty?.("--calcite-popover-max-size-x",a)},this.handleToggleNotifications=t=>{this.notificationsActive=t},this.handleToggleSearch=(t,i)=>{this.searchActive=t,this.searchTerm="",this.suggestions=void 0,document.documentElement.style.overflow=t?"hidden":this.initialDocumentOverflowStyle,!i&&requestAnimationFrame(()=>{if(t){this.searchInput?.value?.setFocus(),this.sizeSearchPopover();return}this.searchAction?.value?.setFocus()})},this.handleSearchTypeChange=t=>{this.searchType=t},this.searchInput=G(),this.searchAction=G(),this.searchPopover=G(),this.projectTitleInputRef=G(),this.projectButtonRef=G(),this.initialDocumentOverflowStyle=document.documentElement.style.overflow,this.links=[],this.notifications=[],this.notificationsActive=!1,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.currentPathname=window.location.pathname,this.arcgisNavigate=H(),this.arcgisNavigationProjectMenuClick=H(),this.arcgisNavigationSignIn=H(),this.arcgisNavigationSignOut=H()}static{this.properties={infoBanner:16,links:16,userLinks:16,notifications:16,notificationsActive: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,platformInfo: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,currentPathname:1,maxWidth:9}}static{this.styles=ka}#e;async loaded(){let{portal:t,messages:i,clientId:a,product:n}=this;this.calculateMeasurements(),this.productInfo=Qe({product:n,clientId:a,portal:t}),this.platformInfo=va({clientId:a,portal:t}),this.userLinks=ca({portal:t,messages:i.user,clientId:a}),this.notifications=await Ve({portal:t,locale:i._t9nLocale,t9n:i.notifications}),this.recentContent=await Xe({portal:t}),this.recentContentLoading=!1;let{apps:r,hiddenApps:o,signInSettings:s,licenses:l,userProperties:u}=await Mi({portal:t,trackViewerEnabled:!this.disableTrackViewer,notebookServerEnabled:!this.disableNotebookServer}),m=await Re(t);this.infoBanner=m?.informationalBanner,this.userProperties=u,this.apps=r,this.hiddenApps=o,this.sortedApps=r,this.previousAppState={apps:r,hiddenApps:o},this.appsLoading=!1,this.links=Gi({portal:t,messages:i.links,licenses:l,clientId:a,signInSettings:s}),this.calculateMeasurements()}connectedCallback(){super.connectedCallback(),this.initialDocumentOverflowStyle=document.documentElement.style.overflow,!(typeof ResizeObserver>"u")&&(this.#e=new ResizeObserver(()=>{requestAnimationFrame(()=>{this.screenWidth=window.innerWidth,this.updateBreakpoints(),this.sizeSearchPopover()})}))}firstUpdated(){this.el&&this.#e&&(this.#e.observe(this.el),this.screenWidth=window.innerWidth)}willUpdate(t){(t.has("product")||t.has("clientId"))&&this.hasUpdated&&(this.productInfo=Qe({product:this.product,clientId:this.clientId,portal:this.portal}))}disconnectedCallback(){this.#e?.disconnect(),this.#e=void 0,document.documentElement.style.overflow=this.initialDocumentOverflowStyle,super.disconnectedCallback()}calculateMeasurements(){let{links:t,messages:i,portal:a,product:n,productInfo:r,projectTitle:o}=this;if(a){let s=$a({portal:a,product:n,productInfo:r,links:t,messages:i.user,projectTitle:o});this.measurements=s,this.updateBreakpoints()}}updateBreakpoints(){let{measurements:t,maxWidth:i}=this;if(t){let a=i?Math.min(this.screenWidth,i):this.screenWidth,n=Aa({measurements:t,screenWidth:a});this.showProduct=n.product,this.showNav=n.nav,this.showUser=n.user}}render(){let{accountSwitcherOpen:t,apps:i,appsLoading:a,appsSearchTerm:n,currentPathname:r,handleAppCancel:o,handleAppDelete:s,handleAppHide:l,handleAppReorder:u,handleAppSave:m,handleItemSearch:v,handlePlatformClose:h,handleSearch:A,handleToggleSearch:w,handleSearchTypeChange:_,hiddenApps:S,infoBanner:I,links:d,messages:p,navigate:g,notifications:x,notificationsActive:T,notificationDeleteProgress:y,openAccountSwitcher:b,platformInfo:$,portal:f,portalItem:P,product:M,productInfo:te,productHref:U,projectTitle:D,editedProjectTitle:gt,handleProjectTitleSave:ft,handleProjectTitleEdit:vt,handleProjectTitleCancel:bt,handleToggleNotifications:we,openProjectTitleEdit:_t,openPlatformMenu:wt,platformMenuOpen:yt,projectTitleEditing:ie,projectTitleSaving:$t,projectTitleErrorMessage:At,projectMenuIcon:xt,projectMenuSaveIndicator:kt,projectMenuClick:St,projectMenuOptions:It,projectTitleInputRef:Tt,projectButtonRef:Pt,recentContent:jt,recentContentSearchTerm:Ct,recentContentLoading:Nt,userLinks:Mt,searchActive:F,searchTerm:Et,searchType:Dt,searchInput:Lt,searchAction:Ot,searchPopover:zt,showNav:ae,showProduct:Gt,showUser:Rt,suggestions:Wt}=this,Ft=f?.user,Ht=_e(M)&&!d?.length||!this.measurements;return c`<calcite-scrim class=${q({scrim:!0,"scrim--active":F})}></calcite-scrim><div class="wrapper" style=${ne({"--arcgis-portal-navigation-max-width":this.maxWidth?`${this.maxWidth}px`:"100%"})}><arcgis-portal-info-banner .config=${I}></arcgis-portal-info-banner>${f?.isPortal&&P?.loaded&&c`<arcgis-portal-classification-banner .portalItem=${P}></arcgis-portal-classification-banner>`||""}<header class=${q({navigation:!0,"navigation--loading":Ht})}>${Sa({messages:p?.platform,portal:f,showNav:ae,openPlatformMenu:wt,handleToggleSearch:w})}${Gt&&Jt({navigate:g,portal:f,product:M,productInfo:te,productHref:U,messages:p?.logo,showNav:ae,searchActive:F,projectTitleEditing:ie})||""}${Yi({navigate:g,portal:f,portalItem:P,messages:p?.project,projectTitle:D,editedProjectTitle:gt,handleProjectTitleSave:ft,handleProjectTitleEdit:vt,openProjectTitleEdit:_t,projectTitleErrorMessage:At,handleProjectTitleCancel:bt,projectTitleEditing:ie,projectTitleSaving:$t,projectMenuIcon:xt,projectMenuSaveIndicator:kt,projectMenuClick:St,projectMenuOptions:It,projectTitleInputRef:Tt,projectButtonRef:Pt})}${ae&&ra({searchActive:F,navigate:g,portal:f,product:M,messages:p?.links,links:d,currentPathname:r})||""}<div slot=content-end class="content-end fade-in" .hidden=${ie||F}><slot name=content-end></slot></div>${aa({currentPathname:r,navigate:g,portal:f,product:M,messages:p?.search,searchActive:F,searchType:Dt,searchTerm:Et,suggestions:Wt,handleSearch:A,handleToggleSearch:w,handleSearchTypeChange:_,searchInputRef:Lt,searchActionRef:Ot,searchPopoverRef:zt})}${Ft?c`<div class="border-start fade-in">${ai({notifications:x,notificationsActive:T,messages:p?.notifications,handleToggleNotifications:we,handleToggleSearch:w})}${ni({notificationsActive:T,notifications:x,navigate:g,portal:f,deleteNotifications:this.deleteNotifications,handleToggleNotifications:we,messages:p?.notifications,notificationDeleteProgress:y})}</div>${oa({portal:f,userLinks:Mt,openAccountSwitcher:f?.isPortal?void 0:b,signOut:this.signOut,messages:p?.user,textDisabled:Rt==="avatar",navigate:g})}`:na({messages:p.user,signIn:this.signIn})}</header>${qi({locale:p._t9nLocale,navigate:g,portal:f,product:M,platformInfo:$,messages:p?.platform,apps:i,appsLoading:a,hiddenApps:S,appsSearchTerm:n,editingApplications:this.editingApplications,open:yt,links:d,recentContent:jt,recentContentSearchTerm:Ct,recentContentLoading:Nt,handlePlatformClose:h,handleAppReorder:u,handleAppEdit:()=>this.editingApplications=!0,handleAppDelete:s,handleAppsSearch:Bt=>this.appsSearchTerm=Bt,handleAppSave:m,handleAppCancel:o,handleAppHide:l,handleItemSearch:v})}${t&&c`<arcgis-portal-account-switcher .portal=${f} @arcgisClose=${()=>{this.accountSwitcherOpen=!1}}></arcgis-portal-account-switcher>`||""}</div>`}};xe("arcgis-portal-navigation",ge);return ge},"intl","portal/Portal","identity/IdentityManager",a,b,d,e,f,g)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import c from"./55FL7WQV.js";import b from"./A4AA5T6M.js";import{a as Gl,c as Vl,e as Wl,f as Hl,g as Jl}from"./UZCHLKLO.js";import a from"./F3ODJVJC.js";import"./VMQIDO4Z.js";import"./QS3GXAIH.js";import{a as en,b as _l,d as Fn}from"./2GBRZSEC.js";import{a as wl}from"./W3UBNVKL.js";import"./QZD2UBOW.js";import"./JVGCIDQW.js";import{K as Yo,L as Xo,M as gl,S as yl,h as pl,j as ve,n as ml,w as fl,z as hl}from"./6BUBZ7WC.js";import{$ as wa,Aa as zl,Ca as Ll,Cb as on,Da as Yn,Ea as Xn,Fa as jl,Ga as br,Gb as es,Ha as Ar,Hb as ts,Ia as v,Ib as ce,J as Al,Ja as E,K as ge,Ka as Ia,L as Et,La as va,M as xl,Ma as Ta,N as Il,O as Bn,P as ga,Q as ya,R as Kn,S as tn,T as B,U as _a,V as F,W as st,Wa as M,X as at,Y as Gn,Z as vl,_ as Tl,a as ue,aa as Vn,b as K,ba as Sl,ca as Cl,da as rn,ea as Wn,fa as kl,g as bl,ga as El,ha as Ml,ia as Hn,j as Be,ja as Pl,k as kt,ka as Mt,la as ba,ma as Jn,na as $,oa as A,pa as Pt,pb as Dl,qa as it,ra as Ol,s as Un,sa as Zn,ta as Rl,ua as Nl,va as Qn,wa as Aa,xa as wr,y as qn,ya as xa,za as $l}from"./JCYCRSPL.js";import"./UZLQALHY.js";export default $arcgis.t(([ZV,YV,Ld,jd,dy,py,vy,nW,aW,
|
|
2
|
+
import c from"./55FL7WQV.js";import b from"./A4AA5T6M.js";import{a as Gl,c as Vl,e as Wl,f as Hl,g as Jl}from"./UZCHLKLO.js";import a from"./F3ODJVJC.js";import"./VMQIDO4Z.js";import"./QS3GXAIH.js";import{a as en,b as _l,d as Fn}from"./2GBRZSEC.js";import{a as wl}from"./W3UBNVKL.js";import"./QZD2UBOW.js";import"./JVGCIDQW.js";import{K as Yo,L as Xo,M as gl,S as yl,h as pl,j as ve,n as ml,w as fl,z as hl}from"./6BUBZ7WC.js";import{$ as wa,Aa as zl,Ca as Ll,Cb as on,Da as Yn,Ea as Xn,Fa as jl,Ga as br,Gb as es,Ha as Ar,Hb as ts,Ia as v,Ib as ce,J as Al,Ja as E,K as ge,Ka as Ia,L as Et,La as va,M as xl,Ma as Ta,N as Il,O as Bn,P as ga,Q as ya,R as Kn,S as tn,T as B,U as _a,V as F,W as st,Wa as M,X as at,Y as Gn,Z as vl,_ as Tl,a as ue,aa as Vn,b as K,ba as Sl,ca as Cl,da as rn,ea as Wn,fa as kl,g as bl,ga as El,ha as Ml,ia as Hn,j as Be,ja as Pl,k as kt,ka as Mt,la as ba,ma as Jn,na as $,oa as A,pa as Pt,pb as Dl,qa as it,ra as Ol,s as Un,sa as Zn,ta as Rl,ua as Nl,va as Qn,wa as Aa,xa as wr,y as qn,ya as xa,za as $l}from"./JCYCRSPL.js";import"./UZLQALHY.js";export default $arcgis.t(([ZV,YV,Ld,jd,dy,py,vy,nW,aW,IZ,WA,pp,Wo,mp,,yp,,{createRenderer:C_},{getSchemesByTag:k_,getSchemes:E_},{getBackgroundColorTheme:fp},{createAgeRenderer:M_,createContinuousRenderer:P_},{getSchemesByTag:Zi},{createContinuousRenderer:O_},{createRenderer:R_},{getSchemesByTag:N_},{createRenderer:$_},{getSchemesByTag:z_},{createRenderer:L_},{getSchemesByTag:j_},{createRenderer:D_},{getSchemesByTag:F_},{createAgeRenderer:U_,createContinuousRenderer:q_},{createRenderer:B_},{getSchemesByTag:K_},zy,Ly,Ny,ep,{formatDateOnly:Gy,convertDateFormatToIntlOptions:Xs,formatTimeOnly:Vy,formatDate:tp},s_,a_,i_,m_,f_,G_,_p,,{fetchKnowledgeGraph:hp,executeQueryStreaming:V_,executeSearchStreaming:W_},H_,{getBindParametersFromCypherQuery:J_},,,,,,,Yi,rA,oA,{addressToLocations:nA},sA,_A,$A,,,,,,,,,,,,,,,,,,,WJ,JJ,,,,,,,,,,,,,HA,Cp,JA,,{a:Bl,b:Kl},{a:Fl,b:Ul,c:ql}])=>{var lt=(t,e)=>e,Sa=(t,e)=>({...t,...e}),Ca=(t="",e)=>{let r=typeof e=="string"?e.trim():"";if(!r)return t;let o=t.trim();if(!o)return r;if(o===r)return t;let n=o.split(`
|
|
3
3
|
|
|
4
4
|
`);return n[n.length-1]?.trim()===r?t:`${t}
|
|
5
5
|
|
|
@@ -167,7 +167,7 @@ Fields: This typically requires zero or one field of type number.`,schema:Ow});f
|
|
|
167
167
|
Description: Represent features as categories with different symbol colors or shapes. Examples include type of tree, road class, or province name.
|
|
168
168
|
Keywords: categorical, category, type, unique, discrete, point of interest, region, group
|
|
169
169
|
Example: Color each feature based on the region it belongs to
|
|
170
|
-
Fields: This style requires a single field which may be a string, number, or date type. It is usually a string.`,schema:lb}),cb=M.Root({...Ot(),vectorSearchLayerIds:M(),vectorSearchFieldResults:M(),layerFieldInfo:M(),selectedLayerId:M()}),db=M.Root({...Ot(),vectorSearchLayerIds:M(),vectorSearchFieldResults:M(),layerFieldInfo:M(),queryResponse:M(),dataExplorationMessages:M({reducer:on,default:()=>[]})}),wp=[lp,up,cp,dp];var JH=new ot(wp,{handleToolErrors:!1});var pb=M.Root({...Ot(),helpInternalState:M({reducer:$n,default:()=>({toolCallMessage:void 0})})}),mb=M.Root({...Ot(),intent:M({reducer:(t,e)=>e}),arcgisKnowledgeMessages:M({reducer:on,default:()=>[]}),arcgisKnowledgeToolResult:M({reducer:(t,e)=>e,default:()=>null})});function bp(t){let e=t.map?.allLayers.filter(r=>r.type==="knowledge-graph");if(!e||e?.length!==1)throw new Error("The Knowledge Agent currently only supports maps with exactly one Knowledge Graph Layer.")}function Ho(t){return!!t?.map
|
|
170
|
+
Fields: This style requires a single field which may be a string, number, or date type. It is usually a string.`,schema:lb}),cb=M.Root({...Ot(),vectorSearchLayerIds:M(),vectorSearchFieldResults:M(),layerFieldInfo:M(),selectedLayerId:M()}),db=M.Root({...Ot(),vectorSearchLayerIds:M(),vectorSearchFieldResults:M(),layerFieldInfo:M(),queryResponse:M(),dataExplorationMessages:M({reducer:on,default:()=>[]})}),wp=[lp,up,cp,dp];var JH=new ot(wp,{handleToolErrors:!1});var pb=M.Root({...Ot(),helpInternalState:M({reducer:$n,default:()=>({toolCallMessage:void 0})})}),mb=M.Root({...Ot(),intent:M({reducer:(t,e)=>e}),arcgisKnowledgeMessages:M({reducer:on,default:()=>[]}),arcgisKnowledgeToolResult:M({reducer:(t,e)=>e,default:()=>null})});function bp(t){let e=t.map?.allLayers.filter(r=>r.type==="knowledge-graph");if(!e||e?.length!==1)throw new Error("The Knowledge Agent currently only supports maps with exactly one Knowledge Graph Layer.")}function Ho(t){return!!t?.map&&"activeLinkChartLayer"in t.map}async function na(t){!Ho(t)||!t.map.diagramNodesExtent||await t.goTo(t.map.diagramNodesExtent)}function Ln(t){let e=t?.configurable?.context;if(!e||typeof e!="object")throw new Error("ArcgisKnowledgeAgent context missing");if(!("view"in e))throw new Error("View context missing");let r=e.view;return r.map&&!("activeLinkChartLayer"in r.map)&&bp(r),{view:r}}async function Jo(t){let e=t?.configurable?.context;if(fb(t)==="knowledgeGraph")return e;{let r=e.view.map;if(r&&"activeLinkChartLayer"in r){let o=r.knowledgeGraph?.url;if(!o)throw new Error("Knowledge graph url missing from link chart.");return{knowledgeGraph:await hp(o)}}else{bp(e.view);let o=(e.view.map?.allLayers.find(n=>n.type==="knowledge-graph")).url;if(!o)throw new Error("Knowledge graph url missing from map.");return{knowledgeGraph:await hp(o)}}}}function fb(t){let e=t?.configurable?.context;if(!e||typeof e!="object")throw new Error("ArcgisKnowledgeAgent context missing");if("knowledgeGraph"in e&&"view"in e)throw new Error("Knowledge Graph context should only have a view or knowledgeGraph, but never both.");if("knowledgeGraph"in e)return"knowledgeGraph";if("view"in e)return"view";throw new Error("ArcgisKnowledgeAgent context must have either a view or knowledgeGraph property.")}var Bi=class{constructor(e){this.dataModel=e,this.kind="GraphQueryGenerationRequest",this.explainQuery=!0,this.schemaInformation=oa.fromDataModel(e)}},oa=class t{constructor(){this.schemaType="ArcgisGraphSchema",this.entityTypes=[],this.relationshipTypes=[],this.identifierInfo={mappingInfo:{identifierMapsTo:"UniformPropertyIdentifier",identifierPropertyName:"globalid"}}}static fromDataModel(e){let r=new t;for(let o of e.entityTypes)r.entityTypes.push(zn.fromEntityType(o));for(let o of e.relationshipTypes)r.relationshipTypes.push(Ki.fromRelationshipType(o));return r.identifierInfo={mappingInfo:{identifierMapsTo:hb(e.identifierInfo.identifierMappingInfo.identifierInfoType),identifierPropertyName:e.identifierInfo.identifierMappingInfo.uniformPropertyIdentifier.identifierPropertyName}},r.spatialReference=JSON.parse(JSON.stringify(e.spatialReference)),r}static getDataModelTypesSummary(e){let r=e.entityTypes.map(n=>n.name).join(", "),o=e.relationshipTypes.map(n=>n.name).join(", ");return`Entity Types: ${r}.
|
|
171
171
|
Relationship Types: ${o}.`}},zn=class t{constructor(){this.name="",this.properties=[]}static fromEntityType(e){let r=new t;r.name=e.name,r.alias=e.alias?e.alias:void 0,r.role=gb(e.role);for(let o of e.properties){let n={name:o.name,alias:o.alias?o.alias:void 0,fieldType:o.fieldType,role:yb(o.role),geometryDef:o.fieldType==="esriFieldTypeGeometry"?{geometryType:o.geometryType??"esriGeometryAny",hasM:o.hasM?o.hasM:void 0,hasZ:o.hasZ?o.hasZ:void 0}:void 0};r.properties.push(n)}return r}},Ki=class extends zn{constructor(){super(...arguments),this.observedEndPoints=[]}static fromRelationshipType(e){let r=zn.fromEntityType(e);r.observedEndPoints=[];for(let o of e.endPoints)r.observedEndPoints.push({originEntityType:o.originEntityType,destinationEntityType:o.destinationEntityType});return r}},hb=t=>{switch(t){case"esriIdentifierInfoTypeUNSPECIFIED":return"UNSPECIFIED";case"esriIdentifierInfoTypeDatabaseNative":return"DatabaseNative";case"esriIdentifierInfoTypeUniformProperty":return"UniformPropertyIdentifier";default:return t}},gb=t=>{switch(t){case"Regular":return"esriGraphNamedObjectRegular";case"Provenance":return"esriGraphNamedObjectProvenance";case"Document":return"esriGraphNamedObjectDocument";default:return t}};function yb(t){switch(t){case"esriGraphPropertyRegular":return"Regular";case"esriGraphPropertyDocumentName":return"Document_Name";case"esriGraphPropertyDocumentTitle":return"Document_Title";case"esriGraphPropertyDocumentUrl":return"Document_Url";case"esriGraphPropertyDocumentText":return"Document_Text";case"esriGraphPropertyDocumentKeywords":return"Document_Keywords";case"esriGraphPropertyDocumentContentType":return"Document_ContentType";case"esriGraphPropertyDocumentMetadata":return"Document_Metadata";case"esriGraphPropertyDocumentFileExtension":return"Document_FileExtension";case"esriGraphPropertyProvenanceInstanceId":return"Provenance_InstanceId";case"esriGraphPropertyProvenanceSourceType":return"Provenance_SourceType";case"esriGraphPropertyProvenanceSourceName":return"Provenance_SourceName";case"esriGraphPropertyProvenanceSource":return"Provenance_Source";case"esriGraphPropertyProvenanceComment":return"Provenance_Comment";case"esriGraphPropertyProvenanceTypeName":return"Provenance_TypeName";case"esriGraphPropertyProvenancePropertyName":return"Provenance_PropertyName";default:return"Regular"}}function sa(t){return t?.signal}async function _b(t,e){let r=await nt("arcgis_knowledge_cypher_query_prompt");return e?`${t} ${r}
|
|
172
172
|
|
|
173
173
|
Your previous attempt to generate a cypher query failed. See the details below and generate a new cypher query that avoids this error.
|
|
@@ -175,13 +175,13 @@ Your previous attempt to generate a cypher query failed. See the details below a
|
|
|
175
175
|
Attempt Number: ${e.attemptCount}
|
|
176
176
|
Execution Error: ${e.executionError}
|
|
177
177
|
Failed Query:
|
|
178
|
-
${e.failedGraphQuery}`:`${t} ${r}`}async function wb(t,e,r,o){let{graphQuery:n,explanation:s}=await Qi(t,e,r,o);return{graphQuery:n,explanation:s}}async function Qi(t,e,r,o,n){let s={message:await _b(t,n),context:new Bi(e)},a=sa(o);await J({text:"Attempting to generate a cypher query from your prompt..."},o);let i=await mp(`${r}/chat`,{method:"post",body:JSON.stringify(s),headers:{"Content-Type":"application/json",token:pp.findCredential(Wo.getDefault().url)?.token??""},signal:a});if(i.httpStatus!==200)throw new Error(`Graph query service returned an error: ${i.httpStatus}`,{cause:i.data});let u=!1,l=Date.now(),d=i.data.sequenceNumber,p="",f="",x=1;for(;!u;){await new Promise(b=>setTimeout(b,1e3)),await J({text:`Periodically requesting status of job from ArcGIS AI Services${"...".substring(0,x)}`},o),x=x%3+1;let w=await mp(`${r}/chat`,{method:"post",body:JSON.stringify({conversationId:i.data.conversationId,inquiryId:i.data.inquiryId,ackSequenceNumber:d}),headers:{"Content-Type":"application/json",token:pp.findCredential(Wo.getDefault().url)?.token??""},signal:a});if(w.httpStatus!==200)throw new Error(`Graph query service polling returned an error: ${w.httpStatus}`,{cause:w.data});if(w.data.context?.kind){if(w.data.context.kind!=="GraphQueryGenerationResponse")throw new Error(`Unexpected response from graph query service polling. Message: ${w.data.message}`,{cause:w.data});p=w.data.context.graphQuery,f=w.data.message||"",u=!0}else if(!w.data.hasMore)u=!0;else if(Date.now()-l>6e4)throw new Error("Graph query service polling timed out after 1 minute.");d=w.data.sequenceNumber}return{graphQuery:p,explanation:f}}function bb(t,e){Go(t,r=>{e.set(`${r.typeName}__${r.id}`,{id:r.id,typeName:r.typeName})})}function Go(t,e){if(!(!t||typeof t!="object")){if(xb(t))for(let r of t.path)Go(r,e);else if(Ab(t))e(t);else if(Array.isArray(t))for(let r of t)Go(r,e);else if(Ib(t))for(let r of Object.values(t.properties??{}))Go(r,e)}}function Ab(t){return!t||typeof t!="object"||Array.isArray(t)?!1:"id"in t&&"typeName"in t}function xb(t){return!t||typeof t!="object"||Array.isArray(t)?!1:t&&"path"in t&&Array.isArray(t.path)}function Ib(t){return!t||typeof t!="object"||Array.isArray(t)||"id"in t?!1:"properties"in t&&typeof t.properties=="object"}function vb(t,e){let r=[],o=[],n=[[e.dataModel.entityTypes,r],[e.dataModel.relationshipTypes,o]];for(let[s,a]of n)for(let i of s){let u=t.getMemberIdsByType(i.name);a.push(...u)}return{entityIds:r,relationshipIds:o}}function Tb(t,e){let r={entityIds:new Array,relationshipIds:new Array},o=[],n=t?.allLayers.find(i=>i.type==="knowledge-graph")?.inclusionModeDefinition;if(!n)return{allNamedTypesFullyDynamic:!0,bindParameters:r,nonDynamicTypes:o};let s=[[e.dataModel.entityTypes,r.entityIds],[e.dataModel.relationshipTypes,r.relationshipIds]],a=!0;for(let[i,u]of s)for(let l of i){let d=n.namedTypeDefinitions.get(l.name);if(!d){a=!1,o.push(l.name);continue}if(!d.useAllData){a=!1,o.push(l.name);for(let[p]of d.members||[])u.push(p)}}return{allNamedTypesFullyDynamic:a,bindParameters:r,nonDynamicTypes:o}}var Vo=3;function Ap(t,e=100){let r={};for(let o of Object.entries(t.properties??{})){let[n,s]=o;typeof s=="string"&&s.length>e?r[n]=`${s.slice(0,e)}... (truncated, original length: ${s.length})`:r[n]=s}return t.properties=r,t}function Zo(t){return typeof t!="object"||t===null?String(t):"details"in t&&typeof t.details=="object"&&t.details!==null&&"errorMessage"in t.details&&typeof t.details.errorMessage=="string"?t.details.errorMessage:"message"in t&&typeof t.message=="string"?t.message:String(t)}var Sb=async({kg:t,queryParams:e,targetStructure:r,targetStructureReducer:o,requestOptions:n,queryRowLimit:s,queryTimeoutMs:a})=>{let i=null,u=r,l=new AbortController,d=n?.signal,p=()=>{l.abort(d?.reason)};d&&(d.aborted?l.abort(d.reason):d.addEventListener("abort",p,{once:!0}));try{let f=await V_(t,e,n);i=f.resultHeader;let x=f.resultRowsStream.getReader(),w=0,b=Date.now(),y=!1;for(;;){let{done:S,value:h}=await x.read();if(S)break;if(!y&&a&&Date.now()-b>a)return l.abort(),{type:"timeout"};for(let I of h){if(w++,s&&w>s)return l.abort(),{type:"success",rowLimitReached:!0,resultHeader:i,processedResult:u};u=o(u,I)}}}catch(f){return l.signal.aborted?{type:"aborted"}:{type:"error",errorMessage:Zo(f),error:f}}finally{d?.removeEventListener("abort",p)}return{type:"success",rowLimitReached:!1,resultHeader:i,processedResult:u}};async function xp({prompt:t,bindParameters:e,kg:r,graphQueryServiceUrl:o,targetStructure:n,targetStructureReducer:s,requestOptions:a,queryRowLimit:i,queryTimeoutMs:u,config:l}){let d;for(let p=1;p<=Vo;p++){let f;try{f=await Qi(t,r.dataModel,o,l,d)}catch(y){return{type:"generation-error",errorMessage:Zo(y),error:y}}await J({text:`Attempting to execute query: ${f.graphQuery.substring(0,500)}${f.graphQuery.length>500?"...":""}`},l);let x=await Cb(f.graphQuery,e),w=await Sb({kg:r,queryParams:new _p({openCypherQuery:f.graphQuery,bindParameters:x}),targetStructure:n,targetStructureReducer:s,requestOptions:a,queryRowLimit:i,queryTimeoutMs:u}),b=w.type==="aborted"?"Query execution was aborted.":w.type==="timeout"?"Query execution timed out.":w.type==="error"?`Query failed with error: ${w.errorMessage}`:"";if(w.type==="success")return{type:"success",graphQuery:f.graphQuery,explanation:f.explanation,rowLimitReached:w.rowLimitReached,resultHeader:w.resultHeader,processedResult:w.processedResult};if(w.type==="aborted")return{type:"aborted",errorMessage:b,graphQuery:f.graphQuery,explanation:f.explanation};if(p>=Vo)return w.type==="timeout"?{type:"timeout",errorMessage:b,graphQuery:f.graphQuery,explanation:f.explanation}:{type:"execution-error",errorMessage:b,error:w.error,graphQuery:f.graphQuery,explanation:f.explanation};d={failedGraphQuery:f.graphQuery,executionError:b,attemptCount:p},await J({text:`Attempt ${p} failed with error: ${b}. Retrying...`},l)}throw new Error(`Failed to execute generated cypher due to an unexpected error after ${Vo} attempts.`)}var Cb=async(t,e)=>{if(!e)return{};let{bindParameters:r,parseErrors:o}=await J_(t);if(o)return e;let n={};for(let s of r)s in e&&(n[s]=e[s]);return n},kb=async({kg:t,searchQuery:e,typeCategoryFilter:r,namedTypesFilter:o,searchResultLimit:n,requestOptions:s})=>{let a=[],i=[r];r==="both"&&!t.serviceDefinition.serviceCapabilities.searchCapabilities.searchTypeFilterCapabilities.includes("esriTypeBoth")&&(i=["entity","relationship"]);let u=n??1/0;try{for(let l of i){let d=u-a.length;if(d<=0)break;let p=(await W_(t,new H_({searchQuery:e,typeCategoryFilter:l,namedTypesFilter:o??void 0,num:d}),s)).resultRowsStream.getReader(),f=!1;for(;!f;){let{done:x,value:w}=await p.read();if(x){f=!0;break}for(let b of w)for(let y of b)a.push(y)}}}catch(l){let d=Zo(l);return s?.signal?.aborted?{type:"aborted",errorMessage:d,error:l}:{type:"error",errorMessage:d,error:l}}return{type:"success",results:a}},Ip="IMPORTANT: The generated cypher query must return entire entities and relationships ONLY.";async function vp({prompt:t,view:e,knowledgeGraph:r,includeReturnEntityAndRelationshipContext:o=!1}){let n=[t];if(o&&n.push(Ip)
|
|
178
|
+
${e.failedGraphQuery}`:`${t} ${r}`}async function wb(t,e,r,o){let{graphQuery:n,explanation:s}=await Qi(t,e,r,o);return{graphQuery:n,explanation:s}}async function Qi(t,e,r,o,n){let s={message:await _b(t,n),context:new Bi(e)},a=sa(o);await J({text:"Attempting to generate a cypher query from your prompt..."},o);let i=await mp(`${r}/chat`,{method:"post",body:JSON.stringify(s),headers:{"Content-Type":"application/json",token:pp.findCredential(Wo.getDefault().url)?.token??""},signal:a});if(i.httpStatus!==200)throw new Error(`Graph query service returned an error: ${i.httpStatus}`,{cause:i.data});let u=!1,l=Date.now(),d=i.data.sequenceNumber,p="",f="",x=1;for(;!u;){await new Promise(b=>setTimeout(b,1e3)),await J({text:`Periodically requesting status of job from ArcGIS AI Services${"...".substring(0,x)}`},o),x=x%3+1;let w=await mp(`${r}/chat`,{method:"post",body:JSON.stringify({conversationId:i.data.conversationId,inquiryId:i.data.inquiryId,ackSequenceNumber:d}),headers:{"Content-Type":"application/json",token:pp.findCredential(Wo.getDefault().url)?.token??""},signal:a});if(w.httpStatus!==200)throw new Error(`Graph query service polling returned an error: ${w.httpStatus}`,{cause:w.data});if(w.data.context?.kind){if(w.data.context.kind!=="GraphQueryGenerationResponse")throw new Error(`Unexpected response from graph query service polling. Message: ${w.data.message}`,{cause:w.data});p=w.data.context.graphQuery,f=w.data.message||"",u=!0}else if(!w.data.hasMore)u=!0;else if(Date.now()-l>6e4)throw new Error("Graph query service polling timed out after 1 minute.");d=w.data.sequenceNumber}return{graphQuery:p,explanation:f}}function bb(t,e){Go(t,r=>{e.set(`${r.typeName}__${r.id}`,{id:r.id,typeName:r.typeName})})}function Go(t,e){if(!(!t||typeof t!="object")){if(xb(t))for(let r of t.path)Go(r,e);else if(Ab(t))e(t);else if(Array.isArray(t))for(let r of t)Go(r,e);else if(Ib(t))for(let r of Object.values(t.properties??{}))Go(r,e)}}function Ab(t){return!t||typeof t!="object"||Array.isArray(t)?!1:"id"in t&&"typeName"in t}function xb(t){return!t||typeof t!="object"||Array.isArray(t)?!1:t&&"path"in t&&Array.isArray(t.path)}function Ib(t){return!t||typeof t!="object"||Array.isArray(t)||"id"in t?!1:"properties"in t&&typeof t.properties=="object"}function vb(t,e){let r=[],o=[],n=[[e.dataModel.entityTypes,r],[e.dataModel.relationshipTypes,o]];for(let[s,a]of n)for(let i of s){let u=t.getMemberIdsByType(i.name);a.push(...u)}return{entityIds:r,relationshipIds:o}}function Tb(t,e){let r={entityIds:new Array,relationshipIds:new Array},o=[],n=t?.allLayers.find(i=>i.type==="knowledge-graph")?.inclusionModeDefinition;if(!n)return{allNamedTypesFullyDynamic:!0,bindParameters:r,nonDynamicTypes:o};let s=[[e.dataModel.entityTypes,r.entityIds],[e.dataModel.relationshipTypes,r.relationshipIds]],a=!0;for(let[i,u]of s)for(let l of i){let d=n.namedTypeDefinitions.get(l.name);if(!d){a=!1,o.push(l.name);continue}if(!d.useAllData){a=!1,o.push(l.name);for(let[p]of d.members||[])u.push(p)}}return{allNamedTypesFullyDynamic:a,bindParameters:r,nonDynamicTypes:o}}var Vo=3;function Ap(t,e=100){let r={};for(let o of Object.entries(t.properties??{})){let[n,s]=o;typeof s=="string"&&s.length>e?r[n]=`${s.slice(0,e)}... (truncated, original length: ${s.length})`:r[n]=s}return t.properties=r,t}function Zo(t){return typeof t!="object"||t===null?String(t):"details"in t&&typeof t.details=="object"&&t.details!==null&&"errorMessage"in t.details&&typeof t.details.errorMessage=="string"?t.details.errorMessage:"message"in t&&typeof t.message=="string"?t.message:String(t)}var Sb=async({kg:t,queryParams:e,targetStructure:r,targetStructureReducer:o,requestOptions:n,queryRowLimit:s,queryTimeoutMs:a})=>{let i=null,u=r,l=new AbortController,d=n?.signal,p=()=>{l.abort(d?.reason)};d&&(d.aborted?l.abort(d.reason):d.addEventListener("abort",p,{once:!0}));try{let f=await V_(t,e,n);i=f.resultHeader;let x=f.resultRowsStream.getReader(),w=0,b=Date.now(),y=!1;for(;;){let{done:S,value:h}=await x.read();if(S)break;if(!y&&a&&Date.now()-b>a)return l.abort(),{type:"timeout"};for(let I of h){if(w++,s&&w>s)return l.abort(),{type:"success",rowLimitReached:!0,resultHeader:i,processedResult:u};u=o(u,I)}}}catch(f){return l.signal.aborted?{type:"aborted"}:{type:"error",errorMessage:Zo(f),error:f}}finally{d?.removeEventListener("abort",p)}return{type:"success",rowLimitReached:!1,resultHeader:i,processedResult:u}};async function xp({prompt:t,bindParameters:e,kg:r,graphQueryServiceUrl:o,targetStructure:n,targetStructureReducer:s,requestOptions:a,queryRowLimit:i,queryTimeoutMs:u,config:l}){let d;for(let p=1;p<=Vo;p++){let f;try{f=await Qi(t,r.dataModel,o,l,d)}catch(y){return{type:"generation-error",errorMessage:Zo(y),error:y}}await J({text:`Attempting to execute query: ${f.graphQuery.substring(0,500)}${f.graphQuery.length>500?"...":""}`},l);let x=await Cb(f.graphQuery,e),w=await Sb({kg:r,queryParams:new _p({openCypherQuery:f.graphQuery,bindParameters:x}),targetStructure:n,targetStructureReducer:s,requestOptions:a,queryRowLimit:i,queryTimeoutMs:u}),b=w.type==="aborted"?"Query execution was aborted.":w.type==="timeout"?"Query execution timed out.":w.type==="error"?`Query failed with error: ${w.errorMessage}`:"";if(w.type==="success")return{type:"success",graphQuery:f.graphQuery,explanation:f.explanation,rowLimitReached:w.rowLimitReached,resultHeader:w.resultHeader,processedResult:w.processedResult};if(w.type==="aborted")return{type:"aborted",errorMessage:b,graphQuery:f.graphQuery,explanation:f.explanation};if(p>=Vo)return w.type==="timeout"?{type:"timeout",errorMessage:b,graphQuery:f.graphQuery,explanation:f.explanation}:{type:"execution-error",errorMessage:b,error:w.error,graphQuery:f.graphQuery,explanation:f.explanation};d={failedGraphQuery:f.graphQuery,executionError:b,attemptCount:p},await J({text:`Attempt ${p} failed with error: ${b}. Retrying...`},l)}throw new Error(`Failed to execute generated cypher due to an unexpected error after ${Vo} attempts.`)}var Cb=async(t,e)=>{if(!e)return{};let{bindParameters:r,parseErrors:o}=await J_(t);if(o)return e;let n={};for(let s of r)s in e&&(n[s]=e[s]);return n},kb=async({kg:t,searchQuery:e,typeCategoryFilter:r,namedTypesFilter:o,searchResultLimit:n,requestOptions:s})=>{let a=[],i=[r];r==="both"&&!t.serviceDefinition.serviceCapabilities.searchCapabilities.searchTypeFilterCapabilities.includes("esriTypeBoth")&&(i=["entity","relationship"]);let u=n??1/0;try{for(let l of i){let d=u-a.length;if(d<=0)break;let p=(await W_(t,new H_({searchQuery:e,typeCategoryFilter:l,namedTypesFilter:o??void 0,num:d}),s)).resultRowsStream.getReader(),f=!1;for(;!f;){let{done:x,value:w}=await p.read();if(x){f=!0;break}for(let b of w)for(let y of b)a.push(y)}}}catch(l){let d=Zo(l);return s?.signal?.aborted?{type:"aborted",errorMessage:d,error:l}:{type:"error",errorMessage:d,error:l}}return{type:"success",results:a}},Ip="IMPORTANT: The generated cypher query must return entire entities and relationships ONLY.";async function vp({prompt:t,view:e,knowledgeGraph:r,includeReturnEntityAndRelationshipContext:o=!1}){let n=[t];if(o&&n.push(Ip),Ho(e)){let d=await nt("arcgis_knowledge_current_lc_context"),p=vb(e.map,r);return n.push(d),{enhancedPrompt:n.join(`
|
|
179
179
|
|
|
180
180
|
`),bindParameters:p,allNamedTypesFullyDynamic:!1}}let s=e.map,{allNamedTypesFullyDynamic:a,bindParameters:i,nonDynamicTypes:u}=Tb(s,r);if(a)return{enhancedPrompt:n.join(`
|
|
181
181
|
|
|
182
182
|
`),bindParameters:i,allNamedTypesFullyDynamic:!0};let l=(await nt("arcgis_knowledge_current_map_context")).replaceAll("{nonDynamicTypes}",JSON.stringify(u));return n.push(l),{enhancedPrompt:n.join(`
|
|
183
183
|
|
|
184
|
-
`),bindParameters:i,allNamedTypesFullyDynamic:a}}async function Eb(t,e,r,o,n,s){let{view:a}=n,i=await xp({prompt:t,bindParameters:e,kg:r,graphQueryServiceUrl:o,targetStructure:new Map,targetStructureReducer:(f,x)=>{for(let w of x)bb(w,f);return f},requestOptions:{signal:sa(s),timeout:s?.timeout},config:s});if(i.type!=="success"){let f=i.type==="generation-error"?i.errorMessage:`${i.errorMessage} Cypher query: ${i.graphQuery}`;throw new Error(`Failed to add records to the link chart. ${f}`)}let{graphQuery:u,explanation:l,processedResult:d}=i,p=Array.from(d.values());return await J({text:`Query Results parsed into ${p.length} unique relationships and entities. Atempting to add to link chart...`},s)
|
|
184
|
+
`),bindParameters:i,allNamedTypesFullyDynamic:a}}async function Eb(t,e,r,o,n,s){let{view:a}=n,i=await xp({prompt:t,bindParameters:e,kg:r,graphQueryServiceUrl:o,targetStructure:new Map,targetStructureReducer:(f,x)=>{for(let w of x)bb(w,f);return f},requestOptions:{signal:sa(s),timeout:s?.timeout},config:s});if(i.type!=="success"){let f=i.type==="generation-error"?i.errorMessage:`${i.errorMessage} Cypher query: ${i.graphQuery}`;throw new Error(`Failed to add records to the link chart. ${f}`)}let{graphQuery:u,explanation:l,processedResult:d}=i,p=Array.from(d.values());return await J({text:`Query Results parsed into ${p.length} unique relationships and entities. Atempting to add to link chart...`},s),Ho(a)?(await a.map.addRecords(p),await na(a),{generatedQuery:u,explanation:l,addedIdTypePairs:p}):(await a?.map?.allLayers.find(f=>f.type==="knowledge-graph")?.addRecords(p),{generatedQuery:u,explanation:l,addedIdTypePairs:p})}var ta="addRecords",Mb=c.object({prompt:c.string().describe("The user's inquiry and context required in order to generate a cypher query that will be used to add records to the link chart.")}),Pb=async({prompt:t},e)=>{let{knowledgeGraph:r}=await Jo(e),o=Ln(e),{view:n}=o,s=Wo.getDefault().helperServices,{enhancedPrompt:a,bindParameters:i,allNamedTypesFullyDynamic:u}=await vp({prompt:t,view:n,knowledgeGraph:r,includeReturnEntityAndRelationshipContext:!0});if(u)return{toolName:ta,status:"success",summary:"No records have been added to the map because all data in the knowledge graph is contained in the map.",details:{generatedQuery:"N/A",explanation:"All named types in the knowledge graph are fully dynamic and therefore all data is already contained in the map. No records have been added.",addedIdTypePairs:[]}};try{let{generatedQuery:l,explanation:d,addedIdTypePairs:p}=await Eb(a,i,r,`${s.aiAssistantServices.url}${s.aiAssistantServices.graphQueryAssistant}`,o,e);return{toolName:ta,status:"success",summary:`Records added successfully. Cypher Query used: ${l}
|
|
185
185
|
|
|
186
186
|
Number of records added: ${p.length}`,details:{generatedQuery:l,explanation:d,addedIdTypePairs:p}}}catch(l){let d=Zo(l);return{toolName:ta,status:"error",errorMessage:`Failed to add records to the link chart. ${d}`,error:l}}},Ob=E(Pb,{name:ta,description:`Adds records (entities or relationships) to the current link chart visualization from an inquiry into the knowledge graph data. The inquiry will retrieve data from the graph database that will serve as the basis for the records to be added to the link chart. The user should have explicitly requested to add records to the current link chart from their prompt. "add to new link chart" is not a valid prompt for this tool.
|
|
187
187
|
|
|
@@ -193,15 +193,15 @@ Number of records added: ${p.length}`,details:{generatedQuery:l,explanation:d,ad
|
|
|
193
193
|
- "expand company x through all the buildings it owns"
|
|
194
194
|
- "connect company x and company y"
|
|
195
195
|
- "connect all buildings on the link chart"
|
|
196
|
-
`,schema:Mb});async function Rb(t,e){return await e.map?.applyLayout(t),await na(e),{appliedLayout:t}}var Gi="applyLayout",Nb=c.object({layout:c.enum(["organic-standard","organic-community","basic-grid","hierarchical-bottom-to-top","radial-root-centric","tree-left-to-right","geographic-organic-standard","chronological-mono-timeline","chronological-multi-timeline"]).describe("The layout mode to apply to the link chart. The value must be one of the following: organic-standard, organic-community, basic-grid, hierarchical-bottom-to-top, radial-root-centric, tree-left-to-right, geographic-organic-standard, chronological-mono-timeline, chronological-multi-timeline")}),$b=async({layout:t},e)=>{let{view:r}=Ln(e);if(Ho(r))
|
|
196
|
+
`,schema:Mb});async function Rb(t,e){return await e.map?.applyLayout(t),await na(e),{appliedLayout:t}}var Gi="applyLayout",Nb=c.object({layout:c.enum(["organic-standard","organic-community","basic-grid","hierarchical-bottom-to-top","radial-root-centric","tree-left-to-right","geographic-organic-standard","chronological-mono-timeline","chronological-multi-timeline"]).describe("The layout mode to apply to the link chart. The value must be one of the following: organic-standard, organic-community, basic-grid, hierarchical-bottom-to-top, radial-root-centric, tree-left-to-right, geographic-organic-standard, chronological-mono-timeline, chronological-multi-timeline")}),$b=async({layout:t},e)=>{let{view:r}=Ln(e);if(Ho(r)){let{appliedLayout:o}=await Rb(t,r);return{toolName:Gi,status:"success",summary:`Successfully applied layout: ${o}.`,details:{appliedLayout:o}}}else return{toolName:Gi,status:"error",errorMessage:"The applyLayout tool can only be used with a LinkChartView.",error:new Error}},zb=E($b,{name:Gi,description:"Apply a diagram layout to the link chart",schema:Nb});async function Lb(t,e){return e.map?.changeNonspatialDataDisplay(t),await na(e),{appliedNonspatialDataDisplayMode:t}}var Vi="changeNonspatialVisibility",jb=c.object({setting:c.enum(["hidden","visible"]).describe("The setting of nonspatial visibility")}),Db=async({setting:t},e)=>{let{view:r}=Ln(e);if(Ho(r)){let{appliedNonspatialDataDisplayMode:o}=await Lb(t,r);return{toolName:Vi,status:"success",summary:`Successfully applied nonspatial visibility setting: ${o}.`,details:{appliedNonspatialDataDisplayMode:o}}}else return{toolName:Vi,status:"error",errorMessage:"The changeNonspatialVisibility tool can only be used with a LinkChartView.",error:new Error}},Fb=E(Db,{name:Vi,description:"Change whether or not nonspatial data is visible in the link chart. The value must be either 'hidden' or 'visible'.",schema:jb});async function Ub(t,e,r,o,n){let s,a="";for(let i=1;i<=Vo;i++){let{graphQuery:u,explanation:l}=await Qi(t,e.dataModel,r,n,s);try{await J({text:`Attempting to create link chart from derived query: ${u}`},n);let d=await G_.fromCypherQuery(e,new _p({openCypherQuery:u}));await J({text:"Link chart created successfully, loading..."},n),await d.load();let p=o.map;return o.map=d,await o.when(),await yp.whenOnce(()=>!o.updating),d.entityCount===0&&d.relationshipCount===0?(o.map===d&&(o.map=p),d.destroy(),{type:"error",errorMessage:`Query returned no results. Cypher Query used to create the link chart:
|
|
197
197
|
${u}
|
|
198
198
|
|
|
199
|
-
Explanation: ${l}`}):(await na(o),{type:"success",graphQuery:u,explanation:l})}catch(d){let p=Zo(d);if(i>=Vo){a=p;break}s={failedGraphQuery:u,executionError:p,attemptCount:i},await J({text:`Attempt ${i} to create link chart failed with error: ${p}. Retrying ...`},n)}}return{type:"error",errorMessage:`Failed to create link chart after ${Vo} attempts. Last error: ${a}`}}var ra="createLinkChart",qb=c.object({prompt:c.string().describe("The user's inquiry and context required in order to generate a cypher query that will be used to create a link chart visualization. Only include information relevant to generating a cypher query. Do not suggest entity types, relationship types or properties. Do not include limits or formatting instructions for the query results unless specifically requested by the user. The prompt should be focused on the data the user wants to see in the link chart, not how to generate it.")}),Bb=async({prompt:t},e)=>{let{knowledgeGraph:r}=await Jo(e),{view:o}=Ln(e);if(Ho(o))
|
|
199
|
+
Explanation: ${l}`}):(await na(o),{type:"success",graphQuery:u,explanation:l})}catch(d){let p=Zo(d);if(i>=Vo){a=p;break}s={failedGraphQuery:u,executionError:p,attemptCount:i},await J({text:`Attempt ${i} to create link chart failed with error: ${p}. Retrying ...`},n)}}return{type:"error",errorMessage:`Failed to create link chart after ${Vo} attempts. Last error: ${a}`}}var ra="createLinkChart",qb=c.object({prompt:c.string().describe("The user's inquiry and context required in order to generate a cypher query that will be used to create a link chart visualization. Only include information relevant to generating a cypher query. Do not suggest entity types, relationship types or properties. Do not include limits or formatting instructions for the query results unless specifically requested by the user. The prompt should be focused on the data the user wants to see in the link chart, not how to generate it.")}),Bb=async({prompt:t},e)=>{let{knowledgeGraph:r}=await Jo(e),{view:o}=Ln(e);if(Ho(o)){let n=Wo.getDefault().helperServices,s=await Ub(`${t}
|
|
200
200
|
|
|
201
201
|
${Ip}`,r,`${n.aiAssistantServices.url}${n.aiAssistantServices.graphQueryAssistant}`,o,e);if(s.type==="error")return{toolName:ra,status:"error",errorMessage:s.errorMessage,error:new Error};let{graphQuery:a,explanation:i}=s;return{toolName:ra,status:"success",summary:`Link chart created successfully. Cypher Query used to create the link chart:
|
|
202
202
|
${a}
|
|
203
203
|
|
|
204
|
-
Explanation: ${i}`,details:{generatedQuery:a,explanation:i}}}},Kb=E(Bb,{name:ra,description:"Creates a new link chart visualization from an inquiry into the knowledge graph data. The inquiry will retrieve data from the graph database that will serve as the basis for the new link chart. The user should have explicitly requested the creation of a new link chart from their prompt using language like 'create new link chart' or 'add to new link chart'.",schema:qb}),Wi="queryGraphData",Gb=c.object({prompt:c.string().describe("The user's inquiry into the knowledge graph, from which a cypher query will be generated and executed to answer the inquiry. Only include entity types, relationship types or properties if they are provided in the user prompt or prior steps. Do not suggest entity types, relationship types or properties. Do not include limits, information on what to return, instructions on how to write the query, or formatting instructions for the query results unless specifically requested by the user.")}),Vb=async({prompt:t},e)=>{let{knowledgeGraph:r}=await Jo(e),o=Wo.getDefault().helperServices,n=t,s=null,a=null;try{({view:a}=Ln(e))}catch{}a&&({enhancedPrompt:n,bindParameters:s}=await vp({prompt:t,view:a,knowledgeGraph:r,includeReturnEntityAndRelationshipContext:!1}));let i=await xp({prompt:n,bindParameters:s,kg:r,graphQueryServiceUrl:`${o.aiAssistantServices.url}${o.aiAssistantServices.graphQueryAssistant}`,targetStructure:new Array,targetStructureReducer:(b,y)=>(b.push(y),b),requestOptions:{signal:sa(e),timeout:e?.timeout},config:e});if(i.type!=="success"){let b=i.type==="generation-error"?i.errorMessage:`${i.errorMessage} Cypher query: ${i.graphQuery}`;return{toolName:Wi,status:"error",errorMessage:`Failed to query the knowledge graph. ${b}`,error:"error"in i?i.error:null}}let{graphQuery:u,explanation:l,processedResult:d,resultHeader:p}=i,f=p.headerKeys;for(let b of d)for(let y of b)Go(y,S=>Ap(S));let x=50,w=d.slice(0,x).map(b=>JSON.stringify(b));return{toolName:Wi,status:"success",summary:`To answer the inquiry, the following cypher query was executed against the knowledge graph:
|
|
204
|
+
Explanation: ${i}`,details:{generatedQuery:a,explanation:i}}}else return{toolName:ra,status:"error",errorMessage:"The createLinkChart tool can only be used with a LinkChartView.",error:new Error}},Kb=E(Bb,{name:ra,description:"Creates a new link chart visualization from an inquiry into the knowledge graph data. The inquiry will retrieve data from the graph database that will serve as the basis for the new link chart. The user should have explicitly requested the creation of a new link chart from their prompt using language like 'create new link chart' or 'add to new link chart'.",schema:qb}),Wi="queryGraphData",Gb=c.object({prompt:c.string().describe("The user's inquiry into the knowledge graph, from which a cypher query will be generated and executed to answer the inquiry. Only include entity types, relationship types or properties if they are provided in the user prompt or prior steps. Do not suggest entity types, relationship types or properties. Do not include limits, information on what to return, instructions on how to write the query, or formatting instructions for the query results unless specifically requested by the user.")}),Vb=async({prompt:t},e)=>{let{knowledgeGraph:r}=await Jo(e),o=Wo.getDefault().helperServices,n=t,s=null,a=null;try{({view:a}=Ln(e))}catch{}a&&({enhancedPrompt:n,bindParameters:s}=await vp({prompt:t,view:a,knowledgeGraph:r,includeReturnEntityAndRelationshipContext:!1}));let i=await xp({prompt:n,bindParameters:s,kg:r,graphQueryServiceUrl:`${o.aiAssistantServices.url}${o.aiAssistantServices.graphQueryAssistant}`,targetStructure:new Array,targetStructureReducer:(b,y)=>(b.push(y),b),requestOptions:{signal:sa(e),timeout:e?.timeout},config:e});if(i.type!=="success"){let b=i.type==="generation-error"?i.errorMessage:`${i.errorMessage} Cypher query: ${i.graphQuery}`;return{toolName:Wi,status:"error",errorMessage:`Failed to query the knowledge graph. ${b}`,error:"error"in i?i.error:null}}let{graphQuery:u,explanation:l,processedResult:d,resultHeader:p}=i,f=p.headerKeys;for(let b of d)for(let y of b)Go(y,S=>Ap(S));let x=50,w=d.slice(0,x).map(b=>JSON.stringify(b));return{toolName:Wi,status:"success",summary:`To answer the inquiry, the following cypher query was executed against the knowledge graph:
|
|
205
205
|
|
|
206
206
|
\`\`\`cypher
|
|
207
207
|
${u}
|
|
@@ -270,7 +270,7 @@ ${a}`};async function Yb(t,e,r){let o=await nt("arcgis_knowledge_lucene_generati
|
|
|
270
270
|
_Example: “Color points by sales amount”_
|
|
271
271
|
_Example: “Show population density with a color gradient”_
|
|
272
272
|
_Example: “Create a relationship map between height and depth”_
|
|
273
|
-
_Example: “Vary circle sizes according to population”_`;var
|
|
273
|
+
_Example: “Vary circle sizes according to population”_`;var b3=String.raw`- **data exploration** — User is asking about the feature layer’s data (e.g. counts, summaries, statistics, field values), either for all features, a subset based on a condition, or for a subset based on the current view. And/Or user wants to include or exclude features based on field values, or visually style features differently (e.g., highlight or deemphasize them).
|
|
274
274
|
The Data Exploration Agent will automatically zoom to the affected features for action taken by this agent. In this case, no need to call navigation tool separately.
|
|
275
275
|
_Example: “Only show stations where Brand is Shell”_
|
|
276
276
|
_Example: “Make Shell stations stand out on the map”_
|
|
@@ -283,7 +283,7 @@ ${a}`};async function Yb(t,e,r){let o=await nt("arcgis_knowledge_lucene_generati
|
|
|
283
283
|
This agent does NOT handle help/metadata requests such as listing available layers, listing field names/columns/attributes for a layer, or capability guidance.`;var KA=(t,e)=>{let r=Array.from(t.values()).find(({layerItem:s})=>s.title?.toLowerCase().includes(e.toLowerCase()));if(!r){let s=Array.from(t.values()).map(a=>a.layerItem.title).join(", ");return`Could not find a layer matching "${e}". Available layers: ${s}`}let o=Array.from(r.fieldRegistry.values()),n=o.map(s=>`- **${s.alias||s.name}** (\`${s.name}\`, ${s.type})${s.description?`: ${s.description}`:""}`).join(`
|
|
284
284
|
`);return`**${r.layerItem.title}** has ${o.length} field(s):
|
|
285
285
|
|
|
286
|
-
${n}`},GA=({layerTitle:t},e)=>{let r=Ct(e,"layersAndFieldsRegistry");return KA(r,t)},VA=E(GA,{name:"listLayerFields",description:"Lists all fields for a given layer by title. Use ONLY when the user explicitly asks to see fields, columns, or attributes of a specific named layer. Do NOT call this tool for general help questions, capability overviews, or layer listing.",schema:c.object({layerTitle:c.string().describe("The title or partial title of the layer to list fields for.")})});var
|
|
286
|
+
${n}`},GA=({layerTitle:t},e)=>{let r=Ct(e,"layersAndFieldsRegistry");return KA(r,t)},VA=E(GA,{name:"listLayerFields",description:"Lists all fields for a given layer by title. Use ONLY when the user explicitly asks to see fields, columns, or attributes of a specific named layer. Do NOT call this tool for general help questions, capability overviews, or layer listing.",schema:c.object({layerTitle:c.string().describe("The title or partial title of the layer to list fields for.")})});var K3=String.raw`- **help** — Enables users to ask questions about the map, layers, fields, and it's capabilities.
|
|
287
287
|
|
|
288
288
|
_Example: “Tell me about this map”_
|
|
289
289
|
_Example: “List all layers in this map”_
|
|
@@ -296,7 +296,7 @@ ${n}`},GA=({layerTitle:t},e)=>{let r=Ct(e,"layersAndFieldsRegistry");return KA(r
|
|
|
296
296
|
|
|
297
297
|
IF the user asks map related queries, but those that are not performed by any of the agents, call this agent so we can respond that the requested action is not supported.
|
|
298
298
|
_Example: "Create a chart"_
|
|
299
|
-
_Example: "Create a table"_`;var
|
|
299
|
+
_Example: "Create a table"_`;var lZ=String.raw`The purpose of this agent is to work with Knowledge Graph data, a graph database technology that represents and stores data as interconnected entities (nodes) and relationships (edges).
|
|
300
300
|
This agent has two categories of skills: those that work with an active link chart visualization of a subset of the data in the knowledge graph, and those that work with the knowledge graph data more generally against the entire dataset in the service and database.
|
|
301
301
|
For link charts, the agent enables users to interact with a link chart by adding new entities (also called nodes) or relationships (also called edges), removing existing entities or relationships,
|
|
302
302
|
expanding the graph from particular entities, finding relationships between specified entities on the link chart and adding them to the link chart, finding all relationships
|