UNPKG

@arcgis/core

Version:

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

6 lines (5 loc) 3.02 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 t}from"../../chunks/tslib.es6.js";import s from"../../Color.js";import{property as e}from"../../core/accessorSupport/decorators/property.js";import{cast as i}from"../../core/accessorSupport/decorators/cast.js";import"../../core/has.js";import"../../core/RandomLCG.js";import{subclass as r}from"../../core/accessorSupport/decorators/subclass.js";import o from"./SmartMappingSliderBase.js";import a from"./OpacitySlider/OpacitySliderViewModel.js";import{globalCss as l}from"../support/globalCss.js";import"../support/widgetUtils.js";import{messageBundle as n}from"../support/decorators/messageBundle.js";import{tsx as p}from"../support/jsxFactory.js";var d;const m="esri-opacity-slider",c={base:m,rampElement:`${m}__ramp`,sliderContainer:`${m}__slider-container`,histogramContainer:`${m}__histogram-container`,track:`${m}--interactive-track`},g={trackFillColor:new s([0,121,193])};let u=d=class extends o{constructor(t,s){super(t,s),this.messages=null,this.style={...g},this.viewModel=new a,this._rampFillId=`${this.id}-ramp-fill`,this._bgFillId=`${this.id}-bg-fill`}get label(){return this.messages?.widgetLabel??""}set label(t){this._overrideIfSome("label",t)}get stops(){return this.viewModel.stops}set stops(t){this.viewModel.stops=t}castStyle(t){return{...g,...t}}static fromVisualVariableResult(t,s){const{visualVariable:{stops:e},statistics:i}=t,{avg:r,max:o,min:a,stddev:l}=i;return new d({max:o??void 0,min:a??void 0,stops:e,histogramConfig:{average:r??void 0,standardDeviation:l??void 0,bins:s?s.bins:[]}})}updateFromVisualVariableResult(t,s){const{visualVariable:{stops:e},statistics:i}=t,{avg:r,max:o,min:a,stddev:l}=i;this.set({max:o,min:a,stops:e,histogramConfig:{average:r,standardDeviation:l,bins:s?s.bins:[]}})}render(){const{state:t,label:s,visibleElements:e}=this,i="disabled"===t,r=this.classes(c.base,l.widget,l.panel,{[l.disabled]:i,[c.track]:!!e.interactiveTrack});return p("div",{"aria-label":s,class:r},i?null:this.renderContent(this._renderRamp(),c.sliderContainer,c.histogramContainer))}_renderRamp(){const{_bgFillId:t,_rampFillId:s,style:{trackFillColor:e},viewModel:i,zoomOptions:r}=this,o=i.getStopInfo(e);return p("div",{class:c.rampElement},p("svg",{xmlns:"http://www.w3.org/2000/svg"},p("defs",null,this.renderRampFillDefinition(s,o),this.renderBackgroundFillDefinition(t)),p("rect",{fill:`url(#${t})`,height:"100%",width:"100%",x:"0",y:"0"}),p("rect",{fill:`url(#${s})`,height:"100%",width:"100%",x:"0",y:"0"})),r?this.renderZoomCaps():null)}};t([e()],u.prototype,"label",null),t([e(),n("esri/widgets/smartMapping/OpacitySlider/t9n/OpacitySlider")],u.prototype,"messages",void 0),t([e()],u.prototype,"stops",null),t([e()],u.prototype,"style",void 0),t([i("style")],u.prototype,"castStyle",null),t([e({type:a})],u.prototype,"viewModel",void 0),u=d=t([r("esri.widgets.smartMapping.OpacitySlider")],u);const h=u;export{h as default};