export class LiveChatService { static instance = null; initialized = false; constructor() { this.initLiveChat(); } static getInstance() { if (!LiveChatService.instance) { LiveChatService.instance = new LiveChatService(); } return LiveChatService.instance; } initLiveChat() { if (this.initialized) return; // #ifdef H5 window.__lc = window.__lc || {}; window.__lc.license = 18945964; (function (n, t, c) { function i(n) { return e._h ? e._h.apply(null, n) : e._q.push(n); } var e = { _q: [], _h: null, _v: "2.0", on: function () { i(["on", c.call(arguments)]); }, once: function () { i(["once", c.call(arguments)]); }, off: function () { i(["off", c.call(arguments)]); }, get: function () { if (!e._h) throw new Error("[LiveChatWidget] You can't use getters before load."); return i(["get", c.call(arguments)]); }, call: function () { i(["call", c.call(arguments)]); }, init: function () { var n = t.createElement("script"); n.async = !0; n.type = "text/javascript"; n.src = "https://cdn.livechatinc.com/tracking.js"; t.head.appendChild(n); }, }; !n.__lc.asyncInit && e.init(); n.LiveChatWidget = n.LiveChatWidget || e; })(window, document, [].slice); // #endif this.initialized = true; } setLanguage(lang) { // #ifdef H5 if (window.LiveChatWidget) { if (lang === 'cn') { window.LiveChatWidget.call('set_language', 'zh_CN'); } else { window.LiveChatWidget.call('set_language', 'en'); } } // #endif } adjustPosition(footerHeight) { // #ifdef H5 if (window.innerWidth > 768) { const launcher = document.getElementById('chat-widget-launcher'); const widget = document.getElementById('chat-widget-container'); if (launcher) { launcher.style.bottom = `${footerHeight}px`; } if (widget) { widget.style.bottom = `${footerHeight}px`; } } // #endif } } export default LiveChatService.getInstance();