@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{createUniqueColors as e}from"../../core/colorUtils.js";import i from"../../core/Error.js";import{toPt as a}from"../../core/screenUtils.js";import{ensureClass as r}from"../../core/accessorSupport/ensureType.js";import{fetchMessageBundle as n}from"../../intl/messages.js";import s from"../../renderers/ClassBreaksRenderer.js";import l from"../../renderers/support/AuthoringInfo.js";import t from"../../renderers/support/AuthoringInfoSizeStop.js";import o from"../../renderers/support/AuthoringInfoVisualVariable.js";import{setLabelsForClassBreaks as u}from"../../renderers/support/utils.js";import m from"../../renderers/visualVariables/SizeVariable.js";import{castSizeFromStringOrNumber as p}from"../../renderers/visualVariables/support/castSizeVariable.js";import d from"../../renderers/visualVariables/support/SizeStop.js";import c from"../../renderers/visualVariables/support/SizeVariableLegendOptions.js";import f from"../heuristics/ageUnit.js";import y from"../heuristics/outline.js";import z from"../heuristics/referenceSize.js";import v from"../heuristics/sizeRange.js";import{getTypeSchemeData as w}from"./type.js";import{createPrimitiveOverrides as h,updateReferenceSizeSymbol as b,createReferenceSizeSymbol as g}from"./support/referenceSizeUtils.js";import{spliceVisualVariables as S,updateAuthoringInfoVisualVariable as x,getAuthoringInfoVisualVariable as E,isSizeVV as T,processRegenerateParams as V,getRendererToUpdate as k,getStyleType as O,hasOutlineVV as I,hasScaleDependentSizeVV as B,findSizeVVIndex as F,findOutlineVVIndex as R}from"./support/regenerateUtils.js";import{createPrimitiveOverrides as j,updateSpikeSymbol as q,createSpikeSymbol as D,defaultSpikeSymbolStyle as G}from"./support/spikeUtils.js";import{getTimeSeriesSummaryStatistics as N,resolveDataSeriesInfo as U}from"./support/timeSeriesUtils.js";import{errorCallback as P,getTitleAndExpressionForAgeRenderer as M,updateAgeRendererAuthoringInfoVV as C,getClassBreaks as W,getSummaryStatistics as $,createSymbol as A,getSymbolOutlineFromScheme as H,getSymbolSizeFromScheme as L,verifyBasicFieldValidity as J,getSizeRangeForAxis as K,getDataRange as Q,getBasemapInfo as X}from"./support/utils.js";import{verifyDates as Y,supportedAgeUnits as Z}from"../statistics/support/ageUtils.js";import{verifyBinningParams as _}from"../support/binningUtils.js";import{getNormalizationType as ee,getFieldsList as ie,isAnyDateField as ae}from"../support/utils.js";import{createLayerAdapter as re,featureCapableLayerTypes as ne,getLayerTypeLabels as se,binningCapableLayerTypes as le}from"../support/adapters/support/layerUtils.js";import{cloneScheme as te,getSchemes as oe}from"../symbology/size.js";import{getColorFromSymbol as ue}from"../../symbols/support/utils.js";const me=2**53-1,pe=[5,112.5];async function de(e,a){const r=U({...e});if(!(r&&r.layer&&(r.field||r.valueExpression||r.sqlExpression)))throw new i("size-visual-variable:missing-parameters","'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required");if(r.valueExpression&&!r.sqlExpression&&!r.view)throw new i("size-visual-variable:missing-parameters","View is required when 'valueExpression' is specified");if("reference-size"===r.theme&&!r.view&&!r.field)throw new i("size-visual-variable:missing-parameters","'view' and 'field' are required when 'theme' is 'reference-size'");if("reference-size"===r.theme&&r.valueExpression)throw new i("size-visual-variable:missing-parameters","'valueExpression' is not supported when 'theme' is 'reference-size'");r.forBinning&&_(r,"size-visual-variable");const n={...r},s=r.forBinning?le:ne,l=re(n.layer,s,r.forBinning);if(!l)throw new i("size-visual-variable:invalid-parameters","'layer' must be one of these types: "+se(s).join(", "));"height"===n.axis&&(n.sizeOptimizationEnabled=!1);const t=null!=n.signal?{signal:n.signal}:null;await l.load(t);const o=l.geometryType;if("mesh"===o)throw new i("size-visual-variable:invalid-parameters","Size visualization is not applicable to layers with 'mesh' geometry type");if(n.worldScale){if("polyline"===o||"polygon"===o)throw new i("size-visual-variable:not-supported","'worldScale' sizing is not supported for polyline and polygon layers");if("3d"!==n.view?.type)throw new i("size-visual-variable:invalid-parameters","'view' parameter should be an instance of SceneView when 'worldScale' parameter is true")}if("reference-size"===n.theme&&!r.forBinning&&"polygon"!==o)throw new i("size-visual-variable:invalid-parameters","Reference size is only supported for polygon layers");if("spike"===n.theme&&!r.forBinning&&"polygon"!==o&&"point"!==o)throw new i("size-visual-variable:invalid-parameters","Spike is only supported for point and polygon layers");const u=await ie({field:n.field,normalizationField:n.normalizationField,valueExpression:n.valueExpression}),m=J(l,u,"size-visual-variable:invalid-parameters");if(m)throw m;"spike"!==n.theme||n.spikeOptions?.symbolStyle||(n.spikeOptions??={},n.spikeOptions.symbolStyle=G);const p={...n,layer:l,referenceSizeResult:a};return await fe(p),p}async function ce(e){const a=U({...e});if(!(a&&a.layer&&(a.field||a.valueExpression||a.sqlExpression)))throw new i("size-continuous-renderer:missing-parameters","'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required");if(a.valueExpression&&!a.sqlExpression&&!a.view)throw new i("size-continuous-renderer:missing-parameters","View is required when 'valueExpression' is specified");a.forBinning&&_(a,"size-continuous-renderer");const r={...a};r.symbolType=r.symbolType||"2d",r.defaultSymbolEnabled??=!0;const n=a.forBinning?le:ne,s=re(r.layer,n,a.forBinning);if(!s)throw new i("size-continuous-renderer:invalid-parameters","'layer' must be one of these types: "+se(n).join(", "));const l=null!=r.signal?{signal:r.signal}:null;await s.load(l);const t=s.geometryType,o=r.symbolType.includes("3d");if(r.outlineOptimizationEnabled="reference-size"!==r.theme&&"spike"!==r.theme&&"polygon"===t&&r.outlineOptimizationEnabled,"mesh"===t)throw new i("size-continuous-renderer:invalid-parameters","Size visualization is not applicable to layers with 'mesh' geometry type");if(o&&("polyline"===t||"polygon"===t))throw new i("size-continuous-renderer:not-supported","3d symbols are not supported for polyline and polygon layers");if(r.symbolType.includes("3d-volumetric")&&"3d"!==r.view?.type)throw new i("size-continuous-renderer:invalid-parameters","'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or 3d-volumetric-uniform");if("reference-size"===r.theme&&!a.forBinning&&"polygon"!==t)throw new i("size-continuous-renderer:invalid-parameters","Reference size is only supported for polygon layers");if("spike"===r.theme&&!a.forBinning&&"polygon"!==t&&"point"!==t)throw new i("size-continuous-renderer:invalid-parameters","Spike is only supported for point and polygon layers");const u=await ie({field:r.field,normalizationField:r.normalizationField,valueExpression:r.valueExpression}),m=J(s,u,"size-continuous-renderer:invalid-parameters");if(m)throw m;"spike"!==r.theme||r.spikeOptions?.symbolStyle||(r.spikeOptions??={},r.spikeOptions.symbolStyle=G);const p={...r,layer:s};return await fe(p),p}async function fe(e){const i=e.layer,a=i.geometryType,r=i.layer,n=e.forBinning&&"featureReduction"in r&&"binning"===r.featureReduction?.type;if(("polygon"===a||n)&&e.view&&e.field&&!e.valueExpression&&(!e.theme||"reference-size"===e.theme)){try{e.referenceSizeResult=e.referenceSizeResult??await z({layer:r,view:e.view,filter:e.filter,forBinning:e.forBinning,signal:e.signal})}catch{}!e.theme&&e.referenceSizeResult?.isGrid&&(e.theme="reference-size"),e.referenceSizeOptions?.symbolStyle||(e.referenceSizeOptions?e.referenceSizeOptions.symbolStyle="circle":e.referenceSizeOptions={symbolStyle:"circle"})}}async function ye(e){if(!e||!(e.layer&&e.view&&e.sizeStops))throw new i("update-renderer-with-reference-size:missing-parameters","'layer', 'view and 'sizeStops' parameters are required");const{view:a,forBinning:r}=e,n=e.forBinning?le:ne,s=re(e.layer,n,e.forBinning);if(!s)throw new i("update-renderer-with-reference-size:invalid-parameters","'layer' must be one of these types: "+se(n).join(", "));const l=s.layer;let t=e.renderer;if(!t)if(e.forBinning){if(!("featureReduction"in l&&l.featureReduction&&"renderer"in l.featureReduction&&l.featureReduction.renderer)||"class-breaks"!==l.featureReduction.renderer.type&&"unique-value"!==l.featureReduction.renderer.type)throw new i("update-renderer-with-reference-size:invalid-parameters","Feature reduction renderer is not supported");t=l.featureReduction.renderer}else{if(!("renderer"in l)||!l.renderer||"class-breaks"!==l.renderer.type&&"unique-value"!==l.renderer.type)throw new i("update-renderer-with-reference-size:invalid-parameters","Renderer is not supported");t=l.renderer}const o=t.authoringInfo;if(!o||!o?.visualVariables?.some(e=>"reference-size"===e.theme))throw new i("update-renderer-with-reference-size:invalid-parameters","'renderer.authoringInfo.visualVariables' should have an authoringInfoVisualVariable with 'theme' set to 'reference-size'");const u=e.isGrid??(await z({view:a,layer:l,forBinning:r}))?.isGrid;return{...e,isGrid:u,renderer:t,layer:s}}async function ze(e){if(!e||!e.layer||!e.sizeStops)throw new i("update-renderer-with-spike:missing-parameters","'layer' and 'sizeStops' parameters are required");const a=e.forBinning?le:ne,r=re(e.layer,a,e.forBinning);if(!r)throw new i("update-renderer-with-spike:invalid-parameters","'layer' must be one of these types: "+se(a).join(", "));await r.load();const n=r.layer;let s=e.renderer;if(!s)if(e.forBinning){if(!("featureReduction"in n&&n.featureReduction&&"renderer"in n.featureReduction&&n.featureReduction.renderer)||"class-breaks"!==n.featureReduction.renderer.type&&"unique-value"!==n.featureReduction.renderer.type)throw new i("update-renderer-with-spike:invalid-parameters","Feature reduction renderer is not supported");s=n.featureReduction.renderer}else{if(!("renderer"in n)||!n.renderer||"class-breaks"!==n.renderer.type&&"unique-value"!==n.renderer.type)throw new i("update-renderer-with-spike:invalid-parameters","Renderer is not supported");s=n.renderer}const l=s.authoringInfo,t=l?.visualVariables.find(e=>"spike"===e.theme);if(!t)throw new i("update-renderer-with-spike:invalid-parameters","'renderer.authoringInfo.visualVariables' should have an authoringInfoVisualVariable with 'theme' set to 'spike'");const o=e.spikeOptions??{};return o.symbolStyle??=t?.spikeSymbolStyle?void 0:G,{...e,renderer:s,layer:r,spikeOptions:o}}async function ve(e){const a=U({...e});if(!a||!a.layer||!a.field&&!a.valueExpression)throw new i("size-class-breaks-renderer:missing-parameters","'layer' and 'field' or 'valueExpression' parameters are required");if(a.valueExpression&&!a.view)throw new i("size-class-breaks-renderer:missing-parameters","View is required when 'valueExpression' is specified");a.forBinning&&_(a,"size-class-breaks-renderer");const r={...a};r.symbolType=r.symbolType||"2d",r.defaultSymbolEnabled??=!0,r.classificationMethod??="equal-interval",r.normalizationType=ee(r);const n=a.forBinning?le:ne,s=re(r.layer,n,a.forBinning);if(!s)throw new i("size-class-breaks-renderer:invalid-parameters","'layer' must be one of these types: "+se(n).join(", "));if(!(null!=r.minValue&&null!=r.maxValue)&&(null!=r.minValue||null!=r.maxValue))throw new i("size-class-breaks-renderer:missing-parameters","Both 'minValue' and 'maxValue' are required when specifying custom data range");const l=null!=r.signal?{signal:r.signal}:null;await s.load(l);const t=s.geometryType,o=r.symbolType.includes("3d");if(r.outlineOptimizationEnabled="polygon"===t&&r.outlineOptimizationEnabled,"mesh"===t)throw new i("size-class-breaks-renderer:invalid-parameters","Size visualization is not applicable to layers with 'mesh' geometry type");if(o&&("polyline"===t||"polygon"===t))throw new i("size-class-breaks-renderer:not-supported","3d symbols are not supported for polyline and polygon layers");if(r.symbolType.includes("3d-volumetric")&&"3d"!==r.view?.type)throw new i("size-class-breaks-renderer:invalid-parameters","'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or 3d-volumetric-uniform");const u=await ie({field:r.field,normalizationField:r.normalizationField}),m=J(s,u,"size-class-breaks-renderer:invalid-parameters");if(m)throw m;return{...r,layer:s}}function we(e){const i={...e};delete i.basemap,delete i.sizeScheme,delete i.legendOptions,delete i.symbolType,delete i.defaultSymbolEnabled;const a=i;return a.analyzeData=!(null!=i.minValue&&null!=i.maxValue),a}function he(e){const i={...e},a=!!i.symbolType?.includes("3d-volumetric"),r=i;return r.worldScale=a,a&&(r.axis="3d-volumetric-uniform"===i.symbolType?"all":"height"),delete i.symbolType,delete i.defaultSymbolEnabled,r}async function be(e){if(!(e&&e.layer&&e.view&&e.startTime&&e.endTime))throw new i("size-age-renderer:missing-parameters","'layer', 'view', 'startTime', 'endTime' parameters are required");const a={...e};a.symbolType??="2d",a.defaultSymbolEnabled??=!0;const r=re(a.layer,ne);if(!r)throw new i("size-age-renderer:invalid-parameters","'layer' must be one of these types: "+se(ne).join(", "));const n=null!=a.signal?{signal:a.signal}:null;await r.load(n);const s=r.geometryType,l=a.symbolType.includes("3d");if(a.outlineOptimizationEnabled="polygon"===s&&a.outlineOptimizationEnabled,"mesh"===s)throw new i("size-age-renderer:invalid-parameters","Size visualization is not applicable to layers with 'mesh' geometry type");if(l&&("polyline"===s||"polygon"===s))throw new i("size-age-renderer:not-supported","3d symbols are not supported for polyline and polygon layers");if(a.symbolType.includes("3d-volumetric")&&(!a.view||"3d"!==a.view.type))throw new i("size-age-renderer:invalid-parameters","'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or 3d-volumetric-uniform");const t=Y(r,a.startTime,a.endTime,"size-age-renderer:invalid-parameters");if(t)throw t;if(a.unit&&!Z.includes(a.unit))throw new i("size-age-renderer:invalid-unit",`Supported units are: ${Z.join(", ")}`);return{...a,layer:r}}async function ge(e){const a="regenerate-size-visual-variables";V(e,a);const r=await k(e),n=O(r);if(!n||!["size-continuous","univariate-color-size","color-size","relationship-size","type-size"].includes(n))throw new i(`${a}:invalid-parameters`,"Renderer is invalid");const s=E(r,"size");if(!s)throw new i(`${a}:invalid-parameters`,"Renderer does not have a size visual variable authoringInfo");const l=s.theme,t="reference-size"===l,o="spike"===l,u=r.visualVariables?.find(T);if(!u&&!t&&!o)throw new i(`${a}:invalid-parameters`,"Renderer does not have a size visual variable");let m=s.field,p=s.normalizationField,d=null,c=null;m||(u?.field?(m=u.field,p=u.normalizationField):r.field?(m=r.field,p=r.normalizationField):(d=u?.valueExpression??r.valueExpression,c=u?.valueExpressionTitle??r.valueExpressionTitle));const{layer:f,forBinning:y,filter:z,view:v,signal:w}=e,h=s.dataSeriesName,b=B(r),g=await de({layer:f,field:m,valueExpression:d,valueExpressionTitle:c,normalizationField:p,theme:l,sizeOptimizationEnabled:b,forBinning:y,dataSeriesName:h,filter:z,view:v,signal:w},e.referenceSizeResult);return"reference-size"!==l||null==s.referenceSizeScale||!g.referenceSizeResult||g.referenceSizeResult.isGrid||g.sizeOptimizationEnabled||(g.sizeOptimizationEnabled=!0),{...e,creatorParameters:g,renderer:r}}async function Se(e){const a="regenerate-size-continuous-renderer";V(e,a);const r=await k(e),n=O(r);if(!n||!["size-continuous","univariate-color-size"].includes(n))throw new i(`${a}:invalid-parameters`,"Renderer is invalid");const{authoringInfo:s,field:l,normalizationField:t,valueExpression:o,valueExpressionTitle:u}=r,m=s?.visualVariables.find(e=>"size"===e.type),p=m.theme,{layer:d,forBinning:c,filter:f,view:y,signal:z}=e,v=m.dataSeriesName,w=I(r),h=B(r),b=await ce({layer:d,field:l,valueExpression:o,valueExpressionTitle:u,normalizationField:t,theme:p,outlineOptimizationEnabled:w,sizeOptimizationEnabled:h,forBinning:c,dataSeriesName:v,filter:f,view:y,signal:z});return"reference-size"!==p||null==m.referenceSizeScale||!b.referenceSizeResult||b.referenceSizeResult.isGrid||b.sizeOptimizationEnabled||(b.sizeOptimizationEnabled=!0),{...e,creatorParameters:b,renderer:r}}async function xe(e){const a="regenerate-size-class-breaks-renderer";await V(e,a);const r=await k(e);if("size-class-breaks"!==O(r))throw new i(`${a}:invalid-parameters`,"Renderer is invalid");const{authoringInfo:n,field:s,normalizationField:l,normalizationType:t,normalizationTotal:o,valueExpression:u,valueExpressionTitle:m}=r,{classificationMethod:p,standardDeviationInterval:d}=n,c=r.classBreakInfos.length,{layer:f,forBinning:y,filter:z,view:v,signal:w}=e,h=n?.dataSeriesName,b=I(r),g=await ve({layer:f,field:s,valueExpression:u,valueExpressionTitle:m,normalizationType:t,normalizationField:l,normalizationTotal:o,classificationMethod:p,standardDeviationInterval:d,numClasses:c,outlineOptimizationEnabled:b,forBinning:y,dataSeriesName:h,filter:z,view:v,signal:w});return{...e,creatorParameters:g,renderer:r}}async function Ee(e){const a="regenerate-size-age-renderer";await V(e,a);const r=await k(e);if("size-age"!==O(r))throw new i(`${a}:invalid-parameters`,"Renderer is invalid");const{authoringInfo:n}=r,s=n?.visualVariables.find(e=>"size"===e.type),l=s.startTime,t=s.endTime,o=s.units,u=s.theme,{layer:m,filter:p,view:d,signal:c}=e,f=I(r),y=B(r),z=await be({layer:m,startTime:l,endTime:t,unit:o,theme:u,outlineOptimizationEnabled:f,sizeOptimizationEnabled:y,filter:p,view:d,signal:c});return{...e,creatorParameters:z,renderer:r}}async function Te(e){let i=e.sizeScheme,a=null,r=null;const n=await X(e.basemap,e.view);if(a=null!=n.basemapId?n.basemapId:null,r=null!=n.basemapTheme?n.basemapTheme:null,i)return{scheme:te(i),basemapId:a,basemapTheme:r};const s=oe({basemapTheme:r,geometryType:e.geometryType,worldScale:e.worldScale,view:e.view});return s&&(i=s.primaryScheme,a=s.basemapId,r=s.basemapTheme),{scheme:i,basemapId:a,basemapTheme:r}}function Ve(e,i){switch(i){case"point":case"multipoint":{const i=e;return[p(i.minSize),p(i.maxSize)]}case"polyline":{const i=e;return[p(i.minWidth),p(i.maxWidth)]}case"polygon":{const i=e;return[p(i.marker.minSize),p(i.marker.maxSize)]}}}function ke(e,i){"clamped-linear"===e.transformationType&&"below"===i&&e.flipSizes()}async function Oe(e,i,a,r,n,s){const l=Ie(e,i,a,r);return l||Ve(n,s)}function Ie(e,i,a,r){return"spike"===r?[a?.minHeight??pe[0],a?.maxHeight??pe[1]]:"reference-size"===r&&i?[1,i.size]:e?[e.minSize,e.maxSize]:null}function Be(e,i){if("reference-size"===i.theme&&null!=e.min&&null!=e.max&&null!=e.avg&&null!=e.stddev){const i=100,a=0,r=0,n=1,s=e.avg,l=e.min,t=e.max,o=e.stddev,u=0!==s?o/s:0,m=l>r&&l<n&&t<2*n&&u<.5,p=l>a&&l<i&&t<2*i&&u<.5;return{minDataValue:m?r:p?a:l,maxDataValue:m?n:p?i:s+2*o,defaultValuesUsed:!1}}const{theme:a,field:r}=i,n=i.layer,s=r&&!("function"==typeof r)?n.getField(r):null,l=ae(s);return Q(e,a,l,"above"===a||"below"===a)}function Fe(e,a){if(("spike"===a||"reference-size"===a)&&null!=e.minDataValue&&null!=e.maxDataValue&&null!=e.minSize&&null!=e.maxSize&&"number"==typeof e.minSize&&"number"==typeof e.maxSize)return[new d({value:e.minDataValue,size:e.minSize}),new d({value:e.maxDataValue,size:e.maxSize})];throw new i("get-size-stops-for-theme","Invalid size variable or theme")}async function Re(e,a,n,s){const{theme:u,field:p,normalizationField:d,minValue:f,maxValue:y,axis:z}=e,v=e.layer.geometryType,w=await Te({basemap:e.basemap,geometryType:v,sizeScheme:e.sizeScheme,worldScale:e.worldScale,view:e.view}),h=w.scheme;if(!h)throw new i("size-visual-variable:insufficient-info","Unable to find size scheme");const b=await Oe(n,s,e.spikeOptions,u,h,v),{minDataValue:g,maxDataValue:S,defaultValuesUsed:x}=Be(a,e),E=[],T="height"===z,V=T?z:void 0,k=b[0];let O=b[1];if(T&&"number"==typeof k&&"number"==typeof O){const e=K({minSize:k,maxSize:O},V);E.push(new m({axis:"width-and-depth",minSize:e.minSize})),O=e.maxSize}const I=new m({field:p??void 0,valueExpression:e.valueExpression,valueExpressionTitle:e.valueExpressionTitle,valueUnit:"unknown",normalizationField:d,axis:V,minSize:k,maxSize:O,minDataValue:g,maxDataValue:S,legendOptions:r(c,e.legendOptions)});ke(I,u),E.unshift(I);const B=new o("reference-size"===u?{type:"size",field:e.field,normalizationField:e.normalizationField,dataSeriesName:e.dataSeriesName,sizeStops:Fe(I,u).map(({label:e,size:i,value:a})=>new t({label:e,size:i,value:a})),theme:u,referenceSizeScale:s?.isGrid||e.sizeOptimizationEnabled?e?.view?.scale:void 0,referenceSizeSymbolStyle:e.referenceSizeOptions?.symbolStyle,minSliderValue:null!=f?f:a.min,maxSliderValue:null!=y?y:a.max}:"spike"===u?{type:"size",field:e.field,normalizationField:e.normalizationField,dataSeriesName:e.dataSeriesName,spikeSymbolStyle:e.spikeOptions?.symbolStyle,sizeStops:Fe(I,u).map(({label:e,size:i,value:a})=>new t({label:e,size:i,value:a})),theme:u,minSliderValue:null!=f?f:a.min,maxSliderValue:null!=y?y:a.max}:{type:"size",theme:u,dataSeriesName:e.dataSeriesName,minSliderValue:null!=f?f:a.min,maxSliderValue:null!=y?y:a.max}),F=new l({visualVariables:[B]});return{basemapId:w.basemapId,basemapTheme:w.basemapTheme,visualVariables:E,statistics:a,isGrid:s?.isGrid,defaultValuesUsed:x,sizeScheme:te(h),authoringInfo:F}}async function je(e,i,a,r,l){const t=await n("esri/smartMapping/t9n/smartMapping"),o=l.layer,u=l.field,m=o.geometryType,p=l.defaultSymbolEnabled,d=te(e.sizeScheme),c="polygon"===m,f=c?d.marker:d,y=c?d.background:null,z=c?"point":m,v=i?.opacity,w=e.isGrid,b=l.theme,S="reference-size"===b,x="spike"===b,E=S||x?[]:e.visualVariables.map(e=>e.clone());i?.visualVariables?.length&&E.push(...i.visualVariables.map(e=>e.clone()));const T=S?g({type:l.referenceSizeOptions?.symbolStyle||"circle",color:f.color,primitiveOverrides:h({view:l.view,field:u,normalizationField:r,sizeStops:Fe(e.visualVariables[0],b),sizeByScaleEnabled:w||!!l.sizeOptimizationEnabled})}):x?D({color:f.color,strokeColor:f.outline.color,baseWidth:l.spikeOptions?.baseWidth,strokeWidth:l.spikeOptions?.strokeWidth,defaultHeight:l.spikeOptions?.defaultHeight,primitiveOverrides:j({field:u,normalizationField:r,sizeStops:Fe(e.visualVariables[0],b)}),symbolStyle:l.spikeOptions?.symbolStyle}):A(z,{type:l.symbolType,color:f.color,size:L(f,z),outline:H(f,z,v)});return{renderer:new s({backgroundFillSymbol:!w&&y?A(m,{type:l.symbolType,color:y.color,outline:H(y,m,v)}):null,classBreakInfos:[{minValue:-me,maxValue:me,symbol:T}],defaultLabel:p?t.other:null,defaultSymbol:!p||S||x?null:A(z,{type:l.symbolType,color:f.noDataColor,size:L(f,z,!0),outline:H(f,z,v)}),field:u,normalizationField:r,normalizationType:a,valueExpression:l.valueExpression,valueExpressionTitle:l.valueExpressionTitle,visualVariables:E,authoringInfo:e.authoringInfo?.clone()}),visualVariables:e.visualVariables.map(e=>e.clone()),statistics:e.statistics,defaultValuesUsed:e.defaultValuesUsed,isGrid:w,sizeScheme:te(e.sizeScheme),basemapId:e.basemapId,basemapTheme:e.basemapTheme}}function qe(e,i){const r=a(e.minSize),n=(a(e.maxSize)-r)/(i>=4?i-1:i),s=[];for(let a=0;a<i;a++)s.push(r+n*a);return s}async function De(e,i){const a=await n("esri/smartMapping/t9n/smartMapping"),r=e.layer,t=e.defaultSymbolEnabled,o=r.geometryType,m="polygon"===o,p=e.symbolType?.includes("3d-volumetric"),d=await Te({basemap:e.basemap,geometryType:o,sizeScheme:e.sizeScheme,worldScale:p,view:e.view}),c=d.scheme,{result:f,outlineResult:y}=i,z=f?.classBreakInfos??[],v=e.classificationMethod,w=e.normalizationType,h=m?c.marker:c,b=m?c.background:null,g=m?"point":o,S=Ve(h,g),x=p?K({minSize:S[0],maxSize:S[1]},"height"):null,E=qe({minSize:S[0],maxSize:x?x.maxSize:S[1]},z.length),T=y?.opacity,V=new s({backgroundFillSymbol:b&&A(o,{type:e.symbolType,color:b.color,outline:H(b,o,T)}),classBreakInfos:z.map((i,a)=>({minValue:i.minValue,maxValue:i.maxValue,symbol:A(g,{type:e.symbolType,color:h.color,size:E[a],widthAndDepth:x?.minSize,outline:H(h,g,T)}),label:i.label})),defaultLabel:t?a.other:null,defaultSymbol:t?A(g,{type:e.symbolType,color:h.noDataColor,size:L(h,g,!0),widthAndDepth:x?.minSize,outline:H(h,g,T)}):null,field:e.field,valueExpression:e.valueExpression,valueExpressionTitle:e.valueExpressionTitle,normalizationType:w,normalizationField:e.normalizationField,normalizationTotal:"percent-of-total"===w?f?.normalizationTotal:void 0,legendOptions:e.legendOptions,authoringInfo:new l({type:"class-breaks-size",classificationMethod:v,standardDeviationInterval:e.standardDeviationInterval,dataSeriesName:e.dataSeriesName})});return"standard-deviation"!==v&&u({classBreakInfos:V.classBreakInfos,classificationMethod:v,normalizationType:w,round:!0}),y?.visualVariables?.length&&(V.visualVariables=y.visualVariables.map(e=>e.clone())),{renderer:V,sizeScheme:te(c),classBreaksResult:f,defaultValuesUsed:!!i.defaultValuesUsed,basemapId:d.basemapId,basemapTheme:d.basemapTheme}}async function Ge(e){const i=await de(e),{view:a,field:r,valueExpression:n,minValue:s,maxValue:l,layer:t,normalizationField:o,signal:u,statistics:m,filter:p,dataSeriesName:d}=i,c=o?"field":void 0,[f,y]=await Promise.all([m??(d?N({layer:t,view:a,signal:u,dataSeriesName:d,filter:p}):$({layer:t,field:r,valueExpression:n,sqlExpression:i.sqlExpression,sqlWhere:i.sqlWhere,normalizationType:c,normalizationField:o,filter:p,minValue:s,maxValue:l,view:a,signal:u})),i.sizeOptimizationEnabled?v({view:a,layer:t,signal:u,filter:p}).catch(P):null]);return Re(i,f,y,i.referenceSizeResult)}async function Ne(e){const{view:i,filter:a,renderer:r,signal:n,creatorParameters:s}=await ge(e),{field:l,normalizationField:o,valueExpression:u,valueExpressionTitle:p,theme:d,layer:c,sizeOptimizationEnabled:f,spikeOptions:y,referenceSizeResult:z,dataSeriesName:w}=s,h=o?"field":void 0,b=r.authoringInfo?.clone(),[g,S]=await Promise.all([(w?N({layer:c,view:i,signal:n,dataSeriesName:w,filter:a}):Promise.resolve(null)).then(e=>e??$({layer:c,field:l,valueExpression:u,normalizationField:o,normalizationType:h,filter:a,view:i,signal:n})),f&&!z?v({view:i,layer:c,signal:n,filter:a}).catch(P):null]),x=Ie(S,z,y,d),{minDataValue:E,maxDataValue:V}=Be(g,{theme:d,layer:c,field:l}),k=r.visualVariables?.find(T),O=(k?.stops?null:k)??new m({field:l??void 0,valueExpression:u,valueExpressionTitle:p,valueUnit:"unknown",normalizationField:o});x&&(O.minSize=x[0],O.maxSize=x[1]),O.minDataValue=E,O.maxDataValue=V,w&&(O.valueExpression=u??null,O.valueExpressionTitle=p??null),ke(O,d);const I=b.visualVariables.find(e=>"size"===e.type);I.dataSeriesName=w??I.dataSeriesName,I.minSliderValue=g.min,I.maxSliderValue=g.max;const B="reference-size"===d;return(B||"spike"===d)&&(I.sizeStops=Fe(O,d).map(({label:e,size:i,value:a})=>new t({label:e,size:i,value:a})),B&&(I.referenceSizeScale=z?.isGrid||f?i?.scale:void 0)),{visualVariables:"reference-size"===d||"spike"===d?[]:[O],isGrid:!!z?.isGrid,authoringInfo:b,statistics:g}}async function Ue(e){const i=await ce(e),a={layer:i.layer,view:i.view,filter:i.filter,signal:i.signal},[r,n]=await Promise.all([Ge(he(i)),i.outlineOptimizationEnabled?y(a).catch(P):null]),s=i.normalizationField;return je(r,n,s?"field":void 0,s,i)}async function Pe(e){const{renderer:i,view:a,signal:r,filter:n,creatorParameters:s,forBinning:l}=await Se(e),{layer:t,sizeOptimizationEnabled:o,outlineOptimizationEnabled:u,theme:m,referenceSizeResult:p,valueExpression:d,valueExpressionTitle:c}=s,[f,z]=await Promise.all([Ne({...e,referenceSizeResult:p}),u?y({layer:t,view:a,filter:n,signal:r}).catch(P):null]),v="reference-size"===m,w="spike"===m;S(i,f.visualVariables,F),S(i,z?.visualVariables,R),i.valueExpression=d??null,i.valueExpressionTitle=c??null,x(i,f.authoringInfo,"size");const h=f.statistics;if(!v&&!w)return{renderer:i,statistics:h};if(w){return{renderer:await Ce({layer:t,renderer:i,forBinning:l,sizeStops:E(i,"size","spike")?.sizeStops}),statistics:h}}const b=f.isGrid;return{renderer:await Me({layer:t,renderer:i,view:a,forBinning:l,sizeOptimizationEnabled:o,sizeStops:E(i,"size","reference-size")?.sizeStops,isGrid:b}),isGrid:b,statistics:h}}async function Me(a){const{layer:r,referenceSizeOptions:n,renderer:s,sizeScheme:o,sizeStops:u,typeScheme:m,view:p,isGrid:d}=await ye(a),c=s.clone();c.authoringInfo??=new l;const f=c.authoringInfo.visualVariables.find(e=>"reference-size"===e.theme),y=a.field??f?.field,z=a.normalizationField??f?.normalizationField;if(!y)throw new i("update-renderer-with-reference-size:invalid-parameters","'field' parameter or authoring info with 'field' is required.");const v=h({view:p,field:y,normalizationField:z,sizeStops:u,sizeByScaleEnabled:d||!!a.sizeOptimizationEnabled}),w=n?.symbolStyle||f?.referenceSizeSymbolStyle||"circle";if("class-breaks"===c.type){const e="polygon"===("geometryType"in r?r.geometryType:null)&&o&&"marker"in o?o.marker:null;c.classBreakInfos.forEach(i=>{const a=e?.color??ue(i.symbol,1);"cim"===i.symbol.type?b(i.symbol,{type:w,color:a,primitiveOverrides:v}):a&&(i.symbol=g({type:w,color:a,primitiveOverrides:v}))})}else if("unique-value"===c.type){const i=c.uniqueValueGroups,a="polygon"===("geometryType"in r?r.geometryType:null)&&m&&"colors"in m?m.colors:null,n=a?e(a,c.uniqueValueInfos?.length??0):null;let s=0;if(i){for(const e of i)for(const i of e.classes??[]){const e=n?n[s]:ue(i.symbol,1);"cim"===i.symbol?.type?b(i.symbol,{type:w,color:e,primitiveOverrides:v}):e&&(i.symbol=g({type:w,color:e,primitiveOverrides:v})),s++}c.uniqueValueGroups=i}}return f&&(f.field=y,f.normalizationField=z,f.sizeStops=u.map(({label:e,size:i,value:a})=>new t({label:e,size:i,value:a})),f.referenceSizeScale=d||a.sizeOptimizationEnabled?p.scale:void 0,f.referenceSizeSymbolStyle=w),c}async function Ce(a){const{layer:r,renderer:n,sizeScheme:s,sizeStops:o,typeScheme:u,spikeOptions:m}=await ze(a),p=n.clone();p.authoringInfo??=new l;const d=p.authoringInfo.visualVariables.find(e=>"spike"===e.theme),c=a.field??d?.field,f=a.normalizationField??d?.normalizationField;if(!c)throw new i("update-renderer-with-spike:invalid-parameters","'field' parameter or authoring info with 'field' is required.");const y=j({field:c,normalizationField:f,sizeStops:o}),z="geometryType"in r?r.geometryType:null,v={primitiveOverrides:y,...m},h=m?.symbolStyle,b=h&&h.includes("outline")&&(h.includes("solid-fill")||h.includes("gradient-fill"));if("class-breaks"===p.type){if(s||b){const e=z?await Te({geometryType:z,sizeScheme:s,view:a.view}):null,i=e?.scheme,r="polygon"===z&&i&&"marker"in i?i.marker:i;if(s){const e=r&&"color"in r?r?.color:void 0;v.color=e}if(b){const e=r&&"outline"in r?r.outline.color:void 0;v.strokeColor=e}}p.classBreakInfos.forEach(e=>{if("cim"===e.symbol.type)q(e.symbol,v);else{const i=v.color??ue(e.symbol,1)??void 0;i&&(e.symbol=D({...v,color:i}))}})}else if("unique-value"===p.type){const i=p.uniqueValueGroups,r=p.uniqueValueInfos?.length??0;let n=null;if(u||b){const i=z&&r?await w({numColors:r,geometryType:z,typeScheme:u,view:a.view}):null,s=i?.scheme;if(u){const i=s&&"colors"in s?s.colors:null;n=i?e(i,r):null}if(b){const e=s&&"outline"in s?s.outline.color:void 0;v.strokeColor=e}}let s=0;if(i){for(const e of i)for(const i of e.classes??[]){if("cim"===i.symbol?.type)q(i.symbol,{...v,color:n?.[s]});else{const e=n?.[s]??ue(i.symbol,1)??void 0;e&&(i.symbol=D({...v,color:e}))}s++}p.uniqueValueGroups=i}}return d&&(d.field=c,d.normalizationField=f,d.sizeStops=o.map(({label:e,size:i,value:a})=>new t({label:e,size:i,value:a})),h&&(d.spikeSymbolStyle=h)),p}async function We(e){const i=await ve(e);return De(i,await W(we(i),i.outlineOptimizationEnabled))}async function $e(e){const{renderer:a,creatorParameters:r}=await xe(e),{outlineOptimizationEnabled:n,normalizationType:s,classificationMethod:l,valueExpression:t,valueExpressionTitle:o}=r,{result:m,outlineResult:p}=await W(we(r),n),d=m.classBreakInfos;if(r.numClasses!==d.length)throw new i("regenerate-class-breaks-renderer:invalid-parameters","The number of class breaks generated does not match the number of class breaks in the renderer.");return a.classBreakInfos.forEach((e,i)=>{e.minValue=d[i].minValue,e.maxValue=d[i].maxValue,e.label=d[i].label}),a.normalizationTotal="percent-of-total"===s?m.normalizationTotal:void 0,"standard-deviation"!==l&&u({classBreakInfos:a.classBreakInfos,classificationMethod:l,normalizationType:s,round:!0}),S(a,p?.visualVariables,R),a.valueExpression=t??null,a.valueExpressionTitle=o??null,{renderer:a}}async function Ae(e){const i=await be(e),{defaultSymbolEnabled:a,view:r,startTime:n,endTime:s,symbolType:l,minValue:t,maxValue:o,signal:u,filter:m,layer:p}=i,[d,c]=await Promise.all([i.unit?{unit:i.unit,statistics:null,valueExpression:null}:await f({view:r,layer:p,startTime:n,endTime:s,minValue:t,maxValue:o,signal:u,filter:m}),i.outlineOptimizationEnabled?y({layer:p,view:r,filter:m,signal:u}).catch(P):null]),{unit:z,statistics:v}=d,{valueExpression:w,title:h}=await M(i,z),b=await Ge(he({layer:p,basemap:i.basemap,valueExpression:w,symbolType:l,statistics:v,legendOptions:{title:h},theme:i.theme,sizeScheme:i.sizeScheme,sizeOptimizationEnabled:i.sizeOptimizationEnabled,view:i.view,minValue:t,maxValue:o,filter:m,signal:u})),g={layer:p,valueExpression:w,defaultSymbolEnabled:a,symbolType:l},S=await je(b,c,null,null,g),x=S.renderer.authoringInfo?.visualVariables;return x?.forEach(e=>C(e,n,s,z)),{...S,unit:z}}async function He(e){const{renderer:i,creatorParameters:a}=await Ee(e),{layer:r,outlineOptimizationEnabled:n,sizeOptimizationEnabled:s,startTime:l,endTime:t,theme:o,view:u,signal:m,filter:p}=a,[d,c]=await Promise.all([f({view:u,layer:r,startTime:l,endTime:t,signal:m,filter:p}),n?y({layer:r,view:u,filter:p,signal:m}).catch(P):null]),{unit:z,statistics:v}=d,{valueExpression:w,title:h}=await M(a,z),b=await Ge(he({layer:r,valueExpression:w,statistics:v,legendOptions:{title:h},sizeOptimizationEnabled:s,theme:o,view:u,filter:p,signal:m}));S(i,b.visualVariables,F),S(i,c?.visualVariables,R),i.authoringInfo=b.authoringInfo.clone();const g=i.authoringInfo?.visualVariables;return g?.forEach(e=>C(e,l,t,z)),{renderer:i}}export{Ae as createAgeRenderer,We as createClassBreaksRenderer,Ue as createContinuousRenderer,Ge as createVisualVariables,Fe as getSizeStopsForTheme,He as regenerateAgeRenderer,$e as regenerateClassBreaksRenderer,Pe as regenerateContinuousRenderer,Ne as regenerateVisualVariables,Me as updateRendererWithReferenceSize,Ce as updateRendererWithSpike};
|
|
2
|
+
import{createUniqueColors as e}from"../../core/colorUtils.js";import i from"../../core/Error.js";import{toPt as a}from"../../core/screenUtils.js";import{ensureClass as r}from"../../core/accessorSupport/ensureType.js";import{fetchMessageBundle as n}from"../../intl/messages.js";import s from"../../renderers/ClassBreaksRenderer.js";import l from"../../renderers/support/AuthoringInfo.js";import t from"../../renderers/support/AuthoringInfoSizeStop.js";import o from"../../renderers/support/AuthoringInfoVisualVariable.js";import{setLabelsForClassBreaks as u}from"../../renderers/support/utils.js";import m from"../../renderers/visualVariables/SizeVariable.js";import{castSizeFromStringOrNumber as d}from"../../renderers/visualVariables/support/castSizeVariable.js";import p from"../../renderers/visualVariables/support/SizeStop.js";import c from"../../renderers/visualVariables/support/SizeVariableLegendOptions.js";import f from"../heuristics/ageUnit.js";import y from"../heuristics/outline.js";import z from"../heuristics/referenceSize.js";import v from"../heuristics/sizeRange.js";import{getTypeSchemeData as w}from"./type.js";import{createPrimitiveOverrides as h,updateReferenceSizeSymbol as b,createReferenceSizeSymbol as g}from"./support/referenceSizeUtils.js";import{spliceVisualVariables as S,updateAuthoringInfoVisualVariable as x,getAuthoringInfoVisualVariable as E,isSizeVV as T,processRegenerateParams as V,getRendererToUpdate as k,getStyleType as O,hasOutlineVV as I,hasScaleDependentSizeVV as B,findSizeVVIndex as F,findOutlineVVIndex as R}from"./support/regenerateUtils.js";import{createPrimitiveOverrides as N,updateSpikeSymbol as j,createSpikeSymbol as q,defaultSpikeSymbolStyle as C}from"./support/spikeUtils.js";import{getTimeSeriesSummaryStatistics as D,resolveDataSeriesInfo as G}from"./support/timeSeriesUtils.js";import{errorCallback as U,getTitleAndExpressionForAgeRenderer as P,updateAgeRendererAuthoringInfoVV as M,getClassBreaks as W,getSummaryStatistics as $,createSymbol as A,getSymbolOutlineFromScheme as H,getSymbolSizeFromScheme as L,verifyBasicFieldValidity as J,getSizeRangeForAxis as K,getDataRange as Q,getBasemapInfo as X}from"./support/utils.js";import{verifyDates as Y,supportedAgeUnits as Z}from"../statistics/support/ageUtils.js";import{verifyBinningParams as _}from"../support/binningUtils.js";import{getNormalizationType as ee,getFieldsList as ie,isAnyDateField as ae}from"../support/utils.js";import{createLayerAdapter as re,featureCapableLayerTypes as ne,getLayerTypeLabels as se,binningCapableLayerTypes as le}from"../support/adapters/support/layerUtils.js";import{cloneScheme as te,getSchemes as oe}from"../symbology/size.js";import{getColorFromSymbol as ue}from"../../symbols/support/utils.js";const me=2**53-1,de=[5,112.5];async function pe(e,a){const r=G({...e});if(!(r&&r.layer&&(r.field||r.valueExpression||r.sqlExpression)))throw new i("size-visual-variable:missing-parameters","'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required");if(r.valueExpression&&!r.sqlExpression&&!r.view)throw new i("size-visual-variable:missing-parameters","View is required when 'valueExpression' is specified");if("reference-size"===r.theme&&!r.view&&!r.field)throw new i("size-visual-variable:missing-parameters","'view' and 'field' are required when 'theme' is 'reference-size'");if("reference-size"===r.theme&&r.valueExpression)throw new i("size-visual-variable:missing-parameters","'valueExpression' is not supported when 'theme' is 'reference-size'");r.forBinning&&_(r,"size-visual-variable");const n={...r},s=r.forBinning?le:ne,l=re(n.layer,s,r.forBinning);if(!l)throw new i("size-visual-variable:invalid-parameters","'layer' must be one of these types: "+se(s).join(", "));"height"===n.axis&&(n.sizeOptimizationEnabled=!1);const t=null!=n.signal?{signal:n.signal}:null;await l.load(t);const o=l.geometryType;if("mesh"===o)throw new i("size-visual-variable:invalid-parameters","Size visualization is not applicable to layers with 'mesh' geometry type");if(n.worldScale){if("polyline"===o||"polygon"===o)throw new i("size-visual-variable:not-supported","'worldScale' sizing is not supported for polyline and polygon layers");if("3d"!==n.view?.type)throw new i("size-visual-variable:invalid-parameters","'view' parameter should be an instance of SceneView when 'worldScale' parameter is true")}if("reference-size"===n.theme&&!r.forBinning&&"polygon"!==o)throw new i("size-visual-variable:invalid-parameters","Reference size is only supported for polygon layers");if("spike"===n.theme&&!r.forBinning&&"polygon"!==o&&"point"!==o)throw new i("size-visual-variable:invalid-parameters","Spike is only supported for point and polygon layers");const u=await ie({field:n.field,normalizationField:n.normalizationField,valueExpression:n.valueExpression}),m=J(l,u,"size-visual-variable:invalid-parameters");if(m)throw m;"spike"!==n.theme||n.spikeOptions?.symbolStyle||(n.spikeOptions??={},n.spikeOptions.symbolStyle=C);const d={...n,layer:l,referenceSizeResult:a};return await fe(d),d}async function ce(e){const a=G({...e});if(!(a&&a.layer&&(a.field||a.valueExpression||a.sqlExpression)))throw new i("size-continuous-renderer:missing-parameters","'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required");if(a.valueExpression&&!a.sqlExpression&&!a.view)throw new i("size-continuous-renderer:missing-parameters","View is required when 'valueExpression' is specified");a.forBinning&&_(a,"size-continuous-renderer");const r={...a};r.symbolType=r.symbolType||"2d",r.defaultSymbolEnabled??=!0;const n=a.forBinning?le:ne,s=re(r.layer,n,a.forBinning);if(!s)throw new i("size-continuous-renderer:invalid-parameters","'layer' must be one of these types: "+se(n).join(", "));const l=null!=r.signal?{signal:r.signal}:null;await s.load(l);const t=s.geometryType,o=r.symbolType.includes("3d");if(r.outlineOptimizationEnabled="reference-size"!==r.theme&&"spike"!==r.theme&&"polygon"===t&&r.outlineOptimizationEnabled,"mesh"===t)throw new i("size-continuous-renderer:invalid-parameters","Size visualization is not applicable to layers with 'mesh' geometry type");if(o&&("polyline"===t||"polygon"===t))throw new i("size-continuous-renderer:not-supported","3d symbols are not supported for polyline and polygon layers");if(r.symbolType.includes("3d-volumetric")&&"3d"!==r.view?.type)throw new i("size-continuous-renderer:invalid-parameters","'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or 3d-volumetric-uniform");if("reference-size"===r.theme&&!a.forBinning&&"polygon"!==t)throw new i("size-continuous-renderer:invalid-parameters","Reference size is only supported for polygon layers");if("spike"===r.theme&&!a.forBinning&&"polygon"!==t&&"point"!==t)throw new i("size-continuous-renderer:invalid-parameters","Spike is only supported for point and polygon layers");const u=await ie({field:r.field,normalizationField:r.normalizationField,valueExpression:r.valueExpression}),m=J(s,u,"size-continuous-renderer:invalid-parameters");if(m)throw m;"spike"!==r.theme||r.spikeOptions?.symbolStyle||(r.spikeOptions??={},r.spikeOptions.symbolStyle=C);const d={...r,layer:s};return await fe(d),d}async function fe(e){const i=e.layer,a=i.geometryType,r=i.layer,n=e.forBinning&&"featureReduction"in r&&"binning"===r.featureReduction?.type;if(("polygon"===a||n)&&e.view&&e.field&&!e.valueExpression&&(!e.theme||"reference-size"===e.theme)){try{e.referenceSizeResult=e.referenceSizeResult??await z({layer:r,view:e.view,filter:e.filter,forBinning:e.forBinning,signal:e.signal})}catch{}!e.theme&&e.referenceSizeResult?.isGrid&&(e.theme="reference-size"),e.referenceSizeOptions?.symbolStyle||(e.referenceSizeOptions?e.referenceSizeOptions.symbolStyle="circle":e.referenceSizeOptions={symbolStyle:"circle"})}}async function ye(e){if(!e||!(e.layer&&e.view&&e.sizeStops))throw new i("update-renderer-with-reference-size:missing-parameters","'layer', 'view and 'sizeStops' parameters are required");const{view:a,forBinning:r}=e,n=e.forBinning?le:ne,s=re(e.layer,n,e.forBinning);if(!s)throw new i("update-renderer-with-reference-size:invalid-parameters","'layer' must be one of these types: "+se(n).join(", "));const l=s.layer;let t=e.renderer;if(!t)if(e.forBinning){if(!("featureReduction"in l&&l.featureReduction&&"renderer"in l.featureReduction&&l.featureReduction.renderer)||"class-breaks"!==l.featureReduction.renderer.type&&"unique-value"!==l.featureReduction.renderer.type)throw new i("update-renderer-with-reference-size:invalid-parameters","Feature reduction renderer is not supported");t=l.featureReduction.renderer}else{if(!("renderer"in l)||!l.renderer||"class-breaks"!==l.renderer.type&&"unique-value"!==l.renderer.type)throw new i("update-renderer-with-reference-size:invalid-parameters","Renderer is not supported");t=l.renderer}const o=t.authoringInfo;if(!o||!o?.visualVariables?.some(e=>"reference-size"===e.theme))throw new i("update-renderer-with-reference-size:invalid-parameters","'renderer.authoringInfo.visualVariables' should have an authoringInfoVisualVariable with 'theme' set to 'reference-size'");const u=e.isGrid??(await z({view:a,layer:l,forBinning:r}))?.isGrid;return{...e,isGrid:u,renderer:t,layer:s}}async function ze(e){if(!e||!e.layer||!e.sizeStops)throw new i("update-renderer-with-spike:missing-parameters","'layer' and 'sizeStops' parameters are required");const a=e.forBinning?le:ne,r=re(e.layer,a,e.forBinning);if(!r)throw new i("update-renderer-with-spike:invalid-parameters","'layer' must be one of these types: "+se(a).join(", "));await r.load();const n=r.layer;let s=e.renderer;if(!s)if(e.forBinning){if(!("featureReduction"in n&&n.featureReduction&&"renderer"in n.featureReduction&&n.featureReduction.renderer)||"class-breaks"!==n.featureReduction.renderer.type&&"unique-value"!==n.featureReduction.renderer.type)throw new i("update-renderer-with-spike:invalid-parameters","Feature reduction renderer is not supported");s=n.featureReduction.renderer}else{if(!("renderer"in n)||!n.renderer||"class-breaks"!==n.renderer.type&&"unique-value"!==n.renderer.type)throw new i("update-renderer-with-spike:invalid-parameters","Renderer is not supported");s=n.renderer}const l=s.authoringInfo,t=l?.visualVariables.find(e=>"spike"===e.theme);if(!t)throw new i("update-renderer-with-spike:invalid-parameters","'renderer.authoringInfo.visualVariables' should have an authoringInfoVisualVariable with 'theme' set to 'spike'");const o=e.spikeOptions??{};return o.symbolStyle??=t?.spikeSymbolStyle?void 0:C,{...e,renderer:s,layer:r,spikeOptions:o}}async function ve(e){const a=G({...e});if(!a||!a.layer||!a.field&&!a.valueExpression)throw new i("size-class-breaks-renderer:missing-parameters","'layer' and 'field' or 'valueExpression' parameters are required");if(a.valueExpression&&!a.view)throw new i("size-class-breaks-renderer:missing-parameters","View is required when 'valueExpression' is specified");a.forBinning&&_(a,"size-class-breaks-renderer");const r={...a};r.symbolType=r.symbolType||"2d",r.defaultSymbolEnabled??=!0,r.classificationMethod??="equal-interval",r.normalizationType=ee(r);const n=a.forBinning?le:ne,s=re(r.layer,n,a.forBinning);if(!s)throw new i("size-class-breaks-renderer:invalid-parameters","'layer' must be one of these types: "+se(n).join(", "));if(!(null!=r.minValue&&null!=r.maxValue)&&(null!=r.minValue||null!=r.maxValue))throw new i("size-class-breaks-renderer:missing-parameters","Both 'minValue' and 'maxValue' are required when specifying custom data range");const l=null!=r.signal?{signal:r.signal}:null;await s.load(l);const t=s.geometryType,o=r.symbolType.includes("3d");if(r.outlineOptimizationEnabled="polygon"===t&&r.outlineOptimizationEnabled,"mesh"===t)throw new i("size-class-breaks-renderer:invalid-parameters","Size visualization is not applicable to layers with 'mesh' geometry type");if(o&&("polyline"===t||"polygon"===t))throw new i("size-class-breaks-renderer:not-supported","3d symbols are not supported for polyline and polygon layers");if(r.symbolType.includes("3d-volumetric")&&"3d"!==r.view?.type)throw new i("size-class-breaks-renderer:invalid-parameters","'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or 3d-volumetric-uniform");const u=await ie({field:r.field,normalizationField:r.normalizationField}),m=J(s,u,"size-class-breaks-renderer:invalid-parameters");if(m)throw m;return{...r,layer:s}}function we(e){const i={...e};delete i.basemap,delete i.sizeScheme,delete i.legendOptions,delete i.symbolType,delete i.defaultSymbolEnabled;const a=i;return a.analyzeData=!(null!=i.minValue&&null!=i.maxValue),a}function he(e){const i={...e},a=!!i.symbolType?.includes("3d-volumetric"),r=i;return r.worldScale=a,a&&(r.axis="3d-volumetric-uniform"===i.symbolType?"all":"height"),delete i.symbolType,delete i.defaultSymbolEnabled,r}async function be(e){if(!(e&&e.layer&&e.view&&e.startTime&&e.endTime))throw new i("size-age-renderer:missing-parameters","'layer', 'view', 'startTime', 'endTime' parameters are required");const a={...e};a.symbolType??="2d",a.defaultSymbolEnabled??=!0;const r=re(a.layer,ne);if(!r)throw new i("size-age-renderer:invalid-parameters","'layer' must be one of these types: "+se(ne).join(", "));const n=null!=a.signal?{signal:a.signal}:null;await r.load(n);const s=r.geometryType,l=a.symbolType.includes("3d");if(a.outlineOptimizationEnabled="polygon"===s&&a.outlineOptimizationEnabled,"mesh"===s)throw new i("size-age-renderer:invalid-parameters","Size visualization is not applicable to layers with 'mesh' geometry type");if(l&&("polyline"===s||"polygon"===s))throw new i("size-age-renderer:not-supported","3d symbols are not supported for polyline and polygon layers");if(a.symbolType.includes("3d-volumetric")&&(!a.view||"3d"!==a.view.type))throw new i("size-age-renderer:invalid-parameters","'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or 3d-volumetric-uniform");const t=Y(r,a.startTime,a.endTime,"size-age-renderer:invalid-parameters");if(t)throw t;if(a.unit&&!Z.includes(a.unit))throw new i("size-age-renderer:invalid-unit",`Supported units are: ${Z.join(", ")}`);return{...a,layer:r}}async function ge(e){const a="regenerate-size-visual-variables";V(e,a);const r=await k(e),n=O(r);if(!n||!["size-continuous","univariate-color-size","color-size","relationship-size","type-size"].includes(n))throw new i(`${a}:invalid-parameters`,"Renderer is invalid");const s=E(r,"size");if(!s)throw new i(`${a}:invalid-parameters`,"Renderer does not have a size visual variable authoringInfo");const l=s.theme,t="reference-size"===l,o="spike"===l,u=r.visualVariables?.find(T);if(!u&&!t&&!o)throw new i(`${a}:invalid-parameters`,"Renderer does not have a size visual variable");let m=s.field,d=s.normalizationField,p=null,c=null;m||(u?.field?(m=u.field,d=u.normalizationField):r.field?(m=r.field,d=r.normalizationField):(p=u?.valueExpression??r.valueExpression,c=u?.valueExpressionTitle??r.valueExpressionTitle));const{layer:f,forBinning:y,filter:z,view:v,signal:w}=e,h=s.dataSeriesName,b=s.dataSeriesCalculationName,g=B(r),S=await pe({layer:f,field:m,valueExpression:p,valueExpressionTitle:c,normalizationField:d,theme:l,sizeOptimizationEnabled:g,forBinning:y,dataSeriesName:h,dataSeriesCalculationName:b,filter:z,view:v,signal:w},e.referenceSizeResult);return"reference-size"!==l||null==s.referenceSizeScale||!S.referenceSizeResult||S.referenceSizeResult.isGrid||S.sizeOptimizationEnabled||(S.sizeOptimizationEnabled=!0),{...e,creatorParameters:S,renderer:r}}async function Se(e){const a="regenerate-size-continuous-renderer";V(e,a);const r=await k(e),n=O(r);if(!n||!["size-continuous","univariate-color-size"].includes(n))throw new i(`${a}:invalid-parameters`,"Renderer is invalid");const{authoringInfo:s,field:l,normalizationField:t,valueExpression:o,valueExpressionTitle:u}=r,m=s?.visualVariables.find(e=>"size"===e.type),d=m.theme,{layer:p,forBinning:c,filter:f,view:y,signal:z}=e,v=m.dataSeriesName,w=m.dataSeriesCalculationName,h=I(r),b=B(r),g=await ce({layer:p,field:l,valueExpression:o,valueExpressionTitle:u,normalizationField:t,theme:d,outlineOptimizationEnabled:h,sizeOptimizationEnabled:b,forBinning:c,dataSeriesName:v,dataSeriesCalculationName:w,filter:f,view:y,signal:z});return"reference-size"!==d||null==m.referenceSizeScale||!g.referenceSizeResult||g.referenceSizeResult.isGrid||g.sizeOptimizationEnabled||(g.sizeOptimizationEnabled=!0),{...e,creatorParameters:g,renderer:r}}async function xe(e){const a="regenerate-size-class-breaks-renderer";await V(e,a);const r=await k(e);if("size-class-breaks"!==O(r))throw new i(`${a}:invalid-parameters`,"Renderer is invalid");const{authoringInfo:n,field:s,normalizationField:l,normalizationType:t,normalizationTotal:o,valueExpression:u,valueExpressionTitle:m}=r,{classificationMethod:d,standardDeviationInterval:p}=n,c=r.classBreakInfos.length,{layer:f,forBinning:y,filter:z,view:v,signal:w}=e,h=n?.dataSeriesName,b=n?.dataSeriesCalculationName,g=I(r),S=await ve({layer:f,field:s,valueExpression:u,valueExpressionTitle:m,normalizationType:t,normalizationField:l,normalizationTotal:o,classificationMethod:d,standardDeviationInterval:p,numClasses:c,outlineOptimizationEnabled:g,forBinning:y,dataSeriesName:h,dataSeriesCalculationName:b,filter:z,view:v,signal:w});return{...e,creatorParameters:S,renderer:r}}async function Ee(e){const a="regenerate-size-age-renderer";await V(e,a);const r=await k(e);if("size-age"!==O(r))throw new i(`${a}:invalid-parameters`,"Renderer is invalid");const{authoringInfo:n}=r,s=n?.visualVariables.find(e=>"size"===e.type),l=s.startTime,t=s.endTime,o=s.units,u=s.theme,{layer:m,filter:d,view:p,signal:c}=e,f=I(r),y=B(r),z=await be({layer:m,startTime:l,endTime:t,unit:o,theme:u,outlineOptimizationEnabled:f,sizeOptimizationEnabled:y,filter:d,view:p,signal:c});return{...e,creatorParameters:z,renderer:r}}async function Te(e){let i=e.sizeScheme,a=null,r=null;const n=await X(e.basemap,e.view);if(a=null!=n.basemapId?n.basemapId:null,r=null!=n.basemapTheme?n.basemapTheme:null,i)return{scheme:te(i),basemapId:a,basemapTheme:r};const s=oe({basemapTheme:r,geometryType:e.geometryType,worldScale:e.worldScale,view:e.view});return s&&(i=s.primaryScheme,a=s.basemapId,r=s.basemapTheme),{scheme:i,basemapId:a,basemapTheme:r}}function Ve(e,i){switch(i){case"point":case"multipoint":{const i=e;return[d(i.minSize),d(i.maxSize)]}case"polyline":{const i=e;return[d(i.minWidth),d(i.maxWidth)]}case"polygon":{const i=e;return[d(i.marker.minSize),d(i.marker.maxSize)]}}}function ke(e,i){"clamped-linear"===e.transformationType&&"below"===i&&e.flipSizes()}async function Oe(e,i,a,r,n,s){const l=Ie(e,i,a,r);return l||Ve(n,s)}function Ie(e,i,a,r){return"spike"===r?[a?.minHeight??de[0],a?.maxHeight??de[1]]:"reference-size"===r&&i?[1,i.size]:e?[e.minSize,e.maxSize]:null}function Be(e,i){if("reference-size"===i.theme&&null!=e.min&&null!=e.max&&null!=e.avg&&null!=e.stddev){const i=100,a=0,r=0,n=1,s=e.avg,l=e.min,t=e.max,o=e.stddev,u=0!==s?o/s:0,m=l>r&&l<n&&t<2*n&&u<.5,d=l>a&&l<i&&t<2*i&&u<.5;return{minDataValue:m?r:d?a:l,maxDataValue:m?n:d?i:s+2*o,defaultValuesUsed:!1}}const{theme:a,field:r}=i,n=i.layer,s=r&&!("function"==typeof r)?n.getField(r):null,l=ae(s);return Q(e,a,l,"above"===a||"below"===a)}function Fe(e,a){if(("spike"===a||"reference-size"===a)&&null!=e.minDataValue&&null!=e.maxDataValue&&null!=e.minSize&&null!=e.maxSize&&"number"==typeof e.minSize&&"number"==typeof e.maxSize)return[new p({value:e.minDataValue,size:e.minSize}),new p({value:e.maxDataValue,size:e.maxSize})];throw new i("get-size-stops-for-theme","Invalid size variable or theme")}async function Re(e,a,n,s){const{theme:u,field:d,normalizationField:p,minValue:f,maxValue:y,axis:z}=e,v=e.layer.geometryType,w=await Te({basemap:e.basemap,geometryType:v,sizeScheme:e.sizeScheme,worldScale:e.worldScale,view:e.view}),h=w.scheme;if(!h)throw new i("size-visual-variable:insufficient-info","Unable to find size scheme");const b=await Oe(n,s,e.spikeOptions,u,h,v),{minDataValue:g,maxDataValue:S,defaultValuesUsed:x}=Be(a,e),E=[],T="height"===z,V=T?z:void 0,k=b[0];let O=b[1];if(T&&"number"==typeof k&&"number"==typeof O){const e=K({minSize:k,maxSize:O},V);E.push(new m({axis:"width-and-depth",minSize:e.minSize})),O=e.maxSize}const I=new m({field:d??void 0,valueExpression:e.valueExpression,valueExpressionTitle:e.valueExpressionTitle,valueUnit:"unknown",normalizationField:p,axis:V,minSize:k,maxSize:O,minDataValue:g,maxDataValue:S,legendOptions:r(c,e.legendOptions)});ke(I,u),E.unshift(I);const B=new o("reference-size"===u?{type:"size",field:e.field,normalizationField:e.normalizationField,dataSeriesName:e.dataSeriesName,dataSeriesCalculationName:e.dataSeriesCalculationName,sizeStops:Fe(I,u).map(({label:e,size:i,value:a})=>new t({label:e,size:i,value:a})),theme:u,referenceSizeScale:s?.isGrid||e.sizeOptimizationEnabled?e?.view?.scale:void 0,referenceSizeSymbolStyle:e.referenceSizeOptions?.symbolStyle,minSliderValue:null!=f?f:a.min,maxSliderValue:null!=y?y:a.max}:"spike"===u?{type:"size",field:e.field,normalizationField:e.normalizationField,dataSeriesName:e.dataSeriesName,dataSeriesCalculationName:e.dataSeriesCalculationName,spikeSymbolStyle:e.spikeOptions?.symbolStyle,sizeStops:Fe(I,u).map(({label:e,size:i,value:a})=>new t({label:e,size:i,value:a})),theme:u,minSliderValue:null!=f?f:a.min,maxSliderValue:null!=y?y:a.max}:{type:"size",theme:u,dataSeriesName:e.dataSeriesName,dataSeriesCalculationName:e.dataSeriesCalculationName,minSliderValue:null!=f?f:a.min,maxSliderValue:null!=y?y:a.max}),F=new l({visualVariables:[B]});return{basemapId:w.basemapId,basemapTheme:w.basemapTheme,visualVariables:E,statistics:a,isGrid:s?.isGrid,defaultValuesUsed:x,sizeScheme:te(h),authoringInfo:F}}async function Ne(e,i,a,r,l){const t=await n("esri/smartMapping/t9n/smartMapping"),o=l.layer,u=l.field,m=o.geometryType,d=l.defaultSymbolEnabled,p=te(e.sizeScheme),c="polygon"===m,f=c?p.marker:p,y=c?p.background:null,z=c?"point":m,v=i?.opacity,w=e.isGrid,b=l.theme,S="reference-size"===b,x="spike"===b,E=S||x?[]:e.visualVariables.map(e=>e.clone());i?.visualVariables?.length&&E.push(...i.visualVariables.map(e=>e.clone()));const T=S?g({type:l.referenceSizeOptions?.symbolStyle||"circle",color:f.color,primitiveOverrides:h({view:l.view,field:u,normalizationField:r,sizeStops:Fe(e.visualVariables[0],b),sizeByScaleEnabled:w||!!l.sizeOptimizationEnabled})}):x?q({color:f.color,strokeColor:f.outline.color,baseWidth:l.spikeOptions?.baseWidth,strokeWidth:l.spikeOptions?.strokeWidth,defaultHeight:l.spikeOptions?.defaultHeight,primitiveOverrides:N({field:u,normalizationField:r,sizeStops:Fe(e.visualVariables[0],b)}),symbolStyle:l.spikeOptions?.symbolStyle}):A(z,{type:l.symbolType,color:f.color,size:L(f,z),outline:H(f,z,v)});return{renderer:new s({backgroundFillSymbol:!w&&y?A(m,{type:l.symbolType,color:y.color,outline:H(y,m,v)}):null,classBreakInfos:[{minValue:-me,maxValue:me,symbol:T}],defaultLabel:d?t.other:null,defaultSymbol:!d||S||x?null:A(z,{type:l.symbolType,color:f.noDataColor,size:L(f,z,!0),outline:H(f,z,v)}),field:u,normalizationField:r,normalizationType:a,valueExpression:l.valueExpression,valueExpressionTitle:l.valueExpressionTitle,visualVariables:E,authoringInfo:e.authoringInfo?.clone()}),visualVariables:e.visualVariables.map(e=>e.clone()),statistics:e.statistics,defaultValuesUsed:e.defaultValuesUsed,isGrid:w,sizeScheme:te(e.sizeScheme),basemapId:e.basemapId,basemapTheme:e.basemapTheme}}function je(e,i){const r=a(e.minSize),n=(a(e.maxSize)-r)/(i>=4?i-1:i),s=[];for(let a=0;a<i;a++)s.push(r+n*a);return s}async function qe(e,i){const a=await n("esri/smartMapping/t9n/smartMapping"),r=e.layer,t=e.defaultSymbolEnabled,o=r.geometryType,m="polygon"===o,d=e.symbolType?.includes("3d-volumetric"),p=await Te({basemap:e.basemap,geometryType:o,sizeScheme:e.sizeScheme,worldScale:d,view:e.view}),c=p.scheme,{result:f,outlineResult:y}=i,z=f?.classBreakInfos??[],v=e.classificationMethod,w=e.normalizationType,h=m?c.marker:c,b=m?c.background:null,g=m?"point":o,S=Ve(h,g),x=d?K({minSize:S[0],maxSize:S[1]},"height"):null,E=je({minSize:S[0],maxSize:x?x.maxSize:S[1]},z.length),T=y?.opacity,V=new s({backgroundFillSymbol:b&&A(o,{type:e.symbolType,color:b.color,outline:H(b,o,T)}),classBreakInfos:z.map((i,a)=>({minValue:i.minValue,maxValue:i.maxValue,symbol:A(g,{type:e.symbolType,color:h.color,size:E[a],widthAndDepth:x?.minSize,outline:H(h,g,T)}),label:i.label})),defaultLabel:t?a.other:null,defaultSymbol:t?A(g,{type:e.symbolType,color:h.noDataColor,size:L(h,g,!0),widthAndDepth:x?.minSize,outline:H(h,g,T)}):null,field:e.field,valueExpression:e.valueExpression,valueExpressionTitle:e.valueExpressionTitle,normalizationType:w,normalizationField:e.normalizationField,normalizationTotal:"percent-of-total"===w?f?.normalizationTotal:void 0,legendOptions:e.legendOptions,authoringInfo:new l({type:"class-breaks-size",classificationMethod:v,standardDeviationInterval:e.standardDeviationInterval,dataSeriesName:e.dataSeriesName,dataSeriesCalculationName:e.dataSeriesCalculationName})});return"standard-deviation"!==v&&u({classBreakInfos:V.classBreakInfos,classificationMethod:v,normalizationType:w,round:!0}),y?.visualVariables?.length&&(V.visualVariables=y.visualVariables.map(e=>e.clone())),{renderer:V,sizeScheme:te(c),classBreaksResult:f,defaultValuesUsed:!!i.defaultValuesUsed,basemapId:p.basemapId,basemapTheme:p.basemapTheme}}async function Ce(e){const i=await pe(e),{view:a,field:r,valueExpression:n,minValue:s,maxValue:l,layer:t,normalizationField:o,signal:u,statistics:m,filter:d,dataSeriesName:p}=i,c=o?"field":void 0,[f,y]=await Promise.all([m??(p?D({layer:t,view:a,signal:u,dataSeriesName:p,dataSeriesCalculationName:i.dataSeriesCalculationName,filter:d}):$({layer:t,field:r,valueExpression:n,sqlExpression:i.sqlExpression,sqlWhere:i.sqlWhere,normalizationType:c,normalizationField:o,filter:d,minValue:s,maxValue:l,view:a,signal:u})),i.sizeOptimizationEnabled?v({view:a,layer:t,signal:u,filter:d}).catch(U):null]);return Re(i,f,y,i.referenceSizeResult)}async function De(e){const{view:i,filter:a,renderer:r,signal:n,creatorParameters:s}=await ge(e),{field:l,normalizationField:o,valueExpression:u,valueExpressionTitle:d,theme:p,layer:c,sizeOptimizationEnabled:f,spikeOptions:y,referenceSizeResult:z,dataSeriesName:w,dataSeriesCalculationName:h}=s,b=o?"field":void 0,g=r.authoringInfo?.clone(),[S,x]=await Promise.all([(w?D({layer:c,view:i,signal:n,dataSeriesName:w,dataSeriesCalculationName:h,filter:a}):Promise.resolve(null)).then(e=>e??$({layer:c,field:l,valueExpression:u,normalizationField:o,normalizationType:b,filter:a,view:i,signal:n})),f&&!z?v({view:i,layer:c,signal:n,filter:a}).catch(U):null]),E=Ie(x,z,y,p),{minDataValue:V,maxDataValue:k}=Be(S,{theme:p,layer:c,field:l}),O=r.visualVariables?.find(T),I=(O?.stops?null:O)??new m({field:l??void 0,valueExpression:u,valueExpressionTitle:d,valueUnit:"unknown",normalizationField:o});E&&(I.minSize=E[0],I.maxSize=E[1]),I.minDataValue=V,I.maxDataValue=k,w&&(I.valueExpression=u??null,I.valueExpressionTitle=d??null),ke(I,p);const B=g.visualVariables.find(e=>"size"===e.type);B.dataSeriesName=w??B.dataSeriesName,B.dataSeriesCalculationName=h??B.dataSeriesCalculationName,B.minSliderValue=S.min,B.maxSliderValue=S.max;const F="reference-size"===p;return(F||"spike"===p)&&(B.sizeStops=Fe(I,p).map(({label:e,size:i,value:a})=>new t({label:e,size:i,value:a})),F&&(B.referenceSizeScale=z?.isGrid||f?i?.scale:void 0)),{visualVariables:"reference-size"===p||"spike"===p?[]:[I],isGrid:!!z?.isGrid,authoringInfo:g,statistics:S}}async function Ge(e){const i=await ce(e),a={layer:i.layer,view:i.view,filter:i.filter,signal:i.signal},[r,n]=await Promise.all([Ce(he(i)),i.outlineOptimizationEnabled?y(a).catch(U):null]),s=i.normalizationField;return Ne(r,n,s?"field":void 0,s,i)}async function Ue(e){const{renderer:i,view:a,signal:r,filter:n,creatorParameters:s,forBinning:l}=await Se(e),{layer:t,sizeOptimizationEnabled:o,outlineOptimizationEnabled:u,theme:m,referenceSizeResult:d,valueExpression:p,valueExpressionTitle:c}=s,[f,z]=await Promise.all([De({...e,referenceSizeResult:d}),u?y({layer:t,view:a,filter:n,signal:r}).catch(U):null]),v="reference-size"===m,w="spike"===m;S(i,f.visualVariables,F),S(i,z?.visualVariables,R),i.valueExpression=p??null,i.valueExpressionTitle=c??null,x(i,f.authoringInfo,"size");const h=f.statistics;if(!v&&!w)return{renderer:i,statistics:h};if(w){return{renderer:await Me({layer:t,renderer:i,forBinning:l,sizeStops:E(i,"size","spike")?.sizeStops}),statistics:h}}const b=f.isGrid;return{renderer:await Pe({layer:t,renderer:i,view:a,forBinning:l,sizeOptimizationEnabled:o,sizeStops:E(i,"size","reference-size")?.sizeStops,isGrid:b}),isGrid:b,statistics:h}}async function Pe(a){const{layer:r,referenceSizeOptions:n,renderer:s,sizeScheme:o,sizeStops:u,typeScheme:m,view:d,isGrid:p}=await ye(a),c=s.clone();c.authoringInfo??=new l;const f=c.authoringInfo.visualVariables.find(e=>"reference-size"===e.theme),y=a.field??f?.field,z=a.normalizationField??f?.normalizationField;if(!y)throw new i("update-renderer-with-reference-size:invalid-parameters","'field' parameter or authoring info with 'field' is required.");const v=h({view:d,field:y,normalizationField:z,sizeStops:u,sizeByScaleEnabled:p||!!a.sizeOptimizationEnabled}),w=n?.symbolStyle||f?.referenceSizeSymbolStyle||"circle";if("class-breaks"===c.type){const e="polygon"===("geometryType"in r?r.geometryType:null)&&o&&"marker"in o?o.marker:null;c.classBreakInfos.forEach(i=>{const a=e?.color??ue(i.symbol,1);"cim"===i.symbol.type?b(i.symbol,{type:w,color:a,primitiveOverrides:v}):a&&(i.symbol=g({type:w,color:a,primitiveOverrides:v}))})}else if("unique-value"===c.type){const i=c.uniqueValueGroups,a="polygon"===("geometryType"in r?r.geometryType:null)&&m&&"colors"in m?m.colors:null,n=a?e(a,c.uniqueValueInfos?.length??0):null;let s=0;if(i){for(const e of i)for(const i of e.classes??[]){const e=n?n[s]:ue(i.symbol,1);"cim"===i.symbol?.type?b(i.symbol,{type:w,color:e,primitiveOverrides:v}):e&&(i.symbol=g({type:w,color:e,primitiveOverrides:v})),s++}c.uniqueValueGroups=i}}return f&&(f.field=y,f.normalizationField=z,f.sizeStops=u.map(({label:e,size:i,value:a})=>new t({label:e,size:i,value:a})),f.referenceSizeScale=p||a.sizeOptimizationEnabled?d.scale:void 0,f.referenceSizeSymbolStyle=w),c}async function Me(a){const{layer:r,renderer:n,sizeScheme:s,sizeStops:o,typeScheme:u,spikeOptions:m}=await ze(a),d=n.clone();d.authoringInfo??=new l;const p=d.authoringInfo.visualVariables.find(e=>"spike"===e.theme),c=a.field??p?.field,f=a.normalizationField??p?.normalizationField;if(!c)throw new i("update-renderer-with-spike:invalid-parameters","'field' parameter or authoring info with 'field' is required.");const y=N({field:c,normalizationField:f,sizeStops:o}),z="geometryType"in r?r.geometryType:null,v={primitiveOverrides:y,...m},h=m?.symbolStyle,b=h&&h.includes("outline")&&(h.includes("solid-fill")||h.includes("gradient-fill"));if("class-breaks"===d.type){if(s||b){const e=z?await Te({geometryType:z,sizeScheme:s,view:a.view}):null,i=e?.scheme,r="polygon"===z&&i&&"marker"in i?i.marker:i;if(s){const e=r&&"color"in r?r?.color:void 0;v.color=e}if(b){const e=r&&"outline"in r?r.outline.color:void 0;v.strokeColor=e}}d.classBreakInfos.forEach(e=>{if("cim"===e.symbol.type)j(e.symbol,v);else{const i=v.color??ue(e.symbol,1)??void 0;i&&(e.symbol=q({...v,color:i}))}})}else if("unique-value"===d.type){const i=d.uniqueValueGroups,r=d.uniqueValueInfos?.length??0;let n=null;if(u||b){const i=z&&r?await w({numColors:r,geometryType:z,typeScheme:u,view:a.view}):null,s=i?.scheme;if(u){const i=s&&"colors"in s?s.colors:null;n=i?e(i,r):null}if(b){const e=s&&"outline"in s?s.outline.color:void 0;v.strokeColor=e}}let s=0;if(i){for(const e of i)for(const i of e.classes??[]){if("cim"===i.symbol?.type)j(i.symbol,{...v,color:n?.[s]});else{const e=n?.[s]??ue(i.symbol,1)??void 0;e&&(i.symbol=q({...v,color:e}))}s++}d.uniqueValueGroups=i}}return p&&(p.field=c,p.normalizationField=f,p.sizeStops=o.map(({label:e,size:i,value:a})=>new t({label:e,size:i,value:a})),h&&(p.spikeSymbolStyle=h)),d}async function We(e){const i=await ve(e);return qe(i,await W(we(i),i.outlineOptimizationEnabled))}async function $e(e){const{renderer:a,creatorParameters:r}=await xe(e),{outlineOptimizationEnabled:n,normalizationType:s,classificationMethod:l,valueExpression:t,valueExpressionTitle:o}=r,{result:m,outlineResult:d}=await W(we(r),n),p=m.classBreakInfos;if(r.numClasses!==p.length)throw new i("regenerate-class-breaks-renderer:invalid-parameters","The number of class breaks generated does not match the number of class breaks in the renderer.");return a.classBreakInfos.forEach((e,i)=>{e.minValue=p[i].minValue,e.maxValue=p[i].maxValue,e.label=p[i].label}),a.normalizationTotal="percent-of-total"===s?m.normalizationTotal:void 0,"standard-deviation"!==l&&u({classBreakInfos:a.classBreakInfos,classificationMethod:l,normalizationType:s,round:!0}),S(a,d?.visualVariables,R),a.valueExpression=t??null,a.valueExpressionTitle=o??null,{renderer:a}}async function Ae(e){const i=await be(e),{defaultSymbolEnabled:a,view:r,startTime:n,endTime:s,symbolType:l,minValue:t,maxValue:o,signal:u,filter:m,layer:d}=i,[p,c]=await Promise.all([i.unit?{unit:i.unit,statistics:null,valueExpression:null}:await f({view:r,layer:d,startTime:n,endTime:s,minValue:t,maxValue:o,signal:u,filter:m}),i.outlineOptimizationEnabled?y({layer:d,view:r,filter:m,signal:u}).catch(U):null]),{unit:z,statistics:v}=p,{valueExpression:w,title:h}=await P(i,z),b=await Ce(he({layer:d,basemap:i.basemap,valueExpression:w,symbolType:l,statistics:v,legendOptions:{title:h},theme:i.theme,sizeScheme:i.sizeScheme,sizeOptimizationEnabled:i.sizeOptimizationEnabled,view:i.view,minValue:t,maxValue:o,filter:m,signal:u})),g={layer:d,valueExpression:w,defaultSymbolEnabled:a,symbolType:l},S=await Ne(b,c,null,null,g),x=S.renderer.authoringInfo?.visualVariables;return x?.forEach(e=>M(e,n,s,z)),{...S,unit:z}}async function He(e){const{renderer:i,creatorParameters:a}=await Ee(e),{layer:r,outlineOptimizationEnabled:n,sizeOptimizationEnabled:s,startTime:l,endTime:t,theme:o,view:u,signal:m,filter:d}=a,[p,c]=await Promise.all([f({view:u,layer:r,startTime:l,endTime:t,signal:m,filter:d}),n?y({layer:r,view:u,filter:d,signal:m}).catch(U):null]),{unit:z,statistics:v}=p,{valueExpression:w,title:h}=await P(a,z),b=await Ce(he({layer:r,valueExpression:w,statistics:v,legendOptions:{title:h},sizeOptimizationEnabled:s,theme:o,view:u,filter:d,signal:m}));S(i,b.visualVariables,F),S(i,c?.visualVariables,R),i.authoringInfo=b.authoringInfo.clone();const g=i.authoringInfo?.visualVariables;return g?.forEach(e=>M(e,l,t,z)),{renderer:i}}export{Ae as createAgeRenderer,We as createClassBreaksRenderer,Ge as createContinuousRenderer,Ce as createVisualVariables,Fe as getSizeStopsForTheme,He as regenerateAgeRenderer,$e as regenerateClassBreaksRenderer,Ue as regenerateContinuousRenderer,De as regenerateVisualVariables,Pe as updateRendererWithReferenceSize,Me as updateRendererWithSpike};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import e from"../../../core/Error.js";async function n(n,r){const{layer:i,view:t,forBinning:a,filter:s}=n;if(!i||!t)throw new e(`${r}:missing-parameters`,"'layer' and 'view' parameters are required");await i.load();const o="featureReduction"in i?i.featureReduction:null;if(a){if("binning"!==o?.type)throw new e(`${r}:invalid-parameters`,"'layer' must have 'featureReduction' property defined with 'binning' type when 'forBinning' parameter is true");if(s)throw new e(`${r}:invalid-parameters`,"'filter' parameter is not supported when 'forBinning' parameter is true")}return n}async function r(n){const{layer:r,forBinning:i,renderer:t}=n;await r.load();const a="featureReduction"in r?r.featureReduction:null,s=t?.clone()??(i&&"binning"===a?.type?a?.renderer?.clone():"renderer"in r?r.renderer?.clone():null);if(!s)throw new e("get-renderer-to-update:invalid-parameters","renderer not available");return s}function i(e,n,r){const i=e?.authoringInfo?.visualVariables;return i?.find(e=>"reference-size"===r?e.type===n&&"reference-size"===e.theme:"spike"===r?e.type===n&&"spike"===e.theme:e.type===n)}function t(e){if(!e)return null;const n=e.type,r="visualVariables"in e?e.visualVariables:null,t=r?.find(d),a=r?.find(z),s=e.authoringInfo,o=i(e,"color"),u=i(e,"size"),l=i(e,"size","reference-size"),c=i(e,"size","spike");if("class-breaks"===n){if("univariate-color-size"===s?.type)return"univariate-color-size";if(t)return a?u?.units?"color-size-age":o?.units?"color-age-size":"color-size":o?.units?"color-age":l||c?"color-size":"color-continuous";if(a)return u?.units?"size-age":"size-continuous";if(e.classBreakInfos.length>1)return"class-breaks-color"===s?.type?"color-class-breaks":"class-breaks-size"===s?.type?"size-class-breaks":null;if(l||c)return"size-continuous"}return"unique-value"===n?e.valueExpression?"predominance"===s?.type?"predominance":"relationship"===s?.type?a||l||c?"relationship-size":"relationship":a||l||c?"type-size":"type":a?u?.units?"type-size-age":"type-size":l||c?"type-size":"type":"pie-chart"===n?"pie-chart":"dot-density"===n?"dot-density":"heatmap"===n?"heatmap":"simple"===n?"location":null}function a(e){return!!e.visualVariables?.some(h)}function s(e){return!!e.visualVariables?.some(v)}function o(e){return e?.findIndex(h)??-1}function u(e){return e?.findIndex(z)??-1}function l(e){return e?.findIndex(d)??-1}function c(e){return e?.findIndex(y)??-1}function f(e){return e?.findIndex(m)??-1}function p(e){return e?.findIndex(v)??-1}function d(e){return"color"===e.type}function y(e){return"opacity"===e.type}function m(e){return"rotation"===e.type}function z(e){return"size"===e.type&&"outline"!==e.target&&"$view.scale"!==e.valueExpression}function h(e){return"size"===e.type&&"outline"===e.target}function v(e){return"size"===e.type&&"$view.scale"===e.valueExpression&&"outline"!==e.target&&Array.isArray(e.stops)}function g(e,n,r){const i=e.visualVariables,t=r(i);if(!n||Array.isArray(n)&&!n.length)return;Array.isArray(n)||(n=[n]);const a=n.map(e=>e.clone());i?t>-1?i.splice(t,1,...a):i.push(...a):e.visualVariables=a}function b(e,n,r){const t=n?.visualVariables.find(e=>e.type===r),a=i(e,r);a&&t&&(a.dataSeriesName=t.dataSeriesName,a.minSliderValue=t.minSliderValue,a.maxSliderValue=t.maxSliderValue,"size"===r&&("reference-size"!==a.theme&&"spike"!==a.theme||(a.sizeStops=t.sizeStops?.map(e=>e.clone()),"reference-size"===a.theme&&(a.referenceSizeScale=t.referenceSizeScale))))}export{l as findColorVVIndex,c as findOpacityVVIndex,o as findOutlineVVIndex,f as findRotationVVIndex,p as findScaleDependentSizeVVIndex,u as findSizeVVIndex,i as getAuthoringInfoVisualVariable,r as getRendererToUpdate,t as getStyleType,a as hasOutlineVV,s as hasScaleDependentSizeVV,d as isColorVV,y as isOpacityVV,h as isOutlineVV,m as isRotationVV,v as isScaleDependentSizeVV,z as isSizeVV,n as processRegenerateParams,g as spliceVisualVariables,b as updateAuthoringInfoVisualVariable};
|
|
2
|
+
import e from"../../../core/Error.js";async function n(n,r){const{layer:i,view:t,forBinning:a,filter:s}=n;if(!i||!t)throw new e(`${r}:missing-parameters`,"'layer' and 'view' parameters are required");await i.load();const o="featureReduction"in i?i.featureReduction:null;if(a){if("binning"!==o?.type)throw new e(`${r}:invalid-parameters`,"'layer' must have 'featureReduction' property defined with 'binning' type when 'forBinning' parameter is true");if(s)throw new e(`${r}:invalid-parameters`,"'filter' parameter is not supported when 'forBinning' parameter is true")}return n}async function r(n){const{layer:r,forBinning:i,renderer:t}=n;await r.load();const a="featureReduction"in r?r.featureReduction:null,s=t?.clone()??(i&&"binning"===a?.type?a?.renderer?.clone():"renderer"in r?r.renderer?.clone():null);if(!s)throw new e("get-renderer-to-update:invalid-parameters","renderer not available");return s}function i(e,n,r){const i=e?.authoringInfo?.visualVariables;return i?.find(e=>"reference-size"===r?e.type===n&&"reference-size"===e.theme:"spike"===r?e.type===n&&"spike"===e.theme:e.type===n)}function t(e){if(!e)return null;const n=e.type,r="visualVariables"in e?e.visualVariables:null,t=r?.find(d),a=r?.find(z),s=e.authoringInfo,o=i(e,"color"),u=i(e,"size"),l=i(e,"size","reference-size"),c=i(e,"size","spike");if("class-breaks"===n){if("univariate-color-size"===s?.type)return"univariate-color-size";if(t)return a?u?.units?"color-size-age":o?.units?"color-age-size":"color-size":o?.units?"color-age":l||c?"color-size":"color-continuous";if(a)return u?.units?"size-age":"size-continuous";if(e.classBreakInfos.length>1)return"class-breaks-color"===s?.type?"color-class-breaks":"class-breaks-size"===s?.type?"size-class-breaks":null;if(l||c)return"size-continuous"}return"unique-value"===n?e.valueExpression?"predominance"===s?.type?"predominance":"relationship"===s?.type?a||l||c?"relationship-size":"relationship":a||l||c?"type-size":"type":a?u?.units?"type-size-age":"type-size":l||c?"type-size":"type":"pie-chart"===n?"pie-chart":"dot-density"===n?"dot-density":"heatmap"===n?"heatmap":"simple"===n?"location":null}function a(e){return!!e.visualVariables?.some(h)}function s(e){return!!e.visualVariables?.some(v)}function o(e){return e?.findIndex(h)??-1}function u(e){return e?.findIndex(z)??-1}function l(e){return e?.findIndex(d)??-1}function c(e){return e?.findIndex(y)??-1}function f(e){return e?.findIndex(m)??-1}function p(e){return e?.findIndex(v)??-1}function d(e){return"color"===e.type}function y(e){return"opacity"===e.type}function m(e){return"rotation"===e.type}function z(e){return"size"===e.type&&"outline"!==e.target&&"$view.scale"!==e.valueExpression}function h(e){return"size"===e.type&&"outline"===e.target}function v(e){return"size"===e.type&&"$view.scale"===e.valueExpression&&"outline"!==e.target&&Array.isArray(e.stops)}function g(e,n,r){const i=e.visualVariables,t=r(i);if(!n||Array.isArray(n)&&!n.length)return;Array.isArray(n)||(n=[n]);const a=n.map(e=>e.clone());i?t>-1?i.splice(t,1,...a):i.push(...a):e.visualVariables=a}function b(e,n,r){const t=n?.visualVariables.find(e=>e.type===r),a=i(e,r);a&&t&&(a.dataSeriesName=t.dataSeriesName,a.dataSeriesCalculationName=t.dataSeriesCalculationName,a.minSliderValue=t.minSliderValue,a.maxSliderValue=t.maxSliderValue,"size"===r&&("reference-size"!==a.theme&&"spike"!==a.theme||(a.sizeStops=t.sizeStops?.map(e=>e.clone()),"reference-size"===a.theme&&(a.referenceSizeScale=t.referenceSizeScale))))}export{l as findColorVVIndex,c as findOpacityVVIndex,o as findOutlineVVIndex,f as findRotationVVIndex,p as findScaleDependentSizeVVIndex,u as findSizeVVIndex,i as getAuthoringInfoVisualVariable,r as getRendererToUpdate,t as getStyleType,a as hasOutlineVV,s as hasScaleDependentSizeVV,d as isColorVV,y as isOpacityVV,h as isOutlineVV,m as isRotationVV,v as isScaleDependentSizeVV,z as isSizeVV,n as processRegenerateParams,g as spliceVisualVariables,b as updateAuthoringInfoVisualVariable};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import e from"../../../core/Error.js";import r from"../../../renderers/visualVariables/RotationVariable.js";import{regenerateVisualVariable as a}from"../opacity.js";import{getRendererToUpdate as i,getStyleType as t,findOpacityVVIndex as n,spliceVisualVariables as s,updateAuthoringInfoVisualVariable as o,findRotationVVIndex as l,findSizeVVIndex as c,getAuthoringInfoVisualVariable as u,hasScaleDependentSizeVV as d}from"./regenerateUtils.js";import{resolveDataSeriesInfo as p}from"./timeSeriesUtils.js";async function w(r){let a=await i(r);const n=t(a),s=r.includedParts,o=s?.includes("size-variable")??!0,l=s?.includes("color-variable")??!0,c=s?.includes("class-breaks")??!0,u=s?.includes("opacity-variable")??!0,d=s?.includes("rotation-variable")??!0;switch(a=await f({params:r,renderer:a,styleType:n,includeOpacityVariable:u,includeRotationVariable:d}),r={...r,renderer:a},n){case"color-continuous":{if(!l)return a;const{regenerateContinuousRenderer:e}=await(import("../color.js"));return(await e(r)).renderer}case"color-class-breaks":{if(!c)return a;const{regenerateClassBreaksRenderer:e}=await(import("../color.js"));return(await e(r)).renderer}case"color-age":{if(!l)return a;const{regenerateAgeRenderer:e}=await(import("../color.js"));return(await e(r)).renderer}case"size-continuous":{if(!o)return a;const{regenerateContinuousRenderer:e}=await(import("../size.js"));return(await e(r)).renderer}case"size-class-breaks":{if(!c)return a;const{regenerateClassBreaksRenderer:e}=await(import("../size.js"));return(await e(r)).renderer}case"size-age":{if(!o)return a;const{regenerateAgeRenderer:e}=await(import("../size.js"));return(await e(r)).renderer}case"color-size":{let e=a;if(l){const{regenerateContinuousRenderer:a}=await(import("../color.js"));e=(await a(r)).renderer}return o?await m(r,e):e}case"type":{const{regenerateRenderer:e}=await(import("../type.js"));return(await e(r)).renderer}case"type-size":{const{regenerateRenderer:e}=await(import("../type.js")),{renderer:a}=await e(r);return o?await m(r,a):a}case"predominance":{const{regenerateRenderer:e}=await(import("../predominance.js"));return(await e(r)).renderer}case"relationship":{if(!c)return a;const{regenerateRenderer:e}=await(import("../relationship.js"));return(await e(r)).renderer}case"relationship-size":{let e=a;if(c){const{regenerateRenderer:a}=await(import("../relationship.js")),{renderer:i}=await a(r);e=i}return o?await m(r,e):e}case"pie-chart":{const{regenerateRenderer:e}=await(import("../pieChart.js"));return(await e(r)).renderer}case"dot-density":{const{regenerateRenderer:e}=await(import("../dotDensity.js"));return(await e(r)).renderer}case"heatmap":{const{regenerateRenderer:e}=await(import("../heatmap.js"));return(await e(r)).renderer}case"location":{const{regenerateRenderer:e}=await(import("../location.js"));return(await e(r)).renderer}case"univariate-color-size":{const{regenerateRenderer:e}=await(import("../univariateColorSize.js"));return(await e(r)).renderer}default:throw new e("regenerate-renderer:invalid-parameters","renderer type not supported")}}async function m(e,r){const{regenerateVisualVariables:a,updateRendererWithReferenceSize:i,updateRendererWithSpike:t}=await(import("../size.js")),{visualVariables:n,authoringInfo:l,isGrid:p}=await a({...e,renderer:r});s(r,n,c),o(r,l,"size");const w=u(r,"size","reference-size"),m=u(r,"size","spike");return w||m?m?await t({layer:e.layer,renderer:r,sizeStops:m.sizeStops,forBinning:e.forBinning}):await i({layer:e.layer,renderer:r,sizeStops:w.sizeStops,view:e.view,forBinning:e.forBinning,sizeOptimizationEnabled:d(r),isGrid:p}):r}async function f({params:e,renderer:r,styleType:i,includeOpacityVariable:t,includeRotationVariable:c}){if(!("visualVariables"in r))return r;if(t&&"predominance"!==i&&-1!==n(r.visualVariables)){const i=await a({...e,renderer:r});s(r,i?.visualVariable,n),o(r,i?.authoringInfo,"opacity")}if(c){const a=await g(e,r);s(r,a,l)}return r}async function g(e,a){const i=a.visualVariables?.[l(a.visualVariables)],t=u(a,"rotation");if(!i)return null;const n=new r({axis:i.axis,rotationType:i.rotationType,field:i.field,valueExpression:i.valueExpression,valueExpressionTitle:i.valueExpressionTitle,legendOptions:i.legendOptions?.clone()});if(!t?.dataSeriesName)return n;const s=p({layer:e.layer,view:e.view,field:n.field??null,dataSeriesName:t.dataSeriesName,valueExpression:n.valueExpression??null,valueExpressionTitle:n.valueExpressionTitle??null});return n.field=s.field??null,n.valueExpression=s.valueExpression??null,n.valueExpressionTitle=s.valueExpressionTitle??null,n}export{w as regenerateRenderer};
|
|
2
|
+
import e from"../../../core/Error.js";import r from"../../../renderers/visualVariables/RotationVariable.js";import{regenerateVisualVariable as a}from"../opacity.js";import{getRendererToUpdate as i,getStyleType as t,findOpacityVVIndex as n,spliceVisualVariables as s,updateAuthoringInfoVisualVariable as o,findRotationVVIndex as l,findSizeVVIndex as c,getAuthoringInfoVisualVariable as u,hasScaleDependentSizeVV as d}from"./regenerateUtils.js";import{resolveDataSeriesInfo as p}from"./timeSeriesUtils.js";async function w(r){let a=await i(r);const n=t(a),s=r.includedParts,o=s?.includes("size-variable")??!0,l=s?.includes("color-variable")??!0,c=s?.includes("class-breaks")??!0,u=s?.includes("opacity-variable")??!0,d=s?.includes("rotation-variable")??!0;switch(a=await f({params:r,renderer:a,styleType:n,includeOpacityVariable:u,includeRotationVariable:d}),r={...r,renderer:a},n){case"color-continuous":{if(!l)return a;const{regenerateContinuousRenderer:e}=await(import("../color.js"));return(await e(r)).renderer}case"color-class-breaks":{if(!c)return a;const{regenerateClassBreaksRenderer:e}=await(import("../color.js"));return(await e(r)).renderer}case"color-age":{if(!l)return a;const{regenerateAgeRenderer:e}=await(import("../color.js"));return(await e(r)).renderer}case"size-continuous":{if(!o)return a;const{regenerateContinuousRenderer:e}=await(import("../size.js"));return(await e(r)).renderer}case"size-class-breaks":{if(!c)return a;const{regenerateClassBreaksRenderer:e}=await(import("../size.js"));return(await e(r)).renderer}case"size-age":{if(!o)return a;const{regenerateAgeRenderer:e}=await(import("../size.js"));return(await e(r)).renderer}case"color-size":{let e=a;if(l){const{regenerateContinuousRenderer:a}=await(import("../color.js"));e=(await a(r)).renderer}return o?await m(r,e):e}case"type":{const{regenerateRenderer:e}=await(import("../type.js"));return(await e(r)).renderer}case"type-size":{const{regenerateRenderer:e}=await(import("../type.js")),{renderer:a}=await e(r);return o?await m(r,a):a}case"predominance":{const{regenerateRenderer:e}=await(import("../predominance.js"));return(await e(r)).renderer}case"relationship":{if(!c)return a;const{regenerateRenderer:e}=await(import("../relationship.js"));return(await e(r)).renderer}case"relationship-size":{let e=a;if(c){const{regenerateRenderer:a}=await(import("../relationship.js")),{renderer:i}=await a(r);e=i}return o?await m(r,e):e}case"pie-chart":{const{regenerateRenderer:e}=await(import("../pieChart.js"));return(await e(r)).renderer}case"dot-density":{const{regenerateRenderer:e}=await(import("../dotDensity.js"));return(await e(r)).renderer}case"heatmap":{const{regenerateRenderer:e}=await(import("../heatmap.js"));return(await e(r)).renderer}case"location":{const{regenerateRenderer:e}=await(import("../location.js"));return(await e(r)).renderer}case"univariate-color-size":{const{regenerateRenderer:e}=await(import("../univariateColorSize.js"));return(await e(r)).renderer}default:throw new e("regenerate-renderer:invalid-parameters","renderer type not supported")}}async function m(e,r){const{regenerateVisualVariables:a,updateRendererWithReferenceSize:i,updateRendererWithSpike:t}=await(import("../size.js")),{visualVariables:n,authoringInfo:l,isGrid:p}=await a({...e,renderer:r});s(r,n,c),o(r,l,"size");const w=u(r,"size","reference-size"),m=u(r,"size","spike");return w||m?m?await t({layer:e.layer,renderer:r,sizeStops:m.sizeStops,forBinning:e.forBinning}):await i({layer:e.layer,renderer:r,sizeStops:w.sizeStops,view:e.view,forBinning:e.forBinning,sizeOptimizationEnabled:d(r),isGrid:p}):r}async function f({params:e,renderer:r,styleType:i,includeOpacityVariable:t,includeRotationVariable:c}){if(!("visualVariables"in r))return r;if(t&&"predominance"!==i&&-1!==n(r.visualVariables)){const i=await a({...e,renderer:r});s(r,i?.visualVariable,n),o(r,i?.authoringInfo,"opacity")}if(c){const a=await g(e,r);s(r,a,l)}return r}async function g(e,a){const i=a.visualVariables?.[l(a.visualVariables)],t=u(a,"rotation");if(!i)return null;const n=new r({axis:i.axis,rotationType:i.rotationType,field:i.field,valueExpression:i.valueExpression,valueExpressionTitle:i.valueExpressionTitle,legendOptions:i.legendOptions?.clone()});if(!t?.dataSeriesName)return n;const s=p({layer:e.layer,view:e.view,field:n.field??null,dataSeriesName:t.dataSeriesName,dataSeriesCalculationName:t.dataSeriesCalculationName,valueExpression:n.valueExpression??null,valueExpressionTitle:n.valueExpressionTitle??null});return n.field=s.field??null,n.valueExpression=s.valueExpression??null,n.valueExpressionTitle=s.valueExpressionTitle??null,n}export{w as regenerateRenderer};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import e from"../../../core/Error.js";import{getSourceLayer as
|
|
2
|
+
import e from"../../../core/Error.js";import{getSourceLayer as t,getDataSeriesInfo as i}from"../../../layers/support/dataSeriesUtils.js";import{createTimeSeriesExpression as a}from"../../../layers/support/timeSeriesUtils.js";import s from"../../statistics/summaryStatistics.js";import{isIntegerField as r,castIntegerFieldToFloat as n}from"../../support/utils.js";import{createLayerAdapter as o,featureCapableLayerTypes as l}from"../../support/adapters/support/layerUtils.js";const m=new Set(["big-integer","double","integer","long","single","small-integer"]);function u(t,i){const a=i.fieldTimeMappings??[],s=[];for(const r of a){const a=r.fieldName;if(!a)throw new e("time-series-summary-statistics:invalid-parameters","Found a time series mapping with an empty 'fieldName'");const n=t.getField(a);if(!n)throw new e("time-series-summary-statistics:invalid-parameters",`Field '${a}' defined in time series '${i.name}' does not exist`);if(!m.has(n.type))throw new e("time-series-summary-statistics:invalid-parameters",`Field '${a}' in time series '${i.name}' has unsupported type '${n.type}'`);s.push(a)}return s}function p(t,i,a){if(null==i)return;const s=t.calculationMethods?.find(e=>e.name===i);if(!s?.type)throw new e(`${a}:invalid-parameters`,"'dataSeriesCalculationName' is not valid");return s}function d(e,t,i){const a="change-from-first"===i||"percent-change-from-first"===i,s="percent-change-from-first"===i||"percent-change-from-previous"===i;return t.slice(1).map((i,o)=>{const l=a?t[0]:t[o],m=r(e,l)?n(l):l,u=r(e,i)?n(i):i;return{sqlExpression:s?`CASE WHEN ${l} IS NULL OR ${l} = 0 OR ${i} IS NULL THEN NULL ELSE 100.0 * (${u} - ${m}) / ${m} END`:`CASE WHEN ${l} IS NULL OR ${i} IS NULL THEN NULL ELSE ${u} - ${m} END`}})}function c(e){const t=e.filter(e=>e.count),i=t.reduce((e,t)=>e+(t.count??0),0);if(!i)return{count:0};const a=Math.min(...t.map(e=>e.min)),s=Math.max(...t.map(e=>e.max)),r=t.reduce((e,t)=>e+(t.sum??0),0),n=r/i,o=t.reduce((e,t)=>e+(t.variance??0)*Math.max((t.count??0)-1,0),0),l=t.reduce((e,t)=>e+(t.count??0)*((t.avg??0)-n)**2,0),m=i>1?(o+l)/(i-1):0,u=Math.sqrt(m);return{min:a,max:s,avg:n,count:i,sum:r,variance:m,stddev:u}}async function f(t,i,a,r){const n=o(t.layer,l);if(!n)throw new e("time-series-summary-statistics:invalid-parameters","'layer' must be a feature-capable layer");await n.load(null!=t.signal?{signal:t.signal}:null);return c(await Promise.all(d(i,a,r).map(({sqlExpression:e})=>s({layer:n,sqlExpression:e,view:t.view,filter:t.filter,signal:t.signal}))))}function y(e,t,i){const a=e.dataSeriesInfos?.indexOf(t)??-1,s=t.title||`${t.name} ${a}`,r=i?.title;return r||(i?.type?`${s} ${i.type}`:s)}async function v(a){const r=t(a.layer);if(!r)throw new e("time-series-summary-statistics:invalid-parameters","'layer' must support dataSeriesInfos");const n=i(r,a.dataSeriesName);if(!n)throw new e("time-series-summary-statistics:invalid-parameters","'dataSeriesName' is not valid");if("time-series-fields"!==n.type)throw new e("time-series-summary-statistics:invalid-parameters","'dataSeriesName' has unsupported type");const o=p(n,a.dataSeriesCalculationName,"time-series-summary-statistics"),l=u(r,n);return o?.type?f(a,r,l,o.type):s({layer:a.layer,fields:l,view:a.view,filter:a.filter,signal:a.signal})}function w(s){if(!s.dataSeriesName||!s.layer){if(null!=s.dataSeriesCalculationName)throw new e("resolve-data-series-info:invalid-parameters","'dataSeriesCalculationName' requires a valid 'dataSeriesName' and 'layer'");return s}const r=t(s.layer);if(!r)throw new e("resolve-data-series-info:invalid-parameters","'layer' must support dataSeriesInfos");const n=i(r,s.dataSeriesName);if(!n)throw new e("resolve-data-series-info:invalid-parameters","'dataSeriesName' is not valid");if("time-series-fields"!==n.type)throw new e("resolve-data-series-info:invalid-parameters","'dataSeriesName' has unsupported type");const o=p(n,s.dataSeriesCalculationName,"resolve-data-series-info"),l=a(n,{calculationMethod:o?.type??void 0});return s.valueExpression=l,s.valueExpressionTitle=y(r,n,o),"field"in s&&(s.field=null),s}export{v as getTimeSeriesSummaryStatistics,w as resolveDataSeriesInfo};
|
|
@@ -182,6 +182,12 @@ export interface RendererParameters extends AbortOptions {
|
|
|
182
182
|
* precedence is `dataSeriesName` over `valueExpression` over `field`.
|
|
183
183
|
*/
|
|
184
184
|
dataSeriesName?: string | null;
|
|
185
|
+
/**
|
|
186
|
+
* Name of the calculation method to use in the data series configuration referenced by `dataSeriesName`.
|
|
187
|
+
*
|
|
188
|
+
* @since 5.2
|
|
189
|
+
*/
|
|
190
|
+
dataSeriesCalculationName?: string | null;
|
|
185
191
|
/**
|
|
186
192
|
* Provides options for setting a title to a field that will override the field
|
|
187
193
|
* alias defined in the service. This title will represent the field in the [Legend](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-legend/).
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{createUniqueColors as e}from"../../core/colorUtils.js";import i from"../../core/Error.js";import{clone as l}from"../../core/lang.js";import{fetchMessageBundle as n}from"../../intl/messages.js";import{isTimeOnlyField as r}from"../../layers/support/fieldUtils.js";import o from"../../renderers/PointCloudUniqueValueRenderer.js";import t from"../../renderers/UniqueValueRenderer.js";import s from"../../renderers/support/AuthoringInfo.js";import a from"../../renderers/support/RendererLegendOptions.js";import{createUniqueValueLabel as u,calculateDateFormatInterval as p,dateFormatIntervalOptions as m}from"../../renderers/support/utils.js";import d from"../../renderers/support/pointCloud/ColorUniqueValueInfo.js";import c from"../heuristics/outline.js";import f from"../heuristics/sizeRange.js";import{spliceVisualVariables as y,findOutlineVVIndex as v,findScaleDependentSizeVVIndex as b,processRegenerateParams as g,getRendererToUpdate as h,getStyleType as w,hasOutlineVV as T,hasScaleDependentSizeVV as E}from"./support/regenerateUtils.js";import{resolveDataSeriesInfo as z}from"./support/timeSeriesUtils.js";import{getPointSizeAlgorithm as x,errorCallback as I,getBasemapInfo as V,isValidPointSize as S,verifyBasicFieldValidity as j,getSymbolSizeFromScheme as M,getSymbolOutlineFromScheme as O,createSymbol as q}from"./support/utils.js";import U from"../statistics/uniqueValues.js";import{verifyBinningParams as C}from"../support/binningUtils.js";import{getFieldsList as B,fieldDelimiter as R,isAnyDateField as N}from"../support/utils.js";import{createLayerAdapter as P,getLayerTypeLabels as Z,binningCapableLayerTypes as F,featureCapableLayerTypes as A}from"../support/adapters/support/layerUtils.js";import{cloneScheme as D,getSchemes as k}from"../symbology/type.js";async function L(e){const n=z({...e});if(!n?.layer||!n.field&&!n.valueExpression)throw new i("type-renderer:missing-parameters","'layer' and 'field' or 'valueExpression' parameters are required");if(n.valueExpression&&!n.view)throw new i("type-renderer:missing-parameters","View is required when 'valueExpression' is specified");n.forBinning&&C(n,"type-renderer");const r={...n,layer:n.layer};r.symbolType=r.symbolType||"2d",r.defaultSymbolEnabled??=!0,r.sortBy??="count",r.sortEnabled??=!0,r.statistics=l(r.statistics);const o=null==r.numTypes?10:r.numTypes,t=n.forBinning?F:A,s=P(r.layer,t,n.forBinning);if(!s)throw new i("type-renderer:invalid-parameters","'layer' must be one of these types: "+Z(t).join(", "));const a=null!=r.signal?{signal:r.signal}:null;await s.load(a);const u=s.geometryType;r.outlineOptimizationEnabled="polygon"===u&&r.outlineOptimizationEnabled;const p="featureReduction"in n.layer&&"cluster"===n.layer.featureReduction?.type;if(r.sizeOptimizationEnabled=!("point"!==u&&"multipoint"!==u&&"polyline"!==u||p)&&r.sizeOptimizationEnabled,"mesh"===u)r.symbolType="3d-volumetric",r.colorMixMode=r.colorMixMode||"replace",r.edgesType=r.edgesType||"none";else{if("3d-volumetric-uniform"===r.symbolType&&"point"!==u)throw new i("type-renderer:not-supported","3d-volumetric-uniform symbols are supported for point layers only");if(r.symbolType.includes("3d-volumetric")&&"3d"!==r.view?.type)throw new i("type-renderer:invalid-parameters","'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or '3d-volumetric-uniform'")}const m=await B({field:r.field,field2:r.field2,field3:r.field3,valueExpression:r.valueExpression}),d=j(s,m,"type-renderer:invalid-parameters");if(d)throw d;return{...r,layer:s,numTypes:o}}async function $(e){const l="regenerate-type-renderer";await g(e,l);const n=await h(e),r=w(n);if(!r||!["type","type-size"].includes(r))throw new i(`${l}:invalid-parameters`,"Renderer is invalid");const{field:o,field2:t,field3:s,valueExpression:a,valueExpressionTitle:u}=n,p=n.uniqueValueInfos.length,{layer:m,forBinning:d,filter:c,view:f,signal:y}=e,v=n.authoringInfo?.dataSeriesName,b=T(n),z=E(n),x=await L({layer:m,field:o,field2:t,field3:s,valueExpression:a,valueExpressionTitle:u,numTypes:p,outlineOptimizationEnabled:b,sizeOptimizationEnabled:z,dataSeriesName:v,forBinning:d,filter:c,view:f,signal:y});return{...e,creatorParameters:x,renderer:n}}async function G(e){if(!e?.layer||!e.field)throw new i("type-point-cloud-class-renderer:missing-parameters","'layer' and 'field' parameters are required");const n={...e,layer:e.layer};n.statistics=l(n.statistics);const r=[10],o=P(n.layer,r);if(!o)throw new i("type-point-cloud-class-renderer:invalid-parameters","'layer' must be one of these types: "+Z(r).join(", "));if(n.layer=o,n.density=n.density||25,n.size=n.size||"100%",!S(n.size))throw new i("type-point-cloud-class-renderer:invalid-parameters","Invalid 'size' parameter. It should be a string of the form '100%'");const t=null!=n.signal?{signal:n.signal}:null;await o.load(t);const s=await B({field:n.field}),a=j(o,s,"type-point-cloud-class-renderer:invalid-parameters");if(a)throw a;return n}async function H(e){let i=e.typeScheme,l=null,n=null;const r=await V(e.basemap,e.view);if(l=null!=r.basemapId?r.basemapId:null,n=null!=r.basemapTheme?r.basemapTheme:null,i)return{scheme:D(i),basemapId:l,basemapTheme:n};const o=k({numColors:e.numColors,basemapTheme:n,geometryType:e.geometryType,theme:e.theme,worldScale:e.worldScale,view:e.view});return o&&(i=o.primaryScheme,l=o.basemapId,n=o.basemapTheme),{scheme:i,basemapId:l,basemapTheme:n}}function J(e,i){let l;return l=e.label<i.label?-1:e.label>i.label?1:0,l}function K(e,i){let l;return l=e.value<i.value?-1:e.value>i.value?1:0,l}function Q(e,i){let l=i.count-e.count;return 0===l&&(l=J(e,i)),l}function W(e,i){let l=i.count-e.count;return 0===l&&(l=K(e,i)),l}function X(e,i,l){let n;"count"===i?(n=W,l&&"codedValues"in l&&l.codedValues&&(n=Q)):"value"===i&&(n=K,l&&"codedValues"in l&&l.codedValues&&(n=J)),n&&e.sort(n)}async function Y(e,i,l,r){const o=await n("esri/smartMapping/t9n/smartMapping"),{field:p,field2:m,field3:d}=i,c=e.uniqueValueInfos,f=i.layer,y=p?f.getField(p):null,v=y?f.getFieldDomain(y.name):null,b=-1===i.numTypes?c.length:i.numTypes,g=f.geometryType,h=new t({field:p,field2:m,field3:d,fieldDelimiter:p&&m?R:null}),w=[],T=[],E={value:null,domain:v,fieldInfo:y};c.forEach((e,i)=>{E.value=e.value,e.label=u(E);const l=e.value;(null===l||"string"==typeof l&&l.toLowerCase().includes("<null>"))&&w.unshift(i)});for(const n of w)T.unshift(c.splice(n,1)[0]);!1!==i.sortEnabled&&X(c,i.sortBy,v),_(E,i,c);const z=l?.opacity,x=await H({numColors:c.length,basemap:i.basemap,geometryType:g,typeScheme:i.typeScheme,worldScale:!!i.symbolType?.includes("3d-volumetric"),view:i.view}),I=x.scheme,V=I.colors.map(e=>e.clone()),S=M(I,g),j=O(I,g,z);c.forEach((e,l)=>{E.value=e.value,e.label=u(E),e.symbol=q(g,{type:i.symbolType,color:V[l],size:S,outline:j,meshInfo:{colorMixMode:i.colorMixMode,edgesType:i.edgesType}})}),i.valueExpression&&(h.valueExpression=i.valueExpression,h.valueExpressionTitle=i.valueExpressionTitle),i.legendOptions&&(h.legendOptions=new a(i.legendOptions));for(let n=0;n<b;n++){const e=c[n];e&&h.addUniqueValueInfo({value:e.value,label:e.label,symbol:q(g,{type:i.symbolType,color:V[n].clone(),size:S,outline:j,meshInfo:{colorMixMode:i.colorMixMode,edgesType:i.edgesType}})})}i.defaultSymbolEnabled&&(h.defaultSymbol=q(g,{type:i.symbolType,color:I.noDataColor,size:S,outline:j,meshInfo:{colorMixMode:i.colorMixMode,edgesType:i.edgesType}}),h.defaultLabel=o.other);for(const n of T)n.symbol=q(g,{type:i.symbolType,color:I.noDataColor,size:S,outline:j,meshInfo:{colorMixMode:i.colorMixMode,edgesType:i.edgesType}}),c.push(n);const U=[],C=h.uniqueValueInfos?.length??0,B=C===c.length?-1:C;if(B>-1)for(let n=B;n<c.length;n++)U.push({...c[n]});return l?.visualVariables?.length&&(h.visualVariables=l.visualVariables.map(e=>e.clone())),r?.minSize&&(h.visualVariables?h.visualVariables.push(r.minSize):h.visualVariables=[r.minSize]),i.dataSeriesName&&(h.authoringInfo=new s({dataSeriesName:i.dataSeriesName})),{renderer:h,uniqueValueInfos:c,excludedUniqueValueInfos:U,typeScheme:D(I),basemapId:x.basemapId,basemapTheme:x.basemapTheme}}function _(e,i,l){const{field:n,numTypes:o,layer:t,view:s}=i,a=n?t.getField(n):null;if(a&&(N(a)||r(a))){const i=l.filter((e,i)=>i<o).map(e=>e.value),n=r(a)?null:p(i),u=n?m[n]:void 0;if(e.dateFormatOptions={fieldType:a.type,format:u},s){const i=t.layer;e.dateFormatOptions.timeZoneOptions={layerTimeZone:"preferredTimeZone"in i?i.preferredTimeZone:null,viewTimeZone:s.timeZone,datesInUnknownTimezone:"datesInUnknownTimezone"in i&&i.datesInUnknownTimezone}}}}async function ee(i,l){const n=i.uniqueValueInfos,r=await H({numColors:n.length,basemap:"gray",theme:"point-cloud-class",geometryType:"point",typeScheme:l}),o=r?.scheme,t="point-cloud-class"===o?.theme,s=t?o.colors:e(o?.colors??[],n.length);return X(n,"value"),n.map((e,i)=>{const l=e.value;let n=null;return t?(n=s[l],n||(n=s[s.length-1])):n=s[i],new d({values:[l],color:n,label:e.label})})}async function ie(e){const i=await L(e),{layer:l,view:n,signal:r,filter:o}=i,t={layer:l,field:i.field,field2:i.field2,field3:i.field3,valueExpression:i.valueExpression,returnAllCodedValues:i.returnAllCodedValues,view:n,filter:o,signal:r},[s,a,u]=await Promise.all([null!=i.statistics?i.statistics:U(t),i.outlineOptimizationEnabled?c({layer:l,view:n,signal:r,filter:o}).catch(I):null,i.sizeOptimizationEnabled?f({layer:l,view:n,signal:r,filter:o}).catch(I):null]);return Y(s,i,a,u)}async function le(e){const{creatorParameters:i,view:l,signal:n,filter:r,renderer:o}=await $(e),{layer:t,outlineOptimizationEnabled:s,sizeOptimizationEnabled:a,field:u,valueExpression:p,valueExpressionTitle:m}=i,[d,g]=await Promise.all([s?c({layer:t,view:l,signal:n,filter:r}).catch(I):null,a?f({layer:t,view:l,signal:n,filter:r}).catch(I):null]);return y(o,d?.visualVariables,v),y(o,g?.minSize,b),i.dataSeriesName&&(o.field=u,o.valueExpression=p,o.valueExpressionTitle=m),{renderer:o}}async function ne(e){const i=await G(e),l=null!=i.statistics?i.statistics:await U({layer:i.layer,field:i.field,signal:i.signal});return{renderer:new o({field:i.field,pointsPerInch:i.density??void 0,pointSizeAlgorithm:x(i.size),colorUniqueValueInfos:await ee(l,i.typeScheme)})}}export{ne as createPCClassRenderer,ie as createRenderer,H as getTypeSchemeData,le as regenerateRenderer};
|
|
2
|
+
import{createUniqueColors as e}from"../../core/colorUtils.js";import i from"../../core/Error.js";import{clone as l}from"../../core/lang.js";import{fetchMessageBundle as n}from"../../intl/messages.js";import{isTimeOnlyField as r}from"../../layers/support/fieldUtils.js";import a from"../../renderers/PointCloudUniqueValueRenderer.js";import o from"../../renderers/UniqueValueRenderer.js";import t from"../../renderers/support/AuthoringInfo.js";import s from"../../renderers/support/RendererLegendOptions.js";import{createUniqueValueLabel as u,calculateDateFormatInterval as p,dateFormatIntervalOptions as m}from"../../renderers/support/utils.js";import d from"../../renderers/support/pointCloud/ColorUniqueValueInfo.js";import c from"../heuristics/outline.js";import f from"../heuristics/sizeRange.js";import{spliceVisualVariables as y,findOutlineVVIndex as v,findScaleDependentSizeVVIndex as g,processRegenerateParams as h,getRendererToUpdate as b,getStyleType as w,hasOutlineVV as T,hasScaleDependentSizeVV as E}from"./support/regenerateUtils.js";import{resolveDataSeriesInfo as z}from"./support/timeSeriesUtils.js";import{getPointSizeAlgorithm as x,errorCallback as I,getBasemapInfo as S,isValidPointSize as V,verifyBasicFieldValidity as j,getSymbolSizeFromScheme as M,getSymbolOutlineFromScheme as O,createSymbol as C}from"./support/utils.js";import q from"../statistics/uniqueValues.js";import{verifyBinningParams as U}from"../support/binningUtils.js";import{getFieldsList as N,fieldDelimiter as B,isAnyDateField as R}from"../support/utils.js";import{createLayerAdapter as P,getLayerTypeLabels as Z,binningCapableLayerTypes as F,featureCapableLayerTypes as A}from"../support/adapters/support/layerUtils.js";import{cloneScheme as D,getSchemes as k}from"../symbology/type.js";async function L(e){const n=z({...e});if(!n?.layer||!n.field&&!n.valueExpression)throw new i("type-renderer:missing-parameters","'layer' and 'field' or 'valueExpression' parameters are required");if(n.valueExpression&&!n.view)throw new i("type-renderer:missing-parameters","View is required when 'valueExpression' is specified");n.forBinning&&U(n,"type-renderer");const r={...n,layer:n.layer};r.symbolType=r.symbolType||"2d",r.defaultSymbolEnabled??=!0,r.sortBy??="count",r.sortEnabled??=!0,r.statistics=l(r.statistics);const a=null==r.numTypes?10:r.numTypes,o=n.forBinning?F:A,t=P(r.layer,o,n.forBinning);if(!t)throw new i("type-renderer:invalid-parameters","'layer' must be one of these types: "+Z(o).join(", "));const s=null!=r.signal?{signal:r.signal}:null;await t.load(s);const u=t.geometryType;r.outlineOptimizationEnabled="polygon"===u&&r.outlineOptimizationEnabled;const p="featureReduction"in n.layer&&"cluster"===n.layer.featureReduction?.type;if(r.sizeOptimizationEnabled=!("point"!==u&&"multipoint"!==u&&"polyline"!==u||p)&&r.sizeOptimizationEnabled,"mesh"===u)r.symbolType="3d-volumetric",r.colorMixMode=r.colorMixMode||"replace",r.edgesType=r.edgesType||"none";else{if("3d-volumetric-uniform"===r.symbolType&&"point"!==u)throw new i("type-renderer:not-supported","3d-volumetric-uniform symbols are supported for point layers only");if(r.symbolType.includes("3d-volumetric")&&"3d"!==r.view?.type)throw new i("type-renderer:invalid-parameters","'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or '3d-volumetric-uniform'")}const m=await N({field:r.field,field2:r.field2,field3:r.field3,valueExpression:r.valueExpression}),d=j(t,m,"type-renderer:invalid-parameters");if(d)throw d;return{...r,layer:t,numTypes:a}}async function $(e){const l="regenerate-type-renderer";await h(e,l);const n=await b(e),r=w(n);if(!r||!["type","type-size"].includes(r))throw new i(`${l}:invalid-parameters`,"Renderer is invalid");const{field:a,field2:o,field3:t,valueExpression:s,valueExpressionTitle:u}=n,p=n.uniqueValueInfos.length,{layer:m,forBinning:d,filter:c,view:f,signal:y}=e,v=n.authoringInfo?.dataSeriesName,g=n.authoringInfo?.dataSeriesCalculationName,z=T(n),x=E(n),I=await L({layer:m,field:a,field2:o,field3:t,valueExpression:s,valueExpressionTitle:u,numTypes:p,outlineOptimizationEnabled:z,sizeOptimizationEnabled:x,dataSeriesName:v,dataSeriesCalculationName:g,forBinning:d,filter:c,view:f,signal:y});return{...e,creatorParameters:I,renderer:n}}async function G(e){if(!e?.layer||!e.field)throw new i("type-point-cloud-class-renderer:missing-parameters","'layer' and 'field' parameters are required");const n={...e,layer:e.layer};n.statistics=l(n.statistics);const r=[10],a=P(n.layer,r);if(!a)throw new i("type-point-cloud-class-renderer:invalid-parameters","'layer' must be one of these types: "+Z(r).join(", "));if(n.layer=a,n.density=n.density||25,n.size=n.size||"100%",!V(n.size))throw new i("type-point-cloud-class-renderer:invalid-parameters","Invalid 'size' parameter. It should be a string of the form '100%'");const o=null!=n.signal?{signal:n.signal}:null;await a.load(o);const t=await N({field:n.field}),s=j(a,t,"type-point-cloud-class-renderer:invalid-parameters");if(s)throw s;return n}async function H(e){let i=e.typeScheme,l=null,n=null;const r=await S(e.basemap,e.view);if(l=null!=r.basemapId?r.basemapId:null,n=null!=r.basemapTheme?r.basemapTheme:null,i)return{scheme:D(i),basemapId:l,basemapTheme:n};const a=k({numColors:e.numColors,basemapTheme:n,geometryType:e.geometryType,theme:e.theme,worldScale:e.worldScale,view:e.view});return a&&(i=a.primaryScheme,l=a.basemapId,n=a.basemapTheme),{scheme:i,basemapId:l,basemapTheme:n}}function J(e,i){let l;return l=e.label<i.label?-1:e.label>i.label?1:0,l}function K(e,i){let l;return l=e.value<i.value?-1:e.value>i.value?1:0,l}function Q(e,i){let l=i.count-e.count;return 0===l&&(l=J(e,i)),l}function W(e,i){let l=i.count-e.count;return 0===l&&(l=K(e,i)),l}function X(e,i,l){let n;"count"===i?(n=W,l&&"codedValues"in l&&l.codedValues&&(n=Q)):"value"===i&&(n=K,l&&"codedValues"in l&&l.codedValues&&(n=J)),n&&e.sort(n)}async function Y(e,i,l,r){const a=await n("esri/smartMapping/t9n/smartMapping"),{field:p,field2:m,field3:d}=i,c=e.uniqueValueInfos,f=i.layer,y=p?f.getField(p):null,v=y?f.getFieldDomain(y.name):null,g=-1===i.numTypes?c.length:i.numTypes,h=f.geometryType,b=new o({field:p,field2:m,field3:d,fieldDelimiter:p&&m?B:null}),w=[],T=[],E={value:null,domain:v,fieldInfo:y};c.forEach((e,i)=>{E.value=e.value,e.label=u(E);const l=e.value;(null===l||"string"==typeof l&&l.toLowerCase().includes("<null>"))&&w.unshift(i)});for(const n of w)T.unshift(c.splice(n,1)[0]);!1!==i.sortEnabled&&X(c,i.sortBy,v),_(E,i,c);const z=l?.opacity,x=await H({numColors:c.length,basemap:i.basemap,geometryType:h,typeScheme:i.typeScheme,worldScale:!!i.symbolType?.includes("3d-volumetric"),view:i.view}),I=x.scheme,S=I.colors.map(e=>e.clone()),V=M(I,h),j=O(I,h,z);c.forEach((e,l)=>{E.value=e.value,e.label=u(E),e.symbol=C(h,{type:i.symbolType,color:S[l],size:V,outline:j,meshInfo:{colorMixMode:i.colorMixMode,edgesType:i.edgesType}})}),i.valueExpression&&(b.valueExpression=i.valueExpression,b.valueExpressionTitle=i.valueExpressionTitle),i.legendOptions&&(b.legendOptions=new s(i.legendOptions));for(let n=0;n<g;n++){const e=c[n];e&&b.addUniqueValueInfo({value:e.value,label:e.label,symbol:C(h,{type:i.symbolType,color:S[n].clone(),size:V,outline:j,meshInfo:{colorMixMode:i.colorMixMode,edgesType:i.edgesType}})})}i.defaultSymbolEnabled&&(b.defaultSymbol=C(h,{type:i.symbolType,color:I.noDataColor,size:V,outline:j,meshInfo:{colorMixMode:i.colorMixMode,edgesType:i.edgesType}}),b.defaultLabel=a.other);for(const n of T)n.symbol=C(h,{type:i.symbolType,color:I.noDataColor,size:V,outline:j,meshInfo:{colorMixMode:i.colorMixMode,edgesType:i.edgesType}}),c.push(n);const q=[],U=b.uniqueValueInfos?.length??0,N=U===c.length?-1:U;if(N>-1)for(let n=N;n<c.length;n++)q.push({...c[n]});return l?.visualVariables?.length&&(b.visualVariables=l.visualVariables.map(e=>e.clone())),r?.minSize&&(b.visualVariables?b.visualVariables.push(r.minSize):b.visualVariables=[r.minSize]),i.dataSeriesName&&(b.authoringInfo=new t({dataSeriesName:i.dataSeriesName,dataSeriesCalculationName:i.dataSeriesCalculationName})),{renderer:b,uniqueValueInfos:c,excludedUniqueValueInfos:q,typeScheme:D(I),basemapId:x.basemapId,basemapTheme:x.basemapTheme}}function _(e,i,l){const{field:n,numTypes:a,layer:o,view:t}=i,s=n?o.getField(n):null;if(s&&(R(s)||r(s))){const i=l.filter((e,i)=>i<a).map(e=>e.value),n=r(s)?null:p(i),u=n?m[n]:void 0;if(e.dateFormatOptions={fieldType:s.type,format:u},t){const i=o.layer;e.dateFormatOptions.timeZoneOptions={layerTimeZone:"preferredTimeZone"in i?i.preferredTimeZone:null,viewTimeZone:t.timeZone,datesInUnknownTimezone:"datesInUnknownTimezone"in i&&i.datesInUnknownTimezone}}}}async function ee(i,l){const n=i.uniqueValueInfos,r=await H({numColors:n.length,basemap:"gray",theme:"point-cloud-class",geometryType:"point",typeScheme:l}),a=r?.scheme,o="point-cloud-class"===a?.theme,t=o?a.colors:e(a?.colors??[],n.length);return X(n,"value"),n.map((e,i)=>{const l=e.value;let n=null;return o?(n=t[l],n||(n=t[t.length-1])):n=t[i],new d({values:[l],color:n,label:e.label})})}async function ie(e){const i=await L(e),{layer:l,view:n,signal:r,filter:a}=i,o={layer:l,field:i.field,field2:i.field2,field3:i.field3,valueExpression:i.valueExpression,returnAllCodedValues:i.returnAllCodedValues,view:n,filter:a,signal:r},[t,s,u]=await Promise.all([null!=i.statistics?i.statistics:q(o),i.outlineOptimizationEnabled?c({layer:l,view:n,signal:r,filter:a}).catch(I):null,i.sizeOptimizationEnabled?f({layer:l,view:n,signal:r,filter:a}).catch(I):null]);return Y(t,i,s,u)}async function le(e){const{creatorParameters:i,view:l,signal:n,filter:r,renderer:a}=await $(e),{layer:o,outlineOptimizationEnabled:t,sizeOptimizationEnabled:s,field:u,valueExpression:p,valueExpressionTitle:m}=i,[d,h]=await Promise.all([t?c({layer:o,view:l,signal:n,filter:r}).catch(I):null,s?f({layer:o,view:l,signal:n,filter:r}).catch(I):null]);return y(a,d?.visualVariables,v),y(a,h?.minSize,g),i.dataSeriesName&&(a.field=u,a.valueExpression=p,a.valueExpressionTitle=m),{renderer:a}}async function ne(e){const i=await G(e),l=null!=i.statistics?i.statistics:await q({layer:i.layer,field:i.field,signal:i.signal});return{renderer:new a({field:i.field,pointsPerInch:i.density??void 0,pointSizeAlgorithm:x(i.size),colorUniqueValueInfos:await ee(l,i.typeScheme)})}}export{ne as createPCClassRenderer,ie as createRenderer,H as getTypeSchemeData,le as regenerateRenderer};
|
|
@@ -228,6 +228,12 @@ export interface VisualVariablesParamsBase extends AbortOptions {
|
|
|
228
228
|
* precedence is `dataSeriesName` over `valueExpression` over `field`.
|
|
229
229
|
*/
|
|
230
230
|
dataSeriesName?: string | null;
|
|
231
|
+
/**
|
|
232
|
+
* Name of the calculation method to use in the data series configuration referenced by `dataSeriesName`.
|
|
233
|
+
*
|
|
234
|
+
* @since 5.2
|
|
235
|
+
*/
|
|
236
|
+
dataSeriesCalculationName?: string | null;
|
|
231
237
|
/**
|
|
232
238
|
* A SQL expression evaluating to a number. When provided, statistics are
|
|
233
239
|
* queried from the server for the entire layer. Only use this parameter when generating a renderer based on
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import e from"../../core/Error.js";import i from"../../renderers/support/AuthoringInfo.js";import a from"../../renderers/support/ClassBreakInfo.js";import s from"../../renderers/visualVariables/support/SizeStop.js";import{getSize as o}from"../../renderers/visualVariables/support/visualVariableUtils.js";import{createVisualVariable as n}from"./color.js";import{createContinuousRenderer as l,createVisualVariables as t,regenerateContinuousRenderer as r}from"./size.js";import{isColorVV as u,updateAuthoringInfoVisualVariable as p,spliceVisualVariables as m,findSizeVVIndex as c,getAuthoringInfoVisualVariable as v,processRegenerateParams as d,getRendererToUpdate as f,getStyleType as b,hasOutlineVV as y,hasScaleDependentSizeVV as w}from"./support/regenerateUtils.js";import{resolveDataSeriesInfo as h}from"./support/timeSeriesUtils.js";import{verifyBasicFieldValidity as z,createStopValuesForAboveBelow as g,clampAboveAndBelowStopValues as V,createDefaultStopValues as x}from"./support/utils.js";import{verifyBinningParams as E}from"../support/binningUtils.js";import{isAnyDateField as O,getFieldsList as S}from"../support/utils.js";import{binningCapableLayerTypes as T,featureCapableLayerTypes as I,createLayerAdapter as j,getLayerTypeLabels as B}from"../support/adapters/support/layerUtils.js";import{getAboveAndBelowSymbols as U}from"../symbology/support/aboveAndBelowUtils.js";import{applyCIMSymbolColor as q}from"../../symbols/support/cimSymbolUtils.js";import D from"../../symbols/support/Symbol3DMaterial.js";const C=2**53-1;async function F(i){const a=h({...i});if(!a?.layer||!(a.field||a.valueExpression||a.sqlExpression))throw new e("univariate-colorsize-visual-variables:missing-parameters","'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required");if(a.valueExpression&&!a.sqlExpression&&!a.view)throw new e("univariate-colorsize-visual-variables:missing-parameters","View is required when 'valueExpression' is specified");if("above-and-below"===a.theme&&a.sizeOptions?.sizeOptimizationEnabled)throw new e("univariate-colorsize-visual-variables:invalid-parameters","sizeOptimizationEnabled cannot be true for 'above-and-below' theme");a.forBinning&&E(a,"univariate-colorsize-visual-variables");const s={...a,layer:a.layer},o=a.forBinning?T:I,n=j(s.layer,o,a.forBinning);if(!n)throw new e("univariate-colorsize-visual-variables:invalid-parameters","'layer' must be one of these types: "+B(o).join(", "));s.layer=n,s.theme=s.theme||s.colorOptions?.theme?s.theme:"high-to-low";const l=null!=s.signal?{signal:s.signal}:null;await n.load(l);const t=await S({field:s.field,normalizationField:s.normalizationField,valueExpression:s.valueExpression}),r=z(n,t,"univariate-colorsize-visual-variables:invalid-parameters");if(r)throw r;return s}function k(e,i){const a={...e},{sizeOptions:s,theme:o}=a,n=a.legendOptions||a.sizeOptions?.legendOptions;return delete a.sizeOptions,delete a.colorOptions,{...a,...s,statistics:i||a.statistics,theme:"above-and-below"===o?null:o,legendOptions:n}}function N(e,i){const a={...e},s=a.colorOptions,o=a.theme||s?.theme,n=a.legendOptions||a.colorOptions?.legendOptions;return delete a.sizeOptions,delete a.colorOptions,{...a,...s,statistics:i||a.statistics,theme:o,legendOptions:n}}async function A(i){const a=h({...i});if(!a?.layer||!(a.field||a.valueExpression||a.sqlExpression))throw new e("univariate-colorsize-continuous-renderer:missing-parameters","'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required");if(a.valueExpression&&!a.sqlExpression&&!a.view)throw new e("univariate-colorsize-continuous-renderer:missing-parameters","View is required when 'valueExpression' is specified");a.forBinning&&E(a,"univariate-colorsize-continuous-renderer");const s={...a,layer:a.layer};s.symbolType=s.symbolType||"2d",s.colorOptions||(s.colorOptions={}),s.colorOptions.isContinuous=s.colorOptions.isContinuous??!1;const o=a.forBinning?T:I,n=j(s.layer,o,a.forBinning);if(!n)throw new e("univariate-colorsize-continuous-renderer:invalid-parameters","'layer' must be one of these types: "+B(o).join(", "));const l=null!=s.signal?{signal:s.signal}:null;if(await n.load(l),"above-and-below"===s.theme&&s.symbolOptions){if(s.symbolType.includes("3d-volumetric"))throw new e("univariate-colorsize-continuous-renderer:invalid-parameters","'symbolOptions' is applicable for '2d' and '3d-flat' 'symbolType' only");if("point"!==n.geometryType&&"polygon"!==n.geometryType)throw new e("univariate-colorsize-continuous-renderer:invalid-parameters","'symbolOptions' only apply to layers with 'point' or 'polygon' geometryType")}const t=await S({field:s.field,normalizationField:s.normalizationField,valueExpression:s.valueExpression}),r=z(n,t,"univariate-colorsize-continuous-renderer:invalid-parameters");if(r)throw r;return{...s,layer:n}}function M(e){const i={...e},a={...i.sizeOptions};return delete i.sizeOptions,delete i.colorOptions,delete a.sizeOptimizationEnabled,{...i,...a}}async function P(i){const a="regenerate-univariate-color-size-renderer";await d(i,a);const s=await f(i);if("univariate-color-size"!==b(s))throw new e(`${a}:invalid-parameters`,"Renderer is invalid");const{layer:o,forBinning:n,filter:l,view:t,signal:r}=i,u=v(s,"color")?.dataSeriesName??v(s,"size")?.dataSeriesName,{field:p,normalizationField:m,valueExpression:c,valueExpressionTitle:h}=s,z=y(s),g=w(s),V=s.authoringInfo?.univariateTheme,x=await A({layer:o,field:p,normalizationField:m,valueExpression:c,valueExpressionTitle:h,outlineOptimizationEnabled:z,theme:V,colorOptions:{isContinuous:"above-and-below"===V?s.visualVariables?.some(e=>"color"===e.type):void 0},sizeOptions:{sizeOptimizationEnabled:g},dataSeriesName:u,forBinning:n,filter:l,view:t,signal:r});return{...i,creatorParameters:x,renderer:s}}function R(e,i){if("type"in e&&"cim"===e.type)q(e,i);else if("type"in e&&e.type.includes("3d")){e.symbolLayers.forEach(e=>{"material"in e&&null!=e.material&&"color"in e.material&&(e.material?e.material.color=i:e.material=new D({color:i}))})}else"color"in e&&(e.color=i)}function L(e,i,a){if((i?.symbolStyle||i?.symbols)&&("point"===a||"polygon"===a))return i.symbols||U(i.symbolStyle);const s=e.classBreakInfos[0].symbol;return{above:s.clone(),below:s.clone()}}function $(e,i,s){const o=s.symbolOptions,n=s.layer,l=o?.symbols?"custom":o?.symbolStyle,t=s.colorOptions?.isContinuous;if(G(e,i,t),l||!t){const s=i.size.visualVariables[0].stops,{above:r,below:u}=L(e,o,n.geometryType);if(!t){const e=i.color.colorScheme.colors,a=e[0];R(r,e[e.length-1]),R(u,a)}e.classBreakInfos=[new a({minValue:-C,maxValue:s[2].value,symbol:u}),new a({minValue:s[2].value,maxValue:C,symbol:r})],l&&e.authoringInfo&&(e.authoringInfo.univariateSymbolStyle=l)}}function G(e,i,a=!0){const s=i?.authoringInfo?.clone(),o=s?.visualVariables?.some(e=>"reference-size"===e.theme),n=o?[]:i.size.visualVariables.map(e=>e.clone());a?n.push(i.color.visualVariable.clone()):s.visualVariables=s.visualVariables?.filter(e=>"size"===e.type),e.visualVariables&&n.push(...e.visualVariables.filter(e=>"target"in e&&"outline"===e.target).map(e=>e.clone())),e.authoringInfo=s,e.visualVariables=n}function H(e){const i={...e},a=i.symbolType,s=!!a?.includes("3d-volumetric");delete i.symbolType,delete i.defaultSymbolEnabled;const o=i;return o.worldScale=s,s&&(o.sizeOptions={...o.sizeOptions},o.sizeOptions.axis="3d-volumetric-uniform"===a?"all":"height"),o}async function J(e,i,a,n){const l=i[0],t=i[1],r=Math.round((t-l)/2)+l,u=e.clone();u.stops=[new s({value:a[0],size:t}),new s({value:a[1],size:r}),new s({value:a[2],size:l}),new s({value:a[3],size:r}),new s({value:a[4],size:t})],e.stops=[new s({value:n[0],size:o(u,n[0])}),new s({value:n[1],size:o(u,n[1])}),new s({value:n[2],size:o(u,n[2])}),new s({value:n[3],size:o(u,n[3])}),new s({value:n[4],size:o(u,n[4])})]}async function K(e,i,a,s,o){const n=e.find(e=>"width-and-depth"!==e.axis&&!e.target),l="number"==typeof n?.minSize?n?.minSize:null,t="number"==typeof n?.maxSize?n?.maxSize:null;if(null!=n?.minDataValue&&null!=l&&null!=t)if(s)if("above-and-below"===s){n.minDataValue=null,n.maxDataValue=null,n.minSize=null,n.maxSize=null;const e=g(a,o),s=V(e,a);await J(n,[l,t],e,s),i.stops.forEach((e,i)=>e.value=s[i])}else{const{minDataValue:e,maxDataValue:a}=n,s=x(e,a,5);i.stops.forEach((e,i)=>e.value=s[i]),n.minDataValue=s[0],n.maxDataValue=s[s.length-1]}else n.minDataValue=i.stops[0].value,n.maxDataValue=i.stops[i.stops.length-1].value}function Q(e,a,s){const{theme:o,minValue:n,maxValue:l}=e,t=a.authoringInfo.visualVariables[0].clone(),r=s.authoringInfo.visualVariables[0].clone(),{stops:u}=a.visualVariable;return"above-and-below"===o?(t.minSliderValue=r.minSliderValue=n??u[0].value,t.maxSliderValue=r.maxSliderValue=l??u.at(-1)?.value,r.theme="above-and-below"):o&&"high-to-low"!==o||"reference-size"!==r.theme||2!==r.sizeStops?.length||(r.sizeStops[0].value=u[0].value,r.sizeStops[1].value=u.at(-1)?.value),new i({type:"univariate-color-size",univariateTheme:o,visualVariables:[t,r]})}async function W(e){const i=await F(e),a=await n(N(i)),{visualVariable:s,statistics:o}=a,l=await t(k(i,o)),r=l.visualVariables,u=e.layer,p=e.field?u.getField(e.field):null;return await K(r,s,o,i.theme,O(p)),{basemapId:l.basemapId,basemapTheme:l.basemapTheme,statistics:o,defaultValuesUsed:a.defaultValuesUsed,color:{visualVariable:s,colorScheme:a.colorScheme},size:{visualVariables:r,sizeScheme:l.sizeScheme},authoringInfo:Q(i,a,l)}}async function X(e){return Y(e)}async function Y(e){const i=await A(e),{renderer:a,statistics:s,defaultValuesUsed:o}=await l(M(i)),n=H(i);n.statistics=s;const t=await W(n);return"above-and-below"===i.theme?$(a,t,i):G(a,t),{renderer:a,statistics:s,defaultValuesUsed:o,color:i.colorOptions?.isContinuous||"above-and-below"!==i.theme?t.color:null,size:t.size,basemapId:t.basemapId,basemapTheme:t.basemapTheme}}async function Z(e){const{creatorParameters:i}=await P(e),{layer:a,field:s,theme:o,colorOptions:l,valueExpression:d,valueExpressionTitle:f}=i,{renderer:b,statistics:y}=await r(e),w=await F({...H(i),statistics:y}),h=await n(N(w)),z=h.visualVariable,g=(await t(k(w))).visualVariables,V=s?a.getField(s):null;await K(g,z,y,o,O(V));const x=l?.isContinuous||"above-and-below"!==o,E=b.visualVariables?.find(u);b.valueExpression=d??null,b.valueExpressionTitle=f??null,x&&E?.stops&&(E.stops.forEach((e,i)=>e.value=z.stops[i].value),E.valueExpression=z.valueExpression??null,E.valueExpressionTitle=z.valueExpressionTitle??null,p(b,h.authoringInfo,"color")),m(b,g,c);const S=v(b,"size");if((!o||"high-to-low"===o)&&"reference-size"===S?.theme&&2===S.sizeStops?.length){const{stops:e}=z;S.sizeStops[0].value=e[0].value,S.sizeStops[1].value=e.at(-1)?.value}if("above-and-below"===o&&g[0]?.stops){const e=g[0].stops;b.classBreakInfos[0].maxValue=e[2].value,b.classBreakInfos[1].minValue=e[2].value}return{renderer:b}}export{X as createContinuousRenderer,Y as createRenderer,W as createVisualVariables,Z as regenerateRenderer};
|
|
2
|
+
import e from"../../core/Error.js";import i from"../../renderers/support/AuthoringInfo.js";import a from"../../renderers/support/ClassBreakInfo.js";import s from"../../renderers/visualVariables/support/SizeStop.js";import{getSize as o}from"../../renderers/visualVariables/support/visualVariableUtils.js";import{createVisualVariable as l}from"./color.js";import{createContinuousRenderer as n,createVisualVariables as t,regenerateContinuousRenderer as r}from"./size.js";import{isColorVV as u,updateAuthoringInfoVisualVariable as p,spliceVisualVariables as m,findSizeVVIndex as c,getAuthoringInfoVisualVariable as v,processRegenerateParams as d,getRendererToUpdate as f,getStyleType as b,hasOutlineVV as y,hasScaleDependentSizeVV as w}from"./support/regenerateUtils.js";import{resolveDataSeriesInfo as h}from"./support/timeSeriesUtils.js";import{verifyBasicFieldValidity as z,createStopValuesForAboveBelow as g,clampAboveAndBelowStopValues as V,createDefaultStopValues as x}from"./support/utils.js";import{verifyBinningParams as E}from"../support/binningUtils.js";import{isAnyDateField as O,getFieldsList as S}from"../support/utils.js";import{binningCapableLayerTypes as T,featureCapableLayerTypes as I,createLayerAdapter as j,getLayerTypeLabels as B}from"../support/adapters/support/layerUtils.js";import{getAboveAndBelowSymbols as C}from"../symbology/support/aboveAndBelowUtils.js";import{applyCIMSymbolColor as U}from"../../symbols/support/cimSymbolUtils.js";import q from"../../symbols/support/Symbol3DMaterial.js";const D=2**53-1;async function F(i){const a=h({...i});if(!a?.layer||!(a.field||a.valueExpression||a.sqlExpression))throw new e("univariate-colorsize-visual-variables:missing-parameters","'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required");if(a.valueExpression&&!a.sqlExpression&&!a.view)throw new e("univariate-colorsize-visual-variables:missing-parameters","View is required when 'valueExpression' is specified");if("above-and-below"===a.theme&&a.sizeOptions?.sizeOptimizationEnabled)throw new e("univariate-colorsize-visual-variables:invalid-parameters","sizeOptimizationEnabled cannot be true for 'above-and-below' theme");a.forBinning&&E(a,"univariate-colorsize-visual-variables");const s={...a,layer:a.layer},o=a.forBinning?T:I,l=j(s.layer,o,a.forBinning);if(!l)throw new e("univariate-colorsize-visual-variables:invalid-parameters","'layer' must be one of these types: "+B(o).join(", "));s.layer=l,s.theme=s.theme||s.colorOptions?.theme?s.theme:"high-to-low";const n=null!=s.signal?{signal:s.signal}:null;await l.load(n);const t=await S({field:s.field,normalizationField:s.normalizationField,valueExpression:s.valueExpression}),r=z(l,t,"univariate-colorsize-visual-variables:invalid-parameters");if(r)throw r;return s}function N(e,i){const a={...e},{sizeOptions:s,theme:o}=a,l=a.legendOptions||a.sizeOptions?.legendOptions;return delete a.sizeOptions,delete a.colorOptions,{...a,...s,statistics:i||a.statistics,theme:"above-and-below"===o?null:o,legendOptions:l}}function k(e,i){const a={...e},s=a.colorOptions,o=a.theme||s?.theme,l=a.legendOptions||a.colorOptions?.legendOptions;return delete a.sizeOptions,delete a.colorOptions,{...a,...s,statistics:i||a.statistics,theme:o,legendOptions:l}}async function A(i){const a=h({...i});if(!a?.layer||!(a.field||a.valueExpression||a.sqlExpression))throw new e("univariate-colorsize-continuous-renderer:missing-parameters","'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required");if(a.valueExpression&&!a.sqlExpression&&!a.view)throw new e("univariate-colorsize-continuous-renderer:missing-parameters","View is required when 'valueExpression' is specified");a.forBinning&&E(a,"univariate-colorsize-continuous-renderer");const s={...a,layer:a.layer};s.symbolType=s.symbolType||"2d",s.colorOptions||(s.colorOptions={}),s.colorOptions.isContinuous=s.colorOptions.isContinuous??!1;const o=a.forBinning?T:I,l=j(s.layer,o,a.forBinning);if(!l)throw new e("univariate-colorsize-continuous-renderer:invalid-parameters","'layer' must be one of these types: "+B(o).join(", "));const n=null!=s.signal?{signal:s.signal}:null;if(await l.load(n),"above-and-below"===s.theme&&s.symbolOptions){if(s.symbolType.includes("3d-volumetric"))throw new e("univariate-colorsize-continuous-renderer:invalid-parameters","'symbolOptions' is applicable for '2d' and '3d-flat' 'symbolType' only");if("point"!==l.geometryType&&"polygon"!==l.geometryType)throw new e("univariate-colorsize-continuous-renderer:invalid-parameters","'symbolOptions' only apply to layers with 'point' or 'polygon' geometryType")}const t=await S({field:s.field,normalizationField:s.normalizationField,valueExpression:s.valueExpression}),r=z(l,t,"univariate-colorsize-continuous-renderer:invalid-parameters");if(r)throw r;return{...s,layer:l}}function M(e){const i={...e},a={...i.sizeOptions};return delete i.sizeOptions,delete i.colorOptions,delete a.sizeOptimizationEnabled,{...i,...a}}async function P(i){const a="regenerate-univariate-color-size-renderer";await d(i,a);const s=await f(i);if("univariate-color-size"!==b(s))throw new e(`${a}:invalid-parameters`,"Renderer is invalid");const{layer:o,forBinning:l,filter:n,view:t,signal:r}=i,u=v(s,"color")?.dataSeriesName??v(s,"size")?.dataSeriesName,p=v(s,"color")?.dataSeriesCalculationName??v(s,"size")?.dataSeriesCalculationName,{field:m,normalizationField:c,valueExpression:h,valueExpressionTitle:z}=s,g=y(s),V=w(s),x=s.authoringInfo?.univariateTheme,E=await A({layer:o,field:m,normalizationField:c,valueExpression:h,valueExpressionTitle:z,outlineOptimizationEnabled:g,theme:x,colorOptions:{isContinuous:"above-and-below"===x?s.visualVariables?.some(e=>"color"===e.type):void 0},sizeOptions:{sizeOptimizationEnabled:V},dataSeriesName:u,dataSeriesCalculationName:p,forBinning:l,filter:n,view:t,signal:r});return{...i,creatorParameters:E,renderer:s}}function R(e,i){if("type"in e&&"cim"===e.type)U(e,i);else if("type"in e&&e.type.includes("3d")){e.symbolLayers.forEach(e=>{"material"in e&&null!=e.material&&"color"in e.material&&(e.material?e.material.color=i:e.material=new q({color:i}))})}else"color"in e&&(e.color=i)}function L(e,i,a){if((i?.symbolStyle||i?.symbols)&&("point"===a||"polygon"===a))return i.symbols||C(i.symbolStyle);const s=e.classBreakInfos[0].symbol;return{above:s.clone(),below:s.clone()}}function $(e,i,s){const o=s.symbolOptions,l=s.layer,n=o?.symbols?"custom":o?.symbolStyle,t=s.colorOptions?.isContinuous;if(G(e,i,t),n||!t){const s=i.size.visualVariables[0].stops,{above:r,below:u}=L(e,o,l.geometryType);if(!t){const e=i.color.colorScheme.colors,a=e[0];R(r,e[e.length-1]),R(u,a)}e.classBreakInfos=[new a({minValue:-D,maxValue:s[2].value,symbol:u}),new a({minValue:s[2].value,maxValue:D,symbol:r})],n&&e.authoringInfo&&(e.authoringInfo.univariateSymbolStyle=n)}}function G(e,i,a=!0){const s=i?.authoringInfo?.clone(),o=s?.visualVariables?.some(e=>"reference-size"===e.theme),l=o?[]:i.size.visualVariables.map(e=>e.clone());a?l.push(i.color.visualVariable.clone()):s.visualVariables=s.visualVariables?.filter(e=>"size"===e.type),e.visualVariables&&l.push(...e.visualVariables.filter(e=>"target"in e&&"outline"===e.target).map(e=>e.clone())),e.authoringInfo=s,e.visualVariables=l}function H(e){const i={...e},a=i.symbolType,s=!!a?.includes("3d-volumetric");delete i.symbolType,delete i.defaultSymbolEnabled;const o=i;return o.worldScale=s,s&&(o.sizeOptions={...o.sizeOptions},o.sizeOptions.axis="3d-volumetric-uniform"===a?"all":"height"),o}async function J(e,i,a,l){const n=i[0],t=i[1],r=Math.round((t-n)/2)+n,u=e.clone();u.stops=[new s({value:a[0],size:t}),new s({value:a[1],size:r}),new s({value:a[2],size:n}),new s({value:a[3],size:r}),new s({value:a[4],size:t})],e.stops=[new s({value:l[0],size:o(u,l[0])}),new s({value:l[1],size:o(u,l[1])}),new s({value:l[2],size:o(u,l[2])}),new s({value:l[3],size:o(u,l[3])}),new s({value:l[4],size:o(u,l[4])})]}async function K(e,i,a,s,o){const l=e.find(e=>"width-and-depth"!==e.axis&&!e.target),n="number"==typeof l?.minSize?l?.minSize:null,t="number"==typeof l?.maxSize?l?.maxSize:null;if(null!=l?.minDataValue&&null!=n&&null!=t)if(s)if("above-and-below"===s){l.minDataValue=null,l.maxDataValue=null,l.minSize=null,l.maxSize=null;const e=g(a,o),s=V(e,a);await J(l,[n,t],e,s),i.stops.forEach((e,i)=>e.value=s[i])}else{const{minDataValue:e,maxDataValue:a}=l,s=x(e,a,5);i.stops.forEach((e,i)=>e.value=s[i]),l.minDataValue=s[0],l.maxDataValue=s[s.length-1]}else l.minDataValue=i.stops[0].value,l.maxDataValue=i.stops[i.stops.length-1].value}function Q(e,a,s){const{theme:o,minValue:l,maxValue:n}=e,t=a.authoringInfo.visualVariables[0].clone(),r=s.authoringInfo.visualVariables[0].clone(),{stops:u}=a.visualVariable;return"above-and-below"===o?(t.minSliderValue=r.minSliderValue=l??u[0].value,t.maxSliderValue=r.maxSliderValue=n??u.at(-1)?.value,r.theme="above-and-below"):o&&"high-to-low"!==o||"reference-size"!==r.theme||2!==r.sizeStops?.length||(r.sizeStops[0].value=u[0].value,r.sizeStops[1].value=u.at(-1)?.value),new i({type:"univariate-color-size",univariateTheme:o,visualVariables:[t,r]})}async function W(e){const i=await F(e),a=await l(k(i)),{visualVariable:s,statistics:o}=a,n=await t(N(i,o)),r=n.visualVariables,u=e.layer,p=e.field?u.getField(e.field):null;return await K(r,s,o,i.theme,O(p)),{basemapId:n.basemapId,basemapTheme:n.basemapTheme,statistics:o,defaultValuesUsed:a.defaultValuesUsed,color:{visualVariable:s,colorScheme:a.colorScheme},size:{visualVariables:r,sizeScheme:n.sizeScheme},authoringInfo:Q(i,a,n)}}async function X(e){return Y(e)}async function Y(e){const i=await A(e),{renderer:a,statistics:s,defaultValuesUsed:o}=await n(M(i)),l=H(i);l.statistics=s;const t=await W(l);return"above-and-below"===i.theme?$(a,t,i):G(a,t),{renderer:a,statistics:s,defaultValuesUsed:o,color:i.colorOptions?.isContinuous||"above-and-below"!==i.theme?t.color:null,size:t.size,basemapId:t.basemapId,basemapTheme:t.basemapTheme}}async function Z(e){const{creatorParameters:i}=await P(e),{layer:a,field:s,theme:o,colorOptions:n,valueExpression:d,valueExpressionTitle:f}=i,{renderer:b,statistics:y}=await r(e),w=await F({...H(i),statistics:y}),h=await l(k(w)),z=h.visualVariable,g=(await t(N(w))).visualVariables,V=s?a.getField(s):null;await K(g,z,y,o,O(V));const x=n?.isContinuous||"above-and-below"!==o,E=b.visualVariables?.find(u);b.valueExpression=d??null,b.valueExpressionTitle=f??null,x&&E?.stops&&(E.stops.forEach((e,i)=>e.value=z.stops[i].value),E.valueExpression=z.valueExpression??null,E.valueExpressionTitle=z.valueExpressionTitle??null,p(b,h.authoringInfo,"color")),m(b,g,c);const S=v(b,"size");if((!o||"high-to-low"===o)&&"reference-size"===S?.theme&&2===S.sizeStops?.length){const{stops:e}=z;S.sizeStops[0].value=e[0].value,S.sizeStops[1].value=e.at(-1)?.value}if("above-and-below"===o&&g[0]?.stops){const e=g[0].stops;b.classBreakInfos[0].maxValue=e[2].value,b.classBreakInfos[1].minValue=e[2].value}return{renderer:b}}export{X as createContinuousRenderer,Y as createRenderer,W as createVisualVariables,Z as regenerateRenderer};
|
package/support/revision.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
const
|
|
2
|
+
const e="20260929",c="7012c974759d1222c40beaeef038078e481a19db";export{e as buildDate,c as revision};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{getAssetUrl as t}from"../../assets.js";import e from"../../Color.js";import o from"../../request.js";import{LRUCache as
|
|
2
|
+
import{getAssetUrl as t}from"../../assets.js";import e from"../../Color.js";import o from"../../request.js";import{LRUCache as r}from"../../core/LRUCache.js";import{pt2px as s}from"../../core/screenUtils.js";import{getCIMSymbolColor as n}from"./cimSymbolUtils.js";const i="picture-fill",l="simple-fill",a="simple-line",c="simple-marker",h="text",d="cim",m=new Map([["dash",[4,3]],["dashdot",[4,3,1,3]],["dot",[1,3]],["longdash",[8,3]],["longdashdot",[8,3,1,3]],["longdashdotdot",[8,3,1,3,1,3]],["shortdash",[4,1]],["shortdashdot",[4,1,1,1]],["shortdashdotdot",[4,1,1,1,1,1]],["shortdot",[1,1]],["solid",[]]]),p=new r(1e3);function u(e){const o=e.style;let r=null;if(e)switch(e.type){case c:"cross"!==o&&"x"!==o&&(r=e.color);break;case l:o&&"solid"!==o?"none"!==o&&(r={type:"pattern",x:0,y:0,src:t(`esri/symbols/patterns/${o}.png`),width:5,height:5}):r=e.color;break;case i:r={type:"pattern",src:e.url,width:s(e.width)*e.xscale,height:s(e.height)*e.yscale,x:s(e.xoffset),y:s(e.yoffset)};break;case h:r=e.color;break;case d:r=n(e)}return r}function f(t,e){const r=t+"-"+e,s=p.get(r);return null!=s?Promise.resolve(s):o(t,{responseType:"image"}).then(t=>{const o=t.data,s=o.naturalWidth,n=o.naturalHeight,i=document.createElement("canvas");i.width=s,i.height=n;const l=i.getContext("2d");l.fillStyle=e,l.fillRect(0,0,s,n),l.globalCompositeOperation="destination-in",l.drawImage(o,0,0);const a=i.toDataURL();return p.put(r,a),a})}function y(t){if(!t)return null;let e=null;switch(t.type){case l:case i:case c:e=y(t.outline);break;case a:{const o=s(t.width);null!=t.style&&"none"!==t.style&&0!==o&&(e={color:t.color,style:b(t.style),width:o,cap:t.cap,join:"miter"===t.join?s(t.miterLimit):t.join},e.dashArray=g(e).join(",")||"none");break}default:e=null}return e}function g(t){if(!t?.style)return[];const{dashArray:e,style:o}=t;return"string"==typeof e&&"none"!==e?e.split(",").map(t=>Number(t)):w(m.get(o)??[],t)}function w(t,e){const o=e.width??0,r=t.map(t=>t*o);if("butt"!==e.cap)for(const[s,n]of r.entries())r[s]=s%2==1?n+o:Math.max(n-o,1);return r}const b=(()=>{const t={};return e=>{if(t[e])return t[e];const o=e.replaceAll("-","");return t[e]=o,o}})(),j=new e([128,128,128]);export{j as defaultThematicColor,b as dekebabifyLineStyle,g as getDashArray,u as getFill,f as getPatternUrlWithColor,y as getStroke,w as scaleDashArrayForStroke};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{getAssetUrl as e}from"../../assets.js";import{toHSV as t,toRGB as l}from"../../core/colorUtils.js";import s from"../../core/Error.js";import a from"../../core/Logger.js";import{pt2px as n}from"../../core/screenUtils.js";import{defaultThematicColor as r,dekebabifyLineStyle as i,getPatternUrlWithColor as o}from"./gfxUtils.js";import{adjustColorComponentBrightness as c,shapes as u,getTetrahedronShapes as p,getDiamondShapes as h,getCylinderShapes as m,getCubeShapes as f,getInvertedConeShapes as y,getConeShapes as d,getPathSymbolShapes as b,getWaterSymbolShapes as v,getExtrudeSymbolShapes as g}from"./previewUtils.js";import{defaultObjectPrimitive as k,defaultIconPrimitive as w}from"./primitives.js";import{renderSymbol as x,tintImageWithColor as M}from"./renderUtils.js";import{isVolumetricSymbol as L,getIconHref as j}from"./utils.js";import{resolveWebStyleSymbol as z}from"./webStyleSymbolUtils.js";const S=22,P=120,U=80,C=50,D=20;function O(e){const t=e.outline,l=null!=e.material?e.material.color:null,s=null!=l?l.toHex():null;if(null==t||"pattern"in t&&null!=t.pattern&&"style"===t.pattern.type&&"none"===t.pattern.style)return"fill"===e.type&&"#ffffff"===s?{color:"#bdc3c7",width:.75}:null;const a=n(t.size)||0;return{color:"rgba("+(null!=t.color?t.color.toRgba():"255,255,255,1")+")",width:Math.min(a,U),style:"pattern"in t&&null!=t.pattern&&"style"===t.pattern.type?i(t.pattern.style):null,join:"butt",cap:"patternCap"in t?t.patternCap:"butt"}}async function E(t,l){if(t.thumbnail?.url)return t.thumbnail.url;if("icon"===l.type){const e=l?.resource?.href;if(e)return j(l)}const s=e("esri/images/Legend/legend3dsymboldefault.png");if(t.styleOrigin&&(t.styleOrigin.styleName||t.styleOrigin.styleUrl)){const e=await z(t.styleOrigin,{portal:t.styleOrigin.portal}).catch(()=>null);if(e&&"thumbnail"in e&&e.thumbnail?.url)return e.thumbnail.url}return s}function q(e,s=1){const a=e.a,n=t(e),r=n.h,i=n.s/s,o=100-(100-n.v)/s,{r:c,g:u,b:p}=l({h:r,s:i,v:o});return[c,u,p,a]}function R(e){return"water"===e.type?null==e.color?null:e.color:null==e.material?.color?null:e.material.color}function Z(e,t=0){const l=R(e);if(!l){if("fill"===e.type)return null;const l=r.r,s=c(l,t);return[s,s,s,100]}const s=l.toRgba();for(let a=0;a<3;a++)s[a]=c(s[a],t);return s}async function H(t,l){const s=t.style;if("none"===s)return null;return{type:"pattern",x:0,y:0,src:await o(e(`esri/symbols/patterns/${s}.png`),l.toCss(!0)),width:5,height:5}}function I(e){return e.outline?O(e):{color:"rgba(0, 0, 0, 1)",width:1.5}}function N(e,t){const l=R(e);if(!l)return null;let s="rgba(";return s+=c(l.r,t)+",",s+=c(l.g,t)+",",s+=c(l.b,t)+",",s+l.a+");"}function T(e,t){const l=e.edges;if(!l||!l.color||!l.size)return null;return{color:l.color.toCss(!0),width:Math.min(n(l.size),t,U),join:"round"}}function F(e,t){const l=N(e,t);if(!l)return null;if("pattern"in e&&null!=e.pattern&&"style"===e.pattern.type&&"none"===e.pattern.style)return null;const s={color:l,width:Math.min(e.size?n(e.size):.75,U)};return"pattern"in e&&"style"===e.pattern?.type&&(s.style=i(e.pattern.style)),"cap"in e&&e.cap&&(s.cap=e.cap),"join"in e&&e.join&&(s.join="miter"===e.join?n(2):e.join),s}function $(e,t,l){const s=null!=l?.75*l:0;return{type:"linear",x1:s?.25*s:0,y1:s?.5*s:0,x2:s||4,y2:s?.5*s:4,colors:[{color:e,offset:0},{color:t,offset:1}]}}function A(e){const t=e.depth,l=e.height,s=e.width;return 0!==s&&0!==t&&0!==l&&s===t&&null!=s&&null!=l&&s<l}function B(e,t,l){const s=[];if(!e)return s;switch(e.type){case"icon":{const l=0,a=0,n=t,r=t;switch(e.resource?.primitive??w){case"circle":s.push({shape:{type:"circle",cx:0,cy:0,r:.5*t},fill:Z(e,0),stroke:O(e)});break;case"square":s.push({shape:{type:"path",path:[{command:"M",values:[l,r]},{command:"L",values:[l,a]},{command:"L",values:[n,a]},{command:"L",values:[n,r]},{command:"Z",values:[]}]},fill:Z(e,0),stroke:O(e)});break;case"triangle":s.push({shape:{type:"path",path:[{command:"M",values:[l,r]},{command:"L",values:[.5*n,a]},{command:"L",values:[n,r]},{command:"Z",values:[]}]},fill:Z(e,0),stroke:O(e)});break;case"cross":s.push({shape:{type:"path",path:[{command:"M",values:[.5*n,a]},{command:"L",values:[.5*n,r]},{command:"M",values:[l,.5*r]},{command:"L",values:[n,.5*r]}]},stroke:I(e)});break;case"x":s.push({shape:{type:"path",path:[{command:"M",values:[l,a]},{command:"L",values:[n,r]},{command:"M",values:[n,a]},{command:"L",values:[l,r]}]},stroke:I(e)});break;case"kite":s.push({shape:{type:"path",path:[{command:"M",values:[l,.5*r]},{command:"L",values:[.5*n,a]},{command:"L",values:[n,.5*r]},{command:"L",values:[.5*n,r]},{command:"Z",values:[]}]},fill:Z(e,0),stroke:O(e)})}break}case"object":switch(e.resource?.primitive??k){case"cone":{const a=$(Z(e,0),Z(e,-.6),l?D:t),n=d(t,l);s.push({shape:n[0],fill:a},{shape:n[1],fill:a});break}case"inverted-cone":{const l=Z(e,0),a=$(l,Z(e,-.6),t),n=y(t);s.push({shape:n[0],fill:a},{shape:n[1],fill:l});break}case"cube":{const a=f(t,l);s.push({shape:a[0],fill:Z(e,0)},{shape:a[1],fill:Z(e,-.3)},{shape:a[2],fill:Z(e,-.5)});break}case"cylinder":{const a=$(Z(e,0),Z(e,-.6),l?D:t),n=m(t,l);s.push({shape:n[0],fill:a},{shape:n[1],fill:a},{shape:n[2],fill:Z(e,0)});break}case"diamond":{const l=h(t);s.push({shape:l[0],fill:Z(e,-.3)},{shape:l[1],fill:Z(e,0)},{shape:l[2],fill:Z(e,-.3)},{shape:l[3],fill:Z(e,-.7)});break}case"sphere":{const l=$(Z(e,0),Z(e,-.6));l.x1=0,l.y1=0,l.x2=.25*t,l.y2=.25*t,s.push({shape:{type:"circle",cx:0,cy:0,r:.5*t},fill:l});break}case"tetrahedron":{const l=p(t);s.push({shape:l[0],fill:Z(e,-.3)},{shape:l[1],fill:Z(e,0)},{shape:l[2],fill:Z(e,-.6)});break}}break}return s}function G(e){const t="number"==typeof e?.size?e?.size:null;return t?n(t):null}function J(e){return"icon"===e.type?"multiply":"tint"}function K(e){return(e.material?.emissive?.strength??0)>0}async function Q(e,t){const l=G(t),s=t?.maxSize?n(t.maxSize):null,r=t?.disableUpsampling??!1,i=e.symbolLayers,o=[],c=[];let u=!1,p=0,h=0,m=null,f=0;i.forEach(a=>{if("icon"!==a.type&&"object"!==a.type)return;a&&"icon"===a.type&&(f=Math.max(a.size&&n(a.size),f));const i="icon"===a.type?a.size&&n(a.size):0,y=l||i?Math.ceil(Math.min(l||i,s||P)):S;let d="icon"===a.type?a.angle:null;if(null!=t?.rotation&&(d=(d??0)+t.rotation),c.push(d),"object"===a.type&&K(a)&&(m=a.material.emissive),a?.resource?.href){const t=E(e,a).then(e=>{const t=a?.material?.color,l=J(a);return M(e,y,t,l,r,m)}).then(e=>{const t=e.width,l=e.height;return p=Math.max(p,t),h=Math.max(h,l),d&&(u=!0),[{shape:{type:"image",x:0,y:0,width:t,height:l,src:e.url},fill:null,stroke:null}]});o.push(t)}else{let e=y;"icon"===a.type&&l&&(e=y*(i/f));const s="tall"===t?.symbolConfig||t?.symbolConfig?.isTall||"object"===a.type&&A(a);p=Math.max(p,s?D:e),h=Math.max(h,e),d&&a.resource?.primitive&&["square","triangle","x"].includes(a.resource?.primitive)&&(u=!0),o.push(Promise.resolve(B(a,e,s)))}});const y=await Promise.allSettled(o),d=[];return y.forEach(e=>{"fulfilled"===e.status?d.push(e.value):e.reason&&a.getLogger("esri.symbols.support.previewSymbol3D").warn("error while building swatchInfo!",e.reason)}),x(d,[p,h],{node:t?.node,scale:!1,opacity:t?.opacity,ariaLabel:t?.ariaLabel,rotations:c,useRotationSize:u,emissive:m})}function V(e,t){const l=e.symbolLayers,s=[],a=L(e),r=G(t),i=(t?.maxSize?n(t.maxSize):null)||U;let o,c=null,p=0,h=0;return l.forEach((e,t)=>{if(!e)return;if("line"!==e.type&&"path"!==e.type)return;const l=[];switch(e.type){case"line":{const s=F(e,0);if(null==s)break;const a=s?.width||0;0===t&&(o=a);const n=Math.min(r||a,i),c=0===t?n:r?n*(a/o):n,u=c>C/2?2*c:C;h=Math.max(h,c),p=Math.max(p,u),s.width=c,l.push({shape:{type:"path",path:[{command:"M",values:[0,.5*h]},{command:"L",values:[p,.5*h]}]},stroke:s});break}case"path":{const t=Math.min(r||S,i),s=Z(e,0),a=Z(e,-.2),n=N(e,-.4),o=n?{color:n,width:1}:{};if("quad"===e.profile){const t=e.width,n=e.height,r=b(t&&n?t/n:1,0===n,0===t),i={...o,join:"bevel"};l.push({shape:r[0],fill:a,stroke:i},{shape:r[1],fill:a,stroke:i},{shape:r[2],fill:s,stroke:i})}else l.push({shape:u.pathSymbol3DLayer[0],fill:a,stroke:o},{shape:u.pathSymbol3DLayer[1],fill:s,stroke:o});h=Math.max(h,t),p=h,K(e)&&(c=e.material.emissive)}}s.push(l)}),Promise.resolve(x(s,[p,h],{node:t?.node,scale:a,opacity:t?.opacity,ariaLabel:t?.ariaLabel,emissive:c}))}async function W(e,t){const l="mesh-3d"===e.type,s=e.symbolLayers,a=G(t),r=t?.maxSize?n(t.maxSize):null,i=a||S,o=[];let c=0,p=0,h=!1,m=null;for(let n=0;n<s.length;n++){const e=s.at(n),t=[];if(!l||"fill"===e.type){switch(e.type){case"fill":{const s=Math.min(i,r||P);if(c=Math.max(c,s),p=Math.max(p,s),h=!0,l){const l=u.meshSymbol3DFill,a=N(e,-.4),n=T(e,.05*s)??(a?{join:"round",color:a,width:1}:null);t.push({shape:l[0],fill:Z(e,0),stroke:n},{shape:l[1],fill:Z(e,-.2),stroke:n},{shape:l[2],fill:Z(e,-.6),stroke:n}),K(e)&&(m=e.material.emissive)}else{let l=Z(e,0);const s="pattern"in e?e.pattern:null,a=O(e),n=R(e);null!=s&&"style"===s.type&&"solid"!==s.style&&n&&(l=await H(s,n)),t.push({shape:u.fill[0],fill:l,stroke:a})}break}case"extrude":{const l=Z(e,0),s=Z(e,-.2),a=Math.min(i,r||P),n=g(a),o=S,u=.7*S+.5*a,h=T(e,.1*Math.min(o,u))??{join:"round",...F(e,-.4),width:1};t.push({shape:n[0],fill:s,stroke:h},{shape:n[1],fill:s,stroke:h},{shape:n[2],fill:l,stroke:h}),c=Math.max(c,o),p=Math.max(p,u),K(e)&&(m=e.material.emissive);break}case"water":{const l=R(e),s=q(l),a=q(l,2),n=q(l,3),o=v();h=!0,t.push({shape:o[0],fill:s},{shape:o[1],fill:a},{shape:o[2],fill:n});const u=Math.min(i,r||P);c=Math.max(c,u),p=Math.max(p,u);break}}o.push(t)}}return x(o,[c,p],{node:t?.node,scale:h,opacity:t?.opacity,ariaLabel:t?.ariaLabel,emissive:m})}function X(e,t){if(0===e.symbolLayers.length)return Promise.reject(new s("symbolPreview: renderPreviewHTML3D","No symbolLayers in the symbol."));switch(e.type){case"point-3d":return Q(e,t);case"line-3d":return V(e,t);case"polygon-3d":case"mesh-3d":return W(e,t)}return Promise.reject(new s("symbolPreview: swatchInfo3D","symbol not supported."))}export{H as getPatternDescriptor,G as getSizeFromOptions,Z as getSymbolLayerFill,X as previewSymbol3D};
|
|
2
|
+
import{getAssetUrl as e}from"../../assets.js";import{toHSV as t,toRGB as l}from"../../core/colorUtils.js";import s from"../../core/Error.js";import a from"../../core/Logger.js";import{pt2px as n}from"../../core/screenUtils.js";import{defaultThematicColor as r,scaleDashArrayForStroke as i,dekebabifyLineStyle as o,getPatternUrlWithColor as c}from"./gfxUtils.js";import{adjustColorComponentBrightness as p,shapes as u,getPathSymbolShapes as h,getTetrahedronShapes as m,getDiamondShapes as f,getCylinderShapes as y,getCubeShapes as d,getInvertedConeShapes as b,getConeShapes as v,getWaterSymbolShapes as g,getExtrudeSymbolShapes as w}from"./previewUtils.js";import{defaultObjectPrimitive as k,defaultIconPrimitive as x}from"./primitives.js";import{renderSymbol as M,tintImageWithColor as L}from"./renderUtils.js";import{isVolumetricSymbol as j,getIconHref as z}from"./utils.js";import{resolveWebStyleSymbol as S}from"./webStyleSymbolUtils.js";const D=22,P=120,U=80,C=50,E=20;function O(e){const t=e.outline,l=null!=e.material?e.material.color:null,s=null!=l?l.toHex():null;if(null==t||"pattern"in t&&null!=t.pattern&&"style"===t.pattern.type&&"none"===t.pattern.style)return"fill"===e.type&&"#ffffff"===s?{color:"#bdc3c7",width:.75}:null;const a=n(t.size)||0;return{color:"rgba("+(null!=t.color?t.color.toRgba():"255,255,255,1")+")",width:Math.min(a,U),style:"pattern"in t&&null!=t.pattern&&"style"===t.pattern.type?o(t.pattern.style):null,join:"butt",cap:"patternCap"in t?t.patternCap:"butt"}}async function T(t,l){if(t.thumbnail?.url)return t.thumbnail.url;if("icon"===l.type){const e=l?.resource?.href;if(e)return z(l)}const s=e("esri/images/Legend/legend3dsymboldefault.png");if(t.styleOrigin&&(t.styleOrigin.styleName||t.styleOrigin.styleUrl)){const e=await S(t.styleOrigin,{portal:t.styleOrigin.portal}).catch(()=>null);if(e&&"thumbnail"in e&&e.thumbnail?.url)return e.thumbnail.url}return s}function R(e,s=1){const a=e.a,n=t(e),r=n.h,i=n.s/s,o=100-(100-n.v)/s,{r:c,g:p,b:u}=l({h:r,s:i,v:o});return[c,p,u,a]}function q(e){return"water"===e.type?null==e.color?null:e.color:null==e.material?.color?null:e.material.color}function Z(e,t=0){const l=q(e);if(!l){if("fill"===e.type)return null;const l=r.r,s=p(l,t);return[s,s,s,100]}const s=l.toRgba();for(let a=0;a<3;a++)s[a]=p(s[a],t);return s}async function A(t,l){const s=t.style;if("none"===s)return null;return{type:"pattern",x:0,y:0,src:await c(e(`esri/symbols/patterns/${s}.png`),l.toCss(!0)),width:5,height:5}}function H(e){return e.outline?O(e):{color:"rgba(0, 0, 0, 1)",width:1.5}}function I(e,t){const l=q(e);if(!l)return null;let s="rgba(";return s+=p(l.r,t)+",",s+=p(l.g,t)+",",s+=p(l.b,t)+",",s+l.a+");"}function N(e,t){const l=e.edges;if(!l||!l.color||!l.size)return null;return{color:l.color.toCss(!0),width:Math.min(n(l.size),t,U),join:"round"}}function F(e,t){const l=I(e,t),s="line"===e.type;if(!l)return null;if(s&&null!=e.pattern){const{pattern:t}=e;if("style"===t.type&&"none"===t.style||"template"===t.type&&t.normalizedDashTemplate.hidesLine)return null}const a={color:l,width:Math.min(e.size?n(e.size):.75,U)};return"cap"in e&&e.cap&&(a.cap=e.cap),"join"in e&&e.join&&(a.join="miter"===e.join?n(2):e.join),s&&"style"===e.pattern?.type&&(a.style=o(e.pattern.style)),a}function W(e,t,l){const s=null!=l?.75*l:0;return{type:"linear",x1:s?.25*s:0,y1:s?.5*s:0,x2:s||4,y2:s?.5*s:4,colors:[{color:e,offset:0},{color:t,offset:1}]}}function $(e){const t=e.depth,l=e.height,s=e.width;return 0!==s&&0!==t&&0!==l&&s===t&&null!=s&&null!=l&&s<l}function B(e,t,l){const s=[];if(!e)return s;switch(e.type){case"icon":{const l=0,a=0,n=t,r=t;switch(e.resource?.primitive??x){case"circle":s.push({shape:{type:"circle",cx:0,cy:0,r:.5*t},fill:Z(e,0),stroke:O(e)});break;case"square":s.push({shape:{type:"path",path:[{command:"M",values:[l,r]},{command:"L",values:[l,a]},{command:"L",values:[n,a]},{command:"L",values:[n,r]},{command:"Z",values:[]}]},fill:Z(e,0),stroke:O(e)});break;case"triangle":s.push({shape:{type:"path",path:[{command:"M",values:[l,r]},{command:"L",values:[.5*n,a]},{command:"L",values:[n,r]},{command:"Z",values:[]}]},fill:Z(e,0),stroke:O(e)});break;case"cross":s.push({shape:{type:"path",path:[{command:"M",values:[.5*n,a]},{command:"L",values:[.5*n,r]},{command:"M",values:[l,.5*r]},{command:"L",values:[n,.5*r]}]},stroke:H(e)});break;case"x":s.push({shape:{type:"path",path:[{command:"M",values:[l,a]},{command:"L",values:[n,r]},{command:"M",values:[n,a]},{command:"L",values:[l,r]}]},stroke:H(e)});break;case"kite":s.push({shape:{type:"path",path:[{command:"M",values:[l,.5*r]},{command:"L",values:[.5*n,a]},{command:"L",values:[n,.5*r]},{command:"L",values:[.5*n,r]},{command:"Z",values:[]}]},fill:Z(e,0),stroke:O(e)})}break}case"object":switch(e.resource?.primitive??k){case"cone":{const a=W(Z(e,0),Z(e,-.6),l?E:t),n=v(t,l);s.push({shape:n[0],fill:a},{shape:n[1],fill:a});break}case"inverted-cone":{const l=Z(e,0),a=W(l,Z(e,-.6),t),n=b(t);s.push({shape:n[0],fill:a},{shape:n[1],fill:l});break}case"cube":{const a=d(t,l);s.push({shape:a[0],fill:Z(e,0)},{shape:a[1],fill:Z(e,-.3)},{shape:a[2],fill:Z(e,-.5)});break}case"cylinder":{const a=W(Z(e,0),Z(e,-.6),l?E:t),n=y(t,l);s.push({shape:n[0],fill:a},{shape:n[1],fill:a},{shape:n[2],fill:Z(e,0)});break}case"diamond":{const l=f(t);s.push({shape:l[0],fill:Z(e,-.3)},{shape:l[1],fill:Z(e,0)},{shape:l[2],fill:Z(e,-.3)},{shape:l[3],fill:Z(e,-.7)});break}case"sphere":{const l=W(Z(e,0),Z(e,-.6));l.x1=0,l.y1=0,l.x2=.25*t,l.y2=.25*t,s.push({shape:{type:"circle",cx:0,cy:0,r:.5*t},fill:l});break}case"tetrahedron":{const l=m(t);s.push({shape:l[0],fill:Z(e,-.3)},{shape:l[1],fill:Z(e,0)},{shape:l[2],fill:Z(e,-.6)});break}}break}return s}function G(e){const t="number"==typeof e?.size?e?.size:null;return t?n(t):null}function J(e){return"icon"===e.type?"multiply":"tint"}function K(e){return(e.material?.emissive?.strength??0)>0}async function Q(e,t){const l=G(t),s=t?.maxSize?n(t.maxSize):null,r=t?.disableUpsampling??!1,i=e.symbolLayers,o=[],c=[];let p=!1,u=0,h=0,m=null,f=0;i.forEach(a=>{if("icon"!==a.type&&"object"!==a.type)return;a&&"icon"===a.type&&(f=Math.max(a.size&&n(a.size),f));const i="icon"===a.type?a.size&&n(a.size):0,y=l||i?Math.ceil(Math.min(l||i,s||P)):D;let d="icon"===a.type?a.angle:null;if(null!=t?.rotation&&(d=(d??0)+t.rotation),c.push(d),"object"===a.type&&K(a)&&(m=a.material.emissive),a?.resource?.href){const t=T(e,a).then(e=>{const t=a?.material?.color,l=J(a);return L(e,y,t,l,r,m)}).then(e=>{const t=e.width,l=e.height;return u=Math.max(u,t),h=Math.max(h,l),d&&(p=!0),[{shape:{type:"image",x:0,y:0,width:t,height:l,src:e.url},fill:null,stroke:null}]});o.push(t)}else{let e=y;"icon"===a.type&&l&&(e=y*(i/f));const s="tall"===t?.symbolConfig||t?.symbolConfig?.isTall||"object"===a.type&&$(a);u=Math.max(u,s?E:e),h=Math.max(h,e),d&&a.resource?.primitive&&["square","triangle","x"].includes(a.resource?.primitive)&&(p=!0),o.push(Promise.resolve(B(a,e,s)))}});const y=await Promise.allSettled(o),d=[];return y.forEach(e=>{"fulfilled"===e.status?d.push(e.value):e.reason&&a.getLogger("esri.symbols.support.previewSymbol3D").warn("error while building swatchInfo!",e.reason)}),M(d,[u,h],{node:t?.node,scale:!1,opacity:t?.opacity,ariaLabel:t?.ariaLabel,rotations:c,useRotationSize:p,emissive:m})}function V(e,t){const l=j(e),s=[],a=G(t),r=(t?.maxSize?n(t.maxSize):null)||U,o=l?Math.min(a||D,r):0;let c,p=0,u=0;e.symbolLayers.forEach(e=>{if("line"!==e?.type)return;const t=F(e,0);if(null==t)return;const l=t.width||0,n=Math.min(a||l,r);null==c?(c=l,t.width=n):t.width=a?n*(l/c):n,u=Math.max(u,t.width),p=Math.max(p,2*t.width,C),"template"===e.pattern?.type&&(t.dashArray=i(e.pattern.normalizedDashTemplate.dashTemplate,t).join(",")),s.push(t)});const h=[];if(s.length>0){const e=X(p,u);h.push(s.map(t=>({shape:e,stroke:t})))}let m=null;return e.symbolLayers.forEach(e=>{"path"===e?.type&&(h.push(Y(e)),K(e)&&(m=e.material.emissive))}),Promise.resolve(M(h,[Math.max(p,o),Math.max(u,o)],{node:t?.node,scale:l,preserveAspectRatio:l&&s.length>0,fittingStrokeWidths:s.length>0?[u]:void 0,opacity:t?.opacity,ariaLabel:t?.ariaLabel,emissive:m}))}function X(e,t){return{type:"path",path:[{command:"M",values:[0,.5*t]},{command:"L",values:[e,.5*t]}]}}function Y(e){const t=Z(e,0),l=Z(e,-.2),s=I(e,-.4),a=s?{color:s,width:1}:{};if("quad"===e.profile){const s=e.width,n=e.height,r=h(s&&n?s/n:1,0===n,0===s),i={...a,join:"bevel"};return[{shape:r[0],fill:l,stroke:i},{shape:r[1],fill:l,stroke:i},{shape:r[2],fill:t,stroke:i}]}return[{shape:u.pathSymbol3DLayer[0],fill:l,stroke:a},{shape:u.pathSymbol3DLayer[1],fill:t,stroke:a}]}async function _(e,t){const l="mesh-3d"===e.type,s=e.symbolLayers,a=G(t),r=t?.maxSize?n(t.maxSize):null,i=a||D,o=[];let c=0,p=0,h=!1,m=null;for(let n=0;n<s.length;n++){const e=s.at(n),t=[];if(!l||"fill"===e.type){switch(e.type){case"fill":{const s=Math.min(i,r||P);if(c=Math.max(c,s),p=Math.max(p,s),h=!0,l){const l=u.meshSymbol3DFill,a=I(e,-.4),n=N(e,.05*s)??(a?{join:"round",color:a,width:1}:null);t.push({shape:l[0],fill:Z(e,0),stroke:n},{shape:l[1],fill:Z(e,-.2),stroke:n},{shape:l[2],fill:Z(e,-.6),stroke:n}),K(e)&&(m=e.material.emissive)}else{let l=Z(e,0);const s="pattern"in e?e.pattern:null,a=O(e),n=q(e);null!=s&&"style"===s.type&&"solid"!==s.style&&n&&(l=await A(s,n)),t.push({shape:u.fill[0],fill:l,stroke:a})}break}case"extrude":{const l=Z(e,0),s=Z(e,-.2),a=Math.min(i,r||P),n=w(a),o=D,u=.7*D+.5*a,h=N(e,.1*Math.min(o,u))??{join:"round",...F(e,-.4),width:1};t.push({shape:n[0],fill:s,stroke:h},{shape:n[1],fill:s,stroke:h},{shape:n[2],fill:l,stroke:h}),c=Math.max(c,o),p=Math.max(p,u),K(e)&&(m=e.material.emissive);break}case"water":{const l=q(e),s=R(l),a=R(l,2),n=R(l,3),o=g();h=!0,t.push({shape:o[0],fill:s},{shape:o[1],fill:a},{shape:o[2],fill:n});const u=Math.min(i,r||P);c=Math.max(c,u),p=Math.max(p,u);break}}o.push(t)}}return M(o,[c,p],{node:t?.node,scale:h,opacity:t?.opacity,ariaLabel:t?.ariaLabel,emissive:m})}function ee(e,t){if(0===e.symbolLayers.length)return Promise.reject(new s("symbolPreview: renderPreviewHTML3D","No symbolLayers in the symbol."));switch(e.type){case"point-3d":return Q(e,t);case"line-3d":return V(e,t);case"polygon-3d":case"mesh-3d":return _(e,t)}return Promise.reject(new s("symbolPreview: swatchInfo3D","symbol not supported."))}export{A as getPatternDescriptor,G as getSizeFromOptions,Z as getSymbolLayerFill,ee as previewSymbol3D};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{getColorWithEmissiveStrength as t}from"../../core/colorUtils.js";import has from"../../core/has.js";import{assertIsSome as e}from"../../core/maybe.js";import{create as i}from"../../core/libs/gl-matrix-2/factories/mat2df32.js";import{multiply as r,scale as o,identity as n,translate as
|
|
2
|
+
import{getColorWithEmissiveStrength as t}from"../../core/colorUtils.js";import has from"../../core/has.js";import{assertIsSome as e}from"../../core/maybe.js";import{create as i}from"../../core/libs/gl-matrix-2/factories/mat2df32.js";import{multiply as r,scale as o,identity as n,translate as s,rotate as a}from"../../core/libs/gl-matrix-2/math/mat2d.js";import{getDashArray as l}from"./gfxUtils.js";import{nextPatternId as h,nextLinearGradientId as c}from"./svgGlobalState.js";import{matchesBloomFilter as f,BloomFilter as d}from"./svgFilter/bloomFilter.js";import{matchesEmissiveFilter as y,EmissiveFilter as u}from"./svgFilter/emissiveFilter.js";import{tsx as g}from"../../widgets/support/widget.js";const p="http://www.w3.org/2000/svg",m=has("android"),x=has("chrome")||m&&m>=4?"auto":"optimizeLegibility",k={m:2,l:2,h:1,v:1,c:6,s:4,q:4,t:2,a:7,z:0},w=/([A-DF-Za-df-z])|([-+]?\d*\.?\d+(?:[eE][-+]?\d+)?)/g;let b={},j={};const v=Math.PI;function A(t,e){const i=t*(v/180);return Math.abs(e*Math.sin(i))+Math.abs(e*Math.cos(i))}function S(t){return t.map(t=>`${t.command} ${t.values.join(" ")}`).join(" ").trim()}function M(t,i,r,o,n){if(t){if("circle"===t.type)return g("circle",{cx:t.cx,cy:t.cy,fill:i,"fill-rule":"evenodd",r:t.r,stroke:r.color,"stroke-dasharray":r.dashArray,"stroke-dashoffset":r.dashOffset,"stroke-linecap":r.cap,"stroke-linejoin":r.join,"stroke-miterlimit":"4","stroke-width":r.width});if("ellipse"===t.type)return g("ellipse",{cx:t.cx,cy:t.cy,fill:i,"fill-rule":"evenodd",rx:t.rx,ry:t.ry,stroke:r.color,"stroke-dasharray":r.dashArray,"stroke-linecap":r.cap,"stroke-linejoin":r.join,"stroke-miterlimit":"4","stroke-width":r.width});if("rect"===t.type)return g("rect",{fill:i,"fill-rule":"evenodd",height:t.height,stroke:r.color,"stroke-dasharray":r.dashArray,"stroke-linecap":r.cap,"stroke-linejoin":r.join,"stroke-miterlimit":"4","stroke-width":r.width,width:t.width,x:t.x,y:t.y});if("image"===t.type)return g("image",{alt:n||"image",height:t.height,href:t.src,preserveAspectRatio:"none",width:t.width,x:t.x,y:t.y});if("path"===t.type){const e="string"!=typeof t.path?S(t.path):t.path;return g("path",{d:e,fill:i,"fill-rule":"evenodd",stroke:r.color,"stroke-dasharray":r.dashArray,"stroke-linecap":r.cap,"stroke-linejoin":r.join,"stroke-miterlimit":"4","stroke-width":r.width})}if("text"===t.type)return e(o),g("text",{"dominant-baseline":o.dominantBaseline,fill:i,"fill-rule":"evenodd","font-family":o.font.family,"font-size":o.font.size,"font-style":o.font.style,"font-variant":o.font.variant,"font-weight":o.font.weight,kerning:o.kerning,rotate:o.rotate,stroke:r.color,"stroke-dasharray":r.dashArray,"stroke-linecap":r.cap,"stroke-linejoin":r.join,"stroke-miterlimit":"4","stroke-width":r.width,"text-anchor":o.align,"text-decoration":o.decoration,"text-rendering":x,x:t.x,y:t.y},t.text)}return null}function $(e,i){if(!e)return{fill:"none",pattern:null,linearGradient:null};if(!("type"in e))return{fill:t(e,i).toString(),pattern:null,linearGradient:null};if("pattern"===e.type){const t=`patternId-${h()}`;return{fill:`url(#${t})`,pattern:{id:t,x:e.x,y:e.y,width:e.width,height:e.height,image:{x:0,y:0,width:e.width,height:e.height,href:e.src}},linearGradient:null}}const r=`linearGradientId-${c()}`;return{fill:`url(#${r})`,pattern:null,linearGradient:{id:r,x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2,stops:e.colors.map(e=>({offset:e.offset,color:t(e.color,i).toString()}))}}}function z(e,i){const r={color:"none",width:1,cap:"butt",join:"4",dashArray:"none",dashOffset:"0"};return e&&(null!=e.width&&(r.width=e.width),e.cap&&(r.cap=e.cap),e.join&&(r.join=e.join.toString()),e.color&&(r.color=t(e.color,i).toString()),e.dashArray&&(r.dashArray=e.dashArray),e.dashoffset&&(r.dashOffset=e.dashoffset),e.style&&!e.dashArray&&(r.dashArray=l(e).join(",")||"none")),r}function I(t,i){const r={align:null,decoration:null,kerning:null,rotate:null,font:{style:null,variant:null,weight:null,size:null,family:null}};if(t){const o=t.alignBaseline,n="baseline"===o?"auto":"top"===o?"text-top":"bottom"===o?"hanging":o;r.align=t.align,r.dominantBaseline=n,r.decoration=t.decoration,r.kerning=t.kerning?"auto":"0",r.rotate=t.rotated?"90":"0",e(i),r.font.style=i.style||"normal",r.font.variant=i.variant||"normal",r.font.weight=i.weight||"normal",r.font.size=i.size&&i.size.toString()||"10pt",r.font.family=i.family||"serif"}return r}function F(t){const{pattern:e,linearGradient:i}=t;if(e)return g("pattern",{height:e.height,id:e.id,patternUnits:"userSpaceOnUse",width:e.width,x:e.x,y:e.y},g("image",{height:e.image.height,href:e.image.href,width:e.image.width,x:e.image.x,y:e.image.y}));if(i){const t=i.stops.map((t,e)=>g("stop",{key:`${e}-stop`,offset:t.offset,"stop-color":t.color}));return g("linearGradient",{gradientUnits:"userSpaceOnUse",id:i.id,x1:i.x1,x2:i.x2,y1:i.y1,y2:i.y2},t)}return null}function N(t,e){if(!t||0===t.length)return null;const i=[];for(const r of t){const{shape:t,fill:e,stroke:o,font:n}=r,s=$(e),a=z(o),l="text"===t.type?I(t,n):null,h=M(t,s.fill,a,l);h&&i.push(h)}return g("mask",{id:e,maskUnits:"userSpaceOnUse"},g("g",null,i))}function G(t,e,i){return s(t,n(t),[e,i])}function E(t,e,i,r,s){return o(t,n(t),[e,i]),t[4]=t[4]*e-r*e+r,t[5]=t[5]*i-s*i+s,t}function U(t,e,i,r){const o=e%360*Math.PI/180;a(t,n(t),o);const s=Math.cos(o),l=Math.sin(o),h=t[4],c=t[5];return t[4]=h*s-c*l+r*l-i*s+i,t[5]=c*s+h*l-i*l-r*s+r,t}function O(t,e){b&&"left"in b?(null!=b.left&&b.left>t&&(b.left=t),(null==b.right||b.right<t)&&(b.right=t),(null==b.top||b.top>e)&&(b.top=e),(null==b.bottom||b.bottom<e)&&(b.bottom=e)):b={left:t,bottom:e,right:t,top:e}}function L(t){const e=t.args,i=e.length;let r;switch(t.action){case"M":case"L":case"C":case"S":case"Q":case"T":for(r=0;r<i;r+=2)O(e[r],e[r+1]);j.x=e[i-2],j.y=e[i-1];break;case"H":for(r=0;r<i;++r)O(e[r],j.y);j.x=e[i-1];break;case"V":for(r=0;r<i;++r)O(j.x,e[r]);j.y=e[i-1];break;case"m":{let t=0;"x"in j||(O(j.x=e[0],j.y=e[1]),t=2);for(r=t;r<i;r+=2)O(j.x+=e[r],j.y+=e[r+1]);break}case"l":case"t":for(r=0;r<i;r+=2)O(j.x+=e[r],j.y+=e[r+1]);break;case"h":for(r=0;r<i;++r)O(j.x+=e[r],j.y);break;case"v":for(r=0;r<i;++r)O(j.x,j.y+=e[r]);break;case"c":for(r=0;r<i;r+=6)O(j.x+e[r],j.y+e[r+1]),O(j.x+e[r+2],j.y+e[r+3]),O(j.x+=e[r+4],j.y+=e[r+5]);break;case"s":case"q":for(r=0;r<i;r+=4)O(j.x+e[r],j.y+e[r+1]),O(j.x+=e[r+2],j.y+=e[r+3]);break;case"A":for(r=0;r<i;r+=7)O(e[r+5],e[r+6]);j.x=e[i-2],j.y=e[i-1];break;case"a":for(r=0;r<i;r+=7)O(j.x+=e[r+5],j.y+=e[r+6])}}function R(t,e,i){const r=k[t.toLowerCase()];let o;"number"==typeof r&&(r?e.length>=r&&(o={action:t,args:e.slice(0,e.length-e.length%r)},i.push(o),L(o)):(o={action:t,args:[]},i.push(o),L(o)))}function T(t){const e=("string"!=typeof t.path?S(t.path):t.path).match(w),i=[];if(b={},j={},!e)return null;let r="",o=[];const n=e.length;for(let a=0;a<n;++a){const t=e[a],n=parseFloat(t);isNaN(n)?(r&&R(r,o,i),o=[],r=t):o.push(n)}R(r,o,i);const s={x:0,y:0,width:0,height:0};return b&&"left"in b&&(s.x=b.left,s.y=b.top,s.width=b.right-b.left,s.height=b.bottom-b.top),s}function B(t){const e={x:0,y:0,width:0,height:0};if("circle"===t.type)e.x=t.cx-t.r,e.y=t.cy-t.r,e.width=2*t.r,e.height=2*t.r;else if("ellipse"===t.type)e.x=t.cx-t.rx,e.y=t.cy-t.ry,e.width=2*t.rx,e.height=2*t.ry;else if("image"===t.type||"rect"===t.type)e.x=t.x,e.y=t.y,e.width=t.width,e.height=t.height;else if("path"===t.type){const i=T(t);e.x=i.x,e.y=i.y,e.width=i.width,e.height=i.height}return e}function V(t){const e={x:0,y:0,width:0,height:0};let i=null,r=Number.NEGATIVE_INFINITY,o=Number.NEGATIVE_INFINITY;for(const n of t)i?(i.x=Math.min(i.x,n.x),i.y=Math.min(i.y,n.y),r=Math.max(r,n.x+n.width),o=Math.max(o,n.y+n.height)):(i=e,i.x=n.x,i.y=n.y,r=n.x+n.width,o=n.y+n.height);return i&&(i.width=r-i.x,i.height=o-i.y),i}function W(t,e,o,n,s,a,l,h,c,f=!1){let d=(l&&a?A(a,e):e)/2,y=(l&&a?A(a,o):o)/2;if(c){const t=c[0],e=c[1];d=(l&&a?A(a,t):t)/2,y=(l&&a?A(a,e):e)/2}const u=t.width+n,g=t.height+n,p=i(),m=i();let x=!1;if(s&&0!==u&&0!==g){const t=e!==o?e/o:u/g,i=e>o?e:o;let n=1,s=1;f?n=s=Math.min(e/u,o/g):isNaN(i)||(t>1?(n=i/u,s=i/t/g):(s=i/g,n=i*t/u)),r(m,m,E(p,n,s,d,y)),x=!0}const k=t.x+(u-n)/2,w=t.y+(g-n)/2;if(r(m,m,G(p,d-k,y-w)),!x&&(u>e||g>o)){const t=u/e>g/o,i=(t?e:o)/(t?u:g);r(m,m,E(p,i,i,k,w))}return h&&r(m,m,G(p,h[0],h[1])),a&&r(m,m,U(p,a,k,w)),`matrix(${m[0]},${m[1]},${m[2]},${m[3]},${m[4]},${m[5]})`}function q(t,i,r,o={}){const n=[],s=[],a=f(o.cssEffectFilter)?new d(o.cssEffectFilter,i):y(o.emissive?.strength)?new u(t,o.emissive?.strength):null,l=a?.getSize(i,r,o.clipBloomEffect);let h=i,c=r;if(o.useRotationSize)for(let e=0;e<t.length;e++){const t=o.rotations?.[e]??0;h=Math.max(A(t,i),h),c=Math.max(A(t,r),c)}for(let e=0;e<t.length;e++){const a=t[e],f=[],d=[];let y=0,u=0,p=0;for(const t of a){const{shape:e,fill:i,stroke:r,font:s,offset:a}=t;o.ignoreStrokeWidth||"text"===e.type||(y+=r?.width||0);const l=$(i,o.emissive),h=z(r,o.emissive),c="text"===e.type?I(e,s):null;n.push(F(l)),f.push(M(e,l.fill,h,c,o.ariaLabel)),d.push(B(e)),a&&(u+=a[0],p+=a[1])}const m=o.rotations?.[e]??0;o.useRotationSize&&(u+=(h-A(m,i))/2,p+=(c-A(m,r))/2);const x=W(V(d),i,r,o.ignoreStrokeWidth?0:o.fittingStrokeWidths?.[e]??y,o.scale??!1,m,o.useRotationSize??!1,[u,p],l,o.preserveAspectRatio);let k=null;if(o.masking){const t=`mask-${e}`,i=o.masking[e];n.push(N(i,t)),k=`url(#${t})`}s.push(k?g("g",{mask:k},g("g",{transform:x},f)):g("g",{transform:x},f))}a&&(e(l),h=l[0],c=l[1]);const m="display: block;";return g("svg",{"aria-label":o.ariaLabel,focusable:!1,height:c,role:"img",style:m,width:h,xmlns:p},a?.getFilter(),g("defs",null,n),a?g("g",{filter:`url(#${a.getFilterId()})`},s):s)}export{V as computeBBox,$ as generateFillAttributes,z as generateStrokeAttributes,I as generateTextAttributes,B as getBoundingBox,W as getTransformMatrix,F as renderDef,q as renderSVG,M as renderShape};
|
package/time/timeZoneUtils.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{UnknownTimeZone as t}from"../core/sql/UnknownTimeZone.js";import{system as e,unknown as n,utc as o}from"./constants.js";import{createLuxonIanaTimeZone as r}from"./ianaZone.js";import{legacyTimeZoneMap as i}from"./legacyTimeZoneMap.js";import{FixedOffsetZone as s,DateTime as m}from"luxon";const u="shortOffset";function a(t){return"timeZoneIANA"in t}function c(t){return t.startsWith("UTC")}function f(t,e=!1,n=!0){return{json:{read:{source:t,reader:(e,n)=>n[t]?l(n[t]):null},write:!!e&&{allowNull:n,writer(e,n){n[t]=e?Z(e):null}}}}}function l(t,n=e){return t?a(t)?t.timeZoneIANA:p(t,n):n}function Z(t){return{timeZoneIANA:t}}function p(t,n=e){if(!t||!i.has(t.timeZone))return n;const o=i.get(t.timeZone);return c(t.timeZone)||t.respectsDaylightSaving?o:h(o)}function h(t){const e=m.local().setZone(t),n=Math.min(e.set({month:1,day:1}).offset,e.set({month:5}).offset);if(0===n)return"Etc/UTC";return`Etc/GMT${s.instance(-n).formatOffset(0,"narrow")}`}function w(t,e,r,i,s){if(e&&"date"===s)return{timeZone:o,timeZoneName:void 0};const m=i.hour,a=r===n;return{timeZone:a?"timestamp-offset"===s?void 0:t??o:r,timeZoneName:a&&m?u:void 0}}function d(t){const o=new Set(["etc/utc","etc/gmt","gmt"]),r=new Set(Intl.supportedValuesOf("timeZone").map(t=>t.toLowerCase()));return t===e||t===n||o.has(t.toLowerCase())||r.has(t.toLowerCase())}function g(e){return e===n?t.instance:e===o||"Etc/UTC"===e?s.utcInstance:r(e)}export{p as convertLegacyTimeZone,l as fromTimeReference,g as getLuxonTimeZone,w as getTimeZoneFormattingOptions,d as isTimeZoneValid,u as shortTimeZoneName,f as timeZoneProperty,Z as toTimeReference};
|
|
2
|
+
import{UnknownTimeZone as t}from"../core/sql/UnknownTimeZone.js";import{system as e,unknown as n,utc as o}from"./constants.js";import{createLuxonIanaTimeZone as r}from"./ianaZone.js";import{legacyTimeZoneMap as i}from"./legacyTimeZoneMap.js";import{FixedOffsetZone as s,DateTime as m}from"luxon";const u="shortOffset";function a(t){return"timeZoneIANA"in t}function c(t){return t.startsWith("UTC")}function f(t,e=!1,n=!0){return{json:{read:{source:t,reader:(e,n)=>n[t]?l(n[t]):null},write:!!e&&{allowNull:n,writer(e,n){n[t]=e?Z(e):null},target:{[`${t}.timeZoneIANA`]:{type:String}}}}}}function l(t,n=e){return t?a(t)?t.timeZoneIANA:p(t,n):n}function Z(t){return{timeZoneIANA:t}}function p(t,n=e){if(!t||!i.has(t.timeZone))return n;const o=i.get(t.timeZone);return c(t.timeZone)||t.respectsDaylightSaving?o:h(o)}function h(t){const e=m.local().setZone(t),n=Math.min(e.set({month:1,day:1}).offset,e.set({month:5}).offset);if(0===n)return"Etc/UTC";return`Etc/GMT${s.instance(-n).formatOffset(0,"narrow")}`}function w(t,e,r,i,s){if(e&&"date"===s)return{timeZone:o,timeZoneName:void 0};const m=i.hour,a=r===n;return{timeZone:a?"timestamp-offset"===s?void 0:t??o:r,timeZoneName:a&&m?u:void 0}}function d(t){const o=new Set(["etc/utc","etc/gmt","gmt"]),r=new Set(Intl.supportedValuesOf("timeZone").map(t=>t.toLowerCase()));return t===e||t===n||o.has(t.toLowerCase())||r.has(t.toLowerCase())}function g(e){return e===n?t.instance:e===o||"Etc/UTC"===e?s.utcInstance:r(e)}export{p as convertLegacyTimeZone,l as fromTimeReference,g as getLuxonTimeZone,w as getTimeZoneFormattingOptions,d as isTimeZoneValid,u as shortTimeZoneName,f as timeZoneProperty,Z as toTimeReference};
|