@arcgis/coding-components 5.2.0-next.70 → 5.2.0-next.72
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/LICENSE.md +4 -2
- package/dist/cdn/{L5GMK4WW.js → 43C5J4GE.js} +1 -1
- package/dist/cdn/{WKATTQP5.js → 4KQVV3YD.js} +1 -1
- package/dist/cdn/6IKYN6UN.js +2 -0
- package/dist/cdn/{LMWFFLSQ.js → 6LPNGMDE.js} +1 -1
- package/dist/cdn/{3FFSPR6G.js → ADELNDZO.js} +1 -1
- package/dist/cdn/{XHOIOY7C.js → AGTV2YKX.js} +1 -1
- package/dist/cdn/{VCJOX5C4.js → BN5UJZOU.js} +1 -1
- package/dist/cdn/{GGYZW52W.js → CRHXEUUE.js} +1 -1
- package/dist/cdn/{GCEYNSEX.js → CVKAPGDA.js} +1 -1
- package/dist/cdn/{RTYRFD6M.js → E4CYGXC6.js} +1 -1
- package/dist/cdn/{M52C3KI5.js → FP7M64L5.js} +1 -1
- package/dist/cdn/{TQ6LVLSI.js → JE3AYQH2.js} +4 -4
- package/dist/cdn/{NR5L34UX.js → N5BWDIMZ.js} +1 -1
- package/dist/cdn/{QKGBTIWT.js → O5LFPM4K.js} +1 -1
- package/dist/cdn/{PF3ZBCB7.js → PR7KTMAS.js} +1 -1
- package/dist/cdn/{2TNK3TAC.js → Q6573NF7.js} +1 -1
- package/dist/cdn/{NOFOW72C.js → T7CCNYHK.js} +1 -1
- package/dist/cdn/TOQ2QWTU.js +3 -0
- package/dist/cdn/{75LMVVBN.js → TUB3DPGP.js} +1 -1
- package/dist/cdn/TUQPDQ74.js +2 -0
- package/dist/cdn/{YAYRZ72E.js → VZ6DLSKR.js} +1 -1
- package/dist/cdn/{CPS2Z2V6.js → WYJB4DB6.js} +1 -1
- package/dist/cdn/{BTI2OYTZ.js → ZXHMUT2I.js} +1 -1
- package/dist/cdn/assets/code-editor/sql-expr.worker.js +1 -1
- package/dist/cdn/assets/code-editor/sql-layer.worker.js +2726 -2086
- package/dist/cdn/index.js +1 -1
- package/dist/chunks/language-defaults-base.js +98 -85
- package/dist/chunks/oracle.js +218 -0
- package/dist/chunks/sql-layer-mode.js +59 -51
- package/dist/components/arcgis-arcade-editor/customElement.js +2 -2
- package/dist/components/arcgis-arcade-results/customElement.js +7 -7
- package/dist/components/arcgis-sql-layer-editor/customElement.js +42 -37
- package/dist/docs/api.json +1 -1
- package/dist/docs/docs.json +1 -1
- package/dist/docs/web-types.json +1 -1
- package/package.json +5 -5
- package/dist/cdn/5E3EYAL3.js +0 -3
- package/dist/cdn/BU4MIL63.js +0 -2
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import
|
|
2
|
+
import{b as Se}from"./VYEWIX5W.js";import a from"./STN3LSQR.js";import{a as k,b as Fe,c as W,d as w,e as D}from"./MZMKV7FA.js";import{k as O}from"./BHSILWSL.js";import{b as M,c as E,d as $,e as De}from"./BZWB7A55.js";import{a as Ce}from"./CMRUQ3BN.js";import{M as oe,s as ae,v as A}from"./SMZ3LNZE.js";import{a as h}from"./BFPEJYVB.js";import{ll as B,ul as z}from"./DSQ2DQQL.js";export default $arcgis.t(([Ve,Ae,Oe,K,{getDeclaredVoxelMembers:Ne,getDeclaredPixelMembers:qe},Ue,Re,{A:R,B:g,F:ge,H:G,I:we,a:N,b:ne,c:le,d:pe,e:ce,k:q,l:x,m:he,o:d,p:ue,q:de,r:P,s:U,t:b,u:fe,v:_e,w:me,y:ye,z:be}])=>{var S=s=>s!==void 0,m=s=>s!==null;function Ge(s){switch(s){case"esriFieldTypeOID":return"oid";case"esriFieldTypeSmallInteger":return"small-integer";case"esriFieldTypeInteger":return"integer";case"esriFieldTypeBigInteger":return"big-integer";case"esriFieldTypeSingle":return"single";case"esriFieldTypeDouble":return"double";case"esriFieldTypeDate":return"date";case"esriFieldTypeDateOnly":return"date-only";case"esriFieldTypeTimeOnly":return"time-only";case"esriFieldTypeTimestampOffset":return"timestamp-offset";case"esriFieldTypeGUID":return"guid";case"esriFieldTypeGlobalID":return"global-id";case"esriFieldTypeString":return"string";case"esriFieldTypeGeometry":return"geometry";case"esriFieldTypeBlob":return"blob";case"esriFieldTypeRaster":return"raster";case"esriFieldTypeXML":return"xml";default:return"string"}}function ke(s){return{fields:s.fields.map(e=>({name:e.name,type:Ge(e.type),serverType:e.type,nullable:e.nullable}))}}function ve(s){return typeof s?.query=="object"&&s.query?s.query:{}}var j=class{constructor(e){this.itemId=e.itemId,this.portal=e.portal,this.serviceUrl=e.serviceUrl,this._requestOptions=e.requestOptions}fetchInfo(e){return this.portal.request(this._datastoreUrl,this._createRequestOptions(e))}async fetchDatasets(e){return(await this.portal.request(H(this._datastoreUrl,"datasets"),this._createRequestOptions(e))).datasets}async fetchTableDescription(e,t){if(!e)throw new Ue("portal:invalid-parameter",'The "tableName" parameter must be provided.');let i=await this.portal.request(H(this._datastoreUrl,"tableDescription"),{...this._createRequestOptions(t),query:{...ve(this._requestOptions),...ve(t),tableName:e}});return ke(i)}get _datastoreUrl(){return H(this.serviceUrl,"datastores",encodeURIComponent(this.itemId))}_createRequestOptions(e){return{...this._requestOptions,...e}}};function H(s,...e){let t=s.replaceAll(/\/+$/gu,""),i=e.filter(r=>!!r).map(r=>r.replaceAll(/^\/+|\/+$/gu,""));return[t,...i].join("/")}var We={id:"ansi",keywords:[],functions:[],operators:[],specialChars:{likeWildcardAny:"%",likeWildcardOne:"_",identifierQuote:{start:'"',end:'"'},escapeKey:{start:null,end:null},escapeClause:{keyword:"ESCAPE",suffix:null}}},Ie=new Map,Be={ansi:async()=>await Promise.resolve(We),bigquery:async()=>(await import("./XG3S7JQW.js")).bigqueryDialect,postgres:async()=>(await import("./U2T7AGOO.js")).postgresDialect,sqlServer:async()=>(await import("./UZD32YRD.js")).sqlServerDialect,oracle:async()=>(await import("./TUQPDQ74.js")).oracleDialect};async function ze(s){let e=Ie.get(s);if(e)return await e;let t=Be[s]();return Ie.set(s,t),await t}var He=["WITH","SELECT","FROM","WHERE","GROUP","BY","HAVING","ORDER","OFFSET","FETCH","FIRST","NEXT","ROW","ROWS","ONLY","LIMIT","DISTINCT","AS","JOIN","LEFT","RIGHT","FULL","INNER","OUTER","CROSS","ON","USING","AND","OR","NOT","IN","IS","LIKE","ESCAPE","BETWEEN","NULL","TRUE","FALSE","DATE","TIMESTAMP","ASC","DESC"],Ke=["<=",">=","<>","!=","=","<",">","+","-","*","/","%","||"],je=(s,e={})=>{let t=new Set(e.baseKeywords??He);for(let r of s.keywords)t.add(r.toUpperCase());let i=new Set(e.baseOperators??Ke);for(let r of s.operators)i.add(r);return{keywords:Array.from(t),functions:s.functions,operators:Array.from(i),specialChars:s.specialChars}},u={sqlServer:"sql-layer-sql-server",postgres:"sql-layer-postgres",bigquery:"sql-layer-bigquery",oracle:"sql-layer-oracle"},Te=u.postgres,Qe={[u.sqlServer]:"sqlServer",[u.postgres]:"postgres",[u.bigquery]:"bigquery",[u.oracle]:"oracle"};function Je(s){return Qe[s]}async function Xe(s){return je(await ze(Je(s)))}var Ye=/^[A-Za-z_][A-Za-z0-9_$]*$/u;function Ze(s){return s==="esriDBMS_PostgreSQL"?Te:s==="esriDBMS_SQLServer"?u.sqlServer:s==="esriDBMS_BigQuery"?u.bigquery:s==="esriDBMS_Oracle"?u.oracle:Te}function At(s){return s.trim().toLowerCase()}function et(s){return s.specialChars.identifierQuote}function tt(s,e){let t=s.trim();return t?Ye.test(t)?e.keywords.includes(t.toUpperCase()):!0:!1}function $e(s,e){let t=s.trim();if(!t||!tt(t,e))return t;let i=et(e),r=t.replaceAll(i.end,`${i.end}${i.end}`);return`${i.start}${r}${i.end}`}function it(s,e){return s.split(".").map(t=>$e(t,e)).join(".")}function Ot(s){return s.split(".").at(-1)??s}function rt(s){return Xe(Ze(s))}async function st(s,e){let t=new K({url:`${s.url}/${e.relatedTableId}`});return await t.load(),t}function ie(s){return(e,t)=>{if(e.type==="oid")return-1;if(t.type==="oid")return 1;if(b(s)){if(e.name===s.subtypeField)return-1;if(t.name===s.subtypeField)return 1}if(P(s)){if(e.name===s.typeIdField)return-1;if(t.name===s.typeIdField)return 1}return e.name.localeCompare(t.name,"en",{sensitivity:"base"})}}function xe(s,e){return s?.every(t=>t.domains?.[e.name]?.type==="inherited")??!1}var at=/^[a-z_$][a-z0-9_$]*$/giu;function re(s,e=!0){return s.match(at)?`${e?".":""}${s}`:`["${s}"]`}function Le(s,e){return s?`${s}${re(e)}`:e}function Pe(s){return _e(s)?s.portalItem:null}function ot(s,e){return e?s?.nullable??"nullable":s?.notnull??"not nullable"}function Nt(s,e,t){let{includeAliases:i=!1,supportGeometryFields:r=!1}=t??{},a=e,n=[],_=[];return w(s,{supportGeometry:r}).forEach(o=>{a&&(a+=`
|
|
3
3
|
|
|
4
4
|
`),a+=`**${o.name}** (${o.alias})
|
|
5
5
|
${o.type}`,o.description&&(a+=`
|
|
6
|
-
'${o.description}`);let c=W(o,{supportGeometryFields:r}),T=re(o.name,!1),
|
|
6
|
+
'${o.description}`);let c=W(o,{supportGeometryFields:r}),T=re(o.name,!1),y=D(o);if(n.push({name:o.name,description:y,type:c,completion:{label:o.name,detail:y,insertText:T,insertTextMode:$.asIs,insertTextFormat:E.PlainText,kind:M.Field}}),i){if(!o.alias||o.alias.toLowerCase()===o.name.toLowerCase())return;let se=`**${o.alias}**
|
|
7
7
|
${o.type}`;o.description&&(se+=`
|
|
8
|
-
'${o.description}`),
|
|
8
|
+
'${o.description}`),_.push({name:o.alias,description:o.name,type:c,completion:{label:o.alias,detail:o.name,insertText:T,insertTextMode:$.asIs,insertTextFormat:E.PlainText,kind:M.Field,documentation:{kind:"markdown",value:se}}})}}),[[...n,..._],a]}function qt(s,e){let t=e,i=[];return s.forEach(r=>{t&&(t+=`
|
|
9
9
|
|
|
10
10
|
`),t+=`**${r.name}**
|
|
11
11
|
${r.type}`,r.name&&(t+=`
|
|
12
|
-
'${r.name}`),i.push({name:r.name,description:r.name,type:"array",completion:{label:r.name,detail:r.name,insertText:re(r.name,!1),insertTextMode:L.asIs,insertTextFormat:$.PlainText,kind:M.Field}})}),[i,t]}var V=class{constructor(e,t,i){this._profile=e,this._label=t,this.description=i,this.filterDescription=!1}getLabel(){return this._label==null?"":typeof this._label=="string"?ae(this._label):A(this._profile?.intlStrings[this._label.code],this._label.formatValues)}getDescription(){return this.description==null?"":typeof this.description=="string"?this.description:A(this._profile?.intlStrings[this.description.code],this.description.formatValues)}passFilter(e){return!e||e.test(this.getLabel())?!0:this.filterDescription&&e.test(this.getDescription())}},F=class extends V{constructor(e){super(e.profile,e.label,e.description??e.declaration?.description),this.declaration=e.declaration??{},this.name=e.declaration?.name??"",this.snippet=e.snippet??"",this.nonInteractive=e.nonInteractive??!1,this.filterDescription=e.filterDescription??!1,this.icon=e.icon}},l=class extends F{constructor(e){super(e),this.type="text",this.isCollection=!1,this.type=e.declaration?.type??"text"}getDescription(){return this.description==null?this._profile?.intlStrings[this.type.toLowerCase()]??"":super.getDescription()}toProfileVariableDefinition(){return{type:this.type,name:"",...this.declaration}}},Q=class extends F{constructor(e){super(e),this.type="array",this.isCollection=!1,this.elementType=e.declaration?.elementType??{type:"number",name:"number"}}getDescription(){return this.description==null?this._profile?.intlStrings[this.type.toLowerCase()]??"":super.getDescription()}toProfileVariableDefinition(){return{type:this.type,elementType:this.elementType,name:"",...this.declaration}}},d=class extends F{constructor(e,t){super(t),this.owner=e,this.isCollection=!0,this._loaded=!0,this.variables=[]}get breadcrumb(){if(this.owner){let e=this.owner.breadcrumb;return e?`${e} / ${this.name}`:this.name}return this.name}get loaded(){return this._loaded}get informationUrl(){return null}get informationType(){return""}},p=class extends V{constructor(e,t,i=[],r=!1){super(e,t),this.variables=i,this.isHeader=r,this.type="group",this.isCollection=!0}passFilter(){return!0}},v=class s extends d{constructor(e,t){super(e,t),this.type="dictionary",this.dictionaryVariables=[],this.loadPropertyDeclarations(t.declaration?.properties),this.snippet&&this.dictionaryVariables.length&&(this.variables=[new p(this._profile,this.snippet,this.dictionaryVariables)])}async loadSource(){}loadPropertyDeclarations(e){this.dictionaryVariables=this.createVariableInstances(e),this.variables=this.dictionaryVariables}createVariableInstances(e){if(!Array.isArray(e))return[];let t=[];return e.forEach(i=>{let r=this.createVariableInstance(i);r&&t.push(r)}),t}createVariableInstance(e){let t=Ve(this.snippet,e.name);switch(e.type){case"number":case"text":case"boolean":case"date":case"dateOnly":case"time":case"geometry":case"knowledgeGraph":return new l({profile:this._profile,declaration:e,label:t,snippet:t});case"pixel":return new X(this,{profile:this._profile,declaration:e,label:t,snippet:t});case"voxel":return new Z(this,{profile:this._profile,declaration:e,label:t,snippet:t});case"feature":return new J(this,{profile:this._profile,declaration:e,label:t,snippet:t});case"featureSet":return new I(this,{profile:this._profile,declaration:e,label:t,snippet:t},[new l({profile:this._profile,label:t,description:"",snippet:t})]);case"featureSetCollection":return new Y(this,{profile:this._profile,declaration:e,label:t,snippet:t});case"dictionary":return new s(this,{profile:this._profile,declaration:e,label:t,snippet:t});case"array":return new Q({profile:this._profile,declaration:e,label:t,snippet:t});case"dataCatalogDatastore":return new ee(this,{profile:this._profile,declaration:e,label:t,snippet:t});default:return h("error","Editor profile","Invalid profile variable",{detail:{declaration:e}}),null}}toProfileVariableDefinition(){return{type:this.type,name:"",...this.declaration,properties:this.dictionaryVariables.map(e=>e.toProfileVariableDefinition())}}},E=class extends d{constructor(e,t,i){super(e,t),this.relationshipsProperties=i,this._source=null,this._loaded=!1,this._definition=t.declaration?.definition}get title(){return u(this._source)?this._source.title??"":""}get url(){return ue(this._source)?this._source.url??"":""}get informationUrl(){return!this.loaded||!this.url?null:de(this._source)?`${this.url}/${this._source.layerId}`:this.url}get informationType(){return this._profile?.intlStrings.layer??"layer"}async loadSource(){return _(this._loadPromise)&&D(this._loadPromise)?await this._loadPromise:(this._loadPromise=this._loadSource(),await this._loadPromise)}_getValueSnippet(e){return["feature","voxel","pixel"].includes(this.type)?Ve(this.snippet,e.name):e.name}_getSubtypeOrDomainNameSnippet(e){return this.type!=="feature"?null:y(this._source)&&e.name===this._source.subtypeField?`SubtypeName(${this.snippet})`:`DomainName(${this.snippet}, "${e.name}")`}_getFieldProperty(e,t){let i=this._getDomainDictionary(e);if(i)return i;let r=this._getValueSnippet(e);return new l({profile:this._profile,label:r,description:w(e),snippet:r,icon:k(e,t),filterDescription:!0})}_getMemberProperty(e){let t=this._getValueSnippet(e);return new l({profile:this._profile,label:t,description:e.name,snippet:t,icon:Fe(e),filterDescription:!0})}_getDomainDictionary(e){return q(this._source)?y(this._source)&&this._source.subtypeField?this._getSubtypeDomainDictionary(e):P(this._source)&&this._source.typeIdField?this._getFeatureTypeDomainDictionary(e):this._getFieldDomainDictionary(e):null}_getSubtypeDomainDictionary(e){if(!y(this._source))return null;if(!fe(this._source))return e.name===this._source.subtypeField?null:this._getFieldDomainDictionary(e);if(e.name===this._source.subtypeField){let r=this._createDomainDictionary(e);return r.icon="subtype",r.variables.push(this._getTypeOrSubtypeDomainGroup(this._source.subtypes,e)),r}if(xe(this._source.subtypes,e))return this._getFieldDomainDictionary(e);let t=this._getDomainValuesGroup(this._source.subtypes,e);if(!t)return null;let i=this._createDomainDictionary(e);return i.variables.push(t),i}_getFeatureTypeDomainDictionary(e){if(!P(this._source))return null;if(e.name===this._source.typeIdField){let r=this._createDomainDictionary(e);return r.variables.push(this._getTypeOrSubtypeDomainGroup(this._source.types,e)),r}if(xe(this._source.types,e))return this._getFieldDomainDictionary(e);let t=this._getDomainValuesGroup(this._source.types,e);if(!t)return null;let i=this._createDomainDictionary(e);return i.variables.push(t),i}_getFieldDomainDictionary(e){if(!q(this._source))return null;let t=this._source.getFieldDomain(e.name);if(!x(t))return null;let i=this._getCodedValueDomainGroup(t,{code:"domainvalues"}),r=this._createDomainDictionary(e);return r.variables.push(i),r}_getTypeOrSubtypeDomainGroup(e,t){if(x(t.domain))return this._getCodedValueDomainGroup(t.domain,{code:"subtypes"});let i=e?.map(r=>{let a=O(r)?r.code:r.id;return new l({profile:this._profile,label:`${a}`,description:r.name,snippet:`"${a}"`})})??[];return new p(this._profile,{code:"subtypes"},i)}_getCodedValueDomainGroup(e,t){let i=e.codedValues.map(r=>new l({profile:this._profile,label:`${r.code}`,description:r.name,snippet:`"${r.code}"`,filterDescription:!0}));return new p(this._profile,t,i)}_getDomainValuesGroup(e,t){let i=[];return!e||e.length===0||(e.forEach(r=>{let a=r.domains?.[t.name];if(!a||he(a)||!x(a))return;let n=w(t),f=this._getCodedValueDomainGroup(a,{code:"domainvaluesfortypeformat",formatValues:{fieldName:n,typeName:r.name}}),o=O(r)?r.code:r.id,c=`${o}`,T=`"${o}""`,m=new v(this,{profile:this._profile,label:c,snippet:T,description:r.name,declaration:{name:n}});m.variables=[f],i.push(m)}),!i.length)?null:new p(this._profile,{code:"domainvaluesbysubtypes"},i)}_createDomainDictionary(e){let t=this._getValueSnippet(e),i=w(e),r=new v(this,{profile:this._profile,label:t,description:i,snippet:t,icon:"form-dropdown",declaration:{name:e.name}}),a=new p(this._profile,i,[new l({profile:this._profile,label:t,description:"",snippet:t})]);r.variables=[a];let n=this._getSubtypeOrDomainNameSnippet(e);return n&&a.variables.push(new l({profile:this._profile,label:n,description:"",snippet:n})),r}async _getRelationshipsProperty(){if(!this.relationshipsProperties?.exposeRelationships||!this._profile?.supportFeatureSetFunctions)return null;let e=this._source;if(!me(e))return null;let t=new p(this._profile,{code:"relationships"}),i=await Promise.all(e.relationships?.map(async r=>{let a=await st(e,r);if(!N(a)||r.relatedTableId===this.relationshipsProperties?.sourceTableId)return null;let n=`FeatureSetByRelationshipName(${this.snippet}, "${r.name}")`;return new I(this,{profile:this._profile,declaration:{definition:a},label:a.title,description:"",nonInteractive:!0},[new l({profile:this._profile,label:n,description:"",snippet:n})],{exposeRelationships:!0,sourceTableId:e.layerId})})??[]);return t.variables=i.filter(_),t.variables.length?t:null}},C=class extends E{constructor(e,t,i,r={exposeRelationships:!0}){super(e,t,r),this.type=i}get title(){return u(this._source)?this._source.title??"":{code:this.type}}toProfileVariableDefinition(){return{type:this.type,name:"",...this.declaration}}},J=class extends C{constructor(e,t){super(e,t,"feature",{exposeRelationships:!0}),this.type="feature"}async _loadSource(){if(this.loaded)return this._source;try{if(this._source=await R(this._definition),!this._source)throw new Error("Invalid definition");let e=u(this._source)?this._source.title??"":"";this.variables.push(new p(this._profile,e,[new l({profile:this._profile,label:this.snippet,description:"",snippet:this.snippet})]));let t=new p(this._profile,{code:"values"});if(this.variables.push(t),ye(this._source)){let a=`Geometry(${this.snippet})`,n=new l({profile:this._profile,declaration:{name:a},label:a,description:"Geometry",snippet:a,icon:"shapes",filterDescription:!0});t.variables.push(n)}let i=this._source;g(this._source.fields).map(a=>i.fields.find(n=>n.name===a.name)).sort(ie(i)).forEach(a=>{t.variables.push(this._getFieldProperty(a))});let r=await this._getRelationshipsProperty();r&&this.variables.push(r)}catch(e){h("error","FeatureVariable","Error with definition",{detail:{error:e,definition:this._definition}}),this._source=null}finally{this._loaded=!0}return this._source}},Z=class extends C{constructor(e,t){super(e,t,"voxel",{exposeRelationships:!1}),this.type="voxel",this._source=null}async _loadSource(){if(this.loaded)return this._source;try{if(!be(this._definition))throw new Error("Invalid definition - not a VoxelLayer");if(await this._definition.load(),this._source=this._definition,!this._source)throw new Error("Invalid definition");let e=u(this._source)?this._source.title??"":"";this.variables.push(new p(this._profile,e,[new l({profile:this._profile,label:this.snippet,description:"",snippet:this.snippet})]));let t=new p(this._profile,{code:"values"});this.variables.push(t);let i=await Ne(this._source),r=this._source;g(this._source.fields).map(a=>r.fields.find(n=>n.name===a.name)).sort(ie(r)).forEach(a=>{t.variables.push(this._getFieldProperty(a,i))})}catch(e){h("error",this.type,"Error with definition",{detail:{error:e,definition:this._definition}}),this._source=null}finally{this._loaded=!0}return this._source}},X=class extends C{constructor(e,t){super(e,t,"pixel",{exposeRelationships:!1}),this.type="pixel",this._source=null}async _loadSource(){if(this.loaded)return this._source;try{if(!G(this._definition))throw new Error("Invalid definition - not an ImageryLayer");if(await this._definition.load(),this._source=this._definition,!this._source)throw new Error("Invalid definition");let e=u(this._source)?this._source.title??"":"";this.variables.push(new p(this._profile,e,[new l({profile:this._profile,label:this.snippet,description:"",snippet:this.snippet})]));let t=new p(this._profile,{code:"values"});if(this.variables.push(t),!G(this._source))throw new Error("Invalid definition - not an ImageryLayer");(await Oe(this._source)).forEach(i=>{t.variables.push(this._getMemberProperty(i))})}catch(e){h("error",this.type,"Error with definition",{detail:{error:e,definition:this._definition}}),this._source=null}finally{this._loaded=!0}return this._source}},I=class extends E{constructor(e,t,i=[],r){super(e,t,r),this.featureSetSnippets=i,this.type="featureSet"}get title(){return u(this._source)?this._source.title??"":{code:"featureset"}}async _loadSource(){if(this.loaded)return this._source;try{if(this._source=await R(this._definition),!this._source)throw new Error("Invalid definition");this.variables.push(new p(this._profile,this.title,this.featureSetSnippets,!0));let e=new p(this._profile,{code:"fields"});this.variables.push(e);let t=this._profile?.policy,i=t&&"allowGeometryFields"in t?t.allowGeometryFields??!1:!1;e.variables=g(this._source.fields,{supportGeometry:i}).sort(ie(this._source)).map(a=>this._getFieldProperty(a));let r=await this._getRelationshipsProperty();r&&this.variables.push(r)}catch(e){h("error",this.type,"Error with definition",{detail:{error:e,definition:this._definition}}),this._source=null}finally{this._loaded=!0}return this._source}toProfileVariableDefinition(){return{type:this.type,name:"",...this.declaration,definition:this._definition}}},Y=class extends d{constructor(e,t){super(e,t),this.type="featureSetCollection",this._featureSetCollections=null,this._loaded=!1,this._definition=t.declaration?.definition}get informationUrl(){return!this.loaded||!this._featureSetCollections?null:typeof this._featureSetCollections.source!="string"?Se(Pe(this._featureSetCollections.source)):null}get informationType(){if(!this.loaded||!this._featureSetCollections)return"";if(typeof this._featureSetCollections.source=="string")return this._profile?.intlStrings.featureservice??"featureservice";switch(this._featureSetCollections.source.declaredClass){case"esri.WebMap":return this._profile?.intlStrings.webmap??"webmap";case"esri.WebScene":return this._profile?.intlStrings.webscene??"webscene";default:return this._profile?.intlStrings.map??"map"}}async loadSource(){return _(this._loadPromise)&&D(this._loadPromise)?await this._loadPromise:(this._loadPromise=this._loadSource(),await this._loadPromise)}async _loadSource(){if(this.loaded)return this._featureSetCollections;try{if(this._featureSetCollections=await this._featureSetCollectionsFromDefinition(),!this._featureSetCollections)throw new Error("Invalid definition");let e=typeof this._featureSetCollections.source=="string"?{code:this._featureSetCollections.source.endsWith("FeatureServer")?"featureservice":"mapservice"}:{code:"webmapformat",formatValues:{webMapTitle:Pe(this._featureSetCollections.source)?.title||"Untitled map"}},t=new p(this._profile,e,[new l({profile:this._profile,label:this.snippet,description:"",snippet:this.snippet})]),i=new p(this._profile,{code:"layers"},this._featureSetCollections.layers),r=new p(this._profile,{code:"tables"},this._featureSetCollections.tables);this.variables.push(t,i,r)}catch(e){h("error",this.type,"Error with definition",{detail:{error:e,definition:this._definition}}),this._featureSetCollections=null}finally{this._loaded=!0}return this._featureSetCollections}async _featureSetCollectionsFromDefinition(){return this._definition?ne(this._definition)?await this._featureSetCollectionFromMap(this._definition):ce(this._definition)?await this._featureSetCollectionFromUrl(this._definition.url):pe(this._definition)?await this._featureSetCollectionFromPortalItem(this._definition.portalItem):null:null}async _featureSetCollectionFromMap(e){le(e)&&await e.loadAll(),await Promise.all(e.allTables.map(async r=>await r.load()));let t=this._profile?.policy,i=t&&"filterFsCollectionLayersFromMap"in t&&t.filterFsCollectionLayersFromMap?t.filterFsCollectionLayersFromMap:()=>!0;return{layers:this._convertWebMapLayersToVariables(e.allLayers.filter(i)),tables:this._convertWebMapLayersToVariables(e.allTables),source:e}}async _featureSetCollectionFromPortalItem(e){let t=new Ee(e);switch(await t.load(),t.type){case"Web Map":{let i=new Ae({portalItem:t});return await this._featureSetCollectionFromMap(i)}case"Web Scene":{let i=new Ue({portalItem:t});return await this._featureSetCollectionFromMap(i)}case"Feature Service":return await this._featureSetCollectionFromUrl(t.url);default:return h("error",this.type,"Unsupported portal item",{detail:{definition:e}}),null}}async _featureSetCollectionFromUrl(e){let t=e?.replace(/\/featureserver\/[0-9]*/iu,"/FeatureServer");if(t=t?.replace(/\/mapserver\/[0-9]*/iu,"/MapServer"),t=t?.split("?")[0],!t)return null;let i=await we(t),r=Promise.all(i.layers.map(async o=>{let c=new K({url:`${t}/${o.id}`});return await c.load(),this._createFeatureSetVariable(c)})),a=Promise.all(i.tables.map(async o=>{let c=new K({url:`${t}/${o.id}`});return await c.load(),this._createFeatureSetVariable(c)})),[n,f]=await Promise.all([r,a]);return{layers:n,tables:f,source:t}}_convertWebMapLayersToVariables(e){let t=[];return e.toArray().reverse().forEach(i=>{if(N(i)){t.push(this._createFeatureSetVariable(i,!0));return}}),t}_createFeatureSetVariable(e,t=!1){return new I(this,{profile:this._profile,declaration:{name:e.title??"",definition:e},label:t?e.title:e.sourceJSON.name??e.title,description:"",nonInteractive:!0},this._makeFeatureSetSnippets(e,t))}_makeFeatureSetSnippets(e,t=!1){if(!this._profile?.supportFeatureSetFunctions)return[];if(t){let i=`FeatureSetById(${this.snippet}, "${e.id}")`,r=`FeatureSetByName(${this.snippet}, "${e.title}")`;return[new l({profile:this._profile,label:i,description:"",snippet:i}),new l({profile:this._profile,label:r,description:"",snippet:r})]}else{let i=`FeatureSetById(${this.snippet}, "${e.layerId}")`;return[new l({profile:this._profile,label:i,description:"",snippet:i})]}}toProfileVariableDefinition(){return{type:this.type,name:"",...this.declaration,definition:this._definition}}},ee=class extends d{constructor(e,t){super(e,t),this.type="dataCatalogDatastore",this._catalogDatastore=null,this._datastore=null,this._loaded=!1,this._definition=t.declaration?.definition}_serializeDefinitionFromInstance(e){return{id:e.itemId??"",serviceUrl:e.serviceUrl??"",portal:{url:e.portal?.url??""}}}_getSerializedDefinition(){let e=this.declaration.definition;if(e)return b(e)?e:this._serializeDefinitionFromInstance(e);if(b(this._definition))return this._definition;if(this._catalogDatastore)return this._serializeDefinitionFromInstance(this._catalogDatastore);if(this._definition)return this._serializeDefinitionFromInstance(this._definition)}async loadSource(){return _(this._loadPromise)&&D(this._loadPromise)?await this._loadPromise:(this._loadPromise=this._loadSource(),await this._loadPromise)}async _loadSource(){if(this.loaded)return this._datastore;try{if(!this._definition)throw new Error("No definition provided");b(this._definition)?this._catalogDatastore=await this._dataCatalogDatastoreFromDefinition(this._definition):this._catalogDatastore=this._definition;let e=this._catalogDatastore;if(!e)throw new Error("Invalid definition");let t=await e.fetchInfo();this._datastoreInfo=t;let i=await e.fetchDatasets(),r=await rt(t.databasePlatform),a=i.map(n=>new te(this,{profile:this._profile,declaration:{name:n.name},label:n.name,description:n.type,snippet:it(n.name,r)},e,n,r));this.variables=a,this._datastore={tables:a,source:b(this._definition)?this._definition:e,info:t}}catch(e){h("error",this.type,"Error with definition",{detail:{error:e,definition:this._definition}}),this._datastore=null}finally{this._loaded=!0}return this._datastore}get datastoreInfo(){return this._datastoreInfo}get tableVariables(){return this.variables.filter(ge)}async _dataCatalogDatastoreFromDefinition(e){let t=new Ge({url:e.portal.url});return await t.load(),new j({itemId:e.id,serviceUrl:e.serviceUrl,portal:t})}toProfileVariableDefinition(){let e=this.declaration,t=this._getSerializedDefinition();return{type:this.type,name:"",...e,...t?{definition:t}:{}}}},te=class extends d{constructor(e,t,i,r,a){super(e,t),this._catalogDatastore=i,this.datasetInfo=r,this._dialectSpec=a,this.type="dictionary",this._fieldInfos=[],this._loaded=!1}get fieldInfos(){return this._fieldInfos}async loadSource(){return _(this._loadPromise)&&D(this._loadPromise)?await this._loadPromise:(this._loadPromise=this._loadFields(),await this._loadPromise)}async _loadFields(){if(this.loaded)return this._fieldInfos;try{let e=await this._catalogDatastore.fetchTableDescription(this.datasetInfo.name);this._fieldInfos=e.fields,this.variables=this._fieldInfos.map(t=>{let i={name:t.name,alias:t.name,type:t.type};return new l({profile:this._profile,declaration:{type:W(i,{supportGeometryFields:!0})},label:t.name,description:[t.serverType,ot(this._profile?.intlStrings,t.nullable)].filter(Boolean).join(" | "),snippet:Le(t.name,this._dialectSpec),icon:k(i),filterDescription:!0})})}catch(e){h("error","DataCatalogDatastoreTableVariable","Error loading dataset",{detail:{error:e,dataset:this.datasetInfo}}),this._fieldInfos=[]}finally{this._loaded=!0}return this._fieldInfos}toProfileVariableDefinition(){return{type:"dictionary",name:this.datasetInfo.name,description:this.datasetInfo.type}}},Me=class extends v{constructor(e,t,i="en",r={}){super(void 0,{profile:null,declaration:{properties:[]}}),this.definition=e,this.intlStrings=t,this.locale=i,this.policy=r,this.variables=[],this._profile=this,this.loadPropertyDeclarations(e?.variables)}get supportFeatureSetFunctions(){return this.definition?.bundles?.includes("data-access")??!1}toEditorProfileDefinition(){return{...this.definition,variables:this.dictionaryVariables.map(e=>e.toProfileVariableDefinition())}}},nt={locale:"en"},$e=class{constructor(e,t){this.languageId=e,this._apiConfig=t,this._onDidChange=new z,this._modelToProfileMap=new Map,this._modelToApiContextMap=new Map,this._localeToApiLibraryPromiseMap=new Map,this._onModelContextDidChange=new z,this._onDidModelContextChangeTimeout=-1,ve().then(i=>{i.onWillDisposeModel(r=>{this.disposeForModel(r.uri)})})}_fireModelContextDidChange(e){this._onDidModelContextChangeTimeout===-1&&(this._onDidModelContextChangeTimeout=window.setTimeout(()=>{this._onDidModelContextChangeTimeout=-1,this._onModelContextDidChange.fire(e)},0))}_getApiKey(e){return B.isUri(e)||(e=B.parse(e)),e.toString()}getWorkerHostExtension(){}get onDidChange(){return this._onDidChange.event}disposeForModel(e){let t=this._getApiKey(e);this._modelToProfileMap.delete(t),this._modelToApiContextMap.delete(t)&&this._fireModelContextDidChange(t)}getEditorProfileForModel(e){return this._modelToProfileMap.get(this._getApiKey(e))}getApiContextForModel(e){return this._modelToApiContextMap.get(this._getApiKey(e))??nt}updateApiContextForModel(e,t){let i=this._getApiKey(e),r=this._modelToApiContextMap.get(i)??{};this._modelToApiContextMap.set(i,{...r,...t}),this._fireModelContextDidChange(i)}get onModelContextDidChange(){return this._onModelContextDidChange.event}async getApiLibraryForModel(e){let t=this.getApiContextForModel(e),i=this.getApiLibrary(t.locale??"en");return(await De(i,t)).categories}get workerHost(){if(!this._workerHost){let e=Object.assign({getApiLibrary:async t=>await this.getApiLibrary(t),getLanguageId:()=>this.languageId},this.getWorkerHostExtension());this._workerHost=e}return this._workerHost}async fetchApiLibrary(e){try{let{apiPath:t,apiPrefix:i}=this._apiConfig,r=oe(`${t}/${i}${e}.json`),a=await fetch(r);return a.ok?await a.json():[]}catch{return[]}}async getApiLibrary(e){let t=U(e);return this._localeToApiLibraryPromiseMap.has(t)||this._localeToApiLibraryPromiseMap.set(t,this.fetchApiLibrary(t)),await this._localeToApiLibraryPromiseMap.get(t)??[]}};return{a:j,b:S,c:Te,d:Je,e:Ze,f:Ye,g:At,h:Le,i:it,j:Ut,k:re,l:Nt,m:Ot,n:ee,o:Me,p:$e}},"portal/PortalItem","WebMap","WebScene","layers/FeatureLayer","applications/Components/arcadeEditorUtils","core/Error","portal/Portal",a)
|
|
12
|
+
'${r.name}`),i.push({name:r.name,description:r.name,type:"array",completion:{label:r.name,detail:r.name,insertText:re(r.name,!1),insertTextMode:$.asIs,insertTextFormat:E.PlainText,kind:M.Field}})}),[i,t]}var L=class{constructor(e,t,i){this._profile=e,this._label=t,this.description=i,this.filterDescription=!1}getLabel(){return this._label==null?"":typeof this._label=="string"?ae(this._label):A(this._profile?.intlStrings[this._label.code],this._label.formatValues)}getDescription(){return this.description==null?"":typeof this.description=="string"?this.description:A(this._profile?.intlStrings[this.description.code],this.description.formatValues)}passFilter(e){return!e||e.test(this.getLabel())?!0:this.filterDescription&&e.test(this.getDescription())}},F=class extends L{constructor(e){super(e.profile,e.label,e.description??e.declaration?.description),this.declaration=e.declaration??{},this.name=e.declaration?.name??"",this.snippet=e.snippet??"",this.nonInteractive=e.nonInteractive??!1,this.filterDescription=e.filterDescription??!1,this.icon=e.icon}},l=class extends F{constructor(e){super(e),this.type="text",this.isCollection=!1,this.type=e.declaration?.type??"text"}getDescription(){return this.description==null?this._profile?.intlStrings[this.type.toLowerCase()]??"":super.getDescription()}toProfileVariableDefinition(){return{type:this.type,name:"",...this.declaration}}},Q=class extends F{constructor(e){super(e),this.type="array",this.isCollection=!1,this.elementType=e.declaration?.elementType??{type:"number",name:"number"}}getDescription(){return this.description==null?this._profile?.intlStrings[this.type.toLowerCase()]??"":super.getDescription()}toProfileVariableDefinition(){return{type:this.type,elementType:this.elementType,name:"",...this.declaration}}},f=class extends F{constructor(e,t){super(t),this.owner=e,this.isCollection=!0,this._loaded=!0,this.variables=[]}get breadcrumb(){if(this.owner){let e=this.owner.breadcrumb;return e?`${e} / ${this.name}`:this.name}return this.name}get loaded(){return this._loaded}get informationUrl(){return null}get informationType(){return""}},p=class extends L{constructor(e,t,i=[],r=!1){super(e,t),this.variables=i,this.isHeader=r,this.type="group",this.isCollection=!0}passFilter(){return!0}},C=class s extends f{constructor(e,t){super(e,t),this.type="dictionary",this.dictionaryVariables=[],this.loadPropertyDeclarations(t.declaration?.properties),this.snippet&&this.dictionaryVariables.length&&(this.variables=[new p(this._profile,this.snippet,this.dictionaryVariables)])}async loadSource(){}loadPropertyDeclarations(e){this.dictionaryVariables=this.createVariableInstances(e),this.variables=this.dictionaryVariables}createVariableInstances(e){if(!Array.isArray(e))return[];let t=[];return e.forEach(i=>{let r=this.createVariableInstance(i);r&&t.push(r)}),t}createVariableInstance(e){let t=Le(this.snippet,e.name);switch(e.type){case"number":case"text":case"boolean":case"date":case"dateOnly":case"time":case"geometry":case"knowledgeGraph":return new l({profile:this._profile,declaration:e,label:t,snippet:t});case"pixel":return new Y(this,{profile:this._profile,declaration:e,label:t,snippet:t});case"voxel":return new X(this,{profile:this._profile,declaration:e,label:t,snippet:t});case"feature":return new J(this,{profile:this._profile,declaration:e,label:t,snippet:t});case"featureSet":return new I(this,{profile:this._profile,declaration:e,label:t,snippet:t},[new l({profile:this._profile,label:t,description:"",snippet:t})]);case"featureSetCollection":return new Z(this,{profile:this._profile,declaration:e,label:t,snippet:t});case"dictionary":return new s(this,{profile:this._profile,declaration:e,label:t,snippet:t});case"array":return new Q({profile:this._profile,declaration:e,label:t,snippet:t});case"dataCatalogDatastore":return new ee(this,{profile:this._profile,declaration:e,label:t,snippet:t});default:return h("error","Editor profile","Invalid profile variable",{detail:{declaration:e}}),null}}toProfileVariableDefinition(){return{type:this.type,name:"",...this.declaration,properties:this.dictionaryVariables.map(e=>e.toProfileVariableDefinition())}}},V=class extends f{constructor(e,t,i){super(e,t),this.relationshipsProperties=i,this._source=null,this._loaded=!1,this._definition=t.declaration?.definition}get title(){return d(this._source)?this._source.title??"":""}get url(){return ue(this._source)?this._source.url??"":""}get informationUrl(){return!this.loaded||!this.url?null:de(this._source)?`${this.url}/${this._source.layerId}`:this.url}get informationType(){return this._profile?.intlStrings.layer??"layer"}async loadSource(){return m(this._loadPromise)&&S(this._loadPromise)?await this._loadPromise:(this._loadPromise=this._loadSource(),await this._loadPromise)}_getValueSnippet(e){return["feature","voxel","pixel"].includes(this.type)?Le(this.snippet,e.name):e.name}_getSubtypeOrDomainNameSnippet(e){return this.type!=="feature"?null:b(this._source)&&e.name===this._source.subtypeField?`SubtypeName(${this.snippet})`:`DomainName(${this.snippet}, "${e.name}")`}_getFieldProperty(e,t){let i=this._getDomainDictionary(e);if(i)return i;let r=this._getValueSnippet(e);return new l({profile:this._profile,label:r,description:D(e),snippet:r,icon:k(e,t),filterDescription:!0})}_getMemberProperty(e){let t=this._getValueSnippet(e);return new l({profile:this._profile,label:t,description:e.name,snippet:t,icon:Fe(e),filterDescription:!0})}_getDomainDictionary(e){return U(this._source)?b(this._source)&&this._source.subtypeField?this._getSubtypeDomainDictionary(e):P(this._source)&&this._source.typeIdField?this._getFeatureTypeDomainDictionary(e):this._getFieldDomainDictionary(e):null}_getSubtypeDomainDictionary(e){if(!b(this._source))return null;if(!fe(this._source))return e.name===this._source.subtypeField?null:this._getFieldDomainDictionary(e);if(e.name===this._source.subtypeField){let r=this._createDomainDictionary(e);return r.icon="subtype",r.variables.push(this._getTypeOrSubtypeDomainGroup(this._source.subtypes,e)),r}if(xe(this._source.subtypes,e))return this._getFieldDomainDictionary(e);let t=this._getDomainValuesGroup(this._source.subtypes,e);if(!t)return null;let i=this._createDomainDictionary(e);return i.variables.push(t),i}_getFeatureTypeDomainDictionary(e){if(!P(this._source))return null;if(e.name===this._source.typeIdField){let r=this._createDomainDictionary(e);return r.variables.push(this._getTypeOrSubtypeDomainGroup(this._source.types,e)),r}if(xe(this._source.types,e))return this._getFieldDomainDictionary(e);let t=this._getDomainValuesGroup(this._source.types,e);if(!t)return null;let i=this._createDomainDictionary(e);return i.variables.push(t),i}_getFieldDomainDictionary(e){if(!U(this._source))return null;let t=this._source.getFieldDomain(e.name);if(!x(t))return null;let i=this._getCodedValueDomainGroup(t,{code:"domainvalues"}),r=this._createDomainDictionary(e);return r.variables.push(i),r}_getTypeOrSubtypeDomainGroup(e,t){if(x(t.domain))return this._getCodedValueDomainGroup(t.domain,{code:"subtypes"});let i=e?.map(r=>{let a=q(r)?r.code:r.id;return new l({profile:this._profile,label:`${a}`,description:r.name,snippet:`"${a}"`})})??[];return new p(this._profile,{code:"subtypes"},i)}_getCodedValueDomainGroup(e,t){let i=e.codedValues.map(r=>new l({profile:this._profile,label:`${r.code}`,description:r.name,snippet:`"${r.code}"`,filterDescription:!0}));return new p(this._profile,t,i)}_getDomainValuesGroup(e,t){let i=[];return!e||e.length===0||(e.forEach(r=>{let a=r.domains?.[t.name];if(!a||he(a)||!x(a))return;let n=D(t),_=this._getCodedValueDomainGroup(a,{code:"domainvaluesfortypeformat",formatValues:{fieldName:n,typeName:r.name}}),o=q(r)?r.code:r.id,c=`${o}`,T=`"${o}""`,y=new C(this,{profile:this._profile,label:c,snippet:T,description:r.name,declaration:{name:n}});y.variables=[_],i.push(y)}),!i.length)?null:new p(this._profile,{code:"domainvaluesbysubtypes"},i)}_createDomainDictionary(e){let t=this._getValueSnippet(e),i=D(e),r=new C(this,{profile:this._profile,label:t,description:i,snippet:t,icon:"form-dropdown",declaration:{name:e.name}}),a=new p(this._profile,i,[new l({profile:this._profile,label:t,description:"",snippet:t})]);r.variables=[a];let n=this._getSubtypeOrDomainNameSnippet(e);return n&&a.variables.push(new l({profile:this._profile,label:n,description:"",snippet:n})),r}async _getRelationshipsProperty(){if(!this.relationshipsProperties?.exposeRelationships||!this._profile?.supportFeatureSetFunctions)return null;let e=this._source;if(!me(e))return null;let t=new p(this._profile,{code:"relationships"}),i=await Promise.all(e.relationships?.map(async r=>{let a=await st(e,r);if(!N(a)||r.relatedTableId===this.relationshipsProperties?.sourceTableId)return null;let n=`FeatureSetByRelationshipName(${this.snippet}, "${r.name}")`;return new I(this,{profile:this._profile,declaration:{definition:a},label:a.title,description:"",nonInteractive:!0},[new l({profile:this._profile,label:n,description:"",snippet:n})],{exposeRelationships:!0,sourceTableId:e.layerId})})??[]);return t.variables=i.filter(m),t.variables.length?t:null}},v=class extends V{constructor(e,t,i,r={exposeRelationships:!0}){super(e,t,r),this.type=i}get title(){return d(this._source)?this._source.title??"":{code:this.type}}toProfileVariableDefinition(){return{type:this.type,name:"",...this.declaration}}},J=class extends v{constructor(e,t){super(e,t,"feature",{exposeRelationships:!0}),this.type="feature"}async _loadSource(){if(this.loaded)return this._source;try{if(this._source=await G(this._definition),!this._source)throw new Error("Invalid definition");let e=d(this._source)?this._source.title??"":"";this.variables.push(new p(this._profile,e,[new l({profile:this._profile,label:this.snippet,description:"",snippet:this.snippet})]));let t=new p(this._profile,{code:"values"});if(this.variables.push(t),ye(this._source)){let a=`Geometry(${this.snippet})`,n=new l({profile:this._profile,declaration:{name:a},label:a,description:"Geometry",snippet:a,icon:"shapes",filterDescription:!0});t.variables.push(n)}let i=this._source;w(this._source.fields).map(a=>i.fields.find(n=>n.name===a.name)).sort(ie(i)).forEach(a=>{t.variables.push(this._getFieldProperty(a))});let r=await this._getRelationshipsProperty();r&&this.variables.push(r)}catch(e){h("error","FeatureVariable","Error with definition",{detail:{error:e,definition:this._definition}}),this._source=null}finally{this._loaded=!0}return this._source}},X=class extends v{constructor(e,t){super(e,t,"voxel",{exposeRelationships:!1}),this.type="voxel",this._source=null}async _loadSource(){if(this.loaded)return this._source;try{if(!be(this._definition))throw new Error("Invalid definition - not a VoxelLayer");if(await this._definition.load(),this._source=this._definition,!this._source)throw new Error("Invalid definition");let e=d(this._source)?this._source.title??"":"";this.variables.push(new p(this._profile,e,[new l({profile:this._profile,label:this.snippet,description:"",snippet:this.snippet})]));let t=new p(this._profile,{code:"values"});this.variables.push(t);let i=await Ne(this._source),r=this._source;w(this._source.fields).map(a=>r.fields.find(n=>n.name===a.name)).sort(ie(r)).forEach(a=>{t.variables.push(this._getFieldProperty(a,i))})}catch(e){h("error",this.type,"Error with definition",{detail:{error:e,definition:this._definition}}),this._source=null}finally{this._loaded=!0}return this._source}},Y=class extends v{constructor(e,t){super(e,t,"pixel",{exposeRelationships:!1}),this.type="pixel",this._source=null}async _loadSource(){if(this.loaded)return this._source;try{if(!R(this._definition))throw new Error("Invalid definition - not an ImageryLayer");if(await this._definition.load(),this._source=this._definition,!this._source)throw new Error("Invalid definition");let e=d(this._source)?this._source.title??"":"";this.variables.push(new p(this._profile,e,[new l({profile:this._profile,label:this.snippet,description:"",snippet:this.snippet})]));let t=new p(this._profile,{code:"values"});if(this.variables.push(t),!R(this._source))throw new Error("Invalid definition - not an ImageryLayer");(await qe(this._source)).forEach(i=>{t.variables.push(this._getMemberProperty(i))})}catch(e){h("error",this.type,"Error with definition",{detail:{error:e,definition:this._definition}}),this._source=null}finally{this._loaded=!0}return this._source}},I=class extends V{constructor(e,t,i=[],r){super(e,t,r),this.featureSetSnippets=i,this.type="featureSet"}get title(){return d(this._source)?this._source.title??"":{code:"featureset"}}async _loadSource(){if(this.loaded)return this._source;try{if(this._source=await G(this._definition),!this._source)throw new Error("Invalid definition");this.variables.push(new p(this._profile,this.title,this.featureSetSnippets,!0));let e=new p(this._profile,{code:"fields"});this.variables.push(e);let t=this._profile?.policy,i=t&&"allowGeometryFields"in t?t.allowGeometryFields??!1:!1;e.variables=w(this._source.fields,{supportGeometry:i}).sort(ie(this._source)).map(a=>this._getFieldProperty(a));let r=await this._getRelationshipsProperty();r&&this.variables.push(r)}catch(e){h("error",this.type,"Error with definition",{detail:{error:e,definition:this._definition}}),this._source=null}finally{this._loaded=!0}return this._source}toProfileVariableDefinition(){return{type:this.type,name:"",...this.declaration,definition:this._definition}}},Z=class extends f{constructor(e,t){super(e,t),this.type="featureSetCollection",this._featureSetCollections=null,this._loaded=!1,this._definition=t.declaration?.definition}get informationUrl(){return!this.loaded||!this._featureSetCollections?null:typeof this._featureSetCollections.source!="string"?Se(Pe(this._featureSetCollections.source)):null}get informationType(){if(!this.loaded||!this._featureSetCollections)return"";if(typeof this._featureSetCollections.source=="string")return this._profile?.intlStrings.featureservice??"featureservice";switch(this._featureSetCollections.source.declaredClass){case"esri.WebMap":return this._profile?.intlStrings.webmap??"webmap";case"esri.WebScene":return this._profile?.intlStrings.webscene??"webscene";default:return this._profile?.intlStrings.map??"map"}}async loadSource(){return m(this._loadPromise)&&S(this._loadPromise)?await this._loadPromise:(this._loadPromise=this._loadSource(),await this._loadPromise)}async _loadSource(){if(this.loaded)return this._featureSetCollections;try{if(this._featureSetCollections=await this._featureSetCollectionsFromDefinition(),!this._featureSetCollections)throw new Error("Invalid definition");let e=typeof this._featureSetCollections.source=="string"?{code:this._featureSetCollections.source.endsWith("FeatureServer")?"featureservice":"mapservice"}:{code:"webmapformat",formatValues:{webMapTitle:Pe(this._featureSetCollections.source)?.title||"Untitled map"}},t=new p(this._profile,e,[new l({profile:this._profile,label:this.snippet,description:"",snippet:this.snippet})]),i=new p(this._profile,{code:"layers"},this._featureSetCollections.layers),r=new p(this._profile,{code:"tables"},this._featureSetCollections.tables);this.variables.push(t,i,r)}catch(e){h("error",this.type,"Error with definition",{detail:{error:e,definition:this._definition}}),this._featureSetCollections=null}finally{this._loaded=!0}return this._featureSetCollections}async _featureSetCollectionsFromDefinition(){return this._definition?ne(this._definition)?await this._featureSetCollectionFromMap(this._definition):ce(this._definition)?await this._featureSetCollectionFromUrl(this._definition.url):pe(this._definition)?await this._featureSetCollectionFromPortalItem(this._definition.portalItem):null:null}async _featureSetCollectionFromMap(e){le(e)&&await e.loadAll(),await Promise.all(e.allTables.map(async r=>await r.load()));let t=this._profile?.policy,i=t&&"filterFsCollectionLayersFromMap"in t&&t.filterFsCollectionLayersFromMap?t.filterFsCollectionLayersFromMap:()=>!0;return{layers:this._convertWebMapLayersToVariables(e.allLayers.filter(i)),tables:this._convertWebMapLayersToVariables(e.allTables),source:e}}async _featureSetCollectionFromPortalItem(e){let t=new Ve(e);switch(await t.load(),t.type){case"Web Map":{let i=new Ae({portalItem:t});return await this._featureSetCollectionFromMap(i)}case"Web Scene":{let i=new Oe({portalItem:t});return await this._featureSetCollectionFromMap(i)}case"Feature Service":return await this._featureSetCollectionFromUrl(t.url);default:return h("error",this.type,"Unsupported portal item",{detail:{definition:e}}),null}}async _featureSetCollectionFromUrl(e){let t=e?.replace(/\/featureserver\/[0-9]*/iu,"/FeatureServer");if(t=t?.replace(/\/mapserver\/[0-9]*/iu,"/MapServer"),t=t?.split("?")[0],!t)return null;let i=await we(t),r=Promise.all(i.layers.map(async o=>{let c=new K({url:`${t}/${o.id}`});return await c.load(),this._createFeatureSetVariable(c)})),a=Promise.all(i.tables.map(async o=>{let c=new K({url:`${t}/${o.id}`});return await c.load(),this._createFeatureSetVariable(c)})),[n,_]=await Promise.all([r,a]);return{layers:n,tables:_,source:t}}_convertWebMapLayersToVariables(e){let t=[];return e.toArray().reverse().forEach(i=>{if(N(i)){t.push(this._createFeatureSetVariable(i,!0));return}}),t}_createFeatureSetVariable(e,t=!1){return new I(this,{profile:this._profile,declaration:{name:e.title??"",definition:e},label:t?e.title:e.sourceJSON.name??e.title,description:"",nonInteractive:!0},this._makeFeatureSetSnippets(e,t))}_makeFeatureSetSnippets(e,t=!1){if(!this._profile?.supportFeatureSetFunctions)return[];if(t){let i=`FeatureSetById(${this.snippet}, "${e.id}")`,r=`FeatureSetByName(${this.snippet}, "${e.title}")`;return[new l({profile:this._profile,label:i,description:"",snippet:i}),new l({profile:this._profile,label:r,description:"",snippet:r})]}else{let i=`FeatureSetById(${this.snippet}, "${e.layerId}")`;return[new l({profile:this._profile,label:i,description:"",snippet:i})]}}toProfileVariableDefinition(){return{type:this.type,name:"",...this.declaration,definition:this._definition}}},ee=class extends f{constructor(e,t){super(e,t),this.type="dataCatalogDatastore",this._catalogDatastore=null,this._datastore=null,this._loaded=!1,this._definition=t.declaration?.definition}_serializeDefinitionFromInstance(e){return{id:e.itemId??"",serviceUrl:e.serviceUrl??"",portal:{url:e.portal?.url??""}}}_getSerializedDefinition(){let e=this.declaration.definition;if(e)return g(e)?e:this._serializeDefinitionFromInstance(e);if(g(this._definition))return this._definition;if(this._catalogDatastore)return this._serializeDefinitionFromInstance(this._catalogDatastore);if(this._definition)return this._serializeDefinitionFromInstance(this._definition)}async loadSource(){return m(this._loadPromise)&&S(this._loadPromise)?await this._loadPromise:(this._loadPromise=this._loadSource(),await this._loadPromise)}async _loadSource(){if(this.loaded)return this._datastore;try{if(!this._definition)throw new Error("No definition provided");g(this._definition)?this._catalogDatastore=await this._dataCatalogDatastoreFromDefinition(this._definition):this._catalogDatastore=this._definition;let e=this._catalogDatastore;if(!e)throw new Error("Invalid definition");let t=await e.fetchInfo();this._datastoreInfo=t;let i=await e.fetchDatasets(),r=await rt(t.databasePlatform),a=i.map(n=>new te(this,{profile:this._profile,declaration:{name:n.name},label:n.name,description:n.type,snippet:it(n.name,r)},e,n,r));this.variables=a,this._datastore={tables:a,source:g(this._definition)?this._definition:e,info:t}}catch(e){h("error",this.type,"Error with definition",{detail:{error:e,definition:this._definition}}),this._datastore=null}finally{this._loaded=!0}return this._datastore}get datastoreInfo(){return this._datastoreInfo}get tableVariables(){return this.variables.filter(ge)}async _dataCatalogDatastoreFromDefinition(e){let t=new Re({url:e.portal.url});return await t.load(),new j({itemId:e.id,serviceUrl:e.serviceUrl,portal:t})}toProfileVariableDefinition(){let e=this.declaration,t=this._getSerializedDefinition();return{type:this.type,name:"",...e,...t?{definition:t}:{}}}},te=class extends f{constructor(e,t,i,r,a){super(e,t),this._catalogDatastore=i,this.datasetInfo=r,this._dialectSpec=a,this.type="dictionary",this._fieldInfos=[],this._loaded=!1}get fieldInfos(){return this._fieldInfos}async loadSource(){return m(this._loadPromise)&&S(this._loadPromise)?await this._loadPromise:(this._loadPromise=this._loadFields(),await this._loadPromise)}async _loadFields(){if(this.loaded)return this._fieldInfos;try{let e=await this._catalogDatastore.fetchTableDescription(this.datasetInfo.name);this._fieldInfos=e.fields,this.variables=this._fieldInfos.map(t=>{let i={name:t.name,alias:t.name,type:t.type};return new l({profile:this._profile,declaration:{type:W(i,{supportGeometryFields:!0})},label:t.name,description:[t.serverType,ot(this._profile?.intlStrings,t.nullable)].filter(Boolean).join(" | "),snippet:$e(t.name,this._dialectSpec),icon:k(i),filterDescription:!0})})}catch(e){h("error","DataCatalogDatastoreTableVariable","Error loading dataset",{detail:{error:e,dataset:this.datasetInfo}}),this._fieldInfos=[]}finally{this._loaded=!0}return this._fieldInfos}toProfileVariableDefinition(){return{type:"dictionary",name:this.datasetInfo.name,description:this.datasetInfo.type}}},Me=class extends C{constructor(e,t,i="en",r={}){super(void 0,{profile:null,declaration:{properties:[]}}),this.definition=e,this.intlStrings=t,this.locale=i,this.policy=r,this.variables=[],this._profile=this,this.loadPropertyDeclarations(e?.variables)}get supportFeatureSetFunctions(){return this.definition?.bundles?.includes("data-access")??!1}toEditorProfileDefinition(){return{...this.definition,variables:this.dictionaryVariables.map(e=>e.toProfileVariableDefinition())}}},nt={locale:"en"},Ee=class{constructor(e,t){this.languageId=e,this._apiConfig=t,this._onDidChange=new B,this._modelToProfileMap=new Map,this._modelToApiContextMap=new Map,this._localeToApiLibraryPromiseMap=new Map,this._onModelContextDidChange=new B,this._onDidModelContextChangeTimeout=-1,Ce().then(i=>{i.onWillDisposeModel(r=>{this.disposeForModel(r.uri)})})}_fireModelContextDidChange(e){this._onDidModelContextChangeTimeout===-1&&(this._onDidModelContextChangeTimeout=window.setTimeout(()=>{this._onDidModelContextChangeTimeout=-1,this._onModelContextDidChange.fire(e)},0))}_getApiKey(e){return z.isUri(e)||(e=z.parse(e)),e.toString()}getWorkerHostExtension(){}get onDidChange(){return this._onDidChange.event}disposeForModel(e){let t=this._getApiKey(e);this._modelToProfileMap.delete(t),this._modelToApiContextMap.delete(t)&&this._fireModelContextDidChange(t)}getEditorProfileForModel(e){return this._modelToProfileMap.get(this._getApiKey(e))}getApiContextForModel(e){return this._modelToApiContextMap.get(this._getApiKey(e))??nt}updateApiContextForModel(e,t){let i=this._getApiKey(e),r=this._modelToApiContextMap.get(i)??{};this._modelToApiContextMap.set(i,{...r,...t}),this._fireModelContextDidChange(i)}get onModelContextDidChange(){return this._onModelContextDidChange.event}async getApiLibraryForModel(e){let t=this.getApiContextForModel(e),i=this.getApiLibrary(t.locale??"en");return(await De(i,t)).categories}get workerHost(){if(!this._workerHost){let e=Object.assign({getApiLibrary:async t=>await this.getApiLibrary(t),getLanguageId:()=>this.languageId},this.getWorkerHostExtension());this._workerHost=e}return this._workerHost}async fetchApiLibrary(e){try{let{apiPath:t,apiPrefix:i}=this._apiConfig,r=oe(`${t}/${i}${e}.json`),a=await fetch(r);return a.ok?await a.json():[]}catch{return[]}}async getApiLibrary(e){let t=O(e);return this._localeToApiLibraryPromiseMap.has(t)||this._localeToApiLibraryPromiseMap.set(t,this.fetchApiLibrary(t)),await this._localeToApiLibraryPromiseMap.get(t)??[]}};return{a:j,b:u,c:Te,d:Je,e:Xe,f:Ze,g:At,h:$e,i:it,j:Ot,k:re,l:Nt,m:qt,n:ee,o:Me,p:Ee}},"portal/PortalItem","WebMap","WebScene","layers/FeatureLayer","applications/Components/arcadeEditorUtils","core/Error","portal/Portal",a)
|