UNPKG

vue-socials

Version:

Social media share buttons and counts for Vue.js

77 lines (69 loc) 2.28 kB
import { defineComponent, h } from 'vue'; import getSerialisedParams from '../../utils/getSerialisedParams.js'; import getSeparatedList from '../../utils/getSeparatedList.js'; /** * Hey! * * SEmail component used for sending Email via an HTML link * @example mailto:google@gmail.com?subject=Subject&body=Hello%0AWorld&cc=google1%40gmail.com&bcc=google2%40gmail.com */ /** * Share parameters for link * @link https://tools.ietf.org/html/rfc2368 * @link https://css-tricks.com/snippets/html/mailto-links/ * @description cc – carbon copy * @description bcc – blind carbon copy */ var SEmail = /* #__PURE__ */defineComponent({ name: 'SEmail', props: { /** * Share parameters for Email */ shareOptions: { type: Object, required: true } }, computed: { networkURL: function networkURL() { var BASE_URL = 'mailto:'; var shareOptions = this.shareOptions; var mail = shareOptions.mail, subject = shareOptions.subject, body = shareOptions.body, cc = shareOptions.cc, bcc = shareOptions.bcc; var serialisedParams = getSerialisedParams({ subject: subject, body: body, cc: getSeparatedList(cc, ', '), bcc: getSeparatedList(bcc, ', ') }); return "".concat(BASE_URL).concat(mail).concat(serialisedParams); }, ariaLabel: function ariaLabel() { var shareOptions = this.shareOptions; var mail = shareOptions.mail, cc = shareOptions.cc, bcc = shareOptions.bcc; var LABELS = ["Send an e-mail to ".concat(mail)]; if (cc) { LABELS.push("add a carbon copy for ".concat(getSeparatedList(cc, ', '))); } if (bcc) { LABELS.push("add a blind carbon copy for ".concat(getSeparatedList(bcc, ', '))); } return "".concat(LABELS.join(' and '), "."); } }, render: function render() { var _this$$slots$default, _this$$slots; return h('a', { href: this.networkURL, rel: 'noopener noreferrer', 'aria-label': this.ariaLabel }, (_this$$slots$default = (_this$$slots = this.$slots).default) === null || _this$$slots$default === void 0 ? void 0 : _this$$slots$default.call(_this$$slots)); } }); export default SEmail;