UNPKG

@ithaka/bonsai

Version:
51 lines (46 loc) 1.55 kB
import { BonsaiEmail } from "./bonsai.email"; import { BonsaiFacebook } from "./bonsai.facebook"; import { BonsaiTumblr } from "./bonsai.tumblr"; import { BonsaiTwitter } from "./bonsai.twitter"; /** Social sharing module that initializes component based on elements with data-social-sharing attribute * @class * @name BonsaiSocialSharing * * @example * new BonsaiSocialSharing(); * * */ class BonsaiSocialSharing { constructor() { this.$socialElements = $("[data-social-sharing]"); this._initialize(); } /** * Create buttons and add them to social container * * @private */ _initialize() { this.$socialElements.each(($index, socialElement) => { const mediaTypes = $(socialElement).data("mediaTypes") || ["facebook", "twitter", "tumblr", "email"]; mediaTypes.forEach((mediaType) => { switch(mediaType) { case "facebook": new BonsaiFacebook(socialElement).addButton(); break; case "twitter": new BonsaiTwitter(socialElement).addButton(); break; case "tumblr": new BonsaiTumblr(socialElement).addButton(); break; case "email": new BonsaiEmail(socialElement).addButton(); break; } }); }); } } export { BonsaiSocialSharing };