Seditio Source
Root |
./othercms/xenForo 2.2.8/js/xf/profile_banner.min.js
'use strict';!function(h,p,t,u){XF.BannerUpload=XF.Element.newHandler({options:{},init:function(){var a=this.$target,b=a.find(".js-uploadBanner"),c=a.find(".js-banner").closest(".profileBannerContainer"),e=a.find(".js-deleteBanner");c.hasClass("profileBannerContainer--withBanner")?e.show():e.hide();b.on("change",XF.proxy(this,"changeFile"));a.on("ajax-submit:response",XF.proxy(this,"ajaxResponse"))},changeFile:function(a){""!=h(a.target).val()&&this.$target.submit()},ajaxResponse:function(a,b){if(!b.errors&&
!b.exception){a.preventDefault();b.message&&XF.flashMessage(b.message,3E3);var c=this.$target;a=c.find(".js-deleteBanner");var e=c.find(".js-uploadBanner");c=c.find(".js-banner").closest(".profileBannerContainer");var f=b.banners,k=b.position,m=Object.keys(f).length,l="memberProfileBanner-u"+b.userId+"-";e.val("");h(".memberProfileBanner").each(function(){var d=h(this),q=d.parent(),r=d.data("hide-empty"),n=d.data("toggle-class"),g;d.is('[class*="'+l+'"]')&&(d.hasClass(l+"m")?g=f.m:d.hasClass(l+"l")?
g=f.l:d.hasClass(l+"o")&&(g=f.o));d.css({"background-image":g?"url("+g+")":"none","background-position-y":null!==k?k+"%":null});r&&(g?d.removeClass("memberProfileBanner--empty"):d.addClass("memberProfileBanner--empty"));d.trigger("profile-banner:refresh");n&&(g?q.addClass(n):q.removeClass(n))});m?(a.show(),c.addClass("profileBannerContainer--withBanner")):(a.hide(),c.removeClass("profileBannerContainer--withBanner"))}}});XF.BannerPositioner=XF.Element.newHandler({options:{},$banner:null,$value:null,
y:0,ns:"bannerPositioner",dragging:!1,scaleFactor:1,init:function(){var a=this.$target;this.$banner=a;a.css({"touch-action":"none",cursor:"move"});this.$value=a.find(".js-bannerPosY");this.initDragging();var b=this;a.on("profile-banner:refresh",function(){var c=a.css("background-position-y");c&&b.$value.val(parseFloat(c));b.stopDragging();a.off("."+b.ns);b.initDragging()})},initDragging:function(){var a=this.ns,b=this.$banner,c=b.css("background-image"),e=new Image,f=this;if(c=c.replace(/^url\(["']?(.*?)["']?\)$/i,
"$1"))e.onload=function(){var k=function(){var m=e.width?b.width()/e.width:1;f.scaleFactor=1/(e.height*m/100);b.on("mousedown."+a+" touchstart."+a,XF.proxy(f,"dragStart"))};if(0<b.width())k();else b.one("mouseover."+a+" touchstart."+a,k)},e.src=XF.canonicalizeUrl(c)},dragStart:function(a){a.preventDefault();a=a.originalEvent;var b=this.ns;if(a.touches)this.y=a.touches[0].clientY;else if(this.y=a.clientY,0<a.button)return;this.dragging=!0;h(p).on("mousemove."+b+" touchmove."+b,XF.proxy(this,"dragMove")).on("mouseup."+
b+" touchend."+b,XF.proxy(this,"dragEnd"))},dragMove:function(a){if(this.dragging){a.preventDefault();var b=a.originalEvent;a=parseFloat(this.$banner.css("background-position-y"));b=b.touches?b.touches[0].clientY:b.clientY;a+=(this.y-b)*this.scaleFactor;a=Math.min(Math.max(0,a),100);this.$banner.css("background-position-y",a+"%");this.$value.val(a);this.y=b}},dragEnd:function(a){this.stopDragging()},stopDragging:function(){this.dragging&&(h(p).off("."+this.ns),this.y=0,this.dragging=!1)}});XF.Element.register("banner-upload",
"XF.BannerUpload");XF.Element.register("banner-positioner","XF.BannerPositioner")}(jQuery,window,document);