UNPKG

@google-translate-select/vue3

Version:

🚀 The package offer vue3 library for @google-translate-select!

162 lines (161 loc) • 5.18 kB
import { defineComponent as K, ref as l, computed as v, unref as a, onMounted as W, onBeforeUnmount as Q } from "vue"; import { createNamespace as X, useMutationObserver as _, createStyleTag as Y, createGoogleTranslateJsonpCallback as Z, createScriptTag as ee, removeIcon as te, isString as ne, GoogleTranslateFireEvent as ae, getCookie as oe } from "./index8.mjs"; import { GOOGLE_TRANSLATE_STOP_TRANSLATE_CLASSNAME as le, GOOGLE_TRANSLATE_ORIGINAL_DOM_ID as ue, GOOGLE_TRANSLATE_JSSDK_URL as ge, GOOGLE_TRANSLATE_ORIGINAL_SELECT_CLASSNAME as b, GOOGLE_TRANSLATE_COOKIE_NAME as se } from "./index7.mjs"; import "./index9.mjs"; import { googleTranslateProps as re } from "./index3.mjs"; const f = X("select"), me = K({ name: f.n, inheritAttrs: !1, props: re, emits: ["select"], setup(o, { emit: N, attrs: k }) { const s = l(null), r = l(!1), i = l(""), w = l(""), c = l(-1), C = l(""), L = l(null), g = l({}), d = l( {} ), I = v(() => [f.b(), le, k.class]), y = v( () => o.languages && o.languages.length ), R = v(() => E()); function E() { const e = o.languages.find( (t) => t.code === a(i) ); return e || o.languages.find( (n) => n.code === o.defaultLanguageCode ); } function B() { return Y( "body { top: 0 !important; } .skiptranslate { display: none !important; }" ); } function D() { const e = o.defaultPageLanguageCode, { jsonpCallbackName: t } = Z( { pageLanguage: e }, J ); C.value = t; } function p() { return ee( `${ge}?cb=${a(C)}` ); } function M() { B(), D(), L.value = p(); } function H() { g.value = _( document.querySelector(b), (e) => { e.forEach((t) => { t.addedNodes[0] && t.addedNodes[0].value && i.value === t.addedNodes[0].value && h( t.addedNodes[0].value ); }); }, { childList: !0, subtree: !0 } ), a(g).start(); } function V() { d.value = _( document.querySelector("html"), (e) => { e.forEach((t) => { if (t.attributeName === "lang") { const n = t.target.getAttribute( "lang" ), u = t.oldValue; u !== n && u && u !== "auto" && n === "auto" && m(a(i)); } }), te(); }, { attributes: !0, attributeOldValue: !0 } ), a(d).start(); } function h(e) { if (!e) return; const t = ne(e) ? e : e.value ?? "", n = document.querySelector( b ), u = document.querySelector(`.${f.b()}`); !u || !n || u.innerHTML.length === 0 || n.options.length === 0 ? H() : (n.value = t, ae(n, "change"), a(g) && a(g).stop()); } function q(e) { return o.languages.find((n) => n.code === e) ? e : "en"; } function x() { const e = window.navigator.language || document.documentElement.lang || "en"; return ["zh-CN", "zh-TW"].every((n) => n !== e) && e.indexOf("-") > -1 ? e.split("-")[0] : e; } function F() { const e = oe(se); if (e) { const t = e.split("/"); return t[2] ? t[2] : "en"; } else return ""; } function J() { const e = o.fetchBrowserLanguage, t = e ? q(x()) : "", n = F(), u = !!n, T = () => o.defaultLanguageCode ? o.defaultLanguageCode : "en", $ = () => o.languages.find( (S) => S.code === t ) ? t : T(), j = () => o.languages.find( (S) => S.code === n ) ? n : T(); let O = T(); u ? O = j() : e && (O = $()), m(O); } function m(e) { h(e), i.value = e, N("select", E()); } function A() { clearTimeout(a(c)), c.value = -1; } function P(e) { o.trigger === "hover" && (A(), c.value = window.setTimeout(() => { var n; const t = e.target; a(s) && ((n = a(s)) != null && n.contains(t)) && (r.value = !0); }, 0)); } function U() { o.trigger === "hover" && (A(), c.value = window.setTimeout(() => { r.value = !1; }, o.animateTimeout)); } function G(e) { var n; const t = e.target; a(s) && ((n = a(s)) != null && n.contains(t)) ? r.value = !0 : r.value = !1; } return W(() => { M(), V(), o.trigger === "click" && document.addEventListener("click", G); }), Q(() => { var e, t, n; (e = a(g)) != null && e.stop && a(g).stop(), (t = a(d)) != null && t.stop && a(d).stop(), (n = a(L)) != null && n.unload && a(L).unload(), o.trigger === "click" && document.removeEventListener("click", G); }), { ns: f, googleTranslateSelectEl: s, visible: r, selectedLanguageCode: i, hoveredLanguageCode: w, getClass: I, hasLanguages: y, selectedLanguageOption: R, handleTranslate: m, handleDropdownShowByHover: P, handleDropdownHideByHover: U, GOOGLE_TRANSLATE_ORIGINAL_DOM_ID: ue }; } }); export { me as default }; //# sourceMappingURL=index5.mjs.map