// All material copyright Esri, All Rights Reserved, unless otherwise specified. // See https://js.arcgis.com/4.30/esri/copyright.txt for details. //>>built define(["../../core/Error","../../geometry/support/scaleUtils","../statistics/spatialStatistics","../support/binningUtils","../support/adapters/support/layerUtils"],function(k,n,r,t,l){async function u(a){const {view:b,sampleSize:f}=a;if(!(a&&b&&a.layer))throw new k("scale-range:missing-parameters","'view' and 'layer' parameters are required");a.forBinning&&t.verifyBinningParams(a,"scale-range");const {layer:g,...h}=a;var e=a.forBinning?l.binningCapableLayerTypes:l.featureCapableLayerTypes;a=l.createLayerAdapter(g, e,a.forBinning);if(!a)throw new k("scale-range:invalid-parameters","'layer' must be one of these types: "+l.getLayerTypeLabels(e).join(", "));e={layerAdapter:a,...h};e.sampleSize=f||500;await b.when();await a.load(null!=e.signal?{signal:e.signal}:null);return e}function p(a,b,f=!0){if(a.constraints&&"effectiveLODs"in a.constraints){a=a.constraints.effectiveLODs;a=f?a:a.slice(0).reverse();let g=null;for(const h of a)if(!(f?h.scale>b:h.scalec/2&&(d=Math.floor(d/2));1E8