344.f95e66f8.js 11 KB

1
  1. "use strict";(self["webpackChunk_zoom_client_email_desktop"]=self["webpackChunk_zoom_client_email_desktop"]||[]).push([[344],{23344:function(t,e,a){a.r(e),a.d(e,{default:function(){return x}});var n=function(){var t=this,e=t._self._c;return e("zm-popover",{ref:"popover",attrs:{"popper-class":"translate-popover-wrap",trigger:"manual",width:"480"},model:{value:t.showTranslatePopover,callback:function(e){t.showTranslatePopover=e},expression:"showTranslatePopover"}},[e("div",{ref:"translatePopoverContentWrap",staticClass:"translate-popover-content-wrap"},[e("i",{staticClass:"translate-popover-close zm-icon-close tab-focus",attrs:{role:"button","aria-label":t.$t("detail.cancelTranslate"),tabindex:"0"},on:{click:t.hideTranslationPopover,keydown:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.hideTranslationPopover.apply(null,arguments)}}}),t.isZmail?t._e():e("div",{staticClass:"translate-popover-toolbar"},[t.isLoading?e("i",{staticClass:"zm-icon-loading small translation-loading-icon"}):e("svg-icon",{staticClass:"translation-icon",attrs:{iconClass:"translation"}}),e("span",{class:["translate-to-tip",t.isLoading?"translating":""]},[t._v(" "+t._s(t.isLoading?t.$t("operation.translating"):t.$t("detail.translateTo"))+" ")]),e("zm-select",{ref:"selectTranslationLang",attrs:{label:t.$t("detail.translateTo"),"list-label":t.$t("detail.translateTo")},on:{change:t.handleSelectTranslationLang},model:{value:t.desTranslationLang,callback:function(e){t.desTranslationLang=e},expression:"desTranslationLang"}},t._l(t.supportedTranslationLangMapList,(function(t){return e("zm-option",{key:t.value,attrs:{label:t.name,value:t.value}})})),1),e("zm-button",{directives:[{name:"show",rawName:"v-show",value:!!t.translateErrorText,expression:"!!translateErrorText"}],attrs:{size:"mini",type:"primary",ghost:"","aria-label":t.$t("detail.translateRetry"),tabindex:"0"},on:{click:t.handleRetry}},[t._v(" "+t._s(t.$t("detail.translateRetry"))+" ")])],1),e("div",{class:["translate-popover-content tab-focus",{error:!!t.translateErrorText}],attrs:{tabindex:"0",role:"text"}},[e("div",{directives:[{name:"show",rawName:"v-show",value:!!t.translateErrorText||!!t.translateResultText,expression:"!!translateErrorText || !!translateResultText"}],attrs:{dir:t.dir}},[t._v(" "+t._s(t.translateErrorText||t.translateResultText)+" ")]),e("div",{directives:[{name:"show",rawName:"v-show",value:t.isLoading,expression:"isLoading"}]},[e("zm-skeleton",{attrs:{role:"figure","aria-label":t.$t("common.loading")}})],1)]),!t.isZmail&&t.msgId?e("div",{staticClass:"full-mail-translate-tips"},[e("div",{staticClass:"full-mail-translate"},[e("zm-button",{on:{click:t.translateFullMail}},[t._v(t._s(t.$t("detail.translateFullMessage"))+" ")])],1)]):t._e()]),e("div",{ref:"translatePopoverRef",staticClass:"translate-popover-anchor",style:{top:t.translatePopoverPosY+"px",left:t.translatePopoverPosX+"px"},attrs:{slot:"reference"},slot:"reference"})])},o=[],r=a(70021),l=a(56706),i=a(34948),s=(a(71372),a(29648)),d=a(63012),u=a(10100),c=a(85061),v=a(87693),p=4096,h={name:"TranslatePopover",components:{},mixins:[],props:{wrapRef:{default:function(){return null}},iframeRef:{default:function(){return null}},mailId:{type:String,default:function(){return""}},msgId:{type:String,default:function(){return""}}},data:function(){return{showTranslatePopover:!1,supportedTranslationLangs:[],desTranslationLang:"",selectedTextForTranslation:"",translateResultText:"",translateErrorText:"",translatePopoverPosX:0,translatePopoverPosY:0,contextMenuShowOnSubject:!1}},computed:(0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)({},(0,s.Se)(["isGmail","isZmail","isOutlook"])),(0,s.Se)("mail",["supportedTranslationLangMapList","getTranslatedLangDir"])),(0,s.rn)("mail",["defaultTranslationLang"])),(0,s.rn)(["selectMailLabel"])),{},{isWindows:function(){return Boolean((0,v.Y2)(window)||(0,v.pT)(window))},dir:function(t){var e=t.getTranslatedLangDir,a=t.defaultTranslationLang;return e(a)},isLoading:function(){return!this.translateErrorText&&!this.translateResultText}}),watch:{showTranslatePopover:function(t){t?this.desTranslationLang=this.defaultTranslationLang:(this.translatePopoverPosX=-9999,this.translatePopoverPosY=-9999)}},deactivated:function(){this.hideTranslationPopover()},created:function(){this.desTranslationLang=this.defaultTranslationLang},mounted:function(){this.$Bus.$on("onNativeContextMenuTranslate",this.handleContextMenuTranslateAction),this.$Bus.$on("outerClicked",this.handleTranslationPopoverClickOutside),document.addEventListener("contextmenu",this.handleContextMenu)},beforeDestroy:function(){this.$Bus.$off("onNativeContextMenuTranslate",this.handleContextMenuTranslateAction),this.$Bus.$off("outerClicked",this.handleTranslationPopoverClickOutside),document.removeEventListener("contextmenu",this.handleContextMenu)},methods:(0,i.Z)((0,i.Z)({},(0,s.OI)("mail",["setDefaultTranslationLang","setClientSupportedLanguage"])),{},{handleTranslationPopoverClickOutside:function(t){var e,a,n=null===(e=this.$refs)||void 0===e||null===(a=e.popover)||void 0===a?void 0:a.$refs.popper;if(null===n||void 0===n||!n.contains(t.target)){var o,r=this.iframeRef;null===r||void 0===r||null===(o=r.contentWindow)||void 0===o||o.getSelection().empty(),this.hideTranslationPopover(),this.contextMenuShowOnSubject=!1}},handleContextMenu:function(t){var e,a;((null===(e=t.target.className)||void 0===e?void 0:e.indexOf("subject-detail"))>=0||(null===(a=t.target.className)||void 0===a?void 0:a.indexOf("subject-content"))>=0)&&!this.iframeRef?this.contextMenuShowOnSubject=!0:this.contextMenuShowOnSubject=!1},checkTranslationPopoverPos:function(t){var e,a=this.iframeRef;if(t&&a){var n=a.getBoundingClientRect();return n.x-50<=t.x&&t.x<=n.x+n.width+50&&n.y-50<=t.y&&t.y<=n.y+n.height+50}return!(!t||!this.contextMenuShowOnSubject)||(t&&!this.contextMenuShowOnSubject&&(null===(e=document.getSelection())||void 0===e||e.empty()),!1)},showTranslationPopover:function(){var t=this,e=this.wrapRef,a=this.iframeRef;setTimeout((function(){var n=e.getBoundingClientRect();if(a){var o,r=a.getBoundingClientRect(),l=null===a||void 0===a||null===(o=a.contentWindow)||void 0===o?void 0:o.getSelection().getRangeAt(0),i=null===l||void 0===l?void 0:l.getBoundingClientRect(),s=t.calculatePopoverPosition(r,n,i),d=s.x,u=s.y;t.translatePopoverPosX=d,t.translatePopoverPosY=u}else{var c,v=document.getSelection().getRangeAt(0),p=null===v||void 0===v?void 0:v.getBoundingClientRect();p.x>=0&&p.y>=0?t.translatePopoverPosX=p.x-n.x+p.width/2:t.translatePopoverPosX=n.width/2,t.translatePopoverPosY=n.height/2,null===(c=document.getSelection())||void 0===c||c.empty()}t.showTranslatePopover=!0}),0)},calculatePopoverPosition:function(t,e,a){var n={x:-9999,y:-9999};return t.width>=a.x+a.width?a.x+a.width/2<0?n.x=10:n.x=t.x-e.x+a.x+a.width/2:(n.x=t.x+t.width-490,console.warn("too right, move to right border"+n.x)),n.y=t.y-e.y+a.y+a.height,n},hideTranslationPopover:function(){this.showTranslatePopover=!1},getErrorMsgFromCode:function(t){switch(t){case u.MailErrorCode.Mail_Translate_Failed:return this.$t("detail.translateFailed");case u.MailErrorCode.Mail_Translate_Failed_For_Empty_Input:return this.$t("detail.mailTranslateFailedForEmptyInput");case u.MailErrorCode.Mail_Translate_Failed_For_Sentence_Too_Long:return this.$t("detail.mailTranslateFailedForSentenceTooLong");case u.MailErrorCode.Mail_Translate_Failed_For_Invalid_Deslanguage:return this.$t("detail.mailTranslateFailedForInvalidDesLanguage");case u.MailErrorCode.Mail_Translate_Failed_For_Same_Lang:return this.$t("detail.mailTranslateFailedForSameLang");default:return this.$t("detail.translateFailed")}},doTranslate:function(t){var e=this;return(0,l.Z)((0,r.Z)().mark((function a(){var n,o,l,i,s,v,h,g,T,f,x;return(0,r.Z)().wrap((function(a){while(1)switch(a.prev=a.next){case 0:if(console.log("doTranslate",t,e.defaultTranslationLang),!((0,c.oB)(t)>p)){a.next=5;break}return e.translateErrorText=e.getErrorMsgFromCode(u.MailErrorCode.Mail_Translate_Failed_For_Sentence_Too_Long),e.translateResultText="",a.abrupt("return");case 5:return a.prev=5,e.translateErrorText="",e.translateResultText="",a.next=10,d.Mail.translateMessages({threadId:e.mailId,msgId:e.msgId,srcLanguage:"",desLanguage:e.defaultTranslationLang,labelId:e.selectMailLabel.id,data:[{index:0,src:t}]});case 10:if(v=a.sent,console.log("translateResult",v),t===e.selectedTextForTranslation){a.next=15;break}return console.log("no need to show"),a.abrupt("return");case 15:if(0!==(null===v||void 0===v?void 0:v.errorCode)||null===v||void 0===v||null===(n=v.data)||void 0===n||null===(o=n.translateMessage)||void 0===o||!o.success||null===v||void 0===v||null===(l=v.data)||void 0===l||null===(i=l.translateMessage)||void 0===i||null===(s=i.data)||void 0===s||!s.length){a.next=20;break}e.translateResultText=null===v||void 0===v||null===(h=v.data)||void 0===h||null===(g=h.translateMessage)||void 0===g?void 0:g.data[0].des,e.translateErrorText="",a.next=26;break;case 20:if(0===(null===v||void 0===v?void 0:v.errorCode)){a.next=25;break}e.translateErrorText="".concat(e.getErrorMsgFromCode(null===v||void 0===v?void 0:v.errorCode)," (code: ").concat(null===v||void 0===v||null===(T=v.error)||void 0===T?void 0:T.originalCode," ").concat(null!==v&&void 0!==v&&null!==(f=v.error)&&void 0!==f&&f.errorMsg?","+(null===v||void 0===v||null===(x=v.error)||void 0===x?void 0:x.errorMsg):"",")"),e.translateResultText="",a.next=26;break;case 25:throw new Error("translate failed");case 26:a.next=33;break;case 28:a.prev=28,a.t0=a["catch"](5),console.log("translate error",a.t0),e.translateErrorText=e.$t("detail.translateFailed"),e.translateResultText="";case 33:return a.prev=33,e.$nextTick((function(){e.$refs.popover.updatePopper()})),a.finish(33);case 36:case"end":return a.stop()}}),a,null,[[5,28,33,36]])})))()},handleContextMenuTranslateAction:function(t){var e=this;return(0,l.Z)((0,r.Z)().mark((function a(){var n,o,l,s,d;return(0,r.Z)().wrap((function(a){while(1)switch(a.prev=a.next){case 0:if(console.log("handleContextMenuTranslateAction ====== ",t),o=t,e.isWindows&&(o=(0,i.Z)((0,i.Z)({},t),{},{x:o.x/window.devicePixelRatio,y:o.y/window.devicePixelRatio}),console.log("update menu pos for Windows",o)),e.hideTranslationPopover(),l=e.iframeRef,s=null===l||void 0===l||null===(n=l.contentWindow)||void 0===n?void 0:n.getSelection().toString(),s=l?null===l||void 0===l||null===(d=l.contentWindow)||void 0===d?void 0:d.getSelection().toString():document.getSelection().toString(),!s){a.next=18;break}if(e.selectedTextForTranslation=s,e.checkTranslationPopoverPos(o)){a.next=11;break}return a.abrupt("return");case 11:if(e.showTranslationPopover(o),!e.isZmail){a.next=16;break}return e.translateErrorText="This feature is not supported for ZMail",e.translateResultText="",a.abrupt("return");case 16:return a.next=18,e.doTranslate(s);case 18:case"end":return a.stop()}}),a)})))()},handleSelectTranslationLang:function(t){console.log("handleSelectTranslationLang = ",t,this.defaultTranslationLang),this.desTranslationLang=t,this.setDefaultTranslationLang(t),this.doTranslate(this.selectedTextForTranslation)},handleRetry:function(){this.doTranslate(this.selectedTextForTranslation)},translateFullMail:function(){this.hideTranslationPopover(),this.$emit("translate",this.desTranslationLang)}})},g=h,T=a(93483),f=(0,T.Z)(g,n,o,!1,null,"4201c326",null),x=f.exports}}]);