View file upload/js/xenforo/avatar_editor.js

File size: 6.76Kb
/*
 * XenForo avatar_editor.min.js
 * Copyright 2010-2019 XenForo Ltd.
 * Released under the XenForo License Agreement: http://xenforo.com/license-agreement
 */
var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.findInternal=function(b,k,c){b instanceof String&&(b=String(b));for(var e=b.length,a=0;a<e;a++){var m=b[a];if(k.call(c,m,a,b))return{i:a,v:m}}return{i:-1,v:void 0}};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(b,k,c){b!=Array.prototype&&b!=Object.prototype&&(b[k]=c.value)};
$jscomp.getGlobal=function(b){return"undefined"!=typeof window&&window===b?b:"undefined"!=typeof global&&null!=global?global:b};$jscomp.global=$jscomp.getGlobal(this);$jscomp.polyfill=function(b,k,c,e){if(k){c=$jscomp.global;b=b.split(".");for(e=0;e<b.length-1;e++){var a=b[e];a in c||(c[a]={});c=c[a]}b=b[b.length-1];e=c[b];k=k(e);k!=e&&null!=k&&$jscomp.defineProperty(c,b,{configurable:!0,writable:!0,value:k})}};
$jscomp.polyfill("Array.prototype.find",function(b){return b?b:function(b,c){return $jscomp.findInternal(this,b,c).v}},"es6","es3");
!function(b,k,c,e){XenForo.AvatarEditor=function(a){this.__construct(a)};XenForo.AvatarEditor.prototype={__construct:function(a){this.$form=a.bind({submit:b.context(this,"saveChanges"),reset:b.context(this,"resetForm"),AutoInlineUploadComplete:b.context(this,"uploadComplete")});this.$cropObj=a.find(".AvatarCropControl").bind({dragstart:b.context(this,"dragStart"),dragend:b.context(this,"dragEnd"),drag:b.context(this,"drag")});this.$cropImg=this.$cropObj.find("img").load(b.context(this,"imageLoaded"));
b(k).load(b.context(this,"imageLoaded"));this.$form.find("#GravatarTest").click(b.context(this,"gravatarTest"));this.$outputX=a.find("input[name=avatar_crop_x]");this.$outputY=a.find("input[name=avatar_crop_y]");this.setCropFormVisibility(a.find("input[name=avatar_date]").val());this.cropX=-1*this.$outputX.val();this.cropY=-1*this.$outputY.val()},getPositions:function(){this.objSizeX=this.$cropObj.innerWidth();this.objSizeY=this.$cropObj.innerHeight();this.imageSizeX=this.$cropImg.outerWidth();this.imageSizeY=
this.$cropImg.outerHeight();this.deltaX=-1*(this.imageSizeX-this.objSizeX);this.deltaY=-1*(this.imageSizeY-this.objSizeY);this.imagePos=this.$cropImg.position();this.objOffset=this.$cropObj.offset()},imageLoaded:function(a){this.positionSet||(this.getPositions(),this.setPosition(-1*this.$outputX.val(),-1*this.$outputY.val(),!1),this.positionSet=!0)},setPosition:function(a,b,f){0<a?a=0:f&&a<this.deltaX&&(a=this.deltaX);0<b?b=0:f&&b<this.deltaY&&(b=this.deltaY);this.$cropImg.css({left:a,top:b})},dragStart:function(a){this.positionSet||
this.imageLoaded();this.getPositions()},drag:function(a){this.setPosition(a.offsetX-this.objOffset.left+this.imagePos.left,a.offsetY-this.objOffset.top+this.imagePos.top,!0)},dragEnd:function(a){a=this.$cropImg.position();this.$outputX.val(-1*a.left);this.$outputY.val(-1*a.top);console.info("Avatar crop dragged to %d, %d %o",this.$outputX.val(),this.$outputY.val(),this.$cropObj)},uploadComplete:function(a){this.updateEditor(a.ajaxData)},updateEditor:function(a){console.info("Update Avatar Editor %o",
a);XenForo.updateUserAvatars(a.user_id,a.urls,b("#ctrl_useGravatar_0").is(":checked"));b(".avatarCropper .Av"+a.user_id+"l img").css(a.cropCss);this.setCropFormVisibility(a.avatar_date);this.$cropImg.css({width:"auto",height:"auto"});this.$cropImg.css(a.maxDimension,a.maxWidth);this.cropX=-1*a.cropX;this.cropY=-1*a.cropY;this.$outputX.val(a.cropX);this.$outputY.val(a.cropY);this.setPosition(this.cropX,this.cropY,!1)},setCropFormVisibility:function(a){this.$form.find("#DeleteAvatar").removeAttr("checked");
parseInt(a,10)?b("label[for=DeleteAvatar], #ExistingCustom").xfFadeIn(XenForo.speed.normal):b("label[for=DeleteAvatar], #ExistingCustom").hide()},saveChanges:function(a){if(this.$form.find("input[name=_xfUploader]").length)return!0;a.preventDefault();XenForo.ajax(this.$form.attr("action"),this.$form.serializeArray(),b.context(this,"saveChangesSuccess"))},saveChangesSuccess:function(a,b){if(XenForo.hasResponseError(a))return!1;this.updateEditor(a);var f;(f=this.$form.closest(".xenOverlay").data("overlay"))&&
f.close()},resetForm:function(a){this.setPosition(this.cropX,this.cropY,!1)},gravatarTest:function(a){var c=b(a.target),f=b(c.data("testsrc")),g=b(c.data("testimg")),d=b(c.data("testerr"));c.data("testurl");a=f.val();var l=this.$form.data("maxwidth");f.data("XenForo.Prompt")&&(a=f.data("XenForo.Prompt").val());if(!a)return d.slideUp(XenForo.speed.fast),!0;if(5>a.length)return!1;c.prop("disabled",!0);XenForo.ajax(c.data("testurl"),{email:a,size:l},function(a,b){c.removeAttr("disabled");"object"==typeof a&&
(a.error?d.hide().html(a.error[0]).xfFadeDown(XenForo.speed.fast):d.slideUp(XenForo.speed.fast),a.gravatarUrl&&g.attr("src",a.gravatarUrl),f.focus())})}};XenForo.register(".AvatarEditor","XenForo.AvatarEditor")}(jQuery,this,document);
(function(b){function k(d){var l=this,h=d.data||{};if(h.elem)l=d.dragTarget=h.elem,d.dragProxy=g.proxy||l,d.cursorOffsetX=h.pageX-h.left,d.cursorOffsetY=h.pageY-h.top,d.offsetX=d.pageX-d.cursorOffsetX,d.offsetY=d.pageY-d.cursorOffsetY;else if(g.dragging||0<h.which&&d.which!=h.which||b(d.target).is(h.not))return;switch(d.type){case "mousedown":return b.extend(h,b(l).offset(),{elem:l,target:d.target,pageX:d.pageX,pageY:d.pageY}),m.add(document,"mousemove mouseup",k,h),a(l,!1),g.dragging=null,!1;case !g.dragging&&
"mousemove":if(Math.pow(d.pageX-h.pageX,2)+Math.pow(d.pageY-h.pageY,2)<h.distance)break;d.target=h.target;var e=c(d,"dragstart",l);!1!==e&&(g.dragging=l,g.proxy=d.dragProxy=b(e||l)[0]);case "mousemove":if(g.dragging){e=c(d,"drag",l);f.drop&&(f.drop.allowed=!1!==e,f.drop.handler(d));if(!1!==e)break;d.type="mouseup"}case "mouseup":m.remove(document,"mousemove mouseup",k),g.dragging&&(f.drop&&f.drop.handler(d),c(d,"dragend",l)),a(l,!0),g.dragging=g.proxy=h.elem=!1}return!0}function c(a,c,h){a.type=c;
c=b.event.handle.call(h,a);return!1===c?!1:c||a.result}function e(){return!1===g.dragging}function a(a,b){a&&(a.unselectable=b?"off":"on",a.onselectstart=function(){return b},a.style&&(a.style.MozUserSelect=b?"":"none"))}b.fn.drag=function(a,b,c){b&&this.bind("dragstart",a);c&&this.bind("dragend",c);return a?this.bind("drag",b?b:a):this.trigger("drag")};var m=b.event,f=m.special,g=f.drag={not:":input",distance:0,which:1,dragging:!1,setup:function(a){a=b.extend({distance:g.distance,which:g.which,not:g.not},
a||{});a.distance=Math.pow(a.distance,2);m.add(this,"mousedown",k,a);this.attachEvent&&this.attachEvent("ondragstart",e)},teardown:function(){m.remove(this,"mousedown",k);this===g.dragging&&(g.dragging=g.proxy=!1);a(this,!0);this.detachEvent&&this.detachEvent("ondragstart",e)}};f.dragstart=f.dragend={setup:function(){},teardown:function(){}}})(jQuery);