@doegis/core
Version:
DOE GIS API
3 lines (1 loc) • 3.05 kB
JavaScript
import{_ as e}from"../../chunks/tslib.es6.js";import{property as r}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import"../../core/arrayUtils.js";import{subclass as s}from"../../core/accessorSupport/decorators/subclass.js";import t from"../../renderers/support/ClassBreakInfo.js";import{SmartMappingSliderBase as i}from"./SmartMappingSliderBase.js";import o from"./ClassedColorSlider/ClassedColorSliderViewModel.js";import"../support/widgetUtils.js";import{messageBundle as l}from"../support/decorators/messageBundle.js";import{tsx as a}from"../support/jsxFactory.js";var n;const d="esri-classed-color-slider",m={base:d,rampElement:`${d}__ramp`,sliderContainer:`${d}__slider-container`,histogramContainer:`${d}__histogram-container`,track:`${d}--interactive-track`,esriWidget:"esri-widget",esriWidgetPanel:"esri-widget--panel",widgetIcon:"esri-icon-edit",disabled:"esri-disabled"};let p=n=class extends i{constructor(e,r){super(e,r),this._bgFillId=null,this._rampFillId=null,this.messages=null,this.viewModel=new o,this._bgFillId=`${this.id}-bg-fill`,this._rampFillId=`${this.id}-linear-gradient`}get breaks(){return this.viewModel.breaks}set breaks(e){this.viewModel.breaks=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}static fromRendererResult(e,r){const{renderer:{classBreakInfos:s}}=e,t=s.map((e=>{const r=e.symbol.color;return{min:e.minValue,max:e.maxValue,color:r}}));return new n({breaks:t,histogramConfig:{bins:r?r.bins:[]}})}updateClassBreakInfos(e){const r=this.breaks;if(r.length===e.length)return e.map(((e,s)=>{const i=e.symbol;return i.color=r[s].color,new t({minValue:r[s].min,maxValue:r[s].max,symbol:i})}));console.error(`Number of input breakInfos must match number of slider breaks: ${r.length}`)}updateFromRendererResult(e,r){const{renderer:{classBreakInfos:s}}=e,t=s.map((e=>{const r=e.symbol.color;return{min:e.minValue,max:e.maxValue,color:r}}));this.set({breaks:t}),r?.bins&&(this.histogramConfig.bins=r.bins)}render(){const{state:e,label:r,visibleElements:s}=this,t="disabled"===e,i=this.classes(m.base,m.esriWidget,m.esriWidgetPanel,{[m.disabled]:t,[m.track]:s.interactiveTrack});return a("div",{"aria-label":r,class:i},t?null:this.renderContent(this.renderRamp(),m.sliderContainer,m.histogramContainer))}renderRamp(){const{_bgFillId:e,_rampFillId:r,viewModel:s}=this,t=s.getStopInfo();return a("div",{class:m.rampElement},a("svg",{xmlns:"http://www.w3.org/2000/svg"},a("defs",null,this.renderRampFillDefinition(r,t),this.renderBackgroundFillDefinition(e)),a("rect",{x:"0",y:"0",fill:`url(#${e})`,height:"100%",width:"100%"}),a("rect",{x:"0",y:"0",fill:`url(#${r})`,height:"100%",width:"100%"})))}};e([r()],p.prototype,"breaks",null),e([r()],p.prototype,"label",null),e([r(),l("esri/widgets/smartMapping/ClassedColorSlider/t9n/ClassedColorSlider")],p.prototype,"messages",void 0),e([r()],p.prototype,"viewModel",void 0),p=n=e([s("esri.widgets.smartMapping.ClassedColorSlider")],p);const c=p;export{c as default};