UNPKG

apeman-react-checkbox

Version:
118 lines (94 loc) 8.25 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 _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=