axe-comments
Version:
Comments Module for Axe PHP Framework
611 lines (497 loc) • 30 kB
JavaScript
var AxeComments =
/******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, {
/******/ configurable: false,
/******/ enumerable: true,
/******/ get: getter
/******/ });
/******/ }
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = 1);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ (function(module, exports) {
module.exports = React;
/***/ }),
/* 1 */
/***/ (function(module, exports, __webpack_require__) {
__webpack_require__(2);
module.exports = __webpack_require__(3);
/***/ }),
/* 2 */
/***/ (function(module, exports) {
// removed by extract-text-webpack-plugin
/***/ }),
/* 3 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var _Main = __webpack_require__(4);
var _Main2 = _interopRequireDefault(_Main);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
module.exports = _Main2.default;
/***/ }),
/* 4 */
/***/ (function(module, exports, __webpack_require__) {
"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 _react = __webpack_require__(0);
var _react2 = _interopRequireDefault(_react);
var _NewCommentForm = __webpack_require__(5);
var _NewCommentForm2 = _interopRequireDefault(_NewCommentForm);
var _Comment = __webpack_require__(6);
var _Comment2 = _interopRequireDefault(_Comment);
var _propTypes = __webpack_require__(11);
var _propTypes2 = _interopRequireDefault(_propTypes);
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; }
var AxeComments = function (_React$Component) {
_inherits(AxeComments, _React$Component);
function AxeComments(props) {
_classCallCheck(this, AxeComments);
var _this = _possibleConstructorReturn(this, (AxeComments.__proto__ || Object.getPrototypeOf(AxeComments)).call(this, props));
_this.lang = _extends({}, LangDefaults, props.lang);
return _this;
}
_createClass(AxeComments, [{
key: 'render',
value: function render() {
var _this2 = this;
return _react2.default.createElement(
'div',
{ className: 'axe-comments-root' },
this.props.showNewCommentForm ? _react2.default.createElement(_NewCommentForm2.default, {
createNewComment: this.props.createNewComment,
loggedInUser: this.props.loggedInUser,
lang: this.lang
}) : null,
// loading
this.props.comments === null && _react2.default.createElement('div', { className: 'is-loading' }) ||
// no comments
this.props.comments.length === 0 && _react2.default.createElement(
'div',
{ className: 'no-comments-yet' },
this.lang['no-comments-yet']
) ||
// comments
this.props.comments.map(function (comment) {
return _react2.default.createElement(_Comment2.default, {
key: comment.id,
customLabel: _this2.props.customLabel,
comment: comment,
allowReplyToComment: _this2.props.allowReplyToComment,
loggedInUser: _this2.props.loggedInUser,
deleteComment: _this2.props.deleteComment,
toggleLike: _this2.props.toggleLike,
toggleDislike: _this2.props.toggleDislike,
lang: _this2.lang
});
})
);
}
}]);
return AxeComments;
}(_react2.default.Component);
exports.default = AxeComments;
AxeComments.propTypes = {
allowReplyToComment: _propTypes2.default.bool,
comments: _propTypes2.default.arrayOf(_propTypes2.default.shape({
'author_uid': _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
'current_user-vote': _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
'date': _propTypes2.default.string.isRequired,
'guest_author_name': _propTypes2.default.string,
'id': _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]).isRequired,
'rating': _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
'stillLoading': _propTypes2.default.bool,
'text': _propTypes2.default.string.isRequired
})),
customLabel: _propTypes2.default.func,
deleteComment: _propTypes2.default.func.isRequired,
lang: _propTypes2.default.shape({
'no-comments-yet': _propTypes2.default.string,
'comment-author-validation-error': _propTypes2.default.string,
'comment-text-validation-error': _propTypes2.default.string,
'comment-author-placeholder': _propTypes2.default.string,
'comment-placeholder': _propTypes2.default.string,
'add-comment': _propTypes2.default.string,
'delete': _propTypes2.default.string,
'error': _propTypes2.default.string,
'just-now': _propTypes2.default.string,
'years-ago': _propTypes2.default.string,
'months-ago': _propTypes2.default.string,
'days-ago': _propTypes2.default.string,
'hours-ago': _propTypes2.default.string,
'mins-ago': _propTypes2.default.string
}),
loggedInUser: _propTypes2.default.oneOfType([_propTypes2.default.shape({
'id': _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]).isRequired,
'username': _propTypes2.default.string.isRequired,
'allowedToDeleteComment': _propTypes2.default.func
}), _propTypes2.default.oneOf([false])]),
createNewComment: _propTypes2.default.func,
showNewCommentForm: _propTypes2.default.bool,
toggleDislike: _propTypes2.default.func.isRequired,
toggleLike: _propTypes2.default.func.isRequired
};
var LangDefaults = {
'no-comments-yet': 'No comments yet...',
'comment-author-validation-error': 'Your name must be min 3, max 20 characters',
'comment-text-validation-error': 'Your comment cannot be empty, and cannot exceed 2000 characters',
'comment-author-placeholder': 'Your Name',
'comment-placeholder': 'write a comment...',
'add-comment': 'Add Comment',
'delete': 'Delete',
'error': 'Error',
'just-now': 'just now...',
'years-ago': 'years ago',
'months-ago': 'months ago',
'days-ago': 'days ago',
'hours-ago': 'hours ago',
'mins-ago': 'minutes ago'
};
/***/ }),
/* 5 */
/***/ (function(module, exports, __webpack_require__) {
"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 = __webpack_require__(0);
var _react2 = _interopRequireDefault(_react);
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; }
var NewCommentForm = function (_React$Component) {
_inherits(NewCommentForm, _React$Component);
function NewCommentForm(props) {
_classCallCheck(this, NewCommentForm);
var _this = _possibleConstructorReturn(this, (NewCommentForm.__proto__ || Object.getPrototypeOf(NewCommentForm)).call(this, props));
_this.state = {
commentorName: '',
text: ''
};
_this.onNewCommentAdd = _this.onNewCommentAdd.bind(_this);
_this.onCommentorNameInputChange = _this.onCommentorNameInputChange.bind(_this);
_this.onCommentInputChange = _this.onCommentInputChange.bind(_this);
return _this;
}
_createClass(NewCommentForm, [{
key: 'onCommentorNameInputChange',
value: function onCommentorNameInputChange(event) {
this.setState({
commentorName: event.target.value,
commentorNameError: !NewCommentForm.isCommentorNameValid(event.target.value)
});
}
}, {
key: 'onCommentInputChange',
value: function onCommentInputChange(event) {
this.setState({
text: event.target.value,
textError: !NewCommentForm.isCommentValid(event.target.value)
});
}
}, {
key: 'onNewCommentAdd',
value: function onNewCommentAdd() {
var _this2 = this;
var newState = {};
// hide validation errors on submit click
newState.showErrors = false;
// data validation
var errors = '';
if (!this.props.loggedInUser && !NewCommentForm.isCommentorNameValid(this.state.commentorName)) {
newState.commentorNameError = true;
newState.showErrors = true;
errors += '\n' + this.props.lang['comment-author-validation-error'];
}
if (!NewCommentForm.isCommentValid(this.state.text)) {
newState.textError = true;
newState.showErrors = true;
errors += '\n' + this.props.lang['comment-text-validation-error'];
}
if (errors) {
errors = this.props.lang['error'] + '! \n------ ' + errors;
alert(errors);
} else {
// set as saving new comment
newState.addingNewComment = true;
// run ajax
if (this.props.createNewComment) {
this.props.createNewComment(this.state.commentorName, this.state.text, function () {
_this2.setState({
commentorName: '',
text: '',
addingNewComment: false
});
});
}
}
this.setState(newState);
}
}, {
key: 'render',
value: function render() {
return _react2.default.createElement(
'div',
{ className: 'add-comment horizontal-align-left' },
_react2.default.createElement('input', {
disabled: this.state.addingNewComment || this.props.loggedInUser,
value: this.props.loggedInUser ? this.props.loggedInUser.username : this.state.commentorName,
className: this.state.showErrors && (this.state.commentorNameError ? 'invalid' : 'valid') || '',
type: 'text', placeholder: this.props.lang['comment-author-placeholder'],
onChange: this.onCommentorNameInputChange
}),
_react2.default.createElement('textarea', {
disabled: this.state.addingNewComment,
value: this.state.text,
className: this.state.showErrors && (this.state.textError ? 'invalid' : 'valid') || '',
placeholder: this.props.lang['comment-placeholder'],
onChange: this.onCommentInputChange
}),
_react2.default.createElement(
'button',
{ disabled: this.state.addingNewComment, onClick: this.onNewCommentAdd },
this.props.lang['add-comment']
)
);
}
}], [{
key: 'isCommentorNameValid',
value: function isCommentorNameValid(commentorName) {
var MIN_COMMENTOR_NAME_LENGTH = 3;
var MAX_COMMENTOR_NAME_LENGTH = 20;
return commentorName && commentorName.length >= MIN_COMMENTOR_NAME_LENGTH && commentorName.length <= MAX_COMMENTOR_NAME_LENGTH;
}
}, {
key: 'isCommentValid',
value: function isCommentValid(comment) {
var MIN_COMMENT_LENGTH = 1;
var MAX_COMMENT_LENGTH = 2000;
return comment && comment.length >= MIN_COMMENT_LENGTH && comment.length <= MAX_COMMENT_LENGTH;
}
}]);
return NewCommentForm;
}(_react2.default.Component);
exports.default = NewCommentForm;
/***/ }),
/* 6 */
/***/ (function(module, exports, __webpack_require__) {
"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 = __webpack_require__(0);
var _react2 = _interopRequireDefault(_react);
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; }
var Comment = function (_React$Component) {
_inherits(Comment, _React$Component);
function Comment(props) {
_classCallCheck(this, Comment);
return _possibleConstructorReturn(this, (Comment.__proto__ || Object.getPrototypeOf(Comment)).call(this, props));
}
_createClass(Comment, [{
key: 'render',
value: function render() {
var _this2 = this;
var comment = this.props.comment;
var userVote = parseInt(comment['current_user-vote']);
var dateGMT = !comment.date ? null : function (dateUTC) {
var dateParts = dateUTC.split(/[- :]/);
var YEAR = 0;
var MONTH = 1;
var DAY = 2;
var HOUR = 3;
var MINS = 4;
var SECS = 5;
return new Date(Date.UTC(dateParts[YEAR], dateParts[MONTH] - 1, dateParts[DAY], dateParts[HOUR], dateParts[MINS], dateParts[SECS]));
}(comment.date);
var timeSincePost = !dateGMT ? null : function (date) {
var MILISECONDS_IN_1_SECOND = 1000;
var secondsSincePost = Math.floor((new Date() - date) / MILISECONDS_IN_1_SECOND);
var SECONDS_IN_1_YEAR = 31536000;
var SECONDS_IN_1_MONTH = 2592000;
var SECONDS_IN_1_DAY = 86400;
var SECONDS_IN_1_HOUR = 3600;
var SECONDS_IN_1_MIN = 60;
var interval = Math.floor(secondsSincePost / SECONDS_IN_1_YEAR);
if (interval > 1) {
return interval + ' ' + _this2.props.lang['years-ago'];
}
interval = Math.floor(secondsSincePost / SECONDS_IN_1_MONTH);
if (interval > 1) {
return interval + ' ' + _this2.props.lang['months-ago'];
}
interval = Math.floor(secondsSincePost / SECONDS_IN_1_DAY);
if (interval > 1) {
return interval + ' ' + _this2.props.lang['days-ago'];
}
interval = Math.floor(secondsSincePost / SECONDS_IN_1_HOUR);
if (interval > 1) {
return interval + ' ' + _this2.props.lang['hours-ago'];
}
interval = Math.floor(secondsSincePost / SECONDS_IN_1_MIN);
if (interval > 1) {
return interval + ' ' + _this2.props.lang['mins-ago'];
}
return Math.floor(secondsSincePost) + ' ' + _this2.props.lang['seconds-ago'];
}(new Date(dateGMT));
return _react2.default.createElement(
'div',
{ className: 'comment' + (comment.stillLoading || comment.deleting ? ' is-loading' : '') },
this.props.customLabel ? _react2.default.createElement(
'span',
{ className: 'custom-label' },
this.props.customLabel(comment)
) : null,
_react2.default.createElement(
'span',
{ className: 'username' },
comment.author && comment.author ? comment.author.username : comment.guest_author_name
),
_react2.default.createElement(
'span',
null,
' - '
),
_react2.default.createElement(
'span',
{ className: 'date' },
comment.date ? timeSincePost : this.props.lang['just-now']
),
_react2.default.createElement(
'div',
{ className: 'comment-contents' },
comment.text
),
_react2.default.createElement(
'div',
{ className: 'comment-actions vertical-align-children-middle' },
this.props.allowReplyToComment ? _react2.default.createElement(
'span',
null,
'Cevap Yaz'
) : null,
_react2.default.createElement(
'span',
{ className: comment.rating > 0 && 'positive' || comment.rating < 0 && 'negative' || 'neutral' },
comment.rating < 0 ? '' : '+',
comment.rating
),
this.props.loggedInUser && (comment.author_uid && comment.author_uid.toString() === this.props.loggedInUser.id.toString() || this.props.loggedInUser.allowedToDeleteComment && this.props.loggedInUser.allowedToDeleteComment(comment)) ? _react2.default.createElement(
'span',
{ className: 'delete', onClick: function onClick() {
return _this2.props.deleteComment(comment);
} },
this.props.lang['delete']
) : null,
_react2.default.createElement(
'span',
{ onClick: function onClick() {
return _this2.props.toggleLike(comment);
}, className: userVote === 1 ? 'like liked' : 'like' },
userVote === 1 ? _react2.default.createElement('img', { src: __webpack_require__(7) }) : _react2.default.createElement('img', { src: __webpack_require__(8) })
),
_react2.default.createElement(
'span',
{ onClick: function onClick() {
return _this2.props.toggleDislike(comment);
}, className: userVote === -1 ? 'dislike disliked' : 'dislike' },
userVote === -1 ? _react2.default.createElement('img', { src: __webpack_require__(9) }) : _react2.default.createElement('img', { src: __webpack_require__(10) })
)
)
);
}
}]);
return Comment;
}(_react2.default.Component);
exports.default = Comment;
/***/ }),
/* 7 */
/***/ (function(module, exports) {
module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAMAAAD04JH5AAABS2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzggNzkuMTU5ODI0LCAyMDE2LzA5LzE0LTAxOjA5OjAxICAgICAgICAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+IEmuOgAAAARnQU1BAACxjwv8YQUAAAABc1JHQgCuzhzpAAABfVBMVEUAAAArzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzicrzif5VvIJAAAAfnRSTlMAJuv8/f76qKxYJTymqvkDovs/3KABpegLFgjsb1GnxLJxKPhDGRzBIdmej0Cuxs1aMBcRNgRoIwKF6ucsw/Diqz2HviJjHTjzEEpXK7kTMzKV9vcOUoO7vC6YbA0pjosVteZny4K4OpTfcH15H9GBZcCZXdAa4ddkiDmboZPg4nkjAAAB/klEQVR42u3Z6U8TURjF4bfttIOlFMq+r2UTURAVWV1QUFZlR8CFRUDckB3l/O3GhCiNCdA7N3NC8v6+TpPzZJImM3dENE3TNE3TvLWKPzl5T19y9jMjOGvrGWO/oQh/28v2f790Deeq8B+Qc34fp77vf0rZR6Xf+8lQKsD1eb+pDFRA8VdwAVngAj6DCxh2uIBAP6iA6UNQAQXV4ALWwQXMhLmA3hegAjryQAVkj4ELeAcuoA1cwKtJLuD9AaiA+43gAjbBBTwHFzAU5wLqV0AFPNwBF/AAXEBxNxmwCE85ZVWzAU+AO/BcuHLfwzkAbBTMNQbcsALAlLGgyw4AwfoLz3syUqv5dynfEgCxdO6ze9GbqOnfIWoGyLAFwDc2oI8NCLIBDhsABShAAWxAHRvwmgyID5IBb4QLiHwhA34KF5BoIgNuChcQ6iQDcoQLCAXIgELhApxaMsAVLiA8SgY8Fi4gvEAGtAoZ0E4GVAsZMEEGfBAy4B4Z8FHIgBMyYE7IgEwyYEDIgFtkQKNYAMQ8AJI2AG/N96vEBmDXHPDECqAkYbqfL1YAxsflzUuWALVxo/2iqFgCSI3J/qNlsQaQlvT35++KRYCU16U333NUIFYBEo1Frv4Ufvt7adqfxjbc1Mr/+8X4yPEv99IKf2xXlIimaZqmaZqmXZt+AyglUprg+5FgAAAAAElFTkSuQmCC"
/***/ }),
/* 8 */
/***/ (function(module, exports) {
module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAABFVJREFUeJzt3U+IVWUcxvGvo9SUkeWfhTUEFkULCxSCiMEos4XUIkWKaBfVwj/ULjeK9ncTGUErQ6bClMqMIBQUpTLBiCSKxIoQXUzqTjeNc2dcvAwICXnnfc/5/X7veT5wdnfe97n3POfOO2fuPQdERERERERERERERERERERE6vISMHmVrQf8CbwF3GKWTho1DIxx9QJcuf0N3GmUURoyBIzy/zt/ajsOzDRJKsUNAj9y7Tt/anvKIqyU9xH97/xJ4H2LsFLWy0xv508CnxrklYKWA+NMvwC72o/cvAHrAC1ZBOxGC7n/6EIBZgN7gXnWQTzqQgF2APdbh/Cq9gJsBNZYhxAbK0mndKe76NMiMLB7gJ3U+/yKqfEFuhn4CphjHSSC2gowA/gEuNc6SBS1FWAL8KR1CLGxCpig3KJPi8BAFgMjpF8B0ocaCnAr6UzfTdZBIopegJmkt+a7rINEFb0AbwOPW4cQG8/S3IJPi0DnlgLbrUPUIGIBFgBfAjdYB6lBtALMAj4H7rAOUotoBdgGLLMOUZNIBXgeWGsdojZRCvAg8IF1iBpFKMBCYA9wnXWQGnkvwADp8/gLrYPUynsBXgQetg5RM88FmA1stQ4hdtbR7qleT1sPOA98D7xG+oxj5/yE/Y7wsk2Q1kK3Zb2igQxh/6J73M5ReE3kdQ0wbB3AqfnAPgqWwGsB7rMO4Ngg6f8hRf40ntXHY4dJ36+friPAu9f42Nsz5umC+cA7pM9EZOmnAEPA6oy5xvt47I0Z83TF08Bm4I+cQbz+CvCay5MB4LkSg0hcj+YOoALElv0VOBUgtrm5A6gAsWXvPxWg41SAjlMBOk4F6DgVoONUgI5TAWL7N3cAFSC2D3MHUAHiGiNdHyGLChDXDuB07iAqQEyXSHc0y6YCxDQCnCoxkAoQzzjwZqnBVIB4Pibdy7AIFSCWHvBGyQFVgFh2An+VHFAFiKMHvF56UBUgjt3AydKDqgAxTJC+JVycChDDZ8CJJgZWAfybpKGjH1SACL4AfmtqcBXAt0aPflABvNsL/NLkBCqAb41fJEsF8Otr4HjTk6gAfm1pYxIVwKdvSFdJa5wK4FMrRz+oAB7tB461NZkK4E9rRz+oAN4cAI62OaEK4EurRz+oAJ4cIl0culUqgB8ml8ZXAXz4FjhsMbHXAoxZB2iZ2Y0xvBZg1DpAi44AB60m91qAn60DtGij5eReC7Cf/i4uHdUI8J1lAK8FOEu6QXTNTgLrrUN4LQDAJupdDP4DPAFcsA7iuQAngFetQzTgNPAImdf5L8VzASDdYWSbdYiCDgIPAL9bB5nivQAAr5BuVZN9RSxDo8ALwArS239Iz5B3y7NdmfPfTfp27Fhmjra2CeAH0o4fzHzujZnRx2MfAjZkzHUUeC/j56fMAx4DlpDunHV9gTFL6AEXgTPAr6QTPGdNE4mIiIiIiIiIiIiIiIiIiIiIiIiISDdcBgE8CpVwQrG/AAAAAElFTkSuQmCC"
/***/ }),
/* 9 */
/***/ (function(module, exports) {
module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAMAAAD04JH5AAABS2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzggNzkuMTU5ODI0LCAyMDE2LzA5LzE0LTAxOjA5OjAxICAgICAgICAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+IEmuOgAAAARnQU1BAACxjwv8YQUAAAABc1JHQgCuzhzpAAABfVBMVEUAAAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAClZqjvAAAAfnRSTlMA6/wm/f6mqKxYJfqqPPkL6Bnc+D9xHCjBb6KyIQGnA8QIoPtR7KUWQ4sX4TDZK54RFbuZ6psCuMYTg9d9MqGUvPZ5OZgOk3ANj9Gujs2rGhBdZQTmI9CFy+c6w9/iwD2CvmOBaDjwH7VXHbmIM0CVNvcsUiJnh/NKWi5sKWQzet0jAAAB8UlEQVR42u3ZVU9DURCF0aEKNdwdWtzd3d3d3d1lfjsPhEBLAu3poTsh8z3fdq80t0l7D5EkSZIkSZIkSZIf5btbqvOsv9Z2ctj47bXJPhctBbyePdVgZn+zW2w+L7f6XBER4Hz66yIHVGyyVkBRBwfcoEbAyyorFK8NYItS2WdXoibAQCmr5dAEyFHc59x8LYB1Vm5SCyBLHTCiA1Cgvs8WHYCkIADhGgBnDAZsggFOBgOqwIBuBgPqwYALBgMOwIBTBgNSwYASBgOGwYAnMxgwxlhAmRkMsDIWkGgCA/IYCzAawIAUxgJmDWBAOWMBablgQC1jAft2MKCHsYAjFxhwzmBALBrAAhCAANAAExoQhgYsowHbaIBN203gUPw9YNEFyPl8z/hw75w/AaJ13YbzqudzcZd6ABGkLNDzGSSon1GOZ2j4dz4a1DGpsSnLE+TX4fkvj3H9eHxQEwkG7BAWsFaHBcxEExTg2iUsYIuwgHbCApKmsYDiSoICOlsJC3gkLKCQsIDjTCwgpoKggPsrggLM14QFbBAWkJqOBTT3EhSwZyQowPRAWEAXYQEOwgKGIrEATxpBAYaCEO9ThjegP9T71Oe1nxLyfXJ/3V/IDj0gc+5zPyqBAN2sfOzbnQRp4i7m/fnBLUmSJEnSf+gNDvtSmm1LN8MAAAAASUVORK5CYII="
/***/ }),
/* 10 */
/***/ (function(module, exports) {
module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAMAAAD04JH5AAABS2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzggNzkuMTU5ODI0LCAyMDE2LzA5LzE0LTAxOjA5OjAxICAgICAgICAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+IEmuOgAAAARnQU1BAACxjwv8YQUAAAABc1JHQgCuzhzpAAABfVBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/EeXvAAAAfnRSTlMAJvzr/f4lqKxYPPr5qqalp9wIA0OgxPgZ7BY/b/uy6BwBUQtxKMGiIZPzwMu4iBMV12QySpRA9tChWg4XcDaPOa4RzdmCLGPwBF0j34Ui5x3DgeJ9PZu+ArWDODAfeVcaudEzu5Vl9+FSmYfGLrxsDSk6i54QjubqmGdoqysSyl1fAAAB8UlEQVR42u3ZVW9CURCF0YEiLVaFuru7u7u7u7v7/PY+NE0LTVo4nLKTZr7nC3uFXBK4h0iSJEmSJEmSJMmPkrJmjiKtv9ZYtl7+7bUpPhddBbwes3diZn+zuyw+L7f6XBER4Hxm1TgHVHyKVkDLGQdcu0bA5TQrlKMNYElX2WdHribARQ+r5dQEcCvuc2qSFsAsKzekBeBRB9zpAMSp77NLByAvCEC4BkAdgwHzYICNwYAdMKCDwYBSMKCNwYBFMGCbwYA0MGCFwYBOMODUDAa8MBbwagYDrIwF5JrAgEjGAgxGMCCfsYBhIxhww1hAQSoYMMdYwKodDHhkLGDCAQbsMhgQjwawAAQgADTAhAaEoQGTaMAUGmDRdhM4FX8PuHQB3J/vmRPune0nQIKu23BU9XwueV8PIIKUBXo+gwz1M8qNKA3/zruDOiY1LHkSg/w6nP/lMa4fjw8essGAZ8ICihewgPsEggIcy4QF9BMWUEtYQN4gFnBQQVBAfTVhAU2EBVwTFrAZiwVEdxEUUNRHUID5kLCAXsIC0jKxgMpmggIGDAQFmGoIC1gjLMBJWMBWNhaQWEBQgDEuxPsU5Q1oDfU+FXrt54d8n7K+7pfEhB4Q2/C5n55BgMZGPvbtNoJ0exz9/vzgiSRJkiTpP/QGmV9SmiJali0AAAAASUVORK5CYII="
/***/ }),
/* 11 */
/***/ (function(module, exports) {
module.exports = PropTypes;
/***/ })
/******/ ]);