/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
import b from"./EEUNU5QU.js";import a from"./ZHZFKZA7.js";import{b as f,c as p,d as c}from"./BQLG62QR.js";import{g as v,h as T}from"./UE4FNMRR.js";import{K as m}from"./4BNI5KJQ.js";export default $arcgis.t(([{getDeclaredPixelMembers:$},{G:w,f:M,g:F,h:P,i:k,j:A,n:b},{k:I,l:L,m:V,o:C,p:D}])=>{async function K(e){let{apiVersion:i,bundles:t,hiddenApiItems:n}=e.toEditorProfileDefinition(),o=await j(e.dictionaryVariables.filter(w));return{apiVersion:i,bundles:t,variables:o,hiddenApiItems:n?.map(s=>s.toLowerCase())}}async function j(e,i=f.Variable){return await Promise.all(e.map(async t=>{switch(t.type){case"dictionary":return await q(t,i);case"pixel":return await O(t,i);case"voxel":case"feature":return await B(t,i);default:return _(t,i)}}))}function _(e,i){let{name:t,type:n}=e,o=e.getDescription(),s=i===f.Field?I(t,!1):t;return{name:t,description:o,type:n,completion:{label:t,detail:t,insertText:s,insertTextMode:c.asIs,insertTextFormat:p.PlainText,kind:i,documentation:{kind:"markdown",value:o}}}}async function B(e,i){let t=await e.loadSource(),{name:n}=e,o=e.getDescription(),s={label:n,detail:n,insertText:n,insertTextMode:c.asIs,insertTextFormat:p.PlainText,kind:i},a={name:n,description:o,type:"dictionary",properties:[],completion:s};if(!t)return a;let[r,l]=L(t.fields,o,!0);return a.properties=r,s.documentation={kind:"markdown",value:l},a}async function O(e,i){let t=await e.loadSource(),n=e.toProfileVariableDefinition();if(n.type!=="pixel")throw new Error("Incorrect definition passed to pixel variable");let{name:o}=e,s=e.getDescription(),a={label:o,detail:o,insertText:o,insertTextMode:c.asIs,insertTextFormat:p.PlainText,kind:i},r={name:o,description:s,type:"dictionary",properties:[],completion:a};if(!t||!n.definition)return r;let l=await $(t),[d,u]=V(l,s);return r.properties=d,a.documentation={kind:"markdown",value:u},r}async function q(e,i){let{name:t,dictionaryVariables:n}=e,o=e.getDescription(),s=n.reduce((a,r)=>{a!==""&&(a+=`  
  
`),a+=`**${r.name}**  
${r.type}`;let l=r.getDescription();return l&&(a+=`  
${l}`),a},o);return{name:t,description:o,type:"dictionary",properties:await j(n.filter(w),f.Field),completion:{label:t,detail:t,insertText:t,insertTextMode:c.asIs,insertTextFormat:p.PlainText,kind:i,documentation:{kind:"markdown",value:s}}}}async function h(e="en"){let i=E.get(e);if(i)return i;if(!v.has(e))return await h("en");try{let t=await fetch(m(`./assets/arcade-language/profiles/arcade-profiles.t9n.${e}.json`));return t.ok?z(e,await t.json()):e==="en"?null:await h("en")}catch{return null}}var E=new Map;function z(e,i){let t=new Map;return i.forEach(n=>{t.set(n.id,n)}),E.set(e,t),t}async function G(e,i="en"){return(await h(i))?.get(e)??null}function H(e){return!!e&&typeof e=="object"&&"additionalVariables"in e&&Array.isArray(e.additionalVariables)}function J(e){return e?.map(g)}function g(e){switch(e.type){case"dictionary":return{...e,type:e.type,properties:J(e.properties)};case"array":return{...e,type:e.type,elementType:{type:"number",name:"number"}};default:return{...e,type:e.type}}}async function N(e,i="en"){if(!b(e))return;let t=await G(e.id,i);if(!t)return;let n=e.definitions,o=new Map(Object.entries(n).map(([a,r])=>[a.toLowerCase(),r])),s={bundles:[...t.bundles],variables:[],hiddenApiItems:e.hiddenApiItems?.map(a=>a.toLowerCase())};return t.variables.forEach(a=>{if(e.disabledVariables?.includes(a.name))return;let r=o.get(a.name.toLowerCase());switch(a.type){case"dictionary":return s.variables.push(g({...a,type:a.type,properties:Array.isArray(r)?[...r]:a.properties}));case"feature":return M(r)?s.variables.push({...a,type:"feature",definition:r}):void 0;case"pixel":return P(r)?s.variables.push({...a,type:a.type,definition:r}):void 0;case"voxel":return F(r)?s.variables.push({...a,type:a.type,definition:r}):void 0;case"featureSet":return k(r)?s.variables.push({...a,type:a.type,definition:r}):void 0;case"featureSetCollection":return A(r)?s.variables.push({...a,type:a.type,definition:r}):void 0;default:return s.variables.push(g(a))}}),H(e)&&s.variables.push(...e.additionalVariables??[]),s}var Q=["catalog-footprint","catalog","csv","feature","geojson","knowledge-graph-sublayer","oriented-imagery","subtype-group","subtype-sublayer","wfs"];function R(e){return!!e&&typeof e=="object"&&"type"in e&&typeof e.type=="string"&&Q.includes(e.type)}var U={filterFsCollectionLayersFromMap:e=>R(e)},x=class extends D{#e=new Map;constructor(){super("arcade",{apiPath:"./assets/arcade-language/api",apiPrefix:"arcade-api.t9n."})}async setProfileForModel(i,t,n={locale:"en"}){let o=this._getApiKey(i),s=(this.#e.get(o)||Promise.resolve()).then(async()=>{let r=t,l=b(r)?await N(r,n.locale):r,d=await T(n.locale,m("./assets/editor-profile/t9n"),"messages.");if(!d)throw new Error(`Failed to load the language bundle for ${n.locale}`);this.disposeForModel(i);let u=new C(l,d,n.locale,U);this._modelToProfileMap.set(o,u);let S=await K(u);this.updateApiContextForModel(i,{locale:n.locale,profile:S,snippets:n.snippets})}),a=s.finally(()=>{this.#e.get(o)===a&&this.#e.delete(o)});return this.#e.set(o,a),await s}},y=new x,ae={setProfileForModel:y.setProfileForModel.bind(y),getApiLibraryForModel:y.getApiLibraryForModel.bind(y)};return y},"applications/Components/arcadeEditorUtils",a,b)