@arcgis/core 5.2.0-next.124 → 5.2.0-next.126
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/analysis/ElevationProfile/ElevationProfileDisplayUnits.d.ts +3 -2
- package/analysis/VolumeMeasurement/VolumeMeasurementDisplayUnits.d.ts +1 -0
- package/arcade/functions/string.js +1 -1
- package/arcgisGlobal.d.ts +2 -0
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/05afa8c2b5929ce0545a.js +1 -0
- package/assets/esri/core/workers/chunks/0a20f84b5f004a77a9f9.js +1 -0
- package/assets/esri/core/workers/chunks/{97cd4145c016cf379120.js → 0a2b7c691a577cb3d189.js} +1 -1
- package/assets/esri/core/workers/chunks/0ccd4200c5a2a5de6e16.js +1 -0
- package/assets/esri/core/workers/chunks/{064445e6f9512817ac87.js → 12b5a645c0987a0efe54.js} +2 -2
- package/assets/esri/core/workers/chunks/{bdf012e591a8476db467.js → 1406a884241809b62bff.js} +1 -1
- package/assets/esri/core/workers/chunks/168b45c5d8233f23793e.js +2 -0
- package/assets/esri/core/workers/chunks/17218d714cb07b607c2f.js +1 -0
- package/assets/esri/core/workers/chunks/1d040aa8951fff3141d9.js +1 -0
- package/assets/esri/core/workers/chunks/{ce08e3369641da0d7a27.js → 1dbb3e25e005a8220779.js} +2 -2
- package/assets/esri/core/workers/chunks/{c39ebd8d469f1e8bb61e.js → 25e212fe9a2ea37c9e81.js} +1 -1
- package/assets/esri/core/workers/chunks/{216d8cb86548e92a8196.js → 2e3fd81653dc0d86456c.js} +1 -1
- package/assets/esri/core/workers/chunks/30604a29df320d7a4c6b.js +1 -0
- package/assets/esri/core/workers/chunks/3a40146568e6dd0b1828.js +1 -0
- package/assets/esri/core/workers/chunks/3ef367c9b7bf1588307d.js +1 -0
- package/assets/esri/core/workers/chunks/4327d2c39a660bd89da7.js +1 -0
- package/assets/esri/core/workers/chunks/4678a8170d8a3ccd1a7b.js +1 -0
- package/assets/esri/core/workers/chunks/{45d87af48a21644590c2.js → 4716693eca44e8f89f5c.js} +1 -1
- package/assets/esri/core/workers/chunks/474d9541d387b31ad275.js +1 -0
- package/assets/esri/core/workers/chunks/{20e4277a4a6c57957202.js → 4d18451e0ea6ca54101a.js} +1 -1
- package/assets/esri/core/workers/chunks/{26bc509a031788bfa678.js → 4f464047c6f6c9486efd.js} +1 -1
- package/assets/esri/core/workers/chunks/{58528ccb7f72ae76d52b.js → 540f60e31b19d85e9371.js} +1 -1
- package/assets/esri/core/workers/chunks/{44857a76be2c0ac65bb9.js → 55a560fd872f7463b33d.js} +1 -1
- package/assets/esri/core/workers/chunks/56acda1eed3a013430e2.js +1 -0
- package/assets/esri/core/workers/chunks/56e97b98dcb8a3f2bcb7.js +1 -0
- package/assets/esri/core/workers/chunks/{eb7f45736c852725b0bb.js → 57ab87e70ef85b9405f9.js} +122 -122
- package/assets/esri/core/workers/chunks/{59cd139712d919e6a738.js → 5adf2792416b22cd602f.js} +1 -1
- package/assets/esri/core/workers/chunks/5fe5ef5ccf480634d159.js +1 -0
- package/assets/esri/core/workers/chunks/67678054342178b601cf.js +1 -0
- package/assets/esri/core/workers/chunks/67dcf9b873cb037b2647.js +1 -0
- package/assets/esri/core/workers/chunks/6c3535aa7250c08b9e5b.js +1 -0
- package/assets/esri/core/workers/chunks/6e8187a77846239ed112.js +2 -0
- package/assets/esri/core/workers/chunks/76548469fe1b9c3b2051.js +1 -0
- package/assets/esri/core/workers/chunks/{52744dfd430cd0c0edfb.js → 78abd6c42f39e6f6ffbb.js} +1 -1
- package/assets/esri/core/workers/chunks/{5993db944b9e7825e0bc.js → 7926faab76a721a2e1c4.js} +1 -1
- package/assets/esri/core/workers/chunks/7d6da4e89aa951e6523f.js +1 -0
- package/assets/esri/core/workers/chunks/7dd94567833386dc74de.js +1 -0
- package/assets/esri/core/workers/chunks/{dc0816f064be576a2fa6.js → 7fcee3a1b900ddc9a5e3.js} +1 -1
- package/assets/esri/core/workers/chunks/806f96ad09e882be41af.js +1 -0
- package/assets/esri/core/workers/chunks/8190fcb1dd10ad20feed.js +1 -0
- package/assets/esri/core/workers/chunks/84db05e872dbf35c80a2.js +1 -0
- package/assets/esri/core/workers/chunks/85739ed6af0f0a3cb302.js +1 -0
- package/assets/esri/core/workers/chunks/{b22de8bf4a4a739bc36d.js → 97602019a1ccad22a03a.js} +1 -1
- package/assets/esri/core/workers/chunks/9ca98fffd43e63d5ade3.js +1 -0
- package/assets/esri/core/workers/chunks/9d6a96e4c7ccedcb0c13.js +1 -0
- package/assets/esri/core/workers/chunks/9ec04faad97be55309b8.js +1 -0
- package/assets/esri/core/workers/chunks/a08385ebf1715414c1a6.js +1 -0
- package/assets/esri/core/workers/chunks/{e22a013ec38989caf9de.js → a790fc6b22acf651574b.js} +1 -1
- package/assets/esri/core/workers/chunks/{2f52ad525744b8793d49.js → a8258636096416c837a2.js} +1 -1
- package/assets/esri/core/workers/chunks/{770ca70d363184e39d60.js → ab8a1140bf31f46f8ebf.js} +1 -1
- package/assets/esri/core/workers/chunks/{813dd84933b407c8fe86.js → b34305474a861aaf6ccb.js} +1 -1
- package/assets/esri/core/workers/chunks/{dc923e50958b68a50014.js → b96358d475dc98034aa4.js} +1 -1
- package/assets/esri/core/workers/chunks/ba435cc73956d9c64a11.js +1 -0
- package/assets/esri/core/workers/chunks/c5b733c3a5b2680042a2.js +1 -0
- package/assets/esri/core/workers/chunks/{f0709c48daca93e759c8.js → c692e583e87af58f6d91.js} +1 -1
- package/assets/esri/core/workers/chunks/{39985c51465b79ff0910.js → c77496c350004ee66eb2.js} +1 -1
- package/assets/esri/core/workers/chunks/{9e5b30b907102bc0c201.js → cb7cb7d57c4e7f76600f.js} +1 -1
- package/assets/esri/core/workers/chunks/{58a17fb3c0dd07c63d57.js → cfaba0470619786e1ef8.js} +2 -2
- package/assets/esri/core/workers/chunks/d371d9279b30548efa02.js +1 -0
- package/assets/esri/core/workers/chunks/d5f0fed415b5b155d57c.js +1 -0
- package/assets/esri/core/workers/chunks/{d3d48401462ef3bf0ad9.js → d5f72670634e73c0b53a.js} +1 -1
- package/assets/esri/core/workers/chunks/d6e914f6ed45ea59034e.js +1 -0
- package/assets/esri/core/workers/chunks/{5afc12671a9a1bb6c56c.js → dc52e036547612949d32.js} +1 -1
- package/assets/esri/core/workers/chunks/e0894a308c84d5c158b0.js +1 -0
- package/assets/esri/core/workers/chunks/e1ae83ff3e0225708d4d.js +1 -0
- package/assets/esri/core/workers/chunks/e35eb93c0fb1f6de8db0.js +1 -0
- package/assets/esri/core/workers/chunks/{df79c00b5ddbef7148a0.js → eaa7cb3ffa8c11706a09.js} +1 -1
- package/assets/esri/core/workers/chunks/eebbc86a15ae3adb5f38.js +1 -0
- package/assets/esri/core/workers/chunks/{eb780f2dafa14f776166.js → f71ec8a260405ed07958.js} +1 -1
- package/assets/esri/core/workers/chunks/fdbda3d2afea25142b86.js +1 -0
- package/assets/esri/libs/pdfjs/pdf.worker.mjs +4 -63051
- package/assets/esri/themes/base/_FocusRegionOverlayItem.scss +18 -0
- package/assets/esri/themes/base/_View.scss +4 -0
- package/assets/esri/themes/base/_core.scss +1 -0
- package/assets/esri/themes/base/widgets/_OrientedImageryViewer.scss +13 -0
- 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/assets/esri/widgets/Editor/t9n/messages.ar.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.bg.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.bs.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.ca.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.cs.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.da.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.de.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.el.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.en.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.es.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.et.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.fi.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.fr.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.he.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.hr.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.hu.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.id.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.it.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.ja.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.ko.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.lt.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.lv.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.nl.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.no.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.pl.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.pt-BR.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.pt-PT.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.ro.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.ru.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.sk.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.sl.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.sr.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.sv.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.th.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.tr.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.uk.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.vi.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.zh-CN.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.zh-HK.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.zh-TW.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.ar.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.bg.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.bs.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.ca.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.cs.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.da.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.de.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.el.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.es.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.et.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.fi.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.fr.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.he.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.hr.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.hu.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.id.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.it.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.ja.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.ko.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.lt.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.lv.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.nl.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.no.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.pl.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.pt-BR.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.pt-PT.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.ro.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.ru.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.sk.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.sl.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.sr.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.sv.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.th.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.tr.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.uk.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.vi.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.zh-CN.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.zh-HK.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.zh-TW.json +1 -1
- package/chunks/GaussianSplatColorComposition.glsl.js +2 -0
- package/chunks/GaussianSplatEmissionComposition.glsl.js +11 -0
- package/chunks/GlobalIllumination.glsl.js +9 -9
- package/chunks/GlobalIlluminationBlur.glsl.js +8 -8
- package/chunks/HeatmapDensity.glsl.js +5 -5
- package/chunks/Pattern.glsl.js +30 -30
- package/chunks/RibbonLine.glsl.js +19 -19
- package/chunks/earcut.js +1 -1
- package/chunks/portal.js +1 -1
- package/config.js +1 -1
- package/core/accessorSupport/types.d.ts +5 -1
- package/graphic/MapImageGraphicOrigin.js +1 -1
- package/graphic/TileGraphicOrigin.js +1 -1
- package/interfaces.d.ts +8 -0
- package/kernel.js +1 -1
- package/layers/OrientedImageryLayer.js +1 -1
- package/layers/ParquetLayer.d.ts +3 -2
- package/layers/ParquetLayer.js +1 -1
- package/layers/SceneLayer.js +1 -1
- package/layers/geospatialPDF/GeospatialPDFFrame.js +1 -1
- package/layers/geospatialPDF/GeospatialPDFLayerWorker.js +2 -2
- package/layers/geospatialPDF/GeospatialPDFWorkerClient.js +1 -1
- package/layers/geospatialPDF/LGIDictMapFrame.js +1 -1
- package/layers/geospatialPDF/ViewportMeasureFrame.js +1 -1
- package/layers/geospatialPDF/geospatialPDFParserUtils.js +2 -0
- package/layers/geospatialPDF/projectionToWKTUtils.js +2 -0
- package/layers/geospatialPDF/renderExtentUtils.js +1 -1
- package/layers/geospatialPDF/sharedUtils.js +1 -1
- package/layers/mixins/ArcGISImageService.js +1 -1
- package/layers/mixins/TemporalLayer.js +1 -1
- package/layers/orientedImagery/transformations/imageToWorld.js +1 -1
- package/layers/orientedImagery/transformations/utils.js +1 -1
- package/layers/raster/datasets/GeospatialPDFRaster.js +1 -1
- package/layers/raster/types.d.ts +6 -0
- package/layers/support/TimeInfo.js +1 -1
- package/layers/support/TimeSeriesCalculation.d.ts +32 -0
- package/layers/support/TimeSeriesCalculation.js +2 -0
- package/layers/support/TimeSeriesInfo.d.ts +19 -0
- package/layers/support/TimeSeriesInfo.js +1 -1
- package/layers/support/commonProperties.js +1 -1
- package/layers/support/layersMapping.js +1 -1
- package/layers/support/timeSeriesUtils.d.ts +25 -1
- package/layers/support/timeSeriesUtils.js +1 -1
- package/layers/types.d.ts +1 -0
- package/package.json +2 -2
- package/popup/FeatureContentCollection.d.ts +12 -2
- package/popup/FeatureContentCollection.js +1 -1
- package/popup/types.d.ts +14 -3
- package/portal/schemas/definitions.js +1 -1
- package/portal/schemas/sceneLayerItem.js +1 -1
- package/renderers/support/AuthoringInfo.d.ts +8 -1
- package/renderers/support/AuthoringInfo.js +1 -1
- package/renderers/support/AuthoringInfoVisualVariable.d.ts +8 -1
- package/renderers/support/AuthoringInfoVisualVariable.js +1 -1
- package/rest/imageService/fetchRasterInfo.js +1 -1
- package/rest/knowledgeGraph/DataModel.js +1 -1
- package/smartMapping/renderers/color.d.ts +12 -0
- package/smartMapping/renderers/color.js +1 -1
- package/smartMapping/renderers/opacity.d.ts +6 -0
- package/smartMapping/renderers/opacity.js +1 -1
- package/smartMapping/renderers/size.d.ts +12 -0
- package/smartMapping/renderers/size.js +1 -1
- package/smartMapping/renderers/support/regenerateUtils.js +1 -1
- package/smartMapping/renderers/support/rendererUtils.js +1 -1
- package/smartMapping/renderers/support/timeSeriesUtils.js +1 -1
- package/smartMapping/renderers/type.d.ts +6 -0
- package/smartMapping/renderers/type.js +1 -1
- package/smartMapping/renderers/univariateColorSize.d.ts +6 -0
- package/smartMapping/renderers/univariateColorSize.js +1 -1
- package/support/revision.js +1 -1
- package/symbols/support/gfxUtils.js +1 -1
- package/symbols/support/previewSymbol3D.js +1 -1
- package/symbols/support/svgUtils.js +1 -1
- package/time/timeZoneUtils.js +1 -1
- package/views/2d/analysis/AreaMeasurement/AreaMeasurementTool.js +1 -1
- package/views/2d/analysis/AreaMeasurementAnalysisView2D.d.ts +8 -0
- package/views/2d/analysis/AreaMeasurementAnalysisView2D.js +1 -1
- package/views/2d/analysis/DistanceMeasurement/DistanceMeasurementTool.js +1 -1
- package/views/2d/analysis/DistanceMeasurementAnalysisView2D.d.ts +8 -0
- package/views/2d/analysis/DistanceMeasurementAnalysisView2D.js +1 -1
- package/views/2d/analysis/ElevationProfileAnalysisView2D.d.ts +3 -2
- package/views/3d/analysis/AreaMeasurementAnalysisView3D.js +1 -1
- package/views/3d/analysis/Dimension/DimensionController.js +1 -1
- package/views/3d/analysis/DirectLineMeasurementAnalysisView3D.js +1 -1
- package/views/3d/analysis/ElevationProfileAnalysisView3D.d.ts +3 -2
- package/views/3d/analysis/LineOfSight/LineOfSightEditTool.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightItemTool.js +1 -1
- package/views/3d/analysis/LineOfSight/lineOfSightPlacementUtils.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedEditTool.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedPlacementController.js +1 -1
- package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementShiftTool.js +1 -1
- package/views/3d/analysis/VolumeMeasurementAnalysisView3D.d.ts +1 -0
- package/views/3d/analysis/VolumeMeasurementAnalysisView3D.js +1 -1
- package/views/3d/input/handlers/DragRotate.js +1 -1
- package/views/3d/input/handlers/PinchAndPanNavigation.js +1 -1
- package/views/3d/input/handlers/ground/GroundDoubleClickMove.js +1 -1
- package/views/3d/input/handlers/ground/GroundNavigation.js +1 -1
- package/views/3d/interactive/measurementTools/areaMeasurement3D/AreaMeasurement3DTool.js +1 -1
- package/views/3d/interactive/measurementTools/directLineMeasurement3D/DirectLineMeasurement3DTool.js +1 -1
- package/views/3d/interactive/placementTools/GroundNavigationPlacementTool3D.js +2 -0
- package/views/3d/navigation/Navigation3D.d.ts +7 -0
- package/views/3d/navigation/Navigation3D.js +1 -1
- package/views/3d/navigation/modes/navigationModeUtils.d.ts +32 -0
- package/views/3d/navigation/modes/navigationModeUtils.js +2 -0
- package/views/3d/state/Constraints.js +1 -1
- package/views/3d/state/controllers/GroundNavigationController.js +1 -1
- package/views/3d/state/controllers/RotateController.js +1 -1
- package/views/3d/state/utils/groundNavigationUtils.js +1 -1
- package/views/3d/support/engineContent/line.js +1 -1
- package/views/3d/support/planarDistanceToGroundRatio.js +2 -0
- package/views/3d/terrain/OverlayManager.js +1 -1
- package/views/3d/terrain/OverlayRenderer.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js +13 -13
- package/views/3d/webgl-engine/core/shaderLibrary/shading/MarkerSizing.glsl.js +2 -2
- package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.js +1 -1
- package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
- package/views/3d/webgl-engine/lib/GaussianSplatRenderUtils.js +1 -1
- package/views/3d/webgl-engine/lib/GaussianSplatRenderer.js +1 -1
- package/views/3d/webgl-engine/lib/GaussianSplatShadows.js +1 -1
- package/views/3d/webgl-engine/lib/SortedRenderGeometryRenderer.js +1 -1
- package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
- package/views/3d/webgl-engine/shaders/GaussianSplatColorComposition.glsl.js +2 -0
- package/views/3d/webgl-engine/shaders/GaussianSplatColorCompositionTechnique.js +2 -0
- package/views/3d/webgl-engine/shaders/GaussianSplatDepthPolicy.js +1 -1
- package/views/3d/webgl-engine/shaders/{GaussianSplatComposition.glsl.js → GaussianSplatEmissionComposition.glsl.js} +1 -1
- package/views/3d/webgl-engine/shaders/GaussianSplatEmissionCompositionTechnique.js +2 -0
- package/views/3d/webgl-engine/shaders/GaussianSplatTechnique.js +1 -1
- package/views/DOMContainer.d.ts +27 -0
- package/views/DOMContainer.js +1 -1
- package/views/PopupView.d.ts +1 -1
- package/views/View.d.ts +10 -1
- package/views/View.js +1 -1
- package/views/analysis/ElevationProfile/ElevationProfileController.js +1 -1
- package/views/analysis/LengthDimensionResult.d.ts +4 -1
- package/views/draw/support/managers/TooltipManager.js +1 -1
- package/views/input/types.d.ts +46 -0
- package/views/interactive/options/SnappingOptions.d.ts +4 -2
- package/views/interactive/options/SnappingOptions.js +1 -1
- package/views/interactive/options/ViewOptions.d.ts +18 -0
- package/views/interactive/options/bindViewToolOptions.js +2 -0
- package/views/interactive/snapping/SnappingManagerPool.js +1 -1
- package/views/interactive/snapping/allLayerSnapping.js +1 -1
- package/views/overlay/FocusRegionOverlayItem.js +2 -0
- package/views/selection/SelectionOperation.d.ts +27 -1
- package/views/selection/types.d.ts +8 -20
- package/views/webgl/renderState.js +1 -1
- package/widgets/AreaMeasurement2D/AreaMeasurement2DViewModel.d.ts +1 -0
- package/widgets/AreaMeasurement2D/AreaMeasurement2DViewModel.js +1 -1
- package/widgets/AreaMeasurement2D.js +1 -1
- package/widgets/BasemapLayerList/BasemapLayerListViewModel.d.ts +1 -0
- package/widgets/BasemapLayerList.d.ts +1 -0
- package/widgets/BatchAttributeForm/expressions/types.d.ts +1 -0
- package/widgets/BatchAttributeForm/inputs/FieldInput.d.ts +2 -0
- package/widgets/BatchAttributeForm/types.d.ts +5 -1
- package/widgets/BatchAttributeForm.d.ts +1 -0
- package/widgets/Bookmarks/BookmarksViewModel.d.ts +1 -0
- package/widgets/Bookmarks.d.ts +1 -0
- package/widgets/CatalogLayerList/CatalogLayerListViewModel.d.ts +1 -0
- package/widgets/CatalogLayerList.d.ts +1 -0
- package/widgets/DistanceMeasurement2D/DistanceMeasurement2DViewModel.d.ts +1 -0
- package/widgets/DistanceMeasurement2D/DistanceMeasurement2DViewModel.js +1 -1
- package/widgets/DistanceMeasurement2D.js +1 -1
- package/widgets/Editor.d.ts +1 -0
- package/widgets/Editor.js +1 -1
- package/widgets/FeatureForm.d.ts +1 -0
- package/widgets/FeatureTable/FeatureTableViewModel.d.ts +37 -1
- package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
- package/widgets/FeatureTable/support/FeatureStore.d.ts +26 -2
- package/widgets/FeatureTable/support/FeatureStore.js +1 -1
- package/widgets/FeatureTable.d.ts +12 -1
- package/widgets/FeatureTable.js +1 -1
- package/widgets/FeatureTemplates.d.ts +1 -0
- package/widgets/Features/FeaturesViewModel.d.ts +1 -0
- package/widgets/Features.d.ts +2 -1
- package/widgets/HistogramRangeSlider.d.ts +1 -0
- package/widgets/Home/HomeViewModel.d.ts +1 -0
- package/widgets/Home.d.ts +1 -0
- package/widgets/LayerList/LayerListViewModel.d.ts +1 -0
- package/widgets/LayerList.d.ts +1 -0
- package/widgets/Locate/LocateViewModel.d.ts +1 -0
- package/widgets/Locate.d.ts +1 -0
- package/widgets/OrientedImageryViewer/adapters/view/SceneViewAdapter.js +1 -1
- package/widgets/OrientedImageryViewer/components/Alert.js +1 -1
- package/widgets/OrientedImageryViewer/navigation/NavigationManagerPanoramic.js +1 -1
- package/widgets/OrientedImageryViewer/types.d.ts +4 -1
- package/widgets/OrientedImageryViewer.d.ts +4 -1
- package/widgets/OrientedImageryViewer.js +1 -1
- package/widgets/Popup/types.d.ts +7 -0
- package/widgets/Popup.d.ts +1 -0
- package/widgets/Print/PrintViewModel.d.ts +1 -0
- package/widgets/Print.d.ts +1 -0
- package/widgets/Search.d.ts +1 -0
- package/widgets/Sketch.d.ts +1 -0
- package/widgets/Slider.d.ts +4 -0
- package/widgets/TimeSlider.d.ts +1 -0
- package/widgets/Track/TrackViewModel.d.ts +1 -0
- package/widgets/Track.d.ts +1 -0
- package/widgets/UtilityNetworkTrace/UtilityNetworkTraceViewModel.d.ts +1 -0
- package/widgets/UtilityNetworkTrace.d.ts +1 -0
- package/widgets/ValuePicker/types.d.ts +1 -0
- package/widgets/ValuePicker.d.ts +1 -0
- package/widgets/smartMapping/SmartMappingSliderBase.d.ts +1 -0
- package/widgets/support/SelectionList/types.d.ts +2 -0
- package/widgets/support/SelectionToolbar/SelectionToolbarViewModel.d.ts +2 -1
- package/assets/esri/core/workers/chunks/0148cb611bf7c8c5fe8a.js +0 -1
- package/assets/esri/core/workers/chunks/033debcbf6b3683dc4fe.js +0 -2
- package/assets/esri/core/workers/chunks/0acc754907395e83bbc6.js +0 -1
- package/assets/esri/core/workers/chunks/1c38ce72160d5a4e4b3d.js +0 -1
- package/assets/esri/core/workers/chunks/1e46703cb566c25458ad.js +0 -1
- package/assets/esri/core/workers/chunks/23279303cd7698314c56.js +0 -1
- package/assets/esri/core/workers/chunks/25c90092def215949db9.js +0 -1
- package/assets/esri/core/workers/chunks/29ae19206bbeb480be0f.js +0 -1
- package/assets/esri/core/workers/chunks/2f829321bfbd3bacd64f.js +0 -1
- package/assets/esri/core/workers/chunks/38890ac5917942374ab8.js +0 -1
- package/assets/esri/core/workers/chunks/463d69f596d1d34ef275.js +0 -2
- package/assets/esri/core/workers/chunks/475906b079f4f1ddacf2.js +0 -1
- package/assets/esri/core/workers/chunks/49affbed22e201f7c32b.js +0 -1
- package/assets/esri/core/workers/chunks/4c4ba466e23159991322.js +0 -1
- package/assets/esri/core/workers/chunks/4f58e0322707f63f5bf2.js +0 -1
- package/assets/esri/core/workers/chunks/606ac9358f508bda94f2.js +0 -1
- package/assets/esri/core/workers/chunks/724ea2e2843e6dac0a90.js +0 -1
- package/assets/esri/core/workers/chunks/7285a37cd5359aa4bac5.js +0 -1
- package/assets/esri/core/workers/chunks/753d1ff177ecee8e2377.js +0 -1
- package/assets/esri/core/workers/chunks/781fa83e8063b8f685dc.js +0 -1
- package/assets/esri/core/workers/chunks/78c1b75b1a8937eaa3cd.js +0 -1
- package/assets/esri/core/workers/chunks/7ff536284942c5284a16.js +0 -1
- package/assets/esri/core/workers/chunks/83c7c4218bc6ba2f16ee.js +0 -1
- package/assets/esri/core/workers/chunks/8984d02c0ce828fd223a.js +0 -1
- package/assets/esri/core/workers/chunks/8e102a2e134ce6ce0724.js +0 -1
- package/assets/esri/core/workers/chunks/92c852700ad1006f1e76.js +0 -1
- package/assets/esri/core/workers/chunks/9af36ee6a0df224859bc.js +0 -1
- package/assets/esri/core/workers/chunks/a3ab53b534e2872131be.js +0 -1
- package/assets/esri/core/workers/chunks/ac7af417ebf7721d7400.js +0 -1
- package/assets/esri/core/workers/chunks/aed479c14d93955f4798.js +0 -1
- package/assets/esri/core/workers/chunks/bb5ed2a796a45c41b0b4.js +0 -1
- package/assets/esri/core/workers/chunks/be52c319a0a81ce1ba36.js +0 -1
- package/assets/esri/core/workers/chunks/c0ec87800faf99cbd8bd.js +0 -1
- package/assets/esri/core/workers/chunks/c3008b20cb5fd38bd900.js +0 -1
- package/assets/esri/core/workers/chunks/ca5a4f62b09cc8579dc0.js +0 -1
- package/assets/esri/core/workers/chunks/d090baaa974e1e83fa44.js +0 -1
- package/assets/esri/core/workers/chunks/d25210574168ead2f813.js +0 -1
- package/assets/esri/core/workers/chunks/e4e1db4e9e5f13167401.js +0 -1
- package/assets/esri/core/workers/chunks/e9f8325a4cf89ae816cc.js +0 -1
- package/assets/esri/core/workers/chunks/ed7d4e8725aaa0ca4589.js +0 -1
- package/chunks/GaussianSplatComposition.glsl.js +0 -22
- package/layers/geospatialPDF/GeospatialPDFParserUtils.js +0 -2
- package/layers/geospatialPDF/Projection.js +0 -2
- package/views/3d/webgl-engine/shaders/GaussianSplatCompositionTechnique.js +0 -2
- package/views/3d/webgl-engine/shaders/GaussianSplatCompositionTechniqueConfiguration.js +0 -2
- /package/assets/esri/core/workers/chunks/{064445e6f9512817ac87.js.LICENSE.txt → 12b5a645c0987a0efe54.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{033debcbf6b3683dc4fe.js.LICENSE.txt → 168b45c5d8233f23793e.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{463d69f596d1d34ef275.js.LICENSE.txt → 1dbb3e25e005a8220779.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{ce08e3369641da0d7a27.js.LICENSE.txt → 6e8187a77846239ed112.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{58a17fb3c0dd07c63d57.js.LICENSE.txt → cfaba0470619786e1ef8.js.LICENSE.txt} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import r from"../../core/Error.js";import{Loadable as t}from"../../core/Loadable.js";import{open as o}from"../../core/workers.js";import{subclass as s}from"../../core/accessorSupport/decorators.js";import a from"./GeospatialPDFFrame.js";import{parse as i}from"./
|
|
2
|
+
import{__decorate as e}from"tslib";import r from"../../core/Error.js";import{Loadable as t}from"../../core/Loadable.js";import{open as o}from"../../core/workers.js";import{subclass as s}from"../../core/accessorSupport/decorators.js";import a from"./GeospatialPDFFrame.js";import{parse as i}from"./geospatialPDFParserUtils.js";let n=class extends t{constructor(){super(...arguments),this._connection=null,this._workerHandler=null}load(e){const r=o("GeospatialPDFLayerWorker",{...e,strategy:"dedicated",registryTarget:this}).then(e=>{this._connection=e,this._workerHandler=this._connection.createInvokeProxy()});return this.addResolvingPromise(r),Promise.resolve(this)}destroy(){this._connection?.close(),this._connection=null,this._workerHandler=null,super.destroy()}async loadPDF(e,t={}){await this.load(t);const{geospatialMetadata:o}=await this._workerHandler.loadPDF(e,t),s=i(o,0),n=s.lgiDictFrame??s.vpFrame;if(!n)throw new r("geospatial-pdf-layer:load","pdf does not contain supported LGIDict or VP/Measure.");const l=new a(n),c=l.spatialReference.toJSON();return{frame:l,sourceSpatialReference:c,fullExtent:l.toExtent()}}async render(e,r,t,o,s,a){const i={sourceExtentAsJSON:e.toJSON(),width:r,height:t,ctm:o,currentRing:s};return this._workerHandler.renderPDF(i,a)}};n=e([s("esri.layers.geospatialPDF.GeospatialPDFWorkerClient")],n);export{n as GeospatialPDFWorkerClient};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import t from"../../core/Error.js";import{fromValues as i}from"../../core/libs/gl-matrix-2/factories/mat2df64.js";import{fromValues as e}from"../../core/libs/gl-matrix-2/factories/vec2f64.js";import{expandMediaBox as n,createGeoreferencer as a,validateTransform as r,affineTransformationFromGeoreference as o}from"./sharedUtils.js";class s{constructor(t){const i=this.inputValidation(t);this._registration=i.registration,this._projection=i.projection,this._neatline=i.neatline,this.pairedNeatline=this._pairNeatline(),this.outerExtentMediaBox=n(i.mediaBox),this.geoControlPoints=this._getRegistrationPoints("geo"),this.ctm=i.ctm??this._buildCTMFromRegistration(),this.outputValidation()}inputValidation(e){const{ctm:n,registration:a,projection:r,display:o,neatline:s,mediaBox:l}=e;if(n&&6!==n.length)throw new t("geospatial-pdf-layer:
|
|
2
|
+
import t from"../../core/Error.js";import{fromValues as i}from"../../core/libs/gl-matrix-2/factories/mat2df64.js";import{fromValues as e}from"../../core/libs/gl-matrix-2/factories/vec2f64.js";import{expandMediaBox as n,createGeoreferencer as a,validateTransform as r,affineTransformationFromGeoreference as o}from"./sharedUtils.js";class s{constructor(t){const i=this.inputValidation(t);this._registration=i.registration,this._projection=i.projection,this._neatline=i.neatline,this.pairedNeatline=this._pairNeatline(),this.outerExtentMediaBox=n(i.mediaBox),this.geoControlPoints=this._getRegistrationPoints("geo"),this.ctm=i.ctm??this._buildCTMFromRegistration(),this.outputValidation()}inputValidation(e){const{ctm:n,registration:a,projection:r,display:o,neatline:s,mediaBox:l}=e;if(n&&6!==n.length)throw new t("geospatial-pdf-layer:invalid-frame","LGIDict has invalid CTM.");if(!n&&(!a||a.length<3))throw new t("geospatial-pdf-layer:invalid-frame","LGIDict missing CTM and minimum registration points");if(!l||4!==l.length)throw new t("geospatial-pdf-layer:invalid-frame","LGIDict missing or invalid MediaBox.");if(!s||s.length<4||s.length%2!=0)throw new t("geospatial-pdf-layer:invalid-frame","LGIDict missing or invalid amount of neatline points");return{ctm:n?i(n[0],n[1],n[2],n[3],n[4],n[5]):void 0,registration:a??[],projection:r,display:o,neatline:s,mediaBox:l}}outputValidation(){if(6!==this.ctm.length)throw new t("geospatial-pdf-layer:invalid-frame","LGIDict missing or invalid CTM");if(this.pairedNeatline.length<4)throw new t("geospatial-pdf-layer:invalid-frame","Map Frame should have at least 4 neatline points.");if(4!==this.outerExtentMediaBox.length)throw new t("geospatial-pdf-layer:invalid-frame","Failed to generate outerextent from mediaBox.");if(!this.ctm&&this.geoControlPoints.length<2)throw new t("geospatial-pdf-layer:invalid-frame","Map Frame should have at least 2 geoControlPoints if defaulting.")}toSpatialReference(){return this._projection}_buildCTMFromRegistration(){const t=[],i=[];for(const a of this._registration)a.length<4||(t.push(e(a[0],a[1])),i.push(e(a[2],a[3])));const n=this._getSourceRect(),s=a(t,i,this.toSpatialReference(),n),l=r(s);return o(l)}_extentFromArray(i){let e=1/0,n=1/0,a=-1/0,r=-1/0;for(let t=0;t<i.length;t++){const o=i[t];e=Math.min(e,o[0]),n=Math.min(n,o[1]),a=Math.max(a,o[0]),r=Math.max(r,o[1])}if(!(Number.isFinite(e)&&Number.isFinite(n)&&Number.isFinite(a)&&Number.isFinite(r)))throw new t("geospatial-pdf-layer: invalid-frame","Failed to compute extent from registration.");return{xmin:e,ymin:n,xmax:a,ymax:r}}_getSourceRect(){if(4===this.outerExtentMediaBox?.length)return this._extentFromArray(this.outerExtentMediaBox);if(this._neatline.length>=6)return this._extentFromArray(this.pairedNeatline);const i=this._getRegistrationPoints("page");if(i.length>=2)return this._extentFromArray(i);throw new t("geospatial-pdf-layer: invalid-frame","Cannot build source rectangle from Neatline or Registration points.")}_getRegistrationPoints(t){const[i,e]="page"===t?[0,1]:[2,3];return this._registration.filter(t=>t.length>e).map(t=>[t[i],t[e]])}_pairNeatline(){const t=[];for(let i=0;i<this._neatline.length;i+=2){const e=this._neatline[i],n=this._neatline[i+1];Number.isFinite(e)&&Number.isFinite(n)&&t.push([e,n])}return 2===t.length&&(t.splice(1,0,[t[1][0],t[0][1]]),t.push([t[0][0],t[2][1]])),t}}export{s as LGIDictMapFrame};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import t from"../../core/Error.js";import{fromValues as e}from"../../core/libs/gl-matrix-2/factories/vec2f64.js";import o from"../../geometry/Point.js";import i from"../../geometry/SpatialReference.js";import{projectExecute as s}from"../../geometry/operators/projectOperator.js";import{expandMediaBox as n,validateTransform as a,affineTransformationFromGeoreference as r,createGeoreferencer as l}from"./sharedUtils.js";class h{constructor(t){const{bbox:e,bounds:o,gpts:i,lpts:s,gcs:l,mediaBox:h}=this.inputValidation(t);this._bbox=e,this._bounds=o,this._gpts=i,this._lpts=s,this._gcs=l,this.outerExtentMediaBox=n(h),this.geoControlPoints=this._getProjectedGeoControlPoints().map(t=>[t[0],t[1]]);const g=this._getBoundsPolygonPage()??this._getPageControlPoints();this.pairedNeatline=g.map(t=>[t[0],t[1]]),this.neatLine=this.pairedNeatline.flat(),this._georeference=this._createControlPointsGeoreference();const p=a(this._georeference);this.ctm=r(p),this.outputValidation()}toSpatialReference(){return new i({wkt:this._gcs.WKT})}inputValidation(e){const{bbox:o,bounds:i,gpts:s,lpts:n,gcs:a,mediaBox:r}=e;if(!o||4!==o.length)throw new t("geospatial-pdf-layer:
|
|
2
|
+
import t from"../../core/Error.js";import{fromValues as e}from"../../core/libs/gl-matrix-2/factories/vec2f64.js";import o from"../../geometry/Point.js";import i from"../../geometry/SpatialReference.js";import{projectExecute as s}from"../../geometry/operators/projectOperator.js";import{expandMediaBox as n,validateTransform as a,affineTransformationFromGeoreference as r,createGeoreferencer as l}from"./sharedUtils.js";class h{constructor(t){const{bbox:e,bounds:o,gpts:i,lpts:s,gcs:l,mediaBox:h}=this.inputValidation(t);this._bbox=e,this._bounds=o,this._gpts=i,this._lpts=s,this._gcs=l,this.outerExtentMediaBox=n(h),this.geoControlPoints=this._getProjectedGeoControlPoints().map(t=>[t[0],t[1]]);const g=this._getBoundsPolygonPage()??this._getPageControlPoints();this.pairedNeatline=g.map(t=>[t[0],t[1]]),this.neatLine=this.pairedNeatline.flat(),this._georeference=this._createControlPointsGeoreference();const p=a(this._georeference);this.ctm=r(p),this.outputValidation()}toSpatialReference(){return new i({wkt:this._gcs.WKT})}inputValidation(e){const{bbox:o,bounds:i,gpts:s,lpts:n,gcs:a,mediaBox:r}=e;if(!o||4!==o.length)throw new t("geospatial-pdf-layer:invalid-frame","Viewport missing or invalid BBox.");if(!r||4!==r.length)throw new t("geospatial-pdf-layer:invalid-frame","Viewport missing or invalid MediaBox.");if(!s||s.length<6||s.length%2!=0)throw new t("geospatial-pdf-layer:invalid-frame","MeasureFrame missing or invalid GPTS.");if(!n||n.length<6||n.length%2!=0)throw new t("geospatial-pdf-layer:invalid-frame","MeasureFrame missing or invalid LPTS.");if(n.length!==s.length)throw new t("geospatial-pdf-layer: invalid-frame","MeasureFrame LPTS and GPTS must be same length");if(!a?.WKT)throw new t("geospatial-pdf-layer:invalid-frame","MeasureFrame missing or invalid WKT.");return{bbox:o,bounds:i,gpts:s,lpts:n,gcs:{WKT:a.WKT},mediaBox:r}}outputValidation(){if(4!==this.outerExtentMediaBox.length)throw new t("geospatial-pdf-layer:invalid-frame","Failed to generate outer extent from mediaBox.");if(this.geoControlPoints.length<2)throw new t("geospatial-pdf-layer:invalid-frame","Map Frame should have at least 2 geoControlPoints.");if(this.pairedNeatline.length<4)throw new t("geospatial-pdf-layer:invalid-frame","Map Frame should have at least 4 neatline points.");if(!this.ctm||6!==this.ctm.length)throw new t("geospatial-pdf-layer:invalid-frame","Missing or invalid Map Frame CTM")}_createControlPointsGeoreference(){const t=this._getPageControlPoints(),e=this._getProjectedGeoControlPoints(),o=this._getViewportRect();return l(t,e,this.toSpatialReference(),o)}_getBoundsPolygonLocal(){if(!this._bounds||this._bounds.length<8||this._bounds.length%2!=0)return null;const t=[];for(let e=0;e<this._bounds.length;e+=2)t.push({u:this._bounds[e],v:this._bounds[e+1]});return t}_getBoundsPolygonPage(){const t=this._getBoundsPolygonLocal();return t?.map(t=>this._localToPage(t.u,t.v))??null}_getPageControlPoints(){const t=[];for(let e=0;e<this._lpts.length;e+=2){const o=this._lpts[e],i=this._lpts[e+1];t.push(this._localToPage(o,i))}return t}_getProjectedGeoControlPoints(){const t=this.toSpatialReference(),i=[];for(let n=0;n<this._gpts.length;n+=2){const a=this._gpts[n],r=this._gpts[n+1],l=new o({x:r,y:a}),h=s(l,t);i.push(e(h.x,h.y))}return i}_getViewportRect(){const[t,e,o,i]=this._bbox;return{xmin:Math.min(t,o),ymin:Math.min(e,i),xmax:Math.max(t,o),ymax:Math.max(e,i)}}_localToPage(t,o){const[i,s,n,a]=this._bbox;return e(i+t*(n-i),s+o*(a-s))}}export{h as ViewportMeasureFrame};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
+
import r from"../../core/Error.js";import"../../core/has.js";import{LGIDictMapFrame as e}from"./LGIDictMapFrame.js";import{projectionToSpatialReference as i}from"./projectionToWKTUtils.js";import{ViewportMeasureFrame as n}from"./ViewportMeasureFrame.js";function t(t,u=0){const s={mediaBox:_(t.MediaBox),rotate:P(t.Rotate),hasLGIDict:null!=t.LGIDict,hasVP:null!=t.VP},l=o(t.LGIDict,u);if(l){if(!l.Projection)throw new r("geospatial-pdf-layer:parse","LGIDict map frame missing Projection.");const n=i(l.Projection);let o;try{o=l.Display?i(l.Display):void 0}catch{o=n}return{result:s,lgiDictFrame:new e({ctm:l.CTM,registration:l.Registration,projection:n,display:o,neatline:l.Neatline,mediaBox:_(t.MediaBox)})}}const c=a(t.VP,u);if(c){return{result:s,vpFrame:new n({bbox:c.BBox,bounds:c.Measure?.Bounds,gpts:c.Measure?.GPTS,lpts:c.Measure?.LPTS,gcs:c.Measure?.GCS,mediaBox:_(t.MediaBox)})}}return{result:s}}function o(r,e){return u(r)[e]}function a(r,e){return s(r)[e]}function u(r){return null==r?[]:Array.isArray(r)?r.map(r=>l(r)):[l(r)]}function s(r){return null==r?[]:Array.isArray(r)?r.map(r=>c(r)):[c(r)]}function l(r){const e=M(r,"LGIDict map frame must be an object.");return{CTM:_(e.CTM),Registration:S(e.Registration),Neatline:_(e.Neatline),Projection:p(e.Projection),Display:p(e.Display)}}function c(r){const e=M(r,"Viewport frame must be an object."),i=d(e.Measure);return{BBox:_(e.BBox),Measure_Raw:e.Measure,Measure:i,Raw:e}}function d(r){if(w(r))return{Bounds:_(r.Bounds),GPTS:_(r.GPTS),LPTS:_(r.LPTS),GCS:f(r.GCS)}}function f(r){if(w(r))return{WKT:T(r.WKT)}}function p(r){if(w(r))return{Type:L(r.Type),Units:L(r.Units),Datum:m(r.Datum),Projection_Type:L(r.ProjectionType),Central_Meridian:P(r.CentralMeridian),False_Easting:P(r.FalseEasting),False_Northing:P(r.FalseNorthing),Height:P(r.Height),Hemisphere:L(r.Hemisphere),Latitude_One:P(r.LatitudeOne),Latitude_Two:P(r.LatitudeTwo),Latitude_Of_True_Scale:P(r.LatitudeOfTrueScale),Longitude_One:P(r.LongitudeOne),Longitude_Two:P(r.LongitudeTwo),Longitude_Down_From_Pole:P(r.LongitudeDownFromPole),Orientation:L(r.Orientation),Origin_Height:P(r.OriginHeight),Origin_Latitude:P(r.OriginLatitude),Origin_Longitude:P(r.OriginLongitude),Scale_Factor:P(r.ScaleFactor),Standard_Parallel:P(r.StandardParallel),Standard_Parallel_One:P(r.StandardParallelOne),Standard_Parallel_Two:P(r.StandardParallelTwo),Zone:P(r.Zone),Description:L(r.Description),raw:r}}function m(r){return null==r?null:"string"==typeof r?{kind:"name",name:L(r),ellipsoid:null,to_WGS84:null,raw:r}:w(r)?{kind:"definition",name:L(r.Description),ellipsoid:g(r.Ellipsoid),to_WGS84:y(r.ToWGS84),raw:r}:{kind:"unknown",name:L(r),ellipsoid:null,to_WGS84:null,raw:r}}function g(r){if(w(r))return{semi_Major_Axis:P(r.SemiMajorAxis),inverse_Flattening:P(r.InvFlattening),semi_Minor_Axis:P(r.SemiMinorAxis),description:L(r.Description)}}function y(r){if(w(r))return{dx:P(r.dx)??0,dy:P(r.dy)??0,dz:P(r.dz)??0,rx:P(r.rx)??0,ry:P(r.ry)??0,rz:P(r.rz)??0,sf:P(r.sf)??0}}function _(r){if(!Array.isArray(r))return;const e=[];for(const i of r){const r=P(i);if(void 0===r)return;e.push(r)}return e}function S(r){if(Array.isArray(r))return r.filter(r=>Array.isArray(r)).map(r=>r.map(r=>P(r)).filter(r=>void 0!==r))}function T(r){if(null!=r)return"string"==typeof r?r:String(r)}function L(r){const e=T(r);if(void 0!==e)return e.trim()}function P(r){if(null==r)return;if("number"==typeof r)return Number.isFinite(r)?r:void 0;if("string"!=typeof r)return;const e=r.trim();if(""===e)return;const i=Number(e);return Number.isFinite(i)?i:void 0}function w(r){return null!=r&&"object"==typeof r&&!Array.isArray(r)}function M(e,i){if(!w(e))throw new r("geospatial-pdf-layer:parse",i);return e}export{t as parse};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
+
import e from"../../core/Error.js";import n from"../../geometry/SpatialReference.js";const t={OriginLatitude:"Origin_Latitude",CentralMeridian:"Central_Meridian",ScaleFactor:"Scale_Factor",FalseEasting:"False_Easting",FalseNorthing:"False_Northing",Zone:"Zone",Hemisphere:"Hemisphere",StandardParallelOne:"Standard_Parallel_One",StandardParallelTwo:"Standard_Parallel_Two"},r=/^(?:NAD83|NORTH AMERICAN 1983|NAR(?:-[A-Z])?)$/i,a=/^(?:NAD27|NORTH AMERICAN 1927|NAS(?:-[A-Z])?)$/i,i=/^(?:WGS84|WGS 84|WGE)$/i;function o(e){const t=s(e);if("projected"===t.kind){const{projectionType:r,datum:a}=t;return"SPCS"===r?D(e,a):new n({wkt:A(e,r,a)})}}function s(e){return l(e)}function l(n){const t=c(n.Type),r=_(n.Projection_Type);let a;if(r||(a="Projection is missing or has unsupported ProjectionType"),t||(a="Projection dictionary is missing or has invalid Type. Expected Projection or Display."),n.Datum||(a="Projection is missing a Datum"),a)throw new e("geospatial-pdf-layer:invalid-projection",a);return u(n,r),{kind:"projected",dictionaryType:t,projectionType:r,datum:n.Datum}}function c(e){switch(e){case"Projection":case"Display":return e;default:return}}function _(e){switch(e){case"TC":case"PH":case"UT":case"AC":case"LE":case"SPCS":return e;default:return}}function u(n,r){const a=d(r);for(const i of a){const a=n[t[i]];if(void 0===a||""===a)throw new e("geospatial-pdf-layer:invalid-projection",`Projection ${r} missing required parameter ${i}.`)}}function d(e){switch(e){case"TC":return["OriginLatitude","CentralMeridian","ScaleFactor","FalseEasting","FalseNorthing"];case"PH":return["OriginLatitude","CentralMeridian","FalseEasting","FalseNorthing"];case"UT":return["Zone","Hemisphere"];case"AC":case"LE":return["OriginLatitude","CentralMeridian","StandardParallelOne","StandardParallelTwo","FalseEasting","FalseNorthing"];case"SPCS":return["Zone"]}}function A(e,n,t){const r=E(e,n,t),a=p(n),i=f(t),o=g(e.Units??"M"),s=T(e,n);return`PROJCS["${r}",GEOGCS["${$(t)}",${i},PRIMEM["Greenwich",0],UNIT["Degree",0.0174532925199433]],PROJECTION["${a}"],${s.join(",\n ")},${o}]`}function p(e){switch(e){case"TC":case"UT":return"Transverse_Mercator";case"PH":return"Polyconic";case"AC":return"Albers";case"LE":return"Lambert_Conformal_Conic"}}function E(e,n,t){const r=P(t);switch(n){case"TC":return`${r}_GeospatialPDF_Transverse_Mercator`;case"PH":return`${r}_GeospatialPDF_Polyconic`;case"UT":return`${r}_GeospatialPDF_UTM_Zone_${e.Zone}_${e.Hemisphere}`;case"AC":return`${r}_GeospatialPDF_Albers_Equal_Area`;case"LE":return`${r}_GeospatialPDF_Lambert_Conformal_Conic`}}function P(e){const n=M(e);return n?F(n)?"NAD_1983":C(n)?"NAD_1927":h(n)?"WGS_1984":"geospatialPDF":"geospatialPDF"}function f(n){if("definition"===n.kind){const t=n.ellipsoid;if(!t?.semi_Major_Axis)throw new e("geospatial-pdf-layer:invalid-Datum","Datum definition requires semi-major axis");const r=R(t),a=n.name??"GeospatialPDF_Datum",i=`SPHEROID["${t.description??"GeospatialPDF_Spheroid"}",${t.semi_Major_Axis},${r}]`,o=n.to_WGS84;return`DATUM["${a}",${i}${o?`,TOWGS84[${o.dx??0},${o.dy??0},${o.dz??0},${o.rx??0},${o.ry??0},${o.rz??0},${o.sf??0}]`:""}]`}if(n.name){const e=n.name.toUpperCase();if(F(e))return'DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137,298.257222101]]';if(C(e))return'DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]]';if(h(e))return'DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]]'}throw new e("geospatial-pdf-layer:invalid-Datum","Unsupported datum "+n.name)}function g(e){const n=e.toLowerCase();return["m","meter","meters","metre","metres"].includes(n)?'UNIT["Meter",1.0]':["ft","foot","feet"].includes(n)?'UNIT["Foot",0.3048]':`UNIT["${e}",1.0]`}function T(e,n){switch(n){case"TC":return[`PARAMETER["False_Easting",${e.False_Easting}]`,`PARAMETER["False_Northing",${e.False_Northing}]`,`PARAMETER["Central_Meridian",${e.Central_Meridian}]`,`PARAMETER["Latitude_Of_Origin",${e.Origin_Latitude}]`,`PARAMETER["Scale_Factor",${e.Scale_Factor}]`];case"PH":return[`PARAMETER["False_Easting",${e.False_Easting}]`,`PARAMETER["False_Northing",${e.False_Northing}]`,`PARAMETER["Central_Meridian",${e.Central_Meridian}]`,`PARAMETER["Latitude_Of_Origin",${e.Origin_Latitude}]`];case"AC":case"LE":return[`PARAMETER["False_Easting",${e.False_Easting}]`,`PARAMETER["False_Northing",${e.False_Northing}]`,`PARAMETER["Central_Meridian",${e.Central_Meridian}]`,`PARAMETER["Latitude_Of_Origin",${e.Origin_Latitude}]`,`PARAMETER["Standard_Parallel_1",${e.Standard_Parallel_One}]`,`PARAMETER["Standard_Parallel_2",${e.Standard_Parallel_Two}]`];case"UT":return m(e)}}function m(n){if(!n.Zone)throw new e("geospatial-pdf-layer:invalid-projection","No zone found for projection code UT");const t=6*n.Zone-183;return['PARAMETER["False_Easting",500000]',`PARAMETER["False_Northing",${/^s/i.test(n.Hemisphere??"")?1e7:0}]`,`PARAMETER["Central_Meridian",${t}]`,'PARAMETER["Latitude_Of_Origin",0]','PARAMETER["Scale_Factor",0.9996]']}function R(n){if(null!=n.inverse_Flattening)return n.inverse_Flattening;const t=n.semi_Major_Axis,r=n.semi_Minor_Axis;if(null==t||null==r)throw new e("geospatial-pdf-layer:invalid-Datum","Ellipsoid definition missing InvFlattening or SemiMinorAxis.");return t===r?0:t/(t-r)}function $(e){const n=M(e);return n?F(n)?"GCS_North_American_1983":C(n)?"GCS_North_American_1927":h(n)?"GCS_WGS_1984":"GCS_GeospatialPDF":"GCS_GeospatialPDF"}function M(e){return e.name?S(e.name):null}function S(e){return e.trim().toUpperCase().replace(/_/g," ").replace(/\s+/g," ")}function F(e){return r.test(e)}function C(e){return a.test(e)}function h(e){return i.test(e)}function D(t,r){const a=M(r);if(2800===t.Zone&&a&&F(a))return new n({wkid:32110});throw new e("geospatial-pdf-layer:invalid-projection",`Unsupported State Plane projection: datum ${r.name}, zone ${t.Zone}`)}export{o as projectionToSpatialReference,s as validateProjection};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import t from"../../core/Error.js";import"../../core/has.js";import{onAbort as o,throwIfAborted as n}from"../../core/promiseUtils.js";import{fromValues as r,create as e}from"../../core/libs/gl-matrix-2/factories/mat2df64.js";import{multiply as a}from"../../core/libs/gl-matrix-2/math/mat2d.js";async function i(r,i,m,l,f,p,x,h,v){const d=s(r,i,m),g=e();a(g,d,l);const u=e();a(u,g,x);const w=new OffscreenCanvas(i,m),y=w.getContext("2d");if(!y)throw new t("geospatial-pdf-layer:
|
|
2
|
+
import t from"../../core/Error.js";import"../../core/has.js";import{onAbort as o,throwIfAborted as n}from"../../core/promiseUtils.js";import{fromValues as r,create as e}from"../../core/libs/gl-matrix-2/factories/mat2df64.js";import{multiply as a}from"../../core/libs/gl-matrix-2/math/mat2d.js";async function i(r,i,m,l,f,p,x,h,v){const d=s(r,i,m),g=e();a(g,d,l);const u=e();a(u,g,x);const w=new OffscreenCanvas(i,m),y=w.getContext("2d");if(!y)throw new t("geospatial-pdf-layer:invalid-canvas","Failed to create bitmap canvas context.");if(h.length){const t=c(h,r,i,m);y.save(),y.fillStyle="white",y.fill(t),y.restore()}const b=f.render({canvas:null,canvasContext:y,viewport:p,transform:u,annotationMode:0,background:"rgba(0,0,0,0)"}),j=o(v?.signal,()=>{b.cancel()});try{await b.promise}catch(C){throw n(v),C}finally{j?.remove()}return w}function s(t,o,n){const e=(t.xmax-t.xmin)/o,a=(t.ymax-t.ymin)/n;return r(1/e,0,0,-1/a,-t.xmin/e,t.ymax/a)}function c(t,o,n,r){const e=new Path2D,a=s(o,n,r);for(let i=0;i<t.length;i++){const[o,n]=t[i],r=a[0]*o+a[2]*n+a[4],s=a[1]*o+a[3]*n+a[5];0===i?e.moveTo(r,s):e.lineTo(r,s)}return e.closePath(),e}export{i as renderBitmap};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import r from"../../core/Error.js";import{fromValues as e}from"../../core/libs/gl-matrix-2/factories/mat2df64.js";import o from"../../geometry/Point.js";import t from"../support/ControlPointsGeoreference.js";function n(r,e,n,i){const m=Math.min(r.length,e.length,3),a=r.slice(0,m).map((r,t)=>({sourcePoint:{x:r[0],y:r[1]},mapPoint:new o({x:e[t][0],y:e[t][1],spatialReference:n})}));return new t({controlPoints:a,width:i.xmax-i.xmin,height:i.ymax-i.ymin})}function i(e){if(!e?.transform||e.transform.length<6)throw new r("geospatial-pdf-layer:
|
|
2
|
+
import r from"../../core/Error.js";import{fromValues as e}from"../../core/libs/gl-matrix-2/factories/mat2df64.js";import o from"../../geometry/Point.js";import t from"../support/ControlPointsGeoreference.js";function n(r,e,n,i){const m=Math.min(r.length,e.length,3),a=r.slice(0,m).map((r,t)=>({sourcePoint:{x:r[0],y:r[1]},mapPoint:new o({x:e[t][0],y:e[t][1],spatialReference:n})}));return new t({controlPoints:a,width:i.xmax-i.xmin,height:i.ymax-i.ymin})}function i(e){if(!e?.transform||e.transform.length<6)throw new r("geospatial-pdf-layer:georefrencer","created georeferencer does not have valid transform");return e.transform}function m(r){return e(r[0],-r[1],-r[3],r[4],r[2],r[5])}function a(r){return[[r[0],r[1]],[r[0],r[3]],[r[2],r[3]],[r[2],r[1]]]}export{m as affineTransformationFromGeoreference,n as createGeoreferencer,a as expandMediaBox,i as validateTransform};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import t from"../../Graphic.js";import i from"../../request.js";import r from"../../core/Error.js";import{clone as s}from"../../core/lang.js";import n from"../../core/Logger.js";import{QueueProcessor as a}from"../../core/QueueProcessor.js";import{watch as o}from"../../core/reactiveUtils.js";import{urlToObject as l}from"../../core/urlUtils.js";import{property as u,subclass as p}from"../../core/accessorSupport/decorators.js";import{Integer as c,ensureClass as m}from"../../core/accessorSupport/ensureType.js";import{runUntracked as h}from"../../core/accessorSupport/tracking.js";import d from"../../geometry/Extent.js";import f from"../../geometry/Polygon.js";import g from"../../geometry/SpatialReference.js";import{srToRESTValue as y}from"../../geometry/support/spatialReferenceUtils.js";import{intersectMultimensionalSubset as R,getEffectiveMultidimensionalDefinition as x,getSubsetVariablesFromMdInfo as I,getDefaultMultidimensionalDefinition as w}from"../raster/datasets/multidimensionalUtils.js";import{decode as v,getFormat as b}from"../raster/formats/RasterCodec.js";import{mosaicPixelData as S}from"../raster/functions/pixelUtils.js";import{uvComponentToVector as F}from"../raster/functions/vectorFieldUtils.js";import{opacity as _,url as D}from"../support/commonProperties.js";import O from"../support/DimensionalDefinition.js";import{ExportImageServiceParameters as T}from"../support/ExportImageServiceParameters.js";import M from"../support/Field.js";import C from"../support/FieldsIndex.js";import{createBitmap as q}from"../support/imageBitmapUtils.js";import{isSupportedRendererType as N}from"../support/imageryRendererUtils.js";import j from"../support/MosaicRule.js";import P from"../support/MultidimensionalSubset.js";import E from"../support/PixelBlock.js";import{interpolationKebab as A,noDataInterpretationKebab as Q,pixelTypeKebabDict as V}from"../support/rasterEnums.js";import{getServicePixelValueField as J,getItemPixelValueField as B,getRawServicePixelValueField as U,getProcessedServicePixelValueField as z,getMagnitudeField as L,getDirectionField as H,getMultidimensionalFields as G,getRasterAttributeTableFields as k,addMultidimensionalFieldValues as W,commonRasterFieldNames as $,rasterFieldPrefix as X}from"../support/rasterFieldUtils.js";import K from"../support/RasterFunction.js";import Y from"../support/RasterInfo.js";import{createDefaultRenderer as Z,getDefaultBandCombination as ee,getSupportedRendererTypes as te,matchPresetRenderer as ie,normalizeRendererJSON as re}from"../../renderers/support/rasterRendererHelper.js";import se from"../../renderers/support/RasterSymbolizer.js";import{rasterRendererTypes as ne,websceneRasterRendererTypes as ae,read as oe}from"../../renderers/support/rasterTypeUtils.js";import{calculateVolume as le,computeAngles as ue,computePixelSpaceLocations as pe,computeHistograms as ce,computeStatisticsHistograms as me,measureHeight as he,measureAreaAndPerimeter as de,measureDistanceAndAngle as fe,measurePointOrCentroid as ge,measureLengthFromImage as ye,measureAreaFromImage as Re,getImageSpatialReferenceQueryParameter as xe,getSamples as Ie,identify as we,imageToMap as ve,imageToMapMultiray as be,mapToImage as Se,findImages as Fe,getImageUrl as _e,queryBoundary as De,queryGPSInfo as Oe}from"../../rest/imageService.js";import{fetchServiceRasterInfo as Te,generateRasterInfo as Me,patchServiceInfo as Ce}from"../../rest/imageService/fetchRasterInfo.js";import{getCatalogItemRasterInfo as qe}from"../../rest/imageService/getCatalogItemRasterInfo.js";import{executeForCount as Ne}from"../../rest/query/executeForCount.js";import{executeForExtent as je}from"../../rest/query/executeForExtent.js";import{executeForIds as Pe}from"../../rest/query/executeForIds.js";import{executeQueryJSON as Ee}from"../../rest/query/executeQueryJSON.js";import Ae from"../../rest/support/FeatureSet.js";import Qe from"../../rest/support/ImageIdentifyParameters.js";import Ve from"../../rest/support/Query.js";import{reader as Je}from"../../core/accessorSupport/decorators/reader.js";import{writer as Be}from"../../core/accessorSupport/decorators/writer.js";const Ue=512,ze=4096,Le=new Set(["png","png8","png24","png32","jpg","bmp","gif","jpgpng","lerc","tiff"]);function He(e){const t=JSON.stringify(e),i=t.includes('"rasterFunctionDefinition":{'),r=i?t.match(/"type":"(.*?FunctionArguments")/gi):t.match(/"rasterFunction":"(.*?")/gi),s=r?.map(e=>i?e.slice(8,-18):e.slice(18,-1));return s?s.join("/"):null}const Ge=Ge=>{const ke=Ge;let We=class extends ke{constructor(){super(...arguments),this._functionRasterInfos={},this._serviceSupportsMosaicRule=null,this._exportTileQueue=new a({concurrency:4,process:(e,t)=>this._fetchPixels(e.extent,e.width,e.height,{...e.options,signal:t})}),this.adjustAspectRatio=null,this.bandIds=void 0,this.capabilities=null,this.compressionQuality=void 0,this.compressionTolerance=.01,this.copyright=null,this.defaultMosaicRule=null,this.definitionExpression=null,this.exportImageServiceParameters=null,this.rasterInfo=null,this.fields=null,this.fullExtent=null,this.hasMultidimensions=!1,this.imageMaxHeight=4100,this.imageMaxWidth=4100,this.interpolation=void 0,this.minScale=0,this.maxScale=0,this.multidimensionalInfo=null,this.multidimensionalSubset=null,this.noData=null,this.noDataInterpretation=void 0,this.objectIdField=null,this.geometryType="polygon",this.typeIdField=null,this.types=[],this.pixelFilter=null,this.raster=void 0,this.sourceType=null,this.viewId=void 0,this.symbolizer=null,this.rasterFunctionInfos=null,this.serviceDataType=null,this.spatialReference=null,this.pixelType=null,this.serviceRasterInfo=null,this.sourceJSON=null,this.url=null,this.version=void 0}initialize(){this._set("exportImageServiceParameters",new T({layer:this}))}readServiceSupportsMosaicRule(e,t){return this._isMosaicRuleSupported(t)}get _rasterFunctionNamesIndex(){const e=new Map;return!this.rasterFunctionInfos||null!=this.rasterFunctionInfos&&this.rasterFunctionInfos.length<1||null!=this.rasterFunctionInfos&&this.rasterFunctionInfos.forEach(t=>{e.set(t.name.toLowerCase().replaceAll(/ /gi,"_"),t.name)}),e}readBandIds(e,t){if(Array.isArray(e)&&e.length>0&&e.every(e=>"number"==typeof e))return e}readCapabilities(e,t){return this._readCapabilities(t)}writeCompressionQuality(e,t,i){null!=e&&"lerc"!==this.format&&(t[i]=e)}writeCompressionTolerance(e,t,i){"lerc"===this.format&&null!=e&&(t[i]=e)}readDefaultMosaicRule(e,t){return this._serviceSupportsMosaicRule?h(()=>j.fromJSON(t)):null}get fieldsIndex(){return this.fields?new C(this.fields):null}set format(e){e&&Le.has(e.toLowerCase())&&this._set("format",e.toLowerCase())}readFormat(e,t){return"esriImageServiceDataTypeVector-UV"===t.serviceDataType||"esriImageServiceDataTypeVector-MagDir"===t.serviceDataType||null!=this.pixelFilter||!1===t.allowRasterFunction?"lerc":"jpgpng"}get isRenderedFormat(){return!this.format||this.format.includes("jpg")||this.format.includes("png")}readMinScale(e,t){return null!=t.minLOD&&null!=t.maxLOD?e:0}readMaxScale(e,t){return null!=t.minLOD&&null!=t.maxLOD?e:0}set mosaicRule(e){let t=e;t?.mosaicMethod&&(t=j.fromJSON({...t.toJSON(),mosaicMethod:t.mosaicMethod,mosaicOperation:t.mosaicOperation})),this._set("mosaicRule",t)}readMosaicRule(e,t){const i=e||t.mosaicRule;return i?j.fromJSON(i):this._isMosaicRuleSupported(t)?j.fromJSON(t):null}writeMosaicRule(e,t,i){const{mosaicRule:r}=this;this._isValidCustomizedMosaicRule(r)&&(t[i]=r.toJSON())}readObjectIdField(e,t){if(!e){const i=t.fields.find(e=>"esriFieldTypeOID"===e.type||"oid"===e.type);e=i?.name}return e}get parsedUrl(){return l(this.url)}readSourceType(e,t){return this._isMosaicDataset(t)?"mosaic-dataset":"raster-dataset"}get renderer(){const{activePresetRendererName:e,presetRenderers:t}=this;if(e){const i=t?.find(({name:t})=>t===e);return i?.renderer.clone()}return this.internalRenderer}set renderer(e){this.activePresetRendererName=null,this.internalRenderer=e}set internalRenderer(e){this.loaded&&(e=this._configRenderer(e)),this._set("internalRenderer",e)}readRenderer(e,t,i){const r=t?.layerDefinition?.drawingInfo?.renderer,s=oe(r,i);return null==s?null:("vector-field"===s.type&&t.symbolTileSize&&!r.symbolTileSize&&(s.symbolTileSize=t.symbolTileSize),N(s)||n.getLogger(this).warn("ArcGISImageService","Imagery layer doesn't support given renderer type."),s)}writeRenderer(e,t,i){t.layerDefinition=t.layerDefinition||{},t.layerDefinition.drawingInfo=t.layerDefinition.drawingInfo||{},t.layerDefinition.drawingInfo.renderer=e.toJSON()}get rasterFields(){const e=this.fields?.map(e=>e.clone())??[];e.push(J()),"mosaic-dataset"===this.sourceType&&this.fields?.length&&e.push(B()),this.version>=10.4&&null!=this.rasterFunctionInfos&&this.rasterFunctionInfos.some(({name:e})=>"none"===e.toLowerCase())&&e.push(U()),null!=this.rasterFunctionInfos&&this.rasterFunctionInfos.filter(({name:e})=>"none"!==e.toLowerCase()).forEach(({name:t})=>e.push(z(t)));const{rasterInfo:t}=this;if(this._isVectorDataSet()){const i=t?.multidimensionalInfo?.variables[0].unit?.trim(),r=L(i),s=H();e.push(r,s)}if(t?.multidimensionalInfo&&"raster-dataset"===this.sourceType){const i=G(t.multidimensionalInfo);e.push(...i)}const i=t?.attributeTable;if(null!=i){const t=k(i);e.push(...t)}return e}set rasterFunction(e){let t=e;t?.rasterFunction&&(t=K.fromJSON({...t.toJSON(),rasterFunction:t.rasterFunction,rasterFunctionArguments:t.rasterFunctionArguments})),this._set("rasterFunction",t)}readRasterFunction(e,t){const i=t.rasterFunctionInfos,r=t.renderingRule,s=null!=r&&Object.keys(r).length>0;return s||i?.length&&"None"!==i[0].name?this._isRFTJson(r)?K.fromJSON({rasterFunctionDefinition:r}):K.fromJSON(s?r:{rasterFunctionInfos:i}):null}readSpatialReference(e,t){const i=e||t.extent.spatialReference;return i?g.fromJSON(i):null}writePixelType(e,t,i){null!=this.serviceRasterInfo&&this.pixelType===this.serviceRasterInfo.pixelType||(t[i]=V.toJSON(e))}readVersion(e,t){let i=t.currentVersion;return i||(i=t.hasOwnProperty("fields")||t.hasOwnProperty("timeInfo")?10:9.3),i}applyFilter(e){let t=e;return this.pixelFilter&&(t=this._clonePixelData(e),this.pixelFilter(t)),t}async applyRenderer(e,t){let i=e,{renderer:r,symbolizer:s,pixelFilter:n}=this;const{isRawData:a}=e;if(a&&"lerc"!==this.format&&(r??=Z(this.rasterInfo,{bandIds:this.bandIds,variableName:this.rasterFunction?null:this.mosaicRule?.multidimensionalDefinition?.[0].variableName}),s||(this.symbolizer=new se({rendererJSON:r.toJSON(),rasterInfo:this.rasterInfo}),s=this.symbolizer)),(a||!this.isRenderedFormat)&&r&&s&&!n){await this._updateSymbolizer(s,r);const n=this.bandIds?.length?this.bandIds:ee(this.rasterInfo);i=await this._symbolize({pixelData:e,bandIds:n,symbolizer:s},t)}return i}destroy(){this._shutdownJobHandler()}async calculateVolume(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsCalculateVolume)throw new r("imagery-layer:compute-pixel-space-locations","this operation is not supported on the input image service");return e=s(e),this.mosaicRule&&null==e.mosaicRule&&(e.mosaicRule=this.mosaicRule),le(this.url,e,this._getRequestOptions(t))}async computeAngles(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsComputeAngles)throw new r("imagery-layer:compute-angles","this operation is not supported on the input image service");return ue(this.url,e,this._getRequestOptions(t))}async computePixelSpaceLocations(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsComputePixelLocation)throw new r("imagery-layer:compute-pixel-space-locations","this operation is not supported on the input image service");return pe(this.url,e,this._getRequestOptions(t))}async computeHistograms(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsComputeHistograms)throw new r("imagery-layer:compute-histograms","this operation is not supported on the input image service");return e=s(e),this._applyMosaicAndRenderingRules(e),ce(this.url,e,this._getRequestOptions(t))}async computeStatisticsHistograms(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsComputeStatisticsHistograms)throw new r("imagery-layer:compute-statistics-histograms","this operation is not supported on the input image service");return e=s(e),this._applyMosaicAndRenderingRules(e),me(this.url,e,this._getRequestOptions(t))}async measureHeight(e,t){const i=await this._fetchCapabilities(t?.signal);if(!("base-and-top"===e.operationType?i.mensuration.supportsHeightFromBaseAndTop:"base-and-top-shadow"===e.operationType?i.mensuration.supportsHeightFromBaseAndTopShadow:i.mensuration.supportsHeightFromTopAndTopShadow))throw new r("imagery-layer:measure-height","this operation is not supported on the input image service");return e=s(e),this._applyMosaicRule(e),he(this.url,e,this._getRequestOptions(t))}async measureAreaAndPerimeter(e,t){const i=await this._fetchCapabilities(t?.signal);if(!(i.mensuration.supportsAreaAndPerimeter&&(!e.is3D||i.mensuration.supports3D)))throw new r("imagery-layer:measure-area-and-perimeter","this operation is not supported on the input image service");return e=s(e),this._applyMosaicRule(e),de(this.url,e,this._getRequestOptions(t))}async measureDistanceAndAngle(e,t){const i=await this._fetchCapabilities(t?.signal);if(!(i.mensuration.supportsDistanceAndAngle&&(!e.is3D||i.mensuration.supports3D)))throw new r("imagery-layer:measure-distance-and-angle","this operation is not supported on the input image service");return e=s(e),this._applyMosaicRule(e),fe(this.url,e,this._getRequestOptions(t))}async measurePointOrCentroid(e,t){const i=await this._fetchCapabilities(t?.signal);if(!(i.mensuration.supportsPointOrCentroid&&(!e.is3D||i.mensuration.supports3D)))throw new r("imagery-layer:measure-point-or-centroid","this operation is not supported on the input image service");return e=s(e),this._applyMosaicRule(e),ge(this.url,e,this._getRequestOptions(t))}async measureLengthFromImage(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsMeasureFromImage)throw new r("imagery-layer:measure-length-from-image","this operation is not supported on the input image service");if("polyline"!==e.geometry.type)throw new r("imagery-layer:measure-length-from-image","this input geometry must be a polyline");return ye(this.url,e,this._getRequestOptions(t))}async measureAreaFromImage(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsMeasureFromImage)throw new r("imagery-layer:measure-area-from-image","this operation is not supported on the input image service");if("polygon"!==e.geometry.type)throw new r("imagery-layer:measure-area-from-image","this input geometry must be a polygon");return Re(this.url,e,this._getRequestOptions(t))}getField(e){const{fieldsIndex:t}=this;return null!=t?t.get(e):void 0}getFieldDomain(e,t){const i=this.getField(e);return i?i.domain:null}async internalFetchImage(e,t,i,r={}){await this._updateCurrentRasterInfo();const{exportImageServiceParameters:s}=this;let n=!1;if(r.requestRawData&&(await this._initJobHandler(),!s.requestRawData&&"lerc"!==this.format)){n=!0,s.requestRawData=!0;let e=this.bandIds;if(!e?.length){const t=ee(this.rasterInfo),i=Array.from({length:this.rasterInfo.bandCount},(e,t)=>t);i?.join(",")!==t?.join(",")&&(e=t)}s.rawDataRequestBandIds=e}const a=this.getExportImageServiceParameters(e,t,i,r.timeExtent);if(n&&(s.requestRawData=!1,s.rawDataRequestBandIds=null),null==a){if(r.requestAsImageElement&&this._canRequestImageElement(this.format)){const e=document.createElement("canvas");if(e.width=t,e.height=i,r.returnImageBitmap){const{bitmap:t}=await q(e,`${$e(this.parsedUrl)}/exportImage`,r);return{imageBitmap:t}}return{imageOrCanvasElement:e}}const{bandIds:s,rasterInfo:n}=this,a=(s?.length||n.bandCount)??0,o=t*i,l=n.pixelType,u=[];for(let e=0;e<a;e++)u.push(E.createEmptyBand(l,o));return{pixelData:{pixelBlock:new E({width:t,height:i,pixels:u,mask:new Uint8Array(o),pixelType:l}),extent:e}}}const o=!!r.requestAsImageElement&&!this.pixelFilter,l=o&&!!r.returnImageBitmap,u={imageServiceParameters:a,imageProps:{extent:e,width:t,height:i,format:this.format},requestAsImageElement:o,returnImageBitmap:l,signal:r.signal};return this._requestArrayBuffer(u)}async fetchPixels(e,t,i,s={}){await this._initJobHandler(),s.applyRendering&&await this._updateCurrentRasterInfo();const{imageMaxWidth:n,imageMaxHeight:a}=this;if(t<=n&&i<=a)return this._exportTileQueue.push({extent:e,width:t,height:i,options:s},{signal:s.signal});if(t>ze||i>ze||n<Ue||a<Ue)throw new r("imagery-layer:fetch-pixels",`The image service has a maximum export size of ${n}x${a}. The requested size of ${t}x${i} exceeds this limit.`);let{xmin:o,ymax:l,spatialReference:u}=this._projectedFullExtent??this.fullExtent;if(!u?.equals(e.spatialReference)){const{projectLoad:t,projectExecute:i}=await(import("../../geometry/operators/projectOperator.js"));await t();const r=i(this.fullExtent,e.spatialReference);o=r.xmin,l=r.ymax,this._projectedFullExtent=r}const p=e.width/t,c=e.height/i,m=Math.floor((e.xmin-o)/p),h=Math.floor((l-e.ymax)/c),f=m+t,g=h+i,y=Math.floor(m/Ue),R=Math.floor(h/Ue),x=Math.ceil(f/Ue)-1,I=Math.ceil(g/Ue)-1,w=Ue*p,v=Ue*c,b=[];for(let r=R;r<=I;r++){const t=l-r*v,i=t-v;for(let r=y;r<=x;r++){const n=o+r*w,a=new d({xmin:n,ymin:i,xmax:n+w,ymax:t,spatialReference:e.spatialReference});b.push(this._exportTileQueue.push({extent:a,width:Ue,height:Ue,options:s},{signal:s.signal}))}}const F=await Promise.all(b);if(F.some(e=>null==e.pixelBlock))return{extent:e,pixelBlock:null};return{extent:e,pixelBlock:this._rasterJobHandler?await this._rasterJobHandler.mosaicPixelData({pixelBlocks:F,destExtent:e},{signal:s.signal,transferPixelsToWorker:!0}):S(F,e)?.pixelBlock}}async _fetchPixels(e,t,i,r={}){const s=r.applyRendering?void 0:new T({layer:this,requestRawData:!0,interpolation:r.interpolation??"nearest",bandIds:r.bandIds??[]}),n=this.getExportImageServiceParameters(e,t,i,r.timeExtent,s);if(null==n)return{extent:e,pixelBlock:null};delete n.pixelType,r.bandIds||delete n.bandIds,delete n.compressionQuality;const a={imageServiceParameters:n,imageProps:{extent:e,width:t,height:i,format:this.format},requestAsImageElement:!1,returnImageBitmap:!1,signal:r.signal},{pixelData:o}=await this._requestArrayBuffer(a);return o??{extent:e,pixelBlock:null}}fetchKeyProperties(e){return i($e(this.parsedUrl)+"/keyProperties",{query:this._getQueryParams({renderingRule:this.version>=10.3?e?.rasterFunction:null})}).then(e=>e.data)}fetchRasterAttributeTable(e){return this.version<10.1?Promise.reject(new r("#fetchRasterAttributeTable()","Failed to get rasterAttributeTable")):i($e(this.parsedUrl)+"/rasterAttributeTable",{query:this._getQueryParams({renderingRule:this.version>=10.3?e?.rasterFunction:null})}).then(e=>Ae.fromJSON(e.data))}getCatalogItemRasterInfo(e,t){const i={...t,query:this._getQueryParams()};return qe($e(this.parsedUrl),e,i)}async getCatalogItemICSInfo(e,t){const{data:r}=await i($e(this.parsedUrl)+"/"+e+"/info/ics",{query:this._getQueryParams(),...t}),s=r?.ics;if(!s)return;let n=null;try{n=(await i($e(this.parsedUrl)+"/"+e+"/info",{query:this._getQueryParams(),...t})).data.extent}catch{}if(!n?.spatialReference)return{ics:s,icsToPixelTransform:null,icsExtent:null,northDirection:null};const a=this.version>=10.7?i($e(this.parsedUrl)+"/"+e+"/info/icstopixel",{query:this._getQueryParams(),...t}).then(e=>e.data).catch(()=>({})):{},o=n.spatialReference,l={geometries:JSON.stringify({geometryType:"esriGeometryEnvelope",geometries:[n]}),inSR:y(o),outSR:"0:"+e},u=i($e(this.parsedUrl)+"/project",{query:this._getQueryParams(l),...t}).then(e=>e.data).catch(()=>({})),p=5,c=(n.xmin+n.xmax)/2,m=(n.ymax-n.ymin)/(p+1),h=n.ymin+m,f=[];for(let i=0;i<p;i++)f.push({x:c,y:h+m*i});const R={geometries:JSON.stringify({geometryType:"esriGeometryPoint",geometries:f}),inSR:y(o),outSR:"0:"+e},x=i($e(this.parsedUrl)+"/project",{query:this._getQueryParams(R),...t}).then(e=>e.data).catch(()=>({})),I=await Promise.all([a,u,x]);let w=I[0].ipxf;if(null==w){const e=s.geodataXform?.xf_0;"topup"===e?.name?.toLowerCase()&&6===e?.coefficients?.length&&(w={affine:{name:"ics [sensor: Frame] to pixel (column, row) transformation",coefficients:e.coefficients,cellsizeRatio:0,type:"GeometricXform"}})}const v=d.fromJSON(I[1]?.geometries?.[0]);v&&(v.spatialReference=new g({wkid:0,imageCoordinateSystem:s}));const b=I[2].geometries?I[2].geometries.filter(e=>null!=e?.x&&null!=e.y&&"NaN"!==e.x&&"NaN"!==e.y):[],S=b.length;if(S<3)return{ics:s,icsToPixelTransform:w,icsExtent:v,northDirection:null};let F=0,_=0,D=0,O=0;for(let i=0;i<S;i++)F+=b[i].x,_+=b[i].y,D+=b[i].x*b[i].x,O+=b[i].x*b[i].y;const T=(S*O-F*_)/(S*D-F*F);let M=0;const C=b[p-1].x>b[0].x,q=b[p-1].y>b[0].y;return T===1/0?M=q?90:270:0===T?M=C?0:180:T>0?M=C?180*Math.atan(T)/Math.PI:180*Math.atan(T)/Math.PI+180:T<0&&(M=q?180+180*Math.atan(T)/Math.PI:360+180*Math.atan(T)/Math.PI),{ics:s,icsToPixelTransform:w,icsExtent:v,northDirection:M}}async generateRasterInfo(e,t){const i=m(K,e),s={...t,query:this._getQueryParams()};if(!i||"none"===i.functionName?.toLowerCase()||this._isVectorFieldResampleFunction(i))return this.serviceRasterInfo??Te($e(this.parsedUrl),this.sourceJSON,s);const n=He(i);if(!n)throw new r("imagery-layer:generate-raster-info","the rendering rule is not supported");if(this._functionRasterInfos[n])return this._functionRasterInfos[n];const a=Me($e(this.parsedUrl),i,s);this._functionRasterInfos[n]=a;try{const t=await a,{rasterFunction:i}=this;return(i===e||JSON.stringify(i)===JSON.stringify(e))&&JSON.stringify(this.rasterInfo)!==JSON.stringify(t)&&(this.rasterInfo=t),t}catch(o){throw this._functionRasterInfos[n]=null,o}}getExportImageServiceParameters(e,t,i,r,s){e=e.clone().shiftCentralMeridian();const n=xe(e.spatialReference,$e(this.parsedUrl));s??=this.exportImageServiceParameters;const a=s.toJSON(),{bandIds:o,noData:l}=a;let{renderingRule:u}=a;const p=this.rasterFunction?.rasterFunctionDefinition,c=this.renderer?.type,m=!c||"raster-stretch"===c||"raster-colormap"===c||"unique-value"===c||"class-breaks"===c||"raster-shaded-relief"===c;if(o?.length&&this._hasRasterFunction(this.rasterFunction)&&!p&&m){const e={rasterFunction:"ExtractBand",rasterFunctionArguments:{BandIds:o}};if("Stretch"===u.rasterFunction)e.rasterFunctionArguments.Raster=u.rasterFunctionArguments.Raster,u.rasterFunctionArguments.Raster=e;else if("Colormap"===u.rasterFunction){const t=u.rasterFunctionArguments.Raster;"Stretch"===t?.rasterFunction?(e.rasterFunctionArguments.Raster=t.rasterFunctionArguments.Raster,t.rasterFunctionArguments.Raster=e):(e.rasterFunctionArguments.Raster=t,u.rasterFunctionArguments.Raster=e)}else e.rasterFunctionArguments.Raster=u,u=e;a.bandIds=void 0}else a.bandIds=o?.join(",");Array.isArray(l)&&l.length>0&&(a.noData=l.join(","));const h=this._processMultidimensionalIntersection(null,r,s.mosaicRule);if(h.isOutSide)return null;a.mosaicRule=null!=h.mosaicRule?JSON.stringify(h.mosaicRule):null,r=h.timeExtent,a.renderingRule=this._getRenderingRuleString(K.fromJSON(u));const d={};if(null!=r){const{start:e,end:t}=r.toJSON();e&&t&&e===t?d.time=""+e:null==e&&null==t||(d.time=`${e??"null"},${t??"null"}`)}return{bbox:e.xmin+","+e.ymin+","+e.xmax+","+e.ymax,bboxSR:n,imageSR:n,size:t+","+i,...a,...d}}async getSamples(e,t){const i=await this._fetchCapabilities(t?.signal);if(!i?.operations.supportsGetSamples)throw new r("imagery-layer:get-samples","getSamples operation is not supported on the input image service");e=s(e);const{raster:n}=this;return n&&null==e.raster&&(e.raster=n),Ie(this.url,e,this._getRequestOptions(t))}async identify(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsIdentify)throw new r("imagery-layer:identify","identify operation is not supported on the input image service");e=s(e),this.version<10.91&&"extent"===e.geometry?.type&&(e.geometry=f.fromExtent(e.geometry));const i=this._processMultidimensionalIntersection(e.geometry,e.timeExtent,e.mosaicRule||this.mosaicRule);if(i.isOutSide)throw new r("imagery-layer:identify","the request cannot be fulfilled when falling outside of the multidimensional subset");e.timeExtent=i.timeExtent,e.mosaicRule=i.mosaicRule;const{raster:n,rasterFunction:a}=this;return a&&null==e.rasterFunction&&(e.rasterFunction=a),n&&null==e.raster&&(e.raster=n),we(this.url,e,this._getRequestOptions(t))}async imageToMap(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsImageToMap)throw new r("imagery-layer:image-to-map","imageToMap operation is not supported on the input image service");return ve($e(this.parsedUrl),e,this._getRequestOptions(t))}async imageToMapMultiray(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsImageToMapMultiray)throw new r("imagery-layer:image-to-map-multiray","imageToMapMultiray operation is not supported on the input image service");return be($e(this.parsedUrl),e,this._getRequestOptions(t))}async mapToImage(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsMapToImage)throw new r("imagery-layer:map-to-image","mapToImage operation is not supported on the input image service");return Se($e(this.parsedUrl),e,this._getRequestOptions(t))}async findImages(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsFindImages)throw new r("imagery-layer:find-images","findImages operation is not supported on the input image service");return Fe($e(this.parsedUrl),e,this._getRequestOptions(t))}async getImageUrl(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsGetImageUrl)throw new r("imagery-layer:get-image-url","getImageUrl operation is not supported on the input image service");return _e($e(this.parsedUrl),e,this._getRequestOptions(t))}createQuery(){return new Ve({outFields:["*"],returnGeometry:!0,where:this.definitionExpression||"1=1"})}async queryBoundary(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsQueryBoundary)throw new r("imagery-layer:query-boundary","queryBoundary operation is not supported on the input image service");return e=e??{outSpatialReference:this.spatialReference},De($e(this.parsedUrl),e,this._getRequestOptions(t))}async queryExtent(e,t){({query:e,requestOptions:t}=await this._prepareForQuery(e,t));const{where:i,objectIds:r,geometry:s,timeExtent:n,start:a,num:o,pixelSize:l}=e,u=null!=i&&"1=1"!==i,p=null!=r&&r.length>0,c=null!=s&&("extent"!==s.type||!s.equals(this.fullExtent)),m=null!=l,h=null!=a||null!=o,{timeInfo:d}=this,f=null!=n&&null!=d&&!n.equals(d.fullTimeExtent);if(!(u||p||c||m||f||h)){const i=await Ne(this.url,e,t),{outSpatialReference:r}=e;if(!r||r.equals(this.spatialReference))return{count:i,extent:this.fullExtent.clone()};const{projectLoad:s,projectExecute:n}=await(import("../../geometry/operators/projectOperator.js"));await s();return{count:i,extent:n(this.fullExtent,r)}}return je(this.url,e,t)}async queryRasters(e,t){({query:e,requestOptions:t}=await this._prepareForQuery(e,t));const i=await Ee(this.url,e,t),r=this.graphicOrigin;return i.features.forEach(e=>{e.layer=this,e.origin=r}),i}async queryObjectIds(e,t){return({query:e,requestOptions:t}=await this._prepareForQuery(e,t)),Pe(this.url,e,t)}async queryGPSInfo(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsQueryGPSInfo)throw new r("imagery-layer:query-gps-info","queryGPSInfo operation is not supported on the input image service");return e=e??{where:"1=1"},Oe($e(this.parsedUrl),e,this._getRequestOptions(t))}async queryRasterCount(e,t){return({query:e,requestOptions:t}=await this._prepareForQuery(e,t)),Ne(this.url,e,t)}async queryVisibleRasters(e,t){if(!e)throw new r("imagery-layer: query-visible-rasters","missing query parameter");await this.load();const{pixelSize:i,returnDomainValues:s,returnTopmostRaster:n,showNoDataRecords:a}=t||{pixelSize:null,returnDomainValues:!1,returnTopmostRaster:!1,showNoDataRecords:!1};let o=!1,l=null,u=null;const p=$.servicePixelValue.toLowerCase(),c=this._rasterFunctionNamesIndex;if(null!=e.outFields&&(o=e.outFields.some(e=>!e.toLowerCase().startsWith(p)),this.version>=10.4)){const t=e.outFields.filter(e=>e.toLowerCase().startsWith(p)&&e.length>p.length).map(e=>{const t=e.slice(p.length+1);return[this._updateRenderingRulesFunctionName(t,c),t]});l=t.map(e=>new K({functionName:e[0]})),u=t.map(e=>e[1]);const{rasterFunction:i}=this;0===l.length?i?.functionName?(l.push(i),u.push(i.functionName)):l=null:i?.functionName&&!l.some(e=>e.functionName===i.functionName)&&(l.push(i),u.push(i.functionName))}const m=null==e.outSpatialReference||e.outSpatialReference.equals(this.spatialReference),{multidimensionalSubset:h}=this;let d=e.timeExtent||this.timeExtent;if(h){const{isOutside:t,intersection:i}=R(h,{geometry:e.geometry,timeExtent:e.timeExtent,multidimensionalDefinition:this.exportImageServiceParameters.mosaicRule?.multidimensionalDefinition});if(t)throw new r("imagery-layer:query-visible-rasters","the request cannot be fulfilled when falling outside of the multidimensional subset");null!=i?.timeExtent&&(d=i.timeExtent)}const g=this._combineMosaicRuleWithTimeExtent(this.exportImageServiceParameters.mosaicRule,d);let y=e.geometry;this.version<10.91&&"extent"===y?.type&&(y=f.fromExtent(y));const I=this._getQueryParams({geometry:y,timeExtent:d,mosaicRule:g,rasterFunction:this.version<10.4?this.rasterFunction:null,rasterFunctions:l,pixelSize:i,returnCatalogItems:o,returnGeometry:m,raster:this.raster,maxItemCount:n?1:null});delete I.f;const w=new Qe(I);try{await this._generateRasterInfo(this.rasterFunction);const i=await we(this.url,w,{signal:t?.signal,query:{...this.customParameters}}),r=e.outFields,n=null!=i.value&&i.value.toLowerCase().includes("nodata"),l=o&&!m&&i?.catalogItems?.features.length&&(a||!n),p=this.multidimensionalInfo&&"raster-dataset"===this.sourceType?x({rasterInfo:this.rasterInfo,multidimensionalDefinition:g?.multidimensionalDefinition,timeExtent:d,multidimensionalSubset:this.multidimensionalSubset}):null;if(!l)return this._processVisibleRastersResponse(i,{returnDomainValues:s,templateRRFunctionNames:u,showNoDataRecords:a,templateFields:r,effectiveMultidimensionalDefinition:p});const c=this.objectIdField||"ObjectId",h=i.catalogItems?.features??[],f=h.map(e=>e.attributes?.[c]),y=new Ve({objectIds:f,returnGeometry:!0,outSpatialReference:e.outSpatialReference,outFields:[c]}),R=await this.queryRasters(y);return R?.features?.length&&R.features.forEach(t=>{h.forEach(i=>{i.attributes[c]===t.attributes[c]&&t.geometry&&(i.geometry=t.geometry.clone(),null!=e.outSpatialReference&&(i.geometry.spatialReference=e.outSpatialReference))})}),this._processVisibleRastersResponse(i,{returnDomainValues:s,templateRRFunctionNames:u,showNoDataRecords:a,templateFields:r,effectiveMultidimensionalDefinition:p})}catch{throw new r("imagery-layer:query-visible-rasters","encountered error when querying visible rasters")}}async fetchVariableStatisticsHistograms(e,t){const r=i($e(this.parsedUrl)+"/statistics",{query:this._getQueryParams({variable:e}),signal:t}).then(e=>e.data?.statistics),s=i($e(this.parsedUrl)+"/histograms",{query:this._getQueryParams({variable:e}),signal:t}).then(e=>e.data?.histograms),n=await Promise.all([r,s]);return n[0]&&n[0].forEach(e=>{e.avg=e.mean,e.stddev=e.standardDeviation}),{statistics:n[0]||null,histograms:n[1]||null}}getMultidimensionalSubsetVariables(e){const t=e??this.serviceRasterInfo.multidimensionalInfo;return I(this.multidimensionalSubset,t)}async _fetchService(e){await this._fetchServiceInfo(e);const t=this.sourceJSON,i=null!=this.serviceRasterInfo?Promise.resolve(this.serviceRasterInfo):Te($e(this.parsedUrl),t,{signal:e,query:this._getQueryParams()}).then(e=>(this._set("serviceRasterInfo",e),this._set("multidimensionalInfo",e.multidimensionalInfo),Ce(e,t),e)),r=!this.rasterInfo&&this._hasRasterFunction(this.rasterFunction)?this._generateRasterInfo(this.rasterFunction,{signal:e}):Promise.resolve(this.rasterInfo),s=this.rasterFunctionInfos?.every(e=>null!=e.functionType)?null:this._getRasterFunctionInfos();return Promise.all([i,r,s]).then(e=>{e[1]?this._set("rasterInfo",e[1]):this._set("rasterInfo",e[0]),e[2]&&(t.rasterFunctionInfos=e[2],this.setAtOrigin("rasterFunctionInfos",e[2],"service")),this.internalRenderer&&!this._isSupportedRenderer(this.internalRenderer)&&(this._set("internalRenderer",null),n.getLogger(this).warn("ArcGISImageService","Switching to the default renderer. Renderer applied is not valid for this Imagery Layer")),this._set("internalRenderer",this._configRenderer(this.renderer)),this.addHandles([o(()=>this.rasterFunction,e=>{(this.renderer||this.symbolizer||this.popupEnabled&&this.popupTemplate)&&this._generateRasterInfo(e).then(e=>{e&&(this.rasterInfo=e)})})]);const{serviceRasterInfo:i}=this;null!=i.multidimensionalInfo&&this._updateMultidimensionalDefinition(i)})}_combineMosaicRuleWithTimeExtent(e,t){const i=this.timeInfo,{multidimensionalInfo:r}=this.serviceRasterInfo;if(null==e||null==r||null==t||null==i?.startField)return e;const{startField:s}=i,n=r.variables.some(e=>e.dimensions.some(e=>e.name===s))?s:"StdTime";if(e=e.clone(),"mosaic-dataset"===this.sourceType)return e.multidimensionalDefinition=e.multidimensionalDefinition?.filter(e=>e.dimensionName!==n),this._cleanupMultidimensionalDefinition(e);e.multidimensionalDefinition=e.multidimensionalDefinition||[];const a=e.multidimensionalDefinition.filter(e=>e.dimensionName===n),o=null!=t.start?t.start.getTime():null,l=null!=t.end?t.end.getTime():null,u=null==o||null==l||o===l,p=u?[o||l]:[[o,l]],c=this.version>=10.8;if(a.length)a.forEach(e=>{e.dimensionName===n&&(c?(e.dimensionName=null,e.isSlice=!1,e.values=[]):(e.isSlice=u,e.values=p))});else if(!c){const t=e.multidimensionalDefinition.filter(e=>null!=e.variableName&&null==e.dimensionName);t.length?t.forEach(e=>{e.dimensionName=n,e.isSlice=u,e.values=p}):e.multidimensionalDefinition.push(new O({variableName:"",dimensionName:n,isSlice:u,values:p}))}return this._cleanupMultidimensionalDefinition(e)}_cleanupMultidimensionalDefinition(e){return null==e?null:(e.multidimensionalDefinition&&(e.multidimensionalDefinition=e.multidimensionalDefinition.filter(e=>!(!e.variableName&&!e.dimensionName)),0===e.multidimensionalDefinition.length&&(e.multidimensionalDefinition=null)),"mosaic-dataset"!==this.sourceType&&null==e.multidimensionalDefinition?null:e)}async _prepareForQuery(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsQuery)throw new r("imagery-layer:query-rasters","query operation is not supported on the input image service");const i=null!=e?m(Ve,e):this.createQuery();return t=this._getRequestOptions(t),this.raster&&(t.query={...t.query,raster:this.raster}),{query:i,requestOptions:t}}_isSupportedRenderer(e){const{rasterInfo:t,rasterFunction:i}=this;return"unique-value"===e.type&&this._hasRasterFunction(i)&&1===t?.bandCount&&["u8","s8"].includes(t.pixelType)||null!=t&&null!=e&&te(t).includes(e.type)}async _fetchCapabilities(e){return this.capabilities||await this._fetchServiceInfo(e),this.capabilities}async _fetchServiceInfo(e){let t=this.sourceJSON;if(!t){const{data:r,ssl:s}=await i($e(this.parsedUrl),{query:this._getQueryParams(),signal:e});t=r,this.sourceJSON=t,s&&(this.url=this.url.replace(/^http:/i,"https:"))}if(t.capabilities?.toLowerCase().split(",").map(e=>e.trim()).indexOf("tilesonly")>-1)throw new r("imagery-layer:fetch-service-info","use ImageryTileLayer to open tiles-only image services");this.read(t,{origin:"service",url:this.parsedUrl})}_isMosaicDataset(e){return e.serviceSourceType?"esriImageServiceSourceTypeMosaicDataset"===e.serviceSourceType:e.fields?.length>0}_isMosaicRuleSupported(e){if(!e)return!1;const t=this._isMosaicDataset(e),i=e.currentVersion>=10.71&&e.hasMultidimensions&&!(e.fields?.length>1);return t||i}_isVectorFieldResampleFunction(e){if(null==e)return!1;const{functionName:t,functionArguments:i}=e,r="resample"===t?.toLowerCase(),s=i?.ResampleType||i?.resampleType;return r&&(7===s||10===s)}_configRenderer(e){const{rasterInfo:t}=this;if(!this.isRenderedFormat&&!this.pixelFilter||this._isVectorDataSet()){const i=this.mosaicRule?.multidimensionalDefinition?.[0].variableName,r=ie({variableName:i,rasterFunctionName:this.rasterFunction?.functionName,presetRenderers:this.presetRenderers});if(!this.bandIds&&t.bandCount>=3){const e=r?.bandIds??ee(t);!e||3===t.bandCount&&0===e[0]&&1===e[1]&&2===e[2]||(this.bandIds=e)}e||(e=r?.renderer??Z(t,{bandIds:this.bandIds,variableName:this.rasterFunction?null:i}));const s=re(e.toJSON());this.symbolizer?(this.symbolizer.rendererJSON=s,this.symbolizer.rasterInfo=t):this.symbolizer=new se({rendererJSON:s,rasterInfo:t}),this.symbolizer.bind().success||(this.symbolizer=null)}return e}_clonePixelData(e){return null==e?e:{extent:e.extent&&e.extent.clone(),pixelBlock:null!=e.pixelBlock?e.pixelBlock.clone():null}}_getQueryParams(e){null!=e?.renderingRule&&"string"!=typeof e.renderingRule&&(e.renderingRule=this._getRenderingRuleString(e.renderingRule));const{raster:t,viewId:i}=this;return{raster:t,viewId:i,f:"json",...e,...this.customParameters}}_getRequestOptions(e){return{...e,query:{...e?.query,...this.customParameters}}}_decodePixelBlock(e,t,i){return this._rasterJobHandler?this._rasterJobHandler.decode({data:e,options:t}):v(e,t,i)}async _getRasterFunctionInfos(e){const t=this.sourceJSON.rasterFunctionInfos;if(this.loaded||!t?.length)return t;if(t&&this.version>=10.3){if(1===t.length&&"none"===t[0].name.toLowerCase())return[{thumbnail:"",functionType:0,...t[0]}];const r=await i($e(this.parsedUrl)+"/rasterFunctionInfos",{query:this._getQueryParams(),signal:e});return r.data?.rasterFunctionInfos}return null}_canRequestImageElement(e){return!this.pixelFilter&&(!e||e.includes("png"))}async _requestArrayBuffer(e){const{imageProps:t,requestAsImageElement:s,returnImageBitmap:n,signal:a}=e;if(s&&this._canRequestImageElement(t.format)){const r=`${$e(this.parsedUrl)}/exportImage`,{data:s}=await i(r,{responseType:n?"blob":"image",query:this._getQueryParams({f:"image",...this.refreshParameters,...e.imageServiceParameters}),signal:a});if(s instanceof Blob){const{bitmap:e}=await q(s,r,{signal:a});return{imageBitmap:e,params:t}}return{imageOrCanvasElement:s,params:t}}const o=this._initJobHandler(),l=i($e(this.parsedUrl)+"/exportImage",{responseType:"array-buffer",query:this._getQueryParams({f:"image",...e.imageServiceParameters}),signal:a}),u=(await Promise.all([l,o]))[0].data,p=t.format||"jpgpng";let c=p;if("bsq"!==c&&"bip"!==c&&(c=b(u)),!c)throw new r("imagery-layer:fetch-image","unsupported format signature "+String.fromCharCode.apply(null,new Uint8Array(u)));const m={signal:a},h=this._decodePixelBlock(u,{width:t.width,height:t.height,format:p,applyJpegMask:!0},m);return{pixelData:{pixelBlock:await h,extent:t.extent},params:t}}_generateRasterInfo(e,t){return this.generateRasterInfo(e,t).catch(()=>null)}_isValidCustomizedMosaicRule(e){return e&&JSON.stringify(e.toJSON())!==JSON.stringify(this.defaultMosaicRule?.toJSON())}_updateMultidimensionalDefinition(e){if(this._isValidCustomizedMosaicRule(this.mosaicRule))return;let t=w(e,{multidimensionalSubset:this.multidimensionalSubset});if(null!=t&&t.length>0){this.mosaicRule=this.mosaicRule||new j;const e=this.mosaicRule.multidimensionalDefinition;!this.sourceJSON.defaultVariableName&&this.rasterFunction&&"none"!==this.rasterFunction.functionName?.toLowerCase()&&t.forEach(e=>e.variableName=""),t=t.filter(({variableName:e,dimensionName:t})=>e&&"*"!==e||t),!e?.length&&t.length&&(this.mosaicRule.multidimensionalDefinition=t)}}_processVisibleRastersResponse(e,i){i=i||{};const r=e.value,{templateRRFunctionNames:s,showNoDataRecords:n,returnDomainValues:a,templateFields:o}=i,l=e.processedValues;let u=e.catalogItems?.features,p=e.properties?.Values?.map(e=>e.replaceAll(/ /gi,", "))||[];const c=this.objectIdField||"ObjectId",m="string"==typeof r&&r.toLowerCase().includes("nodata"),h=[];if(r&&!u&&(!m||n)){const e={};e[c]=0;p=[r],u=[new t({geometry:this.fullExtent,attributes:e})],this.multidimensionalInfo&&"raster-dataset"===this.sourceType&&W(this.rasterFields,e,i.effectiveMultidimensionalDefinition)}if(!u)return[];this._updateResponseFieldNames(u,o),m&&!n&&(u=[]);const{itemPixelValue:d,servicePixelValue:f}=$,g=this.rasterFields.some(e=>e.name===d),y=this.graphicOrigin;for(let t=0;t<u.length;t++){const e=u[t];if(null!=r){const i=p[t],a=this.rasterFunction&&l&&l.length>0&&s&&s.length>0&&s.includes(this.rasterFunction.functionName)?l[s.indexOf(this.rasterFunction.functionName)]:r;if("nodata"===i.toLowerCase()&&!n)continue;g&&(e.attributes[d]=i),e.attributes[f]=a,this._updateFeatureWithMagDirValues(e,i);const o=this.fields&&this.fields.length>0;let u=this.rasterFunction&&null!=this.serviceRasterInfo.attributeTable?o?i:r:a;this.rasterFunction||(u=o?i:r),this._updateFeatureWithRasterAttributeTableValues(e,u)}if(e.sourceLayer=e.layer=this,e.origin=y,a&&this._updateFeatureWithDomainValues(e),s&&l&&s.length===l.length)for(let t=0;t<s.length;t++){const i=`${$.servicePixelValue}.${s[t]}`;e.attributes[i]=l[t]}h.push(u[t])}return h}_processMultidimensionalIntersection(e,t,i){const{multidimensionalSubset:r}=this;if(!r)return{isOutSide:!1,timeExtent:t,mosaicRule:i=this._combineMosaicRuleWithTimeExtent(i,t)};if(r){const{isOutside:i,intersection:s}=R(r,{geometry:e,timeExtent:t});if(i)return{isOutSide:!0,timeExtent:null,mosaicRule:null};null!=s?.timeExtent&&(t=s.timeExtent)}if(i=this._combineMosaicRuleWithTimeExtent(i,t),i?.multidimensionalDefinition){const{isOutside:e}=R(r,{multidimensionalDefinition:i.multidimensionalDefinition});if(e)return{isOutSide:!0,timeExtent:null,mosaicRule:null}}return{isOutSide:!1,timeExtent:t,mosaicRule:i}}_updateFeatureWithRasterAttributeTableValues(e,t){const i=this.rasterInfo.attributeTable||this.serviceRasterInfo.attributeTable;if(null==i)return;const{features:r,fields:s}=i,n=s.map(e=>e.name).find(e=>"value"===e.toLowerCase());if(!n)return;const a=r.filter(e=>e.attributes[n]===(null!=t?parseInt(t,10):null));a&&a[0]&&s.forEach(t=>{const i=X+t.name;e.attributes[i]=a[0].attributes[t.name]})}_updateFeatureWithMagDirValues(e,t){if(!this._isVectorDataSet())return;const i=t.split(/,\s*/).map(e=>parseFloat(e)),r=i.map(e=>[e]),s=i.map(e=>({minValue:e,maxValue:e,noDataValue:null})),n=new E({height:1,width:1,pixelType:"f32",pixels:r,statistics:s});null!=this.pixelFilter&&this.pixelFilter({pixelBlock:n,extent:new d(0,0,0,0,this.spatialReference)});const a="esriImageServiceDataTypeVector-MagDir"===this.serviceDataType?[n.pixels[0][0],n.pixels[1][0]]:F([n.pixels[0][0],n.pixels[1][0]]);e.attributes[$.magnitude]=a[0],e.attributes[$.direction]=a[1]}_updateFeatureWithDomainValues(e){const t=this.fields&&this.fields.filter(e=>"coded-value"===e.domain?.type);null!=t&&t.forEach(t=>{const i=e.attributes[t.name];if(null!=i){const r=t.domain.codedValues.find(e=>e.code===i);r&&(e.attributes[t.name]=r.name)}})}_updateResponseFieldNames(e,t){if(!t||t.length<1)return;const i=this.fieldsIndex;null!=i&&e.forEach(e=>{if(e?.attributes)for(const r of t){const t=i.get(r)?.name;t&&t!==r&&(e.attributes[r]=e.attributes[t],delete e.attributes[t])}})}_getRenderingRuleString(e){if(e){let t=e.toJSON();return t=t.rasterFunctionDefinition??t,(t.thumbnail||t.thumbnailEx)&&(t.thumbnail=t.thumbnailEx=null),JSON.stringify(t)}return null}_hasRasterFunction(e){return null!=e?.functionName&&"none"!==e.functionName.toLowerCase()}_updateRenderingRulesFunctionName(e,t){if(!e||e.length<1)return;if("Raw"===e)return e.replace("Raw","None");const i=e.toLowerCase().replaceAll(/ /gi,"_");return t.has(i)?t.get(i):e}_isRFTJson(e){return e?.name&&e.arguments&&e.function&&e.hasOwnProperty("functionType")}_isVectorDataSet(){return"esriImageServiceDataTypeVector-UV"===this.serviceDataType||"esriImageServiceDataTypeVector-MagDir"===this.serviceDataType}_applyMosaicAndRenderingRules(e){const{raster:t,mosaicRule:i,rasterFunction:r}=this;r&&null==e.rasterFunction&&(e.rasterFunction=r),i&&null==e.mosaicRule&&(e.mosaicRule=i),t&&null==e.raster&&(e.raster=t)}async _updateCurrentRasterInfo(e){if(this.renderer||this.symbolizer){const t=await this._generateRasterInfo(this.rasterFunction,{signal:e});t&&(this.rasterInfo=t)}}_applyMosaicRule(e){const{raster:t,mosaicRule:i}=this;i&&null==e.mosaicRule&&(e.mosaicRule=i),t&&null==e.raster&&(e.raster=t)}_readCapabilities(e){const t=e.capabilities?e.capabilities.toLowerCase().split(",").map(e=>e.trim()):["image","catalog"],{currentVersion:i,maxRecordCount:r}=e,s=t.includes("image"),n="esriImageServiceDataTypeElevation"===e.serviceDataType,a=!(!e.spatialReference&&!e.extent?.spatialReference),o=t.includes("edit"),l=t.includes("mensuration")&&a,u=null==e.mensurationCapabilities?[]:e.mensurationCapabilities.toLowerCase().split(",").map(e=>e.trim()),p=l&&u.includes("basic"),c=this._isMosaicDataset(e)&&t.includes("catalog"),m=t.includes("download"),h=i>=10.7&&n||i>=11.4&&(n||l&&u.includes("3d")),d=c&&e.fields&&e.fields.length>0,f=d&&e.supportsAdvancedQueries?e.advancedQueryCapabilities:void 0;return{data:{supportsAttachment:!1},operations:{supportsComputeHistograms:s,supportsExportImage:s,supportsIdentify:s,supportsImageToMap:i>=11.2&&c,supportsImageToMapMultiray:i>=11.2&&c,supportsMapToImage:i>=11.2&&c,supportsFindImages:i>=11.2&&c,supportsGetImageUrl:i>=11.3&&m,supportsMeasure:l,supportsMeasureFromImage:i>=11.2,supportsDownload:m,supportsQuery:d,supportsGetSamples:i>=10.2&&s,supportsProject:i>=10.3&&s,supportsComputeStatisticsHistograms:i>=10.4&&s,supportsQueryBoundary:i>=10.6&&s,supportsCalculateVolume:h,supportsComputePixelLocation:i>=10.7&&c,supportsComputeAngles:i>=10.91,supportsQueryGPSInfo:i>=11.2&&c,supportsAdd:o,supportsDelete:o,supportsEditing:o,supportsUpdate:o,supportsCalculate:!1,supportsTruncate:!1,supportsValidateSql:!1,supportsChangeTracking:!1,supportsQueryAttachments:!1,supportsResizeAttachments:!1,supportsSync:!1,supportsExceedsLimitStatistics:!1,supportsQueryAnalytics:!1,supportsQueryBins:!1,supportsQueryPivot:!1,supportsQueryTopFeatures:!1,supportsAsyncConvert3D:!1},query:{maxRecordCount:r,maxRecordCountFactor:void 0,maxUniqueIDCount:void 0,relativeTimeBinWindow:void 0,supportsStatisticsAggregatedIds:!!f?.supportsAggregateIds,supportsStatistics:!!f?.supportsStatistics,supportsOrderBy:!!f?.supportsOrderBy,supportsDistinct:!!f?.supportsDistinct,supportsPagination:!!f?.supportsPagination,supportsPaginationOnAggregatedQueries:!!f?.supportsPaginationOnAggregatedQueries,supportsStandardizedQueriesOnly:!!f?.useStandardizedQueries,supportsPercentileStatistics:!!f?.supportsPercentileStatistics,supportsCentroid:!!f?.supportsReturningGeometryCentroid,supportsCentroidOnDegeneratedQuantizedGeometry:!1,supportsCurrentUser:!1,supportsDegeneratedQuantizedGeometry:!1,supportsDistance:!!f?.supportsQueryWithDistance,supportsOutDistance:!!f?.supportsOutDistance,supportsExtent:!!f?.supportsReturningQueryExtent,supportsGeometryProperties:!!f?.supportsReturningGeometryProperties,supportsHavingClause:!!f?.supportsHavingClause,supportsQuantization:!1,supportsQuantizationEditMode:!1,supportsQueryGeometry:!1,supportsResultType:!1,supportsReturnMesh:!1,supportsReturnExceededLimitGeometries:!1,supportsMaxRecordCountFactor:!1,supportsSqlExpression:f?.supportsSqlExpression??!!f,supportsTopFeaturesQuery:!1,supportsQueryByAnonymous:!1,supportsQueryByOthers:!1,supportsHistoricMoment:!1,supportsFormatPBF:!1,supportsFormatPBFWithCurves:!1,supportsDisjointSpatialRelationship:!1,supportsCacheHint:!1,supportsSpatialAggregationStatistics:!1,supportedSpatialAggregationStatistics:{envelope:!1,centroid:!1,convexHull:!1},supportsDefaultSpatialReference:!!f?.supportsDefaultSR,supportsFullTextSearch:!1,supportsCompactGeometry:!1,standardMaxRecordCount:void 0,standardMaxRecordCountNoGeometry:void 0,tileMaxRecordCount:void 0,supportsTrueCurve:!1},mensuration:{supportsDistanceAndAngle:p,supportsAreaAndPerimeter:p,supportsPointOrCentroid:p,supportsHeightFromBaseAndTop:l&&u.includes("base-top height"),supportsHeightFromBaseAndTopShadow:l&&u.includes("base-top shadow height"),supportsHeightFromTopAndTopShadow:l&&u.includes("top-top shadow height"),supports3D:l&&u.includes("3d")}}}};function $e(e){return e?.path??""}return e([u({clonable:!1})],We.prototype,"_functionRasterInfos",void 0),e([u({readOnly:!0})],We.prototype,"_serviceSupportsMosaicRule",void 0),e([Je("_serviceSupportsMosaicRule",["currentVersion","fields"])],We.prototype,"readServiceSupportsMosaicRule",null),e([u({readOnly:!0})],We.prototype,"_rasterFunctionNamesIndex",null),e([u()],We.prototype,"_projectedFullExtent",void 0),e([u({clonable:!1})],We.prototype,"_exportTileQueue",void 0),e([u()],We.prototype,"adjustAspectRatio",void 0),e([u({type:[c],json:{write:!0}})],We.prototype,"bandIds",void 0),e([Je("bandIds")],We.prototype,"readBandIds",null),e([u({readOnly:!0,json:{read:!1}})],We.prototype,"capabilities",void 0),e([Je("service","capabilities",["capabilities","currentVersion","serviceDataType"])],We.prototype,"readCapabilities",null),e([u({type:Number})],We.prototype,"compressionQuality",void 0),e([Be("compressionQuality")],We.prototype,"writeCompressionQuality",null),e([u({type:Number})],We.prototype,"compressionTolerance",void 0),e([Be("compressionTolerance")],We.prototype,"writeCompressionTolerance",null),e([u({json:{read:{source:"copyrightText"}}})],We.prototype,"copyright",void 0),e([u({readOnly:!0})],We.prototype,"defaultMosaicRule",void 0),e([Je("defaultMosaicRule",["defaultMosaicMethod"])],We.prototype,"readDefaultMosaicRule",null),e([u({type:String,json:{name:"layerDefinition.definitionExpression",write:{enabled:!0,allowNull:!0}}})],We.prototype,"definitionExpression",void 0),e([u({readOnly:!0,constructOnly:!0})],We.prototype,"exportImageServiceParameters",void 0),e([u()],We.prototype,"rasterInfo",void 0),e([u({readOnly:!0,type:[M]})],We.prototype,"fields",void 0),e([u({readOnly:!0})],We.prototype,"fieldsIndex",null),e([u({type:["png","png8","png24","png32","jpg","bmp","gif","jpgpng","lerc","tiff","bip","bsq"],json:{write:!0}})],We.prototype,"format",null),e([Je("service","format",["serviceDataType","allowRasterFunction"])],We.prototype,"readFormat",null),e([u({type:d})],We.prototype,"fullExtent",void 0),e([u({readOnly:!0})],We.prototype,"hasMultidimensions",void 0),e([u({json:{read:{source:"maxImageHeight"}}})],We.prototype,"imageMaxHeight",void 0),e([u({json:{read:{source:"maxImageWidth"}}})],We.prototype,"imageMaxWidth",void 0),e([u({type:String,json:{type:A.jsonValues,read:A.read,write:A.write}})],We.prototype,"interpolation",void 0),e([u()],We.prototype,"minScale",void 0),e([Je("service","minScale")],We.prototype,"readMinScale",null),e([u()],We.prototype,"maxScale",void 0),e([Je("service","maxScale")],We.prototype,"readMaxScale",null),e([u({type:j})],We.prototype,"mosaicRule",null),e([Je("mosaicRule",["mosaicRule","defaultMosaicMethod"])],We.prototype,"readMosaicRule",null),e([Be("mosaicRule")],We.prototype,"writeMosaicRule",null),e([u()],We.prototype,"multidimensionalInfo",void 0),e([u({type:P,json:{write:!0}})],We.prototype,"multidimensionalSubset",void 0),e([u({json:{type:[Number,[Number]],write:!0}})],We.prototype,"noData",void 0),e([u({type:String,json:{type:Q.jsonValues,read:Q.read,write:Q.write}})],We.prototype,"noDataInterpretation",void 0),e([u({type:String,readOnly:!0,json:{read:{source:["fields"]}}})],We.prototype,"objectIdField",void 0),e([Je("objectIdField")],We.prototype,"readObjectIdField",null),e([u({readOnly:!0})],We.prototype,"geometryType",void 0),e([u({})],We.prototype,"typeIdField",void 0),e([u({})],We.prototype,"types",void 0),e([u({readOnly:!0})],We.prototype,"parsedUrl",null),e([u({type:Function})],We.prototype,"pixelFilter",void 0),e([u()],We.prototype,"raster",void 0),e([u({readOnly:!0})],We.prototype,"sourceType",void 0),e([Je("sourceType",["serviceSourceType","fields"])],We.prototype,"readSourceType",null),e([u()],We.prototype,"viewId",void 0),e([u({types:ne})],We.prototype,"renderer",null),e([u({types:ne,json:{name:"layerDefinition.drawingInfo.renderer",origins:{"web-scene":{types:ae,name:"layerDefinition.drawingInfo.renderer",write:{overridePolicy:e=>({enabled:e&&"vector-field"!==e.type})}}}}})],We.prototype,"internalRenderer",null),e([Je("internalRenderer")],We.prototype,"readRenderer",null),e([Be("internalRenderer")],We.prototype,"writeRenderer",null),e([u({clonable:!1})],We.prototype,"symbolizer",void 0),e([u(_)],We.prototype,"opacity",void 0),e([u({readOnly:!0})],We.prototype,"rasterFields",null),e([u({constructOnly:!0})],We.prototype,"rasterFunctionInfos",void 0),e([u({type:K,json:{name:"renderingRule"}})],We.prototype,"rasterFunction",null),e([Je("rasterFunction",["renderingRule","rasterFunctionInfos"])],We.prototype,"readRasterFunction",null),e([u({readOnly:!0})],We.prototype,"serviceDataType",void 0),e([u({readOnly:!0,type:g})],We.prototype,"spatialReference",void 0),e([Je("spatialReference",["spatialReference","extent"])],We.prototype,"readSpatialReference",null),e([u({type:V.apiValues,json:{read:V.read,type:V.jsonValues}})],We.prototype,"pixelType",void 0),e([Be("pixelType")],We.prototype,"writePixelType",null),e([u({constructOnly:!0,type:Y})],We.prototype,"serviceRasterInfo",void 0),e([u()],We.prototype,"sourceJSON",void 0),e([u(D)],We.prototype,"url",void 0),e([u({readOnly:!0})],We.prototype,"version",void 0),e([Je("version",["currentVersion","fields","timeInfo"])],We.prototype,"readVersion",null),We=e([p("esri.layers.mixins.ArcGISImageService")],We),We};export{Ge as ArcGISImageService};
|
|
2
|
+
import{__decorate as e}from"tslib";import t from"../../Graphic.js";import i from"../../request.js";import r from"../../core/Error.js";import{clone as s}from"../../core/lang.js";import n from"../../core/Logger.js";import{QueueProcessor as a}from"../../core/QueueProcessor.js";import{watch as o}from"../../core/reactiveUtils.js";import{urlToObject as l}from"../../core/urlUtils.js";import{property as u,subclass as p}from"../../core/accessorSupport/decorators.js";import{Integer as c,ensureClass as m}from"../../core/accessorSupport/ensureType.js";import{runUntracked as h}from"../../core/accessorSupport/tracking.js";import d from"../../geometry/Extent.js";import f from"../../geometry/Polygon.js";import g from"../../geometry/SpatialReference.js";import{srToRESTValue as y}from"../../geometry/support/spatialReferenceUtils.js";import{intersectMultimensionalSubset as R,getEffectiveMultidimensionalDefinition as x,getSubsetVariablesFromMdInfo as I,getDefaultMultidimensionalDefinition as w}from"../raster/datasets/multidimensionalUtils.js";import{decode as v,getFormat as b}from"../raster/formats/RasterCodec.js";import{mosaicPixelData as S}from"../raster/functions/pixelUtils.js";import{uvComponentToVector as F}from"../raster/functions/vectorFieldUtils.js";import{opacity as _,url as D}from"../support/commonProperties.js";import O from"../support/DimensionalDefinition.js";import{ExportImageServiceParameters as T}from"../support/ExportImageServiceParameters.js";import M from"../support/Field.js";import C from"../support/FieldsIndex.js";import{createBitmap as q}from"../support/imageBitmapUtils.js";import{isSupportedRendererType as N}from"../support/imageryRendererUtils.js";import j from"../support/MosaicRule.js";import P from"../support/MultidimensionalSubset.js";import E from"../support/PixelBlock.js";import{interpolationKebab as A,noDataInterpretationKebab as Q,pixelTypeKebabDict as V}from"../support/rasterEnums.js";import{getServicePixelValueField as J,getItemPixelValueField as B,getRawServicePixelValueField as U,getProcessedServicePixelValueField as z,getMagnitudeField as L,getDirectionField as H,getMultidimensionalFields as G,getRasterAttributeTableFields as k,addMultidimensionalFieldValues as W,commonRasterFieldNames as $,rasterFieldPrefix as X}from"../support/rasterFieldUtils.js";import K from"../support/RasterFunction.js";import Y from"../support/RasterInfo.js";import{createDefaultRenderer as Z,getDefaultBandCombination as ee,getSupportedRendererTypes as te,getField as ie,matchPresetRenderer as re,normalizeRendererJSON as se}from"../../renderers/support/rasterRendererHelper.js";import ne from"../../renderers/support/RasterSymbolizer.js";import{rasterRendererTypes as ae,websceneRasterRendererTypes as oe,read as le}from"../../renderers/support/rasterTypeUtils.js";import{calculateVolume as ue,computeAngles as pe,computePixelSpaceLocations as ce,computeHistograms as me,computeStatisticsHistograms as he,measureHeight as de,measureAreaAndPerimeter as fe,measureDistanceAndAngle as ge,measurePointOrCentroid as ye,measureLengthFromImage as Re,measureAreaFromImage as xe,getImageSpatialReferenceQueryParameter as Ie,getSamples as we,identify as ve,imageToMap as be,imageToMapMultiray as Se,mapToImage as Fe,findImages as _e,getImageUrl as De,queryBoundary as Oe,queryGPSInfo as Te}from"../../rest/imageService.js";import{fetchServiceRasterInfo as Me,generateRasterInfo as Ce,patchServiceInfo as qe}from"../../rest/imageService/fetchRasterInfo.js";import{getCatalogItemRasterInfo as Ne}from"../../rest/imageService/getCatalogItemRasterInfo.js";import{executeForCount as je}from"../../rest/query/executeForCount.js";import{executeForExtent as Pe}from"../../rest/query/executeForExtent.js";import{executeForIds as Ee}from"../../rest/query/executeForIds.js";import{executeQueryJSON as Ae}from"../../rest/query/executeQueryJSON.js";import Qe from"../../rest/support/FeatureSet.js";import Ve from"../../rest/support/ImageIdentifyParameters.js";import Je from"../../rest/support/Query.js";import{reader as Be}from"../../core/accessorSupport/decorators/reader.js";import{writer as Ue}from"../../core/accessorSupport/decorators/writer.js";const ze=512,Le=4096,He=new Set(["png","png8","png24","png32","jpg","bmp","gif","jpgpng","lerc","tiff"]);function Ge(e){const t=JSON.stringify(e),i=t.includes('"rasterFunctionDefinition":{'),r=i?t.match(/"type":"(.*?FunctionArguments")/gi):t.match(/"rasterFunction":"(.*?")/gi),s=r?.map(e=>i?e.slice(8,-18):e.slice(18,-1));return s?s.join("/"):null}const ke=ke=>{const We=ke;let $e=class extends We{constructor(){super(...arguments),this._functionRasterInfos={},this._serviceSupportsMosaicRule=null,this._exportTileQueue=new a({concurrency:4,process:(e,t)=>this._fetchPixels(e.extent,e.width,e.height,{...e.options,signal:t})}),this.adjustAspectRatio=null,this.bandIds=void 0,this.capabilities=null,this.compressionQuality=void 0,this.compressionTolerance=.01,this.copyright=null,this.defaultMosaicRule=null,this.definitionExpression=null,this.exportImageServiceParameters=null,this.rasterInfo=null,this.fields=null,this.fullExtent=null,this.hasMultidimensions=!1,this.imageMaxHeight=4100,this.imageMaxWidth=4100,this.interpolation=void 0,this.minScale=0,this.maxScale=0,this.multidimensionalInfo=null,this.multidimensionalSubset=null,this.noData=null,this.noDataInterpretation=void 0,this.objectIdField=null,this.geometryType="polygon",this.typeIdField=null,this.types=[],this.pixelFilter=null,this.raster=void 0,this.sourceType=null,this.viewId=void 0,this.symbolizer=null,this.rasterFunctionInfos=null,this.serviceDataType=null,this.spatialReference=null,this.pixelType=null,this.serviceRasterInfo=null,this.sourceJSON=null,this.url=null,this.version=void 0}initialize(){this._set("exportImageServiceParameters",new T({layer:this}))}readServiceSupportsMosaicRule(e,t){return this._isMosaicRuleSupported(t)}get _rasterFunctionNamesIndex(){const e=new Map;return!this.rasterFunctionInfos||null!=this.rasterFunctionInfos&&this.rasterFunctionInfos.length<1||null!=this.rasterFunctionInfos&&this.rasterFunctionInfos.forEach(t=>{e.set(t.name.toLowerCase().replaceAll(/ /gi,"_"),t.name)}),e}readBandIds(e,t){if(Array.isArray(e)&&e.length>0&&e.every(e=>"number"==typeof e))return e}readCapabilities(e,t){return this._readCapabilities(t)}writeCompressionQuality(e,t,i){null!=e&&"lerc"!==this.format&&(t[i]=e)}writeCompressionTolerance(e,t,i){"lerc"===this.format&&null!=e&&(t[i]=e)}readDefaultMosaicRule(e,t){return this._serviceSupportsMosaicRule?h(()=>j.fromJSON(t)):null}get fieldsIndex(){return this.fields?new C(this.fields):null}set format(e){e&&He.has(e.toLowerCase())&&this._set("format",e.toLowerCase())}readFormat(e,t){return"esriImageServiceDataTypeVector-UV"===t.serviceDataType||"esriImageServiceDataTypeVector-MagDir"===t.serviceDataType||null!=this.pixelFilter||!1===t.allowRasterFunction?"lerc":"jpgpng"}get isRenderedFormat(){return!this.format||this.format.includes("jpg")||this.format.includes("png")}readMinScale(e,t){return null!=t.minLOD&&null!=t.maxLOD?e:0}readMaxScale(e,t){return null!=t.minLOD&&null!=t.maxLOD?e:0}set mosaicRule(e){let t=e;t?.mosaicMethod&&(t=j.fromJSON({...t.toJSON(),mosaicMethod:t.mosaicMethod,mosaicOperation:t.mosaicOperation})),this._set("mosaicRule",t)}readMosaicRule(e,t){const i=e||t.mosaicRule;return i?j.fromJSON(i):this._isMosaicRuleSupported(t)?j.fromJSON(t):null}writeMosaicRule(e,t,i){const{mosaicRule:r}=this;this._isValidCustomizedMosaicRule(r)&&(t[i]=r.toJSON())}readObjectIdField(e,t){if(!e){const i=t.fields.find(e=>"esriFieldTypeOID"===e.type||"oid"===e.type);e=i?.name}return e}get parsedUrl(){return l(this.url)}readSourceType(e,t){return this._isMosaicDataset(t)?"mosaic-dataset":"raster-dataset"}get renderer(){const{activePresetRendererName:e,presetRenderers:t}=this;if(e){const i=t?.find(({name:t})=>t===e);return i?.renderer.clone()}return this.internalRenderer}set renderer(e){this.activePresetRendererName=null,this.internalRenderer=e}set internalRenderer(e){this.loaded&&(e=this._configRenderer(e)),this._set("internalRenderer",e)}readRenderer(e,t,i){const r=t?.layerDefinition?.drawingInfo?.renderer,s=le(r,i);return null==s?null:("vector-field"===s.type&&t.symbolTileSize&&!r.symbolTileSize&&(s.symbolTileSize=t.symbolTileSize),N(s)||n.getLogger(this).warn("ArcGISImageService","Imagery layer doesn't support given renderer type."),s)}writeRenderer(e,t,i){t.layerDefinition=t.layerDefinition||{},t.layerDefinition.drawingInfo=t.layerDefinition.drawingInfo||{},t.layerDefinition.drawingInfo.renderer=e.toJSON()}get rasterFields(){const e=this.fields?.map(e=>e.clone())??[];e.push(J()),"mosaic-dataset"===this.sourceType&&this.fields?.length&&e.push(B()),this.version>=10.4&&null!=this.rasterFunctionInfos&&this.rasterFunctionInfos.some(({name:e})=>"none"===e.toLowerCase())&&e.push(U()),null!=this.rasterFunctionInfos&&this.rasterFunctionInfos.filter(({name:e})=>"none"!==e.toLowerCase()).forEach(({name:t})=>e.push(z(t)));const{rasterInfo:t}=this;if(this._isVectorDataSet()){const i=t?.multidimensionalInfo?.variables[0].unit?.trim(),r=L(i),s=H();e.push(r,s)}if(t?.multidimensionalInfo&&"raster-dataset"===this.sourceType){const i=G(t.multidimensionalInfo);e.push(...i)}const i=t?.attributeTable;if(null!=i){const t=k(i);e.push(...t)}return e}set rasterFunction(e){let t=e;t?.rasterFunction&&(t=K.fromJSON({...t.toJSON(),rasterFunction:t.rasterFunction,rasterFunctionArguments:t.rasterFunctionArguments})),this._set("rasterFunction",t)}readRasterFunction(e,t){const i=t.rasterFunctionInfos,r=t.renderingRule,s=null!=r&&Object.keys(r).length>0;return s||i?.length&&"None"!==i[0].name?this._isRFTJson(r)?K.fromJSON({rasterFunctionDefinition:r}):K.fromJSON(s?r:{rasterFunctionInfos:i}):null}readSpatialReference(e,t){const i=e||t.extent.spatialReference;return i?g.fromJSON(i):null}writePixelType(e,t,i){null!=this.serviceRasterInfo&&this.pixelType===this.serviceRasterInfo.pixelType||(t[i]=V.toJSON(e))}readVersion(e,t){let i=t.currentVersion;return i||(i=t.hasOwnProperty("fields")||t.hasOwnProperty("timeInfo")?10:9.3),i}applyFilter(e){let t=e;return this.pixelFilter&&(t=this._clonePixelData(e),this.pixelFilter(t)),t}async applyRenderer(e,t){let i=e,{renderer:r,symbolizer:s,pixelFilter:n}=this;const{isRawData:a}=e;if(a&&"lerc"!==this.format&&(r??=Z(this.rasterInfo,{bandIds:this.bandIds,variableName:this.rasterFunction?null:this.mosaicRule?.multidimensionalDefinition?.[0].variableName}),s||(this.symbolizer=new ne({rendererJSON:r.toJSON(),rasterInfo:this.rasterInfo}),s=this.symbolizer)),(a||!this.isRenderedFormat)&&r&&s&&!n){await this._updateSymbolizer(s,r);const n=this.bandIds?.length?this.bandIds:ee(this.rasterInfo);i=await this._symbolize({pixelData:e,bandIds:n,symbolizer:s},t)}return i}destroy(){this._shutdownJobHandler()}async calculateVolume(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsCalculateVolume)throw new r("imagery-layer:compute-pixel-space-locations","this operation is not supported on the input image service");return e=s(e),this.mosaicRule&&null==e.mosaicRule&&(e.mosaicRule=this.mosaicRule),ue(this.url,e,this._getRequestOptions(t))}async computeAngles(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsComputeAngles)throw new r("imagery-layer:compute-angles","this operation is not supported on the input image service");return pe(this.url,e,this._getRequestOptions(t))}async computePixelSpaceLocations(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsComputePixelLocation)throw new r("imagery-layer:compute-pixel-space-locations","this operation is not supported on the input image service");return ce(this.url,e,this._getRequestOptions(t))}async computeHistograms(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsComputeHistograms)throw new r("imagery-layer:compute-histograms","this operation is not supported on the input image service");return e=s(e),this._applyMosaicAndRenderingRules(e),me(this.url,e,this._getRequestOptions(t))}async computeStatisticsHistograms(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsComputeStatisticsHistograms)throw new r("imagery-layer:compute-statistics-histograms","this operation is not supported on the input image service");return e=s(e),this._applyMosaicAndRenderingRules(e),he(this.url,e,this._getRequestOptions(t))}async measureHeight(e,t){const i=await this._fetchCapabilities(t?.signal);if(!("base-and-top"===e.operationType?i.mensuration.supportsHeightFromBaseAndTop:"base-and-top-shadow"===e.operationType?i.mensuration.supportsHeightFromBaseAndTopShadow:i.mensuration.supportsHeightFromTopAndTopShadow))throw new r("imagery-layer:measure-height","this operation is not supported on the input image service");return e=s(e),this._applyMosaicRule(e),de(this.url,e,this._getRequestOptions(t))}async measureAreaAndPerimeter(e,t){const i=await this._fetchCapabilities(t?.signal);if(!(i.mensuration.supportsAreaAndPerimeter&&(!e.is3D||i.mensuration.supports3D)))throw new r("imagery-layer:measure-area-and-perimeter","this operation is not supported on the input image service");return e=s(e),this._applyMosaicRule(e),fe(this.url,e,this._getRequestOptions(t))}async measureDistanceAndAngle(e,t){const i=await this._fetchCapabilities(t?.signal);if(!(i.mensuration.supportsDistanceAndAngle&&(!e.is3D||i.mensuration.supports3D)))throw new r("imagery-layer:measure-distance-and-angle","this operation is not supported on the input image service");return e=s(e),this._applyMosaicRule(e),ge(this.url,e,this._getRequestOptions(t))}async measurePointOrCentroid(e,t){const i=await this._fetchCapabilities(t?.signal);if(!(i.mensuration.supportsPointOrCentroid&&(!e.is3D||i.mensuration.supports3D)))throw new r("imagery-layer:measure-point-or-centroid","this operation is not supported on the input image service");return e=s(e),this._applyMosaicRule(e),ye(this.url,e,this._getRequestOptions(t))}async measureLengthFromImage(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsMeasureFromImage)throw new r("imagery-layer:measure-length-from-image","this operation is not supported on the input image service");if("polyline"!==e.geometry.type)throw new r("imagery-layer:measure-length-from-image","this input geometry must be a polyline");return Re(this.url,e,this._getRequestOptions(t))}async measureAreaFromImage(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsMeasureFromImage)throw new r("imagery-layer:measure-area-from-image","this operation is not supported on the input image service");if("polygon"!==e.geometry.type)throw new r("imagery-layer:measure-area-from-image","this input geometry must be a polygon");return xe(this.url,e,this._getRequestOptions(t))}getField(e){const{fieldsIndex:t}=this;return null!=t?t.get(e):void 0}getFieldDomain(e,t){const i=this.getField(e);return i?i.domain:null}async internalFetchImage(e,t,i,r={}){await this._updateCurrentRasterInfo();const{exportImageServiceParameters:s}=this;let n=!1;if(r.requestRawData&&(await this._initJobHandler(),!s.requestRawData&&"lerc"!==this.format)){n=!0,s.requestRawData=!0;let e=this.bandIds;if(!e?.length){const t=ee(this.rasterInfo),i=Array.from({length:this.rasterInfo.bandCount},(e,t)=>t);i?.join(",")!==t?.join(",")&&(e=t)}s.rawDataRequestBandIds=e}const a=this.getExportImageServiceParameters(e,t,i,r.timeExtent);if(n&&(s.requestRawData=!1,s.rawDataRequestBandIds=null),null==a){if(r.requestAsImageElement&&this._canRequestImageElement(this.format)){const e=document.createElement("canvas");if(e.width=t,e.height=i,r.returnImageBitmap){const{bitmap:t}=await q(e,`${Xe(this.parsedUrl)}/exportImage`,r);return{imageBitmap:t}}return{imageOrCanvasElement:e}}const{bandIds:s,rasterInfo:n}=this,a=(s?.length||n.bandCount)??0,o=t*i,l=n.pixelType,u=[];for(let e=0;e<a;e++)u.push(E.createEmptyBand(l,o));return{pixelData:{pixelBlock:new E({width:t,height:i,pixels:u,mask:new Uint8Array(o),pixelType:l}),extent:e}}}const o=!!r.requestAsImageElement&&!this.pixelFilter,l=o&&!!r.returnImageBitmap,u={imageServiceParameters:a,imageProps:{extent:e,width:t,height:i,format:this.format},requestAsImageElement:o,returnImageBitmap:l,signal:r.signal};return this._requestArrayBuffer(u)}async fetchPixels(e,t,i,s={}){await this._initJobHandler(),s.applyRendering&&await this._updateCurrentRasterInfo();const{imageMaxWidth:n,imageMaxHeight:a}=this;if(t<=n&&i<=a)return this._exportTileQueue.push({extent:e,width:t,height:i,options:s},{signal:s.signal});if(t>Le||i>Le||n<ze||a<ze)throw new r("imagery-layer:fetch-pixels",`The image service has a maximum export size of ${n}x${a}. The requested size of ${t}x${i} exceeds this limit.`);let{xmin:o,ymax:l,spatialReference:u}=this._projectedFullExtent??this.fullExtent;if(!u?.equals(e.spatialReference)){const{projectLoad:t,projectExecute:i}=await(import("../../geometry/operators/projectOperator.js"));await t();const r=i(this.fullExtent,e.spatialReference);o=r.xmin,l=r.ymax,this._projectedFullExtent=r}const p=e.width/t,c=e.height/i,m=Math.floor((e.xmin-o)/p),h=Math.floor((l-e.ymax)/c),f=m+t,g=h+i,y=Math.floor(m/ze),R=Math.floor(h/ze),x=Math.ceil(f/ze)-1,I=Math.ceil(g/ze)-1,w=ze*p,v=ze*c,b=[];for(let r=R;r<=I;r++){const t=l-r*v,i=t-v;for(let r=y;r<=x;r++){const n=o+r*w,a=new d({xmin:n,ymin:i,xmax:n+w,ymax:t,spatialReference:e.spatialReference});b.push(this._exportTileQueue.push({extent:a,width:ze,height:ze,options:s},{signal:s.signal}))}}const F=await Promise.all(b);if(F.some(e=>null==e.pixelBlock))return{extent:e,pixelBlock:null};return{extent:e,pixelBlock:this._rasterJobHandler?await this._rasterJobHandler.mosaicPixelData({pixelBlocks:F,destExtent:e},{signal:s.signal,transferPixelsToWorker:!0}):S(F,e)?.pixelBlock}}async _fetchPixels(e,t,i,r={}){const s=r.applyRendering?void 0:new T({layer:this,requestRawData:!0,interpolation:r.interpolation??"nearest",bandIds:r.bandIds??[]}),n=this.getExportImageServiceParameters(e,t,i,r.timeExtent,s);if(null==n)return{extent:e,pixelBlock:null};delete n.pixelType,r.bandIds||delete n.bandIds,delete n.compressionQuality;const a={imageServiceParameters:n,imageProps:{extent:e,width:t,height:i,format:this.format},requestAsImageElement:!1,returnImageBitmap:!1,signal:r.signal},{pixelData:o}=await this._requestArrayBuffer(a);return o??{extent:e,pixelBlock:null}}fetchKeyProperties(e){return i(Xe(this.parsedUrl)+"/keyProperties",{query:this._getQueryParams({renderingRule:this.version>=10.3?e?.rasterFunction:null})}).then(e=>e.data)}fetchRasterAttributeTable(e){return this.version<10.1?Promise.reject(new r("#fetchRasterAttributeTable()","Failed to get rasterAttributeTable")):i(Xe(this.parsedUrl)+"/rasterAttributeTable",{query:this._getQueryParams({renderingRule:this.version>=10.3?e?.rasterFunction:null})}).then(e=>Qe.fromJSON(e.data))}getCatalogItemRasterInfo(e,t){const i={...t,query:this._getQueryParams()};return Ne(Xe(this.parsedUrl),e,i)}async getCatalogItemICSInfo(e,t){const{data:r}=await i(Xe(this.parsedUrl)+"/"+e+"/info/ics",{query:this._getQueryParams(),...t}),s=r?.ics;if(!s)return;let n=null;try{n=(await i(Xe(this.parsedUrl)+"/"+e+"/info",{query:this._getQueryParams(),...t})).data.extent}catch{}if(!n?.spatialReference)return{ics:s,icsToPixelTransform:null,icsExtent:null,northDirection:null};const a=this.version>=10.7?i(Xe(this.parsedUrl)+"/"+e+"/info/icstopixel",{query:this._getQueryParams(),...t}).then(e=>e.data).catch(()=>({})):{},o=n.spatialReference,l={geometries:JSON.stringify({geometryType:"esriGeometryEnvelope",geometries:[n]}),inSR:y(o),outSR:"0:"+e},u=i(Xe(this.parsedUrl)+"/project",{query:this._getQueryParams(l),...t}).then(e=>e.data).catch(()=>({})),p=5,c=(n.xmin+n.xmax)/2,m=(n.ymax-n.ymin)/(p+1),h=n.ymin+m,f=[];for(let i=0;i<p;i++)f.push({x:c,y:h+m*i});const R={geometries:JSON.stringify({geometryType:"esriGeometryPoint",geometries:f}),inSR:y(o),outSR:"0:"+e},x=i(Xe(this.parsedUrl)+"/project",{query:this._getQueryParams(R),...t}).then(e=>e.data).catch(()=>({})),I=await Promise.all([a,u,x]);let w=I[0].ipxf;if(null==w){const e=s.geodataXform?.xf_0;"topup"===e?.name?.toLowerCase()&&6===e?.coefficients?.length&&(w={affine:{name:"ics [sensor: Frame] to pixel (column, row) transformation",coefficients:e.coefficients,cellsizeRatio:0,type:"GeometricXform"}})}const v=d.fromJSON(I[1]?.geometries?.[0]);v&&(v.spatialReference=new g({wkid:0,imageCoordinateSystem:s}));const b=I[2].geometries?I[2].geometries.filter(e=>null!=e?.x&&null!=e.y&&"NaN"!==e.x&&"NaN"!==e.y):[],S=b.length;if(S<3)return{ics:s,icsToPixelTransform:w,icsExtent:v,northDirection:null};let F=0,_=0,D=0,O=0;for(let i=0;i<S;i++)F+=b[i].x,_+=b[i].y,D+=b[i].x*b[i].x,O+=b[i].x*b[i].y;const T=(S*O-F*_)/(S*D-F*F);let M=0;const C=b[p-1].x>b[0].x,q=b[p-1].y>b[0].y;return T===1/0?M=q?90:270:0===T?M=C?0:180:T>0?M=C?180*Math.atan(T)/Math.PI:180*Math.atan(T)/Math.PI+180:T<0&&(M=q?180+180*Math.atan(T)/Math.PI:360+180*Math.atan(T)/Math.PI),{ics:s,icsToPixelTransform:w,icsExtent:v,northDirection:M}}async generateRasterInfo(e,t){const i=m(K,e),s={...t,query:this._getQueryParams()};if(!i||"none"===i.functionName?.toLowerCase()||this._isVectorFieldResampleFunction(i))return this.serviceRasterInfo??Me(Xe(this.parsedUrl),this.sourceJSON,s);const n=Ge(i);if(!n)throw new r("imagery-layer:generate-raster-info","the rendering rule is not supported");if(this._functionRasterInfos[n])return this._functionRasterInfos[n];const a=Ce(Xe(this.parsedUrl),i,s);this._functionRasterInfos[n]=a;try{const t=await a,{rasterFunction:i}=this;return(i===e||JSON.stringify(i)===JSON.stringify(e))&&JSON.stringify(this.rasterInfo)!==JSON.stringify(t)&&(this.rasterInfo=t),t}catch(o){throw this._functionRasterInfos[n]=null,o}}getExportImageServiceParameters(e,t,i,r,s){e=e.clone().shiftCentralMeridian();const n=Ie(e.spatialReference,Xe(this.parsedUrl));s??=this.exportImageServiceParameters;const a=s.toJSON(),{bandIds:o,noData:l}=a;let{renderingRule:u}=a;const p=this.rasterFunction?.rasterFunctionDefinition,c=this.renderer?.type,m=!c||"raster-stretch"===c||"raster-colormap"===c||"unique-value"===c||"class-breaks"===c||"raster-shaded-relief"===c;if(o?.length&&this._hasRasterFunction(this.rasterFunction)&&!p&&m){const e={rasterFunction:"ExtractBand",rasterFunctionArguments:{BandIds:o}};if("Stretch"===u.rasterFunction)e.rasterFunctionArguments.Raster=u.rasterFunctionArguments.Raster,u.rasterFunctionArguments.Raster=e;else if("Colormap"===u.rasterFunction){const t=u.rasterFunctionArguments.Raster;"Stretch"===t?.rasterFunction?(e.rasterFunctionArguments.Raster=t.rasterFunctionArguments.Raster,t.rasterFunctionArguments.Raster=e):(e.rasterFunctionArguments.Raster=t,u.rasterFunctionArguments.Raster=e)}else e.rasterFunctionArguments.Raster=u,u=e;a.bandIds=void 0}else a.bandIds=o?.join(",");Array.isArray(l)&&l.length>0&&(a.noData=l.join(","));const h=this._processMultidimensionalIntersection(null,r,s.mosaicRule);if(h.isOutSide)return null;a.mosaicRule=null!=h.mosaicRule?JSON.stringify(h.mosaicRule):null,r=h.timeExtent,a.renderingRule=this._getRenderingRuleString(K.fromJSON(u));const d={};if(null!=r){const{start:e,end:t}=r.toJSON();e&&t&&e===t?d.time=""+e:null==e&&null==t||(d.time=`${e??"null"},${t??"null"}`)}return{bbox:e.xmin+","+e.ymin+","+e.xmax+","+e.ymax,bboxSR:n,imageSR:n,size:t+","+i,...a,...d}}async getSamples(e,t){const i=await this._fetchCapabilities(t?.signal);if(!i?.operations.supportsGetSamples)throw new r("imagery-layer:get-samples","getSamples operation is not supported on the input image service");e=s(e);const{raster:n}=this;return n&&null==e.raster&&(e.raster=n),we(this.url,e,this._getRequestOptions(t))}async identify(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsIdentify)throw new r("imagery-layer:identify","identify operation is not supported on the input image service");e=s(e),this.version<10.91&&"extent"===e.geometry?.type&&(e.geometry=f.fromExtent(e.geometry));const i=this._processMultidimensionalIntersection(e.geometry,e.timeExtent,e.mosaicRule||this.mosaicRule);if(i.isOutSide)throw new r("imagery-layer:identify","the request cannot be fulfilled when falling outside of the multidimensional subset");e.timeExtent=i.timeExtent,e.mosaicRule=i.mosaicRule;const{raster:n,rasterFunction:a}=this;return a&&null==e.rasterFunction&&(e.rasterFunction=a),n&&null==e.raster&&(e.raster=n),ve(this.url,e,this._getRequestOptions(t))}async imageToMap(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsImageToMap)throw new r("imagery-layer:image-to-map","imageToMap operation is not supported on the input image service");return be(Xe(this.parsedUrl),e,this._getRequestOptions(t))}async imageToMapMultiray(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsImageToMapMultiray)throw new r("imagery-layer:image-to-map-multiray","imageToMapMultiray operation is not supported on the input image service");return Se(Xe(this.parsedUrl),e,this._getRequestOptions(t))}async mapToImage(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsMapToImage)throw new r("imagery-layer:map-to-image","mapToImage operation is not supported on the input image service");return Fe(Xe(this.parsedUrl),e,this._getRequestOptions(t))}async findImages(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsFindImages)throw new r("imagery-layer:find-images","findImages operation is not supported on the input image service");return _e(Xe(this.parsedUrl),e,this._getRequestOptions(t))}async getImageUrl(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsGetImageUrl)throw new r("imagery-layer:get-image-url","getImageUrl operation is not supported on the input image service");return De(Xe(this.parsedUrl),e,this._getRequestOptions(t))}createQuery(){return new Je({outFields:["*"],returnGeometry:!0,where:this.definitionExpression||"1=1"})}async queryBoundary(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsQueryBoundary)throw new r("imagery-layer:query-boundary","queryBoundary operation is not supported on the input image service");return e=e??{outSpatialReference:this.spatialReference},Oe(Xe(this.parsedUrl),e,this._getRequestOptions(t))}async queryExtent(e,t){({query:e,requestOptions:t}=await this._prepareForQuery(e,t));const{where:i,objectIds:r,geometry:s,timeExtent:n,start:a,num:o,pixelSize:l}=e,u=null!=i&&"1=1"!==i,p=null!=r&&r.length>0,c=null!=s&&("extent"!==s.type||!s.equals(this.fullExtent)),m=null!=l,h=null!=a||null!=o,{timeInfo:d}=this,f=null!=n&&null!=d&&!n.equals(d.fullTimeExtent);if(!(u||p||c||m||f||h)){const i=await je(this.url,e,t),{outSpatialReference:r}=e;if(!r||r.equals(this.spatialReference))return{count:i,extent:this.fullExtent.clone()};const{projectLoad:s,projectExecute:n}=await(import("../../geometry/operators/projectOperator.js"));await s();return{count:i,extent:n(this.fullExtent,r)}}return Pe(this.url,e,t)}async queryRasters(e,t){({query:e,requestOptions:t}=await this._prepareForQuery(e,t));const i=await Ae(this.url,e,t),r=this.graphicOrigin;return i.features.forEach(e=>{e.layer=this,e.origin=r}),i}async queryObjectIds(e,t){return({query:e,requestOptions:t}=await this._prepareForQuery(e,t)),Ee(this.url,e,t)}async queryGPSInfo(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsQueryGPSInfo)throw new r("imagery-layer:query-gps-info","queryGPSInfo operation is not supported on the input image service");return e=e??{where:"1=1"},Te(Xe(this.parsedUrl),e,this._getRequestOptions(t))}async queryRasterCount(e,t){return({query:e,requestOptions:t}=await this._prepareForQuery(e,t)),je(this.url,e,t)}async queryVisibleRasters(e,t){if(!e)throw new r("imagery-layer: query-visible-rasters","missing query parameter");await this.load();const{pixelSize:i,returnDomainValues:s,returnTopmostRaster:n,showNoDataRecords:a}=t||{pixelSize:null,returnDomainValues:!1,returnTopmostRaster:!1,showNoDataRecords:!1};let o=!1,l=null,u=null;const p=$.servicePixelValue.toLowerCase(),c=this._rasterFunctionNamesIndex;if(null!=e.outFields&&(o=e.outFields.some(e=>!e.toLowerCase().startsWith(p)),this.version>=10.4)){const t=e.outFields.filter(e=>e.toLowerCase().startsWith(p)&&e.length>p.length).map(e=>{const t=e.slice(p.length+1);return[this._updateRenderingRulesFunctionName(t,c),t]});l=t.map(e=>new K({functionName:e[0]})),u=t.map(e=>e[1]);const{rasterFunction:i}=this;0===l.length?i?.functionName?(l.push(i),u.push(i.functionName)):l=null:i?.functionName&&!l.some(e=>e.functionName===i.functionName)&&(l.push(i),u.push(i.functionName))}const m=null==e.outSpatialReference||e.outSpatialReference.equals(this.spatialReference),{multidimensionalSubset:h}=this;let d=e.timeExtent||this.timeExtent;if(h){const{isOutside:t,intersection:i}=R(h,{geometry:e.geometry,timeExtent:e.timeExtent,multidimensionalDefinition:this.exportImageServiceParameters.mosaicRule?.multidimensionalDefinition});if(t)throw new r("imagery-layer:query-visible-rasters","the request cannot be fulfilled when falling outside of the multidimensional subset");null!=i?.timeExtent&&(d=i.timeExtent)}const g=this._combineMosaicRuleWithTimeExtent(this.exportImageServiceParameters.mosaicRule,d);let y=e.geometry;this.version<10.91&&"extent"===y?.type&&(y=f.fromExtent(y));const I=this._getQueryParams({geometry:y,timeExtent:d,mosaicRule:g,rasterFunction:this.version<10.4?this.rasterFunction:null,rasterFunctions:l,pixelSize:i,returnCatalogItems:o,returnGeometry:m,raster:this.raster,maxItemCount:n?1:null});delete I.f;const w=new Ve(I);try{await this._generateRasterInfo(this.rasterFunction);const i=await ve(this.url,w,{signal:t?.signal,query:{...this.customParameters}}),r=e.outFields,n=null!=i.value&&i.value.toLowerCase().includes("nodata"),l=o&&!m&&i?.catalogItems?.features.length&&(a||!n),p=this.multidimensionalInfo&&"raster-dataset"===this.sourceType?x({rasterInfo:this.rasterInfo,multidimensionalDefinition:g?.multidimensionalDefinition,timeExtent:d,multidimensionalSubset:this.multidimensionalSubset}):null;if(!l)return this._processVisibleRastersResponse(i,{returnDomainValues:s,templateRRFunctionNames:u,showNoDataRecords:a,templateFields:r,effectiveMultidimensionalDefinition:p});const c=this.objectIdField||"ObjectId",h=i.catalogItems?.features??[],f=h.map(e=>e.attributes?.[c]),y=new Je({objectIds:f,returnGeometry:!0,outSpatialReference:e.outSpatialReference,outFields:[c]}),R=await this.queryRasters(y);return R?.features?.length&&R.features.forEach(t=>{h.forEach(i=>{i.attributes[c]===t.attributes[c]&&t.geometry&&(i.geometry=t.geometry.clone(),null!=e.outSpatialReference&&(i.geometry.spatialReference=e.outSpatialReference))})}),this._processVisibleRastersResponse(i,{returnDomainValues:s,templateRRFunctionNames:u,showNoDataRecords:a,templateFields:r,effectiveMultidimensionalDefinition:p})}catch{throw new r("imagery-layer:query-visible-rasters","encountered error when querying visible rasters")}}async fetchVariableStatisticsHistograms(e,t){const r=i(Xe(this.parsedUrl)+"/statistics",{query:this._getQueryParams({variable:e}),signal:t}).then(e=>e.data?.statistics),s=i(Xe(this.parsedUrl)+"/histograms",{query:this._getQueryParams({variable:e}),signal:t}).then(e=>e.data?.histograms),n=await Promise.all([r,s]);return n[0]&&n[0].forEach(e=>{e.avg=e.mean,e.stddev=e.standardDeviation}),{statistics:n[0]||null,histograms:n[1]||null}}getMultidimensionalSubsetVariables(e){const t=e??this.serviceRasterInfo.multidimensionalInfo;return I(this.multidimensionalSubset,t)}async _fetchService(e){await this._fetchServiceInfo(e);const t=this.sourceJSON,i=null!=this.serviceRasterInfo?Promise.resolve(this.serviceRasterInfo):Me(Xe(this.parsedUrl),t,{signal:e,query:this._getQueryParams()}).then(e=>(this._set("serviceRasterInfo",e),this._set("multidimensionalInfo",e.multidimensionalInfo),qe(e,t),e)),r=!this.rasterInfo&&this._hasRasterFunction(this.rasterFunction)?this._generateRasterInfo(this.rasterFunction,{signal:e}):Promise.resolve(this.rasterInfo),s=this.rasterFunctionInfos?.every(e=>null!=e.functionType)?null:this._getRasterFunctionInfos();return Promise.all([i,r,s]).then(e=>{e[1]?this._set("rasterInfo",e[1]):this._set("rasterInfo",e[0]),e[2]&&(t.rasterFunctionInfos=e[2],this.setAtOrigin("rasterFunctionInfos",e[2],"service")),this.internalRenderer&&!this._isSupportedRenderer(this.internalRenderer)&&(this._set("internalRenderer",null),n.getLogger(this).warn("ArcGISImageService","Switching to the default renderer. Renderer applied is not valid for this Imagery Layer")),this._set("internalRenderer",this._configRenderer(this.renderer)),this.addHandles([o(()=>this.rasterFunction,e=>{(this.renderer||this.symbolizer||this.popupEnabled&&this.popupTemplate)&&this._generateRasterInfo(e).then(e=>{e&&(this.rasterInfo=e)})})]);const{serviceRasterInfo:i}=this;null!=i.multidimensionalInfo&&this._updateMultidimensionalDefinition(i)})}_combineMosaicRuleWithTimeExtent(e,t){const i=this.timeInfo,{multidimensionalInfo:r}=this.serviceRasterInfo;if(null==e||null==r||null==t||null==i?.startField)return e;const{startField:s}=i,n=r.variables.some(e=>e.dimensions.some(e=>e.name===s))?s:"StdTime";if(e=e.clone(),"mosaic-dataset"===this.sourceType)return e.multidimensionalDefinition=e.multidimensionalDefinition?.filter(e=>e.dimensionName!==n),this._cleanupMultidimensionalDefinition(e);e.multidimensionalDefinition=e.multidimensionalDefinition||[];const a=e.multidimensionalDefinition.filter(e=>e.dimensionName===n),o=null!=t.start?t.start.getTime():null,l=null!=t.end?t.end.getTime():null,u=null==o||null==l||o===l,p=u?[o||l]:[[o,l]],c=this.version>=10.8;if(a.length)a.forEach(e=>{e.dimensionName===n&&(c?(e.dimensionName=null,e.isSlice=!1,e.values=[]):(e.isSlice=u,e.values=p))});else if(!c){const t=e.multidimensionalDefinition.filter(e=>null!=e.variableName&&null==e.dimensionName);t.length?t.forEach(e=>{e.dimensionName=n,e.isSlice=u,e.values=p}):e.multidimensionalDefinition.push(new O({variableName:"",dimensionName:n,isSlice:u,values:p}))}return this._cleanupMultidimensionalDefinition(e)}_cleanupMultidimensionalDefinition(e){return null==e?null:(e.multidimensionalDefinition&&(e.multidimensionalDefinition=e.multidimensionalDefinition.filter(e=>!(!e.variableName&&!e.dimensionName)),0===e.multidimensionalDefinition.length&&(e.multidimensionalDefinition=null)),"mosaic-dataset"!==this.sourceType&&null==e.multidimensionalDefinition?null:e)}async _prepareForQuery(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsQuery)throw new r("imagery-layer:query-rasters","query operation is not supported on the input image service");const i=null!=e?m(Je,e):this.createQuery();return t=this._getRequestOptions(t),this.raster&&(t.query={...t.query,raster:this.raster}),{query:i,requestOptions:t}}_isSupportedRenderer(e){const{rasterInfo:t,rasterFunction:i}=this;return"unique-value"===e.type&&this._hasRasterFunction(i)&&1===t?.bandCount&&["u8","s8"].includes(t.pixelType)||null!=t&&null!=e&&te(t).includes(e.type)}async _fetchCapabilities(e){return this.capabilities||await this._fetchServiceInfo(e),this.capabilities}async _fetchServiceInfo(e){let t=this.sourceJSON;if(!t){const{data:r,ssl:s}=await i(Xe(this.parsedUrl),{query:this._getQueryParams(),signal:e});t=r,this.sourceJSON=t,s&&(this.url=this.url.replace(/^http:/i,"https:"))}if(t.capabilities?.toLowerCase().split(",").map(e=>e.trim()).indexOf("tilesonly")>-1)throw new r("imagery-layer:fetch-service-info","use ImageryTileLayer to open tiles-only image services");this.read(t,{origin:"service",url:this.parsedUrl})}_isMosaicDataset(e){return e.serviceSourceType?"esriImageServiceSourceTypeMosaicDataset"===e.serviceSourceType:e.fields?.length>0}_isMosaicRuleSupported(e){if(!e)return!1;const t=this._isMosaicDataset(e),i=e.currentVersion>=10.71&&e.hasMultidimensions&&!(e.fields?.length>1);return t||i}_isVectorFieldResampleFunction(e){if(null==e)return!1;const{functionName:t,functionArguments:i}=e,r="resample"===t?.toLowerCase(),s=i?.ResampleType||i?.resampleType;return r&&(7===s||10===s)}_configRenderer(e){const{rasterInfo:t}=this,i=t.attributeTable,r=null!=ie(i,"red")&&null!=ie(i,"green")&&null!=ie(i,"blue"),s=!e&&null==t.colormap&&!r&&te(t).includes("unique-value");if(!this.isRenderedFormat&&!this.pixelFilter||this._isVectorDataSet()||s){const i=this.mosaicRule?.multidimensionalDefinition?.[0].variableName,r=re({variableName:i,rasterFunctionName:this.rasterFunction?.functionName,presetRenderers:this.presetRenderers});if(!this.bandIds&&t.bandCount>=3){const e=r?.bandIds??ee(t);!e||3===t.bandCount&&0===e[0]&&1===e[1]&&2===e[2]||(this.bandIds=e)}e||(e=r?.renderer??Z(t,{bandIds:this.bandIds,variableName:this.rasterFunction?null:i}));const s=se(e.toJSON());this.symbolizer?(this.symbolizer.rendererJSON=s,this.symbolizer.rasterInfo=t):this.symbolizer=new ne({rendererJSON:s,rasterInfo:t}),this.symbolizer.bind().success||(this.symbolizer=null)}return e}_clonePixelData(e){return null==e?e:{extent:e.extent&&e.extent.clone(),pixelBlock:null!=e.pixelBlock?e.pixelBlock.clone():null}}_getQueryParams(e){null!=e?.renderingRule&&"string"!=typeof e.renderingRule&&(e.renderingRule=this._getRenderingRuleString(e.renderingRule));const{raster:t,viewId:i}=this;return{raster:t,viewId:i,f:"json",...e,...this.customParameters}}_getRequestOptions(e){return{...e,query:{...e?.query,...this.customParameters}}}_decodePixelBlock(e,t,i){return this._rasterJobHandler?this._rasterJobHandler.decode({data:e,options:t}):v(e,t,i)}async _getRasterFunctionInfos(e){const t=this.sourceJSON.rasterFunctionInfos;if(this.loaded||!t?.length)return t;if(t&&this.version>=10.3){if(1===t.length&&"none"===t[0].name.toLowerCase())return[{thumbnail:"",functionType:0,...t[0]}];const r=await i(Xe(this.parsedUrl)+"/rasterFunctionInfos",{query:this._getQueryParams(),signal:e});return r.data?.rasterFunctionInfos}return null}_canRequestImageElement(e){return!this.pixelFilter&&(!e||e.includes("png"))}async _requestArrayBuffer(e){const{imageProps:t,requestAsImageElement:s,returnImageBitmap:n,signal:a}=e;if(s&&this._canRequestImageElement(t.format)){const r=`${Xe(this.parsedUrl)}/exportImage`,{data:s}=await i(r,{responseType:n?"blob":"image",query:this._getQueryParams({f:"image",...this.refreshParameters,...e.imageServiceParameters}),signal:a});if(s instanceof Blob){const{bitmap:e}=await q(s,r,{signal:a});return{imageBitmap:e,params:t}}return{imageOrCanvasElement:s,params:t}}const o=this._initJobHandler(),l=i(Xe(this.parsedUrl)+"/exportImage",{responseType:"array-buffer",query:this._getQueryParams({f:"image",...e.imageServiceParameters}),signal:a}),u=(await Promise.all([l,o]))[0].data,p=t.format||"jpgpng";let c=p;if("bsq"!==c&&"bip"!==c&&(c=b(u)),!c)throw new r("imagery-layer:fetch-image","unsupported format signature "+String.fromCharCode.apply(null,new Uint8Array(u)));const m={signal:a},h=this._decodePixelBlock(u,{width:t.width,height:t.height,format:p,applyJpegMask:!0},m);return{pixelData:{pixelBlock:await h,extent:t.extent},params:t}}_generateRasterInfo(e,t){return this.generateRasterInfo(e,t).catch(()=>null)}_isValidCustomizedMosaicRule(e){return e&&JSON.stringify(e.toJSON())!==JSON.stringify(this.defaultMosaicRule?.toJSON())}_updateMultidimensionalDefinition(e){if(this._isValidCustomizedMosaicRule(this.mosaicRule))return;let t=w(e,{multidimensionalSubset:this.multidimensionalSubset});if(null!=t&&t.length>0){this.mosaicRule=this.mosaicRule||new j;const e=this.mosaicRule.multidimensionalDefinition;!this.sourceJSON.defaultVariableName&&this.rasterFunction&&"none"!==this.rasterFunction.functionName?.toLowerCase()&&t.forEach(e=>e.variableName=""),t=t.filter(({variableName:e,dimensionName:t})=>e&&"*"!==e||t),!e?.length&&t.length&&(this.mosaicRule.multidimensionalDefinition=t)}}_processVisibleRastersResponse(e,i){i=i||{};const r=e.value,{templateRRFunctionNames:s,showNoDataRecords:n,returnDomainValues:a,templateFields:o}=i,l=e.processedValues;let u=e.catalogItems?.features,p=e.properties?.Values?.map(e=>e.replaceAll(/ /gi,", "))||[];const c=this.objectIdField||"ObjectId",m="string"==typeof r&&r.toLowerCase().includes("nodata"),h=[];if(r&&!u&&(!m||n)){const e={};e[c]=0;p=[r],u=[new t({geometry:this.fullExtent,attributes:e})],this.multidimensionalInfo&&"raster-dataset"===this.sourceType&&W(this.rasterFields,e,i.effectiveMultidimensionalDefinition)}if(!u)return[];this._updateResponseFieldNames(u,o),m&&!n&&(u=[]);const{itemPixelValue:d,servicePixelValue:f}=$,g=this.rasterFields.some(e=>e.name===d),y=this.graphicOrigin;for(let t=0;t<u.length;t++){const e=u[t];if(null!=r){const i=p[t],a=this.rasterFunction&&l&&l.length>0&&s&&s.length>0&&s.includes(this.rasterFunction.functionName)?l[s.indexOf(this.rasterFunction.functionName)]:r;if("nodata"===i.toLowerCase()&&!n)continue;g&&(e.attributes[d]=i),e.attributes[f]=a,this._updateFeatureWithMagDirValues(e,i);const o=this.fields&&this.fields.length>0;let u=this.rasterFunction&&null!=this.serviceRasterInfo.attributeTable?o?i:r:a;this.rasterFunction||(u=o?i:r),this._updateFeatureWithRasterAttributeTableValues(e,u)}if(e.sourceLayer=e.layer=this,e.origin=y,a&&this._updateFeatureWithDomainValues(e),s&&l&&s.length===l.length)for(let t=0;t<s.length;t++){const i=`${$.servicePixelValue}.${s[t]}`;e.attributes[i]=l[t]}h.push(u[t])}return h}_processMultidimensionalIntersection(e,t,i){const{multidimensionalSubset:r}=this;if(!r)return{isOutSide:!1,timeExtent:t,mosaicRule:i=this._combineMosaicRuleWithTimeExtent(i,t)};if(r){const{isOutside:i,intersection:s}=R(r,{geometry:e,timeExtent:t});if(i)return{isOutSide:!0,timeExtent:null,mosaicRule:null};null!=s?.timeExtent&&(t=s.timeExtent)}if(i=this._combineMosaicRuleWithTimeExtent(i,t),i?.multidimensionalDefinition){const{isOutside:e}=R(r,{multidimensionalDefinition:i.multidimensionalDefinition});if(e)return{isOutSide:!0,timeExtent:null,mosaicRule:null}}return{isOutSide:!1,timeExtent:t,mosaicRule:i}}_updateFeatureWithRasterAttributeTableValues(e,t){const i=this.rasterInfo.attributeTable||this.serviceRasterInfo.attributeTable;if(null==i)return;const{features:r,fields:s}=i,n=s.map(e=>e.name).find(e=>"value"===e.toLowerCase());if(!n)return;const a=r.filter(e=>e.attributes[n]===(null!=t?parseInt(t,10):null));a&&a[0]&&s.forEach(t=>{const i=X+t.name;e.attributes[i]=a[0].attributes[t.name]})}_updateFeatureWithMagDirValues(e,t){if(!this._isVectorDataSet())return;const i=t.split(/,\s*/).map(e=>parseFloat(e)),r=i.map(e=>[e]),s=i.map(e=>({minValue:e,maxValue:e,noDataValue:null})),n=new E({height:1,width:1,pixelType:"f32",pixels:r,statistics:s});null!=this.pixelFilter&&this.pixelFilter({pixelBlock:n,extent:new d(0,0,0,0,this.spatialReference)});const a="esriImageServiceDataTypeVector-MagDir"===this.serviceDataType?[n.pixels[0][0],n.pixels[1][0]]:F([n.pixels[0][0],n.pixels[1][0]]);e.attributes[$.magnitude]=a[0],e.attributes[$.direction]=a[1]}_updateFeatureWithDomainValues(e){const t=this.fields&&this.fields.filter(e=>"coded-value"===e.domain?.type);null!=t&&t.forEach(t=>{const i=e.attributes[t.name];if(null!=i){const r=t.domain.codedValues.find(e=>e.code===i);r&&(e.attributes[t.name]=r.name)}})}_updateResponseFieldNames(e,t){if(!t||t.length<1)return;const i=this.fieldsIndex;null!=i&&e.forEach(e=>{if(e?.attributes)for(const r of t){const t=i.get(r)?.name;t&&t!==r&&(e.attributes[r]=e.attributes[t],delete e.attributes[t])}})}_getRenderingRuleString(e){if(e){let t=e.toJSON();return t=t.rasterFunctionDefinition??t,(t.thumbnail||t.thumbnailEx)&&(t.thumbnail=t.thumbnailEx=null),JSON.stringify(t)}return null}_hasRasterFunction(e){return null!=e?.functionName&&"none"!==e.functionName.toLowerCase()}_updateRenderingRulesFunctionName(e,t){if(!e||e.length<1)return;if("Raw"===e)return e.replace("Raw","None");const i=e.toLowerCase().replaceAll(/ /gi,"_");return t.has(i)?t.get(i):e}_isRFTJson(e){return e?.name&&e.arguments&&e.function&&e.hasOwnProperty("functionType")}_isVectorDataSet(){return"esriImageServiceDataTypeVector-UV"===this.serviceDataType||"esriImageServiceDataTypeVector-MagDir"===this.serviceDataType}_applyMosaicAndRenderingRules(e){const{raster:t,mosaicRule:i,rasterFunction:r}=this;r&&null==e.rasterFunction&&(e.rasterFunction=r),i&&null==e.mosaicRule&&(e.mosaicRule=i),t&&null==e.raster&&(e.raster=t)}async _updateCurrentRasterInfo(e){if(this.renderer||this.symbolizer){const t=await this._generateRasterInfo(this.rasterFunction,{signal:e});t&&(this.rasterInfo=t)}}_applyMosaicRule(e){const{raster:t,mosaicRule:i}=this;i&&null==e.mosaicRule&&(e.mosaicRule=i),t&&null==e.raster&&(e.raster=t)}_readCapabilities(e){const t=e.capabilities?e.capabilities.toLowerCase().split(",").map(e=>e.trim()):["image","catalog"],{currentVersion:i,maxRecordCount:r}=e,s=t.includes("image"),n="esriImageServiceDataTypeElevation"===e.serviceDataType,a=!(!e.spatialReference&&!e.extent?.spatialReference),o=t.includes("edit"),l=t.includes("mensuration")&&a,u=null==e.mensurationCapabilities?[]:e.mensurationCapabilities.toLowerCase().split(",").map(e=>e.trim()),p=l&&u.includes("basic"),c=this._isMosaicDataset(e)&&t.includes("catalog"),m=t.includes("download"),h=i>=10.7&&n||i>=11.4&&(n||l&&u.includes("3d")),d=c&&e.fields&&e.fields.length>0,f=d&&e.supportsAdvancedQueries?e.advancedQueryCapabilities:void 0;return{data:{supportsAttachment:!1},operations:{supportsComputeHistograms:s,supportsExportImage:s,supportsIdentify:s,supportsImageToMap:i>=11.2&&c,supportsImageToMapMultiray:i>=11.2&&c,supportsMapToImage:i>=11.2&&c,supportsFindImages:i>=11.2&&c,supportsGetImageUrl:i>=11.3&&m,supportsMeasure:l,supportsMeasureFromImage:i>=11.2,supportsDownload:m,supportsQuery:d,supportsGetSamples:i>=10.2&&s,supportsProject:i>=10.3&&s,supportsComputeStatisticsHistograms:i>=10.4&&s,supportsQueryBoundary:i>=10.6&&s,supportsCalculateVolume:h,supportsComputePixelLocation:i>=10.7&&c,supportsComputeAngles:i>=10.91,supportsQueryGPSInfo:i>=11.2&&c,supportsAdd:o,supportsDelete:o,supportsEditing:o,supportsUpdate:o,supportsCalculate:!1,supportsTruncate:!1,supportsValidateSql:!1,supportsChangeTracking:!1,supportsQueryAttachments:!1,supportsResizeAttachments:!1,supportsSync:!1,supportsExceedsLimitStatistics:!1,supportsQueryAnalytics:!1,supportsQueryBins:!1,supportsQueryPivot:!1,supportsQueryTopFeatures:!1,supportsAsyncConvert3D:!1},query:{maxRecordCount:r,maxRecordCountFactor:void 0,maxUniqueIDCount:void 0,relativeTimeBinWindow:void 0,supportsStatisticsAggregatedIds:!!f?.supportsAggregateIds,supportsStatistics:!!f?.supportsStatistics,supportsOrderBy:!!f?.supportsOrderBy,supportsDistinct:!!f?.supportsDistinct,supportsPagination:!!f?.supportsPagination,supportsPaginationOnAggregatedQueries:!!f?.supportsPaginationOnAggregatedQueries,supportsStandardizedQueriesOnly:!!f?.useStandardizedQueries,supportsPercentileStatistics:!!f?.supportsPercentileStatistics,supportsCentroid:!!f?.supportsReturningGeometryCentroid,supportsCentroidOnDegeneratedQuantizedGeometry:!1,supportsCurrentUser:!1,supportsDegeneratedQuantizedGeometry:!1,supportsDistance:!!f?.supportsQueryWithDistance,supportsOutDistance:!!f?.supportsOutDistance,supportsExtent:!!f?.supportsReturningQueryExtent,supportsGeometryProperties:!!f?.supportsReturningGeometryProperties,supportsHavingClause:!!f?.supportsHavingClause,supportsQuantization:!1,supportsQuantizationEditMode:!1,supportsQueryGeometry:!1,supportsResultType:!1,supportsReturnMesh:!1,supportsReturnExceededLimitGeometries:!1,supportsMaxRecordCountFactor:!1,supportsSqlExpression:f?.supportsSqlExpression??!!f,supportsTopFeaturesQuery:!1,supportsQueryByAnonymous:!1,supportsQueryByOthers:!1,supportsHistoricMoment:!1,supportsFormatPBF:!1,supportsFormatPBFWithCurves:!1,supportsDisjointSpatialRelationship:!1,supportsCacheHint:!1,supportsSpatialAggregationStatistics:!1,supportedSpatialAggregationStatistics:{envelope:!1,centroid:!1,convexHull:!1},supportsDefaultSpatialReference:!!f?.supportsDefaultSR,supportsFullTextSearch:!1,supportsCompactGeometry:!1,standardMaxRecordCount:void 0,standardMaxRecordCountNoGeometry:void 0,tileMaxRecordCount:void 0,supportsTrueCurve:!1},mensuration:{supportsDistanceAndAngle:p,supportsAreaAndPerimeter:p,supportsPointOrCentroid:p,supportsHeightFromBaseAndTop:l&&u.includes("base-top height"),supportsHeightFromBaseAndTopShadow:l&&u.includes("base-top shadow height"),supportsHeightFromTopAndTopShadow:l&&u.includes("top-top shadow height"),supports3D:l&&u.includes("3d")}}}};function Xe(e){return e?.path??""}return e([u({clonable:!1})],$e.prototype,"_functionRasterInfos",void 0),e([u({readOnly:!0})],$e.prototype,"_serviceSupportsMosaicRule",void 0),e([Be("_serviceSupportsMosaicRule",["currentVersion","fields"])],$e.prototype,"readServiceSupportsMosaicRule",null),e([u({readOnly:!0})],$e.prototype,"_rasterFunctionNamesIndex",null),e([u()],$e.prototype,"_projectedFullExtent",void 0),e([u({clonable:!1})],$e.prototype,"_exportTileQueue",void 0),e([u()],$e.prototype,"adjustAspectRatio",void 0),e([u({type:[c],json:{write:!0}})],$e.prototype,"bandIds",void 0),e([Be("bandIds")],$e.prototype,"readBandIds",null),e([u({readOnly:!0,json:{read:!1}})],$e.prototype,"capabilities",void 0),e([Be("service","capabilities",["capabilities","currentVersion","serviceDataType"])],$e.prototype,"readCapabilities",null),e([u({type:Number})],$e.prototype,"compressionQuality",void 0),e([Ue("compressionQuality")],$e.prototype,"writeCompressionQuality",null),e([u({type:Number})],$e.prototype,"compressionTolerance",void 0),e([Ue("compressionTolerance")],$e.prototype,"writeCompressionTolerance",null),e([u({json:{read:{source:"copyrightText"}}})],$e.prototype,"copyright",void 0),e([u({readOnly:!0})],$e.prototype,"defaultMosaicRule",void 0),e([Be("defaultMosaicRule",["defaultMosaicMethod"])],$e.prototype,"readDefaultMosaicRule",null),e([u({type:String,json:{name:"layerDefinition.definitionExpression",write:{enabled:!0,allowNull:!0}}})],$e.prototype,"definitionExpression",void 0),e([u({readOnly:!0,constructOnly:!0})],$e.prototype,"exportImageServiceParameters",void 0),e([u()],$e.prototype,"rasterInfo",void 0),e([u({readOnly:!0,type:[M]})],$e.prototype,"fields",void 0),e([u({readOnly:!0})],$e.prototype,"fieldsIndex",null),e([u({type:["png","png8","png24","png32","jpg","bmp","gif","jpgpng","lerc","tiff","bip","bsq"],json:{write:!0}})],$e.prototype,"format",null),e([Be("service","format",["serviceDataType","allowRasterFunction"])],$e.prototype,"readFormat",null),e([u({type:d})],$e.prototype,"fullExtent",void 0),e([u({readOnly:!0})],$e.prototype,"hasMultidimensions",void 0),e([u({json:{read:{source:"maxImageHeight"}}})],$e.prototype,"imageMaxHeight",void 0),e([u({json:{read:{source:"maxImageWidth"}}})],$e.prototype,"imageMaxWidth",void 0),e([u({type:String,json:{type:A.jsonValues,read:A.read,write:A.write}})],$e.prototype,"interpolation",void 0),e([u()],$e.prototype,"minScale",void 0),e([Be("service","minScale")],$e.prototype,"readMinScale",null),e([u()],$e.prototype,"maxScale",void 0),e([Be("service","maxScale")],$e.prototype,"readMaxScale",null),e([u({type:j})],$e.prototype,"mosaicRule",null),e([Be("mosaicRule",["mosaicRule","defaultMosaicMethod"])],$e.prototype,"readMosaicRule",null),e([Ue("mosaicRule")],$e.prototype,"writeMosaicRule",null),e([u()],$e.prototype,"multidimensionalInfo",void 0),e([u({type:P,json:{write:!0}})],$e.prototype,"multidimensionalSubset",void 0),e([u({json:{type:[Number,[Number]],write:!0}})],$e.prototype,"noData",void 0),e([u({type:String,json:{type:Q.jsonValues,read:Q.read,write:Q.write}})],$e.prototype,"noDataInterpretation",void 0),e([u({type:String,readOnly:!0,json:{read:{source:["fields"]}}})],$e.prototype,"objectIdField",void 0),e([Be("objectIdField")],$e.prototype,"readObjectIdField",null),e([u({readOnly:!0})],$e.prototype,"geometryType",void 0),e([u({})],$e.prototype,"typeIdField",void 0),e([u({})],$e.prototype,"types",void 0),e([u({readOnly:!0})],$e.prototype,"parsedUrl",null),e([u({type:Function})],$e.prototype,"pixelFilter",void 0),e([u()],$e.prototype,"raster",void 0),e([u({readOnly:!0})],$e.prototype,"sourceType",void 0),e([Be("sourceType",["serviceSourceType","fields"])],$e.prototype,"readSourceType",null),e([u()],$e.prototype,"viewId",void 0),e([u({types:ae})],$e.prototype,"renderer",null),e([u({types:ae,json:{name:"layerDefinition.drawingInfo.renderer",origins:{"web-scene":{types:oe,name:"layerDefinition.drawingInfo.renderer",write:{overridePolicy:e=>({enabled:e&&"vector-field"!==e.type})}}}}})],$e.prototype,"internalRenderer",null),e([Be("internalRenderer")],$e.prototype,"readRenderer",null),e([Ue("internalRenderer")],$e.prototype,"writeRenderer",null),e([u({clonable:!1})],$e.prototype,"symbolizer",void 0),e([u(_)],$e.prototype,"opacity",void 0),e([u({readOnly:!0})],$e.prototype,"rasterFields",null),e([u({constructOnly:!0})],$e.prototype,"rasterFunctionInfos",void 0),e([u({type:K,json:{name:"renderingRule"}})],$e.prototype,"rasterFunction",null),e([Be("rasterFunction",["renderingRule","rasterFunctionInfos"])],$e.prototype,"readRasterFunction",null),e([u({readOnly:!0})],$e.prototype,"serviceDataType",void 0),e([u({readOnly:!0,type:g})],$e.prototype,"spatialReference",void 0),e([Be("spatialReference",["spatialReference","extent"])],$e.prototype,"readSpatialReference",null),e([u({type:V.apiValues,json:{read:V.read,type:V.jsonValues}})],$e.prototype,"pixelType",void 0),e([Ue("pixelType")],$e.prototype,"writePixelType",null),e([u({constructOnly:!0,type:Y})],$e.prototype,"serviceRasterInfo",void 0),e([u()],$e.prototype,"sourceJSON",void 0),e([u(D)],$e.prototype,"url",void 0),e([u({readOnly:!0})],$e.prototype,"version",void 0),e([Be("version",["currentVersion","fields","timeInfo"])],$e.prototype,"readVersion",null),$e=e([p("esri.layers.mixins.ArcGISImageService")],$e),$e};export{ke as ArcGISImageService};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{__decorate as t}from"tslib";import{property as e,subclass as o}from"../../core/accessorSupport/decorators.js";import{
|
|
2
|
+
import{__decorate as t}from"tslib";import{property as e,subclass as o}from"../../core/accessorSupport/decorators.js";import{fixTimeInfoFields as r}from"../support/fieldUtils.js";import i from"../support/TimeInfo.js";import{timeUnitKebabDictionary as s}from"../../portal/timeUnitKebabDictionary.js";import n from"../../time/TimeExtent.js";import m from"../../time/TimeInterval.js";import{reader as p}from"../../core/accessorSupport/decorators/reader.js";const f={type:Boolean,json:{read:{source:"timeAnimation"},write:{target:"timeAnimation"}}},l=l=>{const a=l;let u=class extends a{constructor(){super(...arguments),this.timeExtent=null,this.timeOffset=null,this.useViewTime=!0}readOffset(t,e){const o=e.timeInfo.exportOptions;if(!o)return null;const r=o.timeOffset,i=s.fromJSON(o.timeOffsetUnits);return r&&i?new m({value:r,unit:i}):null}get timeInfo(){return this._get("timeInfo")}set timeInfo(t){r(t,this.fieldsIndex),this._set("timeInfo",t)}};return t([e({type:n,json:{write:!1}})],u.prototype,"timeExtent",void 0),t([e({type:m})],u.prototype,"timeOffset",void 0),t([p("service","timeOffset",["timeInfo.exportOptions"])],u.prototype,"readOffset",null),t([e({value:null,type:i,json:{write:!0,origins:{"web-document":{read:!1,write:!1},"portal-item":{read:!1,write:!1}}}})],u.prototype,"timeInfo",null),t([e(f)],u.prototype,"useViewTime",void 0),u=t([o("esri.layers.mixins.TemporalLayer")],u),u};export{l as TemporalLayer,f as useViewTimeProperty};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{isArrayLike as e}from"../../../core/arrayUtils.js";import{deg2rad as t}from"../../../core/mathUtils.js";import{clone as r,zeros as a}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import i from"../../../geometry/Point.js";import{
|
|
2
|
+
import{isArrayLike as e}from"../../../core/arrayUtils.js";import{deg2rad as t}from"../../../core/mathUtils.js";import{clone as r,zeros as a}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import i from"../../../geometry/Point.js";import{rectifyMapPointPanoramic as n,rectifyMapPoint as o}from"./rectifyMapPoint.js";import{getWebMercatorScalingFactor as c,hasAngles as s,convertPixelToHeadingPitch as f,adjustHorizonAngles as l,reducerFn as p,scaleAndAddWithFactor as m,validatePixelsToTransform as h,validateRotationMatrix as u,computeFarplaneVertices as y,computeHFOVAndVFOV as d,vecToPoint as w,or as g,isUpdateElevationWithElevationSource as x,computeNewReferenceCoordinates as v,projectiveTransform as R}from"./utils.js";import{worldToImage as M}from"./worldToImage.js";import{viewingLimit as P}from"../../../widgets/OrientedImageryViewer/constants.js";async function A(e,t,r){const{verticalFieldOfView:a,imageBoundaries:i,scalingFactor:n,farPlaneVertices:o,cameraLocation:c,pixelsToTransform:s,vecToPoint:f,pixelDepths:l}=D(e,t),p=new Array;return await V(s,o,i,f,t,p,c,n,a,r,l),Array.isArray(e)?p:p[0]}async function V(e,t,r,a,n,c,s,f,l,p,m){let h=n.averageElevation;const u=e.length;for(let y=0;y<u;y+=1){const u=e.at(y),d=T(t,r,u,a,n),w=m?.at(y);if("number"==typeof w){const e=j(d,s,f),t=w*f,r=[s[0]+e[0]*t,s[1]+e[1]*t,s[2]+e[2]*w];c.push(new i(r,n.cameraLocation.spatialReference));continue}if(p&&g("elevationSample"in p,x(p))){h=(await o(a(d),{x:u[0],y:u[1]},{...n,...p,farPlaneVertices:t.map(a)}))[2]}c.push(a(F(d,s,f,h,n.cameraPitch,l)))}}function j(e,t,r){const i=e[0]-t[0],n=e[1]-t[1],o=e[2]-t[2],c=Math.hypot(i,n)/r,s=Math.hypot(o,c)*r,f=a();return f[0]=i/s,f[1]=n/s,f[2]=o/s,f[2]=f[2]*r,f}function F(e,t,a,i,n,o){let c=r(e);const s=j(e,t,a);if(b(e[2],i,n,o)){const e=Math.abs((t[2]-i)/-s[2])*a;c=m(t,s,e,a)}else c[2]=i;return c}function b(e,t,r,a){return e<t||r+a/2<P}function T(e,t,r,a,i){let n=null;const o=9;let c,s=0,f=e,l=t;for(;s<=o;){const e=O(r,l,f,i);if(c=e.error,n=e.transformedPoint,g(c<=1,s===o))break;f=v(f,c,r,t),l=L(f,a,i),s++}return n}function L(e,t,r){return M(e.map(t),r).map(({x:e,y:t})=>[e,t,1])}function O(e,t,r,a){const{cameraLocation:n}=a,o=R(e,t,r),{x:c,y:s}=M(new i(o,n.spatialReference),a);return{transformedPoint:o,error:z(e,[c,s,1])}}function z(e,t){return Math.abs(e[0]-t[0])+Math.abs(e[1]-t[1])}function D(t,r){const a=e(t)||"items"in t?t:[t],{cameraLocation:n,rotationMatrix:o}=r;if(h(a,n),u(o),9!==o?.length)throw new Error("Rotation matrix is not provided or is not a valid 3x3 matrix");const s=c(n.y,n.spatialReference),f=y({...r,scalingFactor:s}),l=M(f.map(e=>new i(e,n.spatialReference)),r),{vfov:p}=d(r.horizontalFieldOfView,r.verticalFieldOfView,r.cameraRoll);return{cameraLocation:n.toArray(),imageBoundaries:l.map(({x:e,y:t})=>[e,t,1]),verticalFieldOfView:p,farPlaneVertices:f,scalingFactor:s,pixelsToTransform:a.map(e=>[e.x,e.y,1]),vecToPoint:w(n.spatialReference),pixelDepths:a.map(e=>E(e)?e.depth:void 0)}}function E(e){return"depth"in e&&"number"==typeof e.depth}async function B(e,r,a){const{cameraLocation:o,farDistance:m,imageHeight:h,imageWidth:u,verticalFieldOfView:y,horizonPitch:d,horizonRoll:w,horizonYaw:g}=r,x=c(o.y,o.spatialReference),v=m*x,R=new Array,[M,P,A]=o.toArray(),V=Array.isArray(e)?e:[e];for(const c of V){let e,V;const j=E(c),b=j?c.depth*x:v;if(s(c))e=c.heading,V=c.pitch;else{const t=f({x:c.x,y:c.y},u,h),r=l(t.heading,t.pitch,[d,w,g],!0);e=r[0],V=r[1]}const T=[M+Math.sin(t(e))*Math.sin(t(V))*b,P+Math.cos(t(e))*Math.sin(t(V))*b,A+-Math.cos(t(V))*(j?c.depth:m)];if(j){R.push(new i(T,o.spatialReference));continue}let L=r.averageElevation;if(a){L=(await n(new i(T,o.spatialReference),{heading:e,pitch:V},{...r,...a,farPlaneVertices:p(m,m).map(([e,t])=>new i([o.x+e,o.y+t],o.spatialReference))}))[2]}R.push(new i(F(T,o.toArray(),x,L,V,y),o.spatialReference))}return Array.isArray(e)?R:R[0]}export{A as imageToWorld,B as imageToWorldPanoramic};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import t from"../../../core/Error.js";import{rad2deg as n,deg2rad as a}from"../../../core/mathUtils.js";import{create as e}from"../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{create as i,fromValues as o}from"../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{zeros as r,create as c}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 l,multiply as f}from"../../../core/libs/gl-matrix-2/math/mat3.js";import{invertOrIdentity as u,mul as h}from"../../../core/libs/gl-matrix-2/math/mat4.js";import{scale as m,sub as p,add as g}from"../../../core/libs/gl-matrix-2/math/vec3.js";import{isSerializable as v}from"../../../core/support/jsonUtils.js";import M from"../../../geometry/Point.js";import{projectAsync as d}from"../../../geometry/projectionUtils.js";import{earth as x}from"../../../geometry/support/Ellipsoid.js";import{isWebMercator as w}from"../../../geometry/support/spatialReferenceUtils.js";import{a as y}from"../../../chunks/vec3.js";import{isConstantElevation as b,ConstantElevation as j,isElevationSource as O}from"../core/ElevationSourceDefinitions.js";import{getMetersPerUnitOfSR as z}from"../core/utils.js";import{getElevationSampler as P}from"./updateElevationUtils.js";import{isNumber as R}from"../../../support/guards.js";import{defaultImageSphereSize as F}from"../../../widgets/PanoramicViewer/constants.js";function E(t,n,a){const[e,o,r,c]=n,[s,l,f,m]=a;S(e,o,r,c);const p=S(s,l,f,m),g=H(e,o,r,c),v=H(s,l,f,m),M=u(i(),g),d=h(i(),M,v),[x,w,y,b]=D(t,d);return[x/b,w/b,p?0:y/b]}function S(t,n,a,e){return 0===t[2]&&0===n[2]&&0===a[2]&&0===e[2]&&(t[2]=n[2]=a[2]=e[2]=1,!0)}function V(t){return 0===t?1:t}function D(t,n){const[a,e,i]=t,o=[0,0,0,0];return o[0]=a*n[0]+e*n[1]+i*n[2]+n[3],o[1]=a*n[4]+e*n[5]+i*n[6]+n[7],o[2]=a*n[8]+e*n[9]+i*n[10]+n[11],o[3]=V(a*n[12]+e*n[13]+i*n[14]+n[15]),o}function H(t,n,a,e){const r=I(s([...e,1]),u(new Array(16),o(t[0],n[0],a[0],0,t[1],n[1],a[1],0,t[2],n[2],a[2],0,1,1,1,1))),c=r[0],l=r[1],f=r[2],h=i();return h[0]=c*t[0],h[1]=l*n[0],h[2]=f*a[0],h[3]=0,h[4]=c*t[1],h[5]=l*n[1],h[6]=f*a[1],h[7]=0,h[8]=c*t[2],h[9]=l*n[2],h[10]=f*a[2],h[11]=0,h[12]=c,h[13]=l,h[14]=f,h[15]=1,h}function L(t,n,a,e,i=r()){return i[0]=t[0]+n[0]*a,i[1]=t[1]+n[1]*a,i[2]=t[2]+n[2]*(a/e),i}function N(t,n,a){const e=r();return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*(n/a),e}function A(t,n){const[a,e,i]=t,o=r();return o[0]=a*n[0]+e*n[3]+i*n[6],o[1]=a*n[1]+e*n[4]+i*n[7],o[2]=a*n[2]+e*n[5]+i*n[8],o}function I(t,n){const[a,e,i,o]=t,r=new Array(4);return r[0]=a*n[0]+e*n[1]+i*n[2]+o*n[3],r[1]=a*n[4]+e*n[5]+i*n[6]+o*n[7],r[2]=a*n[8]+e*n[9]+i*n[10]+o*n[11],r[3]=a*n[12]+e*n[13]+i*n[14]+o*n[15],r}function Y(n,i,o,r=!0){if(!Number.isFinite(n))throw new t("InvalidRotationAngle","Please specify a valid angle for rotation");const c=o*(r?a(n):n),s=Math.cos(c),l=Math.sin(c),f=e();switch(i){case 0:f[4]=s,f[5]=-l,f[7]=l,f[8]=s;break;case 1:f[0]=s,f[2]=l,f[6]=-l,f[8]=s;break;case 2:f[0]=s,f[1]=-l,f[3]=l,f[4]=s;break;default:throw new t("InvalidRotationAxis","Please specify either 0, 1 or 2 for X, Y or Z axis respectively")}return f}const k={HPR:[[2,-1],[0,1],[2,-1]],OPK:[[0,1],[1,1],[2,1]],YPR:[[0,-1],[1,-1],[2,-1]]};function q(n,a,i=!0){if(3!==n?.length||3!==a?.length)throw new t("InvalidRotationAngles","Please specify three angles with config for rotation");const o=e();for(let t=0;t<3;t++){const[e,r]=a[t],c=Y(n[t],e,r,i);f(o,c,o)}return o}function U(t,n=!0){return q(t,k.OPK,n)}function C(t,n=!0){return q(t,k.HPR,n)}function K(t,n,e){const i=Math.sin(a(e)),o=Math.cos(a(e)),r=[[t,0],[t,n],[0,n]];r.forEach((t,n)=>{r[n]=[o*t[0]-i*t[1],i*t[0]+o*t[1]]});const c={xmin:Math.min(0,r[0][0],r[1][0],r[2][0]),xmax:Math.max(0,r[0][0],r[1][0],r[2][0]),ymin:Math.min(0,r[0][1],r[1][1],r[2][1]),ymax:Math.max(0,r[0][1],r[1][1],r[2][1])};return{hfov:Math.abs(c.xmax-c.xmin),vfov:Math.abs(c.ymax-c.ymin)}}function T(t,e){const i=Number(t[0]),o=Number(t[1]),r=Number(t[2]),[c,s,l,f]=e,u=a(c),h=a(s),m=l/Math.sqrt(1-f*Math.sin(u)**2),p=i/m,g=o/m,v=r/m,M=Math.cos(u)-Math.sin(u)*g+Math.cos(u)*v,d=Math.sin(u)+Math.cos(u)*g+Math.sin(u)*v,x=Math.sqrt(M**2+p**2),w=f*m*Math.sin(u),y=(t,n=5)=>{if(0===n)return t;const a=y(t,n-1);return Math.atan(d/x-(w-f*(l/Math.sqrt(1-f*Math.sin(a)**2))*Math.sin(a))/(m*x))},b=y(u),j=Math.atan(i/(m*M))+h,O=n(b);return[n(j),O,i/(Math.cos(b)*Math.sin(j-h))-l/Math.sqrt(1-f*Math.sin(b)**2)]}function W(t,n,a){const e=360/n,i=180/a;return{heading:(t.x-n/2)*e,pitch:90-(t.y-a/2)*i}}function X(t,n,a,e,i=F/2){const{heading:o,pitch:r}=G(t,i),c=e?Rt(o,r,e):[o,r];return{heading:o,pitch:r,...Z(c[0],c[1],n,a)}}function Z(t,n,a,e){const i=t%360;return{x:a/2+(i<-180?i+360:i>180?i-360:i)/(360/a),y:e-n/(180/e)}}function G(t,a){const e=n(Math.acos(-t.z/a));return{heading:n(Math.atan2(t.x,t.y)),pitch:e}}function J(t,n){return[Math.sin(a(t))*Math.sin(a(n)),Math.cos(a(t))*Math.sin(a(n)),Math.cos(a(180-n))]}function $(t,n,a,e=F/2){const i=a?Rt(t,n,a,!0):[t,n];return m(c(),J(i[0],i[1]),e)}function B(t,n,a,e,i=F/2){const{heading:o,pitch:r}=W(t,n,a);return $(o,r,e,i)}async function Q(t,a,e){const i=await d(a,t.spatialReference,e);let o=n(Math.atan2(i.y-t.y,i.x-t.x));return o=o>=0&&o<=90?90-o:o>90&&o<=180?360-o+90:90+Math.abs(o),o}function _(t,n,a){const e=Math.cos(a),i=Math.sin(a),o=[1,0,0,1,0,0],r=o[0]*e+o[2]*i,c=o[1]*e+o[3]*i,s=-o[0]*i+o[2]*e,l=-o[1]*i+o[3]*e;o[0]=r,o[1]=c,o[2]=s,o[3]=l;return[t*o[0]+n*o[2]+o[4],t*o[1]+n*o[3]+o[5]]}const tt=t=>t.toArray(),nt=(...t)=>t.some(t=>t);function at(t,n){if(nt(0===t.length,t.some(({x:t,y:n})=>nt(null==t,null==n)),!n.hasZ))throw new Error("Input pixels must have x, y and camera location must have z value")}function et(t,n){if(t.some(t=>null==t.z)||null==n.z)throw new Error("Input points and camera location must have z value")}function it(t){if(9!==t?.length)throw new Error("Rotation matrix is not provided or is not a valid 3x3 matrix")}function ot(t,n){return w(n)?1/Math.cos(Math.PI/2-2*Math.atan(Math.exp(-1*t/x.radius))):1}const rt=t=>n=>new M({x:n[0],y:n[1],z:n[2],spatialReference:t}),ct=t=>null!=t&&"queryExtent"in t;function st(t,n,a,e){return[[-n,-n],[+n,-n],[+n,+n],[-n,+n]].map(([n,i])=>E(y(r(),a,[n,i,0]),e,t))}function lt({a0:t,a1:n,a2:a,b0:e,b1:i,b2:o},r,c,s){const l=[t??r/2-.5,n,a??0,e??c/2-.5,i??0,o].map(ft);return null!=s&&ut(l)?{affines:l,focalLength:s}:{affines:[r/2-.5,1,0,c/2-.5,0,-1]}}function ft(t,n){if(null==t)return null;const a=parseFloat(`${t}`);return isNaN(a)?null:a}function ut(t){return null!=t[1]&&null!=t[5]}function ht(t,n,a){const{cameraHeight:e,cameraPitch:i,cameraRoll:o,elevation:r,farDistance:c,horizontalFieldOfView:s,location:l,verticalFieldOfView:f}=zt(t,t.location.spatialReference),u=r??(l.z??0)-e;return{...gt(t,n,a),averageElevation:u,cameraPitch:i,cameraRoll:o??0,farDistance:c,horizontalFieldOfView:s,verticalFieldOfView:f}}function mt(t,n,a,e){return jt(e)?U([e.omega,e.phi,e.kappa]):Ot(e)?C([e.heading,e.pitch,e.roll]):C([t,n,a??0])}function pt(t,n,a){const{cameraHeading:e,cameraHeight:i,farDistance:o,horizontalFieldOfView:r,location:c,verticalFieldOfView:s}=zt(t,t.location.spatialReference),l=(c.z??0)-i;let f=-e,u=0,h=0;if(t?.matrix){const{matrix:n}=t;[u,h,f]=Pt(n)}return{averageElevation:l,cameraLocation:c,cameraHeading:e,farDistance:o,horizontalFieldOfView:r,imageHeight:a,imageWidth:n,verticalFieldOfView:s,horizonYaw:f,horizonPitch:u,horizonRoll:h}}function gt(t,n,a){const{a0:e,a1:i,a2:o,b0:r,b1:c,b2:s,cameraHeading:l,cameraOrientation:f,cameraPitch:u,cameraRoll:h,focalLength:m,horizontalFieldOfView:p,location:g,matrix:v,principalX:M,principalY:d,radial:x,tangential:w,verticalFieldOfView:y}=t,{affines:b,focalLength:j}=lt({a0:e,a1:i,a2:o,b0:r,b1:c,b2:s},n,a,m),O=v??mt(l,u,h,f),z=null!=M&&null!=d?[M,d]:void 0;return{affineTransformations:f?.affineTransformations??b,cameraLocation:g.clone(),focalLength:f?.focalLength??j,horizontalFieldOfView:p,imageHeight:a,imageWidth:n,principalOffsetPoint:f?.principalOffsetPoint??z,radialDistortionCoefficients:f?.radialDistortionCoefficients??x,rotationMatrix:O,tangentialDistortionCoefficients:f?.tangentialDistortionCoefficients??w,verticalFieldOfView:y}}const vt=t=>null!=t&&"elevationSample"in t&&null!=t.elevationSample,Mt=t=>O(t?.elevationSource)&&null!=t?.extent,dt=t=>b(t?.elevationSource),xt=async(t,n,a,e,i)=>{const o=z(t),r=n-a/o;return dt(e)?(e.elevationSource=new j({constantElevation:e.elevationSource.constantElevation/o}),e):vt(e)?e:Mt(e)?{elevationSample:await P({...v(e.elevationSource)?e.elevationSource.toJSON():e.elevationSource,extent:e.extent},i),elevationSource:new j({constantElevation:r})}:{averageGroundElevation:r,spatialReference:t}},wt=t=>R(t?.heading)&&R(t?.pitch),yt=(t,n)=>[[-t,-n],[t,-n],[t,n],[-t,n]];function bt(t){const{cameraLocation:n,farDistance:i,horizontalFieldOfView:o,rotationMatrix:c,scalingFactor:s,verticalFieldOfView:f}=t,u=e();l(u,c);const h=2*Math.tan(a(f)/2)*i*s,m=2*Math.tan(a(o)/2)*i*s,v=A([0,0,-1],u),M=L([n.x,n.y,n.z],v,t.farDistance*s,s),d=A([0,1,0],u),x=A([1,0,0],u),w=N(d,h/2,s),y=N(x,m/2,s),b=p(r(),w,y),j=g(r(),w,y);return[g(r(),M,b),g(r(),M,j),p(r(),M,b),p(r(),M,j)]}const jt=t=>2===t?.type,Ot=t=>1===t?.type;function zt(t,n,a=!0){const e=z(n),i=a?t.clone():t;return i.cameraHeight/=e,i.farDistance/=e,i.nearDistance/=e,b(i.elevationSource)&&(i.elevationSource.constantElevation/=e),i}function Pt(t){return[n(Math.asin(-t[6])),n(Math.atan(t[7]/t[8])),n(Math.atan2(t[3],t[0]))]}function Rt(t,n,a,e=!1){return Ft(J(t,n),a,e)}function Ft(t,a,i=!1){const o=i?l(e(),q(a,k.YPR)):q(a,k.YPR),r=t[0]*o[0]+t[1]*o[1]+t[2]*o[2],c=t[0]*o[3]+t[1]*o[4]+t[2]*o[5],s=t[0]*o[6]+t[1]*o[7]+t[2]*o[8],f=n(Math.acos(-s));return[n(Math.atan2(r,c)),f]}export{Rt as adjustHorizonAngles,Ft as adjustHorizonAnglesVec3,bt as computeFarplaneVertices,K as computeHFOVAndVFOV,st as computeNewReferenceCoordinates,$ as convertHeadingPitchToSphereVertex,Z as convertOrientationToPixelLocation,B as convertPixelLocationToSphereVertex,W as convertPixelToHeadingPitch,G as convertSphereVertexToOrientation,X as convertSphereVertexToPixelLocation,zt as convertToSRUnits,J as createMeshSpaceVector,q as createRotationMatrix,C as createRotationMatrixFromHPR,U as createRotationMatrixFromOPK,Pt as extractHorizonAngles,lt as getAffinesAndFocalLength,pt as getImageToWorldPanoramicProperties,ht as getImageToWorldProperties,Q as getInitialAngle,xt as getUpdateElevationProps,ot as getWebMercatorScalingFactor,gt as getWorldToImageProperties,wt as hasAngles,Ot as hasHeadingPitchRoll,jt as hasOmegaPhiKappa,ct as isElevationSampler,vt as isUpdateElevationWithElevationSampler,Mt as isUpdateElevationWithElevationSource,dt as isUpdateUsingConstantElevation,ut as isValidAffines,H as linearEquationSolve,T as ltpToGeographic,nt as or,tt as pointToArray,E as projectiveTransform,yt as reducerFn,_ as rotatePixel,L as scaleAndAddWithFactor,N as scaleWithFactor,A as transformMat3,I as transformMat4,at as validatePixelsToTransform,et as validatePointsToTransform,it as validateRotationMatrix,rt as vecToPoint};
|
|
2
|
+
import t from"../../../core/Error.js";import{rad2deg as n,deg2rad as a}from"../../../core/mathUtils.js";import{create as e}from"../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{create as i,fromValues as o}from"../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{zeros as r,create as c}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 l,multiply as f}from"../../../core/libs/gl-matrix-2/math/mat3.js";import{invertOrIdentity as u,mul as h}from"../../../core/libs/gl-matrix-2/math/mat4.js";import{scale as m,sub as p,add as g}from"../../../core/libs/gl-matrix-2/math/vec3.js";import{isSerializable as v}from"../../../core/support/jsonUtils.js";import M from"../../../geometry/Point.js";import{projectAsync as d}from"../../../geometry/projectionUtils.js";import{earth as x}from"../../../geometry/support/Ellipsoid.js";import{isWebMercator as w}from"../../../geometry/support/spatialReferenceUtils.js";import{a as y}from"../../../chunks/vec3.js";import{isConstantElevation as b,ConstantElevation as j,isElevationSource as O}from"../core/ElevationSourceDefinitions.js";import{getMetersPerUnitOfSR as z}from"../core/utils.js";import{getElevationSampler as P}from"./updateElevationUtils.js";import{isNumber as R}from"../../../support/guards.js";import{defaultImageSphereSize as F}from"../../../widgets/PanoramicViewer/constants.js";function E(t,n,a){const[e,o,r,c]=n,[s,l,f,m]=a;S(e,o,r,c);const p=S(s,l,f,m),g=H(e,o,r,c),v=H(s,l,f,m),M=u(i(),g),d=h(i(),M,v),[x,w,y,b]=D(t,d);return[x/b,w/b,p?0:y/b]}function S(t,n,a,e){return 0===t[2]&&0===n[2]&&0===a[2]&&0===e[2]&&(t[2]=n[2]=a[2]=e[2]=1,!0)}function V(t){return 0===t?1:t}function D(t,n){const[a,e,i]=t,o=[0,0,0,0];return o[0]=a*n[0]+e*n[1]+i*n[2]+n[3],o[1]=a*n[4]+e*n[5]+i*n[6]+n[7],o[2]=a*n[8]+e*n[9]+i*n[10]+n[11],o[3]=V(a*n[12]+e*n[13]+i*n[14]+n[15]),o}function H(t,n,a,e){const r=I(s([...e,1]),u(new Array(16),o(t[0],n[0],a[0],0,t[1],n[1],a[1],0,t[2],n[2],a[2],0,1,1,1,1))),c=r[0],l=r[1],f=r[2],h=i();return h[0]=c*t[0],h[1]=l*n[0],h[2]=f*a[0],h[3]=0,h[4]=c*t[1],h[5]=l*n[1],h[6]=f*a[1],h[7]=0,h[8]=c*t[2],h[9]=l*n[2],h[10]=f*a[2],h[11]=0,h[12]=c,h[13]=l,h[14]=f,h[15]=1,h}function L(t,n,a,e,i=r()){return i[0]=t[0]+n[0]*a,i[1]=t[1]+n[1]*a,i[2]=t[2]+n[2]*(a/e),i}function N(t,n,a){const e=r();return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*(n/a),e}function A(t,n){const[a,e,i]=t,o=r();return o[0]=a*n[0]+e*n[3]+i*n[6],o[1]=a*n[1]+e*n[4]+i*n[7],o[2]=a*n[2]+e*n[5]+i*n[8],o}function I(t,n){const[a,e,i,o]=t,r=new Array(4);return r[0]=a*n[0]+e*n[1]+i*n[2]+o*n[3],r[1]=a*n[4]+e*n[5]+i*n[6]+o*n[7],r[2]=a*n[8]+e*n[9]+i*n[10]+o*n[11],r[3]=a*n[12]+e*n[13]+i*n[14]+o*n[15],r}function Y(n,i,o,r=!0){if(!Number.isFinite(n))throw new t("InvalidRotationAngle","Please specify a valid angle for rotation");const c=o*(r?a(n):n),s=Math.cos(c),l=Math.sin(c),f=e();switch(i){case 0:f[4]=s,f[5]=-l,f[7]=l,f[8]=s;break;case 1:f[0]=s,f[2]=l,f[6]=-l,f[8]=s;break;case 2:f[0]=s,f[1]=-l,f[3]=l,f[4]=s;break;default:throw new t("InvalidRotationAxis","Please specify either 0, 1 or 2 for X, Y or Z axis respectively")}return f}const k={HPR:[[2,-1],[0,1],[2,-1]],OPK:[[0,1],[1,1],[2,1]],YPR:[[0,-1],[1,-1],[2,-1]]};function U(n,a,i=!0){if(3!==n?.length||3!==a?.length)throw new t("InvalidRotationAngles","Please specify three angles with config for rotation");const o=e();for(let t=0;t<3;t++){const[e,r]=a[t],c=Y(n[t],e,r,i);f(o,c,o)}return o}function q(t,n=!0){return U(t,k.OPK,n)}function C(t,n=!0){return U(t,k.HPR,n)}function K(t,n,e){const i=Math.sin(a(e)),o=Math.cos(a(e)),r=[[t,0],[t,n],[0,n]];r.forEach((t,n)=>{r[n]=[o*t[0]-i*t[1],i*t[0]+o*t[1]]});const c={xmin:Math.min(0,r[0][0],r[1][0],r[2][0]),xmax:Math.max(0,r[0][0],r[1][0],r[2][0]),ymin:Math.min(0,r[0][1],r[1][1],r[2][1]),ymax:Math.max(0,r[0][1],r[1][1],r[2][1])};return{hfov:Math.abs(c.xmax-c.xmin),vfov:Math.abs(c.ymax-c.ymin)}}function T(t,e){const i=Number(t[0]),o=Number(t[1]),r=Number(t[2]),[c,s,l,f]=e,u=a(c),h=a(s),m=l/Math.sqrt(1-f*Math.sin(u)**2),p=i/m,g=o/m,v=r/m,M=Math.cos(u)-Math.sin(u)*g+Math.cos(u)*v,d=Math.sin(u)+Math.cos(u)*g+Math.sin(u)*v,x=Math.sqrt(M**2+p**2),w=f*m*Math.sin(u),y=(t,n=5)=>{if(0===n)return t;const a=y(t,n-1);return Math.atan(d/x-(w-f*(l/Math.sqrt(1-f*Math.sin(a)**2))*Math.sin(a))/(m*x))},b=y(u),j=Math.atan(i/(m*M))+h,O=n(b);return[n(j),O,i/(Math.cos(b)*Math.sin(j-h))-l/Math.sqrt(1-f*Math.sin(b)**2)]}function W(t,n,a){const e=360/n,i=180/a;return{heading:(t.x-n/2)*e,pitch:90-(t.y-a/2)*i}}function X(t,n,a,e,i=F/2){const{heading:o,pitch:r}=G(t,i),c=e?Pt(o,r,e):[o,r];return{heading:o,pitch:r,...Z(c[0],c[1],n,a)}}function Z(t,n,a,e){const i=t%360;return{x:a/2+(i<-180?i+360:i>180?i-360:i)/(360/a),y:e-n/(180/e)}}function G(t,a){const e=n(Math.acos(-t.z/a));return{heading:n(Math.atan2(t.x,t.y)),pitch:e}}function J(t,n){return[Math.sin(a(t))*Math.sin(a(n)),Math.cos(a(t))*Math.sin(a(n)),Math.cos(a(180-n))]}function $(t,n,a,e=F/2){const i=a?Pt(t,n,a,!0):[t,n];return m(c(),J(i[0],i[1]),e)}function B(t,n,a,e,i=F/2){const{heading:o,pitch:r}=W(t,n,a);return $(o,r,e,i)}async function Q(t,a,e){const i=await d(a,t.spatialReference,e);let o=n(Math.atan2(i.y-t.y,i.x-t.x));return o=o>=0&&o<=90?90-o:o>90&&o<=180?360-o+90:90+Math.abs(o),o}function _(t,n,a){const e=Math.cos(a),i=Math.sin(a),o=[1,0,0,1,0,0],r=o[0]*e+o[2]*i,c=o[1]*e+o[3]*i,s=-o[0]*i+o[2]*e,l=-o[1]*i+o[3]*e;o[0]=r,o[1]=c,o[2]=s,o[3]=l;return[t*o[0]+n*o[2]+o[4],t*o[1]+n*o[3]+o[5]]}const tt=t=>t.toArray(),nt=(...t)=>t.some(t=>t);function at(t,n){if(nt(0===t.length,t.some(({x:t,y:n})=>nt(null==t,null==n)),!n.hasZ))throw new Error("Input pixels must have x, y and camera location must have z value")}function et(t,n){if(t.some(t=>null==t.z)||null==n.z)throw new Error("Input points and camera location must have z value")}function it(t){if(9!==t?.length)throw new Error("Rotation matrix is not provided or is not a valid 3x3 matrix")}function ot(t,n){return w(n)?1/Math.cos(Math.PI/2-2*Math.atan(Math.exp(-1*t/x.radius))):1}const rt=t=>n=>new M({x:n[0],y:n[1],z:n[2],spatialReference:t});function ct(t,n,a,e){return[[-n,-n],[+n,-n],[+n,+n],[-n,+n]].map(([n,i])=>E(y(r(),a,[n,i,0]),e,t))}function st({a0:t,a1:n,a2:a,b0:e,b1:i,b2:o},r,c,s){const l=[t??r/2-.5,n,a??0,e??c/2-.5,i??0,o].map(lt);return null!=s&&ft(l)?{affines:l,focalLength:s}:{affines:[r/2-.5,1,0,c/2-.5,0,-1]}}function lt(t,n){if(null==t)return null;const a=parseFloat(`${t}`);return isNaN(a)?null:a}function ft(t){return null!=t[1]&&null!=t[5]}function ut(t,n,a){const{cameraHeight:e,cameraPitch:i,cameraRoll:o,elevation:r,farDistance:c,horizontalFieldOfView:s,location:l,verticalFieldOfView:f}=Ot(t,t.location.spatialReference),u=r??(l.z??0)-e;return{...pt(t,n,a),averageElevation:u,cameraPitch:i,cameraRoll:o??0,farDistance:c,horizontalFieldOfView:s,verticalFieldOfView:f}}function ht(t,n,a,e){return bt(e)?q([e.omega,e.phi,e.kappa]):jt(e)?C([e.heading,e.pitch,e.roll]):C([t,n,a??0])}function mt(t,n,a){const{cameraHeading:e,cameraHeight:i,farDistance:o,horizontalFieldOfView:r,location:c,verticalFieldOfView:s}=Ot(t,t.location.spatialReference),l=(c.z??0)-i;let f=-e,u=0,h=0;if(t?.matrix){const{matrix:n}=t;[u,h,f]=zt(n)}return{averageElevation:l,cameraLocation:c,cameraHeading:e,farDistance:o,horizontalFieldOfView:r,imageHeight:a,imageWidth:n,verticalFieldOfView:s,horizonYaw:f,horizonPitch:u,horizonRoll:h}}function pt(t,n,a){const{a0:e,a1:i,a2:o,b0:r,b1:c,b2:s,cameraHeading:l,cameraOrientation:f,cameraPitch:u,cameraRoll:h,focalLength:m,horizontalFieldOfView:p,location:g,matrix:v,principalX:M,principalY:d,radial:x,tangential:w,verticalFieldOfView:y}=t,{affines:b,focalLength:j}=st({a0:e,a1:i,a2:o,b0:r,b1:c,b2:s},n,a,m),O=v??ht(l,u,h,f),z=null!=M&&null!=d?[M,d]:void 0;return{affineTransformations:f?.affineTransformations??b,cameraLocation:g.clone(),focalLength:f?.focalLength??j,horizontalFieldOfView:p,imageHeight:a,imageWidth:n,principalOffsetPoint:f?.principalOffsetPoint??z,radialDistortionCoefficients:f?.radialDistortionCoefficients??x,rotationMatrix:O,tangentialDistortionCoefficients:f?.tangentialDistortionCoefficients??w,verticalFieldOfView:y}}const gt=t=>null!=t&&"elevationSample"in t&&null!=t.elevationSample,vt=t=>O(t?.elevationSource)&&null!=t?.extent,Mt=t=>b(t?.elevationSource),dt=async(t,n,a,e,i)=>{const o=z(t),r=n-a/o;return Mt(e)?(e.elevationSource=new j({constantElevation:e.elevationSource.constantElevation/o}),e):gt(e)?e:vt(e)?{elevationSample:await P({...v(e.elevationSource)?e.elevationSource.toJSON():e.elevationSource,extent:e.extent},i),elevationSource:new j({constantElevation:r})}:{averageGroundElevation:r,spatialReference:t}},xt=t=>R(t?.heading)&&R(t?.pitch),wt=(t,n)=>[[-t,-n],[t,-n],[t,n],[-t,n]];function yt(t){const{cameraLocation:n,farDistance:i,horizontalFieldOfView:o,rotationMatrix:c,scalingFactor:s,verticalFieldOfView:f}=t,u=e();l(u,c);const h=2*Math.tan(a(f)/2)*i*s,m=2*Math.tan(a(o)/2)*i*s,v=A([0,0,-1],u),M=L([n.x,n.y,n.z],v,t.farDistance*s,s),d=A([0,1,0],u),x=A([1,0,0],u),w=N(d,h/2,s),y=N(x,m/2,s),b=p(r(),w,y),j=g(r(),w,y);return[g(r(),M,b),g(r(),M,j),p(r(),M,b),p(r(),M,j)]}const bt=t=>2===t?.type,jt=t=>1===t?.type;function Ot(t,n,a=!0){const e=z(n),i=a?t.clone():t;return i.cameraHeight/=e,i.farDistance/=e,i.nearDistance/=e,b(i.elevationSource)&&(i.elevationSource.constantElevation/=e),i}function zt(t){return[n(Math.asin(-t[6])),n(Math.atan(t[7]/t[8])),n(Math.atan2(t[3],t[0]))]}function Pt(t,n,a,e=!1){return Rt(J(t,n),a,e)}function Rt(t,a,i=!1){const o=i?l(e(),U(a,k.YPR)):U(a,k.YPR),r=t[0]*o[0]+t[1]*o[1]+t[2]*o[2],c=t[0]*o[3]+t[1]*o[4]+t[2]*o[5],s=t[0]*o[6]+t[1]*o[7]+t[2]*o[8],f=n(Math.acos(-s));return[n(Math.atan2(r,c)),f]}export{Pt as adjustHorizonAngles,Rt as adjustHorizonAnglesVec3,yt as computeFarplaneVertices,K as computeHFOVAndVFOV,ct as computeNewReferenceCoordinates,$ as convertHeadingPitchToSphereVertex,Z as convertOrientationToPixelLocation,B as convertPixelLocationToSphereVertex,W as convertPixelToHeadingPitch,G as convertSphereVertexToOrientation,X as convertSphereVertexToPixelLocation,Ot as convertToSRUnits,J as createMeshSpaceVector,U as createRotationMatrix,C as createRotationMatrixFromHPR,q as createRotationMatrixFromOPK,zt as extractHorizonAngles,st as getAffinesAndFocalLength,mt as getImageToWorldPanoramicProperties,ut as getImageToWorldProperties,Q as getInitialAngle,dt as getUpdateElevationProps,ot as getWebMercatorScalingFactor,pt as getWorldToImageProperties,xt as hasAngles,jt as hasHeadingPitchRoll,bt as hasOmegaPhiKappa,gt as isUpdateElevationWithElevationSampler,vt as isUpdateElevationWithElevationSource,Mt as isUpdateUsingConstantElevation,ft as isValidAffines,H as linearEquationSolve,T as ltpToGeographic,nt as or,tt as pointToArray,E as projectiveTransform,wt as reducerFn,_ as rotatePixel,L as scaleAndAddWithFactor,N as scaleWithFactor,A as transformMat3,I as transformMat4,at as validatePixelsToTransform,et as validatePointsToTransform,it as validateRotationMatrix,rt as vecToPoint};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{__decorate as t}from"tslib";import e from"../../../core/Error.js";import{property as i,subclass as s}from"../../../core/accessorSupport/decorators.js";import r from"../../../geometry/Point.js";import{GeospatialPDFWorkerClient as n}from"../../geospatialPDF/GeospatialPDFWorkerClient.js";import a from"./BaseRaster.js";import o from"../../support/PixelBlock.js";import h from"../../support/RasterInfo.js";let l=class extends a{constructor(){super(...arguments),this._workerClient=new n,this._extent=null,this._ctm=null,this._neatlineRing=[],this._width=0,this._height=0,this._tileSize=512,this.datasetFormat="PDF",this.frame=null,this.neatlineExtent=null,this.page=1,this.tileType="Raster"}destroy(){this._workerClient.destroy(),this.neatlineExtent=null,this._extent=null,this._ctm=null,this._neatlineRing=[]}async fetchRawTile(t,e,i,s={}){const r=this._extent,n=this._ctm,a=this.getTileExtentPDF(t,e,i);if(!a.intersects(r))return null;return p(await this._workerClient.render(a,this._tileSize,this._tileSize,n,this._neatlineRing,s))}async _open(t){if(!this.url)throw new e("geospatial-pdf-raster:open","GeospatialPDFRaster requires a url.");const i=await this._workerClient.loadPDF({url:this.url,page:this.page},t);this.frame=i.frame;const s=this.frame.outerExtentMediabox;if(!s)throw new e("geospatial-pdf-raster:open","Failed to compute Geospatial PDF extent.");this.neatlineExtent=i.fullExtent,this._extent=s,this._ctm=this.frame.ctm,this._neatlineRing=this.frame.sourceMediaBoxPolygon.rings[0];const r=m(this.frame.ctm,this._extent);this._width=r[0],this._height=r[1];const n={x:s.width/this._width,y:s.height/this._height},a=new h({width:this._width,height:this._height,pixelType:"u8",extent:s,pixelSize:n,spatialReference:s.spatialReference,bandCount:3,keyProperties:{DataType:"Processed"}});this.createRemoteDatasetStorageInfo(a,this._tileSize,this._tileSize),this._set("rasterInfo",a),this.updateTileInfo()}getTileExtentPDF(t,e,i){const s=this._extent,n=2**t,a=s.width/this._width*n,o=s.height/this._height*n,h=new r({x:s.xmin,y:s.ymax});return this.getTileExtent({x:a,y:o},e,i,h,s.spatialReference,[512,512])}};function p(t){return new o({width:t.width,height:t.height,pixelType:"u8",pixels:[t.red,t.green,t.blue],mask:t.mask})}function m(t,
|
|
2
|
+
import{__decorate as t}from"tslib";import e from"../../../core/Error.js";import{property as i,subclass as s}from"../../../core/accessorSupport/decorators.js";import r from"../../../geometry/Point.js";import{GeospatialPDFWorkerClient as n}from"../../geospatialPDF/GeospatialPDFWorkerClient.js";import a from"./BaseRaster.js";import o from"../../support/PixelBlock.js";import h from"../../support/RasterInfo.js";let l=class extends a{constructor(){super(...arguments),this._workerClient=new n,this._extent=null,this._ctm=null,this._neatlineRing=[],this._width=0,this._height=0,this._tileSize=512,this.datasetFormat="PDF",this.frame=null,this.neatlineExtent=null,this.page=1,this.tileType="Raster"}destroy(){this._workerClient.destroy(),this.neatlineExtent=null,this._extent=null,this._ctm=null,this._neatlineRing=[]}async fetchRawTile(t,e,i,s={}){const r=this._extent,n=this._ctm,a=this.getTileExtentPDF(t,e,i);if(!a.intersects(r))return null;return p(await this._workerClient.render(a,this._tileSize,this._tileSize,n,this._neatlineRing,s))}async _open(t){if(!this.url)throw new e("geospatial-pdf-raster:open","GeospatialPDFRaster requires a url.");const i=await this._workerClient.loadPDF({url:this.url,page:this.page},t);this.frame=i.frame;const s=this.frame.outerExtentMediabox;if(!s)throw new e("geospatial-pdf-raster:open","Failed to compute Geospatial PDF extent.");this.neatlineExtent=i.fullExtent,this._extent=s,this._ctm=this.frame.ctm,this._neatlineRing=this.frame.sourceMediaBoxPolygon.rings[0];const r=m(this.frame.ctm,this._extent);this._width=r[0],this._height=r[1];const n={x:s.width/this._width,y:s.height/this._height},a=new h({width:this._width,height:this._height,pixelType:"u8",extent:s,pixelSize:n,spatialReference:s.spatialReference,bandCount:3,keyProperties:{DataType:"Processed"}});this.createRemoteDatasetStorageInfo(a,this._tileSize,this._tileSize),this._set("rasterInfo",a),this.updateTileInfo()}getTileExtentPDF(t,e,i){const s=this._extent,n=2**t,a=s.width/this._width*n,o=s.height/this._height*n,h=new r({x:s.xmin,y:s.ymax});return this.getTileExtent({x:a,y:o},e,i,h,s.spatialReference,[512,512])}};function p(t){return new o({width:t.width,height:t.height,pixelType:"u8",pixels:[t.red,t.green,t.blue],mask:t.mask})}function m(t,i){const[s,r,n,a]=t,o=s*a-r*n;if(!Number.isFinite(o)||0===o)throw new e("geospatial-pdf-raster:open","Failed to derive raster dimensions from an invalid PDF CTM.");const h=10*Math.hypot(a,r)/Math.abs(o),l=10*Math.hypot(n,s)/Math.abs(o),p=Math.max(1,Math.ceil(i.width*h)),m=Math.max(1,Math.ceil(i.height*l));if(!Number.isFinite(p)||!Number.isFinite(m))throw new e("geospatial-pdf-raster:open","PDF CTM produced invalid raster dimensions.");return[p,m]}t([i({type:String,json:{write:!0}})],l.prototype,"datasetFormat",void 0),t([i({constructOnly:!0})],l.prototype,"page",void 0),t([i({readOnly:!0})],l.prototype,"tileType",void 0),l=t([s("esri.layers.raster.datasets.GeospatialPDFRaster")],l);export{l as default};
|
package/layers/raster/types.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{__decorate as t}from"tslib";import{ClonableMixin as e}from"../../core/Clonable.js";import{JSONSupport as r}from"../../core/JSONSupport.js";import{property as i,subclass as o}from"../../core/accessorSupport/decorators.js";import l from"../../time/TimeExtent.js";import
|
|
2
|
+
import{__decorate as t}from"tslib";import{ClonableMixin as e}from"../../core/Clonable.js";import{JSONSupport as r}from"../../core/JSONSupport.js";import{property as i,subclass as o}from"../../core/accessorSupport/decorators.js";import{timeUnitKebabDictionary as n}from"../../portal/timeUnitKebabDictionary.js";import l from"../../time/TimeExtent.js";import a from"../../time/TimeInterval.js";import{timeZoneProperty as m}from"../../time/timeZoneUtils.js";import{reader as s}from"../../core/accessorSupport/decorators/reader.js";import{writer as p}from"../../core/accessorSupport/decorators/writer.js";function u(t,e){return a.fromJSON({value:t,unit:e})}let d=class extends(e(r)){constructor(t){super(t),this.cumulative=!1,this.endField=null,this.fullTimeExtent=null,this.hasLiveData=!1,this.interval=null,this.startField=null,this.timeZone=null,this.trackIdField=null,this.useTime=!0,this.stops=null}readFullTimeExtent(t,e){return e.timeExtent&&Array.isArray(e.timeExtent)&&2===e.timeExtent.length?l.fromArray(e.timeExtent):null}writeFullTimeExtent(t,e){null!=t?.start&&null!=t.end&&(e.timeExtent=t.toArray())}readInterval(t,e){return e.timeInterval&&e.timeIntervalUnits?u(e.timeInterval,e.timeIntervalUnits):e.defaultTimeInterval&&e.defaultTimeIntervalUnits?u(e.defaultTimeInterval,e.defaultTimeIntervalUnits):null}writeInterval(t,e){e.timeInterval=t?.toJSON().value??null,e.timeIntervalUnits=t?.toJSON().unit??null}};t([i({type:Boolean,json:{name:"exportOptions.timeDataCumulative",origins:{"web-document":{read:!1,write:!1},"portal-item":{read:!1,write:!1}}}})],d.prototype,"cumulative",void 0),t([i({type:String,json:{name:"endTimeField",write:!0}})],d.prototype,"endField",void 0),t([i({type:l,json:{write:!0}})],d.prototype,"fullTimeExtent",void 0),t([s("fullTimeExtent",["timeExtent"])],d.prototype,"readFullTimeExtent",null),t([p("fullTimeExtent",{timeExtent:{type:[Number]}})],d.prototype,"writeFullTimeExtent",null),t([i({type:Boolean,json:{default:!1,write:!0}})],d.prototype,"hasLiveData",void 0),t([i({type:a,json:{write:!0}})],d.prototype,"interval",void 0),t([s("interval",["timeInterval","timeIntervalUnits","defaultTimeInterval","defaultTimeIntervalUnits"])],d.prototype,"readInterval",null),t([p("interval",{timeInterval:{type:Number},timeIntervalUnits:{type:n.jsonValues}})],d.prototype,"writeInterval",null),t([i({type:String,json:{name:"startTimeField",write:!0}})],d.prototype,"startField",void 0),t([i(m("timeReference",!0,!1))],d.prototype,"timeZone",void 0),t([i({type:String,json:{write:!0}})],d.prototype,"trackIdField",void 0),t([i({type:Boolean,json:{name:"exportOptions.useTime",origins:{"web-document":{read:!1,write:!1},"portal-item":{read:!1,write:!1}}}})],d.prototype,"useTime",void 0),t([i({type:[Date],json:{read:!1}})],d.prototype,"stops",void 0),d=t([o("esri.layers.support.TimeInfo")],d);export{d as default};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { ClonableMixin } from "../../core/Clonable.js";
|
|
2
|
+
import type { JSONSupport } from "../../core/JSONSupport.js";
|
|
3
|
+
|
|
4
|
+
export interface TimeSeriesCalculationProperties extends Partial<Pick<TimeSeriesCalculation, "name" | "title" | "type">> {}
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* The calculation method by which to derive a data value for a time series. By default,
|
|
8
|
+
* each time series info includes the raw values returned from each field.
|
|
9
|
+
*
|
|
10
|
+
* @since 5.2
|
|
11
|
+
*/
|
|
12
|
+
export type TimeSeriesCalculationMethod = "change-from-first" | "change-from-previous" | "percent-change-from-first" | "percent-change-from-previous";
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Defines a calculation method that can be used to derive data values for a time series.
|
|
16
|
+
*
|
|
17
|
+
* @since 5.2
|
|
18
|
+
*/
|
|
19
|
+
export default class TimeSeriesCalculation extends TimeSeriesCalculationSuperclass {
|
|
20
|
+
constructor(properties?: TimeSeriesCalculationProperties);
|
|
21
|
+
/**
|
|
22
|
+
* A unique identifier for the calculation method within the time series.
|
|
23
|
+
*
|
|
24
|
+
* @since 5.2
|
|
25
|
+
*/
|
|
26
|
+
accessor name: string | null | undefined;
|
|
27
|
+
/** A user-friendly name for the calculation method. */
|
|
28
|
+
accessor title: string | null | undefined;
|
|
29
|
+
/** The method by which to calculate a time series data value. */
|
|
30
|
+
accessor type: TimeSeriesCalculationMethod | null | undefined;
|
|
31
|
+
}
|
|
32
|
+
declare const TimeSeriesCalculationSuperclass: typeof JSONSupport & typeof ClonableMixin
|