@arcgis/core 6.0.0-next.28 → 6.0.0-next.29
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/arcgisGlobal.d.ts +0 -2
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/131185d26343a997495e.js +1 -0
- package/assets/esri/core/workers/chunks/{dbda982485d3fe26c729.js → 13c64087be3b2985a21b.js} +1 -1
- package/assets/esri/core/workers/chunks/144bad0c2415c345736a.js +1 -0
- package/assets/esri/core/workers/chunks/176d0a06ebff5a29dedf.js +1 -0
- package/assets/esri/core/workers/chunks/{b0ca81a07cff25df19d2.js → 176d75e76318bfc25a53.js} +1 -1
- package/assets/esri/core/workers/chunks/18776a130d96879a68b1.js +1 -0
- package/assets/esri/core/workers/chunks/{e35641a3a4da8cfbcf54.js → 189321d88026bd7e6d3e.js} +1 -1
- package/assets/esri/core/workers/chunks/18e7fa4d3e0b1a084cc6.js +1 -0
- package/assets/esri/core/workers/chunks/{1168bc5c9f0a7e1f63a2.js → 1989410a618865f02dec.js} +1 -1
- package/assets/esri/core/workers/chunks/{2c0cb214fedb29487eef.js → 199a7f97916679e0257c.js} +1 -1
- package/assets/esri/core/workers/chunks/1c406ab2bf99ac563316.js +1 -0
- package/assets/esri/core/workers/chunks/1d96fbad881a7d14a950.js +1 -0
- package/assets/esri/core/workers/chunks/{42d44c7d532df5ee70e9.js → 1deca3de77b1a9a07da4.js} +1 -1
- package/assets/esri/core/workers/chunks/{45f826554499c38968c6.js → 1ee4df0fd61440cb5f02.js} +1 -1
- package/assets/esri/core/workers/chunks/22e73501e1435a896826.js +1 -0
- package/assets/esri/core/workers/chunks/25657f70c5f04a4ed978.js +1 -0
- package/assets/esri/core/workers/chunks/276a0b549acf048e8673.js +1 -0
- package/assets/esri/core/workers/chunks/{56e903ccef66cbe18f92.js → 2cd60fd062d954322c1f.js} +1 -1
- package/assets/esri/core/workers/chunks/{ad96132bc89671e595f3.js → 2d3e0e4442dbc6ec6def.js} +1 -1
- package/assets/esri/core/workers/chunks/2de4296590bf9f9e9add.js +1 -0
- package/assets/esri/core/workers/chunks/2f5d014d6a72108b0b3a.js +1 -0
- package/assets/esri/core/workers/chunks/{0363d29fc665d169ebc4.js → 3105336a05f38a95ebea.js} +1 -1
- package/assets/esri/core/workers/chunks/379ef56f6b32494832a6.js +1 -0
- package/assets/esri/core/workers/chunks/3aafdb905c697bc9b1ad.js +1 -0
- package/assets/esri/core/workers/chunks/40c2674dae73f0942751.js +1 -0
- package/assets/esri/core/workers/chunks/418addce122dbb8897b4.js +1 -0
- package/assets/esri/core/workers/chunks/4419732baf3459a80e6d.js +1 -0
- package/assets/esri/core/workers/chunks/4976f5567fc7f1b63d10.js +1 -0
- package/assets/esri/core/workers/chunks/4e17665dd9048c300d87.js +1 -0
- package/assets/esri/core/workers/chunks/5396b6e99a0546a25d19.js +1 -0
- package/assets/esri/core/workers/chunks/53c7510df09b71ab5646.js +1 -0
- package/assets/esri/core/workers/chunks/561c48cb4d49b150765b.js +1 -0
- package/assets/esri/core/workers/chunks/{d90a3bfd45b5ed4092e0.js → 590fe0f56bc4c33a50e7.js} +1 -1
- package/assets/esri/core/workers/chunks/5bb6c255bdc8aa9ba23e.js +1 -0
- package/assets/esri/core/workers/chunks/5f1cb79aec9c4a9b7ddc.js +29 -0
- package/assets/esri/core/workers/chunks/{23a4806b4cdf7cc32e4d.js → 5f787809b74eed7b9a91.js} +1 -1
- package/assets/esri/core/workers/chunks/636e9c4ac1f9ae98f9d1.js +1 -0
- package/assets/esri/core/workers/chunks/654f5441227579d2b6b4.js +1 -0
- package/assets/esri/core/workers/chunks/692f0093c444fcc752b5.js +1 -0
- package/assets/esri/core/workers/chunks/69627b2634da64dd885f.js +1 -0
- package/assets/esri/core/workers/chunks/6a7de221cea4426cb490.js +1 -0
- package/assets/esri/core/workers/chunks/7030a4d0714a35995a58.js +1 -0
- package/assets/esri/core/workers/chunks/72d20d3957d612f86431.js +1 -0
- package/assets/esri/core/workers/chunks/7862abd24fb5c3b12e6b.js +1 -0
- package/assets/esri/core/workers/chunks/7a0b4dc0cda190367a39.js +1 -0
- package/assets/esri/core/workers/chunks/{5eec1c1162779574f46e.js → 7c75a8ee266c36baa902.js} +1 -1
- package/assets/esri/core/workers/chunks/{ab1660f5f8a5268c2fac.js → 84038dd85005fea413eb.js} +1 -1
- package/assets/esri/core/workers/chunks/849f446c718e892f39ce.js +1 -0
- package/assets/esri/core/workers/chunks/{8ac2098ecdc40ad41055.js → 8502274806ea52308822.js} +1 -1
- package/assets/esri/core/workers/chunks/865cebc5c982c040ab6f.js +1 -0
- package/assets/esri/core/workers/chunks/{76196c414e48834f7b92.js → 8f008eedb11685ee2048.js} +1 -1
- package/assets/esri/core/workers/chunks/90d797ab82d4a68ba32f.js +1 -0
- package/assets/esri/core/workers/chunks/9184c947cdefe06bf551.js +1 -0
- package/assets/esri/core/workers/chunks/9976eaa81085c0d17e14.js +1 -0
- package/assets/esri/core/workers/chunks/{177f353ce72133e2eeed.js → 9c2436464b7dfd666678.js} +1 -1
- package/assets/esri/core/workers/chunks/a125650edbed802e419a.js +1 -0
- package/assets/esri/core/workers/chunks/{23fd4de56de352f63e2d.js → a2196a49f89d57a0a1c7.js} +1 -1
- package/assets/esri/core/workers/chunks/ad21757d78e372fa2ed6.js +1 -0
- package/assets/esri/core/workers/chunks/b01688ccc29d33bfc82d.js +1 -0
- package/assets/esri/core/workers/chunks/b5eff28cf482d920b9ea.js +1 -0
- package/assets/esri/core/workers/chunks/{04ecf15524ff3838c01c.js → ba4520ddcb6a49988da6.js} +1 -1
- package/assets/esri/core/workers/chunks/be55771758e4bcef0976.js +1 -0
- package/assets/esri/core/workers/chunks/bead830a677690eeb6fb.js +1 -0
- package/assets/esri/core/workers/chunks/c131e0dd180a4c10e12e.js +1 -0
- package/assets/esri/core/workers/chunks/c1cf3edce15f09648eb4.js +1 -0
- package/assets/esri/core/workers/chunks/c4f78a481f43cfae7b63.js +1 -0
- package/assets/esri/core/workers/chunks/c570b90995c65bbb2e14.js +1 -0
- package/assets/esri/core/workers/chunks/c576bef77e34920af188.js +1 -0
- package/assets/esri/core/workers/chunks/c9feffb9884cfed52c4b.js +1 -0
- package/assets/esri/core/workers/chunks/cc97e4fd0dacad970a23.js +1 -0
- package/assets/esri/core/workers/chunks/ce324dde6d7daea33638.js +1 -0
- package/assets/esri/core/workers/chunks/d1d6154b4af1c9cc497b.js +1 -0
- package/assets/esri/core/workers/chunks/d3c3fb079ad97970f834.js +1 -0
- package/assets/esri/core/workers/chunks/daae21cf77864f3293ef.js +1 -0
- package/assets/esri/core/workers/chunks/dc2f93453dfa40f623ab.js +1 -0
- package/assets/esri/core/workers/chunks/dcf6024dc19428ff2b9d.js +1 -0
- package/assets/esri/core/workers/chunks/dd30b02c5978c1c5f511.js +1 -0
- package/assets/esri/core/workers/chunks/de3f140058aa0b907b65.js +1 -0
- package/assets/esri/core/workers/chunks/df375d1b0dab5ecbd1be.js +1 -0
- package/assets/esri/core/workers/chunks/{ef2c3febcceedc44b3ac.js → dfd4782b11d6fdca0492.js} +1 -1
- package/assets/esri/core/workers/chunks/{48cc58890fddbcf69cef.js → e121d15b883184ee83e7.js} +1 -1
- package/assets/esri/core/workers/chunks/{67e06d606c7fd2064adf.js → e2c6cd8dac01e129ccfe.js} +1 -1
- package/assets/esri/core/workers/chunks/e3b212f8af448ec29eef.js +1 -0
- package/assets/esri/core/workers/chunks/e4042e43f0081fe49f7b.js +1 -0
- package/assets/esri/core/workers/chunks/e480e7d5f40049a2053b.js +1 -0
- package/assets/esri/core/workers/chunks/eaab787a5f2445be5e5a.js +1 -0
- package/assets/esri/core/workers/chunks/edd36a1fc80b1d29907e.js +1 -0
- package/assets/esri/core/workers/chunks/ee0dc906cc7979080329.js +1 -0
- package/assets/esri/core/workers/chunks/f07fb9b3fa30d7ee1681.js +1 -0
- package/assets/esri/core/workers/chunks/f09bc86cd52224febfcb.js +1 -0
- package/assets/esri/core/workers/chunks/{037c67ef5c4398d5954d.js → f2dab9fcd90ce38ae3d1.js} +1 -1
- package/assets/esri/core/workers/chunks/f39c700f3db7db52b522.js +1 -0
- package/assets/esri/core/workers/chunks/f3b4159c0722df8ffe13.js +1 -0
- package/assets/esri/core/workers/chunks/f3dc0bc0e00635855a7a.js +1 -0
- package/assets/esri/core/workers/chunks/f45064066e1ab041a0b2.js +1 -0
- package/assets/esri/core/workers/chunks/{dc7aa0a1eb6c6e361f9f.js → f7398cfd8bbd041bd635.js} +1 -1
- package/assets/esri/core/workers/chunks/f9dc38761b314d33890f.js +1 -0
- package/assets/esri/core/workers/chunks/fe6dcb21570395e46ce8.js +1 -0
- package/assets/esri/core/workers/chunks/{9c4961213ac6ec283dd9.js → fefdd10bdd5a4c8d8ed0.js} +44 -47
- package/assets/esri/core/workers/chunks/ffe49d9e7df081bef4a5.js +1 -0
- package/assets/esri/themes/base/_core.scss +0 -2
- 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/Component.glsl.js +48 -48
- package/chunks/EmissionComposite.glsl.js +1 -1
- package/chunks/Fog.glsl.js +1 -1
- package/chunks/GaussianSplatDepth.glsl.js +15 -7
- package/chunks/GaussianSplatShadow.glsl.js +14 -4
- package/config.d.ts +12 -9
- package/config.js +1 -1
- package/form/FormTemplate.d.ts +1 -1
- package/form/elements/AttachmentElement.d.ts +2 -0
- package/form/elements/FieldElement.d.ts +2 -2
- package/form/elements/FieldElement.js +1 -1
- package/form/elements/RelationshipElement.d.ts +1 -1
- package/form/elements/TextElement.d.ts +2 -2
- package/form/elements/UtilityNetworkAssociationsElement.d.ts +1 -1
- package/form/elements/inputs/inputUtils.js +1 -1
- package/form/elements/inputs/types.d.ts +19 -0
- package/form/elements/inputs.d.ts +3 -2
- package/form/elements/inputs.js +1 -1
- package/interfaces.d.ts +0 -14
- package/kernel.js +1 -1
- package/layers/VideoLayer.d.ts +5 -5
- package/layers/knowledgeGraph/KnowledgeGraphSublayer.js +1 -1
- package/layers/orientedImagery/core/coverageUtils.js +1 -1
- package/layers/orientedImagery/transformations/rotationUtils.js +2 -0
- package/layers/orientedImagery/transformations/utils.js +1 -1
- package/layers/save/parquetLayerUtils.js +1 -1
- package/layers/support/vectorTileLayerLoader.js +1 -1
- package/package.json +2 -2
- package/smartMapping/support/adapters/support/histogramUtils.js +1 -1
- package/views/2d/engine/vectorTiles/TileHandler.js +1 -1
- package/views/2d/engine/vectorTiles/style/GeoJSONVectorTileSource.js +1 -1
- package/views/2d/engine/vectorTiles/style/GeoJSONVectorTileSourceWorker.js +1 -1
- package/views/2d/engine/vectorTiles/style/geoJSONVectorTileUtils.js +2 -0
- package/views/2d/engine/webgl/collisions/LabelMetric.js +1 -1
- package/views/2d/engine/webgl/collisions/LabelStore.js +1 -1
- package/views/2d/layers/VectorTileLayerView2D.js +1 -1
- package/views/2d/layers/features/FeatureContainer.js +1 -1
- package/views/2d/layers/support/visualVariableSimpleUtils.js +1 -1
- package/views/3d/state/controllers/PointToPointAnimationController.js +1 -1
- package/views/3d/support/ResourceController.js +1 -1
- package/views/3d/terrain/TerrainRenderer.js +1 -1
- package/views/3d/terrain/TerrainSurface.js +1 -1
- package/views/3d/terrain/TileAgent.js +1 -1
- package/views/3d/webgl-engine/Stage.js +1 -1
- package/views/3d/webgl-engine/collections/Component/Material/Component.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js +23 -26
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexPosition.glsl.js +18 -21
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/VerticalOffset.glsl.js +5 -5
- package/views/3d/webgl-engine/core/shaderLibrary/shading/ComputeFragmentNormals.glsl.js +10 -12
- package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js +22 -25
- package/views/3d/webgl-engine/effects/RenderPluginContext.js +2 -0
- package/views/3d/webgl-engine/effects/fog/Fog.js +1 -1
- package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.js +1 -1
- package/views/3d/webgl-engine/effects/glow/applyEmissiveGlow.glsl.js +3 -3
- package/views/3d/webgl-engine/effects/highlight/Highlight.js +1 -1
- package/views/3d/webgl-engine/lib/GaussianSplatDepthRenderer.js +1 -1
- package/views/3d/webgl-engine/lib/GaussianSplatRenderer.js +1 -1
- package/views/3d/webgl-engine/lib/Renderer.js +1 -1
- package/views/3d/webgl-engine/lib/edgeRendering/EdgeUtil.glsl.js +30 -35
- package/views/3d/webgl-engine/parts/RenderView.js +1 -1
- package/views/3d/webgl-engine/shaders/EmissiveTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/GaussianSplatPass.glsl.js +62 -53
- package/views/3d/webgl-engine/shaders/GaussianSplatTechniqueConfiguration.js +1 -1
- package/views/VideoView.d.ts +10 -0
- package/views/VideoView.js +1 -1
- package/views/layers/LayerView.d.ts +10 -2
- package/widgets/BatchAttributeForm/inputs/FieldInput.d.ts +2 -2
- package/widgets/Editor/EditorViewModel.d.ts +10 -12
- package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
- package/widgets/FeatureTable/support/EditableColumnTemplateMixin.js +1 -1
- package/widgets/OrientedImageryViewer/ImageMeasurementWorker.js +1 -1
- package/widgets/OrientedImageryViewer/adapters/sketch/MeasurementAdapter.js +1 -1
- package/widgets/OrientedImageryViewer/adapters/view/SceneViewAdapter.js +1 -1
- package/widgets/OrientedImageryViewer/imageMeasurementUtils.js +1 -1
- package/widgets/OrientedImageryViewer/imageMeasurementWorkerUtils.js +2 -0
- package/widgets/OrientedImageryViewer/services/ImageMeasurementService.js +1 -1
- package/widgets/OrientedImageryViewer/support/superimposeUtils.js +1 -1
- package/widgets/support/iconUtils.js +1 -1
- package/assets/esri/core/workers/chunks/010f57ec7fdbedf78d02.js +0 -1
- package/assets/esri/core/workers/chunks/03f33cb78b5405ab7e23.js +0 -1
- package/assets/esri/core/workers/chunks/0487e1d7a7cecf7c1c25.js +0 -1
- package/assets/esri/core/workers/chunks/09300e74e5b014ce6269.js +0 -1
- package/assets/esri/core/workers/chunks/0d9c4c6c571ce26d356b.js +0 -1
- package/assets/esri/core/workers/chunks/112ed86f812e4400a7e0.js +0 -1
- package/assets/esri/core/workers/chunks/151e5799ede763a03ee2.js +0 -1
- package/assets/esri/core/workers/chunks/173f89c55a5c79ff065b.js +0 -1
- package/assets/esri/core/workers/chunks/2447d2e2a4a3ab8fcf94.js +0 -1
- package/assets/esri/core/workers/chunks/2a36fe3f3f257a779a1b.js +0 -1
- package/assets/esri/core/workers/chunks/2a97268000c6d03ef720.js +0 -1
- package/assets/esri/core/workers/chunks/2cf8172be83b10b11bdc.js +0 -1
- package/assets/esri/core/workers/chunks/2df37a9a95ceebb87a5f.js +0 -1
- package/assets/esri/core/workers/chunks/2e00c155e447e4930442.js +0 -1
- package/assets/esri/core/workers/chunks/2f91fd61019d2a37476d.js +0 -1
- package/assets/esri/core/workers/chunks/30af63b3b750142faadb.js +0 -1
- package/assets/esri/core/workers/chunks/3a47fc97c400fca2c736.js +0 -1
- package/assets/esri/core/workers/chunks/3cd04d23b73beaf79650.js +0 -1
- package/assets/esri/core/workers/chunks/426b4eb500fdfe9df325.js +0 -1
- package/assets/esri/core/workers/chunks/45367aa8e5c5d574de94.js +0 -1
- package/assets/esri/core/workers/chunks/47c97640ec525676918b.js +0 -1
- package/assets/esri/core/workers/chunks/47d074136a7f8e551a9a.js +0 -1
- package/assets/esri/core/workers/chunks/4a6b92ecbb1f1c55cc43.js +0 -1
- package/assets/esri/core/workers/chunks/4cb751dc8d00bdaeb04c.js +0 -1
- package/assets/esri/core/workers/chunks/518ab22f80c3300bcfff.js +0 -1
- package/assets/esri/core/workers/chunks/53ff68d4f9e365fc15cd.js +0 -1
- package/assets/esri/core/workers/chunks/58609bf94f72bc4f1952.js +0 -1
- package/assets/esri/core/workers/chunks/586a929bc037e23857af.js +0 -1
- package/assets/esri/core/workers/chunks/5c7780f804d789cb37f5.js +0 -1
- package/assets/esri/core/workers/chunks/5d76f4d97beee494bbbf.js +0 -1
- package/assets/esri/core/workers/chunks/603fdbbe9534c614928f.js +0 -1
- package/assets/esri/core/workers/chunks/611e3cdf67283c11576f.js +0 -1
- package/assets/esri/core/workers/chunks/6431480ba0fa8c8d487f.js +0 -1
- package/assets/esri/core/workers/chunks/652faf4359ac072c5dde.js +0 -1
- package/assets/esri/core/workers/chunks/65c98f3449044fa4fd79.js +0 -1
- package/assets/esri/core/workers/chunks/6b9961261241fdce0e94.js +0 -1
- package/assets/esri/core/workers/chunks/6dfe96b056bec30068df.js +0 -1
- package/assets/esri/core/workers/chunks/6f897b4e7ddd1dd1672b.js +0 -1
- package/assets/esri/core/workers/chunks/70cc2d79653d66e85b58.js +0 -1
- package/assets/esri/core/workers/chunks/7159d9c36869cd82599e.js +0 -29
- package/assets/esri/core/workers/chunks/7393f63043a1da3d05a6.js +0 -1
- package/assets/esri/core/workers/chunks/7449568eb2305bf2d650.js +0 -1
- package/assets/esri/core/workers/chunks/75d551a449bba61ce238.js +0 -1
- package/assets/esri/core/workers/chunks/76e27e36050a3dd9d249.js +0 -1
- package/assets/esri/core/workers/chunks/76f877e2d2493d56afab.js +0 -1
- package/assets/esri/core/workers/chunks/7748c2886d0122b40eeb.js +0 -1
- package/assets/esri/core/workers/chunks/78643f116677950ea29a.js +0 -1
- package/assets/esri/core/workers/chunks/78fbe330f16bdbdb886e.js +0 -1
- package/assets/esri/core/workers/chunks/7e0f04a5038e2a4f6e4b.js +0 -1
- package/assets/esri/core/workers/chunks/7f16ae01ccd9b6114d1c.js +0 -1
- package/assets/esri/core/workers/chunks/90153b5230b3a4985c14.js +0 -1
- package/assets/esri/core/workers/chunks/9189dfe19a2a2ccd5173.js +0 -1
- package/assets/esri/core/workers/chunks/943a0f140813ee4ab04a.js +0 -1
- package/assets/esri/core/workers/chunks/98be2f621801e230aa01.js +0 -1
- package/assets/esri/core/workers/chunks/99f51d5d9da6e9bfc430.js +0 -1
- package/assets/esri/core/workers/chunks/9aebe876b1a2fb075f9c.js +0 -1
- package/assets/esri/core/workers/chunks/9b6929faf649e81265fb.js +0 -1
- package/assets/esri/core/workers/chunks/9dd48e75b4e8d9811d81.js +0 -1
- package/assets/esri/core/workers/chunks/a163c6005aba3378edaa.js +0 -1
- package/assets/esri/core/workers/chunks/a8286febe371dc186aaa.js +0 -1
- package/assets/esri/core/workers/chunks/acb265a22be5e12f38e5.js +0 -1
- package/assets/esri/core/workers/chunks/b12acf1f694f82e00df9.js +0 -1
- package/assets/esri/core/workers/chunks/b83cef2d3f528726d492.js +0 -1
- package/assets/esri/core/workers/chunks/b9596d862da1ec342cd3.js +0 -1
- package/assets/esri/core/workers/chunks/bc1fcc9c897461e68e29.js +0 -1
- package/assets/esri/core/workers/chunks/bdc221d94300c225665a.js +0 -1
- package/assets/esri/core/workers/chunks/be97a629e2ae4d13ceb3.js +0 -1
- package/assets/esri/core/workers/chunks/bfb39590c548188f5052.js +0 -1
- package/assets/esri/core/workers/chunks/c2318c014e97ba519be8.js +0 -1
- package/assets/esri/core/workers/chunks/c62237c344e341619341.js +0 -1
- package/assets/esri/core/workers/chunks/cdb5c26fed7d9a97db49.js +0 -1
- package/assets/esri/core/workers/chunks/cdf0c7706d3e1221f49b.js +0 -1
- package/assets/esri/core/workers/chunks/cea0db3ee326f60610eb.js +0 -1
- package/assets/esri/core/workers/chunks/d7f2f1708d2a2668676c.js +0 -1
- package/assets/esri/core/workers/chunks/daf9b691817e83a11f3c.js +0 -1
- package/assets/esri/core/workers/chunks/db41490bd39d863305bf.js +0 -1
- package/assets/esri/core/workers/chunks/ddc95cdac6c06fc4794c.js +0 -1
- package/assets/esri/core/workers/chunks/df26ec0b508cf4716e0a.js +0 -1
- package/assets/esri/core/workers/chunks/e11159e3dc3353b27c57.js +0 -1
- package/assets/esri/core/workers/chunks/e4a57a0a9629faafd6c6.js +0 -1
- package/assets/esri/core/workers/chunks/ebc1a2ef3aed8aa29424.js +0 -1
- package/assets/esri/core/workers/chunks/ec1c4d66142b6efb0e8b.js +0 -1
- package/assets/esri/core/workers/chunks/ef12fa3574d4cbf8b084.js +0 -1
- package/assets/esri/core/workers/chunks/f2d56f5c15d5977e1d19.js +0 -1
- package/assets/esri/core/workers/chunks/f7bfa3d33b05b250ce33.js +0 -1
- package/assets/esri/core/workers/chunks/f905f1a1aa4c123cbe83.js +0 -1
- package/assets/esri/core/workers/chunks/fc139f251dc0523074e7.js +0 -1
- package/assets/esri/themes/base/widgets/_VideoPlayer.scss +0 -129
- package/assets/esri/widgets/VideoPlayer/t9n/messages.ar.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.bg.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.bs.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.ca.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.cs.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.da.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.de.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.el.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.en.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.es.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.et.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.fi.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.fr.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.he.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.hr.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.hu.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.id.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.it.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.ja.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.ko.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.lt.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.lv.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.nl.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.no.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.pl.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.pt-BR.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.pt-PT.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.ro.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.ru.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.sk.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.sl.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.sr.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.sv.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.th.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.tr.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.uk.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.vi.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.zh-CN.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.zh-HK.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.zh-TW.json +0 -1
- package/widgets/VideoPlayer/VideoPlayerViewModel.d.ts +0 -232
- package/widgets/VideoPlayer/VideoPlayerViewModel.js +0 -2
- package/widgets/VideoPlayer/components/MetadataSection.js +0 -2
- package/widgets/VideoPlayer/components/PlayerActionsGroup.js +0 -2
- package/widgets/VideoPlayer/components/PlayerControlsGroup.js +0 -2
- package/widgets/VideoPlayer/components/SettingsButton.js +0 -2
- package/widgets/VideoPlayer/css.js +0 -2
- package/widgets/VideoPlayer.d.ts +0 -119
- package/widgets/VideoPlayer.js +0 -2
package/layers/VideoLayer.d.ts
CHANGED
|
@@ -155,17 +155,17 @@ export interface VideoLayerProperties extends LayerProperties, CustomParametersM
|
|
|
155
155
|
|
|
156
156
|
/**
|
|
157
157
|
* The VideoLayer provides video content from on-demand and livestream feeds from an [ArcGIS Video Server](https://enterprise.arcgis.com/en/video/).
|
|
158
|
-
* Application developers using VideoLayer can display the video georeferenced on a [Map](https://developers.arcgis.com/javascript/latest/references/core/Map/), and control
|
|
158
|
+
* Application developers using VideoLayer can display the video georeferenced on a [Map](https://developers.arcgis.com/javascript/latest/references/core/Map/), and control playback with the [Video Player component](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-video-player/).
|
|
159
159
|
*
|
|
160
160
|
* > [!WARNING]
|
|
161
161
|
* >
|
|
162
162
|
* > **Known Limitations**
|
|
163
163
|
* >
|
|
164
|
-
* > Not supported in 3D [SceneViews](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/).
|
|
165
|
-
* > Not supported by the [Legend](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-legend/).
|
|
166
|
-
* > Not supported on macOS and iOS devices.
|
|
164
|
+
* > - Not supported in 3D [SceneViews](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/).
|
|
165
|
+
* > - Not supported by the [Legend](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-legend/).
|
|
166
|
+
* > - Not supported on macOS and iOS devices.
|
|
167
167
|
*
|
|
168
|
-
* 
|
|
169
169
|
*
|
|
170
170
|
* @since 4.30
|
|
171
171
|
* @example const videoLayer = new VideoLayer({ url });
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import t from"../../PopupTemplate.js";import n from"../../core/Error.js";import{clone as r}from"../../core/lang.js";import i from"../../core/Logger.js";import{MultiOriginJSONSupportMixin as a}from"../../core/MultiOriginJSONSupport.js";import{property as o,subclass as s}from"../../core/accessorSupport/decorators.js";import"../../core/workers/workers.js";import ee from"../../form/FormTemplate.js";import c from"../../geometry/Extent.js";import te from"../../geometry/Point.js";import ne from"../../geometry/Polygon.js";import re from"../../geometry/Polyline.js";import{initializeProjection as ie,project as l}from"../../geometry/projectionUtils.js";import ae from"../../geometry/SpatialReference.js";import{wgs84 as u}from"../../geometry/support/spatialReferenceUtils.js";import{featureGeometryTypeKebabDictionary as d}from"../../geometry/support/typeUtils.js";import f from"../../graphic/KnowledgeGraphGraphicOrigin.js";import oe from"../../graphic/LinkChartGraphicOrigin.js";import se from"../Layer.js";import ce from"../graphics/data/FeatureStore.js";import{QueryEngine as le}from"../graphics/data/QueryEngine.js";import{createDrawingInfo as p}from"../graphics/sources/support/clientSideDefaults.js";import{systemOidFieldName as m,systemAggregationCountFieldName as h,systemIsSpatialFieldName as g,systemLayoutGeometryFieldName as _,systemOriginIdFieldName as ue,systemDestinationIdFieldName as v}from"./constants.js";import{KnowledgeGraphSublayerBase as y}from"./KnowledgeGraphSublayerBase.js";import{createCapabilitiesFromKnowledgeGraph as b,createDefaultKGSLFormTemplate as x,getDisplayLabelProperty as S,getLinkChartDefaultLabelingInfo as C,getMapDefaultLabelingInfo as w,getKGSublayerSymbolColor as T,getDefaultLCRelationshipSublayerSymbol as E,createDefaultKGSLFeatureTemplates as D,convertLayerEditsToGraphEdits as O,convertGraphEditsResultToFeatureEdits as k}from"./layerUtils.js";import{BlendLayer as A,blendModeProperty as j,effectProperty as M}from"../mixins/BlendLayer.js";import{DisplayFilteredLayer as N,displayFilterEnabledProperty as P,displayFilterInfoProperty as F}from"../mixins/DisplayFilteredLayer.js";import{FeatureEffectLayer as I,featureEffectProperty as L}from"../mixins/FeatureEffectLayer.js";import{FeatureReductionLayer as R}from"../mixins/FeatureReductionLayer.js";import{OrderedLayer as z,orderByProperty as B}from"../mixins/OrderedLayer.js";import{RefreshableLayer as V}from"../mixins/RefreshableLayer.js";import{ScaleRangeLayer as H}from"../mixins/ScaleRangeLayer.js";import{TemporalLayer as U,useViewTimeProperty as de}from"../mixins/TemporalLayer.js";import{legendEnabled as fe,maxScale as pe,minScale as me,opacity as he,popupEnabled as ge}from"../support/commonProperties.js";import{featureReductionProperty as _e}from"../support/featureReductionUtils.js";import ve from"../support/FeatureTemplate.js";import W from"../support/Field.js";import{fixRendererFields as ye,fixTimeInfoFields as be}from"../support/fieldUtils.js";import xe from"../support/LabelClass.js";import{reader as Se}from"../support/labelingInfo.js";import Ce from"../support/TimeInfo.js";import we from"../../renderers/SimpleRenderer.js";import{fromJSON as G}from"../../renderers/support/jsonUtils.js";import{rendererTypes as Te}from"../../renderers/support/typeUtils.js";import{executeApplyEdits as Ee}from"../../rest/knowledgeGraphService.js";import De from"../../rest/support/FeatureSet.js";import K from"../../rest/support/Query.js";import{createPopupTemplate as Oe}from"../../support/popupUtils.js";import ke from"../../symbols/support/ElevationInfo.js";import{applyColorToSymbol as q}from"../../symbols/support/utils.js";import Ae from"../../core/workers/RemoteClient.js";import{writer as je}from"../../core/accessorSupport/decorators/writer.js";function J(e){if(!e.json)return e;e.json.write=Y(e.json.write);let t=e.json.origins;if(!t)return e;let n;for(n in t){let e=t[n];e&&(e.write=Y(e.write))}return e}function Y(e){return typeof e==`object`&&e?(e.enabled!==!1&&(e.overridePolicy=Me(e)),e):e===!0?X():e}function Me(e){let{target:t,writer:n,overridePolicy:r,...i}=e;return function(e,t){let n=Z.call(this,e,t);return n.enabled?{...i,...n}:n}}function X(){return{overridePolicy:Z}}function Z(e,t){let n=!!this.geometryType,r={enabled:n};return n&&(r={...r,...Q.call(this,e,t)}),r}function Q(e,t){return{allowNull:this.originIdOf(t)>=3,ignoreOrigin:this.originIdOf(t)>0}}let $=class extends y(N(R(I(A(z(U(H(V(a(se)))))))))){constructor(e){super(e),this.blendMode=`normal`,this.charts=null,this.definitionExpression=null,this.displayFilterEnabled=!0,this.displayFilterInfo=null,this.effect=null,this.elevationInfo=null,this.featureEffect=null,this.graphType=null,this.labelsVisible=!0,this.layerType=null,this.legendEnabled=!0,this.maxScale=0,this.minScale=0,this.objectIdField=m,this.objectType=null,this.opacity=1,this.orderBy=null,this.parent=null,this.parentCompositeLayer=null,this.persistenceEnabled=!0,this.popupEnabled=!0,this.popupTemplate=null,this.refreshInterval=0,this.source={openPorts:()=>this.load().then(()=>{let e=new MessageChannel;return new Ae(e.port1,{channel:e,client:{queryFeatures:(e,t={})=>{let n=K.fromJSON(e);return this.queryFeaturesJSON(n,t)}}}),[e.port2]})},this.type=`knowledge-graph-sublayer`,this.useViewTime=!0,this.visible=!0}get capabilities(){return this.parent?this.parent.sublayerCapabilities:b(null)}get isTable(){return this.parentCompositeLayer?.type!==`link-chart`&&this.geometryFieldName==null}get defaultPopupTemplate(){return this.createPopupTemplate()}get editingEnabled(){return this.capabilities.operations.supportsEditing&&this.userHasEditingPrivileges}set editingEnabled(e){this._overrideIfSome(`editingEnabled`,e)}get effectiveCapabilities(){let e=r(this.capabilities),{operations:t,editing:n}=e;return this.userHasUpdateItemPrivileges&&(t.supportsAdd=t.supportsDelete=t.supportsEditing=t.supportsQuery=t.supportsUpdate=n.supportsDeleteByOthers=n.supportsGeometryUpdate=n.supportsUpdateByOthers=!0),this.userHasFullEditingPrivileges&&t.supportsEditing&&(t.supportsAdd=t.supportsDelete=t.supportsUpdate=n.supportsGeometryUpdate=!0),e}get effectiveEditingEnabled(){return this.userHasUpdateItemPrivileges||this.editingEnabled}set featureReduction(e){let t=this._normalizeFeatureReduction(e);this._set(`featureReduction`,t)}get fields(){let e=[],t=new Map;for(let e of this.parent?.knowledgeGraph.dataModel.domains??[])t.set(e.name,e);return this.objectType?.properties?.forEach(n=>{let r=n.fieldType===`esriFieldTypeOID`?`esriFieldTypeInteger`:n.fieldType,i=W.fromJSON({name:n.name,type:r,alias:n.alias,defaultValue:n.defaultValue,editable:n.editable,nullable:n.nullable,domain:n.domain&&t.has(n.domain)?t.get(n.domain).toJSON():void 0});e.push(i)}),e.push(W.fromJSON({name:this.objectIdField,type:`esriFieldTypeString`,alias:this.objectIdField,editable:!1}),W.fromJSON({name:h,type:`esriFieldTypeInteger`,alias:h,editable:!1}),W.fromJSON({name:g,type:`esriFieldTypeInteger`,alias:g,editable:!1})),e}get formTemplate(){return this._isOverridden(`formTemplate`)?this._get(`formTemplate`):x(this)}set formTemplate(e){this._overrideIfSome(`formTemplate`,e)}get geometryType(){if(this.parentCompositeLayer?.type===`link-chart`)return this.graphType===`relationship`?`polyline`:`point`;let e=this.parentCompositeLayer?.dataManager.geographicLookup.get(this.objectType?.name)?.geometryType;return!e||e===`esriGeometryNull`?null:d.fromJSON(e)}get geometryFieldName(){return this.parentCompositeLayer?.type===`link-chart`?_:this.parentCompositeLayer?.dataManager.geographicLookup.get(this.objectType?.name)?.name??null}get graphicOrigin(){if(!this.parent)return null;switch(this.parent.type){case`knowledge-graph`:return new f(this.parent,this);case`link-chart`:return new oe(this.parent,this)}}get graphTypeName(){return this.objectType?.name}set graphTypeName(e){this._set(`graphTypeName`,e)}get hasM(){let e=this.parentCompositeLayer?.dataManager.geographicLookup.get(this.objectType?.name)?.name;return(e?this.objectType?.properties?.[e]:null)?.hasM??!1}get hasZ(){let e=this.parentCompositeLayer?.dataManager.geographicLookup.get(this.objectType?.name)?.name;return(e?this.objectType?.properties?.[e]:null)?.hasZ??!1}set labelingInfo(e){this._set(`labelingInfo`,e)}get labelingInfo(){if(this._isOverridden(`labelingInfo`))return this._get(`labelingInfo`);if(!this.objectType||!this.parentCompositeLayer||!this.graphTypeName)return null;let e=this.objectType.properties?S(this.objectType.properties):`ESRI__ID`;return this.parentCompositeLayer.type===`link-chart`?C(this.graphType,this.graphTypeName,e):w(this.graphTypeName,this.geometryType,e)}set renderer(e){ye(e,this.fieldsIndex),this._set(`renderer`,e)}get renderer(){if(this._isOverridden(`renderer`))return this._get(`renderer`);let e=this.parentCompositeLayer?.dataManager?.knowledgeGraph?.dataModel,t=[...e?.entityTypes??[],...e?.relationshipTypes??[]].map(e=>e.name).indexOf(this.graphTypeName),n=T(t);if(this.parentCompositeLayer?.type===`link-chart`){if(this.graphType===`relationship`)return new we({type:`simple`,symbol:E(n)});let e=G(p(d.toJSON(`point`)).renderer);return q(e.symbol,n),e}let r=G(p(d.toJSON(this.geometryType)).renderer);return q(r.symbol,n),r}get spatialReference(){return this.parentCompositeLayer?.dataManager?.knowledgeGraph?.dataModel?.spatialReference??ae.WGS84}get templates(){return this._isOverridden(`templates`)?this._get(`templates`):D(this)}set templates(e){this._overrideIfSome(`templates`,e)}set timeInfo(e){this._set(`timeInfo`,e)}get dateFieldsTimeZone(){return this.parentCompositeLayer?.dateFieldsTimeZone}get title(){return this._isOverridden(`title`)?this._get(`title`):this.graphTypeName}set title(e){this._set(`title`,e)}writeTitle(e,t){t.title=e??`Layer`}get userHasEditingPrivileges(){return!this.parent||this.parent.userHasEditingPrivileges}get userHasFullEditingPrivileges(){return this.parent?this.parent.userHasFullEditingPrivileges:!1}get userHasUpdateItemPrivileges(){return this.parent?this.parent.userHasUpdateItemPrivileges:!1}createPopupTemplate(e){return Oe(this,e)}createQuery(){return new K({where:`1=1`,outFields:[`*`]})}getField(e){return this.fieldsIndex.get(e)}getFieldDomain(e,t){return this.fields.find(t=>t.name===e)?.domain||null}async queryFeatures(e,t){await this.load();let{resolvedQuery:n,queryEngine:r,cypherTranslationApplied:i}=await this._setupQueryObjects(e),a=this.graphicOrigin,o=De.fromJSON(await r.executeQuery(this._createQueryEngineQueryJSON(n,i),t?.signal));return o.features.forEach(e=>{e.sourceLayer=this,e.origin=a}),o}async queryFeaturesJSON(e,t){await this.load();let{resolvedQuery:n,queryEngine:r,cypherTranslationApplied:i}=await this._setupQueryObjects(e);return await r.executeQuery(this._createQueryEngineQueryJSON(n,i),t?.signal)}async queryFeatureCount(e,t){await this.load();let{resolvedQuery:n,queryEngine:r,cypherTranslationApplied:i}=await this._setupQueryObjects(e);return r.executeQueryForCount(this._createQueryEngineQueryJSON(n,i),t?.signal)}async queryExtent(e={},t){await this.load();let n={...e,returnGeometry:!0},{resolvedQuery:r,queryEngine:i,cypherTranslationApplied:a}=await this._setupQueryObjects(n),o=await i.executeQueryForExtent(this._createQueryEngineQueryJSON(r,a),t?.signal),s;return s=o.extent?.xmin!=null&&o.extent?.xmax!=null&&o.extent?.ymin!=null&&o.extent?.ymax!=null?new c(o.extent):new c,{count:o.count,extent:s}}async queryObjectIds(e,t){await this.load();let n=K.from(e),r;if(!this.parentCompositeLayer)i.getLogger(this).warn(`Attempting to query for object IDs with no features failed because the parent composite layer is missing or not yet loaded.`),r=this.loadQueryEngine([]);else if(this.parentCompositeLayer.type===`link-chart`&&this._cachedQueryEngine)r=this._cachedQueryEngine;else{let{features:e,cypherTranslationApplied:i}=await this.parentCompositeLayer.dataManager.getData(n,this,this.parentCompositeLayer,t);return r=this.loadQueryEngine(e),await r.executeQueryForIds(this._createQueryEngineQueryJSON(n,i),t?.signal)}return await r.executeQueryForIds(this._createQueryEngineQueryJSON(n,!1),t?.signal)}async applyEdits(e){if(!this.parentCompositeLayer?.dataManager.knowledgeGraph)throw new n(`knowledge-graph-sublayer:no-knowledge-graph`,`ApplyEdits cannot be executed because the parent does not have a Knowledge Graph model. This is usually caused by the layer not yet being loaded`);let t=await O(e,this,this.parentCompositeLayer);t.options={cascadeDelete:!0,cascadeProvenanceDelete:this.parent?.knowledgeGraph.serviceDefinition.supportsProvenance?!0:void 0};let r=await Ee(this.parentCompositeLayer.dataManager.knowledgeGraph,t),i=k(r,this.graphTypeName),a={addedFeatures:i.addFeatureResults,updatedFeatures:i.updateFeatureResults,deletedFeatures:i.deleteFeatureResults,addedAttachments:i.addAttachmentResults,deletedAttachments:i.deleteAttachmentResults,updatedAttachments:i.updateAttachmentResults,exceededTransferLimit:!1,historicMoment:new Date,edits:void 0};return this.emit(`edits`,a),this.emit(`apply-edits`,{result:Promise.resolve(a)}),this.parentCompositeLayer.type===`link-chart`&&await this.parentCompositeLayer.refreshLinkChartCache([...a.addedFeatures.map(e=>e.globalId),...a.updatedFeatures.map(e=>e.globalId),...a.deletedFeatures.map(e=>e.globalId)]),i}loadQueryEngine(e){let t=new ce({geometryType:d.toJSON(this.geometryType),hasM:this.hasM,hasZ:this.hasZ}),n=new le({fieldsIndex:this.fieldsIndex.toJSON(),geometryType:d.toJSON(this.geometryType),hasM:this.hasM,hasZ:this.hasZ,featureIdInfo:{type:`object-id`,fieldName:this.objectIdField},spatialReference:this.spatialReference.toJSON(),timeInfo:this.timeInfo?.toJSON(),featureStore:t});return n.featureStore.addMany(e),n}async refreshCachedQueryEngine(){if(!this.parentCompositeLayer){i.getLogger(this).warn(`Attempting to refresh the cached query engine with no features failed because the parent composite layer is missing or not yet loaded.`),this._cachedQueryEngine=this.loadQueryEngine([]);return}let{features:e}=await this.parentCompositeLayer.dataManager.getData(new K({where:`1=1`,outFields:[m]}),this,this.parentCompositeLayer);this._cachedQueryEngine=this.loadQueryEngine(e)}load(e){return this.addResolvingPromise(this.parent.load(e).then(()=>be(this.timeInfo,this.fieldsIndex))),Promise.resolve(this)}_createQueryEngineQueryJSON(e,t){let n=e.toJSON();return t&&delete n.resultOffset,n}async _setupQueryObjects(e,t){let n=K.from(e),r=n.geometry;if(r&&!r.spatialReference?.isWGS84&&(await ie(r.spatialReference,u),n.geometry=r instanceof ne||r instanceof re||r instanceof te?l(r,u):l(r.extent,u)),!this.parentCompositeLayer)return i.getLogger(this).warn(`Attempting to execute a query with no features failed because the parent composite layer is missing or not yet loaded.`),{resolvedQuery:n,queryEngine:this.loadQueryEngine([]),cypherTranslationApplied:!1};if(this.parentCompositeLayer.type===`link-chart`&&this._cachedQueryEngine)return{resolvedQuery:n,queryEngine:this._cachedQueryEngine,cypherTranslationApplied:!1};let{features:a,cypherTranslationApplied:o}=await this.parentCompositeLayer.dataManager.getData(n,this,this.parentCompositeLayer,t);return{resolvedQuery:n,queryEngine:this.loadQueryEngine(a),cypherTranslationApplied:o}}};e([o(J(r(j)))],$.prototype,`blendMode`,void 0),e([o({readOnly:!0})],$.prototype,`capabilities`,null),e([o()],$.prototype,`isTable`,null),e([o({json:{origins:{"web-scene":{write:!1}},write:X()}})],$.prototype,`charts`,void 0),e([o({readOnly:!0})],$.prototype,`defaultPopupTemplate`,null),e([o({type:String,json:{origins:{service:{read:!1}},name:`layerDefinition.definitionExpression`,write:{ignoreOrigin:!0}}})],$.prototype,`definitionExpression`,void 0),e([o(J(r(P)))],$.prototype,`displayFilterEnabled`,void 0),e([o(J(r(F)))],$.prototype,`displayFilterInfo`,void 0),e([o()],$.prototype,`editingEnabled`,null),e([o(J(r(M)))],$.prototype,`effect`,void 0),e([o({readOnly:!0})],$.prototype,`effectiveCapabilities`,null),e([o({readOnly:!0})],$.prototype,`effectiveEditingEnabled`,null),e([o({type:ke})],$.prototype,`elevationInfo`,void 0),e([o(J(r(L)))],$.prototype,`featureEffect`,void 0),e([o(J(r(_e)))],$.prototype,`featureReduction`,null),e([o()],$.prototype,`fields`,null),e([o({type:ee})],$.prototype,`formTemplate`,null),e([o()],$.prototype,`geometryType`,null),e([o()],$.prototype,`geometryFieldName`,null),e([o({readOnly:!0})],$.prototype,`graphicOrigin`,null),e([o({type:[`entity`,`relationship`],nonNullable:!0,json:{write:{isRequired:!0,ignoreOrigin:!0}}})],$.prototype,`graphType`,void 0),e([o({type:String,nonNullable:!0,json:{write:{isRequired:!0,ignoreOrigin:!0}}})],$.prototype,`graphTypeName`,null),e([o()],$.prototype,`hasM`,null),e([o()],$.prototype,`hasZ`,null),e([o({type:String,json:{origins:{service:{read:!1},"portal-item":{read:!1}},write:{ignoreOrigin:!0}}})],$.prototype,`id`,void 0),e([o({type:Boolean,value:!0,nonNullable:!0,json:{name:`showLabels`,default:!1,write:{overridePolicy(){return{enabled:!!this.geometryType,alwaysWriteDefaults:!0,ignoreOrigin:!0}}}}})],$.prototype,`labelsVisible`,void 0),e([o({type:[xe],json:{name:`layerDefinition.drawingInfo.labelingInfo`,read:Ne,write:X()}})],$.prototype,`labelingInfo`,null),e([o({readOnly:!0,json:{read:!1,write:{writer(e,t){switch(this.parentCompositeLayer?.type){case`link-chart`:t.layerType=`LinkChartSubLayer`;break;case`knowledge-graph`:t.layerType=this.geometryType?`KnowledgeGraphSubLayer`:`KnowledgeGraphSubTable`}},isRequired:!0,ignoreOrigin:!0,writerEnsuresNonNull:!0}}})],$.prototype,`layerType`,void 0),e([o(J(r(fe)))],$.prototype,`legendEnabled`,void 0),e([o(J(r(pe)))],$.prototype,`maxScale`,void 0),e([o(J(r(me)))],$.prototype,`minScale`,void 0),e([o()],$.prototype,`objectIdField`,void 0),e([o()],$.prototype,`objectType`,void 0),e([o(J(r(he)))],$.prototype,`opacity`,void 0),e([o(J(r(B)))],$.prototype,`orderBy`,void 0),e([o({clonable:!1})],$.prototype,`parent`,void 0),e([o()],$.prototype,`parentCompositeLayer`,void 0),e([o(J(r(ge)))],$.prototype,`popupEnabled`,void 0),e([o({type:t,json:{name:`popupInfo`,write:{ignoreOrigin:!0}}})],$.prototype,`popupTemplate`,void 0),e([o({type:Number,json:{write:{overridePolicy:Q}}})],$.prototype,`refreshInterval`,void 0),e([o({types:Te,json:{name:`layerDefinition.drawingInfo.renderer`,write:X()}})],$.prototype,`renderer`,null),e([o()],$.prototype,`source`,void 0),e([o()],$.prototype,`spatialReference`,null),e([o({type:ve})],$.prototype,`templates`,null),e([o({type:Ce,json:{name:`layerDefinition.timeInfo`,write:{overridePolicy:Q},origins:{"web-document":{name:`layerDefinition.timeInfo`,read:!0,write:{overridePolicy:Q}},"portal-item":{name:`layerDefinition.timeInfo`,read:!0,write:{overridePolicy:Q}}}}})],$.prototype,`timeInfo`,null),e([o({readOnly:!0})],$.prototype,`dateFieldsTimeZone`,null),e([o({type:String,json:{write:{isRequired:!0,ignoreOrigin:!0,writerEnsuresNonNull:!0}}})],$.prototype,`title`,null),e([je(`title`)],$.prototype,`writeTitle`,null),e([o({json:{read:!1}})],$.prototype,`type`,void 0),e([o(J(r(de)))],$.prototype,`useViewTime`,void 0),e([o({readOnly:!0})],$.prototype,`userHasEditingPrivileges`,null),e([o({readOnly:!0})],$.prototype,`userHasFullEditingPrivileges`,null),e([o({readOnly:!0})],$.prototype,`userHasUpdateItemPrivileges`,null),e([o({type:Boolean,json:{name:`visibility`,write:X()}})],$.prototype,`visible`,void 0),$=e([s(`esri.layers.knowledgeGraph.KnowledgeGraphSublayer`)],$);function Ne(e,t,n){let r=[[`ESRI__AGGREGATION_COUNT`,h],[`ESRI__ORIGIN_ID`,ue],[`ESRI__DESTINATION_ID`,v],[`ESRI__LAYOUT_GEOMETRY`,_]];try{for(let t of e)for(let[e,n]of r)t.labelExpression=t.labelExpression?.replaceAll(e,n),t.labelExpressionInfo?.expression&&(t.labelExpressionInfo.expression=t.labelExpressionInfo.expression.replaceAll(e,n))}catch(e){i.getLogger(this).warn(`Error updating labelingInfo`,e)}return Se.call(this,e,t,n)}export{$ as default};
|
|
2
|
+
import{__decorate as e}from"tslib";import t from"../../PopupTemplate.js";import n from"../../core/Error.js";import{clone as r}from"../../core/lang.js";import i from"../../core/Logger.js";import{MultiOriginJSONSupportMixin as a}from"../../core/MultiOriginJSONSupport.js";import{property as o,subclass as s}from"../../core/accessorSupport/decorators.js";import"../../core/workers/workers.js";import ee from"../../form/FormTemplate.js";import c from"../../geometry/Extent.js";import te from"../../geometry/Point.js";import ne from"../../geometry/Polygon.js";import re from"../../geometry/Polyline.js";import{initializeProjection as ie,project as l}from"../../geometry/projectionUtils.js";import ae from"../../geometry/SpatialReference.js";import{wgs84 as u}from"../../geometry/support/spatialReferenceUtils.js";import{featureGeometryTypeKebabDictionary as d}from"../../geometry/support/typeUtils.js";import oe from"../../graphic/KnowledgeGraphGraphicOrigin.js";import se from"../../graphic/LinkChartGraphicOrigin.js";import ce from"../Layer.js";import le from"../graphics/data/FeatureStore.js";import{QueryEngine as ue}from"../graphics/data/QueryEngine.js";import{createDrawingInfo as f}from"../graphics/sources/support/clientSideDefaults.js";import{systemOidFieldName as p,systemAggregationCountFieldName as m,systemIsSpatialFieldName as h,systemLayoutGeometryFieldName as g,systemOriginIdFieldName as de,systemDestinationIdFieldName as fe}from"./constants.js";import{KnowledgeGraphSublayerBase as _}from"./KnowledgeGraphSublayerBase.js";import{createCapabilitiesFromKnowledgeGraph as v,createDefaultKGSLFormTemplate as y,getDisplayLabelProperty as b,getLinkChartDefaultLabelingInfo as x,getMapDefaultLabelingInfo as S,getKGSublayerSymbolColor as C,getDefaultLCRelationshipSublayerSymbol as w,createDefaultKGSLFeatureTemplates as T,convertLayerEditsToGraphEdits as E,convertGraphEditsResultToFeatureEdits as D}from"./layerUtils.js";import{BlendLayer as O,blendModeProperty as k,effectProperty as A}from"../mixins/BlendLayer.js";import{DisplayFilteredLayer as j,displayFilterEnabledProperty as M,displayFilterInfoProperty as N}from"../mixins/DisplayFilteredLayer.js";import{FeatureEffectLayer as P,featureEffectProperty as F}from"../mixins/FeatureEffectLayer.js";import{FeatureReductionLayer as I}from"../mixins/FeatureReductionLayer.js";import{OrderedLayer as L,orderByProperty as R}from"../mixins/OrderedLayer.js";import{RefreshableLayer as z}from"../mixins/RefreshableLayer.js";import{ScaleRangeLayer as B}from"../mixins/ScaleRangeLayer.js";import{TemporalLayer as V,useViewTimeProperty as pe}from"../mixins/TemporalLayer.js";import{legendEnabled as me,maxScale as he,minScale as ge,opacity as _e,popupEnabled as ve}from"../support/commonProperties.js";import{featureReductionProperty as ye}from"../support/featureReductionUtils.js";import be from"../support/FeatureTemplate.js";import H from"../support/Field.js";import{fixRendererFields as xe,fixTimeInfoFields as Se}from"../support/fieldUtils.js";import Ce from"../support/LabelClass.js";import{reader as we}from"../support/labelingInfo.js";import Te from"../support/TimeInfo.js";import Ee from"../../renderers/SimpleRenderer.js";import{fromJSON as U}from"../../renderers/support/jsonUtils.js";import{rendererTypes as De}from"../../renderers/support/typeUtils.js";import{executeApplyEdits as Oe}from"../../rest/knowledgeGraphService.js";import ke from"../../rest/support/FeatureSet.js";import W from"../../rest/support/Query.js";import{createPopupTemplate as Ae}from"../../support/popupUtils.js";import je from"../../symbols/support/ElevationInfo.js";import{applyColorToSymbol as G}from"../../symbols/support/utils.js";import Me from"../../core/workers/RemoteClient.js";import{writer as K}from"../../core/accessorSupport/decorators/writer.js";function q(e){if(!e.json)return e;e.json.write=J(e.json.write);let t=e.json.origins;if(!t)return e;let n;for(n in t){let e=t[n];e&&(e.write=J(e.write))}return e}function J(e){return typeof e==`object`&&e?(e.enabled!==!1&&(e.overridePolicy=Ne(e)),e):e===!0?Y():e}function Ne(e){let{target:t,writer:n,overridePolicy:r,...i}=e;return function(e,t){let n=X.call(this,e,t);return n.enabled?{...i,...n}:n}}function Y(){return{overridePolicy:X}}function X(e,t){let n=!!this.geometryType,r={enabled:n};return n&&(r={...r,...Z.call(this,e,t)}),r}function Z(e,t){return{ignoreOrigin:this.originIdOf(t)>0}}function Q(e,t){return{...Z.call(this,e,t),allowNull:this.originIdOf(t)>=3}}let $=class extends _(j(I(P(O(L(V(B(z(a(ce)))))))))){constructor(e){super(e),this.blendMode=`normal`,this.charts=null,this.definitionExpression=null,this.displayFilterEnabled=!0,this.displayFilterInfo=null,this.effect=null,this.elevationInfo=null,this.featureEffect=null,this.graphType=null,this.labelsVisible=!0,this.layerType=null,this.legendEnabled=!0,this.maxScale=0,this.minScale=0,this.objectIdField=p,this.objectType=null,this.opacity=1,this.orderBy=null,this.parent=null,this.parentCompositeLayer=null,this.persistenceEnabled=!0,this.popupEnabled=!0,this.popupTemplate=null,this.refreshInterval=0,this.source={openPorts:()=>this.load().then(()=>{let e=new MessageChannel;return new Me(e.port1,{channel:e,client:{queryFeatures:(e,t={})=>{let n=W.fromJSON(e);return this.queryFeaturesJSON(n,t)}}}),[e.port2]})},this.type=`knowledge-graph-sublayer`,this.useViewTime=!0,this.visible=!0}get capabilities(){return this.parent?this.parent.sublayerCapabilities:v(null)}get isTable(){return this.parentCompositeLayer?.type!==`link-chart`&&this.geometryFieldName==null}get defaultPopupTemplate(){return this.createPopupTemplate()}get editingEnabled(){return this.capabilities.operations.supportsEditing&&this.userHasEditingPrivileges}set editingEnabled(e){this._overrideIfSome(`editingEnabled`,e)}get effectiveCapabilities(){let e=r(this.capabilities),{operations:t,editing:n}=e;return this.userHasUpdateItemPrivileges&&(t.supportsAdd=t.supportsDelete=t.supportsEditing=t.supportsQuery=t.supportsUpdate=n.supportsDeleteByOthers=n.supportsGeometryUpdate=n.supportsUpdateByOthers=!0),this.userHasFullEditingPrivileges&&t.supportsEditing&&(t.supportsAdd=t.supportsDelete=t.supportsUpdate=n.supportsGeometryUpdate=!0),e}get effectiveEditingEnabled(){return this.userHasUpdateItemPrivileges||this.editingEnabled}set featureReduction(e){let t=this._normalizeFeatureReduction(e);this._set(`featureReduction`,t)}get fields(){let e=[],t=new Map;for(let e of this.parent?.knowledgeGraph.dataModel.domains??[])t.set(e.name,e);return this.objectType?.properties?.forEach(n=>{let r=n.fieldType===`esriFieldTypeOID`?`esriFieldTypeInteger`:n.fieldType,i=H.fromJSON({name:n.name,type:r,alias:n.alias,defaultValue:n.defaultValue,editable:n.editable,nullable:n.nullable,domain:n.domain&&t.has(n.domain)?t.get(n.domain).toJSON():void 0});e.push(i)}),e.push(H.fromJSON({name:this.objectIdField,type:`esriFieldTypeString`,alias:this.objectIdField,editable:!1}),H.fromJSON({name:m,type:`esriFieldTypeInteger`,alias:m,editable:!1}),H.fromJSON({name:h,type:`esriFieldTypeInteger`,alias:h,editable:!1})),e}get formTemplate(){return this._isOverridden(`formTemplate`)?this._get(`formTemplate`):y(this)}set formTemplate(e){this._overrideIfSome(`formTemplate`,e)}get geometryType(){if(this.parentCompositeLayer?.type===`link-chart`)return this.graphType===`relationship`?`polyline`:`point`;let e=this.parentCompositeLayer?.dataManager.geographicLookup.get(this.objectType?.name)?.geometryType;return!e||e===`esriGeometryNull`?null:d.fromJSON(e)}get geometryFieldName(){return this.parentCompositeLayer?.type===`link-chart`?g:this.parentCompositeLayer?.dataManager.geographicLookup.get(this.objectType?.name)?.name??null}get graphicOrigin(){if(!this.parent)return null;switch(this.parent.type){case`knowledge-graph`:return new oe(this.parent,this);case`link-chart`:return new se(this.parent,this)}}get graphTypeName(){return this.objectType?.name}set graphTypeName(e){this._set(`graphTypeName`,e)}get hasM(){let e=this.parentCompositeLayer?.dataManager.geographicLookup.get(this.objectType?.name)?.name;return(e?this.objectType?.properties?.[e]:null)?.hasM??!1}get hasZ(){let e=this.parentCompositeLayer?.dataManager.geographicLookup.get(this.objectType?.name)?.name;return(e?this.objectType?.properties?.[e]:null)?.hasZ??!1}set labelingInfo(e){this._set(`labelingInfo`,e)}get labelingInfo(){if(this._isOverridden(`labelingInfo`))return this._get(`labelingInfo`);if(!this.objectType||!this.parentCompositeLayer||!this.graphTypeName)return null;let e=this.objectType.properties?b(this.objectType.properties):`ESRI__ID`;return this.parentCompositeLayer.type===`link-chart`?x(this.graphType,this.graphTypeName,e):S(this.graphTypeName,this.geometryType,e)}set renderer(e){xe(e,this.fieldsIndex),this._set(`renderer`,e)}get renderer(){if(this._isOverridden(`renderer`))return this._get(`renderer`);let e=this.parentCompositeLayer?.dataManager?.knowledgeGraph?.dataModel,t=[...e?.entityTypes??[],...e?.relationshipTypes??[]].map(e=>e.name).indexOf(this.graphTypeName),n=C(t);if(this.parentCompositeLayer?.type===`link-chart`){if(this.graphType===`relationship`)return new Ee({type:`simple`,symbol:w(n)});let e=U(f(d.toJSON(`point`)).renderer);return G(e.symbol,n),e}let r=U(f(d.toJSON(this.geometryType)).renderer);return G(r.symbol,n),r}get spatialReference(){return this.parentCompositeLayer?.dataManager?.knowledgeGraph?.dataModel?.spatialReference??ae.WGS84}get templates(){return this._isOverridden(`templates`)?this._get(`templates`):T(this)}set templates(e){this._overrideIfSome(`templates`,e)}set timeInfo(e){this._set(`timeInfo`,e)}get dateFieldsTimeZone(){return this.parentCompositeLayer?.dateFieldsTimeZone}get title(){return this._isOverridden(`title`)?this._get(`title`):this.graphTypeName}set title(e){this._set(`title`,e)}writeTitle(e,t){t.title=e??`Layer`}get userHasEditingPrivileges(){return!this.parent||this.parent.userHasEditingPrivileges}get userHasFullEditingPrivileges(){return this.parent?this.parent.userHasFullEditingPrivileges:!1}get userHasUpdateItemPrivileges(){return this.parent?this.parent.userHasUpdateItemPrivileges:!1}createPopupTemplate(e){return Ae(this,e)}createQuery(){return new W({where:`1=1`,outFields:[`*`]})}getField(e){return this.fieldsIndex.get(e)}getFieldDomain(e,t){return this.fields.find(t=>t.name===e)?.domain||null}async queryFeatures(e,t){await this.load();let{resolvedQuery:n,queryEngine:r,cypherTranslationApplied:i}=await this._setupQueryObjects(e),a=this.graphicOrigin,o=ke.fromJSON(await r.executeQuery(this._createQueryEngineQueryJSON(n,i),t?.signal));return o.features.forEach(e=>{e.sourceLayer=this,e.origin=a}),o}async queryFeaturesJSON(e,t){await this.load();let{resolvedQuery:n,queryEngine:r,cypherTranslationApplied:i}=await this._setupQueryObjects(e);return await r.executeQuery(this._createQueryEngineQueryJSON(n,i),t?.signal)}async queryFeatureCount(e,t){await this.load();let{resolvedQuery:n,queryEngine:r,cypherTranslationApplied:i}=await this._setupQueryObjects(e);return r.executeQueryForCount(this._createQueryEngineQueryJSON(n,i),t?.signal)}async queryExtent(e={},t){await this.load();let n={...e,returnGeometry:!0},{resolvedQuery:r,queryEngine:i,cypherTranslationApplied:a}=await this._setupQueryObjects(n),o=await i.executeQueryForExtent(this._createQueryEngineQueryJSON(r,a),t?.signal),s;return s=o.extent?.xmin!=null&&o.extent?.xmax!=null&&o.extent?.ymin!=null&&o.extent?.ymax!=null?new c(o.extent):new c,{count:o.count,extent:s}}async queryObjectIds(e,t){await this.load();let n=W.from(e),r;if(!this.parentCompositeLayer)i.getLogger(this).warn(`Attempting to query for object IDs with no features failed because the parent composite layer is missing or not yet loaded.`),r=this.loadQueryEngine([]);else if(this.parentCompositeLayer.type===`link-chart`&&this._cachedQueryEngine)r=this._cachedQueryEngine;else{let{features:e,cypherTranslationApplied:i}=await this.parentCompositeLayer.dataManager.getData(n,this,this.parentCompositeLayer,t);return r=this.loadQueryEngine(e),await r.executeQueryForIds(this._createQueryEngineQueryJSON(n,i),t?.signal)}return await r.executeQueryForIds(this._createQueryEngineQueryJSON(n,!1),t?.signal)}async applyEdits(e){if(!this.parentCompositeLayer?.dataManager.knowledgeGraph)throw new n(`knowledge-graph-sublayer:no-knowledge-graph`,`ApplyEdits cannot be executed because the parent does not have a Knowledge Graph model. This is usually caused by the layer not yet being loaded`);let t=await E(e,this,this.parentCompositeLayer);t.options={cascadeDelete:!0,cascadeProvenanceDelete:this.parent?.knowledgeGraph.serviceDefinition.supportsProvenance?!0:void 0};let r=await Oe(this.parentCompositeLayer.dataManager.knowledgeGraph,t),i=D(r,this.graphTypeName),a={addedFeatures:i.addFeatureResults,updatedFeatures:i.updateFeatureResults,deletedFeatures:i.deleteFeatureResults,addedAttachments:i.addAttachmentResults,deletedAttachments:i.deleteAttachmentResults,updatedAttachments:i.updateAttachmentResults,exceededTransferLimit:!1,historicMoment:new Date,edits:void 0};return this.emit(`edits`,a),this.emit(`apply-edits`,{result:Promise.resolve(a)}),this.parentCompositeLayer.type===`link-chart`&&await this.parentCompositeLayer.refreshLinkChartCache([...a.addedFeatures.map(e=>e.globalId),...a.updatedFeatures.map(e=>e.globalId),...a.deletedFeatures.map(e=>e.globalId)]),i}loadQueryEngine(e){let t=new le({geometryType:d.toJSON(this.geometryType),hasM:this.hasM,hasZ:this.hasZ}),n=new ue({fieldsIndex:this.fieldsIndex.toJSON(),geometryType:d.toJSON(this.geometryType),hasM:this.hasM,hasZ:this.hasZ,featureIdInfo:{type:`object-id`,fieldName:this.objectIdField},spatialReference:this.spatialReference.toJSON(),timeInfo:this.timeInfo?.toJSON(),featureStore:t});return n.featureStore.addMany(e),n}async refreshCachedQueryEngine(){if(!this.parentCompositeLayer){i.getLogger(this).warn(`Attempting to refresh the cached query engine with no features failed because the parent composite layer is missing or not yet loaded.`),this._cachedQueryEngine=this.loadQueryEngine([]);return}let{features:e}=await this.parentCompositeLayer.dataManager.getData(new W({where:`1=1`,outFields:[p]}),this,this.parentCompositeLayer);this._cachedQueryEngine=this.loadQueryEngine(e)}load(e){return this.addResolvingPromise(this.parent.load(e).then(()=>Se(this.timeInfo,this.fieldsIndex))),Promise.resolve(this)}_createQueryEngineQueryJSON(e,t){let n=e.toJSON();return t&&delete n.resultOffset,n}async _setupQueryObjects(e,t){let n=W.from(e),r=n.geometry;if(r&&!r.spatialReference?.isWGS84&&(await ie(r.spatialReference,u),n.geometry=r instanceof ne||r instanceof re||r instanceof te?l(r,u):l(r.extent,u)),!this.parentCompositeLayer)return i.getLogger(this).warn(`Attempting to execute a query with no features failed because the parent composite layer is missing or not yet loaded.`),{resolvedQuery:n,queryEngine:this.loadQueryEngine([]),cypherTranslationApplied:!1};if(this.parentCompositeLayer.type===`link-chart`&&this._cachedQueryEngine)return{resolvedQuery:n,queryEngine:this._cachedQueryEngine,cypherTranslationApplied:!1};let{features:a,cypherTranslationApplied:o}=await this.parentCompositeLayer.dataManager.getData(n,this,this.parentCompositeLayer,t);return{resolvedQuery:n,queryEngine:this.loadQueryEngine(a),cypherTranslationApplied:o}}};e([o(q(r(k)))],$.prototype,`blendMode`,void 0),e([o({readOnly:!0})],$.prototype,`capabilities`,null),e([o()],$.prototype,`isTable`,null),e([o({json:{origins:{"web-scene":{write:!1}},write:Y()}})],$.prototype,`charts`,void 0),e([o({readOnly:!0})],$.prototype,`defaultPopupTemplate`,null),e([o({type:String,json:{origins:{service:{read:!1}},name:`layerDefinition.definitionExpression`,write:{ignoreOrigin:!0}}})],$.prototype,`definitionExpression`,void 0),e([o(q(r(M)))],$.prototype,`displayFilterEnabled`,void 0),e([o(q(r(N)))],$.prototype,`displayFilterInfo`,void 0),e([o()],$.prototype,`editingEnabled`,null),e([o(q(r(A)))],$.prototype,`effect`,void 0),e([o({readOnly:!0})],$.prototype,`effectiveCapabilities`,null),e([o({readOnly:!0})],$.prototype,`effectiveEditingEnabled`,null),e([o({type:je})],$.prototype,`elevationInfo`,void 0),e([o(q(r(F)))],$.prototype,`featureEffect`,void 0),e([o(q(r(ye)))],$.prototype,`featureReduction`,null),e([o()],$.prototype,`fields`,null),e([o({type:ee})],$.prototype,`formTemplate`,null),e([o()],$.prototype,`geometryType`,null),e([o()],$.prototype,`geometryFieldName`,null),e([o({readOnly:!0})],$.prototype,`graphicOrigin`,null),e([o({type:[`entity`,`relationship`],nonNullable:!0,json:{write:{isRequired:!0,ignoreOrigin:!0}}})],$.prototype,`graphType`,void 0),e([o({type:String,nonNullable:!0,json:{write:{isRequired:!0,ignoreOrigin:!0}}})],$.prototype,`graphTypeName`,null),e([o()],$.prototype,`hasM`,null),e([o()],$.prototype,`hasZ`,null),e([o({type:String,json:{origins:{service:{read:!1},"portal-item":{read:!1}},write:{ignoreOrigin:!0}}})],$.prototype,`id`,void 0),e([o({type:Boolean,value:!0,nonNullable:!0,json:{name:`showLabels`,default:!1,write:{overridePolicy(){return{enabled:!!this.geometryType,alwaysWriteDefaults:!0,ignoreOrigin:!0}}}}})],$.prototype,`labelsVisible`,void 0),e([o({type:[Ce],json:{name:`layerDefinition.drawingInfo.labelingInfo`,read:Pe,write:Y()}})],$.prototype,`labelingInfo`,null),e([o({readOnly:!0,json:{read:!1,write:{writer(e,t){switch(this.parentCompositeLayer?.type){case`link-chart`:t.layerType=`LinkChartSubLayer`;break;case`knowledge-graph`:t.layerType=this.geometryType?`KnowledgeGraphSubLayer`:`KnowledgeGraphSubTable`}},isRequired:!0,ignoreOrigin:!0,writerEnsuresNonNull:!0}}})],$.prototype,`layerType`,void 0),e([o(q(r(me)))],$.prototype,`legendEnabled`,void 0),e([o(q(r(he)))],$.prototype,`maxScale`,void 0),e([o(q(r(ge)))],$.prototype,`minScale`,void 0),e([o()],$.prototype,`objectIdField`,void 0),e([o()],$.prototype,`objectType`,void 0),e([o(q(r(_e)))],$.prototype,`opacity`,void 0),e([o(q(r(R)))],$.prototype,`orderBy`,void 0),e([o({clonable:!1})],$.prototype,`parent`,void 0),e([o()],$.prototype,`parentCompositeLayer`,void 0),e([o(q(r(ve)))],$.prototype,`popupEnabled`,void 0),e([o({type:t,json:{name:`popupInfo`,write:{ignoreOrigin:!0}}})],$.prototype,`popupTemplate`,void 0),e([o({type:Number,json:{write:{overridePolicy:Z}}})],$.prototype,`refreshInterval`,void 0),e([o({types:De,json:{name:`layerDefinition.drawingInfo.renderer`,write:Y()}})],$.prototype,`renderer`,null),e([o()],$.prototype,`source`,void 0),e([o()],$.prototype,`spatialReference`,null),e([o({type:be})],$.prototype,`templates`,null),e([o({type:Te,json:{name:`layerDefinition.timeInfo`,write:{overridePolicy:Q},origins:{"web-document":{name:`layerDefinition.timeInfo`,read:!0,write:{overridePolicy:Q}},"portal-item":{name:`layerDefinition.timeInfo`,read:!0,write:{overridePolicy:Q}}}}})],$.prototype,`timeInfo`,null),e([o({readOnly:!0})],$.prototype,`dateFieldsTimeZone`,null),e([o({type:String,json:{write:{isRequired:!0,ignoreOrigin:!0,writerEnsuresNonNull:!0}}})],$.prototype,`title`,null),e([K(`title`)],$.prototype,`writeTitle`,null),e([o({json:{read:!1}})],$.prototype,`type`,void 0),e([o(q(r(pe)))],$.prototype,`useViewTime`,void 0),e([o({readOnly:!0})],$.prototype,`userHasEditingPrivileges`,null),e([o({readOnly:!0})],$.prototype,`userHasFullEditingPrivileges`,null),e([o({readOnly:!0})],$.prototype,`userHasUpdateItemPrivileges`,null),e([o({type:Boolean,json:{name:`visibility`,write:Y()}})],$.prototype,`visible`,void 0),$=e([s(`esri.layers.knowledgeGraph.KnowledgeGraphSublayer`)],$);function Pe(e,t,n){let r=[[`ESRI__AGGREGATION_COUNT`,m],[`ESRI__ORIGIN_ID`,de],[`ESRI__DESTINATION_ID`,fe],[`ESRI__LAYOUT_GEOMETRY`,g]];try{for(let t of e)for(let[e,n]of r)t.labelExpression=t.labelExpression?.replaceAll(e,n),t.labelExpressionInfo?.expression&&(t.labelExpressionInfo.expression=t.labelExpressionInfo.expression.replaceAll(e,n))}catch(e){i.getLogger(this).warn(`Error updating labelingInfo`,e)}return we.call(this,e,t,n)}export{$ as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{deg2rad as e}from"../../../core/mathUtils.js";import{throwIfAborted as t}from"../../../core/promiseUtils.js";import{create as n}from"../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{zeros as r}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{transpose as i}from"../../../core/libs/gl-matrix-2/math/mat3.js";import{sub as a,add as o,length as s,dot as c}from"../../../core/libs/gl-matrix-2/math/vec3.js";import l from"../../../geometry/Circle.js";import u from"../../../geometry/Mesh.js";import d from"../../../geometry/Multipoint.js";import f from"../../../geometry/Polygon.js";import{projectAsync as p}from"../../../geometry/projectionUtils.js";import m from"../../../geometry/SpatialReference.js";import{polygonCentroidPoint as h}from"../../../geometry/support/centroid.js";import{earth as g}from"../../../geometry/support/Ellipsoid.js";import _ from"../../../geometry/support/MeshComponent.js";import{createSphere as v}from"../../../geometry/support/meshUtils.js";import y from"../../../geometry/support/MeshVertexAttributes.js";import{create as b,fromArray as x,intersectRay as S}from"../../../geometry/support/plane.js";import{isWebMercator as C}from"../../../geometry/support/spatialReferenceUtils.js";import{getMetersPerUnitOfSR as w}from"./utils.js";import{convertToSRUnits as T,getWebMercatorScalingFactor as E,createRotationMatrixFromHPR as D,transformMat3 as O,scaleAndAddWithFactor as k,scaleWithFactor as A,computeHFOVAndVFOV as j,projectiveTransform as M}from"../transformations/utils.js";const N=Math.PI/180;function P(e,t,n){let r=T(e,t.spatialReference);return r.cameraHeight=(t.z??r.cameraHeight)-n,e.isSpherical?te(r,t):F(r,t)}function F(e,t){let{horizontalFieldOfView:n,verticalFieldOfView:r,cameraHeading:i}=e,a=E(t.y,t.spatialReference),o=e.cameraPitch,s=e.cameraRoll??0,c=150;n>150&&(o=90,s=0,c=5);let l=Math.ceil(n/c),u=I(l,i,n),d=V(e)*a,p=new f({spatialReference:t?.spatialReference});p.imageID=e.objectId;let m=null;for(let i of u)m=ee(i,o,e.cameraHeight,t,d,a,r,n,l,p,s,e.nearDistance);return m.imageID=e.objectId,{polygon:p,frustum:m}}function I(e,t,n){let r=[];if(e%2==0)for(let i=0;i<e/2;i++)r.push(t-n/e*(i+.5),t+n/e*(i+.5));else{r.push(t);for(let i=1;i<e/2;i++)r.push(t-n/e*i,t+n/e*i)}return r.sort(),r}function ee(e,t,s,c,l,u,d,f,p,m,h=0,g=0){let _=i(n(),D([e,t,h??0])),v=re({cameraHeight:s,cameraPitch:t,farDistance:l,location:c,horizontalFieldOfView:f,nearDistance:g,verticalFieldOfView:d},_),y=O([0,0,-1],_),{x:b,y:x}=c,S=k([b,x,c.z??s],y,l,u),C=2*Math.tan(d*N/2)*l,w=2*Math.tan(f/p*N/2)*l,T=O([0,1,0],_),E=O([1,0,0],_),j=A(T,C/2,u),M=A(E,w/2,u),P=a(r(),j,M),F=o(r(),j,M),I=L([o(r(),S,P),o(r(),S,F),a(r(),S,P),a(r(),S,F)],s,c,u);return I.push(I[0]),m.addRing(I),v}function L(e,t,n,r){return e.map(e=>ie(e,t,n,r))}function te(e,t){let{farDistance:n,objectId:r,nearDistance:i,cameraHeight:a}=e,o=E(t.y,t.spatialReference),s=new l({center:t.clone(),radius:n*o});if(s.imageID=r,i){let e=new l({center:t.clone(),radius:i*o});s.addRing(e.rings[0])}let c=t.clone();c.z=(t.z??a)-n*o;let u=v(c,{size:2*n*o});return u.imageID=r,{polygon:s,frustum:u}}function ne(e,t){return e.contains(t)}function R({cameraHeading:e,cameraPitch:t,cameraRoll:r,farDistance:a,horizontalFieldOfView:o,nearDistance:s,vectorToPoint:l,verticalFieldOfView:u}){let d=i(n(),D([e,t,r])),f=O([1,0,0],d),p=O([0,1,0],d),m=O([0,0,-1],d),h=c(l,f),g=c(l,p),_=c(l,m);if(_<=0||_<s||_>a)return!1;let v=_*Math.tan(o*N/2),y=_*Math.tan(u*N/2);return Math.abs(h)<=v&&Math.abs(g)<=y}function z(e,t){let n=T(e,e.location.spatialReference);if(t.z==null)return!1;let{horizontalFieldOfView:r,location:i,nearDistance:a,verticalFieldOfView:o}=n,c=V(n);if(r==null||o==null||!Number.isFinite(a)||a<0||!Number.isFinite(c)||c<=0)return!1;let l=E(i.y,i.spatialReference),u=i.z??0,d=[(t.x-i.x)/l,(t.y-i.y)/l,t.z-u];if(n.isSpherical){let e=s(d);return a<=e&&e<=c}let f={vectorToPoint:d,verticalFieldOfView:o,nearDistance:a,farDistance:c};if(r>150){let e=Math.ceil(r/5),t=r/e;return I(e,n.cameraHeading,r).some(e=>R({...f,cameraHeading:e,cameraPitch:90,cameraRoll:0,horizontalFieldOfView:t}))}return R({...f,cameraHeading:n.cameraHeading,cameraPitch:n.cameraPitch,cameraRoll:n.cameraRoll??0,horizontalFieldOfView:r})}function B(e,t){return Math.sign(e)!==Math.sign(t)}function re(e,t,n){let{cameraHeight:i,cameraPitch:s,farDistance:c,location:l,horizontalFieldOfView:d,nearDistance:f,verticalFieldOfView:p}=e,m=l.z??i,h=m-i,g=H(l),_=!(s+p/2>=90),v=2*Math.tan(p*N/2)*f,b=2*Math.tan(d*N/2)*f,x=2*Math.tan(p*N/2)*c,S=2*Math.tan(d*N/2)*c,C,w=[0,0,-1];w=O(w,t),C=k([l.x,l.y,m],w,c,g),_&&(C[2]=h);let T=k([l.x,l.y,m],w,f,g),E=[0,1,0];E=O(E,t);let D=[1,0,0];D=O(D,t);let j=[],M=[];f?(M=[{faces:[4,0,3,4,7,3]},{faces:[5,1,2,5,6,2]},{faces:[4,0,1,4,5,1]},{faces:[6,2,3,6,7,3]}],j=j.concat(o(r(),T,a(r(),A(E,v/2,g),A(D,b/2,g)))),j=j.concat(o(r(),T,o(r(),A(E,v/2,g),A(D,b/2,g)))),j=j.concat(a(r(),T,a(r(),A(E,v/2,g),A(D,b/2,g)))),j=j.concat(a(r(),T,o(r(),A(E,v/2,g),A(D,b/2,g))))):(j=[l.x,l.y,m],M=[{faces:[0,1,2,0,2,3,0,3,4,0,4,1]}]),j=j.concat(o(r(),C,a(r(),A(E,x/2,g),A(D,S/2,g)))),j=j.concat(o(r(),C,o(r(),A(E,x/2,g),A(D,S/2,g)))),j=j.concat(a(r(),C,a(r(),A(E,x/2,g),A(D,S/2,g)))),j=j.concat(a(r(),C,o(r(),A(E,x/2,g),A(D,S/2,g))));let P=new y({position:Float64Array.from(j)});return new u({vertexAttributes:P,components:M,spatialReference:l.spatialReference})}function ie(e,t,n,i){{let o=n.z??t,s=o-t,c=Math.sqrt((e[2]-o)**2+(Math.sqrt((e[0]-n.x)**2+(e[1]-n.y)**2)/i)**2)*i,l=A(a(r(),[e[0],e[1],e[2]],[n.x,n.y,o]),1/c,1/i),u=t/(o-e[2]),d={x:(1-u)*n.x+u*e[0],y:(1-u)*n.y+u*e[1],z:(1-u)*o+u*e[2]},f=Math.sqrt((d.z-o)**2+(Math.sqrt((d.x-n.x)**2+(d.y-n.y)**2)/i)**2)*i,p=A(a(r(),[d.x,d.y,d.z],[n.x,n.y,o]),1/f,1/i);return B(l[0],p[0])&&B(l[1],p[1])&&B(l[2],p[2])||e[2]>=s?[e[0],e[1],s]:[d.x,d.y,d.z]}}function ae(e){let{spatialReference:t,x:n,y:r}=e.geometry,{cameraHeading:i,cameraPitch:a,farDistance:o,nearDistance:s}=e,c=H(e.geometry),l=new f({spatialReference:t}),u=Math.abs(1.44*o*c),d=Math.abs(1.44*s*c);(a<20||i==null)&&(d=u);let p=[];return p[0]={x:n+u*Math.sin((i-45)*N),y:r+u*Math.cos((i-45)*N)},p[1]={x:n+u*Math.sin((i+45)*N),y:r+u*Math.cos((i+45)*N)},p[2]={x:n+d*Math.sin((i+135)*N),y:r+d*Math.cos((i+135)*N)},p[3]={x:n+d*Math.sin((i+225)*N),y:r+d*Math.cos((i+225)*N)},l.addRing([[p[0].x,p[0].y,0],[p[1].x,p[1].y,0],[p[2].x,p[2].y,0],[p[3].x,p[3].y,0],[p[0].x,p[0].y,0]]),l}function V(t){let{cameraHeight:n,cameraPitch:r,farDistance:i,location:a,verticalFieldOfView:o}=t;return i??(r+o/2>=90?20/w(a.spatialReference):n/Math.cos(e(r)))}function H(e){return e&&C(e?.spatialReference)?1/Math.cos(Math.PI/2-2*Math.atan(Math.exp(-1*e.y/g.radius))):1}function U(e,t){let n=1+t/100;if(e.declaredClass===`esri.geometry.Circle`){let{radius:t,center:r}=e,i=t*n,a=new l({radius:i,center:r});return e.rings.length>1&&a.addRing(e.rings[1]),a}if(e.declaredClass===`esri.geometry.Polygon`){let t=new f({spatialReference:e.spatialReference}),i=h(e);if(i){let o=[];for(let t=0;t<e.rings[0].length;t++){let s=Math.sqrt((i.x-e.rings[0][t][0])**2+(i.y-e.rings[0][t][1])**2),c=A(a(r(),[e.rings[0][t][0],e.rings[0][t][1],0],[i.x,i.y,0]),1/s,1),l=k([i.x,i.y,0],c,s*n,1);o.push({x:l[0],y:l[1]})}t.addRing([[o[0].x,o[0].y,0],[o[1].x,o[1].y,0],[o[2].x,o[2].y,0],[o[3].x,o[3].y,0],[o[0].x,o[0].y,0]])}return t}return e}async function W(e,t,n){let{cameraHeight:r,cameraLocation:i,cameraPitch:a,frustumVertices:o,horizontalFieldOfView:s,imageHeight:c,imageWidth:l,inSRS:u,outSRS:d,verticalFieldOfView:f,cameraRoll:p,options:h}=n,g=new m(u),_=new m(d),v=j(s,f,p??0),y=o.length>15;return a+v.vfov/2>=90?await se(o,e,l,c,g,_,y,h):await G(o,e,t,i,r,y,g,_,h)}async function G(e,t,n,r,i,a,o,s,c){let l=K(e,t,n,r,i);if(!l)return;let{farPlane:d,nearPlane:f}=l,p=await J([...f?.vertexPositions??e.slice(0,3),...d.vertexPositions],o,s,c),m=$(p);return new u({vertexAttributes:new y({position:p}),components:Q(a?X(m,!0):Z(m,!0)),spatialReference:s})}function K(e,t,n,r,i){let a=Y(e),o=Y(e,`near`);if(!a)return;let s=t.length;for(let e=0;e<s;e++){let t=Array.from(n[e]),s=[t[0]-r[0],t[1]-r[1],t[2]-(r[2]??i)];oe(r,s,e,o),q(r,s,e,a)}return{farPlane:a,nearPlane:o}}function q(e,t,n,i){let{coefficients:a,vertexPositions:o}=i,s=r();S(a,{origin:e,direction:t},s)&&o.splice(n*3,3,...s)}function oe(e,t,n,i){if(!i)return;let a=r();S(i.coefficients,{origin:e,direction:t},a)&&i.vertexPositions.splice(n*3,3,...a)}async function se(e,t,n,r,i,a,o,s){let c=o?[]:[e[0],e[1],e[2]],l,d=[];for(let i of t)o?(l=M([i[0],i[1],1],[[0,0,1],[n,0,1],[n,r,1],[0,r,1]],[[e[0],e[1],e[2]],[e[3],e[4],e[5]],[e[6],e[7],e[8]],[e[9],e[10],e[11]]]),c=c.concat(...l),l=M([i[0],i[1],1],[[0,0,1],[n,0,1],[n,r,1],[0,r,1]],[[e[12],e[13],e[14]],[e[15],e[16],e[17]],[e[18],e[19],e[20]],[e[21],e[22],e[23]]]),d=d.concat(...l)):(l=M([i[0],i[1],1],[[0,0,1],[n,0,1],[n,r,1],[0,r,1]],[[e[3],e[4],e[5]],[e[6],e[7],e[8]],[e[9],e[10],e[11]],[e[12],e[13],e[14]]]),c=c.concat(...l));c=c.concat(d);let f=await J(c,i,a,s),p=$(f);return new u({vertexAttributes:new y({position:f}),components:Q(o?X(p,!0):Z(p,!0)),spatialReference:a})}async function J(e,n,r,i){if(n.equals(r))return e;let a=e.reduce((e,t,n)=>{let r=Math.floor(n/3);return e[r]||(e[r]=[]),e[r].push(t),e},[]),{points:o}=await p(new d({points:a,spatialReference:n}),r,i);return t(i),o.flat()}function Y(e,t=`far`){let n=b(),r;switch(t){case`far`:if(r=Array.from(e.length===15?e.slice(3):e.slice(12)),x(n,r,!1))return{coefficients:n,vertexPositions:r};break;case`near`:return r=Array.from(e.slice(0,12)),e.length===15||!x(n,r,!1)?void 0:{coefficients:n,vertexPositions:r}}}const X=(e,t=!1)=>{if(t&&e-2<=4||e<=4||e%2!=0)throw Error(`Invalid number of vertices`);let n=[],r=e/2,i=Math.round((t?e-2:e)/2);for(let a=0;a<i;a++){let i=a+r,o=t?i+1:i,s=o%e,c=(t?i:o+1)%e;n.push({faces:new Uint32Array([a,c,s,a,a+1,s])})}return n};function Z(e,t=!1){if(e<3||t&&e-1<3)throw Error(`Invalid number of vertices`);let n=[],r=t?e-2:e-1;for(let e=0;e<r;e++)n.push({faces:new Uint32Array([0,e+1,e+2])});return n}const Q=e=>e.map(e=>new _(e)),$=e=>e.length/3;export{z as checkIfFrustumContainsSelectedPoint,ne as checkIfPolygonContainsSelectedPoint,ae as computePolygonForInspection,P as createCoveragePolygon,L as limitZToGround,J as projectVertices,U as resizePolygon,W as updateFrustum};
|
|
2
|
+
import{deg2rad as e}from"../../../core/mathUtils.js";import{throwIfAborted as t}from"../../../core/promiseUtils.js";import{create as n}from"../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{zeros as r}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{transpose as i}from"../../../core/libs/gl-matrix-2/math/mat3.js";import{sub as a,add as o,length as s,dot as c}from"../../../core/libs/gl-matrix-2/math/vec3.js";import l from"../../../geometry/Circle.js";import u from"../../../geometry/Mesh.js";import d from"../../../geometry/Multipoint.js";import f from"../../../geometry/Polygon.js";import{projectAsync as p}from"../../../geometry/projectionUtils.js";import m from"../../../geometry/SpatialReference.js";import{polygonCentroidPoint as h}from"../../../geometry/support/centroid.js";import{earth as g}from"../../../geometry/support/Ellipsoid.js";import _ from"../../../geometry/support/MeshComponent.js";import{createSphere as v}from"../../../geometry/support/meshUtils.js";import y from"../../../geometry/support/MeshVertexAttributes.js";import{create as b,fromArray as x,intersectRay as S}from"../../../geometry/support/plane.js";import{isWebMercator as C}from"../../../geometry/support/spatialReferenceUtils.js";import{getMetersPerUnitOfSR as w}from"./utils.js";import{convertToSRUnits as T,getWebMercatorScalingFactor as E,transformMat3 as D,scaleAndAddWithFactor as O,scaleWithFactor as k,computeHFOVAndVFOV as A,projectiveTransform as j}from"../transformations/utils.js";import{createRotationMatrixFromHPR as M}from"../transformations/rotationUtils.js";const N=Math.PI/180;function P(e,t,n){let r=T(e,t.spatialReference);return r.cameraHeight=(t.z??r.cameraHeight)-n,e.isSpherical?z(r,t):F(r,t)}function F(e,t){let{horizontalFieldOfView:n,verticalFieldOfView:r,cameraHeading:i}=e,a=E(t.y,t.spatialReference),o=e.cameraPitch,s=e.cameraRoll??0,c=150;n>150&&(o=90,s=0,c=5);let l=Math.ceil(n/c),u=I(l,i,n),d=K(e)*a,p=new f({spatialReference:t?.spatialReference});p.imageID=e.objectId;let m=null;for(let i of u)m=L(i,o,e.cameraHeight,t,d,a,r,n,l,p,s,e.nearDistance);return m.imageID=e.objectId,{polygon:p,frustum:m}}function I(e,t,n){let r=[];if(e%2==0)for(let i=0;i<e/2;i++)r.push(t-n/e*(i+.5),t+n/e*(i+.5));else{r.push(t);for(let i=1;i<e/2;i++)r.push(t-n/e*i,t+n/e*i)}return r.sort(),r}function L(e,t,s,c,l,u,d,f,p,m,h=0,g=0){let _=i(n(),M([e,t,h??0])),v=W({cameraHeight:s,cameraPitch:t,farDistance:l,location:c,horizontalFieldOfView:f,nearDistance:g,verticalFieldOfView:d},_),y=D([0,0,-1],_),{x:b,y:x}=c,S=O([b,x,c.z??s],y,l,u),C=2*Math.tan(d*N/2)*l,w=2*Math.tan(f/p*N/2)*l,T=D([0,1,0],_),E=D([1,0,0],_),A=k(T,C/2,u),j=k(E,w/2,u),P=a(r(),A,j),F=o(r(),A,j),I=R([o(r(),S,P),o(r(),S,F),a(r(),S,P),a(r(),S,F)],s,c,u);return I.push(I[0]),m.addRing(I),v}function R(e,t,n,r){return e.map(e=>G(e,t,n,r))}function z(e,t){let{farDistance:n,objectId:r,nearDistance:i,cameraHeight:a}=e,o=E(t.y,t.spatialReference),s=new l({center:t.clone(),radius:n*o});if(s.imageID=r,i){let e=new l({center:t.clone(),radius:i*o});s.addRing(e.rings[0])}let c=t.clone();c.z=(t.z??a)-n*o;let u=v(c,{size:2*n*o});return u.imageID=r,{polygon:s,frustum:u}}function B(e,t){return e.contains(t)}function V({cameraHeading:e,cameraPitch:t,cameraRoll:r,farDistance:a,horizontalFieldOfView:o,nearDistance:s,vectorToPoint:l,verticalFieldOfView:u}){let d=i(n(),M([e,t,r])),f=D([1,0,0],d),p=D([0,1,0],d),m=D([0,0,-1],d),h=c(l,f),g=c(l,p),_=c(l,m);if(_<=0||_<s||_>a)return!1;let v=_*Math.tan(o*N/2),y=_*Math.tan(u*N/2);return Math.abs(h)<=v&&Math.abs(g)<=y}function H(e,t){let n=T(e,e.location.spatialReference);if(t.z==null)return!1;let{horizontalFieldOfView:r,location:i,nearDistance:a,verticalFieldOfView:o}=n,c=K(n);if(r==null||o==null||!Number.isFinite(a)||a<0||!Number.isFinite(c)||c<=0)return!1;let l=E(i.y,i.spatialReference),u=i.z??0,d=[(t.x-i.x)/l,(t.y-i.y)/l,t.z-u];if(n.isSpherical){let e=s(d);return a<=e&&e<=c}let f={vectorToPoint:d,verticalFieldOfView:o,nearDistance:a,farDistance:c};if(r>150){let e=Math.ceil(r/5),t=r/e;return I(e,n.cameraHeading,r).some(e=>V({...f,cameraHeading:e,cameraPitch:90,cameraRoll:0,horizontalFieldOfView:t}))}return V({...f,cameraHeading:n.cameraHeading,cameraPitch:n.cameraPitch,cameraRoll:n.cameraRoll??0,horizontalFieldOfView:r})}function U(e,t){return Math.sign(e)!==Math.sign(t)}function W(e,t,n){let{cameraHeight:i,cameraPitch:s,farDistance:c,location:l,horizontalFieldOfView:d,nearDistance:f,verticalFieldOfView:p}=e,m=l.z??i,h=m-i,g=q(l),_=!(s+p/2>=90),v=2*Math.tan(p*N/2)*f,b=2*Math.tan(d*N/2)*f,x=2*Math.tan(p*N/2)*c,S=2*Math.tan(d*N/2)*c,C,w=[0,0,-1];w=D(w,t),C=O([l.x,l.y,m],w,c,g),_&&(C[2]=h);let T=O([l.x,l.y,m],w,f,g),E=[0,1,0];E=D(E,t);let A=[1,0,0];A=D(A,t);let j=[],M=[];f?(M=[{faces:[4,0,3,4,7,3]},{faces:[5,1,2,5,6,2]},{faces:[4,0,1,4,5,1]},{faces:[6,2,3,6,7,3]}],j=j.concat(o(r(),T,a(r(),k(E,v/2,g),k(A,b/2,g)))),j=j.concat(o(r(),T,o(r(),k(E,v/2,g),k(A,b/2,g)))),j=j.concat(a(r(),T,a(r(),k(E,v/2,g),k(A,b/2,g)))),j=j.concat(a(r(),T,o(r(),k(E,v/2,g),k(A,b/2,g))))):(j=[l.x,l.y,m],M=[{faces:[0,1,2,0,2,3,0,3,4,0,4,1]}]),j=j.concat(o(r(),C,a(r(),k(E,x/2,g),k(A,S/2,g)))),j=j.concat(o(r(),C,o(r(),k(E,x/2,g),k(A,S/2,g)))),j=j.concat(a(r(),C,a(r(),k(E,x/2,g),k(A,S/2,g)))),j=j.concat(a(r(),C,o(r(),k(E,x/2,g),k(A,S/2,g))));let P=new y({position:Float64Array.from(j)});return new u({vertexAttributes:P,components:M,spatialReference:l.spatialReference})}function G(e,t,n,i){{let o=n.z??t,s=o-t,c=Math.sqrt((e[2]-o)**2+(Math.sqrt((e[0]-n.x)**2+(e[1]-n.y)**2)/i)**2)*i,l=k(a(r(),[e[0],e[1],e[2]],[n.x,n.y,o]),1/c,1/i),u=t/(o-e[2]),d={x:(1-u)*n.x+u*e[0],y:(1-u)*n.y+u*e[1],z:(1-u)*o+u*e[2]},f=Math.sqrt((d.z-o)**2+(Math.sqrt((d.x-n.x)**2+(d.y-n.y)**2)/i)**2)*i,p=k(a(r(),[d.x,d.y,d.z],[n.x,n.y,o]),1/f,1/i);return U(l[0],p[0])&&U(l[1],p[1])&&U(l[2],p[2])||e[2]>=s?[e[0],e[1],s]:[d.x,d.y,d.z]}}function ee(e){let{spatialReference:t,x:n,y:r}=e.geometry,{cameraHeading:i,cameraPitch:a,farDistance:o,nearDistance:s}=e,c=q(e.geometry),l=new f({spatialReference:t}),u=Math.abs(1.44*o*c),d=Math.abs(1.44*s*c);(a<20||i==null)&&(d=u);let p=[];return p[0]={x:n+u*Math.sin((i-45)*N),y:r+u*Math.cos((i-45)*N)},p[1]={x:n+u*Math.sin((i+45)*N),y:r+u*Math.cos((i+45)*N)},p[2]={x:n+d*Math.sin((i+135)*N),y:r+d*Math.cos((i+135)*N)},p[3]={x:n+d*Math.sin((i+225)*N),y:r+d*Math.cos((i+225)*N)},l.addRing([[p[0].x,p[0].y,0],[p[1].x,p[1].y,0],[p[2].x,p[2].y,0],[p[3].x,p[3].y,0],[p[0].x,p[0].y,0]]),l}function K(t){let{cameraHeight:n,cameraPitch:r,farDistance:i,location:a,verticalFieldOfView:o}=t;return i??(r+o/2>=90?20/w(a.spatialReference):n/Math.cos(e(r)))}function q(e){return e&&C(e?.spatialReference)?1/Math.cos(Math.PI/2-2*Math.atan(Math.exp(-1*e.y/g.radius))):1}function te(e,t){let n=1+t/100;if(e.declaredClass===`esri.geometry.Circle`){let{radius:t,center:r}=e,i=t*n,a=new l({radius:i,center:r});return e.rings.length>1&&a.addRing(e.rings[1]),a}if(e.declaredClass===`esri.geometry.Polygon`){let t=new f({spatialReference:e.spatialReference}),i=h(e);if(i){let o=[];for(let t=0;t<e.rings[0].length;t++){let s=Math.sqrt((i.x-e.rings[0][t][0])**2+(i.y-e.rings[0][t][1])**2),c=k(a(r(),[e.rings[0][t][0],e.rings[0][t][1],0],[i.x,i.y,0]),1/s,1),l=O([i.x,i.y,0],c,s*n,1);o.push({x:l[0],y:l[1]})}t.addRing([[o[0].x,o[0].y,0],[o[1].x,o[1].y,0],[o[2].x,o[2].y,0],[o[3].x,o[3].y,0],[o[0].x,o[0].y,0]])}return t}return e}async function ne(e,t,n){let{cameraHeight:r,cameraLocation:i,cameraPitch:a,frustumVertices:o,horizontalFieldOfView:s,imageHeight:c,imageWidth:l,inSRS:u,outSRS:d,verticalFieldOfView:f,cameraRoll:p,options:h}=n,g=new m(u),_=new m(d),v=A(s,f,p??0),y=o.length>15;return a+v.vfov/2>=90?await se(o,e,l,c,g,_,y,h):await re(o,e,t,i,r,y,g,_,h)}async function re(e,t,n,r,i,a,o,s,c){let l=ie(e,t,n,r,i);if(!l)return;let{farPlane:d,nearPlane:f}=l,p=await J([...f?.vertexPositions??e.slice(0,3),...d.vertexPositions],o,s,c),m=$(p);return new u({vertexAttributes:new y({position:p}),components:Q(a?X(m,!0):Z(m,!0)),spatialReference:s})}function ie(e,t,n,r,i){let a=Y(e),o=Y(e,`near`);if(!a)return;let s=t.length;for(let e=0;e<s;e++){let t=Array.from(n[e]),s=[t[0]-r[0],t[1]-r[1],t[2]-(r[2]??i)];oe(r,s,e,o),ae(r,s,e,a)}return{farPlane:a,nearPlane:o}}function ae(e,t,n,i){let{coefficients:a,vertexPositions:o}=i,s=r();S(a,{origin:e,direction:t},s)&&o.splice(n*3,3,...s)}function oe(e,t,n,i){if(!i)return;let a=r();S(i.coefficients,{origin:e,direction:t},a)&&i.vertexPositions.splice(n*3,3,...a)}async function se(e,t,n,r,i,a,o,s){let c=o?[]:[e[0],e[1],e[2]],l,d=[];for(let i of t)o?(l=j([i[0],i[1],1],[[0,0,1],[n,0,1],[n,r,1],[0,r,1]],[[e[0],e[1],e[2]],[e[3],e[4],e[5]],[e[6],e[7],e[8]],[e[9],e[10],e[11]]]),c=c.concat(...l),l=j([i[0],i[1],1],[[0,0,1],[n,0,1],[n,r,1],[0,r,1]],[[e[12],e[13],e[14]],[e[15],e[16],e[17]],[e[18],e[19],e[20]],[e[21],e[22],e[23]]]),d=d.concat(...l)):(l=j([i[0],i[1],1],[[0,0,1],[n,0,1],[n,r,1],[0,r,1]],[[e[3],e[4],e[5]],[e[6],e[7],e[8]],[e[9],e[10],e[11]],[e[12],e[13],e[14]]]),c=c.concat(...l));c=c.concat(d);let f=await J(c,i,a,s),p=$(f);return new u({vertexAttributes:new y({position:f}),components:Q(o?X(p,!0):Z(p,!0)),spatialReference:a})}async function J(e,n,r,i){if(n.equals(r))return e;let a=e.reduce((e,t,n)=>{let r=Math.floor(n/3);return e[r]||(e[r]=[]),e[r].push(t),e},[]),{points:o}=await p(new d({points:a,spatialReference:n}),r,i);return t(i),o.flat()}function Y(e,t=`far`){let n=b(),r;switch(t){case`far`:if(r=Array.from(e.length===15?e.slice(3):e.slice(12)),x(n,r,!1))return{coefficients:n,vertexPositions:r};break;case`near`:return r=Array.from(e.slice(0,12)),e.length===15||!x(n,r,!1)?void 0:{coefficients:n,vertexPositions:r}}}const X=(e,t=!1)=>{if(t&&e-2<=4||e<=4||e%2!=0)throw Error(`Invalid number of vertices`);let n=[],r=e/2,i=Math.round((t?e-2:e)/2);for(let a=0;a<i;a++){let i=a+r,o=t?i+1:i,s=o%e,c=(t?i:o+1)%e;n.push({faces:new Uint32Array([a,c,s,a,a+1,s])})}return n};function Z(e,t=!1){if(e<3||t&&e-1<3)throw Error(`Invalid number of vertices`);let n=[],r=t?e-2:e-1;for(let e=0;e<r;e++)n.push({faces:new Uint32Array([0,e+1,e+2])});return n}const Q=e=>e.map(e=>new _(e)),$=e=>e.length/3;export{H as checkIfFrustumContainsSelectedPoint,B as checkIfPolygonContainsSelectedPoint,ee as computePolygonForInspection,P as createCoveragePolygon,R as limitZToGround,J as projectVertices,te as resizePolygon,ne as updateFrustum};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
+
import e from"../../../core/Error.js";import{deg2rad as t}from"../../../core/mathUtils.js";import{create as n}from"../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{multiply as r}from"../../../core/libs/gl-matrix-2/math/mat3.js";const i={HPR:[[2,-1],[0,1],[2,-1]],OPK:[[0,1],[1,1],[2,1]],YPR:[[0,-1],[1,-1],[2,-1]]};function a(r,i,a,o=!0){if(!Number.isFinite(r))throw new e(`InvalidRotationAngle`,`Please specify a valid angle for rotation`);let s=a*(o?t(r):r),c=Math.cos(s),l=Math.sin(s),u=n();switch(i){case 0:u[4]=c,u[5]=-l,u[7]=l,u[8]=c;break;case 1:u[0]=c,u[2]=l,u[6]=-l,u[8]=c;break;case 2:u[0]=c,u[1]=-l,u[3]=l,u[4]=c;break;default:throw new e(`InvalidRotationAxis`,`Please specify either 0, 1 or 2 for X, Y or Z axis respectively`)}return u}function o(t,i,o=!0){if(t?.length!==3||i?.length!==3)throw new e(`InvalidRotationAngles`,`Please specify three angles with config for rotation`);let s=n();for(let e=0;e<3;e++){let[n,c]=i[e],l=a(t[e],n,c,o);r(s,l,s)}return s}function s(e,t=!0){return o(e,i.HPR,t)}export{o as createRotationMatrix,s as createRotationMatrixFromHPR,i as defaultAxisRotationInfo};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import e from"../../../core/Error.js";import{deg2rad as t,rad2deg as n}from"../../../core/mathUtils.js";import{create as r}from"../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{create as i,fromValues as a}from"../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{zeros as o,create as s}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{fromArray as c}from"../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{multiply as l,transpose as u}from"../../../core/libs/gl-matrix-2/math/mat3.js";import{invertOrIdentity as d,mul as f}from"../../../core/libs/gl-matrix-2/math/mat4.js";import{scale as p,sub as m,add as h}from"../../../core/libs/gl-matrix-2/math/vec3.js";import{isSerializable as g}from"../../../core/support/jsonUtils.js";import _ from"../../../geometry/Point.js";import{projectAsync as v}from"../../../geometry/projectionUtils.js";import{earth as y}from"../../../geometry/support/Ellipsoid.js";import{isWebMercator as b}from"../../../geometry/support/spatialReferenceUtils.js";import{a as x}from"../../../chunks/vec3.js";import{isConstantElevation as S,ConstantElevation as C,isElevationSource as w}from"../core/ElevationSourceDefinitions.js";import{getMetersPerUnitOfSR as T}from"../core/utils.js";import{getElevationSampler as ee}from"./updateElevationUtils.js";import{isNumber as E}from"../../../support/guards.js";import{defaultImageSphereSize as D}from"../../../widgets/PanoramicViewer/constants.js";function O(e,t,n){let[r,a,o,s]=t,[c,l,u,p]=n;k(r,a,o,s);let m=k(c,l,u,p),h=A(r,a,o,s),g=A(c,l,u,p),_=d(i(),h),[v,y,b,x]=ne(e,f(i(),_,g));return[v/x,y/x,m?0:b/x]}function k(e,t,n,r){return e[2]===0&&t[2]===0&&n[2]===0&&r[2]===0&&(e[2]=t[2]=n[2]=r[2]=1,!0)}function te(e){return e===0?1:e}function ne(e,t){let[n,r,i]=e,a=[0,0,0,0];return a[0]=n*t[0]+r*t[1]+i*t[2]+t[3],a[1]=n*t[4]+r*t[5]+i*t[6]+t[7],a[2]=n*t[8]+r*t[9]+i*t[10]+t[11],a[3]=te(n*t[12]+r*t[13]+i*t[14]+t[15]),a}function A(e,t,n,r){let o=re(c([...r,1]),d(Array(16),a(e[0],t[0],n[0],0,e[1],t[1],n[1],0,e[2],t[2],n[2],0,1,1,1,1))),s=o[0],l=o[1],u=o[2],f=i();return f[0]=s*e[0],f[1]=l*t[0],f[2]=u*n[0],f[3]=0,f[4]=s*e[1],f[5]=l*t[1],f[6]=u*n[1],f[7]=0,f[8]=s*e[2],f[9]=l*t[2],f[10]=u*n[2],f[11]=0,f[12]=s,f[13]=l,f[14]=u,f[15]=1,f}function j(e,t,n,r,i=o()){return i[0]=e[0]+t[0]*n,i[1]=e[1]+t[1]*n,i[2]=e[2]+t[2]*(n/r),i}function M(e,t,n){let r=o();return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*(t/n),r}function N(e,t){let[n,r,i]=e,a=o();return a[0]=n*t[0]+r*t[3]+i*t[6],a[1]=n*t[1]+r*t[4]+i*t[7],a[2]=n*t[2]+r*t[5]+i*t[8],a}function re(e,t){let[n,r,i,a]=e,o=[,,,,];return o[0]=n*t[0]+r*t[1]+i*t[2]+a*t[3],o[1]=n*t[4]+r*t[5]+i*t[6]+a*t[7],o[2]=n*t[8]+r*t[9]+i*t[10]+a*t[11],o[3]=n*t[12]+r*t[13]+i*t[14]+a*t[15],o}function ie(n,i,a,o=!0){if(!Number.isFinite(n))throw new e(`InvalidRotationAngle`,`Please specify a valid angle for rotation`);let s=a*(o?t(n):n),c=Math.cos(s),l=Math.sin(s),u=r();switch(i){case 0:u[4]=c,u[5]=-l,u[7]=l,u[8]=c;break;case 1:u[0]=c,u[2]=l,u[6]=-l,u[8]=c;break;case 2:u[0]=c,u[1]=-l,u[3]=l,u[4]=c;break;default:throw new e(`InvalidRotationAxis`,`Please specify either 0, 1 or 2 for X, Y or Z axis respectively`)}return u}const P={HPR:[[2,-1],[0,1],[2,-1]],OPK:[[0,1],[1,1],[2,1]],YPR:[[0,-1],[1,-1],[2,-1]]};function F(t,n,i=!0){if(t?.length!==3||n?.length!==3)throw new e(`InvalidRotationAngles`,`Please specify three angles with config for rotation`);let a=r();for(let e=0;e<3;e++){let[r,o]=n[e],s=ie(t[e],r,o,i);l(a,s,a)}return a}function I(e,t=!0){return F(e,P.OPK,t)}function L(e,t=!0){return F(e,P.HPR,t)}function ae(e,n,r){let i=Math.sin(t(r)),a=Math.cos(t(r)),o=[[e,0],[e,n],[0,n]];o.forEach((e,t)=>{o[t]=[a*e[0]-i*e[1],i*e[0]+a*e[1]]});let s={xmin:Math.min(0,o[0][0],o[1][0],o[2][0]),xmax:Math.max(0,o[0][0],o[1][0],o[2][0]),ymin:Math.min(0,o[0][1],o[1][1],o[2][1]),ymax:Math.max(0,o[0][1],o[1][1],o[2][1])};return{hfov:Math.abs(s.xmax-s.xmin),vfov:Math.abs(s.ymax-s.ymin)}}function oe(e,r){let i=Number(e[0]),a=Number(e[1]),o=Number(e[2]),[s,c,l,u]=r,d=t(s),f=t(c),p=l/Math.sqrt(1-u*Math.sin(d)**2),m=i/p,h=a/p,g=o/p,_=Math.cos(d)-Math.sin(d)*h+Math.cos(d)*g,v=Math.sin(d)+Math.cos(d)*h+Math.sin(d)*g,y=Math.sqrt(_**2+m**2),b=u*p*Math.sin(d),x=(e,t=5)=>{if(t===0)return e;let n=x(e,t-1);return Math.atan(v/y-(b-u*(l/Math.sqrt(1-u*Math.sin(n)**2))*Math.sin(n))/(p*y))},S=x(d),C=Math.atan(i/(p*_))+f,w=n(S);return[n(C),w,i/(Math.cos(S)*Math.sin(C-f))-l/Math.sqrt(1-u*Math.sin(S)**2)]}function R(e,t,n){let r=360/t,i=180/n,a=e.x-t/2,o=e.y-n/2;return{heading:a*r,pitch:90-o*i}}function se(e,t,n,r,i=D/2){let{heading:a,pitch:o}=B(e,i),s=r?$(a,o,r):[a,o];return{heading:a,pitch:o,...z(s[0],s[1],t,n)}}function z(e,t,n,r){let i=360/n,a=180/r,o=e%360,s=o<-180?o+360:o>180?o-360:o;return{x:n/2+s/i,y:r-t/a}}function B(e,t){let r=n(Math.acos(-e.z/t));return{heading:n(Math.atan2(e.x,e.y)),pitch:r}}function V(e,n){return[Math.sin(t(e))*Math.sin(t(n)),Math.cos(t(e))*Math.sin(t(n)),Math.cos(t(180-n))]}function H(e,t,n,r=D/2){let i=n?$(e,t,n,!0):[e,t];return p(s(),V(i[0],i[1]),r)}function ce(e,t,n,r,i=D/2){let{heading:a,pitch:o}=R(e,t,n);return H(a,o,r,i)}async function le(e,t,r){let i=await v(t,e.spatialReference,r),a=n(Math.atan2(i.y-e.y,i.x-e.x));return a=a>=0&&a<=90?90-a:a>90&&a<=180?360-a+90:90+Math.abs(a),a}function ue(e,t,n){let r=Math.cos(n),i=Math.sin(n),a=[1,0,0,1,0,0],o=a[0]*r+a[2]*i,s=a[1]*r+a[3]*i,c=-a[0]*i+a[2]*r,l=-a[1]*i+a[3]*r;return a[0]=o,a[1]=s,a[2]=c,a[3]=l,[e*a[0]+t*a[2]+a[4],e*a[1]+t*a[3]+a[5]]}const de=e=>e.toArray(),U=(...e)=>e.some(e=>e);function fe(e,t){if(U(e.length===0,e.some(({x:e,y:t})=>U(e==null,t==null)),!t.hasZ))throw Error(`Input pixels must have x, y and camera location must have z value`)}function pe(e,t){if(e.some(e=>e.z==null)||t.z==null)throw Error(`Input points and camera location must have z value`)}function me(e){if(e?.length!==9)throw Error(`Rotation matrix is not provided or is not a valid 3x3 matrix`)}function he(e,t){return b(t)?1/Math.cos(Math.PI/2-2*Math.atan(Math.exp(-1*e/y.radius))):1}const ge=e=>t=>new _({x:t[0],y:t[1],z:t[2],spatialReference:e});function _e(e,t,n,r){return[[-t,-t],[+t,-t],[+t,+t],[-t,+t]].map(([t,i])=>O(x(o(),n,[t,i,0]),r,e))}function W({a0:e,a1:t,a2:n,b0:r,b1:i,b2:a},o,s,c){let l=[e??o/2-.5,t,n??0,r??s/2-.5,i??0,a].map(ve);return c!=null&&G(l)?{affines:l,focalLength:c}:{affines:[o/2-.5,1,0,s/2-.5,0,-1]}}function ve(e,t){if(e==null)return null;let n=parseFloat(`${e}`);return isNaN(n)?null:n}function G(e){return e[1]!=null&&e[5]!=null}function ye(e,t,n){let{cameraHeight:r,cameraPitch:i,cameraRoll:a,elevation:o,farDistance:s,horizontalFieldOfView:c,location:l,verticalFieldOfView:u}=Q(e,e.location.spatialReference),d=o??(l.z??0)-r;return{...K(e,t,n),averageElevation:d,cameraPitch:i,cameraRoll:a??0,farDistance:s,horizontalFieldOfView:c,verticalFieldOfView:u}}function be(e,t,n,r){return X(r)?I([r.omega,r.phi,r.kappa]):Z(r)?L([r.heading,r.pitch,r.roll]):L([e,t,n??0])}function xe(e,t,n){let{cameraHeading:r,cameraHeight:i,farDistance:a,horizontalFieldOfView:o,location:s,verticalFieldOfView:c}=Q(e,e.location.spatialReference),l=(s.z??0)-i,u=-r,d=0,f=0;if(e?.matrix){let{matrix:t}=e;[d,f,u]=Ee(t)}return{averageElevation:l,cameraLocation:s,cameraHeading:r,farDistance:a,horizontalFieldOfView:o,imageHeight:n,imageWidth:t,verticalFieldOfView:c,horizonYaw:u,horizonPitch:d,horizonRoll:f}}function K(e,t,n){let{a0:r,a1:i,a2:a,b0:o,b1:s,b2:c,cameraHeading:l,cameraOrientation:u,cameraPitch:d,cameraRoll:f,focalLength:p,horizontalFieldOfView:m,location:h,matrix:g,principalX:_,principalY:v,radial:y,tangential:b,verticalFieldOfView:x}=e,{affines:S,focalLength:C}=W({a0:r,a1:i,a2:a,b0:o,b1:s,b2:c},t,n,p),w=g??be(l,d,f,u),T=_!=null&&v!=null?[_,v]:void 0;return{affineTransformations:u?.affineTransformations??S,cameraLocation:h.clone(),focalLength:u?.focalLength??C,horizontalFieldOfView:m,imageHeight:n,imageWidth:t,principalOffsetPoint:u?.principalOffsetPoint??T,radialDistortionCoefficients:u?.radialDistortionCoefficients??y,rotationMatrix:w,tangentialDistortionCoefficients:u?.tangentialDistortionCoefficients??b,verticalFieldOfView:x}}const q=e=>e!=null&&`elevationSample`in e&&e.elevationSample!=null,J=e=>w(e?.elevationSource)&&e?.extent!=null,Y=e=>S(e?.elevationSource),Se=async(e,t,n,r,i)=>{let a=T(e),o=t-n/a;return q(r)?r:Y(r)?(r.elevationSource=new C({constantElevation:r.elevationSource.constantElevation/a}),r):J(r)?{elevationSample:await ee({...g(r.elevationSource)?r.elevationSource.toJSON():r.elevationSource,extent:r.extent},i),elevationSource:new C({constantElevation:o})}:{averageGroundElevation:o,spatialReference:e}},Ce=e=>E(e?.heading)&&E(e?.pitch),we=(e,t)=>[[-e,-t],[e,-t],[e,t],[-e,t]];function Te(e){let{cameraLocation:n,farDistance:i,horizontalFieldOfView:a,rotationMatrix:s,scalingFactor:c,verticalFieldOfView:l}=e,d=r();u(d,s);let f=2*Math.tan(t(l)/2)*i*c,p=2*Math.tan(t(a)/2)*i*c,g=N([0,0,-1],d),_=j([n.x,n.y,n.z],g,e.farDistance*c,c),v=N([0,1,0],d),y=N([1,0,0],d),b=M(v,f/2,c),x=M(y,p/2,c),S=m(o(),b,x),C=h(o(),b,x);return[h(o(),_,S),h(o(),_,C),m(o(),_,S),m(o(),_,C)]}const X=e=>e?.type===2,Z=e=>e?.type===1;function Q(e,t,n=!0){let r=T(t),i=n?e.clone():e;return i.cameraHeight/=r,i.farDistance/=r,i.nearDistance/=r,S(i.elevationSource)&&(i.elevationSource.constantElevation/=r),i}function Ee(e){return[n(Math.asin(-e[6])),n(Math.atan(e[7]/e[8])),n(Math.atan2(e[3],e[0]))]}function $(e,t,n,r=!1){return De(V(e,t),n,r)}function De(e,t,i=!1){let a=i?u(r(),F(t,P.YPR)):F(t,P.YPR),o=e[0]*a[0]+e[1]*a[1]+e[2]*a[2],s=e[0]*a[3]+e[1]*a[4]+e[2]*a[5],c=e[0]*a[6]+e[1]*a[7]+e[2]*a[8],l=n(Math.acos(-c));return[n(Math.atan2(o,s)),l]}export{$ as adjustHorizonAngles,De as adjustHorizonAnglesVec3,Te as computeFarplaneVertices,ae as computeHFOVAndVFOV,_e as computeNewReferenceCoordinates,H as convertHeadingPitchToSphereVertex,z as convertOrientationToPixelLocation,ce as convertPixelLocationToSphereVertex,R as convertPixelToHeadingPitch,B as convertSphereVertexToOrientation,se as convertSphereVertexToPixelLocation,Q as convertToSRUnits,V as createMeshSpaceVector,F as createRotationMatrix,L as createRotationMatrixFromHPR,I as createRotationMatrixFromOPK,Ee as extractHorizonAngles,W as getAffinesAndFocalLength,xe as getImageToWorldPanoramicProperties,ye as getImageToWorldProperties,le as getInitialAngle,Se as getUpdateElevationProps,he as getWebMercatorScalingFactor,K as getWorldToImageProperties,Ce as hasAngles,Z as hasHeadingPitchRoll,X as hasOmegaPhiKappa,q as isUpdateElevationWithElevationSampler,J as isUpdateElevationWithElevationSource,Y as isUpdateUsingConstantElevation,G as isValidAffines,A as linearEquationSolve,oe as ltpToGeographic,U as or,de as pointToArray,O as projectiveTransform,we as reducerFn,ue as rotatePixel,j as scaleAndAddWithFactor,M as scaleWithFactor,N as transformMat3,re as transformMat4,fe as validatePixelsToTransform,pe as validatePointsToTransform,me as validateRotationMatrix,ge as vecToPoint};
|
|
2
|
+
import{rad2deg as e,deg2rad as t}from"../../../core/mathUtils.js";import{create as n}from"../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{create as r,fromValues as i}from"../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{zeros as a,create as o}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{fromArray as s}from"../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{transpose as c}from"../../../core/libs/gl-matrix-2/math/mat3.js";import{invertOrIdentity as l,mul as u}from"../../../core/libs/gl-matrix-2/math/mat4.js";import{scale as d,sub as f,add as p}from"../../../core/libs/gl-matrix-2/math/vec3.js";import{isSerializable as m}from"../../../core/support/jsonUtils.js";import h from"../../../geometry/Point.js";import{projectAsync as g}from"../../../geometry/projectionUtils.js";import{earth as _}from"../../../geometry/support/Ellipsoid.js";import{isWebMercator as v}from"../../../geometry/support/spatialReferenceUtils.js";import{a as y}from"../../../chunks/vec3.js";import{isConstantElevation as b,ConstantElevation as x,isElevationSource as S}from"../core/ElevationSourceDefinitions.js";import{getMetersPerUnitOfSR as C}from"../core/utils.js";import{createRotationMatrix as w,defaultAxisRotationInfo as T,createRotationMatrixFromHPR as E}from"./rotationUtils.js";import{getElevationSampler as ee}from"./updateElevationUtils.js";import{isNumber as D}from"../../../support/guards.js";import{defaultImageSphereSize as O}from"../../../widgets/PanoramicViewer/constants.js";function k(e,t,n){let[i,a,o,s]=t,[c,d,f,p]=n;A(i,a,o,s);let m=A(c,d,f,p),h=j(i,a,o,s),g=j(c,d,f,p),_=l(r(),h),[v,y,b,x]=ne(e,u(r(),_,g));return[v/x,y/x,m?0:b/x]}function A(e,t,n,r){return e[2]===0&&t[2]===0&&n[2]===0&&r[2]===0&&(e[2]=t[2]=n[2]=r[2]=1,!0)}function te(e){return e===0?1:e}function ne(e,t){let[n,r,i]=e,a=[0,0,0,0];return a[0]=n*t[0]+r*t[1]+i*t[2]+t[3],a[1]=n*t[4]+r*t[5]+i*t[6]+t[7],a[2]=n*t[8]+r*t[9]+i*t[10]+t[11],a[3]=te(n*t[12]+r*t[13]+i*t[14]+t[15]),a}function j(e,t,n,a){let o=F(s([...a,1]),l(Array(16),i(e[0],t[0],n[0],0,e[1],t[1],n[1],0,e[2],t[2],n[2],0,1,1,1,1))),c=o[0],u=o[1],d=o[2],f=r();return f[0]=c*e[0],f[1]=u*t[0],f[2]=d*n[0],f[3]=0,f[4]=c*e[1],f[5]=u*t[1],f[6]=d*n[1],f[7]=0,f[8]=c*e[2],f[9]=u*t[2],f[10]=d*n[2],f[11]=0,f[12]=c,f[13]=u,f[14]=d,f[15]=1,f}function M(e,t,n,r,i=a()){return i[0]=e[0]+t[0]*n,i[1]=e[1]+t[1]*n,i[2]=e[2]+t[2]*(n/r),i}function N(e,t,n){let r=a();return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*(t/n),r}function P(e,t){let[n,r,i]=e,o=a();return o[0]=n*t[0]+r*t[3]+i*t[6],o[1]=n*t[1]+r*t[4]+i*t[7],o[2]=n*t[2]+r*t[5]+i*t[8],o}function F(e,t){let[n,r,i,a]=e,o=[,,,,];return o[0]=n*t[0]+r*t[1]+i*t[2]+a*t[3],o[1]=n*t[4]+r*t[5]+i*t[6]+a*t[7],o[2]=n*t[8]+r*t[9]+i*t[10]+a*t[11],o[3]=n*t[12]+r*t[13]+i*t[14]+a*t[15],o}function I(e,t=!0){return w(e,T.OPK,t)}function re(e,n,r){let i=Math.sin(t(r)),a=Math.cos(t(r)),o=[[e,0],[e,n],[0,n]];o.forEach((e,t)=>{o[t]=[a*e[0]-i*e[1],i*e[0]+a*e[1]]});let s={xmin:Math.min(0,o[0][0],o[1][0],o[2][0]),xmax:Math.max(0,o[0][0],o[1][0],o[2][0]),ymin:Math.min(0,o[0][1],o[1][1],o[2][1]),ymax:Math.max(0,o[0][1],o[1][1],o[2][1])};return{hfov:Math.abs(s.xmax-s.xmin),vfov:Math.abs(s.ymax-s.ymin)}}function ie(n,r){let i=Number(n[0]),a=Number(n[1]),o=Number(n[2]),[s,c,l,u]=r,d=t(s),f=t(c),p=l/Math.sqrt(1-u*Math.sin(d)**2),m=i/p,h=a/p,g=o/p,_=Math.cos(d)-Math.sin(d)*h+Math.cos(d)*g,v=Math.sin(d)+Math.cos(d)*h+Math.sin(d)*g,y=Math.sqrt(_**2+m**2),b=u*p*Math.sin(d),x=(e,t=5)=>{if(t===0)return e;let n=x(e,t-1);return Math.atan(v/y-(b-u*(l/Math.sqrt(1-u*Math.sin(n)**2))*Math.sin(n))/(p*y))},S=x(d),C=Math.atan(i/(p*_))+f,w=e(S);return[e(C),w,i/(Math.cos(S)*Math.sin(C-f))-l/Math.sqrt(1-u*Math.sin(S)**2)]}function L(e,t,n){let r=360/t,i=180/n,a=e.x-t/2,o=e.y-n/2;return{heading:a*r,pitch:90-o*i}}function ae(e,t,n,r,i=O/2){let{heading:a,pitch:o}=z(e,i),s=r?$(a,o,r):[a,o];return{heading:a,pitch:o,...R(s[0],s[1],t,n)}}function R(e,t,n,r){let i=360/n,a=180/r,o=e%360,s=o<-180?o+360:o>180?o-360:o;return{x:n/2+s/i,y:r-t/a}}function z(t,n){let r=e(Math.acos(-t.z/n));return{heading:e(Math.atan2(t.x,t.y)),pitch:r}}function B(e,n){return[Math.sin(t(e))*Math.sin(t(n)),Math.cos(t(e))*Math.sin(t(n)),Math.cos(t(180-n))]}function V(e,t,n,r=O/2){let i=n?$(e,t,n,!0):[e,t];return d(o(),B(i[0],i[1]),r)}function oe(e,t,n,r,i=O/2){let{heading:a,pitch:o}=L(e,t,n);return V(a,o,r,i)}async function se(t,n,r){let i=await g(n,t.spatialReference,r),a=e(Math.atan2(i.y-t.y,i.x-t.x));return a=a>=0&&a<=90?90-a:a>90&&a<=180?360-a+90:90+Math.abs(a),a}function ce(e,t,n){let r=Math.cos(n),i=Math.sin(n),a=[1,0,0,1,0,0],o=a[0]*r+a[2]*i,s=a[1]*r+a[3]*i,c=-a[0]*i+a[2]*r,l=-a[1]*i+a[3]*r;return a[0]=o,a[1]=s,a[2]=c,a[3]=l,[e*a[0]+t*a[2]+a[4],e*a[1]+t*a[3]+a[5]]}const le=e=>e.toArray(),H=(...e)=>e.some(e=>e);function ue(e,t){if(H(e.length===0,e.some(({x:e,y:t})=>H(e==null,t==null)),!t.hasZ))throw Error(`Input pixels must have x, y and camera location must have z value`)}function de(e,t){if(e.some(e=>e.z==null)||t.z==null)throw Error(`Input points and camera location must have z value`)}function fe(e){if(e?.length!==9)throw Error(`Rotation matrix is not provided or is not a valid 3x3 matrix`)}function pe(e,t){return v(t)?1/Math.cos(Math.PI/2-2*Math.atan(Math.exp(-1*e/_.radius))):1}const me=e=>t=>new h({x:t[0],y:t[1],z:t[2],spatialReference:e});function he(e,t,n,r){return[[-t,-t],[+t,-t],[+t,+t],[-t,+t]].map(([t,i])=>k(y(a(),n,[t,i,0]),r,e))}function U({a0:e,a1:t,a2:n,b0:r,b1:i,b2:a},o,s,c){let l=[e??o/2-.5,t,n??0,r??s/2-.5,i??0,a].map(ge);return c!=null&&W(l)?{affines:l,focalLength:c}:{affines:[o/2-.5,1,0,s/2-.5,0,-1]}}function ge(e,t){if(e==null)return null;let n=parseFloat(`${e}`);return isNaN(n)?null:n}function W(e){return e[1]!=null&&e[5]!=null}function _e(e,t,n){let{cameraHeight:r,cameraPitch:i,cameraRoll:a,elevation:o,farDistance:s,horizontalFieldOfView:c,location:l,verticalFieldOfView:u}=Z(e,e.location.spatialReference),d=o??(l.z??0)-r;return{...G(e,t,n),averageElevation:d,cameraPitch:i,cameraRoll:a??0,farDistance:s,horizontalFieldOfView:c,verticalFieldOfView:u}}function ve(e,t,n,r){return Y(r)?I([r.omega,r.phi,r.kappa]):X(r)?E([r.heading,r.pitch,r.roll]):E([e,t,n??0])}function ye(e,t,n){let{cameraHeading:r,cameraHeight:i,farDistance:a,horizontalFieldOfView:o,location:s,verticalFieldOfView:c}=Z(e,e.location.spatialReference),l=(s.z??0)-i,u=-r,d=0,f=0;if(e?.matrix){let{matrix:t}=e;[d,f,u]=Q(t)}return{averageElevation:l,cameraLocation:s,cameraHeading:r,farDistance:a,horizontalFieldOfView:o,imageHeight:n,imageWidth:t,verticalFieldOfView:c,horizonYaw:u,horizonPitch:d,horizonRoll:f}}function G(e,t,n){let{a0:r,a1:i,a2:a,b0:o,b1:s,b2:c,cameraHeading:l,cameraOrientation:u,cameraPitch:d,cameraRoll:f,focalLength:p,horizontalFieldOfView:m,location:h,matrix:g,principalX:_,principalY:v,radial:y,tangential:b,verticalFieldOfView:x}=e,{affines:S,focalLength:C}=U({a0:r,a1:i,a2:a,b0:o,b1:s,b2:c},t,n,p),w=g??ve(l,d,f,u),T=_!=null&&v!=null?[_,v]:void 0;return{affineTransformations:u?.affineTransformations??S,cameraLocation:h.clone(),focalLength:u?.focalLength??C,horizontalFieldOfView:m,imageHeight:n,imageWidth:t,principalOffsetPoint:u?.principalOffsetPoint??T,radialDistortionCoefficients:u?.radialDistortionCoefficients??y,rotationMatrix:w,tangentialDistortionCoefficients:u?.tangentialDistortionCoefficients??b,verticalFieldOfView:x}}const K=e=>e!=null&&`elevationSample`in e&&e.elevationSample!=null,q=e=>S(e?.elevationSource)&&e?.extent!=null,J=e=>b(e?.elevationSource),be=async(e,t,n,r,i)=>{let a=C(e),o=t-n/a;return K(r)?r:J(r)?(r.elevationSource=new x({constantElevation:r.elevationSource.constantElevation/a}),r):q(r)?{elevationSample:await ee({...m(r.elevationSource)?r.elevationSource.toJSON():r.elevationSource,extent:r.extent},i),elevationSource:new x({constantElevation:o})}:{averageGroundElevation:o,spatialReference:e}},xe=e=>D(e?.heading)&&D(e?.pitch),Se=(e,t)=>[[-e,-t],[e,-t],[e,t],[-e,t]];function Ce(e){let{cameraLocation:r,farDistance:i,horizontalFieldOfView:o,rotationMatrix:s,scalingFactor:l,verticalFieldOfView:u}=e,d=n();c(d,s);let m=2*Math.tan(t(u)/2)*i*l,h=2*Math.tan(t(o)/2)*i*l,g=P([0,0,-1],d),_=M([r.x,r.y,r.z],g,e.farDistance*l,l),v=P([0,1,0],d),y=P([1,0,0],d),b=N(v,m/2,l),x=N(y,h/2,l),S=f(a(),b,x),C=p(a(),b,x);return[p(a(),_,S),p(a(),_,C),f(a(),_,S),f(a(),_,C)]}const Y=e=>e?.type===2,X=e=>e?.type===1;function Z(e,t,n=!0){let r=C(t),i=n?e.clone():e;return i.cameraHeight/=r,i.farDistance/=r,i.nearDistance/=r,b(i.elevationSource)&&(i.elevationSource.constantElevation/=r),i}function Q(t){return[e(Math.asin(-t[6])),e(Math.atan(t[7]/t[8])),e(Math.atan2(t[3],t[0]))]}function $(e,t,n,r=!1){return we(B(e,t),n,r)}function we(t,r,i=!1){let a=i?c(n(),w(r,T.YPR)):w(r,T.YPR),o=t[0]*a[0]+t[1]*a[1]+t[2]*a[2],s=t[0]*a[3]+t[1]*a[4]+t[2]*a[5],l=t[0]*a[6]+t[1]*a[7]+t[2]*a[8],u=e(Math.acos(-l));return[e(Math.atan2(o,s)),u]}export{$ as adjustHorizonAngles,we as adjustHorizonAnglesVec3,Ce as computeFarplaneVertices,re as computeHFOVAndVFOV,he as computeNewReferenceCoordinates,V as convertHeadingPitchToSphereVertex,R as convertOrientationToPixelLocation,oe as convertPixelLocationToSphereVertex,L as convertPixelToHeadingPitch,z as convertSphereVertexToOrientation,ae as convertSphereVertexToPixelLocation,Z as convertToSRUnits,B as createMeshSpaceVector,w as createRotationMatrix,E as createRotationMatrixFromHPR,I as createRotationMatrixFromOPK,Q as extractHorizonAngles,U as getAffinesAndFocalLength,ye as getImageToWorldPanoramicProperties,_e as getImageToWorldProperties,se as getInitialAngle,be as getUpdateElevationProps,pe as getWebMercatorScalingFactor,G as getWorldToImageProperties,xe as hasAngles,X as hasHeadingPitchRoll,Y as hasOmegaPhiKappa,K as isUpdateElevationWithElevationSampler,q as isUpdateElevationWithElevationSource,J as isUpdateUsingConstantElevation,W as isValidAffines,j as linearEquationSolve,ie as ltpToGeographic,H as or,le as pointToArray,k as projectiveTransform,Se as reducerFn,ce as rotatePixel,M as scaleAndAddWithFactor,N as scaleWithFactor,P as transformMat3,F as transformMat4,ue as validatePixelsToTransform,de as validatePointsToTransform,fe as validateRotationMatrix,me as vecToPoint};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{saveAs as e,save as t}from"./utils.js";import{
|
|
2
|
+
import{saveAs as e,save as t}from"./utils.js";import{removeTypeKeyword as n,typeKeyword as r,getWGS84ExtentForItem as i,toggleTypeKeyword as a}from"../../portal/support/portalItemUtils.js";const o=`Parquet Feature Layer`;function s(e){return{isValid:e.type===`parquet`,errorMessage:`Layer.type should be 'parquet'`}}function c(e){let t=e.layerJSON;return Promise.resolve(t&&Object.keys(t).length?t:null)}async function l(e,t){t.extent||await d(e,t),f(e,t)}async function u(e,t){t.title||=e.title,await d(e,t),n(t,r.METADATA),f(e,t)}async function d(e,t){t.extent=e.fullExtent?await i(e.fullExtent):null}function f(e,t){a(t,r.CHARTS,!!e.charts?.length)}async function p(e,n){return t({layer:e,itemType:o,validateLayer:s,createItemData:c,errorNamePrefix:`parquet-layer-save`,setItemProperties:l},n)}async function m(t,n,r){return e({layer:t,itemType:o,validateLayer:s,createItemData:c,errorNamePrefix:`parquet-layer-save-as`,newItem:n,setItemProperties:u},r)}export{p as save,m as saveAs};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import e from"../../request.js";import{clone as t}from"../../core/lang.js";import n from"../../core/Logger.js";import{throwIfAborted as r}from"../../core/promiseUtils.js";import{normalize as i,removeFile as a,getAppBaseUrl as o,removeTrailingSlash as s,addQueryParameters as c,isProtocolRelative as l,isAbsolute as u,join as d}from"../../core/urlUtils.js";import{wgs84 as
|
|
2
|
+
import e from"../../request.js";import{clone as t}from"../../core/lang.js";import n from"../../core/Logger.js";import{throwIfAborted as r}from"../../core/promiseUtils.js";import{normalize as i,removeFile as a,getAppBaseUrl as o,removeTrailingSlash as s,addQueryParameters as c,isProtocolRelative as l,isAbsolute as u,join as d}from"../../core/urlUtils.js";import f from"../../geometry/SpatialReference.js";import{wgs84 as p,webMercator as m}from"../../geometry/support/spatialReferenceUtils.js";import{geographicToWebMercator as h}from"../../geometry/support/webMercatorUtils.js";import g from"./LOD.js";import _ from"../../views/2d/engine/vectorTiles/style/GeoJSONVectorTileSource.js";import{createTileInfo as v}from"../../views/2d/engine/vectorTiles/style/geoJSONVectorTileUtils.js";import y from"../../views/2d/engine/vectorTiles/style/RemoteVectorTileSource.js";async function b(e,t){let n={source:null,sourceBase:null,sourceUrl:null,validatedSource:null,style:null,styleBase:null,styleUrl:null,sourceNameToSource:{},primarySourceName:``,spriteFormat:`png`},[r,i]=typeof e==`string`?[e,null]:[null,e.jsonUrl];return await S(n,`esri`,e,i,t),{layerDefinition:n.validatedSource,url:r,serviceUrl:n.sourceUrl,style:n.style,styleUrl:n.styleUrl,spriteUrl:n.style&&n.style.sprite&&x(n.styleBase,n.style.sprite),spriteFormat:n.spriteFormat,glyphsUrl:n.style&&n.style.glyphs&&x(n.styleBase,n.style.glyphs),sourceNameToSource:n.sourceNameToSource,primarySourceName:n.primarySourceName}}function x(...e){let t;for(let n of e)n!=null&&(l(n)?t&&=t.split(`://`)[0]+`:`+n.trim():t=u(n)?n:d(t,n));return t?s(t):void 0}async function S(t,n,a,o,s){r(s);let c,l,u;if(typeof a==`string`){let t=i(a);u=await e(t,{...s,responseType:`json`,query:{f:`json`,...s?.query}}),u.ssl&&(c&&=c.replace(/^http:/i,`https:`),l&&=l.replace(/^http:/i,`https:`)),c=t,l=t}else a!=null&&(u={data:a},c=a.jsonUrl||null,l=o);let d=u?.data;switch(d?.type){case`Feature`:case`FeatureCollection`:return t.sourceUrl=c||null,E(t,O(d),l,s)}if(w(d))return t.styleUrl=c||null,E(t,d,l,s);if(T(d))return t.primarySourceName?A(t,d,l,!1,n,s):(t.sourceUrl=c||null,C(d)&&t.style==null&&(n=`tilejson`),A(t,d,l,!0,n,s));throw Error(`You must specify the URL or the JSON for a service or for a style.`)}function C(e){return typeof e==`object`&&!!e&&`tilejson`in e&&e.tilejson!=null}function w(e){return!!e&&`sources`in e&&!!e.sources}function T(e){return!!e&&!w(e)}async function E(e,t,n,r){let i=n?a(n):o(),s=t.layers==null||t.layers.length===0,c=s?{...t,layers:[]}:t;e.styleBase=i,e.style=c,c[`sprite-format`]?.toLowerCase()===`webp`&&(e.spriteFormat=`webp`);let l=[];if(c.sources&&c.sources.esri&&c.sources.esri.type!==`geojson`){let t=c.sources.esri;t.url?await S(e,`esri`,x(i,t.url),void 0,r):l.push(S(e,`esri`,t,i,r))}for(let t of Object.keys(c.sources))t!==`esri`&&t!==`tilejson`&&c.sources[t].type===`vector`&&(c.sources[t].url?l.push(S(e,t,x(i,c.sources[t].url),void 0,r)):c.sources[t].tiles&&l.push(S(e,t,c.sources[t],i,r)));await Promise.all(l);for(let t of Object.keys(c.sources)){let n=c.sources[t];if(n.type===`geojson`){let a=await D(e,t,n,i,r);s&&c.layers.push(...k(t,a.geometryTypes))}}}async function D(e,t,n,r,i){if(n.data==null)throw Error(`GeoJSON source '${t}' must define a data property.`);let a={...n,type:`geojson`,data:typeof n.data==`string`?x(r,n.data):n.data},o=e.sourceNameToSource[e.primarySourceName],s=o?.tileInfo?.spatialReference,c=s?.isWGS84||s?.isWebMercator?o.tileInfo.clone():v(f.WGS84,a.maxzoom),l=a.maxzoom??22;for(let e=c.lods[c.lods.length-1];e.level<l;)e=new g({level:e.level+1,resolution:e.resolution/2,scale:e.scale/2}),c.lods.push(e);let u=c.spatialReference.isWebMercator?{xmin:-20037507.067161843,ymin:-20037507.067161843,xmax:20037507.067161843,ymax:20037507.067161843,spatialReference:c.spatialReference.toJSON()}:{xmin:-180,ymin:-90,xmax:180,ymax:90,spatialReference:{wkid:4326}},d={capabilities:`TilesOnly`,tileInfo:c.toJSON(),fullExtent:u,initialExtent:u,minScale:0,maxScale:0},p=await _.create(t,r,d,a,i);return j(e,t,n,d,p,!e.primarySourceName,r),p}function O(e){return{version:8,sprite:``,glyphs:``,sources:{geojson:{type:`geojson`,data:e}},layers:[]}}function k(e,t){return t.map(t=>{switch(t){case`polygon`:return{id:`${e}_polygon`,type:`fill`,source:e,filter:[`==`,`$type`,`Polygon`],paint:{"fill-color":`#808080`}};case`line`:return{id:`${e}_line`,type:`line`,source:e,filter:[`==`,`$type`,`LineString`],paint:{"line-color":`#808080`,"line-width":1}};case`point`:return{id:`${e}_point`,type:`circle`,source:e,filter:[`==`,`$type`,`Point`],paint:{"circle-color":`#808080`,"circle-radius":3}}}})}async function A(e,t,n,r,i,a){let l=n?s(n)+`/`:o(),u=M(t,e);if(j(e,i,t,u,new y(i,c(l,a?.query??{}),u),r,l),!C(e)&&`defaultStyles`in t&&!e.style){if(t.defaultStyles==null)throw Error();return typeof t.defaultStyles==`string`?S(e,``,x(l,t.defaultStyles,`root.json`),void 0,a):S(e,``,t.defaultStyles,x(l,`root.json`),a)}if(C(t)&&e.style==null&&u.defaultStyles)return S(e,``,u.defaultStyles,x(l,`root.json`),a)}function j(e,t,r,i,a,o,s){if(!o&&e.primarySourceName in e.sourceNameToSource){let r=e.sourceNameToSource[e.primarySourceName];if(!r.isCompatibleWith(a)){n.getLogger(`esri.layers.support.vectorTileLayerLoader`).warn(`Ignoring source '${t}' because its tiling scheme is incompatible with the primary source '${e.primarySourceName}'.`),a.destroy();return}a.fullExtent!=null&&(r.fullExtent==null?r.fullExtent=a.fullExtent.clone():r.fullExtent.union(a.fullExtent)),r.tileInfo&&a.tileInfo&&r.tileInfo.lods.length<a.tileInfo.lods.length&&(r.tileInfo=a.tileInfo)}o&&(e.sourceBase=s,e.source=r,e.validatedSource=i,e.primarySourceName=t),e.sourceNameToSource[t]=a}function M(e,n){if(N(e)){let t=e?.tileInfo;return t!=null&&(t.rows??=512,t.cols??=512),e}let r={xmin:-20037507.067161843,ymin:-20037507.067161843,xmax:20037507.067161843,ymax:20037507.067161843,spatialReference:{wkid:102100,latestWkid:3857}},i=null,a;if(C(e)){let{bounds:r,vector_layers:o}=e;if(r){let e=h({x:r[0],y:r[1],spatialReference:t(p)}),n=h({x:r[2],y:r[3],spatialReference:t(p)});i={xmin:e.x,ymin:e.y,xmax:n.x,ymax:n.y,spatialReference:t(m)}}if(o&&o.length>0)a={version:8,sprite:``,glyphs:``,sources:{tilejson:{type:`vector`,url:e.tilejson}},layers:P(o)};else if(n.style==null)throw Error(`The TileJSON source does not contain any vector_layers. This VectorTileLayer cannot be loaded.`)}i===null&&(i=r);let o=78271.51696400007,s=295828763.7957775,c=[],l=e.hasOwnProperty(`maxzoom`)&&e.maxzoom!=null?Math.abs(+e.maxzoom):22;for(let e=0;e<=l;e++)c.push({level:e,scale:s,resolution:o}),o/=2,s/=2;return{capabilities:`TilesOnly`,initialExtent:i,fullExtent:r,minScale:0,maxScale:0,tiles:e.tiles,tileInfo:{rows:512,cols:512,dpi:96,format:`pbf`,origin:{x:-20037508.342787,y:20037508.342787},lods:c,spatialReference:t(m)},defaultStyles:a}}function N(e){return e.hasOwnProperty(`tileInfo`)}function P(e){let t=[];for(let n of e)n.geometry_type?t.push(F(n.geometry_type.toLowerCase(),n,!1)):(t.push(F(`polygon`,n,!0)),t.push(F(`line`,n,!0)),t.push(F(`circle`,n,!0)));return t}function F(e,t,n){let{id:r,minzoom:i,maxzoom:a}=t,o={type:e===`polygon`||e===`polygons`?`fill`:e===`line`||e===`lines`?`line`:`circle`,id:r,source:`tilejson`,"source-layer":r,minzoom:i,maxzoom:a};switch(e){case`fill`:n&&(o.id+=`_polygon`,o.filter=`(["==", "$type", "Polygon"])`),o.paint={"fill-color":`#808080`};break;case`line`:n&&(o.id+=`_line`,o.filter=`(["==", "$type", "LineString"])`);break;case`circle`:n&&(o.id+=`_point`,o.filter=`(["==", "$type", "Point"])`)}return o}export{b as loadMetadata};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@arcgis/core",
|
|
3
|
-
"version": "6.0.0-next.
|
|
3
|
+
"version": "6.0.0-next.29",
|
|
4
4
|
"description": "ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ArcGIS",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
21
21
|
"dependencies": {
|
|
22
22
|
"@amcharts/amcharts5": "~5.21.5",
|
|
23
|
-
"@arcgis/toolkit": "6.0.0-next.
|
|
23
|
+
"@arcgis/toolkit": "6.0.0-next.29",
|
|
24
24
|
"@esri/arcgis-html-sanitizer": "~4.2.0-next.2",
|
|
25
25
|
"@esri/calcite-components": "^5.2.0",
|
|
26
26
|
"@vaadin/grid": "~25.3.5",
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import e from"../../../../core/Error.js";import{resolveTimeZone as t}from"../../../../intl/date.js";import{isTimeOnlyField as n,isDateField as r,isTimestampOffsetField as i,isDateOnlyField as a}from"../../../../layers/support/fieldUtils.js";import o from"../../../../rest/support/AttributeBinsQuery.js";import s from"../../../../rest/support/AutoIntervalBinParameters.js";import c from"../../../../rest/support/DateBinParameters.js";import l from"../../../../rest/support/FixedBoundariesBinParameters.js";import u from"../../../../rest/support/FixedIntervalBinParameters.js";import d from"../../../../rest/support/GenerateRendererParameters.js";import f from"../../../../rest/support/StatisticDefinition.js";import{getSQLFilterForNormalization as p,mergeWhereClauses as m,getRangeExpr as h}from"../../../statistics/support/utils.js";import{isAnyDateField as g}from"../../utils.js";import{getSQLExpressionForDateOrTimeField as _,getFieldExpr as v,updateQueryWithFeatureFilter as y,defaultNumBins as b,generateBinParams as x,getViewInfoParams as S}from"./utils.js";import{createClassBreaksDefinition as C}from"../../../../statistics/utils.js";const w=`countOFExpr`;function T(e,t,r){let i=e.valueExpression||e.sqlExpression,a=e.signal;if(!i){let{field:i,normalizationType:o,normalizationField:s}=e,c=i?t.getField(i):null,l=g(c)||n(c);return{sqlExpression:l?_(t,c):v({field:i,normalizationType:o,normalizationField:s,normalizationTotal:r,layer:t}),sqlWhere:l?null:e.sqlWhere||p({field:i,normalizationType:o,normalizationField:s}),filter:e.filter,signal:a}}return{valueExpression:e.valueExpression,sqlExpression:e.sqlExpression,sqlWhere:e.sqlWhere,filter:e.filter,signal:a}}async function E(e,t,n){let{field:r,normalizationType:i,normalizationField:a,signal:o}=e,s=p({field:r,normalizationType:i,normalizationField:a}),c=new d({classificationDefinition:C({field:r,normalizationType:i,normalizationField:a,classificationMethod:e.classificationMethod,standardDeviationInterval:e.standardDeviationInterval,definedInterval:e.definedInterval,breakCount:e.numBins||b}),where:m(s,n)});return t.generateRenderer(c,o).then(e=>{let{normalizationTotal:n,classBreaks:o}=e;return x({field:r,normalizationType:i,normalizationField:a,normalizationTotal:n,classBreaks:o,where:s,layer:t})})}async function D(t,r,i,o,d){let{field:f,sqlExpression:p,normalizationField:m,classificationMethod:g,normalizationType:_}=t,y=f?r.getField(f):null,x=n(y),S=a(y)||x,C=t.numBins||b;if(S){if(_||g)throw new e(`${r.adapterName}:not-supported`,`NormalizationType and classificationMethod are not supported for date-only and time-only fields`);let t=(o-i)/C/1e3,n=t/86400;return new c({field:f,expression:p,expressionValueType:p?`double`:void 0,interval:{unit:x?`seconds`:`days`,value:Math.ceil(x?t:n)},start:i,end:o})}if(g===`defined-interval`)return new u({field:f,expression:p,expressionValueType:p?`double`:void 0,normalizationField:m,normalizationTotal:d,normalizationType:_,interval:t.definedInterval??Math.ceil((o-i)/C),start:_?null:i,end:_?null:o,normalizationMinValue:_?i:null,normalizationMaxValue:_?o:null});if(g===`manual`)throw new e(`${r.adapterName}:not-supported`,`Layer does not support manual classificationMethod`);if(g===`natural-breaks`||g===`quantile`||g===`standard-deviation`){let n=v({field:f,normalizationField:m,normalizationTotal:d,normalizationType:_,layer:r}),a=await E(t,r,t.minValue!==null&&t.maxValue!==null?h(n,t.minValue,t.maxValue):void 0);if(!a.intervals)throw new e(`${r.adapterName}:invalid`,`Invalid intervals returned from generate renderer`);let o=[i,...a.intervals.map(e=>e[1])];return new l({field:_?null:f,expression:_?n:p,expressionValueType:p?`double`:void 0,boundaries:o})}return new s({field:f,normalizationField:m,normalizationTotal:d,normalizationType:_,expression:p,expressionValueType:p?`double`:void 0,numBins:C,start:_?null:i,end:_?null:o,normalizationMinValue:_?i:null,normalizationMaxValue:_?o:null})}function O(e,t,n,r){return n!=null&&r!=null?Promise.resolve({min:n,max:r}):t.summaryStatistics({...e,outStatisticTypes:{include:[`min`,`max`]}}).then(e=>({min:e.min,max:e.max}))}async function k(e,n,a,s){let{field:c,minValue:l,maxValue:u,filter:d,view:p}=e,h=c?n.getField(c):null,g=r(h)||i(h),_=T(e,n,a),{min:v,max:b}=await O(_,n,l,u);if(v==null||b==null)return{query:null,min:v,max:b};let x=new f({statisticType:`count`,outStatisticFieldName:w,onStatisticField:`1`}),{where:
|
|
2
|
+
import e from"../../../../core/Error.js";import{resolveTimeZone as t}from"../../../../intl/date.js";import{isTimeOnlyField as n,isDateField as r,isTimestampOffsetField as i,isDateOnlyField as a}from"../../../../layers/support/fieldUtils.js";import o from"../../../../rest/support/AttributeBinsQuery.js";import s from"../../../../rest/support/AutoIntervalBinParameters.js";import c from"../../../../rest/support/DateBinParameters.js";import l from"../../../../rest/support/FixedBoundariesBinParameters.js";import u from"../../../../rest/support/FixedIntervalBinParameters.js";import d from"../../../../rest/support/GenerateRendererParameters.js";import f from"../../../../rest/support/StatisticDefinition.js";import{getSQLFilterForNormalization as p,mergeWhereClauses as m,getRangeExpr as h}from"../../../statistics/support/utils.js";import{isAnyDateField as g}from"../../utils.js";import{getSQLExpressionForDateOrTimeField as _,getFieldExpr as v,updateQueryWithFeatureFilter as y,defaultNumBins as b,generateBinParams as x,getViewInfoParams as S}from"./utils.js";import{createClassBreaksDefinition as C}from"../../../../statistics/utils.js";const w=`countOFExpr`;function T(e,t,r){let i=e.valueExpression||e.sqlExpression,a=e.signal;if(!i){let{field:i,normalizationType:o,normalizationField:s}=e,c=i?t.getField(i):null,l=g(c)||n(c);return{sqlExpression:l?_(t,c):v({field:i,normalizationType:o,normalizationField:s,normalizationTotal:r,layer:t}),sqlWhere:l?null:e.sqlWhere||p({field:i,normalizationType:o,normalizationField:s}),filter:e.filter,signal:a}}return{valueExpression:e.valueExpression,sqlExpression:e.sqlExpression,sqlWhere:e.sqlWhere,filter:e.filter,signal:a}}async function E(e,t,n){let{field:r,normalizationType:i,normalizationField:a,signal:o}=e,s=p({field:r,normalizationType:i,normalizationField:a}),c=new d({classificationDefinition:C({field:r,normalizationType:i,normalizationField:a,classificationMethod:e.classificationMethod,standardDeviationInterval:e.standardDeviationInterval,definedInterval:e.definedInterval,breakCount:e.numBins||b}),where:m(s,n)});return t.generateRenderer(c,o).then(e=>{let{normalizationTotal:n,classBreaks:o}=e;return x({field:r,normalizationType:i,normalizationField:a,normalizationTotal:n,classBreaks:o,where:s,layer:t})})}async function D(t,r,i,o,d){let{field:f,sqlExpression:p,normalizationField:m,classificationMethod:g,normalizationType:_}=t,y=f?r.getField(f):null,x=n(y),S=a(y)||x,C=t.numBins||b;if(S){if(_||g)throw new e(`${r.adapterName}:not-supported`,`NormalizationType and classificationMethod are not supported for date-only and time-only fields`);let t=(o-i)/C/1e3,n=t/86400;return new c({field:f,expression:p,expressionValueType:p?`double`:void 0,interval:{unit:x?`seconds`:`days`,value:Math.ceil(x?t:n)},start:i,end:o})}if(g===`defined-interval`)return new u({field:f,expression:p,expressionValueType:p?`double`:void 0,normalizationField:m,normalizationTotal:d,normalizationType:_,interval:t.definedInterval??Math.ceil((o-i)/C),start:_?null:i,end:_?null:o,normalizationMinValue:_?i:null,normalizationMaxValue:_?o:null});if(g===`manual`)throw new e(`${r.adapterName}:not-supported`,`Layer does not support manual classificationMethod`);if(g===`natural-breaks`||g===`quantile`||g===`standard-deviation`){let n=v({field:f,normalizationField:m,normalizationTotal:d,normalizationType:_,layer:r}),a=await E(t,r,t.minValue!==null&&t.maxValue!==null?h(n,t.minValue,t.maxValue):void 0);if(!a.intervals)throw new e(`${r.adapterName}:invalid`,`Invalid intervals returned from generate renderer`);let o=[i,...a.intervals.map(e=>e[1])];return new l({field:_?null:f,expression:_?n:p,expressionValueType:p?`double`:void 0,boundaries:o})}return new s({field:f,normalizationField:m,normalizationTotal:d,normalizationType:_,expression:p,expressionValueType:p?`double`:void 0,numBins:C,start:_?null:i,end:_?null:o,normalizationMinValue:_?i:null,normalizationMaxValue:_?o:null})}function O(e,t,n,r){return n!=null&&r!=null?Promise.resolve({min:n,max:r}):t.summaryStatistics({...e,outStatisticTypes:{include:[`min`,`max`]}}).then(e=>({min:e.min,max:e.max}))}async function k(e,n,a,s){let{field:c,minValue:l,maxValue:u,filter:d,view:p}=e,h=c?n.getField(c):null,g=r(h)||i(h),_=T(e,n,a),{min:v,max:b}=await O(_,n,l,u);if(v==null||b==null)return{query:null,min:v,max:b};let x=n.objectIdField,S=new f({statisticType:`count`,outStatisticFieldName:w,onStatisticField:x&&n.getField(x)?x:`1`}),{where:C,timeExtent:E}=s||{},k=m(C,_.sqlWhere),A=new o({binParameters:await D(e,n,v,b,a),outStatistics:[S],binOrder:e.sortOrder,where:k,timeExtent:E,lowerBoundaryAlias:`lowerBoundary`,upperBoundaryAlias:`upperBoundary`,outTimeZone:p?.timeZone&&g?t(p.timeZone):null,returnAggregateIds:e.returnAggregateIds??void 0});return y(A,d),{query:A,min:v,max:b}}function A(e,t=!1){return typeof e==`string`?(t?new Date(`1970-01-01T${e}Z`):new Date(e)).getTime():e}function j(e,t,r){let i=n(t),a=e.features.map(e=>{let t={minValue:A(e.attributes.lowerBoundary,i),maxValue:A(e.attributes.upperBoundary,i),count:e.attributes[w]};return e.statisticsAggregatedIds&&(t.aggregateIds=e.statisticsAggregatedIds),t});return{...r,bins:a}}function M(e,t,n){let{valueExpression:r,view:i}=e,{featuresJSON:a,graphics:o,fieldInfos:s}=t,c={field:e.field,valueExpression:r,sqlExpression:e.sqlExpression,normalizationType:e.normalizationType,normalizationField:e.normalizationField,normalizationTotal:n,minValue:e.minValue,maxValue:e.maxValue,standardDeviationInterval:e.standardDeviationInterval,classificationMethod:e.classificationMethod,numBins:e.numBins};return r&&i&&(a||o)&&(c.viewInfoParams=S(i),c.timeZone=i.timeZone,c.fieldInfos=s),c}export{E as binParamsFromGenRend,A as formatHistogramBinValue,k as getAttributeBinsQuery,O as getDataRange,M as getHistogramAttributeDefinition,T as getQueryParamsForExpr,j as processQueryAttributeBinsResult};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{removeMaybe as e,abortMaybe as t}from"../../../../core/maybe.js";import{throwIfNotAbortError as n,throwIfAbortError as r,isAbortError as i,eachAlways as a}from"../../../../core/promiseUtils.js";import{addQueryParameters as o}from"../../../../core/urlUtils.js";import{open as s}from"../../../../core/workers.js";import c from"./SpriteMosaic.js";import l from"../../tiling/TileKey.js";class u{constructor(e,t,n,r,i){this._layer=e,this._styleRepository=t,this.devicePixelRatio=n,this._sourceDataMaxLOD=r,this._glyphMosaic=i,this._spriteMosaic=null,this._connection=null,this._spriteSourceAbortController=null,this._onClientConnectedHandle=null,this.type=`TileHandler2D`,this._startOptionsInputSignal=null,this._inputSignalEventListener=null}destroy(){this._onClientConnectedHandle=e(this._onClientConnectedHandle),this._connection?.close(),this._connection=null,this._styleRepository=null,this._layer=null,this._spriteMosaic?.destroy(),this._spriteMosaic=null,this._glyphMosaic=null,this._spriteSourceAbortController=t(this._spriteSourceAbortController),this._spriteSourcePromise=null,this._inputSignalEventListener&&this._startOptionsInputSignal?.removeEventListener(`abort`,this._inputSignalEventListener),this._startOptionsInputSignal=null,this._inputSignalEventListener=null}get spriteMosaic(){return this._spriteSourcePromise.then(()=>this._spriteMosaic)}get glyphMosaic(){return this._glyphMosaic}async start(t){this._requestSprite(t),this._baseUrl=this._getBaseUrl()??``,this._onClientConnectedHandle=e(this._onClientConnectedHandle);let r=s(`WorkerTileHandler`,{client:this,schedule:t.schedule,signal:t.signal});this._broadcastPromise=r;let i=await r;if(this._connection?.close(),this._connection=i,this._onClientConnectedHandle=i.onClientConnected(e=>{this._layer&&!this._connection.closed&&(e.invoke(`initializeGlyphWorker`).catch(e=>n(e)),e.invoke(`setStyle`,{style:this._layer.currentStyleInfo.style,sourceDataMaxLOD:this._sourceDataMaxLOD}).catch(e=>n(e)))}),this._layer&&!this._connection.closed){let e=i.broadcast(`setStyle`,{style:this._layer.currentStyleInfo.style,sourceDataMaxLOD:this._sourceDataMaxLOD});Promise.all(e).catch(e=>n(e))}}async openGlyphPorts(){let e=await this._glyphMosaic.openMessagePorts();return{result:e,transferList:e}}_requestSprite(e){this._spriteSourceAbortController?.abort();let t=new AbortController;this._spriteSourceAbortController=t;let n=e?.signal;this._inputSignalEventListener&&this._startOptionsInputSignal?.removeEventListener(`abort`,this._inputSignalEventListener),this._startOptionsInputSignal=null,n&&(this._inputSignalEventListener=d(t),n.addEventListener(`abort`,this._inputSignalEventListener,{once:!0}));let{signal:i}=t,a={...e,signal:i};this._spriteSourcePromise=this._layer.loadSpriteSource(this.devicePixelRatio,a),this._spriteSourcePromise.then(e=>{r(i),this._spriteMosaic=new c(1024,1024,250),this._spriteMosaic.setSpriteSource(e)})}async updateStyle(e){let t=[];for(let n of e)n.type===4?t.push({type:4,data:{spriteSource:null}}):t.push(n);return await this._broadcastPromise,this._broadcastPromise=Promise.all(this._connection.broadcast(`updateStyle`,t)),this._broadcastPromise}setSpriteSource(e){let t=new c(1024,1024,250);return t.setSpriteSource(e),this._spriteMosaic=t,this._spriteSourcePromise=Promise.resolve(e),this._spriteSourceAbortController=null,t}async setStyle(e,t,n){return await this._broadcastPromise,this._styleRepository=e,this._sourceDataMaxLOD=n,this._requestSprite(),this._baseUrl=this._getBaseUrl()??``,this._broadcastPromise=Promise.all(this._connection.broadcast(`setStyle`,{style:t,sourceDataMaxLOD:this._sourceDataMaxLOD})),this._broadcastPromise}async fetchTileData(e,t){let n=await this._getRefKeys(e,t);return this._getSourcesData(Object.keys(this._layer.sourceNameToSource),n,t)}async fetchTilePBFs(e){let t=Object.keys(this._layer.sourceNameToSource),n={},r=await this._getRefKeys(e,n),i=[],a=[];for(let e=0;e<r.length;e++)if(r[e].value==null||t[e]==null)a.push(null);else{let o=r[e].value,s=this._getTilePayload(o,t[e],n);s.then(e=>{i.push({...e,key:o})}),a.push(s)}return Promise.all(a).then(()=>i)}async parseTileData(e,t){let n=e&&e.data;if(!n)return null;let{sourceName2DataAndRefKey:r,transferList:i}=n;return Object.keys(r).length===0?null:this._broadcastPromise.then(()=>this._connection.invoke(`createTileAndParse`,{key:e.key.id,sourceName2DataAndRefKey:r,styleLayerUIDs:e.styleLayerUIDs,baseUrl:this._baseUrl},{...t,transferList:i}))}async getSprites(e){return await this._spriteSourcePromise,this._spriteMosaic.getSpriteItems(e)}async _getTilePayload(e,t,n){let r=l.pool.acquire(e.id),a=this._layer.sourceNameToSource[t],{level:o,row:s,col:c}=r;l.pool.release(r);try{return{protobuff:await a.requestTile(o,s,c,n),sourceName:t}}catch(e){if(i(e))throw e;return{protobuff:null,sourceName:t}}}async _getRefKeys(e,t){let n=this._layer.sourceNameToSource,r=[];for(let i in n){let a=n[i].getRefKey(e,t);r.push(a)}return a(r)}_getSourcesData(e,t,n){let r=[];for(let i=0;i<t.length;i++)if(t[i].value==null||e[i]==null)r.push(null);else{let a=t[i].value,o=this._getTilePayload(a,e[i],n);r.push(o)}return a(r).then(e=>{let n={},r=[];for(let i=0;i<e.length;i++){let a=e[i].value;if(a&&a.protobuff&&a.protobuff.byteLength>0){let e=t[i].value.id;n[a.sourceName]={refKey:e,protobuff:a.protobuff},r.push(a.protobuff)}}return{sourceName2DataAndRefKey:n,transferList:r}})}_getBaseUrl(){let e=this._layer.currentStyleInfo.glyphsUrl;return e&&o(e,{...this._layer.customParameters,token:this._layer.apiKey})}}function d(e){return()=>e.abort()}export{u as TileHandler};
|
|
2
|
+
import{removeMaybe as e,abortMaybe as t}from"../../../../core/maybe.js";import{throwIfNotAbortError as n,throwIfAbortError as r,isAbortError as i,eachAlways as a}from"../../../../core/promiseUtils.js";import{addQueryParameters as o}from"../../../../core/urlUtils.js";import{open as s}from"../../../../core/workers.js";import c from"./SpriteMosaic.js";import l from"../../tiling/TileKey.js";class u{constructor(e,t,n,r,i,a){this._layer=e,this._styleRepository=t,this.devicePixelRatio=n,this._sourceDataMaxLOD=r,this._glyphMosaic=i,this._getTileInfo=a,this._spriteMosaic=null,this._connection=null,this._spriteSourceAbortController=null,this._onClientConnectedHandle=null,this.type=`TileHandler2D`,this._startOptionsInputSignal=null,this._inputSignalEventListener=null}destroy(){this._onClientConnectedHandle=e(this._onClientConnectedHandle),this._connection?.close(),this._connection=null,this._styleRepository=null,this._layer=null,this._spriteMosaic?.destroy(),this._spriteMosaic=null,this._glyphMosaic=null,this._spriteSourceAbortController=t(this._spriteSourceAbortController),this._spriteSourcePromise=null,this._inputSignalEventListener&&this._startOptionsInputSignal?.removeEventListener(`abort`,this._inputSignalEventListener),this._startOptionsInputSignal=null,this._inputSignalEventListener=null}get spriteMosaic(){return this._spriteSourcePromise.then(()=>this._spriteMosaic)}get glyphMosaic(){return this._glyphMosaic}async start(t){this._requestSprite(t),this._baseUrl=this._getBaseUrl()??``,this._onClientConnectedHandle=e(this._onClientConnectedHandle);let r=s(`WorkerTileHandler`,{client:this,schedule:t.schedule,signal:t.signal});this._broadcastPromise=r;let i=await r;if(this._connection?.close(),this._connection=i,this._onClientConnectedHandle=i.onClientConnected(e=>{this._layer&&!this._connection.closed&&(e.invoke(`initializeGlyphWorker`).catch(e=>n(e)),e.invoke(`setStyle`,{style:this._layer.currentStyleInfo.style,sourceDataMaxLOD:this._sourceDataMaxLOD}).catch(e=>n(e)))}),this._layer&&!this._connection.closed){let e=i.broadcast(`setStyle`,{style:this._layer.currentStyleInfo.style,sourceDataMaxLOD:this._sourceDataMaxLOD});Promise.all(e).catch(e=>n(e))}}async openGlyphPorts(){let e=await this._glyphMosaic.openMessagePorts();return{result:e,transferList:e}}_requestSprite(e){this._spriteSourceAbortController?.abort();let t=new AbortController;this._spriteSourceAbortController=t;let n=e?.signal;this._inputSignalEventListener&&this._startOptionsInputSignal?.removeEventListener(`abort`,this._inputSignalEventListener),this._startOptionsInputSignal=null,n&&(this._inputSignalEventListener=d(t),n.addEventListener(`abort`,this._inputSignalEventListener,{once:!0}));let{signal:i}=t,a={...e,signal:i};this._spriteSourcePromise=this._layer.loadSpriteSource(this.devicePixelRatio,a),this._spriteSourcePromise.then(e=>{r(i),this._spriteMosaic=new c(1024,1024,250),this._spriteMosaic.setSpriteSource(e)})}async updateStyle(e){let t=[];for(let n of e)n.type===4?t.push({type:4,data:{spriteSource:null}}):t.push(n);return await this._broadcastPromise,this._broadcastPromise=Promise.all(this._connection.broadcast(`updateStyle`,t)),this._broadcastPromise}setSpriteSource(e){let t=new c(1024,1024,250);return t.setSpriteSource(e),this._spriteMosaic=t,this._spriteSourcePromise=Promise.resolve(e),this._spriteSourceAbortController=null,t}async setStyle(e,t,n){return await this._broadcastPromise,this._styleRepository=e,this._sourceDataMaxLOD=n,this._requestSprite(),this._baseUrl=this._getBaseUrl()??``,this._broadcastPromise=Promise.all(this._connection.broadcast(`setStyle`,{style:t,sourceDataMaxLOD:this._sourceDataMaxLOD})),this._broadcastPromise}async fetchTileData(e,t){let n=await this._getRefKeys(e,t);return this._getSourcesData(Object.keys(this._layer.sourceNameToSource),n,t)}async fetchTilePBFs(e){let t=Object.keys(this._layer.sourceNameToSource),n={},r=await this._getRefKeys(e,n),i=[],a=[];for(let e=0;e<r.length;e++)if(r[e].value==null||t[e]==null)a.push(null);else{let o=r[e].value,s=this._getTilePayload(o,t[e],n);s.then(e=>{i.push({...e,key:o})}),a.push(s)}return Promise.all(a).then(()=>i)}async parseTileData(e,t){let n=e&&e.data;if(!n)return null;let{sourceName2DataAndRefKey:r,transferList:i}=n;return Object.keys(r).length===0?null:this._broadcastPromise.then(()=>this._connection.invoke(`createTileAndParse`,{key:e.key.id,sourceName2DataAndRefKey:r,styleLayerUIDs:e.styleLayerUIDs,baseUrl:this._baseUrl},{...t,transferList:i}))}async getSprites(e){return await this._spriteSourcePromise,this._spriteMosaic.getSpriteItems(e)}async _getTilePayload(e,t,n){let r=l.pool.acquire(e.id),a=this._layer.sourceNameToSource[t],{level:o,row:s,col:c}=r;l.pool.release(r);try{return{protobuff:await a.requestTile(o,s,c,n,this._getTileInfo?.()),sourceName:t}}catch(e){if(i(e))throw e;return{protobuff:null,sourceName:t}}}async _getRefKeys(e,t){let n=this._layer.sourceNameToSource,r=[];for(let i in n){let a=n[i].getRefKey(e,t);r.push(a)}return a(r)}_getSourcesData(e,t,n){let r=[];for(let i=0;i<t.length;i++)if(t[i].value==null||e[i]==null)r.push(null);else{let a=t[i].value,o=this._getTilePayload(a,e[i],n);r.push(o)}return a(r).then(e=>{let n={},r=[];for(let i=0;i<e.length;i++){let a=e[i].value;if(a&&a.protobuff&&a.protobuff.byteLength>0){let e=t[i].value.id;n[a.sourceName]={refKey:e,protobuff:a.protobuff},r.push(a.protobuff)}}return{sourceName2DataAndRefKey:n,transferList:r}})}_getBaseUrl(){let e=this._layer.currentStyleInfo.glyphsUrl;return e&&o(e,{...this._layer.customParameters,token:this._layer.apiKey})}}function d(e){return()=>e.abort()}export{u as TileHandler};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{throwIfAborted as e,createAbortError as t}from"../../../../../core/promiseUtils.js";import{open as n}from"../../../../../core/workers.js";import r from"./VectorTileSource.js";import i from"../../../tiling/TileKey.js";class a extends r{static async create(t,r,i,s,c){if(s.cluster===!0)throw Error(`Clustered GeoJSON vector tile sources are not supported.`);if(s.data==null)throw Error(`GeoJSON source '${t}' must define a data property.`);let l=s.maxzoom??18,u=await n(`GeoJSONVectorTileSourceWorker`,{signal:c?.signal,strategy:`dedicated`}),d;try{d=await u.invoke(`initialize`,{definition:s,name:t,requestOptions:o(c)},{signal:c?.signal}),e(c)}catch(e){throw u.close(),e}return new a(t,r,i,u,s.minzoom??0,l,d.geometryTypes)}constructor(e,t,n,r,i,a,o){super(e,t,n),this._connection=r,this._minZoom=i,this._maxZoom=a,this.geometryTypes=o}destroy(){super.destroy(),this._connection?.close(),this._connection=null}async getRefKey(t,n){if(e(n),t.level<this._minZoom)return null;if(t.level<=this._maxZoom)return t;let r=t.level-this._maxZoom;return new i(this._maxZoom,t.row>>r,t.col>>r,t.world)}requestTile(n,r,i,a){return e(a),this._connection?this._connection.invoke(`requestTile`,{col:i,
|
|
2
|
+
import{throwIfAborted as e,createAbortError as t}from"../../../../../core/promiseUtils.js";import{open as n}from"../../../../../core/workers.js";import r from"./VectorTileSource.js";import i from"../../../tiling/TileKey.js";class a extends r{static async create(t,r,i,s,c){if(s.cluster===!0)throw Error(`Clustered GeoJSON vector tile sources are not supported.`);if(s.data==null)throw Error(`GeoJSON source '${t}' must define a data property.`);let l=s.maxzoom??18,u=await n(`GeoJSONVectorTileSourceWorker`,{signal:c?.signal,strategy:`dedicated`}),d;try{d=await u.invoke(`initialize`,{definition:s,name:t,requestOptions:o(c)},{signal:c?.signal}),e(c)}catch(e){throw u.close(),e}return new a(t,r,i,u,s.minzoom??0,l,d.geometryTypes)}constructor(e,t,n,r,i,a,o){super(e,t,n),this._connection=r,this._minZoom=i,this._maxZoom=a,this.geometryTypes=o,this.type=`geojson`}destroy(){super.destroy(),this._connection?.close(),this._connection=null}async getRefKey(t,n){if(e(n),t.level<this._minZoom)return null;if(t.level<=this._maxZoom)return t;let r=t.level-this._maxZoom;return new i(this._maxZoom,t.row>>r,t.col>>r,t.world)}requestTile(n,r,i,a,o=this.tileInfo){return e(a),this._connection?this._connection.invoke(`requestTile`,{col:i,row:r,origin:{x:o.origin.x,y:o.origin.y},tileSpan:o.size[0]*o.lodAt(n).resolution,spatialReference:o.spatialReference.toJSON()},a):Promise.reject(t())}}function o(e){if(!e)return{};let{signal:t,...n}=e;return n}export{a as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import e from"../../../../../request.js";import{throwIfAborted as t}from"../../../../../core/promiseUtils.js";import{fromValues as n}from"../../../../../geometry/support/aaBoundingRect.js";import{
|
|
2
|
+
import e from"../../../../../request.js";import{throwIfAborted as t}from"../../../../../core/promiseUtils.js";import{fromValues as n}from"../../../../../geometry/support/aaBoundingRect.js";import{isWebMercator as r,getInfo as i,webMercator as a,wgs84 as o}from"../../../../../geometry/support/spatialReferenceUtils.js";import{TileClipper as s}from"../../../../../geometry/support/TileClipper.js";import{convertFromGeometry as c,convertToGeometry as l,generalizeOptimizedGeometry as u,quantizeOptimizedGeometry as d}from"../../../../../layers/graphics/featureConversionUtils.js";import f from"../../../../../layers/graphics/OptimizedGeometry.js";import p from"../../../../../layers/graphics/data/FeatureStore.js";import{project as m}from"../../../../../layers/graphics/data/projectionSupport.js";import{validateGeoJSON as h,createOptimizedFeatures as g,getGeometryType as _}from"../../../../../layers/graphics/sources/geojson/geojson.js";import{encodeVectorTileFeatures as v}from"./encodeVectorTileFeatures.js";const y=4096,b=[{geometryType:`esriGeometryPolygon`,vectorTileGeometryType:3},{geometryType:`esriGeometryPolyline`,vectorTileGeometryType:2},{geometryType:`esriGeometryPoint`,vectorTileGeometryType:1},{geometryType:`esriGeometryMultipoint`,vectorTileGeometryType:1}];class x{constructor(){this._buffer=128,this._featureIds=new Map,this._name=``,this._stores=[],this._webMercatorStores=null,this._tolerance=.375}destroy(){for(let{store:e}of this._stores)e.clear();for(let{store:e}of this._webMercatorStores??[])e.clear();this._webMercatorStores=null,this._featureIds.clear(),this._stores.length=0}async initialize({definition:n,name:r,requestOptions:i},a={}){if(n.data==null)throw Error(`GeoJSON source '${r}' must define a data property.`);if(n.lineMetrics===!0)throw Error(`GeoJSON lineMetrics are not supported.`);if(n.promoteId&&n.generateId)throw Error(`GeoJSON promoteId and generateId cannot be used together.`);let o=typeof n.data==`string`?(await e(n.data,{...i,responseType:`json`,signal:a.signal})).data:n.data;t(a),h(o),this.destroy(),this._buffer=n.buffer??128,this._name=r,this._tolerance=n.tolerance??.375;let s=0;for(let{geometryType:e,vectorTileGeometryType:t}of b){let r=g(o,{geometryType:e,hasZ:!1}),i=S(o,e,n);if(r.length===0)continue;let a=new p({geometryType:e,hasM:!1,hasZ:!1}),c=[];for(let[e,t]of r.entries())t.geometry&&(t.objectId=s++,this._featureIds.set(t.objectId,i[e]??null),c.push(t));c.length>0&&(a.addMany(c),this._stores.push({geometryType:e,store:a,vectorTileGeometryType:t}))}return t(a),{geometryTypes:[`polygon`,`line`,`point`].filter(e=>this._stores.some(({vectorTileGeometryType:t})=>t===E(e)))}}requestTile(e,n={}){t(n);let r=this._getTileFeatures(e),i=r.length>0?v(this._name,new D(r),y):new ArrayBuffer(0);return t(n),{result:i,transferList:[i]}}_getStores(e){return r(e)?(this._webMercatorStores||=this._stores.map(({geometryType:e,store:t,vectorTileGeometryType:n})=>{let r=new p({geometryType:e,hasM:!1,hasZ:!1});return t.forEach(t=>{let n=C(t.geometry,e);if(n){let e=t.weakClone();e.geometry=n,r.add(e)}}),{geometryType:e,store:r,vectorTileGeometryType:n}}),this._webMercatorStores):this._stores}_getTileFeatures({col:e,row:t,origin:r,tileSpan:a,spatialReference:o}){let s=r.x+e*a,c=r.y-t*a,{valid:l}=i(o),u=l[1]-l[0],d=this._getStores(o),f=a/y,p=this._buffer*f,m=this._tolerance*f,h=[];for(let e of[-u,0,u]){let t=n(s-p-e,c-a-p,s+a+p-e,c+p),r={scale:[f,-f,1,1],translate:[s-e,c,0,0]};for(let{geometryType:e,store:n,vectorTileGeometryType:i}of d)n.forEachInBounds(t,t=>{let n=w(t,e,i,r,m,this._buffer);n&&h.push({attributes:t.attributes,geometry:n,id:this._featureIds.get(t.objectId),type:i})})}return h}}function S(e,t,n){let r=[],i=e.type===`FeatureCollection`?e.features:[e];for(let e=0;e<i.length;e++){let a=i[e];if(!a.geometry||_(a.geometry.type)!==t)continue;let o=n.promoteId?a.properties?.[n.promoteId]:n.generateId===!0?e:a.id;r.push(typeof o==`number`||typeof o==`string`?o:null)}return r}function C(e,t){return e?c(m(l(e,t,!1,!1),o,a))??null:null}function w(e,t,n,r,i,a){if(!e.geometry)return null;let o=i>0?u(e.geometry,t,i,!1,!1):e.geometry;return T(d(o,t,r,!1,!1,!0),n,a)}function T(e,t,n){if(!e)return null;let r=new s(0,0,0,8,n/8);if(r.setExtent(y),r.reset(t),t===1)for(let t=0;t<e.size;t++){let n=t*e.stride;r.moveTo(e.coords[n],e.coords[n+1])}else{let n=0;for(let i of e.lengths){r.moveTo(e.coords[n],e.coords[n+1]);for(let t=1;t<i;t++){let i=n+t*e.stride;r.lineTo(e.coords[i],e.coords[i+1])}t===3&&r.close(),n+=i*e.stride}}let i=r.result();if(!i)return null;let a=t===1?[i.length]:i.map(e=>e.length),o=[];for(let e of i)for(let t of e)o.push(t.x,t.y);return new f(a,o)}function E(e){switch(e){case`polygon`:return 3;case`line`:return 2;case`point`:return 1}}class D{constructor(e){this._features=e,this._index=-1,this._pathOffsets=[]}get _feature(){return this._features[this._index]}destroy(){}getAttributes(){return this._feature.attributes}getId(){return this._feature.id}getPathCount(){return this._feature.type===1?1:this._feature.geometry.lengths.length}getPathLength(e){return this._feature.type===1?this._feature.geometry.size:this._feature.geometry.lengths[e]}getType(){return this._feature.type}getX(e,t){return this._feature.geometry.coords[this._getCoordinateIndex(e,t)]}getY(e,t){return this._feature.geometry.coords[this._getCoordinateIndex(e,t)+1]}next(){return++this._index>=this._features.length?!1:(this._pathOffsets=O(this._feature.geometry),!0)}_getCoordinateIndex(e,t){return(this._feature.type===1?t:this._pathOffsets[e]+t)*this._feature.geometry.stride}}function O(e){let t=Array(e.lengths.length),n=0;for(let r=0;r<e.lengths.length;r++)t[r]=n,n+=e.lengths[r];return t}export{x as default};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
+
import{getScaleForResolution as e}from"../../../../../geometry/support/scaleUtils.js";import{getInfo as t,equals as n}from"../../../../../geometry/support/spatialReferenceUtils.js";import{project as r}from"../../../../../geometry/support/webMercatorUtils.js";import i from"../../../../../layers/support/TileInfo.js";import a from"../../../tiling/TileInfoViewPOT.js";function o(n,r=22){let a=t(n),o=n.isWGS84?360/512:78271.51696400007,s=n.isWGS84?e(o,n):295828763.7957775;return i.fromJSON({rows:512,cols:512,dpi:96,format:`pbf`,origin:{x:a.origin[0],y:a.origin[1]},spatialReference:n.toJSON(),lods:Array.from({length:r+1},(e,t)=>({level:t,resolution:o/2**t,scale:s/2**t}))})}function s(e,t){return n(e.tileInfo?.spatialReference,t)||l(e)&&(t.isWGS84||t.isWebMercator)}function c(e,t){let i=l(e)&&s(e,t)?o(t,e.tileInfo.lods.length-1):e.tileInfo,c=n(e.spatialReference,i.spatialReference)?e.fullExtent:r(e.fullExtent,i.spatialReference);return c&&i.spatialReference.isWebMercator&&e.spatialReference.isWGS84&&(c.ymin=Math.max(c.ymin,-i.origin.y),c.ymax=Math.min(c.ymax,i.origin.y)),new a(i,c)}function l(e){let t=Object.values(e.sourceNameToSource);return t.length>0&&t.every(e=>e.type===`geojson`)}export{o as createTileInfo,c as createTileInfoView,s as supportsSpatialReference};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{pt2px as e}from"../../../../../core/screenUtils.js";import{labelPlacementOffsetPadding as t}from"../definitions.js";import n from"./BoundingBox.js";import{serializeList as r,deserializeList as i}from"../util/serializationUtils.js";class a{constructor(e,t,n,r,i,a,o,s,c,l,u,d=[],f=0,p=0,m=[]){this.displayId=e,this.labelClassId=t,this.labelIdHash=n,this.hash=r,this.anchorX=i,this.anchorY=a,this.directionX=o,this.directionY=s,this.maxScale=c,this.minScale=l,this.referenceBounds=u,this.bounds=d,this.recordStart=f,this.recordCount=p,this.additionalRecordRanges=m,this.priority=0,this._colliders=null,this.referenceSymbolVVOffset=[0,0],this.uniqueSymbol=null,this.labelStoreId=null,this.selectedForRendering=!1,this._calloutCollisionBounds=null}get xTile(){return this.anchorX}get yTile(){return this.anchorY}colliders(n,r){if(!this._colliders||r!=null&&r!==this._collidersScale){if(!n||r==null)throw Error(`InternalError: Label collision context and view scale are required to compute colliders`);let i=n.attributeView,a=t,o=this.referenceBounds?.size??0,s=Math.round(e(o)),c=n.labelingCollisionInfos[0].vvEvaluators[0];if(this.referenceSymbolVVOffset=[0,0],c!=null){let e=c(i.getVisualVariableData(this.displayId,0),r);if(!isNaN(e)&&e!=null&&e!==1/0){o=e;let t=(o-s)/2;this.referenceSymbolVVOffset=[this.directionX*t,this.directionY*t]}}let l=this.minScale?n.tilingScheme.scaleToZoom(this.minScale):0,u=this.maxScale?n.tilingScheme.scaleToZoom(this.maxScale):25,d=e(this.referenceBounds?.offsetX??0)+this.directionX*(a+o/2),f=-e(this.referenceBounds?.offsetY??0)+this.directionY*(a+o/2);this._colliders=this.bounds.map(e=>({labelId:this.labelIdHash,xTile:this.anchorX,yTile:this.anchorY,dxPixels:e.x-e.halfWidth+d,dyPixels:e.y-e.halfHeight+f,hard:!0,partIndex:1,width:e.width+2,height:e.height+2,angle:0,xScreen:0,yScreen:0,dxScreen:0,dyScreen:0,enabled:!0,minLod:l,maxLod:u})),this._collidersScale=r}return this._colliders}get id(){return this.displayId}includeRecordRange(e,t){t!==0&&(e===this.recordStart+this.recordCount?this.recordCount+=t:this.additionalRecordRanges.push({recordStart:e,recordCount:t}))}includeCalloutCollisionBounds(e){let t=o(e);t&&(this._calloutCollisionBounds?this._calloutCollisionBounds.extend(t):(this._calloutCollisionBounds=t,this.bounds.push(t)),this.
|
|
2
|
+
import{pt2px as e}from"../../../../../core/screenUtils.js";import{labelPlacementOffsetPadding as t}from"../definitions.js";import n from"./BoundingBox.js";import{serializeList as r,deserializeList as i}from"../util/serializationUtils.js";class a{constructor(e,t,n,r,i,a,o,s,c,l,u,d=[],f=0,p=0,m=[]){this.displayId=e,this.labelClassId=t,this.labelIdHash=n,this.hash=r,this.anchorX=i,this.anchorY=a,this.directionX=o,this.directionY=s,this.maxScale=c,this.minScale=l,this.referenceBounds=u,this.bounds=d,this.recordStart=f,this.recordCount=p,this.additionalRecordRanges=m,this.priority=0,this._colliders=null,this.referenceSymbolVVOffset=[0,0],this.uniqueSymbol=null,this.labelStoreId=null,this.selectedForRendering=!1,this._calloutCollisionBounds=null}get xTile(){return this.anchorX}get yTile(){return this.anchorY}invalidateColliders(){this._colliders=null}colliders(n,r){if(!this._colliders||r!=null&&r!==this._collidersScale){if(!n||r==null)throw Error(`InternalError: Label collision context and view scale are required to compute colliders`);let i=n.attributeView,a=t,o=this.referenceBounds?.size??0,s=Math.round(e(o)),c=n.labelingCollisionInfos[0].vvEvaluators[0];if(this.referenceSymbolVVOffset=[0,0],c!=null){let e=c(i.getVisualVariableData(this.displayId,0),r);if(!isNaN(e)&&e!=null&&e!==1/0){o=e;let t=(o-s)/2;this.referenceSymbolVVOffset=[this.directionX*t,this.directionY*t]}}let l=this.minScale?n.tilingScheme.scaleToZoom(this.minScale):0,u=this.maxScale?n.tilingScheme.scaleToZoom(this.maxScale):25,d=e(this.referenceBounds?.offsetX??0)+this.directionX*(a+o/2),f=-e(this.referenceBounds?.offsetY??0)+this.directionY*(a+o/2);this._colliders=this.bounds.map(e=>({labelId:this.labelIdHash,xTile:this.anchorX,yTile:this.anchorY,dxPixels:e.x-e.halfWidth+d,dyPixels:e.y-e.halfHeight+f,hard:!0,partIndex:1,width:e.width+2,height:e.height+2,angle:0,xScreen:0,yScreen:0,dxScreen:0,dyScreen:0,enabled:!0,minLod:l,maxLod:u})),this._collidersScale=r}return this._colliders}get id(){return this.displayId}includeRecordRange(e,t){t!==0&&(e===this.recordStart+this.recordCount?this.recordCount+=t:this.additionalRecordRanges.push({recordStart:e,recordCount:t}))}includeCalloutCollisionBounds(e){let t=o(e);t&&(this._calloutCollisionBounds?this._calloutCollisionBounds.extend(t):(this._calloutCollisionBounds=t,this.bounds.push(t)),this.invalidateColliders())}includeCalloutPartCollisionBounds(e){let t=o(e);t&&!this.bounds.some(e=>e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height)&&(this.bounds.push(t),this.invalidateColliders())}serialize(e){e.push(this.displayId),e.push(this.labelClassId),e.push(this.labelIdHash),e.push(this.hash),e.push(this.recordStart),e.push(this.recordCount),e.push(this.additionalRecordRanges.length);for(let t of this.additionalRecordRanges)e.push(t.recordStart),e.push(t.recordCount);e.writeF32(this.anchorX),e.writeF32(this.anchorY),e.writeF32(this.directionX),e.writeF32(this.directionY),e.writeF32(this.maxScale),e.writeF32(this.minScale),this.referenceBounds?(e.writeF32(this.referenceBounds.size),e.writeF32(this.referenceBounds.offsetX),e.writeF32(this.referenceBounds.offsetY)):(e.writeF32(0),e.writeF32(0),e.writeF32(0)),r(e,this.bounds)}static deserialize(e){let t=e.readInt32(),r=e.readInt32(),o=e.readInt32(),s=e.readInt32(),c=e.readInt32(),l=e.readInt32(),u=e.readInt32(),d=[];for(let t=0;t<u;t++)d.push({recordStart:e.readInt32(),recordCount:e.readInt32()});let f=e.readF32(),p=e.readF32(),m=e.readF32(),h=e.readF32(),g=e.readF32(),_=e.readF32(),v=e.readF32(),y=e.readF32(),b=e.readF32(),x=i(e,n)??[];return new a(t,r,o,s,f,p,m,h,g,_,{size:v,offsetX:y,offsetY:b},x,c,l,d)}}function o(e){let t=e.xmax-e.xmin,r=e.ymax-e.ymin;return e.xmin==null||isNaN(e.xmin)||e.ymin==null||isNaN(e.ymin)||e.xmax==null||isNaN(e.xmax)||e.ymax==null||isNaN(e.ymax)||t<=0||r<=0?null:new n(e.xmin+t/2,-(e.ymin+r/2),t,r)}export{a as LabelMetric};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import e from"../../../../../core/Logger.js";import{labelAnchorStoreUnit as t,labelStoreUnit as n}from"../definitions.js";import{PixelType as r}from"../../../../webgl/enums.js";import i from"../../../../webgl/Texture.js";import{TextureDescriptor as a}from"../../../../webgl/TextureDescriptor.js";const o=()=>e.getLogger(`esri.views.2d.engine.webgl.collisions.LabelStore`);class s{constructor(){this._data=new Uint8Array(4096),this._anchors=new Float32Array(4096),this._dirtyStart=0,this._dirtyEnd=0,this._entries=new Map,this._freeIds=[],this._nextId=1,this._size=32,this._data[3]=255}get size(){return this._size}get usedMemory(){return this._data.byteLength+this._anchors.byteLength}destroy(){this._entries.size&&o().warn(`InternalError: Leaking label store entries`),this._texture?.dispose(),this._anchorTexture?.dispose(),this._texture=null,this._anchorTexture=null,this._entries.clear(),this._freeIds.length=0}acquire(e){if(e.labelStoreId!=null)return e.labelStoreId;let t=this._freeIds.pop()??this._nextId++;return this._ensureCapacity(t),this._entries.set(t,e),this._writeFeatureId(t,e.displayId),this._writeAnchor(t,e.anchorX,e.anchorY),this._data[t*4+3]=255,this._markDirty(t),e.labelStoreId=t,t}release(e){let t=e.labelStoreId;if(t!=null){if(this._entries.get(t)!==e)throw Error(`InternalError: expected label store entry`);this._entries.delete(t),this._data.fill(0,t*4,t*4+4),this._data[t*4+3]=255,this._anchors.fill(0,t*4,t*4+4),this._markDirty(t),e.labelStoreId=null,this._freeIds.push(t)}}setVisibility(e,t){let n=e.labelStoreId;if(n==null||this._entries.get(n)!==e)throw Error(`InternalError: expected label metric to have a store id`);let r=t?0:255,i=n*4+3;this._writeReferenceSymbolVVOffset(n,e.referenceSymbolVVOffset),this._data[i]!==r&&(this._data[i]=r,this._markDirty(n))}getVisibility(e){let t=e.labelStoreId;return t==null?255:this._data[t*4+3]}has(e){return e.labelStoreId!=null&&this._entries.get(e.labelStoreId)===e}getAnchor(e){if(!this._entries.has(e))return null;let t=e*4;return[this._anchors[t],this._anchors[t+1]]}getReferenceSymbolVVOffset(e){if(!this._entries.has(e))return null;let t=e*4;return[this._anchors[t+2],this._anchors[t+3]]}upload(e){let t=this._texture??this._createTexture(e,!1),n=this._anchorTexture??this._createTexture(e,!0);this._uploadDirty(t,n)}getTexture(e){let r=this._texture??this._createTexture(e,!1),i=this._anchorTexture??this._createTexture(e,!0);if(this._dirtyStart!==1/0)throw Error(`InternalError: expected label store to be uploaded before rendering`);return{labelStoreTexture:{texture:r,unit:n},labelAnchorStoreTexture:{texture:i,unit:t}}}_createTexture(e,t){let n=new a(this._size);n.wrapMode=33071,n.samplingMode=9728,n.pixelFormat=6408,n.dataType=t?r.FLOAT:r.UNSIGNED_BYTE;let o=new i(e,n,t?this._anchors:this._data);return t?this._anchorTexture=o:this._texture=o,o}_ensureCapacity(e){if(e<this._size*this._size)return;let t=this._size;for(;e>=t*t;)t*=2;let n=new Uint8Array(t*t*4);n.set(this._data),this._data=n;let r=new Float32Array(t*t*4);r.set(this._anchors),this._anchors=r,this._size=t,this._texture?.dispose(),this._anchorTexture?.dispose(),this._texture=null,this._anchorTexture=null,this._dirtyStart=0,this._dirtyEnd=e}_writeFeatureId(e,t){let n=e*4;this._data[n]=t&255,this._data[n+1]=t>>8&255,this._data[n+2]=t>>16&255,this._markDirty(e)}_writeAnchor(e,t,n){let r=e*4;this._anchors[r]=t,this._anchors[r+1]=n,this._markDirty(e)}_writeReferenceSymbolVVOffset(e,[t,n]){let r=e*4;(this._anchors[r+2]!==t||this._anchors[r+3]!==n)&&(this._anchors[r+2]=t,this._anchors[r+3]=n,this._markDirty(e))}_markDirty(e){this._dirtyStart=Math.min(this._dirtyStart,e),this._dirtyEnd=Math.max(this._dirtyEnd,e)}_uploadDirty(e,t){if(this._dirtyStart===1/0)return;let n=Math.floor(this._dirtyStart/this._size),r=Math.floor(this._dirtyEnd/this._size),i=n*this._size*4,a=(r+1)*this._size*4;e.updateData(0,0,n,this._size,r-n+1,this._data.subarray(i,a)),t.updateData(0,0,n,this._size,r-n+1,this._anchors.subarray(i,a)),this._dirtyStart=1/0,this._dirtyEnd=0}}export{s as LabelStore};
|
|
2
|
+
import e from"../../../../../core/Logger.js";import{labelAnchorStoreUnit as t,labelStoreUnit as n}from"../definitions.js";import{PixelType as r}from"../../../../webgl/enums.js";import i from"../../../../webgl/Texture.js";import{TextureDescriptor as a}from"../../../../webgl/TextureDescriptor.js";const o=()=>e.getLogger(`esri.views.2d.engine.webgl.collisions.LabelStore`);class s{constructor(){this._data=new Uint8Array(4096),this._anchors=new Float32Array(4096),this._dirtyStart=0,this._dirtyEnd=0,this._entries=new Map,this._freeIds=[],this._nextId=1,this._size=32,this._data[3]=255}get size(){return this._size}get usedMemory(){return this._data.byteLength+this._anchors.byteLength}destroy(){this._entries.size&&o().warn(`InternalError: Leaking label store entries`),this._texture?.dispose(),this._anchorTexture?.dispose(),this._texture=null,this._anchorTexture=null,this._entries.clear(),this._freeIds.length=0}acquire(e){if(e.labelStoreId!=null)return e.labelStoreId;let t=this._freeIds.pop()??this._nextId++;return this._ensureCapacity(t),this._entries.set(t,e),this._writeFeatureId(t,e.displayId),this._writeAnchor(t,e.anchorX,e.anchorY),this._data[t*4+3]=255,this._markDirty(t),e.labelStoreId=t,t}release(e){let t=e.labelStoreId;if(t!=null){if(this._entries.get(t)!==e)throw Error(`InternalError: expected label store entry`);this._entries.delete(t),this._data.fill(0,t*4,t*4+4),this._data[t*4+3]=255,this._anchors.fill(0,t*4,t*4+4),this._markDirty(t),e.labelStoreId=null,this._freeIds.push(t)}}invalidateColliders(){for(let e of this._entries.values())e.invalidateColliders()}setVisibility(e,t){let n=e.labelStoreId;if(n==null||this._entries.get(n)!==e)throw Error(`InternalError: expected label metric to have a store id`);let r=t?0:255,i=n*4+3;this._writeReferenceSymbolVVOffset(n,e.referenceSymbolVVOffset),this._data[i]!==r&&(this._data[i]=r,this._markDirty(n))}getVisibility(e){let t=e.labelStoreId;return t==null?255:this._data[t*4+3]}has(e){return e.labelStoreId!=null&&this._entries.get(e.labelStoreId)===e}getAnchor(e){if(!this._entries.has(e))return null;let t=e*4;return[this._anchors[t],this._anchors[t+1]]}getReferenceSymbolVVOffset(e){if(!this._entries.has(e))return null;let t=e*4;return[this._anchors[t+2],this._anchors[t+3]]}upload(e){let t=this._texture??this._createTexture(e,!1),n=this._anchorTexture??this._createTexture(e,!0);this._uploadDirty(t,n)}getTexture(e){let r=this._texture??this._createTexture(e,!1),i=this._anchorTexture??this._createTexture(e,!0);if(this._dirtyStart!==1/0)throw Error(`InternalError: expected label store to be uploaded before rendering`);return{labelStoreTexture:{texture:r,unit:n},labelAnchorStoreTexture:{texture:i,unit:t}}}_createTexture(e,t){let n=new a(this._size);n.wrapMode=33071,n.samplingMode=9728,n.pixelFormat=6408,n.dataType=t?r.FLOAT:r.UNSIGNED_BYTE;let o=new i(e,n,t?this._anchors:this._data);return t?this._anchorTexture=o:this._texture=o,o}_ensureCapacity(e){if(e<this._size*this._size)return;let t=this._size;for(;e>=t*t;)t*=2;let n=new Uint8Array(t*t*4);n.set(this._data),this._data=n;let r=new Float32Array(t*t*4);r.set(this._anchors),this._anchors=r,this._size=t,this._texture?.dispose(),this._anchorTexture?.dispose(),this._texture=null,this._anchorTexture=null,this._dirtyStart=0,this._dirtyEnd=e}_writeFeatureId(e,t){let n=e*4;this._data[n]=t&255,this._data[n+1]=t>>8&255,this._data[n+2]=t>>16&255,this._markDirty(e)}_writeAnchor(e,t,n){let r=e*4;this._anchors[r]=t,this._anchors[r+1]=n,this._markDirty(e)}_writeReferenceSymbolVVOffset(e,[t,n]){let r=e*4;(this._anchors[r+2]!==t||this._anchors[r+3]!==n)&&(this._anchors[r+2]=t,this._anchors[r+3]=n,this._markDirty(e))}_markDirty(e){this._dirtyStart=Math.min(this._dirtyStart,e),this._dirtyEnd=Math.max(this._dirtyEnd,e)}_uploadDirty(e,t){if(this._dirtyStart===1/0)return;let n=Math.floor(this._dirtyStart/this._size),r=Math.floor(this._dirtyEnd/this._size),i=n*this._size*4,a=(r+1)*this._size*4;e.updateData(0,0,n,this._size,r-n+1,this._data.subarray(i,a)),t.updateData(0,0,n,this._size,r-n+1,this._anchors.subarray(i,a)),this._dirtyStart=1/0,this._dirtyEnd=0}}export{s as LabelStore};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import t from"../../../Graphic.js";import has from"../../../core/has.js";import{clone as n}from"../../../core/lang.js";import r from"../../../core/Logger.js";import{destroyMaybe as i}from"../../../core/maybe.js";import{isAbortError as a}from"../../../core/promiseUtils.js";import{createScreenPoint as o,isScreenPoint as s,isScreenRect as c,isScreenPolygon as l,pt2px as u}from"../../../core/screenUtils.js";import{property as d,subclass as f}from"../../../core/accessorSupport/decorators.js";import{diff as p,hasDiff as m}from"../../../core/accessorSupport/diffUtils.js";import h from"../../../geometry/Point.js";import{fromValues as g,create as _}from"../../../geometry/support/aaBoundingRect.js";import{equals as v}from"../../../geometry/support/spatialReferenceUtils.js";import{isVectorTileGraphicOrigin as y}from"../../../graphic/isVectorTileGraphicOrigin.js";import b from"../../../graphic/VectorTileGraphicOrigin.js";import{tileSizeInTileUnits as x,tileSizeInPixels as S}from"../engine/vectorTiles/constants.js";import{TileHandler as C}from"../engine/vectorTiles/TileHandler.js";import{TileManager as w}from"../engine/vectorTiles/TileManager.js";import{VectorTile as T}from"../engine/vectorTiles/VectorTile.js";import{VectorTileContainer as E}from"../engine/vectorTiles/VectorTileContainer.js";import D from"../engine/vectorTiles/VectorTileFeatureIndex.js";import{isSearchCircleOverlappingSymbol as O,isSearchPolygonOverlappingSymbol as k}from"../engine/vectorTiles/decluttering/util.js";import A from"../engine/vectorTiles/style/StyleRepository.js";import{LayerView2D as j}from"./LayerView2D.js";import{getBbox as M,getMapPointsFromScreen as N}from"../support/hitTestUtils.js";import P from"../tiling/TileInfoViewPOT.js";import F from"../tiling/TileQueue.js";import I from"../../layers/VectorTileLayerView.js";import{TaskPriority as L}from"../../support/Scheduler.js";let R=class extends j(I){constructor(){super(...arguments),this._styleChanges=[],this._fetchQueue=null,this._parseQueue=null,this._tileHandlerPromise=null,this._isTileHandlerReady=!1,this._styeChanged=!1,this._spriteSourceChanged=!1}get fading(){return(this._vectorTileContainer?.fading||this._tileManager?.isFading())??!1}get hasVisibleFeatures(){let e=this._vectorTileContainer.children;for(let t of e)if(t.hasFeatures())return!0;return!1}get spriteSourceChanged(){return this._spriteSourceChanged}get styleChanged(){return this._styeChanged}async hitTest(e,t){let n=this._tileHandlerPromise,r=this._vectorTileContainer?.symbolFader;if(!n||!this._isTileHandlerReady||!r)return;await n;let i=[],a,d=c(t),f=l(t);if(d){let e=t;i=[o(e.x,e.y+e.height),o(e.x+e.width,e.y+e.height),o(e.x+e.width,e.y),o(e.x,e.y)],a=`rect`}else f?(i=t.map(e=>e),a=`polygon`):(i=[t],a=`point`);let p=has(`esri-vtl-search-tolerance`)??0,m=p>0?p:2.5,h=this.view.state,{rotation:_,pixelRatio:v}=this.view.state,y=u(m)*v,b=null,x=this._vectorTileContainer?.symbolRepository;x&&(b=x.querySymbols());let S=[];if(b)for(let e of b){let{styleLayerUID:t,vtlSymbol:n,tileKey:o}=e;a===`point`&&O(n,i[0],y,r.decluttererOffset)&&S.push({vtlSymbol:n,styleLayerUID:t,tileKey:o}),k(n,i,r.decluttererOffset)&&S.push({vtlSymbol:n,styleLayerUID:t,tileKey:o})}let C;if(s(t)){let e=[0,0],n=[0,0];h.toMap(e,t.x-y,t.y+y),h.toMap(n,t.x+y,t.y-y),C=g(Math.min(e[0],n[0]),Math.min(e[1],n[1]),Math.max(e[0],n[0]),Math.max(e[1],n[1]))}else{let e=i.map(({x:e,y:t})=>{let n=[0,0];return h.toMap(n,e,t),n});C=M([e])}let w=this._tileManager.getIntersectingTiles(C,S);if(S=S?.filter(e=>this._styleRepository.getStyleLayerVisibility(e.styleLayerUID)),(!w||w.length===0)&&S?.length===0)return null;let T=N(this.view,i),E=[],D=[];for(let e of w)E.push(this._queryTile(D,T,y,_,e,S?.filter(t=>t.tileKey.id===e.id),d?`rect`:f?`polygon`:`point`));return await Promise.all(E),D}update(e){this._tileHandlerPromise&&this._isTileHandlerReady&&(e.pixelRatio===this._tileHandler.devicePixelRatio?this._styleChanges.length>0?this._tileHandlerPromise=this._applyStyleChanges():(this._pauseQueues(),this._fetchQueue.state=e.state,this._parseQueue.state=e.state,this._tileManager.update(e)||this.requestUpdate(),this._resumeQueues()):(this._tileHandler.devicePixelRatio=e.pixelRatio,this._loadStyle()))}attach(){let{style:e}=this.layer.currentStyleInfo;this._styleRepository=new A(e),this._tileInfoView=new P(this.layer.tileInfo,this.layer.fullExtent),this._vectorTileContainer=new E(this._tileInfoView),this._tileHandler=new C(this.layer,this._styleRepository,window.devicePixelRatio||1,this.layer.tileInfo.lods.length-1,this.view.glyphMosaic()),this.container.addChild(this._vectorTileContainer),this._start(),this.addAttachHandles([this.layer.on(`paint-change`,e=>{if(this._styeChanged=!0,e.isDataDriven)this._styleChanges.push({type:0,data:e}),this.requestUpdate();else{let t=this._styleRepository,n=t.getLayerById(e.layer);if(!n)return;let r=n.type===3;t.setPaintProperties(e.layer,e.paint),r&&this._vectorTileContainer?.restartDeclutter(),this._vectorTileContainer?.requestRender()}}),this.layer.on(`layout-change`,e=>{let t=this._styleRepository,n=t.getLayerById(e.layer);if(!n)return;this._styeChanged=!0;let r=p(n.layout,e.layout);r!=null&&(m(r,`visibility`)&&z(r)===1?(t.setLayoutProperties(e.layer,e.layout),n.type===3&&this._vectorTileContainer?.restartDeclutter(),this._vectorTileContainer?.requestRender()):(this._styleChanges.push({type:1,data:e}),this.requestUpdate()))}),this.layer.on(`style-layer-visibility-change`,e=>{let t=this._styleRepository,n=t.getLayerById(e.layer);n&&(this._styeChanged=!0,t.setStyleLayerVisibility(e.layer,e.visibility),n.type===3&&this._vectorTileContainer?.restartDeclutter(),this._vectorTileContainer?.requestRender())}),this.layer.on(`style-layer-change`,e=>{this._styleChanges.push({type:2,data:e}),this._styeChanged=!0,this.requestUpdate()}),this.layer.on(`delete-style-layer`,e=>{this._styleChanges.push({type:3,data:e}),this._styeChanged=!0,this.requestUpdate()}),this.layer.on(`load-style`,()=>this._loadStyle()),this.layer.on(`spriteSource-change`,e=>{this._spriteSourceChanged=!0,this._styleChanges.push({type:4,data:e});let t=this._styleRepository.layers;for(let e of t)switch(e.type){case 3:e.getLayoutProperty(`icon-image`)&&this._styleChanges.push({type:1,data:{layer:e.id,layout:e.layout}});break;case 2:e.getPaintProperty(`line-pattern`)&&this._styleChanges.push({type:0,data:{layer:e.id,paint:e.paint,isDataDriven:e.isPainterDataDriven()}});break;case 1:e.getLayoutProperty(`fill-pattern`)&&this._styleChanges.push({type:0,data:{layer:e.id,paint:e.paint,isDataDriven:e.isPainterDataDriven()}})}this.requestUpdate()})])}detach(){this._stop(),this.container.removeAllChildren(),this._vectorTileContainer=i(this._vectorTileContainer),this._tileHandler=i(this._tileHandler)}viewChange(){this.requestUpdate()}moveEnd(){this.requestUpdate()}supportsSpatialReference(e){return v(this.layer.tileInfo?.spatialReference,e)}canResume(){let e=super.canResume(),{currentStyleInfo:t}=this.layer;if(e&&t?.layerDefinition){let n=this.view.scale,{minScale:r,maxScale:i}=t.layerDefinition;t?.layerDefinition&&(r&&r<n&&(e=!1),i&&i>n&&(e=!1))}return e}isUpdating(){return this.fading||!this._isTileHandlerReady}acquireTile(e){let t=this._createVectorTile(e);return this._updatingHandles.consumePromise(this._fetchQueue.push(t.key).then(e=>this._parseQueue.push({key:t.key,data:e})).then(e=>{t.once(`attach`,()=>this.requestUpdate()),t.setData(e),this.requestUpdate()}).catch(e=>{a(e)||r.getLogger(this).error(e)})),t}releaseTile(e){let t=e.key.id;this._fetchQueue.abort(t),this._parseQueue.abort(t),this.requestUpdate()}async doRefresh(){if(!this.attached)return;if(this.suspended){this._tileManager.clear(),this.requestUpdate();return}this._isTileHandlerReady=!1,this._pauseQueues(),this._clearQueues(),this._tileManager.clearCache(),this._resumeQueues();let e=this._vectorTileContainer.children,t=[];try{for(let n of e){let e=this._updatingHandles.addPromise(this._fetchQueue.push(n.key).then(e=>this._parseQueue.push({key:n.key,data:e})).then(e=>n.setData(e)).finally(()=>n.featureIndex=null));t.push(e)}await Promise.all(t)}catch(e){r.getLogger(this).error(`error refreshing vector-tiles layer-view`,e),this._resumeQueues(),this._isTileHandlerReady=!0}this._isTileHandlerReady=!0,this.requestUpdate()}_start(){if(this._stop(),this._tileManager=new w({acquireTile:e=>this.acquireTile(e),releaseTile:e=>this.releaseTile(e),tileInfoView:this._tileInfoView},this._vectorTileContainer),!this.layer.currentStyleInfo)return;let e=new AbortController,t=this._tileHandler.start({signal:e.signal}).then(()=>{this._fetchQueue=new F({tileInfoView:this._tileInfoView,process:(e,t)=>this._getTileData(e,t),concurrency:15,scheduler:this.scheduler,priority:L.MAPVIEW_FETCH_QUEUE}),this._parseQueue=new F({tileInfoView:this._tileInfoView,process:(e,t)=>this._parseTileData(e,t),concurrency:8,scheduler:this.scheduler,priority:L.MAPVIEW_VECTOR_TILE_PARSING_QUEUE}),this.requestUpdate(),this._isTileHandlerReady=!0});this._tileHandler.spriteMosaic.then(e=>{this._vectorTileContainer.setStyleResources(e,this._tileHandler.glyphMosaic,this._styleRepository,this._tileInfoView),this.requestUpdate()}),this._tileHandlerAbortController=e,this._tileHandlerPromise=t}_stop(){if(!this._tileHandlerAbortController||!this._vectorTileContainer)return;let e=this._tileHandlerAbortController;e&&e.abort(),this._tileHandlerPromise=null,this._isTileHandlerReady=!1,this._fetchQueue=i(this._fetchQueue),this._parseQueue=i(this._parseQueue),this._tileManager=i(this._tileManager),this._vectorTileContainer.removeAllChildren()}async _getTileData(e,t){return this._tileHandler.fetchTileData(e,t)}async _parseTileData(e,t){return this._tileHandler.parseTileData(e,t)}async _applyStyleChanges(){this._isTileHandlerReady=!1,this._pauseQueues(),this._clearQueues(),this._tileManager.clearCache();let e=this._styleChanges;try{await this._tileHandler.updateStyle(e)}catch(e){r.getLogger(this).error(`error applying vector-tiles style update`,e.message),this._resumeQueues(),this._isTileHandlerReady=!0}let t=this._styleRepository,n=new Set,i=new Set;for(let r of e){if(r.type!==3&&r.type!==2)continue;let e=r.type===2?r.data.layer.id:r.data.layer,a=t.getLayerById(e);a&&(n.add(a.uid),a.type===3&&i.add(a.uid))}let a=this._vectorTileContainer.children,o=this._vectorTileContainer?.symbolFader?.symbolRepository;o&&i.size>0&&o.deleteStyleLayers(Array.from(i));let s=new Set;if(e.forEach(e=>{let n;switch(e.type){case 0:t.setPaintProperties(e.data.layer,e.data.paint),n=e.data.layer;break;case 1:t.setLayoutProperties(e.data.layer,e.data.layout),n=e.data.layer;break;case 3:t.deleteStyleLayer(e.data.layer);return;case 2:t.setStyleLayer(e.data.layer,e.data.index),n=e.data.layer.id;break;case 4:this._vectorTileContainer.setSpriteMosaic(this._tileHandler.setSpriteSource(e.data.spriteSource))}if(n){let e=t.getLayerById(n);e&&s.add(e.uid)}}),n.size>0){let e=Array.from(n);this._vectorTileContainer.deleteStyleLayers(e);for(let t of a)t.deleteLayerData(e)}if(this._resumeQueues(),s.size>0){let e=Array.from(s),t=[];for(let n of a){let r=this._updatingHandles.addPromise(this._fetchQueue.push(n.key).then(t=>this._parseQueue.push({key:n.key,data:t,styleLayerUIDs:e})).then(e=>n.setData(e)).finally(()=>n.featureIndex=null));t.push(r)}await Promise.all(t)}this._styleChanges=[],this._isTileHandlerReady=!0,this.requestUpdate()}async _loadStyle(){let{style:e}=this.layer.currentStyleInfo,t=n(e);this._isTileHandlerReady=!1,this._pauseQueues(),this._clearQueues(),this._styleRepository=new A(t),this._vectorTileContainer.destroy(),this._tileManager.clear(),this._tileHandlerAbortController.abort(),this._tileHandlerAbortController=new AbortController;let{signal:r}=this._tileHandlerAbortController;try{this._tileHandlerPromise=this._tileHandler.setStyle(this._styleRepository,t,this.layer.tileInfo.lods.length-1),await this._tileHandlerPromise}catch(e){if(!a(e))throw e}if(r.aborted){this._resumeQueues(),this._isTileHandlerReady=!0,this._styeChanged=!1,this._spriteSourceChanged=!1,this.requestUpdate();return}let i=await this._tileHandler.spriteMosaic,o=this._vectorTileContainer;this._tileInfoView=new P(this.layer.tileInfo,this.layer.fullExtent),o.setStyleResources(i,this.view.glyphMosaic(),this._styleRepository,this._tileInfoView),this._tileManager=new w({acquireTile:e=>this.acquireTile(e),releaseTile:e=>this.releaseTile(e),tileInfoView:this._tileInfoView},this._vectorTileContainer),this._resumeQueues(),this._isTileHandlerReady=!0,this.requestUpdate(),this._styeChanged=!1,this._spriteSourceChanged=!1}_createVectorTile(e){let t=this._tileInfoView.getTileBounds(_(),e),n=this._tileInfoView.getTileResolution(e.level);return new T(e,n,t[0],t[3],512,512,this._styleRepository)}async _queryTile(e,n,r,i,a,o,s){if(a.layerData.size===0)return;let c=this._ensureTileIndex(a),l=this._tileInfoView.getTileBounds(_(),a.key,!0),u=n.map(e=>{let[t,n,r,i]=l;return[x*((e.x-t)/(r-t)),x*(1-(e.y-n)/(i-n))]}),d=this.view.featuresTilingScheme.tileInfo.scaleToZoom(this.view.state.scale)-a.key.level,f=d>0?2**d:1,p=r/f*(x/S),m=await c.queryAttributes(u,p,s);for(let r of m){let{layer:a,feature:o}=r;this._styleRepository.getStyleLayerVisibility(a.uid)&&a.isIntersectingFeature(u,p,o,c.tileKey.level,i,f,r,s)&&e.push({type:`graphic`,layer:this.layer,graphic:new t({attributes:o.values,origin:new b(this.layer,r.layer.id,r.layer.uid)}),mapPoint:s===`point`?n[0].clone():null})}(await c.getSymbolHitResults([],o)).map(t=>{t.graphic.geometry=this._tileToMapPoint(t.tilePoint,a.transforms.tileUnitsToPixels),e.push({type:`graphic`,layer:this.layer,graphic:t.graphic,mapPoint:s===`point`?n[0].clone():null})}),e.sort((e,t)=>(y(t.graphic.origin)?t.graphic.origin.layerIndex:0)-(y(e.graphic.origin)?e.graphic.origin.layerIndex:0))}_tileToMapPoint(e,t){if(!e)return null;let n=e[0]*t[0]+e[1]*t[3]+t[6],r=e[0]*t[1]+e[1]*t[4]+t[7],i=this.view.state,a=[0,0];return i.toMap(a,[n,r]),new h({x:a[0],y:a[1],spatialReference:i.spatialReference})}_ensureTileIndex(e){let t=e.featureIndex;return t||(t=D.create(e.key,e.layerData,this._styleRepository,this._tileHandler,this.layer),e.featureIndex=t),t}_pauseQueues(){this._fetchQueue.pause(),this._parseQueue.pause()}_resumeQueues(){this._fetchQueue.resume(),this._parseQueue.resume()}_clearQueues(){this._fetchQueue.clear(),this._parseQueue.clear()}};e([d()],R.prototype,`_isTileHandlerReady`,void 0),R=e([f(`esri.views.2d.layers.VectorTileLayerView2D`)],R);function z(e){if(e==null)return 0;switch(e.type){case`partial`:return Object.keys(e.diff).length;case`complete`:return Math.max(Object.keys(e.oldValue).length,Object.keys(e.newValue).length);case`collection`:return Object.keys(e.added).length+Object.keys(e.changed).length+Object.keys(e.removed).length}}const B=R;export{B as default};
|
|
2
|
+
import{__decorate as e}from"tslib";import t from"../../../Graphic.js";import has from"../../../core/has.js";import{clone as n}from"../../../core/lang.js";import r from"../../../core/Logger.js";import{destroyMaybe as i}from"../../../core/maybe.js";import{isAbortError as a}from"../../../core/promiseUtils.js";import{createScreenPoint as o,isScreenPoint as s,isScreenRect as c,isScreenPolygon as l,pt2px as u}from"../../../core/screenUtils.js";import{property as d,subclass as f}from"../../../core/accessorSupport/decorators.js";import{diff as p,hasDiff as m}from"../../../core/accessorSupport/diffUtils.js";import h from"../../../geometry/Point.js";import{fromValues as g,create as _}from"../../../geometry/support/aaBoundingRect.js";import{isVectorTileGraphicOrigin as v}from"../../../graphic/isVectorTileGraphicOrigin.js";import y from"../../../graphic/VectorTileGraphicOrigin.js";import{tileSizeInTileUnits as b,tileSizeInPixels as x}from"../engine/vectorTiles/constants.js";import{TileHandler as S}from"../engine/vectorTiles/TileHandler.js";import{TileManager as C}from"../engine/vectorTiles/TileManager.js";import{VectorTile as w}from"../engine/vectorTiles/VectorTile.js";import{VectorTileContainer as T}from"../engine/vectorTiles/VectorTileContainer.js";import E from"../engine/vectorTiles/VectorTileFeatureIndex.js";import{isSearchCircleOverlappingSymbol as D,isSearchPolygonOverlappingSymbol as O}from"../engine/vectorTiles/decluttering/util.js";import{createTileInfoView as k,supportsSpatialReference as A}from"../engine/vectorTiles/style/geoJSONVectorTileUtils.js";import j from"../engine/vectorTiles/style/StyleRepository.js";import{LayerView2D as M}from"./LayerView2D.js";import{getBbox as N,getMapPointsFromScreen as P}from"../support/hitTestUtils.js";import F from"../tiling/TileQueue.js";import I from"../../layers/VectorTileLayerView.js";import{TaskPriority as L}from"../../support/Scheduler.js";let R=class extends M(I){constructor(){super(...arguments),this._styleChanges=[],this._fetchQueue=null,this._parseQueue=null,this._tileHandlerPromise=null,this._isTileHandlerReady=!1,this._styeChanged=!1,this._spriteSourceChanged=!1}get fading(){return(this._vectorTileContainer?.fading||this._tileManager?.isFading())??!1}get hasVisibleFeatures(){let e=this._vectorTileContainer.children;for(let t of e)if(t.hasFeatures())return!0;return!1}get spriteSourceChanged(){return this._spriteSourceChanged}get styleChanged(){return this._styeChanged}async hitTest(e,t){let n=this._tileHandlerPromise,r=this._vectorTileContainer?.symbolFader;if(!n||!this._isTileHandlerReady||!r)return;await n;let i=[],a,d=c(t),f=l(t);if(d){let e=t;i=[o(e.x,e.y+e.height),o(e.x+e.width,e.y+e.height),o(e.x+e.width,e.y),o(e.x,e.y)],a=`rect`}else f?(i=t.map(e=>e),a=`polygon`):(i=[t],a=`point`);let p=has(`esri-vtl-search-tolerance`)??0,m=p>0?p:2.5,h=this.view.state,{rotation:_,pixelRatio:v}=this.view.state,y=u(m)*v,b=null,x=this._vectorTileContainer?.symbolRepository;x&&(b=x.querySymbols());let S=[];if(b)for(let e of b){let{styleLayerUID:t,vtlSymbol:n,tileKey:o}=e;a===`point`&&D(n,i[0],y,r.decluttererOffset)&&S.push({vtlSymbol:n,styleLayerUID:t,tileKey:o}),O(n,i,r.decluttererOffset)&&S.push({vtlSymbol:n,styleLayerUID:t,tileKey:o})}let C;if(s(t)){let e=[0,0],n=[0,0];h.toMap(e,t.x-y,t.y+y),h.toMap(n,t.x+y,t.y-y),C=g(Math.min(e[0],n[0]),Math.min(e[1],n[1]),Math.max(e[0],n[0]),Math.max(e[1],n[1]))}else{let e=i.map(({x:e,y:t})=>{let n=[0,0];return h.toMap(n,e,t),n});C=N([e])}let w=this._tileManager.getIntersectingTiles(C,S);if(S=S?.filter(e=>this._styleRepository.getStyleLayerVisibility(e.styleLayerUID)),(!w||w.length===0)&&S?.length===0)return null;let T=P(this.view,i),E=[],k=[];for(let e of w)E.push(this._queryTile(k,T,y,_,e,S?.filter(t=>t.tileKey.id===e.id),d?`rect`:f?`polygon`:`point`));return await Promise.all(E),k}update(e){this._tileHandlerPromise&&this._isTileHandlerReady&&(e.pixelRatio===this._tileHandler.devicePixelRatio?this._styleChanges.length>0?this._tileHandlerPromise=this._applyStyleChanges():(this._pauseQueues(),this._fetchQueue.state=e.state,this._parseQueue.state=e.state,this._tileManager.update(e)||this.requestUpdate(),this._resumeQueues()):(this._tileHandler.devicePixelRatio=e.pixelRatio,this._loadStyle()))}attach(){let{style:e}=this.layer.currentStyleInfo;this._styleRepository=new j(e),this._tileInfoView=k(this.layer,this.view.spatialReference),this._vectorTileContainer=new T(this._tileInfoView),this._tileHandler=new S(this.layer,this._styleRepository,window.devicePixelRatio||1,this._tileInfoView.tileInfo.lods.length-1,this.view.glyphMosaic(),()=>this._tileInfoView.tileInfo),this.container.addChild(this._vectorTileContainer),this._start(),this.addAttachHandles([this.layer.on(`paint-change`,e=>{if(this._styeChanged=!0,e.isDataDriven)this._styleChanges.push({type:0,data:e}),this.requestUpdate();else{let t=this._styleRepository,n=t.getLayerById(e.layer);if(!n)return;let r=n.type===3;t.setPaintProperties(e.layer,e.paint),r&&this._vectorTileContainer?.restartDeclutter(),this._vectorTileContainer?.requestRender()}}),this.layer.on(`layout-change`,e=>{let t=this._styleRepository,n=t.getLayerById(e.layer);if(!n)return;this._styeChanged=!0;let r=p(n.layout,e.layout);r!=null&&(m(r,`visibility`)&&z(r)===1?(t.setLayoutProperties(e.layer,e.layout),n.type===3&&this._vectorTileContainer?.restartDeclutter(),this._vectorTileContainer?.requestRender()):(this._styleChanges.push({type:1,data:e}),this.requestUpdate()))}),this.layer.on(`style-layer-visibility-change`,e=>{let t=this._styleRepository,n=t.getLayerById(e.layer);n&&(this._styeChanged=!0,t.setStyleLayerVisibility(e.layer,e.visibility),n.type===3&&this._vectorTileContainer?.restartDeclutter(),this._vectorTileContainer?.requestRender())}),this.layer.on(`style-layer-change`,e=>{this._styleChanges.push({type:2,data:e}),this._styeChanged=!0,this.requestUpdate()}),this.layer.on(`delete-style-layer`,e=>{this._styleChanges.push({type:3,data:e}),this._styeChanged=!0,this.requestUpdate()}),this.layer.on(`load-style`,()=>this._loadStyle()),this.layer.on(`spriteSource-change`,e=>{this._spriteSourceChanged=!0,this._styleChanges.push({type:4,data:e});let t=this._styleRepository.layers;for(let e of t)switch(e.type){case 3:e.getLayoutProperty(`icon-image`)&&this._styleChanges.push({type:1,data:{layer:e.id,layout:e.layout}});break;case 2:e.getPaintProperty(`line-pattern`)&&this._styleChanges.push({type:0,data:{layer:e.id,paint:e.paint,isDataDriven:e.isPainterDataDriven()}});break;case 1:e.getLayoutProperty(`fill-pattern`)&&this._styleChanges.push({type:0,data:{layer:e.id,paint:e.paint,isDataDriven:e.isPainterDataDriven()}})}this.requestUpdate()})])}detach(){this._stop(),this.container.removeAllChildren(),this._vectorTileContainer=i(this._vectorTileContainer),this._tileHandler=i(this._tileHandler)}viewChange(){this.requestUpdate()}moveEnd(){this.requestUpdate()}supportsSpatialReference(e){return A(this.layer,e)}canResume(){let e=super.canResume(),{currentStyleInfo:t}=this.layer;if(e&&t?.layerDefinition){let n=this.view.scale,{minScale:r,maxScale:i}=t.layerDefinition;t?.layerDefinition&&(r&&r<n&&(e=!1),i&&i>n&&(e=!1))}return e}isUpdating(){return this.fading||!this._isTileHandlerReady}acquireTile(e){let t=this._createVectorTile(e);return this._updatingHandles.consumePromise(this._fetchQueue.push(t.key).then(e=>this._parseQueue.push({key:t.key,data:e})).then(e=>{t.once(`attach`,()=>this.requestUpdate()),t.setData(e),this.requestUpdate()}).catch(e=>{a(e)||r.getLogger(this).error(e)})),t}releaseTile(e){let t=e.key.id;this._fetchQueue.abort(t),this._parseQueue.abort(t),this.requestUpdate()}async doRefresh(){if(!this.attached)return;if(this.suspended){this._tileManager.clear(),this.requestUpdate();return}this._isTileHandlerReady=!1,this._pauseQueues(),this._clearQueues(),this._tileManager.clearCache(),this._resumeQueues();let e=this._vectorTileContainer.children,t=[];try{for(let n of e){let e=this._updatingHandles.addPromise(this._fetchQueue.push(n.key).then(e=>this._parseQueue.push({key:n.key,data:e})).then(e=>n.setData(e)).finally(()=>n.featureIndex=null));t.push(e)}await Promise.all(t)}catch(e){r.getLogger(this).error(`error refreshing vector-tiles layer-view`,e),this._resumeQueues(),this._isTileHandlerReady=!0}this._isTileHandlerReady=!0,this.requestUpdate()}_start(){if(this._stop(),this._tileManager=new C({acquireTile:e=>this.acquireTile(e),releaseTile:e=>this.releaseTile(e),tileInfoView:this._tileInfoView},this._vectorTileContainer),!this.layer.currentStyleInfo)return;let e=new AbortController,t=this._tileHandler.start({signal:e.signal}).then(()=>{this._fetchQueue=new F({tileInfoView:this._tileInfoView,process:(e,t)=>this._getTileData(e,t),concurrency:15,scheduler:this.scheduler,priority:L.MAPVIEW_FETCH_QUEUE}),this._parseQueue=new F({tileInfoView:this._tileInfoView,process:(e,t)=>this._parseTileData(e,t),concurrency:8,scheduler:this.scheduler,priority:L.MAPVIEW_VECTOR_TILE_PARSING_QUEUE}),this.requestUpdate(),this._isTileHandlerReady=!0});this._tileHandler.spriteMosaic.then(e=>{this._vectorTileContainer.setStyleResources(e,this._tileHandler.glyphMosaic,this._styleRepository,this._tileInfoView),this.requestUpdate()}),this._tileHandlerAbortController=e,this._tileHandlerPromise=t}_stop(){if(!this._tileHandlerAbortController||!this._vectorTileContainer)return;let e=this._tileHandlerAbortController;e&&e.abort(),this._tileHandlerPromise=null,this._isTileHandlerReady=!1,this._fetchQueue=i(this._fetchQueue),this._parseQueue=i(this._parseQueue),this._tileManager=i(this._tileManager),this._vectorTileContainer.removeAllChildren()}async _getTileData(e,t){return this._tileHandler.fetchTileData(e,t)}async _parseTileData(e,t){return this._tileHandler.parseTileData(e,t)}async _applyStyleChanges(){this._isTileHandlerReady=!1,this._pauseQueues(),this._clearQueues(),this._tileManager.clearCache();let e=this._styleChanges;try{await this._tileHandler.updateStyle(e)}catch(e){r.getLogger(this).error(`error applying vector-tiles style update`,e.message),this._resumeQueues(),this._isTileHandlerReady=!0}let t=this._styleRepository,n=new Set,i=new Set;for(let r of e){if(r.type!==3&&r.type!==2)continue;let e=r.type===2?r.data.layer.id:r.data.layer,a=t.getLayerById(e);a&&(n.add(a.uid),a.type===3&&i.add(a.uid))}let a=this._vectorTileContainer.children,o=this._vectorTileContainer?.symbolFader?.symbolRepository;o&&i.size>0&&o.deleteStyleLayers(Array.from(i));let s=new Set;if(e.forEach(e=>{let n;switch(e.type){case 0:t.setPaintProperties(e.data.layer,e.data.paint),n=e.data.layer;break;case 1:t.setLayoutProperties(e.data.layer,e.data.layout),n=e.data.layer;break;case 3:t.deleteStyleLayer(e.data.layer);return;case 2:t.setStyleLayer(e.data.layer,e.data.index),n=e.data.layer.id;break;case 4:this._vectorTileContainer.setSpriteMosaic(this._tileHandler.setSpriteSource(e.data.spriteSource))}if(n){let e=t.getLayerById(n);e&&s.add(e.uid)}}),n.size>0){let e=Array.from(n);this._vectorTileContainer.deleteStyleLayers(e);for(let t of a)t.deleteLayerData(e)}if(this._resumeQueues(),s.size>0){let e=Array.from(s),t=[];for(let n of a){let r=this._updatingHandles.addPromise(this._fetchQueue.push(n.key).then(t=>this._parseQueue.push({key:n.key,data:t,styleLayerUIDs:e})).then(e=>n.setData(e)).finally(()=>n.featureIndex=null));t.push(r)}await Promise.all(t)}this._styleChanges=[],this._isTileHandlerReady=!0,this.requestUpdate()}async _loadStyle(){let{style:e}=this.layer.currentStyleInfo,t=n(e);this._isTileHandlerReady=!1,this._pauseQueues(),this._clearQueues(),this._styleRepository=new j(t),this._vectorTileContainer.destroy(),this._tileManager.clear(),this._tileHandlerAbortController.abort(),this._tileHandlerAbortController=new AbortController;let{signal:r}=this._tileHandlerAbortController;try{this._tileHandlerPromise=this._tileHandler.setStyle(this._styleRepository,t,this.layer.tileInfo.lods.length-1),await this._tileHandlerPromise}catch(e){if(!a(e))throw e}if(r.aborted){this._resumeQueues(),this._isTileHandlerReady=!0,this._styeChanged=!1,this._spriteSourceChanged=!1,this.requestUpdate();return}let i=await this._tileHandler.spriteMosaic,o=this._vectorTileContainer;this._tileInfoView=k(this.layer,this.view.spatialReference),o.setStyleResources(i,this.view.glyphMosaic(),this._styleRepository,this._tileInfoView),this._tileManager=new C({acquireTile:e=>this.acquireTile(e),releaseTile:e=>this.releaseTile(e),tileInfoView:this._tileInfoView},this._vectorTileContainer),this._resumeQueues(),this._isTileHandlerReady=!0,this.requestUpdate(),this._styeChanged=!1,this._spriteSourceChanged=!1}_createVectorTile(e){let t=this._tileInfoView.getTileBounds(_(),e),n=this._tileInfoView.getTileResolution(e.level);return new w(e,n,t[0],t[3],512,512,this._styleRepository)}async _queryTile(e,n,r,i,a,o,s){if(a.layerData.size===0)return;let c=this._ensureTileIndex(a),l=this._tileInfoView.getTileBounds(_(),a.key,!0),u=n.map(e=>{let[t,n,r,i]=l;return[b*((e.x-t)/(r-t)),b*(1-(e.y-n)/(i-n))]}),d=this.view.featuresTilingScheme.tileInfo.scaleToZoom(this.view.state.scale)-a.key.level,f=d>0?2**d:1,p=r/f*(b/x),m=await c.queryAttributes(u,p,s);for(let r of m){let{layer:a,feature:o}=r;this._styleRepository.getStyleLayerVisibility(a.uid)&&a.isIntersectingFeature(u,p,o,c.tileKey.level,i,f,r,s)&&e.push({type:`graphic`,layer:this.layer,graphic:new t({attributes:o.values,origin:new y(this.layer,r.layer.id,r.layer.uid)}),mapPoint:s===`point`?n[0].clone():null})}(await c.getSymbolHitResults([],o)).map(t=>{t.graphic.geometry=this._tileToMapPoint(t.tilePoint,a.transforms.tileUnitsToPixels),e.push({type:`graphic`,layer:this.layer,graphic:t.graphic,mapPoint:s===`point`?n[0].clone():null})}),e.sort((e,t)=>(v(t.graphic.origin)?t.graphic.origin.layerIndex:0)-(v(e.graphic.origin)?e.graphic.origin.layerIndex:0))}_tileToMapPoint(e,t){if(!e)return null;let n=e[0]*t[0]+e[1]*t[3]+t[6],r=e[0]*t[1]+e[1]*t[4]+t[7],i=this.view.state,a=[0,0];return i.toMap(a,[n,r]),new h({x:a[0],y:a[1],spatialReference:i.spatialReference})}_ensureTileIndex(e){let t=e.featureIndex;return t||(t=E.create(e.key,e.layerData,this._styleRepository,this._tileHandler,this.layer),e.featureIndex=t),t}_pauseQueues(){this._fetchQueue.pause(),this._parseQueue.pause()}_resumeQueues(){this._fetchQueue.resume(),this._parseQueue.resume()}_clearQueues(){this._fetchQueue.clear(),this._parseQueue.clear()}};e([d()],R.prototype,`_isTileHandlerReady`,void 0),R=e([f(`esri.views.2d.layers.VectorTileLayerView2D`)],R);function z(e){if(e==null)return 0;switch(e.type){case`partial`:return Object.keys(e.diff).length;case`complete`:return Math.max(Object.keys(e.oldValue).length,Object.keys(e.newValue).length);case`collection`:return Object.keys(e.added).length+Object.keys(e.changed).length+Object.keys(e.removed).length}}const B=R;export{B as default};
|