UNPKG

@arcgis/core

Version:

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

6 lines (5 loc) 3.07 kB
/* All material copyright ESRI, All Rights Reserved, unless otherwise specified. See https://js.arcgis.com/4.33/esri/copyright.txt for details. */ import{_ as e}from"../../chunks/tslib.es6.js";import{property as r}from"../../core/accessorSupport/decorators/property.js";import"../../core/has.js";import"../../core/Logger.js";import"../../core/RandomLCG.js";import{subclass as s}from"../../core/accessorSupport/decorators/subclass.js";import t from"../../renderers/support/ClassBreakInfo.js";import o from"./SmartMappingSliderBase.js";import i from"./ClassedColorSlider/ClassedColorSliderViewModel.js";import{globalCss as l}from"../support/globalCss.js";import"../support/widgetUtils.js";import{messageBundle as a}from"../support/decorators/messageBundle.js";import{tsx as n}from"../support/jsxFactory.js";var m;const d="esri-classed-color-slider",p={base:d,rampElement:`${d}__ramp`,sliderContainer:`${d}__slider-container`,histogramContainer:`${d}__histogram-container`,track:`${d}--interactive-track`};let c=m=class extends o{constructor(e,r){super(e,r),this.messages=null,this.viewModel=new i,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 m({breaks:t,histogramConfig:{bins:r?r.bins:[]}})}updateClassBreakInfos(e){const r=this.breaks;if(r.length===e.length)return e.map(((e,s)=>{const o=e.symbol;return o.color=r[s].color,new t({minValue:r[s].min,maxValue:r[s].max,symbol:o})}));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,o=this.classes(p.base,l.widget,l.panel,{[l.disabled]:t,[p.track]:!!s.interactiveTrack});return n("div",{"aria-label":r,class:o},t?null:this.renderContent(this._renderRamp(),p.sliderContainer,p.histogramContainer))}_renderRamp(){const{_bgFillId:e,_rampFillId:r,viewModel:s}=this,t=s.getStopInfo();return n("div",{class:p.rampElement},n("svg",{xmlns:"http://www.w3.org/2000/svg"},n("defs",null,this.renderRampFillDefinition(r,t),this.renderBackgroundFillDefinition(e)),n("rect",{fill:`url(#${e})`,height:"100%",width:"100%",x:"0",y:"0"}),n("rect",{fill:`url(#${r})`,height:"100%",width:"100%",x:"0",y:"0"})))}};e([r()],c.prototype,"breaks",null),e([r()],c.prototype,"label",null),e([r(),a("esri/widgets/smartMapping/ClassedColorSlider/t9n/ClassedColorSlider")],c.prototype,"messages",void 0),e([r({type:i})],c.prototype,"viewModel",void 0),c=m=e([s("esri.widgets.smartMapping.ClassedColorSlider")],c);const u=c;export{u as default};