@arcgis/core 5.2.0-next.153 → 5.2.0-next.155
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/arcade/containerUtils.js +1 -1
- package/arcade/featureset/sources/FeatureLayerDynamic.js +1 -1
- package/arcade/functions/feature.js +1 -1
- package/arcade/functions/featuresetstring.js +1 -1
- package/arcade/functions/geomasync.js +1 -1
- package/arcade/functions/portal.js +1 -1
- package/arcade/functions/string.js +1 -1
- package/arcgisGlobal.d.ts +1 -1
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/05b34302da58e8244da3.js +1 -0
- package/assets/esri/core/workers/chunks/28b74bc77f7c13080074.js +1 -0
- package/assets/esri/core/workers/chunks/2a226b69d38c72a47a08.js +1 -0
- package/assets/esri/core/workers/chunks/47e250d471d0e55fa6be.js +1 -0
- package/assets/esri/core/workers/chunks/{a07cb6a2f5b66d4e9f15.js → 49ff0985fb307ac193ab.js} +1 -1
- package/assets/esri/core/workers/chunks/{dc486a3595b6d57018bb.js → 5bfea0c55aca826de536.js} +1 -1
- package/assets/esri/core/workers/chunks/5f4feca26102088ea565.js +1 -0
- package/assets/esri/core/workers/chunks/{407f1e8176f3b0af73b4.js → 66867e523cc82f8fe35b.js} +1 -1
- package/assets/esri/core/workers/chunks/67ebc5a3d46b254b725c.js +1 -0
- package/assets/esri/core/workers/chunks/6c469b43089767176ced.js +1 -0
- package/assets/esri/core/workers/chunks/{6e62581d933e7298d1f6.js → 6f4e6022a52de0c54aab.js} +1 -1
- package/assets/esri/core/workers/chunks/{693873b3eb99fba58fa9.js → 78c4e43cfa1eda06b4d9.js} +1 -1
- package/assets/esri/core/workers/chunks/81cad8d2f62a5f671c55.js +1 -0
- package/assets/esri/core/workers/chunks/{588e677f33df86a595bf.js → 820c8aaf3632edb0150c.js} +1 -1
- package/assets/esri/core/workers/chunks/{5924ec3167a2941ebb1f.js → 88c74f3316f1fc253207.js} +1 -1
- package/assets/esri/core/workers/chunks/{a4162a8660bf763d542d.js → 967b4992b400517ee712.js} +1 -1
- package/assets/esri/core/workers/chunks/96b6ea199ad949fef17c.js +1 -0
- package/assets/esri/core/workers/chunks/{adf25e5ed99615b83c68.js → a62c12925303ff802c3d.js} +1 -1
- package/assets/esri/core/workers/chunks/acdfd275dbf8533a67f3.js +1 -0
- package/assets/esri/core/workers/chunks/b3007aedbf731dacaff1.js +1 -0
- package/assets/esri/core/workers/chunks/{9232f57623e1fa3ccabc.js → be5f92e98d09d6e6e38e.js} +1 -1
- package/assets/esri/core/workers/chunks/c1254cd131a62750ff6f.js +1 -0
- package/assets/esri/core/workers/chunks/{a7f3576208f295b670d6.js → c19cd5a03b6d480fe53b.js} +1 -1
- package/assets/esri/core/workers/chunks/c19f238b55ff2893f7c2.js +1 -0
- package/assets/esri/core/workers/chunks/c72a904e01dc8c17d992.js +1 -0
- package/assets/esri/core/workers/chunks/d33360c4f85203edafff.js +1 -0
- package/assets/esri/core/workers/chunks/de6081df29183bf80787.js +1 -0
- package/assets/esri/core/workers/chunks/e653c81ffb3d818645dd.js +1 -0
- package/assets/esri/core/workers/chunks/eb815148ae65388dd733.js +1 -0
- package/assets/esri/core/workers/chunks/ee6679ef9efa1504e7eb.js +1 -0
- package/assets/esri/core/workers/chunks/fda83bcb8e40e8044c24.js +1 -0
- package/assets/esri/libs/lyr3d/lyr3DMain.wasm +0 -0
- package/assets/esri/libs/lyr3d/lyr3DWorker.wasm +0 -0
- package/assets/esri/libs/pdfjs/wasm/openjpeg_nowasm_fallback.js +1 -0
- package/assets/esri/widgets/support/uriUtils/t9n/messages.fr.json +1 -1
- package/chunks/lyr3DMain.js +1 -1
- package/chunks/lyr3DWorker.js +2 -2
- package/chunks/portal.js +1 -1
- package/config.js +1 -1
- package/form/elements/inputs/DynamicChoiceInput.d.ts +4 -2
- package/geometry/support/curves/ellipticArc7Utils.js +1 -1
- package/geometry/support/curves/mathUtils.js +1 -1
- package/geometry/support/meshUtils.d.ts +5 -6
- package/interfaces.d.ts +19 -10
- package/kernel.js +1 -1
- package/layers/FeatureLayer.d.ts +2 -2
- package/layers/GeospatialPDFLayer.d.ts +154 -4
- package/layers/Layer.d.ts +2 -0
- package/layers/SketchLayer.d.ts +4 -2
- package/layers/geospatialPDF/GeospatialPDFLayerWorker.js +1 -1
- package/layers/geospatialPDF/ViewportMeasureFrame.js +1 -1
- package/layers/geospatialPDF/geospatialPDFParserUtils.js +1 -1
- package/layers/geospatialPDF/projectionToWKTUtils.js +2 -2
- package/layers/graphics/sources/GeoJSONSource.js +1 -1
- package/layers/graphics/sources/geojson/GeoJSONSourceWorker.js +1 -1
- package/layers/graphics/sources/support/MemorySourceWorker.js +1 -1
- package/layers/graphics/sources/support/clientSideDefaults.js +1 -1
- package/layers/graphics/sources/support/sourceUtils.js +1 -1
- package/layers/support/LabelClass.d.ts +3 -2
- package/layers/support/PortalItemData.d.ts +31 -8
- package/layers/support/{TimeSeriesCalculation.d.ts → TimeSeriesCalculationMethod.d.ts} +6 -6
- package/layers/support/{TimeSeriesCalculation.js → TimeSeriesCalculationMethod.js} +1 -1
- package/layers/support/TimeSeriesInfo.d.ts +5 -5
- package/layers/support/TimeSeriesInfo.js +1 -1
- package/layers/support/fieldUtils.js +1 -1
- package/layers/support/timeSeriesUtils.d.ts +6 -2
- package/layers/support/timeSeriesUtils.js +1 -1
- package/layers/support/types.d.ts +4 -1
- package/layers/support/vectorTileLayerLoader.js +1 -1
- package/package.json +2 -2
- package/portal/schemas/definitions.js +1 -1
- package/smartMapping/renderers/support/timeSeriesUtils.js +1 -1
- package/smartMapping/statistics/support/timeSeriesUtils.js +1 -1
- package/symbols/cim/cimAnalyzer.js +1 -1
- package/views/2d/engine/vectorTiles/TileHandler.js +1 -1
- package/views/2d/engine/vectorTiles/style/GeoJSONVectorTileSource.js +1 -1
- package/views/2d/engine/vectorTiles/style/GeoJSONVectorTileSourceWorker.js +1 -1
- package/views/2d/engine/vectorTiles/style/geoJSONVectorTileUtils.js +2 -0
- package/views/2d/engine/webgl/GlyphWorker.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/projection.js +1 -1
- package/views/2d/layers/VectorTileLayerView2D.js +1 -1
- package/views/2d/layers/features/schema/processor/symbols/ComplexSymbolSchema.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightObserverPlugin.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightTargetPlugin.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedPlacementPointPlugin.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/raster/Projection.glsl.js +2 -2
- package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.js +1 -1
- package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
- package/views/3d/webgl-engine/lib/MainFramebuffer.js +1 -1
- package/views/3d/webgl-engine/lib/PathBuilder.js +1 -1
- package/views/3d/webgl-engine/lib/PathCapBuilder.js +1 -1
- package/views/3d/webgl-engine/lib/PathEvaluator.js +1 -1
- package/views/3d/webgl-engine/lib/PathExtruder.js +1 -1
- package/views/3d/webgl-engine/lib/PathProfile.js +1 -1
- package/views/3d/webgl-engine/lib/Renderer.js +1 -1
- package/views/3d/webgl-engine/lib/pathGeometryUtils.js +1 -1
- package/views/3d/webgl-engine/parts/ScreenshotManager.js +1 -1
- package/views/draw/DrawTool.js +1 -1
- package/views/draw/plugins/MultipointPlugin.js +1 -1
- package/views/draw/support/PluginContext.js +1 -1
- package/views/draw/support/managers/TooltipManager.js +1 -1
- package/views/draw/support/types.d.ts +5 -2
- package/webdoc/applicationProperties/SearchLayerField.d.ts +7 -1
- package/webdoc/applicationProperties/SearchLayerField.js +1 -1
- package/webdoc/applicationProperties/SearchTableField.d.ts +7 -1
- package/webdoc/applicationProperties/SearchTableField.js +1 -1
- package/webdoc/applicationProperties/searchMode.js +2 -0
- package/widgets/BatchAttributeForm/batchAttributeFormUtils.js +1 -1
- package/widgets/BatchAttributeForm/inputs/support/DynamicChoiceController.js +1 -1
- package/widgets/BatchAttributeForm/inputs/support/inputUtils.js +1 -1
- package/widgets/BatchAttributeForm.js +1 -1
- package/widgets/Editor/EditorViewModel.d.ts +10 -1
- package/widgets/Editor.d.ts +10 -1
- package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
- package/widgets/FeatureTable/support/FeatureStore.js +1 -1
- package/widgets/Legend.d.ts +1 -0
- package/widgets/Search/LayerSearchSource.d.ts +23 -1
- package/widgets/Search/LayerSearchSource.js +1 -1
- package/widgets/Search/support/layerSearchUtils.js +1 -1
- package/widgets/Search/types.d.ts +7 -0
- package/widgets/support/forms/formUtils.js +1 -1
- package/widgets/support/forms/types.d.ts +1 -1
- package/assets/esri/core/workers/chunks/03afeefb9d16b6f1d844.js +0 -1
- package/assets/esri/core/workers/chunks/09b9a886363bc1197785.js +0 -1
- package/assets/esri/core/workers/chunks/21f45a47708e6e43147f.js +0 -1
- package/assets/esri/core/workers/chunks/2ecfaa715863216f0faf.js +0 -1
- package/assets/esri/core/workers/chunks/3cc43ae56779a9f97f77.js +0 -1
- package/assets/esri/core/workers/chunks/3e8eb158320f0e4ce1b6.js +0 -1
- package/assets/esri/core/workers/chunks/4fc337240e7cddd0e988.js +0 -1
- package/assets/esri/core/workers/chunks/5732fdf6d8b87739aeea.js +0 -1
- package/assets/esri/core/workers/chunks/5fa1ec357c3ad1f91bc7.js +0 -1
- package/assets/esri/core/workers/chunks/7320a4913b6cad7cc5d7.js +0 -1
- package/assets/esri/core/workers/chunks/7d1fd2df579a4b535e0e.js +0 -1
- package/assets/esri/core/workers/chunks/879b2de825c1dfc8849d.js +0 -1
- package/assets/esri/core/workers/chunks/8c4e0a7384e40979cb42.js +0 -1
- package/assets/esri/core/workers/chunks/937824bc7948f7bc7845.js +0 -1
- package/assets/esri/core/workers/chunks/9e142551163acf752618.js +0 -1
- package/assets/esri/core/workers/chunks/b132ffa7e8bb461b6786.js +0 -1
- package/assets/esri/core/workers/chunks/b19b6102ed2d6f67b43b.js +0 -1
- package/assets/esri/core/workers/chunks/dca35dbe427605ef6fcc.js +0 -1
- package/assets/esri/core/workers/chunks/f095cf98940e3f95d51e.js +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{remove as e}from"../../../../core/arrayUtils.js";import t from"../../../../core/Error.js";import{getJsonType as n,isPoint as r}from"../../../../geometry/support/jsonTypeUtils.js";import{wgs84 as i}from"../../../../geometry/support/spatialReferenceUtils.js";import{convertFromFeatures as a,convertToFeature as o,convertFromFeature as s}from"../../featureConversionUtils.js";import{initialObjectId as c,findLastObjectIdFromFeatures as l}from"../../objectIdUtils.js";import u from"../../data/FeatureStore.js";import{checkProjectionSupport as d,project as f}from"../../data/projectionSupport.js";import{QueryEngine as p}from"../../data/QueryEngine.js";import{createDefaultAttributesFunction as m,createDefaultTemplate as h,createDrawingInfo as g}from"./clientSideDefaults.js";import{queryBinsCapabilities as _,loadGeometryEngineForSimplify as v,createFeatureEditErrorResult as y,mixAttributes as b,createFeatureEditSuccessResult as x,simplify as S}from"./sourceUtils.js";import C from"../../../support/FieldsIndex.js";import{kebabDict as w}from"../../../support/fieldType.js";import{getFieldDefaultLength as T,getFieldDefaultValue as E}from"../../../support/fieldUtils.js";import{utc as D}from"../../../../time/constants.js";const O=i,k={xmin:-180,ymin:-90,xmax:180,ymax:90,spatialReference:i},A={hasAttachments:!1,capabilities:`query, editing, create, delete, update`,useStandardizedQueries:!0,supportsCoordinatesQuantization:!0,supportsReturningQueryGeometry:!0,advancedQueryCapabilities:{supportsQueryAttachments:!1,supportsQueryAttachmentsCountOnly:!1,supportsQueryAttachmentOrderByFields:!1,supportsQueryAttachmentWithTypeWildcard:!1,supportsQueryBins:!0,supportsQueryPivot:!1,supportsSpatialAggregationStatistics:!0,supportedSpatialAggregationStatistics:[`EnvelopeAggregate`,`CentroidAggregate`,`ConvexHullAggregate`],supportsStatistics:!0,supportsPercentileStatistics:!0,supportsReturningGeometryCentroid:!0,supportsQueryWithDistance:!0,supportsOutDistance:!1,supportsDistinct:!0,supportsReturningQueryExtent:!0,supportsReturningGeometryProperties:!1,supportsHavingClause:!0,supportsOrderBy:!0,supportsPagination:!0,supportsQueryWithResultType:!0,supportsSqlExpression:!0,supportsDisjointSpatialRel:!0,supportsQueryWithCacheHint:!0},queryBinsCapabilities:_};function j(e){return r(e)?e.z!=null:!!e.hasZ}function M(e){return r(e)?e.m!=null:!!e.hasM}function N(e,t){let n,r=[];if(t.type===`unique-id-composite`){let i=[];for(let n of t.fieldNames)e.attributes[n]?i.push(e.attributes[n]):r.push(n);n=r.length===0?JSON.stringify(i):null}else n=e.attributes[t.fieldName],n||r.push(t.fieldName);return{objectId:n,missingFields:r}}class P{constructor(){this._uniqueIdInfo=null,this._queryEngine=null,this._nextObjectId=null}destroy(){this._queryEngine?.destroy(),this._queryEngine=this._createDefaultAttributes=null}async load(e){let n=[],{features:r}=e,i=this._inferLayerProperties(r,e.fields),a=e.fields||[],o=e.hasM==null?!!i.hasM:e.hasM,s=e.hasZ==null?!!i.hasZ:e.hasZ,f=!e.spatialReference&&!i.spatialReference,_=f?O:e.spatialReference||i.spatialReference,v=f?k:null,y=e.geometryType||i.geometryType,b=!y,x=e.uniqueIdInfo,S=e.objectIdField??i.objectIdField,j=e.timeInfo,M=new C(a);if(!b&&(f&&n.push({name:`feature-layer:spatial-reference-not-found`,message:`Spatial reference not provided or found in features. Defaults to WGS84`}),!y))throw new t(`feature-layer:missing-property`,`geometryType not set and couldn't be inferred from the provided features`);if(x){let e=new Set(a.map(({name:e})=>e));if(!x.fields.every(t=>e.has(t))){let n=x.fields.filter(t=>!e.has(t));throw new t(`feature-layer:missing-property`,`UniqueIdFields not set and couldn't be found in the provided fields. Fields: `+n+` are mssing.`)}S=null}else if(!S)throw new t(`feature-layer:missing-property`,`objectIdField not set and uniqueIdInfo not provided.`);if(i.objectIdField&&S!==i.objectIdField&&(n.push({name:`feature-layer:duplicated-oid-field`,message:`Provided objectIdField "${S}" doesn't match the field name "${i.objectIdField}", found in the provided fields`}),S=i.objectIdField),S&&!i.objectIdField){let e=M.get(S);e?(S=e.name,e.type=`esriFieldTypeOID`,e.editable=!1,e.nullable=!1):a.unshift({alias:S,name:S,type:`esriFieldTypeOID`,editable:!1,nullable:!1})}for(let e of a){if(e.name??=e.alias,e.alias??=e.name,!e.name)throw new t(`feature-layer:invalid-field-name`,`field name is missing`,{field:e});if(e.name===S&&(e.type=`esriFieldTypeOID`),!w.jsonValues.includes(e.type))throw new t(`feature-layer:invalid-field-type`,`invalid type for field "${e.name}"`,{field:e});e.length??=T(e)}let N={};for(let e of a)if(e.type!==`esriFieldTypeOID`&&e.type!==`esriFieldTypeGlobalID`){let t=E(e);t!==void 0&&(N[e.name]=t)}if(j){if(j.startTimeField){let e=M.get(j.startTimeField);e?(j.startTimeField=e.name,e.type=`esriFieldTypeDate`):j.startTimeField=null}if(j.endTimeField){let e=M.get(j.endTimeField);e?(j.endTimeField=e.name,e.type=`esriFieldTypeDate`):j.endTimeField=null}if(j.trackIdField){let e=M.get(j.trackIdField);e?j.trackIdField=e.name:(j.trackIdField=null,n.push({name:`feature-layer:invalid-timeInfo-trackIdField`,message:`trackIdField is missing`,details:{timeInfo:j}}))}!j.startTimeField&&!j.endTimeField&&(n.push({name:`feature-layer:invalid-timeInfo`,message:`startTimeField and endTimeField are missing or invalid`,details:{timeInfo:j}}),j=null)}let P=M.dateFields.length?{timeZoneIANA:e.dateFieldsTimeZone??D}:null;this._createDefaultAttributes=m(N,S),this._uniqueIdInfo=e.uniqueIdInfo??void 0;let F={warnings:n,featureErrors:[],layerDefinition:{...A,drawingInfo:g(y),templates:h(N),extent:v,geometryType:y,objectIdField:S,fields:a,hasZ:s,hasM:o,timeInfo:j,dateFieldsTimeReference:P,uniqueIdInfo:this._uniqueIdInfo??void 0},assignedObjectIds:{}},I=this._uniqueIdInfo?.OIDFieldContainsHashValue?this._uniqueIdInfo.type===`simple`?{type:`unique-id-simple`,fieldName:this._uniqueIdInfo.fields[0]}:{type:`unique-id-composite`,fieldNames:this._uniqueIdInfo.fields}:{type:`object-id`,fieldName:S};if(this._queryEngine=new p({fieldsIndex:C.fromLayerJSON({fields:a,timeInfo:j,dateFieldsTimeReference:P}),geometryType:y,hasM:o,hasZ:s,featureIdInfo:I,spatialReference:_,featureStore:new u({geometryType:y,hasM:o,hasZ:s}),timeInfo:j}),!r?.length)return this._nextObjectId=c,F;if(S){let e=l(S,r);this._nextObjectId=e+1}return await d(r,_),this._loadInitialFeatures(F,r)}async applyEdits(e){let{spatialReference:t,geometryType:n}=this._queryEngine;return await Promise.all([v(t,n),d(e.adds,t),d(e.updates,t)]),this._applyEdits(e)}queryFeatures(e,t={}){return this._queryEngine.executeQuery(e,t.signal)}queryFeatureCount(e,t={}){return this._queryEngine.executeQueryForCount(e,t.signal)}queryObjectIds(e,t={}){return this._queryEngine.executeQueryForIds(e,t.signal)}queryExtent(e,t={}){return this._queryEngine.executeQueryForExtent(e,t.signal)}querySnapping(e,t={}){return this._queryEngine.executeQueryForSnapping(e,t.signal)}queryAttributeBins(e,t={}){return this._queryEngine.executeAttributeBinsQuery(e,t.signal)}_inferLayerProperties(e,t){let r,i,a=null,o=null,s=null;for(let t of e){let e=t.geometry;if(e!=null&&(a||=n(e),o||=e.spatialReference,r??=j(e),i??=M(e),a&&o&&r!=null&&i!=null))break}if(t&&t.length){let e=null;t.some(t=>{let n=t.type===`esriFieldTypeOID`,r=!t.type&&t.name&&t.name.toLowerCase()===`objectid`;return e=t,n||r})&&(s=e.name)}return{geometryType:a,spatialReference:o,objectIdField:s,hasM:i,hasZ:r}}async _loadInitialFeatures(e,t){let{geometryType:r,hasM:i,hasZ:o,spatialReference:s,featureStore:c,fieldsIndex:l,featureIdInfo:u}=this._queryEngine,d=[];for(let i of t){if(i.uid!=null&&(e.assignedObjectIds[i.uid]=-1),i.geometry&&r!==n(i.geometry)){e.featureErrors.push(y(`Incorrect geometry type.`));continue}let t=this._createDefaultAttributes(),a=b(l,t,i.attributes,!0);if(a){e.featureErrors.push(a);continue}this._assignObjectId(t,i.attributes,!0),i.attributes=t,i.uid&&(e.assignedObjectIds[i.uid]=N(i,u).objectId),i.geometry!=null&&(i.geometry=f(i.geometry,i.geometry.spatialReference,s)),d.push(i)}c.addMany(a([],d,r,o,i,u));let{fullExtent:p,timeExtent:m}=await this._queryEngine.fetchRecomputedExtents();if(e.layerDefinition.extent=p,m){let{start:t,end:n}=m;e.layerDefinition.timeInfo.timeExtent=[t,n]}return e}async _applyEdits(e){let{adds:t,updates:n,deletes:r}=e,i={addResults:[],deleteResults:[],updateResults:[],uidToObjectId:{}};if(t?.length&&this._applyAddEdits(i,t),n?.length&&this._applyUpdateEdits(i,n),r?.length){for(let e of r)i.deleteResults.push(x(e));this._queryEngine.featureStore.removeManyById(r)}let{fullExtent:a,timeExtent:o}=await this._queryEngine.fetchRecomputedExtents();return{extent:a,timeExtent:o,featureEditResults:i}}_applyAddEdits(t,r){let{addResults:i,updateResults:o}=t,{geometryType:s,hasM:c,hasZ:l,spatialReference:u,featureStore:d,featureIdInfo:p,fieldsIndex:m}=this._queryEngine,h=[],g=new Map;for(let a of r){if(a.geometry&&s!==n(a.geometry)){i.push(y(`Incorrect geometry type.`));continue}let r=this._createDefaultAttributes(),c=b(m,r,a.attributes);if(c){i.push(c);continue}this._assignObjectId(r,a.attributes),a.attributes=r;let{objectId:l,missingFields:_}=N(a,p);if(l){if(a.uid!=null&&(t.uidToObjectId[a.uid]=l),a.geometry!=null){let e=a.geometry.spatialReference??u;a.geometry=f(S(a.geometry,e),e,u)}h.push(a);let n=x(l);g.has(l)?e(h,g.get(l)):d.has(l)?o.push(n):i.push(n),g.set(l,a)}else{i.push(y(`Missing unique id field value for fields: ${_.join()}`));continue}}d.addMany(a([],h,s,l,c,p))}_applyUpdateEdits({updateResults:e},t){let{geometryType:r,hasM:i,hasZ:a,spatialReference:c,featureStore:l,fieldsIndex:u,featureIdInfo:d}=this._queryEngine;for(let p of t){let{attributes:t,geometry:m}=p,{objectId:h,missingFields:g}=N(p,d);if(h==null){let t=d.type===`unique-id-composite`?g:d.fieldName;e.push(y(`Identifier fields: ${t} missing`));continue}if(!l.has(h)){e.push(y(`Feature with object id ${h} missing`));continue}let _=o(l.getFeature(h),r,a,i);if(m!=null){if(r!==n(m)){e.push(y(`Incorrect geometry type.`));continue}let t=m.spatialReference??c;_.geometry=f(S(m,t),t,c)}if(t){let n=b(u,_.attributes,t);if(n){e.push(n);continue}}l.add(s(_,r,a,i,d)),e.push(x(h))}}_assignObjectId(e,t,n=!1){if(this._queryEngine.featureIdInfo.type===`object-id`){let r=this._queryEngine.featureIdInfo.fieldName;e[r]=n&&t&&isFinite(t[r])?t[r]:this._nextObjectId++}}}export{P as default};
|
|
2
|
+
import{remove as e}from"../../../../core/arrayUtils.js";import t from"../../../../core/Error.js";import{getJsonType as n,isPoint as r}from"../../../../geometry/support/jsonTypeUtils.js";import{wgs84 as i}from"../../../../geometry/support/spatialReferenceUtils.js";import{convertFromFeatures as a,convertToFeature as o,convertFromFeature as s}from"../../featureConversionUtils.js";import{initialObjectId as c,findLastObjectIdFromFeatures as l}from"../../objectIdUtils.js";import u from"../../data/FeatureStore.js";import{checkProjectionSupport as d,project as f}from"../../data/projectionSupport.js";import{QueryEngine as p}from"../../data/QueryEngine.js";import{createDefaultAttributesFunction as m,createDefaultTemplate as h,createDrawingInfo as g}from"./clientSideDefaults.js";import{tableCapabilities as _,layerCapabilities as v,loadGeometryEngineForSimplify as y,createFeatureEditErrorResult as b,mixAttributes as x,createFeatureEditSuccessResult as S,simplify as C}from"./sourceUtils.js";import w from"../../../support/FieldsIndex.js";import{kebabDict as T}from"../../../support/fieldType.js";import{getFieldDefaultLength as E,getFieldDefaultValue as D}from"../../../support/fieldUtils.js";import{utc as O}from"../../../../time/constants.js";const k=i,A={xmin:-180,ymin:-90,xmax:180,ymax:90,spatialReference:i};function j(e){return r(e)?e.z!=null:!!e.hasZ}function M(e){return r(e)?e.m!=null:!!e.hasM}function N(e,t){let n,r=[];if(t.type===`unique-id-composite`){let i=[];for(let n of t.fieldNames)e.attributes[n]?i.push(e.attributes[n]):r.push(n);n=r.length===0?JSON.stringify(i):null}else n=e.attributes[t.fieldName],n||r.push(t.fieldName);return{objectId:n,missingFields:r}}class P{constructor(){this._uniqueIdInfo=null,this._queryEngine=null,this._nextObjectId=null}destroy(){this._queryEngine?.destroy(),this._queryEngine=this._createDefaultAttributes=null}async load(e){let n=[],{features:r}=e,i=this._inferLayerProperties(r,e.fields),a=e.fields||[],o=e.hasM==null?!!i.hasM:e.hasM,s=e.hasZ==null?!!i.hasZ:e.hasZ,f=!e.spatialReference&&!i.spatialReference,y=f?k:e.spatialReference||i.spatialReference,b=f?A:null,x=e.geometryType||i.geometryType,S=!x,C=e.uniqueIdInfo,j=e.objectIdField??i.objectIdField,M=e.timeInfo,N=new w(a);if(!S&&(f&&n.push({name:`feature-layer:spatial-reference-not-found`,message:`Spatial reference not provided or found in features. Defaults to WGS84`}),!x))throw new t(`feature-layer:missing-property`,`geometryType not set and couldn't be inferred from the provided features`);if(C){let e=new Set(a.map(({name:e})=>e));if(!C.fields.every(t=>e.has(t))){let n=C.fields.filter(t=>!e.has(t));throw new t(`feature-layer:missing-property`,`UniqueIdFields not set and couldn't be found in the provided fields. Fields: `+n+` are mssing.`)}j=null}else if(!j)throw new t(`feature-layer:missing-property`,`objectIdField not set and uniqueIdInfo not provided.`);if(i.objectIdField&&j!==i.objectIdField&&(n.push({name:`feature-layer:duplicated-oid-field`,message:`Provided objectIdField "${j}" doesn't match the field name "${i.objectIdField}", found in the provided fields`}),j=i.objectIdField),j&&!i.objectIdField){let e=N.get(j);e?(j=e.name,e.type=`esriFieldTypeOID`,e.editable=!1,e.nullable=!1):a.unshift({alias:j,name:j,type:`esriFieldTypeOID`,editable:!1,nullable:!1})}for(let e of a){if(e.name??=e.alias,e.alias??=e.name,!e.name)throw new t(`feature-layer:invalid-field-name`,`field name is missing`,{field:e});if(e.name===j&&(e.type=`esriFieldTypeOID`),!T.jsonValues.includes(e.type))throw new t(`feature-layer:invalid-field-type`,`invalid type for field "${e.name}"`,{field:e});e.length??=E(e)}let P={};for(let e of a)if(e.type!==`esriFieldTypeOID`&&e.type!==`esriFieldTypeGlobalID`){let t=D(e);t!==void 0&&(P[e.name]=t)}if(M){if(M.startTimeField){let e=N.get(M.startTimeField);e?(M.startTimeField=e.name,e.type=`esriFieldTypeDate`):M.startTimeField=null}if(M.endTimeField){let e=N.get(M.endTimeField);e?(M.endTimeField=e.name,e.type=`esriFieldTypeDate`):M.endTimeField=null}if(M.trackIdField){let e=N.get(M.trackIdField);e?M.trackIdField=e.name:(M.trackIdField=null,n.push({name:`feature-layer:invalid-timeInfo-trackIdField`,message:`trackIdField is missing`,details:{timeInfo:M}}))}!M.startTimeField&&!M.endTimeField&&(n.push({name:`feature-layer:invalid-timeInfo`,message:`startTimeField and endTimeField are missing or invalid`,details:{timeInfo:M}}),M=null)}let F=N.dateFields.length?{timeZoneIANA:e.dateFieldsTimeZone??O}:null;this._createDefaultAttributes=m(P,j),this._uniqueIdInfo=e.uniqueIdInfo??void 0;let I={warnings:n,featureErrors:[],layerDefinition:{...S?_:v,drawingInfo:g(x),templates:h(P),extent:b,geometryType:x,objectIdField:j,fields:a,hasZ:s,hasM:o,timeInfo:M,dateFieldsTimeReference:F,uniqueIdInfo:this._uniqueIdInfo??void 0},assignedObjectIds:{}},L=this._uniqueIdInfo?.OIDFieldContainsHashValue?this._uniqueIdInfo.type===`simple`?{type:`unique-id-simple`,fieldName:this._uniqueIdInfo.fields[0]}:{type:`unique-id-composite`,fieldNames:this._uniqueIdInfo.fields}:{type:`object-id`,fieldName:j};if(this._queryEngine=new p({fieldsIndex:w.fromLayerJSON({fields:a,timeInfo:M,dateFieldsTimeReference:F}),geometryType:x,hasM:o,hasZ:s,featureIdInfo:L,spatialReference:y,featureStore:new u({geometryType:x,hasM:o,hasZ:s}),timeInfo:M}),!r?.length)return this._nextObjectId=c,I;if(j){let e=l(j,r);this._nextObjectId=e+1}return await d(r,y),this._loadInitialFeatures(I,r)}async applyEdits(e){let{spatialReference:t,geometryType:n}=this._queryEngine;return await Promise.all([y(t,n),d(e.adds,t),d(e.updates,t)]),this._applyEdits(e)}queryFeatures(e,t={}){return this._queryEngine.executeQuery(e,t.signal)}queryFeatureCount(e,t={}){return this._queryEngine.executeQueryForCount(e,t.signal)}queryObjectIds(e,t={}){return this._queryEngine.executeQueryForIds(e,t.signal)}queryExtent(e,t={}){return this._queryEngine.executeQueryForExtent(e,t.signal)}querySnapping(e,t={}){return this._queryEngine.executeQueryForSnapping(e,t.signal)}queryAttributeBins(e,t={}){return this._queryEngine.executeAttributeBinsQuery(e,t.signal)}_inferLayerProperties(e,t){let r,i,a=null,o=null,s=null;for(let t of e){let e=t.geometry;if(e!=null&&(a||=n(e),o||=e.spatialReference,r??=j(e),i??=M(e),a&&o&&r!=null&&i!=null))break}if(t&&t.length){let e=null;t.some(t=>{let n=t.type===`esriFieldTypeOID`,r=!t.type&&t.name&&t.name.toLowerCase()===`objectid`;return e=t,n||r})&&(s=e.name)}return{geometryType:a,spatialReference:o,objectIdField:s,hasM:i,hasZ:r}}async _loadInitialFeatures(e,t){let{geometryType:r,hasM:i,hasZ:o,spatialReference:s,featureStore:c,fieldsIndex:l,featureIdInfo:u}=this._queryEngine,d=[];for(let i of t){if(i.uid!=null&&(e.assignedObjectIds[i.uid]=-1),i.geometry&&r!==n(i.geometry)){e.featureErrors.push(b(`Incorrect geometry type.`));continue}let t=this._createDefaultAttributes(),a=x(l,t,i.attributes,!0);if(a){e.featureErrors.push(a);continue}this._assignObjectId(t,i.attributes,!0),i.attributes=t,i.uid&&(e.assignedObjectIds[i.uid]=N(i,u).objectId),i.geometry!=null&&(i.geometry=f(i.geometry,i.geometry.spatialReference,s)),d.push(i)}c.addMany(a([],d,r,o,i,u));let{fullExtent:p,timeExtent:m}=await this._queryEngine.fetchRecomputedExtents();if(e.layerDefinition.extent=p,m){let{start:t,end:n}=m;e.layerDefinition.timeInfo.timeExtent=[t,n]}return e}async _applyEdits(e){let{adds:t,updates:n,deletes:r}=e,i={addResults:[],deleteResults:[],updateResults:[],uidToObjectId:{}};if(t?.length&&this._applyAddEdits(i,t),n?.length&&this._applyUpdateEdits(i,n),r?.length){for(let e of r)i.deleteResults.push(S(e));this._queryEngine.featureStore.removeManyById(r)}let{fullExtent:a,timeExtent:o}=await this._queryEngine.fetchRecomputedExtents();return{extent:a,timeExtent:o,featureEditResults:i}}_applyAddEdits(t,r){let{addResults:i,updateResults:o}=t,{geometryType:s,hasM:c,hasZ:l,spatialReference:u,featureStore:d,featureIdInfo:p,fieldsIndex:m}=this._queryEngine,h=[],g=new Map;for(let a of r){if(a.geometry&&s!==n(a.geometry)){i.push(b(`Incorrect geometry type.`));continue}let r=this._createDefaultAttributes(),c=x(m,r,a.attributes);if(c){i.push(c);continue}this._assignObjectId(r,a.attributes),a.attributes=r;let{objectId:l,missingFields:_}=N(a,p);if(l){if(a.uid!=null&&(t.uidToObjectId[a.uid]=l),a.geometry!=null){let e=a.geometry.spatialReference??u;a.geometry=f(C(a.geometry,e),e,u)}h.push(a);let n=S(l);g.has(l)?e(h,g.get(l)):d.has(l)?o.push(n):i.push(n),g.set(l,a)}else{i.push(b(`Missing unique id field value for fields: ${_.join()}`));continue}}d.addMany(a([],h,s,l,c,p))}_applyUpdateEdits({updateResults:e},t){let{geometryType:r,hasM:i,hasZ:a,spatialReference:c,featureStore:l,fieldsIndex:u,featureIdInfo:d}=this._queryEngine;for(let p of t){let{attributes:t,geometry:m}=p,{objectId:h,missingFields:g}=N(p,d);if(h==null){let t=d.type===`unique-id-composite`?g:d.fieldName;e.push(b(`Identifier fields: ${t} missing`));continue}if(!l.has(h)){e.push(b(`Feature with object id ${h} missing`));continue}let _=o(l.getFeature(h),r,a,i);if(m!=null){if(r!==n(m)){e.push(b(`Incorrect geometry type.`));continue}let t=m.spatialReference??c;_.geometry=f(C(m,t),t,c)}if(t){let n=x(u,_.attributes,t);if(n){e.push(n);continue}}l.add(s(_,r,a,i,d)),e.push(S(h))}}_assignObjectId(e,t,n=!1){if(this._queryEngine.featureIdInfo.type===`object-id`){let r=this._queryEngine.featureIdInfo.fieldName;e[r]=n&&t&&isFinite(t[r])?t[r]:this._nextObjectId++}}}export{P as default};
|
|
@@ -5,4 +5,4 @@ import has from"../../../../core/has.js";import{clone as e}from"../../../../core
|
|
|
5
5
|
${n};
|
|
6
6
|
}
|
|
7
7
|
}
|
|
8
|
-
`)();return()=>new r}catch{return()=>t?{[t]:null,...e}:{...e}}}function u(e){return s.test(e)?`.${e}`:`[${JSON.stringify(e)}]`}function d(t={}){return[{name:`New Feature`,description:``,prototype:{attributes:e(t)}}]}function
|
|
8
|
+
`)();return()=>new r}catch{return()=>t?{[t]:null,...e}:{...e}}}function u(e){return s.test(e)?`.${e}`:`[${JSON.stringify(e)}]`}function d(t={}){return[{name:`New Feature`,description:``,prototype:{attributes:e(t)}}]}const f={...n,supportsSpatialAggregationStatistics:!1,supportedSpatialAggregationStatistics:{envelope:!1,centroid:!1,convexHull:!1},supportsCentroid:!1,supportsDistance:!1,supportsExtent:!1,supportsQuantization:!1,supportsQueryGeometry:!1,supportsDisjointSpatialRelationship:!1},p={...t,supportedStatistics:{...t.supportedStatistics,envelope:!1,centroid:!1,convexHull:!1}};function m(e,r,i=!1){return{analytics:{supportsCacheHint:!1},attachment:null,data:{isVersioned:!1,isBranchVersioned:!1,supportedCurveTypes:[],supportsAttachment:!1,supportsM:!1,supportsTrueCurve:!1,supportsZ:e},metadata:{supportsAdvancedFieldProperties:!1},operations:{supportsCalculate:!1,supportsTruncate:!1,supportsValidateSql:!1,supportsAdd:r,supportsDelete:r,supportsEditing:r,supportsChangeTracking:!1,supportsQuery:!0,supportsQueryBins:!0,supportsQueryPivot:!1,supportsQueryAnalytics:!1,supportsQueryAttachments:!1,supportsQueryTopFeatures:!1,supportsResizeAttachments:!1,supportsSync:!1,supportsUpdate:r,supportsExceedsLimitStatistics:!0,supportsAsyncConvert3D:!1},query:i?f:n,queryRelated:{supportsCount:!0,supportsOrderBy:!0,supportsPagination:!0,supportsCacheHint:!1},queryTopFeatures:{supportsCacheHint:!1},queryAttributeBins:i?p:t,editing:{supportsGeometryUpdate:r,supportsGlobalId:!1,supportsReturnServiceEditsInSourceSpatialReference:!1,supportsRollbackOnFailure:!1,supportsTrueCurveUpdate:r,supportsTrueCurveUpdateByTrueCurveClientsOnly:!1,supportsUpdateWithoutM:!1,supportsUploadWithItemId:!1,supportsDeleteByAnonymous:!1,supportsDeleteByOthers:!1,supportsUpdateByAnonymous:!1,supportsUpdateByOthers:!1,supportsAsyncApplyEdits:!1,zDefault:void 0}}}export{m as createCapabilities,l as createDefaultAttributesFunction,d as createDefaultTemplate,o as createDrawingInfo};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{parseDate as e}from"../../../../core/date.js";import{importLazily as t}from"../../../../core/importUtils.js";import{isPolygon as n,isPolyline as r}from"../../../../geometry/support/jsonTypeUtils.js";import{isValid as i}from"../../../../geometry/support/spatialReferenceUtils.js";import{validateFieldValue as a,validationErrorToString as o,isNumericField as s,sanitizedParseFloat as c,isStringField as l,isDateField as u,sanitizeNullFieldValue as d}from"../../../support/fieldUtils.js";class f{constructor(e){this.description=e,this.code=null}}class p{constructor(e){this.globalId=null,this.objectId=null,this.success=!1,this.uniqueId=null,this.error=new f(e)}}function m(e){return new p(e)}class h{constructor(e){this.globalId=null,this.success=!0,this.objectId=this.uniqueId=e}}function g(e){return new h(e)}const _=new Set;function v(e,t,n,r=!1){_.clear();for(let i in n){let s=e.get(i);if(!s)continue;let c=n[i],l=y(s,c);if(_.add(s.name),s&&(r||s.editable)){let e=a(s,l);if(!e)t[s.name]=l;else return m(o(e,s,l))}}for(let t of e.requiredFields??[])if(!_.has(t.name))return m(`missing required field "${t.name}"`);return null}function y(t,n){let r=n;return s(t)&&typeof n==`string`?r=c(n):l(t)&&n!=null&&typeof n!=`string`?r=String(n):u(t)&&typeof n==`string`&&(r=e(n)),d(r)}const b=t(()=>import(`../../../../geometry/operators/json/simplifyOperator.js`));function x(e,t){if(!n(e)&&!r(e)||!i(t))return e;let a=b.module;if(a==null)throw TypeError(`simplify operator not loaded`);return a.simplifyExecute({...e,spatialReference:t})??e}async function S(e,t){i(e)&&(t===`esriGeometryPolygon`||t===`esriGeometryPolyline`)&&await b.getImportPromise()}const C={supportsAutoIntervalBin:!0,supportsFixedIntervalBin:!0,supportsFixedBoundariesBin:!0,supportsDateBin:!0,supportsStackBy:!0,supportsSplitBy:!0,supportsNormalization:!0,supportedStatisticTypes:[`COUNT`,`SUM`,`AVG`,`VAR`,`STDDEV`,`MIN`,`MAX`,`PERCENTILE_CONT`,`PERCENTILE_DISC`,`CentroidAggregate`,`EnvelopeAggregate`,`ConvexHullAggregate`],supportedNormalizationTypes:[`field`,`log`,`naturalLog`,`percentOfTotal`,`squareRoot`]};export{m as createFeatureEditErrorResult,g as createFeatureEditSuccessResult,S as loadGeometryEngineForSimplify,v as mixAttributes,C as queryBinsCapabilities,x as simplify};
|
|
2
|
+
import{parseDate as e}from"../../../../core/date.js";import{importLazily as t}from"../../../../core/importUtils.js";import{isPolygon as n,isPolyline as r}from"../../../../geometry/support/jsonTypeUtils.js";import{isValid as i}from"../../../../geometry/support/spatialReferenceUtils.js";import{validateFieldValue as a,validationErrorToString as o,isNumericField as s,sanitizedParseFloat as c,isStringField as l,isDateField as u,sanitizeNullFieldValue as d}from"../../../support/fieldUtils.js";class f{constructor(e){this.description=e,this.code=null}}class p{constructor(e){this.globalId=null,this.objectId=null,this.success=!1,this.uniqueId=null,this.error=new f(e)}}function m(e){return new p(e)}class h{constructor(e){this.globalId=null,this.success=!0,this.objectId=this.uniqueId=e}}function g(e){return new h(e)}const _=new Set;function v(e,t,n,r=!1){_.clear();for(let i in n){let s=e.get(i);if(!s)continue;let c=n[i],l=y(s,c);if(_.add(s.name),s&&(r||s.editable)){let e=a(s,l);if(!e)t[s.name]=l;else return m(o(e,s,l))}}for(let t of e.requiredFields??[])if(!_.has(t.name))return m(`missing required field "${t.name}"`);return null}function y(t,n){let r=n;return s(t)&&typeof n==`string`?r=c(n):l(t)&&n!=null&&typeof n!=`string`?r=String(n):u(t)&&typeof n==`string`&&(r=e(n)),d(r)}const b=t(()=>import(`../../../../geometry/operators/json/simplifyOperator.js`));function x(e,t){if(!n(e)&&!r(e)||!i(t))return e;let a=b.module;if(a==null)throw TypeError(`simplify operator not loaded`);return a.simplifyExecute({...e,spatialReference:t})??e}async function S(e,t){i(e)&&(t===`esriGeometryPolygon`||t===`esriGeometryPolyline`)&&await b.getImportPromise()}const C={supportsAutoIntervalBin:!0,supportsFixedIntervalBin:!0,supportsFixedBoundariesBin:!0,supportsDateBin:!0,supportsStackBy:!0,supportsSplitBy:!0,supportsNormalization:!0,supportedStatisticTypes:[`COUNT`,`SUM`,`AVG`,`VAR`,`STDDEV`,`MIN`,`MAX`,`PERCENTILE_CONT`,`PERCENTILE_DISC`,`CentroidAggregate`,`EnvelopeAggregate`,`ConvexHullAggregate`],supportedNormalizationTypes:[`field`,`log`,`naturalLog`,`percentOfTotal`,`squareRoot`]},w={hasAttachments:!1,capabilities:`query, editing, create, delete, update`,useStandardizedQueries:!0,supportsCoordinatesQuantization:!0,supportsReturningQueryGeometry:!0,advancedQueryCapabilities:{supportsQueryAttachments:!1,supportsQueryAttachmentsCountOnly:!1,supportsQueryAttachmentOrderByFields:!1,supportsQueryAttachmentWithTypeWildcard:!1,supportsQueryBins:!0,supportsQueryPivot:!1,supportsSpatialAggregationStatistics:!0,supportedSpatialAggregationStatistics:[`EnvelopeAggregate`,`CentroidAggregate`,`ConvexHullAggregate`],supportsStatistics:!0,supportsPercentileStatistics:!0,supportsReturningGeometryCentroid:!0,supportsQueryWithDistance:!0,supportsOutDistance:!1,supportsDistinct:!0,supportsReturningQueryExtent:!0,supportsReturningGeometryProperties:!1,supportsHavingClause:!0,supportsOrderBy:!0,supportsPagination:!0,supportsQueryWithResultType:!0,supportsSqlExpression:!0,supportsDisjointSpatialRel:!0,supportsQueryWithCacheHint:!0},queryBinsCapabilities:C},T={...w,supportsCoordinatesQuantization:!1,supportsReturningQueryGeometry:!1,advancedQueryCapabilities:{...w.advancedQueryCapabilities,supportsSpatialAggregationStatistics:!1,supportedSpatialAggregationStatistics:[],supportsReturningGeometryCentroid:!1,supportsQueryWithDistance:!1,supportsReturningQueryExtent:!1,supportsDisjointSpatialRel:!1},queryBinsCapabilities:{...C,supportedStatisticTypes:C.supportedStatisticTypes.filter(e=>e!==`EnvelopeAggregate`&&e!==`CentroidAggregate`&&e!==`ConvexHullAggregate`)}};export{m as createFeatureEditErrorResult,g as createFeatureEditSuccessResult,w as layerCapabilities,S as loadGeometryEngineForSimplify,v as mixAttributes,C as queryBinsCapabilities,x as simplify,T as tableCapabilities};
|
|
@@ -308,10 +308,11 @@ export default class LabelClass extends JSONSupport {
|
|
|
308
308
|
*/
|
|
309
309
|
accessor name: string | null | undefined;
|
|
310
310
|
/**
|
|
311
|
-
*
|
|
311
|
+
* The offset distance of the label from its default position.
|
|
312
|
+
* Will be applied to the label's position relative to the [label placement](https://developers.arcgis.com/javascript/latest/references/core/layers/support/LabelClass/#labelPlacement).
|
|
312
313
|
*
|
|
313
314
|
* @default 0
|
|
314
|
-
* @
|
|
315
|
+
* @since 5.2
|
|
315
316
|
*/
|
|
316
317
|
accessor offsetDistance: number;
|
|
317
318
|
/**
|
|
@@ -3,39 +3,62 @@ import type { Clonable } from "../../core/Clonable.js";
|
|
|
3
3
|
import type { JSONSupportMixin } from "../../core/JSONSupport.js";
|
|
4
4
|
import type { PortalItemProperties } from "../../portal/PortalItem.js";
|
|
5
5
|
|
|
6
|
+
/** Properties used to construct a [PortalItemData](https://developers.arcgis.com/javascript/latest/references/core/layers/support/PortalItemData/). */
|
|
6
7
|
export interface PortalItemDataProperties {
|
|
7
|
-
/**
|
|
8
|
+
/**
|
|
9
|
+
* The portal item that provides the layer's data source. The item's content must be compatible
|
|
10
|
+
* with the consuming layer, such as Parquet data for [ParquetLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/ParquetLayer/) or a geospatial PDF
|
|
11
|
+
* for [GeospatialPDFLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/GeospatialPDFLayer/). Set this to a [PortalItem](https://developers.arcgis.com/javascript/latest/references/core/portal/PortalItem/) instance or its properties;
|
|
12
|
+
* a plain object such as `{ id: "item-id" }` is autocast to a PortalItem.
|
|
13
|
+
* Set the item's [portal](https://developers.arcgis.com/javascript/latest/references/core/portal/PortalItem/#portal) when referencing content outside the default portal.
|
|
14
|
+
*/
|
|
8
15
|
portalItem?: PortalItemProperties;
|
|
9
16
|
}
|
|
10
17
|
|
|
11
18
|
/**
|
|
12
|
-
*
|
|
13
|
-
*
|
|
19
|
+
* Provides an ArcGIS [portal item](https://developers.arcgis.com/javascript/latest/references/core/portal/PortalItem/) as the data source for a
|
|
20
|
+
* [ParquetLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/ParquetLayer/) or a [GeospatialPDFLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/GeospatialPDFLayer/).
|
|
14
21
|
*
|
|
15
22
|
* @since 5.2
|
|
16
23
|
* @beta
|
|
17
24
|
* @example
|
|
18
|
-
*
|
|
25
|
+
* ```ts
|
|
26
|
+
* import ParquetLayer from "@arcgis/core/layers/ParquetLayer.js";
|
|
27
|
+
* import PortalItemData from "@arcgis/core/layers/support/PortalItemData.js";
|
|
28
|
+
*
|
|
29
|
+
* // Replace the placeholder ID with a portal item containing Parquet data.
|
|
19
30
|
* const layer = new ParquetLayer({
|
|
20
31
|
* data: new PortalItemData({
|
|
21
32
|
* portalItem: {
|
|
22
|
-
* id: "
|
|
33
|
+
* id: "6ab6f959c1684eb5a54db91644a89747",
|
|
23
34
|
* },
|
|
24
35
|
* }),
|
|
25
36
|
* });
|
|
37
|
+
* ```
|
|
26
38
|
* @example
|
|
27
|
-
*
|
|
39
|
+
* ```ts
|
|
40
|
+
* import GeospatialPDFLayer from "@arcgis/core/layers/GeospatialPDFLayer.js";
|
|
41
|
+
* import PortalItemData from "@arcgis/core/layers/support/PortalItemData.js";
|
|
42
|
+
*
|
|
43
|
+
* // Replace the placeholder ID with a portal item whose URL resolves to a geospatial PDF.
|
|
28
44
|
* const layer = new GeospatialPDFLayer({
|
|
29
45
|
* data: new PortalItemData({
|
|
30
46
|
* portalItem: {
|
|
31
|
-
* id: "
|
|
47
|
+
* id: "0d8613492b1e4598a5edb111f05be7fd",
|
|
32
48
|
* },
|
|
33
49
|
* }),
|
|
34
50
|
* });
|
|
51
|
+
* ```
|
|
35
52
|
*/
|
|
36
53
|
export default class PortalItemData extends PortalItemDataSuperclass {
|
|
37
54
|
constructor(properties?: PortalItemDataProperties);
|
|
38
|
-
/**
|
|
55
|
+
/**
|
|
56
|
+
* The portal item that provides the layer's data source. The item's content must be compatible
|
|
57
|
+
* with the consuming layer, such as Parquet data for [ParquetLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/ParquetLayer/) or a geospatial PDF
|
|
58
|
+
* for [GeospatialPDFLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/GeospatialPDFLayer/). Set this to a [PortalItem](https://developers.arcgis.com/javascript/latest/references/core/portal/PortalItem/) instance or its properties;
|
|
59
|
+
* a plain object such as `{ id: "item-id" }` is autocast to a PortalItem.
|
|
60
|
+
* Set the item's [portal](https://developers.arcgis.com/javascript/latest/references/core/portal/PortalItem/#portal) when referencing content outside the default portal.
|
|
61
|
+
*/
|
|
39
62
|
get portalItem(): PortalItem;
|
|
40
63
|
set portalItem(value: PortalItemProperties);
|
|
41
64
|
/** The type of data source. */
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ClonableMixin } from "../../core/Clonable.js";
|
|
2
2
|
import type { JSONSupport } from "../../core/JSONSupport.js";
|
|
3
3
|
|
|
4
|
-
export interface
|
|
4
|
+
export interface TimeSeriesCalculationMethodProperties extends Partial<Pick<TimeSeriesCalculationMethod, "name" | "title" | "type">> {}
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* The calculation method by which to derive a data value for a time series. By default,
|
|
@@ -9,15 +9,15 @@ export interface TimeSeriesCalculationProperties extends Partial<Pick<TimeSeries
|
|
|
9
9
|
*
|
|
10
10
|
* @since 5.2
|
|
11
11
|
*/
|
|
12
|
-
export type
|
|
12
|
+
export type TimeSeriesCalculationMethodType = "change-from-average" | "change-from-first" | "change-from-previous" | "percent-change-from-average" | "percent-change-from-first" | "percent-change-from-previous";
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* Defines a calculation method that can be used to derive data values for a time series.
|
|
16
16
|
*
|
|
17
17
|
* @since 5.2
|
|
18
18
|
*/
|
|
19
|
-
export default class
|
|
20
|
-
constructor(properties?:
|
|
19
|
+
export default class TimeSeriesCalculationMethod extends TimeSeriesCalculationMethodSuperclass {
|
|
20
|
+
constructor(properties?: TimeSeriesCalculationMethodProperties);
|
|
21
21
|
/**
|
|
22
22
|
* A unique identifier for the calculation method within the time series.
|
|
23
23
|
*
|
|
@@ -27,6 +27,6 @@ export default class TimeSeriesCalculation extends TimeSeriesCalculationSupercla
|
|
|
27
27
|
/** A user-friendly name for the calculation method. */
|
|
28
28
|
accessor title: string | null | undefined;
|
|
29
29
|
/** The method by which to calculate a time series data value. */
|
|
30
|
-
accessor type:
|
|
30
|
+
accessor type: TimeSeriesCalculationMethodType | null | undefined;
|
|
31
31
|
}
|
|
32
|
-
declare const
|
|
32
|
+
declare const TimeSeriesCalculationMethodSuperclass: typeof JSONSupport & typeof ClonableMixin
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import{ClonableMixin as t}from"../../core/Clonable.js";import{JSONSupport as n}from"../../core/JSONSupport.js";import{property as r,subclass as i}from"../../core/accessorSupport/decorators.js";let a=class extends t(n){constructor(e){super(e),this.name=null,this.type=null,this.title=null}};e([r({type:String,json:{write:{isRequired:!0}}})],a.prototype,`name`,void 0),e([r({type:[`change-from-average`,`change-from-first`,`change-from-previous`,`percent-change-from-average`,`percent-change-from-first`,`percent-change-from-previous`],json:{write:{isRequired:!0}}})],a.prototype,`type`,void 0),e([r({type:String,json:{write:!0}})],a.prototype,`title`,void 0),a=e([i(`esri.layers.support.
|
|
2
|
+
import{__decorate as e}from"tslib";import{ClonableMixin as t}from"../../core/Clonable.js";import{JSONSupport as n}from"../../core/JSONSupport.js";import{property as r,subclass as i}from"../../core/accessorSupport/decorators.js";let a=class extends t(n){constructor(e){super(e),this.name=null,this.type=null,this.title=null}};e([r({type:String,json:{write:{isRequired:!0}}})],a.prototype,`name`,void 0),e([r({type:[`change-from-average`,`change-from-first`,`change-from-previous`,`percent-change-from-average`,`percent-change-from-first`,`percent-change-from-previous`],json:{write:{isRequired:!0}}})],a.prototype,`type`,void 0),e([r({type:String,json:{write:!0}})],a.prototype,`title`,void 0),a=e([i(`esri.layers.support.TimeSeriesCalculationMethod`)],a);const o=a;export{o as default};
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import type TimeSeriesCalculationMethod from "./TimeSeriesCalculationMethod.js";
|
|
2
2
|
import type TimeSeriesFieldTimeMapping from "./TimeSeriesFieldTimeMapping.js";
|
|
3
3
|
import type TimeExtent from "../../time/TimeExtent.js";
|
|
4
4
|
import type { ClonableMixin } from "../../core/Clonable.js";
|
|
5
5
|
import type { JSONSupport } from "../../core/JSONSupport.js";
|
|
6
6
|
import type { TimeSeriesFieldTimeMappingProperties } from "./TimeSeriesFieldTimeMapping.js";
|
|
7
7
|
import type { TimeExtentProperties } from "../../time/TimeExtent.js";
|
|
8
|
-
import type {
|
|
8
|
+
import type { TimeSeriesCalculationMethodProperties } from "./TimeSeriesCalculationMethod.js";
|
|
9
9
|
|
|
10
10
|
/** @since 5.1 */
|
|
11
11
|
export interface TimeSeriesInfoProperties extends Partial<Pick<TimeSeriesInfo, "name" | "timeInterval" | "timeIntervalUnits" | "timeValueUnits" | "title">> {
|
|
@@ -16,7 +16,7 @@ export interface TimeSeriesInfoProperties extends Partial<Pick<TimeSeriesInfo, "
|
|
|
16
16
|
* @default null
|
|
17
17
|
* @since 5.2
|
|
18
18
|
*/
|
|
19
|
-
calculationMethods?:
|
|
19
|
+
calculationMethods?: TimeSeriesCalculationMethodProperties[] | null;
|
|
20
20
|
/** The mapping between field names and time values for the time series configuration. */
|
|
21
21
|
fieldTimeMappings?: TimeSeriesFieldTimeMappingProperties[] | null;
|
|
22
22
|
/**
|
|
@@ -113,8 +113,8 @@ export default class TimeSeriesInfo extends TimeSeriesInfoSuperclass {
|
|
|
113
113
|
* @default null
|
|
114
114
|
* @since 5.2
|
|
115
115
|
*/
|
|
116
|
-
get calculationMethods():
|
|
117
|
-
set calculationMethods(value:
|
|
116
|
+
get calculationMethods(): TimeSeriesCalculationMethod[] | null | undefined;
|
|
117
|
+
set calculationMethods(value: TimeSeriesCalculationMethodProperties[] | null | undefined);
|
|
118
118
|
/** The mapping between field names and time values for the time series configuration. */
|
|
119
119
|
get fieldTimeMappings(): TimeSeriesFieldTimeMapping[] | null | undefined;
|
|
120
120
|
set fieldTimeMappings(value: TimeSeriesFieldTimeMappingProperties[] | null | undefined);
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import{ClonableMixin as t}from"../../core/Clonable.js";import{JSONSupport as n}from"../../core/JSONSupport.js";import{property as r,subclass as i}from"../../core/accessorSupport/decorators.js";import a from"./
|
|
2
|
+
import{__decorate as e}from"tslib";import{ClonableMixin as t}from"../../core/Clonable.js";import{JSONSupport as n}from"../../core/JSONSupport.js";import{property as r,subclass as i}from"../../core/accessorSupport/decorators.js";import a from"./TimeSeriesCalculationMethod.js";import o from"./TimeSeriesFieldTimeMapping.js";import s from"../../time/TimeExtent.js";let c=class extends t(n){constructor(e){super(e),this.name=null,this.fieldTimeMappings=null,this.timeExtent=null,this.timeInterval=null,this.timeIntervalUnits=null,this.timeValueUnits=null,this.title=null,this.calculationMethods=null,this.type=`time-series-fields`}};e([r({type:String,json:{write:{isRequired:!0}}})],c.prototype,`name`,void 0),e([r({type:[o],json:{write:{isRequired:!0}}})],c.prototype,`fieldTimeMappings`,void 0),e([r({type:s,json:{write:!0}})],c.prototype,`timeExtent`,void 0),e([r({type:Number,json:{write:{isRequired:!0}}})],c.prototype,`timeInterval`,void 0),e([r({type:String,json:{write:{isRequired:!0}}})],c.prototype,`timeIntervalUnits`,void 0),e([r({type:String,json:{write:{isRequired:!0}}})],c.prototype,`timeValueUnits`,void 0),e([r({type:String,json:{write:!0}})],c.prototype,`title`,void 0),e([r({type:[a],json:{write:!0}})],c.prototype,`calculationMethods`,void 0),e([r({type:String,readOnly:!0,json:{write:{isRequired:!0}}})],c.prototype,`type`,void 0),c=e([i(`esri.layers.support.TimeSeriesInfo`)],c);export{c 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{getDeepValue as t,setDeepValue as n}from"../../core/object.js";import{union as r}from"../../core/SetUtils.js";import{parseWhereClause as i}from"../../core/sql.js";import{DomainValidationError as a,getDomainRange as o}from"./domainUtils.js";import{getFieldNameFromSimpleExpression as s}from"../../support/arcadeExpressionUtils.js";import{isStringOrNull as ee,isString as te}from"../../support/guards.js";import{loadArcade as ne}from"../../support/loadArcade.js";const re=/^([0-9_])/,ie=/[^a-z0-9_\u0080-\uffff]+/gi;function c(e){return e==null?null:e.trim().replaceAll(ie,`_`).replace(re,`F$1`)||null}const l=[`field`,`field2`,`field3`,`normalizationField`,`rotationInfo.field`,`proportionalSymbolInfo.field`,`proportionalSymbolInfo.normalizationField`,`colorInfo.field`,`colorInfo.normalizationField`],u=[`field`,`normalizationField`];function ae(e,t){if(e!=null&&t!=null){for(let n of Array.isArray(e)?e:[e])if(d(l,n,t),`visualVariables`in n&&n.visualVariables)for(let e of n.visualVariables)d(u,e,t)}}function d(e,r,i){if(e)for(let a of e){let e=t(a,r),o=e&&typeof e!=`function`&&i.get(e);o&&n(a,o.name,r)}}function oe(e,t){if(e!=null&&t?.fields?.length){if(`startField`in e){let n=t.get(e.startField),r=t.get(e.endField);e.startField=n?.name??null,e.endField=r?.name??null}else{let n=t.get(e.startTimeField),r=t.get(e.endTimeField);e.startTimeField=n?.name??null,e.endTimeField=r?.name??null}e.trackIdField=t.get(e.trackIdField)?.name??null}}const f=new Set;function p(e,t){return!e||!t?[]:(f.clear(),m(f,e,t),Array.from(f).sort())}function m(e,t,n){if(n){if(!t?.fields?.length){if(n.includes(`*`)){e.clear(),e.add(`*`);return}for(let t of n)t!=null&&e.add(t);return}if(n.includes(`*`)){for(let{name:n}of t.fields)e.add(n);return}for(let r of n)h(e,t,r)}}function h(e,t,n){if(typeof n==`string`){if(t){let r=t.get(n);r&&e.add(r.name)}else e.add(n)}}function se(e,t){return t==null||e==null?[]:t.includes(`*`)?(e.fields??[]).map(e=>e.name):t}function ce(e,t,n=1){if(!t||!e)return[];if(t.includes(`*`))return[`*`];let r=p(e,t);return r.length/e.fields.length>=n?[`*`]:r}async function g(e,t,n,r){if(!r)return;let i=s(r);if(i)h(e,t,i);else{let{arcadeUtils:i}=await ne(),a=i.extractFieldNames(r,n?.partitions??t?.fields?.map(e=>e.name));for(let r of a)h(e,n?.index??t,r)}}async function _(t,n,r){if(r&&r!==`1=1`){let a=await i(r,n);if(!a.isStandardized)throw new e(`fieldUtils:collectFilterFields`,`Where clause is not standardized`,{where:r});m(t,n,a.fieldNames)}}function le({displayField:e,fields:t}){return e||(t?.length?v(t):null)}function v(e){return y(e,`name-or-title`)||y(e,`unique-identifier`)||y(e,`type-or-category`)||ue(e)}function ue(e){for(let t of e){if(!t?.name)continue;let e=t.name.toLowerCase();if(e.includes(`name`)||e.includes(`title`))return t.name}return null}function y(e,t){for(let n of e)if(n?.valueType&&n.valueType===t)return n.name;return null}async function de(e){if(!e)return[];let t=new Set;return await b(t,e),Array.from(t).sort()}async function b(e,t){if(!t)return;let n=t.elevationInfo?.featureExpressionInfo;if(n)return n.collectRequiredFields(e,t.fieldsIndex)}function fe(e,t,n){n.onStatisticExpression?g(e,t,null,n.onStatisticExpression.expression):e.add(n.onStatisticField)}async function pe(e,t,n){if(!t||!n||!(`fields`in n))return;let r=[],i=n.popupTemplate;r.push(x(e,t,i)),n.fields&&r.push(...n.fields.map(async n=>fe(e,t.fieldsIndex,n))),await Promise.all(r)}async function me(e,t){let{fieldsIndex:n,trackInfo:r}=t;if(!t||!r||!n)return;let i=[r.latestObservations.renderer?.collectRequiredFields(e,n),r.previousObservations.renderer?.collectRequiredFields(e,n),r.trackLines.renderer?.collectRequiredFields(e,n)];r.popupTemplate&&i.push(x(e,t,r.popupTemplate));for(let t of[r.latestObservations.labelingInfo,r.previousObservations.labelingInfo,r.trackLines.labelingInfo])if(t)for(let r of t)i.push(O(e,n,r));await Promise.all(i)}async function x(e,t,n){let r=[];n?.expressionInfos&&r.push(...n.expressionInfos.map(n=>g(e,t.fieldsIndex,null,n.expression)));let i=n?.content;if(Array.isArray(i))for(let n of i)n.type===`expression`&&n.expressionInfo&&r.push(g(e,t.fieldsIndex,null,n.expressionInfo.expression));await Promise.all(r)}async function he(e,t,n){t&&(t.timeInfo&&n?.timeExtent&&m(e,t.fieldsIndex,[t.timeInfo.startField,t.timeInfo.endField]),t.floorInfo&&m(e,t.fieldsIndex,[t.floorInfo.floorField]),n?.where!=null&&await _(e,t.fieldsIndex,n.where))}async function ge(e,t,n){t&&n&&await Promise.all(n.map(n=>_e(e,t,n)))}async function _e(e,t,n){t&&n&&(n.valueExpression?await g(e,t.fieldsIndex,null,n.valueExpression):n.field&&h(e,t.fieldsIndex,n.field))}async function ve(e){if(!e)return[];let t=`timeInfo`in e&&e.timeInfo;return t?p(e.fieldsIndex,[e.trackIdField,t.startField,t.endField]):[]}function ye(e){return e?p(e.fieldsIndex,w(e)):[]}function S(e){if(!e)return[];let t=e.geometryFieldsInfo;return t?p(e.fieldsIndex,[t.shapeAreaField,t.shapeLengthField]):[]}async function be(e,t,n){if(!t||!n)return;let r=t.fieldsIndex;await Promise.all(n.filters.map(t=>_(e,r,t.where)))}const xe=new Set([`oid`,`global-id`,`guid`]),Se=new Set([`oid`,`global-id`]),Ce=[/^fnode_$/i,/^tnode_$/i,/^lpoly_$/i,/^rpoly_$/i,/^poly_$/i,/^shape$/i,/^shape_$/i,/^subclass$/i,/^subclass_$/i,/^rings_ok$/i,/^rings_nok$/i,/objectid/i,/^perimeter_/i,/_perimeter$/i,/_i$/i];function C(e){let t=new Set;T(e).forEach(e=>t.add(e)),S(e).forEach(e=>t.add(e.toLowerCase()));let n=e&&`infoFor3D`in e?e.infoFor3D:void 0;return n&&(Object.values(n.assetMapFieldRoles).forEach(e=>t.add(e.toLowerCase())),Object.values(n.transformFieldRoles).forEach(e=>t.add(e.toLowerCase()))),Array.from(t)}function w(e){if(!e)return[];let t=`editFieldsInfo`in e&&e.editFieldsInfo;if(!t)return[];let{creationDateField:n,creatorField:r,editDateField:i,editorField:a}=t;return[n,r,i,a].filter(Boolean)}function T(e){return w(e).map(e=>e.toLowerCase())}function E(e){return!!e.type}function we(e,t){return!!e.editable&&E(e)&&!xe.has(e.type)&&!T(t).includes(e.name?.toLowerCase()??``)}function Te(e,t){let n=e.name?.toLowerCase()??``;return(t?.objectIdField==null||n!==t.objectIdField.toLowerCase())&&(t?.globalIdField==null||n!==t.globalIdField.toLowerCase())&&!C(t).includes(n)&&!Se.has(e.type)&&!Ce.some(e=>e.test(n))}async function Ee(e){if(!e)return[];let t=new Set;return await D(t,e),Array.from(t).sort()}async function D(e,t){let{labelingInfo:n,fieldsIndex:r}=t;n?.length&&await Promise.all(n.map(t=>O(e,r,t)))}async function O(e,t,n){if(!n)return;let r=n.getLabelExpression(),i=n.where;if(r.type===`arcade`)await g(e,t,null,r.expression);else{let n=r.expression.match(/{[^}]*}/g);n&&n.forEach(n=>{h(e,t,n.slice(1,-1))})}await _(e,t,i)}function De(e){let t=e.defaultValue;if(t!==void 0&&A(e,t))return t;if(e.nullable)return null}function Oe(e){let t=typeof e==`string`?{type:e}:e;if(L(t))return 255;if(t.type===`esriFieldTypeDate`||t.type===`date`)return 8}function k(e){return typeof e==`number`&&!isNaN(e)&&isFinite(e)}function ke(e){return e===null||k(e)}function Ae(e){return e===null||Number.isInteger(e)}function je(){return!0}function A(e,t){let n;switch(e.type){case`date`:case`integer`:case`long`:case`small-integer`:case`big-integer`:case`esriFieldTypeDate`:case`esriFieldTypeInteger`:case`esriFieldTypeLong`:case`esriFieldTypeSmallInteger`:case`esriFieldTypeBigInteger`:n=e.nullable?Ae:Number.isInteger;break;case`double`:case`single`:case`esriFieldTypeSingle`:case`esriFieldTypeDouble`:n=e.nullable?ke:k;break;case`string`:case`esriFieldTypeString`:n=e.nullable?ee:te;break;default:n=je}return arguments.length===1?n:n(t)}const j=[`integer`,`small-integer`,`big-integer`,`long`],M=[`single`,`double`],Me=[...j,...M],N=[`esriFieldTypeInteger`,`esriFieldTypeSmallInteger`,`esriFieldTypeLong`,`esriFieldTypeBigInteger`],P=[`esriFieldTypeSingle`,`esriFieldTypeDouble`],F=new Set([...j,...N]),Ne=new Set([...M,...P]),Pe=r(F,Ne);function Fe(e){return e!=null&&F.has(e.type)}function I(e){return e!=null&&Pe.has(e.type)}function L(e){return e!=null&&(e.type===`string`||e.type===`esriFieldTypeString`)}function R(e){return e!=null&&(e.type===`date`||e.type===`esriFieldTypeDate`)}function Ie(e){return e!=null&&(e.type===`date-only`||e.type===`esriFieldTypeDateOnly`)}function Le(e){return e!=null&&(e.type===`timestamp-offset`||e.type===`esriFieldTypeTimestampOffset`)}function Re(e){return e!=null&&(e.type===`time-only`||e.type===`esriFieldTypeTimeOnly`)}function ze(e){return e!=null&&(e.type===`date`||e.type===`date-only`||e.type===`time-only`||e.type===`timestamp-offset`)}function Be(e){return e!=null&&(e.type===`oid`||e.type===`esriFieldTypeOID`)}function Ve(e){return e!=null&&(e.type===`global-id`||e.type===`esriFieldTypeGlobalID`)}function He(e,t){return V(e,t)===null}const z={OUT_OF_RANGE:`numeric-range-validation-error::out-of-range`},B={INVALID_TYPE:`type-validation-error::invalid-type`};function Ue(e){return e==null||typeof e==`number`&&isNaN(e)?null:e}function We(e){return parseFloat(e.replaceAll(`_`,``))}function V(e,t){return e==null||e.nullable&&t===null?null:A(e,t)?I(e)&&!H(e.type,Number(t))?z.OUT_OF_RANGE:null:B.INVALID_TYPE}function H(e,t){let n=typeof e==`string`?U(e):e;if(!n)return!1;let r=n.min,i=n.max;return n.isInteger?Number.isInteger(t)&&t>=r&&t<=i:t>=r&&t<=i}function Ge(e,t){let n=o(e,t);if(n)return n;if(I(e))return U(e.type)}function U(e){switch(e){case`esriFieldTypeSmallInteger`:case`small-integer`:return W;case`esriFieldTypeInteger`:case`esriFieldTypeLong`:case`integer`:case`long`:return q;case`esriFieldTypeBigInteger`:case`big-integer`:return J;case`esriFieldTypeSingle`:case`single`:return X;case`esriFieldTypeDouble`:case`double`:return Z}}function Ke(e){if(!k(e))return null;if(Number.isInteger(e)){if(e>=W.min&&e<=W.max)return`esriFieldTypeSmallInteger`;if(e>=q.min&&e<=q.max)return`esriFieldTypeInteger`;if(e>=J.min&&e<=J.max)return`esriFieldTypeBigInteger`}return e>=X.min&&e<=X.max?`esriFieldTypeSingle`:`esriFieldTypeDouble`}const W={min:-32768,max:32767,isInteger:!0,rawMin:-32768,rawMax:32767},G=-2147483648,K=2**31-1,q={min:G,max:K,isInteger:!0,rawMin:G,rawMax:K},J={min:-(2**53-1),max:2**53-1,isInteger:!0,rawMin:-(2**53-1),rawMax:2**53-1},Y=(2-2**-23)*2**127,X={min:-Y,max:Y,isInteger:!1,rawMin:-Y,rawMax:Y},Z={min:-Number.MAX_VALUE,max:Number.MAX_VALUE,isInteger:!1,rawMin:-Number.MAX_VALUE,rawMax:Number.MAX_VALUE};function qe(e,t,n){switch(e){case a.INVALID_CODED_VALUE:return`Value ${n} is not in the coded domain - field: ${t.name}, domain: ${JSON.stringify(t.domain)}`;case a.VALUE_OUT_OF_RANGE:return`Value ${n} is out of the range of valid values - field: ${t.name}, domain: ${JSON.stringify(t.domain)}`;case B.INVALID_TYPE:return`Value ${n} is not a valid value for the field type - field: ${t.name}, type: ${t.type}, nullable: ${t.nullable}`;case z.OUT_OF_RANGE:{let{min:e,max:r}=U(t.type);return`Value ${n} is out of range for the number type - field: ${t.name}, type: ${t.type}, value range is ${e} to ${r}`}}}function Je(e,t){return!Q(e,t,null)}function Q(e,t,n){if(!e?.attributes||!t){if(n!=null)for(let e of t??[])n.add(e);return!0}let r=new Set(Object.keys(e.attributes)),i=!1;for(let e of t)if(!r.has(e)){if(i=!0,n!=null)n.add(e);else break}return i}async function Ye(e,t){let n=new Set;for(let r of t)await g(n,e.fieldsIndex,null,r);return Array.from(n).sort()}function Xe(e){return e?[`raster.itempixelvalue`,`raster.servicepixelvalue`].some(t=>e.toLowerCase().startsWith(t)):!1}async function Ze(e,t){let n=new Set;return e?.collectRequiredFields&&await e.collectRequiredFields(n,t),Array.from(n).sort()}function Qe(e){let t=e?.match(/{[^}]+}/g);return t?t.map(e=>e.slice(1,-1).split(`:`)[0].trim()):[]}function $e(e,t){let{statisticType:n,onStatisticField:r,onStatisticExpression:i}=e,a=t.get(r),o=I(a),s=i?.returnType;switch(n){case`avg`:case`avg_angle`:return a?o||R(a)?`double`:null:s&&s===`number`?`double`:null;case`count`:return`integer`;case`min`:case`max`:return a?o||ze(a)?a?.type??null:null:s&&s===`number`?`double`:null;case`sum`:return a?o?a?.type??null:null:s&&s===`number`?`double`:null;case`mode`:return a?a?.type??null:s?s===`number`?`double`:`string`:null;default:return null}}function et(e){let{fieldName:t,fieldsMap:n,normalizedFieldsMap:r}=e;if(!t)return;let i=n.get(t);return i||(i=n.get(tt(t))??r.get($(t)),i&&n.set(t,i),i)}function tt(e){return e.trim().toLowerCase()}function $(e){return c(e)?.toLowerCase()??``}export{z as NumericRangeValidationError,B as TypeValidationError,tt as applyLowerCaseFieldName,J as bigIntegerRange,g as collectArcadeFieldNames,be as collectDisplayFilterFields,b as collectElevationFields,pe as collectFeatureReductionFields,h as collectField,m as collectFields,he as collectFilterFields,D as collectLabelingFields,ge as collectOrderByInfos,x as collectPopupTemplateFields,_ as collectSQLFieldNames,me as collectTrackInfoFields,Z as doubleRange,Qe as extractSubstitutionTemplatesFromString,Je as featureHasFields,p as fixFields,ae as fixRendererFields,oe as fixTimeInfoFields,P as floatJSONTypes,M as floatTypes,$e as getAggregateFieldType,le as getDisplayFieldName,v as getDisplayFieldNameFromFields,w as getEditTrackingFields,de as getElevationFields,Ye as getExpressionFields,ye as getFeatureEditFields,S as getFeatureGeometryFields,Oe as getFieldDefaultLength,De as getFieldDefaultValue,et as getFieldFromIndex,Ge as getFieldRange,Ee as getLabelingFields,C as getLowerCaseDefaultHiddenFields,T as getLowerCaseEditTrackingFields,Ke as getNumericTypeForValue,Ze as getRendererFields,ve as getTimeFields,N as integerJSONTypes,q as integerRange,j as integerTypes,R as isDateField,Ie as isDateOnlyField,we as isFieldEditable,Te as isFieldVisibleByDefault,E as isFieldWithType,Ve as isGlobalIDField,Fe as isIntegerField,H as isNumberInRange,I as isNumericField,Be as isObjectIDField,Xe as isRasterPixelValueField,L as isStringField,Re as isTimeOnlyField,Le as isTimestampOffsetField,He as isValidFieldValue,A as isValueMatchingFieldType,$ as lowerCaseNormalizedFieldName,c as normalizeFieldName,Me as numericTypes,ce as packFields,Q as populateMissingFields,l as rendererFields,Ue as sanitizeNullFieldValue,We as sanitizedParseFloat,X as singleRange,W as smallIntegerRange,se as unpackFieldNames,V as validateFieldValue,qe as validationErrorToString,u as visualVariableFields};
|
|
2
|
+
import e from"../../core/Error.js";import{getDeepValue as t,setDeepValue as n}from"../../core/object.js";import{union as r}from"../../core/SetUtils.js";import{parseWhereClause as i}from"../../core/sql.js";import{DomainValidationError as a,getDomainRange as o}from"./domainUtils.js";import{getFieldNameFromSimpleExpression as s}from"../../support/arcadeExpressionUtils.js";import{isStringOrNull as ee,isString as te}from"../../support/guards.js";import{loadArcade as ne}from"../../support/loadArcade.js";const re=/^([0-9_])/,ie=/[^a-z0-9_\u0080-\uffff]+/gi;function c(e){return e==null?null:e.trim().replaceAll(ie,`_`).replace(re,`F$1`)||null}const l=[`field`,`field2`,`field3`,`normalizationField`,`rotationInfo.field`,`proportionalSymbolInfo.field`,`proportionalSymbolInfo.normalizationField`,`colorInfo.field`,`colorInfo.normalizationField`],u=[`field`,`normalizationField`];function ae(e,t){if(e!=null&&t!=null){for(let n of Array.isArray(e)?e:[e])if(d(l,n,t),`visualVariables`in n&&n.visualVariables)for(let e of n.visualVariables)d(u,e,t)}}function d(e,r,i){if(e)for(let a of e){let e=t(a,r),o=e&&typeof e!=`function`&&i.get(e);o&&n(a,o.name,r)}}function oe(e,t){if(e!=null&&t?.fields?.length){if(`startField`in e){let n=t.get(e.startField),r=t.get(e.endField);e.startField=n?.name??null,e.endField=r?.name??null}else{let n=t.get(e.startTimeField),r=t.get(e.endTimeField);e.startTimeField=n?.name??null,e.endTimeField=r?.name??null}e.trackIdField=t.get(e.trackIdField)?.name??null}}const f=new Set;function p(e,t){return!e||!t?[]:(f.clear(),m(f,e,t),Array.from(f).sort())}function m(e,t,n){if(n){if(!t?.fields?.length){if(n.includes(`*`)){e.clear(),e.add(`*`);return}for(let t of n)t!=null&&e.add(t);return}if(n.includes(`*`)){for(let{name:n}of t.fields)e.add(n);return}for(let r of n)h(e,t,r)}}function h(e,t,n){if(typeof n==`string`){if(t){let r=t.get(n);r&&e.add(r.name)}else e.add(n)}}function se(e,t){return t==null||e==null?[]:t.includes(`*`)?(e.fields??[]).map(e=>e.name):t}function ce(e,t,n=1){if(!t||!e)return[];if(t.includes(`*`))return[`*`];let r=p(e,t);return r.length/e.fields.length>=n?[`*`]:r}async function g(e,t,n,r){if(!r)return;let i=s(r);if(i)h(e,t,i);else{let{arcadeUtils:i}=await ne(),a=i.extractFieldNames(r,n?.partitions??t?.fields?.map(e=>e.name));for(let r of a)h(e,n?.index??t,r)}}async function _(t,n,r){if(r&&r!==`1=1`){let a=await i(r,n);if(!a.isStandardized)throw new e(`fieldUtils:collectFilterFields`,`Where clause is not standardized`,{where:r});m(t,n,a.fieldNames)}}function le({displayField:e,fields:t}){return e||(t?.length?v(t):null)}function v(e){return y(e,`name-or-title`)||y(e,`unique-identifier`)||y(e,`type-or-category`)||ue(e)}function ue(e){for(let t of e){if(!t?.name)continue;let e=t.name.toLowerCase();if(e.includes(`name`)||e.includes(`title`))return t.name}return null}function y(e,t){for(let n of e)if(n?.valueType&&n.valueType===t)return n.name;return null}async function de(e){if(!e)return[];let t=new Set;return await b(t,e),Array.from(t).sort()}async function b(e,t){if(!t)return;let n=t.elevationInfo?.featureExpressionInfo;if(n)return n.collectRequiredFields(e,t.fieldsIndex)}function fe(e,t,n){n.onStatisticExpression?g(e,t,null,n.onStatisticExpression.expression):e.add(n.onStatisticField)}async function pe(e,t,n){if(!t||!n||!(`fields`in n))return;let r=[],i=n.popupTemplate;r.push(x(e,t,i)),n.fields&&r.push(...n.fields.map(async n=>fe(e,t.fieldsIndex,n))),await Promise.all(r)}async function me(e,t){let{fieldsIndex:n,trackInfo:r}=t;if(!t||!r||!n)return;let i=[r.latestObservations.renderer?.collectRequiredFields(e,n),r.previousObservations.renderer?.collectRequiredFields(e,n),r.trackLines.renderer?.collectRequiredFields(e,n)];r.popupTemplate&&i.push(x(e,t,r.popupTemplate));for(let t of[r.latestObservations.labelingInfo,r.previousObservations.labelingInfo,r.trackLines.labelingInfo])if(t)for(let r of t)i.push(O(e,n,r));await Promise.all(i)}async function x(e,t,n){let r=[];n?.expressionInfos&&r.push(...n.expressionInfos.map(n=>g(e,t.fieldsIndex,null,n.expression)));let i=n?.content;if(Array.isArray(i))for(let n of i)n.type===`expression`&&n.expressionInfo&&r.push(g(e,t.fieldsIndex,null,n.expressionInfo.expression));await Promise.all(r)}async function he(e,t,n){t&&(t.timeInfo&&n?.timeExtent&&m(e,t.fieldsIndex,[t.timeInfo.startField,t.timeInfo.endField]),t.floorInfo&&m(e,t.fieldsIndex,[t.floorInfo.floorField]),n?.where!=null&&await _(e,t.fieldsIndex,n.where))}async function ge(e,t,n){t&&n&&await Promise.all(n.map(n=>_e(e,t,n)))}async function _e(e,t,n){t&&n&&(n.valueExpression?await g(e,t.fieldsIndex,null,n.valueExpression):n.field&&h(e,t.fieldsIndex,n.field))}async function ve(e){if(!e)return[];let t=`timeInfo`in e&&e.timeInfo;return t?p(e.fieldsIndex,[e.trackIdField,t.startField,t.endField]):[]}function ye(e){return e?p(e.fieldsIndex,w(e)):[]}function S(e){if(!e)return[];let t=e.geometryFieldsInfo;return t?p(e.fieldsIndex,[t.shapeAreaField,t.shapeLengthField]):[]}async function be(e,t,n){if(!t||!n)return;let r=t.fieldsIndex;await Promise.all(n.filters.map(t=>_(e,r,t.where)))}const xe=new Set([`oid`,`global-id`,`guid`]),Se=new Set([`oid`,`global-id`]),Ce=[/^fnode_$/i,/^tnode_$/i,/^lpoly_$/i,/^rpoly_$/i,/^poly_$/i,/^shape$/i,/^shape_$/i,/^subclass$/i,/^subclass_$/i,/^rings_ok$/i,/^rings_nok$/i,/objectid/i,/^perimeter_/i,/_perimeter$/i,/_i$/i];function C(e){let t=new Set;T(e).forEach(e=>t.add(e)),S(e).forEach(e=>t.add(e.toLowerCase()));let n=e&&`infoFor3D`in e?e.infoFor3D:void 0;return n&&(Object.values(n.assetMapFieldRoles).forEach(e=>t.add(e.toLowerCase())),Object.values(n.transformFieldRoles).forEach(e=>t.add(e.toLowerCase()))),Array.from(t)}function w(e){if(!e)return[];let t=`editFieldsInfo`in e&&e.editFieldsInfo;if(!t)return[];let{creationDateField:n,creatorField:r,editDateField:i,editorField:a}=t;return[n,r,i,a].filter(Boolean)}function T(e){return w(e).map(e=>e.toLowerCase())}function E(e){return!!e.type}function we(e,t){return!!e.editable&&E(e)&&!xe.has(e.type)&&!T(t).includes(e.name?.toLowerCase()??``)}function Te(e,t){let n=e.name?.toLowerCase()??``;return(t?.objectIdField==null||n!==t.objectIdField.toLowerCase())&&(t?.globalIdField==null||n!==t.globalIdField.toLowerCase())&&!C(t).includes(n)&&!Se.has(e.type)&&!Ce.some(e=>e.test(n))}async function Ee(e){if(!e)return[];let t=new Set;return await D(t,e),Array.from(t).sort()}async function D(e,t){let{labelingInfo:n,fieldsIndex:r}=t;n?.length&&await Promise.all(n.map(t=>O(e,r,t)))}async function O(e,t,n){if(!n)return;let r=n.getLabelExpression(),i=n.where;if(r.type===`arcade`)await g(e,t,null,r.expression);else{let n=r.expression.match(/{[^}]*}/g);n&&n.forEach(n=>{h(e,t,n.slice(1,-1))})}await _(e,t,i)}function De(e){let t=e.defaultValue;if(t!==void 0&&A(e,t))return t;if(e.nullable)return null}function Oe(e){let t=typeof e==`string`?{type:e}:e;if(L(t))return 255;if(t.type===`esriFieldTypeDate`||t.type===`date`)return 8}function k(e){return typeof e==`number`&&!isNaN(e)&&isFinite(e)}function ke(e){return e===null||k(e)}function Ae(e){return e===null||Number.isInteger(e)}function je(){return!0}function A(e,t){let n;switch(e.type){case`date`:case`integer`:case`long`:case`small-integer`:case`big-integer`:case`esriFieldTypeDate`:case`esriFieldTypeInteger`:case`esriFieldTypeLong`:case`esriFieldTypeSmallInteger`:case`esriFieldTypeBigInteger`:n=e.nullable?Ae:Number.isInteger;break;case`double`:case`single`:case`esriFieldTypeSingle`:case`esriFieldTypeDouble`:n=e.nullable?ke:k;break;case`string`:case`esriFieldTypeString`:n=e.nullable?ee:te;break;default:n=je}return arguments.length===1?n:n(t)}const j=[`integer`,`small-integer`,`big-integer`,`long`],M=[`single`,`double`],Me=[...j,...M],N=[`esriFieldTypeInteger`,`esriFieldTypeSmallInteger`,`esriFieldTypeLong`,`esriFieldTypeBigInteger`],P=[`esriFieldTypeSingle`,`esriFieldTypeDouble`],F=new Set([...j,...N]),Ne=new Set([...M,...P]),Pe=r(F,Ne);function Fe(e){return e!=null&&F.has(e.type)}function I(e){return e!=null&&Pe.has(e.type)}function L(e){return e!=null&&(e.type===`string`||e.type===`esriFieldTypeString`)}function R(e){return e!=null&&(e.type===`date`||e.type===`esriFieldTypeDate`)}function Ie(e){return e!=null&&(e.type===`date-only`||e.type===`esriFieldTypeDateOnly`)}function Le(e){return e!=null&&(e.type===`guid`||e.type===`esriFieldTypeGUID`)}function Re(e){return e!=null&&(e.type===`timestamp-offset`||e.type===`esriFieldTypeTimestampOffset`)}function ze(e){return e!=null&&(e.type===`time-only`||e.type===`esriFieldTypeTimeOnly`)}function Be(e){return e!=null&&(e.type===`date`||e.type===`date-only`||e.type===`time-only`||e.type===`timestamp-offset`)}function Ve(e){return e!=null&&(e.type===`oid`||e.type===`esriFieldTypeOID`)}function He(e){return e!=null&&(e.type===`global-id`||e.type===`esriFieldTypeGlobalID`)}function Ue(e,t){return V(e,t)===null}const z={OUT_OF_RANGE:`numeric-range-validation-error::out-of-range`},B={INVALID_TYPE:`type-validation-error::invalid-type`};function We(e){return e==null||typeof e==`number`&&isNaN(e)?null:e}function Ge(e){return parseFloat(e.replaceAll(`_`,``))}function V(e,t){return e==null||e.nullable&&t===null?null:A(e,t)?I(e)&&!H(e.type,Number(t))?z.OUT_OF_RANGE:null:B.INVALID_TYPE}function H(e,t){let n=typeof e==`string`?U(e):e;if(!n)return!1;let r=n.min,i=n.max;return n.isInteger?Number.isInteger(t)&&t>=r&&t<=i:t>=r&&t<=i}function Ke(e,t){let n=o(e,t);if(n)return n;if(I(e))return U(e.type)}function U(e){switch(e){case`esriFieldTypeSmallInteger`:case`small-integer`:return W;case`esriFieldTypeInteger`:case`esriFieldTypeLong`:case`integer`:case`long`:return q;case`esriFieldTypeBigInteger`:case`big-integer`:return J;case`esriFieldTypeSingle`:case`single`:return X;case`esriFieldTypeDouble`:case`double`:return Z}}function qe(e){if(!k(e))return null;if(Number.isInteger(e)){if(e>=W.min&&e<=W.max)return`esriFieldTypeSmallInteger`;if(e>=q.min&&e<=q.max)return`esriFieldTypeInteger`;if(e>=J.min&&e<=J.max)return`esriFieldTypeBigInteger`}return e>=X.min&&e<=X.max?`esriFieldTypeSingle`:`esriFieldTypeDouble`}const W={min:-32768,max:32767,isInteger:!0,rawMin:-32768,rawMax:32767},G=-2147483648,K=2**31-1,q={min:G,max:K,isInteger:!0,rawMin:G,rawMax:K},J={min:-(2**53-1),max:2**53-1,isInteger:!0,rawMin:-(2**53-1),rawMax:2**53-1},Y=(2-2**-23)*2**127,X={min:-Y,max:Y,isInteger:!1,rawMin:-Y,rawMax:Y},Z={min:-Number.MAX_VALUE,max:Number.MAX_VALUE,isInteger:!1,rawMin:-Number.MAX_VALUE,rawMax:Number.MAX_VALUE};function Je(e,t,n){switch(e){case a.INVALID_CODED_VALUE:return`Value ${n} is not in the coded domain - field: ${t.name}, domain: ${JSON.stringify(t.domain)}`;case a.VALUE_OUT_OF_RANGE:return`Value ${n} is out of the range of valid values - field: ${t.name}, domain: ${JSON.stringify(t.domain)}`;case B.INVALID_TYPE:return`Value ${n} is not a valid value for the field type - field: ${t.name}, type: ${t.type}, nullable: ${t.nullable}`;case z.OUT_OF_RANGE:{let{min:e,max:r}=U(t.type);return`Value ${n} is out of range for the number type - field: ${t.name}, type: ${t.type}, value range is ${e} to ${r}`}}}function Ye(e,t){return!Q(e,t,null)}function Q(e,t,n){if(!e?.attributes||!t){if(n!=null)for(let e of t??[])n.add(e);return!0}let r=new Set(Object.keys(e.attributes)),i=!1;for(let e of t)if(!r.has(e)){if(i=!0,n!=null)n.add(e);else break}return i}async function Xe(e,t){let n=new Set;for(let r of t)await g(n,e.fieldsIndex,null,r);return Array.from(n).sort()}function Ze(e){return e?[`raster.itempixelvalue`,`raster.servicepixelvalue`].some(t=>e.toLowerCase().startsWith(t)):!1}async function Qe(e,t){let n=new Set;return e?.collectRequiredFields&&await e.collectRequiredFields(n,t),Array.from(n).sort()}function $e(e){let t=e?.match(/{[^}]+}/g);return t?t.map(e=>e.slice(1,-1).split(`:`)[0].trim()):[]}function et(e,t){let{statisticType:n,onStatisticField:r,onStatisticExpression:i}=e,a=t.get(r),o=I(a),s=i?.returnType;switch(n){case`avg`:case`avg_angle`:return a?o||R(a)?`double`:null:s&&s===`number`?`double`:null;case`count`:return`integer`;case`min`:case`max`:return a?o||Be(a)?a?.type??null:null:s&&s===`number`?`double`:null;case`sum`:return a?o?a?.type??null:null:s&&s===`number`?`double`:null;case`mode`:return a?a?.type??null:s?s===`number`?`double`:`string`:null;default:return null}}function tt(e){let{fieldName:t,fieldsMap:n,normalizedFieldsMap:r}=e;if(!t)return;let i=n.get(t);return i||(i=n.get($(t))??r.get(nt(t)),i&&n.set(t,i),i)}function $(e){return e.trim().toLowerCase()}function nt(e){return c(e)?.toLowerCase()??``}export{z as NumericRangeValidationError,B as TypeValidationError,$ as applyLowerCaseFieldName,J as bigIntegerRange,g as collectArcadeFieldNames,be as collectDisplayFilterFields,b as collectElevationFields,pe as collectFeatureReductionFields,h as collectField,m as collectFields,he as collectFilterFields,D as collectLabelingFields,ge as collectOrderByInfos,x as collectPopupTemplateFields,_ as collectSQLFieldNames,me as collectTrackInfoFields,Z as doubleRange,$e as extractSubstitutionTemplatesFromString,Ye as featureHasFields,p as fixFields,ae as fixRendererFields,oe as fixTimeInfoFields,P as floatJSONTypes,M as floatTypes,et as getAggregateFieldType,le as getDisplayFieldName,v as getDisplayFieldNameFromFields,w as getEditTrackingFields,de as getElevationFields,Xe as getExpressionFields,ye as getFeatureEditFields,S as getFeatureGeometryFields,Oe as getFieldDefaultLength,De as getFieldDefaultValue,tt as getFieldFromIndex,Ke as getFieldRange,Ee as getLabelingFields,C as getLowerCaseDefaultHiddenFields,T as getLowerCaseEditTrackingFields,qe as getNumericTypeForValue,Qe as getRendererFields,ve as getTimeFields,N as integerJSONTypes,q as integerRange,j as integerTypes,R as isDateField,Ie as isDateOnlyField,we as isFieldEditable,Te as isFieldVisibleByDefault,E as isFieldWithType,He as isGlobalIDField,Le as isGuidField,Fe as isIntegerField,H as isNumberInRange,I as isNumericField,Ve as isObjectIDField,Ze as isRasterPixelValueField,L as isStringField,ze as isTimeOnlyField,Re as isTimestampOffsetField,Ue as isValidFieldValue,A as isValueMatchingFieldType,nt as lowerCaseNormalizedFieldName,c as normalizeFieldName,Me as numericTypes,ce as packFields,Q as populateMissingFields,l as rendererFields,We as sanitizeNullFieldValue,Ge as sanitizedParseFloat,X as singleRange,W as smallIntegerRange,se as unpackFieldNames,V as validateFieldValue,Je as validationErrorToString,u as visualVariableFields};
|
|
@@ -5,13 +5,17 @@
|
|
|
5
5
|
* @since 5.1
|
|
6
6
|
*/
|
|
7
7
|
import type TimeSeriesInfo from "./TimeSeriesInfo.js";
|
|
8
|
+
import type { TimeSeriesCalculationMethodType } from "./TimeSeriesCalculationMethod.js";
|
|
8
9
|
|
|
9
10
|
/**
|
|
10
11
|
* Options for creating a time series Arcade expression.
|
|
11
12
|
*
|
|
12
13
|
* @since 5.2
|
|
13
14
|
*/
|
|
14
|
-
export interface CreateTimeSeriesExpressionOptions {
|
|
15
|
+
export interface CreateTimeSeriesExpressionOptions {
|
|
16
|
+
/** The calculation method used to derive a time series data value. */
|
|
17
|
+
calculationMethodType?: TimeSeriesCalculationMethodType;
|
|
18
|
+
}
|
|
15
19
|
|
|
16
20
|
/**
|
|
17
21
|
* Creates an [Arcade expression](https://developers.arcgis.com/javascript/latest/arcade/) that resolves values from a time series data series using the
|
|
@@ -35,7 +39,7 @@ export interface CreateTimeSeriesExpressionOptions {}
|
|
|
35
39
|
* timeValueUnits: "years",
|
|
36
40
|
* });
|
|
37
41
|
*
|
|
38
|
-
* const expression = createTimeSeriesExpression(info, {
|
|
42
|
+
* const expression = createTimeSeriesExpression(info, { calculationMethodType: "change-from-previous" });
|
|
39
43
|
* ```
|
|
40
44
|
*/
|
|
41
45
|
export function createTimeSeriesExpression(dataSeriesInfo: TimeSeriesInfo, options?: CreateTimeSeriesExpressionOptions): string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
function e(e,n){let{
|
|
2
|
+
function e(e,n){let{calculationMethodType:r}=n??{},i=e.fieldTimeMappings??[];if(!i.length)return`return null;`;let a=t(e.timeValueUnits??`years`);if(!r){let e=i.map(({fieldName:e,timeValue:t})=>` "${t}", $feature.${e},`);return`var timeFormat = "${a}";
|
|
3
3
|
|
|
4
4
|
var hasCurrentStart = HasValue($view, ["timeProperties", "currentStart"]);
|
|
5
5
|
var hasCurrentEnd = HasValue($view, ["timeProperties", "currentEnd"]);
|
|
@@ -648,7 +648,10 @@ export type ParquetGeometryEncodingUnion = GeometryEncodingWkb | GeometryEncodin
|
|
|
648
648
|
export type ParquetDataUnion = ParquetFilesData | ParquetPortalItemData | PortalItemData;
|
|
649
649
|
|
|
650
650
|
/**
|
|
651
|
-
* Supported
|
|
651
|
+
* Supported data sources for [GeospatialPDFLayer.data](https://developers.arcgis.com/javascript/latest/references/core/layers/GeospatialPDFLayer/#data).
|
|
652
|
+
* A string specifies a PDF URL, a browser [File](https://developer.mozilla.org/en-US/docs/Web/API/File)
|
|
653
|
+
* provides a local PDF, and a [PortalItemData](https://developers.arcgis.com/javascript/latest/references/core/layers/support/PortalItemData/) references a portal item whose URL resolves to a PDF.
|
|
654
|
+
* Each source must contain supported georeferencing information.
|
|
652
655
|
*
|
|
653
656
|
* @since 5.2
|
|
654
657
|
*/
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import e from"../../request.js";import{clone as t}from"../../core/lang.js";import n from"../../core/Logger.js";import{throwIfAborted as r}from"../../core/promiseUtils.js";import{normalize as i,removeFile as a,getAppBaseUrl as o,removeTrailingSlash as s,addQueryParameters as c,isProtocolRelative as l,isAbsolute as u,join as d}from"../../core/urlUtils.js";import{wgs84 as
|
|
2
|
+
import e from"../../request.js";import{clone as t}from"../../core/lang.js";import n from"../../core/Logger.js";import{throwIfAborted as r}from"../../core/promiseUtils.js";import{normalize as i,removeFile as a,getAppBaseUrl as o,removeTrailingSlash as s,addQueryParameters as c,isProtocolRelative as l,isAbsolute as u,join as d}from"../../core/urlUtils.js";import f from"../../geometry/SpatialReference.js";import{wgs84 as p,webMercator as m}from"../../geometry/support/spatialReferenceUtils.js";import{geographicToWebMercator as h}from"../../geometry/support/webMercatorUtils.js";import g from"./LOD.js";import _ from"../../views/2d/engine/vectorTiles/style/GeoJSONVectorTileSource.js";import{createTileInfo as v}from"../../views/2d/engine/vectorTiles/style/geoJSONVectorTileUtils.js";import y from"../../views/2d/engine/vectorTiles/style/RemoteVectorTileSource.js";async function b(e,t){let n={source:null,sourceBase:null,sourceUrl:null,validatedSource:null,style:null,styleBase:null,styleUrl:null,sourceNameToSource:{},primarySourceName:``,spriteFormat:`png`},[r,i]=typeof e==`string`?[e,null]:[null,e.jsonUrl];return await S(n,`esri`,e,i,t),{layerDefinition:n.validatedSource,url:r,serviceUrl:n.sourceUrl,style:n.style,styleUrl:n.styleUrl,spriteUrl:n.style&&n.style.sprite&&x(n.styleBase,n.style.sprite),spriteFormat:n.spriteFormat,glyphsUrl:n.style&&n.style.glyphs&&x(n.styleBase,n.style.glyphs),sourceNameToSource:n.sourceNameToSource,primarySourceName:n.primarySourceName}}function x(...e){let t;for(let n of e)n!=null&&(l(n)?t&&=t.split(`://`)[0]+`:`+n.trim():t=u(n)?n:d(t,n));return t?s(t):void 0}async function S(t,n,a,o,s){r(s);let c,l,u;if(typeof a==`string`){let t=i(a);u=await e(t,{...s,responseType:`json`,query:{f:`json`,...s?.query}}),u.ssl&&(c&&=c.replace(/^http:/i,`https:`),l&&=l.replace(/^http:/i,`https:`)),c=t,l=t}else a!=null&&(u={data:a},c=a.jsonUrl||null,l=o);let d=u?.data;switch(d?.type){case`Feature`:case`FeatureCollection`:return t.sourceUrl=c||null,E(t,O(d),l,s)}if(w(d))return t.styleUrl=c||null,E(t,d,l,s);if(T(d))return t.primarySourceName?A(t,d,l,!1,n,s):(t.sourceUrl=c||null,C(d)&&t.style==null&&(n=`tilejson`),A(t,d,l,!0,n,s));throw Error(`You must specify the URL or the JSON for a service or for a style.`)}function C(e){return typeof e==`object`&&!!e&&`tilejson`in e&&e.tilejson!=null}function w(e){return!!e&&`sources`in e&&!!e.sources}function T(e){return!!e&&!w(e)}async function E(e,t,n,r){let i=n?a(n):o(),s=t.layers==null||t.layers.length===0,c=s?{...t,layers:[]}:t;e.styleBase=i,e.style=c,c[`sprite-format`]?.toLowerCase()===`webp`&&(e.spriteFormat=`webp`);let l=[];if(c.sources&&c.sources.esri&&c.sources.esri.type!==`geojson`){let t=c.sources.esri;t.url?await S(e,`esri`,x(i,t.url),void 0,r):l.push(S(e,`esri`,t,i,r))}for(let t of Object.keys(c.sources))t!==`esri`&&t!==`tilejson`&&c.sources[t].type===`vector`&&(c.sources[t].url?l.push(S(e,t,x(i,c.sources[t].url),void 0,r)):c.sources[t].tiles&&l.push(S(e,t,c.sources[t],i,r)));await Promise.all(l);for(let t of Object.keys(c.sources)){let n=c.sources[t];if(n.type===`geojson`){let a=await D(e,t,n,i,r);s&&c.layers.push(...k(t,a.geometryTypes))}}}async function D(e,t,n,r,i){if(n.data==null)throw Error(`GeoJSON source '${t}' must define a data property.`);let a={...n,type:`geojson`,data:typeof n.data==`string`?x(r,n.data):n.data},o=e.sourceNameToSource[e.primarySourceName],s=o?.tileInfo?.spatialReference,c=s?.isWGS84||s?.isWebMercator?o.tileInfo.clone():v(f.WGS84,a.maxzoom),l=a.maxzoom??22;for(let e=c.lods[c.lods.length-1];e.level<l;)e=new g({level:e.level+1,resolution:e.resolution/2,scale:e.scale/2}),c.lods.push(e);let u=c.spatialReference.isWebMercator?{xmin:-20037507.067161843,ymin:-20037507.067161843,xmax:20037507.067161843,ymax:20037507.067161843,spatialReference:c.spatialReference.toJSON()}:{xmin:-180,ymin:-90,xmax:180,ymax:90,spatialReference:{wkid:4326}},d={capabilities:`TilesOnly`,tileInfo:c.toJSON(),fullExtent:u,initialExtent:u,minScale:0,maxScale:0},p=await _.create(t,r,d,a,i);return j(e,t,n,d,p,!e.primarySourceName,r),p}function O(e){return{version:8,sprite:``,glyphs:``,sources:{geojson:{type:`geojson`,data:e}},layers:[]}}function k(e,t){return t.map(t=>{switch(t){case`polygon`:return{id:`${e}_polygon`,type:`fill`,source:e,filter:[`==`,`$type`,`Polygon`],paint:{"fill-color":`#808080`}};case`line`:return{id:`${e}_line`,type:`line`,source:e,filter:[`==`,`$type`,`LineString`],paint:{"line-color":`#808080`,"line-width":1}};case`point`:return{id:`${e}_point`,type:`circle`,source:e,filter:[`==`,`$type`,`Point`],paint:{"circle-color":`#808080`,"circle-radius":3}}}})}async function A(e,t,n,r,i,a){let l=n?s(n)+`/`:o(),u=M(t,e);if(j(e,i,t,u,new y(i,c(l,a?.query??{}),u),r,l),!C(e)&&`defaultStyles`in t&&!e.style){if(t.defaultStyles==null)throw Error();return typeof t.defaultStyles==`string`?S(e,``,x(l,t.defaultStyles,`root.json`),void 0,a):S(e,``,t.defaultStyles,x(l,`root.json`),a)}if(C(t)&&e.style==null&&u.defaultStyles)return S(e,``,u.defaultStyles,x(l,`root.json`),a)}function j(e,t,r,i,a,o,s){if(!o&&e.primarySourceName in e.sourceNameToSource){let r=e.sourceNameToSource[e.primarySourceName];if(!r.isCompatibleWith(a)){n.getLogger(`esri.layers.support.vectorTileLayerLoader`).warn(`Ignoring source '${t}' because its tiling scheme is incompatible with the primary source '${e.primarySourceName}'.`),a.destroy();return}a.fullExtent!=null&&(r.fullExtent==null?r.fullExtent=a.fullExtent.clone():r.fullExtent.union(a.fullExtent)),r.tileInfo&&a.tileInfo&&r.tileInfo.lods.length<a.tileInfo.lods.length&&(r.tileInfo=a.tileInfo)}o&&(e.sourceBase=s,e.source=r,e.validatedSource=i,e.primarySourceName=t),e.sourceNameToSource[t]=a}function M(e,n){if(N(e)){let t=e?.tileInfo;return t!=null&&(t.rows??=512,t.cols??=512),e}let r={xmin:-20037507.067161843,ymin:-20037507.067161843,xmax:20037507.067161843,ymax:20037507.067161843,spatialReference:{wkid:102100,latestWkid:3857}},i=null,a;if(C(e)){let{bounds:r,vector_layers:o}=e;if(r){let e=h({x:r[0],y:r[1],spatialReference:t(p)}),n=h({x:r[2],y:r[3],spatialReference:t(p)});i={xmin:e.x,ymin:e.y,xmax:n.x,ymax:n.y,spatialReference:t(m)}}if(o&&o.length>0)a={version:8,sprite:``,glyphs:``,sources:{tilejson:{type:`vector`,url:e.tilejson}},layers:P(o)};else if(n.style==null)throw Error(`The TileJSON source does not contain any vector_layers. This VectorTileLayer cannot be loaded.`)}i===null&&(i=r);let o=78271.51696400007,s=295828763.7957775,c=[],l=e.hasOwnProperty(`maxzoom`)&&e.maxzoom!=null?Math.abs(+e.maxzoom):22;for(let e=0;e<=l;e++)c.push({level:e,scale:s,resolution:o}),o/=2,s/=2;return{capabilities:`TilesOnly`,initialExtent:i,fullExtent:r,minScale:0,maxScale:0,tiles:e.tiles,tileInfo:{rows:512,cols:512,dpi:96,format:`pbf`,origin:{x:-20037508.342787,y:20037508.342787},lods:c,spatialReference:t(m)},defaultStyles:a}}function N(e){return e.hasOwnProperty(`tileInfo`)}function P(e){let t=[];for(let n of e)n.geometry_type?t.push(F(n.geometry_type.toLowerCase(),n,!1)):(t.push(F(`polygon`,n,!0)),t.push(F(`line`,n,!0)),t.push(F(`circle`,n,!0)));return t}function F(e,t,n){let{id:r,minzoom:i,maxzoom:a}=t,o={type:e===`polygon`||e===`polygons`?`fill`:e===`line`||e===`lines`?`line`:`circle`,id:r,source:`tilejson`,"source-layer":r,minzoom:i,maxzoom:a};switch(e){case`fill`:n&&(o.id+=`_polygon`,o.filter=`(["==", "$type", "Polygon"])`),o.paint={"fill-color":`#808080`};break;case`line`:n&&(o.id+=`_line`,o.filter=`(["==", "$type", "LineString"])`);break;case`circle`:n&&(o.id+=`_point`,o.filter=`(["==", "$type", "Point"])`)}return o}export{b as loadMetadata};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@arcgis/core",
|
|
3
|
-
"version": "5.2.0-next.
|
|
3
|
+
"version": "5.2.0-next.155",
|
|
4
4
|
"description": "ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ArcGIS",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
21
21
|
"dependencies": {
|
|
22
22
|
"@amcharts/amcharts5": "~5.20.8",
|
|
23
|
-
"@arcgis/toolkit": "5.2.0-next.
|
|
23
|
+
"@arcgis/toolkit": "5.2.0-next.155",
|
|
24
24
|
"@esri/arcgis-html-sanitizer": "~4.2.0-next.2",
|
|
25
25
|
"@esri/calcite-components": "^5.2.0-next.89",
|
|
26
26
|
"@vaadin/grid": "~25.3.2",
|