@vertigis/arcgis-extensions 40.1.0 → 40.2.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 (100) hide show
  1. package/data/ArcGISServiceTableExtension.d.ts +1 -0
  2. package/data/ArcGISServiceTableExtension.js +1 -1
  3. package/data/QuerySourceCapabilities.d.ts +4 -0
  4. package/data/_TableExtension.d.ts +5 -0
  5. package/data/_TableExtension.js +1 -1
  6. package/docs/html/assets/search.js +1 -1
  7. package/docs/html/classes/data_ArcGISServiceTableExtension.ArcGISServiceTableExtension.html +13 -1
  8. package/docs/html/classes/data__TableExtension.TableExtension.html +12 -1
  9. package/docs/html/classes/mapping_ArcGISSublayerExtension.ArcGISSublayerExtension.html +13 -1
  10. package/docs/html/classes/mapping_BuildingComponentSublayerExtension.BuildingComponentSublayerExtension.html +13 -1
  11. package/docs/html/classes/mapping_BuildingGroupSublayerExtension.BuildingGroupSublayerExtension.html +18 -6
  12. package/docs/html/classes/mapping_BuildingSceneLayerExtension.BuildingSceneLayerExtension.html +17 -5
  13. package/docs/html/classes/mapping_BuildingSublayerExtension.BuildingSublayerExtension.html +18 -6
  14. package/docs/html/classes/mapping_CSVLayerExtension.CSVLayerExtension.html +17 -5
  15. package/docs/html/classes/mapping_ElevationLayerExtension.ElevationLayerExtension.html +12 -0
  16. package/docs/html/classes/mapping_FeatureCollectionLayerExtension.FeatureCollectionLayerExtension.html +12 -0
  17. package/docs/html/classes/mapping_FeatureLayerExtension.FeatureLayerExtension.html +12 -0
  18. package/docs/html/classes/mapping_FeatureLayerExtensionBase.FeatureLayerExtensionBase.html +12 -0
  19. package/docs/html/classes/mapping_GeoJSONLayerExtension.GeoJSONLayerExtension.html +17 -5
  20. package/docs/html/classes/mapping_GeoRSSLayerExtension.GeoRSSLayerExtension.html +17 -5
  21. package/docs/html/classes/mapping_GraphicsLayerExtension.GraphicsLayerExtension.html +12 -0
  22. package/docs/html/classes/mapping_GroupLayerExtension.GroupLayerExtension.html +12 -0
  23. package/docs/html/classes/mapping_ImageryLayerExtension.ImageryLayerExtension.html +12 -0
  24. package/docs/html/classes/mapping_ImageryTileLayerExtension.ImageryTileLayerExtension.html +12 -0
  25. package/docs/html/classes/mapping_IntegratedMeshLayerExtension.IntegratedMeshLayerExtension.html +12 -0
  26. package/docs/html/classes/mapping_KMLLayerExtension.KMLLayerExtension.html +17 -5
  27. package/docs/html/classes/mapping_KMLSublayerExtension.KMLSublayerExtension.html +18 -6
  28. package/docs/html/classes/mapping_MapImageLayerExtension.MapImageLayerExtension.html +12 -0
  29. package/docs/html/classes/mapping_MapImageSublayerExtension.MapImageSublayerExtension.html +13 -1
  30. package/docs/html/classes/mapping_MapNotesLayerExtension.MapNotesLayerExtension.html +12 -0
  31. package/docs/html/classes/mapping_MapNotesSublayerExtension.MapNotesSublayerExtension.html +23 -11
  32. package/docs/html/classes/mapping_OpenStreetMapLayerExtension.OpenStreetMapLayerExtension.html +12 -0
  33. package/docs/html/classes/mapping_PointCloudLayerExtension.PointCloudLayerExtension.html +12 -0
  34. package/docs/html/classes/mapping_RouteLayerExtension.RouteLayerExtension.html +12 -0
  35. package/docs/html/classes/mapping_SceneLayerExtension.SceneLayerExtension.html +17 -5
  36. package/docs/html/classes/mapping_StreamLayerExtension.StreamLayerExtension.html +17 -5
  37. package/docs/html/classes/mapping_SubtypeGroupLayerExtension.SubtypeGroupLayerExtension.html +12 -0
  38. package/docs/html/classes/mapping_SubtypeSublayerExtension.SubtypeSublayerExtension.html +12 -0
  39. package/docs/html/classes/mapping_TileLayerExtension.TileLayerExtension.html +12 -0
  40. package/docs/html/classes/mapping_TileSublayerExtension.TileSublayerExtension.html +13 -1
  41. package/docs/html/classes/mapping_UnsupportedLayerExtension.UnsupportedLayerExtension.html +12 -0
  42. package/docs/html/classes/mapping_VectorTileLayerExtension.VectorTileLayerExtension.html +12 -0
  43. package/docs/html/classes/mapping_WMSLayerExtension.WMSLayerExtension.html +12 -0
  44. package/docs/html/classes/mapping_WMSSublayerExtension.WMSSublayerExtension.html +13 -1
  45. package/docs/html/classes/mapping_WMTSLayerExtension.WMTSLayerExtension.html +12 -0
  46. package/docs/html/classes/mapping_WMTSSublayerExtension.WMTSSublayerExtension.html +13 -1
  47. package/docs/html/classes/mapping_WebTileLayerExtension.WebTileLayerExtension.html +12 -0
  48. package/docs/html/classes/mapping__LayerExtension.LayerExtension.html +11 -0
  49. package/docs/html/classes/mapping__SublayerExtension.SublayerExtension.html +12 -1
  50. package/docs/html/classes/mapping_support_LayerListSettings.ExtensionBaseLayerListSettings.html +11 -0
  51. package/docs/html/classes/mapping_support_LayerListSettings.LayerListSettings.html +10 -0
  52. package/docs/html/interfaces/data_QuerySourceCapabilities.QuerySourceCapabilities.html +7 -0
  53. package/docs/html/variables/version.version.html +1 -1
  54. package/mapping/ArcGISSublayerExtension.js +1 -1
  55. package/mapping/BuildingComponentSublayerExtension.d.ts +1 -0
  56. package/mapping/BuildingComponentSublayerExtension.js +1 -1
  57. package/mapping/BuildingGroupSublayerExtension.d.ts +5 -0
  58. package/mapping/BuildingGroupSublayerExtension.js +1 -1
  59. package/mapping/BuildingSceneLayerExtension.d.ts +5 -0
  60. package/mapping/BuildingSceneLayerExtension.js +1 -1
  61. package/mapping/BuildingSublayerExtension.d.ts +5 -0
  62. package/mapping/BuildingSublayerExtension.js +1 -1
  63. package/mapping/CSVLayerExtension.d.ts +6 -0
  64. package/mapping/CSVLayerExtension.js +1 -1
  65. package/mapping/FeatureCollectionLayerExtension.js +1 -1
  66. package/mapping/FeatureLayerExtensionBase.d.ts +1 -0
  67. package/mapping/FeatureLayerExtensionBase.js +1 -1
  68. package/mapping/GeoJSONLayerExtension.d.ts +6 -0
  69. package/mapping/GeoJSONLayerExtension.js +1 -1
  70. package/mapping/GeoRSSLayerExtension.d.ts +5 -0
  71. package/mapping/GeoRSSLayerExtension.js +1 -1
  72. package/mapping/GraphicsLayerExtension.js +1 -1
  73. package/mapping/ImageryLayerExtension.d.ts +1 -0
  74. package/mapping/ImageryLayerExtension.js +1 -1
  75. package/mapping/KMLLayerExtension.d.ts +5 -0
  76. package/mapping/KMLLayerExtension.js +1 -1
  77. package/mapping/KMLSublayerExtension.d.ts +5 -0
  78. package/mapping/KMLSublayerExtension.js +1 -1
  79. package/mapping/MapImageSublayerExtension.d.ts +1 -0
  80. package/mapping/MapImageSublayerExtension.js +1 -1
  81. package/mapping/MapNotesLayerExtension.js +1 -1
  82. package/mapping/MapNotesSublayerExtension.d.ts +2 -2
  83. package/mapping/MapNotesSublayerExtension.js +1 -1
  84. package/mapping/RouteLayerExtension.js +1 -1
  85. package/mapping/SceneLayerExtension.d.ts +6 -0
  86. package/mapping/SceneLayerExtension.js +1 -1
  87. package/mapping/StreamLayerExtension.d.ts +6 -0
  88. package/mapping/StreamLayerExtension.js +1 -1
  89. package/mapping/SubtypeGroupLayerExtension.d.ts +1 -0
  90. package/mapping/SubtypeGroupLayerExtension.js +1 -1
  91. package/mapping/_LayerExtension.d.ts +5 -0
  92. package/mapping/_LayerExtension.js +1 -1
  93. package/mapping/_SublayerExtension.d.ts +5 -0
  94. package/mapping/_SublayerExtension.js +1 -1
  95. package/mapping/support/LayerListSettings.d.ts +8 -0
  96. package/mapping/support/LayerListSettings.js +1 -1
  97. package/package.json +3 -2
  98. package/tasks/query/SceneLayerQueryProvider.js +1 -1
  99. package/version.d.ts +1 -1
  100. package/version.js +1 -1
@@ -1 +1 @@
1
- import{__decorate as e}from"tslib";import r from"@arcgis/core/config";import t from"@arcgis/core/core/Collection";import i from"@arcgis/core/geometry/SpatialReference";import a from"@arcgis/core/layers/support/Field";import{InvalidOperationError as s}from"../InvalidOperationError.js";import{Schema as l}from"../data/Schema.js";import{translate as n}from"../locale/language.js";import{KMLLayer as o}from"../portal/KMLLayer.js";import{serializable as p}from"../support/Serializable.js";import{ReadOnlyCollection as y}from"../utilities/ReadOnlyCollection.js";import{isKMLLayer as c}from"../utilities/_layers.js";import{checkArg as m}from"../utilities/checkArg.js";import{toAbsoluteUri as u}from"../utilities/uri.js";import{KMLSublayerExtension as d}from"./KMLSublayerExtension.js";import{LayerExtension as h}from"./_LayerExtension.js";import{SublayerExtensionCollectionBase as g}from"./support/_SublayerExtensionCollection.js";export const DEFAULT_KML_UTILITY="https://utility.arcgis.com/sharing/kml";const b="SublayerExtension collection for KMLLayerExtension is readonly";let _=class extends h{get layer(){return super.layer}get sublayerExtensions(){return super.sublayerExtensions}get supportsSublayers(){return!0}get hasFeatures(){return!0}get _layerView(){return this.layer&&this.mapExtension?._allLayerViews.find((e=>e.layer===this.layer))}get _layerSupportsHideChildren(){return!1}get _graphics(){return this._layerView?this._layerView.allVisiblePoints.concat(this._layerView.allVisiblePolygons).concat(this._layerView.allVisiblePolylines).toArray():[]}_createSublayerExtension(e){return new d(e)}_getProjectWebmapJSON(){const e=super._getProjectWebmapJSON();if(!e||this.dynamicallyAddedLayer)return e;const{visibleFolders:r}=o.fromEsriApiKMLLayer(this.layer);return e.visibleFolders=r,e}async _applyPortalItemProperties(e){if("KML"!==e.type)throw new Error(`Cannot create KML Layer from Portal item that has type: ${e.type}`);const r={layerType:"KML",url:e.url??u("data",`${e.itemUrl}/`)};return o.applyToEsriApiKMLLayer(r,this.layer)}_getSerializableProperties(){const e=super._getSerializableProperties();return{...e,layer:{...this._toPropertyDef(e.layer),default:{layerType:"KML"}}}}_createSchema(){return new x}_isSupportedLayer(e){return c(e)}async _initializeLayer(){r.kmlServiceUrl||(r.kmlServiceUrl=DEFAULT_KML_UTILITY)}_createSublayerExtensionCollection(){return new w(this)}};_=e([p],_);export{_ as KMLLayerExtension};class w extends g{constructor(e){super(e,"layer.sublayers"),this._layerExtension=e}add(e,r){if(m("sublayerX",e).isNotMissing(),e.sublayer&&this._parent.layer.sublayers&&!this._parent.layer.sublayers.includes(e.sublayer))throw new s(b);return super.add(e,r)}removeAt(e){throw new s(b)}reorder(e,r){throw new s(b)}reverse(){throw new s(b)}sort(e){throw new s(b)}splice(e,r,...t){throw new s(b)}_createClone(){return new w(this._layerExtension)}_createSublayerExtension(e){return this._parent._createSublayerExtension(e)}}const f="This schema property is read-only.";let x=class extends l{constructor(){super(),this._fieldCollection=this._createFieldCollection()}get spatialReference(){return i.WGS84}set spatialReference(e){throw new s(f)}get primaryKeyField(){return"id"}set primaryKeyField(e){throw new s(f)}get _fields(){return this._fieldCollection}_createFieldCollection(){const e=new t;return e.add(new a({name:"id",alias:n("gcx.api.mapping.kml-sublayer-extension.schema.id"),editable:!1,type:"oid"})),e.add(new a({name:"name",alias:n("gcx.api.mapping.kml-sublayer-extension.schema.name"),editable:!1,type:"string"})),e.add(new a({name:"description",alias:n("gcx.api.mapping.kml-sublayer-extension.schema.description"),editable:!1,type:"string"})),e.add(new a({name:"visibility",alias:n("gcx.api.mapping.kml-sublayer-extension.schema.visibility"),editable:!1,type:"integer"})),e.add(new a({name:"balloonStyleText",alias:n("gcx.api.mapping.kml-sublayer-extension.schema.balloonStyleText"),editable:!1,type:"string"})),e.add(new a({name:"styleUrl",alias:n("gcx.api.mapping.kml-sublayer-extension.schema.styleUrl"),editable:!1,type:"string"})),new y(e)}};x=e([p],x);
1
+ import{__decorate as e}from"tslib";import r from"@arcgis/core/config";import t from"@arcgis/core/core/Collection";import i from"@arcgis/core/geometry/SpatialReference";import a from"@arcgis/core/layers/support/Field";import{InvalidOperationError as s}from"../InvalidOperationError.js";import{Schema as l}from"../data/Schema.js";import{translate as n}from"../locale/language.js";import{KMLLayer as o}from"../portal/KMLLayer.js";import{serializable as p}from"../support/Serializable.js";import{ReadOnlyCollection as y}from"../utilities/ReadOnlyCollection.js";import{isKMLLayer as c}from"../utilities/_layers.js";import{checkArg as m}from"../utilities/checkArg.js";import{toAbsoluteUri as u}from"../utilities/uri.js";import{KMLSublayerExtension as d}from"./KMLSublayerExtension.js";import{LayerExtension as h}from"./_LayerExtension.js";import{SublayerExtensionCollectionBase as b}from"./support/_SublayerExtensionCollection.js";export const DEFAULT_KML_UTILITY="https://utility.arcgis.com/sharing/kml";const g="SublayerExtension collection for KMLLayerExtension is readonly";let _=class extends h{get layer(){return super.layer}get sublayerExtensions(){return super.sublayerExtensions}get supportsSublayers(){return!0}get hasFeatures(){return!0}get _layerView(){return this.layer&&this.mapExtension?._allLayerViews.find((e=>e.layer===this.layer))}get _layerSupportsHideChildren(){return!1}get _graphics(){return this._layerView?this._layerView.allVisiblePoints.concat(this._layerView.allVisiblePolygons).concat(this._layerView.allVisiblePolylines).toArray():[]}_createSublayerExtension(e){return new d(e)}_getProjectWebmapJSON(){const e=super._getProjectWebmapJSON();if(!e||this.dynamicallyAddedLayer)return e;const{visibleFolders:r}=o.fromEsriApiKMLLayer(this.layer);return e.visibleFolders=r,e}async _applyPortalItemProperties(e){if("KML"!==e.type)throw new Error(`Cannot create KML Layer from Portal item that has type: ${e.type}`);const r={layerType:"KML",url:e.url??u("data",`${e.itemUrl}/`)};return o.applyToEsriApiKMLLayer(r,this.layer)}_capabilities(){return{...super._capabilities(),supportsStandardizedQueries:!0}}_getSerializableProperties(){const e=super._getSerializableProperties();return{...e,layer:{...this._toPropertyDef(e.layer),default:{layerType:"KML"}}}}_createSchema(){return new x}_isSupportedLayer(e){return c(e)}async _initializeLayer(){r.kmlServiceUrl||(r.kmlServiceUrl=DEFAULT_KML_UTILITY)}_createSublayerExtensionCollection(){return new w(this)}};_=e([p],_);export{_ as KMLLayerExtension};class w extends b{constructor(e){super(e,"layer.sublayers"),this._layerExtension=e}add(e,r){if(m("sublayerX",e).isNotMissing(),e.sublayer&&this._parent.layer.sublayers&&!this._parent.layer.sublayers.includes(e.sublayer))throw new s(g);return super.add(e,r)}removeAt(e){throw new s(g)}reorder(e,r){throw new s(g)}reverse(){throw new s(g)}sort(e){throw new s(g)}splice(e,r,...t){throw new s(g)}_createClone(){return new w(this._layerExtension)}_createSublayerExtension(e){return this._parent._createSublayerExtension(e)}}const f="This schema property is read-only.";let x=class extends l{constructor(){super(),this._fieldCollection=this._createFieldCollection()}get spatialReference(){return i.WGS84}set spatialReference(e){throw new s(f)}get primaryKeyField(){return"id"}set primaryKeyField(e){throw new s(f)}get _fields(){return this._fieldCollection}_createFieldCollection(){const e=new t;return e.add(new a({name:"id",alias:n("gcx.api.mapping.kml-sublayer-extension.schema.id"),editable:!1,type:"oid"})),e.add(new a({name:"name",alias:n("gcx.api.mapping.kml-sublayer-extension.schema.name"),editable:!1,type:"string"})),e.add(new a({name:"description",alias:n("gcx.api.mapping.kml-sublayer-extension.schema.description"),editable:!1,type:"string"})),e.add(new a({name:"visibility",alias:n("gcx.api.mapping.kml-sublayer-extension.schema.visibility"),editable:!1,type:"integer"})),e.add(new a({name:"balloonStyleText",alias:n("gcx.api.mapping.kml-sublayer-extension.schema.balloonStyleText"),editable:!1,type:"string"})),e.add(new a({name:"styleUrl",alias:n("gcx.api.mapping.kml-sublayer-extension.schema.styleUrl"),editable:!1,type:"string"})),new y(e)}};x=e([p],x);
@@ -1,3 +1,4 @@
1
+ import type { QuerySourceCapabilities } from "../data/QuerySourceCapabilities.js";
1
2
  import type { InitializableCollection } from "../support/InitializableCollectionProxy.js";
2
3
  import type { SublayerLike } from "../support/esri.js";
3
4
  import type { KMLLayerExtension } from "./KMLLayerExtension.js";
@@ -76,6 +77,10 @@ export declare class KMLSublayerExtension extends SublayerExtension<KMLSublayerE
76
77
  */
77
78
  get canChangeScale(): boolean;
78
79
  constructor(properties?: KMLSublayerExtensionProperties);
80
+ /**
81
+ * @inheritDoc
82
+ */
83
+ protected _capabilities(): QuerySourceCapabilities;
79
84
  /**
80
85
  * @inheritDoc
81
86
  */
@@ -1 +1 @@
1
- var e;import{__decorate as r}from"tslib";import{InvalidOperationError as t}from"../InvalidOperationError.js";import{serializable as s}from"../support/Serializable.js";import{isKMLSublayer as n}from"../utilities/_layers.js";import{checkArg as a}from"../utilities/checkArg.js";import{SublayerExtension as o,SubSublayerExtensionCollection as u}from"./_SublayerExtension.js";const i="KML sublayers cannot be created or configured from JSON. They must be created with an ESRI KMLSublayer object.",l="SublayerExtension collection for KMLLayerExtension is readonly";let y=e=class extends o{get sublayer(){return super.sublayer}get layerExtension(){return super.layerExtension}get sublayerExtensions(){return super.sublayerExtensions}get supportsSublayers(){return!0}get hasFeatures(){return!1}get canChangeScale(){return!1}constructor(e){super(e);const r=e?.sublayer;if(!this.sublayer&&!r?.$ref)throw new t(i)}_isSupportedSublayer(e){return n(e)}_createSublayerExtension(r){return new e(r)}_createSublayer(e){throw new t(i)}async _applySublayerProperties(e,r){}_createSublayerExtensionCollection(){return new b(this)}_serializeSublayer(e){return this._createSublayerRef()}};y=e=r([s],y);export{y as KMLSublayerExtension};class b extends u{get _layerExtension(){return super._layerExtension}add(e,r){if(a("sublayerX",e).isNotMissing(),e.sublayer&&this._parent.sublayer.sublayers&&!this._parent.sublayer.sublayers.includes(e.sublayer))throw new t(l);return super.add(e,r)}removeAt(e){throw new t(l)}reorder(e,r){throw new t(l)}reverse(){throw new t(l)}sort(e){throw new t(l)}splice(e,r,...s){throw new t(l)}_createClone(){return new b(this._parent)}_createSublayerExtension(e){return this._layerExtension._createSublayerExtension(e)}}
1
+ var e;import{__decorate as r}from"tslib";import{InvalidOperationError as t}from"../InvalidOperationError.js";import{serializable as s}from"../support/Serializable.js";import{isKMLSublayer as n}from"../utilities/_layers.js";import{checkArg as a}from"../utilities/checkArg.js";import{SublayerExtension as i,SubSublayerExtensionCollection as o}from"./_SublayerExtension.js";const u="KML sublayers cannot be created or configured from JSON. They must be created with an ESRI KMLSublayer object.",l="SublayerExtension collection for KMLLayerExtension is readonly";let y=e=class extends i{get sublayer(){return super.sublayer}get layerExtension(){return super.layerExtension}get sublayerExtensions(){return super.sublayerExtensions}get supportsSublayers(){return!0}get hasFeatures(){return!1}get canChangeScale(){return!1}constructor(e){super(e);const r=e?.sublayer;if(!this.sublayer&&!r?.$ref)throw new t(u)}_capabilities(){return{...super._capabilities(),supportsStandardizedQueries:!0}}_isSupportedSublayer(e){return n(e)}_createSublayerExtension(r){return new e(r)}_createSublayer(e){throw new t(u)}async _applySublayerProperties(e,r){}_createSublayerExtensionCollection(){return new b(this)}_serializeSublayer(e){return this._createSublayerRef()}};y=e=r([s],y);export{y as KMLSublayerExtension};class b extends o{get _layerExtension(){return super._layerExtension}add(e,r){if(a("sublayerX",e).isNotMissing(),e.sublayer&&this._parent.sublayer.sublayers&&!this._parent.sublayer.sublayers.includes(e.sublayer))throw new t(l);return super.add(e,r)}removeAt(e){throw new t(l)}reorder(e,r){throw new t(l)}reverse(){throw new t(l)}sort(e){throw new t(l)}splice(e,r,...s){throw new t(l)}_createClone(){return new b(this._parent)}_createSublayerExtension(e){return this._layerExtension._createSublayerExtension(e)}}
@@ -48,6 +48,7 @@ export declare class MapImageSublayerExtension extends ArcGISSublayerExtension<M
48
48
  * @inheritDoc
49
49
  */
50
50
  get canChangeLabels(): boolean;
51
+ get canChangeDefinitionExpression(): boolean;
51
52
  protected _onInitialize(): Promise<void>;
52
53
  /**
53
54
  * @inheritDoc
@@ -1 +1 @@
1
- var e;import{__decorate as r}from"tslib";import{serializable as s}from"../support/Serializable.js";import{ArcGISSublayerExtension as a}from"./ArcGISSublayerExtension.js";let t=e=class extends a{get layerExtension(){return super.layerExtension}get sublayerExtensions(){return super.sublayerExtensions}get canChangeOpacity(){const e=this.layerExtension.layer.capabilities;return!(this.sublayerExtensions.length>0)&&e?.exportMap.supportsDynamicLayers}get canChangeRenderer(){const e=this.layerExtension.layer.capabilities;return e?.exportMap.supportsDynamicLayers}get canChangeLabels(){const e=this.layerExtension.layer.capabilities;return e?.exportMap.supportsDynamicLayers}async _switchSublayer(e){e.layer?.capabilities?.exportMap?.supportsDynamicLayers&&(e.labelsVisible=this.sublayer.labelsVisible),await super._switchSublayer(e)}async _onInitialize(){await super._onInitialize(),this.sublayer?.renderer&&"tile"!==this.sublayer?.layer?.type&&this.sublayer?.layer?.capabilities?.exportMap?.supportsDynamicLayers&&(this.sublayer.renderer=this.sublayer.renderer.clone())}_createSublayerExtension(r){return new e(r)}};t=e=r([s],t);export{t as MapImageSublayerExtension};
1
+ var e;import{__decorate as r}from"tslib";import{serializable as s}from"../support/Serializable.js";import{ArcGISSublayerExtension as a}from"./ArcGISSublayerExtension.js";let t=e=class extends a{get layerExtension(){return super.layerExtension}get sublayerExtensions(){return super.sublayerExtensions}get canChangeOpacity(){const e=this.layerExtension.layer.capabilities;return!(this.sublayerExtensions.length>0)&&e?.exportMap.supportsDynamicLayers}get canChangeRenderer(){const e=this.layerExtension.layer.capabilities;return e?.exportMap.supportsDynamicLayers}get canChangeLabels(){const e=this.layerExtension.layer.capabilities;return e?.exportMap.supportsDynamicLayers}get canChangeDefinitionExpression(){return!0}async _switchSublayer(e){e.layer?.capabilities?.exportMap?.supportsDynamicLayers&&(e.labelsVisible=this.sublayer.labelsVisible),await super._switchSublayer(e)}async _onInitialize(){await super._onInitialize(),this.sublayer?.renderer&&"tile"!==this.sublayer?.layer?.type&&this.sublayer?.layer?.capabilities?.exportMap?.supportsDynamicLayers&&(this.sublayer.renderer=this.sublayer.renderer.clone())}_createSublayerExtension(r){return new e(r)}};t=e=r([s],t);export{t as MapImageSublayerExtension};
@@ -1 +1 @@
1
- import{__decorate as e}from"tslib";import{InvalidOperationError as r}from"../InvalidOperationError.js";import{FeatureLayer as t}from"../portal/FeatureLayer.js";import{serializable as a}from"../support/Serializable.js";import{isMapNotesLayer as o}from"../utilities/_layers.js";import{checkArg as s}from"../utilities/checkArg.js";import{MapNotesSublayerExtension as i}from"./MapNotesSublayerExtension.js";import{LayerExtension as n}from"./_LayerExtension.js";import{SublayerExtensionCollectionBase as l}from"./support/_SublayerExtensionCollection.js";const p="SublayerExtension collection for MapNotesLayerExtension is readonly";export const MAP_NOTES_LAYER_TYPE="map-notes-layer";let y=class extends n{get layer(){return super.layer}get supportsSublayers(){return!0}_createSublayerExtension(e){return new i(e)}_getProjectWebmapJSON(){const e=super._getProjectWebmapJSON(),r=t.fromEsriApiMapNotesLayer(this.layer);return e.featureCollection={layers:r.featureCollection.layers.map((e=>({layerDefinition:{name:e.layerDefinition.name}})))},e.visibleLayers=r?.visibleLayers,e.featureCollectionType="notes",e}_applyLayerProperties(e,r){return e.hasOwnProperty("featureCollection")&&s("layerJson",e).satisfies(t.isMapNotesLayerJson),super._applyLayerProperties(e,r)}_getSerializableProperties(){const e=super._getSerializableProperties();return{...e,layer:{...this._toPropertyDef(e.layer),default:{layerType:"ArcGISFeatureLayer",featureCollectionType:"notes"}}}}_isSupportedLayer(e){return o(e)}async _applyPortalItemProperties(e){if("Feature Collection"!==e.type)throw new Error(`Cannot create Map Notes Layer from Portal item that has type: ${e.type}`);const r=await e.fetchData();if(!t.isMapNotesLayerJson({layerType:"ArcGISFeatureLayer",featureCollection:r}))throw new Error("Cannot create Map Notes Layer from Portal item that contains a non map notes layer feature collection");return t.applyToEsriApiLayer({layerType:"ArcGISFeatureLayer",featureCollection:r},this.layer)}_capabilities(){return{supportsAdd:!1,supportsDelete:!1,supportsEditing:!1,supportsQuery:!1,supportsUpdate:!1,supportsAttachmentEditing:!1}}_getSerializableLayerType(){return"map-notes-layer"}_getSerializableRefLayerProperties(){return this.layer?.featureCollectionType?{featureCollectionType:this.layer.featureCollectionType}:{}}_createSublayerExtensionCollection(){return new u(this)}};y=e([a],y);export{y as MapNotesLayerExtension};class u extends l{constructor(e){super(e,"layer.sublayers"),this._layerExtension=e}add(e,t){if(s("sublayerX",e).isNotMissing(),e.sublayer&&this._parent.layer.sublayers&&!this._parent.layer.sublayers.includes(e.sublayer))throw new r(p);return super.add(e,t)}removeAt(e){throw new r(p)}reorder(e,t){throw new r(p)}reverse(){throw new r(p)}sort(e){throw new r(p)}splice(e,t,...a){throw new r(p)}_createClone(){return new u(this._layerExtension)}_createSublayerExtension(e){return this._parent._createSublayerExtension(e)}}
1
+ import{__decorate as e}from"tslib";import{InvalidOperationError as r}from"../InvalidOperationError.js";import{FeatureLayer as t}from"../portal/FeatureLayer.js";import{serializable as a}from"../support/Serializable.js";import{isMapNotesLayer as o}from"../utilities/_layers.js";import{checkArg as s}from"../utilities/checkArg.js";import{MapNotesSublayerExtension as i}from"./MapNotesSublayerExtension.js";import{LayerExtension as n}from"./_LayerExtension.js";import{SublayerExtensionCollectionBase as l}from"./support/_SublayerExtensionCollection.js";const p="SublayerExtension collection for MapNotesLayerExtension is readonly";export const MAP_NOTES_LAYER_TYPE="map-notes-layer";let y=class extends n{get layer(){return super.layer}get supportsSublayers(){return!0}_createSublayerExtension(e){return new i(e)}_getProjectWebmapJSON(){const e=super._getProjectWebmapJSON(),r=t.fromEsriApiMapNotesLayer(this.layer);return e.featureCollection={layers:r.featureCollection.layers.map((e=>({layerDefinition:{name:e.layerDefinition.name}})))},e.visibleLayers=r?.visibleLayers,e.featureCollectionType="notes",e}_applyLayerProperties(e,r){return e.hasOwnProperty("featureCollection")&&s("layerJson",e).satisfies(t.isMapNotesLayerJson),super._applyLayerProperties(e,r)}_getSerializableProperties(){const e=super._getSerializableProperties();return{...e,layer:{...this._toPropertyDef(e.layer),default:{layerType:"ArcGISFeatureLayer",featureCollectionType:"notes"}}}}_isSupportedLayer(e){return o(e)}async _applyPortalItemProperties(e){if("Feature Collection"!==e.type)throw new Error(`Cannot create Map Notes Layer from Portal item that has type: ${e.type}`);const r=await e.fetchData();if(!t.isMapNotesLayerJson({layerType:"ArcGISFeatureLayer",featureCollection:r}))throw new Error("Cannot create Map Notes Layer from Portal item that contains a non map notes layer feature collection");return t.applyToEsriApiLayer({layerType:"ArcGISFeatureLayer",featureCollection:r},this.layer)}_capabilities(){return{supportsAdd:!1,supportsDelete:!1,supportsEditing:!1,supportsQuery:!1,supportsUpdate:!1,supportsAttachmentEditing:!1,supportsStandardizedQueries:!0}}_getSerializableLayerType(){return"map-notes-layer"}_getSerializableRefLayerProperties(){return this.layer?.featureCollectionType?{featureCollectionType:this.layer.featureCollectionType}:{}}_createSublayerExtensionCollection(){return new u(this)}};y=e([a],y);export{y as MapNotesLayerExtension};class u extends l{constructor(e){super(e,"layer.sublayers"),this._layerExtension=e}add(e,t){if(s("sublayerX",e).isNotMissing(),e.sublayer&&this._parent.layer.sublayers&&!this._parent.layer.sublayers.includes(e.sublayer))throw new r(p);return super.add(e,t)}removeAt(e){throw new r(p)}reorder(e,t){throw new r(p)}reverse(){throw new r(p)}sort(e){throw new r(p)}splice(e,t,...a){throw new r(p)}_createClone(){return new u(this._layerExtension)}_createSublayerExtension(e){return this._parent._createSublayerExtension(e)}}
@@ -75,11 +75,11 @@ export declare class MapNotesSublayerExtension extends SublayerExtension<MapNote
75
75
  * @inheritDoc
76
76
  */
77
77
  get hasFeatures(): boolean;
78
+ constructor(properties?: MapNotesSublayerExtensionProperties);
78
79
  /**
79
80
  * @inheritDoc
80
81
  */
81
- get capabilities(): QuerySourceCapabilities;
82
- constructor(properties?: MapNotesSublayerExtensionProperties);
82
+ protected _capabilities(): QuerySourceCapabilities;
83
83
  /**
84
84
  * @inheritDoc
85
85
  */
@@ -1 +1 @@
1
- import{__decorate as e}from"tslib";import{InvalidOperationError as t}from"../InvalidOperationError.js";import{POLYGON_LAYER_TITLE_3X as r,POLYGON_LAYER_TITLE_4X as s,POLYLINE_LAYER_TITLE_3X as i,POLYLINE_LAYER_TITLE_4X as n,POINTS_LAYER_TITLE as a,MULTIPOINTS_LAYER_TITLE as o,TEXT_LAYER_TITLE as l}from"../portal/FeatureLayer.js";import{serializable as u}from"../support/Serializable.js";import{isMapNotesSublayer as y}from"../utilities/_layers.js";import{SublayerExtension as h,SublayerSchema as p,SubSublayerExtensionCollection as c}from"./_SublayerExtension.js";const _="Map Notes sublayers cannot be created or configured from JSON. They must be created with an ESRI MapNotesSublayer object.",b="SublayerExtension collection for MapNotesLayerExtension is readonly";let m=class extends h{get sublayer(){return super.sublayer}get layerExtension(){return super.layerExtension}get sublayerExtensions(){return super.sublayerExtensions}get canChangeScale(){return!1}get canChangeOpacity(){return!1}get canToggleVisibility(){return!0}get hasFeatures(){return!0}get capabilities(){return{...super.capabilities,supportsQuery:!0}}constructor(e){super(e);const r=e?.sublayer;if(!this.sublayer&&!r?.$ref)throw new t(_);const s=this.sublayer?.layer??this.layerExtension?.layer;s&&s._fields&&this.schema&&this.schema.fields&&(this.schema.fields.removeAll(),this.schema.fields.addMany(s._fields))}_createSchema(){return new d(this)}async _onInitialize(){await super._onInitialize(),this.watch("sublayer.layer",(e=>{e._fields&&this.schema&&this.schema.fields&&(this.schema.fields.removeAll(),this.schema.fields.addMany(e._fields))}))}_isSupportedSublayer(e){return y(e)}_createSublayer(e){throw new t(_)}async _applySublayerProperties(e,t){}_createSublayerExtensionCollection(){return new g(this)}_serializeSublayer(e){return this._createSublayerRef()}};m=e([u],m);export{m as MapNotesSublayerExtension};class g extends c{get _layerExtension(){return super._layerExtension}constructor(e,t){super(e,"__GCX_NO_VALUE")}add(e,r){throw new t(b)}removeAt(e){throw new t(b)}reorder(e,r){throw new t(b)}reverse(){throw new t(b)}sort(e){throw new t(b)}splice(e,r,...s){throw new t(b)}_createClone(){return new g(this._parent)}_createSublayerExtension(e){return this._layerExtension._createSublayerExtension(e)}}let d=class extends p{get geometryType(){return this._getSetting("geometryType",this._getDefaultGeometryType())}set geometryType(e){this._setSetting("geometryType",e)}_getDefaultGeometryType(){const e=this._sublayerExtension.sublayer?.graphics.getItemAt(0)?.geometry?.type;return this._sublayerExtension.title===r||this._sublayerExtension.title===s||"polygon"===e?"polygon":this._sublayerExtension.title===i||this._sublayerExtension.title===n||"polyline"===e?"polyline":this._sublayerExtension.title===a||this._sublayerExtension.title===l||"point"===e?"point":this._sublayerExtension.title===o||"multipoint"===e?"multipoint":void 0}};d=e([u],d);export{d as MapNotesSublayerExtensionSchema};
1
+ import{__decorate as e}from"tslib";import{InvalidOperationError as t}from"../InvalidOperationError.js";import{POLYGON_LAYER_TITLE_3X as r,POLYGON_LAYER_TITLE_4X as s,POLYLINE_LAYER_TITLE_3X as i,POLYLINE_LAYER_TITLE_4X as n,POINTS_LAYER_TITLE as a,MULTIPOINTS_LAYER_TITLE as o,TEXT_LAYER_TITLE as l}from"../portal/FeatureLayer.js";import{serializable as u}from"../support/Serializable.js";import{isMapNotesSublayer as y}from"../utilities/_layers.js";import{SublayerExtension as p,SublayerSchema as h,SubSublayerExtensionCollection as c}from"./_SublayerExtension.js";const _="Map Notes sublayers cannot be created or configured from JSON. They must be created with an ESRI MapNotesSublayer object.",b="SublayerExtension collection for MapNotesLayerExtension is readonly";let m=class extends p{get sublayer(){return super.sublayer}get layerExtension(){return super.layerExtension}get sublayerExtensions(){return super.sublayerExtensions}get canChangeScale(){return!1}get canChangeOpacity(){return!1}get canToggleVisibility(){return!0}get hasFeatures(){return!0}constructor(e){super(e);const r=e?.sublayer;if(!this.sublayer&&!r?.$ref)throw new t(_);const s=this.sublayer?.layer??this.layerExtension?.layer;s&&s._fields&&this.schema&&this.schema.fields&&(this.schema.fields.removeAll(),this.schema.fields.addMany(s._fields))}_capabilities(){return{...super._capabilities(),supportsQuery:!0,supportsStandardizedQueries:!0}}_createSchema(){return new g(this)}async _onInitialize(){await super._onInitialize(),this.watch("sublayer.layer",(e=>{e._fields&&this.schema&&this.schema.fields&&(this.schema.fields.removeAll(),this.schema.fields.addMany(e._fields))}))}_isSupportedSublayer(e){return y(e)}_createSublayer(e){throw new t(_)}async _applySublayerProperties(e,t){}_createSublayerExtensionCollection(){return new d(this)}_serializeSublayer(e){return this._createSublayerRef()}};m=e([u],m);export{m as MapNotesSublayerExtension};class d extends c{get _layerExtension(){return super._layerExtension}constructor(e,t){super(e,"__GCX_NO_VALUE")}add(e,r){throw new t(b)}removeAt(e){throw new t(b)}reorder(e,r){throw new t(b)}reverse(){throw new t(b)}sort(e){throw new t(b)}splice(e,r,...s){throw new t(b)}_createClone(){return new d(this._parent)}_createSublayerExtension(e){return this._layerExtension._createSublayerExtension(e)}}let g=class extends h{get geometryType(){return this._getSetting("geometryType",this._getDefaultGeometryType())}set geometryType(e){this._setSetting("geometryType",e)}_getDefaultGeometryType(){const e=this._sublayerExtension.sublayer?.graphics.getItemAt(0)?.geometry?.type;return this._sublayerExtension.title===r||this._sublayerExtension.title===s||"polygon"===e?"polygon":this._sublayerExtension.title===i||this._sublayerExtension.title===n||"polyline"===e?"polyline":this._sublayerExtension.title===a||this._sublayerExtension.title===l||"point"===e?"point":this._sublayerExtension.title===o||"multipoint"===e?"multipoint":void 0}};g=e([u],g);export{g as MapNotesSublayerExtensionSchema};
@@ -1 +1 @@
1
- import{__decorate as e}from"tslib";import{FeatureLayer as r}from"../portal/FeatureLayer.js";import{serializable as t}from"../support/Serializable.js";import{isRouteLayer as a}from"../utilities/_layers.js";import{checkArg as s}from"../utilities/checkArg.js";import{LayerExtension as i,LayerExtensionSchema as o}from"./_LayerExtension.js";export const ROUTE_LAYER_TYPE="route-layer";let l=class extends i{get hasFeatures(){return!0}get layer(){return super.layer}get supportsSublayers(){return!1}constructor(e){super(e),this.layer&&this.layer._fields&&this.schema&&this.schema.fields&&(this.schema.fields.removeAll(),this.schema.fields.addMany(this.layer._fields))}async _onInitialize(){return this.watch("layer",(e=>{e._fields&&this.schema&&this.schema.fields&&(this.schema.fields.removeAll(),this.schema.fields.addMany(e._fields))})),super._onInitialize()}_applyLayerProperties(e,t){return e.hasOwnProperty("featureCollection")&&s("layerJson",e).satisfies(r.isRouteLayerJson),super._applyLayerProperties(e,t)}_getSerializableProperties(){const e=super._getSerializableProperties();return{...e,layer:{...this._toPropertyDef(e.layer),default:{layerType:"ArcGISFeatureLayer",featureCollectionType:"route"}}}}_isSupportedLayer(e){return a(e)}async _applyPortalItemProperties(e){if("Feature Collection"!==e.type)throw new Error(`Cannot create Route Layer from Portal item that has type: ${e.type}`);const t=await e.fetchData();if(!r.isRouteLayerJson({layerType:"ArcGISFeatureLayer",featureCollection:t}))throw new Error("Cannot create Route Layer from Portal item that contains a non route layer feature collection");return r.applyToEsriApiLayer({layerType:"ArcGISFeatureLayer",featureCollection:t},this.layer)}_capabilities(){return{supportsAdd:!1,supportsDelete:!1,supportsEditing:!1,supportsQuery:!0,supportsUpdate:!1,supportsAttachmentEditing:!1}}_getSerializableLayerType(){return"route-layer"}_getSerializableRefLayerProperties(){return this.layer?.featureCollectionType?{featureCollectionType:this.layer.featureCollectionType}:{}}_createSchema(){const e=new p(this);return e.primaryKeyField="globalid",e}};l=e([t],l);export{l as RouteLayerExtension};let p=class extends o{get hasGeometry(){return!0}};p=e([t],p);export{p as RouteLayerExtensionSchema};
1
+ import{__decorate as e}from"tslib";import{FeatureLayer as r}from"../portal/FeatureLayer.js";import{serializable as t}from"../support/Serializable.js";import{isRouteLayer as a}from"../utilities/_layers.js";import{checkArg as s}from"../utilities/checkArg.js";import{LayerExtension as i,LayerExtensionSchema as o}from"./_LayerExtension.js";export const ROUTE_LAYER_TYPE="route-layer";let l=class extends i{get hasFeatures(){return!0}get layer(){return super.layer}get supportsSublayers(){return!1}constructor(e){super(e),this.layer&&this.layer._fields&&this.schema&&this.schema.fields&&(this.schema.fields.removeAll(),this.schema.fields.addMany(this.layer._fields))}async _onInitialize(){return this.watch("layer",(e=>{e._fields&&this.schema&&this.schema.fields&&(this.schema.fields.removeAll(),this.schema.fields.addMany(e._fields))})),super._onInitialize()}_applyLayerProperties(e,t){return e.hasOwnProperty("featureCollection")&&s("layerJson",e).satisfies(r.isRouteLayerJson),super._applyLayerProperties(e,t)}_getSerializableProperties(){const e=super._getSerializableProperties();return{...e,layer:{...this._toPropertyDef(e.layer),default:{layerType:"ArcGISFeatureLayer",featureCollectionType:"route"}}}}_isSupportedLayer(e){return a(e)}async _applyPortalItemProperties(e){if("Feature Collection"!==e.type)throw new Error(`Cannot create Route Layer from Portal item that has type: ${e.type}`);const t=await e.fetchData();if(!r.isRouteLayerJson({layerType:"ArcGISFeatureLayer",featureCollection:t}))throw new Error("Cannot create Route Layer from Portal item that contains a non route layer feature collection");return r.applyToEsriApiLayer({layerType:"ArcGISFeatureLayer",featureCollection:t},this.layer)}_capabilities(){return{supportsAdd:!1,supportsDelete:!1,supportsEditing:!1,supportsQuery:!0,supportsUpdate:!1,supportsAttachmentEditing:!1,supportsStandardizedQueries:!0}}_getSerializableLayerType(){return"route-layer"}_getSerializableRefLayerProperties(){return this.layer?.featureCollectionType?{featureCollectionType:this.layer.featureCollectionType}:{}}_createSchema(){const e=new p(this);return e.primaryKeyField="globalid",e}};l=e([t],l);export{l as RouteLayerExtension};let p=class extends o{get hasGeometry(){return!0}};p=e([t],p);export{p as RouteLayerExtensionSchema};
@@ -3,6 +3,7 @@ import type SceneLayer from "@arcgis/core/layers/SceneLayer";
3
3
  import type PortalItem from "@arcgis/core/portal/PortalItem";
4
4
  import type Renderer from "@arcgis/core/renderers/Renderer";
5
5
  import type { FeatureSettings } from "../data/FeatureSettings.js";
6
+ import type { QuerySourceCapabilities } from "../data/QuerySourceCapabilities.js";
6
7
  import type { Schema } from "../data/Schema.js";
7
8
  import { SceneLayer as PortalSceneLayer } from "../portal/SceneLayer.js";
8
9
  import type { PropertyDefs } from "../support/Serializable.js";
@@ -57,6 +58,11 @@ export declare class SceneLayerExtension extends LayerExtension<SceneLayerExtens
57
58
  * @inheritDoc
58
59
  */
59
60
  get canChangeRenderer(): boolean;
61
+ get canChangeDefinitionExpression(): boolean;
62
+ /**
63
+ * @inheritDoc
64
+ */
65
+ protected _capabilities(): QuerySourceCapabilities;
60
66
  protected _onInitialize(): Promise<void>;
61
67
  /**
62
68
  * @inheritDoc
@@ -1 +1 @@
1
- import{__decorate as e}from"tslib";import{SceneLayer as t}from"../portal/SceneLayer.js";import{serializable as r}from"../support/Serializable.js";import{ReadOnlyCollection as i}from"../utilities/ReadOnlyCollection.js";import{isSceneLayer as a}from"../utilities/_layers.js";import{LayerExtension as s,LayerExtensionSchema as l}from"./_LayerExtension.js";import{ArrayWrappedCollection as n}from"./support/ArrayWrappedCollection.js";import{PopupTemplateFeatureSettings as o}from"./support/PopupTemplateFeatureSettings.js";import{addOutFields as p}from"./support/layers.js";let y=class extends s{get layer(){return super.layer}get enableClientSideData(){return this._enableClientSideData}set enableClientSideData(e){this._enableClientSideData=e,this._updateClientSideFields()}get renderer(){return this.layer?.renderer}get hasFeatures(){return!0}get canChangeLabels(){return!0}get canChangeRenderer(){return!0}get _layerView(){return this.layer&&this.mapExtension?._allLayerViews.find((e=>e.layer===this.layer))}async _onInitialize(){await super._onInitialize(),this._updateClientSideFields(),this._watchHandles.push(this.watch("layer",(()=>{this._updateClientSideFields()}),!0)),this.layer.associatedLayer||this.layer.outFields||(this.layer.outFields=this.layer.fields.map((e=>e.name)),this.layer.outFields&&!this.layer.outFields.includes(this.layer.objectIdField)&&this.layer.outFields.push(this.layer.objectIdField))}_getSerializableProperties(){const e=super._getSerializableProperties();return{...e,layer:{...this._toPropertyDef(e.layer),default:{layerType:"ArcGISSceneServiceLayer"}},enableClientSideData:{serializeModes:["initial"],default:!1}}}_isSupportedLayer(e){return a(e)}_createSchema(){return new d(this)}_createFeatureSettings(){return new o(this)}async _applyPortalItemProperties(e){if("Scene Service"!==e.type)throw new Error(`Cannot create Scene Layer from Portal item that has type: ${e.type}`);if(!e.typeKeywords.includes("3DObject")&&!e.typeKeywords.includes("Point"))throw new Error("Cannot create Scene Layer from Portal item that does not reference a Scene layer");const r={layerType:"ArcGISSceneServiceLayer",url:e.url};return t.applyToEsriApiLayer(r,this.layer)}_updateClientSideFields(){this.layer&&this._enableClientSideData&&p(this.layer,this.featureSettings.outFields)}};y=e([r],y);export{y as SceneLayerExtension};let d=class extends l{constructor(e){super(e),this._fieldsCollection=new i(new n({parent:e,targetProperty:"layer",arrayProperty:"fields"}))}_getPropertyBindings(){return{spatialReference:"spatialReference"}}get _fields(){return this._fieldsCollection}};d=e([r],d);
1
+ import{__decorate as e}from"tslib";import{SceneLayer as t}from"../portal/SceneLayer.js";import{serializable as r}from"../support/Serializable.js";import{ReadOnlyCollection as i}from"../utilities/ReadOnlyCollection.js";import{isSceneLayer as a}from"../utilities/_layers.js";import{LayerExtension as s,LayerExtensionSchema as l}from"./_LayerExtension.js";import{ArrayWrappedCollection as n}from"./support/ArrayWrappedCollection.js";import{PopupTemplateFeatureSettings as o}from"./support/PopupTemplateFeatureSettings.js";import{addOutFields as p}from"./support/layers.js";let y=class extends s{get layer(){return super.layer}get enableClientSideData(){return this._enableClientSideData}set enableClientSideData(e){this._enableClientSideData=e,this._updateClientSideFields()}get renderer(){return this.layer?.renderer}get hasFeatures(){return!0}get canChangeLabels(){return!0}get canChangeRenderer(){return!0}get canChangeDefinitionExpression(){return!0}get _layerView(){return this.layer&&this.mapExtension?._allLayerViews.find((e=>e.layer===this.layer))}_capabilities(){return Object.freeze({supportsAdd:!1,supportsUpdate:!1,supportsDelete:!1,supportsEditing:!1,supportsQuery:!1,supportsAttachmentEditing:!1,supportsStandardizedQueries:!0})}async _onInitialize(){await super._onInitialize(),this._updateClientSideFields(),this._watchHandles.push(this.watch("layer",(()=>{this._updateClientSideFields()}),!0)),this.layer.associatedLayer||this.layer.outFields||(this.layer.outFields=this.layer.fields.map((e=>e.name)),this.layer.outFields&&!this.layer.outFields.includes(this.layer.objectIdField)&&this.layer.outFields.push(this.layer.objectIdField))}_getSerializableProperties(){const e=super._getSerializableProperties();return{...e,layer:{...this._toPropertyDef(e.layer),default:{layerType:"ArcGISSceneServiceLayer"}},enableClientSideData:{serializeModes:["initial"],default:!1}}}_isSupportedLayer(e){return a(e)}_createSchema(){return new d(this)}_createFeatureSettings(){return new o(this)}async _applyPortalItemProperties(e){if("Scene Service"!==e.type)throw new Error(`Cannot create Scene Layer from Portal item that has type: ${e.type}`);if(!e.typeKeywords.includes("3DObject")&&!e.typeKeywords.includes("Point"))throw new Error("Cannot create Scene Layer from Portal item that does not reference a Scene layer");const r={layerType:"ArcGISSceneServiceLayer",url:e.url};return t.applyToEsriApiLayer(r,this.layer)}_updateClientSideFields(){this.layer&&this._enableClientSideData&&p(this.layer,this.featureSettings.outFields)}};y=e([r],y);export{y as SceneLayerExtension};let d=class extends l{constructor(e){super(e),this._fieldsCollection=new i(new n({parent:e,targetProperty:"layer",arrayProperty:"fields"}))}_getPropertyBindings(){return{spatialReference:"spatialReference",geometryType:"geometryType"}}get _fields(){return this._fieldsCollection}};d=e([r],d);
@@ -5,6 +5,7 @@ import type Field from "@arcgis/core/layers/support/Field";
5
5
  import type PortalItem from "@arcgis/core/portal/PortalItem";
6
6
  import type Renderer from "@arcgis/core/renderers/Renderer";
7
7
  import type { FeatureSettings } from "../data/FeatureSettings.js";
8
+ import type { QuerySourceCapabilities } from "../data/QuerySourceCapabilities.js";
8
9
  import type { Schema } from "../data/Schema.js";
9
10
  import { StreamLayer as StreamLayerJson } from "../portal/StreamLayer.js";
10
11
  import type { PropertyDefs } from "../support/Serializable.js";
@@ -44,6 +45,11 @@ export declare class StreamLayerExtension extends LayerExtension<StreamLayerExte
44
45
  * @inheritDoc
45
46
  */
46
47
  get canChangeRenderer(): boolean;
48
+ get canChangeDefinitionExpression(): boolean;
49
+ /**
50
+ * @inheritDoc
51
+ */
52
+ protected _capabilities(): QuerySourceCapabilities;
47
53
  /**
48
54
  * @inheritDoc
49
55
  */
@@ -1 +1 @@
1
- import{__decorate as e}from"tslib";import{Layer as r}from"../portal/Layer.js";import{StreamLayer as t}from"../portal/StreamLayer.js";import{serializable as a}from"../support/Serializable.js";import{ReadOnlyCollection as i}from"../utilities/ReadOnlyCollection.js";import{isStreamLayer as o}from"../utilities/_layers.js";import{LayerExtension as n,LayerExtensionSchema as s}from"./_LayerExtension.js";import{ArrayWrappedCollection as l}from"./support/ArrayWrappedCollection.js";import{PopupTemplateFeatureSettings as y}from"./support/PopupTemplateFeatureSettings.js";let p=class extends n{get layer(){return super.layer}get _layerView(){return this.layer&&this.mapExtension?._allLayerViews.find((e=>e.layer===this.layer))}get hasFeatures(){return!0}get renderer(){return this.layer.renderer}get canChangeLabels(){return!0}get canChangeRenderer(){return!0}_getProjectWebmapJSON(){const e=super._getProjectWebmapJSON();if(!e||this.dynamicallyAddedLayer)return e;const{layerDefinition:r}=t.fromEsriApiStreamLayer(this.layer),{definitionExpression:a,drawingInfo:i}=r;return a&&(e.layerDefinition={...e.layerDefinition,definitionExpression:a}),i&&(e.layerDefinition={...e.layerDefinition,drawingInfo:i}),e}_getSerializableProperties(){const e=super._getSerializableProperties();return{...e,layer:{...this._toPropertyDef(e.layer),default:{layerType:"ArcGISStreamLayer"}}}}_createSchema(){return new m(this)}_isSupportedLayer(e){return o(e)}_createFeatureSettings(){return new c(this)}async _applyPortalItemProperties(e){if("Stream Service"!==e.type)throw new Error(`Cannot create Stream Layer from Portal item that has type: ${e.type}`);const a={layerType:"ArcGISStreamLayer",url:e.url};await t.applyToEsriApiLayer(a,this.layer);const i=await e.fetchData();i&&Object.keys(i).length>0&&await r.applyToEsriApiLayer(i,this.layer)}};p=e([a],p);export{p as StreamLayerExtension};let m=class extends s{constructor(e){super(e),this._fieldCollection=this._createFieldCollection()}get _fields(){return this._fieldCollection}_createFieldCollection(){return new i(new l({parent:this._layerExtension,targetProperty:"layer",arrayProperty:"fields"}))}_getPropertyBindings(){return{primaryKeyField:"objectIdField",geometryType:"geometryType",spatialReference:"spatialReference",displayField:"displayField"}}};m=e([a],m);export{m as StreamLayerSchema};let c=class extends y{get zoomScale(){const e="point"===this._layerExtension.schema.geometryType?this._layerExtension.layer.maxScale:void 0;return this._getSetting("zoomScale",e)}set zoomScale(e){this._setSetting("zoomScale",e)}};c=e([a],c);
1
+ import{__decorate as e}from"tslib";import{Layer as r}from"../portal/Layer.js";import{StreamLayer as t}from"../portal/StreamLayer.js";import{serializable as i}from"../support/Serializable.js";import{ReadOnlyCollection as a}from"../utilities/ReadOnlyCollection.js";import{isStreamLayer as n}from"../utilities/_layers.js";import{LayerExtension as o,LayerExtensionSchema as s}from"./_LayerExtension.js";import{ArrayWrappedCollection as l}from"./support/ArrayWrappedCollection.js";import{PopupTemplateFeatureSettings as p}from"./support/PopupTemplateFeatureSettings.js";let y=class extends o{get layer(){return super.layer}get _layerView(){return this.layer&&this.mapExtension?._allLayerViews.find((e=>e.layer===this.layer))}get hasFeatures(){return!0}get renderer(){return this.layer.renderer}get canChangeLabels(){return!0}get canChangeRenderer(){return!0}get canChangeDefinitionExpression(){return!0}_getProjectWebmapJSON(){const e=super._getProjectWebmapJSON();if(!e||this.dynamicallyAddedLayer)return e;const{layerDefinition:r}=t.fromEsriApiStreamLayer(this.layer),{definitionExpression:i,drawingInfo:a}=r;return i&&(e.layerDefinition={...e.layerDefinition,definitionExpression:i}),a&&(e.layerDefinition={...e.layerDefinition,drawingInfo:a}),e}_capabilities(){return{...super._capabilities(),supportsStandardizedQueries:!0}}_getSerializableProperties(){const e=super._getSerializableProperties();return{...e,layer:{...this._toPropertyDef(e.layer),default:{layerType:"ArcGISStreamLayer"}}}}_createSchema(){return new c(this)}_isSupportedLayer(e){return n(e)}_createFeatureSettings(){return new m(this)}async _applyPortalItemProperties(e){if("Stream Service"!==e.type)throw new Error(`Cannot create Stream Layer from Portal item that has type: ${e.type}`);const i={layerType:"ArcGISStreamLayer",url:e.url};await t.applyToEsriApiLayer(i,this.layer);const a=await e.fetchData();a&&Object.keys(a).length>0&&await r.applyToEsriApiLayer(a,this.layer)}};y=e([i],y);export{y as StreamLayerExtension};let c=class extends s{constructor(e){super(e),this._fieldCollection=this._createFieldCollection()}get _fields(){return this._fieldCollection}_createFieldCollection(){return new a(new l({parent:this._layerExtension,targetProperty:"layer",arrayProperty:"fields"}))}_getPropertyBindings(){return{primaryKeyField:"objectIdField",geometryType:"geometryType",spatialReference:"spatialReference",displayField:"displayField"}}};c=e([i],c);export{c as StreamLayerSchema};let m=class extends p{get zoomScale(){const e="point"===this._layerExtension.schema.geometryType?this._layerExtension.layer.maxScale:void 0;return this._getSetting("zoomScale",e)}set zoomScale(e){this._setSetting("zoomScale",e)}};m=e([i],m);
@@ -82,6 +82,7 @@ export declare class SubtypeGroupLayerExtension extends LayerExtension<SubtypeGr
82
82
  * @inheritDoc
83
83
  */
84
84
  get hasFeatures(): boolean;
85
+ get canChangeDefinitionExpression(): boolean;
85
86
  private _enableClientSideData;
86
87
  /**
87
88
  * @inheritDoc
@@ -1 +1 @@
1
- import{__decorate as e}from"tslib";import t from"@arcgis/core/layers/support/FeatureType.js";import r from"@arcgis/core/rest/support/AttachmentQuery";import{toAttachment as s}from"../data/Attachment.js";import{toGraphic as a}from"../data/Feature.js";import{FeatureSaveError as i}from"../data/FeatureSaveError.js";import{addAttachment as l,deleteAttachments as o,supportsAttachmentEditing as n}from"../data/support/attachments.js";import{SubtypeGroupLayer as p}from"../portal/SubtypeGroupLayer.js";import{SubtypeSublayer as u}from"../portal/SubtypeSublayer.js";import{Template as y}from"../portal/Template.js";import{cancelify as d}from"../support/Cancellable.js";import{serializable as c}from"../support/Serializable.js";import{ArcGISRelationshipCollection as m}from"../support/_ArcGISRelationshipCollection.js";import{executeQuery as h}from"../support/_query.js";import{ReadOnlyCollection as f}from"../utilities/ReadOnlyCollection.js";import{isFeatureLayer as b,isSubtypeGroupLayer as _}from"../utilities/_layers.js";import{parse as g}from"../utilities/number.js";import{caseInsensitiveEquals as w}from"../utilities/string.js";import{SubtypeSublayerExtension as F}from"./SubtypeSublayerExtension.js";import{LayerExtension as E,LayerExtensionReadOnlySchema as S}from"./_LayerExtension.js";import{ArrayWrappedCollection as C}from"./support/ArrayWrappedCollection.js";import{addOutFields as j,getGlobalIdField as A,isGlobalIdUsed as I}from"./support/layers.js";let x=class extends E{get enableClientSideData(){return this._enableClientSideData}set enableClientSideData(e){this._enableClientSideData=e,this._updateClientSideFields()}get layer(){return super.layer}get sublayerExtensions(){return super.sublayerExtensions}get supportsSublayers(){return!0}get sublayersAreReadOnly(){return!1}get hasFeatures(){return!0}get _layerView(){return this.layer&&this.mapExtension?._allLayerViews.find((e=>e.layer===this.layer))}_getProjectWebmapJSON(){const e=super._getProjectWebmapJSON();return!e||this.dynamicallyAddedLayer||(e.layers=this.sublayerExtensions.toArray().map((e=>{const{layerDefinition:t,visibility:r,subtypeCode:s,layerType:a}=u.fromEsriApiSubtypeSublayer(e.sublayer),i={layerType:a,visibility:r,subtypeCode:s};return t?.drawingInfo&&(i.layerDefinition={drawingInfo:t.drawingInfo}),i}))),e}_createRelationships(){return new SubtypeGroupLayerRelationshipCollection(this)}async _onInitialize(){await super._onInitialize(),await this.relationships.initialize();const e=this.layer.sourceJSON?.templates?.map((e=>y.toEsriApiFeatureTemplate(e)));if(this.sublayerExtensions.filter((e=>!!e.sublayer)).forEach((t=>{const r=this.layer.sourceJSON?.types.filter((e=>e.name===t.title))[0]?.templates;r?t.sublayer.templates=r.map((e=>y.toEsriApiFeatureTemplate(e))):1!==e.length||1===this.sublayerExtensions.length||t.sublayer.templates?function(e){return 1===e.sublayer.templates.length&&"New Feature"===e.sublayer.templates[0].name}(t)&&(t.sublayer.templates[0].name=t.sublayer.title):t.sublayer.templates=e.map((e=>{const r=y.toEsriApiFeatureTemplate(y.fromEsriApiFeatureTemplate(e));r.name=t.title;const s=r.prototype?.attributes;return"number"==typeof s?.[this.layer.subtypeField]&&(s[this.layer.subtypeField]=t.sublayer.subtypeCode),r}))})),this.layer.subtypes){this._subtypes=this.layer.subtypes.map((e=>new t({id:e.code,name:e.name,domains:e.domains??{},templates:this.sublayerExtensions.map((e=>e.sublayer)).find((t=>t.subtypeCode===e.code)).templates})));for(const e of this._subtypes)for(const[t,r]of Object.entries(e.domains)){const e=this.layer.fields.find((e=>w(e.name,t)));e&&!e.domain&&(e.domain=r)}}}async _postInitialize(){await super._postInitialize(),this._updateClientSideFields(),this._watchHandles.push(this.watch("layer",(()=>{this._updateClientSideFields()}),!0))}_capabilities(){const e=n(this.layer);return this.layer?.capabilities?.operations?{...this.layer.capabilities.operations,supportsAttachmentEditing:e}:{...super._capabilities(),supportsAttachmentEditing:e}}_createSublayerExtension(e){return new F(e)}_getSerializableProperties(){const e=super._getSerializableProperties();return{...e,layer:{...this._toPropertyDef(e.layer),default:{layerType:"SubtypeGroupLayer"}},enableClientSideData:{serializeModes:["initial"],default:!1},attachmentTypes:["initial"]}}_isSupportedLayer(e){return _(e)}_createSchema(){return new R(this)}async _getAttachments(e){if(!this.layer?.capabilities?.data?.supportsAttachment)return[];const t=+e.primaryKey,a=new r({objectIds:[t]}),i=await this.layer.queryAttachments(a);return i?.[t]?.length?i[t].map((e=>s(e,e.url))):[]}async _addAttachment(e,t){return l(e,this.layer,t,{attachmentTypes:this.attachmentTypes})}async _deleteAttachments(e,t){return o(e,this.layer,t)}async _applyPortalItemProperties(e){if("Feature Service"!==e.type)throw new Error(`Cannot create SubtypeGroupLayer from Portal item that has type: ${e.type}`);const t={layerType:"SubtypeGroupLayer"};let{url:r}=e;r.match(".*MapServer/\\d{1,}/?$")||r.match(".*FeatureServer/\\d{1,}/?$")||(r=`${r}/0`),t.url=r,await p.applyToEsriApiLayer(t,this.layer);const s=await e.fetchData();s&&await p.applyToEsriApiLayer(s,this.layer)}_getFeatures(e,t){if(!this.layer)return super._getFeatures(e,t);const r=this.layer.createQuery();return r.objectIds=e.map((e=>g(e))),r.where=void 0,r.outFields=t.outFields,r.returnGeometry=t.returnGeometry,h(r,this,this.layer,t.cancelToken)}async _addFeatures(e,t){const r=Array.from(e);if(0===r.length||!this.layer)return;const s=await this._applyEdits({addFeatures:r.map(a)},t);if(!s.addFeatureResults||s.addFeatureResults.length!==r.length)throw new i("Received malformed response from server while saving feature(s).");let l;if(s.addFeatureResults.forEach(((e,t)=>{const{objectId:s,globalId:a,error:o}=e,n=r[t];if(o){l=l||new i("Errors encountered when adding features.");const{title:r}=n;l.errors.set(`${r}-${t}`,new Error(`Failed to add feature '${r}'. ${e.error.name} : ${e.error.message}`))}else{const{primaryKeyField:e}=n.schema;n.attributes.set(e,s);const t=A(this.layer);t&&a&&n.attributes.set(t,a)}})),l)throw l}async _updateFeatures(e,t){const r=Array.from(e);if(0===r.length)return;const s=await this._applyEdits({updateFeatures:Array.from(e).map(a)},t);if(!s.updateFeatureResults||s.updateFeatureResults.length!==r.length)throw new i("Received malformed response from server while saving feature(s).");let l;if(s.updateFeatureResults.forEach(((e,t)=>{if(e.error){l=l||new i("Errors encountered when updating features.");const{primaryKey:s}=r[t];l.errors.set(s,new Error(`Failed to update feature with id ${s}. ${e.error.name} : ${e.error.message}`))}})),l)throw l}async _deleteFeatures(e,t){if(0===e.length)return;const r=await this._applyEdits({deleteFeatures:e.map((e=>({objectId:e})))},t);if(!r.deleteFeatureResults)throw new i("Received malformed response from server while saving feature(s).");let s;if(r.deleteFeatureResults.forEach(((t,r)=>{if(t.error){s=s||new i("Errors encountered when deleting features.");const a=e[r];s.errors.set(a,new Error(`Failed to delete feature with id ${a}. ${t.error.name} : ${t.error.message}`))}})),s)throw s}async _applyEdits(e,t={}){const r=I(this.layer,e),s=this.layer.applyEdits(e,{globalIdUsed:r}),a=await d(s,t.cancelToken);if(!a)throw new i("Received malformed response from server while saving feature(s).");return a}_updateClientSideFields(){this.layer&&this._enableClientSideData&&(j(this.layer,this.featureSettings.outFields),this.allSublayerExtensions.forEach((e=>j(this.layer,e.featureSettings.outFields))))}};x=e([c],x);export{x as SubtypeGroupLayerExtension};let R=class extends S{constructor(e){super(e),this._fieldCollection=this._createFieldCollection(),this._typesCollection=this._createTypesCollection()}get types(){return this._typesCollection}get _types(){return this._typesCollection}get _fields(){return this._fieldCollection}_createFieldCollection(){return new f(new C({parent:this._layerExtension,targetProperty:"layer",arrayProperty:"fields"}))}_createTypesCollection(){return new f(new C({parent:this._layerExtension,arrayProperty:"_subtypes"}))}_getPropertyBindings(){return{primaryKeyField:"objectIdField",geometryType:"geometryType",spatialReference:"spatialReference",displayField:"displayField",typeIdField:"subtypeField"}}};R=e([c],R);export{R as SubtypeGroupLayerSchema};export class SubtypeGroupLayerRelationshipCollection extends m{get _sourceUrl(){const e=this._source.layer;if(e)return`${e.url}/${e.layerId}`}get _sourceLayerId(){const e=this._source.layer;return e?.layerId}_findRelatedSource(e){if(!this._source.mapExtension||!this._source.layer||!this._sourceUrl)return;const t=this._sourceUrl.slice(0,this._sourceUrl.length-`${this._sourceLayerId}`.length-1),r=this._source.mapExtension.allLayerExtensions.initializedItems.find((r=>(b(r.layer)||_(r.layer))&&r.layer.url===t&&r.layer.layerId===e));return r||this._source.mapExtension.tableExtensions.initializedItems.find((r=>b(r.table)&&r.table.url===t&&r.table.layerId===e))}}
1
+ import{__decorate as e}from"tslib";import t from"@arcgis/core/layers/support/FeatureType.js";import r from"@arcgis/core/rest/support/AttachmentQuery";import{toAttachment as s}from"../data/Attachment.js";import{toGraphic as a}from"../data/Feature.js";import{FeatureSaveError as i}from"../data/FeatureSaveError.js";import{addAttachment as l,deleteAttachments as o,supportsAttachmentEditing as n}from"../data/support/attachments.js";import{SubtypeGroupLayer as p}from"../portal/SubtypeGroupLayer.js";import{SubtypeSublayer as u}from"../portal/SubtypeSublayer.js";import{Template as y}from"../portal/Template.js";import{cancelify as d}from"../support/Cancellable.js";import{serializable as c}from"../support/Serializable.js";import{ArcGISRelationshipCollection as m}from"../support/_ArcGISRelationshipCollection.js";import{executeQuery as h}from"../support/_query.js";import{ReadOnlyCollection as f}from"../utilities/ReadOnlyCollection.js";import{isFeatureLayer as b,isSubtypeGroupLayer as _}from"../utilities/_layers.js";import{parse as g}from"../utilities/number.js";import{caseInsensitiveEquals as w}from"../utilities/string.js";import{SubtypeSublayerExtension as F}from"./SubtypeSublayerExtension.js";import{LayerExtension as E,LayerExtensionReadOnlySchema as S}from"./_LayerExtension.js";import{ArrayWrappedCollection as C}from"./support/ArrayWrappedCollection.js";import{addOutFields as j,getGlobalIdField as x,isGlobalIdUsed as A}from"./support/layers.js";let I=class extends E{get enableClientSideData(){return this._enableClientSideData}set enableClientSideData(e){this._enableClientSideData=e,this._updateClientSideFields()}get layer(){return super.layer}get sublayerExtensions(){return super.sublayerExtensions}get supportsSublayers(){return!0}get sublayersAreReadOnly(){return!1}get hasFeatures(){return!0}get canChangeDefinitionExpression(){return!0}get _layerView(){return this.layer&&this.mapExtension?._allLayerViews.find((e=>e.layer===this.layer))}_getProjectWebmapJSON(){const e=super._getProjectWebmapJSON();return!e||this.dynamicallyAddedLayer||(e.layers=this.sublayerExtensions.toArray().map((e=>{const{layerDefinition:t,visibility:r,subtypeCode:s,layerType:a}=u.fromEsriApiSubtypeSublayer(e.sublayer),i={layerType:a,visibility:r,subtypeCode:s};return t?.drawingInfo&&(i.layerDefinition={drawingInfo:t.drawingInfo}),i}))),e}_createRelationships(){return new SubtypeGroupLayerRelationshipCollection(this)}async _onInitialize(){await super._onInitialize(),await this.relationships.initialize();const e=this.layer.sourceJSON?.templates?.map((e=>y.toEsriApiFeatureTemplate(e)));if(this.sublayerExtensions.filter((e=>!!e.sublayer)).forEach((t=>{const r=this.layer.sourceJSON?.types.filter((e=>e.name===t.title))[0]?.templates;r?t.sublayer.templates=r.map((e=>y.toEsriApiFeatureTemplate(e))):1!==e.length||1===this.sublayerExtensions.length||t.sublayer.templates?function(e){return 1===e.sublayer.templates.length&&"New Feature"===e.sublayer.templates[0].name}(t)&&(t.sublayer.templates[0].name=t.sublayer.title):t.sublayer.templates=e.map((e=>{const r=y.toEsriApiFeatureTemplate(y.fromEsriApiFeatureTemplate(e));r.name=t.title;const s=r.prototype?.attributes;return"number"==typeof s?.[this.layer.subtypeField]&&(s[this.layer.subtypeField]=t.sublayer.subtypeCode),r}))})),this.layer.subtypes){this._subtypes=this.layer.subtypes.map((e=>new t({id:e.code,name:e.name,domains:e.domains??{},templates:this.sublayerExtensions.map((e=>e.sublayer)).find((t=>t.subtypeCode===e.code)).templates})));for(const e of this._subtypes)for(const[t,r]of Object.entries(e.domains)){const e=this.layer.fields.find((e=>w(e.name,t)));e&&!e.domain&&(e.domain=r)}}}async _postInitialize(){await super._postInitialize(),this._updateClientSideFields(),this._watchHandles.push(this.watch("layer",(()=>{this._updateClientSideFields()}),!0))}_capabilities(){const e=n(this.layer);return this.layer?.capabilities?.operations?{...this.layer.capabilities.operations,supportsAttachmentEditing:e,supportsStandardizedQueries:this.layer.capabilities?.query?.supportsStandardizedQueriesOnly}:{...super._capabilities(),supportsAttachmentEditing:e}}_createSublayerExtension(e){return new F(e)}_getSerializableProperties(){const e=super._getSerializableProperties();return{...e,layer:{...this._toPropertyDef(e.layer),default:{layerType:"SubtypeGroupLayer"}},enableClientSideData:{serializeModes:["initial"],default:!1},attachmentTypes:["initial"]}}_isSupportedLayer(e){return _(e)}_createSchema(){return new R(this)}async _getAttachments(e){if(!this.layer?.capabilities?.data?.supportsAttachment)return[];const t=+e.primaryKey,a=new r({objectIds:[t]}),i=await this.layer.queryAttachments(a);return i?.[t]?.length?i[t].map((e=>s(e,e.url))):[]}async _addAttachment(e,t){return l(e,this.layer,t,{attachmentTypes:this.attachmentTypes})}async _deleteAttachments(e,t){return o(e,this.layer,t)}async _applyPortalItemProperties(e){if("Feature Service"!==e.type)throw new Error(`Cannot create SubtypeGroupLayer from Portal item that has type: ${e.type}`);const t={layerType:"SubtypeGroupLayer"};let{url:r}=e;r.match(".*MapServer/\\d{1,}/?$")||r.match(".*FeatureServer/\\d{1,}/?$")||(r=`${r}/0`),t.url=r,await p.applyToEsriApiLayer(t,this.layer);const s=await e.fetchData();s&&await p.applyToEsriApiLayer(s,this.layer)}_getFeatures(e,t){if(!this.layer)return super._getFeatures(e,t);const r=this.layer.createQuery();return r.objectIds=e.map((e=>g(e))),r.where=void 0,r.outFields=t.outFields,r.returnGeometry=t.returnGeometry,h(r,this,this.layer,t.cancelToken)}async _addFeatures(e,t){const r=Array.from(e);if(0===r.length||!this.layer)return;const s=await this._applyEdits({addFeatures:r.map(a)},t);if(!s.addFeatureResults||s.addFeatureResults.length!==r.length)throw new i("Received malformed response from server while saving feature(s).");let l;if(s.addFeatureResults.forEach(((e,t)=>{const{objectId:s,globalId:a,error:o}=e,n=r[t];if(o){l=l||new i("Errors encountered when adding features.");const{title:r}=n;l.errors.set(`${r}-${t}`,new Error(`Failed to add feature '${r}'. ${e.error.name} : ${e.error.message}`))}else{const{primaryKeyField:e}=n.schema;n.attributes.set(e,s);const t=x(this.layer);t&&a&&n.attributes.set(t,a)}})),l)throw l}async _updateFeatures(e,t){const r=Array.from(e);if(0===r.length)return;const s=await this._applyEdits({updateFeatures:Array.from(e).map(a)},t);if(!s.updateFeatureResults||s.updateFeatureResults.length!==r.length)throw new i("Received malformed response from server while saving feature(s).");let l;if(s.updateFeatureResults.forEach(((e,t)=>{if(e.error){l=l||new i("Errors encountered when updating features.");const{primaryKey:s}=r[t];l.errors.set(s,new Error(`Failed to update feature with id ${s}. ${e.error.name} : ${e.error.message}`))}})),l)throw l}async _deleteFeatures(e,t){if(0===e.length)return;const r=await this._applyEdits({deleteFeatures:e.map((e=>({objectId:e})))},t);if(!r.deleteFeatureResults)throw new i("Received malformed response from server while saving feature(s).");let s;if(r.deleteFeatureResults.forEach(((t,r)=>{if(t.error){s=s||new i("Errors encountered when deleting features.");const a=e[r];s.errors.set(a,new Error(`Failed to delete feature with id ${a}. ${t.error.name} : ${t.error.message}`))}})),s)throw s}async _applyEdits(e,t={}){const r=A(this.layer,e),s=this.layer.applyEdits(e,{globalIdUsed:r}),a=await d(s,t.cancelToken);if(!a)throw new i("Received malformed response from server while saving feature(s).");return a}_updateClientSideFields(){this.layer&&this._enableClientSideData&&(j(this.layer,this.featureSettings.outFields),this.allSublayerExtensions.forEach((e=>j(this.layer,e.featureSettings.outFields))))}};I=e([c],I);export{I as SubtypeGroupLayerExtension};let R=class extends S{constructor(e){super(e),this._fieldCollection=this._createFieldCollection(),this._typesCollection=this._createTypesCollection()}get types(){return this._typesCollection}get _types(){return this._typesCollection}get _fields(){return this._fieldCollection}_createFieldCollection(){return new f(new C({parent:this._layerExtension,targetProperty:"layer",arrayProperty:"fields"}))}_createTypesCollection(){return new f(new C({parent:this._layerExtension,arrayProperty:"_subtypes"}))}_getPropertyBindings(){return{primaryKeyField:"objectIdField",geometryType:"geometryType",spatialReference:"spatialReference",displayField:"displayField",typeIdField:"subtypeField"}}};R=e([c],R);export{R as SubtypeGroupLayerSchema};export class SubtypeGroupLayerRelationshipCollection extends m{get _sourceUrl(){const e=this._source.layer;if(e)return`${e.url}/${e.layerId}`}get _sourceLayerId(){const e=this._source.layer;return e?.layerId}_findRelatedSource(e){if(!this._source.mapExtension||!this._source.layer||!this._sourceUrl)return;const t=this._sourceUrl.slice(0,this._sourceUrl.length-`${this._sourceLayerId}`.length-1),r=this._source.mapExtension.allLayerExtensions.initializedItems.find((r=>(b(r.layer)||_(r.layer))&&r.layer.url===t&&r.layer.layerId===e));return r||this._source.mapExtension.tableExtensions.initializedItems.find((r=>b(r.table)&&r.table.url===t&&r.table.layerId===e))}}
@@ -203,6 +203,11 @@ export declare abstract class LayerExtension<TProperties extends LayerExtensionP
203
203
  * renderer.
204
204
  */
205
205
  get canChangeRenderer(): boolean;
206
+ /**
207
+ * Determines whether the type of layer being extended supports changing its
208
+ * definition expression.
209
+ */
210
+ get canChangeDefinitionExpression(): boolean;
206
211
  /**
207
212
  * Indicates the initial layer visibility.
208
213
  */
@@ -1 +1 @@
1
- import{__decorate as e}from"tslib";import t from"@arcgis/core/core/Collection";import{ArgumentError as i}from"../ArgumentError.js";import{InvalidOperationError as s}from"../InvalidOperationError.js";import{ItemType as r}from"../ItemType.js";import{FeatureSourceBase as a}from"../data/FeatureSourceBase.js";import{Schema as n}from"../data/Schema.js";import{LayerBase as o}from"../portal/LayerBase.js";import{ERR_LAYER_TYPE_MISMATCH as l}from"../portal/_layerHelper.js";import{DefaultArcGISRequestHelper as y}from"../support/ArcGISRequestHelper.js";import{ReadOnlyInitializableCollection as h}from"../support/ReadOnlyInitializableCollection.js";import{serializable as p}from"../support/Serializable.js";import{isLayer as d}from"../utilities/_layers.js";import{checkArg as u}from"../utilities/checkArg.js";import{compare as f}from"../utilities/collection.js";import{load as c}from"../utilities/esri.js";import{isGroupLayerExtension as _}from"../utilities/extensions.js";import{hasMmapLayer as g}from"../utilities/layers.js";import{getLogger as m}from"../utilities/log.js";import{deepClone as b}from"../utilities/object.js";import{toPortalItem as S}from"../utilities/portal.js";import{onCollectionPropertyChange as L,watchEach as E}from"../utilities/watch.js";import{_assignSublayerExtensions as x}from"./_SublayerExtension.js";import{ExtensionBaseLayerListSettings as w,fromLayerListMode as v}from"./support/LayerListSettings.js";import{SublayerExtensionCollectionBase as M}from"./support/_SublayerExtensionCollection.js";const P="Invalid type of layer for this type of layer extension.",I="This type of layer does not have features.",C="This type of layer cannot have sublayers.",A=Object.freeze({supportsAdd:!1,supportsUpdate:!1,supportsDelete:!1,supportsEditing:!1,supportsQuery:!1,supportsAttachmentEditing:!1});export class LayerExtension extends a{get layer(){return this._layer}get mapExtension(){return this._mapExtension}get basemapExtension(){return this._basemapExtension}get groundExtension(){return this._groundExtension}get parentLayerExtension(){return this._parentLayerExtension}get hasFeatures(){return!1}get capabilities(){return this._capabilities()}get renderer(){}get visibilityMode(){return this._visibilityMode}set visibilityMode(e){this._visibilityMode=e,"exclusive"===e&&this._ensureAtMostOneChildSublayerVisible()}get sublayerExtensions(){return this._sublayerExtensions}get requestHelper(){return this._requestHelper||(this._requestHelper=new y),this._requestHelper}set requestHelper(e){this._requestHelper=e}get title(){return this.layer?.title??this._deferredLayerProperties?.title??("string"==typeof this._deferredLayerProperties?.$ref?this._deferredLayerProperties?.$ref:this._deferredLayerProperties?.$ref?.title??this._deferredLayerProperties?.$ref?.id)??"Layer"}get supportsSublayers(){return!1}get effectiveMinScale(){return this.layer&&this.layer.minScale||0}get effectiveMaxScale(){return this.layer&&this.layer.maxScale||0}get isEffectivelyVisible(){const e=!!this.layer&&this.layer.visible;return this.parentLayerExtension?this.parentLayerExtension.isEffectivelyVisible&&e:e}get effectiveFullExtent(){return this.layer?this.layer.fullExtent:void 0}get canChangeScale(){return!0}get canChangeOpacity(){return!0}get canChangeLabels(){return!1}get canChangeRenderer(){return!1}get initialVisibility(){return this._initialVisibility??this.layer?.visible??!1}get _layerSupportsHideChildren(){return this.supportsSublayers}get _sublayers(){if(this.supportsSublayers)return this.layer?this.layer.sublayers:void 0}get dynamicallyAddedLayer(){return this._dynamicallyAddedLayer}set dynamicallyAddedLayer(e){this._dynamicallyAddedLayer=e}get sublayersAreReadOnly(){return!0}constructor(e){super(e),this._itemType=r.LAYER_EXTENSION,this._watchHandles=[],this._dynamicallyAddedLayer=!1,this._visibilityMode="independent",this._onSublayerAddedPostInitialize=async e=>{try{await e.initialize()}catch(t){R().error({message:`Error occurred while initializing sublayer extension for sublayer '${e.title??e.sublayer.id??e.id}'.`,error:t})}},this._onVisibleChanged=e=>{if("inherited"===this.visibilityMode&&this.supportsSublayers&&this._sublayers)for(const t of this._sublayers.toArray())t.visible=e;this.notifyChange("isEffectivelyVisible")},this._onSublayersSublayerVisibleChanged=(e,t,i,s)=>{e&&"exclusive"===this.visibilityMode&&this._ensureAChildSublayerVisible(s)},this._onSublayersChange=e=>{e.added?.length&&"exclusive"===this.visibilityMode&&this._ensureAChildSublayerVisible(e.added[e.added.length-1])};const t={...this.getDefaults(),...e};u("properties.layer",t.layer).isNotMissing();const{layer:i}=t;let s;if(i?.hasOwnProperty("listMode")&&(s=v(i.listMode)),this.layerListSettings=this._createLayerListSettings({...s,...t.layerListSettings}),d(i))u("properties.layer",i).satisfies((e=>this._isSupportedLayer(e)),P),this._setLayer(i);else if(i){if(i.$portalItem){const e=i.$portalItem;this._portalItem=S(e)}this._deferredLayerProperties=i}this._sublayerExtensions=this._createSublayerExtensionCollection(),this.allSublayerExtensions=new j(this),this.watch("parentLayerExtension.isEffectivelyVisible",(()=>this.notifyChange("isEffectivelyVisible"))),this.watch("layer.sublayers",(()=>this.notifyChange("_sublayers")))}static create(e){if(!LayerExtension.factory)throw new s("Cannot create layer extension: no layer extension factory has been registered.");return LayerExtension.factory.create(e)}static async fromPortalItem(e,t){u("portalItemLike",e).isNotMissing();const s=t??{};u("layerExtensionProperties.layer",s.layer).satisfies((e=>!d(e)));const r={...s.layer};u("layerExtensionProperties.layer.$ref",r.$ref).satisfies((e=>null==e));const a=new y,n=S(e);let o;await c(n);const l=n.typeKeywords??"";if("Map Service"===n.type)o=l.includes("Tiled")||l.includes("Hosted Service")?"ArcGISTiledMapServiceLayer":"ArcGISMapServiceLayer";else if("Feature Service"===n.type)o="ArcGISFeatureLayer";else if("Image Service"===n.type){const e=await LayerExtension._getLayerData(n.url,a);e.cacheType?"Map"===e.cacheType?o="ArcGISTiledImageServiceLayer":("Elevation"===e.cacheType||l.includes("Elevation 3D Layer"))&&(o="ArcGISTiledElevationServiceLayer"):o=e.singleFusedMapCache||e.tileInfo||l.includes("Hosted Service")?"ArcGISTiledImageServiceLayer":"ArcGISImageServiceLayer"}else if("CSV"===n.type)o="CSV";else if("KML"===n.type)o="KML";else if("Scene Service"===n.type)l.includes("3DObject")||l.includes("Point")?o="ArcGISSceneServiceLayer":l.includes("IntegratedMesh")?o="IntegratedMeshLayer":l.includes("PointCloud")?o="PointCloudLayer":l.includes("Building")&&(o="BuildingSceneLayer");else if("Stream Service"===n.type)o="ArcGISStreamLayer";else if("Vector Tile Service"===n.type)o="VectorTileLayer";else if("Feature Collection"===n.type){o="ArcGISFeatureLayer";const e=await n.fetchData();r.featureCollection=e}else if("WMTS"===n.type){o="WebTiledLayer";const e=await n.fetchData();Object.assign(r,e)}else if("WMS"===n.type){o="WMS";const e=await n.fetchData();Object.assign(r,e)}if(!o)throw new i("portalItem","Could not determine correct type of LayerExtension to create from portal item");if(r.layerType&&r.layerType!==o)throw new i("layerExtensionProperties.layer.layerType","Layer type defined in layer properties does not match layer type from portal item");return r.layerType=o,r.$portalItem=n,s.layer=r,LayerExtension.create(s)}static _matchesRef(e,t){if(!e||!t)return!1;const i=t.$ref;return"string"==typeof i?e.id===i||e.title===i:!!i&&(e.id===i.id||e.title===i.title&&!i.path)}static async _getLayerData(e,t){const i=await t.request(e,{query:{f:"json"}});if(!i?.data)throw new Error(`Response to request for url ${e} was invalid.`);return i.data}getFeatures(e,t){if(!this.hasFeatures)throw new s(I);return super.getFeatures(e,t)}getFullExtent(){return this.effectiveFullExtent}async addFeatures(e,t){if(u("features",e).isNotMissing(),!this.hasFeatures)throw new s(I);await super.addFeatures(e,t)}async updateFeatures(e,t){if(u("features",e).isNotMissing(),!this.hasFeatures)throw new s(I);await super.updateFeatures(e,t)}async deleteFeatures(e,t){if(u("features",e).isNotMissing(),!this.hasFeatures)throw new s(I);await super.deleteFeatures(e,t)}async _createBackingLayer(){this._portalItem||this.layer||this._deferredLayerProperties?.$ref?!this.layer&&this._portalItem&&this._setLayer(await this._createLayer(this.getDefaults().layer)):(this._setLayer(await this._createLayer(this._deferredLayerProperties)),u("properties.layer",this._layer).satisfies((e=>this._isSupportedLayer(e)),P),this._deferredLayerProperties=void 0)}_setMapExtension(e){const t=this.mapExtension;this._mapExtension=e,t&&this.featureSettings.formatSettings.parent===t.formatSettings&&(this.featureSettings.formatSettings.parent=void 0),e&&(this.featureSettings.formatSettings.parent||(this.featureSettings.formatSettings.parent=e.formatSettings)),this._resolveLayer(),this.notifyChange("mapExtension")}_setBasemapExtension(e){this._basemapExtension=e,this._resolveLayer(),e&&(this.taskSettings.parent=e.taskSettings),this.notifyChange("basemapExtension")}_setGroundExtension(e){this._groundExtension=e,this._resolveLayer(),e&&(this.taskSettings.parent=e.taskSettings),this.notifyChange("groundExtension")}_setParentLayerExtension(e){const t=this._parentLayerExtension;this._parentLayerExtension=e,t&&(this.featureSettings.formatSettings.parent===t.featureSettings.formatSettings&&(this.featureSettings.formatSettings.parent=this.mapExtension?this.mapExtension.formatSettings:void 0),this.taskSettings.parent===t.taskSettings&&(this.taskSettings.parent=void 0)),e&&((!this.featureSettings.formatSettings.parent||this.mapExtension&&this.featureSettings.formatSettings.parent===this.mapExtension.formatSettings)&&(this.featureSettings.formatSettings.parent=e.featureSettings.formatSettings),this.taskSettings.parent||(this.taskSettings.parent=e.taskSettings)),this._resolveLayer(),this.notifyChange("parentLayerExtension")}_resolveLayer(e){if(this.layer||!this._deferredLayerProperties)return;const t=e=>LayerExtension._matchesRef(e,this._deferredLayerProperties);let i;e?i=e.find(t):this.basemapExtension?.basemap?(i=this.basemapExtension.basemap.baseLayers.find(t),i=i||this.basemapExtension.basemap.referenceLayers.find(t)):this.groundExtension?.ground?i=this.groundExtension.ground.layers.find(t):this.parentLayerExtension?.layer?i=this.parentLayerExtension.layer.layers.find(t):this.mapExtension&&(i=this.mapExtension.map.layers.find(t)),i&&this._isSupportedLayer(i)&&(this._setLayer(i),this._originalRef=this._deferredLayerProperties.$ref,this._deferredLayerProperties.$portalItem&&R().warn("LayerExtension defined with both $ref and $portalItem. Ignoring $portalItem."))}async _switchLayer(e){if(e===this.layer)return;u("newLayer",e).isNotMissing().satisfies((e=>this._isSupportedLayer(e)),P),this.isInitialized&&await c(e);const t=new Map;if(this._sublayers)for(const e of this._sublayers.toArray())t.set(e.id,this.sublayerExtensions.forSublayer(e));e.visible=this.layer.visible,e.opacity=this.layer.opacity,e.listMode=this.layer.listMode,e.hasOwnProperty("labelsVisible")&&this.layer.hasOwnProperty("labelsVisible")&&(e.labelsVisible=this.layer.labelsVisible),this._setLayer(e);const i=[];if(this._sublayers){const e=this._sublayers.filter((e=>t.has(e.id))).toArray();i.push(...e.map((async e=>{const i=t.get(e.id);await i._switchSublayer(e),this._sublayerExtensions._register(i)})))}this.isInitialized&&i.push(this._initializeChildren()),await Promise.all(i)}_getProjectWebmapJSON(){if(!this.layer)return;let e=o.fromEsriApiLayer(this.layer);if(!this.dynamicallyAddedLayer){const{id:t,title:i,layerType:s,visibility:r,opacity:a}=e;e={id:t,title:i,layerType:s,visibility:r,opacity:a}}return e}async _onDestroy(){this._watchHandles.forEach((e=>e?.remove())),await Promise.all(this.sublayerExtensions.toArray().map((e=>e.destroy()))),await super._onDestroy()}_getSerializableProperties(){return{...super._getSerializableProperties(),iconUrl:{serializeModes:["initial","project"],serialize:e=>"project"!==e||this.dynamicallyAddedLayer?this.iconUrl:this.getDefault("iconUrl")},visibilityMode:{serializeModes:["initial","project"],serialize:e=>"project"!==e||this.dynamicallyAddedLayer?this.visibilityMode:this.getDefault("visibilityMode"),default:"independent"},tpkSource:{serializeModes:["initial"]},layerListSettings:{serializeModes:["initial","project"],serialize:e=>"project"!==e||this.dynamicallyAddedLayer?this.layerListSettings:this.getDefault("layerListSettings")},sublayerExtensions:{serializeModes:["initial","project"],serialize:e=>this.sublayerExtensions.map((e=>e.toItemUri())).toArray(),deserialize:e=>{x(this.sublayerExtensions,e,(e=>this._createSublayerExtension(e)))}},layer:{serializeModes:["initial","project"],serialize:e=>{if(this.layer){if((this._mapExtension||this._parentLayerExtension||this._basemapExtension||this._groundExtension)&&(this._layer.id||this._layer.title)){const e=o.getLayerType(this._layer),t=this._getSerializableRefLayerProperties();return{$ref:this._originalRef||{id:this._layer.id,title:this._layer.title,subtype:this._getSerializableLayerType()},layerType:e,...t}}return o.fromEsriApiLayer(this.layer)}return this._deferredLayerProperties?b(this._deferredLayerProperties):void 0},isDefault:()=>{throw new Error("Missing implementation for _getSerializableProperties() > layer > default. Subclasses of LayerExtension must implement this.")},deserialize:e=>{if(d(e)){if(e!==this.layer)throw new Error("Property 'layer' is read-only.")}else e&&(this._layer?this._applyLayerProperties(e,this.layer):this._deferredLayerProperties&&(this._deferredLayerProperties={...this._deferredLayerProperties,...e}))}},dynamicallyAddedLayer:{serializeModes:["project"],default:!1},requestHelper:{serialize:!1}}}_getSerializableLayerType(){}_getSerializableRefLayerProperties(){return{}}_createSublayerExtension(e){if(!this.supportsSublayers)throw new s(C);throw new Error("Missing implementation for _createSublayerExtension(). Subclasses of LayerExtension that support sublayers must implement this.")}async _onInitialize(){if(await super._onInitialize(),await this._createBackingLayer(),this._portalItem&&(await c(this._portalItem),await this._applyPortalItemProperties(this._portalItem),this.layer.title=this._portalItem.title,this.layer.portalItem=this._portalItem,this.iconUrl||(this.iconUrl=this._portalItem.thumbnailUrl),await this._applyLayerProperties(this._deferredLayerProperties,this.layer),this._deferredLayerProperties=void 0),this._resolveLayer(),!this.layer){const e=this._deferredLayerProperties.$ref;throw this._mapExtension||this._parentLayerExtension||this._basemapExtension||this._groundExtension?new s(`No layer found matching reference "${"string"==typeof e?e:JSON.stringify(e)}".`):new s("Cannot resolve layer reference: missing parent.")}this._deferredLayerProperties&&(await this._applyLayerProperties(this._deferredLayerProperties,this.layer),this._deferredLayerProperties=void 0),await this._initializeLayer(),await c(this.layer),this.supportsSublayers&&!this.layer.sublayers&&this.layer._set("sublayers",new t),this._initialVisibility=this.layer.visible,this._sublayerExtensions.onParentInitialized()}async _postInitialize(){await super._postInitialize(),this.layerListSettings.onLayerExtensionInitialized(),this._watchHandles.push(L(this,"layer.sublayers",(async e=>{const t=(e.added??[]).map((e=>this.sublayerExtensions.forSublayer(e)));await Promise.all(t.map(this._onSublayerAddedPostInitialize))})))}_applyPortalItemProperties(e){throw new s("Cannot use this type of layer extension with a PortalItem.")}async _initializeLayer(){}_createLayerListSettings(e){return new T(e,this)}_createSublayerExtensionCollection(){return new z(this)}_capabilities(){return A}*_initializableChildCollections(){yield*super._initializableChildCollections(),yield this.sublayerExtensions}async _createLayer(e){return o.toEsriApiLayer(e)}_applyLayerProperties(e,t){u("layerJson",e).isNotMissing();const i=e.layerType||e.type;return u("layerJson.layerType",i).satisfies((e=>!e||e===this.getDefault("layer")?.layerType),l),u("layer",t).isNotMissing().satisfies((e=>this._isSupportedLayer(e)),l),o.applyToEsriApiLayer(e,t)}_setLayer(e){if(this._layer=e,e.watch("visible",this._onVisibleChanged),this.layer.watch("minScale",(()=>this.notifyChange("effectiveMinScale"))),this.layer.watch("maxScale",(()=>this.notifyChange("effectiveMaxScale"))),this.layer.watch("title",(()=>this.notifyChange("title"))),this.supportsSublayers)if(this._sublayers)this._setupSublayersHandles();else{const t=e.watch("sublayers",(()=>{this._setupSublayersHandles(),t.remove()}),!0)}this.notifyChange("layer"),this.notifyChange("title"),this.notifyChange("effectiveMinScale"),this.notifyChange("effectiveMaxScale"),this.notifyChange("isEffectivelyVisible")}_setupSublayersHandles(){this._sublayers.on("change",this._onSublayersChange),E(this._sublayers,"visible",this._onSublayersSublayerVisibleChanged)}_ensureAChildSublayerVisible(e){for(const t of this._sublayers.toArray())t!==e&&(t.visible=!1)}_ensureAtMostOneChildSublayerVisible(){this.layer&&this._sublayers&&this._ensureAChildSublayerVisible(this._sublayers.find((e=>e.visible)))}}class z extends M{constructor(e){super(e,"_sublayers"),this._layerExtension=e}add(e,t){if(u("sublayerX",e).isNotMissing(),!this._layerExtension.supportsSublayers)throw new s(C);const i=e.sublayer?e.sublayer.layer:void 0;return i&&i!==this._layerExtension.layer&&i.sublayers.remove(e.sublayer),super.add(e,t)}}class j extends h{get _collection(){return this._layerExtension.sublayerExtensions.flatten((e=>e.sublayerExtensions))}constructor(e){super(),this._layerExtension=e}findById(e){return u("id",e).isNotMissing(),this.find((t=>t.id===e))}findBySublayerId(e){return u("id",e).isNotMissing(),this.find((t=>t.sublayer.id===e))}forSublayer(e){return u("sublayer",e).isNotMissing(),this.findBySublayerId(e.id)}emit(e,i){if("change"===e){const s=new t;s.addMany(i.added);const r=s.flatten((e=>e.sublayerExtensions)).toArray(),a=new t;a.addMany(i.removed);const n=a.flatten((e=>e.sublayerExtensions)).toArray(),o=new t;o.addMany(i.moved);const l=o.flatten((e=>e.sublayerExtensions)).toArray();return super.emit(e,{added:r,removed:n,moved:l,target:this})}return super.emit(e,i)}_itemIsInitialized(e){return super._itemIsInitialized(e)&&!!e.sublayer}}let T=class extends w{get _esriLayer(){return this._extension.layer}get _listModePath(){return"layer.listMode"}get _supportsChildren(){return this._extension.supportsSublayers}};T=e([p],T);export{T as LayerExtensionLayerListSettings};let V=class extends n{constructor(e){if(super(),this._layerBindings=new Map,this._layerExtension=e,this._bindSettingsToLayerProperties(),e.layer)this._onLayerResolved(e.layer);else{const t=e.watch("layer",(()=>{this._onLayerResolved(e.layer),t.remove()}),!0)}}_getPropertyBindings(){return{}}_getSetting(e,t){if(this._layerBindings.has(e)){let t=this._layerBindings.get(e);if("string"==typeof t&&(t={property:t}),t.hasOwnProperty("value"))return t.value;if(this._layerExtension.layer)return this._layerExtension.layer[t.property]}return super._getSetting(e,t)}_setSetting(e,t){if(this._layerBindings.has(e)){let i=this._layerBindings.get(e);if("string"==typeof i&&(i={property:i}),i.readonly||i.hasOwnProperty("value"))throw new s(ERR_SCHEMA_READ_ONLY);if(this._layerExtension.layer)return void(this._layerExtension.layer[i.property]=t)}super._setSetting(e,t)}_bindSettingsToLayerProperties(){const e=this._getPropertyBindings();for(const t of Object.keys(e)){let i=e[t];"string"==typeof i&&(i={property:i}),this._layerBindings.set(t,i),i.hasOwnProperty("value")||this._layerExtension.watch(`layer.${i.property}`,(()=>this.notifyChange(t)),!i.hasOwnProperty("sync")||i.sync)}}_onLayerResolved(e){for(const t of this._layerBindings.keys())this.isModified(t)&&(e[t]=this[t],this.reset(t))}};V=e([p],V);export{V as LayerExtensionSchema};export function _assignLayerExtensions(e,t){return f(e,t,{onNew:(t,i)=>{e.add(t instanceof LayerExtension?t:LayerExtension.create(t),O(t)?void 0:i)},onMatch:(t,i,s,r)=>{i instanceof LayerExtension||t.assignProperties(i),s===r||O(i)||e.reorder(t,r)},onMissing:t=>{(g([t])||_(t)&&0===t.layerExtensions.toArray().length)&&e.remove(t)},equals:(e,t)=>t instanceof LayerExtension?t===e:!!LayerExtension._matchesRef(e.layer,t.layer)||e.id===t.id})}function R(){return m("geocortex.api.mapping.LayerExtension")}function O(e){return e instanceof LayerExtension?!!e._deferredLayerProperties?.$ref:!d(e.layer)&&!!e.layer?.$ref}let $=class extends V{_setSetting(e,t){if(this._layerBindings.has(e))throw new s(ERR_SCHEMA_READ_ONLY);super._setSetting(e,t)}};$=e([p],$);export{$ as LayerExtensionReadOnlySchema};export const ERR_SCHEMA_READ_ONLY="This schema property is read-only.";
1
+ import{__decorate as e}from"tslib";import t from"@arcgis/core/core/Collection";import{ArgumentError as i}from"../ArgumentError.js";import{InvalidOperationError as s}from"../InvalidOperationError.js";import{ItemType as r}from"../ItemType.js";import{FeatureSourceBase as a}from"../data/FeatureSourceBase.js";import{Schema as n}from"../data/Schema.js";import{LayerBase as o}from"../portal/LayerBase.js";import{ERR_LAYER_TYPE_MISMATCH as l}from"../portal/_layerHelper.js";import{DefaultArcGISRequestHelper as y}from"../support/ArcGISRequestHelper.js";import{ReadOnlyInitializableCollection as h}from"../support/ReadOnlyInitializableCollection.js";import{serializable as p}from"../support/Serializable.js";import{isLayer as d}from"../utilities/_layers.js";import{checkArg as u}from"../utilities/checkArg.js";import{compare as f}from"../utilities/collection.js";import{load as c}from"../utilities/esri.js";import{isGroupLayerExtension as _}from"../utilities/extensions.js";import{hasMmapLayer as g}from"../utilities/layers.js";import{getLogger as m}from"../utilities/log.js";import{deepClone as b}from"../utilities/object.js";import{toPortalItem as S}from"../utilities/portal.js";import{onCollectionPropertyChange as L,watchEach as E}from"../utilities/watch.js";import{_assignSublayerExtensions as x}from"./_SublayerExtension.js";import{ExtensionBaseLayerListSettings as w,fromLayerListMode as v}from"./support/LayerListSettings.js";import{SublayerExtensionCollectionBase as M}from"./support/_SublayerExtensionCollection.js";const P="Invalid type of layer for this type of layer extension.",I="This type of layer does not have features.",C="This type of layer cannot have sublayers.",A=Object.freeze({supportsAdd:!1,supportsUpdate:!1,supportsDelete:!1,supportsEditing:!1,supportsQuery:!1,supportsAttachmentEditing:!1,supportsStandardizedQueries:!1});export class LayerExtension extends a{get layer(){return this._layer}get mapExtension(){return this._mapExtension}get basemapExtension(){return this._basemapExtension}get groundExtension(){return this._groundExtension}get parentLayerExtension(){return this._parentLayerExtension}get hasFeatures(){return!1}get capabilities(){return this._capabilities()}get renderer(){}get visibilityMode(){return this._visibilityMode}set visibilityMode(e){this._visibilityMode=e,"exclusive"===e&&this._ensureAtMostOneChildSublayerVisible()}get sublayerExtensions(){return this._sublayerExtensions}get requestHelper(){return this._requestHelper||(this._requestHelper=new y),this._requestHelper}set requestHelper(e){this._requestHelper=e}get title(){return this.layer?.title??this._deferredLayerProperties?.title??("string"==typeof this._deferredLayerProperties?.$ref?this._deferredLayerProperties?.$ref:this._deferredLayerProperties?.$ref?.title??this._deferredLayerProperties?.$ref?.id)??"Layer"}get supportsSublayers(){return!1}get effectiveMinScale(){return this.layer&&this.layer.minScale||0}get effectiveMaxScale(){return this.layer&&this.layer.maxScale||0}get isEffectivelyVisible(){const e=!!this.layer&&this.layer.visible;return this.parentLayerExtension?this.parentLayerExtension.isEffectivelyVisible&&e:e}get effectiveFullExtent(){return this.layer?this.layer.fullExtent:void 0}get canChangeScale(){return!0}get canChangeOpacity(){return!0}get canChangeLabels(){return!1}get canChangeRenderer(){return!1}get canChangeDefinitionExpression(){return!1}get initialVisibility(){return this._initialVisibility??this.layer?.visible??!1}get _layerSupportsHideChildren(){return this.supportsSublayers}get _sublayers(){if(this.supportsSublayers)return this.layer?this.layer.sublayers:void 0}get dynamicallyAddedLayer(){return this._dynamicallyAddedLayer}set dynamicallyAddedLayer(e){this._dynamicallyAddedLayer=e}get sublayersAreReadOnly(){return!0}constructor(e){super(e),this._itemType=r.LAYER_EXTENSION,this._watchHandles=[],this._dynamicallyAddedLayer=!1,this._visibilityMode="independent",this._onSublayerAddedPostInitialize=async e=>{try{await e.initialize()}catch(t){R().error({message:`Error occurred while initializing sublayer extension for sublayer '${e.title??e.sublayer.id??e.id}'.`,error:t})}},this._onVisibleChanged=e=>{if("inherited"===this.visibilityMode&&this.supportsSublayers&&this._sublayers)for(const t of this._sublayers.toArray())t.visible=e;this.notifyChange("isEffectivelyVisible")},this._onSublayersSublayerVisibleChanged=(e,t,i,s)=>{e&&"exclusive"===this.visibilityMode&&this._ensureAChildSublayerVisible(s)},this._onSublayersChange=e=>{e.added?.length&&"exclusive"===this.visibilityMode&&this._ensureAChildSublayerVisible(e.added[e.added.length-1])};const t={...this.getDefaults(),...e};u("properties.layer",t.layer).isNotMissing();const{layer:i}=t;let s;if(i?.hasOwnProperty("listMode")&&(s=v(i.listMode)),this.layerListSettings=this._createLayerListSettings({...s,...t.layerListSettings}),d(i))u("properties.layer",i).satisfies((e=>this._isSupportedLayer(e)),P),this._setLayer(i);else if(i){if(i.$portalItem){const e=i.$portalItem;this._portalItem=S(e)}this._deferredLayerProperties=i}this._sublayerExtensions=this._createSublayerExtensionCollection(),this.allSublayerExtensions=new j(this),this.watch("parentLayerExtension.isEffectivelyVisible",(()=>this.notifyChange("isEffectivelyVisible"))),this.watch("layer.sublayers",(()=>this.notifyChange("_sublayers")))}static create(e){if(!LayerExtension.factory)throw new s("Cannot create layer extension: no layer extension factory has been registered.");return LayerExtension.factory.create(e)}static async fromPortalItem(e,t){u("portalItemLike",e).isNotMissing();const s=t??{};u("layerExtensionProperties.layer",s.layer).satisfies((e=>!d(e)));const r={...s.layer};u("layerExtensionProperties.layer.$ref",r.$ref).satisfies((e=>null==e));const a=new y,n=S(e);let o;await c(n);const l=n.typeKeywords??"";if("Map Service"===n.type)o=l.includes("Tiled")||l.includes("Hosted Service")?"ArcGISTiledMapServiceLayer":"ArcGISMapServiceLayer";else if("Feature Service"===n.type)o="ArcGISFeatureLayer";else if("Image Service"===n.type){const e=await LayerExtension._getLayerData(n.url,a);e.cacheType?"Map"===e.cacheType?o="ArcGISTiledImageServiceLayer":("Elevation"===e.cacheType||l.includes("Elevation 3D Layer"))&&(o="ArcGISTiledElevationServiceLayer"):o=e.singleFusedMapCache||e.tileInfo||l.includes("Hosted Service")?"ArcGISTiledImageServiceLayer":"ArcGISImageServiceLayer"}else if("CSV"===n.type)o="CSV";else if("KML"===n.type)o="KML";else if("Scene Service"===n.type)l.includes("3DObject")||l.includes("Point")?o="ArcGISSceneServiceLayer":l.includes("IntegratedMesh")?o="IntegratedMeshLayer":l.includes("PointCloud")?o="PointCloudLayer":l.includes("Building")&&(o="BuildingSceneLayer");else if("Stream Service"===n.type)o="ArcGISStreamLayer";else if("Vector Tile Service"===n.type)o="VectorTileLayer";else if("Feature Collection"===n.type){o="ArcGISFeatureLayer";const e=await n.fetchData();r.featureCollection=e}else if("WMTS"===n.type){o="WebTiledLayer";const e=await n.fetchData();Object.assign(r,e)}else if("WMS"===n.type){o="WMS";const e=await n.fetchData();Object.assign(r,e)}if(!o)throw new i("portalItem","Could not determine correct type of LayerExtension to create from portal item");if(r.layerType&&r.layerType!==o)throw new i("layerExtensionProperties.layer.layerType","Layer type defined in layer properties does not match layer type from portal item");return r.layerType=o,r.$portalItem=n,s.layer=r,LayerExtension.create(s)}static _matchesRef(e,t){if(!e||!t)return!1;const i=t.$ref;return"string"==typeof i?e.id===i||e.title===i:!!i&&(e.id===i.id||e.title===i.title&&!i.path)}static async _getLayerData(e,t){const i=await t.request(e,{query:{f:"json"}});if(!i?.data)throw new Error(`Response to request for url ${e} was invalid.`);return i.data}getFeatures(e,t){if(!this.hasFeatures)throw new s(I);return super.getFeatures(e,t)}getFullExtent(){return this.effectiveFullExtent}async addFeatures(e,t){if(u("features",e).isNotMissing(),!this.hasFeatures)throw new s(I);await super.addFeatures(e,t)}async updateFeatures(e,t){if(u("features",e).isNotMissing(),!this.hasFeatures)throw new s(I);await super.updateFeatures(e,t)}async deleteFeatures(e,t){if(u("features",e).isNotMissing(),!this.hasFeatures)throw new s(I);await super.deleteFeatures(e,t)}async _createBackingLayer(){this._portalItem||this.layer||this._deferredLayerProperties?.$ref?!this.layer&&this._portalItem&&this._setLayer(await this._createLayer(this.getDefaults().layer)):(this._setLayer(await this._createLayer(this._deferredLayerProperties)),u("properties.layer",this._layer).satisfies((e=>this._isSupportedLayer(e)),P),this._deferredLayerProperties=void 0)}_setMapExtension(e){const t=this.mapExtension;this._mapExtension=e,t&&this.featureSettings.formatSettings.parent===t.formatSettings&&(this.featureSettings.formatSettings.parent=void 0),e&&(this.featureSettings.formatSettings.parent||(this.featureSettings.formatSettings.parent=e.formatSettings)),this._resolveLayer(),this.notifyChange("mapExtension")}_setBasemapExtension(e){this._basemapExtension=e,this._resolveLayer(),e&&(this.taskSettings.parent=e.taskSettings),this.notifyChange("basemapExtension")}_setGroundExtension(e){this._groundExtension=e,this._resolveLayer(),e&&(this.taskSettings.parent=e.taskSettings),this.notifyChange("groundExtension")}_setParentLayerExtension(e){const t=this._parentLayerExtension;this._parentLayerExtension=e,t&&(this.featureSettings.formatSettings.parent===t.featureSettings.formatSettings&&(this.featureSettings.formatSettings.parent=this.mapExtension?this.mapExtension.formatSettings:void 0),this.taskSettings.parent===t.taskSettings&&(this.taskSettings.parent=void 0)),e&&((!this.featureSettings.formatSettings.parent||this.mapExtension&&this.featureSettings.formatSettings.parent===this.mapExtension.formatSettings)&&(this.featureSettings.formatSettings.parent=e.featureSettings.formatSettings),this.taskSettings.parent||(this.taskSettings.parent=e.taskSettings)),this._resolveLayer(),this.notifyChange("parentLayerExtension")}_resolveLayer(e){if(this.layer||!this._deferredLayerProperties)return;const t=e=>LayerExtension._matchesRef(e,this._deferredLayerProperties);let i;e?i=e.find(t):this.basemapExtension?.basemap?(i=this.basemapExtension.basemap.baseLayers.find(t),i=i||this.basemapExtension.basemap.referenceLayers.find(t)):this.groundExtension?.ground?i=this.groundExtension.ground.layers.find(t):this.parentLayerExtension?.layer?i=this.parentLayerExtension.layer.layers.find(t):this.mapExtension&&(i=this.mapExtension.map.layers.find(t)),i&&this._isSupportedLayer(i)&&(this._setLayer(i),this._originalRef=this._deferredLayerProperties.$ref,this._deferredLayerProperties.$portalItem&&R().warn("LayerExtension defined with both $ref and $portalItem. Ignoring $portalItem."))}async _switchLayer(e){if(e===this.layer)return;u("newLayer",e).isNotMissing().satisfies((e=>this._isSupportedLayer(e)),P),this.isInitialized&&await c(e);const t=new Map;if(this._sublayers)for(const e of this._sublayers.toArray())t.set(e.id,this.sublayerExtensions.forSublayer(e));e.visible=this.layer.visible,e.opacity=this.layer.opacity,e.listMode=this.layer.listMode,e.hasOwnProperty("labelsVisible")&&this.layer.hasOwnProperty("labelsVisible")&&(e.labelsVisible=this.layer.labelsVisible),this._setLayer(e);const i=[];if(this._sublayers){const e=this._sublayers.filter((e=>t.has(e.id))).toArray();i.push(...e.map((async e=>{const i=t.get(e.id);await i._switchSublayer(e),this._sublayerExtensions._register(i)})))}this.isInitialized&&i.push(this._initializeChildren()),await Promise.all(i)}_getProjectWebmapJSON(){if(!this.layer)return;let e=o.fromEsriApiLayer(this.layer);if(!this.dynamicallyAddedLayer){const{id:t,title:i,layerType:s,visibility:r,opacity:a}=e;e={id:t,title:i,layerType:s,visibility:r,opacity:a}}return e}async _onDestroy(){this._watchHandles.forEach((e=>e?.remove())),await Promise.all(this.sublayerExtensions.toArray().map((e=>e.destroy()))),await super._onDestroy()}_getSerializableProperties(){return{...super._getSerializableProperties(),iconUrl:{serializeModes:["initial","project"],serialize:e=>"project"!==e||this.dynamicallyAddedLayer?this.iconUrl:this.getDefault("iconUrl")},visibilityMode:{serializeModes:["initial","project"],serialize:e=>"project"!==e||this.dynamicallyAddedLayer?this.visibilityMode:this.getDefault("visibilityMode"),default:"independent"},tpkSource:{serializeModes:["initial"]},layerListSettings:{serializeModes:["initial","project"],serialize:e=>"project"!==e||this.dynamicallyAddedLayer?this.layerListSettings:this.getDefault("layerListSettings")},sublayerExtensions:{serializeModes:["initial","project"],serialize:e=>this.sublayerExtensions.map((e=>e.toItemUri())).toArray(),deserialize:e=>{x(this.sublayerExtensions,e,(e=>this._createSublayerExtension(e)))}},layer:{serializeModes:["initial","project"],serialize:e=>{if(this.layer){if((this._mapExtension||this._parentLayerExtension||this._basemapExtension||this._groundExtension)&&(this._layer.id||this._layer.title)){const e=o.getLayerType(this._layer),t=this._getSerializableRefLayerProperties();return{$ref:this._originalRef||{id:this._layer.id,title:this._layer.title,subtype:this._getSerializableLayerType()},layerType:e,...t}}return o.fromEsriApiLayer(this.layer)}return this._deferredLayerProperties?b(this._deferredLayerProperties):void 0},isDefault:()=>{throw new Error("Missing implementation for _getSerializableProperties() > layer > default. Subclasses of LayerExtension must implement this.")},deserialize:e=>{if(d(e)){if(e!==this.layer)throw new Error("Property 'layer' is read-only.")}else e&&(this._layer?this._applyLayerProperties(e,this.layer):this._deferredLayerProperties&&(this._deferredLayerProperties={...this._deferredLayerProperties,...e}))}},dynamicallyAddedLayer:{serializeModes:["project"],default:!1},requestHelper:{serialize:!1}}}_getSerializableLayerType(){}_getSerializableRefLayerProperties(){return{}}_createSublayerExtension(e){if(!this.supportsSublayers)throw new s(C);throw new Error("Missing implementation for _createSublayerExtension(). Subclasses of LayerExtension that support sublayers must implement this.")}async _onInitialize(){if(await super._onInitialize(),await this._createBackingLayer(),this._portalItem&&(await c(this._portalItem),await this._applyPortalItemProperties(this._portalItem),this.layer.title=this._portalItem.title,this.layer.portalItem=this._portalItem,this.iconUrl||(this.iconUrl=this._portalItem.thumbnailUrl),await this._applyLayerProperties(this._deferredLayerProperties,this.layer),this._deferredLayerProperties=void 0),this._resolveLayer(),!this.layer){const e=this._deferredLayerProperties.$ref;throw this._mapExtension||this._parentLayerExtension||this._basemapExtension||this._groundExtension?new s(`No layer found matching reference "${"string"==typeof e?e:JSON.stringify(e)}".`):new s("Cannot resolve layer reference: missing parent.")}this._deferredLayerProperties&&(await this._applyLayerProperties(this._deferredLayerProperties,this.layer),this._deferredLayerProperties=void 0),await this._initializeLayer(),await c(this.layer),this.supportsSublayers&&!this.layer.sublayers&&this.layer._set("sublayers",new t),this._initialVisibility=this.layer.visible,this._sublayerExtensions.onParentInitialized()}async _postInitialize(){await super._postInitialize(),this.layerListSettings.onLayerExtensionInitialized(),this._watchHandles.push(L(this,"layer.sublayers",(async e=>{const t=(e.added??[]).map((e=>this.sublayerExtensions.forSublayer(e)));await Promise.all(t.map(this._onSublayerAddedPostInitialize))})))}_applyPortalItemProperties(e){throw new s("Cannot use this type of layer extension with a PortalItem.")}async _initializeLayer(){}_createLayerListSettings(e){return new T(e,this)}_createSublayerExtensionCollection(){return new z(this)}_capabilities(){return A}*_initializableChildCollections(){yield*super._initializableChildCollections(),yield this.sublayerExtensions}async _createLayer(e){return o.toEsriApiLayer(e)}_applyLayerProperties(e,t){u("layerJson",e).isNotMissing();const i=e.layerType||e.type;return u("layerJson.layerType",i).satisfies((e=>!e||e===this.getDefault("layer")?.layerType),l),u("layer",t).isNotMissing().satisfies((e=>this._isSupportedLayer(e)),l),o.applyToEsriApiLayer(e,t)}_setLayer(e){if(this._layer=e,e.watch("visible",this._onVisibleChanged),this.layer.watch("minScale",(()=>this.notifyChange("effectiveMinScale"))),this.layer.watch("maxScale",(()=>this.notifyChange("effectiveMaxScale"))),this.layer.watch("title",(()=>this.notifyChange("title"))),this.supportsSublayers)if(this._sublayers)this._setupSublayersHandles();else{const t=e.watch("sublayers",(()=>{this._setupSublayersHandles(),t.remove()}),!0)}this.notifyChange("layer"),this.notifyChange("title"),this.notifyChange("effectiveMinScale"),this.notifyChange("effectiveMaxScale"),this.notifyChange("isEffectivelyVisible")}_setupSublayersHandles(){this._sublayers.on("change",this._onSublayersChange),E(this._sublayers,"visible",this._onSublayersSublayerVisibleChanged)}_ensureAChildSublayerVisible(e){for(const t of this._sublayers.toArray())t!==e&&(t.visible=!1)}_ensureAtMostOneChildSublayerVisible(){this.layer&&this._sublayers&&this._ensureAChildSublayerVisible(this._sublayers.find((e=>e.visible)))}}class z extends M{constructor(e){super(e,"_sublayers"),this._layerExtension=e}add(e,t){if(u("sublayerX",e).isNotMissing(),!this._layerExtension.supportsSublayers)throw new s(C);const i=e.sublayer?e.sublayer.layer:void 0;return i&&i!==this._layerExtension.layer&&i.sublayers.remove(e.sublayer),super.add(e,t)}}class j extends h{get _collection(){return this._layerExtension.sublayerExtensions.flatten((e=>e.sublayerExtensions))}constructor(e){super(),this._layerExtension=e}findById(e){return u("id",e).isNotMissing(),this.find((t=>t.id===e))}findBySublayerId(e){return u("id",e).isNotMissing(),this.find((t=>t.sublayer.id===e))}forSublayer(e){return u("sublayer",e).isNotMissing(),this.findBySublayerId(e.id)}emit(e,i){if("change"===e){const s=new t;s.addMany(i.added);const r=s.flatten((e=>e.sublayerExtensions)).toArray(),a=new t;a.addMany(i.removed);const n=a.flatten((e=>e.sublayerExtensions)).toArray(),o=new t;o.addMany(i.moved);const l=o.flatten((e=>e.sublayerExtensions)).toArray();return super.emit(e,{added:r,removed:n,moved:l,target:this})}return super.emit(e,i)}_itemIsInitialized(e){return super._itemIsInitialized(e)&&!!e.sublayer}}let T=class extends w{get _esriLayer(){return this._extension.layer}get _listModePath(){return"layer.listMode"}get _supportsChildren(){return this._extension.supportsSublayers}};T=e([p],T);export{T as LayerExtensionLayerListSettings};let V=class extends n{constructor(e){if(super(),this._layerBindings=new Map,this._layerExtension=e,this._bindSettingsToLayerProperties(),e.layer)this._onLayerResolved(e.layer);else{const t=e.watch("layer",(()=>{this._onLayerResolved(e.layer),t.remove()}),!0)}}_getPropertyBindings(){return{}}_getSetting(e,t){if(this._layerBindings.has(e)){let t=this._layerBindings.get(e);if("string"==typeof t&&(t={property:t}),t.hasOwnProperty("value"))return t.value;if(this._layerExtension.layer)return this._layerExtension.layer[t.property]}return super._getSetting(e,t)}_setSetting(e,t){if(this._layerBindings.has(e)){let i=this._layerBindings.get(e);if("string"==typeof i&&(i={property:i}),i.readonly||i.hasOwnProperty("value"))throw new s(ERR_SCHEMA_READ_ONLY);if(this._layerExtension.layer)return void(this._layerExtension.layer[i.property]=t)}super._setSetting(e,t)}_bindSettingsToLayerProperties(){const e=this._getPropertyBindings();for(const t of Object.keys(e)){let i=e[t];"string"==typeof i&&(i={property:i}),this._layerBindings.set(t,i),i.hasOwnProperty("value")||this._layerExtension.watch(`layer.${i.property}`,(()=>this.notifyChange(t)),!i.hasOwnProperty("sync")||i.sync)}}_onLayerResolved(e){for(const t of this._layerBindings.keys())this.isModified(t)&&(e[t]=this[t],this.reset(t))}};V=e([p],V);export{V as LayerExtensionSchema};export function _assignLayerExtensions(e,t){return f(e,t,{onNew:(t,i)=>{e.add(t instanceof LayerExtension?t:LayerExtension.create(t),O(t)?void 0:i)},onMatch:(t,i,s,r)=>{i instanceof LayerExtension||t.assignProperties(i),s===r||O(i)||e.reorder(t,r)},onMissing:t=>{(g([t])||_(t)&&0===t.layerExtensions.toArray().length)&&e.remove(t)},equals:(e,t)=>t instanceof LayerExtension?t===e:!!LayerExtension._matchesRef(e.layer,t.layer)||e.id===t.id})}function R(){return m("geocortex.api.mapping.LayerExtension")}function O(e){return e instanceof LayerExtension?!!e._deferredLayerProperties?.$ref:!d(e.layer)&&!!e.layer?.$ref}let $=class extends V{_setSetting(e,t){if(this._layerBindings.has(e))throw new s(ERR_SCHEMA_READ_ONLY);super._setSetting(e,t)}};$=e([p],$);export{$ as LayerExtensionReadOnlySchema};export const ERR_SCHEMA_READ_ONLY="This schema property is read-only.";
@@ -229,6 +229,11 @@ export declare abstract class SublayerExtension<TProperties extends SublayerExte
229
229
  * labels. Default is false.
230
230
  */
231
231
  get canChangeLabels(): boolean;
232
+ /**
233
+ * Determines whether the type of sublayer being extended supports changing
234
+ * its definition expression.
235
+ */
236
+ get canChangeDefinitionExpression(): boolean;
232
237
  /**
233
238
  * The sublayer's sublayers.
234
239
  */
@@ -1 +1 @@
1
- import{__decorate as e}from"tslib";import{InvalidOperationError as t}from"../InvalidOperationError.js";import{isSublayerExtension as i,ItemType as s}from"../ItemType.js";import{FeatureSourceBase as r}from"../data/FeatureSourceBase.js";import{Schema as a}from"../data/Schema.js";import{serializable as n}from"../support/Serializable.js";import{isBuildingComponentSublayer as l,isBuildingGroupSublayer as o,isKMLSublayer as u,isMapImageSublayer as y,isMapNotesSublayer as h,isSubtypeSublayer as b,isTileLayer as f,isWMSSublayer as p,isWMTSSublayer as S}from"../utilities/_layers.js";import{checkArg as c}from"../utilities/checkArg.js";import{compare as d}from"../utilities/collection.js";import{load as g}from"../utilities/esri.js";import{getLogger as _}from"../utilities/log.js";import{parse as x}from"../utilities/number.js";import{deepClone as E}from"../utilities/object.js";import{onCollectionPropertyChange as m,watchCollectionPropertyEach as v}from"../utilities/watch.js";import{fromLayerListMode as w,LayerListSettings as M}from"./support/LayerListSettings.js";import{SublayerExtensionCollectionBase as C}from"./support/_SublayerExtensionCollection.js";const P=_("SublayerExtension"),V="Invalid type of sublayer for this type of sublayer extension.",z="This type of layer does not have features.",A="This type of sublayer extension cannot have child sublayer extensions.",F=Object.freeze({supportsAdd:!1,supportsUpdate:!1,supportsDelete:!1,supportsEditing:!1,supportsQuery:!1,supportsAttachmentEditing:!1});export function getSublayerType(e){if(y(e))return f(e?.layer)?"ArcGISTiledSublayer":"ArcGISMapServiceSublayer";if(u(e))return"KMLSublayer";if(S(e))return"WMTSSublayer";if(p(e))return"WMSSublayer";if(l(e))return"BuildingComponentSublayer";if(o(e))return"BuildingGroupSublayer";if(b(e))return"SubtypeSublayer";if(h(e))return"MapNotesSublayer";throw new Error(`Unknown sublayer type for ESRI sublayer: ${e}`)}export class SublayerExtension extends r{get sublayer(){return this._sublayer}get layerExtension(){return this._layerExtension}get parentSublayerExtension(){return this._parentSublayerExtension}get hasFeatures(){return!1}get sublayerExtensions(){return this._sublayerExtensions}get renderer(){}get visibilityMode(){return this.canToggleVisibility?this._visibilityMode:"inherited"}set visibilityMode(e){c("visibilityMode",e).satisfies((e=>this.canToggleVisibility||"inherited"===e),'Sublayers of this type only support a visibility mode of "inherited".'),this._visibilityMode=e,"exclusive"===e&&this._ensureAtMostOneChildSublayerVisible()}get capabilities(){return this._capabilities()}get effectiveMinScale(){const e=this.sublayer?this.sublayer.minScale:0;if(this.parentSublayerExtension){const t=this.parentSublayerExtension.effectiveMinScale||1/0;if(t<(e||1/0))return t}if(this.layerExtension){const t=this.layerExtension.effectiveMinScale||1/0;if(t<(e||1/0))return t}return e}get effectiveMaxScale(){const e=this.sublayer?this.sublayer.maxScale:0;return this.parentSublayerExtension&&this.parentSublayerExtension.effectiveMaxScale>e?this.parentSublayerExtension.effectiveMaxScale:this.layerExtension&&this.layerExtension.effectiveMaxScale>e?this.layerExtension.effectiveMaxScale:e}get isEffectivelyVisible(){const e=!!this.sublayer&&this.sublayer.visible;return this.parentSublayerExtension?this.parentSublayerExtension.isEffectivelyVisible&&e:this.layerExtension?this.layerExtension.isEffectivelyVisible&&e:e}get title(){return this.sublayer?.title??("string"==typeof this._deferredSublayerProperties?.$ref||"number"==typeof this._deferredSublayerProperties?.$ref?this._deferredSublayerProperties?.$ref.toString():this._deferredSublayerProperties?.$ref?.title??this._deferredSublayerProperties?.$ref?.id.toString())??"Sublayer"}get supportsSublayers(){return!1}get canToggleVisibility(){return!0}get canChangeOpacity(){return!0}get canChangeScale(){return!0}get canChangeRenderer(){return!1}get canChangeLabels(){return!1}get _layerSupportsHideChildren(){return!1}get _sublayers(){if(this.supportsSublayers)return this.sublayer?.sublayers}get effectiveFullExtent(){return this._effectiveFullExtent?this._effectiveFullExtent:this.parentSublayerExtension?this.parentSublayerExtension.effectiveFullExtent:this.layerExtension?this.layerExtension.effectiveFullExtent:void 0}get initialVisibility(){return this._initialVisibility??this.sublayer?.visible??!1}constructor(e){super(e),this._itemType=s.SUBLAYER_EXTENSION,this._watchHandles=[],this._onSublayerAddedPostInitialize=async e=>{try{await e.initialize()}catch(t){P.error({message:`Error occurred while initializing sublayer extension for sublayer '${e.title??e.sublayer.id??e.id}'.`,error:t})}},this._onSetSublayerVisible=e=>{if("inherited"===this.visibilityMode&&this.supportsSublayers&&this.sublayerExtensions)for(const t of this.sublayerExtensions.toArray())t.sublayer&&t.canToggleVisibility&&(t.sublayer.visible=e);this.notifyChange("isEffectivelyVisible")},this._onSetSublayersSublayerVisible=(e,t,i,s)=>{e&&"exclusive"===this.visibilityMode&&this._ensureAChildSublayerVisible(s)},this._onSublayersChange=e=>{e.added?.length&&"exclusive"===this.visibilityMode&&this._ensureAChildSublayerVisible(e.added[e.added.length-1])};const t=e||{};this._visibilityMode=this.canToggleVisibility?"independent":"inherited",this._sublayerExtensions=this._createSublayerExtensionCollection();const i=t.sublayer;let r;i?.hasOwnProperty("listMode")&&(r=w(i.listMode)),this.layerListSettings=this._createLayerListSettings({...r,...t.layerListSettings}),j(i)?(c("properties.sublayer",i).satisfies((e=>this._isSupportedSublayer(e)),V),this._setSublayer(i)):i&&(this._deferredSublayerProperties=i),this.watch("parentSublayerExtension.isEffectivelyVisible",(()=>this.notifyChange("isEffectivelyVisible")))}static create(e){if(!SublayerExtension.factory)throw new t("Cannot create sublayer extension: no sublayer extension factory has been registered.");return SublayerExtension.factory.create(e)}static _matchesRef(e,t,i){if(!e||!t)return!1;let s=t.$ref;if("string"==typeof s){const e=x(s);s={id:isNaN(e)?s:e,title:s}}else"number"==typeof s&&(s={id:s});const r=b(e)?e.subtypeCode:e.id;return"both"===i?r===s.id&&e.title===s.title:"by-id"===i?r===s.id:"by-title"===i&&e.title===s.title}getFeatures(e,i){if(!this.hasFeatures)throw new t(z);return super.getFeatures(e,i)}getFullExtent(){return this.effectiveFullExtent}async addFeatures(e,i){if(c("features",e).isNotMissing(),!this.hasFeatures)throw new t(z);await super.addFeatures(e,i)}async updateFeatures(e,i){if(c("features",e).isNotMissing(),!this.hasFeatures)throw new t(z);await super.updateFeatures(e,i)}async deleteFeatures(e,i){if(c("features",e).isNotMissing(),!this.hasFeatures)throw new t(z);await super.deleteFeatures(e,i)}_resolveSublayer(){if(this._sublayer||!this._deferredSublayerProperties||!this.layerExtension||!this.layerExtension.layer||!this.layerExtension.layer.sublayers)return;const e=e=>t=>SublayerExtension._matchesRef(t,this._deferredSublayerProperties,e),t=this.layerExtension.layer.sublayers.flatten((e=>e.sublayers));let i=t.find(e("both"));if(i||(i=t.find(e("by-title"))),i||(i=t.find(e("by-id"))),i&&this._isSupportedSublayer(i)){this._setSublayer(i);const e={sublayer:this._deferredSublayerProperties};this.assignProperties(e),this._originalRef=this._deferredSublayerProperties.$ref,this._deferredSublayerProperties=void 0}}_setLayerExtension(e){const t=this.layerExtension;this._layerExtension=e,this.layerExtension&&(this.layerExtension.watch("effectiveMinScale",(()=>this.notifyChange("effectiveMinScale"))),this.layerExtension.watch("effectiveMaxScale",(()=>this.notifyChange("effectiveMaxScale"))),this.layerExtension.watch("isEffectivelyVisible",(()=>this.notifyChange("isEffectivelyVisible")))),this._parentSublayerExtension||(t&&(this.featureSettings.formatSettings.parent===t.featureSettings.formatSettings&&(this.featureSettings.formatSettings.parent=void 0),this.taskSettings.parent===t.taskSettings&&(this.taskSettings.parent=void 0)),e&&(this.featureSettings.formatSettings.parent||(this.featureSettings.formatSettings.parent=e.featureSettings.formatSettings),this.taskSettings.parent||(this.taskSettings.parent=e.taskSettings))),this._resolveSublayer(),this.notifyChange("layerExtension"),this.supportsSublayers&&this._sublayerExtensions.onLayerExtensionChanged()}_setParentSublayerExtension(e){const t=this._parentSublayerExtension;this._parentSublayerExtension=e,this.parentSublayerExtension&&(this.parentSublayerExtension.watch("effectiveMinScale",(()=>this.notifyChange("effectiveMinScale"))),this.parentSublayerExtension.watch("effectiveMaxScale",(()=>this.notifyChange("effectiveMaxScale")))),t&&(this.featureSettings.formatSettings.parent===t.featureSettings.formatSettings&&(this.featureSettings.formatSettings.parent=this.layerExtension?this.layerExtension.featureSettings.formatSettings:void 0),this.taskSettings.parent===t.taskSettings&&(this.taskSettings.parent=this.layerExtension?this.layerExtension.taskSettings:void 0)),e&&((!this.featureSettings.formatSettings.parent||this.layerExtension&&this.featureSettings.formatSettings.parent===this.layerExtension.featureSettings.formatSettings)&&(this.featureSettings.formatSettings.parent=e.featureSettings.formatSettings),(!this.taskSettings.parent||this.layerExtension&&this.taskSettings.parent===this.layerExtension.taskSettings)&&(this.taskSettings.parent=e.taskSettings)),this._resolveSublayer(),this.notifyChange("parentSublayerExtension")}async _switchSublayer(e){if(e===this.sublayer)return;c("newSublayer",e).isNotMissing().satisfies((e=>e.id===this.sublayer.id),"Sublayer ID must match existing sublayer.").satisfies((e=>this._isSupportedSublayer(e)),V),this.isInitialized&&await g(e);const t=new Map;if(this.sublayer?.sublayers)for(const e of this.sublayer.sublayers.toArray())t.set(e.id,this.sublayerExtensions.forSublayer(e));this.canToggleVisibility&&(e.visible=this.sublayer.visible),this.canChangeOpacity&&(e.opacity=this.sublayer.opacity),this._setSublayer(e);const i=[];if(this.supportsSublayers&&this.sublayer.sublayers){const e=this.sublayer.sublayers.filter((e=>t.has(e.id))).toArray();i.push(...e.map((async e=>{const i=t.get(e.id);await i._switchSublayer(e),this._sublayerExtensions._register(i)})))}this.isInitialized&&i.push(this._initializeChildren()),await Promise.all(i)}async _postInitialize(){await super._postInitialize(),this.supportsSublayers&&this._watchHandles.push(m(this,"sublayer.sublayers",(async e=>{const t=(e.added??[]).map((e=>this.sublayerExtensions.forSublayer(e)));await Promise.all(t.map(this._onSublayerAddedPostInitialize))})))}async _onDestroy(){this._watchHandles.forEach((e=>e?.remove())),await Promise.all(this.sublayerExtensions.toArray().map((e=>e.destroy()))),await super._onDestroy()}_getSerializableProperties(){return{...super._getSerializableProperties(),iconUrl:"initial",visibilityMode:{serializeModes:["initial"],default:this.canToggleVisibility?"independent":"inherited"},layerListSettings:"initial",sublayerExtensions:{serializeModes:["initial","project"],serialize:()=>this.sublayerExtensions.map((e=>e.toItemUri())).toArray(),deserialize:e=>{_assignSublayerExtensions(this.sublayerExtensions,e,(e=>this._createSublayerExtension(e)))}},sublayer:{serializeModes:["initial","project"],serialize:()=>{if(this.sublayer){if(!this._layerExtension)return this._serializeSublayer(this._sublayer);{const e=getSublayerType(this._sublayer);if(this._originalRef)return{$ref:this._originalRef,$sublayerType:e};if(this._sublayer.title||this._sublayer.id)return{...this._createSublayerRef(),$sublayerType:e}}}else if(this._deferredSublayerProperties)return E(this._deferredSublayerProperties)},deserialize:e=>{if(j(e)){if(e!==this.sublayer)throw new Error("Property 'sublayer' is read-only.")}else this._sublayer?this._applySublayerProperties(e,this._sublayer):this._deferredSublayerProperties&&(this._deferredSublayerProperties={...this._deferredSublayerProperties,...e})}},requestHelper:{serialize:!1}}}_createSublayerExtension(e){throw new t(A)}_createSchema(){return new $(this)}_createLayerListSettings(e){return new M(e)}_capabilities(){return F}async _onInitialize(){if(await super._onInitialize(),this._sublayer||this._deferredSublayerProperties?.$ref||(this._setSublayer(await this._createSublayer(this._deferredSublayerProperties)),this._deferredSublayerProperties=void 0),this._resolveSublayer(),!this._sublayer){const e=this._deferredSublayerProperties?.$ref;if(!this._layerExtension)throw new t("Cannot resolve sublayer reference: missing parent layer extension.");throw new t(`No sublayer found matching reference "${e}".`)}this._initialVisibility=this.sublayer.visible,this.supportsSublayers&&this._sublayerExtensions.onParentInitialized()}*_initializableChildCollections(){yield*super._initializableChildCollections(),yield this.sublayerExtensions}_createSublayerRef(){return{$ref:{id:b(this._sublayer)?this._sublayer.subtypeCode:this._sublayer.id,title:this._sublayer.title}}}_createSublayerExtensionCollection(){return new SubSublayerExtensionCollection(this)}_watchSublayerProperties(){this._watchHandles.push(this.sublayer.watch("minScale",(()=>this.notifyChange("effectiveMinScale")),!0),this.sublayer.watch("maxScale",(()=>this.notifyChange("effectiveMaxScale")),!0))}_setSublayer(e){this._sublayer=e,this._watchHandles.push(e.watch("visible",this._onSetSublayerVisible,!0)),this.supportsSublayers&&this._watchHandles.push(m(e,"sublayers",this._onSublayersChange,!0),v(e,"sublayers","visible",this._onSetSublayersSublayerVisible,!0)),this._onSetSublayerVisible(this.sublayer.visible),"exclusive"===this.visibilityMode&&this._ensureAtMostOneChildSublayerVisible(),this._watchSublayerProperties(),this.notifyChange("sublayer"),this.notifyChange("title"),this.notifyChange("effectiveMinScale"),this.notifyChange("effectiveMaxScale"),this.notifyChange("isEffectivelyVisible")}_ensureAChildSublayerVisible(e){for(const t of this._sublayers.toArray())t!==e&&(t.visible=!1)}_ensureAtMostOneChildSublayerVisible(){this.sublayer&&this._sublayers&&this._ensureAChildSublayerVisible(this._sublayers.find((e=>e.visible)))}}let $=class extends a{constructor(e){super(),this._sublayerBindings=new Map,this._sublayerExtension=e,this._bindSettingsToSublayerProperties()}get spatialReference(){if(this._sublayerExtension.layerExtension)return this._sublayerExtension.layerExtension.schema.spatialReference}set spatialReference(e){throw new t("Cannot set sublayer schema spatial reference.")}_getPropertyBindings(){return{}}_bindSettingsToSublayerProperties(){const e=this._getPropertyBindings();for(const t of Object.keys(e)){let i=e[t];"string"==typeof i&&(i={property:i}),this._sublayerBindings.set(t,i),i.hasOwnProperty("value")||this._sublayerExtension.watch(`sublayer.${i.property}`,(()=>this.notifyChange(t)),!i.hasOwnProperty("sync")||i.sync)}}};$=e([n],$);export{$ as SublayerSchema};export class SubSublayerExtensionCollection extends C{get _layerExtension(){return this._parent.layerExtension}constructor(e,t){super(e,t??"sublayer.sublayers")}add(e,i){if(c("sublayerX",e).isNotMissing(),!this._parent.supportsSublayers)throw new t(A);return e.sublayer&&this._parent.sublayer&&!this._parent.sublayer.sublayers&&(this._parent.sublayer.sublayers=[]),e.parentSublayerExtension&&e.parentSublayerExtension.sublayerExtensions.remove(e),super.add(e,i)}_onAdded(e){super._onAdded(e),e._setParentSublayerExtension(this._parent)}_onRemoved(e){super._onRemoved(e),e._setParentSublayerExtension(void 0)}}export function _assignSublayerExtensions(e,t,s){d(e,t,{onNew:(t,r)=>{try{e.add(i(t)?t:s(t),T(t)?void 0:r)}catch(e){P.warn({message:`Error occurred while adding sublayer extension for sublayer '${t.title??t.sublayer?.id??t.id}'.`,error:e})}},onMatch:(t,s,r,a)=>{try{i(s)||t.assignProperties(s),r===a||T(s)||e.reorder(t,a)}catch(e){P.warn({message:`Error occurred while assigning sublayer extension properties for sublayer '${t.title??t.sublayer?.id??t.id}'.`,error:e})}},equals:(e,t)=>i(t)?t===e:!!SublayerExtension._matchesRef(e.sublayer,t.sublayer,"both")||e.id===t.id})}function j(e){return e&&"function"==typeof e.get}function T(e){return i(e)?!!e._deferredSublayerProperties?.$ref:!j(e.sublayer)&&!!e.sublayer?.$ref}
1
+ import{__decorate as e}from"tslib";import{InvalidOperationError as t}from"../InvalidOperationError.js";import{isSublayerExtension as i,ItemType as s}from"../ItemType.js";import{FeatureSourceBase as r}from"../data/FeatureSourceBase.js";import{Schema as a}from"../data/Schema.js";import{serializable as n}from"../support/Serializable.js";import{isBuildingComponentSublayer as l,isBuildingGroupSublayer as o,isKMLSublayer as u,isMapImageSublayer as y,isMapNotesSublayer as h,isSubtypeSublayer as b,isTileLayer as f,isWMSSublayer as p,isWMTSSublayer as S}from"../utilities/_layers.js";import{checkArg as c}from"../utilities/checkArg.js";import{compare as d}from"../utilities/collection.js";import{load as g}from"../utilities/esri.js";import{getLogger as _}from"../utilities/log.js";import{parse as x}from"../utilities/number.js";import{deepClone as E}from"../utilities/object.js";import{onCollectionPropertyChange as m,watchCollectionPropertyEach as v}from"../utilities/watch.js";import{fromLayerListMode as w,LayerListSettings as M}from"./support/LayerListSettings.js";import{SublayerExtensionCollectionBase as C}from"./support/_SublayerExtensionCollection.js";const P=_("SublayerExtension"),V="Invalid type of sublayer for this type of sublayer extension.",z="This type of layer does not have features.",A="This type of sublayer extension cannot have child sublayer extensions.",F=Object.freeze({supportsAdd:!1,supportsUpdate:!1,supportsDelete:!1,supportsEditing:!1,supportsQuery:!1,supportsAttachmentEditing:!1,supportsStandardizedQueries:!1});export function getSublayerType(e){if(y(e))return f(e?.layer)?"ArcGISTiledSublayer":"ArcGISMapServiceSublayer";if(u(e))return"KMLSublayer";if(S(e))return"WMTSSublayer";if(p(e))return"WMSSublayer";if(l(e))return"BuildingComponentSublayer";if(o(e))return"BuildingGroupSublayer";if(b(e))return"SubtypeSublayer";if(h(e))return"MapNotesSublayer";throw new Error(`Unknown sublayer type for ESRI sublayer: ${e}`)}export class SublayerExtension extends r{get sublayer(){return this._sublayer}get layerExtension(){return this._layerExtension}get parentSublayerExtension(){return this._parentSublayerExtension}get hasFeatures(){return!1}get sublayerExtensions(){return this._sublayerExtensions}get renderer(){}get visibilityMode(){return this.canToggleVisibility?this._visibilityMode:"inherited"}set visibilityMode(e){c("visibilityMode",e).satisfies((e=>this.canToggleVisibility||"inherited"===e),'Sublayers of this type only support a visibility mode of "inherited".'),this._visibilityMode=e,"exclusive"===e&&this._ensureAtMostOneChildSublayerVisible()}get capabilities(){return this._capabilities()}get effectiveMinScale(){const e=this.sublayer?this.sublayer.minScale:0;if(this.parentSublayerExtension){const t=this.parentSublayerExtension.effectiveMinScale||1/0;if(t<(e||1/0))return t}if(this.layerExtension){const t=this.layerExtension.effectiveMinScale||1/0;if(t<(e||1/0))return t}return e}get effectiveMaxScale(){const e=this.sublayer?this.sublayer.maxScale:0;return this.parentSublayerExtension&&this.parentSublayerExtension.effectiveMaxScale>e?this.parentSublayerExtension.effectiveMaxScale:this.layerExtension&&this.layerExtension.effectiveMaxScale>e?this.layerExtension.effectiveMaxScale:e}get isEffectivelyVisible(){const e=!!this.sublayer&&this.sublayer.visible;return this.parentSublayerExtension?this.parentSublayerExtension.isEffectivelyVisible&&e:this.layerExtension?this.layerExtension.isEffectivelyVisible&&e:e}get title(){return this.sublayer?.title??("string"==typeof this._deferredSublayerProperties?.$ref||"number"==typeof this._deferredSublayerProperties?.$ref?this._deferredSublayerProperties?.$ref.toString():this._deferredSublayerProperties?.$ref?.title??this._deferredSublayerProperties?.$ref?.id.toString())??"Sublayer"}get supportsSublayers(){return!1}get canToggleVisibility(){return!0}get canChangeOpacity(){return!0}get canChangeScale(){return!0}get canChangeRenderer(){return!1}get canChangeLabels(){return!1}get canChangeDefinitionExpression(){return!1}get _layerSupportsHideChildren(){return!1}get _sublayers(){if(this.supportsSublayers)return this.sublayer?.sublayers}get effectiveFullExtent(){return this._effectiveFullExtent?this._effectiveFullExtent:this.parentSublayerExtension?this.parentSublayerExtension.effectiveFullExtent:this.layerExtension?this.layerExtension.effectiveFullExtent:void 0}get initialVisibility(){return this._initialVisibility??this.sublayer?.visible??!1}constructor(e){super(e),this._itemType=s.SUBLAYER_EXTENSION,this._watchHandles=[],this._onSublayerAddedPostInitialize=async e=>{try{await e.initialize()}catch(t){P.error({message:`Error occurred while initializing sublayer extension for sublayer '${e.title??e.sublayer.id??e.id}'.`,error:t})}},this._onSetSublayerVisible=e=>{if("inherited"===this.visibilityMode&&this.supportsSublayers&&this.sublayerExtensions)for(const t of this.sublayerExtensions.toArray())t.sublayer&&t.canToggleVisibility&&(t.sublayer.visible=e);this.notifyChange("isEffectivelyVisible")},this._onSetSublayersSublayerVisible=(e,t,i,s)=>{e&&"exclusive"===this.visibilityMode&&this._ensureAChildSublayerVisible(s)},this._onSublayersChange=e=>{e.added?.length&&"exclusive"===this.visibilityMode&&this._ensureAChildSublayerVisible(e.added[e.added.length-1])};const t=e||{};this._visibilityMode=this.canToggleVisibility?"independent":"inherited",this._sublayerExtensions=this._createSublayerExtensionCollection();const i=t.sublayer;let r;i?.hasOwnProperty("listMode")&&(r=w(i.listMode)),this.layerListSettings=this._createLayerListSettings({...r,...t.layerListSettings}),j(i)?(c("properties.sublayer",i).satisfies((e=>this._isSupportedSublayer(e)),V),this._setSublayer(i)):i&&(this._deferredSublayerProperties=i),this.watch("parentSublayerExtension.isEffectivelyVisible",(()=>this.notifyChange("isEffectivelyVisible")))}static create(e){if(!SublayerExtension.factory)throw new t("Cannot create sublayer extension: no sublayer extension factory has been registered.");return SublayerExtension.factory.create(e)}static _matchesRef(e,t,i){if(!e||!t)return!1;let s=t.$ref;if("string"==typeof s){const e=x(s);s={id:isNaN(e)?s:e,title:s}}else"number"==typeof s&&(s={id:s});const r=b(e)?e.subtypeCode:e.id;return"both"===i?r===s.id&&e.title===s.title:"by-id"===i?r===s.id:"by-title"===i&&e.title===s.title}getFeatures(e,i){if(!this.hasFeatures)throw new t(z);return super.getFeatures(e,i)}getFullExtent(){return this.effectiveFullExtent}async addFeatures(e,i){if(c("features",e).isNotMissing(),!this.hasFeatures)throw new t(z);await super.addFeatures(e,i)}async updateFeatures(e,i){if(c("features",e).isNotMissing(),!this.hasFeatures)throw new t(z);await super.updateFeatures(e,i)}async deleteFeatures(e,i){if(c("features",e).isNotMissing(),!this.hasFeatures)throw new t(z);await super.deleteFeatures(e,i)}_resolveSublayer(){if(this._sublayer||!this._deferredSublayerProperties||!this.layerExtension||!this.layerExtension.layer||!this.layerExtension.layer.sublayers)return;const e=e=>t=>SublayerExtension._matchesRef(t,this._deferredSublayerProperties,e),t=this.layerExtension.layer.sublayers.flatten((e=>e.sublayers));let i=t.find(e("both"));if(i||(i=t.find(e("by-title"))),i||(i=t.find(e("by-id"))),i&&this._isSupportedSublayer(i)){this._setSublayer(i);const e={sublayer:this._deferredSublayerProperties};this.assignProperties(e),this._originalRef=this._deferredSublayerProperties.$ref,this._deferredSublayerProperties=void 0}}_setLayerExtension(e){const t=this.layerExtension;this._layerExtension=e,this.layerExtension&&(this.layerExtension.watch("effectiveMinScale",(()=>this.notifyChange("effectiveMinScale"))),this.layerExtension.watch("effectiveMaxScale",(()=>this.notifyChange("effectiveMaxScale"))),this.layerExtension.watch("isEffectivelyVisible",(()=>this.notifyChange("isEffectivelyVisible")))),this._parentSublayerExtension||(t&&(this.featureSettings.formatSettings.parent===t.featureSettings.formatSettings&&(this.featureSettings.formatSettings.parent=void 0),this.taskSettings.parent===t.taskSettings&&(this.taskSettings.parent=void 0)),e&&(this.featureSettings.formatSettings.parent||(this.featureSettings.formatSettings.parent=e.featureSettings.formatSettings),this.taskSettings.parent||(this.taskSettings.parent=e.taskSettings))),this._resolveSublayer(),this.notifyChange("layerExtension"),this.supportsSublayers&&this._sublayerExtensions.onLayerExtensionChanged()}_setParentSublayerExtension(e){const t=this._parentSublayerExtension;this._parentSublayerExtension=e,this.parentSublayerExtension&&(this.parentSublayerExtension.watch("effectiveMinScale",(()=>this.notifyChange("effectiveMinScale"))),this.parentSublayerExtension.watch("effectiveMaxScale",(()=>this.notifyChange("effectiveMaxScale")))),t&&(this.featureSettings.formatSettings.parent===t.featureSettings.formatSettings&&(this.featureSettings.formatSettings.parent=this.layerExtension?this.layerExtension.featureSettings.formatSettings:void 0),this.taskSettings.parent===t.taskSettings&&(this.taskSettings.parent=this.layerExtension?this.layerExtension.taskSettings:void 0)),e&&((!this.featureSettings.formatSettings.parent||this.layerExtension&&this.featureSettings.formatSettings.parent===this.layerExtension.featureSettings.formatSettings)&&(this.featureSettings.formatSettings.parent=e.featureSettings.formatSettings),(!this.taskSettings.parent||this.layerExtension&&this.taskSettings.parent===this.layerExtension.taskSettings)&&(this.taskSettings.parent=e.taskSettings)),this._resolveSublayer(),this.notifyChange("parentSublayerExtension")}async _switchSublayer(e){if(e===this.sublayer)return;c("newSublayer",e).isNotMissing().satisfies((e=>e.id===this.sublayer.id),"Sublayer ID must match existing sublayer.").satisfies((e=>this._isSupportedSublayer(e)),V),this.isInitialized&&await g(e);const t=new Map;if(this.sublayer?.sublayers)for(const e of this.sublayer.sublayers.toArray())t.set(e.id,this.sublayerExtensions.forSublayer(e));this.canToggleVisibility&&(e.visible=this.sublayer.visible),this.canChangeOpacity&&(e.opacity=this.sublayer.opacity),this._setSublayer(e);const i=[];if(this.supportsSublayers&&this.sublayer.sublayers){const e=this.sublayer.sublayers.filter((e=>t.has(e.id))).toArray();i.push(...e.map((async e=>{const i=t.get(e.id);await i._switchSublayer(e),this._sublayerExtensions._register(i)})))}this.isInitialized&&i.push(this._initializeChildren()),await Promise.all(i)}async _postInitialize(){await super._postInitialize(),this.supportsSublayers&&this._watchHandles.push(m(this,"sublayer.sublayers",(async e=>{const t=(e.added??[]).map((e=>this.sublayerExtensions.forSublayer(e)));await Promise.all(t.map(this._onSublayerAddedPostInitialize))})))}async _onDestroy(){this._watchHandles.forEach((e=>e?.remove())),await Promise.all(this.sublayerExtensions.toArray().map((e=>e.destroy()))),await super._onDestroy()}_getSerializableProperties(){return{...super._getSerializableProperties(),iconUrl:"initial",visibilityMode:{serializeModes:["initial"],default:this.canToggleVisibility?"independent":"inherited"},layerListSettings:"initial",sublayerExtensions:{serializeModes:["initial","project"],serialize:()=>this.sublayerExtensions.map((e=>e.toItemUri())).toArray(),deserialize:e=>{_assignSublayerExtensions(this.sublayerExtensions,e,(e=>this._createSublayerExtension(e)))}},sublayer:{serializeModes:["initial","project"],serialize:()=>{if(this.sublayer){if(!this._layerExtension)return this._serializeSublayer(this._sublayer);{const e=getSublayerType(this._sublayer);if(this._originalRef)return{$ref:this._originalRef,$sublayerType:e};if(this._sublayer.title||this._sublayer.id)return{...this._createSublayerRef(),$sublayerType:e}}}else if(this._deferredSublayerProperties)return E(this._deferredSublayerProperties)},deserialize:e=>{if(j(e)){if(e!==this.sublayer)throw new Error("Property 'sublayer' is read-only.")}else this._sublayer?this._applySublayerProperties(e,this._sublayer):this._deferredSublayerProperties&&(this._deferredSublayerProperties={...this._deferredSublayerProperties,...e})}},requestHelper:{serialize:!1}}}_createSublayerExtension(e){throw new t(A)}_createSchema(){return new $(this)}_createLayerListSettings(e){return new M(e)}_capabilities(){return F}async _onInitialize(){if(await super._onInitialize(),this._sublayer||this._deferredSublayerProperties?.$ref||(this._setSublayer(await this._createSublayer(this._deferredSublayerProperties)),this._deferredSublayerProperties=void 0),this._resolveSublayer(),!this._sublayer){const e=this._deferredSublayerProperties?.$ref;if(!this._layerExtension)throw new t("Cannot resolve sublayer reference: missing parent layer extension.");throw new t(`No sublayer found matching reference "${e}".`)}this._initialVisibility=this.sublayer.visible,this.supportsSublayers&&this._sublayerExtensions.onParentInitialized()}*_initializableChildCollections(){yield*super._initializableChildCollections(),yield this.sublayerExtensions}_createSublayerRef(){return{$ref:{id:b(this._sublayer)?this._sublayer.subtypeCode:this._sublayer.id,title:this._sublayer.title}}}_createSublayerExtensionCollection(){return new SubSublayerExtensionCollection(this)}_watchSublayerProperties(){this._watchHandles.push(this.sublayer.watch("minScale",(()=>this.notifyChange("effectiveMinScale")),!0),this.sublayer.watch("maxScale",(()=>this.notifyChange("effectiveMaxScale")),!0))}_setSublayer(e){this._sublayer=e,this._watchHandles.push(e.watch("visible",this._onSetSublayerVisible,!0)),this.supportsSublayers&&this._watchHandles.push(m(e,"sublayers",this._onSublayersChange,!0),v(e,"sublayers","visible",this._onSetSublayersSublayerVisible,!0)),this._onSetSublayerVisible(this.sublayer.visible),"exclusive"===this.visibilityMode&&this._ensureAtMostOneChildSublayerVisible(),this._watchSublayerProperties(),this.notifyChange("sublayer"),this.notifyChange("title"),this.notifyChange("effectiveMinScale"),this.notifyChange("effectiveMaxScale"),this.notifyChange("isEffectivelyVisible")}_ensureAChildSublayerVisible(e){for(const t of this._sublayers.toArray())t!==e&&(t.visible=!1)}_ensureAtMostOneChildSublayerVisible(){this.sublayer&&this._sublayers&&this._ensureAChildSublayerVisible(this._sublayers.find((e=>e.visible)))}}let $=class extends a{constructor(e){super(),this._sublayerBindings=new Map,this._sublayerExtension=e,this._bindSettingsToSublayerProperties()}get spatialReference(){if(this._sublayerExtension.layerExtension)return this._sublayerExtension.layerExtension.schema.spatialReference}set spatialReference(e){throw new t("Cannot set sublayer schema spatial reference.")}_getPropertyBindings(){return{}}_bindSettingsToSublayerProperties(){const e=this._getPropertyBindings();for(const t of Object.keys(e)){let i=e[t];"string"==typeof i&&(i={property:i}),this._sublayerBindings.set(t,i),i.hasOwnProperty("value")||this._sublayerExtension.watch(`sublayer.${i.property}`,(()=>this.notifyChange(t)),!i.hasOwnProperty("sync")||i.sync)}}};$=e([n],$);export{$ as SublayerSchema};export class SubSublayerExtensionCollection extends C{get _layerExtension(){return this._parent.layerExtension}constructor(e,t){super(e,t??"sublayer.sublayers")}add(e,i){if(c("sublayerX",e).isNotMissing(),!this._parent.supportsSublayers)throw new t(A);return e.sublayer&&this._parent.sublayer&&!this._parent.sublayer.sublayers&&(this._parent.sublayer.sublayers=[]),e.parentSublayerExtension&&e.parentSublayerExtension.sublayerExtensions.remove(e),super.add(e,i)}_onAdded(e){super._onAdded(e),e._setParentSublayerExtension(this._parent)}_onRemoved(e){super._onRemoved(e),e._setParentSublayerExtension(void 0)}}export function _assignSublayerExtensions(e,t,s){d(e,t,{onNew:(t,r)=>{try{e.add(i(t)?t:s(t),T(t)?void 0:r)}catch(e){P.warn({message:`Error occurred while adding sublayer extension for sublayer '${t.title??t.sublayer?.id??t.id}'.`,error:e})}},onMatch:(t,s,r,a)=>{try{i(s)||t.assignProperties(s),r===a||T(s)||e.reorder(t,a)}catch(e){P.warn({message:`Error occurred while assigning sublayer extension properties for sublayer '${t.title??t.sublayer?.id??t.id}'.`,error:e})}},equals:(e,t)=>i(t)?t===e:!!SublayerExtension._matchesRef(e.sublayer,t.sublayer,"both")||e.id===t.id})}function j(e){return e&&"function"==typeof e.get}function T(e){return i(e)?!!e._deferredSublayerProperties?.$ref:!j(e.sublayer)&&!!e.sublayer?.$ref}
@@ -49,6 +49,10 @@ export declare class LayerListSettings extends SerializableBase<LayerListSetting
49
49
  */
50
50
  get included(): boolean;
51
51
  set included(value: boolean);
52
+ /**
53
+ * Whether this layer is effectively included in the layer list.
54
+ */
55
+ get effectivelyIncluded(): boolean;
52
56
  /**
53
57
  * Initial value of the expanded property.
54
58
  */
@@ -112,6 +116,10 @@ export declare abstract class ExtensionBaseLayerListSettings extends LayerListSe
112
116
  */
113
117
  get included(): boolean;
114
118
  set included(value: boolean);
119
+ /**
120
+ * @inheritDoc
121
+ */
122
+ get effectivelyIncluded(): boolean;
115
123
  /**
116
124
  * Whether child layers should be included in the layer list. This value may
117
125
  * not be set to true, if the associated LayerExtension or SublayerExtension
@@ -1 +1 @@
1
- import{__decorate as i}from"tslib";import{whenOnce as e}from"@arcgis/core/core/reactiveUtils";import{InvalidOperationError as t}from"../../InvalidOperationError.js";import{isLayerExtension as d}from"../../ItemType.js";import{serializable as n,SerializableBase as s}from"../../support/Serializable.js";import{checkArg as l}from"../../utilities/checkArg.js";export class LayerListSettingsProperties{}let r=class extends s{get expanded(){return this._expanded}set expanded(i){this._expanded=i}get included(){return this._included}set included(i){this._included=i}get initialExpanded(){return this._initialExpanded}get initialChildrenIncluded(){return this._initialChildrenIncluded}get initialIncluded(){return this._initialIncluded}get childrenIncluded(){return this._childrenIncluded}set childrenIncluded(i){this._childrenIncluded=i}_getSerializableProperties(){return{expanded:{serializeModes:["initial"],default:!1},included:{serializeModes:["initial"],default:!0},childrenIncluded:{serializeModes:["initial"],default:!0}}}};r=i([n],r);export{r as LayerListSettings};export class ExtensionBaseLayerListSettings extends r{constructor(i,t,n){l("extension",t).isNotMissing().isDefined(),super(i),this._extension=t,this._defaultChildrenIncluded=n;const s=()=>d(t)?t.layer:t.sublayer,r=s();"included"in i?(this._initialIncluded=i.included,this.notifyChange("initialIncluded")):(r?this._initialIncluded=this.included:(async()=>{await e(s),this._initialIncluded=this.included,this.notifyChange("initialIncluded")})(),void 0===this._initialIncluded&&(this._initialIncluded=!0,this.notifyChange("initialIncluded"))),"childrenIncluded"in i?(this._initialChildrenIncluded=i.childrenIncluded,this.notifyChange("initialChildrenIncluded")):(r?this._initialChildrenIncluded=this.childrenIncluded:(async()=>{await e(s),this._initialChildrenIncluded=this.childrenIncluded,this.notifyChange("initialChildrenIncluded")})(),void 0===this._initialChildrenIncluded&&(this._initialChildrenIncluded=!0,this.notifyChange("initialChildrenIncluded"))),r?this._initialEsriLayerListMode=r.listMode:(async()=>{await e(s),void 0===this._initialEsriLayerListMode&&(this._initialEsriLayerListMode=this._esriLayer.listMode)})(),this._initialExpanded=i.expanded??!1}get included(){return void 0!==super.included?super.included:!this._esriLayer||"hide"!==this._esriLayer.listMode}set included(i){l("value",i).satisfies((i=>"boolean"==typeof i),"LayerListSettings must be set to boolean values"),super.included=i,this._setListMode()}get childrenIncluded(){return void 0!==super.childrenIncluded?super.childrenIncluded:this._esriLayer?this._supportsChildren&&"show"===this._esriLayer.listMode:this._defaultChildrenIncluded??this._supportsChildren}set childrenIncluded(i){if(l("value",i).satisfies((i=>"boolean"==typeof i),"LayerListSettings must be set to boolean values"),!this._supportsChildren&&i)throw new t("Cannot set 'childrenIncluded' to true on a layer that does not support sublayers.");super.childrenIncluded=i,this._setListMode()}get expanded(){return super.expanded}set expanded(i){if(l("value",i).satisfies((i=>"boolean"==typeof i),"LayerListSettings must be set to boolean values"),!this._supportsChildren&&i)throw new t("Cannot set 'expanded' to true on a layer that does not support sublayers.");super.expanded=i}onLayerExtensionInitialized(){this._setListMode(),this._extension.watch(this._listModePath,((i,e)=>{i!==e&&(super.childrenIncluded=void 0,super.included=void 0)}),!0)}_getSerializableProperties(){return{...super._getSerializableProperties(),included:{serializeModes:["initial"],isDefault:i=>!!i},childrenIncluded:{serializeModes:["initial"],isDefault:i=>i===this._childrenIncludedSerializationDefault()}}}_childrenIncludedSerializationDefault(){return this._esriLayer?"show"===this._initialEsriLayerListMode:this._defaultChildrenIncluded??this._supportsChildren}_setListMode(){const i=this._esriLayer;i&&(void 0===this._initialEsriLayerListMode&&(this._initialEsriLayerListMode=i.listMode),!this.childrenIncluded&&this._extension._layerSupportsHideChildren&&this.included?i.listMode="hide-children":this.childrenIncluded||this.included?i.listMode="show":i.listMode="hide")}}export function fromLayerListMode(i){const e={};return"hide"===i?e.included=!1:"show"===i?e.included=!0:"hide-children"===i&&(e.childrenIncluded=!1),e}
1
+ import{__decorate as e}from"tslib";import{whenOnce as i}from"@arcgis/core/core/reactiveUtils";import{InvalidOperationError as t}from"../../InvalidOperationError.js";import{isLayerExtension as d,isSublayerExtension as n}from"../../ItemType.js";import{serializable as s,SerializableBase as l}from"../../support/Serializable.js";import{checkArg as r}from"../../utilities/checkArg.js";export class LayerListSettingsProperties{}let a=class extends l{get expanded(){return this._expanded}set expanded(e){this._expanded=e}get included(){return this._included}set included(e){this._included=e}get effectivelyIncluded(){return this.included}get initialExpanded(){return this._initialExpanded}get initialChildrenIncluded(){return this._initialChildrenIncluded}get initialIncluded(){return this._initialIncluded}get childrenIncluded(){return this._childrenIncluded}set childrenIncluded(e){this._childrenIncluded=e}_getSerializableProperties(){return{expanded:{serializeModes:["initial"],default:!1},included:{serializeModes:["initial"],default:!0},childrenIncluded:{serializeModes:["initial"],default:!0}}}};a=e([s],a);export{a as LayerListSettings};export class ExtensionBaseLayerListSettings extends a{constructor(e,t,n){r("extension",t).isNotMissing().isDefined(),super(e),this._extension=t,this._defaultChildrenIncluded=n;const s=()=>d(t)?t.layer:t.sublayer,l=s();"included"in e?(this._initialIncluded=e.included,this.notifyChange("initialIncluded")):(l?this._initialIncluded=this.included:(async()=>{await i(s),this._initialIncluded=this.included,this.notifyChange("initialIncluded")})(),void 0===this._initialIncluded&&(this._initialIncluded=!0,this.notifyChange("initialIncluded"))),"childrenIncluded"in e?(this._initialChildrenIncluded=e.childrenIncluded,this.notifyChange("initialChildrenIncluded")):(l?this._initialChildrenIncluded=this.childrenIncluded:(async()=>{await i(s),this._initialChildrenIncluded=this.childrenIncluded,this.notifyChange("initialChildrenIncluded")})(),void 0===this._initialChildrenIncluded&&(this._initialChildrenIncluded=!0,this.notifyChange("initialChildrenIncluded"))),l?this._initialEsriLayerListMode=l.listMode:(async()=>{await i(s),void 0===this._initialEsriLayerListMode&&(this._initialEsriLayerListMode=this._esriLayer.listMode)})(),this._initialExpanded=e.expanded??!1}get included(){return void 0!==super.included?super.included:!this._esriLayer||"hide"!==this._esriLayer.listMode}set included(e){r("value",e).satisfies((e=>"boolean"==typeof e),"LayerListSettings must be set to boolean values"),super.included=e,this._setListMode()}get effectivelyIncluded(){const e=i=>{if(d(i)){const t=i.parentLayerExtension;return t?t.layerListSettings.childrenIncluded&&e(t):i.layerListSettings.included}if(n(i)){const t=i.parentSublayerExtension??i.layerExtension;return t.layerListSettings.childrenIncluded&&e(t)}return!1};return e(this._extension)}get childrenIncluded(){return void 0!==super.childrenIncluded?super.childrenIncluded:this._esriLayer?this._supportsChildren&&"show"===this._esriLayer.listMode:this._defaultChildrenIncluded??this._supportsChildren}set childrenIncluded(e){if(r("value",e).satisfies((e=>"boolean"==typeof e),"LayerListSettings must be set to boolean values"),!this._supportsChildren&&e)throw new t("Cannot set 'childrenIncluded' to true on a layer that does not support sublayers.");super.childrenIncluded=e,this._setListMode()}get expanded(){return super.expanded}set expanded(e){if(r("value",e).satisfies((e=>"boolean"==typeof e),"LayerListSettings must be set to boolean values"),!this._supportsChildren&&e)throw new t("Cannot set 'expanded' to true on a layer that does not support sublayers.");super.expanded=e}onLayerExtensionInitialized(){this._setListMode(),this._extension.watch(this._listModePath,((e,i)=>{e!==i&&(super.childrenIncluded=void 0,super.included=void 0)}),!0)}_getSerializableProperties(){return{...super._getSerializableProperties(),included:{serializeModes:["initial"],isDefault:e=>!!e},childrenIncluded:{serializeModes:["initial"],isDefault:e=>e===this._childrenIncludedSerializationDefault()}}}_childrenIncludedSerializationDefault(){return this._esriLayer?"show"===this._initialEsriLayerListMode:this._defaultChildrenIncluded??this._supportsChildren}_setListMode(){const e=this._esriLayer;e&&(void 0===this._initialEsriLayerListMode&&(this._initialEsriLayerListMode=e.listMode),!this.childrenIncluded&&this._extension._layerSupportsHideChildren&&this.included?e.listMode="hide-children":this.childrenIncluded||this.included?e.listMode="show":e.listMode="hide")}}export function fromLayerListMode(e){const i={};return"hide"===e?i.included=!1:"show"===e?i.included=!0:"hide-children"===e&&(i.childrenIncluded=!1),i}
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": "40.1.0",
4
+ "version": "40.2.0",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://dev.azure.com/vertigis/Studio/_git/arcgis-extensions-ts"
@@ -116,6 +116,7 @@
116
116
  "pre-commit": "npx lint-staged"
117
117
  },
118
118
  "lint-staged": {
119
- "*.{js,json,ts,md,xml,xsd}": "prettier --write"
119
+ "*.{js,json,ts,md,xml,xsd}": "prettier --write",
120
+ "*.{ts, tsx}": "eslint --max-warnings 0"
120
121
  }
121
122
  }
@@ -1 +1 @@
1
- import{executeQuery as e,executeCount as r}from"../../support/_query.js";import{isSceneLayer as t}from"../../utilities/_layers.js";import{QueryProviderBase as a}from"./QueryProviderBase.js";export class SceneLayerQueryProvider extends a{isSupported(e){const{layer:r}=e;return t(r)&&!!r.associatedLayer}_query(r,t,a){const{layer:s}=r,o=s.associatedLayer.createQuery();return o.where=t,o.outFields=a.outFields,o.returnGeometry=a.returnGeometry,o.outSpatialReference=a.outSpatialReference,o.maxAllowableOffset=a.maxAllowableOffset,a.spatialFilter&&(o.spatialRelationship="intersects",o.geometry=a.spatialFilter),o.num=a.maxResults,o.returnZ=!0,e(o,r,s.associatedLayer,a.cancelToken)}async _count(e,t,a){const{layer:s}=e,o=s.associatedLayer.createQuery();return o.where=t,o.outFields=a.outFields,o.returnGeometry=a.returnGeometry,a.spatialFilter&&(o.spatialRelationship="intersects",o.geometry=a.spatialFilter),o.num=a.maxResults,r(o,e,s.associatedLayer,a.cancelToken)}}
1
+ import{executeQuery as e,executeCount as r,concatenateWhereClauses as t}from"../../support/_query.js";import{isSceneLayer as a}from"../../utilities/_layers.js";import{QueryProviderBase as s}from"./QueryProviderBase.js";export class SceneLayerQueryProvider extends s{isSupported(e){const{layer:r}=e;return a(r)&&!!r.associatedLayer}_query(r,a,s){const{layer:i}=r,o=i.associatedLayer.createQuery();return o.where=t(a,i.definitionExpression),o.outFields=s.outFields,o.returnGeometry=s.returnGeometry,o.outSpatialReference=s.outSpatialReference,o.maxAllowableOffset=s.maxAllowableOffset,s.spatialFilter&&(o.spatialRelationship="intersects",o.geometry=s.spatialFilter),o.num=s.maxResults,o.returnZ=!0,e(o,r,i.associatedLayer,s.cancelToken)}async _count(e,t,a){const{layer:s}=e,i=s.associatedLayer.createQuery();return i.where=t,i.outFields=a.outFields,i.returnGeometry=a.returnGeometry,a.spatialFilter&&(i.spatialRelationship="intersects",i.geometry=a.spatialFilter),i.num=a.maxResults,r(i,e,s.associatedLayer,a.cancelToken)}}
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 = "40.1.0";
4
+ export declare const version = "40.2.0";
package/version.js CHANGED
@@ -1 +1 @@
1
- export const version="40.1.0";
1
+ export const version="40.2.0";