UNPKG

react-bootstrap-star-rating

Version:
168 lines (142 loc) 6.68 kB
'use strict'; 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'];