Uploaded the files.
This commit is contained in:
commit
37661b3ee7
374 changed files with 90632 additions and 0 deletions
1
admin/assets/js/core/bootstrap-material-design.min.js
vendored
Normal file
1
admin/assets/js/core/bootstrap-material-design.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
2
admin/assets/js/core/jquery.min.js
vendored
Normal file
2
admin/assets/js/core/jquery.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
834
admin/assets/js/core/popper.min.js
vendored
Normal file
834
admin/assets/js/core/popper.min.js
vendored
Normal 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
|
||||
});
|
0
admin/assets/js/main.js
Normal file
0
admin/assets/js/main.js
Normal file
422
admin/assets/js/material-dashboard.js
Normal file
422
admin/assets/js/material-dashboard.js
Normal file
|
@ -0,0 +1,422 @@
|
|||
/*!
|
||||
|
||||
=========================================================
|
||||
* Material Dashboard Dark Edition - v2.1.0
|
||||
=========================================================
|
||||
|
||||
* Product Page: https://www.creative-tim.com/product/material-dashboard-dark
|
||||
* Copyright 2018 Creative Tim (http://www.creative-tim.com)
|
||||
|
||||
* Coded by www.creative-tim.com
|
||||
|
||||
=========================================================
|
||||
|
||||
* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
*/
|
||||
|
||||
(function() {
|
||||
isWindows = navigator.platform.indexOf('Win') > -1 ? true : false;
|
||||
|
||||
if (isWindows) {
|
||||
// if we are on windows OS we activate the perfectScrollbar function
|
||||
$('.sidebar .sidebar-wrapper, .main-panel').perfectScrollbar();
|
||||
|
||||
$('html').addClass('perfect-scrollbar-on');
|
||||
} else {
|
||||
$('html').addClass('perfect-scrollbar-off');
|
||||
}
|
||||
})();
|
||||
|
||||
|
||||
var breakCards = true;
|
||||
|
||||
var searchVisible = 0;
|
||||
var transparent = true;
|
||||
|
||||
var transparentDemo = true;
|
||||
var fixedTop = false;
|
||||
|
||||
var mobile_menu_visible = 0,
|
||||
mobile_menu_initialized = false,
|
||||
toggle_initialized = false,
|
||||
bootstrap_nav_initialized = false;
|
||||
|
||||
var seq = 0,
|
||||
delays = 80,
|
||||
durations = 500;
|
||||
var seq2 = 0,
|
||||
delays2 = 80,
|
||||
durations2 = 500;
|
||||
|
||||
$(document).ready(function() {
|
||||
|
||||
$('body').bootstrapMaterialDesign();
|
||||
|
||||
$sidebar = $('.sidebar');
|
||||
|
||||
md.initSidebarsCheck();
|
||||
|
||||
window_width = $(window).width();
|
||||
|
||||
// check if there is an image set for the sidebar's background
|
||||
md.checkSidebarImage();
|
||||
|
||||
// Activate bootstrap-select
|
||||
if ($(".selectpicker").length != 0) {
|
||||
$(".selectpicker").selectpicker();
|
||||
}
|
||||
|
||||
// Activate the tooltips
|
||||
$('[rel="tooltip"]').tooltip();
|
||||
|
||||
$('.form-control').on("focus", function() {
|
||||
$(this).parent('.input-group').addClass("input-group-focus");
|
||||
}).on("blur", function() {
|
||||
$(this).parent(".input-group").removeClass("input-group-focus");
|
||||
});
|
||||
|
||||
// remove class has-error for checkbox validation
|
||||
$('input[type="checkbox"][required="true"], input[type="radio"][required="true"]').on('click', function() {
|
||||
if ($(this).hasClass('error')) {
|
||||
$(this).closest('div').removeClass('has-error');
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
$(document).on('click', '.navbar-toggler', function() {
|
||||
$toggle = $(this);
|
||||
|
||||
if (mobile_menu_visible == 1) {
|
||||
$('html').removeClass('nav-open');
|
||||
|
||||
$('.close-layer').remove();
|
||||
setTimeout(function() {
|
||||
$toggle.removeClass('toggled');
|
||||
}, 400);
|
||||
|
||||
mobile_menu_visible = 0;
|
||||
} else {
|
||||
setTimeout(function() {
|
||||
$toggle.addClass('toggled');
|
||||
}, 430);
|
||||
|
||||
var $layer = $('<div class="close-layer"></div>');
|
||||
|
||||
if ($('body').find('.main-panel').length != 0) {
|
||||
$layer.appendTo(".main-panel");
|
||||
|
||||
} else if (($('body').hasClass('off-canvas-sidebar'))) {
|
||||
$layer.appendTo(".wrapper-full-page");
|
||||
}
|
||||
|
||||
setTimeout(function() {
|
||||
$layer.addClass('visible');
|
||||
}, 100);
|
||||
|
||||
$layer.click(function() {
|
||||
$('html').removeClass('nav-open');
|
||||
mobile_menu_visible = 0;
|
||||
|
||||
$layer.removeClass('visible');
|
||||
|
||||
setTimeout(function() {
|
||||
$layer.remove();
|
||||
$toggle.removeClass('toggled');
|
||||
|
||||
}, 400);
|
||||
});
|
||||
|
||||
$('html').addClass('nav-open');
|
||||
mobile_menu_visible = 1;
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
// activate collapse right menu when the windows is resized
|
||||
$(window).resize(function() {
|
||||
md.initSidebarsCheck();
|
||||
|
||||
// reset the seq for charts drawing animations
|
||||
seq = seq2 = 0;
|
||||
|
||||
setTimeout(function() {
|
||||
md.initDashboardPageCharts();
|
||||
}, 500);
|
||||
});
|
||||
|
||||
|
||||
|
||||
md = {
|
||||
misc: {
|
||||
navbar_menu_visible: 0,
|
||||
active_collapse: true,
|
||||
disabled_collapse_init: 0
|
||||
},
|
||||
|
||||
checkSidebarImage: function() {
|
||||
$sidebar = $('.sidebar');
|
||||
image_src = $sidebar.data('image');
|
||||
|
||||
if (image_src !== undefined) {
|
||||
sidebar_container = '<div class="sidebar-background" style="background-image: url(' + image_src + ') "/>';
|
||||
$sidebar.append(sidebar_container);
|
||||
}
|
||||
},
|
||||
|
||||
initSidebarsCheck: function() {
|
||||
if ($(window).width() <= 991) {
|
||||
if ($sidebar.length != 0) {
|
||||
md.initRightMenu();
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
initDashboardPageCharts: function() {
|
||||
|
||||
if ($('#dailySalesChart').length != 0 || $('#completedTasksChart').length != 0 || $('#websiteViewsChart').length != 0) {
|
||||
/* ----------========== Daily Sales Chart initialization ==========---------- */
|
||||
|
||||
dataDailySalesChart = {
|
||||
labels: ['M', 'T', 'W', 'T', 'F', 'S', 'S'],
|
||||
series: [
|
||||
[12, 17, 7, 17, 23, 18, 38]
|
||||
]
|
||||
};
|
||||
|
||||
optionsDailySalesChart = {
|
||||
lineSmooth: Chartist.Interpolation.cardinal({
|
||||
tension: 0
|
||||
}),
|
||||
low: 0,
|
||||
high: 50, // creative tim: we recommend you to set the high sa the biggest value + something for a better look
|
||||
chartPadding: {
|
||||
top: 0,
|
||||
right: 0,
|
||||
bottom: 0,
|
||||
left: 0
|
||||
},
|
||||
}
|
||||
|
||||
var dailySalesChart = new Chartist.Line('#dailySalesChart', dataDailySalesChart, optionsDailySalesChart);
|
||||
|
||||
md.startAnimationForLineChart(dailySalesChart);
|
||||
|
||||
|
||||
/* ----------========== Completed Tasks Chart initialization ==========---------- */
|
||||
|
||||
dataCompletedTasksChart = {
|
||||
labels: ['12p', '3p', '6p', '9p', '12p', '3a', '6a', '9a'],
|
||||
series: [
|
||||
[230, 750, 450, 300, 280, 240, 200, 190]
|
||||
]
|
||||
};
|
||||
|
||||
optionsCompletedTasksChart = {
|
||||
lineSmooth: Chartist.Interpolation.cardinal({
|
||||
tension: 0
|
||||
}),
|
||||
low: 0,
|
||||
high: 1000, // creative tim: we recommend you to set the high sa the biggest value + something for a better look
|
||||
chartPadding: {
|
||||
top: 0,
|
||||
right: 0,
|
||||
bottom: 0,
|
||||
left: 0
|
||||
}
|
||||
}
|
||||
|
||||
var completedTasksChart = new Chartist.Line('#completedTasksChart', dataCompletedTasksChart, optionsCompletedTasksChart);
|
||||
|
||||
// start animation for the Completed Tasks Chart - Line Chart
|
||||
md.startAnimationForLineChart(completedTasksChart);
|
||||
|
||||
|
||||
/* ----------========== Emails Subscription Chart initialization ==========---------- */
|
||||
|
||||
var dataWebsiteViewsChart = {
|
||||
labels: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],
|
||||
series: [
|
||||
[542, 443, 320, 780, 553, 453, 326, 434, 568, 610, 756, 895]
|
||||
|
||||
]
|
||||
};
|
||||
var optionsWebsiteViewsChart = {
|
||||
axisX: {
|
||||
showGrid: false
|
||||
},
|
||||
low: 0,
|
||||
high: 1000,
|
||||
chartPadding: {
|
||||
top: 0,
|
||||
right: 5,
|
||||
bottom: 0,
|
||||
left: 0
|
||||
}
|
||||
};
|
||||
var responsiveOptions = [
|
||||
['screen and (max-width: 640px)', {
|
||||
seriesBarDistance: 5,
|
||||
axisX: {
|
||||
labelInterpolationFnc: function(value) {
|
||||
return value[0];
|
||||
}
|
||||
}
|
||||
}]
|
||||
];
|
||||
var websiteViewsChart = Chartist.Bar('#websiteViewsChart', dataWebsiteViewsChart, optionsWebsiteViewsChart, responsiveOptions);
|
||||
|
||||
//start animation for the Emails Subscription Chart
|
||||
md.startAnimationForBarChart(websiteViewsChart);
|
||||
}
|
||||
},
|
||||
|
||||
showNotification: function(from, align) {
|
||||
type = ['', 'info', 'danger', 'success', 'warning', 'primary'];
|
||||
|
||||
color = Math.floor((Math.random() * 5) + 1);
|
||||
|
||||
$.notify({
|
||||
icon: "add_alert",
|
||||
message: "Welcome to <b>Material Dashboard</b> - a beautiful freebie for every web developer."
|
||||
|
||||
}, {
|
||||
type: type[color],
|
||||
timer: 3000,
|
||||
placement: {
|
||||
from: from,
|
||||
align: align
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
checkScrollForTransparentNavbar: debounce(function() {
|
||||
if ($(document).scrollTop() > 260) {
|
||||
if (transparent) {
|
||||
transparent = false;
|
||||
$('.navbar-color-on-scroll').removeClass('navbar-transparent');
|
||||
}
|
||||
} else {
|
||||
if (!transparent) {
|
||||
transparent = true;
|
||||
$('.navbar-color-on-scroll').addClass('navbar-transparent');
|
||||
}
|
||||
}
|
||||
}, 17),
|
||||
|
||||
initRightMenu: debounce(function() {
|
||||
|
||||
$sidebar_wrapper = $('.sidebar-wrapper');
|
||||
|
||||
if (!mobile_menu_initialized) {
|
||||
console.log('intra');
|
||||
$navbar = $('nav').find('.navbar-collapse').children('.navbar-nav');
|
||||
|
||||
mobile_menu_content = '';
|
||||
|
||||
nav_content = $navbar.html();
|
||||
|
||||
nav_content = '<ul class="nav navbar-nav nav-mobile-menu">' + nav_content + '</ul>';
|
||||
|
||||
navbar_form = $('nav').find('.navbar-form').length != 0 ? $('nav').find('.navbar-form')[0].outerHTML : null;
|
||||
|
||||
$sidebar_nav = $sidebar_wrapper.find(' > .nav');
|
||||
|
||||
// insert the navbar form before the sidebar list
|
||||
$nav_content = $(nav_content);
|
||||
$navbar_form = $(navbar_form);
|
||||
$nav_content.insertBefore($sidebar_nav);
|
||||
$navbar_form.insertBefore($nav_content);
|
||||
|
||||
$(".sidebar-wrapper .dropdown .dropdown-menu > li > a").click(function(event) {
|
||||
event.stopPropagation();
|
||||
|
||||
});
|
||||
|
||||
// simulate resize so all the charts/maps will be redrawn
|
||||
window.dispatchEvent(new Event('resize'));
|
||||
|
||||
mobile_menu_initialized = true;
|
||||
} else {
|
||||
if ($(window).width() > 991) {
|
||||
// reset all the additions that we made for the sidebar wrapper only if the screen is bigger than 991px
|
||||
$sidebar_wrapper.find('.navbar-form').remove();
|
||||
$sidebar_wrapper.find('.nav-mobile-menu').remove();
|
||||
|
||||
mobile_menu_initialized = false;
|
||||
}
|
||||
}
|
||||
}, 200),
|
||||
|
||||
startAnimationForLineChart: function(chart) {
|
||||
chart.on('draw', function(data) {
|
||||
if ((data.type === 'line' || data.type === 'area') && window.matchMedia("(min-width: 900px)").matches) {
|
||||
data.element.animate({
|
||||
d: {
|
||||
begin: 600,
|
||||
dur: 700,
|
||||
from: data.path.clone().scale(1, 0).translate(0, data.chartRect.height()).stringify(),
|
||||
to: data.path.clone().stringify(),
|
||||
easing: Chartist.Svg.Easing.easeOutQuint
|
||||
}
|
||||
});
|
||||
} else if (data.type === 'point') {
|
||||
seq++;
|
||||
data.element.animate({
|
||||
opacity: {
|
||||
begin: seq * delays,
|
||||
dur: durations,
|
||||
from: 0,
|
||||
to: 1,
|
||||
easing: 'ease'
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
seq = 0;
|
||||
|
||||
},
|
||||
startAnimationForBarChart: function(chart) {
|
||||
chart.on('draw', function(data) {
|
||||
if (data.type === 'bar' && window.matchMedia("(min-width: 900px)").matches) {
|
||||
seq2++;
|
||||
data.element.animate({
|
||||
opacity: {
|
||||
begin: seq2 * delays2,
|
||||
dur: durations2,
|
||||
from: 0,
|
||||
to: 1,
|
||||
easing: 'ease'
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
seq2 = 0;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// 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);
|
||||
};
|
||||
};
|
1
admin/assets/js/material-dashboard.js.map
Normal file
1
admin/assets/js/material-dashboard.js.map
Normal file
File diff suppressed because one or more lines are too long
2
admin/assets/js/material-dashboard.min.js
vendored
Normal file
2
admin/assets/js/material-dashboard.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
404
admin/assets/js/plugins/bootstrap-notify.js
vendored
Normal file
404
admin/assets/js/plugins/bootstrap-notify.js
vendored
Normal file
|
@ -0,0 +1,404 @@
|
|||
/*
|
||||
|
||||
|
||||
|
||||
Creative Tim Modifications
|
||||
|
||||
Lines: 236 was changed from top: 5px to top: 50% and we added margin-top: -9px. In this way the close button will be aligned vertically
|
||||
Line:219 - modified when the icon is set, we add the class "alert-with-icon", so there will be enough space for the icon.
|
||||
Lines: 179/222 - class() was changed to html() so we can add the Material Design Icons
|
||||
|
||||
|
||||
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* Project: Bootstrap Notify = v3.1.5
|
||||
* Description: Turns standard Bootstrap alerts into "Growl-like" notifications.
|
||||
* Author: Mouse0270 aka Robert McIntosh
|
||||
* License: MIT License
|
||||
* Website: https://github.com/mouse0270/bootstrap-growl
|
||||
*/
|
||||
|
||||
/* global define:false, require: false, jQuery:false */
|
||||
|
||||
(function(factory) {
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module.
|
||||
define(['jquery'], factory);
|
||||
} else if (typeof exports === 'object') {
|
||||
// Node/CommonJS
|
||||
factory(require('jquery'));
|
||||
} else {
|
||||
// Browser globals
|
||||
factory(jQuery);
|
||||
}
|
||||
}(function($) {
|
||||
// Create the defaults once
|
||||
var defaults = {
|
||||
element: 'body',
|
||||
position: null,
|
||||
type: "info",
|
||||
allow_dismiss: true,
|
||||
allow_duplicates: true,
|
||||
newest_on_top: false,
|
||||
showProgressbar: false,
|
||||
placement: {
|
||||
from: "top",
|
||||
align: "right"
|
||||
},
|
||||
offset: 20,
|
||||
spacing: 10,
|
||||
z_index: 1031,
|
||||
delay: 5000,
|
||||
timer: 1000,
|
||||
url_target: '_blank',
|
||||
mouse_over: null,
|
||||
animate: {
|
||||
enter: 'animated fadeInDown',
|
||||
exit: 'animated fadeOutUp'
|
||||
},
|
||||
onShow: null,
|
||||
onShown: null,
|
||||
onClose: null,
|
||||
onClosed: null,
|
||||
icon_type: 'class',
|
||||
template: '<div data-notify="container" class="col-11 col-md-4 alert alert-{0}" role="alert"><button type="button" aria-hidden="true" class="close" data-notify="dismiss"><i class="material-icons">close</i></button><i data-notify="icon" class="material-icons"></i><span data-notify="title">{1}</span> <span data-notify="message">{2}</span><div class="progress" data-notify="progressbar"><div class="progress-bar progress-bar-{0}" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width: 0%;"></div></div><a href="{3}" target="{4}" data-notify="url"></a></div>'
|
||||
};
|
||||
|
||||
String.format = function() {
|
||||
var str = arguments[0];
|
||||
for (var i = 1; i < arguments.length; i++) {
|
||||
str = str.replace(RegExp("\\{" + (i - 1) + "\\}", "gm"), arguments[i]);
|
||||
}
|
||||
return str;
|
||||
};
|
||||
|
||||
function isDuplicateNotification(notification) {
|
||||
var isDupe = false;
|
||||
|
||||
$('[data-notify="container"]').each(function(i, el) {
|
||||
var $el = $(el);
|
||||
var title = $el.find('[data-notify="title"]').text().trim();
|
||||
var message = $el.find('[data-notify="message"]').html().trim();
|
||||
|
||||
// The input string might be different than the actual parsed HTML string!
|
||||
// (<br> vs <br /> for example)
|
||||
// So we have to force-parse this as HTML here!
|
||||
var isSameTitle = title === $("<div>" + notification.settings.content.title + "</div>").html().trim();
|
||||
var isSameMsg = message === $("<div>" + notification.settings.content.message + "</div>").html().trim();
|
||||
var isSameType = $el.hasClass('alert-' + notification.settings.type);
|
||||
|
||||
if (isSameTitle && isSameMsg && isSameType) {
|
||||
//we found the dupe. Set the var and stop checking.
|
||||
isDupe = true;
|
||||
}
|
||||
return !isDupe;
|
||||
});
|
||||
|
||||
return isDupe;
|
||||
}
|
||||
|
||||
function Notify(element, content, options) {
|
||||
// Setup Content of Notify
|
||||
var contentObj = {
|
||||
content: {
|
||||
message: typeof content === 'object' ? content.message : content,
|
||||
title: content.title ? content.title : '',
|
||||
icon: content.icon ? content.icon : '',
|
||||
url: content.url ? content.url : '#',
|
||||
target: content.target ? content.target : '-'
|
||||
}
|
||||
};
|
||||
|
||||
options = $.extend(true, {}, contentObj, options);
|
||||
this.settings = $.extend(true, {}, defaults, options);
|
||||
this._defaults = defaults;
|
||||
if (this.settings.content.target === "-") {
|
||||
this.settings.content.target = this.settings.url_target;
|
||||
}
|
||||
this.animations = {
|
||||
start: 'webkitAnimationStart oanimationstart MSAnimationStart animationstart',
|
||||
end: 'webkitAnimationEnd oanimationend MSAnimationEnd animationend'
|
||||
};
|
||||
|
||||
if (typeof this.settings.offset === 'number') {
|
||||
this.settings.offset = {
|
||||
x: this.settings.offset,
|
||||
y: this.settings.offset
|
||||
};
|
||||
}
|
||||
|
||||
//if duplicate messages are not allowed, then only continue if this new message is not a duplicate of one that it already showing
|
||||
if (this.settings.allow_duplicates || (!this.settings.allow_duplicates && !isDuplicateNotification(this))) {
|
||||
this.init();
|
||||
}
|
||||
}
|
||||
|
||||
$.extend(Notify.prototype, {
|
||||
init: function() {
|
||||
var self = this;
|
||||
|
||||
this.buildNotify();
|
||||
if (this.settings.content.icon) {
|
||||
this.setIcon();
|
||||
}
|
||||
if (this.settings.content.url != "#") {
|
||||
this.styleURL();
|
||||
}
|
||||
this.styleDismiss();
|
||||
this.placement();
|
||||
this.bind();
|
||||
|
||||
this.notify = {
|
||||
$ele: this.$ele,
|
||||
update: function(command, update) {
|
||||
var commands = {};
|
||||
if (typeof command === "string") {
|
||||
commands[command] = update;
|
||||
} else {
|
||||
commands = command;
|
||||
}
|
||||
for (var cmd in commands) {
|
||||
switch (cmd) {
|
||||
case "type":
|
||||
this.$ele.removeClass('alert-' + self.settings.type);
|
||||
this.$ele.find('[data-notify="progressbar"] > .progress-bar').removeClass('progress-bar-' + self.settings.type);
|
||||
self.settings.type = commands[cmd];
|
||||
this.$ele.addClass('alert-' + commands[cmd]).find('[data-notify="progressbar"] > .progress-bar').addClass('progress-bar-' + commands[cmd]);
|
||||
break;
|
||||
case "icon":
|
||||
var $icon = this.$ele.find('[data-notify="icon"]');
|
||||
if (self.settings.icon_type.toLowerCase() === 'class') {
|
||||
$icon.html(commands[cmd]);
|
||||
} else {
|
||||
if (!$icon.is('img')) {
|
||||
$icon.find('img');
|
||||
}
|
||||
$icon.attr('src', commands[cmd]);
|
||||
}
|
||||
break;
|
||||
case "progress":
|
||||
var newDelay = self.settings.delay - (self.settings.delay * (commands[cmd] / 100));
|
||||
this.$ele.data('notify-delay', newDelay);
|
||||
this.$ele.find('[data-notify="progressbar"] > div').attr('aria-valuenow', commands[cmd]).css('width', commands[cmd] + '%');
|
||||
break;
|
||||
case "url":
|
||||
this.$ele.find('[data-notify="url"]').attr('href', commands[cmd]);
|
||||
break;
|
||||
case "target":
|
||||
this.$ele.find('[data-notify="url"]').attr('target', commands[cmd]);
|
||||
break;
|
||||
default:
|
||||
this.$ele.find('[data-notify="' + cmd + '"]').html(commands[cmd]);
|
||||
}
|
||||
}
|
||||
var posX = this.$ele.outerHeight() + parseInt(self.settings.spacing) + parseInt(self.settings.offset.y);
|
||||
self.reposition(posX);
|
||||
},
|
||||
close: function() {
|
||||
self.close();
|
||||
}
|
||||
};
|
||||
|
||||
},
|
||||
buildNotify: function() {
|
||||
var content = this.settings.content;
|
||||
this.$ele = $(String.format(this.settings.template, this.settings.type, content.title, content.message, content.url, content.target));
|
||||
this.$ele.attr('data-notify-position', this.settings.placement.from + '-' + this.settings.placement.align);
|
||||
if (!this.settings.allow_dismiss) {
|
||||
this.$ele.find('[data-notify="dismiss"]').css('display', 'none');
|
||||
}
|
||||
if ((this.settings.delay <= 0 && !this.settings.showProgressbar) || !this.settings.showProgressbar) {
|
||||
this.$ele.find('[data-notify="progressbar"]').remove();
|
||||
}
|
||||
},
|
||||
setIcon: function() {
|
||||
|
||||
this.$ele.addClass('alert-with-icon');
|
||||
|
||||
if (this.settings.icon_type.toLowerCase() === 'class') {
|
||||
this.$ele.find('[data-notify="icon"]').html(this.settings.content.icon);
|
||||
} else {
|
||||
if (this.$ele.find('[data-notify="icon"]').is('img')) {
|
||||
this.$ele.find('[data-notify="icon"]').attr('src', this.settings.content.icon);
|
||||
} else {
|
||||
this.$ele.find('[data-notify="icon"]').append('<img src="' + this.settings.content.icon + '" alt="Notify Icon" />');
|
||||
}
|
||||
}
|
||||
},
|
||||
styleDismiss: function() {
|
||||
this.$ele.find('[data-notify="dismiss"]').css({
|
||||
position: 'absolute',
|
||||
right: '10px',
|
||||
top: '50%',
|
||||
marginTop: '-9px',
|
||||
zIndex: this.settings.z_index + 2
|
||||
});
|
||||
},
|
||||
styleURL: function() {
|
||||
this.$ele.find('[data-notify="url"]').css({
|
||||
backgroundImage: 'url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)',
|
||||
height: '100%',
|
||||
left: 0,
|
||||
position: 'absolute',
|
||||
top: 0,
|
||||
width: '100%',
|
||||
zIndex: this.settings.z_index + 1
|
||||
});
|
||||
},
|
||||
placement: function() {
|
||||
var self = this,
|
||||
offsetAmt = this.settings.offset.y,
|
||||
css = {
|
||||
display: 'inline-block',
|
||||
margin: '15px auto',
|
||||
position: this.settings.position ? this.settings.position : (this.settings.element === 'body' ? 'fixed' : 'absolute'),
|
||||
transition: 'all .5s ease-in-out',
|
||||
zIndex: this.settings.z_index
|
||||
},
|
||||
hasAnimation = false,
|
||||
settings = this.settings;
|
||||
|
||||
$('[data-notify-position="' + this.settings.placement.from + '-' + this.settings.placement.align + '"]:not([data-closing="true"])').each(function() {
|
||||
offsetAmt = Math.max(offsetAmt, parseInt($(this).css(settings.placement.from)) + parseInt($(this).outerHeight()) + parseInt(settings.spacing));
|
||||
});
|
||||
if (this.settings.newest_on_top === true) {
|
||||
offsetAmt = this.settings.offset.y;
|
||||
}
|
||||
css[this.settings.placement.from] = offsetAmt + 'px';
|
||||
|
||||
switch (this.settings.placement.align) {
|
||||
case "left":
|
||||
case "right":
|
||||
css[this.settings.placement.align] = this.settings.offset.x + 'px';
|
||||
break;
|
||||
case "center":
|
||||
css.left = 0;
|
||||
css.right = 0;
|
||||
break;
|
||||
}
|
||||
this.$ele.css(css).addClass(this.settings.animate.enter);
|
||||
$.each(Array('webkit-', 'moz-', 'o-', 'ms-', ''), function(index, prefix) {
|
||||
self.$ele[0].style[prefix + 'AnimationIterationCount'] = 1;
|
||||
});
|
||||
|
||||
$(this.settings.element).append(this.$ele);
|
||||
|
||||
if (this.settings.newest_on_top === true) {
|
||||
offsetAmt = (parseInt(offsetAmt) + parseInt(this.settings.spacing)) + this.$ele.outerHeight();
|
||||
this.reposition(offsetAmt);
|
||||
}
|
||||
|
||||
if ($.isFunction(self.settings.onShow)) {
|
||||
self.settings.onShow.call(this.$ele);
|
||||
}
|
||||
|
||||
this.$ele.one(this.animations.start, function() {
|
||||
hasAnimation = true;
|
||||
}).one(this.animations.end, function() {
|
||||
if ($.isFunction(self.settings.onShown)) {
|
||||
self.settings.onShown.call(this);
|
||||
}
|
||||
});
|
||||
|
||||
setTimeout(function() {
|
||||
if (!hasAnimation) {
|
||||
if ($.isFunction(self.settings.onShown)) {
|
||||
self.settings.onShown.call(this);
|
||||
}
|
||||
}
|
||||
}, 600);
|
||||
},
|
||||
bind: function() {
|
||||
var self = this;
|
||||
|
||||
this.$ele.find('[data-notify="dismiss"]').on('click', function() {
|
||||
self.close();
|
||||
});
|
||||
|
||||
this.$ele.mouseover(function() {
|
||||
$(this).data('data-hover', "true");
|
||||
}).mouseout(function() {
|
||||
$(this).data('data-hover', "false");
|
||||
});
|
||||
this.$ele.data('data-hover', "false");
|
||||
|
||||
if (this.settings.delay > 0) {
|
||||
self.$ele.data('notify-delay', self.settings.delay);
|
||||
var timer = setInterval(function() {
|
||||
var delay = parseInt(self.$ele.data('notify-delay')) - self.settings.timer;
|
||||
if ((self.$ele.data('data-hover') === 'false' && self.settings.mouse_over === "pause") || self.settings.mouse_over != "pause") {
|
||||
var percent = ((self.settings.delay - delay) / self.settings.delay) * 100;
|
||||
self.$ele.data('notify-delay', delay);
|
||||
self.$ele.find('[data-notify="progressbar"] > div').attr('aria-valuenow', percent).css('width', percent + '%');
|
||||
}
|
||||
if (delay <= -(self.settings.timer)) {
|
||||
clearInterval(timer);
|
||||
self.close();
|
||||
}
|
||||
}, self.settings.timer);
|
||||
}
|
||||
},
|
||||
close: function() {
|
||||
var self = this,
|
||||
posX = parseInt(this.$ele.css(this.settings.placement.from)),
|
||||
hasAnimation = false;
|
||||
|
||||
this.$ele.data('closing', 'true').addClass(this.settings.animate.exit);
|
||||
self.reposition(posX);
|
||||
|
||||
if ($.isFunction(self.settings.onClose)) {
|
||||
self.settings.onClose.call(this.$ele);
|
||||
}
|
||||
|
||||
this.$ele.one(this.animations.start, function() {
|
||||
hasAnimation = true;
|
||||
}).one(this.animations.end, function() {
|
||||
$(this).remove();
|
||||
if ($.isFunction(self.settings.onClosed)) {
|
||||
self.settings.onClosed.call(this);
|
||||
}
|
||||
});
|
||||
|
||||
setTimeout(function() {
|
||||
if (!hasAnimation) {
|
||||
self.$ele.remove();
|
||||
if (self.settings.onClosed) {
|
||||
self.settings.onClosed(self.$ele);
|
||||
}
|
||||
}
|
||||
}, 600);
|
||||
},
|
||||
reposition: function(posX) {
|
||||
var self = this,
|
||||
notifies = '[data-notify-position="' + this.settings.placement.from + '-' + this.settings.placement.align + '"]:not([data-closing="true"])',
|
||||
$elements = this.$ele.nextAll(notifies);
|
||||
if (this.settings.newest_on_top === true) {
|
||||
$elements = this.$ele.prevAll(notifies);
|
||||
}
|
||||
$elements.each(function() {
|
||||
$(this).css(self.settings.placement.from, posX);
|
||||
posX = (parseInt(posX) + parseInt(self.settings.spacing)) + $(this).outerHeight();
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
$.notify = function(content, options) {
|
||||
var plugin = new Notify(this, content, options);
|
||||
return plugin.notify;
|
||||
};
|
||||
$.notifyDefaults = function(options) {
|
||||
defaults = $.extend(true, {}, defaults, options);
|
||||
return defaults;
|
||||
};
|
||||
$.notifyClose = function(command) {
|
||||
if (typeof command === "undefined" || command === "all") {
|
||||
$('[data-notify]').find('[data-notify="dismiss"]').trigger('click');
|
||||
} else {
|
||||
$('[data-notify-position="' + command + '"]').find('[data-notify="dismiss"]').trigger('click');
|
||||
}
|
||||
};
|
||||
|
||||
}));
|
9
admin/assets/js/plugins/chartist.min.js
vendored
Normal file
9
admin/assets/js/plugins/chartist.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
2
admin/assets/js/plugins/perfect-scrollbar.jquery.min.js
vendored
Normal file
2
admin/assets/js/plugins/perfect-scrollbar.jquery.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
Loading…
Add table
Add a link
Reference in a new issue