vue-autolink
Version:
Auto-link url and images in Vue components
64 lines (56 loc) • 1.51 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _autolink = require('autolink.js');
var _autolink2 = _interopRequireDefault(_autolink);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function defaultFalse(val) {
if (typeof val === 'undefined') {
return false;
}
if (val === false || val == 'false') {
return false;
}
return true;
}
function defaultTrue(val) {
if (typeof val === 'undefined') {
return true;
}
if (val === false || val == 'false') {
return false;
}
return true;
}
function parseEmbed(opts, embed) {
if (typeof embed !== 'undefined') {
if (embed === 'false') {
opts.embed = false;
} else {
if (embed.length === 0 || embed === 'true') {
opts.embed = true;
} else {
embed.split(',').forEach(function (e) {
opts[e.trim()] = true;
});
}
}
}
return opts;
}
exports.default = {
props: ['class', 'style', 'content', 'embed', 'image', 'link-attr', 'image-attr', 'safe'],
template: '<div :class="class" :style="style">{{{ content | autolink }}}</div>',
filters: {
autolink: function autolink(val) {
var opts = {};
opts.image = defaultTrue(this.image);
opts = parseEmbed(opts, this.embed);
opts.linkAttr = this.linkAttr;
opts.imageAttr = this.imageAttr;
opts.safe = defaultFalse(this.safe);
return (0, _autolink2.default)(val, opts);
}
}
};