@esri/solutions-components 5.1.0-next.166 → 5.1.0-next.168
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/2MCOUOTQ.js +2 -0
- package/dist/cdn/{SJ2IGQMX.js → 4D46WTPB.js} +1 -1
- package/dist/cdn/4L7TJNAM.js +43 -0
- package/dist/cdn/6KO7AYJN.js +2 -0
- package/dist/cdn/{QVUBUYP6.js → 6LN2ZRAZ.js} +1 -1
- package/dist/cdn/{PVPKXQBE.js → BU6BDYWD.js} +3 -3
- package/dist/cdn/{CKWEF3KW.js → BYOO7TWU.js} +1 -1
- package/dist/cdn/{T26SIBKB.js → DFHULDJT.js} +1 -1
- package/dist/cdn/{GI33DSVT.js → DGGIENYR.js} +1 -1
- package/dist/cdn/{IVKRYKER.js → DSJRQHKW.js} +1 -1
- package/dist/cdn/{BT3FYIEX.js → EBAOA6CS.js} +1 -1
- package/dist/cdn/{ZOFZVFBV.js → F5463ORT.js} +1 -1
- package/dist/cdn/{K5ZYDQR7.js → FK6Q2LYR.js} +1 -1
- package/dist/cdn/{UTUOUV3E.js → HGOH5KSX.js} +1 -1
- package/dist/cdn/{XLGAHCS7.js → HUYLWWWJ.js} +1 -1
- package/dist/cdn/{Y32IJPXS.js → I6EH3H6Z.js} +1 -1
- package/dist/cdn/{25QYS4LE.js → IP7IUAM5.js} +1 -1
- package/dist/cdn/{3FKVBTJC.js → JCGZXASG.js} +1 -1
- package/dist/cdn/{P5RZHVDH.js → JJLYSRRX.js} +1 -1
- package/dist/cdn/{JGL4WYTO.js → K6O33P5T.js} +1 -1
- package/dist/cdn/{RHAHQ4DB.js → LQ6PZESP.js} +1 -1
- package/dist/cdn/{AFLXI5U2.js → LUIN5XSX.js} +1 -1
- package/dist/cdn/LWQ4SBU2.js +2 -0
- package/dist/cdn/{DKZ4FZKK.js → LXGPZJIZ.js} +1 -1
- package/dist/cdn/{ZSTC2DJY.js → MBT2S4J5.js} +1 -1
- package/dist/cdn/{GJWHFH2F.js → MXF4BYLT.js} +1 -1
- package/dist/cdn/{C47WRU5U.js → OTQLLNFG.js} +1 -1
- package/dist/cdn/{RYJ556XB.js → PM7QF66M.js} +1 -1
- package/dist/cdn/{TCRMAQDF.js → QKSC4XFL.js} +1 -1
- package/dist/cdn/{2BRPSISV.js → ROGRXRFI.js} +1 -1
- package/dist/cdn/{46I7FRQJ.js → RWHR4UZT.js} +1 -1
- package/dist/cdn/{VXGLGWIF.js → SNA7NRRQ.js} +3 -3
- package/dist/cdn/{K4LZRLGL.js → T5R4UF7Y.js} +1 -1
- package/dist/cdn/{KD4IHPH6.js → UOQSRV3X.js} +2 -2
- package/dist/cdn/{2VG5GRFH.js → V6N4G75E.js} +1 -1
- package/dist/cdn/{2YC25V3L.js → VJBL5ZUX.js} +1 -1
- package/dist/cdn/{UEYON3AE.js → VLBNRURV.js} +1 -1
- package/dist/cdn/{XXCHYJ3I.js → VLF76E2L.js} +1 -1
- package/dist/cdn/{2BI4S6V2.js → VY364MR6.js} +1 -1
- package/dist/cdn/{Z7VXHUQA.js → WKRSOM6J.js} +1 -1
- package/dist/cdn/{VL2NVCIB.js → WRWWRMHZ.js} +3 -3
- package/dist/cdn/{VTFLDHVU.js → X6TQNCB3.js} +1 -1
- package/dist/cdn/Y2MAVMNV.js +2 -0
- package/dist/cdn/{66N4ZZKC.js → ZWL4JFKS.js} +1 -1
- package/dist/cdn/index.js +1 -1
- package/dist/chunks/assessBuildRequest.js +2 -2
- package/dist/chunks/assistantResponse.js +23 -29
- package/dist/chunks/designSolution.js +3 -3
- package/dist/chunks/interfaces.js +6 -3
- package/dist/chunks/updateDesign.js +1 -1
- package/dist/components/arcgis-solutions-assistant/customElement.js +9 -9
- package/dist/components/card-manager/customElement.d.ts +0 -3
- package/dist/components/card-manager/customElement.js +6 -6
- package/dist/components/create-feature/customElement.js +80 -62
- package/dist/components/create-related-feature/customElement.js +12 -9
- package/dist/components/crowdsource-manager/customElement.js +3 -3
- package/dist/components/layer-table/customElement.js +13 -13
- package/dist/components/solution-configure-titles/customElement.js +2 -1
- package/dist/components/solution-delete-dialog/customElement.js +2 -1
- package/dist/components/solution-deployed-card-panel/customElement.js +8 -4
- package/dist/components/solutions-deploy-app/customElement.js +14 -14
- package/dist/docs/api.json +1 -1
- package/dist/docs/docs.json +1 -1
- package/dist/docs/vscode.html-custom-data.json +1 -1
- package/dist/docs/web-types.json +1 -1
- package/dist/solutions-components_commit.txt +6 -6
- package/dist/types/lumina.d.ts +0 -1
- package/dist/types/preact.d.ts +0 -1
- package/dist/types/react.d.ts +0 -1
- package/dist/types/stencil.d.ts +0 -1
- package/package.json +1 -1
- package/dist/cdn/2NSMAAXL.js +0 -2
- package/dist/cdn/632J5NXN.js +0 -49
- package/dist/cdn/CDT6E3VG.js +0 -2
- package/dist/cdn/HQCHD3FH.js +0 -2
- package/dist/cdn/RSCCUNJ4.js +0 -2
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
+
import"./ERLDQUNI.js";import h from"./PM7QF66M.js";import e from"./JJLYSRRX.js";import b from"./WDASGI72.js";import{b as I}from"./2B4SGB3I.js";import{b as D}from"./RLSY4VUQ.js";import{_b as y}from"./RDRCAA3H.js";import{a as f}from"./DIBK4RSG.js";import"./QMAV4UTN.js";import"./Y2AUIXNK.js";import"./TEHBW75B.js";import"./IHG7KTNC.js";import"./ZCU2WWVN.js";import"./WGO4EVOV.js";import"./YKB6256M.js";import"./N22MFQSQ.js";import"./N7BXCDA3.js";import"./ZX3UHK6P.js";import"./Z4F2NZOT.js";import"./KOIDWEP3.js";import"./3KXMYZCU.js";import"./LP2JYX4X.js";import"./GF4QELNV.js";import"./AYSQIO6L.js";import"./YQHYMLC7.js";import"./DKD2EGQP.js";import"./5O53T3SW.js";import"./AJZDBHB6.js";import"./FES7B3SJ.js";import{b as _}from"./HIPZRG2Q.js";import{F as u,G as d,H as g,J as r,h as m,i as a,l as p,q as c}from"./T3EPRHTT.js";import"./EXBEKVP5.js";export default $arcgis.t(([{h:b,m:w,u:$},{c:C,e:v,r:x},{a:S,b:P}])=>{var T=m`*[tabindex]:focus-visible{outline-style:solid!important;outline-width:2px!important;outline-color:var(--calcite-color-brand)!important;outline-offset:2px!important}.deletion-note-text{display:inline-block}.deletion-note-container{display:flex;align-items:center;gap:var(--calcite-spacing-sm);font-size:var(--calcite-font-size-0);margin-bottom:var(--calcite-spacing-md)}.panel-bg-color{--calcite-panel-header-background-color: var(--calcite-color-surface-2);--calcite-panel-background-color: var(--calcite-color-surface-2)}.display-none{display:none}calcite-loader{--calcite-loader-spacing: var(--calcite-spacing-md)}.loader-text{margin-top:var(--calcite-spacing-md);margin-bottom:var(--calcite-spacing-xl);text-align:center;font-size:var(--calcite-font-size-relative-base);color:var(--calcite-color-text-1)}.padding-around{padding:12px 2rem 2rem}`,h=class extends g{constructor(){super(),this.open=!1,this.source="Card Dropdown",this._deletePercentage=0,this._fetchingTemplates=!1,this._isDeleteInProgress=!1,this._nonSolutionDependencyItems=[],this._showDeleteError=!1,this._showUndeletableItems=!1,this._templateInfos=[],this._translations=f({name:"solution-delete-dialog",blocking:!0}),this._accordion=u(),this._configContextConsumer=D({context:I,subscribe:!0}),this.solutionDeleteDialogOpen=c(),this.solutionDeleted=c(),this.solutionDeleteDialogBeforeClose=c(),this.listenOn(window,"beforeunload",e=>{this._isDeleteInProgress&&(e.preventDefault(),e.returnValue=!0)})}static{this.properties={card:0,open:5,source:1,_deletePercentage:16,_fetchingTemplates:16,_isDeleteInProgress:16,_nonSolutionDependencyItems:16,_showDeleteError:16,_showUndeletableItems:16,_templateInfos:16,_translations:16}}static{this.styles=T}get _hasAdminDeletePermission(){return this._configContextConsumer.value?.authentication?C(this._configContextConsumer.value?.authentication):!1}get _telemetry(){return this._configContextConsumer.value?.telemetrySession}close(){this._showUndeletableItems&&this.solutionDeleted.emit({showAlert:!1,refreshSolutionsTimeout:!0,solutionTitle:this.card?.title}),this._showDeleteError=!1,this._showUndeletableItems=!1,this._isDeleteInProgress=!1,this.open=!1,this.solutionDeleteDialogOpen.emit(!1)}delete(){if(b(this._configContextConsumer.value)){this.close();return}if(this._telemetry?.logEvent({category:x.DEPLOYMENTS,action:"Delete Solution",dimensions:["",this.card?.deployCommonId||"",this.card?.deployVersion||"",this.source,w(this.card?.typeKeywords)]}),this._isDeleteInProgress=!0,this.card){let e=[{itemName:this.card.title,itemType:"Solution",owner:this.card.owner,modified:this.card.modified}],t={progressCallback:o=>{this._deletePercentage=Math.round(o)},solutionOwner:this.card.owner};y(this.card.id,this._configContextConsumer.value.userSession,t).then(o=>{let i=o[1],n;if(i?n=i.items.map(s=>({itemName:s.title,itemType:s.type,owner:s.owner,modified:s.modified})):n=e,n.length===0)this.solutionDeleted.emit({showAlert:!0,refreshSolutionsTimeout:!0,solutionTitle:this.card?.title}),this._isDeleteInProgress=!1,this.open=!1;else if(n.some(s=>s.itemType==="Solution"))this.card?P(this.card,this._configContextConsumer.value.userSession).then(s=>{this._templateInfos=s,this._showDeleteError=!0,this._showUndeletableItems=!0,this._isDeleteInProgress=!1}):(this._showDeleteError=!0,this._isDeleteInProgress=!1);else if(this.card){let s=[];s=i.items.map(l=>({id:l.id,title:l.title,type:l.type,owner:l.owner,modified:l.modified,typeKeywords:[],snippet:"",dependencies:[],url:v(l.id,this._configContextConsumer.value.authentication)})),this._templateInfos=s,this._showDeleteError=!1,this._showUndeletableItems=!0,this._isDeleteInProgress=!1}else this.solutionDeleted.emit({showAlert:!0,refreshSolutionsTimeout:!0}),this._isDeleteInProgress=!1,this.open=!1})}}willUpdate(e){if(e.has("open")){let t=e.get("open");this.open&&!t&&(this._fetchingTemplates=!0,S(this._configContextConsumer.value.userSession,this.card).then(o=>{this._templateInfos=o.templateInfos,this._nonSolutionDependencyItems=o._nonSolutionDependencyItems,this._fetchingTemplates=!1}))}}render(){let e=this._fetchingTemplates?"":"display-none",t=this._fetchingTemplates?"display-none":"",o=$(this._nonSolutionDependencyItems,this.card.id),i=this._templateInfos.length-this._getDependencyCount()-this._getNonOwnerCount(),n=this._translations.deletionCount.replace("{{deleteableCount}}",i.toString()).replace("{{totalCount}}",this._templateInfos.length.toString());return a`<calcite-dialog class="panel-bg-color" .closeDisabled=${this._isDeleteInProgress} .escapeDisabled=${this._isDeleteInProgress} .heading=${this._translations.title.replace("{{solution}}",this.card?.title??"")} id=${this._translations.title.replace("{{solution}}",this.card?.title??"")??p} modal kind=danger .open=${this.open} width=l outside-close-disabled @calciteDialogBeforeClose=${()=>{this.solutionDeleteDialogBeforeClose.emit()}} @calciteDialogClose=${()=>{this.open=!1,this.solutionDeleteDialogOpen.emit(!1)}}>${this._isDeleteInProgress?a`<calcite-loader .label=${this._translations.deleteInProgress} scale=l type=determinate-value .value=${this._deletePercentage}></calcite-loader><div class="loader-text" role=status tabindex=0>${this._translations.deleteInProgress}</div>`:this._showUndeletableItems?a`<calcite-label class=${r(t)} layout=inline><span tabindex=0>${this._translations.failedToDeleteItems}</span></calcite-label><solution-item-accordion class=${r(t)} .itemRelationshipDependencies=${[]} link-type=item list-selection-mode=multiple .reuseWarning=${this._translations.itemDependencyReusewarning} .templateInfos=${this._templateInfos} .typeKeywords=${this.card?.typeKeywords} usage-context=delete ${d(this._accordion)}></solution-item-accordion><calcite-button appearance=outline @click=${this.close} slot=footer-end>${this._translations.buttonClose}</calcite-button>`:a`<div class="padding-around"><div class=${`deletion-note-container ${t}`}><span class="deletion-note-text" tabindex=0>${this._translations.deletionNote}</span><calcite-chip .label=${n} scale=m icon=information>${n}</calcite-chip></div><calcite-loader class=${r(e)} label></calcite-loader><solution-item-accordion class=${r(t)} .itemRelationshipDependencies=${o} link-type=item list-selection-mode=multiple .reuseWarning=${this._translations.itemDependencyReusewarning} .templateInfos=${this._templateInfos} .typeKeywords=${this.card?.typeKeywords} usage-context=delete ${d(this._accordion)}></solution-item-accordion></div><calcite-button appearance=outline @click=${this.close} slot=footer-end>${this._translations.buttonCancel}</calcite-button><calcite-button @click=${()=>{this.delete()}} slot=footer-end kind=danger>${this._translations.buttonDelete}</calcite-button>${this._showDeleteError&&a`<calcite-alert auto-close icon=exclamation-mark-triangle kind=danger .label=${this._translations.failedToDelete} @calciteAlertClose=${()=>{this._showDeleteError=!1}} open><div slot=message>${this._translations.failedToDelete}</div></calcite-alert>`||""}`}</calcite-dialog>`}_getDependencyCount(){let e=this._nonSolutionDependencyItems.map(t=>t.controlItemId);return new Set(e).size}_getNonOwnerCount(){if(this._templateInfos.length===0||this._hasAdminDeletePermission)return 0;let e=this._nonSolutionDependencyItems.map(i=>i.controlItemId),t=new Set(e),o=this._configContextConsumer.value.userSession.username;return this._templateInfos.filter(i=>!t.has(i.id)).filter(i=>i.owner!==o).length}};_("solution-delete-dialog",h);return h},b,e,h)
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{a as F}from"./YUWXPLTE.js";import{a as R}from"./PPFEO3UH.js";import b from"./P5RZHVDH.js";import{a as $,b as C}from"./2B4SGB3I.js";import{b as d}from"./RLSY4VUQ.js";import{a as S}from"./DIBK4RSG.js";import{b as w}from"./HIPZRG2Q.js";import{F as o,G as r,H as x,J as c,K as h,h as v,i as a,q as y}from"./T3EPRHTT.js";export default $arcgis.t(([{j:u,k:f,r:_}])=>{var O=v`.display-flex{display:flex}.border-override{border-top-width:var(--calcite-border-width-none);border-bottom-width:var(--calcite-border-width-none)}.header-override{--calcite-panel-header-content-space: 0px;--calcite-panel-header-background-color: var(--calcite-color-surface-3)}.panel-override{--calcite-panel-background-color: var(--calcite-color-surface-3);--calcite-panel-border-color: none}.label-override{--calcite-label-margin-bottom: 0px;font-weight:var(--calcite-font-weight-medium)}.header-button-padding{padding-top:var(--calcite-spacing-sm);padding-bottom:var(--calcite-spacing-sm);padding-inline-start:var(--calcite-spacing-lg);padding-inline-end:var(--calcite-spacing-lg)}.padding-start{padding-inline-start:var(--calcite-spacing-sm)}.align-items-center{align-items:center}.justify-content-end{justify-content:end}.filter-width-350{--calcite-shell-panel-width: 350px}.z-index-1{z-index:1}.z-index-2{z-index:2}h1{font-weight:unset;margin:0;padding:0}@container (max-width: 800px){.filter{display:none}}.mock-fab{--calcite-fab-shadow-internal: 0 6px 20px -4px rgba(0, 0, 0, .1), 0 4px 12px -2px rgba(0, 0, 0, .08);box-shadow:var(--calcite-fab-shadow, var(--calcite-fab-shadow-internal));--calcite-button-background-color: var(--calcite-fab-background-color);--calcite-button-border-color: var(--calcite-fab-border-color);--calcite-button-text-color: var(--calcite-fab-text-color);--calcite-button-loader-color: var(--calcite-fab-loader-color)}.background-override{--calcite-shell-panel-background-color: var(--calcite-color-surface-4);--calcite-panel-background-color: var(--calcite-color-surface-4)}.chips-container{display:flex;flex-wrap:wrap;align-items:center;gap:var(--calcite-spacing-xs);flex:1;padding-block:var(--calcite-spacing-xs)}.header-content-wrapper{min-height:50px;flex-wrap:wrap;gap:var(--calcite-spacing-xs);padding-inline-start:var(--calcite-spacing-lg);padding-top:8px}.position-relative{position:relative;height:100%;overflow:hidden}.height-100{height:100%}.border-none{border:none}.height-50{height:50px}.chip-group{max-width:100%}.chip-group{display:flex;flex-wrap:wrap}.responsive-chip{max-width:100%}.responsive-chip .chip-text{display:inline-flex;align-items:center;line-height:1;max-width:100%}@container (max-width: 800px){.responsive-chip{max-width:100%;min-width:0}.responsive-chip .chip-text{max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}}.mobile-stack{flex-direction:column;align-items:flex-start;padding-top:var(--calcite-spacing-md)}`,g=class extends x{constructor(){super(),this.solutionsCount=0,this._isLoading=!0,this._filterOpen=!0,this._filters={categories:[],searchTerm:""},this._isMobile=!1,this._translations=S({name:"solutions-all-shell",blocking:!0}),this._allSolutionsPanelRef=o(),this._solutionsFilterPanelRef=o(),this._mainPanelRef=o(),this._panelFixed=!1,this._configContextConsumer=d({context:C,subscribe:!0}),this._isMobileContextConsumer=d({context:$,subscribe:!0,callback:e=>this._isMobile=e}),this.filterRemoved=y(),this.listenOn(window,"searchChanged",e=>{e.detail&&e.detail.scope==="all-solutions"&&this._filterApplied(e.detail.option,e.detail.logSearchTelemetry)}),this.listenOn(window,"toggleFilter",this._toggleFilter),this.listenOn(window,"cardsFetched",()=>{this._isLoading=!1,this._syncSolutionChipOrderWithDisplayedCards()}),this.listenOn(window,"solutionMatchesFromAssistant",e=>{this._applyAssistantSolutionMatches(e.detail)})}static{this.properties={solutionsCount:9,_isLoading:16,_filterOpen:16,_filters:16,_isMobile:16,_translations:16}}static{this.styles=O}willUpdate(e){e.has("_isMobile")&&(this._filterOpen=!this._isMobile)}get _telemetry(){return this._configContextConsumer.value?.telemetrySession}async searchSolutions(e){if(this._allSolutionsPanelRef.value.setSearchOptions(e),"industry"in e||"domain"in e){e.displayValue=e.domain||e.industry;let t=e.industry?Object.entries(u).find(([,s])=>s===e.industry)?.[0]:void 0,i=e.domain?Object.entries(f).find(([,s])=>s===e.domain)?.[0]:void 0;e.industry=t||"",e.domain=i||"",e.value=i||t||"",this._solutionsFilterPanelRef.value.changeIndustryFilter(e.industry,e.domain,e.displayValue,!0)}else("searchTerm"in e||"sortType"in e)&&("searchTerm"in e&&(this._filters.searchTerm=e.searchTerm),this._allSolutionsPanelRef.value?.searchSolutions(e))}async load(){this._isMobileContextConsumer.value&&(this._isMobile=this._isMobileContextConsumer.value)}updated(){this._fixPanelContentWrapperFocus()}_fixPanelContentWrapperFocus(){if(!this._panelFixed&&this._mainPanelRef.value){let e=this._mainPanelRef.value;e.componentOnReady?.().then(()=>{if(e.shadowRoot){let t=e.shadowRoot.querySelector(".content-wrapper");t&&(t.tabIndex=-1,this._panelFixed=!0,this._setupPanelObserver())}}).catch(()=>{this._panelFixed=!0})}}_setupPanelObserver(){if(this._panelObserver)return;this._panelObserver=new MutationObserver(t=>{t.forEach(i=>{if(i.type==="attributes"&&i.attributeName==="tabindex"){let s=i.target;s.classList.contains("content-wrapper")&&s.tabIndex===0&&(s.tabIndex=-1)}})});let e=this._mainPanelRef.value;if(e?.shadowRoot){let t=e.shadowRoot.querySelector(".content-wrapper");t&&this._panelObserver.observe(t,{attributes:!0,attributeFilter:["tabindex"]})}}disconnectedCallback(){super.disconnectedCallback(),this._panelObserver?.disconnect()}render(){let e=this._isMobile?"justify-content-end":"",t=this._isLoading?"display-none":"";return a`<calcite-shell class=${`position-relative ${t}`}>${this._isMobile?"":this._getFilterPanel()}<h1 class="height-100"><calcite-panel class="border-override header-override panel-override z-index-1" ${r(this._mainPanelRef)}><div class=${c(this._isMobile?`mobile-stack ${e}`:`display-flex align-items-center header-content-wrapper ${e}`)} slot=header-content><calcite-label class="label-override">${this._translations.numberOfSolutions.replace("{{count}}",this.solutionsCount.toString())}</calcite-label><div class="chips-container">${this._renderChips()}${this._filters.categories&&this._filters.categories?.length>0&&a`<calcite-button appearance=transparent icon-start=reset kind=neutral @click=${()=>{let i=this._filters.categories?.some(s=>s.type==="solution")??!1;this._filters={...this._filters,categories:[]},i&&window.dispatchEvent(new CustomEvent("clearAssistantResultFilters")),this._allSolutionsPanelRef.value?.searchSolutions(this._filters.categories),this._filters.searchTerm!==""&&this._allSolutionsPanelRef.value?.searchSolutions({searchTerm:this._filters.searchTerm}),this.filterRemoved.emit([])}} .label=${this._translations.clearIndustryFilter}>${this._translations.clearIndustryFilter}</calcite-button>`||""}</div></div>${this._isMobile&&this._getFilterPanel()||""}${this._getSolutionsAllPanel()}</calcite-panel></h1></calcite-shell>`}_getFilterPanel(){let e=this._filterOpen?{display:"flex"}:"";return this._isMobile?a`<calcite-panel class=${`border-none ${this._filterOpen?"background-override":"filter background-override"}`} id=solutions-all-shell-panel-start style=${h(e)}><solutions-filter-panel class="height-100" @applyFilter=${t=>{this._filterApplied(t.detail)}} ${r(this._solutionsFilterPanelRef)}></solutions-filter-panel></calcite-panel>`:a`<calcite-shell-panel class="filter background-override filter-width-350" id=solutions-all-shell-panel-start slot=panel-start style=${h(e)}><calcite-panel class="border-none"><solutions-filter-panel class="height-100" @applyFilter=${t=>{this._filterApplied(t.detail)}} ${r(this._solutionsFilterPanelRef)}></solutions-filter-panel></calcite-panel></calcite-shell-panel>`}_getSolutionsAllPanel(){let e=this._isMobile&&this._filterOpen?{display:"none"}:"";return a`<solutions-all-panel @cardsFetched=${this._updateSolutionCount} style=${h(e)} ${r(this._allSolutionsPanelRef)}></solutions-all-panel>`}_renderChips(){if(!this._filters.categories)return;let e=this._filters.categories.filter(t=>t.type==="industry"||t.type==="domain"||t.type==="solution");if(e.length!==0)return a`<calcite-chip-group class="chip-group" .label=${this._translations.appliedFilters}>${this._filters.displayValue&&this._filters.displayValue!==""?F(`${this._filters.displayValue}`,a`<calcite-chip appearance=outline-fill class=${c(this._isMobile?"responsive-chip":"padding-start responsive-chip")} closable .label=${this._filters.displayValue??""} @calciteChipClose=${()=>this._chipClosed(this._filters.displayValue,"solution")} .value=${this._filters.displayValue}>${this._filters.displayValue}</calcite-chip>`):R(e,t=>`${t.type}:${t.value}`,t=>a`<calcite-chip appearance=outline-fill class=${c(this._isMobile?"responsive-chip":"padding-start responsive-chip")} closable .label=${t.displayValue} @calciteChipClose=${()=>this._chipClosed(t.displayValue,t.type)} .value=${t.displayValue}>${t.displayValue}</calcite-chip>`)}</calcite-chip-group>`}_updateSolutionCount(e){this.solutionsCount=e.detail}_syncSolutionChipOrderWithDisplayedCards(){if(!this._filters.categories?.length)return;let e=this._filters.categories.filter(l=>l.type==="solution");if(e.length<=1)return;let t=this._allSolutionsPanelRef.value?.getDisplayedSolutionIds?.()??[];if(!t.length)return;let i=new Map;t.forEach((l,p)=>{i.set(l,p)});let s=[...e].sort((l,p)=>{let m=i.get(String(l.value)),b=i.get(String(p.value)),T=m===void 0?Number.MAX_SAFE_INTEGER:m,P=b===void 0?Number.MAX_SAFE_INTEGER:b;return T-P}),n=this._filters.categories.filter(l=>l.type!=="solution");this._filters={...this._filters,categories:[...n,...s]}}_chipClosed(e,t){if(this._filters.categories){if(t==="solution"){this._filters={...this._filters,categories:[]},window.dispatchEvent(new CustomEvent("clearAssistantResultFilters")),this._allSolutionsPanelRef.value?.searchSolutions(),this._filters.searchTerm!==""&&this._allSolutionsPanelRef.value?.searchSolutions({searchTerm:this._filters.searchTerm});return}if(t==="industry")this._filters.categories=[];else{let i=this._filters.categories.filter(s=>s.displayValue!==e&&s.type!==t);this._filters.categories=i}this._filters.categories.length>0?this._allSolutionsPanelRef.value?.searchSolutions(this._filters.categories):this._filters.searchTerm!==""?(this._allSolutionsPanelRef.value?.searchSolutions(this._filters.categories),this._allSolutionsPanelRef.value?.searchSolutions({searchTerm:this._filters.searchTerm})):this._allSolutionsPanelRef.value?.searchSolutions(),this.filterRemoved.emit(this._filters.categories)}}_applyAssistantSolutionMatches(e){let t=Array.isArray(e?.solutionIds)?e.solutionIds:[],i=Array.isArray(e?.solutionTitles)?e.solutionTitles:[],s=t.map((n,l)=>({type:"solution",value:n,displayValue:i[l]??n}));this._filters={categories:s,searchTerm:"",displayValue:this._translations.aiAssistantResults},this.filterRemoved.emit([])}_toggleFilter(){this._filterOpen=!this._filterOpen}_logFilterTelemetry(e){if((e.type==="industry"||e.type==="domain")&&e.industry){let t=[u[e.industry]];if(e.domain){let i=f[e.domain];t.push(i)}this._telemetry?.logEvent({category:_.ALL_SOLUTIONS,action:"Filter",dimensions:t})}}_filterApplied(e,t){if(this._filters.categories)if(e){let i=e;if("displayValue"in e)this._filters.categories.push(e),this._logFilterTelemetry(e);else if(Array.isArray(e)&&e.length>0){e.length>=2&&(i=[e[e.length-1]]),this._filters={categories:e,searchTerm:this._filters.searchTerm};let s=e[e.length-1];s&&this._logFilterTelemetry(s)}if("searchTerm"in i&&(this._filters.searchTerm=i.searchTerm,t&&i.searchTerm)){this._telemetry?.logEvent({category:_.ALL_SOLUTIONS,action:"Search",dimensions:[i.searchTerm]});return}this._allSolutionsPanelRef.value?.searchSolutions(i)}else this._filters.categories=[],this._allSolutionsPanelRef.value?.searchSolutions()}};w("solutions-all-shell",g);return g},b)
|
|
2
|
+
import{a as F}from"./YUWXPLTE.js";import{a as R}from"./PPFEO3UH.js";import b from"./JJLYSRRX.js";import{a as $,b as C}from"./2B4SGB3I.js";import{b as d}from"./RLSY4VUQ.js";import{a as S}from"./DIBK4RSG.js";import{b as w}from"./HIPZRG2Q.js";import{F as o,G as r,H as x,J as c,K as h,h as v,i as a,q as y}from"./T3EPRHTT.js";export default $arcgis.t(([{j:u,k:f,r:_}])=>{var O=v`.display-flex{display:flex}.border-override{border-top-width:var(--calcite-border-width-none);border-bottom-width:var(--calcite-border-width-none)}.header-override{--calcite-panel-header-content-space: 0px;--calcite-panel-header-background-color: var(--calcite-color-surface-3)}.panel-override{--calcite-panel-background-color: var(--calcite-color-surface-3);--calcite-panel-border-color: none}.label-override{--calcite-label-margin-bottom: 0px;font-weight:var(--calcite-font-weight-medium)}.header-button-padding{padding-top:var(--calcite-spacing-sm);padding-bottom:var(--calcite-spacing-sm);padding-inline-start:var(--calcite-spacing-lg);padding-inline-end:var(--calcite-spacing-lg)}.padding-start{padding-inline-start:var(--calcite-spacing-sm)}.align-items-center{align-items:center}.justify-content-end{justify-content:end}.filter-width-350{--calcite-shell-panel-width: 350px}.z-index-1{z-index:1}.z-index-2{z-index:2}h1{font-weight:unset;margin:0;padding:0}@container (max-width: 800px){.filter{display:none}}.mock-fab{--calcite-fab-shadow-internal: 0 6px 20px -4px rgba(0, 0, 0, .1), 0 4px 12px -2px rgba(0, 0, 0, .08);box-shadow:var(--calcite-fab-shadow, var(--calcite-fab-shadow-internal));--calcite-button-background-color: var(--calcite-fab-background-color);--calcite-button-border-color: var(--calcite-fab-border-color);--calcite-button-text-color: var(--calcite-fab-text-color);--calcite-button-loader-color: var(--calcite-fab-loader-color)}.background-override{--calcite-shell-panel-background-color: var(--calcite-color-surface-4);--calcite-panel-background-color: var(--calcite-color-surface-4)}.chips-container{display:flex;flex-wrap:wrap;align-items:center;gap:var(--calcite-spacing-xs);flex:1;padding-block:var(--calcite-spacing-xs)}.header-content-wrapper{min-height:50px;flex-wrap:wrap;gap:var(--calcite-spacing-xs);padding-inline-start:var(--calcite-spacing-lg);padding-top:8px}.position-relative{position:relative;height:100%;overflow:hidden}.height-100{height:100%}.border-none{border:none}.height-50{height:50px}.chip-group{max-width:100%}.chip-group{display:flex;flex-wrap:wrap}.responsive-chip{max-width:100%}.responsive-chip .chip-text{display:inline-flex;align-items:center;line-height:1;max-width:100%}@container (max-width: 800px){.responsive-chip{max-width:100%;min-width:0}.responsive-chip .chip-text{max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}}.mobile-stack{flex-direction:column;align-items:flex-start;padding-top:var(--calcite-spacing-md)}`,g=class extends x{constructor(){super(),this.solutionsCount=0,this._isLoading=!0,this._filterOpen=!0,this._filters={categories:[],searchTerm:""},this._isMobile=!1,this._translations=S({name:"solutions-all-shell",blocking:!0}),this._allSolutionsPanelRef=o(),this._solutionsFilterPanelRef=o(),this._mainPanelRef=o(),this._panelFixed=!1,this._configContextConsumer=d({context:C,subscribe:!0}),this._isMobileContextConsumer=d({context:$,subscribe:!0,callback:e=>this._isMobile=e}),this.filterRemoved=y(),this.listenOn(window,"searchChanged",e=>{e.detail&&e.detail.scope==="all-solutions"&&this._filterApplied(e.detail.option,e.detail.logSearchTelemetry)}),this.listenOn(window,"toggleFilter",this._toggleFilter),this.listenOn(window,"cardsFetched",()=>{this._isLoading=!1,this._syncSolutionChipOrderWithDisplayedCards()}),this.listenOn(window,"solutionMatchesFromAssistant",e=>{this._applyAssistantSolutionMatches(e.detail)})}static{this.properties={solutionsCount:9,_isLoading:16,_filterOpen:16,_filters:16,_isMobile:16,_translations:16}}static{this.styles=O}willUpdate(e){e.has("_isMobile")&&(this._filterOpen=!this._isMobile)}get _telemetry(){return this._configContextConsumer.value?.telemetrySession}async searchSolutions(e){if(this._allSolutionsPanelRef.value.setSearchOptions(e),"industry"in e||"domain"in e){e.displayValue=e.domain||e.industry;let t=e.industry?Object.entries(u).find(([,s])=>s===e.industry)?.[0]:void 0,i=e.domain?Object.entries(f).find(([,s])=>s===e.domain)?.[0]:void 0;e.industry=t||"",e.domain=i||"",e.value=i||t||"",this._solutionsFilterPanelRef.value.changeIndustryFilter(e.industry,e.domain,e.displayValue,!0)}else("searchTerm"in e||"sortType"in e)&&("searchTerm"in e&&(this._filters.searchTerm=e.searchTerm),this._allSolutionsPanelRef.value?.searchSolutions(e))}async load(){this._isMobileContextConsumer.value&&(this._isMobile=this._isMobileContextConsumer.value)}updated(){this._fixPanelContentWrapperFocus()}_fixPanelContentWrapperFocus(){if(!this._panelFixed&&this._mainPanelRef.value){let e=this._mainPanelRef.value;e.componentOnReady?.().then(()=>{if(e.shadowRoot){let t=e.shadowRoot.querySelector(".content-wrapper");t&&(t.tabIndex=-1,this._panelFixed=!0,this._setupPanelObserver())}}).catch(()=>{this._panelFixed=!0})}}_setupPanelObserver(){if(this._panelObserver)return;this._panelObserver=new MutationObserver(t=>{t.forEach(i=>{if(i.type==="attributes"&&i.attributeName==="tabindex"){let s=i.target;s.classList.contains("content-wrapper")&&s.tabIndex===0&&(s.tabIndex=-1)}})});let e=this._mainPanelRef.value;if(e?.shadowRoot){let t=e.shadowRoot.querySelector(".content-wrapper");t&&this._panelObserver.observe(t,{attributes:!0,attributeFilter:["tabindex"]})}}disconnectedCallback(){super.disconnectedCallback(),this._panelObserver?.disconnect()}render(){let e=this._isMobile?"justify-content-end":"",t=this._isLoading?"display-none":"";return a`<calcite-shell class=${`position-relative ${t}`}>${this._isMobile?"":this._getFilterPanel()}<h1 class="height-100"><calcite-panel class="border-override header-override panel-override z-index-1" ${r(this._mainPanelRef)}><div class=${c(this._isMobile?`mobile-stack ${e}`:`display-flex align-items-center header-content-wrapper ${e}`)} slot=header-content><calcite-label class="label-override">${this._translations.numberOfSolutions.replace("{{count}}",this.solutionsCount.toString())}</calcite-label><div class="chips-container">${this._renderChips()}${this._filters.categories&&this._filters.categories?.length>0&&a`<calcite-button appearance=transparent icon-start=reset kind=neutral @click=${()=>{let i=this._filters.categories?.some(s=>s.type==="solution")??!1;this._filters={...this._filters,categories:[]},i&&window.dispatchEvent(new CustomEvent("clearAssistantResultFilters")),this._allSolutionsPanelRef.value?.searchSolutions(this._filters.categories),this._filters.searchTerm!==""&&this._allSolutionsPanelRef.value?.searchSolutions({searchTerm:this._filters.searchTerm}),this.filterRemoved.emit([])}} .label=${this._translations.clearIndustryFilter}>${this._translations.clearIndustryFilter}</calcite-button>`||""}</div></div>${this._isMobile&&this._getFilterPanel()||""}${this._getSolutionsAllPanel()}</calcite-panel></h1></calcite-shell>`}_getFilterPanel(){let e=this._filterOpen?{display:"flex"}:"";return this._isMobile?a`<calcite-panel class=${`border-none ${this._filterOpen?"background-override":"filter background-override"}`} id=solutions-all-shell-panel-start style=${h(e)}><solutions-filter-panel class="height-100" @applyFilter=${t=>{this._filterApplied(t.detail)}} ${r(this._solutionsFilterPanelRef)}></solutions-filter-panel></calcite-panel>`:a`<calcite-shell-panel class="filter background-override filter-width-350" id=solutions-all-shell-panel-start slot=panel-start style=${h(e)}><calcite-panel class="border-none"><solutions-filter-panel class="height-100" @applyFilter=${t=>{this._filterApplied(t.detail)}} ${r(this._solutionsFilterPanelRef)}></solutions-filter-panel></calcite-panel></calcite-shell-panel>`}_getSolutionsAllPanel(){let e=this._isMobile&&this._filterOpen?{display:"none"}:"";return a`<solutions-all-panel @cardsFetched=${this._updateSolutionCount} style=${h(e)} ${r(this._allSolutionsPanelRef)}></solutions-all-panel>`}_renderChips(){if(!this._filters.categories)return;let e=this._filters.categories.filter(t=>t.type==="industry"||t.type==="domain"||t.type==="solution");if(e.length!==0)return a`<calcite-chip-group class="chip-group" .label=${this._translations.appliedFilters}>${this._filters.displayValue&&this._filters.displayValue!==""?F(`${this._filters.displayValue}`,a`<calcite-chip appearance=outline-fill class=${c(this._isMobile?"responsive-chip":"padding-start responsive-chip")} closable .label=${this._filters.displayValue??""} @calciteChipClose=${()=>this._chipClosed(this._filters.displayValue,"solution")} .value=${this._filters.displayValue}>${this._filters.displayValue}</calcite-chip>`):R(e,t=>`${t.type}:${t.value}`,t=>a`<calcite-chip appearance=outline-fill class=${c(this._isMobile?"responsive-chip":"padding-start responsive-chip")} closable .label=${t.displayValue} @calciteChipClose=${()=>this._chipClosed(t.displayValue,t.type)} .value=${t.displayValue}>${t.displayValue}</calcite-chip>`)}</calcite-chip-group>`}_updateSolutionCount(e){this.solutionsCount=e.detail}_syncSolutionChipOrderWithDisplayedCards(){if(!this._filters.categories?.length)return;let e=this._filters.categories.filter(l=>l.type==="solution");if(e.length<=1)return;let t=this._allSolutionsPanelRef.value?.getDisplayedSolutionIds?.()??[];if(!t.length)return;let i=new Map;t.forEach((l,p)=>{i.set(l,p)});let s=[...e].sort((l,p)=>{let m=i.get(String(l.value)),b=i.get(String(p.value)),T=m===void 0?Number.MAX_SAFE_INTEGER:m,P=b===void 0?Number.MAX_SAFE_INTEGER:b;return T-P}),n=this._filters.categories.filter(l=>l.type!=="solution");this._filters={...this._filters,categories:[...n,...s]}}_chipClosed(e,t){if(this._filters.categories){if(t==="solution"){this._filters={...this._filters,categories:[]},window.dispatchEvent(new CustomEvent("clearAssistantResultFilters")),this._allSolutionsPanelRef.value?.searchSolutions(),this._filters.searchTerm!==""&&this._allSolutionsPanelRef.value?.searchSolutions({searchTerm:this._filters.searchTerm});return}if(t==="industry")this._filters.categories=[];else{let i=this._filters.categories.filter(s=>s.displayValue!==e&&s.type!==t);this._filters.categories=i}this._filters.categories.length>0?this._allSolutionsPanelRef.value?.searchSolutions(this._filters.categories):this._filters.searchTerm!==""?(this._allSolutionsPanelRef.value?.searchSolutions(this._filters.categories),this._allSolutionsPanelRef.value?.searchSolutions({searchTerm:this._filters.searchTerm})):this._allSolutionsPanelRef.value?.searchSolutions(),this.filterRemoved.emit(this._filters.categories)}}_applyAssistantSolutionMatches(e){let t=Array.isArray(e?.solutionIds)?e.solutionIds:[],i=Array.isArray(e?.solutionTitles)?e.solutionTitles:[],s=t.map((n,l)=>({type:"solution",value:n,displayValue:i[l]??n}));this._filters={categories:s,searchTerm:"",displayValue:this._translations.aiAssistantResults},this.filterRemoved.emit([])}_toggleFilter(){this._filterOpen=!this._filterOpen}_logFilterTelemetry(e){if((e.type==="industry"||e.type==="domain")&&e.industry){let t=[u[e.industry]];if(e.domain){let i=f[e.domain];t.push(i)}this._telemetry?.logEvent({category:_.ALL_SOLUTIONS,action:"Filter",dimensions:t})}}_filterApplied(e,t){if(this._filters.categories)if(e){let i=e;if("displayValue"in e)this._filters.categories.push(e),this._logFilterTelemetry(e);else if(Array.isArray(e)&&e.length>0){e.length>=2&&(i=[e[e.length-1]]),this._filters={categories:e,searchTerm:this._filters.searchTerm};let s=e[e.length-1];s&&this._logFilterTelemetry(s)}if("searchTerm"in i&&(this._filters.searchTerm=i.searchTerm,t&&i.searchTerm)){this._telemetry?.logEvent({category:_.ALL_SOLUTIONS,action:"Search",dimensions:[i.searchTerm]});return}this._allSolutionsPanelRef.value?.searchSolutions(i)}else this._filters.categories=[],this._allSolutionsPanelRef.value?.searchSolutions()}};w("solutions-all-shell",g);return g},b)
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
+
import"./EXBEKVP5.js";var e=`# Your Role\r
|
|
3
|
+
You are the ArcGIS Solutions assistant. You respond to requests that are outside the supported capabilities for solution exploration or solution building, or to questions about the assistant itself.\r
|
|
4
|
+
\r
|
|
5
|
+
# Your Task\r
|
|
6
|
+
- Analyze the User Query and chat history\r
|
|
7
|
+
- Provide a response using the guidance below\r
|
|
8
|
+
- You are NOT here to solve, interpret, summarize, define, or partially address the original request, even if the information is commonly known or available from general knowledge.\r
|
|
9
|
+
\r
|
|
10
|
+
Always prioritize the latest User Query over chat history when there is a conflict.\r
|
|
11
|
+
\r
|
|
12
|
+
# Language\r
|
|
13
|
+
- Detect the primary language of the User Query\r
|
|
14
|
+
- Set response_language = detected language\r
|
|
15
|
+
- ALL parts of the response MUST be in response_language\r
|
|
16
|
+
\r
|
|
17
|
+
# Supported Capabilities\r
|
|
18
|
+
You can help with:\r
|
|
19
|
+
- Exploring existing solutions and understanding what they do\r
|
|
20
|
+
- Answering questions using ArcGIS Solutions documentation\r
|
|
21
|
+
- Building a solution for a specific workflow or use case\r
|
|
22
|
+
\r
|
|
23
|
+
# Response Guidance\r
|
|
24
|
+
- If the message is conversational and does not introduce a new task:\r
|
|
25
|
+
- Respond naturally and politely\r
|
|
26
|
+
- If the user asks about the assistant:\r
|
|
27
|
+
- Respond briefly at a high level and describe your capabilities\r
|
|
28
|
+
- For all other requests:\r
|
|
29
|
+
- Briefly acknowledge the request and explain that you can\u2019t help with it\r
|
|
30
|
+
- Describe what you can help with\r
|
|
31
|
+
- Optionally end responses with an open-ended invitation asking how you can help with ArcGIS Solutions\r
|
|
32
|
+
\r
|
|
33
|
+
# Additional Rules\r
|
|
34
|
+
- When stating what you can help with, do not explain, reinterpret, or relate the capabilities to the user\u2019s request\r
|
|
35
|
+
- Do not offer alternative, similar, or partial help beyond the stated capabilities\r
|
|
36
|
+
- Treat general knowledge, definitional, or explanatory questions as unsupported, even if the answer is commonly known\r
|
|
37
|
+
- If you are describing something a user explores, builds, designs, updates, or deploys, use the generic equivalent of "solution" or "solutions" in the response_language\r
|
|
38
|
+
- Refer to yourself as the ArcGIS Solutions assistant if asked\r
|
|
39
|
+
- Do not mention internal reasoning, routing, or system details\r
|
|
40
|
+
- Keep responses concise, friendly, and professional\r
|
|
41
|
+
\r
|
|
42
|
+
# User Query\r
|
|
43
|
+
{query}`;export{e as default};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
+
import{a as _}from"./DIBK4RSG.js";import"./QMAV4UTN.js";import"./Y2AUIXNK.js";import{b as y}from"./HIPZRG2Q.js";import{F as g,G as b,H as f,J as w,h as m,i as l,q as o,u as p}from"./T3EPRHTT.js";import"./EXBEKVP5.js";export default $arcgis.t(([c])=>{var v=m`@layer{:host{display:block}.hide-editor-toolbar .esri-editor__panel-toolbar,.display-none{display:none!important}.esri-editor__panel-content{padding-block:10px!important}.notice-msg{padding:10px;width:calc(100% - 20px)}}`,h=class extends f{constructor(){super(...arguments),this.customizeSubmit=!1,this.enableSnapping=!1,this.showGuidingMsg=!0,this._editorLoading=!1,this._translations=_({name:"create-related-feature",blocking:!0}),this._addingAttachment=!1,this._editor=g(),this._isSubmitBtnClicked=!1,this.success=o(),this.fail=o(),this.isActionPending=o(),this.formReady=o(),this._onEditorPropertyChange=()=>{let t=this._editor.value;t&&(c.watch(()=>t.state,e=>{e==="adding-attachment"||e==="editing-attachment"?(this._addingAttachment=!0,this.isActionPending.emit(!0)):this._addingAttachment&&(this.isActionPending.emit(!1),this._addingAttachment=!1)}),c.watch(()=>t.activeWorkflow?.formViewModel?.status,e=>{e==="loaded"&&this.formReady.emit()}))}}static{this.properties={customizeSubmit:5,enableSnapping:5,mapView:0,selectedFeature:0,showGuidingMsg:5,table:0,_editorLoading:16,_translations:16}}static{this.styles=v}static{this.shadowRootOptions=p}async submit(){this._editor.value?.activeWorkflow&&(this._isSubmitBtnClicked=!0,this._editor.value.activeWorkflow?.formViewModel?.submit())}render(){let t=this._editorLoading?"":"display-none";return l`${this.showGuidingMsg&&l`<calcite-notice class="notice-msg" icon=lightbulb kind=success open><div slot=message>${this._translations.provideDetailsMsg}</div></calcite-notice>`||""}<calcite-loader class=${w(t)} .label=${this._translations.loading} scale=s></calcite-loader>${this.mapView&&this._getEditor()||""}`}disconnectedCallback(){super.disconnectedCallback(),this._editor.value&&this._editor.value.destroy()}_getEditor(){return l`<arcgis-editor .view=${this.mapView} hide-edit-features-section .hideSettingsMenu=${!this.enableSnapping} hide-sketch .hideSnappingControlsElementsEnabledToggle=${!this.enableSnapping} @arcgisReady=${this._startCreate} @arcgisPropertyChange=${this._onEditorPropertyChange} ${b(this._editor)}></arcgis-editor>`}async _startCreate(){let t=this.selectedFeature?.layer,e=this.table;if(t.relationships&&e?.relationships&&this.selectedFeature&&e.templates){let s=t.relationships[0],i=e.relationships.find(r=>t.layerId===r.relatedTableId),a=Number(this.selectedFeature.getObjectId());if(!Number.isNaN(a)&&i){let r=(await t.queryFeatures({objectIds:[a],outFields:[t.objectIdField,s.keyField]})).features[0],n=e.templates[0],d={attributeOverrides:this.makeAttributesForRelatedFeature(r,s,i),layer:e,template:n};await this._editor.value?.startCreateFeaturesWorkflowAtFeatureCreation(d),await this.hideEditorsElements();let u=this._editor.value?.activeWorkflow?.formViewModel;u&&this._editor.value?.activeWorkflow?.formViewModel?.addHandles(u.on("submit",this.submitted.bind(this)))}}}async hideEditorsElements(){this.customizeSubmit&&(await this.timeout(700),this.el.querySelector("arcgis-editor")?.shadowRoot?.querySelectorAll("calcite-flow-item")?.forEach(t=>{let e=t.shadowRoot?.querySelector("calcite-panel")?.shadowRoot?.querySelector("article");e?.querySelector("header")?.setAttribute("style","display: none"),e?.querySelector("footer")?.setAttribute("style","display: none")}))}makeAttributesForRelatedFeature(t,e,s){let i=e.keyField,a;t.attributes.hasOwnProperty(i)?a=t.getAttribute(i):t.attributes.hasOwnProperty(i.toLowerCase())?a=t.getAttribute(i.toLowerCase()):t.attributes.hasOwnProperty(i.toUpperCase())&&(a=t.getAttribute(i.toUpperCase()));let r=s.keyField,n=this.table?.fields.find(d=>d.name.toLocaleLowerCase()===r.toLocaleLowerCase());if(n)return r=n.name,{[r]:a}}async submitted(t){if(t.results[0]?.invalidFields.length||t.results[0]?.invalidAttachmentElementIds.length){this._isSubmitBtnClicked=!1;return}if(this._isSubmitBtnClicked){this._isSubmitBtnClicked=!1;try{if(this._editor.value?.activeWorkflow){await this._editor.value.activeWorkflow.commit();let e=this._editor.value.activeWorkflow.data?.viewModel?.failures;if(e?.length){e.some(s=>{if(s.error)throw s.error});return}}}catch(e){this.fail.emit(e);return}this.success.emit()}}async timeout(t){return await new Promise(e=>setTimeout(e,t))}};y("create-related-feature",h);return h},"core/reactiveUtils")
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import f from"./RYJ556XB.js";import e from"./YOBHTTO5.js";import d from"./P5RZHVDH.js";import a from"./WDASGI72.js";import{a as $,b as C}from"./2B4SGB3I.js";import{b as g}from"./RLSY4VUQ.js";import{la as S,ra as k}from"./RDRCAA3H.js";import{a as w}from"./DIBK4RSG.js";import{b as y}from"./HIPZRG2Q.js";import{H as _,J as x,K as v,L as c,h as b,i as t,q as r}from"./T3EPRHTT.js";export default $arcgis.t(([{h:h,m:d,t:D,u:I},{a:T,c:O,g:N,r:l},{d:m,h:P,i:u},{a:M}])=>{var U=b`.negative-tabbing-offset[tabindex]:focus-visible{outline:2px solid var(--calcite-color-brand);outline-offset:-2px}.tabbing-offset[tabindex]:focus-visible{outline:2px solid var(--calcite-color-brand);outline-offset:2px}.font-weight-med{font-weight:var(--calcite-font-weight-medium)}.font-weight-bold{font-weight:var(--calcite-font-weight-bold)}.heading-font{font-size:var(--calcite-font-size-0);font-weight:var(--calcite-font-weight-medium)}.title-font{font-size:1.8rem;font-weight:var(--calcite-font-weight-medium);color:var(--calcite-color-text-1)}.font-1{font-size:var(--calcite-spacing-lg)}.display-flex{display:flex}.display-none{display:none}.flex-direction-column{flex-direction:column}.flex-direction-row{flex-direction:row}@container (min-width: 801px){.font-size-override .display-flex.flex-direction-row>.image-width+.display-flex{flex:1;min-width:0}}.icon-color{color:var(--calcite-color-text-3)}.padding-bottom-lg{padding-bottom:var(--calcite-spacing-lg)}.item-padding{--calcite-internal-accordion-item-padding: var(--calcite-spacing-xl)}.align-items-center{align-items:center}.align-items-start{align-items:start}.font-size-override{--calcite-font-size--2: var(--calcite-font-size--1)}.background-color-1{background-color:var(--calcite-color-surface-2)}.background-color-2{background-color:var(--calcite-color-surface-3)}.label-override{--calcite-label-margin-bottom: var(--calcite-spacing-none)}.position-relative{position:relative}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.margin-block-start-end-0{margin-block-start:var(--calcite-spacing-none);margin-block-end:var(--calcite-spacing-none)}.panel-background-2{--calcite-panel-background-color: var(--calcite-color-surface-3);background-color:var(--calcite-color-surface-3)}.panel-background-1{--calcite-panel-background-color: var(--calcite-color-surface-2);--calcite-shell-panel-background-color: var(--calcite-color-surface-2)}.border-none{border:none}.font-color-1{color:var(--calcite-color-text-1)}.panel-bg-color{--calcite-panel-header-background-color: var(--calcite-color-surface-2);--calcite-panel-background-color: var(--calcite-color-surface-2)}.dialog-y-size{--calcite-dialog-size-y: 90% }.dialog-x-size{--calcite-dialog-size-x: 90% }.bottom-border{border-bottom:solid var(--calcite-spacing-px);color:var(--calcite-color-border-1)}.margin-start-end-xxl{margin-inline-start:var(--calcite-spacing-xxl);margin-inline-end:var(--calcite-spacing-xxl)}.margin-start-end-lg{margin-inline-start:var(--calcite-spacing-lg);margin-inline-end:var(--calcite-spacing-lg)}.margin-top-xxl{margin-top:var(--calcite-spacing-xxl)}.justify-between{justify-content:space-between}.items-baseline{align-items:baseline}.padding-xxl{padding:var(--calcite-spacing-xxl)}.padding-lg{padding:var(--calcite-spacing-lg)}.padding-top-xxl{padding-top:var(--calcite-spacing-xxl)}.padding-top-lg{padding-top:var(--calcite-spacing-lg)}.padding-bottom-xxl{padding-bottom:var(--calcite-spacing-xxl)}.padding-end-1{padding-inline-end:var(--calcite-spacing-lg)}.padding-end-xxl{padding-inline-end:var(--calcite-spacing-xxl)}.padding-start-sm{padding-inline-start:var(--calcite-spacing-sm)}.padding-start-xxl{padding-inline-start:var(--calcite-spacing-xxl)}.image-width{width:300px;flex-grow:0;flex-shrink:0}@container (max-width: 1280px){.image-width{flex-grow:0;flex-shrink:1}}img{max-width:100%;height:auto;overflow-clip-margin:content-box;overflow:clip;display:block}.margin-xl{margin:var(--calcite-spacing-xl)}.line-height-1{line-height:1.1}.line-height-xxl{line-height:var(--calcite-line-height-xxl)}@container (max-width: 800px){.font-size-override .display-flex.flex-direction-row{flex-direction:column!important}.image-width{width:100%!important;max-width:100%!important;margin:0!important;padding:var(--calcite-spacing-lg)!important;padding-bottom:0!important;box-sizing:border-box}.image-width img{width:100%;max-width:100%}.margin-xl{margin:0!important}.image-width+.display-flex{padding-inline-start:var(--calcite-spacing-lg)!important;padding-inline-end:var(--calcite-spacing-lg)!important}.padding-start-sm{padding-inline-start:0!important}.title-font{padding-inline-start:0!important;padding-top:var(--calcite-spacing-lg)!important;padding-bottom:var(--calcite-spacing-lg)!important}.align-items-start.padding-bottom-xxl,.padding-bottom-xxl.padding-start-sm{padding-bottom:var(--calcite-spacing-lg)!important}}calcite-shell-panel{--calcite-shell-panel-max-width: 20rem;--calcite-shell-panel-width: 24vw}calcite-shell{block-size:unset}.solution-deployed-action{--calcite-color-focus: initial}.solution-deployed-action.padding-bottom-lg,.solution-deployed-action.padding-bottom-1{padding-bottom:0;margin-bottom:var(--calcite-spacing-lg)}.solution-deployed-action.padding-top-1{padding-top:0;margin-top:var(--calcite-spacing-lg)}.chipClass{padding-left:var(--calcite-spacing-sm)!important;padding-right:var(--calcite-spacing-sm)!important}.skeleton-loader{background:linear-gradient(90deg,var(--calcite-color-foreground-1) 0%,var(--calcite-color-foreground-2) 50%,var(--calcite-color-foreground-1) 100%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:var(--calcite-border-radius)}.skeleton-folder{height:1.5rem;width:12rem;border-radius:var(--calcite-border-radius)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}`,f=class extends _{constructor(){super(),this.diagramKey="",this.open=!1,this.readOnlyNotice="",this.templateInfos=[],this._accordionLoading=!1,this._configureTitlesOpen=!1,this._deleteDialogOpen=!1,this._hasNewVersion=!1,this._hasSourceSolution=!1,this._isDiagramOpen=!1,this._isNameConflict=!1,this._invalidNameMessage="",this._showFailedAlert=!1,this._showItemUpdateLoading=!1,this.isMobile=!1,this._templateInfoGraph=[],this._thumbnailUrl="",this._folderName="",this._folderId=null,this._folderLoading=!1,this._translations=w({name:"solution-deployed-card-panel",blocking:!0}),this._configContextConsumer=g({context:C,subscribe:!0,callback:async e=>{e&&(this._isOrgAdmin=O(e.authentication),this._user=e.authentication?.Portal?.user)}}),this._isOrgAdmin=!1,this._isMobileContextConsumer=g({context:$,subscribe:!0,callback:e=>this.isMobile=e}),this.navTabSelected=r(),this.forceSelectTab=r(),this.sortTypeChanged=r(),this.solutionConfigureDialogClose=r(),this._nonSolutionDependencyItems=[],this._openFolder=e=>{e.stopPropagation(),this._telemetry?.logEvent({category:l.DEPLOYMENTS,action:"Open Folder",dimensions:[this.card?.title||"",this.card?.deployCommonId||"",this.card?.deployVersion||"","Details Page"]});let i=this._configContextConsumer.value?.orgUrl;if(!i)return;let a=this._configContextConsumer.value?.userSession?.username,n=this.card?.owner===a,o;if(n){let s=this._folderId||this.card?.owner;o=`${i}/home/content.html?folder=${s}`}else this._folderId?o=`${i}/home/content.html?user=${this.card?.owner}&folder=${this._folderId}`:o=`${i}/home/content.html?user=${this.card?.owner}&folder=${this.card?.owner}`;window.open(o,"_blank")},this._openSourceSolutionDetails=async e=>{e.stopPropagation(),this._telemetry?.logEvent({category:l.DEPLOYMENTS,action:"Open Details",dimensions:[this.card?.title||"",this.card?.deployCommonId||"",this.card?.deployVersion||""]}),await new Promise(a=>setTimeout(a,100));let i=u(this._configContextConsumer.value.allCards,this.card.deployCommonId);i&&this.forceSelectTab.emit({tabType:"details",tabTitleOrId:i})},this.listenOn(window,"deployedCardSelected",this._deployedCardSelected),this.listenOn(window,"deployAppTabSelected",this._handleDeployAppTabSelected),this.listenOn(window,"displayDeployedCard",()=>{D({kind:"success",icon:"check-circle",title:this._translations.deploySuccessAlert.replace("{{solutionTitle}}",this.card?.title??""),message:"",autoClose:!0,autoCloseDuration:"medium"})}),this.listenOn(window,"sessionRefreshed",e=>{this._updateThumbnailToken(e.detail)})}static{this.properties={card:0,cardRef:1,diagramKey:1,open:5,readOnlyNotice:1,templateInfos:0,_accordionLoading:16,_configureTitlesOpen:16,_deleteDialogOpen:16,_hasNewVersion:16,_hasSourceSolution:16,_isDiagramOpen:16,_isNameConflict:16,_invalidNameMessage:16,_showFailedAlert:16,_showItemUpdateLoading:16,isMobile:16,_templateInfoGraph:16,_thumbnailUrl:16,_folderName:16,_folderId:16,_folderLoading:16,_translations:16,_nonSolutionDependencyItems:16}}static{this.styles=U}get _telemetry(){return this._configContextConsumer.value?.telemetrySession}async load(){if(this._isMobileContextConsumer.value&&(this.isMobile=this._isMobileContextConsumer.value),this.card?.thumbnailUrl){let e=this._configContextConsumer.value?.userSession,i=this.card?.thumbnailUrl.replace(/w=\d+/,"w=400");this._thumbnailUrl=`${i}&token=${e?.token}`}}willUpdate(e){if(e.has("card")){let i=this._configContextConsumer.value?.userSession,a=this.card?.thumbnailUrl.replace(/w=\d+/,"w=400");this._thumbnailUrl=`${a}&token=${i?.token}`,this._folderLoading=!0,this._folderName="",this._folderId=null}}render(){let e=this.card&&this.card.typeKeywords?.includes("AIAssistant");return this.isMobile?t`<calcite-shell class="position-relative background-color-2"><calcite-panel class="panel-background-2 border-none" slot=panel-bottom><div class="background-color-2 padding-top-lg">${this._getSolutionPanel()}</div><div class="background-color-1 margin-top-xxl">${this._getButtons()}${this._getOwnerSection()}<div class="bottom-border margin-start-end-xxl"></div>${this._getFolderSection()}${!e&&t`<div class="bottom-border margin-start-end-xxl"></div>`||""}${!e&&this._getSolutionVersionCard()||""}</div>${this._getSolutionContents()}</calcite-panel></calcite-shell>`:t`<calcite-shell class="position-relative background-color-2"><calcite-panel class="padding-end-xxl panel-background-2 border-none" slot=panel-bottom><div class="display-flex flex-direction-column overflow-hidden"><div class="background-color-2 padding-top-xxl">${this._getSolutionPanel()}</div>${this._getSolutionContents()}</div></calcite-panel><calcite-shell-panel class="panel-background-1" slot=panel-end>${this._getButtons()}${this._getOwnerSection()}<div class="bottom-border margin-start-end-xxl"></div>${this._getFolderSection()}${!e&&t`<div class="bottom-border margin-start-end-xxl"></div>`||""}${!e&&this._getSolutionVersionCard()||""}</calcite-shell-panel>${this._renderDiagramDialog()}${this._getConfigureTitlesDialog()}${this._getDeleteDialog()}</calcite-shell>`}async _deployedCardSelected(e){let i=e.detail;this.card=i.card,this.cardRef=i.cardRef,this.templateInfos=[],this._accordionLoading=!0,this.templateInfos=await this._getTemplates(),this._accordionLoading=!1;let a=await M(this._configContextConsumer.value.userSession,this.card);this._nonSolutionDependencyItems=a._nonSolutionDependencyItems;let n=P(this._configContextConsumer.value?.allCards||[],this.card.deployCommonId);this._hasSourceSolution=!!n;let o=!1;if(n){let s=m(n),p=m(this.card);o=s>p}this._hasNewVersion=o,this._folderLoading=!0,this._folderName="",this._folderId=null,await this._fetchFolderInfo(),this._folderLoading=!1}_handleDeployAppTabSelected(e){e.detail==="deployed-card"&&this.sortTypeChanged.emit("")}_getButtons(){let e=this._configContextConsumer.value?.userSession?.username,i=this._configContextConsumer.value?.authentication?.CanUpdateSolution,a=this._configContextConsumer.value?.authentication?.CanDeleteSolution&&this._configContextConsumer.value?.authentication?.CanUpdateSolution,n=h(this._configContextConsumer.value),o=this.card?.owner===e||this._isOrgAdmin||i,s=this.card?.owner===e||this._isOrgAdmin||a,p=o?"display-none":"",L=this.isMobile?"padding-lg":"padding-xxl";return t`<div class=${`display-flex flex-direction-column ${L}`}>${!this.isMobile&&t`<calcite-button appearance=outline-fill class="padding-bottom-1 solution-deployed-action" kind=neutral @click=${this._openDiagram} scale=m width=full>${this._translations.viewTheDiagram}</calcite-button>`||""}<calcite-button appearance=outline-fill class="padding-bottom-1 solution-deployed-action" kind=neutral @click=${this._viewDocumentation} scale=m width=full>${this._translations.solutionDocumentation}</calcite-button><calcite-button appearance=outline-fill class="padding-bottom-1 solution-deployed-action" kind=neutral @click=${this._openItemDetails} scale=m width=full>${this._translations.itemDetails}</calcite-button>${o&&!this.isMobile&&t`<calcite-button appearance=outline-fill class="padding-bottom-1 solution-deployed-action" .disabled=${n} id=solution-configure-titles-button kind=neutral @click=${this._openConfigureTitlesDialog} scale=m width=full>${this._translations.updateTitles}</calcite-button><calcite-tooltip class=${x(p)} overlay-positioning=fixed reference-element=solution-configure-titles-button><span>${this._translations.mustOwnSolution}</span></calcite-tooltip>`||""}${s&&!this.isMobile&&t`<calcite-button appearance=outline-fill class="padding-bottom-1 solution-deployed-action" .disabled=${n} kind=neutral @click=${this._deleteSolution} scale=m width=full>${this._translations.deleteSolution}</calcite-button>`||""}</div>`}_getReadOnlyNotice(){return t`<calcite-notice class="padding-bottom-lg" icon=exclamation-mark-triangle kind=warning open scale=s><div slot=message .innerHTML=${this.readOnlyNotice??""}></div></calcite-notice>`}_openConfigureTitlesDialog(){this._configureTitlesOpen=!0}_getConfigureTitlesDialog(){return this._configureTitlesOpen?t`<solution-configure-titles .card=${this.card} @solutionConfigureTitlesBeforeClose=${async()=>{this.templateInfos=await this._getTemplates(),this._configureTitlesOpen=!1}} @solutionItemsTitlesChanged=${async()=>{this.templateInfos=await this._getTemplates()}} .open=${this._configureTitlesOpen} source="Details Page" .templateInfos=${this.templateInfos}></solution-configure-titles>`:""}_viewDocumentation(e){e.stopPropagation(),this._telemetry?.logEvent({category:l.DEPLOYMENTS,action:"Open Help",dimensions:[this.card?.title||"",this.card?.deployCommonId||"",this.card?.deployVersion||"","Details Page",d(this.card?.typeKeywords)]}),window.open(this.card.learnMoreUrl,"_blank")}_openItemDetails(e){e.stopPropagation(),this._telemetry?.logEvent({category:l.DEPLOYMENTS,action:"Open Item Details",dimensions:[this.card?.title||"",this.card?.deployCommonId||"",this.card?.deployVersion||"","Details Page",d(this.card?.typeKeywords)]}),window.open(this.card.itemUrl,"_blank")}_getOwnerSection(){if(!this._configContextConsumer?.value)return;let e=this.isMobile?"margin-start-end-lg":"margin-start-end-xxl";return t`<div class=${`display-flex padding-bottom-xxl ${e} flex-direction-column`}><div class="display-flex justify-between items-baseline"><calcite-label class="font-weight-med label-override tabbing-offset" layout=inline scale=l tabindex=0>${this._translations.aboutYourSolutionOwner}</calcite-label></div><solution-user-avatar .fullname=${this._user?.username===this.card?.owner?this._user?.fullName:void 0} .lookupProfile=${this._user?.username!==this.card?.owner} .thumbnailUrl=${this._user?.username===this.card?.owner?this._user?.thumbnailUrl:void 0} .username=${this.card?.owner}></solution-user-avatar></div>`}async _openDiagram(e){e.stopPropagation();let i=await this._getTemplates();i&&(this._telemetry?.logEvent({category:l.DEPLOYMENTS,action:"View Diagram",dimensions:[this.card?.title||"",this.card?.deployCommonId||"",this.card?.deployVersion||"","Details Page",d(this.card?.typeKeywords)]}),this._templateInfoGraph=i,this._isDiagramOpen=!0)}async _getTemplates(){return this.cardRef?await this.cardRef.getTemplates():this.card?await T(this.card.id,this._configContextConsumer.value.userSession):void 0}async _fetchFolderInfo(){if(this.card?.id)try{let e=this._configContextConsumer.value?.userSession;if(!e)return;let i=await k(this.card.id,e);if(this._folderId=i.ownerFolder??null,this._folderId){let a=await S(this.card.owner,this._folderId,e);this._folderName=a?.currentFolder?.title||this._folderId}else this._folderName=this.card.owner||"Root"}catch(e){console.error("Error fetching folder info:",e),this._folderId=null,this._folderName=""}}_getFolderSection(){let e=this.isMobile?"padding-lg":"padding-xxl",i=this._folderId?"folder":"home";return t`<div class=${`${e} display-flex flex-direction-column`}><div class="display-flex justify-between items-baseline"><calcite-label class="font-weight-med label-override tabbing-offset" layout=inline scale=l slot=heading tabindex=0>${this._translations.folder}</calcite-label><calcite-button appearance=transparent aria-label=${this._translations.openFolder??c} .disabled=${this._folderLoading} kind=neutral icon-start=launch2 @click=${this._openFolder}>${this._translations.openFolder}</calcite-button></div><div class="display-flex"><div class="display-flex flex-direction-row padding-top-lg align-items-center">${this._folderLoading?t`<div class="skeleton-loader skeleton-folder"></div>`:t`<calcite-icon aria-hidden=true class="icon-color" .icon=${i} scale=m></calcite-icon><div class="display-flex flex-direction-column padding-start-xxl"><span class="tabbing-offset" tabindex=0>${this._folderName||"Root"}</span></div>`}</div></div></div>`}_getSolutionVersionCard(){let e=this._hasNewVersion?this._translations.newVersionAvailable:this._translations.youHaveTheLatestVersion,i=this.isMobile?"padding-lg":"padding-xxl";return t`<div class=${`${i} display-flex flex-direction-column`}><calcite-label class="font-weight-med label-override tabbing-offset" layout=inline scale=l slot=heading tabindex=0>${this._translations.solutionVersion.replace("{{version}}",this.card?.deployVersion||"")}</calcite-label><div class="display-flex"><div class="display-flex flex-direction-row padding-top-lg align-items-center"><calcite-icon aria-hidden=true class="icon-color" icon=clock-forward scale=m></calcite-icon><div class="display-flex flex-direction-column padding-start-xxl"><span class="tabbing-offset" tabindex=0>${e}</span></div></div></div>${this._hasNewVersion?t`<calcite-button appearance=outline-fill class="padding-top-1 solution-deployed-action" kind=neutral @click=${this._openNewVersionSolution} scale=m width=full>${this._translations.learnMoreNewVersion}</calcite-button>`:this._hasSourceSolution?t`<calcite-button appearance=outline-fill class="padding-top-1 solution-deployed-action" kind=neutral @click=${this._openSourceSolutionDetails} scale=m width=full>${this._translations.openDetails}</calcite-button>`:null}</div>`}async _openNewVersionSolution(e){e.stopPropagation(),this._telemetry?.logEvent({category:l.DEPLOYMENTS,action:"View Latest Version",dimensions:[this.card?.title||"",this.card?.deployCommonId||"",this.card?.deployVersion||""]}),await new Promise(a=>setTimeout(a,100));let i=u(this._configContextConsumer.value.allCards,this.card.deployCommonId);i&&this.forceSelectTab.emit({tabType:"details",tabTitleOrId:i})}_getSolutionPanel(){let e=this.card&&this.card.typeKeywords?.includes("AIAssistant");return t`<calcite-panel class="font-size-override panel-background-1"><div class="display-flex flex-direction-row"><div class="image-width margin-xl"><img alt=${this.card?.title??c} src=${this._thumbnailUrl??c}></div><div class="display-flex flex-direction-column"><h1 class="title-font margin-block-start-end-0 padding-end-xxl padding-start-sm padding-top-xxl padding-bottom-xxl line-height-1 negative-tabbing-offset" tabindex=0>${this.card?.title}${e&&this._getChips()||""}</h1><div class="display-flex flex-direction-column padding-bottom-xxl padding-start-sm"><div class="display-flex align-items-start padding-bottom-xxl"><div class="font-1 padding-end-1 line-height-xxl negative-tabbing-offset" tabindex=0>${this.card?.snippet}</div></div><div class="display-flex"><div class="display-flex"><calcite-label class="label-override icon-color tabbing-offset" layout=inline tabindex=0><calcite-icon aria-hidden=true class="icon-color" icon=projects scale=s></calcite-icon>${this._translations.aboutYourSolutionDeployedDate.replace("{{deployedDate}}",this.card?.created||"")}</calcite-label></div></div>${h(this._configContextConsumer.value)&&t`<div class="display-flex flex-direction-row padding-end-xxl" style=${v({paddingTop:"1rem"})}>${this._getReadOnlyNotice()}</div>`||""}</div></div></div></calcite-panel>`}_getSolutionContents(){let e=this.card?I(this._nonSolutionDependencyItems,this.card.id):[];return t`<calcite-panel class="panel-background-1 padding-top-xxl"><calcite-accordion class="accordion-bg " icon-position=start scale=l appearance=transparent><calcite-accordion-item class="item-padding" expanded><div class="margin-block-start-end-0 heading-font " slot=content-start>${this._translations.solutionsContentsAndCount.replace("{{numberOfSolutions}}",this.templateInfos.length.toString())}</div><div class="overflow-auto">${this._accordionLoading?t`<calcite-loader .label=${this._translations.loadingText} scale=m></calcite-loader>`:t`<solution-item-accordion .itemRelationshipDependencies=${e} .listSelectionMode=${e.length>0?"multiple":"single"} .reuseWarning=${this._translations.itemUsedInOtherSolutions} .templateInfos=${this.templateInfos} .typeKeywords=${this.card?.typeKeywords}></solution-item-accordion>`}</div></calcite-accordion-item></calcite-accordion></calcite-panel>`}_getDeleteDialog(){return this._deleteDialogOpen?t`<solution-delete-dialog .card=${this.card} @solutionDeleted=${()=>setTimeout(()=>this.navTabSelected.emit({tabType:"deployments"}),100)} @solutionDeleteDialogBeforeClose=${()=>{this._deleteDialogOpen=!1}} .open=${this._deleteDialogOpen} source="Details Page"></solution-delete-dialog>`:""}_renderDiagramDialog(){return this._isDiagramOpen?t`<calcite-dialog class="dialog-y-size dialog-x-size panel-bg-color" .heading=${this._translations.diagramOfTheSolution.replace("{{solution}}",this.card?.title??"")} id=${this._translations.diagramOfTheSolution.replace("{{solution}}",this.card?.title??"")??c} modal .open=${this._isDiagramOpen} @calciteDialogClose=${()=>{this._isDiagramOpen=!1}} outside-close-disabled scale=m width=l><solution-item-diagram .diagramKey=${this.diagramKey!==""?this.diagramKey:this._configContextConsumer.value?.diagramKey??""} .templateInfoGraph=${this._templateInfoGraph} .typeKeywords=${this.card?.typeKeywords}></solution-item-diagram></calcite-dialog>`:""}_getChips(){return t`<calcite-chip class="chipClass" icon=effects .label=${this._translations.builtWithAI} scale=s>${this._translations.builtWithAI}</calcite-chip>`}async _deleteSolution(){this._deleteDialogOpen=!0}_updateThumbnailToken(e){this._thumbnailUrl!==""&&(this._thumbnailUrl=N(this._thumbnailUrl,e))}};y("solution-deployed-card-panel",f);return f},a,d,e,f)
|
|
2
|
+
import f from"./PM7QF66M.js";import e from"./YOBHTTO5.js";import d from"./JJLYSRRX.js";import a from"./WDASGI72.js";import{a as $,b as C}from"./2B4SGB3I.js";import{b as g}from"./RLSY4VUQ.js";import{la as S,ra as k}from"./RDRCAA3H.js";import{a as w}from"./DIBK4RSG.js";import{b as y}from"./HIPZRG2Q.js";import{H as _,J as x,K as v,L as c,h as b,i as t,q as r}from"./T3EPRHTT.js";export default $arcgis.t(([{h:h,m:d,t:D,u:I},{a:T,c:O,g:N,r:l},{d:m,h:P,i:u},{a:M}])=>{var U=b`.negative-tabbing-offset[tabindex]:focus-visible{outline:2px solid var(--calcite-color-brand);outline-offset:-2px}.tabbing-offset[tabindex]:focus-visible{outline:2px solid var(--calcite-color-brand);outline-offset:2px}.font-weight-med{font-weight:var(--calcite-font-weight-medium)}.font-weight-bold{font-weight:var(--calcite-font-weight-bold)}.heading-font{font-size:var(--calcite-font-size-0);font-weight:var(--calcite-font-weight-medium)}.title-font{font-size:1.8rem;font-weight:var(--calcite-font-weight-medium);color:var(--calcite-color-text-1)}.font-1{font-size:var(--calcite-spacing-lg)}.display-flex{display:flex}.display-none{display:none}.flex-direction-column{flex-direction:column}.flex-direction-row{flex-direction:row}@container (min-width: 801px){.font-size-override .display-flex.flex-direction-row>.image-width+.display-flex{flex:1;min-width:0}}.icon-color{color:var(--calcite-color-text-3)}.padding-bottom-lg{padding-bottom:var(--calcite-spacing-lg)}.item-padding{--calcite-internal-accordion-item-padding: var(--calcite-spacing-xl)}.align-items-center{align-items:center}.align-items-start{align-items:start}.font-size-override{--calcite-font-size--2: var(--calcite-font-size--1)}.background-color-1{background-color:var(--calcite-color-surface-2)}.background-color-2{background-color:var(--calcite-color-surface-3)}.label-override{--calcite-label-margin-bottom: var(--calcite-spacing-none)}.position-relative{position:relative}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.margin-block-start-end-0{margin-block-start:var(--calcite-spacing-none);margin-block-end:var(--calcite-spacing-none)}.panel-background-2{--calcite-panel-background-color: var(--calcite-color-surface-3);background-color:var(--calcite-color-surface-3)}.panel-background-1{--calcite-panel-background-color: var(--calcite-color-surface-2);--calcite-shell-panel-background-color: var(--calcite-color-surface-2)}.border-none{border:none}.font-color-1{color:var(--calcite-color-text-1)}.panel-bg-color{--calcite-panel-header-background-color: var(--calcite-color-surface-2);--calcite-panel-background-color: var(--calcite-color-surface-2)}.dialog-y-size{--calcite-dialog-size-y: 90% }.dialog-x-size{--calcite-dialog-size-x: 90% }.bottom-border{border-bottom:solid var(--calcite-spacing-px);color:var(--calcite-color-border-1)}.margin-start-end-xxl{margin-inline-start:var(--calcite-spacing-xxl);margin-inline-end:var(--calcite-spacing-xxl)}.margin-start-end-lg{margin-inline-start:var(--calcite-spacing-lg);margin-inline-end:var(--calcite-spacing-lg)}.margin-top-xxl{margin-top:var(--calcite-spacing-xxl)}.justify-between{justify-content:space-between}.items-baseline{align-items:baseline}.padding-xxl{padding:var(--calcite-spacing-xxl)}.padding-lg{padding:var(--calcite-spacing-lg)}.padding-top-xxl{padding-top:var(--calcite-spacing-xxl)}.padding-top-lg{padding-top:var(--calcite-spacing-lg)}.padding-bottom-xxl{padding-bottom:var(--calcite-spacing-xxl)}.padding-end-1{padding-inline-end:var(--calcite-spacing-lg)}.padding-end-xxl{padding-inline-end:var(--calcite-spacing-xxl)}.padding-start-sm{padding-inline-start:var(--calcite-spacing-sm)}.padding-start-xxl{padding-inline-start:var(--calcite-spacing-xxl)}.image-width{width:300px;flex-grow:0;flex-shrink:0}@container (max-width: 1280px){.image-width{flex-grow:0;flex-shrink:1}}img{max-width:100%;height:auto;overflow-clip-margin:content-box;overflow:clip;display:block}.margin-xl{margin:var(--calcite-spacing-xl)}.line-height-1{line-height:1.1}.line-height-xxl{line-height:var(--calcite-line-height-xxl)}@container (max-width: 800px){.font-size-override .display-flex.flex-direction-row{flex-direction:column!important}.image-width{width:100%!important;max-width:100%!important;margin:0!important;padding:var(--calcite-spacing-lg)!important;padding-bottom:0!important;box-sizing:border-box}.image-width img{width:100%;max-width:100%}.margin-xl{margin:0!important}.image-width+.display-flex{padding-inline-start:var(--calcite-spacing-lg)!important;padding-inline-end:var(--calcite-spacing-lg)!important}.padding-start-sm{padding-inline-start:0!important}.title-font{padding-inline-start:0!important;padding-top:var(--calcite-spacing-lg)!important;padding-bottom:var(--calcite-spacing-lg)!important}.align-items-start.padding-bottom-xxl,.padding-bottom-xxl.padding-start-sm{padding-bottom:var(--calcite-spacing-lg)!important}}calcite-shell-panel{--calcite-shell-panel-max-width: 20rem;--calcite-shell-panel-width: 24vw}calcite-shell{block-size:unset}.solution-deployed-action{--calcite-color-focus: initial}.solution-deployed-action.padding-bottom-lg,.solution-deployed-action.padding-bottom-1{padding-bottom:0;margin-bottom:var(--calcite-spacing-lg)}.solution-deployed-action.padding-top-1{padding-top:0;margin-top:var(--calcite-spacing-lg)}.chipClass{padding-left:var(--calcite-spacing-sm)!important;padding-right:var(--calcite-spacing-sm)!important}.skeleton-loader{background:linear-gradient(90deg,var(--calcite-color-foreground-1) 0%,var(--calcite-color-foreground-2) 50%,var(--calcite-color-foreground-1) 100%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:var(--calcite-border-radius)}.skeleton-folder{height:1.5rem;width:12rem;border-radius:var(--calcite-border-radius)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}`,f=class extends _{constructor(){super(),this.diagramKey="",this.open=!1,this.readOnlyNotice="",this.templateInfos=[],this._accordionLoading=!1,this._configureTitlesOpen=!1,this._deleteDialogOpen=!1,this._hasNewVersion=!1,this._hasSourceSolution=!1,this._isDiagramOpen=!1,this._isNameConflict=!1,this._invalidNameMessage="",this._showFailedAlert=!1,this._showItemUpdateLoading=!1,this.isMobile=!1,this._templateInfoGraph=[],this._thumbnailUrl="",this._folderName="",this._folderId=null,this._folderLoading=!1,this._translations=w({name:"solution-deployed-card-panel",blocking:!0}),this._configContextConsumer=g({context:C,subscribe:!0,callback:async e=>{e&&(this._isOrgAdmin=O(e.authentication),this._user=e.authentication?.Portal?.user)}}),this._isOrgAdmin=!1,this._isMobileContextConsumer=g({context:$,subscribe:!0,callback:e=>this.isMobile=e}),this.navTabSelected=r(),this.forceSelectTab=r(),this.sortTypeChanged=r(),this.solutionConfigureDialogClose=r(),this._nonSolutionDependencyItems=[],this._openFolder=e=>{e.stopPropagation(),this._telemetry?.logEvent({category:l.DEPLOYMENTS,action:"Open Folder",dimensions:[this.card?.title||"",this.card?.deployCommonId||"",this.card?.deployVersion||"","Details Page"]});let i=this._configContextConsumer.value?.orgUrl;if(!i)return;let a=this._configContextConsumer.value?.userSession?.username,n=this.card?.owner===a,o;if(n){let s=this._folderId||this.card?.owner;o=`${i}/home/content.html?folder=${s}`}else this._folderId?o=`${i}/home/content.html?user=${this.card?.owner}&folder=${this._folderId}`:o=`${i}/home/content.html?user=${this.card?.owner}&folder=${this.card?.owner}`;window.open(o,"_blank")},this._openSourceSolutionDetails=async e=>{e.stopPropagation(),this._telemetry?.logEvent({category:l.DEPLOYMENTS,action:"Open Details",dimensions:[this.card?.title||"",this.card?.deployCommonId||"",this.card?.deployVersion||""]}),await new Promise(a=>setTimeout(a,100));let i=u(this._configContextConsumer.value.allCards,this.card.deployCommonId);i&&this.forceSelectTab.emit({tabType:"details",tabTitleOrId:i})},this.listenOn(window,"deployedCardSelected",this._deployedCardSelected),this.listenOn(window,"deployAppTabSelected",this._handleDeployAppTabSelected),this.listenOn(window,"displayDeployedCard",()=>{D({kind:"success",icon:"check-circle",title:this._translations.deploySuccessAlert.replace("{{solutionTitle}}",this.card?.title??""),message:"",autoClose:!0,autoCloseDuration:"medium"})}),this.listenOn(window,"sessionRefreshed",e=>{this._updateThumbnailToken(e.detail)})}static{this.properties={card:0,cardRef:1,diagramKey:1,open:5,readOnlyNotice:1,templateInfos:0,_accordionLoading:16,_configureTitlesOpen:16,_deleteDialogOpen:16,_hasNewVersion:16,_hasSourceSolution:16,_isDiagramOpen:16,_isNameConflict:16,_invalidNameMessage:16,_showFailedAlert:16,_showItemUpdateLoading:16,isMobile:16,_templateInfoGraph:16,_thumbnailUrl:16,_folderName:16,_folderId:16,_folderLoading:16,_translations:16,_nonSolutionDependencyItems:16}}static{this.styles=U}get _telemetry(){return this._configContextConsumer.value?.telemetrySession}async load(){if(this._isMobileContextConsumer.value&&(this.isMobile=this._isMobileContextConsumer.value),this.card?.thumbnailUrl){let e=this._configContextConsumer.value?.userSession,i=this.card?.thumbnailUrl.replace(/w=\d+/,"w=400");this._thumbnailUrl=`${i}&token=${e?.token}`}}willUpdate(e){if(e.has("card")){let i=this._configContextConsumer.value?.userSession,a=this.card?.thumbnailUrl.replace(/w=\d+/,"w=400");this._thumbnailUrl=`${a}&token=${i?.token}`,this._folderLoading=!0,this._folderName="",this._folderId=null}}render(){let e=this.card&&this.card.typeKeywords?.includes("AIAssistant");return this.isMobile?t`<calcite-shell class="position-relative background-color-2"><calcite-panel class="panel-background-2 border-none" slot=panel-bottom><div class="background-color-2 padding-top-lg">${this._getSolutionPanel()}</div><div class="background-color-1 margin-top-xxl">${this._getButtons()}${this._getOwnerSection()}<div class="bottom-border margin-start-end-xxl"></div>${this._getFolderSection()}${!e&&t`<div class="bottom-border margin-start-end-xxl"></div>`||""}${!e&&this._getSolutionVersionCard()||""}</div>${this._getSolutionContents()}</calcite-panel></calcite-shell>`:t`<calcite-shell class="position-relative background-color-2"><calcite-panel class="padding-end-xxl panel-background-2 border-none" slot=panel-bottom><div class="display-flex flex-direction-column overflow-hidden"><div class="background-color-2 padding-top-xxl">${this._getSolutionPanel()}</div>${this._getSolutionContents()}</div></calcite-panel><calcite-shell-panel class="panel-background-1" slot=panel-end>${this._getButtons()}${this._getOwnerSection()}<div class="bottom-border margin-start-end-xxl"></div>${this._getFolderSection()}${!e&&t`<div class="bottom-border margin-start-end-xxl"></div>`||""}${!e&&this._getSolutionVersionCard()||""}</calcite-shell-panel>${this._renderDiagramDialog()}${this._getConfigureTitlesDialog()}${this._getDeleteDialog()}</calcite-shell>`}async _deployedCardSelected(e){let i=e.detail;this.card=i.card,this.cardRef=i.cardRef,this.templateInfos=[],this._accordionLoading=!0,this.templateInfos=await this._getTemplates(),this._accordionLoading=!1;let a=await M(this._configContextConsumer.value.userSession,this.card);this._nonSolutionDependencyItems=a._nonSolutionDependencyItems;let n=P(this._configContextConsumer.value?.allCards||[],this.card.deployCommonId);this._hasSourceSolution=!!n;let o=!1;if(n){let s=m(n),p=m(this.card);o=s>p}this._hasNewVersion=o,this._folderLoading=!0,this._folderName="",this._folderId=null,await this._fetchFolderInfo(),this._folderLoading=!1}_handleDeployAppTabSelected(e){e.detail==="deployed-card"&&this.sortTypeChanged.emit("")}_getButtons(){let e=this._configContextConsumer.value?.userSession?.username,i=this._configContextConsumer.value?.authentication?.CanUpdateSolution,a=this._configContextConsumer.value?.authentication?.CanDeleteSolution&&this._configContextConsumer.value?.authentication?.CanUpdateSolution,n=h(this._configContextConsumer.value),o=this.card?.owner===e||this._isOrgAdmin||i,s=this.card?.owner===e||this._isOrgAdmin||a,p=o?"display-none":"",L=this.isMobile?"padding-lg":"padding-xxl";return t`<div class=${`display-flex flex-direction-column ${L}`}>${!this.isMobile&&t`<calcite-button appearance=outline-fill class="padding-bottom-1 solution-deployed-action" kind=neutral @click=${this._openDiagram} scale=m width=full>${this._translations.viewTheDiagram}</calcite-button>`||""}<calcite-button appearance=outline-fill class="padding-bottom-1 solution-deployed-action" kind=neutral @click=${this._viewDocumentation} scale=m width=full>${this._translations.solutionDocumentation}</calcite-button><calcite-button appearance=outline-fill class="padding-bottom-1 solution-deployed-action" kind=neutral @click=${this._openItemDetails} scale=m width=full>${this._translations.itemDetails}</calcite-button>${o&&!this.isMobile&&t`<calcite-button appearance=outline-fill class="padding-bottom-1 solution-deployed-action" .disabled=${n} id=solution-configure-titles-button kind=neutral @click=${this._openConfigureTitlesDialog} scale=m width=full>${this._translations.updateTitles}</calcite-button><calcite-tooltip class=${x(p)} overlay-positioning=fixed reference-element=solution-configure-titles-button><span>${this._translations.mustOwnSolution}</span></calcite-tooltip>`||""}${s&&!this.isMobile&&t`<calcite-button appearance=outline-fill class="padding-bottom-1 solution-deployed-action" .disabled=${n} kind=neutral @click=${this._deleteSolution} scale=m width=full>${this._translations.deleteSolution}</calcite-button>`||""}</div>`}_getReadOnlyNotice(){return t`<calcite-notice class="padding-bottom-lg" icon=exclamation-mark-triangle kind=warning open scale=s><div slot=message .innerHTML=${this.readOnlyNotice??""}></div></calcite-notice>`}_openConfigureTitlesDialog(){this._configureTitlesOpen=!0}_getConfigureTitlesDialog(){return this._configureTitlesOpen?t`<solution-configure-titles .card=${this.card} @solutionConfigureTitlesBeforeClose=${async()=>{this.templateInfos=await this._getTemplates(),this._configureTitlesOpen=!1}} @solutionItemsTitlesChanged=${async()=>{this.templateInfos=await this._getTemplates()}} .open=${this._configureTitlesOpen} source="Details Page" .templateInfos=${this.templateInfos}></solution-configure-titles>`:""}_viewDocumentation(e){e.stopPropagation(),this._telemetry?.logEvent({category:l.DEPLOYMENTS,action:"Open Help",dimensions:["",this.card?.deployCommonId||"",this.card?.deployVersion||"","Details Page",d(this.card?.typeKeywords)]}),window.open(this.card.learnMoreUrl,"_blank")}_openItemDetails(e){e.stopPropagation(),this._telemetry?.logEvent({category:l.DEPLOYMENTS,action:"Open Item Details",dimensions:["",this.card?.deployCommonId||"",this.card?.deployVersion||"","Details Page",d(this.card?.typeKeywords)]}),window.open(this.card.itemUrl,"_blank")}_getOwnerSection(){if(!this._configContextConsumer?.value)return;let e=this.isMobile?"margin-start-end-lg":"margin-start-end-xxl";return t`<div class=${`display-flex padding-bottom-xxl ${e} flex-direction-column`}><div class="display-flex justify-between items-baseline"><calcite-label class="font-weight-med label-override tabbing-offset" layout=inline scale=l tabindex=0>${this._translations.aboutYourSolutionOwner}</calcite-label></div><solution-user-avatar .fullname=${this._user?.username===this.card?.owner?this._user?.fullName:void 0} .lookupProfile=${this._user?.username!==this.card?.owner} .thumbnailUrl=${this._user?.username===this.card?.owner?this._user?.thumbnailUrl:void 0} .username=${this.card?.owner}></solution-user-avatar></div>`}async _openDiagram(e){e.stopPropagation();let i=await this._getTemplates();i&&(this._telemetry?.logEvent({category:l.DEPLOYMENTS,action:"View Diagram",dimensions:["",this.card?.deployCommonId||"",this.card?.deployVersion||"","Details Page",d(this.card?.typeKeywords)]}),this._templateInfoGraph=i,this._isDiagramOpen=!0)}async _getTemplates(){return this.cardRef?await this.cardRef.getTemplates():this.card?await T(this.card.id,this._configContextConsumer.value.userSession):void 0}async _fetchFolderInfo(){if(this.card?.id)try{let e=this._configContextConsumer.value?.userSession;if(!e)return;let i=await k(this.card.id,e);if(this._folderId=i.ownerFolder??null,this._folderId){let a=await S(this.card.owner,this._folderId,e);this._folderName=a?.currentFolder?.title||this._folderId}else this._folderName=this.card.owner||"Root"}catch(e){console.error("Error fetching folder info:",e),this._folderId=null,this._folderName=""}}_getFolderSection(){let e=this.isMobile?"padding-lg":"padding-xxl",i=this._folderId?"folder":"home";return t`<div class=${`${e} display-flex flex-direction-column`}><div class="display-flex justify-between items-baseline"><calcite-label class="font-weight-med label-override tabbing-offset" layout=inline scale=l slot=heading tabindex=0>${this._translations.folder}</calcite-label><calcite-button appearance=transparent aria-label=${this._translations.openFolder??c} .disabled=${this._folderLoading} kind=neutral icon-start=launch2 @click=${this._openFolder}>${this._translations.openFolder}</calcite-button></div><div class="display-flex"><div class="display-flex flex-direction-row padding-top-lg align-items-center">${this._folderLoading?t`<div class="skeleton-loader skeleton-folder"></div>`:t`<calcite-icon aria-hidden=true class="icon-color" .icon=${i} scale=m></calcite-icon><div class="display-flex flex-direction-column padding-start-xxl"><span class="tabbing-offset" tabindex=0>${this._folderName||"Root"}</span></div>`}</div></div></div>`}_getSolutionVersionCard(){let e=this._hasNewVersion?this._translations.newVersionAvailable:this._translations.youHaveTheLatestVersion,i=this.isMobile?"padding-lg":"padding-xxl";return t`<div class=${`${i} display-flex flex-direction-column`}><calcite-label class="font-weight-med label-override tabbing-offset" layout=inline scale=l slot=heading tabindex=0>${this._translations.solutionVersion.replace("{{version}}",this.card?.deployVersion||"")}</calcite-label><div class="display-flex"><div class="display-flex flex-direction-row padding-top-lg align-items-center"><calcite-icon aria-hidden=true class="icon-color" icon=clock-forward scale=m></calcite-icon><div class="display-flex flex-direction-column padding-start-xxl"><span class="tabbing-offset" tabindex=0>${e}</span></div></div></div>${this._hasNewVersion?t`<calcite-button appearance=outline-fill class="padding-top-1 solution-deployed-action" kind=neutral @click=${this._openNewVersionSolution} scale=m width=full>${this._translations.learnMoreNewVersion}</calcite-button>`:this._hasSourceSolution?t`<calcite-button appearance=outline-fill class="padding-top-1 solution-deployed-action" kind=neutral @click=${this._openSourceSolutionDetails} scale=m width=full>${this._translations.openDetails}</calcite-button>`:null}</div>`}async _openNewVersionSolution(e){e.stopPropagation(),this._telemetry?.logEvent({category:l.DEPLOYMENTS,action:"View Latest Version",dimensions:["",this.card?.deployCommonId||"",this.card?.deployVersion||""]}),await new Promise(a=>setTimeout(a,100));let i=u(this._configContextConsumer.value.allCards,this.card.deployCommonId);i&&this.forceSelectTab.emit({tabType:"details",tabTitleOrId:i})}_getSolutionPanel(){let e=this.card&&this.card.typeKeywords?.includes("AIAssistant");return t`<calcite-panel class="font-size-override panel-background-1"><div class="display-flex flex-direction-row"><div class="image-width margin-xl"><img alt=${this.card?.title??c} src=${this._thumbnailUrl??c}></div><div class="display-flex flex-direction-column"><h1 class="title-font margin-block-start-end-0 padding-end-xxl padding-start-sm padding-top-xxl padding-bottom-xxl line-height-1 negative-tabbing-offset" tabindex=0>${this.card?.title}${e&&this._getChips()||""}</h1><div class="display-flex flex-direction-column padding-bottom-xxl padding-start-sm"><div class="display-flex align-items-start padding-bottom-xxl"><div class="font-1 padding-end-1 line-height-xxl negative-tabbing-offset" tabindex=0>${this.card?.snippet}</div></div><div class="display-flex"><div class="display-flex"><calcite-label class="label-override icon-color tabbing-offset" layout=inline tabindex=0><calcite-icon aria-hidden=true class="icon-color" icon=projects scale=s></calcite-icon>${this._translations.aboutYourSolutionDeployedDate.replace("{{deployedDate}}",this.card?.created||"")}</calcite-label></div></div>${h(this._configContextConsumer.value)&&t`<div class="display-flex flex-direction-row padding-end-xxl" style=${v({paddingTop:"1rem"})}>${this._getReadOnlyNotice()}</div>`||""}</div></div></div></calcite-panel>`}_getSolutionContents(){let e=this.card?I(this._nonSolutionDependencyItems,this.card.id):[];return t`<calcite-panel class="panel-background-1 padding-top-xxl"><calcite-accordion class="accordion-bg " icon-position=start scale=l appearance=transparent><calcite-accordion-item class="item-padding" expanded><div class="margin-block-start-end-0 heading-font " slot=content-start>${this._translations.solutionsContentsAndCount.replace("{{numberOfSolutions}}",this.templateInfos.length.toString())}</div><div class="overflow-auto">${this._accordionLoading?t`<calcite-loader .label=${this._translations.loadingText} scale=m></calcite-loader>`:t`<solution-item-accordion .itemRelationshipDependencies=${e} .listSelectionMode=${e.length>0?"multiple":"single"} .reuseWarning=${this._translations.itemUsedInOtherSolutions} .templateInfos=${this.templateInfos} .typeKeywords=${this.card?.typeKeywords}></solution-item-accordion>`}</div></calcite-accordion-item></calcite-accordion></calcite-panel>`}_getDeleteDialog(){return this._deleteDialogOpen?t`<solution-delete-dialog .card=${this.card} @solutionDeleted=${()=>setTimeout(()=>this.navTabSelected.emit({tabType:"deployments"}),100)} @solutionDeleteDialogBeforeClose=${()=>{this._deleteDialogOpen=!1}} .open=${this._deleteDialogOpen} source="Details Page"></solution-delete-dialog>`:""}_renderDiagramDialog(){return this._isDiagramOpen?t`<calcite-dialog class="dialog-y-size dialog-x-size panel-bg-color" .heading=${this._translations.diagramOfTheSolution.replace("{{solution}}",this.card?.title??"")} id=${this._translations.diagramOfTheSolution.replace("{{solution}}",this.card?.title??"")??c} modal .open=${this._isDiagramOpen} @calciteDialogClose=${()=>{this._isDiagramOpen=!1}} outside-close-disabled scale=m width=l><solution-item-diagram .diagramKey=${this.diagramKey!==""?this.diagramKey:this._configContextConsumer.value?.diagramKey??""} .templateInfoGraph=${this._templateInfoGraph} .typeKeywords=${this.card?.typeKeywords}></solution-item-diagram></calcite-dialog>`:""}_getChips(){return t`<calcite-chip class="chipClass" icon=effects .label=${this._translations.builtWithAI} scale=s>${this._translations.builtWithAI}</calcite-chip>`}async _deleteSolution(){this._deleteDialogOpen=!0}_updateThumbnailToken(e){this._thumbnailUrl!==""&&(this._thumbnailUrl=N(this._thumbnailUrl,e))}};y("solution-deployed-card-panel",f);return f},a,d,e,f)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{d as _r,e as to,f as Li,g as Di,h as Fi}from"./NQH7ZZWD.js";import{a as Ni}from"./2LCG2XWX.js";import{a as ic,b as ac,c as lc,f as rs,g as ns,j as cc}from"./LVYAW6XF.js";import b from"./
|
|
2
|
+
import{d as _r,e as to,f as Li,g as Di,h as Fi}from"./NQH7ZZWD.js";import{a as Ni}from"./2LCG2XWX.js";import{a as ic,b as ac,c as lc,f as rs,g as ns,j as cc}from"./LVYAW6XF.js";import b from"./JJLYSRRX.js";import a from"./WDASGI72.js";import{b as jl,c as zl}from"./2B4SGB3I.js";import{b as Ii}from"./RLSY4VUQ.js";import"./RDRCAA3H.js";import{a as Fl}from"./DIBK4RSG.js";import"./QMAV4UTN.js";import"./Y2AUIXNK.js";import{$ as Gl,Aa as Qo,Ab as ts,Ba as Yo,Bb as fe,Ca as Xo,Da as yr,Ea as w,Fa as N,Ga as Ri,Ha as $i,J as Kl,K as Ae,L as Wl,M as qo,N as Si,O as Ei,P as Bo,Q as Yn,R as q,Ra as S,S as Ci,T as j,U as Be,V as it,W as Ko,X as Hl,Y as Vl,Z as ki,_ as Wo,a as me,aa as Jl,b as K,ba as Xn,ca as Ho,da as Zl,ea as Ql,fa as Yl,g as Bl,ga as Vo,ha as Xl,ia as Pt,j as qe,ja as Oi,k as Ot,ka as Go,kb as sc,la as $,ma as x,na as Mt,oa as at,pa as ec,qa as Jo,ra as tc,s as Uo,sa as rc,ta as Zo,ua as Pi,va as gr,wa as Mi,wb as eo,xa as nc,y as Qn,ya as oc,zb as es}from"./RDJIKSXN.js";import"./TEHBW75B.js";import"./IHG7KTNC.js";import"./ZCU2WWVN.js";import"./WGO4EVOV.js";import"./YKB6256M.js";import"./N22MFQSQ.js";import"./N7BXCDA3.js";import"./ZX3UHK6P.js";import"./Z4F2NZOT.js";import"./KOIDWEP3.js";import"./3KXMYZCU.js";import"./LP2JYX4X.js";import"./GF4QELNV.js";import{l as Ul,v as Ti}from"./AYSQIO6L.js";import"./YQHYMLC7.js";import"./DKD2EGQP.js";import"./5O53T3SW.js";import"./AJZDBHB6.js";import"./FES7B3SJ.js";import{b as Dl}from"./HIPZRG2Q.js";import{F as $l,G as Nl,H as Ll,L as vi,h as Cl,i as st,k as kl,l as Ai,q as xi,t as Ol,w as Pl,x as Ml,y as Rl}from"./T3EPRHTT.js";import{c as El}from"./EXBEKVP5.js";export default $arcgis.t(([gl,uW,pW,Hd,Ig,Tg,Dg,_W,bW,CG,rA,dp,pr,Ja,_p,,pp,Ug,{addressToLocations:qg},Bg,Kg,wp,{createRenderer:Wg},{getSchemesByTag:Hg,getSchemes:Vg},{getBackgroundColorTheme:mp},{createAgeRenderer:Gg,createContinuousRenderer:Jg},{getSchemesByTag:sl},{createContinuousRenderer:Zg},{createRenderer:Qg},{getSchemesByTag:Yg},{createRenderer:Xg},{getSchemesByTag:ey},{createRenderer:ty},{getSchemesByTag:ry},{createRenderer:ny},{getSchemesByTag:oy},{createAgeRenderer:sy,createContinuousRenderer:iy},{createRenderer:ay},{getSchemesByTag:ly},cy,bp,Ap,{formatDateOnly:uy,convertDateFormatToIntlOptions:Gs,formatTimeOnly:dy,formatDate:fp},py,my,fy,hy,gy,xp,,{fetchKnowledgeGraph:hp,executeQueryStreaming:yy,executeSearchStreaming:_y},wy,,,,,,,,,,,,,,,,,,,,,,,,,kV,PV,,,,,,,,,,,,,yA,Lp,_A,tJ,nJ,LA,DA,{r:ql},{r:Zn}])=>{var ro=class extends Rl{constructor(e){if(super(e),this.it=Ai,e.type!==Pl.CHILD)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(e){if(e===Ai||e==null)return this._t=void 0,this.it=e;if(e===kl)return e;if(typeof e!="string")throw Error(this.constructor.directiveName+"() called with a non-string value");if(e===this.it)return this._t;this.it=e;let r=[e];return r.raw=r,this._t={_$litType$:this.constructor.resultType,strings:r,values:[]}}};ro.directiveName="unsafeHTML",ro.resultType=1;var uc=Ml(ro);var d=w;async function os(t,e,r){if(r===void 0)throw new Error(["Unable to dispatch a custom event without a parent run id.",'"dispatchCustomEvent" can only be called from within an existing run (e.g.,',"inside a tool or a RunnableLambda).",`
|
|
3
3
|
|
|
4
4
|
If you continue to see this error, please import from "@langchain/core/callbacks/dispatch/web"`,"and explicitly pass in a config parameter.",`
|
|
5
5
|
|
|
@@ -328,7 +328,7 @@ Description: {description}`,sJ=w.object({schemaVersion:w.literal(kA),modified:w.
|
|
|
328
328
|
Available prompts:
|
|
329
329
|
${Object.keys(t).join(`
|
|
330
330
|
`)}`);return await r[1]()}function _i(t){return t?.configurable?.context?.translations}function Up(t){if(typeof window>"u"||t.length<=1)return;let e=t.map(n=>n.solution.id),r=t.map(n=>n.solution.title);window.dispatchEvent(new CustomEvent("searchTermSet",{detail:{scope:"all-solutions",searchTerm:""}})),window.dispatchEvent(new CustomEvent("solutionMatchesFromAssistant",{detail:{solutionIds:e,solutionTitles:r},bubbles:!0,composed:!0})),window.dispatchEvent(new CustomEvent("navTabSelected",{detail:{tabType:"all-solutions"}}))}function qp(t){if(typeof window>"u"||!t)return;let e=new CustomEvent("solutionIDFromAssistant",{detail:t,bubbles:!0,composed:!0});window.dispatchEvent(e)}var jA=w.object({needsContext:w.boolean().describe("True when the explorer query requires added context from prior turns."),rewrittenQuery:w.string().min(1).describe("The final query to send to doc AI. Keep original query if no context is needed.")}),jp=t=>t?.signal?.aborted??!1,Bp=Object.assign({"./prompts/solutions_explorer_description.md":()=>import("./AS6VINEU.js").then(t=>t.default),"./prompts/transformQuery.md":()=>import("./MFVXFKKM.js").then(t=>t.default)});function zA(t){return t.replace(/<sup>\[\[(\d+)\]\]\(([^)]+)\)<\/sup>/g,'<sup><a href="$2">[$1]</a></sup>')}function UA(t){return t.replace(/!\[([^\]]*)\]\(([^)]+)\)/g,(e,r,n)=>`<img src="${n}" alt="${r}" style="width: 100%;">`)}function qA(t,e){let r=[];return(e?.configurable?.context?.configContext.allCards??[]).forEach(n=>{let o=n.title;if(!o)return;let s=new RegExp(`(?<![\\p{L}\\p{N}])${o}(?![\\p{L}\\p{N}])`,"giu"),i=!1;t=t.replace(s,(a,c,l)=>{let u=l.slice(0,c);return/<img[^>]*alt\s*=\s*["'][^"']*$/i.test(u)?a:(i=!0,`<a href="" target="solutionId:${n.deployCommonId}">${o}</a>`)}),i&&r.push({solution:{title:n.title,id:n.deployCommonId,snippet:n.snippet,description:n.description},score:100})}),{source:t,allMatches:r}}function BA(t){return t&&t.helperServices.aiAssistantServices?`${t.helperServices.aiAssistantServices.url}/skills/doc_ai_assistant/chat`:null}function Kp(t){return t&&t.helperServices.aiAssistantServices?`${t.helperServices.aiAssistantServices.url}/skills/doc_ai_assistant/api/pre-chat`:null}async function _l(t,e,r){let n=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json",token:r},body:JSON.stringify(t)});if(!n.ok)throw new Error(`HTTP ${n.status} calling ${e}`);return n.json()}var KA=t=>new Promise(e=>setTimeout(e,t));async function WA(t,e){let r=t.agentExecutionContext.userRequest,n=e?.configurable?.context?.lastTurnAgent,o=t.agentExecutionContext.messages??[];if(!n||o.length<=1||n==="explorer")return r;try{let s=await be(Bp,"transformQuery"),i=await kt({promptText:s,modelTier:"advanced",temperature:0,schema:jA,messages:o.slice(-11),inputVariables:{query:r,lastTurnAgent:n}});if(i.needsContext&&i.rewrittenQuery.trim())return console.debug(`Rephrased query from "${r}" to "${i.rewrittenQuery.trim()}"`),i.rewrittenQuery.trim()}catch{}return r}var HA=S.Root({...ii(),solutionResponse:S({reducer:(t,e)=>e??null,default:()=>null}),documentSkillUrl:S({reducer:(t,e)=>e??null,default:()=>null}),conversationId:S({reducer:(t,e)=>e??t,default:()=>null})}),VA=()=>new fe(HA).addNode("initializeAgent",JA).addNode("askSolutionsQuestions",GA).addEdge(me,"initializeAgent").addEdge("initializeAgent","askSolutionsQuestions").addEdge("askSolutionsQuestions",K),Wp=async(t,e,r,n)=>{if(!t)return;let o=Kp(t);if(!o)return;let s={context:{kind:"DocAIAssistantRequest",filters:{products:"ArcGIS Solutions",persona:{persona:"apps-solutions"},pipeline:{translation:{allow:!0,language:r,use_llm:!1}}}}};n&&(s.conversationId=n),_l(s,o,e??"")},GA=async(t,e)=>{if(jp(e))return{};let r=_i(e),n=t.documentSkillUrl,o=[],s=await WA(t,e);await Pe({text:r.agentProgress.explorerAgentSearching},e);let i=await _l({message:s,conversationId:e?.configurable?.context?.convoId??void 0,context:{kind:"DocAIAssistantRequest",filters:{products:"ArcGIS Solutions",persona:{persona:"apps-solutions"},pipeline:{translation:{allow:!0,language:e?.configurable?.context?.configContext.locale??"en",use_llm:!1}}}}},n,e?.configurable?.context?.token??"");i.conversationId&&e?.configurable?.context?.setConversationId&&e.configurable.context.setConversationId(i.conversationId);let a={message:i.message,conversationId:i.conversationId,hasMore:i.hasMore,ackSequenceNumber:i.sequenceNumber,inquiryId:i.inquiryId},c="",l=async u=>{let m=u.context?.results?.[0]?.reply??"";if(m!==""){let h=zA(m),b=UA(h),A=qA(b,e);c=A.source,o=[...o,...A.allMatches.filter(E=>!o.some(y=>y.solution.id===E.solution.id))]}let f=u.context?.results?.[0]?.status?.currentStatusStep;if(f){let h="";f===1?h=r.agentProgress.explorerAgentReading:f===2?h=r.agentProgress.explorerAgentReviewing:f===3&&(h=r.agentProgress.explorerAgentPreparing),await Pe({text:h},e)}};for(await l(i);a.hasMore;){if(jp(e))return{};await KA(500),i=await _l({conversationId:a.conversationId,ackSequenceNumber:a.ackSequenceNumber,inquiryId:a.inquiryId},n,e?.configurable?.context?.token??""),a={message:i.message,conversationId:i.conversationId,hasMore:i.hasMore,ackSequenceNumber:i.sequenceNumber,inquiryId:i.inquiryId},await l(i)}return Kp(e?.configurable?.context.portal)&&Wp(e?.configurable?.context.portal,e?.configurable?.context.token??"",e?.configurable?.context.configContext.locale??"en",a.conversationId),o.length&&(o.length===1?qp(o[0].solution.id):Up(o)),{outputMessage:c,summary:c,status:"success",solutionResponse:a,conversationId:a.conversationId}},JA=async(t,e)=>{let r=null;return t.documentSkillUrl===null&&e?.configurable?.context?.portal&&(r=BA(e.configurable.context.portal)),{documentSkillUrl:r}};await be(Bp,"solutions_explorer_description");var Hp=t=>{if(t&&Array.isArray(t.id)&&t.id.length>0)return t.id[t.id.length-1].replace("Message","").toLowerCase();if(t&&typeof t._getType=="function")try{return t._getType()}catch{return"human"}return"human"},ZA=t=>{let e=Hp(t);if(t&&t.kwargs)return{role:e,...t.kwargs};if(t&&typeof t=="object"){let r={role:e,content:typeof t.content=="string"?t.content:String(t.content||"")};return t.id&&(r.id=t.id),t.name&&(r.name=t.name),t.additional_kwargs&&(r.additional_kwargs=t.additional_kwargs),t.response_metadata&&(r.response_metadata=t.response_metadata),r}return{role:"human",content:String(t)}},QA=t=>Hp(t)==="human",YA=(t,e=3)=>t.filter(r=>QA(r)).slice(-e).map(ZA),XA=(t,e=" ")=>YA(t).map(r=>r.content).join(e).trim(),ex={understandingRequest:"Understanding your request...",selectTemplatePrompt:"This use case could be supported in a few different ways. Choose the option that best matches what you want to accomplish.",searchingExistingSolutions:"Searching for existing solutions...",existingSolutionMatch:"I found one or more existing solutions that match your use case. These are ready-to-use solutions that may already meet your needs and can be deployed now. Do you want to continue building your own solution?",continueBuildingYes:"Yes, I want to build a new solution",continueBuildingNo:"No, I\u2019ll review existing solutions",continueBuildingDeclined:"Sounds good. We can focus on existing solutions. Let me know if I can help answer any questions or provide more details.",creatingDesign:"Generating solution design...",updatingDesign:"Updating solution design...",applyChangeFailed:"I wasn't able to apply that change. The design was not modified. Please try rephrasing your request.",createDesignFailed:"I wasn't able to create a solution design from that request. Please try rephrasing and try again.",discardMessage:"Are you sure you want to discard your solution?",discardForNewSolution:"I can help you build a new solution, but I will need to discard your current solution design. Do you want to continue?"},tx={builderMessages:ex},yi=class t{constructor(e,r,n=!0){this.isValid=!0,this.issues=[],this.fieldNameRegistry=null,this.response=e,this.template=r,this.newDesign=n,this.validate()}static{this.INVALID_NAME_CHARS=/[><~`$^+=|]/gu}static{this.NAME_MAX_LENGTH=250}static{this.DESCRIPTION_MAX_LENGTH=2048}static{this.SERVICE_NAME_MAX_LENGTH=100}static{this.FIELD_NAME_MAX_LENGTH=31}validate(){this.compareModels(),this.validateResponse()}compareModels(){this._compareStrings(),this._compareItems(),this._compareFeatureLayers()}validateResponse(){this._validateSolutionProps(),this._validateItems(),this._validateFeatureLayer()}_compareStrings(){let e=new Set(this.response.solution.strings.map(n=>n.key)),r=new Map(this.template.solution.strings.map(n=>[n.key,n]));[...r.keys()].every(n=>e.has(n))||(this.newDesign?this._reconcileStringKeys():this._logIssue("String keys in llm response do not match the template."));for(let n of this.response.solution.strings){if(n.value)continue;let o=r.get(n.key)?.value;this.newDesign&&o?(n.value=o,this._logAutoFix(`String key '${n.key}' had no value. Auto-fixed by restoring the template value.`)):this._logIssue(`String key '${n.key}' has no value in the design. It must be populated.`)}}_reconcileStringKeys(){let e=new Set(this.response.solution.strings.map(r=>r.key));for(let r of this.template.solution.strings)e.has(r.key)||(this.response.solution.strings.push({...r}),this._logAutoFix(`String key '${r.key}' was missing from the design. Auto-fixed by re-adding it from the template.`))}_compareItems(){let e=new Set(this.template.items.map(n=>n.id)),r=new Set(this.response.items.map(n=>n.id));e.size===r.size&&[...e].every(n=>r.has(n))||(this.newDesign?this._reconcileItems():this._logIssue("Item IDs in design do not match the template."))}_reconcileItems(){let e=new Set(this.template.items.map(i=>i.id)),r=new Set(this.response.items.map(i=>i.id)),n=[...r].filter(i=>!e.has(i)),o=[...e].filter(i=>!r.has(i));if(e.size===r.size&&n.length===1&&o.length===1){let i=n[0],a=o[0],c=this.response.items.find(l=>l.id===i);if(c){c.id=a,this._logAutoFix(`Item id '${i}' did not match the template id '${a}'. Auto-fixed in place.`);return}}n.length&&(this.response.items=this.response.items.filter(i=>e.has(i.id)),this._logAutoFix(`Removed items not present in the template: ${n.join(", ")}.`));let s=this.template.items.filter(i=>!r.has(i.id));if(s.length){this.response.items=[...s.map(i=>({...i})),...this.response.items];for(let i of s)this._logAutoFix(`Item '${i.id}' was missing from the design. Auto-fixed by adding it from the template.`)}}_compareFeatureLayers(){let e=this.template.featureLayer,r=this.response.featureLayer;if(e.itemId!==r.itemId){let n=r.itemId;r.itemId=e.itemId,this._logAutoFix(`Feature Layer itemId '${n}' did not match the template. Auto-fixed to '${e.itemId}'.`)}if(!e.addLayers){let n=new Set(e.layers.map(s=>s.id)),o=new Set(r.layers.map(s=>s.id));if(!(n.size===o.size&&[...n].every(s=>o.has(s))))this._logIssue(`Feature Layer '${e.itemId}' had its layer ids altered.`);else for(let s of e.layers){if(s.type){let a=r.layers.find(c=>c.id===s.id);if(a&&a.type!==s.type)if(this.newDesign){let c=a.type;a.type=s.type,this._logAutoFix(`Layer '${s.id}' type '${c}' is immutable. Auto-fixed back to template type '${s.type}'.`)}else this._logIssue(`Layer '${s.id}' type '${a.type}' does not match template type '${s.type}'. This layer type is immutable.`)}let i=r.layers.find(a=>a.id===s.id);i&&this._validateRequiredFields(i,s)}}}_validateRequiredFields(e,r){let n=new Map(e.requiredFields.map(o=>[o.name.toLowerCase(),o]));for(let o of r.requiredFields){let s=n.get(o.name.toLowerCase());if(!s){this.newDesign?(e.requiredFields.push({...o}),this._logAutoFix(`Layer '${e.name}' was missing required field '${o.name}'. Auto-fixed by re-adding it from the template.`)):this._logIssue(`Layer '${e.name}' is missing required field '${o.name}'.`);continue}this._enforceRequiredFieldImmutability(e,s,o)}}_enforceRequiredFieldImmutability(e,r,n){let o=[];if(r.type!==n.type&&o.push("type"),(r.length??null)!==(n.length??null)&&o.push("length"),this._choiceListsEqual(r.choiceList,n.choiceList)||o.push("choiceList"),!o.length)return;let s=o.length===1?"property":"properties";this.newDesign?(r.type=n.type,r.length=n.length,r.choiceList=Array.isArray(n.choiceList)?[...n.choiceList]:n.choiceList??null,this._logAutoFix(`Layer '${e.name}' required field '${n.name}' changed immutable ${s} (${o.join(", ")}). Auto-fixed by reverting to the template.`)):this._logIssue(`Layer '${e.name}' required field '${n.name}' changed immutable ${s} (${o.join(", ")}). These cannot be modified.`)}_choiceListsEqual(e,r){let n=Array.isArray(e)?e:null,o=Array.isArray(r)?r:null;if(n===null&&o===null)return!0;if(n===null||o===null)return!1;let s=new Set(n),i=new Set(o);return s.size===i.size&&[...s].every(a=>i.has(a))}_validateSolutionProps(){let e=this.response.solution.title??"",r=this.response.solution.description,n=/[/\\]/u.test(e),o=this.newDesign?e.replace(/[/\\]/gu,""):e;this.newDesign&&o!==e?(this.response.solution.title=o,this._logAutoFix("Solution title contained forward or back slashes. Auto-fixed by removing them.")):!this.newDesign&&n&&this._logIssue("Solution title contains forbidden forward or back slashes.");let s=rs(o);if(s.isValid||this._tryFixName(s.errorType,o,i=>{this.response.solution.title=i},"Solution title","Solution Title")||this._logIssue(`Solution title is invalid (${s.errorType}).`),r){let i=ns(r,t.DESCRIPTION_MAX_LENGTH,!0);i.isValid||this._tryFixDescription(r,a=>{this.response.solution.description=a},"Solution description")||this._logIssue(`Solution description is invalid (${i.errorType}).`)}}_validateItems(){let e=new Set(["Feature Layer (hosted)","Feature Layer (hosted, view)"]);for(let r of this.response.items){if(e.has(r.type)&&r.title.length>t.SERVICE_NAME_MAX_LENGTH)if(this.newDesign){let o=r.title;r.title=r.title.slice(0,t.SERVICE_NAME_MAX_LENGTH).trim(),this._logAutoFix(`Service name '${o}' exceeded ${t.SERVICE_NAME_MAX_LENGTH} characters. Auto-fixed to '${r.title}'.`)}else this._logIssue(`Service name '${r.title}' exceeds 100 characters.`);let n=rs(r.title??"");if(n.isValid||this._tryFixName(n.errorType,r.title??"",o=>{r.title=o},`Item '${r.id}' title`,"Item Title")||this._logIssue(`Item '${r.id}' title is invalid (${n.errorType}).`),r.description){let o=ns(r.description,t.DESCRIPTION_MAX_LENGTH,!0);o.isValid||this._tryFixDescription(r.description,s=>{r.description=s},`Item '${r.id}' description`)||this._logIssue(`Item '${r.id}' description is invalid (${o.errorType}).`)}}}_validateFeatureLayer(){this.response.featureLayer.layers.length||this._logIssue("Feature layer item must contain at least one layer.");let e=this.response.featureLayer.layers.map(r=>r.name.toLowerCase());e.length!==new Set(e).size&&(this.newDesign?this._dedupeLayerNames(this.response.featureLayer.layers):this._logIssue(`Layer names must be unique (case-insensitive). Layer names in design: ${e}.`));for(let r of this.response.featureLayer.layers)this._validateLayer(r,this.response.featureLayer.addLayers)}_dedupeLayerNames(e){let r=new Set;for(let n of e){let o=(n.name??"").toLowerCase();if(r.has(o)){let s=n.name;n.name=this._makeUniqueName(n.name??"Layer",r),this._logAutoFix(`Duplicate layer name '${s}'. Auto-fixed to '${n.name}'.`)}r.add(n.name.toLowerCase())}}_validateLayer(e,r){!r&&e.typeMutable===!0&&e.type==="Table"&&(this.newDesign?(e.type="Point",this._logAutoFix(`Layer '${e.name}' cannot be a Table. Auto-fixed to 'Point'.`)):this._logIssue(`Layer '${e.name}' cannot be a Table. It may be a Point, Line, or Polygon.`));let n=rs(e.name??"");if(n.isValid||this._tryFixName(n.errorType,e.name??"",o=>{e.name=o},`Layer '${e.name}' name`,"Layer Title")||this._logIssue(`Layer '${e.name}' name is invalid (${n.errorType}).`),e.description){let o=ns(e.description,t.DESCRIPTION_MAX_LENGTH,!0);o.isValid||this._tryFixDescription(e.description,s=>{e.description=s},`Layer '${e.name}' description`)||this._logIssue(`Layer '${e.name}' description is invalid (${o.errorType}).`)}this._validateLayerFields(e)}_validateLayerFields(e){let r=e.systemFields??[];this.fieldNameRegistry=new Set([...e.customFields,...e.requiredFields,...r].map(s=>s.name.toLowerCase()));for(let s of[...e.customFields,...e.requiredFields])this._validateField(s);this.fieldNameRegistry=null;let n=new Set(e.requiredFields.map(s=>s.name.toLowerCase())),o=new Set(n);for(let s of e.customFields){let i=s.name.toLowerCase();if(o.has(i)){let a=n.has(i)?"a required field name":"another field with the same name";if(this.newDesign){let c=s.name;s.name=this._makeUniqueName(s.name,o),this._logAutoFix(`Layer '${e.name}' field '${c}' collided with ${a}. Auto-fixed to '${s.name}'.`)}else this._logIssue(`Layer '${e.name}' field '${s.name}' collides with ${a}.`)}o.add(s.name.toLowerCase())}}_validateField(e){let r=/^\p{L}/u,n=/^.[\p{L}\p{M}\p{N}_]*$/u;e.alias||(this.newDesign?(e.alias=e.name,this._logAutoFix(`Field '${e.name}' had no display name (alias). Auto-fixed to '${e.alias}'.`)):this._logIssue(`Field '${e.name}' has no display name (alias).`));let o=r.test(e.name),s=n.test(e.name);if(!o||!s)if(this.newDesign){let i=e.name;e.name=this._makeUniqueName(this._sanitizeFieldName(e.name),this.fieldNameRegistry),this.fieldNameRegistry.add(e.name.toLowerCase()),this._logAutoFix(`Field '${i}' had an invalid name. Auto-fixed to '${e.name}'.`)}else o||this._logIssue(`Field '${e.name}' does not start with a letter.`),s||this._logIssue(`Field '${e.name}' contains invalid characters (only letters from any writing system, numbers, and underscores are allowed; emojis and punctuation are not allowed).`);if(e.name.length>t.FIELD_NAME_MAX_LENGTH)if(this.newDesign){let i=e.name;e.name=this._getUniqueTruncatedFieldName(e.name,this.fieldNameRegistry),this.fieldNameRegistry.add(e.name.toLowerCase()),this._logAutoFix(`Field '${i}' exceeds ${t.FIELD_NAME_MAX_LENGTH} characters. Auto-fixing to '${e.name}'.`)}else this._logIssue(`Field '${e.name}' exceeds ${t.FIELD_NAME_MAX_LENGTH} characters.`);if(ic.has(e.name.toLowerCase()))if(this.newDesign){let i=e.name;e.name=this._getUniqueTruncatedFieldName(i,this.fieldNameRegistry),this.fieldNameRegistry.add(e.name.toLowerCase()),this._logAutoFix(`Field '${i}' is a SQL reserved keyword. Auto-fixing to '${e.name}'.`)}else this._logIssue(`Field '${e.name}' is a SQL reserved keyword.`);if(ac.has(e.name.toLowerCase()))if(this.newDesign){let i=e.name;e.name=this._getUniqueTruncatedFieldName(i,this.fieldNameRegistry),this.fieldNameRegistry.add(e.name.toLowerCase()),this._logAutoFix(`Field '${i}' is a reserved system field name. Auto-fixing to '${e.name}'.`)}else this._logIssue(`Field '${e.name}' is a reserved system field name.`);if(Array.isArray(e.choiceList)&&e.type!=="string"&&(this.newDesign?e.choiceList.length?(e.type="string",this._logAutoFix(`Field '${e.name}' had a domain but was not of type 'string'. Auto-fixed by setting the type to 'string'.`)):(e.choiceList=null,this._logAutoFix(`Field '${e.name}' had an empty domain but is not of type 'string'. Auto-fixed by removing the domain.`)):this._logIssue(`Field '${e.name}' must be of type 'string' to have a domain.`)),e.type==="string"&&this._validateStringFieldLength(e),Array.isArray(e.choiceList)&&(this.newDesign?this._autoFixChoiceList(e):this._logChoiceListIssues(e)),Array.isArray(e.choiceList)&&e.length!=null){let i=Math.max(...e.choiceList.map(a=>a.length));i>e.length&&(this.newDesign?(this._logAutoFix(`The choice provided for field '${e.name}' is too long. It must fit within ${e.length} characters, but the choice requires ${i} characters. Auto-fixing to ${i}.`),e.length=i):this._logIssue(`The choice provided for field '${e.name}' is too long. It must fit within ${e.length} characters, but the choice requires ${i} characters.`))}}_autoFixChoiceList(e){let r=e.choiceList,n=r.filter(s=>s?.trim());n.length!==r.length&&(this._logAutoFix(`Field '${e.name}' had blank domain values. Auto-fixed by removing them.`),r=n,e.choiceList=r);let o=[...new Set(r)];o.length!==r.length&&(this._logAutoFix(`Field '${e.name}' had duplicate domain values. Auto-fixed by removing duplicates.`),r=o,e.choiceList=r),r.length||(this._logAutoFix(`Field '${e.name}' had an empty domain. Auto-fixed by removing the domain.`),e.choiceList=null)}_logChoiceListIssues(e){if(Array.isArray(e.choiceList)){if(!e.choiceList.length){this._logIssue(`Field '${e.name}' has an empty domain. At least one value is required.`);return}e.choiceList.some(r=>!r?.trim())&&this._logIssue(`A blank domain value was added to Field '${e.name}'.`),e.choiceList.length!==new Set(e.choiceList).size&&this._logIssue(`Field '${e.name}' has duplicate domain values.`)}}_validateStringFieldLength(e){if(this.newDesign&&e.length===255&&(e.length=256),typeof e.length!="number"||Number.isNaN(e.length)){this._handleInvalidStringFieldLength(e,256);return}let r=e.length;if(!cc(r).isValid){let n=r>4e3?4e3:256;this._handleInvalidStringFieldLength(e,n)}}_handleInvalidStringFieldLength(e,r){this.newDesign?(this._logAutoFix(`Field '${e.name}' has an invalid length. Auto-fixing to ${r}.`),e.length=r):this._logIssue(`Field '${e.name}' length is invalid (must be a number between 1 and 4000).`)}_makeUniqueName(e,r){let n=e,o=1;for(;r.has(n.toLowerCase());)n=`${e}_${o}`,o+=1;return n}_getUniqueTruncatedFieldName(e,r){let n=t.FIELD_NAME_MAX_LENGTH,o=e.slice(0,n),s=o,i=1;for(;r.has(s.toLowerCase());){let a=`_${i}`,c=Math.max(1,n-a.length);s=`${o.slice(0,c)}${a}`,i+=1}return s}_sanitizeItemName(e,r=t.NAME_MAX_LENGTH){let n=(e??"").replace(new RegExp(lc.source,"gu"),"").replace(t.INVALID_NAME_CHARS,"").replace(/\s+/gu," ").trim();return n.length>r&&(n=n.slice(0,r).trim()),n}_sanitizeDescription(e,r=t.DESCRIPTION_MAX_LENGTH){let n=(e??"").replace(/[<>]/gu,"");return n.length>r&&(n=n.slice(0,r)),n}_sanitizeFieldName(e){let r=(e??"").replace(/[^\p{L}\p{M}\p{N}_]/gu,"");return r.length===0?r="field":/^\p{L}/u.test(r)||(r=`f_${r}`),r}_tryFixName(e,r,n,o,s){if(!this.newDesign)return!1;if(e==="empty")return n(s),this._logAutoFix(`${o} was empty. Auto-fixed to '${s}'.`),!0;let i=this._sanitizeItemName(r)||s;return n(i),this._logAutoFix(`${o} was invalid (${e}). Auto-fixed to '${i}'.`),!0}_tryFixDescription(e,r,n){if(!this.newDesign)return!1;let o=this._sanitizeDescription(e);return r(o),this._logAutoFix(`${n} was invalid. Auto-fixed to a sanitized value.`),!0}_logAutoFix(e){console.debug(e)}_logIssue(e){console.debug(e),this.issues.push(e),this.isValid=!1}},rx=d.object({key:d.string().describe("Stable key identifier for the string."),value:d.string().describe("Display value for the string."),description:d.string().describe("Explanation of where/how the string is used.")}),nx=d.object({id:d.string().describe("ArcGIS item id (32 hex characters)."),title:d.string().describe("Item title."),description:d.string().describe("Item description."),type:d.enum(["Feature Layer (hosted)","Feature Layer (hosted, view)","Web Map","Instant App","Dashboard","Web Experience","Form","Table (hosted)","Table (hosted, view)","Hub Site Application","Hub Page","CSV","Data Pipeline","Desktop Application Template","Group","Notebook","QuickCapture Project"]).describe("ArcGIS item type.")}),zp=d.object({name:d.string().describe("Field name."),type:d.enum(["string","integer","double","date","oid","guid","globalid"]).describe("Field data type."),alias:d.string().describe("Field alias for display."),description:d.string().describe("Field description."),choiceList:d.array(d.string()).nullable().describe("List of allowed values for string fields with a controlled vocabulary. Null if unrestricted or not applicable."),length:d.number().int().nullable().describe("Maximum string length for string fields. Null for non-string fields.")}),ox=d.object({id:d.number().int().describe("Layer/table id within the feature service."),type:d.enum(["Point","Polyline","Polygon","Table"]).describe("Layer type."),typeMutable:d.boolean().describe("Indicates whether the layer type can be changed."),name:d.string().describe("Layer/table name."),description:d.string().describe("Layer/table description."),customFields:d.array(zp).describe("User/business fields specific to the solution."),requiredFields:d.array(zp).describe("Fields required for solution functionality (e.g., relationship keys).")}),sx=d.object({itemId:d.string().describe("ArcGIS item id for the feature layer."),addLayers:d.boolean().describe("Indicates whether new layers can be added during solution design."),layers:d.array(ox)}),bl=d.object({response:d.string().describe("Conversational response to the user's query."),solution:d.object({itemId:d.string().nullable().describe("ArcGIS item id of the source Solution template used for deployment. Preserve the existing value exactly when known; otherwise use null."),title:d.string().describe("Title of the solution."),description:d.string().describe("Description of the solution."),tags:d.array(d.string()).describe("Keywords/tags associated with the solution."),strings:d.array(rx).describe("Localized strings/labels used by apps (dashboards, forms, etc.).")}),items:d.array(nx).describe("ArcGIS items that belong to the solution (apps, maps, layers, etc.)."),featureLayer:sx.describe("Primary feature layer item and its schema/layers/tables details.")}),ix=d.object({op:d.enum(["add","remove","replace","move","copy"]).describe("RFC 6902 operation type."),path:d.string().describe("RFC 6901 JSON Pointer to the target location."),value:d.string().nullable().describe(`JSON-encoded value to apply (required for add and replace). Must be null \u2014 not an empty string \u2014 for remove, move, and copy operations. Serialize as a JSON string, e.g. '\\"text\\"' for a string, '[\\"a\\",\\"b\\"]' for an array, or '{\\"name\\":\\"x\\"}' for an object.`),from:d.string().nullable().describe("RFC 6901 JSON Pointer to the source location (required for move and copy). Must be null \u2014 not an empty string \u2014 for all other operations.")}),ax=d.object({response:d.string().describe("Conversational response describing the accepted design changes."),patches:d.array(ix).describe("Minimal RFC 6902 patch operations needed to update the current design.")}),lx=d.object({response:d.string().describe("Short, user-friendly explanation of why the requested update was not applied.")}),cx=d.object({assistantResponse:d.string().describe("Natural-language response for the user."),isValidUpdate:d.boolean().describe("True only when the request is in scope for supported design updates.")}),ux=d.object({matchedTitles:d.array(d.string()).describe("Titles of solutions that match the user's request. Empty array if no strong match.")}),dx=d.object({templateId:d.string().min(1).describe("Template id from the available template list."),confidence:d.number().min(0).max(1).describe("Confidence score from 0 to 1 for this template match."),templateDescription:d.string().min(1).describe("Short action\u2011oriented description of the template in the user's use case/workflow, starting with a verb.")}),px=d.object({assistantResponse:d.string().nullable().describe("Natural-language response for the user."),isValidUseCase:d.boolean().describe("True only when the request is concrete, appropriate, and has at least one matching template."),matchedTemplates:d.array(dx).describe("Ordered list of matching templates, best match first. Empty when no valid match exists.")}),mx=t=>t.length?t.map((e,r)=>`${r+1}. ${e}`).join(`
|
|
331
|
-
`):"No validation errors were provided.",fx=async t=>{let{query:e,validationIssues:r,recentMessages:n,fallbackMessage:o,promptModules:s}=t;try{return(await Fp({promptText:await be(s,"explainValidationFailure"),modelTier:"fast",temperature:0,schema:lx,messages:n,inputVariables:{query:e,validationIssueCount:String(r.length),validationIssues:mx(r)}})).response?.trim()||o}catch(i){return console.warn("Natural language response failed:",{error:i}),o}},Al=t=>t in _r,hx=5,gx=.8,yx=.5,_x="Web Mapping Application",wx="Embeddings",fi=null,yl=null,hi=null,gi=null,bx="Build",fr=Object.assign({"./prompts/assessBuildRequest.md":()=>import("./
|
|
331
|
+
`):"No validation errors were provided.",fx=async t=>{let{query:e,validationIssues:r,recentMessages:n,fallbackMessage:o,promptModules:s}=t;try{return(await Fp({promptText:await be(s,"explainValidationFailure"),modelTier:"fast",temperature:0,schema:lx,messages:n,inputVariables:{query:e,validationIssueCount:String(r.length),validationIssues:mx(r)}})).response?.trim()||o}catch(i){return console.warn("Natural language response failed:",{error:i}),o}},Al=t=>t in _r,hx=5,gx=.8,yx=.5,_x="Web Mapping Application",wx="Embeddings",fi=null,yl=null,hi=null,gi=null,bx="Build",fr=Object.assign({"./prompts/assessBuildRequest.md":()=>import("./UOQSRV3X.js").then(t=>t.default),"./prompts/assessUpdateRequest.md":()=>import("./7X2SPNNK.js").then(t=>t.default),"./prompts/description.md":()=>import("./E25ZWVBK.js").then(t=>t.default),"./prompts/designSolution.md":()=>import("./SNA7NRRQ.js").then(t=>t.default),"./prompts/explainValidationFailure.md":()=>import("./I5E3PM26.js").then(t=>t.default),"./prompts/findExistingSolution.md":()=>import("./LPFG5XTA.js").then(t=>t.default),"./prompts/updateDesign.md":()=>import("./MBT2S4J5.js").then(t=>t.default)}),Ax=tx.builderMessages,G=t=>t?.signal?.aborted??!1,re=(t,e,r)=>_i(e)?.builderMessages?.[t]??Ax[t],Vp=t=>{typeof window<"u"&&window.dispatchEvent(new CustomEvent("arcgis-solution-design-update",{detail:t}))},xx=async(t,e,r)=>{if(!t)return null;let n=`type:"${_x}" AND typekeywords:${wx} AND group:${t}`;return(await Ti({q:n,params:e?{token:e}:void 0,portal:r,num:1}))?.results?.[0]??null};async function vx(t,e,r,n){try{let o=await xx(t,e,r);if(!o||G(n))return null;let s=new DA({id:o.id});return await s.load(),G(n)?null:await s.fetchData("json")}catch{return null}}var Ix=async(t,e,r)=>{if(!t)return[];let n=`type:Solution AND typekeywords:${bx} AND group:${t}`;return(await Ti({q:n,params:e?{token:e}:void 0,portal:r,num:100}))?.results??[]},Tx=async(t,e,r)=>{try{let n=await Ul(t,{params:e?{token:e}:void 0,portal:r}),o=n?.buildSolution;if(!o)return null;let s=n?.params,i=s&&typeof s=="object"&&!Array.isArray(s)?s:null;return{buildSolution:o,params:i}}catch{return null}},hr=(t,e={})=>{let r=t;return"itemId"in e&&(r={...r,solution:{...r.solution,itemId:e.itemId??null}}),e.sourceBuildSolution!=null&&(r={...r,sourceBuildSolution:e.sourceBuildSolution}),"params"in e&&(r={...r,params:e.params??null}),"templateId"in e&&(r={...r,templateId:e.templateId??null}),r},Gp=(t,e)=>{if(t==null||e==null)return{ok:!1,error:"design or sourceBuildSolution is null/undefined"};try{let r=structuredClone(e);return new Ni({buildSolution:r}).applyLlmTemplate(t),{ok:!0}}catch(r){return{ok:!1,error:r instanceof Error?r.stack??r.message:String(r)}}},xl=async t=>{if(yl){Object.entries(yl).forEach(([i,a])=>{_r[i]&&(_r[i].initialTemplate=a)});return}let e=t?.configurable?.context?.token,r=Zp(t),n=Qp(t);if(!r){console.warn("Solution Builder: missing primarySolutionsGroupId in appConfig; skipping live template hydration.");return}let o=await Ix(r,e,n),s={};G(t)||(await Promise.all(o.map(async i=>{let a=i.properties?.templateInfo;if(!a||typeof a!="object")return;let c=a.id;if(typeof c!="string"||s[c])return;let l=await Tx(i.id,e,n);if(!l||G(t))return;let{buildSolution:u,params:m}=l;if(typeof u=="object"&&u!==null&&"solution"in u){let h=u.solution;h.thumbnailUrl=i.thumbnail?`${n??"https://www.arcgis.com/sharing/rest"}/content/items/${i.id}/info/${i.thumbnail}`:void 0,h.item=i}let f={...a,buildSolution:u};s[c]=hr(new Ni(f).dumpToLlmTemplate(),{itemId:i.id,sourceBuildSolution:structuredClone(u),params:m?structuredClone(m):null}),_r[c]={...a,initialTemplate:s[c]}})),yl=s)},Jp=t=>{let e=t?.configurable?.context?.token;return typeof e!="string"||!e.trim()?null:e},Zp=t=>{let e=t?.configurable?.context?.configContext?.primarySolutionsGroupId;return typeof e!="string"||!e.trim()?null:e},Qp=t=>{let e=t?.configurable?.context?.configContext?.portalURL;if(!(typeof e!="string"||!e.trim()))return`${e.replace(/\/+$/,"")}/sharing/rest`},Sx=async t=>{await Promise.all([Xp(t),xl(t)])},Yp=async t=>{let e=Jp(t);(!hi||e&&e!==gi)&&(gi=e??gi,hi=Sx(t).catch(r=>{throw hi=null,gi=null,r})),await hi};async function Xp(t){if(fi)return fi;let e=Zp(t);if(!e)return console.warn("Solution Builder: missing primarySolutionsGroupId in appConfig; skipping embeddings load."),null;let r=Qp(t),n=t?.configurable?.context?.configContext?.portalURL;if(await new LA(n?{url:n}:void 0).load(),G(t))return null;let o=Jp(t)??void 0,s=await vx(e,o,r,t);return G(t)?null:s?(fi=s.items,fi):null}var Ex=()=>Object.entries(_r).map(([t,e])=>`ID: ${t}
|
|
332
332
|
Label: ${e.label}
|
|
333
333
|
Description: ${e.description}`).join(`
|
|
334
334
|
|
|
@@ -337,4 +337,4 @@ Snippet: ${u.snippet}
|
|
|
337
337
|
Description: ${u.description}`).join(`
|
|
338
338
|
|
|
339
339
|
`),l=t.agentExecutionContext.messages.slice(-11);return{existingMatches:(await kt({promptText:await be(fr,"findExistingSolution"),modelTier:"fast",temperature:0,schema:ux,messages:l,inputVariables:{query:r,candidates:c}})).matchedTitles.map(u=>a.find(({solution:m})=>m.title===u)).filter(u=>u!==void 0)}},Dx=(t,e)=>{if(G(e))return{};let{existingMatches:r}=t,{hitlResponse:n}=e.configurable,o=`confirmExistingSolution:${r[0].solution.id}`;if(n?.agentId!=="solutionBuilder"||n.id!==o){r.length===1?qp(r[0].solution.id):Up(r);let a=re("existingSolutionMatch",e),c=[re("continueBuildingYes",e),re("continueBuildingNo",e)],l={agentId:"solutionBuilder",id:o,kind:"singleSelection",message:a,metadata:c};throw new Uo(l)}let s=String(n.payload??"").trim(),i=re("continueBuildingNo",e);return{continueBuilding:s!==i}},Fx=(t,e)=>{let r=re("continueBuildingDeclined",e);return{outputMessage:r,summary:r,status:"success"}},em=async(t,e)=>{if(G(e))return{};if(await Yp(e),G(e))return{};let{currentDesign:r}=t,n=t.agentExecutionContext.userRequest;await Pe({text:re("creatingDesign",e)},e);let o=to(t.selectedTemplate);if(o?.initialTemplate||(await xl(e),o=to(t.selectedTemplate)),G(e))return{};if(!o?.initialTemplate)throw new Error("No hydrated templates are available for solution design.");let s=hr(r??o.initialTemplate,{itemId:(r??o.initialTemplate)?.solution?.itemId??null,sourceBuildSolution:r?.sourceBuildSolution??o.initialTemplate.sourceBuildSolution,params:r?.params??o.initialTemplate.params??null}),i=t.agentExecutionContext.messages.slice(-11),a=await kt({promptText:await be(fr,"designSolution"),modelTier:"advanced",temperature:0,schema:bl,messages:i,inputVariables:{currentDesign:JSON.stringify(Li(s)),templateInstructions:o.instructions,query:n}});if(await Pe({text:" of design solution 1"},e),G(e))return{};let{response:c,featureLayer:l,...u}=a,m=Fi(l,s.featureLayer),f=hr({...u,featureLayer:m},{itemId:s?.solution?.itemId,sourceBuildSolution:s.sourceBuildSolution,templateId:t.selectedTemplate??null,params:s.params??null}),h=new yi(f,o.initialTemplate);if(!h.isValid)return console.warn("[SolutionBuilder] designSolution validation failed:",{issues:h.issues,llmResponse:a}),{outputMessage:re("createDesignFailed",e)};let b=f.sourceBuildSolution,A=Gp(f,b);if(!A.ok){console.warn("[SolutionBuilder] designSolution Esri JSON conversion failed:",{error:A.error,llmResponse:a,design:f});let E=re("createDesignFailed",e);return{outputMessage:E,summary:E,status:"success"}}return G(e)?{}:(Vp(f),{outputMessage:c,summary:c,status:"success",currentDesign:f})},jx=async(t,e)=>{if(G(e))return{};let{currentDesign:r}=t;if(!r)return em(t,e);let n=t.agentExecutionContext.userRequest,o=t.agentExecutionContext.messages.slice(-11);await Pe({text:re("updatingDesign",e)},e);let s;try{s=await kt({promptText:await be(fr,"updateDesign"),modelTier:"advanced",temperature:0,schema:ax,messages:o,inputVariables:{currentDesign:JSON.stringify(Di(r)),query:n}})}catch(P){console.warn("[SolutionBuilder] updateDesign structured prompt failed:",P);let z=re("applyChangeFailed",e);return{outputMessage:z,summary:z,status:"success"}}let{response:i,patches:a}=s;if(!a||a.length===0)return{outputMessage:i,summary:i,status:"success"};let c=P=>{try{return JSON.parse(P)}catch{let z=P.replace(/[\u0000-\u001F]/g,U=>{switch(U){case"\b":return"\\b";case"\f":return"\\f";case`
|
|
340
|
-
`:return"\\n";case"\r":return"\\r";case" ":return"\\t";default:return"\\u"+U.charCodeAt(0).toString(16).padStart(4,"0")}});try{return JSON.parse(z)}catch{return P}}},l=[...a.map(P=>({op:P.op,path:P.path.replace(/\/+$/,""),...P.value!=null&&P.value!==""?{value:c(P.value)}:{},...P.from!=null&&P.from!==""?{from:P.from}:{}}))].sort((P,z)=>P.op!=="remove"||z.op!=="remove"?0:z.path.localeCompare(P.path,void 0,{numeric:!0})),u=structuredClone(Li(r));try{Jn(u,l,!0)}catch(P){console.warn("[SolutionBuilder] updateDesign JSON patch failed:",{error:P,llmResponse:s,patches:l,patchTarget:u});let z=re("applyChangeFailed",e);return{outputMessage:z,summary:z,status:"success"}}let m=hr({response:"",...u},{itemId:r.solution?.itemId??null}),f=bl.safeParse(m);if(!f.success){console.warn("[SolutionBuilder] updateDesign schema validation failed:",{errors:f.error.issues,llmResponse:s,patchedDesign:m});let P=re("applyChangeFailed",e);return{outputMessage:P,summary:P,status:"success"}}let{response:h,featureLayer:b,...A}=f.data,E=Fi(b,r.featureLayer),y=hr({...A,featureLayer:E},{itemId:r.solution?.itemId,sourceBuildSolution:r.sourceBuildSolution,templateId:r.templateId??t.selectedTemplate??null,params:r.params??null}),v=to(t.selectedTemplate);if(v?.initialTemplate||(await xl(e),v=to(t.selectedTemplate)),G(e))return{};if(!v?.initialTemplate)throw new Error("No hydrated templates are available for solution design.");let C=new yi(y,v.initialTemplate,!1);if(!C.isValid){console.warn("[SolutionBuilder] updateDesign validation failed:",{issues:C.issues,llmResponse:s,patchedDesign:y});let P=await fx({query:n,validationIssues:C.issues,recentMessages:o,fallbackMessage:re("applyChangeFailed",e),promptModules:fr});return{outputMessage:P,summary:P,status:"success"}}let L=y.sourceBuildSolution,B=Gp(y,L);if(!B.ok){console.warn("[SolutionBuilder] updateDesign Esri JSON conversion failed:",{error:B.error,llmResponse:s,design:y});let P=re("applyChangeFailed",e);return{outputMessage:P,summary:P,status:"success"}}return G(e)?{}:(Vp(y),{outputMessage:i,summary:i,status:"success",currentDesign:y})},zx=t=>t.currentDesign!==null?"assessUpdateRequest":"assessBuildRequest",Ux=t=>!t.updateAssessment||!t.updateAssessment.isValidUpdate?"invalidUpdateExit":"updateDesign",qx=t=>!t.assessment||!t.assessment.isValidUseCase?"invalidBuildExit":!t.selectedTemplate&&t.assessment.matchedTemplates.length>1?"selectTemplateHIL":"findExistingSolutions",Bx=t=>t.existingMatches.length>0?"confirmContinueBuildingHIL":"designSolution",Kx=t=>t.continueBuilding===!1?"declineContinueBuildingExit":"designSolution",Wx=()=>new fe(kx).addNode("syncCurrentDesignFromContext",Ox).addNode("assessBuildRequest",Px).addNode("assessUpdateRequest",Rx).addNode("invalidBuildExit",Mx).addNode("invalidUpdateExit",$x).addNode("selectTemplateHIL",Nx).addNode("findExistingSolutions",Lx).addNode("confirmContinueBuildingHIL",Dx).addNode("declineContinueBuildingExit",Fx).addNode("designSolution",em).addNode("updateDesign",jx).addEdge(me,"syncCurrentDesignFromContext").addConditionalEdges("syncCurrentDesignFromContext",zx,{assessUpdateRequest:"assessUpdateRequest",assessBuildRequest:"assessBuildRequest"}).addConditionalEdges("assessUpdateRequest",Ux,{invalidUpdateExit:"invalidUpdateExit",updateDesign:"updateDesign"}).addConditionalEdges("assessBuildRequest",qx,{invalidBuildExit:"invalidBuildExit",selectTemplateHIL:"selectTemplateHIL",findExistingSolutions:"findExistingSolutions"}).addEdge("invalidBuildExit",K).addEdge("invalidUpdateExit",K).addEdge("selectTemplateHIL","findExistingSolutions").addConditionalEdges("findExistingSolutions",Bx,{confirmContinueBuildingHIL:"confirmContinueBuildingHIL",designSolution:"designSolution"}).addConditionalEdges("confirmContinueBuildingHIL",Kx,{declineContinueBuildingExit:"declineContinueBuildingExit",designSolution:"designSolution"}).addEdge("declineContinueBuildingExit",K).addEdge("designSolution",K).addEdge("updateDesign",K);await be(fr,"description");var Hx=w.object({tool:w.enum(["explorer","builder","other"]).describe("The selected tool based on the user\u2019s intent using the conversation context."),confidence:w.number().min(0).max(1).describe("A confidence score (0.00\u20131.00)."),rationale:w.string().min(1).describe("A brief rationale for the tool choice (\u2264140 characters)")}),wi=t=>t?.signal?.aborted??!1,vl=Object.assign({"./prompts/assistantResponse.md":()=>import("./632J5NXN.js").then(t=>t.default),"./prompts/classifyIntent.md":()=>import("./LWJF6EXD.js").then(t=>t.default),"./prompts/description.md":()=>import("./ENLFOYSI.js").then(t=>t.default)}),Vx=t=>{let e=t?.configurable?.context?.solutionDesignJson,r=t?.configurable?.context?.lastTurnAgent,n=r==="assistant"?"other":r,o=!1;if(typeof e=="string"&&e.trim())try{o=JSON.parse(e).solution!=null}catch{o=!1}return{activeSolutionDesign:o,lastTool:n}},Il=(t,e)=>{let r=t?.configurable?.context?.setLastTurnAgent;typeof r=="function"&&r(e);let n=new CustomEvent("assistantProcessing",{detail:{finished:!0,agent:e}});window.dispatchEvent(n)},tm=S.Root({...ii(),selectedTool:S({reducer:(t,e)=>e??null,default:()=>null}),intentRationale:S({reducer:(t,e)=>e??null,default:()=>null})}),Gx=async(t,e)=>{if(wi(e))return{};let r=_i(e);await Pe({text:r?.builderMessages.understandingRequest},e);let n=t.agentExecutionContext.userRequest,o=t.agentExecutionContext.messages.slice(-11),{activeSolutionDesign:s,lastTool:i}=Vx(e),a=await be(vl,"classifyIntent"),c=await kt({promptText:a,modelTier:"advanced",temperature:0,schema:Hx,messages:o,inputVariables:{query:n,activeSolutionDesign:s,lastTool:i}});return{selectedTool:c.tool,intentRationale:c.rationale}},Jx=async(t,e)=>{if(wi(e))return{};let r=await VA().compile().invoke(t,e);return Il(e,"explorer"),r},Zx=async(t,e)=>{if(wi(e))return{};let r=await Wx().compile().invoke(t,e);return Il(e,"builder"),r},Qx=async(t,e)=>{if(wi(e))return{};let r=_i(e),n=t.agentExecutionContext.userRequest,o=t.intentRationale??"No rationale available.";await Pe({text:r?.executingSolutionsAssistantAgent},e);let s=await be(vl,"assistantResponse"),i=t.agentExecutionContext.messages.slice(-11),a=await Pp({promptText:s,modelTier:"advanced",temperature:0,messages:i,inputVariables:{query:n,rationale:o}});return Il(e,"assistant"),{outputMessage:a,summary:a,status:"success"}},Yx=t=>t.selectedTool??"other",Xx=()=>new fe(tm).addNode("classifyIntent",Gx).addNode("routeToExplorer",Jx).addNode("routeToBuilder",Zx).addNode("assistantResponse",Qx).addEdge(me,"classifyIntent").addConditionalEdges("classifyIntent",Yx,{explorer:"routeToExplorer",builder:"routeToBuilder",other:"assistantResponse"}).addEdge("routeToExplorer",K).addEdge("routeToBuilder",K).addEdge("assistantResponse",K),ev=await be(vl,"description"),tv={id:"solutionsAssistant",name:"Solutions Assistant Agent",description:ev,createGraph:Xx,workspace:tm},rv="https://links.esri.com/solutions/agol-organizational-account",nv="https://links.esri.com/solutions/configure-assistants",wl=class extends Ll{constructor(){super(),this.open=!1,this.userFirstName="",this.builderVisible=!1,this.hasActiveBuilderDesign=!1,this._conversationId=void 0,this._lastTurnAgent=void 0,this._orgSettings={aiAssistantsEnabled:!1,blockBetaApps:!0,colocateCompute:!1},this._suggestedPrompts=[],this._hasInteracted=!1,this._isMobile=window.innerWidth<=800,this._translations=Fl({name:"arcgis-solutions-assistant",blocking:!0}),this._builderWidth=48,this._solutionDesignJson='{ "solution": null }',this._isAssistantBusy=!1,this._isBuilderBusy=!1,this._preChatCheck=!1,this._showNewChatConfirm=!1,this._assistantRef=$l(),this._configContextConsumer=Ii({context:jl,subscribe:!0,callback:e=>{e?.portalURL&&(gl.portalUrl=e.portalURL),e?.userSession&&!this.userFirstName&&this._loadUserFirstName(),e?.authentication?.PortalSubset?.orgSettings&&(this._orgSettings=e?.authentication?.PortalSubset?.orgSettings)}}),this._builderDesignContextConsumer=Ii({context:zl,subscribe:!0,callback:e=>{e?.design&&(this._solutionDesignJson=JSON.stringify(e.design,null,2))}}),this._handleResize=()=>{this._isMobile=window.innerWidth<=800},this._chatStartTime=null,this._handleAssistantProcessingFinished=e=>{let r=e;if(r.detail?.finished&&this._chatStartTime!==null){let n=ql(this._chatStartTime);this._telemetry?.logEvent({category:Zn.ASSISTANT,action:"Chat",dimensions:[r.detail.agent],metrics:[n]}),this._chatStartTime=null}},this.closeAssistant=xi(),this.assistantProcessing=xi(),this._handleAssistantLinkClick=e=>{let r=e.composedPath().find(n=>n instanceof HTMLAnchorElement);if(r?.href)if(e.preventDefault(),r.target.indexOf("solutionId:")>-1){let n=r.target.split("solutionId:")[1];this._emitItemIdFromAI(n)}else window.open(r.href,"_blank","noopener,noreferrer")},this._onSolutionDesignUpdate=e=>{let r=e.detail;this._solutionDesignJson=r?JSON.stringify(r,null,2):'{ "solution": null }'},this._handleSignIn=()=>{this._configContextConsumer.value?.authentication?.signIn("aiOpen")},this._checkURLOpenParameter=()=>{this.open=this._configContextConsumer.value?.authentication?.SignInParam==="aiOpen"||this.open},this.listenOn(window,"arcgisFeedback",e=>{let r=e.detail,{agentPicked:n,taskAssigned:o,userMessage:s}=this._parseAgentPickedAndTask(r);this._sendFeedback(r.content,s??o??"",r.feedback?.positive?"Good":r.feedback?.positive=="Bad"?"Bad":"N/A",n??"")}),this.listenOn(window,"clearAssistantConversation",()=>{this._clearConversation()})}static{this.properties={open:5,userFirstName:1,builderVisible:5,hasActiveBuilderDesign:5,_conversationId:16,_lastTurnAgent:16,_orgSettings:16,_suggestedPrompts:16,_hasInteracted:16,_isMobile:16,_translations:16,_builderWidth:16,_solutionDesignJson:16,_isAssistantBusy:16,_isBuilderBusy:16,_preChatCheck:16,_showNewChatConfirm:16}}static{this.styles=FA}get _telemetry(){return this._configContextConsumer.value?.telemetrySession}connectedCallback(){super.connectedCallback(),window.addEventListener("arcgis-solution-design-update",this._onSolutionDesignUpdate),this.el.addEventListener("click",this._handleAssistantLinkClick),window.addEventListener("resize",this._handleResize),window.addEventListener("assistantProcessing",this._handleAssistantProcessingFinished),this._builderDesignContextConsumer}disconnectedCallback(){window.removeEventListener("arcgis-solution-design-update",this._onSolutionDesignUpdate),this.el.removeEventListener("click",this._handleAssistantLinkClick),window.removeEventListener("resize",this._handleResize),window.removeEventListener("assistantProcessing",this._handleAssistantProcessingFinished),super.disconnectedCallback()}loaded(){this._checkURLOpenParameter()}load(){gl.applicationName="Solutions",this._configContextConsumer.value?.portalURL&&(gl.portalUrl=this._configContextConsumer.value.portalURL)}firstUpdated(e){this._loadUserFirstName()}willUpdate(e){e.has("open")&&this.open&&window.dispatchEvent(new CustomEvent("openAssistant")),this._configContextConsumer.value?.authentication&&this._configContextConsumer.value?.userSession?.token&&(this._preChatCheck||(Wp(this._configContextConsumer.value?.authentication.Portal,this._configContextConsumer.value?.userSession?.token,this._configContextConsumer.value?.locale??"en"),this._preChatCheck=!0)),this._configContextConsumer.value?.userSession?.token&&this._configContextConsumer.value?.authentication?.CanUseAI}_renderNoSign(){return st`<calcite-notice class="margin-lg" open scale=m icon=effects kind=info><div slot=message>${this._translations.signInMessage}</div><calcite-link @click=${this._handleSignIn} slot=link title=${this._translations.signInMessage??vi} class="padding-top-10">${this._translations.signIn}</calcite-link></calcite-notice>`}_renderNoPermission(){return st`<calcite-notice class="margin-lg" open scale=m icon=effects kind=info><div slot=title>${this._translations.noPermissionTitle}</div><div slot=message class="padding-top-10">${uc(this._translations.noPermissionMessage.replace("{{orgUrl}}",rv).replace("{{configAI}}",nv))}</div></calcite-notice>`}render(){let e=this._suggestedPrompts.length>0?this._suggestedPrompts:this._hasInteracted?[]:Object.values(this._translations.defaultFollowUpQuestions);return this._suggestedPrompts.length>0?e=this._suggestedPrompts:this._hasInteracted||(e=[...Object.values(this._translations.defaultFollowUpQuestions)]),st`<calcite-panel class="chat-panel"><div class="header-content" slot=header-content><span class="header-title">${this._translations.solutionAssistantTitle}</span></div>${this._configContextConsumer.value?.userSession?.token?this._configContextConsumer.value?.authentication?.CanUseAI?st`${!this._isMobile&&st`<calcite-action id=solutionBuilderAction icon=pencil-square .text=${this._translations.tooltips.builder} text-enabled .indicator=${this.hasActiveBuilderDesign} .disabled=${!this.hasActiveBuilderDesign} .active=${this.builderVisible} selection-appearance=highlight @click=${()=>{this._telemetry?.logEvent({category:Zn.ASSISTANT,action:"Toggle Builder Panel",dimensions:[this.builderVisible?"Close":"Open"]}),window.dispatchEvent(new CustomEvent("toggleSolutionBuilder"))}} scale=m slot=header-actions-end></calcite-action>`||""}${!this._isMobile&&st`<calcite-tooltip placement=bottom reference-element=solutionBuilderAction><span>${this._translations.tooltips.solutionBuilder}</span></calcite-tooltip>`||""}<arcgis-assistant reference-element copy-enabled feedback-enabled heading description entry-message=${this._translations.defaultStartUpMessage??vi} .suggestedPrompts=${e} @arcgisSubmit=${r=>{console.log("arcgis submit: ",r.detail),this._suggestedPrompts=[],e=[],this._hasInteracted=!0,this._chatStartTime=Date.now(),this.assistantProcessing.emit(!0)}} @arcgisFeedback=${r=>{r.detail}} @arcgisResponse=${()=>{this.assistantProcessing.emit(!1)}} ${Nl(this._assistantRef)}><calcite-button appearance=transparent id=newChatButton icon-start=speech-bubble-plus kind=neutral .label=${this._translations.tooltips.newChat} @click=${()=>{this.hasActiveBuilderDesign?this._showNewChatConfirm=!0:(this._telemetry?.logEvent({category:Zn.ASSISTANT,action:"New Chat",dimensions:["No Active Design"]}),this._clearConversation())}} round scale=m slot=entry-actions-start>${this._translations.tooltips.newChat}</calcite-button><arcgis-assistant-agent .agent=${tv} .context=${{token:this._configContextConsumer.value?.userSession?.token,configContext:this._configContextConsumer.value,convoId:this._conversationId,portal:this._configContextConsumer.value?.authentication.Portal,assistantRef:this._assistantRef,translations:this._translations,solutionDesignJson:this._solutionDesignJson,lastTurnAgent:this._lastTurnAgent,setConversationId:r=>{this._conversationId=r},setLastTurnAgent:r=>{this._lastTurnAgent=r},clearSuggestedPrompts:()=>{this._suggestedPrompts=[]}}}></arcgis-assistant-agent></arcgis-assistant><div slot=footer class="disclaimer-div width-100"><calcite-chip class="beta-chip" appearance=solid kind=neutral .label=${this._translations.betaTag} scale=s>${this._translations.betaTag}</calcite-chip><span>${this._translations.disclaimerMessage} <a href=https://links.esri.com/solutions/security-concern rel="noopener noreferrer" target=_blank>${this._translations.reportConcern}</a></span></div>`:this._renderNoPermission():this._renderNoSign()}${this._showNewChatConfirm&&st`<calcite-dialog close-disabled escape-disabled .heading=${this._translations.newConversationConfirmTitle} modal open outside-close-disabled>${this._translations.builderMessages.discardMessage}<calcite-button appearance=outline @click=${()=>{this._showNewChatConfirm=!1}} slot=footer-end>${this._translations.cancel}</calcite-button><calcite-button appearance=solid kind=danger @click=${()=>{this._telemetry?.logEvent({category:Zn.ASSISTANT,action:"New Chat",dimensions:["With Design Discard"]}),this._showNewChatConfirm=!1,window.dispatchEvent(new CustomEvent("requestBuilderDiscard"))}} slot=footer-end>${this._translations.discard}</calcite-button></calcite-dialog>`||""}<calcite-action icon=x id=closeAssistantButton .label=${this._translations.tooltips.close} @click=${()=>{this.closeAssistant.emit(!0)}} slot=header-actions-end .text=${this._translations.tooltips.close}></calcite-action><calcite-tooltip placement=bottom reference-element=closeAssistantButton><span>${this._translations.tooltips.close}</span></calcite-tooltip></calcite-panel>`}_clearConversation(){this._conversationId=void 0,this._lastTurnAgent=void 0,this._suggestedPrompts=[],this._hasInteracted=!1,this._assistantRef.value?.clearChatHistory()}_sendFeedback(e,r,n,o){let s=`https://survey123.arcgis.com/share/6e349a50b4504ca6b6107216d568db5f?field:_source=${encodeURIComponent("Solutions Assistant")}&field:user_evaluation=${encodeURIComponent(n)}&field:question=${encodeURIComponent(r)}&field:answer=${encodeURIComponent(e)}&field:context=${encodeURIComponent(JSON.stringify({agent:o}))}&field:version=${encodeURIComponent("v2")}`;window.open(s,"_blank")}async _loadUserFirstName(){try{let e=await this._configContextConsumer.value?.userSession?.getUser();if(e?.fullName){let r=e.fullName.split(" ")[0];this.userFirstName=r}}catch{}}_parseAgentPickedAndTask(e){let r=Array.from(this._assistantRef.value?.messages||[]),n=e.log||[],o=[...r].sort((u,m)=>m.id-u.id).find(u=>u.role==="user"&&u.id<=e.id)?.content||null,s=n.find(u=>typeof u=="string"&&u.includes("Agent picked:"))??null;if(!s)return{agentPicked:null,taskAssigned:null,userMessage:o};let i=/Agent picked:\s*(.*?)\s*(?:\\n|\r?\n)\s*Task Assigned:\s*([\s\S]*)$/i,a=s.match(i);if(!a)return{agentPicked:null,taskAssigned:null,userMessage:o};let c=a[1].trim(),l=a[2].trim();return{agentPicked:c,taskAssigned:l,userMessage:o}}_emitItemIdFromAI(e){let r=new CustomEvent("solutionIDFromAssistant",{detail:e,bubbles:!0,composed:!0});window.dispatchEvent(r)}};Dl("arcgis-solutions-assistant",wl);return wl},"config","identity/IdentityManager","portal/Portal","portal/Portal","identity/IdentityManager","config","core/reactiveUtils","layers/FeatureLayer","request","layers/FeatureLayer","core/reactiveUtils","identity/IdentityManager","portal/Portal","config","core/reactiveUtils","layers/FeatureLayer","request","Graphic","rest/locator","symbols/PictureMarkerSymbol","geometry/Extent","geometry/Point","smartMapping/renderers/pieChart","smartMapping/symbology/pieChart","views/support/colorUtils","smartMapping/renderers/color","smartMapping/symbology/color","smartMapping/renderers/univariateColorSize","smartMapping/renderers/dotDensity","smartMapping/symbology/dotDensity","smartMapping/renderers/heatmap","smartMapping/symbology/heatmap","smartMapping/renderers/predominance","smartMapping/symbology/predominance","smartMapping/renderers/relationship","smartMapping/symbology/relationship","smartMapping/renderers/size","smartMapping/renderers/type","smartMapping/symbology/type","layers/support/FeatureEffect","layers/support/FeatureFilter","geometry/operators/unionOperator","intl","smartMapping/statistics/summaryStatistics","smartMapping/statistics/uniqueValues","rest/support/TopFeaturesQuery","rest/support/TopFilter","WebLinkChart","rest/knowledgeGraph/GraphQueryStreaming","views/LinkChartView","rest/knowledgeGraphService","rest/knowledgeGraph/GraphSearchStreaming","identity/IdentityManager","portal/Portal","config","core/reactiveUtils","layers/FeatureLayer","request","identity/IdentityManager","portal/Portal","config","core/reactiveUtils","layers/FeatureLayer","request","identity/IdentityManager","portal/Portal","config","core/reactiveUtils","layers/FeatureLayer","request","identity/IdentityManager","portal/Portal","config","core/reactiveUtils","layers/FeatureLayer","request","smartMapping/statistics/summaryStatistics","smartMapping/statistics/uniqueValues","identity/IdentityManager","portal/Portal","config","core/reactiveUtils","layers/FeatureLayer","request","identity/IdentityManager","portal/Portal","config","core/reactiveUtils","layers/FeatureLayer","request","identity/IdentityManager","portal/Portal","core/reactiveUtils","layers/FeatureLayer","request","portal/Portal","portal/PortalItem",a,b)
|
|
340
|
+
`:return"\\n";case"\r":return"\\r";case" ":return"\\t";default:return"\\u"+U.charCodeAt(0).toString(16).padStart(4,"0")}});try{return JSON.parse(z)}catch{return P}}},l=[...a.map(P=>({op:P.op,path:P.path.replace(/\/+$/,""),...P.value!=null&&P.value!==""?{value:c(P.value)}:{},...P.from!=null&&P.from!==""?{from:P.from}:{}}))].sort((P,z)=>P.op!=="remove"||z.op!=="remove"?0:z.path.localeCompare(P.path,void 0,{numeric:!0})),u=structuredClone(Li(r));try{Jn(u,l,!0)}catch(P){console.warn("[SolutionBuilder] updateDesign JSON patch failed:",{error:P,llmResponse:s,patches:l,patchTarget:u});let z=re("applyChangeFailed",e);return{outputMessage:z,summary:z,status:"success"}}let m=hr({response:"",...u},{itemId:r.solution?.itemId??null}),f=bl.safeParse(m);if(!f.success){console.warn("[SolutionBuilder] updateDesign schema validation failed:",{errors:f.error.issues,llmResponse:s,patchedDesign:m});let P=re("applyChangeFailed",e);return{outputMessage:P,summary:P,status:"success"}}let{response:h,featureLayer:b,...A}=f.data,E=Fi(b,r.featureLayer),y=hr({...A,featureLayer:E},{itemId:r.solution?.itemId,sourceBuildSolution:r.sourceBuildSolution,templateId:r.templateId??t.selectedTemplate??null,params:r.params??null}),v=to(t.selectedTemplate);if(v?.initialTemplate||(await xl(e),v=to(t.selectedTemplate)),G(e))return{};if(!v?.initialTemplate)throw new Error("No hydrated templates are available for solution design.");let C=new yi(y,v.initialTemplate,!1);if(!C.isValid){console.warn("[SolutionBuilder] updateDesign validation failed:",{issues:C.issues,llmResponse:s,patchedDesign:y});let P=await fx({query:n,validationIssues:C.issues,recentMessages:o,fallbackMessage:re("applyChangeFailed",e),promptModules:fr});return{outputMessage:P,summary:P,status:"success"}}let L=y.sourceBuildSolution,B=Gp(y,L);if(!B.ok){console.warn("[SolutionBuilder] updateDesign Esri JSON conversion failed:",{error:B.error,llmResponse:s,design:y});let P=re("applyChangeFailed",e);return{outputMessage:P,summary:P,status:"success"}}return G(e)?{}:(Vp(y),{outputMessage:i,summary:i,status:"success",currentDesign:y})},zx=t=>t.currentDesign!==null?"assessUpdateRequest":"assessBuildRequest",Ux=t=>!t.updateAssessment||!t.updateAssessment.isValidUpdate?"invalidUpdateExit":"updateDesign",qx=t=>!t.assessment||!t.assessment.isValidUseCase?"invalidBuildExit":!t.selectedTemplate&&t.assessment.matchedTemplates.length>1?"selectTemplateHIL":"findExistingSolutions",Bx=t=>t.existingMatches.length>0?"confirmContinueBuildingHIL":"designSolution",Kx=t=>t.continueBuilding===!1?"declineContinueBuildingExit":"designSolution",Wx=()=>new fe(kx).addNode("syncCurrentDesignFromContext",Ox).addNode("assessBuildRequest",Px).addNode("assessUpdateRequest",Rx).addNode("invalidBuildExit",Mx).addNode("invalidUpdateExit",$x).addNode("selectTemplateHIL",Nx).addNode("findExistingSolutions",Lx).addNode("confirmContinueBuildingHIL",Dx).addNode("declineContinueBuildingExit",Fx).addNode("designSolution",em).addNode("updateDesign",jx).addEdge(me,"syncCurrentDesignFromContext").addConditionalEdges("syncCurrentDesignFromContext",zx,{assessUpdateRequest:"assessUpdateRequest",assessBuildRequest:"assessBuildRequest"}).addConditionalEdges("assessUpdateRequest",Ux,{invalidUpdateExit:"invalidUpdateExit",updateDesign:"updateDesign"}).addConditionalEdges("assessBuildRequest",qx,{invalidBuildExit:"invalidBuildExit",selectTemplateHIL:"selectTemplateHIL",findExistingSolutions:"findExistingSolutions"}).addEdge("invalidBuildExit",K).addEdge("invalidUpdateExit",K).addEdge("selectTemplateHIL","findExistingSolutions").addConditionalEdges("findExistingSolutions",Bx,{confirmContinueBuildingHIL:"confirmContinueBuildingHIL",designSolution:"designSolution"}).addConditionalEdges("confirmContinueBuildingHIL",Kx,{declineContinueBuildingExit:"declineContinueBuildingExit",designSolution:"designSolution"}).addEdge("declineContinueBuildingExit",K).addEdge("designSolution",K).addEdge("updateDesign",K);await be(fr,"description");var Hx=w.object({tool:w.enum(["explorer","builder","other"]).describe("The selected tool based on the user\u2019s intent using the conversation context."),confidence:w.number().min(0).max(1).describe("A confidence score (0.00\u20131.00)."),rationale:w.string().min(1).describe("A brief rationale for the tool choice (\u2264140 characters)")}),wi=t=>t?.signal?.aborted??!1,vl=Object.assign({"./prompts/assistantResponse.md":()=>import("./4L7TJNAM.js").then(t=>t.default),"./prompts/classifyIntent.md":()=>import("./LWJF6EXD.js").then(t=>t.default),"./prompts/description.md":()=>import("./ENLFOYSI.js").then(t=>t.default)}),Vx=t=>{let e=t?.configurable?.context?.solutionDesignJson,r=t?.configurable?.context?.lastTurnAgent,n=r==="assistant"?"other":r,o=!1;if(typeof e=="string"&&e.trim())try{o=JSON.parse(e).solution!=null}catch{o=!1}return{activeSolutionDesign:o,lastTool:n}},Il=(t,e)=>{let r=t?.configurable?.context?.setLastTurnAgent;typeof r=="function"&&r(e);let n=new CustomEvent("assistantProcessing",{detail:{finished:!0,agent:e}});window.dispatchEvent(n)},tm=S.Root({...ii(),selectedTool:S({reducer:(t,e)=>e??null,default:()=>null}),intentRationale:S({reducer:(t,e)=>e??null,default:()=>null})}),Gx=async(t,e)=>{if(wi(e))return{};let r=_i(e);await Pe({text:r?.builderMessages.understandingRequest},e);let n=t.agentExecutionContext.userRequest,o=t.agentExecutionContext.messages.slice(-11),{activeSolutionDesign:s,lastTool:i}=Vx(e),a=await be(vl,"classifyIntent"),c=await kt({promptText:a,modelTier:"advanced",temperature:0,schema:Hx,messages:o,inputVariables:{query:n,activeSolutionDesign:s,lastTool:i}});return{selectedTool:c.tool,intentRationale:c.rationale}},Jx=async(t,e)=>{if(wi(e))return{};let r=await VA().compile().invoke(t,e);return Il(e,"explorer"),r},Zx=async(t,e)=>{if(wi(e))return{};let r=await Wx().compile().invoke(t,e);return Il(e,"builder"),r},Qx=async(t,e)=>{if(wi(e))return{};let r=_i(e),n=t.agentExecutionContext.userRequest;await Pe({text:r?.executingSolutionsAssistantAgent},e);let o=await be(vl,"assistantResponse"),s=t.agentExecutionContext.messages.slice(-11),i=await Pp({promptText:o,modelTier:"advanced",temperature:0,messages:s,inputVariables:{query:n}});return Il(e,"assistant"),{outputMessage:i,summary:i,status:"success"}},Yx=t=>t.selectedTool??"other",Xx=()=>new fe(tm).addNode("classifyIntent",Gx).addNode("routeToExplorer",Jx).addNode("routeToBuilder",Zx).addNode("assistantResponse",Qx).addEdge(me,"classifyIntent").addConditionalEdges("classifyIntent",Yx,{explorer:"routeToExplorer",builder:"routeToBuilder",other:"assistantResponse"}).addEdge("routeToExplorer",K).addEdge("routeToBuilder",K).addEdge("assistantResponse",K),ev=await be(vl,"description"),tv={id:"solutionsAssistant",name:"Solutions Assistant Agent",description:ev,createGraph:Xx,workspace:tm},rv="https://links.esri.com/solutions/agol-organizational-account",nv="https://links.esri.com/solutions/configure-assistants",wl=class extends Ll{constructor(){super(),this.open=!1,this.userFirstName="",this.builderVisible=!1,this.hasActiveBuilderDesign=!1,this._conversationId=void 0,this._lastTurnAgent=void 0,this._orgSettings={aiAssistantsEnabled:!1,blockBetaApps:!0,colocateCompute:!1},this._suggestedPrompts=[],this._hasInteracted=!1,this._isMobile=window.innerWidth<=800,this._translations=Fl({name:"arcgis-solutions-assistant",blocking:!0}),this._builderWidth=48,this._solutionDesignJson='{ "solution": null }',this._isAssistantBusy=!1,this._isBuilderBusy=!1,this._preChatCheck=!1,this._showNewChatConfirm=!1,this._assistantRef=$l(),this._configContextConsumer=Ii({context:jl,subscribe:!0,callback:e=>{e?.portalURL&&(gl.portalUrl=e.portalURL),e?.userSession&&!this.userFirstName&&this._loadUserFirstName(),e?.authentication?.PortalSubset?.orgSettings&&(this._orgSettings=e?.authentication?.PortalSubset?.orgSettings)}}),this._builderDesignContextConsumer=Ii({context:zl,subscribe:!0,callback:e=>{e?.design&&(this._solutionDesignJson=JSON.stringify(e.design,null,2))}}),this._handleResize=()=>{this._isMobile=window.innerWidth<=800},this._chatStartTime=null,this._handleAssistantProcessingFinished=e=>{let r=e;if(r.detail?.finished&&this._chatStartTime!==null){let n=ql(this._chatStartTime);this._telemetry?.logEvent({category:Zn.ASSISTANT,action:"Chat",dimensions:[r.detail.agent],metrics:[n]}),this._chatStartTime=null}},this.closeAssistant=xi(),this.assistantProcessing=xi(),this._handleAssistantLinkClick=e=>{let r=e.composedPath().find(n=>n instanceof HTMLAnchorElement);if(r?.href)if(e.preventDefault(),r.target.indexOf("solutionId:")>-1){let n=r.target.split("solutionId:")[1];this._emitItemIdFromAI(n)}else window.open(r.href,"_blank","noopener,noreferrer")},this._onSolutionDesignUpdate=e=>{let r=e.detail;this._solutionDesignJson=r?JSON.stringify(r,null,2):'{ "solution": null }'},this._handleSignIn=()=>{this._configContextConsumer.value?.authentication?.signIn("aiOpen")},this._checkURLOpenParameter=()=>{this.open=this._configContextConsumer.value?.authentication?.SignInParam==="aiOpen"||this.open},this.listenOn(window,"arcgisFeedback",e=>{let r=e.detail,{agentPicked:n,taskAssigned:o,userMessage:s}=this._parseAgentPickedAndTask(r);this._sendFeedback(r.content,s??o??"",r.feedback?.positive?"Good":r.feedback?.positive=="Bad"?"Bad":"N/A",n??"")}),this.listenOn(window,"clearAssistantConversation",()=>{this._clearConversation()})}static{this.properties={open:5,userFirstName:1,builderVisible:5,hasActiveBuilderDesign:5,_conversationId:16,_lastTurnAgent:16,_orgSettings:16,_suggestedPrompts:16,_hasInteracted:16,_isMobile:16,_translations:16,_builderWidth:16,_solutionDesignJson:16,_isAssistantBusy:16,_isBuilderBusy:16,_preChatCheck:16,_showNewChatConfirm:16}}static{this.styles=FA}get _telemetry(){return this._configContextConsumer.value?.telemetrySession}connectedCallback(){super.connectedCallback(),window.addEventListener("arcgis-solution-design-update",this._onSolutionDesignUpdate),this.el.addEventListener("click",this._handleAssistantLinkClick),window.addEventListener("resize",this._handleResize),window.addEventListener("assistantProcessing",this._handleAssistantProcessingFinished),this._builderDesignContextConsumer}disconnectedCallback(){window.removeEventListener("arcgis-solution-design-update",this._onSolutionDesignUpdate),this.el.removeEventListener("click",this._handleAssistantLinkClick),window.removeEventListener("resize",this._handleResize),window.removeEventListener("assistantProcessing",this._handleAssistantProcessingFinished),super.disconnectedCallback()}loaded(){this._checkURLOpenParameter()}load(){gl.applicationName="Solutions",this._configContextConsumer.value?.portalURL&&(gl.portalUrl=this._configContextConsumer.value.portalURL)}firstUpdated(e){this._loadUserFirstName()}willUpdate(e){e.has("open")&&this.open&&window.dispatchEvent(new CustomEvent("openAssistant")),this._configContextConsumer.value?.authentication&&this._configContextConsumer.value?.userSession?.token&&(this._preChatCheck||(Wp(this._configContextConsumer.value?.authentication.Portal,this._configContextConsumer.value?.userSession?.token,this._configContextConsumer.value?.locale??"en"),this._preChatCheck=!0)),this._configContextConsumer.value?.userSession?.token&&this._configContextConsumer.value?.authentication?.CanUseAI}_renderNoSign(){return st`<calcite-notice class="margin-lg" open scale=m icon=effects kind=info><div slot=message>${this._translations.signInMessage}</div><calcite-link @click=${this._handleSignIn} slot=link title=${this._translations.signInMessage??vi} class="padding-top-10">${this._translations.signIn}</calcite-link></calcite-notice>`}_renderNoPermission(){return st`<calcite-notice class="margin-lg" open scale=m icon=effects kind=info><div slot=title>${this._translations.noPermissionTitle}</div><div slot=message class="padding-top-10">${uc(this._translations.noPermissionMessage.replace("{{orgUrl}}",rv).replace("{{configAI}}",nv))}</div></calcite-notice>`}render(){let e=this._suggestedPrompts.length>0?this._suggestedPrompts:this._hasInteracted?[]:Object.values(this._translations.defaultFollowUpQuestions);return this._suggestedPrompts.length>0?e=this._suggestedPrompts:this._hasInteracted||(e=[...Object.values(this._translations.defaultFollowUpQuestions)]),st`<calcite-panel class="chat-panel"><div class="header-content" slot=header-content><span class="header-title">${this._translations.solutionAssistantTitle}</span></div>${this._configContextConsumer.value?.userSession?.token?this._configContextConsumer.value?.authentication?.CanUseAI?st`${!this._isMobile&&st`<calcite-action id=solutionBuilderAction icon=pencil-square .text=${this._translations.tooltips.builder} text-enabled .indicator=${this.hasActiveBuilderDesign} .disabled=${!this.hasActiveBuilderDesign} .active=${this.builderVisible} selection-appearance=highlight @click=${()=>{this._telemetry?.logEvent({category:Zn.ASSISTANT,action:"Toggle Builder Panel",dimensions:[this.builderVisible?"Close":"Open"]}),window.dispatchEvent(new CustomEvent("toggleSolutionBuilder"))}} scale=m slot=header-actions-end></calcite-action>`||""}${!this._isMobile&&st`<calcite-tooltip placement=bottom reference-element=solutionBuilderAction><span>${this._translations.tooltips.solutionBuilder}</span></calcite-tooltip>`||""}<arcgis-assistant reference-element copy-enabled feedback-enabled heading description entry-message=${this._translations.defaultStartUpMessage??vi} .suggestedPrompts=${e} @arcgisSubmit=${()=>{this._suggestedPrompts=[],e=[],this._hasInteracted=!0,this._chatStartTime=Date.now(),this.assistantProcessing.emit(!0)}} @arcgisFeedback=${r=>{r.detail}} @arcgisResponse=${()=>{this.assistantProcessing.emit(!1)}} ${Nl(this._assistantRef)}><calcite-button appearance=transparent id=newChatButton icon-start=speech-bubble-plus kind=neutral .label=${this._translations.tooltips.newChat} @click=${()=>{this.hasActiveBuilderDesign?this._showNewChatConfirm=!0:(this._telemetry?.logEvent({category:Zn.ASSISTANT,action:"New Chat",dimensions:["No Active Design"]}),this._clearConversation())}} round scale=m slot=entry-actions-start>${this._translations.tooltips.newChat}</calcite-button><arcgis-assistant-agent .agent=${tv} .context=${{token:this._configContextConsumer.value?.userSession?.token,configContext:this._configContextConsumer.value,convoId:this._conversationId,portal:this._configContextConsumer.value?.authentication.Portal,assistantRef:this._assistantRef,translations:this._translations,solutionDesignJson:this._solutionDesignJson,lastTurnAgent:this._lastTurnAgent,setConversationId:r=>{this._conversationId=r},setLastTurnAgent:r=>{this._lastTurnAgent=r},clearSuggestedPrompts:()=>{this._suggestedPrompts=[]}}}></arcgis-assistant-agent></arcgis-assistant><div slot=footer class="disclaimer-div width-100"><calcite-chip class="beta-chip" appearance=solid kind=neutral .label=${this._translations.betaTag} scale=s>${this._translations.betaTag}</calcite-chip><span>${this._translations.disclaimerMessage} <a href=https://links.esri.com/solutions/security-concern rel="noopener noreferrer" target=_blank>${this._translations.reportConcern}</a></span></div>`:this._renderNoPermission():this._renderNoSign()}${this._showNewChatConfirm&&st`<calcite-dialog close-disabled escape-disabled .heading=${this._translations.newConversationConfirmTitle} modal open outside-close-disabled>${this._translations.builderMessages.discardMessage}<calcite-button appearance=outline @click=${()=>{this._showNewChatConfirm=!1}} slot=footer-end>${this._translations.cancel}</calcite-button><calcite-button appearance=solid kind=danger @click=${()=>{this._telemetry?.logEvent({category:Zn.ASSISTANT,action:"New Chat",dimensions:["With Design Discard"]}),this._showNewChatConfirm=!1,window.dispatchEvent(new CustomEvent("requestBuilderDiscard"))}} slot=footer-end>${this._translations.discard}</calcite-button></calcite-dialog>`||""}<calcite-action icon=x id=closeAssistantButton .label=${this._translations.tooltips.close} @click=${()=>{this.closeAssistant.emit(!0)}} slot=header-actions-end .text=${this._translations.tooltips.close}></calcite-action><calcite-tooltip placement=bottom reference-element=closeAssistantButton><span>${this._translations.tooltips.close}</span></calcite-tooltip></calcite-panel>`}_clearConversation(){this._conversationId=void 0,this._lastTurnAgent=void 0,this._suggestedPrompts=[],this._hasInteracted=!1,this._assistantRef.value?.clearChatHistory()}_sendFeedback(e,r,n,o){let s=`https://survey123.arcgis.com/share/6e349a50b4504ca6b6107216d568db5f?field:_source=${encodeURIComponent("Solutions Assistant")}&field:user_evaluation=${encodeURIComponent(n)}&field:question=${encodeURIComponent(r)}&field:answer=${encodeURIComponent(e)}&field:context=${encodeURIComponent(JSON.stringify({agent:o}))}&field:version=${encodeURIComponent("v2")}`;window.open(s,"_blank")}async _loadUserFirstName(){try{let e=await this._configContextConsumer.value?.userSession?.getUser();if(e?.fullName){let r=e.fullName.split(" ")[0];this.userFirstName=r}}catch{}}_parseAgentPickedAndTask(e){let r=Array.from(this._assistantRef.value?.messages||[]),n=e.log||[],o=[...r].sort((u,m)=>m.id-u.id).find(u=>u.role==="user"&&u.id<=e.id)?.content||null,s=n.find(u=>typeof u=="string"&&u.includes("Agent picked:"))??null;if(!s)return{agentPicked:null,taskAssigned:null,userMessage:o};let i=/Agent picked:\s*(.*?)\s*(?:\\n|\r?\n)\s*Task Assigned:\s*([\s\S]*)$/i,a=s.match(i);if(!a)return{agentPicked:null,taskAssigned:null,userMessage:o};let c=a[1].trim(),l=a[2].trim();return{agentPicked:c,taskAssigned:l,userMessage:o}}_emitItemIdFromAI(e){let r=new CustomEvent("solutionIDFromAssistant",{detail:e,bubbles:!0,composed:!0});window.dispatchEvent(r)}};Dl("arcgis-solutions-assistant",wl);return wl},"config","identity/IdentityManager","portal/Portal","portal/Portal","identity/IdentityManager","config","core/reactiveUtils","layers/FeatureLayer","request","layers/FeatureLayer","core/reactiveUtils","identity/IdentityManager","portal/Portal","config","core/reactiveUtils","layers/FeatureLayer","request","Graphic","rest/locator","symbols/PictureMarkerSymbol","geometry/Extent","geometry/Point","smartMapping/renderers/pieChart","smartMapping/symbology/pieChart","views/support/colorUtils","smartMapping/renderers/color","smartMapping/symbology/color","smartMapping/renderers/univariateColorSize","smartMapping/renderers/dotDensity","smartMapping/symbology/dotDensity","smartMapping/renderers/heatmap","smartMapping/symbology/heatmap","smartMapping/renderers/predominance","smartMapping/symbology/predominance","smartMapping/renderers/relationship","smartMapping/symbology/relationship","smartMapping/renderers/size","smartMapping/renderers/type","smartMapping/symbology/type","layers/support/FeatureEffect","layers/support/FeatureFilter","geometry/operators/unionOperator","intl","smartMapping/statistics/summaryStatistics","smartMapping/statistics/uniqueValues","rest/support/TopFeaturesQuery","rest/support/TopFilter","WebLinkChart","rest/knowledgeGraph/GraphQueryStreaming","views/LinkChartView","rest/knowledgeGraphService","rest/knowledgeGraph/GraphSearchStreaming","identity/IdentityManager","portal/Portal","config","core/reactiveUtils","layers/FeatureLayer","request","identity/IdentityManager","portal/Portal","config","core/reactiveUtils","layers/FeatureLayer","request","identity/IdentityManager","portal/Portal","config","core/reactiveUtils","layers/FeatureLayer","request","identity/IdentityManager","portal/Portal","config","core/reactiveUtils","layers/FeatureLayer","request","smartMapping/statistics/summaryStatistics","smartMapping/statistics/uniqueValues","identity/IdentityManager","portal/Portal","config","core/reactiveUtils","layers/FeatureLayer","request","identity/IdentityManager","portal/Portal","config","core/reactiveUtils","layers/FeatureLayer","request","identity/IdentityManager","portal/Portal","core/reactiveUtils","layers/FeatureLayer","request","portal/Portal","portal/PortalItem",a,b)
|