UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

1 lines 6.68 kB
"use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[3186],{17311:(e,t,s)=>{s.d(t,{A:()=>f});var i=s(90237),r=s(69622),a=s(4576),n=s(60999),l=s(5503),o=s(10107),c=(s(44208),s(53966),s(40608)),d=s(30524),u=s(43668);let f=class extends r.A{constructor(e){super(e),this._featureUtils=null,this.effectivePopupTemplate=null}get _arcadeTask(){return this.expressionsUsedInTitle.length>0?this._get("_arcadeTask")||(0,n.UT)((()=>(0,u.l)())):null}get featureUtilsPromise(){return this._get("featureUtilsPromise")??Promise.all([s.e(4560),s.e(9926)]).then(s.bind(s,29926)).then((e=>this._featureUtils=e))}get calculatedExpressions(){const e=new l.A;if(!this.expressionsUsedInTitle.length)return e;if(!this._arcadeTask?.value){for(const t of this.expressionsUsedInTitle??[])e.push({name:t.name,invalid:!0});return e}for(const t of this.expressionsUsedInTitle)try{const s=this._arcadeTask.value.arcade.parseScript(t.expression,["$layer","$map","$datastore"]);if(s.isAsync){e.push({name:t.name,invalid:!0});break}e.push({name:t.name,syntax:s,invalid:!1,func:this._arcadeTask.value.arcade.compileScript(s,{vars:{$feature:"any"}})})}catch{e.push({name:t.name,invalid:!0});break}return e}get expressionsUsedInTitle(){let e=this.effectivePopupTemplate?.title??"";return"string"!=typeof e?[]:(e=e.toLowerCase(),this.effectivePopupTemplate?.expressionInfos?.filter((t=>e.includes(`{expression/${t.name.toLowerCase()}}`)))??[])}get fieldInfoMap(){return this._featureUtils?this._createFieldInfoMap(this._featureUtils.getAllFieldInfos(this.effectivePopupTemplate)):null}get hasBadExpressions(){return this.calculatedExpressions.some((e=>!0===e.invalid))}get requiredFields(){const e=new Set;if(this._arcadeTask?.value&&!this.hasBadExpressions)for(const t of this.calculatedExpressions?.toArray()??[])try{const s=this._arcadeTask.value.arcade.extractFieldLiterals(t.syntax);for(const t of s){const s=t.split("."),i=this.fieldsIndex.get(s.at(-1)??"");i&&e.add(i.name)}}catch{}const t=this._extractFieldNames(this.workingTitle);for(const s of t){const t=this.fieldsIndex.get(s);t&&e.add(t.name)}return null!=this.objectIdField&&e.add(this.objectIdField),e}get titleFromDisplayField(){let e="";return this.displayField&&(e=this.fieldsIndex.get(this.displayField)?.name??""),e||(e=this.fieldsIndex.get(this.objectIdField)?.name??""),e?`{${e}}`:""}get workingTitle(){const e=this.effectivePopupTemplate?this.effectivePopupTemplate.title:"";return""===e||null==e||this.hasBadExpressions||"string"!=typeof e?this.titleFromDisplayField:e}async getTitle(e,t,s){const i=t.getObjectId()??t.attributes[e.objectIdField];return(await this.getTitles(e,[t],s)).get(i)??""}async getTitles(e,t,s){const i=new Map,r=s?.timeZone??"system";try{const[{substituteFieldsInLinksAndAttributes:a}]=await Promise.all([this.featureUtilsPromise,this._arcadeTask?.promise]);s?.fetchMissingFields&&(t=await this._checkAndReQueryGraphics(e,t));const{fieldInfoMap:n,workingTitle:l}=this,o=l&&n;t.forEach((t=>{const s=t.getObjectId()??t.attributes[e.objectIdField],c=o?a({attributes:t.attributes,expressionAttributes:null,fieldInfoMap:n,globalAttributes:this._createFormattedAttributes(e,t,r).global,layer:e,text:l}):"";i.set(s,c)}))}catch{}return i}async _checkAndReQueryGraphics(e,t){const s=t.map((t=>t.getObjectId()??t.attributes[e.objectIdField])).filter(a.Ru);if(s.length!==t.length)return t;if(t.some((e=>!(0,d.Kl)(e,this.requiredFields)))){const i=e.createQuery();i.where="1=1",i.outFields=[...this.requiredFields],i.objectIds=s;const r=await e.queryFeatures(i);if(r?.features.length===t.length)return r.features}return t}_createFieldInfoMap(e){const t=new Map;if(!e)return t;for(const s of e){if(!s.fieldName)continue;const e=this.fieldsIndex.get(s.fieldName),i=e?.name??s.fieldName;s.fieldName=i,t.set(i.toLowerCase(),s)}return t}_createFormattedAttributes(e,t,s="system"){const i=this.effectivePopupTemplate?.fieldInfos??[],r={};if(!this._featureUtils)return{};if(!this.hasBadExpressions&&this.calculatedExpressions.length>0&&this._arcadeTask?.value){const s=this._arcadeTask.value.Feature.createFromGraphicLikeObject(t.geometry,t.attributes,e,null);for(const e of this.calculatedExpressions)try{r[`expression/${e.name}`]=e.func({vars:{$feature:s}})}catch{}}const a={...t.attributes,...r};return{global:this._featureUtils.formatAttributes({fieldInfos:i,attributes:a,graphic:t,timeZone:s,layer:e,fieldInfoMap:this.fieldInfoMap}),content:[]}}_extractFieldNames(e){return(0,d.nw)(e).filter((e=>!(0===e.indexOf("relationships/")||0===e.indexOf("expression/"))))}};(0,i._)([(0,o.MZ)({readOnly:!0})],f.prototype,"_arcadeTask",null),(0,i._)([(0,o.MZ)()],f.prototype,"_featureUtils",void 0),(0,i._)([(0,o.MZ)({readOnly:!0})],f.prototype,"featureUtilsPromise",null),(0,i._)([(0,o.MZ)({readOnly:!0})],f.prototype,"calculatedExpressions",null),(0,i._)([(0,o.MZ)()],f.prototype,"displayField",void 0),(0,i._)([(0,o.MZ)()],f.prototype,"effectivePopupTemplate",void 0),(0,i._)([(0,o.MZ)()],f.prototype,"expressionsUsedInTitle",null),(0,i._)([(0,o.MZ)()],f.prototype,"fieldsIndex",void 0),(0,i._)([(0,o.MZ)()],f.prototype,"fieldInfoMap",null),(0,i._)([(0,o.MZ)()],f.prototype,"fields",void 0),(0,i._)([(0,o.MZ)()],f.prototype,"objectIdField",void 0),(0,i._)([(0,o.MZ)()],f.prototype,"requiredFields",null),f=(0,i._)([(0,c.$)("esri.layers.support.TitleCreator")],f)},41560:(e,t,s)=>{s.d(t,{Ch:()=>n,mW:()=>a});var i=s(34727),r=s(39516);function a(e,t){return{...t,filterMode:e.mode}}function n(e,t,s){const a=function(e){if("manual"===c(e))return null;const t=[Number.NEGATIVE_INFINITY,Number.POSITIVE_INFINITY];for(const{minScale:s,maxScale:i}of e.filters)t[0]=Math.max(t[0],d(s)),t[1]=Math.min(t[1],u(i));return t}(e);if(a&&((0,i.gg)(t,a[0])||(0,i.ZH)(s,a[1])))return"";const n=Array.from(l(e,t,s)),o=function(e,t,s){if(0===e.length)return!0;const r=d(e.at(0)?.minScale),a=u(e.at(-1)?.maxScale);if((0,i.ZH)(r,t)||(0,i.gg)(a,s))return!0;for(let t=0;t<e.length-1;t++){const s=e[t],r=e[t+1];if((0,i.ZH)(d(r.minScale),u(s.maxScale)))return!0}return!1}(n,t,s)?"1=1":n.map((e=>e.where||"1=1")).reduce(((e,t)=>(0,r.IW)(e,t)),"");return o&&"1=1"!==o?o:""}function*l(e,t,s){if("manual"===c(e)){const t=e.filters.find((t=>t.id===e.activeFilterId));t&&(yield t)}else{"object"==typeof t&&(t=t.scale);for(const i of e.filters)o(i.minScale,i.maxScale,t,s)&&(yield i)}}function o(e,t,s,r){return e=d(e),s=d(s),t=u(t),!(!(0,i.Sp)(s,e)&&(r??s)>e||(0,i.Hx)(t,s)||void 0!==r&&(0,i.Sp)(r,e))}function c(e){return"mode"in e?e.mode:e.filterMode}function d(e){return e||Number.POSITIVE_INFINITY}function u(e){return e||0}},92935:(e,t,s)=>{var i;s.d(t,{X:()=>i}),function(e){e[e.SAVE=0]="SAVE",e[e.SAVE_AS=1]="SAVE_AS"}(i||(i={}))}}]);