@arcgis/map-components 5.1.0-next.55 → 5.1.0-next.56

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.
@@ -254,7 +254,7 @@ interface LuminaArcgisFeatureTable extends Partial<Pick<ArcgisFeatureTable, "act
254
254
  onarcgisSelectionChange?: EventHandler<ArcgisFeatureTable["arcgisSelectionChange"]>;
255
255
  }
256
256
 
257
- interface LuminaArcgisFeatureTemplatesLegacy extends Partial<Pick<ArcgisFeatureTemplatesLegacy, "autoDestroyDisabled" | "disabledItemFunction" | "filterText" | "headingLevel" | "hideFilter" | "label" | "referenceElement" | "selectionMode" | "view">>, ArcgisFeatureTemplatesLegacySetterTypes, h.JSX.HTMLAttributes<ArcgisFeatureTemplatesLegacy> {
257
+ interface LuminaArcgisFeatureTemplatesLegacy extends Partial<Pick<ArcgisFeatureTemplatesLegacy, "autoDestroyDisabled" | "disabledItemFunction" | "enableListScroll" | "filterFunction" | "filterText" | "groupBy" | "headingLevel" | "hideFilter" | "label" | "layers" | "referenceElement" | "selectionMode" | "view">>, ArcgisFeatureTemplatesLegacySetterTypes, h.JSX.HTMLAttributes<ArcgisFeatureTemplatesLegacy> {
258
258
  onarcgisPropertyChange?: EventHandler<ArcgisFeatureTemplatesLegacy["arcgisPropertyChange"]>;
259
259
  onarcgisReady?: EventHandler<ArcgisFeatureTemplatesLegacy["arcgisReady"]>;
260
260
  onarcgisSelect?: EventHandler<ArcgisFeatureTemplatesLegacy["arcgisSelect"]>;
@@ -255,7 +255,7 @@ interface PreactArcgisFeatureTable extends Partial<Pick<ArcgisFeatureTable, "act
255
255
  onarcgisSelectionChange?: EventHandler<ArcgisFeatureTable["arcgisSelectionChange"]>;
256
256
  }
257
257
 
258
- interface PreactArcgisFeatureTemplatesLegacy extends Partial<Pick<ArcgisFeatureTemplatesLegacy, "autoDestroyDisabled" | "disabledItemFunction" | "filterText" | "headingLevel" | "hideFilter" | "label" | "referenceElement" | "selectionMode" | "view">>, ArcgisFeatureTemplatesLegacySetterTypes, HTMLAttributes<ArcgisFeatureTemplatesLegacy> {
258
+ interface PreactArcgisFeatureTemplatesLegacy extends Partial<Pick<ArcgisFeatureTemplatesLegacy, "autoDestroyDisabled" | "disabledItemFunction" | "enableListScroll" | "filterFunction" | "filterText" | "groupBy" | "headingLevel" | "hideFilter" | "label" | "layers" | "referenceElement" | "selectionMode" | "view">>, ArcgisFeatureTemplatesLegacySetterTypes, HTMLAttributes<ArcgisFeatureTemplatesLegacy> {
259
259
  onarcgisPropertyChange?: EventHandler<ArcgisFeatureTemplatesLegacy["arcgisPropertyChange"]>;
260
260
  onarcgisReady?: EventHandler<ArcgisFeatureTemplatesLegacy["arcgisReady"]>;
261
261
  onarcgisSelect?: EventHandler<ArcgisFeatureTemplatesLegacy["arcgisSelect"]>;
@@ -255,7 +255,7 @@ interface ReactArcgisFeatureTable extends Partial<Pick<ArcgisFeatureTable, "acti
255
255
  onarcgisSelectionChange?: EventHandler<ArcgisFeatureTable["arcgisSelectionChange"]>;
256
256
  }
257
257
 
258
- interface ReactArcgisFeatureTemplatesLegacy extends Partial<Pick<ArcgisFeatureTemplatesLegacy, "autoDestroyDisabled" | "disabledItemFunction" | "filterText" | "headingLevel" | "hideFilter" | "label" | "referenceElement" | "selectionMode" | "view">>, ArcgisFeatureTemplatesLegacySetterTypes, HTMLProps<ArcgisFeatureTemplatesLegacy> {
258
+ interface ReactArcgisFeatureTemplatesLegacy extends Partial<Pick<ArcgisFeatureTemplatesLegacy, "autoDestroyDisabled" | "disabledItemFunction" | "enableListScroll" | "filterFunction" | "filterText" | "groupBy" | "headingLevel" | "hideFilter" | "label" | "layers" | "referenceElement" | "selectionMode" | "view">>, ArcgisFeatureTemplatesLegacySetterTypes, HTMLProps<ArcgisFeatureTemplatesLegacy> {
259
259
  onarcgisPropertyChange?: EventHandler<ArcgisFeatureTemplatesLegacy["arcgisPropertyChange"]>;
260
260
  onarcgisReady?: EventHandler<ArcgisFeatureTemplatesLegacy["arcgisReady"]>;
261
261
  onarcgisSelect?: EventHandler<ArcgisFeatureTemplatesLegacy["arcgisSelect"]>;
@@ -255,7 +255,7 @@ interface StencilArcgisFeatureTable extends Partial<Pick<ArcgisFeatureTable, "ac
255
255
  onArcgisSelectionChange?: EventHandler<ArcgisFeatureTable["arcgisSelectionChange"]>;
256
256
  }
257
257
 
258
- interface StencilArcgisFeatureTemplatesLegacy extends Partial<Pick<ArcgisFeatureTemplatesLegacy, "autoDestroyDisabled" | "disabledItemFunction" | "filterText" | "headingLevel" | "hideFilter" | "label" | "referenceElement" | "selectionMode" | "view">>, ArcgisFeatureTemplatesLegacySetterTypes, StencilJsx.HTMLAttributes<ArcgisFeatureTemplatesLegacy> {
258
+ interface StencilArcgisFeatureTemplatesLegacy extends Partial<Pick<ArcgisFeatureTemplatesLegacy, "autoDestroyDisabled" | "disabledItemFunction" | "enableListScroll" | "filterFunction" | "filterText" | "groupBy" | "headingLevel" | "hideFilter" | "label" | "layers" | "referenceElement" | "selectionMode" | "view">>, ArcgisFeatureTemplatesLegacySetterTypes, StencilJsx.HTMLAttributes<ArcgisFeatureTemplatesLegacy> {
259
259
  onArcgisPropertyChange?: EventHandler<ArcgisFeatureTemplatesLegacy["arcgisPropertyChange"]>;
260
260
  onArcgisReady?: EventHandler<ArcgisFeatureTemplatesLegacy["arcgisReady"]>;
261
261
  onArcgisSelect?: EventHandler<ArcgisFeatureTemplatesLegacy["arcgisSelect"]>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arcgis/map-components",
3
- "version": "5.1.0-next.55",
3
+ "version": "5.1.0-next.56",
4
4
  "description": "ArcGIS Map Components",
5
5
  "keywords": [
6
6
  "2D",
@@ -46,9 +46,9 @@
46
46
  "lit": "^3.3.0",
47
47
  "lodash-es": "^4.17.23",
48
48
  "tslib": "^2.8.1",
49
- "@arcgis/common-components": "5.1.0-next.55",
50
- "@arcgis/lumina": "5.1.0-next.55",
51
- "@arcgis/toolkit": "5.1.0-next.55"
49
+ "@arcgis/common-components": "5.1.0-next.56",
50
+ "@arcgis/lumina": "5.1.0-next.56",
51
+ "@arcgis/toolkit": "5.1.0-next.56"
52
52
  },
53
53
  "peerDependencies": {
54
54
  "@arcgis/core": "^5.1.0-next",
@@ -1,2 +0,0 @@
1
- /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import a from"./NKR3PQHN.js";import{a as I}from"./SVVJHTPA.js";import"./55IJQTCC.js";import"./7DOI3267.js";import"./EHZW6UXL.js";import{O as S,U as v,a as L,b as m,p as n,r as g,x as f}from"./MDRC374Z.js";import"./3TTFCHAA.js";export default $arcgis.t(([C,b,d,A,$,G,k,T,{c:w,f:x}])=>{var F=L`calcite-block{--calcite-block-content-space: 0;--calcite-block-border-color: transparent;margin:0}.add-location-button{--calcite-button-border-color: var(--calcite-color-border-1);--calcite-button-icon-color: var(--calcite-color-text-1);--calcite-button-text-color: var(--calcite-color-text-1)}.button-container{justify-content:center;display:grid}.clear-button{--calcite-button-border-color: transparent}`,_=class extends S{constructor(){super(...arguments),this.messages=I({blocking:!0}),this.isSelectWaiting=!1,this.traceLocationType="starting-point",this.spatialTolerance=.05,this.autoDestroyDisabled=!1,this.arcgisTraceLocationChange=f(),this.arcgisTraceLocationSelectEnd=f(),this.arcgisTraceLocationSelectStart=f()}static{this.properties={isSelectWaiting:16,beforeTraceLocationSelectStart:0,afterHitTest:0,view:0,traceLocationType:1,traceLocations:0,filterLayers:0,sketchViewModel:0,spatialTolerance:9,autoDestroyDisabled:5,utilityNetwork:0}}static{this.styles=F}async destroy(){this._resetCursor(),await this.manager.destroy()}async load(){d.isLoaded()||await d.load()}_createPolyline(e,t){return new A({hasZ:!1,hasM:!0,paths:e,spatialReference:new $({wkid:t})})}_calculatePercentAlong(e,t){let r=e.spatialReference,c=this._createPolyline(e.paths,r.wkid),o=t.x-.5,i=t.x+.5,s=t.y-.5,a=t.y+.5,l=[[[o,s],[i,a]]],h=this._createPolyline(l,t.spatialReference.wkid),p=d.execute(h,r);if(!p)return n("error",this,"Unable to project flag geometry to source geometry spatial reference."),.5;let u=C.execute(c,p);if(u.length>0){let P=b.execute(c,{unit:"feet"}),y;return u[0].paths[0][0][0]===c.paths[0][0][0]?y=b.execute(u[0],{unit:"feet"}):u.length>1?y=b.execute(u[1],{unit:"feet"}):y=0,y/P}return n("warn",this,"Unable to cut the source geometry with the flag geometry."),.5}get _edgeSourceLayerIds(){let e=this.utilityNetwork?.dataElement?.domainNetworks;return e?e.flatMap(t=>t.edgeSources).map(t=>t.layerId).filter(Boolean):[]}async _handleAddButtonClick(){let{view:e,sketchViewModel:t}=this;if(!(e&&t)){n("error",this,"Cannot add trace location."),t||n("error",this,g("sketchViewModel")),e||n("error",this,g("view"));return}if(this.beforeTraceLocationSelectStart){this.isSelectWaiting=!0;try{await this.beforeTraceLocationSelectStart()}finally{this.isSelectWaiting=!1}}this.arcgisTraceLocationSelectStart.emit({cancelSelect:()=>t.cancel()}).defaultPrevented||await this._startSketch(e,t)}async _startSketch(e,t){this._clickHandler?.remove(),this._clickHandler=t.on("create",r=>this._handleSketchComplete(r,e,t)),"acquireCursor"in e&&e.acquireCursor("crosshair"),this.sketchViewModel?.create("point")}_handleSketchComplete(e,t,r){if(e.state==="complete"&&e.graphic){r.layer.remove(e.graphic),this._performHitTest(e,t,r);return}e.state==="cancel"&&(this._resetCursor(),this.arcgisTraceLocationSelectEnd.emit())}async _performHitTest(e,t,r){let{utilityNetwork:c}=this;if(!c){n("error",this,g("utilityNetwork")),this._resetCursor(),this.arcgisTraceLocationSelectEnd.emit();return}let o=e.graphic?.geometry,i=t.toScreen(o);if(!i){n("warn",this,"No screen point available for hit test."),this._startSketch(t,r);return}let s=(await t.hitTest(i,{include:this.filterLayers})).results.filter(a=>a.type==="graphic"&&a?.layer&&a.graphic);if(s.length===0){n("info",this,"No usable hit test results found."),this._startSketch(t,r);return}this._resetCursor(),await this._processHitTestResults(s,o,t),this.arcgisTraceLocationSelectEnd.emit()}_resetCursor(){let{view:e}=this;if(!e){n("error",this,g("view"));return}this._clickHandler?.remove(),this._clickHandler=void 0,"acquireCursor"in e&&e.acquireCursor("default")}async _processHitTestResults(e,t,r){if(e.length===0){n("error",this,"There are no hit test results to process.");return}let c=e[0],o=e.map(a=>{let l=a,h=l.graphic;return h.origin=l.layer,h.sourceLayer=l.layer,h}),i=this.afterHitTest?await this.afterHitTest(o).catch(()=>null):c.graphic;if(!i){n("error",this,"No graphic available from hit test results."),this.arcgisTraceLocationSelectEnd.emit();return}let s=await this._ensureNecessaryAttributes(i);if(!s){n("error",this,"Unable to ensure necessary attributes on the selected graphic."),this.arcgisTraceLocationSelectEnd.emit();return}await this._generateTraceLocation(s,t,r)}async _ensureNecessaryAttributes(e){let t=(w(e.layer),e.layer),r=t.fieldsIndex?.get("assetgroup")??!1,c=t.fieldsIndex?.get("assetgroup")?.name??"assetgroup",o=t.fieldsIndex?.get("assettype")??!1,i=t.fieldsIndex?.get("assettype")?.name??"assettype",s=e.getGlobalId(),a=e.getObjectId(),l=r?!!e.getAttribute(c):!0,h=o?!!e.getAttribute(i):!0;if(s&&a&&l&&h)return e;let p=t.createQuery();return p.objectIds=[a],(await t.queryFeatures(p))?.features[0]||null}async _generateTraceLocation(e,t,r){let{traceLocations:c}=this,o=e.getGlobalId()??"",i=e.geometry?.type,s=await this._generateFlagInfo(e,t);if(!s){n("error",this,"Unable to generate flag info for trace location.");return}let a=c?.filter(h=>h.spatialProperties.mapGraphic?.getGlobalId()===o)??[];if(a.length>0){if(i!=="polyline"){n("warn",this,"A flag with the same globalId already exists.");return}else if(a.some(h=>Math.abs(h.traceLocation.percentAlong-s.traceLocation.percentAlong)<=this.spatialTolerance)){n("warn",this,"A flag with the same globalId already exists within tolerance.");return}}let l=this._addFlagGraphic(e,t,r);if(!l){n("warn",this,"Unable to add flag graphic.");return}s.spatialProperties.flagGraphic=l,c?.add(s)}async _generateFlagInfo(e,t){let{traceLocationType:r,utilityNetwork:c}=this,o=e.getGlobalId()??"",i=e.geometry?.type,s=await this._generateItemTitle(e);if(i==="point"||i==="polygon"){let a=c?.getTerminalConfiguration(e),l=a?a.terminals[0].id:1;return{traceLocation:new k({type:r,isFilterBarrier:!1,globalId:o,terminalId:l}),flagProperties:{title:s,expanded:!1,terminalConfiguration:a??void 0,selectedTerminals:a?new Set([l]):void 0},spatialProperties:{mapPoint:t,mapGraphic:e}}}else if(i==="polyline"){let a=this._calculatePercentAlong(e.geometry,t);return{traceLocation:new k({type:r,isFilterBarrier:!1,globalId:o,percentAlong:a}),flagProperties:{title:s,expanded:!1},spatialProperties:{mapPoint:t,mapGraphic:e}}}else if(!i){let a=x(e.layer)?e.layer.parent:e.layer,l=a&&this._edgeSourceLayerIds.includes(a.layerId),h=c?.getTerminalConfiguration(e),p=h?h.terminals[0].id:l?-1:1,u=l?.5:-1;return{traceLocation:new k({type:r,isFilterBarrier:!1,globalId:o,terminalId:p,percentAlong:u}),flagProperties:{title:s,expanded:!1,terminalConfiguration:h??void 0,selectedTerminals:h?new Set([p]):void 0},spatialProperties:{mapPoint:t,mapGraphic:e}}}return null}async _generateItemTitle(e){let{messages:t}=this,r=(w(e.layer),e.layer);return("getFeatureTitle"in r?await r.getFeatureTitle(e):null)||e?.getObjectId()?.toString()||t.labels.unknown}_addFlagGraphic(e,t,r){let c=e.geometry?.type==="point"?e.geometry:t,o=this._createFlagSymbol(),i=new G({geometry:c,symbol:o,attributes:e.attributes});return r.graphics.add(i),i}_createFlagSymbol(){let{traceLocationType:e}=this,t=[244,21,21,.6],r=[21,244,21,.6];return e==="stopping-point"?new T({color:t,style:"x",size:12,outline:{color:t,width:2}}):e==="barrier"?new T({color:t,style:"square",size:12,outline:{color:t,width:0}}):new T({color:r,style:"circle",size:12,outline:{color:r,width:0}})}_handleClearButtonClick(){let{view:e,traceLocations:t}=this;t?.forEach(r=>{r.spatialProperties.flagGraphic&&e&&e.graphics.remove(r.spatialProperties.flagGraphic)}),t?.removeAll()}renderAddLocationBlock(){let{traceLocationType:e,messages:t,traceLocations:r,view:c}=this,o=e==="starting-point"?t.types.startingPoint:e==="barrier"?t.types.barrier:t.types.stoppingPoint,i=o.heading,s=o.description,a=o.buttonText;return m`<calcite-block .heading=${i} .label=${i} expanded .description=${s}>${r?.length?m`<calcite-button class="clear-button" slot=actions-end appearance=transparent .label=${t.buttons.clear} @click=${()=>this._handleClearButtonClick()}>${t.buttons.clear}</calcite-button>`:null}<arcgis-utility-network-trace-location-list .traceLocations=${r} .traceLocationType=${e} .view=${c}></arcgis-utility-network-trace-location-list><div class="button-container"><calcite-button .loading=${this.isSelectWaiting} class="add-location-button" icon-start=select appearance=outline .label=${a} @click=${()=>this._handleAddButtonClick()}>${a}</calcite-button></div></calcite-block>`}render(){return m`<div class="root">${this.renderAddLocationBlock()}</div>`}};v("arcgis-utility-network-trace-location",_);return _},"geometry/operators/cutOperator","geometry/operators/lengthOperator","geometry/operators/projectOperator","geometry/Polyline","geometry/SpatialReference","Graphic","rest/networks/support/TraceLocation","symbols/SimpleMarkerSymbol",a)
@@ -1,2 +0,0 @@
1
- /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import j from"./XFLYIMEH.js";import i from"./BVV442IW.js";import h from"./NKR3PQHN.js";import{a as C}from"./J6UG5EF7.js";import g from"./5MHPKAFK.js";import"./PC4PAQXQ.js";import"./TFUFDVQ6.js";import f from"./5CJ44XUV.js";import{a as D}from"./SVVJHTPA.js";import e from"./3JMJAUSY.js";import d from"./RO4TU5R3.js";import{g as V}from"./55IJQTCC.js";import"./7DOI3267.js";import a from"./O5TDDX7K.js";import{b}from"./EHZW6UXL.js";import{M as w,N as v,O as I,P as F,R as c,S as T,U as k,a as x,b as n,x as _}from"./MDRC374Z.js";import"./3TTFCHAA.js";export default $arcgis.t(([j,{substitute:h,formatNumber:$},{watch:u},{stripHTML:A},L,{renderingSanitizer:P},{initializeProjection:K},,,,N,,,{d:E},{a:O,d:B,e:R}])=>{var G=x`:host{display:flex;overflow:hidden;flex:1 1 auto}.root{--calcite-color-background: var(--calcite-color-foreground-1);display:flex;overflow:hidden;flex:1 1 auto;flex-direction:column}.root img{image-orientation:from-image}.flow-item-collapsed{--calcite-flow-item-header-border-block-end: none}.container{display:flex;flex:1 1 auto;background-color:var(--calcite-color-foreground-1)}.container calcite-list{width:100%}.container:not(:empty){padding:var(--arcgis-internal-padding-md, var(--calcite-spacing-md))}.root .arcgis-feature,.root .arcgis-feature-relationship,.root .arcgis-feature-utility-network-associations{background-color:transparent}.heading{word-break:break-word;word-wrap:break-word}.header,.footer{display:flex;align-items:center;justify-content:flex-end;background-color:var(--calcite-color-foreground-1)}.footer{flex:1}.pagination-text{padding-inline:var(--calcite-spacing-sm);color:var(--calcite-color-text-3);font-size:var(--calcite-font-size-sm)}.loader{align-self:center;padding-inline:var(--calcite-spacing-lg)}.pagination-action-bar{flex:1}.pagination-menu-button{padding-inline:var(--calcite-spacing-xxs);border-inline-start:var(--calcite-border-width-sm) solid var(--calcite-color-border-3)}.icon{display:inline-block;flex:0 0 var(--calcite-spacing-lg);width:var(--calcite-spacing-lg);height:var(--calcite-spacing-lg)}.action-image{flex:0 0 var(--calcite-spacing-lg);background-position:50% 50%;background-repeat:no-repeat;background-size:contain;width:var(--calcite-spacing-lg);height:var(--calcite-spacing-lg)}.header{border-block-end:var(--calcite-border-width-sm) solid var(--calcite-color-border-3)}.content-feature{--calcite-flow-item-footer-padding: 0}.feature-menu-observer{position:relative;bottom:var(--calcite-spacing-xxl);z-index:2;text-align:center}.action-exit{transform:scaleX(-1)}`;function W(d){switch(d?.type){case"point":return d;case"extent":return d.center;case"polygon":return d.centroid;case"multipoint":case"polyline":return d.extent?.center;default:return null}}var M=O.clone();function X(d){return d?.declaredClass.startsWith("esri.layers.")??!1}var J=N(j),y=class extends I{constructor(){super(...arguments),this._fetchFeaturesController=null,this._featureMenuIntersectionObserverCallback=([e])=>{e?.isIntersecting&&this.viewModel.featurePage!=null&&this.viewModel.featurePage++},this._featureMenuIntersectionObserver=new IntersectionObserver(this._featureMenuIntersectionObserverCallback,{root:window.document}),this._featureMenuIntersectionObserverNode=null,this._rootFlowItemNode=w(),this._featureMenuViewportNode=w(),this._actionBarMenuNode=w(),this._flowContainerNode=w(),this.messages=D(),this._selectedFeatureComponent=w(),this._cancelOpenRelatedFeature=()=>{let{_openRelatedFeatureAbortController:e}=this;e&&e.abort(),this._openRelatedFeatureAbortController=null},this._openRelatedFeatureAbortController=null,this.flowItems=new L,this.viewModel=J(this),this.actions=this.viewModel.actions,this.active=this.viewModel.active,this.autoDestroyDisabled=!1,this.collapsed=!1,this.content=this.viewModel.content,this.defaultPopupTemplateEnabled=this.viewModel.defaultPopupTemplateEnabled,this.featureCount=this.viewModel.featureCount,this.featureMenuOpen=this.viewModel.featureMenuOpen,this.featureMenuTitle=this.viewModel.featureMenuTitle,this.featureNavigationTop=!1,this.features=this.viewModel.features,this.featuresPerPage=this.viewModel.featuresPerPage,this.featureViewModelAbilities=this.viewModel.featureViewModelAbilities,this.goToOverride=this.viewModel.goToOverride,this.headerActions=new L,this.heading=this.viewModel.title,this.headingLevel=2,this.hideActionBar=!1,this.hideCloseButton=!1,this.hideFeatureMenuHeading=!1,this.hideFeatureNavigation=!1,this.hideFeatureListLayerTitle=!1,this.hideHeading=!1,this.hideSpinner=!1,this.hideContent=!1,this.hideExpressionContent=!1,this.hideLastEditedInfo=!1,this.highlightDisabled=this.viewModel.highlightEnabled,this.includeDefaultActionsDisabled=this.viewModel.includeDefaultActions,this.initialDisplayMode=this.viewModel.initialDisplayMode,this.location=this.viewModel.location,this.map=this.viewModel.map,this.open=this.viewModel.visible,this.promises=this.viewModel.promises,this.responsiveActionsEnabled=!1,this.selectedFeature=this.viewModel.selectedFeature,this.selectedFeatureIndex=this.viewModel.selectedFeatureIndex,this.showCollapseButton=!1,this.spatialReference=this.viewModel.spatialReference,this.state=this.viewModel.state,this.timeZone=this.viewModel.timeZone,this.updateLocationEnabled=this.viewModel.updateLocationEnabled,this.view=this.viewModel.view,this.arcgisPropertyChange=V()("active","collapsed","featureCount","featureMenuOpen","features","promises","selectedDrillInFeature","selectedFeature","selectedFeatureComponent","selectedFeatureIndex","state","open"),this.arcgisReady=_(),this.arcgisClose=_(),this.arcgisTriggerAction=_()}static{this.properties={_openRelatedFeatureAbortController:16,flowItems:16,_hideActionText:16,_featureNavigationVisible:16,_isCollapsed:16,_collapseEnabled:16,viewModel:0,actions:0,active:0,autoDestroyDisabled:5,collapsed:5,content:1,defaultPopupTemplateEnabled:5,featureCount:9,featureMenuOpen:5,featureMenuTitle:1,featureNavigationTop:5,features:0,featuresPerPage:9,featureViewModelAbilities:0,goToOverride:0,headerActions:0,heading:1,headingLevel:9,hideActionBar:5,hideCloseButton:5,hideFeatureMenuHeading:5,hideFeatureNavigation:5,hideFeatureListLayerTitle:5,hideHeading:5,hideSpinner:5,hideContent:5,chartAnimationDisabled:5,hideAttachmentsContent:5,hideCustomContent:5,hideExpressionContent:5,hideFieldsContent:5,hideMediaContent:5,hideRelationshipContent:5,hideTextContent:5,hideUtilityNetworkContent:5,hideLastEditedInfo:5,highlightDisabled:5,icon:1,includeDefaultActionsDisabled:5,initialDisplayMode:1,label:1,location:0,map:0,messageOverrides:0,open:5,referenceElement:1,promises:0,responsiveActionsEnabled:5,selectedDrillInFeature:32,selectedFeature:0,selectedFeatureComponent:32,selectedFeatureIndex:9,showCollapseButton:5,spatialReference:0,state:32,timeZone:1,updateLocationEnabled:5,view:0}}static{this.styles=G}get _hideActionText(){if(!this.responsiveActionsEnabled)return!1;let e=this.viewModel.view?.widthBreakpoint;return e==="xsmall"||e==="small"||e==="medium"}get _featureNavigationVisible(){return this.viewModel.active&&this.viewModel.featureCount>1&&!!this.viewModel.selectedFeature&&!this.hideFeatureNavigation}get _isCollapsed(){return this._collapseEnabled&&this.collapsed}get _collapseEnabled(){return this.showCollapseButton&&(this.initialDisplayMode==="list"||!!(this.heading||this.viewModel.selectedFeatureViewModel?.title)&&!!(this.content||this.viewModel.selectedFeatureViewModel?.content))}get chartAnimationDisabled(){return!(this.viewModel.featureViewModelAbilities?.chartAnimation??!0)}set chartAnimationDisabled(e){this.viewModel.featureViewModelAbilities??={},this.viewModel.featureViewModelAbilities.chartAnimation=!e}get hideAttachmentsContent(){return!(this.viewModel.featureViewModelAbilities?.attachmentsContent??!0)}set hideAttachmentsContent(e){this.viewModel.featureViewModelAbilities??={},this.viewModel.featureViewModelAbilities.attachmentsContent=!e}get hideCustomContent(){return!(this.viewModel.featureViewModelAbilities?.customContent??!0)}set hideCustomContent(e){this.viewModel.featureViewModelAbilities??={},this.viewModel.featureViewModelAbilities.customContent=!e}get hideFieldsContent(){return!(this.viewModel.featureViewModelAbilities?.fieldsContent??!0)}set hideFieldsContent(e){this.viewModel.featureViewModelAbilities??={},this.viewModel.featureViewModelAbilities.fieldsContent=!e}get hideMediaContent(){return!(this.viewModel.featureViewModelAbilities?.mediaContent??!0)}set hideMediaContent(e){this.viewModel.featureViewModelAbilities??={},this.viewModel.featureViewModelAbilities.mediaContent=!e}get hideRelationshipContent(){return!(this.viewModel.featureViewModelAbilities?.relationshipContent??!0)}set hideRelationshipContent(e){this.viewModel.featureViewModelAbilities??={},this.viewModel.featureViewModelAbilities.relationshipContent=!e}get hideTextContent(){return!(this.viewModel.featureViewModelAbilities?.textContent??!0)}set hideTextContent(e){this.viewModel.featureViewModelAbilities??={},this.viewModel.featureViewModelAbilities.textContent=!e}get hideUtilityNetworkContent(){return!(this.viewModel.featureViewModelAbilities?.utilityNetworkAssociationsContent??!0)}set hideUtilityNetworkContent(e){this.viewModel.featureViewModelAbilities??={},this.viewModel.featureViewModelAbilities.utilityNetworkAssociationsContent=!e}get selectedDrillInFeature(){let e=Array.from(this.flowItems).at(-1);return e&&"graphic"in e?e.graphic??null:null}get selectedFeatureComponent(){return this._selectedFeatureComponent.value??null}async clear(){return this.viewModel.clear()}async close(){this.open=!1}async destroy(){await this.manager.destroy(),await this._destroySpinner(this.referenceElement),this._cancelOpenRelatedFeature(),this._removeFlowItems(),this._unobserveFeatureMenuObserver(),this._cancelFetchingFeatures(),this._featureMenuIntersectionObserver?.disconnect()}async fetchFeatures(e,t){this._cancelFetchingFeatures();let i=new AbortController,{signal:a}=i;if(this._fetchFeaturesController=i,!e&&this.view&&this.location&&(await K(this.location.spatialReference,this.view.spatialReference,null,{signal:a}),e=this.view.toScreen(this.location)??void 0),!e)return;let s=await this.viewModel.fetchFeatures(e,{signal:a,...t});this.location=s.location,this.promises=s.pendingFeatures}async next(){return this.viewModel.next()}async previous(){return this.viewModel.previous()}async setFocus(){this._flowContainerNode.value?.setFocus()}async triggerAction(e){if(!e.disabled)return e?.type==="toggle"&&(e.value=!e.value),await R(e,this.viewModel)}loaded(){this.manager.onLifecycle(()=>[u(()=>this.viewModel?.selectedFeatureIndex,(e,t)=>this._selectedFeatureIndexUpdated(e,t)),u(()=>this.viewModel?.view,()=>this._viewChange()),u(()=>this._spinnerEl?.screenLocation,()=>this._closeOpenActionMenu()),u(()=>this.selectedFeatureComponent?.viewModel,()=>this._removeFlowItems()),u(()=>this.viewModel?.featureViewModels,()=>this._featureMenuViewportScrollTop()),u(()=>[this.flowItems?.length,this.featureMenuOpen],()=>{this.setFocus()}),u(()=>this.referenceElement,(e,t)=>{this._destroySpinner(t),this._createSpinner()},{initial:!0}),u(()=>[this.hideSpinner,this.viewModel?.view,this.viewModel?.location,this.viewModel?.waitingForResult,this.viewModel?.view],()=>void this._createSpinner(),{initial:!0})])}_cancelFetchingFeatures(){this._fetchFeaturesController?.abort(),this._fetchFeaturesController=null}_handleClose(){this.close(),this.arcgisClose.emit()}_groupResultsByLayer(){let{featureViewModels:e}=this.viewModel,t=new Map;return e.forEach(i=>{let a=i?.graphic;if(!a)return;let s=E(a),o=X(s)?s:null,l=t.get(o)??[];t.set(o,[...l,i])}),t}_handleCollapseToggle(){this.collapsed=!this.collapsed}async _openRelatedFeature(e){this._cancelOpenRelatedFeature();let t=new AbortController;this._openRelatedFeatureAbortController=t,await e.updateGeometry();let i=e.graphic,a=i?.geometry;if(a==null||i==null)return;this._removeFlowItems(),await this.viewModel.zoomTo({target:a});let s=W(a);s!=null&&(this.location=s),this.features=[i],this.open=!0,await this.setFocus(),this._openRelatedFeatureAbortController===t&&(this._openRelatedFeatureAbortController=null)}_handlePaginationMenuButton(){this._updateFeatureMenu()}_openFeatureMenu(){this._updateFeatureMenu(!0)}_closeFeatureMenu(){this._updateFeatureMenu(!1)}_updateFeatureMenu(e=!this.featureMenuOpen){this.featureMenuOpen=e}_previousFeature(){this.viewModel.previous()}_nextFeature(){this.viewModel.next()}_handleFeatureBack(){this.initialDisplayMode==="list"?(this.selectedFeatureIndex=-1,this.setFocus()):this._openFeatureMenu()}_handleFeatureMenuBack(){this.initialDisplayMode==="list"?(this.selectedFeatureIndex=-1,this.setFocus()):this.featureMenuOpen&&this._closeFeatureMenu()}_setActiveFeature(e){let{viewModel:t}=this;t.activeFeature=t.features?.[e]||null}_removeActiveFeature(){this.viewModel.activeFeature=null}_selectFeature(e){this.viewModel.selectedFeatureIndex=e,this.initialDisplayMode==="feature"?this._handleFeatureMenuBack():this.setFocus()}_unobserveFeatureMenuObserver(){this._featureMenuIntersectionObserverNode&&this._featureMenuIntersectionObserver.unobserve(this._featureMenuIntersectionObserverNode)}_featureMenuIntersectionObserverCreated(e){this._unobserveFeatureMenuObserver(),e&&this._featureMenuIntersectionObserver.observe(e),this._featureMenuIntersectionObserverNode=e}_getActionTitle(e){let{messages:t,selectedFeature:i}=this,{id:a}=e,s=i?.attributes,o=e.title??"",l=a==="zoom-to-feature"?h(o,{messages:t}):a==="remove-selected-feature"?h(o,{messages:t}):a==="zoom-to-clustered-features"?h(o,{messages:t}):a==="browse-clustered-features"?h(o,{messages:t}):e.title;return l&&s?h(l,s):l??""}_onMainKeydown(e){let{key:t}=e;t==="ArrowLeft"&&(e.stopPropagation(),this._handleFeatureMenuBack(),this.previous(),this.setFocus()),t==="ArrowRight"&&(e.stopPropagation(),this._handleFeatureMenuBack(),this.next(),this.setFocus())}_featureMenuViewportScrollTop(){this._featureMenuViewportNode&&this._featureMenuViewportNode.value?.scrollContentTo({top:0})}_selectedFeatureIndexUpdated(e,t){let{featureCount:i,waitingForResult:a}=this.viewModel;a||!i||e===t||e===-1||(this._removeFlowItems(),this._rootFlowItemNode.value?.scrollContentTo({top:0}))}_triggerAction(e){this.triggerAction(e),this.arcgisTriggerAction.emit({action:e})}_viewChange(){this.viewModel.clear(),this.open=!1}_closeOpenActionMenu(){let{_actionBarMenuNode:e}=this;e.value&&(e.value.menuOpen=!1)}_removeFlowItems(){this.flowItems?.destroyAll()}_getDrillInFlowItemDescription(e){switch(e.flowType){case"feature":case"feature-association":case"feature-utility-network-associations":case"feature-utility-network-association-type":return e.description;case"feature-relationship":return e.allItemsDescription}}_handleDrillInBackClick(){this.flowItems?.pop()?.destroy()}_getHeading(){let{hideHeading:e}=this,{title:t,selectedFeatureViewModel:i}=this.viewModel;return i&&!e?i?.state==="error"?this.messages?.errorMessage??"":i?.title||"":!e&&t?t:""}async _destroySpinner(e){e?.manager?.component?.extraContent?.remove(this._spinnerEl)}async _createSpinner(){let e=this.referenceElement;e&&(await this._destroySpinner(e),this._spinnerEl=T(n`<arcgis-spinner auto-destroy-disabled .label=${this.messages.loading??""} .trackLocation=${!this.hideSpinner&&this.viewModel?.waitingForResult} .location=${this.viewModel?.location??void 0} .view=${this.viewModel?.view??void 0}></arcgis-spinner>`),e.manager?.component?.extraContent?.add(this._spinnerEl))}render(){return n`<div class="root" @keydown=${this._onMainKeydown}>${this._renderHeader()}${this._renderContentContainer()}</div>`}_renderFeatureNavigation(){return[this._renderPagination(),this.initialDisplayMode==="list"?this._renderFeaturePaginationText():this._renderFeatureMenuButton()]}_renderHeader(){return this.featureNavigationTop&&this._featureNavigationVisible?n`<div class="header">${this._renderFeatureNavigation()}</div>`:null}_renderFooter(){return!this.featureNavigationTop&&this._featureNavigationVisible?n`<div class="footer" slot=footer>${this._renderFeatureNavigation()}</div>`:null}_renderFeaturePaginationText(){let{messages:e,viewModel:t}=this,{featureCount:i,selectedFeatureIndex:a}=t;return n`<div class="pagination-text">${h(e.pageText??"",{index:$(a+1),total:$(i)})}</div>`}_renderFeatureMenuButton(){let{messages:e,viewModel:t}=this,{featureCount:i,selectedFeatureIndex:a,pendingPromisesCount:s}=t;return n`<calcite-action class="pagination-menu-button" icon=list .label=${e.selectFeature} .loading=${s>0} @click=${this._handlePaginationMenuButton} .text=${h(e.pageText??"",{index:$(a+1),total:$(i)})} text-enabled title=${e.selectFeature??c}></calcite-action>`}_renderPagination(){let{previous:e,next:t}=this.messages;return n`<calcite-action-bar class="pagination-action-bar" expand-disabled layout=horizontal overflow-actions-disabled scale=s><calcite-action-group scale=s><calcite-action class="pagination-previous" icon=chevron-left icon-flip-rtl .label=${e??""} @click=${this._previousFeature} .text=${e??""} title=${e??""??c}></calcite-action><calcite-action icon=chevron-right icon-flip-rtl .label=${t??""} @click=${this._nextFeature} .text=${t??""} title=${t??""??c}></calcite-action></calcite-action-group></calcite-action-bar>`}_renderFeatureMenuItem(e){let{initialDisplayMode:t}=this,{selectedFeatureViewModel:i,featureViewModels:a}=this.viewModel,s=e===i,o=a.indexOf(e);return n`<calcite-list-item @blur=${this._removeActiveFeature} @focus=${()=>this._setActiveFeature(o)} @mouseleave=${this._removeActiveFeature} @mouseover=${()=>this._setActiveFeature(o)} .selected=${s} @calciteListItemSelect=${()=>this._selectFeature(o)}><span .innerHTML=${(P.sanitize(e.title)||this.messages.untitled)??""} slot=content></span>${t==="list"?n`<calcite-icon flip-rtl icon=chevron-right scale=s slot=content-end></calcite-icon>`:null}</calcite-list-item>`}_renderFeatureMenu(){let{messages:e,viewModel:t}=this,i=this._groupResultsByLayer(),a=this.initialDisplayMode==="list"?"none":"single";return t.featureViewModels.length?n`<calcite-list display-mode=flat .label=${e?.featuresList??""} selection-appearance=icon .selectionMode=${a}>${Array.from(i.keys(),s=>{let o=i.get(s)?.map(r=>this._renderFeatureMenuItem(r)),l=s?s.title??this.messages.untitled:null;return!this.hideFeatureListLayerTitle&&l!==null?C(s??"map-graphics",n`<calcite-list-item-group .heading=${l}>${o}</calcite-list-item-group>`):o})}</calcite-list>`:null}_renderHeaderAction(e){let t=e.title||"";return e.visible?n`<calcite-action .active=${e.type==="toggle"?e.value:!1} .disabled=${e.disabled} .icon=${e.icon??void 0} .indicator=${e.active} .loading=${e.active} @click=${()=>this._triggerAction(e)} slot=header-actions-end .text=${t} title=${t??c}></calcite-action>`:null}_renderHeaderActions(){return this.headerActions.map(e=>this._renderHeaderAction(e)).toArray()}_renderContentFeature(){let{headingLevel:e,hideCloseButton:t,_isCollapsed:i,_collapseEnabled:a,featureNavigationTop:s,flowItems:o,initialDisplayMode:l,selectedFeature:r,featureMenuOpen:p}=this,{active:g}=this.viewModel,f=this._getHeading();if(l==="list"&&!r)return null;let m=o.length===0&&(l==="list"?!!r:!p);return n`<calcite-flow-item class=${F(b({"content-feature":!0,"flow-item-collapsed":i}))} .closable=${!t} .closed=${!g} .collapsed=${i} .collapseDirection=${s?"down":"up"} .collapsible=${a} .headingLevel=${e} .selected=${m} @calciteFlowItemBack=${this._handleFeatureBack} .loading=${!!this._openRelatedFeatureAbortController} @calciteFlowItemClose=${this._handleClose} @calciteFlowItemToggle=${this._handleCollapseToggle} .heading=${A(f)} ${v(this._rootFlowItemNode)}>${this._renderHeaderActions()}${this._renderActionBar()}<div class=${F(b("container","content-container"))}>${this._renderContent()}</div>${this._renderFooter()}</calcite-flow-item>`}_renderFeatureMenuContainer(){let{viewModel:e,hideCloseButton:t,featureMenuTitle:i,messages:a,initialDisplayMode:s,featureMenuOpen:o,selectedFeature:l,_collapseEnabled:r,_isCollapsed:p,featureNavigationTop:g,headingLevel:f}=this,{active:m,featureViewModels:H,pendingPromisesCount:S}=e,z=i??a.selectFeature;if(s==="feature"&&!o)return null;let U=s==="list"?!l:o;return n`<calcite-flow-item class=${F(b({"flow-item-collapsed":p}))} .closable=${s==="list"&&!t} .closed=${!m} .collapsed=${s==="list"&&p} .collapseDirection=${g?"down":"up"} .collapsible=${s==="list"&&r} .description=${this.hideFeatureMenuHeading?void 0:h(a.total??"",{total:H.length})} .heading=${this.hideFeatureMenuHeading?void 0:z} .headingLevel=${f} .loading=${e.waitingForContents} .selected=${U} @calciteFlowItemBack=${Z=>{Z.preventDefault(),this._handleFeatureMenuBack()}} @calciteFlowItemClose=${this._handleClose} @calciteFlowItemToggle=${this._handleCollapseToggle} ${v(this._featureMenuViewportNode)}>${s==="list"?this._renderHeaderActions():null}${S>0?n`<calcite-loader class="loader" inline .label=${a.loading??""} slot=header-actions-end></calcite-loader>`:null}<div class="container">${this._renderFeatureMenu()}</div><div class="feature-menu-observer" ${v(this._featureMenuIntersectionObserverCreated)}></div>${s==="feature"?n`<calcite-button appearance=transparent @click=${this._handleFeatureMenuBack} slot=footer-start width=full>${a.back}</calcite-button>`:null}</calcite-flow-item>`}_renderFlowItem(e,t){let{messages:i,hideCloseButton:a,active:s}=this,o="graphic"in e&&"isFeatureFromTable"in e&&!e.isFeatureFromTable,l=e.flowType==="feature-association",r=i.returnToInitialFeature??"",p=i?.selectFeature,g=this._getActionTitle(M),f=!this.hideActionBar&&l&&o;return n`<calcite-flow-item .closable=${!a} .closed=${!s} .description=${A(this._getDrillInFlowItemDescription(e)??"")} .heading=${this.hideHeading?void 0:A(e.heading??"")} .selected=${t} @calciteFlowItemBack=${m=>{m.preventDefault(),this._handleDrillInBackClick()}} .loading=${!!this._openRelatedFeatureAbortController} @calciteFlowItemClose=${this._handleClose}><calcite-action class="action-exit" icon=move-up @click=${this._removeFlowItems} slot=header-actions-start .text=${r??""} title=${r??""??c}></calcite-action>${o?n`<calcite-action icon=zoom-to-object @click=${()=>this._openRelatedFeature(e)} slot=header-actions-end .text=${p??""} title=${p??c}></calcite-action>`:null}${f?n`<calcite-action-bar expand-disabled expanded scale=s slot=action-bar><calcite-action-group overlay-positioning=fixed scale=s><calcite-action .disabled=${M.disabled} .icon=${M.icon??void 0} .loading=${M.active} scale=s text-enabled .text=${g} title=${g??c} @click=${()=>B(this.viewModel,e)}></calcite-action></calcite-action-group></calcite-action-bar>`:null}<div class="container">${e}</div></calcite-flow-item>`}_renderContentContainer(){let e=this.flowItems?.toArray(),t=e?.map((a,s)=>this._renderFlowItem(a,this.initialDisplayMode==="list"||!this.featureMenuOpen&&s===e.length-1)),i=this.initialDisplayMode==="list"?[this._renderFeatureMenuContainer(),this._renderContentFeature(),t]:[this._renderContentFeature(),t,this._renderFeatureMenuContainer()];return n`<calcite-flow ${v(this._flowContainerNode)}>${i}</calcite-flow>`}_renderActionBar(){let e=this.viewModel.selectedFeatureViewModel?.isFeatureFromTable&&!this.location?this.viewModel.allActions.filter(t=>t.id!==M.id):this.viewModel.allActions;return!this._isCollapsed&&!this.hideActionBar&&e.length?n`<calcite-action-bar expand-disabled .expanded=${!this._hideActionText} scale=s slot=action-bar><calcite-action-group overlay-positioning=fixed scale=s ${v(this._actionBarMenuNode)}>${this._renderActions()}</calcite-action-group></calcite-action-bar>`:null}_renderActions(){return this.viewModel.allActions.toArray().map(e=>{let t=this._getActionTitle(e);return n`<calcite-action .active=${e.type==="toggle"?e.value:!1} .disabled=${e.disabled} .icon=${e.icon??void 0} .loading=${e.active} scale=s .textEnabled=${!this._hideActionText} .text=${t??""} title=${t??c} .hidden=${!e.visible} @click=${()=>this._triggerAction(e)}></calcite-action>`})}_renderContent(){let{content:e,selectedFeatureViewModel:t}=this.viewModel;return t?C(t,n`<arcgis-feature .autoDestroyDisabled=${this.autoDestroyDisabled} .chartAnimationDisabled=${this.chartAnimationDisabled} .defaultPopupTemplateEnabled=${this.defaultPopupTemplateEnabled} .flowItems=${this.flowItems} .graphic=${t.graphic} .headingLevel=${this.headingLevel+1} .hideAttachmentsContent=${this.hideAttachmentsContent} .hideContent=${this.hideContent} .hideCustomContent=${this.hideCustomContent} .hideExpressionContent=${this.hideExpressionContent} .hideFieldsContent=${this.hideFieldsContent} hide-heading .hideLastEditedInfo=${this.hideLastEditedInfo} .hideMediaContent=${this.hideMediaContent} .hideTextContent=${this.hideTextContent} .location=${this.location} .map=${this.map} .referenceElement=${this.referenceElement} .showRelationshipContent=${!this.hideRelationshipContent} .showUtilityNetworkContent=${!this.hideUtilityNetworkContent} .spatialReference=${this.spatialReference} .timeZone=${this.timeZone} ${v(this._selectedFeatureComponent)}></arcgis-feature>`):typeof e=="string"?C(e,n`<div .innerHTML=${P.sanitize(e)??""}></div>`):e??null}};k("arcgis-features",y);return y},"widgets/Features/FeaturesViewModel","intl","core/reactiveUtils","applications/Components/stringUtils","core/Collection","applications/Components/sanitizerUtils","applications/Components/featureUtils",a,d,e,f,g,h,i,j)