UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

3 lines (2 loc) 5.28 kB
/* COPYRIGHT Esri - https://js.arcgis.com/5.0.19/LICENSE.txt */ import{__decorate as e}from"tslib";import t from"../../Color.js";import{deprecateWidget as i}from"../../core/deprecate.js";import s from"../../core/Logger.js";import{property as r,cast as a,subclass as o}from"../../core/accessorSupport/decorators.js";import{authoringInfoFirstVariableSliderMinMax as l}from"../../renderers/support/authoringInfoUtils.js";import n from"../../renderers/visualVariables/SizeVariable.js";import d from"../../renderers/visualVariables/support/SizeStop.js";import p from"./SmartMappingSliderBase.js";import m from"./SizeSlider/SizeSliderViewModel.js";import{getSizesFromVariable as u,getFillFromColor as h,getDynamicPathForSizeStops as c,getPathForSizeStops as g}from"./support/utils.js";import{globalCss as v}from"../support/globalCss.js";import{messageBundle as f,tsx as b}from"../support/widget.js";import{storeNode as y}from"../support/widgetUtils.js";var z;const S="esri-size-slider",w={base:S,rampElement:`${S}__ramp`,sliderContainer:`${S}__slider-container`,histogramContainer:`${S}__histogram-container`,primaryHandle:`${S}--primary-handle`,track:`${S}--interactive-track`},V={trackFillColor:new t([149,149,149]),trackBackgroundColor:new t([224,224,224])};let _=z=class extends p{constructor(e,t){super(e,t),this._maxRampFillWidth=1,this._minRampFillWidth=.2,this._rampNode=null,this.messages=null,this.style={...V},this.viewModel=new m,this.viewModel=new m,this.announceDeprecation=()=>{i(s.getLogger(this),"Slider Size","arcgis-slider-size-legacy",{version:"5.0"})}}get handlesSyncedToPrimary(){return this.viewModel.handlesSyncedToPrimary}set handlesSyncedToPrimary(e){this.viewModel.handlesSyncedToPrimary=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get persistSizeRangeEnabled(){return this.viewModel.persistSizeRangeEnabled}set persistSizeRangeEnabled(e){this.viewModel.persistSizeRangeEnabled=e}get primaryHandleEnabled(){return this.viewModel.primaryHandleEnabled}set primaryHandleEnabled(e){this.viewModel.primaryHandleEnabled=e}get stops(){return this.viewModel.stops}set stops(e){this.viewModel.stops=e}castStyle(e){return{...V,...e}}static fromRendererResult(e,t){const{visualVariables:i,statistics:s}=e,{avg:r,stddev:a}=s,o=i[0],[n,p]=u(o),[m,h]=l(e.renderer.authoringInfo);return new z({max:h,min:m,stops:[new d({value:o.minDataValue??void 0,size:p}),new d({value:o.maxDataValue??void 0,size:n})],histogramConfig:{average:r??void 0,standardDeviation:a??void 0,bins:t?t.bins:[]}})}updateFromRendererResult(e,t){const{visualVariables:i,statistics:s}=e,{avg:r,stddev:a}=s,o=i[0],[n,d]=u(o),[p,m]=l(e.renderer.authoringInfo);this.set({max:m,min:p,stops:[{value:o.minDataValue,size:d},{value:o.maxDataValue,size:n}],histogramConfig:{...this.histogramConfig,average:r,standardDeviation:a,bins:t?t.bins:[]}})}updateVisualVariable(e){const t=e.clone(),{stops:i}=this;if(!e||!i)return null;if(t.stops)return t.stops=i,t;const s=i[0],r=i[i.length-1];let a=t.maxSize,o=t.minSize;if(a instanceof n){const e=a.stops,t=r.size/e[0].size,i=e.map(e=>(e.size*=t,e));a.stops=i}else a=r.size;if(o instanceof n){const e=o.stops,t=s.size/e[0].size,i=e.map(e=>(e.size*=t,e));o.stops=i}else o=s.size;return t.set({maxDataValue:r.value,minDataValue:s.value,maxSize:a,minSize:o}),t}updateFromVisualVariable(e){if(!e)return;const{maxDataValue:t,minDataValue:i,stops:s}=e;if(s)this.stops=s;else{const[s,r]=u(e);this.stops=[new d({value:i??void 0,size:r}),new d({value:t??void 0,size:s})]}}render(){const{label:e,primaryHandleEnabled:t,state:i,visibleElements:s}=this,r="disabled"===i,a=this.classes(w.base,v.widget,v.panel,{[v.disabled]:r,[w.primaryHandle]:t,[w.track]:!!s.interactiveTrack});return b("div",{"aria-label":e,class:a},r?null:this.renderContent(this._renderRamp(),w.sliderContainer,w.histogramContainer))}_renderRamp(){const{style:{trackBackgroundColor:e},zoomOptions:t}=this;return b("div",{afterCreate:y,bind:this,class:w.rampElement,"data-node-ref":"_rampNode"},b("svg",{key:"ramp-svg",xmlns:"http://www.w3.org/2000/svg"},b("rect",{fill:h(e),height:"100%",width:"100%",x:"0",y:"0"}),this._renderPath()),t?this.renderZoomCaps():null)}_renderPath(){if(!this._rampNode)return;const{offsetHeight:e=0,offsetWidth:t=0}=this._rampNode;if(null==e||null==t)return;const{primaryHandleEnabled:i,stops:s,style:{trackFillColor:r},values:a,viewModel:{max:o,min:l},_maxRampFillWidth:n,_minRampFillWidth:d}=this,p=[n,d];s[0].size<s[s.length-1].size&&p.reverse();const m=a.slice().sort((e,t)=>e>t?1:-1),[u,v]=p,[f,y]=m,z=i?c({max:o,min:l,pathHeight:e,pathWidth:t,stops:s,padding:v}):g({bottomValue:f,bottomWidth:u,max:o,min:l,pathHeight:e,pathWidth:t,topValue:y,topWidth:v});return b("path",{d:z,fill:h(r)})}};e([r()],_.prototype,"handlesSyncedToPrimary",null),e([r()],_.prototype,"label",null),e([r(),f("esri/widgets/smartMapping/SizeSlider/t9n/SizeSlider")],_.prototype,"messages",void 0),e([r()],_.prototype,"persistSizeRangeEnabled",null),e([r()],_.prototype,"primaryHandleEnabled",null),e([r()],_.prototype,"stops",null),e([r()],_.prototype,"style",void 0),e([a("style")],_.prototype,"castStyle",null),e([r({type:m})],_.prototype,"viewModel",void 0),_=z=e([o("esri.widgets.smartMapping.SizeSlider")],_);const x=_;export{x as default};