apeman-react-checkbox
Version:
apeman react package for checkbox component.
119 lines (98 loc) • 8.64 kB
JavaScript
/**
* Checkbox component.
* @class ApCheckbox
*/
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _apemanReactIcon = require('apeman-react-icon');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
var DEFAULT_ICON = 'ion ion-android-checkbox-outline-blank';
var DEFAULT_CHECKED_ICON = 'ion ion-android-checkbox';
/** @lends ApCheckbox */
var ApCheckbox = _react2.default.createClass({
displayName: 'ApCheckbox',
// --------------------
// Specs
// --------------------
propTypes: {
/** Document id */
id: _react.PropTypes.string.isRequired,
/** Name of checkbox input */
name: _react.PropTypes.string.isRequired,
/** Value of checkbox input */
value: _react.PropTypes.string.isRequired,
/** Label title */
title: _react.PropTypes.string,
/** Checked or not */
checked: _react.PropTypes.bool,
/** Handle for change event */
onChange: _react.PropTypes.func,
/** Icon class name for normal state */
icon: _react.PropTypes.string,
/** Icon class name for checked state */
checkedIcon: _react.PropTypes.string
},
statics: {
DEFAULT_ICON: DEFAULT_ICON,
DEFAULT_CHECKED_ICON: DEFAULT_CHECKED_ICON
},
getInitialState: function getInitialState() {
return {};
},
getDefaultProps: function getDefaultProps() {
return {
id: null,
name: null,
value: null,
title: '',
checked: false,
onChange: null,
icon: DEFAULT_ICON,
checkedIcon: DEFAULT_CHECKED_ICON
};
},
render: function render() {
var _iconClass;
var s = this;
var props = s.props;
var id = props.id;
var name = props.name;
var value = props.value;
var checked = props.checked;
var onChange = props.onChange;
var iconClass = (_iconClass = {
'ap-checkbox-icon-checked': checked
}, _defineProperty(_iconClass, props.checkedIcon, checked), _defineProperty(_iconClass, props.icon, !checked), _iconClass);
var className = (0, _classnames2.default)('ap-checkbox', props.className, {
'ap-checkbox-checked': checked
});
return _react2.default.createElement(
'label',
{ className: className,
htmlFor: id,
id: id + '-wrap' },
_react2.default.createElement(_apemanReactIcon.ApIcon, { className: (0, _classnames2.default)('ap-checkbox-icon', iconClass) }),
_react2.default.createElement('input', { type: 'checkbox',
className: (0, _classnames2.default)('ap-checkbox-input'),
id: id,
name: name,
value: value,
checked: checked,
onChange: onChange }),
_react2.default.createElement(
'span',
{ className: (0, _classnames2.default)('ap-checkbox-title') },
props.title
)
);
}
});
exports.default = ApCheckbox;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwX2NoZWNrYm94LmpzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUtBOzs7Ozs7QUFFQTs7OztBQUNBOzs7O0FBQ0E7Ozs7OztBQUVBLElBQU0sZUFBZSx3Q0FBckI7QUFDQSxJQUFNLHVCQUF1QiwwQkFBN0I7OztBQUdBLElBQU0sYUFBYSxnQkFBTSxXQUFOLENBQWtCO0FBQUE7Ozs7Ozs7QUFNbkMsYUFBVzs7QUFFVCxRQUFJLGlCQUFNLE1BQU4sQ0FBYSxVQUZSOztBQUlULFVBQU0saUJBQU0sTUFBTixDQUFhLFVBSlY7O0FBTVQsV0FBTyxpQkFBTSxNQUFOLENBQWEsVUFOWDs7QUFRVCxXQUFPLGlCQUFNLE1BUko7O0FBVVQsYUFBUyxpQkFBTSxJQVZOOztBQVlULGNBQVUsaUJBQU0sSUFaUDs7QUFjVCxVQUFNLGlCQUFNLE1BZEg7O0FBZ0JULGlCQUFhLGlCQUFNO0FBaEJWLEdBTndCOztBQXlCbkMsV0FBUztBQUNQLDhCQURPO0FBRVA7QUFGTyxHQXpCMEI7O0FBOEJuQyxpQkE5Qm1DLDZCQThCaEI7QUFDakIsV0FBTyxFQUFQO0FBQ0QsR0FoQ2tDO0FBa0NuQyxpQkFsQ21DLDZCQWtDaEI7QUFDakIsV0FBTztBQUNMLFVBQUksSUFEQztBQUVMLFlBQU0sSUFGRDtBQUdMLGFBQU8sSUFIRjtBQUlMLGFBQU8sRUFKRjtBQUtMLGVBQVMsS0FMSjtBQU1MLGdCQUFVLElBTkw7QUFPTCxZQUFNLFlBUEQ7QUFRTCxtQkFBYTtBQVJSLEtBQVA7QUFVRCxHQTdDa0M7QUErQ25DLFFBL0NtQyxvQkErQ3pCO0FBQUE7O0FBQ1IsUUFBTSxJQUFJLElBQVY7QUFEUSxRQUVGLEtBRkUsR0FFUSxDQUZSLENBRUYsS0FGRTtBQUFBLFFBS04sRUFMTSxHQVVKLEtBVkksQ0FLTixFQUxNO0FBQUEsUUFNTixJQU5NLEdBVUosS0FWSSxDQU1OLElBTk07QUFBQSxRQU9OLEtBUE0sR0FVSixLQVZJLENBT04sS0FQTTtBQUFBLFFBUU4sT0FSTSxHQVVKLEtBVkksQ0FRTixPQVJNO0FBQUEsUUFTTixRQVRNLEdBVUosS0FWSSxDQVNOLFFBVE07OztBQVlSLFFBQUk7QUFDRixrQ0FBNEI7QUFEMUIsbUNBRUEsTUFBTSxXQUZOLEVBRXFCLE9BRnJCLCtCQUdBLE1BQU0sSUFITixFQUdjLENBQUMsT0FIZixjQUFKOztBQU1BLFFBQUksWUFBWSwwQkFBVyxhQUFYLEVBQTBCLE1BQU0sU0FBaEMsRUFBMkM7QUFDekQsNkJBQXVCO0FBRGtDLEtBQTNDLENBQWhCO0FBR0EsV0FDRTtBQUFBO01BQUEsRUFBTyxXQUFZLFNBQW5CO0FBQ08saUJBQVUsRUFEakI7QUFFTyxZQUFPLEVBQVAsVUFGUDtNQUdFLHlEQUFRLFdBQVksMEJBQVcsa0JBQVgsRUFBK0IsU0FBL0IsQ0FBcEIsR0FIRjtNQUlFLHlDQUFPLE1BQUssVUFBWjtBQUNPLG1CQUFZLDBCQUFXLG1CQUFYLENBRG5CO0FBRU8sWUFBSyxFQUZaO0FBR08sY0FBTyxJQUhkO0FBSU8sZUFBUSxLQUpmO0FBS08saUJBQVUsT0FMakI7QUFNTyxrQkFBVyxRQU5sQixHQUpGO01BV0U7QUFBQTtRQUFBLEVBQU0sV0FBWSwwQkFBVyxtQkFBWCxDQUFsQjtRQUFzRCxNQUFNO0FBQTVEO0FBWEYsS0FERjtBQWVEO0FBbkZrQyxDQUFsQixDQUFuQjs7a0JBc0ZlLFUiLCJmaWxlIjoiYXBfY2hlY2tib3guanMiLCJzb3VyY2VSb290IjoiL1VzZXJzL29rdW5pc2hpbmlzaGkvUHJvamVjdHMvYXBlbWFuLXByb2plY3RzL2FwZW1hbi1yZWFjdC1jaGVja2JveC9saWIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENoZWNrYm94IGNvbXBvbmVudC5cbiAqIEBjbGFzcyBBcENoZWNrYm94XG4gKi9cblxuJ3VzZSBzdHJpY3QnXG5cbmltcG9ydCBSZWFjdCwge1Byb3BUeXBlcyBhcyB0eXBlc30gZnJvbSAncmVhY3QnXG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICdjbGFzc25hbWVzJ1xuaW1wb3J0IHtBcEljb259IGZyb20gJ2FwZW1hbi1yZWFjdC1pY29uJ1xuXG5jb25zdCBERUZBVUxUX0lDT04gPSAnaW9uIGlvbi1hbmRyb2lkLWNoZWNrYm94LW91dGxpbmUtYmxhbmsnXG5jb25zdCBERUZBVUxUX0NIRUNLRURfSUNPTiA9ICdpb24gaW9uLWFuZHJvaWQtY2hlY2tib3gnXG5cbi8qKiBAbGVuZHMgQXBDaGVja2JveCAqL1xuY29uc3QgQXBDaGVja2JveCA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtcblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBTcGVjc1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIHByb3BUeXBlczoge1xuICAgIC8qKiBEb2N1bWVudCBpZCAqL1xuICAgIGlkOiB0eXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAvKiogTmFtZSBvZiBjaGVja2JveCBpbnB1dCAqL1xuICAgIG5hbWU6IHR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIC8qKiBWYWx1ZSBvZiBjaGVja2JveCBpbnB1dCAqL1xuICAgIHZhbHVlOiB0eXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAvKiogTGFiZWwgdGl0bGUgKi9cbiAgICB0aXRsZTogdHlwZXMuc3RyaW5nLFxuICAgIC8qKiBDaGVja2VkIG9yIG5vdCAqL1xuICAgIGNoZWNrZWQ6IHR5cGVzLmJvb2wsXG4gICAgLyoqIEhhbmRsZSBmb3IgY2hhbmdlIGV2ZW50ICovXG4gICAgb25DaGFuZ2U6IHR5cGVzLmZ1bmMsXG4gICAgLyoqIEljb24gY2xhc3MgbmFtZSBmb3Igbm9ybWFsIHN0YXRlICovXG4gICAgaWNvbjogdHlwZXMuc3RyaW5nLFxuICAgIC8qKiBJY29uIGNsYXNzIG5hbWUgZm9yIGNoZWNrZWQgc3RhdGUgKi9cbiAgICBjaGVja2VkSWNvbjogdHlwZXMuc3RyaW5nXG4gIH0sXG5cbiAgc3RhdGljczoge1xuICAgIERFRkFVTFRfSUNPTixcbiAgICBERUZBVUxUX0NIRUNLRURfSUNPTlxuICB9LFxuXG4gIGdldEluaXRpYWxTdGF0ZSAoKSB7XG4gICAgcmV0dXJuIHt9XG4gIH0sXG5cbiAgZ2V0RGVmYXVsdFByb3BzICgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IG51bGwsXG4gICAgICBuYW1lOiBudWxsLFxuICAgICAgdmFsdWU6IG51bGwsXG4gICAgICB0aXRsZTogJycsXG4gICAgICBjaGVja2VkOiBmYWxzZSxcbiAgICAgIG9uQ2hhbmdlOiBudWxsLFxuICAgICAgaWNvbjogREVGQVVMVF9JQ09OLFxuICAgICAgY2hlY2tlZEljb246IERFRkFVTFRfQ0hFQ0tFRF9JQ09OXG4gICAgfVxuICB9LFxuXG4gIHJlbmRlciAoKSB7XG4gICAgY29uc3QgcyA9IHRoaXNcbiAgICBsZXQgeyBwcm9wcyB9ID0gc1xuXG4gICAgbGV0IHtcbiAgICAgIGlkLFxuICAgICAgbmFtZSxcbiAgICAgIHZhbHVlLFxuICAgICAgY2hlY2tlZCxcbiAgICAgIG9uQ2hhbmdlXG4gICAgfSA9IHByb3BzXG5cbiAgICBsZXQgaWNvbkNsYXNzID0ge1xuICAgICAgJ2FwLWNoZWNrYm94LWljb24tY2hlY2tlZCc6IGNoZWNrZWQsXG4gICAgICBbIHByb3BzLmNoZWNrZWRJY29uIF06IGNoZWNrZWQsXG4gICAgICBbIHByb3BzLmljb24gXTogIWNoZWNrZWRcbiAgICB9XG5cbiAgICBsZXQgY2xhc3NOYW1lID0gY2xhc3NuYW1lcygnYXAtY2hlY2tib3gnLCBwcm9wcy5jbGFzc05hbWUsIHtcbiAgICAgICdhcC1jaGVja2JveC1jaGVja2VkJzogY2hlY2tlZFxuICAgIH0pXG4gICAgcmV0dXJuIChcbiAgICAgIDxsYWJlbCBjbGFzc05hbWU9eyBjbGFzc05hbWUgfVxuICAgICAgICAgICAgIGh0bWxGb3I9eyBpZCB9XG4gICAgICAgICAgICAgaWQ9e2Ake2lkfS13cmFwYH0+XG4gICAgICAgIDxBcEljb24gY2xhc3NOYW1lPXsgY2xhc3NuYW1lcygnYXAtY2hlY2tib3gtaWNvbicsIGljb25DbGFzcykgfS8+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgY2xhc3NOYW1lPXsgY2xhc3NuYW1lcygnYXAtY2hlY2tib3gtaW5wdXQnKSB9XG4gICAgICAgICAgICAgICBpZD17IGlkIH1cbiAgICAgICAgICAgICAgIG5hbWU9eyBuYW1lIH1cbiAgICAgICAgICAgICAgIHZhbHVlPXsgdmFsdWUgfVxuICAgICAgICAgICAgICAgY2hlY2tlZD17IGNoZWNrZWQgfVxuICAgICAgICAgICAgICAgb25DaGFuZ2U9eyBvbkNoYW5nZSB9Lz5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXsgY2xhc3NuYW1lcygnYXAtY2hlY2tib3gtdGl0bGUnKSB9PnsgcHJvcHMudGl0bGUgfTwvc3Bhbj5cbiAgICAgIDwvbGFiZWw+XG4gICAgKVxuICB9XG59KVxuXG5leHBvcnQgZGVmYXVsdCBBcENoZWNrYm94XG4iXX0=