Add Material Design for Public and Admin

This commit is contained in:
Mathieu Lagace
2019-08-14 15:29:37 -04:00
parent cb3fdc44e2
commit 9f85296cea
960 changed files with 410664 additions and 7451 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,834 @@
/*
Copyright (C) Federico Zivolo 2017
Distributed under the MIT License (license terms are at http://opensource.org/licenses/MIT).
*/
(function(e, t) {
'object' == typeof exports && 'undefined' != typeof module ? module.exports = t() : 'function' == typeof define && define.amd ? define(t) : e.Popper = t()
})(this, function() {
'use strict';
function e(e) {
return e && '[object Function]' === {}.toString.call(e)
}
function t(e, t) {
if (1 !== e.nodeType) return [];
var o = window.getComputedStyle(e, null);
return t ? o[t] : o
}
function o(e) {
return 'HTML' === e.nodeName ? e : e.parentNode || e.host
}
function n(e) {
if (!e || -1 !== ['HTML', 'BODY', '#document'].indexOf(e.nodeName)) return window.document.body;
var i = t(e),
r = i.overflow,
p = i.overflowX,
s = i.overflowY;
return /(auto|scroll)/.test(r + s + p) ? e : n(o(e))
}
function r(e) {
var o = e && e.offsetParent,
i = o && o.nodeName;
return i && 'BODY' !== i && 'HTML' !== i ? -1 !== ['TD', 'TABLE'].indexOf(o.nodeName) && 'static' === t(o, 'position') ? r(o) : o : window.document.documentElement
}
function p(e) {
var t = e.nodeName;
return 'BODY' !== t && ('HTML' === t || r(e.firstElementChild) === e)
}
function s(e) {
return null === e.parentNode ? e : s(e.parentNode)
}
function d(e, t) {
if (!e || !e.nodeType || !t || !t.nodeType) return window.document.documentElement;
var o = e.compareDocumentPosition(t) & Node.DOCUMENT_POSITION_FOLLOWING,
i = o ? e : t,
n = o ? t : e,
a = document.createRange();
a.setStart(i, 0), a.setEnd(n, 0);
var f = a.commonAncestorContainer;
if (e !== f && t !== f || i.contains(n)) return p(f) ? f : r(f);
var l = s(e);
return l.host ? d(l.host, t) : d(e, s(t).host)
}
function a(e) {
var t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : 'top',
o = 'top' === t ? 'scrollTop' : 'scrollLeft',
i = e.nodeName;
if ('BODY' === i || 'HTML' === i) {
var n = window.document.documentElement,
r = window.document.scrollingElement || n;
return r[o]
}
return e[o]
}
function f(e, t) {
var o = 2 < arguments.length && void 0 !== arguments[2] && arguments[2],
i = a(t, 'top'),
n = a(t, 'left'),
r = o ? -1 : 1;
return e.top += i * r, e.bottom += i * r, e.left += n * r, e.right += n * r, e
}
function l(e, t) {
var o = 'x' === t ? 'Left' : 'Top',
i = 'Left' == o ? 'Right' : 'Bottom';
return +e['border' + o + 'Width'].split('px')[0] + +e['border' + i + 'Width'].split('px')[0]
}
function m(e, t, o, i) {
return _(t['offset' + e], o['client' + e], o['offset' + e], ie() ? o['offset' + e] + i['margin' + ('Height' === e ? 'Top' : 'Left')] + i['margin' + ('Height' === e ? 'Bottom' : 'Right')] : 0)
}
function h() {
var e = window.document.body,
t = window.document.documentElement,
o = ie() && window.getComputedStyle(t);
return {
height: m('Height', e, t, o),
width: m('Width', e, t, o)
}
}
function c(e) {
return se({}, e, {
right: e.left + e.width,
bottom: e.top + e.height
})
}
function g(e) {
var o = {};
if (ie()) try {
o = e.getBoundingClientRect();
var i = a(e, 'top'),
n = a(e, 'left');
o.top += i, o.left += n, o.bottom += i, o.right += n
} catch (e) {} else o = e.getBoundingClientRect();
var r = {
left: o.left,
top: o.top,
width: o.right - o.left,
height: o.bottom - o.top
},
p = 'HTML' === e.nodeName ? h() : {},
s = p.width || e.clientWidth || r.right - r.left,
d = p.height || e.clientHeight || r.bottom - r.top,
f = e.offsetWidth - s,
m = e.offsetHeight - d;
if (f || m) {
var g = t(e);
f -= l(g, 'x'), m -= l(g, 'y'), r.width -= f, r.height -= m
}
return c(r)
}
function u(e, o) {
var i = ie(),
r = 'HTML' === o.nodeName,
p = g(e),
s = g(o),
d = n(e),
a = t(o),
l = +a.borderTopWidth.split('px')[0],
m = +a.borderLeftWidth.split('px')[0],
h = c({
top: p.top - s.top - l,
left: p.left - s.left - m,
width: p.width,
height: p.height
});
if (h.marginTop = 0, h.marginLeft = 0, !i && r) {
var u = +a.marginTop.split('px')[0],
b = +a.marginLeft.split('px')[0];
h.top -= l - u, h.bottom -= l - u, h.left -= m - b, h.right -= m - b, h.marginTop = u, h.marginLeft = b
}
return (i ? o.contains(d) : o === d && 'BODY' !== d.nodeName) && (h = f(h, o)), h
}
function b(e) {
var t = window.document.documentElement,
o = u(e, t),
i = _(t.clientWidth, window.innerWidth || 0),
n = _(t.clientHeight, window.innerHeight || 0),
r = a(t),
p = a(t, 'left'),
s = {
top: r - o.top + o.marginTop,
left: p - o.left + o.marginLeft,
width: i,
height: n
};
return c(s)
}
function y(e) {
var i = e.nodeName;
return 'BODY' === i || 'HTML' === i ? !1 : 'fixed' === t(e, 'position') || y(o(e))
}
function w(e, t, i, r) {
var p = {
top: 0,
left: 0
},
s = d(e, t);
if ('viewport' === r) p = b(s);
else {
var a;
'scrollParent' === r ? (a = n(o(e)), 'BODY' === a.nodeName && (a = window.document.documentElement)) : 'window' === r ? a = window.document.documentElement : a = r;
var f = u(a, s);
if ('HTML' === a.nodeName && !y(s)) {
var l = h(),
m = l.height,
c = l.width;
p.top += f.top - f.marginTop, p.bottom = m + f.top, p.left += f.left - f.marginLeft, p.right = c + f.left
} else p = f
}
return p.left += i, p.top += i, p.right -= i, p.bottom -= i, p
}
function v(e) {
var t = e.width,
o = e.height;
return t * o
}
function E(e, t, o, i, n) {
var r = 5 < arguments.length && void 0 !== arguments[5] ? arguments[5] : 0;
if (-1 === e.indexOf('auto')) return e;
var p = w(o, i, r, n),
s = {
top: {
width: p.width,
height: t.top - p.top
},
right: {
width: p.right - t.right,
height: p.height
},
bottom: {
width: p.width,
height: p.bottom - t.bottom
},
left: {
width: t.left - p.left,
height: p.height
}
},
d = Object.keys(s).map(function(e) {
return se({
key: e
}, s[e], {
area: v(s[e])
})
}).sort(function(e, t) {
return t.area - e.area
}),
a = d.filter(function(e) {
var t = e.width,
i = e.height;
return t >= o.clientWidth && i >= o.clientHeight
}),
f = 0 < a.length ? a[0].key : d[0].key,
l = e.split('-')[1];
return f + (l ? '-' + l : '')
}
function x(e, t, o) {
var i = d(t, o);
return u(o, i)
}
function O(e) {
var t = window.getComputedStyle(e),
o = parseFloat(t.marginTop) + parseFloat(t.marginBottom),
i = parseFloat(t.marginLeft) + parseFloat(t.marginRight),
n = {
width: e.offsetWidth + i,
height: e.offsetHeight + o
};
return n
}
function L(e) {
var t = {
left: 'right',
right: 'left',
bottom: 'top',
top: 'bottom'
};
return e.replace(/left|right|bottom|top/g, function(e) {
return t[e]
})
}
function S(e, t, o) {
o = o.split('-')[0];
var i = O(e),
n = {
width: i.width,
height: i.height
},
r = -1 !== ['right', 'left'].indexOf(o),
p = r ? 'top' : 'left',
s = r ? 'left' : 'top',
d = r ? 'height' : 'width',
a = r ? 'width' : 'height';
return n[p] = t[p] + t[d] / 2 - i[d] / 2, n[s] = o === s ? t[s] - i[a] : t[L(s)], n
}
function T(e, t) {
return Array.prototype.find ? e.find(t) : e.filter(t)[0]
}
function C(e, t, o) {
if (Array.prototype.findIndex) return e.findIndex(function(e) {
return e[t] === o
});
var i = T(e, function(e) {
return e[t] === o
});
return e.indexOf(i)
}
function N(t, o, i) {
var n = void 0 === i ? t : t.slice(0, C(t, 'name', i));
return n.forEach(function(t) {
t.function && console.warn('`modifier.function` is deprecated, use `modifier.fn`!');
var i = t.function || t.fn;
t.enabled && e(i) && (o.offsets.popper = c(o.offsets.popper), o.offsets.reference = c(o.offsets.reference), o = i(o, t))
}), o
}
function k() {
if (!this.state.isDestroyed) {
var e = {
instance: this,
styles: {},
attributes: {},
flipped: !1,
offsets: {}
};
e.offsets.reference = x(this.state, this.popper, this.reference), e.placement = E(this.options.placement, e.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding), e.originalPlacement = e.placement, e.offsets.popper = S(this.popper, e.offsets.reference, e.placement), e.offsets.popper.position = 'absolute', e = N(this.modifiers, e), this.state.isCreated ? this.options.onUpdate(e) : (this.state.isCreated = !0, this.options.onCreate(e))
}
}
function W(e, t) {
return e.some(function(e) {
var o = e.name,
i = e.enabled;
return i && o === t
})
}
function B(e) {
for (var t = [!1, 'ms', 'Webkit', 'Moz', 'O'], o = e.charAt(0).toUpperCase() + e.slice(1), n = 0; n < t.length - 1; n++) {
var i = t[n],
r = i ? '' + i + o : e;
if ('undefined' != typeof window.document.body.style[r]) return r
}
return null
}
function D() {
return this.state.isDestroyed = !0, W(this.modifiers, 'applyStyle') && (this.popper.removeAttribute('x-placement'), this.popper.style.left = '', this.popper.style.position = '', this.popper.style.top = '', this.popper.style[B('transform')] = ''), this.disableEventListeners(), this.options.removeOnDestroy && this.popper.parentNode.removeChild(this.popper), this
}
function H(e, t, o, i) {
var r = 'BODY' === e.nodeName,
p = r ? window : e;
p.addEventListener(t, o, {
passive: !0
}), r || H(n(p.parentNode), t, o, i), i.push(p)
}
function P(e, t, o, i) {
o.updateBound = i, window.addEventListener('resize', o.updateBound, {
passive: !0
});
var r = n(e);
return H(r, 'scroll', o.updateBound, o.scrollParents), o.scrollElement = r, o.eventsEnabled = !0, o
}
function A() {
this.state.eventsEnabled || (this.state = P(this.reference, this.options, this.state, this.scheduleUpdate))
}
function M(e, t) {
return window.removeEventListener('resize', t.updateBound), t.scrollParents.forEach(function(e) {
e.removeEventListener('scroll', t.updateBound)
}), t.updateBound = null, t.scrollParents = [], t.scrollElement = null, t.eventsEnabled = !1, t
}
function I() {
this.state.eventsEnabled && (window.cancelAnimationFrame(this.scheduleUpdate), this.state = M(this.reference, this.state))
}
function R(e) {
return '' !== e && !isNaN(parseFloat(e)) && isFinite(e)
}
function U(e, t) {
Object.keys(t).forEach(function(o) {
var i = ''; - 1 !== ['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(o) && R(t[o]) && (i = 'px'), e.style[o] = t[o] + i
})
}
function Y(e, t) {
Object.keys(t).forEach(function(o) {
var i = t[o];
!1 === i ? e.removeAttribute(o) : e.setAttribute(o, t[o])
})
}
function F(e, t, o) {
var i = T(e, function(e) {
var o = e.name;
return o === t
}),
n = !!i && e.some(function(e) {
return e.name === o && e.enabled && e.order < i.order
});
if (!n) {
var r = '`' + t + '`';
console.warn('`' + o + '`' + ' modifier is required by ' + r + ' modifier in order to work, be sure to include it before ' + r + '!')
}
return n
}
function j(e) {
return 'end' === e ? 'start' : 'start' === e ? 'end' : e
}
function K(e) {
var t = 1 < arguments.length && void 0 !== arguments[1] && arguments[1],
o = ae.indexOf(e),
i = ae.slice(o + 1).concat(ae.slice(0, o));
return t ? i.reverse() : i
}
function q(e, t, o, i) {
var n = e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),
r = +n[1],
p = n[2];
if (!r) return e;
if (0 === p.indexOf('%')) {
var s;
switch (p) {
case '%p':
s = o;
break;
case '%':
case '%r':
default:
s = i;
}
var d = c(s);
return d[t] / 100 * r
}
if ('vh' === p || 'vw' === p) {
var a;
return a = 'vh' === p ? _(document.documentElement.clientHeight, window.innerHeight || 0) : _(document.documentElement.clientWidth, window.innerWidth || 0), a / 100 * r
}
return r
}
function G(e, t, o, i) {
var n = [0, 0],
r = -1 !== ['right', 'left'].indexOf(i),
p = e.split(/(\+|\-)/).map(function(e) {
return e.trim()
}),
s = p.indexOf(T(p, function(e) {
return -1 !== e.search(/,|\s/)
}));
p[s] && -1 === p[s].indexOf(',') && console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');
var d = /\s*,\s*|\s+/,
a = -1 === s ? [p] : [p.slice(0, s).concat([p[s].split(d)[0]]), [p[s].split(d)[1]].concat(p.slice(s + 1))];
return a = a.map(function(e, i) {
var n = (1 === i ? !r : r) ? 'height' : 'width',
p = !1;
return e.reduce(function(e, t) {
return '' === e[e.length - 1] && -1 !== ['+', '-'].indexOf(t) ? (e[e.length - 1] = t, p = !0, e) : p ? (e[e.length - 1] += t, p = !1, e) : e.concat(t)
}, []).map(function(e) {
return q(e, n, t, o)
})
}), a.forEach(function(e, t) {
e.forEach(function(o, i) {
R(o) && (n[t] += o * ('-' === e[i - 1] ? -1 : 1))
})
}), n
}
for (var z = Math.min, V = Math.floor, _ = Math.max, X = ['native code', '[object MutationObserverConstructor]'], Q = function(e) {
return X.some(function(t) {
return -1 < (e || '').toString().indexOf(t)
})
}, J = 'undefined' != typeof window, Z = ['Edge', 'Trident', 'Firefox'], $ = 0, ee = 0; ee < Z.length; ee += 1)
if (J && 0 <= navigator.userAgent.indexOf(Z[ee])) {
$ = 1;
break
}
var i, te = J && Q(window.MutationObserver),
oe = te ? function(e) {
var t = !1,
o = 0,
i = document.createElement('span'),
n = new MutationObserver(function() {
e(), t = !1
});
return n.observe(i, {
attributes: !0
}),
function() {
t || (t = !0, i.setAttribute('x-index', o), ++o)
}
} : function(e) {
var t = !1;
return function() {
t || (t = !0, setTimeout(function() {
t = !1, e()
}, $))
}
},
ie = function() {
return void 0 == i && (i = -1 !== navigator.appVersion.indexOf('MSIE 10')), i
},
ne = function(e, t) {
if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
},
re = function() {
function e(e, t) {
for (var o, n = 0; n < t.length; n++) o = t[n], o.enumerable = o.enumerable || !1, o.configurable = !0, 'value' in o && (o.writable = !0), Object.defineProperty(e, o.key, o)
}
return function(t, o, i) {
return o && e(t.prototype, o), i && e(t, i), t
}
}(),
pe = function(e, t, o) {
return t in e ? Object.defineProperty(e, t, {
value: o,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = o, e
},
se = Object.assign || function(e) {
for (var t, o = 1; o < arguments.length; o++)
for (var i in t = arguments[o], t) Object.prototype.hasOwnProperty.call(t, i) && (e[i] = t[i]);
return e
},
de = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'],
ae = de.slice(3),
fe = {
FLIP: 'flip',
CLOCKWISE: 'clockwise',
COUNTERCLOCKWISE: 'counterclockwise'
},
le = function() {
function t(o, i) {
var n = this,
r = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : {};
ne(this, t), this.scheduleUpdate = function() {
return requestAnimationFrame(n.update)
}, this.update = oe(this.update.bind(this)), this.options = se({}, t.Defaults, r), this.state = {
isDestroyed: !1,
isCreated: !1,
scrollParents: []
}, this.reference = o.jquery ? o[0] : o, this.popper = i.jquery ? i[0] : i, this.options.modifiers = {}, Object.keys(se({}, t.Defaults.modifiers, r.modifiers)).forEach(function(e) {
n.options.modifiers[e] = se({}, t.Defaults.modifiers[e] || {}, r.modifiers ? r.modifiers[e] : {})
}), this.modifiers = Object.keys(this.options.modifiers).map(function(e) {
return se({
name: e
}, n.options.modifiers[e])
}).sort(function(e, t) {
return e.order - t.order
}), this.modifiers.forEach(function(t) {
t.enabled && e(t.onLoad) && t.onLoad(n.reference, n.popper, n.options, t, n.state)
}), this.update();
var p = this.options.eventsEnabled;
p && this.enableEventListeners(), this.state.eventsEnabled = p
}
return re(t, [{
key: 'update',
value: function() {
return k.call(this)
}
}, {
key: 'destroy',
value: function() {
return D.call(this)
}
}, {
key: 'enableEventListeners',
value: function() {
return A.call(this)
}
}, {
key: 'disableEventListeners',
value: function() {
return I.call(this)
}
}]), t
}();
return le.Utils = ('undefined' == typeof window ? global : window).PopperUtils, le.placements = de, le.Defaults = {
placement: 'bottom',
eventsEnabled: !0,
removeOnDestroy: !1,
onCreate: function() {},
onUpdate: function() {},
modifiers: {
shift: {
order: 100,
enabled: !0,
fn: function(e) {
var t = e.placement,
o = t.split('-')[0],
i = t.split('-')[1];
if (i) {
var n = e.offsets,
r = n.reference,
p = n.popper,
s = -1 !== ['bottom', 'top'].indexOf(o),
d = s ? 'left' : 'top',
a = s ? 'width' : 'height',
f = {
start: pe({}, d, r[d]),
end: pe({}, d, r[d] + r[a] - p[a])
};
e.offsets.popper = se({}, p, f[i])
}
return e
}
},
offset: {
order: 200,
enabled: !0,
fn: function(e, t) {
var o, i = t.offset,
n = e.placement,
r = e.offsets,
p = r.popper,
s = r.reference,
d = n.split('-')[0];
return o = R(+i) ? [+i, 0] : G(i, p, s, d), 'left' === d ? (p.top += o[0], p.left -= o[1]) : 'right' === d ? (p.top += o[0], p.left += o[1]) : 'top' === d ? (p.left += o[0], p.top -= o[1]) : 'bottom' === d && (p.left += o[0], p.top += o[1]), e.popper = p, e
},
offset: 0
},
preventOverflow: {
order: 300,
enabled: !0,
fn: function(e, t) {
var o = t.boundariesElement || r(e.instance.popper);
e.instance.reference === o && (o = r(o));
var i = w(e.instance.popper, e.instance.reference, t.padding, o);
t.boundaries = i;
var n = t.priority,
p = e.offsets.popper,
s = {
primary: function(e) {
var o = p[e];
return p[e] < i[e] && !t.escapeWithReference && (o = _(p[e], i[e])), pe({}, e, o)
},
secondary: function(e) {
var o = 'right' === e ? 'left' : 'top',
n = p[o];
return p[e] > i[e] && !t.escapeWithReference && (n = z(p[o], i[e] - ('right' === e ? p.width : p.height))), pe({}, o, n)
}
};
return n.forEach(function(e) {
var t = -1 === ['left', 'top'].indexOf(e) ? 'secondary' : 'primary';
p = se({}, p, s[t](e))
}), e.offsets.popper = p, e
},
priority: ['left', 'right', 'top', 'bottom'],
padding: 5,
boundariesElement: 'scrollParent'
},
keepTogether: {
order: 400,
enabled: !0,
fn: function(e) {
var t = e.offsets,
o = t.popper,
i = t.reference,
n = e.placement.split('-')[0],
r = V,
p = -1 !== ['top', 'bottom'].indexOf(n),
s = p ? 'right' : 'bottom',
d = p ? 'left' : 'top',
a = p ? 'width' : 'height';
return o[s] < r(i[d]) && (e.offsets.popper[d] = r(i[d]) - o[a]), o[d] > r(i[s]) && (e.offsets.popper[d] = r(i[s])), e
}
},
arrow: {
order: 500,
enabled: !0,
fn: function(e, t) {
if (!F(e.instance.modifiers, 'arrow', 'keepTogether')) return e;
var o = t.element;
if ('string' == typeof o) {
if (o = e.instance.popper.querySelector(o), !o) return e;
} else if (!e.instance.popper.contains(o)) return console.warn('WARNING: `arrow.element` must be child of its popper element!'), e;
var i = e.placement.split('-')[0],
n = e.offsets,
r = n.popper,
p = n.reference,
s = -1 !== ['left', 'right'].indexOf(i),
d = s ? 'height' : 'width',
a = s ? 'top' : 'left',
f = s ? 'left' : 'top',
l = s ? 'bottom' : 'right',
m = O(o)[d];
p[l] - m < r[a] && (e.offsets.popper[a] -= r[a] - (p[l] - m)), p[a] + m > r[l] && (e.offsets.popper[a] += p[a] + m - r[l]);
var h = p[a] + p[d] / 2 - m / 2,
g = h - c(e.offsets.popper)[a];
return g = _(z(r[d] - m, g), 0), e.arrowElement = o, e.offsets.arrow = {}, e.offsets.arrow[a] = Math.round(g), e.offsets.arrow[f] = '', e
},
element: '[x-arrow]'
},
flip: {
order: 600,
enabled: !0,
fn: function(e, t) {
if (W(e.instance.modifiers, 'inner')) return e;
if (e.flipped && e.placement === e.originalPlacement) return e;
var o = w(e.instance.popper, e.instance.reference, t.padding, t.boundariesElement),
i = e.placement.split('-')[0],
n = L(i),
r = e.placement.split('-')[1] || '',
p = [];
switch (t.behavior) {
case fe.FLIP:
p = [i, n];
break;
case fe.CLOCKWISE:
p = K(i);
break;
case fe.COUNTERCLOCKWISE:
p = K(i, !0);
break;
default:
p = t.behavior;
}
return p.forEach(function(s, d) {
if (i !== s || p.length === d + 1) return e;
i = e.placement.split('-')[0], n = L(i);
var a = e.offsets.popper,
f = e.offsets.reference,
l = V,
m = 'left' === i && l(a.right) > l(f.left) || 'right' === i && l(a.left) < l(f.right) || 'top' === i && l(a.bottom) > l(f.top) || 'bottom' === i && l(a.top) < l(f.bottom),
h = l(a.left) < l(o.left),
c = l(a.right) > l(o.right),
g = l(a.top) < l(o.top),
u = l(a.bottom) > l(o.bottom),
b = 'left' === i && h || 'right' === i && c || 'top' === i && g || 'bottom' === i && u,
y = -1 !== ['top', 'bottom'].indexOf(i),
w = !!t.flipVariations && (y && 'start' === r && h || y && 'end' === r && c || !y && 'start' === r && g || !y && 'end' === r && u);
(m || b || w) && (e.flipped = !0, (m || b) && (i = p[d + 1]), w && (r = j(r)), e.placement = i + (r ? '-' + r : ''), e.offsets.popper = se({}, e.offsets.popper, S(e.instance.popper, e.offsets.reference, e.placement)), e = N(e.instance.modifiers, e, 'flip'))
}), e
},
behavior: 'flip',
padding: 5,
boundariesElement: 'viewport'
},
inner: {
order: 700,
enabled: !1,
fn: function(e) {
var t = e.placement,
o = t.split('-')[0],
i = e.offsets,
n = i.popper,
r = i.reference,
p = -1 !== ['left', 'right'].indexOf(o),
s = -1 === ['top', 'left'].indexOf(o);
return n[p ? 'left' : 'top'] = r[t] - (s ? n[p ? 'width' : 'height'] : 0), e.placement = L(t), e.offsets.popper = c(n), e
}
},
hide: {
order: 800,
enabled: !0,
fn: function(e) {
if (!F(e.instance.modifiers, 'hide', 'preventOverflow')) return e;
var t = e.offsets.reference,
o = T(e.instance.modifiers, function(e) {
return 'preventOverflow' === e.name
}).boundaries;
if (t.bottom < o.top || t.left > o.right || t.top > o.bottom || t.right < o.left) {
if (!0 === e.hide) return e;
e.hide = !0, e.attributes['x-out-of-boundaries'] = ''
} else {
if (!1 === e.hide) return e;
e.hide = !1, e.attributes['x-out-of-boundaries'] = !1
}
return e
}
},
computeStyle: {
order: 850,
enabled: !0,
fn: function(e, t) {
var o = t.x,
i = t.y,
n = e.offsets.popper,
p = T(e.instance.modifiers, function(e) {
return 'applyStyle' === e.name
}).gpuAcceleration;
void 0 !== p && console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');
var s, d, a = void 0 === p ? t.gpuAcceleration : p,
f = r(e.instance.popper),
l = g(f),
m = {
position: n.position
},
h = {
left: V(n.left),
top: V(n.top),
bottom: V(n.bottom),
right: V(n.right)
},
c = 'bottom' === o ? 'top' : 'bottom',
u = 'right' === i ? 'left' : 'right',
b = B('transform');
if (d = 'bottom' == c ? -l.height + h.bottom : h.top, s = 'right' == u ? -l.width + h.right : h.left, a && b) m[b] = 'translate3d(' + s + 'px, ' + d + 'px, 0)', m[c] = 0, m[u] = 0, m.willChange = 'transform';
else {
var y = 'bottom' == c ? -1 : 1,
w = 'right' == u ? -1 : 1;
m[c] = d * y, m[u] = s * w, m.willChange = c + ', ' + u
}
var v = {
"x-placement": e.placement
};
return e.attributes = se({}, v, e.attributes), e.styles = se({}, m, e.styles), e
},
gpuAcceleration: !0,
x: 'bottom',
y: 'right'
},
applyStyle: {
order: 900,
enabled: !0,
fn: function(e) {
return U(e.instance.popper, e.styles), Y(e.instance.popper, e.attributes), e.offsets.arrow && U(e.arrowElement, e.offsets.arrow), e
},
onLoad: function(e, t, o, i, n) {
var r = x(n, t, e),
p = E(o.placement, r, t, e, o.modifiers.flip.boundariesElement, o.modifiers.flip.padding);
return t.setAttribute('x-placement', p), U(t, {
position: 'absolute'
}), o
},
gpuAcceleration: void 0
}
}
}, le
});

View File

@@ -0,0 +1,254 @@
//
// =========================================================
// * Material Kit - v2.0.5
// =========================================================
//
// * Product Page: https://www.creative-tim.com/product/material-kit
// * Copyright 2019 Creative Tim (http://www.creative-tim.com)
// Licensed under MIT (https://github.com/creativetimofficial/material-kit/blob/master/LICENSE.md)
//
//
// =========================================================
//
// * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
<!DOCTYPE html>
var big_image;
$(document).ready(function() {
BrowserDetect.init();
// Init Material scripts for buttons ripples, inputs animations etc, more info on the next link https://github.com/FezVrasta/bootstrap-material-design#materialjs
$('body').bootstrapMaterialDesign();
window_width = $(window).width();
$navbar = $('.navbar[color-on-scroll]');
scroll_distance = $navbar.attr('color-on-scroll') || 500;
$navbar_collapse = $('.navbar').find('.navbar-collapse');
// Activate the Tooltips
$('[data-toggle="tooltip"], [rel="tooltip"]').tooltip();
// Activate Popovers
$('[data-toggle="popover"]').popover();
if ($('.navbar-color-on-scroll').length != 0) {
$(window).on('scroll', materialKit.checkScrollForTransparentNavbar);
}
materialKit.checkScrollForTransparentNavbar();
if (window_width >= 768) {
big_image = $('.page-header[data-parallax="true"]');
if (big_image.length != 0) {
$(window).on('scroll', materialKit.checkScrollForParallax);
}
}
});
$(document).on('click', '.navbar-toggler', function() {
$toggle = $(this);
if (materialKit.misc.navbar_menu_visible == 1) {
$('html').removeClass('nav-open');
materialKit.misc.navbar_menu_visible = 0;
$('#bodyClick').remove();
setTimeout(function() {
$toggle.removeClass('toggled');
}, 550);
$('html').removeClass('nav-open-absolute');
} else {
setTimeout(function() {
$toggle.addClass('toggled');
}, 580);
div = '<div id="bodyClick"></div>';
$(div).appendTo("body").click(function() {
$('html').removeClass('nav-open');
if ($('nav').hasClass('navbar-absolute')) {
$('html').removeClass('nav-open-absolute');
}
materialKit.misc.navbar_menu_visible = 0;
$('#bodyClick').remove();
setTimeout(function() {
$toggle.removeClass('toggled');
}, 550);
});
if ($('nav').hasClass('navbar-absolute')) {
$('html').addClass('nav-open-absolute');
}
$('html').addClass('nav-open');
materialKit.misc.navbar_menu_visible = 1;
}
});
materialKit = {
misc: {
navbar_menu_visible: 0,
window_width: 0,
transparent: true,
fixedTop: false,
navbar_initialized: false,
isWindow: document.documentMode || /Edge/.test(navigator.userAgent)
},
initFormExtendedDatetimepickers: function() {
$('.datetimepicker').datetimepicker({
icons: {
time: "fa fa-clock-o",
date: "fa fa-calendar",
up: "fa fa-chevron-up",
down: "fa fa-chevron-down",
previous: 'fa fa-chevron-left',
next: 'fa fa-chevron-right',
today: 'fa fa-screenshot',
clear: 'fa fa-trash',
close: 'fa fa-remove'
}
});
},
initSliders: function() {
// Sliders for demo purpose
var slider = document.getElementById('sliderRegular');
noUiSlider.create(slider, {
start: 40,
connect: [true, false],
range: {
min: 0,
max: 100
}
});
var slider2 = document.getElementById('sliderDouble');
noUiSlider.create(slider2, {
start: [20, 60],
connect: true,
range: {
min: 0,
max: 100
}
});
},
checkScrollForParallax: function() {
oVal = ($(window).scrollTop() / 3);
big_image.css({
'transform': 'translate3d(0,' + oVal + 'px,0)',
'-webkit-transform': 'translate3d(0,' + oVal + 'px,0)',
'-ms-transform': 'translate3d(0,' + oVal + 'px,0)',
'-o-transform': 'translate3d(0,' + oVal + 'px,0)'
});
},
checkScrollForTransparentNavbar: debounce(function() {
if ($(document).scrollTop() > scroll_distance) {
if (materialKit.misc.transparent) {
materialKit.misc.transparent = false;
$('.navbar-color-on-scroll').removeClass('navbar-transparent');
}
} else {
if (!materialKit.misc.transparent) {
materialKit.misc.transparent = true;
$('.navbar-color-on-scroll').addClass('navbar-transparent');
}
}
}, 17)
};
// Returns a function, that, as long as it continues to be invoked, will not
// be triggered. The function will be called after it stops being called for
// N milliseconds. If `immediate` is passed, trigger the function on the
// leading edge, instead of the trailing.
function debounce(func, wait, immediate) {
var timeout;
return function() {
var context = this,
args = arguments;
clearTimeout(timeout);
timeout = setTimeout(function() {
timeout = null;
if (!immediate) func.apply(context, args);
}, wait);
if (immediate && !timeout) func.apply(context, args);
};
};
var BrowserDetect = {
init: function() {
this.browser = this.searchString(this.dataBrowser) || "Other";
this.version = this.searchVersion(navigator.userAgent) || this.searchVersion(navigator.appVersion) || "Unknown";
},
searchString: function(data) {
for (var i = 0; i < data.length; i++) {
var dataString = data[i].string;
this.versionSearchString = data[i].subString;
if (dataString.indexOf(data[i].subString) !== -1) {
return data[i].identity;
}
}
},
searchVersion: function(dataString) {
var index = dataString.indexOf(this.versionSearchString);
if (index === -1) {
return;
}
var rv = dataString.indexOf("rv:");
if (this.versionSearchString === "Trident" && rv !== -1) {
return parseFloat(dataString.substring(rv + 3));
} else {
return parseFloat(dataString.substring(index + this.versionSearchString.length + 1));
}
},
dataBrowser: [{
string: navigator.userAgent,
subString: "Chrome",
identity: "Chrome"
},
{
string: navigator.userAgent,
subString: "MSIE",
identity: "Explorer"
},
{
string: navigator.userAgent,
subString: "Trident",
identity: "Explorer"
},
{
string: navigator.userAgent,
subString: "Firefox",
identity: "Firefox"
},
{
string: navigator.userAgent,
subString: "Safari",
identity: "Safari"
},
{
string: navigator.userAgent,
subString: "Opera",
identity: "Opera"
}
]
};
var better_browser = '<div class="container"><div class="better-browser row"><div class="col-md-2"></div><div class="col-md-8"><h3>We are sorry but it looks like your Browser doesn\'t support our website Features. In order to get the full experience please download a new version of your favourite browser.</h3></div><div class="col-md-2"></div><br><div class="col-md-4"><a href="https://www.mozilla.org/ro/firefox/new/" class="btn btn-warning">Mozilla</a><br></div><div class="col-md-4"><a href="https://www.google.com/chrome/browser/desktop/index.html" class="btn ">Chrome</a><br></div><div class="col-md-4"><a href="http://windows.microsoft.com/en-us/internet-explorer/ie-11-worldwide-languages" class="btn">Internet Explorer</a><br></div><br><br><h4>Thank you!</h4></div></div>';

View File

@@ -0,0 +1 @@
{"version":3,"sources":["_site_kit_free/assets/js/kit-free.js"],"names":["big_image","debounce","func","wait","immediate","timeout","context","this","args","arguments","clearTimeout","setTimeout","apply","$","document","ready","BrowserDetect","init","bootstrapMaterialDesign","window_width","window","width","$navbar","scroll_distance","attr","$navbar_collapse","find","tooltip","popover","length","on","materialKit","checkScrollForTransparentNavbar","checkScrollForParallax","$toggle","misc","navbar_menu_visible","removeClass","remove","addClass","div","appendTo","click","hasClass","transparent","fixedTop","navbar_initialized","isWindow","documentMode","test","navigator","userAgent","initFormExtendedDatetimepickers","datetimepicker","icons","time","date","up","down","previous","next","today","clear","close","initSliders","slider","getElementById","noUiSlider","create","start","connect","range","min","max","slider2","oVal","scrollTop","css","transform","-webkit-transform","-ms-transform","-o-transform","browser","searchString","dataBrowser","version","searchVersion","appVersion","data","i","dataString","string","versionSearchString","subString","indexOf","identity","index","rv","parseFloat","substring","better_browser"],"mappings":"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"}

View File

@@ -0,0 +1,17 @@
//
// =========================================================
// * Material Kit - v2.0.5
// =========================================================
//
// * Product Page: https://www.creative-tim.com/product/material-kit
// * Copyright 2019 Creative Tim (http://www.creative-tim.com)
// Licensed under MIT (https://github.com/creativetimofficial/material-kit/blob/master/LICENSE.md)
//
//
// =========================================================
//
// * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
var big_image;function debounce(a,t,n){var i;return function(){var e=this,r=arguments;clearTimeout(i),i=setTimeout(function(){i=null,n||a.apply(e,r)},t),n&&!i&&a.apply(e,r)}}$(document).ready(function(){BrowserDetect.init(),$("body").bootstrapMaterialDesign(),window_width=$(window).width(),$navbar=$(".navbar[color-on-scroll]"),scroll_distance=$navbar.attr("color-on-scroll")||500,$navbar_collapse=$(".navbar").find(".navbar-collapse"),$('[data-toggle="tooltip"], [rel="tooltip"]').tooltip(),$('[data-toggle="popover"]').popover(),0!=$(".navbar-color-on-scroll").length&&$(window).on("scroll",materialKit.checkScrollForTransparentNavbar),materialKit.checkScrollForTransparentNavbar(),768<=window_width&&0!=(big_image=$('.page-header[data-parallax="true"]')).length&&$(window).on("scroll",materialKit.checkScrollForParallax)}),$(document).on("click",".navbar-toggler",function(){$toggle=$(this),1==materialKit.misc.navbar_menu_visible?($("html").removeClass("nav-open"),materialKit.misc.navbar_menu_visible=0,$("#bodyClick").remove(),setTimeout(function(){$toggle.removeClass("toggled")},550),$("html").removeClass("nav-open-absolute")):(setTimeout(function(){$toggle.addClass("toggled")},580),div='<div id="bodyClick"></div>',$(div).appendTo("body").click(function(){$("html").removeClass("nav-open"),$("nav").hasClass("navbar-absolute")&&$("html").removeClass("nav-open-absolute"),materialKit.misc.navbar_menu_visible=0,$("#bodyClick").remove(),setTimeout(function(){$toggle.removeClass("toggled")},550)}),$("nav").hasClass("navbar-absolute")&&$("html").addClass("nav-open-absolute"),$("html").addClass("nav-open"),materialKit.misc.navbar_menu_visible=1)}),materialKit={misc:{navbar_menu_visible:0,window_width:0,transparent:!0,fixedTop:!1,navbar_initialized:!1,isWindow:document.documentMode||/Edge/.test(navigator.userAgent)},initFormExtendedDatetimepickers:function(){$(".datetimepicker").datetimepicker({icons:{time:"fa fa-clock-o",date:"fa fa-calendar",up:"fa fa-chevron-up",down:"fa fa-chevron-down",previous:"fa fa-chevron-left",next:"fa fa-chevron-right",today:"fa fa-screenshot",clear:"fa fa-trash",close:"fa fa-remove"}})},initSliders:function(){var e=document.getElementById("sliderRegular");noUiSlider.create(e,{start:40,connect:[!0,!1],range:{min:0,max:100}});var r=document.getElementById("sliderDouble");noUiSlider.create(r,{start:[20,60],connect:!0,range:{min:0,max:100}})},checkScrollForParallax:function(){oVal=$(window).scrollTop()/3,big_image.css({transform:"translate3d(0,"+oVal+"px,0)","-webkit-transform":"translate3d(0,"+oVal+"px,0)","-ms-transform":"translate3d(0,"+oVal+"px,0)","-o-transform":"translate3d(0,"+oVal+"px,0)"})},checkScrollForTransparentNavbar:debounce(function(){$(document).scrollTop()>scroll_distance?materialKit.misc.transparent&&(materialKit.misc.transparent=!1,$(".navbar-color-on-scroll").removeClass("navbar-transparent")):materialKit.misc.transparent||(materialKit.misc.transparent=!0,$(".navbar-color-on-scroll").addClass("navbar-transparent"))},17)};var BrowserDetect={init:function(){this.browser=this.searchString(this.dataBrowser)||"Other",this.version=this.searchVersion(navigator.userAgent)||this.searchVersion(navigator.appVersion)||"Unknown"},searchString:function(e){for(var r=0;r<e.length;r++){var a=e[r].string;if(this.versionSearchString=e[r].subString,-1!==a.indexOf(e[r].subString))return e[r].identity}},searchVersion:function(e){var r=e.indexOf(this.versionSearchString);if(-1!==r){var a=e.indexOf("rv:");return"Trident"===this.versionSearchString&&-1!==a?parseFloat(e.substring(a+3)):parseFloat(e.substring(r+this.versionSearchString.length+1))}},dataBrowser:[{string:navigator.userAgent,subString:"Chrome",identity:"Chrome"},{string:navigator.userAgent,subString:"MSIE",identity:"Explorer"},{string:navigator.userAgent,subString:"Trident",identity:"Explorer"},{string:navigator.userAgent,subString:"Firefox",identity:"Firefox"},{string:navigator.userAgent,subString:"Safari",identity:"Safari"},{string:navigator.userAgent,subString:"Opera",identity:"Opera"}]},better_browser='<div class="container"><div class="better-browser row"><div class="col-md-2"></div><div class="col-md-8"><h3>We are sorry but it looks like your Browser doesn\'t support our website Features. In order to get the full experience please download a new version of your favourite browser.</h3></div><div class="col-md-2"></div><br><div class="col-md-4"><a href="https://www.mozilla.org/ro/firefox/new/" class="btn btn-warning">Mozilla</a><br></div><div class="col-md-4"><a href="https://www.google.com/chrome/browser/desktop/index.html" class="btn ">Chrome</a><br></div><div class="col-md-4"><a href="http://windows.microsoft.com/en-us/internet-explorer/ie-11-worldwide-languages" class="btn">Internet Explorer</a><br></div><br><br><h4>Thank you!</h4></div></div>';
//# sourceMappingURL=_site_kit_free/assets/js/kit-free.js.map

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,619 @@
/*!
* Sharrre.com - Make your sharing widget!
* Version: beta 1.3.5
* Author: Julien Hany
* License: MIT http://en.wikipedia.org/wiki/MIT_License or GPLv2 http://en.wikipedia.org/wiki/GNU_General_Public_License
*/
;
(function($, window, document, undefined) {
/* Defaults
================================================== */
var pluginName = 'sharrre',
defaults = {
className: 'sharrre',
share: {
googlePlus: false,
facebook: false,
twitter: false,
digg: false,
delicious: false,
stumbleupon: false,
linkedin: false,
pinterest: false
},
shareTotal: 0,
template: '',
title: '',
url: document.location.href,
text: document.title,
urlCurl: 'sharrre.php', //PHP script for google plus...
count: {}, //counter by social network
total: 0, //total of sharing
shorterTotal: true, //show total by k or M when number is to big
enableHover: true, //disable if you want to personalize hover event with callback
enableCounter: true, //disable if you just want use buttons
enableTracking: false, //tracking with google analitycs
hover: function() {}, //personalize hover event with this callback function
hide: function() {}, //personalize hide event with this callback function
click: function() {}, //personalize click event with this callback function
render: function() {}, //personalize render event with this callback function
buttons: { //settings for buttons
googlePlus: { //http://www.google.com/webmasters/+1/button/
url: '', //if you need to personnalize button url
urlCount: false, //if you want to use personnalize button url on global counter
size: 'medium',
lang: 'en-US',
annotation: ''
},
facebook: { //http://developers.facebook.com/docs/reference/plugins/like/
url: '', //if you need to personalize url button
urlCount: false, //if you want to use personnalize button url on global counter
action: 'like',
layout: 'button_count',
width: '',
send: 'false',
faces: 'false',
colorscheme: '',
font: '',
lang: 'en_US'
},
twitter: { //http://twitter.com/about/resources/tweetbutton
url: '', //if you need to personalize url button
urlCount: false, //if you want to use personnalize button url on global counter
count: 'horizontal',
hashtags: '',
via: '',
related: '',
lang: 'en'
},
digg: { //http://about.digg.com/downloads/button/smart
url: '', //if you need to personalize url button
urlCount: false, //if you want to use personnalize button url on global counter
type: 'DiggCompact'
},
delicious: {
url: '', //if you need to personalize url button
urlCount: false, //if you want to use personnalize button url on global counter
size: 'medium' //medium or tall
},
stumbleupon: { //http://www.stumbleupon.com/badges/
url: '', //if you need to personalize url button
urlCount: false, //if you want to use personnalize button url on global counter
layout: '1'
},
linkedin: { //http://developer.linkedin.com/plugins/share-button
url: '', //if you need to personalize url button
urlCount: false, //if you want to use personnalize button url on global counter
counter: ''
},
pinterest: { //http://pinterest.com/about/goodies/
url: '', //if you need to personalize url button
media: '',
description: '',
layout: 'horizontal'
}
}
},
/* Json URL to get count number
================================================== */
urlJson = {
googlePlus: "",
//new FQL method by Sire
facebook: "https://graph.facebook.com/fql?q=SELECT%20url,%20normalized_url,%20share_count,%20like_count,%20comment_count,%20total_count,commentsbox_count,%20comments_fbid,%20click_count%20FROM%20link_stat%20WHERE%20url=%27{url}%27&callback=?",
//old method facebook: "http://graph.facebook.com/?id={url}&callback=?",
//facebook : "http://api.ak.facebook.com/restserver.php?v=1.0&method=links.getStats&urls={url}&format=json"
twitter: "http://cdn.api.twitter.com/1/urls/count.json?url={url}&callback=?",
digg: "http://services.digg.com/2.0/story.getInfo?links={url}&type=javascript&callback=?",
delicious: 'http://feeds.delicious.com/v2/json/urlinfo/data?url={url}&callback=?',
//stumbleupon: "http://www.stumbleupon.com/services/1.01/badge.getinfo?url={url}&format=jsonp&callback=?",
stumbleupon: "",
linkedin: "http://www.linkedin.com/countserv/count/share?format=jsonp&url={url}&callback=?",
pinterest: "http://api.pinterest.com/v1/urls/count.json?url={url}&callback=?"
},
/* Load share buttons asynchronously
================================================== */
loadButton = {
googlePlus: function(self) {
var sett = self.options.buttons.googlePlus;
//$(self.element).find('.buttons').append('<div class="button googleplus"><g:plusone size="'+self.options.buttons.googlePlus.size+'" href="'+self.options.url+'"></g:plusone></div>');
$(self.element).find('.buttons').append('<div class="button googleplus"><div class="g-plusone" data-size="' + sett.size + '" data-href="' + (sett.url !== '' ? sett.url : self.options.url) + '" data-annotation="' + sett.annotation + '"></div></div>');
window.___gcfg = {
lang: self.options.buttons.googlePlus.lang
};
var loading = 0;
if (typeof gapi === 'undefined' && loading == 0) {
loading = 1;
(function() {
var po = document.createElement('script');
po.type = 'text/javascript';
po.async = true;
po.src = '//apis.google.com/js/plusone.js';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(po, s);
})();
} else {
gapi.plusone.go();
}
},
facebook: function(self) {
var sett = self.options.buttons.facebook;
$(self.element).find('.buttons').append('<div class="button facebook"><div id="fb-root"></div><div class="fb-like" data-href="' + (sett.url !== '' ? sett.url : self.options.url) + '" data-send="' + sett.send + '" data-layout="' + sett.layout + '" data-width="' + sett.width + '" data-show-faces="' + sett.faces + '" data-action="' + sett.action + '" data-colorscheme="' + sett.colorscheme + '" data-font="' + sett.font + '" data-via="' + sett.via + '"></div></div>');
var loading = 0;
if (typeof FB === 'undefined' && loading == 0) {
loading = 1;
(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {
return;
}
js = d.createElement(s);
js.id = id;
js.src = '//connect.facebook.net/' + sett.lang + '/all.js#xfbml=1';
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
} else {
FB.XFBML.parse();
}
},
twitter: function(self) {
var sett = self.options.buttons.twitter;
$(self.element).find('.buttons').append('<div class="button twitter"><a href="https://twitter.com/share" class="twitter-share-button" data-url="' + (sett.url !== '' ? sett.url : self.options.url) + '" data-count="' + sett.count + '" data-text="' + self.options.text + '" data-via="' + sett.via + '" data-hashtags="' + sett.hashtags + '" data-related="' + sett.related + '" data-lang="' + sett.lang + '">Tweet</a></div>');
var loading = 0;
if (typeof twttr === 'undefined' && loading == 0) {
loading = 1;
(function() {
var twitterScriptTag = document.createElement('script');
twitterScriptTag.type = 'text/javascript';
twitterScriptTag.async = true;
twitterScriptTag.src = '//platform.twitter.com/widgets.js';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(twitterScriptTag, s);
})();
} else {
$.ajax({
url: '//platform.twitter.com/widgets.js',
dataType: 'script',
cache: true
}); //http://stackoverflow.com/q/6536108
}
},
digg: function(self) {
var sett = self.options.buttons.digg;
$(self.element).find('.buttons').append('<div class="button digg"><a class="DiggThisButton ' + sett.type + '" rel="nofollow external" href="http://digg.com/submit?url=' + encodeURIComponent((sett.url !== '' ? sett.url : self.options.url)) + '"></a></div>');
var loading = 0;
if (typeof __DBW === 'undefined' && loading == 0) {
loading = 1;
(function() {
var s = document.createElement('SCRIPT'),
s1 = document.getElementsByTagName('SCRIPT')[0];
s.type = 'text/javascript';
s.async = true;
s.src = '//widgets.digg.com/buttons.js';
s1.parentNode.insertBefore(s, s1);
})();
}
},
delicious: function(self) {
if (self.options.buttons.delicious.size == 'tall') { //tall
var css = 'width:50px;',
cssCount = 'height:35px;width:50px;font-size:15px;line-height:35px;',
cssShare = 'height:18px;line-height:18px;margin-top:3px;';
} else { //medium
var css = 'width:93px;',
cssCount = 'float:right;padding:0 3px;height:20px;width:26px;line-height:20px;',
cssShare = 'float:left;height:20px;line-height:20px;';
}
var count = self.shorterTotal(self.options.count.delicious);
if (typeof count === "undefined") {
count = 0;
}
$(self.element).find('.buttons').append(
'<div class="button delicious"><div style="' + css + 'font:12px Arial,Helvetica,sans-serif;cursor:pointer;color:#666666;display:inline-block;float:none;height:20px;line-height:normal;margin:0;padding:0;text-indent:0;vertical-align:baseline;">' +
'<div style="' + cssCount + 'background-color:#fff;margin-bottom:5px;overflow:hidden;text-align:center;border:1px solid #ccc;border-radius:3px;">' + count + '</div>' +
'<div style="' + cssShare + 'display:block;padding:0;text-align:center;text-decoration:none;width:50px;background-color:#7EACEE;border:1px solid #40679C;border-radius:3px;color:#fff;">' +
'<img src="http://www.delicious.com/static/img/delicious.small.gif" height="10" width="10" alt="Delicious" /> Add</div></div></div>');
$(self.element).find('.delicious').on('click', function() {
self.openPopup('delicious');
});
},
stumbleupon: function(self) {
var sett = self.options.buttons.stumbleupon;
$(self.element).find('.buttons').append('<div class="button stumbleupon"><su:badge layout="' + sett.layout + '" location="' + (sett.url !== '' ? sett.url : self.options.url) + '"></su:badge></div>');
var loading = 0;
if (typeof STMBLPN === 'undefined' && loading == 0) {
loading = 1;
(function() {
var li = document.createElement('script');
li.type = 'text/javascript';
li.async = true;
li.src = '//platform.stumbleupon.com/1/widgets.js';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(li, s);
})();
s = window.setTimeout(function() {
if (typeof STMBLPN !== 'undefined') {
STMBLPN.processWidgets();
clearInterval(s);
}
}, 500);
} else {
STMBLPN.processWidgets();
}
},
linkedin: function(self) {
var sett = self.options.buttons.linkedin;
$(self.element).find('.buttons').append('<div class="button linkedin"><script type="in/share" data-url="' + (sett.url !== '' ? sett.url : self.options.url) + '" data-counter="' + sett.counter + '"></script></div>');
var loading = 0;
if (typeof window.IN === 'undefined' && loading == 0) {
loading = 1;
(function() {
var li = document.createElement('script');
li.type = 'text/javascript';
li.async = true;
li.src = '//platform.linkedin.com/in.js';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(li, s);
})();
} else {
window.IN.init();
}
},
pinterest: function(self) {
var sett = self.options.buttons.pinterest;
$(self.element).find('.buttons').append('<div class="button pinterest"><a href="http://pinterest.com/pin/create/button/?url=' + (sett.url !== '' ? sett.url : self.options.url) + '&media=' + sett.media + '&description=' + sett.description + '" class="pin-it-button" count-layout="' + sett.layout + '">Pin It</a></div>');
(function() {
var li = document.createElement('script');
li.type = 'text/javascript';
li.async = true;
li.src = '//assets.pinterest.com/js/pinit.js';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(li, s);
})();
}
},
/* Tracking for Google Analytics
================================================== */
tracking = {
googlePlus: function() {},
facebook: function() {
//console.log('facebook');
fb = window.setInterval(function() {
if (typeof FB !== 'undefined') {
FB.Event.subscribe('edge.create', function(targetUrl) {
_gaq.push(['_trackSocial', 'facebook', 'like', targetUrl]);
});
FB.Event.subscribe('edge.remove', function(targetUrl) {
_gaq.push(['_trackSocial', 'facebook', 'unlike', targetUrl]);
});
FB.Event.subscribe('message.send', function(targetUrl) {
_gaq.push(['_trackSocial', 'facebook', 'send', targetUrl]);
});
//console.log('ok');
clearInterval(fb);
}
}, 1000);
},
twitter: function() {
//console.log('twitter');
tw = window.setInterval(function() {
if (typeof twttr !== 'undefined') {
twttr.events.bind('tweet', function(event) {
if (event) {
_gaq.push(['_trackSocial', 'twitter', 'tweet']);
}
});
//console.log('ok');
clearInterval(tw);
}
}, 1000);
},
digg: function() {
//if somenone find a solution, mail me !
/*$(this.element).find('.digg').on('click', function(){
_gaq.push(['_trackSocial', 'digg', 'add']);
});*/
},
delicious: function() {},
stumbleupon: function() {},
linkedin: function() {
function LinkedInShare() {
_gaq.push(['_trackSocial', 'linkedin', 'share']);
}
},
pinterest: function() {
//if somenone find a solution, mail me !
}
},
/* Popup for each social network
================================================== */
popup = {
googlePlus: function(opt) {
window.open("https://plus.google.com/share?hl=" + opt.buttons.googlePlus.lang + "&url=" + encodeURIComponent((opt.buttons.googlePlus.url !== '' ? opt.buttons.googlePlus.url : opt.url)), "", "toolbar=0, status=0, width=900, height=500");
},
facebook: function(opt) {
window.open("http://www.facebook.com/sharer/sharer.php?u=" + encodeURIComponent((opt.buttons.facebook.url !== '' ? opt.buttons.facebook.url : opt.url)) + "&t=" + opt.text + "", "", "toolbar=0, status=0, width=900, height=500");
},
twitter: function(opt) {
window.open("https://twitter.com/intent/tweet?text=" + encodeURIComponent(opt.text) + "&url=" + encodeURIComponent((opt.buttons.twitter.url !== '' ? opt.buttons.twitter.url : opt.url)) + (opt.buttons.twitter.via !== '' ? '&via=' + opt.buttons.twitter.via : ''), "", "toolbar=0, status=0, width=650, height=360");
},
digg: function(opt) {
window.open("http://digg.com/tools/diggthis/submit?url=" + encodeURIComponent((opt.buttons.digg.url !== '' ? opt.buttons.digg.url : opt.url)) + "&title=" + opt.text + "&related=true&style=true", "", "toolbar=0, status=0, width=650, height=360");
},
delicious: function(opt) {
window.open('http://www.delicious.com/save?v=5&noui&jump=close&url=' + encodeURIComponent((opt.buttons.delicious.url !== '' ? opt.buttons.delicious.url : opt.url)) + '&title=' + opt.text, 'delicious', 'toolbar=no,width=550,height=550');
},
stumbleupon: function(opt) {
window.open('http://www.stumbleupon.com/badge/?url=' + encodeURIComponent((opt.buttons.stumbleupon.url !== '' ? opt.buttons.stumbleupon.url : opt.url)), 'stumbleupon', 'toolbar=no,width=550,height=550');
},
linkedin: function(opt) {
window.open('https://www.linkedin.com/cws/share?url=' + encodeURIComponent((opt.buttons.linkedin.url !== '' ? opt.buttons.linkedin.url : opt.url)) + '&token=&isFramed=true', 'linkedin', 'toolbar=no,width=550,height=550');
},
pinterest: function(opt) {
window.open('http://pinterest.com/pin/create/button/?url=' + encodeURIComponent((opt.buttons.pinterest.url !== '' ? opt.buttons.pinterest.url : opt.url)) + '&media=' + encodeURIComponent(opt.buttons.pinterest.media) + '&description=' + opt.buttons.pinterest.description, 'pinterest', 'toolbar=no,width=700,height=300');
}
};
/* Plugin constructor
================================================== */
function Plugin(element, options) {
this.element = element;
this.options = $.extend(true, {}, defaults, options);
this.options.share = options.share; //simple solution to allow order of buttons
this._defaults = defaults;
this._name = pluginName;
this.init();
};
/* Initialization method
================================================== */
Plugin.prototype.init = function() {
var self = this;
if (this.options.urlCurl !== '') {
urlJson.googlePlus = this.options.urlCurl + '?url={url}&type=googlePlus'; // PHP script for GooglePlus...
urlJson.stumbleupon = this.options.urlCurl + '?url={url}&type=stumbleupon'; // PHP script for Stumbleupon...
}
$(this.element).addClass(this.options.className); //add class
//HTML5 Custom data
if (typeof $(this.element).data('title') !== 'undefined') {
this.options.title = $(this.element).attr('data-title');
}
if (typeof $(this.element).data('url') !== 'undefined') {
this.options.url = $(this.element).data('url');
}
if (typeof $(this.element).data('text') !== 'undefined') {
this.options.text = $(this.element).data('text');
}
//how many social website have been selected
$.each(this.options.share, function(name, val) {
if (val === true) {
self.options.shareTotal++;
}
});
if (self.options.enableCounter === true) { //if for some reason you don't need counter
//get count of social share that have been selected
$.each(this.options.share, function(name, val) {
if (val === true) {
//self.getSocialJson(name);
try {
self.getSocialJson(name);
} catch (e) {}
}
});
} else if (self.options.template !== '') { //for personalized button (with template)
this.options.render(this, this.options);
} else { // if you want to use official button like example 3 or 5
this.loadButtons();
}
//add hover event
$(this.element).hover(function() {
//load social button if enable and 1 time
if ($(this).find('.buttons').length === 0 && self.options.enableHover === true) {
self.loadButtons();
}
self.options.hover(self, self.options);
}, function() {
self.options.hide(self, self.options);
});
//click event
$(this.element).click(function() {
self.options.click(self, self.options);
return false;
});
};
/* loadButtons methode
================================================== */
Plugin.prototype.loadButtons = function() {
var self = this;
$(this.element).append('<div class="buttons"></div>');
$.each(self.options.share, function(name, val) {
if (val == true) {
loadButton[name](self);
if (self.options.enableTracking === true) { //add tracking
tracking[name]();
}
}
});
};
/* getSocialJson methode
================================================== */
Plugin.prototype.getSocialJson = function(name) {
var self = this,
count = 0,
url = urlJson[name].replace('{url}', encodeURIComponent(this.options.url));
if (this.options.buttons[name].urlCount === true && this.options.buttons[name].url !== '') {
url = urlJson[name].replace('{url}', this.options.buttons[name].url);
}
//console.log('name : ' + name + ' - url : '+url); //debug
if (url != '' && self.options.urlCurl !== '') { //urlCurl = '' if you don't want to used PHP script but used social button
$.getJSON(url, function(json) {
if (typeof json.count !== "undefined") { //GooglePlus, Stumbleupon, Twitter, Pinterest and Digg
var temp = json.count + '';
temp = temp.replace('\u00c2\u00a0', ''); //remove google plus special chars
count += parseInt(temp, 10);
}
//get the FB total count (shares, likes and more)
else if (json.data && json.data.length > 0 && typeof json.data[0].total_count !== "undefined") { //Facebook total count
count += parseInt(json.data[0].total_count, 10);
} else if (typeof json[0] !== "undefined") { //Delicious
count += parseInt(json[0].total_posts, 10);
} else if (typeof json[0] !== "undefined") { //Stumbleupon
}
self.options.count[name] = count;
self.options.total += count;
self.renderer();
self.rendererPerso();
//console.log(json); //debug
})
.error(function() {
self.options.count[name] = 0;
self.rendererPerso();
});
} else {
self.renderer();
self.options.count[name] = 0;
self.rendererPerso();
}
};
/* launch render methode
================================================== */
Plugin.prototype.rendererPerso = function() {
//check if this is the last social website to launch render
var shareCount = 0;
for (e in this.options.count) {
shareCount++;
}
if (shareCount === this.options.shareTotal) {
this.options.render(this, this.options);
}
};
/* render methode
================================================== */
Plugin.prototype.renderer = function() {
var total = this.options.total,
template = this.options.template;
if (this.options.shorterTotal === true) { //format number like 1.2k or 5M
total = this.shorterTotal(total);
}
if (template !== '') { //if there is a template
template = template.replace('{total}', total);
$(this.element).html(template);
} else { //template by defaults
$(this.element).html(
'<div class="box"><a class="count" href="#">' + total + '</a>' +
(this.options.title !== '' ? '<a class="share" href="#">' + this.options.title + '</a>' : '') +
'</div>'
);
}
};
/* format total numbers like 1.2k or 5M
================================================== */
Plugin.prototype.shorterTotal = function(num) {
if (num >= 1e6) {
num = (num / 1e6).toFixed(2) + "M"
} else if (num >= 1e3) {
num = (num / 1e3).toFixed(1) + "k"
}
return num;
};
/* Methode for open popup
================================================== */
Plugin.prototype.openPopup = function(site) {
popup[site](this.options); //open
if (this.options.enableTracking === true) { //tracking!
var tracking = {
googlePlus: {
site: 'Google',
action: '+1'
},
facebook: {
site: 'facebook',
action: 'like'
},
twitter: {
site: 'twitter',
action: 'tweet'
},
digg: {
site: 'digg',
action: 'add'
},
delicious: {
site: 'delicious',
action: 'add'
},
stumbleupon: {
site: 'stumbleupon',
action: 'add'
},
linkedin: {
site: 'linkedin',
action: 'share'
},
pinterest: {
site: 'pinterest',
action: 'pin'
}
};
_gaq.push(['_trackSocial', tracking[site].site, tracking[site].action]);
}
};
/* Methode for add +1 to a counter
================================================== */
Plugin.prototype.simulateClick = function() {
var html = $(this.element).html();
$(this.element).html(html.replace(this.options.total, this.options.total + 1));
};
/* Methode for add +1 to a counter
================================================== */
Plugin.prototype.update = function(url, text) {
if (url !== '') {
this.options.url = url;
}
if (text !== '') {
this.options.text = text;
}
};
/* A really lightweight plugin wrapper around the constructor, preventing against multiple instantiations
================================================== */
$.fn[pluginName] = function(options) {
var args = arguments;
if (options === undefined || typeof options === 'object') {
return this.each(function() {
if (!$.data(this, 'plugin_' + pluginName)) {
$.data(this, 'plugin_' + pluginName, new Plugin(this, options));
}
});
} else if (typeof options === 'string' && options[0] !== '_' && options !== 'init') {
return this.each(function() {
var instance = $.data(this, 'plugin_' + pluginName);
if (instance instanceof Plugin && typeof instance[options] === 'function') {
instance[options].apply(instance, Array.prototype.slice.call(args, 1));
}
});
}
};
})(jQuery, window, document);

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long