apeman-react-checkbox
Version:
apeman react package for checkbox component.
118 lines (94 loc) • 8.25 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 _apemanReactMixins = require('apeman-react-mixins');
var _ap_checkbox = require('./ap_checkbox');
var _ap_checkbox2 = _interopRequireDefault(_ap_checkbox);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/** @lends ApCheckboxGroup */
var ApCheckboxGroup = _react2.default.createClass({
displayName: 'ApCheckboxGroup',
// --------------------
// Specs
// --------------------
propTypes: {
/** Document id prefix */
prefix: _react.PropTypes.string,
/** Name of checkbox input */
name: _react.PropTypes.string.isRequired,
/** Value and label titles */
options: _react.PropTypes.object.isRequired,
/** Checked state for each values */
checked: _react.PropTypes.object.isRequired,
/** 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
},
mixins: [_apemanReactMixins.ApUUIDMixin],
getInitialState: function getInitialState() {
return {};
},
getDefaultProps: function getDefaultProps() {
return {
prefix: null,
name: null,
title: '',
checked: {},
options: {},
onChange: null,
icon: _ap_checkbox2.default.DEFAULT_ICON,
checkedIcon: _ap_checkbox2.default.DEFAULT_CHECKED_ICON
};
},
render: function render() {
var s = this;
var props = s.props;
var prefix = props.prefix;
var name = props.name;
var options = props.options;
var checked = props.checked;
var icon = props.icon;
var checkedIcon = props.checkedIcon;
prefix = prefix || s.uuid;
return _react2.default.createElement(
'div',
{ className: (0, _classnames2.default)('ap-checkbox-group', props.className) },
Object.keys(options || {}).map(function (value) {
return _react2.default.createElement(_ap_checkbox2.default, { key: value,
name: name,
value: value,
id: prefix + '-' + value,
checked: !!checked[value],
title: options[value],
icon: icon,
checkedIcon: checkedIcon,
onChange: s.handleChange
});
})
);
},
// --------------------
// Handle
// --------------------
handleChange: function handleChange(e) {
var s = this;
var props = s.props;
if (props.onChange) {
props.onChange(e);
}
}
});
exports.default = ApCheckboxGroup;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwX2NoZWNrYm94X2dyb3VwLmpzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUtBOzs7Ozs7QUFFQTs7OztBQUNBOzs7O0FBQ0E7O0FBQ0E7Ozs7Ozs7QUFHQSxJQUFNLGtCQUFrQixnQkFBTSxXQUFOLENBQWtCO0FBQUE7Ozs7Ozs7QUFNeEMsYUFBVzs7QUFFVCxZQUFRLGlCQUFNLE1BRkw7O0FBSVQsVUFBTSxpQkFBTSxNQUFOLENBQWEsVUFKVjs7QUFNVCxhQUFTLGlCQUFNLE1BQU4sQ0FBYSxVQU5iOztBQVFULGFBQVMsaUJBQU0sTUFBTixDQUFhLFVBUmI7O0FBVVQsY0FBVSxpQkFBTSxJQVZQOztBQVlULFVBQU0saUJBQU0sTUFaSDs7QUFjVCxpQkFBYSxpQkFBTTtBQWRWLEdBTjZCOztBQXVCeEMsVUFBUSxnQ0F2QmdDOztBQTJCeEMsaUJBM0J3Qyw2QkEyQnJCO0FBQ2pCLFdBQU8sRUFBUDtBQUNELEdBN0J1QztBQStCeEMsaUJBL0J3Qyw2QkErQnJCO0FBQ2pCLFdBQU87QUFDTCxjQUFRLElBREg7QUFFTCxZQUFNLElBRkQ7QUFHTCxhQUFPLEVBSEY7QUFJTCxlQUFTLEVBSko7QUFLTCxlQUFTLEVBTEo7QUFNTCxnQkFBVSxJQU5MO0FBT0wsWUFBTSxzQkFBVyxZQVBaO0FBUUwsbUJBQWEsc0JBQVc7QUFSbkIsS0FBUDtBQVVELEdBMUN1QztBQTRDeEMsUUE1Q3dDLG9CQTRDOUI7QUFDUixRQUFNLElBQUksSUFBVjtBQURRLFFBRUYsS0FGRSxHQUVRLENBRlIsQ0FFRixLQUZFO0FBQUEsUUFLTixNQUxNLEdBV0osS0FYSSxDQUtOLE1BTE07QUFBQSxRQU1OLElBTk0sR0FXSixLQVhJLENBTU4sSUFOTTtBQUFBLFFBT04sT0FQTSxHQVdKLEtBWEksQ0FPTixPQVBNO0FBQUEsUUFRTixPQVJNLEdBV0osS0FYSSxDQVFOLE9BUk07QUFBQSxRQVNOLElBVE0sR0FXSixLQVhJLENBU04sSUFUTTtBQUFBLFFBVU4sV0FWTSxHQVdKLEtBWEksQ0FVTixXQVZNOzs7QUFhUixhQUFTLFVBQVUsRUFBRSxJQUFyQjs7QUFFQSxXQUNFO0FBQUE7TUFBQSxFQUFLLFdBQVksMEJBQVcsbUJBQVgsRUFBZ0MsTUFBTSxTQUF0QyxDQUFqQjtNQUVJLE9BQU8sSUFBUCxDQUFZLFdBQVcsRUFBdkIsRUFBMkIsR0FBM0IsQ0FBK0IsVUFBQyxLQUFEO0FBQUEsZUFDN0IsdURBQVksS0FBTSxLQUFsQjtBQUNZLGdCQUFPLElBRG5CO0FBRVksaUJBQVEsS0FGcEI7QUFHWSxjQUFRLE1BQVIsU0FBa0IsS0FIOUI7QUFJWSxtQkFBVSxDQUFDLENBQUMsUUFBUSxLQUFSLENBSnhCO0FBS1ksaUJBQVEsUUFBUSxLQUFSLENBTHBCO0FBTVksZ0JBQU8sSUFObkI7QUFPWSx1QkFBYyxXQVAxQjtBQVFZLG9CQUFXLEVBQUU7QUFSekIsVUFENkI7QUFBQSxPQUEvQjtBQUZKLEtBREY7QUFrQkQsR0E3RXVDOzs7Ozs7O0FBbUZ4QyxjQW5Gd0Msd0JBbUYxQixDQW5GMEIsRUFtRnZCO0FBQ2YsUUFBTSxJQUFJLElBQVY7QUFEZSxRQUVULEtBRlMsR0FFQyxDQUZELENBRVQsS0FGUzs7QUFHZixRQUFJLE1BQU0sUUFBVixFQUFvQjtBQUNsQixZQUFNLFFBQU4sQ0FBZSxDQUFmO0FBQ0Q7QUFDRjtBQXpGdUMsQ0FBbEIsQ0FBeEI7O2tCQTZGZSxlIiwiZmlsZSI6ImFwX2NoZWNrYm94X2dyb3VwLmpzIiwic291cmNlUm9vdCI6Ii9Vc2Vycy9va3VuaXNoaW5pc2hpL1Byb2plY3RzL2FwZW1hbi1wcm9qZWN0cy9hcGVtYW4tcmVhY3QtY2hlY2tib3gvbGliIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDaGVja2JveCBjb21wb25lbnQuXG4gKiBAY2xhc3MgQXBDaGVja2JveFxuICovXG5cbid1c2Ugc3RyaWN0J1xuXG5pbXBvcnQgUmVhY3QsIHtQcm9wVHlwZXMgYXMgdHlwZXN9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnY2xhc3NuYW1lcydcbmltcG9ydCB7QXBVVUlETWl4aW59IGZyb20gJ2FwZW1hbi1yZWFjdC1taXhpbnMnXG5pbXBvcnQgQXBDaGVja2JveCBmcm9tICcuL2FwX2NoZWNrYm94J1xuXG4vKiogQGxlbmRzIEFwQ2hlY2tib3hHcm91cCAqL1xuY29uc3QgQXBDaGVja2JveEdyb3VwID0gUmVhY3QuY3JlYXRlQ2xhc3Moe1xuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIFNwZWNzXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgcHJvcFR5cGVzOiB7XG4gICAgLyoqIERvY3VtZW50IGlkIHByZWZpeCAqL1xuICAgIHByZWZpeDogdHlwZXMuc3RyaW5nLFxuICAgIC8qKiBOYW1lIG9mIGNoZWNrYm94IGlucHV0ICovXG4gICAgbmFtZTogdHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgLyoqIFZhbHVlIGFuZCBsYWJlbCB0aXRsZXMgKi9cbiAgICBvcHRpb25zOiB0eXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICAvKiogQ2hlY2tlZCBzdGF0ZSBmb3IgZWFjaCB2YWx1ZXMgKi9cbiAgICBjaGVja2VkOiB0eXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICAvKiogSGFuZGxlIGZvciBjaGFuZ2UgZXZlbnQgKi9cbiAgICBvbkNoYW5nZTogdHlwZXMuZnVuYyxcbiAgICAvKiogSWNvbiBjbGFzcyBuYW1lIGZvciBub3JtYWwgc3RhdGUgKi9cbiAgICBpY29uOiB0eXBlcy5zdHJpbmcsXG4gICAgLyoqIEljb24gY2xhc3MgbmFtZSBmb3IgY2hlY2tlZCBzdGF0ZSAqL1xuICAgIGNoZWNrZWRJY29uOiB0eXBlcy5zdHJpbmdcbiAgfSxcblxuICBtaXhpbnM6IFtcbiAgICBBcFVVSURNaXhpblxuICBdLFxuXG4gIGdldEluaXRpYWxTdGF0ZSAoKSB7XG4gICAgcmV0dXJuIHt9XG4gIH0sXG5cbiAgZ2V0RGVmYXVsdFByb3BzICgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgcHJlZml4OiBudWxsLFxuICAgICAgbmFtZTogbnVsbCxcbiAgICAgIHRpdGxlOiAnJyxcbiAgICAgIGNoZWNrZWQ6IHt9LFxuICAgICAgb3B0aW9uczoge30sXG4gICAgICBvbkNoYW5nZTogbnVsbCxcbiAgICAgIGljb246IEFwQ2hlY2tib3guREVGQVVMVF9JQ09OLFxuICAgICAgY2hlY2tlZEljb246IEFwQ2hlY2tib3guREVGQVVMVF9DSEVDS0VEX0lDT05cbiAgICB9XG4gIH0sXG5cbiAgcmVuZGVyICgpIHtcbiAgICBjb25zdCBzID0gdGhpc1xuICAgIGxldCB7IHByb3BzIH0gPSBzXG5cbiAgICBsZXQge1xuICAgICAgcHJlZml4LFxuICAgICAgbmFtZSxcbiAgICAgIG9wdGlvbnMsXG4gICAgICBjaGVja2VkLFxuICAgICAgaWNvbixcbiAgICAgIGNoZWNrZWRJY29uXG4gICAgfSA9IHByb3BzXG5cbiAgICBwcmVmaXggPSBwcmVmaXggfHwgcy51dWlkXG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9eyBjbGFzc25hbWVzKCdhcC1jaGVja2JveC1ncm91cCcsIHByb3BzLmNsYXNzTmFtZSkgfT5cbiAgICAgICAge1xuICAgICAgICAgIE9iamVjdC5rZXlzKG9wdGlvbnMgfHwge30pLm1hcCgodmFsdWUpID0+IChcbiAgICAgICAgICAgIDxBcENoZWNrYm94IGtleT17IHZhbHVlIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9eyBuYW1lIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXsgdmFsdWUgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9eyBgJHtwcmVmaXh9LSR7dmFsdWV9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrZWQ9eyAhIWNoZWNrZWRbdmFsdWVdIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPXsgb3B0aW9uc1t2YWx1ZV0gfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj17IGljb24gfVxuICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tlZEljb249eyBjaGVja2VkSWNvbiB9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17IHMuaGFuZGxlQ2hhbmdlIH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSlcbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgKVxuICB9LFxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIEhhbmRsZVxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIGhhbmRsZUNoYW5nZSAoZSkge1xuICAgIGNvbnN0IHMgPSB0aGlzXG4gICAgbGV0IHsgcHJvcHMgfSA9IHNcbiAgICBpZiAocHJvcHMub25DaGFuZ2UpIHtcbiAgICAgIHByb3BzLm9uQ2hhbmdlKGUpXG4gICAgfVxuICB9XG5cbn0pXG5cbmV4cG9ydCBkZWZhdWx0IEFwQ2hlY2tib3hHcm91cFxuXG4iXX0=