/*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.34/esri/copyright.txt for details.
v4.34.7 */
import b from"./O5OTDKLP.js";import a from"./GQ4WKTF7.js";export default $arcgis.t(([,f,b,{isZoomScreenSize:y},{c:w},{e:g}])=>{var s=new f({icon:"magnifying-glass-plus",id:"zoom-to-feature",title:"{messages.zoom}"}),z=new f({icon:"trash",id:"remove-selected-feature",title:"{messages.remove}"}),c=new f({icon:"magnifying-glass-plus",id:"zoom-to-clustered-features",title:"{messages.zoom}"}),E=new b({icon:"table",id:"browse-clustered-features",title:"{messages.browseClusteredFeatures}",value:!1});function j(e){if(e.icon)return e.icon;if(!("image"in e&&e.image)&&!e.className)return"question"}function B(e){return e?{backgroundImage:`url(${e})`}:{}}function C(e){let{selectedFeature:t,location:i,view:r}=e;return r?t??i??null:null}async function F(e,t){let{location:i,selectedFeature:r,view:o,zoomFactor:a}=e;await t?.viewModel?.updateGeometry();let n=t?.graphic,m=n?.geometry?n:C(e);if(!o||!m){let u="zoom-to:invalid-target-or-view: Cannot zoom to location without a target and view.",d=new Error(u);throw console.error(u,{target:m,view:o}),d}let p=o.scale/a,l=n?.geometry??e.selectedFeature?.geometry??i,v=l!=null&&l.type==="point"&&await y(n??r,o);s.active=!0,s.disabled=!0;try{await e.zoomTo({target:{target:m,scale:v?p:void 0}})}catch(u){if(w(u))return;let d="zoom-to:invalid-graphic: Could not zoom to the location of the graphic.",h=new Error(d);throw console.error(d,{graphic:n??r}),h}finally{s.active=!1,s.disabled=!1,v&&e.location!==l&&(e.location=l)}}function T(e){return!!e&&e.isAggregate&&g(e)?.featureReduction?.type==="cluster"}async function S(e,t){let i=await e.whenLayerView(g(t)),r=i.createQuery(),o=t.getObjectId();return r.aggregateIds=o!=null?[o]:[],[i,r]}async function x(e){let{selectedFeature:t,view:i}=e;if(i?.type!=="2d")throw new Error("zoomToCluster:invalid-view: View must be 2d MapView.");if(!t||!T(t))throw new Error("zoomToCluster:invalid-selectedFeature: Selected feature must represent an aggregate/cluster graphic.");let[r,o]=await S(i,t);c.active=!0,c.disabled=!0;let{extent:a}=await r.queryExtent(o);a&&await e.zoomTo({target:a}),c.active=!1,c.disabled=!1}var G=async(e,t)=>{if(!e)throw new Error("trigger-action:missing-arguments: Event has no action");let{disabled:i,id:r}=e;if(!r)throw new Error("trigger-action:invalid-action: action.id is missing");if(i)throw new Error("trigger-action:invalid-action: Action is disabled");if(r===s.id)return await F(t).catch(o=>{if(!w(o))throw o});if(r===c.id)return await x(t);if(r===E.id){t.browseClusterEnabled=!t.browseClusterEnabled,t.featureMenuOpen=t.browseClusterEnabled;return}if(r===z.id){t.visible=!1;let{selectedFeature:o}=t;if(!o)throw new Error("trigger-action:missing-selected-feature: Cannot remove selected feature without a selected feature.");let a=g(o);a?a.remove(o):t.view?.graphics.remove(o)}};return{a:s,b:j,c:B,d:F,e:G}},"intl","support/actions/ActionButton","support/actions/ActionToggle","applications/Components/actionUtils",a,b)