UNPKG

vue3-translate-select

Version:

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

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