@esri/solutions-components 5.1.0-next.93 → 5.1.0-next.94
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/{CDT7ELTA.js → 2B2ANB2N.js} +1 -1
- package/dist/cdn/{WF32M7B5.js → 2L3RREZ4.js} +1 -1
- package/dist/cdn/2VXTMCRJ.js +2 -0
- package/dist/cdn/2WHAF4H7.js +2 -0
- package/dist/cdn/5Z45KDQY.js +2 -0
- package/dist/cdn/AKKTG2RD.js +2 -0
- package/dist/cdn/{5A7H4LVR.js → AY6K2SJI.js} +1 -1
- package/dist/cdn/{L73FGVVE.js → C4UB6MNN.js} +115 -115
- package/dist/cdn/{5NPISZEN.js → C6KN2U7N.js} +1 -1
- package/dist/cdn/{OGPKAPZK.js → C7ASL3A4.js} +1 -1
- package/dist/cdn/{JBFDURMG.js → D4GI6KPZ.js} +1 -1
- package/dist/cdn/{UJLDLGTN.js → IEKNRCBC.js} +1 -1
- package/dist/cdn/{NSJAGP7T.js → JQXKQHAG.js} +2 -2
- package/dist/cdn/LUZYJVG5.js +2 -0
- package/dist/cdn/{WEAC3FS7.js → NBPM6OJQ.js} +1 -1
- package/dist/cdn/{S5VV7I2H.js → NXL2QN3P.js} +1 -1
- package/dist/cdn/{5XOS5PST.js → P24CZ4HM.js} +1 -1
- package/dist/cdn/RG2D7ZRS.js +3 -0
- package/dist/cdn/{XBDEGJHE.js → SJCXI4TB.js} +1 -1
- package/dist/cdn/{LCERYSRG.js → U77O2MIG.js} +1 -1
- package/dist/cdn/UBLDT5XD.js +2 -0
- package/dist/cdn/VOF34LDF.js +2 -0
- package/dist/cdn/{N3F6RUT6.js → X23TE3BV.js} +1 -1
- package/dist/cdn/YVDSW2OQ.js +2 -0
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.ar.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.bg.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.bs.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.ca.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.cs.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.da.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.de.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.el.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.es.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.et.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.fi.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.fr.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.he.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.hr.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.hu.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.id.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.it.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.ja.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.ko.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.lt.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.lv.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.nl.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.no.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.pl.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.pt-BR.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.pt-PT.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.ro.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.ru.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.sk.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.sl.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.sr.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.sv.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.th.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.tr.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.uk.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.vi.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.zh-CN.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.zh-HK.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.zh-TW.json +1 -1
- package/dist/cdn/assets/solution-item-accordion/t9n/messages.ar.json +1 -1
- package/dist/cdn/assets/solution-item-accordion/t9n/messages.bg.json +1 -1
- package/dist/cdn/assets/solution-item-accordion/t9n/messages.bs.json +1 -1
- package/dist/cdn/assets/solution-item-accordion/t9n/messages.ca.json +1 -1
- package/dist/cdn/assets/solution-item-accordion/t9n/messages.cs.json +1 -1
- package/dist/cdn/assets/solution-item-accordion/t9n/messages.da.json +1 -1
- package/dist/cdn/assets/solution-item-accordion/t9n/messages.de.json +1 -1
- package/dist/cdn/assets/solution-item-accordion/t9n/messages.el.json +1 -1
- package/dist/cdn/assets/solution-item-accordion/t9n/messages.en.json +1 -1
- package/dist/cdn/assets/solution-item-accordion/t9n/messages.es.json +1 -1
- package/dist/cdn/assets/solution-item-accordion/t9n/messages.et.json +1 -1
- package/dist/cdn/assets/solution-item-accordion/t9n/messages.fi.json +1 -1
- package/dist/cdn/assets/solution-item-accordion/t9n/messages.fr.json +1 -1
- package/dist/cdn/assets/solution-item-accordion/t9n/messages.he.json +1 -1
- package/dist/cdn/assets/solution-item-accordion/t9n/messages.hr.json +1 -1
- package/dist/cdn/assets/solution-item-accordion/t9n/messages.hu.json +1 -1
- package/dist/cdn/assets/solution-item-accordion/t9n/messages.id.json +1 -1
- package/dist/cdn/assets/solution-item-accordion/t9n/messages.it.json +1 -1
- package/dist/cdn/assets/solution-item-accordion/t9n/messages.ja.json +1 -1
- package/dist/cdn/assets/solution-item-accordion/t9n/messages.json +1 -1
- package/dist/cdn/assets/solution-item-accordion/t9n/messages.ko.json +1 -1
- package/dist/cdn/assets/solution-item-accordion/t9n/messages.lt.json +1 -1
- package/dist/cdn/assets/solution-item-accordion/t9n/messages.lv.json +1 -1
- package/dist/cdn/assets/solution-item-accordion/t9n/messages.nl.json +1 -1
- package/dist/cdn/assets/solution-item-accordion/t9n/messages.no.json +1 -1
- package/dist/cdn/assets/solution-item-accordion/t9n/messages.pl.json +1 -1
- package/dist/cdn/assets/solution-item-accordion/t9n/messages.pt-BR.json +1 -1
- package/dist/cdn/assets/solution-item-accordion/t9n/messages.pt-PT.json +1 -1
- package/dist/cdn/assets/solution-item-accordion/t9n/messages.ro.json +1 -1
- package/dist/cdn/assets/solution-item-accordion/t9n/messages.ru.json +1 -1
- package/dist/cdn/assets/solution-item-accordion/t9n/messages.sk.json +1 -1
- package/dist/cdn/assets/solution-item-accordion/t9n/messages.sl.json +1 -1
- package/dist/cdn/assets/solution-item-accordion/t9n/messages.sr.json +1 -1
- package/dist/cdn/assets/solution-item-accordion/t9n/messages.sv.json +1 -1
- package/dist/cdn/assets/solution-item-accordion/t9n/messages.th.json +1 -1
- package/dist/cdn/assets/solution-item-accordion/t9n/messages.tr.json +1 -1
- package/dist/cdn/assets/solution-item-accordion/t9n/messages.uk.json +1 -1
- package/dist/cdn/assets/solution-item-accordion/t9n/messages.vi.json +1 -1
- package/dist/cdn/assets/solution-item-accordion/t9n/messages.zh-CN.json +1 -1
- package/dist/cdn/assets/solution-item-accordion/t9n/messages.zh-HK.json +1 -1
- package/dist/cdn/assets/solution-item-accordion/t9n/messages.zh-TW.json +1 -1
- package/dist/cdn/index.js +1 -1
- package/dist/chunks/converter.js +624 -0
- package/dist/chunks/solution-deploy-dialog.js +91 -76
- package/dist/components/arcgis-solutions-assistant/customElement.js +7701 -8269
- package/dist/components/solution-builder-assistant/customElement.js +115 -76
- package/dist/components/solution-builder-assistant/index.js +2 -0
- package/dist/components/solution-configure-titles/customElement.js +73 -59
- package/dist/components/solution-deploy-dialog/customElement.d.ts +3 -1
- package/dist/components/solution-deploy-dialog/customElement.js +3 -2
- package/dist/components/solution-item-accordion/customElement.d.ts +2 -2
- package/dist/components/solution-item-accordion/customElement.js +19 -16
- package/dist/docs/api.json +1 -1
- package/dist/docs/docs.json +1 -1
- package/dist/docs/web-types.json +1 -1
- package/dist/loader.js +1 -1
- package/dist/solutions-components_commit.txt +6 -6
- package/dist/types/lumina.d.ts +1 -1
- package/dist/types/preact.d.ts +1 -1
- package/dist/types/react.d.ts +1 -1
- package/dist/types/stencil.d.ts +1 -1
- package/dist/utils/interfaces.d.ts +2 -0
- package/package.json +1 -1
- package/dist/cdn/4OJ3LBF6.js +0 -2
- package/dist/cdn/BPELKV5K.js +0 -2
- package/dist/cdn/BRQJSGIX.js +0 -2
- package/dist/cdn/DX56I3QB.js +0 -3
- package/dist/cdn/J5XFS6HE.js +0 -2
- package/dist/cdn/PJ43TSSJ.js +0 -2
- package/dist/cdn/RTFBOXOK.js +0 -2
- package/dist/cdn/SN4D24TK.js +0 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import i from"./
|
|
2
|
+
import i from"./C7ASL3A4.js";import h from"./NBPM6OJQ.js";import"./US5FON7D.js";import"./BU5PIAGS.js";import"./VVZAS55G.js";import"./NP7POZTI.js";import g from"./ZP6VPBP4.js";import e from"./XXT542UR.js";import d from"./X5EABWHE.js";import"./2B4SGB3I.js";import"./YKQDHR27.js";import"./J75MHJID.js";import c from"./CEP54NLT.js";import a from"./YVNP437O.js";import{a as y}from"./R67EKKSL.js";import"./BVWAUO73.js";import"./K3DQKY7V.js";import"./TEHBW75B.js";import"./ALSK2SPM.js";import"./ZCU2WWVN.js";import"./WGO4EVOV.js";import"./3IHLJADI.js";import"./BMBNSJZQ.js";import"./5HZMUGQD.js";import"./5VDDAINK.js";import"./Z4F2NZOT.js";import"./KOIDWEP3.js";import"./3KXMYZCU.js";import"./LPBP7CBN.js";import"./3FMOO3PJ.js";import"./XQQ52NKX.js";import"./JUUVYK2H.js";import"./DKD2EGQP.js";import"./4HFHJOS3.js";import"./45M33Q5G.js";import"./FES7B3SJ.js";import{b as u}from"./KIUBUHVM.js";import{F as f,G as b,h as p,i as m}from"./H5E6ISYP.js";import"./QPIMTXPL.js";export default $arcgis.t(([])=>{var v=p`.height-51{height:51px}.width-51{width:51px}`,h=class extends b{constructor(){super(),this._translations=y({name:"field-selection",blocking:!0}),this._fieldSortOrder="default",this._selectedFields=[],this._fieldVisibilityPopoverClickHandler=i=>{this._fieldVisibilityPopoverNode?this._isInNode(i.target,"arcgis-field-pick-list")||(document.body.removeChild(this._fieldVisibilityPopoverNode),this._fieldVisibilityPopoverNode=void 0,document.removeEventListener("click",this._fieldVisibilityPopoverClickHandler)):document.removeEventListener("click",this._fieldVisibilityPopoverClickHandler)},this.listenOn(window,"columnReorder",this.handleColumnReorder,{capture:!0})}static{this.properties={configExtraFields:1,layer:0,mapView:0,table:0,tableRef:0,_translations:16}}static{this.styles=v}render(){return m`<calcite-action alignment=center appearance=solid class="height-51 width-51" id=solutions-field-selection .text=${this._translations.fieldVisibility} scale=m @click=${()=>this._handleFieldVisibilityClick()} @mouseover=${()=>this._addTableTooltip(this._fieldVisibilityActionNode,this._translations.fieldVisibility)} @mouseout=${()=>this._removeTableTooltip()} @focus=${()=>this._addTableTooltip(this._fieldVisibilityActionNode,this._translations.fieldVisibility)} ${f(i=>this._fieldVisibilityActionNode=i)}><calcite-icon scale=s icon=gear></calcite-icon></calcite-action>`}handleColumnReorder(){this._fieldSortOrder="default",this._fieldVisibilityPopoverNode&&(this.removeFieldsPickList(),this._handleFieldVisibilityClick())}_handleFieldVisibilityClick(){if(this._fieldVisibilityPopoverNode)return;let i=this.table?.tableTemplate?.columnTemplates;if(this.layer&&this.mapView&&i&&this._fieldVisibilityActionNode){document.removeEventListener("click",this._fieldVisibilityPopoverClickHandler);let t=this.table.fieldColumns.map(l=>({alias:l.field.alias,description:l.field.description,name:l.field.name,type:l.field.type}));if(this._hasAttachmentsEnabled(this.layer)){let l="Attachments";if(this._shouldShowField(l.toUpperCase(),!1)){if(!i.some(s=>s.fieldName.toUpperCase()===l.toUpperCase())){let s={fieldName:l,type:"attachment",visible:!0};i.push(s)}t.push({name:l,alias:"Photos and files",type:"none",description:l})}}if(this.table.relatedRecordsEnabled&&this.layer.relationships&&this.layer.relationships.length>0){let l=this.layer.parent;this.layer.relationships.forEach(s=>{let o,d=this._shouldShowField(s.name||"",!0);if(!i.some(a=>a.fieldName.toLowerCase()===s.name?.toLowerCase()?(o=s.name,!0):!1))if(s.name){o=s.name;let a={fieldName:o,type:"relationship",visible:!0};d=this._shouldShowField(o,!0),i.push(a)}else{let a=[...l?.layers||[],...l?.tables],c;if(a.some(n=>n.layerId===s.relatedTableId?(c=n,!0):!1),c){o=c.title,s.name=o;let n={fieldName:o,type:"relationship",visible:!0};d=this._shouldShowField(o,!0),i.push(n)}}o&&d&&t.push({name:o,alias:`Related ${o}`,type:"none",description:`related:${o}`})})}let e=this._fieldVisibilityPopoverNode?this._fieldVisibilityPopoverNode:document.createElement("arcgis-field-pick-list");e.layer=this.layer,e.fields=t,e.showFieldInfo=!0,e.showFieldName=!0,e.showDescription=!1,e.showSelectionAll=!0,e.hideCancel=!0,e.hideSort=!1,e.showFilterLength=5,e.multiple=!0,e.heading=this._translations.fieldVisibility,e.okBtnText=this._translations.doneWithFieldChanges,e.filterPlaceholderText=this._translations.filterFields,e.sortBy=this._fieldSortOrder??"default";let r=this.table?.visibleColumns.map(l=>l.fieldName.startsWith("EsriFeatureTableRelationshipColumn")||l.fieldName.startsWith("EsriFeatureTableAttachmentsColumn")?l.effectiveLabel:l.fieldName);e.selectedFields=i.reduce((l,s)=>((r?r.indexOf(s.fieldName)>-1:s.visible)&&l.push(s.fieldName),l),[]),this._selectedFields=e.selectedFields,e.style.minHeight="340px",e.popoverProps={refElement:this._fieldVisibilityActionNode,popoverWidth:300,placement:"bottom-end",offsetDistance:-20,triggerDisabled:!1,autoClose:!1},e.addEventListener("arcgisChange",l=>{l.stopPropagation();let s=l.detail.selectedFields,o=this._getDifference(s,this._selectedFields),d=this._getDifference(this._selectedFields,s);o.concat(d).forEach(a=>{let c=this.layer?.relationships?.map(n=>n.name)||[];if(a==="Attachments"){let n=this.table.columns.find(_=>"onShowAttachments"in _);n.hidden=d.indexOf(a)>-1}else c.indexOf(a)>-1?this.table.columns.filter(n=>"relationshipId"in n).forEach(n=>{d.indexOf(a)>-1,a==n.effectiveLabel&&(n.hidden=d.indexOf(a)>-1)}):this.table.toggleColumnVisibility(a)}),this._selectedFields=s,this._updateTable(this.table.tableTemplate)}),e.addEventListener("arcgisSortByChange",l=>{l.stopPropagation(),this._fieldSortOrder=l.detail,this._sortFields(l.detail)}),e.addEventListener("arcgisClose",()=>{this._closePopovers(),setTimeout(()=>this._fieldVisibilityActionNode.setFocus(),200)}),document.body.appendChild(e),this._fieldVisibilityPopoverNode=e,setTimeout(()=>document.addEventListener("click",this._fieldVisibilityPopoverClickHandler),200)}}_shouldShowField(i,t){return(this.configExtraFields||[]).some(e=>t?e.replace("related:","").toUpperCase()===i.toUpperCase():e.toUpperCase()===i.toUpperCase())}removeFieldsPickList(){this._fieldVisibilityPopoverNode&&(document.body.removeChild(this._fieldVisibilityPopoverNode),this._fieldVisibilityPopoverNode=void 0)}_sortFields(i){let t=this.table.tableTemplate.columnTemplates,e=this._getSortOrder(i),r=t.filter(s=>s.type!=="attachment"&&s.type!=="relationship").sort((s,o)=>{let d=e.indexOf(s.fieldName),a=e.indexOf(o.fieldName);return d===-1&&a!==-1?1:d!==-1&&a===-1?-1:d===-1&&a===-1?0:d-a}),l=t.filter(s=>s.type==="attachment"||s.type==="relationship");this.tableRef.setColumnOrder([...r,...l]),this._updateTable(this.table.tableTemplate)}_getSortOrder(i){let t=[...this.layer.fields];return i==="display"?t.sort((e,r)=>e.alias.localeCompare(r.alias)):i==="field"?t.sort((e,r)=>e.name.localeCompare(r.name)):i==="type"&&t.sort((e,r)=>e.type.localeCompare(r.type)),t.map(e=>e.name)}_getDifference(i,t){return i.filter(e=>!t.includes(e))}_updateTable(i){this.table.tableTemplate=i,this._isStandardView()&&this._syncAttributeTableTemplate()}async _syncAttributeTableTemplate(){let i=this.table.layer;if(i.attributeTableTemplate){let{_modules:t}=this,e=i.attributeTableTemplate.clone();t?.attributeTableTemplateUtils.syncAttributeTableTemplate(this.table,e),JSON.stringify(e)!==JSON.stringify(i.attributeTableTemplate)&&(i.attributeTableTemplate=e)}if(i.attributeTableTemplate?.orderByFields?.length>1){let t=i.attributeTableTemplate.clone(),e=this.table.activeSortOrders[0];t.orderByFields=[{field:e.fieldName,order:e.direction}],i.attributeTableTemplate=t,this._syncColumnDirectionsWithOrderByFields()}}_syncColumnDirectionsWithOrderByFields(){let i=this.table.activeSortOrders[0]?.fieldName;this.table.columns.forEach(t=>{"fieldName"in t&&t.fieldName!==i&&(t.direction=void 0)}),this.table.tableTemplate?.columnTemplates.forEach(t=>{"fieldName"in t&&t.fieldName!==i&&(t.direction=void 0)})}_isStandardView(){return!this.table.relatedTable&&!this.table.attachmentsViewOptions.objectId}_closePopovers(){document.removeEventListener("click",this._fieldVisibilityPopoverClickHandler),this._fieldVisibilityPopoverNode&&(document.body.removeChild(this._fieldVisibilityPopoverNode),this._fieldVisibilityPopoverNode=void 0)}_addTableTooltip(i,t){let e=document.createElement("calcite-tooltip");e.className="table-tooltip",e.referenceElement=i,e.placement="trailing-start",e.open=!0;let r=document.createElement("div");r.className="tooltip",r.innerHTML=t,e.append(r),document.body.append(e)}_removeTableTooltip(){document.querySelectorAll(".table-tooltip").forEach(i=>i.parentNode?.removeChild(i))}_isInNode(i,t){for(;i;){if(i.nodeName===t.toUpperCase())return!0;i=i.parentElement}return!1}_hasAttachmentsEnabled(i){if(!i?.capabilities)return!1;let{capabilities:{data:{supportsAttachment:t},operations:{supportsQueryAttachments:e}}}=i;return t&&e}};u("field-selection",h);return h},a,c,d,e,g,h,i)
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{a}from"./
|
|
2
|
+
import{a}from"./UBLDT5XD.js";import"./2B4SGB3I.js";import"./YKQDHR27.js";import"./R67EKKSL.js";import"./BVWAUO73.js";import"./K3DQKY7V.js";import"./KIUBUHVM.js";import"./H5E6ISYP.js";import"./QPIMTXPL.js";export{a as SolutionItemAccordion};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
+
import{b as z,c as f,d as y,e as M,f as T,g as O,h as P}from"./ZYCAAXQF.js";import a from"./ZP6VPBP4.js";import{c as I}from"./2B4SGB3I.js";import{b as C}from"./YKQDHR27.js";import{a as N}from"./R67EKKSL.js";import{b as E}from"./KIUBUHVM.js";import{E as b,F as w,G as L,K as h,h as D,i as s}from"./H5E6ISYP.js";export default $arcgis.t(([{n:p}])=>{var S=D`calcite-panel{--calcite-panel-background-color: var(--calcite-color-foreground-1);--calcite-color-focus: var(--calcite-color-brand);--calcite-panel-border-color: var(--calcite-color-border-2);--calcite-internal-panel-header-vertical-padding: 0px;--calcite-panel-header-content-space: 0px;border-left:var(--calcite-border-width-sm) solid var(--calcite-color-border-2);border-top:var(--calcite-border-width-sm) solid var(--calcite-color-border-2);border-bottom:var(--calcite-border-width-sm) solid var(--calcite-color-border-2);height:100%}.header-content-wrapper{display:flex;align-items:center;gap:var(--calcite-space-xs);height:65px;box-sizing:border-box;padding-inline-start:var(--calcite-space-3xl)}.header-title{font-size:var(--calcite-font-size-0);font-weight:500;color:var(--calcite-color-text-1)}.section-header{font-size:var(--calcite-font-size-1);font-weight:var(--calcite-font-weight-bold);color:var(--calcite-color-text-1);display:block}.section-title{font-weight:500;color:var(--calcite-color-text-1)}.draft-badge{display:inline-block;padding:2px 8px;background-color:var(--calcite-color-foreground-1);color:var(--calcite-color-text-1);border:1px solid var(--calcite-color-border-2);border-radius:12px;font-size:var(--calcite-font-size--2);font-weight:500}.builder-content{display:flex;flex-direction:column;flex:1;overflow:auto}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--calcite-space-xxl);text-align:center;color:var(--calcite-color-text-3)}.empty-state calcite-icon{margin-bottom:var(--calcite-space-md);color:var(--calcite-color-text-3)}.empty-state p{margin:0;font-size:var(--calcite-font-size--1)}.header-divider{width:1px;height:2rem;background-color:var(--calcite-color-border-3);margin:0 var(--calcite-space-xxs);align-self:center}.horizontal-divider{border-bottom:solid var(--calcite-border-width-sm);border-color:var(--calcite-color-border-2);margin:var(--calcite-space-lg) 0}.content-container{display:flex;margin:var(--calcite-space-lg)}.solution-item-section{flex:1 1 auto;min-width:0;background:var(--calcite-color-foreground-1);padding:var(--calcite-space-lg) var(--calcite-space-lg) 0}.solution-item-inputs{display:flex;flex-direction:column}.thumbnail-inputs-row{display:flex;gap:var(--calcite-space-lg);align-items:flex-start}.thumbnail-container{flex-shrink:0;border:1px solid var(--calcite-color-border-2);overflow:hidden;background:var(--calcite-color-foreground-2);width:233px}.thumbnail-container img{display:block;width:100%;object-fit:cover}.stacked-inputs{flex:1;display:flex;flex-direction:column;min-width:0;margin-left:var(--calcite-space-lg)}.stacked-inputs calcite-label{min-width:0}.stacked-inputs calcite-input-text,.stacked-inputs calcite-text-area{width:100%;max-width:100%;min-width:0;box-sizing:border-box}.actions-section{flex:0 2 300px;min-width:200px;background:var(--calcite-color-foreground-1);padding:var(--calcite-space-lg)}.action-buttons{display:flex;flex-direction:column;gap:var(--calcite-space-lg);margin-top:var(--calcite-space-2xl)}.action-buttons calcite-notice{margin:0;--calcite-notice-icon-color: var(--calcite-color-brand)}.solution-item-content-section{display:flex;flex-direction:column;margin:0 var(--calcite-space-lg);padding:var(--calcite-space-lg)}.section-header{font-size:var(--calcite-font-size-0);font-weight:500;color:var(--calcite-color-text-2);margin:0 0 var(--calcite-space-md) 0}calcite-list-item calcite-action[slot=actions-end]{padding-right:var(--calcite-space-sm)}.layer-form-content{padding:var(--calcite-space-3xl)}calcite-flow{--calcite-flow-background-color: var(--calcite-color-foreground-1);display:flex;flex-direction:column;flex:1;overflow:auto;margin:0;padding:0}calcite-flow-item{--calcite-flow-item-content-padding: 0}.layer-selector-container{display:flex;flex-direction:column;align-items:stretch}.layer-selector-row{display:flex;gap:var(--calcite-space-md);align-items:end}.layer-selector-row calcite-combobox{flex:1;min-width:0}.layer-selector-row>calcite-button{flex-shrink:0}.layer-selector-container calcite-label{flex:1;min-width:0;margin-bottom:0}.layer-selector-container calcite-combobox{width:100%}.layer-selector-container>calcite-button{flex-shrink:0;margin-bottom:var(--calcite-space-md)}.layer-properties-container{display:flex;gap:var(--calcite-space-md)}.layer-properties-section{display:flex;flex-direction:column;gap:var(--calcite-space-md);margin-top:var(--calcite-space-lg)}.layer-properties-row{display:flex;gap:var(--calcite-space-md)}.layer-properties-row calcite-label{flex:1;min-width:0}.layer-properties-row>calcite-button{flex-shrink:0;margin-bottom:var(--calcite-space-md);margin-top:var(--calcite-space-2xl)}.layer-properties-container calcite-label{flex:1;min-width:0}.layer-properties-container calcite-input-text,.layer-properties-container calcite-combobox{width:100%}.layer-description-container{margin-top:var(--calcite-space-lg)}.layer-description-container calcite-text-area{width:100%;display:block}calcite-label:has(calcite-text-area){display:flex;flex-direction:column;gap:0}.fields-section{margin-top:var(--calcite-space-lg);display:flex;flex-direction:column;align-items:flex-start;width:100%}.fields-section>calcite-label{width:100%}.fields-section calcite-table{width:100%}.fields-section calcite-table-cell:last-child{text-align:center;display:flex;justify-content:center;align-items:center}.field-type-cell,.field-name-cell{display:flex;align-items:center;gap:var(--calcite-space-xs)}.lock-icon{--calcite-icon-color: var(--calcite-color-text-3);flex-shrink:0}.domain-cell-content{display:flex;align-items:center;justify-content:space-between;width:100%;gap:var(--calcite-space-sm)}.domain-cell-content calcite-icon{cursor:pointer;color:var(--calcite-color-text-3);flex-shrink:0}.domain-cell-content calcite-icon:hover{color:var(--calcite-color-brand)}.choice-list-tooltip{margin:0;padding-left:var(--calcite-space-lg);list-style-type:disc}.choice-list-tooltip li{padding:var(--calcite-space-xxs) 0}.edit-icon{cursor:pointer;color:var(--calcite-color-text-3)}.edit-icon:hover{color:var(--calcite-color-brand)}.add-field-button{align-self:flex-start}.add-layer-button{margin-top:var(--calcite-space-md);margin-bottom:var(--calcite-space-sm)}.info-icon-blue{--calcite-icon-color: var(--calcite-color-brand);flex-shrink:0;cursor:default}.domain-section{margin-top:var(--calcite-space-lg);display:flex;flex-direction:column;align-items:flex-start;width:100%}.domain-section>calcite-label{width:100%}.domain-section>div{width:100%}.domain-list{display:flex;flex-direction:column;gap:var(--calcite-space-sm);width:100%}.domain-item{display:flex;align-items:center;gap:var(--calcite-space-sm);padding:var(--calcite-space-xs);background:var(--calcite-color-foreground-1);border:1px solid var(--calcite-color-border-2);border-radius:var(--calcite-border-radius);cursor:move;width:100%;box-sizing:border-box}.domain-item:hover{background:var(--calcite-color-foreground-2)}.domain-item .drag-handle{color:var(--calcite-color-text-3);cursor:grab;flex-shrink:0}.domain-item .drag-handle:active{cursor:grabbing}.domain-item calcite-input-text{flex:1;min-width:0}.domain-item calcite-button{flex-shrink:0}.popover-content{padding:var(--calcite-space-lg);min-width:420px}.popover-field{margin-top:var(--calcite-space-md)}.popover-actions{display:flex;justify-content:flex-end;gap:var(--calcite-space-sm);margin-top:var(--calcite-space-lg)}.padding-top-sm{padding-top:var(--calcite-space-sm)}`,V="data:image/png;base64,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",x=class extends L{constructor(){super(),this.design=null,this._design=null,this._translations=N({name:"solution-builder-assistant",blocking:!0}),this._isDirty=!1,this._titleValidationError=null,this._descriptionValidationError=null,this._undoStack=[],this._redoStack=[],this._openPopoverId=null,this._editingItemTitle="",this._editingItemDescription="",this._editingItemTitleError=null,this._editingItemDescriptionError=null,this._originalItemTitle="",this._originalItemDescription="",this._layerNameValidationError=null,this._layerDescriptionValidationError=null,this._newLayerNameValidationError=null,this._newLayerDescriptionValidationError=null,this._selectedLayerIndex=0,this._isAddingLayer=!1,this._newLayerName="",this._newLayerType="Point",this._newLayerDescription="",this._isEditingField=!1,this._editingFieldIndex=-1,this._editingFieldType=null,this._editingFieldDisplayName="",this._editingFieldName="",this._editingFieldDescription="",this._editingFieldTypeValue="string",this._editingFieldLength=p,this._editingFieldChoiceList=null,this._isAddingNewField=!1,this._isCustomizingLayer=!1,this._newFieldDisplayName="",this._newFieldName="",this._newFieldDescription="",this._newFieldType="string",this._newFieldLength=p,this._newFieldChoiceList=null,this._editingFieldDisplayNameError=null,this._editingFieldNameError=null,this._editingFieldDescriptionError=null,this._editingFieldLengthError=null,this._editingFieldChoiceListErrors=new Map,this._newFieldDisplayNameError=null,this._newFieldNameError=null,this._newFieldDescriptionError=null,this._newFieldLengthError=null,this._newFieldChoiceListErrors=new Map,this._originalEditFieldDisplayName="",this._originalEditFieldName="",this._originalEditFieldDescription="",this._originalEditFieldTypeValue="string",this._originalEditFieldLength=p,this._originalEditFieldChoiceList=null,this._userOptions=[],this._designContextValue=null,this._lastPushedDesign=null,this._deployDialogRef=b(),this._deployingDialogRef=b(),this._pendingDeployedSolutionId=null,this._designContextConsumer=C({context:I,subscribe:!0,callback:e=>{this._designContextValue=e,e?.design&&e.design!==this._lastPushedDesign&&this._pushDesign(e.design,!1)}}),this._handleUndo=()=>{if(this._undoStack.length===0||!this._design)return;let e=this._undoStack[this._undoStack.length-1];this._undoStack=this._undoStack.slice(0,-1),this._redoStack=[...this._redoStack,structuredClone(this._design)],this._design=e,this._lastPushedDesign=e,this._notifyDesignChanged(e)},this._handleRedo=()=>{if(this._redoStack.length===0||!this._design)return;let e=this._redoStack[this._redoStack.length-1];this._redoStack=this._redoStack.slice(0,-1),this._undoStack=[...this._undoStack,structuredClone(this._design)],this._design=e,this._lastPushedDesign=e,this._notifyDesignChanged(e)},this._handleHideBuilder=()=>{window.dispatchEvent(new CustomEvent("toggleSolutionBuilder"))},this._handleOpenCustomizeLayer=()=>{this._isCustomizingLayer=!0},this._handleCloseCustomizeLayer=()=>{this._isCustomizingLayer=!1,this._isAddingLayer=!1,this._isEditingField=!1,this._isAddingNewField=!1},this._handleTitleChange=async e=>{if(!this._design)return;this._titleValidationError=await this._validateSolutionName(e);let i={...this._design,solution:{...this._design.solution,title:e}};this._pushDesign(i)},this._handleDescriptionChange=e=>{if(!this._design)return;this._descriptionValidationError=this._validateSolutionDescription(e);let i={...this._design,solution:{...this._design.solution,description:e}};this._pushDesign(i)},this._handleItemPopoverOpen=e=>{this._openPopoverId=e.id,this._editingItemTitle=e.title||"",this._editingItemDescription=e.description||"",this._originalItemTitle=e.title||"",this._originalItemDescription=e.description||"",this._editingItemTitleError=null,this._editingItemDescriptionError=null,this.requestUpdate()},this._handleCloseItemPopover=()=>{this._openPopoverId=null,this._editingItemTitle="",this._editingItemDescription=""},this._handleClosePopover=async e=>{let i=this.renderRoot.querySelector(`#${e}`);i&&(i.open=!1,await i.updateComplete),this._handleCloseItemPopover()},this._handleApplyItemChanges=e=>{if(!this._design)return;let i=this._design.items.map(a=>a.id===e?{...a,title:this._editingItemTitle,description:this._editingItemDescription}:a),t={...this._design,items:i};this._pushDesign(t)},this._handleLayerSelect=e=>{let i=e.target.selectedItems[0];i&&(this._selectedLayerIndex=parseInt(i.value,10),this._layerNameValidationError=null,this._layerDescriptionValidationError=null)},this._handleAddLayer=()=>{this._isAddingLayer=!0,this._newLayerNameValidationError=null,this._newLayerDescriptionValidationError=null},this._handleAddLayerBack=()=>{this._isAddingLayer=!1,this._newLayerName="",this._newLayerType="Point",this._newLayerDescription="",this._newLayerNameValidationError=null,this._newLayerDescriptionValidationError=null},this._handleAddLayerDone=()=>{if(!this._design||(this._newLayerNameValidationError=this._validateLayerName(this._newLayerName),this._newLayerDescriptionValidationError=this._validateLayerDescription(this._newLayerDescription),this._newLayerNameValidationError||this._newLayerDescriptionValidationError))return;let e=this._design.featureLayer?.layers||[],i={id:Date.now(),type:this._newLayerType,name:this._newLayerName,description:this._newLayerDescription,customFields:[],requiredFields:[],systemFields:[{name:"objectid",type:"oid",alias:"ObjectID",description:"Unique identifier for each record in the dataset."},{name:"globalid",type:"globalid",alias:"GlobalID",description:"Globally unique identifier for the record."},{name:"created_date",type:"date",alias:"Created On",description:"Date when the record was created."},{name:"created_user",type:"string",alias:"Created By",description:"User who created the record.",choiceList:null,length:p},{name:"last_edited_date",type:"date",alias:"Last Edited On",description:"Date when the record was last edited."},{name:"last_edited_user",type:"string",alias:"Last Edited By",description:"User who last edited the record.",choiceList:null,length:p}]};this._pushDesign({...this._design,featureLayer:{...this._design.featureLayer,layers:[...e,i]}}),this._selectedLayerIndex=e.length,this._isAddingLayer=!1,this._newLayerName="",this._newLayerType="Point",this._newLayerDescription="",this._newLayerNameValidationError=null,this._newLayerDescriptionValidationError=null},this._handleNewLayerNameChange=e=>{this._newLayerName=e,this._newLayerNameValidationError=this._validateLayerName(e)},this._handleNewLayerTypeChange=e=>{let i=e.target.selectedItems[0];i&&(this._newLayerType=i.value)},this._handleNewLayerDescriptionChange=e=>{this._newLayerDescription=e,this._newLayerDescriptionValidationError=this._validateLayerDescription(e)},this._handleAddField=()=>{this._newFieldDisplayName="",this._newFieldName="",this._newFieldDescription="",this._newFieldType="string",this._newFieldLength=p,this._newFieldChoiceList=null,this._newFieldDisplayNameError=null,this._newFieldNameError=null,this._newFieldDescriptionError=null,this._newFieldLengthError=null,this._newFieldChoiceListErrors=new Map,this._isAddingNewField=!0,this._scrollCustomizeLayerFlowToTop()},this._handleAddFieldBack=()=>{this._isAddingNewField=!1,this._newFieldDisplayName="",this._newFieldName="",this._newFieldDescription="",this._newFieldType="string",this._newFieldLength=p,this._newFieldChoiceList=null,this._newFieldDisplayNameError=null,this._newFieldNameError=null,this._newFieldDescriptionError=null,this._newFieldLengthError=null,this._newFieldChoiceListErrors=new Map},this._handleAddFieldDone=()=>{if(!this._design)return;let e=this._design.featureLayer?.layers||[],i=e[this._selectedLayerIndex];if(!i||!this._newFieldName.trim())return;let t={name:this._newFieldName,type:this._newFieldType,alias:this._newFieldDisplayName||this._newFieldName,description:this._newFieldDescription,choiceList:this._newFieldChoiceList&&this._newFieldChoiceList.length>0?this._newFieldChoiceList:null};this._newFieldType==="string"&&(t.length=this._newFieldLength);let a=[...i.customFields||[],t],l=e.map((o,c)=>c===this._selectedLayerIndex?{...o,customFields:a}:o);this._pushDesign({...this._design,featureLayer:{...this._design.featureLayer,layers:l}}),this._handleAddFieldBack()},this._handleNewFieldTypeChange=e=>{let i=e.target.selectedItems[0];i&&(this._newFieldType=i.value)},this._handleNewFieldDisplayNameChange=e=>{this._newFieldDisplayName=e,this._newFieldDisplayNameError=this._validateFieldDisplayName(e)},this._handleNewFieldNameChange=e=>{this._newFieldName=e,this._newFieldNameError=this._validateFieldName(e,this._selectedLayerIndex,!1)},this._handleNewFieldDescriptionChange=e=>{this._newFieldDescription=e,this._newFieldDescriptionError=this._validateFieldDescription(e)},this._handleNewFieldLengthChange=e=>{e===null||isNaN(e)||(this._newFieldLength=e,this._newFieldLengthError=this._validateFieldLength(e))},this._handleEditField=(e,i)=>{let t=(this._design?.featureLayer?.layers||[])[this._selectedLayerIndex];if(!t)return;let a=t.customFields||[],l=t.requiredFields||[];if(e<a.length)this._editingFieldType="custom",this._editingFieldIndex=e;else{let o=e-a.length;if(o>=l.length)return;this._editingFieldType="required",this._editingFieldIndex=o}this._editingFieldDisplayName=i.alias||"",this._editingFieldName=i.name||"",this._editingFieldDescription=i.description||"",this._editingFieldTypeValue=i.type||"string",this._editingFieldLength=i.length||p,this._editingFieldChoiceList=i.choiceList?[...i.choiceList]:null,this._originalEditFieldDisplayName=this._editingFieldDisplayName,this._originalEditFieldName=this._editingFieldName,this._originalEditFieldDescription=this._editingFieldDescription,this._originalEditFieldTypeValue=this._editingFieldTypeValue,this._originalEditFieldLength=this._editingFieldLength,this._originalEditFieldChoiceList=this._editingFieldChoiceList?[...this._editingFieldChoiceList]:null,this._editingFieldDisplayNameError=null,this._editingFieldNameError=null,this._editingFieldDescriptionError=null,this._editingFieldLengthError=null,this._editingFieldChoiceListErrors=new Map,this._isEditingField=!0,this._scrollCustomizeLayerFlowToTop()},this._handleEditFieldBack=()=>{this._isEditingField=!1,this._editingFieldIndex=-1,this._editingFieldType=null,this._editingFieldDisplayName="",this._editingFieldName="",this._editingFieldDescription="",this._editingFieldTypeValue="string",this._editingFieldLength=p,this._editingFieldChoiceList=null,this._originalEditFieldDisplayName="",this._originalEditFieldName="",this._originalEditFieldDescription="",this._originalEditFieldTypeValue="string",this._originalEditFieldLength=p,this._originalEditFieldChoiceList=null,this._editingFieldDisplayNameError=null,this._editingFieldNameError=null,this._editingFieldDescriptionError=null,this._editingFieldLengthError=null,this._editingFieldChoiceListErrors=new Map},this._handleEditFieldTypeChange=e=>{let i=e.target.selectedItems[0];i&&(this._editingFieldTypeValue=i.value)},this._handleEditFieldDisplayNameChange=e=>{this._editingFieldDisplayName=e,this._editingFieldDisplayNameError=this._validateFieldDisplayName(e)},this._handleEditFieldNameChange=e=>{this._editingFieldName=e,this._editingFieldNameError=this._validateFieldName(e,this._selectedLayerIndex,!0,this._editingFieldIndex,this._editingFieldType)},this._handleEditFieldDescriptionChange=e=>{this._editingFieldDescription=e,this._editingFieldDescriptionError=this._validateFieldDescription(e)},this._handleEditFieldLengthChange=e=>{e===null||isNaN(e)||(this._editingFieldLength=e,this._editingFieldLengthError=this._validateFieldLength(e))},this._handleAddEditFieldChoice=()=>{this._editingFieldChoiceList?this._editingFieldChoiceList=[...this._editingFieldChoiceList,""]:this._editingFieldChoiceList=[""],this._editingFieldChoiceListErrors.delete(this._editingFieldChoiceList.length-1),this._editingFieldChoiceListErrors=new Map(this._editingFieldChoiceListErrors)},this._handleRemoveEditFieldChoice=e=>{if(!this._editingFieldChoiceList)return;this._editingFieldChoiceList=this._editingFieldChoiceList.filter((t,a)=>a!==e);let i=new Map;this._editingFieldChoiceListErrors.forEach((t,a)=>{a<e?i.set(a,t):a>e&&i.set(a-1,t)}),this._editingFieldChoiceListErrors=i,this._editingFieldChoiceList.length===0&&(this._editingFieldChoiceList=null,this._editingFieldChoiceListErrors=new Map)},this._handleUpdateEditFieldChoice=(e,i)=>{if(!this._editingFieldChoiceList)return;let t=[...this._editingFieldChoiceList];t[e]=i,this._editingFieldChoiceList=t;let a=this._validateDomainValue(i,this._editingFieldLength,!1);a?this._editingFieldChoiceListErrors.set(e,a):this._editingFieldChoiceListErrors.delete(e),this._editingFieldChoiceListErrors=new Map(this._editingFieldChoiceListErrors)},this._handleEditFieldChoiceDragStart=(e,i)=>{i.dataTransfer.effectAllowed="move",i.dataTransfer.setData("text/plain",e.toString())},this._handleEditFieldChoiceDrop=(e,i)=>{if(i.preventDefault(),!this._editingFieldChoiceList)return;let t=parseInt(i.dataTransfer.getData("text/plain"));if(t===e)return;let a=[...this._editingFieldChoiceList],l=a[t];a.splice(t,1),a.splice(e,0,l),this._editingFieldChoiceList=a},this._handleAddNewFieldChoice=()=>{this._newFieldChoiceList?this._newFieldChoiceList=[...this._newFieldChoiceList,""]:this._newFieldChoiceList=[""],this._newFieldChoiceListErrors.delete(this._newFieldChoiceList.length-1),this._newFieldChoiceListErrors=new Map(this._newFieldChoiceListErrors)},this._handleRemoveNewFieldChoice=e=>{if(!this._newFieldChoiceList)return;this._newFieldChoiceList=this._newFieldChoiceList.filter((t,a)=>a!==e);let i=new Map;this._newFieldChoiceListErrors.forEach((t,a)=>{a<e?i.set(a,t):a>e&&i.set(a-1,t)}),this._newFieldChoiceListErrors=i,this._newFieldChoiceList.length===0&&(this._newFieldChoiceList=null,this._newFieldChoiceListErrors=new Map)},this._handleUpdateNewFieldChoice=(e,i)=>{if(!this._newFieldChoiceList)return;let t=[...this._newFieldChoiceList];t[e]=i,this._newFieldChoiceList=t;let a=this._validateDomainValue(i,this._newFieldLength,!1);a?this._newFieldChoiceListErrors.set(e,a):this._newFieldChoiceListErrors.delete(e),this._newFieldChoiceListErrors=new Map(this._newFieldChoiceListErrors)},this._handleNewFieldChoiceDragStart=(e,i)=>{i.dataTransfer.effectAllowed="move",i.dataTransfer.setData("text/plain",e.toString())},this._handleNewFieldChoiceDrop=(e,i)=>{if(i.preventDefault(),!this._newFieldChoiceList)return;let t=parseInt(i.dataTransfer.getData("text/plain"));if(t===e)return;let a=[...this._newFieldChoiceList],l=a[t];a.splice(t,1),a.splice(e,0,l),this._newFieldChoiceList=a},this._handleDeleteField=()=>{if(!this._design||this._editingFieldType!=="custom")return;let e=this._design.featureLayer?.layers||[];if(this._selectedLayerIndex>=e.length)return;let i=[...e[this._selectedLayerIndex].customFields||[]];i.splice(this._editingFieldIndex,1);let t=e.map((a,l)=>l===this._selectedLayerIndex?{...a,customFields:i}:a);this._pushDesign({...this._design,featureLayer:{...this._design.featureLayer,layers:t}}),this._handleEditFieldBack()},this._handleApplyFieldChanges=()=>{if(!this._design||!this._editingFieldType)return;let e=this._design.featureLayer?.layers||[];if(this._selectedLayerIndex>=e.length)return;let i=e[this._selectedLayerIndex];if(this._editingFieldType==="custom"){let t=[...i.customFields||[]];t[this._editingFieldIndex]={...t[this._editingFieldIndex],alias:this._editingFieldDisplayName,name:this._editingFieldName,description:this._editingFieldDescription,type:this._editingFieldTypeValue,choiceList:this._editingFieldChoiceList&&this._editingFieldChoiceList.length>0?this._editingFieldChoiceList:null,length:this._editingFieldTypeValue==="string"?this._editingFieldLength:void 0};let a=e.map((l,o)=>o===this._selectedLayerIndex?{...l,customFields:t}:l);this._pushDesign({...this._design,featureLayer:{...this._design.featureLayer,layers:a}})}else if(this._editingFieldType==="required"){let t=[...i.requiredFields||[]];t[this._editingFieldIndex]={...t[this._editingFieldIndex],alias:this._editingFieldDisplayName,description:this._editingFieldDescription};let a=e.map((l,o)=>o===this._selectedLayerIndex?{...l,requiredFields:t}:l);this._pushDesign({...this._design,featureLayer:{...this._design.featureLayer,layers:a}})}this._handleEditFieldBack()},this._handleLayerNameChange=e=>{if(!this._design)return;let i=this._design.featureLayer?.layers||[];if(this._selectedLayerIndex>=i.length)return;this._layerNameValidationError=this._validateLayerName(e);let t=i.map((a,l)=>l===this._selectedLayerIndex?{...a,name:e}:a);this._pushDesign({...this._design,featureLayer:{...this._design.featureLayer,layers:t}})},this._handleLayerTypeChange=e=>{if(!this._design)return;let i=e.target.selectedItems[0];if(!i)return;let t=this._design.featureLayer?.layers||[];if(this._selectedLayerIndex>=t.length)return;let a=i.value,l=t.map((o,c)=>c===this._selectedLayerIndex?{...o,type:a}:o);this._pushDesign({...this._design,featureLayer:{...this._design.featureLayer,layers:l}})},this._handleLayerDescriptionChange=e=>{if(!this._design)return;let i=this._design.featureLayer?.layers||[];if(this._selectedLayerIndex>=i.length)return;this._layerDescriptionValidationError=this._validateLayerDescription(e);let t=i.map((a,l)=>l===this._selectedLayerIndex?{...a,description:e}:a);this._pushDesign({...this._design,featureLayer:{...this._design.featureLayer,layers:t}})},this._handleRemoveLayer=()=>{if(!this._design)return;let e=this._design.featureLayer?.layers||[];if(this._selectedLayerIndex>=e.length)return;let i=e.filter((t,a)=>a!==this._selectedLayerIndex);this._pushDesign({...this._design,featureLayer:{...this._design.featureLayer,layers:i}}),this._selectedLayerIndex>=i.length&&(this._selectedLayerIndex=Math.max(0,i.length-1)),this._scrollCustomizeLayerFlowToTop()},this._handleDeploy=async()=>{if(this._design){if(this._card={id:this._design.solution.itemId||"",title:this._design.solution.title||"",supportReuse:!1},this._userOptions=[],await this.updateComplete,!this._deployDialogRef.value){console.warn("solution-deploy-dialog not available in solution-builder-assistant");return}this._deployDialogRef.value.card=this._card,this._deployDialogRef.value.userOptions=this._userOptions,this._deployDialogRef.value.open=!0}},this._handleDeployCancelled=()=>{this._pendingDeployedSolutionId=null,this._closeDeployDialogs()},this._handleDeployFailed=e=>{this._pendingDeployedSolutionId=null,this._deployingDialogRef.value&&this._deployingDialogRef.value.close(),this._deployDialogRef.value&&(this._deployDialogRef.value.classList.remove("display-none"),this._deployDialogRef.value.open=!0)},this._handleDeploySuccess=e=>{this._pendingDeployedSolutionId=e.detail||null,this._deployingDialogRef.value&&(this._deployingDialogRef.value.isWaitingForCard=!0,this._deployingDialogRef.value.deploymentProgress=100)},this._deployProgressStart=e=>{this._deployingDialogRef.value&&(this._deployingDialogRef.value.card=this._card,this._deployingDialogRef.value.abortController=e.detail,this._deployingDialogRef.value.deploymentProgress=0,this._deployingDialogRef.value.isWaitingForCard=!1,this._deployingDialogRef.value.open=!0),this._deployDialogRef.value&&this._deployDialogRef.value.classList.add("display-none")},this._deployProgessUpdated=e=>{this._deployingDialogRef.value&&(this._deployingDialogRef.value.deploymentProgress=e.detail.progress)},this._handleDeploymentProcessCancelled=()=>{this._pendingDeployedSolutionId=null,this._deployingDialogRef.value&&this._deployingDialogRef.value.close(),this._deployDialogRef.value&&this._deployDialogRef.value.classList.remove("display-none")},this._handleDeployedCardReady=async e=>{!this._pendingDeployedSolutionId||e.detail?.card?.id!==this._pendingDeployedSolutionId||(this._closeDeployDialogs(),this._pendingDeployedSolutionId=null,this._clearDesignAndClose(),await new Promise(i=>requestAnimationFrame(()=>requestAnimationFrame(i))),window.dispatchEvent(new CustomEvent("displayDeployedCard",{detail:e.detail})))},this._handleDeploymentFallback=e=>{!this._pendingDeployedSolutionId||e.detail?.solutionId!==this._pendingDeployedSolutionId||(this._closeDeployDialogs(),this._pendingDeployedSolutionId=null,this._clearDesignAndClose(),window.dispatchEvent(new CustomEvent("navTabSelected",{detail:"deployments"})))},this._designContextConsumer,window.addEventListener("arcgis-solution-undo",this._handleUndo),window.addEventListener("arcgis-solution-redo",this._handleRedo),this.listenOn(window,"deployedCardReady",this._handleDeployedCardReady),this.listenOn(window,"deploymentCompletedWithoutNav",this._handleDeploymentFallback)}static{this.properties={design:[1,{type:Object}],_design:16,_translations:16,_isDirty:16,_titleValidationError:16,_descriptionValidationError:16,_undoStack:16,_redoStack:16,_openPopoverId:16,_editingItemTitle:16,_editingItemDescription:16,_editingItemTitleError:16,_editingItemDescriptionError:16,_originalItemTitle:16,_originalItemDescription:16,_layerNameValidationError:16,_layerDescriptionValidationError:16,_newLayerNameValidationError:16,_newLayerDescriptionValidationError:16,_selectedLayerIndex:16,_isAddingLayer:16,_newLayerName:16,_newLayerType:16,_newLayerDescription:16,_isEditingField:16,_editingFieldIndex:16,_editingFieldType:16,_editingFieldDisplayName:16,_editingFieldName:16,_editingFieldDescription:16,_editingFieldTypeValue:16,_editingFieldLength:16,_editingFieldChoiceList:16,_isAddingNewField:16,_isCustomizingLayer:16,_newFieldDisplayName:16,_newFieldName:16,_newFieldDescription:16,_newFieldType:16,_newFieldLength:16,_newFieldChoiceList:16,_editingFieldDisplayNameError:16,_editingFieldNameError:16,_editingFieldDescriptionError:16,_editingFieldLengthError:16,_editingFieldChoiceListErrors:16,_newFieldDisplayNameError:16,_newFieldNameError:16,_newFieldDescriptionError:16,_newFieldLengthError:16,_newFieldChoiceListErrors:16,_originalEditFieldDisplayName:16,_originalEditFieldName:16,_originalEditFieldDescription:16,_originalEditFieldTypeValue:16,_originalEditFieldLength:16,_originalEditFieldChoiceList:16,_card:16,_userOptions:16,_designContextValue:16}}static{this.styles=S}disconnectedCallback(){window.removeEventListener("arcgis-solution-undo",this._handleUndo),window.removeEventListener("arcgis-solution-redo",this._handleRedo),super.disconnectedCallback()}willUpdate(e){e.has("design")&&(this.design?this._pushDesign(this.design):this._design=null)}render(){let e=this._translations;return e?this._design?s`<calcite-panel><div slot=header-content class="header-content-wrapper"><span class="header-title">${e.headerTitle}</span><calcite-chip .label=${e.draft} kind=neutral appearance=outline scale=s>${e.draft}</calcite-chip></div><calcite-action slot=header-actions-end .text=${e.undo} text-enabled icon=undo .disabled=${this._undoStack.length===0} @click=${this._handleUndo}></calcite-action><calcite-action slot=header-actions-end .text=${e.redo} text-enabled icon=redo .disabled=${this._redoStack.length===0} @click=${this._handleRedo}></calcite-action><div slot=header-actions-end class="header-divider"></div><calcite-action slot=header-actions-end .text=${e.hideBuilder} text-enabled icon=chevrons-right @click=${this._handleHideBuilder}></calcite-action>${!this._isCustomizingLayer&&s`<div class="builder-content">${this._renderMainContent()}${this._renderSolutionItemContent()}</div>`||""}${this._isCustomizingLayer&&s`<div class="builder-content">${this._renderCustomizeLayerFlow()}</div>`||""}<solution-deploy-dialog .card=${this._card} .design=${this._design} @deployCancelled=${this._handleDeployCancelled} @deployFailed=${this._handleDeployFailed} @deployProgressEnd=${this._handleDeploySuccess} @deployProgressStart=${this._deployProgressStart} @deployProgressUpdated=${this._deployProgessUpdated} id=solutionDeployDialog .userOptions=${this._userOptions} ${w(this._deployDialogRef)}></solution-deploy-dialog><solution-deploying-dialog .card=${this._card} @deploymentProcessCancelled=${this._handleDeploymentProcessCancelled} ${w(this._deployingDialogRef)}></solution-deploying-dialog></calcite-panel>`:this._renderEmptyState():s`<div>Loading...</div>`}_getLayerTypeIcon(e){switch(e){case"Point":return"point";case"Polyline":return"line";case"Polygon":return"polygon";case"Table":return"table";default:return"layer"}}_getFieldTypeIcon(e){switch(e){case"string":return"string";case"integer":return"integer";case"double":return"number";case"date":return"date-time";case"oid":case"globalid":case"guid":return"key";default:return"key"}}_formatFieldType(e){let i={string:"String",integer:"Integer",double:"Double",date:"Date",guid:"GUID",globalid:"GlobalID",oid:"ObjectID"}[e.type]||e.type;return e.type==="string"&&e.length?`${i} (${e.length})`:i}_getSystemFieldsList(e){return(e.systemFields||[]).map(i=>i.name).join(", ")}_shouldShowRemoveLayerButton(e){return!e||!this._design?.featureLayer?!1:e.id&&e.id>1e3}_scrollCustomizeLayerFlowToTop(){requestAnimationFrame(()=>{let e=this.el.shadowRoot?.querySelector("calcite-flow-item[selected]");e?.shadowRoot&&e.shadowRoot.querySelector(".content-container")?.scrollTo({top:0,behavior:"smooth"})})}async _validateSolutionName(e){let i=this._translations,t=await z(e,void 0,!0);if(!t.isValid)switch(t.errorType){case"empty":return i.solutionNameErrorBlank;case"exceed-length":return i.solutionNameErrorLength;case"special-character":return i.solutionNameErrorSpecialCharacter;default:return null}return null}_validateSolutionDescription(e){let i=this._translations,t=y(e,2048,!1);if(!t.isValid)switch(t.errorType){case"exceed-length":return i.descriptionErrorLength;case"special-character":return i.descriptionErrorSpecialCharacter;default:return null}return null}_validateItemName(e){let i=this._translations,t=f(e);if(!t.isValid)switch(t.errorType){case"empty":return i.itemTitleErrorBlank;case"exceed-length":return i.itemTitleErrorLength;case"special-character":return i.itemTitleErrorSpecialCharacter;default:return null}return null}_validateItemDescription(e){let i=this._translations,t=y(e,2048,!1);if(!t.isValid)switch(t.errorType){case"exceed-length":return i.itemDescriptionErrorLength;case"special-character":return i.itemDescriptionErrorSpecialCharacter;default:return null}return null}_validateLayerName(e){let i=this._translations,t=f(e);if(!t.isValid)switch(t.errorType){case"empty":return i.layerNameErrorBlank;case"exceed-length":return i.layerNameErrorLength;case"special-character":return i.layerNameErrorSpecialCharacter;default:return null}return null}_validateLayerDescription(e){let i=this._translations,t=y(e,2048,!1);if(!t.isValid)switch(t.errorType){case"exceed-length":return i.layerDescriptionErrorLength;case"special-character":return i.layerDescriptionErrorSpecialCharacter;default:return null}return null}_validateFieldDisplayName(e){let i=this._translations,t=M(e);if(!t.isValid)switch(t.errorType){case"empty":return i.displayNameErrorBlank;case"exceed-length":return i.displayNameErrorLength;default:return null}return null}_validateFieldName(e,i,t=!1,a=-1,l=null){let o=this._translations,c=[],n=this._design?.featureLayer?.layers||[];if(i>=0&&i<n.length){let d=n[i],v=d.customFields||[],F=d.requiredFields||[],m=d.systemFields||[];v.forEach((g,u)=>{(!t||l!=="custom"||u!==a)&&c.push(g.name.toLowerCase())}),F.forEach((g,u)=>{(!t||l!=="required"||u!==a)&&c.push(g.name.toLowerCase())}),m.forEach(g=>{c.push(g.name.toLowerCase())})}let r=T(e,c);if(!r.isValid)switch(r.errorType){case"empty":return o.fieldNameErrorBlank;case"invalid-format":return o.fieldNameErrorInvalidChars;case"exceed-length":return o.fieldNameErrorLength;case"sql-keyword":return o.fieldNameErrorSQLKeyword;case"system-field":return o.fieldNameErrorSystemField;case"duplicate-field":return o.fieldNameErrorExists;default:return null}return null}_validateFieldDescription(e){let i=this._translations,t=y(e,500,!0);if(!t.isValid)switch(t.errorType){case"exceed-length":return i.fieldDescriptionErrorLength;case"special-character":return i.fieldDescriptionErrorSpecialCharacter;default:return null}return null}_validateFieldLength(e){let i=this._translations,t=O(e);return t.isValid?null:t.errorType==="out-of-range"?i.lengthErrorOutOfRange:null}_validateDomainValue(e,i,t=!1){let a=this._translations,l=P(e,i,t);if(!l.isValid)switch(l.errorType){case"empty":return a.domainValueErrorEmpty;case"exceed-length":return a.domainValueErrorExceedsLength;default:return null}return null}_renderFieldRows(e){let i=this._translations,t=[...e.customFields||[],...e.requiredFields||[]],a=e.customFields?.length||0,l=[];return t.forEach((o,c)=>{let n=this._getFieldTypeIcon(o.type),r=this._formatFieldType(o),d=`field-domain-info-${c}`,v=`field-lock-${c}`,F=c>=a,m,g=!1;o.choiceList&&Array.isArray(o.choiceList)?(g=!0,m=s`<div class="domain-cell-content"><span>List (${o.choiceList.length})</span><calcite-icon id=${d??h} icon=information scale=s></calcite-icon></div>`):m=null;let u=F?s`<div class="field-name-cell"><calcite-icon id=${v??h} icon=lock scale=s class="lock-icon"></calcite-icon><span>${o.name}</span></div>`:o.name;l.push(s`<calcite-table-row><calcite-table-cell>${o.alias}</calcite-table-cell><calcite-table-cell>${u}</calcite-table-cell><calcite-table-cell><div class="field-type-cell"><calcite-icon .icon=${n} scale=s></calcite-icon><span>${r}</span></div></calcite-table-cell><calcite-table-cell>${m}</calcite-table-cell><calcite-table-cell><calcite-icon class="edit-icon" icon=pencil scale=s @click=${()=>this._handleEditField(c,o)}></calcite-icon></calcite-table-cell></calcite-table-row>`),g&&l.push(s`<calcite-tooltip .referenceElement=${d} placement=left><ul class="choice-list-tooltip">${o.choiceList.map(k=>s`<li>${k}</li>`)}</ul></calcite-tooltip>`),F&&l.push(s`<calcite-tooltip .referenceElement=${v} placement=top>${i.requiredFieldTooltip}</calcite-tooltip>`)}),l}_renderEmptyState(){return s`<calcite-panel><div class="empty-state"><calcite-icon icon=layer scale=l></calcite-icon><p>No solution design loaded</p></div></calcite-panel>`}_renderMainContent(){return s`<div class="content-container"><div class="solution-item-section">${this._renderSolutionItemInputs()}</div><div class="actions-section">${this._renderActionButtons()}</div></div>`}_renderSolutionItemInputs(){let e=this._translations,i=this._design?.solution?.thumbnailUrl||"",t=this._design?.solution?.title||"",a=this._design?.solution?.description||"";return s`<div class="solution-item-inputs"><div class="thumbnail-inputs-row"><div class="thumbnail-container"><img src=${(i||V)??h} alt=${e.solutionThumbnail??h}></div><div class="stacked-inputs"><calcite-label class="section-title">${e.name}<calcite-input-text .placeholder=${e.namePlaceholder} .value=${t} max-length=250 .status=${this._titleValidationError?"invalid":"idle"} .validationMessage=${this._titleValidationError||""} .validationIcon=${!!this._titleValidationError} @input=${l=>this._handleTitleChange(l.target.value)}></calcite-input-text></calcite-label><calcite-label class="section-title">${e.description}<calcite-text-area .placeholder=${e.solutionDescriptionPlaceholder} .value=${a} max-length=2048 resize=none .status=${this._descriptionValidationError?"invalid":"idle"} .validationMessage=${this._descriptionValidationError||""} .validationIcon=${!!this._descriptionValidationError} rows=3 limit-text @input=${l=>this._handleDescriptionChange(l.target.value)}></calcite-text-area></calcite-label></div></div></div>`}_renderActionButtons(){let e=this._translations;return s`<div class="action-buttons"><calcite-button appearance=solid width=full @click=${this._handleDeploy}>${e.deploy}</calcite-button><calcite-button appearance=outline kind=neutral width=full>${e.discard}</calcite-button><calcite-notice open appearance=transparent kind=brand icon=effects scale=s><div slot=message>${e.noticeMessage}</div></calcite-notice></div>`}_renderSolutionItemContent(){let e=this._translations,i=this._design?.items||[],t=this._design?.featureLayer?.itemId,a=[...i].reverse();return s`<div class="solution-item-content-section"><h3 class="section-header">${e.contents}</h3><calcite-list .label=${e.solutionContentItems} interaction-mode=static>${a.map(l=>{let o=`edit-action-${l.id}`,c=`customize-action-${l.id}`,n=l.id===t;return s`<calcite-list-item .label=${l.title} .description=${l.description||""}><solution-item-icon slot=content-start .designType=${l.type}></solution-item-icon>${n&&s`<calcite-button slot=content-end appearance=outline-fill round id=${c??h} icon-start=gear .label=${e.customizeLayer} scale=m @click=${this._handleOpenCustomizeLayer}>${e.customizeLayer}</calcite-button>`||""}<calcite-action slot=actions-end id=${o??h} icon=edit-attributes .text=${e.edit} scale=m></calcite-action></calcite-list-item>`})}</calcite-list>${a.map(l=>{let o=`edit-action-${l.id}`,c=`edit-popover-${l.id}`,n=this._openPopoverId===l.id;return s`<calcite-popover id=${c??h} .label=${e.editItemContent} .referenceElement=${o} placement=auto @calcitePopoverBeforeOpen=${()=>this._handleItemPopoverOpen(l)} @calcitePopoverClose=${()=>this._handleCloseItemPopover()}><div class="popover-content"><calcite-label class="section-title">${e.title}<calcite-input-text .value=${n?this._editingItemTitle:l.title} .placeholder=${e.titlePlaceholder} max-length=250 .status=${this._editingItemTitleError?"invalid":"idle"} .validationMessage=${this._editingItemTitleError||""} .validationIcon=${!!this._editingItemTitleError} @input=${r=>{this._editingItemTitle=r.target.value,this._editingItemTitleError=this._validateItemName(r.target.value)}}></calcite-input-text></calcite-label><calcite-label class="popover-field section-title">${e.description}<calcite-text-area .value=${n?this._editingItemDescription:l.description} .placeholder=${e.descriptionPlaceholder} max-length=2048 resize=none rows=4 .status=${this._editingItemDescriptionError?"invalid":"idle"} .validationMessage=${this._editingItemDescriptionError||""} .validationIcon=${!!this._editingItemDescriptionError} @input=${r=>{this._editingItemDescription=r.target.value,this._editingItemDescriptionError=this._validateItemDescription(r.target.value)}}></calcite-text-area></calcite-label><div class="popover-actions"><calcite-button appearance=outline kind=neutral @click=${async r=>{r.stopPropagation(),await this._handleClosePopover(c)}}>${e.cancel}</calcite-button><calcite-button appearance=solid .disabled=${!!this._editingItemTitleError||!!this._editingItemDescriptionError||this._editingItemTitle===this._originalItemTitle&&this._editingItemDescription===this._originalItemDescription} @click=${r=>{r.stopPropagation(),this._handleApplyItemChanges(l.id)}}>${e.apply}</calcite-button></div></div></calcite-popover>`})}</div>`}_renderCustomizeLayerFlow(){let e=this._translations,i=this._design?.featureLayer?.layers||[],t=this._design?.featureLayer?.addLayers||!1,a=i[this._selectedLayerIndex],l=a?.name||"",o=a?.description||"",c=a?.type||"Point";return s`<calcite-flow><calcite-flow-item .heading=${e.customizeLayer} .selected=${!this._isAddingLayer&&!this._isEditingField&&!this._isAddingNewField}><calcite-action slot=header-actions-start icon=chevron-left .text=${e.close} scale=m @click=${this._handleCloseCustomizeLayer}></calcite-action><div class="layer-form-content"><div class="layer-selector-container"><span class="section-header">${e.selectLayer}</span><div class="layer-selector-row"><calcite-combobox .label=${e.selectLayer} selection-mode=single-persist clear-disabled @calciteComboboxChange=${n=>this._handleLayerSelect(n)}>${i.map((n,r)=>{let d=this._getLayerTypeIcon(n.type);return s`<calcite-combobox-item .value=${r.toString()} .label=${n.name} .heading=${n.name} .icon=${d} .selected=${r===this._selectedLayerIndex}></calcite-combobox-item>`})}</calcite-combobox>${t&&s`<calcite-button icon-start=plus appearance=outline @click=${this._handleAddLayer}>${e.addLayer}</calcite-button>`||""}</div></div><div class="horizontal-divider"></div>${a&&s`<div class="layer-properties-section"><span class="section-header">${e.layerProperties}</span><div class="layer-properties-row"><calcite-label class="section-title">${e.name}<calcite-input-text .placeholder=${e.layerNamePlaceholder} .value=${l} max-length=250 .status=${this._layerNameValidationError?"invalid":"idle"} .validationMessage=${this._layerNameValidationError||""} .validationIcon=${!!this._layerNameValidationError} @input=${n=>this._handleLayerNameChange(n.target.value)}></calcite-input-text></calcite-label><calcite-label class="section-title">${e.type}<calcite-combobox .label=${e.type} selection-mode=single-persist clear-disabled @calciteComboboxChange=${n=>this._handleLayerTypeChange(n)}><calcite-combobox-item value=Point .label=${e.pointLayer} .heading=${e.pointLayer} icon=point .selected=${c==="Point"}></calcite-combobox-item><calcite-combobox-item value=Polyline .label=${e.lineLayer} .heading=${e.lineLayer} icon=line .selected=${c==="Polyline"}></calcite-combobox-item><calcite-combobox-item value=Polygon .label=${e.polygonLayer} .heading=${e.polygonLayer} icon=polygon .selected=${c==="Polygon"}></calcite-combobox-item><calcite-combobox-item value=Table .label=${e.tableLayer} .heading=${e.tableLayer} icon=table .selected=${c==="Table"}></calcite-combobox-item></calcite-combobox></calcite-label>${this._shouldShowRemoveLayerButton(a)&&s`<calcite-button appearance=outline kind=danger width=auto @click=${this._handleRemoveLayer}>${e.removeLayer}</calcite-button>`||""}</div></div>`||""}${a&&s`<div class="layer-description-container"><calcite-label class="section-title">${e.description}<calcite-text-area .placeholder=${e.layerDescriptionPlaceholder} .value=${o} resize=none max-length=2048 .status=${this._layerDescriptionValidationError?"invalid":"idle"} .validationMessage=${this._layerDescriptionValidationError||""} .validationIcon=${!!this._layerDescriptionValidationError} @input=${n=>this._handleLayerDescriptionChange(n.target.value)}></calcite-text-area></calcite-label></div>`||""}${a&&s`<div class="fields-section"><calcite-label class="section-title">${e.fields}<calcite-table bordered .caption=${e.fields}><calcite-table-row slot=table-header><calcite-table-header .heading=${e.displayName}></calcite-table-header><calcite-table-header .heading=${e.fieldName}></calcite-table-header><calcite-table-header .heading=${e.type}></calcite-table-header><calcite-table-header .heading=${e.domain}></calcite-table-header><calcite-table-header heading></calcite-table-header></calcite-table-row>${this._renderFieldRows(a)}</calcite-table></calcite-label><calcite-button icon-start=plus appearance=outline-fill width=auto scale=m class="add-field-button" @click=${this._handleAddField}>${e.addField}</calcite-button><calcite-notice open icon=information appearance=transparent width=full><div slot=message>${e.systemFieldsNote} ${this._getSystemFieldsList(a)}</div></calcite-notice></div>`||""}</div></calcite-flow-item>${this._isEditingField&&s`<calcite-flow-item .heading=${e.editField} selected @calciteFlowItemBack=${this._handleEditFieldBack}><div class="layer-form-content"><div class="layer-properties-container"><calcite-label class="section-title">${e.displayName}<calcite-input-text .placeholder=${e.displayNamePlaceholder} .value=${this._editingFieldDisplayName} max-length=250 .status=${this._editingFieldDisplayNameError?"invalid":"idle"} .validationMessage=${this._editingFieldDisplayNameError||""} .validationIcon=${!!this._editingFieldDisplayNameError} @input=${n=>this._handleEditFieldDisplayNameChange(n.target.value)}></calcite-input-text></calcite-label><calcite-label class="section-title">${e.fieldName}<calcite-input-text .placeholder=${e.fieldNamePlaceholder} .value=${this._editingFieldName} max-length=31 .disabled=${this._editingFieldType==="required"} .status=${this._editingFieldNameError?"invalid":"idle"} .validationMessage=${this._editingFieldNameError||""} .validationIcon=${!!this._editingFieldNameError} @input=${n=>this._handleEditFieldNameChange(n.target.value)}></calcite-input-text></calcite-label></div><div class="layer-description-container"><calcite-label class="section-title">${e.fieldDescription}<calcite-text-area .placeholder=${e.fieldDescriptionPlaceholder} .value=${this._editingFieldDescription} resize=none max-length=500 .status=${this._editingFieldDescriptionError?"invalid":"idle"} .validationMessage=${this._editingFieldDescriptionError||""} .validationIcon=${!!this._editingFieldDescriptionError} @input=${n=>this._handleEditFieldDescriptionChange(n.target.value)}></calcite-text-area></calcite-label></div><div class="layer-properties-container"><calcite-label class="section-title">${e.type}<calcite-combobox .label=${e.type} selection-mode=single-persist clear-disabled .disabled=${this._editingFieldType==="required"} @calciteComboboxChange=${n=>this._handleEditFieldTypeChange(n)}><calcite-combobox-item value=string text-label=${e.stringType??h} .heading=${e.stringType} icon=string .selected=${this._editingFieldTypeValue==="string"}></calcite-combobox-item><calcite-combobox-item value=integer text-label=${e.integerType??h} .heading=${e.integerType} icon=integer .selected=${this._editingFieldTypeValue==="integer"}></calcite-combobox-item><calcite-combobox-item value=double text-label=${e.doubleType??h} .heading=${e.doubleType} icon=number .selected=${this._editingFieldTypeValue==="double"}></calcite-combobox-item><calcite-combobox-item value=date text-label=${e.dateType??h} .heading=${e.dateType} icon=date-time .selected=${this._editingFieldTypeValue==="date"}></calcite-combobox-item><calcite-combobox-item value=guid text-label=${e.guidType??h} .heading=${e.guidType} icon=key .selected=${this._editingFieldTypeValue==="guid"}></calcite-combobox-item></calcite-combobox></calcite-label>${this._editingFieldTypeValue==="string"&&s`<calcite-label class="section-title">${e.length}<calcite-input-number .value=${this._editingFieldLength.toString()} .disabled=${this._editingFieldType==="required"} min=1 max=4000 .status=${this._editingFieldLengthError?"invalid":"idle"} .validationMessage=${this._editingFieldLengthError||""} .validationIcon=${!!this._editingFieldLengthError} @input=${n=>{let r=n.target.value===""?null:parseInt(n.target.value);this._handleEditFieldLengthChange(r)}}></calcite-input-number></calcite-label>`||""}</div>${this._editingFieldType==="required"&&s`<calcite-notice open icon=lock appearance=transparent kind=info><div slot=message>${e.requiredFieldNote}</div></calcite-notice>`||""}${this._editingFieldTypeValue==="string"&&s`<div class="domain-section"><calcite-label class="section-title">${e.domainValues}</calcite-label>${this._editingFieldChoiceList&&this._editingFieldChoiceList.length>0?s`<div><div class="domain-list">${this._editingFieldChoiceList.map((n,r)=>s`<div class="domain-item" draggable @dragstart=${d=>this._handleEditFieldChoiceDragStart(r,d)} @dragover=${d=>d.preventDefault()} @drop=${d=>this._handleEditFieldChoiceDrop(r,d)}><calcite-icon icon=drag scale=s class="drag-handle"></calcite-icon><calcite-input-text .placeholder=${e.domainValuePlaceholder} .value=${n} .maxLength=${this._editingFieldLength} .status=${this._editingFieldChoiceListErrors.get(r)?"invalid":"idle"} .validationMessage=${this._editingFieldChoiceListErrors.get(r)||""} .validationIcon=${!!this._editingFieldChoiceListErrors.get(r)} @input=${d=>this._handleUpdateEditFieldChoice(r,d.target.value)}></calcite-input-text><calcite-button icon-start=x appearance=transparent scale=s kind=neutral @click=${()=>this._handleRemoveEditFieldChoice(r)}></calcite-button></div>`)}</div><calcite-button icon-start=plus appearance=transparent width=auto class="add-field-button padding-top-sm" @click=${this._handleAddEditFieldChoice}>${e.addDomainValue}</calcite-button></div>`:s`<calcite-button icon-start=plus appearance=transparent width=auto class="add-field-button padding-top-sm" @click=${this._handleAddEditFieldChoice}>${e.addDomainValue}</calcite-button>`}</div>`||""}</div><calcite-button slot=footer-end appearance=outline kind=neutral scale=m .disabled=${this._editingFieldType==="required"} @click=${this._handleDeleteField}>${e.delete}</calcite-button><calcite-button slot=footer-end appearance=solid kind=brand scale=m .disabled=${!!this._editingFieldDisplayNameError||!!this._editingFieldNameError||!!this._editingFieldDescriptionError||!!this._editingFieldLengthError||this._editingFieldChoiceListErrors.size>0||this._editingFieldDisplayName===this._originalEditFieldDisplayName&&this._editingFieldName===this._originalEditFieldName&&this._editingFieldDescription===this._originalEditFieldDescription&&this._editingFieldTypeValue===this._originalEditFieldTypeValue&&this._editingFieldLength===this._originalEditFieldLength&&JSON.stringify(this._editingFieldChoiceList)===JSON.stringify(this._originalEditFieldChoiceList)} @click=${this._handleApplyFieldChanges}>${e.apply}</calcite-button></calcite-flow-item>`||""}${this._isAddingLayer&&s`<calcite-flow-item .heading=${e.addLayer} selected @calciteFlowItemBack=${this._handleAddLayerBack}><div class="layer-form-content"><div class="layer-properties-container"><calcite-label class="section-title">${e.name}<calcite-input-text .placeholder=${e.layerNamePlaceholder} .value=${this._newLayerName} max-length=250 .status=${this._newLayerNameValidationError?"invalid":"idle"} .validationMessage=${this._newLayerNameValidationError||""} .validationIcon=${!!this._newLayerNameValidationError} @input=${n=>this._handleNewLayerNameChange(n.target.value)}></calcite-input-text></calcite-label><calcite-label class="section-title">${e.type}<calcite-combobox .label=${e.type} selection-mode=single-persist clear-disabled @calciteComboboxChange=${n=>this._handleNewLayerTypeChange(n)}><calcite-combobox-item value=Point text-label=${e.pointLayer??h} .heading=${e.pointLayer} icon=point .selected=${this._newLayerType==="Point"}></calcite-combobox-item><calcite-combobox-item value=Polyline text-label=${e.lineLayer??h} .heading=${e.lineLayer} icon=line .selected=${this._newLayerType==="Polyline"}></calcite-combobox-item><calcite-combobox-item value=Polygon text-label=${e.polygonLayer??h} .heading=${e.polygonLayer} icon=polygon .selected=${this._newLayerType==="Polygon"}></calcite-combobox-item><calcite-combobox-item value=Table text-label=${e.tableLayer??h} .heading=${e.tableLayer} icon=table .selected=${this._newLayerType==="Table"}></calcite-combobox-item></calcite-combobox></calcite-label></div><div class="layer-description-container"><calcite-label class="section-title">${e.description}<calcite-text-area .placeholder=${e.layerDescriptionPlaceholder} .value=${this._newLayerDescription} resize=none max-length=2048 .status=${this._newLayerDescriptionValidationError?"invalid":"idle"} .validationMessage=${this._newLayerDescriptionValidationError||""} .validationIcon=${!!this._newLayerDescriptionValidationError} @input=${n=>this._handleNewLayerDescriptionChange(n.target.value)}></calcite-text-area></calcite-label></div></div><calcite-button slot=footer-end appearance=solid kind=brand scale=m .disabled=${!this._newLayerName.trim()||!!this._newLayerNameValidationError||!!this._newLayerDescriptionValidationError} @click=${this._handleAddLayerDone}>${e.done}</calcite-button></calcite-flow-item>`||""}${this._isAddingNewField&&s`<calcite-flow-item .heading=${e.addField} selected @calciteFlowItemBack=${this._handleAddFieldBack}><div class="layer-form-content"><div class="layer-properties-container"><calcite-label class="section-title">${e.displayName}<calcite-input-text .placeholder=${e.displayNamePlaceholder} .value=${this._newFieldDisplayName} max-length=250 .status=${this._newFieldDisplayNameError?"invalid":"idle"} .validationMessage=${this._newFieldDisplayNameError||""} .validationIcon=${!!this._newFieldDisplayNameError} @input=${n=>this._handleNewFieldDisplayNameChange(n.target.value)}></calcite-input-text></calcite-label><calcite-label class="section-title">${e.fieldName}<calcite-input-text .placeholder=${e.fieldNamePlaceholder} .value=${this._newFieldName} max-length=31 .status=${this._newFieldNameError?"invalid":"idle"} .validationMessage=${this._newFieldNameError||""} .validationIcon=${!!this._newFieldNameError} @input=${n=>this._handleNewFieldNameChange(n.target.value)}></calcite-input-text></calcite-label></div><div class="layer-description-container"><calcite-label class="section-title">${e.fieldDescription}<calcite-text-area .placeholder=${e.fieldDescriptionPlaceholder} .value=${this._newFieldDescription} resize=none max-length=500 .status=${this._newFieldDescriptionError?"invalid":"idle"} .validationMessage=${this._newFieldDescriptionError||""} .validationIcon=${!!this._newFieldDescriptionError} @input=${n=>this._handleNewFieldDescriptionChange(n.target.value)}></calcite-text-area></calcite-label></div><div class="layer-properties-container"><calcite-label class="section-title">${e.type}<calcite-combobox .label=${e.type} selection-mode=single-persist clear-disabled @calciteComboboxChange=${n=>this._handleNewFieldTypeChange(n)}><calcite-combobox-item value=string text-label=${e.stringType??h} .heading=${e.stringType} icon=string .selected=${this._newFieldType==="string"}></calcite-combobox-item><calcite-combobox-item value=integer text-label=${e.integerType??h} .heading=${e.integerType} icon=integer .selected=${this._newFieldType==="integer"}></calcite-combobox-item><calcite-combobox-item value=double text-label=${e.doubleType??h} .heading=${e.doubleType} icon=number .selected=${this._newFieldType==="double"}></calcite-combobox-item><calcite-combobox-item class="section-title" value=date text-label=${e.dateType??h} .heading=${e.dateType} icon=date-time .selected=${this._newFieldType==="date"}></calcite-combobox-item><calcite-combobox-item value=guid text-label=${e.guidType??h} .heading=${e.guidType} icon=key .selected=${this._newFieldType==="guid"}></calcite-combobox-item></calcite-combobox></calcite-label>${this._newFieldType==="string"&&s`<calcite-label class="section-title">${e.length}<calcite-input-number .value=${this._newFieldLength.toString()} min=1 max=4000 .status=${this._newFieldLengthError?"invalid":"idle"} .validationMessage=${this._newFieldLengthError||""} .validationIcon=${!!this._newFieldLengthError} @input=${n=>{let r=n.target.value===""?null:parseInt(n.target.value);this._handleNewFieldLengthChange(r)}}></calcite-input-number></calcite-label>`||""}</div>${this._newFieldType==="string"&&s`<div class="domain-section"><calcite-label class="section-title">${e.domainValues}</calcite-label>${this._newFieldChoiceList&&this._newFieldChoiceList.length>0?s`<div><div class="domain-list">${this._newFieldChoiceList.map((n,r)=>s`<div class="domain-item" draggable @dragstart=${d=>this._handleNewFieldChoiceDragStart(r,d)} @dragover=${d=>d.preventDefault()} @drop=${d=>this._handleNewFieldChoiceDrop(r,d)}><calcite-icon icon=drag scale=s class="drag-handle"></calcite-icon><calcite-input-text .placeholder=${e.domainValuePlaceholder} .value=${n} .maxLength=${this._newFieldLength} .status=${this._newFieldChoiceListErrors.get(r)?"invalid":"idle"} .validationMessage=${this._newFieldChoiceListErrors.get(r)||""} .validationIcon=${!!this._newFieldChoiceListErrors.get(r)} @input=${d=>this._handleUpdateNewFieldChoice(r,d.target.value)}></calcite-input-text><calcite-button icon-start=x appearance=transparent scale=s kind=neutral @click=${()=>this._handleRemoveNewFieldChoice(r)}></calcite-button></div>`)}</div><calcite-button icon-start=plus appearance=transparent width=auto class="add-field-button padding-top-sm" @click=${this._handleAddNewFieldChoice}>${e.addDomainValue}</calcite-button></div>`:s`<calcite-button icon-start=plus appearance=transparent width=auto class="add-field-button padding-top-sm" @click=${this._handleAddNewFieldChoice}>${e.addDomainValue}</calcite-button>`}</div>`||""}</div><calcite-button slot=footer-end appearance=solid scale=m .disabled=${!this._newFieldDisplayName.trim()||!this._newFieldName.trim()||!!this._newFieldDisplayNameError||!!this._newFieldNameError||!!this._newFieldDescriptionError||!!this._newFieldLengthError||this._newFieldChoiceListErrors.size>0} @click=${this._handleAddFieldDone}>${e.done}</calcite-button></calcite-flow-item>`||""}</calcite-flow>`}_pushDesign(e,i=!0){this._design&&(this._undoStack=[...this._undoStack,structuredClone(this._design)]),this._redoStack=[],this._design=e,this._lastPushedDesign=e,this._isDirty=!0,i&&this._notifyDesignChanged(e)}_notifyDesignChanged(e){this._designContextValue?.updateDesign&&this._designContextValue.updateDesign(e),window.dispatchEvent(new CustomEvent("arcgis-solution-design-update",{detail:e}))}_clearDesignAndClose(){this._design=null,this._designContextValue?.updateDesign&&this._designContextValue.updateDesign(null),window.dispatchEvent(new CustomEvent("toggleSolutionBuilder"))}_closeDeployDialogs(){this._deployingDialogRef.value&&this._deployingDialogRef.value.close(),this._deployDialogRef.value&&(this._deployDialogRef.value.classList.remove("display-none"),this._deployDialogRef.value.open=!1)}};E("solution-builder-assistant",x);return x},a)
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
+
function u(){return{renderer:{type:"simple",symbol:{type:"CIMSymbolReference",symbol:{type:"CIMPointSymbol",symbolLayers:[{type:"CIMVectorMarker",enable:!0,colorLocked:!0,anchorPoint:{x:0,y:-12.600000000000001},anchorPointUnits:"Absolute",dominantSizeAxis3D:"Y",size:7.2,billboardMode3D:"FaceNearPlane",frame:{xmin:0,ymin:0,xmax:84.3,ymax:84.3},markerGraphics:[{type:"CIMMarkerGraphic",geometry:{rings:[[[83.2,32.5],[84.3,40.7],[83.8,48.9],[81.7,56.9],[78.1,64.3],[73,70.9],[66.9,76.4],[59.7,80.5],[51.9,83.2],[43.7,84.3],[35.4,83.8],[27.4,81.7],[20,78],[13.4,73],[7.9,66.8],[3.8,59.7],[1.1,51.9],[0,43.7],[.5,35.4],[2.6,27.4],[6.3,20],[11.3,13.4],[17.5,7.9],[24.7,3.8],[32.5,1.1],[39.8,.1],[47.1,.3],[54.3,1.8],[61.1,4.5],[67.4,8.4],[72.9,13.3],[77.4,19.1],[80.9,25.5],[83.2,32.5]]]},symbol:{type:"CIMPolygonSymbol",symbolLayers:[{type:"CIMSolidFill",enable:!0,color:[242,242,242,255]}]}}],scaleSymbolsProportionally:!0,respectFrame:!0,clippingPath:{type:"CIMClippingPath",clippingType:"Intersect",path:{rings:[[[0,0],[84.3,0],[84.3,84.3],[0,84.3],[0,0]]]}},rotation:360},{type:"CIMVectorMarker",enable:!0,anchorPoint:{x:0,y:-9},anchorPointUnits:"Absolute",dominantSizeAxis3D:"Y",size:18,billboardMode3D:"FaceNearPlane",frame:{xmin:0,ymin:0,xmax:197.7,ymax:294.7},markerGraphics:[{type:"CIMMarkerGraphic",geometry:{rings:[[[98.9,0],[119.4,23.2],[139.4,49.3],[156.8,75.2],[171.2,100.8],[182.4,125.3],[190.6,148.8],[195.7,171.4],[197.7,192.9],[197.7,195.8],[197.7,200.3],[197.6,202.5],[197.5,204.8],[197.3,207.1],[197,209.4],[196.7,211.7],[196.4,214.1],[196,216.4],[195.5,218.7],[195,221.1],[194.4,223.4],[193.7,225.8],[193,228.1],[192.2,230.5],[191.4,232.8],[190.5,235.1],[189.5,237.5],[188.5,239.7],[187.4,242],[186.2,244.3],[185,246.5],[183.7,248.7],[182.4,250.9],[181,253.1],[179.5,255.2],[178,257.3],[176.4,259.4],[174.7,261.4],[173.1,263.3],[171.3,265.3],[169.5,267.2],[167.7,269],[165.8,270.8],[163.9,272.5],[161.9,274.2],[159.9,275.8],[157.8,277.4],[155.7,278.9],[153.6,280.4],[151.4,281.7],[149.2,283.1],[147,284.4],[144.8,285.6],[142.5,286.7],[140.3,287.8],[138,288.8],[135.7,289.8],[133.4,290.7],[131,291.5],[128.7,292.3],[126.4,293],[124,293.6],[121.7,294.2],[119.4,294.7],[117,295.2],[114.7,295.6],[112.4,296],[110.1,296.3],[107.8,296.5],[105.5,296.7],[103.3,296.8],[101.1,296.9],[98.8,296.9],[83.1,295.7],[67.8,292],[53.3,285.9],[39.9,277.5],[28.1,267.2],[18,255.1],[10,241.5],[4.2,226.9],[.9,211.5],[0,195.8],[.1,192.9],[2.1,171.4],[7.2,148.8],[15.4,125.3],[26.6,100.8],[41,75.2],[58.4,49.3],[78.4,23.2],[98.9,0]]]},symbol:{type:"CIMPolygonSymbol",symbolLayers:[{type:"CIMSolidFill",enable:!0,color:[39,17,17,255]}]}}],scaleSymbolsProportionally:!0,respectFrame:!0,clippingPath:{type:"CIMClippingPath",clippingType:"Intersect",path:{rings:[[[0,0],[197.7,0],[197.7,294.7],[0,294.7],[0,0]]]}},rotation:360}],haloSize:1,scaleX:1,angleAlignment:"Display",angle:360}}}}}function m(){return{renderer:{type:"simple",symbol:{type:"esriSMS",style:"esriSMSCircle",color:[0,0,0,255],size:10,angle:0,xoffset:0,yoffset:0,outline:{color:[0,0,0,255],width:0}}}}}var _=class d{constructor(e){this.llm_fs_lookup={},this.structure=e,this._s=this.structure?.buildSolution}static{this.TYPE_LOOKUP={point:"esriGeometryPoint",polyline:"esriGeometryPolyline",polygon:"esriGeometryPolygon"}}static{this.DRAWING_TOOL_LOOKUP={esriGeometryPoint:"esriFeatureEditToolPoint",esriGeometryPolyline:"esriFeatureEditToolLine",esriGeometryPolygon:"esriFeatureEditToolPolygon",Table:"esriFeatureEditToolNone"}}static{this.FIELD_TYPE_TO_ESRI={string:"esriFieldTypeString",integer:"esriFieldTypeInteger",double:"esriFieldTypeDouble",date:"esriFieldTypeDate",guid:"esriFieldTypeGUID",globalid:"esriFieldTypeGlobalID",oid:"esriFieldTypeOID"}}static{this.FIELD_TYPE_TO_SIMPLE=Object.fromEntries(Object.entries(d.FIELD_TYPE_TO_ESRI).map(([e,t])=>[t,e]))}dump_to_llm_template(){let e=this.structure?.buildSolution?.solution,t=Object.entries(e?.strings||{}).map(([o,r])=>({key:o,value:r.value,description:r.description})),i={title:e?.title,description:e?.description,tags:e?.tags,strings:t},s=this.structure?.buildSolution?.items,n=Object.entries(s||{}).map(([o,r])=>({id:o,title:r.title,description:r.description,type:r.type})),a=null;for(let[o,r]of Object.entries(s||{})){if(r.type!=="Feature Layer (hosted)")continue;let l=[];for(let p of r.service?.layers||[]){let c=this._get_fields(p);l.push({id:p.id,type:"",name:p.name,customFields:[],requiredFields:c,systemFields:[]})}for(let p of r.service?.tables||[]){let c=this._get_fields(p);l.push({id:p.id,type:"Table",name:p.name,customFields:[],requiredFields:c,systemFields:[]})}a={itemId:o,addLayers:r.addLayers,layers:l};break}return{solution:i,items:n,featureLayer:a??{itemId:"",addLayers:!1,layers:[]}}}_get_fields(e){let t=[];for(let i of e.fields||[])t.push({name:i.name,type:d.FIELD_TYPE_TO_SIMPLE[i.type]||i.type,alias:i.alias,description:d._get_field_description(i.description),choiceList:d._get_field_domain(i.domain)});return t}static _get_field_description(e){if(e)try{return JSON.parse(e).value||e}catch{return e}}static _get_field_domain(e){if(e)return e.codedValues?.map(t=>t.code)}apply_llm_template(e){let t=this._s.solution;if(this.llm_fs_lookup={},e.featureLayer?.itemId){this.llm_fs_lookup[e.featureLayer.itemId]={};for(let o of e.featureLayer.layers)this.llm_fs_lookup[e.featureLayer.itemId][o.id]=o}for(let[o,r]of Object.entries(this._s.items))r.type==="Feature Layer (hosted, view)"&&(this.llm_fs_lookup[o]={...this.llm_fs_lookup[r.source]});t.title=e.solution.title,t.description=e.solution.description,t.tags=e.solution.tags;let i=t.strings;for(let o of e.solution.strings)i[o.key]&&(i[o.key].value=o.value);let s={},n=new Set,a=this._s.items;for(let o of e.items){let r=a[o.id];if(r)if(r.title=o.title,r.description=o.description,r.type==="Web Map")this._apply_web_map(r);else if(r.type==="Feature Layer (hosted)"){this._apply_feature_service(r,o.id,!1);let l=new y(r).generate_data();r.data=l,s[o.id]=l}else r.type==="Feature Layer (hosted, view)"&&(this._apply_feature_service(r,o.id,!0),n.add(o.id))}for(let o of n){let r=a[o];r.data=s[r.source]}return this.structure}_apply_web_map(e){if(e.layerSources)for(let t of[...e.layers||[],...e.tables||[]]){let[i,s]=this._extract_id_and_layid(t.url),n=this.llm_fs_lookup[i]?.[s];n&&(t.title=n.name)}}_extract_id_and_layid(e){let t=e.replace(/[{}]/g,"").split("."),i=t[0],s=parseInt(t[1].replace("layer",""));return[i,s]}_apply_feature_service(e,t,i=!1){let s=e.source||t,n=this.llm_fs_lookup[s];for(let a of[...e.service.layers,...e.service.tables])this._apply_layer(a,n,i)}_apply_layer(e,t,i=!1){let s=t[e.id];if(!s||(e.name=s.name,i))return;let n=d.TYPE_LOOKUP[s.type.toLowerCase()]||s.type;n.toLowerCase()==="table"?e.type=n:e.geometryType=n,e.editFieldsInfo=this._edit_fields_info(),e.globalIdField="globalid",e.objectIdField="objectid",e.uniqueIdField={name:"objectid",isSystemMaintained:!0},e.hasAttachments=!0,this._update_relationships(e,t),this._update_fields(e,s),this._update_templates(e),this._update_drawing_info(e)}_update_relationships(e,t){let i=e.relationships||[];for(let s of i){let n=t[s.relatedTableId];n&&(s.name=n.name)}}_update_fields(e,t){let i=[],s=[[!1,t.customFields],[!0,t.requiredFields],[!0,t.systemFields]];for(let[n,a]of s)if(Array.isArray(a))for(let o of a){let r={name:o.name,alias:o.alias,type:d.FIELD_TYPE_TO_ESRI[o.type]||o.type,description:JSON.stringify({value:o.description,fieldValueType:""},null,0),domain:this._create_domain(o.choiceList,o.name),required:n};if(o.type?.toLowerCase()==="string"){let l=256;o.choiceList&&(l=Math.max(...o.choiceList.map(p=>p.length))+10),r.length=l}i.push(r)}e.fields=i}_update_templates(e){let t=d.DRAWING_TOOL_LOOKUP[e.geometryType||e.type];e.templates=[{name:e.name,description:"",drawingTool:t,prototype:{attributes:{}}}]}_update_drawing_info(e){if(e.drawingTool==="esriGeometryPoint")e.drawingInfo=m();else return}_create_domain(e,t){return e?{type:"codedValue",name:`${t}_${crypto.randomUUID().replace(/-/g,"")}`,codedValues:e.map(i=>({name:i,code:i}))}:null}_edit_fields_info(){return{creationDateField:"created_date",creatorField:"created_user",editDateField:"last_edited_date",editorField:"last_edited_user"}}},y=class{constructor(e){this.item_def=e,this.source_service_props=this.item_def.service}generate_data(){let e={layers:[],tables:[]};for(let t of this.source_service_props.layers||[]){let i={id:t.id};i.formInfo=this._generate_form_info(t),i.popupInfo=this._generate_popup_info(t),i.layerDefinition=this._generate_drawing_info(t),e.layers.push(i)}for(let t of this.source_service_props.tables||[]){let i={id:t.id};i.formInfo=this._generate_form_info(t),i.popupInfo=this._generate_popup_info(t),e.tables.push(i)}return e}_generate_form_info(e){let t=[];for(let s of e.fields){if(s.required)continue;let n={label:s.alias,type:"field",editableExpression:"expr/system/true",fieldName:s.name,inputType:this._get_input_type(s.type,s.domain,s.length)};t.push(n)}let i=e.relationships||[];for(let s of i)t.push({description:"",label:s.name,type:"relationship",displayCount:3,displayType:"list",editableExpression:"expr/system/true",orderByFields:[{field:"created_date",order:"asc"}],relationshipId:s.id,title:s.name});return{formElements:t,expressionInfos:[{expression:"false",name:"expr/system/false",returnType:"boolean",title:"False"},{expression:"true",name:"expr/system/true",returnType:"boolean",title:"True"}],title:e.name}}_generate_popup_info(e){let t=[],i=[];for(let n of e.fields)n.required||i.push({fieldName:n.name,isEditable:!0,label:n.alias,visible:!0});t.push({type:"fields",description:"",fieldInfos:i});let s=e.relationships||[];if(s.length&&e.type!=="Table")for(let n of s)t.push({type:"relationship",description:"",displayCount:3,displayType:"list",orderByFields:[{field:"created_date",order:"asc"}],relationshipId:n.id});return t.push({type:"attachments",description:"",displayType:"auto",title:""}),{popupElements:t,showLastEditInfo:!1,title:""}}_generate_drawing_info(e){return e.geometryType==="esriGeometryPoint"?{drawingInfo:u()}:{drawingInfo:{}}}_get_input_type(e,t,i){return e==="esriFieldTypeString"&&!t?{type:"text-box",maxLength:i||255,minLength:0}:e==="esriFieldTypeString"&&t?{type:"combo-box",noValueOptionLabel:"No value",showNoValueOption:!0}:["esriFieldTypeInteger","esriFieldTypeDouble"].includes(e)?{type:"text-box",minLength:0}:e==="esriFieldTypeDate"?{type:"datetime-picker",includeTime:!1}:{type:"text-box",maxLength:i||255,minLength:0}}};export{_ as a};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
+
import b from"./JQXKQHAG.js";import"./ZYCAAXQF.js";import"./2WHAF4H7.js";import a from"./X5EABWHE.js";import"./2B4SGB3I.js";import"./YKQDHR27.js";import"./J75MHJID.js";import"./R67EKKSL.js";import"./BVWAUO73.js";import"./K3DQKY7V.js";import"./TEHBW75B.js";import"./ALSK2SPM.js";import"./ZCU2WWVN.js";import"./WGO4EVOV.js";import"./3IHLJADI.js";import"./BMBNSJZQ.js";import"./5HZMUGQD.js";import"./5VDDAINK.js";import"./Z4F2NZOT.js";import"./KOIDWEP3.js";import"./3KXMYZCU.js";import"./LPBP7CBN.js";import"./3FMOO3PJ.js";import"./XQQ52NKX.js";import"./JUUVYK2H.js";import"./DKD2EGQP.js";import"./4HFHJOS3.js";import"./45M33Q5G.js";import"./FES7B3SJ.js";import"./KIUBUHVM.js";import"./H5E6ISYP.js";import"./QPIMTXPL.js";export default $arcgis.t(([,{c:o}])=>{return o},a,b)
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
+
import{c as g}from"./ZYCAAXQF.js";import i from"./XAW6KPKL.js";import e from"./ZP6VPBP4.js";import d from"./XXT542UR.js";import a from"./X5EABWHE.js";import{b as T}from"./2B4SGB3I.js";import{b as D}from"./YKQDHR27.js";import{sb as _,ta as $,tb as x,ub as b}from"./J75MHJID.js";import{a as S}from"./R67EKKSL.js";import"./BVWAUO73.js";import"./K3DQKY7V.js";import"./TEHBW75B.js";import"./ALSK2SPM.js";import"./ZCU2WWVN.js";import"./WGO4EVOV.js";import"./3IHLJADI.js";import"./BMBNSJZQ.js";import"./5HZMUGQD.js";import"./5VDDAINK.js";import"./Z4F2NZOT.js";import"./KOIDWEP3.js";import"./3KXMYZCU.js";import"./LPBP7CBN.js";import"./3FMOO3PJ.js";import"./XQQ52NKX.js";import"./JUUVYK2H.js";import"./DKD2EGQP.js";import"./4HFHJOS3.js";import"./45M33Q5G.js";import"./FES7B3SJ.js";import{b as I}from"./KIUBUHVM.js";import{E as m,F as h,G as v,I as f,h as C,i as u,q as c}from"./H5E6ISYP.js";import"./QPIMTXPL.js";export default $arcgis.t(([,,{m:w,o:P},{a:V}])=>{var N=C`*[tabindex]:focus-visible{outline-style:solid!important;outline-width:2px!important;outline-color:var(--calcite-color-brand)!important;outline-offset:2px!important}.display-flex{display:flex}.display-none{display:none}.flex-direction-column{flex-direction:column}.flex-direction-row{flex-direction:row}.font-weight-medium{font-weight:var(--calcite-font-weight-medium)}.font-style-1{font-size:1rem;color:var(--calcite-color-text-2)}.margin-top-0{margin-top:0}.padding-top-20{padding-top:20px}.padding-bottom-2{padding-bottom:2rem}.padding-left-2{padding-left:2rem}.padding-right-2{padding-right:2rem}.padding-end-1{padding-inline-end:1rem}.padding-end-1-2{padding-inline-end:.5rem}.width-full{width:100%}.justify-content-space{justify-content:space-between}`,y=class extends v{constructor(){super(...arguments),this.open=!1,this.source="Card Dropdown",this.solutionData={},this.templateInfos=[],this._saveDisabled=!1,this._displayTemplateInfos=[],this._hasNameLengthError=!1,this._nonSolutionDependencyItems=[],this._solutionItemsTitlesUpdating=!1,this._translations=S({name:"solution-configure-titles",blocking:!0}),this._configContextConsumer=D({context:T,subscribe:!0}),this._defaultPrefix="",this._defaultSuffix="",this._loadingDefaultPrefix=!1,this._loadingDefaultSuffix=!1,this._prefixRef=m(),this._prefixValue="",this._suffixRef=m(),this._suffixValue="",this._templateInfos=[],this._originalTitles=[],this.solutionConfigureTitlesBeforeClose=c(),this.solutionItemsTitlesChanged=c()}static{this.properties={card:0,open:5,source:1,solutionData:1,templateInfos:0,_saveDisabled:16,_displayTemplateInfos:16,_hasNameLengthError:16,_nonSolutionDependencyItems:16,_solutionItemsTitlesUpdating:16,_translations:16}}static{this.styles=N}async willUpdate(i){if(i.has("templateInfos")&&(this._templateInfos=JSON.parse(JSON.stringify(this.templateInfos)),this._updateTemplates()),i.has("open")){let e=i.get("open");if(this.open&&!e){await this._updatePrefixSuffix(),this._templateInfos=JSON.parse(JSON.stringify(this.templateInfos)),this._originalTitles=this._templateInfos.map(t=>({id:t.id,title:t.title})),this._updateTemplates();let s=await V(this._configContextConsumer.value.userSession,this.card);this._nonSolutionDependencyItems=s._nonSolutionDependencyItems,await this._accordionRef?.expandFirstItem()}}}get _telemetry(){return this._configContextConsumer.value?.telemetrySession}async load(){this._updateTemplates(),await this._updatePrefixSuffix()}async _updatePrefixSuffix(){this.solutionData=await $(this.card.id,this._configContextConsumer.value.userSession),this.solutionData.titles?.prefix&&(this._loadingDefaultPrefix=!0,this._defaultPrefix=this.solutionData.titles.prefix,this._prefixValue=this.solutionData.titles.prefix),this.solutionData.titles?.suffix&&(this._loadingDefaultSuffix=!0,this._defaultSuffix=this.solutionData.titles.suffix,this._suffixValue=this.solutionData.titles.suffix)}render(){return u`<calcite-dialog .heading=${this.card.title} modal @calciteDialogBeforeClose=${()=>{this.solutionConfigureTitlesBeforeClose.emit()}} .open=${this.open} outside-close-disabled width=l>${this._getPrefixSuffixControls()}${this._getAccordion()}${this._getDialogButtons()}</calcite-dialog>`}_getPrefixSuffixControls(){let i=g(this._prefixValue),e=this._hasNameLengthError&&this._prefixValue.length>0,s=i.errorType!=="special-character",t=!e,a=s?"display-none":"",n=t?"display-none":"",p=s&&t?"valid":"invalid",d=g(this._suffixValue),l=this._hasNameLengthError&&this._suffixValue.length>0,o=d.errorType!=="special-character",r=!l,E=o?"display-none":"",W=r?"display-none":"",k=o&&r?"valid":"invalid";return this._saveDisabled=!s||!t||!o||!r||!this._hasChanges(),u`<div class="display-flex flex-direction-column padding-left-2 padding-right-2 padding-top-20"><calcite-label scale=l class="font-weight-medium"><span tabindex=0>${this._translations.configureTitlesDialogHeader}</span></calcite-label><p class="font-style-1 margin-top-0" tabindex=0>${this._translations.addPrefixOrSuffixToItems}</p><div class="display-flex flex-direction-row justify-content-space"><calcite-label class="width-full padding-end-1" scale=l>${this._translations.prefixToAddToItems}<calcite-input clearable @blur=${this._prefixInput} @input=${this._prefixInput} .placeholder=${this._translations.enterPrefixPlaceholder} .status=${p} .value=${this._prefixValue} ${h(this._prefixRef)}></calcite-input><calcite-input-message class=${f(a)} icon=exclamation-mark-triangle status=invalid>${this._translations.invalidPrefixOrSuffixCharsError}</calcite-input-message><calcite-input-message class=${f(n)} icon=exclamation-mark-triangle status=invalid>${this._translations.invalidPrefixOrSuffixLengthError}</calcite-input-message></calcite-label><calcite-label class="width-full" scale=l>${this._translations.suffixToAddToItems}<calcite-input clearable @blur=${this._suffixInput} @input=${this._suffixInput} .placeholder=${this._translations.enterSuffixPlaceholder} .status=${k} .value=${this._suffixValue} ${h(this._suffixRef)}></calcite-input><calcite-input-message class=${f(E)} icon=exclamation-mark-triangle status=invalid>${this._translations.invalidPrefixOrSuffixCharsError}</calcite-input-message><calcite-input-message class=${f(W)} icon=exclamation-mark-triangle status=invalid>${this._translations.invalidPrefixOrSuffixLengthError}</calcite-input-message></calcite-label></div></div>`}_getAccordion(){let i=[...new Set(this._nonSolutionDependencyItems.map(e=>e.controlItemId))];return u`<div class="display-flex flex-direction-column padding-left-2 padding-right-2 padding-bottom-2"><p class="font-style-1 margin-top-0">${this._translations.previewTheChanges}</p><solution-item-accordion .itemRelationshipDependencies=${i} list-selection-mode=multiple .reuseWarning=${this._translations.itemDependencyReuseWarning} .templateInfos=${this._displayTemplateInfos} .typeKeywords=${this.card?.typeKeywords} usage-context=rename ${h(async e=>{e&&(this._accordionRef=e)})}></solution-item-accordion></div>`}_getDialogButtons(){return u`<div slot=footer-end><calcite-button appearance=outline class="padding-end-1-2" kind=brand @click=${this._closeDialog}>${this._translations.cancelTheDialog}</calcite-button><calcite-button .disabled=${this._saveDisabled} kind=brand .loading=${this._solutionItemsTitlesUpdating} @click=${this._commitNameChanges}>${this._translations.applyChangesAndCloseTheDialog}</calcite-button></div>`}_prefixInput(){clearTimeout(this._textInputTimeout),this._textInputTimeout=setTimeout(()=>{this._prefixValue=this._prefixRef.value?.value||"",this._updateTemplates()},500)}_suffixInput(){clearTimeout(this._textInputTimeout),this._textInputTimeout=setTimeout(()=>{this._suffixValue=this._suffixRef.value?.value||"",this._updateTemplates()},500)}_updateTemplates(){let i=this._configContextConsumer.value?.authentication?.CanUpdateSolution??!1,e=this._configContextConsumer.value?.authentication?.PortalUserName;this._templateInfos=this._templateInfos.map(t=>(this._loadingDefaultPrefix&&t.title.startsWith(this._prefixValue)&&(t.title=this._replaceStart(t.title,this._prefixValue,"")),this._loadingDefaultSuffix&&t.title.endsWith(this._suffixValue)&&(t.title=this._replaceAtEnd(t.title,this._suffixValue,"")),t));let s=JSON.parse(JSON.stringify(this._templateInfos));this._hasNameLengthError=!1,this._displayTemplateInfos=s.map(t=>{let a=this._prefixValue!=="",n=this._suffixValue!=="",p=this._defaultPrefix!=="",d=this._defaultSuffix!=="";if(t.owner!==e&&!i)return t;let l=t.title;a&&(p?this._originalTitles.find(r=>r.id===t.id)?.title.startsWith(this._defaultPrefix)?l=this._applyPrefixWithDuplicateCheck(t.title,this._prefixValue):this._prefixValue!==this._defaultPrefix&&(l=this._applyPrefixWithDuplicateCheck(t.title,this._prefixValue)):l=this._applyPrefixWithDuplicateCheck(t.title,this._prefixValue));let o=l;return n&&(d?this._originalTitles.find(r=>r.id===t.id)?.title.endsWith(this._defaultSuffix)?o=this._applySuffixWithDuplicateCheck(l,this._suffixValue):this._suffixValue!==this._defaultSuffix&&(o=this._applySuffixWithDuplicateCheck(l,this._suffixValue)):o=this._applySuffixWithDuplicateCheck(l,this._suffixValue)),t.title=o,this._hasNameLengthError||(this._hasNameLengthError=t.title.length>w),t}),this._loadingDefaultPrefix=!1,this._loadingDefaultSuffix=!1}_replaceStart(i,e,s){return i.startsWith(e)?`${s}${i.slice(e.length)}`:i}_replaceAtEnd(i,e,s){return i.endsWith(e)?`${i.substring(0,i.length-e.length)}${s}`:i}_applyPrefixWithDuplicateCheck(i,e){return!e||i.startsWith(e)?i:e+i}_applySuffixWithDuplicateCheck(i,e){return!e||i.endsWith(e)?i:i+e}_hasChanges(){let i=this._defaultPrefix!==this._prefixValue,e=this._defaultSuffix!==this._suffixValue;return this._displayTemplateInfos.some(s=>{let t=this._originalTitles.find(a=>a.id===s.id);return t&&t.title!==s.title})||i||e}_closeDialog(){this.open=!1}async _commitNameChanges(){if(this._hasChanges()){this._telemetry?.logEvent({category:P.DEPLOYMENTS,action:"Rename Items",dimensions:[this.card?.title||"",this.card?.deployCommonId||"",this.card?.deployVersion||"",this.source]}),this._solutionItemsTitlesUpdating=!0;let i=this._configContextConsumer.value?.authentication?.CanUpdateSolution??!1,e=this._configContextConsumer.value?.authentication?.PortalUserName,s=this._displayTemplateInfos.reduce((t,a)=>{if(a.owner!==e){if(i){let n={id:a.id,title:a.title};t.push(a.type==="Group"?x(n,this._configContextConsumer.value.userSession):_(n,this._configContextConsumer.value.userSession,void 0,{solutionOwner:this.card?.owner}))}}else{let n={id:a.id,title:a.title};t.push(a.type==="Group"?x(n,this._configContextConsumer.value.userSession):_(n,this._configContextConsumer.value.userSession,void 0,{solutionOwner:this.card?.owner}))}return t},[]);if(this.solutionData?.templates){let t={id:this.card.id},a={...this.solutionData,titles:{prefix:this._prefixValue,suffix:this._suffixValue}};s.push(b(t,a,this._configContextConsumer.value.userSession,void 0,void 0,null,this.card?.owner))}await Promise.all(s),this._solutionItemsTitlesUpdating=!1,this.solutionItemsTitlesChanged.emit()}this._closeDialog()}};I("solution-configure-titles",y);return y},a,d,e,i)
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import a from"./
|
|
2
|
+
import a from"./NBPM6OJQ.js";export default $arcgis.t(([a,u,{g:i}])=>{var c=class{async getPopupTitle(o,f){let s={};for(let[e,r]of Object.entries(o.attributes))s={...s,[`{${e.toUpperCase()}}`]:r};let p=o.layer,l=this._removeTags(p?.popupTemplate?.title);if(l.includes("{expression/expr")&&p?.popupTemplate?.expressionInfos!=null)for(let e=0;e<p.popupTemplate?.expressionInfos.length;e++){let r=p.popupTemplate.expressionInfos[e],n=a.createArcadeProfile("popup");try{let t=await(await a.createArcadeExecutor(r.expression,n)).executeAsync({$feature:o,$layer:p,$map:f});(t!==null||t!=="")&&(s[`{expression/${r.name}}`.toUpperCase()]=t)}catch(t){console.error(t);continue}}return p.popupTemplate?.fieldInfos&&p.fields.forEach(e=>{let r=o.attributes[e.name],n=(p?.popupTemplate?.fieldInfos||[]).find(m=>m.fieldName.toLowerCase()===e.name.toLowerCase()),t=i(r,e.type,e?.domain,n?.format,u);s[`{${e.name.toUpperCase()}}`]=t??r}),l?.replace(/{.*?}/g,e=>s[e.toUpperCase()]!=null?s[e.toUpperCase()]:"")}_removeTags(o){return o==null||o===""?"":o.toString().replace(/(<([^>]+)>)/gi,"")}};return c},"arcade","intl",a)
|