function QuickEmoteMenu() { } QuickEmoteMenu.prototype.init = function() { this.initialized = true; $(document).on("mousedown", function(e) { if (e.target.id != "rmenu") $("#rmenu").remove(); }); this.favoriteEmotes = {}; var fe = DataStore.getBDData("bdfavemotes"); if (fe !== "" && fe !== null) { this.favoriteEmotes = JSON.parse(atob(fe)); } var qmeHeader = ""; qmeHeader += "
"; qmeHeader += " "; qmeHeader += " "; qmeHeader += "
"; this.qmeHeader = qmeHeader; var teContainer = ""; teContainer += "
"; teContainer += "
"; teContainer += "
"; teContainer += "
"; var url = ""; for (let emote in window.bdEmotes.TwitchGlobal) { if (window.bdEmotes.TwitchGlobal.hasOwnProperty(emote)) { url = window.bdEmotes.TwitchGlobal[emote]; teContainer += "
"; teContainer += " \"\""; teContainer += " "; teContainer += "
"; } } teContainer += "
"; teContainer += "
"; teContainer += "
"; teContainer += "
"; this.teContainer = teContainer; var faContainer = ""; faContainer += "
"; faContainer += "
"; faContainer += "
"; faContainer += "
"; for (let emote in this.favoriteEmotes) { url = this.favoriteEmotes[emote]; faContainer += "
"; faContainer += " \"\""; faContainer += " "; faContainer += "
"; } faContainer += "
"; faContainer += "
"; faContainer += "
"; faContainer += "
"; this.faContainer = faContainer; }; QuickEmoteMenu.prototype.favContext = function(e, em) { e.stopPropagation(); var menu = $("
", {"id": "removemenu", "data-emoteid": $(em).prop("title"), "text": "Remove", "class": "bd-context-menu context-menu theme-dark"}); menu.css({ top: e.pageY - $("#bda-qem-favourite-container").offset().top, left: e.pageX - $("#bda-qem-favourite-container").offset().left }); $(em).parent().append(menu); menu.on("click", function(e) { e.preventDefault(); e.stopPropagation(); $(this).remove(); delete quickEmoteMenu.favoriteEmotes[$(this).data("emoteid")]; quickEmoteMenu.updateFavorites(); return false; }); return false; }; QuickEmoteMenu.prototype.switchHandler = function(e) { this.switchQem($(e).attr("id")); }; QuickEmoteMenu.prototype.switchQem = function(id) { var twitch = $("#bda-qem-twitch"); var fav = $("#bda-qem-favourite"); var emojis = $("#bda-qem-emojis"); twitch.removeClass("active"); fav.removeClass("active"); emojis.removeClass("active"); $(".emojiPicker-3m1S-j").hide(); $("#bda-qem-favourite-container").hide(); $("#bda-qem-twitch-container").hide(); switch (id) { case "bda-qem-twitch": twitch.addClass("active"); $("#bda-qem-twitch-container").show(); break; case "bda-qem-favourite": fav.addClass("active"); $("#bda-qem-favourite-container").show(); break; case "bda-qem-emojis": emojis.addClass("active"); $(".emojiPicker-3m1S-j").show(); $(".emojiPicker-3m1S-j .search-bar-inner input, .emojiPicker-3m1S-j .search-bar-inner input").focus(); break; } this.lastTab = id; var emoteIcon = $(".emote-icon"); emoteIcon.off(); emoteIcon.on("click", function () { var emote = $(this).attr("title"); var ta = Utils.getTextArea(); Utils.insertText(ta[0], ta.val().slice(-1) == " " ? ta.val() + emote : ta.val() + " " + emote); }); }; QuickEmoteMenu.prototype.obsCallback = function (elem) { if (!this.initialized) return; var e = $(elem); if (!settingsCookie["bda-es-9"]) { e.addClass("bda-qme-hidden"); } else { e.removeClass("bda-qme-hidden"); } if (!settingsCookie["bda-es-0"]) return; e.prepend(this.qmeHeader); e.append(this.teContainer); e.append(this.faContainer); if (this.lastTab == undefined) { this.lastTab = "bda-qem-emojis"; } this.switchQem(this.lastTab); }; QuickEmoteMenu.prototype.favorite = function (name, url) { if (!this.favoriteEmotes.hasOwnProperty(name)) { this.favoriteEmotes[name] = url; } this.updateFavorites(); }; QuickEmoteMenu.prototype.updateFavorites = function () { var faContainer = ""; faContainer += "
"; faContainer += "
"; faContainer += "
"; faContainer += "
"; for (var emote in this.favoriteEmotes) { var url = this.favoriteEmotes[emote]; faContainer += "
"; faContainer += " \"\""; faContainer += " "; faContainer += "
"; } faContainer += "
"; faContainer += "
"; faContainer += "
"; faContainer += "
"; this.faContainer = faContainer; $("#bda-qem-favourite-container").replaceWith(faContainer); DataStore.setBDData("bdfavemotes", btoa(JSON.stringify(this.favoriteEmotes))); };