UNPKG

apeman-react-checkbox

Version:
142 lines (110 loc) 10.7 kB
/** * Checkbox component. * @class ApCheckbox */ 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames); var _uuid = require('uuid'); var _uuid2 = _interopRequireDefault(_uuid); var _ap_checkbox = require('./ap_checkbox'); var _ap_checkbox2 = _interopRequireDefault(_ap_checkbox); var _breact = require('breact'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** @lends ApCheckboxGroup */ var ApCheckboxGroup = function (_Component) { _inherits(ApCheckboxGroup, _Component); function ApCheckboxGroup(props) { _classCallCheck(this, ApCheckboxGroup); var _this = _possibleConstructorReturn(this, (ApCheckboxGroup.__proto__ || Object.getPrototypeOf(ApCheckboxGroup)).call(this, props)); var s = _this; s.uuid = _uuid2.default.v4(); (0, _breact.autobind)(s); return _this; } _createClass(ApCheckboxGroup, [{ key: 'render', value: function render() { var s = this; var props = s.props; var _props$prefix = props.prefix; var prefix = _props$prefix === undefined ? s.uuid : _props$prefix; var name = props.name; var options = props.options; var checked = props.checked; var icon = props.icon; var checkedIcon = props.checkedIcon; 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 // -------------------- }, { key: 'handleChange', value: function handleChange(e) { var s = this; var props = s.props; if (props.onChange) { props.onChange(e); } } }]); return ApCheckboxGroup; }(_react.Component); Object.assign(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 }, defaultProps: { prefix: null, name: null, title: '', checked: {}, options: {}, onChange: null, icon: _ap_checkbox2.default.DEFAULT_ICON, checkedIcon: _ap_checkbox2.default.DEFAULT_CHECKED_ICON } }); exports.default = ApCheckboxGroup; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwX2NoZWNrYm94X2dyb3VwLmpzeCJdLCJuYW1lcyI6WyJBcENoZWNrYm94R3JvdXAiLCJwcm9wcyIsInMiLCJ1dWlkIiwidjQiLCJwcmVmaXgiLCJuYW1lIiwib3B0aW9ucyIsImNoZWNrZWQiLCJpY29uIiwiY2hlY2tlZEljb24iLCJjbGFzc05hbWUiLCJPYmplY3QiLCJrZXlzIiwibWFwIiwidmFsdWUiLCJoYW5kbGVDaGFuZ2UiLCJlIiwib25DaGFuZ2UiLCJhc3NpZ24iLCJwcm9wVHlwZXMiLCJzdHJpbmciLCJpc1JlcXVpcmVkIiwib2JqZWN0IiwiZnVuYyIsImRlZmF1bHRQcm9wcyIsInRpdGxlIiwiREVGQVVMVF9JQ09OIiwiREVGQVVMVF9DSEVDS0VEX0lDT04iXSwibWFwcGluZ3MiOiJBQUFBOzs7OztBQUtBOzs7Ozs7OztBQUVBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7Ozs7Ozs7QUFFQTtJQUNNQSxlOzs7QUFDSiwyQkFBYUMsS0FBYixFQUFvQjtBQUFBOztBQUFBLGtJQUNaQSxLQURZOztBQUVsQixRQUFNQyxTQUFOO0FBQ0FBLE1BQUVDLElBQUYsR0FBUyxlQUFLQyxFQUFMLEVBQVQ7QUFDQSwwQkFBU0YsQ0FBVDtBQUprQjtBQUtuQjs7Ozs2QkFFUztBQUNSLFVBQU1BLElBQUksSUFBVjtBQURRLFVBRUZELEtBRkUsR0FFUUMsQ0FGUixDQUVGRCxLQUZFO0FBQUEsMEJBV0pBLEtBWEksQ0FLTkksTUFMTTtBQUFBLFVBS05BLE1BTE0saUNBS0dILEVBQUVDLElBTEw7QUFBQSxVQU1ORyxJQU5NLEdBV0pMLEtBWEksQ0FNTkssSUFOTTtBQUFBLFVBT05DLE9BUE0sR0FXSk4sS0FYSSxDQU9OTSxPQVBNO0FBQUEsVUFRTkMsT0FSTSxHQVdKUCxLQVhJLENBUU5PLE9BUk07QUFBQSxVQVNOQyxJQVRNLEdBV0pSLEtBWEksQ0FTTlEsSUFUTTtBQUFBLFVBVU5DLFdBVk0sR0FXSlQsS0FYSSxDQVVOUyxXQVZNOzs7QUFhUixhQUNFO0FBQUE7QUFBQSxVQUFLLFdBQVksMEJBQVcsbUJBQVgsRUFBZ0NULE1BQU1VLFNBQXRDLENBQWpCO0FBRUlDLGVBQU9DLElBQVAsQ0FBWU4sV0FBVyxFQUF2QixFQUEyQk8sR0FBM0IsQ0FBK0IsVUFBQ0MsS0FBRDtBQUFBLGlCQUM3Qix1REFBWSxLQUFNQSxLQUFsQjtBQUNZLGtCQUFPVCxJQURuQjtBQUVZLG1CQUFRUyxLQUZwQjtBQUdZLGdCQUFRVixNQUFSLFNBQWtCVSxLQUg5QjtBQUlZLHFCQUFVLENBQUMsQ0FBQ1AsUUFBU08sS0FBVCxDQUp4QjtBQUtZLG1CQUFRUixRQUFTUSxLQUFULENBTHBCO0FBTVksa0JBQU9OLElBTm5CO0FBT1kseUJBQWNDLFdBUDFCO0FBUVksc0JBQVdSLEVBQUVjO0FBUnpCLFlBRDZCO0FBQUEsU0FBL0I7QUFGSixPQURGO0FBa0JEOztBQUVEO0FBQ0E7QUFDQTs7OztpQ0FFY0MsQyxFQUFHO0FBQ2YsVUFBTWYsSUFBSSxJQUFWO0FBRGUsVUFFVEQsS0FGUyxHQUVDQyxDQUZELENBRVRELEtBRlM7O0FBR2YsVUFBSUEsTUFBTWlCLFFBQVYsRUFBb0I7QUFDbEJqQixjQUFNaUIsUUFBTixDQUFlRCxDQUFmO0FBQ0Q7QUFDRjs7Ozs7O0FBR0hMLE9BQU9PLE1BQVAsQ0FBY25CLGVBQWQsRUFBK0I7QUFDN0I7QUFDQTtBQUNBOztBQUVBb0IsYUFBVztBQUNUO0FBQ0FmLFlBQVEsaUJBQU1nQixNQUZMO0FBR1Q7QUFDQWYsVUFBTSxpQkFBTWUsTUFBTixDQUFhQyxVQUpWO0FBS1Q7QUFDQWYsYUFBUyxpQkFBTWdCLE1BQU4sQ0FBYUQsVUFOYjtBQU9UO0FBQ0FkLGFBQVMsaUJBQU1lLE1BQU4sQ0FBYUQsVUFSYjtBQVNUO0FBQ0FKLGNBQVUsaUJBQU1NLElBVlA7QUFXVDtBQUNBZixVQUFNLGlCQUFNWSxNQVpIO0FBYVQ7QUFDQVgsaUJBQWEsaUJBQU1XO0FBZFYsR0FMa0I7O0FBc0I3QkksZ0JBQWM7QUFDWnBCLFlBQVEsSUFESTtBQUVaQyxVQUFNLElBRk07QUFHWm9CLFdBQU8sRUFISztBQUlabEIsYUFBUyxFQUpHO0FBS1pELGFBQVMsRUFMRztBQU1aVyxjQUFVLElBTkU7QUFPWlQsVUFBTSxzQkFBV2tCLFlBUEw7QUFRWmpCLGlCQUFhLHNCQUFXa0I7QUFSWjs7QUF0QmUsQ0FBL0I7O2tCQW1DZTVCLGUiLCJmaWxlIjoiYXBfY2hlY2tib3hfZ3JvdXAuanN4Iiwic291cmNlUm9vdCI6ImxpYiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ2hlY2tib3ggY29tcG9uZW50LlxuICogQGNsYXNzIEFwQ2hlY2tib3hcbiAqL1xuXG4ndXNlIHN0cmljdCdcblxuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50LCBQcm9wVHlwZXMgYXMgdHlwZXN9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnY2xhc3NuYW1lcydcbmltcG9ydCB1dWlkIGZyb20gJ3V1aWQnXG5pbXBvcnQgQXBDaGVja2JveCBmcm9tICcuL2FwX2NoZWNrYm94J1xuaW1wb3J0IHthdXRvYmluZH0gZnJvbSAnYnJlYWN0J1xuXG4vKiogQGxlbmRzIEFwQ2hlY2tib3hHcm91cCAqL1xuY2xhc3MgQXBDaGVja2JveEdyb3VwIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IgKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpXG4gICAgY29uc3QgcyA9IHRoaXNcbiAgICBzLnV1aWQgPSB1dWlkLnY0KClcbiAgICBhdXRvYmluZChzKVxuICB9XG5cbiAgcmVuZGVyICgpIHtcbiAgICBjb25zdCBzID0gdGhpc1xuICAgIGxldCB7IHByb3BzIH0gPSBzXG5cbiAgICBsZXQge1xuICAgICAgcHJlZml4ID0gcy51dWlkLFxuICAgICAgbmFtZSxcbiAgICAgIG9wdGlvbnMsXG4gICAgICBjaGVja2VkLFxuICAgICAgaWNvbixcbiAgICAgIGNoZWNrZWRJY29uXG4gICAgfSA9IHByb3BzXG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9eyBjbGFzc25hbWVzKCdhcC1jaGVja2JveC1ncm91cCcsIHByb3BzLmNsYXNzTmFtZSkgfT5cbiAgICAgICAge1xuICAgICAgICAgIE9iamVjdC5rZXlzKG9wdGlvbnMgfHwge30pLm1hcCgodmFsdWUpID0+IChcbiAgICAgICAgICAgIDxBcENoZWNrYm94IGtleT17IHZhbHVlIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9eyBuYW1lIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXsgdmFsdWUgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9eyBgJHtwcmVmaXh9LSR7dmFsdWV9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrZWQ9eyAhIWNoZWNrZWRbIHZhbHVlIF0gfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9eyBvcHRpb25zWyB2YWx1ZSBdIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGljb249eyBpY29uIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrZWRJY29uPXsgY2hlY2tlZEljb24gfVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyBzLmhhbmRsZUNoYW5nZSB9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkpXG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIEhhbmRsZVxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIGhhbmRsZUNoYW5nZSAoZSkge1xuICAgIGNvbnN0IHMgPSB0aGlzXG4gICAgbGV0IHsgcHJvcHMgfSA9IHNcbiAgICBpZiAocHJvcHMub25DaGFuZ2UpIHtcbiAgICAgIHByb3BzLm9uQ2hhbmdlKGUpXG4gICAgfVxuICB9XG59XG5cbk9iamVjdC5hc3NpZ24oQXBDaGVja2JveEdyb3VwLCB7XG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIFNwZWNzXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgcHJvcFR5cGVzOiB7XG4gICAgLyoqIERvY3VtZW50IGlkIHByZWZpeCAqL1xuICAgIHByZWZpeDogdHlwZXMuc3RyaW5nLFxuICAgIC8qKiBOYW1lIG9mIGNoZWNrYm94IGlucHV0ICovXG4gICAgbmFtZTogdHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgLyoqIFZhbHVlIGFuZCBsYWJlbCB0aXRsZXMgKi9cbiAgICBvcHRpb25zOiB0eXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICAvKiogQ2hlY2tlZCBzdGF0ZSBmb3IgZWFjaCB2YWx1ZXMgKi9cbiAgICBjaGVja2VkOiB0eXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICAvKiogSGFuZGxlIGZvciBjaGFuZ2UgZXZlbnQgKi9cbiAgICBvbkNoYW5nZTogdHlwZXMuZnVuYyxcbiAgICAvKiogSWNvbiBjbGFzcyBuYW1lIGZvciBub3JtYWwgc3RhdGUgKi9cbiAgICBpY29uOiB0eXBlcy5zdHJpbmcsXG4gICAgLyoqIEljb24gY2xhc3MgbmFtZSBmb3IgY2hlY2tlZCBzdGF0ZSAqL1xuICAgIGNoZWNrZWRJY29uOiB0eXBlcy5zdHJpbmdcbiAgfSxcblxuICBkZWZhdWx0UHJvcHM6IHtcbiAgICBwcmVmaXg6IG51bGwsXG4gICAgbmFtZTogbnVsbCxcbiAgICB0aXRsZTogJycsXG4gICAgY2hlY2tlZDoge30sXG4gICAgb3B0aW9uczoge30sXG4gICAgb25DaGFuZ2U6IG51bGwsXG4gICAgaWNvbjogQXBDaGVja2JveC5ERUZBVUxUX0lDT04sXG4gICAgY2hlY2tlZEljb246IEFwQ2hlY2tib3guREVGQVVMVF9DSEVDS0VEX0lDT05cbiAgfVxuXG59KVxuXG5leHBvcnQgZGVmYXVsdCBBcENoZWNrYm94R3JvdXBcblxuIl19