UNPKG

last-draft-js-plugins

Version:
205 lines (185 loc) â€Ē 14.7 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = undefined; 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); 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; } /* list of emoji's sourced from http://getemoji.com */ var PEOPLE_EMOJIS = ['😀', '😃', '😄', '😁', '😆', '😅', '😂', '😇', 'ðŸĪĢ', '☚ïļ', '😊', '🙂', '🙃', '😉', '😌', '😍', '😘', '😗', '😙', '😚', '😋', '😜', '😝', '😛', 'ðŸĪ‘', 'ðŸĪ—', 'ðŸĪ“', '😎', 'ðŸĪĄ', 'ðŸĪ ', '😏', '😒', '😞', '😔', '😟', '😕', '🙁', 'â˜đïļ', 'ðŸ˜Ģ', '😖', 'ðŸ˜Ŧ', 'ðŸ˜Đ', 'ðŸ˜Ī', '😠', 'ðŸ˜Ą', 'ðŸ˜ķ', '😐', '😑', 'ðŸ˜Ŋ', 'ðŸ˜Ķ', '😧', 'ðŸ˜Ū', 'ðŸ˜ē', 'ðŸ˜ĩ', 'ðŸ˜ģ', 'ðŸ˜ą', 'ðŸ˜Ļ', '😰', 'ðŸ˜Ē', 'ðŸ˜Ĩ', 'ðŸĪĪ', '😭', '😓', '😊', 'ðŸ˜ī', '🙄', 'ðŸĪ”', 'ðŸĪĨ', '😎', 'ðŸĪ', 'ðŸĪĒ', 'ðŸĪ§', '😷', 'ðŸĪ’', 'ðŸĪ•', '😈', 'ðŸ‘ŋ', 'ðŸ‘đ', '👚', 'ðŸ’Đ', 'ðŸ‘ŧ', '💀', '☠ïļ', 'ðŸ‘―', 'ðŸ‘ū', 'ðŸĪ–', '🎃', '😚', 'ðŸ˜ļ', 'ðŸ˜đ', 'ðŸ˜ŧ', '😞', 'ðŸ˜―', '🙀', 'ðŸ˜ŋ', 'ðŸ˜ū', '👐', '🙌', '👏', '🙏', 'ðŸĪ', '👍', '👎', '👊', '✊', 'ðŸĪ›', 'ðŸĪœ', 'ðŸĪž', '✌ïļ', 'ðŸĪ˜', '👌', '👈', '👉', '👆', '👇', '☝ïļ', '✋', 'ðŸĪš', '🖐', '🖖', '👋', 'ðŸĪ™', '💊', '🖕', '✍ïļ', 'ðŸĪģ', '💅', '🖖', '💄', '💋', '👄', '👅', '👂', '👃', 'ðŸ‘Ģ', '👁', '👀', '👗', '👠', '👞', '👟', '👒', 'ðŸŽĐ', '🎓', '👑', '⛑', '🎒', '👝', '👛', '👜', '💞', '👓', 'ðŸ•ķ', '☂ïļ']; var ANIMALS_NATURE_EMOJIS = ['ðŸķ', 'ðŸą', '🐭', 'ðŸđ', '🐰', 'ðŸĶŠ', 'ðŸŧ', '🐞', 'ðŸĻ', 'ðŸŊ', 'ðŸĶ', 'ðŸŪ', '🐷', 'ðŸ―', 'ðŸļ', 'ðŸĩ', '🙊', '🙉', '🙊', '🐒', '🐔', '🐧', 'ðŸĶ', 'ðŸĪ', 'ðŸĢ', 'ðŸĨ', 'ðŸĶ†', 'ðŸĶ…', 'ðŸĶ‰', 'ðŸĶ‡', '🐚', '🐗', 'ðŸī', 'ðŸĶ„', '🐝', '🐛', 'ðŸĶ‹', '🐌', '🐚', '🐞', '🐜', '🕷', 'ðŸ•ļ', 'ðŸĒ', '🐍', 'ðŸĶŽ', 'ðŸĶ‚', 'ðŸĶ€', 'ðŸĶ‘', '🐙', 'ðŸĶ', '🐠', '🐟', 'ðŸĄ', '🐎', 'ðŸĶˆ', 'ðŸģ', '🐋', '🐊', '🐆', '🐅', '🐃', '🐂', '🐄', 'ðŸĶŒ', '🐊', 'ðŸŦ', '🐘', 'ðŸĶ', 'ðŸĶ', '🐎', '🐖', '🐐', '🐏', '🐑', '🐕', 'ðŸĐ', '🐈', '🐓', 'ðŸĶƒ', '🕊', '🐇', '🐁', '🐀', 'ðŸŋ', 'ðŸū', '🐉', 'ðŸē', 'ðŸŒĩ', '🎄', 'ðŸŒē', 'ðŸŒģ', 'ðŸŒī', 'ðŸŒą', 'ðŸŒŋ', '☘ïļ', '🍀', '🎍', '🎋', '🍃', '🍂', '🍁', '🍄', 'ðŸŒū', '💐', '🌷', 'ðŸŒđ', 'ðŸĨ€', 'ðŸŒŧ', '🌞', 'ðŸŒļ', '🌚', '🌎', '🌍', '🌏', '🌕', '🌖', '🌔', '🌚', '🌝', '🌞', '🌛', '🌜', '🌙', 'ðŸ’Ŧ', '⭐ïļ', '🌟', 'âœĻ', '⚡ïļ', 'ðŸ”Ĩ', 'ðŸ’Ĩ', '☄ïļ', '☀ïļ', 'ðŸŒĪ', '⛅ïļ', 'ðŸŒĨ', 'ðŸŒĶ', '🌈', '☁ïļ', '🌧', '⛈', 'ðŸŒĐ', 'ðŸŒĻ', '☃ïļ', '⛄ïļ', '❄ïļ', '🌎', 'ðŸ’Ļ', '🌊', 'ðŸŒŦ', '🌊', '💧', 'ðŸ’Ķ', '☔ïļ']; var FOOD_SPORTS_EMOJIS = ['🍏', '🍎', '🍐', '🍊', '🍋', '🍌', '🍉', '🍇', '🍓', '🍈', '🍒', '🍑', '🍍', 'ðŸĨ', 'ðŸĨ‘', '🍅', '🍆', 'ðŸĨ’', 'ðŸĨ•', 'ðŸŒ―', 'ðŸŒķ', 'ðŸĨ”', '🍠', '🌰', 'ðŸĨœ', 'ðŸŊ', 'ðŸĨ', '🍞', 'ðŸĨ–', '🧀', 'ðŸĨš', 'ðŸģ', 'ðŸĨ“', 'ðŸĨž', 'ðŸĪ', '🍗', '🍖', '🍕', '🌭', '🍔', '🍟', 'ðŸĨ™', 'ðŸŒŪ', 'ðŸŒŊ', 'ðŸĨ—', 'ðŸĨ˜', '🍝', '🍜', 'ðŸē', 'ðŸĨ', 'ðŸĢ', 'ðŸą', '🍛', '🍚', '🍙', '🍘', 'ðŸĒ', 'ðŸĄ', '🍧', 'ðŸĻ', 'ðŸĶ', '🍰', '🎂', 'ðŸŪ', '🍭', '🍎', 'ðŸŦ', 'ðŸŋ', 'ðŸĐ', '🍊', 'ðŸĨ›', '🍞', '☕ïļ', 'ðŸĩ', 'ðŸķ', '🍚', 'ðŸŧ', 'ðŸĨ‚', '🍷', 'ðŸĨƒ', 'ðŸļ', 'ðŸđ', 'ðŸū', 'ðŸĨ„', 'ðŸī', 'ðŸ―', 'âš―ïļ', '🏀', '🏈', 'âšūïļ', 'ðŸŽū', '🏐', '🏉', 'ðŸŽą', '🏓', 'ðŸļ', 'ðŸĨ…', '🏒', '🏑', '🏏', 'â›ģïļ', 'ðŸđ', 'ðŸŽĢ', 'ðŸĨŠ', 'ðŸĨ‹', 'â›ļ', 'ðŸŽŋ', '⛷', '🏂', '🏋', 'ðŸĪš', 'â›đïļ', '🏌', '🏄', '🏊', 'ðŸĪ―', 'ðŸšĢ', '🏇', 'ðŸšī', 'ðŸšĩ', '🎎', 'ðŸŽĪ', '🎧', '🎞', 'ðŸŽđ', 'ðŸĨ', '🎷', '🎚', 'ðŸŽļ', 'ðŸŽŧ', 'ðŸŽē', 'ðŸŽŊ', 'ðŸŽģ', 'ðŸŽŪ', 'ðŸģ', 'ðŸī', '🏁', 'ðŸšĐ', 'ðŸŽ―', 'ðŸĨ‡', 'ðŸĨˆ', 'ðŸĨ‰', '🏆']; var TRAVEL_PLACES_EMOJIS = ['🚗', '🚕', '🚙', '🚌', '🚎', '🏎', '🚓', '🚑', '🚒', '🚐', '🚚', '🚛', '🚜', 'ðŸ›ī', 'ðŸšē', 'ðŸ›ĩ', '🏍', 'ðŸšĻ', '🚔', '🚍', '🚘', '🚖', 'ðŸšĄ', '🚠', '🚟', '🚃', '🚋', '🚞', '🚝', '🚄', '🚅', '🚈', '🚂', '🚆', '🚇', '🚊', '🚉', '🚁', 'ðŸ›Đ', '✈ïļ', 'ðŸ›Ŧ', '🛎', '🚀', '🛰', '💚', 'ðŸ›ķ', 'â›ĩïļ', 'ðŸ›Ĩ', 'ðŸšĪ', 'ðŸ›ģ', 'â›ī', 'ðŸšĒ', '⚓ïļ', '🚧', 'â›―ïļ', '🚏', 'ðŸšĶ', 'ðŸšĨ', '🗚', 'ðŸ—ŋ', 'ðŸ—―', 'â›ēïļ', '🗞', '🏰', 'ðŸŊ', '🏟', 'ðŸŽĄ', 'ðŸŽĒ', '🎠', '⛱', '🏖', '🏝', '⛰', '🏔', 'ðŸ—ŧ', '🌋', '🏜', '🏕', '⛹ïļ', 'ðŸ›Ī', 'ðŸ›Ģ', '🏗', '🏭', '🏠', 'ðŸĄ', '🏘', '🏚', 'ðŸĒ', '🏎', 'ðŸĢ', 'ðŸĪ', 'ðŸĨ', 'ðŸĶ', 'ðŸĻ', '🏊', 'ðŸŦ', 'ðŸĐ', '💒', '🏛', '⛩ïļ', '🕌', '🕍', '🕋', 'â›Đ', 'ðŸ—ū', '🎑', '🏞', '🌅', '🌄', '🌠', '🎇', '🎆', '🌇', '🌆', '🏙', '🌃', '🌌', '🌉', '🌁', '🎭', 'ðŸŽĻ']; var OBJECTS_EMOJIS = ['🆓', '📗', '📕', '⌚ïļ', 'ðŸ“ą', 'ðŸ“ē', 'ðŸ’ŧ', 'âŒĻïļ', 'ðŸ–Ĩ', 'ðŸ–Ļ', 'ðŸ–ą', 'ðŸ–ē', 'ðŸ•đ', '🗜', 'ðŸ’―', 'ðŸ’ū', 'ðŸ’ŋ', '📀', '📞', '📷', 'ðŸ“ļ', 'ðŸ“đ', 'ðŸŽĨ', 'ðŸ“―', '🎞', '📞', '☎ïļ', '📟', '📠', '📚', 'ðŸ“ŧ', '🎙', '🎚', '🎛', '⏱', 'âē', '⏰', '🕰', '⌛ïļ', 'âģ', 'ðŸ“Ą', '🔋', '🔌', 'ðŸ’Ą', 'ðŸ”Ķ', 'ðŸ•Ŋ', '🗑', 'ðŸ›Ē', 'ðŸ’ļ', 'ðŸ’ĩ', 'ðŸ’ī', 'ðŸ’ķ', '💷', '💰', 'ðŸ’ģ', '💎', '⚖ïļ', '🔧', 'ðŸ”Ļ', '⚒', '⛏', '⚙ïļ', 'ðŸ’Ģ', '🔊', 'ðŸ—Ą', '⚔ïļ', 'ðŸ›Ą', '🚎', '⚰ïļ', '⚱ïļ', '🏚', 'ðŸ”Ū', 'ðŸ“ŋ', '💈', '⚗ïļ', '🔭', '🔎', 'ðŸ•ģ', '💊', '💉', 'ðŸŒĄ', 'ðŸš―', '🚰', 'ðŸšŋ', '🛁', '🛀', '🛎', '🔑', '🗝', '🚊', '🛋', '🛏', '🖞', '🛍', '🛒', '🎁', '🎈', '🎏', '🎀', '🎊', '🎉', '🎎', 'ðŸŪ', '🎐', '✉ïļ', '📊', 'ðŸ“Ū', 'ðŸ“Ŋ', '📜', '📃', '📄', '📑', '📊', '📈', '📉', '🗒', '🗓', '📆', '📅', '📇', '🗃', 'ðŸ—ģ', '🗄', '📋', '🗞', '📰', '📘', '📚', '📖', '🔖', '🔗', '📎', '📐', '📏', '📍', '📌', '🖊', '🖌', '🖍', '📝', '✏ïļ', '🔍', '🔓']; var SYMBOLS_FLAGS_EMOJIS = ['âĪïļ', '💛', '💚', '💙', '💜', 'ðŸ–Ī', '💔', 'âĢïļ', '💕', '💞', '💓', '💗', '💖', '💘', '💝', '💟', 'â˜Ūïļ', '✝ïļ', '☊ïļ', '🕉', 'â˜ļïļ', '✡ïļ', 'ðŸ”Ŋ', '🕎', 'â˜Ŋïļ', 'â˜Ķïļ', '🛐', '⛎', '♈ïļ', '♉ïļ', '♊ïļ', '♋ïļ', '♌ïļ', '♍ïļ', '♎ïļ', '♏ïļ', '♐ïļ', '♑ïļ', '♒ïļ', '♓ïļ', '🆔', '⚛ïļ', '🉑', 'â˜Ēïļ', 'â˜Ģïļ', 'ðŸ“ī', 'ðŸ“ģ', 'ðŸˆķ', '🈚', 'ðŸˆļ', '🈚', '🈷', 'âœīïļ', '🆚', 'ðŸ’Ū', '🉐', '㊙ïļ', '㊗ïļ', 'ðŸˆī', 'ðŸˆĩ', 'ðŸˆđ', 'ðŸˆē', '❌', '⭕ïļ', '🛑', '⛔ïļ', '📛', 'ðŸšŦ', 'ðŸ’Ŋ', 'ðŸ’Ē', 'â™Ļïļ', '🚷', 'ðŸšŊ', 'ðŸšģ', 'ðŸšą', '🔞', 'ðŸ“ĩ', '🚭', '❕', '❔', '‾ïļ', '⁉ïļ', '🔅', '🔆', 'ã€―ïļ', '⚠ïļ', 'ðŸšļ', 'ðŸ”ą', '⚜ïļ', '🔰', 'â™ŧïļ', '✅', 'ðŸˆŊ', 'ðŸ’đ', '❇ïļ', 'âœģïļ', '❎', '🌐', '💠', 'Ⓜïļ', '🌀', 'ðŸ’Ī', '🚚', '🚞', 'ðŸŽĩ', 'ðŸŽķ', '➕', '➖', '➗', '✖ïļ', 'ðŸ’ē', 'ðŸ’ą', 'â„Ēïļ', 'ÂĐïļ', 'ÂŪïļ', '〰ïļ', '➰', 'âžŋ', '🔚', '🔙', '🔛', '🔝', '✔ïļ', '☑ïļ', '🔈', '🔇', '🔉', '🔊', '🔔', '🔕', 'ðŸ“Ģ', 'ðŸ“Ē', 'ðŸ—Ļ', '💎', '💭', 'ðŸ—Ŋ', '♠ïļ', 'â™Ģïļ', 'â™Ĩïļ', 'â™Ķïļ', '🃏', 'ðŸŽī', '🀄']; var _default = function (_Component) { _inherits(_default, _Component); function _default(props) { _classCallCheck(this, _default); var _this = _possibleConstructorReturn(this, (_default.__proto__ || Object.getPrototypeOf(_default)).call(this, props)); _this.state = { emojis: PEOPLE_EMOJIS, emojiCategory: 'PEOPLE_EMOJIS' }; return _this; } _createClass(_default, [{ key: 'toggleEmojis', value: function toggleEmojis(emoji) { switch (emoji) { case 'PEOPLE_EMOJIS': this.setState({ emojis: PEOPLE_EMOJIS, emojiCategory: 'PEOPLE_EMOJIS' }); break; case 'ANIMALS_NATURE_EMOJIS': this.setState({ emojis: ANIMALS_NATURE_EMOJIS, emojiCategory: 'ANIMALS_NATURE_EMOJIS' }); break; case 'FOOD_SPORTS_EMOJIS': this.setState({ emojis: FOOD_SPORTS_EMOJIS, emojiCategory: 'FOOD_SPORTS_EMOJIS' }); break; case 'TRAVEL_PLACES_EMOJIS': this.setState({ emojis: TRAVEL_PLACES_EMOJIS, emojiCategory: 'TRAVEL_PLACES_EMOJIS' }); break; case 'OBJECTS_EMOJIS': this.setState({ emojis: OBJECTS_EMOJIS, emojiCategory: 'OBJECTS_EMOJIS' }); break; case 'SYMBOLS_FLAGS_EMOJIS': this.setState({ emojis: SYMBOLS_FLAGS_EMOJIS, emojiCategory: 'SYMBOLS_FLAGS_EMOJIS' }); break; default: this.setState({ emojis: PEOPLE_EMOJIS, emojiCategory: 'PEOPLE_EMOJIS' }); } } }, { key: 'onEmojiSelect', value: function onEmojiSelect(emoji) { this.props.onSelected(emoji); } }, { key: 'renderTabs', value: function renderTabs() { var _this2 = this; var emojiCategory = this.state.emojiCategory; var theme = this.props.theme; return _react2.default.createElement( 'div', { className: theme.emojiPickerStyles.tabWrapper }, _react2.default.createElement( 'p', { className: theme.emojiPickerStyles.tab, style: { opacity: emojiCategory === 'PEOPLE_EMOJIS' ? '1' : '0.5' }, onClick: function onClick() { _this2.toggleEmojis('PEOPLE_EMOJIS'); } }, '\uD83D\uDE00' ), _react2.default.createElement( 'p', { className: theme.emojiPickerStyles.tab, style: { opacity: emojiCategory === 'ANIMALS_NATURE_EMOJIS' ? '1' : '0.5' }, onClick: function onClick() { _this2.toggleEmojis('ANIMALS_NATURE_EMOJIS'); } }, '\uD83E\uDD8A' ), _react2.default.createElement( 'p', { className: theme.emojiPickerStyles.tab, style: { opacity: emojiCategory === 'FOOD_SPORTS_EMOJIS' ? '1' : '0.5' }, onClick: function onClick() { _this2.toggleEmojis('FOOD_SPORTS_EMOJIS'); } }, '\uD83C\uDF4F' ), _react2.default.createElement( 'p', { className: theme.emojiPickerStyles.tab, style: { opacity: emojiCategory === 'TRAVEL_PLACES_EMOJIS' ? '1' : '0.5' }, onClick: function onClick() { _this2.toggleEmojis('TRAVEL_PLACES_EMOJIS'); } }, '\uD83D\uDE97' ), _react2.default.createElement( 'p', { className: theme.emojiPickerStyles.tab, style: { opacity: emojiCategory === 'OBJECTS_EMOJIS' ? '1' : '0.5' }, onClick: function onClick() { _this2.toggleEmojis('OBJECTS_EMOJIS'); } }, '\uD83D\uDC8E' ), _react2.default.createElement( 'p', { className: theme.emojiPickerStyles.tab, style: { opacity: emojiCategory === 'SYMBOLS_FLAGS_EMOJIS' ? '1' : '0.5' }, onClick: function onClick() { _this2.toggleEmojis('SYMBOLS_FLAGS_EMOJIS'); } }, '\u2764\uFE0F' ) ); } }, { key: 'render', value: function render() { var _this3 = this; var emojis = this.state.emojis; var theme = this.props.theme; return _react2.default.createElement( 'div', { className: theme.emojiPickerStyles.wrapper }, this.renderTabs(), _react2.default.createElement( 'div', { className: theme.emojiPickerStyles.closeWrapper, onClick: this.props.closeModal }, _react2.default.createElement( 'svg', { width: '24', height: '24', viewBox: '0 0 24 24' }, _react2.default.createElement( 'g', { fill: 'currentColor', fillRule: 'evenodd' }, _react2.default.createElement('path', { d: 'M16.95 5.636l1.414 1.414L7.05 18.364 5.636 16.95z' }), _react2.default.createElement('path', { d: 'M16.95 18.364l1.414-1.414L7.05 5.636 5.636 7.05z' }) ) ) ), _react2.default.createElement( 'div', { className: theme.emojiPickerStyles.picker }, emojis.map(function (emoji, index) { return _react2.default.createElement( 'span', { className: theme.emojiPickerStyles.emoji, key: index, onClick: function onClick() { _this3.onEmojiSelect(emoji); } }, emoji ); }) ) ); } }], [{ key: 'propTypes', get: function get() { return { onSelected: _react2.default.PropTypes.func.isRequired }; } }]); return _default; }(_react.Component); exports.default = _default;