diff --git a/dist/js/fontawesome-iconpicker.js b/dist/js/fontawesome-iconpicker.js
index a964535..fabafff 100644
--- a/dist/js/fontawesome-iconpicker.js
+++ b/dist/js/fontawesome-iconpicker.js
@@ -1,350 +1,356 @@
-(function(a, b) {
- a.ui = a.ui || {};
- var c, d = Math.max, e = Math.abs, f = Math.round, g = /left|center|right/, h = /top|center|bottom/, i = /[\+\-]\d+(\.[\d]+)?%?/, j = /^\w+/, k = /%$/, l = a.fn.pos;
- function m(a, b, c) {
- return [ parseFloat(a[0]) * (k.test(a[0]) ? b / 100 : 1), parseFloat(a[1]) * (k.test(a[1]) ? c / 100 : 1) ];
- }
- function n(b, c) {
- return parseInt(a.css(b, c), 10) || 0;
+(function(a) {
+ if (typeof define === "function" && define.amd) {
+ define([ "jquery" ], a);
+ } else {
+ a(jQuery);
}
- function o(b) {
- var c = b[0];
- if (c.nodeType === 9) {
- return {
- width: b.width(),
- height: b.height(),
- offset: {
- top: 0,
- left: 0
- }
- };
+})(function(a) {
+ a.ui = a.ui || {};
+ var b = a.ui.version = "1.12.1";
+ (function() {
+ var b, c = Math.max, d = Math.abs, e = /left|center|right/, f = /top|center|bottom/, g = /[\+\-]\d+(\.[\d]+)?%?/, h = /^\w+/, i = /%$/, j = a.fn.pos;
+ function k(a, b, c) {
+ return [ parseFloat(a[0]) * (i.test(a[0]) ? b / 100 : 1), parseFloat(a[1]) * (i.test(a[1]) ? c / 100 : 1) ];
}
- if (a.isWindow(c)) {
- return {
- width: b.width(),
- height: b.height(),
- offset: {
- top: b.scrollTop(),
- left: b.scrollLeft()
- }
- };
+ function l(b, c) {
+ return parseInt(a.css(b, c), 10) || 0;
}
- if (c.preventDefault) {
+ function m(b) {
+ var c = b[0];
+ if (c.nodeType === 9) {
+ return {
+ width: b.width(),
+ height: b.height(),
+ offset: {
+ top: 0,
+ left: 0
+ }
+ };
+ }
+ if (a.isWindow(c)) {
+ return {
+ width: b.width(),
+ height: b.height(),
+ offset: {
+ top: b.scrollTop(),
+ left: b.scrollLeft()
+ }
+ };
+ }
+ if (c.preventDefault) {
+ return {
+ width: 0,
+ height: 0,
+ offset: {
+ top: c.pageY,
+ left: c.pageX
+ }
+ };
+ }
return {
- width: 0,
- height: 0,
- offset: {
- top: c.pageY,
- left: c.pageX
- }
+ width: b.outerWidth(),
+ height: b.outerHeight(),
+ offset: b.offset()
};
}
- return {
- width: b.outerWidth(),
- height: b.outerHeight(),
- offset: b.offset()
+ a.pos = {
+ scrollbarWidth: function() {
+ if (b !== undefined) {
+ return b;
+ }
+ var c, d, e = a("
"), f = e.children()[0];
+ a("body").append(e);
+ c = f.offsetWidth;
+ e.css("overflow", "scroll");
+ d = f.offsetWidth;
+ if (c === d) {
+ d = e[0].clientWidth;
+ }
+ e.remove();
+ return b = c - d;
+ },
+ getScrollInfo: function(b) {
+ var c = b.isWindow || b.isDocument ? "" : b.element.css("overflow-x"), d = b.isWindow || b.isDocument ? "" : b.element.css("overflow-y"), e = c === "scroll" || c === "auto" && b.width < b.element[0].scrollWidth, f = d === "scroll" || d === "auto" && b.height < b.element[0].scrollHeight;
+ return {
+ width: f ? a.pos.scrollbarWidth() : 0,
+ height: e ? a.pos.scrollbarWidth() : 0
+ };
+ },
+ getWithinInfo: function(b) {
+ var c = a(b || window), d = a.isWindow(c[0]), e = !!c[0] && c[0].nodeType === 9, f = !d && !e;
+ return {
+ element: c,
+ isWindow: d,
+ isDocument: e,
+ offset: f ? a(b).offset() : {
+ left: 0,
+ top: 0
+ },
+ scrollLeft: c.scrollLeft(),
+ scrollTop: c.scrollTop(),
+ width: c.outerWidth(),
+ height: c.outerHeight()
+ };
+ }
};
- }
- a.pos = {
- scrollbarWidth: function() {
- if (c !== b) {
- return c;
+ a.fn.pos = function(b) {
+ if (!b || !b.of) {
+ return j.apply(this, arguments);
}
- var d, e, f = a(""), g = f.children()[0];
- a("body").append(f);
- d = g.offsetWidth;
- f.css("overflow", "scroll");
- e = g.offsetWidth;
- if (d === e) {
- e = f[0].clientWidth;
+ b = a.extend({}, b);
+ var i, n, o, p, q, r, s = a(b.of), t = a.pos.getWithinInfo(b.within), u = a.pos.getScrollInfo(t), v = (b.collision || "flip").split(" "), w = {};
+ r = m(s);
+ if (s[0].preventDefault) {
+ b.at = "left top";
}
- f.remove();
- return c = d - e;
- },
- getScrollInfo: function(b) {
- var c = b.isWindow || b.isDocument ? "" : b.element.css("overflow-x"), d = b.isWindow || b.isDocument ? "" : b.element.css("overflow-y"), e = c === "scroll" || c === "auto" && b.width < b.element[0].scrollWidth, f = d === "scroll" || d === "auto" && b.height < b.element[0].scrollHeight;
- return {
- width: f ? a.pos.scrollbarWidth() : 0,
- height: e ? a.pos.scrollbarWidth() : 0
- };
- },
- getWithinInfo: function(b) {
- var c = a(b || window), d = a.isWindow(c[0]), e = !!c[0] && c[0].nodeType === 9;
- return {
- element: c,
- isWindow: d,
- isDocument: e,
- offset: c.offset() || {
- left: 0,
- top: 0
- },
- scrollLeft: c.scrollLeft(),
- scrollTop: c.scrollTop(),
- width: d ? c.width() : c.outerWidth(),
- height: d ? c.height() : c.outerHeight()
- };
- }
- };
- a.fn.pos = function(b) {
- if (!b || !b.of) {
- return l.apply(this, arguments);
- }
- b = a.extend({}, b);
- var c, k, p, q, r, s, t = a(b.of), u = a.pos.getWithinInfo(b.within), v = a.pos.getScrollInfo(u), w = (b.collision || "flip").split(" "), x = {};
- s = o(t);
- if (t[0].preventDefault) {
- b.at = "left top";
- }
- k = s.width;
- p = s.height;
- q = s.offset;
- r = a.extend({}, q);
- a.each([ "my", "at" ], function() {
- var a = (b[this] || "").split(" "), c, d;
- if (a.length === 1) {
- a = g.test(a[0]) ? a.concat([ "center" ]) : h.test(a[0]) ? [ "center" ].concat(a) : [ "center", "center" ];
- }
- a[0] = g.test(a[0]) ? a[0] : "center";
- a[1] = h.test(a[1]) ? a[1] : "center";
- c = i.exec(a[0]);
- d = i.exec(a[1]);
- x[this] = [ c ? c[0] : 0, d ? d[0] : 0 ];
- b[this] = [ j.exec(a[0])[0], j.exec(a[1])[0] ];
- });
- if (w.length === 1) {
- w[1] = w[0];
- }
- if (b.at[0] === "right") {
- r.left += k;
- } else if (b.at[0] === "center") {
- r.left += k / 2;
- }
- if (b.at[1] === "bottom") {
- r.top += p;
- } else if (b.at[1] === "center") {
- r.top += p / 2;
- }
- c = m(x.at, k, p);
- r.left += c[0];
- r.top += c[1];
- return this.each(function() {
- var g, h, i = a(this), j = i.outerWidth(), l = i.outerHeight(), o = n(this, "marginLeft"), s = n(this, "marginTop"), y = j + o + n(this, "marginRight") + v.width, z = l + s + n(this, "marginBottom") + v.height, A = a.extend({}, r), B = m(x.my, i.outerWidth(), i.outerHeight());
- if (b.my[0] === "right") {
- A.left -= j;
- } else if (b.my[0] === "center") {
- A.left -= j / 2;
- }
- if (b.my[1] === "bottom") {
- A.top -= l;
- } else if (b.my[1] === "center") {
- A.top -= l / 2;
- }
- A.left += B[0];
- A.top += B[1];
- if (!a.support.offsetFractions) {
- A.left = f(A.left);
- A.top = f(A.top);
- }
- g = {
- marginLeft: o,
- marginTop: s
- };
- a.each([ "left", "top" ], function(d, e) {
- if (a.ui.pos[w[d]]) {
- a.ui.pos[w[d]][e](A, {
- targetWidth: k,
- targetHeight: p,
- elemWidth: j,
- elemHeight: l,
- collisionPosition: g,
- collisionWidth: y,
- collisionHeight: z,
- offset: [ c[0] + B[0], c[1] + B[1] ],
- my: b.my,
- at: b.at,
- within: u,
- elem: i
- });
+ n = r.width;
+ o = r.height;
+ p = r.offset;
+ q = a.extend({}, p);
+ a.each([ "my", "at" ], function() {
+ var a = (b[this] || "").split(" "), c, d;
+ if (a.length === 1) {
+ a = e.test(a[0]) ? a.concat([ "center" ]) : f.test(a[0]) ? [ "center" ].concat(a) : [ "center", "center" ];
}
+ a[0] = e.test(a[0]) ? a[0] : "center";
+ a[1] = f.test(a[1]) ? a[1] : "center";
+ c = g.exec(a[0]);
+ d = g.exec(a[1]);
+ w[this] = [ c ? c[0] : 0, d ? d[0] : 0 ];
+ b[this] = [ h.exec(a[0])[0], h.exec(a[1])[0] ];
});
- if (b.using) {
- h = function(a) {
- var c = q.left - A.left, f = c + k - j, g = q.top - A.top, h = g + p - l, m = {
- target: {
- element: t,
- left: q.left,
- top: q.top,
- width: k,
- height: p
- },
- element: {
- element: i,
- left: A.left,
- top: A.top,
- width: j,
- height: l
- },
- horizontal: f < 0 ? "left" : c > 0 ? "right" : "center",
- vertical: h < 0 ? "top" : g > 0 ? "bottom" : "middle"
- };
- if (k < j && e(c + f) < k) {
- m.horizontal = "center";
- }
- if (p < l && e(g + h) < p) {
- m.vertical = "middle";
- }
- if (d(e(c), e(f)) > d(e(g), e(h))) {
- m.important = "horizontal";
- } else {
- m.important = "vertical";
- }
- b.using.call(this, a, m);
- };
+ if (v.length === 1) {
+ v[1] = v[0];
}
- i.offset(a.extend(A, {
- using: h
- }));
- });
- };
- a.ui.pos = {
- _trigger: function(a, b, c, d) {
- if (b.elem) {
- b.elem.trigger({
- type: c,
- position: a,
- positionData: b,
- triggered: d
- });
+ if (b.at[0] === "right") {
+ q.left += n;
+ } else if (b.at[0] === "center") {
+ q.left += n / 2;
}
- },
- fit: {
- left: function(b, c) {
- a.ui.pos._trigger(b, c, "posCollide", "fitLeft");
- var e = c.within, f = e.isWindow ? e.scrollLeft : e.offset.left, g = e.width, h = b.left - c.collisionPosition.marginLeft, i = f - h, j = h + c.collisionWidth - g - f, k;
- if (c.collisionWidth > g) {
- if (i > 0 && j <= 0) {
- k = b.left + i + c.collisionWidth - g - f;
- b.left += i - k;
- } else if (j > 0 && i <= 0) {
- b.left = f;
- } else {
- if (i > j) {
- b.left = f + g - c.collisionWidth;
+ if (b.at[1] === "bottom") {
+ q.top += o;
+ } else if (b.at[1] === "center") {
+ q.top += o / 2;
+ }
+ i = k(w.at, n, o);
+ q.left += i[0];
+ q.top += i[1];
+ return this.each(function() {
+ var e, f, g = a(this), h = g.outerWidth(), j = g.outerHeight(), m = l(this, "marginLeft"), r = l(this, "marginTop"), x = h + m + l(this, "marginRight") + u.width, y = j + r + l(this, "marginBottom") + u.height, z = a.extend({}, q), A = k(w.my, g.outerWidth(), g.outerHeight());
+ if (b.my[0] === "right") {
+ z.left -= h;
+ } else if (b.my[0] === "center") {
+ z.left -= h / 2;
+ }
+ if (b.my[1] === "bottom") {
+ z.top -= j;
+ } else if (b.my[1] === "center") {
+ z.top -= j / 2;
+ }
+ z.left += A[0];
+ z.top += A[1];
+ e = {
+ marginLeft: m,
+ marginTop: r
+ };
+ a.each([ "left", "top" ], function(c, d) {
+ if (a.ui.pos[v[c]]) {
+ a.ui.pos[v[c]][d](z, {
+ targetWidth: n,
+ targetHeight: o,
+ elemWidth: h,
+ elemHeight: j,
+ collisionPosition: e,
+ collisionWidth: x,
+ collisionHeight: y,
+ offset: [ i[0] + A[0], i[1] + A[1] ],
+ my: b.my,
+ at: b.at,
+ within: t,
+ elem: g
+ });
+ }
+ });
+ if (b.using) {
+ f = function(a) {
+ var e = p.left - z.left, f = e + n - h, i = p.top - z.top, k = i + o - j, l = {
+ target: {
+ element: s,
+ left: p.left,
+ top: p.top,
+ width: n,
+ height: o
+ },
+ element: {
+ element: g,
+ left: z.left,
+ top: z.top,
+ width: h,
+ height: j
+ },
+ horizontal: f < 0 ? "left" : e > 0 ? "right" : "center",
+ vertical: k < 0 ? "top" : i > 0 ? "bottom" : "middle"
+ };
+ if (n < h && d(e + f) < n) {
+ l.horizontal = "center";
+ }
+ if (o < j && d(i + k) < o) {
+ l.vertical = "middle";
+ }
+ if (c(d(e), d(f)) > c(d(i), d(k))) {
+ l.important = "horizontal";
} else {
- b.left = f;
+ l.important = "vertical";
}
- }
- } else if (i > 0) {
- b.left += i;
- } else if (j > 0) {
- b.left -= j;
- } else {
- b.left = d(b.left - h, b.left);
+ b.using.call(this, a, l);
+ };
+ }
+ g.offset(a.extend(z, {
+ using: f
+ }));
+ });
+ };
+ a.ui.pos = {
+ _trigger: function(a, b, c, d) {
+ if (b.elem) {
+ b.elem.trigger({
+ type: c,
+ position: a,
+ positionData: b,
+ triggered: d
+ });
}
- a.ui.pos._trigger(b, c, "posCollided", "fitLeft");
},
- top: function(b, c) {
- a.ui.pos._trigger(b, c, "posCollide", "fitTop");
- var e = c.within, f = e.isWindow ? e.scrollTop : e.offset.top, g = c.within.height, h = b.top - c.collisionPosition.marginTop, i = f - h, j = h + c.collisionHeight - g - f, k;
- if (c.collisionHeight > g) {
- if (i > 0 && j <= 0) {
- k = b.top + i + c.collisionHeight - g - f;
- b.top += i - k;
- } else if (j > 0 && i <= 0) {
- b.top = f;
- } else {
- if (i > j) {
- b.top = f + g - c.collisionHeight;
+ fit: {
+ left: function(b, d) {
+ a.ui.pos._trigger(b, d, "posCollide", "fitLeft");
+ var e = d.within, f = e.isWindow ? e.scrollLeft : e.offset.left, g = e.width, h = b.left - d.collisionPosition.marginLeft, i = f - h, j = h + d.collisionWidth - g - f, k;
+ if (d.collisionWidth > g) {
+ if (i > 0 && j <= 0) {
+ k = b.left + i + d.collisionWidth - g - f;
+ b.left += i - k;
+ } else if (j > 0 && i <= 0) {
+ b.left = f;
} else {
- b.top = f;
+ if (i > j) {
+ b.left = f + g - d.collisionWidth;
+ } else {
+ b.left = f;
+ }
}
+ } else if (i > 0) {
+ b.left += i;
+ } else if (j > 0) {
+ b.left -= j;
+ } else {
+ b.left = c(b.left - h, b.left);
}
- } else if (i > 0) {
- b.top += i;
- } else if (j > 0) {
- b.top -= j;
- } else {
- b.top = d(b.top - h, b.top);
- }
- a.ui.pos._trigger(b, c, "posCollided", "fitTop");
- }
- },
- flip: {
- left: function(b, c) {
- a.ui.pos._trigger(b, c, "posCollide", "flipLeft");
- var d = c.within, f = d.offset.left + d.scrollLeft, g = d.width, h = d.isWindow ? d.scrollLeft : d.offset.left, i = b.left - c.collisionPosition.marginLeft, j = i - h, k = i + c.collisionWidth - g - h, l = c.my[0] === "left" ? -c.elemWidth : c.my[0] === "right" ? c.elemWidth : 0, m = c.at[0] === "left" ? c.targetWidth : c.at[0] === "right" ? -c.targetWidth : 0, n = -2 * c.offset[0], o, p;
- if (j < 0) {
- o = b.left + l + m + n + c.collisionWidth - g - f;
- if (o < 0 || o < e(j)) {
- b.left += l + m + n;
- }
- } else if (k > 0) {
- p = b.left - c.collisionPosition.marginLeft + l + m + n - h;
- if (p > 0 || e(p) < k) {
- b.left += l + m + n;
+ a.ui.pos._trigger(b, d, "posCollided", "fitLeft");
+ },
+ top: function(b, d) {
+ a.ui.pos._trigger(b, d, "posCollide", "fitTop");
+ var e = d.within, f = e.isWindow ? e.scrollTop : e.offset.top, g = d.within.height, h = b.top - d.collisionPosition.marginTop, i = f - h, j = h + d.collisionHeight - g - f, k;
+ if (d.collisionHeight > g) {
+ if (i > 0 && j <= 0) {
+ k = b.top + i + d.collisionHeight - g - f;
+ b.top += i - k;
+ } else if (j > 0 && i <= 0) {
+ b.top = f;
+ } else {
+ if (i > j) {
+ b.top = f + g - d.collisionHeight;
+ } else {
+ b.top = f;
+ }
+ }
+ } else if (i > 0) {
+ b.top += i;
+ } else if (j > 0) {
+ b.top -= j;
+ } else {
+ b.top = c(b.top - h, b.top);
}
+ a.ui.pos._trigger(b, d, "posCollided", "fitTop");
}
- a.ui.pos._trigger(b, c, "posCollided", "flipLeft");
},
- top: function(b, c) {
- a.ui.pos._trigger(b, c, "posCollide", "flipTop");
- var d = c.within, f = d.offset.top + d.scrollTop, g = d.height, h = d.isWindow ? d.scrollTop : d.offset.top, i = b.top - c.collisionPosition.marginTop, j = i - h, k = i + c.collisionHeight - g - h, l = c.my[1] === "top", m = l ? -c.elemHeight : c.my[1] === "bottom" ? c.elemHeight : 0, n = c.at[1] === "top" ? c.targetHeight : c.at[1] === "bottom" ? -c.targetHeight : 0, o = -2 * c.offset[1], p, q;
- if (j < 0) {
- q = b.top + m + n + o + c.collisionHeight - g - f;
- if (b.top + m + n + o > j && (q < 0 || q < e(j))) {
- b.top += m + n + o;
+ flip: {
+ left: function(b, c) {
+ a.ui.pos._trigger(b, c, "posCollide", "flipLeft");
+ var e = c.within, f = e.offset.left + e.scrollLeft, g = e.width, h = e.isWindow ? e.scrollLeft : e.offset.left, i = b.left - c.collisionPosition.marginLeft, j = i - h, k = i + c.collisionWidth - g - h, l = c.my[0] === "left" ? -c.elemWidth : c.my[0] === "right" ? c.elemWidth : 0, m = c.at[0] === "left" ? c.targetWidth : c.at[0] === "right" ? -c.targetWidth : 0, n = -2 * c.offset[0], o, p;
+ if (j < 0) {
+ o = b.left + l + m + n + c.collisionWidth - g - f;
+ if (o < 0 || o < d(j)) {
+ b.left += l + m + n;
+ }
+ } else if (k > 0) {
+ p = b.left - c.collisionPosition.marginLeft + l + m + n - h;
+ if (p > 0 || d(p) < k) {
+ b.left += l + m + n;
+ }
}
- } else if (k > 0) {
- p = b.top - c.collisionPosition.marginTop + m + n + o - h;
- if (b.top + m + n + o > k && (p > 0 || e(p) < k)) {
- b.top += m + n + o;
+ a.ui.pos._trigger(b, c, "posCollided", "flipLeft");
+ },
+ top: function(b, c) {
+ a.ui.pos._trigger(b, c, "posCollide", "flipTop");
+ var e = c.within, f = e.offset.top + e.scrollTop, g = e.height, h = e.isWindow ? e.scrollTop : e.offset.top, i = b.top - c.collisionPosition.marginTop, j = i - h, k = i + c.collisionHeight - g - h, l = c.my[1] === "top", m = l ? -c.elemHeight : c.my[1] === "bottom" ? c.elemHeight : 0, n = c.at[1] === "top" ? c.targetHeight : c.at[1] === "bottom" ? -c.targetHeight : 0, o = -2 * c.offset[1], p, q;
+ if (j < 0) {
+ q = b.top + m + n + o + c.collisionHeight - g - f;
+ if (q < 0 || q < d(j)) {
+ b.top += m + n + o;
+ }
+ } else if (k > 0) {
+ p = b.top - c.collisionPosition.marginTop + m + n + o - h;
+ if (p > 0 || d(p) < k) {
+ b.top += m + n + o;
+ }
}
+ a.ui.pos._trigger(b, c, "posCollided", "flipTop");
}
- a.ui.pos._trigger(b, c, "posCollided", "flipTop");
- }
- },
- flipfit: {
- left: function() {
- a.ui.pos.flip.left.apply(this, arguments);
- a.ui.pos.fit.left.apply(this, arguments);
},
- top: function() {
- a.ui.pos.flip.top.apply(this, arguments);
- a.ui.pos.fit.top.apply(this, arguments);
+ flipfit: {
+ left: function() {
+ a.ui.pos.flip.left.apply(this, arguments);
+ a.ui.pos.fit.left.apply(this, arguments);
+ },
+ top: function() {
+ a.ui.pos.flip.top.apply(this, arguments);
+ a.ui.pos.fit.top.apply(this, arguments);
+ }
}
- }
- };
- (function() {
- var b, c, d, e, f, g = document.getElementsByTagName("body")[0], h = document.createElement("div");
- b = document.createElement(g ? "div" : "body");
- d = {
- visibility: "hidden",
- width: 0,
- height: 0,
- border: 0,
- margin: 0,
- background: "none"
};
- if (g) {
- a.extend(d, {
- position: "absolute",
- left: "-1000px",
- top: "-1000px"
- });
- }
- for (f in d) {
- b.style[f] = d[f];
- }
- b.appendChild(h);
- c = g || document.documentElement;
- c.insertBefore(b, c.firstChild);
- h.style.cssText = "position: absolute; left: 10.7432222px;";
- e = a(h).offset().left;
- a.support.offsetFractions = e > 10 && e < 11;
- b.innerHTML = "";
- c.removeChild(b);
+ (function() {
+ var b, c, d, e, f, g = document.getElementsByTagName("body")[0], h = document.createElement("div");
+ b = document.createElement(g ? "div" : "body");
+ d = {
+ visibility: "hidden",
+ width: 0,
+ height: 0,
+ border: 0,
+ margin: 0,
+ background: "none"
+ };
+ if (g) {
+ a.extend(d, {
+ position: "absolute",
+ left: "-1000px",
+ top: "-1000px"
+ });
+ }
+ for (f in d) {
+ b.style[f] = d[f];
+ }
+ b.appendChild(h);
+ c = g || document.documentElement;
+ c.insertBefore(b, c.firstChild);
+ h.style.cssText = "position: absolute; left: 10.7432222px;";
+ e = a(h).offset().left;
+ a.support.offsetFractions = e > 10 && e < 11;
+ b.innerHTML = "";
+ c.removeChild(b);
+ })();
})();
-})(jQuery);
+ var c = a.ui.position;
+});
(function(a) {
"use strict";
diff --git a/dist/js/fontawesome-iconpicker.min.js b/dist/js/fontawesome-iconpicker.min.js
index aec7d68..2d3eb89 100644
--- a/dist/js/fontawesome-iconpicker.min.js
+++ b/dist/js/fontawesome-iconpicker.min.js
@@ -1,2 +1 @@
-!function(a,b){function c(a,b,c){return[parseFloat(a[0])*(n.test(a[0])?b/100:1),parseFloat(a[1])*(n.test(a[1])?c/100:1)]}function d(b,c){return parseInt(a.css(b,c),10)||0}function e(b){var c=b[0];return 9===c.nodeType?{width:b.width(),height:b.height(),offset:{top:0,left:0}}:a.isWindow(c)?{width:b.width(),height:b.height(),offset:{top:b.scrollTop(),left:b.scrollLeft()}}:c.preventDefault?{width:0,height:0,offset:{top:c.pageY,left:c.pageX}}:{width:b.outerWidth(),height:b.outerHeight(),offset:b.offset()}}a.ui=a.ui||{};var f,g=Math.max,h=Math.abs,i=Math.round,j=/left|center|right/,k=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,m=/^\w+/,n=/%$/,o=a.fn.pos;a.pos={scrollbarWidth:function(){if(f!==b)return f;var c,d,e=a(""),g=e.children()[0];return a("body").append(e),c=g.offsetWidth,e.css("overflow","scroll"),d=g.offsetWidth,c===d&&(d=e[0].clientWidth),e.remove(),f=c-d},getScrollInfo:function(b){var c=b.isWindow||b.isDocument?"":b.element.css("overflow-x"),d=b.isWindow||b.isDocument?"":b.element.css("overflow-y"),e="scroll"===c||"auto"===c&&b.width0?"right":"center",vertical:f<0?"top":e>0?"bottom":"middle"};ng(h(e),h(f))?i.important="horizontal":i.important="vertical",b.using.call(this,a,i)}),k.offset(a.extend(A,{using:j}))})},a.ui.pos={_trigger:function(a,b,c,d){b.elem&&b.elem.trigger({type:c,position:a,positionData:b,triggered:d})},fit:{left:function(b,c){a.ui.pos._trigger(b,c,"posCollide","fitLeft");var d,e=c.within,f=e.isWindow?e.scrollLeft:e.offset.left,h=e.width,i=b.left-c.collisionPosition.marginLeft,j=f-i,k=i+c.collisionWidth-h-f;c.collisionWidth>h?j>0&&k<=0?(d=b.left+j+c.collisionWidth-h-f,b.left+=j-d):k>0&&j<=0?b.left=f:j>k?b.left=f+h-c.collisionWidth:b.left=f:j>0?b.left+=j:k>0?b.left-=k:b.left=g(b.left-i,b.left),a.ui.pos._trigger(b,c,"posCollided","fitLeft")},top:function(b,c){a.ui.pos._trigger(b,c,"posCollide","fitTop");var d,e=c.within,f=e.isWindow?e.scrollTop:e.offset.top,h=c.within.height,i=b.top-c.collisionPosition.marginTop,j=f-i,k=i+c.collisionHeight-h-f;c.collisionHeight>h?j>0&&k<=0?(d=b.top+j+c.collisionHeight-h-f,b.top+=j-d):k>0&&j<=0?b.top=f:j>k?b.top=f+h-c.collisionHeight:b.top=f:j>0?b.top+=j:k>0?b.top-=k:b.top=g(b.top-i,b.top),a.ui.pos._trigger(b,c,"posCollided","fitTop")}},flip:{left:function(b,c){a.ui.pos._trigger(b,c,"posCollide","flipLeft");var d,e,f=c.within,g=f.offset.left+f.scrollLeft,i=f.width,j=f.isWindow?f.scrollLeft:f.offset.left,k=b.left-c.collisionPosition.marginLeft,l=k-j,m=k+c.collisionWidth-i-j,n="left"===c.my[0]?-c.elemWidth:"right"===c.my[0]?c.elemWidth:0,o="left"===c.at[0]?c.targetWidth:"right"===c.at[0]?-c.targetWidth:0,p=-2*c.offset[0];l<0?(d=b.left+n+o+p+c.collisionWidth-i-g,(d<0||d0&&(e=b.left-c.collisionPosition.marginLeft+n+o+p-j,(e>0||h(e)l&&(e<0||e0&&(d=b.top-c.collisionPosition.marginTop+o+p+q-j,b.top+o+p+q>m&&(d>0||h(d)10&&e<11,b.innerHTML="",c.removeChild(b)}()}(jQuery),function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery"],a):window.jQuery&&!window.jQuery.fn.iconpicker&&a(window.jQuery)}(function(a){"use strict";var b={isEmpty:function(a){return a===!1||""===a||null===a||void 0===a},isEmptyObject:function(a){return this.isEmpty(a)===!0||0===a.length},isElement:function(b){return a(b).length>0},isString:function(a){return"string"==typeof a||a instanceof String},isArray:function(b){return a.isArray(b)},inArray:function(b,c){return a.inArray(b,c)!==-1},throwError:function(a){throw"Font Awesome Icon Picker Exception: "+a}},c=function(d,e){this._id=c._idCounter++,this.element=a(d).addClass("iconpicker-element"),this._trigger("iconpickerCreate"),this.options=a.extend({},c.defaultOptions,this.element.data(),e),this.options.templates=a.extend({},c.defaultOptions.templates,this.options.templates),this.options.originalPlacement=this.options.placement,this.container=!!b.isElement(this.options.container)&&a(this.options.container),this.container===!1&&(this.element.is(".dropdown-toggle")?this.container=a("~ .dropdown-menu:first",this.element):this.container=this.element.is("input,textarea,button,.btn")?this.element.parent():this.element),this.container.addClass("iconpicker-container"),this.isDropdownMenu()&&(this.options.templates.search=!1,this.options.templates.buttons=!1,this.options.placement="inline"),this.input=!!this.element.is("input,textarea")&&this.element.addClass("iconpicker-input"),this.input===!1&&(this.input=this.container.find(this.options.input),this.input.is("input,textarea")||(this.input=!1)),this.component=this.isDropdownMenu()?this.container.parent().find(this.options.component):this.container.find(this.options.component),0===this.component.length?this.component=!1:this.component.find("i").addClass("iconpicker-component"),this._createPopover(),this._createIconpicker(),0===this.getAcceptButton().length&&(this.options.mustAccept=!1),this.isInputGroup()?this.container.parent().append(this.popover):this.container.append(this.popover),this._bindElementEvents(),this._bindWindowEvents(),this.update(this.options.selected),this.isInline()&&this.show(),this._trigger("iconpickerCreated")};c._idCounter=0,c.defaultOptions={title:!1,selected:!1,defaultValue:!1,placement:"bottom",collision:"none",animation:!0,hideOnSelect:!1,showFooter:!1,searchInFooter:!1,mustAccept:!1,selectedCustomClass:"bg-primary",icons:[],fullClassFormatter:function(a){return"fa "+a},input:"input,.iconpicker-input",inputSearch:!1,container:!1,component:".input-group-addon,.iconpicker-component",templates:{popover:'',footer:'',buttons:' ',search:'',iconpicker:'',iconpickerItem:''}},c.batch=function(b,c){var d=Array.prototype.slice.call(arguments,2);return a(b).each(function(){var b=a(this).data("iconpicker");b&&b[c].apply(b,d)})},c.prototype={constructor:c,options:{},_id:0,_trigger:function(b,c){c=c||{},this.element.trigger(a.extend({type:b,iconpickerInstance:this},c))},_createPopover:function(){this.popover=a(this.options.templates.popover);var c=this.popover.find(".popover-title");if(this.options.title&&c.append(a(''+this.options.title+"
")),this.hasSeparatedSearchInput()&&!this.options.searchInFooter?c.append(this.options.templates.search):this.options.title||c.remove(),this.options.showFooter&&!b.isEmpty(this.options.templates.footer)){var d=a(this.options.templates.footer);this.hasSeparatedSearchInput()&&this.options.searchInFooter&&d.append(a(this.options.templates.search)),b.isEmpty(this.options.templates.buttons)||d.append(a(this.options.templates.buttons)),this.popover.append(d)}return this.options.animation===!0&&this.popover.addClass("fade"),this.popover},_createIconpicker:function(){var b=this;this.iconpicker=a(this.options.templates.iconpicker);var c=function(c){var d=a(this);return d.is("i")&&(d=d.parent()),b._trigger("iconpickerSelect",{iconpickerItem:d,iconpickerValue:b.iconpickerValue}),b.options.mustAccept===!1?(b.update(d.data("iconpickerValue")),b._trigger("iconpickerSelected",{iconpickerItem:this,iconpickerValue:b.iconpickerValue})):b.update(d.data("iconpickerValue"),!0),b.options.hideOnSelect&&b.options.mustAccept===!1&&b.hide(),c.preventDefault(),!1};for(var d in this.options.icons)if("string"==typeof this.options.icons[d]){var e=a(this.options.templates.iconpickerItem);e.find("i").addClass(this.options.fullClassFormatter(this.options.icons[d])),e.data("iconpickerValue",this.options.icons[d]).on("click.iconpicker",c),this.iconpicker.find(".iconpicker-items").append(e.attr("title","."+this.options.icons[d]))}return this.popover.find(".popover-content").append(this.iconpicker),this.iconpicker},_isEventInsideIconpicker:function(b){var c=a(b.target);return!((!c.hasClass("iconpicker-element")||c.hasClass("iconpicker-element")&&!c.is(this.element))&&0===c.parents(".iconpicker-popover").length)},_bindElementEvents:function(){var c=this;this.getSearchInput().on("keyup.iconpicker",function(){c.filter(a(this).val().toLowerCase())}),this.getAcceptButton().on("click.iconpicker",function(){var a=c.iconpicker.find(".iconpicker-selected").get(0);c.update(c.iconpickerValue),c._trigger("iconpickerSelected",{iconpickerItem:a,iconpickerValue:c.iconpickerValue}),c.isInline()||c.hide()}),this.getCancelButton().on("click.iconpicker",function(){c.isInline()||c.hide()}),this.element.on("focus.iconpicker",function(a){c.show(),a.stopPropagation()}),this.hasComponent()&&this.component.on("click.iconpicker",function(){c.toggle()}),this.hasInput()&&this.input.on("keyup.iconpicker",function(d){b.inArray(d.keyCode,[38,40,37,39,16,17,18,9,8,91,93,20,46,186,190,46,78,188,44,86])?c._updateFormGroupStatus(c.getValid(this.value)!==!1):c.update(),c.options.inputSearch===!0&&c.filter(a(this).val().toLowerCase())})},_bindWindowEvents:function(){var b=a(window.document),c=this,d=".iconpicker.inst"+this._id;return a(window).on("resize.iconpicker"+d+" orientationchange.iconpicker"+d,function(a){c.popover.hasClass("in")&&c.updatePlacement()}),c.isInline()||b.on("mouseup"+d,function(a){return c._isEventInsideIconpicker(a)||c.isInline()||c.hide(),a.stopPropagation(),a.preventDefault(),!1}),!1},_unbindElementEvents:function(){this.popover.off(".iconpicker"),this.element.off(".iconpicker"),this.hasInput()&&this.input.off(".iconpicker"),this.hasComponent()&&this.component.off(".iconpicker"),this.hasContainer()&&this.container.off(".iconpicker")},_unbindWindowEvents:function(){a(window).off(".iconpicker.inst"+this._id),a(window.document).off(".iconpicker.inst"+this._id)},updatePlacement:function(b,c){b=b||this.options.placement,this.options.placement=b,c=c||this.options.collision,c=c===!0?"flip":c;var d={at:"right bottom",my:"right top",of:this.hasInput()&&!this.isInputGroup()?this.input:this.container,collision:c===!0?"flip":c,within:window};if(this.popover.removeClass("inline topLeftCorner topLeft top topRight topRightCorner rightTop right rightBottom bottomRight bottomRightCorner bottom bottomLeft bottomLeftCorner leftBottom left leftTop"),"object"==typeof b)return this.popover.pos(a.extend({},d,b));switch(b){case"inline":d=!1;break;case"topLeftCorner":d.my="right bottom",d.at="left top";break;case"topLeft":d.my="left bottom",d.at="left top";break;case"top":d.my="center bottom",d.at="center top";break;case"topRight":d.my="right bottom",d.at="right top";break;case"topRightCorner":d.my="left bottom",d.at="right top";break;case"rightTop":d.my="left bottom",d.at="right center";break;case"right":d.my="left center",d.at="right center";break;case"rightBottom":d.my="left top",d.at="right center";break;case"bottomRightCorner":d.my="left top",d.at="right bottom";break;case"bottomRight":d.my="right top",d.at="right bottom";break;case"bottom":d.my="center top",d.at="center bottom";break;case"bottomLeft":d.my="left top",d.at="left bottom";break;case"bottomLeftCorner":d.my="right top",d.at="left bottom";break;case"leftBottom":d.my="right top",d.at="left center";break;case"left":d.my="right center",d.at="left center";break;case"leftTop":d.my="right bottom",d.at="left center";break;default:return!1}return this.popover.css({display:"inline"===this.options.placement?"":"block"}),d!==!1?this.popover.pos(d).css("maxWidth",a(window).width()-this.container.offset().left-5):this.popover.css({top:"auto",right:"auto",bottom:"auto",left:"auto",maxWidth:"none"}),this.popover.addClass(this.options.placement),!0},_updateComponents:function(){if(this.iconpicker.find(".iconpicker-item.iconpicker-selected").removeClass("iconpicker-selected "+this.options.selectedCustomClass),this.iconpickerValue&&this.iconpicker.find("."+this.options.fullClassFormatter(this.iconpickerValue).replace(/ /g,".")).parent().addClass("iconpicker-selected "+this.options.selectedCustomClass),this.hasComponent()){var a=this.component.find("i");a.length>0?a.attr("class",this.options.fullClassFormatter(this.iconpickerValue)):this.component.html(this.getHtml())}},_updateFormGroupStatus:function(a){return!!this.hasInput()&&(a!==!1?this.input.parents(".form-group:first").removeClass("has-error"):this.input.parents(".form-group:first").addClass("has-error"),!0)},getValid:function(c){b.isString(c)||(c="");var d=""===c;return c=a.trim(c),!(!b.inArray(c,this.options.icons)&&!d)&&c},setValue:function(a){var b=this.getValid(a);return b!==!1?(this.iconpickerValue=b,this._trigger("iconpickerSetValue",{iconpickerValue:b}),this.iconpickerValue):(this._trigger("iconpickerInvalid",{iconpickerValue:a}),!1)},getHtml:function(){return''},setSourceValue:function(a){return a=this.setValue(a),a!==!1&&""!==a&&(this.hasInput()?this.input.val(this.iconpickerValue):this.element.data("iconpickerValue",this.iconpickerValue),this._trigger("iconpickerSetSourceValue",{iconpickerValue:a})),a},getSourceValue:function(a){a=a||this.options.defaultValue;var b=a;return b=this.hasInput()?this.input.val():this.element.data("iconpickerValue"),void 0!==b&&""!==b&&null!==b&&b!==!1||(b=a),b},hasInput:function(){return this.input!==!1},isInputSearch:function(){return this.hasInput()&&this.options.inputSearch===!0},isInputGroup:function(){return this.container.is(".input-group")},isDropdownMenu:function(){return this.container.is(".dropdown-menu")},hasSeparatedSearchInput:function(){return this.options.templates.search!==!1&&!this.isInputSearch()},hasComponent:function(){return this.component!==!1},hasContainer:function(){return this.container!==!1},getAcceptButton:function(){return this.popover.find(".iconpicker-btn-accept")},getCancelButton:function(){return this.popover.find(".iconpicker-btn-cancel")},getSearchInput:function(){return this.popover.find(".iconpicker-search")},filter:function(c){if(b.isEmpty(c))return this.iconpicker.find(".iconpicker-item").show(),a(!1);var d=[];return this.iconpicker.find(".iconpicker-item").each(function(){var b=a(this),e=b.attr("title").toLowerCase(),f=!1;try{f=new RegExp(c,"g")}catch(a){f=!1}f!==!1&&e.match(f)?(d.push(b),b.show()):b.hide()}),d},show:function(){return!this.popover.hasClass("in")&&(a.iconpicker.batch(a(".iconpicker-popover.in:not(.inline)").not(this.popover),"hide"),this._trigger("iconpickerShow"),this.updatePlacement(),this.popover.addClass("in"),void setTimeout(a.proxy(function(){this.popover.css("display",this.isInline()?"":"block"),this._trigger("iconpickerShown")},this),this.options.animation?300:1))},hide:function(){return!!this.popover.hasClass("in")&&(this._trigger("iconpickerHide"),this.popover.removeClass("in"),void setTimeout(a.proxy(function(){this.popover.css("display","none"),this.getSearchInput().val(""),this.filter(""),this._trigger("iconpickerHidden")},this),this.options.animation?300:1))},toggle:function(){this.popover.is(":visible")?this.hide():this.show(!0)},update:function(a,b){return a=a?a:this.getSourceValue(this.iconpickerValue),this._trigger("iconpickerUpdate"),b===!0?a=this.setValue(a):(a=this.setSourceValue(a),this._updateFormGroupStatus(a!==!1)),a!==!1&&this._updateComponents(),this._trigger("iconpickerUpdated"),a},destroy:function(){this._trigger("iconpickerDestroy"),this.element.removeData("iconpicker").removeData("iconpickerValue").removeClass("iconpicker-element"),this._unbindElementEvents(),this._unbindWindowEvents(),a(this.popover).remove(),this._trigger("iconpickerDestroyed")},disable:function(){return!!this.hasInput()&&(this.input.prop("disabled",!0),!0)},enable:function(){return!!this.hasInput()&&(this.input.prop("disabled",!1),!0)},isDisabled:function(){return!!this.hasInput()&&this.input.prop("disabled")===!0},isInline:function(){return"inline"===this.options.placement||this.popover.hasClass("inline")}},a.iconpicker=c,a.fn.iconpicker=function(b){return this.each(function(){var d=a(this);d.data("iconpicker")||d.data("iconpicker",new c(this,"object"==typeof b?b:{}))})},c.defaultOptions.icons=["fa-500px","fa-address-book","fa-address-book-o","fa-address-card","fa-address-card-o","fa-adjust","fa-adn","fa-align-center","fa-align-justify","fa-align-left","fa-align-right","fa-amazon","fa-ambulance","fa-american-sign-language-interpreting","fa-anchor","fa-android","fa-angellist","fa-angle-double-down","fa-angle-double-left","fa-angle-double-right","fa-angle-double-up","fa-angle-down","fa-angle-left","fa-angle-right","fa-angle-up","fa-apple","fa-archive","fa-area-chart","fa-arrow-circle-down","fa-arrow-circle-left","fa-arrow-circle-o-down","fa-arrow-circle-o-left","fa-arrow-circle-o-right","fa-arrow-circle-o-up","fa-arrow-circle-right","fa-arrow-circle-up","fa-arrow-down","fa-arrow-left","fa-arrow-right","fa-arrow-up","fa-arrows","fa-arrows-alt","fa-arrows-h","fa-arrows-v","fa-asl-interpreting","fa-assistive-listening-systems","fa-asterisk","fa-at","fa-audio-description","fa-automobile","fa-backward","fa-balance-scale","fa-ban","fa-bandcamp","fa-bank","fa-bar-chart","fa-bar-chart-o","fa-barcode","fa-bars","fa-bath","fa-bathtub","fa-battery","fa-battery-0","fa-battery-1","fa-battery-2","fa-battery-3","fa-battery-4","fa-battery-empty","fa-battery-full","fa-battery-half","fa-battery-quarter","fa-battery-three-quarters","fa-bed","fa-beer","fa-behance","fa-behance-square","fa-bell","fa-bell-o","fa-bell-slash","fa-bell-slash-o","fa-bicycle","fa-binoculars","fa-birthday-cake","fa-bitbucket","fa-bitbucket-square","fa-bitcoin","fa-black-tie","fa-blind","fa-bluetooth","fa-bluetooth-b","fa-bold","fa-bolt","fa-bomb","fa-book","fa-bookmark","fa-bookmark-o","fa-braille","fa-briefcase","fa-btc","fa-bug","fa-building","fa-building-o","fa-bullhorn","fa-bullseye","fa-bus","fa-buysellads","fa-cab","fa-calculator","fa-calendar","fa-calendar-check-o","fa-calendar-minus-o","fa-calendar-o","fa-calendar-plus-o","fa-calendar-times-o","fa-camera","fa-camera-retro","fa-car","fa-caret-down","fa-caret-left","fa-caret-right","fa-caret-square-o-down","fa-caret-square-o-left","fa-caret-square-o-right","fa-caret-square-o-up","fa-caret-up","fa-cart-arrow-down","fa-cart-plus","fa-cc","fa-cc-amex","fa-cc-diners-club","fa-cc-discover","fa-cc-jcb","fa-cc-mastercard","fa-cc-paypal","fa-cc-stripe","fa-cc-visa","fa-certificate","fa-chain","fa-chain-broken","fa-check","fa-check-circle","fa-check-circle-o","fa-check-square","fa-check-square-o","fa-chevron-circle-down","fa-chevron-circle-left","fa-chevron-circle-right","fa-chevron-circle-up","fa-chevron-down","fa-chevron-left","fa-chevron-right","fa-chevron-up","fa-child","fa-chrome","fa-circle","fa-circle-o","fa-circle-o-notch","fa-circle-thin","fa-clipboard","fa-clock-o","fa-clone","fa-close","fa-cloud","fa-cloud-download","fa-cloud-upload","fa-cny","fa-code","fa-code-fork","fa-codepen","fa-codiepie","fa-coffee","fa-cog","fa-cogs","fa-columns","fa-comment","fa-comment-o","fa-commenting","fa-commenting-o","fa-comments","fa-comments-o","fa-compass","fa-compress","fa-connectdevelop","fa-contao","fa-copy","fa-copyright","fa-creative-commons","fa-credit-card","fa-credit-card-alt","fa-crop","fa-crosshairs","fa-css3","fa-cube","fa-cubes","fa-cut","fa-cutlery","fa-dashboard","fa-dashcube","fa-database","fa-deaf","fa-deafness","fa-dedent","fa-delicious","fa-desktop","fa-deviantart","fa-diamond","fa-digg","fa-dollar","fa-dot-circle-o","fa-download","fa-dribbble","fa-drivers-license","fa-drivers-license-o","fa-dropbox","fa-drupal","fa-edge","fa-edit","fa-eercast","fa-eject","fa-ellipsis-h","fa-ellipsis-v","fa-empire","fa-envelope","fa-envelope-o","fa-envelope-open","fa-envelope-open-o","fa-envelope-square","fa-envira","fa-eraser","fa-etsy","fa-eur","fa-euro","fa-exchange","fa-exclamation","fa-exclamation-circle","fa-exclamation-triangle","fa-expand","fa-expeditedssl","fa-external-link","fa-external-link-square","fa-eye","fa-eye-slash","fa-eyedropper","fa-fa","fa-facebook","fa-facebook-f","fa-facebook-official","fa-facebook-square","fa-fast-backward","fa-fast-forward","fa-fax","fa-feed","fa-female","fa-fighter-jet","fa-file","fa-file-archive-o","fa-file-audio-o","fa-file-code-o","fa-file-excel-o","fa-file-image-o","fa-file-movie-o","fa-file-o","fa-file-pdf-o","fa-file-photo-o","fa-file-picture-o","fa-file-powerpoint-o","fa-file-sound-o","fa-file-text","fa-file-text-o","fa-file-video-o","fa-file-word-o","fa-file-zip-o","fa-files-o","fa-film","fa-filter","fa-fire","fa-fire-extinguisher","fa-firefox","fa-first-order","fa-flag","fa-flag-checkered","fa-flag-o","fa-flash","fa-flask","fa-flickr","fa-floppy-o","fa-folder","fa-folder-o","fa-folder-open","fa-folder-open-o","fa-font","fa-font-awesome","fa-fonticons","fa-fort-awesome","fa-forumbee","fa-forward","fa-foursquare","fa-free-code-camp","fa-frown-o","fa-futbol-o","fa-gamepad","fa-gavel","fa-gbp","fa-ge","fa-gear","fa-gears","fa-genderless","fa-get-pocket","fa-gg","fa-gg-circle","fa-gift","fa-git","fa-git-square","fa-github","fa-github-alt","fa-github-square","fa-gitlab","fa-gittip","fa-glass","fa-glide","fa-glide-g","fa-globe","fa-google","fa-google-plus","fa-google-plus-circle","fa-google-plus-official","fa-google-plus-square","fa-google-wallet","fa-graduation-cap","fa-gratipay","fa-grav","fa-group","fa-h-square","fa-hacker-news","fa-hand-grab-o","fa-hand-lizard-o","fa-hand-o-down","fa-hand-o-left","fa-hand-o-right","fa-hand-o-up","fa-hand-paper-o","fa-hand-peace-o","fa-hand-pointer-o","fa-hand-rock-o","fa-hand-scissors-o","fa-hand-spock-o","fa-hand-stop-o","fa-handshake-o","fa-hard-of-hearing","fa-hashtag","fa-hdd-o","fa-header","fa-headphones","fa-heart","fa-heart-o","fa-heartbeat","fa-history","fa-home","fa-hospital-o","fa-hotel","fa-hourglass","fa-hourglass-1","fa-hourglass-2","fa-hourglass-3","fa-hourglass-end","fa-hourglass-half","fa-hourglass-o","fa-hourglass-start","fa-houzz","fa-html5","fa-i-cursor","fa-id-badge","fa-id-card","fa-id-card-o","fa-ils","fa-image","fa-imdb","fa-inbox","fa-indent","fa-industry","fa-info","fa-info-circle","fa-inr","fa-instagram","fa-institution","fa-internet-explorer","fa-intersex","fa-ioxhost","fa-italic","fa-joomla","fa-jpy","fa-jsfiddle","fa-key","fa-keyboard-o","fa-krw","fa-language","fa-laptop","fa-lastfm","fa-lastfm-square","fa-leaf","fa-leanpub","fa-legal","fa-lemon-o","fa-level-down","fa-level-up","fa-life-bouy","fa-life-buoy","fa-life-ring","fa-life-saver","fa-lightbulb-o","fa-line-chart","fa-link","fa-linkedin","fa-linkedin-square","fa-linode","fa-linux","fa-list","fa-list-alt","fa-list-ol","fa-list-ul","fa-location-arrow","fa-lock","fa-long-arrow-down","fa-long-arrow-left","fa-long-arrow-right","fa-long-arrow-up","fa-low-vision","fa-magic","fa-magnet","fa-mail-forward","fa-mail-reply","fa-mail-reply-all","fa-male","fa-map","fa-map-marker","fa-map-o","fa-map-pin","fa-map-signs","fa-mars","fa-mars-double","fa-mars-stroke","fa-mars-stroke-h","fa-mars-stroke-v","fa-maxcdn","fa-meanpath","fa-medium","fa-medkit","fa-meetup","fa-meh-o","fa-mercury","fa-microchip","fa-microphone","fa-microphone-slash","fa-minus","fa-minus-circle","fa-minus-square","fa-minus-square-o","fa-mixcloud","fa-mobile","fa-mobile-phone","fa-modx","fa-money","fa-moon-o","fa-mortar-board","fa-motorcycle","fa-mouse-pointer","fa-music","fa-navicon","fa-neuter","fa-newspaper-o","fa-object-group","fa-object-ungroup","fa-odnoklassniki","fa-odnoklassniki-square","fa-opencart","fa-openid","fa-opera","fa-optin-monster","fa-outdent","fa-pagelines","fa-paint-brush","fa-paper-plane","fa-paper-plane-o","fa-paperclip","fa-paragraph","fa-paste","fa-pause","fa-pause-circle","fa-pause-circle-o","fa-paw","fa-paypal","fa-pencil","fa-pencil-square","fa-pencil-square-o","fa-percent","fa-phone","fa-phone-square","fa-photo","fa-picture-o","fa-pie-chart","fa-pied-piper","fa-pied-piper-alt","fa-pied-piper-pp","fa-pinterest","fa-pinterest-p","fa-pinterest-square","fa-plane","fa-play","fa-play-circle","fa-play-circle-o","fa-plug","fa-plus","fa-plus-circle","fa-plus-square","fa-plus-square-o","fa-podcast","fa-power-off","fa-print","fa-product-hunt","fa-puzzle-piece","fa-qq","fa-qrcode","fa-question","fa-question-circle","fa-question-circle-o","fa-quora","fa-quote-left","fa-quote-right","fa-ra","fa-random","fa-ravelry","fa-rebel","fa-recycle","fa-reddit","fa-reddit-alien","fa-reddit-square","fa-refresh","fa-registered","fa-remove","fa-renren","fa-reorder","fa-repeat","fa-reply","fa-reply-all","fa-resistance","fa-retweet","fa-rmb","fa-road","fa-rocket","fa-rotate-left","fa-rotate-right","fa-rouble","fa-rss","fa-rss-square","fa-rub","fa-ruble","fa-rupee","fa-s15","fa-safari","fa-save","fa-scissors","fa-scribd","fa-search","fa-search-minus","fa-search-plus","fa-sellsy","fa-send","fa-send-o","fa-server","fa-share","fa-share-alt","fa-share-alt-square","fa-share-square","fa-share-square-o","fa-shekel","fa-sheqel","fa-shield","fa-ship","fa-shirtsinbulk","fa-shopping-bag","fa-shopping-basket","fa-shopping-cart","fa-shower","fa-sign-in","fa-sign-language","fa-sign-out","fa-signal","fa-signing","fa-simplybuilt","fa-sitemap","fa-skyatlas","fa-skype","fa-slack","fa-sliders","fa-slideshare","fa-smile-o","fa-snapchat","fa-snapchat-ghost","fa-snapchat-square","fa-snowflake-o","fa-soccer-ball-o","fa-sort","fa-sort-alpha-asc","fa-sort-alpha-desc","fa-sort-amount-asc","fa-sort-amount-desc","fa-sort-asc","fa-sort-desc","fa-sort-down","fa-sort-numeric-asc","fa-sort-numeric-desc","fa-sort-up","fa-soundcloud","fa-space-shuttle","fa-spinner","fa-spoon","fa-spotify","fa-square","fa-square-o","fa-stack-exchange","fa-stack-overflow","fa-star","fa-star-half","fa-star-half-empty","fa-star-half-full","fa-star-half-o","fa-star-o","fa-steam","fa-steam-square","fa-step-backward","fa-step-forward","fa-stethoscope","fa-sticky-note","fa-sticky-note-o","fa-stop","fa-stop-circle","fa-stop-circle-o","fa-street-view","fa-strikethrough","fa-stumbleupon","fa-stumbleupon-circle","fa-subscript","fa-subway","fa-suitcase","fa-sun-o","fa-superpowers","fa-superscript","fa-support","fa-table","fa-tablet","fa-tachometer","fa-tag","fa-tags","fa-tasks","fa-taxi","fa-telegram","fa-television","fa-tencent-weibo","fa-terminal","fa-text-height","fa-text-width","fa-th","fa-th-large","fa-th-list","fa-themeisle","fa-thermometer","fa-thermometer-0","fa-thermometer-1","fa-thermometer-2","fa-thermometer-3","fa-thermometer-4","fa-thermometer-empty","fa-thermometer-full","fa-thermometer-half","fa-thermometer-quarter","fa-thermometer-three-quarters","fa-thumb-tack","fa-thumbs-down","fa-thumbs-o-down","fa-thumbs-o-up","fa-thumbs-up","fa-ticket","fa-times","fa-times-circle","fa-times-circle-o","fa-times-rectangle","fa-times-rectangle-o","fa-tint","fa-toggle-down","fa-toggle-left","fa-toggle-off","fa-toggle-on","fa-toggle-right","fa-toggle-up","fa-trademark","fa-train","fa-transgender","fa-transgender-alt","fa-trash","fa-trash-o","fa-tree","fa-trello","fa-tripadvisor","fa-trophy","fa-truck","fa-try","fa-tty","fa-tumblr","fa-tumblr-square","fa-turkish-lira","fa-tv","fa-twitch","fa-twitter","fa-twitter-square","fa-umbrella","fa-underline","fa-undo","fa-universal-access","fa-university","fa-unlink","fa-unlock","fa-unlock-alt","fa-unsorted","fa-upload","fa-usb","fa-usd","fa-user","fa-user-circle","fa-user-circle-o","fa-user-md","fa-user-o","fa-user-plus","fa-user-secret","fa-user-times","fa-users","fa-vcard","fa-vcard-o","fa-venus","fa-venus-double","fa-venus-mars","fa-viacoin","fa-viadeo","fa-viadeo-square","fa-video-camera","fa-vimeo","fa-vimeo-square","fa-vine","fa-vk","fa-volume-control-phone","fa-volume-down","fa-volume-off","fa-volume-up","fa-warning","fa-wechat","fa-weibo","fa-weixin","fa-whatsapp","fa-wheelchair","fa-wheelchair-alt","fa-wifi","fa-wikipedia-w","fa-window-close","fa-window-close-o","fa-window-maximize","fa-window-minimize","fa-window-restore","fa-windows","fa-won","fa-wordpress","fa-wpbeginner","fa-wpexplorer","fa-wpforms","fa-wrench","fa-xing","fa-xing-square","fa-y-combinator","fa-y-combinator-square","fa-yahoo","fa-yc","fa-yc-square","fa-yelp","fa-yen","fa-yoast","fa-youtube","fa-youtube-play","fa-youtube-square"];
-});
\ No newline at end of file
+!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a(jQuery)}(function(a){a.ui=a.ui||{};a.ui.version="1.12.1";!function(){function b(a,b,c){return[parseFloat(a[0])*(l.test(a[0])?b/100:1),parseFloat(a[1])*(l.test(a[1])?c/100:1)]}function c(b,c){return parseInt(a.css(b,c),10)||0}function d(b){var c=b[0];return 9===c.nodeType?{width:b.width(),height:b.height(),offset:{top:0,left:0}}:a.isWindow(c)?{width:b.width(),height:b.height(),offset:{top:b.scrollTop(),left:b.scrollLeft()}}:c.preventDefault?{width:0,height:0,offset:{top:c.pageY,left:c.pageX}}:{width:b.outerWidth(),height:b.outerHeight(),offset:b.offset()}}var e,f=Math.max,g=Math.abs,h=/left|center|right/,i=/top|center|bottom/,j=/[\+\-]\d+(\.[\d]+)?%?/,k=/^\w+/,l=/%$/,m=a.fn.pos;a.pos={scrollbarWidth:function(){if(void 0!==e)return e;var b,c,d=a(""),f=d.children()[0];return a("body").append(d),b=f.offsetWidth,d.css("overflow","scroll"),c=f.offsetWidth,b===c&&(c=d[0].clientWidth),d.remove(),e=b-c},getScrollInfo:function(b){var c=b.isWindow||b.isDocument?"":b.element.css("overflow-x"),d=b.isWindow||b.isDocument?"":b.element.css("overflow-y"),e="scroll"===c||"auto"===c&&b.width0?"right":"center",vertical:h<0?"top":d>0?"bottom":"middle"};nf(g(d),g(h))?l.important="horizontal":l.important="vertical",e.using.call(this,a,l)}),i.offset(a.extend(z,{using:h}))})},a.ui.pos={_trigger:function(a,b,c,d){b.elem&&b.elem.trigger({type:c,position:a,positionData:b,triggered:d})},fit:{left:function(b,c){a.ui.pos._trigger(b,c,"posCollide","fitLeft");var d,e=c.within,g=e.isWindow?e.scrollLeft:e.offset.left,h=e.width,i=b.left-c.collisionPosition.marginLeft,j=g-i,k=i+c.collisionWidth-h-g;c.collisionWidth>h?j>0&&k<=0?(d=b.left+j+c.collisionWidth-h-g,b.left+=j-d):b.left=k>0&&j<=0?g:j>k?g+h-c.collisionWidth:g:j>0?b.left+=j:k>0?b.left-=k:b.left=f(b.left-i,b.left),a.ui.pos._trigger(b,c,"posCollided","fitLeft")},top:function(b,c){a.ui.pos._trigger(b,c,"posCollide","fitTop");var d,e=c.within,g=e.isWindow?e.scrollTop:e.offset.top,h=c.within.height,i=b.top-c.collisionPosition.marginTop,j=g-i,k=i+c.collisionHeight-h-g;c.collisionHeight>h?j>0&&k<=0?(d=b.top+j+c.collisionHeight-h-g,b.top+=j-d):b.top=k>0&&j<=0?g:j>k?g+h-c.collisionHeight:g:j>0?b.top+=j:k>0?b.top-=k:b.top=f(b.top-i,b.top),a.ui.pos._trigger(b,c,"posCollided","fitTop")}},flip:{left:function(b,c){a.ui.pos._trigger(b,c,"posCollide","flipLeft");var d,e,f=c.within,h=f.offset.left+f.scrollLeft,i=f.width,j=f.isWindow?f.scrollLeft:f.offset.left,k=b.left-c.collisionPosition.marginLeft,l=k-j,m=k+c.collisionWidth-i-j,n="left"===c.my[0]?-c.elemWidth:"right"===c.my[0]?c.elemWidth:0,o="left"===c.at[0]?c.targetWidth:"right"===c.at[0]?-c.targetWidth:0,p=-2*c.offset[0];l<0?((d=b.left+n+o+p+c.collisionWidth-i-h)<0||d0&&((e=b.left-c.collisionPosition.marginLeft+n+o+p-j)>0||g(e)0&&((d=b.top-c.collisionPosition.marginTop+o+p+q-j)>0||g(d)10&&e<11,b.innerHTML="",c.removeChild(b)}()}();a.ui.position}),function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery"],a):window.jQuery&&!window.jQuery.fn.iconpicker&&a(window.jQuery)}(function(a){"use strict";var b={isEmpty:function(a){return!1===a||""===a||null===a||void 0===a},isEmptyObject:function(a){return!0===this.isEmpty(a)||0===a.length},isElement:function(b){return a(b).length>0},isString:function(a){return"string"==typeof a||a instanceof String},isArray:function(b){return a.isArray(b)},inArray:function(b,c){return-1!==a.inArray(b,c)},throwError:function(a){throw"Font Awesome Icon Picker Exception: "+a}},c=function(d,e){this._id=c._idCounter++,this.element=a(d).addClass("iconpicker-element"),this._trigger("iconpickerCreate"),this.options=a.extend({},c.defaultOptions,this.element.data(),e),this.options.templates=a.extend({},c.defaultOptions.templates,this.options.templates),this.options.originalPlacement=this.options.placement,this.container=!!b.isElement(this.options.container)&&a(this.options.container),!1===this.container&&(this.element.is(".dropdown-toggle")?this.container=a("~ .dropdown-menu:first",this.element):this.container=this.element.is("input,textarea,button,.btn")?this.element.parent():this.element),this.container.addClass("iconpicker-container"),this.isDropdownMenu()&&(this.options.templates.search=!1,this.options.templates.buttons=!1,this.options.placement="inline"),this.input=!!this.element.is("input,textarea")&&this.element.addClass("iconpicker-input"),!1===this.input&&(this.input=this.container.find(this.options.input),this.input.is("input,textarea")||(this.input=!1)),this.component=this.isDropdownMenu()?this.container.parent().find(this.options.component):this.container.find(this.options.component),0===this.component.length?this.component=!1:this.component.find("i").addClass("iconpicker-component"),this._createPopover(),this._createIconpicker(),0===this.getAcceptButton().length&&(this.options.mustAccept=!1),this.isInputGroup()?this.container.parent().append(this.popover):this.container.append(this.popover),this._bindElementEvents(),this._bindWindowEvents(),this.update(this.options.selected),this.isInline()&&this.show(),this._trigger("iconpickerCreated")};c._idCounter=0,c.defaultOptions={title:!1,selected:!1,defaultValue:!1,placement:"bottom",collision:"none",animation:!0,hideOnSelect:!1,showFooter:!1,searchInFooter:!1,mustAccept:!1,selectedCustomClass:"bg-primary",icons:[],fullClassFormatter:function(a){return"fa "+a},input:"input,.iconpicker-input",inputSearch:!1,container:!1,component:".input-group-addon,.iconpicker-component",templates:{popover:'',footer:'',buttons:' ',search:'',iconpicker:'',iconpickerItem:''}},c.batch=function(b,c){var d=Array.prototype.slice.call(arguments,2);return a(b).each(function(){var b=a(this).data("iconpicker");b&&b[c].apply(b,d)})},c.prototype={constructor:c,options:{},_id:0,_trigger:function(b,c){c=c||{},this.element.trigger(a.extend({type:b,iconpickerInstance:this},c))},_createPopover:function(){this.popover=a(this.options.templates.popover);var c=this.popover.find(".popover-title");if(this.options.title&&c.append(a(''+this.options.title+"
")),this.hasSeparatedSearchInput()&&!this.options.searchInFooter?c.append(this.options.templates.search):this.options.title||c.remove(),this.options.showFooter&&!b.isEmpty(this.options.templates.footer)){var d=a(this.options.templates.footer);this.hasSeparatedSearchInput()&&this.options.searchInFooter&&d.append(a(this.options.templates.search)),b.isEmpty(this.options.templates.buttons)||d.append(a(this.options.templates.buttons)),this.popover.append(d)}return!0===this.options.animation&&this.popover.addClass("fade"),this.popover},_createIconpicker:function(){var b=this;this.iconpicker=a(this.options.templates.iconpicker);var c=function(c){var d=a(this);return d.is("i")&&(d=d.parent()),b._trigger("iconpickerSelect",{iconpickerItem:d,iconpickerValue:b.iconpickerValue}),!1===b.options.mustAccept?(b.update(d.data("iconpickerValue")),b._trigger("iconpickerSelected",{iconpickerItem:this,iconpickerValue:b.iconpickerValue})):b.update(d.data("iconpickerValue"),!0),b.options.hideOnSelect&&!1===b.options.mustAccept&&b.hide(),c.preventDefault(),!1};for(var d in this.options.icons)if("string"==typeof this.options.icons[d]){var e=a(this.options.templates.iconpickerItem);e.find("i").addClass(this.options.fullClassFormatter(this.options.icons[d])),e.data("iconpickerValue",this.options.icons[d]).on("click.iconpicker",c),this.iconpicker.find(".iconpicker-items").append(e.attr("title","."+this.options.icons[d]))}return this.popover.find(".popover-content").append(this.iconpicker),this.iconpicker},_isEventInsideIconpicker:function(b){var c=a(b.target);return!((!c.hasClass("iconpicker-element")||c.hasClass("iconpicker-element")&&!c.is(this.element))&&0===c.parents(".iconpicker-popover").length)},_bindElementEvents:function(){var c=this;this.getSearchInput().on("keyup.iconpicker",function(){c.filter(a(this).val().toLowerCase())}),this.getAcceptButton().on("click.iconpicker",function(){var a=c.iconpicker.find(".iconpicker-selected").get(0);c.update(c.iconpickerValue),c._trigger("iconpickerSelected",{iconpickerItem:a,iconpickerValue:c.iconpickerValue}),c.isInline()||c.hide()}),this.getCancelButton().on("click.iconpicker",function(){c.isInline()||c.hide()}),this.element.on("focus.iconpicker",function(a){c.show(),a.stopPropagation()}),this.hasComponent()&&this.component.on("click.iconpicker",function(){c.toggle()}),this.hasInput()&&this.input.on("keyup.iconpicker",function(d){b.inArray(d.keyCode,[38,40,37,39,16,17,18,9,8,91,93,20,46,186,190,46,78,188,44,86])?c._updateFormGroupStatus(!1!==c.getValid(this.value)):c.update(),!0===c.options.inputSearch&&c.filter(a(this).val().toLowerCase())})},_bindWindowEvents:function(){var b=a(window.document),c=this,d=".iconpicker.inst"+this._id;return a(window).on("resize.iconpicker"+d+" orientationchange.iconpicker"+d,function(a){c.popover.hasClass("in")&&c.updatePlacement()}),c.isInline()||b.on("mouseup"+d,function(a){return c._isEventInsideIconpicker(a)||c.isInline()||c.hide(),a.stopPropagation(),a.preventDefault(),!1}),!1},_unbindElementEvents:function(){this.popover.off(".iconpicker"),this.element.off(".iconpicker"),this.hasInput()&&this.input.off(".iconpicker"),this.hasComponent()&&this.component.off(".iconpicker"),this.hasContainer()&&this.container.off(".iconpicker")},_unbindWindowEvents:function(){a(window).off(".iconpicker.inst"+this._id),a(window.document).off(".iconpicker.inst"+this._id)},updatePlacement:function(b,c){b=b||this.options.placement,this.options.placement=b,c=c||this.options.collision,c=!0===c?"flip":c;var d={at:"right bottom",my:"right top",of:this.hasInput()&&!this.isInputGroup()?this.input:this.container,collision:!0===c?"flip":c,within:window};if(this.popover.removeClass("inline topLeftCorner topLeft top topRight topRightCorner rightTop right rightBottom bottomRight bottomRightCorner bottom bottomLeft bottomLeftCorner leftBottom left leftTop"),"object"==typeof b)return this.popover.pos(a.extend({},d,b));switch(b){case"inline":d=!1;break;case"topLeftCorner":d.my="right bottom",d.at="left top";break;case"topLeft":d.my="left bottom",d.at="left top";break;case"top":d.my="center bottom",d.at="center top";break;case"topRight":d.my="right bottom",d.at="right top";break;case"topRightCorner":d.my="left bottom",d.at="right top";break;case"rightTop":d.my="left bottom",d.at="right center";break;case"right":d.my="left center",d.at="right center";break;case"rightBottom":d.my="left top",d.at="right center";break;case"bottomRightCorner":d.my="left top",d.at="right bottom";break;case"bottomRight":d.my="right top",d.at="right bottom";break;case"bottom":d.my="center top",d.at="center bottom";break;case"bottomLeft":d.my="left top",d.at="left bottom";break;case"bottomLeftCorner":d.my="right top",d.at="left bottom";break;case"leftBottom":d.my="right top",d.at="left center";break;case"left":d.my="right center",d.at="left center";break;case"leftTop":d.my="right bottom",d.at="left center";break;default:return!1}return this.popover.css({display:"inline"===this.options.placement?"":"block"}),!1!==d?this.popover.pos(d).css("maxWidth",a(window).width()-this.container.offset().left-5):this.popover.css({top:"auto",right:"auto",bottom:"auto",left:"auto",maxWidth:"none"}),this.popover.addClass(this.options.placement),!0},_updateComponents:function(){if(this.iconpicker.find(".iconpicker-item.iconpicker-selected").removeClass("iconpicker-selected "+this.options.selectedCustomClass),this.iconpickerValue&&this.iconpicker.find("."+this.options.fullClassFormatter(this.iconpickerValue).replace(/ /g,".")).parent().addClass("iconpicker-selected "+this.options.selectedCustomClass),this.hasComponent()){var a=this.component.find("i");a.length>0?a.attr("class",this.options.fullClassFormatter(this.iconpickerValue)):this.component.html(this.getHtml())}},_updateFormGroupStatus:function(a){return!!this.hasInput()&&(!1!==a?this.input.parents(".form-group:first").removeClass("has-error"):this.input.parents(".form-group:first").addClass("has-error"),!0)},getValid:function(c){b.isString(c)||(c="");var d=""===c;return c=a.trim(c),!(!b.inArray(c,this.options.icons)&&!d)&&c},setValue:function(a){var b=this.getValid(a);return!1!==b?(this.iconpickerValue=b,this._trigger("iconpickerSetValue",{iconpickerValue:b}),this.iconpickerValue):(this._trigger("iconpickerInvalid",{iconpickerValue:a}),!1)},getHtml:function(){return''},setSourceValue:function(a){return a=this.setValue(a),!1!==a&&""!==a&&(this.hasInput()?this.input.val(this.iconpickerValue):this.element.data("iconpickerValue",this.iconpickerValue),this._trigger("iconpickerSetSourceValue",{iconpickerValue:a})),a},getSourceValue:function(a){a=a||this.options.defaultValue;var b=a;return b=this.hasInput()?this.input.val():this.element.data("iconpickerValue"),void 0!==b&&""!==b&&null!==b&&!1!==b||(b=a),b},hasInput:function(){return!1!==this.input},isInputSearch:function(){return this.hasInput()&&!0===this.options.inputSearch},isInputGroup:function(){return this.container.is(".input-group")},isDropdownMenu:function(){return this.container.is(".dropdown-menu")},hasSeparatedSearchInput:function(){return!1!==this.options.templates.search&&!this.isInputSearch()},hasComponent:function(){return!1!==this.component},hasContainer:function(){return!1!==this.container},getAcceptButton:function(){return this.popover.find(".iconpicker-btn-accept")},getCancelButton:function(){return this.popover.find(".iconpicker-btn-cancel")},getSearchInput:function(){return this.popover.find(".iconpicker-search")},filter:function(c){if(b.isEmpty(c))return this.iconpicker.find(".iconpicker-item").show(),a(!1);var d=[];return this.iconpicker.find(".iconpicker-item").each(function(){var b=a(this),e=b.attr("title").toLowerCase(),f=!1;try{f=new RegExp(c,"g")}catch(a){f=!1}!1!==f&&e.match(f)?(d.push(b),b.show()):b.hide()}),d},show:function(){if(this.popover.hasClass("in"))return!1;a.iconpicker.batch(a(".iconpicker-popover.in:not(.inline)").not(this.popover),"hide"),this._trigger("iconpickerShow"),this.updatePlacement(),this.popover.addClass("in"),setTimeout(a.proxy(function(){this.popover.css("display",this.isInline()?"":"block"),this._trigger("iconpickerShown")},this),this.options.animation?300:1)},hide:function(){if(!this.popover.hasClass("in"))return!1;this._trigger("iconpickerHide"),this.popover.removeClass("in"),setTimeout(a.proxy(function(){this.popover.css("display","none"),this.getSearchInput().val(""),this.filter(""),this._trigger("iconpickerHidden")},this),this.options.animation?300:1)},toggle:function(){this.popover.is(":visible")?this.hide():this.show(!0)},update:function(a,b){return a=a||this.getSourceValue(this.iconpickerValue),this._trigger("iconpickerUpdate"),!0===b?a=this.setValue(a):(a=this.setSourceValue(a),this._updateFormGroupStatus(!1!==a)),!1!==a&&this._updateComponents(),this._trigger("iconpickerUpdated"),a},destroy:function(){this._trigger("iconpickerDestroy"),this.element.removeData("iconpicker").removeData("iconpickerValue").removeClass("iconpicker-element"),this._unbindElementEvents(),this._unbindWindowEvents(),a(this.popover).remove(),this._trigger("iconpickerDestroyed")},disable:function(){return!!this.hasInput()&&(this.input.prop("disabled",!0),!0)},enable:function(){return!!this.hasInput()&&(this.input.prop("disabled",!1),!0)},isDisabled:function(){return!!this.hasInput()&&!0===this.input.prop("disabled")},isInline:function(){return"inline"===this.options.placement||this.popover.hasClass("inline")}},a.iconpicker=c,a.fn.iconpicker=function(b){return this.each(function(){var d=a(this);d.data("iconpicker")||d.data("iconpicker",new c(this,"object"==typeof b?b:{}))})},c.defaultOptions.icons=["fa-500px","fa-address-book","fa-address-book-o","fa-address-card","fa-address-card-o","fa-adjust","fa-adn","fa-align-center","fa-align-justify","fa-align-left","fa-align-right","fa-amazon","fa-ambulance","fa-american-sign-language-interpreting","fa-anchor","fa-android","fa-angellist","fa-angle-double-down","fa-angle-double-left","fa-angle-double-right","fa-angle-double-up","fa-angle-down","fa-angle-left","fa-angle-right","fa-angle-up","fa-apple","fa-archive","fa-area-chart","fa-arrow-circle-down","fa-arrow-circle-left","fa-arrow-circle-o-down","fa-arrow-circle-o-left","fa-arrow-circle-o-right","fa-arrow-circle-o-up","fa-arrow-circle-right","fa-arrow-circle-up","fa-arrow-down","fa-arrow-left","fa-arrow-right","fa-arrow-up","fa-arrows","fa-arrows-alt","fa-arrows-h","fa-arrows-v","fa-asl-interpreting","fa-assistive-listening-systems","fa-asterisk","fa-at","fa-audio-description","fa-automobile","fa-backward","fa-balance-scale","fa-ban","fa-bandcamp","fa-bank","fa-bar-chart","fa-bar-chart-o","fa-barcode","fa-bars","fa-bath","fa-bathtub","fa-battery","fa-battery-0","fa-battery-1","fa-battery-2","fa-battery-3","fa-battery-4","fa-battery-empty","fa-battery-full","fa-battery-half","fa-battery-quarter","fa-battery-three-quarters","fa-bed","fa-beer","fa-behance","fa-behance-square","fa-bell","fa-bell-o","fa-bell-slash","fa-bell-slash-o","fa-bicycle","fa-binoculars","fa-birthday-cake","fa-bitbucket","fa-bitbucket-square","fa-bitcoin","fa-black-tie","fa-blind","fa-bluetooth","fa-bluetooth-b","fa-bold","fa-bolt","fa-bomb","fa-book","fa-bookmark","fa-bookmark-o","fa-braille","fa-briefcase","fa-btc","fa-bug","fa-building","fa-building-o","fa-bullhorn","fa-bullseye","fa-bus","fa-buysellads","fa-cab","fa-calculator","fa-calendar","fa-calendar-check-o","fa-calendar-minus-o","fa-calendar-o","fa-calendar-plus-o","fa-calendar-times-o","fa-camera","fa-camera-retro","fa-car","fa-caret-down","fa-caret-left","fa-caret-right","fa-caret-square-o-down","fa-caret-square-o-left","fa-caret-square-o-right","fa-caret-square-o-up","fa-caret-up","fa-cart-arrow-down","fa-cart-plus","fa-cc","fa-cc-amex","fa-cc-diners-club","fa-cc-discover","fa-cc-jcb","fa-cc-mastercard","fa-cc-paypal","fa-cc-stripe","fa-cc-visa","fa-certificate","fa-chain","fa-chain-broken","fa-check","fa-check-circle","fa-check-circle-o","fa-check-square","fa-check-square-o","fa-chevron-circle-down","fa-chevron-circle-left","fa-chevron-circle-right","fa-chevron-circle-up","fa-chevron-down","fa-chevron-left","fa-chevron-right","fa-chevron-up","fa-child","fa-chrome","fa-circle","fa-circle-o","fa-circle-o-notch","fa-circle-thin","fa-clipboard","fa-clock-o","fa-clone","fa-close","fa-cloud","fa-cloud-download","fa-cloud-upload","fa-cny","fa-code","fa-code-fork","fa-codepen","fa-codiepie","fa-coffee","fa-cog","fa-cogs","fa-columns","fa-comment","fa-comment-o","fa-commenting","fa-commenting-o","fa-comments","fa-comments-o","fa-compass","fa-compress","fa-connectdevelop","fa-contao","fa-copy","fa-copyright","fa-creative-commons","fa-credit-card","fa-credit-card-alt","fa-crop","fa-crosshairs","fa-css3","fa-cube","fa-cubes","fa-cut","fa-cutlery","fa-dashboard","fa-dashcube","fa-database","fa-deaf","fa-deafness","fa-dedent","fa-delicious","fa-desktop","fa-deviantart","fa-diamond","fa-digg","fa-dollar","fa-dot-circle-o","fa-download","fa-dribbble","fa-drivers-license","fa-drivers-license-o","fa-dropbox","fa-drupal","fa-edge","fa-edit","fa-eercast","fa-eject","fa-ellipsis-h","fa-ellipsis-v","fa-empire","fa-envelope","fa-envelope-o","fa-envelope-open","fa-envelope-open-o","fa-envelope-square","fa-envira","fa-eraser","fa-etsy","fa-eur","fa-euro","fa-exchange","fa-exclamation","fa-exclamation-circle","fa-exclamation-triangle","fa-expand","fa-expeditedssl","fa-external-link","fa-external-link-square","fa-eye","fa-eye-slash","fa-eyedropper","fa-fa","fa-facebook","fa-facebook-f","fa-facebook-official","fa-facebook-square","fa-fast-backward","fa-fast-forward","fa-fax","fa-feed","fa-female","fa-fighter-jet","fa-file","fa-file-archive-o","fa-file-audio-o","fa-file-code-o","fa-file-excel-o","fa-file-image-o","fa-file-movie-o","fa-file-o","fa-file-pdf-o","fa-file-photo-o","fa-file-picture-o","fa-file-powerpoint-o","fa-file-sound-o","fa-file-text","fa-file-text-o","fa-file-video-o","fa-file-word-o","fa-file-zip-o","fa-files-o","fa-film","fa-filter","fa-fire","fa-fire-extinguisher","fa-firefox","fa-first-order","fa-flag","fa-flag-checkered","fa-flag-o","fa-flash","fa-flask","fa-flickr","fa-floppy-o","fa-folder","fa-folder-o","fa-folder-open","fa-folder-open-o","fa-font","fa-font-awesome","fa-fonticons","fa-fort-awesome","fa-forumbee","fa-forward","fa-foursquare","fa-free-code-camp","fa-frown-o","fa-futbol-o","fa-gamepad","fa-gavel","fa-gbp","fa-ge","fa-gear","fa-gears","fa-genderless","fa-get-pocket","fa-gg","fa-gg-circle","fa-gift","fa-git","fa-git-square","fa-github","fa-github-alt","fa-github-square","fa-gitlab","fa-gittip","fa-glass","fa-glide","fa-glide-g","fa-globe","fa-google","fa-google-plus","fa-google-plus-circle","fa-google-plus-official","fa-google-plus-square","fa-google-wallet","fa-graduation-cap","fa-gratipay","fa-grav","fa-group","fa-h-square","fa-hacker-news","fa-hand-grab-o","fa-hand-lizard-o","fa-hand-o-down","fa-hand-o-left","fa-hand-o-right","fa-hand-o-up","fa-hand-paper-o","fa-hand-peace-o","fa-hand-pointer-o","fa-hand-rock-o","fa-hand-scissors-o","fa-hand-spock-o","fa-hand-stop-o","fa-handshake-o","fa-hard-of-hearing","fa-hashtag","fa-hdd-o","fa-header","fa-headphones","fa-heart","fa-heart-o","fa-heartbeat","fa-history","fa-home","fa-hospital-o","fa-hotel","fa-hourglass","fa-hourglass-1","fa-hourglass-2","fa-hourglass-3","fa-hourglass-end","fa-hourglass-half","fa-hourglass-o","fa-hourglass-start","fa-houzz","fa-html5","fa-i-cursor","fa-id-badge","fa-id-card","fa-id-card-o","fa-ils","fa-image","fa-imdb","fa-inbox","fa-indent","fa-industry","fa-info","fa-info-circle","fa-inr","fa-instagram","fa-institution","fa-internet-explorer","fa-intersex","fa-ioxhost","fa-italic","fa-joomla","fa-jpy","fa-jsfiddle","fa-key","fa-keyboard-o","fa-krw","fa-language","fa-laptop","fa-lastfm","fa-lastfm-square","fa-leaf","fa-leanpub","fa-legal","fa-lemon-o","fa-level-down","fa-level-up","fa-life-bouy","fa-life-buoy","fa-life-ring","fa-life-saver","fa-lightbulb-o","fa-line-chart","fa-link","fa-linkedin","fa-linkedin-square","fa-linode","fa-linux","fa-list","fa-list-alt","fa-list-ol","fa-list-ul","fa-location-arrow","fa-lock","fa-long-arrow-down","fa-long-arrow-left","fa-long-arrow-right","fa-long-arrow-up","fa-low-vision","fa-magic","fa-magnet","fa-mail-forward","fa-mail-reply","fa-mail-reply-all","fa-male","fa-map","fa-map-marker","fa-map-o","fa-map-pin","fa-map-signs","fa-mars","fa-mars-double","fa-mars-stroke","fa-mars-stroke-h","fa-mars-stroke-v","fa-maxcdn","fa-meanpath","fa-medium","fa-medkit","fa-meetup","fa-meh-o","fa-mercury","fa-microchip","fa-microphone","fa-microphone-slash","fa-minus","fa-minus-circle","fa-minus-square","fa-minus-square-o","fa-mixcloud","fa-mobile","fa-mobile-phone","fa-modx","fa-money","fa-moon-o","fa-mortar-board","fa-motorcycle","fa-mouse-pointer","fa-music","fa-navicon","fa-neuter","fa-newspaper-o","fa-object-group","fa-object-ungroup","fa-odnoklassniki","fa-odnoklassniki-square","fa-opencart","fa-openid","fa-opera","fa-optin-monster","fa-outdent","fa-pagelines","fa-paint-brush","fa-paper-plane","fa-paper-plane-o","fa-paperclip","fa-paragraph","fa-paste","fa-pause","fa-pause-circle","fa-pause-circle-o","fa-paw","fa-paypal","fa-pencil","fa-pencil-square","fa-pencil-square-o","fa-percent","fa-phone","fa-phone-square","fa-photo","fa-picture-o","fa-pie-chart","fa-pied-piper","fa-pied-piper-alt","fa-pied-piper-pp","fa-pinterest","fa-pinterest-p","fa-pinterest-square","fa-plane","fa-play","fa-play-circle","fa-play-circle-o","fa-plug","fa-plus","fa-plus-circle","fa-plus-square","fa-plus-square-o","fa-podcast","fa-power-off","fa-print","fa-product-hunt","fa-puzzle-piece","fa-qq","fa-qrcode","fa-question","fa-question-circle","fa-question-circle-o","fa-quora","fa-quote-left","fa-quote-right","fa-ra","fa-random","fa-ravelry","fa-rebel","fa-recycle","fa-reddit","fa-reddit-alien","fa-reddit-square","fa-refresh","fa-registered","fa-remove","fa-renren","fa-reorder","fa-repeat","fa-reply","fa-reply-all","fa-resistance","fa-retweet","fa-rmb","fa-road","fa-rocket","fa-rotate-left","fa-rotate-right","fa-rouble","fa-rss","fa-rss-square","fa-rub","fa-ruble","fa-rupee","fa-s15","fa-safari","fa-save","fa-scissors","fa-scribd","fa-search","fa-search-minus","fa-search-plus","fa-sellsy","fa-send","fa-send-o","fa-server","fa-share","fa-share-alt","fa-share-alt-square","fa-share-square","fa-share-square-o","fa-shekel","fa-sheqel","fa-shield","fa-ship","fa-shirtsinbulk","fa-shopping-bag","fa-shopping-basket","fa-shopping-cart","fa-shower","fa-sign-in","fa-sign-language","fa-sign-out","fa-signal","fa-signing","fa-simplybuilt","fa-sitemap","fa-skyatlas","fa-skype","fa-slack","fa-sliders","fa-slideshare","fa-smile-o","fa-snapchat","fa-snapchat-ghost","fa-snapchat-square","fa-snowflake-o","fa-soccer-ball-o","fa-sort","fa-sort-alpha-asc","fa-sort-alpha-desc","fa-sort-amount-asc","fa-sort-amount-desc","fa-sort-asc","fa-sort-desc","fa-sort-down","fa-sort-numeric-asc","fa-sort-numeric-desc","fa-sort-up","fa-soundcloud","fa-space-shuttle","fa-spinner","fa-spoon","fa-spotify","fa-square","fa-square-o","fa-stack-exchange","fa-stack-overflow","fa-star","fa-star-half","fa-star-half-empty","fa-star-half-full","fa-star-half-o","fa-star-o","fa-steam","fa-steam-square","fa-step-backward","fa-step-forward","fa-stethoscope","fa-sticky-note","fa-sticky-note-o","fa-stop","fa-stop-circle","fa-stop-circle-o","fa-street-view","fa-strikethrough","fa-stumbleupon","fa-stumbleupon-circle","fa-subscript","fa-subway","fa-suitcase","fa-sun-o","fa-superpowers","fa-superscript","fa-support","fa-table","fa-tablet","fa-tachometer","fa-tag","fa-tags","fa-tasks","fa-taxi","fa-telegram","fa-television","fa-tencent-weibo","fa-terminal","fa-text-height","fa-text-width","fa-th","fa-th-large","fa-th-list","fa-themeisle","fa-thermometer","fa-thermometer-0","fa-thermometer-1","fa-thermometer-2","fa-thermometer-3","fa-thermometer-4","fa-thermometer-empty","fa-thermometer-full","fa-thermometer-half","fa-thermometer-quarter","fa-thermometer-three-quarters","fa-thumb-tack","fa-thumbs-down","fa-thumbs-o-down","fa-thumbs-o-up","fa-thumbs-up","fa-ticket","fa-times","fa-times-circle","fa-times-circle-o","fa-times-rectangle","fa-times-rectangle-o","fa-tint","fa-toggle-down","fa-toggle-left","fa-toggle-off","fa-toggle-on","fa-toggle-right","fa-toggle-up","fa-trademark","fa-train","fa-transgender","fa-transgender-alt","fa-trash","fa-trash-o","fa-tree","fa-trello","fa-tripadvisor","fa-trophy","fa-truck","fa-try","fa-tty","fa-tumblr","fa-tumblr-square","fa-turkish-lira","fa-tv","fa-twitch","fa-twitter","fa-twitter-square","fa-umbrella","fa-underline","fa-undo","fa-universal-access","fa-university","fa-unlink","fa-unlock","fa-unlock-alt","fa-unsorted","fa-upload","fa-usb","fa-usd","fa-user","fa-user-circle","fa-user-circle-o","fa-user-md","fa-user-o","fa-user-plus","fa-user-secret","fa-user-times","fa-users","fa-vcard","fa-vcard-o","fa-venus","fa-venus-double","fa-venus-mars","fa-viacoin","fa-viadeo","fa-viadeo-square","fa-video-camera","fa-vimeo","fa-vimeo-square","fa-vine","fa-vk","fa-volume-control-phone","fa-volume-down","fa-volume-off","fa-volume-up","fa-warning","fa-wechat","fa-weibo","fa-weixin","fa-whatsapp","fa-wheelchair","fa-wheelchair-alt","fa-wifi","fa-wikipedia-w","fa-window-close","fa-window-close-o","fa-window-maximize","fa-window-minimize","fa-window-restore","fa-windows","fa-won","fa-wordpress","fa-wpbeginner","fa-wpexplorer","fa-wpforms","fa-wrench","fa-xing","fa-xing-square","fa-y-combinator","fa-y-combinator-square","fa-yahoo","fa-yc","fa-yc-square","fa-yelp","fa-yen","fa-yoast","fa-youtube","fa-youtube-play","fa-youtube-square"]});
\ No newline at end of file
diff --git a/src/js/jquery.ui.pos.js b/src/js/jquery.ui.pos.js
index 5c92f5a..fb99c87 100644
--- a/src/js/jquery.ui.pos.js
+++ b/src/js/jquery.ui.pos.js
@@ -1,532 +1,581 @@
-/*!
- * .pos() plugin based on jQuery UI Position 1.10.4, renamed to avoid
- * problems with jQuery native .position(), and added some triggers when position
- * collapses
- *
+/*! jQuery UI - v1.12.1 - 2017-08-12
* http://jqueryui.com
- *
- * Copyright 2014 jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- *
- * http://api.jqueryui.com/position/
- */
-(function($, undefined) {
+ * Includes: position.js
+ * Copyright jQuery Foundation and other contributors; Licensed MIT */
- $.ui = $.ui || {};
+(function(factory) {
+ if (typeof define === "function" && define.amd) {
- var cachedScrollbarWidth,
- max = Math.max,
- abs = Math.abs,
- round = Math.round,
- rhorizontal = /left|center|right/,
- rvertical = /top|center|bottom/,
- roffset = /[\+\-]\d+(\.[\d]+)?%?/,
- rposition = /^\w+/,
- rpercent = /%$/,
- _position = $.fn.pos;
-
- function getOffsets(offsets, width, height) {
- return [
- parseFloat(offsets[0]) * (rpercent.test(offsets[0]) ? width / 100 : 1),
- parseFloat(offsets[1]) * (rpercent.test(offsets[1]) ? height / 100 : 1)
- ];
- }
+ // AMD. Register as an anonymous module.
+ define(["jquery"], factory);
+ } else {
- function parseCss(element, property) {
- return parseInt($.css(element, property), 10) || 0;
+ // Browser globals
+ factory(jQuery);
}
+}(function($) {
- function getDimensions(elem) {
- var raw = elem[0];
- if (raw.nodeType === 9) {
- return {
- width: elem.width(),
- height: elem.height(),
- offset: {
- top: 0,
- left: 0
- }
- };
- }
- if ($.isWindow(raw)) {
- return {
- width: elem.width(),
- height: elem.height(),
- offset: {
- top: elem.scrollTop(),
- left: elem.scrollLeft()
- }
- };
- }
- if (raw.preventDefault) {
- return {
- width: 0,
- height: 0,
- offset: {
- top: raw.pageY,
- left: raw.pageX
- }
- };
- }
- return {
- width: elem.outerWidth(),
- height: elem.outerHeight(),
- offset: elem.offset()
- };
- }
+ $.ui = $.ui || {};
- $.pos = {
- scrollbarWidth: function() {
- if (cachedScrollbarWidth !== undefined) {
- return cachedScrollbarWidth;
- }
- var w1, w2,
- div = $(""),
- innerDiv = div.children()[0];
+ var version = $.ui.version = "1.12.1";
- $("body").append(div);
- w1 = innerDiv.offsetWidth;
- div.css("overflow", "scroll");
- w2 = innerDiv.offsetWidth;
+ /*!
+ * jQuery UI Position 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/position/
+ */
- if (w1 === w2) {
- w2 = div[0].clientWidth;
- }
+ //>>label: Position
+ //>>group: Core
+ //>>description: Positions elements relative to other elements.
+ //>>docs: http://api.jqueryui.com/position/
+ //>>demos: http://jqueryui.com/position/
- div.remove();
-
- return (cachedScrollbarWidth = w1 - w2);
- },
- getScrollInfo: function(within) {
- var overflowX = within.isWindow || within.isDocument ? "" :
- within.element.css("overflow-x"),
- overflowY = within.isWindow || within.isDocument ? "" :
- within.element.css("overflow-y"),
- hasOverflowX = overflowX === "scroll" ||
- (overflowX === "auto" && within.width < within.element[0].scrollWidth),
- hasOverflowY = overflowY === "scroll" ||
- (overflowY === "auto" && within.height < within.element[0].scrollHeight);
- return {
- width: hasOverflowY ? $.pos.scrollbarWidth() : 0,
- height: hasOverflowX ? $.pos.scrollbarWidth() : 0
- };
- },
- getWithinInfo: function(element) {
- var withinElement = $(element || window),
- isWindow = $.isWindow(withinElement[0]),
- isDocument = !!withinElement[0] && withinElement[0].nodeType === 9;
+
+ (function() {
+ var cachedScrollbarWidth,
+ max = Math.max,
+ abs = Math.abs,
+ rhorizontal = /left|center|right/,
+ rvertical = /top|center|bottom/,
+ roffset = /[\+\-]\d+(\.[\d]+)?%?/,
+ rposition = /^\w+/,
+ rpercent = /%$/,
+ _position = $.fn.pos;
+
+ function getOffsets(offsets, width, height) {
+ return [
+ parseFloat(offsets[0]) * (rpercent.test(offsets[0]) ? width / 100 : 1),
+ parseFloat(offsets[1]) * (rpercent.test(offsets[1]) ? height / 100 : 1)
+ ];
+ }
+
+ function parseCss(element, property) {
+ return parseInt($.css(element, property), 10) || 0;
+ }
+
+ function getDimensions(elem) {
+ var raw = elem[0];
+ if (raw.nodeType === 9) {
+ return {
+ width: elem.width(),
+ height: elem.height(),
+ offset: {
+ top: 0,
+ left: 0
+ }
+ };
+ }
+ if ($.isWindow(raw)) {
+ return {
+ width: elem.width(),
+ height: elem.height(),
+ offset: {
+ top: elem.scrollTop(),
+ left: elem.scrollLeft()
+ }
+ };
+ }
+ if (raw.preventDefault) {
+ return {
+ width: 0,
+ height: 0,
+ offset: {
+ top: raw.pageY,
+ left: raw.pageX
+ }
+ };
+ }
return {
- element: withinElement,
- isWindow: isWindow,
- isDocument: isDocument,
- offset: withinElement.offset() || {
- left: 0,
- top: 0
- },
- scrollLeft: withinElement.scrollLeft(),
- scrollTop: withinElement.scrollTop(),
- width: isWindow ? withinElement.width() : withinElement.outerWidth(),
- height: isWindow ? withinElement.height() : withinElement.outerHeight()
+ width: elem.outerWidth(),
+ height: elem.outerHeight(),
+ offset: elem.offset()
};
}
- };
- $.fn.pos = function(options) {
- if (!options || !options.of) {
- return _position.apply(this, arguments);
- }
+ $.pos = {
+ scrollbarWidth: function() {
+ if (cachedScrollbarWidth !== undefined) {
+ return cachedScrollbarWidth;
+ }
+ var w1, w2,
+ div = $(""),
+ innerDiv = div.children()[0];
- // make a copy, we don't want to modify arguments
- options = $.extend({}, options);
+ $("body").append(div);
+ w1 = innerDiv.offsetWidth;
+ div.css("overflow", "scroll");
- var atOffset, targetWidth, targetHeight, targetOffset, basePosition, dimensions,
- target = $(options.of),
- within = $.pos.getWithinInfo(options.within),
- scrollInfo = $.pos.getScrollInfo(within),
- collision = (options.collision || "flip").split(" "),
- offsets = {};
+ w2 = innerDiv.offsetWidth;
- dimensions = getDimensions(target);
- if (target[0].preventDefault) {
- // force left top to allow flipping
- options.at = "left top";
- }
- targetWidth = dimensions.width;
- targetHeight = dimensions.height;
- targetOffset = dimensions.offset;
- // clone to reuse original targetOffset later
- basePosition = $.extend({}, targetOffset);
-
- // force my and at to have valid horizontal and vertical positions
- // if a value is missing or invalid, it will be converted to center
- $.each(["my", "at"], function() {
- var pos = (options[this] || "").split(" "),
- horizontalOffset,
- verticalOffset;
-
- if (pos.length === 1) {
- pos = rhorizontal.test(pos[0]) ?
- pos.concat(["center"]) :
- rvertical.test(pos[0]) ? ["center"].concat(pos) : ["center", "center"];
+ if (w1 === w2) {
+ w2 = div[0].clientWidth;
+ }
+
+ div.remove();
+
+ return (cachedScrollbarWidth = w1 - w2);
+ },
+ getScrollInfo: function(within) {
+ var overflowX = within.isWindow || within.isDocument ? "" :
+ within.element.css("overflow-x"),
+ overflowY = within.isWindow || within.isDocument ? "" :
+ within.element.css("overflow-y"),
+ hasOverflowX = overflowX === "scroll" ||
+ (overflowX === "auto" && within.width < within.element[0].scrollWidth),
+ hasOverflowY = overflowY === "scroll" ||
+ (overflowY === "auto" && within.height < within.element[0].scrollHeight);
+ return {
+ width: hasOverflowY ? $.pos.scrollbarWidth() : 0,
+ height: hasOverflowX ? $.pos.scrollbarWidth() : 0
+ };
+ },
+ getWithinInfo: function(element) {
+ var withinElement = $(element || window),
+ isWindow = $.isWindow(withinElement[0]),
+ isDocument = !!withinElement[0] && withinElement[0].nodeType === 9,
+ hasOffset = !isWindow && !isDocument;
+ return {
+ element: withinElement,
+ isWindow: isWindow,
+ isDocument: isDocument,
+ offset: hasOffset ? $(element).offset() : {
+ left: 0,
+ top: 0
+ },
+ scrollLeft: withinElement.scrollLeft(),
+ scrollTop: withinElement.scrollTop(),
+ width: withinElement.outerWidth(),
+ height: withinElement.outerHeight()
+ };
}
- pos[0] = rhorizontal.test(pos[0]) ? pos[0] : "center";
- pos[1] = rvertical.test(pos[1]) ? pos[1] : "center";
-
- // calculate offsets
- horizontalOffset = roffset.exec(pos[0]);
- verticalOffset = roffset.exec(pos[1]);
- offsets[this] = [
- horizontalOffset ? horizontalOffset[0] : 0,
- verticalOffset ? verticalOffset[0] : 0
- ];
+ };
- // reduce to just the positions without the offsets
- options[this] = [
- rposition.exec(pos[0])[0],
- rposition.exec(pos[1])[0]
- ];
- });
+ $.fn.pos = function(options) {
+ if (!options || !options.of) {
+ return _position.apply(this, arguments);
+ }
- // normalize collision option
- if (collision.length === 1) {
- collision[1] = collision[0];
- }
+ // Make a copy, we don't want to modify arguments
+ options = $.extend({}, options);
- if (options.at[0] === "right") {
- basePosition.left += targetWidth;
- } else if (options.at[0] === "center") {
- basePosition.left += targetWidth / 2;
- }
+ var atOffset, targetWidth, targetHeight, targetOffset, basePosition, dimensions,
+ target = $(options.of),
+ within = $.pos.getWithinInfo(options.within),
+ scrollInfo = $.pos.getScrollInfo(within),
+ collision = (options.collision || "flip").split(" "),
+ offsets = {};
- if (options.at[1] === "bottom") {
- basePosition.top += targetHeight;
- } else if (options.at[1] === "center") {
- basePosition.top += targetHeight / 2;
- }
+ dimensions = getDimensions(target);
+ if (target[0].preventDefault) {
- atOffset = getOffsets(offsets.at, targetWidth, targetHeight);
- basePosition.left += atOffset[0];
- basePosition.top += atOffset[1];
-
- return this.each(function() {
- var collisionPosition, using,
- elem = $(this),
- elemWidth = elem.outerWidth(),
- elemHeight = elem.outerHeight(),
- marginLeft = parseCss(this, "marginLeft"),
- marginTop = parseCss(this, "marginTop"),
- collisionWidth = elemWidth + marginLeft + parseCss(this, "marginRight") + scrollInfo.width,
- collisionHeight = elemHeight + marginTop + parseCss(this, "marginBottom") + scrollInfo.height,
- position = $.extend({}, basePosition),
- myOffset = getOffsets(offsets.my, elem.outerWidth(), elem.outerHeight());
-
- if (options.my[0] === "right") {
- position.left -= elemWidth;
- } else if (options.my[0] === "center") {
- position.left -= elemWidth / 2;
+ // Force left top to allow flipping
+ options.at = "left top";
}
+ targetWidth = dimensions.width;
+ targetHeight = dimensions.height;
+ targetOffset = dimensions.offset;
+
+ // Clone to reuse original targetOffset later
+ basePosition = $.extend({}, targetOffset);
+
+ // Force my and at to have valid horizontal and vertical positions
+ // if a value is missing or invalid, it will be converted to center
+ $.each(["my", "at"], function() {
+ var pos = (options[this] || "").split(" "),
+ horizontalOffset,
+ verticalOffset;
+
+ if (pos.length === 1) {
+ pos = rhorizontal.test(pos[0]) ?
+ pos.concat(["center"]) :
+ rvertical.test(pos[0]) ? ["center"].concat(pos) : ["center", "center"];
+ }
+ pos[0] = rhorizontal.test(pos[0]) ? pos[0] : "center";
+ pos[1] = rvertical.test(pos[1]) ? pos[1] : "center";
+
+ // Calculate offsets
+ horizontalOffset = roffset.exec(pos[0]);
+ verticalOffset = roffset.exec(pos[1]);
+ offsets[this] = [
+ horizontalOffset ? horizontalOffset[0] : 0,
+ verticalOffset ? verticalOffset[0] : 0
+ ];
+
+ // Reduce to just the positions without the offsets
+ options[this] = [
+ rposition.exec(pos[0])[0],
+ rposition.exec(pos[1])[0]
+ ];
+ });
- if (options.my[1] === "bottom") {
- position.top -= elemHeight;
- } else if (options.my[1] === "center") {
- position.top -= elemHeight / 2;
+ // Normalize collision option
+ if (collision.length === 1) {
+ collision[1] = collision[0];
}
- position.left += myOffset[0];
- position.top += myOffset[1];
+ if (options.at[0] === "right") {
+ basePosition.left += targetWidth;
+ } else if (options.at[0] === "center") {
+ basePosition.left += targetWidth / 2;
+ }
- // if the browser doesn't support fractions, then round for consistent results
- if (!$.support.offsetFractions) {
- position.left = round(position.left);
- position.top = round(position.top);
+ if (options.at[1] === "bottom") {
+ basePosition.top += targetHeight;
+ } else if (options.at[1] === "center") {
+ basePosition.top += targetHeight / 2;
}
- collisionPosition = {
- marginLeft: marginLeft,
- marginTop: marginTop
- };
+ atOffset = getOffsets(offsets.at, targetWidth, targetHeight);
+ basePosition.left += atOffset[0];
+ basePosition.top += atOffset[1];
+
+ return this.each(function() {
+ var collisionPosition, using,
+ elem = $(this),
+ elemWidth = elem.outerWidth(),
+ elemHeight = elem.outerHeight(),
+ marginLeft = parseCss(this, "marginLeft"),
+ marginTop = parseCss(this, "marginTop"),
+ collisionWidth = elemWidth + marginLeft + parseCss(this, "marginRight") +
+ scrollInfo.width,
+ collisionHeight = elemHeight + marginTop + parseCss(this, "marginBottom") +
+ scrollInfo.height,
+ position = $.extend({}, basePosition),
+ myOffset = getOffsets(offsets.my, elem.outerWidth(), elem.outerHeight());
+
+ if (options.my[0] === "right") {
+ position.left -= elemWidth;
+ } else if (options.my[0] === "center") {
+ position.left -= elemWidth / 2;
+ }
- $.each(["left", "top"], function(i, dir) {
- if ($.ui.pos[collision[i]]) {
- $.ui.pos[collision[i]][dir](position, {
- targetWidth: targetWidth,
- targetHeight: targetHeight,
- elemWidth: elemWidth,
- elemHeight: elemHeight,
- collisionPosition: collisionPosition,
- collisionWidth: collisionWidth,
- collisionHeight: collisionHeight,
- offset: [atOffset[0] + myOffset[0], atOffset[1] + myOffset[1]],
- my: options.my,
- at: options.at,
- within: within,
- elem: elem
- });
+ if (options.my[1] === "bottom") {
+ position.top -= elemHeight;
+ } else if (options.my[1] === "center") {
+ position.top -= elemHeight / 2;
}
- });
- if (options.using) {
- // adds feedback as second argument to using callback, if present
- using = function(props) {
- var left = targetOffset.left - position.left,
- right = left + targetWidth - elemWidth,
- top = targetOffset.top - position.top,
- bottom = top + targetHeight - elemHeight,
- feedback = {
- target: {
- element: target,
- left: targetOffset.left,
- top: targetOffset.top,
- width: targetWidth,
- height: targetHeight
- },
- element: {
- element: elem,
- left: position.left,
- top: position.top,
- width: elemWidth,
- height: elemHeight
- },
- horizontal: right < 0 ? "left" : left > 0 ? "right" : "center",
- vertical: bottom < 0 ? "top" : top > 0 ? "bottom" : "middle"
- };
- if (targetWidth < elemWidth && abs(left + right) < targetWidth) {
- feedback.horizontal = "center";
- }
- if (targetHeight < elemHeight && abs(top + bottom) < targetHeight) {
- feedback.vertical = "middle";
- }
- if (max(abs(left), abs(right)) > max(abs(top), abs(bottom))) {
- feedback.important = "horizontal";
- } else {
- feedback.important = "vertical";
- }
- options.using.call(this, props, feedback);
+ position.left += myOffset[0];
+ position.top += myOffset[1];
+
+ collisionPosition = {
+ marginLeft: marginLeft,
+ marginTop: marginTop
};
- }
- elem.offset($.extend(position, {
- using: using
- }));
- });
- };
-
- $.ui.pos = {
- _trigger: function(position, data, name, triggered) {
- if (data.elem) {
- data.elem.trigger({
- 'type': name,
- 'position': position,
- 'positionData': data,
- 'triggered': triggered
+ $.each(["left", "top"], function(i, dir) {
+ if ($.ui.pos[collision[i]]) {
+ $.ui.pos[collision[i]][dir](position, {
+ targetWidth: targetWidth,
+ targetHeight: targetHeight,
+ elemWidth: elemWidth,
+ elemHeight: elemHeight,
+ collisionPosition: collisionPosition,
+ collisionWidth: collisionWidth,
+ collisionHeight: collisionHeight,
+ offset: [atOffset[0] + myOffset[0], atOffset[1] + myOffset[1]],
+ my: options.my,
+ at: options.at,
+ within: within,
+ elem: elem
+ });
+ }
});
- }
- },
- fit: {
- left: function(position, data) {
- $.ui.pos._trigger(position, data, 'posCollide', 'fitLeft');
- var within = data.within,
- withinOffset = within.isWindow ? within.scrollLeft : within.offset.left,
- outerWidth = within.width,
- collisionPosLeft = position.left - data.collisionPosition.marginLeft,
- overLeft = withinOffset - collisionPosLeft,
- overRight = collisionPosLeft + data.collisionWidth - outerWidth - withinOffset,
- newOverRight;
-
- // element is wider than within
- if (data.collisionWidth > outerWidth) {
- // element is initially over the left side of within
- if (overLeft > 0 && overRight <= 0) {
- newOverRight = position.left + overLeft + data.collisionWidth - outerWidth - withinOffset;
- position.left += overLeft - newOverRight;
- // element is initially over right side of within
- } else if (overRight > 0 && overLeft <= 0) {
- position.left = withinOffset;
- // element is initially over both left and right sides of within
- } else {
- if (overLeft > overRight) {
- position.left = withinOffset + outerWidth - data.collisionWidth;
+
+ if (options.using) {
+
+ // Adds feedback as second argument to using callback, if present
+ using = function(props) {
+ var left = targetOffset.left - position.left,
+ right = left + targetWidth - elemWidth,
+ top = targetOffset.top - position.top,
+ bottom = top + targetHeight - elemHeight,
+ feedback = {
+ target: {
+ element: target,
+ left: targetOffset.left,
+ top: targetOffset.top,
+ width: targetWidth,
+ height: targetHeight
+ },
+ element: {
+ element: elem,
+ left: position.left,
+ top: position.top,
+ width: elemWidth,
+ height: elemHeight
+ },
+ horizontal: right < 0 ? "left" : left > 0 ? "right" : "center",
+ vertical: bottom < 0 ? "top" : top > 0 ? "bottom" : "middle"
+ };
+ if (targetWidth < elemWidth && abs(left + right) < targetWidth) {
+ feedback.horizontal = "center";
+ }
+ if (targetHeight < elemHeight && abs(top + bottom) < targetHeight) {
+ feedback.vertical = "middle";
+ }
+ if (max(abs(left), abs(right)) > max(abs(top), abs(bottom))) {
+ feedback.important = "horizontal";
} else {
- position.left = withinOffset;
+ feedback.important = "vertical";
}
- }
- // too far left -> align with left edge
- } else if (overLeft > 0) {
- position.left += overLeft;
- // too far right -> align with right edge
- } else if (overRight > 0) {
- position.left -= overRight;
- // adjust based on position and margin
- } else {
- position.left = max(position.left - collisionPosLeft, position.left);
+ options.using.call(this, props, feedback);
+ };
+ }
+
+ elem.offset($.extend(position, {
+ using: using
+ }));
+ });
+ };
+
+ $.ui.pos = {
+ _trigger: function(position, data, name, triggered) {
+ if (data.elem) {
+ data.elem.trigger({
+ 'type': name,
+ 'position': position,
+ 'positionData': data,
+ 'triggered': triggered
+ });
}
- $.ui.pos._trigger(position, data, 'posCollided', 'fitLeft');
},
- top: function(position, data) {
- $.ui.pos._trigger(position, data, 'posCollide', 'fitTop');
- var within = data.within,
- withinOffset = within.isWindow ? within.scrollTop : within.offset.top,
- outerHeight = data.within.height,
- collisionPosTop = position.top - data.collisionPosition.marginTop,
- overTop = withinOffset - collisionPosTop,
- overBottom = collisionPosTop + data.collisionHeight - outerHeight - withinOffset,
- newOverBottom;
-
- // element is taller than within
- if (data.collisionHeight > outerHeight) {
- // element is initially over the top of within
- if (overTop > 0 && overBottom <= 0) {
- newOverBottom = position.top + overTop + data.collisionHeight - outerHeight - withinOffset;
- position.top += overTop - newOverBottom;
- // element is initially over bottom of within
- } else if (overBottom > 0 && overTop <= 0) {
- position.top = withinOffset;
- // element is initially over both top and bottom of within
- } else {
- if (overTop > overBottom) {
- position.top = withinOffset + outerHeight - data.collisionHeight;
+ fit: {
+ left: function(position, data) {
+ $.ui.pos._trigger(position, data, 'posCollide', 'fitLeft');
+ var within = data.within,
+ withinOffset = within.isWindow ? within.scrollLeft : within.offset.left,
+ outerWidth = within.width,
+ collisionPosLeft = position.left - data.collisionPosition.marginLeft,
+ overLeft = withinOffset - collisionPosLeft,
+ overRight = collisionPosLeft + data.collisionWidth - outerWidth - withinOffset,
+ newOverRight;
+
+ // Element is wider than within
+ if (data.collisionWidth > outerWidth) {
+
+ // Element is initially over the left side of within
+ if (overLeft > 0 && overRight <= 0) {
+ newOverRight = position.left + overLeft + data.collisionWidth - outerWidth -
+ withinOffset;
+ position.left += overLeft - newOverRight;
+
+ // Element is initially over right side of within
+ } else if (overRight > 0 && overLeft <= 0) {
+ position.left = withinOffset;
+
+ // Element is initially over both left and right sides of within
} else {
+ if (overLeft > overRight) {
+ position.left = withinOffset + outerWidth - data.collisionWidth;
+ } else {
+ position.left = withinOffset;
+ }
+ }
+
+ // Too far left -> align with left edge
+ } else if (overLeft > 0) {
+ position.left += overLeft;
+
+ // Too far right -> align with right edge
+ } else if (overRight > 0) {
+ position.left -= overRight;
+
+ // Adjust based on position and margin
+ } else {
+ position.left = max(position.left - collisionPosLeft, position.left);
+ }
+ $.ui.pos._trigger(position, data, 'posCollided', 'fitLeft');
+ },
+ top: function(position, data) {
+ $.ui.pos._trigger(position, data, 'posCollide', 'fitTop');
+ var within = data.within,
+ withinOffset = within.isWindow ? within.scrollTop : within.offset.top,
+ outerHeight = data.within.height,
+ collisionPosTop = position.top - data.collisionPosition.marginTop,
+ overTop = withinOffset - collisionPosTop,
+ overBottom = collisionPosTop + data.collisionHeight - outerHeight - withinOffset,
+ newOverBottom;
+
+ // Element is taller than within
+ if (data.collisionHeight > outerHeight) {
+
+ // Element is initially over the top of within
+ if (overTop > 0 && overBottom <= 0) {
+ newOverBottom = position.top + overTop + data.collisionHeight - outerHeight -
+ withinOffset;
+ position.top += overTop - newOverBottom;
+
+ // Element is initially over bottom of within
+ } else if (overBottom > 0 && overTop <= 0) {
position.top = withinOffset;
+
+ // Element is initially over both top and bottom of within
+ } else {
+ if (overTop > overBottom) {
+ position.top = withinOffset + outerHeight - data.collisionHeight;
+ } else {
+ position.top = withinOffset;
+ }
}
+
+ // Too far up -> align with top
+ } else if (overTop > 0) {
+ position.top += overTop;
+
+ // Too far down -> align with bottom edge
+ } else if (overBottom > 0) {
+ position.top -= overBottom;
+
+ // Adjust based on position and margin
+ } else {
+ position.top = max(position.top - collisionPosTop, position.top);
}
- // too far up -> align with top
- } else if (overTop > 0) {
- position.top += overTop;
- // too far down -> align with bottom edge
- } else if (overBottom > 0) {
- position.top -= overBottom;
- // adjust based on position and margin
- } else {
- position.top = max(position.top - collisionPosTop, position.top);
+ $.ui.pos._trigger(position, data, 'posCollided', 'fitTop');
}
- $.ui.pos._trigger(position, data, 'posCollided', 'fitTop');
- }
- },
- flip: {
- left: function(position, data) {
- $.ui.pos._trigger(position, data, 'posCollide', 'flipLeft');
- var within = data.within,
- withinOffset = within.offset.left + within.scrollLeft,
- outerWidth = within.width,
- offsetLeft = within.isWindow ? within.scrollLeft : within.offset.left,
- collisionPosLeft = position.left - data.collisionPosition.marginLeft,
- overLeft = collisionPosLeft - offsetLeft,
- overRight = collisionPosLeft + data.collisionWidth - outerWidth - offsetLeft,
- myOffset = data.my[0] === "left" ?
- -data.elemWidth :
- data.my[0] === "right" ?
- data.elemWidth :
- 0,
- atOffset = data.at[0] === "left" ?
- data.targetWidth :
- data.at[0] === "right" ?
- -data.targetWidth :
- 0,
- offset = -2 * data.offset[0],
- newOverRight,
- newOverLeft;
-
- if (overLeft < 0) {
- newOverRight = position.left + myOffset + atOffset + offset + data.collisionWidth - outerWidth - withinOffset;
- if (newOverRight < 0 || newOverRight < abs(overLeft)) {
- position.left += myOffset + atOffset + offset;
+ },
+ flip: {
+ left: function(position, data) {
+ $.ui.pos._trigger(position, data, 'posCollide', 'flipLeft');
+ var within = data.within,
+ withinOffset = within.offset.left + within.scrollLeft,
+ outerWidth = within.width,
+ offsetLeft = within.isWindow ? within.scrollLeft : within.offset.left,
+ collisionPosLeft = position.left - data.collisionPosition.marginLeft,
+ overLeft = collisionPosLeft - offsetLeft,
+ overRight = collisionPosLeft + data.collisionWidth - outerWidth - offsetLeft,
+ myOffset = data.my[0] === "left" ?
+ -data.elemWidth :
+ data.my[0] === "right" ?
+ data.elemWidth :
+ 0,
+ atOffset = data.at[0] === "left" ?
+ data.targetWidth :
+ data.at[0] === "right" ?
+ -data.targetWidth :
+ 0,
+ offset = -2 * data.offset[0],
+ newOverRight,
+ newOverLeft;
+
+ if (overLeft < 0) {
+ newOverRight = position.left + myOffset + atOffset + offset + data.collisionWidth -
+ outerWidth - withinOffset;
+ if (newOverRight < 0 || newOverRight < abs(overLeft)) {
+ position.left += myOffset + atOffset + offset;
+ }
+ } else if (overRight > 0) {
+ newOverLeft = position.left - data.collisionPosition.marginLeft + myOffset +
+ atOffset + offset - offsetLeft;
+ if (newOverLeft > 0 || abs(newOverLeft) < overRight) {
+ position.left += myOffset + atOffset + offset;
+ }
}
- } else if (overRight > 0) {
- newOverLeft = position.left - data.collisionPosition.marginLeft + myOffset + atOffset + offset - offsetLeft;
- if (newOverLeft > 0 || abs(newOverLeft) < overRight) {
- position.left += myOffset + atOffset + offset;
+ $.ui.pos._trigger(position, data, 'posCollided', 'flipLeft');
+ },
+ top: function(position, data) {
+ $.ui.pos._trigger(position, data, 'posCollide', 'flipTop');
+ var within = data.within,
+ withinOffset = within.offset.top + within.scrollTop,
+ outerHeight = within.height,
+ offsetTop = within.isWindow ? within.scrollTop : within.offset.top,
+ collisionPosTop = position.top - data.collisionPosition.marginTop,
+ overTop = collisionPosTop - offsetTop,
+ overBottom = collisionPosTop + data.collisionHeight - outerHeight - offsetTop,
+ top = data.my[1] === "top",
+ myOffset = top ?
+ -data.elemHeight :
+ data.my[1] === "bottom" ?
+ data.elemHeight :
+ 0,
+ atOffset = data.at[1] === "top" ?
+ data.targetHeight :
+ data.at[1] === "bottom" ?
+ -data.targetHeight :
+ 0,
+ offset = -2 * data.offset[1],
+ newOverTop,
+ newOverBottom;
+ if (overTop < 0) {
+ newOverBottom = position.top + myOffset + atOffset + offset + data.collisionHeight -
+ outerHeight - withinOffset;
+ if (newOverBottom < 0 || newOverBottom < abs(overTop)) {
+ position.top += myOffset + atOffset + offset;
+ }
+ } else if (overBottom > 0) {
+ newOverTop = position.top - data.collisionPosition.marginTop + myOffset + atOffset +
+ offset - offsetTop;
+ if (newOverTop > 0 || abs(newOverTop) < overBottom) {
+ position.top += myOffset + atOffset + offset;
+ }
}
+ $.ui.pos._trigger(position, data, 'posCollided', 'flipTop');
}
- $.ui.pos._trigger(position, data, 'posCollided', 'flipLeft');
},
- top: function(position, data) {
- $.ui.pos._trigger(position, data, 'posCollide', 'flipTop');
- var within = data.within,
- withinOffset = within.offset.top + within.scrollTop,
- outerHeight = within.height,
- offsetTop = within.isWindow ? within.scrollTop : within.offset.top,
- collisionPosTop = position.top - data.collisionPosition.marginTop,
- overTop = collisionPosTop - offsetTop,
- overBottom = collisionPosTop + data.collisionHeight - outerHeight - offsetTop,
- top = data.my[1] === "top",
- myOffset = top ?
- -data.elemHeight :
- data.my[1] === "bottom" ?
- data.elemHeight :
- 0,
- atOffset = data.at[1] === "top" ?
- data.targetHeight :
- data.at[1] === "bottom" ?
- -data.targetHeight :
- 0,
- offset = -2 * data.offset[1],
- newOverTop,
- newOverBottom;
- if (overTop < 0) {
- newOverBottom = position.top + myOffset + atOffset + offset + data.collisionHeight - outerHeight - withinOffset;
- if ((position.top + myOffset + atOffset + offset) > overTop && (newOverBottom < 0 || newOverBottom < abs(overTop))) {
- position.top += myOffset + atOffset + offset;
- }
- } else if (overBottom > 0) {
- newOverTop = position.top - data.collisionPosition.marginTop + myOffset + atOffset + offset - offsetTop;
- if ((position.top + myOffset + atOffset + offset) > overBottom && (newOverTop > 0 || abs(newOverTop) < overBottom)) {
- position.top += myOffset + atOffset + offset;
- }
+ flipfit: {
+ left: function() {
+ $.ui.pos.flip.left.apply(this, arguments);
+ $.ui.pos.fit.left.apply(this, arguments);
+ },
+ top: function() {
+ $.ui.pos.flip.top.apply(this, arguments);
+ $.ui.pos.fit.top.apply(this, arguments);
}
- $.ui.pos._trigger(position, data, 'posCollided', 'flipTop');
}
- },
- flipfit: {
- left: function() {
- $.ui.pos.flip.left.apply(this, arguments);
- $.ui.pos.fit.left.apply(this, arguments);
- },
- top: function() {
- $.ui.pos.flip.top.apply(this, arguments);
- $.ui.pos.fit.top.apply(this, arguments);
+ };
+ // fraction support test
+ (function() {
+ var testElement, testElementParent, testElementStyle, offsetLeft, i,
+ body = document.getElementsByTagName("body")[0],
+ div = document.createElement("div");
+
+ //Create a "fake body" for testing based on method used in jQuery.support
+ testElement = document.createElement(body ? "div" : "body");
+ testElementStyle = {
+ visibility: "hidden",
+ width: 0,
+ height: 0,
+ border: 0,
+ margin: 0,
+ background: "none"
+ };
+ if (body) {
+ $.extend(testElementStyle, {
+ position: "absolute",
+ left: "-1000px",
+ top: "-1000px"
+ });
}
- }
- };
+ for (i in testElementStyle) {
+ testElement.style[i] = testElementStyle[i];
+ }
+ testElement.appendChild(div);
+ testElementParent = body || document.documentElement;
+ testElementParent.insertBefore(testElement, testElementParent.firstChild);
- // fraction support test
- (function() {
- var testElement, testElementParent, testElementStyle, offsetLeft, i,
- body = document.getElementsByTagName("body")[0],
- div = document.createElement("div");
-
- //Create a "fake body" for testing based on method used in jQuery.support
- testElement = document.createElement(body ? "div" : "body");
- testElementStyle = {
- visibility: "hidden",
- width: 0,
- height: 0,
- border: 0,
- margin: 0,
- background: "none"
- };
- if (body) {
- $.extend(testElementStyle, {
- position: "absolute",
- left: "-1000px",
- top: "-1000px"
- });
- }
- for (i in testElementStyle) {
- testElement.style[i] = testElementStyle[i];
- }
- testElement.appendChild(div);
- testElementParent = body || document.documentElement;
- testElementParent.insertBefore(testElement, testElementParent.firstChild);
+ div.style.cssText = "position: absolute; left: 10.7432222px;";
- div.style.cssText = "position: absolute; left: 10.7432222px;";
+ offsetLeft = $(div).offset().left;
+ $.support.offsetFractions = offsetLeft > 10 && offsetLeft < 11;
- offsetLeft = $(div).offset().left;
- $.support.offsetFractions = offsetLeft > 10 && offsetLeft < 11;
+ testElement.innerHTML = "";
+ testElementParent.removeChild(testElement);
+ })();
- testElement.innerHTML = "";
- testElementParent.removeChild(testElement);
})();
-}(jQuery));
+ var position = $.ui.position;
+
+
+
+
+}));