UNPKG

vue-autolink

Version:

Auto-link url and images in Vue components

64 lines (56 loc) 1.51 kB
'use strict'; 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); } } };