@arcgis/core 5.1.0-next.54 → 5.1.0-next.55
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/analysis/VolumeMeasurement/volumeMeasurementConfiguration.js +1 -1
- package/applications/Components/navigationDuration.d.ts +15 -0
- package/applications/Components/navigationDuration.js +2 -0
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/05bc675c029ed311427f.js +1 -0
- package/assets/esri/core/workers/chunks/{123e15c9e068a053d54e.js → 05d25a98c54679233902.js} +1 -1
- package/assets/esri/core/workers/chunks/{16a46688df5fad5cf8d5.js → 0b4a2361b9f9a6c0b8a7.js} +1 -1
- package/assets/esri/core/workers/chunks/{1fdd736c4932655ff1d9.js → 0e88e61d89f89994c4bf.js} +1 -1
- package/assets/esri/core/workers/chunks/0f2ab57e4eb722b3b0c0.js +1 -0
- package/assets/esri/core/workers/chunks/{ce59ec4f0cfbdf780bcb.js → 1f91280032aa42b1585b.js} +1 -1
- package/assets/esri/core/workers/chunks/254898b41cabe313b6ce.js +1 -0
- package/assets/esri/core/workers/chunks/26cafd20c8d03c274389.js +1 -0
- package/assets/esri/core/workers/chunks/{a69f1879735a031f62e9.js → 2a2d5f9ea42cb2eee9c6.js} +1 -1
- package/assets/esri/core/workers/chunks/{c03190faca955bffc8c1.js → 2bc6edeb3156d241677b.js} +1 -1
- package/assets/esri/core/workers/chunks/{d587b7842091affdaac3.js → 3158a3487d3e8a61b680.js} +1 -1
- package/assets/esri/core/workers/chunks/{07e791530677f7e70f32.js → 3a2ecb883fdb5c598544.js} +2 -2
- package/assets/esri/core/workers/chunks/{d7456829e404874a9e2f.js → 3e0752a81a7247c567ab.js} +1 -1
- package/assets/esri/core/workers/chunks/{fcda652fb5262696d59c.js → 3ef740d25dc17bef11b2.js} +1 -1
- package/assets/esri/core/workers/chunks/{2304f7b8173cf86dd805.js → 457bbf27e9bc18132464.js} +1 -1
- package/assets/esri/core/workers/chunks/45eddf3918973fa8d751.js +1 -0
- package/assets/esri/core/workers/chunks/4a6186001323b47c23a4.js +1 -0
- package/assets/esri/core/workers/chunks/{0b79630ad435a7734104.js → 4b3622fc355fd2fd8678.js} +1 -1
- package/assets/esri/core/workers/chunks/{193775b3b7de8f5dc578.js → 4fb718174c6e07d752e0.js} +1 -1
- package/assets/esri/core/workers/chunks/{cd14b6157862f33ab116.js → 5143f74f1fe7533a6069.js} +1 -1
- package/assets/esri/core/workers/chunks/{36425d29aaa5852cb41d.js → 522bc1d79dbe957301e4.js} +1 -1
- package/assets/esri/core/workers/chunks/{f80f04657762666b9165.js → 52dbfd7519555028a8af.js} +1 -1
- package/assets/esri/core/workers/chunks/{f4472e3486fdc33abb9a.js → 56bce3a6701f8549606b.js} +1 -1
- package/assets/esri/core/workers/chunks/572fcd33ae3648ed4f9c.js +1 -0
- package/assets/esri/core/workers/chunks/{d6f1ed8d8f76a32bc81d.js → 576a1784e93c5406e657.js} +1 -1
- package/assets/esri/core/workers/chunks/{ddc7956d80498518551e.js → 5a1d975b3e9e6b7eff67.js} +1 -1
- package/assets/esri/core/workers/chunks/5a83ea967ecde01d5622.js +1 -0
- package/assets/esri/core/workers/chunks/{4c38af9ae023fde2b5cd.js → 5aff2d6ae0d2a2d92ecc.js} +1 -1
- package/assets/esri/core/workers/chunks/5eb9fdb076488de9cd83.js +1 -0
- package/assets/esri/core/workers/chunks/{b59f03c64e4965d87291.js → 66fc3c4d6c54eee231b9.js} +1 -1
- package/assets/esri/core/workers/chunks/{de359f89e03da18999fc.js → 691d0a60354b6458b9de.js} +1 -1
- package/assets/esri/core/workers/chunks/{d44217de4c73475f9c66.js → 73a045061e69a22b6869.js} +1 -1
- package/assets/esri/core/workers/chunks/76064c2c801da55cd844.js +1 -0
- package/assets/esri/core/workers/chunks/770880ad43f252962017.js +1 -0
- package/assets/esri/core/workers/chunks/{52c90975cf22add7ee2b.js → 78cb6b9ab32abdd1d530.js} +1 -1
- package/assets/esri/core/workers/chunks/{11fed97adc9bca0f95e9.js → 7b6e3cc086d13da770fa.js} +1 -1
- package/assets/esri/core/workers/chunks/{d69cdee402ba4fc3735f.js → 7ed2aa1092c0a2c839c0.js} +1 -1
- package/assets/esri/core/workers/chunks/{097c037705ab485372ee.js → 83113a9e284701d053b5.js} +1 -1
- package/assets/esri/core/workers/chunks/8418ad9ad7b6481ebe82.js +1 -0
- package/assets/esri/core/workers/chunks/{173d94e162b210dee0a2.js → 85c72d9fa533552a6e8a.js} +1 -1
- package/assets/esri/core/workers/chunks/{5d202f60891fcae7174d.js → 861a7d0e665add901e11.js} +1 -1
- package/assets/esri/core/workers/chunks/{16ed8c0af8bb8b400163.js → 87077f4cbca13e030411.js} +1 -1
- package/assets/esri/core/workers/chunks/{199f70c0373f6008a545.js → 8df0c154bb0d79a905c0.js} +1 -1
- package/assets/esri/core/workers/chunks/{0f4759efc0982fb0ea03.js → 9066f095f16448c0a04e.js} +1 -1
- package/assets/esri/core/workers/chunks/91718795fc4ca6516ac7.js +1 -0
- package/assets/esri/core/workers/chunks/{796d27d1bbb2eed53cbd.js → 9321f5ec514805307219.js} +1 -1
- package/assets/esri/core/workers/chunks/{57dc80942e51dedd8335.js → 93d1118f7a909d123b40.js} +1 -1
- package/assets/esri/core/workers/chunks/{e6220c1fa887e21ffbbd.js → 9a235c92f21df2c17aa8.js} +1 -1
- package/assets/esri/core/workers/chunks/{6666ef3fd6ce877a4509.js → 9d11e7972bc298cb94ce.js} +1 -1
- package/assets/esri/core/workers/chunks/a11f05ddd8314b648f76.js +1 -0
- package/assets/esri/core/workers/chunks/{d4961d307651431328a8.js → a256edc8337e462f80f0.js} +1 -1
- package/assets/esri/core/workers/chunks/{2714ec856c2b3223425b.js → a41fabf8b2cf15b7d0c9.js} +1 -1
- package/assets/esri/core/workers/chunks/{e2d1d9929ed7744785a1.js → a7a553e245ba011d259f.js} +1 -1
- package/assets/esri/core/workers/chunks/{7ef1c1f765b6d423e474.js → a9eb90b901e64e67b7a3.js} +1 -1
- package/assets/esri/core/workers/chunks/{21decfc1e477fb769204.js → aa7aaeae31ddb259e55e.js} +1 -1
- package/assets/esri/core/workers/chunks/{a7b315a660f0f4e1d197.js → ad1946c084219bb678a0.js} +1 -1
- package/assets/esri/core/workers/chunks/b056b4c79bcd542dd1d2.js +1 -0
- package/assets/esri/core/workers/chunks/{bae1d6dd2376dff271e8.js → b1a0a7cdaf50f98adb3e.js} +1 -1
- package/assets/esri/core/workers/chunks/{c1ad062ccc1817cbee4c.js → b20f4c82d0b44fdb4670.js} +1 -1
- package/assets/esri/core/workers/chunks/{1a1e57267306c07e5bdb.js → b3f0600729227b458a75.js} +1 -1
- package/assets/esri/core/workers/chunks/{16f5cd740321a3539bf1.js → bacc343a79828e456de7.js} +1 -1
- package/assets/esri/core/workers/chunks/{e23fc5853e2f4016936b.js → c250799c131aa4ed2c35.js} +1 -1
- package/assets/esri/core/workers/chunks/{a495e60996a36ce19a32.js → c4da2ca1dee0c44051d0.js} +1 -1
- package/assets/esri/core/workers/chunks/{be60a6e210186ff09ae2.js → c6149e0ac1c103e03baf.js} +1 -1
- package/assets/esri/core/workers/chunks/c69fefe9d51ac7c2b0a6.js +1 -0
- package/assets/esri/core/workers/chunks/{bbb9659f79511c2c4690.js → c91d39e8e14be3d8bdf5.js} +1 -1
- package/assets/esri/core/workers/chunks/{c93454e37ae0f124bcb0.js → c9c5e6996f36ec4b1558.js} +1 -1
- package/assets/esri/core/workers/chunks/{4c8c69d081ed37bf5bc5.js → cd391415b8b8320e12e4.js} +1 -1
- package/assets/esri/core/workers/chunks/d3b3e8c6d7096bc59489.js +1 -0
- package/assets/esri/core/workers/chunks/{bad82ce3f84f7efb7ab7.js → da2a10e72a315c3c1f82.js} +1 -1
- package/assets/esri/core/workers/chunks/de79645e559a2d1ffa67.js +1 -0
- package/assets/esri/core/workers/chunks/{8569ae372fc64641b6b1.js → e2e3c39876bbe019c57a.js} +1 -1
- package/assets/esri/core/workers/chunks/{d31e68e73527c88b8276.js → e7e565e7c0ce1464c6b0.js} +1 -1
- package/assets/esri/core/workers/chunks/{f3f26f6116ab9126c2e7.js → e8a23ae30d586e3a973c.js} +1 -1
- package/assets/esri/core/workers/chunks/{d1aa1d51662f4a01e793.js → ea068f75397c3b3337ec.js} +3 -3
- package/assets/esri/core/workers/chunks/{c09bc36347e8eb9fff00.js → f09446b9ff937a84d6d3.js} +1 -1
- package/assets/esri/core/workers/chunks/{354b309c8225336bc1e5.js → f6d047358d14328f3622.js} +1 -1
- package/assets/esri/core/workers/chunks/{b43889ed9737c27e89f1.js → fb9a889ec9fd23739a14.js} +1 -1
- package/assets/esri/core/workers/chunks/{b2a67fe89f6505498bc3.js → fe1b67ab7748a3aef231.js} +1 -1
- package/assets/esri/themes/base/_Ui.scss +3 -3
- package/assets/esri/themes/base/_mixins.scss +2 -2
- package/assets/esri/themes/base/widgets/_Attachments.scss +3 -3
- package/assets/esri/themes/base/widgets/_BasemapGallery.scss +8 -8
- package/assets/esri/themes/base/widgets/_BasemapToggle.scss +1 -1
- package/assets/esri/themes/base/widgets/_BuildingExplorer.scss +1 -1
- package/assets/esri/themes/base/widgets/_BuildingLevelPicker.scss +4 -4
- package/assets/esri/themes/base/widgets/_BuildingPhasePicker.scss +1 -1
- package/assets/esri/themes/base/widgets/_CoordinateConversion.scss +2 -2
- package/assets/esri/themes/base/widgets/_DatePicker.scss +4 -4
- package/assets/esri/themes/base/widgets/_Daylight.scss +1 -1
- package/assets/esri/themes/base/widgets/_Editor.scss +2 -2
- package/assets/esri/themes/base/widgets/_ElevationProfile.scss +2 -2
- package/assets/esri/themes/base/widgets/_FeatureMedia.scss +1 -1
- package/assets/esri/themes/base/widgets/_FeatureTable.scss +1 -1
- package/assets/esri/themes/base/widgets/_FloorFilter.scss +2 -2
- package/assets/esri/themes/base/widgets/_Grid.scss +1 -1
- package/assets/esri/themes/base/widgets/_GridControls.scss +1 -1
- package/assets/esri/themes/base/widgets/_ItemList.scss +1 -1
- package/assets/esri/themes/base/widgets/_Legend.scss +1 -1
- package/assets/esri/themes/base/widgets/_LineOfSight.scss +1 -1
- package/assets/esri/themes/base/widgets/_OrientedImageryViewer.scss +1 -1
- package/assets/esri/themes/base/widgets/_OrientedImageryViewerNavigationUI.scss +3 -3
- package/assets/esri/themes/base/widgets/_Popup.scss +1 -1
- package/assets/esri/themes/base/widgets/_Print.scss +3 -3
- package/assets/esri/themes/base/widgets/_Sketch.scss +1 -1
- package/assets/esri/themes/base/widgets/_Slice.scss +1 -1
- package/assets/esri/themes/base/widgets/_Slider.scss +3 -3
- package/assets/esri/themes/base/widgets/_SnappingControls.scss +2 -2
- package/assets/esri/themes/base/widgets/_Spinner.scss +2 -2
- package/assets/esri/themes/base/widgets/_Swipe.scss +2 -2
- package/assets/esri/themes/base/widgets/_Tooltip.scss +2 -2
- package/assets/esri/themes/base/widgets/_UtilityNetworkTrace.scss +1 -1
- package/assets/esri/themes/base/widgets/_VideoPlayer.scss +2 -2
- package/assets/esri/themes/base/widgets/_Widget.scss +8 -8
- package/assets/esri/themes/dark/main.css +1 -1
- package/assets/esri/themes/light/main.css +1 -1
- package/assets/esri/themes/light/view.css +1 -1
- package/chunks/CutFillComposition.glsl.js +10 -4
- package/chunks/RibbonLine.glsl.js +75 -63
- package/chunks/Water.glsl.js +24 -16
- package/config.js +1 -1
- package/geometry/operators/offsetOperator.d.ts +1 -1
- package/geometry/operators/proximityOperator.d.ts +1 -1
- package/geometry/support/curves/bezierCurveUtils.js +1 -1
- package/geometry/support/curves/circularArcUtils.js +1 -1
- package/geometry/support/curves/ellipticArc4Utils.js +1 -1
- package/geometry/support/curves/ellipticArc7Utils.js +1 -1
- package/geometry/support/zscale.js +1 -1
- package/interfaces.d.ts +7 -0
- package/kernel.js +1 -1
- package/layers/LinkChartLayer.js +1 -1
- package/layers/OrientedImageryLayer.d.ts +0 -152
- package/layers/OrientedImageryLayer.js +1 -1
- package/layers/support/layerUtils.js +1 -1
- package/package.json +1 -1
- package/portal/schemas/definitions.js +1 -1
- package/support/revision.js +1 -1
- package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
- package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementCutFillVisualization.js +1 -1
- package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementShiftTool.js +1 -1
- package/views/3d/interactive/manipulators/ShiftManipulator.js +1 -1
- package/views/3d/layers/GaussianSplatLayerView3D.js +1 -1
- package/views/3d/layers/graphics/Graphics3DLineSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DPolygonFillSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/lineUtils.js +1 -1
- package/views/3d/support/gaussianSplatting/GaussianSplatDataStore.js +1 -1
- package/views/3d/support/gaussianSplatting/GaussianSplatFadeHelper.js +1 -1
- package/views/3d/support/gaussianSplatting/GaussianTile.js +1 -1
- package/views/3d/terrain/TerrainRenderer.js +1 -1
- package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js +1 -1
- package/views/3d/webgl-engine/core/shaderTechnique/ShaderTechniqueRepository.js +1 -1
- package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
- package/views/3d/webgl-engine/lib/CutFillComputationRenderNode.js +1 -1
- package/views/3d/webgl-engine/lib/CutFillVisualizationRenderNode.js +1 -1
- package/views/3d/webgl-engine/lib/Renderer.js +1 -1
- package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/PathMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/PolygonOffset.js +1 -1
- package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/Water.glsl.js +1 -1
- package/views/3d/webgl-engine/materials/WaterMaterial.js +1 -1
- package/views/3d/webgl-engine/shaders/RibbonLineTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/RibbonLineTechniqueConfiguration.js +1 -1
- package/views/3d/webgl.js +1 -1
- package/views/draw/plugins/TangentArcSegmentPlugin.js +2 -0
- package/views/webgl/checkWebGLError.js +1 -1
- package/widgets/Sketch/support/PluginManager.js +1 -1
- package/assets/esri/core/workers/chunks/0ab19ad980fda1cf402a.js +0 -1
- package/assets/esri/core/workers/chunks/1cce2f8837ad765acf44.js +0 -1
- package/assets/esri/core/workers/chunks/20f9f3470cad47d01803.js +0 -1
- package/assets/esri/core/workers/chunks/23a9070e9362b8439770.js +0 -1
- package/assets/esri/core/workers/chunks/28ac3a75130fe2b57ac7.js +0 -1
- package/assets/esri/core/workers/chunks/36a0e48113ab59a4f21d.js +0 -1
- package/assets/esri/core/workers/chunks/440a650ed0867a16f559.js +0 -1
- package/assets/esri/core/workers/chunks/440f76c397a813b0dcf9.js +0 -1
- package/assets/esri/core/workers/chunks/5344919fc6e8050450f1.js +0 -1
- package/assets/esri/core/workers/chunks/5e9bd5ed6ecee5b15127.js +0 -1
- package/assets/esri/core/workers/chunks/64845b1f53eca9db1229.js +0 -1
- package/assets/esri/core/workers/chunks/7278cc37e85f0242f19b.js +0 -1
- package/assets/esri/core/workers/chunks/7d56b2ac5030dd8b748e.js +0 -1
- package/assets/esri/core/workers/chunks/96e799ca97989a6ed448.js +0 -1
- package/assets/esri/core/workers/chunks/9db2ff1d4cbb5d1b623e.js +0 -1
- package/assets/esri/core/workers/chunks/ab414a60808ea05a63e6.js +0 -1
- package/assets/esri/core/workers/chunks/ec65c9c72507ef9a9cf9.js +0 -1
- package/assets/esri/core/workers/chunks/f1767b8ba82fdd9bd947.js +0 -1
package/layers/LinkChartLayer.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import{serializationUtilsModuleWrapper as t}from"../applications/KnowledgeStudio/resourceSerializationUtils.js";import i from"../core/Collection.js";import{deprecated as a}from"../core/deprecate.js";import n from"../core/Error.js";import o from"../core/Logger.js";import{getOrCreateMapValue as s}from"../core/MapUtils.js";import{MultiOriginJSONSupportMixin as r}from"../core/MultiOriginJSONSupport.js";import{throwIfAborted as l,isAbortError as h,createAbortError as d}from"../core/promiseUtils.js";import{watch as p,sync as c}from"../core/reactiveUtils.js";import{property as u,subclass as y}from"../core/accessorSupport/decorators.js";import{idToName as g}from"../core/accessorSupport/PropertyOrigin.js";import m from"../geometry/Extent.js";import f from"../geometry/Point.js";import L from"../geometry/Polyline.js";import{polygonCentroidPoint as w}from"../geometry/support/centroid.js";import b from"./Layer.js";import{convertFromGeometry as k}from"./graphics/featureConversionUtils.js";import{systemOidFieldName as M,systemOriginIdFieldName as C,systemDestinationIdFieldName as T,systemLayoutGeometryFieldName as v,systemAggregationCountFieldName as N}from"./knowledgeGraph/constants.js";import{IdealEdgeLengthTypeOptions as D}from"./knowledgeGraph/IdealEdgeLengthTypeOptions.js";import{KnowledgeGraphLayerDataManager as E}from"./knowledgeGraph/KnowledgeGraphLayerDataManager.js";import x from"./knowledgeGraph/KnowledgeGraphSublayer.js";import{getTitleFromServerUrl as I,getUserKGSPrivileges as S,createCapabilitiesFromKnowledgeGraph as _,initializeLayersFromClientData as A}from"./knowledgeGraph/layerUtils.js";import R from"./knowledgeGraph/SessionMemoryStorage.js";import{convertLayoutTypeToWebSupportedFormat as j,getRelationshipEndNodeIds as P}from"./knowledgeGraph/supportUtils.js";import{BlendLayer as G}from"./mixins/BlendLayer.js";import{OperationalLayer as z}from"./mixins/OperationalLayer.js";import{ScaleRangeLayer as O}from"./mixins/ScaleRangeLayer.js";import{url as F}from"./support/commonProperties.js";import{LCChronologicalLayout as U,LCSimpleLayout as B,LCSmartTreeLayout as H,LCRadialTreeLayout as Q,LCHierarchicalLayout as W,LCCommunityLayout as $,LCForceDirectedLayout as K,load as J}from"../libs/linkchartlayout/LinkChartLayout.js";import{fetchKnowledgeGraph as V}from"../rest/knowledgeGraphService.js";let q=class extends(z(G(O(r(b))))){constructor(e){if(super(e),this.url=null,this.dataPreloadedInLocalCache=!1,this.initializationLinkChartConfig=null,this.membershipModified=!0,this._currentLinkChartConfig={layoutMode:"organic-standard"},this._graphTypeLookup=new Map,this.dataManager=null,this.knowledgeGraph=null,this.layers=new(i.ofType(x)),this.entityLinkChartDiagramLookup=new Map,this.relationshipLinkChartDiagramLookup=new Map,this.linkChartExtent=new m({xmin:-1e-7,ymin:-1e-7,xmax:1e-7,ymax:1e-7}),this.memberEntityTypes=null,this.memberRelationshipTypes=null,this.operationalLayerType="LinkChartLayer",this.sublayerIdsCache=new Map,this.tables=new(i.ofType(x)),this.type="link-chart",this.userHasEditingPrivileges=!0,this.userHasFullEditingPrivileges=!1,this.userHasUpdateItemPrivileges=!1,this.chronologicalAuxiliaryGraphics=null,this._originalInclusionList=e?.initializationInclusionModeDefinition,e?.dataPreloadedInLocalCache&&!e?.initializationInclusionModeDefinition)throw new n("knowledge-graph:linkchart-layer-constructor","If creating a link chart composite layer and configured that data is already loaded in the cache, you must specify an inclusion list so the Composite Layer knows what records belong to it");this.addHandles(p(()=>this.layers.concat(this.tables),(e,t)=>this._handleSublayersChange(e,t),c))}normalizeCtorArgs(e){if(!e)return{};const{url:t,dataPreloadedInLocalCache:i,initializationLinkChartConfig:a}=e;let{title:n}=e;return!n&&e?.url&&(n=I(e.url)),{url:t,title:n,dataPreloadedInLocalCache:i,initializationLinkChartConfig:a}}_initializeLayerProperties(e){const t=new Set;let i=[],a=[];if(e.inclusionModeDefinition&&(!e.inclusionModeDefinition.namedTypeDefinitions||e.inclusionModeDefinition.namedTypeDefinitions.size<1))throw new n("knowledge-graph:composite-layer-constructor","If an explicit inclusion definition is defined, at least one namedTypeDefinition must also be defined");e.inclusionModeDefinition?.generateAllSublayers?(i=e.knowledgeGraph.dataModel.entityTypes??[],a=e.knowledgeGraph.dataModel.relationshipTypes??[]):e.inclusionModeDefinition?.namedTypeDefinitions&&e.inclusionModeDefinition?.namedTypeDefinitions.size>0?e.inclusionModeDefinition?.namedTypeDefinitions.forEach((n,s)=>{const r=this._graphTypeLookup.get(s);if(!r)return o.getLogger(this).warn(`A named type, ${s}, was in the inclusion list that wasn't in the data model and will be removed`),void e.inclusionModeDefinition?.namedTypeDefinitions.delete(s);"relationship"===r.type?t.has(s)||(t.add(s),a.push(r)):"entity"===r.type?t.has(s)||(t.add(s),i.push(r)):(o.getLogger(this).warn(`A named type, ${s}, was in the inclusion list that wasn't properly modeled and will be removed`),e.inclusionModeDefinition?.namedTypeDefinitions.delete(s))}):(i=e.knowledgeGraph.dataModel.entityTypes??[],a=e.knowledgeGraph.dataModel.relationshipTypes??[]);const s=new E({knowledgeGraph:e.knowledgeGraph,inclusionModeDefinition:e.inclusionModeDefinition});this.knowledgeGraph=e.knowledgeGraph,this.memberEntityTypes=i,this.memberRelationshipTypes=a,this.dataManager=s}load(e){const i=async()=>{const e=[],t=[];this.loadLayerAssumingLocalCache(),this._layersLoadedFromAuthoritativeItem()||await A(this),this.dataManager.inclusionModeDefinition&&(this.dataManager.inclusionModeDefinition.generateAllSublayers=!1),this.dataManager.inclusionModeDefinition?.namedTypeDefinitions.forEach(e=>{e.useAllData=!1}),await this._initializeDiagram(),this.layers.forEach(i=>{t.push(i.refreshCachedQueryEngine()),e.push(new Promise(e=>{i.on("layerview-create",()=>{e(null)})}))}),this.tables.forEach(e=>{t.push(e.refreshCachedQueryEngine())}),await Promise.all(t)};return this.addResolvingPromise(new Promise(a=>{V(this.url).then(async n=>{n.dataModel.entityTypes?.forEach(e=>{e.name&&this._graphTypeLookup.set(e.name,e)}),n.dataModel.relationshipTypes?.forEach(e=>{e.name&&this._graphTypeLookup.set(e.name,e)});const o=this.linkChart?.linkChartProperties;6===o?.originIdOf("entitiesUrl")&&(this.membershipModified=!1,this._originalInclusionList=await t.fetchAndConvertSerializedLinkChart({entitiesUrl:o?.entitiesUrl,relationshipsUrl:o?.relationshipsUrl},{signal:e?.signal}),this._alignLayersDataModelAndInclusionDefinition(n.dataModel),this.initializationLinkChartConfig={layoutSettings:o?.layoutSettings??void 0,layoutMode:j(o.layoutType)}),this._initializeLayerProperties({knowledgeGraph:n,inclusionModeDefinition:this._originalInclusionList}),this.dataManager.inclusionModeDefinition?.namedTypeDefinitions?.size||(this.dataManager.inclusionModeDefinition={generateAllSublayers:!1,namedTypeDefinitions:new Map},this.dataManager.knowledgeGraph.dataModel.entityTypes?.forEach(e=>{e.name&&this.dataManager.inclusionModeDefinition?.namedTypeDefinitions.set(e.name,{useAllData:!0})}),this.dataManager.knowledgeGraph.dataModel.relationshipTypes?.forEach(e=>{e.name&&this.dataManager.inclusionModeDefinition?.namedTypeDefinitions.set(e.name,{useAllData:!0})}));const{edit:r,fullEdit:h,updateItem:d}=await S(n.serviceDefinition.serviceItemId,this.url,e);if(this._set("userHasEditingPrivileges",r),this._set("userHasFullEditingPrivileges",h),this._set("userHasUpdateItemPrivileges",d),this.dataPreloadedInLocalCache){const e=R.getInstance();for(const[t,i]of this.dataManager.inclusionModeDefinition?.namedTypeDefinitions??[])for(const a of i.members?.values()??[]){const i=e.readFromStoreById(`${t}__${a.id}`);if(i){s(this.dataManager.sublayerCaches,t,()=>new Map).set(a.id,i)}}await i()}else{const t="geographic-organic-standard"===this.initializationLinkChartConfig?.layoutMode;this.addResolvingPromise(this.dataManager.refreshCacheContent(void 0,!1,t,!0).then(async()=>{l(e),await i()}))}a(null)})})),Promise.resolve(this)}set initializationInclusionModeDefinition(e){"loaded"!==this.loadStatus&&"failed"!==this.loadStatus?this._set("initializationInclusionModeDefinition",e):o.getLogger(this).error("#initializationInclusionModeDefinition","initializationInclusionModeDefinition cannot be changed after the layer is loaded.")}get linkChart(){return this.parent}get sublayerCapabilities(){return _(this.knowledgeGraph)}async addRecords(e,t){let i=[];t?.cascadeAddRelationshipEndNodes&&this.dataManager.knowledgeGraph.dataModel&&(i=await P(e,this.dataManager.knowledgeGraph));const a=e.concat(i).filter(e=>!this.sublayerIdsCache.get(e.typeName)?.has(e.id));a.length>0&&(this.membershipModified=!0),await this._handleNewRecords(a,t)}async createSublayerForNamedType(e){await this.load();const t=this._graphTypeLookup.get(e);if(!t)throw new n("knowledge-graph:missing-type","The specified type does not exist in the knowledge graph.");if(this.dataManager.sublayerCaches.has(e))throw new n("knowledge-graph:duplicate-type","The specified type already exists as a sublayer.");this.dataManager.sublayerCaches.set(e,new Map),s(this.sublayerIdsCache,e,()=>new Set);const i=this._createSublayer(t);return"entity"===t.type?this.dataManager.entityTypeNames.add(e):this.dataManager.relationshipTypeNames.add(e),this.dataManager.inclusionModeDefinition?.namedTypeDefinitions?.set(e,{useAllData:!1,members:new Map}),i.geometryType?this.layers.push(i):this.tables.push(i),await A(this,[e]),this._refreshNamedTypes(),i}async removeRecords(e,{cascadeRemoveRelationships:t=!0,recalculateLayout:i=!1,overrideMembershipCheck:a=!1}={cascadeRemoveRelationships:!0,recalculateLayout:!1,overrideMembershipCheck:!1}){let n=[];for(const r of e)(a||!1===this.dataManager.inclusionModeDefinition?.namedTypeDefinitions?.get(r.typeName)?.useAllData&&this.dataManager.inclusionModeDefinition?.namedTypeDefinitions?.get(r.typeName)?.members?.has(r.id))&&n.push(r);if(t){const e=new Set,t=[];for(const i of n)if(this.dataManager.nodeConnectionsLookup.has(i.id))for(const t of this.dataManager.nodeConnectionsLookup.get(i.id))e.add(t);for(const i of e)if(this.dataManager.memberIdTypeLookup.has(i))for(const e of this.dataManager.memberIdTypeLookup.get(i))this.dataManager.relationshipTypeNames.has(e)&&t.push({id:i,typeName:e});n=n.concat(t)}this.dataManager.removeFromLayer(n);for(const r of n)this.sublayerIdsCache.get(r.typeName)?.delete(r.id),this.dataManager.relationshipTypeNames.has(r.typeName)?this.relationshipLinkChartDiagramLookup.delete(r.id):this.entityLinkChartDiagramLookup.delete(r.id);const o=i?void 0:this.getCurrentNodeLocations();await this._calculateLayoutWithSublayerTimeInfo(this._currentLinkChartConfig.layoutMode,{layoutSettings:this._currentLinkChartConfig.layoutSettings,lockedEntityLocations:o}),n.length>0&&(this.membershipModified=!0);const s=[];return this.layers.forEach(e=>{s.push(e.refreshCachedQueryEngine())}),await Promise.all(s),this._refreshNamedTypes(),n}async expand(e,t){let i=[];try{const a=await this.dataManager.getConnectedRecordIds(e,t?.relationshipTypeNames,t);i=a.filter(e=>!this.sublayerIdsCache.get(e.typeName)?.has(e.id)),await this._handleNewRecords(i,t),a.length>0&&(this.membershipModified=!0),l(t?.signal)}catch(a){throw h(a)&&i.length>0&&await this.removeRecords(i,{overrideMembershipCheck:!0}),a}return{records:i}}loadLayerAssumingLocalCache(){const e=[...this.memberRelationshipTypes,...this.memberEntityTypes];this.layers.length||0===this.originIdOf("tables")?0===this.originIdOf("layers")?this._createSublayers(e,this.layers,e=>!!e.geometryType):this._updateSublayers(e,this.layers):this.layers=new i,this.tables.length||0===this.originIdOf("layers")?0===this.originIdOf("tables")?this._createSublayers(e,this.tables,e=>!e.geometryType):this._updateSublayers(e,this.tables):this.tables=new i,this.dataManager.inclusionModeDefinition?.namedTypeDefinitions?.forEach((e,t)=>{const i=s(this.sublayerIdsCache,t,()=>new Set);e.members?.forEach(({id:e,linkChartLocation:a})=>{if(i.add(e),a){const i="coords"in a&&"lengths"in a?a:k(a);this.dataManager.relationshipTypeNames.has(t)?this.relationshipLinkChartDiagramLookup.set(e,i):this.entityLinkChartDiagramLookup.set(e,i)}})})}async calculateLinkChartLayout(e="organic-standard",t){const i=[],a=[],r=[];this.dataManager.sublayerCaches.forEach((e,t)=>{this.dataManager.entityTypeNames.has(t)?e.forEach(e=>{i.push({typeName:t,feature:e})}):this.dataManager.relationshipTypeNames.has(t)&&e.forEach(e=>{a.push({typeName:t,feature:e})})}),this.entityLinkChartDiagramLookup=new Map,this.relationshipLinkChartDiagramLookup=new Map;const h=new Map,p=new Map,c=new Map,u=new Map,y=new Uint8Array(i.length),g=new Float64Array(i.length),b=new Float64Array(i.length),D=new Float64Array(i.length),E=new Float64Array(i.length),x=new Uint32Array(a.length),I=new Uint32Array(a.length),S=new Float64Array(a.length),_=new Float64Array(a.length),A=[],R="organic-standard";let j=!1;const P=new m({xmin:-1e-7,ymin:-1e-7,xmax:1e-7,ymax:1e-7});let G,z="organic-standard",O=0,F=0;const V=U.apply;switch(z="geographic-organic-standard"===e?R:e,z){case"organic-standard":G=K.apply;break;case"organic-community":G=$.apply;break;case"hierarchical-bottom-to-top":G=W.apply;break;case"radial-root-centric":G=Q.apply;break;case"tree-left-to-right":G=H.apply;break;default:G=B.apply}let q=!1;i.forEach(({typeName:i,feature:a})=>{if("chronological-mono-timeline"!==e&&"chronological-multi-timeline"!==e&&t?.lockedEntityLocations?.has(a.attributes[M])){"geographic-organic-standard"===e&&this.dataManager.geographicLookup.has(i)?y[O]=2:y[O]=0;const n=t.lockedEntityLocations.get(a.attributes[M]);g[O]=n.x,b[O]=n.y}else if("geographic-organic-standard"===e&&this.dataManager.geographicLookup.has(i)){y[O]=2;let e=null;const t=a.attributes[this.dataManager.geographicLookup.get(i).name],n=this.dataManager.geographicLookup.get(i)?.geometryType;switch(n){case"esriGeometryPoint":g[O]=t?.x,b[O]=t?.y;break;case"esriGeometryPolygon":{const i=w(t);e=i?f.fromJSON(i):null,null!=e?.x&&null!=e?.y?(g[O]=e.x,b[O]=e.y):y[O]=1;break}case"esriGeometryPolyline":case"esriGeometryMultipoint":e=t?.extent?.center,null!=e?.x&&null!=e?.y?(g[O]=e.x,b[O]=e.y):y[O]=1;break;default:y[O]=1}(null==g[O]||null==b[O]||Number.isNaN(g[O])||Number.isNaN(b[O]))&&(y[O]=1,g[O]=0,b[O]=0)}else if("chronological-mono-timeline"===e||"chronological-multi-timeline"===e){!q&&t?.lockedEntityLocations?.has(a.attributes[M])&&(q=!0);const e=t?.timeInfoByTypeName?.get(i),n=e?.startField,o=n&&e?.startField?a.attributes[n]:null;D[O]=o?new Date(o).getTime():NaN;const s=e?.endField,r=s&&e?.endField?a.attributes[s]:null;E[O]=r?new Date(r).getTime():NaN,g[O]=0,b[O]=0,y[O]=1}else y[O]=1,g[O]=0,b[O]=0;t?.rootEntityIds?.has(a.attributes[M])&&(y[O]|=4),u.set(a.attributes[M],O),A[O]={feature:a,typeName:i},O++}),q&&o.getLogger(this).warn("Locked node locations are not supported for chronological layout at this time. Requested node locations were ignored");let X=!1;const Y=new Map;a.forEach(i=>{const a=i.feature.attributes[C],n=i.feature.attributes[T],o=u.get(a),s=u.get(n),l=t?.timeInfoByTypeName?.get(i.typeName),h=t?.timeInfoByTypeName?l?.startField:null,d=h?i.feature.attributes[h]:null,p=l?.endField,c=p?i.feature.attributes[p]:null;if(void 0!==o&&void 0!==s){let t=a+"-"+n;"chronological-mono-timeline"!==e&&"chronological-multi-timeline"!==e||(t=t+"-"+d+"-"+c);const l=Y.get(t),h=l?.has(i.typeName);h||(x[F]=o,I[F]=s,"chronological-mono-timeline"!==e&&"chronological-multi-timeline"!==e||(S[F]=d?new Date(d).getTime():NaN,_[F]=c?new Date(c).getTime():NaN),void 0===l?Y.set(t,new Map([[i.typeName,F]])):l.set(i.typeName,F),F++),r.push(i)}else X=!0,this.relationshipLinkChartDiagramLookup.set(a,null)}),X&&o.getLogger(this).warn("A relationship is a member of this layer that has either origin or destination entity nodes that are not members. The diagram geometry will be set to null");const Z=this._validateOrganicLayoutSettings(e,t?.layoutSettings?.organicLayoutSettings),ee=this._convertValidatedOrganicSettingsToCalculationSettings(Z);await J();let te=1,ie=null;if("chronological-mono-timeline"===e||"chronological-multi-timeline"===e){let i;({status:te,links:ie,graphics:i}=V(()=>t?.signal?.aborted??!1,y,g,b,D,E,x.subarray(0,F),I.subarray(0,F),S.subarray(0,F),_.subarray(0,F),"chronological-multi-timeline"===e,t?.layoutSettings?.chronologicalLayoutSettings)),0===te&&(this.chronologicalAuxiliaryGraphics=i)}else({status:te,links:ie}=G(()=>t?.signal?.aborted??!1,y,g,b,x.subarray(0,F),I.subarray(0,F),ee.computationBudgetTime,ee.idealEdgeLengthMultiplier,ee.repulsionRadiusMultiplier));if(l(t?.signal),1===te)throw new n("knowledge-graph:layout-failed","Attempting to arrange the records in the specified layout failed");if(2===te)throw d();for(let n=0;n<A.length;n++){if(b[n]>84.9999?b[n]=84.9999:b[n]<-84.9999&&(b[n]=-84.9999),g[n]>179.9999?g[n]=179.9999:g[n]<-179.9999&&(g[n]=-179.9999),A[n].feature.attributes[v]=new f(g[n],b[n]),h.has(A[n].typeName)){const e=h.get(A[n].typeName);e?.set(A[n].feature.attributes[M],A[n].feature)}else{const e=new Map;e.set(A[n].feature.attributes[M],A[n].feature),h.set(A[n].typeName,e)}c.set(A[n].feature.attributes[M],A[n].feature);const e=k(A[n].feature.attributes[v]);this.entityLinkChartDiagramLookup.set(A[n].feature.attributes[M],A[n].feature.attributes[v]?e:null);const t=s(this.dataManager.inclusionModeDefinition.namedTypeDefinitions,A[n].typeName,()=>({useAllData:!1,members:new Map}));s(t.members,A[n].feature.attributes[M],()=>({id:A[n].feature.attributes[M],linkChartLocation:void 0})).linkChartLocation=A[n].feature.attributes[v];const{x:i,y:a}=A[n].feature.attributes[v];if(j)P.xmin=Math.min(P.xmin,i),P.xmax=Math.max(P.xmax,i),P.ymin=Math.min(P.ymin,a),P.ymax=Math.max(P.ymax,a);else{const e=1e-7;P.xmin=i-e,P.xmax=i+e,P.ymin=a-e,P.ymax=a+e,j=!0}}if(this.linkChartExtent.xmin=P.xmin,this.linkChartExtent.xmax=P.xmax,this.linkChartExtent.ymin=P.ymin,this.linkChartExtent.ymax=P.ymax,!ie)throw new n("knowledge-graph:layout-failed","Attempting to retrieve link geometry from diagram engine failed");const ae=new Map,ne=new Map,oe=new Map,se=new Set;for(let n=0;n<r.length;n++){const i=[],a=r[n],l=a.feature.attributes[C],h=a.feature.attributes[T];let d=l+"-"+h;if("chronological-mono-timeline"===e||"chronological-multi-timeline"===e){const e=t?.timeInfoByTypeName?.get(a.typeName),i=t?.timeInfoByTypeName?e?.startField:null,n=i?a.feature.attributes[i]:null,o=e?.endField;d+="-"+n+"-"+(o?a.feature.attributes[o]:null)}const y=Y.get(d).get(a.typeName),g=0===y?0:ie?.vertexEndIndex[y-1];if(!se.has(y)){if(se.add(y),2===ie.types[y]){const e=[ie.vertices[2*g],ie.vertices[2*g+1]],t=[ie.vertices[2*(g+1)],ie.vertices[2*(g+1)+1]],a=[.5*(e[0]+t[0]),.5*(e[1]+t[1])],n=[a[0]-e[0],a[1]-e[1]],o=[a[0]+n[1],a[1]-n[0]],s=[a[0]-n[1],a[1]+n[0]];i.push(e),i.push(o),i.push(t),i.push(s),i.push(e)}else{if(0!==ie.types[y]){o.getLogger(this).warn("A relationship generated an unsupported link geometry type. It will not be rendered");continue}for(let e=g;e<ie.vertexEndIndex[y];e++)i.push([ie.vertices[2*e],ie.vertices[2*e+1]])}if("chronological-mono-timeline"!==e&&"chronological-multi-timeline"!==e){const e=A[u.get(l)]?.feature.attributes[v],t=A[u.get(h)]?.feature.attributes[v];i[0][0]===e.x&&i[0][1]===e.y||(i[0]=[e.x,e.y]),i[i.length-1][0]===t.x&&i[i.length-1][1]===t.y||(i[i.length-1]=[t.x,t.y])}for(let e=1;e<i.length-1;e++)i[e][1]>85.5?i[e][1]=85.5:i[e][1]<-85.5&&(i[e][1]=-85.5),i[e][0]>179.9999?i[e][0]=179.9999:i[e][0]<-179.9999&&(i[e][0]=-179.9999);ae.has(d)?ae.get(d).push(i):ae.set(d,[i])}const m=ae.get(d);ne.has(d)||(ne.set(d,new Map),oe.set(d,new Map));const f=ne.get(d),w=oe.get(d);f.has(a.typeName)||(f.set(a.typeName,m.shift()),w.set(a.typeName,0));const b=f.get(a.typeName);w.set(a.typeName,w.get(a.typeName)+1);const N=new L({paths:[b]});if(a.feature.attributes[v]=N,p.has(a.typeName)){const e=p.get(a.typeName);e?.set(a.feature.attributes[M],a.feature)}else{const e=new Map;e.set(a.feature.attributes[M],a.feature),p.set(a.typeName,e)}c.set(a.feature.attributes[M],a.feature);const D=k(a.feature.attributes[v]);this.relationshipLinkChartDiagramLookup.set(a.feature.attributes[M],a.feature.attributes[v]?D:null);const E=s(this.dataManager.inclusionModeDefinition.namedTypeDefinitions,a.typeName,()=>({useAllData:!1,members:new Map}));s(E.members,a.feature.attributes[M],()=>({id:a.feature.attributes[M],linkChartLocation:void 0})).linkChartLocation=D}for(const n of r)n.feature.attributes[N]=oe.get(n.feature.attributes[C]+"-"+n.feature.attributes[T])?.get(n.typeName)??null;return this._currentLinkChartConfig={layoutMode:e,layoutSettings:t?.layoutSettings?.clone()},{nodes:h,links:p,idMap:c}}async applyNewLinkChartLayout(e="organic-standard",t){let{lockedNodeLocations:i,lockedEntityLocations:n,...s}=t??{};!n&&i?(a(o.getLogger(this),"lockedNodeLocations is deprecated in 5.0. Use lockedEntityLocations instead.",{replacement:"Use lockedEntityLocations instead.",version:"5.0"}),n=i):n&&i&&a(o.getLogger(this),"Both lockedNodeLocations (deprecated in 5.0) and lockedEntityLocations are defined. Use lockedEntityLocations only instead.",{replacement:"Use lockedEntityLocations instead.",version:"5.0"});const r=[];await this._calculateLayoutWithSublayerTimeInfo(e,{...s,lockedEntityLocations:n}),this.layers.forEach(e=>{r.push(e.refreshCachedQueryEngine())}),this.membershipModified=!0,await Promise.all(r),this._refreshNamedTypes()}getCurrentNodeLocations(){const e=new Map;for(const[t,i]of this.dataManager.inclusionModeDefinition?.namedTypeDefinitions.entries()??[])this.dataManager.relationshipTypeNames.has(t)||i?.members?.forEach(t=>{const i=t.linkChartLocation;let a;const n=t.id;i&&(a="x"in i?{x:i.x,y:i.y}:{x:i.coords[0],y:i.coords[1]},e.set(n,new f({x:a.x,y:a.y})))});return e}async refreshLinkChartCache(e){await this.dataManager.refreshCacheContent(e);const t=[];this.layers.forEach(e=>{t.push(e.refreshCachedQueryEngine())}),await Promise.all(t),this._refreshNamedTypes()}async connectBetweenEntities(e,t){if(!e.length)return{records:[]};let i=[];try{let a=[];for(const e of this.dataManager.relationshipTypeNames){const t=this.sublayerIdsCache.get(e);t&&(a=a.concat(Array.from(t.keys())))}i=await this.dataManager.getRelationshipsBetweenNodes(e,a,t),await this._handleNewRecords(i,t),l(t)}catch(a){throw h(a)&&this.removeRecords(i),a}return{records:i}}async connectFromEntities(e,t){if(!e.length)return{records:[]};let i=[];try{let a=[];for(const e of this.dataManager.relationshipTypeNames){const t=this.sublayerIdsCache.get(e);t&&(a=a.concat(Array.from(t.keys())))}let n=[];for(const e of this.dataManager.entityTypeNames){const t=this.sublayerIdsCache.get(e);t&&(n=n.concat(Array.from(t)))}i=await this.dataManager.getRelationshipsFromNodes(e,n,a,t),await this._handleNewRecords(i,t),i.length>0&&(this.membershipModified=!0),l(t)}catch(a){throw h(a)&&this.removeRecords(i),a}return{records:i}}getCurrentLayout(){return this._currentLinkChartConfig.layoutMode}async _calculateLayoutWithSublayerTimeInfo(e="organic-standard",t){const i=new Map;this.layers.forEach(e=>{i.set(e.objectType.name,e.timeInfo)}),await this.calculateLinkChartLayout(e,{timeInfoByTypeName:i,...t}),this.linkChart?.handleChronologicalOverlay()}async _handleNewRecords(e,t){const i=new Set,a=[],n=this.layers.concat(this.tables);for(const r of e){if(!this._graphTypeLookup.has(r.typeName))continue;!1===n.some(e=>e.objectType.name===r.typeName)&&(this.dataManager.sublayerCaches.set(r.typeName,new Map),i.add(r.typeName));s(this.sublayerIdsCache,r.typeName,()=>new Set).add(r.id),a.push(r)}this.dataManager.addToLayer(a);for(const s of i){const e=this._graphTypeLookup.get(s);if(e){const t=this._createSublayer(e);"entity"===e.type?this.dataManager.entityTypeNames.add(s):this.dataManager.relationshipTypeNames.add(s),t.geometryType?this.layers.push(t):this.tables.push(t)}}await A(this,Array.from(i),t),await this.dataManager.refreshCacheContent(e.map(e=>e.id),void 0,void 0,void 0,t);const o={layoutSettings:this._currentLinkChartConfig.layoutSettings,lockedEntityLocations:new Map};for(const[s,r]of this.entityLinkChartDiagramLookup.entries())r&&o.lockedEntityLocations.set(s,new f(r.coords[0],r.coords[1]));await this.applyNewLinkChartLayout(this._currentLinkChartConfig.layoutMode,o)}_createSublayers(e,t,i){e.forEach(e=>{const a=this._createSublayer(e);i(a)&&t.push(a),this._updateSublayerCaches(e)})}_updateSublayers(e,t){t.forEach(t=>{t.parentCompositeLayer=this;const i=e.find(e=>e.type===t.graphType&&e.name===t.graphTypeName);i&&(t.objectType=i,t.read({title:i.name},{origin:"service"}),this._updateSublayerCaches(i))})}_updateSublayerCaches({name:e}){if(!e)return;const t=this.dataManager.sublayerCaches;t.has(e)||t.set(e,new Map)}_layersLoadedFromAuthoritativeItem(){const e=this.originIdOf("layers");return e>=3&&e<7}async _initializeDiagram(){this.initializationLinkChartConfig?this.initializationLinkChartConfig.doNotRecalculateLayout?(this.dataManager.inclusionModeDefinition?.namedTypeDefinitions?.forEach((e,t)=>{e?.members?.forEach(e=>{const i=e.linkChartLocation;let a;const n=e.id;if(!i)return;a="x"in i?{x:i.x,y:i.y}:{x:i.coords[0],y:i.coords[1]};const o=k(a);this.dataManager.relationshipTypeNames.has(t)?this.relationshipLinkChartDiagramLookup.set(n,o):this.entityLinkChartDiagramLookup.set(n,o),this.linkChartExtent.xmin>a.x&&(this.linkChartExtent.xmin=a.x),this.linkChartExtent.xmax<a.x&&(this.linkChartExtent.xmax=a.x),this.linkChartExtent.ymin>a.y&&(this.linkChartExtent.ymin=a.y),this.linkChartExtent.ymax<a.y&&(this.linkChartExtent.ymax=a.y)})}),this.memberRelationshipTypes.forEach(e=>{e.name&&this.dataManager.sublayerCaches.get(e.name)?.forEach(e=>{const t=this.relationshipLinkChartDiagramLookup.get(e.attributes[C]),i=this.relationshipLinkChartDiagramLookup.get(e.attributes[T]);if(t&&i){const a=k(new L({paths:[[[t.coords[0],t.coords[1]],[i.coords[0],i.coords[1]]]]}));this.relationshipLinkChartDiagramLookup.set(e.attributes[M],a)}else this.relationshipLinkChartDiagramLookup.set(e.attributes[M],null)})})):await this._calculateLayoutWithSublayerTimeInfo(this.initializationLinkChartConfig.layoutMode,{lockedEntityLocations:this.getCurrentNodeLocations(),...this.initializationLinkChartConfig}):await this._calculateLayoutWithSublayerTimeInfo("organic-standard",{lockedEntityLocations:this.getCurrentNodeLocations()})}_refreshNamedTypes(){for(const e of this.layers)e.emit("refresh",{dataChanged:!0});for(const e of this.tables)e.emit("refresh",{dataChanged:!0})}_validateOrganicLayoutSettings(e,t){const i=e=>"number"==typeof e&&!isNaN(e),a=e=>i(e)&&e>=1,n=e=>i(e)&&e>=1,s=e=>Object.values(D).includes(e),r=e=>i(e)&&e>=0,l={};if(!new Set(["organic-standard","organic-community","geographic-organic-standard","chronological-multi-timeline","chronological-mono-timeline"]).has(e)||!t)return l;const{computationBudgetTime:h,autoRepulsionRadius:d,repulsionRadiusMultiplier:p,absoluteIdealEdgeLength:c,multiplicativeIdealEdgeLength:u,idealEdgeLengthType:y}=t;return n(h)?l.computationBudgetTime=h:h&&o.getLogger(this).warn("Invalid layout computationBudgetTime setting, will revert to default setting"),l.autoRepulsionRadius=d,!d&&a(p)?l.repulsionRadiusMultiplier=p:d||(l.autoRepulsionRadius=!0,o.getLogger(this).warn("Invalid layout repulsionRadiusMultiplier setting, will revert to default setting")),"geographic-organic-standard"===e&&(s(y)?l.idealEdgeLengthType=y:void 0!==y&&o.getLogger(this).warn('Invalid layout idealEdgeLengthType setting, will revert to "multiplier" setting'),"absolute-value"===y&&r(c)?l.absoluteIdealEdgeLength=c:"absolute-value"===y&&void 0!==c?o.getLogger(this).warn("Invalid layout idealEdgeLength setting, will revert to default setting"):"multiplier"===y&&r(u)?l.multiplicativeIdealEdgeLength=u:"multiplier"===y&&void 0!==u&&o.getLogger(this).warn("Invalid layout idealEdgeLength setting, will revert to default setting")),l}_convertValidatedOrganicSettingsToCalculationSettings(e){let t=e.idealEdgeLengthType===D.ABSOLUTE?e.absoluteIdealEdgeLength:e.multiplicativeIdealEdgeLength;return e.idealEdgeLengthType===D.ABSOLUTE&&(void 0===t?t=-1:t*=-1),{computationBudgetTime:e.computationBudgetTime??void 0,repulsionRadiusMultiplier:e.repulsionRadiusMultiplier&&!e.autoRepulsionRadius?e.repulsionRadiusMultiplier:void 0,idealEdgeLengthMultiplier:t}}_createSublayer(e){return new x({objectType:e,parentCompositeLayer:this,graphType:e.type})}_handleSublayersChange(e,t){t&&(t.forEach(e=>{e.parent=null}),this.removeHandles("sublayers-owner")),e&&(e.forEach(e=>{e.parent=this}),this.addHandles([e.on("after-add",({item:e})=>{e.parent=this}),e.on("after-remove",({item:e})=>{e.parent=null})],"sublayers-owner"))}_alignLayersDataModelAndInclusionDefinition(e){const t=new Set((e.entityTypes??[]).map(e=>e.name).concat((e.relationshipTypes??[]).map(e=>e.name))),a=new Set((e.entityTypes??[]).map(e=>e.name)),n=new Set((e.relationshipTypes??[]).map(e=>e.name));if(this.layers){for(const i of this.layers)!i.graphType&&t.has(i.graphTypeName)&&(i.graphType=a.has(i.graphTypeName)?"entity":"relationship");const e=this.layers.filter(e=>t.has(e.graphTypeName)&&("entity"===e.graphType?a.has(e.graphTypeName):n.has(e.graphTypeName)));this.setAtOrigin("layers",e,g(this.originIdOf("layers")))}else this.layers=new i;if(this.layers&&this._originalInclusionList){const e=new Set(this._originalInclusionList.namedTypeDefinitions.keys()),t=this.tables?.map(e=>e.graphTypeName)??[],i=this.layers.map(e=>e.graphTypeName).concat(t);for(const n of i)e.has(n)||this._originalInclusionList.namedTypeDefinitions.set(n,{useAllData:!1,members:new Map});const a=[];for(const n of this._originalInclusionList.namedTypeDefinitions.keys())i.includes(n)||(o.getLogger(this).warn(`A named type, ${n}, was in the serialized feature collection but did not have a sublayer config in the item, so will be removed`),a.push(n));for(const n of a)this._originalInclusionList.namedTypeDefinitions.delete(n)}}};e([u(F)],q.prototype,"url",void 0),e([u()],q.prototype,"dataPreloadedInLocalCache",void 0),e([u()],q.prototype,"initializationLinkChartConfig",void 0),e([u()],q.prototype,"membershipModified",void 0),e([u()],q.prototype,"dataManager",void 0),e([u()],q.prototype,"initializationInclusionModeDefinition",null),e([u()],q.prototype,"knowledgeGraph",void 0),e([u({type:i.ofType(x),json:{write:{ignoreOrigin:!0}}})],q.prototype,"layers",void 0),e([u({readOnly:!0})],q.prototype,"linkChart",null),e([u()],q.prototype,"entityLinkChartDiagramLookup",void 0),e([u()],q.prototype,"relationshipLinkChartDiagramLookup",void 0),e([u()],q.prototype,"linkChartExtent",void 0),e([u()],q.prototype,"memberEntityTypes",void 0),e([u()],q.prototype,"memberRelationshipTypes",void 0),e([u({type:["LinkChartLayer"]})],q.prototype,"operationalLayerType",void 0),e([u()],q.prototype,"sublayerCapabilities",null),e([u()],q.prototype,"sublayerIdsCache",void 0),e([u({type:i.ofType(x),json:{write:{ignoreOrigin:!0}}})],q.prototype,"tables",void 0),e([u({json:{read:!1}})],q.prototype,"type",void 0),e([u({readOnly:!0})],q.prototype,"userHasEditingPrivileges",void 0),e([u({readOnly:!0})],q.prototype,"userHasFullEditingPrivileges",void 0),e([u({readOnly:!0})],q.prototype,"userHasUpdateItemPrivileges",void 0),e([u({json:{read:!1}})],q.prototype,"chronologicalAuxiliaryGraphics",void 0),q=e([y("esri.layers.LinkChartLayer")],q);const X=q;export{X as default};
|
|
2
|
+
import{__decorate as e}from"tslib";import{serializationUtilsModuleWrapper as t}from"../applications/KnowledgeStudio/resourceSerializationUtils.js";import i from"../core/Collection.js";import{deprecated as a}from"../core/deprecate.js";import n from"../core/Error.js";import o from"../core/Logger.js";import{getOrCreateMapValue as s}from"../core/MapUtils.js";import{MultiOriginJSONSupportMixin as r}from"../core/MultiOriginJSONSupport.js";import{throwIfAborted as l,isAbortError as h,createAbortError as d}from"../core/promiseUtils.js";import{watch as p,sync as c}from"../core/reactiveUtils.js";import{property as u,subclass as y}from"../core/accessorSupport/decorators.js";import{idToName as g}from"../core/accessorSupport/PropertyOrigin.js";import m from"../geometry/Extent.js";import f from"../geometry/Point.js";import L from"../geometry/Polyline.js";import{polygonCentroidPoint as w}from"../geometry/support/centroid.js";import b from"./Layer.js";import{convertFromGeometry as k}from"./graphics/featureConversionUtils.js";import{systemOidFieldName as M,systemOriginIdFieldName as C,systemDestinationIdFieldName as T,systemLayoutGeometryFieldName as v,systemAggregationCountFieldName as N}from"./knowledgeGraph/constants.js";import{IdealEdgeLengthTypeOptions as D}from"./knowledgeGraph/IdealEdgeLengthTypeOptions.js";import{KnowledgeGraphLayerDataManager as E}from"./knowledgeGraph/KnowledgeGraphLayerDataManager.js";import x from"./knowledgeGraph/KnowledgeGraphSublayer.js";import{getTitleFromServerUrl as I,getUserKGSPrivileges as S,createCapabilitiesFromKnowledgeGraph as _,initializeLayersFromClientData as A}from"./knowledgeGraph/layerUtils.js";import R from"./knowledgeGraph/SessionMemoryStorage.js";import{convertLayoutTypeToWebSupportedFormat as j,getRelationshipEndNodeIds as P}from"./knowledgeGraph/supportUtils.js";import{BlendLayer as G}from"./mixins/BlendLayer.js";import{OperationalLayer as z}from"./mixins/OperationalLayer.js";import{ScaleRangeLayer as O}from"./mixins/ScaleRangeLayer.js";import{url as F}from"./support/commonProperties.js";import{LCChronologicalLayout as U,LCSimpleLayout as B,LCSmartTreeLayout as H,LCRadialTreeLayout as Q,LCHierarchicalLayout as W,LCCommunityLayout as $,LCForceDirectedLayout as K,load as J}from"../libs/linkchartlayout/LinkChartLayout.js";import{fetchKnowledgeGraph as V}from"../rest/knowledgeGraphService.js";let q=class extends(z(G(O(r(b))))){constructor(e){if(super(e),this.url=null,this.dataPreloadedInLocalCache=!1,this.initializationLinkChartConfig=null,this.membershipModified=!0,this._currentLinkChartConfig={layoutMode:"organic-standard"},this._graphTypeLookup=new Map,this.dataManager=null,this.knowledgeGraph=null,this.layers=new(i.ofType(x)),this.entityLinkChartDiagramLookup=new Map,this.relationshipLinkChartDiagramLookup=new Map,this.linkChartExtent=new m({xmin:-1e-7,ymin:-1e-7,xmax:1e-7,ymax:1e-7}),this.memberEntityTypes=null,this.memberRelationshipTypes=null,this.operationalLayerType="LinkChartLayer",this.sublayerIdsCache=new Map,this.tables=new(i.ofType(x)),this.type="link-chart",this.userHasEditingPrivileges=!0,this.userHasFullEditingPrivileges=!1,this.userHasUpdateItemPrivileges=!1,this.chronologicalAuxiliaryGraphics=null,this._originalInclusionList=e?.initializationInclusionModeDefinition,e?.dataPreloadedInLocalCache&&!e?.initializationInclusionModeDefinition)throw new n("knowledge-graph:linkchart-layer-constructor","If creating a link chart composite layer and configured that data is already loaded in the cache, you must specify an inclusion list so the Composite Layer knows what records belong to it");this.addHandles(p(()=>this.layers.concat(this.tables),(e,t)=>this._handleSublayersChange(e,t),c))}normalizeCtorArgs(e){if(!e)return{};const{url:t,dataPreloadedInLocalCache:i,initializationLinkChartConfig:a}=e;let{title:n}=e;return!n&&e?.url&&(n=I(e.url)),{url:t,title:n,dataPreloadedInLocalCache:i,initializationLinkChartConfig:a}}_initializeLayerProperties(e){const t=new Set;let i=[],a=[];if(e.inclusionModeDefinition&&(!e.inclusionModeDefinition.namedTypeDefinitions||e.inclusionModeDefinition.namedTypeDefinitions.size<1))throw new n("knowledge-graph:composite-layer-constructor","If an explicit inclusion definition is defined, at least one namedTypeDefinition must also be defined");e.inclusionModeDefinition?.generateAllSublayers?(i=e.knowledgeGraph.dataModel.entityTypes??[],a=e.knowledgeGraph.dataModel.relationshipTypes??[]):e.inclusionModeDefinition?.namedTypeDefinitions&&e.inclusionModeDefinition?.namedTypeDefinitions.size>0?e.inclusionModeDefinition?.namedTypeDefinitions.forEach((n,s)=>{const r=this._graphTypeLookup.get(s);if(!r)return o.getLogger(this).warn(`A named type, ${s}, was in the inclusion list that wasn't in the data model and will be removed`),void e.inclusionModeDefinition?.namedTypeDefinitions.delete(s);"relationship"===r.type?t.has(s)||(t.add(s),a.push(r)):"entity"===r.type?t.has(s)||(t.add(s),i.push(r)):(o.getLogger(this).warn(`A named type, ${s}, was in the inclusion list that wasn't properly modeled and will be removed`),e.inclusionModeDefinition?.namedTypeDefinitions.delete(s))}):(i=e.knowledgeGraph.dataModel.entityTypes??[],a=e.knowledgeGraph.dataModel.relationshipTypes??[]);const s=new E({knowledgeGraph:e.knowledgeGraph,inclusionModeDefinition:e.inclusionModeDefinition});this.knowledgeGraph=e.knowledgeGraph,this.memberEntityTypes=i,this.memberRelationshipTypes=a,this.dataManager=s}load(e){const i=async()=>{const e=[],t=[];this.loadLayerAssumingLocalCache(),this._layersLoadedFromAuthoritativeItem()||await A(this),this.dataManager.inclusionModeDefinition&&(this.dataManager.inclusionModeDefinition.generateAllSublayers=!1),this.dataManager.inclusionModeDefinition?.namedTypeDefinitions.forEach(e=>{e.useAllData=!1}),await this._initializeDiagram(),this.layers.forEach(i=>{t.push(i.refreshCachedQueryEngine()),e.push(new Promise(e=>{i.on("layerview-create",()=>{e(null)})}))}),this.tables.forEach(e=>{t.push(e.refreshCachedQueryEngine())}),await Promise.all(t)};return this.addResolvingPromise(new Promise(a=>{V(this.url).then(async n=>{n.dataModel.entityTypes?.forEach(e=>{e.name&&this._graphTypeLookup.set(e.name,e)}),n.dataModel.relationshipTypes?.forEach(e=>{e.name&&this._graphTypeLookup.set(e.name,e)});const o=this.linkChart?.linkChartProperties;6===o?.originIdOf("entitiesUrl")&&(this.membershipModified=!1,this._originalInclusionList=await t.fetchAndConvertSerializedLinkChart({entitiesUrl:o?.entitiesUrl,relationshipsUrl:o?.relationshipsUrl},{signal:e?.signal}),this._alignLayersDataModelAndInclusionDefinition(n.dataModel),this.initializationLinkChartConfig={layoutSettings:o?.layoutSettings??void 0,layoutMode:j(o.layoutType)}),this._initializeLayerProperties({knowledgeGraph:n,inclusionModeDefinition:this._originalInclusionList}),this.dataManager.inclusionModeDefinition?.namedTypeDefinitions?.size||(this.dataManager.inclusionModeDefinition={generateAllSublayers:!1,namedTypeDefinitions:new Map},this.dataManager.knowledgeGraph.dataModel.entityTypes?.forEach(e=>{e.name&&this.dataManager.inclusionModeDefinition?.namedTypeDefinitions.set(e.name,{useAllData:!0})}),this.dataManager.knowledgeGraph.dataModel.relationshipTypes?.forEach(e=>{e.name&&this.dataManager.inclusionModeDefinition?.namedTypeDefinitions.set(e.name,{useAllData:!0})}));const{edit:r,fullEdit:h,updateItem:d}=await S(n.serviceDefinition.serviceItemId,this.url,e);if(this._set("userHasEditingPrivileges",r),this._set("userHasFullEditingPrivileges",h),this._set("userHasUpdateItemPrivileges",d),this.dataPreloadedInLocalCache){const e=R.getInstance();for(const[t,i]of this.dataManager.inclusionModeDefinition?.namedTypeDefinitions??[])for(const a of i.members?.values()??[]){const i=e.readFromStoreById(`${t}__${a.id}`);if(i){s(this.dataManager.sublayerCaches,t,()=>new Map).set(a.id,i)}}await i()}else{const t="geographic-organic-standard"===this.initializationLinkChartConfig?.layoutMode;this.addResolvingPromise(this.dataManager.refreshCacheContent(void 0,!1,t,!0).then(async()=>{l(e),await i()}))}a(null)})})),Promise.resolve(this)}set initializationInclusionModeDefinition(e){"loaded"!==this.loadStatus&&"failed"!==this.loadStatus?this._set("initializationInclusionModeDefinition",e):o.getLogger(this).error("#initializationInclusionModeDefinition","initializationInclusionModeDefinition cannot be changed after the layer is loaded.")}get linkChart(){return this.parent}get sublayerCapabilities(){return _(this.knowledgeGraph)}async addRecords(e,t){let i=[];t?.cascadeAddRelationshipEndNodes&&this.dataManager.knowledgeGraph.dataModel&&(i=await P(e,this.dataManager.knowledgeGraph));const a=e.concat(i).filter(e=>!this.sublayerIdsCache.get(e.typeName)?.has(e.id));a.length>0&&(this.membershipModified=!0),await this._handleNewRecords(a,t)}async createSublayerForNamedType(e){await this.load();const t=this._graphTypeLookup.get(e);if(!t)throw new n("knowledge-graph:missing-type","The specified type does not exist in the knowledge graph.");if(this.dataManager.sublayerCaches.has(e))throw new n("knowledge-graph:duplicate-type","The specified type already exists as a sublayer.");this.dataManager.sublayerCaches.set(e,new Map),s(this.sublayerIdsCache,e,()=>new Set);const i=this._createSublayer(t);return"entity"===t.type?this.dataManager.entityTypeNames.add(e):this.dataManager.relationshipTypeNames.add(e),this.dataManager.inclusionModeDefinition?.namedTypeDefinitions?.set(e,{useAllData:!1,members:new Map}),i.geometryType?this.layers.push(i):this.tables.push(i),await A(this,[e]),this._refreshNamedTypes(),i}async removeRecords(e,{cascadeRemoveRelationships:t=!0,recalculateLayout:i=!1,overrideMembershipCheck:a=!1}={cascadeRemoveRelationships:!0,recalculateLayout:!1,overrideMembershipCheck:!1}){let n=[];for(const r of e)(a||!1===this.dataManager.inclusionModeDefinition?.namedTypeDefinitions?.get(r.typeName)?.useAllData&&this.dataManager.inclusionModeDefinition?.namedTypeDefinitions?.get(r.typeName)?.members?.has(r.id))&&n.push(r);if(t){const e=new Set,t=[];for(const i of n)if(this.dataManager.nodeConnectionsLookup.has(i.id))for(const t of this.dataManager.nodeConnectionsLookup.get(i.id))e.add(t);for(const i of e)if(this.dataManager.memberIdTypeLookup.has(i))for(const e of this.dataManager.memberIdTypeLookup.get(i))this.dataManager.relationshipTypeNames.has(e)&&t.push({id:i,typeName:e});n=n.concat(t)}this.dataManager.removeFromLayer(n);for(const r of n)this.sublayerIdsCache.get(r.typeName)?.delete(r.id),this.dataManager.relationshipTypeNames.has(r.typeName)?this.relationshipLinkChartDiagramLookup.delete(r.id):this.entityLinkChartDiagramLookup.delete(r.id);const o=i?void 0:this.getCurrentNodeLocations();await this._calculateLayoutWithSublayerTimeInfo(this._currentLinkChartConfig.layoutMode,{layoutSettings:this._currentLinkChartConfig.layoutSettings,lockedEntityLocations:o}),n.length>0&&(this.membershipModified=!0);const s=[];return this.layers.forEach(e=>{s.push(e.refreshCachedQueryEngine())}),await Promise.all(s),this._refreshNamedTypes(),n}async expand(e,t){let i=[];try{const a=await this.dataManager.getConnectedRecordIds(e,t?.relationshipTypeNames,t);i=a.filter(e=>!this.sublayerIdsCache.get(e.typeName)?.has(e.id)),await this._handleNewRecords(i,t),a.length>0&&(this.membershipModified=!0),l(t?.signal)}catch(a){throw h(a)&&i.length>0&&await this.removeRecords(i,{overrideMembershipCheck:!0}),a}return{records:i}}loadLayerAssumingLocalCache(){const e=[...this.memberRelationshipTypes,...this.memberEntityTypes];this.layers.length||0===this.originIdOf("tables")?0===this.originIdOf("layers")?this._createSublayers(e,this.layers,e=>!!e.geometryType):this._updateSublayers(e,this.layers):this.layers=new i,this.tables.length||0===this.originIdOf("layers")?0===this.originIdOf("tables")?this._createSublayers(e,this.tables,e=>!e.geometryType):this._updateSublayers(e,this.tables):this.tables=new i,this.dataManager.inclusionModeDefinition?.namedTypeDefinitions?.forEach((e,t)=>{const i=s(this.sublayerIdsCache,t,()=>new Set);e.members?.forEach(({id:e,linkChartLocation:a})=>{if(i.add(e),a){const i="coords"in a&&"lengths"in a?a:k(a);this.dataManager.relationshipTypeNames.has(t)?this.relationshipLinkChartDiagramLookup.set(e,i):this.entityLinkChartDiagramLookup.set(e,i)}})})}async calculateLinkChartLayout(e="organic-standard",t){const i=[],a=[],r=[];this.dataManager.sublayerCaches.forEach((e,t)=>{this.dataManager.entityTypeNames.has(t)?e.forEach(e=>{i.push({typeName:t,feature:e})}):this.dataManager.relationshipTypeNames.has(t)&&e.forEach(e=>{a.push({typeName:t,feature:e})})}),this.entityLinkChartDiagramLookup=new Map,this.relationshipLinkChartDiagramLookup=new Map;const h=new Map,p=new Map,c=new Map,u=new Map,y=new Uint8Array(i.length),g=new Float64Array(i.length),b=new Float64Array(i.length),D=new Float64Array(i.length),E=new Float64Array(i.length),x=new Uint32Array(a.length),I=new Uint32Array(a.length),S=new Float64Array(a.length),_=new Float64Array(a.length),A=[],R="organic-standard";let j=!1;const P=new m({xmin:-1e-7,ymin:-1e-7,xmax:1e-7,ymax:1e-7});let G,z="organic-standard",O=0,F=0;const V=U.apply;switch(z="geographic-organic-standard"===e?R:e,z){case"organic-standard":G=K.apply;break;case"organic-community":G=$.apply;break;case"hierarchical-bottom-to-top":G=W.apply;break;case"radial-root-centric":G=Q.apply;break;case"tree-left-to-right":G=H.apply;break;default:G=B.apply}let q=!1;i.forEach(({typeName:i,feature:a})=>{if("chronological-mono-timeline"!==e&&"chronological-multi-timeline"!==e&&t?.lockedEntityLocations?.has(a.attributes[M])){"geographic-organic-standard"===e&&this.dataManager.geographicLookup.has(i)?y[O]=2:y[O]=0;const n=t.lockedEntityLocations.get(a.attributes[M]);g[O]=n.x,b[O]=n.y}else if("geographic-organic-standard"===e&&this.dataManager.geographicLookup.has(i)){y[O]=2;let e=null;const t=a.attributes[this.dataManager.geographicLookup.get(i).name],n=this.dataManager.geographicLookup.get(i)?.geometryType;switch(n){case"esriGeometryPoint":g[O]=t?.x,b[O]=t?.y;break;case"esriGeometryPolygon":{const i=t?w(t):null;e=i?f.fromJSON(i):null,null!=e?.x&&null!=e?.y?(g[O]=e.x,b[O]=e.y):y[O]=1;break}case"esriGeometryPolyline":case"esriGeometryMultipoint":e=t?.extent?.center,null!=e?.x&&null!=e?.y?(g[O]=e.x,b[O]=e.y):y[O]=1;break;default:y[O]=1}(null==g[O]||null==b[O]||Number.isNaN(g[O])||Number.isNaN(b[O]))&&(y[O]=1,g[O]=0,b[O]=0)}else if("chronological-mono-timeline"===e||"chronological-multi-timeline"===e){!q&&t?.lockedEntityLocations?.has(a.attributes[M])&&(q=!0);const e=t?.timeInfoByTypeName?.get(i),n=e?.startField,o=n&&e?.startField?a.attributes[n]:null;D[O]=o?new Date(o).getTime():NaN;const s=e?.endField,r=s&&e?.endField?a.attributes[s]:null;E[O]=r?new Date(r).getTime():NaN,g[O]=0,b[O]=0,y[O]=1}else y[O]=1,g[O]=0,b[O]=0;t?.rootEntityIds?.has(a.attributes[M])&&(y[O]|=4),u.set(a.attributes[M],O),A[O]={feature:a,typeName:i},O++}),q&&o.getLogger(this).warn("Locked node locations are not supported for chronological layout at this time. Requested node locations were ignored");let X=!1;const Y=new Map;a.forEach(i=>{const a=i.feature.attributes[C],n=i.feature.attributes[T],o=u.get(a),s=u.get(n),l=t?.timeInfoByTypeName?.get(i.typeName),h=t?.timeInfoByTypeName?l?.startField:null,d=h?i.feature.attributes[h]:null,p=l?.endField,c=p?i.feature.attributes[p]:null;if(void 0!==o&&void 0!==s){let t=a+"-"+n;"chronological-mono-timeline"!==e&&"chronological-multi-timeline"!==e||(t=t+"-"+d+"-"+c);const l=Y.get(t),h=l?.has(i.typeName);h||(x[F]=o,I[F]=s,"chronological-mono-timeline"!==e&&"chronological-multi-timeline"!==e||(S[F]=d?new Date(d).getTime():NaN,_[F]=c?new Date(c).getTime():NaN),void 0===l?Y.set(t,new Map([[i.typeName,F]])):l.set(i.typeName,F),F++),r.push(i)}else X=!0,this.relationshipLinkChartDiagramLookup.set(a,null)}),X&&o.getLogger(this).warn("A relationship is a member of this layer that has either origin or destination entity nodes that are not members. The diagram geometry will be set to null");const Z=this._validateOrganicLayoutSettings(e,t?.layoutSettings?.organicLayoutSettings),ee=this._convertValidatedOrganicSettingsToCalculationSettings(Z);await J();let te=1,ie=null;if("chronological-mono-timeline"===e||"chronological-multi-timeline"===e){let i;({status:te,links:ie,graphics:i}=V(()=>t?.signal?.aborted??!1,y,g,b,D,E,x.subarray(0,F),I.subarray(0,F),S.subarray(0,F),_.subarray(0,F),"chronological-multi-timeline"===e,t?.layoutSettings?.chronologicalLayoutSettings)),0===te&&(this.chronologicalAuxiliaryGraphics=i)}else({status:te,links:ie}=G(()=>t?.signal?.aborted??!1,y,g,b,x.subarray(0,F),I.subarray(0,F),ee.computationBudgetTime,ee.idealEdgeLengthMultiplier,ee.repulsionRadiusMultiplier));if(l(t?.signal),1===te)throw new n("knowledge-graph:layout-failed","Attempting to arrange the records in the specified layout failed");if(2===te)throw d();for(let n=0;n<A.length;n++){if(b[n]>84.9999?b[n]=84.9999:b[n]<-84.9999&&(b[n]=-84.9999),g[n]>179.9999?g[n]=179.9999:g[n]<-179.9999&&(g[n]=-179.9999),A[n].feature.attributes[v]=new f(g[n],b[n]),h.has(A[n].typeName)){const e=h.get(A[n].typeName);e?.set(A[n].feature.attributes[M],A[n].feature)}else{const e=new Map;e.set(A[n].feature.attributes[M],A[n].feature),h.set(A[n].typeName,e)}c.set(A[n].feature.attributes[M],A[n].feature);const e=k(A[n].feature.attributes[v]);this.entityLinkChartDiagramLookup.set(A[n].feature.attributes[M],A[n].feature.attributes[v]?e:null);const t=s(this.dataManager.inclusionModeDefinition.namedTypeDefinitions,A[n].typeName,()=>({useAllData:!1,members:new Map}));s(t.members,A[n].feature.attributes[M],()=>({id:A[n].feature.attributes[M],linkChartLocation:void 0})).linkChartLocation=A[n].feature.attributes[v];const{x:i,y:a}=A[n].feature.attributes[v];if(j)P.xmin=Math.min(P.xmin,i),P.xmax=Math.max(P.xmax,i),P.ymin=Math.min(P.ymin,a),P.ymax=Math.max(P.ymax,a);else{const e=1e-7;P.xmin=i-e,P.xmax=i+e,P.ymin=a-e,P.ymax=a+e,j=!0}}if(this.linkChartExtent.xmin=P.xmin,this.linkChartExtent.xmax=P.xmax,this.linkChartExtent.ymin=P.ymin,this.linkChartExtent.ymax=P.ymax,!ie)throw new n("knowledge-graph:layout-failed","Attempting to retrieve link geometry from diagram engine failed");const ae=new Map,ne=new Map,oe=new Map,se=new Set;for(let n=0;n<r.length;n++){const i=[],a=r[n],l=a.feature.attributes[C],h=a.feature.attributes[T];let d=l+"-"+h;if("chronological-mono-timeline"===e||"chronological-multi-timeline"===e){const e=t?.timeInfoByTypeName?.get(a.typeName),i=t?.timeInfoByTypeName?e?.startField:null,n=i?a.feature.attributes[i]:null,o=e?.endField;d+="-"+n+"-"+(o?a.feature.attributes[o]:null)}const y=Y.get(d).get(a.typeName),g=0===y?0:ie?.vertexEndIndex[y-1];if(!se.has(y)){if(se.add(y),2===ie.types[y]){const e=[ie.vertices[2*g],ie.vertices[2*g+1]],t=[ie.vertices[2*(g+1)],ie.vertices[2*(g+1)+1]],a=[.5*(e[0]+t[0]),.5*(e[1]+t[1])],n=[a[0]-e[0],a[1]-e[1]],o=[a[0]+n[1],a[1]-n[0]],s=[a[0]-n[1],a[1]+n[0]];i.push(e),i.push(o),i.push(t),i.push(s),i.push(e)}else{if(0!==ie.types[y]){o.getLogger(this).warn("A relationship generated an unsupported link geometry type. It will not be rendered");continue}for(let e=g;e<ie.vertexEndIndex[y];e++)i.push([ie.vertices[2*e],ie.vertices[2*e+1]])}if("chronological-mono-timeline"!==e&&"chronological-multi-timeline"!==e){const e=A[u.get(l)]?.feature.attributes[v],t=A[u.get(h)]?.feature.attributes[v];i[0][0]===e.x&&i[0][1]===e.y||(i[0]=[e.x,e.y]),i[i.length-1][0]===t.x&&i[i.length-1][1]===t.y||(i[i.length-1]=[t.x,t.y])}for(let e=1;e<i.length-1;e++)i[e][1]>85.5?i[e][1]=85.5:i[e][1]<-85.5&&(i[e][1]=-85.5),i[e][0]>179.9999?i[e][0]=179.9999:i[e][0]<-179.9999&&(i[e][0]=-179.9999);ae.has(d)?ae.get(d).push(i):ae.set(d,[i])}const m=ae.get(d);ne.has(d)||(ne.set(d,new Map),oe.set(d,new Map));const f=ne.get(d),w=oe.get(d);f.has(a.typeName)||(f.set(a.typeName,m.shift()),w.set(a.typeName,0));const b=f.get(a.typeName);w.set(a.typeName,w.get(a.typeName)+1);const N=new L({paths:[b]});if(a.feature.attributes[v]=N,p.has(a.typeName)){const e=p.get(a.typeName);e?.set(a.feature.attributes[M],a.feature)}else{const e=new Map;e.set(a.feature.attributes[M],a.feature),p.set(a.typeName,e)}c.set(a.feature.attributes[M],a.feature);const D=k(a.feature.attributes[v]);this.relationshipLinkChartDiagramLookup.set(a.feature.attributes[M],a.feature.attributes[v]?D:null);const E=s(this.dataManager.inclusionModeDefinition.namedTypeDefinitions,a.typeName,()=>({useAllData:!1,members:new Map}));s(E.members,a.feature.attributes[M],()=>({id:a.feature.attributes[M],linkChartLocation:void 0})).linkChartLocation=D}for(const n of r)n.feature.attributes[N]=oe.get(n.feature.attributes[C]+"-"+n.feature.attributes[T])?.get(n.typeName)??null;return this._currentLinkChartConfig={layoutMode:e,layoutSettings:t?.layoutSettings?.clone()},{nodes:h,links:p,idMap:c}}async applyNewLinkChartLayout(e="organic-standard",t){let{lockedNodeLocations:i,lockedEntityLocations:n,...s}=t??{};!n&&i?(a(o.getLogger(this),"lockedNodeLocations is deprecated in 5.0. Use lockedEntityLocations instead.",{replacement:"Use lockedEntityLocations instead.",version:"5.0"}),n=i):n&&i&&a(o.getLogger(this),"Both lockedNodeLocations (deprecated in 5.0) and lockedEntityLocations are defined. Use lockedEntityLocations only instead.",{replacement:"Use lockedEntityLocations instead.",version:"5.0"});const r=[];await this._calculateLayoutWithSublayerTimeInfo(e,{...s,lockedEntityLocations:n}),this.layers.forEach(e=>{r.push(e.refreshCachedQueryEngine())}),this.membershipModified=!0,await Promise.all(r),this._refreshNamedTypes()}getCurrentNodeLocations(){const e=new Map;for(const[t,i]of this.dataManager.inclusionModeDefinition?.namedTypeDefinitions.entries()??[])this.dataManager.relationshipTypeNames.has(t)||i?.members?.forEach(t=>{const i=t.linkChartLocation;let a;const n=t.id;i&&(a="x"in i?{x:i.x,y:i.y}:{x:i.coords[0],y:i.coords[1]},e.set(n,new f({x:a.x,y:a.y})))});return e}async refreshLinkChartCache(e){await this.dataManager.refreshCacheContent(e);const t=[];this.layers.forEach(e=>{t.push(e.refreshCachedQueryEngine())}),await Promise.all(t),this._refreshNamedTypes()}async connectBetweenEntities(e,t){if(!e.length)return{records:[]};let i=[];try{let a=[];for(const e of this.dataManager.relationshipTypeNames){const t=this.sublayerIdsCache.get(e);t&&(a=a.concat(Array.from(t.keys())))}i=await this.dataManager.getRelationshipsBetweenNodes(e,a,t),await this._handleNewRecords(i,t),l(t)}catch(a){throw h(a)&&this.removeRecords(i),a}return{records:i}}async connectFromEntities(e,t){if(!e.length)return{records:[]};let i=[];try{let a=[];for(const e of this.dataManager.relationshipTypeNames){const t=this.sublayerIdsCache.get(e);t&&(a=a.concat(Array.from(t.keys())))}let n=[];for(const e of this.dataManager.entityTypeNames){const t=this.sublayerIdsCache.get(e);t&&(n=n.concat(Array.from(t)))}i=await this.dataManager.getRelationshipsFromNodes(e,n,a,t),await this._handleNewRecords(i,t),i.length>0&&(this.membershipModified=!0),l(t)}catch(a){throw h(a)&&this.removeRecords(i),a}return{records:i}}getCurrentLayout(){return this._currentLinkChartConfig.layoutMode}async _calculateLayoutWithSublayerTimeInfo(e="organic-standard",t){const i=new Map;this.layers.forEach(e=>{i.set(e.objectType.name,e.timeInfo)}),await this.calculateLinkChartLayout(e,{timeInfoByTypeName:i,...t}),this.linkChart?.handleChronologicalOverlay()}async _handleNewRecords(e,t){const i=new Set,a=[],n=this.layers.concat(this.tables);for(const r of e){if(!this._graphTypeLookup.has(r.typeName))continue;!1===n.some(e=>e.objectType.name===r.typeName)&&(this.dataManager.sublayerCaches.set(r.typeName,new Map),i.add(r.typeName));s(this.sublayerIdsCache,r.typeName,()=>new Set).add(r.id),a.push(r)}this.dataManager.addToLayer(a);for(const s of i){const e=this._graphTypeLookup.get(s);if(e){const t=this._createSublayer(e);"entity"===e.type?this.dataManager.entityTypeNames.add(s):this.dataManager.relationshipTypeNames.add(s),t.geometryType?this.layers.push(t):this.tables.push(t)}}await A(this,Array.from(i),t),await this.dataManager.refreshCacheContent(e.map(e=>e.id),void 0,void 0,void 0,t);const o={layoutSettings:this._currentLinkChartConfig.layoutSettings,lockedEntityLocations:new Map};for(const[s,r]of this.entityLinkChartDiagramLookup.entries())r&&o.lockedEntityLocations.set(s,new f(r.coords[0],r.coords[1]));await this.applyNewLinkChartLayout(this._currentLinkChartConfig.layoutMode,o)}_createSublayers(e,t,i){e.forEach(e=>{const a=this._createSublayer(e);i(a)&&t.push(a),this._updateSublayerCaches(e)})}_updateSublayers(e,t){t.forEach(t=>{t.parentCompositeLayer=this;const i=e.find(e=>e.type===t.graphType&&e.name===t.graphTypeName);i&&(t.objectType=i,t.read({title:i.name},{origin:"service"}),this._updateSublayerCaches(i))})}_updateSublayerCaches({name:e}){if(!e)return;const t=this.dataManager.sublayerCaches;t.has(e)||t.set(e,new Map)}_layersLoadedFromAuthoritativeItem(){const e=this.originIdOf("layers");return e>=3&&e<7}async _initializeDiagram(){this.initializationLinkChartConfig?this.initializationLinkChartConfig.doNotRecalculateLayout?(this.dataManager.inclusionModeDefinition?.namedTypeDefinitions?.forEach((e,t)=>{e?.members?.forEach(e=>{const i=e.linkChartLocation;let a;const n=e.id;if(!i)return;a="x"in i?{x:i.x,y:i.y}:{x:i.coords[0],y:i.coords[1]};const o=k(a);this.dataManager.relationshipTypeNames.has(t)?this.relationshipLinkChartDiagramLookup.set(n,o):this.entityLinkChartDiagramLookup.set(n,o),this.linkChartExtent.xmin>a.x&&(this.linkChartExtent.xmin=a.x),this.linkChartExtent.xmax<a.x&&(this.linkChartExtent.xmax=a.x),this.linkChartExtent.ymin>a.y&&(this.linkChartExtent.ymin=a.y),this.linkChartExtent.ymax<a.y&&(this.linkChartExtent.ymax=a.y)})}),this.memberRelationshipTypes.forEach(e=>{e.name&&this.dataManager.sublayerCaches.get(e.name)?.forEach(e=>{const t=this.relationshipLinkChartDiagramLookup.get(e.attributes[C]),i=this.relationshipLinkChartDiagramLookup.get(e.attributes[T]);if(t&&i){const a=k(new L({paths:[[[t.coords[0],t.coords[1]],[i.coords[0],i.coords[1]]]]}));this.relationshipLinkChartDiagramLookup.set(e.attributes[M],a)}else this.relationshipLinkChartDiagramLookup.set(e.attributes[M],null)})})):await this._calculateLayoutWithSublayerTimeInfo(this.initializationLinkChartConfig.layoutMode,{lockedEntityLocations:this.getCurrentNodeLocations(),...this.initializationLinkChartConfig}):await this._calculateLayoutWithSublayerTimeInfo("organic-standard",{lockedEntityLocations:this.getCurrentNodeLocations()})}_refreshNamedTypes(){for(const e of this.layers)e.emit("refresh",{dataChanged:!0});for(const e of this.tables)e.emit("refresh",{dataChanged:!0})}_validateOrganicLayoutSettings(e,t){const i=e=>"number"==typeof e&&!isNaN(e),a=e=>i(e)&&e>=1,n=e=>i(e)&&e>=1,s=e=>Object.values(D).includes(e),r=e=>i(e)&&e>=0,l={};if(!new Set(["organic-standard","organic-community","geographic-organic-standard","chronological-multi-timeline","chronological-mono-timeline"]).has(e)||!t)return l;const{computationBudgetTime:h,autoRepulsionRadius:d,repulsionRadiusMultiplier:p,absoluteIdealEdgeLength:c,multiplicativeIdealEdgeLength:u,idealEdgeLengthType:y}=t;return n(h)?l.computationBudgetTime=h:h&&o.getLogger(this).warn("Invalid layout computationBudgetTime setting, will revert to default setting"),l.autoRepulsionRadius=d,!d&&a(p)?l.repulsionRadiusMultiplier=p:d||(l.autoRepulsionRadius=!0,o.getLogger(this).warn("Invalid layout repulsionRadiusMultiplier setting, will revert to default setting")),"geographic-organic-standard"===e&&(s(y)?l.idealEdgeLengthType=y:void 0!==y&&o.getLogger(this).warn('Invalid layout idealEdgeLengthType setting, will revert to "multiplier" setting'),"absolute-value"===y&&r(c)?l.absoluteIdealEdgeLength=c:"absolute-value"===y&&void 0!==c?o.getLogger(this).warn("Invalid layout idealEdgeLength setting, will revert to default setting"):"multiplier"===y&&r(u)?l.multiplicativeIdealEdgeLength=u:"multiplier"===y&&void 0!==u&&o.getLogger(this).warn("Invalid layout idealEdgeLength setting, will revert to default setting")),l}_convertValidatedOrganicSettingsToCalculationSettings(e){let t=e.idealEdgeLengthType===D.ABSOLUTE?e.absoluteIdealEdgeLength:e.multiplicativeIdealEdgeLength;return e.idealEdgeLengthType===D.ABSOLUTE&&(void 0===t?t=-1:t*=-1),{computationBudgetTime:e.computationBudgetTime??void 0,repulsionRadiusMultiplier:e.repulsionRadiusMultiplier&&!e.autoRepulsionRadius?e.repulsionRadiusMultiplier:void 0,idealEdgeLengthMultiplier:t}}_createSublayer(e){return new x({objectType:e,parentCompositeLayer:this,graphType:e.type})}_handleSublayersChange(e,t){t&&(t.forEach(e=>{e.parent=null}),this.removeHandles("sublayers-owner")),e&&(e.forEach(e=>{e.parent=this}),this.addHandles([e.on("after-add",({item:e})=>{e.parent=this}),e.on("after-remove",({item:e})=>{e.parent=null})],"sublayers-owner"))}_alignLayersDataModelAndInclusionDefinition(e){const t=new Set((e.entityTypes??[]).map(e=>e.name).concat((e.relationshipTypes??[]).map(e=>e.name))),a=new Set((e.entityTypes??[]).map(e=>e.name)),n=new Set((e.relationshipTypes??[]).map(e=>e.name));if(this.layers){for(const i of this.layers)!i.graphType&&t.has(i.graphTypeName)&&(i.graphType=a.has(i.graphTypeName)?"entity":"relationship");const e=this.layers.filter(e=>t.has(e.graphTypeName)&&("entity"===e.graphType?a.has(e.graphTypeName):n.has(e.graphTypeName)));this.setAtOrigin("layers",e,g(this.originIdOf("layers")))}else this.layers=new i;if(this.layers&&this._originalInclusionList){const e=new Set(this._originalInclusionList.namedTypeDefinitions.keys()),t=this.tables?.map(e=>e.graphTypeName)??[],i=this.layers.map(e=>e.graphTypeName).concat(t);for(const n of i)e.has(n)||this._originalInclusionList.namedTypeDefinitions.set(n,{useAllData:!1,members:new Map});const a=[];for(const n of this._originalInclusionList.namedTypeDefinitions.keys())i.includes(n)||(o.getLogger(this).warn(`A named type, ${n}, was in the serialized feature collection but did not have a sublayer config in the item, so will be removed`),a.push(n));for(const n of a)this._originalInclusionList.namedTypeDefinitions.delete(n)}}};e([u(F)],q.prototype,"url",void 0),e([u()],q.prototype,"dataPreloadedInLocalCache",void 0),e([u()],q.prototype,"initializationLinkChartConfig",void 0),e([u()],q.prototype,"membershipModified",void 0),e([u()],q.prototype,"dataManager",void 0),e([u()],q.prototype,"initializationInclusionModeDefinition",null),e([u()],q.prototype,"knowledgeGraph",void 0),e([u({type:i.ofType(x),json:{write:{ignoreOrigin:!0}}})],q.prototype,"layers",void 0),e([u({readOnly:!0})],q.prototype,"linkChart",null),e([u()],q.prototype,"entityLinkChartDiagramLookup",void 0),e([u()],q.prototype,"relationshipLinkChartDiagramLookup",void 0),e([u()],q.prototype,"linkChartExtent",void 0),e([u()],q.prototype,"memberEntityTypes",void 0),e([u()],q.prototype,"memberRelationshipTypes",void 0),e([u({type:["LinkChartLayer"]})],q.prototype,"operationalLayerType",void 0),e([u()],q.prototype,"sublayerCapabilities",null),e([u()],q.prototype,"sublayerIdsCache",void 0),e([u({type:i.ofType(x),json:{write:{ignoreOrigin:!0}}})],q.prototype,"tables",void 0),e([u({json:{read:!1}})],q.prototype,"type",void 0),e([u({readOnly:!0})],q.prototype,"userHasEditingPrivileges",void 0),e([u({readOnly:!0})],q.prototype,"userHasFullEditingPrivileges",void 0),e([u({readOnly:!0})],q.prototype,"userHasUpdateItemPrivileges",void 0),e([u({json:{read:!1}})],q.prototype,"chronologicalAuxiliaryGraphics",void 0),q=e([y("esri.layers.LinkChartLayer")],q);const X=q;export{X as default};
|
|
@@ -2,7 +2,6 @@ import type { __FeatureLayerSansType } from "./FeatureLayer.js";
|
|
|
2
2
|
import type SpatialReference from "../geometry/SpatialReference.js";
|
|
3
3
|
import type FeatureLayer from "./FeatureLayer.js";
|
|
4
4
|
import type Field from "./support/Field.js";
|
|
5
|
-
import type FieldConfiguration from "./support/FieldConfiguration.js";
|
|
6
5
|
import type PortalItem from "../portal/PortalItem.js";
|
|
7
6
|
import type FeatureSet from "../rest/support/FeatureSet.js";
|
|
8
7
|
import type { LayerSaveAsOptions, LayerSaveOptions } from "./types.js";
|
|
@@ -48,59 +47,6 @@ export interface OrientedImageryLayerProperties extends FeatureLayerProperties,
|
|
|
48
47
|
* @since 4.29
|
|
49
48
|
*/
|
|
50
49
|
displayField?: string | null;
|
|
51
|
-
/**
|
|
52
|
-
* > [!WARNING]
|
|
53
|
-
* >
|
|
54
|
-
* > **Note**
|
|
55
|
-
* >
|
|
56
|
-
* > This property is currently not supported in OrientedImageryLayer. It is ignored and will always return `null`.
|
|
57
|
-
*
|
|
58
|
-
* @since 4.34
|
|
59
|
-
* @see [getFieldConfiguration()](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#getFieldConfiguration)
|
|
60
|
-
* @see [getFieldAlias()](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#getFieldAlias)
|
|
61
|
-
* @see [FieldConfiguration](https://developers.arcgis.com/javascript/latest/references/core/layers/support/FieldConfiguration/)
|
|
62
|
-
* @example
|
|
63
|
-
* // Adding a new field configuration
|
|
64
|
-
* const addNewConfig = (layer, fieldName, alias,
|
|
65
|
-
* fieldFormat) => {
|
|
66
|
-
* // Check if there is already an existing configuration for fieldName
|
|
67
|
-
* const existingConfig = layer.getFieldConfiguration(fieldName);
|
|
68
|
-
* if (!existingConfig) {
|
|
69
|
-
* const newConfig = new FieldConfiguration({ name: fieldName, alias, fieldFormat });
|
|
70
|
-
* const newConfigs = clone(layer.fieldConfigurations);
|
|
71
|
-
* newConfigs.push(newConfig);
|
|
72
|
-
* layer.fieldConfigurations = newConfigs;
|
|
73
|
-
* }
|
|
74
|
-
* };
|
|
75
|
-
* @example
|
|
76
|
-
* // Updating an existing field configuration
|
|
77
|
-
* const updateConfig = (layer, fieldName, alias,
|
|
78
|
-
* fieldFormat) => {
|
|
79
|
-
* const existingConfig = layer.getFieldConfiguration(fieldName);
|
|
80
|
-
* if (existingConfig) {
|
|
81
|
-
* const newConfig = existingConfig.clone();
|
|
82
|
-
* newConfig.alias = alias;
|
|
83
|
-
* newConfig.fieldFormat = fieldFormat;
|
|
84
|
-
*
|
|
85
|
-
* const index = layer.fieldConfigurations.indexOf(existingConfig);
|
|
86
|
-
* const newConfigs = clone(layer.fieldConfigurations);
|
|
87
|
-
* newConfigs[index] = newConfig;
|
|
88
|
-
* layer.fieldConfigurations = newConfigs;
|
|
89
|
-
* }
|
|
90
|
-
* };
|
|
91
|
-
* @example
|
|
92
|
-
* // Deleting an existing field configuration
|
|
93
|
-
* const deleteConfig = (layer, fieldName) => {
|
|
94
|
-
* const existingConfig = layer.getFieldConfiguration(fieldName);
|
|
95
|
-
* if (existingConfig) {
|
|
96
|
-
* const index = layer.fieldConfigurations.indexOf(existingConfig);
|
|
97
|
-
* var newConfigs = clone(layer.fieldConfigurations);
|
|
98
|
-
* newConfigs.splice(index, 1);
|
|
99
|
-
* layer.fieldConfigurations = newConfigs;
|
|
100
|
-
* }
|
|
101
|
-
* };
|
|
102
|
-
*/
|
|
103
|
-
fieldConfigurations?: FieldConfiguration[] | null;
|
|
104
50
|
/**
|
|
105
51
|
* An array of fields in the layer. Each field represents an attribute
|
|
106
52
|
* that may contain a value for each feature in the layer. For example,
|
|
@@ -542,60 +488,6 @@ export default class OrientedImageryLayer extends __FeatureLayerSansType {
|
|
|
542
488
|
* layer.farDistance = 60;
|
|
543
489
|
*/
|
|
544
490
|
accessor farDistance: number | null | undefined;
|
|
545
|
-
/**
|
|
546
|
-
* > [!WARNING]
|
|
547
|
-
* >
|
|
548
|
-
* > **Note**
|
|
549
|
-
* >
|
|
550
|
-
* > This property is currently not supported in OrientedImageryLayer. It is ignored and will always return `null`.
|
|
551
|
-
*
|
|
552
|
-
* @since 4.34
|
|
553
|
-
* @see [getFieldConfiguration()](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#getFieldConfiguration)
|
|
554
|
-
* @see [getFieldAlias()](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#getFieldAlias)
|
|
555
|
-
* @see [FieldConfiguration](https://developers.arcgis.com/javascript/latest/references/core/layers/support/FieldConfiguration/)
|
|
556
|
-
* @example
|
|
557
|
-
* // Adding a new field configuration
|
|
558
|
-
* const addNewConfig = (layer, fieldName, alias,
|
|
559
|
-
* fieldFormat) => {
|
|
560
|
-
* // Check if there is already an existing configuration for fieldName
|
|
561
|
-
* const existingConfig = layer.getFieldConfiguration(fieldName);
|
|
562
|
-
* if (!existingConfig) {
|
|
563
|
-
* const newConfig = new FieldConfiguration({ name: fieldName, alias, fieldFormat });
|
|
564
|
-
* const newConfigs = clone(layer.fieldConfigurations);
|
|
565
|
-
* newConfigs.push(newConfig);
|
|
566
|
-
* layer.fieldConfigurations = newConfigs;
|
|
567
|
-
* }
|
|
568
|
-
* };
|
|
569
|
-
* @example
|
|
570
|
-
* // Updating an existing field configuration
|
|
571
|
-
* const updateConfig = (layer, fieldName, alias,
|
|
572
|
-
* fieldFormat) => {
|
|
573
|
-
* const existingConfig = layer.getFieldConfiguration(fieldName);
|
|
574
|
-
* if (existingConfig) {
|
|
575
|
-
* const newConfig = existingConfig.clone();
|
|
576
|
-
* newConfig.alias = alias;
|
|
577
|
-
* newConfig.fieldFormat = fieldFormat;
|
|
578
|
-
*
|
|
579
|
-
* const index = layer.fieldConfigurations.indexOf(existingConfig);
|
|
580
|
-
* const newConfigs = clone(layer.fieldConfigurations);
|
|
581
|
-
* newConfigs[index] = newConfig;
|
|
582
|
-
* layer.fieldConfigurations = newConfigs;
|
|
583
|
-
* }
|
|
584
|
-
* };
|
|
585
|
-
* @example
|
|
586
|
-
* // Deleting an existing field configuration
|
|
587
|
-
* const deleteConfig = (layer, fieldName) => {
|
|
588
|
-
* const existingConfig = layer.getFieldConfiguration(fieldName);
|
|
589
|
-
* if (existingConfig) {
|
|
590
|
-
* const index = layer.fieldConfigurations.indexOf(existingConfig);
|
|
591
|
-
* var newConfigs = clone(layer.fieldConfigurations);
|
|
592
|
-
* newConfigs.splice(index, 1);
|
|
593
|
-
* layer.fieldConfigurations = newConfigs;
|
|
594
|
-
* }
|
|
595
|
-
* };
|
|
596
|
-
*/
|
|
597
|
-
get fieldConfigurations(): null | undefined;
|
|
598
|
-
set fieldConfigurations(value: FieldConfiguration[] | null | undefined);
|
|
599
491
|
/**
|
|
600
492
|
* An array of fields in the layer. Each field represents an attribute
|
|
601
493
|
* that may contain a value for each feature in the layer. For example,
|
|
@@ -929,50 +821,6 @@ export default class OrientedImageryLayer extends __FeatureLayerSansType {
|
|
|
929
821
|
accessor videoPathPrefix: string | null | undefined;
|
|
930
822
|
/** Suffix used to build the video url path in conjunction with the image attribute. */
|
|
931
823
|
accessor videoPathSuffix: string | null | undefined;
|
|
932
|
-
/**
|
|
933
|
-
* > [!WARNING]
|
|
934
|
-
* >
|
|
935
|
-
* > **Note**
|
|
936
|
-
* >
|
|
937
|
-
* > This method is currently not supported in OrientedImageryLayer. It is ignored and will always return `null`.
|
|
938
|
-
*
|
|
939
|
-
* @returns An array of field configuration objects, or `null` if
|
|
940
|
-
* the layer does not have any fields that require formatting.
|
|
941
|
-
* @since 4.34
|
|
942
|
-
* @see [fieldConfigurations](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#fieldConfigurations)
|
|
943
|
-
* @example
|
|
944
|
-
* const fieldConfigs = featureLayer.createFieldConfigurations();
|
|
945
|
-
* featureLayer.fieldConfigurations = fieldConfigs;
|
|
946
|
-
*/
|
|
947
|
-
createFieldConfigurations(): FieldConfiguration[] | null | undefined;
|
|
948
|
-
/**
|
|
949
|
-
* > [!WARNING]
|
|
950
|
-
* >
|
|
951
|
-
* > **Note**
|
|
952
|
-
* >
|
|
953
|
-
* > This method is currently not supported in OrientedImageryLayer. It is ignored and will always return `null`.
|
|
954
|
-
*
|
|
955
|
-
* @param fieldName - The name of the field for which to get the alias.
|
|
956
|
-
* @returns The field alias of the specified field.
|
|
957
|
-
* @since 4.34
|
|
958
|
-
* @see [fieldConfigurations](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#fieldConfigurations)
|
|
959
|
-
* @see [getFieldConfiguration()](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#getFieldConfiguration)
|
|
960
|
-
*/
|
|
961
|
-
getFieldAlias(fieldName: string): string | null | undefined;
|
|
962
|
-
/**
|
|
963
|
-
* > [!WARNING]
|
|
964
|
-
* >
|
|
965
|
-
* > **Note**
|
|
966
|
-
* >
|
|
967
|
-
* > This method is currently not supported in OrientedImageryLayer. It is ignored and will always return `null`.
|
|
968
|
-
*
|
|
969
|
-
* @param fieldName - The name of the field for which to get the configuration.
|
|
970
|
-
* @returns The field configuration of the specified field.
|
|
971
|
-
* @since 4.34
|
|
972
|
-
* @see [fieldConfigurations](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#fieldConfigurations)
|
|
973
|
-
* @see [getFieldAlias()](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#getFieldAlias)
|
|
974
|
-
*/
|
|
975
|
-
getFieldConfiguration(fieldName: string): FieldConfiguration | null | undefined;
|
|
976
824
|
/**
|
|
977
825
|
* Executes a [Query](https://developers.arcgis.com/javascript/latest/references/core/rest/support/Query/) against the feature service and
|
|
978
826
|
* returns the number of features that satisfy the query. If no parameters are specified,
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import t from"../core/Error.js";import{clone as i}from"../core/lang.js";import{setDeepValue as r}from"../core/object.js";import{property as o,subclass as a}from"../core/accessorSupport/decorators.js";import n from"../geometry/SpatialReference.js";import
|
|
2
|
+
import{__decorate as e}from"tslib";import t from"../core/Error.js";import{clone as i}from"../core/lang.js";import{setDeepValue as r}from"../core/object.js";import{property as o,subclass as a}from"../core/accessorSupport/decorators.js";import n from"../geometry/SpatialReference.js";import s from"../graphic/OrientedImageryGraphicOrigin.js";import p from"./FeatureLayer.js";import{useViewTimeProperty as l}from"./mixins/TemporalLayer.js";import{getEffectiveElevationSource as d,orientedImageryTypeMap as m,timeIntervalUnitTypeMap as y,verticalMeasurementTypeMap as u,isOrientationAccuracy as c,padAccuracyArray as h}from"./orientedImagery/core/utils.js";import g from"./support/Field.js";import f from"../tables/AttributeTableTemplate.js";import v from"../time/TimeExtent.js";const S=new Set(["demPathPrefix","demPathSuffix","depthImagePathPrefix","depthImagePathSuffix","elevationSource","horizontalMeasurementUnit","imageGeometryField","imageReferenceField","referenceIDField","sequenceOrderField","verticalMeasurementUnit","videoPathPrefix","videoPathSuffix","timeAnimation","visibilityTimeExtent"]),j=new Set(["elevationSource"]),P=(e,t)=>!S.has(t)&&e,I=(e,t,i)=>{const r=`orientedImageryProperties.${e}`,o={allowNull:j.has(e),ignoreOrigin:!0};return{name:r,write:t?{...o,target:r,writer:t}:o,read:i?{ignoreOrigin:!0,source:r,reader:i}:{ignoreOrigin:!0}}};function O(e){return e.json?(e.json.origins=e.json.origins??{},e.json.origins["web-scene"]={write:!1,read:!1},e):e}function b(e,t,i,r){const{name:o,write:a,read:n}=I(e,t,i),s={name:o,write:a,read:n,origins:{service:{name:`orientedImageryInfo.${o}`,write:t,read:i},"web-scene":{name:o,write:P(a,e),read:P(n,e)},"web-map":{name:o,write:a,read:n}}};return r&&s.origins?(s.type=r,s.origins["web-map"].type=r,s.origins["web-scene"].type=r,s):s}let x=class extends p{constructor(e){super(e),this.attributeTableTemplate=null,this.cameraHeading=null,this.cameraHeight=null,this.cameraPitch=null,this.cameraRoll=null,this.coveragePercent=null,this.demPathPrefix=null,this.demPathSuffix=null,this.depthImagePathPrefix=null,this.depthImagePathSuffix=null,this.elevationSource=null,this.farDistance=null,this.geometryType="point",this.graphicOrigin=new s(this),this.horizontalFieldOfView=null,this.horizontalMeasurementUnit=null,this.imageGeometryField="ImageGeometry",this.imagePathPrefix=null,this.imagePathSuffix=null,this.imageReferenceField="OIObjectID",this.imageRotation=null,this.maximumDistance=null,this.nearDistance=null,this.operationalLayerType="OrientedImageryLayer",this.orientationAccuracy=null,this.orientedImageryType=null,this.referenceIDField="OBJECTID",this.sequenceOrderField="SequenceOrder",this.subtypeField=null,this.subtypes=null,this.supportedSourceTypes=new Set(["Oriented Imagery Layer"]),this.type="oriented-imagery",this.timeIntervalUnit="days",this.useViewTime=!0,this.verticalFieldOfView=null,this.verticalMeasurementUnit=null,this.verticalSearchRange=null,this.videoPathPrefix=null,this.videoPathSuffix=null,this.virtualCacheDirectory=null,this.dataStoreID=null,this.visibilityTimeExtent=null}get effectiveElevationSource(){const{elevationSource:e,demPathPrefix:t,demPathSuffix:i}=this;return d(e,t,i)}get effectiveSequenceOrderField(){const{sequenceOrderField:e,fields:t}=this;return t.find(t=>t.name.toLowerCase()===e?.toLowerCase())?.name??"SequenceOrder"}get portalItem(){return super.portalItem}set portalItem(e){super.portalItem=e}async save(e){return this._debouncedSaveOperations(0,e)}async saveAs(e,t){return this._debouncedSaveOperations(1,t,e)}findFirstValidLayerId(e){return e.layers?.find(({type:e})=>!!e&&this.supportedSourceTypes.has(e))?.id}_verifySource(){if(super._verifySource(),"point"!==this.geometryType)throw new t("oriented-imagery-layer:invalid-geometry-type","OrientedImageryLayer only supports point geometry type")}};e([o({type:f,json:{write:!1,read:!1}})],x.prototype,"attributeTableTemplate",void 0),e([o({type:Number,json:b("cameraHeading")})],x.prototype,"cameraHeading",void 0),e([o({type:Number,json:b("cameraHeight")})],x.prototype,"cameraHeight",void 0),e([o({type:Number,json:b("cameraPitch")})],x.prototype,"cameraPitch",void 0),e([o({type:Number,json:b("cameraRoll")})],x.prototype,"cameraRoll",void 0),e([o({type:Number,json:b("coveragePercent")})],x.prototype,"coveragePercent",void 0),e([o({type:String,json:b("demPathPrefix")})],x.prototype,"demPathPrefix",void 0),e([o({type:String,json:b("demPathSuffix")})],x.prototype,"demPathSuffix",void 0),e([o({type:String,json:b("depthImagePathPrefix")})],x.prototype,"depthImagePathPrefix",void 0),e([o({type:String,json:b("depthImagePathSuffix")})],x.prototype,"depthImagePathSuffix",void 0),e([o({type:Object,json:b("elevationSource")})],x.prototype,"elevationSource",void 0),e([o({readOnly:!0})],x.prototype,"effectiveElevationSource",null),e([o({readOnly:!0})],x.prototype,"effectiveSequenceOrderField",null),e([o({type:Number,json:b("farDistance")})],x.prototype,"farDistance",void 0),e([o({type:[g]})],x.prototype,"fields",void 0),e([o()],x.prototype,"geometryType",void 0),e([o({readOnly:!0,clonable:!1})],x.prototype,"graphicOrigin",void 0),e([o({type:Number,json:b("horizontalFieldOfView")})],x.prototype,"horizontalFieldOfView",void 0),e([o({type:String,json:b("horizontalMeasurementUnit")})],x.prototype,"horizontalMeasurementUnit",void 0),e([o({type:String,json:{...b("imageGeometryField"),default:"ImageGeometry"}})],x.prototype,"imageGeometryField",void 0),e([o({type:String,json:b("imagePathPrefix")})],x.prototype,"imagePathPrefix",void 0),e([o({type:String,json:b("imagePathSuffix")})],x.prototype,"imagePathSuffix",void 0),e([o({type:String,json:{...b("imageReferenceField"),default:"OIObjectID"}})],x.prototype,"imageReferenceField",void 0),e([o({type:Number,json:b("imageRotation")})],x.prototype,"imageRotation",void 0),e([o({type:Number,json:b("maximumDistance")})],x.prototype,"maximumDistance",void 0),e([o({type:Number,json:b("nearDistance")})],x.prototype,"nearDistance",void 0),e([o({type:["OrientedImageryLayer"],json:{origins:{"portal-item":{name:"layerType",write:{enabled:!0,ignoreOrigin:!0}}}}})],x.prototype,"operationalLayerType",void 0),e([o({json:{...b("orientationAccuracy",(e,t,i)=>{r(i,e.join(";"),t)},e=>{const t=e?.split(";")?.map(Number);return c(t)?h(t):[0,0,0,0,0,0,0,0]},String)}})],x.prototype,"orientationAccuracy",void 0),e([o({json:{...b("orientedImageryType",m.write,m.read,m.jsonValues.slice(1))}})],x.prototype,"orientedImageryType",void 0),e([o({type:String,json:{...b("referenceIDField"),default:"OBJECTID"}})],x.prototype,"referenceIDField",void 0),e([o({type:String,json:{...b("sequenceOrderField"),default:"SequenceOrder"}})],x.prototype,"sequenceOrderField",void 0),e([o({type:n})],x.prototype,"spatialReference",void 0),e([o({readOnly:!0})],x.prototype,"subtypeField",void 0),e([o({readOnly:!0})],x.prototype,"subtypes",void 0),e([o({json:{read:!1},value:"oriented-imagery",readOnly:!0})],x.prototype,"type",void 0),e([o({type:y.apiValues,json:{...b("timeIntervalUnit",y.write,y.read,y.jsonValues)}})],x.prototype,"timeIntervalUnit",void 0),e([o(O(i(l)))],x.prototype,"useViewTime",void 0),e([o({type:Number,json:b("verticalFieldOfView")})],x.prototype,"verticalFieldOfView",void 0),e([o({type:u.apiValues,json:{...b("verticalMeasurementUnit",u.write,u.read,u.jsonValues)}})],x.prototype,"verticalMeasurementUnit",void 0),e([o({type:Number,json:b("verticalSearchRange")})],x.prototype,"verticalSearchRange",void 0),e([o({type:String,json:b("videoPathPrefix")})],x.prototype,"videoPathPrefix",void 0),e([o({type:String,json:b("videoPathSuffix")})],x.prototype,"videoPathSuffix",void 0),e([o({type:String,json:{read:!1,write:!1,origins:{service:{name:"orientedImageryInfo.orientedImageryProperties.virtualCacheDirectory",read:!0}}}})],x.prototype,"virtualCacheDirectory",void 0),e([o({type:String,json:{read:!1,write:!1,origins:{service:{name:"orientedImageryInfo.dsid",read:!0}}}})],x.prototype,"dataStoreID",void 0),e([o({type:v,json:{origins:{"web-scene":{write:!1,read:!1}}}})],x.prototype,"visibilityTimeExtent",void 0),x=e([a("esri.layers.OrientedImageryLayer")],x);const w=x;export{w as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{id as e}from"../../kernel.js";import t from"../../request.js";import n from"../../core/Collection.js";import"../../core/urlUtils.js";import{isLayerFromCatalog as r}from"../catalog/catalogUtils.js";import{isBasemap as i}from"../../support/userTypeGuards/isBasemap.js";function u(e,t){return null!=e&&"object"==typeof e&&"type"in e&&e.type===t}function s(e){return
|
|
2
|
+
import{id as e}from"../../kernel.js";import t from"../../request.js";import n from"../../core/Collection.js";import"../../core/urlUtils.js";import{isLayerFromCatalog as r}from"../catalog/catalogUtils.js";import{isBasemap as i}from"../../support/userTypeGuards/isBasemap.js";function u(e,t){return null!=e&&"object"==typeof e&&"type"in e&&e.type===t}function s(e){return v(e)||b(e)}function o(e){return u(e,"feature")}function c(e){return"gaussian-splat"===e?.type}function a(e){return null!=e&&"object"==typeof e&&"type"in e&&"oriented-imagery"===e.type}function l(e){return u(e,"graphics")}function f(e){return u(e,"map-image")}function p(e){return u(e,"map-notes")&&"sublayers"in e}function y(e){return u(e,"knowledge-graph")&&"layers"in e}function g(e){return u(e,"knowledge-graph-sublayer")}function d(e){return u(e,"link-chart")&&"layers"in e}function b(e){return u(e,"scene")}function m(e){return u(e,"subtype-group")&&"sublayers"in e}function h(e){return"subtype-sublayer"===e?.type}function v(e){const t=e?.type;return"imagery-tile"===t||"tile"===t||"open-street-map"===t||"vector-tile"===t||"web-tile"===t||"wmts"===t}function w(e){const t=e?.type;return"base-tile"===t||"tile"===t||"elevation"===t||"imagery-tile"===t||"base-elevation"===t||"open-street-map"===t||"wcs"===t||"web-tile"===t||"wmts"===t||"vector-tile"===t}function j(e){return"group"===e?.type}function L(e){const t=e.parent;return j(t)&&t.tables.includes(e)}const S={Point:"SceneLayer","3DObject":"SceneLayer",IntegratedMesh:"IntegratedMeshLayer",PointCloud:"PointCloudLayer",Building:"BuildingSceneLayer"};function E(e){const t=e?.type;return"building-scene"===t||"integrated-mesh"===t||"point-cloud"===t||"scene"===t}function k(e){return"integrated-mesh"===e.type||"integrated-mesh-3dtiles"===e.type}function C(e){return"integrated-mesh-3dtiles"===e.type}function x(e){return"voxel"===e?.type}function T(e){return"imagery-tile"===e?.type}function U(e,t){return i(e?.parent)&&e.parent[t].includes(e)}function M(e){return U(e,"baseLayers")}function O(e){return U(e,"referenceLayers")}function P(e){return"feature"===e?.type&&!e.url&&"memory"===e.source?.type}function B(e){const t=e?.type;return("feature"===t||"subtype-group"===t||"oriented-imagery"===t)&&"feature-layer"===e?.source?.type}function I(e){return"feature"===e?.type&&"feature-layer"===e.source?.type}function R(e){return a(e)||o(e)&&I(e)}function q(e){const t=e?.type;return"binning"===t||"cluster"===t}function F(e,t){if(!R(e))return;const n=t?.graphic,r=e.featureReduction;if(n){if(n.isAggregate){const e=n.origin;return e&&("featureReductionProvider"in e&&r)?q(r)?r:null:void 0}return e}return t?.checkFeatureReduction&&r?q(r)?r:null:e}function J(e){const t=/[:;]/,n=[];let r=!1;if(e&&(e.forEach((e,i)=>{n.push([i,e]),!r&&t.test(e)&&(r=!0)}),n.length>0)){let e;if(r){const t={};n.forEach(e=>{t[e[0]]=e[1]}),e=JSON.stringify(t)}else{const t=[];n.forEach(e=>{t.push(e[0]+":"+e[1])}),e=t.join(";")}return e}return null}function N(e){if(!e)return;const t=[];return e.forEach((e,n)=>{t.push('"'+n+'":'+JSON.stringify(e))}),t.length?"{"+t.join(",")+"}":void 0}function A(e){if(e.activeLayer){const t=e.activeLayer.tileMatrixSet;if(t)return t;const n=e.activeLayer.tileMatrixSets;if(n)return n}return null}async function D(n,r){const i=e?.findServerInfo(n);if(null!=i?.currentVersion)return i.owningSystemUrl||null;const u=n.toLowerCase().indexOf("/rest/services");if(-1===u)return null;const s=`${n.slice(0,u)}/rest/info`,o=null!=r?r.signal:null,{data:c}=await t(s,{query:{f:"json"},responseType:"json",signal:o});return c?.owningSystemUrl||null}function G(e){if(!("capabilities"in e))return!1;switch(e.type){case"catalog":case"catalog-footprint":case"csv":case"feature":case"geojson":case"imagery":case"knowledge-graph-sublayer":case"ogc-feature":case"oriented-imagery":case"scene":case"sublayer":case"subtype-group":case"subtype-sublayer":case"wfs":return!0;default:return!1}}function V(e){return null!=e&&"object"==typeof e&&"isTable"in e&&!!e.isTable}function $(e){return G(e)?"effectiveCapabilities"in e?e.effectiveCapabilities:e.capabilities:null}function z(e){if(!("editingEnabled"in e))return!1;switch(e.type){case"csv":case"feature":case"geojson":case"oriented-imagery":case"scene":case"subtype-group":case"subtype-sublayer":case"knowledge-graph-sublayer":return!0;default:return!1}}function H(e){return!!z(e)&&("effectiveEditingEnabled"in e?e.effectiveEditingEnabled:e.editingEnabled)}function K(e){if(!e)return[];return("subtypes"in e?e.subtypes:m(e.parent)?e.parent.subtypes:[])??[]}function Q(e){return("imagery"===e.type||"imagery-tile"===e.type)&&"flow"===e.renderer?.type}function W(e){const t=new n;for(const n of e.allLayers.concat(e.allTables))r(n)||L(n)||("charts"in n&&t.push(n),"subtype-group"===n.type&&t.push(...n.sublayers));return t}function X(e,t){return null}function Y(e){return null}function Z(e){return!e||"Feature Service"===e.type&&!e.sourceUrl}function _(e,t){if(!t||!Z(e))return;const n=X(e.url);n&&(e.url=n)}export{_ as applyPreferredHostToPortalItem,H as getEffectiveEditingEnabled,$ as getEffectiveLayerCapabilities,F as getFieldConfigurationsContainer,W as getLayersWithChartSupport,D as getOwningPortalUrl,Y as getPreferredHost,X as getPreferredUrl,K as getSubtypesFromLayer,A as getTileMaxtrixSetFromActiveLayer,M as isBaseLayer,s as isBasemap3DSupportedLayer,v as isBasemapSupportedTiledLayer,P as isFeatureCollectionLayer,o as isFeatureLayer,I as isFeatureServiceLayer,c as isGaussianSplatLayer,l as isGraphicsLayer,j as isGroupLayer,T as isImageryTileLayer,C as isIntegratedMesh3DTilesLayer,k as isIntegratedMeshLayer,y as isKnowledgeGraphLayer,g as isKnowledgeGraphSublayer,G as isLayerWithFeatureCapabilities,B as isLayerWithFeatureLayerSource,Q as isLayerWithFlowRenderer,d as isLinkChartLayer,f as isMapImageLayer,p as isMapNotesLayer,Z as isPreferredUrlApplicable,O as isReferenceLayer,b as isSceneLayer,E as isSceneServiceLayer,m as isSubtypeGroupLayer,h as isSubtypeSublayer,V as isTable,w as isTiledLayer,x as isVoxelLayer,S as sceneServiceLayerTypeToClassName,J as serializeLayerDefinitions,N as serializeTimeOptions,R as supportsFieldConfiguration};
|
package/package.json
CHANGED