UNPKG

rax-tbms-chat-plugin

Version:

tbms-chat-plugin with rax

70 lines (58 loc) 3.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = _default; var _raxTbmsChatBase = require("rax-tbms-chat-base"); var SmileConfig = _interopRequireWildcard(require("./map")); var _raxImage = _interopRequireDefault(require("rax-image")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } var MY_FREE_STYLE = { text: { wordBreak: 'break-word', fontSize: _raxTbmsChatBase.customStyles.font.mainFontSize, lineHeight: _raxTbmsChatBase.customStyles.font.mainFontLineHeight, color: _raxTbmsChatBase.customStyles.font.mainFontColor } }; function _default(configType) { var smileList = SmileConfig[configType] || []; var smileConfig = {}; if (!smileList.length) { throw new TypeError('smileConfig type not right', configType); } smileList.forEach(function (item) { smileConfig[item.alias] = _objectSpread({}, item); }); return function (value, styles) { var EmojiRectangle = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 48; var reg = /([^\/:]+)|(\/:[\w~!@$%^&*\\(\\)\-\+=\.\?'"<>]{1,5})/gm; var emojiReg = /\/:[\w~!@$%^&*\\(\\)\-\+=\.\?'"<>]{1,5}/; var originList = value.match(reg) || []; var list = []; originList && originList.forEach(function (text, index) { // /:^_^ // let keys = key.slice(2); // ^_^ if (emojiReg.test(text) && smileConfig[text] && smileConfig[text].src) { list.push((0, _raxTbmsChatBase.createElement)(_raxImage.default, { source: { uri: smileConfig[text].src }, style: _objectSpread({ height: EmojiRectangle, width: EmojiRectangle }, styles.image), resizeMode: "cover" })); } else { list.push((0, _raxTbmsChatBase.createElement)("span", { style: styles.text }, text)); } }); return list; }; }