@arcgis/core 5.2.0-next.162 → 5.2.0-next.164
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/PopupTemplate.js +1 -1
- package/analysis/LineOfSightAnalysis.d.ts +1 -1
- package/analysis/LineOfSightAnalysisObserver.d.ts +5 -4
- package/analysis/LineOfSightAnalysisTarget.d.ts +4 -4
- package/analysis/Viewshed.d.ts +4 -4
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/092e311cb7aea92a6a26.js +1 -0
- package/assets/esri/core/workers/chunks/{8e19629899a5becf8e19.js → 150e7a7bd5df25693da7.js} +1 -1
- package/assets/esri/core/workers/chunks/1e1c45f75020d5e05dc3.js +1 -0
- package/assets/esri/core/workers/chunks/{8e4a7027d171fb60e51e.js → 1f7f4f821d422b46cae7.js} +1 -1
- package/assets/esri/core/workers/chunks/1fe24ffcd88280d84fbe.js +1 -0
- package/assets/esri/core/workers/chunks/226f862bbeb33fc7c597.js +1 -0
- package/assets/esri/core/workers/chunks/25a3bd8bede2d07d3a54.js +1 -0
- package/assets/esri/core/workers/chunks/2ad69cc496235702bbf2.js +1 -0
- package/assets/esri/core/workers/chunks/3f46acfda693c70abbdd.js +1 -0
- package/assets/esri/core/workers/chunks/434a8ba841a59e0deab9.js +1 -0
- package/assets/esri/core/workers/chunks/45fd2b456a6997584ca1.js +1 -0
- package/assets/esri/core/workers/chunks/{2e096537a3a5555a4a93.js → 4cb751dc8d00bdaeb04c.js} +1 -1
- package/assets/esri/core/workers/chunks/{85bba551057366cd00ae.js → 4db829a0238024736fe6.js} +1 -1
- package/assets/esri/core/workers/chunks/53ff68d4f9e365fc15cd.js +1 -0
- package/assets/esri/core/workers/chunks/542e5640ea1b80ef801a.js +1 -0
- package/assets/esri/core/workers/chunks/5a9b7eb26f936f03d02e.js +1 -0
- package/assets/esri/core/workers/chunks/5d76f4d97beee494bbbf.js +1 -0
- package/assets/esri/core/workers/chunks/5dc604e3691f36f03959.js +1 -0
- package/assets/esri/core/workers/chunks/5f07f52bb8b7721f08d3.js +1 -0
- package/assets/esri/core/workers/chunks/{5f4feca26102088ea565.js → 60737732ce495bbdd0fc.js} +1 -1
- package/assets/esri/core/workers/chunks/{9ce8b9b80da146a5bbf5.js → 60c79934799927114074.js} +1 -1
- package/assets/esri/core/workers/chunks/67f54efc817b241f8746.js +1 -0
- package/assets/esri/core/workers/chunks/{8aa80b892fde552577e8.js → 700b1d5bc67b7e1b3ff3.js} +1 -1
- package/assets/esri/core/workers/chunks/{f528ac5c648ca6a98582.js → 711cfb84659cb4437679.js} +1 -1
- package/assets/esri/core/workers/chunks/7159d9c36869cd82599e.js +29 -0
- package/assets/esri/core/workers/chunks/771dd92cb3e6a3427f66.js +1 -0
- package/assets/esri/core/workers/chunks/792d2b62356a1d953c88.js +1 -0
- package/assets/esri/core/workers/chunks/89c8b0f684c1f27d149e.js +1 -0
- package/assets/esri/core/workers/chunks/8ab57cb1bfd3dc8d3c2a.js +1 -0
- package/assets/esri/core/workers/chunks/95b82cbbe355266c65d7.js +1 -0
- package/assets/esri/core/workers/chunks/97b5f4302fb867c829f4.js +1 -0
- package/assets/esri/core/workers/chunks/9de5ad77bc37ec142218.js +1 -0
- package/assets/esri/core/workers/chunks/a65951f1d5702cfd996e.js +1 -0
- package/assets/esri/core/workers/chunks/aa4f3751f0d830113bed.js +1 -0
- package/assets/esri/core/workers/chunks/ad96132bc89671e595f3.js +1 -0
- package/assets/esri/core/workers/chunks/b1d989b72203113a06fe.js +1 -0
- package/assets/esri/core/workers/chunks/{fc73737b41e086f0ce0b.js → b59aaf30c7fe2c8d1aaa.js} +1 -1
- package/assets/esri/core/workers/chunks/b6d71a4ab788a09714f3.js +1 -0
- package/assets/esri/core/workers/chunks/b704f489d0f072a0bfcd.js +1 -0
- package/assets/esri/core/workers/chunks/b736046c6b4ede73ea46.js +1 -0
- package/assets/esri/core/workers/chunks/c070d2ddf290b4f92916.js +1 -0
- package/assets/esri/core/workers/chunks/{d6cd0039d6e9c40961e3.js → d1f98c5249c487eb96f1.js} +1 -1
- package/assets/esri/core/workers/chunks/d77c68e0fc3b259bf4f9.js +1 -0
- package/assets/esri/core/workers/chunks/e251921bc5367258c4d2.js +1 -0
- package/assets/esri/core/workers/chunks/ee08ae5b73439a1ff666.js +1 -0
- package/assets/esri/core/workers/chunks/{e0351753f6b4d1adf11e.js → fc0dbb588a4062615cb6.js} +1 -1
- package/assets/esri/core/workers/chunks/fcaf9450642fcef83286.js +1 -0
- package/assets/esri/core/workers/chunks/feb41abc03d677df6f73.js +1 -0
- package/chunks/GlobalIllumination.glsl.js +2 -17
- package/config.d.ts +11 -30
- package/config.js +1 -1
- package/core/workers/workerFactory.js +1 -1
- package/core/workers.d.ts +17 -0
- package/geometry/support/clipRay.js +1 -1
- package/geometry/support/plane.js +1 -1
- package/kernel.js +1 -1
- package/layers/FeatureLayer.d.ts +32 -14
- package/layers/GeoJSONLayer.d.ts +2 -107
- package/layers/MapImageLayer.d.ts +2 -1
- package/layers/SceneLayer.d.ts +40 -16
- package/layers/SubtypeGroupLayer.d.ts +63 -0
- package/layers/ViewshedLayer.d.ts +10 -4
- package/layers/WMSLayer.d.ts +2 -69
- package/layers/geospatialPDF/GeospatialPDFLayerWorker.js +1 -1
- package/layers/graphics/sources/FeatureLayerSource.js +1 -1
- package/layers/graphics/sources/support/QueryTask.js +1 -1
- package/layers/mixins/TemporalLayer.d.ts +70 -48
- package/layers/mixins/TiledImagery.d.ts +0 -11
- package/layers/support/LabelClass.d.ts +20 -2
- package/layers/support/Sublayer.d.ts +32 -2
- package/layers/support/TimeInformation.js +2 -0
- package/package.json +2 -2
- package/popup/content.d.ts +38 -1
- package/popup/content.js +1 -1
- package/rest/layerSources/DynamicWorkspaceLayer.d.ts +10 -6
- package/rest/query/operations/queryUtils.js +1 -1
- package/rest/support/timeUtils.js +2 -0
- package/smartMapping/popup/support/clusterUtils.js +1 -1
- package/smartMapping/popup/support/utils.js +2 -2
- package/smartMapping/renderers/size.js +1 -1
- package/smartMapping/renderers/support/regenerateUtils.js +1 -1
- package/support/timeUtils.d.ts +11 -0
- package/symbols/TextSymbol.d.ts +27 -2
- package/symbols/cim/CIMCursor.js +1 -1
- package/views/2d/analysis/AreaMeasurement/AreaMeasurementTool.js +1 -1
- package/views/2d/analysis/AreaMeasurementAnalysisView2D.js +1 -1
- package/views/2d/analysis/DistanceMeasurement/DistanceMeasurementTool.js +1 -1
- package/views/2d/analysis/DistanceMeasurementAnalysisView2D.js +1 -1
- package/views/2d/engine/webgl/GlyphWorker.js +1 -1
- package/views/2d/engine/webgl/animations/instructions.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedMarkerMeshWriter.js +1 -1
- package/views/3d/GroundView3D.js +1 -1
- package/views/3d/environment/SunLighting.d.ts +16 -1
- package/views/3d/environment/SunLighting.js +1 -1
- package/views/3d/environment/VirtualLighting.d.ts +16 -1
- package/views/3d/environment/VirtualLighting.js +1 -1
- package/views/3d/state/helpers/SceneIntersectionHelper.js +1 -1
- package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.js +1 -1
- package/views/3d/webgl-engine/effects/glow/applyEmissiveGlow.glsl.js +9 -4
- package/views/3d/webgl-engine/lib/Intersector.js +1 -1
- package/views/3d/webgl-engine/lib/RenderFeature.js +1 -1
- package/views/3d/webgl-engine/lib/Renderer.js +1 -1
- package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/internal/worldSizedRibbonLineIntersectionUtils.js +2 -0
- package/views/3d/webgl-engine/parts/RenderView.js +1 -1
- package/views/BasemapView.js +1 -1
- package/views/GroundView.d.ts +1 -1
- package/views/GroundView.js +1 -1
- package/views/SceneView.js +1 -1
- package/views/layers/LineOfSightLayerView.d.ts +2 -2
- package/views/layers/ViewshedLayerView.d.ts +2 -1
- package/views/support/ScheduledQueueProcessor.js +1 -1
- package/views/support/screenshotUtils.js +1 -1
- package/webscene/Slide.d.ts +1 -2
- package/widgets/Daylight/DaylightViewModel.js +1 -1
- package/widgets/DirectionalPad/VisibleElements.d.ts +5 -1
- package/widgets/Feature/FeatureExpression/FeatureExpressionViewModel.js +1 -1
- package/widgets/FloorFilter/FloorFilterViewModel.js +1 -1
- package/widgets/OrientedImageryViewer.js +1 -1
- package/widgets/Search/SearchViewModel.js +1 -1
- package/widgets/Search/support/layerSearchUtils.js +1 -1
- package/widgets/Sketch/SketchViewModel.d.ts +61 -2
- package/widgets/Sketch/SketchViewModel.js +1 -1
- package/widgets/Sketch/support/PluginManager.js +1 -1
- package/widgets/TimeSlider/TimeSliderViewModel.d.ts +3 -2
- package/widgets/TimeSlider.d.ts +5 -4
- package/widgets/UtilityNetworkTrace/UtilityNetworkTraceFeature.js +1 -1
- package/widgets/UtilityNetworkValidateTopology/UtilityNetworkValidateTopologyViewModel.d.ts +3 -3
- package/widgets/UtilityNetworkValidateTopology.d.ts +1 -1
- package/assets/esri/core/workers/chunks/0bd5012da287469b17d5.js +0 -1
- package/assets/esri/core/workers/chunks/0cb50bc2b2125c5fedf2.js +0 -1
- package/assets/esri/core/workers/chunks/112befb3b5b406f29298.js +0 -1
- package/assets/esri/core/workers/chunks/167b057ad50e6aef54de.js +0 -1
- package/assets/esri/core/workers/chunks/2d13a22f7b2427927fdc.js +0 -1
- package/assets/esri/core/workers/chunks/2f04b8679c9f15390517.js +0 -1
- package/assets/esri/core/workers/chunks/42045cf46497828cd3c0.js +0 -1
- package/assets/esri/core/workers/chunks/42fd2a7b22b03dacc6a7.js +0 -1
- package/assets/esri/core/workers/chunks/43cf862577bf37344ff4.js +0 -1
- package/assets/esri/core/workers/chunks/4be559c53fe5ac0d0d2e.js +0 -1
- package/assets/esri/core/workers/chunks/4e350d6c76957f5beb70.js +0 -1
- package/assets/esri/core/workers/chunks/4fe34da1c5d63e66ce98.js +0 -1
- package/assets/esri/core/workers/chunks/6c9266120d46e8c69dbf.js +0 -1
- package/assets/esri/core/workers/chunks/6c9acd9e4e201dc380e9.js +0 -1
- package/assets/esri/core/workers/chunks/6da7229433105a69eb3f.js +0 -1
- package/assets/esri/core/workers/chunks/74c866e0b66e61751861.js +0 -1
- package/assets/esri/core/workers/chunks/830ab9b8d000169da675.js +0 -1
- package/assets/esri/core/workers/chunks/849879c8aed16315194c.js +0 -1
- package/assets/esri/core/workers/chunks/8ff23ac0abeea0073b47.js +0 -1
- package/assets/esri/core/workers/chunks/939942b00ba380e2957e.js +0 -1
- package/assets/esri/core/workers/chunks/95dbbddac6581b9d671f.js +0 -1
- package/assets/esri/core/workers/chunks/a40b6d8b5c73e06e14d4.js +0 -1
- package/assets/esri/core/workers/chunks/aa1ac7954e4f0fefe15b.js +0 -1
- package/assets/esri/core/workers/chunks/b5df193c93e9c19f9700.js +0 -1
- package/assets/esri/core/workers/chunks/befa32b9e7b3fbdd431e.js +0 -1
- package/assets/esri/core/workers/chunks/c2c1f51a4668055c2838.js +0 -1
- package/assets/esri/core/workers/chunks/d0f5bee9db1ad51ae687.js +0 -1
- package/assets/esri/core/workers/chunks/d7429b58c90e015263ad.js +0 -1
- package/assets/esri/core/workers/chunks/d95d63e8d51244d71afb.js +0 -1
- package/assets/esri/core/workers/chunks/dfc81e66196c402f39b4.js +0 -29
- package/assets/esri/core/workers/chunks/dfd2dc5cdc97ffba8926.js +0 -1
- package/assets/esri/core/workers/chunks/e01fc1c31bc023dd0e33.js +0 -1
- package/assets/esri/core/workers/chunks/e1b7806ab3e1967b15f0.js +0 -1
- package/assets/esri/core/workers/chunks/e1f5d00878f27e1d413e.js +0 -1
- package/assets/esri/core/workers/chunks/ffbcb816b611049a6276.js +0 -1
|
@@ -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 t from"../../core/Error.js";import{toPt as n}from"../../core/screenUtils.js";import{ensureClass as r}from"../../core/accessorSupport/ensureType.js";import{fetchMessageBundle as i}from"../../intl/messages.js";import a from"../../renderers/ClassBreaksRenderer.js";import o from"../../renderers/support/AuthoringInfo.js";import s from"../../renderers/support/AuthoringInfoSizeStop.js";import c from"../../renderers/support/AuthoringInfoVisualVariable.js";import{setLabelsForClassBreaks as l}from"../../renderers/support/utils.js";import u from"../../renderers/visualVariables/SizeVariable.js";import{castSizeFromStringOrNumber as d}from"../../renderers/visualVariables/support/castSizeVariable.js";import f from"../../renderers/visualVariables/support/SizeStop.js";import p from"../../renderers/visualVariables/support/SizeVariableLegendOptions.js";import m from"../heuristics/ageUnit.js";import h from"../heuristics/outline.js";import g from"../heuristics/referenceSize.js";import _ from"../heuristics/sizeRange.js";import{getTypeSchemeData as v}from"./type.js";import{createPrimitiveOverrides as y,updateReferenceSizeSymbol as b,createReferenceSizeSymbol as x}from"./support/referenceSizeUtils.js";import{spliceVisualVariables as S,updateAuthoringInfoVisualVariable as C,getAuthoringInfoVisualVariable as w,isSizeVV as T,processRegenerateParams as E,getRendererToUpdate as D,getStyleType as O,hasOutlineVV as k,hasScaleDependentSizeVV as A,findSizeVVIndex as j,findOutlineVVIndex as M}from"./support/regenerateUtils.js";import{createPrimitiveOverrides as ee,updateSpikeSymbol as te,createSpikeSymbol as N,defaultSpikeSymbolStyle as P}from"./support/spikeUtils.js";import{resolveDataSeriesInfo as F}from"./support/timeSeriesUtils.js";import{errorCallback as I,getTitleAndExpressionForAgeRenderer as ne,updateAgeRendererAuthoringInfoVV as re,getClassBreaks as ie,getSummaryStatistics as ae,createSymbol as L,getSymbolOutlineFromScheme as R,getSymbolSizeFromScheme as z,verifyBasicFieldValidity as B,getSizeRangeForAxis as oe,getDataRange as se,getBasemapInfo as ce}from"./support/utils.js";import le from"../statistics/summaryStatisticsForTimeSeries.js";import{verifyDates as ue,supportedAgeUnits as de}from"../statistics/support/ageUtils.js";import{verifyBinningParams as V}from"../support/binningUtils.js";import{getNormalizationType as fe,getFieldsList as H,isAnyDateField as pe}from"../support/utils.js";import{createLayerAdapter as U,featureCapableLayerTypes as W,getLayerTypeLabels as G,binningCapableLayerTypes as K}from"../support/adapters/support/layerUtils.js";import{cloneScheme as q,getSchemes as me}from"../symbology/size.js";import{getColorFromSymbol as J}from"../../symbols/support/utils.js";const he=2**53-1,ge=[5,112.5];async function _e(e,n){let r=F({...e});if(!(r&&r.layer&&(r.field||r.valueExpression||r.sqlExpression)))throw new t(`size-visual-variable:missing-parameters`,`'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required`);if(r.valueExpression&&!r.sqlExpression&&!r.view)throw new t(`size-visual-variable:missing-parameters`,`View is required when 'valueExpression' is specified`);if(r.theme===`reference-size`&&!(r.view||r.field))throw new t(`size-visual-variable:missing-parameters`,`'view' and 'field' are required when 'theme' is 'reference-size'`);if(r.theme===`reference-size`&&r.valueExpression)throw new t(`size-visual-variable:missing-parameters`,`'valueExpression' is not supported when 'theme' is 'reference-size'`);r.forBinning&&V(r,`size-visual-variable`);let i={...r},a=r.forBinning?K:W,o=U(i.layer,a,r.forBinning);if(!o)throw new t(`size-visual-variable:invalid-parameters`,`'layer' must be one of these types: `+G(a).join(`, `));i.axis===`height`&&(i.sizeOptimizationEnabled=!1);let s=i.signal==null?null:{signal:i.signal};await o.load(s);let c=o.geometryType;if(c===`mesh`)throw new t(`size-visual-variable:invalid-parameters`,`Size visualization is not applicable to layers with 'mesh' geometry type`);if(i.worldScale){if(c===`polyline`||c===`polygon`)throw new t(`size-visual-variable:not-supported`,`'worldScale' sizing is not supported for polyline and polygon layers`);if(i.view?.type!==`3d`)throw new t(`size-visual-variable:invalid-parameters`,`'view' parameter should be an instance of SceneView when 'worldScale' parameter is true`)}if(i.theme===`reference-size`&&!r.forBinning&&c!==`polygon`)throw new t(`size-visual-variable:invalid-parameters`,`Reference size is only supported for polygon layers`);if(i.theme===`spike`&&!r.forBinning&&c!==`polygon`&&c!==`point`)throw new t(`size-visual-variable:invalid-parameters`,`Spike is only supported for point and polygon layers`);let l=await H({field:i.field,normalizationField:i.normalizationField,valueExpression:i.valueExpression}),u=B(o,l,`size-visual-variable:invalid-parameters`);if(u)throw u;i.theme===`spike`&&!i.spikeOptions?.symbolStyle&&(i.spikeOptions??={},i.spikeOptions.symbolStyle=P);let d={...i,layer:o,referenceSizeResult:n};return await ye(d),d}async function ve(e){let n=F({...e});if(!(n&&n.layer&&(n.field||n.valueExpression||n.sqlExpression)))throw new t(`size-continuous-renderer:missing-parameters`,`'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required`);if(n.valueExpression&&!n.sqlExpression&&!n.view)throw new t(`size-continuous-renderer:missing-parameters`,`View is required when 'valueExpression' is specified`);n.forBinning&&V(n,`size-continuous-renderer`);let r={...n};r.symbolType=r.symbolType||`2d`,r.defaultSymbolEnabled??=!0;let i=n.forBinning?K:W,a=U(r.layer,i,n.forBinning);if(!a)throw new t(`size-continuous-renderer:invalid-parameters`,`'layer' must be one of these types: `+G(i).join(`, `));let o=r.signal==null?null:{signal:r.signal};await a.load(o);let s=a.geometryType,c=r.symbolType.includes(`3d`);if(r.outlineOptimizationEnabled=r.theme!==`reference-size`&&r.theme!==`spike`&&s===`polygon`&&r.outlineOptimizationEnabled,s===`mesh`)throw new t(`size-continuous-renderer:invalid-parameters`,`Size visualization is not applicable to layers with 'mesh' geometry type`);if(c&&(s===`polyline`||s===`polygon`))throw new t(`size-continuous-renderer:not-supported`,`3d symbols are not supported for polyline and polygon layers`);if(r.symbolType.includes(`3d-volumetric`)&&r.view?.type!==`3d`)throw new t(`size-continuous-renderer:invalid-parameters`,`'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or 3d-volumetric-uniform`);if(r.theme===`reference-size`&&!n.forBinning&&s!==`polygon`)throw new t(`size-continuous-renderer:invalid-parameters`,`Reference size is only supported for polygon layers`);if(r.theme===`spike`&&!n.forBinning&&s!==`polygon`&&s!==`point`)throw new t(`size-continuous-renderer:invalid-parameters`,`Spike is only supported for point and polygon layers`);let l=await H({field:r.field,normalizationField:r.normalizationField,valueExpression:r.valueExpression}),u=B(a,l,`size-continuous-renderer:invalid-parameters`);if(u)throw u;r.theme===`spike`&&!r.spikeOptions?.symbolStyle&&(r.spikeOptions??={},r.spikeOptions.symbolStyle=P);let d={...r,layer:a};return await ye(d),d}async function ye(e){let t=e.layer,n=t.geometryType,r=t.layer,i=e.forBinning&&`featureReduction`in r&&r.featureReduction?.type===`binning`;if((n===`polygon`||i)&&e.view&&e.field&&!e.valueExpression&&(!e.theme||e.theme===`reference-size`)){try{e.referenceSizeResult=e.referenceSizeResult??await g({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 be(e){if(!e||!(e.layer&&e.view&&e.sizeStops))throw new t(`update-renderer-with-reference-size:missing-parameters`,`'layer', 'view and 'sizeStops' parameters are required`);let{view:n,forBinning:r}=e,i=e.forBinning?K:W,a=U(e.layer,i,e.forBinning);if(!a)throw new t(`update-renderer-with-reference-size:invalid-parameters`,`'layer' must be one of these types: `+G(i).join(`, `));let o=a.layer,s=e.renderer;if(!s){if(e.forBinning){if(!(`featureReduction`in o&&o.featureReduction&&`renderer`in o.featureReduction&&o.featureReduction.renderer&&(o.featureReduction.renderer.type===`class-breaks`||o.featureReduction.renderer.type===`unique-value`)))throw new t(`update-renderer-with-reference-size:invalid-parameters`,`Feature reduction renderer is not supported`);s=o.featureReduction.renderer}else{if(!(`renderer`in o&&o.renderer&&(o.renderer.type===`class-breaks`||o.renderer.type===`unique-value`)))throw new t(`update-renderer-with-reference-size:invalid-parameters`,`Renderer is not supported`);s=o.renderer}}let c=s.authoringInfo;if(!c||!c?.visualVariables?.some(e=>e.theme===`reference-size`))throw new t(`update-renderer-with-reference-size:invalid-parameters`,`'renderer.authoringInfo.visualVariables' should have an authoringInfoVisualVariable with 'theme' set to 'reference-size'`);let l=e.isGrid??(await g({view:n,layer:o,forBinning:r}))?.isGrid;return{...e,isGrid:l,renderer:s,layer:a}}async function xe(e){if(!e||!(e.layer&&e.sizeStops))throw new t(`update-renderer-with-spike:missing-parameters`,`'layer' and 'sizeStops' parameters are required`);let n=e.forBinning?K:W,r=U(e.layer,n,e.forBinning);if(!r)throw new t(`update-renderer-with-spike:invalid-parameters`,`'layer' must be one of these types: `+G(n).join(`, `));await r.load();let i=r.layer,a=e.renderer;if(!a){if(e.forBinning){if(!(`featureReduction`in i&&i.featureReduction&&`renderer`in i.featureReduction&&i.featureReduction.renderer&&(i.featureReduction.renderer.type===`class-breaks`||i.featureReduction.renderer.type===`unique-value`)))throw new t(`update-renderer-with-spike:invalid-parameters`,`Feature reduction renderer is not supported`);a=i.featureReduction.renderer}else{if(!(`renderer`in i&&i.renderer&&(i.renderer.type===`class-breaks`||i.renderer.type===`unique-value`)))throw new t(`update-renderer-with-spike:invalid-parameters`,`Renderer is not supported`);a=i.renderer}}let o=a.authoringInfo?.visualVariables.find(e=>e.theme===`spike`);if(!o)throw new t(`update-renderer-with-spike:invalid-parameters`,`'renderer.authoringInfo.visualVariables' should have an authoringInfoVisualVariable with 'theme' set to 'spike'`);let s=e.spikeOptions??{};return s.symbolStyle??=o?.spikeSymbolStyle?void 0:P,{...e,renderer:a,layer:r,spikeOptions:s}}async function Se(e){let n=F({...e});if(!(n&&n.layer&&(n.field||n.valueExpression)))throw new t(`size-class-breaks-renderer:missing-parameters`,`'layer' and 'field' or 'valueExpression' parameters are required`);if(n.valueExpression&&!n.view)throw new t(`size-class-breaks-renderer:missing-parameters`,`View is required when 'valueExpression' is specified`);n.forBinning&&V(n,`size-class-breaks-renderer`);let r={...n};r.symbolType=r.symbolType||`2d`,r.defaultSymbolEnabled??=!0,r.classificationMethod??=`equal-interval`,r.normalizationType=fe(r);let i=n.forBinning?K:W,a=U(r.layer,i,n.forBinning);if(!a)throw new t(`size-class-breaks-renderer:invalid-parameters`,`'layer' must be one of these types: `+G(i).join(`, `));if((r.minValue==null||r.maxValue==null)&&(r.minValue!=null||r.maxValue!=null))throw new t(`size-class-breaks-renderer:missing-parameters`,`Both 'minValue' and 'maxValue' are required when specifying custom data range`);let o=r.signal==null?null:{signal:r.signal};await a.load(o);let s=a.geometryType,c=r.symbolType.includes(`3d`);if(r.outlineOptimizationEnabled=s===`polygon`&&r.outlineOptimizationEnabled,s===`mesh`)throw new t(`size-class-breaks-renderer:invalid-parameters`,`Size visualization is not applicable to layers with 'mesh' geometry type`);if(c&&(s===`polyline`||s===`polygon`))throw new t(`size-class-breaks-renderer:not-supported`,`3d symbols are not supported for polyline and polygon layers`);if(r.symbolType.includes(`3d-volumetric`)&&r.view?.type!==`3d`)throw new t(`size-class-breaks-renderer:invalid-parameters`,`'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or 3d-volumetric-uniform`);let l=await H({field:r.field,normalizationField:r.normalizationField}),u=B(a,l,`size-class-breaks-renderer:invalid-parameters`);if(u)throw u;return{...r,layer:a}}function Ce(e){let t={...e};delete t.basemap,delete t.sizeScheme,delete t.legendOptions,delete t.symbolType,delete t.defaultSymbolEnabled;let n=t;return n.analyzeData=t.minValue==null||t.maxValue==null,n}function Y(e){let t={...e},n=!!t.symbolType?.includes(`3d-volumetric`),r=t;return r.worldScale=n,n&&(r.axis=t.symbolType===`3d-volumetric-uniform`?`all`:`height`),delete t.symbolType,delete t.defaultSymbolEnabled,r}async function we(e){if(!(e&&e.layer&&e.view&&e.startTime&&e.endTime))throw new t(`size-age-renderer:missing-parameters`,`'layer', 'view', 'startTime', 'endTime' parameters are required`);let n={...e};n.symbolType??=`2d`,n.defaultSymbolEnabled??=!0;let r=U(n.layer,W);if(!r)throw new t(`size-age-renderer:invalid-parameters`,`'layer' must be one of these types: `+G(W).join(`, `));let i=n.signal==null?null:{signal:n.signal};await r.load(i);let a=r.geometryType,o=n.symbolType.includes(`3d`);if(n.outlineOptimizationEnabled=a===`polygon`&&n.outlineOptimizationEnabled,a===`mesh`)throw new t(`size-age-renderer:invalid-parameters`,`Size visualization is not applicable to layers with 'mesh' geometry type`);if(o&&(a===`polyline`||a===`polygon`))throw new t(`size-age-renderer:not-supported`,`3d symbols are not supported for polyline and polygon layers`);if(n.symbolType.includes(`3d-volumetric`)&&!(n.view&&n.view.type===`3d`))throw new t(`size-age-renderer:invalid-parameters`,`'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or 3d-volumetric-uniform`);let s=ue(r,n.startTime,n.endTime,`size-age-renderer:invalid-parameters`);if(s)throw s;if(n.unit&&!de.includes(n.unit))throw new t(`size-age-renderer:invalid-unit`,`Supported units are: ${de.join(`, `)}`);return{...n,layer:r}}async function Te(e){let n=`regenerate-size-visual-variables`;E(e,n);let r=await D(e),i=O(r);if(!i||![`size-continuous`,`univariate-color-size`,`color-size`,`relationship-size`,`type-size`].includes(i))throw new t(`${n}:invalid-parameters`,`Renderer is invalid`);let a=w(r,`size`);if(!a)throw new t(`${n}:invalid-parameters`,`Renderer does not have a size visual variable authoringInfo`);let o=a.theme,s=o===`reference-size`,c=o===`spike`,l=r.visualVariables?.find(T);if(!l&&!s&&!c)throw new t(`${n}:invalid-parameters`,`Renderer does not have a size visual variable`);let u=a.field,d=a.normalizationField,f=null,p=null;u||(l?.field?(u=l.field,d=l.normalizationField):r.field?(u=r.field,d=r.normalizationField):(f=l?.valueExpression??r.valueExpression,p=l?.valueExpressionTitle??r.valueExpressionTitle));let{layer:m,forBinning:h,filter:g,view:_,signal:v}=e,y=a.dataSeriesName,b=a.dataSeriesCalculationName,x=A(r),S=await _e({layer:m,field:u,valueExpression:f,valueExpressionTitle:p,normalizationField:d,theme:o,sizeOptimizationEnabled:x,forBinning:h,dataSeriesName:y,dataSeriesCalculationName:b,filter:g,view:_,signal:v},e.referenceSizeResult);return o===`reference-size`&&a.referenceSizeScale!=null&&S.referenceSizeResult&&!S.referenceSizeResult.isGrid&&!S.sizeOptimizationEnabled&&(S.sizeOptimizationEnabled=!0),{...e,creatorParameters:S,renderer:r}}async function Ee(e){let n=`regenerate-size-continuous-renderer`;E(e,n);let r=await D(e),i=O(r);if(!i||![`size-continuous`,`univariate-color-size`].includes(i))throw new t(`${n}:invalid-parameters`,`Renderer is invalid`);let{authoringInfo:a,field:o,normalizationField:s,valueExpression:c,valueExpressionTitle:l}=r,u=a?.visualVariables.find(e=>e.type===`size`),d=u.theme,{layer:f,forBinning:p,filter:m,view:h,signal:g}=e,_=u.dataSeriesName,v=u.dataSeriesCalculationName,y=await ve({layer:f,field:o,valueExpression:c,valueExpressionTitle:l,normalizationField:s,theme:d,outlineOptimizationEnabled:k(r),sizeOptimizationEnabled:A(r),forBinning:p,dataSeriesName:_,dataSeriesCalculationName:v,filter:m,view:h,signal:g});return d===`reference-size`&&u.referenceSizeScale!=null&&y.referenceSizeResult&&!y.referenceSizeResult.isGrid&&!y.sizeOptimizationEnabled&&(y.sizeOptimizationEnabled=!0),{...e,creatorParameters:y,renderer:r}}async function De(e){let n=`regenerate-size-class-breaks-renderer`;await E(e,n);let r=await D(e);if(O(r)!==`size-class-breaks`)throw new t(`${n}:invalid-parameters`,`Renderer is invalid`);let{authoringInfo:i,field:a,normalizationField:o,normalizationType:s,normalizationTotal:c,valueExpression:l,valueExpressionTitle:u}=r,{classificationMethod:d,standardDeviationInterval:f}=i,p=r.classBreakInfos.length,{layer:m,forBinning:h,filter:g,view:_,signal:v}=e,y=i?.dataSeriesName,b=i?.dataSeriesCalculationName,x=await Se({layer:m,field:a,valueExpression:l,valueExpressionTitle:u,normalizationType:s,normalizationField:o,normalizationTotal:c,classificationMethod:d,standardDeviationInterval:f,numClasses:p,outlineOptimizationEnabled:k(r),forBinning:h,dataSeriesName:y,dataSeriesCalculationName:b,filter:g,view:_,signal:v});return{...e,creatorParameters:x,renderer:r}}async function Oe(e){let n=`regenerate-size-age-renderer`;await E(e,n);let r=await D(e);if(O(r)!==`size-age`)throw new t(`${n}:invalid-parameters`,`Renderer is invalid`);let{authoringInfo:i}=r,a=i?.visualVariables.find(e=>e.type===`size`),o=a.startTime,s=a.endTime,c=a.units,l=a.theme,{layer:u,filter:d,view:f,signal:p}=e,m=await we({layer:u,startTime:o,endTime:s,unit:c,theme:l,outlineOptimizationEnabled:k(r),sizeOptimizationEnabled:A(r),filter:d,view:f,signal:p});return{...e,creatorParameters:m,renderer:r}}async function X(e){let t=e.sizeScheme,n=null,r=null,i=await ce(e.basemap,e.view);if(n=i.basemapId==null?null:i.basemapId,r=i.basemapTheme==null?null:i.basemapTheme,t)return{scheme:q(t),basemapId:n,basemapTheme:r};let a=me({basemapTheme:r,geometryType:e.geometryType,worldScale:e.worldScale,view:e.view});return a&&(t=a.primaryScheme,n=a.basemapId,r=a.basemapTheme),{scheme:t,basemapId:n,basemapTheme:r}}function ke(e,t){switch(t){case`point`:case`multipoint`:{let t=e;return[d(t.minSize),d(t.maxSize)]}case`polyline`:{let t=e;return[d(t.minWidth),d(t.maxWidth)]}case`polygon`:{let t=e;return[d(t.marker.minSize),d(t.marker.maxSize)]}}}function Ae(e,t){e.transformationType===`clamped-linear`&&t===`below`&&e.flipSizes()}async function je(e,t,n,r,i,a){return Me(e,t,n,r)||ke(i,a)}function Me(e,t,n,r){return r===`spike`?[n?.minHeight??ge[0],n?.maxHeight??ge[1]]:r===`reference-size`&&t?[1,t.size]:e?[e.minSize,e.maxSize]:null}function Z(e,t){if(t.theme===`reference-size`&&e.min!=null&&e.max!=null&&e.avg!=null&&e.stddev!=null){let t=e.avg,n=e.min,r=e.max,i=e.stddev,a=t===0?0:i/t,o=n>0&&n<1&&r<2&&a<.5,s=n>0&&n<100&&r<200&&a<.5,c=t+2*i;return{minDataValue:o||s?0:n,maxDataValue:o?1:s?100:c,defaultValuesUsed:!1}}let{theme:n,field:r}=t,i=t.layer,a=r&&typeof r!=`function`?i.getField(r):null,o=pe(a);return se(e,n,o,n===`above`||n===`below`)}function Q(e,n){if((n===`spike`||n===`reference-size`)&&e.minDataValue!=null&&e.maxDataValue!=null&&e.minSize!=null&&e.maxSize!=null&&typeof e.minSize==`number`&&typeof e.maxSize==`number`)return[new f({value:e.minDataValue,size:e.minSize}),new f({value:e.maxDataValue,size:e.maxSize})];throw new t(`get-size-stops-for-theme`,`Invalid size variable or theme`)}async function Ne(e,n,i,a){let{theme:l,field:d,normalizationField:f,minValue:m,maxValue:h,axis:g}=e,_=e.layer.geometryType,v=await X({basemap:e.basemap,geometryType:_,sizeScheme:e.sizeScheme,worldScale:e.worldScale,view:e.view}),y=v.scheme;if(!y)throw new t(`size-visual-variable:insufficient-info`,`Unable to find size scheme`);let b=await je(i,a,e.spikeOptions,l,y,_),{minDataValue:x,maxDataValue:S,defaultValuesUsed:C}=Z(n,e),w=[],T=g===`height`,E=T?g:void 0,D=b[0],O=b[1];if(T&&typeof D==`number`&&typeof O==`number`){let e=oe({minSize:D,maxSize:O},E);w.push(new u({axis:`width-and-depth`,minSize:e.minSize})),O=e.maxSize}let k=new u({field:d??void 0,valueExpression:e.valueExpression,valueExpressionTitle:e.valueExpressionTitle,valueUnit:`unknown`,normalizationField:f,axis:E,minSize:D,maxSize:O,minDataValue:x,maxDataValue:S,legendOptions:r(p,e.legendOptions)});Ae(k,l),w.unshift(k);let A=l===`reference-size`?new c({type:`size`,field:e.field,normalizationField:e.normalizationField,dataSeriesName:e.dataSeriesName,dataSeriesCalculationName:e.dataSeriesCalculationName,sizeStops:Q(k,l).map(({label:e,size:t,value:n})=>new s({label:e,size:t,value:n})),theme:l,referenceSizeScale:a?.isGrid||e.sizeOptimizationEnabled?e?.view?.scale:void 0,referenceSizeSymbolStyle:e.referenceSizeOptions?.symbolStyle,minSliderValue:m??n.min,maxSliderValue:h??n.max}):l===`spike`?new c({type:`size`,field:e.field,normalizationField:e.normalizationField,dataSeriesName:e.dataSeriesName,dataSeriesCalculationName:e.dataSeriesCalculationName,spikeSymbolStyle:e.spikeOptions?.symbolStyle,sizeStops:Q(k,l).map(({label:e,size:t,value:n})=>new s({label:e,size:t,value:n})),theme:l,minSliderValue:m??n.min,maxSliderValue:h??n.max}):new c({type:`size`,theme:l,dataSeriesName:e.dataSeriesName,dataSeriesCalculationName:e.dataSeriesCalculationName,minSliderValue:m??n.min,maxSliderValue:h??n.max}),j=new o({visualVariables:[A]});return{basemapId:v.basemapId,basemapTheme:v.basemapTheme,visualVariables:w,statistics:n,isGrid:a?.isGrid,defaultValuesUsed:C,sizeScheme:q(y),authoringInfo:j}}async function Pe(e,t,n,r,o){let s=await i(`esri/smartMapping/t9n/smartMapping`),c=o.layer,l=o.field,u=c.geometryType,d=o.defaultSymbolEnabled,f=q(e.sizeScheme),p=u===`polygon`,m=p?f.marker:f,h=p?f.background:null,g=p?`point`:u,_=t?.opacity,v=e.isGrid,b=o.theme,S=b===`reference-size`,C=b===`spike`,w=!S&&!C?e.visualVariables.map(e=>e.clone()):[];t?.visualVariables?.length&&w.push(...t.visualVariables.map(e=>e.clone()));let T=S?x({type:o.referenceSizeOptions?.symbolStyle||`circle`,color:m.color,primitiveOverrides:y({view:o.view,field:l,normalizationField:r,sizeStops:Q(e.visualVariables[0],b),sizeByScaleEnabled:v||!!o.sizeOptimizationEnabled})}):C?N({color:m.color,strokeColor:m.outline.color,baseWidth:o.spikeOptions?.baseWidth,strokeWidth:o.spikeOptions?.strokeWidth,defaultHeight:o.spikeOptions?.defaultHeight,primitiveOverrides:ee({field:l,normalizationField:r,sizeStops:Q(e.visualVariables[0],b)}),symbolStyle:o.spikeOptions?.symbolStyle}):L(g,{type:o.symbolType,color:m.color,size:z(m,g),outline:R(m,g,_)});return{renderer:new a({backgroundFillSymbol:!v&&h?L(u,{type:o.symbolType,color:h.color,outline:R(h,u,_)}):null,classBreakInfos:[{minValue:-he,maxValue:he,symbol:T}],defaultLabel:d?s.other:null,defaultSymbol:d&&!S&&!C?L(g,{type:o.symbolType,color:m.noDataColor,size:z(m,g,!0),outline:R(m,g,_)}):null,field:l,normalizationField:r,normalizationType:n,valueExpression:o.valueExpression,valueExpressionTitle:o.valueExpressionTitle,visualVariables:w,authoringInfo:e.authoringInfo?.clone()}),visualVariables:e.visualVariables.map(e=>e.clone()),statistics:e.statistics,defaultValuesUsed:e.defaultValuesUsed,isGrid:v,sizeScheme:q(e.sizeScheme),basemapId:e.basemapId,basemapTheme:e.basemapTheme}}function Fe(e,t){let r=n(e.minSize),i=(n(e.maxSize)-r)/(t>=4?t-1:t),a=[];for(let e=0;e<t;e++)a.push(r+i*e);return a}async function Ie(e,t){let n=await i(`esri/smartMapping/t9n/smartMapping`),r=e.layer,s=e.defaultSymbolEnabled,c=r.geometryType,u=c===`polygon`,d=e.symbolType?.includes(`3d-volumetric`),f=await X({basemap:e.basemap,geometryType:c,sizeScheme:e.sizeScheme,worldScale:d,view:e.view}),p=f.scheme,{result:m,outlineResult:h}=t,g=m?.classBreakInfos??[],_=e.classificationMethod,v=e.normalizationType,y=u?p.marker:p,b=u?p.background:null,x=u?`point`:c,S=ke(y,x),C=d?oe({minSize:S[0],maxSize:S[1]},`height`):null,w=Fe({minSize:S[0],maxSize:C?C.maxSize:S[1]},g.length),T=h?.opacity,E=new a({backgroundFillSymbol:b&&L(c,{type:e.symbolType,color:b.color,outline:R(b,c,T)}),classBreakInfos:g.map((t,n)=>({minValue:t.minValue,maxValue:t.maxValue,symbol:L(x,{type:e.symbolType,color:y.color,size:w[n],widthAndDepth:C?.minSize,outline:R(y,x,T)}),label:t.label})),defaultLabel:s?n.other:null,defaultSymbol:s?L(x,{type:e.symbolType,color:y.noDataColor,size:z(y,x,!0),widthAndDepth:C?.minSize,outline:R(y,x,T)}):null,field:e.field,valueExpression:e.valueExpression,valueExpressionTitle:e.valueExpressionTitle,normalizationType:v,normalizationField:e.normalizationField,normalizationTotal:v===`percent-of-total`?m?.normalizationTotal:void 0,legendOptions:e.legendOptions,authoringInfo:new o({type:`class-breaks-size`,classificationMethod:_,standardDeviationInterval:e.standardDeviationInterval,dataSeriesName:e.dataSeriesName,dataSeriesCalculationName:e.dataSeriesCalculationName})});return _!==`standard-deviation`&&l({classBreakInfos:E.classBreakInfos,classificationMethod:_,normalizationType:v,round:!0}),h?.visualVariables?.length&&(E.visualVariables=h.visualVariables.map(e=>e.clone())),{renderer:E,sizeScheme:q(p),classBreaksResult:m,defaultValuesUsed:!!t.defaultValuesUsed,basemapId:f.basemapId,basemapTheme:f.basemapTheme}}async function $(e){let t=await _e(e),{view:n,field:r,valueExpression:i,minValue:a,maxValue:o,layer:s,normalizationField:c,signal:l,statistics:u,filter:d,dataSeriesName:f}=t,p=c?`field`:void 0,[m,h]=await Promise.all([u??(f?le({layer:s,view:n,signal:l,timeSeriesName:f,timeSeriesCalculationName:t.dataSeriesCalculationName,filter:d}):ae({layer:s,field:r,valueExpression:i,sqlExpression:t.sqlExpression,sqlWhere:t.sqlWhere,normalizationType:p,normalizationField:c,filter:d,minValue:a,maxValue:o,view:n,signal:l})),t.sizeOptimizationEnabled?_({view:n,layer:s,signal:l,filter:d}).catch(I):null]);return Ne(t,m,h,t.referenceSizeResult)}async function Le(e){let{view:t,filter:n,renderer:r,signal:i,creatorParameters:a}=await Te(e),{field:o,normalizationField:c,valueExpression:l,valueExpressionTitle:d,theme:f,layer:p,sizeOptimizationEnabled:m,spikeOptions:h,referenceSizeResult:g,dataSeriesName:v,dataSeriesCalculationName:y}=a,b=c?`field`:void 0,x=r.authoringInfo?.clone(),[S,C]=await Promise.all([(v?le({layer:p,view:t,signal:i,timeSeriesName:v,timeSeriesCalculationName:y,filter:n}):Promise.resolve(null)).then(e=>e??ae({layer:p,field:o,valueExpression:l,normalizationField:c,normalizationType:b,filter:n,view:t,signal:i})),m&&!g?_({view:t,layer:p,signal:i,filter:n}).catch(I):null]),w=Me(C,g,h,f),{minDataValue:E,maxDataValue:D}=Z(S,{theme:f,layer:p,field:o}),O=r.visualVariables?.find(T),k=(O?.stops?null:O)??new u({field:o??void 0,valueExpression:l,valueExpressionTitle:d,valueUnit:`unknown`,normalizationField:c});w&&(k.minSize=w[0],k.maxSize=w[1]),k.minDataValue=E,k.maxDataValue=D,v&&(k.valueExpression=l??null,k.valueExpressionTitle=d??null),Ae(k,f);let A=x.visualVariables.find(e=>e.type===`size`);A.dataSeriesName=v??A.dataSeriesName,A.dataSeriesCalculationName=y??A.dataSeriesCalculationName,A.minSliderValue=S.min,A.maxSliderValue=S.max;let j=f===`reference-size`;return(j||f===`spike`)&&(A.sizeStops=Q(k,f).map(({label:e,size:t,value:n})=>new s({label:e,size:t,value:n})),j&&(A.referenceSizeScale=g?.isGrid||m?t?.scale:void 0)),{visualVariables:f===`reference-size`||f===`spike`?[]:[k],isGrid:!!g?.isGrid,authoringInfo:x,statistics:S}}async function Re(e){let t=await ve(e),n={layer:t.layer,view:t.view,filter:t.filter,signal:t.signal},[r,i]=await Promise.all([$(Y(t)),t.outlineOptimizationEnabled?h(n).catch(I):null]),a=t.normalizationField;return Pe(r,i,a?`field`:void 0,a,t)}async function ze(e){let{renderer:t,view:n,signal:r,filter:i,creatorParameters:a,forBinning:o}=await Ee(e),{layer:s,sizeOptimizationEnabled:c,outlineOptimizationEnabled:l,theme:u,referenceSizeResult:d,valueExpression:f,valueExpressionTitle:p}=a,[m,g]=await Promise.all([Le({...e,referenceSizeResult:d}),l?h({layer:s,view:n,filter:i,signal:r}).catch(I):null]),_=u===`reference-size`,v=u===`spike`;S(t,m.visualVariables,j),S(t,g?.visualVariables,M),t.valueExpression=f??null,t.valueExpressionTitle=p??null,C(t,m.authoringInfo,`size`);let y=m.statistics;if(!_&&!v)return{renderer:t,statistics:y};if(v)return{renderer:await Ve({layer:s,renderer:t,forBinning:o,sizeStops:w(t,`size`,`spike`)?.sizeStops}),statistics:y};let b=m.isGrid;return{renderer:await Be({layer:s,renderer:t,view:n,forBinning:o,sizeOptimizationEnabled:c,sizeStops:w(t,`size`,`reference-size`)?.sizeStops,isGrid:b}),isGrid:b,statistics:y}}async function Be(n){let{layer:r,referenceSizeOptions:i,renderer:a,sizeScheme:c,sizeStops:l,typeScheme:u,view:d,isGrid:f}=await be(n),p=a.clone();p.authoringInfo??=new o;let m=p.authoringInfo.visualVariables.find(e=>e.theme===`reference-size`),h=n.field??m?.field,g=n.normalizationField??m?.normalizationField;if(!h)throw new t(`update-renderer-with-reference-size:invalid-parameters`,`'field' parameter or authoring info with 'field' is required.`);let _=y({view:d,field:h,normalizationField:g,sizeStops:l,sizeByScaleEnabled:f||!!n.sizeOptimizationEnabled}),v=i?.symbolStyle||m?.referenceSizeSymbolStyle||`circle`;if(p.type===`class-breaks`){let e=(`geometryType`in r?r.geometryType:null)===`polygon`&&c&&`marker`in c?c.marker:null;p.classBreakInfos.forEach(t=>{let n=e?.color??J(t.symbol,1);t.symbol.type===`cim`?b(t.symbol,{type:v,color:n,primitiveOverrides:_}):n&&(t.symbol=x({type:v,color:n,primitiveOverrides:_}))})}else if(p.type===`unique-value`){let t=p.uniqueValueGroups,n=(`geometryType`in r?r.geometryType:null)===`polygon`&&u&&`colors`in u?u.colors:null,i=n?e(n,p.uniqueValueInfos?.length??0):null,a=0;if(t){for(let e of t)for(let t of e.classes??[]){let e=i?i[a]:J(t.symbol,1);t.symbol?.type===`cim`?b(t.symbol,{type:v,color:e,primitiveOverrides:_}):e&&(t.symbol=x({type:v,color:e,primitiveOverrides:_})),a++}p.uniqueValueGroups=t}}return m&&(m.field=h,m.normalizationField=g,m.sizeStops=l.map(({label:e,size:t,value:n})=>new s({label:e,size:t,value:n})),m.referenceSizeScale=f||n.sizeOptimizationEnabled?d.scale:void 0,m.referenceSizeSymbolStyle=v),p}async function Ve(n){let{layer:r,renderer:i,sizeScheme:a,sizeStops:c,typeScheme:l,spikeOptions:u}=await xe(n),d=i.clone();d.authoringInfo??=new o;let f=d.authoringInfo.visualVariables.find(e=>e.theme===`spike`),p=n.field??f?.field,m=n.normalizationField??f?.normalizationField;if(!p)throw new t(`update-renderer-with-spike:invalid-parameters`,`'field' parameter or authoring info with 'field' is required.`);let h=ee({field:p,normalizationField:m,sizeStops:c}),g=`geometryType`in r?r.geometryType:null,_={primitiveOverrides:h,...u},y=u?.symbolStyle,b=y&&y.includes(`outline`)&&(y.includes(`solid-fill`)||y.includes(`gradient-fill`));if(d.type===`class-breaks`){if(a||b){let e=(g?await X({geometryType:g,sizeScheme:a,view:n.view}):null)?.scheme,t=g===`polygon`&&e&&`marker`in e?e.marker:e;a&&(_.color=t&&`color`in t?t?.color:void 0),b&&(_.strokeColor=t&&`outline`in t?t.outline.color:void 0)}d.classBreakInfos.forEach(e=>{if(e.symbol.type===`cim`)te(e.symbol,_);else{let t=_.color??J(e.symbol,1)??void 0;t&&(e.symbol=N({..._,color:t}))}})}else if(d.type===`unique-value`){let t=d.uniqueValueGroups,r=d.uniqueValueInfos?.length??0,i=null;if(l||b){let t=(g&&r?await v({numColors:r,geometryType:g,typeScheme:l,view:n.view}):null)?.scheme;if(l){let n=t&&`colors`in t?t.colors:null;i=n?e(n,r):null}b&&(_.strokeColor=t&&`outline`in t?t.outline.color:void 0)}let a=0;if(t){for(let e of t)for(let t of e.classes??[]){if(t.symbol?.type===`cim`)te(t.symbol,{..._,color:i?.[a]});else{let e=i?.[a]??J(t.symbol,1)??void 0;e&&(t.symbol=N({..._,color:e}))}a++}d.uniqueValueGroups=t}}return f&&(f.field=p,f.normalizationField=m,f.sizeStops=c.map(({label:e,size:t,value:n})=>new s({label:e,size:t,value:n})),y&&(f.spikeSymbolStyle=y)),d}async function He(e){let t=await Se(e);return Ie(t,await ie(Ce(t),t.outlineOptimizationEnabled))}async function Ue(e){let{renderer:n,creatorParameters:r}=await De(e),{outlineOptimizationEnabled:i,normalizationType:a,classificationMethod:o,valueExpression:s,valueExpressionTitle:c}=r,{result:u,outlineResult:d}=await ie(Ce(r),i),f=u.classBreakInfos;if(r.numClasses!==f.length)throw new t(`regenerate-class-breaks-renderer:invalid-parameters`,`The number of class breaks generated does not match the number of class breaks in the renderer.`);return n.classBreakInfos.forEach((e,t)=>{e.minValue=f[t].minValue,e.maxValue=f[t].maxValue,e.label=f[t].label}),n.normalizationTotal=a===`percent-of-total`?u.normalizationTotal:void 0,o!==`standard-deviation`&&l({classBreakInfos:n.classBreakInfos,classificationMethod:o,normalizationType:a,round:!0}),S(n,d?.visualVariables,M),n.valueExpression=s??null,n.valueExpressionTitle=c??null,{renderer:n}}async function We(e){let t=await we(e),{defaultSymbolEnabled:n,view:r,startTime:i,endTime:a,symbolType:o,minValue:s,maxValue:c,signal:l,filter:u,layer:d}=t,[f,p]=await Promise.all([t.unit?{unit:t.unit,statistics:null,valueExpression:null}:await m({view:r,layer:d,startTime:i,endTime:a,minValue:s,maxValue:c,signal:l,filter:u}),t.outlineOptimizationEnabled?h({layer:d,view:r,filter:u,signal:l}).catch(I):null]),{unit:g,statistics:_}=f,{valueExpression:v,title:y}=await ne(t,g),b=await Pe(await $(Y({layer:d,basemap:t.basemap,valueExpression:v,symbolType:o,statistics:_,legendOptions:{title:y},theme:t.theme,sizeScheme:t.sizeScheme,sizeOptimizationEnabled:t.sizeOptimizationEnabled,view:t.view,minValue:s,maxValue:c,filter:u,signal:l})),p,null,null,{layer:d,valueExpression:v,defaultSymbolEnabled:n,symbolType:o});return(b.renderer.authoringInfo?.visualVariables)?.forEach(e=>re(e,i,a,g)),{...b,unit:g}}async function Ge(e){let{renderer:t,creatorParameters:n}=await Oe(e),{layer:r,outlineOptimizationEnabled:i,sizeOptimizationEnabled:a,startTime:o,endTime:s,theme:c,view:l,signal:u,filter:d}=n,[f,p]=await Promise.all([m({view:l,layer:r,startTime:o,endTime:s,signal:u,filter:d}),i?h({layer:r,view:l,filter:d,signal:u}).catch(I):null]),{unit:g,statistics:_}=f,{valueExpression:v,title:y}=await ne(n,g),b=await $(Y({layer:r,valueExpression:v,statistics:_,legendOptions:{title:y},sizeOptimizationEnabled:a,theme:c,view:l,filter:d,signal:u}));return S(t,b.visualVariables,j),S(t,p?.visualVariables,M),t.authoringInfo=b.authoringInfo.clone(),(t.authoringInfo?.visualVariables)?.forEach(e=>re(e,o,s,g)),{renderer:t}}export{We as createAgeRenderer,He as createClassBreaksRenderer,Re as createContinuousRenderer,$ as createVisualVariables,Q as getSizeStopsForTheme,Ge as regenerateAgeRenderer,Ue as regenerateClassBreaksRenderer,ze as regenerateContinuousRenderer,Le as regenerateVisualVariables,Be as updateRendererWithReferenceSize,Ve as updateRendererWithSpike};
|
|
2
|
+
import{createUniqueColors as e}from"../../core/colorUtils.js";import t from"../../core/Error.js";import{toPt as n}from"../../core/screenUtils.js";import{ensureClass as r}from"../../core/accessorSupport/ensureType.js";import{fetchMessageBundle as i}from"../../intl/messages.js";import a from"../../renderers/ClassBreaksRenderer.js";import o from"../../renderers/support/AuthoringInfo.js";import s from"../../renderers/support/AuthoringInfoSizeStop.js";import c from"../../renderers/support/AuthoringInfoVisualVariable.js";import{setLabelsForClassBreaks as l}from"../../renderers/support/utils.js";import u from"../../renderers/visualVariables/SizeVariable.js";import{castSizeFromStringOrNumber as d}from"../../renderers/visualVariables/support/castSizeVariable.js";import f from"../../renderers/visualVariables/support/SizeStop.js";import p from"../../renderers/visualVariables/support/SizeVariableLegendOptions.js";import m from"../heuristics/ageUnit.js";import h from"../heuristics/outline.js";import g from"../heuristics/referenceSize.js";import _ from"../heuristics/sizeRange.js";import{getTypeSchemeData as v}from"./type.js";import{createPrimitiveOverrides as y,updateReferenceSizeSymbol as b,createReferenceSizeSymbol as x}from"./support/referenceSizeUtils.js";import{spliceVisualVariables as S,updateAuthoringInfoVisualVariable as C,getAuthoringInfoVisualVariable as w,isSizeVV as T,processRegenerateParams as E,getRendererToUpdate as D,getStyleType as O,hasOutlineVV as k,hasScaleDependentSizeVV as A,findSizeVVIndex as j,findOutlineVVIndex as M}from"./support/regenerateUtils.js";import{createPrimitiveOverrides as ee,updateSpikeSymbol as te,createSpikeSymbol as N,defaultSpikeSymbolStyle as P}from"./support/spikeUtils.js";import{resolveDataSeriesInfo as F}from"./support/timeSeriesUtils.js";import{errorCallback as I,getTitleAndExpressionForAgeRenderer as ne,updateAgeRendererAuthoringInfoVV as re,getClassBreaks as ie,getSummaryStatistics as ae,createSymbol as L,getSymbolOutlineFromScheme as R,getSymbolSizeFromScheme as z,verifyBasicFieldValidity as B,getSizeRangeForAxis as oe,getDataRange as se,getBasemapInfo as ce}from"./support/utils.js";import le from"../statistics/summaryStatisticsForTimeSeries.js";import{verifyDates as ue,supportedAgeUnits as de}from"../statistics/support/ageUtils.js";import{verifyBinningParams as V}from"../support/binningUtils.js";import{getNormalizationType as fe,getFieldsList as H,isAnyDateField as pe}from"../support/utils.js";import{createLayerAdapter as U,featureCapableLayerTypes as W,getLayerTypeLabels as G,binningCapableLayerTypes as K}from"../support/adapters/support/layerUtils.js";import{cloneScheme as q,getSchemes as me}from"../symbology/size.js";import{getColorFromSymbol as J}from"../../symbols/support/utils.js";const he=2**53-1,ge=[5,112.5];async function _e(e,n){let r=F({...e});if(!(r&&r.layer&&(r.field||r.valueExpression||r.sqlExpression)))throw new t(`size-visual-variable:missing-parameters`,`'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required`);if(r.valueExpression&&!r.sqlExpression&&!r.view)throw new t(`size-visual-variable:missing-parameters`,`View is required when 'valueExpression' is specified`);if(r.theme===`reference-size`&&!(r.view||r.field))throw new t(`size-visual-variable:missing-parameters`,`'view' and 'field' are required when 'theme' is 'reference-size'`);if(r.theme===`reference-size`&&r.valueExpression)throw new t(`size-visual-variable:missing-parameters`,`'valueExpression' is not supported when 'theme' is 'reference-size'`);r.forBinning&&V(r,`size-visual-variable`);let i={...r},a=r.forBinning?K:W,o=U(i.layer,a,r.forBinning);if(!o)throw new t(`size-visual-variable:invalid-parameters`,`'layer' must be one of these types: `+G(a).join(`, `));i.axis===`height`&&(i.sizeOptimizationEnabled=!1);let s=i.signal==null?null:{signal:i.signal};await o.load(s);let c=o.geometryType;if(c===`mesh`)throw new t(`size-visual-variable:invalid-parameters`,`Size visualization is not applicable to layers with 'mesh' geometry type`);if(i.worldScale){if(c===`polyline`||c===`polygon`)throw new t(`size-visual-variable:not-supported`,`'worldScale' sizing is not supported for polyline and polygon layers`);if(i.view?.type!==`3d`)throw new t(`size-visual-variable:invalid-parameters`,`'view' parameter should be an instance of SceneView when 'worldScale' parameter is true`)}if(i.theme===`reference-size`&&!r.forBinning&&c!==`polygon`)throw new t(`size-visual-variable:invalid-parameters`,`Reference size is only supported for polygon layers`);if(i.theme===`spike`&&!r.forBinning&&c!==`polygon`&&c!==`point`)throw new t(`size-visual-variable:invalid-parameters`,`Spike is only supported for point and polygon layers`);let l=await H({field:i.field,normalizationField:i.normalizationField,valueExpression:i.valueExpression}),u=B(o,l,`size-visual-variable:invalid-parameters`);if(u)throw u;i.theme===`spike`&&!i.spikeOptions?.symbolStyle&&(i.spikeOptions??={},i.spikeOptions.symbolStyle=P);let d={...i,layer:o,referenceSizeResult:n};return await ye(d),d}async function ve(e){let n=F({...e});if(!(n&&n.layer&&(n.field||n.valueExpression||n.sqlExpression)))throw new t(`size-continuous-renderer:missing-parameters`,`'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required`);if(n.valueExpression&&!n.sqlExpression&&!n.view)throw new t(`size-continuous-renderer:missing-parameters`,`View is required when 'valueExpression' is specified`);n.forBinning&&V(n,`size-continuous-renderer`);let r={...n};r.symbolType=r.symbolType||`2d`,r.defaultSymbolEnabled??=!0;let i=n.forBinning?K:W,a=U(r.layer,i,n.forBinning);if(!a)throw new t(`size-continuous-renderer:invalid-parameters`,`'layer' must be one of these types: `+G(i).join(`, `));let o=r.signal==null?null:{signal:r.signal};await a.load(o);let s=a.geometryType,c=r.symbolType.includes(`3d`);if(r.outlineOptimizationEnabled=r.theme!==`reference-size`&&r.theme!==`spike`&&s===`polygon`&&r.outlineOptimizationEnabled,s===`mesh`)throw new t(`size-continuous-renderer:invalid-parameters`,`Size visualization is not applicable to layers with 'mesh' geometry type`);if(c&&(s===`polyline`||s===`polygon`))throw new t(`size-continuous-renderer:not-supported`,`3d symbols are not supported for polyline and polygon layers`);if(r.symbolType.includes(`3d-volumetric`)&&r.view?.type!==`3d`)throw new t(`size-continuous-renderer:invalid-parameters`,`'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or 3d-volumetric-uniform`);if(r.theme===`reference-size`&&!n.forBinning&&s!==`polygon`)throw new t(`size-continuous-renderer:invalid-parameters`,`Reference size is only supported for polygon layers`);if(r.theme===`spike`&&!n.forBinning&&s!==`polygon`&&s!==`point`)throw new t(`size-continuous-renderer:invalid-parameters`,`Spike is only supported for point and polygon layers`);let l=await H({field:r.field,normalizationField:r.normalizationField,valueExpression:r.valueExpression}),u=B(a,l,`size-continuous-renderer:invalid-parameters`);if(u)throw u;r.theme===`spike`&&!r.spikeOptions?.symbolStyle&&(r.spikeOptions??={},r.spikeOptions.symbolStyle=P);let d={...r,layer:a};return await ye(d),d}async function ye(e){let t=e.layer,n=t.geometryType,r=t.layer,i=e.forBinning&&`featureReduction`in r&&r.featureReduction?.type===`binning`;if((n===`polygon`||i)&&e.view&&e.field&&!e.valueExpression&&(!e.theme||e.theme===`reference-size`)){try{e.referenceSizeResult=e.referenceSizeResult??await g({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 be(e){if(!e||!(e.layer&&e.view&&e.sizeStops))throw new t(`update-renderer-with-reference-size:missing-parameters`,`'layer', 'view and 'sizeStops' parameters are required`);let{view:n,forBinning:r}=e,i=e.forBinning?K:W,a=U(e.layer,i,e.forBinning);if(!a)throw new t(`update-renderer-with-reference-size:invalid-parameters`,`'layer' must be one of these types: `+G(i).join(`, `));let o=a.layer,s=e.renderer;if(!s){if(e.forBinning){if(!(`featureReduction`in o&&o.featureReduction&&`renderer`in o.featureReduction&&o.featureReduction.renderer&&(o.featureReduction.renderer.type===`class-breaks`||o.featureReduction.renderer.type===`unique-value`)))throw new t(`update-renderer-with-reference-size:invalid-parameters`,`Feature reduction renderer is not supported`);s=o.featureReduction.renderer}else{if(!(`renderer`in o&&o.renderer&&(o.renderer.type===`class-breaks`||o.renderer.type===`unique-value`)))throw new t(`update-renderer-with-reference-size:invalid-parameters`,`Renderer is not supported`);s=o.renderer}}let c=s.authoringInfo;if(!c||!c?.visualVariables?.some(e=>e.theme===`reference-size`))throw new t(`update-renderer-with-reference-size:invalid-parameters`,`'renderer.authoringInfo.visualVariables' should have an authoringInfoVisualVariable with 'theme' set to 'reference-size'`);let l=e.isGrid??(await g({view:n,layer:o,forBinning:r}))?.isGrid;return{...e,isGrid:l,renderer:s,layer:a}}async function xe(e){if(!e||!(e.layer&&e.sizeStops))throw new t(`update-renderer-with-spike:missing-parameters`,`'layer' and 'sizeStops' parameters are required`);let n=e.forBinning?K:W,r=U(e.layer,n,e.forBinning);if(!r)throw new t(`update-renderer-with-spike:invalid-parameters`,`'layer' must be one of these types: `+G(n).join(`, `));await r.load();let i=r.layer,a=e.renderer;if(!a){if(e.forBinning){if(!(`featureReduction`in i&&i.featureReduction&&`renderer`in i.featureReduction&&i.featureReduction.renderer&&(i.featureReduction.renderer.type===`class-breaks`||i.featureReduction.renderer.type===`unique-value`)))throw new t(`update-renderer-with-spike:invalid-parameters`,`Feature reduction renderer is not supported`);a=i.featureReduction.renderer}else{if(!(`renderer`in i&&i.renderer&&(i.renderer.type===`class-breaks`||i.renderer.type===`unique-value`)))throw new t(`update-renderer-with-spike:invalid-parameters`,`Renderer is not supported`);a=i.renderer}}let o=a.authoringInfo?.visualVariables.find(e=>e.theme===`spike`);if(!o)throw new t(`update-renderer-with-spike:invalid-parameters`,`'renderer.authoringInfo.visualVariables' should have an authoringInfoVisualVariable with 'theme' set to 'spike'`);let s=e.spikeOptions??{};return s.symbolStyle??=o?.spikeSymbolStyle?void 0:P,{...e,renderer:a,layer:r,spikeOptions:s}}async function Se(e){let n=F({...e});if(!(n&&n.layer&&(n.field||n.valueExpression)))throw new t(`size-class-breaks-renderer:missing-parameters`,`'layer' and 'field' or 'valueExpression' parameters are required`);if(n.valueExpression&&!n.view)throw new t(`size-class-breaks-renderer:missing-parameters`,`View is required when 'valueExpression' is specified`);n.forBinning&&V(n,`size-class-breaks-renderer`);let r={...n};r.symbolType=r.symbolType||`2d`,r.defaultSymbolEnabled??=!0,r.classificationMethod??=`equal-interval`,r.normalizationType=fe(r);let i=n.forBinning?K:W,a=U(r.layer,i,n.forBinning);if(!a)throw new t(`size-class-breaks-renderer:invalid-parameters`,`'layer' must be one of these types: `+G(i).join(`, `));if((r.minValue==null||r.maxValue==null)&&(r.minValue!=null||r.maxValue!=null))throw new t(`size-class-breaks-renderer:missing-parameters`,`Both 'minValue' and 'maxValue' are required when specifying custom data range`);let o=r.signal==null?null:{signal:r.signal};await a.load(o);let s=a.geometryType,c=r.symbolType.includes(`3d`);if(r.outlineOptimizationEnabled=s===`polygon`&&r.outlineOptimizationEnabled,s===`mesh`)throw new t(`size-class-breaks-renderer:invalid-parameters`,`Size visualization is not applicable to layers with 'mesh' geometry type`);if(c&&(s===`polyline`||s===`polygon`))throw new t(`size-class-breaks-renderer:not-supported`,`3d symbols are not supported for polyline and polygon layers`);if(r.symbolType.includes(`3d-volumetric`)&&r.view?.type!==`3d`)throw new t(`size-class-breaks-renderer:invalid-parameters`,`'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or 3d-volumetric-uniform`);let l=await H({field:r.field,normalizationField:r.normalizationField}),u=B(a,l,`size-class-breaks-renderer:invalid-parameters`);if(u)throw u;return{...r,layer:a}}function Ce(e){let t={...e};delete t.basemap,delete t.sizeScheme,delete t.legendOptions,delete t.symbolType,delete t.defaultSymbolEnabled;let n=t;return n.analyzeData=t.minValue==null||t.maxValue==null,n}function Y(e){let t={...e},n=!!t.symbolType?.includes(`3d-volumetric`),r=t;return r.worldScale=n,n&&(r.axis=t.symbolType===`3d-volumetric-uniform`?`all`:`height`),delete t.symbolType,delete t.defaultSymbolEnabled,r}async function we(e){if(!(e&&e.layer&&e.view&&e.startTime&&e.endTime))throw new t(`size-age-renderer:missing-parameters`,`'layer', 'view', 'startTime', 'endTime' parameters are required`);let n={...e};n.symbolType??=`2d`,n.defaultSymbolEnabled??=!0;let r=U(n.layer,W);if(!r)throw new t(`size-age-renderer:invalid-parameters`,`'layer' must be one of these types: `+G(W).join(`, `));let i=n.signal==null?null:{signal:n.signal};await r.load(i);let a=r.geometryType,o=n.symbolType.includes(`3d`);if(n.outlineOptimizationEnabled=a===`polygon`&&n.outlineOptimizationEnabled,a===`mesh`)throw new t(`size-age-renderer:invalid-parameters`,`Size visualization is not applicable to layers with 'mesh' geometry type`);if(o&&(a===`polyline`||a===`polygon`))throw new t(`size-age-renderer:not-supported`,`3d symbols are not supported for polyline and polygon layers`);if(n.symbolType.includes(`3d-volumetric`)&&!(n.view&&n.view.type===`3d`))throw new t(`size-age-renderer:invalid-parameters`,`'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or 3d-volumetric-uniform`);let s=ue(r,n.startTime,n.endTime,`size-age-renderer:invalid-parameters`);if(s)throw s;if(n.unit&&!de.includes(n.unit))throw new t(`size-age-renderer:invalid-unit`,`Supported units are: ${de.join(`, `)}`);return{...n,layer:r}}async function Te(e){let n=`regenerate-size-visual-variables`;E(e,n);let r=await D(e),i=O(r);if(!i||![`size-continuous`,`univariate-color-size`,`color-size`,`relationship-size`,`type-size`].includes(i))throw new t(`${n}:invalid-parameters`,`Renderer is invalid`);let a=w(r,`size`);if(!a)throw new t(`${n}:invalid-parameters`,`Renderer does not have a size visual variable authoringInfo`);let o=a.theme,s=o===`reference-size`,c=o===`spike`,l=r.visualVariables?.find(T);if(!l&&!s&&!c)throw new t(`${n}:invalid-parameters`,`Renderer does not have a size visual variable`);let u=a.field,d=a.normalizationField,f=null,p=null;u||(l?.field?(u=l.field,d=l.normalizationField):r.field?(u=r.field,d=r.normalizationField):(f=l?.valueExpression??r.valueExpression,p=l?.valueExpressionTitle??r.valueExpressionTitle));let{layer:m,forBinning:h,filter:g,view:_,signal:v}=e,y=a.dataSeriesName,b=a.dataSeriesCalculationName,x=A(r),S=await _e({layer:m,field:u,valueExpression:f,valueExpressionTitle:p,normalizationField:d,theme:o,sizeOptimizationEnabled:x,forBinning:h,dataSeriesName:y,dataSeriesCalculationName:b,filter:g,view:_,signal:v},e.referenceSizeResult);return o===`reference-size`&&a.referenceSizeScale!=null&&S.referenceSizeResult&&!S.referenceSizeResult.isGrid&&!S.sizeOptimizationEnabled&&(S.sizeOptimizationEnabled=!0),{...e,creatorParameters:S,renderer:r}}async function Ee(e){let n=`regenerate-size-continuous-renderer`;E(e,n);let r=await D(e),i=O(r);if(!i||![`size-continuous`,`univariate-color-size`].includes(i))throw new t(`${n}:invalid-parameters`,`Renderer is invalid`);let{authoringInfo:a,field:o,normalizationField:s,valueExpression:c,valueExpressionTitle:l}=r,u=a?.visualVariables.find(e=>e.type===`size`),d=u.theme,{layer:f,forBinning:p,filter:m,view:h,signal:g}=e,_=u.dataSeriesName,v=u.dataSeriesCalculationName,y=await ve({layer:f,field:o,valueExpression:c,valueExpressionTitle:l,normalizationField:s,theme:d,outlineOptimizationEnabled:k(r),sizeOptimizationEnabled:A(r),forBinning:p,dataSeriesName:_,dataSeriesCalculationName:v,filter:m,view:h,signal:g});return d===`reference-size`&&u.referenceSizeScale!=null&&y.referenceSizeResult&&!y.referenceSizeResult.isGrid&&!y.sizeOptimizationEnabled&&(y.sizeOptimizationEnabled=!0),{...e,creatorParameters:y,renderer:r}}async function De(e){let n=`regenerate-size-class-breaks-renderer`;await E(e,n);let r=await D(e);if(O(r)!==`size-class-breaks`)throw new t(`${n}:invalid-parameters`,`Renderer is invalid`);let{authoringInfo:i,field:a,normalizationField:o,normalizationType:s,normalizationTotal:c,valueExpression:l,valueExpressionTitle:u}=r,{classificationMethod:d,standardDeviationInterval:f}=i,p=r.classBreakInfos.length,m=r.classBreakInfos[0]?.symbol,h=m?.type===`point-3d`?m.symbolLayers.at(0):null,g=h?.type===`object`?`3d-volumetric`:h?`3d-flat`:`2d`,{layer:_,forBinning:v,filter:y,view:b,signal:x}=e,S=i?.dataSeriesName,C=i?.dataSeriesCalculationName,w=await Se({layer:_,symbolType:g,field:a,valueExpression:l,valueExpressionTitle:u,normalizationType:s,normalizationField:o,normalizationTotal:c,classificationMethod:d,standardDeviationInterval:f,numClasses:p,outlineOptimizationEnabled:k(r),forBinning:v,dataSeriesName:S,dataSeriesCalculationName:C,filter:y,view:b,signal:x});return{...e,creatorParameters:w,renderer:r}}async function Oe(e){let n=`regenerate-size-age-renderer`;await E(e,n);let r=await D(e);if(O(r)!==`size-age`)throw new t(`${n}:invalid-parameters`,`Renderer is invalid`);let{authoringInfo:i}=r,a=i?.visualVariables.find(e=>e.type===`size`),o=a.startTime,s=a.endTime,c=a.units,l=a.theme,{layer:u,filter:d,view:f,signal:p}=e,m=await we({layer:u,startTime:o,endTime:s,unit:c,theme:l,outlineOptimizationEnabled:k(r),sizeOptimizationEnabled:A(r),filter:d,view:f,signal:p});return{...e,creatorParameters:m,renderer:r}}async function X(e){let t=e.sizeScheme,n=null,r=null,i=await ce(e.basemap,e.view);if(n=i.basemapId==null?null:i.basemapId,r=i.basemapTheme==null?null:i.basemapTheme,t)return{scheme:q(t),basemapId:n,basemapTheme:r};let a=me({basemapTheme:r,geometryType:e.geometryType,worldScale:e.worldScale,view:e.view});return a&&(t=a.primaryScheme,n=a.basemapId,r=a.basemapTheme),{scheme:t,basemapId:n,basemapTheme:r}}function ke(e,t){switch(t){case`point`:case`multipoint`:{let t=e;return[d(t.minSize),d(t.maxSize)]}case`polyline`:{let t=e;return[d(t.minWidth),d(t.maxWidth)]}case`polygon`:{let t=e;return[d(t.marker.minSize),d(t.marker.maxSize)]}}}function Ae(e,t){e.transformationType===`clamped-linear`&&t===`below`&&e.flipSizes()}async function je(e,t,n,r,i,a){return Me(e,t,n,r)||ke(i,a)}function Me(e,t,n,r){return r===`spike`?[n?.minHeight??ge[0],n?.maxHeight??ge[1]]:r===`reference-size`&&t?[1,t.size]:e?[e.minSize,e.maxSize]:null}function Z(e,t){if(t.theme===`reference-size`&&e.min!=null&&e.max!=null&&e.avg!=null&&e.stddev!=null){let t=e.avg,n=e.min,r=e.max,i=e.stddev,a=t===0?0:i/t,o=n>0&&n<1&&r<2&&a<.5,s=n>0&&n<100&&r<200&&a<.5,c=t+2*i;return{minDataValue:o||s?0:n,maxDataValue:o?1:s?100:c,defaultValuesUsed:!1}}let{theme:n,field:r}=t,i=t.layer,a=r&&typeof r!=`function`?i.getField(r):null,o=pe(a);return se(e,n,o,n===`above`||n===`below`)}function Q(e,n){if((n===`spike`||n===`reference-size`)&&e.minDataValue!=null&&e.maxDataValue!=null&&e.minSize!=null&&e.maxSize!=null&&typeof e.minSize==`number`&&typeof e.maxSize==`number`)return[new f({value:e.minDataValue,size:e.minSize}),new f({value:e.maxDataValue,size:e.maxSize})];throw new t(`get-size-stops-for-theme`,`Invalid size variable or theme`)}async function Ne(e,n,i,a){let{theme:l,field:d,normalizationField:f,minValue:m,maxValue:h,axis:g}=e,_=e.layer.geometryType,v=await X({basemap:e.basemap,geometryType:_,sizeScheme:e.sizeScheme,worldScale:e.worldScale,view:e.view}),y=v.scheme;if(!y)throw new t(`size-visual-variable:insufficient-info`,`Unable to find size scheme`);let b=await je(i,a,e.spikeOptions,l,y,_),{minDataValue:x,maxDataValue:S,defaultValuesUsed:C}=Z(n,e),w=[],T=g===`height`,E=T?g:void 0,D=b[0],O=b[1];if(T&&typeof D==`number`&&typeof O==`number`){let e=oe({minSize:D,maxSize:O},E);w.push(new u({axis:`width-and-depth`,minSize:e.minSize})),O=e.maxSize}let k=new u({field:d??void 0,valueExpression:e.valueExpression,valueExpressionTitle:e.valueExpressionTitle,valueUnit:`unknown`,normalizationField:f,axis:E,minSize:D,maxSize:O,minDataValue:x,maxDataValue:S,legendOptions:r(p,e.legendOptions)});Ae(k,l),w.unshift(k);let A=l===`reference-size`?new c({type:`size`,field:e.field,normalizationField:e.normalizationField,dataSeriesName:e.dataSeriesName,dataSeriesCalculationName:e.dataSeriesCalculationName,sizeStops:Q(k,l).map(({label:e,size:t,value:n})=>new s({label:e,size:t,value:n})),theme:l,referenceSizeScale:a?.isGrid||e.sizeOptimizationEnabled?e?.view?.scale:void 0,referenceSizeSymbolStyle:e.referenceSizeOptions?.symbolStyle,minSliderValue:m??n.min,maxSliderValue:h??n.max}):l===`spike`?new c({type:`size`,field:e.field,normalizationField:e.normalizationField,dataSeriesName:e.dataSeriesName,dataSeriesCalculationName:e.dataSeriesCalculationName,spikeSymbolStyle:e.spikeOptions?.symbolStyle,sizeStops:Q(k,l).map(({label:e,size:t,value:n})=>new s({label:e,size:t,value:n})),theme:l,minSliderValue:m??n.min,maxSliderValue:h??n.max}):new c({type:`size`,theme:l,dataSeriesName:e.dataSeriesName,dataSeriesCalculationName:e.dataSeriesCalculationName,minSliderValue:m??n.min,maxSliderValue:h??n.max}),j=new o({visualVariables:[A]});return{basemapId:v.basemapId,basemapTheme:v.basemapTheme,visualVariables:w,statistics:n,isGrid:a?.isGrid,defaultValuesUsed:C,sizeScheme:q(y),authoringInfo:j}}async function Pe(e,t,n,r,o){let s=await i(`esri/smartMapping/t9n/smartMapping`),c=o.layer,l=o.field,u=c.geometryType,d=o.defaultSymbolEnabled,f=q(e.sizeScheme),p=u===`polygon`,m=p?f.marker:f,h=p?f.background:null,g=p?`point`:u,_=t?.opacity,v=e.isGrid,b=o.theme,S=b===`reference-size`,C=b===`spike`,w=!S&&!C?e.visualVariables.map(e=>e.clone()):[];t?.visualVariables?.length&&w.push(...t.visualVariables.map(e=>e.clone()));let T=S?x({type:o.referenceSizeOptions?.symbolStyle||`circle`,color:m.color,primitiveOverrides:y({view:o.view,field:l,normalizationField:r,sizeStops:Q(e.visualVariables[0],b),sizeByScaleEnabled:v||!!o.sizeOptimizationEnabled})}):C?N({color:m.color,strokeColor:m.outline.color,baseWidth:o.spikeOptions?.baseWidth,strokeWidth:o.spikeOptions?.strokeWidth,defaultHeight:o.spikeOptions?.defaultHeight,primitiveOverrides:ee({field:l,normalizationField:r,sizeStops:Q(e.visualVariables[0],b)}),symbolStyle:o.spikeOptions?.symbolStyle}):L(g,{type:o.symbolType,color:m.color,size:z(m,g),outline:R(m,g,_)});return{renderer:new a({backgroundFillSymbol:!v&&h?L(u,{type:o.symbolType,color:h.color,outline:R(h,u,_)}):null,classBreakInfos:[{minValue:-he,maxValue:he,symbol:T}],defaultLabel:d?s.other:null,defaultSymbol:d&&!S&&!C?L(g,{type:o.symbolType,color:m.noDataColor,size:z(m,g,!0),outline:R(m,g,_)}):null,field:l,normalizationField:r,normalizationType:n,valueExpression:o.valueExpression,valueExpressionTitle:o.valueExpressionTitle,visualVariables:w,authoringInfo:e.authoringInfo?.clone()}),visualVariables:e.visualVariables.map(e=>e.clone()),statistics:e.statistics,defaultValuesUsed:e.defaultValuesUsed,isGrid:v,sizeScheme:q(e.sizeScheme),basemapId:e.basemapId,basemapTheme:e.basemapTheme}}function Fe(e,t){let r=n(e.minSize),i=(n(e.maxSize)-r)/(t>=4?t-1:t),a=[];for(let e=0;e<t;e++)a.push(r+i*e);return a}async function Ie(e,t){let n=await i(`esri/smartMapping/t9n/smartMapping`),r=e.layer,s=e.defaultSymbolEnabled,c=r.geometryType,u=c===`polygon`,d=e.symbolType?.includes(`3d-volumetric`),f=await X({basemap:e.basemap,geometryType:c,sizeScheme:e.sizeScheme,worldScale:d,view:e.view}),p=f.scheme,{result:m,outlineResult:h}=t,g=m?.classBreakInfos??[],_=e.classificationMethod,v=e.normalizationType,y=u?p.marker:p,b=u?p.background:null,x=u?`point`:c,S=ke(y,x),C=d?oe({minSize:S[0],maxSize:S[1]},`height`):null,w=Fe({minSize:S[0],maxSize:C?C.maxSize:S[1]},g.length),T=h?.opacity,E=new a({backgroundFillSymbol:b&&L(c,{type:e.symbolType,color:b.color,outline:R(b,c,T)}),classBreakInfos:g.map((t,n)=>({minValue:t.minValue,maxValue:t.maxValue,symbol:L(x,{type:e.symbolType,color:y.color,size:w[n],widthAndDepth:C?.minSize,outline:R(y,x,T)}),label:t.label})),defaultLabel:s?n.other:null,defaultSymbol:s?L(x,{type:e.symbolType,color:y.noDataColor,size:z(y,x,!0),widthAndDepth:C?.minSize,outline:R(y,x,T)}):null,field:e.field,valueExpression:e.valueExpression,valueExpressionTitle:e.valueExpressionTitle,normalizationType:v,normalizationField:e.normalizationField,normalizationTotal:v===`percent-of-total`?m?.normalizationTotal:void 0,legendOptions:e.legendOptions,authoringInfo:new o({type:`class-breaks-size`,classificationMethod:_,standardDeviationInterval:e.standardDeviationInterval,dataSeriesName:e.dataSeriesName,dataSeriesCalculationName:e.dataSeriesCalculationName})});return _!==`standard-deviation`&&l({classBreakInfos:E.classBreakInfos,classificationMethod:_,normalizationType:v,round:!0}),h?.visualVariables?.length&&(E.visualVariables=h.visualVariables.map(e=>e.clone())),{renderer:E,sizeScheme:q(p),classBreaksResult:m,defaultValuesUsed:!!t.defaultValuesUsed,basemapId:f.basemapId,basemapTheme:f.basemapTheme}}async function $(e){let t=await _e(e),{view:n,field:r,valueExpression:i,minValue:a,maxValue:o,layer:s,normalizationField:c,signal:l,statistics:u,filter:d,dataSeriesName:f}=t,p=c?`field`:void 0,[m,h]=await Promise.all([u??(f?le({layer:s,view:n,signal:l,timeSeriesName:f,timeSeriesCalculationName:t.dataSeriesCalculationName,filter:d}):ae({layer:s,field:r,valueExpression:i,sqlExpression:t.sqlExpression,sqlWhere:t.sqlWhere,normalizationType:p,normalizationField:c,filter:d,minValue:a,maxValue:o,view:n,signal:l})),t.sizeOptimizationEnabled?_({view:n,layer:s,signal:l,filter:d}).catch(I):null]);return Ne(t,m,h,t.referenceSizeResult)}async function Le(e){let{view:t,filter:n,renderer:r,signal:i,creatorParameters:a}=await Te(e),{field:o,normalizationField:c,valueExpression:l,valueExpressionTitle:d,theme:f,layer:p,sizeOptimizationEnabled:m,spikeOptions:h,referenceSizeResult:g,dataSeriesName:v,dataSeriesCalculationName:y}=a,b=c?`field`:void 0,x=r.authoringInfo?.clone(),[S,C]=await Promise.all([(v?le({layer:p,view:t,signal:i,timeSeriesName:v,timeSeriesCalculationName:y,filter:n}):Promise.resolve(null)).then(e=>e??ae({layer:p,field:o,valueExpression:l,normalizationField:c,normalizationType:b,filter:n,view:t,signal:i})),m&&!g?_({view:t,layer:p,signal:i,filter:n}).catch(I):null]),w=Me(C,g,h,f),{minDataValue:E,maxDataValue:D}=Z(S,{theme:f,layer:p,field:o}),O=r.visualVariables?.find(T),k=(O?.stops?null:O)??new u({field:o??void 0,valueExpression:l,valueExpressionTitle:d,valueUnit:`unknown`,normalizationField:c});w&&(k.minSize=w[0],k.maxSize=w[1]),k.minDataValue=E,k.maxDataValue=D,v&&(k.valueExpression=l??null,k.valueExpressionTitle=d??null),Ae(k,f);let A=x.visualVariables.find(e=>e.type===`size`);A.dataSeriesName=v??A.dataSeriesName,A.dataSeriesCalculationName=y??A.dataSeriesCalculationName,A.minSliderValue=S.min,A.maxSliderValue=S.max;let j=f===`reference-size`;return(j||f===`spike`)&&(A.sizeStops=Q(k,f).map(({label:e,size:t,value:n})=>new s({label:e,size:t,value:n})),j&&(A.referenceSizeScale=g?.isGrid||m?t?.scale:void 0)),{visualVariables:f===`reference-size`||f===`spike`?[]:[k],isGrid:!!g?.isGrid,authoringInfo:x,statistics:S}}async function Re(e){let t=await ve(e),n={layer:t.layer,view:t.view,filter:t.filter,signal:t.signal},[r,i]=await Promise.all([$(Y(t)),t.outlineOptimizationEnabled?h(n).catch(I):null]),a=t.normalizationField;return Pe(r,i,a?`field`:void 0,a,t)}async function ze(e){let{renderer:t,view:n,signal:r,filter:i,creatorParameters:a,forBinning:o}=await Ee(e),{layer:s,sizeOptimizationEnabled:c,outlineOptimizationEnabled:l,theme:u,referenceSizeResult:d,valueExpression:f,valueExpressionTitle:p}=a,[m,g]=await Promise.all([Le({...e,referenceSizeResult:d}),l?h({layer:s,view:n,filter:i,signal:r}).catch(I):null]),_=u===`reference-size`,v=u===`spike`;S(t,m.visualVariables,j),S(t,g?.visualVariables,M),t.valueExpression=f??null,t.valueExpressionTitle=p??null,C(t,m.authoringInfo,`size`);let y=m.statistics;if(!_&&!v)return{renderer:t,statistics:y};if(v)return{renderer:await Ve({layer:s,renderer:t,forBinning:o,sizeStops:w(t,`size`,`spike`)?.sizeStops}),statistics:y};let b=m.isGrid;return{renderer:await Be({layer:s,renderer:t,view:n,forBinning:o,sizeOptimizationEnabled:c,sizeStops:w(t,`size`,`reference-size`)?.sizeStops,isGrid:b}),isGrid:b,statistics:y}}async function Be(n){let{layer:r,referenceSizeOptions:i,renderer:a,sizeScheme:c,sizeStops:l,typeScheme:u,view:d,isGrid:f}=await be(n),p=a.clone();p.authoringInfo??=new o;let m=p.authoringInfo.visualVariables.find(e=>e.theme===`reference-size`),h=n.field??m?.field,g=n.normalizationField??m?.normalizationField;if(!h)throw new t(`update-renderer-with-reference-size:invalid-parameters`,`'field' parameter or authoring info with 'field' is required.`);let _=y({view:d,field:h,normalizationField:g,sizeStops:l,sizeByScaleEnabled:f||!!n.sizeOptimizationEnabled}),v=i?.symbolStyle||m?.referenceSizeSymbolStyle||`circle`;if(p.type===`class-breaks`){let e=(`geometryType`in r?r.geometryType:null)===`polygon`&&c&&`marker`in c?c.marker:null;p.classBreakInfos.forEach(t=>{let n=e?.color??J(t.symbol,1);t.symbol.type===`cim`?b(t.symbol,{type:v,color:n,primitiveOverrides:_}):n&&(t.symbol=x({type:v,color:n,primitiveOverrides:_}))})}else if(p.type===`unique-value`){let t=p.uniqueValueGroups,n=(`geometryType`in r?r.geometryType:null)===`polygon`&&u&&`colors`in u?u.colors:null,i=n?e(n,p.uniqueValueInfos?.length??0):null,a=0;if(t){for(let e of t)for(let t of e.classes??[]){let e=i?i[a]:J(t.symbol,1);t.symbol?.type===`cim`?b(t.symbol,{type:v,color:e,primitiveOverrides:_}):e&&(t.symbol=x({type:v,color:e,primitiveOverrides:_})),a++}p.uniqueValueGroups=t}}return m&&(m.field=h,m.normalizationField=g,m.sizeStops=l.map(({label:e,size:t,value:n})=>new s({label:e,size:t,value:n})),m.referenceSizeScale=f||n.sizeOptimizationEnabled?d.scale:void 0,m.referenceSizeSymbolStyle=v),p}async function Ve(n){let{layer:r,renderer:i,sizeScheme:a,sizeStops:c,typeScheme:l,spikeOptions:u}=await xe(n),d=i.clone();d.authoringInfo??=new o;let f=d.authoringInfo.visualVariables.find(e=>e.theme===`spike`),p=n.field??f?.field,m=n.normalizationField??f?.normalizationField;if(!p)throw new t(`update-renderer-with-spike:invalid-parameters`,`'field' parameter or authoring info with 'field' is required.`);let h=ee({field:p,normalizationField:m,sizeStops:c}),g=`geometryType`in r?r.geometryType:null,_={primitiveOverrides:h,...u},y=u?.symbolStyle,b=y&&y.includes(`outline`)&&(y.includes(`solid-fill`)||y.includes(`gradient-fill`));if(d.type===`class-breaks`){if(a||b){let e=(g?await X({geometryType:g,sizeScheme:a,view:n.view}):null)?.scheme,t=g===`polygon`&&e&&`marker`in e?e.marker:e;a&&(_.color=t&&`color`in t?t?.color:void 0),b&&(_.strokeColor=t&&`outline`in t?t.outline.color:void 0)}d.classBreakInfos.forEach(e=>{if(e.symbol.type===`cim`)te(e.symbol,_);else{let t=_.color??J(e.symbol,1)??void 0;t&&(e.symbol=N({..._,color:t}))}})}else if(d.type===`unique-value`){let t=d.uniqueValueGroups,r=d.uniqueValueInfos?.length??0,i=null;if(l||b){let t=(g&&r?await v({numColors:r,geometryType:g,typeScheme:l,view:n.view}):null)?.scheme;if(l){let n=t&&`colors`in t?t.colors:null;i=n?e(n,r):null}b&&(_.strokeColor=t&&`outline`in t?t.outline.color:void 0)}let a=0;if(t){for(let e of t)for(let t of e.classes??[]){if(t.symbol?.type===`cim`)te(t.symbol,{..._,color:i?.[a]});else{let e=i?.[a]??J(t.symbol,1)??void 0;e&&(t.symbol=N({..._,color:e}))}a++}d.uniqueValueGroups=t}}return f&&(f.field=p,f.normalizationField=m,f.sizeStops=c.map(({label:e,size:t,value:n})=>new s({label:e,size:t,value:n})),y&&(f.spikeSymbolStyle=y)),d}async function He(e){let t=await Se(e);return Ie(t,await ie(Ce(t),t.outlineOptimizationEnabled))}async function Ue(e){let{renderer:t,creatorParameters:n}=await De(e),{outlineOptimizationEnabled:r,normalizationType:i,classificationMethod:a,valueExpression:o,valueExpressionTitle:s}=n;if(a===`manual`)return{renderer:t};let c=await ie(Ce(n),r),{result:u,outlineResult:d}=c,f=u.classBreakInfos;if(n.numClasses!==f.length){let{renderer:e}=await Ie(n,c);t.classBreakInfos=e.classBreakInfos}else t.classBreakInfos.forEach((e,t)=>{e.minValue=f[t].minValue,e.maxValue=f[t].maxValue,e.label=f[t].label}),a!==`standard-deviation`&&l({classBreakInfos:t.classBreakInfos,classificationMethod:a,normalizationType:i,round:!0});return t.normalizationTotal=i===`percent-of-total`?u.normalizationTotal:void 0,S(t,d?.visualVariables,M),t.valueExpression=o??null,t.valueExpressionTitle=s??null,{renderer:t}}async function We(e){let t=await we(e),{defaultSymbolEnabled:n,view:r,startTime:i,endTime:a,symbolType:o,minValue:s,maxValue:c,signal:l,filter:u,layer:d}=t,[f,p]=await Promise.all([t.unit?{unit:t.unit,statistics:null,valueExpression:null}:await m({view:r,layer:d,startTime:i,endTime:a,minValue:s,maxValue:c,signal:l,filter:u}),t.outlineOptimizationEnabled?h({layer:d,view:r,filter:u,signal:l}).catch(I):null]),{unit:g,statistics:_}=f,{valueExpression:v,title:y}=await ne(t,g),b=await Pe(await $(Y({layer:d,basemap:t.basemap,valueExpression:v,symbolType:o,statistics:_,legendOptions:{title:y},theme:t.theme,sizeScheme:t.sizeScheme,sizeOptimizationEnabled:t.sizeOptimizationEnabled,view:t.view,minValue:s,maxValue:c,filter:u,signal:l})),p,null,null,{layer:d,valueExpression:v,defaultSymbolEnabled:n,symbolType:o});return(b.renderer.authoringInfo?.visualVariables)?.forEach(e=>re(e,i,a,g)),{...b,unit:g}}async function Ge(e){let{renderer:t,creatorParameters:n}=await Oe(e),{layer:r,outlineOptimizationEnabled:i,sizeOptimizationEnabled:a,startTime:o,endTime:s,theme:c,view:l,signal:u,filter:d}=n,[f,p]=await Promise.all([m({view:l,layer:r,startTime:o,endTime:s,signal:u,filter:d}),i?h({layer:r,view:l,filter:d,signal:u}).catch(I):null]),{unit:g,statistics:_}=f,{valueExpression:v,title:y}=await ne(n,g),b=await $(Y({layer:r,valueExpression:v,statistics:_,legendOptions:{title:y},sizeOptimizationEnabled:a,theme:c,view:l,filter:d,signal:u}));return S(t,b.visualVariables,j),S(t,p?.visualVariables,M),t.authoringInfo=b.authoringInfo.clone(),(t.authoringInfo?.visualVariables)?.forEach(e=>re(e,o,s,g)),{renderer:t}}export{We as createAgeRenderer,He as createClassBreaksRenderer,Re as createContinuousRenderer,$ as createVisualVariables,Q as getSizeStopsForTheme,Ge as regenerateAgeRenderer,Ue as regenerateClassBreaksRenderer,ze as regenerateContinuousRenderer,Le as regenerateVisualVariables,Be as updateRendererWithReferenceSize,Ve 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 t(t,n){let{layer:r,view:i,forBinning:a,filter:o}=t;if(!r||!i)throw new e(`${n}:missing-parameters`,`'layer' and 'view' parameters are required`);await r.load();let s=`featureReduction`in r?r.featureReduction:null;if(a){if(s?.type!==`binning`)throw new e(`${n}:invalid-parameters`,`'layer' must have 'featureReduction' property defined with 'binning' type when 'forBinning' parameter is true`);if(o)throw new e(`${n}:invalid-parameters`,`'filter' parameter is not supported when 'forBinning' parameter is true`)}return t}async function n(t){let{layer:n,forBinning:r,renderer:i}=t;await n.load();let a=`featureReduction`in n?n.featureReduction:null,o=i?.clone()??(r&&a?.type===`binning`?a?.renderer?.clone():`renderer`in n?n.renderer?.clone():null);if(!o)throw new e(`get-renderer-to-update:invalid-parameters`,`renderer not available`);return o}function r(e,t,n){return(e?.authoringInfo?.visualVariables)?.find(e=>n===`reference-size`?e.type===t&&e.theme===`reference-size`:n===`spike`?e.type===t&&e.theme===`spike`:e.type===t)}function i(e){if(!e)return null;let t=e.type,n=`visualVariables`in e?e.visualVariables:null,i=n?.find(p),a=n?.find(g),o=e.authoringInfo,s=r(e,`color`),c=r(e,`size`),l=r(e,`size`,`reference-size`),u=r(e,`size`,`spike`);if(t===`class-breaks`){if(o?.type===`univariate-color-size`)return`univariate-color-size`;if(i)return a?c?.units?`color-size-age`:s?.units?`color-age-size`:`color-size`:s?.units?`color-age`:l||u?`color-size`:`color-continuous`;if(a)return c?.units?`size-age`:`size-continuous`;if(e.classBreakInfos.length>1)return
|
|
2
|
+
import e from"../../../core/Error.js";async function t(t,n){let{layer:r,view:i,forBinning:a,filter:o}=t;if(!r||!i)throw new e(`${n}:missing-parameters`,`'layer' and 'view' parameters are required`);await r.load();let s=`featureReduction`in r?r.featureReduction:null;if(a){if(s?.type!==`binning`)throw new e(`${n}:invalid-parameters`,`'layer' must have 'featureReduction' property defined with 'binning' type when 'forBinning' parameter is true`);if(o)throw new e(`${n}:invalid-parameters`,`'filter' parameter is not supported when 'forBinning' parameter is true`)}return t}async function n(t){let{layer:n,forBinning:r,renderer:i}=t;await n.load();let a=`featureReduction`in n?n.featureReduction:null,o=i?.clone()??(r&&a?.type===`binning`?a?.renderer?.clone():`renderer`in n?n.renderer?.clone():null);if(!o)throw new e(`get-renderer-to-update:invalid-parameters`,`renderer not available`);return o}function r(e,t,n){return(e?.authoringInfo?.visualVariables)?.find(e=>n===`reference-size`?e.type===t&&e.theme===`reference-size`:n===`spike`?e.type===t&&e.theme===`spike`:e.type===t)}function i(e){if(!e)return null;let t=e.type,n=`visualVariables`in e?e.visualVariables:null,i=n?.find(p),a=n?.find(g),o=e.authoringInfo,s=r(e,`color`),c=r(e,`size`),l=r(e,`size`,`reference-size`),u=r(e,`size`,`spike`);if(t===`class-breaks`){if(o?.type===`univariate-color-size`)return`univariate-color-size`;if(o?.type===`class-breaks-color`)return`color-class-breaks`;if(o?.type===`class-breaks-size`)return`size-class-breaks`;if(i)return a?c?.units?`color-size-age`:s?.units?`color-age-size`:`color-size`:s?.units?`color-age`:l||u?`color-size`:`color-continuous`;if(a)return c?.units?`size-age`:`size-continuous`;if(e.classBreakInfos.length>1)return null;if(l||u)return`size-continuous`}return t===`unique-value`?e.valueExpression?o?.type===`predominance`?`predominance`:o?.type===`relationship`?a||l||u?`relationship-size`:`relationship`:a||l||u?`type-size`:`type`:a?c?.units?`type-size-age`:`type-size`:l||u?`type-size`:`type`:t===`pie-chart`?`pie-chart`:t===`dot-density`?`dot-density`:t===`heatmap`?`heatmap`:t===`simple`?`location`:null}function a(e){return!!e.visualVariables?.some(_)}function o(e){return!!e.visualVariables?.some(v)}function s(e){return e?.findIndex(_)??-1}function c(e){return e?.findIndex(g)??-1}function l(e){return e?.findIndex(p)??-1}function u(e){return e?.findIndex(m)??-1}function d(e){return e?.findIndex(h)??-1}function f(e){return e?.findIndex(v)??-1}function p(e){return e.type===`color`}function m(e){return e.type===`opacity`}function h(e){return e.type===`rotation`}function g(e){return e.type===`size`&&e.target!==`outline`&&e.valueExpression!==`$view.scale`}function _(e){return e.type===`size`&&e.target===`outline`}function v(e){return e.type===`size`&&e.valueExpression===`$view.scale`&&e.target!==`outline`&&Array.isArray(e.stops)}function y(e,t,n){let r=e.visualVariables,i=n(r);if(!t||Array.isArray(t)&&!t.length)return;Array.isArray(t)||(t=[t]);let a=t.map(e=>e.clone());r?i>-1?r.splice(i,1,...a):r.push(...a):e.visualVariables=a}function b(e,t,n){let i=t?.visualVariables.find(e=>e.type===n),a=r(e,n);a&&i&&(a.dataSeriesName=i.dataSeriesName,a.dataSeriesCalculationName=i.dataSeriesCalculationName,a.minSliderValue=i.minSliderValue,a.maxSliderValue=i.maxSliderValue,n===`size`&&(a.theme===`reference-size`||a.theme===`spike`)&&(a.sizeStops=i.sizeStops?.map(e=>e.clone()),a.theme===`reference-size`&&(a.referenceSizeScale=i.referenceSizeScale)))}export{l as findColorVVIndex,u as findOpacityVVIndex,s as findOutlineVVIndex,d as findRotationVVIndex,f as findScaleDependentSizeVVIndex,c as findSizeVVIndex,r as getAuthoringInfoVisualVariable,n as getRendererToUpdate,i as getStyleType,a as hasOutlineVV,o as hasScaleDependentSizeVV,p as isColorVV,m as isOpacityVV,_ as isOutlineVV,h as isRotationVV,v as isScaleDependentSizeVV,g as isSizeVV,t as processRegenerateParams,y as spliceVisualVariables,b as updateAuthoringInfoVisualVariable};
|
package/support/timeUtils.d.ts
CHANGED
|
@@ -26,6 +26,7 @@ import type { TimeSliderSettings } from "../widgets/TimeSlider/types.js";
|
|
|
26
26
|
* If canceled, the promise will be rejected with an error named `AbortError`.
|
|
27
27
|
* See also [AbortController](https://developer.mozilla.org/docs/Web/API/AbortController).
|
|
28
28
|
* @returns Returns a promise that resolves to a [TimeExtent](https://developers.arcgis.com/javascript/latest/references/core/time/TimeExtent/).
|
|
29
|
+
* @see [FeatureLayer.timeInfo](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#timeInfo)
|
|
29
30
|
* @example
|
|
30
31
|
* // Get the time extent of all layers in the view.
|
|
31
32
|
* const fullTimeExtent = await getTimeExtentFromLayers(view.map.allLayers);
|
|
@@ -35,6 +36,16 @@ import type { TimeSliderSettings } from "../widgets/TimeSlider/types.js";
|
|
|
35
36
|
* earthquakes,
|
|
36
37
|
* emergencyCalls
|
|
37
38
|
* ]);
|
|
39
|
+
* @example
|
|
40
|
+
* // update layer's timeInfo at runtime
|
|
41
|
+
* featureLayer.timeInfo = {
|
|
42
|
+
* startField: "DateField",
|
|
43
|
+
* timeZone: "UTC"
|
|
44
|
+
* };
|
|
45
|
+
*
|
|
46
|
+
* // calculate the fullTimeExtent based on startField
|
|
47
|
+
* const fullTimeExtent = getTimeExtentFromLayers([featureLayer]);
|
|
48
|
+
* featureLayer.timeInfo.fullTimeExtent = fullTimeExtent;
|
|
38
49
|
*/
|
|
39
50
|
export function getTimeExtentFromLayers(layers: ReadonlyArrayOrCollection<Layer>, signal?: AbortSignal | null | undefined): Promise<TimeExtent>;
|
|
40
51
|
|
package/symbols/TextSymbol.d.ts
CHANGED
|
@@ -38,6 +38,8 @@ export interface TextSymbolProperties extends SymbolProperties, Partial<Pick<Tex
|
|
|
38
38
|
/**
|
|
39
39
|
* The [Font](https://developers.arcgis.com/javascript/latest/references/core/symbols/Font/) used to style the text.
|
|
40
40
|
* This property allows the developer to set the font's family, decoration, size, style, and weight properties.
|
|
41
|
+
* The font can also be defined using [formatting tags](https://doc.esri.com/en/arcgis-pro/latest/help/mapping/text/text-formatting-tags.html)
|
|
42
|
+
* in the [text](https://developers.arcgis.com/javascript/latest/references/core/symbols/TextSymbol/#text) if the associated [Font.family](https://developers.arcgis.com/javascript/latest/references/core/symbols/Font/#family) supports it.
|
|
41
43
|
*
|
|
42
44
|
* See the [Labeling guide page](https://developers.arcgis.com/javascript/latest/labeling/) for more information and known limitations.
|
|
43
45
|
*
|
|
@@ -48,7 +50,6 @@ export interface TextSymbolProperties extends SymbolProperties, Partial<Pick<Tex
|
|
|
48
50
|
* > The available [Font.family](https://developers.arcgis.com/javascript/latest/references/core/symbols/Font/#family) property values depend on whether you are
|
|
49
51
|
* > working with a 2D [MapView](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/) or a 3D [SceneView](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/).
|
|
50
52
|
*
|
|
51
|
-
* @see [Labeling Guide](https://developers.arcgis.com/javascript/latest/labeling/)
|
|
52
53
|
* @example
|
|
53
54
|
* let textSymbol = {
|
|
54
55
|
* type: "text", // autocasts as new TextSymbol()
|
|
@@ -60,6 +61,15 @@ export interface TextSymbolProperties extends SymbolProperties, Partial<Pick<Tex
|
|
|
60
61
|
* weight: "bold"
|
|
61
62
|
* }
|
|
62
63
|
* };
|
|
64
|
+
* @example
|
|
65
|
+
* ```js
|
|
66
|
+
* // same example but using formatting tags
|
|
67
|
+
*
|
|
68
|
+
* let textSymbol = {
|
|
69
|
+
* type: "text", // autocasts as new TextSymbol()
|
|
70
|
+
* text: "<BOL><ITA><FNT name='Merriweather' size='12'>Science of Where</FNT></ITA></BOL>",
|
|
71
|
+
* };
|
|
72
|
+
* ```
|
|
63
73
|
*/
|
|
64
74
|
font?: FontProperties;
|
|
65
75
|
/**
|
|
@@ -303,6 +313,8 @@ export default class TextSymbol extends Symbol {
|
|
|
303
313
|
/**
|
|
304
314
|
* The [Font](https://developers.arcgis.com/javascript/latest/references/core/symbols/Font/) used to style the text.
|
|
305
315
|
* This property allows the developer to set the font's family, decoration, size, style, and weight properties.
|
|
316
|
+
* The font can also be defined using [formatting tags](https://doc.esri.com/en/arcgis-pro/latest/help/mapping/text/text-formatting-tags.html)
|
|
317
|
+
* in the [text](https://developers.arcgis.com/javascript/latest/references/core/symbols/TextSymbol/#text) if the associated [Font.family](https://developers.arcgis.com/javascript/latest/references/core/symbols/Font/#family) supports it.
|
|
306
318
|
*
|
|
307
319
|
* See the [Labeling guide page](https://developers.arcgis.com/javascript/latest/labeling/) for more information and known limitations.
|
|
308
320
|
*
|
|
@@ -313,7 +325,6 @@ export default class TextSymbol extends Symbol {
|
|
|
313
325
|
* > The available [Font.family](https://developers.arcgis.com/javascript/latest/references/core/symbols/Font/#family) property values depend on whether you are
|
|
314
326
|
* > working with a 2D [MapView](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/) or a 3D [SceneView](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/).
|
|
315
327
|
*
|
|
316
|
-
* @see [Labeling Guide](https://developers.arcgis.com/javascript/latest/labeling/)
|
|
317
328
|
* @example
|
|
318
329
|
* let textSymbol = {
|
|
319
330
|
* type: "text", // autocasts as new TextSymbol()
|
|
@@ -325,6 +336,15 @@ export default class TextSymbol extends Symbol {
|
|
|
325
336
|
* weight: "bold"
|
|
326
337
|
* }
|
|
327
338
|
* };
|
|
339
|
+
* @example
|
|
340
|
+
* ```js
|
|
341
|
+
* // same example but using formatting tags
|
|
342
|
+
*
|
|
343
|
+
* let textSymbol = {
|
|
344
|
+
* type: "text", // autocasts as new TextSymbol()
|
|
345
|
+
* text: "<BOL><ITA><FNT name='Merriweather' size='12'>Science of Where</FNT></ITA></BOL>",
|
|
346
|
+
* };
|
|
347
|
+
* ```
|
|
328
348
|
*/
|
|
329
349
|
get font(): Font;
|
|
330
350
|
set font(value: FontProperties);
|
|
@@ -468,6 +488,10 @@ export default class TextSymbol extends Symbol {
|
|
|
468
488
|
* The length of the line is controlled by the [lineWidth](https://developers.arcgis.com/javascript/latest/references/core/symbols/TextSymbol/#lineWidth) property.
|
|
469
489
|
* To manually create a new line, use the `\n` escape character.
|
|
470
490
|
*
|
|
491
|
+
* This property supports [formatting tags](https://doc.esri.com/en/arcgis-pro/latest/help/mapping/text/text-formatting-tags.html) if
|
|
492
|
+
* the associated [Font.family](https://developers.arcgis.com/javascript/latest/references/core/symbols/Font/#family) supports it. See the [Labeling guide](https://developers.arcgis.com/javascript/latest/labeling/#formatting-tags)
|
|
493
|
+
* for more details.
|
|
494
|
+
*
|
|
471
495
|
* > [!WARNING]
|
|
472
496
|
* >
|
|
473
497
|
* > **Known Limitations**
|
|
@@ -478,6 +502,7 @@ export default class TextSymbol extends Symbol {
|
|
|
478
502
|
* @see [lineWidth](https://developers.arcgis.com/javascript/latest/references/core/symbols/TextSymbol/#lineWidth)
|
|
479
503
|
* @example symbol.text = "You are here";
|
|
480
504
|
* @example symbol.text = "Wish you were \n here";
|
|
505
|
+
* @example symbol.text = "Wish you were <BOL>Bold</BOL> and <UND>Underlined</UND>";
|
|
481
506
|
*/
|
|
482
507
|
accessor text: string;
|
|
483
508
|
/** The symbol type. */
|
package/symbols/cim/CIMCursor.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{Placement as e}from"./CIMPlacements.js";function t(e,t){e[4]=t}
|
|
2
|
+
import{Placement as e}from"./CIMPlacements.js";function t(e,t){e[4]=t}function n(e){if(!(Math.abs(e)>.5*Math.PI))return null;let t=e+Math.PI,n=Math.atan2(Math.sin(t),Math.cos(t));return Number.isNaN(n)?null:n}class r{constructor(t,n=!0,r=!0,i=0){this._angleToLine=!0,this._keepUpright=!1,this.isClosed=!1,this.geometryCursor=null,this.geometryCursor=!n&&t.geometryType===`esriGeometryPolygon`||!r&&t.geometryType===`esriGeometryPolyline`?null:t,this.geomUnitsPerPoint=i,this.iterateMultiPath=!1,this.iteratePath=!1,this.internalPlacement=new e}next(){if(!this.geometryCursor)return null;let e=this.processMultiPath(this.geometryCursor);if((!this.iterateMultiPath||!e)&&(this.geometryCursor=null),!e)return null;let t=e.getAngle(),r=this._angleToLine&&this._keepUpright?n(t):null;return r!=null&&e.setRotate(r),e}processMultiPath(e){for(;this.iteratePath||e.pathIndex<e.totalSize-1;){this.iteratePath||e.nextPath(),this.iterateMultiPath=!0;let t=this.processPath(e);if(t)return t}return this.iterateMultiPath=!1,null}}class i{constructor(e,t,n,r=0){this.isClosed=!1,this.inputGeometries=e,this.acceptPolygon=t,this.acceptPolyline=n,this.geomUnitsPerPoint=r,this.iteratePath=!1,this.multiPathCursor=null}next(){for(;;){if(!this.multiPathCursor){let e=this.inputGeometries.next();for(;e;){if(this.isClosed=this.acceptPolygon&&e.geometryType===`esriGeometryPolygon`||e.geometryType===`esriGeometryEnvelope`,this.multiPathCursor=e,!this.multiPathCursor){e=this.inputGeometries.next();continue}break}if(!this.multiPathCursor)return null}for(;this.iteratePath||this.multiPathCursor.nextPath();){this.multiPathCursor.seekPathStart();let e=this.processPath(this.multiPathCursor);if(e)return e}this.multiPathCursor=null}}}export{i as PathEffectCursor,r as PathTransformationCursor,n as getUprightAngle,t as setId};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import t from"../../../../core/Accessor.js";import{multiplyOpacity as n}from"../../../../core/colorUtils.js";import{makeHandle as r}from"../../../../core/handleUtils.js";import{isAborted as i,ignoreAbortErrors as a}from"../../../../core/promiseUtils.js";import{watch as o,initial as s}from"../../../../core/reactiveUtils.js";import{property as c,subclass as l}from"../../../../core/accessorSupport/decorators.js";import{UpdatingHandles as u}from"../../../../core/support/UpdatingHandles.js";import d from"../../../../symbols/SimpleFillSymbol.js";import f from"../../../../symbols/SimpleLineSymbol.js";import{ExclusiveOperationManager as p}from"../../../analysis/ExclusiveOperationManager.js";import{bindViewToolOptions as m}from"../../../interactive/options/bindViewToolOptions.js";import h from"../../../../widgets/Sketch/SketchViewModel.js";function g(e){return e?.type===`polygon`}let _=class extends t{constructor(e){super(e),this._invisibleAreaSymbol=new d({color:null,outline:null}),this._invisibleLineSymbol=new f({color:null,width:0}),this._operationManager=new p,this._updatingHandles=new u}initialize(){this._sketchViewModel=new h({defaultCreateOptions:{mode:`click`},defaultUpdateOptions:{enableMoveAllGraphics:!1,enableRotation:!1,enableScaling:!1,enableZ:!1,highlightOptions:{enabled:!1},multipleSelectionEnabled:!1,reshapeOptions:{edgeOperation:`none`,shapeOperation:`none`},toggleToolOnClick:!1,tool:`reshape`},updateOnGraphicClick:!1,cancelUpdateOnClickAway:!1,view:this.view}),this.addHandles([o(()=>({interactive:this.measurementViewData.interactive,visible:this.measurementViewData.visible}),({interactive:e,visible:t})=>{!t||!e?this._operationManager.stop():this._analysis.geometry&&this._operationManager.currentOperationType!==`place`&&this.reshape().catch(()=>{})}),o(()=>this.measurementViewData.analysis.geometry,e=>{e||(this._operationManager.stop(),this._sketchViewModel?.cancel(),this.measurementViewData.sketchGraphicsLayer?.removeAll())}),o(()=>this.measurementViewData.snappingOptions,e=>{this._sketchViewModel&&(this._sketchViewModel.snappingOptions=e)},s),m(this._sketchViewModel.sketchOptions,()=>this.view.options,()=>({values:{displayUnits:{area:this._analysis.unit}}})),o(()=>this.view.effectiveTheme.accentColor,e=>{this._areaSymbol=new d({color:n(e,.3),outline:new f({color:e,width:2})})},s)])}destroy(){this._areaSymbol?.destroy(),this._invisibleAreaSymbol.destroy(),this._invisibleLineSymbol.destroy(),this._operationManager.destroy(),this._sketchViewModel?.destroy(),this._updatingHandles.destroy()}get state(){if(!this.measurementViewData.visible||!this._operationManager.currentOperationType)return`idle`;switch(this._operationManager.currentOperationType){case`place`:return`placing`;case`reshape`:return`reshaping`}}get updating(){return!this._sketchViewModel||this._sketchViewModel.updating||this._updatingHandles.updating}async place(e){return this._operationManager.start(`place`,async t=>{if(!
|
|
2
|
+
import{__decorate as e}from"tslib";import t from"../../../../core/Accessor.js";import{multiplyOpacity as n}from"../../../../core/colorUtils.js";import{makeHandle as r}from"../../../../core/handleUtils.js";import"../../../../core/has.js";import{isAborted as i,ignoreAbortErrors as a}from"../../../../core/promiseUtils.js";import{watch as o,initial as s}from"../../../../core/reactiveUtils.js";import{property as c,subclass as l}from"../../../../core/accessorSupport/decorators.js";import{UpdatingHandles as u}from"../../../../core/support/UpdatingHandles.js";import d from"../../../../symbols/SimpleFillSymbol.js";import f from"../../../../symbols/SimpleLineSymbol.js";import{ExclusiveOperationManager as p}from"../../../analysis/ExclusiveOperationManager.js";import{bindViewToolOptions as m}from"../../../interactive/options/bindViewToolOptions.js";import h from"../../../../widgets/Sketch/SketchViewModel.js";function g(e){return e?.type===`polygon`}let _=class extends t{constructor(e){super(e),this._invisibleAreaSymbol=new d({color:null,outline:null}),this._invisibleLineSymbol=new f({color:null,width:0}),this._operationManager=new p,this._updatingHandles=new u}initialize(){this._sketchViewModel=new h({defaultCreateOptions:{mode:`click`},defaultUpdateOptions:{enableMoveAllGraphics:!1,enableRotation:!1,enableScaling:!1,enableZ:!1,highlightOptions:{enabled:!1},multipleSelectionEnabled:!1,reshapeOptions:{edgeOperation:`none`,shapeOperation:`none`},toggleToolOnClick:!1,tool:`reshape`},updateOnGraphicClick:!1,cancelUpdateOnClickAway:!1,view:this.view}),this.addHandles([o(()=>({interactive:this.measurementViewData.interactive,visible:this.measurementViewData.visible}),({interactive:e,visible:t})=>{!t||!e?this._operationManager.stop():this._analysis.geometry&&this._operationManager.currentOperationType!==`place`&&this.reshape().catch(()=>{})}),o(()=>this.measurementViewData.analysis.geometry,e=>{e||(this._operationManager.stop(),this._sketchViewModel?.cancel(),this.measurementViewData.sketchGraphicsLayer?.removeAll())}),o(()=>this.measurementViewData.snappingOptions,e=>{this._sketchViewModel&&(this._sketchViewModel.snappingOptions=e)},s),m(this._sketchViewModel.sketchOptions,()=>this.view.options,()=>({values:{displayUnits:{area:this._analysis.unit}}})),o(()=>this.view.effectiveTheme.accentColor,e=>{this._areaSymbol=new d({color:n(e,.3),outline:new f({color:e,width:2})})},s)])}destroy(){this._areaSymbol?.destroy(),this._invisibleAreaSymbol.destroy(),this._invisibleLineSymbol.destroy(),this._operationManager.destroy(),this._sketchViewModel?.destroy(),this._updatingHandles.destroy()}get state(){if(!this.measurementViewData.visible||!this._operationManager.currentOperationType)return`idle`;switch(this._operationManager.currentOperationType){case`place`:return`placing`;case`reshape`:return`reshaping`}}get updating(){return!this._sketchViewModel||this._sketchViewModel.updating||this._updatingHandles.updating}async place(e){return this._operationManager.start(`place`,async t=>{let n=this._sketchViewModel;if(!n||!this.measurementViewData.sketchGraphicsLayer)return;let o=this._analysis.clone(),s,c=n.on([`create`,`undo`,`redo`],e=>{let n=`state`in e?e.state:`active`,r=`graphic`in e?e.graphic:e.graphics?.at(0);r&&(s=r);let i=r?.geometry;switch(n){case`start`:case`active`:i?.type===`polygon`&&(this._analysis.geometry=i);break;case`cancel`:case`complete`:n===`complete`&&i?.type===`polygon`&&(this._analysis.geometry=i),t.stop(),a(this.reshape())}});t.handles.push(c,r(()=>{c.remove(),n.cancel(),s&&this._analysis.geometry&&(this._analysis.geometry=g(s.geometry)?s.geometry:null),this.measurementViewData.sketchGraphicsLayer?.removeAll();let r=this._analysis;if(!r.valid)return r.clear(),t.reject();if(i(e)||o.equals(r))return t.reject();t.resolve({})})),n.activeLineSymbol=this._invisibleLineSymbol,n.polygonSymbol=this._invisibleAreaSymbol,n.layer=this.measurementViewData.sketchGraphicsLayer,this._updatingHandles.consumePromise(a(n.create(`polygon`)))},e)}async reshape(e){return this._operationManager.start(`reshape`,async t=>{if(!this._sketchViewModel)return;let n=()=>!this._areaSymbol||!this._sketchViewModel||!this.measurementViewData.manipulatorGraphic||!this.measurementViewData.manipulatorGraphicsLayer?Promise.resolve():(this._sketchViewModel.activeLineSymbol=null,this._sketchViewModel.polygonSymbol=this._areaSymbol,this._sketchViewModel.layer=this.measurementViewData.manipulatorGraphicsLayer,this._updatingHandles.addPromise(a(this._sketchViewModel.update(this.measurementViewData.manipulatorGraphic,{tool:`reshape`})))),o=this._sketchViewModel.on(`update`,e=>{let r=e.graphics[0]?.geometry;this._analysis.geometry=g(r)?r:null,e.state===`complete`&&(this.measurementViewData.interactive?n():t.stop())});t.handles.push(o,r(()=>{if(o.remove(),this._sketchViewModel?.cancel(),i(e))return t.reject();t.resolve()})),await n()},e)}get _analysis(){return this.measurementViewData.analysis}get test(){}};e([c()],_.prototype,`_sketchViewModel`,void 0),e([c()],_.prototype,`measurementViewData`,void 0),e([c()],_.prototype,`state`,null),e([c()],_.prototype,`updating`,null),e([c()],_.prototype,`view`,void 0),_=e([l(`esri.views.2d.analysis.AreaMeasurement.AreaMeasurementTool`)],_);export{_ as AreaMeasurementTool};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import{toAdaptiveLengthUnitForArea as t,toAdaptiveAreaUnit as n}from"../../../core/quantity.js";import{property as r,subclass as i}from"../../../core/accessorSupport/decorators.js";import{getDefaultUnitForView as a}from"../../../support/getDefaultUnitForView.js";import o from"./AnalysisView2D.js";import{AreaMeasurementAreaVisualization as s}from"./AreaMeasurement/AreaMeasurementAreaVisualization.js";import{AreaMeasurementController as c}from"./AreaMeasurement/AreaMeasurementController.js";import{AreaMeasurementManipulatorVisualization as l}from"./AreaMeasurement/AreaMeasurementManipulatorVisualization.js";import{AreaMeasurementSketchVisualization as u}from"./AreaMeasurement/AreaMeasurementSketchVisualization.js";import{AreaMeasurementTool as d}from"./AreaMeasurement/AreaMeasurementTool.js";import f from"../../interactive/snapping/SnappingOptions.js";let p=class extends o{constructor(e){super(e),this.analysis=null,this.snappingOptions=new f,this.type=`area-measurement-view-2d`}initialize(){let{view:e}=this;this._areaVisualization=new s({view:e,measurementViewData:this}),this._controller=new c({view:e,measurementViewData:this}),this._manipulatorVisualization=new l({view:e,measurementViewData:this}),this._sketchVisualization=new u({view:e,measurementViewData:this}),this._tool=new d({view:e,measurementViewData:this})}destroy(){this._areaVisualization?.destroy(),this._controller?.destroy(),this._manipulatorVisualization?.destroy(),this._sketchVisualization?.destroy(),this._tool?.destroy()}get manipulatorGraphic(){return this._manipulatorVisualization?.graphic}get manipulatorGraphicsLayer(){return this._manipulatorVisualization?.graphicsLayer}get sketchGraphicsLayer(){return this._sketchVisualization?.graphicsLayer}get interactive(){return super.interactive}set interactive(e){super.interactive=e}get result(){let e=this._controller?.result;if(!e)return e;let{unit:r}=this,{area:i,display:a,mode:o,perimeter:s}=e;return{area:i?n(i,r):null,display:a,mode:o,perimeter:s?t(s,r):null}}get unit(){return this.analysis.unit??this.view.options.displayUnits.area??a(this.view)}get updating(){return(this._areaVisualization?.updating??!0)||(this._controller?.updating??!0)||(this._sketchVisualization?.updating??!0)||(this._tool?.updating??!0)}get visible(){return super.visible}set visible(e){super.visible=e}async place(e){return this.interactive=!0,this._tool.place(e)}};e([r()],p.prototype,`_areaVisualization`,void 0),e([r()],p.prototype,`_controller`,void 0),e([r()],p.prototype,`_manipulatorVisualization`,void 0),e([r()],p.prototype,`_sketchVisualization`,void 0),e([r()],p.prototype,`_tool`,void 0),e([r({constructOnly:!0})],p.prototype,`analysis`,void 0),e([r()],p.prototype,`manipulatorGraphic`,null),e([r()],p.prototype,`manipulatorGraphicsLayer`,null),e([r()],p.prototype,`sketchGraphicsLayer`,null),e([r({readOnly:!0})],p.prototype,`result`,null),e([r({type:f,nonNullable:!0})],p.prototype,`snappingOptions`,void 0),e([r({readOnly:!0})],p.prototype,`type`,void 0),e([r({readOnly:!0})],p.prototype,`unit`,null),e([r({readOnly:!0})],p.prototype,`updating`,null),p=e([i(`esri.views.2d.analysis.AreaMeasurementAnalysisView2D`)],p);const m=p;export{m as default};
|
|
2
|
+
import{__decorate as e}from"tslib";import"../../../core/has.js";import{toAdaptiveLengthUnitForArea as t,toAdaptiveAreaUnit as n}from"../../../core/quantity.js";import{property as r,subclass as i}from"../../../core/accessorSupport/decorators.js";import{getDefaultUnitForView as a}from"../../../support/getDefaultUnitForView.js";import o from"./AnalysisView2D.js";import{AreaMeasurementAreaVisualization as s}from"./AreaMeasurement/AreaMeasurementAreaVisualization.js";import{AreaMeasurementController as c}from"./AreaMeasurement/AreaMeasurementController.js";import{AreaMeasurementManipulatorVisualization as l}from"./AreaMeasurement/AreaMeasurementManipulatorVisualization.js";import{AreaMeasurementSketchVisualization as u}from"./AreaMeasurement/AreaMeasurementSketchVisualization.js";import{AreaMeasurementTool as d}from"./AreaMeasurement/AreaMeasurementTool.js";import f from"../../interactive/snapping/SnappingOptions.js";let p=class extends o{constructor(e){super(e),this.analysis=null,this.snappingOptions=new f,this.type=`area-measurement-view-2d`}initialize(){let{view:e}=this;this._areaVisualization=new s({view:e,measurementViewData:this}),this._controller=new c({view:e,measurementViewData:this}),this._manipulatorVisualization=new l({view:e,measurementViewData:this}),this._sketchVisualization=new u({view:e,measurementViewData:this}),this._tool=new d({view:e,measurementViewData:this})}destroy(){this._areaVisualization?.destroy(),this._controller?.destroy(),this._manipulatorVisualization?.destroy(),this._sketchVisualization?.destroy(),this._tool?.destroy()}get manipulatorGraphic(){return this._manipulatorVisualization?.graphic}get manipulatorGraphicsLayer(){return this._manipulatorVisualization?.graphicsLayer}get sketchGraphicsLayer(){return this._sketchVisualization?.graphicsLayer}get interactive(){return super.interactive}set interactive(e){super.interactive=e}get result(){let e=this._controller?.result;if(!e)return e;let{unit:r}=this,{area:i,display:a,mode:o,perimeter:s}=e;return{area:i?n(i,r):null,display:a,mode:o,perimeter:s?t(s,r):null}}get unit(){return this.analysis.unit??this.view.options.displayUnits.area??a(this.view)}get updating(){return(this._areaVisualization?.updating??!0)||(this._controller?.updating??!0)||(this._sketchVisualization?.updating??!0)||(this._tool?.updating??!0)}get visible(){return super.visible}set visible(e){super.visible=e}async place(e){return this.interactive=!0,this._tool.place(e)}get test(){}};e([r()],p.prototype,`_areaVisualization`,void 0),e([r()],p.prototype,`_controller`,void 0),e([r()],p.prototype,`_manipulatorVisualization`,void 0),e([r()],p.prototype,`_sketchVisualization`,void 0),e([r()],p.prototype,`_tool`,void 0),e([r({constructOnly:!0})],p.prototype,`analysis`,void 0),e([r()],p.prototype,`manipulatorGraphic`,null),e([r()],p.prototype,`manipulatorGraphicsLayer`,null),e([r()],p.prototype,`sketchGraphicsLayer`,null),e([r({readOnly:!0})],p.prototype,`result`,null),e([r({type:f,nonNullable:!0})],p.prototype,`snappingOptions`,void 0),e([r({readOnly:!0})],p.prototype,`type`,void 0),e([r({readOnly:!0})],p.prototype,`unit`,null),e([r({readOnly:!0})],p.prototype,`updating`,null),p=e([i(`esri.views.2d.analysis.AreaMeasurementAnalysisView2D`)],p);const m=p;export{m as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import t from"../../../../core/Accessor.js";import{multiplyOpacity as n}from"../../../../core/colorUtils.js";import{makeHandle as r}from"../../../../core/handleUtils.js";import{
|
|
2
|
+
import{__decorate as e}from"tslib";import t from"../../../../core/Accessor.js";import{multiplyOpacity as n}from"../../../../core/colorUtils.js";import{makeHandle as r}from"../../../../core/handleUtils.js";import"../../../../core/has.js";import{isAborted as i,ignoreAbortErrors as a}from"../../../../core/promiseUtils.js";import{watch as o,initial as s}from"../../../../core/reactiveUtils.js";import{property as c,subclass as l}from"../../../../core/accessorSupport/decorators.js";import{UpdatingHandles as u}from"../../../../core/support/UpdatingHandles.js";import d from"../../../../symbols/SimpleLineSymbol.js";import{ExclusiveOperationManager as f}from"../../../analysis/ExclusiveOperationManager.js";import{bindViewToolOptions as p}from"../../../interactive/options/bindViewToolOptions.js";import m from"../../../../widgets/Sketch/SketchViewModel.js";function h(e){return e?.type===`polyline`}let g=class extends t{constructor(e){super(e),this._invisibleLineSymbol=new d({color:null,width:0}),this._operationManager=new f,this._updatingHandles=new u}initialize(){this._sketchViewModel=new m({defaultCreateOptions:{mode:`click`},defaultUpdateOptions:{enableMoveAllGraphics:!1,enableRotation:!1,enableScaling:!1,enableZ:!1,highlightOptions:{enabled:!1},multipleSelectionEnabled:!1,reshapeOptions:{edgeOperation:`none`,shapeOperation:`none`},toggleToolOnClick:!1,tool:`reshape`},updateOnGraphicClick:!1,view:this.view}),this.addHandles([o(()=>({interactive:this.measurementViewData.interactive,visible:this.measurementViewData.visible}),({interactive:e,visible:t})=>{!t||!e?this._operationManager.stop():this._analysis.geometry&&this._operationManager.currentOperationType!==`place`&&this.reshape().catch(()=>{})}),o(()=>this.measurementViewData.analysis.geometry,e=>{e||(this._operationManager.stop(),this._sketchViewModel?.cancel(),this.measurementViewData.sketchGraphicsLayer?.removeAll())}),o(()=>this.measurementViewData.snappingOptions,e=>{this._sketchViewModel&&(this._sketchViewModel.snappingOptions=e)},s),p(this._sketchViewModel.sketchOptions,()=>this.view.options,()=>({values:{displayUnits:{length:this._analysis.unit}}})),o(()=>this.view.effectiveTheme.accentColor,e=>{this._lineSymbol=new d({color:n(e,.3),width:2})},s)])}destroy(){this._invisibleLineSymbol.destroy(),this._lineSymbol?.destroy(),this._operationManager.destroy(),this._sketchViewModel?.destroy(),this._updatingHandles.destroy()}get state(){if(!this.measurementViewData.visible||!this._operationManager.currentOperationType)return`idle`;switch(this._operationManager.currentOperationType){case`place`:return`placing`;case`reshape`:return`reshaping`}}get updating(){return!this._sketchViewModel||this._sketchViewModel.updating||this._updatingHandles.updating}async place(e){return this._operationManager.start(`place`,async t=>{let n=this._sketchViewModel;if(!n||!this.measurementViewData.sketchGraphicsLayer)return;let o=this._analysis.clone(),s,c=n.on([`create`,`undo`,`redo`],e=>{let n=`state`in e?e.state:`active`,r=`graphic`in e?e.graphic:e.graphics?.at(0);r&&(s=r);let i=r?.geometry;switch(n){case`start`:case`active`:i?.type===`polyline`&&(this._analysis.geometry=i);break;case`cancel`:case`complete`:n===`complete`&&i?.type===`polyline`&&(this._analysis.geometry=i),t.stop(),a(this.reshape())}});t.handles.push(c,r(()=>{c.remove(),n.cancel(),s&&this._analysis.geometry&&(this._analysis.geometry=h(s.geometry)?s.geometry:null),this.measurementViewData.sketchGraphicsLayer?.removeAll();let r=this._analysis;if(!r.valid)return r.clear(),t.reject();if(i(e)||o.equals(r))return t.reject();t.resolve({})})),n.activeLineSymbol=this._invisibleLineSymbol,n.polylineSymbol=this._invisibleLineSymbol,n.layer=this.measurementViewData.sketchGraphicsLayer,this._updatingHandles.consumePromise(a(n.create(`polyline`)))},e)}async reshape(e){return this._operationManager.start(`reshape`,async t=>{if(!this._sketchViewModel)return;let n=()=>!this._lineSymbol||!this._sketchViewModel||!this.measurementViewData.manipulatorGraphic||!this.measurementViewData.manipulatorGraphicsLayer?Promise.resolve():(this._sketchViewModel.activeLineSymbol=null,this._sketchViewModel.polylineSymbol=this._lineSymbol,this._sketchViewModel.layer=this.measurementViewData.manipulatorGraphicsLayer,this._updatingHandles.addPromise(a(this._sketchViewModel.update(this.measurementViewData.manipulatorGraphic,{tool:`reshape`})))),o=this._sketchViewModel.on(`update`,e=>{let r=e.graphics[0]?.geometry;this._analysis.geometry=h(r)?r:null,e.state===`complete`&&(this.measurementViewData.interactive?n():t.stop())});t.handles.push(o,r(()=>{if(o.remove(),this._sketchViewModel?.cancel(),i(e))return t.reject();t.resolve()})),await n()},e)}get _analysis(){return this.measurementViewData.analysis}get test(){}};e([c()],g.prototype,`_sketchViewModel`,void 0),e([c()],g.prototype,`measurementViewData`,void 0),e([c()],g.prototype,`state`,null),e([c()],g.prototype,`updating`,null),e([c()],g.prototype,`view`,void 0),g=e([l(`esri.views.2d.analysis.DistanceMeasurement.DistanceMeasurementTool`)],g);export{g as DistanceMeasurementTool};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import{toAdaptiveLengthUnit as t}from"../../../core/quantity.js";import{property as n,subclass as r}from"../../../core/accessorSupport/decorators.js";import{getDefaultUnitForView as i}from"../../../support/getDefaultUnitForView.js";import a from"./AnalysisView2D.js";import{DistanceMeasurementController as o}from"./DistanceMeasurement/DistanceMeasurementController.js";import{DistanceMeasurementLineVisualization as s}from"./DistanceMeasurement/DistanceMeasurementLineVisualization.js";import{DistanceMeasurementManipulatorVisualization as c}from"./DistanceMeasurement/DistanceMeasurementManipulatorVisualization.js";import{DistanceMeasurementSketchVisualization as l}from"./DistanceMeasurement/DistanceMeasurementSketchVisualization.js";import{DistanceMeasurementTool as u}from"./DistanceMeasurement/DistanceMeasurementTool.js";import d from"../../interactive/snapping/SnappingOptions.js";let f=class extends a{constructor(e){super(e),this.analysis=null,this.snappingOptions=new d,this.type=`distance-measurement-view-2d`}initialize(){let{view:e}=this;this._lineVisualization=new s({view:e,measurementViewData:this}),this._controller=new o({view:e,measurementViewData:this}),this._manipulatorVisualization=new c({view:e,measurementViewData:this}),this._sketchVisualization=new l({view:e,measurementViewData:this}),this._tool=new u({view:e,measurementViewData:this})}destroy(){this._lineVisualization?.destroy(),this._controller?.destroy(),this._manipulatorVisualization?.destroy(),this._sketchVisualization?.destroy(),this._tool?.destroy()}get manipulatorGraphic(){return this._manipulatorVisualization?.graphic}get manipulatorGraphicsLayer(){return this._manipulatorVisualization?.graphicsLayer}get sketchGraphicsLayer(){return this._sketchVisualization?.graphicsLayer}get interactive(){return super.interactive}set interactive(e){super.interactive=e}get result(){let e=this._controller?.result;return e&&{...e,length:t(e.length,this.unit)}}get unit(){return this.analysis.unit??this.view.options.displayUnits.length??i(this.view)}get updating(){return(this._controller?.updating??!0)||(this._lineVisualization?.updating??!0)||(this._sketchVisualization?.updating??!0)||(this._tool?.updating??!0)}get visible(){return super.visible}set visible(e){super.visible=e}async place(e){return this.interactive=!0,this._tool.place(e)}};e([n()],f.prototype,`_lineVisualization`,void 0),e([n()],f.prototype,`_controller`,void 0),e([n()],f.prototype,`_manipulatorVisualization`,void 0),e([n()],f.prototype,`_sketchVisualization`,void 0),e([n()],f.prototype,`_tool`,void 0),e([n({constructOnly:!0})],f.prototype,`analysis`,void 0),e([n()],f.prototype,`manipulatorGraphic`,null),e([n()],f.prototype,`manipulatorGraphicsLayer`,null),e([n()],f.prototype,`sketchGraphicsLayer`,null),e([n({readOnly:!0})],f.prototype,`result`,null),e([n({type:d,nonNullable:!0})],f.prototype,`snappingOptions`,void 0),e([n({readOnly:!0})],f.prototype,`type`,void 0),e([n({readOnly:!0})],f.prototype,`unit`,null),e([n({readOnly:!0})],f.prototype,`updating`,null),f=e([r(`esri.views.2d.analysis.DistanceMeasurementAnalysisView2D`)],f);const p=f;export{p as default};
|
|
2
|
+
import{__decorate as e}from"tslib";import"../../../core/has.js";import{toAdaptiveLengthUnit as t}from"../../../core/quantity.js";import{property as n,subclass as r}from"../../../core/accessorSupport/decorators.js";import{getDefaultUnitForView as i}from"../../../support/getDefaultUnitForView.js";import a from"./AnalysisView2D.js";import{DistanceMeasurementController as o}from"./DistanceMeasurement/DistanceMeasurementController.js";import{DistanceMeasurementLineVisualization as s}from"./DistanceMeasurement/DistanceMeasurementLineVisualization.js";import{DistanceMeasurementManipulatorVisualization as c}from"./DistanceMeasurement/DistanceMeasurementManipulatorVisualization.js";import{DistanceMeasurementSketchVisualization as l}from"./DistanceMeasurement/DistanceMeasurementSketchVisualization.js";import{DistanceMeasurementTool as u}from"./DistanceMeasurement/DistanceMeasurementTool.js";import d from"../../interactive/snapping/SnappingOptions.js";let f=class extends a{constructor(e){super(e),this.analysis=null,this.snappingOptions=new d,this.type=`distance-measurement-view-2d`}initialize(){let{view:e}=this;this._lineVisualization=new s({view:e,measurementViewData:this}),this._controller=new o({view:e,measurementViewData:this}),this._manipulatorVisualization=new c({view:e,measurementViewData:this}),this._sketchVisualization=new l({view:e,measurementViewData:this}),this._tool=new u({view:e,measurementViewData:this})}destroy(){this._lineVisualization?.destroy(),this._controller?.destroy(),this._manipulatorVisualization?.destroy(),this._sketchVisualization?.destroy(),this._tool?.destroy()}get manipulatorGraphic(){return this._manipulatorVisualization?.graphic}get manipulatorGraphicsLayer(){return this._manipulatorVisualization?.graphicsLayer}get sketchGraphicsLayer(){return this._sketchVisualization?.graphicsLayer}get interactive(){return super.interactive}set interactive(e){super.interactive=e}get result(){let e=this._controller?.result;return e&&{...e,length:t(e.length,this.unit)}}get unit(){return this.analysis.unit??this.view.options.displayUnits.length??i(this.view)}get updating(){return(this._controller?.updating??!0)||(this._lineVisualization?.updating??!0)||(this._sketchVisualization?.updating??!0)||(this._tool?.updating??!0)}get visible(){return super.visible}set visible(e){super.visible=e}async place(e){return this.interactive=!0,this._tool.place(e)}get test(){}};e([n()],f.prototype,`_lineVisualization`,void 0),e([n()],f.prototype,`_controller`,void 0),e([n()],f.prototype,`_manipulatorVisualization`,void 0),e([n()],f.prototype,`_sketchVisualization`,void 0),e([n()],f.prototype,`_tool`,void 0),e([n({constructOnly:!0})],f.prototype,`analysis`,void 0),e([n()],f.prototype,`manipulatorGraphic`,null),e([n()],f.prototype,`manipulatorGraphicsLayer`,null),e([n()],f.prototype,`sketchGraphicsLayer`,null),e([n({readOnly:!0})],f.prototype,`result`,null),e([n({type:d,nonNullable:!0})],f.prototype,`snappingOptions`,void 0),e([n({readOnly:!0})],f.prototype,`type`,void 0),e([n({readOnly:!0})],f.prototype,`unit`,null),e([n({readOnly:!0})],f.prototype,`updating`,null),f=e([r(`esri.views.2d.analysis.DistanceMeasurementAnalysisView2D`)],f);const p=f;export{p as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import e from"../../../../request.js";import{bidiText as t}from"../../../../core/BidiText.js";import{getFullyQualifiedFontName as n}from"../../../../core/fontUtils.js";import has from"../../../../core/has.js";import r from"../../../../core/Logger.js";import{ignoreAbortErrors as i,throwIfNotAbortError as a}from"../../../../core/promiseUtils.js";import{loadTextModule as o}from"../../../../libs/librust-text/loadTextModule.js";import{parseRichTextRuns as s}from"../../../../symbols/cim/richTextUtils.js";import{decorGlyphRect as c}from"./decorGlyphRect.js";import{sdfRadiusComplex as l,sdfBufferGlyphSDFCreator as u,sdfSizeComplex as d,sdfBufferServer as f,sdfRadiusSimple as p,sdfSizeSimple as m}from"./definitions.js";import{GlyphSDFCreator as h}from"./GlyphSDFCreator.js";import g from"./GlyphSource.js";import{hashMosaic as _}from"./hashMosaic.js";import v from"./Rect.js";import y from"./RectangleBinPack.js";const b=`arial-unicode-ms-regular`,x=/[\u0695\u0698\u06a9\u06af\u06b5\u06be\u06c6\u06cc\u06ce\u06d5\u06ca]|\p{Script=Thai}|\p{Script=Lao}|\p{Script=Tamil}|\p{Script=Khmer}/u,S=new Set([`Noto Sans Khmer`,`Noto Sans Lao`,`Noto Sans Myanmar`,`Noto Sans Thai`]),C=()=>r.getLogger(`esri.views.MapView`),w=(e,t=``)=>C().warnOnce(e,t);class T{constructor(){this._glyphSources=new Map,this._snapCoords=!0,this._currentPage=0,this._faces=new Map,this._facePromises=new Map,this._pbfRangePromises=new Map,this._glyphCache=new Map,this._pbfGlyphCache=new Map,this._invalidFonts=new Set,this._preloadCache={},this._glyphSDFCreator=new h({sdfSizePx:d,sdfBufferPx:u,radius:l,cutoff:.25})}set remoteClient(e){this._client=e.createInvokeProxy();let t=i(this._client.getOptions());this._inited=this._init(t)}async rasterizeText(e,t,n){await this._inited;let r=t.symbol?s(t):null;return r?{type:`rich-glyphs`,runs:(await Promise.all(r.map(async t=>({fontSize:t.fontSize,characterSpacing:t.characterSpacing,decoration:t.font.decoration,color:t.color,glyphs:await this._rasterizeTextRun(e,t.font,t.text,n)})))).filter(e=>e.glyphs!=null)}:this._rasterizeTextRun(e,t.font,t.textString,n)}async _rasterizeTextRun(e,t,r,i){let a=n(t),o=this._invalidFonts.has(a),s=!!has(`esri-2d-force-complex-shaping`),c=!!has(`esri-2d-complex-shaping`)&&x.test(r),l=S.has(t.family),u=s||c||l,d=o?b:a,f=await this.getGlyphItems(r,u,e,d,!1,i);return f||=(w(`Font ${a} is not available on the web, using "Arial Unicode MS Regular"`),this._invalidFonts.add(a),await this.getGlyphItems(r,u,e,b,!1,i)),f}async getGlyphItems(e,n,r,i,a,o){await this._inited;let s=this._getSource(r),c=n?d:m,h=n?l:p,g=n?u:f,_,v,y;if(has(`esri-2d-stabilize-glyphs`)&&await this.preloadASCIIGlyphCache(s,i).catch(()=>{}),n){let t=await this._getFace(s,i);if(!t)return null;let n=this._glyphCache.get(i);n||(n=new Map,this._glyphCache.set(i,n));let{shaping:r,isRTL:a}=this._shape(t,e);y=a,_=r.map(e=>this._getShapedGlyph(t,n,e)),v={baseline:t.baseline()/c,midline:t.midline()/c}}else{let n=this._pbfGlyphCache.get(i);n||(n=new Map,this._pbfGlyphCache.set(i,n));let[r,c,l]=t(e),u=k(r);try{await this._fetchRanges(s,i,u,o)}catch{return null}y=c,_=u.map(e=>this._getPBFGlyph(n,s,i,e,a)).filter(e=>!!e)}let b=_.filter(e=>e.needsRecord);return b.length>0&&await this._client.recordGlyphs(b),{type:`glyphs`,glyphs:_,faceInfo:v,isRightToLeft:y,sdfSize:c,sdfRadius:h,sdfPadding:g}}async _init(e){let t=await e;if(!t)return;let{width:n,height:r,snapCoords:i}=t;this._glyphCache=new Map,this._pbfGlyphCache=new Map,this._binPack=new y(n,r),this._snapCoords=i,this._currentPage=0,this._initDecorationGlyphs()}_getShapedGlyph(e,t,n){let r,i,a=t.get(n.glyphId);if(!a){r=this._glyphSDFCreator.draw(e,n.glyphId);let o=this._glyphSDFCreator.sdfBufferPx;a={mosaicItem:{rect:this._recordGlyph(r?.rect,o),page:this._currentPage,sdf:!0,textureBinding:_(1,this._currentPage,!0)},glyphRect:r?.rect??{width:0,height:0,top:0,left:0}},t.set(n.glyphId,a),i=!0}return{mosaicItem:a.mosaicItem,rect:a.glyphRect,shaping:{xAdvance:n.xAdvance,yAdvance:n.yAdvance,xOffset:n.xOffset,yOffset:n.yOffset},code:n.isNewline?10:n.isWhitespace?32:NaN,sdf:r,needsRecord:i}}_getPBFGlyph(e,t,n,r,i=!1){let a,o,s=e.get(r);if(!s){let c=t.getRange(n,r),l=c?.getRect(r),d=c?.getShaping(r),f=c?.getBitmap(r);if(i&&(!l||!d))return;if(!l||!d)return O(r);let p={rect:f?this._recordGlyph(l,u):new v(0,0,0,0),sdf:!0,page:this._currentPage,textureBinding:_(1,this._currentPage,!0)};a=f&&{buffer:f,rect:l},s={mosaicItem:p,rect:l,shaping:d,code:r},o=!0,e.set(r,s)}let{mosaicItem:c,rect:l,shaping:d}=s;return{mosaicItem:c,rect:l,shaping:d,code:r,sdf:a,needsRecord:o}}_shape(e,n){let r=this._glyphSDFCreator.sdfSizePx,[i,a,o]=t(n,!1),s=new Uint32Array(Array.from(i).map((e,t)=>o.levels[o.targetToSource[t]]));return{shaping:e.shape(i,s,r),isRTL:a}}async _getFace(t,n,r){if(this._faces.has(n))return this._faces.get(n);let i=t.woffURL(n);return await D(this._facePromises,n,async()=>{let t=await e(i,{responseType:`array-buffer`,...r}),a=(await o()).Face.parseWoff2(new Uint8Array(t.data));this._faces.set(n,a)}),this._faces.get(n)}_getSource(e){return this._glyphSources.has(e)||this._glyphSources.set(e,new g(e)),this._glyphSources.get(e)}async _fetchRanges(e,t,n,r){let i=E(n),a=[];i.forEach(n=>{a.push(this._fetchRange(e,t,n,r))}),await Promise.all(a)}async _fetchRange(e,t,n,r){if(n>256)return;let i=t+n;return D(this._pbfRangePromises,i,()=>e.fetchRange(t,n,r))}_allocNewPage(){this._currentPage++,this._binPack=new y(this._binPack.width,this._binPack.height),this._initDecorationGlyphs()}_recordGlyph(e,t){let n=this._binPack;if(!e||e.width===0)return new v;let r=e.width+t*2,i=e.height+t*2,a=r,o=i;if(this._snapCoords){let e=r%4?4-r%4:4,t=i%4?4-i%4:4;a+=e,o+=t}let s=n.allocate(a,o);return s.isEmpty?(this._allocNewPage(),n.allocate(a,o)):s}_initDecorationGlyphs(){this._recordGlyph(c,f),this._recordGlyph(c,f)}preloadASCIIGlyphCache(e,t){let n=this._preloadCache[t];if(n!=null)return n;let r=e.preloadASCIIRange(t).then(async()=>{let n=this._pbfGlyphCache.get(t);n||(n=new Map,this._pbfGlyphCache.set(t,n));let r=[];for(let i=0;i<256;i++){let a=this._getPBFGlyph(n,e,t,i);a?.needsRecord&&r.push(a)}await this._client.recordGlyphs(r)},e=>{throw delete this._preloadCache[t],e});return this._preloadCache[t]=r,r}}function E(e){let t=new Set;for(let n of e)t.add(Math.floor(n/256));return t}function D(e,t,n){return e.has(t)||e.set(t,n().finally(()=>{e.delete(t)}).catch(e=>{a(e)})),e.get(t)}const O=e=>({mosaicItem:{rect:new v(0,0,0,0),sdf:!0,page:0},rect:{left:0,width:0,height:0,top:0},shaping:{xAdvance:0,yAdvance:0,xOffset:0,yOffset:0},code:e});function k(e){let t=[];for(let n=0;n<e.length;n++)t.push(e.charCodeAt(n));return t}export{T as default};
|
|
2
|
+
import e from"../../../../request.js";import{bidiText as t}from"../../../../core/BidiText.js";import{getFullyQualifiedFontName as n}from"../../../../core/fontUtils.js";import has from"../../../../core/has.js";import r from"../../../../core/Logger.js";import{ignoreAbortErrors as i,throwIfNotAbortError as a}from"../../../../core/promiseUtils.js";import{loadTextModule as o}from"../../../../libs/librust-text/loadTextModule.js";import{parseRichTextRuns as s}from"../../../../symbols/cim/richTextUtils.js";import{decorGlyphRect as c}from"./decorGlyphRect.js";import{sdfRadiusComplex as l,sdfBufferGlyphSDFCreator as u,sdfSizeComplex as d,sdfBufferServer as f,sdfRadiusSimple as p,sdfSizeSimple as m}from"./definitions.js";import{GlyphSDFCreator as h}from"./GlyphSDFCreator.js";import g from"./GlyphSource.js";import{hashMosaic as _}from"./hashMosaic.js";import v from"./Rect.js";import y from"./RectangleBinPack.js";const b=`arial-unicode-ms-regular`,x=/[\u0695\u0698\u06a9\u06af\u06b5\u06be\u06c6\u06cc\u06ce\u06d5\u06ca]|\p{Script=Thai}|\p{Script=Lao}|\p{Script=Tamil}|\p{Script=Khmer}/u,S=new Set([`Noto Sans Khmer`,`Noto Sans Lao`,`Noto Sans Myanmar`,`Noto Sans Thai`]),C=()=>r.getLogger(`esri.views.MapView`),w=(e,t=``)=>C().warnOnce(e,t);class T{constructor(){this._glyphSources=new Map,this._snapCoords=!0,this._currentPage=0,this._faces=new Map,this._facePromises=new Map,this._pbfRangePromises=new Map,this._glyphCache=new Map,this._pbfGlyphCache=new Map,this._invalidFonts=new Set,this._preloadCache={},this._glyphSDFCreator=new h({sdfSizePx:d,sdfBufferPx:u,radius:l,cutoff:.25})}set remoteClient(e){this._client=e.createInvokeProxy();let t=i(this._client.getOptions());this._inited=this._init(t)}async rasterizeText(e,t,n){await this._inited;let r=t.symbol?s(t):null;return r?{type:`rich-glyphs`,runs:(await Promise.all(r.map(async t=>({fontSize:t.fontSize,characterSpacing:t.characterSpacing,decoration:t.font.decoration,color:t.color,glyphs:await this._rasterizeTextRun(e,t.font,t.text,n)})))).filter(e=>e.glyphs!=null)}:this._rasterizeTextRun(e,t.font,t.textString,n)}async _rasterizeTextRun(e,t,r,i){let a=n(t),o=this._invalidFonts.has(a),s=!!has(`esri-2d-force-complex-shaping`),c=!!has(`esri-2d-complex-shaping`)&&x.test(r),l=S.has(t.family),u=s||c||l,d=o?b:a,f=await this.getGlyphItems(r,u,e,d,!1,i);return f||=(w(`Font ${a} is not available on the web, using "Arial Unicode MS Regular"`),this._invalidFonts.add(a),await this.getGlyphItems(r,u,e,b,!1,i)),f}async getGlyphItems(e,n,r,i,a,o){await this._inited;let s=this._getSource(r),c=n?d:m,h=n?l:p,g=n?u:f,_,v,y;if(has(`esri-2d-stabilize-glyphs`)&&await this.preloadASCIIGlyphCache(s,i).catch(()=>{}),n){let t=await this._getFace(s,i);if(!t)return null;let n=this._glyphCache.get(i);n||(n=new Map,this._glyphCache.set(i,n));let{shaping:r,isRTL:a}=this._shape(t,e);y=a,_=r.map(e=>this._getShapedGlyph(t,n,e)),v={baseline:t.baseline()/c,midline:t.midline()/c}}else{let n=this._pbfGlyphCache.get(i);n||(n=new Map,this._pbfGlyphCache.set(i,n));let[r,c,l]=t(e),u=k(r);try{await this._fetchRanges(s,i,u,o)}catch{return null}y=c,_=u.map(e=>this._getPBFGlyph(n,s,i,e,a)).filter(e=>!!e)}let b=_.filter(e=>e.needsRecord);return b.length>0&&await this._client.recordGlyphs(b),{type:`glyphs`,glyphs:_,faceInfo:v,isRightToLeft:y,sdfSize:c,sdfRadius:h,sdfPadding:g}}async _init(e){let t=await e;if(!t)return;let{width:n,height:r,snapCoords:i}=t;this._glyphCache=new Map,this._pbfGlyphCache=new Map,this._binPack=new y(n,r),this._snapCoords=i,this._currentPage=0,this._initDecorationGlyphs()}_getShapedGlyph(e,t,n){let r,i,a=t.get(n.glyphId);if(!a){r=this._glyphSDFCreator.draw(e,n.glyphId);let o=this._glyphSDFCreator.sdfBufferPx;a={mosaicItem:{rect:this._recordGlyph(r?.rect,o),page:this._currentPage,sdf:!0,textureBinding:_(1,this._currentPage,!0)},glyphRect:r?.rect??{width:0,height:0,top:0,left:0}},t.set(n.glyphId,a),i=!0}return{mosaicItem:a.mosaicItem,rect:a.glyphRect,shaping:{xAdvance:n.xAdvance,yAdvance:n.yAdvance,xOffset:n.xOffset,yOffset:n.yOffset},code:n.isNewline?10:n.isWhitespace?32:NaN,sdf:r,needsRecord:i}}_getPBFGlyph(e,t,n,r,i=!1){let a,o,s=e.get(r);if(!s){let c=t.getRange(n,r),l=c?.getRect(r),d=c?.getShaping(r),f=c?.getBitmap(r);if(i&&(!l||!d))return;if(!l||!d)return O(r);let p={rect:f?this._recordGlyph(l,u):new v(0,0,0,0),sdf:!0,page:this._currentPage,textureBinding:_(1,this._currentPage,!0)};a=f&&{buffer:f,rect:l},s={mosaicItem:p,rect:l,shaping:d,code:r},o=!0,e.set(r,s)}let{mosaicItem:c,rect:l,shaping:d}=s;return{mosaicItem:c,rect:l,shaping:d,code:r,sdf:a,needsRecord:o}}_shape(e,n){let r=this._glyphSDFCreator.sdfSizePx,[i,a,o]=t(n,!1),s=new Uint32Array(Array.from(i).map((e,t)=>o.levels[o.targetToSource[t]]));return{shaping:e.shape(i,s,r),isRTL:a}}async _getFace(t,n,r){if(this._faces.has(n))return this._faces.get(n);let i=t.woffURL(n);return await D(this._facePromises,n,async()=>{let t=await e(i,{responseType:`array-buffer`,...r}),a=(await o()).Face.parseWoff2(new Uint8Array(t.data));this._faces.set(n,a)}),this._faces.get(n)}_getSource(e){return this._glyphSources.has(e)||this._glyphSources.set(e,new g(e)),this._glyphSources.get(e)}async _fetchRanges(e,t,n,r){let i=E(n),a=[];i.forEach(n=>{a.push(this._fetchRange(e,t,n,r))}),await Promise.all(a)}async _fetchRange(e,t,n,r){if(n>256)return;let i=t+n;return D(this._pbfRangePromises,i,()=>e.fetchRange(t,n,r))}_allocNewPage(){this._currentPage++,this._binPack=new y(this._binPack.width,this._binPack.height),this._initDecorationGlyphs()}_recordGlyph(e,t){let n=this._binPack;if(!e||e.width===0)return new v;let r=e.width+t*2,i=e.height+t*2,a=r,o=i;if(this._snapCoords){let e=r%4?4-r%4:4,t=i%4?4-i%4:4;a+=e,o+=t}let s=n.allocate(a,o);return s.isEmpty?(this._allocNewPage(),n.allocate(a,o)):s}_initDecorationGlyphs(){this._recordGlyph(c,f),this._recordGlyph(c,f)}preloadASCIIGlyphCache(e,t){let n=this._preloadCache[t];if(n!=null)return n;let r=e.preloadASCIIRange(t).then(async()=>{let n=this._pbfGlyphCache.get(t);n||(n=new Map,this._pbfGlyphCache.set(t,n));let r=[];for(let i=0;i<256;i++){let a=this._getPBFGlyph(n,e,t,i);a?.needsRecord&&r.push(a)}await this._client.recordGlyphs(r)},e=>{throw delete this._preloadCache[t],e});return this._preloadCache[t]=r,r}}function E(e){let t=new Set;for(let n of e)t.add(Math.floor(n/256));return t}function D(e,t,n){return e.has(t)||e.set(t,n().finally(()=>{e.delete(t)}).catch(e=>{a(e)})),e.get(t)}const O=e=>({mosaicItem:{rect:new v(0,0,0,0),sdf:!0,page:0,textureBinding:_(1,0,!0)},rect:{left:0,width:0,height:0,top:0},shaping:{xAdvance:0,yAdvance:0,xOffset:0,yOffset:0},code:e,needsRecord:!0});function k(e){let t=[];for(let n=0;n<e.length;n++)t.push(e.charCodeAt(n));return t}export{T as default};
|
|
@@ -8,5 +8,5 @@ class e{generateSource(e){let t=[];for(let n=1;n<this.length;n++)t.push(`vec4 at
|
|
|
8
8
|
cos1 * s1 * x2 - sin1 * s1 * y2 + x1,
|
|
9
9
|
sin1 * s1 * x2 + cos1 * s1 * y2 + y1
|
|
10
10
|
);
|
|
11
|
-
`,`out0 = vec4(translation, rotation, scale);`]}encode(e){return[[this.opcode,0,0,0],[e.translation.from[0],e.translation.from[1],e.translation.to[0],e.translation.to[1]],[e.rotation.from,e.rotation.to,e.scale.from,e.scale.to],...p(e.translation.timing),...p(e.rotation.timing),...p(e.scale.timing),[+!!e.relativeTranslation,+!!e.absoluteScale,+!!e.selectGlobalRotation,0]]}}class h extends e{constructor(){super(...arguments),this.opcode=++t,this.length=7,this.ins=1,this.outs=1,this.microcode=[`float fromOpacity = atom0.y;`,`float toOpacity = atom0.z;`,`vec4 fromColor = atom1;`,`vec4 toColor = atom2;`,`float fColor;`,`{`,...c({duration:`atom3.x`,startTimeOffset:`atom3.y`,repeatDelay:`atom3.z`,timeOriginSelector:`atom3.w`,repeatType:`atom4.x`,easing:`atom4.y`,playAnimation:`atom4.z`,reverseAnimation:`atom4.w`,out:`fColor`}),`}`,`float fOpacity;`,`{`,...c({duration:`atom5.x`,startTimeOffset:`atom5.y`,repeatDelay:`atom5.z`,timeOriginSelector:`atom5.w`,repeatType:`atom6.x`,easing:`atom6.y`,playAnimation:`atom6.z`,reverseAnimation:`atom6.w`,out:`fOpacity`}),`}`,`vec4 aColor = mix(fromColor, toColor, fColor);`,`aColor.a *= mix(fromOpacity, toOpacity, fOpacity);`,`vec4 pColor = in0;`,`out0 = aColor * pColor;`]}encode(e){return[[this.opcode,e.opacity.from,e.opacity.to,0],[e.color.from[0],e.color.from[1],e.color.from[2],e.color.from[3]],[e.color.to[0],e.color.to[1],e.color.to[2],e.color.to[3]],...p(e.color.timing),...p(e.opacity.timing)]}}class g extends e{constructor(){super(...arguments),this.opcode=++t,this.length=4,this.ins=1,this.outs=1,this.microcode=[`float fromShift = atom0.y;`,`float toShift = atom0.z;`,`float duration = atom1.x;`,`bool multiplyToByLineLength = atom3.x == 1.0;`,`bool multiplyDurationByLineLength = atom3.y == 1.0;`,`bool continuous = atom3.z == 1.0;`,`toShift *= multiplyToByLineLength ? lineLength : 1.0;`,`duration *= multiplyDurationByLineLength ? lineLength : 1.0;`,`float fShift;`,`if (continuous) {`,...l({duration:`duration`,startTimeOffset:`atom1.y`,repeatDelay:`atom1.z`,timeOriginSelector:`atom1.w`,easing:`atom2.y`,playAnimation:`atom2.z`,reverseAnimation:`atom2.w`,out:`fShift`}),`} else {`,...c({duration:`duration`,startTimeOffset:`atom1.y`,repeatDelay:`atom1.z`,timeOriginSelector:`atom1.w`,repeatType:`atom2.x`,easing:`atom2.y`,playAnimation:`atom2.z`,reverseAnimation:`atom2.w`,out:`fShift`}),`}`,`float aShift = mix(fromShift, toShift, fShift);`,`vec4 pShift = in0;`,`out0 = mod(aShift + pShift, lineLength);`]}encode(e){return[[this.opcode,e.shift.from,e.shift.to,0],...p(e.shift.timing),[+!!e.multiplyToByLineLength,+!!e.multiplyDurationByLineLength,+!!e.continuous,0]]}}const _={scalar:new r,vector3:new i,vector4:new a,animatedTransform:new m,animatedColor:new h,animatedShift:new g,ret:new n},v=4;function y(e){let t=[];t.push(`float globalTime = ${e.globalTime};`),t.push(`float localTimeOrigin = ${e.localTimeOrigin};`),t.push(`float lineLength = ${e.lineLength};`),t.push(`float globalRotation = ${e.globalRotation};`),t.push(`vec2 pointer = ${e.animationPointer};`),t.push(`vec2 size = ${e.animationTextureSize};`),t.push(`int top = 0;`),t.push(`vec4 stack[4];`),t.push(`for (int counter = 0; counter < 40; counter++) {`),t.push(`vec4 atom0 = texture(${e.animationTexture}, (pointer + 0.5) / size);`),t.push(`pointer.x += 1.0;`),t.push(`vec2 pixelDimensions = ${e.pixelDimensions};`),t.push(`if (false) {`);for(let n in _){let r=_[n];t.push(`} else if (int(atom0.x) == ${r.opcode}) {`);for(let n of r.generateSource(e))t.push(n)}return t.push(`} // End if-else.`),t.push(`} // End for.`),t.push(`${e.out} = top > 0 ? stack[top - 1] : vec4(0.0);`),t.join(`
|
|
11
|
+
`,`out0 = vec4(translation, rotation, scale);`]}encode(e){return[[this.opcode,0,0,0],[e.translation.from[0],e.translation.from[1],e.translation.to[0],e.translation.to[1]],[e.rotation.from,e.rotation.to,e.scale.from,e.scale.to],...p(e.translation.timing),...p(e.rotation.timing),...p(e.scale.timing),[+!!e.relativeTranslation,+!!e.absoluteScale,+!!e.selectGlobalRotation,0]]}}class h extends e{constructor(){super(...arguments),this.opcode=++t,this.length=7,this.ins=1,this.outs=1,this.microcode=[`float fromOpacity = atom0.y;`,`float toOpacity = atom0.z;`,`vec4 fromColor = atom1;`,`vec4 toColor = atom2;`,`float fColor;`,`{`,...c({duration:`atom3.x`,startTimeOffset:`atom3.y`,repeatDelay:`atom3.z`,timeOriginSelector:`atom3.w`,repeatType:`atom4.x`,easing:`atom4.y`,playAnimation:`atom4.z`,reverseAnimation:`atom4.w`,out:`fColor`}),`}`,`float fOpacity;`,`{`,...c({duration:`atom5.x`,startTimeOffset:`atom5.y`,repeatDelay:`atom5.z`,timeOriginSelector:`atom5.w`,repeatType:`atom6.x`,easing:`atom6.y`,playAnimation:`atom6.z`,reverseAnimation:`atom6.w`,out:`fOpacity`}),`}`,`vec4 aColor = mix(fromColor, toColor, fColor);`,`aColor.a *= mix(fromOpacity, toOpacity, fOpacity);`,`vec4 pColor = in0;`,`out0 = aColor * pColor;`]}encode(e){return[[this.opcode,e.opacity.from,e.opacity.to,0],[e.color.from[0],e.color.from[1],e.color.from[2],e.color.from[3]],[e.color.to[0],e.color.to[1],e.color.to[2],e.color.to[3]],...p(e.color.timing),...p(e.opacity.timing)]}}class g extends e{constructor(){super(...arguments),this.opcode=++t,this.length=4,this.ins=1,this.outs=1,this.microcode=[`float fromShift = atom0.y;`,`float toShift = atom0.z;`,`float duration = atom1.x;`,`bool multiplyToByLineLength = atom3.x == 1.0;`,`bool multiplyDurationByLineLength = atom3.y == 1.0;`,`bool continuous = atom3.z == 1.0;`,`toShift *= multiplyToByLineLength ? lineLength : 1.0;`,`duration *= multiplyDurationByLineLength ? lineLength : 1.0;`,`float fShift;`,`if (continuous) {`,...l({duration:`duration`,startTimeOffset:`atom1.y`,repeatDelay:`atom1.z`,timeOriginSelector:`atom1.w`,easing:`atom2.y`,playAnimation:`atom2.z`,reverseAnimation:`atom2.w`,out:`fShift`}),`} else {`,...c({duration:`duration`,startTimeOffset:`atom1.y`,repeatDelay:`atom1.z`,timeOriginSelector:`atom1.w`,repeatType:`atom2.x`,easing:`atom2.y`,playAnimation:`atom2.z`,reverseAnimation:`atom2.w`,out:`fShift`}),`}`,`if (lineLength < 50.0) {`,` fShift = 0.0;`,`}`,`float aShift = mix(fromShift, toShift, fShift);`,`vec4 pShift = in0;`,`out0 = mod(aShift + pShift, lineLength);`]}encode(e){return[[this.opcode,e.shift.from,e.shift.to,0],...p(e.shift.timing),[+!!e.multiplyToByLineLength,+!!e.multiplyDurationByLineLength,+!!e.continuous,0]]}}const _={scalar:new r,vector3:new i,vector4:new a,animatedTransform:new m,animatedColor:new h,animatedShift:new g,ret:new n},v=4;function y(e){let t=[];t.push(`float globalTime = ${e.globalTime};`),t.push(`float localTimeOrigin = ${e.localTimeOrigin};`),t.push(`float lineLength = ${e.lineLength};`),t.push(`float globalRotation = ${e.globalRotation};`),t.push(`vec2 pointer = ${e.animationPointer};`),t.push(`vec2 size = ${e.animationTextureSize};`),t.push(`int top = 0;`),t.push(`vec4 stack[4];`),t.push(`for (int counter = 0; counter < 40; counter++) {`),t.push(`vec4 atom0 = texture(${e.animationTexture}, (pointer + 0.5) / size);`),t.push(`pointer.x += 1.0;`),t.push(`vec2 pixelDimensions = ${e.pixelDimensions};`),t.push(`if (false) {`);for(let n in _){let r=_[n];t.push(`} else if (int(atom0.x) == ${r.opcode}) {`);for(let n of r.generateSource(e))t.push(n)}return t.push(`} // End if-else.`),t.push(`} // End for.`),t.push(`${e.out} = top > 0 ? stack[top - 1] : vec4(0.0);`),t.join(`
|
|
12
12
|
`)}export{e as AAnimationInstruction,h as AnimatedColorInstruction,g as AnimatedShiftInstruction,m as AnimatedTransformInstruction,n as RetInstruction,r as ScalarInstruction,i as Vector3Instruction,a as Vector4Instruction,u as easingCodes,y as generateVirtualMachineSource,c as getTweenFactor,l as getUnclampedTweenFactor,_ as instructions,d as repeatTypeCodes,f as timeOriginSelectorCodes};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{pt2px as e}from"../../../../../../../core/screenUtils.js";import{GeometryCursor as t}from"../../../../../../../geometry/GeometryCursor.js";import{
|
|
2
|
+
import{pt2px as e}from"../../../../../../../core/screenUtils.js";import{GeometryCursor as t}from"../../../../../../../geometry/GeometryCursor.js";import{getUprightAngle as n}from"../../../../../../../symbols/cim/CIMCursor.js";import{maxTileCoordValue as r}from"../../../../../../../symbols/cim/constants.js";import{CIMMarkerPlacementHelper as i}from"../../../../../../../symbols/cim/placements/CIMMarkerPlacementHelper.js";import{spritePadding as a,tileSize as o}from"../../../definitions.js";import{AAnimatedMeshWriter as s}from"./AnimatedMeshWriter.js";import{angle as c,sizing as l,animationPointerAndBaseSizeAndReferenceSize as u,uv as d,offset as f,pos as p,bitset as m,id as h,lineLength as g,value1Position2Value2 as _,zoomRange as v}from"./attributes.js";import{clipWithVertexInterpolation as y}from"./clipping.js";import{createComputedAnimatedMeshParams as b}from"./ComputedAnimatedParams.js";function x(e,t){let n=[],r=0,i=0;for(;e.nextPath();){i=t?0:r,e.nextPoint();let{x:a,y:o}=e,s=[{x:a,y:o,attributes:[i]}];for(;e.nextPoint();){let{x:t,y:n}=e,r=t-a,c=n-o,l=Math.sqrt(r*r+c*c);i+=l,s.push({x:t,y:n,attributes:[i]}),a=t,o=n}s.length>1&&n.push(s),r=i}return{lineData:n,totalDistance:r}}class S extends s{get vertexSpec(){return{createComputedParams:b,optionalAttributes:{zoomRange:v,value1Position2Value2:_,lineLength:g},attributes:{id:h,bitset:m,pos:p,offset:f.marker,uv:d.marker,animationPointerAndBaseSizeAndReferenceSize:u,sizing:l,angle:c}}}_write(e,{target:n,effect:r}){let i=r?.geometry,{textureBinding:a}=this.evaluatedMeshParams.sprite;e.recordStart(this.instanceId,this.attributeLayout,a);let o=n.getDisplayId();if(this.shift&&n.geometryType===`esriGeometryPolyline`){if(!i){let r=t.fromFeatureSetReaderCIM(n);r&&this._writeParticles(e,n,r)}}else if(this.evaluatedMeshParams.placement!=null)this._writePlacedMarkers(e,n);else if(n.geometryType===`esriGeometryPolygon`){let t=n.readCentroidForDisplay();if(!t)return;let[r,i]=t.coords;this._writeQuad(e,o,r,i)}else if(n.geometryType===`esriGeometryPoint`){let t=n.readXForDisplay(),r=n.readYForDisplay();this._writeQuad(e,o,t,r)}else{let t=n.readGeometryForDisplay();t&&t.forEachVertex((t,n)=>{this._writeQuad(e,o,t,n)})}e.recordEnd()}_writePlacedMarkers(n,a){let o=t.fromFeatureSetReaderCIM(a)?.clone();if(!o)return;let s=i.getPlacement(o,-1,this.evaluatedMeshParams.placement,e(1),n.id);if(!s)return;let c=a.getDisplayId(),l=s.next(),u=null;for(;l!=null;){let e=l.tx,t=-l.ty;if(Math.abs(e)>r||Math.abs(t)>r){l=s.next();continue}let i=-l.getAngle();n.recordBounds(e,t,64,64),this.shift?u&&this._writeQuad(n,c,u[0],u[1],void 0,i):this._writeQuad(n,c,e,t,void 0,i),u=[e,t],l=s.next()}}_writeParticles(e,t,r){let i=t.getDisplayId(),{placement:a}=this.evaluatedMeshParams,s=a?.placePerPart??!1,c=this.evaluatedMeshParams.angleToLine&&a!=null&&`keepUpright`in a&&a.keepUpright,{lineData:l,totalDistance:u}=x(r,s);if(l.length===0)return;let d=this.evaluatedMeshParams.baseSize,f={x:-d,y:-d,width:o+2*d,height:o+2*d},p=a==null?0:`offset`in a?a.offset??0:0,m=l.flatMap(e=>{let t=s?e[e.length-1].attributes[0]:u;return C(y(e,f),t,p)});for(let{particles:t,lineLength:r}of m){let o=a=>{for(let o of t){let{a:t,b:s}=o,l=this.evaluatedMeshParams.angleToLine?Math.atan2(t.direction[1],t.direction[0]):0,u=c?n(l):null;this._writeQuad(e,i,t.position[0],t.position[1],[t.distance-a,s.position[0],s.position[1],s.distance-a],u??l,r,!0)}};if(!a||`placementTemplate`in a||a.type===`CIMMarkerPlacementOnVertices`){let e;if(a&&a.type!==`CIMMarkerPlacementOnVertices`)e=a.placementTemplate;else{e=[0];for(let n of t){let{a:t,b:r}=n,i=t.position[0]-r.position[0],a=t.position[1]-r.position[1],o=Math.sqrt(i*i+a*a);e.push(o)}}let n=-1*r;for(;n<2*r;)for(let t of e)n+=t,o(n)}else a.type===`CIMMarkerPlacementAtExtremities`?a.extremityPlacement===`JustBegin`?o(1):a.extremityPlacement===`JustEnd`?(o(r-1),o(-1)):a.extremityPlacement===`Both`&&(o(1),o(r-1)):a.type===`CIMMarkerPlacementOnLine`&&(a.relativeTo===`LineBeginning`?o(1):a.relativeTo===`LineEnd`?(o(r-1),o(-1)):a.relativeTo===`LineMiddle`&&o(r/2))}}_writeQuad(e,t,n,r,i,o=0,s=0,c=!1){let{rect:l}=this.evaluatedMeshParams.sprite,u=l.x+a,d=l.y+a,f=l.x+l.width-a,p=l.y+l.height-a,m=e.vertexCount();c||e.recordBounds(n,r,64,64);let h={texXmin:u,texYmin:d,texXmax:f,texYmax:p,value1Position2Value2:i,angle:o,lineLength:s};for(let i=0;i<4;i++)this._writeVertex(e,t,n,r,h);e.indexEnsureSize(6),e.indexWrite(m),e.indexWrite(m+1),e.indexWrite(m+2),e.indexWrite(m+1),e.indexWrite(m+3),e.indexWrite(m+2)}}function C(t,n,r){let i=[];for(let a of t){let t=[],{x:o,y:s}=a[0],c=a[0].attributes[0];for(let n=1;n<a.length;n++){let{x:i,y:l}=a[n],u=a[n].attributes[0],d=i-o,f=l-s,p=Math.sqrt(d*d+f*f);if(p>0)d/=p,f/=p;else continue;let m=0,h=0;if(r!==0){let t=e(r),n=f,i=-d;m=n*t,h=i*t}t.push({a:{position:[o+m,s+h],distance:c,direction:[d,f]},b:{position:[i+m,l+h],distance:u,direction:[d,f]}}),o=i,s=l,c=u}i.push({particles:t,lineLength:n})}return i}class w extends S{constructor(){super(...arguments),this.shift=!1}}class T extends S{constructor(){super(...arguments),this.shift=!0}}export{w as AnimatedMarkerMeshWriter,T as AnimatedMarkerShiftMeshWriter,x as convertToLineData};
|
package/views/3d/GroundView3D.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import{EventedMixin as t}from"../../core/Evented.js";import has from"../../core/has.js";import{when as n,watch as r,syncAndInitial as i}from"../../core/reactiveUtils.js";import{property as a}from"../../core/accessorSupport/decorators/property.js";import{subclass as o}from"../../core/accessorSupport/decorators/subclass.js";import{create as s,equals as c,intersection as l,union as u}from"../../geometry/support/aaBoundingRect.js";import d from"../GroundView.js";import{ElevationRange as f}from"./support/ElevationRange.js";import{toBoundingRect as p}from"./support/extentUtils.js";import{webMercatorWorldExtent as m,geographicWorldExtent as h}from"./terrain/TerrainConst.js";import{isIntegratedMeshLayerView as g}from"../support/layerViewUtils.js";const _=Symbol(`integrated-mesh-elevation-providers`);let v=class extends t(d){initialize(){super.initialize(),this.addHandles(n(()=>this._terrainSurface,e=>e.on(`elevation-change`,e=>this._elevationChange(e)))),r(()=>[this.view?.basemapView?.groundLayerViews.toArray(),this.layerViews.toArray()],()=>{this.removeHandles(_),this.addHandles(this._integratedMeshGroundLayerViews.map(({elevationProvider:e})=>e.on(`elevation-change`,e=>this._elevationChange(e))),_)},i),this.addHandles([r(()=>this.memoizedElevationQueryDependencies,()=>{this.emit(`elevation-query-change`)})])}get memoizedElevationQueryDependencies(){return(this.ground?.allLayers??[]).filter(e=>e.type===`elevation`||e.type===`integrated-mesh-3dtiles`&&e.replacesTerrain).map(e=>e.memoizedElevationQueryDependencies)}_elevationChange(e){this.emit(`elevation-change`,e)}get _integratedMeshGroundLayerViews(){return has(`enable-feature:im-as-ground`)?[...this.view?.basemapView?.groundLayerViews.filter(g)??[],...this.layerViews.filter(g)]:[...this.view?.basemapView?.groundLayerViews.filter(g).filter(e=>e.replacesTerrain)??[]]}get _terrainSurface(){return this.view.basemapTerrain}get _usingTerrain(){return!this.hasTerrainReplacement&&(this._terrainSurface?.enabled??!1)}get spatialReference(){return this._terrainSurface?.spatialReference}get userClippingExtent(){let{spatialReference:e}=this,{clippingArea:t}=this.view;if(t==null||e==null)return null;let n=s(),r=p(t,n,e)?n:null,i=this._get(`userClippingExtent`);return c(r,i)?i:r}
|
|
2
|
+
import{__decorate as e}from"tslib";import{EventedMixin as t}from"../../core/Evented.js";import has from"../../core/has.js";import{when as n,watch as r,syncAndInitial as i}from"../../core/reactiveUtils.js";import{property as a}from"../../core/accessorSupport/decorators/property.js";import{subclass as o}from"../../core/accessorSupport/decorators/subclass.js";import{create as s,equals as c,intersection as l,union as u}from"../../geometry/support/aaBoundingRect.js";import d from"../GroundView.js";import{ElevationRange as f}from"./support/ElevationRange.js";import{toBoundingRect as p}from"./support/extentUtils.js";import{webMercatorWorldExtent as m,geographicWorldExtent as h}from"./terrain/TerrainConst.js";import{isIntegratedMeshLayerView as g}from"../support/layerViewUtils.js";const _=Symbol(`integrated-mesh-elevation-providers`);let v=class extends t(d){initialize(){super.initialize(),this.addHandles(n(()=>this._terrainSurface,e=>e.on(`elevation-change`,e=>this._elevationChange(e)))),r(()=>[this.view?.basemapView?.groundLayerViews.toArray(),this.layerViews.toArray()],()=>{this.removeHandles(_),this.addHandles(this._integratedMeshGroundLayerViews.map(({elevationProvider:e})=>e.on(`elevation-change`,e=>this._elevationChange(e))),_)},i),this.addHandles([r(()=>this.memoizedElevationQueryDependencies,()=>{this.emit(`elevation-query-change`)})])}get memoizedElevationQueryDependencies(){return(this.ground?.allLayers??[]).filter(e=>e.type===`elevation`||e.type===`integrated-mesh-3dtiles`&&e.replacesTerrain).map(e=>e.memoizedElevationQueryDependencies)}_elevationChange(e){this.emit(`elevation-change`,e)}get _integratedMeshGroundLayerViews(){return has(`enable-feature:im-as-ground`)?[...this.view?.basemapView?.groundLayerViews.filter(g)??[],...this.layerViews.filter(g)]:[...this.view?.basemapView?.groundLayerViews.filter(g).filter(e=>e.replacesTerrain)??[]]}get _terrainSurface(){return this.view.basemapTerrain}get _usingTerrain(){return!this.hasTerrainReplacement&&(this._terrainSurface?.enabled??!1)}get spatialReference(){return this._terrainSurface?.spatialReference}get userClippingExtent(){let{spatialReference:e}=this,{clippingArea:t}=this.view;if(t==null||e==null)return null;let n=s(),r=p(t,n,e)?n:null,i=this._get(`userClippingExtent`);return c(r,i)?i:r}isUpdating(){return this._usingTerrain&&this._terrainSurface.updating||super.isUpdating()}getElevation(e,t,n,r){let i=this._usingTerrain?this._terrainSurface?.getElevation(e,t,n,r):null;return this._integratedMeshGroundLayerViews.reduce((i,a)=>{let o=a.elevationProvider.getElevation(e,t,n,r);return o==null?i:Math.max(o,i??o)},i)}getElevations(e,t,n){let r=this.view.groundSpatialReference;if(r==null){for(let e=0;e<t;++e)n(e,null);return}for(let i=0;i<t;++i){let t=i*3;n(i,this.getElevation(e[t],e[t+1],e[t+2],r))}}intersect(e,t,n,r){this._usingTerrain&&this._terrainSurface.intersect(e,t,n,r),this._integratedMeshGroundLayerViews.forEach(i=>i.intersect(e,t,n,r))}getSphereElevationRange(e,t,n){let r=this._usingTerrain?this._terrainSurface?.getSphereElevationRange?.(e,t):null;return this._integratedMeshGroundLayerViews.reduce((n,r)=>{let i=r.elevationProvider.getSphereElevationRange?.(e,t);return i==null?n:(n??=new f,n.expandElevationRange(i),n)},r?new f(r.minElevation,r.maxElevation):null)}getRootElevationRange(){let e=this._usingTerrain?this._terrainSurface?.getRootElevationRange?.():null;return this._integratedMeshGroundLayerViews.reduce((e,t)=>{let n=t.elevationProvider.getRootElevationRange?.();return n==null?e:(e??=new f,e.expandElevationRange(n),e)},e?new f(e.minElevation,e.maxElevation):null)}get elevationQueryCache(){let e=this.view?.basemapTerrain;return e?.enabled?e.elevationQueryCache:null}get elevationQueryReady(){for(let e of this.ground?.allLayers??[])if(e.type===`integrated-mesh-3dtiles`&&e.replacesTerrain&&e.loadStatus!==`failed`&&e.queryElevationCallback==null)return!1;return!0}get groundExtent(){let{fullGroundExtent:e}=this;return e?this.userClippingExtent?l(e,this.userClippingExtent,s()):this.fullGroundExtent:null}get fullGroundExtent(){let e=this._usingTerrain?this._terrainSurface.fullGroundExtent:null;if(this._integratedMeshGroundLayerViews.length===0)return e;let t=this.view.spatialReference;if(!t.isWebMercator&&!t.isWGS84)return e;let n=b(t);return e?u(e,n,s()):n}get visibleElevationRange(){let e=this._usingTerrain?this._terrainSurface.visibleElevationRange:null;return this._integratedMeshGroundLayerViews.reduce((e,t)=>e==null?new f(t.visibleElevationRange.minElevation,t.visibleElevationRange.maxElevation):(e.expandElevationRange(t.visibleElevationRange),e),e?new f(e.minElevation,e.maxElevation):null)??y}get opaque(){return this._usingTerrain&&this._terrainSurface.opaque||this._integratedMeshGroundLayerViews.some(({opaque:e})=>e)}get invisible(){return(!this._usingTerrain||this._terrainSurface.invisible)&&this._integratedMeshGroundLayerViews.every(({invisible:e})=>e)}get baseOpacity(){return this.ground?.opacity??1}get wireframe(){return this._usingTerrain?this._terrainSurface?.wireframe??!1:!1}get freeze(){return this._usingTerrain&&(this._terrainSurface?.freeze??!1)||this._integratedMeshGroundLayerViews.some(e=>e.type===`integrated-mesh-3dtiles`&&e.freeze)}set freeze(e){this._usingTerrain&&(this._terrainSurface.freeze=e),this._integratedMeshGroundLayerViews.forEach(t=>{t.type===`integrated-mesh-3dtiles`&&(t.freeze=e)})}get suspended(){return(!this._usingTerrain||super.suspended)&&this._integratedMeshGroundLayerViews.length>0&&this._integratedMeshGroundLayerViews.every(({suspended:e})=>e)}get ready(){return!this._usingTerrain&&this._integratedMeshGroundLayerViews.length===0?!1:(!this._usingTerrain||this._terrainSurface.ready)&&this._integratedMeshGroundLayerViews.every(({ready:e})=>e)}updateOverlayParameters(){this._terrainSurface?.updateOverlayParameters()}requestRender(e){this.view.stage.renderView?.requestRender(e)}};e([a()],v.prototype,`memoizedElevationQueryDependencies`,null),e([a({readOnly:!0})],v.prototype,`_integratedMeshGroundLayerViews`,null),e([a({readOnly:!0})],v.prototype,`_terrainSurface`,null),e([a({readOnly:!0})],v.prototype,`_usingTerrain`,null),e([a({readOnly:!0})],v.prototype,`spatialReference`,null),e([a({readOnly:!0})],v.prototype,`userClippingExtent`,null),e([a({readOnly:!0})],v.prototype,`elevationQueryCache`,null),e([a()],v.prototype,`elevationQueryReady`,null),e([a({readOnly:!0})],v.prototype,`groundExtent`,null),e([a({readOnly:!0})],v.prototype,`fullGroundExtent`,null),e([a({readOnly:!0})],v.prototype,`visibleElevationRange`,null),e([a({readOnly:!0})],v.prototype,`opaque`,null),e([a({readOnly:!0})],v.prototype,`invisible`,null),e([a({readOnly:!0})],v.prototype,`baseOpacity`,null),e([a({readOnly:!0})],v.prototype,`wireframe`,null),e([a()],v.prototype,`freeze`,null),e([a({readOnly:!0})],v.prototype,`suspended`,null),e([a({readOnly:!0})],v.prototype,`ready`,null),v=e([o(`esri.views.3d.GroundView3D`)],v);const y=new f(0,0);function b(e){return e.isWebMercator?m:h}export{v as GroundView3D};
|
|
@@ -2,7 +2,7 @@ import type WebSceneSunLighting from "../../../webscene/SunLighting.js";
|
|
|
2
2
|
import type { EventedMixin } from "../../../core/Evented.js";
|
|
3
3
|
import type { SunLightingProperties as WebSceneSunLightingProperties } from "../../../webscene/SunLighting.js";
|
|
4
4
|
|
|
5
|
-
export interface SunLightingProperties extends WebSceneSunLightingProperties, Partial<Pick<SunLighting, "cameraTrackingEnabled">> {
|
|
5
|
+
export interface SunLightingProperties extends WebSceneSunLightingProperties, Partial<Pick<SunLighting, "cameraTrackingEnabled" | "globalIllumination">> {
|
|
6
6
|
/**
|
|
7
7
|
* The current date and time of the simulated sun. When setting the date, specifying the time zone is important,
|
|
8
8
|
* otherwise the time zone of the browser will be used. This might lead to different lighting for users in different
|
|
@@ -63,6 +63,21 @@ export default class SunLighting extends SunLightingSuperclass {
|
|
|
63
63
|
*/
|
|
64
64
|
get date(): Date;
|
|
65
65
|
set date(value: (Date | number | string));
|
|
66
|
+
/**
|
|
67
|
+
* Enables global illumination for more realistic lighting in the scene. Emissive materials illuminate nearby
|
|
68
|
+
* surfaces, while areas where surrounding objects block ambient light receive more natural shading.
|
|
69
|
+
*
|
|
70
|
+
* **Known limitations**
|
|
71
|
+
*
|
|
72
|
+
* - Is not supported with [GaussianSplatLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/GaussianSplatLayer/).
|
|
73
|
+
* - Is disabled at high camera altitudes.
|
|
74
|
+
* - May produce temporarily noisy lighting after camera or scene changes.
|
|
75
|
+
* - May reduce rendering performance.
|
|
76
|
+
*
|
|
77
|
+
* @beta
|
|
78
|
+
* @since 5.2
|
|
79
|
+
*/
|
|
80
|
+
accessor globalIllumination: boolean;
|
|
66
81
|
/** Indicates that the light source is simulated position of the sun. */
|
|
67
82
|
get type(): "sun";
|
|
68
83
|
}
|