define(function(require,exports,module){const DropdownEventHandler=require("utils/DropdownEventHandler").DropdownEventHandler,EventDispatcher=require("utils/EventDispatcher"),WorkspaceManager=require("view/WorkspaceManager"),Menus=require("command/Menus"),ViewUtils=require("utils/ViewUtils"),_=require("thirdparty/lodash"),EVENT_SELECTED="select",EVENT_LIST_RENDERED="listRendered",EVENT_DROPDOWN_SHOWN="shown",EVENT_DROPDOWN_CLOSED="closed";function DropdownButton(label,items,itemRenderer,options){this.items=items,options=options||{},this.enableFilter="boolean"!=typeof options.enableFilter||options.enableFilter,this.customFilter=options.customFilter,this.itemRenderer=itemRenderer||this.itemRenderer,this._onClick=this._onClick.bind(this),this.closeDropdown=this.closeDropdown.bind(this),this._onClickOutside=this._onClickOutside.bind(this),this.$button=$(``).text(label).on("click",this._onClick)}EventDispatcher.makeEventDispatcher(DropdownButton.prototype),DropdownButton.prototype.items=null,DropdownButton.prototype.itemsSearchFilterText=null,DropdownButton.prototype.$button=null,DropdownButton.prototype.$dropdown=null,DropdownButton.prototype.dropdownExtraClasses=null,DropdownButton.prototype._lastFocus=null,DropdownButton.prototype._dropdownEventHandler=null,DropdownButton.prototype._onClick=function(event){this.$button.hasClass("disabled")||this.toggleDropdown(),event.stopPropagation()},DropdownButton.prototype.setButtonLabel=function(label){this.$button&&$(this.$button).text(label)},DropdownButton.prototype.isOpen=function(){return!!this.$dropdown},DropdownButton.prototype.itemRenderer=function(item,index){return _.escape(String(item))},DropdownButton.prototype._renderList=function($parent){if(!$parent)return null;const self=this;this.itemsSearchFilterText=[];let html="";return this.searchStr="",self.enableFilter&&$parent.append('