ca-web-components
Version:
web components for Clínica Alemana
29 lines (27 loc) • 2.45 kB
JavaScript
var n=Object.defineProperty;var h=(e,t,i)=>t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i;var o=(e,t,i)=>h(e,typeof t!="symbol"?t+"":t,i);import{i as l,r as c,x as a}from"../assets/unsafe-html-DS3AO1W7.js";const p=l`
:host {
display: flex;
}
button {
cursor: pointer;
margin: 0.5em;
padding: 1rem;
display: flex;
align-items: center;
gap: 8px;
border-radius: 8px;
border-color: transparent;
}
@media (max-width: 768px) {
:host {
flex-direction: column;
}
}
`;class s extends c{constructor(){super(),this.shareFacebook=this.shareFacebook.bind(this),this.shareTwitter=this.shareTwitter.bind(this),this.shareWhatsApp=this.shareWhatsApp.bind(this),this.shareTelegram=this.shareTelegram.bind(this),this.shareEmail=this.shareEmail.bind(this),this.platforms=[{title:"WhatsApp",icon:"flat-whatsapp",share:this.shareWhatsApp},{title:"Twitter",icon:"flat-twitter",share:this.shareTwitter},{title:"Facebook",icon:"flat-facebook",share:this.shareFacebook},{title:"Telegram",icon:"flat-telegram",share:this.shareTelegram},{title:"Correo",icon:"flat-mail",share:this.shareEmail}]}static get properties(){return{title:{type:String}}}render(){return a`
${this.platforms.map(({title:t,icon:i,share:r})=>a`
<button @click=${()=>r()}>
<cas-icon name=${i}></cas-icon>
${t}
</button>`)}
<button @click=${this.copyToClipboard}>Copiar link</button>
`}shareFacebook(){const t=`https://www.facebook.com/sharer/sharer.php?u=${encodeURIComponent(window.location.href)}`;window.open(t,"_blank","width=550,height=420")}shareTwitter(){const t=`https://twitter.com/intent/tweet?text=${encodeURIComponent(`${this.title} ${window.location.href}`)}`;window.open(t,"_blank","width=550,height=420")}shareWhatsApp(){const t=`https://wa.me/?text=${encodeURIComponent(`${this.title} ${window.location.href}`)}`;window.open(t,"_blank","width=550,height=420")}shareTelegram(){const t=`https://t.me/share/url?text=${encodeURIComponent(`${this.title} ${window.location.href}`)}`;window.open(t,"_blank","width=550,height=420")}shareEmail(){const t=`mailto:?subject=${encodeURIComponent(this.title)}&body=${encodeURIComponent(window.location.href)}`;window.open(t,"_blank")}copyToClipboard(){navigator.clipboard.writeText(window.location.href)}}o(s,"styles",p);customElements.define("ca-share",s);