"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule=!0,exports.generateWatermark=generateWatermark;var systemInfo,_extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends")),_common=require("../../utils/common"),H5_PAGE="h5Page",MEETING_DETAIL="meetingDetail",DOC_PREVIEW="docPreview",targetPageArr=[H5_PAGE,MEETING_DETAIL,DOC_PREVIEW],isMiniProgram=!(0,_common.isUndef)(typeof my)&&null!==my&&!(0,_common.isUndef)(typeof my.alert);isMiniProgram&&(systemInfo=my.getSystemInfoSync());var userAgent=isMiniProgram?systemInfo.platform:navigator.userAgent,screenWidth=isMiniProgram?systemInfo.screenWidth:window.screen.width,pixelRatio=(isMiniProgram?systemInfo.pixelRatio:window.devicePixelRatio)||2,emptyWatermark=isMiniProgram?Promise.resolve(""):"",WaterMark=function(){function t(t){void 0===t&&(t={}),this.options=(0,_extends2.default)({texts:[""],width:50,height:50,textRotate:-10,textColor:"#000000",textFont:"PingFangSC-Regular,system-ui,sans-serif",fontStyle:"normal",opacity:90,canvas:[],fontSize:14},t),this.options.width*=this.options.fontSize/12,this.options.height*=this.options.fontSize/12,this.options.deg=this.options.textRotate*Math.PI/180,this.options.cosDeg=Math.cos(this.options.deg),this.options.absSinDeg=Math.abs(Math.sin(this.options.deg))}var e=t.prototype;return e.init=function(){var t=this,e=null,i=null;isMiniProgram?i=my.createCanvasContext("canvasBg"):(e=this.createCanvas(),i=e.getContext("2d")),this.calcTextSize();var n=this.options,a=n.allItemsWidth,r=n.drawItems,o=n.height,s=n.containerComp,h=Math.ceil(screenWidth/a),l=new Array(h).fill(r).reduce((function(t,e){return t.concat(e)}),[]),m=function(){t.setCanvasStyle(i),t.drawText(i,l),i.translate(0,o),t.drawText(i,l.reverse(),!0)};if(isMiniProgram)return new Promise((function(t){s.setState({width:a*h,height:2*o},(function(){setTimeout((function(){m(),i.draw(),t(i.toDataURL("image/png"))}),0)}))}));e.width=a*h,e.height=2*o,e.style.display="none",m();var c=e.toDataURL("image/png");return this.destroy(),c},e.calcTextSize=function(){var t=0,e=0,i=this.options;i.drawItems=[].map.call(i.texts,(function(n){var a,r,o,s;if(isMiniProgram){for(var h=0,l=0;l'+n+"",(s=document.createElement("div")).innerHTML=o.trim(),s.firstChild);document.body.appendChild(m),a=m.offsetWidth,r=m.offsetHeight,document.body.removeChild(m)}return t=Math.max(t,a),i.fontHeight||(i.fontHeight=r),e+=Math.ceil(i.cosDeg*(i.widthi.width&&(i.width=t);var n=t*i.absSinDeg+i.fontHeight*i.cosDeg;n>i.height&&(i.height=n),i.maxItemWidth=t,i.allItemsWidth=e},e.setCanvasStyle=function(t){var e=this.options,i=e.deg,n=e.absSinDeg,a=e.height,r=e.fontHeight,o=e.fontStyle,s=e.fontSize,h=e.textFont,l=e.textColor,m=e.opacity;t.rotate(i);var c=n*(a-r);t.translate(-c,0),t.font=o+" "+s+"px "+h,t.fillStyle=l,t.textAlign="left",t.textBaseline="bottom",t.globalAlpha=m},e.drawText=function(t,e,i){void 0===i&&(i=!1);var n=this.options,a=n.maxItemWidth,r=n.width,o=n.height,s=n.deg,h=n.cosDeg,l=n.absSinDeg;e.forEach((function(e,n){var m=h*(a-e.width)/2,c=r*h*n,f=Math.abs(c*Math.tan(s))+o;t.fillText(e.txt,c+(i?h*(r-e.width)/2:m),f+(i?l*(r-e.width)/2:0))}))},e.createCanvas=function(){var t=document.createElement("canvas");return this.options.canvas.push(t),t},e.destroy=function(){this.options.canvas.forEach((function(t){t.remove(),t=null}))},t}();function drawWatermark(t,e){var i=JSON.parse(t),n=i.watermark||i;if(!n||"0"===String(n.watermarkStatus))return emptyWatermark;if(!Array.isArray(n.targetPages)||!n.targetPages.some((function(t){return t.name===e&&"1"===String(t.value)})))return emptyWatermark;var a=[];if(Array.isArray(n.contentType)){var r="";n.contentType.includes(1)&&(r+=n.userName+" "),n.contentType.includes(2)&&(r+=(n.account||"").slice(-4)),r&&a.push(r),n.contentType.includes(0)&&n.contentCustom&&a.push(n.contentCustom)}if(!a.length)return emptyWatermark;var o,s,h=/Android|Adr|SymbianOS|Windows\s*Phone|Mobile/.test(userAgent),l=/iPhone|iPad|iPod|Mac\s*OS.*Mobile|iOS/.test(userAgent),m="0"===String(n.watermarkShowDensity);l?m?(o=114,s=66):(o=86,s=45):h?m?(o=47*pixelRatio,s=40*pixelRatio):(o=25*pixelRatio,s=25*pixelRatio):m?(o=300,s=126):(o=194,s=106);return new WaterMark({containerComp:this,texts:a,width:o,height:s,textRotate:-10,textColor:{0:"#FF0000",1:"#000000",2:"#0000FF"}[n.fontColor]||"#000000",textFont:"PingFangSC-Regular,system-ui,sans-serif",fontStyle:"0"===String(n.fontStyle)?"normal":"bold",opacity:(120-parseInt(n.fontDiaphaneity,10))/100,fontSize:{0:12,1:16,2:28}[n.fontSize]||16}).init()}function generateWatermark(t,e){if(void 0===t&&(t={}),void 0===e&&(e=H5_PAGE),!targetPageArr.includes(e))throw new Error("第二个可选参数,仅能为“h5Page”或“meetingDetail”");try{return drawWatermark.call(this,JSON.stringify(t),e)}catch(t){throw t}}