SegmentedButton.js 757 B

123456
  1. export default class SegmentedButton extends UI.HBox{constructor(){super(true);this._buttons=new Map();this._selected=null;this.registerRequiredCSS('ui/segmentedButton.css');this.contentElement.classList.add('segmented-button');}
  2. addSegment(label,value,tooltip){const button=this.contentElement.createChild('button','segmented-button-segment');button.textContent=label;button.title=tooltip;this._buttons.set(value,button);button.addEventListener('click',()=>this.select(value));}
  3. select(value){if(this._selected===value){return;}
  4. this._selected=value;for(const key of this._buttons.keys()){this._buttons.get(key).classList.toggle('segmented-button-segment-selected',key===this._selected);}}
  5. selected(){return this._selected;}}
  6. self.UI=self.UI||{};UI=UI||{};