"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.isFunction = isFunction;
exports.isUrl = isUrl;
exports.arrayToObject = arrayToObject;
exports.htmlEncode = htmlEncode;
exports.renderContent = renderContent;
var _constant = require("./constant");
var _emoji = require("./emoji");
var _emoji2 = _interopRequireDefault(_emoji);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var emojiObejct = arrayToObject(_emoji2.default, "title");
function isFunction(functionToCheck) {
return functionToCheck && {}.toString.call(functionToCheck) === "[object Function]";
}
function isUrl(userInput) {
var regexp = /(http(s)?:\/\/.)?(www\.)?[-a-zA-Z0-9@:%._+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_+.~#?&//=]*)/g;
var res = userInput.match(regexp);
if (res === null) return false;else return true;
}
/**
* 将对象数组转换为对象
* @param {array} array Array of Objects
* @param {string} keyField string
*/
function arrayToObject(array, keyField) {
return array.reduce(function (obj, item) {
obj[item[keyField]] = item;
return obj;
}, {});
}
/**
* HTML 编码
* 将 < > 等字符串进行编码
* @param {string} str 文本
*/
function htmlEncode(str) {
if (!str) return "";
return str.replace(/<>/gim, function (i) {
return "" + i.charCodeAt(0) + ";";
});
}
/**
* 渲染编辑器
* [x] =>
* @param {strig} content
*/
function renderContent(content, onClick) {
var newContent = content;
if (newContent.indexOf(_constant.IMAGE_SPLIT) !== -1) {
newContent = newContent.split(_constant.IMAGE_SPLIT);
newContent.pop();
newContent = newContent.join("");
}
return htmlEncode(newContent).replace(_constant.REGEXP, function (a, b) {
var src = a.slice(1, -1);
// 兼容旧的评
// 因为旧的评论用 [img url] 方式存储的
if (isUrl(src)) {
return "
";
}
var value = emojiObejct[src] ? emojiObejct[src].value : src;
return "";
});
}
//# sourceMappingURL=helper.js.map