@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
1 lines • 8.02 kB
JavaScript
;(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[1598],{16494(e,t,s){s.d(t,{Nd:()=>l,W5:()=>a});var i=s(17632);const r=["dd","dl","dt","h1","h2","h3","h4","h5","h6","sub","sup","animate","animatetransform","circle","clippath","defs","ellipse","g","image","line","lineargradient","marker","mask","path","pattern","polygon","polyline","radialgradient","rect","stop","svg","switch","symbol","text","textpath","tspan","use"].reduce((e,t)=>(e[t]=[],e),{}),n=["align","alink","alt","bgcolor","border","cellpadding","cellspacing","class","color","cols","colspan","coords","d","dir","face","height","hspace","ismap","lang","marginheight","marginwidth","multiple","nohref","noresize","noshade","nowrap","ref","rel","rev","rows","rowspan","scrolling","shape","span","summary","tabindex","title","usemap","valign","value","vlink","vspace","width"],a=new i.I({whiteList:r,onTagAttr:(e,t,s)=>{const i=`${t}="${s}"`;if(n.includes(t))return i},stripIgnoreTag:!0,stripIgnoreTagBody:["script","style"]},!0),l=new i.I({whiteList:{br:[]},stripIgnoreTag:!0,escapeHtml:e=>e},!1)},17311(e,t,s){s.d(t,{A:()=>f});var i=s(5482),r=s(69622),n=s(4576),a=s(60999),l=s(7762),o=s(16494),c=s(91429),d=s(30524),u=s(43668);const p=/<br\s*\/*>/gi;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,a.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:n}]=await Promise.all([this.featureUtilsPromise,this._arcadeTask?.promise]);s?.fetchMissingFields&&(t=await this._checkAndReQueryGraphics(e,t));const{fieldInfoMap:a,workingTitle:l}=this,c=l&&a;t.forEach(t=>{const d=t.getObjectId()??t.attributes[e.objectIdField];let u=c?n({attributes:t.attributes,expressionAttributes:null,fieldInfoMap:a,globalAttributes:this._createFormattedAttributes(e,t,r).global,layer:e,text:l}):"";s?.removeHTML&&(u=o.Nd.sanitize(u).replaceAll(p," ")),i.set(d,u)})}catch{}return i}async _checkAndReQueryGraphics(e,t){const s=t.map(t=>t.getObjectId()??t.attributes[e.objectIdField]).filter(n.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 n={...t.attributes,...r};return{global:this._featureUtils.formatAttributes({fieldInfos:i,attributes:n,graphic:t,timeZone:s,layer:e,fieldInfoMap:this.fieldInfoMap}),content:[]}}_extractFieldNames(e){return(0,d.nw)(e).filter(e=>!(e.startsWith("relationships/")||e.startsWith("expression/")))}};(0,i.Cg)([(0,c.MZ)({readOnly:!0})],f.prototype,"_arcadeTask",null),(0,i.Cg)([(0,c.MZ)()],f.prototype,"_featureUtils",void 0),(0,i.Cg)([(0,c.MZ)({readOnly:!0})],f.prototype,"featureUtilsPromise",null),(0,i.Cg)([(0,c.MZ)({readOnly:!0})],f.prototype,"calculatedExpressions",null),(0,i.Cg)([(0,c.MZ)()],f.prototype,"displayField",void 0),(0,i.Cg)([(0,c.MZ)()],f.prototype,"effectivePopupTemplate",void 0),(0,i.Cg)([(0,c.MZ)()],f.prototype,"expressionsUsedInTitle",null),(0,i.Cg)([(0,c.MZ)()],f.prototype,"fieldsIndex",void 0),(0,i.Cg)([(0,c.MZ)()],f.prototype,"fieldInfoMap",null),(0,i.Cg)([(0,c.MZ)()],f.prototype,"fields",void 0),(0,i.Cg)([(0,c.MZ)()],f.prototype,"objectIdField",void 0),(0,i.Cg)([(0,c.MZ)()],f.prototype,"requiredFields",null),f=(0,i.Cg)([(0,c.$K)("esri.layers.support.TitleCreator")],f)},41560(e,t,s){s.d(t,{Ch:()=>a,mW:()=>n});var i=s(34727),r=s(39516);function n(e,t){return{...t,filterMode:e.mode}}function a(e,t,s){const n=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(n&&((0,i.gg)(t,n[0])||(0,i.ZH)(s,n[1])))return"";const a=Array.from(l(e,t,s)),o=function(e,t,s){if(0===e.length)return!0;const r=d(e.at(0)?.minScale),n=u(e.at(-1)?.maxScale);if((0,i.ZH)(r,t)||(0,i.gg)(n,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}(a,t,s)?"1=1":a.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}},73133(e,t,s){s.d(t,{j:()=>i});const i=(0,s(66552).O)()({esriTimeUnitsMilliseconds:"milliseconds",esriTimeUnitsSeconds:"seconds",esriTimeUnitsMinutes:"minutes",esriTimeUnitsHours:"hours",esriTimeUnitsDays:"days",esriTimeUnitsWeeks:"weeks",esriTimeUnitsMonths:"months",esriTimeUnitsYears:"years",esriTimeUnitsDecades:"decades",esriTimeUnitsCenturies:"centuries",esriTimeUnitsUnknown:"unknown"})}}]);