UNPKG

apeman-react-checkbox

Version:
119 lines (98 loc) 8.64 kB
/** * 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=