apeman-react-checkbox
Version:
apeman react package for checkbox component.
142 lines (110 loc) • 10.7 kB
JavaScript
/**
* 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