Get the Best IPTV Service
/*! * Cropper.js v1.6.0 * https://fengyuanchen.github.io/cropperjs * * Copyright 2015-present Chen Fengyuan * Released under the MIT license * * Date: 2023-08-26T08:14:27.943Z */ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).Cropper=e()}(this,function(){"use strict";function C(e,t){var i,a=Object.keys(e);return Object.getOwnPropertySymbols&&(i=Object.getOwnPropertySymbols(e),t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,i)),a}function S(a){for(var t=1;tt.length)&&(e=t.length);for(var i=0,a=new Array(e);it.width?3===i?o=t.height*e:h=t.width/e:3===i?h=t.width/e:o=t.height*e,{aspectRatio:e,naturalWidth:n,naturalHeight:a,width:o,height:h});this.canvasData=e,this.limited=1===i||2===i,this.limitCanvas(!0,!0),e.width=Math.min(Math.max(e.width,e.minWidth),e.maxWidth),e.height=Math.min(Math.max(e.height,e.minHeight),e.maxHeight),e.left=(t.width-e.width)/2,e.top=(t.height-e.height)/2,e.oldLeft=e.left,e.oldTop=e.top,this.initialCanvasData=g({},e)},limitCanvas:function(t,e){var i=this.options,a=this.containerData,n=this.canvasData,o=this.cropBoxData,h=i.viewMode,r=n.aspectRatio,s=this.cropped&&o;t&&(t=Number(i.minCanvasWidth)||0,i=Number(i.minCanvasHeight)||0,1=a.width&&(n.minLeft=Math.min(0,r),n.maxLeft=Math.max(0,r)),n.height>=a.height)&&(n.minTop=Math.min(0,t),n.maxTop=Math.max(0,t))):(n.minLeft=-n.width,n.minTop=-n.height,n.maxLeft=a.width,n.maxTop=a.height))},renderCanvas:function(t,e){var i,a,n,o,h=this.canvasData,r=this.imageData;e&&(e={width:r.naturalWidth*Math.abs(r.scaleX||1),height:r.naturalHeight*Math.abs(r.scaleY||1),degree:r.rotate||0},r=e.width,o=e.height,e=e.degree,i=90==(e=Math.abs(e)%180)?{width:o,height:r}:(a=e%90*Math.PI/180,i=Math.sin(a),n=r*(a=Math.cos(a))+o*i,r=r*i+o*a,90h.maxWidth||h.widthh.maxHeight||h.heighte.width?a.height=a.width/i:a.width=a.height*i),this.cropBoxData=a,this.limitCropBox(!0,!0),a.width=Math.min(Math.max(a.width,a.minWidth),a.maxWidth),a.height=Math.min(Math.max(a.height,a.minHeight),a.maxHeight),a.width=Math.max(a.minWidth,a.width*t),a.height=Math.max(a.minHeight,a.height*t),a.left=e.left+(e.width-a.width)/2,a.top=e.top+(e.height-a.height)/2,a.oldLeft=a.left,a.oldTop=a.top,this.initialCropBoxData=g({},a)},limitCropBox:function(t,e){var i,a,n=this.options,o=this.containerData,h=this.canvasData,r=this.cropBoxData,s=this.limited,c=n.aspectRatio;t&&(t=Number(n.minCropBoxWidth)||0,n=Number(n.minCropBoxHeight)||0,i=s?Math.min(o.width,h.width,h.width+h.left,o.width-h.left):o.width,a=s?Math.min(o.height,h.height,h.height+h.top,o.height-h.top):o.height,t=Math.min(t,o.width),n=Math.min(n,o.height),c&&(t&&n?ti.maxWidth||i.widthi.maxHeight||i.height=e.width&&i.height>=e.height?q:I),f(this.cropBox,g({width:i.width,height:i.height},x({translateX:i.left,translateY:i.top}))),this.cropped&&this.limited&&this.limitCanvas(!0,!0),this.disabled||this.output()},output:function(){this.preview(),y(this.element,tt,this.getData())}},i={initPreview:function(){var t=this.element,i=this.crossOrigin,e=this.options.preview,a=i?this.crossOriginUrl:this.url,n=t.alt||"The image to preview",o=document.createElement("img");i&&(o.crossOrigin=i),o.src=a,o.alt=n,this.viewBox.appendChild(o),this.viewBoxImage=o,e&&("string"==typeof(o=e)?o=t.ownerDocument.querySelectorAll(e):e.querySelector&&(o=[e]),z(this.previews=o,function(t){var e=document.createElement("img");w(t,m,{width:t.offsetWidth,height:t.offsetHeight,html:t.innerHTML}),i&&(e.crossOrigin=i),e.src=a,e.alt=n,e.style.cssText='display:block;width:100%;height:auto;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;image-orientation:0deg!important;"',t.innerHTML="",t.appendChild(e)}))},resetPreview:function(){z(this.previews,function(e){var i=Bt(e,m),i=(f(e,{width:i.width,height:i.height}),e.innerHTML=i.html,e),e=m;if(o(i[e]))try{delete i[e]}catch(t){i[e]=void 0}else if(i.dataset)try{delete i.dataset[e]}catch(t){i.dataset[e]=void 0}else i.removeAttribute("data-".concat(Dt(e)))})},preview:function(){var h=this.imageData,t=this.canvasData,e=this.cropBoxData,r=e.width,s=e.height,c=h.width,d=h.height,l=e.left-t.left-h.left,p=e.top-t.top-h.top;this.cropped&&!this.disabled&&(f(this.viewBoxImage,g({width:c,height:d},x(g({translateX:-l,translateY:-p},h)))),z(this.previews,function(t){var e=Bt(t,m),i=e.width,e=e.height,a=i,n=e,o=1;r&&(n=s*(o=i/r)),s&&eMath.abs(a-1)?i:a)&&(t.restore&&(o=this.getCanvasData(),h=this.getCropBoxData()),this.render(),t.restore)&&(this.setCanvasData(z(o,function(t,e){o[e]=t*n})),this.setCropBoxData(z(h,function(t,e){h[e]=t*n}))))},dblclick:function(){var t,e;this.disabled||this.options.dragMode===_||this.setDragMode((t=this.dragBox,e=Q,(t.classList?t.classList.contains(e):-1y&&(D.x=y-f);break;case k:p+D.xx&&(D.y=x-v)}}var i,a,o,n=this.options,h=this.canvasData,r=this.containerData,s=this.cropBoxData,c=this.pointers,d=this.action,l=n.aspectRatio,p=s.left,m=s.top,u=s.width,g=s.height,f=p+u,v=m+g,w=0,b=0,y=r.width,x=r.height,M=!0,C=(!l&&t.shiftKey&&(l=u&&g?u/g:1),this.limited&&(w=s.minLeft,b=s.minTop,y=w+Math.min(r.width,h.width,h.left+h.width),x=b+Math.min(r.height,h.height,h.top+h.height)),c[Object.keys(c)[0]]),D={x:C.endX-C.startX,y:C.endY-C.startY};switch(d){case I:p+=D.x,m+=D.y;break;case B:0<=D.x&&(y<=f||l&&(m<=b||x<=v))?M=!1:(e(B),(u+=D.x)<0&&(d=k,p-=u=-u),l&&(m+=(s.height-(g=u/l))/2));break;case T:D.y<=0&&(m<=b||l&&(p<=w||y<=f))?M=!1:(e(T),g-=D.y,m+=D.y,g<0&&(d=O,m-=g=-g),l&&(p+=(s.width-(u=g*l))/2));break;case k:D.x<=0&&(p<=w||l&&(m<=b||x<=v))?M=!1:(e(k),u-=D.x,p+=D.x,u<0&&(d=B,p-=u=-u),l&&(m+=(s.height-(g=u/l))/2));break;case O:0<=D.y&&(x<=v||l&&(p<=w||y<=f))?M=!1:(e(O),(g+=D.y)<0&&(d=T,m-=g=-g),l&&(p+=(s.width-(u=g*l))/2));break;case E:if(l){if(D.y<=0&&(m<=b||y<=f)){M=!1;break}e(T),g-=D.y,m+=D.y,u=g*l}else e(T),e(B),!(0<=D.x)||fMath.abs(o)&&(o=i)})}),o),t),M=!1;break;case U:D.x&&D.y?(i=Wt(this.cropper),p=C.startX-i.left,m=C.startY-i.top,u=s.minWidth,g=s.minHeight,0 or element.");this.element=t,this.options=g({},ut,u(e)&&e),this.cropped=!1,this.disabled=!1,this.pointers={},this.ready=!1,this.reloading=!1,this.replaced=!1,this.sized=!1,this.sizing=!1,this.init()}var t,e,i;return t=n,i=[{key:"noConflict",value:function(){return window.Cropper=Pt,n}},{key:"setDefaults",value:function(t){g(ut,u(t)&&t)}}],(e=[{key:"init",value:function(){var t,e=this.element,i=e.tagName.toLowerCase();if(!e[c]){if(e[c]=this,"img"===i){if(this.isImg=!0,t=e.getAttribute("src")||"",!(this.originalUrl=t))return;t=e.src}else"canvas"===i&&window.HTMLCanvasElement&&(t=e.toDataURL());this.load(t)}}},{key:"load",value:function(t){var e,i,a,n,o,h,r=this;t&&(this.url=t,this.imageData={},e=this.element,(i=this.options).rotatable||i.scalable||(i.checkOrientation=!1),i.checkOrientation&&window.ArrayBuffer?lt.test(t)?pt.test(t)?this.read((h=(h=t).replace(Xt,""),a=atob(h),h=new ArrayBuffer(a.length),z(n=new Uint8Array(h),function(t,e){n[e]=a.charCodeAt(e)}),h)):this.clone():(o=new XMLHttpRequest,h=this.clone.bind(this),this.reloading=!0,(this.xhr=o).onabort=h,o.onerror=h,o.ontimeout=h,o.onprogress=function(){o.getResponseHeader("content-type")!==ct&&o.abort()},o.onload=function(){r.read(o.response)},o.onloadend=function(){r.reloading=!1,r.xhr=null},i.checkCrossOrigin&&Lt(t)&&e.crossOrigin&&(t=zt(t)),o.open("GET",t,!0),o.responseType="arraybuffer",o.withCredentials="use-credentials"===e.crossOrigin,o.send()):this.clone())}},{key:"read",value:function(t){var e=this.options,i=this.imageData,a=Rt(t),n=0,o=1,h=1;1
',o=(n=n.querySelector(".".concat(c,"-container"))).querySelector(".".concat(c,"-canvas")),h=n.querySelector(".".concat(c,"-drag-box")),s=(r=n.querySelector(".".concat(c,"-crop-box"))).querySelector(".".concat(c,"-face")),this.container=a,this.cropper=n,this.canvas=o,this.dragBox=h,this.cropBox=r,this.viewBox=n.querySelector(".".concat(c,"-view-box")),this.face=s,o.appendChild(i),v(t,L),a.insertBefore(n,t.nextSibling),X(i,Z),this.initPreview(),this.bind(),e.initialAspectRatio=Math.max(0,e.initialAspectRatio)||NaN,e.aspectRatio=Math.max(0,e.aspectRatio)||NaN,e.viewMode=Math.max(0,Math.min(3,Math.round(e.viewMode)))||0,v(r,L),e.guides||v(r.getElementsByClassName("".concat(c,"-dashed")),L),e.center||v(r.getElementsByClassName("".concat(c,"-center")),L),e.background&&v(n,"".concat(c,"-bg")),e.highlight||v(s,G),e.cropBoxMovable&&(v(s,V),w(s,d,I)),e.cropBoxResizable||(v(r.getElementsByClassName("".concat(c,"-line")),L),v(r.getElementsByClassName("".concat(c,"-point")),L)),this.render(),this.ready=!0,this.setDragMode(e.dragMode),e.autoCrop&&this.crop(),this.setData(e.data),l(e.ready)&&b(t,"ready",e.ready,{once:!0}),y(t,"ready"))}},{key:"unbuild",value:function(){var t;this.ready&&(this.ready=!1,this.unbind(),this.resetPreview(),(t=this.cropper.parentNode)&&t.removeChild(this.cropper),X(this.element,L))}},{key:"uncreate",value:function(){this.ready?(this.unbuild(),this.ready=!1,this.cropped=!1):this.sizing?(this.sizingImage.onload=null,this.sizing=!1,this.sized=!1):this.reloading?(this.xhr.onabort=null,this.xhr.abort()):this.image&&this.stop()}}])&&j(t.prototype,e),i&&j(t,i),Object.defineProperty(t,"prototype",{writable:!1}),n}();return g(It.prototype,t,i,e,St,jt,At),It}); window.XFMG=window.XFMG||{}; ((g,h)=>{XFMG.ImageNoter=XF.Element.newHandler({options:{image:".js-mediaImage",toggleId:"#js-noterToggle",editUrl:null},image:null,cropper:null,toggle:null,cropBox:null,editingNote:null,active:!1,trigger:null,tooltip:null,init(){const a=this.target.querySelector(this.options.image),b=h.querySelector(this.options.toggleId);a&&a.matches("img")||console.error("Image noter must contain an img element");this.image=a;if(a.complete)this.prepareNotes();else XF.on(a,"load",XF.proxy(this,"prepareNotes")); XF.on(g,"resize",XF.proxy(this,"prepareNotes"),{passive:!0});b&&(this.toggle=b,XF.on(b,"click",XF.proxy(this,"toggleNewNoteEditor")))},prepareNotes(){const a=this.image,b=a.naturalWidth/a.width;Array.from(this.target.querySelectorAll(".js-mediaNote")).forEach(c=>{const d=JSON.parse(c.dataset.noteData)||{};for(const e in d)XF.hasOwn(d,e)&&(d[e+"_"]=d[e]/b);c.style.left=`${d.tag_x1_}px`;c.style.top=`${d.tag_y1_}px`;c.style.width=`${d.tag_width_}px`;c.style.height=`${d.tag_height_}px`;XF.DataStore.get(c, "prepared")||this.initNote(c)})},initNote(a){const b=this.getTooltipElement(a),c=new XF.TooltipElement(b.cloneNode(!0).outerHTML,{extraClass:"tooltip--mediaNote tooltip--mediaNote--plain",noTouch:!1,html:!0}),d=this.target.querySelector(".media-container-image");c.addSetupCallback(f=>{XF.on(f,"mouseenter",()=>d.classList.add("is-tooltip-active"));XF.on(f,"mouseleave",()=>d.classList.remove("is-tooltip-active"));if(f=f.querySelector(".js-mediaNoteTooltipEdit"))XF.on(f,"click",XF.proxy(this,"editNote", a))});const e=new XF.TooltipTrigger(a,c,{maintain:!0,trigger:"hover focus click"});e.init();XF.DataStore.set(a,"prepared",!0);XF.DataStore.set(a,"tooltip",c);XF.DataStore.set(a,"trigger",e);XF.display(a);b.remove()},getTooltipElement(a){return XF.findRelativeIf("< .js-mediaContainerImage | .js-mediaNoteTooltip"+a.dataset.noteId,a)},editNote(a){const b=JSON.parse(a.dataset.noteData);XF.trigger(a,"tooltip:hide");this.cropper=new Cropper(this.image,{viewMode:2,dragMode:"none",aspectRatio:1,modal:!1, highlight:!1,movable:!1,rotatable:!1,scalable:!1,zoomable:!1,toggleDragModeOnDblclick:!1,data:{x:b.tag_x1,y:b.tag_y1,width:b.tag_width,height:b.tag_height},ready:()=>{this.editingNote=a;this.cropBox=this.target.querySelector(".cropper-crop-box");this.tooltip||this.trigger||(this.tooltip=new XF.TooltipElement(XF.proxy(this,"getEditNoteTooltipContent"),{extraClass:"tooltip--mediaNote",html:!0,loadRequired:!0}),this.trigger=new XF.TooltipTrigger(this.cropBox,this.tooltip,{maintain:!0,trigger:"",onShow(c, d){c=d.tooltip;const e=c.querySelector("textarea");if(e)XF.on(c,"tooltip:shown",()=>XF.trigger(e,"autosize"))}}),this.trigger.init(),XF.trigger(this.cropBox,"tooltip:show"),XF.trigger(this.image,"cropend"))},cropstart:XF.proxy(this,"editNoteCropstart"),cropend:XF.proxy(this,"editNoteCropend")})},editNoteCropstart(a){this.trigger&&XF.trigger(this.cropBox,"tooltip:hide")},editNoteCropend(a){XF.trigger(this.cropBox,"tooltip:show");XF.on(this.tooltip.tooltip,"tooltip:shown",b=>{b=b.target;const c=this.getCoordsFromCropper(); b.querySelector(".js-noteData").value=JSON.stringify(c)})},getEditNoteTooltipContent(a){XF.ajax("get",this.options.editUrl,{note_id:this.editingNote.dataset.noteId},b=>{this.editNoteLoaded(b,a)},{skipDefault:!0,skipError:!0,global:!1})},editNoteLoaded:function(a,b){a.html&&XF.setupHtmlInsert(a.html,(c,d,e)=>{b(c);d=c.querySelector(".js-cancelButton");XF.on(d,"click",XF.proxy(this,"editNoteCancel"));XF.on(c,"ajax-submit:response",XF.proxy(this,"editNoteHandle"))})},editNoteCancel(a){this.cropBox&& (XF.trigger(this.cropBox,"tooltip:hide"),this.cropBox=null);this.tooltip&&(this.tooltip.destroy(),this.trigger=this.tooltip=null);this.cropper.destroy();this.editingNote=null;"string"===typeof a&&XF.flashMessage(a,3E3)},editNoteHandle(a){const {data:b}=a;b.errors||b.exception||(a.preventDefault(),XF.DataStore.get(this.editingNote,"tooltip").destroy(),this.editingNote.remove(),b.deleted?this.editNoteCancel(b.message):(XF.setupHtmlInsert(b.html,(c,d,e)=>{this.target.querySelector(".js-mediaContainerImage").prepend(c); this.editNoteCancel(b.message);XF.activate(c)}),setTimeout(()=>this.prepareNotes(),500)))},toggleNewNoteEditor:function(){this.active?this.disableNewNoteEditor():this.enableNewNoteEditor()},disableNewNoteEditor(a){if(this.active){this.cropBox&&XF.trigger(this.cropBox,"tooltip:hide");this.tooltip&&(this.tooltip.destroy(),this.trigger=this.tooltip=null);this.cropper.destroy();var b=this.toggle;b.querySelector(".button-text").innerHTML=XF.htmlspecialchars(b.dataset.inactiveLabel);var c;null==(c=b.querySelector("i.fa--xf"))|| c.remove();b.dataset.inactiveIcon&&b.prepend(XF.createElementFromString(XF.Icon.getIcon("default",b.dataset.inactiveIcon)));a?XF.flashMessage(a,3E3):XF.flashMessage(b.dataset.inactiveMessage,3E3);this.active=!1}},enableNewNoteEditor(){this.active||(this.cropper=new Cropper(this.image,{viewMode:2,dragMode:"crop",aspectRatio:1,modal:!1,highlight:!1,autoCrop:!1,movable:!1,rotatable:!1,scalable:!1,zoomable:!1,toggleDragModeOnDblclick:!1,ready:XF.proxy(this,"newNoteReady"),cropstart:XF.proxy(this,"newNoteCropstart"), cropend:XF.proxy(this,"newNoteCropend")}))},newNoteReady(){const a=this.toggle;a.querySelector(".button-text").innerHTML=XF.htmlspecialchars(a.dataset.activeLabel);let b;null==(b=a.querySelector("i.fa--xf"))||b.remove();a.dataset.activeIcon&&a.prepend(XF.createElementFromString(XF.Icon.getIcon("default",a.dataset.activeIcon)));this.cropBox=this.target.querySelector(".cropper-crop-box");XF.flashMessage(a.dataset.activeMessage,3E3);this.active=!0},newNoteCropstart:function(a){this.trigger&&XF.trigger(this.cropBox, "tooltip:hide")},newNoteCropend:function(a){this.tooltip||this.trigger||(this.tooltip=new XF.TooltipElement(XF.proxy(this,"getNewNoteTooltipContent"),{extraClass:"tooltip--mediaNote",html:!0,loadRequired:!0}),this.trigger=new XF.TooltipTrigger(this.cropBox,this.tooltip,{maintain:!0,trigger:""}),this.trigger.init());XF.trigger(this.cropBox,"tooltip:show");XF.on(this.tooltip.tooltip,"tooltip:shown",b=>{b=b.target;const c=this.getCoordsFromCropper();b.querySelector(".js-noteData").value=JSON.stringify(c)})}, getNewNoteTooltipContent(a){XF.ajax("get",this.options.editUrl,{},b=>{this.newNoteLoaded(b,a)},{skipDefault:!0,skipError:!0,global:!1})},newNoteLoaded(a,b){a.html&&XF.setupHtmlInsert(a.html,(c,d,e)=>{b(c);d=c.querySelector(".js-cancelButton");XF.on(d,"click",XF.proxy(this,"newNoteCancel"));XF.on(c,"ajax-submit:response",XF.proxy(this,"newNoteHandle"))})},newNoteCancel(){XF.trigger(this.cropBox,"tooltip:hide");this.cropper.clear()},newNoteHandle(a){const {data:b}=a;b.errors||b.exception||(a.preventDefault(), XF.setupHtmlInsert(b.html,(c,d,e)=>{this.target.querySelector(".js-mediaContainerImage").prepend(c);this.disableNewNoteEditor(b.message);XF.activate(c)}),setTimeout(()=>this.prepareNotes(),500))},getCoordsFromCropper:function(){const a=this.cropper.getData(!0);return{tag_x1:a.x,tag_y1:a.y,tag_width:a.width,tag_height:a.height}}});XF.Element.register("image-noter","XFMG.ImageNoter")})(window,document); Flash Sale Popup