@arcgis/core 5.2.0-next.148 → 5.2.0-next.149
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/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/09b9a886363bc1197785.js +1 -0
- package/assets/esri/core/workers/chunks/0ad0484ffcbe4ad21bd3.js +1 -0
- package/assets/esri/core/workers/chunks/{52c25809edf7ac008a52.js → 12a7997a40c77f5c9160.js} +1 -1
- package/assets/esri/core/workers/chunks/18787aa685524b958561.js +1 -0
- package/assets/esri/core/workers/chunks/{776ae25a34352d3468bc.js → 19743dedaa40446259ec.js} +1 -1
- package/assets/esri/core/workers/chunks/{27a425d87c57b91489b3.js → 21f45a47708e6e43147f.js} +1 -1
- package/assets/esri/core/workers/chunks/2c626f525f3483c03477.js +1 -0
- package/assets/esri/core/workers/chunks/{7a05b18f655c1167ce0a.js → 2ef5237e4c876d6a4ee0.js} +1 -1
- package/assets/esri/core/workers/chunks/{0a078721c7e0e24027f0.js → 320e5942a098dd104366.js} +1 -1
- package/assets/esri/core/workers/chunks/444e5f214abce3d607cd.js +1 -0
- package/assets/esri/core/workers/chunks/45367aa8e5c5d574de94.js +1 -0
- package/assets/esri/core/workers/chunks/47d074136a7f8e551a9a.js +1 -0
- package/assets/esri/core/workers/chunks/{24cc7b6b5e307a89cdd5.js → 50036a323c2e7f155311.js} +1 -1
- package/assets/esri/core/workers/chunks/5116b569a8dbda4910c8.js +1 -0
- package/assets/esri/core/workers/chunks/{b2737120c5999b2f3909.js → 55dcbf296d8d0092e473.js} +1 -1
- package/assets/esri/core/workers/chunks/6299be5e7e26bf3c6859.js +1 -0
- package/assets/esri/core/workers/chunks/6b04285726b803b82564.js +1 -0
- package/assets/esri/core/workers/chunks/6c9acd9e4e201dc380e9.js +1 -0
- package/assets/esri/core/workers/chunks/7449568eb2305bf2d650.js +1 -0
- package/assets/esri/core/workers/chunks/7572c2bc5062e66f6330.js +1 -0
- package/assets/esri/core/workers/chunks/7d212c415f2709037408.js +1 -0
- package/assets/esri/core/workers/chunks/7f0f9dddc44b1f1600f0.js +1 -0
- package/assets/esri/core/workers/chunks/8414ffd937c1099e0bbc.js +1 -0
- package/assets/esri/core/workers/chunks/9401cc22373566e1171e.js +1 -0
- package/assets/esri/core/workers/chunks/97d6ef9e34a43ad2e556.js +1 -0
- package/assets/esri/core/workers/chunks/{c76c42c74eedd43263d3.js → 9dd1fc56eb1ea6eb705e.js} +1 -1
- package/assets/esri/core/workers/chunks/a07cb6a2f5b66d4e9f15.js +1 -0
- package/assets/esri/core/workers/chunks/a40b6d8b5c73e06e14d4.js +1 -0
- package/assets/esri/core/workers/chunks/a7f3576208f295b670d6.js +1 -0
- package/assets/esri/core/workers/chunks/a80e49acc827dbf3b524.js +1 -0
- package/assets/esri/core/workers/chunks/aeaaff7a4b1a99540f52.js +1 -0
- package/assets/esri/core/workers/chunks/b19b6102ed2d6f67b43b.js +1 -0
- package/assets/esri/core/workers/chunks/b1b4066e8d1c0c9656e5.js +1 -0
- package/assets/esri/core/workers/chunks/b4334713bacdfe40ce3d.js +1 -0
- package/assets/esri/core/workers/chunks/bbec9d2e3b75a5c59681.js +1 -0
- package/assets/esri/core/workers/chunks/c337fc0e6dc69c233e6d.js +1 -0
- package/assets/esri/core/workers/chunks/c8d178a0c82fffd7fed5.js +1 -0
- package/assets/esri/core/workers/chunks/c8d6bb5cca49926a0214.js +1 -0
- package/assets/esri/core/workers/chunks/cde4b044e013b9e41591.js +1 -0
- package/assets/esri/core/workers/chunks/{7a4f1484b119ebafc2e7.js → d2347d6aa1c57fd57029.js} +1 -1
- package/assets/esri/core/workers/chunks/dca35dbe427605ef6fcc.js +1 -0
- package/assets/esri/core/workers/chunks/f1df76f098a3cc924832.js +1 -0
- package/assets/esri/core/workers/chunks/f4f9d08b2df856e3b694.js +1 -0
- package/assets/esri/core/workers/chunks/f8a83d447b7aef051876.js +1 -0
- package/assets/esri/core/workers/chunks/fc44227c1756f65b95df.js +1 -0
- package/config.js +1 -1
- package/core/Loadable.js +1 -1
- package/geometry/HeightModelInfo.js +1 -1
- package/kernel.js +1 -1
- package/layers/BaseDynamicLayer.d.ts +1 -0
- package/layers/BaseElevationLayer.d.ts +2 -0
- package/layers/BaseTileLayer.d.ts +12 -9
- package/layers/CSVLayer.d.ts +0 -15
- package/layers/FeatureLayer.d.ts +2 -15
- package/layers/GeoJSONLayer.d.ts +0 -52
- package/layers/GeoRSSLayer.d.ts +0 -44
- package/layers/ParquetLayer.d.ts +81 -3
- package/layers/ParquetLayer.js +1 -1
- package/layers/VectorTileLayer.d.ts +2 -12
- package/layers/mixins/RefreshableLayer.d.ts +1 -3
- package/layers/raster/datasets/GeospatialPDFRaster.js +1 -1
- package/layers/support/layersLoader.js +1 -1
- package/package.json +2 -2
- package/popup/FeaturesModel.d.ts +1 -1
- package/popup/FeaturesModel.js +1 -1
- package/portal/support/portalLayers.js +1 -1
- package/renderers/VectorFieldRenderer.d.ts +4 -4
- package/smartMapping/renderers/color.js +1 -1
- package/smartMapping/renderers/dotDensity.js +1 -1
- package/smartMapping/renderers/heatmap.js +1 -1
- package/smartMapping/renderers/pieChart.js +1 -1
- package/smartMapping/renderers/type.js +1 -1
- package/smartMapping/statistics/heatmapStatistics.js +1 -1
- package/smartMapping/statistics/histogram.js +1 -1
- package/smartMapping/statistics/summaryStatistics.js +1 -1
- package/smartMapping/statistics/summaryStatisticsForAttributes.js +1 -1
- package/smartMapping/statistics/uniqueValues.js +1 -1
- package/smartMapping/support/adapters/support/layerUtils.js +1 -1
- package/smartMapping/types.d.ts +3 -1
- package/views/3d/terrain/TerrainData.js +1 -1
- package/views/3d/terrain/terrainUtils.js +1 -1
- package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
- package/views/DOMContainer.d.ts +27 -9
- package/views/DOMContainer.js +1 -1
- package/views/PopupView.d.ts +6 -0
- package/views/VideoView.d.ts +27 -9
- package/views/View.d.ts +16 -7
- package/views/View.js +1 -1
- package/views/draw/support/InteractiveHandle.js +1 -1
- package/views/interactive/snapping/SnappingManagerPool.js +1 -1
- package/views/interactive/tooltip/components/ElevationModeSelect.js +1 -1
- package/views/layers/FeatureLikeLayerView.d.ts +1 -2
- package/views/layers/ParquetLayerView.d.ts +15 -0
- package/assets/esri/core/workers/chunks/05963f57cbe5a5249496.js +0 -1
- package/assets/esri/core/workers/chunks/131e89663014bc76c4ee.js +0 -1
- package/assets/esri/core/workers/chunks/14a3808427deaaa85bf2.js +0 -1
- package/assets/esri/core/workers/chunks/16053ce50642c5ffbfa9.js +0 -1
- package/assets/esri/core/workers/chunks/19689c66776b39cec234.js +0 -1
- package/assets/esri/core/workers/chunks/1a6027f08893aba9e677.js +0 -1
- package/assets/esri/core/workers/chunks/1b3f59fcad6e14c4d0e0.js +0 -1
- package/assets/esri/core/workers/chunks/20458fffda7692c78135.js +0 -1
- package/assets/esri/core/workers/chunks/2164fcaced72b0fda31f.js +0 -1
- package/assets/esri/core/workers/chunks/219d0935ce281902a49f.js +0 -1
- package/assets/esri/core/workers/chunks/2416518db4a0117541a8.js +0 -1
- package/assets/esri/core/workers/chunks/25b0885d3bc190b28c04.js +0 -1
- package/assets/esri/core/workers/chunks/2e75df54852d65e71330.js +0 -1
- package/assets/esri/core/workers/chunks/39d1d2fbe94afcd0a590.js +0 -1
- package/assets/esri/core/workers/chunks/3e9f056e4d1f0d067fc6.js +0 -1
- package/assets/esri/core/workers/chunks/43321f244effd3d67069.js +0 -1
- package/assets/esri/core/workers/chunks/47e6b5631a625298db5b.js +0 -1
- package/assets/esri/core/workers/chunks/561c48cb4d49b150765b.js +0 -1
- package/assets/esri/core/workers/chunks/5ea8809b6519c05ad9f6.js +0 -1
- package/assets/esri/core/workers/chunks/5f0c06f59121e09091f7.js +0 -1
- package/assets/esri/core/workers/chunks/62795a1573cbaa4b8e7a.js +0 -1
- package/assets/esri/core/workers/chunks/70ee81ba22badbbf045c.js +0 -1
- package/assets/esri/core/workers/chunks/794e5a67a88cb10c1a19.js +0 -1
- package/assets/esri/core/workers/chunks/841f67baf6a1634ada48.js +0 -1
- package/assets/esri/core/workers/chunks/8602b3587d4bdd9cc9f5.js +0 -1
- package/assets/esri/core/workers/chunks/898f43feeec74acde1ec.js +0 -1
- package/assets/esri/core/workers/chunks/8ef802ef8d108ae2e473.js +0 -1
- package/assets/esri/core/workers/chunks/94c5f3bc07fe516dafbe.js +0 -1
- package/assets/esri/core/workers/chunks/a101b89c18488f213d80.js +0 -1
- package/assets/esri/core/workers/chunks/a337ca943862b30b978d.js +0 -1
- package/assets/esri/core/workers/chunks/ac03976b8450331aa31e.js +0 -1
- package/assets/esri/core/workers/chunks/b0fd7cd5fc9526d30ddc.js +0 -1
- package/assets/esri/core/workers/chunks/b3e812c3a06b486f05d2.js +0 -1
- package/assets/esri/core/workers/chunks/ba48045a81acc4cda927.js +0 -1
- package/assets/esri/core/workers/chunks/c7699edd14497d174445.js +0 -1
- package/assets/esri/core/workers/chunks/dbcac8c1a76d4a9db13d.js +0 -1
- package/assets/esri/core/workers/chunks/de8d7f11f5a078c01b83.js +0 -1
- package/assets/esri/core/workers/chunks/f05de08e194a3f9b96f2.js +0 -1
- package/assets/esri/core/workers/chunks/f2b69bd704db62915a6b.js +0 -1
package/popup/FeaturesModel.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import t from"../core/Error.js";import{EventedAccessor as n}from"../core/Evented.js";import r from"../core/Logger.js";import{abortMaybe as i,removeMaybe as a}from"../core/maybe.js";import{debounce as o,logOnError as s,isAbortError as c}from"../core/promiseUtils.js";import{watch as l,when as u}from"../core/reactiveUtils.js";import{throttle as d}from"../core/throttle.js";import{property as f,subclass as p}from"../core/accessorSupport/decorators.js";import m from"../geometry/Point.js";import{project as h}from"../geometry/projectionUtils.js";import g from"../geometry/SpatialReference.js";import{geographicToWebMercator as _}from"../geometry/support/webMercatorUtils.js";import{getGraphicLayer as v}from"../graphic/graphicOriginUtils.js";import{fallbackObjectIDAttribute as y}from"../layers/LayerConstants.js";import{ActionsCollection as b,createDefaultActions as x}from"./actions.js";import{getSelectedTarget as S}from"./actionUtils.js";import C from"./FeatureModel.js";import w from"./support/FeatureAbilities.js";import{getDisplayedSymbol as T}from"../symbols/support/symbolUtils.js";import{system as E}from"../time/constants.js";import{highlightsSupported as D}from"../views/support/layerViewUtils.js";import{GoTo as O}from"../widgets/support/GoTo.js";let k=null;function A(e,t){switch(e){case`building-scene`:case`map-image`:case`tile`:case`imagery`:return!0;case`imagery-tile`:return t===`2d`;default:return!1}}let j=class extends O(n){constructor(e){super(e),this._centerAtLocationController=null,this._locationUpdateController=null,this._featureStreamFlush=null,this._highlightPromises={"highlight-active-feature":null,"highlight-selected-feature":null},this._defaultFeatureAbilities=new w,this._activeFeatureStream=null,this._featureStreamHasYielded=!1,this.actions=new b,this.activeFeature=null,this.aggregatedFeaturesEnabled=!1,this.defaultPopupTemplateEnabled=!1,this.diagnostics=null,this.featuresPerPage=20,this.featureMenuOpen=!1,this.featureItemAbilities=null,this.featureModels=[],this.heading=null,this.highlightEnabled=!0,this.includeDefaultActions=!0,this.open=!1,this.updateLocationEnabled=!1,this.view=null,this.zoomFactor=4,this._debouncedLocationUpdate=o(async()=>{this._cancelLocationUpdate();let e=new AbortController,{signal:t}=e;this._locationUpdateController=e,await this._locationUpdate({signal:t}).catch(()=>{}).finally(()=>{this._locationUpdateController===e&&(this._locationUpdateController=null)})})}initialize(){this.addHandles([l(()=>this.view?.scale,()=>{this.open&&s(this._debouncedLocationUpdate(),r.getLogger(this))}),l(()=>[this.highlightEnabled,this.selectedFeature,this.open,this.view],()=>this._highlightSelectedFeature()),l(()=>[this.highlightEnabled,this.activeFeature,this.open,this.view],()=>this._highlightActiveFeature()),l(()=>this.location,e=>this._locationChange(e)),l(()=>this.selectedFeature,e=>this._selectedFeatureChange(e)),l(()=>[this.featurePage,this.selectedFeatureIndex,this.featuresPerPage,this.featureMenuOpen,this.open,this.initialDisplayMode,this.featureItemAbilities?.attachmentsContent,this.featureItemAbilities?.chartAnimation,this.featureItemAbilities?.customContent,this.featureItemAbilities?.expressionContent,this.featureItemAbilities?.fieldsContent,this.featureItemAbilities?.mediaContent,this.featureItemAbilities?.relationshipContent,this.featureItemAbilities?.textContent,this.featureItemAbilities?.utilityNetworkAssociationsContent,this.actions,this.defaultPopupTemplateEnabled,this.includeDefaultActions,this.features,this.map,this.spatialReference,this.timeZone],()=>this._updateFeatureModels(),{initial:!0}),u(()=>!this.open,()=>this.aggregatedFeaturesEnabled=!1)])}destroy(){this._cancelLocationUpdate(),this._cancelCenterAtLocation(),this._cancelFeatureStream(),this._destroyFeatureModels(),this.aggregatedFeaturesEnabled=!1,this.view=null,this.map=null,this.spatialReference=null,this.timeZone=null}get defaultActions(){let e=this._get(`defaultActions`)||new b;return e.removeAll(),e.addMany(this.selectedFeatureItem?.defaultActions.toArray()??x()),e}get active(){return this.open&&!this.waitingForResult}set content(e){this.featureStream=null,this._set(`diagnostics`,null),this.features=[],this._set(`content`,e)}get effectiveHeading(){return this.selectedFeatureItem?.heading??this.heading}get featureCount(){return this.features.length}get featurePage(){return this._get(`featurePage`)}set featurePage(e){if(e==null){this.featureCount||this._set(`featurePage`,null);return}!Number.isInteger(e)||e<1||e>Math.ceil(this.featureCount/this.featuresPerPage)||e!==1&&e!==(this.featurePage??0)+1||(this._set(`featurePage`,e),this._updateFeatureModels(!0))}set features(e){if(this._get(`features`)===e)return;let t=e||[];this._set(`features`,t),(!this._activeFeatureStream||!t.length||this.featurePage==null)&&this._set(`featurePage`,t.length?1:null),this._syncSelectedFeatureIndex(t)}get featureStream(){return this._get(`featureStream`)||null}set featureStream(e){this._setFeatureStream(e)}_setFeatureStream(e,t,n){this._set(`diagnostics`,n??null),this._get(`featureStream`)!==e&&(this._set(`featureStream`,e),this._cancelFeatureStream(),e&&(this._featureStreamHasYielded=!1,this._set(`pendingLocation`,t??null),this._activeFeatureStream=e,this._consumeFeatureStream(e,t).catch(()=>{})))}get initialDisplayMode(){return this._initialDisplayMode??(this.view?.focusRegionEnabled?`list`:`feature`)}set initialDisplayMode(e){this._initialDisplayMode=e,this._syncSelectedFeatureIndex(this.features)}set location(e){let t=e?.spatialReference?.isWGS84&&this.spatialReference?.isWebMercator?_(e):e;this._set(`location`,t)}get map(){return this.view?.map??null}set map(e){this._override(`map`,e)}get pendingLocation(){return this._get(`pendingLocation`)??null}get streamingFeatures(){return this._activeFeatureStream!=null}get selectedFeature(){return this.selectedFeatureIndex===-1?null:this.features[this.selectedFeatureIndex]??null}get selectedFeatureIndex(){let e=this._get(`selectedFeatureIndex`);return typeof e==`number`?e:-1}set selectedFeatureIndex(e){let{featureCount:t}=this;(isNaN(e)||e<0||!t)&&(e=-1),this.activeFeature=null,this._set(`selectedFeatureIndex`,e)}get selectedFeatureItem(){return this.featureModels[this.selectedFeatureIndex]||null}get spatialReference(){return this.view?.spatialReference??null}set spatialReference(e){this._override(`spatialReference`,e)}get state(){return this.view?this.view.ready?`ready`:`disabled`:this.map?`ready`:`disabled`}get timeZone(){return this.view?.timeZone??E}set timeZone(e){this._overrideIfSome(`timeZone`,e)}get waitingForContents(){return this.featureModels.some(e=>e.waitingForContent)}get waitingForResult(){return this.streamingFeatures&&!this._featureStreamHasYielded}zoomTo(e){return this.callGoTo(e)}clear(){this._cancelFeatureStream(),this._set(`diagnostics`,null),this.set({featureStream:null,features:[],content:null,heading:null,location:null,activeFeature:null})}openFeatureStream(e){this._setFeatureStream(e.featureStream,e.location??null,e.diagnostics),this.open=!0}async fetchFeatures(e,n){let{view:r}=this;if(!r||!e)throw new t(`fetch-features:invalid-screenpoint-or-view`,`Cannot fetch features without a screen point/screen area and view.`,{screenPoint:e,view:r});let i={},a=r.fetchPopupFeatures(e,{diagnostics:i,pointerType:n?.event?.pointerType,defaultPopupTemplateEnabled:this.defaultPopupTemplateEnabled,signal:n?.signal});this._setFeatureStream(a,void 0,i)}next(){this.selectedFeatureIndex=this._getRoundRobinIndex(this.selectedFeatureIndex+1,this.featureCount)}previous(){this.selectedFeatureIndex=this._getRoundRobinIndex(this.selectedFeatureIndex-1,this.featureCount)}_syncSelectedFeatureIndex(e){let{selectedFeatureIndex:t}=this,n=this._activeFeatureStream!=null&&e.length>0;if(this.initialDisplayMode===`list`){n||(this.selectedFeatureIndex=-1);return}if(n&&t===-1){this.selectedFeatureIndex=0;return}n&&t!==-1||(this.selectedFeatureIndex=e.length?0:-1)}_centerAtLocation(){let{view:e}=this,n=S(this);this._cancelCenterAtLocation();let i=new AbortController,{signal:a}=i;return this._centerAtLocationController=i,!n||!e?Promise.reject(new t(`center-at-location:invalid-target-or-view`,`Cannot center at a location without a target and view.`,{target:n,view:e})):this.callGoTo({target:{target:n,scale:e.scale},options:{signal:a}}).catch(e=>{c(e)||r.getLogger(this).error(e)})}_getRoundRobinIndex(e,t){return(e+t)%t}_locationChange(e){let{selectedFeature:t,updateLocationEnabled:n,view:r}=this;r&&!this._locationUpdateController&&n&&e&&(!t||t.geometry)&&this._centerAtLocation()}async _selectedFeatureChange(e){let{location:t,updateLocationEnabled:n,view:r}=this;if(this.aggregatedFeaturesEnabled=!1,!e||!r)return;let i=v(e)?.type;if((i===`map-image`||i===`imagery`||i===`imagery-tile`)&&(e.symbol=await T(e)),(n||!t)&&e.geometry){if(e.geometry.type===`point`){this.location=e.geometry;return}let{labelPointExecute:t}=await import(`../geometry/operators/labelPointOperator.js`);this.location=t(e.geometry);return}if(n&&!e.geometry){await this._centerAtLocation();let e=r.center?.clone();e&&(this.location=e)}}_waitingForResultChange(){!this.featureCount&&this.featureStream&&(this.open=!1)}_destroyFeatureModels(){this.featureModels.forEach(e=>e&&!e.destroyed&&e.destroy()),this._set(`featureModels`,[])}_reconcileFeatureModels(e){let t=[],n=new Map,r=[];if(this.featureModels.forEach((i,a)=>{let o=i?.graphic;!o||i.destroyed?i.destroy():e[a]===o?t[a]=i:(r.push(i),n.has(o)||n.set(o,[]))}),r.length){for(let r=e.length-1;r>=0;r--)t[r]||n.get(e[r])?.push(r);r.forEach(e=>{let r=n.get(e.graphic)?.pop();r==null?e.destroy():t[r]=e})}return t}_updateFeatureModels(e=!1){let{selectedFeature:t,features:n}=this;if(!n.length){this._destroyFeatureModels();return}let r={abilities:this.featureItemAbilities??this._defaultFeatureAbilities,actions:this.actions,defaultPopupTemplateEnabled:this.defaultPopupTemplateEnabled,includeDefaultActions:this.includeDefaultActions,spatialReference:this.spatialReference,location:this.location,map:this.map,view:this.view,timeZone:this.timeZone},i=this._reconcileFeatureModels(n);i.forEach(e=>e.set(r));let a=e=>{let t=n[e];t&&!i[e]&&(i[e]=new C({...r,graphic:t}))};if(t&&a(this.selectedFeatureIndex),e||(this.featurePage??0)>1||this.open&&(this.featureMenuOpen||this.initialDisplayMode===`list`)){let e=Math.min((this.featurePage??0)*this.featuresPerPage,n.length);for(let t=0;t<e;t++)a(t)}this._set(`featureModels`,i)}_cancelCenterAtLocation(){this._centerAtLocationController=i(this._centerAtLocationController)}_cancelFeatureStream(){this._featureStreamFlush=a(this._featureStreamFlush);let e=this._activeFeatureStream;this._activeFeatureStream=null,this._set(`pendingLocation`,null),this._get(`featureStream`)===e&&this._set(`featureStream`,null),e?.return&&e.return(void 0).catch(()=>{})}async _locationUpdate(e){let{spatialReference:t}=this,n=this.selectedFeature,i=n?.geometry?.type,a=this.location;if(i&&i!==`mesh`&&t&&a&&n){if(i===`point`){let{labelPointExecute:t}=await import(`../geometry/operators/labelPointOperator.js`);if(e?.signal?.aborted||this.selectedFeature!==n||!n.geometry)return;this.location=t(n.geometry);return}try{let r=n.geometry,i=this._getHighlightLayer(n),o=n.getObjectId();if(!i||!this.view)return;if(o!=null){let n=this.view?.allLayerViews.find(e=>e.layer.uid===i.uid);if(!n||!(`queryFeatures`in n))return;let a=n.createQuery();a.outSpatialReference=t,a.objectIds=[o],a.returnGeometry=!0;let{features:s}=await n.queryFeatures(a,e);if(e?.signal?.aborted)return;r=s[0]?.geometry}if(!r||r.type===`mesh`)return;r=h(r,t),k??=await Promise.all([import(`../geometry/operators/intersectsOperator.js`),import(`../geometry/operators/proximityOperator.js`)]);let[{intersectsExecute:s},{proximityGetNearestCoordinate:c}]=k;if(!s(r,a)){let e=c(r,a).coordinate??a;this.selectedFeature===n&&(this.location=e)}}catch(e){c(e)||r.getLogger(this).error(e)}}}_cancelLocationUpdate(){this._locationUpdateController=i(this._locationUpdateController)}async _getLayerView(e,t){return await e.when(),e.whenLayerView(t)}_getHighlightLayer(e){let t=v(e),{layer:n}=e;return t&&`layer`in t&&t.layer?t.layer:t?.type===`map-notes`||t?.type===`sketch`||t?.type===`subtype-group`?t:n??t}_getHighlightLayerView(e,t){return t.type===`subtype-sublayer`&&t.parent&&this._mapIncludesLayer(t.parent)?this._getLayerView(e,t.parent):t&&this._mapIncludesLayer(t)?this._getLayerView(e,t):null}_getHighlightTarget(e,t,n){if(A(t.type,n))return e;let r=e.getObjectId();if(r!=null)return r;let i=t.type===`imagery`?void 0:`objectIdField`in t?t.objectIdField||y:null,a=e.attributes;return a&&i&&a[i]||e}_mapIncludesLayer(e){return!!this.map?.allLayers?.includes(e)}async _highlightFeature(e,t){this.removeHandles(e);let n=this[t];if(!n)return;let{highlightEnabled:r,view:i,open:a}=this;if(!i||!r||!a)return;let o=this._getHighlightLayer(n);if(!o)return;let s=this._getHighlightLayerView(i,o);if(!s)return;this._highlightPromises[e]=s;let c=await s;if(!c||!D(c)||this._highlightPromises[e]!==s||!this[t]||!this.highlightEnabled)return;let l=c.highlight(this._getHighlightTarget(n,o,i.type));this.addHandles(l,e)}async _highlightActiveFeature(){return this._highlightFeature(`highlight-active-feature`,`activeFeature`)}async _highlightSelectedFeature(){return this._highlightFeature(`highlight-selected-feature`,`selectedFeature`)}async _consumeFeatureStream(e,t){if(e!==this._activeFeatureStream)return;let n=[],r=d(()=>{let t=n;n=[],e===this._activeFeatureStream&&t.length&&this._addFeatures(t)},16),i={remove:()=>{r.remove(),n=[]}};this._featureStreamFlush=i;try{for await(let i of e){if(e!==this._activeFeatureStream)return;let a=!this._featureStreamHasYielded;a&&(this.features=[]),t!==void 0&&(this.location=t,t=void 0),this._set(`pendingLocation`,null),a?(this._addFeatures([i]),e===this._activeFeatureStream&&(this._featureStreamHasYielded=!0)):(n.push(i),r())}}finally{this._activeFeatureStream===e&&r.forceUpdate(),i.remove(),this._featureStreamFlush===i&&(this._featureStreamFlush=null),this._activeFeatureStream===e&&(this._featureStreamHasYielded||(this.features=[]),this._activeFeatureStream=null,this._set(`pendingLocation`,null),this._waitingForResultChange())}}_addFeatures(e){let{features:t}=this,n=new Set(t),r=e.filter(e=>!n.has(e)&&(n.add(e),!0));r.length&&(this.features=t.concat(r))}};e([f()],j.prototype,`_initialDisplayMode`,void 0),e([f()],j.prototype,`_activeFeatureStream`,void 0),e([f()],j.prototype,`_featureStreamHasYielded`,void 0),e([f({type:b})],j.prototype,`actions`,void 0),e([f({type:b,readOnly:!0})],j.prototype,`defaultActions`,null),e([f({readOnly:!0})],j.prototype,`active`,null),e([f()],j.prototype,`activeFeature`,void 0),e([f()],j.prototype,`aggregatedFeaturesEnabled`,void 0),e([f({value:null})],j.prototype,`content`,null),e([f({type:Boolean})],j.prototype,`defaultPopupTemplateEnabled`,void 0),e([f({readOnly:!0})],j.prototype,`diagnostics`,void 0),e([f({readOnly:!0})],j.prototype,`effectiveHeading`,null),e([f({readOnly:!0})],j.prototype,`featureCount`,null),e([f({value:null})],j.prototype,`featurePage`,null),e([f({value:[]})],j.prototype,`features`,null),e([f()],j.prototype,`featureStream`,null),e([f()],j.prototype,`featuresPerPage`,void 0),e([f()],j.prototype,`featureMenuOpen`,void 0),e([f({type:w})],j.prototype,`featureItemAbilities`,void 0),e([f({readOnly:!0})],j.prototype,`featureModels`,void 0),e([f()],j.prototype,`heading`,void 0),e([f()],j.prototype,`highlightEnabled`,void 0),e([f()],j.prototype,`includeDefaultActions`,void 0),e([f()],j.prototype,`initialDisplayMode`,null),e([f({type:m})],j.prototype,`location`,null),e([f()],j.prototype,`map`,null),e([f()],j.prototype,`open`,void 0),e([f({readOnly:!0})],j.prototype,`pendingLocation`,null),e([f({readOnly:!0})],j.prototype,`streamingFeatures`,null),e([f({value:null,readOnly:!0})],j.prototype,`selectedFeature`,null),e([f({value:-1})],j.prototype,`selectedFeatureIndex`,null),e([f({readOnly:!0})],j.prototype,`selectedFeatureItem`,null),e([f({type:g})],j.prototype,`spatialReference`,null),e([f({readOnly:!0})],j.prototype,`state`,null),e([f()],j.prototype,`timeZone`,null),e([f()],j.prototype,`updateLocationEnabled`,void 0),e([f()],j.prototype,`view`,void 0),e([f({readOnly:!0})],j.prototype,`waitingForContents`,null),e([f({readOnly:!0})],j.prototype,`waitingForResult`,null),e([f()],j.prototype,`zoomFactor`,void 0),j=e([p(`esri.popup.FeaturesModel`)],j);const M=j;export{M as default};
|
|
2
|
+
import{__decorate as e}from"tslib";import t from"../core/Error.js";import{EventedAccessor as n}from"../core/Evented.js";import r from"../core/Logger.js";import{abortMaybe as i}from"../core/maybe.js";import{debounce as a,logOnError as o,isAbortError as s}from"../core/promiseUtils.js";import{watch as c,when as l}from"../core/reactiveUtils.js";import{throttle as u}from"../core/throttle.js";import{property as d,subclass as f}from"../core/accessorSupport/decorators.js";import p from"../geometry/Point.js";import{project as m}from"../geometry/projectionUtils.js";import h from"../geometry/SpatialReference.js";import{geographicToWebMercator as g}from"../geometry/support/webMercatorUtils.js";import{getGraphicLayer as _}from"../graphic/graphicOriginUtils.js";import{fallbackObjectIDAttribute as v}from"../layers/LayerConstants.js";import{ActionsCollection as y,createDefaultActions as b}from"./actions.js";import{getSelectedTarget as x}from"./actionUtils.js";import S from"./FeatureModel.js";import C from"./support/FeatureAbilities.js";import{getDisplayedSymbol as w}from"../symbols/support/symbolUtils.js";import{system as T}from"../time/constants.js";import{highlightsSupported as E}from"../views/support/layerViewUtils.js";import{GoTo as D}from"../widgets/support/GoTo.js";const O=Symbol(`feature-stream-flush`);let k=null;function A(e,t){switch(e){case`building-scene`:case`map-image`:case`tile`:case`imagery`:return!0;case`imagery-tile`:return t===`2d`;default:return!1}}let j=class extends D(n){constructor(e){super(e),this._centerAtLocationController=null,this._locationUpdateController=null,this._highlightPromises={"highlight-active-feature":null,"highlight-selected-feature":null},this._defaultFeatureAbilities=new C,this._activeFeatureStream=null,this._featureStreamHasYielded=!1,this.actions=new y,this.activeFeature=null,this.aggregatedFeaturesEnabled=!1,this.defaultPopupTemplateEnabled=!1,this.diagnostics=null,this.featuresPerPage=20,this.featureMenuOpen=!1,this.featureItemAbilities=null,this.featureModels=[],this.heading=null,this.highlightEnabled=!0,this.includeDefaultActions=!0,this.open=!1,this.updateLocationEnabled=!1,this.view=null,this.zoomFactor=4,this._debouncedLocationUpdate=a(async()=>{this._cancelLocationUpdate();let e=new AbortController,{signal:t}=e;this._locationUpdateController=e,await this._locationUpdate({signal:t}).catch(()=>{}).finally(()=>{this._locationUpdateController===e&&(this._locationUpdateController=null)})})}initialize(){this.addHandles([c(()=>this.view?.scale,()=>{this.open&&o(this._debouncedLocationUpdate(),r.getLogger(this))}),c(()=>[this.highlightEnabled,this.selectedFeature,this.open,this.view],()=>this._highlightSelectedFeature()),c(()=>[this.highlightEnabled,this.activeFeature,this.open,this.view],()=>this._highlightActiveFeature()),c(()=>this.location,e=>this._locationChange(e)),c(()=>this.selectedFeature,e=>this._selectedFeatureChange(e)),c(()=>[this.featurePage,this.selectedFeatureIndex,this.featuresPerPage,this.featureMenuOpen,this.open,this.initialDisplayMode,this.featureItemAbilities?.attachmentsContent,this.featureItemAbilities?.chartAnimation,this.featureItemAbilities?.customContent,this.featureItemAbilities?.expressionContent,this.featureItemAbilities?.fieldsContent,this.featureItemAbilities?.mediaContent,this.featureItemAbilities?.relationshipContent,this.featureItemAbilities?.textContent,this.featureItemAbilities?.utilityNetworkAssociationsContent,this.actions,this.defaultPopupTemplateEnabled,this.includeDefaultActions,this.features,this.map,this.spatialReference,this.timeZone],()=>this._updateFeatureModels(),{initial:!0}),l(()=>!this.open,()=>this.aggregatedFeaturesEnabled=!1)])}destroy(){this._cancelLocationUpdate(),this._cancelCenterAtLocation(),this._cancelFeatureStream(),this._destroyFeatureModels(),this.aggregatedFeaturesEnabled=!1,this.view=null,this.map=null,this.spatialReference=null,this.timeZone=null}get defaultActions(){let e=this._get(`defaultActions`)||new y;return e.removeAll(),e.addMany(this.selectedFeatureItem?.defaultActions.toArray()??b()),e}get active(){return this.open&&!this.waitingForResult}set content(e){this.featureStream=null,this._set(`diagnostics`,null),this.features=[],this._set(`content`,e)}get effectiveHeading(){return this.selectedFeatureItem?.heading??this.heading}get featureCount(){return this.features.length}get featurePage(){return this._get(`featurePage`)}set featurePage(e){if(e==null){this.featureCount||this._set(`featurePage`,null);return}!Number.isInteger(e)||e<1||e>Math.ceil(this.featureCount/this.featuresPerPage)||e!==1&&e!==(this.featurePage??0)+1||this._set(`featurePage`,e)}set features(e){if(this._get(`features`)===e)return;let t=e||[];this._set(`features`,t),(!this._activeFeatureStream||!t.length||this.featurePage==null)&&(this.featurePage=t.length?1:null),this._syncSelectedFeatureIndex(t)}get featureStream(){return this._get(`featureStream`)||null}set featureStream(e){this._setFeatureStream(e)}_setFeatureStream(e,t,n){this._set(`diagnostics`,n??null),this._get(`featureStream`)!==e&&(this._set(`featureStream`,e),this._cancelFeatureStream(),e&&(this._featureStreamHasYielded=!1,this._set(`pendingLocation`,t??null),this._activeFeatureStream=e,this._consumeFeatureStream(e,t).catch(()=>{})))}get initialDisplayMode(){return this._initialDisplayMode??(this.view?.focusRegionVisible?`list`:`feature`)}set initialDisplayMode(e){this._initialDisplayMode=e,this._syncSelectedFeatureIndex(this.features)}set location(e){let t=e?.spatialReference?.isWGS84&&this.spatialReference?.isWebMercator?g(e):e;this._set(`location`,t)}get map(){return this.view?.map??null}set map(e){this._override(`map`,e)}get pendingLocation(){return this._get(`pendingLocation`)??null}get streamingFeatures(){return this._activeFeatureStream!=null}get selectedFeature(){return this.selectedFeatureIndex===-1?null:this.features[this.selectedFeatureIndex]??null}get selectedFeatureIndex(){let e=this._get(`selectedFeatureIndex`);return typeof e==`number`?e:-1}set selectedFeatureIndex(e){let{featureCount:t}=this;(isNaN(e)||e<0||!t)&&(e=-1),this.activeFeature=null,this._set(`selectedFeatureIndex`,e)}get selectedFeatureItem(){return this.featureModels[this.selectedFeatureIndex]||null}get spatialReference(){return this.view?.spatialReference??null}set spatialReference(e){this._override(`spatialReference`,e)}get state(){return this.view?this.view.ready?`ready`:`disabled`:this.map?`ready`:`disabled`}get timeZone(){return this.view?.timeZone??T}set timeZone(e){this._overrideIfSome(`timeZone`,e)}get waitingForContents(){return this.featureModels.some(e=>e.waitingForContent)}get waitingForResult(){return this.streamingFeatures&&!this._featureStreamHasYielded}zoomTo(e){return this.callGoTo(e)}clear(){this._cancelFeatureStream(),this._set(`diagnostics`,null),this.set({featureStream:null,features:[],content:null,heading:null,location:null,activeFeature:null})}openFeatureStream(e){this._setFeatureStream(e.featureStream,e.location??null,e.diagnostics),this.open=!0}async fetchFeatures(e,n){let{view:r}=this;if(!r||!e)throw new t(`fetch-features:invalid-screenpoint-or-view`,`Cannot fetch features without a screen point/screen area and view.`,{screenPoint:e,view:r});let i={},a=r.fetchPopupFeatures(e,{diagnostics:i,pointerType:n?.event?.pointerType,defaultPopupTemplateEnabled:this.defaultPopupTemplateEnabled,signal:n?.signal});this._setFeatureStream(a,void 0,i)}next(){this.selectedFeatureIndex=this._getRoundRobinIndex(this.selectedFeatureIndex+1,this.featureCount)}previous(){this.selectedFeatureIndex=this._getRoundRobinIndex(this.selectedFeatureIndex-1,this.featureCount)}_syncSelectedFeatureIndex(e){let{selectedFeatureIndex:t}=this,n=this._activeFeatureStream!=null&&e.length>0;if(this.initialDisplayMode===`list`){n||(this.selectedFeatureIndex=-1);return}if(n&&t===-1){this.selectedFeatureIndex=0;return}n&&t!==-1||(this.selectedFeatureIndex=e.length?0:-1)}_centerAtLocation(){let{view:e}=this,n=x(this);this._cancelCenterAtLocation();let i=new AbortController,{signal:a}=i;return this._centerAtLocationController=i,!n||!e?Promise.reject(new t(`center-at-location:invalid-target-or-view`,`Cannot center at a location without a target and view.`,{target:n,view:e})):this.callGoTo({target:{target:n,scale:e.scale},options:{signal:a}}).catch(e=>{s(e)||r.getLogger(this).error(e)})}_getRoundRobinIndex(e,t){return(e+t)%t}_locationChange(e){let{selectedFeature:t,updateLocationEnabled:n,view:r}=this;r&&!this._locationUpdateController&&n&&e&&(!t||t.geometry)&&this._centerAtLocation()}async _selectedFeatureChange(e){let{location:t,updateLocationEnabled:n,view:r}=this;if(this.aggregatedFeaturesEnabled=!1,!e||!r)return;let i=_(e)?.type;if((i===`map-image`||i===`imagery`||i===`imagery-tile`)&&(e.symbol=await w(e)),(n||!t)&&e.geometry){if(e.geometry.type===`point`){this.location=e.geometry;return}let{labelPointExecute:t}=await import(`../geometry/operators/labelPointOperator.js`);this.location=t(e.geometry);return}if(n&&!e.geometry){await this._centerAtLocation();let e=r.center?.clone();e&&(this.location=e)}}_waitingForResultChange(){!this.featureCount&&this.featureStream&&(this.open=!1)}_destroyFeatureModels(){this.featureModels.forEach(e=>e&&!e.destroyed&&e.destroy()),this._set(`featureModels`,[])}_reconcileFeatureModels(e){let t=[],n=new Map,r=[];if(this.featureModels.forEach((i,a)=>{let o=i?.graphic;!o||i.destroyed?i.destroy():e[a]===o?t[a]=i:(r.push(i),n.has(o)||n.set(o,[]))}),r.length){for(let r=e.length-1;r>=0;r--)t[r]||n.get(e[r])?.push(r);r.forEach(e=>{let r=n.get(e.graphic)?.pop();r==null?e.destroy():t[r]=e})}return t}_updateFeatureModels(){let{selectedFeature:e,features:t}=this;if(!t.length){this._destroyFeatureModels();return}let n={abilities:this.featureItemAbilities??this._defaultFeatureAbilities,actions:this.actions,defaultPopupTemplateEnabled:this.defaultPopupTemplateEnabled,includeDefaultActions:this.includeDefaultActions,spatialReference:this.spatialReference,location:this.location,map:this.map,view:this.view,timeZone:this.timeZone},r=this._reconcileFeatureModels(t);r.forEach(e=>e.set(n));let i=e=>{let i=t[e];i&&!r[e]&&(r[e]=new S({...n,graphic:i}))};if(e&&i(this.selectedFeatureIndex),(this.featurePage??0)>1||this.open&&(this.featureMenuOpen||this.initialDisplayMode===`list`)){let e=Math.min((this.featurePage??0)*this.featuresPerPage,t.length);for(let t=0;t<e;t++)i(t)}this._set(`featureModels`,r)}_cancelCenterAtLocation(){this._centerAtLocationController=i(this._centerAtLocationController)}_cancelFeatureStream(){this.removeHandles(O);let e=this._activeFeatureStream;this._activeFeatureStream=null,this._set(`pendingLocation`,null),this._get(`featureStream`)===e&&this._set(`featureStream`,null),e?.return&&e.return(void 0).catch(()=>{})}async _locationUpdate(e){let{spatialReference:t}=this,n=this.selectedFeature,i=n?.geometry?.type,a=this.location;if(i&&i!==`mesh`&&t&&a&&n){if(i===`point`){let{labelPointExecute:t}=await import(`../geometry/operators/labelPointOperator.js`);if(e?.signal?.aborted||this.selectedFeature!==n||!n.geometry)return;this.location=t(n.geometry);return}try{let r=n.geometry,i=this._getHighlightLayer(n),o=n.getObjectId();if(!i||!this.view)return;if(o!=null){let n=this.view?.allLayerViews.find(e=>e.layer.uid===i.uid);if(!n||!(`queryFeatures`in n))return;let a=n.createQuery();a.outSpatialReference=t,a.objectIds=[o],a.returnGeometry=!0;let{features:s}=await n.queryFeatures(a,e);if(e?.signal?.aborted)return;r=s[0]?.geometry}if(!r||r.type===`mesh`)return;r=m(r,t),k??=await Promise.all([import(`../geometry/operators/intersectsOperator.js`),import(`../geometry/operators/proximityOperator.js`)]);let[{intersectsExecute:s},{proximityGetNearestCoordinate:c}]=k;if(!s(r,a)){let e=c(r,a).coordinate??a;this.selectedFeature===n&&(this.location=e)}}catch(e){s(e)||r.getLogger(this).error(e)}}}_cancelLocationUpdate(){this._locationUpdateController=i(this._locationUpdateController)}async _getLayerView(e,t){return await e.when(),e.whenLayerView(t)}_getHighlightLayer(e){let t=_(e),{layer:n}=e;return t&&`layer`in t&&t.layer?t.layer:t?.type===`map-notes`||t?.type===`sketch`||t?.type===`subtype-group`?t:n??t}_getHighlightLayerView(e,t){return t.type===`subtype-sublayer`&&t.parent&&this._mapIncludesLayer(t.parent)?this._getLayerView(e,t.parent):t&&this._mapIncludesLayer(t)?this._getLayerView(e,t):null}_getHighlightTarget(e,t,n){if(A(t.type,n))return e;let r=e.getObjectId();if(r!=null)return r;let i=t.type===`imagery`?void 0:`objectIdField`in t?t.objectIdField||v:null,a=e.attributes;return a&&i&&a[i]||e}_mapIncludesLayer(e){return!!this.map?.allLayers?.includes(e)}async _highlightFeature(e,t){this.removeHandles(e);let n=this[t];if(!n)return;let{highlightEnabled:r,view:i,open:a}=this;if(!i||!r||!a)return;let o=this._getHighlightLayer(n);if(!o)return;let s=this._getHighlightLayerView(i,o);if(!s)return;this._highlightPromises[e]=s;let c=await s;if(!c||!E(c)||this._highlightPromises[e]!==s||!this[t]||!this.highlightEnabled)return;let l=c.highlight(this._getHighlightTarget(n,o,i.type));this.addHandles(l,e)}async _highlightActiveFeature(){return this._highlightFeature(`highlight-active-feature`,`activeFeature`)}async _highlightSelectedFeature(){return this._highlightFeature(`highlight-selected-feature`,`selectedFeature`)}async _consumeFeatureStream(e,t){if(e!==this._activeFeatureStream)return;let n=[],r=u(()=>{let t=n;n=[],e===this._activeFeatureStream&&t.length&&this._addFeatures(t)},16);this.addHandles({remove:()=>{r.remove(),n=[]}},O);try{for await(let i of e){if(e!==this._activeFeatureStream)return;let a=!this._featureStreamHasYielded;a&&(this.features=[]),t!==void 0&&(this.location=t,t=void 0),this._set(`pendingLocation`,null),a?(this._addFeatures([i]),e===this._activeFeatureStream&&(this._featureStreamHasYielded=!0)):(n.push(i),r())}}finally{this._activeFeatureStream===e&&r.forceUpdate(),this._activeFeatureStream===e&&(this.removeHandles(O),this._featureStreamHasYielded||(this.features=[]),this._activeFeatureStream=null,this._set(`pendingLocation`,null),this._waitingForResultChange())}}_addFeatures(e){let{features:t}=this,n=new Set(t),r=e.filter(e=>!n.has(e)&&(n.add(e),!0));r.length&&(this.features=t.concat(r))}};e([d()],j.prototype,`_initialDisplayMode`,void 0),e([d()],j.prototype,`_activeFeatureStream`,void 0),e([d()],j.prototype,`_featureStreamHasYielded`,void 0),e([d({type:y})],j.prototype,`actions`,void 0),e([d({type:y,readOnly:!0})],j.prototype,`defaultActions`,null),e([d({readOnly:!0})],j.prototype,`active`,null),e([d()],j.prototype,`activeFeature`,void 0),e([d()],j.prototype,`aggregatedFeaturesEnabled`,void 0),e([d({value:null})],j.prototype,`content`,null),e([d({type:Boolean})],j.prototype,`defaultPopupTemplateEnabled`,void 0),e([d({readOnly:!0})],j.prototype,`diagnostics`,void 0),e([d({readOnly:!0})],j.prototype,`effectiveHeading`,null),e([d({readOnly:!0})],j.prototype,`featureCount`,null),e([d({value:null})],j.prototype,`featurePage`,null),e([d({value:[]})],j.prototype,`features`,null),e([d()],j.prototype,`featureStream`,null),e([d()],j.prototype,`featuresPerPage`,void 0),e([d()],j.prototype,`featureMenuOpen`,void 0),e([d({type:C})],j.prototype,`featureItemAbilities`,void 0),e([d({readOnly:!0})],j.prototype,`featureModels`,void 0),e([d()],j.prototype,`heading`,void 0),e([d()],j.prototype,`highlightEnabled`,void 0),e([d()],j.prototype,`includeDefaultActions`,void 0),e([d()],j.prototype,`initialDisplayMode`,null),e([d({type:p})],j.prototype,`location`,null),e([d()],j.prototype,`map`,null),e([d()],j.prototype,`open`,void 0),e([d({readOnly:!0})],j.prototype,`pendingLocation`,null),e([d({readOnly:!0})],j.prototype,`streamingFeatures`,null),e([d({value:null,readOnly:!0})],j.prototype,`selectedFeature`,null),e([d({value:-1})],j.prototype,`selectedFeatureIndex`,null),e([d({readOnly:!0})],j.prototype,`selectedFeatureItem`,null),e([d({type:h})],j.prototype,`spatialReference`,null),e([d({readOnly:!0})],j.prototype,`state`,null),e([d()],j.prototype,`timeZone`,null),e([d()],j.prototype,`updateLocationEnabled`,void 0),e([d()],j.prototype,`view`,void 0),e([d({readOnly:!0})],j.prototype,`waitingForContents`,null),e([d({readOnly:!0})],j.prototype,`waitingForResult`,null),e([d()],j.prototype,`zoomFactor`,void 0),j=e([f(`esri.popup.FeaturesModel`)],j);const M=j;export{M as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import e from"../../core/Error.js";import has from"../../core/has.js";import{findAssociatedFeatureService as t}from"../../layers/support/associatedFeatureServiceUtils.js";import{getLayerModuleTypeStrict as n}from"../../layers/support/fetchService.js";import{LayerLoadContext as r}from"../../layers/support/LayerLoadContext.js";import{layersLoaderMap as i}from"../../layers/support/layersLoader.js";import{sceneServiceLayerTypeToClassName as a,applyPreferredHostToPortalItem as o,getPreferredHost as s}from"../../layers/support/layerUtils.js";import c from"../PortalItem.js";import{getFirstLayerOrTable as l,getNumLayersAndTables as u,preprocessFSItemData as d,getLayerOrTable as f,layerTypeToLayerModuleType as p,populateSceneServiceItemData as m}from"./loadUtils.js";import{hasTypeKeyword as h}from"./portalItemUtils.js";async function g(e){let{portalItem:t}=e;t&&!(t instanceof c)&&(t=new c(t));let n=await _(t),r=n.constructor;return new r({portalItem:t,...n.properties})}async function _(e){return await e.load(),y(await v(e,new r))}async function v(t,n){switch(t.type){case`3DTiles Service`:return t.typeKeywords.includes(`3DObject`)?j():t.typeKeywords.includes(`GaussianSplat`)?A():k();case`CSV`:return M();case`Feature Collection`:return C(t);case`Feature Service`:return x(t,n);case`Feed`:return
|
|
2
|
+
import e from"../../core/Error.js";import has from"../../core/has.js";import{findAssociatedFeatureService as t}from"../../layers/support/associatedFeatureServiceUtils.js";import{getLayerModuleTypeStrict as n}from"../../layers/support/fetchService.js";import{LayerLoadContext as r}from"../../layers/support/LayerLoadContext.js";import{layersLoaderMap as i}from"../../layers/support/layersLoader.js";import{sceneServiceLayerTypeToClassName as a,applyPreferredHostToPortalItem as o,getPreferredHost as s}from"../../layers/support/layerUtils.js";import c from"../PortalItem.js";import{getFirstLayerOrTable as l,getNumLayersAndTables as u,preprocessFSItemData as d,getLayerOrTable as f,layerTypeToLayerModuleType as p,populateSceneServiceItemData as m}from"./loadUtils.js";import{hasTypeKeyword as h}from"./portalItemUtils.js";async function g(e){let{portalItem:t}=e;t&&!(t instanceof c)&&(t=new c(t));let n=await _(t),r=n.constructor;return new r({portalItem:t,...n.properties})}async function _(e){return await e.load(),y(await v(e,new r))}async function v(t,n){switch(t.type){case`3DTiles Service`:return t.typeKeywords.includes(`3DObject`)?j():t.typeKeywords.includes(`GaussianSplat`)?A():k();case`CSV`:return M();case`Feature Collection`:return C(t);case`Feature Service`:return x(t,n);case`Feed`:return z();case`GeoJson`:return O();case`Group Layer`:return B();case`Image Service`:return w(t,n);case`KML`:return N();case`Knowledge Graph Layer`:return P();case`Map Service`:return b(t,n);case`Media Layer`:return V();case`Parquet Feature Layer`:return H();case`Scene Service`:return S(t,n);case`Stream Service`:return T();case`Video Service`:return E(t,n);case`Vector Tile Service`:return D();case`WCS`:return F();case`WFS`:return I();case`WMS`:return L();case`WMTS`:return R();default:throw new e(`portal:unknown-item-type`,"Unknown item type '${type}'",{type:t.type})}}async function y(e){let t=e.className,n=i[t];return{constructor:await n(),properties:e.properties}}async function b(e,t){return await U(e,t)?{className:`TileLayer`}:{className:`MapImageLayer`}}async function x(e,t){let n=await W(e,t);if(typeof n==`object`){let{sourceJSON:e,className:t}=n,r={sourceJSON:e};return n.id!=null&&(r.layerId=n.id),{className:t||`FeatureLayer`,properties:r}}return{className:`GroupLayer`}}async function S(e,n){let r=await W(e,n,async()=>{try{if(!e.url)return[];let{serverUrl:r}=await t(e.url,{sceneLayerItem:e});return(await n.fetchServiceMetadata(r))?.tables??[]}catch{return[]}});if(typeof r==`object`){let t={},i;if(r.id==null?i=e.url:(t.layerId=r.id,i=`${e.url}/layers/${r.id}`),e.typeKeywords?.length){for(let t of Object.keys(a))if(e.typeKeywords.includes(t))return{className:a[t]}}let o=await n.fetchServiceMetadata(i,{customParameters:await n.fetchCustomParameters(e,e=>l(e)?.customParameters)});return{className:a[o?.layerType]||`SceneLayer`,properties:t}}return r===!1&&(await n.fetchServiceMetadata(e.url))?.layerType===`Voxel`?{className:`VoxelLayer`}:{className:`GroupLayer`}}async function C(e){await e.load();let t=h(e,`Map Notes`),n=h(e,`Markup`);if(t||n)return{className:has(`sketch-layer-enabled`)?`SketchLayer`:`MapNotesLayer`};if(h(e,`Route Layer`))return{className:`RouteLayer`};let r=await e.fetchData();return u(r)===1?{className:`FeatureLayer`}:{className:`GroupLayer`}}async function w(e,t){await e.load();let n=e.typeKeywords?.map(e=>e.toLowerCase())??[];if(n.includes(`elevation 3d layer`))return{className:`ElevationLayer`};if(n.includes(`tiled imagery`))return{className:`ImageryTileLayer`};let r=(await t.fetchItemData(e))?.layerType;if(r===`ArcGISTiledImageServiceLayer`)return{className:`ImageryTileLayer`};if(r===`ArcGISImageServiceLayer`)return{className:`ImageryLayer`};let i=await t.fetchServiceMetadata(e.url,{customParameters:await t.fetchCustomParameters(e)}),a=i.cacheType?.toLowerCase(),o=i.capabilities?.toLowerCase().includes(`tilesonly`),s=i.tileInfo?.format?.toLowerCase()??``,c=a==null&&[`jpg`,`jpeg`,`png`,`png8`,`png24`,`png32`,`mixed`].includes(s);return a===`map`||c||o?{className:`ImageryTileLayer`}:{className:`ImageryLayer`}}function T(){return{className:`StreamLayer`}}async function E(e,t){return typeof await W(e,t)==`object`?{className:`VideoLayer`}:{className:`GroupLayer`}}function D(){return{className:`VectorTileLayer`}}function O(){return{className:`GeoJSONLayer`}}function k(){return{className:`IntegratedMesh3DTilesLayer`}}function A(){return{className:`GaussianSplatLayer`}}function j(){return{className:`UnsupportedLayer`}}function M(){return{className:`CSVLayer`}}function N(){return{className:`KMLLayer`}}function P(){return{className:`KnowledgeGraphLayer`}}function F(){return{className:`WCSLayer`}}function I(){return{className:`WFSLayer`}}function L(){return{className:`WMSLayer`}}function R(){return{className:`WMTSLayer`}}function z(){return{className:`StreamLayer`}}function B(){return{className:`GroupLayer`}}function V(){return{className:`MediaLayer`}}function H(){return{className:`ParquetLayer`}}async function U(e,t){let{tileInfo:n}=await t.fetchServiceMetadata(e.url,{customParameters:await t.fetchCustomParameters(e)});return n}async function W(t,r,i){let{url:a,type:c}=t,h=c===`Feature Service`;if(!a)return{};if(/\/\d+$/.test(a)){if(h){let i=await r.fetchServiceMetadata(a,{customParameters:await r.fetchCustomParameters(t,e=>l(e)?.customParameters)});o(t,s());let{id:c,type:u}=i,d=n(u);if(!d)throw new e(`from-portal-item:unsupported`,`'${a}' has unsupported type: '${u}'`);return{id:c,className:d,sourceJSON:i}}return{}}if(c===`Video Service`)return((await r.fetchServiceMetadata(a)).layers?.length??0)>1?!1:{};await t.load();let g=await r.fetchItemData(t);if(h){let{data:n,preferredHost:i}=await d(g,a,r);if(u(n)===0)throw new e(`from-portal-item:no-data`,`The feature service '${a}' does not have any supported layers or tables`);o(t,i);let s=G(n);if(typeof s==`object`){let e=f(n,s.id);return{id:s.id,className:p(e?.layerType)}}return s}if(c===`Scene Service`&&(g=await m(t,g,r)),u(g)>0)return G(g);let _=await r.fetchServiceMetadata(a);return i&&(_.tables=await i()),G(_)}function G(e){return u(e)===1&&{id:l(e)?.id}}export{g as fromItem,v as selectLayerClassPath};
|
|
@@ -19,7 +19,7 @@ export interface VectorFieldRendererProperties extends VisualVariablesMixinPrope
|
|
|
19
19
|
* first band. `Direction` will return values from the second band. If the data represents u (zonal) and v (meridional) speed components, values are automatically converted
|
|
20
20
|
* to `Magnitude` and `Direction`.
|
|
21
21
|
*
|
|
22
|
-
* @see [Sample - Visualizing wind data with VectorFieldRenderer](https://developers.arcgis.com/javascript/latest/sample-code/layers-
|
|
22
|
+
* @see [Sample - Visualizing wind data with VectorFieldRenderer](https://developers.arcgis.com/javascript/latest/sample-code/layers-hosted-imagerytilelayer/)
|
|
23
23
|
* @see [Styles and data visualization](https://developers.arcgis.com/javascript/latest/visualization/)
|
|
24
24
|
* @example
|
|
25
25
|
* const renderer = new VectorFieldRenderer({
|
|
@@ -54,7 +54,7 @@ export interface VectorFieldRendererProperties extends VisualVariablesMixinPrope
|
|
|
54
54
|
* It can also be used to symbolize a single raster layer where the symbols are scalar.
|
|
55
55
|
* The direction of the raster defines the angles, while the magnitude of the raster defines the size of the symbol.
|
|
56
56
|
*
|
|
57
|
-
* [](https://developers.arcgis.com/javascript/latest/sample-code/layers-
|
|
57
|
+
* [](https://developers.arcgis.com/javascript/latest/sample-code/layers-hosted-imagerytilelayer/)
|
|
58
58
|
*
|
|
59
59
|
* > [!WARNING]
|
|
60
60
|
* >
|
|
@@ -65,7 +65,7 @@ export interface VectorFieldRendererProperties extends VisualVariablesMixinPrope
|
|
|
65
65
|
* > The [visualVariables](https://developers.arcgis.com/javascript/latest/references/core/renderers/VectorFieldRenderer/#visualVariables) set on the VectorFieldRenderer are not supported in the [Legend](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-legend/).
|
|
66
66
|
*
|
|
67
67
|
* @since 4.17
|
|
68
|
-
* @see [Sample - Visualizing wind data with VectorFieldRenderer](https://developers.arcgis.com/javascript/latest/sample-code/layers-
|
|
68
|
+
* @see [Sample - Visualizing wind data with VectorFieldRenderer](https://developers.arcgis.com/javascript/latest/sample-code/layers-hosted-imagerytilelayer/)
|
|
69
69
|
* @example
|
|
70
70
|
* const renderer = new VectorFieldRenderer({
|
|
71
71
|
* style: "beaufort-kn", // Beaufort point symbol (knots)
|
|
@@ -152,7 +152,7 @@ export default class VectorFieldRenderer extends VectorFieldRendererSuperclass {
|
|
|
152
152
|
* first band. `Direction` will return values from the second band. If the data represents u (zonal) and v (meridional) speed components, values are automatically converted
|
|
153
153
|
* to `Magnitude` and `Direction`.
|
|
154
154
|
*
|
|
155
|
-
* @see [Sample - Visualizing wind data with VectorFieldRenderer](https://developers.arcgis.com/javascript/latest/sample-code/layers-
|
|
155
|
+
* @see [Sample - Visualizing wind data with VectorFieldRenderer](https://developers.arcgis.com/javascript/latest/sample-code/layers-hosted-imagerytilelayer/)
|
|
156
156
|
* @see [Styles and data visualization](https://developers.arcgis.com/javascript/latest/visualization/)
|
|
157
157
|
* @example
|
|
158
158
|
* const renderer = new VectorFieldRenderer({
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{createUniqueColors as e}from"../../core/colorUtils.js";import t from"../../core/Error.js";import{clone as n}from"../../core/lang.js";import{ensureClass as r}from"../../core/accessorSupport/ensureType.js";import{fetchMessageBundle as i}from"../../intl/messages.js";import a from"../../renderers/ClassBreaksRenderer.js";import o from"../../renderers/PointCloudRGBRenderer.js";import s from"../../renderers/PointCloudStretchRenderer.js";import c from"../../renderers/support/AuthoringInfo.js";import l from"../../renderers/support/AuthoringInfoVisualVariable.js";import{setLabelsForClassBreaks as u,createColorStops as d}from"../../renderers/support/utils.js";import f from"../../renderers/visualVariables/ColorVariable.js";import p from"../../renderers/visualVariables/support/ColorStop.js";import m from"../../renderers/visualVariables/support/VisualVariableLegendOptions.js";import h from"../heuristics/ageUnit.js";import g from"../heuristics/outline.js";import _ from"../heuristics/sizeRange.js";import{spliceVisualVariables as v,updateAuthoringInfoVisualVariable as y,processRegenerateParams as b,getRendererToUpdate as x,getStyleType as S,hasOutlineVV as C,hasScaleDependentSizeVV as w,findColorVVIndex as T,findOutlineVVIndex as E,findScaleDependentSizeVVIndex as D}from"./support/regenerateUtils.js";import{resolveDataSeriesInfo as O}from"./support/timeSeriesUtils.js";import{errorCallback as k,getTitleAndExpressionForAgeRenderer as A,updateAgeRendererAuthoringInfoVV as j,getClassBreaks as M,getSummaryStatistics as N,getPointSizeAlgorithm as P,createSymbol as F,getSymbolOutlineFromScheme as I,getSymbolSizeFromScheme as L,verifyBasicFieldValidity as R,isValidPointSize as z,getDefaultDataRange as ee,createDefaultStopValues as te,createStopValues as ne,getDataRange as re,createDataValues as ie,getBasemapInfo as ae}from"./support/utils.js";import B from"../statistics/summaryStatisticsForTimeSeries.js";import{verifyDates as oe,supportedAgeUnits as V}from"../statistics/support/ageUtils.js";import{verifyBinningParams as H}from"../support/binningUtils.js";import{isAnyDateField as U,getNormalizationType as se,getFieldsList as W}from"../support/utils.js";import{createLayerAdapter as G,featureCapableLayerTypes as K,getLayerTypeLabels as q,binningCapableLayerTypes as J}from"../support/adapters/support/layerUtils.js";import{cloneScheme as Y,createScheme as ce,getSchemes as le,getSchemeById as ue}from"../symbology/color.js";import{getColorSchemeDefinition as de}from"../symbology/support/utils.js";const fe=2**53-1;async function pe(e){let n=O({...e});if(!(n&&n.layer&&(n.field||n.valueExpression||n.sqlExpression)))throw new t(`color-visual-variable:missing-parameters`,`'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required`);if(n.valueExpression&&!n.sqlExpression&&!n.view)throw new t(`color-visual-variable:missing-parameters`,`View is required when 'valueExpression' is specified`);n.forBinning&&H(n,`color-visual-variable`);let r={...n},i=n.forBinning?J:K,a=G(r.layer,i,n.forBinning);if(!a)throw new t(`color-visual-variable:invalid-parameters`,`'layer' must be one of these types: `+q(i).join(`, `));let o=r.signal==null?null:{signal:r.signal};if(await a.load(o),a.geometryType!==`mesh`&&r.worldScale&&r.view?.type!==`3d`)throw new t(`color-visual-variable:invalid-parameters`,`'view' parameter should be an instance of SceneView when 'worldScale' parameter is true`);let s=await W({field:r.field,normalizationField:r.normalizationField,valueExpression:r.valueExpression}),c=R(a,s,`color-visual-variable:invalid-parameters`);if(c)throw c;return{...r,layer:a}}async function me(e){let n=O({...e});if(!(n&&n.layer&&(n.field||n.valueExpression||n.sqlExpression)))throw new t(`color-continuous-renderer:missing-parameters`,`'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required`);if(n.valueExpression&&!n.sqlExpression&&!n.view)throw new t(`color-continuous-renderer:missing-parameters`,`View is required when 'valueExpression' is specified`);n.forBinning&&H(n,`color-continuous-renderer`);let r={...n};r.symbolType=r.symbolType||`2d`,r.defaultSymbolEnabled??=!0;let i=n.forBinning?J:K,a=G(r.layer,i,n.forBinning);if(!a)throw new t(`color-continuous-renderer:invalid-parameters`,`'layer' must be one of these types: `+q(i).join(`, `));let o=r.signal==null?null:{signal:r.signal};await a.load(o);let s=a.geometryType;r.outlineOptimizationEnabled=s===`polygon`&&r.outlineOptimizationEnabled;let c=`featureReduction`in r.layer&&r.layer.featureReduction?.type===`cluster`;if(r.sizeOptimizationEnabled=(s===`point`||s===`multipoint`||s===`polyline`)&&!c&&r.sizeOptimizationEnabled,s===`mesh`)r.symbolType=`3d-volumetric`,r.colorMixMode=r.colorMixMode||`replace`,r.edgesType=r.edgesType||`none`;else if(r.symbolType===`3d-volumetric-uniform`&&s!==`point`)throw new t(`color-continuous-renderer:not-supported`,`3d-volumetric-uniform symbols are supported for point layers only`);else if(r.symbolType.includes(`3d-volumetric`)&&r.view?.type!==`3d`)throw new t(`color-continuous-renderer:invalid-parameters`,`'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or '3d-volumetric-uniform'`);let l=await W({field:r.field,normalizationField:r.normalizationField,valueExpression:r.valueExpression}),u=R(a,l,`color-continuous-renderer:invalid-parameters`);if(u)throw u;return{...r,layer:a}}async function he(e){let n=O({...e});if(!(n&&n.layer&&(n.field||n.valueExpression)))throw new t(`color-class-breaks-renderer:missing-parameters`,`'layer' and 'field' or 'valueExpression' parameters are required`);if(n.valueExpression&&!n.view)throw new t(`color-class-breaks-renderer:missing-parameters`,`View is required when 'valueExpression' is specified`);n.forBinning&&H(n,`color-class-breaks-renderer`);let r={...n};r.symbolType=r.symbolType||`2d`,r.defaultSymbolEnabled??=!0,r.classificationMethod??=`equal-interval`,r.normalizationType=se(r);let i=n.forBinning?J:K,a=G(r.layer,i,n.forBinning);if(!a)throw new t(`color-class-breaks-renderer:invalid-parameters`,`'layer' must be one of these types: `+q(i).join(`, `));if((r.minValue==null||r.maxValue==null)&&(r.minValue!=null||r.maxValue!=null))throw new t(`color-class-breaks-renderer:missing-parameters`,`Both 'minValue' and 'maxValue' are required when specifying custom data range`);let o=r.signal==null?null:{signal:r.signal};await a.load(o);let s=a.geometryType;if(r.outlineOptimizationEnabled=s===`polygon`&&r.outlineOptimizationEnabled,s===`mesh`)r.symbolType=`3d-volumetric`,r.colorMixMode=r.colorMixMode||`replace`,r.edgesType=r.edgesType||`none`;else if(r.symbolType===`3d-volumetric-uniform`&&s!==`point`)throw new t(`color-class-breaks-renderer:not-supported`,`3d-volumetric-uniform symbols are supported for point layers only`);else if(r.symbolType.includes(`3d-volumetric`)&&r.view?.type!==`3d`)throw new t(`color-class-breaks-renderer:invalid-parameters`,`'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or '3d-volumetric-uniform'`);let c=await W({field:r.field,normalizationField:r.normalizationField}),l=R(a,c,`color-class-breaks-renderer:invalid-parameters`);if(l)throw l;return{...r,layer:a}}function ge(e){let t={...e};delete t.basemap,delete t.colorScheme,delete t.legendOptions,delete t.symbolType,delete t.defaultSymbolEnabled,delete t.colorMixMode,delete t.edgesType;let n=t;return n.analyzeData=t.minValue==null||t.maxValue==null,n}async function _e(e){if(!e?.layer)throw new t(`color-point-cloud-true-color-renderer:missing-parameters`,`'layer' parameter is required`);let n={...e,layer:e.layer},r=[10],i=G(n.layer,r);if(!i)throw new t(`color-point-cloud-true-color-renderer:invalid-parameters`,`'layer' must be one of these types: `+q(r).join(`, `));if(n.layer=i,n.density=n.density||25,n.size=n.size||`100%`,!z(n.size))throw new t(`color-point-cloud-true-color-renderer:invalid-parameters`,`Invalid 'size' parameter. It should be a string of the form '100%'`);let a=n.signal==null?null:{signal:n.signal};return await i.load(a),n}async function ve(e){if(!(e?.layer&&e.field))throw new t(`color-point-cloud-continuous-renderer:missing-parameters`,`'layer' and 'field' parameters are required`);let n=e.field.toLowerCase();if(n!==`intensity`&&n!==`elevation`)throw new t(`color-point-cloud-continuous-renderer:invalid-parameters`,`'field' should be either 'intensity' or 'elevation'`);let r={...e,layer:e.layer,field:e.field},i=[10],a=G(r.layer,i);if(!a)throw new t(`color-point-cloud-continuous-renderer:invalid-parameters`,`'layer' must be one of these types: `+q(i).join(`, `));if(r.layer=a,r.density=r.density||25,r.size=r.size||`100%`,!z(r.size))throw new t(`color-point-cloud-continuous-renderer:invalid-parameters`,`Invalid 'size' parameter. It should be a string of the form '100%'`);let o=r.signal==null?null:{signal:r.signal};return await a.load(o),r}function X(e){let t={...e},n=!!t.symbolType?.includes(`3d-volumetric`);delete t.symbolType,delete t.defaultSymbolEnabled,delete t.colorMixMode,delete t.edgesType;let r=t;return r.worldScale=n,r}async function ye(e){if(!(e&&e.layer&&e.view&&e.startTime&&e.endTime))throw new t(`color-age-renderer:missing-parameters`,`'layer', 'view', startTime', 'endTime' parameters are required`);let n={...e};n.symbolType=n.symbolType||`2d`,n.defaultSymbolEnabled??=!0;let r=G(n.layer,K);if(!r)throw new t(`color-age-renderer:invalid-parameters`,`'layer' must be one of these types: `+q(K).join(`, `));let i=n.signal==null?null:{signal:n.signal};await r.load(i);let a=r.geometryType;n.outlineOptimizationEnabled=a===`polygon`&&n.outlineOptimizationEnabled;let o=`featureReduction`in n.layer&&n.layer.featureReduction?.type===`cluster`;if(n.sizeOptimizationEnabled=(a===`point`||a===`multipoint`||a===`polyline`)&&!o&&n.sizeOptimizationEnabled,a===`mesh`)n.symbolType=`3d-volumetric`,n.colorMixMode=n.colorMixMode||`replace`,n.edgesType=n.edgesType||`none`;else if(n.symbolType===`3d-volumetric-uniform`&&a!==`point`)throw new t(`color-continuous-renderer:not-supported`,`3d-volumetric-uniform symbols are supported for point layers only`);if(n.symbolType.includes(`3d-volumetric`)&&!(n.view&&n.view.type===`3d`))throw new t(`color-age-renderer:invalid-parameters`,`'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or '3d-volumetric-uniform'`);let s=oe(r,n.startTime,n.endTime,`color-age-renderer:invalid-parameters`);if(s)throw s;if(n.unit&&!V.includes(n.unit))throw new t(`color-age-renderer:invalid-unit`,`Supported units are: ${V.join(`, `)}`);return{...n,layer:r}}async function be(e){let n=`regenerate-color-visual-variable`;await b(e,n);let r=await x(e);if(r?.type!==`class-breaks`)throw new t(`${n}:invalid-parameters`,`Renderer must be a ClassBreaksRenderer to regenerate a color visual variable`);let i=r.authoringInfo,a=i?.visualVariables.find(e=>e.type===`color`),o=r.visualVariables?.find(e=>e.type===`color`);if(!o)throw new t(`${n}:invalid-parameters`,`Renderer does not have a color visual variable`);let{field:s,normalizationField:c,valueExpression:l,valueExpressionTitle:u}=o,d=i?.type===`univariate-color-size`?i?.univariateTheme:a?.theme,{layer:f,forBinning:p,filter:m,view:h,signal:g}=e,_=a?.dataSeriesName,v=a?.dataSeriesCalculationName,y=await pe({layer:f,field:s,valueExpression:l,valueExpressionTitle:u,normalizationField:c,theme:d,forBinning:p,dataSeriesName:_,dataSeriesCalculationName:v,filter:m,view:h,signal:g});return{...e,creatorParameters:y,renderer:r}}async function xe(e){let n=`regenerate-color-continuous-renderer`;await b(e,n);let r=await x(e),i=S(r);if(!i||![`color-continuous`,`color-size`].includes(i))throw new t(`${n}:invalid-renderer`,`Renderer is invalid`);let{authoringInfo:a,field:o,normalizationField:s,valueExpression:c,valueExpressionTitle:l}=r,u=a?.visualVariables.find(e=>e.type===`color`),d=u?.theme,{layer:f,forBinning:p,filter:m,view:h,signal:g}=e,_=u?.dataSeriesName,v=u?.dataSeriesCalculationName,y=await me({layer:f,field:o,valueExpression:c,valueExpressionTitle:l,normalizationField:s,theme:d,outlineOptimizationEnabled:C(r),sizeOptimizationEnabled:w(r),forBinning:p,dataSeriesName:_,dataSeriesCalculationName:v,filter:m,view:h,signal:g});return{...e,creatorParameters:y,renderer:r}}async function Se(e){let n=`regenerate-color-class-breaks-renderer`;await b(e,n);let r=await x(e);if(S(r)!==`color-class-breaks`)throw new t(`${n}:invalid-parameters`,`Renderer is invalid`);let{authoringInfo:i,field:a,normalizationField:o,normalizationType:s,normalizationTotal:c,valueExpression:l,valueExpressionTitle:u}=r,{classificationMethod:d,standardDeviationInterval:f}=i,p=r.classBreakInfos.length,{layer:m,forBinning:h,filter:g,view:_,signal:v}=e,y=i?.dataSeriesName,w=i?.dataSeriesCalculationName,T=await he({layer:m,field:a,valueExpression:l,valueExpressionTitle:u,normalizationType:s,normalizationField:o,normalizationTotal:c,classificationMethod:d,standardDeviationInterval:f,numClasses:p,outlineOptimizationEnabled:C(r),defaultSymbolEnabled:!!r.defaultSymbol,forBinning:h,dataSeriesName:y,dataSeriesCalculationName:w,filter:g,view:_,signal:v});return{...e,creatorParameters:T,renderer:r}}async function Ce(e){let n=`regenerate-color-age-renderer`;await b(e,n);let r=await x(e);if(S(r)!==`color-age`)throw new t(`${n}:invalid-parameters`,`Renderer is invalid`);let{authoringInfo:i}=r,a=i?.visualVariables.find(e=>e.type===`color`),o=a.startTime,s=a.endTime,c=a.units,l=a.theme,{layer:u,filter:d,view:f,signal:p}=e,m=await ye({layer:u,startTime:o,endTime:s,unit:c,theme:l,outlineOptimizationEnabled:C(r),sizeOptimizationEnabled:w(r),filter:d,view:f,signal:p});return{...e,creatorParameters:m,renderer:r}}async function Z(e,t){let n=e.colorScheme,r=null,i=null,{view:a}=e,o=await ae(e.basemap,a);if(r=o.basemapId==null?null:o.basemapId,i=o.basemapTheme==null?null:o.basemapTheme,n)return{scheme:Y(n),basemapId:r,basemapTheme:i};let s=e.theme||`high-to-low`,c=le({theme:s,basemapTheme:i,geometryType:e.geometryType,worldScale:e.worldScale,view:a});if(c){if(r=c.basemapId,i=c.basemapTheme,e.schemeId){let t=s+`/`+r+`/`+e.schemeId;n=ue({id:t,geometryType:e.geometryType})}else n=c.primaryScheme}return{scheme:n,basemapId:r,basemapTheme:i}}function we(e,t){let n=de(e);return ce({geometryType:t},void 0,n.commonProps,n.colorRampInfo)}async function Te(n,r){let i=r.layer,a=await Z({basemap:r.basemap,colorScheme:r.colorScheme,geometryType:i.geometryType,schemeId:r.field.toLowerCase()===`elevation`?`point-cloud-elevation-scheme`:`point-cloud-intensity-scheme`}),o=a.scheme;if(!o)throw new t(`color-point-cloud-continuous-renderer:insufficient-info`,`Unable to find color scheme`);let s=e(o.colors,5);if(s.length<5)throw new t(`color-point-cloud-continuous-renderer:insufficient-info`,`Color scheme does not have enough colors`);let c=ee(n,!1,!0),l=c?te(c[0],c[1],5):ne(n);return{stops:d({values:l,isDate:!1,colors:s,labelIndexes:[0,2,4]}),basemapId:a.basemapId,basemapTheme:a.basemapTheme,statistics:n,defaultValuesUsed:!!c,colorScheme:Y(o)}}function Ee(e,t,n,r){let i=re(e,t,n,!0);return{values:ie(i,e,t,r),defaultValuesUsed:i.defaultValuesUsed}}async function De(n,i,a,o){let{field:s,theme:u}=n,d=await Z({basemap:n.basemap,theme:n.theme,geometryType:a,colorScheme:n.colorScheme,worldScale:n.worldScale,view:n.view}),h=d.scheme;if(!h)throw new t(`color-visual-variable:insufficient-info`,`Unable to find color scheme`);let g=e(h.colors,5);if(g.length<5)throw new t(`color-visual-variable:insufficient-info`,`Color scheme does not have enough colors`);let{values:_,defaultValuesUsed:v}=Ee(i,u,o,h.id.includes(`seq-`)),y=e(g,5),b=new f({field:s??void 0,valueExpression:n.valueExpression,valueExpressionTitle:n.valueExpressionTitle,normalizationField:n.normalizationField,stops:_.map((e,t)=>new p({value:e,color:y[t]})),legendOptions:r(m,n.legendOptions)}),x=new l({type:`color`,minSliderValue:n.minValue==null?i.min:n.minValue,maxSliderValue:n.maxValue==null?i.max:n.maxValue,theme:h.theme,dataSeriesName:n.dataSeriesName,dataSeriesCalculationName:n.dataSeriesCalculationName}),S=new c({visualVariables:[x]});return{basemapId:d.basemapId,basemapTheme:d.basemapTheme,visualVariable:b,statistics:i,defaultValuesUsed:v,colorScheme:Y(h),authoringInfo:S}}async function Oe(e,t,n,r,o,s,c){let l=await i(`esri/smartMapping/t9n/smartMapping`),{field:u,defaultSymbolEnabled:d}=c,f=Y(e.colorScheme),p=t?.opacity,m=[e.visualVariable.clone()];return t?.visualVariables?.length&&m.push(...t.visualVariables.map(e=>e.clone())),n?.minSize&&m.push(n.minSize),{renderer:new a({classBreakInfos:[{minValue:-fe,maxValue:fe,symbol:F(s,{type:c.symbolType,color:f.noDataColor,size:L(f,s),outline:I(f,s,p),meshInfo:{colorMixMode:c.colorMixMode,edgesType:c.edgesType}})}],defaultLabel:d?l.other:null,defaultSymbol:d?F(s,{type:c.symbolType,color:f.noDataColor,size:L(f,s),outline:I(f,s,p),meshInfo:{colorMixMode:c.colorMixMode,edgesType:c.edgesType}}):null,field:u,normalizationType:r,normalizationField:o,valueExpression:c.valueExpression,valueExpressionTitle:c.valueExpressionTitle,visualVariables:m,authoringInfo:e.authoringInfo&&e.authoringInfo.clone()}),visualVariable:e.visualVariable.clone(),statistics:e.statistics,defaultValuesUsed:e.defaultValuesUsed,colorScheme:Y(e.colorScheme),basemapId:e.basemapId,basemapTheme:e.basemapTheme}}async function Q(e){let t=await pe(e),{view:n,field:r,valueExpression:i,minValue:a,maxValue:o,layer:s,normalizationField:c,signal:l,filter:u,statistics:d,dataSeriesName:f,dataSeriesCalculationName:p}=t,m=c?`field`:void 0,h=await(d??(f?B({layer:s,view:n,signal:l,timeSeriesName:f,timeSeriesCalculationName:p,filter:u}):N({layer:s,field:r,valueExpression:i,sqlExpression:t.sqlExpression,sqlWhere:t.sqlWhere,normalizationType:m,normalizationField:c,minValue:a,maxValue:o,filter:u,view:n,signal:l}))),g=s,_=r&&typeof r!=`function`?g.getField(r):null;return await De(t,h,g.geometryType,U(_))}async function ke(t){let{view:n,filter:r,creatorParameters:i,renderer:a,signal:o}=await be(t),s=a.authoringInfo?.clone(),c=s?.visualVariables.find(e=>e.type===`color`),l=a.visualVariables?.find(e=>e.type===`color`),{field:u,normalizationField:d,valueExpression:f,valueExpressionTitle:m,theme:h,layer:g,dataSeriesName:_,dataSeriesCalculationName:v}=i,y=_?await B({layer:g,view:n,signal:o,timeSeriesName:_,timeSeriesCalculationName:v,filter:r}):await N({layer:g,field:u,valueExpression:f,normalizationField:d,filter:r,view:n,signal:o}),b=u&&typeof u!=`function`?g.getField(u):null,{values:x}=Ee(y,h,U(b),h===`high-to-low`);if(x.length===l.stops.length)l.stops.forEach((e,t)=>e.value=x[t]);else{let t=l.stops.map(e=>e.color),n=e(t,5);l.stops=x.map((e,t)=>new p({value:e,color:n[t]}))}return _&&(l.valueExpression=f??null,l.valueExpressionTitle=m??null,c&&(c.dataSeriesName=_,c.dataSeriesCalculationName=v)),c&&(c.minSliderValue=y.min,c.maxSliderValue=y.max),{visualVariable:l,authoringInfo:s,statistics:y}}function Ae(t,r){let i=t.colorsForClassBreaks;if(i?.length){for(let e of i)if(e.numClasses===r)return n(e.colors)}return e(t.colors,r)}async function $(e,n){let r=await i(`esri/smartMapping/t9n/smartMapping`),o=e.layer,s=e.defaultSymbolEnabled,l=o.geometryType,d=e.classificationMethod,f=d===`standard-deviation`,p=await Z({basemap:e.basemap,geometryType:l,theme:f?`above-and-below`:null,colorScheme:e.colorScheme,worldScale:!!e.symbolType?.includes(`3d-volumetric`),view:e.view}),m=p.scheme,{result:h,outlineResult:g}=n,_=h.classBreakInfos,v=e.normalizationType;if(!m)throw new t(`color-class-breaks-renderer:insufficient-info`,`Unable to find color scheme`);let y=Ae(m,_.length);if(!y||y.length!==_.length)throw new t(`color-class-breaks-renderer:insufficient-info`,`Color scheme does not have enough colors`);let b=g?.opacity,x=new a({classBreakInfos:_.map((t,n)=>({minValue:t.minValue,maxValue:t.maxValue,symbol:F(l,{type:e.symbolType,color:y[n],size:L(m,l),outline:I(m,l,b),meshInfo:{colorMixMode:e.colorMixMode,edgesType:e.edgesType}}),label:t.label})),defaultLabel:s?r.other:null,defaultSymbol:s?F(l,{type:e.symbolType,color:m.noDataColor,size:L(m,l),outline:I(m,l,b),meshInfo:{colorMixMode:e.colorMixMode,edgesType:e.edgesType}}):null,field:e.field,valueExpression:e.valueExpression,valueExpressionTitle:e.valueExpressionTitle,normalizationType:v,normalizationField:e.normalizationField,normalizationTotal:v===`percent-of-total`?h.normalizationTotal:void 0,legendOptions:e.legendOptions,authoringInfo:new c({type:`class-breaks-color`,classificationMethod:d,standardDeviationInterval:e.standardDeviationInterval,dataSeriesName:e.dataSeriesName,dataSeriesCalculationName:e.dataSeriesCalculationName})});return f||u({classBreakInfos:x.classBreakInfos,classificationMethod:d,normalizationType:v,round:!0}),g?.visualVariables?.length&&(x.visualVariables=g.visualVariables.map(e=>e.clone())),{renderer:x,colorScheme:Y(m),classBreaksResult:h,defaultValuesUsed:n.defaultValuesUsed,basemapId:p.basemapId,basemapTheme:p.basemapTheme}}async function je(e){let t=await me(e),{layer:n,view:r,signal:i,filter:a}=t,[o,s,c]=await Promise.all([Q(X(t)),t.outlineOptimizationEnabled?g({layer:n,view:r,signal:i,filter:a}).catch(k):null,t.sizeOptimizationEnabled?_({layer:n,view:r,signal:i,filter:a}).catch(k):null]),l=t.normalizationField;return Oe(o,s,c,l?`field`:void 0,l,n.geometryType,t)}async function Me(e){let{renderer:t,view:n,signal:r,filter:i,creatorParameters:a}=await xe(e),{layer:o,outlineOptimizationEnabled:s,sizeOptimizationEnabled:c,valueExpression:l,valueExpressionTitle:u}=a,[d,f,p]=await Promise.all([ke(e),s?g({layer:o,view:n,signal:r,filter:i}).catch(k):null,c?_({layer:o,view:n,signal:r,filter:i}).catch(k):null]);return v(t,d.visualVariable,T),v(t,f?.visualVariables,E),v(t,p?.minSize,D),a.dataSeriesName&&(t.valueExpression=l??null,t.valueExpressionTitle=u??null),y(t,d.authoringInfo,`color`),{renderer:t}}async function Ne(e){let t=await he(e);return $(t,await M(ge(t),t.outlineOptimizationEnabled))}async function Pe(e){let{renderer:t,creatorParameters:n}=await Se(e),{normalizationType:r,outlineOptimizationEnabled:i,classificationMethod:a,valueExpression:o,valueExpressionTitle:s}=n;if(a===`manual`)return{renderer:t};let c=await M(ge(n),i),l=c.result.classBreakInfos;if(n.numClasses!==l.length){let e=we(t.classBreakInfos.map(e=>e.symbol),n.layer.geometryType);return{renderer:(await $({...n,colorScheme:e},c)).renderer}}return t.classBreakInfos.forEach((e,t)=>{e.minValue=l[t].minValue,e.maxValue=l[t].maxValue,e.label=l[t].label}),t.normalizationTotal=r===`percent-of-total`?c.result.normalizationTotal:void 0,a!==`standard-deviation`&&u({classBreakInfos:t.classBreakInfos,classificationMethod:a,normalizationType:r,round:!0}),v(t,c.outlineResult?.visualVariables,E),n.dataSeriesName&&(t.valueExpression=o??null,t.valueExpressionTitle=s??null),{renderer:t}}function Fe(e){return _e(e).then(e=>({renderer:new o({field:`RGB`,pointsPerInch:e.density??void 0,pointSizeAlgorithm:P(e.size)})}))}async function Ie(e){let t=await ve(e),n=await Te(t.statistics??await N({layer:t.layer,field:t.field,signal:t.signal}),t);return{renderer:new s({field:t.field,pointsPerInch:t.density??void 0,pointSizeAlgorithm:P(t.size),stops:n.stops}),basemapId:n.basemapId,basemapTheme:n.basemapTheme,statistics:n.statistics,defaultValuesUsed:n.defaultValuesUsed,colorScheme:n.colorScheme}}async function Le(e){let t=await ye(e),{defaultSymbolEnabled:n,view:r,startTime:i,endTime:a,symbolType:o,colorMixMode:s,edgesType:c,minValue:l,maxValue:u,signal:d,filter:f}=t,p=t.layer,[m,v,y]=await Promise.all([t.unit?{unit:t.unit,statistics:null}:h({view:r,layer:p,startTime:i,endTime:a,minValue:l,maxValue:u,signal:d,filter:f}),t.outlineOptimizationEnabled?g({layer:p,view:r,signal:d,filter:f}).catch(k):null,t.sizeOptimizationEnabled?_({layer:p,view:r,signal:d,filter:f}).catch(k):null]),{unit:b,statistics:x}=m,{valueExpression:S,title:C}=await A(t,b),w=await Q(X({layer:p,basemap:t.basemap,valueExpression:S,symbolType:o,statistics:x,legendOptions:{title:C},colorScheme:t.colorScheme,theme:t.theme,view:r,minValue:t.minValue,maxValue:t.maxValue,filter:f,signal:d})),T={valueExpression:S,defaultSymbolEnabled:n,symbolType:o,colorMixMode:s,edgesType:c},E=await Oe(w,v,y,null,null,p.geometryType,T);return(E.renderer.authoringInfo?.visualVariables)?.forEach(e=>j(e,i,a,b)),{...E,unit:b}}async function Re(e){let{renderer:t,creatorParameters:n}=await Ce(e),{layer:r,outlineOptimizationEnabled:i,sizeOptimizationEnabled:a,startTime:o,endTime:s,theme:c,view:l,signal:u,filter:d}=n,[f,p,m]=await Promise.all([h({view:l,layer:r,startTime:o,endTime:s,signal:u,filter:d}),i?g({layer:r,view:l,signal:u,filter:d}).catch(k):null,a?_({layer:r,view:l,signal:u,filter:d}).catch(k):null]),{unit:y,statistics:b}=f,{valueExpression:x,title:S}=await A(n,y),C=await Q(X({layer:r,valueExpression:x,statistics:b,legendOptions:{title:S},theme:c,view:l,filter:d,signal:u}));return v(t,C.visualVariable,T),v(t,p?.visualVariables,E),v(t,m?.minSize,D),t.authoringInfo=C.authoringInfo.clone(),(t.authoringInfo?.visualVariables)?.forEach(e=>j(e,o,s,y)),{renderer:t}}export{Le as createAgeRenderer,Ne as createClassBreaksRenderer,je as createContinuousRenderer,Ie as createPCContinuousRenderer,Fe as createPCTrueColorRenderer,Q as createVisualVariable,Re as regenerateAgeRenderer,Pe as regenerateClassBreaksRenderer,Me as regenerateContinuousRenderer,ke as regenerateVisualVariable};
|
|
2
|
+
import{createUniqueColors as e}from"../../core/colorUtils.js";import t from"../../core/Error.js";import{clone as n}from"../../core/lang.js";import{ensureClass as r}from"../../core/accessorSupport/ensureType.js";import{fetchMessageBundle as i}from"../../intl/messages.js";import a from"../../renderers/ClassBreaksRenderer.js";import o from"../../renderers/PointCloudRGBRenderer.js";import s from"../../renderers/PointCloudStretchRenderer.js";import c from"../../renderers/support/AuthoringInfo.js";import l from"../../renderers/support/AuthoringInfoVisualVariable.js";import{setLabelsForClassBreaks as u,createColorStops as d}from"../../renderers/support/utils.js";import f from"../../renderers/visualVariables/ColorVariable.js";import p from"../../renderers/visualVariables/support/ColorStop.js";import m from"../../renderers/visualVariables/support/VisualVariableLegendOptions.js";import h from"../heuristics/ageUnit.js";import g from"../heuristics/outline.js";import _ from"../heuristics/sizeRange.js";import{spliceVisualVariables as v,updateAuthoringInfoVisualVariable as y,processRegenerateParams as b,getRendererToUpdate as x,getStyleType as S,hasOutlineVV as C,hasScaleDependentSizeVV as w,findColorVVIndex as T,findOutlineVVIndex as E,findScaleDependentSizeVVIndex as D}from"./support/regenerateUtils.js";import{resolveDataSeriesInfo as O}from"./support/timeSeriesUtils.js";import{errorCallback as k,getTitleAndExpressionForAgeRenderer as A,updateAgeRendererAuthoringInfoVV as j,getClassBreaks as M,getSummaryStatistics as N,getPointSizeAlgorithm as P,createSymbol as F,getSymbolOutlineFromScheme as I,getSymbolSizeFromScheme as L,verifyBasicFieldValidity as R,isValidPointSize as z,getDefaultDataRange as ee,createDefaultStopValues as te,createStopValues as ne,getDataRange as re,createDataValues as ie,getBasemapInfo as ae}from"./support/utils.js";import B from"../statistics/summaryStatisticsForTimeSeries.js";import{verifyDates as oe,supportedAgeUnits as V}from"../statistics/support/ageUtils.js";import{verifyBinningParams as H}from"../support/binningUtils.js";import{isAnyDateField as U,getNormalizationType as se,getFieldsList as W}from"../support/utils.js";import{createLayerAdapter as G,featureCapableLayerTypes as K,getLayerTypeLabels as q,binningCapableLayerTypes as J}from"../support/adapters/support/layerUtils.js";import{cloneScheme as Y,createScheme as ce,getSchemes as le,getSchemeById as ue}from"../symbology/color.js";import{getColorSchemeDefinition as de}from"../symbology/support/utils.js";const fe=2**53-1;async function pe(e){let n=O({...e});if(!(n&&n.layer&&(n.field||n.valueExpression||n.sqlExpression)))throw new t(`color-visual-variable:missing-parameters`,`'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required`);if(n.valueExpression&&!n.sqlExpression&&!n.view)throw new t(`color-visual-variable:missing-parameters`,`View is required when 'valueExpression' is specified`);n.forBinning&&H(n,`color-visual-variable`);let r={...n},i=n.forBinning?J:K,a=G(r.layer,i,n.forBinning);if(!a)throw new t(`color-visual-variable:invalid-parameters`,`'layer' must be one of these types: `+q(i).join(`, `));let o=r.signal==null?null:{signal:r.signal};if(await a.load(o),a.geometryType!==`mesh`&&r.worldScale&&r.view?.type!==`3d`)throw new t(`color-visual-variable:invalid-parameters`,`'view' parameter should be an instance of SceneView when 'worldScale' parameter is true`);let s=await W({field:r.field,normalizationField:r.normalizationField,valueExpression:r.valueExpression}),c=R(a,s,`color-visual-variable:invalid-parameters`);if(c)throw c;return{...r,layer:a}}async function me(e){let n=O({...e});if(!(n&&n.layer&&(n.field||n.valueExpression||n.sqlExpression)))throw new t(`color-continuous-renderer:missing-parameters`,`'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required`);if(n.valueExpression&&!n.sqlExpression&&!n.view)throw new t(`color-continuous-renderer:missing-parameters`,`View is required when 'valueExpression' is specified`);n.forBinning&&H(n,`color-continuous-renderer`);let r={...n};r.symbolType=r.symbolType||`2d`,r.defaultSymbolEnabled??=!0;let i=n.forBinning?J:K,a=G(r.layer,i,n.forBinning);if(!a)throw new t(`color-continuous-renderer:invalid-parameters`,`'layer' must be one of these types: `+q(i).join(`, `));let o=r.signal==null?null:{signal:r.signal};await a.load(o);let s=a.geometryType;r.outlineOptimizationEnabled=s===`polygon`&&r.outlineOptimizationEnabled;let c=`featureReduction`in r.layer&&r.layer.featureReduction?.type===`cluster`;if(r.sizeOptimizationEnabled=(s===`point`||s===`multipoint`||s===`polyline`)&&!c&&r.sizeOptimizationEnabled,s===`mesh`)r.symbolType=`3d-volumetric`,r.colorMixMode=r.colorMixMode||`replace`,r.edgesType=r.edgesType||`none`;else if(r.symbolType===`3d-volumetric-uniform`&&s!==`point`)throw new t(`color-continuous-renderer:not-supported`,`3d-volumetric-uniform symbols are supported for point layers only`);else if(r.symbolType.includes(`3d-volumetric`)&&r.view?.type!==`3d`)throw new t(`color-continuous-renderer:invalid-parameters`,`'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or '3d-volumetric-uniform'`);let l=await W({field:r.field,normalizationField:r.normalizationField,valueExpression:r.valueExpression}),u=R(a,l,`color-continuous-renderer:invalid-parameters`);if(u)throw u;return{...r,layer:a}}async function he(e){let n=O({...e});if(!(n&&n.layer&&(n.field||n.valueExpression)))throw new t(`color-class-breaks-renderer:missing-parameters`,`'layer' and 'field' or 'valueExpression' parameters are required`);if(n.valueExpression&&!n.view)throw new t(`color-class-breaks-renderer:missing-parameters`,`View is required when 'valueExpression' is specified`);n.forBinning&&H(n,`color-class-breaks-renderer`);let r={...n};r.symbolType=r.symbolType||`2d`,r.defaultSymbolEnabled??=!0,r.classificationMethod??=`equal-interval`,r.normalizationType=se(r);let i=n.forBinning?J:K,a=G(r.layer,i,n.forBinning);if(!a)throw new t(`color-class-breaks-renderer:invalid-parameters`,`'layer' must be one of these types: `+q(i).join(`, `));if((r.minValue==null||r.maxValue==null)&&(r.minValue!=null||r.maxValue!=null))throw new t(`color-class-breaks-renderer:missing-parameters`,`Both 'minValue' and 'maxValue' are required when specifying custom data range`);let o=r.signal==null?null:{signal:r.signal};await a.load(o);let s=a.geometryType;if(r.outlineOptimizationEnabled=s===`polygon`&&r.outlineOptimizationEnabled,s===`mesh`)r.symbolType=`3d-volumetric`,r.colorMixMode=r.colorMixMode||`replace`,r.edgesType=r.edgesType||`none`;else if(r.symbolType===`3d-volumetric-uniform`&&s!==`point`)throw new t(`color-class-breaks-renderer:not-supported`,`3d-volumetric-uniform symbols are supported for point layers only`);else if(r.symbolType.includes(`3d-volumetric`)&&r.view?.type!==`3d`)throw new t(`color-class-breaks-renderer:invalid-parameters`,`'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or '3d-volumetric-uniform'`);let c=await W({field:r.field,normalizationField:r.normalizationField}),l=R(a,c,`color-class-breaks-renderer:invalid-parameters`);if(l)throw l;return{...r,layer:a}}function ge(e){let t={...e};delete t.basemap,delete t.colorScheme,delete t.legendOptions,delete t.symbolType,delete t.defaultSymbolEnabled,delete t.colorMixMode,delete t.edgesType;let n=t;return n.analyzeData=t.minValue==null||t.maxValue==null,n}async function _e(e){if(!e?.layer)throw new t(`color-point-cloud-true-color-renderer:missing-parameters`,`'layer' parameter is required`);let n={...e,layer:e.layer},r=[12],i=G(n.layer,r);if(!i)throw new t(`color-point-cloud-true-color-renderer:invalid-parameters`,`'layer' must be one of these types: `+q(r).join(`, `));if(n.layer=i,n.density=n.density||25,n.size=n.size||`100%`,!z(n.size))throw new t(`color-point-cloud-true-color-renderer:invalid-parameters`,`Invalid 'size' parameter. It should be a string of the form '100%'`);let a=n.signal==null?null:{signal:n.signal};return await i.load(a),n}async function ve(e){if(!(e?.layer&&e.field))throw new t(`color-point-cloud-continuous-renderer:missing-parameters`,`'layer' and 'field' parameters are required`);let n=e.field.toLowerCase();if(n!==`intensity`&&n!==`elevation`)throw new t(`color-point-cloud-continuous-renderer:invalid-parameters`,`'field' should be either 'intensity' or 'elevation'`);let r={...e,layer:e.layer,field:e.field},i=[12],a=G(r.layer,i);if(!a)throw new t(`color-point-cloud-continuous-renderer:invalid-parameters`,`'layer' must be one of these types: `+q(i).join(`, `));if(r.layer=a,r.density=r.density||25,r.size=r.size||`100%`,!z(r.size))throw new t(`color-point-cloud-continuous-renderer:invalid-parameters`,`Invalid 'size' parameter. It should be a string of the form '100%'`);let o=r.signal==null?null:{signal:r.signal};return await a.load(o),r}function X(e){let t={...e},n=!!t.symbolType?.includes(`3d-volumetric`);delete t.symbolType,delete t.defaultSymbolEnabled,delete t.colorMixMode,delete t.edgesType;let r=t;return r.worldScale=n,r}async function ye(e){if(!(e&&e.layer&&e.view&&e.startTime&&e.endTime))throw new t(`color-age-renderer:missing-parameters`,`'layer', 'view', startTime', 'endTime' parameters are required`);let n={...e};n.symbolType=n.symbolType||`2d`,n.defaultSymbolEnabled??=!0;let r=G(n.layer,K);if(!r)throw new t(`color-age-renderer:invalid-parameters`,`'layer' must be one of these types: `+q(K).join(`, `));let i=n.signal==null?null:{signal:n.signal};await r.load(i);let a=r.geometryType;n.outlineOptimizationEnabled=a===`polygon`&&n.outlineOptimizationEnabled;let o=`featureReduction`in n.layer&&n.layer.featureReduction?.type===`cluster`;if(n.sizeOptimizationEnabled=(a===`point`||a===`multipoint`||a===`polyline`)&&!o&&n.sizeOptimizationEnabled,a===`mesh`)n.symbolType=`3d-volumetric`,n.colorMixMode=n.colorMixMode||`replace`,n.edgesType=n.edgesType||`none`;else if(n.symbolType===`3d-volumetric-uniform`&&a!==`point`)throw new t(`color-continuous-renderer:not-supported`,`3d-volumetric-uniform symbols are supported for point layers only`);if(n.symbolType.includes(`3d-volumetric`)&&!(n.view&&n.view.type===`3d`))throw new t(`color-age-renderer:invalid-parameters`,`'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or '3d-volumetric-uniform'`);let s=oe(r,n.startTime,n.endTime,`color-age-renderer:invalid-parameters`);if(s)throw s;if(n.unit&&!V.includes(n.unit))throw new t(`color-age-renderer:invalid-unit`,`Supported units are: ${V.join(`, `)}`);return{...n,layer:r}}async function be(e){let n=`regenerate-color-visual-variable`;await b(e,n);let r=await x(e);if(r?.type!==`class-breaks`)throw new t(`${n}:invalid-parameters`,`Renderer must be a ClassBreaksRenderer to regenerate a color visual variable`);let i=r.authoringInfo,a=i?.visualVariables.find(e=>e.type===`color`),o=r.visualVariables?.find(e=>e.type===`color`);if(!o)throw new t(`${n}:invalid-parameters`,`Renderer does not have a color visual variable`);let{field:s,normalizationField:c,valueExpression:l,valueExpressionTitle:u}=o,d=i?.type===`univariate-color-size`?i?.univariateTheme:a?.theme,{layer:f,forBinning:p,filter:m,view:h,signal:g}=e,_=a?.dataSeriesName,v=a?.dataSeriesCalculationName,y=await pe({layer:f,field:s,valueExpression:l,valueExpressionTitle:u,normalizationField:c,theme:d,forBinning:p,dataSeriesName:_,dataSeriesCalculationName:v,filter:m,view:h,signal:g});return{...e,creatorParameters:y,renderer:r}}async function xe(e){let n=`regenerate-color-continuous-renderer`;await b(e,n);let r=await x(e),i=S(r);if(!i||![`color-continuous`,`color-size`].includes(i))throw new t(`${n}:invalid-renderer`,`Renderer is invalid`);let{authoringInfo:a,field:o,normalizationField:s,valueExpression:c,valueExpressionTitle:l}=r,u=a?.visualVariables.find(e=>e.type===`color`),d=u?.theme,{layer:f,forBinning:p,filter:m,view:h,signal:g}=e,_=u?.dataSeriesName,v=u?.dataSeriesCalculationName,y=await me({layer:f,field:o,valueExpression:c,valueExpressionTitle:l,normalizationField:s,theme:d,outlineOptimizationEnabled:C(r),sizeOptimizationEnabled:w(r),forBinning:p,dataSeriesName:_,dataSeriesCalculationName:v,filter:m,view:h,signal:g});return{...e,creatorParameters:y,renderer:r}}async function Se(e){let n=`regenerate-color-class-breaks-renderer`;await b(e,n);let r=await x(e);if(S(r)!==`color-class-breaks`)throw new t(`${n}:invalid-parameters`,`Renderer is invalid`);let{authoringInfo:i,field:a,normalizationField:o,normalizationType:s,normalizationTotal:c,valueExpression:l,valueExpressionTitle:u}=r,{classificationMethod:d,standardDeviationInterval:f}=i,p=r.classBreakInfos.length,{layer:m,forBinning:h,filter:g,view:_,signal:v}=e,y=i?.dataSeriesName,w=i?.dataSeriesCalculationName,T=await he({layer:m,field:a,valueExpression:l,valueExpressionTitle:u,normalizationType:s,normalizationField:o,normalizationTotal:c,classificationMethod:d,standardDeviationInterval:f,numClasses:p,outlineOptimizationEnabled:C(r),defaultSymbolEnabled:!!r.defaultSymbol,forBinning:h,dataSeriesName:y,dataSeriesCalculationName:w,filter:g,view:_,signal:v});return{...e,creatorParameters:T,renderer:r}}async function Ce(e){let n=`regenerate-color-age-renderer`;await b(e,n);let r=await x(e);if(S(r)!==`color-age`)throw new t(`${n}:invalid-parameters`,`Renderer is invalid`);let{authoringInfo:i}=r,a=i?.visualVariables.find(e=>e.type===`color`),o=a.startTime,s=a.endTime,c=a.units,l=a.theme,{layer:u,filter:d,view:f,signal:p}=e,m=await ye({layer:u,startTime:o,endTime:s,unit:c,theme:l,outlineOptimizationEnabled:C(r),sizeOptimizationEnabled:w(r),filter:d,view:f,signal:p});return{...e,creatorParameters:m,renderer:r}}async function Z(e,t){let n=e.colorScheme,r=null,i=null,{view:a}=e,o=await ae(e.basemap,a);if(r=o.basemapId==null?null:o.basemapId,i=o.basemapTheme==null?null:o.basemapTheme,n)return{scheme:Y(n),basemapId:r,basemapTheme:i};let s=e.theme||`high-to-low`,c=le({theme:s,basemapTheme:i,geometryType:e.geometryType,worldScale:e.worldScale,view:a});if(c){if(r=c.basemapId,i=c.basemapTheme,e.schemeId){let t=s+`/`+r+`/`+e.schemeId;n=ue({id:t,geometryType:e.geometryType})}else n=c.primaryScheme}return{scheme:n,basemapId:r,basemapTheme:i}}function we(e,t){let n=de(e);return ce({geometryType:t},void 0,n.commonProps,n.colorRampInfo)}async function Te(n,r){let i=r.layer,a=await Z({basemap:r.basemap,colorScheme:r.colorScheme,geometryType:i.geometryType,schemeId:r.field.toLowerCase()===`elevation`?`point-cloud-elevation-scheme`:`point-cloud-intensity-scheme`}),o=a.scheme;if(!o)throw new t(`color-point-cloud-continuous-renderer:insufficient-info`,`Unable to find color scheme`);let s=e(o.colors,5);if(s.length<5)throw new t(`color-point-cloud-continuous-renderer:insufficient-info`,`Color scheme does not have enough colors`);let c=ee(n,!1,!0),l=c?te(c[0],c[1],5):ne(n);return{stops:d({values:l,isDate:!1,colors:s,labelIndexes:[0,2,4]}),basemapId:a.basemapId,basemapTheme:a.basemapTheme,statistics:n,defaultValuesUsed:!!c,colorScheme:Y(o)}}function Ee(e,t,n,r){let i=re(e,t,n,!0);return{values:ie(i,e,t,r),defaultValuesUsed:i.defaultValuesUsed}}async function De(n,i,a,o){let{field:s,theme:u}=n,d=await Z({basemap:n.basemap,theme:n.theme,geometryType:a,colorScheme:n.colorScheme,worldScale:n.worldScale,view:n.view}),h=d.scheme;if(!h)throw new t(`color-visual-variable:insufficient-info`,`Unable to find color scheme`);let g=e(h.colors,5);if(g.length<5)throw new t(`color-visual-variable:insufficient-info`,`Color scheme does not have enough colors`);let{values:_,defaultValuesUsed:v}=Ee(i,u,o,h.id.includes(`seq-`)),y=e(g,5),b=new f({field:s??void 0,valueExpression:n.valueExpression,valueExpressionTitle:n.valueExpressionTitle,normalizationField:n.normalizationField,stops:_.map((e,t)=>new p({value:e,color:y[t]})),legendOptions:r(m,n.legendOptions)}),x=new l({type:`color`,minSliderValue:n.minValue==null?i.min:n.minValue,maxSliderValue:n.maxValue==null?i.max:n.maxValue,theme:h.theme,dataSeriesName:n.dataSeriesName,dataSeriesCalculationName:n.dataSeriesCalculationName}),S=new c({visualVariables:[x]});return{basemapId:d.basemapId,basemapTheme:d.basemapTheme,visualVariable:b,statistics:i,defaultValuesUsed:v,colorScheme:Y(h),authoringInfo:S}}async function Oe(e,t,n,r,o,s,c){let l=await i(`esri/smartMapping/t9n/smartMapping`),{field:u,defaultSymbolEnabled:d}=c,f=Y(e.colorScheme),p=t?.opacity,m=[e.visualVariable.clone()];return t?.visualVariables?.length&&m.push(...t.visualVariables.map(e=>e.clone())),n?.minSize&&m.push(n.minSize),{renderer:new a({classBreakInfos:[{minValue:-fe,maxValue:fe,symbol:F(s,{type:c.symbolType,color:f.noDataColor,size:L(f,s),outline:I(f,s,p),meshInfo:{colorMixMode:c.colorMixMode,edgesType:c.edgesType}})}],defaultLabel:d?l.other:null,defaultSymbol:d?F(s,{type:c.symbolType,color:f.noDataColor,size:L(f,s),outline:I(f,s,p),meshInfo:{colorMixMode:c.colorMixMode,edgesType:c.edgesType}}):null,field:u,normalizationType:r,normalizationField:o,valueExpression:c.valueExpression,valueExpressionTitle:c.valueExpressionTitle,visualVariables:m,authoringInfo:e.authoringInfo&&e.authoringInfo.clone()}),visualVariable:e.visualVariable.clone(),statistics:e.statistics,defaultValuesUsed:e.defaultValuesUsed,colorScheme:Y(e.colorScheme),basemapId:e.basemapId,basemapTheme:e.basemapTheme}}async function Q(e){let t=await pe(e),{view:n,field:r,valueExpression:i,minValue:a,maxValue:o,layer:s,normalizationField:c,signal:l,filter:u,statistics:d,dataSeriesName:f,dataSeriesCalculationName:p}=t,m=c?`field`:void 0,h=await(d??(f?B({layer:s,view:n,signal:l,timeSeriesName:f,timeSeriesCalculationName:p,filter:u}):N({layer:s,field:r,valueExpression:i,sqlExpression:t.sqlExpression,sqlWhere:t.sqlWhere,normalizationType:m,normalizationField:c,minValue:a,maxValue:o,filter:u,view:n,signal:l}))),g=s,_=r&&typeof r!=`function`?g.getField(r):null;return await De(t,h,g.geometryType,U(_))}async function ke(t){let{view:n,filter:r,creatorParameters:i,renderer:a,signal:o}=await be(t),s=a.authoringInfo?.clone(),c=s?.visualVariables.find(e=>e.type===`color`),l=a.visualVariables?.find(e=>e.type===`color`),{field:u,normalizationField:d,valueExpression:f,valueExpressionTitle:m,theme:h,layer:g,dataSeriesName:_,dataSeriesCalculationName:v}=i,y=_?await B({layer:g,view:n,signal:o,timeSeriesName:_,timeSeriesCalculationName:v,filter:r}):await N({layer:g,field:u,valueExpression:f,normalizationField:d,filter:r,view:n,signal:o}),b=u&&typeof u!=`function`?g.getField(u):null,{values:x}=Ee(y,h,U(b),h===`high-to-low`);if(x.length===l.stops.length)l.stops.forEach((e,t)=>e.value=x[t]);else{let t=l.stops.map(e=>e.color),n=e(t,5);l.stops=x.map((e,t)=>new p({value:e,color:n[t]}))}return _&&(l.valueExpression=f??null,l.valueExpressionTitle=m??null,c&&(c.dataSeriesName=_,c.dataSeriesCalculationName=v)),c&&(c.minSliderValue=y.min,c.maxSliderValue=y.max),{visualVariable:l,authoringInfo:s,statistics:y}}function Ae(t,r){let i=t.colorsForClassBreaks;if(i?.length){for(let e of i)if(e.numClasses===r)return n(e.colors)}return e(t.colors,r)}async function $(e,n){let r=await i(`esri/smartMapping/t9n/smartMapping`),o=e.layer,s=e.defaultSymbolEnabled,l=o.geometryType,d=e.classificationMethod,f=d===`standard-deviation`,p=await Z({basemap:e.basemap,geometryType:l,theme:f?`above-and-below`:null,colorScheme:e.colorScheme,worldScale:!!e.symbolType?.includes(`3d-volumetric`),view:e.view}),m=p.scheme,{result:h,outlineResult:g}=n,_=h.classBreakInfos,v=e.normalizationType;if(!m)throw new t(`color-class-breaks-renderer:insufficient-info`,`Unable to find color scheme`);let y=Ae(m,_.length);if(!y||y.length!==_.length)throw new t(`color-class-breaks-renderer:insufficient-info`,`Color scheme does not have enough colors`);let b=g?.opacity,x=new a({classBreakInfos:_.map((t,n)=>({minValue:t.minValue,maxValue:t.maxValue,symbol:F(l,{type:e.symbolType,color:y[n],size:L(m,l),outline:I(m,l,b),meshInfo:{colorMixMode:e.colorMixMode,edgesType:e.edgesType}}),label:t.label})),defaultLabel:s?r.other:null,defaultSymbol:s?F(l,{type:e.symbolType,color:m.noDataColor,size:L(m,l),outline:I(m,l,b),meshInfo:{colorMixMode:e.colorMixMode,edgesType:e.edgesType}}):null,field:e.field,valueExpression:e.valueExpression,valueExpressionTitle:e.valueExpressionTitle,normalizationType:v,normalizationField:e.normalizationField,normalizationTotal:v===`percent-of-total`?h.normalizationTotal:void 0,legendOptions:e.legendOptions,authoringInfo:new c({type:`class-breaks-color`,classificationMethod:d,standardDeviationInterval:e.standardDeviationInterval,dataSeriesName:e.dataSeriesName,dataSeriesCalculationName:e.dataSeriesCalculationName})});return f||u({classBreakInfos:x.classBreakInfos,classificationMethod:d,normalizationType:v,round:!0}),g?.visualVariables?.length&&(x.visualVariables=g.visualVariables.map(e=>e.clone())),{renderer:x,colorScheme:Y(m),classBreaksResult:h,defaultValuesUsed:n.defaultValuesUsed,basemapId:p.basemapId,basemapTheme:p.basemapTheme}}async function je(e){let t=await me(e),{layer:n,view:r,signal:i,filter:a}=t,[o,s,c]=await Promise.all([Q(X(t)),t.outlineOptimizationEnabled?g({layer:n,view:r,signal:i,filter:a}).catch(k):null,t.sizeOptimizationEnabled?_({layer:n,view:r,signal:i,filter:a}).catch(k):null]),l=t.normalizationField;return Oe(o,s,c,l?`field`:void 0,l,n.geometryType,t)}async function Me(e){let{renderer:t,view:n,signal:r,filter:i,creatorParameters:a}=await xe(e),{layer:o,outlineOptimizationEnabled:s,sizeOptimizationEnabled:c,valueExpression:l,valueExpressionTitle:u}=a,[d,f,p]=await Promise.all([ke(e),s?g({layer:o,view:n,signal:r,filter:i}).catch(k):null,c?_({layer:o,view:n,signal:r,filter:i}).catch(k):null]);return v(t,d.visualVariable,T),v(t,f?.visualVariables,E),v(t,p?.minSize,D),a.dataSeriesName&&(t.valueExpression=l??null,t.valueExpressionTitle=u??null),y(t,d.authoringInfo,`color`),{renderer:t}}async function Ne(e){let t=await he(e);return $(t,await M(ge(t),t.outlineOptimizationEnabled))}async function Pe(e){let{renderer:t,creatorParameters:n}=await Se(e),{normalizationType:r,outlineOptimizationEnabled:i,classificationMethod:a,valueExpression:o,valueExpressionTitle:s}=n;if(a===`manual`)return{renderer:t};let c=await M(ge(n),i),l=c.result.classBreakInfos;if(n.numClasses!==l.length){let e=we(t.classBreakInfos.map(e=>e.symbol),n.layer.geometryType);return{renderer:(await $({...n,colorScheme:e},c)).renderer}}return t.classBreakInfos.forEach((e,t)=>{e.minValue=l[t].minValue,e.maxValue=l[t].maxValue,e.label=l[t].label}),t.normalizationTotal=r===`percent-of-total`?c.result.normalizationTotal:void 0,a!==`standard-deviation`&&u({classBreakInfos:t.classBreakInfos,classificationMethod:a,normalizationType:r,round:!0}),v(t,c.outlineResult?.visualVariables,E),n.dataSeriesName&&(t.valueExpression=o??null,t.valueExpressionTitle=s??null),{renderer:t}}function Fe(e){return _e(e).then(e=>({renderer:new o({field:`RGB`,pointsPerInch:e.density??void 0,pointSizeAlgorithm:P(e.size)})}))}async function Ie(e){let t=await ve(e),n=await Te(t.statistics??await N({layer:t.layer,field:t.field,signal:t.signal}),t);return{renderer:new s({field:t.field,pointsPerInch:t.density??void 0,pointSizeAlgorithm:P(t.size),stops:n.stops}),basemapId:n.basemapId,basemapTheme:n.basemapTheme,statistics:n.statistics,defaultValuesUsed:n.defaultValuesUsed,colorScheme:n.colorScheme}}async function Le(e){let t=await ye(e),{defaultSymbolEnabled:n,view:r,startTime:i,endTime:a,symbolType:o,colorMixMode:s,edgesType:c,minValue:l,maxValue:u,signal:d,filter:f}=t,p=t.layer,[m,v,y]=await Promise.all([t.unit?{unit:t.unit,statistics:null}:h({view:r,layer:p,startTime:i,endTime:a,minValue:l,maxValue:u,signal:d,filter:f}),t.outlineOptimizationEnabled?g({layer:p,view:r,signal:d,filter:f}).catch(k):null,t.sizeOptimizationEnabled?_({layer:p,view:r,signal:d,filter:f}).catch(k):null]),{unit:b,statistics:x}=m,{valueExpression:S,title:C}=await A(t,b),w=await Q(X({layer:p,basemap:t.basemap,valueExpression:S,symbolType:o,statistics:x,legendOptions:{title:C},colorScheme:t.colorScheme,theme:t.theme,view:r,minValue:t.minValue,maxValue:t.maxValue,filter:f,signal:d})),T={valueExpression:S,defaultSymbolEnabled:n,symbolType:o,colorMixMode:s,edgesType:c},E=await Oe(w,v,y,null,null,p.geometryType,T);return(E.renderer.authoringInfo?.visualVariables)?.forEach(e=>j(e,i,a,b)),{...E,unit:b}}async function Re(e){let{renderer:t,creatorParameters:n}=await Ce(e),{layer:r,outlineOptimizationEnabled:i,sizeOptimizationEnabled:a,startTime:o,endTime:s,theme:c,view:l,signal:u,filter:d}=n,[f,p,m]=await Promise.all([h({view:l,layer:r,startTime:o,endTime:s,signal:u,filter:d}),i?g({layer:r,view:l,signal:u,filter:d}).catch(k):null,a?_({layer:r,view:l,signal:u,filter:d}).catch(k):null]),{unit:y,statistics:b}=f,{valueExpression:x,title:S}=await A(n,y),C=await Q(X({layer:r,valueExpression:x,statistics:b,legendOptions:{title:S},theme:c,view:l,filter:d,signal:u}));return v(t,C.visualVariable,T),v(t,p?.visualVariables,E),v(t,m?.minSize,D),t.authoringInfo=C.authoringInfo.clone(),(t.authoringInfo?.visualVariables)?.forEach(e=>j(e,o,s,y)),{renderer:t}}export{Le as createAgeRenderer,Ne as createClassBreaksRenderer,je as createContinuousRenderer,Ie as createPCContinuousRenderer,Fe as createPCTrueColorRenderer,Q as createVisualVariable,Re as regenerateAgeRenderer,Pe as regenerateClassBreaksRenderer,Me as regenerateContinuousRenderer,ke as regenerateVisualVariable};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{createUniqueColors as e}from"../../core/colorUtils.js";import t from"../../core/Error.js";import{getResolutionForScale as n}from"../../geometry/support/scaleUtils.js";import r from"../../renderers/DotDensityRenderer.js";import i from"../../renderers/support/AuthoringInfo.js";import a from"../heuristics/outline.js";import{roundValue as o}from"./support/dotDensityUtils.js";import{spliceVisualVariables as s,processRegenerateParams as c,getRendererToUpdate as l,getStyleType as u,hasOutlineVV as d,findOutlineVVIndex as f}from"./support/regenerateUtils.js";import{errorCallback as p,getSymbolOutlineFromScheme as m,verifyBasicFieldValidity as h,getBasemapInfo as g}from"./support/utils.js";import _ from"../statistics/spatialStatistics.js";import v from"../statistics/summaryStatisticsForAttributes.js";import y from"../statistics/support/attributeDensity.js";import{verifyBinningParams as b}from"../support/binningUtils.js";import{getFieldsList as x}from"../support/utils.js";import{binningCapableLayerTypes as S,createLayerAdapter as C,getLayerTypeLabels as w}from"../support/adapters/support/layerUtils.js";import{cloneScheme as T,getSchemes as E}from"../symbology/dotDensity.js";async function D(e){let n=e.view;if(!(e?.layer&&n&&e.attributes?.length))throw new t(`dot-density-renderer:missing-parameters`,`'layer', 'view' and 'attributes' parameters are required`);if(e.attributes.length>8)throw new t(`dot-density-renderer:invalid-parameters`,`Dot density renderer does not support more than 8 attributes`);e.forBinning&&b(e,`dot-density-renderer`);let r={...e,view:n,layer:e.layer,attributes:e.attributes},i=e.forBinning?S:[
|
|
2
|
+
import{createUniqueColors as e}from"../../core/colorUtils.js";import t from"../../core/Error.js";import{getResolutionForScale as n}from"../../geometry/support/scaleUtils.js";import r from"../../renderers/DotDensityRenderer.js";import i from"../../renderers/support/AuthoringInfo.js";import a from"../heuristics/outline.js";import{roundValue as o}from"./support/dotDensityUtils.js";import{spliceVisualVariables as s,processRegenerateParams as c,getRendererToUpdate as l,getStyleType as u,hasOutlineVV as d,findOutlineVVIndex as f}from"./support/regenerateUtils.js";import{errorCallback as p,getSymbolOutlineFromScheme as m,verifyBasicFieldValidity as h,getBasemapInfo as g}from"./support/utils.js";import _ from"../statistics/spatialStatistics.js";import v from"../statistics/summaryStatisticsForAttributes.js";import y from"../statistics/support/attributeDensity.js";import{verifyBinningParams as b}from"../support/binningUtils.js";import{getFieldsList as x}from"../support/utils.js";import{binningCapableLayerTypes as S,createLayerAdapter as C,getLayerTypeLabels as w}from"../support/adapters/support/layerUtils.js";import{cloneScheme as T,getSchemes as E}from"../symbology/dotDensity.js";async function D(e){let n=e.view;if(!(e?.layer&&n&&e.attributes?.length))throw new t(`dot-density-renderer:missing-parameters`,`'layer', 'view' and 'attributes' parameters are required`);if(e.attributes.length>8)throw new t(`dot-density-renderer:invalid-parameters`,`Dot density renderer does not support more than 8 attributes`);e.forBinning&&b(e,`dot-density-renderer`);let r={...e,view:n,layer:e.layer,attributes:e.attributes},i=e.forBinning?S:[5,11,8,9,6,17],a=C(r.layer,i,e.forBinning);if(!a)throw new t(`dot-density-renderer:invalid-parameters`,`'layer' must be one of these types: `+w(i).join(`, `));r.dotBlendingEnabled??=!0,r.dotValueOptimizationEnabled??=!0;let o=r.signal==null?null:{signal:r.signal};if(await Promise.all([n.when(),a.load(o)]),a.geometryType!==`polygon`)throw new t(`dot-density-renderer:not-supported`,`Dot density renderer is supported for polygon layers only`);let s=[],c=r.attributes;for(let e of c){let t=await x({field:e.field,valueExpression:e.valueExpression});s.push(...t)}let l=h(a,s.filter(Boolean),`dot-density-renderer:invalid-parameters`);if(l)throw l;return{...r,layer:a}}async function O(e){let n=`regenerate-dot-density-renderer`;await c(e,n);let r=await l(e);if(u(r)!==`dot-density`)throw new t(`${n}:invalid-parameters`,`Renderer is invalid`);let{layer:i,forBinning:a,filter:o,view:s,signal:f}=e,p=d(r),m=await D({layer:i,attributes:r.attributes.map(e=>({field:e.field,valueExpression:e.valueExpression,label:e.label,valueExpressionTitle:e.valueExpressionTitle})),dotValueOptimizationEnabled:r.referenceScale!=null,outlineOptimizationEnabled:p,forBinning:a,filter:o,view:s,signal:f});return{...e,creatorParameters:m,renderer:r}}async function k(e){let t=e.dotDensityScheme,n=null,r=null,i=await g(e.basemap,e.view);if(n=i.basemapId==null?null:i.basemapId,r=i.basemapTheme==null?null:i.basemapTheme,t)return{scheme:T(t),basemapId:n,basemapTheme:r};let a=E({numColors:e.attributes.length,basemapTheme:r});return a&&(t=a.primaryScheme,n=a.basemapId,r=a.basemapTheme),{scheme:t,basemapId:n,basemapTheme:r}}function A(e){return{dotValue:1,referenceScale:e.scale,minSliderValue:1,maxSliderValue:100}}async function j(e){let{view:t,layer:r,attributes:i,signal:a,filter:s}=e,c=await r.getSampleFeatures({view:t,sampleSize:500,returnGeometry:!0,filter:s,signal:a},`json`),[l,u]=await Promise.all([_({features:c,geometryType:r.geometryType}),v({layer:r,attributes:i,filter:s,includeZeros:!1,includeNegatives:!1,view:t,signal:a})]),d=l!=null&&`avgSize`in l&&l.avgSize,f=u.avg;if(!d||!f)return A(t);let p=n(t.scale,t.spatialReference),m=d*d/(p*p)*.1;return{dotValue:o(f/m)||1,referenceScale:t.scale,minSliderValue:1,maxSliderValue:o(f)}}async function M(e){let{view:t,layer:r,attributes:i,signal:a,filter:s}=e,c=[];for(let e of i){let t=await x({field:e.field,valueExpression:e.valueExpression});c.push(...t)}let l=await r.getSampleFeatures({view:t,sampleSize:500,requiredFields:c,filter:s,returnGeometry:!0,signal:a},`json`),{minDensity:u,maxDensity:d,avgDensity:f}=await y({features:l,attributes:i,includeZeros:!1,includeNegatives:!1,view:t});if(!f||!u||!d)return A(t);let p=n(t.scale,t.spatialReference),m=p*p,h=o(u*m),g=o(d*m),_=o(f*m*10)||1;return _>g&&(_=g),{dotValue:_,referenceScale:t.scale,minSliderValue:h,maxSliderValue:g}}async function N(n){let o=await D(n),s=o.layer,c=s.geometryType,l=await k(o),u=l?.scheme;if(!u)throw new t(`dot-density-renderer:insufficient-info`,`Unable to find dot-density scheme`);let d=o.view,f=o.filter,h={layer:s,view:d,filter:f,attributes:o.attributes,signal:o.signal},g={layer:o.layer,view:d,filter:f,signal:o.signal},[_,v]=await Promise.all([o.trueDensity?M(h):j(h),o.outlineOptimizationEnabled?a(g).catch(p):null]),{dotValue:y,referenceScale:b,minSliderValue:x,maxSliderValue:S}=_,C=e(u.colors,o.attributes.length),w=o.attributes.map((e,t)=>({field:e.field,valueExpression:e.valueExpression,label:e.label,valueExpressionTitle:e.valueExpressionTitle,color:C[t]})),T=new r({attributes:w,dotBlendingEnabled:o.dotBlendingEnabled,outline:v?m(u,c,v.opacity):null,dotValue:y,referenceScale:o.dotValueOptimizationEnabled?b:null,legendOptions:o.legendOptions});return v?.visualVariables.length&&(T.visualVariables=v.visualVariables.map(e=>e.clone())),T.authoringInfo=new i({type:`dot-density`,minSliderValue:x,maxSliderValue:S}),{renderer:T,dotDensityScheme:u,basemapId:l.basemapId,basemapTheme:l.basemapTheme}}async function P(e){let{creatorParameters:t,renderer:n}=await O(e),{layer:r,attributes:i,outlineOptimizationEnabled:o,view:c,signal:l,filter:u}=t,d={layer:r,view:c,filter:u,attributes:i,signal:l},[m,h]=await Promise.all([t.trueDensity?M(d):j(d),o?a({layer:r,view:c,signal:l,filter:u}).catch(p):null]),{dotValue:g,referenceScale:_,minSliderValue:v,maxSliderValue:y}=m;return n.dotValue=g,n.referenceScale=t.dotValueOptimizationEnabled?_:null,n.authoringInfo&&(n.authoringInfo.minSliderValue=v,n.authoringInfo.maxSliderValue=y),s(n,h?.visualVariables,f),{renderer:n}}export{N as createRenderer,P as regenerateRenderer};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import e from"../../Color.js";import{createUniqueColors as t}from"../../core/colorUtils.js";import n from"../../core/Error.js";import r from"../../renderers/HeatmapRenderer.js";import i from"../../renderers/support/AuthoringInfo.js";import a from"../../renderers/support/HeatmapColorStop.js";import{gaussianBlurRadiusPxToKernelDensityRadiusPt as o}from"../../renderers/support/heatmapUtils.js";import{processRegenerateParams as s,getRendererToUpdate as c,getStyleType as l}from"./support/regenerateUtils.js";import{verifyBasicFieldValidity as u,getBasemapInfo as d}from"./support/utils.js";import f from"../statistics/heatmapStatistics.js";import{getFieldsList as p}from"../support/utils.js";import{createLayerAdapter as m,getLayerTypeLabels as h}from"../support/adapters/support/layerUtils.js";import{cloneScheme as g,getSchemes as _}from"../symbology/heatmap.js";const v=.01,y=[0,.04];async function b(e){if(!(e?.layer&&e.view))throw new n(`heatmap-renderer:missing-parameters`,`'layer' and 'view' parameters are required`);let t={...e,layer:e.layer,view:e.view};t.radius??=t.blurRadius==null?18:o(t.blurRadius),t.minRatio??=.01,t.maxRatio??=1,t.fadeRatio??=.2,t.fadeToTransparent??=!0;let r=[
|
|
2
|
+
import e from"../../Color.js";import{createUniqueColors as t}from"../../core/colorUtils.js";import n from"../../core/Error.js";import r from"../../renderers/HeatmapRenderer.js";import i from"../../renderers/support/AuthoringInfo.js";import a from"../../renderers/support/HeatmapColorStop.js";import{gaussianBlurRadiusPxToKernelDensityRadiusPt as o}from"../../renderers/support/heatmapUtils.js";import{processRegenerateParams as s,getRendererToUpdate as c,getStyleType as l}from"./support/regenerateUtils.js";import{verifyBasicFieldValidity as u,getBasemapInfo as d}from"./support/utils.js";import f from"../statistics/heatmapStatistics.js";import{getFieldsList as p}from"../support/utils.js";import{createLayerAdapter as m,getLayerTypeLabels as h}from"../support/adapters/support/layerUtils.js";import{cloneScheme as g,getSchemes as _}from"../symbology/heatmap.js";const v=.01,y=[0,.04];async function b(e){if(!(e?.layer&&e.view))throw new n(`heatmap-renderer:missing-parameters`,`'layer' and 'view' parameters are required`);let t={...e,layer:e.layer,view:e.view};t.radius??=t.blurRadius==null?18:o(t.blurRadius),t.minRatio??=.01,t.maxRatio??=1,t.fadeRatio??=.2,t.fadeToTransparent??=!0;let r=[3,5,6,8,9,10,11,14,17],i=m(t.layer,r);if(!i)throw new n(`heatmap-renderer:invalid-parameters`,`'layer' must be one of these types: `+h(r).join(`, `));t.layer=i;let a=t.signal==null?null:{signal:t.signal};await i.load(a);let s=await p({field:t.field}),c=u(i,s,`heatmap-renderer:invalid-parameters`);if(c)throw c;return t}async function x(e){let t=`regenerate-heatmap-renderer`;await s(e,t);let r=await c(e);if(l(r)!==`heatmap`)throw new n(`${t}:invalid-parameters`,`Renderer is invalid`);let{layer:i,filter:a,view:o,signal:u}=e,d=await b({layer:i,field:r.field,radius:r.radius,fadeRatio:r.authoringInfo?.fadeRatio,filter:a,view:o,signal:u});return{...e,creatorParameters:d,renderer:r}}async function S(e){let t=e.scheme,n=null,r=null,i=await d(e.basemap,e.view);if(n=i.basemapId==null?null:i.basemapId,r=i.basemapTheme==null?null:i.basemapTheme,t)return{scheme:g(t),basemapId:n,basemapTheme:r};let a=_({basemapTheme:r});return a&&(t=a.primaryScheme,n=a.basemapId,r=a.basemapTheme),{scheme:t,basemapId:n,basemapTheme:r}}async function C(n,o){let{field:s,basemap:c,radius:l,fadeToTransparent:u,heatmapScheme:d,view:f}=o,{scheme:p,basemapId:m,basemapTheme:h}=await S({basemap:c,scheme:d,view:f}),_=p.colors,b=_.length,x=n.min==null,C=x?y:[n.min,n.max],T,E=o.fadeRatio??0,D=o.maxRatio??0,O=o.minRatio??0,k=(D-O)/(b-1),A=_[0],j=u?O:v,M=[new a({ratio:0,color:new e([A.r,A.g,A.b,0])}),new a({ratio:v,color:new e([A.r,A.g,A.b,0])}),new a({ratio:j,color:new e([A.r,A.g,A.b,j])})];return t(_,b).forEach((e,t)=>{let n=O+k*t;M.push(new a({ratio:n,color:e}))}),u&&(w(M,E),T=new i({fadeRatio:E})),{renderer:new r({authoringInfo:T,radius:l,colorStops:M,field:s,minDensity:C[0],maxDensity:C[1]}),statistics:n,defaultValuesUsed:x,scheme:g(p),basemapId:m,basemapTheme:h}}function w(e,t){let n=(1-t)*10+1,r=e.length-3,i=e[2].color.a;e.forEach((e,a)=>{if(a<=2)return;let{color:o}=e,s=(a-3)/r;o.a=t===0?1:Math.min(Math.max(s*n+s+i,i),1)})}async function T(e){let t=await b(e);return C(t.statistics??await f({layer:t.layer,field:t.field,radius:t.radius,view:t.view,filter:t.filter,signal:t.signal}),t)}async function E(e){let{creatorParameters:t,renderer:n}=await x(e),r=await f({layer:t.layer,field:t.field,radius:t.radius,view:t.view,filter:t.filter,signal:t.signal}),i=r.min==null?y:[r.min,r.max];return n.minDensity=i[0],n.maxDensity=i[1],{renderer:D({renderer:n,fadeRatio:t.fadeRatio})}}function D(e){let{fadeRatio:t,renderer:n}=e,r=n.clone(),a=t??(r?.authoringInfo?.fadeRatio||0);return w(r.colorStops,a),r.authoringInfo?r.authoringInfo.fadeRatio=a:r.authoringInfo=new i({fadeRatio:a}),r}export{T as createRenderer,E as regenerateRenderer,D as updateRenderer};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import e from"../../Color.js";import{isSome as t}from"../../core/arrayUtils.js";import{createUniqueColors as n}from"../../core/colorUtils.js";import r from"../../core/Error.js";import{toPt as i}from"../../core/screenUtils.js";import{fetchMessageBundle as a}from"../../intl/messages.js";import o from"../../layers/support/AggregateField.js";import s from"../../layers/support/ExpressionInfo.js";import c from"../../renderers/PieChartRenderer.js";import l from"../../renderers/support/AttributeColorInfo.js";import u from"../../renderers/support/OthersCategory.js";import d from"../../renderers/support/RendererLegendOptions.js";import f from"../heuristics/outline.js";import p from"../heuristics/sizeRange.js";import{createVisualVariables as m}from"./size.js";import{spliceVisualVariables as h,updateAuthoringInfoVisualVariable as g,processRegenerateParams as _,getRendererToUpdate as v,getStyleType as y,hasOutlineVV as b,hasScaleDependentSizeVV as x,isSizeVV as S,findSizeVVIndex as C,findOutlineVVIndex as w,findScaleDependentSizeVVIndex as T}from"./support/regenerateUtils.js";import{errorCallback as E,getSymbolOutlineFromScheme as D,createSymbol as O,verifyBasicFieldValidity as k,getBasemapInfo as A}from"./support/utils.js";import j from"../statistics/predominantCategories.js";import{getSumOfAttributesExpr as M}from"../statistics/support/utils.js";import{verifyBinningParams as N}from"../support/binningUtils.js";import{getFieldsList as P}from"../support/utils.js";import{binningCapableLayerTypes as F,createLayerAdapter as I,getLayerTypeLabels as L,getLayerTypes as R}from"../support/adapters/support/layerUtils.js";import{cloneScheme as z,getSchemes as B}from"../symbology/pieChart.js";import V from"../../symbols/SimpleLineSymbol.js";import{getCIMSymbolColor as H}from"../../symbols/support/cimSymbolUtils.js";const U=[2,3,4,6,7,8,9,12,15];async function W(e){if(!(e?.layer&&e.view&&e.attributes?.length))throw new r(`pie-chart-renderer:missing-parameters`,`'layer', 'view' and 'attributes' parameters are required`);if(e.attributes.length>10)throw new r(`pie-chart-renderer:invalid-parameters`,`PieChart renderer does not support more than 10 attributes`);e.forBinning&&N(e,`pie-chart-renderer`);let t={...e,layer:e.layer,view:e.view,attributes:e.attributes};t.shape=t.shape||`pie`,t.othersCategoryEnabled??=!0,t.includeSizeVariable=e.includeSizeVariable||!1;let n=e.forBinning?F:U,i=I(t.layer,n,e.forBinning);if(!i)throw new r(`pie-chart-renderer:invalid-parameters`,`'layer' must be one of these types: `+L(n).join(`, `));let a=t.signal==null?null:{signal:t.signal};await Promise.all([e.view.when(),i.load(a)]);let o=i.geometryType,s=o===`polygon`,c=o===`point`||o===`multipoint`||s;if(t.outlineOptimizationEnabled=s?t.outlineOptimizationEnabled:!1,t.sizeOptimizationEnabled=c?t.sizeOptimizationEnabled:!1,!c)throw new r(`pie-chart-renderer:not-supported`,`PieChart renderer is only supported for point and polygon layers`);let l=[],u=t.attributes;for(let e of u){let t=await P({field:e.field,valueExpression:e.valueExpression});l.push(...t)}let d=k(i,l.filter(Boolean),`pie-chart-renderer:invalid-parameters`);if(d)throw d;return{...t,layer:i}}async function G(e){let t=`regenerate-pie-chart-renderer`,n=e.includedParts?.includes(`size-variable`)??!0;await _(e,t);let i=await v(e);if(y(i)!==`pie-chart`)throw new r(`${t}:invalid-parameters`,`Renderer is invalid`);let{visualVariables:a}=i,{layer:o,forBinning:s,filter:c,view:l,signal:u}=e,d=b(i),f=x(i),p=n&&a?.some(S),m=await W({layer:o,attributes:i.attributes.map(e=>({field:e.field,label:e.label,valueExpression:e.valueExpression,valueExpressionTitle:e.valueExpressionTitle})),outlineOptimizationEnabled:d,sizeOptimizationEnabled:f,includeSizeVariable:p,forBinning:s,filter:c,view:l,signal:u});return{...e,creatorParameters:m,renderer:i}}async function K(e){let t=e.pieChartScheme,n=null,r=null,i=await A(e.basemap,e.view);if(n=i.basemapId==null?null:i.basemapId,r=i.basemapTheme==null?null:i.basemapTheme,t)return{scheme:z(t),basemapId:n,basemapTheme:r};let a=B({numColors:e.attributes.length,geometryType:e.layer.geometryType,basemapTheme:r});return a&&(t=a.primaryScheme,n=a.basemapId,r=a.basemapTheme),{scheme:t,basemapId:n,basemapTheme:r}}async function q(e,t){let{valueExpression:n,sqlExpression:r,sqlWhere:i}=M(e.attributes),o=await a(`esri/smartMapping/t9n/smartMapping`);return m({layer:e.layer,basemap:e.basemap,valueExpression:n,sqlExpression:r,sqlWhere:i,sizeScheme:t,sizeOptimizationEnabled:e.sizeOptimizationEnabled,legendOptions:{title:o.sumOfCategories},filter:e.filter,view:e.view,signal:e.signal})}async function ee(e){let[o,s]=await Promise.all([W(e),a(`esri/smartMapping/t9n/smartMapping`)]),m=await K(o),h=m?.scheme;if(!h)throw new r(`pie-chart-renderer:insufficient-info`,`Unable to find pie-chart scheme`);let{layer:g,includeSizeVariable:_,sizeOptimizationEnabled:v,outlineOptimizationEnabled:y,view:b,signal:x,filter:S}=o,C=h.sizeScheme,w=o.attributes,T=w.map(e=>e.field).filter(t),[k,A,M,N]=await Promise.all([T.length>1?j({layer:g,fields:T,view:b,signal:x,filter:S}):null,_?q(o,C):null,!_&&v?p({layer:g,view:b,signal:x,filter:S}).catch(E):null,y?f({layer:g,view:b,signal:x,filter:S}).catch(E):null]),P=k?.predominantCategoryInfos?{uniqueValueInfos:k.predominantCategoryInfos}:{uniqueValueInfos:T.map(e=>({value:e,count:0}))},F=n(h.colors,w.length),I=w.map((e,t)=>new l({field:e.field,valueExpression:e.valueExpression,label:e.label,valueExpressionTitle:e.valueExpressionTitle,color:F[t]})),L=g.geometryType,R=C!=null&&`background`in C&&C.background,B=new c({attributes:I,othersCategory:new u({label:s.other,color:o.othersCategoryEnabled?h.colorForOthersCategory:null,threshold:.04}),holePercentage:o.shape===`donut`?.45:0,backgroundFillSymbol:R?O(L,{type:`2d`,color:R.color,outline:D(R,L,N?.opacity)}):null,size:i(h.size),outline:new V(D(h,`point`,N?.opacity)),legendOptions:d.from(o.legendOptions)});if(A&&(J(A,v,L),B.authoringInfo=A.authoringInfo.clone(),B.visualVariables=A.visualVariables?.map(e=>e.clone())),N?.visualVariables?.length){let e=N.visualVariables.map(e=>e.clone()).filter(e=>e.type!==`color`&&e.type!==`rotation`);B.visualVariables?B.visualVariables.push(...e):B.visualVariables=e}return M?.minSize&&(Y(M,L),B.visualVariables?B.visualVariables.push(M.minSize):B.visualVariables=[M.minSize]),{renderer:B,pieChartScheme:z(h),size:A,basemapId:m.basemapId,basemapTheme:m.basemapTheme,statistics:P}}async function te(e){let{creatorParameters:t,view:n,signal:r,filter:i,renderer:a}=await G(e),{layer:o,outlineOptimizationEnabled:s,includeSizeVariable:c,sizeOptimizationEnabled:l}=t,u=(await K(t))?.scheme?.sizeScheme,[d,m,_]=await Promise.all([s?f({layer:o,view:n,signal:r,filter:i}).catch(E):null,c?q(t,u):null,!c&&l?p({layer:o,view:n,signal:r,filter:i}).catch(E):null]),v=o.geometryType;if(m&&(J(m,l,v),h(a,m?.visualVariables,C),g(a,m?.authoringInfo,`size`)),d?.visualVariables?.length){let e=d.visualVariables.map(e=>e.clone()).filter(e=>e.type!==`color`&&e.type!==`rotation`);h(a,e,w)}return _?.minSize&&(Y(_,v),h(a,_?.minSize,T)),{renderer:a}}function J(e,t,n){t||e.visualVariables.forEach(e=>{typeof e.minSize==`number`&&typeof e.maxSize==`number`&&(e.minSize*=2.5,e.maxSize*=1.8)}),t&&n===`point`&&e.visualVariables.forEach(e=>{e?.minSize&&typeof e.minSize==`object`&&e.minSize?.stops?.forEach(e=>{e.size*=1.8})})}function Y(e,t){t===`point`&&e.minSize.stops?.forEach(e=>{e.size*=2.5}),t===`polygon`&&e.minSize.stops?.forEach(e=>{e.size*=1.8})}const ne=new Set([`unique-value`,`class-breaks`]),re=new e(`#aaaaaa`),X=new e(`#5c5c5c`),Z=[new e(`#e60049`),new e(`#0bb4ff`),new e(`#50e991`),new e(`#e6d800`),new e(`#9b19f5`),new e(`#ffa300`),new e(`#dc0ab4`),new e(`#b3d4ff`),new e(`#00bfa0`),new e(`#f0cccc`)];async function ie(e){if(!(e&&e.layer))throw new r(`pie-chart-cluster-renderer:missing-parameters`,`'layer' parameter is required`);let t={...e};t.shape=t.shape||`pie`,t.defaultSymbolEnabled??=!0;let n=e.layer;if(!R(U).includes(n.type))throw new r(`pie-chart-cluster-renderer:invalid-parameters`,`'layer' must be one of these types: `+L(U).join(`, `));let i=t.signal==null?null:{signal:t.signal};if(await n.load(i),n.geometryType!==`point`)throw new r(`pie-chart-cluster-renderer:invalid-parameters`,`Cluster renderers are only supported for point layers`);let a=`renderer`in n?n.renderer:void 0;if(!a)throw new r(`pie-chart-cluster-renderer:invalid-parameters`,`input layer does not have a renderer.`);if(!ne.has(a.type))throw new r(`pie-chart-cluster-renderer:invalid-parameters`,`Cannot create a pie chart renderer for clusters based on a ${a.type} renderer.`);if(`valueExpression`in a&&a.valueExpression)throw new r(`pie-chart-cluster-renderer:invalid-parameters`,`Cannot create a pie chart renderer for clusters from a layer whose renderer contains a valueExpression.`);if(a.type===`unique-value`){if(a.field2)throw new r(`pie-chart-cluster-renderer:invalid-parameters`,`Cannot create a pie chart renderer for clusters from a UniqueValueRenderer using more than one field.`);if(a.uniqueValueInfos!=null&&a.uniqueValueInfos.length>10)throw new r(`pie-chart-cluster-renderer:invalid-parameters`,`PieChart cluster renderer cannot be created from a UniqueValueRenderer with more than 10 unique value infos.`)}if(a.type===`class-breaks`){if(a.classBreakInfos.length<2)throw new r(`pie-chart-cluster-renderer:invalid-parameters`,`Cannot create a pie chart renderer for clusters from a layer renderer with a continuous color or size gradient.`);if(a.classBreakInfos.length>10)throw new r(`pie-chart-cluster-renderer:invalid-parameters`,`PieChart cluster renderer can not be created from a ClassBreaksRenderer with more than 10 class break infos.`);if(a?.authoringInfo?.type===`class-breaks-size`)throw new r(`pie-chart-cluster-renderer:invalid-parameters`,`PieChart cluster renderer can not be created from a ClassBreaksRenderer with breaks varied by size instead of color.`)}return t}async function ae(e){let{layer:t,shape:n,defaultSymbolEnabled:r,legendOptions:i}=await ie(e),o=`renderer`in t?t.renderer:void 0,s=(await a(`esri/smartMapping/t9n/smartMapping`)).other,u=[];o?.type===`unique-value`&&(u=oe({renderer:o,defaultSymbolEnabled:r,defaultLabelBackup:s})),o?.type===`class-breaks`&&(u=se({renderer:o,defaultSymbolEnabled:r,defaultLabelBackup:s}));let f=[],p=[];for(let e of u){let{field:t,color:n}=e;f.push(t),p.push(new l({color:n,field:t.name,label:t.alias}))}return{fields:f,renderer:new c({attributes:p,legendOptions:d.from(i),holePercentage:n===`donut`?.45:0,outline:null,size:9,othersCategory:null})}}function oe(e){let{renderer:t,defaultSymbolEnabled:r,defaultLabelBackup:i}=e,{field:a,defaultSymbol:c,defaultLabel:l}=t,u=t.uniqueValueInfos??[],d=c&&r,f=d?9:10,p=n(Z,f),m=(a?u.slice(0,f).map((e,t)=>{let n=e.label,r=p[t];return{field:new o({name:Q(e.value?.toString()),alias:n,onStatisticExpression:new s({title:`Field definition - ${n}`,expression:ce(a,e),returnType:`number`}),statisticType:`sum`}),color:$(e.symbol,r)}}):null)??[];if(d){let e=l||i;m.push({field:new o({name:Q(`cluster_default`),alias:e,onStatisticExpression:new s({title:`Field definition - ${e}`,expression:le(a,u),returnType:`number`}),statisticType:`sum`}),color:$(c,X)})}return m}function se(e){let{renderer:t,defaultSymbolEnabled:r,defaultLabelBackup:i}=e,{field:a,classBreakInfos:c,defaultSymbol:l,defaultLabel:u}=t,d=l&&r,f=d?9:10,p=n(Z,f),m=c.slice(0,f).map((e,t)=>{let n=e.label||`${e.minValue} - ${e.maxValue}`,r=p[t];return{field:new o({name:Q(n),alias:n,onStatisticExpression:new s({title:`Field definition - ${n}`,expression:ue(a,e),returnType:`number`}),statisticType:`sum`}),color:$(e.symbol,r)}});if(d){let e=u||i;m.push({field:new o({name:Q(`cluster_default`),alias:e,onStatisticExpression:new s({title:`Field definition - ${e}`,expression:de(a,c),returnType:`number`}),statisticType:`sum`}),color:$(l,X)})}return m}function Q(e){return`SUM_`+(e+``).replaceAll(/[^a-zA-Z0-9_]/g,`_`)}function $(e,t){if(e?.type===`simple-marker`&&e.color)return e.color.clone();if(e?.type===`cim`){let t=H(e);if(t)return t.clone()}return t?t.clone():re.clone()}function ce(e,t){return`Number(Text($feature["${e}"]) == "${t.value+``}")`}function le(e,t){return`Number(!(${t.map(t=>`(Text($feature["${e}"]) == "${t.value+``}")`).join(` || `)}))`}function ue(e,t){return`Number($feature["${e}"] >= ${t.minValue} && $feature["${e}"] < ${t.maxValue})`}function de(e,t){return`Number(!(${t.map(t=>`($feature["${e}"] >= ${t.minValue} && $feature["${e}"] < ${t.maxValue})`).join(` || `)}))`}export{ee as createRenderer,ae as createRendererForClustering,te as regenerateRenderer};
|
|
2
|
+
import e from"../../Color.js";import{isSome as t}from"../../core/arrayUtils.js";import{createUniqueColors as n}from"../../core/colorUtils.js";import r from"../../core/Error.js";import{toPt as i}from"../../core/screenUtils.js";import{fetchMessageBundle as a}from"../../intl/messages.js";import o from"../../layers/support/AggregateField.js";import s from"../../layers/support/ExpressionInfo.js";import c from"../../renderers/PieChartRenderer.js";import l from"../../renderers/support/AttributeColorInfo.js";import u from"../../renderers/support/OthersCategory.js";import d from"../../renderers/support/RendererLegendOptions.js";import f from"../heuristics/outline.js";import p from"../heuristics/sizeRange.js";import{createVisualVariables as m}from"./size.js";import{spliceVisualVariables as h,updateAuthoringInfoVisualVariable as g,processRegenerateParams as _,getRendererToUpdate as v,getStyleType as y,hasOutlineVV as b,hasScaleDependentSizeVV as x,isSizeVV as S,findSizeVVIndex as C,findOutlineVVIndex as w,findScaleDependentSizeVVIndex as T}from"./support/regenerateUtils.js";import{errorCallback as E,getSymbolOutlineFromScheme as D,createSymbol as O,verifyBasicFieldValidity as k,getBasemapInfo as A}from"./support/utils.js";import j from"../statistics/predominantCategories.js";import{getSumOfAttributesExpr as M}from"../statistics/support/utils.js";import{verifyBinningParams as N}from"../support/binningUtils.js";import{getFieldsList as P}from"../support/utils.js";import{binningCapableLayerTypes as F,createLayerAdapter as I,getLayerTypeLabels as L,getLayerTypes as R}from"../support/adapters/support/layerUtils.js";import{cloneScheme as z,getSchemes as B}from"../symbology/pieChart.js";import V from"../../symbols/SimpleLineSymbol.js";import{getCIMSymbolColor as H}from"../../symbols/support/cimSymbolUtils.js";const U=[3,5,6,8,9,10,11,14,17];async function W(e){if(!(e?.layer&&e.view&&e.attributes?.length))throw new r(`pie-chart-renderer:missing-parameters`,`'layer', 'view' and 'attributes' parameters are required`);if(e.attributes.length>10)throw new r(`pie-chart-renderer:invalid-parameters`,`PieChart renderer does not support more than 10 attributes`);e.forBinning&&N(e,`pie-chart-renderer`);let t={...e,layer:e.layer,view:e.view,attributes:e.attributes};t.shape=t.shape||`pie`,t.othersCategoryEnabled??=!0,t.includeSizeVariable=e.includeSizeVariable||!1;let n=e.forBinning?F:U,i=I(t.layer,n,e.forBinning);if(!i)throw new r(`pie-chart-renderer:invalid-parameters`,`'layer' must be one of these types: `+L(n).join(`, `));let a=t.signal==null?null:{signal:t.signal};await Promise.all([e.view.when(),i.load(a)]);let o=i.geometryType,s=o===`polygon`,c=o===`point`||o===`multipoint`||s;if(t.outlineOptimizationEnabled=s?t.outlineOptimizationEnabled:!1,t.sizeOptimizationEnabled=c?t.sizeOptimizationEnabled:!1,!c)throw new r(`pie-chart-renderer:not-supported`,`PieChart renderer is only supported for point and polygon layers`);let l=[],u=t.attributes;for(let e of u){let t=await P({field:e.field,valueExpression:e.valueExpression});l.push(...t)}let d=k(i,l.filter(Boolean),`pie-chart-renderer:invalid-parameters`);if(d)throw d;return{...t,layer:i}}async function G(e){let t=`regenerate-pie-chart-renderer`,n=e.includedParts?.includes(`size-variable`)??!0;await _(e,t);let i=await v(e);if(y(i)!==`pie-chart`)throw new r(`${t}:invalid-parameters`,`Renderer is invalid`);let{visualVariables:a}=i,{layer:o,forBinning:s,filter:c,view:l,signal:u}=e,d=b(i),f=x(i),p=n&&a?.some(S),m=await W({layer:o,attributes:i.attributes.map(e=>({field:e.field,label:e.label,valueExpression:e.valueExpression,valueExpressionTitle:e.valueExpressionTitle})),outlineOptimizationEnabled:d,sizeOptimizationEnabled:f,includeSizeVariable:p,forBinning:s,filter:c,view:l,signal:u});return{...e,creatorParameters:m,renderer:i}}async function K(e){let t=e.pieChartScheme,n=null,r=null,i=await A(e.basemap,e.view);if(n=i.basemapId==null?null:i.basemapId,r=i.basemapTheme==null?null:i.basemapTheme,t)return{scheme:z(t),basemapId:n,basemapTheme:r};let a=B({numColors:e.attributes.length,geometryType:e.layer.geometryType,basemapTheme:r});return a&&(t=a.primaryScheme,n=a.basemapId,r=a.basemapTheme),{scheme:t,basemapId:n,basemapTheme:r}}async function q(e,t){let{valueExpression:n,sqlExpression:r,sqlWhere:i}=M(e.attributes),o=await a(`esri/smartMapping/t9n/smartMapping`);return m({layer:e.layer,basemap:e.basemap,valueExpression:n,sqlExpression:r,sqlWhere:i,sizeScheme:t,sizeOptimizationEnabled:e.sizeOptimizationEnabled,legendOptions:{title:o.sumOfCategories},filter:e.filter,view:e.view,signal:e.signal})}async function ee(e){let[o,s]=await Promise.all([W(e),a(`esri/smartMapping/t9n/smartMapping`)]),m=await K(o),h=m?.scheme;if(!h)throw new r(`pie-chart-renderer:insufficient-info`,`Unable to find pie-chart scheme`);let{layer:g,includeSizeVariable:_,sizeOptimizationEnabled:v,outlineOptimizationEnabled:y,view:b,signal:x,filter:S}=o,C=h.sizeScheme,w=o.attributes,T=w.map(e=>e.field).filter(t),[k,A,M,N]=await Promise.all([T.length>1?j({layer:g,fields:T,view:b,signal:x,filter:S}):null,_?q(o,C):null,!_&&v?p({layer:g,view:b,signal:x,filter:S}).catch(E):null,y?f({layer:g,view:b,signal:x,filter:S}).catch(E):null]),P=k?.predominantCategoryInfos?{uniqueValueInfos:k.predominantCategoryInfos}:{uniqueValueInfos:T.map(e=>({value:e,count:0}))},F=n(h.colors,w.length),I=w.map((e,t)=>new l({field:e.field,valueExpression:e.valueExpression,label:e.label,valueExpressionTitle:e.valueExpressionTitle,color:F[t]})),L=g.geometryType,R=C!=null&&`background`in C&&C.background,B=new c({attributes:I,othersCategory:new u({label:s.other,color:o.othersCategoryEnabled?h.colorForOthersCategory:null,threshold:.04}),holePercentage:o.shape===`donut`?.45:0,backgroundFillSymbol:R?O(L,{type:`2d`,color:R.color,outline:D(R,L,N?.opacity)}):null,size:i(h.size),outline:new V(D(h,`point`,N?.opacity)),legendOptions:d.from(o.legendOptions)});if(A&&(J(A,v,L),B.authoringInfo=A.authoringInfo.clone(),B.visualVariables=A.visualVariables?.map(e=>e.clone())),N?.visualVariables?.length){let e=N.visualVariables.map(e=>e.clone()).filter(e=>e.type!==`color`&&e.type!==`rotation`);B.visualVariables?B.visualVariables.push(...e):B.visualVariables=e}return M?.minSize&&(Y(M,L),B.visualVariables?B.visualVariables.push(M.minSize):B.visualVariables=[M.minSize]),{renderer:B,pieChartScheme:z(h),size:A,basemapId:m.basemapId,basemapTheme:m.basemapTheme,statistics:P}}async function te(e){let{creatorParameters:t,view:n,signal:r,filter:i,renderer:a}=await G(e),{layer:o,outlineOptimizationEnabled:s,includeSizeVariable:c,sizeOptimizationEnabled:l}=t,u=(await K(t))?.scheme?.sizeScheme,[d,m,_]=await Promise.all([s?f({layer:o,view:n,signal:r,filter:i}).catch(E):null,c?q(t,u):null,!c&&l?p({layer:o,view:n,signal:r,filter:i}).catch(E):null]),v=o.geometryType;if(m&&(J(m,l,v),h(a,m?.visualVariables,C),g(a,m?.authoringInfo,`size`)),d?.visualVariables?.length){let e=d.visualVariables.map(e=>e.clone()).filter(e=>e.type!==`color`&&e.type!==`rotation`);h(a,e,w)}return _?.minSize&&(Y(_,v),h(a,_?.minSize,T)),{renderer:a}}function J(e,t,n){t||e.visualVariables.forEach(e=>{typeof e.minSize==`number`&&typeof e.maxSize==`number`&&(e.minSize*=2.5,e.maxSize*=1.8)}),t&&n===`point`&&e.visualVariables.forEach(e=>{e?.minSize&&typeof e.minSize==`object`&&e.minSize?.stops?.forEach(e=>{e.size*=1.8})})}function Y(e,t){t===`point`&&e.minSize.stops?.forEach(e=>{e.size*=2.5}),t===`polygon`&&e.minSize.stops?.forEach(e=>{e.size*=1.8})}const ne=new Set([`unique-value`,`class-breaks`]),re=new e(`#aaaaaa`),X=new e(`#5c5c5c`),Z=[new e(`#e60049`),new e(`#0bb4ff`),new e(`#50e991`),new e(`#e6d800`),new e(`#9b19f5`),new e(`#ffa300`),new e(`#dc0ab4`),new e(`#b3d4ff`),new e(`#00bfa0`),new e(`#f0cccc`)];async function ie(e){if(!(e&&e.layer))throw new r(`pie-chart-cluster-renderer:missing-parameters`,`'layer' parameter is required`);let t={...e};t.shape=t.shape||`pie`,t.defaultSymbolEnabled??=!0;let n=e.layer;if(!R(U).includes(n.type))throw new r(`pie-chart-cluster-renderer:invalid-parameters`,`'layer' must be one of these types: `+L(U).join(`, `));let i=t.signal==null?null:{signal:t.signal};if(await n.load(i),n.geometryType!==`point`)throw new r(`pie-chart-cluster-renderer:invalid-parameters`,`Cluster renderers are only supported for point layers`);let a=`renderer`in n?n.renderer:void 0;if(!a)throw new r(`pie-chart-cluster-renderer:invalid-parameters`,`input layer does not have a renderer.`);if(!ne.has(a.type))throw new r(`pie-chart-cluster-renderer:invalid-parameters`,`Cannot create a pie chart renderer for clusters based on a ${a.type} renderer.`);if(`valueExpression`in a&&a.valueExpression)throw new r(`pie-chart-cluster-renderer:invalid-parameters`,`Cannot create a pie chart renderer for clusters from a layer whose renderer contains a valueExpression.`);if(a.type===`unique-value`){if(a.field2)throw new r(`pie-chart-cluster-renderer:invalid-parameters`,`Cannot create a pie chart renderer for clusters from a UniqueValueRenderer using more than one field.`);if(a.uniqueValueInfos!=null&&a.uniqueValueInfos.length>10)throw new r(`pie-chart-cluster-renderer:invalid-parameters`,`PieChart cluster renderer cannot be created from a UniqueValueRenderer with more than 10 unique value infos.`)}if(a.type===`class-breaks`){if(a.classBreakInfos.length<2)throw new r(`pie-chart-cluster-renderer:invalid-parameters`,`Cannot create a pie chart renderer for clusters from a layer renderer with a continuous color or size gradient.`);if(a.classBreakInfos.length>10)throw new r(`pie-chart-cluster-renderer:invalid-parameters`,`PieChart cluster renderer can not be created from a ClassBreaksRenderer with more than 10 class break infos.`);if(a?.authoringInfo?.type===`class-breaks-size`)throw new r(`pie-chart-cluster-renderer:invalid-parameters`,`PieChart cluster renderer can not be created from a ClassBreaksRenderer with breaks varied by size instead of color.`)}return t}async function ae(e){let{layer:t,shape:n,defaultSymbolEnabled:r,legendOptions:i}=await ie(e),o=`renderer`in t?t.renderer:void 0,s=(await a(`esri/smartMapping/t9n/smartMapping`)).other,u=[];o?.type===`unique-value`&&(u=oe({renderer:o,defaultSymbolEnabled:r,defaultLabelBackup:s})),o?.type===`class-breaks`&&(u=se({renderer:o,defaultSymbolEnabled:r,defaultLabelBackup:s}));let f=[],p=[];for(let e of u){let{field:t,color:n}=e;f.push(t),p.push(new l({color:n,field:t.name,label:t.alias}))}return{fields:f,renderer:new c({attributes:p,legendOptions:d.from(i),holePercentage:n===`donut`?.45:0,outline:null,size:9,othersCategory:null})}}function oe(e){let{renderer:t,defaultSymbolEnabled:r,defaultLabelBackup:i}=e,{field:a,defaultSymbol:c,defaultLabel:l}=t,u=t.uniqueValueInfos??[],d=c&&r,f=d?9:10,p=n(Z,f),m=(a?u.slice(0,f).map((e,t)=>{let n=e.label,r=p[t];return{field:new o({name:Q(e.value?.toString()),alias:n,onStatisticExpression:new s({title:`Field definition - ${n}`,expression:ce(a,e),returnType:`number`}),statisticType:`sum`}),color:$(e.symbol,r)}}):null)??[];if(d){let e=l||i;m.push({field:new o({name:Q(`cluster_default`),alias:e,onStatisticExpression:new s({title:`Field definition - ${e}`,expression:le(a,u),returnType:`number`}),statisticType:`sum`}),color:$(c,X)})}return m}function se(e){let{renderer:t,defaultSymbolEnabled:r,defaultLabelBackup:i}=e,{field:a,classBreakInfos:c,defaultSymbol:l,defaultLabel:u}=t,d=l&&r,f=d?9:10,p=n(Z,f),m=c.slice(0,f).map((e,t)=>{let n=e.label||`${e.minValue} - ${e.maxValue}`,r=p[t];return{field:new o({name:Q(n),alias:n,onStatisticExpression:new s({title:`Field definition - ${n}`,expression:ue(a,e),returnType:`number`}),statisticType:`sum`}),color:$(e.symbol,r)}});if(d){let e=u||i;m.push({field:new o({name:Q(`cluster_default`),alias:e,onStatisticExpression:new s({title:`Field definition - ${e}`,expression:de(a,c),returnType:`number`}),statisticType:`sum`}),color:$(l,X)})}return m}function Q(e){return`SUM_`+(e+``).replaceAll(/[^a-zA-Z0-9_]/g,`_`)}function $(e,t){if(e?.type===`simple-marker`&&e.color)return e.color.clone();if(e?.type===`cim`){let t=H(e);if(t)return t.clone()}return t?t.clone():re.clone()}function ce(e,t){return`Number(Text($feature["${e}"]) == "${t.value+``}")`}function le(e,t){return`Number(!(${t.map(t=>`(Text($feature["${e}"]) == "${t.value+``}")`).join(` || `)}))`}function ue(e,t){return`Number($feature["${e}"] >= ${t.minValue} && $feature["${e}"] < ${t.maxValue})`}function de(e,t){return`Number(!(${t.map(t=>`($feature["${e}"] >= ${t.minValue} && $feature["${e}"] < ${t.maxValue})`).join(` || `)}))`}export{ee as createRenderer,ae as createRendererForClustering,te as regenerateRenderer};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{createUniqueColors as e}from"../../core/colorUtils.js";import t from"../../core/Error.js";import{clone as n}from"../../core/lang.js";import{fetchMessageBundle as r}from"../../intl/messages.js";import{isTimeOnlyField as i}from"../../layers/support/fieldUtils.js";import a from"../../renderers/PointCloudUniqueValueRenderer.js";import o from"../../renderers/UniqueValueRenderer.js";import s from"../../renderers/support/AuthoringInfo.js";import c from"../../renderers/support/RendererLegendOptions.js";import{createUniqueValueLabel as l,calculateDateFormatInterval as u,dateFormatIntervalOptions as d}from"../../renderers/support/utils.js";import f from"../../renderers/support/pointCloud/ColorUniqueValueInfo.js";import p from"../heuristics/outline.js";import m from"../heuristics/sizeRange.js";import{spliceVisualVariables as h,findOutlineVVIndex as g,findScaleDependentSizeVVIndex as _,processRegenerateParams as v,getRendererToUpdate as y,getStyleType as b,hasOutlineVV as x,hasScaleDependentSizeVV as S}from"./support/regenerateUtils.js";import{resolveDataSeriesInfo as C}from"./support/timeSeriesUtils.js";import{getPointSizeAlgorithm as w,errorCallback as T,getBasemapInfo as E,isValidPointSize as D,verifyBasicFieldValidity as O,getSymbolSizeFromScheme as k,getSymbolOutlineFromScheme as A,createSymbol as j}from"./support/utils.js";import M from"../statistics/uniqueValues.js";import{verifyBinningParams as N}from"../support/binningUtils.js";import{getFieldsList as P,fieldDelimiter as F,isAnyDateField as I}from"../support/utils.js";import{createLayerAdapter as L,getLayerTypeLabels as R,binningCapableLayerTypes as z,featureCapableLayerTypes as B}from"../support/adapters/support/layerUtils.js";import{cloneScheme as V,getSchemes as H}from"../symbology/type.js";async function U(e){let r=C({...e});if(!(r?.layer&&(r.field||r.valueExpression)))throw new t(`type-renderer:missing-parameters`,`'layer' and 'field' or 'valueExpression' parameters are required`);if(r.valueExpression&&!r.view)throw new t(`type-renderer:missing-parameters`,`View is required when 'valueExpression' is specified`);r.forBinning&&N(r,`type-renderer`);let i={...r,layer:r.layer};i.symbolType=i.symbolType||`2d`,i.defaultSymbolEnabled??=!0,i.sortBy??=`count`,i.sortEnabled??=!0,i.statistics=n(i.statistics);let a=i.numTypes==null?10:i.numTypes,o=r.forBinning?z:B,s=L(i.layer,o,r.forBinning);if(!s)throw new t(`type-renderer:invalid-parameters`,`'layer' must be one of these types: `+R(o).join(`, `));let c=i.signal==null?null:{signal:i.signal};await s.load(c);let l=s.geometryType;i.outlineOptimizationEnabled=l===`polygon`&&i.outlineOptimizationEnabled;let u=`featureReduction`in r.layer&&r.layer.featureReduction?.type===`cluster`;if(i.sizeOptimizationEnabled=(l===`point`||l===`multipoint`||l===`polyline`)&&!u&&i.sizeOptimizationEnabled,l===`mesh`)i.symbolType=`3d-volumetric`,i.colorMixMode=i.colorMixMode||`replace`,i.edgesType=i.edgesType||`none`;else if(i.symbolType===`3d-volumetric-uniform`&&l!==`point`)throw new t(`type-renderer:not-supported`,`3d-volumetric-uniform symbols are supported for point layers only`);else if(i.symbolType.includes(`3d-volumetric`)&&i.view?.type!==`3d`)throw new t(`type-renderer:invalid-parameters`,`'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or '3d-volumetric-uniform'`);let d=await P({field:i.field,field2:i.field2,field3:i.field3,valueExpression:i.valueExpression}),f=O(s,d,`type-renderer:invalid-parameters`);if(f)throw f;return{...i,layer:s,numTypes:a}}async function W(e){let n=`regenerate-type-renderer`;await v(e,n);let r=await y(e),i=b(r);if(!i||![`type`,`type-size`].includes(i))throw new t(`${n}:invalid-parameters`,`Renderer is invalid`);let{field:a,field2:o,field3:s,valueExpression:c,valueExpressionTitle:l}=r,u=r.uniqueValueInfos.length,{layer:d,forBinning:f,filter:p,view:m,signal:h}=e,g=r.authoringInfo?.dataSeriesName,_=r.authoringInfo?.dataSeriesCalculationName,C=await U({layer:d,field:a,field2:o,field3:s,valueExpression:c,valueExpressionTitle:l,numTypes:u,outlineOptimizationEnabled:x(r),sizeOptimizationEnabled:S(r),dataSeriesName:g,dataSeriesCalculationName:_,forBinning:f,filter:p,view:m,signal:h});return{...e,creatorParameters:C,renderer:r}}async function G(e){if(!(e?.layer&&e.field))throw new t(`type-point-cloud-class-renderer:missing-parameters`,`'layer' and 'field' parameters are required`);let r={...e,layer:e.layer};r.statistics=n(r.statistics);let i=[10],a=L(r.layer,i);if(!a)throw new t(`type-point-cloud-class-renderer:invalid-parameters`,`'layer' must be one of these types: `+R(i).join(`, `));if(r.layer=a,r.density=r.density||25,r.size=r.size||`100%`,!D(r.size))throw new t(`type-point-cloud-class-renderer:invalid-parameters`,`Invalid 'size' parameter. It should be a string of the form '100%'`);let o=r.signal==null?null:{signal:r.signal};await a.load(o);let s=await P({field:r.field}),c=O(a,s,`type-point-cloud-class-renderer:invalid-parameters`);if(c)throw c;return r}async function K(e){let t=e.typeScheme,n=null,r=null,i=await E(e.basemap,e.view);if(n=i.basemapId==null?null:i.basemapId,r=i.basemapTheme==null?null:i.basemapTheme,t)return{scheme:V(t),basemapId:n,basemapTheme:r};let a=H({numColors:e.numColors,basemapTheme:r,geometryType:e.geometryType,theme:e.theme,worldScale:e.worldScale,view:e.view});return a&&(t=a.primaryScheme,n=a.basemapId,r=a.basemapTheme),{scheme:t,basemapId:n,basemapTheme:r}}function q(e,t){let n;return n=e.label<t.label?-1:+(e.label>t.label),n}function J(e,t){let n;return n=e.value<t.value?-1:+(e.value>t.value),n}function Y(e,t){let n=t.count-e.count;return n===0&&(n=q(e,t)),n}function X(e,t){let n=t.count-e.count;return n===0&&(n=J(e,t)),n}function Z(e,t,n){let r;t===`count`?(r=X,n&&`codedValues`in n&&n.codedValues&&(r=Y)):t===`value`&&(r=J,n&&`codedValues`in n&&n.codedValues&&(r=q)),r&&e.sort(r)}async function Q(e,t,n,i){let a=await r(`esri/smartMapping/t9n/smartMapping`),{field:u,field2:d,field3:f}=t,p=e.uniqueValueInfos,m=t.layer,h=u?m.getField(u):null,g=h?m.getFieldDomain(h.name):null,_=t.numTypes===-1?p.length:t.numTypes,v=m.geometryType,y=new o({field:u,field2:d,field3:f,fieldDelimiter:u&&d?F:null}),b=[],x=[],S={value:null,domain:g,fieldInfo:h};p.forEach((e,t)=>{S.value=e.value,e.label=l(S);let n=e.value;(n===null||typeof n==`string`&&n.toLowerCase().includes(`<null>`))&&b.unshift(t)});for(let e of b)x.unshift(p.splice(e,1)[0]);t.sortEnabled!==!1&&Z(p,t.sortBy,g),$(S,t,p);let C=n?.opacity,w=await K({numColors:p.length,basemap:t.basemap,geometryType:v,typeScheme:t.typeScheme,worldScale:!!t.symbolType?.includes(`3d-volumetric`),view:t.view}),T=w.scheme,E=T.colors.map(e=>e.clone()),D=k(T,v),O=A(T,v,C);p.forEach((e,n)=>{S.value=e.value,e.label=l(S),e.symbol=j(v,{type:t.symbolType,color:E[n],size:D,outline:O,meshInfo:{colorMixMode:t.colorMixMode,edgesType:t.edgesType}})}),t.valueExpression&&(y.valueExpression=t.valueExpression,y.valueExpressionTitle=t.valueExpressionTitle),t.legendOptions&&(y.legendOptions=new c(t.legendOptions));for(let e=0;e<_;e++){let n=p[e];n&&y.addUniqueValueInfo({value:n.value,label:n.label,symbol:j(v,{type:t.symbolType,color:E[e].clone(),size:D,outline:O,meshInfo:{colorMixMode:t.colorMixMode,edgesType:t.edgesType}})})}t.defaultSymbolEnabled&&(y.defaultSymbol=j(v,{type:t.symbolType,color:T.noDataColor,size:D,outline:O,meshInfo:{colorMixMode:t.colorMixMode,edgesType:t.edgesType}}),y.defaultLabel=a.other);for(let e of x)e.symbol=j(v,{type:t.symbolType,color:T.noDataColor,size:D,outline:O,meshInfo:{colorMixMode:t.colorMixMode,edgesType:t.edgesType}}),p.push(e);let M=[],N=y.uniqueValueInfos?.length??0,P=N===p.length?-1:N;if(P>-1)for(let e=P;e<p.length;e++)M.push({...p[e]});return n?.visualVariables?.length&&(y.visualVariables=n.visualVariables.map(e=>e.clone())),i?.minSize&&(y.visualVariables?y.visualVariables.push(i.minSize):y.visualVariables=[i.minSize]),t.dataSeriesName&&(y.authoringInfo=new s({dataSeriesName:t.dataSeriesName,dataSeriesCalculationName:t.dataSeriesCalculationName})),{renderer:y,uniqueValueInfos:p,excludedUniqueValueInfos:M,typeScheme:V(T),basemapId:w.basemapId,basemapTheme:w.basemapTheme}}function $(e,t,n){let{field:r,numTypes:a,layer:o,view:s}=t,c=r?o.getField(r):null;if(c&&(I(c)||i(c))){let t=n.filter((e,t)=>t<a).map(e=>e.value),r=i(c)?null:u(t),l=r?d[r]:void 0;if(e.dateFormatOptions={fieldType:c.type,format:l},s){let t=o.layer;e.dateFormatOptions.timeZoneOptions={layerTimeZone:`preferredTimeZone`in t?t.preferredTimeZone:null,viewTimeZone:s.timeZone,datesInUnknownTimezone:`datesInUnknownTimezone`in t&&t.datesInUnknownTimezone}}}}async function ee(t,n){let r=t.uniqueValueInfos,i=(await K({numColors:r.length,basemap:`gray`,theme:`point-cloud-class`,geometryType:`point`,typeScheme:n}))?.scheme,a=i?.theme===`point-cloud-class`,o=a?i.colors:e(i?.colors??[],r.length);return Z(r,`value`),r.map((e,t)=>{let n=e.value,r=null;return a?(r=o[n],r||=o[o.length-1]):r=o[t],new f({values:[n],color:r,label:e.label})})}async function te(e){let t=await U(e),{layer:n,view:r,signal:i,filter:a}=t,o={layer:n,field:t.field,field2:t.field2,field3:t.field3,valueExpression:t.valueExpression,returnAllCodedValues:t.returnAllCodedValues,view:r,filter:a,signal:i},[s,c,l]=await Promise.all([t.statistics==null?M(o):t.statistics,t.outlineOptimizationEnabled?p({layer:n,view:r,signal:i,filter:a}).catch(T):null,t.sizeOptimizationEnabled?m({layer:n,view:r,signal:i,filter:a}).catch(T):null]);return Q(s,t,c,l)}async function ne(e){let{creatorParameters:t,view:n,signal:r,filter:i,renderer:a}=await W(e),{layer:o,outlineOptimizationEnabled:s,sizeOptimizationEnabled:c,field:l,valueExpression:u,valueExpressionTitle:d}=t,[f,v]=await Promise.all([s?p({layer:o,view:n,signal:r,filter:i}).catch(T):null,c?m({layer:o,view:n,signal:r,filter:i}).catch(T):null]);return h(a,f?.visualVariables,g),h(a,v?.minSize,_),t.dataSeriesName&&(a.field=l,a.valueExpression=u,a.valueExpressionTitle=d),{renderer:a}}async function re(e){let t=await G(e),n=t.statistics==null?await M({layer:t.layer,field:t.field,signal:t.signal}):t.statistics;return{renderer:new a({field:t.field,pointsPerInch:t.density??void 0,pointSizeAlgorithm:w(t.size),colorUniqueValueInfos:await ee(n,t.typeScheme)})}}export{re as createPCClassRenderer,te as createRenderer,K as getTypeSchemeData,ne as regenerateRenderer};
|
|
2
|
+
import{createUniqueColors as e}from"../../core/colorUtils.js";import t from"../../core/Error.js";import{clone as n}from"../../core/lang.js";import{fetchMessageBundle as r}from"../../intl/messages.js";import{isTimeOnlyField as i}from"../../layers/support/fieldUtils.js";import a from"../../renderers/PointCloudUniqueValueRenderer.js";import o from"../../renderers/UniqueValueRenderer.js";import s from"../../renderers/support/AuthoringInfo.js";import c from"../../renderers/support/RendererLegendOptions.js";import{createUniqueValueLabel as l,calculateDateFormatInterval as u,dateFormatIntervalOptions as d}from"../../renderers/support/utils.js";import f from"../../renderers/support/pointCloud/ColorUniqueValueInfo.js";import p from"../heuristics/outline.js";import m from"../heuristics/sizeRange.js";import{spliceVisualVariables as h,findOutlineVVIndex as g,findScaleDependentSizeVVIndex as _,processRegenerateParams as v,getRendererToUpdate as y,getStyleType as b,hasOutlineVV as x,hasScaleDependentSizeVV as S}from"./support/regenerateUtils.js";import{resolveDataSeriesInfo as C}from"./support/timeSeriesUtils.js";import{getPointSizeAlgorithm as w,errorCallback as T,getBasemapInfo as E,isValidPointSize as D,verifyBasicFieldValidity as O,getSymbolSizeFromScheme as k,getSymbolOutlineFromScheme as A,createSymbol as j}from"./support/utils.js";import M from"../statistics/uniqueValues.js";import{verifyBinningParams as N}from"../support/binningUtils.js";import{getFieldsList as P,fieldDelimiter as F,isAnyDateField as I}from"../support/utils.js";import{createLayerAdapter as L,getLayerTypeLabels as R,binningCapableLayerTypes as z,featureCapableLayerTypes as B}from"../support/adapters/support/layerUtils.js";import{cloneScheme as V,getSchemes as H}from"../symbology/type.js";async function U(e){let r=C({...e});if(!(r?.layer&&(r.field||r.valueExpression)))throw new t(`type-renderer:missing-parameters`,`'layer' and 'field' or 'valueExpression' parameters are required`);if(r.valueExpression&&!r.view)throw new t(`type-renderer:missing-parameters`,`View is required when 'valueExpression' is specified`);r.forBinning&&N(r,`type-renderer`);let i={...r,layer:r.layer};i.symbolType=i.symbolType||`2d`,i.defaultSymbolEnabled??=!0,i.sortBy??=`count`,i.sortEnabled??=!0,i.statistics=n(i.statistics);let a=i.numTypes==null?10:i.numTypes,o=r.forBinning?z:B,s=L(i.layer,o,r.forBinning);if(!s)throw new t(`type-renderer:invalid-parameters`,`'layer' must be one of these types: `+R(o).join(`, `));let c=i.signal==null?null:{signal:i.signal};await s.load(c);let l=s.geometryType;i.outlineOptimizationEnabled=l===`polygon`&&i.outlineOptimizationEnabled;let u=`featureReduction`in r.layer&&r.layer.featureReduction?.type===`cluster`;if(i.sizeOptimizationEnabled=(l===`point`||l===`multipoint`||l===`polyline`)&&!u&&i.sizeOptimizationEnabled,l===`mesh`)i.symbolType=`3d-volumetric`,i.colorMixMode=i.colorMixMode||`replace`,i.edgesType=i.edgesType||`none`;else if(i.symbolType===`3d-volumetric-uniform`&&l!==`point`)throw new t(`type-renderer:not-supported`,`3d-volumetric-uniform symbols are supported for point layers only`);else if(i.symbolType.includes(`3d-volumetric`)&&i.view?.type!==`3d`)throw new t(`type-renderer:invalid-parameters`,`'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or '3d-volumetric-uniform'`);let d=await P({field:i.field,field2:i.field2,field3:i.field3,valueExpression:i.valueExpression}),f=O(s,d,`type-renderer:invalid-parameters`);if(f)throw f;return{...i,layer:s,numTypes:a}}async function W(e){let n=`regenerate-type-renderer`;await v(e,n);let r=await y(e),i=b(r);if(!i||![`type`,`type-size`].includes(i))throw new t(`${n}:invalid-parameters`,`Renderer is invalid`);let{field:a,field2:o,field3:s,valueExpression:c,valueExpressionTitle:l}=r,u=r.uniqueValueInfos.length,{layer:d,forBinning:f,filter:p,view:m,signal:h}=e,g=r.authoringInfo?.dataSeriesName,_=r.authoringInfo?.dataSeriesCalculationName,C=await U({layer:d,field:a,field2:o,field3:s,valueExpression:c,valueExpressionTitle:l,numTypes:u,outlineOptimizationEnabled:x(r),sizeOptimizationEnabled:S(r),dataSeriesName:g,dataSeriesCalculationName:_,forBinning:f,filter:p,view:m,signal:h});return{...e,creatorParameters:C,renderer:r}}async function G(e){if(!(e?.layer&&e.field))throw new t(`type-point-cloud-class-renderer:missing-parameters`,`'layer' and 'field' parameters are required`);let r={...e,layer:e.layer};r.statistics=n(r.statistics);let i=[12],a=L(r.layer,i);if(!a)throw new t(`type-point-cloud-class-renderer:invalid-parameters`,`'layer' must be one of these types: `+R(i).join(`, `));if(r.layer=a,r.density=r.density||25,r.size=r.size||`100%`,!D(r.size))throw new t(`type-point-cloud-class-renderer:invalid-parameters`,`Invalid 'size' parameter. It should be a string of the form '100%'`);let o=r.signal==null?null:{signal:r.signal};await a.load(o);let s=await P({field:r.field}),c=O(a,s,`type-point-cloud-class-renderer:invalid-parameters`);if(c)throw c;return r}async function K(e){let t=e.typeScheme,n=null,r=null,i=await E(e.basemap,e.view);if(n=i.basemapId==null?null:i.basemapId,r=i.basemapTheme==null?null:i.basemapTheme,t)return{scheme:V(t),basemapId:n,basemapTheme:r};let a=H({numColors:e.numColors,basemapTheme:r,geometryType:e.geometryType,theme:e.theme,worldScale:e.worldScale,view:e.view});return a&&(t=a.primaryScheme,n=a.basemapId,r=a.basemapTheme),{scheme:t,basemapId:n,basemapTheme:r}}function q(e,t){let n;return n=e.label<t.label?-1:+(e.label>t.label),n}function J(e,t){let n;return n=e.value<t.value?-1:+(e.value>t.value),n}function Y(e,t){let n=t.count-e.count;return n===0&&(n=q(e,t)),n}function X(e,t){let n=t.count-e.count;return n===0&&(n=J(e,t)),n}function Z(e,t,n){let r;t===`count`?(r=X,n&&`codedValues`in n&&n.codedValues&&(r=Y)):t===`value`&&(r=J,n&&`codedValues`in n&&n.codedValues&&(r=q)),r&&e.sort(r)}async function Q(e,t,n,i){let a=await r(`esri/smartMapping/t9n/smartMapping`),{field:u,field2:d,field3:f}=t,p=e.uniqueValueInfos,m=t.layer,h=u?m.getField(u):null,g=h?m.getFieldDomain(h.name):null,_=t.numTypes===-1?p.length:t.numTypes,v=m.geometryType,y=new o({field:u,field2:d,field3:f,fieldDelimiter:u&&d?F:null}),b=[],x=[],S={value:null,domain:g,fieldInfo:h};p.forEach((e,t)=>{S.value=e.value,e.label=l(S);let n=e.value;(n===null||typeof n==`string`&&n.toLowerCase().includes(`<null>`))&&b.unshift(t)});for(let e of b)x.unshift(p.splice(e,1)[0]);t.sortEnabled!==!1&&Z(p,t.sortBy,g),$(S,t,p);let C=n?.opacity,w=await K({numColors:p.length,basemap:t.basemap,geometryType:v,typeScheme:t.typeScheme,worldScale:!!t.symbolType?.includes(`3d-volumetric`),view:t.view}),T=w.scheme,E=T.colors.map(e=>e.clone()),D=k(T,v),O=A(T,v,C);p.forEach((e,n)=>{S.value=e.value,e.label=l(S),e.symbol=j(v,{type:t.symbolType,color:E[n],size:D,outline:O,meshInfo:{colorMixMode:t.colorMixMode,edgesType:t.edgesType}})}),t.valueExpression&&(y.valueExpression=t.valueExpression,y.valueExpressionTitle=t.valueExpressionTitle),t.legendOptions&&(y.legendOptions=new c(t.legendOptions));for(let e=0;e<_;e++){let n=p[e];n&&y.addUniqueValueInfo({value:n.value,label:n.label,symbol:j(v,{type:t.symbolType,color:E[e].clone(),size:D,outline:O,meshInfo:{colorMixMode:t.colorMixMode,edgesType:t.edgesType}})})}t.defaultSymbolEnabled&&(y.defaultSymbol=j(v,{type:t.symbolType,color:T.noDataColor,size:D,outline:O,meshInfo:{colorMixMode:t.colorMixMode,edgesType:t.edgesType}}),y.defaultLabel=a.other);for(let e of x)e.symbol=j(v,{type:t.symbolType,color:T.noDataColor,size:D,outline:O,meshInfo:{colorMixMode:t.colorMixMode,edgesType:t.edgesType}}),p.push(e);let M=[],N=y.uniqueValueInfos?.length??0,P=N===p.length?-1:N;if(P>-1)for(let e=P;e<p.length;e++)M.push({...p[e]});return n?.visualVariables?.length&&(y.visualVariables=n.visualVariables.map(e=>e.clone())),i?.minSize&&(y.visualVariables?y.visualVariables.push(i.minSize):y.visualVariables=[i.minSize]),t.dataSeriesName&&(y.authoringInfo=new s({dataSeriesName:t.dataSeriesName,dataSeriesCalculationName:t.dataSeriesCalculationName})),{renderer:y,uniqueValueInfos:p,excludedUniqueValueInfos:M,typeScheme:V(T),basemapId:w.basemapId,basemapTheme:w.basemapTheme}}function $(e,t,n){let{field:r,numTypes:a,layer:o,view:s}=t,c=r?o.getField(r):null;if(c&&(I(c)||i(c))){let t=n.filter((e,t)=>t<a).map(e=>e.value),r=i(c)?null:u(t),l=r?d[r]:void 0;if(e.dateFormatOptions={fieldType:c.type,format:l},s){let t=o.layer;e.dateFormatOptions.timeZoneOptions={layerTimeZone:`preferredTimeZone`in t?t.preferredTimeZone:null,viewTimeZone:s.timeZone,datesInUnknownTimezone:`datesInUnknownTimezone`in t&&t.datesInUnknownTimezone}}}}async function ee(t,n){let r=t.uniqueValueInfos,i=(await K({numColors:r.length,basemap:`gray`,theme:`point-cloud-class`,geometryType:`point`,typeScheme:n}))?.scheme,a=i?.theme===`point-cloud-class`,o=a?i.colors:e(i?.colors??[],r.length);return Z(r,`value`),r.map((e,t)=>{let n=e.value,r=null;return a?(r=o[n],r||=o[o.length-1]):r=o[t],new f({values:[n],color:r,label:e.label})})}async function te(e){let t=await U(e),{layer:n,view:r,signal:i,filter:a}=t,o={layer:n,field:t.field,field2:t.field2,field3:t.field3,valueExpression:t.valueExpression,returnAllCodedValues:t.returnAllCodedValues,view:r,filter:a,signal:i},[s,c,l]=await Promise.all([t.statistics==null?M(o):t.statistics,t.outlineOptimizationEnabled?p({layer:n,view:r,signal:i,filter:a}).catch(T):null,t.sizeOptimizationEnabled?m({layer:n,view:r,signal:i,filter:a}).catch(T):null]);return Q(s,t,c,l)}async function ne(e){let{creatorParameters:t,view:n,signal:r,filter:i,renderer:a}=await W(e),{layer:o,outlineOptimizationEnabled:s,sizeOptimizationEnabled:c,field:l,valueExpression:u,valueExpressionTitle:d}=t,[f,v]=await Promise.all([s?p({layer:o,view:n,signal:r,filter:i}).catch(T):null,c?m({layer:o,view:n,signal:r,filter:i}).catch(T):null]);return h(a,f?.visualVariables,g),h(a,v?.minSize,_),t.dataSeriesName&&(a.field=l,a.valueExpression=u,a.valueExpressionTitle=d),{renderer:a}}async function re(e){let t=await G(e),n=t.statistics==null?await M({layer:t.layer,field:t.field,signal:t.signal}):t.statistics;return{renderer:new a({field:t.field,pointsPerInch:t.density??void 0,pointSizeAlgorithm:w(t.size),colorUniqueValueInfos:await ee(n,t.typeScheme)})}}export{re as createPCClassRenderer,te as createRenderer,K as getTypeSchemeData,ne as regenerateRenderer};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import e from"../../core/Error.js";import{numericTypes as t}from"../../layers/support/fieldUtils.js";import{gaussianBlurRadiusPxToKernelDensityRadiusPt as n}from"../../renderers/support/heatmapUtils.js";import{verifyBasicFieldValidity as r,verifyFieldType as i}from"./support/utils.js";import{getFieldsList as a}from"../support/utils.js";import{createLayerAdapter as o,getLayerTypeLabels as s}from"../support/adapters/support/layerUtils.js";const c=t;async function l(t){if(!(t?.layer&&t.view))throw new e(`heatmap-statistics:missing-parameters`,`'layer' and 'view' parameters are required`);let l=[
|
|
2
|
+
import e from"../../core/Error.js";import{numericTypes as t}from"../../layers/support/fieldUtils.js";import{gaussianBlurRadiusPxToKernelDensityRadiusPt as n}from"../../renderers/support/heatmapUtils.js";import{verifyBasicFieldValidity as r,verifyFieldType as i}from"./support/utils.js";import{getFieldsList as a}from"../support/utils.js";import{createLayerAdapter as o,getLayerTypeLabels as s}from"../support/adapters/support/layerUtils.js";const c=t;async function l(t){if(!(t?.layer&&t.view))throw new e(`heatmap-statistics:missing-parameters`,`'layer' and 'view' parameters are required`);let l=[3,5,6,8,9,10,11,14,17],{layer:u,...d}=t,f=o(u,l);if(!f)throw new e(`heatmap-statistics:invalid-parameters`,`'layer' must be one of these types: `+s(l).join(`, `));let p={layerAdapter:f,...d};p.radius=p.radius==null?p.blurRadius==null?18:n(p.blurRadius):p.radius;let m=p.signal==null?null:{signal:p.signal};await f.load(m);let h=p.field,g=h?f.getField(h):null,_=await a({field:h}),v=r(f,_,`heatmap-statistics:invalid-parameters`);if(v)throw v;if(g){let e=i(f,g,`heatmap-statistics:invalid-parameters`,c);if(e)throw e}return p}async function u(e){let{layerAdapter:t,...n}=await l(e);return t.heatmapStatistics(n)}export{u as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import e from"../../core/Error.js";import{isTimeOnlyField as t,numericTypes as n}from"../../layers/support/fieldUtils.js";import{verifyBasicFieldValidity as r,verifyFieldType as i,verifyFilterValidity as a}from"./support/utils.js";import{verifyBinningParams as o}from"../support/binningUtils.js";import{getNormalizationType as s,getFieldsList as c,isAnyDateField as l,dateTypes as u}from"../support/utils.js";import{defaultSupportedLayerTypes as d,binningCapableLayerTypes as f,createLayerAdapter as p,getLayerTypeLabels as m}from"../support/adapters/support/layerUtils.js";const h=[...u,`time-only`,...n];async function g(u){if(!(u?.layer&&(u.field||u.fields?.length||u.valueExpression||u.sqlExpression)))throw new e(`histogram:missing-parameters`,`'layer' and 'field', 'fields', 'valueExpression' or 'sqlExpression' parameters are required`);if(u.valueExpression&&!u.sqlExpression&&!u.view)throw new e(`histogram:missing-parameters`,`View is required when 'valueExpression' is specified`);u.forBinning&&o(u,`histogram`);let{layer:g,..._}=u,v=[...d,
|
|
2
|
+
import e from"../../core/Error.js";import{isTimeOnlyField as t,numericTypes as n}from"../../layers/support/fieldUtils.js";import{verifyBasicFieldValidity as r,verifyFieldType as i,verifyFilterValidity as a}from"./support/utils.js";import{verifyBinningParams as o}from"../support/binningUtils.js";import{getNormalizationType as s,getFieldsList as c,isAnyDateField as l,dateTypes as u}from"../support/utils.js";import{defaultSupportedLayerTypes as d,binningCapableLayerTypes as f,createLayerAdapter as p,getLayerTypeLabels as m}from"../support/adapters/support/layerUtils.js";const h=[...u,`time-only`,...n];async function g(u){if(!(u?.layer&&(u.field||u.fields?.length||u.valueExpression||u.sqlExpression)))throw new e(`histogram:missing-parameters`,`'layer' and 'field', 'fields', 'valueExpression' or 'sqlExpression' parameters are required`);if(u.valueExpression&&!u.sqlExpression&&!u.view)throw new e(`histogram:missing-parameters`,`View is required when 'valueExpression' is specified`);u.forBinning&&o(u,`histogram`);let{layer:g,..._}=u,v=[...d,0,4,7],y=u.forBinning?f:v,b=p(g,y,u.forBinning);if(!b)throw new e(`histogram:invalid-parameters`,`'layer' must be one of these types: `+m(y).join(`, `));let x={layerAdapter:b,..._};x.normalizationType=s(x);let S=x.signal==null?null:{signal:x.signal};await b.load(S);let C=await c({field:x.field,normalizationField:x.normalizationField,valueExpression:x.valueExpression,fields:x.fields}),w=r(b,C,`histogram:invalid-parameters`);if(w)throw w;let T=!x.classificationMethod||x.classificationMethod===`equal-interval`;if(x.fields?.length){let t=x.fields;if(t.length<2)throw new e(`histogram:invalid-parameters`,`'fields' must contain at least 2 fields if specified.`);if(x.normalizationType||x.valueExpression||x.field)throw new e(`histogram:invalid-parameters`,`Normalization, 'field', 'valueExpression' are not allowed when 'fields' is specified.`);let r=new Set;for(let e of t){let t=b.getField(e),a=i(b,t,`histogram:invalid-parameters`,n);if(a)throw a;r.add(t.type)}if(r.size>1)throw new e(`histogram:invalid-parameters`,`All fields must be of the same type when 'fields' is specified.`);if(!T)throw new e(`histogram:invalid-parameters`,`'classificationMethod' other than 'equal-interval' is not allowed when 'fields' is specified`)}else if(x.valueExpression||x.sqlExpression){if(x.normalizationType)throw new e(`histogram:invalid-parameters`,`Normalization is not allowed when 'valueExpression' or 'sqlExpression' is specified`);if(!T)throw new e(`histogram:invalid-parameters`,`'classificationMethod' other than 'equal-interval' is not allowed when 'valueExpression' or 'sqlExpression' is specified`)}else if(x.field){let n=b.getField(x.field),r=i(b,n,`histogram:invalid-parameters`,h);if(r)throw r;if(l(n)||t(n)){if(x.normalizationType)throw new e(`histogram:invalid-parameters`,`Normalization is not allowed for date fields`);if(!T)throw new e(`histogram:invalid-parameters`,`'classificationMethod' other than 'equal-interval' is not allowed for date fields`)}}x.filter&&!x.filter.spatialRelationship&&(x.filter.spatialRelationship=`intersects`);let E=a(x.filter,`histogram:invalid-parameters`);if(E)throw E;if(x.useQueryAttributeBins??=!0,!x.useQueryAttributeBins&&x.returnAggregateIds)throw new e(`histogram:invalid-parameters`,`'returnAggregateIds' cannot be true when 'useQueryAttributeBins' is false.`);return x}async function _(e){let{layerAdapter:t,...n}=await g(e);return t.histogram(n)}export{_ as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import e from"../../core/Error.js";import{isTimeOnlyField as t,numericTypes as n}from"../../layers/support/fieldUtils.js";import{verifyBasicFieldValidity as r,verifyFieldType as i,verifyFilterValidity as a}from"./support/utils.js";import{verifyBinningParams as o}from"../support/binningUtils.js";import{getNormalizationType as s,getFieldsList as c,isAnyDateField as l,dateTypes as u}from"../support/utils.js";import{defaultSupportedLayerTypes as d,binningCapableLayerTypes as f,createLayerAdapter as p,getLayerTypeLabels as m}from"../support/adapters/support/layerUtils.js";const h=[...n,...u,`time-only`,`string`];async function g(u){if(!(u?.layer&&(u.field||u.fields?.length||u.valueExpression||u.sqlExpression)))throw new e(`summary-statistics:missing-parameters`,`'layer' and 'field', 'fields', 'valueExpression' or 'sqlExpression' parameters are required`);if(u.valueExpression&&!u.sqlExpression&&!u.view)throw new e(`summary-statistics:missing-parameters`,`View is required when 'valueExpression' is specified`);u.forBinning&&o(u,`summary-statistics`);let{layer:g,..._}=u,v=[...d,
|
|
2
|
+
import e from"../../core/Error.js";import{isTimeOnlyField as t,numericTypes as n}from"../../layers/support/fieldUtils.js";import{verifyBasicFieldValidity as r,verifyFieldType as i,verifyFilterValidity as a}from"./support/utils.js";import{verifyBinningParams as o}from"../support/binningUtils.js";import{getNormalizationType as s,getFieldsList as c,isAnyDateField as l,dateTypes as u}from"../support/utils.js";import{defaultSupportedLayerTypes as d,binningCapableLayerTypes as f,createLayerAdapter as p,getLayerTypeLabels as m}from"../support/adapters/support/layerUtils.js";const h=[...n,...u,`time-only`,`string`];async function g(u){if(!(u?.layer&&(u.field||u.fields?.length||u.valueExpression||u.sqlExpression)))throw new e(`summary-statistics:missing-parameters`,`'layer' and 'field', 'fields', 'valueExpression' or 'sqlExpression' parameters are required`);if(u.valueExpression&&!u.sqlExpression&&!u.view)throw new e(`summary-statistics:missing-parameters`,`View is required when 'valueExpression' is specified`);u.forBinning&&o(u,`summary-statistics`);let{layer:g,..._}=u,v=[...d,0,4,7],y=u.forBinning?f:v,b=p(g,y,u.forBinning);if(!b)throw new e(`summary-statistics:invalid-parameters`,`'layer' must be one of these types: `+m(y).join(`, `));let x={layerAdapter:b,..._};x.normalizationType=s(x);let S=x.signal==null?null:{signal:x.signal};await b.load(S);let C=x.normalizationType,w=await c({field:x.field,normalizationField:x.normalizationField,valueExpression:x.valueExpression,fields:x.fields}),T=r(b,w,`summary-statistics:invalid-parameters`);if(T)throw T;if(x.fields?.length){let t=x.fields;if(t.length<2)throw new e(`summary-statistics:invalid-parameters`,`'fields' must contain at least 2 fields if specified.`);if(C||x.minValue||x.maxValue||x.valueExpression||x.field)throw new e(`summary-statistics:invalid-parameters`,`Normalization, 'field', 'valueExpression', 'minValue' and 'maxValue' are not allowed when 'fields' is specified.`);let r=new Set;for(let e of t){let t=b.getField(e),a=i(b,t,`summary-statistics:invalid-parameters`,n);if(a)throw a;r.add(t.type)}if(r.size>1)throw new e(`summary-statistics:invalid-parameters`,`All fields must be of the same type when 'fields' is specified.`)}else{if((x.valueExpression||x.sqlExpression)&&C)throw new e(`summary-statistics:invalid-parameters`,`Normalization is not allowed when 'valueExpression' or 'sqlExpression' is specified`);if(x.field){let n=b.getField(x.field),r=i(b,n,`summary-statistics:invalid-parameters`,h);if(r)throw r;if((l(n)||t(n))&&C)throw new e(`summary-statistics:invalid-parameters`,`Normalization is not allowed for date fields`)}}x.filter&&!x.filter.spatialRelationship&&(x.filter.spatialRelationship=`intersects`);let E=a(x.filter,`summary-statistics:invalid-parameters`);if(E)throw E;return x}async function _(e){let{layerAdapter:t,...n}=await g(e);return t.summaryStatistics(n)}export{_ as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import e from"../../core/Error.js";import{getSumOfAttributesExpr as t,verifyBasicFieldValidity as n}from"./support/utils.js";import{verifyBinningParams as r}from"../support/binningUtils.js";import{defaultStatisticTypes as i,getFieldsList as a}from"../support/utils.js";import{binningCapableLayerTypes as o,createLayerAdapter as s,getLayerTypeLabels as c}from"../support/adapters/support/layerUtils.js";async function l(t){if(!(t&&t.layer&&t.attributes))throw new e(`summary-statistics-for-attributes:missing-parameters`,`'layer' and 'attributes' parameters are required`);if(t.attributes.some(e=>!!e.valueExpression)&&!t.view)throw new e(`summary-statistics-for-attributes:missing-parameters`,`View is required when 'valueExpression' is specified in attributes`);t.forBinning&&r(t,`summary-statistics-for-attributes`);let{layer:i,...l}=t,u=t.forBinning?o:[
|
|
2
|
+
import e from"../../core/Error.js";import{getSumOfAttributesExpr as t,verifyBasicFieldValidity as n}from"./support/utils.js";import{verifyBinningParams as r}from"../support/binningUtils.js";import{defaultStatisticTypes as i,getFieldsList as a}from"../support/utils.js";import{binningCapableLayerTypes as o,createLayerAdapter as s,getLayerTypeLabels as c}from"../support/adapters/support/layerUtils.js";async function l(t){if(!(t&&t.layer&&t.attributes))throw new e(`summary-statistics-for-attributes:missing-parameters`,`'layer' and 'attributes' parameters are required`);if(t.attributes.some(e=>!!e.valueExpression)&&!t.view)throw new e(`summary-statistics-for-attributes:missing-parameters`,`View is required when 'valueExpression' is specified in attributes`);t.forBinning&&r(t,`summary-statistics-for-attributes`);let{layer:i,...l}=t,u=t.forBinning?o:[3,5,9,6,8,11,17],d=s(i,u,t.forBinning);if(!d)throw new e(`summary-statistics-for-attributes:invalid-parameters`,`'layer' must be one of these types: `+c(u).join(`, `));let f={layerAdapter:d,...l};f.includeZeros=f.includeZeros==null||f.includeZeros,f.includeNegatives=f.includeNegatives==null||f.includeNegatives;let p=f.view,m=f.signal==null?null:{signal:f.signal};await Promise.all([p?.when(),d.load(m)]);let h=[];for(let e of f.attributes){let t=await a({field:e.field,valueExpression:e.valueExpression});Array.prototype.push.apply(h,t)}let g=n(d,h,`summary-statistics-for-attributes:invalid-parameters`);if(g)throw g;return f}async function u(e){let{layerAdapter:n,...r}=await l(e),a=t(r.attributes,r.includeZeros,r.includeNegatives);return n.summaryStatistics({valueExpression:a.valueExpression,sqlExpression:a.sqlExpression,sqlWhere:a.sqlWhere,view:r.view,filter:r.filter,outStatisticTypes:i,signal:r.signal})}export{u as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import e from"../../core/Error.js";import{verifyBasicFieldValidity as t,verifyFilterValidity as n}from"./support/utils.js";import{verifyBinningParams as r}from"../support/binningUtils.js";import{getFieldsList as i}from"../support/utils.js";import{binningCapableLayerTypes as a,createLayerAdapter as o,getLayerTypeLabels as s,defaultSupportedLayerTypes as c}from"../support/adapters/support/layerUtils.js";async function l(l){if(!(l?.layer&&(l.field||l.valueExpression)))throw new e(`unique-values:missing-parameters`,`'layer' and 'field' or 'valueExpression' parameters are required`);let u=l.valueExpression||l.sqlExpression,d=u&&!l.sqlExpression;if(u){if(d){if(!l.view)throw new e(`unique-values:missing-parameters`,`View is required when 'valueExpression' is specified`)}else if(!l.valueExpression)throw new e(`unique-values:missing-parameters`,`'valueExpression' parameters are required`)}l.forBinning&&r(l,`unique-values`);let{layer:f,...p}=l,m=[...c,
|
|
2
|
+
import e from"../../core/Error.js";import{verifyBasicFieldValidity as t,verifyFilterValidity as n}from"./support/utils.js";import{verifyBinningParams as r}from"../support/binningUtils.js";import{getFieldsList as i}from"../support/utils.js";import{binningCapableLayerTypes as a,createLayerAdapter as o,getLayerTypeLabels as s,defaultSupportedLayerTypes as c}from"../support/adapters/support/layerUtils.js";async function l(l){if(!(l?.layer&&(l.field||l.valueExpression)))throw new e(`unique-values:missing-parameters`,`'layer' and 'field' or 'valueExpression' parameters are required`);let u=l.valueExpression||l.sqlExpression,d=u&&!l.sqlExpression;if(u){if(d){if(!l.view)throw new e(`unique-values:missing-parameters`,`View is required when 'valueExpression' is specified`)}else if(!l.valueExpression)throw new e(`unique-values:missing-parameters`,`'valueExpression' parameters are required`)}l.forBinning&&r(l,`unique-values`);let{layer:f,...p}=l,m=[...c,7],h=l.forBinning?a:m,g=o(f,h,l.forBinning);if(!g)throw new e(`unique-values:invalid-parameters`,`'layer' must be one of these types: `+s(h).join(`, `));let _={layerAdapter:g,...p},v=_.signal==null?null:{signal:_.signal};await g.load(v);let y=await i({field:_.field,field2:_.field2,field3:_.field3,valueExpression:_.valueExpression}),b=t(g,y,`unique-values:invalid-parameters`);if(b)throw b;_.filter&&!_.filter.spatialRelationship&&(_.filter.spatialRelationship=`intersects`);let x=n(_.filter,`summary-statistics:invalid-parameters`);if(x)throw x;return _}async function u(e){let{layerAdapter:t,...n}=await l(e);return t.uniqueValues(n)}export{u as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import e from"../CSVLayerAdapter.js";import t from"../FeatureLayerAdapter.js";import n from"../FeatureLayerBinningAdapter.js";import r from"../InMemoryLayerAdapter.js";import i from"../LayerAdapter.js";import a from"../PointCloudLayerAdapter.js";import o from"../SceneLayerAdapter.js";import s from"../StreamLayerAdapter.js";const c={0:{adapter:t,type:`catalog`,label:`CatalogLayer`},
|
|
2
|
+
import e from"../CSVLayerAdapter.js";import t from"../FeatureLayerAdapter.js";import n from"../FeatureLayerBinningAdapter.js";import r from"../InMemoryLayerAdapter.js";import i from"../LayerAdapter.js";import a from"../PointCloudLayerAdapter.js";import o from"../SceneLayerAdapter.js";import s from"../StreamLayerAdapter.js";const c={0:{adapter:t,type:`annotation-feature`,label:`AnnotationFeatureLayer`},1:{adapter:t,type:`catalog`,label:`CatalogLayer`},2:{adapter:t,type:`catalog-footprint`,label:`CatalogFootprintLayer`},3:{adapter:e,type:`csv`,label:`CSVLayer`},4:{adapter:t,type:`dimension-feature`,label:`DimensionFeatureLayer`},5:{adapter:t,type:`feature`,label:`FeatureLayer`},7:{adapter:t,type:`imagery`,label:`ImageryLayer`},6:{adapter:t,type:`geojson`,label:`GeoJSONLayer`},8:{adapter:t,type:`knowledge-graph-sublayer`,label:`KnowledgeGraphSublayer`},9:{adapter:r,type:`ogc-feature`,label:`OGCFeatureLayer`},10:{adapter:t,type:`oriented-imagery`,label:`OrientedImageryLayer`},11:{adapter:t,type:`parquet`,label:`ParquetLayer`},12:{adapter:a,type:`point-cloud`,label:`PointCloudLayer`},13:{adapter:o,type:`scene`,label:`SceneLayer`},14:{adapter:s,type:`stream`,label:`StreamLayer`},15:{adapter:t,type:`subtype-group`,label:`SubtypeGroupLayer`},16:{adapter:t,type:`subtype-sublayer`,label:`SubtypeSublayer`},17:{adapter:t,type:`wfs`,label:`WFSLayer`}},l=[1,2,3,5,6,8,9,10,11,12,13,14,15,16,17],u=[2,3,5,6,8,9,10,11,13,14,15,16,17],d=[3,5,6,9,8,10,11,14,17];function f(e){return e.map(e=>c[e].label)}function p(e){return e.map(e=>c[e].type)}function m(e,t=l,r){if(e instanceof i)return e;let a=h(e,t);return a?r?new n({layer:e}):new a({layer:e}):null}function h(e,t=l){let n=null;return t.some(t=>{let r=e.type===c[t].type;return r&&(n=c[t].adapter),r}),n}export{d as binningCapableLayerTypes,m as createLayerAdapter,l as defaultSupportedLayerTypes,u as featureCapableLayerTypes,f as getLayerTypeLabels,p as getLayerTypes};
|
package/smartMapping/types.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import type AnnotationFeatureLayer from "../layers/AnnotationFeatureLayer.js";
|
|
1
2
|
import type CatalogLayer from "../layers/CatalogLayer.js";
|
|
2
3
|
import type CSVLayer from "../layers/CSVLayer.js";
|
|
4
|
+
import type DimensionFeatureLayer from "../layers/DimensionFeatureLayer.js";
|
|
3
5
|
import type FeatureLayer from "../layers/FeatureLayer.js";
|
|
4
6
|
import type GeoJSONLayer from "../layers/GeoJSONLayer.js";
|
|
5
7
|
import type ImageryLayer from "../layers/ImageryLayer.js";
|
|
@@ -16,7 +18,7 @@ import type KnowledgeGraphSublayer from "../layers/knowledgeGraph/KnowledgeGraph
|
|
|
16
18
|
import type SubtypeSublayer from "../layers/support/SubtypeSublayer.js";
|
|
17
19
|
|
|
18
20
|
/** @since 5.0 */
|
|
19
|
-
export type SupportedLayer = CatalogLayer | CatalogFootprintLayer | CSVLayer | FeatureLayer | GeoJSONLayer | ImageryLayer | KnowledgeGraphSublayer | OGCFeatureLayer | OrientedImageryLayer | ParquetLayer | PointCloudLayer | SceneLayer | StreamLayer | SubtypeGroupLayer | SubtypeSublayer | WFSLayer;
|
|
21
|
+
export type SupportedLayer = AnnotationFeatureLayer | CatalogLayer | CatalogFootprintLayer | CSVLayer | DimensionFeatureLayer | FeatureLayer | GeoJSONLayer | ImageryLayer | KnowledgeGraphSublayer | OGCFeatureLayer | OrientedImageryLayer | ParquetLayer | PointCloudLayer | SceneLayer | StreamLayer | SubtypeGroupLayer | SubtypeSublayer | WFSLayer;
|
|
20
22
|
|
|
21
23
|
/** @since 5.0 */
|
|
22
24
|
export type BinningSupportedLayer = FeatureLayer | OGCFeatureLayer | OrientedImageryLayer | GeoJSONLayer | CSVLayer | ParquetLayer | WFSLayer | StreamLayer | KnowledgeGraphSublayer;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
const e={type:`empty-tile`};function t(e){return e!=null&&`type`in e&&e.type===`vector-tile`}function n(e){return e!=null&&`type`in e&&e.type===`raster-tile`}function r(e){return e!=null&&`type`in e&&e.type===`tile-texture`}function i(e){return e
|
|
2
|
+
const e={type:`empty-tile`};function t(e){return e!=null&&`type`in e&&e.type===`vector-tile`}function n(e){return e!=null&&`type`in e&&e.type===`raster-tile`}function r(e){return e!=null&&`type`in e&&e.type===`tile-texture`}function i(e){return e==null||`type`in e&&e.type===`empty-tile`}function a(e){return e!=null&&`type`in e&&`bitmap`in e}export{e as emptyTile,a as isCreateBitmapResult,i as isEmptyTile,n as isRasterTile,r as isTileTexture,t as isVectorTile};
|