model/tabs.event.js

import { EventListener } from "domodel"

/**
 * @global
 */
class TabsEventListener extends EventListener {

	/**
	 * @event TabsEventListener#tabChanged
	 * @property {Tab} tab
	 */

	/**
	 * @event TabsEventListener#tabSet
	 * @property {string} name
	 */
	tabSet(name) {
		const { tabs } = this.properties
		if(tabs.tab) {
			tabs.emit("tabUnset", tabs.tab.name)
		}
		const tab = tabs.getTabByName(name)
		tabs.tab = tab
		tab.active = true
		tab.emit("set")
		tabs.emit("tabChanged", tab)
	}

	/**
	 * @event TabsEventListener#tabUnset
	 * @property {string} name
	 */
	tabUnset(name) {
		const { tabs } = this.properties
		const tab = tabs.getTabByName(name)
		tab.active = false
		tabs.tab = null
		tab.emit("unset")
	}

}

export default TabsEventListener