UNPKG

ldx-widgets

Version:

widgets

71 lines (65 loc) 2.46 kB
(function() { var MultiSelectOption, React, button, div, li, ref; React = require('react'); ref = React.DOM, li = ref.li, button = ref.button, div = ref.div; MultiSelectOption = React.createClass({ displayName: 'MultiSelectOption', render: function() { var allowDefault, className, defaultClass, disabled, isActive, isTheDefault, option, ref1, tabIndex; ref1 = this.props, option = ref1.option, allowDefault = ref1.allowDefault, isActive = ref1.isActive, isTheDefault = ref1.isTheDefault, disabled = ref1.disabled, tabIndex = ref1.tabIndex; className = 'multiselect-option'; if (isActive && option.isSelected) { className += ' is-active'; } defaultClass = 'multiselect-default'; if (isTheDefault) { defaultClass += ' is-selected'; } return li({ className: className, onClick: isActive && !disabled ? this.toggleSelect : function() {} }, [ option.isSelected && isActive && !disabled ? button({ key: 'clear', className: 'btn-plus-minus minus left', tabIndex: tabIndex }) : void 0, !option.isSelected && isActive && !disabled ? button({ key: 'add', className: 'btn-plus-minus plus left', tabIndex: tabIndex }) : void 0, div({ key: 'label', className: 'multiselect-option-label', style: { left: isActive ? 25 : 5 } }, option.label), allowDefault && option.isSelected && !disabled ? button({ key: 'default', className: defaultClass, onClick: this.setAsDefault, tabIndex: tabIndex }, ['default']) : void 0 ]); }, toggleSelect: function(e) { var base; if (typeof (base = e.nativeEvent).stopImmediatePropagation === "function") { base.stopImmediatePropagation(); } this.props.option.isSelected = !this.props.option.isSelected; if (!this.props.option.isSelected) { this.props.onRemove(this.props.option); } return this.props.setValues(this.props.option); }, setAsDefault: function(e) { var base; e.stopPropagation(); if (typeof (base = e.nativeEvent).stopImmediatePropagation === "function") { base.stopImmediatePropagation(); } return this.props.setDefault(this.props.option); } }); module.exports = MultiSelectOption; }).call(this);