UNPKG

easyui-draganddrop

Version:

Drag and drop elements including a file explorer and a rubbish bin.

56 lines (39 loc) 976 B
'use strict'; const easyui = require('easyui'), InputElement = easyui.InputElement; class ToggleButton extends InputElement { constructor(selector, updateHandler) { super(selector); this.updateHandler = updateHandler; this.onClick(this.clickHandler.bind(this)); } isCollapsed() { const collapsed = this.hasClass('collapsed'); return collapsed; } expand() { this.removeClass('collapsed'); } collapse() { this.addClass('collapsed'); } toggle() { this.toggleClass('collapsed'); const collapsed = this.isCollapsed(); this.updateHandler(collapsed); } clickHandler() { this.toggle(); } static fromProperties(properties) { const { updateHandler } = properties; return InputElement.fromProperties(ToggleButton, properties, updateHandler); } } Object.assign(ToggleButton, { tagName: 'button', ignoredAttributes: [ 'updateHandler' ] }); module.exports = ToggleButton;