@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.
Files changed (42) hide show
  1. package/data/convert.js +1 -1
  2. package/docs/html/assets/search.js +1 -1
  3. package/docs/html/classes/data_FeatureStream.FeatureStream.html +1 -1
  4. package/docs/html/classes/utilities_asyncIterable.AsyncQueue.html +1 -1
  5. package/docs/html/enums/data_convert.GeometryFormat.html +7 -7
  6. package/docs/html/enums/portal_FeatureLayer.FeatureLayerMode.html +1 -1
  7. package/docs/html/interfaces/data_convert.FromCsvOptions.html +13 -13
  8. package/docs/html/interfaces/data_convert.FromShapefileOptions.html +9 -9
  9. package/docs/html/interfaces/data_convert.FromXLSXOptions.html +12 -12
  10. package/docs/html/interfaces/data_convert.ToCsvOptions.html +13 -13
  11. package/docs/html/interfaces/data_convert.ToShapefileOptions.html +8 -8
  12. package/docs/html/interfaces/data_convert.ToXLSXOptions.html +10 -10
  13. package/docs/html/interfaces/mapping_FeatureLayerExtension.FeatureLayerProperties.html +16 -16
  14. package/docs/html/interfaces/mapping_FeatureLayerExtensionBase.FeatureLayerBaseProperties.html +16 -16
  15. package/docs/html/interfaces/portal_FeatureLayer.FeatureLayer-1.html +16 -16
  16. package/docs/html/interfaces/portal_LayerDefinition.FieldOverride.html +3 -3
  17. package/docs/html/interfaces/portal_LayerDefinition.LayerDefinition-1.html +48 -48
  18. package/docs/html/interfaces/portal_LayerDefinition.LayerDefinitionDefaults.html +8 -8
  19. package/docs/html/interfaces/portal_LayerDefinition.LayerTimeInfo.html +9 -9
  20. package/docs/html/interfaces/portal_LayerDefinition.OrderByClause.html +3 -3
  21. package/docs/html/interfaces/portal_LayerDefinition.TimeInfoExportOptions.html +4 -4
  22. package/docs/html/interfaces/portal_MapServiceLayer.MapServiceLayer-1.html +7 -7
  23. package/docs/html/interfaces/portal_PointCloudLayer.PointCloudLayer-1.html +12 -4
  24. package/docs/html/interfaces/portal_StreamLayer.StreamLayer-1.html +15 -15
  25. package/docs/html/modules/data_convert.html +6 -6
  26. package/docs/html/modules/portal_FeatureLayer.FeatureLayer.html +5 -5
  27. package/docs/html/modules/portal_FeatureLayer.html +1 -1
  28. package/docs/html/modules/portal_LayerDefinition.LayerDefinition.html +3 -3
  29. package/docs/html/modules/portal_LayerDefinition.LayerDefinitionCapabilities.html +6 -6
  30. package/docs/html/modules/portal_LayerDefinition.html +2 -2
  31. package/docs/html/modules/portal_MapServiceLayer.MapServiceLayer.html +1 -1
  32. package/docs/html/modules/portal_PointCloudLayer.PointCloudLayer.html +4 -4
  33. package/docs/html/modules/version.html +1 -1
  34. package/package.json +2 -3
  35. package/portal/FeatureLayer.js +1 -1
  36. package/portal/LayerDefinition.d.ts +2 -1
  37. package/portal/LayerDefinition.js +1 -1
  38. package/portal/MapServiceLayer.js +1 -1
  39. package/portal/PointCloudLayer.d.ts +17 -0
  40. package/portal/PointCloudLayer.js +1 -1
  41. package/version.d.ts +1 -1
  42. 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.3.0",
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.9.1",
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",
@@ -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 a=new((await import("@arcgis/core/layers/PointCloudLayer")).default);return await e(r,a),a},r.applyToEsriApiLayer=e,r.fromEsriApiPointCloudLayer=function(r){return checkArg("layer",r).isNotMissing(),{...fromEsriApiLayerToLayerBase(r),...fromEsriApiLayerToOperationalLayer(r),layerType:"PointCloudLayer",url:r.url}}}(PointCloudLayer||(PointCloudLayer={}));
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
@@ -1,4 +1,4 @@
1
1
  /**
2
2
  * The current version of the Geocortex ArcGIS Extensions API.
3
3
  */
4
- export declare const version = "35.3.0";
4
+ export declare const version = "35.4.0";
package/version.js CHANGED
@@ -1 +1 @@
1
- export const version="35.3.0";
1
+ export const version="35.4.0";