@vertigis/arcgis-extensions 35.3.0 → 35.4.0
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/data/convert.js +1 -1
- package/docs/html/assets/search.js +1 -1
- package/docs/html/classes/data_FeatureStream.FeatureStream.html +1 -1
- package/docs/html/classes/utilities_asyncIterable.AsyncQueue.html +1 -1
- package/docs/html/enums/data_convert.GeometryFormat.html +7 -7
- package/docs/html/enums/portal_FeatureLayer.FeatureLayerMode.html +1 -1
- package/docs/html/interfaces/data_convert.FromCsvOptions.html +13 -13
- package/docs/html/interfaces/data_convert.FromShapefileOptions.html +9 -9
- package/docs/html/interfaces/data_convert.FromXLSXOptions.html +12 -12
- package/docs/html/interfaces/data_convert.ToCsvOptions.html +13 -13
- package/docs/html/interfaces/data_convert.ToShapefileOptions.html +8 -8
- package/docs/html/interfaces/data_convert.ToXLSXOptions.html +10 -10
- package/docs/html/interfaces/mapping_FeatureLayerExtension.FeatureLayerProperties.html +16 -16
- package/docs/html/interfaces/mapping_FeatureLayerExtensionBase.FeatureLayerBaseProperties.html +16 -16
- package/docs/html/interfaces/portal_FeatureLayer.FeatureLayer-1.html +16 -16
- package/docs/html/interfaces/portal_LayerDefinition.FieldOverride.html +3 -3
- package/docs/html/interfaces/portal_LayerDefinition.LayerDefinition-1.html +48 -48
- package/docs/html/interfaces/portal_LayerDefinition.LayerDefinitionDefaults.html +8 -8
- package/docs/html/interfaces/portal_LayerDefinition.LayerTimeInfo.html +9 -9
- package/docs/html/interfaces/portal_LayerDefinition.OrderByClause.html +3 -3
- package/docs/html/interfaces/portal_LayerDefinition.TimeInfoExportOptions.html +4 -4
- package/docs/html/interfaces/portal_MapServiceLayer.MapServiceLayer-1.html +7 -7
- package/docs/html/interfaces/portal_PointCloudLayer.PointCloudLayer-1.html +12 -4
- package/docs/html/interfaces/portal_StreamLayer.StreamLayer-1.html +15 -15
- package/docs/html/modules/data_convert.html +6 -6
- package/docs/html/modules/portal_FeatureLayer.FeatureLayer.html +5 -5
- package/docs/html/modules/portal_FeatureLayer.html +1 -1
- package/docs/html/modules/portal_LayerDefinition.LayerDefinition.html +3 -3
- package/docs/html/modules/portal_LayerDefinition.LayerDefinitionCapabilities.html +6 -6
- package/docs/html/modules/portal_LayerDefinition.html +2 -2
- package/docs/html/modules/portal_MapServiceLayer.MapServiceLayer.html +1 -1
- package/docs/html/modules/portal_PointCloudLayer.PointCloudLayer.html +4 -4
- package/docs/html/modules/version.html +1 -1
- package/package.json +2 -3
- package/portal/FeatureLayer.js +1 -1
- package/portal/LayerDefinition.d.ts +2 -1
- package/portal/LayerDefinition.js +1 -1
- package/portal/MapServiceLayer.js +1 -1
- package/portal/PointCloudLayer.d.ts +17 -0
- package/portal/PointCloudLayer.js +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vertigis/arcgis-extensions",
|
|
3
3
|
"license": "SEE LICENSE IN LICENSE",
|
|
4
|
-
"version": "35.
|
|
4
|
+
"version": "35.4.0",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://geocortex.visualstudio.com/Geocortex/_git/geocortex-api-ts"
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"elasticlunr": "~0.9.5",
|
|
52
52
|
"esri-proj-codes": "~1.0.3",
|
|
53
53
|
"safe-stable-stringify": "^2.3.1",
|
|
54
|
-
"jszip": "~3.
|
|
54
|
+
"jszip": "~3.10.0",
|
|
55
55
|
"moment-timezone": "~0.5.34",
|
|
56
56
|
"shpjs": "~4.0.2 ",
|
|
57
57
|
"xlsx": "~0.18.5"
|
|
@@ -62,7 +62,6 @@
|
|
|
62
62
|
"@types/chai": "4.3.1",
|
|
63
63
|
"@types/chai-as-promised": "7.1.5",
|
|
64
64
|
"@types/jest": "27.5.1",
|
|
65
|
-
"@types/jszip": "3.4.1",
|
|
66
65
|
"@types/moment": "2.13.0",
|
|
67
66
|
"@types/moment-timezone": "0.5.30",
|
|
68
67
|
"@types/node": "14.14.41",
|
package/portal/FeatureLayer.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import Portal from"@arcgis/core/portal/Portal";import PortalItem from"@arcgis/core/portal/PortalItem";import{isCSVLayer,isFeatureLayer,isGraphicsLayer,isStreamLayer}from"../utilities/_layers.js";import{isNumeric}from"../utilities/_number.js";import{checkArg}from"../utilities/checkArg.js";import{Collection}from"../utilities/collection.js";import{Feature}from"./Feature.js";import{Field}from"./Field.js";import{FormInfo}from"./FormInfo.js";import{GeometryType}from"./Geometry.js";import{LayerDefinition}from"./LayerDefinition.js";import{PopupInfo}from"./PopupInfo.js";import{defaultLineRenderer,defaultPointRenderer,defaultPolygonRenderer}from"./Renderer.js";import{toEsriApiSymbol}from"./Symbol.js";import{Type}from"./Type.js";import{GRAPHICS_LAYER_ID}from"./_FeatureLayer.js";import{ERR_LAYER_TYPE_MISMATCH,applyLayerBaseToEsriApiLayer,applyOperationalLayerToEsriApiLayer,fromEsriApiLayerToLayerBase,fromEsriApiLayerToOperationalLayer}from"./_layerHelper.js";const ERR_FEATURE_LAYER_GEOMETRY_TYPES="Feature layer graphics must have the same geometry types.",ERR_FEATURE_LAYER_SOURCE="Feature layer must have a URL or a source, but not both.",GRAPHIC_ID_FIELD="graphic-id",GRAPHICS_LAYER_TYPE="graphics-layer",FEATURE_COLLECTION_LAYER_TYPE="feature-collection-layer";export var FeatureLayer;!function(e){async function r(e,r,a){checkArg("layerJson",e).isNotMissing(),checkArg("layerJson.layerType",e.layerType).satisfies((e=>!e||"ArcGISFeatureLayer"===e||"ArcGISStreamLayer"===e||"CSV"===e),ERR_LAYER_TYPE_MISMATCH),checkArg("layer",r).isNotMissing().satisfies((e=>isFeatureLayer(e)||isStreamLayer(e)||isCSVLayer(e)||isGraphicsLayer(e)),ERR_LAYER_TYPE_MISMATCH),isFeatureLayer(r)||isStreamLayer(r)||isCSVLayer(r)?(checkArg("layerJson",e).satisfies((e=>!i(e))),e.hasOwnProperty("disablePopup")&&(r.popupEnabled=!e.disablePopup),e.hasOwnProperty("screenSizePerspective")&&(r.screenSizePerspectiveEnabled=e.screenSizePerspective),e.hasOwnProperty("showLabels")&&(r.labelsVisible=e.showLabels),e.hasOwnProperty("featureCollection")?(checkArg("layerJson.url",e).satisfies((e=>!e.url)),checkArg("layerJson.featureCollection.layers",e.featureCollection.layers).isNotMissing(),checkArg("layerJson.featureCollection.layers",e.featureCollection.layers).satisfies((e=>1===e.length)),await applyToEsriApiFeatureLayerWithSource(e,r)):(checkArg("layerJson.source",e).satisfies((e=>!e.featureCollection)),await applyToEsriApiFeatureLayerWithUrl(e,r,a))):isGraphicsLayer(r)&&(e.hasOwnProperty("featureCollection")&&checkArg("layerJson",e).satisfies(i),applyToEsriApiGraphicsLayer(e,r))}function i(e){return e.id?.startsWith(GRAPHICS_LAYER_ID)||e.$ref&&"graphics-layer"===e.$ref.subtype||"ArcGISFeatureLayer"===e.layerType&&e.featureCollection&&e.featureCollection.layers&&e.featureCollection.layers.length>1}e.esriFeatureLayerDefaults={labelsVisible:!0,legendEnabled:!0,popupEnabled:!0,hasM:!1,hasZ:!1,visible:!0,opacity:1,wkid:4326,minScale:0,maxScale:0,screenSizePerspective:!0},e.toEsriApiLayer=async function(e,a){checkArg("layerJson",e).isNotMissing(),checkArg("layerJson.layerType",e.layerType).satisfies((e=>!e||"ArcGISFeatureLayer"===e),ERR_LAYER_TYPE_MISMATCH);const t=i(e)?new((await import("@arcgis/core/layers/GraphicsLayer")).default):new((await import("@arcgis/core/layers/FeatureLayer")).default);return setDefaultRenderer(e),await r(e,t,a),t},e.applyToEsriApiLayer=r,e.fromEsriApiFeatureLayer=function(r){checkArg("layer",r).isNotMissing(),checkArg("layer.source",r).satisfies((e=>!(Collection.isCollection(e.source)&&e.url)),ERR_FEATURE_LAYER_SOURCE);const i={...fromEsriApiLayerToLayerBase(r,e.esriFeatureLayerDefaults),...fromEsriApiLayerToOperationalLayer(r),layerType:"ArcGISFeatureLayer"};return r.popupEnabled!==e.esriFeatureLayerDefaults.popupEnabled&&(i.disablePopup=!r.popupEnabled),r.screenSizePerspectiveEnabled!==e.esriFeatureLayerDefaults.screenSizePerspective&&(i.screenSizePerspective=r.screenSizePerspectiveEnabled),r.labelsVisible!==e.esriFeatureLayerDefaults.labelsVisible&&(i.showLabels=r.labelsVisible),isFeatureLayer(r)&&Collection.isCollection(r.source)?fromEsriApiFeatureLayerWithSource(r,i):fromEsriApiFeatureLayerWithUrl(r,i),i},e.fromEsriApiGraphicsLayer=function(r){checkArg("layer",r).isNotMissing();const i={...fromEsriApiLayerToLayerBase(r,e.esriFeatureLayerDefaults),layerType:"ArcGISFeatureLayer",featureCollection:{layers:[],showLegend:!1}};if(i.id=GRAPHICS_LAYER_ID+i.id,!r.graphics)return i;const a=r.graphics.toArray();for(const e of a){const t=GeometryType.fromEsriApiGeometryType(e.geometry.type);let o=i.featureCollection.layers.find((e=>e.layerDefinition.geometryType===t));o||(o={featureSet:{features:[],geometryType:t},layerDefinition:{geometryType:t,minScale:r.minScale,maxScale:r.maxScale,fields:[]}},i.featureCollection.layers.push(o));const s=Feature.fromEsriApiGraphic(e);s.attributes["graphic-id"]=a.indexOf(e);for(const[r,i]of Object.entries(e.attributes??{})){let e=o.layerDefinition.fields.find((e=>e.name===r));e||(e={name:r,alias:r,editable:!0,nullable:!0},"number"==typeof i?e.type="esriFieldTypeDouble":i instanceof Date?e.type="esriFieldTypeDate":e.type="esriFieldTypeString",o.layerDefinition.fields.push(e))}o.featureSet.features.push(s)}return i},e.isGraphicsLayerJson=i,e.isFeatureCollection=function(e){return!e.id?.startsWith(GRAPHICS_LAYER_ID)&&e.$ref&&"feature-collection-layer"===e.$ref.subtype||e.featureCollection?.layers&&1===e.featureCollection.layers.length},e.isMapNotesLayer=function(e){return"notes"===e.featureCollectionType}}(FeatureLayer||(FeatureLayer={}));export var FeatureLayerMode;function setDefaultRenderer(e){if(e.featureCollection?.layers)for(const r of e.featureCollection.layers)if(r.layerDefinition?.geometryType){r.layerDefinition.drawingInfo=r.layerDefinition.drawingInfo||{};let{renderer:e}=r.layerDefinition.drawingInfo;if(!e)switch(r.layerDefinition.geometryType){case"esriGeometryPoint":case"esriGeometryMultipoint":e=defaultPointRenderer;break;case"esriGeometryPolyline":e=defaultLineRenderer;break;case"esriGeometryPolygon":case"esriGeometryEnvelope":e=defaultPolygonRenderer}r.layerDefinition.drawingInfo.renderer=e}}async function applyToEsriApiFeatureLayerWithUrl(e,r,i){applyLayerBaseToEsriApiLayer(e,r),applyOperationalLayerToEsriApiLayer(e,r),e.hasOwnProperty("url")&&(r.url=e.url),isFeatureLayer(r)&&(e.hasOwnProperty("itemId")&&(r.portalItem?r.portalItem.id=e.itemId:r.portalItem=new PortalItem({id:e.itemId,portal:i||Portal.getDefault()})),e.hasOwnProperty("formInfo")&&(r.formTemplate=FormInfo.toEsriApiFormTemplate(e.formInfo))),e.hasOwnProperty("popupInfo")&&(r.popupTemplate=PopupInfo.toEsriApiPopupTemplate(e.popupInfo)),e.hasOwnProperty("mode")&&(r.mode=e.mode),e.hasOwnProperty("layerDefinition")&&(await LayerDefinition.applyToEsriApiLayer(e.layerDefinition,r),r.version=_getLayerDefinitionVersion(e.layerDefinition))}async function applyToEsriApiFeatureLayerWithSource(e,r){const i=e.featureCollection.layers[0];if(applyLayerBaseToEsriApiLayer(e,r),applyOperationalLayerToEsriApiLayer(e,r),r.legendEnabled=e.featureCollection.showLegend,i.hasOwnProperty("layerDefinition")){const e=i.layerDefinition;await LayerDefinition.applyToEsriApiLayer(e,r),r.version=_getLayerDefinitionVersion(e),e.hasOwnProperty("types")&&(r.types=e.types.map((e=>Type.toEsriApiFeatureType(e))))}i.hasOwnProperty("popupInfo")&&(r.popupTemplate=PopupInfo.toEsriApiPopupTemplate(i.popupInfo)),i.hasOwnProperty("formInfo")&&(r.formTemplate=FormInfo.toEsriApiFormTemplate(i.formInfo)),r.source||(r.source=new Collection),i.hasOwnProperty("featureSet")&&i.featureSet.geometryType&&(r.geometryType=GeometryType.toEsriApiGeometryType(i.featureSet.geometryType),i.featureSet.features&&!r.loaded&&(r.source.removeAll(),r.source.addMany(i.featureSet.features.map(Feature.toEsriApiGraphic))))}function applyToEsriApiGraphicsLayer(e,r){applyLayerBaseToEsriApiLayer(e,r),r.id=r.id.replace(GRAPHICS_LAYER_ID,"");const i=r;if(r&&(i._fields=i._fields??[],e.featureCollectionType&&(r.featureCollectionType=e.featureCollectionType)),e.hasOwnProperty("featureCollection")&&e.featureCollection.layers){const a=new Collection;for(const r of e.featureCollection.layers){if(!r.featureSet||!r.featureSet.features)continue;const e=new Collection;e.addMany(r.featureSet.features.map(Feature.toEsriApiGraphic)),e.forEach((e=>{null===e.symbol&&(e.symbol=getGraphicSymbol(e,r.layerDefinition))})),r.popupInfo&&e.forEach((e=>{null===e.popupTemplate&&(e.popupTemplate=PopupInfo.toEsriApiPopupTemplate(r.popupInfo))})),r.layerDefinition?.fields?.length>0&&r.layerDefinition.fields.forEach((e=>{const r=Field.toEsriApiField(e);"oid"!==r.type&&(i._fields=i._fields.filter((e=>e.name!==r.name)),i._fields.push(r))})),a.addMany(e)}const t=e=>e.attributes["graphic-id"];a.every((e=>"number"==typeof t(e)))&&a.sort(((e,r)=>t(e)>t(r)?1:t(e)<t(r)?-1:0));for(const e of a.toArray())delete e.attributes["graphic-id"];r.graphics.removeAll(),r.graphics.addMany(a)}}function getGraphicSymbol(e,r){let i;if(r?.drawingInfo?.renderer)if("uniqueValue"===r.drawingInfo.renderer.type&&r.drawingInfo.renderer.uniqueValueInfos.length>0){const{uniqueValueInfos:a}=r.drawingInfo.renderer,t=a.find((r=>r.value===e.attributes.TYPEID.toString()));t&&(i=toEsriApiSymbol(t.symbol))}else"simple"===r.drawingInfo.renderer.type&&(i=toEsriApiSymbol(r.drawingInfo.renderer.symbol));return i}function fromEsriApiFeatureLayerWithUrl(e,r){checkArg("layer",e).isNotMissing(),checkArg("featureLayer",r).isNotMissing(),isFeatureLayer(e)?(r.url=isNumeric(e.layerId)?`${e.url}/${e.layerId}`:e.url,e.portalItem&&(r.itemId=e.portalItem.id),e.formTemplate&&(r.formInfo=FormInfo.fromEsriApiFormTemplate(e.formTemplate))):r.url=e.url,r.layerDefinition=LayerDefinition.fromEsriApiLayer(e,FeatureLayer.esriFeatureLayerDefaults),e.popupTemplate&&(r.popupInfo=PopupInfo.fromEsriApiPopupTemplate(e.popupTemplate)),isNaN(e.mode)||(r.mode=e.mode)}function fromEsriApiFeatureLayerWithSource(e,r){checkArg("layer",e).isNotMissing(),checkArg("featureLayer",r).isNotMissing(),checkArg("layer.geometryType",e.geometryType).isNotMissing(),checkArg("layer.source",e).satisfies(_hasSameGeometryType,ERR_FEATURE_LAYER_GEOMETRY_TYPES);const i={featureSet:{features:e.source.map(Feature.fromEsriApiGraphic).toArray(),geometryType:GeometryType.fromEsriApiGeometryType(e.geometryType)},layerDefinition:LayerDefinition.fromEsriApiLayer(e)};e.types&&(i.layerDefinition.types=e.types.map((e=>Type.fromEsriApiFeatureType(e)))),e.typeIdField&&(i.layerDefinition.typeIdField=e.typeIdField),e.popupTemplate&&(i.popupInfo=PopupInfo.fromEsriApiPopupTemplate(e.popupTemplate)),e.formTemplate&&(r.formInfo=FormInfo.fromEsriApiFormTemplate(e.formTemplate)),r.featureCollection={layers:[i],showLegend:e.legendEnabled}}function _getLayerDefinitionVersion(e){return e.currentVersion?e.currentVersion:e.hasOwnProperty("capabilities")||e.hasOwnProperty("drawingInfo")||e.hasOwnProperty("hasAttachments")||e.hasOwnProperty("htmlPopupType")||e.hasOwnProperty("relationships")||e.hasOwnProperty("timeInfo")||e.hasOwnProperty("typeIdField")||e.hasOwnProperty("types")?10:void 0}function _hasSameGeometryType(e){return!(e.source&&e.source.length>0)||e.source.every((r=>r.geometry.type===e.geometryType))}!function(e){e[e.MODE_SNAPSHOT=0]="MODE_SNAPSHOT",e[e.MODE_ONDEMAND=1]="MODE_ONDEMAND",e[e.MODE_SELECTION=2]="MODE_SELECTION",e[e.MODE_AUTO=6]="MODE_AUTO"}(FeatureLayerMode||(FeatureLayerMode={}));
|
|
1
|
+
import Portal from"@arcgis/core/portal/Portal";import PortalItem from"@arcgis/core/portal/PortalItem";import{isCSVLayer,isFeatureLayer,isGraphicsLayer,isStreamLayer}from"../utilities/_layers.js";import{isNumeric}from"../utilities/_number.js";import{checkArg}from"../utilities/checkArg.js";import{Collection}from"../utilities/collection.js";import{Feature}from"./Feature.js";import{Field}from"./Field.js";import{FormInfo}from"./FormInfo.js";import{GeometryType}from"./Geometry.js";import{LayerDefinition}from"./LayerDefinition.js";import{PopupInfo}from"./PopupInfo.js";import{defaultLineRenderer,defaultPointRenderer,defaultPolygonRenderer}from"./Renderer.js";import{toEsriApiSymbol}from"./Symbol.js";import{Type}from"./Type.js";import{GRAPHICS_LAYER_ID}from"./_FeatureLayer.js";import{ERR_LAYER_TYPE_MISMATCH,applyLayerBaseToEsriApiLayer,applyOperationalLayerToEsriApiLayer,fromEsriApiLayerToLayerBase,fromEsriApiLayerToOperationalLayer}from"./_layerHelper.js";const ERR_FEATURE_LAYER_GEOMETRY_TYPES="Feature layer graphics must have the same geometry types.",ERR_FEATURE_LAYER_SOURCE="Feature layer must have a URL or a source, but not both.",GRAPHIC_ID_FIELD="graphic-id",GRAPHICS_LAYER_TYPE="graphics-layer",FEATURE_COLLECTION_LAYER_TYPE="feature-collection-layer";export var FeatureLayer;!function(e){async function r(e,r,a){checkArg("layerJson",e).isNotMissing(),checkArg("layerJson.layerType",e.layerType).satisfies((e=>!e||"ArcGISFeatureLayer"===e||"ArcGISStreamLayer"===e||"CSV"===e),ERR_LAYER_TYPE_MISMATCH),checkArg("layer",r).isNotMissing().satisfies((e=>isFeatureLayer(e)||isStreamLayer(e)||isCSVLayer(e)||isGraphicsLayer(e)),ERR_LAYER_TYPE_MISMATCH),isFeatureLayer(r)||isStreamLayer(r)||isCSVLayer(r)?(checkArg("layerJson",e).satisfies((e=>!i(e))),e.hasOwnProperty("disablePopup")&&(r.popupEnabled=!e.disablePopup),e.hasOwnProperty("screenSizePerspective")&&(r.screenSizePerspectiveEnabled=e.screenSizePerspective),e.hasOwnProperty("showLabels")&&(r.labelsVisible=e.showLabels),e.hasOwnProperty("featureCollection")?(checkArg("layerJson.url",e).satisfies((e=>!e.url)),checkArg("layerJson.featureCollection.layers",e.featureCollection.layers).isNotMissing(),checkArg("layerJson.featureCollection.layers",e.featureCollection.layers).satisfies((e=>1===e.length)),await applyToEsriApiFeatureLayerWithSource(e,r)):(checkArg("layerJson.source",e).satisfies((e=>!e.featureCollection)),await applyToEsriApiFeatureLayerWithUrl(e,r,a))):isGraphicsLayer(r)&&(e.hasOwnProperty("featureCollection")&&checkArg("layerJson",e).satisfies(i),applyToEsriApiGraphicsLayer(e,r)),isFeatureLayer(r)&&e.customParameters?.hasOwnProperty("gdbVersion")&&(r.gdbVersion=e.customParameters.gdbVersion)}function i(e){return e.id?.startsWith(GRAPHICS_LAYER_ID)||e.$ref&&"graphics-layer"===e.$ref.subtype||"ArcGISFeatureLayer"===e.layerType&&e.featureCollection&&e.featureCollection.layers&&e.featureCollection.layers.length>1}e.esriFeatureLayerDefaults={labelsVisible:!0,legendEnabled:!0,popupEnabled:!0,hasM:!1,hasZ:!1,visible:!0,opacity:1,wkid:4326,minScale:0,maxScale:0,screenSizePerspective:!0},e.toEsriApiLayer=async function(e,a){checkArg("layerJson",e).isNotMissing(),checkArg("layerJson.layerType",e.layerType).satisfies((e=>!e||"ArcGISFeatureLayer"===e),ERR_LAYER_TYPE_MISMATCH);const t=i(e)?new((await import("@arcgis/core/layers/GraphicsLayer")).default):new((await import("@arcgis/core/layers/FeatureLayer")).default);return setDefaultRenderer(e),await r(e,t,a),t},e.applyToEsriApiLayer=r,e.fromEsriApiFeatureLayer=function(r){checkArg("layer",r).isNotMissing(),checkArg("layer.source",r).satisfies((e=>!(Collection.isCollection(e.source)&&e.url)),ERR_FEATURE_LAYER_SOURCE);const i={...fromEsriApiLayerToLayerBase(r,e.esriFeatureLayerDefaults),...fromEsriApiLayerToOperationalLayer(r),layerType:"ArcGISFeatureLayer"};return r.popupEnabled!==e.esriFeatureLayerDefaults.popupEnabled&&(i.disablePopup=!r.popupEnabled),r.screenSizePerspectiveEnabled!==e.esriFeatureLayerDefaults.screenSizePerspective&&(i.screenSizePerspective=r.screenSizePerspectiveEnabled),r.labelsVisible!==e.esriFeatureLayerDefaults.labelsVisible&&(i.showLabels=r.labelsVisible),isFeatureLayer(r)&&r.gdbVersion&&(i.customParameters={...i.customParameters,gdbVersion:r.gdbVersion}),isFeatureLayer(r)&&Collection.isCollection(r.source)?fromEsriApiFeatureLayerWithSource(r,i):fromEsriApiFeatureLayerWithUrl(r,i),i},e.fromEsriApiGraphicsLayer=function(r){checkArg("layer",r).isNotMissing();const i={...fromEsriApiLayerToLayerBase(r,e.esriFeatureLayerDefaults),layerType:"ArcGISFeatureLayer",featureCollection:{layers:[],showLegend:!1}};if(i.id=GRAPHICS_LAYER_ID+i.id,!r.graphics)return i;const a=r.graphics.toArray();for(const e of a){const t=GeometryType.fromEsriApiGeometryType(e.geometry.type);let o=i.featureCollection.layers.find((e=>e.layerDefinition.geometryType===t));o||(o={featureSet:{features:[],geometryType:t},layerDefinition:{geometryType:t,minScale:r.minScale,maxScale:r.maxScale,fields:[]}},i.featureCollection.layers.push(o));const s=Feature.fromEsriApiGraphic(e);s.attributes["graphic-id"]=a.indexOf(e);for(const[r,i]of Object.entries(e.attributes??{})){let e=o.layerDefinition.fields.find((e=>e.name===r));e||(e={name:r,alias:r,editable:!0,nullable:!0},"number"==typeof i?e.type="esriFieldTypeDouble":i instanceof Date?e.type="esriFieldTypeDate":e.type="esriFieldTypeString",o.layerDefinition.fields.push(e))}o.featureSet.features.push(s)}return i},e.isGraphicsLayerJson=i,e.isFeatureCollection=function(e){return!e.id?.startsWith(GRAPHICS_LAYER_ID)&&e.$ref&&"feature-collection-layer"===e.$ref.subtype||e.featureCollection?.layers&&1===e.featureCollection.layers.length},e.isMapNotesLayer=function(e){return"notes"===e.featureCollectionType}}(FeatureLayer||(FeatureLayer={}));export var FeatureLayerMode;function setDefaultRenderer(e){if(e.featureCollection?.layers)for(const r of e.featureCollection.layers)if(r.layerDefinition?.geometryType){r.layerDefinition.drawingInfo=r.layerDefinition.drawingInfo||{};let{renderer:e}=r.layerDefinition.drawingInfo;if(!e)switch(r.layerDefinition.geometryType){case"esriGeometryPoint":case"esriGeometryMultipoint":e=defaultPointRenderer;break;case"esriGeometryPolyline":e=defaultLineRenderer;break;case"esriGeometryPolygon":case"esriGeometryEnvelope":e=defaultPolygonRenderer}r.layerDefinition.drawingInfo.renderer=e}}async function applyToEsriApiFeatureLayerWithUrl(e,r,i){applyLayerBaseToEsriApiLayer(e,r),applyOperationalLayerToEsriApiLayer(e,r),e.hasOwnProperty("url")&&(r.url=e.url),isFeatureLayer(r)&&(e.hasOwnProperty("itemId")&&(r.portalItem?r.portalItem.id=e.itemId:r.portalItem=new PortalItem({id:e.itemId,portal:i||Portal.getDefault()})),e.hasOwnProperty("formInfo")&&(r.formTemplate=FormInfo.toEsriApiFormTemplate(e.formInfo))),e.hasOwnProperty("popupInfo")&&(r.popupTemplate=PopupInfo.toEsriApiPopupTemplate(e.popupInfo)),e.hasOwnProperty("mode")&&(r.mode=e.mode),e.hasOwnProperty("layerDefinition")&&(await LayerDefinition.applyToEsriApiLayer(e.layerDefinition,r),r.version=_getLayerDefinitionVersion(e.layerDefinition))}async function applyToEsriApiFeatureLayerWithSource(e,r){const i=e.featureCollection.layers[0];if(applyLayerBaseToEsriApiLayer(e,r),applyOperationalLayerToEsriApiLayer(e,r),r.legendEnabled=e.featureCollection.showLegend,i.hasOwnProperty("layerDefinition")){const e=i.layerDefinition;await LayerDefinition.applyToEsriApiLayer(e,r),r.version=_getLayerDefinitionVersion(e),e.hasOwnProperty("types")&&(r.types=e.types.map((e=>Type.toEsriApiFeatureType(e))))}i.hasOwnProperty("popupInfo")&&(r.popupTemplate=PopupInfo.toEsriApiPopupTemplate(i.popupInfo)),i.hasOwnProperty("formInfo")&&(r.formTemplate=FormInfo.toEsriApiFormTemplate(i.formInfo)),r.source||(r.source=new Collection),i.hasOwnProperty("featureSet")&&i.featureSet.geometryType&&(r.geometryType=GeometryType.toEsriApiGeometryType(i.featureSet.geometryType),i.featureSet.features&&!r.loaded&&(r.source.removeAll(),r.source.addMany(i.featureSet.features.map(Feature.toEsriApiGraphic))))}function applyToEsriApiGraphicsLayer(e,r){applyLayerBaseToEsriApiLayer(e,r),r.id=r.id.replace(GRAPHICS_LAYER_ID,"");const i=r;if(r&&(i._fields=i._fields??[],e.featureCollectionType&&(r.featureCollectionType=e.featureCollectionType)),e.hasOwnProperty("featureCollection")&&e.featureCollection.layers){const a=new Collection;for(const r of e.featureCollection.layers){if(!r.featureSet||!r.featureSet.features)continue;const e=new Collection;e.addMany(r.featureSet.features.map(Feature.toEsriApiGraphic)),e.forEach((e=>{null===e.symbol&&(e.symbol=getGraphicSymbol(e,r.layerDefinition))})),r.popupInfo&&e.forEach((e=>{null===e.popupTemplate&&(e.popupTemplate=PopupInfo.toEsriApiPopupTemplate(r.popupInfo))})),r.layerDefinition?.fields?.length>0&&r.layerDefinition.fields.forEach((e=>{const r=Field.toEsriApiField(e);"oid"!==r.type&&(i._fields=i._fields.filter((e=>e.name!==r.name)),i._fields.push(r))})),a.addMany(e)}const t=e=>e.attributes["graphic-id"];a.every((e=>"number"==typeof t(e)))&&a.sort(((e,r)=>t(e)>t(r)?1:t(e)<t(r)?-1:0));for(const e of a.toArray())delete e.attributes["graphic-id"];r.graphics.removeAll(),r.graphics.addMany(a)}}function getGraphicSymbol(e,r){let i;if(r?.drawingInfo?.renderer)if("uniqueValue"===r.drawingInfo.renderer.type&&r.drawingInfo.renderer.uniqueValueInfos.length>0){const{uniqueValueInfos:a}=r.drawingInfo.renderer,t=a.find((r=>r.value===e.attributes.TYPEID.toString()));t&&(i=toEsriApiSymbol(t.symbol))}else"simple"===r.drawingInfo.renderer.type&&(i=toEsriApiSymbol(r.drawingInfo.renderer.symbol));return i}function fromEsriApiFeatureLayerWithUrl(e,r){checkArg("layer",e).isNotMissing(),checkArg("featureLayer",r).isNotMissing(),isFeatureLayer(e)?(r.url=isNumeric(e.layerId)?`${e.url}/${e.layerId}`:e.url,e.portalItem&&(r.itemId=e.portalItem.id),e.formTemplate&&(r.formInfo=FormInfo.fromEsriApiFormTemplate(e.formTemplate))):r.url=e.url,r.layerDefinition=LayerDefinition.fromEsriApiLayer(e,FeatureLayer.esriFeatureLayerDefaults),e.popupTemplate&&(r.popupInfo=PopupInfo.fromEsriApiPopupTemplate(e.popupTemplate)),isNaN(e.mode)||(r.mode=e.mode)}function fromEsriApiFeatureLayerWithSource(e,r){checkArg("layer",e).isNotMissing(),checkArg("featureLayer",r).isNotMissing(),checkArg("layer.geometryType",e.geometryType).isNotMissing(),checkArg("layer.source",e).satisfies(_hasSameGeometryType,ERR_FEATURE_LAYER_GEOMETRY_TYPES);const i={featureSet:{features:e.source.map(Feature.fromEsriApiGraphic).toArray(),geometryType:GeometryType.fromEsriApiGeometryType(e.geometryType)},layerDefinition:LayerDefinition.fromEsriApiLayer(e)};e.types&&(i.layerDefinition.types=e.types.map((e=>Type.fromEsriApiFeatureType(e)))),e.typeIdField&&(i.layerDefinition.typeIdField=e.typeIdField),e.popupTemplate&&(i.popupInfo=PopupInfo.fromEsriApiPopupTemplate(e.popupTemplate)),e.formTemplate&&(r.formInfo=FormInfo.fromEsriApiFormTemplate(e.formTemplate)),r.featureCollection={layers:[i],showLegend:e.legendEnabled}}function _getLayerDefinitionVersion(e){return e.currentVersion?e.currentVersion:e.hasOwnProperty("capabilities")||e.hasOwnProperty("drawingInfo")||e.hasOwnProperty("hasAttachments")||e.hasOwnProperty("htmlPopupType")||e.hasOwnProperty("relationships")||e.hasOwnProperty("timeInfo")||e.hasOwnProperty("typeIdField")||e.hasOwnProperty("types")?10:void 0}function _hasSameGeometryType(e){return!(e.source&&e.source.length>0)||e.source.every((r=>r.geometry.type===e.geometryType))}!function(e){e[e.MODE_SNAPSHOT=0]="MODE_SNAPSHOT",e[e.MODE_ONDEMAND=1]="MODE_ONDEMAND",e[e.MODE_SELECTION=2]="MODE_SELECTION",e[e.MODE_AUTO=6]="MODE_AUTO"}(FeatureLayerMode||(FeatureLayerMode={}));
|
|
@@ -5,6 +5,7 @@ import type EsriFeatureLayer from "@arcgis/core/layers/FeatureLayer";
|
|
|
5
5
|
import type EsriImageryLayer from "@arcgis/core/layers/ImageryLayer";
|
|
6
6
|
import type EsriImageryTileLayer from "@arcgis/core/layers/ImageryTileLayer";
|
|
7
7
|
import type EsriLayer from "@arcgis/core/layers/Layer";
|
|
8
|
+
import type EsriPointCloudLayer from "@arcgis/core/layers/PointCloudLayer";
|
|
8
9
|
import type EsriSceneLayer from "@arcgis/core/layers/SceneLayer";
|
|
9
10
|
import type EsriStreamLayer from "@arcgis/core/layers/StreamLayer";
|
|
10
11
|
import type EsriBuildingComponentSublayer from "@arcgis/core/layers/buildingSublayers/BuildingComponentSublayer";
|
|
@@ -30,7 +31,7 @@ export declare namespace LayerDefinition {
|
|
|
30
31
|
* @param json The layer definition JSON to apply.
|
|
31
32
|
* @param layer The Layer object to apply it to.
|
|
32
33
|
*/
|
|
33
|
-
function applyToEsriApiLayer(json: LayerDefinition, layer: EsriFeatureLayer | EsriStreamLayer | EsriImageryLayer | EsriImageryTileLayer | EsriCSVLayer | EsriSceneLayer | EsriBuildingSceneLayer | EsriSublayer | EsriBuildingComponentSublayer): Promise<void>;
|
|
34
|
+
function applyToEsriApiLayer(json: LayerDefinition, layer: EsriFeatureLayer | EsriStreamLayer | EsriImageryLayer | EsriImageryTileLayer | EsriCSVLayer | EsriSceneLayer | EsriBuildingSceneLayer | EsriPointCloudLayer | EsriSublayer | EsriBuildingComponentSublayer): Promise<void>;
|
|
34
35
|
/**
|
|
35
36
|
* Creates ArcGIS Portal layer definition JSON from a Layer object.
|
|
36
37
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import EsriExtent from"@arcgis/core/geometry/Extent";import EsriTimeInfo from"@arcgis/core/layers/support/TimeInfo";import{DataLayerSource,MapLayerSource}from"../support/_esriInternal.js";import{isBuildingSceneLayer,isCSVLayer,isFeatureLayer,isFeatureLayerBase,isGeoJSONLayer,isMapImageSublayer as isEsriSublayer,isSceneLayer,isStreamLayer,isTimeAwareLayer}from"../utilities/_layers.js";import{checkArg}from"../utilities/checkArg.js";import{isBuildingComponentSublayer,isGraphicsLayer,isLayer}from"../utilities/layers.js";import{isEmpty}from"../utilities/object.js";import{DrawingInfo}from"./DrawingInfo.js";import{ElevationInfo}from"./ElevationInfo.js";import{FeatureReduction}from"./FeatureReduction.js";import{Field as PortalField}from"./Field.js";import{GeometryType}from"./Geometry.js";import{SpatialReference}from"./SpatialReference.js";import{Template}from"./Template.js";export var LayerDefinition;!function(e){e.applyToEsriApiLayer=async function(e,i){checkArg("json",e).isNotMissing(),checkArg("layer",i).isNotMissing();const r=i,t=i;if(isFeatureLayerBase(r)&&(e.hasOwnProperty("objectIdField")&&(isStreamLayer(r)?r.objectIdField="__esri_stream_id__":r.objectIdField=e.objectIdField),e.hasOwnProperty("geometryType")&&(r.geometryType=GeometryType.toEsriApiGeometryType(e.geometryType)),e.hasOwnProperty("hasAttachments")&&t._set("capabilities.data.supportsAttachment",e.hasAttachments),e.hasOwnProperty("maxRecordCount")&&(t.maxRecordCount=e.maxRecordCount),e.hasOwnProperty("hasM")&&t._set("hasM",e.hasM),e.hasOwnProperty("hasZ")&&t._set("hasZ",e.hasZ),e.hasOwnProperty("templates")&&(r.templates=e.templates.map((e=>Template.toEsriApiFeatureTemplate(e))))),e.hasOwnProperty("orderBy")&&(isFeatureLayer(r)||isCSVLayer(r))&&(e.orderBy?r.orderBy=e.orderBy.map((e=>({field:e.field,order:"desc"===e.order?"descending":"ascending"}))):r.orderBy=void 0),e.hasOwnProperty("source")&&isEsriSublayer(i)&&!i.layer?.loaded){const{type:i,...r}=e.source;"dataLayer"===i?t._set("source",new DataLayerSource(r)):"mapLayer"===i&&t._set("source",new MapLayerSource(r))}if(e.hasOwnProperty("copyrightText")&&(i.copyright=e.copyrightText),e.hasOwnProperty("defaultVisibility")&&(i.visible=e.defaultVisibility),e.hasOwnProperty("definitionExpression")&&(i.definitionExpression=e.definitionExpression),e.hasOwnProperty("elevationInfo")&&e.elevationInfo&&(i.elevationInfo=ElevationInfo.toEsriApiElevationInfo(e.elevationInfo)),e.hasOwnProperty("extent")&&(i.fullExtent=e.extent?EsriExtent.fromJSON(e.extent):void 0),e.hasOwnProperty("fields")){const i=[];e.fields.forEach((e=>{i.push(PortalField.toEsriApiField(e))})),t._set("fields",i)}e.hasOwnProperty("maxScale")&&(i.maxScale=e.maxScale),e.hasOwnProperty("minScale")&&(i.minScale=e.minScale),e.hasOwnProperty("name")&&!i.title&&(i.title=e.name);try{e.hasOwnProperty("spatialReference")?i.spatialReference=SpatialReference.toEsriApiSpatialReference(e.spatialReference):i.fullExtent?.spatialReference&&i.spatialReference&&(i.spatialReference=i.fullExtent.spatialReference.clone())}catch{}e.hasOwnProperty("timeInfo")&&isTimeAwareLayer(i)&&(i.timeInfo=EsriTimeInfo.fromJSON(e.timeInfo)),e.hasOwnProperty("featureReduction")&&e.featureReduction&&await FeatureReduction.applyToEsriApiLayer(e.featureReduction,i),e.hasOwnProperty("drawingInfo")&&await DrawingInfo.applyToEsriApiLayer(e.drawingInfo,i)},e.fromEsriApiLayer=function(e,i={}){checkArg("layer",e).isNotMissing();const r={},t=e,a=e;if(isFeatureLayerBase(t)){const s=e;t.objectIdField&&(r.objectIdField=t.objectIdField),s.geometryType&&(r.geometryType=GeometryType.fromEsriApiGeometryType(s.geometryType)),t.capabilities&&t.capabilities.data.supportsAttachment!==i.hasAttachments&&(r.hasAttachments=t.capabilities.data.supportsAttachment),isNaN(a.maxRecordCount)||null==a.maxRecordCount||(r.maxRecordCount=a.maxRecordCount),t.capabilities&&(r.capabilities=LayerDefinitionCapabilities.fromEsriApiFeatureLayerCapabilities(t.capabilities),t.capabilities.query&&(r.supportsAdvancedQueries=t.capabilities.query.supportsOrderBy||t.capabilities.query.supportsDistinct,r.supportsStatistics=t.capabilities.query.supportsStatistics)),t.hasM!==i.hasM&&(r.hasM=t.hasM),t.hasZ!==i.hasZ&&(r.hasZ=t.hasZ),t.templates&&t.templates.length>0&&(r.templates=t.templates.map((e=>Template.fromEsriApiFeatureTemplate(e))))}if(e.featureReduction&&(r.featureReduction=FeatureReduction.fromEsriApiLayer(e)),isEsriSublayer(e)&&e.source&&("data-layer"===e.source.type||"map-layer"===e.source.type)&&(r.source=e.source.toJSON()),e.copyright&&(r.copyrightText=e.copyright),e.visible===i.visible||isEsriSublayer(e)||(r.defaultVisibility=e.visible),e.definitionExpression&&(r.definitionExpression=e.definitionExpression),r.drawingInfo=DrawingInfo.fromEsriApiLayer(e),isEmpty(r.drawingInfo)&&delete r.drawingInfo,(isBuildingComponentSublayer(e)?!!e.layer?.elevationInfo:!!e.elevationInfo)&&(r.elevationInfo=ElevationInfo.fromEsriApiElevationInfo(e.elevationInfo)),(isFeatureLayer(e)&&e.source||isCSVLayer(e)||isGraphicsLayer(e)||isGeoJSONLayer(e)||isStreamLayer(e))&&(e.fullExtent&&!e.fullExtent.equals(i.fullExtent)&&(r.extent=e.fullExtent.toJSON()),e.fields&&e.fields.length>0)){const i=[];e.fields.forEach((e=>{i.push(PortalField.fromEsriApiField(e))})),r.fields=i}if((isFeatureLayer(t)||isCSVLayer(t))&&t.orderBy&&(r.orderBy=t.orderBy.map((e=>({field:e.field,order:"descending"===e.order?"desc":"asc"})))),isFeatureLayer(t)||isCSVLayer(t)||isStreamLayer(t)||isSceneLayer(t)||isBuildingSceneLayer(t)){const{maxScale:e}=t,{minScale:a}=t;isNaN(e)||null===e||e===i.maxScale&&e===a||(r.maxScale=e),isNaN(a)||null===a||a===i.minScale&&a===e||(r.minScale=a)}return isTimeAwareLayer(t)&&(r.timeInfo=t.timeInfo?.toJSON()),r.name=e.title,isLayer(e)&&e.spatialReference&&e.spatialReference.wkid!==i.wkid&&(r.spatialReference=SpatialReference.fromEsriApiSpatialReference(e.spatialReference)),r}}(LayerDefinition||(LayerDefinition={}));export var LayerDefinitionCapabilities;!function(e){e.ADD="Add",e.DELETE="Delete",e.EDITING="Editing",e.QUERY="Query",e.UPDATE="Update",e.fromEsriApiFeatureLayerCapabilities=function(i){checkArg("capabilities",i).isNotMissing();const r=[];return i.operations.supportsAdd&&r.push(e.ADD),i.operations.supportsDelete&&r.push(e.DELETE),i.operations.supportsEditing&&r.push(e.EDITING),i.operations.supportsQuery&&r.push(e.QUERY),i.operations.supportsUpdate&&r.push(e.UPDATE),r.join(",")}}(LayerDefinitionCapabilities||(LayerDefinitionCapabilities={}));
|
|
1
|
+
import EsriExtent from"@arcgis/core/geometry/Extent";import EsriTimeInfo from"@arcgis/core/layers/support/TimeInfo";import{DataLayerSource,MapLayerSource}from"../support/_esriInternal.js";import{isBuildingSceneLayer,isCSVLayer,isFeatureLayer,isFeatureLayerBase,isGeoJSONLayer,isMapImageSublayer as isEsriSublayer,isSceneLayer,isStreamLayer,isTimeAwareLayer}from"../utilities/_layers.js";import{checkArg}from"../utilities/checkArg.js";import{isBuildingComponentSublayer,isGraphicsLayer,isLayer,isPointCloudLayer}from"../utilities/layers.js";import{isEmpty}from"../utilities/object.js";import{DrawingInfo}from"./DrawingInfo.js";import{ElevationInfo}from"./ElevationInfo.js";import{FeatureReduction}from"./FeatureReduction.js";import{Field as PortalField}from"./Field.js";import{GeometryType}from"./Geometry.js";import{SpatialReference}from"./SpatialReference.js";import{Template}from"./Template.js";export var LayerDefinition;!function(e){e.applyToEsriApiLayer=async function(e,i){checkArg("json",e).isNotMissing(),checkArg("layer",i).isNotMissing();const r=i,t=i;if(isFeatureLayerBase(r)&&(e.hasOwnProperty("objectIdField")&&(isStreamLayer(r)?r.objectIdField="__esri_stream_id__":r.objectIdField=e.objectIdField),e.hasOwnProperty("geometryType")&&(r.geometryType=GeometryType.toEsriApiGeometryType(e.geometryType)),e.hasOwnProperty("hasAttachments")&&t._set("capabilities.data.supportsAttachment",e.hasAttachments),e.hasOwnProperty("maxRecordCount")&&(t.maxRecordCount=e.maxRecordCount),e.hasOwnProperty("hasM")&&t._set("hasM",e.hasM),e.hasOwnProperty("hasZ")&&t._set("hasZ",e.hasZ),e.hasOwnProperty("templates")&&(r.templates=e.templates.map((e=>Template.toEsriApiFeatureTemplate(e))))),e.hasOwnProperty("orderBy")&&(isFeatureLayer(r)||isCSVLayer(r))&&(e.orderBy?r.orderBy=e.orderBy.map((e=>({field:e.field,order:"desc"===e.order?"descending":"ascending"}))):r.orderBy=void 0),e.hasOwnProperty("source")&&isEsriSublayer(i)&&!i.layer?.loaded){const{type:i,...r}=e.source;"dataLayer"===i?t._set("source",new DataLayerSource(r)):"mapLayer"===i&&t._set("source",new MapLayerSource(r))}if(e.hasOwnProperty("copyrightText")&&(i.copyright=e.copyrightText),e.hasOwnProperty("defaultVisibility")&&(i.visible=e.defaultVisibility),e.hasOwnProperty("definitionExpression")&&(i.definitionExpression=e.definitionExpression),e.hasOwnProperty("elevationInfo")&&e.elevationInfo&&(i.elevationInfo=ElevationInfo.toEsriApiElevationInfo(e.elevationInfo)),e.hasOwnProperty("extent")&&(i.fullExtent=e.extent?EsriExtent.fromJSON(e.extent):void 0),e.hasOwnProperty("fields")){const i=[];e.fields.forEach((e=>{i.push(PortalField.toEsriApiField(e))})),t._set("fields",i)}e.hasOwnProperty("maxScale")&&(i.maxScale=e.maxScale),e.hasOwnProperty("minScale")&&(i.minScale=e.minScale),e.hasOwnProperty("name")&&!i.title&&(i.title=e.name);try{e.hasOwnProperty("spatialReference")?i.spatialReference=SpatialReference.toEsriApiSpatialReference(e.spatialReference):i.fullExtent?.spatialReference&&i.spatialReference&&(i.spatialReference=i.fullExtent.spatialReference.clone())}catch{}e.hasOwnProperty("timeInfo")&&isTimeAwareLayer(i)&&(i.timeInfo=EsriTimeInfo.fromJSON(e.timeInfo)),e.hasOwnProperty("featureReduction")&&e.featureReduction&&await FeatureReduction.applyToEsriApiLayer(e.featureReduction,i),e.hasOwnProperty("drawingInfo")&&await DrawingInfo.applyToEsriApiLayer(e.drawingInfo,i)},e.fromEsriApiLayer=function(e,i={}){checkArg("layer",e).isNotMissing();const r={},t=e,a=e;if(isFeatureLayerBase(t)){const s=e;t.objectIdField&&(r.objectIdField=t.objectIdField),s.geometryType&&(r.geometryType=GeometryType.fromEsriApiGeometryType(s.geometryType)),t.capabilities&&t.capabilities.data.supportsAttachment!==i.hasAttachments&&(r.hasAttachments=t.capabilities.data.supportsAttachment),isNaN(a.maxRecordCount)||null==a.maxRecordCount||(r.maxRecordCount=a.maxRecordCount),t.capabilities&&(r.capabilities=LayerDefinitionCapabilities.fromEsriApiFeatureLayerCapabilities(t.capabilities),t.capabilities.query&&(r.supportsAdvancedQueries=t.capabilities.query.supportsOrderBy||t.capabilities.query.supportsDistinct,r.supportsStatistics=t.capabilities.query.supportsStatistics)),t.hasM!==i.hasM&&(r.hasM=t.hasM),t.hasZ!==i.hasZ&&(r.hasZ=t.hasZ),t.templates&&t.templates.length>0&&(r.templates=t.templates.map((e=>Template.fromEsriApiFeatureTemplate(e))))}if(e.featureReduction&&(r.featureReduction=FeatureReduction.fromEsriApiLayer(e)),isEsriSublayer(e)&&e.source&&("data-layer"===e.source.type||"map-layer"===e.source.type)&&(r.source=e.source.toJSON()),e.copyright&&(r.copyrightText=e.copyright),e.visible===i.visible||isEsriSublayer(e)||(r.defaultVisibility=e.visible),e.definitionExpression&&(r.definitionExpression=e.definitionExpression),r.drawingInfo=DrawingInfo.fromEsriApiLayer(e),isEmpty(r.drawingInfo)&&delete r.drawingInfo,(isBuildingComponentSublayer(e)?!!e.layer?.elevationInfo:!!e.elevationInfo)&&(r.elevationInfo=ElevationInfo.fromEsriApiElevationInfo(e.elevationInfo)),(isFeatureLayer(e)&&e.source||isCSVLayer(e)||isGraphicsLayer(e)||isGeoJSONLayer(e)||isStreamLayer(e))&&(e.fullExtent&&!e.fullExtent.equals(i.fullExtent)&&(r.extent=e.fullExtent.toJSON()),e.fields&&e.fields.length>0)){const i=[];e.fields.forEach((e=>{i.push(PortalField.fromEsriApiField(e))})),r.fields=i}if((isFeatureLayer(t)||isCSVLayer(t))&&t.orderBy&&(r.orderBy=t.orderBy.map((e=>({field:e.field,order:"descending"===e.order?"desc":"asc"})))),isFeatureLayer(t)||isCSVLayer(t)||isStreamLayer(t)||isSceneLayer(t)||isBuildingSceneLayer(t)||isPointCloudLayer(t)){const{maxScale:e}=t,{minScale:a}=t;isNaN(e)||null===e||e===i.maxScale&&e===a||(r.maxScale=e),isNaN(a)||null===a||a===i.minScale&&a===e||(r.minScale=a)}return isTimeAwareLayer(t)&&(r.timeInfo=t.timeInfo?.toJSON()),r.name=e.title,isLayer(e)&&e.spatialReference&&e.spatialReference.wkid!==i.wkid&&(r.spatialReference=SpatialReference.fromEsriApiSpatialReference(e.spatialReference)),r}}(LayerDefinition||(LayerDefinition={}));export var LayerDefinitionCapabilities;!function(e){e.ADD="Add",e.DELETE="Delete",e.EDITING="Editing",e.QUERY="Query",e.UPDATE="Update",e.fromEsriApiFeatureLayerCapabilities=function(i){checkArg("capabilities",i).isNotMissing();const r=[];return i.operations.supportsAdd&&r.push(e.ADD),i.operations.supportsDelete&&r.push(e.DELETE),i.operations.supportsEditing&&r.push(e.EDITING),i.operations.supportsQuery&&r.push(e.QUERY),i.operations.supportsUpdate&&r.push(e.UPDATE),r.join(",")}}(LayerDefinitionCapabilities||(LayerDefinitionCapabilities={}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import Collection from"@arcgis/core/core/Collection";import Portal from"@arcgis/core/portal/Portal";import EsriPortalItem from"@arcgis/core/portal/PortalItem";import{isMapImageLayer}from"../utilities/_layers.js";import{checkArg}from"../utilities/checkArg.js";import{compareAsync}from"../utilities/collection.js";import{deepClone}from"../utilities/object.js";import{Layer}from"./Layer.js";import{ERR_LAYER_TYPE_MISMATCH,applyLayerBaseToEsriApiLayer,applyBasemapLayerToEsriApiLayer,applyOperationalLayerToEsriApiLayer,fromEsriApiLayerToLayerBase,fromEsriApiLayerToOperationalLayer}from"./_layerHelper.js";export var MapServiceLayer;function isDynamicLayer(e){if(e.layerDefinition){if(e.layerDefinition.source)return!0;const{drawingInfo:r}=e.layerDefinition;if(r&&(r.renderer||r.labelingInfo||void 0!==r.showLabels&&null!==r.showLabels))return!0}return!1}function fixDynamicLayer(e){const{layerDefinition:r}=e;if(r){r.source&&(delete r.source,console.warn("The map service does not support dynamic layers. Ignoring property: layer.layerDefinition.source"));const{drawingInfo:e}=r;e&&(e.renderer&&(delete e.renderer,console.warn("The map service does not support dynamic layers. Ignoring property: layer.layerDefinition.drawingInfo.renderer")),e.labelingInfo&&(delete e.labelingInfo,console.warn("The map service does not support dynamic layers. Ignoring property: layer.layerDefinition.drawingInfo.labelingInfo")),void 0!==e.showLabels&&null!==e.showLabels&&(delete e.showLabels,console.warn("The map service does not support dynamic layers. Ignoring property: layer.layerDefinition.showLabels.labelingInfo")))}}async function applySublayerPropertiesToEsriApiLayer(e,r){const a=r.capabilities?.exportMap?.supportsDynamicLayers;if(e.layers)if(a&&e.layers.some(isDynamicLayer)){const a=[...e.layers].reverse(),i=new Map;await compareAsync(r.allSublayers,a,{equals:(e,r)=>+e.id==+r.id,onMatch:async(e,r)=>{await Layer.applyToEsriApiSublayer(r,e)},onMissing:e=>{r.sublayers.remove(e)},onNew:async e=>{const a=await Layer.toEsriApiSublayer(e,"ArcGISMapServiceLayer");a.layer=r,i.set(a.id,a)}}),a.forEach(((e,s)=>{const o=+e.id,l=i.get(o);if(l)if(null!=e.parentLayerId&&-1!==e.parentLayerId){const r=i.get(e.parentLayerId);r&&(r.sublayers=r.sublayers??new Collection,r.sublayers.add(l))}else r.sublayers.add(l);else{const i=r.allSublayers.find((e=>e.id===o));if(i){let o,l=r.allSublayers.find((r=>r.id===e.parentLayerId));if(l){o=a.filter((e=>e.parentLayerId===l.id)).map((e=>a.indexOf(e))).indexOf(s)}else o=s,l=r;l.sublayers.reorder(i,o)}}}))}else if(r.sublayers)for(const a of e.layers){if(void 0===a.id||null===a.id)continue;const e=r.allSublayers.find((e=>e.id===a.id));e&&(isDynamicLayer(a)&&fixDynamicLayer(a),await Layer.applyToEsriApiSublayer(a,e))}if(e.visibleLayers&&r.allSublayers)for(const a of r.allSublayers.toArray())a.visible=e.visibleLayers.includes(a.id)}!function(e){async function r(e,r,a){checkArg("layerJson",e).isNotMissing(),checkArg("layerJson.layerType",e.layerType).satisfies((e=>!e||"ArcGISMapServiceLayer"===e),ERR_LAYER_TYPE_MISMATCH),checkArg("layer",r).isNotMissing().satisfies(isMapImageLayer,ERR_LAYER_TYPE_MISMATCH);const i=deepClone(e);if(applyLayerBaseToEsriApiLayer(i,r),applyBasemapLayerToEsriApiLayer(i,r),applyOperationalLayerToEsriApiLayer(i,r),i.hasOwnProperty("url")&&(r.url=i.url),i.hasOwnProperty("itemId")&&(r.portalItem?r.portalItem.id=i.itemId:r.portalItem=new EsriPortalItem({id:i.itemId,portal:a||Portal.getDefault()})),r.loaded)await applySublayerPropertiesToEsriApiLayer(i,r);else{const e=r.load;let a=!1;r.load=async()=>{await e(),a||(a=!0,await applySublayerPropertiesToEsriApiLayer(i,r))}}}e.esriMapImageLayerDefaults={legendEnabled:!0,visible:!0,opacity:1},e.toEsriApiLayer=async function(e){checkArg("layerJson",e).isNotMissing(),checkArg("layerJson.layerType",e.layerType).satisfies((e=>!e||"ArcGISMapServiceLayer"===e),ERR_LAYER_TYPE_MISMATCH);const a=new((await import("@arcgis/core/layers/MapImageLayer")).default);return await r(e,a),a},e.applyToEsriApiLayer=r,e.fromEsriApiMapImageLayer=function(r){checkArg("layer",r).isNotMissing();const a={...fromEsriApiLayerToLayerBase(r,e.esriMapImageLayerDefaults),...fromEsriApiLayerToOperationalLayer(r),layerType:"ArcGISMapServiceLayer",url:r.url};if(r.portalItem&&(a.itemId=r.portalItem.id),r.sublayers){a.layers=[],a.visibleLayers=[];const e=i=>{i.visible&&a.visibleLayers.push(i.id),a.layers.push(Layer.fromEsriApiSublayer(i,r)),i.sublayers&&i.sublayers.reverse().forEach(e)};r.sublayers.reverse().forEach(e)}return a}}(MapServiceLayer||(MapServiceLayer={}));
|
|
1
|
+
import Collection from"@arcgis/core/core/Collection";import Portal from"@arcgis/core/portal/Portal";import EsriPortalItem from"@arcgis/core/portal/PortalItem";import{isMapImageLayer}from"../utilities/_layers.js";import{checkArg}from"../utilities/checkArg.js";import{compareAsync}from"../utilities/collection.js";import{deepClone}from"../utilities/object.js";import{Layer}from"./Layer.js";import{ERR_LAYER_TYPE_MISMATCH,applyLayerBaseToEsriApiLayer,applyBasemapLayerToEsriApiLayer,applyOperationalLayerToEsriApiLayer,fromEsriApiLayerToLayerBase,fromEsriApiLayerToOperationalLayer}from"./_layerHelper.js";export var MapServiceLayer;function isDynamicLayer(e){if(e.layerDefinition){if(e.layerDefinition.source)return!0;const{drawingInfo:r}=e.layerDefinition;if(r&&(r.renderer||r.labelingInfo||void 0!==r.showLabels&&null!==r.showLabels))return!0}return!1}function fixDynamicLayer(e){const{layerDefinition:r}=e;if(r){r.source&&(delete r.source,console.warn("The map service does not support dynamic layers. Ignoring property: layer.layerDefinition.source"));const{drawingInfo:e}=r;e&&(e.renderer&&(delete e.renderer,console.warn("The map service does not support dynamic layers. Ignoring property: layer.layerDefinition.drawingInfo.renderer")),e.labelingInfo&&(delete e.labelingInfo,console.warn("The map service does not support dynamic layers. Ignoring property: layer.layerDefinition.drawingInfo.labelingInfo")),void 0!==e.showLabels&&null!==e.showLabels&&(delete e.showLabels,console.warn("The map service does not support dynamic layers. Ignoring property: layer.layerDefinition.showLabels.labelingInfo")))}}async function applySublayerPropertiesToEsriApiLayer(e,r){const a=r.capabilities?.exportMap?.supportsDynamicLayers;if(e.layers)if(a&&e.layers.some(isDynamicLayer)){const a=[...e.layers].reverse(),i=new Map;await compareAsync(r.allSublayers,a,{equals:(e,r)=>+e.id==+r.id,onMatch:async(e,r)=>{await Layer.applyToEsriApiSublayer(r,e)},onMissing:e=>{r.sublayers.remove(e)},onNew:async e=>{const a=await Layer.toEsriApiSublayer(e,"ArcGISMapServiceLayer");a.layer=r,i.set(a.id,a)}}),a.forEach(((e,s)=>{const o=+e.id,l=i.get(o);if(l)if(null!=e.parentLayerId&&-1!==e.parentLayerId){const r=i.get(e.parentLayerId);r&&(r.sublayers=r.sublayers??new Collection,r.sublayers.add(l))}else r.sublayers.add(l);else{const i=r.allSublayers.find((e=>e.id===o));if(i){let o,l=r.allSublayers.find((r=>r.id===e.parentLayerId));if(l){o=a.filter((e=>e.parentLayerId===l.id)).map((e=>a.indexOf(e))).indexOf(s)}else o=s,l=r;l.sublayers.reorder(i,o)}}}))}else if(r.sublayers)for(const a of e.layers){if(void 0===a.id||null===a.id)continue;const e=r.allSublayers.find((e=>e.id===a.id));e&&(isDynamicLayer(a)&&fixDynamicLayer(a),await Layer.applyToEsriApiSublayer(a,e))}if(e.visibleLayers&&r.allSublayers)for(const a of r.allSublayers.toArray())a.visible=e.visibleLayers.includes(a.id)}!function(e){async function r(e,r,a){checkArg("layerJson",e).isNotMissing(),checkArg("layerJson.layerType",e.layerType).satisfies((e=>!e||"ArcGISMapServiceLayer"===e),ERR_LAYER_TYPE_MISMATCH),checkArg("layer",r).isNotMissing().satisfies(isMapImageLayer,ERR_LAYER_TYPE_MISMATCH);const i=deepClone(e);if(applyLayerBaseToEsriApiLayer(i,r),applyBasemapLayerToEsriApiLayer(i,r),applyOperationalLayerToEsriApiLayer(i,r),i.hasOwnProperty("url")&&(r.url=i.url),i.hasOwnProperty("itemId")&&(r.portalItem?r.portalItem.id=i.itemId:r.portalItem=new EsriPortalItem({id:i.itemId,portal:a||Portal.getDefault()})),e.customParameters?.hasOwnProperty("gdbVersion")&&(r.gdbVersion=e.customParameters.gdbVersion),r.loaded)await applySublayerPropertiesToEsriApiLayer(i,r);else{const e=r.load;let a=!1;r.load=async()=>{await e(),a||(a=!0,await applySublayerPropertiesToEsriApiLayer(i,r))}}}e.esriMapImageLayerDefaults={legendEnabled:!0,visible:!0,opacity:1},e.toEsriApiLayer=async function(e){checkArg("layerJson",e).isNotMissing(),checkArg("layerJson.layerType",e.layerType).satisfies((e=>!e||"ArcGISMapServiceLayer"===e),ERR_LAYER_TYPE_MISMATCH);const a=new((await import("@arcgis/core/layers/MapImageLayer")).default);return await r(e,a),a},e.applyToEsriApiLayer=r,e.fromEsriApiMapImageLayer=function(r){checkArg("layer",r).isNotMissing();const a={...fromEsriApiLayerToLayerBase(r,e.esriMapImageLayerDefaults),...fromEsriApiLayerToOperationalLayer(r),layerType:"ArcGISMapServiceLayer",url:r.url};if(r.portalItem&&(a.itemId=r.portalItem.id),r.gdbVersion&&(a.customParameters={...a.customParameters,gdbVersion:r.gdbVersion}),r.sublayers){a.layers=[],a.visibleLayers=[];const e=i=>{i.visible&&a.visibleLayers.push(i.id),a.layers.push(Layer.fromEsriApiSublayer(i,r)),i.sublayers&&i.sublayers.reverse().forEach(e)};r.sublayers.reverse().forEach(e)}return a}}(MapServiceLayer||(MapServiceLayer={}));
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import type EsriPointCloudLayer from "@arcgis/core/layers/PointCloudLayer";
|
|
2
|
+
import { LayerDefinition } from "./LayerDefinition.js";
|
|
2
3
|
import type { OperationalLayerBase } from "./OperationalLayer.js";
|
|
4
|
+
import { PopupInfo } from "./PopupInfo.js";
|
|
3
5
|
export declare namespace PointCloudLayer {
|
|
4
6
|
/**
|
|
5
7
|
* Default values from Esri JavaScript API documentation.
|
|
6
8
|
*/
|
|
7
9
|
const esriPointCloudLayerDefaults: {
|
|
8
10
|
visible: boolean;
|
|
11
|
+
popupEnabled: boolean;
|
|
9
12
|
};
|
|
10
13
|
/**
|
|
11
14
|
* Converts an ArcGIS Portal JSON representation of a point cloud layer to
|
|
@@ -40,10 +43,24 @@ export declare namespace PointCloudLayer {
|
|
|
40
43
|
* {@link https://developers.arcgis.com/web-scene-specification/objects/pointCloudLayer/}.
|
|
41
44
|
*/
|
|
42
45
|
export interface PointCloudLayer extends OperationalLayerBase {
|
|
46
|
+
/**
|
|
47
|
+
* Indicates whether to allow a client to ignore popups defined by the service item.
|
|
48
|
+
*/
|
|
49
|
+
disablePopup?: boolean;
|
|
50
|
+
/**
|
|
51
|
+
* A layerDefinition object defining the attribute schema and drawing
|
|
52
|
+
* information for the layer.
|
|
53
|
+
*/
|
|
54
|
+
layerDefinition?: LayerDefinition;
|
|
43
55
|
/**
|
|
44
56
|
* The type of layer.
|
|
45
57
|
*/
|
|
46
58
|
layerType: "PointCloudLayer";
|
|
59
|
+
/**
|
|
60
|
+
* A PopupInfo object defining the content of pop-up windows when you click
|
|
61
|
+
* or query a feature.
|
|
62
|
+
*/
|
|
63
|
+
popupInfo?: PopupInfo;
|
|
47
64
|
/**
|
|
48
65
|
* URL to the ArcGIS Server Image Service.
|
|
49
66
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{isPointCloudLayer}from"../utilities/_layers.js";import{checkArg}from"../utilities/checkArg.js";import{ERR_LAYER_TYPE_MISMATCH,applyLayerBaseToEsriApiLayer,applyOperationalLayerToEsriApiLayer,fromEsriApiLayerToLayerBase,fromEsriApiLayerToOperationalLayer}from"./_layerHelper.js";export var PointCloudLayer;!function(r){async function e(r,e){checkArg("layerJson",r).isNotMissing(),checkArg("layerJson.layerType",r.layerType).satisfies((r=>!r||"PointCloudLayer"===r),ERR_LAYER_TYPE_MISMATCH),checkArg("layer",e).isNotMissing().satisfies(isPointCloudLayer,ERR_LAYER_TYPE_MISMATCH),applyLayerBaseToEsriApiLayer(r,e),applyOperationalLayerToEsriApiLayer(r,e),r.hasOwnProperty("url")&&(e.url=r.url)}r.esriPointCloudLayerDefaults={visible:!0},r.toEsriApiLayer=async function(r){checkArg("layerJson",r).isNotMissing(),checkArg("layerJson.layerType",r.layerType).satisfies((r=>!r||"PointCloudLayer"===r),ERR_LAYER_TYPE_MISMATCH);const i={};r?.url&&(i.url=r.url);const
|
|
1
|
+
import{isPointCloudLayer}from"../utilities/_layers.js";import{checkArg}from"../utilities/checkArg.js";import{LayerDefinition}from"./LayerDefinition.js";import{PopupInfo}from"./PopupInfo.js";import{ERR_LAYER_TYPE_MISMATCH,applyLayerBaseToEsriApiLayer,applyOperationalLayerToEsriApiLayer,fromEsriApiLayerToLayerBase,fromEsriApiLayerToOperationalLayer}from"./_layerHelper.js";export var PointCloudLayer;!function(r){async function e(r,e){checkArg("layerJson",r).isNotMissing(),checkArg("layerJson.layerType",r.layerType).satisfies((r=>!r||"PointCloudLayer"===r),ERR_LAYER_TYPE_MISMATCH),checkArg("layer",e).isNotMissing().satisfies(isPointCloudLayer,ERR_LAYER_TYPE_MISMATCH),applyLayerBaseToEsriApiLayer(r,e),applyOperationalLayerToEsriApiLayer(r,e),r.hasOwnProperty("url")&&(e.url=r.url),r.hasOwnProperty("layerDefinition")&&await LayerDefinition.applyToEsriApiLayer(r.layerDefinition,e),r.hasOwnProperty("disablePopup")&&(e.popupEnabled=!r.disablePopup),r.hasOwnProperty("popupInfo")&&(e.popupTemplate=PopupInfo.toEsriApiPopupTemplate(r.popupInfo))}r.esriPointCloudLayerDefaults={visible:!0,popupEnabled:!0},r.toEsriApiLayer=async function(r){checkArg("layerJson",r).isNotMissing(),checkArg("layerJson.layerType",r.layerType).satisfies((r=>!r||"PointCloudLayer"===r),ERR_LAYER_TYPE_MISMATCH);const i={};r?.url&&(i.url=r.url);const o=new((await import("@arcgis/core/layers/PointCloudLayer")).default);return await e(r,o),o},r.applyToEsriApiLayer=e,r.fromEsriApiPointCloudLayer=function(e){checkArg("layer",e).isNotMissing();const i={...fromEsriApiLayerToLayerBase(e),...fromEsriApiLayerToOperationalLayer(e),layerType:"PointCloudLayer",layerDefinition:LayerDefinition.fromEsriApiLayer(e,r.esriPointCloudLayerDefaults),url:e.url};return e.popupEnabled!==r.esriPointCloudLayerDefaults.popupEnabled&&(i.disablePopup=!e.popupEnabled),e.popupTemplate&&(i.popupInfo=PopupInfo.fromEsriApiPopupTemplate(e.popupTemplate)),i}}(PointCloudLayer||(PointCloudLayer={}));
|
package/version.d.ts
CHANGED
package/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const version="35.
|
|
1
|
+
export const version="35.4.0";
|