react-bootstrap-star-rating
Version:
React wrapper of bootstrap-star-rating
168 lines (142 loc) • 6.68 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', {
value: true
});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
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 _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };
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 _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; }
var _jquery = require('jquery');
var _jquery2 = _interopRequireDefault(_jquery);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _immutable = require('immutable');
/* http://plugins.krajee.com/star-rating#options */
require('bootstrap-star-rating/js/star-rating');
var pluginOptionPropTypes = {
stars: _react.PropTypes.number,
glyphicon: _react.PropTypes.bool,
symbol: _react.PropTypes.string,
ratingClass: _react.PropTypes.string,
min: _react.PropTypes.number,
max: _react.PropTypes.number,
step: _react.PropTypes.number,
disabled: _react.PropTypes.bool,
readonly: _react.PropTypes.bool,
rtl: _react.PropTypes.bool,
showClear: _react.PropTypes.bool,
showCaption: _react.PropTypes.bool,
size: _react.PropTypes.string,
defaultCaption: _react.PropTypes.string,
starCaptions: _react.PropTypes.oneOfType([_react.PropTypes.object, _react.PropTypes.func]),
starCaptionClasses: _react.PropTypes.oneOfType([_react.PropTypes.object, _react.PropTypes.func]),
clearButton: _react.PropTypes.string,
clearButtonTitle: _react.PropTypes.string,
clearButtonBaseClass: _react.PropTypes.string,
clearButtonActiveClass: _react.PropTypes.string,
clearValue: _react.PropTypes.string,
clearCaption: _react.PropTypes.string,
clearCaptionClass: _react.PropTypes.string,
captionElement: _react.PropTypes.string,
clearElement: _react.PropTypes.string,
hoverEnabled: _react.PropTypes.bool,
hoverChangeCaption: _react.PropTypes.bool,
hoverChangeStars: _react.PropTypes.bool,
hoverOnClear: _react.PropTypes.bool
};
/* http://plugins.krajee.com/star-rating#events */
var pluginEvents = {
'rating.change': 'onRatingChange',
'rating.clear': 'onRatingClear',
'rating.reset': 'onRatingReset',
'rating.hover': 'onRatingHover',
'rating.hoverleave': 'onRatingHoverleave'
};
var pluginEventPropTypes = (0, _immutable.Seq)(pluginEvents).map(function (_) {
return _react.PropTypes.func;
}).toJS();
var StarRating = (function (_Component) {
_inherits(StarRating, _Component);
function StarRating() {
_classCallCheck(this, StarRating);
_get(Object.getPrototypeOf(StarRating.prototype), 'constructor', this).apply(this, arguments);
}
_createClass(StarRating, [{
key: 'componentDidMount',
value: function componentDidMount() {
var _this = this;
var options = (0, _immutable.Seq)(pluginOptionPropTypes).map(function (_, key) {
return _this.props[key];
}).filter(function (value) {
if (typeof value != 'undefined') return true;
return false;
}).toJS();
this.$node.rating(options);
(0, _immutable.Seq)(pluginEvents).forEach(function (key, name) {
if (_this.props[key]) _this.$node.on(name, _this.props[key]);
return true;
});
}
}, {
key: 'componentWillUnmount',
value: function componentWillUnmount() {
var _this2 = this;
(0, _immutable.Seq)(pluginEvents).forEach(function (key, name) {
if (_this2.props[key]) _this2.$node.off(name, _this2.props[key]);
return true;
});
}
}, {
key: 'render',
value: function render() {
var _this3 = this;
return _react2['default'].createElement('input', {
ref: function (node) {
_this3.$node = (0, _jquery2['default'])(node);
},
defaultValue: this.props.defaultValue });
}
/* http://plugins.krajee.com/star-rating#methods */
}, {
key: 'update',
value: function update(value) {
this.$node.rating('update', value);
}
}, {
key: 'refresh',
value: function refresh(options) {
this.$node.rating('refresh', options);
}
}, {
key: 'reset',
value: function reset() {
this.$node.rating('reset');
}
}, {
key: 'clear',
value: function clear() {
this.$node.rating('clear');
}
}, {
key: 'destroy',
value: function destroy() {
this.$node.rating('destroy');
}
}, {
key: 'create',
value: function create() {
this.$node.rating('create');
}
}], [{
key: 'propTypes',
value: _extends({}, pluginOptionPropTypes, pluginEventPropTypes, {
defaultValue: _react.PropTypes.number
}),
enumerable: true
}]);
return StarRating;
})(_react.Component);
exports['default'] = StarRating;
module.exports = exports['default'];