botframework-webchat-component
Version:
React component of botframework-webchat
34 lines (33 loc) • 6.43 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = addTargetBlankToHyperlinksMarkdown;
var _updateMarkdownAttrs = _interopRequireDefault(require("./updateMarkdownAttrs"));
var _walkMarkdownTokens = _interopRequireDefault(require("./walkMarkdownTokens"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(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; }
function addTargetBlankToHyperlinksMarkdown(tokens) {
return (0, _walkMarkdownTokens.default)(tokens, function (token) {
switch (token.type) {
case 'link_open':
token = (0, _updateMarkdownAttrs.default)(token, function (attrs) {
return (
// Adds only for external links, e.g. https://, data:
// Don't add for internal links, e.g. #ref-1, ?q=doc
/^[0-9A-Z_a-z]/.test(attrs.href) ? _objectSpread(_objectSpread({}, attrs), {}, {
rel: 'noopener noreferrer',
target: '_blank'
}) : attrs
);
});
break;
default:
break;
}
return token;
});
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdXBkYXRlTWFya2Rvd25BdHRycyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3dhbGtNYXJrZG93blRva2VucyIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0Iiwib3duS2V5cyIsIm9iamVjdCIsImVudW1lcmFibGVPbmx5Iiwia2V5cyIsIk9iamVjdCIsImdldE93blByb3BlcnR5U3ltYm9scyIsInN5bWJvbHMiLCJmaWx0ZXIiLCJzeW0iLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsInRhcmdldCIsImkiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJzb3VyY2UiLCJmb3JFYWNoIiwia2V5IiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsInZhbHVlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJhZGRUYXJnZXRCbGFua1RvSHlwZXJsaW5rc01hcmtkb3duIiwidG9rZW5zIiwid2Fsa01hcmtkb3duVG9rZW5zIiwidG9rZW4iLCJ0eXBlIiwidXBkYXRlTWFya2Rvd25BdHRycyIsImF0dHJzIiwidGVzdCIsImhyZWYiLCJyZWwiXSwic291cmNlUm9vdCI6ImNvbXBvbmVudDovLy8iLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9VdGlscy9hZGRUYXJnZXRCbGFua1RvSHlwZXJsaW5rc01hcmtkb3duLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB1cGRhdGVNYXJrZG93bkF0dHJzIGZyb20gJy4vdXBkYXRlTWFya2Rvd25BdHRycyc7XG5pbXBvcnQgd2Fsa01hcmtkb3duVG9rZW5zIGZyb20gJy4vd2Fsa01hcmtkb3duVG9rZW5zJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gYWRkVGFyZ2V0QmxhbmtUb0h5cGVybGlua3NNYXJrZG93bih0b2tlbnMpIHtcbiAgcmV0dXJuIHdhbGtNYXJrZG93blRva2Vucyh0b2tlbnMsIHRva2VuID0+IHtcbiAgICBzd2l0Y2ggKHRva2VuLnR5cGUpIHtcbiAgICAgIGNhc2UgJ2xpbmtfb3Blbic6XG4gICAgICAgIHRva2VuID0gdXBkYXRlTWFya2Rvd25BdHRycyh0b2tlbiwgYXR0cnMgPT5cbiAgICAgICAgICAvLyBBZGRzIG9ubHkgZm9yIGV4dGVybmFsIGxpbmtzLCBlLmcuIGh0dHBzOi8vLCBkYXRhOlxuICAgICAgICAgIC8vIERvbid0IGFkZCBmb3IgaW50ZXJuYWwgbGlua3MsIGUuZy4gI3JlZi0xLCA/cT1kb2NcbiAgICAgICAgICAvXlxcdy91LnRlc3QoYXR0cnMuaHJlZilcbiAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgIC4uLmF0dHJzLFxuICAgICAgICAgICAgICAgIHJlbDogJ25vb3BlbmVyIG5vcmVmZXJyZXInLFxuICAgICAgICAgICAgICAgIHRhcmdldDogJ19ibGFuaydcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgOiBhdHRyc1xuICAgICAgICApO1xuXG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICByZXR1cm4gdG9rZW47XG4gIH0pO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxvQkFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsbUJBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUFzRCxTQUFBRCx1QkFBQUcsR0FBQSxXQUFBQSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxHQUFBRCxHQUFBLEtBQUFFLE9BQUEsRUFBQUYsR0FBQTtBQUFBLFNBQUFHLFFBQUFDLE1BQUEsRUFBQUMsY0FBQSxRQUFBQyxJQUFBLEdBQUFDLE1BQUEsQ0FBQUQsSUFBQSxDQUFBRixNQUFBLE9BQUFHLE1BQUEsQ0FBQUMscUJBQUEsUUFBQUMsT0FBQSxHQUFBRixNQUFBLENBQUFDLHFCQUFBLENBQUFKLE1BQUEsR0FBQUMsY0FBQSxLQUFBSSxPQUFBLEdBQUFBLE9BQUEsQ0FBQUMsTUFBQSxXQUFBQyxHQUFBLFdBQUFKLE1BQUEsQ0FBQUssd0JBQUEsQ0FBQVIsTUFBQSxFQUFBTyxHQUFBLEVBQUFFLFVBQUEsT0FBQVAsSUFBQSxDQUFBUSxJQUFBLENBQUFDLEtBQUEsQ0FBQVQsSUFBQSxFQUFBRyxPQUFBLFlBQUFILElBQUE7QUFBQSxTQUFBVSxjQUFBQyxNQUFBLGFBQUFDLENBQUEsTUFBQUEsQ0FBQSxHQUFBQyxTQUFBLENBQUFDLE1BQUEsRUFBQUYsQ0FBQSxVQUFBRyxNQUFBLFdBQUFGLFNBQUEsQ0FBQUQsQ0FBQSxJQUFBQyxTQUFBLENBQUFELENBQUEsUUFBQUEsQ0FBQSxPQUFBZixPQUFBLENBQUFJLE1BQUEsQ0FBQWMsTUFBQSxPQUFBQyxPQUFBLFdBQUFDLEdBQUEsSUFBQUMsZUFBQSxDQUFBUCxNQUFBLEVBQUFNLEdBQUEsRUFBQUYsTUFBQSxDQUFBRSxHQUFBLFNBQUFoQixNQUFBLENBQUFrQix5QkFBQSxHQUFBbEIsTUFBQSxDQUFBbUIsZ0JBQUEsQ0FBQVQsTUFBQSxFQUFBVixNQUFBLENBQUFrQix5QkFBQSxDQUFBSixNQUFBLEtBQUFsQixPQUFBLENBQUFJLE1BQUEsQ0FBQWMsTUFBQSxHQUFBQyxPQUFBLFdBQUFDLEdBQUEsSUFBQWhCLE1BQUEsQ0FBQW9CLGNBQUEsQ0FBQVYsTUFBQSxFQUFBTSxHQUFBLEVBQUFoQixNQUFBLENBQUFLLHdCQUFBLENBQUFTLE1BQUEsRUFBQUUsR0FBQSxpQkFBQU4sTUFBQTtBQUFBLFNBQUFPLGdCQUFBeEIsR0FBQSxFQUFBdUIsR0FBQSxFQUFBSyxLQUFBLFFBQUFMLEdBQUEsSUFBQXZCLEdBQUEsSUFBQU8sTUFBQSxDQUFBb0IsY0FBQSxDQUFBM0IsR0FBQSxFQUFBdUIsR0FBQSxJQUFBSyxLQUFBLEVBQUFBLEtBQUEsRUFBQWYsVUFBQSxRQUFBZ0IsWUFBQSxRQUFBQyxRQUFBLG9CQUFBOUIsR0FBQSxDQUFBdUIsR0FBQSxJQUFBSyxLQUFBLFdBQUE1QixHQUFBO0FBRXZDLFNBQVMrQixrQ0FBa0NBLENBQUNDLE1BQU0sRUFBRTtFQUNqRSxPQUFPLElBQUFDLDJCQUFrQixFQUFDRCxNQUFNLEVBQUUsVUFBQUUsS0FBSyxFQUFJO0lBQ3pDLFFBQVFBLEtBQUssQ0FBQ0MsSUFBSTtNQUNoQixLQUFLLFdBQVc7UUFDZEQsS0FBSyxHQUFHLElBQUFFLDRCQUFtQixFQUFDRixLQUFLLEVBQUUsVUFBQUcsS0FBSztVQUFBO1lBQ3RDO1lBQ0E7WUFDQSxlQUFNLENBQUNDLElBQUksQ0FBQ0QsS0FBSyxDQUFDRSxJQUFJLENBQUMsR0FBQXZCLGFBQUEsQ0FBQUEsYUFBQSxLQUVkcUIsS0FBSztjQUNSRyxHQUFHLEVBQUUscUJBQXFCO2NBQzFCdkIsTUFBTSxFQUFFO1lBQVEsS0FFbEJvQjtVQUFLO1FBQUEsQ0FDWCxDQUFDO1FBRUQ7TUFFRjtRQUNFO0lBQ0o7SUFFQSxPQUFPSCxLQUFLO0VBQ2QsQ0FBQyxDQUFDO0FBQ0oifQ==
;