1 line
7.7 KiB
JavaScript
1 line
7.7 KiB
JavaScript
!function(e,i,n,t){"use strict";i=void 0!==i&&i.Math==Math?i:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")(),e.fn.dimmer=function(i){var t,o=e(this),a=(new Date).getTime(),r=[],s=arguments[0],d="string"==typeof s,m=[].slice.call(arguments,1);return o.each(function(){var c,u,l,f=e.isPlainObject(i)?e.extend(!0,{},e.fn.dimmer.settings,i):e.extend({},e.fn.dimmer.settings),g=f.selector,v=f.namespace,p=f.className,h=f.error,b="."+v,y="module-"+v,C=o.selector||"",w="ontouchstart"in n.documentElement?"touchstart":"click",S=e(this),D=this,T=S.data(y);l={preinitialize:function(){l.is.dimmer()?(u=S.parent(),c=S):(u=S,c=l.has.dimmer()?f.dimmerName?u.find(g.dimmer).filter("."+f.dimmerName):u.find(g.dimmer):l.create(),l.set.variation())},initialize:function(){l.debug("Initializing dimmer",f),l.bind.events(),l.set.dimmable(),l.instantiate()},instantiate:function(){l.verbose("Storing instance of module",l),T=l,S.data(y,T)},destroy:function(){l.verbose("Destroying previous module",c),l.unbind.events(),l.remove.variation(),u.off(b)},bind:{events:function(){"hover"==f.on?u.on("mouseenter"+b,l.show).on("mouseleave"+b,l.hide):"click"==f.on&&u.on(w+b,l.toggle),l.is.page()&&(l.debug("Setting as a page dimmer",u),l.set.pageDimmer()),l.is.closable()&&(l.verbose("Adding dimmer close event",c),u.on(w+b,g.dimmer,l.event.click))}},unbind:{events:function(){S.removeData(y),u.off(b)}},event:{click:function(i){l.verbose("Determining if event occured on dimmer",i),(0===c.find(i.target).length||e(i.target).is(g.content))&&(l.hide(),i.stopImmediatePropagation())}},addContent:function(i){var n=e(i);l.debug("Add content to dimmer",n),n.parent()[0]!==c[0]&&n.detach().appendTo(c)},create:function(){var i=e(f.template.dimmer());return f.dimmerName&&(l.debug("Creating named dimmer",f.dimmerName),i.addClass(f.dimmerName)),i.appendTo(u),i},show:function(i){i=e.isFunction(i)?i:function(){},l.debug("Showing dimmer",c,f),l.is.dimmed()&&!l.is.animating()||!l.is.enabled()?l.debug("Dimmer is already shown or disabled"):(l.animate.show(i),f.onShow.call(D),f.onChange.call(D))},hide:function(i){i=e.isFunction(i)?i:function(){},l.is.dimmed()||l.is.animating()?(l.debug("Hiding dimmer",c),l.animate.hide(i),f.onHide.call(D),f.onChange.call(D)):l.debug("Dimmer is not visible")},toggle:function(){l.verbose("Toggling dimmer visibility",c),l.is.dimmed()?l.hide():l.show()},animate:{show:function(i){i=e.isFunction(i)?i:function(){},f.useCSS&&void 0!==e.fn.transition&&c.transition("is supported")?("auto"!==f.opacity&&l.set.opacity(),c.transition({animation:f.transition+" in",queue:!1,duration:l.get.duration(),useFailSafe:!0,onStart:function(){l.set.dimmed()},onComplete:function(){l.set.active(),i()}})):(l.verbose("Showing dimmer animation with javascript"),l.set.dimmed(),"auto"==f.opacity&&(f.opacity=.8),c.stop().css({opacity:0,width:"100%",height:"100%"}).fadeTo(l.get.duration(),f.opacity,function(){c.removeAttr("style"),l.set.active(),i()}))},hide:function(i){i=e.isFunction(i)?i:function(){},f.useCSS&&void 0!==e.fn.transition&&c.transition("is supported")?(l.verbose("Hiding dimmer with css"),c.transition({animation:f.transition+" out",queue:!1,duration:l.get.duration(),useFailSafe:!0,onStart:function(){l.remove.dimmed()},onComplete:function(){l.remove.active(),i()}})):(l.verbose("Hiding dimmer with javascript"),l.remove.dimmed(),c.stop().fadeOut(l.get.duration(),function(){l.remove.active(),c.removeAttr("style"),i()}))}},get:{dimmer:function(){return c},duration:function(){return"object"==typeof f.duration?l.is.active()?f.duration.hide:f.duration.show:f.duration}},has:{dimmer:function(){return f.dimmerName?S.find(g.dimmer).filter("."+f.dimmerName).length>0:S.find(g.dimmer).length>0}},is:{active:function(){return c.hasClass(p.active)},animating:function(){return c.is(":animated")||c.hasClass(p.animating)},closable:function(){return"auto"==f.closable?"hover"!=f.on:f.closable},dimmer:function(){return S.hasClass(p.dimmer)},dimmable:function(){return S.hasClass(p.dimmable)},dimmed:function(){return u.hasClass(p.dimmed)},disabled:function(){return u.hasClass(p.disabled)},enabled:function(){return!l.is.disabled()},page:function(){return u.is("body")},pageDimmer:function(){return c.hasClass(p.pageDimmer)}},can:{show:function(){return!c.hasClass(p.disabled)}},set:{opacity:function(e){var i=c.css("background-color"),n=i.split(","),t=n&&3==n.length,o=n&&4==n.length;e=0===f.opacity?0:f.opacity||e,t||o?(n[3]=e+")",i=n.join(",")):i="rgba(0, 0, 0, "+e+")",l.debug("Setting opacity to",e),c.css("background-color",i)},active:function(){c.addClass(p.active)},dimmable:function(){u.addClass(p.dimmable)},dimmed:function(){u.addClass(p.dimmed)},pageDimmer:function(){c.addClass(p.pageDimmer)},disabled:function(){c.addClass(p.disabled)},variation:function(e){(e=e||f.variation)&&c.addClass(e)}},remove:{active:function(){c.removeClass(p.active)},dimmed:function(){u.removeClass(p.dimmed)},disabled:function(){c.removeClass(p.disabled)},variation:function(e){(e=e||f.variation)&&c.removeClass(e)}},setting:function(i,n){if(l.debug("Changing setting",i,n),e.isPlainObject(i))e.extend(!0,f,i);else{if(void 0===n)return f[i];e.isPlainObject(f[i])?e.extend(!0,f[i],n):f[i]=n}},internal:function(i,n){if(e.isPlainObject(i))e.extend(!0,l,i);else{if(void 0===n)return l[i];l[i]=n}},debug:function(){!f.silent&&f.debug&&(f.performance?l.performance.log(arguments):(l.debug=Function.prototype.bind.call(console.info,console,f.name+":"),l.debug.apply(console,arguments)))},verbose:function(){!f.silent&&f.verbose&&f.debug&&(f.performance?l.performance.log(arguments):(l.verbose=Function.prototype.bind.call(console.info,console,f.name+":"),l.verbose.apply(console,arguments)))},error:function(){f.silent||(l.error=Function.prototype.bind.call(console.error,console,f.name+":"),l.error.apply(console,arguments))},performance:{log:function(e){var i,n,t;f.performance&&(i=(new Date).getTime(),t=a||i,n=i-t,a=i,r.push({Name:e[0],Arguments:[].slice.call(e,1)||"",Element:D,"Execution Time":n})),clearTimeout(l.performance.timer),l.performance.timer=setTimeout(l.performance.display,500)},display:function(){var i=f.name+":",n=0;a=!1,clearTimeout(l.performance.timer),e.each(r,function(e,i){n+=i["Execution Time"]}),i+=" "+n+"ms",C&&(i+=" '"+C+"'"),o.length>1&&(i+=" ("+o.length+")"),(void 0!==console.group||void 0!==console.table)&&r.length>0&&(console.groupCollapsed(i),console.table?console.table(r):e.each(r,function(e,i){console.log(i.Name+": "+i["Execution Time"]+"ms")}),console.groupEnd()),r=[]}},invoke:function(i,n,o){var a,r,s,d=T;return n=n||m,o=D||o,"string"==typeof i&&void 0!==d&&(i=i.split(/[\. ]/),a=i.length-1,e.each(i,function(n,t){var o=n!=a?t+i[n+1].charAt(0).toUpperCase()+i[n+1].slice(1):i;if(e.isPlainObject(d[o])&&n!=a)d=d[o];else{if(void 0!==d[o])return r=d[o],!1;if(!e.isPlainObject(d[t])||n==a)return void 0!==d[t]?(r=d[t],!1):(l.error(h.method,i),!1);d=d[t]}})),e.isFunction(r)?s=r.apply(o,n):void 0!==r&&(s=r),e.isArray(t)?t.push(s):void 0!==t?t=[t,s]:void 0!==s&&(t=s),r}},l.preinitialize(),d?(void 0===T&&l.initialize(),l.invoke(s)):(void 0!==T&&T.invoke("destroy"),l.initialize())}),void 0!==t?t:this},e.fn.dimmer.settings={name:"Dimmer",namespace:"dimmer",silent:!1,debug:!1,verbose:!1,performance:!0,dimmerName:!1,variation:!1,closable:"auto",useCSS:!0,transition:"fade",on:!1,opacity:"auto",duration:{show:500,hide:500},onChange:function(){},onShow:function(){},onHide:function(){},error:{method:"The method you called is not defined."},className:{active:"active",animating:"animating",dimmable:"dimmable",dimmed:"dimmed",dimmer:"dimmer",disabled:"disabled",hide:"hide",pageDimmer:"page",show:"show"},selector:{dimmer:"> .ui.dimmer",content:".ui.dimmer > .content, .ui.dimmer > .content > .center"},template:{dimmer:function(){return e("<div />").attr("class","ui dimmer")}}}}(jQuery,window,document); |