255 lines
14 KiB
JavaScript
255 lines
14 KiB
JavaScript
/*!
|
|
* jQuery blockUI plugin
|
|
* Version 2.70.0-2014.11.23
|
|
* Requires jQuery v1.7 or later
|
|
*
|
|
* Examples at: http://malsup.com/jquery/block/
|
|
* Copyright (c) 2007-2013 M. Alsup
|
|
* Dual licensed under the MIT and GPL licenses:
|
|
* http://www.opensource.org/licenses/mit-license.php
|
|
* http://www.gnu.org/licenses/gpl.html
|
|
*
|
|
* Thanks to Amir-Hossein Sobhi for some excellent contributions!
|
|
*/
|
|
! function() {
|
|
"use strict";
|
|
|
|
function e(e) {
|
|
e.fn._fadeIn = e.fn.fadeIn;
|
|
var t = e.noop || function() {},
|
|
o = /MSIE/.test(navigator.userAgent),
|
|
n = /MSIE 6.0/.test(navigator.userAgent) && !/MSIE 8.0/.test(navigator.userAgent),
|
|
i = (document.documentMode, "function" == typeof document.createElement("div").style.setExpression && document.createElement("div").style.setExpression);
|
|
e.blockUI = function(e) {
|
|
d(window, e)
|
|
}, e.unblockUI = function(e) {
|
|
a(window, e)
|
|
}, e.growlUI = function(t, o, n, i) {
|
|
var s = e('<div class="growlUI"></div>');
|
|
t && s.append("<h1>" + t + "</h1>"), o && s.append("<h2>" + o + "</h2>"), n === undefined && (n = 3e3);
|
|
var l = function(t) {
|
|
t = t || {}, e.blockUI({
|
|
message: s,
|
|
fadeIn: "undefined" != typeof t.fadeIn ? t.fadeIn : 700,
|
|
fadeOut: "undefined" != typeof t.fadeOut ? t.fadeOut : 1e3,
|
|
timeout: "undefined" != typeof t.timeout ? t.timeout : n,
|
|
centerY: !1,
|
|
showOverlay: !1,
|
|
onUnblock: i,
|
|
css: e.blockUI.defaults.growlCSS
|
|
})
|
|
};
|
|
l();
|
|
s.css("opacity");
|
|
s.on("mouseover", function() {
|
|
l({
|
|
fadeIn: 0,
|
|
timeout: 3e4
|
|
});
|
|
var t = e(".blockMsg");
|
|
t.stop(), t.fadeTo(300, 1)
|
|
}).on("mouseout", function() {
|
|
e(".blockMsg").fadeOut(1e3)
|
|
})
|
|
}, e.fn.block = function(t) {
|
|
if (this[0] === window) return e.blockUI(t), this;
|
|
var o = e.extend({}, e.blockUI.defaults, t || {});
|
|
return this.each(function() {
|
|
var t = e(this);
|
|
o.ignoreIfBlocked && t.data("blockUI.isBlocked") || t.unblock({
|
|
fadeOut: 0
|
|
})
|
|
}), this.each(function() {
|
|
"static" == e.css(this, "position") && (this.style.position = "relative", e(this).data("blockUI.static", !0)), this.style.zoom = 1, d(this, t)
|
|
})
|
|
}, e.fn.unblock = function(t) {
|
|
return this[0] === window ? (e.unblockUI(t), this) : this.each(function() {
|
|
a(this, t)
|
|
})
|
|
}, e.blockUI.version = 2.7, e.blockUI.defaults = {
|
|
message: "<h1>Please wait...</h1>",
|
|
title: null,
|
|
draggable: !0,
|
|
theme: !1,
|
|
css: {
|
|
padding: 0,
|
|
margin: 0,
|
|
width: "30%",
|
|
top: "40%",
|
|
left: "35%",
|
|
textAlign: "center",
|
|
color: "#000",
|
|
border: "3px solid #aaa",
|
|
backgroundColor: "#fff",
|
|
cursor: "wait"
|
|
},
|
|
themedCSS: {
|
|
width: "30%",
|
|
top: "40%",
|
|
left: "35%"
|
|
},
|
|
overlayCSS: {
|
|
backgroundColor: "#000",
|
|
opacity: .6,
|
|
cursor: "wait"
|
|
},
|
|
cursorReset: "default",
|
|
growlCSS: {
|
|
width: "350px",
|
|
top: "10px",
|
|
left: "",
|
|
right: "10px",
|
|
border: "none",
|
|
padding: "5px",
|
|
opacity: .6,
|
|
cursor: "default",
|
|
color: "#fff",
|
|
backgroundColor: "#000",
|
|
"-webkit-border-radius": "10px",
|
|
"-moz-border-radius": "10px",
|
|
"border-radius": "10px"
|
|
},
|
|
iframeSrc: /^https/i.test(window.location.href || "") ? "javascript:false" : "about:blank",
|
|
forceIframe: !1,
|
|
baseZ: 1e3,
|
|
centerX: !0,
|
|
centerY: !0,
|
|
allowBodyStretch: !0,
|
|
bindEvents: !0,
|
|
constrainTabKey: !0,
|
|
fadeIn: 200,
|
|
fadeOut: 400,
|
|
timeout: 0,
|
|
showOverlay: !0,
|
|
focusInput: !0,
|
|
focusableElements: ":input:enabled:visible",
|
|
onBlock: null,
|
|
onUnblock: null,
|
|
onOverlayClick: null,
|
|
quirksmodeOffsetHack: 4,
|
|
blockMsgClass: "blockMsg",
|
|
ignoreIfBlocked: !1
|
|
};
|
|
var s = null,
|
|
l = [];
|
|
|
|
function d(d, c) {
|
|
var u, b, h = d == window,
|
|
k = c && c.message !== undefined ? c.message : undefined;
|
|
if (!(c = e.extend({}, e.blockUI.defaults, c || {})).ignoreIfBlocked || !e(d).data("blockUI.isBlocked")) {
|
|
if (c.overlayCSS = e.extend({}, e.blockUI.defaults.overlayCSS, c.overlayCSS || {}), u = e.extend({}, e.blockUI.defaults.css, c.css || {}), c.onOverlayClick && (c.overlayCSS.cursor = "pointer"), b = e.extend({}, e.blockUI.defaults.themedCSS, c.themedCSS || {}), k = k === undefined ? c.message : k, h && s && a(window, {
|
|
fadeOut: 0
|
|
}), k && "string" != typeof k && (k.parentNode || k.jquery)) {
|
|
var y = k.jquery ? k[0] : k,
|
|
m = {};
|
|
e(d).data("blockUI.history", m), m.el = y, m.parent = y.parentNode, m.display = y.style.display, m.position = y.style.position, m.parent && m.parent.removeChild(y)
|
|
}
|
|
e(d).data("blockUI.onUnblock", c.onUnblock);
|
|
var g, v, I, w, U = c.baseZ;
|
|
g = o || c.forceIframe ? e('<iframe class="blockUI" style="z-index:' + U++ + ';display:none;border:none;margin:0;padding:0;position:absolute;width:100%;height:100%;top:0;left:0" src="' + c.iframeSrc + '"></iframe>') : e('<div class="blockUI" style="display:none"></div>'), v = c.theme ? e('<div class="blockUI blockOverlay ui-widget-overlay" style="z-index:' + U++ + ';display:none"></div>') : e('<div class="blockUI blockOverlay" style="z-index:' + U++ + ';display:none;border:none;margin:0;padding:0;width:100%;height:100%;top:0;left:0"></div>'), c.theme && h ? (w = '<div class="blockUI ' + c.blockMsgClass + ' blockPage ui-dialog ui-widget ui-corner-all" style="z-index:' + (U + 10) + ';display:none;position:fixed">', c.title && (w += '<div class="ui-widget-header ui-dialog-titlebar ui-corner-all blockTitle">' + (c.title || " ") + "</div>"), w += '<div class="ui-widget-content ui-dialog-content"></div>', w += "</div>") : c.theme ? (w = '<div class="blockUI ' + c.blockMsgClass + ' blockElement ui-dialog ui-widget ui-corner-all" style="z-index:' + (U + 10) + ';display:none;position:absolute">', c.title && (w += '<div class="ui-widget-header ui-dialog-titlebar ui-corner-all blockTitle">' + (c.title || " ") + "</div>"), w += '<div class="ui-widget-content ui-dialog-content"></div>', w += "</div>") : w = h ? '<div class="blockUI ' + c.blockMsgClass + ' blockPage" style="z-index:' + (U + 10) + ';display:none;position:fixed"></div>' : '<div class="blockUI ' + c.blockMsgClass + ' blockElement" style="z-index:' + (U + 10) + ';display:none;position:absolute"></div>', I = e(w), k && (c.theme ? (I.css(b), I.addClass("ui-widget-content")) : I.css(u)), c.theme || v.css(c.overlayCSS), v.css("position", h ? "fixed" : "absolute"), (o || c.forceIframe) && g.css("opacity", 0);
|
|
var x = [g, v, I],
|
|
C = e(h ? "body" : d);
|
|
e.each(x, function() {
|
|
this.appendTo(C)
|
|
}), c.theme && c.draggable && e.fn.draggable && I.draggable({
|
|
handle: ".ui-dialog-titlebar",
|
|
cancel: "li"
|
|
});
|
|
var S = i && (!e.support.boxModel || e("object,embed", h ? null : d).length > 0);
|
|
if (n || S) {
|
|
if (h && c.allowBodyStretch && e.support.boxModel && e("html,body").css("height", "100%"), (n || !e.support.boxModel) && !h) var E = p(d, "borderTopWidth"),
|
|
O = p(d, "borderLeftWidth"),
|
|
T = E ? "(0 - " + E + ")" : 0,
|
|
M = O ? "(0 - " + O + ")" : 0;
|
|
e.each(x, function(e, t) {
|
|
var o = t[0].style;
|
|
if (o.position = "absolute", e < 2) h ? o.setExpression("height", "Math.max(document.body.scrollHeight, document.body.offsetHeight) - (jQuery.support.boxModel?0:" + c.quirksmodeOffsetHack + ') + "px"') : o.setExpression("height", 'this.parentNode.offsetHeight + "px"'), h ? o.setExpression("width", 'jQuery.support.boxModel && document.documentElement.clientWidth || document.body.clientWidth + "px"') : o.setExpression("width", 'this.parentNode.offsetWidth + "px"'), M && o.setExpression("left", M), T && o.setExpression("top", T);
|
|
else if (c.centerY) h && o.setExpression("top", '(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (blah = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"'), o.marginTop = 0;
|
|
else if (!c.centerY && h) {
|
|
var n = "((document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + " + (c.css && c.css.top ? parseInt(c.css.top, 10) : 0) + ') + "px"';
|
|
o.setExpression("top", n)
|
|
}
|
|
})
|
|
}
|
|
if (k && (c.theme ? I.find(".ui-widget-content").append(k) : I.append(k), (k.jquery || k.nodeType) && e(k).show()), (o || c.forceIframe) && c.showOverlay && g.show(), c.fadeIn) {
|
|
var B = c.onBlock ? c.onBlock : t,
|
|
j = c.showOverlay && !k ? B : t,
|
|
H = k ? B : t;
|
|
c.showOverlay && v._fadeIn(c.fadeIn, j), k && I._fadeIn(c.fadeIn, H)
|
|
} else c.showOverlay && v.show(), k && I.show(), c.onBlock && c.onBlock.bind(I)();
|
|
if (r(1, d, c), h ? (s = I[0], l = e(c.focusableElements, s), c.focusInput && setTimeout(f, 20)) : function(e, t, o) {
|
|
var n = e.parentNode,
|
|
i = e.style,
|
|
s = (n.offsetWidth - e.offsetWidth) / 2 - p(n, "borderLeftWidth"),
|
|
l = (n.offsetHeight - e.offsetHeight) / 2 - p(n, "borderTopWidth");
|
|
t && (i.left = s > 0 ? s + "px" : "0");
|
|
o && (i.top = l > 0 ? l + "px" : "0")
|
|
}(I[0], c.centerX, c.centerY), c.timeout) {
|
|
var z = setTimeout(function() {
|
|
h ? e.unblockUI(c) : e(d).unblock(c)
|
|
}, c.timeout);
|
|
e(d).data("blockUI.timeout", z)
|
|
}
|
|
}
|
|
}
|
|
|
|
function a(t, o) {
|
|
var n, i, d = t == window,
|
|
a = e(t),
|
|
u = a.data("blockUI.history"),
|
|
f = a.data("blockUI.timeout");
|
|
f && (clearTimeout(f), a.removeData("blockUI.timeout")), o = e.extend({}, e.blockUI.defaults, o || {}), r(0, t, o), null === o.onUnblock && (o.onUnblock = a.data("blockUI.onUnblock"), a.removeData("blockUI.onUnblock")), i = d ? e(document.body).children().filter(".blockUI").add("body > .blockUI") : a.find(">.blockUI"), o.cursorReset && (i.length > 1 && (i[1].style.cursor = o.cursorReset), i.length > 2 && (i[2].style.cursor = o.cursorReset)), d && (s = l = null), o.fadeOut ? (n = i.length, i.stop().fadeOut(o.fadeOut, function() {
|
|
0 == --n && c(i, u, o, t)
|
|
})) : c(i, u, o, t)
|
|
}
|
|
|
|
function c(t, o, n, i) {
|
|
var s = e(i);
|
|
if (!s.data("blockUI.isBlocked")) {
|
|
t.each(function(e, t) {
|
|
this.parentNode && this.parentNode.removeChild(this)
|
|
}), o && o.el && (o.el.style.display = o.display, o.el.style.position = o.position, o.el.style.cursor = "default", o.parent && o.parent.appendChild(o.el), s.removeData("blockUI.history")), s.data("blockUI.static") && s.css("position", "static"), "function" == typeof n.onUnblock && n.onUnblock(i, n);
|
|
var l = e(document.body),
|
|
d = l.width(),
|
|
a = l[0].style.width;
|
|
l.width(d - 1).width(d), l[0].style.width = a
|
|
}
|
|
}
|
|
|
|
function r(t, o, n) {
|
|
var i = o == window,
|
|
l = e(o);
|
|
if ((t || (!i || s) && (i || l.data("blockUI.isBlocked"))) && (l.data("blockUI.isBlocked", t), i && n.bindEvents && (!t || n.showOverlay))) {
|
|
var d = "mousedown mouseup keydown keypress keyup touchstart touchend touchmove";
|
|
t ? e(document).on(d, n, u) : e(document).off(d, u)
|
|
}
|
|
}
|
|
|
|
function u(t) {
|
|
if ("keydown" === t.type && t.keyCode && 9 == t.keyCode && s && t.data.constrainTabKey) {
|
|
var o = l,
|
|
n = !t.shiftKey && t.target === o[o.length - 1],
|
|
i = t.shiftKey && t.target === o[0];
|
|
if (n || i) return setTimeout(function() {
|
|
f(i)
|
|
}, 10), !1
|
|
}
|
|
var d = t.data,
|
|
a = e(t.target);
|
|
return a.hasClass("blockOverlay") && d.onOverlayClick && d.onOverlayClick(t), a.parents("div." + d.blockMsgClass).length > 0 || 0 === a.parents().children().filter("div.blockUI").length
|
|
}
|
|
|
|
function f(e) {
|
|
if (l) {
|
|
var t = l[!0 === e ? l.length - 1 : 0];
|
|
t && t.trigger("focus")
|
|
}
|
|
}
|
|
|
|
function p(t, o) {
|
|
return parseInt(e.css(t, o), 10) || 0
|
|
}
|
|
}
|
|
"function" == typeof define && define.amd && define.amd.jQuery ? define(["jquery"], e) : e(jQuery)
|
|
}();
|