UNPKG

@google-translate-select/vue3

Version:

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

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