
PK 
/// <reference path="local.js" />
(window.webpackJsonp = window.webpackJsonp || []).push([
[3],
[, , , function (e, t, i) {
(function (t) {
! function () {
"use strict";
var e, i, n, a = function (i, n) {
if (!(this instanceof a)) return new a(i, n);
var r = {
direction: "horizontal",
touchEventsTarget: "container",
initialSlide: 0,
speed: 300,
autoplay: !1,
autoplayDisableOnInteraction: !0,
autoplayStopOnLast: !1,
iOSEdgeSwipeDetection: !1,
iOSEdgeSwipeThreshold: 20,
freeMode: !1,
freeModeMomentum: !0,
freeModeMomentumRatio: 1,
freeModeMomentumBounce: !0,
freeModeMomentumBounceRatio: 1,
freeModeSticky: !1,
freeModeMinimumVelocity: .02,
autoHeight: !1,
setWrapperSize: !1,
virtualTranslate: !1,
effect: "slide",
coverflow: {
rotate: 50,
stretch: 0,
depth: 100,
modifier: 1,
slideShadows: !0
},
flip: {
slideShadows: !0,
limitRotation: !0
},
cube: {
slideShadows: !0,
shadow: !0,
shadowOffset: 20,
shadowScale: .94
},
fade: {
crossFade: !1
},
parallax: !1,
scrollbar: null,
scrollbarHide: !0,
scrollbarDraggable: !1,
scrollbarSnapOnRelease: !1,
keyboardControl: !1,
mousewheelControl: !1,
mousewheelReleaseOnEdges: !1,
mousewheelInvert: !1,
mousewheelForceToAxis: !1,
mousewheelSensitivity: 1,
hashnav: !1,
breakpoints: void 0,
spaceBetween: 0,
slidesPerView: 1,
slidesPerColumn: 1,
slidesPerColumnFill: "column",
slidesPerGroup: 1,
centeredSlides: !1,
slidesOffsetBefore: 0,
slidesOffsetAfter: 0,
roundLengths: !1,
touchRatio: 1,
touchAngle: 45,
simulateTouch: !0,
shortSwipes: !0,
longSwipes: !0,
longSwipesRatio: .5,
longSwipesMs: 300,
followFinger: !0,
onlyExternal: !1,
threshold: 0,
touchMoveStopPropagation: !0,
uniqueNavElements: !0,
pagination: null,
paginationElement: "span",
paginationClickable: !1,
paginationHide: !1,
paginationBulletRender: null,
paginationProgressRender: null,
paginationFractionRender: null,
paginationCustomRender: null,
paginationType: "bullets",
resistance: !0,
resistanceRatio: .85,
nextButton: null,
prevButton: null,
watchSlidesProgress: !1,
watchSlidesVisibility: !1,
grabCursor: !1,
preventClicks: !0,
preventClicksPropagation: !0,
slideToClickedSlide: !1,
lazyLoading: !1,
lazyLoadingInPrevNext: !1,
lazyLoadingInPrevNextAmount: 1,
lazyLoadingOnTransitionStart: !1,
preloadImages: !0,
updateOnImagesReady: !0,
loop: !1,
loopAdditionalSlides: 0,
loopedSlides: null,
control: void 0,
controlInverse: !1,
controlBy: "slide",
allowSwipeToPrev: !0,
allowSwipeToNext: !0,
swipeHandler: null,
noSwiping: !0,
noSwipingClass: "swiper-no-swiping",
slideClass: "swiper-slide",
slideActiveClass: "swiper-slide-active",
slideVisibleClass: "swiper-slide-visible",
slideDuplicateClass: "swiper-slide-duplicate",
slideNextClass: "swiper-slide-next",
slidePrevClass: "swiper-slide-prev",
wrapperClass: "swiper-wrapper",
bulletClass: "swiper-pagination-bullet",
bulletActiveClass: "swiper-pagination-bullet-active",
buttonDisabledClass: "swiper-button-disabled",
paginationCurrentClass: "swiper-pagination-current",
paginationTotalClass: "swiper-pagination-total",
paginationHiddenClass: "swiper-pagination-hidden",
paginationProgressbarClass: "swiper-pagination-progressbar",
observer: !1,
observeParents: !1,
a11y: !1,
prevSlideMessage: "Previous slide",
nextSlideMessage: "Next slide",
firstSlideMessage: "This is the first slide",
lastSlideMessage: "This is the last slide",
paginationBulletMessage: "Go to slide {{index}}",
runCallbacksOnInit: !0
},
o = n && n.virtualTranslate;
n = n || {};
var l = {};
for (var d in n)
if ("object" != typeof n[d] || null === n[d] || (n[d].nodeType || n[d] === window || n[d] === document || void 0 !== s && n[d] instanceof s || void 0 !== t && n[d] instanceof t)) l[d] = n[d];
else
for (var c in l[d] = {}, n[d]) l[d][c] = n[d][c];
for (var u in r)
if (void 0 === n[u]) n[u] = r[u];
else if ("object" == typeof n[u])
for (var p in r[u]) void 0 === n[u][p] && (n[u][p] = r[u][p]);
var h = this;
if (h.params = n, h.originalParams = l, h.classNames = [], void 0 !== e && void 0 !== s && (e = s), (void 0 !== e || (e = void 0 === s ? window.Dom7 || window.Zepto || window.jQuery : s)) && (h.$ = e, h.currentBreakpoint = void 0, h.getActiveBreakpoint = function () {
if (!h.params.breakpoints) return !1;
var e, t = !1,
i = [];
for (e in h.params.breakpoints) h.params.breakpoints.hasOwnProperty(e) && i.push(e);
i.sort((function (e, t) {
return parseInt(e, 10) > parseInt(t, 10)
}));
for (var n = 0; n < i.length; n++)(e = i[n]) >= window.innerWidth && !t && (t = e);
return t || "max"
}, h.setBreakpoint = function () {
var e = h.getActiveBreakpoint();
if (e && h.currentBreakpoint !== e) {
var t = e in h.params.breakpoints ? h.params.breakpoints[e] : h.originalParams,
i = h.params.loop && t.slidesPerView !== h.params.slidesPerView;
for (var n in t) h.params[n] = t[n];
h.currentBreakpoint = e, i && h.destroyLoop && h.reLoop(!0)
}
}, h.params.breakpoints && h.setBreakpoint(), h.container = e(i), 0 !== h.container.length)) {
if (h.container.length > 1) {
var f = [];
return h.container.each((function () {
f.push(new a(this, n))
})), f
}
h.container[0].swiper = h, h.container.data("swiper", h), h.classNames.push("swiper-container-" + h.params.direction), h.params.freeMode && h.classNames.push("swiper-container-free-mode"), h.support.flexbox || (h.classNames.push("swiper-container-no-flexbox"), h.params.slidesPerColumn = 1), h.params.autoHeight && h.classNames.push("swiper-container-autoheight"), (h.params.parallax || h.params.watchSlidesVisibility) && (h.params.watchSlidesProgress = !0), ["cube", "coverflow", "flip"].indexOf(h.params.effect) >= 0 && (h.support.transforms3d ? (h.params.watchSlidesProgress = !0, h.classNames.push("swiper-container-3d")) : h.params.effect = "slide"), "slide" !== h.params.effect && h.classNames.push("swiper-container-" + h.params.effect), "cube" === h.params.effect && (h.params.resistanceRatio = 0, h.params.slidesPerView = 1, h.params.slidesPerColumn = 1, h.params.slidesPerGroup = 1, h.params.centeredSlides = !1, h.params.spaceBetween = 0, h.params.virtualTranslate = !0, h.params.setWrapperSize = !1), "fade" !== h.params.effect && "flip" !== h.params.effect || (h.params.slidesPerView = 1, h.params.slidesPerColumn = 1, h.params.slidesPerGroup = 1, h.params.watchSlidesProgress = !0, h.params.spaceBetween = 0, h.params.setWrapperSize = !1, void 0 === o && (h.params.virtualTranslate = !0)), h.params.grabCursor && h.support.touch && (h.params.grabCursor = !1), h.wrapper = h.container.children("." + h.params.wrapperClass), h.params.pagination && (h.paginationContainer = e(h.params.pagination), h.params.uniqueNavElements && "string" == typeof h.params.pagination && h.paginationContainer.length > 1 && 1 === h.container.find(h.params.pagination).length && (h.paginationContainer = h.container.find(h.params.pagination)), "bullets" === h.params.paginationType && h.params.paginationClickable ? h.paginationContainer.addClass("swiper-pagination-clickable") : h.params.paginationClickable = !1, h.paginationContainer.addClass("swiper-pagination-" + h.params.paginationType)), (h.params.nextButton || h.params.prevButton) && (h.params.nextButton && (h.nextButton = e(h.params.nextButton), h.params.uniqueNavElements && "string" == typeof h.params.nextButton && h.nextButton.length > 1 && 1 === h.container.find(h.params.nextButton).length && (h.nextButton = h.container.find(h.params.nextButton))), h.params.prevButton && (h.prevButton = e(h.params.prevButton), h.params.uniqueNavElements && "string" == typeof h.params.prevButton && h.prevButton.length > 1 && 1 === h.container.find(h.params.prevButton).length && (h.prevButton = h.container.find(h.params.prevButton)))), h.isHorizontal = function () {
return "horizontal" === h.params.direction
}, h.rtl = h.isHorizontal() && ("rtl" === h.container[0].dir.toLowerCase() || "rtl" === h.container.css("direction")), h.rtl && h.classNames.push("swiper-container-rtl"), h.rtl && (h.wrongRTL = "-webkit-box" === h.wrapper.css("display")), h.params.slidesPerColumn > 1 && h.classNames.push("swiper-container-multirow"), h.device.android && h.classNames.push("swiper-container-android"), h.container.addClass(h.classNames.join(" ")), h.translate = 0, h.progress = 0, h.velocity = 0, h.lockSwipeToNext = function () {
h.params.allowSwipeToNext = !1
}, h.lockSwipeToPrev = function () {
h.params.allowSwipeToPrev = !1
}, h.lockSwipes = function () {
h.params.allowSwipeToNext = h.params.allowSwipeToPrev = !1
}, h.unlockSwipeToNext = function () {
h.params.allowSwipeToNext = !0
}, h.unlockSwipeToPrev = function () {
h.params.allowSwipeToPrev = !0
}, h.unlockSwipes = function () {
h.params.allowSwipeToNext = h.params.allowSwipeToPrev = !0
}, h.params.grabCursor && (h.container[0].style.cursor = "move", h.container[0].style.cursor = "-webkit-grab", h.container[0].style.cursor = "-moz-grab", h.container[0].style.cursor = "grab"), h.imagesToLoad = [], h.imagesLoaded = 0, h.loadImage = function (e, t, i, n, a) {
var r;
function s() {
a && a()
}
e.complete && n ? s() : t ? ((r = new window.Image).onload = s, r.onerror = s, i && (r.srcset = i), t && (r.src = t)) : s()
}, h.preloadImages = function () {
function e() {
null != h && (void 0 !== h.imagesLoaded && h.imagesLoaded++, h.imagesLoaded === h.imagesToLoad.length && (h.params.updateOnImagesReady && h.update(), h.emit("onImagesReady", h)))
}
h.imagesToLoad = h.container.find("img");
for (var t = 0; t < h.imagesToLoad.length; t++) h.loadImage(h.imagesToLoad[t], h.imagesToLoad[t].currentSrc || h.imagesToLoad[t].getAttribute("src"), h.imagesToLoad[t].srcset || h.imagesToLoad[t].getAttribute("srcset"), !0, e)
}, h.autoplayTimeoutId = void 0, h.autoplaying = !1, h.autoplayPaused = !1, h.startAutoplay = function () {
return void 0 === h.autoplayTimeoutId && (!!h.params.autoplay && (!h.autoplaying && (h.autoplaying = !0, h.emit("onAutoplayStart", h), void F())))
}, h.stopAutoplay = function (e) {
h.autoplayTimeoutId && (h.autoplayTimeoutId && clearTimeout(h.autoplayTimeoutId), h.autoplaying = !1, h.autoplayTimeoutId = void 0, h.emit("onAutoplayStop", h))
}, h.pauseAutoplay = function (e) {
h.autoplayPaused || (h.autoplayTimeoutId && clearTimeout(h.autoplayTimeoutId), h.autoplayPaused = !0, 0 === e ? (h.autoplayPaused = !1, F()) : h.wrapper.transitionEnd((function () {
h && (h.autoplayPaused = !1, h.autoplaying ? F() : h.stopAutoplay())
})))
}, h.minTranslate = function () {
return -h.snapGrid[0]
}, h.maxTranslate = function () {
return -h.snapGrid[h.snapGrid.length - 1]
}, h.updateAutoHeight = function () {
var e = h.slides.eq(h.activeIndex)[0];
if (void 0 !== e) {
var t = e.offsetHeight;
t && h.wrapper.css("height", t + "px")
}
}, h.updateContainerSize = function () {
var e, t;
e = void 0 !== h.params.width ? h.params.width : h.container[0].clientWidth, t = void 0 !== h.params.height ? h.params.height : h.container[0].clientHeight, 0 === e && h.isHorizontal() || 0 === t && !h.isHorizontal() || (e = e - parseInt(h.container.css("padding-left"), 10) - parseInt(h.container.css("padding-right"), 10), t = t - parseInt(h.container.css("padding-top"), 10) - parseInt(h.container.css("padding-bottom"), 10), h.width = e, h.height = t, h.size = h.isHorizontal() ? h.width : h.height)
}, h.updateSlidesSize = function () {
h.slides = h.wrapper.children("." + h.params.slideClass), h.snapGrid = [], h.slidesGrid = [], h.slidesSizesGrid = [];
var e, t = h.params.spaceBetween,
i = -h.params.slidesOffsetBefore,
n = 0,
a = 0;
if (void 0 !== h.size) {
var r, s;
"string" == typeof t && t.indexOf("%") >= 0 && (t = parseFloat(t.replace("%", "")) / 100 * h.size), h.virtualSize = -t, h.rtl ? h.slides.css({
marginLeft: "",
marginTop: ""
}) : h.slides.css({
marginRight: "",
marginBottom: ""
}), h.params.slidesPerColumn > 1 && (r = Math.floor(h.slides.length / h.params.slidesPerColumn) === h.slides.length / h.params.slidesPerColumn ? h.slides.length : Math.ceil(h.slides.length / h.params.slidesPerColumn) * h.params.slidesPerColumn, "auto" !== h.params.slidesPerView && "row" === h.params.slidesPerColumnFill && (r = Math.max(r, h.params.slidesPerView * h.params.slidesPerColumn)));
var o, l = h.params.slidesPerColumn,
d = r / l,
c = d - (h.params.slidesPerColumn * d - h.slides.length);
for (e = 0; e < h.slides.length; e++) {
s = 0;
var u, p, f, g = h.slides.eq(e);
if (h.params.slidesPerColumn > 1) "column" === h.params.slidesPerColumnFill ? (f = e - (p = Math.floor(e / l)) * l, (p > c || p === c && f === l - 1) && ++f >= l && (f = 0, p++), u = p + f * r / l, g.css({
"-webkit-box-ordinal-group": u,
"-moz-box-ordinal-group": u,
"-ms-flex-order": u,
"-webkit-order": u,
order: u
})) : p = e - (f = Math.floor(e / d)) * d, g.css({
"margin-top": 0 !== f && h.params.spaceBetween && h.params.spaceBetween + "px"
}).attr("data-swiper-column", p).attr("data-swiper-row", f);
"none" !== g.css("display") && ("auto" === h.params.slidesPerView ? (s = h.isHorizontal() ? g.outerWidth(!0) : g.outerHeight(!0), h.params.roundLengths && (s = P(s))) : (s = (h.size - (h.params.slidesPerView - 1) * t) / h.params.slidesPerView, h.params.roundLengths && (s = P(s)), h.isHorizontal() ? h.slides[e].style.width = s + "px" : h.slides[e].style.height = s + "px"), h.slides[e].swiperSlideSize = s, h.slidesSizesGrid.push(s), h.params.centeredSlides ? (i = i + s / 2 + n / 2 + t, 0 === e && (i = i - h.size / 2 - t), Math.abs(i) < .001 && (i = 0), a % h.params.slidesPerGroup == 0 && h.snapGrid.push(i), h.slidesGrid.push(i)) : (a % h.params.slidesPerGroup == 0 && h.snapGrid.push(i), h.slidesGrid.push(i), i = i + s + t), h.virtualSize += s + t, n = s, a++)
}
if (h.virtualSize = Math.max(h.virtualSize, h.size) + h.params.slidesOffsetAfter, h.rtl && h.wrongRTL && ("slide" === h.params.effect || "coverflow" === h.params.effect) && h.wrapper.css({
width: h.virtualSize + h.params.spaceBetween + "px"
}), h.support.flexbox && !h.params.setWrapperSize || (h.isHorizontal() ? h.wrapper.css({
width: h.virtualSize + h.params.spaceBetween + "px"
}) : h.wrapper.css({
height: h.virtualSize + h.params.spaceBetween + "px"
})), h.params.slidesPerColumn > 1 && (h.virtualSize = (s + h.params.spaceBetween) * r, h.virtualSize = Math.ceil(h.virtualSize / h.params.slidesPerColumn) - h.params.spaceBetween, h.wrapper.css({
width: h.virtualSize + h.params.spaceBetween + "px"
}), h.params.centeredSlides)) {
for (o = [], e = 0; e < h.snapGrid.length; e++) h.snapGrid[e] < h.virtualSize + h.snapGrid[0] && o.push(h.snapGrid[e]);
h.snapGrid = o
}
if (!h.params.centeredSlides) {
for (o = [], e = 0; e < h.snapGrid.length; e++) h.snapGrid[e] <= h.virtualSize - h.size && o.push(h.snapGrid[e]);
h.snapGrid = o, Math.floor(h.virtualSize - h.size) - Math.floor(h.snapGrid[h.snapGrid.length - 1]) > 1 && h.snapGrid.push(h.virtualSize - h.size)
}
0 === h.snapGrid.length && (h.snapGrid = [0]), 0 !== h.params.spaceBetween && (h.isHorizontal() ? h.rtl ? h.slides.css({
marginLeft: t + "px"
}) : h.slides.css({
marginRight: t + "px"
}) : h.slides.css({
marginBottom: t + "px"
})), h.params.watchSlidesProgress && h.updateSlidesOffset()
}
}, h.updateSlidesOffset = function () {
for (var e = 0; e < h.slides.length; e++) h.slides[e].swiperSlideOffset = h.isHorizontal() ? h.slides[e].offsetLeft : h.slides[e].offsetTop
}, h.updateSlidesProgress = function (e) {
if (void 0 === e && (e = h.translate || 0), 0 !== h.slides.length) {
void 0 === h.slides[0].swiperSlideOffset && h.updateSlidesOffset();
var t = -e;
h.rtl && (t = e), h.slides.removeClass(h.params.slideVisibleClass);
for (var i = 0; i < h.slides.length; i++) {
var n = h.slides[i],
a = (t - n.swiperSlideOffset) / (n.swiperSlideSize + h.params.spaceBetween);
if (h.params.watchSlidesVisibility) {
var r = -(t - n.swiperSlideOffset),
s = r + h.slidesSizesGrid[i];
(r >= 0 && r < h.size || s > 0 && s <= h.size || r <= 0 && s >= h.size) && h.slides.eq(i).addClass(h.params.slideVisibleClass)
}
n.progress = h.rtl ? -a : a
}
}
}, h.updateProgress = function (e) {
void 0 === e && (e = h.translate || 0);
var t = h.maxTranslate() - h.minTranslate(),
i = h.isBeginning,
n = h.isEnd;
0 === t ? (h.progress = 0, h.isBeginning = h.isEnd = !0) : (h.progress = (e - h.minTranslate()) / t, h.isBeginning = h.progress <= 0, h.isEnd = h.progress >= 1), h.isBeginning && !i && h.emit("onReachBeginning", h), h.isEnd && !n && h.emit("onReachEnd", h), h.params.watchSlidesProgress && h.updateSlidesProgress(e), h.emit("onProgress", h, h.progress)
}, h.updateActiveIndex = function () {
var e, t, i, n = h.rtl ? h.translate : -h.translate;
for (t = 0; t < h.slidesGrid.length; t++) void 0 !== h.slidesGrid[t + 1] ? n >= h.slidesGrid[t] && n < h.slidesGrid[t + 1] - (h.slidesGrid[t + 1] - h.slidesGrid[t]) / 2 ? e = t : n >= h.slidesGrid[t] && n < h.slidesGrid[t + 1] && (e = t + 1) : n >= h.slidesGrid[t] && (e = t);
(e < 0 || void 0 === e) && (e = 0), (i = Math.floor(e / h.params.slidesPerGroup)) >= h.snapGrid.length && (i = h.snapGrid.length - 1), e !== h.activeIndex && (h.snapIndex = i, h.previousIndex = h.activeIndex, h.activeIndex = e, h.updateClasses())
}, h.updateClasses = function () {
h.slides.removeClass(h.params.slideActiveClass + " " + h.params.slideNextClass + " " + h.params.slidePrevClass);
var t = h.slides.eq(h.activeIndex);
t.addClass(h.params.slideActiveClass);
var i = t.next("." + h.params.slideClass).addClass(h.params.slideNextClass);
h.params.loop && 0 === i.length && h.slides.eq(0).addClass(h.params.slideNextClass);
var n = t.prev("." + h.params.slideClass).addClass(h.params.slidePrevClass);
if (h.params.loop && 0 === n.length && h.slides.eq(-1).addClass(h.params.slidePrevClass), h.paginationContainer && h.paginationContainer.length > 0) {
var a, r = h.params.loop ? Math.ceil((h.slides.length - 2 * h.loopedSlides) / h.params.slidesPerGroup) : h.snapGrid.length;
if (h.params.loop ? ((a = Math.ceil((h.activeIndex - h.loopedSlides) / h.params.slidesPerGroup)) > h.slides.length - 1 - 2 * h.loopedSlides && (a -= h.slides.length - 2 * h.loopedSlides), a > r - 1 && (a -= r), a < 0 && "bullets" !== h.params.paginationType && (a = r + a)) : a = void 0 !== h.snapIndex ? h.snapIndex : h.activeIndex || 0, "bullets" === h.params.paginationType && h.bullets && h.bullets.length > 0 && (h.bullets.removeClass(h.params.bulletActiveClass), h.paginationContainer.length > 1 ? h.bullets.each((function () {
e(this).index() === a && e(this).addClass(h.params.bulletActiveClass)
})) : h.bullets.eq(a).addClass(h.params.bulletActiveClass)), "fraction" === h.params.paginationType && (h.paginationContainer.find("." + h.params.paginationCurrentClass).text(a + 1), h.paginationContainer.find("." + h.params.paginationTotalClass).text(r)), "progress" === h.params.paginationType) {
var s = (a + 1) / r,
o = s,
l = 1;
h.isHorizontal() || (l = s, o = 1), h.paginationContainer.find("." + h.params.paginationProgressbarClass).transform("translate3d(0,0,0) scaleX(" + o + ") scaleY(" + l + ")").transition(h.params.speed)
}
"custom" === h.params.paginationType && h.params.paginationCustomRender && (h.paginationContainer.html(h.params.paginationCustomRender(h, a + 1, r)), h.emit("onPaginationRendered", h, h.paginationContainer[0]))
}
h.params.loop || (h.params.prevButton && h.prevButton && h.prevButton.length > 0 && (h.isBeginning ? (h.prevButton.addClass(h.params.buttonDisabledClass), h.params.a11y && h.a11y && h.a11y.disable(h.prevButton)) : (h.prevButton.removeClass(h.params.buttonDisabledClass), h.params.a11y && h.a11y && h.a11y.enable(h.prevButton))), h.params.nextButton && h.nextButton && h.nextButton.length > 0 && (h.isEnd ? (h.nextButton.addClass(h.params.buttonDisabledClass), h.params.a11y && h.a11y && h.a11y.disable(h.nextButton)) : (h.nextButton.removeClass(h.params.buttonDisabledClass), h.params.a11y && h.a11y && h.a11y.enable(h.nextButton))))
}, h.updatePagination = function () {
if (h.params.pagination && h.paginationContainer && h.paginationContainer.length > 0) {
var e = "";
if ("bullets" === h.params.paginationType) {
for (var t = h.params.loop ? Math.ceil((h.slides.length - 2 * h.loopedSlides) / h.params.slidesPerGroup) : h.snapGrid.length, i = 0; i < t; i++) h.params.paginationBulletRender ? e += h.params.paginationBulletRender(i, h.params.bulletClass) : e += "<" + h.params.paginationElement + ' class="' + h.params.bulletClass + '"></' + h.params.paginationElement + ">";
h.paginationContainer.html(e), h.bullets = h.paginationContainer.find("." + h.params.bulletClass), h.params.paginationClickable && h.params.a11y && h.a11y && h.a11y.initPagination()
}
"fraction" === h.params.paginationType && (e = h.params.paginationFractionRender ? h.params.paginationFractionRender(h, h.params.paginationCurrentClass, h.params.paginationTotalClass) : '<span class="' + h.params.paginationCurrentClass + '"></span> / <span class="' + h.params.paginationTotalClass + '"></span>', h.paginationContainer.html(e)), "progress" === h.params.paginationType && (e = h.params.paginationProgressRender ? h.params.paginationProgressRender(h, h.params.paginationProgressbarClass) : '<span class="' + h.params.paginationProgressbarClass + '"></span>', h.paginationContainer.html(e)), "custom" !== h.params.paginationType && h.emit("onPaginationRendered", h, h.paginationContainer[0])
}
}, h.update = function (e) {
function t() {
i = Math.min(Math.max(h.translate, h.maxTranslate()), h.minTranslate()), h.setWrapperTranslate(i), h.updateActiveIndex(), h.updateClasses()
}
var i;
(h.updateContainerSize(), h.updateSlidesSize(), h.updateProgress(), h.updatePagination(), h.updateClasses(), h.params.scrollbar && h.scrollbar && h.scrollbar.set(), e) ? (h.controller && h.controller.spline && (h.controller.spline = void 0), h.params.freeMode ? (t(), h.params.autoHeight && h.updateAutoHeight()) : (("auto" === h.params.slidesPerView || h.params.slidesPerView > 1) && h.isEnd && !h.params.centeredSlides ? h.slideTo(h.slides.length - 1, 0, !1, !0) : h.slideTo(h.activeIndex, 0, !1, !0)) || t()) : h.params.autoHeight && h.updateAutoHeight()
}, h.onResize = function (e) {
h.params.breakpoints && h.setBreakpoint();
var t = h.params.allowSwipeToPrev,
i = h.params.allowSwipeToNext;
h.params.allowSwipeToPrev = h.params.allowSwipeToNext = !0, h.updateContainerSize(), h.updateSlidesSize(), ("auto" === h.params.slidesPerView || h.params.freeMode || e) && h.updatePagination(), h.params.scrollbar && h.scrollbar && h.scrollbar.set(), h.controller && h.controller.spline && (h.controller.spline = void 0);
var n = !1;
if (h.params.freeMode) {
var a = Math.min(Math.max(h.translate, h.maxTranslate()), h.minTranslate());
h.setWrapperTranslate(a), h.updateActiveIndex(), h.updateClasses(), h.params.autoHeight && h.updateAutoHeight()
} else h.updateClasses(), n = ("auto" === h.params.slidesPerView || h.params.slidesPerView > 1) && h.isEnd && !h.params.centeredSlides ? h.slideTo(h.slides.length - 1, 0, !1, !0) : h.slideTo(h.activeIndex, 0, !1, !0);
h.params.lazyLoading && !n && h.lazy && h.lazy.load(), h.params.allowSwipeToPrev = t, h.params.allowSwipeToNext = i
};
var g = ["mousedown", "mousemove", "mouseup"];
window.navigator.pointerEnabled ? g = ["pointerdown", "pointermove", "pointerup"] : window.navigator.msPointerEnabled && (g = ["MSPointerDown", "MSPointerMove", "MSPointerUp"]), h.touchEvents = {
start: h.support.touch || !h.params.simulateTouch ? "touchstart" : g[0],
move: h.support.touch || !h.params.simulateTouch ? "touchmove" : g[1],
end: h.support.touch || !h.params.simulateTouch ? "touchend" : g[2]
}, (window.navigator.pointerEnabled || window.navigator.msPointerEnabled) && ("container" === h.params.touchEventsTarget ? h.container : h.wrapper).addClass("swiper-wp8-" + h.params.direction), h.initEvents = function (e) {
var t = e ? "off" : "on",
i = e ? "removeEventListener" : "addEventListener",
a = "container" === h.params.touchEventsTarget ? h.container[0] : h.wrapper[0],
r = h.support.touch ? a : document,
s = !!h.params.nested;
h.browser.ie ? (a[i](h.touchEvents.start, h.onTouchStart, !1), r[i](h.touchEvents.move, h.onTouchMove, s), r[i](h.touchEvents.end, h.onTouchEnd, !1)) : (h.support.touch && (a[i](h.touchEvents.start, h.onTouchStart, !1), a[i](h.touchEvents.move, h.onTouchMove, s), a[i](h.touchEvents.end, h.onTouchEnd, !1)), !n.simulateTouch || h.device.ios || h.device.android || (a[i]("mousedown", h.onTouchStart, !1), document[i]("mousemove", h.onTouchMove, s), document[i]("mouseup", h.onTouchEnd, !1))), window[i]("resize", h.onResize), h.params.nextButton && h.nextButton && h.nextButton.length > 0 && (h.nextButton[t]("click", h.onClickNext), h.params.a11y && h.a11y && h.nextButton[t]("keydown", h.a11y.onEnterKey)), h.params.prevButton && h.prevButton && h.prevButton.length > 0 && (h.prevButton[t]("click", h.onClickPrev), h.params.a11y && h.a11y && h.prevButton[t]("keydown", h.a11y.onEnterKey)), h.params.pagination && h.params.paginationClickable && (h.paginationContainer[t]("click", "." + h.params.bulletClass, h.onClickIndex), h.params.a11y && h.a11y && h.paginationContainer[t]("keydown", "." + h.params.bulletClass, h.a11y.onEnterKey)), (h.params.preventClicks || h.params.preventClicksPropagation) && a[i]("click", h.preventClicks, !0)
}, h.attachEvents = function () {
h.initEvents()
}, h.detachEvents = function () {
h.initEvents(!0)
}, h.allowClick = !0, h.preventClicks = function (e) {
h.allowClick || (h.params.preventClicks && e.preventDefault(), h.params.preventClicksPropagation && h.animating && (e.stopPropagation(), e.stopImmediatePropagation()))
}, h.onClickNext = function (e) {
e.preventDefault(), h.isEnd && !h.params.loop || h.slideNext()
}, h.onClickPrev = function (e) {
e.preventDefault(), h.isBeginning && !h.params.loop || h.slidePrev()
}, h.onClickIndex = function (t) {
t.preventDefault();
var i = e(this).index() * h.params.slidesPerGroup;
h.params.loop && (i += h.loopedSlides), h.slideTo(i)
}, h.updateClickedSlide = function (t) {
var i = N(t, "." + h.params.slideClass),
n = !1;
if (i)
for (var a = 0; a < h.slides.length; a++) h.slides[a] === i && (n = !0);
if (!i || !n) return h.clickedSlide = void 0, void (h.clickedIndex = void 0);
if (h.clickedSlide = i, h.clickedIndex = e(i).index(), h.params.slideToClickedSlide && void 0 !== h.clickedIndex && h.clickedIndex !== h.activeIndex) {
var r, s = h.clickedIndex;
if (h.params.loop) {
if (h.animating) return;
r = e(h.clickedSlide).attr("data-swiper-slide-index"), h.params.centeredSlides ? s < h.loopedSlides - h.params.slidesPerView / 2 || s > h.slides.length - h.loopedSlides + h.params.slidesPerView / 2 ? (h.fixLoop(), s = h.wrapper.children("." + h.params.slideClass + '[data-swiper-slide-index="' + r + '"]:not(.swiper-slide-duplicate)').eq(0).index(), setTimeout((function () {
h.slideTo(s)
}), 0)) : h.slideTo(s) : s > h.slides.length - h.params.slidesPerView ? (h.fixLoop(), s = h.wrapper.children("." + h.params.slideClass + '[data-swiper-slide-index="' + r + '"]:not(.swiper-slide-duplicate)').eq(0).index(), setTimeout((function () {
h.slideTo(s)
}), 0)) : h.slideTo(s)
} else h.slideTo(s)
}
};
var m, v, b, y, w, S, x, _, C, T, D, k, I = "input, select, textarea, button",
E = Date.now(),
$ = [];
if (h.animating = !1, h.touches = {
startX: 0,
startY: 0,
currentX: 0,
currentY: 0,
diff: 0
}, h.onTouchStart = function (t) {
if (t.originalEvent && (t = t.originalEvent), (D = "touchstart" === t.type) || !("which" in t) || 3 !== t.which)
if (h.params.noSwiping && N(t, "." + h.params.noSwipingClass)) h.allowClick = !0;
else if (!h.params.swipeHandler || N(t, h.params.swipeHandler)) {
var i = h.touches.currentX = "touchstart" === t.type ? t.targetTouches[0].pageX : t.pageX,
n = h.touches.currentY = "touchstart" === t.type ? t.targetTouches[0].pageY : t.pageY;
if (!(h.device.ios && h.params.iOSEdgeSwipeDetection && i <= h.params.iOSEdgeSwipeThreshold)) {
if (m = !0, v = !1, b = !0, w = void 0, k = void 0, h.touches.startX = i, h.touches.startY = n, y = Date.now(), h.allowClick = !0, h.updateContainerSize(), h.swipeDirection = void 0, h.params.threshold > 0 && (_ = !1), "touchstart" !== t.type) {
var a = !0;
e(t.target).is(I) && (a = !1), document.activeElement && e(document.activeElement).is(I) && document.activeElement.blur(), a && t.preventDefault()
}
h.emit("onTouchStart", h, t)
}
}
}, h.onTouchMove = function (t) {
if (t.originalEvent && (t = t.originalEvent), !D || "mousemove" !== t.type) {
if (t.preventedByNestedSwiper) return h.touches.startX = "touchmove" === t.type ? t.targetTouches[0].pageX : t.pageX, void (h.touches.startY = "touchmove" === t.type ? t.targetTouches[0].pageY : t.pageY);
if (h.params.onlyExternal) return h.allowClick = !1, void (m && (h.touches.startX = h.touches.currentX = "touchmove" === t.type ? t.targetTouches[0].pageX : t.pageX, h.touches.startY = h.touches.currentY = "touchmove" === t.type ? t.targetTouches[0].pageY : t.pageY, y = Date.now()));
if (D && document.activeElement && t.target === document.activeElement && e(t.target).is(I)) return v = !0, void (h.allowClick = !1);
if (b && h.emit("onTouchMove", h, t), !(t.targetTouches && t.targetTouches.length > 1)) {
if (h.touches.currentX = "touchmove" === t.type ? t.targetTouches[0].pageX : t.pageX, h.touches.currentY = "touchmove" === t.type ? t.targetTouches[0].pageY : t.pageY, void 0 === w) {
var i = 180 * Math.atan2(Math.abs(h.touches.currentY - h.touches.startY), Math.abs(h.touches.currentX - h.touches.startX)) / Math.PI;
w = h.isHorizontal() ? i > h.params.touchAngle : 90 - i > h.params.touchAngle
}
if (w && h.emit("onTouchMoveOpposite", h, t), void 0 === k && h.browser.ieTouch && (h.touches.currentX === h.touches.startX && h.touches.currentY === h.touches.startY || (k = !0)), m)
if (w) m = !1;
else if (k || !h.browser.ieTouch) {
h.allowClick = !1, h.emit("onSliderMove", h, t), t.preventDefault(), h.params.touchMoveStopPropagation && !h.params.nested && t.stopPropagation(), v || (n.loop && h.fixLoop(), x = h.getWrapperTranslate(), h.setWrapperTransition(0), h.animating && h.wrapper.trigger("webkitTransitionEnd transitionend oTransitionEnd MSTransitionEnd msTransitionEnd"), h.params.autoplay && h.autoplaying && (h.params.autoplayDisableOnInteraction ? h.stopAutoplay() : h.pauseAutoplay()), T = !1, h.params.grabCursor && (h.container[0].style.cursor = "move", h.container[0].style.cursor = "-webkit-grabbing", h.container[0].style.cursor = "-moz-grabbin", h.container[0].style.cursor = "grabbing")), v = !0;
var a = h.touches.diff = h.isHorizontal() ? h.touches.currentX - h.touches.startX : h.touches.currentY - h.touches.startY;
a *= h.params.touchRatio, h.rtl && (a = -a), h.swipeDirection = a > 0 ? "prev" : "next", S = a + x;
var r = !0;
if (a > 0 && S > h.minTranslate() ? (r = !1, h.params.resistance && (S = h.minTranslate() - 1 + Math.pow(-h.minTranslate() + x + a, h.params.resistanceRatio))) : a < 0 && S < h.maxTranslate() && (r = !1, h.params.resistance && (S = h.maxTranslate() + 1 - Math.pow(h.maxTranslate() - x - a, h.params.resistanceRatio))), r && (t.preventedByNestedSwiper = !0), !h.params.allowSwipeToNext && "next" === h.swipeDirection && S < x && (S = x), !h.params.allowSwipeToPrev && "prev" === h.swipeDirection && S > x && (S = x), h.params.followFinger) {
if (h.params.threshold > 0) {
if (!(Math.abs(a) > h.params.threshold || _)) return void (S = x);
if (!_) return _ = !0, h.touches.startX = h.touches.currentX, h.touches.startY = h.touches.currentY, S = x, void (h.touches.diff = h.isHorizontal() ? h.touches.currentX - h.touches.startX : h.touches.currentY - h.touches.startY)
} (h.params.freeMode || h.params.watchSlidesProgress) && h.updateActiveIndex(), h.params.freeMode && (0 === $.length && $.push({
position: h.touches[h.isHorizontal() ? "startX" : "startY"],
time: y
}), $.push({
position: h.touches[h.isHorizontal() ? "currentX" : "currentY"],
time: (new window.Date).getTime()
})), h.updateProgress(S), h.setWrapperTranslate(S)
}
}
}
}
}, h.onTouchEnd = function (t) {
if (t.originalEvent && (t = t.originalEvent), b && h.emit("onTouchEnd", h, t), b = !1, m) {
h.params.grabCursor && v && m && (h.container[0].style.cursor = "move", h.container[0].style.cursor = "-webkit-grab", h.container[0].style.cursor = "-moz-grab", h.container[0].style.cursor = "grab");
var i, n = Date.now(),
a = n - y;
if (h.allowClick && (h.updateClickedSlide(t), h.emit("onTap", h, t), a < 300 && n - E > 300 && (C && clearTimeout(C), C = setTimeout((function () {
h && (h.params.paginationHide && h.paginationContainer.length > 0 && !e(t.target).hasClass(h.params.bulletClass) && h.paginationContainer.toggleClass(h.params.paginationHiddenClass), h.emit("onClick", h, t))
}), 300)), a < 300 && n - E < 300 && (C && clearTimeout(C), h.emit("onDoubleTap", h, t))), E = Date.now(), setTimeout((function () {
h && (h.allowClick = !0)
}), 0), m && v && h.swipeDirection && 0 !== h.touches.diff && S !== x)
if (m = v = !1, i = h.params.followFinger ? h.rtl ? h.translate : -h.translate : -S, h.params.freeMode) {
if (i < -h.minTranslate()) return void h.slideTo(h.activeIndex);
if (i > -h.maxTranslate()) return void (h.slides.length < h.snapGrid.length ? h.slideTo(h.snapGrid.length - 1) : h.slideTo(h.slides.length - 1));
if (h.params.freeModeMomentum) {
if ($.length > 1) {
var r = $.pop(),
s = $.pop(),
o = r.position - s.position,
l = r.time - s.time;
h.velocity = o / l, h.velocity = h.velocity / 2, Math.abs(h.velocity) < h.params.freeModeMinimumVelocity && (h.velocity = 0), (l > 150 || (new window.Date).getTime() - r.time > 300) && (h.velocity = 0)
} else h.velocity = 0;
$.length = 0;
var d = 1e3 * h.params.freeModeMomentumRatio,
c = h.velocity * d,
u = h.translate + c;
h.rtl && (u = -u);
var p, f = !1,
g = 20 * Math.abs(h.velocity) * h.params.freeModeMomentumBounceRatio;
if (u < h.maxTranslate()) h.params.freeModeMomentumBounce ? (u + h.maxTranslate() < -g && (u = h.maxTranslate() - g), p = h.maxTranslate(), f = !0, T = !0) : u = h.maxTranslate();
else if (u > h.minTranslate()) h.params.freeModeMomentumBounce ? (u - h.minTranslate() > g && (u = h.minTranslate() + g), p = h.minTranslate(), f = !0, T = !0) : u = h.minTranslate();
else if (h.params.freeModeSticky) {
var w, _ = 0;
for (_ = 0; _ < h.snapGrid.length; _ += 1)
if (h.snapGrid[_] > -u) {
w = _;
break
} u = Math.abs(h.snapGrid[w] - u) < Math.abs(h.snapGrid[w - 1] - u) || "next" === h.swipeDirection ? h.snapGrid[w] : h.snapGrid[w - 1], h.rtl || (u = -u)
}
if (0 !== h.velocity) d = h.rtl ? Math.abs((-u - h.translate) / h.velocity) : Math.abs((u - h.translate) / h.velocity);
else if (h.params.freeModeSticky) return void h.slideReset();
h.params.freeModeMomentumBounce && f ? (h.updateProgress(p), h.setWrapperTransition(d), h.setWrapperTranslate(u), h.onTransitionStart(), h.animating = !0, h.wrapper.transitionEnd((function () {
h && T && (h.emit("onMomentumBounce", h), h.setWrapperTransition(h.params.speed), h.setWrapperTranslate(p), h.wrapper.transitionEnd((function () {
h && h.onTransitionEnd()
})))
}))) : h.velocity ? (h.updateProgress(u), h.setWrapperTransition(d), h.setWrapperTranslate(u), h.onTransitionStart(), h.animating || (h.animating = !0, h.wrapper.transitionEnd((function () {
h && h.onTransitionEnd()
})))) : h.updateProgress(u), h.updateActiveIndex()
} (!h.params.freeModeMomentum || a >= h.params.longSwipesMs) && (h.updateProgress(), h.updateActiveIndex())
} else {
var D, k = 0,
I = h.slidesSizesGrid[0];
for (D = 0; D < h.slidesGrid.length; D += h.params.slidesPerGroup) void 0 !== h.slidesGrid[D + h.params.slidesPerGroup] ? i >= h.slidesGrid[D] && i < h.slidesGrid[D + h.params.slidesPerGroup] && (k = D, I = h.slidesGrid[D + h.params.slidesPerGroup] - h.slidesGrid[D]) : i >= h.slidesGrid[D] && (k = D, I = h.slidesGrid[h.slidesGrid.length - 1] - h.slidesGrid[h.slidesGrid.length - 2]);
var A = (i - h.slidesGrid[k]) / I;
if (a > h.params.longSwipesMs) {
if (!h.params.longSwipes) return void h.slideTo(h.activeIndex);
"next" === h.swipeDirection && (A >= h.params.longSwipesRatio ? h.slideTo(k + h.params.slidesPerGroup) : h.slideTo(k)), "prev" === h.swipeDirection && (A > 1 - h.params.longSwipesRatio ? h.slideTo(k + h.params.slidesPerGroup) : h.slideTo(k))
} else {
if (!h.params.shortSwipes) return void h.slideTo(h.activeIndex);
"next" === h.swipeDirection && h.slideTo(k + h.params.slidesPerGroup), "prev" === h.swipeDirection && h.slideTo(k)
}
}
else m = v = !1
}
}, h._slideTo = function (e, t) {
return h.slideTo(e, t, !0, !0)
}, h.slideTo = function (e, t, i, n) {
void 0 === i && (i = !0), void 0 === e && (e = 0), e < 0 && (e = 0), h.snapIndex = Math.floor(e / h.params.slidesPerGroup), h.snapIndex >= h.snapGrid.length && (h.snapIndex = h.snapGrid.length - 1);
var a = -h.snapGrid[h.snapIndex];
h.params.autoplay && h.autoplaying && (n || !h.params.autoplayDisableOnInteraction ? h.pauseAutoplay(t) : h.stopAutoplay()), h.updateProgress(a);
for (var r = 0; r < h.slidesGrid.length; r++) - Math.floor(100 * a) >= Math.floor(100 * h.slidesGrid[r]) && (e = r);
return !(!h.params.allowSwipeToNext && a < h.translate && a < h.minTranslate()) && (!(!h.params.allowSwipeToPrev && a > h.translate && a > h.maxTranslate() && (h.activeIndex || 0) !== e) && (void 0 === t && (t = h.params.speed), h.previousIndex = h.activeIndex || 0, h.activeIndex = e, h.rtl && -a === h.translate || !h.rtl && a === h.translate ? (h.params.autoHeight && h.updateAutoHeight(), h.updateClasses(), "slide" !== h.params.effect && h.setWrapperTranslate(a), !1) : (h.updateClasses(), h.onTransitionStart(i), 0 === t ? (h.setWrapperTranslate(a), h.setWrapperTransition(0), h.onTransitionEnd(i)) : (h.setWrapperTranslate(a), h.setWrapperTransition(t), h.animating || (h.animating = !0, h.wrapper.transitionEnd((function () {
h && h.onTransitionEnd(i)
})))), !0)))
}, h.onTransitionStart = function (e) {
void 0 === e && (e = !0), h.params.autoHeight && h.updateAutoHeight(), h.lazy && h.lazy.onTransitionStart(), e && (h.emit("onTransitionStart", h), h.activeIndex !== h.previousIndex && (h.emit("onSlideChangeStart", h), h.activeIndex > h.previousIndex ? h.emit("onSlideNextStart", h) : h.emit("onSlidePrevStart", h)))
}, h.onTransitionEnd = function (e) {
h.animating = !1, h.setWrapperTransition(0), void 0 === e && (e = !0), h.lazy && h.lazy.onTransitionEnd(), e && (h.emit("onTransitionEnd", h), h.activeIndex !== h.previousIndex && (h.emit("onSlideChangeEnd", h), h.activeIndex > h.previousIndex ? h.emit("onSlideNextEnd", h) : h.emit("onSlidePrevEnd", h))), h.params.hashnav && h.hashnav && h.hashnav.setHash()
}, h.slideNext = function (e, t, i) {
if (h.params.loop) {
if (h.animating) return !1;
h.fixLoop();
h.container[0].clientLeft;
return h.slideTo(h.activeIndex + h.params.slidesPerGroup, t, e, i)
}
return h.slideTo(h.activeIndex + h.params.slidesPerGroup, t, e, i)
}, h._slideNext = function (e) {
return h.slideNext(!0, e, !0)
}, h.slidePrev = function (e, t, i) {
if (h.params.loop) {
if (h.animating) return !1;
h.fixLoop();
h.container[0].clientLeft;
return h.slideTo(h.activeIndex - 1, t, e, i)
}
return h.slideTo(h.activeIndex - 1, t, e, i)
}, h._slidePrev = function (e) {
return h.slidePrev(!0, e, !0)
}, h.slideReset = function (e, t, i) {
return h.slideTo(h.activeIndex, t, e)
}, h.setWrapperTransition = function (e, t) {
h.wrapper.transition(e), "slide" !== h.params.effect && h.effects[h.params.effect] && h.effects[h.params.effect].setTransition(e), h.params.parallax && h.parallax && h.parallax.setTransition(e), h.params.scrollbar && h.scrollbar && h.scrollbar.setTransition(e), h.params.control && h.controller && h.controller.setTransition(e, t), h.emit("onSetTransition", h, e)
}, h.setWrapperTranslate = function (e, t, i) {
var n = 0,
a = 0;
h.isHorizontal() ? n = h.rtl ? -e : e : a = e, h.params.roundLengths && (n = P(n), a = P(a)), h.params.virtualTranslate || (h.support.transforms3d ? h.wrapper.transform("translate3d(" + n + "px, " + a + "px, 0px)") : h.wrapper.transform("translate(" + n + "px, " + a + "px)")), h.translate = h.isHorizontal() ? n : a;
var r = h.maxTranslate() - h.minTranslate();
(0 === r ? 0 : (e - h.minTranslate()) / r) !== h.progress && h.updateProgress(e), t && h.updateActiveIndex(), "slide" !== h.params.effect && h.effects[h.params.effect] && h.effects[h.params.effect].setTranslate(h.translate), h.params.parallax && h.parallax && h.parallax.setTranslate(h.translate), h.params.scrollbar && h.scrollbar && h.scrollbar.setTranslate(h.translate), h.params.control && h.controller && h.controller.setTranslate(h.translate, i), h.emit("onSetTranslate", h, h.translate)
}, h.getTranslate = function (e, t) {
var i, n, a, r;
return void 0 === t && (t = "x"), h.params.virtualTranslate ? h.rtl ? -h.translate : h.translate : (a = window.getComputedStyle(e, null), window.WebKitCSSMatrix ? ((n = a.transform || a.webkitTransform).split(",").length > 6 && (n = n.split(", ").map((function (e) {
return e.replace(",", ".")
})).join(", ")), r = new window.WebKitCSSMatrix("none" === n ? "" : n)) : i = (r = a.MozTransform || a.OTransform || a.MsTransform || a.msTransform || a.transform || a.getPropertyValue("transform").replace("translate(", "matrix(1, 0, 0, 1,")).toString().split(","), "x" === t && (n = window.WebKitCSSMatrix ? r.m41 : 16 === i.length ? parseFloat(i[12]) : parseFloat(i[4])), "y" === t && (n = window.WebKitCSSMatrix ? r.m42 : 16 === i.length ? parseFloat(i[13]) : parseFloat(i[5])), h.rtl && n && (n = -n), n || 0)
}, h.getWrapperTranslate = function (e) {
return void 0 === e && (e = h.isHorizontal() ? "x" : "y"), h.getTranslate(h.wrapper[0], e)
}, h.observers = [], h.initObservers = function () {
if (h.params.observeParents)
for (var e = h.container.parents(), t = 0; t < e.length; t++) R(e[t]);
R(h.container[0], {
childList: !1
}), R(h.wrapper[0], {
attributes: !1
})
}, h.disconnectObservers = function () {
for (var e = 0; e < h.observers.length; e++) h.observers[e].disconnect();
h.observers = []
}, h.createLoop = function () {
h.wrapper.children("." + h.params.slideClass + "." + h.params.slideDuplicateClass).remove();
var t = h.wrapper.children("." + h.params.slideClass);
"auto" !== h.params.slidesPerView || h.params.loopedSlides || (h.params.loopedSlides = t.length), h.loopedSlides = parseInt(h.params.loopedSlides || h.params.slidesPerView, 10), h.loopedSlides = h.loopedSlides + h.params.loopAdditionalSlides, h.loopedSlides > t.length && (h.loopedSlides = t.length);
var i, n = [],
a = [];
for (t.each((function (i, r) {
var s = e(this);
i < h.loopedSlides && a.push(r), i < t.length && i >= t.length - h.loopedSlides && n.push(r), s.attr("data-swiper-slide-index", i)
})), i = 0; i < a.length; i++) h.wrapper.append(e(a[i].cloneNode(!0)).addClass(h.params.slideDuplicateClass));
for (i = n.length - 1; i >= 0; i--) h.wrapper.prepend(e(n[i].cloneNode(!0)).addClass(h.params.slideDuplicateClass))
}, h.destroyLoop = function () {
h.wrapper.children("." + h.params.slideClass + "." + h.params.slideDuplicateClass).remove(), h.slides.removeAttr("data-swiper-slide-index")
}, h.reLoop = function (e) {
var t = h.activeIndex - h.loopedSlides;
h.destroyLoop(), h.createLoop(), h.updateSlidesSize(), e && h.slideTo(t + h.loopedSlides, 0, !1)
}, h.fixLoop = function () {
var e;
h.activeIndex < h.loopedSlides ? (e = h.slides.length - 3 * h.loopedSlides + h.activeIndex, e += h.loopedSlides, h.slideTo(e, 0, !1, !0)) : ("auto" === h.params.slidesPerView && h.activeIndex >= 2 * h.loopedSlides || h.activeIndex > h.slides.length - 2 * h.params.slidesPerView) && (e = -h.slides.length + h.activeIndex + h.loopedSlides, e += h.loopedSlides, h.slideTo(e, 0, !1, !0))
}, h.appendSlide = function (e) {
if (h.params.loop && h.destroyLoop(), "object" == typeof e && e.length)
for (var t = 0; t < e.length; t++) e[t] && h.wrapper.append(e[t]);
else h.wrapper.append(e);
h.params.loop && h.createLoop(), h.params.observer && h.support.observer || h.update(!0)
}, h.prependSlide = function (e) {
h.params.loop && h.destroyLoop();
var t = h.activeIndex + 1;
if ("object" == typeof e && e.length) {
for (var i = 0; i < e.length; i++) e[i] && h.wrapper.prepend(e[i]);
t = h.activeIndex + e.length
} else h.wrapper.prepend(e);
h.params.loop && h.createLoop(), h.params.observer && h.support.observer || h.update(!0), h.slideTo(t, 0, !1)
}, h.removeSlide = function (e) {
h.params.loop && (h.destroyLoop(), h.slides = h.wrapper.children("." + h.params.slideClass));
var t, i = h.activeIndex;
if ("object" == typeof e && e.length) {
for (var n = 0; n < e.length; n++) t = e[n], h.slides[t] && h.slides.eq(t).remove(), t < i && i--;
i = Math.max(i, 0)
} else t = e, h.slides[t] && h.slides.eq(t).remove(), t < i && i--, i = Math.max(i, 0);
h.params.loop && h.createLoop(), h.params.observer && h.support.observer || h.update(!0), h.params.loop ? h.slideTo(i + h.loopedSlides, 0, !1) : h.slideTo(i, 0, !1)
}, h.removeAllSlides = function () {
for (var e = [], t = 0; t < h.slides.length; t++) e.push(t);
h.removeSlide(e)
}, h.effects = {
fade: {
setTranslate: function () {
for (var e = 0; e < h.slides.length; e++) {
var t = h.slides.eq(e),
i = -t[0].swiperSlideOffset;
h.params.virtualTranslate || (i -= h.translate);
var n = 0;
h.isHorizontal() || (n = i, i = 0);
var a = h.params.fade.crossFade ? Math.max(1 - Math.abs(t[0].progress), 0) : 1 + Math.min(Math.max(t[0].progress, -1), 0);
t.css({
opacity: a
}).transform("translate3d(" + i + "px, " + n + "px, 0px)")
}
},
setTransition: function (e) {
if (h.slides.transition(e), h.params.virtualTranslate && 0 !== e) {
var t = !1;
h.slides.transitionEnd((function () {
if (!t && h) {
t = !0, h.animating = !1;
for (var e = ["webkitTransitionEnd", "transitionend", "oTransitionEnd", "MSTransitionEnd", "msTransitionEnd"], i = 0; i < e.length; i++) h.wrapper.trigger(e[i])
}
}))
}
}
},
flip: {
setTranslate: function () {
for (var t = 0; t < h.slides.length; t++) {
var i = h.slides.eq(t),
n = i[0].progress;
h.params.flip.limitRotation && (n = Math.max(Math.min(i[0].progress, 1), -1));
var a = -180 * n,
r = 0,
s = -i[0].swiperSlideOffset,
o = 0;
if (h.isHorizontal() ? h.rtl && (a = -a) : (o = s, s = 0, r = -a, a = 0), i[0].style.zIndex = -Math.abs(Math.round(n)) + h.slides.length, h.params.flip.slideShadows) {
var l = h.isHorizontal() ? i.find(".swiper-slide-shadow-left") : i.find(".swiper-slide-shadow-top"),
d = h.isHorizontal() ? i.find(".swiper-slide-shadow-right") : i.find(".swiper-slide-shadow-bottom");
0 === l.length && (l = e('<div class="swiper-slide-shadow-' + (h.isHorizontal() ? "left" : "top") + '"></div>'), i.append(l)), 0 === d.length && (d = e('<div class="swiper-slide-shadow-' + (h.isHorizontal() ? "right" : "bottom") + '"></div>'), i.append(d)), l.length && (l[0].style.opacity = Math.max(-n, 0)), d.length && (d[0].style.opacity = Math.max(n, 0))
}
i.transform("translate3d(" + s + "px, " + o + "px, 0px) rotateX(" + r + "deg) rotateY(" + a + "deg)")
}
},
setTransition: function (t) {
if (h.slides.transition(t).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(t), h.params.virtualTranslate && 0 !== t) {
var i = !1;
h.slides.eq(h.activeIndex).transitionEnd((function () {
if (!i && h && e(this).hasClass(h.params.slideActiveClass)) {
i = !0, h.animating = !1;
for (var t = ["webkitTransitionEnd", "transitionend", "oTransitionEnd", "MSTransitionEnd", "msTransitionEnd"], n = 0; n < t.length; n++) h.wrapper.trigger(t[n])
}
}))
}
}
},
cube: {
setTranslate: function () {
var t, i = 0;
h.params.cube.shadow && (h.isHorizontal() ? (0 === (t = h.wrapper.find(".swiper-cube-shadow")).length && (t = e('<div class="swiper-cube-shadow"></div>'), h.wrapper.append(t)), t.css({
height: h.width + "px"
})) : 0 === (t = h.container.find(".swiper-cube-shadow")).length && (t = e('<div class="swiper-cube-shadow"></div>'), h.container.append(t)));
for (var n = 0; n < h.slides.length; n++) {
var a = h.slides.eq(n),
r = 90 * n,
s = Math.floor(r / 360);
h.rtl && (r = -r, s = Math.floor(-r / 360));
var o = Math.max(Math.min(a[0].progress, 1), -1),
l = 0,
d = 0,
c = 0;
n % 4 == 0 ? (l = 4 * -s * h.size, c = 0) : (n - 1) % 4 == 0 ? (l = 0, c = 4 * -s * h.size) : (n - 2) % 4 == 0 ? (l = h.size + 4 * s * h.size, c = h.size) : (n - 3) % 4 == 0 && (l = -h.size, c = 3 * h.size + 4 * h.size * s), h.rtl && (l = -l), h.isHorizontal() || (d = l, l = 0);
var u = "rotateX(" + (h.isHorizontal() ? 0 : -r) + "deg) rotateY(" + (h.isHorizontal() ? r : 0) + "deg) translate3d(" + l + "px, " + d + "px, " + c + "px)";
if (o <= 1 && o > -1 && (i = 90 * n + 90 * o, h.rtl && (i = 90 * -n - 90 * o)), a.transform(u), h.params.cube.slideShadows) {
var p = h.isHorizontal() ? a.find(".swiper-slide-shadow-left") : a.find(".swiper-slide-shadow-top"),
f = h.isHorizontal() ? a.find(".swiper-slide-shadow-right") : a.find(".swiper-slide-shadow-bottom");
0 === p.length && (p = e('<div class="swiper-slide-shadow-' + (h.isHorizontal() ? "left" : "top") + '"></div>'), a.append(p)), 0 === f.length && (f = e('<div class="swiper-slide-shadow-' + (h.isHorizontal() ? "right" : "bottom") + '"></div>'), a.append(f)), p.length && (p[0].style.opacity = Math.max(-o, 0)), f.length && (f[0].style.opacity = Math.max(o, 0))
}
}
if (h.wrapper.css({
"-webkit-transform-origin": "50% 50% -" + h.size / 2 + "px",
"-moz-transform-origin": "50% 50% -" + h.size / 2 + "px",
"-ms-transform-origin": "50% 50% -" + h.size / 2 + "px",
"transform-origin": "50% 50% -" + h.size / 2 + "px"
}), h.params.cube.shadow)
if (h.isHorizontal()) t.transform("translate3d(0px, " + (h.width / 2 + h.params.cube.shadowOffset) + "px, " + -h.width / 2 + "px) rotateX(90deg) rotateZ(0deg) scale(" + h.params.cube.shadowScale + ")");
else {
var g = Math.abs(i) - 90 * Math.floor(Math.abs(i) / 90),
m = 1.5 - (Math.sin(2 * g * Math.PI / 360) / 2 + Math.cos(2 * g * Math.PI / 360) / 2),
v = h.params.cube.shadowScale,
b = h.params.cube.shadowScale / m,
y = h.params.cube.shadowOffset;
t.transform("scale3d(" + v + ", 1, " + b + ") translate3d(0px, " + (h.height / 2 + y) + "px, " + -h.height / 2 / b + "px) rotateX(-90deg)")
} var w = h.isSafari || h.isUiWebView ? -h.size / 2 : 0;
h.wrapper.transform("translate3d(0px,0," + w + "px) rotateX(" + (h.isHorizontal() ? 0 : i) + "deg) rotateY(" + (h.isHorizontal() ? -i : 0) + "deg)")
},
setTransition: function (e) {
h.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e), h.params.cube.shadow && !h.isHorizontal() && h.container.find(".swiper-cube-shadow").transition(e)
}
},
coverflow: {
setTranslate: function () {
for (var t = h.translate, i = h.isHorizontal() ? -t + h.width / 2 : -t + h.height / 2, n = h.isHorizontal() ? h.params.coverflow.rotate : -h.params.coverflow.rotate, a = h.params.coverflow.depth, r = 0, s = h.slides.length; r < s; r++) {
var o = h.slides.eq(r),
l = h.slidesSizesGrid[r],
d = (i - o[0].swiperSlideOffset - l / 2) / l * h.params.coverflow.modifier,
c = h.isHorizontal() ? n * d : 0,
u = h.isHorizontal() ? 0 : n * d,
p = -a * Math.abs(d),
f = h.isHorizontal() ? 0 : h.params.coverflow.stretch * d,
g = h.isHorizontal() ? h.params.coverflow.stretch * d : 0;
Math.abs(g) < .001 && (g = 0), Math.abs(f) < .001 && (f = 0), Math.abs(p) < .001 && (p = 0), Math.abs(c) < .001 && (c = 0), Math.abs(u) < .001 && (u = 0);
var m = "translate3d(" + g + "px," + f + "px," + p + "px) rotateX(" + u + "deg) rotateY(" + c + "deg)";
if (o.transform(m), o[0].style.zIndex = 1 - Math.abs(Math.round(d)), h.params.coverflow.slideShadows) {
var v = h.isHorizontal() ? o.find(".swiper-slide-shadow-left") : o.find(".swiper-slide-shadow-top"),
b = h.isHorizontal() ? o.find(".swiper-slide-shadow-right") : o.find(".swiper-slide-shadow-bottom");
0 === v.length && (v = e('<div class="swiper-slide-shadow-' + (h.isHorizontal() ? "left" : "top") + '"></div>'), o.append(v)), 0 === b.length && (b = e('<div class="swiper-slide-shadow-' + (h.isHorizontal() ? "right" : "bottom") + '"></div>'), o.append(b)), v.length && (v[0].style.opacity = d > 0 ? d : 0), b.length && (b[0].style.opacity = -d > 0 ? -d : 0)
}
}
h.browser.ie && (h.wrapper[0].style.perspectiveOrigin = i + "px 50%")
},
setTransition: function (e) {
h.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e)
}
}
}, h.lazy = {
initialImageLoaded: !1,
loadImageInSlide: function (t, i) {
if (void 0 !== t && (void 0 === i && (i = !0), 0 !== h.slides.length)) {
var n = h.slides.eq(t),
a = n.find(".swiper-lazy:not(.swiper-lazy-loaded):not(.swiper-lazy-loading)");
!n.hasClass("swiper-lazy") || n.hasClass("swiper-lazy-loaded") || n.hasClass("swiper-lazy-loading") || (a = a.add(n[0])), 0 !== a.length && a.each((function () {
var t = e(this);
t.addClass("swiper-lazy-loading");
var a = t.attr("data-background"),
r = t.attr("data-src"),
s = t.attr("data-srcset");
h.loadImage(t[0], r || a, s, !1, (function () {
if (a ? (t.css("background-image", 'url("' + a + '")'), t.removeAttr("data-background")) : (s && (t.attr("srcset", s), t.removeAttr("data-srcset")), r && (t.attr("src", r), t.removeAttr("data-src"))), t.addClass("swiper-lazy-loaded").removeClass("swiper-lazy-loading"), n.find(".swiper-lazy-preloader, .preloader").remove(), h.params.loop && i) {
var e = n.attr("data-swiper-slide-index");
if (n.hasClass(h.params.slideDuplicateClass)) {
var o = h.wrapper.children('[data-swiper-slide-index="' + e + '"]:not(.' + h.params.slideDuplicateClass + ")");
h.lazy.loadImageInSlide(o.index(), !1)
} else {
var l = h.wrapper.children("." + h.params.slideDuplicateClass + '[data-swiper-slide-index="' + e + '"]');
h.lazy.loadImageInSlide(l.index(), !1)
}
}
h.emit("onLazyImageReady", h, n[0], t[0])
})), h.emit("onLazyImageLoad", h, n[0], t[0])
}))
}
},
load: function () {
var t;
if (h.params.watchSlidesVisibility) h.wrapper.children("." + h.params.slideVisibleClass).each((function () {
h.lazy.loadImageInSlide(e(this).index())
}));
else if (h.params.slidesPerView > 1)
for (t = h.activeIndex; t < h.activeIndex + h.params.slidesPerView; t++) h.slides[t] && h.lazy.loadImageInSlide(t);
else h.lazy.loadImageInSlide(h.activeIndex);
if (h.params.lazyLoadingInPrevNext)
if (h.params.slidesPerView > 1 || h.params.lazyLoadingInPrevNextAmount && h.params.lazyLoadingInPrevNextAmount > 1) {
var i = h.params.lazyLoadingInPrevNextAmount,
n = h.params.slidesPerView,
a = Math.min(h.activeIndex + n + Math.max(i, n), h.slides.length),
r = Math.max(h.activeIndex - Math.max(n, i), 0);
for (t = h.activeIndex + h.params.slidesPerView; t < a; t++) h.slides[t] && h.lazy.loadImageInSlide(t);
for (t = r; t < h.activeIndex; t++) h.slides[t] && h.lazy.loadImageInSlide(t)
} else {
var s = h.wrapper.children("." + h.params.slideNextClass);
s.length > 0 && h.lazy.loadImageInSlide(s.index());
var o = h.wrapper.children("." + h.params.slidePrevClass);
o.length > 0 && h.lazy.loadImageInSlide(o.index())
}
},
onTransitionStart: function () {
h.params.lazyLoading && (h.params.lazyLoadingOnTransitionStart || !h.params.lazyLoadingOnTransitionStart && !h.lazy.initialImageLoaded) && h.lazy.load()
},
onTransitionEnd: function () {
h.params.lazyLoading && !h.params.lazyLoadingOnTransitionStart && h.lazy.load()
}
}, h.scrollbar = {
isTouched: !1,
setDragPosition: function (e) {
var t = h.scrollbar,
i = (h.isHorizontal() ? "touchstart" === e.type || "touchmove" === e.type ? e.targetTouches[0].pageX : e.pageX || e.clientX : "touchstart" === e.type || "touchmove" === e.type ? e.targetTouches[0].pageY : e.pageY || e.clientY) - t.track.offset()[h.isHorizontal() ? "left" : "top"] - t.dragSize / 2,
n = -h.minTranslate() * t.moveDivider,
a = -h.maxTranslate() * t.moveDivider;
i < n ? i = n : i > a && (i = a), i = -i / t.moveDivider, h.updateProgress(i), h.setWrapperTranslate(i, !0)
},
dragStart: function (e) {
var t = h.scrollbar;
t.isTouched = !0, e.preventDefault(), e.stopPropagation(), t.setDragPosition(e), clearTimeout(t.dragTimeout), t.track.transition(0), h.params.scrollbarHide && t.track.css("opacity", 1), h.wrapper.transition(100), t.drag.transition(100), h.emit("onScrollbarDragStart", h)
},
dragMove: function (e) {
var t = h.scrollbar;
t.isTouched && (e.preventDefault ? e.preventDefault() : e.returnValue = !1, t.setDragPosition(e), h.wrapper.transition(0), t.track.transition(0), t.drag.transition(0), h.emit("onScrollbarDragMove", h))
},
dragEnd: function (e) {
var t = h.scrollbar;
t.isTouched && (t.isTouched = !1, h.params.scrollbarHide && (clearTimeout(t.dragTimeout), t.dragTimeout = setTimeout((function () {
t.track.css("opacity", 0), t.track.transition(400)
}), 1e3)), h.emit("onScrollbarDragEnd", h), h.params.scrollbarSnapOnRelease && h.slideReset())
},
enableDraggable: function () {
var t = h.scrollbar,
i = h.support.touch ? t.track : document;
e(t.track).on(h.touchEvents.start, t.dragStart), e(i).on(h.touchEvents.move, t.dragMove), e(i).on(h.touchEvents.end, t.dragEnd)
},
disableDraggable: function () {
var t = h.scrollbar,
i = h.support.touch ? t.track : document;
e(t.track).off(h.touchEvents.start, t.dragStart), e(i).off(h.touchEvents.move, t.dragMove), e(i).off(h.touchEvents.end, t.dragEnd)
},
set: function () {
if (h.params.scrollbar) {
var t = h.scrollbar;
t.track = e(h.params.scrollbar), h.params.uniqueNavElements && "string" == typeof h.params.scrollbar && t.track.length > 1 && 1 === h.container.find(h.params.scrollbar).length && (t.track = h.container.find(h.params.scrollbar)), t.drag = t.track.find(".swiper-scrollbar-drag"), 0 === t.drag.length && (t.drag = e('<div class="swiper-scrollbar-drag"></div>'), t.track.append(t.drag)), t.drag[0].style.width = "", t.drag[0].style.height = "", t.trackSize = h.isHorizontal() ? t.track[0].offsetWidth : t.track[0].offsetHeight, t.divider = h.size / h.virtualSize, t.moveDivider = t.divider * (t.trackSize / h.size), t.dragSize = t.trackSize * t.divider, h.isHorizontal() ? t.drag[0].style.width = t.dragSize + "px" : t.drag[0].style.height = t.dragSize + "px", t.divider >= 1 ? t.track[0].style.display = "none" : t.track[0].style.display = "", h.params.scrollbarHide && (t.track[0].style.opacity = 0)
}
},
setTranslate: function () {
if (h.params.scrollbar) {
var e, t = h.scrollbar,
i = (h.translate, t.dragSize);
e = (t.trackSize - t.dragSize) * h.progress, h.rtl && h.isHorizontal() ? (e = -e) > 0 ? (i = t.dragSize - e, e = 0) : -e + t.dragSize > t.trackSize && (i = t.trackSize + e) : e < 0 ? (i = t.dragSize + e, e = 0) : e + t.dragSize > t.trackSize && (i = t.trackSize - e), h.isHorizontal() ? (h.support.transforms3d ? t.drag.transform("translate3d(" + e + "px, 0, 0)") : t.drag.transform("translateX(" + e + "px)"), t.drag[0].style.width = i + "px") : (h.support.transforms3d ? t.drag.transform("translate3d(0px, " + e + "px, 0)") : t.drag.transform("translateY(" + e + "px)"), t.drag[0].style.height = i + "px"), h.params.scrollbarHide && (clearTimeout(t.timeout), t.track[0].style.opacity = 1, t.timeout = setTimeout((function () {
t.track[0].style.opacity = 0, t.track.transition(400)
}), 1e3))
}
},
setTransition: function (e) {
h.params.scrollbar && h.scrollbar.drag.transition(e)
}
}, h.controller = {
LinearSpline: function (e, t) {
var i, n;
this.x = e, this.y = t, this.lastIndex = e.length - 1;
this.x.length;
this.interpolate = function (e) {
return e ? (n = o(this.x, e), i = n - 1, (e - this.x[i]) * (this.y[n] - this.y[i]) / (this.x[n] - this.x[i]) + this.y[i]) : 0
};
var a, r, s, o = function (e, t) {
for (r = -1, a = e.length; a - r > 1;) e[s = a + r >> 1] <= t ? r = s : a = s;
return a
}
},
getInterpolateFunction: function (e) {
h.controller.spline || (h.controller.spline = h.params.loop ? new h.controller.LinearSpline(h.slidesGrid, e.slidesGrid) : new h.controller.LinearSpline(h.snapGrid, e.snapGrid))
},
setTranslate: function (e, t) {
var i, n, r = h.params.control;
function s(t) {
e = t.rtl && "horizontal" === t.params.direction ? -h.translate : h.translate, "slide" === h.params.controlBy && (h.controller.getInterpolateFunction(t), n = -h.controller.spline.interpolate(-e)), n && "container" !== h.params.controlBy || (i = (t.maxTranslate() - t.minTranslate()) / (h.maxTranslate() - h.minTranslate()), n = (e - h.minTranslate()) * i + t.minTranslate()), h.params.controlInverse && (n = t.maxTranslate() - n), t.updateProgress(n), t.setWrapperTranslate(n, !1, h), t.updateActiveIndex()
}
if (h.isArray(r))
for (var o = 0; o < r.length; o++) r[o] !== t && r[o] instanceof a && s(r[o]);
else r instanceof a && t !== r && s(r)
},
setTransition: function (e, t) {
var i, n = h.params.control;
function r(t) {
t.setWrapperTransition(e, h), 0 !== e && (t.onTransitionStart(), t.wrapper.transitionEnd((function () {
n && (t.params.loop && "slide" === h.params.controlBy && t.fixLoop(), t.onTransitionEnd())
})))
}
if (h.isArray(n))
for (i = 0; i < n.length; i++) n[i] !== t && n[i] instanceof a && r(n[i]);
else n instanceof a && t !== n && r(n)
}
}, h.hashnav = {
init: function () {
if (h.params.hashnav) {
h.hashnav.initialized = !0;
var e = document.location.hash.replace("#", "");
if (e)
for (var t = 0, i = h.slides.length; t < i; t++) {
var n = h.slides.eq(t);
if (n.attr("data-hash") === e && !n.hasClass(h.params.slideDuplicateClass)) {
var a = n.index();
h.slideTo(a, 0, h.params.runCallbacksOnInit, !0)
}
}
}
},
setHash: function () {
h.hashnav.initialized && h.params.hashnav && (document.location.hash = h.slides.eq(h.activeIndex).attr("data-hash") || "")
}
}, h.disableKeyboardControl = function () {
h.params.keyboardControl = !1, e(document).off("keydown", O)
}, h.enableKeyboardControl = function () {
h.params.keyboardControl = !0, e(document).on("keydown", O)
}, h.mousewheel = {
event: !1,
lastScrollTime: (new window.Date).getTime()
}, h.params.mousewheelControl) {
try {
new window.WheelEvent("wheel"), h.mousewheel.event = "wheel"
} catch (e) {
(window.WheelEvent || h.container[0] && "wheel" in h.container[0]) && (h.mousewheel.event = "wheel")
} !h.mousewheel.event && window.WheelEvent, h.mousewheel.event || void 0 === document.onmousewheel || (h.mousewheel.event = "mousewheel"), h.mousewheel.event || (h.mousewheel.event = "DOMMouseScroll")
}
for (var A in h.disableMousewheelControl = function () {
return !!h.mousewheel.event && (h.container.off(h.mousewheel.event, L), !0)
}, h.enableMousewheelControl = function () {
return !!h.mousewheel.event && (h.container.on(h.mousewheel.event, L), !0)
}, h.parallax = {
setTranslate: function () {
h.container.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each((function () {
z(this, h.progress)
})), h.slides.each((function () {
var t = e(this);
t.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each((function () {
z(this, Math.min(Math.max(t[0].progress, -1), 1))
}))
}))
},
setTransition: function (t) {
void 0 === t && (t = h.params.speed), h.container.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each((function () {
var i = e(this),
n = parseInt(i.attr("data-swiper-parallax-duration"), 10) || t;
0 === t && (n = 0), i.transition(n)
}))
}
}, h._plugins = [], h.plugins) {
var M = h.plugins[A](h, h.params[A]);
M && h._plugins.push(M)
}
return h.callPlugins = function (e) {
for (var t = 0; t < h._plugins.length; t++) e in h._plugins[t] && h._plugins[t][e](arguments[1], arguments[2], arguments[3], arguments[4], arguments[5])
}, h.emitterEventListeners = {}, h.emit = function (e) {
var t;
if (h.params[e] && h.params[e](arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]), h.emitterEventListeners[e])
for (t = 0; t < h.emitterEventListeners[e].length; t++) h.emitterEventListeners[e][t](arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]);
h.callPlugins && h.callPlugins(e, arguments[1], arguments[2], arguments[3], arguments[4], arguments[5])
}, h.on = function (e, t) {
return e = j(e), h.emitterEventListeners[e] || (h.emitterEventListeners[e] = []), h.emitterEventListeners[e].push(t), h
}, h.off = function (e, t) {
var i;
if (e = j(e), void 0 === t) return h.emitterEventListeners[e] = [], h;
if (h.emitterEventListeners[e] && 0 !== h.emitterEventListeners[e].length) {
for (i = 0; i < h.emitterEventListeners[e].length; i++) h.emitterEventListeners[e][i] === t && h.emitterEventListeners[e].splice(i, 1);
return h
}
}, h.once = function (e, t) {
e = j(e);
var i = function () {
t(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4]), h.off(e, i)
};
return h.on(e, i), h
}, h.a11y = {
makeFocusable: function (e) {
return e.attr("tabIndex", "0"), e
},
addRole: function (e, t) {
return e.attr("role", t), e
},
addLabel: function (e, t) {
return e.attr("aria-label", t), e
},
disable: function (e) {
return e.attr("aria-disabled", !0), e
},
enable: function (e) {
return e.attr("aria-disabled", !1), e
},
onEnterKey: function (t) {
13 === t.keyCode && (e(t.target).is(h.params.nextButton) ? (h.onClickNext(t), h.isEnd ? h.a11y.notify(h.params.lastSlideMessage) : h.a11y.notify(h.params.nextSlideMessage)) : e(t.target).is(h.params.prevButton) && (h.onClickPrev(t), h.isBeginning ? h.a11y.notify(h.params.firstSlideMessage) : h.a11y.notify(h.params.prevSlideMessage)), e(t.target).is("." + h.params.bulletClass) && e(t.target)[0].click())
},
liveRegion: e('<span class="swiper-notification" aria-live="assertive" aria-atomic="true"></span>'),
notify: function (e) {
var t = h.a11y.liveRegion;
0 !== t.length && (t.html(""), t.html(e))
},
init: function () {
h.params.nextButton && h.nextButton && h.nextButton.length > 0 && (h.a11y.makeFocusable(h.nextButton), h.a11y.addRole(h.nextButton, "button"), h.a11y.addLabel(h.nextButton, h.params.nextSlideMessage)), h.params.prevButton && h.prevButton && h.prevButton.length > 0 && (h.a11y.makeFocusable(h.prevButton), h.a11y.addRole(h.prevButton, "button"), h.a11y.addLabel(h.prevButton, h.params.prevSlideMessage)), e(h.container).append(h.a11y.liveRegion)
},
initPagination: function () {
h.params.pagination && h.params.paginationClickable && h.bullets && h.bullets.length && h.bullets.each((function () {
var t = e(this);
h.a11y.makeFocusable(t), h.a11y.addRole(t, "button"), h.a11y.addLabel(t, h.params.paginationBulletMessage.replace(/{{index}}/, t.index() + 1))
}))
},
destroy: function () {
h.a11y.liveRegion && h.a11y.liveRegion.length > 0 && h.a11y.liveRegion.remove()
}
}, h.init = function () {
h.params.loop && h.createLoop(), h.updateContainerSize(), h.updateSlidesSize(), h.updatePagination(), h.params.scrollbar && h.scrollbar && (h.scrollbar.set(), h.params.scrollbarDraggable && h.scrollbar.enableDraggable()), "slide" !== h.params.effect && h.effects[h.params.effect] && (h.params.loop || h.updateProgress(), h.effects[h.params.effect].setTranslate()), h.params.loop ? h.slideTo(h.params.initialSlide + h.loopedSlides, 0, h.params.runCallbacksOnInit) : (h.slideTo(h.params.initialSlide, 0, h.params.runCallbacksOnInit), 0 === h.params.initialSlide && (h.parallax && h.params.parallax && h.parallax.setTranslate(), h.lazy && h.params.lazyLoading && (h.lazy.load(), h.lazy.initialImageLoaded = !0))), h.attachEvents(), h.params.observer && h.support.observer && h.initObservers(), h.params.preloadImages && !h.params.lazyLoading && h.preloadImages(), h.params.autoplay && h.startAutoplay(), h.params.keyboardControl && h.enableKeyboardControl && h.enableKeyboardControl(), h.params.mousewheelControl && h.enableMousewheelControl && h.enableMousewheelControl(), h.params.hashnav && h.hashnav && h.hashnav.init(), h.params.a11y && h.a11y && h.a11y.init(), h.emit("onInit", h)
}, h.cleanupStyles = function () {
h.container.removeClass(h.classNames.join(" ")).removeAttr("style"), h.wrapper.removeAttr("style"), h.slides && h.slides.length && h.slides.removeClass([h.params.slideVisibleClass, h.params.slideActiveClass, h.params.slideNextClass, h.params.slidePrevClass].join(" ")).removeAttr("style").removeAttr("data-swiper-column").removeAttr("data-swiper-row"), h.paginationContainer && h.paginationContainer.length && h.paginationContainer.removeClass(h.params.paginationHiddenClass), h.bullets && h.bullets.length && h.bullets.removeClass(h.params.bulletActiveClass), h.params.prevButton && e(h.params.prevButton).removeClass(h.params.buttonDisabledClass), h.params.nextButton && e(h.params.nextButton).removeClass(h.params.buttonDisabledClass), h.params.scrollbar && h.scrollbar && (h.scrollbar.track && h.scrollbar.track.length && h.scrollbar.track.removeAttr("style"), h.scrollbar.drag && h.scrollbar.drag.length && h.scrollbar.drag.removeAttr("style"))
}, h.destroy = function (e, t) {
h.detachEvents(), h.stopAutoplay(), h.params.scrollbar && h.scrollbar && h.params.scrollbarDraggable && h.scrollbar.disableDraggable(), h.params.loop && h.destroyLoop(), t && h.cleanupStyles(), h.disconnectObservers(), h.params.keyboardControl && h.disableKeyboardControl && h.disableKeyboardControl(), h.params.mousewheelControl && h.disableMousewheelControl && h.disableMousewheelControl(), h.params.a11y && h.a11y && h.a11y.destroy(), h.emit("onDestroy"), !1 !== e && (h = null)
}, h.init(), h
}
function P(e) {
return Math.floor(e)
}
function F() {
h.autoplayTimeoutId = setTimeout((function () {
h.params.loop ? (h.fixLoop(), h._slideNext(), h.emit("onAutoplay", h)) : h.isEnd ? n.autoplayStopOnLast ? h.stopAutoplay() : (h._slideTo(0), h.emit("onAutoplay", h)) : (h._slideNext(), h.emit("onAutoplay", h))
}), h.params.autoplay)
}
function N(t, i) {
var n = e(t.target);
if (!n.is(i))
if ("string" == typeof i) n = n.parents(i);
else if (i.nodeType) {
var a;
return n.parents().each((function (e, t) {
t === i && (a = i)
})), a ? i : void 0
}
if (0 !== n.length) return n[0]
}
function R(e, t) {
t = t || {};
var i = new (window.MutationObserver || window.WebkitMutationObserver)((function (e) {
e.forEach((function (e) {
h.onResize(!0), h.emit("onObserverUpdate", h, e)
}))
}));
i.observe(e, {
attributes: void 0 === t.attributes || t.attributes,
childList: void 0 === t.childList || t.childList,
characterData: void 0 === t.characterData || t.characterData
}), h.observers.push(i)
}
function O(e) {
e.originalEvent && (e = e.originalEvent);
var t = e.keyCode || e.charCode;
if (!h.params.allowSwipeToNext && (h.isHorizontal() && 39 === t || !h.isHorizontal() && 40 === t)) return !1;
if (!h.params.allowSwipeToPrev && (h.isHorizontal() && 37 === t || !h.isHorizontal() && 38 === t)) return !1;
if (!(e.shiftKey || e.altKey || e.ctrlKey || e.metaKey || document.activeElement && document.activeElement.nodeName && ("input" === document.activeElement.nodeName.toLowerCase() || "textarea" === document.activeElement.nodeName.toLowerCase()))) {
if (37 === t || 39 === t || 38 === t || 40 === t) {
var i = !1;
if (h.container.parents(".swiper-slide").length > 0 && 0 === h.container.parents(".swiper-slide-active").length) return;
var n = {
left: window.pageXOffset,
top: window.pageYOffset
},
a = window.innerWidth,
r = window.innerHeight,
s = h.container.offset();
h.rtl && (s.left = s.left - h.container[0].scrollLeft);
for (var o = [
[s.left, s.top],
[s.left + h.width, s.top],
[s.left, s.top + h.height],
[s.left + h.width, s.top + h.height]
], l = 0; l < o.length; l++) {
var d = o[l];
d[0] >= n.left && d[0] <= n.left + a && d[1] >= n.top && d[1] <= n.top + r && (i = !0)
}
if (!i) return
}
h.isHorizontal() ? (37 !== t && 39 !== t || (e.preventDefault ? e.preventDefault() : e.returnValue = !1), (39 === t && !h.rtl || 37 === t && h.rtl) && h.slideNext(), (37 === t && !h.rtl || 39 === t && h.rtl) && h.slidePrev()) : (38 !== t && 40 !== t || (e.preventDefault ? e.preventDefault() : e.returnValue = !1), 40 === t && h.slideNext(), 38 === t && h.slidePrev())
}
}
function L(e) {
e.originalEvent && (e = e.originalEvent);
var t = h.mousewheel.event,
i = 0,
n = h.rtl ? -1 : 1;
if ("mousewheel" === t)
if (h.params.mousewheelForceToAxis)
if (h.isHorizontal()) {
if (!(Math.abs(e.wheelDeltaX) > Math.abs(e.wheelDeltaY))) return;
i = e.wheelDeltaX * n
} else {
if (!(Math.abs(e.wheelDeltaY) > Math.abs(e.wheelDeltaX))) return;
i = e.wheelDeltaY
}
else i = Math.abs(e.wheelDeltaX) > Math.abs(e.wheelDeltaY) ? -e.wheelDeltaX * n : -e.wheelDeltaY;
else if ("DOMMouseScroll" === t) i = -e.detail;
else if ("wheel" === t)
if (h.params.mousewheelForceToAxis)
if (h.isHorizontal()) {
if (!(Math.abs(e.deltaX) > Math.abs(e.deltaY))) return;
i = -e.deltaX * n
} else {
if (!(Math.abs(e.deltaY) > Math.abs(e.deltaX))) return;
i = -e.deltaY
}
else i = Math.abs(e.deltaX) > Math.abs(e.deltaY) ? -e.deltaX * n : -e.deltaY;
if (0 !== i) {
if (h.params.mousewheelInvert && (i = -i), h.params.freeMode) {
var a = h.getWrapperTranslate() + i * h.params.mousewheelSensitivity,
r = h.isBeginning,
s = h.isEnd;
if (a >= h.minTranslate() && (a = h.minTranslate()), a <= h.maxTranslate() && (a = h.maxTranslate()), h.setWrapperTransition(0), h.setWrapperTranslate(a), h.updateProgress(), h.updateActiveIndex(), (!r && h.isBeginning || !s && h.isEnd) && h.updateClasses(), h.params.freeModeSticky ? (clearTimeout(h.mousewheel.timeout), h.mousewheel.timeout = setTimeout((function () {
h.slideReset()
}), 300)) : h.params.lazyLoading && h.lazy && h.lazy.load(), 0 === a || a === h.maxTranslate()) return
} else {
if ((new window.Date).getTime() - h.mousewheel.lastScrollTime > 60)
if (i < 0)
if (h.isEnd && !h.params.loop || h.animating) {
if (h.params.mousewheelReleaseOnEdges) return !0
} else h.slideNext();
else if (h.isBeginning && !h.params.loop || h.animating) {
if (h.params.mousewheelReleaseOnEdges) return !0
} else h.slidePrev();
h.mousewheel.lastScrollTime = (new window.Date).getTime()
}
return h.params.autoplay && h.stopAutoplay(), e.preventDefault ? e.preventDefault() : e.returnValue = !1, !1
}
}
function z(t, i) {
var n, a, r;
t = e(t);
var s = h.rtl ? -1 : 1;
n = t.attr("data-swiper-parallax") || "0", a = t.attr("data-swiper-parallax-x"), r = t.attr("data-swiper-parallax-y"), a || r ? (a = a || "0", r = r || "0") : h.isHorizontal() ? (a = n, r = "0") : (r = n, a = "0"), a = a.indexOf("%") >= 0 ? parseInt(a, 10) * i * s + "%" : a * i * s + "px", r = r.indexOf("%") >= 0 ? parseInt(r, 10) * i + "%" : r * i + "px", t.transform("translate3d(" + a + ", " + r + ",0px)")
}
function j(e) {
return 0 !== e.indexOf("on") && (e = e[0] !== e[0].toUpperCase() ? "on" + e[0].toUpperCase() + e.substring(1) : "on" + e), e
}
};
a.prototype = {
isSafari: (n = navigator.userAgent.toLowerCase(), n.indexOf("safari") >= 0 && n.indexOf("chrome") < 0 && n.indexOf("android") < 0),
isUiWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(navigator.userAgent),
isArray: function (e) {
return "[object Array]" === Object.prototype.toString.apply(e)
},
browser: {
ie: window.navigator.pointerEnabled || window.navigator.msPointerEnabled,
ieTouch: window.navigator.msPointerEnabled && window.navigator.msMaxTouchPoints > 1 || window.navigator.pointerEnabled && window.navigator.maxTouchPoints > 1
},
device: function () {
var e = navigator.userAgent,
t = e.match(/(Android);?[\s\/]+([\d.]+)?/),
i = e.match(/(iPad).*OS\s([\d_]+)/),
n = e.match(/(iPod)(.*OS\s([\d_]+))?/),
a = !i && e.match(/(iPhone\sOS)\s([\d_]+)/);
return {
ios: i || a || n,
android: t
}
}(),
support: {
touch: window.Modernizr && !0 === Modernizr.touch || !!("ontouchstart" in window || window.DocumentTouch && document instanceof DocumentTouch),
transforms3d: window.Modernizr && !0 === Modernizr.csstransforms3d || (i = document.createElement("div").style, "webkitPerspective" in i || "MozPerspective" in i || "OPerspective" in i || "MsPerspective" in i || "perspective" in i),
flexbox: function () {
for (var e = document.createElement("div").style, t = "alignItems webkitAlignItems webkitBoxAlign msFlexAlign mozBoxAlign webkitFlexDirection msFlexDirection mozBoxDirection mozBoxOrient webkitBoxDirection webkitBoxOrient".split(" "), i = 0; i < t.length; i++)
if (t[i] in e) return !0
}(),
observer: "MutationObserver" in window || "WebkitMutationObserver" in window
},
plugins: {}
};
for (var r, s = function () {
var e = function (e) {
var t = 0;
for (t = 0; t < e.length; t++) this[t] = e[t];
return this.length = e.length, this
},
t = function (t, i) {
var n = [],
a = 0;
if (t && !i && t instanceof e) return t;
if (t)
if ("string" == typeof t) {
var r, s, o = t.trim();
if (o.indexOf("<") >= 0 && o.indexOf(">") >= 0) {
var l = "div";
for (0 === o.indexOf("<li") && (l = "ul"), 0 === o.indexOf("<tr") && (l = "tbody"), 0 !== o.indexOf("<td") && 0 !== o.indexOf("<th") || (l = "tr"), 0 === o.indexOf("<tbody") && (l = "table"), 0 === o.indexOf("<option") && (l = "select"), (s = document.createElement(l)).innerHTML = t, a = 0; a < s.childNodes.length; a++) n.push(s.childNodes[a])
} else
for (r = i || "#" !== t[0] || t.match(/[ .<>:~]/) ? (i || document).querySelectorAll(t) : [document.getElementById(t.split("#")[1])], a = 0; a < r.length; a++) r[a] && n.push(r[a])
} else if (t.nodeType || t === window || t === document) n.push(t);
else if (t.length > 0 && t[0].nodeType)
for (a = 0; a < t.length; a++) n.push(t[a]);
return new e(n)
};
return e.prototype = {
addClass: function (e) {
if (void 0 === e) return this;
for (var t = e.split(" "), i = 0; i < t.length; i++)
for (var n = 0; n < this.length; n++) this[n].classList.add(t[i]);
return this
},
removeClass: function (e) {
for (var t = e.split(" "), i = 0; i < t.length; i++)
for (var n = 0; n < this.length; n++) this[n].classList.remove(t[i]);
return this
},
hasClass: function (e) {
return !!this[0] && this[0].classList.contains(e)
},
toggleClass: function (e) {
for (var t = e.split(" "), i = 0; i < t.length; i++)
for (var n = 0; n < this.length; n++) this[n].classList.toggle(t[i]);
return this
},
attr: function (e, t) {
if (1 === arguments.length && "string" == typeof e) return this[0] ? this[0].getAttribute(e) : void 0;
for (var i = 0; i < this.length; i++)
if (2 === arguments.length) this[i].setAttribute(e, t);
else
for (var n in e) this[i][n] = e[n], this[i].setAttribute(n, e[n]);
return this
},
removeAttr: function (e) {
for (var t = 0; t < this.length; t++) this[t].removeAttribute(e);
return this
},
data: function (e, t) {
if (void 0 !== t) {
for (var i = 0; i < this.length; i++) {
var n = this[i];
n.dom7ElementDataStorage || (n.dom7ElementDataStorage = {}), n.dom7ElementDataStorage[e] = t
}
return this
}
if (this[0]) {
var a = this[0].getAttribute("data-" + e);
return a || (this[0].dom7ElementDataStorage && e in this[0].dom7ElementDataStorage ? this[0].dom7ElementDataStorage[e] : void 0)
}
},
transform: function (e) {
for (var t = 0; t < this.length; t++) {
var i = this[t].style;
i.webkitTransform = i.MsTransform = i.msTransform = i.MozTransform = i.OTransform = i.transform = e
}
return this
},
transition: function (e) {
"string" != typeof e && (e += "ms");
for (var t = 0; t < this.length; t++) {
var i = this[t].style;
i.webkitTransitionDuration = i.MsTransitionDuration = i.msTransitionDuration = i.MozTransitionDuration = i.OTransitionDuration = i.transitionDuration = e
}
return this
},
on: function (e, i, n, a) {
function r(e) {
var a = e.target;
if (t(a).is(i)) n.call(a, e);
else
for (var r = t(a).parents(), s = 0; s < r.length; s++) t(r[s]).is(i) && n.call(r[s], e)
}
var s, o, l = e.split(" ");
for (s = 0; s < this.length; s++)
if ("function" == typeof i || !1 === i)
for ("function" == typeof i && (n = arguments[1], a = arguments[2] || !1), o = 0; o < l.length; o++) this[s].addEventListener(l[o], n, a);
else
for (o = 0; o < l.length; o++) this[s].dom7LiveListeners || (this[s].dom7LiveListeners = []), this[s].dom7LiveListeners.push({
listener: n,
liveListener: r
}), this[s].addEventListener(l[o], r, a);
return this
},
off: function (e, t, i, n) {
for (var a = e.split(" "), r = 0; r < a.length; r++)
for (var s = 0; s < this.length; s++)
if ("function" == typeof t || !1 === t) "function" == typeof t && (i = arguments[1], n = arguments[2] || !1), this[s].removeEventListener(a[r], i, n);
else if (this[s].dom7LiveListeners)
for (var o = 0; o < this[s].dom7LiveListeners.length; o++) this[s].dom7LiveListeners[o].listener === i && this[s].removeEventListener(a[r], this[s].dom7LiveListeners[o].liveListener, n);
return this
},
once: function (e, t, i, n) {
var a = this;
function r(s) {
i(s), a.off(e, t, r, n)
}
"function" == typeof t && (t = !1, i = arguments[1], n = arguments[2]), a.on(e, t, r, n)
},
trigger: function (e, t) {
for (var i = 0; i < this.length; i++) {
var n;
try {
n = new window.CustomEvent(e, {
detail: t,
bubbles: !0,
cancelable: !0
})
} catch (i) {
(n = document.createEvent("Event")).initEvent(e, !0, !0), n.detail = t
}
this[i].dispatchEvent(n)
}
return this
},
transitionEnd: function (e) {
var t, i = ["webkitTransitionEnd", "transitionend", "oTransitionEnd", "MSTransitionEnd", "msTransitionEnd"],
n = this;
function a(r) {
if (r.target === this)
for (e.call(this, r), t = 0; t < i.length; t++) n.off(i[t], a)
}
if (e)
for (t = 0; t < i.length; t++) n.on(i[t], a);
return this
},
width: function () {
return this[0] === window ? window.innerWidth : this.length > 0 ? parseFloat(this.css("width")) : null
},
outerWidth: function (e) {
return this.length > 0 ? e ? this[0].offsetWidth + parseFloat(this.css("margin-right")) + parseFloat(this.css("margin-left")) : this[0].offsetWidth : null
},
height: function () {
return this[0] === window ? window.innerHeight : this.length > 0 ? parseFloat(this.css("height")) : null
},
outerHeight: function (e) {
return this.length > 0 ? e ? this[0].offsetHeight + parseFloat(this.css("margin-top")) + parseFloat(this.css("margin-bottom")) : this[0].offsetHeight : null
},
offset: function () {
if (this.length > 0) {
var e = this[0],
t = e.getBoundingClientRect(),
i = document.body,
n = e.clientTop || i.clientTop || 0,
a = e.clientLeft || i.clientLeft || 0,
r = window.pageYOffset || e.scrollTop,
s = window.pageXOffset || e.scrollLeft;
return {
top: t.top + r - n,
left: t.left + s - a
}
}
return null
},
css: function (e, t) {
var i;
if (1 === arguments.length) {
if ("string" != typeof e) {
for (i = 0; i < this.length; i++)
for (var n in e) this[i].style[n] = e[n];
return this
}
if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(e)
}
if (2 === arguments.length && "string" == typeof e) {
for (i = 0; i < this.length; i++) this[i].style[e] = t;
return this
}
return this
},
each: function (e) {
for (var t = 0; t < this.length; t++) e.call(this[t], t, this[t]);
return this
},
html: function (e) {
if (void 0 === e) return this[0] ? this[0].innerHTML : void 0;
for (var t = 0; t < this.length; t++) this[t].innerHTML = e;
return this
},
text: function (e) {
if (void 0 === e) return this[0] ? this[0].textContent.trim() : null;
for (var t = 0; t < this.length; t++) this[t].textContent = e;
return this
},
is: function (i) {
if (!this[0]) return !1;
var n, a;
if ("string" == typeof i) {
var r = this[0];
if (r === document) return i === document;
if (r === window) return i === window;
if (r.matches) return r.matches(i);
if (r.webkitMatchesSelector) return r.webkitMatchesSelector(i);
if (r.mozMatchesSelector) return r.mozMatchesSelector(i);
if (r.msMatchesSelector) return r.msMatchesSelector(i);
for (n = t(i), a = 0; a < n.length; a++)
if (n[a] === this[0]) return !0;
return !1
}
if (i === document) return this[0] === document;
if (i === window) return this[0] === window;
if (i.nodeType || i instanceof e) {
for (n = i.nodeType ? [i] : i, a = 0; a < n.length; a++)
if (n[a] === this[0]) return !0;
return !1
}
return !1
},
index: function () {
if (this[0]) {
for (var e = this[0], t = 0; null !== (e = e.previousSibling);) 1 === e.nodeType && t++;
return t
}
},
eq: function (t) {
if (void 0 === t) return this;
var i, n = this.length;
return new e(t > n - 1 ? [] : t < 0 ? (i = n + t) < 0 ? [] : [this[i]] : [this[t]])
},
append: function (t) {
var i, n;
for (i = 0; i < this.length; i++)
if ("string" == typeof t) {
var a = document.createElement("div");
for (a.innerHTML = t; a.firstChild;) this[i].appendChild(a.firstChild)
} else if (t instanceof e)
for (n = 0; n < t.length; n++) this[i].appendChild(t[n]);
else this[i].appendChild(t);
return this
},
prepend: function (t) {
var i, n;
for (i = 0; i < this.length; i++)
if ("string" == typeof t) {
var a = document.createElement("div");
for (a.innerHTML = t, n = a.childNodes.length - 1; n >= 0; n--) this[i].insertBefore(a.childNodes[n], this[i].childNodes[0])
} else if (t instanceof e)
for (n = 0; n < t.length; n++) this[i].insertBefore(t[n], this[i].childNodes[0]);
else this[i].insertBefore(t, this[i].childNodes[0]);
return this
},
insertBefore: function (e) {
for (var i = t(e), n = 0; n < this.length; n++)
if (1 === i.length) i[0].parentNode.insertBefore(this[n], i[0]);
else if (i.length > 1)
for (var a = 0; a < i.length; a++) i[a].parentNode.insertBefore(this[n].cloneNode(!0), i[a])
},
insertAfter: function (e) {
for (var i = t(e), n = 0; n < this.length; n++)
if (1 === i.length) i[0].parentNode.insertBefore(this[n], i[0].nextSibling);
else if (i.length > 1)
for (var a = 0; a < i.length; a++) i[a].parentNode.insertBefore(this[n].cloneNode(!0), i[a].nextSibling)
},
next: function (i) {
return this.length > 0 ? i ? this[0].nextElementSibling && t(this[0].nextElementSibling).is(i) ? new e([this[0].nextElementSibling]) : new e([]) : this[0].nextElementSibling ? new e([this[0].nextElementSibling]) : new e([]) : new e([])
},
nextAll: function (i) {
var n = [],
a = this[0];
if (!a) return new e([]);
for (; a.nextElementSibling;) {
var r = a.nextElementSibling;
i ? t(r).is(i) && n.push(r) : n.push(r), a = r
}
return new e(n)
},
prev: function (i) {
return this.length > 0 ? i ? this[0].previousElementSibling && t(this[0].previousElementSibling).is(i) ? new e([this[0].previousElementSibling]) : new e([]) : this[0].previousElementSibling ? new e([this[0].previousElementSibling]) : new e([]) : new e([])
},
prevAll: function (i) {
var n = [],
a = this[0];
if (!a) return new e([]);
for (; a.previousElementSibling;) {
var r = a.previousElementSibling;
i ? t(r).is(i) && n.push(r) : n.push(r), a = r
}
return new e(n)
},
parent: function (e) {
for (var i = [], n = 0; n < this.length; n++) e ? t(this[n].parentNode).is(e) && i.push(this[n].parentNode) : i.push(this[n].parentNode);
return t(t.unique(i))
},
parents: function (e) {
for (var i = [], n = 0; n < this.length; n++)
for (var a = this[n].parentNode; a;) e ? t(a).is(e) && i.push(a) : i.push(a), a = a.parentNode;
return t(t.unique(i))
},
find: function (t) {
for (var i = [], n = 0; n < this.length; n++)
for (var a = this[n].querySelectorAll(t), r = 0; r < a.length; r++) i.push(a[r]);
return new e(i)
},
children: function (i) {
for (var n = [], a = 0; a < this.length; a++)
for (var r = this[a].childNodes, s = 0; s < r.length; s++) i ? 1 === r[s].nodeType && t(r[s]).is(i) && n.push(r[s]) : 1 === r[s].nodeType && n.push(r[s]);
return new e(t.unique(n))
},
remove: function () {
for (var e = 0; e < this.length; e++) this[e].parentNode && this[e].parentNode.removeChild(this[e]);
return this
},
add: function () {
var e, i, n = this;
for (e = 0; e < arguments.length; e++) {
var a = t(arguments[e]);
for (i = 0; i < a.length; i++) n[n.length] = a[i], n.length++
}
return n
}
}, t.fn = e.prototype, t.unique = function (e) {
for (var t = [], i = 0; i < e.length; i++) - 1 === t.indexOf(e[i]) && t.push(e[i]);
return t
}, t
}(), o = ["jQuery", "Zepto", "Dom7"], l = 0; l < o.length; l++) window[o[l]] && d(window[o[l]]);
function d(e) {
e.fn.swiper = function (t) {
var i;
return e(this).each((function () {
var e = new a(this, t);
i || (i = e)
})), i
}
} (r = void 0 === s ? window.Dom7 || window.Zepto || window.jQuery : s) && ("transitionEnd" in r.fn || (r.fn.transitionEnd = function (e) {
var t, i = ["webkitTransitionEnd", "transitionend", "oTransitionEnd", "MSTransitionEnd", "msTransitionEnd"],
n = this;
function a(r) {
if (r.target === this)
for (e.call(this, r), t = 0; t < i.length; t++) n.off(i[t], a)
}
if (e)
for (t = 0; t < i.length; t++) n.on(i[t], a);
return this
}), "transform" in r.fn || (r.fn.transform = function (e) {
for (var t = 0; t < this.length; t++) {
var i = this[t].style;
i.webkitTransform = i.MsTransform = i.msTransform = i.MozTransform = i.OTransform = i.transform = e
}
return this
}), "transition" in r.fn || (r.fn.transition = function (e) {
"string" != typeof e && (e += "ms");
for (var t = 0; t < this.length; t++) {
var i = this[t].style;
i.webkitTransitionDuration = i.MsTransitionDuration = i.msTransitionDuration = i.MozTransitionDuration = i.OTransitionDuration = i.transitionDuration = e
}
return this
})), window.Swiper = a
}(), e.exports = window.Swiper
}).call(this, i(0))
}, , , , , , , function (e, t, i) {
var n, a;
/*! DataTables Bootstrap 3 integration
* ©2011-2015 SpryMedia Ltd - datatables.net/license
*/
n = [i(0), i(11)], void 0 === (a = function (e) {
return function (e, t, i, n) {
"use strict";
var a = e.fn.dataTable;
return e.extend(!0, a.defaults, {
dom: "<'row'<'col-sm-6'l><'col-sm-6'f>><'row'<'col-sm-12'tr>><'row'<'col-sm-5'i><'col-sm-7'p>>",
renderer: "bootstrap"
}), e.extend(a.ext.classes, {
sWrapper: "dataTables_wrapper form-inline dt-bootstrap",
sFilterInput: "form-control input-sm",
sLengthSelect: "form-control input-sm",
sProcessing: "dataTables_processing panel panel-default"
}), a.ext.renderer.pageButton.bootstrap = function (t, r, s, o, l, d) {
var c, u, p, h = new a.Api(t),
f = t.oClasses,
g = t.oLanguage.oPaginate,
m = t.oLanguage.oAria.paginate || {},
v = 0,
b = function (i, n) {
var a, r, o, p, y = function (t) {
t.preventDefault(), e(t.currentTarget).hasClass("disabled") || h.page() == t.data.action || h.page(t.data.action).draw("page")
};
for (a = 0, r = n.length; a < r; a++)
if (p = n[a], Array.isArray(p)) b(i, p);
else {
switch (c = "", u = "", p) {
case "ellipsis":
c = "…", u = "disabled";
break;
case "first":
c = g.sFirst, u = p + (l > 0 ? "" : " disabled");
break;
case "previous":
c = g.sPrevious, u = p + (l > 0 ? "" : " disabled");
break;
case "next":
c = g.sNext, u = p + (l < d - 1 ? "" : " disabled");
break;
case "last":
c = g.sLast, u = p + (l < d - 1 ? "" : " disabled");
break;
default:
c = p + 1, u = l === p ? "active" : ""
}
c && (o = e("<li>", {
class: f.sPageButton + " " + u,
id: 0 === s && "string" == typeof p ? t.sTableId + "_" + p : null
}).append(e("<a>", {
href: "#",
"aria-controls": t.sTableId,
"aria-label": m[p],
"data-dt-idx": v,
tabindex: t.iTabIndex
}).html(c)).appendTo(i), t.oApi._fnBindAction(o, {
action: p
}, y), v++)
}
};
try {
p = e(r).find(i.activeElement).data("dt-idx")
} catch (e) { }
b(e(r).empty().html('<ul class="pagination"/>').children("ul"), o), p !== n && e(r).find("[data-dt-idx=" + p + "]").trigger("focus")
}, a
}(e, window, document)
}.apply(t, n)) || (e.exports = a)
}, function (e, t, i) {
var n, a;
/*! DataTables 1.10.24
* ©2008-2021 SpryMedia Ltd - datatables.net/license
*/
! function (r) {
"use strict";
n = [i(0)], void 0 === (a = function (e) {
return function (e, t, i, n) {
var a, r, s, o, l = function (t) {
this.$ = function (e, t) {
return this.api(!0).$(e, t)
}, this._ = function (e, t) {
return this.api(!0).rows(e, t).data()
}, this.api = function (e) {
return new r(e ? ot(this[a.iApiIndex]) : this)
}, this.fnAddData = function (t, i) {
var a = this.api(!0),
r = Array.isArray(t) && (Array.isArray(t[0]) || e.isPlainObject(t[0])) ? a.rows.add(t) : a.row.add(t);
return (i === n || i) && a.draw(), r.flatten().toArray()
}, this.fnAdjustColumnSizing = function (e) {
var t = this.api(!0).columns.adjust(),
i = t.settings()[0],
a = i.oScroll;
e === n || e ? t.draw(!1) : "" === a.sX && "" === a.sY || We(i)
}, this.fnClearTable = function (e) {
var t = this.api(!0).clear();
(e === n || e) && t.draw()
}, this.fnClose = function (e) {
this.api(!0).row(e).child.hide()
}, this.fnDeleteRow = function (e, t, i) {
var a = this.api(!0),
r = a.rows(e),
s = r.settings()[0],
o = s.aoData[r[0][0]];
return r.remove(), t && t.call(this, s, o), (i === n || i) && a.draw(), o
}, this.fnDestroy = function (e) {
this.api(!0).destroy(e)
}, this.fnDraw = function (e) {
this.api(!0).draw(e)
}, this.fnFilter = function (e, t, i, a, r, s) {
var o = this.api(!0);
null === t || t === n ? o.search(e, i, a, s) : o.column(t).search(e, i, a, s), o.draw()
}, this.fnGetData = function (e, t) {
var i = this.api(!0);
if (e !== n) {
var a = e.nodeName ? e.nodeName.toLowerCase() : "";
return t !== n || "td" == a || "th" == a ? i.cell(e, t).data() : i.row(e).data() || null
}
return i.data().toArray()
}, this.fnGetNodes = function (e) {
var t = this.api(!0);
return e !== n ? t.row(e).node() : t.rows().nodes().flatten().toArray()
}, this.fnGetPosition = function (e) {
var t = this.api(!0),
i = e.nodeName.toUpperCase();
if ("TR" == i) return t.row(e).index();
if ("TD" == i || "TH" == i) {
var n = t.cell(e).index();
return [n.row, n.columnVisible, n.column]
}
return null
}, this.fnIsOpen = function (e) {
return this.api(!0).row(e).child.isShown()
}, this.fnOpen = function (e, t, i) {
return this.api(!0).row(e).child(t, i).show().child()[0]
}, this.fnPageChange = function (e, t) {
var i = this.api(!0).page(e);
(t === n || t) && i.draw(!1)
}, this.fnSetColumnVis = function (e, t, i) {
var a = this.api(!0).column(e).visible(t);
(i === n || i) && a.columns.adjust().draw()
}, this.fnSettings = function () {
return ot(this[a.iApiIndex])
}, this.fnSort = function (e) {
this.api(!0).order(e).draw()
}, this.fnSortListener = function (e, t, i) {
this.api(!0).order.listener(e, t, i)
}, this.fnUpdate = function (e, t, i, a, r) {
var s = this.api(!0);
return i === n || null === i ? s.row(t).data(e) : s.cell(t, i).data(e), (r === n || r) && s.columns.adjust(), (a === n || a) && s.draw(), 0
}, this.fnVersionCheck = a.fnVersionCheck;
var i = this,
s = t === n,
o = this.length;
for (var d in s && (t = {}), this.oApi = this.internal = a.internal, l.ext.internal) d && (this[d] = Nt(d));
return this.each((function () {
var a, r = o > 1 ? ct({}, t, !0) : t,
d = 0,
c = this.getAttribute("id"),
u = !1,
p = l.defaults,
h = e(this);
if ("table" == this.nodeName.toLowerCase()) {
A(p), M(p.column), I(p, p, !0), I(p.column, p.column, !0), I(p, e.extend(r, h.data()), !0);
var f = l.settings;
for (d = 0, a = f.length; d < a; d++) {
var g = f[d];
if (g.nTable == this || g.nTHead && g.nTHead.parentNode == this || g.nTFoot && g.nTFoot.parentNode == this) {
var m = r.bRetrieve !== n ? r.bRetrieve : p.bRetrieve,
v = r.bDestroy !== n ? r.bDestroy : p.bDestroy;
if (s || m) return g.oInstance;
if (v) {
g.oInstance.fnDestroy();
break
}
return void lt(g, 0, "Cannot reinitialise DataTable", 3)
}
if (g.sTableId == this.id) {
f.splice(d, 1);
break
}
}
null !== c && "" !== c || (c = "DataTables_Table_" + l.ext._unique++, this.id = c);
var b = e.extend(!0, {}, l.models.oSettings, {
sDestroyWidth: h[0].style.width,
sInstance: c,
sTableId: c
});
b.nTable = this, b.oApi = i.internal, b.oInit = r, f.push(b), b.oInstance = 1 === i.length ? i : h.dataTable(), A(r), E(r.oLanguage), r.aLengthMenu && !r.iDisplayLength && (r.iDisplayLength = Array.isArray(r.aLengthMenu[0]) ? r.aLengthMenu[0][0] : r.aLengthMenu[0]), r = ct(e.extend(!0, {}, p), r), dt(b.oFeatures, r, ["bPaginate", "bLengthChange", "bFilter", "bSort", "bSortMulti", "bInfo", "bProcessing", "bAutoWidth", "bSortClasses", "bServerSide", "bDeferRender"]), dt(b, r, ["asStripeClasses", "ajax", "fnServerData", "fnFormatNumber", "sServerMethod", "aaSorting", "aaSortingFixed", "aLengthMenu", "sPaginationType", "sAjaxSource", "sAjaxDataProp", "iStateDuration", "sDom", "bSortCellsTop", "iTabIndex", "fnStateLoadCallback", "fnStateSaveCallback", "renderer", "searchDelay", "rowId", ["iCookieDuration", "iStateDuration"],
["oSearch", "oPreviousSearch"],
["aoSearchCols", "aoPreSearchCols"],
["iDisplayLength", "_iDisplayLength"]
]), dt(b.oScroll, r, [
["sScrollX", "sX"],
["sScrollXInner", "sXInner"],
["sScrollY", "sY"],
["bScrollCollapse", "bCollapse"]
]), dt(b.oLanguage, r, "fnInfoCallback"), pt(b, "aoDrawCallback", r.fnDrawCallback, "user"), pt(b, "aoServerParams", r.fnServerParams, "user"), pt(b, "aoStateSaveParams", r.fnStateSaveParams, "user"), pt(b, "aoStateLoadParams", r.fnStateLoadParams, "user"), pt(b, "aoStateLoaded", r.fnStateLoaded, "user"), pt(b, "aoRowCallback", r.fnRowCallback, "user"), pt(b, "aoRowCreatedCallback", r.fnCreatedRow, "user"), pt(b, "aoHeaderCallback", r.fnHeaderCallback, "user"), pt(b, "aoFooterCallback", r.fnFooterCallback, "user"), pt(b, "aoInitComplete", r.fnInitComplete, "user"), pt(b, "aoPreDrawCallback", r.fnPreDrawCallback, "user"), b.rowIdFn = Z(r.rowId), P(b);
var y = b.oClasses;
if (e.extend(y, l.ext.classes, r.oClasses), h.addClass(y.sTable), b.iInitDisplayStart === n && (b.iInitDisplayStart = r.iDisplayStart, b._iDisplayStart = r.iDisplayStart), null !== r.iDeferLoading) {
b.bDeferLoading = !0;
var w = Array.isArray(r.iDeferLoading);
b._iRecordsDisplay = w ? r.iDeferLoading[0] : r.iDeferLoading, b._iRecordsTotal = w ? r.iDeferLoading[1] : r.iDeferLoading
}
var S = b.oLanguage;
e.extend(!0, S, r.oLanguage), S.sUrl ? (e.ajax({
dataType: "json",
url: S.sUrl,
success: function (t) {
E(t), I(p.oLanguage, t), e.extend(!0, S, t), ht(b, null, "i18n", [b]), Fe(b)
},
error: function () {
Fe(b)
}
}), u = !0) : ht(b, null, "i18n", [b]), null === r.asStripeClasses && (b.asStripeClasses = [y.sStripeOdd, y.sStripeEven]);
var x = b.asStripeClasses,
_ = h.children("tbody").find("tr").eq(0); - 1 !== e.inArray(!0, e.map(x, (function (e, t) {
return _.hasClass(e)
}))) && (e("tbody tr", this).removeClass(x.join(" ")), b.asDestroyStripes = x.slice());
var C, T = [],
D = this.getElementsByTagName("thead");
if (0 !== D.length && (pe(b.aoHeader, D[0]), T = he(b)), null === r.aoColumns)
for (C = [], d = 0, a = T.length; d < a; d++) C.push(null);
else C = r.aoColumns;
for (d = 0, a = C.length; d < a; d++) N(b, T ? T[d] : null);
if (W(b, r.aoColumnDefs, C, (function (e, t) {
R(b, e, t)
})), _.length) {
var k = function (e, t) {
return null !== e.getAttribute("data-" + t) ? t : null
};
e(_[0]).children("th, td").each((function (e, t) {
var i = b.aoColumns[e];
if (i.mData === e) {
var a = k(t, "sort") || k(t, "order"),
r = k(t, "filter") || k(t, "search");
null === a && null === r || (i.mData = {
_: e + ".display",
sort: null !== a ? e + ".@data-" + a : n,
type: null !== a ? e + ".@data-" + a : n,
filter: null !== r ? e + ".@data-" + r : n
}, R(b, e))
}
}))
}
var $ = b.oFeatures,
F = function () {
if (r.aaSorting === n) {
var t = b.aaSorting;
for (d = 0, a = t.length; d < a; d++) t[d][1] = b.aoColumns[d].asSorting[0]
}
nt(b), $.bSort && pt(b, "aoDrawCallback", (function () {
if (b.bSorted) {
var t = Ze(b),
i = {};
e.each(t, (function (e, t) {
i[t.src] = t.dir
})), ht(b, null, "order", [b, t, i]), et(b)
}
})), pt(b, "aoDrawCallback", (function () {
(b.bSorted || "ssp" === mt(b) || $.bDeferRender) && nt(b)
}), "sc");
var i = h.children("caption").each((function () {
this._captionSide = e(this).css("caption-side")
})),
s = h.children("thead");
0 === s.length && (s = e("<thead/>").appendTo(h)), b.nTHead = s[0];
var o = h.children("tbody");
0 === o.length && (o = e("<tbody/>").appendTo(h)), b.nTBody = o[0];
var l = h.children("tfoot");
if (0 === l.length && i.length > 0 && ("" !== b.oScroll.sX || "" !== b.oScroll.sY) && (l = e("<tfoot/>").appendTo(h)), 0 === l.length || 0 === l.children().length ? h.addClass(y.sNoFooter) : l.length > 0 && (b.nTFoot = l[0], pe(b.aoFooter, b.nTFoot)), r.aaData)
for (d = 0; d < r.aaData.length; d++) U(b, r.aaData[d]);
else (b.bDeferLoading || "dom" == mt(b)) && V(b, e(b.nTBody).children("tr"));
b.aiDisplay = b.aiDisplayMaster.slice(), b.bInitialised = !0, !1 === u && Fe(b)
};
r.bStateSave ? ($.bStateSave = !0, pt(b, "aoDrawCallback", rt, "state_save"), st(b, r, F)) : F()
} else lt(null, 0, "Non-table node initialisation (" + this.nodeName + ")", 2)
})), i = null, this
},
d = {},
c = /[\r\n\u2028]/g,
u = /<.*?>/g,
p = /^\d{2,4}[\.\/\-]\d{1,2}[\.\/\-]\d{1,2}([T ]{1}\d{1,2}[:\.]\d{2}([\.:]\d{2})?)?$/,
h = new RegExp("(\\" + ["/", ".", "*", "+", "?", "|", "(", ")", "[", "]", "{", "}", "\\", "$", "^", "-"].join("|\\") + ")", "g"),
f = /['\u00A0,$£€¥%\u2009\u202F\u20BD\u20a9\u20BArfkɃΞ]/gi,
g = function (e) {
return !e || !0 === e || "-" === e
},
m = function (e) {
var t = parseInt(e, 10);
return !isNaN(t) && isFinite(e) ? t : null
},
v = function (e, t) {
return d[t] || (d[t] = new RegExp(Te(t), "g")), "string" == typeof e && "." !== t ? e.replace(/\./g, "").replace(d[t], ".") : e
},
b = function (e, t, i) {
var n = "string" == typeof e;
return !!g(e) || (t && n && (e = v(e, t)), i && n && (e = e.replace(f, "")), !isNaN(parseFloat(e)) && isFinite(e))
},
y = function (e, t, i) {
return !!g(e) || (function (e) {
return g(e) || "string" == typeof e
}(e) && !!b(C(e), t, i) || null)
},
w = function (e, t, i) {
var a = [],
r = 0,
s = e.length;
if (i !== n)
for (; r < s; r++) e[r] && e[r][t] && a.push(e[r][t][i]);
else
for (; r < s; r++) e[r] && a.push(e[r][t]);
return a
},
S = function (e, t, i, a) {
var r = [],
s = 0,
o = t.length;
if (a !== n)
for (; s < o; s++) e[t[s]][i] && r.push(e[t[s]][i][a]);
else
for (; s < o; s++) r.push(e[t[s]][i]);
return r
},
x = function (e, t) {
var i, a = [];
t === n ? (t = 0, i = e) : (i = t, t = e);
for (var r = t; r < i; r++) a.push(r);
return a
},
_ = function (e) {
for (var t = [], i = 0, n = e.length; i < n; i++) e[i] && t.push(e[i]);
return t
},
C = function (e) {
return e.replace(u, "")
},
T = function (e) {
if (function (e) {
if (e.length < 2) return !0;
for (var t = e.slice().sort(), i = t[0], n = 1, a = t.length; n < a; n++) {
if (t[n] === i) return !1;
i = t[n]
}
return !0
}(e)) return e.slice();
var t, i, n, a = [],
r = e.length,
s = 0;
e: for (i = 0; i < r; i++) {
for (t = e[i], n = 0; n < s; n++)
if (a[n] === t) continue e;
a.push(t), s++
}
return a
},
D = function (e, t) {
if (Array.isArray(t))
for (var i = 0; i < t.length; i++) D(e, t[i]);
else e.push(t);
return e
};
Array.isArray || (Array.isArray = function (e) {
return "[object Array]" === Object.prototype.toString.call(e)
});
String.prototype.trim || (String.prototype.trim = function () {
return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, "")
});
function k(t) {
var i, n, a = {};
e.each(t, (function (e, r) {
(i = e.match(/^([^A-Z]+?)([A-Z])/)) && -1 !== "a aa ai ao as b fn i m o s ".indexOf(i[1] + " ") && (n = e.replace(i[0], i[2].toLowerCase()), a[n] = e, "o" === i[1] && k(t[e]))
})), t._hungarianMap = a
}
function I(t, i, a) {
var r;
t._hungarianMap || k(t), e.each(i, (function (s, o) {
(r = t._hungarianMap[s]) === n || !a && i[r] !== n || ("o" === r.charAt(0) ? (i[r] || (i[r] = {}), e.extend(!0, i[r], i[s]), I(t[r], i[r], a)) : i[r] = i[s])
}))
}
function E(e) {
var t = l.defaults.oLanguage,
i = t.sDecimal;
if (i && Pt(i), e) {
var n = e.sZeroRecords;
!e.sEmptyTable && n && "No data available in table" === t.sEmptyTable && dt(e, e, "sZeroRecords", "sEmptyTable"), !e.sLoadingRecords && n && "Loading..." === t.sLoadingRecords && dt(e, e, "sZeroRecords", "sLoadingRecords"), e.sInfoThousands && (e.sThousands = e.sInfoThousands);
var a = e.sDecimal;
a && i !== a && Pt(a)
}
}
l.util = {
throttle: function (e, t) {
var i, a, r = t !== n ? t : 200;
return function () {
var t = this,
s = +new Date,
o = arguments;
i && s < i + r ? (clearTimeout(a), a = setTimeout((function () {
i = n, e.apply(t, o)
}), r)) : (i = s, e.apply(t, o))
}
},
escapeRegex: function (e) {
return e.replace(h, "\\$1")
}
};
var $ = function (e, t, i) {
e[t] !== n && (e[i] = e[t])
};
function A(e) {
$(e, "ordering", "bSort"), $(e, "orderMulti", "bSortMulti"), $(e, "orderClasses", "bSortClasses"), $(e, "orderCellsTop", "bSortCellsTop"), $(e, "order", "aaSorting"), $(e, "orderFixed", "aaSortingFixed"), $(e, "paging", "bPaginate"), $(e, "pagingType", "sPaginationType"), $(e, "pageLength", "iDisplayLength"), $(e, "searching", "bFilter"), "boolean" == typeof e.sScrollX && (e.sScrollX = e.sScrollX ? "100%" : ""), "boolean" == typeof e.scrollX && (e.scrollX = e.scrollX ? "100%" : "");
var t = e.aoSearchCols;
if (t)
for (var i = 0, n = t.length; i < n; i++) t[i] && I(l.models.oSearch, t[i])
}
function M(e) {
$(e, "orderable", "bSortable"), $(e, "orderData", "aDataSort"), $(e, "orderSequence", "asSorting"), $(e, "orderDataType", "sortDataType");
var t = e.aDataSort;
"number" != typeof t || Array.isArray(t) || (e.aDataSort = [t])
}
function P(i) {
if (!l.__browser) {
var n = {};
l.__browser = n;
var a = e("<div/>").css({
position: "fixed",
top: 0,
left: -1 * e(t).scrollLeft(),
height: 1,
width: 1,
overflow: "hidden"
}).append(e("<div/>").css({
position: "absolute",
top: 1,
left: 1,
width: 100,
overflow: "scroll"
}).append(e("<div/>").css({
width: "100%",
height: 10
}))).appendTo("body"),
r = a.children(),
s = r.children();
n.barWidth = r[0].offsetWidth - r[0].clientWidth, n.bScrollOversize = 100 === s[0].offsetWidth && 100 !== r[0].clientWidth, n.bScrollbarLeft = 1 !== Math.round(s.offset().left), n.bBounding = !!a[0].getBoundingClientRect().width, a.remove()
}
e.extend(i.oBrowser, l.__browser), i.oScroll.iBarWidth = l.__browser.barWidth
}
function F(e, t, i, a, r, s) {
var o, l = a,
d = !1;
for (i !== n && (o = i, d = !0); l !== r;) e.hasOwnProperty(l) && (o = d ? t(o, e[l], l, e) : e[l], d = !0, l += s);
return o
}
function N(t, n) {
var a = l.defaults.column,
r = t.aoColumns.length,
s = e.extend({}, l.models.oColumn, a, {
nTh: n || i.createElement("th"),
sTitle: a.sTitle ? a.sTitle : n ? n.innerHTML : "",
aDataSort: a.aDataSort ? a.aDataSort : [r],
mData: a.mData ? a.mData : r,
idx: r
});
t.aoColumns.push(s);
var o = t.aoPreSearchCols;
o[r] = e.extend({}, l.models.oSearch, o[r]), R(t, r, e(n).data())
}
function R(t, i, a) {
var r = t.aoColumns[i],
s = t.oClasses,
o = e(r.nTh);
if (!r.sWidthOrig) {
r.sWidthOrig = o.attr("width") || null;
var d = (o.attr("style") || "").match(/width:\s*(\d+[pxem%]+)/);
d && (r.sWidthOrig = d[1])
}
a !== n && null !== a && (M(a), I(l.defaults.column, a, !0), a.mDataProp === n || a.mData || (a.mData = a.mDataProp), a.sType && (r._sManualType = a.sType), a.className && !a.sClass && (a.sClass = a.className), a.sClass && o.addClass(a.sClass), e.extend(r, a), dt(r, a, "sWidth", "sWidthOrig"), a.iDataSort !== n && (r.aDataSort = [a.iDataSort]), dt(r, a, "aDataSort"));
var c = r.mData,
u = Z(c),
p = r.mRender ? Z(r.mRender) : null,
h = function (e) {
return "string" == typeof e && -1 !== e.indexOf("@")
};
r._bAttrSrc = e.isPlainObject(c) && (h(c.sort) || h(c.type) || h(c.filter)), r._setter = null, r.fnGetData = function (e, t, i) {
var a = u(e, t, n, i);
return p && t ? p(a, t, e, i) : a
}, r.fnSetData = function (e, t, i) {
return Q(c)(e, t, i)
}, "number" != typeof c && (t._rowReadObject = !0), t.oFeatures.bSort || (r.bSortable = !1, o.addClass(s.sSortableNone));
var f = -1 !== e.inArray("asc", r.asSorting),
g = -1 !== e.inArray("desc", r.asSorting);
r.bSortable && (f || g) ? f && !g ? (r.sSortingClass = s.sSortableAsc, r.sSortingClassJUI = s.sSortJUIAscAllowed) : !f && g ? (r.sSortingClass = s.sSortableDesc, r.sSortingClassJUI = s.sSortJUIDescAllowed) : (r.sSortingClass = s.sSortable, r.sSortingClassJUI = s.sSortJUI) : (r.sSortingClass = s.sSortableNone, r.sSortingClassJUI = "")
}
function O(e) {
if (!1 !== e.oFeatures.bAutoWidth) {
var t = e.aoColumns;
qe(e);
for (var i = 0, n = t.length; i < n; i++) t[i].nTh.style.width = t[i].sWidth
}
var a = e.oScroll;
"" === a.sY && "" === a.sX || We(e), ht(e, null, "column-sizing", [e])
}
function L(e, t) {
var i = H(e, "bVisible");
return "number" == typeof i[t] ? i[t] : null
}
function z(t, i) {
var n = H(t, "bVisible"),
a = e.inArray(i, n);
return -1 !== a ? a : null
}
function j(t) {
var i = 0;
return e.each(t.aoColumns, (function (t, n) {
n.bVisible && "none" !== e(n.nTh).css("display") && i++
})), i
}
function H(t, i) {
var n = [];
return e.map(t.aoColumns, (function (e, t) {
e[i] && n.push(t)
})), n
}
function B(e) {
var t, i, a, r, s, o, d, c, u, p = e.aoColumns,
h = e.aoData,
f = l.ext.type.detect;
for (t = 0, i = p.length; t < i; t++)
if (u = [], !(d = p[t]).sType && d._sManualType) d.sType = d._sManualType;
else if (!d.sType) {
for (a = 0, r = f.length; a < r; a++) {
for (s = 0, o = h.length; s < o && (u[s] === n && (u[s] = Y(e, s, t, "type")), (c = f[a](u[s], e)) || a === f.length - 1) && "html" !== c; s++);
if (c) {
d.sType = c;
break
}
}
d.sType || (d.sType = "string")
}
}
function W(t, i, a, r) {
var s, o, l, d, c, u, p, h = t.aoColumns;
if (i)
for (s = i.length - 1; s >= 0; s--) {
var f = (p = i[s]).targets !== n ? p.targets : p.aTargets;
for (Array.isArray(f) || (f = [f]), l = 0, d = f.length; l < d; l++)
if ("number" == typeof f[l] && f[l] >= 0) {
for (; h.length <= f[l];) N(t);
r(f[l], p)
} else if ("number" == typeof f[l] && f[l] < 0) r(h.length + f[l], p);
else if ("string" == typeof f[l])
for (c = 0, u = h.length; c < u; c++)("_all" == f[l] || e(h[c].nTh).hasClass(f[l])) && r(c, p)
}
if (a)
for (s = 0, o = a.length; s < o; s++) r(s, a[s])
}
function U(t, i, a, r) {
var s = t.aoData.length,
o = e.extend(!0, {}, l.models.oRow, {
src: a ? "dom" : "data",
idx: s
});
o._aData = i, t.aoData.push(o);
for (var d = t.aoColumns, c = 0, u = d.length; c < u; c++) d[c].sType = null;
t.aiDisplayMaster.push(s);
var p = t.rowIdFn(i);
return p !== n && (t.aIds[p] = o), !a && t.oFeatures.bDeferRender || re(t, s, a, r), s
}
function V(t, i) {
var n;
return i instanceof e || (i = e(i)), i.map((function (e, i) {
return n = ae(t, i), U(t, n.data, i, n.cells)
}))
}
function q(t, i, n) {
return e.inArray(n, t.aoData[i].anCells)
}
function Y(e, t, i, a) {
var r = e.iDraw,
s = e.aoColumns[i],
o = e.aoData[t]._aData,
l = s.sDefaultContent,
d = s.fnGetData(o, a, {
settings: e,
row: t,
col: i
});
if (d === n) return e.iDrawError != r && null === l && (lt(e, 0, "Requested unknown parameter " + ("function" == typeof s.mData ? "{function}" : "'" + s.mData + "'") + " for row " + t + ", column " + i, 4), e.iDrawError = r), l;
if (d !== o && null !== d || null === l || a === n) {
if ("function" == typeof d) return d.call(o)
} else d = l;
return null === d && "display" == a ? "" : d
}
function X(e, t, i, n) {
var a = e.aoColumns[i],
r = e.aoData[t]._aData;
a.fnSetData(r, n, {
settings: e,
row: t,
col: i
})
}
var G = /\[.*?\]$/,
J = /\(\)$/;
function K(t) {
return e.map(t.match(/(\\.|[^\.])+/g) || [""], (function (e) {
return e.replace(/\\\./g, ".")
}))
}
function Z(t) {
if (e.isPlainObject(t)) {
var i = {};
return e.each(t, (function (e, t) {
t && (i[e] = Z(t))
})),
function (e, t, a, r) {
var s = i[t] || i._;
return s !== n ? s(e, t, a, r) : e
}
}
if (null === t) return function (e) {
return e
};
if ("function" == typeof t) return function (e, i, n, a) {
return t(e, i, n, a)
};
if ("string" != typeof t || -1 === t.indexOf(".") && -1 === t.indexOf("[") && -1 === t.indexOf("(")) return function (e, i) {
return e[t]
};
var a = function (e, t, i) {
var r, s, o, l;
if ("" !== i)
for (var d = K(i), c = 0, u = d.length; c < u; c++) {
if (r = d[c].match(G), s = d[c].match(J), r) {
if (d[c] = d[c].replace(G, ""), "" !== d[c] && (e = e[d[c]]), o = [], d.splice(0, c + 1), l = d.join("."), Array.isArray(e))
for (var p = 0, h = e.length; p < h; p++) o.push(a(e[p], t, l));
var f = r[0].substring(1, r[0].length - 1);
e = "" === f ? o : o.join(f);
break
}
if (s) d[c] = d[c].replace(J, ""), e = e[d[c]]();
else {
if (null === e || e[d[c]] === n) return n;
e = e[d[c]]
}
}
return e
};
return function (e, i) {
return a(e, i, t)
}
}
function Q(t) {
if (e.isPlainObject(t)) return Q(t._);
if (null === t) return function () { };
if ("function" == typeof t) return function (e, i, n) {
t(e, "set", i, n)
};
if ("string" != typeof t || -1 === t.indexOf(".") && -1 === t.indexOf("[") && -1 === t.indexOf("(")) return function (e, i) {
e[t] = i
};
var i = function (e, t, a) {
for (var r, s, o, l, d, c = K(a), u = c[c.length - 1], p = 0, h = c.length - 1; p < h; p++) {
if ("__proto__" === c[p] || "constructor" === c[p]) throw new Error("Cannot set prototype values");
if (s = c[p].match(G), o = c[p].match(J), s) {
if (c[p] = c[p].replace(G, ""), e[c[p]] = [], (r = c.slice()).splice(0, p + 1), d = r.join("."), Array.isArray(t))
for (var f = 0, g = t.length; f < g; f++) i(l = {}, t[f], d), e[c[p]].push(l);
else e[c[p]] = t;
return
}
o && (c[p] = c[p].replace(J, ""), e = e[c[p]](t)), null !== e[c[p]] && e[c[p]] !== n || (e[c[p]] = {}), e = e[c[p]]
}
u.match(J) ? e = e[u.replace(J, "")](t) : e[u.replace(G, "")] = t
};
return function (e, n) {
return i(e, n, t)
}
}
function ee(e) {
return w(e.aoData, "_aData")
}
function te(e) {
e.aoData.length = 0, e.aiDisplayMaster.length = 0, e.aiDisplay.length = 0, e.aIds = {}
}
function ie(e, t, i) {
for (var a = -1, r = 0, s = e.length; r < s; r++) e[r] == t ? a = r : e[r] > t && e[r]--; - 1 != a && i === n && e.splice(a, 1)
}
function ne(e, t, i, a) {
var r, s, o = e.aoData[t],
l = function (i, n) {
for (; i.childNodes.length;) i.removeChild(i.firstChild);
i.innerHTML = Y(e, t, n, "display")
};
if ("dom" !== i && (i && "auto" !== i || "dom" !== o.src)) {
var d = o.anCells;
if (d)
if (a !== n) l(d[a], a);
else
for (r = 0, s = d.length; r < s; r++) l(d[r], r)
} else o._aData = ae(e, o, a, a === n ? n : o._aData).data;
o._aSortData = null, o._aFilterData = null;
var c = e.aoColumns;
if (a !== n) c[a].sType = null;
else {
for (r = 0, s = c.length; r < s; r++) c[r].sType = null;
se(e, o)
}
}
function ae(e, t, i, a) {
var r, s, o, l = [],
d = t.firstChild,
c = 0,
u = e.aoColumns,
p = e._rowReadObject;
a = a !== n ? a : p ? {} : [];
var h = function (e, t) {
if ("string" == typeof e) {
var i = e.indexOf("@");
if (-1 !== i) {
var n = e.substring(i + 1);
Q(e)(a, t.getAttribute(n))
}
}
},
f = function (e) {
i !== n && i !== c || (s = u[c], o = e.innerHTML.trim(), s && s._bAttrSrc ? (Q(s.mData._)(a, o), h(s.mData.sort, e), h(s.mData.type, e), h(s.mData.filter, e)) : p ? (s._setter || (s._setter = Q(s.mData)), s._setter(a, o)) : a[c] = o);
c++
};
if (d)
for (; d;) "TD" != (r = d.nodeName.toUpperCase()) && "TH" != r || (f(d), l.push(d)), d = d.nextSibling;
else
for (var g = 0, m = (l = t.anCells).length; g < m; g++) f(l[g]);
var v = t.firstChild ? t : t.nTr;
if (v) {
var b = v.getAttribute("id");
b && Q(e.rowId)(a, b)
}
return {
data: a,
cells: l
}
}
function re(t, n, a, r) {
var s, o, l, d, c, u, p = t.aoData[n],
h = p._aData,
f = [];
if (null === p.nTr) {
for (s = a || i.createElement("tr"), p.nTr = s, p.anCells = f, s._DT_RowIndex = n, se(t, p), d = 0, c = t.aoColumns.length; d < c; d++) l = t.aoColumns[d], (o = (u = !a) ? i.createElement(l.sCellType) : r[d])._DT_CellIndex = {
row: n,
column: d
}, f.push(o), !u && (!l.mRender && l.mData === d || e.isPlainObject(l.mData) && l.mData._ === d + ".display") || (o.innerHTML = Y(t, n, d, "display")), l.sClass && (o.className += " " + l.sClass), l.bVisible && !a ? s.appendChild(o) : !l.bVisible && a && o.parentNode.removeChild(o), l.fnCreatedCell && l.fnCreatedCell.call(t.oInstance, o, Y(t, n, d), h, n, d);
ht(t, "aoRowCreatedCallback", null, [s, h, n, f])
}
}
function se(t, i) {
var n = i.nTr,
a = i._aData;
if (n) {
var r = t.rowIdFn(a);
if (r && (n.id = r), a.DT_RowClass) {
var s = a.DT_RowClass.split(" ");
i.__rowc = i.__rowc ? T(i.__rowc.concat(s)) : s, e(n).removeClass(i.__rowc.join(" ")).addClass(a.DT_RowClass)
}
a.DT_RowAttr && e(n).attr(a.DT_RowAttr), a.DT_RowData && e(n).data(a.DT_RowData)
}
}
function oe(t) {
var i, n, a, r, s, o = t.nTHead,
l = t.nTFoot,
d = 0 === e("th, td", o).length,
c = t.oClasses,
u = t.aoColumns;
for (d && (r = e("<tr/>").appendTo(o)), i = 0, n = u.length; i < n; i++) s = u[i], a = e(s.nTh).addClass(s.sClass), d && a.appendTo(r), t.oFeatures.bSort && (a.addClass(s.sSortingClass), !1 !== s.bSortable && (a.attr("tabindex", t.iTabIndex).attr("aria-controls", t.sTableId), it(t, s.nTh, i))), s.sTitle != a[0].innerHTML && a.html(s.sTitle), gt(t, "header")(t, a, s, c);
if (d && pe(t.aoHeader, o), e(o).children("tr").attr("role", "row"), e(o).children("tr").children("th, td").addClass(c.sHeaderTH), e(l).children("tr").children("th, td").addClass(c.sFooterTH), null !== l) {
var p = t.aoFooter[0];
for (i = 0, n = p.length; i < n; i++)(s = u[i]).nTf = p[i].cell, s.sClass && e(s.nTf).addClass(s.sClass)
}
}
function le(t, i, a) {
var r, s, o, l, d, c, u, p, h, f = [],
g = [],
m = t.aoColumns.length;
if (i) {
for (a === n && (a = !1), r = 0, s = i.length; r < s; r++) {
for (f[r] = i[r].slice(), f[r].nTr = i[r].nTr, o = m - 1; o >= 0; o--) t.aoColumns[o].bVisible || a || f[r].splice(o, 1);
g.push([])
}
for (r = 0, s = f.length; r < s; r++) {
if (u = f[r].nTr)
for (; c = u.firstChild;) u.removeChild(c);
for (o = 0, l = f[r].length; o < l; o++)
if (p = 1, h = 1, g[r][o] === n) {
for (u.appendChild(f[r][o].cell), g[r][o] = 1; f[r + p] !== n && f[r][o].cell == f[r + p][o].cell;) g[r + p][o] = 1, p++;
for (; f[r][o + h] !== n && f[r][o].cell == f[r][o + h].cell;) {
for (d = 0; d < p; d++) g[r + d][o + h] = 1;
h++
}
e(f[r][o].cell).attr("rowspan", p).attr("colspan", h)
}
}
}
}
function de(t) {
var i = ht(t, "aoPreDrawCallback", "preDraw", [t]);
if (-1 === e.inArray(!1, i)) {
var a = [],
r = 0,
s = t.asStripeClasses,
o = s.length,
l = (t.aoOpenRows.length, t.oLanguage),
d = t.iInitDisplayStart,
c = "ssp" == mt(t),
u = t.aiDisplay;
t.bDrawing = !0, d !== n && -1 !== d && (t._iDisplayStart = c ? d : d >= t.fnRecordsDisplay() ? 0 : d, t.iInitDisplayStart = -1);
var p = t._iDisplayStart,
h = t.fnDisplayEnd();
if (t.bDeferLoading) t.bDeferLoading = !1, t.iDraw++, He(t, !1);
else if (c) {
if (!t.bDestroying && !ge(t)) return
} else t.iDraw++;
if (0 !== u.length)
for (var f = c ? 0 : p, g = c ? t.aoData.length : h, m = f; m < g; m++) {
var v = u[m],
b = t.aoData[v];
null === b.nTr && re(t, v);
var y = b.nTr;
if (0 !== o) {
var w = s[r % o];
b._sRowStripe != w && (e(y).removeClass(b._sRowStripe).addClass(w), b._sRowStripe = w)
}
ht(t, "aoRowCallback", null, [y, b._aData, r, m, v]), a.push(y), r++
} else {
var S = l.sZeroRecords;
1 == t.iDraw && "ajax" == mt(t) ? S = l.sLoadingRecords : l.sEmptyTable && 0 === t.fnRecordsTotal() && (S = l.sEmptyTable), a[0] = e("<tr/>", {
class: o ? s[0] : ""
}).append(e("<td />", {
valign: "top",
colSpan: j(t),
class: t.oClasses.sRowEmpty
}).html(S))[0]
}
ht(t, "aoHeaderCallback", "header", [e(t.nTHead).children("tr")[0], ee(t), p, h, u]), ht(t, "aoFooterCallback", "footer", [e(t.nTFoot).children("tr")[0], ee(t), p, h, u]);
var x = e(t.nTBody);
x.children().detach(), x.append(e(a)), ht(t, "aoDrawCallback", "draw", [t]), t.bSorted = !1, t.bFiltered = !1, t.bDrawing = !1
} else He(t, !1)
}
function ce(e, t) {
var i = e.oFeatures,
n = i.bSort,
a = i.bFilter;
n && Qe(e), a ? we(e, e.oPreviousSearch) : e.aiDisplay = e.aiDisplayMaster.slice(), !0 !== t && (e._iDisplayStart = 0), e._drawHold = t, de(e), e._drawHold = !1
}
function ue(t) {
var i = t.oClasses,
n = e(t.nTable),
a = e("<div/>").insertBefore(n),
r = t.oFeatures,
s = e("<div/>", {
id: t.sTableId + "_wrapper",
class: i.sWrapper + (t.nTFoot ? "" : " " + i.sNoFooter)
});
t.nHolding = a[0], t.nTableWrapper = s[0], t.nTableReinsertBefore = t.nTable.nextSibling;
for (var o, d, c, u, p, h, f = t.sDom.split(""), g = 0; g < f.length; g++) {
if (o = null, "<" == (d = f[g])) {
if (c = e("<div/>")[0], "'" == (u = f[g + 1]) || '"' == u) {
for (p = "", h = 2; f[g + h] != u;) p += f[g + h], h++;
if ("H" == p ? p = i.sJUIHeader : "F" == p && (p = i.sJUIFooter), -1 != p.indexOf(".")) {
var m = p.split(".");
c.id = m[0].substr(1, m[0].length - 1), c.className = m[1]
} else "#" == p.charAt(0) ? c.id = p.substr(1, p.length - 1) : c.className = p;
g += h
}
s.append(c), s = e(c)
} else if (">" == d) s = s.parent();
else if ("l" == d && r.bPaginate && r.bLengthChange) o = Oe(t);
else if ("f" == d && r.bFilter) o = ye(t);
else if ("r" == d && r.bProcessing) o = je(t);
else if ("t" == d) o = Be(t);
else if ("i" == d && r.bInfo) o = Ae(t);
else if ("p" == d && r.bPaginate) o = Le(t);
else if (0 !== l.ext.feature.length)
for (var v = l.ext.feature, b = 0, y = v.length; b < y; b++)
if (d == v[b].cFeature) {
o = v[b].fnInit(t);
break
} if (o) {
var w = t.aanFeatures;
w[d] || (w[d] = []), w[d].push(o), s.append(o)
}
}
a.replaceWith(s), t.nHolding = null
}
function pe(t, i) {
var n, a, r, s, o, l, d, c, u, p, h = e(i).children("tr"),
f = function (e, t, i) {
for (var n = e[t]; n[i];) i++;
return i
};
for (t.splice(0, t.length), r = 0, l = h.length; r < l; r++) t.push([]);
for (r = 0, l = h.length; r < l; r++)
for (0, a = (n = h[r]).firstChild; a;) {
if ("TD" == a.nodeName.toUpperCase() || "TH" == a.nodeName.toUpperCase())
for (c = (c = 1 * a.getAttribute("colspan")) && 0 !== c && 1 !== c ? c : 1, u = (u = 1 * a.getAttribute("rowspan")) && 0 !== u && 1 !== u ? u : 1, d = f(t, r, 0), p = 1 === c, o = 0; o < c; o++)
for (s = 0; s < u; s++) t[r + s][d + o] = {
cell: a,
unique: p
}, t[r + s].nTr = n;
a = a.nextSibling
}
}
function he(e, t, i) {
var n = [];
i || (i = e.aoHeader, t && pe(i = [], t));
for (var a = 0, r = i.length; a < r; a++)
for (var s = 0, o = i[a].length; s < o; s++) !i[a][s].unique || n[s] && e.bSortCellsTop || (n[s] = i[a][s].cell);
return n
}
function fe(t, i, n) {
if (ht(t, "aoServerParams", "serverParams", [i]), i && Array.isArray(i)) {
var a = {},
r = /(.*?)\[\]$/;
e.each(i, (function (e, t) {
var i = t.name.match(r);
if (i) {
var n = i[0];
a[n] || (a[n] = []), a[n].push(t.value)
} else a[t.name] = t.value
})), i = a
}
var s, o = t.ajax,
l = t.oInstance,
d = function (e) {
ht(t, null, "xhr", [t, e, t.jqXHR]), n(e)
};
if (e.isPlainObject(o) && o.data) {
var c = "function" == typeof (s = o.data) ? s(i, t) : s;
i = "function" == typeof s && c ? c : e.extend(!0, i, c), delete o.data
}
var u = {
data: i,
success: function (e) {
var i = e.error || e.sError;
i && lt(t, 0, i), t.json = e, d(e)
},
dataType: "json",
cache: !1,
type: t.sServerMethod,
error: function (i, n, a) {
var r = ht(t, null, "xhr", [t, null, t.jqXHR]); - 1 === e.inArray(!0, r) && ("parsererror" == n ? lt(t, 0, "Invalid JSON response", 1) : 4 === i.readyState && lt(t, 0, "Ajax error", 7)), He(t, !1)
}
};
t.oAjaxData = i, ht(t, null, "preXhr", [t, i]), t.fnServerData ? t.fnServerData.call(l, t.sAjaxSource, e.map(i, (function (e, t) {
return {
name: t,
value: e
}
})), d, t) : t.sAjaxSource || "string" == typeof o ? t.jqXHR = e.ajax(e.extend(u, {
url: o || t.sAjaxSource
})) : "function" == typeof o ? t.jqXHR = o.call(l, i, d, t) : (t.jqXHR = e.ajax(e.extend(u, o)), o.data = s)
}
function ge(e) {
return !e.bAjaxDataGet || (e.iDraw++, He(e, !0), fe(e, me(e), (function (t) {
ve(e, t)
})), !1)
}
function me(t) {
var i, n, a, r, s = t.aoColumns,
o = s.length,
d = t.oFeatures,
c = t.oPreviousSearch,
u = t.aoPreSearchCols,
p = [],
h = Ze(t),
f = t._iDisplayStart,
g = !1 !== d.bPaginate ? t._iDisplayLength : -1,
m = function (e, t) {
p.push({
name: e,
value: t
})
};
m("sEcho", t.iDraw), m("iColumns", o), m("sColumns", w(s, "sName").join(",")), m("iDisplayStart", f), m("iDisplayLength", g);
var v = {
draw: t.iDraw,
columns: [],
order: [],
start: f,
length: g,
search: {
value: c.sSearch,
regex: c.bRegex
}
};
for (i = 0; i < o; i++) a = s[i], r = u[i], n = "function" == typeof a.mData ? "function" : a.mData, v.columns.push({
data: n,
name: a.sName,
searchable: a.bSearchable,
orderable: a.bSortable,
search: {
value: r.sSearch,
regex: r.bRegex
}
}), m("mDataProp_" + i, n), d.bFilter && (m("sSearch_" + i, r.sSearch), m("bRegex_" + i, r.bRegex), m("bSearchable_" + i, a.bSearchable)), d.bSort && m("bSortable_" + i, a.bSortable);
d.bFilter && (m("sSearch", c.sSearch), m("bRegex", c.bRegex)), d.bSort && (e.each(h, (function (e, t) {
v.order.push({
column: t.col,
dir: t.dir
}), m("iSortCol_" + e, t.col), m("sSortDir_" + e, t.dir)
})), m("iSortingCols", h.length));
var b = l.ext.legacy.ajax;
return null === b ? t.sAjaxSource ? p : v : b ? p : v
}
function ve(e, t) {
var i = function (e, i) {
return t[e] !== n ? t[e] : t[i]
},
a = be(e, t),
r = i("sEcho", "draw"),
s = i("iTotalRecords", "recordsTotal"),
o = i("iTotalDisplayRecords", "recordsFiltered");
if (r !== n) {
if (1 * r < e.iDraw) return;
e.iDraw = 1 * r
}
te(e), e._iRecordsTotal = parseInt(s, 10), e._iRecordsDisplay = parseInt(o, 10);
for (var l = 0, d = a.length; l < d; l++) U(e, a[l]);
e.aiDisplay = e.aiDisplayMaster.slice(), e.bAjaxDataGet = !1, de(e), e._bInitComplete || Ne(e, t), e.bAjaxDataGet = !0, He(e, !1)
}
function be(t, i) {
var a = e.isPlainObject(t.ajax) && t.ajax.dataSrc !== n ? t.ajax.dataSrc : t.sAjaxDataProp;
return "data" === a ? i.aaData || i[a] : "" !== a ? Z(a)(i) : i
}
function ye(t) {
var n = t.oClasses,
a = t.sTableId,
r = t.oLanguage,
s = t.oPreviousSearch,
o = t.aanFeatures,
l = '<input type="search" class="' + n.sFilterInput + '"/>',
d = r.sSearch;
d = d.match(/_INPUT_/) ? d.replace("_INPUT_", l) : d + l;
var c = e("<div/>", {
id: o.f ? null : a + "_filter",
class: n.sFilter
}).append(e("<label/>").append(d)),
u = function () {
o.f;
var e = this.value ? this.value : "";
e != s.sSearch && (we(t, {
sSearch: e,
bRegex: s.bRegex,
bSmart: s.bSmart,
bCaseInsensitive: s.bCaseInsensitive
}), t._iDisplayStart = 0, de(t))
},
p = null !== t.searchDelay ? t.searchDelay : "ssp" === mt(t) ? 400 : 0,
h = e("input", c).val(s.sSearch).attr("placeholder", r.sSearchPlaceholder).on("keyup.DT search.DT input.DT paste.DT cut.DT", p ? Ye(u, p) : u).on("mouseup", (function (e) {
setTimeout((function () {
u.call(h[0])
}), 10)
})).on("keypress.DT", (function (e) {
if (13 == e.keyCode) return !1
})).attr("aria-controls", a);
return e(t.nTable).on("search.dt.DT", (function (e, n) {
if (t === n) try {
h[0] !== i.activeElement && h.val(s.sSearch)
} catch (e) { }
})), c[0]
}
function we(e, t, i) {
var a = e.oPreviousSearch,
r = e.aoPreSearchCols,
s = function (e) {
a.sSearch = e.sSearch, a.bRegex = e.bRegex, a.bSmart = e.bSmart, a.bCaseInsensitive = e.bCaseInsensitive
},
o = function (e) {
return e.bEscapeRegex !== n ? !e.bEscapeRegex : e.bRegex
};
if (B(e), "ssp" != mt(e)) {
_e(e, t.sSearch, i, o(t), t.bSmart, t.bCaseInsensitive), s(t);
for (var l = 0; l < r.length; l++) xe(e, r[l].sSearch, l, o(r[l]), r[l].bSmart, r[l].bCaseInsensitive);
Se(e)
} else s(t);
e.bFiltered = !0, ht(e, null, "search", [e])
}
function Se(t) {
for (var i, n, a = l.ext.search, r = t.aiDisplay, s = 0, o = a.length; s < o; s++) {
for (var d = [], c = 0, u = r.length; c < u; c++) n = r[c], i = t.aoData[n], a[s](t, i._aFilterData, n, i._aData, c) && d.push(n);
r.length = 0, e.merge(r, d)
}
}
function xe(e, t, i, n, a, r) {
if ("" !== t) {
for (var s, o = [], l = e.aiDisplay, d = Ce(t, n, a, r), c = 0; c < l.length; c++) s = e.aoData[l[c]]._aFilterData[i], d.test(s) && o.push(l[c]);
e.aiDisplay = o
}
}
function _e(e, t, i, n, a, r) {
var s, o, d, c = Ce(t, n, a, r),
u = e.oPreviousSearch.sSearch,
p = e.aiDisplayMaster,
h = [];
if (0 !== l.ext.search.length && (i = !0), o = Ie(e), t.length <= 0) e.aiDisplay = p.slice();
else {
for ((o || i || n || u.length > t.length || 0 !== t.indexOf(u) || e.bSorted) && (e.aiDisplay = p.slice()), s = e.aiDisplay, d = 0; d < s.length; d++) c.test(e.aoData[s[d]]._sFilterRow) && h.push(s[d]);
e.aiDisplay = h
}
}
function Ce(t, i, n, a) {
if (t = i ? t : Te(t), n) {
var r = e.map(t.match(/"[^"]+"|[^ ]+/g) || [""], (function (e) {
if ('"' === e.charAt(0)) {
var t = e.match(/^"(.*)"$/);
e = t ? t[1] : e
}
return e.replace('"', "")
}));
t = "^(?=.*?" + r.join(")(?=.*?") + ").*$"
}
return new RegExp(t, a ? "i" : "")
}
var Te = l.util.escapeRegex,
De = e("<div>")[0],
ke = De.textContent !== n;
function Ie(e) {
var t, i, n, a, r, s, o, d, c = e.aoColumns,
u = l.ext.type.search,
p = !1;
for (i = 0, a = e.aoData.length; i < a; i++)
if (!(d = e.aoData[i])._aFilterData) {
for (s = [], n = 0, r = c.length; n < r; n++)(t = c[n]).bSearchable ? (o = Y(e, i, n, "filter"), u[t.sType] && (o = u[t.sType](o)), null === o && (o = ""), "string" != typeof o && o.toString && (o = o.toString())) : o = "", o.indexOf && -1 !== o.indexOf("&") && (De.innerHTML = o, o = ke ? De.textContent : De.innerText), o.replace && (o = o.replace(/[\r\n\u2028]/g, "")), s.push(o);
d._aFilterData = s, d._sFilterRow = s.join(" "), p = !0
} return p
}
function Ee(e) {
return {
search: e.sSearch,
smart: e.bSmart,
regex: e.bRegex,
caseInsensitive: e.bCaseInsensitive
}
}
function $e(e) {
return {
sSearch: e.search,
bSmart: e.smart,
bRegex: e.regex,
bCaseInsensitive: e.caseInsensitive
}
}
function Ae(t) {
var i = t.sTableId,
n = t.aanFeatures.i,
a = e("<div/>", {
class: t.oClasses.sInfo,
id: n ? null : i + "_info"
});
return n || (t.aoDrawCallback.push({
fn: Me,
sName: "information"
}), a.attr("role", "status").attr("aria-live", "polite"), e(t.nTable).attr("aria-describedby", i + "_info")), a[0]
}
function Me(t) {
var i = t.aanFeatures.i;
if (0 !== i.length) {
var n = t.oLanguage,
a = t._iDisplayStart + 1,
r = t.fnDisplayEnd(),
s = t.fnRecordsTotal(),
o = t.fnRecordsDisplay(),
l = o ? n.sInfo : n.sInfoEmpty;
o !== s && (l += " " + n.sInfoFiltered), l = Pe(t, l += n.sInfoPostFix);
var d = n.fnInfoCallback;
null !== d && (l = d.call(t.oInstance, t, a, r, s, o, l)), e(i).html(l)
}
}
function Pe(e, t) {
var i = e.fnFormatNumber,
n = e._iDisplayStart + 1,
a = e._iDisplayLength,
r = e.fnRecordsDisplay(),
s = -1 === a;
return t.replace(/_START_/g, i.call(e, n)).replace(/_END_/g, i.call(e, e.fnDisplayEnd())).replace(/_MAX_/g, i.call(e, e.fnRecordsTotal())).replace(/_TOTAL_/g, i.call(e, r)).replace(/_PAGE_/g, i.call(e, s ? 1 : Math.ceil(n / a))).replace(/_PAGES_/g, i.call(e, s ? 1 : Math.ceil(r / a)))
}
function Fe(e) {
var t, i, n, a = e.iInitDisplayStart,
r = e.aoColumns,
s = e.oFeatures,
o = e.bDeferLoading;
if (e.bInitialised) {
for (ue(e), oe(e), le(e, e.aoHeader), le(e, e.aoFooter), He(e, !0), s.bAutoWidth && qe(e), t = 0, i = r.length; t < i; t++)(n = r[t]).sWidth && (n.nTh.style.width = Ke(n.sWidth));
ht(e, null, "preInit", [e]), ce(e);
var l = mt(e);
("ssp" != l || o) && ("ajax" == l ? fe(e, [], (function (i) {
var n = be(e, i);
for (t = 0; t < n.length; t++) U(e, n[t]);
e.iInitDisplayStart = a, ce(e), He(e, !1), Ne(e, i)
})) : (He(e, !1), Ne(e)))
} else setTimeout((function () {
Fe(e)
}), 200)
}
function Ne(e, t) {
e._bInitComplete = !0, (t || e.oInit.aaData) && O(e), ht(e, null, "plugin-init", [e, t]), ht(e, "aoInitComplete", "init", [e, t])
}
function Re(e, t) {
var i = parseInt(t, 10);
e._iDisplayLength = i, ft(e), ht(e, null, "length", [e, i])
}
function Oe(t) {
for (var i = t.oClasses, n = t.sTableId, a = t.aLengthMenu, r = Array.isArray(a[0]), s = r ? a[0] : a, o = r ? a[1] : a, l = e("<select/>", {
name: n + "_length",
"aria-controls": n,
class: i.sLengthSelect
}), d = 0, c = s.length; d < c; d++) l[0][d] = new Option("number" == typeof o[d] ? t.fnFormatNumber(o[d]) : o[d], s[d]);
var u = e("<div><label/></div>").addClass(i.sLength);
return t.aanFeatures.l || (u[0].id = n + "_length"), u.children().append(t.oLanguage.sLengthMenu.replace("_MENU_", l[0].outerHTML)), e("select", u).val(t._iDisplayLength).on("change.DT", (function (i) {
Re(t, e(this).val()), de(t)
})), e(t.nTable).on("length.dt.DT", (function (i, n, a) {
t === n && e("select", u).val(a)
})), u[0]
}
function Le(t) {
var i = t.sPaginationType,
n = l.ext.pager[i],
a = "function" == typeof n,
r = function (e) {
de(e)
},
s = e("<div/>").addClass(t.oClasses.sPaging + i)[0],
o = t.aanFeatures;
return a || n.fnInit(t, s, r), o.p || (s.id = t.sTableId + "_paginate", t.aoDrawCallback.push({
fn: function (e) {
if (a) {
var t, i, s = e._iDisplayStart,
l = e._iDisplayLength,
d = e.fnRecordsDisplay(),
c = -1 === l,
u = c ? 0 : Math.ceil(s / l),
p = c ? 1 : Math.ceil(d / l),
h = n(u, p);
for (t = 0, i = o.p.length; t < i; t++) gt(e, "pageButton")(e, o.p[t], t, h, u, p)
} else n.fnUpdate(e, r)
},
sName: "pagination"
})), s
}
function ze(e, t, i) {
var n = e._iDisplayStart,
a = e._iDisplayLength,
r = e.fnRecordsDisplay();
0 === r || -1 === a ? n = 0 : "number" == typeof t ? (n = t * a) > r && (n = 0) : "first" == t ? n = 0 : "previous" == t ? (n = a >= 0 ? n - a : 0) < 0 && (n = 0) : "next" == t ? n + a < r && (n += a) : "last" == t ? n = Math.floor((r - 1) / a) * a : lt(e, 0, "Unknown paging action: " + t, 5);
var s = e._iDisplayStart !== n;
return e._iDisplayStart = n, s && (ht(e, null, "page", [e]), i && de(e)), s
}
function je(t) {
return e("<div/>", {
id: t.aanFeatures.r ? null : t.sTableId + "_processing",
class: t.oClasses.sProcessing
}).html(t.oLanguage.sProcessing).insertBefore(t.nTable)[0]
}
function He(t, i) {
t.oFeatures.bProcessing && e(t.aanFeatures.r).css("display", i ? "block" : "none"), ht(t, null, "processing", [t, i])
}
function Be(t) {
var i = e(t.nTable);
i.attr("role", "grid");
var n = t.oScroll;
if ("" === n.sX && "" === n.sY) return t.nTable;
var a = n.sX,
r = n.sY,
s = t.oClasses,
o = i.children("caption"),
l = o.length ? o[0]._captionSide : null,
d = e(i[0].cloneNode(!1)),
c = e(i[0].cloneNode(!1)),
u = i.children("tfoot"),
p = "<div/>",
h = function (e) {
return e ? Ke(e) : null
};
u.length || (u = null);
var f = e(p, {
class: s.sScrollWrapper
}).append(e(p, {
class: s.sScrollHead
}).css({
overflow: "hidden",
position: "relative",
border: 0,
width: a ? h(a) : "100%"
}).append(e(p, {
class: s.sScrollHeadInner
}).css({
"box-sizing": "content-box",
width: n.sXInner || "100%"
}).append(d.removeAttr("id").css("margin-left", 0).append("top" === l ? o : null).append(i.children("thead"))))).append(e(p, {
class: s.sScrollBody
}).css({
position: "relative",
overflow: "auto",
width: h(a)
}).append(i));
u && f.append(e(p, {
class: s.sScrollFoot
}).css({
overflow: "hidden",
border: 0,
width: a ? h(a) : "100%"
}).append(e(p, {
class: s.sScrollFootInner
}).append(c.removeAttr("id").css("margin-left", 0).append("bottom" === l ? o : null).append(i.children("tfoot")))));
var g = f.children(),
m = g[0],
v = g[1],
b = u ? g[2] : null;
return a && e(v).on("scroll.DT", (function (e) {
var t = this.scrollLeft;
m.scrollLeft = t, u && (b.scrollLeft = t)
})), e(v).css("max-height", r), n.bCollapse || e(v).css("height", r), t.nScrollHead = m, t.nScrollBody = v, t.nScrollFoot = b, t.aoDrawCallback.push({
fn: We,
sName: "scrolling"
}), f[0]
}
function We(t) {
var i, a, r, s, o, l, d, c, u, p = t.oScroll,
h = p.sX,
f = p.sXInner,
g = p.sY,
m = p.iBarWidth,
v = e(t.nScrollHead),
b = v[0].style,
y = v.children("div"),
S = y[0].style,
x = y.children("table"),
_ = t.nScrollBody,
C = e(_),
T = _.style,
D = e(t.nScrollFoot).children("div"),
k = D.children("table"),
I = e(t.nTHead),
E = e(t.nTable),
$ = E[0],
A = $.style,
M = t.nTFoot ? e(t.nTFoot) : null,
P = t.oBrowser,
F = P.bScrollOversize,
N = w(t.aoColumns, "nTh"),
R = [],
z = [],
j = [],
H = [],
B = function (e) {
var t = e.style;
t.paddingTop = "0", t.paddingBottom = "0", t.borderTopWidth = "0", t.borderBottomWidth = "0", t.height = 0
},
W = _.scrollHeight > _.clientHeight;
if (t.scrollBarVis !== W && t.scrollBarVis !== n) return t.scrollBarVis = W, void O(t);
t.scrollBarVis = W, E.children("thead, tfoot").remove(), M && (l = M.clone().prependTo(E), a = M.find("tr"), s = l.find("tr")), o = I.clone().prependTo(E), i = I.find("tr"), r = o.find("tr"), o.find("th, td").removeAttr("tabindex"), h || (T.width = "100%", v[0].style.width = "100%"), e.each(he(t, o), (function (e, i) {
d = L(t, e), i.style.width = t.aoColumns[d].sWidth
})), M && Ue((function (e) {
e.style.width = ""
}), s), u = E.outerWidth(), "" === h ? (A.width = "100%", F && (E.find("tbody").height() > _.offsetHeight || "scroll" == C.css("overflow-y")) && (A.width = Ke(E.outerWidth() - m)), u = E.outerWidth()) : "" !== f && (A.width = Ke(f), u = E.outerWidth()), Ue(B, r), Ue((function (t) {
j.push(t.innerHTML), R.push(Ke(e(t).css("width")))
}), r), Ue((function (t, i) {
-1 !== e.inArray(t, N) && (t.style.width = R[i])
}), i), e(r).height(0), M && (Ue(B, s), Ue((function (t) {
H.push(t.innerHTML), z.push(Ke(e(t).css("width")))
}), s), Ue((function (e, t) {
e.style.width = z[t]
}), a), e(s).height(0)), Ue((function (e, t) {
e.innerHTML = '<div class="dataTables_sizing">' + j[t] + "</div>", e.childNodes[0].style.height = "0", e.childNodes[0].style.overflow = "hidden", e.style.width = R[t]
}), r), M && Ue((function (e, t) {
e.innerHTML = '<div class="dataTables_sizing">' + H[t] + "</div>", e.childNodes[0].style.height = "0", e.childNodes[0].style.overflow = "hidden", e.style.width = z[t]
}), s), E.outerWidth() < u ? (c = _.scrollHeight > _.offsetHeight || "scroll" == C.css("overflow-y") ? u + m : u, F && (_.scrollHeight > _.offsetHeight || "scroll" == C.css("overflow-y")) && (A.width = Ke(c - m)), "" !== h && "" === f || lt(t, 1, "Possible column misalignment", 6)) : c = "100%", T.width = Ke(c), b.width = Ke(c), M && (t.nScrollFoot.style.width = Ke(c)), g || F && (T.height = Ke($.offsetHeight + m));
var U = E.outerWidth();
x[0].style.width = Ke(U), S.width = Ke(U);
var V = E.height() > _.clientHeight || "scroll" == C.css("overflow-y"),
q = "padding" + (P.bScrollbarLeft ? "Left" : "Right");
S[q] = V ? m + "px" : "0px", M && (k[0].style.width = Ke(U), D[0].style.width = Ke(U), D[0].style[q] = V ? m + "px" : "0px"), E.children("colgroup").insertBefore(E.children("thead")), C.trigger("scroll"), !t.bSorted && !t.bFiltered || t._drawHold || (_.scrollTop = 0)
}
function Ue(e, t, i) {
for (var n, a, r = 0, s = 0, o = t.length; s < o;) {
for (n = t[s].firstChild, a = i ? i[s].firstChild : null; n;) 1 === n.nodeType && (i ? e(n, a, r) : e(n, r), r++), n = n.nextSibling, a = i ? a.nextSibling : null;
s++
}
}
var Ve = /<.*?>/g;
function qe(i) {
var n, a, r, s = i.nTable,
o = i.aoColumns,
l = i.oScroll,
d = l.sY,
c = l.sX,
u = l.sXInner,
p = o.length,
h = H(i, "bVisible"),
f = e("th", i.nTHead),
g = s.getAttribute("width"),
m = s.parentNode,
v = !1,
b = i.oBrowser,
y = b.bScrollOversize,
w = s.style.width;
for (w && -1 !== w.indexOf("%") && (g = w), n = 0; n < h.length; n++) null !== (a = o[h[n]]).sWidth && (a.sWidth = Xe(a.sWidthOrig, m), v = !0);
if (y || !v && !c && !d && p == j(i) && p == f.length)
for (n = 0; n < p; n++) {
var S = L(i, n);
null !== S && (o[S].sWidth = Ke(f.eq(n).width()))
} else {
var x = e(s).clone().css("visibility", "hidden").removeAttr("id");
x.find("tbody tr").remove();
var _ = e("<tr/>").appendTo(x.find("tbody"));
for (x.find("thead, tfoot").remove(), x.append(e(i.nTHead).clone()).append(e(i.nTFoot).clone()), x.find("tfoot th, tfoot td").css("width", ""), f = he(i, x.find("thead")[0]), n = 0; n < h.length; n++) a = o[h[n]], f[n].style.width = null !== a.sWidthOrig && "" !== a.sWidthOrig ? Ke(a.sWidthOrig) : "", a.sWidthOrig && c && e(f[n]).append(e("<div/>").css({
width: a.sWidthOrig,
margin: 0,
padding: 0,
border: 0,
height: 1
}));
if (i.aoData.length)
for (n = 0; n < h.length; n++) a = o[r = h[n]], e(Ge(i, r)).clone(!1).append(a.sContentPadding).appendTo(_);
e("[name]", x).removeAttr("name");
var C = e("<div/>").css(c || d ? {
position: "absolute",
top: 0,
left: 0,
height: 1,
right: 0,
overflow: "hidden"
} : {}).append(x).appendTo(m);
c && u ? x.width(u) : c ? (x.css("width", "auto"), x.removeAttr("width"), x.width() < m.clientWidth && g && x.width(m.clientWidth)) : d ? x.width(m.clientWidth) : g && x.width(g);
var T = 0;
for (n = 0; n < h.length; n++) {
var D = e(f[n]),
k = D.outerWidth() - D.width(),
I = b.bBounding ? Math.ceil(f[n].getBoundingClientRect().width) : D.outerWidth();
T += I, o[h[n]].sWidth = Ke(I - k)
}
s.style.width = Ke(T), C.remove()
}
if (g && (s.style.width = Ke(g)), (g || c) && !i._reszEvt) {
var E = function () {
e(t).on("resize.DT-" + i.sInstance, Ye((function () {
O(i)
})))
};
y ? setTimeout(E, 1e3) : E(), i._reszEvt = !0
}
}
var Ye = l.util.throttle;
function Xe(t, n) {
if (!t) return 0;
var a = e("<div/>").css("width", Ke(t)).appendTo(n || i.body),
r = a[0].offsetWidth;
return a.remove(), r
}
function Ge(t, i) {
var n = Je(t, i);
if (n < 0) return null;
var a = t.aoData[n];
return a.nTr ? a.anCells[i] : e("<td/>").html(Y(t, n, i, "display"))[0]
}
function Je(e, t) {
for (var i, n = -1, a = -1, r = 0, s = e.aoData.length; r < s; r++)(i = (i = (i = Y(e, r, t, "display") + "").replace(Ve, "")).replace(/ /g, " ")).length > n && (n = i.length, a = r);
return a
}
function Ke(e) {
return null === e ? "0px" : "number" == typeof e ? e < 0 ? "0px" : e + "px" : e.match(/\d$/) ? e + "px" : e
}
function Ze(t) {
var i, a, r, s, o, d, c, u = [],
p = t.aoColumns,
h = t.aaSortingFixed,
f = e.isPlainObject(h),
g = [],
m = function (t) {
t.length && !Array.isArray(t[0]) ? g.push(t) : e.merge(g, t)
};
for (Array.isArray(h) && m(h), f && h.pre && m(h.pre), m(t.aaSorting), f && h.post && m(h.post), i = 0; i < g.length; i++)
for (a = 0, r = (s = p[c = g[i][0]].aDataSort).length; a < r; a++) d = p[o = s[a]].sType || "string", g[i]._idx === n && (g[i]._idx = e.inArray(g[i][1], p[o].asSorting)), u.push({
src: c,
col: o,
dir: g[i][1],
index: g[i]._idx,
type: d,
formatter: l.ext.type.order[d + "-pre"]
});
return u
}
function Qe(e) {
var t, i, n, a, r, s = [],
o = l.ext.type.order,
d = e.aoData,
c = (e.aoColumns, 0),
u = e.aiDisplayMaster;
for (B(e), t = 0, i = (r = Ze(e)).length; t < i; t++)(a = r[t]).formatter && c++, at(e, a.col);
if ("ssp" != mt(e) && 0 !== r.length) {
for (t = 0, n = u.length; t < n; t++) s[u[t]] = t;
c === r.length ? u.sort((function (e, t) {
var i, n, a, o, l, c = r.length,
u = d[e]._aSortData,
p = d[t]._aSortData;
for (a = 0; a < c; a++)
if (0 !== (o = (i = u[(l = r[a]).col]) < (n = p[l.col]) ? -1 : i > n ? 1 : 0)) return "asc" === l.dir ? o : -o;
return (i = s[e]) < (n = s[t]) ? -1 : i > n ? 1 : 0
})) : u.sort((function (e, t) {
var i, n, a, l, c, u = r.length,
p = d[e]._aSortData,
h = d[t]._aSortData;
for (a = 0; a < u; a++)
if (i = p[(c = r[a]).col], n = h[c.col], 0 !== (l = (o[c.type + "-" + c.dir] || o["string-" + c.dir])(i, n))) return l;
return (i = s[e]) < (n = s[t]) ? -1 : i > n ? 1 : 0
}))
}
e.bSorted = !0
}
function et(e) {
for (var t, i, n = e.aoColumns, a = Ze(e), r = e.oLanguage.oAria, s = 0, o = n.length; s < o; s++) {
var l = n[s],
d = l.asSorting,
c = l.sTitle.replace(/<.*?>/g, ""),
u = l.nTh;
u.removeAttribute("aria-sort"), l.bSortable ? (a.length > 0 && a[0].col == s ? (u.setAttribute("aria-sort", "asc" == a[0].dir ? "ascending" : "descending"), i = d[a[0].index + 1] || d[0]) : i = d[0], t = c + ("asc" === i ? r.sSortAscending : r.sSortDescending)) : t = c, u.setAttribute("aria-label", t)
}
}
function tt(t, i, a, r) {
var s, o = t.aoColumns[i],
l = t.aaSorting,
d = o.asSorting,
c = function (t, i) {
var a = t._idx;
return a === n && (a = e.inArray(t[1], d)), a + 1 < d.length ? a + 1 : i ? null : 0
};
if ("number" == typeof l[0] && (l = t.aaSorting = [l]), a && t.oFeatures.bSortMulti) {
var u = e.inArray(i, w(l, "0")); - 1 !== u ? (null === (s = c(l[u], !0)) && 1 === l.length && (s = 0), null === s ? l.splice(u, 1) : (l[u][1] = d[s], l[u]._idx = s)) : (l.push([i, d[0], 0]), l[l.length - 1]._idx = 0)
} else l.length && l[0][0] == i ? (s = c(l[0]), l.length = 1, l[0][1] = d[s], l[0]._idx = s) : (l.length = 0, l.push([i, d[0]]), l[0]._idx = 0);
ce(t), "function" == typeof r && r(t)
}
function it(e, t, i, n) {
var a = e.aoColumns[i];
ut(t, {}, (function (t) {
!1 !== a.bSortable && (e.oFeatures.bProcessing ? (He(e, !0), setTimeout((function () {
tt(e, i, t.shiftKey, n), "ssp" !== mt(e) && He(e, !1)
}), 0)) : tt(e, i, t.shiftKey, n))
}))
}
function nt(t) {
var i, n, a, r = t.aLastSort,
s = t.oClasses.sSortColumn,
o = Ze(t),
l = t.oFeatures;
if (l.bSort && l.bSortClasses) {
for (i = 0, n = r.length; i < n; i++) a = r[i].src, e(w(t.aoData, "anCells", a)).removeClass(s + (i < 2 ? i + 1 : 3));
for (i = 0, n = o.length; i < n; i++) a = o[i].src, e(w(t.aoData, "anCells", a)).addClass(s + (i < 2 ? i + 1 : 3))
}
t.aLastSort = o
}
function at(e, t) {
var i, n, a, r = e.aoColumns[t],
s = l.ext.order[r.sSortDataType];
s && (i = s.call(e.oInstance, e, t, z(e, t)));
for (var o = l.ext.type.order[r.sType + "-pre"], d = 0, c = e.aoData.length; d < c; d++)(n = e.aoData[d])._aSortData || (n._aSortData = []), n._aSortData[t] && !s || (a = s ? i[d] : Y(e, d, t, "sort"), n._aSortData[t] = o ? o(a) : a)
}
function rt(t) {
if (t.oFeatures.bStateSave && !t.bDestroying) {
var i = {
time: +new Date,
start: t._iDisplayStart,
length: t._iDisplayLength,
order: e.extend(!0, [], t.aaSorting),
search: Ee(t.oPreviousSearch),
columns: e.map(t.aoColumns, (function (e, i) {
return {
visible: e.bVisible,
search: Ee(t.aoPreSearchCols[i])
}
}))
};
ht(t, "aoStateSaveParams", "stateSaveParams", [t, i]), t.oSavedState = i, t.fnStateSaveCallback.call(t.oInstance, t, i)
}
}
function st(t, i, a) {
var r, s, o = t.aoColumns,
l = function (i) {
if (i && i.time) {
var l = ht(t, "aoStateLoadParams", "stateLoadParams", [t, i]);
if (-1 === e.inArray(!1, l)) {
var d = t.iStateDuration;
if (d > 0 && i.time < +new Date - 1e3 * d) a();
else if (i.columns && o.length !== i.columns.length) a();
else {
if (t.oLoadedState = e.extend(!0, {}, i), i.start !== n && (t._iDisplayStart = i.start, t.iInitDisplayStart = i.start), i.length !== n && (t._iDisplayLength = i.length), i.order !== n && (t.aaSorting = [], e.each(i.order, (function (e, i) {
t.aaSorting.push(i[0] >= o.length ? [0, i[1]] : i)
}))), i.search !== n && e.extend(t.oPreviousSearch, $e(i.search)), i.columns)
for (r = 0, s = i.columns.length; r < s; r++) {
var c = i.columns[r];
c.visible !== n && (o[r].bVisible = c.visible), c.search !== n && e.extend(t.aoPreSearchCols[r], $e(c.search))
}
ht(t, "aoStateLoaded", "stateLoaded", [t, i]), a()
}
} else a()
} else a()
};
if (t.oFeatures.bStateSave) {
var d = t.fnStateLoadCallback.call(t.oInstance, t, l);
d !== n && l(d)
} else a()
}
function ot(t) {
var i = l.settings,
n = e.inArray(t, w(i, "nTable"));
return -1 !== n ? i[n] : null
}
function lt(e, i, n, a) {
if (n = "DataTables warning: " + (e ? "table id=" + e.sTableId + " - " : "") + n, a && (n += ". For more information about this error, please see http://datatables.net/tn/" + a), i) t.console && console.log && console.log(n);
else {
var r = l.ext,
s = r.sErrMode || r.errMode;
if (e && ht(e, null, "error", [e, a, n]), "alert" == s) alert(n);
else {
if ("throw" == s) throw new Error(n);
"function" == typeof s && s(e, a, n)
}
}
}
function dt(t, i, a, r) {
Array.isArray(a) ? e.each(a, (function (e, n) {
Array.isArray(n) ? dt(t, i, n[0], n[1]) : dt(t, i, n)
})) : (r === n && (r = a), i[a] !== n && (t[r] = i[a]))
}
function ct(t, i, n) {
var a;
for (var r in i) i.hasOwnProperty(r) && (a = i[r], e.isPlainObject(a) ? (e.isPlainObject(t[r]) || (t[r] = {}), e.extend(!0, t[r], a)) : n && "data" !== r && "aaData" !== r && Array.isArray(a) ? t[r] = a.slice() : t[r] = a);
return t
}
function ut(t, i, n) {
e(t).on("click.DT", i, (function (i) {
e(t).trigger("blur"), n(i)
})).on("keypress.DT", i, (function (e) {
13 === e.which && (e.preventDefault(), n(e))
})).on("selectstart.DT", (function () {
return !1
}))
}
function pt(e, t, i, n) {
i && e[t].push({
fn: i,
sName: n
})
}
function ht(t, i, n, a) {
var r = [];
if (i && (r = e.map(t[i].slice().reverse(), (function (e, i) {
return e.fn.apply(t.oInstance, a)
}))), null !== n) {
var s = e.Event(n + ".dt");
e(t.nTable).trigger(s, a), r.push(s.result)
}
return r
}
function ft(e) {
var t = e._iDisplayStart,
i = e.fnDisplayEnd(),
n = e._iDisplayLength;
t >= i && (t = i - n), t -= t % n, (-1 === n || t < 0) && (t = 0), e._iDisplayStart = t
}
function gt(t, i) {
var n = t.renderer,
a = l.ext.renderer[i];
return e.isPlainObject(n) && n[i] ? a[n[i]] || a._ : "string" == typeof n && a[n] || a._
}
function mt(e) {
return e.oFeatures.bServerSide ? "ssp" : e.ajax || e.sAjaxSource ? "ajax" : "dom"
}
var vt = [],
bt = Array.prototype;
r = function (t, i) {
if (!(this instanceof r)) return new r(t, i);
var n = [],
a = function (t) {
var i = function (t) {
var i, n, a = l.settings,
r = e.map(a, (function (e, t) {
return e.nTable
}));
return t ? t.nTable && t.oApi ? [t] : t.nodeName && "table" === t.nodeName.toLowerCase() ? -1 !== (i = e.inArray(t, r)) ? [a[i]] : null : t && "function" == typeof t.settings ? t.settings().toArray() : ("string" == typeof t ? n = e(t) : t instanceof e && (n = t), n ? n.map((function (t) {
return -1 !== (i = e.inArray(this, r)) ? a[i] : null
})).toArray() : void 0) : []
}(t);
i && n.push.apply(n, i)
};
if (Array.isArray(t))
for (var s = 0, o = t.length; s < o; s++) a(t[s]);
else a(t);
this.context = T(n), i && e.merge(this, i), this.selector = {
rows: null,
cols: null,
opts: null
}, r.extend(this, this, vt)
}, l.Api = r, e.extend(r.prototype, {
any: function () {
return 0 !== this.count()
},
concat: bt.concat,
context: [],
count: function () {
return this.flatten().length
},
each: function (e) {
for (var t = 0, i = this.length; t < i; t++) e.call(this, this[t], t, this);
return this
},
eq: function (e) {
var t = this.context;
return t.length > e ? new r(t[e], this[e]) : null
},
filter: function (e) {
var t = [];
if (bt.filter) t = bt.filter.call(this, e, this);
else
for (var i = 0, n = this.length; i < n; i++) e.call(this, this[i], i, this) && t.push(this[i]);
return new r(this.context, t)
},
flatten: function () {
var e = [];
return new r(this.context, e.concat.apply(e, this.toArray()))
},
join: bt.join,
indexOf: bt.indexOf || function (e, t) {
for (var i = t || 0, n = this.length; i < n; i++)
if (this[i] === e) return i;
return -1
},
iterator: function (e, t, i, a) {
var s, o, l, d, c, u, p, h, f = [],
g = this.context,
m = this.selector;
for ("string" == typeof e && (a = i, i = t, t = e, e = !1), o = 0, l = g.length; o < l; o++) {
var v = new r(g[o]);
if ("table" === t) (s = i.call(v, g[o], o)) !== n && f.push(s);
else if ("columns" === t || "rows" === t) (s = i.call(v, g[o], this[o], o)) !== n && f.push(s);
else if ("column" === t || "column-rows" === t || "row" === t || "cell" === t)
for (p = this[o], "column-rows" === t && (u = Ct(g[o], m.opts)), d = 0, c = p.length; d < c; d++) h = p[d], (s = "cell" === t ? i.call(v, g[o], h.row, h.column, o, d) : i.call(v, g[o], h, o, d, u)) !== n && f.push(s)
}
if (f.length || a) {
var b = new r(g, e ? f.concat.apply([], f) : f),
y = b.selector;
return y.rows = m.rows, y.cols = m.cols, y.opts = m.opts, b
}
return this
},
lastIndexOf: bt.lastIndexOf || function (e, t) {
return this.indexOf.apply(this.toArray.reverse(), arguments)
},
length: 0,
map: function (e) {
var t = [];
if (bt.map) t = bt.map.call(this, e, this);
else
for (var i = 0, n = this.length; i < n; i++) t.push(e.call(this, this[i], i));
return new r(this.context, t)
},
pluck: function (e) {
return this.map((function (t) {
return t[e]
}))
},
pop: bt.pop,
push: bt.push,
reduce: bt.reduce || function (e, t) {
return F(this, e, t, 0, this.length, 1)
},
reduceRight: bt.reduceRight || function (e, t) {
return F(this, e, t, this.length - 1, -1, -1)
},
reverse: bt.reverse,
selector: null,
shift: bt.shift,
slice: function () {
return new r(this.context, this)
},
sort: bt.sort,
splice: bt.splice,
toArray: function () {
return bt.slice.call(this)
},
to$: function () {
return e(this)
},
toJQuery: function () {
return e(this)
},
unique: function () {
return new r(this.context, T(this))
},
unshift: bt.unshift
}), r.extend = function (e, t, i) {
if (i.length && t && (t instanceof r || t.__dt_wrapper)) {
var n, a, s, o = function (e, t, i) {
return function () {
var n = t.apply(e, arguments);
return r.extend(n, n, i.methodExt), n
}
};
for (n = 0, a = i.length; n < a; n++) t[(s = i[n]).name] = "function" === s.type ? o(e, s.val, s) : "object" === s.type ? {} : s.val, t[s.name].__dt_wrapper = !0, r.extend(e, t[s.name], s.propExt)
}
}, r.register = s = function (t, i) {
if (Array.isArray(t))
for (var n = 0, a = t.length; n < a; n++) r.register(t[n], i);
else {
var s, o, l, d, c = t.split("."),
u = vt,
p = function (e, t) {
for (var i = 0, n = e.length; i < n; i++)
if (e[i].name === t) return e[i];
return null
};
for (s = 0, o = c.length; s < o; s++) {
var h = p(u, l = (d = -1 !== c[s].indexOf("()")) ? c[s].replace("()", "") : c[s]);
h || (h = {
name: l,
val: {},
methodExt: [],
propExt: [],
type: "object"
}, u.push(h)), s === o - 1 ? (h.val = i, h.type = "function" == typeof i ? "function" : e.isPlainObject(i) ? "object" : "other") : u = d ? h.methodExt : h.propExt
}
}
}, r.registerPlural = o = function (e, t, i) {
r.register(e, i), r.register(t, (function () {
var e = i.apply(this, arguments);
return e === this ? this : e instanceof r ? e.length ? Array.isArray(e[0]) ? new r(e.context, e[0]) : e[0] : n : e
}))
};
var yt = function (t, i) {
if (Array.isArray(t)) return e.map(t, (function (e) {
return yt(e, i)
}));
if ("number" == typeof t) return [i[t]];
var n = e.map(i, (function (e, t) {
return e.nTable
}));
return e(n).filter(t).map((function (t) {
var a = e.inArray(this, n);
return i[a]
})).toArray()
};
s("tables()", (function (e) {
return e !== n && null !== e ? new r(yt(e, this.context)) : this
})), s("table()", (function (e) {
var t = this.tables(e),
i = t.context;
return i.length ? new r(i[0]) : t
})), o("tables().nodes()", "table().node()", (function () {
return this.iterator("table", (function (e) {
return e.nTable
}), 1)
})), o("tables().body()", "table().body()", (function () {
return this.iterator("table", (function (e) {
return e.nTBody
}), 1)
})), o("tables().header()", "table().header()", (function () {
return this.iterator("table", (function (e) {
return e.nTHead
}), 1)
})), o("tables().footer()", "table().footer()", (function () {
return this.iterator("table", (function (e) {
return e.nTFoot
}), 1)
})), o("tables().containers()", "table().container()", (function () {
return this.iterator("table", (function (e) {
return e.nTableWrapper
}), 1)
})), s("draw()", (function (e) {
return this.iterator("table", (function (t) {
"page" === e ? de(t) : ("string" == typeof e && (e = "full-hold" !== e), ce(t, !1 === e))
}))
})), s("page()", (function (e) {
return e === n ? this.page.info().page : this.iterator("table", (function (t) {
ze(t, e)
}))
})), s("page.info()", (function (e) {
if (0 === this.context.length) return n;
var t = this.context[0],
i = t._iDisplayStart,
a = t.oFeatures.bPaginate ? t._iDisplayLength : -1,
r = t.fnRecordsDisplay(),
s = -1 === a;
return {
page: s ? 0 : Math.floor(i / a),
pages: s ? 1 : Math.ceil(r / a),
start: i,
end: t.fnDisplayEnd(),
length: a,
recordsTotal: t.fnRecordsTotal(),
recordsDisplay: r,
serverSide: "ssp" === mt(t)
}
})), s("page.len()", (function (e) {
return e === n ? 0 !== this.context.length ? this.context[0]._iDisplayLength : n : this.iterator("table", (function (t) {
Re(t, e)
}))
}));
var wt = function (e, t, i) {
if (i) {
var n = new r(e);
n.one("draw", (function () {
i(n.ajax.json())
}))
}
if ("ssp" == mt(e)) ce(e, t);
else {
He(e, !0);
var a = e.jqXHR;
a && 4 !== a.readyState && a.abort(), fe(e, [], (function (i) {
te(e);
for (var n = be(e, i), a = 0, r = n.length; a < r; a++) U(e, n[a]);
ce(e, t), He(e, !1)
}))
}
};
s("ajax.json()", (function () {
var e = this.context;
if (e.length > 0) return e[0].json
})), s("ajax.params()", (function () {
var e = this.context;
if (e.length > 0) return e[0].oAjaxData
})), s("ajax.reload()", (function (e, t) {
return this.iterator("table", (function (i) {
wt(i, !1 === t, e)
}))
})), s("ajax.url()", (function (t) {
var i = this.context;
return t === n ? 0 === i.length ? n : (i = i[0]).ajax ? e.isPlainObject(i.ajax) ? i.ajax.url : i.ajax : i.sAjaxSource : this.iterator("table", (function (i) {
e.isPlainObject(i.ajax) ? i.ajax.url = t : i.ajax = t
}))
})), s("ajax.url().load()", (function (e, t) {
return this.iterator("table", (function (i) {
wt(i, !1 === t, e)
}))
}));
var St = function (e, t, i, r, s) {
var o, l, d, c, u, p, h = [],
f = typeof t;
for (t && "string" !== f && "function" !== f && t.length !== n || (t = [t]), d = 0, c = t.length; d < c; d++)
for (u = 0, p = (l = t[d] && t[d].split && !t[d].match(/[\[\(:]/) ? t[d].split(",") : [t[d]]).length; u < p; u++)(o = i("string" == typeof l[u] ? l[u].trim() : l[u])) && o.length && (h = h.concat(o));
var g = a.selector[e];
if (g.length)
for (d = 0, c = g.length; d < c; d++) h = g[d](r, s, h);
return T(h)
},
xt = function (t) {
return t || (t = {}), t.filter && t.search === n && (t.search = t.filter), e.extend({
search: "none",
order: "current",
page: "all"
}, t)
},
_t = function (e) {
for (var t = 0, i = e.length; t < i; t++)
if (e[t].length > 0) return e[0] = e[t], e[0].length = 1, e.length = 1, e.context = [e.context[t]], e;
return e.length = 0, e
},
Ct = function (t, i) {
var n, a = [],
r = t.aiDisplay,
s = t.aiDisplayMaster,
o = i.search,
l = i.order,
d = i.page;
if ("ssp" == mt(t)) return "removed" === o ? [] : x(0, s.length);
if ("current" == d)
for (u = t._iDisplayStart, p = t.fnDisplayEnd(); u < p; u++) a.push(r[u]);
else if ("current" == l || "applied" == l) {
if ("none" == o) a = s.slice();
else if ("applied" == o) a = r.slice();
else if ("removed" == o) {
for (var c = {}, u = 0, p = r.length; u < p; u++) c[r[u]] = null;
a = e.map(s, (function (e) {
return c.hasOwnProperty(e) ? null : e
}))
}
} else if ("index" == l || "original" == l)
for (u = 0, p = t.aoData.length; u < p; u++)("none" == o || -1 === (n = e.inArray(u, r)) && "removed" == o || n >= 0 && "applied" == o) && a.push(u);
return a
};
s("rows()", (function (t, i) {
t === n ? t = "" : e.isPlainObject(t) && (i = t, t = ""), i = xt(i);
var a = this.iterator("table", (function (a) {
return function (t, i, a) {
var r;
return St("row", i, (function (i) {
var s = m(i),
o = t.aoData;
if (null !== s && !a) return [s];
if (r || (r = Ct(t, a)), null !== s && -1 !== e.inArray(s, r)) return [s];
if (null === i || i === n || "" === i) return r;
if ("function" == typeof i) return e.map(r, (function (e) {
var t = o[e];
return i(e, t._aData, t.nTr) ? e : null
}));
if (i.nodeName) {
var l = i._DT_RowIndex,
d = i._DT_CellIndex;
if (l !== n) return o[l] && o[l].nTr === i ? [l] : [];
if (d) return o[d.row] && o[d.row].nTr === i.parentNode ? [d.row] : [];
var c = e(i).closest("*[data-dt-row]");
return c.length ? [c.data("dt-row")] : []
}
if ("string" == typeof i && "#" === i.charAt(0)) {
var u = t.aIds[i.replace(/^#/, "")];
if (u !== n) return [u.idx]
}
var p = _(S(t.aoData, r, "nTr"));
return e(p).filter(i).map((function () {
return this._DT_RowIndex
})).toArray()
}), t, a)
}(a, t, i)
}), 1);
return a.selector.rows = t, a.selector.opts = i, a
})), s("rows().nodes()", (function () {
return this.iterator("row", (function (e, t) {
return e.aoData[t].nTr || n
}), 1)
})), s("rows().data()", (function () {
return this.iterator(!0, "rows", (function (e, t) {
return S(e.aoData, t, "_aData")
}), 1)
})), o("rows().cache()", "row().cache()", (function (e) {
return this.iterator("row", (function (t, i) {
var n = t.aoData[i];
return "search" === e ? n._aFilterData : n._aSortData
}), 1)
})), o("rows().invalidate()", "row().invalidate()", (function (e) {
return this.iterator("row", (function (t, i) {
ne(t, i, e)
}))
})), o("rows().indexes()", "row().index()", (function () {
return this.iterator("row", (function (e, t) {
return t
}), 1)
})), o("rows().ids()", "row().id()", (function (e) {
for (var t = [], i = this.context, n = 0, a = i.length; n < a; n++)
for (var s = 0, o = this[n].length; s < o; s++) {
var l = i[n].rowIdFn(i[n].aoData[this[n][s]]._aData);
t.push((!0 === e ? "#" : "") + l)
}
return new r(i, t)
})), o("rows().remove()", "row().remove()", (function () {
var e = this;
return this.iterator("row", (function (t, i, a) {
var r, s, o, l, d, c, u = t.aoData,
p = u[i];
for (u.splice(i, 1), r = 0, s = u.length; r < s; r++)
if (c = (d = u[r]).anCells, null !== d.nTr && (d.nTr._DT_RowIndex = r), null !== c)
for (o = 0, l = c.length; o < l; o++) c[o]._DT_CellIndex.row = r;
ie(t.aiDisplayMaster, i), ie(t.aiDisplay, i), ie(e[a], i, !1), t._iRecordsDisplay > 0 && t._iRecordsDisplay--, ft(t);
var h = t.rowIdFn(p._aData);
h !== n && delete t.aIds[h]
})), this.iterator("table", (function (e) {
for (var t = 0, i = e.aoData.length; t < i; t++) e.aoData[t].idx = t
})), this
})), s("rows.add()", (function (t) {
var i = this.iterator("table", (function (e) {
var i, n, a, r = [];
for (n = 0, a = t.length; n < a; n++)(i = t[n]).nodeName && "TR" === i.nodeName.toUpperCase() ? r.push(V(e, i)[0]) : r.push(U(e, i));
return r
}), 1),
n = this.rows(-1);
return n.pop(), e.merge(n, i), n
})), s("row()", (function (e, t) {
return _t(this.rows(e, t))
})), s("row().data()", (function (e) {
var t = this.context;
if (e === n) return t.length && this.length ? t[0].aoData[this[0]]._aData : n;
var i = t[0].aoData[this[0]];
return i._aData = e, Array.isArray(e) && i.nTr && i.nTr.id && Q(t[0].rowId)(e, i.nTr.id), ne(t[0], this[0], "data"), this
})), s("row().node()", (function () {
var e = this.context;
return e.length && this.length && e[0].aoData[this[0]].nTr || null
})), s("row.add()", (function (t) {
t instanceof e && t.length && (t = t[0]);
var i = this.iterator("table", (function (e) {
return t.nodeName && "TR" === t.nodeName.toUpperCase() ? V(e, t)[0] : U(e, t)
}));
return this.row(i[0])
}));
var Tt = function (e, t) {
var i = e.context;
if (i.length) {
var a = i[0].aoData[t !== n ? t : e[0]];
a && a._details && (a._details.remove(), a._detailsShow = n, a._details = n)
}
},
Dt = function (e, t) {
var i = e.context;
if (i.length && e.length) {
var n = i[0].aoData[e[0]];
n._details && (n._detailsShow = t, t ? n._details.insertAfter(n.nTr) : n._details.detach(), kt(i[0]))
}
},
kt = function (e) {
var t = new r(e),
i = e.aoData;
t.off("draw.dt.DT_details column-visibility.dt.DT_details destroy.dt.DT_details"), w(i, "_details").length > 0 && (t.on("draw.dt.DT_details", (function (n, a) {
e === a && t.rows({
page: "current"
}).eq(0).each((function (e) {
var t = i[e];
t._detailsShow && t._details.insertAfter(t.nTr)
}))
})), t.on("column-visibility.dt.DT_details", (function (t, n, a, r) {
if (e === n)
for (var s, o = j(n), l = 0, d = i.length; l < d; l++)(s = i[l])._details && s._details.children("td[colspan]").attr("colspan", o)
})), t.on("destroy.dt.DT_details", (function (n, a) {
if (e === a)
for (var r = 0, s = i.length; r < s; r++) i[r]._details && Tt(t, r)
})))
};
s("row().child()", (function (t, i) {
var a = this.context;
return t === n ? a.length && this.length ? a[0].aoData[this[0]]._details : n : (!0 === t ? this.child.show() : !1 === t ? Tt(this) : a.length && this.length && function (t, i, n, a) {
var r = [],
s = function (i, n) {
if (Array.isArray(i) || i instanceof e)
for (var a = 0, o = i.length; a < o; a++) s(i[a], n);
else if (i.nodeName && "tr" === i.nodeName.toLowerCase()) r.push(i);
else {
var l = e("<tr><td></td></tr>").addClass(n);
e("td", l).addClass(n).html(i)[0].colSpan = j(t), r.push(l[0])
}
};
s(n, a), i._details && i._details.detach(), i._details = e(r), i._detailsShow && i._details.insertAfter(i.nTr)
}(a[0], a[0].aoData[this[0]], t, i), this)
})), s(["row().child.show()", "row().child().show()"], (function (e) {
return Dt(this, !0), this
})), s(["row().child.hide()", "row().child().hide()"], (function () {
return Dt(this, !1), this
})), s(["row().child.remove()", "row().child().remove()"], (function () {
return Tt(this), this
})), s("row().child.isShown()", (function () {
var e = this.context;
return e.length && this.length && e[0].aoData[this[0]]._detailsShow || !1
}));
var It = /^([^:]+):(name|visIdx|visible)$/,
Et = function (e, t, i, n, a) {
for (var r = [], s = 0, o = a.length; s < o; s++) r.push(Y(e, a[s], t));
return r
};
s("columns()", (function (t, i) {
t === n ? t = "" : e.isPlainObject(t) && (i = t, t = ""), i = xt(i);
var a = this.iterator("table", (function (n) {
return function (t, i, n) {
var a = t.aoColumns,
r = w(a, "sName"),
s = w(a, "nTh");
return St("column", i, (function (i) {
var o = m(i);
if ("" === i) return x(a.length);
if (null !== o) return [o >= 0 ? o : a.length + o];
if ("function" == typeof i) {
var l = Ct(t, n);
return e.map(a, (function (e, n) {
return i(n, Et(t, n, 0, 0, l), s[n]) ? n : null
}))
}
var d = "string" == typeof i ? i.match(It) : "";
if (d) switch (d[2]) {
case "visIdx":
case "visible":
var c = parseInt(d[1], 10);
if (c < 0) {
var u = e.map(a, (function (e, t) {
return e.bVisible ? t : null
}));
return [u[u.length + c]]
}
return [L(t, c)];
case "name":
return e.map(r, (function (e, t) {
return e === d[1] ? t : null
}));
default:
return []
}
if (i.nodeName && i._DT_CellIndex) return [i._DT_CellIndex.column];
var p = e(s).filter(i).map((function () {
return e.inArray(this, s)
})).toArray();
if (p.length || !i.nodeName) return p;
var h = e(i).closest("*[data-dt-column]");
return h.length ? [h.data("dt-column")] : []
}), t, n)
}(n, t, i)
}), 1);
return a.selector.cols = t, a.selector.opts = i, a
})), o("columns().header()", "column().header()", (function (e, t) {
return this.iterator("column", (function (e, t) {
return e.aoColumns[t].nTh
}), 1)
})), o("columns().footer()", "column().footer()", (function (e, t) {
return this.iterator("column", (function (e, t) {
return e.aoColumns[t].nTf
}), 1)
})), o("columns().data()", "column().data()", (function () {
return this.iterator("column-rows", Et, 1)
})), o("columns().dataSrc()", "column().dataSrc()", (function () {
return this.iterator("column", (function (e, t) {
return e.aoColumns[t].mData
}), 1)
})), o("columns().cache()", "column().cache()", (function (e) {
return this.iterator("column-rows", (function (t, i, n, a, r) {
return S(t.aoData, r, "search" === e ? "_aFilterData" : "_aSortData", i)
}), 1)
})), o("columns().nodes()", "column().nodes()", (function () {
return this.iterator("column-rows", (function (e, t, i, n, a) {
return S(e.aoData, a, "anCells", t)
}), 1)
})), o("columns().visible()", "column().visible()", (function (t, i) {
var a = this,
r = this.iterator("column", (function (i, a) {
if (t === n) return i.aoColumns[a].bVisible;
! function (t, i, a) {
var r, s, o, l, d = t.aoColumns,
c = d[i],
u = t.aoData;
if (a === n) return c.bVisible;
if (c.bVisible !== a) {
if (a) {
var p = e.inArray(!0, w(d, "bVisible"), i + 1);
for (s = 0, o = u.length; s < o; s++) l = u[s].nTr, r = u[s].anCells, l && l.insertBefore(r[i], r[p] || null)
} else e(w(t.aoData, "anCells", i)).detach();
c.bVisible = a
}
}(i, a, t)
}));
return t !== n && this.iterator("table", (function (r) {
le(r, r.aoHeader), le(r, r.aoFooter), r.aiDisplay.length || e(r.nTBody).find("td[colspan]").attr("colspan", j(r)), rt(r), a.iterator("column", (function (e, n) {
ht(e, null, "column-visibility", [e, n, t, i])
})), (i === n || i) && a.columns.adjust()
})), r
})), o("columns().indexes()", "column().index()", (function (e) {
return this.iterator("column", (function (t, i) {
return "visible" === e ? z(t, i) : i
}), 1)
})), s("columns.adjust()", (function () {
return this.iterator("table", (function (e) {
O(e)
}), 1)
})), s("column.index()", (function (e, t) {
if (0 !== this.context.length) {
var i = this.context[0];
if ("fromVisible" === e || "toData" === e) return L(i, t);
if ("fromData" === e || "toVisible" === e) return z(i, t)
}
})), s("column()", (function (e, t) {
return _t(this.columns(e, t))
}));
s("cells()", (function (t, i, a) {
if (e.isPlainObject(t) && (t.row === n ? (a = t, t = null) : (a = i, i = null)), e.isPlainObject(i) && (a = i, i = null), null === i || i === n) return this.iterator("table", (function (i) {
return function (t, i, a) {
var r, s, o, l, d, c, u, p = t.aoData,
h = Ct(t, a),
f = _(S(p, h, "anCells")),
g = e(D([], f)),
m = t.aoColumns.length;
return St("cell", i, (function (i) {
var a = "function" == typeof i;
if (null === i || i === n || a) {
for (s = [], o = 0, l = h.length; o < l; o++)
for (r = h[o], d = 0; d < m; d++) c = {
row: r,
column: d
}, a ? (u = p[r], i(c, Y(t, r, d), u.anCells ? u.anCells[d] : null) && s.push(c)) : s.push(c);
return s
}
if (e.isPlainObject(i)) return i.column !== n && i.row !== n && -1 !== e.inArray(i.row, h) ? [i] : [];
var f = g.filter(i).map((function (e, t) {
return {
row: t._DT_CellIndex.row,
column: t._DT_CellIndex.column
}
})).toArray();
return f.length || !i.nodeName ? f : (u = e(i).closest("*[data-dt-row]")).length ? [{
row: u.data("dt-row"),
column: u.data("dt-column")
}] : []
}), t, a)
}(i, t, xt(a))
}));
var r, s, o, l, d = a ? {
page: a.page,
order: a.order,
search: a.search
} : {},
c = this.columns(i, d),
u = this.rows(t, d),
p = this.iterator("table", (function (e, t) {
var i = [];
for (r = 0, s = u[t].length; r < s; r++)
for (o = 0, l = c[t].length; o < l; o++) i.push({
row: u[t][r],
column: c[t][o]
});
return i
}), 1),
h = a && a.selected ? this.cells(p, a) : p;
return e.extend(h.selector, {
cols: i,
rows: t,
opts: a
}), h
})), o("cells().nodes()", "cell().node()", (function () {
return this.iterator("cell", (function (e, t, i) {
var a = e.aoData[t];
return a && a.anCells ? a.anCells[i] : n
}), 1)
})), s("cells().data()", (function () {
return this.iterator("cell", (function (e, t, i) {
return Y(e, t, i)
}), 1)
})), o("cells().cache()", "cell().cache()", (function (e) {
return e = "search" === e ? "_aFilterData" : "_aSortData", this.iterator("cell", (function (t, i, n) {
return t.aoData[i][e][n]
}), 1)
})), o("cells().render()", "cell().render()", (function (e) {
return this.iterator("cell", (function (t, i, n) {
return Y(t, i, n, e)
}), 1)
})), o("cells().indexes()", "cell().index()", (function () {
return this.iterator("cell", (function (e, t, i) {
return {
row: t,
column: i,
columnVisible: z(e, i)
}
}), 1)
})), o("cells().invalidate()", "cell().invalidate()", (function (e) {
return this.iterator("cell", (function (t, i, n) {
ne(t, i, e, n)
}))
})), s("cell()", (function (e, t, i) {
return _t(this.cells(e, t, i))
})), s("cell().data()", (function (e) {
var t = this.context,
i = this[0];
return e === n ? t.length && i.length ? Y(t[0], i[0].row, i[0].column) : n : (X(t[0], i[0].row, i[0].column, e), ne(t[0], i[0].row, "data", i[0].column), this)
})), s("order()", (function (e, t) {
var i = this.context;
return e === n ? 0 !== i.length ? i[0].aaSorting : n : ("number" == typeof e ? e = [
[e, t]
] : e.length && !Array.isArray(e[0]) && (e = Array.prototype.slice.call(arguments)), this.iterator("table", (function (t) {
t.aaSorting = e.slice()
})))
})), s("order.listener()", (function (e, t, i) {
return this.iterator("table", (function (n) {
it(n, e, t, i)
}))
})), s("order.fixed()", (function (t) {
if (!t) {
var i = this.context,
a = i.length ? i[0].aaSortingFixed : n;
return Array.isArray(a) ? {
pre: a
} : a
}
return this.iterator("table", (function (i) {
i.aaSortingFixed = e.extend(!0, {}, t)
}))
})), s(["columns().order()", "column().order()"], (function (t) {
var i = this;
return this.iterator("table", (function (n, a) {
var r = [];
e.each(i[a], (function (e, i) {
r.push([i, t])
})), n.aaSorting = r
}))
})), s("search()", (function (t, i, a, r) {
var s = this.context;
return t === n ? 0 !== s.length ? s[0].oPreviousSearch.sSearch : n : this.iterator("table", (function (n) {
n.oFeatures.bFilter && we(n, e.extend({}, n.oPreviousSearch, {
sSearch: t + "",
bRegex: null !== i && i,
bSmart: null === a || a,
bCaseInsensitive: null === r || r
}), 1)
}))
})), o("columns().search()", "column().search()", (function (t, i, a, r) {
return this.iterator("column", (function (s, o) {
var l = s.aoPreSearchCols;
if (t === n) return l[o].sSearch;
s.oFeatures.bFilter && (e.extend(l[o], {
sSearch: t + "",
bRegex: null !== i && i,
bSmart: null === a || a,
bCaseInsensitive: null === r || r
}), we(s, s.oPreviousSearch, 1))
}))
})), s("state()", (function () {
return this.context.length ? this.context[0].oSavedState : null
})), s("state.clear()", (function () {
return this.iterator("table", (function (e) {
e.fnStateSaveCallback.call(e.oInstance, e, {})
}))
})), s("state.loaded()", (function () {
return this.context.length ? this.context[0].oLoadedState : null
})), s("state.save()", (function () {
return this.iterator("table", (function (e) {
rt(e)
}))
})), l.versionCheck = l.fnVersionCheck = function (e) {
for (var t, i, n = l.version.split("."), a = e.split("."), r = 0, s = a.length; r < s; r++)
if ((t = parseInt(n[r], 10) || 0) !== (i = parseInt(a[r], 10) || 0)) return t > i;
return !0
}, l.isDataTable = l.fnIsDataTable = function (t) {
var i = e(t).get(0),
n = !1;
return t instanceof l.Api || (e.each(l.settings, (function (t, a) {
var r = a.nScrollHead ? e("table", a.nScrollHead)[0] : null,
s = a.nScrollFoot ? e("table", a.nScrollFoot)[0] : null;
a.nTable !== i && r !== i && s !== i || (n = !0)
})), n)
}, l.tables = l.fnTables = function (t) {
var i = !1;
e.isPlainObject(t) && (i = t.api, t = t.visible);
var n = e.map(l.settings, (function (i) {
if (!t || t && e(i.nTable).is(":visible")) return i.nTable
}));
return i ? new r(n) : n
}, l.camelToHungarian = I, s("$()", (function (t, i) {
var n = this.rows(i).nodes(),
a = e(n);
return e([].concat(a.filter(t).toArray(), a.find(t).toArray()))
})), e.each(["on", "one", "off"], (function (t, i) {
s(i + "()", (function () {
var t = Array.prototype.slice.call(arguments);
t[0] = e.map(t[0].split(/\s/), (function (e) {
return e.match(/\.dt\b/) ? e : e + ".dt"
})).join(" ");
var n = e(this.tables().nodes());
return n[i].apply(n, t), this
}))
})), s("clear()", (function () {
return this.iterator("table", (function (e) {
te(e)
}))
})), s("settings()", (function () {
return new r(this.context, this.context)
})), s("init()", (function () {
var e = this.context;
return e.length ? e[0].oInit : null
})), s("data()", (function () {
return this.iterator("table", (function (e) {
return w(e.aoData, "_aData")
})).flatten()
})), s("destroy()", (function (i) {
return i = i || !1, this.iterator("table", (function (n) {
var a, s = n.nTableWrapper.parentNode,
o = n.oClasses,
d = n.nTable,
c = n.nTBody,
u = n.nTHead,
p = n.nTFoot,
h = e(d),
f = e(c),
g = e(n.nTableWrapper),
m = e.map(n.aoData, (function (e) {
return e.nTr
}));
n.bDestroying = !0, ht(n, "aoDestroyCallback", "destroy", [n]), i || new r(n).columns().visible(!0), g.off(".DT").find(":not(tbody *)").off(".DT"), e(t).off(".DT-" + n.sInstance), d != u.parentNode && (h.children("thead").detach(), h.append(u)), p && d != p.parentNode && (h.children("tfoot").detach(), h.append(p)), n.aaSorting = [], n.aaSortingFixed = [], nt(n), e(m).removeClass(n.asStripeClasses.join(" ")), e("th, td", u).removeClass(o.sSortable + " " + o.sSortableAsc + " " + o.sSortableDesc + " " + o.sSortableNone), f.children().detach(), f.append(m);
var v = i ? "remove" : "detach";
h[v](), g[v](), !i && s && (s.insertBefore(d, n.nTableReinsertBefore), h.css("width", n.sDestroyWidth).removeClass(o.sTable), (a = n.asDestroyStripes.length) && f.children().each((function (t) {
e(this).addClass(n.asDestroyStripes[t % a])
})));
var b = e.inArray(n, l.settings); - 1 !== b && l.settings.splice(b, 1)
}))
})), e.each(["column", "row", "cell"], (function (e, t) {
s(t + "s().every()", (function (e) {
var i = this.selector.opts,
a = this;
return this.iterator(t, (function (r, s, o, l, d) {
e.call(a[t](s, "cell" === t ? o : i, "cell" === t ? i : n), s, o, l, d)
}))
}))
})), s("i18n()", (function (t, i, a) {
var r = this.context[0],
s = Z(t)(r.oLanguage);
return s === n && (s = i), a !== n && e.isPlainObject(s) && (s = s[a] !== n ? s[a] : s._), s.replace("%d", a)
})), l.version = "1.10.24", l.settings = [], l.models = {}, l.models.oSearch = {
bCaseInsensitive: !0,
sSearch: "",
bRegex: !1,
bSmart: !0
}, l.models.oRow = {
nTr: null,
anCells: null,
_aData: [],
_aSortData: null,
_aFilterData: null,
_sFilterRow: null,
_sRowStripe: "",
src: null,
idx: -1
}, l.models.oColumn = {
idx: null,
aDataSort: null,
asSorting: null,
bSearchable: null,
bSortable: null,
bVisible: null,
_sManualType: null,
_bAttrSrc: !1,
fnCreatedCell: null,
fnGetData: null,
fnSetData: null,
mData: null,
mRender: null,
nTh: null,
nTf: null,
sClass: null,
sContentPadding: null,
sDefaultContent: null,
sName: null,
sSortDataType: "std",
sSortingClass: null,
sSortingClassJUI: null,
sTitle: null,
sType: null,
sWidth: null,
sWidthOrig: null
}, l.defaults = {
aaData: null,
aaSorting: [
[0, "asc"]
],
aaSortingFixed: [],
ajax: null,
aLengthMenu: [10, 25, 50, 100],
aoColumns: null,
aoColumnDefs: null,
aoSearchCols: [],
asStripeClasses: null,
bAutoWidth: !0,
bDeferRender: !1,
bDestroy: !1,
bFilter: !0,
bInfo: !0,
bLengthChange: !0,
bPaginate: !0,
bProcessing: !1,
bRetrieve: !1,
bScrollCollapse: !1,
bServerSide: !1,
bSort: !0,
bSortMulti: !0,
bSortCellsTop: !1,
bSortClasses: !0,
bStateSave: !1,
fnCreatedRow: null,
fnDrawCallback: null,
fnFooterCallback: null,
fnFormatNumber: function (e) {
return e.toString().replace(/\B(?=(\d{3})+(?!\d))/g, this.oLanguage.sThousands)
},
fnHeaderCallback: null,
fnInfoCallback: null,
fnInitComplete: null,
fnPreDrawCallback: null,
fnRowCallback: null,
fnServerData: null,
fnServerParams: null,
fnStateLoadCallback: function (e) {
try {
return JSON.parse((-1 === e.iStateDuration ? sessionStorage : localStorage).getItem("DataTables_" + e.sInstance + "_" + location.pathname))
} catch (e) {
return {}
}
},
fnStateLoadParams: null,
fnStateLoaded: null,
fnStateSaveCallback: function (e, t) {
try {
(-1 === e.iStateDuration ? sessionStorage : localStorage).setItem("DataTables_" + e.sInstance + "_" + location.pathname, JSON.stringify(t))
} catch (e) { }
},
fnStateSaveParams: null,
iStateDuration: 7200,
iDeferLoading: null,
iDisplayLength: 10,
iDisplayStart: 0,
iTabIndex: 0,
oClasses: {},
oLanguage: {
oAria: {
sSortAscending: ": activate to sort column ascending",
sSortDescending: ": activate to sort column descending"
},
oPaginate: {
sFirst: "First",
sLast: "Last",
sNext: "Next",
sPrevious: "Previous"
},
sEmptyTable: "No data available in table",
sInfo: "Showing _START_ to _END_ of _TOTAL_ entries",
sInfoEmpty: "Showing 0 to 0 of 0 entries",
sInfoFiltered: "(filtered from _MAX_ total entries)",
sInfoPostFix: "",
sDecimal: "",
sThousands: ",",
sLengthMenu: "Show _MENU_ entries",
sLoadingRecords: "Loading...",
sProcessing: "Processing...",
sSearch: "Search:",
sSearchPlaceholder: "",
sUrl: "",
sZeroRecords: "No matching records found"
},
oSearch: e.extend({}, l.models.oSearch),
sAjaxDataProp: "data",
sAjaxSource: null,
sDom: "lfrtip",
searchDelay: null,
sPaginationType: "simple_numbers",
sScrollX: "",
sScrollXInner: "",
sScrollY: "",
sServerMethod: "GET",
renderer: null,
rowId: "DT_RowId"
}, k(l.defaults), l.defaults.column = {
aDataSort: null,
iDataSort: -1,
asSorting: ["asc", "desc"],
bSearchable: !0,
bSortable: !0,
bVisible: !0,
fnCreatedCell: null,
mData: null,
mRender: null,
sCellType: "td",
sClass: "",
sContentPadding: "",
sDefaultContent: null,
sName: "",
sSortDataType: "std",
sTitle: null,
sType: null,
sWidth: null
}, k(l.defaults.column), l.models.oSettings = {
oFeatures: {
bAutoWidth: null,
bDeferRender: null,
bFilter: null,
bInfo: null,
bLengthChange: null,
bPaginate: null,
bProcessing: null,
bServerSide: null,
bSort: null,
bSortMulti: null,
bSortClasses: null,
bStateSave: null
},
oScroll: {
bCollapse: null,
iBarWidth: 0,
sX: null,
sXInner: null,
sY: null
},
oLanguage: {
fnInfoCallback: null
},
oBrowser: {
bScrollOversize: !1,
bScrollbarLeft: !1,
bBounding: !1,
barWidth: 0
},
ajax: null,
aanFeatures: [],
aoData: [],
aiDisplay: [],
aiDisplayMaster: [],
aIds: {},
aoColumns: [],
aoHeader: [],
aoFooter: [],
oPreviousSearch: {},
aoPreSearchCols: [],
aaSorting: null,
aaSortingFixed: [],
asStripeClasses: null,
asDestroyStripes: [],
sDestroyWidth: 0,
aoRowCallback: [],
aoHeaderCallback: [],
aoFooterCallback: [],
aoDrawCallback: [],
aoRowCreatedCallback: [],
aoPreDrawCallback: [],
aoInitComplete: [],
aoStateSaveParams: [],
aoStateLoadParams: [],
aoStateLoaded: [],
sTableId: "",
nTable: null,
nTHead: null,
nTFoot: null,
nTBody: null,
nTableWrapper: null,
bDeferLoading: !1,
bInitialised: !1,
aoOpenRows: [],
sDom: null,
searchDelay: null,
sPaginationType: "two_button",
iStateDuration: 0,
aoStateSave: [],
aoStateLoad: [],
oSavedState: null,
oLoadedState: null,
sAjaxSource: null,
sAjaxDataProp: null,
bAjaxDataGet: !0,
jqXHR: null,
json: n,
oAjaxData: n,
fnServerData: null,
aoServerParams: [],
sServerMethod: null,
fnFormatNumber: null,
aLengthMenu: null,
iDraw: 0,
bDrawing: !1,
iDrawError: -1,
_iDisplayLength: 10,
_iDisplayStart: 0,
_iRecordsTotal: 0,
_iRecordsDisplay: 0,
oClasses: {},
bFiltered: !1,
bSorted: !1,
bSortCellsTop: null,
oInit: null,
aoDestroyCallback: [],
fnRecordsTotal: function () {
return "ssp" == mt(this) ? 1 * this._iRecordsTotal : this.aiDisplayMaster.length
},
fnRecordsDisplay: function () {
return "ssp" == mt(this) ? 1 * this._iRecordsDisplay : this.aiDisplay.length
},
fnDisplayEnd: function () {
var e = this._iDisplayLength,
t = this._iDisplayStart,
i = t + e,
n = this.aiDisplay.length,
a = this.oFeatures,
r = a.bPaginate;
return a.bServerSide ? !1 === r || -1 === e ? t + n : Math.min(t + e, this._iRecordsDisplay) : !r || i > n || -1 === e ? n : i
},
oInstance: null,
sInstance: null,
iTabIndex: 0,
nScrollHead: null,
nScrollFoot: null,
aLastSort: [],
oPlugins: {},
rowIdFn: null,
rowId: null
}, l.ext = a = {
buttons: {},
classes: {},
builder: "-source-",
errMode: "alert",
feature: [],
search: [],
selector: {
cell: [],
column: [],
row: []
},
internal: {},
legacy: {
ajax: null
},
pager: {},
renderer: {
pageButton: {},
header: {}
},
order: {},
type: {
detect: [],
search: {},
order: {}
},
_unique: 0,
fnVersionCheck: l.fnVersionCheck,
iApiIndex: 0,
oJUIClasses: {},
sVersion: l.version
}, e.extend(a, {
afnFiltering: a.search,
aTypes: a.type.detect,
ofnSearch: a.type.search,
oSort: a.type.order,
afnSortData: a.order,
aoFeatures: a.feature,
oApi: a.internal,
oStdClasses: a.classes,
oPagination: a.pager
}), e.extend(l.ext.classes, {
sTable: "dataTable",
sNoFooter: "no-footer",
sPageButton: "paginate_button",
sPageButtonActive: "current",
sPageButtonDisabled: "disabled",
sStripeOdd: "odd",
sStripeEven: "even",
sRowEmpty: "dataTables_empty",
sWrapper: "dataTables_wrapper",
sFilter: "dataTables_filter",
sInfo: "dataTables_info",
sPaging: "dataTables_paginate paging_",
sLength: "dataTables_length",
sProcessing: "dataTables_processing",
sSortAsc: "sorting_asc",
sSortDesc: "sorting_desc",
sSortable: "sorting",
sSortableAsc: "sorting_desc_disabled",
sSortableDesc: "sorting_asc_disabled",
sSortableNone: "sorting_disabled",
sSortColumn: "sorting_",
sFilterInput: "",
sLengthSelect: "",
sScrollWrapper: "dataTables_scroll",
sScrollHead: "dataTables_scrollHead",
sScrollHeadInner: "dataTables_scrollHeadInner",
sScrollBody: "dataTables_scrollBody",
sScrollFoot: "dataTables_scrollFoot",
sScrollFootInner: "dataTables_scrollFootInner",
sHeaderTH: "",
sFooterTH: "",
sSortJUIAsc: "",
sSortJUIDesc: "",
sSortJUI: "",
sSortJUIAscAllowed: "",
sSortJUIDescAllowed: "",
sSortJUIWrapper: "",
sSortIcon: "",
sJUIHeader: "",
sJUIFooter: ""
});
var $t = l.ext.pager;
function At(e, t) {
var i = [],
n = $t.numbers_length,
a = Math.floor(n / 2);
return t <= n ? i = x(0, t) : e <= a ? ((i = x(0, n - 2)).push("ellipsis"), i.push(t - 1)) : e >= t - 1 - a ? ((i = x(t - (n - 2), t)).splice(0, 0, "ellipsis"), i.splice(0, 0, 0)) : ((i = x(e - a + 2, e + a - 1)).push("ellipsis"), i.push(t - 1), i.splice(0, 0, "ellipsis"), i.splice(0, 0, 0)), i.DT_el = "span", i
}
e.extend($t, {
simple: function (e, t) {
return ["previous", "next"]
},
full: function (e, t) {
return ["first", "previous", "next", "last"]
},
numbers: function (e, t) {
return [At(e, t)]
},
simple_numbers: function (e, t) {
return ["previous", At(e, t), "next"]
},
full_numbers: function (e, t) {
return ["first", "previous", At(e, t), "next", "last"]
},
first_last_numbers: function (e, t) {
return ["first", At(e, t), "last"]
},
_numbers: At,
numbers_length: 7
}), e.extend(!0, l.ext.renderer, {
pageButton: {
_: function (t, a, r, s, o, l) {
var d, c, u, p = t.oClasses,
h = t.oLanguage.oPaginate,
f = t.oLanguage.oAria.paginate || {},
g = 0,
m = function (i, n) {
var a, s, u, v, b = p.sPageButtonDisabled,
y = function (e) {
ze(t, e.data.action, !0)
};
for (a = 0, s = n.length; a < s; a++)
if (u = n[a], Array.isArray(u)) {
var w = e("<" + (u.DT_el || "div") + "/>").appendTo(i);
m(w, u)
} else {
switch (d = null, c = u, v = t.iTabIndex, u) {
case "ellipsis":
i.append('<span class="ellipsis">…</span>');
break;
case "first":
d = h.sFirst, 0 === o && (v = -1, c += " " + b);
break;
case "previous":
d = h.sPrevious, 0 === o && (v = -1, c += " " + b);
break;
case "next":
d = h.sNext, 0 !== l && o !== l - 1 || (v = -1, c += " " + b);
break;
case "last":
d = h.sLast, 0 !== l && o !== l - 1 || (v = -1, c += " " + b);
break;
default:
d = t.fnFormatNumber(u + 1), c = o === u ? p.sPageButtonActive : ""
}
null !== d && (ut(e("<a>", {
class: p.sPageButton + " " + c,
"aria-controls": t.sTableId,
"aria-label": f[u],
"data-dt-idx": g,
tabindex: v,
id: 0 === r && "string" == typeof u ? t.sTableId + "_" + u : null
}).html(d).appendTo(i), {
action: u
}, y), g++)
}
};
try {
u = e(a).find(i.activeElement).data("dt-idx")
} catch (e) { }
m(e(a).empty(), s), u !== n && e(a).find("[data-dt-idx=" + u + "]").trigger("focus")
}
}
}), e.extend(l.ext.type.detect, [function (e, t) {
var i = t.oLanguage.sDecimal;
return b(e, i) ? "num" + i : null
}, function (e, t) {
if (e && !(e instanceof Date) && !p.test(e)) return null;
var i = Date.parse(e);
return null !== i && !isNaN(i) || g(e) ? "date" : null
}, function (e, t) {
var i = t.oLanguage.sDecimal;
return b(e, i, !0) ? "num-fmt" + i : null
}, function (e, t) {
var i = t.oLanguage.sDecimal;
return y(e, i) ? "html-num" + i : null
}, function (e, t) {
var i = t.oLanguage.sDecimal;
return y(e, i, !0) ? "html-num-fmt" + i : null
}, function (e, t) {
return g(e) || "string" == typeof e && -1 !== e.indexOf("<") ? "html" : null
}]), e.extend(l.ext.type.search, {
html: function (e) {
return g(e) ? e : "string" == typeof e ? e.replace(c, " ").replace(u, "") : ""
},
string: function (e) {
return g(e) ? e : "string" == typeof e ? e.replace(c, " ") : e
}
});
var Mt = function (e, t, i, n) {
return 0 === e || e && "-" !== e ? (t && (e = v(e, t)), e.replace && (i && (e = e.replace(i, "")), n && (e = e.replace(n, ""))), 1 * e) : -1 / 0
};
function Pt(t) {
e.each({
num: function (e) {
return Mt(e, t)
},
"num-fmt": function (e) {
return Mt(e, t, f)
},
"html-num": function (e) {
return Mt(e, t, u)
},
"html-num-fmt": function (e) {
return Mt(e, t, u, f)
}
}, (function (e, i) {
a.type.order[e + t + "-pre"] = i, e.match(/^html\-/) && (a.type.search[e + t] = a.type.search.html)
}))
}
e.extend(a.type.order, {
"date-pre": function (e) {
var t = Date.parse(e);
return isNaN(t) ? -1 / 0 : t
},
"html-pre": function (e) {
return g(e) ? "" : e.replace ? e.replace(/<.*?>/g, "").toLowerCase() : e + ""
},
"string-pre": function (e) {
return g(e) ? "" : "string" == typeof e ? e.toLowerCase() : e.toString ? e.toString() : ""
},
"string-asc": function (e, t) {
return e < t ? -1 : e > t ? 1 : 0
},
"string-desc": function (e, t) {
return e < t ? 1 : e > t ? -1 : 0
}
}), Pt(""), e.extend(!0, l.ext.renderer, {
header: {
_: function (t, i, n, a) {
e(t.nTable).on("order.dt.DT", (function (e, r, s, o) {
if (t === r) {
var l = n.idx;
i.removeClass(a.sSortAsc + " " + a.sSortDesc).addClass("asc" == o[l] ? a.sSortAsc : "desc" == o[l] ? a.sSortDesc : n.sSortingClass)
}
}))
},
jqueryui: function (t, i, n, a) {
e("<div/>").addClass(a.sSortJUIWrapper).append(i.contents()).append(e("<span/>").addClass(a.sSortIcon + " " + n.sSortingClassJUI)).appendTo(i), e(t.nTable).on("order.dt.DT", (function (e, r, s, o) {
if (t === r) {
var l = n.idx;
i.removeClass(a.sSortAsc + " " + a.sSortDesc).addClass("asc" == o[l] ? a.sSortAsc : "desc" == o[l] ? a.sSortDesc : n.sSortingClass), i.find("span." + a.sSortIcon).removeClass(a.sSortJUIAsc + " " + a.sSortJUIDesc + " " + a.sSortJUI + " " + a.sSortJUIAscAllowed + " " + a.sSortJUIDescAllowed).addClass("asc" == o[l] ? a.sSortJUIAsc : "desc" == o[l] ? a.sSortJUIDesc : n.sSortingClassJUI)
}
}))
}
}
});
var Ft = function (e) {
return "string" == typeof e ? e.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """) : e
};
function Nt(e) {
return function () {
var t = [ot(this[l.ext.iApiIndex])].concat(Array.prototype.slice.call(arguments));
return l.ext.internal[e].apply(this, t)
}
}
return l.render = {
number: function (e, t, i, n, a) {
return {
display: function (r) {
if ("number" != typeof r && "string" != typeof r) return r;
var s = r < 0 ? "-" : "",
o = parseFloat(r);
if (isNaN(o)) return Ft(r);
o = o.toFixed(i), r = Math.abs(o);
var l = parseInt(r, 10),
d = i ? t + (r - l).toFixed(i).substring(2) : "";
return s + (n || "") + l.toString().replace(/\B(?=(\d{3})+(?!\d))/g, e) + d + (a || "")
}
}
},
text: function () {
return {
display: Ft,
filter: Ft
}
}
}, e.extend(l.ext.internal, {
_fnExternApiFunc: Nt,
_fnBuildAjax: fe,
_fnAjaxUpdate: ge,
_fnAjaxParameters: me,
_fnAjaxUpdateDraw: ve,
_fnAjaxDataSrc: be,
_fnAddColumn: N,
_fnColumnOptions: R,
_fnAdjustColumnSizing: O,
_fnVisibleToColumnIndex: L,
_fnColumnIndexToVisible: z,
_fnVisbleColumns: j,
_fnGetColumns: H,
_fnColumnTypes: B,
_fnApplyColumnDefs: W,
_fnHungarianMap: k,
_fnCamelToHungarian: I,
_fnLanguageCompat: E,
_fnBrowserDetect: P,
_fnAddData: U,
_fnAddTr: V,
_fnNodeToDataIndex: function (e, t) {
return t._DT_RowIndex !== n ? t._DT_RowIndex : null
},
_fnNodeToColumnIndex: q,
_fnGetCellData: Y,
_fnSetCellData: X,
_fnSplitObjNotation: K,
_fnGetObjectDataFn: Z,
_fnSetObjectDataFn: Q,
_fnGetDataMaster: ee,
_fnClearTable: te,
_fnDeleteIndex: ie,
_fnInvalidate: ne,
_fnGetRowElements: ae,
_fnCreateTr: re,
_fnBuildHead: oe,
_fnDrawHead: le,
_fnDraw: de,
_fnReDraw: ce,
_fnAddOptionsHtml: ue,
_fnDetectHeader: pe,
_fnGetUniqueThs: he,
_fnFeatureHtmlFilter: ye,
_fnFilterComplete: we,
_fnFilterCustom: Se,
_fnFilterColumn: xe,
_fnFilter: _e,
_fnFilterCreateSearch: Ce,
_fnEscapeRegex: Te,
_fnFilterData: Ie,
_fnFeatureHtmlInfo: Ae,
_fnUpdateInfo: Me,
_fnInfoMacros: Pe,
_fnInitialise: Fe,
_fnInitComplete: Ne,
_fnLengthChange: Re,
_fnFeatureHtmlLength: Oe,
_fnFeatureHtmlPaginate: Le,
_fnPageChange: ze,
_fnFeatureHtmlProcessing: je,
_fnProcessingDisplay: He,
_fnFeatureHtmlTable: Be,
_fnScrollDraw: We,
_fnApplyToChildren: Ue,
_fnCalculateColumnWidths: qe,
_fnThrottle: Ye,
_fnConvertToWidth: Xe,
_fnGetWidestNode: Ge,
_fnGetMaxLenString: Je,
_fnStringToCss: Ke,
_fnSortFlatten: Ze,
_fnSort: Qe,
_fnSortAria: et,
_fnSortListener: tt,
_fnSortAttachListener: it,
_fnSortingClasses: nt,
_fnSortData: at,
_fnSaveState: rt,
_fnLoadState: st,
_fnSettingsFromNode: ot,
_fnLog: lt,
_fnMap: dt,
_fnBindAction: ut,
_fnCallbackReg: pt,
_fnCallbackFire: ht,
_fnLengthOverflow: ft,
_fnRenderer: gt,
_fnDataSource: mt,
_fnRowAttributes: se,
_fnExtend: ct,
_fnCalculateEnd: function () { }
}), e.fn.dataTable = l, l.$ = e, e.fn.dataTableSettings = l.settings, e.fn.dataTableExt = l.ext, e.fn.DataTable = function (t) {
return e(this).dataTable(t).api()
}, e.each(l, (function (t, i) {
e.fn.DataTable[t] = i
})), e.fn.dataTable
}(e, window, document)
}.apply(t, n)) || (e.exports = a)
}()
}, , , , function (e, t, i) {
var n, a, r;
a = [i(0)], void 0 === (r = "function" == typeof (n = function (e) {
return e.ui = e.ui || {}, e.ui.version = "1.12.1"
}) ? n.apply(t, a) : n) || (e.exports = r)
}, , , , function (e, t, i) {
var n, a;
/*!
* JavaScript Cookie v2.2.1
* https://github.com/js-cookie/js-cookie
*
* Copyright 2006, 2015 Klaus Hartl & Fagner Brack
* Released under the MIT license
*/
! function (r) {
if (void 0 === (a = "function" == typeof (n = r) ? n.call(t, i, t, e) : n) || (e.exports = a), !0, e.exports = r(), !!0) {
var s = window.Cookies,
o = window.Cookies = r();
o.noConflict = function () {
return window.Cookies = s, o
}
}
}((function () {
function e() {
for (var e = 0, t = {}; e < arguments.length; e++) {
var i = arguments[e];
for (var n in i) t[n] = i[n]
}
return t
}
function t(e) {
return e.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent)
}
return function i(n) {
function a() { }
function r(t, i, r) {
if ("undefined" != typeof document) {
"number" == typeof (r = e({
path: "/"
}, a.defaults, r)).expires && (r.expires = new Date(1 * new Date + 864e5 * r.expires)), r.expires = r.expires ? r.expires.toUTCString() : "";
try {
var s = JSON.stringify(i);
/^[\{\[]/.test(s) && (i = s)
} catch (e) { }
i = n.write ? n.write(i, t) : encodeURIComponent(String(i)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent), t = encodeURIComponent(String(t)).replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent).replace(/[\(\)]/g, escape);
var o = "";
for (var l in r) r[l] && (o += "; " + l, !0 !== r[l] && (o += "=" + r[l].split(";")[0]));
return document.cookie = t + "=" + i + o
}
}
function s(e, i) {
if ("undefined" != typeof document) {
for (var a = {}, r = document.cookie ? document.cookie.split("; ") : [], s = 0; s < r.length; s++) {
var o = r[s].split("="),
l = o.slice(1).join("=");
i || '"' !== l.charAt(0) || (l = l.slice(1, -1));
try {
var d = t(o[0]);
if (l = (n.read || n)(l, d) || t(l), i) try {
l = JSON.parse(l)
} catch (e) { }
if (a[d] = l, e === d) break
} catch (e) { }
}
return e ? a[e] : a
}
}
return a.set = r, a.get = function (e) {
return s(e, !1)
}, a.getJSON = function (e) {
return s(e, !0)
}, a.remove = function (t, i) {
r(t, "", e(i, {
expires: -1
}))
}, a.defaults = {}, a.withConverter = i, a
}((function () { }))
}))
}, , , function (e, t, i) {
i(23), i(12), i(30), i(68), i(69), i(67), e.exports = i(62)
}, function (e, t, i) { }, , , , , , , function (e, t, i) {
"use strict";
i.r(t);
var n = i(0),
a = i.n(n),
r = i(8);
a()((function () {
a()((function () {
Object(r.b)(document)
}))
}))
}, function (e, t, i) {
var n, a, r, s;
"undefined" != typeof window && window, r = {
id: "ev-emitter/ev-emitter",
exports: {},
loaded: !1
}, n = "function" == typeof (a = function () {
function e() { }
var t = e.prototype;
return t.on = function (e, t) {
if (e && t) {
var i = this._events = this._events || {},
n = i[e] = i[e] || [];
return -1 == n.indexOf(t) && n.push(t), this
}
}, t.once = function (e, t) {
if (e && t) {
this.on(e, t);
var i = this._onceEvents = this._onceEvents || {};
return (i[e] = i[e] || {})[t] = !0, this
}
}, t.off = function (e, t) {
var i = this._events && this._events[e];
if (i && i.length) {
var n = i.indexOf(t);
return -1 != n && i.splice(n, 1), this
}
}, t.emitEvent = function (e, t) {
var i = this._events && this._events[e];
if (i && i.length) {
i = i.slice(0), t = t || [];
for (var n = this._onceEvents && this._onceEvents[e], a = 0; a < i.length; a++) {
var r = i[a];
n && n[r] && (this.off(e, r), delete n[r]), r.apply(this, t)
}
return this
}
}, t.allOff = function () {
delete this._events, delete this._onceEvents
}, e
}) ? a.call(r.exports, i, r.exports, r) : a, r.loaded = !0, void 0 !== n || (n = r.exports),
/*!
* imagesLoaded v4.1.4
* JavaScript is all like "You images are done yet or what?"
* MIT License
*/
function (i, a) {
"use strict";
void 0 === (s = function (e) {
return function (e, t) {
var i = e.jQuery,
n = e.console;
function a(e, t) {
for (var i in t) e[i] = t[i];
return e
}
var r = Array.prototype.slice;
function s(e, t, o) {
if (!(this instanceof s)) return new s(e, t, o);
var l, d = e;
("string" == typeof e && (d = document.querySelectorAll(e)), d) ? (this.elements = (l = d, Array.isArray(l) ? l : "object" == typeof l && "number" == typeof l.length ? r.call(l) : [l]), this.options = a({}, this.options), "function" == typeof t ? o = t : a(this.options, t), o && this.on("always", o), this.getImages(), i && (this.jqDeferred = new i.Deferred), setTimeout(this.check.bind(this))) : n.error("Bad element for imagesLoaded " + (d || e))
}
s.prototype = Object.create(t.prototype), s.prototype.options = {}, s.prototype.getImages = function () {
this.images = [], this.elements.forEach(this.addElementImages, this)
}, s.prototype.addElementImages = function (e) {
"IMG" == e.nodeName && this.addImage(e), !0 === this.options.background && this.addElementBackgroundImages(e);
var t = e.nodeType;
if (t && o[t]) {
for (var i = e.querySelectorAll("img"), n = 0; n < i.length; n++) {
var a = i[n];
this.addImage(a)
}
if ("string" == typeof this.options.background) {
var r = e.querySelectorAll(this.options.background);
for (n = 0; n < r.length; n++) {
var s = r[n];
this.addElementBackgroundImages(s)
}
}
}
};
var o = {
1: !0,
9: !0,
11: !0
};
function l(e) {
this.img = e
}
function d(e, t) {
this.url = e, this.element = t, this.img = new Image
}
return s.prototype.addElementBackgroundImages = function (e) {
var t = getComputedStyle(e);
if (t)
for (var i = /url\((['"])?(.*?)\1\)/gi, n = i.exec(t.backgroundImage); null !== n;) {
var a = n && n[2];
a && this.addBackground(a, e), n = i.exec(t.backgroundImage)
}
}, s.prototype.addImage = function (e) {
var t = new l(e);
this.images.push(t)
}, s.prototype.addBackground = function (e, t) {
var i = new d(e, t);
this.images.push(i)
}, s.prototype.check = function () {
var e = this;
function t(t, i, n) {
setTimeout((function () {
e.progress(t, i, n)
}))
}
this.progressedCount = 0, this.hasAnyBroken = !1, this.images.length ? this.images.forEach((function (e) {
e.once("progress", t), e.check()
})) : this.complete()
}, s.prototype.progress = function (e, t, i) {
this.progressedCount++, this.hasAnyBroken = this.hasAnyBroken || !e.isLoaded, this.emitEvent("progress", [this, e, t]), this.jqDeferred && this.jqDeferred.notify && this.jqDeferred.notify(this, e), this.progressedCount == this.images.length && this.complete(), this.options.debug && n && n.log("progress: " + i, e, t)
}, s.prototype.complete = function () {
var e = this.hasAnyBroken ? "fail" : "done";
if (this.isComplete = !0, this.emitEvent(e, [this]), this.emitEvent("always", [this]), this.jqDeferred) {
var t = this.hasAnyBroken ? "reject" : "resolve";
this.jqDeferred[t](this)
}
}, l.prototype = Object.create(t.prototype), l.prototype.check = function () {
this.getIsImageComplete() ? this.confirm(0 !== this.img.naturalWidth, "naturalWidth") : (this.proxyImage = new Image, this.proxyImage.addEventListener("load", this), this.proxyImage.addEventListener("error", this), this.img.addEventListener("load", this), this.img.addEventListener("error", this), this.proxyImage.src = this.img.src)
}, l.prototype.getIsImageComplete = function () {
return this.img.complete && this.img.naturalWidth
}, l.prototype.confirm = function (e, t) {
this.isLoaded = e, this.emitEvent("progress", [this, this.img, t])
}, l.prototype.handleEvent = function (e) {
var t = "on" + e.type;
this[t] && this[t](e)
}, l.prototype.onload = function () {
this.confirm(!0, "onload"), this.unbindEvents()
}, l.prototype.onerror = function () {
this.confirm(!1, "onerror"), this.unbindEvents()
}, l.prototype.unbindEvents = function () {
this.proxyImage.removeEventListener("load", this), this.proxyImage.removeEventListener("error", this), this.img.removeEventListener("load", this), this.img.removeEventListener("error", this)
}, d.prototype = Object.create(l.prototype), d.prototype.check = function () {
this.img.addEventListener("load", this), this.img.addEventListener("error", this), this.img.src = this.url, this.getIsImageComplete() && (this.confirm(0 !== this.img.naturalWidth, "naturalWidth"), this.unbindEvents())
}, d.prototype.unbindEvents = function () {
this.img.removeEventListener("load", this), this.img.removeEventListener("error", this)
}, d.prototype.confirm = function (e, t) {
this.isLoaded = e, this.emitEvent("progress", [this, this.element, t])
}, s.makeJQueryPlugin = function (t) {
(t = t || e.jQuery) && ((i = t).fn.imagesLoaded = function (e, t) {
return new s(this, e, t).jqDeferred.promise(i(this))
})
}, s.makeJQueryPlugin(), s
}(i, e)
}.apply(t, [n])) || (e.exports = s)
}("undefined" != typeof window ? window : this)
}, function (module, exports) {
var JSON;
JSON || (JSON = {}),
function () {
"use strict";
var global = Function("return this")(),
JSON = global.JSON;
function f(e) {
return e < 10 ? "0" + e : e
}
JSON || (JSON = {}), "function" != typeof Date.prototype.toJSON && (Date.prototype.toJSON = function (e) {
return isFinite(this.valueOf()) ? this.getUTCFullYear() + "-" + f(this.getUTCMonth() + 1) + "-" + f(this.getUTCDate()) + "T" + f(this.getUTCHours()) + ":" + f(this.getUTCMinutes()) + ":" + f(this.getUTCSeconds()) + "Z" : null
}, String.prototype.toJSON = Number.prototype.toJSON = Boolean.prototype.toJSON = function (e) {
return this.valueOf()
});
var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
gap, indent, meta = {
"\b": "\\b",
"\t": "\\t",
"\n": "\\n",
"\f": "\\f",
"\r": "\\r",
'"': '\\"',
"\\": "\\\\"
},
rep;
function quote(e) {
return escapable.lastIndex = 0, escapable.test(e) ? '"' + e.replace(escapable, (function (e) {
var t = meta[e];
return "string" == typeof t ? t : "\\u" + ("0000" + e.charCodeAt(0).toString(16)).slice(-4)
})) + '"' : '"' + e + '"'
}
function str(e, t) {
var i, n, a, r, s, o = gap,
l = t[e];
switch (l && "object" == typeof l && "function" == typeof l.toJSON && (l = l.toJSON(e)), "function" == typeof rep && (l = rep.call(t, e, l)), typeof l) {
case "string":
return quote(l);
case "number":
return isFinite(l) ? String(l) : "null";
case "boolean":
case "null":
return String(l);
case "object":
if (!l) return "null";
if (gap += indent, s = [], "[object Array]" === Object.prototype.toString.apply(l)) {
for (r = l.length, i = 0; i < r; i += 1) s[i] = str(i, l) || "null";
return a = 0 === s.length ? "[]" : gap ? "[\n" + gap + s.join(",\n" + gap) + "\n" + o + "]" : "[" + s.join(",") + "]", gap = o, a
}
if (rep && "object" == typeof rep)
for (r = rep.length, i = 0; i < r; i += 1) "string" == typeof rep[i] && (a = str(n = rep[i], l)) && s.push(quote(n) + (gap ? ": " : ":") + a);
else
for (n in l) Object.prototype.hasOwnProperty.call(l, n) && (a = str(n, l)) && s.push(quote(n) + (gap ? ": " : ":") + a);
return a = 0 === s.length ? "{}" : gap ? "{\n" + gap + s.join(",\n" + gap) + "\n" + o + "}" : "{" + s.join(",") + "}", gap = o, a
}
}
"function" != typeof JSON.stringify && (JSON.stringify = function (e, t, i) {
var n;
if (gap = "", indent = "", "number" == typeof i)
for (n = 0; n < i; n += 1) indent += " ";
else "string" == typeof i && (indent = i);
if (rep = t, t && "function" != typeof t && ("object" != typeof t || "number" != typeof t.length)) throw new Error("JSON.stringify");
return str("", {
"": e
})
}), "function" != typeof JSON.parse && (JSON.parse = function (text, reviver) {
var j;
function walk(e, t) {
var i, n, a = e[t];
if (a && "object" == typeof a)
for (i in a) Object.prototype.hasOwnProperty.call(a, i) && (void 0 !== (n = walk(a, i)) ? a[i] = n : delete a[i]);
return reviver.call(e, t, a)
}
if (text = String(text), cx.lastIndex = 0, cx.test(text) && (text = text.replace(cx, (function (e) {
return "\\u" + ("0000" + e.charCodeAt(0).toString(16)).slice(-4)
}))), /^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]").replace(/(?:^|:|,)(?:\s*\[)+/g, ""))) return j = eval("(" + text + ")"), "function" == typeof reviver ? walk({
"": j
}, "") : j;
throw new SyntaxError("JSON.parse")
}), global.JSON = JSON, module.exports = JSON
}()
}, function (e, t, i) {
! function (e) {
"use strict";
e(i(0), i(34))
}((function (e) {
"use strict";
function t(t) {
var i = "dragover" === t;
return function (n) {
n.dataTransfer = n.originalEvent && n.originalEvent.dataTransfer;
var a = n.dataTransfer;
a && -1 !== e.inArray("Files", a.types) && !1 !== this._trigger(t, e.Event(t, {
delegatedEvent: n
})) && (n.preventDefault(), i && (a.dropEffect = "copy"))
}
}
var i;
e.support.fileInput = !(new RegExp("(Android (1\\.[0156]|2\\.[01]))|(Windows Phone (OS 7|8\\.0))|(XBLWP)|(ZuneWP)|(WPDesktop)|(w(eb)?OSBrowser)|(webOS)|(Kindle/(1\\.0|2\\.[05]|3\\.0))").test(window.navigator.userAgent) || e('<input type="file"/>').prop("disabled")), e.support.xhrFileUpload = !(!window.ProgressEvent || !window.FileReader), e.support.xhrFormDataFileUpload = !!window.FormData, e.support.blobSlice = window.Blob && (Blob.prototype.slice || Blob.prototype.webkitSlice || Blob.prototype.mozSlice), e.widget("blueimp.fileupload", {
options: {
dropZone: e(document),
pasteZone: void 0,
fileInput: void 0,
replaceFileInput: !0,
paramName: void 0,
singleFileUploads: !0,
limitMultiFileUploads: void 0,
limitMultiFileUploadSize: void 0,
limitMultiFileUploadSizeOverhead: 512,
sequentialUploads: !1,
limitConcurrentUploads: void 0,
forceIframeTransport: !1,
redirect: void 0,
redirectParamName: void 0,
postMessage: void 0,
multipart: !0,
maxChunkSize: void 0,
uploadedBytes: void 0,
recalculateProgress: !0,
progressInterval: 100,
bitrateInterval: 500,
autoUpload: !0,
uniqueFilenames: void 0,
messages: {
uploadedBytes: "Uploaded bytes exceed file size"
},
i18n: function (t, i) {
return t = this.messages[t] || t.toString(), i && e.each(i, (function (e, i) {
t = t.replace("{" + e + "}", i)
})), t
},
formData: function (e) {
return e.serializeArray()
},
add: function (t, i) {
if (t.isDefaultPrevented()) return !1;
(i.autoUpload || !1 !== i.autoUpload && e(this).fileupload("option", "autoUpload")) && i.process().done((function () {
i.submit()
}))
},
processData: !1,
contentType: !1,
cache: !1,
timeout: 0
},
_promisePipe: (i = e.fn.jquery.split("."), Number(i[0]) > 1 || Number(i[1]) > 7 ? "then" : "pipe"),
_specialOptions: ["fileInput", "dropZone", "pasteZone", "multipart", "forceIframeTransport"],
_blobSlice: e.support.blobSlice && function () {
var e = this.slice || this.webkitSlice || this.mozSlice;
return e.apply(this, arguments)
},
_BitrateTimer: function () {
this.timestamp = Date.now ? Date.now() : (new Date).getTime(), this.loaded = 0, this.bitrate = 0, this.getBitrate = function (e, t, i) {
var n = e - this.timestamp;
return (!this.bitrate || !i || n > i) && (this.bitrate = (t - this.loaded) * (1e3 / n) * 8, this.loaded = t, this.timestamp = e), this.bitrate
}
},
_isXHRUpload: function (t) {
return !t.forceIframeTransport && (!t.multipart && e.support.xhrFileUpload || e.support.xhrFormDataFileUpload)
},
_getFormData: function (t) {
var i;
return "function" === e.type(t.formData) ? t.formData(t.form) : e.isArray(t.formData) ? t.formData : "object" === e.type(t.formData) ? (i = [], e.each(t.formData, (function (e, t) {
i.push({
name: e,
value: t
})
})), i) : []
},
_getTotal: function (t) {
var i = 0;
return e.each(t, (function (e, t) {
i += t.size || 1
})), i
},
_initProgressObject: function (t) {
var i = {
loaded: 0,
total: 0,
bitrate: 0
};
t._progress ? e.extend(t._progress, i) : t._progress = i
},
_initResponseObject: function (e) {
var t;
if (e._response)
for (t in e._response) Object.prototype.hasOwnProperty.call(e._response, t) && delete e._response[t];
else e._response = {}
},
_onProgress: function (t, i) {
if (t.lengthComputable) {
var n, a = Date.now ? Date.now() : (new Date).getTime();
if (i._time && i.progressInterval && a - i._time < i.progressInterval && t.loaded !== t.total) return;
i._time = a, n = Math.floor(t.loaded / t.total * (i.chunkSize || i._progress.total)) + (i.uploadedBytes || 0), this._progress.loaded += n - i._progress.loaded, this._progress.bitrate = this._bitrateTimer.getBitrate(a, this._progress.loaded, i.bitrateInterval), i._progress.loaded = i.loaded = n, i._progress.bitrate = i.bitrate = i._bitrateTimer.getBitrate(a, n, i.bitrateInterval), this._trigger("progress", e.Event("progress", {
delegatedEvent: t
}), i), this._trigger("progressall", e.Event("progressall", {
delegatedEvent: t
}), this._progress)
}
},
_initProgressListener: function (t) {
var i = this,
n = t.xhr ? t.xhr() : e.ajaxSettings.xhr();
n.upload && (e(n.upload).on("progress", (function (e) {
var n = e.originalEvent;
e.lengthComputable = n.lengthComputable, e.loaded = n.loaded, e.total = n.total, i._onProgress(e, t)
})), t.xhr = function () {
return n
})
},
_deinitProgressListener: function (t) {
var i = t.xhr ? t.xhr() : e.ajaxSettings.xhr();
i.upload && e(i.upload).off("progress")
},
_isInstanceOf: function (e, t) {
return Object.prototype.toString.call(t) === "[object " + e + "]"
},
_getUniqueFilename: function (e, t) {
return t[e = String(e)] ? (e = e.replace(/(?: \(([\d]+)\))?(\.[^.]+)?$/, (function (e, t, i) {
return " (" + (t ? Number(t) + 1 : 1) + ")" + (i || "")
})), this._getUniqueFilename(e, t)) : (t[e] = !0, e)
},
_initXHRData: function (t) {
var i, n = this,
a = t.files[0],
r = t.multipart || !e.support.xhrFileUpload,
s = "array" === e.type(t.paramName) ? t.paramName[0] : t.paramName;
t.headers = e.extend({}, t.headers), t.contentRange && (t.headers["Content-Range"] = t.contentRange), r && !t.blob && this._isInstanceOf("File", a) || (t.headers["Content-Disposition"] = 'attachment; filename="' + encodeURI(a.uploadName || a.name) + '"'), r ? e.support.xhrFormDataFileUpload && (t.postMessage ? (i = this._getFormData(t), t.blob ? i.push({
name: s,
value: t.blob
}) : e.each(t.files, (function (n, a) {
i.push({
name: "array" === e.type(t.paramName) && t.paramName[n] || s,
value: a
})
}))) : (n._isInstanceOf("FormData", t.formData) ? i = t.formData : (i = new FormData, e.each(this._getFormData(t), (function (e, t) {
i.append(t.name, t.value)
}))), t.blob ? i.append(s, t.blob, a.uploadName || a.name) : e.each(t.files, (function (a, r) {
if (n._isInstanceOf("File", r) || n._isInstanceOf("Blob", r)) {
var o = r.uploadName || r.name;
t.uniqueFilenames && (o = n._getUniqueFilename(o, t.uniqueFilenames)), i.append("array" === e.type(t.paramName) && t.paramName[a] || s, r, o)
}
}))), t.data = i) : (t.contentType = a.type || "application/octet-stream", t.data = t.blob || a), t.blob = null
},
_initIframeSettings: function (t) {
var i = e("<a></a>").prop("href", t.url).prop("host");
t.dataType = "iframe " + (t.dataType || ""), t.formData = this._getFormData(t), t.redirect && i && i !== location.host && t.formData.push({
name: t.redirectParamName || "redirect",
value: t.redirect
})
},
_initDataSettings: function (e) {
this._isXHRUpload(e) ? (this._chunkedUpload(e, !0) || (e.data || this._initXHRData(e), this._initProgressListener(e)), e.postMessage && (e.dataType = "postmessage " + (e.dataType || ""))) : this._initIframeSettings(e)
},
_getParamName: function (t) {
var i = e(t.fileInput),
n = t.paramName;
return n ? e.isArray(n) || (n = [n]) : (n = [], i.each((function () {
for (var t = e(this), i = t.prop("name") || "files[]", a = (t.prop("files") || [1]).length; a;) n.push(i), a -= 1
})), n.length || (n = [i.prop("name") || "files[]"])), n
},
_initFormSettings: function (t) {
t.form && t.form.length || (t.form = e(t.fileInput.prop("form")), t.form.length || (t.form = e(this.options.fileInput.prop("form")))), t.paramName = this._getParamName(t), t.url || (t.url = t.form.prop("action") || location.href), t.type = (t.type || "string" === e.type(t.form.prop("method")) && t.form.prop("method") || "").toUpperCase(), "POST" !== t.type && "PUT" !== t.type && "PATCH" !== t.type && (t.type = "POST"), t.formAcceptCharset || (t.formAcceptCharset = t.form.attr("accept-charset"))
},
_getAJAXSettings: function (t) {
var i = e.extend({}, this.options, t);
return this._initFormSettings(i), this._initDataSettings(i), i
},
_getDeferredState: function (e) {
return e.state ? e.state() : e.isResolved() ? "resolved" : e.isRejected() ? "rejected" : "pending"
},
_enhancePromise: function (e) {
return e.success = e.done, e.error = e.fail, e.complete = e.always, e
},
_getXHRPromise: function (t, i, n) {
var a = e.Deferred(),
r = a.promise();
return i = i || this.options.context || r, !0 === t ? a.resolveWith(i, n) : !1 === t && a.rejectWith(i, n), r.abort = a.promise, this._enhancePromise(r)
},
_addConvenienceMethods: function (t, i) {
var n = this,
a = function (t) {
return e.Deferred().resolveWith(n, t).promise()
};
i.process = function (t, r) {
return (t || r) && (i._processQueue = this._processQueue = (this._processQueue || a([this]))[n._promisePipe]((function () {
return i.errorThrown ? e.Deferred().rejectWith(n, [i]).promise() : a(arguments)
}))[n._promisePipe](t, r)), this._processQueue || a([this])
}, i.submit = function () {
return "pending" !== this.state() && (i.jqXHR = this.jqXHR = !1 !== n._trigger("submit", e.Event("submit", {
delegatedEvent: t
}), this) && n._onSend(t, this)), this.jqXHR || n._getXHRPromise()
}, i.abort = function () {
return this.jqXHR ? this.jqXHR.abort() : (this.errorThrown = "abort", n._trigger("fail", null, this), n._getXHRPromise(!1))
}, i.state = function () {
return this.jqXHR ? n._getDeferredState(this.jqXHR) : this._processQueue ? n._getDeferredState(this._processQueue) : void 0
}, i.processing = function () {
return !this.jqXHR && this._processQueue && "pending" === n._getDeferredState(this._processQueue)
}, i.progress = function () {
return this._progress
}, i.response = function () {
return this._response
}
},
_getUploadedBytes: function (e) {
var t = e.getResponseHeader("Range"),
i = t && t.split("-"),
n = i && i.length > 1 && parseInt(i[1], 10);
return n && n + 1
},
_chunkedUpload: function (t, i) {
t.uploadedBytes = t.uploadedBytes || 0;
var n, a, r = this,
s = t.files[0],
o = s.size,
l = t.uploadedBytes,
d = t.maxChunkSize || o,
c = this._blobSlice,
u = e.Deferred(),
p = u.promise();
return !(!(this._isXHRUpload(t) && c && (l || ("function" === e.type(d) ? d(t) : d) < o)) || t.data) && (!!i || (l >= o ? (s.error = t.i18n("uploadedBytes"), this._getXHRPromise(!1, t.context, [null, "error", s.error])) : (a = function () {
var i = e.extend({}, t),
p = i._progress.loaded;
i.blob = c.call(s, l, l + ("function" === e.type(d) ? d(i) : d), s.type), i.chunkSize = i.blob.size, i.contentRange = "bytes " + l + "-" + (l + i.chunkSize - 1) + "/" + o, r._trigger("chunkbeforesend", null, i), r._initXHRData(i), r._initProgressListener(i), n = (!1 !== r._trigger("chunksend", null, i) && e.ajax(i) || r._getXHRPromise(!1, i.context)).done((function (n, s, d) {
l = r._getUploadedBytes(d) || l + i.chunkSize, p + i.chunkSize - i._progress.loaded && r._onProgress(e.Event("progress", {
lengthComputable: !0,
loaded: l - i.uploadedBytes,
total: l - i.uploadedBytes
}), i), t.uploadedBytes = i.uploadedBytes = l, i.result = n, i.textStatus = s, i.jqXHR = d, r._trigger("chunkdone", null, i), r._trigger("chunkalways", null, i), l < o ? a() : u.resolveWith(i.context, [n, s, d])
})).fail((function (e, t, n) {
i.jqXHR = e, i.textStatus = t, i.errorThrown = n, r._trigger("chunkfail", null, i), r._trigger("chunkalways", null, i), u.rejectWith(i.context, [e, t, n])
})).always((function () {
r._deinitProgressListener(i)
}))
}, this._enhancePromise(p), p.abort = function () {
return n.abort()
}, a(), p)))
},
_beforeSend: function (e, t) {
0 === this._active && (this._trigger("start"), this._bitrateTimer = new this._BitrateTimer, this._progress.loaded = this._progress.total = 0, this._progress.bitrate = 0), this._initResponseObject(t), this._initProgressObject(t), t._progress.loaded = t.loaded = t.uploadedBytes || 0, t._progress.total = t.total = this._getTotal(t.files) || 1, t._progress.bitrate = t.bitrate = 0, this._active += 1, this._progress.loaded += t.loaded, this._progress.total += t.total
},
_onDone: function (t, i, n, a) {
var r = a._progress.total,
s = a._response;
a._progress.loaded < r && this._onProgress(e.Event("progress", {
lengthComputable: !0,
loaded: r,
total: r
}), a), s.result = a.result = t, s.textStatus = a.textStatus = i, s.jqXHR = a.jqXHR = n, this._trigger("done", null, a)
},
_onFail: function (e, t, i, n) {
var a = n._response;
n.recalculateProgress && (this._progress.loaded -= n._progress.loaded, this._progress.total -= n._progress.total), a.jqXHR = n.jqXHR = e, a.textStatus = n.textStatus = t, a.errorThrown = n.errorThrown = i, this._trigger("fail", null, n)
},
_onAlways: function (e, t, i, n) {
this._trigger("always", null, n)
},
_onSend: function (t, i) {
i.submit || this._addConvenienceMethods(t, i);
var n, a, r, s, o = this,
l = o._getAJAXSettings(i),
d = function () {
return o._sending += 1, l._bitrateTimer = new o._BitrateTimer, n = n || ((a || !1 === o._trigger("send", e.Event("send", {
delegatedEvent: t
}), l)) && o._getXHRPromise(!1, l.context, a) || o._chunkedUpload(l) || e.ajax(l)).done((function (e, t, i) {
o._onDone(e, t, i, l)
})).fail((function (e, t, i) {
o._onFail(e, t, i, l)
})).always((function (e, t, i) {
if (o._deinitProgressListener(l), o._onAlways(e, t, i, l), o._sending -= 1, o._active -= 1, l.limitConcurrentUploads && l.limitConcurrentUploads > o._sending)
for (var n = o._slots.shift(); n;) {
if ("pending" === o._getDeferredState(n)) {
n.resolve();
break
}
n = o._slots.shift()
}
0 === o._active && o._trigger("stop")
}))
};
return this._beforeSend(t, l), this.options.sequentialUploads || this.options.limitConcurrentUploads && this.options.limitConcurrentUploads <= this._sending ? (this.options.limitConcurrentUploads > 1 ? (r = e.Deferred(), this._slots.push(r), s = r[o._promisePipe](d)) : (this._sequence = this._sequence[o._promisePipe](d, d), s = this._sequence), s.abort = function () {
return a = [void 0, "abort", "abort"], n ? n.abort() : (r && r.rejectWith(l.context, a), d())
}, this._enhancePromise(s)) : d()
},
_onAdd: function (t, i) {
var n, a, r, s, o = this,
l = !0,
d = e.extend({}, this.options, i),
c = i.files,
u = c.length,
p = d.limitMultiFileUploads,
h = d.limitMultiFileUploadSize,
f = d.limitMultiFileUploadSizeOverhead,
g = 0,
m = this._getParamName(d),
v = 0;
if (!u) return !1;
if (h && void 0 === c[0].size && (h = void 0), (d.singleFileUploads || p || h) && this._isXHRUpload(d))
if (d.singleFileUploads || h || !p)
if (!d.singleFileUploads && h)
for (r = [], n = [], s = 0; s < u; s += 1) g += c[s].size + f, (s + 1 === u || g + c[s + 1].size + f > h || p && s + 1 - v >= p) && (r.push(c.slice(v, s + 1)), (a = m.slice(v, s + 1)).length || (a = m), n.push(a), v = s + 1, g = 0);
else n = m;
else
for (r = [], n = [], s = 0; s < u; s += p) r.push(c.slice(s, s + p)), (a = m.slice(s, s + p)).length || (a = m), n.push(a);
else r = [c], n = [m];
return i.originalFiles = c, e.each(r || c, (function (a, s) {
var d = e.extend({}, i);
return d.files = r ? s : [s], d.paramName = n[a], o._initResponseObject(d), o._initProgressObject(d), o._addConvenienceMethods(t, d), l = o._trigger("add", e.Event("add", {
delegatedEvent: t
}), d)
})), l
},
_replaceFileInput: function (t) {
var i = t.fileInput,
n = i.clone(!0),
a = i.is(document.activeElement);
t.fileInputClone = n, e("<form></form>").append(n)[0].reset(), i.after(n).detach(), a && n.trigger("focus"), e.cleanData(i.off("remove")), this.options.fileInput = this.options.fileInput.map((function (e, t) {
return t === i[0] ? n[0] : t
})), i[0] === this.element[0] && (this.element = n)
},
_handleFileTreeEntry: function (t, i) {
var n, a = this,
r = e.Deferred(),
s = [],
o = function (e) {
e && !e.entry && (e.entry = t), r.resolve([e])
},
l = function () {
n.readEntries((function (e) {
e.length ? (s = s.concat(e), l()) : function (e) {
a._handleFileTreeEntries(e, i + t.name + "/").done((function (e) {
r.resolve(e)
})).fail(o)
}(s)
}), o)
};
return i = i || "", t.isFile ? t._file ? (t._file.relativePath = i, r.resolve(t._file)) : t.file((function (e) {
e.relativePath = i, r.resolve(e)
}), o) : t.isDirectory ? (n = t.createReader(), l()) : r.resolve([]), r.promise()
},
_handleFileTreeEntries: function (t, i) {
var n = this;
return e.when.apply(e, e.map(t, (function (e) {
return n._handleFileTreeEntry(e, i)
})))[this._promisePipe]((function () {
return Array.prototype.concat.apply([], arguments)
}))
},
_getDroppedFiles: function (t) {
var i = (t = t || {}).items;
return i && i.length && (i[0].webkitGetAsEntry || i[0].getAsEntry) ? this._handleFileTreeEntries(e.map(i, (function (e) {
var t;
return e.webkitGetAsEntry ? ((t = e.webkitGetAsEntry()) && (t._file = e.getAsFile()), t) : e.getAsEntry()
}))) : e.Deferred().resolve(e.makeArray(t.files)).promise()
},
_getSingleFileInputFiles: function (t) {
var i, n, a = (t = e(t)).prop("webkitEntries") || t.prop("entries");
if (a && a.length) return this._handleFileTreeEntries(a);
if ((i = e.makeArray(t.prop("files"))).length) void 0 === i[0].name && i[0].fileName && e.each(i, (function (e, t) {
t.name = t.fileName, t.size = t.fileSize
}));
else {
if (!(n = t.prop("value"))) return e.Deferred().resolve([]).promise();
i = [{
name: n.replace(/^.*\\/, "")
}]
}
return e.Deferred().resolve(i).promise()
},
_getFileInputFiles: function (t) {
return t instanceof e && 1 !== t.length ? e.when.apply(e, e.map(t, this._getSingleFileInputFiles))[this._promisePipe]((function () {
return Array.prototype.concat.apply([], arguments)
})) : this._getSingleFileInputFiles(t)
},
_onChange: function (t) {
var i = this,
n = {
fileInput: e(t.target),
form: e(t.target.form)
};
this._getFileInputFiles(n.fileInput).always((function (a) {
n.files = a, i.options.replaceFileInput && i._replaceFileInput(n), !1 !== i._trigger("change", e.Event("change", {
delegatedEvent: t
}), n) && i._onAdd(t, n)
}))
},
_onPaste: function (t) {
var i = t.originalEvent && t.originalEvent.clipboardData && t.originalEvent.clipboardData.items,
n = {
files: []
};
i && i.length && (e.each(i, (function (e, t) {
var i = t.getAsFile && t.getAsFile();
i && n.files.push(i)
})), !1 !== this._trigger("paste", e.Event("paste", {
delegatedEvent: t
}), n) && this._onAdd(t, n))
},
_onDrop: function (t) {
t.dataTransfer = t.originalEvent && t.originalEvent.dataTransfer;
var i = this,
n = t.dataTransfer,
a = {};
n && n.files && n.files.length && (t.preventDefault(), this._getDroppedFiles(n).always((function (n) {
a.files = n, !1 !== i._trigger("drop", e.Event("drop", {
delegatedEvent: t
}), a) && i._onAdd(t, a)
})))
},
_onDragOver: t("dragover"),
_onDragEnter: t("dragenter"),
_onDragLeave: t("dragleave"),
_initEventHandlers: function () {
this._isXHRUpload(this.options) && (this._on(this.options.dropZone, {
dragover: this._onDragOver,
drop: this._onDrop,
dragenter: this._onDragEnter,
dragleave: this._onDragLeave
}), this._on(this.options.pasteZone, {
paste: this._onPaste
})), e.support.fileInput && this._on(this.options.fileInput, {
change: this._onChange
})
},
_destroyEventHandlers: function () {
this._off(this.options.dropZone, "dragenter dragleave dragover drop"), this._off(this.options.pasteZone, "paste"), this._off(this.options.fileInput, "change")
},
_destroy: function () {
this._destroyEventHandlers()
},
_setOption: function (t, i) {
var n = -1 !== e.inArray(t, this._specialOptions);
n && this._destroyEventHandlers(), this._super(t, i), n && (this._initSpecialOptions(), this._initEventHandlers())
},
_initSpecialOptions: function () {
var t = this.options;
void 0 === t.fileInput ? t.fileInput = this.element.is('input[type="file"]') ? this.element : this.element.find('input[type="file"]') : t.fileInput instanceof e || (t.fileInput = e(t.fileInput)), t.dropZone instanceof e || (t.dropZone = e(t.dropZone)), t.pasteZone instanceof e || (t.pasteZone = e(t.pasteZone))
},
_getRegExp: function (e) {
var t = e.split("/"),
i = t.pop();
return t.shift(), new RegExp(t.join("/"), i)
},
_isRegExpOption: function (t, i) {
return "url" !== t && "string" === e.type(i) && /^\/.*\/[igm]{0,3}$/.test(i)
},
_initDataAttributes: function () {
var t = this,
i = this.options,
n = this.element.data();
e.each(this.element[0].attributes, (function (e, a) {
var r, s = a.name.toLowerCase();
/^data-/.test(s) && (s = s.slice(5).replace(/-[a-z]/g, (function (e) {
return e.charAt(1).toUpperCase()
})), r = n[s], t._isRegExpOption(s, r) && (r = t._getRegExp(r)), i[s] = r)
}))
},
_create: function () {
this._initDataAttributes(), this._initSpecialOptions(), this._slots = [], this._sequence = this._getXHRPromise(!0), this._sending = this._active = 0, this._initProgressObject(this), this._initEventHandlers()
},
active: function () {
return this._active
},
progress: function () {
return this._progress
},
add: function (t) {
var i = this;
t && !this.options.disabled && (t.fileInput && !t.files ? this._getFileInputFiles(t.fileInput).always((function (e) {
t.files = e, i._onAdd(null, t)
})) : (t.files = e.makeArray(t.files), this._onAdd(null, t)))
},
send: function (t) {
if (t && !this.options.disabled) {
if (t.fileInput && !t.files) {
var i, n, a = this,
r = e.Deferred(),
s = r.promise();
return s.abort = function () {
return n = !0, i ? i.abort() : (r.reject(null, "abort", "abort"), s)
}, this._getFileInputFiles(t.fileInput).always((function (e) {
n || (e.length ? (t.files = e, (i = a._onSend(null, t)).then((function (e, t, i) {
r.resolve(e, t, i)
}), (function (e, t, i) {
r.reject(e, t, i)
}))) : r.reject())
})), this._enhancePromise(s)
}
if (t.files = e.makeArray(t.files), t.files.length) return this._onSend(null, t)
}
return this._getXHRPromise(!1, t && t.context)
}
})
}))
}, function (e, t, i) {
var n, a, r;
/*! jQuery UI - v1.12.1+0b7246b6eeadfa9e2696e22f3230f6452f8129dc - 2020-02-20
* http://jqueryui.com
* Includes: widget.js
* Copyright jQuery Foundation and other contributors; Licensed MIT */
! function (s) {
"use strict";
a = [i(0)], void 0 === (r = "function" == typeof (n = function (e) {
/*!
* jQuery UI Widget 1.12.1
* http://jqueryui.com
*
* Copyright jQuery Foundation and other contributors
* Released under the MIT license.
* http://jquery.org/license
*/
e.ui = e.ui || {}, e.ui.version = "1.12.1", e.expr.pseudos || (e.expr.pseudos = e.expr[":"]);
e.uniqueSort || (e.uniqueSort = e.unique);
var t = 0,
i = Array.prototype.hasOwnProperty,
n = Array.prototype.slice;
e.cleanData = (a = e.cleanData, function (t) {
var i, n, r;
for (r = 0; null != (n = t[r]); r++)(i = e._data(n, "events")) && i.remove && e(n).triggerHandler("remove");
a(t)
}), e.widget = function (t, i, n) {
var a, r, s, o = {},
l = t.split(".")[0],
d = l + "-" + (t = t.split(".")[1]);
return n || (n = i, i = e.Widget), e.isArray(n) && (n = e.extend.apply(null, [{}].concat(n))), e.expr.pseudos[d.toLowerCase()] = function (t) {
return !!e.data(t, d)
}, e[l] = e[l] || {}, a = e[l][t], r = e[l][t] = function (e, t) {
if (!this._createWidget) return new r(e, t);
arguments.length && this._createWidget(e, t)
}, e.extend(r, a, {
version: n.version,
_proto: e.extend({}, n),
_childConstructors: []
}), (s = new i).options = e.widget.extend({}, s.options), e.each(n, (function (t, n) {
e.isFunction(n) ? o[t] = function () {
function e() {
return i.prototype[t].apply(this, arguments)
}
function a(e) {
return i.prototype[t].apply(this, e)
}
return function () {
var t, i = this._super,
r = this._superApply;
return this._super = e, this._superApply = a, t = n.apply(this, arguments), this._super = i, this._superApply = r, t
}
}() : o[t] = n
})), r.prototype = e.widget.extend(s, {
widgetEventPrefix: a && s.widgetEventPrefix || t
}, o, {
constructor: r,
namespace: l,
widgetName: t,
widgetFullName: d
}), a ? (e.each(a._childConstructors, (function (t, i) {
var n = i.prototype;
e.widget(n.namespace + "." + n.widgetName, r, i._proto)
})), delete a._childConstructors) : i._childConstructors.push(r), e.widget.bridge(t, r), r
}, e.widget.extend = function (t) {
for (var a, r, s = n.call(arguments, 1), o = 0, l = s.length; o < l; o++)
for (a in s[o]) r = s[o][a], i.call(s[o], a) && void 0 !== r && (e.isPlainObject(r) ? t[a] = e.isPlainObject(t[a]) ? e.widget.extend({}, t[a], r) : e.widget.extend({}, r) : t[a] = r);
return t
}, e.widget.bridge = function (t, i) {
var a = i.prototype.widgetFullName || t;
e.fn[t] = function (r) {
var s = "string" == typeof r,
o = n.call(arguments, 1),
l = this;
return s ? this.length || "instance" !== r ? this.each((function () {
var i, n = e.data(this, a);
return "instance" === r ? (l = n, !1) : n ? e.isFunction(n[r]) && "_" !== r.charAt(0) ? (i = n[r].apply(n, o)) !== n && void 0 !== i ? (l = i && i.jquery ? l.pushStack(i.get()) : i, !1) : void 0 : e.error("no such method '" + r + "' for " + t + " widget instance") : e.error("cannot call methods on " + t + " prior to initialization; attempted to call method '" + r + "'")
})) : l = void 0 : (o.length && (r = e.widget.extend.apply(null, [r].concat(o))), this.each((function () {
var t = e.data(this, a);
t ? (t.option(r || {}), t._init && t._init()) : e.data(this, a, new i(r, this))
}))), l
}
}, e.Widget = function () { }, e.Widget._childConstructors = [], e.Widget.prototype = {
widgetName: "widget",
widgetEventPrefix: "",
defaultElement: "<div>",
options: {
classes: {},
disabled: !1,
create: null
},
_createWidget: function (i, n) {
n = e(n || this.defaultElement || this)[0], this.element = e(n), this.uuid = t++, this.eventNamespace = "." + this.widgetName + this.uuid, this.bindings = e(), this.hoverable = e(), this.focusable = e(), this.classesElementLookup = {}, n !== this && (e.data(n, this.widgetFullName, this), this._on(!0, this.element, {
remove: function (e) {
e.target === n && this.destroy()
}
}), this.document = e(n.style ? n.ownerDocument : n.document || n), this.window = e(this.document[0].defaultView || this.document[0].parentWindow)), this.options = e.widget.extend({}, this.options, this._getCreateOptions(), i), this._create(), this.options.disabled && this._setOptionDisabled(this.options.disabled), this._trigger("create", null, this._getCreateEventData()), this._init()
},
_getCreateOptions: function () {
return {}
},
_getCreateEventData: e.noop,
_create: e.noop,
_init: e.noop,
destroy: function () {
var t = this;
this._destroy(), e.each(this.classesElementLookup, (function (e, i) {
t._removeClass(i, e)
})), this.element.off(this.eventNamespace).removeData(this.widgetFullName), this.widget().off(this.eventNamespace).removeAttr("aria-disabled"), this.bindings.off(this.eventNamespace)
},
_destroy: e.noop,
widget: function () {
return this.element
},
option: function (t, i) {
var n, a, r, s = t;
if (0 === arguments.length) return e.widget.extend({}, this.options);
if ("string" == typeof t)
if (s = {}, n = t.split("."), t = n.shift(), n.length) {
for (a = s[t] = e.widget.extend({}, this.options[t]), r = 0; r < n.length - 1; r++) a[n[r]] = a[n[r]] || {}, a = a[n[r]];
if (t = n.pop(), 1 === arguments.length) return void 0 === a[t] ? null : a[t];
a[t] = i
} else {
if (1 === arguments.length) return void 0 === this.options[t] ? null : this.options[t];
s[t] = i
} return this._setOptions(s), this
},
_setOptions: function (e) {
var t;
for (t in e) this._setOption(t, e[t]);
return this
},
_setOption: function (e, t) {
return "classes" === e && this._setOptionClasses(t), this.options[e] = t, "disabled" === e && this._setOptionDisabled(t), this
},
_setOptionClasses: function (t) {
var i, n, a;
for (i in t) a = this.classesElementLookup[i], t[i] !== this.options.classes[i] && a && a.length && (n = e(a.get()), this._removeClass(a, i), n.addClass(this._classes({
element: n,
keys: i,
classes: t,
add: !0
})))
},
_setOptionDisabled: function (e) {
this._toggleClass(this.widget(), this.widgetFullName + "-disabled", null, !!e), e && (this._removeClass(this.hoverable, null, "ui-state-hover"), this._removeClass(this.focusable, null, "ui-state-focus"))
},
enable: function () {
return this._setOptions({
disabled: !1
})
},
disable: function () {
return this._setOptions({
disabled: !0
})
},
_classes: function (t) {
var i = [],
n = this;
function a(a, r) {
var s, o;
for (o = 0; o < a.length; o++) s = n.classesElementLookup[a[o]] || e(), t.add ? (t.element.each((function (t, i) {
e.map(n.classesElementLookup, (function (e) {
return e
})).some((function (e) {
return e.is(i)
})) || n._on(e(i), {
remove: "_untrackClassesElement"
})
})), s = e(e.uniqueSort(s.get().concat(t.element.get())))) : s = e(s.not(t.element).get()), n.classesElementLookup[a[o]] = s, i.push(a[o]), r && t.classes[a[o]] && i.push(t.classes[a[o]])
}
return (t = e.extend({
element: this.element,
classes: this.options.classes || {}
}, t)).keys && a(t.keys.match(/\S+/g) || [], !0), t.extra && a(t.extra.match(/\S+/g) || []), i.join(" ")
},
_untrackClassesElement: function (t) {
var i = this;
e.each(i.classesElementLookup, (function (n, a) {
-1 !== e.inArray(t.target, a) && (i.classesElementLookup[n] = e(a.not(t.target).get()))
})), this._off(e(t.target))
},
_removeClass: function (e, t, i) {
return this._toggleClass(e, t, i, !1)
},
_addClass: function (e, t, i) {
return this._toggleClass(e, t, i, !0)
},
_toggleClass: function (e, t, i, n) {
n = "boolean" == typeof n ? n : i;
var a = "string" == typeof e || null === e,
r = {
extra: a ? t : i,
keys: a ? e : t,
element: a ? this.element : e,
add: n
};
return r.element.toggleClass(this._classes(r), n), this
},
_on: function (t, i, n) {
var a, r = this;
"boolean" != typeof t && (n = i, i = t, t = !1), n ? (i = a = e(i), this.bindings = this.bindings.add(i)) : (n = i, i = this.element, a = this.widget()), e.each(n, (function (n, s) {
function o() {
if (t || !0 !== r.options.disabled && !e(this).hasClass("ui-state-disabled")) return ("string" == typeof s ? r[s] : s).apply(r, arguments)
}
"string" != typeof s && (o.guid = s.guid = s.guid || o.guid || e.guid++);
var l = n.match(/^([\w:-]*)\s*(.*)$/),
d = l[1] + r.eventNamespace,
c = l[2];
c ? a.on(d, c, o) : i.on(d, o)
}))
},
_off: function (t, i) {
i = (i || "").split(" ").join(this.eventNamespace + " ") + this.eventNamespace, t.off(i), this.bindings = e(this.bindings.not(t).get()), this.focusable = e(this.focusable.not(t).get()), this.hoverable = e(this.hoverable.not(t).get())
},
_delay: function (e, t) {
var i = this;
return setTimeout((function () {
return ("string" == typeof e ? i[e] : e).apply(i, arguments)
}), t || 0)
},
_hoverable: function (t) {
this.hoverable = this.hoverable.add(t), this._on(t, {
mouseenter: function (t) {
this._addClass(e(t.currentTarget), null, "ui-state-hover")
},
mouseleave: function (t) {
this._removeClass(e(t.currentTarget), null, "ui-state-hover")
}
})
},
_focusable: function (t) {
this.focusable = this.focusable.add(t), this._on(t, {
focusin: function (t) {
this._addClass(e(t.currentTarget), null, "ui-state-focus")
},
focusout: function (t) {
this._removeClass(e(t.currentTarget), null, "ui-state-focus")
}
})
},
_trigger: function (t, i, n) {
var a, r, s = this.options[t];
if (n = n || {}, (i = e.Event(i)).type = (t === this.widgetEventPrefix ? t : this.widgetEventPrefix + t).toLowerCase(), i.target = this.element[0], r = i.originalEvent)
for (a in r) a in i || (i[a] = r[a]);
return this.element.trigger(i, n), !(e.isFunction(s) && !1 === s.apply(this.element[0], [i].concat(n)) || i.isDefaultPrevented())
}
}, e.each({
show: "fadeIn",
hide: "fadeOut"
}, (function (t, i) {
e.Widget.prototype["_" + t] = function (n, a, r) {
var s;
"string" == typeof a && (a = {
effect: a
});
var o = a ? !0 === a || "number" == typeof a ? i : a.effect || i : t;
"number" == typeof (a = a || {}) && (a = {
duration: a
}), s = !e.isEmptyObject(a), a.complete = r, a.delay && n.delay(a.delay), s && e.effects && e.effects.effect[o] ? n[t](a) : o !== t && n[o] ? n[o](a.duration, a.easing, r) : n.queue((function (i) {
e(this)[t](), r && r.call(n[0]), i()
}))
}
}));
var a
}) ? n.apply(t, a) : n) || (e.exports = r)
}()
}, function (e, t, i) {
var n, a, r;
! function (s) {
"use strict";
a = [i(0)], void 0 === (r = "function" == typeof (n = function (e) {
var t = {
escapeRegExChars: function (e) {
return e.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&")
},
createNode: function (e) {
var t = document.createElement("div");
return t.className = e, t.style.position = "absolute", t.style.display = "none", t
}
},
i = 27,
n = 9,
a = 13,
r = 38,
s = 39,
o = 40,
l = e.noop;
function d(t, i) {
this.element = t, this.el = e(t), this.suggestions = [], this.badQueries = [], this.selectedIndex = -1, this.currentValue = this.element.value, this.timeoutId = null, this.cachedResponse = {}, this.onChangeTimeout = null, this.onChange = null, this.isLocal = !1, this.suggestionsContainer = null, this.noSuggestionsContainer = null, this.options = e.extend({}, d.defaults, i), this.classes = {
selected: "autocomplete-selected",
suggestion: "autocomplete-suggestion"
}, this.hint = null, this.hintValue = "", this.selection = null, this.initialize(), this.setOptions(i)
}
d.utils = t, e.Autocomplete = d, d.defaults = {
sendFormData: !1,
ajaxSettings: {},
autoSelectFirst: !1,
appendTo: "body",
serviceUrl: null,
lookup: null,
onSelect: null,
width: "auto",
minChars: 1,
maxHeight: 300,
deferRequestBy: 0,
params: {},
formatResult: function (e, i) {
if (!i) return e.value;
var n = "(" + t.escapeRegExChars(i) + ")";
return e.value.replace(new RegExp(n, "gi"), "<strong>$1</strong>").replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/<(\/?strong)>/g, "<$1>")
},
formatGroup: function (e, t) {
return '<div class="autocomplete-group">' + t + "</div>"
},
delimiter: null,
zIndex: 9999,
type: "GET",
noCache: !1,
onSearchStart: l,
onSearchComplete: l,
onSearchError: l,
preserveInput: !1,
containerClass: "autocomplete-suggestions",
tabDisabled: !1,
dataType: "text",
currentRequest: null,
triggerSelectOnValidInput: !0,
preventBadQueries: !0,
lookupFilter: function (e, t, i) {
return -1 !== e.value.toLowerCase().indexOf(i)
},
paramName: "query",
transformResult: function (t) {
return "string" == typeof t ? e.parseJSON(t) : t
},
showNoSuggestionNotice: !1,
noSuggestionNotice: "No results",
orientation: "bottom",
forceFixPosition: !1
}, d.prototype = {
initialize: function () {
var t, i = this,
n = "." + i.classes.suggestion,
a = i.classes.selected,
r = i.options;
i.element.setAttribute("autocomplete", "off"), i.noSuggestionsContainer = e('<div class="autocomplete-no-suggestion"></div>').html(this.options.noSuggestionNotice).get(0), i.suggestionsContainer = d.utils.createNode(r.containerClass), (t = e(i.suggestionsContainer)).appendTo(r.appendTo || "body"), "auto" !== r.width && t.css("width", r.width), t.on("mouseover.autocomplete", n, (function () {
i.activate(e(this).data("index"))
})), t.on("mouseout.autocomplete", (function () {
i.selectedIndex = -1, t.children("." + a).removeClass(a)
})), t.on("click.autocomplete", n, (function () {
i.select(e(this).data("index"))
})), t.on("click.autocomplete", (function () {
clearTimeout(i.blurTimeoutId)
})), i.fixPositionCapture = function () {
i.visible && i.fixPosition()
}, e(window).on("resize.autocomplete", i.fixPositionCapture), i.el.on("keydown.autocomplete", (function (e) {
i.onKeyPress(e)
})), i.el.on("keyup.autocomplete", (function (e) {
i.onKeyUp(e)
})), i.el.on("blur.autocomplete", (function () {
i.onBlur()
})), i.el.on("focus.autocomplete", (function () {
i.onFocus()
})), i.el.on("change.autocomplete", (function (e) {
i.onKeyUp(e)
})), i.el.on("input.autocomplete", (function (e) {
i.onKeyUp(e)
}))
},
onFocus: function () {
this.fixPosition(), this.el.val().length >= this.options.minChars && this.onValueChange()
},
onBlur: function () {
var e = this;
e.blurTimeoutId = setTimeout((function () {
e.hide()
}), 200)
},
abortAjax: function () {
this.currentRequest && (this.currentRequest.abort(), this.currentRequest = null)
},
setOptions: function (t) {
var i = e.extend({}, this.options, t);
this.isLocal = Array.isArray(i.lookup), this.isLocal && (i.lookup = this.verifySuggestionsFormat(i.lookup)), i.orientation = this.validateOrientation(i.orientation, "bottom"), e(this.suggestionsContainer).css({
"max-height": i.maxHeight + "px",
width: i.width + "px",
"z-index": i.zIndex
}), this.options = i
},
clearCache: function () {
this.cachedResponse = {}, this.badQueries = []
},
clear: function () {
this.clearCache(), this.currentValue = "", this.suggestions = []
},
disable: function () {
this.disabled = !0, clearTimeout(this.onChangeTimeout), this.abortAjax()
},
enable: function () {
this.disabled = !1
},
fixPosition: function () {
var t = e(this.suggestionsContainer),
i = t.parent().get(0);
if (i === document.body || this.options.forceFixPosition) {
var n = this.options.orientation,
a = t.outerHeight(),
r = this.el.outerHeight(),
s = this.el.offset(),
o = {
top: s.top,
left: s.left
};
if ("auto" === n) {
var l = e(window).height(),
d = e(window).scrollTop(),
c = -d + s.top - a,
u = d + l - (s.top + r + a);
n = Math.max(c, u) === c ? "top" : "bottom"
}
if (o.top += "top" === n ? -a : r, i !== document.body) {
var p, h = t.css("opacity");
this.visible || t.css("opacity", 0).show(), p = t.offsetParent().offset(), o.top -= p.top, o.top += i.scrollTop, o.left -= p.left, this.visible || t.css("opacity", h).hide()
}
"auto" === this.options.width && (o.width = this.el.outerWidth() + "px"), t.css(o)
}
},
isCursorAtEnd: function () {
var e, t = this.el.val().length,
i = this.element.selectionStart;
return "number" == typeof i ? i === t : !document.selection || ((e = document.selection.createRange()).moveStart("character", -t), t === e.text.length)
},
onKeyPress: function (e) {
if (this.disabled || this.visible || e.which !== o || !this.currentValue) {
if (!this.disabled && this.visible) {
switch (e.which) {
case i:
this.el.val(this.currentValue), this.hide();
break;
case s:
if (this.hint && this.options.onHint && this.isCursorAtEnd()) {
this.selectHint();
break
}
return;
case n:
if (this.hint && this.options.onHint) return void this.selectHint();
if (-1 === this.selectedIndex) return void this.hide();
if (this.select(this.selectedIndex), !1 === this.options.tabDisabled) return;
break;
case a:
if (-1 === this.selectedIndex) return void this.hide();
this.select(this.selectedIndex);
break;
case r:
this.moveUp();
break;
case o:
this.moveDown();
break;
default:
return
}
e.stopImmediatePropagation(), e.preventDefault()
}
} else this.suggest()
},
onKeyUp: function (e) {
var t = this;
if (!t.disabled) {
switch (e.which) {
case r:
case o:
return
}
clearTimeout(t.onChangeTimeout), t.currentValue !== t.el.val() && (t.findBestHint(), t.options.deferRequestBy > 0 ? t.onChangeTimeout = setTimeout((function () {
t.onValueChange()
}), t.options.deferRequestBy) : t.onValueChange())
}
},
onValueChange: function () {
if (this.ignoreValueChange) this.ignoreValueChange = !1;
else {
var t = this.options,
i = this.el.val(),
n = this.getQuery(i);
this.selection && this.currentValue !== n && (this.selection = null, (t.onInvalidateSelection || e.noop).call(this.element)), clearTimeout(this.onChangeTimeout), this.currentValue = i, this.selectedIndex = -1, t.triggerSelectOnValidInput && this.isExactMatch(n) ? this.select(0) : n.length < t.minChars ? this.hide() : this.getSuggestions(n)
}
},
isExactMatch: function (e) {
var t = this.suggestions;
return 1 === t.length && t[0].value.toLowerCase() === e.toLowerCase()
},
getQuery: function (t) {
var i, n = this.options.delimiter;
return n ? (i = t.split(n), e.trim(i[i.length - 1])) : t
},
getSuggestionsLocal: function (t) {
var i, n = this.options,
a = t.toLowerCase(),
r = n.lookupFilter,
s = parseInt(n.lookupLimit, 10);
return i = {
suggestions: e.grep(n.lookup, (function (e) {
return r(e, t, a)
}))
}, s && i.suggestions.length > s && (i.suggestions = i.suggestions.slice(0, s)), i
},
getSuggestions: function (t) {
var i, n, a, r, s = this,
o = s.options,
l = o.serviceUrl;
if (o.params[o.paramName] = t, !1 !== o.onSearchStart.call(s.element, o.params)) {
if (n = o.ignoreParams ? null : o.params, o.sendFormData) {
var d = s.el.closest("form").serializeObject();
n = e.extend(d, n)
}
e.isFunction(o.lookup) ? o.lookup(t, (function (e) {
s.suggestions = e.suggestions, s.suggest(), o.onSearchComplete.call(s.element, t, e.suggestions)
})) : (s.isLocal ? i = s.getSuggestionsLocal(t) : (e.isFunction(l) && (l = l.call(s.element, t)), a = l + (l.indexOf("?") < 0 ? "?" : "&") + e.param(n || {}), i = s.cachedResponse[a]), i && Array.isArray(i.suggestions) ? (s.suggestions = i.suggestions, s.suggest(), o.onSearchComplete.call(s.element, t, i.suggestions)) : s.isBadQuery(t) ? o.onSearchComplete.call(s.element, t, []) : (s.abortAjax(), r = {
url: l,
data: n,
type: o.type,
dataType: o.dataType
}, e.extend(r, o.ajaxSettings), s.currentRequest = e.ajax(r).done((function (e) {
var i;
s.currentRequest = null, i = o.transformResult(e, t), s.processResponse(i, t, a), o.onSearchComplete.call(s.element, t, i.suggestions)
})).fail((function (e, i, n) {
o.onSearchError.call(s.element, t, e, i, n)
}))))
}
},
isBadQuery: function (e) {
if (!this.options.preventBadQueries) return !1;
for (var t = this.badQueries, i = t.length; i--;)
if (0 === e.indexOf(t[i])) return !0;
return !1
},
hide: function () {
var t = e(this.suggestionsContainer);
e.isFunction(this.options.onHide) && this.visible && this.options.onHide.call(this.element, t), this.visible = !1, this.selectedIndex = -1, clearTimeout(this.onChangeTimeout), e(this.suggestionsContainer).hide(), this.signalHint(null)
},
suggest: function () {
if (this.suggestions.length) {
var t, i = this.options,
n = i.groupBy,
a = i.formatResult,
r = this.getQuery(this.currentValue),
s = this.classes.suggestion,
o = this.classes.selected,
l = e(this.suggestionsContainer),
d = e(this.noSuggestionsContainer),
c = i.beforeRender,
u = "";
i.triggerSelectOnValidInput && this.isExactMatch(r) ? this.select(0) : (e.each(this.suggestions, (function (e, o) {
n && (u += function (e, a) {
var r = e.data[n];
return t === r ? "" : (t = r, i.formatGroup(e, t))
}(o, 0)), u += '<div class="' + s + '" data-index="' + e + '">' + a(o, r, e) + "</div>"
})), this.adjustContainerWidth(), d.detach(), l.html(u), e.isFunction(c) && c.call(this.element, l, this.suggestions), this.fixPosition(), l.show(), i.autoSelectFirst && (this.selectedIndex = 0, l.scrollTop(0), l.children("." + s).first().addClass(o)), this.visible = !0, this.findBestHint())
} else this.options.showNoSuggestionNotice ? this.noSuggestions() : this.hide()
},
noSuggestions: function () {
var t = this.options.beforeRender,
i = e(this.suggestionsContainer),
n = e(this.noSuggestionsContainer);
this.adjustContainerWidth(), n.detach(), i.empty(), i.append(n), e.isFunction(t) && t.call(this.element, i, this.suggestions), this.fixPosition(), i.show(), this.visible = !0
},
adjustContainerWidth: function () {
var t, i = this.options,
n = e(this.suggestionsContainer);
"auto" === i.width ? (t = this.el.outerWidth(), n.css("width", t > 0 ? t : 300)) : "flex" === i.width && n.css("width", "")
},
findBestHint: function () {
var t = this.el.val().toLowerCase(),
i = null;
t && (e.each(this.suggestions, (function (e, n) {
var a = 0 === n.value.toLowerCase().indexOf(t);
return a && (i = n), !a
})), this.signalHint(i))
},
signalHint: function (t) {
var i = "";
t && (i = this.currentValue + t.value.substr(this.currentValue.length)), this.hintValue !== i && (this.hintValue = i, this.hint = t, (this.options.onHint || e.noop)(i))
},
verifySuggestionsFormat: function (t) {
return t.length && "string" == typeof t[0] ? e.map(t, (function (e) {
return {
value: e,
data: null
}
})) : t
},
validateOrientation: function (t, i) {
return t = e.trim(t || "").toLowerCase(), -1 === e.inArray(t, ["auto", "bottom", "top"]) && (t = i), t
},
processResponse: function (e, t, i) {
var n = this.options;
e.suggestions = this.verifySuggestionsFormat(e.suggestions), n.noCache || (this.cachedResponse[i] = e, n.preventBadQueries && !e.suggestions.length && this.badQueries.push(t)), t === this.getQuery(this.currentValue) && (this.suggestions = e.suggestions, this.suggest())
},
activate: function (t) {
var i, n = this.classes.selected,
a = e(this.suggestionsContainer),
r = a.find("." + this.classes.suggestion);
return a.find("." + n).removeClass(n), this.selectedIndex = t, -1 !== this.selectedIndex && r.length > this.selectedIndex ? (i = r.get(this.selectedIndex), e(i).addClass(n), i) : null
},
selectHint: function () {
var t = e.inArray(this.hint, this.suggestions);
this.select(t)
},
select: function (e) {
this.hide(), this.onSelect(e)
},
moveUp: function () {
if (-1 !== this.selectedIndex) return 0 === this.selectedIndex ? (e(this.suggestionsContainer).children("." + this.classes.suggestion).first().removeClass(this.classes.selected), this.selectedIndex = -1, this.ignoreValueChange = !1, this.el.val(this.currentValue), void this.findBestHint()) : void this.adjustScroll(this.selectedIndex - 1)
},
moveDown: function () {
this.selectedIndex !== this.suggestions.length - 1 && this.adjustScroll(this.selectedIndex + 1)
},
adjustScroll: function (t) {
var i = this.activate(t);
if (i) {
var n, a, r, s = e(i).outerHeight();
n = i.offsetTop, r = (a = e(this.suggestionsContainer).scrollTop()) + this.options.maxHeight - s, n < a ? e(this.suggestionsContainer).scrollTop(n) : n > r && e(this.suggestionsContainer).scrollTop(n - this.options.maxHeight + s), this.options.preserveInput || (this.ignoreValueChange = !0, this.el.val(this.getValue(this.suggestions[t].value))), this.signalHint(null)
}
},
onSelect: function (t) {
var i = this.options.onSelect,
n = this.suggestions[t];
this.currentValue = this.getValue(n.value), this.currentValue === this.el.val() || this.options.preserveInput || this.el.val(this.currentValue), this.signalHint(null), this.suggestions = [], this.selection = n, e.isFunction(i) && i.call(this.element, n)
},
getValue: function (e) {
var t, i, n = this.options.delimiter;
return n ? 1 === (i = (t = this.currentValue).split(n)).length ? e : t.substr(0, t.length - i[i.length - 1].length) + e : e
},
dispose: function () {
this.el.off(".autocomplete").removeData("autocomplete"), e(window).off("resize.autocomplete", this.fixPositionCapture), e(this.suggestionsContainer).remove()
}
}, e.fn.devbridgeAutocomplete = function (t, i) {
var n = "autocomplete";
return arguments.length ? this.each((function () {
var a = e(this),
r = a.data(n);
"string" == typeof t ? r && "function" == typeof r[t] && r[t](i) : (r && r.dispose && r.dispose(), r = new d(this, t), a.data(n, r))
})) : this.first().data(n)
}, e.fn.autocomplete || (e.fn.autocomplete = e.fn.devbridgeAutocomplete);
void 0 === e.fn.serializeObject && (e.fn.serializeObject = function () {
var t = {},
i = this.serializeArray();
return e.each(i, (function () {
void 0 !== t[this.name] ? (t[this.name].push || (t[this.name] = [t[this.name]]), t[this.name].push(this.value || "")) : t[this.name] = this.value || ""
})), t
})
}) ? n.apply(t, a) : n) || (e.exports = r)
}()
}, function (e, t, i) {
var n, r, s;
! function (o) {
"use strict";
r = [i(0)], void 0 === (s = "function" == typeof (n = function (e) {
e.format = (t = {
date: {
format: "MMM dd, yyyy h:mm:ss a",
monthsFull: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
daysFull: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
shortDateFormat: "M/d/yyyy h:mm a",
longDateFormat: "EEEE, MMMM dd, yyyy h:mm:ss a"
},
number: {
format: "#,##0.0#",
groupingSeparator: ",",
decimalSeparator: "."
}
}, {
locale: function (e) {
if (a = {
a: 6
}, e)
for (var i in e)
for (var n in e[i]) t[i][n] = e[i][n];
return t
},
date: function (e, i) {
var n, a, r = 0,
s = 0,
o = 0,
l = "",
d = "";
if ("string" == typeof e) {
var c = function (e, t, i, n) {
for (var a = n; a >= i; a--) {
var r = e.substring(t, t + a);
if (r.length >= i && /^\d+$/.test(r)) return r
}
return null
};
void 0 === i && (i = t.date.format);
for (var u, p, h = 0, f = new Date(0, 0, 0, 0, 0, 0, 0), g = f.getYear(), m = f.getMonth() + 1, v = 1, b = f.getHours(), y = f.getMinutes(), w = f.getSeconds(), S = f.getMilliseconds(), x = ""; r < i.length;) {
for (d = "", l = i.charAt(r); i.charAt(r) == l && r < i.length;) d += i.charAt(r++);
if (d.indexOf("MMMM") > -1 && d.length > 4 && (d = "MMMM"), d.indexOf("EEEE") > -1 && d.length > 4 && (d = "EEEE"), "yyyy" == d || "yy" == d || "y" == d) {
if ("yyyy" == d && (n = 4, a = 4), "yy" == d && (n = 2, a = 2), "y" == d && (n = 2, a = 4), null === (g = c(e, h, n, a))) return 0;
h += g.length, 2 == g.length && (g = (g = parseInt(g, 10)) > 70 ? 1900 + g : 2e3 + g)
} else if ("MMMM" == d) {
for (m = 0, s = 0, o = t.date.monthsFull.length; s < o; s++)
if (u = t.date.monthsFull[s], e.substring(h, h + u.length).toLowerCase() == u.toLowerCase()) {
m = s + 1, h += u.length;
break
} if (m < 1 || m > 12) return 0
} else if ("MMM" == d) {
for (m = 0, s = 0, o = t.date.monthsShort.length; s < o; s++)
if (u = t.date.monthsShort[s], e.substring(h, h + u.length).toLowerCase() == u.toLowerCase()) {
m = s + 1, h += u.length;
break
} if (m < 1 || m > 12) return 0
} else if ("EEEE" == d) {
for (s = 0, o = t.date.daysFull.length; s < o; s++)
if (p = t.date.daysFull[s], e.substring(h, h + p.length).toLowerCase() == p.toLowerCase()) {
h += p.length;
break
}
} else if ("EEE" == d) {
for (s = 0, o = t.date.daysShort.length; s < o; s++)
if (p = t.date.daysShort[s], e.substring(h, h + p.length).toLowerCase() == p.toLowerCase()) {
h += p.length;
break
}
} else if ("MM" == d || "M" == d) {
if (null === (m = c(e, h, 1, 2)) || m < 1 || m > 12) return 0;
h += m.length
} else if ("dd" == d || "d" == d) {
if (null === (v = c(e, h, 1, 2)) || v < 1 || v > 31) return 0;
h += v.length
} else if ("hh" == d || "h" == d) {
if (null === (b = c(e, h, 1, 2)) || b < 1 || b > 12) return 0;
h += b.length
} else if ("HH" == d || "H" == d) {
if (null === (b = c(e, h, 1, 2)) || b < 0 || b > 23) return 0;
h += b.length
} else if ("KK" == d || "K" == d) {
if (null === (b = c(e, h, 1, 2)) || b < 0 || b > 11) return 0;
h += b.length
} else if ("kk" == d || "k" == d) {
if (null === (b = c(e, h, 1, 2)) || b < 1 || b > 24) return 0;
h += b.length, b--
} else if ("mm" == d || "m" == d) {
if (null === (y = c(e, h, 1, 2)) || y < 0 || y > 59) return 0;
h += y.length
} else if ("ss" == d || "s" == d) {
if (null === (w = c(e, h, 1, 2)) || w < 0 || w > 59) return 0;
h += w.length
} else if ("SSS" == d || "SS" == d || "S" == d) {
if (null === (S = c(e, h, 1, 3)) || S < 0 || S > 999) return 0;
h += S.length
} else if ("a" == d) {
var _ = e.substring(h, h + 2).toLowerCase();
if ("am" == _) x = "AM";
else {
if ("pm" != _) return 0;
x = "PM"
}
h += 2
} else {
if (d != e.substring(h, h + d.length)) return 0;
h += d.length
}
}
if (h != e.length) return 0;
if (2 == m)
if (g % 4 == 0 && g % 100 != 0 || g % 400 == 0) {
if (v > 29) return 0
} else if (v > 28) return 0;
return (4 == m || 6 == m || 9 == m || 11 == m) && v > 30 ? 0 : (b < 12 && "PM" == x ? b = b - 0 + 12 : b > 11 && "AM" == x && (b -= 12), new Date(g, m - 1, v, b, y, w, S))
}
var C = function (e, t) {
return void 0 === t || 2 == t ? (e >= 0 && e < 10 ? "0" : "") + e : e >= 0 && e < 10 ? "00" + e : e >= 10 && e < 100 ? "0" + e : e
};
void 0 === i && (i = t.date.format), (a = e.getYear()) < 1e3 && (a = String(a + 1900));
var T = e.getMonth() + 1,
D = e.getDate(),
k = e.getDay(),
I = e.getHours(),
E = e.getMinutes(),
$ = e.getSeconds(),
A = e.getMilliseconds();
(e = {
y: a,
yyyy: a,
yy: String(a).substring(2, 4),
M: T,
MM: C(T),
MMM: t.date.monthsShort[T - 1],
MMMM: t.date.monthsFull[T - 1],
d: D,
dd: C(D),
EEE: t.date.daysShort[k],
EEEE: t.date.daysFull[k],
H: I,
HH: C(I)
}).h = 0 === I ? 12 : I > 12 ? I - 12 : I, e.hh = C(e.h), e.k = 0 !== I ? I : 24, e.kk = C(e.k), e.K = I > 11 ? I - 12 : I, e.KK = C(e.K), e.a = I > 11 ? "PM" : "AM", e.m = E, e.mm = C(E), e.s = $, e.ss = C($), e.S = A, e.SS = C(A), e.SSS = C(A, 3);
var M = "";
for (r = 0, l = "", d = "", $ = !1; r < i.length;)
if (d = "", "'" == (l = i.charAt(r))) r++, i.charAt(r) == l ? (M += l, r++) : $ = !$;
else {
for (; i.charAt(r) == l;) d += i.charAt(r++); - 1 != d.indexOf("MMMM") && d.length > 4 && (d = "MMMM"), -1 != d.indexOf("EEEE") && d.length > 4 && (d = "EEEE"), void 0 === e[d] || $ ? M += d : M += e[d]
} return M
},
number: function (e, i) {
var n, a, r, s, o, l;
if ("string" == typeof e) return n = t.number.groupingSeparator, r = t.number.decimalSeparator, o = 1, -1 != (s = e.indexOf(r)) && (o = Math.pow(10, e.length - s - 1)), e = (e = e.replace(new RegExp("[" + n + "]", "g"), "")).replace(new RegExp("[" + r + "]"), "."), Math.round(e * o) / o;
(void 0 === i || i.length < 1) && (i = t.number.format), n = ",", a = i.lastIndexOf(n), r = ".", s = i.indexOf(r);
var d = "",
c = "",
u = e < 0,
p = i.substr(s + 1).replace(/#/g, "").length,
h = i.substr(s + 1).length,
f = 10;
if (e = Math.abs(e), -1 != s) {
if (c = t.number.decimalSeparator, h > 0) {
o = 1e3, f = Math.pow(f, h);
var g = Math.round(parseInt(e * f * o - Math.round(e) * f * o, 10) / o),
m = String(g < 0 ? Math.round(parseInt(e * f * o - parseInt(e, 10) * f * o, 10) / o) : g),
v = e.toString().split(".");
if (void 0 !== v[1])
for (l = 0; l < h && "0" == v[1].substr(l, 1) && l < h - 1 && m.length != h; l++) m = "0" + m;
for (l = 0; l < h - c.length; l++) m += "0";
var b, y = "";
for (l = 0; l < m.length && (b = m.substr(l, 1), !(l >= p && "0" == b && /^0*$/.test(m.substr(l + 1)))); l++) y += b;
c += y
}
c == t.number.decimalSeparator && (c = "")
}
if (0 !== s) {
d = String("" != c ? parseInt(Math.round(e * f) / f, 10) : Math.round(e));
var w = t.number.groupingSeparator,
S = 0;
if (-1 != a && (S = -1 != s ? s - a : i.length - a, S--), S > 0) {
var x = 0,
_ = "";
for (l = d.length; l--;) 0 !== x && x % S == 0 && (_ = w + _), _ = d.substr(l, 1) + _, x++;
d = _
}
var C, T = /#|,/g;
for (C = -1 != s ? i.substr(0, s).replace(T, "").length : i.replace(T, "").length, l = d.length; l < C; l++) d = "0" + d
}
return (u ? "-" : "") + (d + c)
}
});
var t
}) ? n.apply(t, r) : n) || (e.exports = s)
}()
}, function (module, exports, __webpack_require__) {
var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;
/*!
* Monday Webforms for CoreMedia v1.10.6, (c) 2018 Monday Consulting GmbH
*
* @see https://monday-webforms.com/
*/
! function (e) {
"use strict";
__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(0)], void 0 === (__WEBPACK_AMD_DEFINE_RESULT__ = "function" == typeof (__WEBPACK_AMD_DEFINE_FACTORY__ = e) ? __WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__) : __WEBPACK_AMD_DEFINE_FACTORY__) || (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)
}((function ($) {
"use strict";
! function () {
function e(e, t) {
t = t || {
bubbles: !1,
cancelable: !1,
detail: void 0
};
var i = document.createEvent("CustomEvent");
return i.initCustomEvent(e, t.bubbles, t.cancelable, t.detail), i
}
e.prototype = window.Event.prototype, window.CustomEvent = e
}();
var EVENTS = {
AJAX_FINISHED: "mwf-ajax-finished",
AJAX_ERROR: "mwf-ajax-error",
FILL_DROPDOWN: "mwf-fill-dropdown",
FILL_SELECTION: "mwf-fill-selection",
FILL_HIDDEN: "mwf-fill-hidden",
SUGGESTION_SELECTED: "mwf-suggestion-selected",
VALUE_CHANGED: "mwf-value-changed"
},
globalSettings = {},
initialXhrRequest;
function triggerEvent(e, t, i) {
var n;
window.CustomEvent ? n = new CustomEvent(t, i) : (n = document.createEvent("CustomEvent")).initCustomEvent(t, !0, !0, i), e.dispatchEvent(n)
}
function globalSettingsWithVariant(e) {
return void 0 === e ? globalSettings.def : $.extend(!0, {}, globalSettings.def, globalSettings[e])
}
function Webforms(elem, settings) {
var plugin = this,
$elem = $(elem),
operators = {},
formdata = {},
filenames = {},
uiState = {
visible: {},
hidden: {},
writable: {},
readonly: {},
optional: {},
mandatory: {},
disabled: {},
enabled: {}
},
stateMapping = {
visible: "hidden",
hidden: "visible",
writable: "readonly",
readonly: "writable",
optional: "mandatory",
mandatory: "optional",
disabled: "enabled",
enabled: "disabled"
},
$form = $elem.is("form") ? $elem : $elem.find("form"),
formId = $form.dataWithDefault("mwf-id", $form.data("mwf-form")),
targetUrl = $form.dataWithDefault("mwf-target", settings.url),
statisticsUrl = settings.statisticsUrl;
function updateUI(e, t, i) {
var n, a, r, s, o, l, d, c = {
visible: [],
hidden: [],
writable: [],
readonly: [],
optional: [],
mandatory: [],
enabled: [],
disabled: []
};
for (n in uiState) uiState.hasOwnProperty(n) && delete uiState[n][t];
for (a = 0; a < e.length; a++) d = e[a].input, l = e[a].state, i && c[l].push(d), uiState[l][t] = c[l], r = stateMapping[l], s = containsState(l, d), o = containsState(r, d), s ? (plugin.settings.operations[l]($form, e[a]), void 0 !== plugin.settings.onConditionTrue && plugin.settings.onConditionTrue($form, e[a], l)) : !o && s || (plugin.settings.operations[r]($form, e[a]), void 0 !== plugin.settings.onConditionFalse && plugin.settings.onConditionFalse($form, e[a], r))
}
function containsState(e, t) {
var i, n = uiState[e];
for (i in n)
if (n.hasOwnProperty(i) && $.inArray(t, n[i]) > -1) return !0;
return !1
}
function valueChanged(e) {
e.is(":file") || (formdata = serializeForm($form), $form.trigger("mwf-valuechange", e))
}
function startsWith(e, t) {
return null != e && null != t && e.match(new RegExp("^" + t)) == t
}
function serializeForm(e) {
var t = {},
i = e.serializeArray(),
n = e.get(0);
return $.each(i, (function () {
var e, i = n.querySelector('[name="' + this.name + '"]'),
a = this.value || "",
r = i.getAttribute("type");
if ("radio" === r || "checkbox" === r || "select" === i.nodeName.toLowerCase()) {
if (t.hasOwnProperty(this.name) || (t[this.name] = []), startsWith(a, "{")) try {
e = JSON.parse(a).k
} catch (e) { } else "EMPTY_VALUE" === a && (a = "");
t[this.name].push(void 0 !== e ? e : a)
} else if ("hidden" === r) {
if (startsWith(a, "{")) try {
e = JSON.parse(a).v
} catch (e) { }
t[this.name] = void 0 !== e ? e : a
} else t[this.name] = a.trim()
})), $.each(n.querySelectorAll('input[type="checkbox"]:not(:checked),input[type="radio"]:not(:checked)'), (function () {
var e = this.getAttribute("name");
t.hasOwnProperty(e) || (t[e] = "")
})), t
}
function valueLabel(e, t) {
var i = [];
return $.each($form.find('[name="' + e + '"]'), (function () {
var n = $(this);
n.is(":radio") || n.is(":checkbox") ? -1 !== $.inArray(n.attr("data-mwf-value"), t) && i.push(n.attr("data-mwf-label")) : n.is("select") ? $.each(n.find("option"), (function () {
var e = $(this); - 1 !== $.inArray(e.attr("data-mwf-value"), t) && i.push(e.attr("data-mwf-label"))
})) : n.is(":file") ? $.merge(i, filenames[e]) : i.push(t)
})), i
}
function maxSelected(e, t) {
var i = Number(t);
return (null !== e ? e.length : 0) < i
}
function minSelected(e, t) {
var i = Number(t);
return (null !== e ? e.length : 0) > i
}
function isSelected(e, t) {
return null != e && $.inArray(t, e) > -1
}
function parseAge(e, t) {
if (null == t) return null;
var i = parseDate(e, t),
n = new Date;
return Math.floor((n - i) / 315576e5)
}
function parseDate(e, t) {
return null == t ? null : $.format.date(t, e)
}
function isEmptyList(e) {
var t, i;
if (null != e)
for (t = 0; t < e.length; t++)
if ("" !== (i = String(e[t])) && "EMPTY_VALUE" !== i) return !1;
return !0
}
function ajaxFillSelection(e, t) {
var i = $.extend(formdata, t.data);
void 0 === t.createEntry && (t.createEntry = "checkbox" === t.type ? plugin.settings.createCheckBox : plugin.settings.createRadio), void 0 === t.onFillSelection && (t.onFillSelection = plugin.settings.onFillSelection), $.ajax({
url: t.url,
type: "POST",
data: i,
traditional: !0,
cache: !1
}).done((function (i) {
var n, a, r = t.preselected.split(",");
for (n in e.find("[data-mwf-mutable]").remove(), i) i.hasOwnProperty(n) && (a = i[n], e.append(t.createEntry($form, t.name, a, -1 !== $.inArray(a.k, r))));
t.onFillSelection($form, e), triggerEvent(document, EVENTS.FILL_SELECTION, {
detail: {
$form: $form,
$elem: e
}
})
})).fail((function (e, t, i) {
plugin.settings.onAjaxError(e, t, i)
}))
}
function ajaxFillHidden(e, t) {
var i = $.extend(formdata, t.data);
$.ajax({
url: t.url,
type: "POST",
data: i,
traditional: !0,
cache: !1
}).done((function (t) {
e.val(JSON.stringify(t)), e.attr("data-mwf-value", t.v), e.trigger("change"), triggerEvent(document, EVENTS.FILL_HIDDEN, {
detail: {
$form: $form,
$elem: e
}
})
})).fail((function (e, t, i) {
plugin.settings.onAjaxError(e, t, i)
}))
}
function ajaxFillDropdown(e, t) {
var i = $.extend(formdata, t.data);
void 0 === t.createOption && (t.createOption = plugin.settings.createOption), void 0 === t.onFillDropdown && (t.onFillDropdown = plugin.settings.onFillDropdown), $.ajax({
url: t.url,
type: "POST",
data: i,
traditional: !0,
cache: !1
}).done((function (i) {
var n, a, r, s = t.preselected.split(",");
for (a in e.find("[data-mwf-mutable]").remove(), i) i.hasOwnProperty(a) && (r = i[a], n = t.createOption($form, r, -1 !== $.inArray(r.k, s)), e.append(n));
t.onFillDropdown($form, e), triggerEvent(document, EVENTS.FILL_DROPDOWN, {
detail: {
$form: $form,
$elem: e
}
})
})).fail((function (e, t, i) {
plugin.settings.onAjaxError(e, t, i)
}))
}
function ajaxAutocomplete(e, t) {
var i = 1;
void 0 !== t.params.chars && (i = t.params.chars);
e.autocomplete({
paramName: "query",
params: t.data,
serviceUrl: t.url,
maxHeight: 150,
noCache: !0,
minChars: i,
type: "POST",
onSelect: function (i) {
valueChanged(e), triggerEvent(document, EVENTS.SUGGESTION_SELECTED, {
detail: {
$form: $form,
$elem: e,
id: formId,
selection: i,
params: t.params
}
}), $.isFunction(t.onSelect) && t.onSelect(arguments)
},
autoSelectFirst: !0,
sendFormData: !0,
transformResult: function (e) {
return e = JSON.parse(e), {
suggestions: $.map(e, (function (e, t) {
return {
value: e.v,
data: e.k
}
}))
}
}
})
}
function ajaxSubmit(e) {
var t = $form.find(":button").filter(":not(:disabled)"),
i = {
_parentUrl: window.location.href,
_timezone: $.timezone()
};
plugin.settings.appendUrlVars && ($.extend(i, $.getUrlVars(window.location.search)), delete i.view), $.extend(i, $.getUrlVars(e.query), e.data, $form.serializeObject()), (void 0 === e.onSubmit || e.onSubmit($form, e.url, e.query)) && (t.prop("disabled", !0), $.ajax({
url: e.url,
type: "POST",
data: i,
traditional: !0,
cache: !1
}).done((function (t, i, n) {
if (n && n.getResponseHeader("X-Redirect-Location")) {
void 0 !== e.onRedirect && e.onRedirect($form, t, i, n);
var a = 1e3 * (n.getResponseHeader("X-Redirect-Delay") || 0);
if (setTimeout((function () {
location.assign(n.getResponseHeader("X-Redirect-Location"))
}), a), !a) return
}
$elem = $elem.replaceWithPush(t), $form = $elem.is("form") ? $elem : $elem.find("form"), void 0 !== e.onSuccess && e.onSuccess($form, t, i, n), triggerEvent(document, EVENTS.AJAX_FINISHED, {
detail: {
$dest: $elem
}
})
})).fail((function (i, n, a) {
void 0 !== e.onError && e.onError($form, i, n, a), t.prop("disabled", !1), triggerEvent(document, EVENTS.AJAX_ERROR, {
detail: {
$dest: $elem,
jqXHR: i,
textStatus: n,
errorThrown: a
}
})
})))
}
function createCondition(e, t, i, n) {
var a = function () {
var a, r, s, o = !0,
l = !1;
for (a = 0; a < i.length && (!(s = i[a]) || (void 0 === (r = formdata[s[1]]) && (r = s[4]), operators[s[2]](r, s[3]) ? l = !0 : o = !1, t || !l)); a++);
updateUI(n, e, o || !t && l)
};
$form.on("mwf-valuechange", (function (e, t) {
var n;
for (n = 0; n < i.length; n++) i[n] && $(t).attr("name") === i[n][1] && a()
})), a(), void 0 !== plugin.settings.onConditionCreated && plugin.settings.onConditionCreated($form, e, t, i, n)
}
function createCalculatedValue(calcValueId, js, fields, formVariables, updateValue) {
updateValue = void 0 === updateValue ? plugin.settings.updateCalculatedValue : updateValue;
var name, id = calcValueId,
vars = formVariables,
fct, calculate = function () {
var e = $.extend({}, fields, formdata, vars),
t = fct(e),
i = $form.find('[data-mwf-id="' + id + '"]');
updateValue($form, id, t), i.val(t).trigger("change")
};
try {
eval("fct = function(s) {" + js + "}")
} catch (e) {
$.logError(e.message)
}
$form.on("mwf-valuechange", (function (e, t) {
for (name in fields)
if (fields.hasOwnProperty(name) && $(t).attr("name") === name) {
calculate();
break
}
}))
}
function recursiveEach(e, t, i) {
var n, a = [],
r = -1;
void 0 === i && (i = Number.MAX_VALUE), (n = function (e, t) {
var s, o, l, d = Object.getOwnPropertyNames(e || {});
for (r++, l = 0; l < d.length; l++)
if ("object" == typeof (o = e[s = d[l]])) r < i && -1 === $.inArray(o, a) && (a.push(o), n(o, t));
else if (!1 === t.call(e, e, s, o)) break;
r--
})(e, t)
}
void 0 !== settings.formdata && (formdata = settings.formdata), statisticsUrl && 0 !== statisticsUrl.length || (statisticsUrl = null), plugin.settings = settings, operators.contains = function (e, t) {
return null != e && null != t && -1 !== e.indexOf(t)
}, operators.containsnot = function (e, t) {
return null != e && null != t && -1 === e.indexOf(t)
}, operators.startswith = function (e, t) {
return startsWith(e, t)
}, operators.endswith = function (e, t) {
return null != e && null != t && e.match(new RegExp(t + "$")) == t
}, operators.equal = function (e, t) {
if (null == e || null == t) return e === t;
var i = parseFloat(e.replace(",", ".")),
n = parseFloat(t.replace(",", "."));
return !isNaN(i) && !isNaN(n) && i === n || e === t
}, operators.notequal = function (e, t) {
if (null == e || null == t) return e !== t;
var i = parseFloat(e.replace(",", ".")),
n = parseFloat(t.replace(",", "."));
return !isNaN(i) && !isNaN(n) && i !== n || e !== t
}, operators.empty = function (e, t) {
return null == e || "" === e
}, operators.notempty = function (e, t) {
return null != e && "" !== e
}, operators.emptylist = function (e, t) {
return isEmptyList(e)
}, operators.notemptylist = function (e, t) {
return !isEmptyList(e)
}, operators.selected = function (e, t) {
return null != e && null != t && -1 !== $.inArray(t, e)
}, operators.notselected = function (e, t) {
return null != e && null != t && -1 === $.inArray(t, e)
}, operators.minselected = function (e, t) {
return (null == e ? 0 : e.length) > Number(t)
}, operators.maxselected = function (e, t) {
return (null == e ? 0 : e.length) < Number(t)
}, operators.lessthan = function (e, t) {
if (null == e || null == t) return !1;
var i = parseFloat(e.replace(",", ".")),
n = parseFloat(t.replace(",", "."));
return !isNaN(i) && !isNaN(n) && i < n
}, operators.greaterthan = function (e, t) {
if (null == e || null == t) return !1;
var i = parseFloat(e.replace(",", ".")),
n = parseFloat(t.replace(",", "."));
return !isNaN(i) && !isNaN(n) && i > n
}, plugin.formSubmit = function (e) {
ajaxSubmit({
url: targetUrl,
id: formId,
query: void 0 !== e.query ? e.query : "",
onSubmit: void 0 !== e.submit ? e.submit : plugin.settings.onSubmit,
onSuccess: void 0 !== e.success ? e.success : plugin.settings.onSuccess,
onError: void 0 !== e.error ? e.error : plugin.settings.onAjaxError,
onRedirect: void 0 !== e.redirect ? e.redirect : plugin.settings.onRedirect
})
}, plugin.gotoPage = function (e) {
ajaxSubmit({
url: targetUrl,
id: formId,
query: e.query.concat("&_target", e.page, "=", e.page),
onSubmit: void 0 !== e.submit ? e.submit : plugin.settings.onSubmit,
onSuccess: void 0 !== e.success ? e.success : plugin.settings.onSuccess,
onError: void 0 !== e.error ? e.error : plugin.settings.onAjaxError,
onRedirect: void 0 !== e.redirect ? e.redirect : plugin.settings.onRedirect
})
}, plugin.init = function () {
recursiveEach(settings, (function (obj, property, value) {
if ("string" == typeof value && "function" === value.trim().substring(0, 8)) try {
eval("obj[property] =" + value)
} catch (e) {
$.logError(e.message)
}
}), 1), $form.on("change", (function (e) {
valueChanged($(e.target)), null !== statisticsUrl && ($.ajax({
url: statisticsUrl
}), statisticsUrl = null)
})), void 0 === targetUrl && $.logError("No target URL specified."), $.each($form.find("[data-mwf-submit]"), (function () {
var e = $(this).data("mwf-submit"),
t = void 0 !== e.query ? e.query : "",
i = void 0 !== e.success ? e.success : plugin.settings.onSuccess,
n = void 0 !== e.redirect ? e.redirect : plugin.settings.onRedirect,
a = void 0 !== e.error ? e.error : plugin.settings.onAjaxError,
r = void 0 !== e.submit ? e.submit : plugin.settings.onSubmit;
switch (e.type) {
case "next":
case "back":
case "goto":
t = t.concat("&_target", e.page, "=", e.page);
break;
case "cancel":
case "exit":
case "finish":
t = t.concat("&_", e.type, "=1")
}
$(this).on("click", (function () {
ajaxSubmit({
url: targetUrl,
id: formId,
query: t,
onSubmit: r,
onSuccess: i,
onError: a,
onRedirect: n
})
}))
})), $.each($form.find("[data-mwf-bind]"), (function () {
var e = $(this).data("mwf-bind"),
t = $(this);
$form.on("mwf-valuechange", (function (i, n) {
var a, r;
if ($(n).attr("name") === e) return a = formdata[e], r = valueLabel(e, a), plugin.settings.updateFormValue($form, t, e, r), triggerEvent(document, EVENTS.VALUE_CHANGED, {
detail: {
$form: $form,
$elem: t,
name: e,
value: r
}
}), !1
}))
})), $.each($form.find("[data-mwf-fileupload]"), (function () {
var e = $(this),
t = $(this).data("mwf-fileupload"),
i = e.find("[data-mwf-dropzone]"),
n = e.find("[data-mwf-files]"),
a = e.find("input:file"),
r = void 0 !== a.attr("multiple"),
s = !r && $.support.xhrFileUpload || $.support.xhrFormDataFileUpload,
o = 0,
l = [],
d = [],
c = !0,
u = null;
e.find("[data-mwf-file-upload-all]").on("click", (function () {
l.forEach((function (e) {
e.submit()
})), l = []
})), e.find("[data-mwf-file-delete-all]").on("click", (function () {
n.find("[data-mwf-file-delete]").trigger("click"), l = []
})), e.on("disable", (function () {
c = !1, e.fileupload("disable"), e.addClass("mwf-upload-disabled"), e.find(":button").prop("disabled", !0), a.prop("disabled", !0)
})), e.on("enable", (function () {
c = !0, e.fileupload("enable"), e.removeClass("mwf-upload-disabled"), e.find(":button").prop("disabled", !1), a.prop("disabled", !1)
})), i.on("dragover", (function () {
c && $(this).addClass("mwf-upload-dragover")
})), i.on("dragleave drop", (function () {
$(this).removeClass("mwf-upload-dragover")
})), e.fileupload({
url: t.url,
paramName: t.name,
dataType: "json",
dropZone: i,
fileInput: a,
previewMaxWidth: t.previewMaxWidth,
previewMaxHeight: t.previewMaxHeight,
previewCrop: !0,
maxNumberOfFiles: 1,
formData: {
xhr: s
},
add: function (i, a) {
var s = e;
return !!c && ($.each(d, (function (e, t) {
t.remove()
})), !(!r && 0 !== o) && (o++, l.push(a), void a.process((function () {
return s.fileupload("process", a)
})).always((function () {
$.each(a.files, (function (e, i) {
var r = plugin.settings.createUploadFileRow($form, t, i);
a.context = r, r.find("[data-mwf-file-upload]").data(a).on("click", (function () {
l.splice($.inArray(a, l), 1), a.submit()
})), r.find("[data-mwf-file-delete]").data(a).on("click", (function () {
r.remove(), l.splice($.inArray(a, l), 1), o--
})), r.find("[data-mwf-file-preview]").append(i.preview), n.append(r)
})), !0 === t.autoUpload && a.submit()
}))))
},
submit: function (e, t) {
null === u && (u = $form.find(":button").filter(":not(:disabled)")).prop("disabled", !0)
},
progress: function (e, t) {
var i = parseInt(t.loaded / t.total * 100, 10);
t.context && t.context.each((function () {
t.context.find("[data-mwf-file-progress]").attr("aria-valuenow", i).css("display", "block").children().first().css("width", i + "%").text(i + "%")
}))
},
done: function (e, i) {
var a = "string" == typeof i.result ? JSON.parse(i.result).files : i.result.files;
$.each(a, (function (e, a) {
var r = plugin.settings.createDownloadFileRow($form, t, a);
void 0 !== i.context ? i.context.replaceWith(r) : n.append(r), void 0 === a.error ? (r.find("[data-mwf-file-delete]").on("click", (function () {
a.delete_url && $.ajax({
url: a.delete_url
}), r.remove(), l.splice($.inArray(i, l), 1), filenames.hasOwnProperty(t.name) && (filenames[t.name].splice($.inArray(a.name, filenames[t.name]), 1), $form.trigger("mwf-valuechange", i.fileInput)), o--
})), filenames.hasOwnProperty(t.name) || (filenames[t.name] = []), filenames[t.name].push(a.name), $form.trigger("mwf-valuechange", i.fileInput)) : (r.find("[data-mwf-file-delete]").on("click", (function () {
r.remove(), l.splice($.inArray(i, l), 1)
})), d.push(r), o--)
}))
},
fail: function (e, i) {
$.each(i.files, (function (e, a) {
var r = plugin.settings.createDownloadFileRow($form, t, {
name: a.name,
size: a.size,
error: t.labels.error
});
r.find("[data-mwf-file-delete]").data(i).on("click", (function () {
r.remove(), l.splice($.inArray(i, l), 1)
})), d.push(r), o--, void 0 !== i.context ? i.context.replaceWith(r) : n.append(r)
}))
},
always: function (t, i) {
null !== u && 1 === e.fileupload("active") && (u.prop("disabled", !1), u = null)
}
}), $.ajax({
url: t.url,
dataType: "json",
data: {
_name: t.name,
_do: "files"
}
}).done((function (t) {
e.fileupload("option", "done").call(e, $.Event("done"), {
result: t
}), o = t.files.length
}))
})), $.each($form.find("[data-mwf-datasource]"), (function () {
var e = $.extend(!0, {}, {
params: {},
data: {}
}, $(this).data("mwf-datasource")),
t = $(this);
switch (e.type) {
case "checkbox":
case "radio":
ajaxFillSelection(t, e), $form.on("mwf-valuechange", (function (i, n) {
$.trim(e.params.dependsOn) && $.each(e.params.dependsOn.split(","), (function (i, a) {
if ($(n).attr("name") === a) return ajaxFillSelection(t, e), !1
}))
}));
break;
case "selection":
ajaxFillDropdown(t, e), $form.on("mwf-valuechange", (function (i, n) {
$.trim(e.params.dependsOn) && $.each(e.params.dependsOn.split(","), (function (i, a) {
if ($(n).attr("name") === a) return ajaxFillDropdown(t, e), !1
}))
}));
break;
case "suggestion":
ajaxAutocomplete(t, e);
break;
case "hidden":
ajaxFillHidden(t, e), $form.on("mwf-valuechange", (function (i, n) {
$.trim(e.params.dependsOn) && $.each(e.params.dependsOn.split(","), (function (i, a) {
if ($(n).attr("name") === a) return ajaxFillHidden(t, e), !1
}))
}));
break;
default:
$.logError(void 0 === e.type ? "Please specifiy the datasource type (checkbox, radio, selection or suggestion)." : 'Unknown datasource type "'.concat(e.type, '".'))
}
})), $.each(plugin.settings.conditions, (function () {
createCondition($(this).attr("id"), $(this).attr("conjunction"), $(this).attr("conditions"), $(this).attr("fields"))
})), $.each(plugin.settings.calculatedValues, (function () {
createCalculatedValue($(this).attr("id"), $(this).attr("js"), $(this).attr("fields"), $(this).attr("vars"))
})), plugin.settings.onInit($form)
}, plugin.init()
}
globalSettings.def = {
appendUrlVars: !1,
operations: {},
conditions: [],
calculatedValues: [],
fileuploadOptions: {},
onConditionTrue: void 0,
onConditionFalse: void 0,
statisticsUrl: null
}, globalSettings.def.operations.visible = function (e, t) {
var i = e.find('[data-mwf-container="' + t.input + '"]');
i.removeAttr("disabled"), i.removeClass("mwf-hidden")
}, globalSettings.def.operations.hidden = function (e, t) {
var i = e.find('[data-mwf-container="' + t.input + '"]');
i.attr("disabled", "true"), i.addClass("mwf-hidden")
}, globalSettings.def.operations.writable = function (e, t) {
e.find('[data-mwf-id="' + t.input + '"]').removeAttr("readonly")
}, globalSettings.def.operations.readonly = function (e, t) {
var i = e.find('[data-mwf-id="' + t.input + '"]');
i.val(t.value), i.attr("readonly", "true")
}, globalSettings.def.operations.enabled = function (e, t) {
var i = e.find('[data-mwf-id="' + t.input + '"]');
i.removeAttr("disabled"), i.trigger("enable")
}, globalSettings.def.operations.disabled = function (e, t) {
var i = e.find('[data-mwf-id="' + t.input + '"]');
i.attr("disabled", "true"), i.trigger("disable")
}, globalSettings.def.operations.optional = function (e, t) {
e.find('label[for="' + t.input + '"]').children("span.mwf-required").remove()
}, globalSettings.def.operations.mandatory = function (e, t) {
var i = e.find('label[for="' + t.input + '"]'),
n = $("<span></span>").attr("class", "mwf-required").text("*");
i.children("span.mwf-required").remove(), i.append(n)
}, globalSettings.def.createOption = function (e, t, i) {
var n = $("<option></option>").attr("data-mwf-value", t.k).attr("data-mwf-label", t.v).attr("data-mwf-mutable", "").attr("value", JSON.stringify(t)).append(t.v);
return i && n.attr("selected", !0), n
}, globalSettings.def.createRadio = function (e, t, i, n) {
var a, r, s;
return a = $("<span></span>").attr("class", "mwf-option").attr("data-mwf-mutable", ""), r = $("<input/>").attr("type", "radio").attr("id", i.i).attr("data-mwf-id", i.i).attr("data-mwf-value", i.k).attr("data-mwf-label", i.v).attr("value", JSON.stringify(i)).attr("name", t).attr("class", "mwf-radio"), n && r.attr("checked", "checked"), s = $("<label></label>").attr("for", i.i).append(i.v), a.append(r), a.append(" "), a.append(s), a
}, globalSettings.def.createCheckBox = function (e, t, i, n) {
var a, r, s;
return a = $("<span></span>").attr("class", "mwf-option").attr("data-mwf-mutable", ""), r = $("<input/>").attr("type", "checkbox").attr("id", i.i).attr("data-mwf-id", i.i).attr("data-mwf-value", i.k).attr("data-mwf-label", i.v).attr("value", JSON.stringify(i)).attr("name", t).attr("class", "mwf-checkbox"), n && r.attr("checked", "checked"), s = $("<label></label>").attr("for", i.i).append(i.v), a.append(r), a.append(" "), a.append(s), a
}, globalSettings.def.updateFormValue = function (e, t, i, n) {
t.html($.isArray(n) ? n.join(", ") : n)
}, globalSettings.def.createUploadFileRow = function (e, t, i) {
var n, a, r, s, o, l, d, c, u, p, h, f, g;
return n = $("<div/>").attr("data-mwf-file", "").attr("class", "mwf-upload-row"), a = $("<div/>").attr("class", "mwf-upload-fileinfo"), s = $("<div/>").attr("data-mwf-file-preview", "").attr("class", "mwf-upload-preview"), r = $("<div/>").attr("class", "mwf-upload-metadata"), o = $("<ul/>"), l = $("<li>").text(t.labels.name + ": " + i.name), d = $("<li>").text(t.labels.size + ": " + $.formatSize(i.size)), c = $("<div/>").attr("class", " mwf-upload-actions"), u = $("<button>").attr("data-mwf-file-upload", "").attr("class", "mwf-upload-upload").text(t.labels.upload), p = $("<button>").attr("data-mwf-file-delete", "").attr("class", "mwf-upload-delete").text(t.labels.del), h = $("<span>").css("width", "0%"), f = $("<div/>").attr("data-mwf-file-progress", "").attr("class", "mwf-upload-progressbar"), g = $("<div/>").attr("data-mwf-file-error", "").attr("class", "mwf-upload-error"), c.append(p), !1 === t.autoUpload && c.append(u), o.append(l), o.append(d), r.append(o), a.append(s), a.append(r), f.append(h), n.append(a), n.append(c), n.append(g), n.append(f), n
}, globalSettings.def.createDownloadFileRow = function (e, t, i) {
var n, a, r, s, o, l, d, c, u, p, h, f;
return n = $("<div/>").attr("data-mwf-file", "").attr("class", "mwf-upload-row"), a = $("<div/>").attr("class", "mwf-upload-fileinfo"), s = $("<div/>").attr("data-mwf-preview", "").attr("class", "mwf-upload-preview"), r = $("<div/>").attr("class", "mwf-upload-metadata"), l = $("<ul/>"), d = $("<li>").text(t.labels.name + ": " + i.name), c = $("<li>").text(t.labels.size + ": " + $.formatSize(i.size)), u = $("<div/>").attr("class", " mwf-upload-actions"), p = $("<button>").attr("data-mwf-file-delete", "").attr("class", "mwf-upload-delete").text(t.labels.del), u.append(p), l.append(d), l.append(c), r.append(l), i.thumbnail_url && (o = $("<img/>").attr("src", i.thumbnail_url), s.append(o)), a.append(s), a.append(r), n.append(a), n.append(u), i.error && (f = $("<div/>").attr("data-mwf-file-error", "").attr("class", "mwf-upload-error"), h = $("<span>").text(i.error), f.append(h), n.append(f)), n
}, globalSettings.def.updateCalculatedValue = function (e, t, i) {
e.find('[data-mwf-value="' + t + '"]').text(i).html()
}, globalSettings.def.onAjaxError = function (e, t, i) {
$.logError(e.responseText)
}, globalSettings.def.onSubmit = function (e, t, i) {
return !0
}, globalSettings.def.onConditionCreated = function (e, t, i, n, a) { }, globalSettings.def.onFillDropdown = function (e, t) { }, globalSettings.def.onFillSelection = function (e, t) { }, globalSettings.def.onInit = function (e) { }, $.fn.webforms = function (e) {
var t, i, n, a = $(this),
r = a;
if (void 0 === a.data("mwf-form") && (r = a.find("[data-mwf-form]")), 0 !== r.length) {
if (i = r.dataWithDefault("mwf-id", r.data("mwf-form")), t = r.dataWithDefault("mwf-settings", {}), n = {
id: i,
type: "GET",
appendUrlVars: !1
}, $.extend(!0, n, globalSettingsWithVariant(t.variant), t, e), r.is("form") || r.find("form").length > 0) return r.each((function () {
var e = $(this).data("webforms");
e && e.dispose && e.dispose(), e = new Webforms($(this), n), $(this).data("webforms", e)
}));
n.selector = a, $.mwfAjaxReplace(n)
}
}, $.fn.webforms.settings = function (e) {
return void 0 === e ? globalSettings.def : (void 0 === globalSettings[e] && (globalSettings[e] = {}), globalSettings[e])
}, $.fn.webforms.defaults = $.fn.webforms.settings, $.fn.replaceWithPush = function (e) {
var t = $(e);
return this.replaceWith(t), t
}, $.fn.dataWithDefault = function (e, t) {
var i = this.data(e);
return void 0 !== i ? i : t
}, void 0 === $.fn.serializeObject && ($.fn.serializeObject = function () {
var e = {},
t = this.serializeArray();
return $.each(t, (function () {
void 0 !== e[this.name] ? (e[this.name].push || (e[this.name] = [e[this.name]]), e[this.name].push(this.value || "")) : e[this.name] = this.value || ""
})), e
}), void 0 === $.logError && $.extend({
logError: function (e) {
try {
void 0 !== e && void 0 !== window.console && console.error(e)
} catch (e) { }
}
}), $.extend({
mwfAjaxReplace: function (e) {
var t, i, n, a = $(e.selector),
r = {
_parentUrl: window.location.href,
_timezone: $.timezone()
};
a.length > 0 && (null !== (t = $.getOptinIdFromHash(e.id)) && (r._optinId = t, void 0 !== history.replaceState ? history.replaceState({}, document.title, window.location.pathname) : window.location.hash = "", $("html, body").animate({
scrollTop: a.offset().top
})), i = {
url: null,
type: "POST",
appendUrlVars: !1
}, $.extend(i, e), i.appendUrlVars && ($.extend(r, $.getUrlVars(window.location.search)), delete r.view), $.extend(r, $.getUrlVars(i.query), e.data), n = function () {
return $.ajax({
url: i.url,
type: i.type,
data: r,
traditional: !0,
cache: !1
}).done((function (e, t, n) {
n && n.getResponseHeader("X-Redirect-Location") ? location.assign(n.getResponseHeader("X-Redirect-Location")) : (a = a.replaceWithPush(e), void 0 !== i.onSuccess && i.onSuccess(e, t, n), triggerEvent(document, EVENTS.AJAX_FINISHED, {
detail: {
$dest: a
}
}))
})).fail((function (e, t, n) {
void 0 !== i.onError ? i.onError(e, t, n) : $.logError(e.responseText), triggerEvent(document, EVENTS.AJAX_ERROR, {
detail: {
$dest: a,
jqXHR: e,
textStatus: t,
errorThrown: n
}
})
}))
}, void 0 === initialXhrRequest ? initialXhrRequest = n() : $.when(initialXhrRequest).always(n))
},
getUrlVars: function (e) {
var t, i, n, a, r, s, o = {};
if ("string" == typeof e && e.length > 0)
for ("?" === e[0] && (e = e.substring(1)), t = 0, s = (e = e.split("&")).length; t < s; t++) e[t] && 0 !== e[t].length && ((n = (i = e[t]).indexOf("=")) >= 0 ? (a = i.substr(0, n), r = i.substr(n + 1)) : (a = i, r = ""), r = decodeURIComponent(r), void 0 === o[a] ? o[a] = r : o[a] instanceof Array ? o[a].push(r) : o[a] = [o[a], r]);
return o
},
getUrlVar: function (e, t) {
return $.getUrlVars(e)[t]
},
getOptinIdFromHash: function (e) {
var t = location.hash.replace("#", ""),
i = t.indexOf("mwf:");
if (-1 !== i) {
var n = t.split(":");
if (2 === n.length || n[1] === String(e)) return t.substring(i + 4, t.length)
}
return null
},
formatSize: function (e) {
return "number" != typeof e ? "" : e >= 1e9 ? (e / 1e9).toFixed(2) + " GB" : e >= 1e6 ? (e / 1e6).toFixed(2) + " MB" : (e / 1e3).toFixed(2) + " KB"
},
timezone: function () {
try {
return Intl.DateTimeFormat().resolvedOptions().timeZone
} catch (e) {
return "UTC"
}
}
}), $(document).ready((function () {
var e = $(document),
t = $("[data-csrf-token]"),
i = $("[data-csrf-header]");
t.length && $.ajaxSetup({
beforeSend: function (e) {
i.length && e.setRequestHeader(i.attr("data-csrf-header"), t.attr("data-csrf-token")), e.setRequestHeader("X-CSRFToken", t.attr("data-csrf-token"))
}
}), e.on(EVENTS.AJAX_FINISHED, (function (e) {
e.originalEvent.detail.$dest.webforms({})
})), $("[data-mwf-form]").each((function () {
$(this).webforms({})
}))
}))
}))
}, function (e, t, i) {
i(39), i(40), i(41), i(42), i(43), i(44), i(45), i(46), i(47), i(48), i(49), i(50)
}, function (e, t, i) {
(function (e) {
! function (e) {
"use strict";
e.fn.emulateTransitionEnd = function (t) {
var i = !1,
n = this;
e(this).one("bsTransitionEnd", (function () {
i = !0
}));
return setTimeout((function () {
i || e(n).trigger(e.support.transition.end)
}), t), this
}, e((function () {
e.support.transition = function () {
var e = document.createElement("bootstrap"),
t = {
WebkitTransition: "webkitTransitionEnd",
MozTransition: "transitionend",
OTransition: "oTransitionEnd otransitionend",
transition: "transitionend"
};
for (var i in t)
if (void 0 !== e.style[i]) return {
end: t[i]
};
return !1
}(), e.support.transition && (e.event.special.bsTransitionEnd = {
bindType: e.support.transition.end,
delegateType: e.support.transition.end,
handle: function (t) {
if (e(t.target).is(this)) return t.handleObj.handler.apply(this, arguments)
}
})
}))
}(e)
}).call(this, i(0))
}, function (e, t, i) {
(function (e) {
! function (e) {
"use strict";
var t = '[data-dismiss="alert"]',
i = function (i) {
e(i).on("click", t, this.close)
};
i.VERSION = "3.3.7", i.TRANSITION_DURATION = 150, i.prototype.close = function (t) {
var n = e(this),
a = n.attr("data-target");
a || (a = (a = n.attr("href")) && a.replace(/.*(?=#[^\s]*$)/, ""));
var r = e("#" === a ? [] : a);
function s() {
r.detach().trigger("closed.bs.alert").remove()
}
t && t.preventDefault(), r.length || (r = n.closest(".alert")), r.trigger(t = e.Event("close.bs.alert")), t.isDefaultPrevented() || (r.removeClass("in"), e.support.transition && r.hasClass("fade") ? r.one("bsTransitionEnd", s).emulateTransitionEnd(i.TRANSITION_DURATION) : s())
};
var n = e.fn.alert;
e.fn.alert = function (t) {
return this.each((function () {
var n = e(this),
a = n.data("bs.alert");
a || n.data("bs.alert", a = new i(this)), "string" == typeof t && a[t].call(n)
}))
}, e.fn.alert.Constructor = i, e.fn.alert.noConflict = function () {
return e.fn.alert = n, this
}, e(document).on("click.bs.alert.data-api", t, i.prototype.close)
}(e)
}).call(this, i(0))
}, function (e, t, i) {
(function (e) {
! function (e) {
"use strict";
var t = function (i, n) {
this.$element = e(i), this.options = e.extend({}, t.DEFAULTS, n), this.isLoading = !1
};
function i(i) {
return this.each((function () {
var n = e(this),
a = n.data("bs.button"),
r = "object" == typeof i && i;
a || n.data("bs.button", a = new t(this, r)), "toggle" == i ? a.toggle() : i && a.setState(i)
}))
}
t.VERSION = "3.3.7", t.DEFAULTS = {
loadingText: "loading..."
}, t.prototype.setState = function (t) {
var i = "disabled",
n = this.$element,
a = n.is("input") ? "val" : "html",
r = n.data();
t += "Text", null == r.resetText && n.data("resetText", n[a]()), setTimeout(e.proxy((function () {
n[a](null == r[t] ? this.options[t] : r[t]), "loadingText" == t ? (this.isLoading = !0, n.addClass(i).attr(i, i).prop(i, !0)) : this.isLoading && (this.isLoading = !1, n.removeClass(i).removeAttr(i).prop(i, !1))
}), this), 0)
}, t.prototype.toggle = function () {
var e = !0,
t = this.$element.closest('[data-toggle="buttons"]');
if (t.length) {
var i = this.$element.find("input");
"radio" == i.prop("type") ? (i.prop("checked") && (e = !1), t.find(".active").removeClass("active"), this.$element.addClass("active")) : "checkbox" == i.prop("type") && (i.prop("checked") !== this.$element.hasClass("active") && (e = !1), this.$element.toggleClass("active")), i.prop("checked", this.$element.hasClass("active")), e && i.trigger("change")
} else this.$element.attr("aria-pressed", !this.$element.hasClass("active")), this.$element.toggleClass("active")
};
var n = e.fn.button;
e.fn.button = i, e.fn.button.Constructor = t, e.fn.button.noConflict = function () {
return e.fn.button = n, this
}, e(document).on("click.bs.button.data-api", '[data-toggle^="button"]', (function (t) {
var n = e(t.target).closest(".btn");
i.call(n, "toggle"), e(t.target).is('input[type="radio"], input[type="checkbox"]') || (t.preventDefault(), n.is("input,button") ? n.trigger("focus") : n.find("input:visible,button:visible").first().trigger("focus"))
})).on("focus.bs.button.data-api blur.bs.button.data-api", '[data-toggle^="button"]', (function (t) {
e(t.target).closest(".btn").toggleClass("focus", /^focus(in)?$/.test(t.type))
}))
}(e)
}).call(this, i(0))
}, function (e, t, i) {
(function (e) {
! function (e) {
"use strict";
var t = function (t, i) {
this.$element = e(t), this.$indicators = this.$element.find(".carousel-indicators"), this.options = i, this.paused = null, this.sliding = null, this.interval = null, this.$active = null, this.$items = null, this.options.keyboard && this.$element.on("keydown.bs.carousel", e.proxy(this.keydown, this)), "hover" == this.options.pause && !("ontouchstart" in document.documentElement) && this.$element.on("mouseenter.bs.carousel", e.proxy(this.pause, this)).on("mouseleave.bs.carousel", e.proxy(this.cycle, this))
};
function i(i) {
return this.each((function () {
var n = e(this),
a = n.data("bs.carousel"),
r = e.extend({}, t.DEFAULTS, n.data(), "object" == typeof i && i),
s = "string" == typeof i ? i : r.slide;
a || n.data("bs.carousel", a = new t(this, r)), "number" == typeof i ? a.to(i) : s ? a[s]() : r.interval && a.pause().cycle()
}))
}
t.VERSION = "3.3.7", t.TRANSITION_DURATION = 600, t.DEFAULTS = {
interval: 5e3,
pause: "hover",
wrap: !0,
keyboard: !0
}, t.prototype.keydown = function (e) {
if (!/input|textarea/i.test(e.target.tagName)) {
switch (e.which) {
case 37:
this.prev();
break;
case 39:
this.next();
break;
default:
return
}
e.preventDefault()
}
}, t.prototype.cycle = function (t) {
return t || (this.paused = !1), this.interval && clearInterval(this.interval), this.options.interval && !this.paused && (this.interval = setInterval(e.proxy(this.next, this), this.options.interval)), this
}, t.prototype.getItemIndex = function (e) {
return this.$items = e.parent().children(".item"), this.$items.index(e || this.$active)
}, t.prototype.getItemForDirection = function (e, t) {
var i = this.getItemIndex(t);
if (("prev" == e && 0 === i || "next" == e && i == this.$items.length - 1) && !this.options.wrap) return t;
var n = (i + ("prev" == e ? -1 : 1)) % this.$items.length;
return this.$items.eq(n)
}, t.prototype.to = function (e) {
var t = this,
i = this.getItemIndex(this.$active = this.$element.find(".item.active"));
if (!(e > this.$items.length - 1 || e < 0)) return this.sliding ? this.$element.one("slid.bs.carousel", (function () {
t.to(e)
})) : i == e ? this.pause().cycle() : this.slide(e > i ? "next" : "prev", this.$items.eq(e))
}, t.prototype.pause = function (t) {
return t || (this.paused = !0), this.$element.find(".next, .prev").length && e.support.transition && (this.$element.trigger(e.support.transition.end), this.cycle(!0)), this.interval = clearInterval(this.interval), this
}, t.prototype.next = function () {
if (!this.sliding) return this.slide("next")
}, t.prototype.prev = function () {
if (!this.sliding) return this.slide("prev")
}, t.prototype.slide = function (i, n) {
var a = this.$element.find(".item.active"),
r = n || this.getItemForDirection(i, a),
s = this.interval,
o = "next" == i ? "left" : "right",
l = this;
if (r.hasClass("active")) return this.sliding = !1;
var d = r[0],
c = e.Event("slide.bs.carousel", {
relatedTarget: d,
direction: o
});
if (this.$element.trigger(c), !c.isDefaultPrevented()) {
if (this.sliding = !0, s && this.pause(), this.$indicators.length) {
this.$indicators.find(".active").removeClass("active");
var u = e(this.$indicators.children()[this.getItemIndex(r)]);
u && u.addClass("active")
}
var p = e.Event("slid.bs.carousel", {
relatedTarget: d,
direction: o
});
return e.support.transition && this.$element.hasClass("slide") ? (r.addClass(i), r[0].offsetWidth, a.addClass(o), r.addClass(o), a.one("bsTransitionEnd", (function () {
r.removeClass([i, o].join(" ")).addClass("active"), a.removeClass(["active", o].join(" ")), l.sliding = !1, setTimeout((function () {
l.$element.trigger(p)
}), 0)
})).emulateTransitionEnd(t.TRANSITION_DURATION)) : (a.removeClass("active"), r.addClass("active"), this.sliding = !1, this.$element.trigger(p)), s && this.cycle(), this
}
};
var n = e.fn.carousel;
e.fn.carousel = i, e.fn.carousel.Constructor = t, e.fn.carousel.noConflict = function () {
return e.fn.carousel = n, this
};
var a = function (t) {
var n, a = e(this),
r = e(a.attr("data-target") || (n = a.attr("href")) && n.replace(/.*(?=#[^\s]+$)/, ""));
if (r.hasClass("carousel")) {
var s = e.extend({}, r.data(), a.data()),
o = a.attr("data-slide-to");
o && (s.interval = !1), i.call(r, s), o && r.data("bs.carousel").to(o), t.preventDefault()
}
};
e(document).on("click.bs.carousel.data-api", "[data-slide]", a).on("click.bs.carousel.data-api", "[data-slide-to]", a), e(window).on("load", (function () {
e('[data-ride="carousel"]').each((function () {
var t = e(this);
i.call(t, t.data())
}))
}))
}(e)
}).call(this, i(0))
}, function (e, t, i) {
(function (e) {
! function (e) {
"use strict";
var t = function (i, n) {
this.$element = e(i), this.options = e.extend({}, t.DEFAULTS, n), this.$trigger = e('[data-toggle="collapse"][href="#' + i.id + '"],[data-toggle="collapse"][data-target="#' + i.id + '"]'), this.transitioning = null, this.options.parent ? this.$parent = this.getParent() : this.addAriaAndCollapsedClass(this.$element, this.$trigger), this.options.toggle && this.toggle()
};
function i(t) {
var i, n = t.attr("data-target") || (i = t.attr("href")) && i.replace(/.*(?=#[^\s]+$)/, "");
return e(n)
}
function n(i) {
return this.each((function () {
var n = e(this),
a = n.data("bs.collapse"),
r = e.extend({}, t.DEFAULTS, n.data(), "object" == typeof i && i);
!a && r.toggle && /show|hide/.test(i) && (r.toggle = !1), a || n.data("bs.collapse", a = new t(this, r)), "string" == typeof i && a[i]()
}))
}
t.VERSION = "3.3.7", t.TRANSITION_DURATION = 350, t.DEFAULTS = {
toggle: !0
}, t.prototype.dimension = function () {
return this.$element.hasClass("width") ? "width" : "height"
}, t.prototype.show = function () {
if (!this.transitioning && !this.$element.hasClass("in")) {
var i, a = this.$parent && this.$parent.children(".panel").children(".in, .collapsing");
if (!(a && a.length && (i = a.data("bs.collapse")) && i.transitioning)) {
var r = e.Event("show.bs.collapse");
if (this.$element.trigger(r), !r.isDefaultPrevented()) {
a && a.length && (n.call(a, "hide"), i || a.data("bs.collapse", null));
var s = this.dimension();
this.$element.removeClass("collapse").addClass("collapsing")[s](0).attr("aria-expanded", !0), this.$trigger.removeClass("collapsed").attr("aria-expanded", !0), this.transitioning = 1;
var o = function () {
this.$element.removeClass("collapsing").addClass("collapse in")[s](""), this.transitioning = 0, this.$element.trigger("shown.bs.collapse")
};
if (!e.support.transition) return o.call(this);
var l = e.camelCase(["scroll", s].join("-"));
this.$element.one("bsTransitionEnd", e.proxy(o, this)).emulateTransitionEnd(t.TRANSITION_DURATION)[s](this.$element[0][l])
}
}
}
}, t.prototype.hide = function () {
if (!this.transitioning && this.$element.hasClass("in")) {
var i = e.Event("hide.bs.collapse");
if (this.$element.trigger(i), !i.isDefaultPrevented()) {
var n = this.dimension();
this.$element[n](this.$element[n]())[0].offsetHeight, this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded", !1), this.$trigger.addClass("collapsed").attr("aria-expanded", !1), this.transitioning = 1;
var a = function () {
this.transitioning = 0, this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")
};
if (!e.support.transition) return a.call(this);
this.$element[n](0).one("bsTransitionEnd", e.proxy(a, this)).emulateTransitionEnd(t.TRANSITION_DURATION)
}
}
}, t.prototype.toggle = function () {
this[this.$element.hasClass("in") ? "hide" : "show"]()
}, t.prototype.getParent = function () {
return e(this.options.parent).find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]').each(e.proxy((function (t, n) {
var a = e(n);
this.addAriaAndCollapsedClass(i(a), a)
}), this)).end()
}, t.prototype.addAriaAndCollapsedClass = function (e, t) {
var i = e.hasClass("in");
e.attr("aria-expanded", i), t.toggleClass("collapsed", !i).attr("aria-expanded", i)
};
var a = e.fn.collapse;
e.fn.collapse = n, e.fn.collapse.Constructor = t, e.fn.collapse.noConflict = function () {
return e.fn.collapse = a, this
}, e(document).on("click.bs.collapse.data-api", '[data-toggle="collapse"]', (function (t) {
var a = e(this);
a.attr("data-target") || t.preventDefault();
var r = i(a),
s = r.data("bs.collapse") ? "toggle" : a.data();
n.call(r, s)
}))
}(e)
}).call(this, i(0))
}, function (e, t, i) {
(function (e) {
! function (e) {
"use strict";
var t = '[data-toggle="dropdown"]',
i = function (t) {
e(t).on("click.bs.dropdown", this.toggle)
};
function n(t) {
var i = t.attr("data-target");
i || (i = (i = t.attr("href")) && /#[A-Za-z]/.test(i) && i.replace(/.*(?=#[^\s]*$)/, ""));
var n = i && e(i);
return n && n.length ? n : t.parent()
}
function a(i) {
i && 3 === i.which || (e(".dropdown-backdrop").remove(), e(t).each((function () {
var t = e(this),
a = n(t),
r = {
relatedTarget: this
};
a.hasClass("open") && (i && "click" == i.type && /input|textarea/i.test(i.target.tagName) && e.contains(a[0], i.target) || (a.trigger(i = e.Event("hide.bs.dropdown", r)), i.isDefaultPrevented() || (t.attr("aria-expanded", "false"), a.removeClass("open").trigger(e.Event("hidden.bs.dropdown", r)))))
})))
}
i.VERSION = "3.3.7", i.prototype.toggle = function (t) {
var i = e(this);
if (!i.is(".disabled, :disabled")) {
var r = n(i),
s = r.hasClass("open");
if (a(), !s) {
"ontouchstart" in document.documentElement && !r.closest(".navbar-nav").length && e(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(e(this)).on("click", a);
var o = {
relatedTarget: this
};
if (r.trigger(t = e.Event("show.bs.dropdown", o)), t.isDefaultPrevented()) return;
i.trigger("focus").attr("aria-expanded", "true"), r.toggleClass("open").trigger(e.Event("shown.bs.dropdown", o))
}
return !1
}
}, i.prototype.keydown = function (i) {
if (/(38|40|27|32)/.test(i.which) && !/input|textarea/i.test(i.target.tagName)) {
var a = e(this);
if (i.preventDefault(), i.stopPropagation(), !a.is(".disabled, :disabled")) {
var r = n(a),
s = r.hasClass("open");
if (!s && 27 != i.which || s && 27 == i.which) return 27 == i.which && r.find(t).trigger("focus"), a.trigger("click");
var o = r.find(".dropdown-menu li:not(.disabled):visible a");
if (o.length) {
var l = o.index(i.target);
38 == i.which && l > 0 && l--, 40 == i.which && l < o.length - 1 && l++, ~l || (l = 0), o.eq(l).trigger("focus")
}
}
}
};
var r = e.fn.dropdown;
e.fn.dropdown = function (t) {
return this.each((function () {
var n = e(this),
a = n.data("bs.dropdown");
a || n.data("bs.dropdown", a = new i(this)), "string" == typeof t && a[t].call(n)
}))
}, e.fn.dropdown.Constructor = i, e.fn.dropdown.noConflict = function () {
return e.fn.dropdown = r, this
}, e(document).on("click.bs.dropdown.data-api", a).on("click.bs.dropdown.data-api", ".dropdown form", (function (e) {
e.stopPropagation()
})).on("click.bs.dropdown.data-api", t, i.prototype.toggle).on("keydown.bs.dropdown.data-api", t, i.prototype.keydown).on("keydown.bs.dropdown.data-api", ".dropdown-menu", i.prototype.keydown)
}(e)
}).call(this, i(0))
}, function (e, t, i) {
(function (e) {
! function (e) {
"use strict";
var t = function (t, i) {
this.options = i, this.$body = e(document.body), this.$element = e(t), this.$dialog = this.$element.find(".modal-dialog"), this.$backdrop = null, this.isShown = null, this.originalBodyPad = null, this.scrollbarWidth = 0, this.ignoreBackdropClick = !1, this.options.remote && this.$element.find(".modal-content").load(this.options.remote, e.proxy((function () {
this.$element.trigger("loaded.bs.modal")
}), this))
};
function i(i, n) {
return this.each((function () {
var a = e(this),
r = a.data("bs.modal"),
s = e.extend({}, t.DEFAULTS, a.data(), "object" == typeof i && i);
r || a.data("bs.modal", r = new t(this, s)), "string" == typeof i ? r[i](n) : s.show && r.show(n)
}))
}
t.VERSION = "3.3.7", t.TRANSITION_DURATION = 300, t.BACKDROP_TRANSITION_DURATION = 150, t.DEFAULTS = {
backdrop: !0,
keyboard: !0,
show: !0
}, t.prototype.toggle = function (e) {
return this.isShown ? this.hide() : this.show(e)
}, t.prototype.show = function (i) {
var n = this,
a = e.Event("show.bs.modal", {
relatedTarget: i
});
this.$element.trigger(a), this.isShown || a.isDefaultPrevented() || (this.isShown = !0, this.checkScrollbar(), this.setScrollbar(), this.$body.addClass("modal-open"), this.escape(), this.resize(), this.$element.on("click.dismiss.bs.modal", '[data-dismiss="modal"]', e.proxy(this.hide, this)), this.$dialog.on("mousedown.dismiss.bs.modal", (function () {
n.$element.one("mouseup.dismiss.bs.modal", (function (t) {
e(t.target).is(n.$element) && (n.ignoreBackdropClick = !0)
}))
})), this.backdrop((function () {
var a = e.support.transition && n.$element.hasClass("fade");
n.$element.parent().length || n.$element.appendTo(n.$body), n.$element.show().scrollTop(0), n.adjustDialog(), a && n.$element[0].offsetWidth, n.$element.addClass("in"), n.enforceFocus();
var r = e.Event("shown.bs.modal", {
relatedTarget: i
});
a ? n.$dialog.one("bsTransitionEnd", (function () {
n.$element.trigger("focus").trigger(r)
})).emulateTransitionEnd(t.TRANSITION_DURATION) : n.$element.trigger("focus").trigger(r)
})))
}, t.prototype.hide = function (i) {
i && i.preventDefault(), i = e.Event("hide.bs.modal"), this.$element.trigger(i), this.isShown && !i.isDefaultPrevented() && (this.isShown = !1, this.escape(), this.resize(), e(document).off("focusin.bs.modal"), this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"), this.$dialog.off("mousedown.dismiss.bs.modal"), e.support.transition && this.$element.hasClass("fade") ? this.$element.one("bsTransitionEnd", e.proxy(this.hideModal, this)).emulateTransitionEnd(t.TRANSITION_DURATION) : this.hideModal())
}, t.prototype.enforceFocus = function () {
e(document).off("focusin.bs.modal").on("focusin.bs.modal", e.proxy((function (e) {
document === e.target || this.$element[0] === e.target || this.$element.has(e.target).length || this.$element.trigger("focus")
}), this))
}, t.prototype.escape = function () {
this.isShown && this.options.keyboard ? this.$element.on("keydown.dismiss.bs.modal", e.proxy((function (e) {
27 == e.which && this.hide()
}), this)) : this.isShown || this.$element.off("keydown.dismiss.bs.modal")
}, t.prototype.resize = function () {
this.isShown ? e(window).on("resize.bs.modal", e.proxy(this.handleUpdate, this)) : e(window).off("resize.bs.modal")
}, t.prototype.hideModal = function () {
var e = this;
this.$element.hide(), this.backdrop((function () {
e.$body.removeClass("modal-open"), e.resetAdjustments(), e.resetScrollbar(), e.$element.trigger("hidden.bs.modal")
}))
}, t.prototype.removeBackdrop = function () {
this.$backdrop && this.$backdrop.remove(), this.$backdrop = null
}, t.prototype.backdrop = function (i) {
var n = this,
a = this.$element.hasClass("fade") ? "fade" : "";
if (this.isShown && this.options.backdrop) {
var r = e.support.transition && a;
if (this.$backdrop = e(document.createElement("div")).addClass("modal-backdrop " + a).appendTo(this.$body), this.$element.on("click.dismiss.bs.modal", e.proxy((function (e) {
this.ignoreBackdropClick ? this.ignoreBackdropClick = !1 : e.target === e.currentTarget && ("static" == this.options.backdrop ? this.$element[0].focus() : this.hide())
}), this)), r && this.$backdrop[0].offsetWidth, this.$backdrop.addClass("in"), !i) return;
r ? this.$backdrop.one("bsTransitionEnd", i).emulateTransitionEnd(t.BACKDROP_TRANSITION_DURATION) : i()
} else if (!this.isShown && this.$backdrop) {
this.$backdrop.removeClass("in");
var s = function () {
n.removeBackdrop(), i && i()
};
e.support.transition && this.$element.hasClass("fade") ? this.$backdrop.one("bsTransitionEnd", s).emulateTransitionEnd(t.BACKDROP_TRANSITION_DURATION) : s()
} else i && i()
}, t.prototype.handleUpdate = function () {
this.adjustDialog()
}, t.prototype.adjustDialog = function () {
var e = this.$element[0].scrollHeight > document.documentElement.clientHeight;
this.$element.css({
paddingLeft: !this.bodyIsOverflowing && e ? this.scrollbarWidth : "",
paddingRight: this.bodyIsOverflowing && !e ? this.scrollbarWidth : ""
})
}, t.prototype.resetAdjustments = function () {
this.$element.css({
paddingLeft: "",
paddingRight: ""
})
}, t.prototype.checkScrollbar = function () {
var e = window.innerWidth;
if (!e) {
var t = document.documentElement.getBoundingClientRect();
e = t.right - Math.abs(t.left)
}
this.bodyIsOverflowing = document.body.clientWidth < e, this.scrollbarWidth = this.measureScrollbar()
}, t.prototype.setScrollbar = function () {
var e = parseInt(this.$body.css("padding-right") || 0, 10);
this.originalBodyPad = document.body.style.paddingRight || "", this.bodyIsOverflowing && this.$body.css("padding-right", e + this.scrollbarWidth)
}, t.prototype.resetScrollbar = function () {
this.$body.css("padding-right", this.originalBodyPad)
}, t.prototype.measureScrollbar = function () {
var e = document.createElement("div");
e.className = "modal-scrollbar-measure", this.$body.append(e);
var t = e.offsetWidth - e.clientWidth;
return this.$body[0].removeChild(e), t
};
var n = e.fn.modal;
e.fn.modal = i, e.fn.modal.Constructor = t, e.fn.modal.noConflict = function () {
return e.fn.modal = n, this
}, e(document).on("click.bs.modal.data-api", '[data-toggle="modal"]', (function (t) {
var n = e(this),
a = n.attr("href"),
r = e(n.attr("data-target") || a && a.replace(/.*(?=#[^\s]+$)/, "")),
s = r.data("bs.modal") ? "toggle" : e.extend({
remote: !/#/.test(a) && a
}, r.data(), n.data());
n.is("a") && t.preventDefault(), r.one("show.bs.modal", (function (e) {
e.isDefaultPrevented() || r.one("hidden.bs.modal", (function () {
n.is(":visible") && n.trigger("focus")
}))
})), i.call(r, s, this)
}))
}(e)
}).call(this, i(0))
}, function (e, t, i) {
(function (e) {
! function (e) {
"use strict";
var t = function (e, t) {
this.type = null, this.options = null, this.enabled = null, this.timeout = null, this.hoverState = null, this.$element = null, this.inState = null, this.init("tooltip", e, t)
};
t.VERSION = "3.3.7", t.TRANSITION_DURATION = 150, t.DEFAULTS = {
animation: !0,
placement: "top",
selector: !1,
template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
trigger: "hover focus",
title: "",
delay: 0,
html: !1,
container: !1,
viewport: {
selector: "body",
padding: 0
}
}, t.prototype.init = function (t, i, n) {
if (this.enabled = !0, this.type = t, this.$element = e(i), this.options = this.getOptions(n), this.$viewport = this.options.viewport && e(e.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : this.options.viewport.selector || this.options.viewport), this.inState = {
click: !1,
hover: !1,
focus: !1
}, this.$element[0] instanceof document.constructor && !this.options.selector) throw new Error("`selector` option must be specified when initializing " + this.type + " on the window.document object!");
for (var a = this.options.trigger.split(" "), r = a.length; r--;) {
var s = a[r];
if ("click" == s) this.$element.on("click." + this.type, this.options.selector, e.proxy(this.toggle, this));
else if ("manual" != s) {
var o = "hover" == s ? "mouseenter" : "focusin",
l = "hover" == s ? "mouseleave" : "focusout";
this.$element.on(o + "." + this.type, this.options.selector, e.proxy(this.enter, this)), this.$element.on(l + "." + this.type, this.options.selector, e.proxy(this.leave, this))
}
}
this.options.selector ? this._options = e.extend({}, this.options, {
trigger: "manual",
selector: ""
}) : this.fixTitle()
}, t.prototype.getDefaults = function () {
return t.DEFAULTS
}, t.prototype.getOptions = function (t) {
return (t = e.extend({}, this.getDefaults(), this.$element.data(), t)).delay && "number" == typeof t.delay && (t.delay = {
show: t.delay,
hide: t.delay
}), t
}, t.prototype.getDelegateOptions = function () {
var t = {},
i = this.getDefaults();
return this._options && e.each(this._options, (function (e, n) {
i[e] != n && (t[e] = n)
})), t
}, t.prototype.enter = function (t) {
var i = t instanceof this.constructor ? t : e(t.currentTarget).data("bs." + this.type);
if (i || (i = new this.constructor(t.currentTarget, this.getDelegateOptions()), e(t.currentTarget).data("bs." + this.type, i)), t instanceof e.Event && (i.inState["focusin" == t.type ? "focus" : "hover"] = !0), i.tip().hasClass("in") || "in" == i.hoverState) i.hoverState = "in";
else {
if (clearTimeout(i.timeout), i.hoverState = "in", !i.options.delay || !i.options.delay.show) return i.show();
i.timeout = setTimeout((function () {
"in" == i.hoverState && i.show()
}), i.options.delay.show)
}
}, t.prototype.isInStateTrue = function () {
for (var e in this.inState)
if (this.inState[e]) return !0;
return !1
}, t.prototype.leave = function (t) {
var i = t instanceof this.constructor ? t : e(t.currentTarget).data("bs." + this.type);
if (i || (i = new this.constructor(t.currentTarget, this.getDelegateOptions()), e(t.currentTarget).data("bs." + this.type, i)), t instanceof e.Event && (i.inState["focusout" == t.type ? "focus" : "hover"] = !1), !i.isInStateTrue()) {
if (clearTimeout(i.timeout), i.hoverState = "out", !i.options.delay || !i.options.delay.hide) return i.hide();
i.timeout = setTimeout((function () {
"out" == i.hoverState && i.hide()
}), i.options.delay.hide)
}
}, t.prototype.show = function () {
var i = e.Event("show.bs." + this.type);
if (this.hasContent() && this.enabled) {
this.$element.trigger(i);
var n = e.contains(this.$element[0].ownerDocument.documentElement, this.$element[0]);
if (i.isDefaultPrevented() || !n) return;
var a = this,
r = this.tip(),
s = this.getUID(this.type);
this.setContent(), r.attr("id", s), this.$element.attr("aria-describedby", s), this.options.animation && r.addClass("fade");
var o = "function" == typeof this.options.placement ? this.options.placement.call(this, r[0], this.$element[0]) : this.options.placement,
l = /\s?auto?\s?/i,
d = l.test(o);
d && (o = o.replace(l, "") || "top"), r.detach().css({
top: 0,
left: 0,
display: "block"
}).addClass(o).data("bs." + this.type, this), this.options.container ? r.appendTo(this.options.container) : r.insertAfter(this.$element), this.$element.trigger("inserted.bs." + this.type);
var c = this.getPosition(),
u = r[0].offsetWidth,
p = r[0].offsetHeight;
if (d) {
var h = o,
f = this.getPosition(this.$viewport);
o = "bottom" == o && c.bottom + p > f.bottom ? "top" : "top" == o && c.top - p < f.top ? "bottom" : "right" == o && c.right + u > f.width ? "left" : "left" == o && c.left - u < f.left ? "right" : o, r.removeClass(h).addClass(o)
}
var g = this.getCalculatedOffset(o, c, u, p);
this.applyPlacement(g, o);
var m = function () {
var e = a.hoverState;
a.$element.trigger("shown.bs." + a.type), a.hoverState = null, "out" == e && a.leave(a)
};
e.support.transition && this.$tip.hasClass("fade") ? r.one("bsTransitionEnd", m).emulateTransitionEnd(t.TRANSITION_DURATION) : m()
}
}, t.prototype.applyPlacement = function (t, i) {
var n = this.tip(),
a = n[0].offsetWidth,
r = n[0].offsetHeight,
s = parseInt(n.css("margin-top"), 10),
o = parseInt(n.css("margin-left"), 10);
isNaN(s) && (s = 0), isNaN(o) && (o = 0), t.top += s, t.left += o, e.offset.setOffset(n[0], e.extend({
using: function (e) {
n.css({
top: Math.round(e.top),
left: Math.round(e.left)
})
}
}, t), 0), n.addClass("in");
var l = n[0].offsetWidth,
d = n[0].offsetHeight;
"top" == i && d != r && (t.top = t.top + r - d);
var c = this.getViewportAdjustedDelta(i, t, l, d);
c.left ? t.left += c.left : t.top += c.top;
var u = /top|bottom/.test(i),
p = u ? 2 * c.left - a + l : 2 * c.top - r + d,
h = u ? "offsetWidth" : "offsetHeight";
n.offset(t), this.replaceArrow(p, n[0][h], u)
}, t.prototype.replaceArrow = function (e, t, i) {
this.arrow().css(i ? "left" : "top", 50 * (1 - e / t) + "%").css(i ? "top" : "left", "")
}, t.prototype.setContent = function () {
var e = this.tip(),
t = this.getTitle();
e.find(".tooltip-inner")[this.options.html ? "html" : "text"](t), e.removeClass("fade in top bottom left right")
}, t.prototype.hide = function (i) {
var n = this,
a = e(this.$tip),
r = e.Event("hide.bs." + this.type);
function s() {
"in" != n.hoverState && a.detach(), n.$element && n.$element.removeAttr("aria-describedby").trigger("hidden.bs." + n.type), i && i()
}
if (this.$element.trigger(r), !r.isDefaultPrevented()) return a.removeClass("in"), e.support.transition && a.hasClass("fade") ? a.one("bsTransitionEnd", s).emulateTransitionEnd(t.TRANSITION_DURATION) : s(), this.hoverState = null, this
}, t.prototype.fixTitle = function () {
var e = this.$element;
(e.attr("title") || "string" != typeof e.attr("data-original-title")) && e.attr("data-original-title", e.attr("title") || "").attr("title", "")
}, t.prototype.hasContent = function () {
return this.getTitle()
}, t.prototype.getPosition = function (t) {
var i = (t = t || this.$element)[0],
n = "BODY" == i.tagName,
a = i.getBoundingClientRect();
null == a.width && (a = e.extend({}, a, {
width: a.right - a.left,
height: a.bottom - a.top
}));
var r = window.SVGElement && i instanceof window.SVGElement,
s = n ? {
top: 0,
left: 0
} : r ? null : t.offset(),
o = {
scroll: n ? document.documentElement.scrollTop || document.body.scrollTop : t.scrollTop()
},
l = n ? {
width: e(window).width(),
height: e(window).height()
} : null;
return e.extend({}, a, o, l, s)
}, t.prototype.getCalculatedOffset = function (e, t, i, n) {
return "bottom" == e ? {
top: t.top + t.height,
left: t.left + t.width / 2 - i / 2
} : "top" == e ? {
top: t.top - n,
left: t.left + t.width / 2 - i / 2
} : "left" == e ? {
top: t.top + t.height / 2 - n / 2,
left: t.left - i
} : {
top: t.top + t.height / 2 - n / 2,
left: t.left + t.width
}
}, t.prototype.getViewportAdjustedDelta = function (e, t, i, n) {
var a = {
top: 0,
left: 0
};
if (!this.$viewport) return a;
var r = this.options.viewport && this.options.viewport.padding || 0,
s = this.getPosition(this.$viewport);
if (/right|left/.test(e)) {
var o = t.top - r - s.scroll,
l = t.top + r - s.scroll + n;
o < s.top ? a.top = s.top - o : l > s.top + s.height && (a.top = s.top + s.height - l)
} else {
var d = t.left - r,
c = t.left + r + i;
d < s.left ? a.left = s.left - d : c > s.right && (a.left = s.left + s.width - c)
}
return a
}, t.prototype.getTitle = function () {
var e = this.$element,
t = this.options;
return e.attr("data-original-title") || ("function" == typeof t.title ? t.title.call(e[0]) : t.title)
}, t.prototype.getUID = function (e) {
do {
e += ~~(1e6 * Math.random())
} while (document.getElementById(e));
return e
}, t.prototype.tip = function () {
if (!this.$tip && (this.$tip = e(this.options.template), 1 != this.$tip.length)) throw new Error(this.type + " `template` option must consist of exactly 1 top-level element!");
return this.$tip
}, t.prototype.arrow = function () {
return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow")
}, t.prototype.enable = function () {
this.enabled = !0
}, t.prototype.disable = function () {
this.enabled = !1
}, t.prototype.toggleEnabled = function () {
this.enabled = !this.enabled
}, t.prototype.toggle = function (t) {
var i = this;
t && ((i = e(t.currentTarget).data("bs." + this.type)) || (i = new this.constructor(t.currentTarget, this.getDelegateOptions()), e(t.currentTarget).data("bs." + this.type, i))), t ? (i.inState.click = !i.inState.click, i.isInStateTrue() ? i.enter(i) : i.leave(i)) : i.tip().hasClass("in") ? i.leave(i) : i.enter(i)
}, t.prototype.destroy = function () {
var e = this;
clearTimeout(this.timeout), this.hide((function () {
e.$element.off("." + e.type).removeData("bs." + e.type), e.$tip && e.$tip.detach(), e.$tip = null, e.$arrow = null, e.$viewport = null, e.$element = null
}))
};
var i = e.fn.tooltip;
e.fn.tooltip = function (i) {
return this.each((function () {
var n = e(this),
a = n.data("bs.tooltip"),
r = "object" == typeof i && i;
!a && /destroy|hide/.test(i) || (a || n.data("bs.tooltip", a = new t(this, r)), "string" == typeof i && a[i]())
}))
}, e.fn.tooltip.Constructor = t, e.fn.tooltip.noConflict = function () {
return e.fn.tooltip = i, this
}
}(e)
}).call(this, i(0))
}, function (e, t, i) {
(function (e) {
! function (e) {
"use strict";
var t = function (e, t) {
this.init("popover", e, t)
};
if (!e.fn.tooltip) throw new Error("Popover requires tooltip.js");
t.VERSION = "3.3.7", t.DEFAULTS = e.extend({}, e.fn.tooltip.Constructor.DEFAULTS, {
placement: "right",
trigger: "click",
content: "",
template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
}), (t.prototype = e.extend({}, e.fn.tooltip.Constructor.prototype)).constructor = t, t.prototype.getDefaults = function () {
return t.DEFAULTS
}, t.prototype.setContent = function () {
var e = this.tip(),
t = this.getTitle(),
i = this.getContent();
e.find(".popover-title")[this.options.html ? "html" : "text"](t), e.find(".popover-content").children().detach().end()[this.options.html ? "string" == typeof i ? "html" : "append" : "text"](i), e.removeClass("fade top bottom left right in"), e.find(".popover-title").html() || e.find(".popover-title").hide()
}, t.prototype.hasContent = function () {
return this.getTitle() || this.getContent()
}, t.prototype.getContent = function () {
var e = this.$element,
t = this.options;
return e.attr("data-content") || ("function" == typeof t.content ? t.content.call(e[0]) : t.content)
}, t.prototype.arrow = function () {
return this.$arrow = this.$arrow || this.tip().find(".arrow")
};
var i = e.fn.popover;
e.fn.popover = function (i) {
return this.each((function () {
var n = e(this),
a = n.data("bs.popover"),
r = "object" == typeof i && i;
!a && /destroy|hide/.test(i) || (a || n.data("bs.popover", a = new t(this, r)), "string" == typeof i && a[i]())
}))
}, e.fn.popover.Constructor = t, e.fn.popover.noConflict = function () {
return e.fn.popover = i, this
}
}(e)
}).call(this, i(0))
}, function (e, t, i) {
(function (e) {
! function (e) {
"use strict";
function t(i, n) {
this.$body = e(document.body), this.$scrollElement = e(i).is(document.body) ? e(window) : e(i), this.options = e.extend({}, t.DEFAULTS, n), this.selector = (this.options.target || "") + " .nav li > a", this.offsets = [], this.targets = [], this.activeTarget = null, this.scrollHeight = 0, this.$scrollElement.on("scroll.bs.scrollspy", e.proxy(this.process, this)), this.refresh(), this.process()
}
function i(i) {
return this.each((function () {
var n = e(this),
a = n.data("bs.scrollspy"),
r = "object" == typeof i && i;
a || n.data("bs.scrollspy", a = new t(this, r)), "string" == typeof i && a[i]()
}))
}
t.VERSION = "3.3.7", t.DEFAULTS = {
offset: 10
}, t.prototype.getScrollHeight = function () {
return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)
}, t.prototype.refresh = function () {
var t = this,
i = "offset",
n = 0;
this.offsets = [], this.targets = [], this.scrollHeight = this.getScrollHeight(), e.isWindow(this.$scrollElement[0]) || (i = "position", n = this.$scrollElement.scrollTop()), this.$body.find(this.selector).map((function () {
var t = e(this),
a = t.data("target") || t.attr("href"),
r = /^#./.test(a) && e(a);
return r && r.length && r.is(":visible") && [
[r[i]().top + n, a]
] || null
})).sort((function (e, t) {
return e[0] - t[0]
})).each((function () {
t.offsets.push(this[0]), t.targets.push(this[1])
}))
}, t.prototype.process = function () {
var e, t = this.$scrollElement.scrollTop() + this.options.offset,
i = this.getScrollHeight(),
n = this.options.offset + i - this.$scrollElement.height(),
a = this.offsets,
r = this.targets,
s = this.activeTarget;
if (this.scrollHeight != i && this.refresh(), t >= n) return s != (e = r[r.length - 1]) && this.activate(e);
if (s && t < a[0]) return this.activeTarget = null, this.clear();
for (e = a.length; e--;) s != r[e] && t >= a[e] && (void 0 === a[e + 1] || t < a[e + 1]) && this.activate(r[e])
}, t.prototype.activate = function (t) {
this.activeTarget = t, this.clear();
var i = this.selector + '[data-target="' + t + '"],' + this.selector + '[href="' + t + '"]',
n = e(i).parents("li").addClass("active");
n.parent(".dropdown-menu").length && (n = n.closest("li.dropdown").addClass("active")), n.trigger("activate.bs.scrollspy")
}, t.prototype.clear = function () {
e(this.selector).parentsUntil(this.options.target, ".active").removeClass("active")
};
var n = e.fn.scrollspy;
e.fn.scrollspy = i, e.fn.scrollspy.Constructor = t, e.fn.scrollspy.noConflict = function () {
return e.fn.scrollspy = n, this
}, e(window).on("load.bs.scrollspy.data-api", (function () {
e('[data-spy="scroll"]').each((function () {
var t = e(this);
i.call(t, t.data())
}))
}))
}(e)
}).call(this, i(0))
}, function (e, t, i) {
(function (e) {
! function (e) {
"use strict";
var t = function (t) {
this.element = e(t)
};
function i(i) {
return this.each((function () {
var n = e(this),
a = n.data("bs.tab");
a || n.data("bs.tab", a = new t(this)), "string" == typeof i && a[i]()
}))
}
t.VERSION = "3.3.7", t.TRANSITION_DURATION = 150, t.prototype.show = function () {
var t = this.element,
i = t.closest("ul:not(.dropdown-menu)"),
n = t.data("target");
if (n || (n = (n = t.attr("href")) && n.replace(/.*(?=#[^\s]*$)/, "")), !t.parent("li").hasClass("active")) {
var a = i.find(".active:last a"),
r = e.Event("hide.bs.tab", {
relatedTarget: t[0]
}),
s = e.Event("show.bs.tab", {
relatedTarget: a[0]
});
if (a.trigger(r), t.trigger(s), !s.isDefaultPrevented() && !r.isDefaultPrevented()) {
var o = e(n);
this.activate(t.closest("li"), i), this.activate(o, o.parent(), (function () {
a.trigger({
type: "hidden.bs.tab",
relatedTarget: t[0]
}), t.trigger({
type: "shown.bs.tab",
relatedTarget: a[0]
})
}))
}
}
}, t.prototype.activate = function (i, n, a) {
var r = n.find("> .active"),
s = a && e.support.transition && (r.length && r.hasClass("fade") || !!n.find("> .fade").length);
function o() {
r.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded", !1), i.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded", !0), s ? (i[0].offsetWidth, i.addClass("in")) : i.removeClass("fade"), i.parent(".dropdown-menu").length && i.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded", !0), a && a()
}
r.length && s ? r.one("bsTransitionEnd", o).emulateTransitionEnd(t.TRANSITION_DURATION) : o(), r.removeClass("in")
};
var n = e.fn.tab;
e.fn.tab = i, e.fn.tab.Constructor = t, e.fn.tab.noConflict = function () {
return e.fn.tab = n, this
};
var a = function (t) {
t.preventDefault(), i.call(e(this), "show")
};
e(document).on("click.bs.tab.data-api", '[data-toggle="tab"]', a).on("click.bs.tab.data-api", '[data-toggle="pill"]', a)
}(e)
}).call(this, i(0))
}, function (e, t, i) {
(function (e) {
! function (e) {
"use strict";
var t = function (i, n) {
this.options = e.extend({}, t.DEFAULTS, n), this.$target = e(this.options.target).on("scroll.bs.affix.data-api", e.proxy(this.checkPosition, this)).on("click.bs.affix.data-api", e.proxy(this.checkPositionWithEventLoop, this)), this.$element = e(i), this.affixed = null, this.unpin = null, this.pinnedOffset = null, this.checkPosition()
};
function i(i) {
return this.each((function () {
var n = e(this),
a = n.data("bs.affix"),
r = "object" == typeof i && i;
a || n.data("bs.affix", a = new t(this, r)), "string" == typeof i && a[i]()
}))
}
t.VERSION = "3.3.7", t.RESET = "affix affix-top affix-bottom", t.DEFAULTS = {
offset: 0,
target: window
}, t.prototype.getState = function (e, t, i, n) {
var a = this.$target.scrollTop(),
r = this.$element.offset(),
s = this.$target.height();
if (null != i && "top" == this.affixed) return a < i && "top";
if ("bottom" == this.affixed) return null != i ? !(a + this.unpin <= r.top) && "bottom" : !(a + s <= e - n) && "bottom";
var o = null == this.affixed,
l = o ? a : r.top;
return null != i && a <= i ? "top" : null != n && l + (o ? s : t) >= e - n && "bottom"
}, t.prototype.getPinnedOffset = function () {
if (this.pinnedOffset) return this.pinnedOffset;
this.$element.removeClass(t.RESET).addClass("affix");
var e = this.$target.scrollTop(),
i = this.$element.offset();
return this.pinnedOffset = i.top - e
}, t.prototype.checkPositionWithEventLoop = function () {
setTimeout(e.proxy(this.checkPosition, this), 1)
}, t.prototype.checkPosition = function () {
if (this.$element.is(":visible")) {
var i = this.$element.height(),
n = this.options.offset,
a = n.top,
r = n.bottom,
s = Math.max(e(document).height(), e(document.body).height());
"object" != typeof n && (r = a = n), "function" == typeof a && (a = n.top(this.$element)), "function" == typeof r && (r = n.bottom(this.$element));
var o = this.getState(s, i, a, r);
if (this.affixed != o) {
null != this.unpin && this.$element.css("top", "");
var l = "affix" + (o ? "-" + o : ""),
d = e.Event(l + ".bs.affix");
if (this.$element.trigger(d), d.isDefaultPrevented()) return;
this.affixed = o, this.unpin = "bottom" == o ? this.getPinnedOffset() : null, this.$element.removeClass(t.RESET).addClass(l).trigger(l.replace("affix", "affixed") + ".bs.affix")
}
"bottom" == o && this.$element.offset({
top: s - i - r
})
}
};
var n = e.fn.affix;
e.fn.affix = i, e.fn.affix.Constructor = t, e.fn.affix.noConflict = function () {
return e.fn.affix = n, this
}, e(window).on("load", (function () {
e('[data-spy="affix"]').each((function () {
var t = e(this),
n = t.data();
n.offset = n.offset || {}, null != n.offsetBottom && (n.offset.bottom = n.offsetBottom), null != n.offsetTop && (n.offset.top = n.offsetTop), i.call(t, n)
}))
}))
}(e)
}).call(this, i(0))
}, function (e, t, i) {
(function (e) {
! function (e) {
"use strict";
function t(t) {
return t.is('[type="checkbox"]') ? t.prop("checked") : t.is('[type="radio"]') ? !!e('[name="' + t.attr("name") + '"]:checked').length : t.val()
}
var i = function (n, a) {
this.options = a, this.validators = e.extend({}, i.VALIDATORS, a.custom), this.$element = e(n), this.$btn = e('button[type="submit"], input[type="submit"]').filter('[form="' + this.$element.attr("id") + '"]').add(this.$element.find('input[type="submit"], button[type="submit"]')), this.update(), this.$element.on("input.bs.validator change.bs.validator focusout.bs.validator", e.proxy(this.onInput, this)), this.$element.on("submit.bs.validator", e.proxy(this.onSubmit, this)), this.$element.find("[data-match]").each((function () {
var i = e(this),
n = i.data("match");
e(n).on("input.bs.validator", (function (e) {
t(i) && i.trigger("input.bs.validator")
}))
})), this.$inputs.filter((function () {
return t(e(this))
})).trigger("focusout"), this.$element.attr("novalidate", !0), this.toggleSubmit()
};
function n(t) {
return this.each((function () {
var n = e(this),
a = e.extend({}, i.DEFAULTS, n.data(), "object" == typeof t && t),
r = n.data("bs.validator");
(r || "destroy" != t) && (r || n.data("bs.validator", r = new i(this, a)), "string" == typeof t && r[t]())
}))
}
i.VERSION = "0.11.0", i.INPUT_SELECTOR = ':input:not([type="hidden"], [type="submit"], button)', i.FOCUS_OFFSET = 20, i.DEFAULTS = {
delay: 500,
html: !1,
disable: !0,
focus: !0,
custom: {},
errors: {
match: "Does not match",
minlength: "Not long enough"
},
feedback: {
success: "glyphicon-ok",
error: "glyphicon-remove"
}
}, i.VALIDATORS = {
native: function (e) {
var t = e[0];
if (t.checkValidity) return !t.checkValidity() && !t.validity.valid && (t.validationMessage || "error!")
},
match: function (t) {
var n = t.data("match");
return t.val() !== e(n).val() && i.DEFAULTS.errors.match
},
minlength: function (e) {
var t = e.data("minlength");
return e.val().length < t && i.DEFAULTS.errors.minlength
}
}, i.prototype.update = function () {
return this.$inputs = this.$element.find(i.INPUT_SELECTOR).add(this.$element.find('[data-validate="true"]')).not(this.$element.find('[data-validate="false"]')), this
}, i.prototype.onInput = function (t) {
var i = this,
n = e(t.target),
a = "focusout" !== t.type;
this.$inputs.is(n) && this.validateInput(n, a).done((function () {
i.toggleSubmit()
}))
}, i.prototype.validateInput = function (i, n) {
t(i);
var a = i.data("bs.validator.errors");
i.is('[type="radio"]') && (i = this.$element.find('input[name="' + i.attr("name") + '"]'));
var r = e.Event("validate.bs.validator", {
relatedTarget: i[0]
});
if (this.$element.trigger(r), !r.isDefaultPrevented()) {
var s = this;
return this.runValidators(i).done((function (t) {
i.data("bs.validator.errors", t), t.length ? n ? s.defer(i, s.showErrors) : s.showErrors(i) : s.clearErrors(i), a && t.toString() === a.toString() || (r = t.length ? e.Event("invalid.bs.validator", {
relatedTarget: i[0],
detail: t
}) : e.Event("valid.bs.validator", {
relatedTarget: i[0],
detail: a
}), s.$element.trigger(r)), s.toggleSubmit(), s.$element.trigger(e.Event("validated.bs.validator", {
relatedTarget: i[0]
}))
}))
}
}, i.prototype.runValidators = function (i) {
var n = [],
a = e.Deferred();
function r(e) {
return function (e) {
return i.data(e + "-error")
}(e) || ((t = i[0].validity).typeMismatch ? i.data("type-error") : t.patternMismatch ? i.data("pattern-error") : t.stepMismatch ? i.data("step-error") : t.rangeOverflow ? i.data("max-error") : t.rangeUnderflow ? i.data("min-error") : t.valueMissing ? i.data("required-error") : null) || i.data("error");
var t
}
return i.data("bs.validator.deferred") && i.data("bs.validator.deferred").reject(), i.data("bs.validator.deferred", a), e.each(this.validators, e.proxy((function (e, a) {
var s = null;
(t(i) || i.attr("required")) && (i.data(e) || "native" == e) && (s = a.call(this, i)) && (s = r(e) || s, !~n.indexOf(s) && n.push(s))
}), this)), !n.length && t(i) && i.data("remote") ? this.defer(i, (function () {
var s = {};
s[i.attr("name")] = t(i), e.get(i.data("remote"), s).fail((function (e, t, i) {
n.push(r("remote") || i)
})).always((function () {
a.resolve(n)
}))
})) : a.resolve(n), a.promise()
}, i.prototype.validate = function () {
var t = this;
return e.when(this.$inputs.map((function (i) {
return t.validateInput(e(this), !1)
}))).then((function () {
t.toggleSubmit(), t.focusError()
})), this
}, i.prototype.focusError = function () {
if (this.options.focus) {
var t = e(".has-error:first :input");
0 !== t.length && (e("html, body").animate({
scrollTop: t.offset().top - i.FOCUS_OFFSET
}, 250), t.focus())
}
}, i.prototype.showErrors = function (t) {
var i = this.options.html ? "html" : "text",
n = t.data("bs.validator.errors"),
a = t.closest(".form-group"),
r = a.find(".help-block.with-errors"),
s = a.find(".form-control-feedback");
n.length && (n = e("<ul/>").addClass("list-unstyled").append(e.map(n, (function (t) {
return e("<li/>")[i](t)
}))), void 0 === r.data("bs.validator.originalContent") && r.data("bs.validator.originalContent", r.html()), r.empty().append(n), a.addClass("has-error has-danger"), a.hasClass("has-feedback") && s.removeClass(this.options.feedback.success) && s.addClass(this.options.feedback.error) && a.removeClass("has-success"))
}, i.prototype.clearErrors = function (e) {
var i = e.closest(".form-group"),
n = i.find(".help-block.with-errors"),
a = i.find(".form-control-feedback");
n.html(n.data("bs.validator.originalContent")), i.removeClass("has-error has-danger"), i.hasClass("has-feedback") && a.removeClass(this.options.feedback.error) && t(e) && a.addClass(this.options.feedback.success) && i.addClass("has-success")
}, i.prototype.hasErrors = function () {
return !!this.$inputs.filter((function () {
return !!(e(this).data("bs.validator.errors") || []).length
})).length
}, i.prototype.isIncomplete = function () {
return !!this.$inputs.filter("[required]").filter((function () {
var i = t(e(this));
return !("string" == typeof i ? e.trim(i) : i)
})).length
}, i.prototype.onSubmit = function (e) {
this.validate(), (this.isIncomplete() || this.hasErrors()) && e.preventDefault()
}, i.prototype.toggleSubmit = function () {
this.options.disable && this.$btn.toggleClass("disabled", this.isIncomplete() || this.hasErrors())
}, i.prototype.defer = function (t, i) {
if (i = e.proxy(i, this, t), !this.options.delay) return i();
window.clearTimeout(t.data("bs.validator.timeout")), t.data("bs.validator.timeout", window.setTimeout(i, this.options.delay))
}, i.prototype.destroy = function () {
return this.$element.removeAttr("novalidate").removeData("bs.validator").off(".bs.validator").find(".form-control-feedback").removeClass([this.options.feedback.error, this.options.feedback.success].join(" ")), this.$inputs.off(".bs.validator").removeData(["bs.validator.errors", "bs.validator.deferred"]).each((function () {
var t = e(this),
i = t.data("bs.validator.timeout");
window.clearTimeout(i) && t.removeData("bs.validator.timeout")
})), this.$element.find(".help-block.with-errors").each((function () {
var t = e(this),
i = t.data("bs.validator.originalContent");
t.removeData("bs.validator.originalContent").html(i)
})), this.$element.find('input[type="submit"], button[type="submit"]').removeClass("disabled"), this.$element.find(".has-error, .has-danger").removeClass("has-error has-danger"), this
};
var a = e.fn.validator;
e.fn.validator = n, e.fn.validator.Constructor = i, e.fn.validator.noConflict = function () {
return e.fn.validator = a, this
}, e(window).on("load", (function () {
e('form[data-toggle="validator"]').each((function () {
var t = e(this);
n.call(t, t.data())
}))
}))
}(e)
}).call(this, i(0))
}, function (e, t, i) {
var n, a;
/*!
* Bootstrap-select v1.12.2 (http://silviomoreto.github.io/bootstrap-select)
*
* Copyright 2013-2017 bootstrap-select
* Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
*/
n = [i(0)], void 0 === (a = function (e) {
! function (e) {
"use strict";
var t, i, n, a;
String.prototype.includes || (t = {}.toString, i = function () {
try {
var e = {},
t = Object.defineProperty,
i = t(e, e, e) && t
} catch (e) { }
return i
}(), n = "".indexOf, a = function (e) {
if (null == this) throw new TypeError;
var i = String(this);
if (e && "[object RegExp]" == t.call(e)) throw new TypeError;
var a = i.length,
r = String(e),
s = r.length,
o = arguments.length > 1 ? arguments[1] : void 0,
l = o ? Number(o) : 0;
l != l && (l = 0);
var d = Math.min(Math.max(l, 0), a);
return !(s + d > a) && -1 != n.call(i, r, l)
}, i ? i(String.prototype, "includes", {
value: a,
configurable: !0,
writable: !0
}) : String.prototype.includes = a), String.prototype.startsWith || function () {
var e = function () {
try {
var e = {},
t = Object.defineProperty,
i = t(e, e, e) && t
} catch (e) { }
return i
}(),
t = {}.toString,
i = function (e) {
if (null == this) throw new TypeError;
var i = String(this);
if (e && "[object RegExp]" == t.call(e)) throw new TypeError;
var n = i.length,
a = String(e),
r = a.length,
s = arguments.length > 1 ? arguments[1] : void 0,
o = s ? Number(s) : 0;
o != o && (o = 0);
var l = Math.min(Math.max(o, 0), n);
if (r + l > n) return !1;
for (var d = -1; ++d < r;)
if (i.charCodeAt(l + d) != a.charCodeAt(d)) return !1;
return !0
};
e ? e(String.prototype, "startsWith", {
value: i,
configurable: !0,
writable: !0
}) : String.prototype.startsWith = i
}(), Object.keys || (Object.keys = function (e, t, i) {
for (t in i = [], e) i.hasOwnProperty.call(e, t) && i.push(t);
return i
});
var r = {
useDefault: !1,
_set: e.valHooks.select.set
};
e.valHooks.select.set = function (t, i) {
return i && !r.useDefault && e(t).data("selected", !0), r._set.apply(this, arguments)
};
var s = null;
function o(t) {
return e.each([{
re: /[\xC0-\xC6]/g,
ch: "A"
}, {
re: /[\xE0-\xE6]/g,
ch: "a"
}, {
re: /[\xC8-\xCB]/g,
ch: "E"
}, {
re: /[\xE8-\xEB]/g,
ch: "e"
}, {
re: /[\xCC-\xCF]/g,
ch: "I"
}, {
re: /[\xEC-\xEF]/g,
ch: "i"
}, {
re: /[\xD2-\xD6]/g,
ch: "O"
}, {
re: /[\xF2-\xF6]/g,
ch: "o"
}, {
re: /[\xD9-\xDC]/g,
ch: "U"
}, {
re: /[\xF9-\xFC]/g,
ch: "u"
}, {
re: /[\xC7-\xE7]/g,
ch: "c"
}, {
re: /[\xD1]/g,
ch: "N"
}, {
re: /[\xF1]/g,
ch: "n"
}], (function () {
t = t ? t.replace(this.re, this.ch) : ""
})), t
}
e.fn.triggerNative = function (e) {
var t, i = this[0];
i.dispatchEvent ? ("function" == typeof Event ? t = new Event(e, {
bubbles: !0
}) : (t = document.createEvent("Event")).initEvent(e, !0, !1), i.dispatchEvent(t)) : i.fireEvent ? ((t = document.createEventObject()).eventType = e, i.fireEvent("on" + e, t)) : this.trigger(e)
}, e.expr.pseudos.icontains = function (t, i, n) {
var a = e(t);
return (a.data("tokens") || a.text()).toString().toUpperCase().includes(n[3].toUpperCase())
}, e.expr.pseudos.ibegins = function (t, i, n) {
var a = e(t);
return (a.data("tokens") || a.text()).toString().toUpperCase().startsWith(n[3].toUpperCase())
}, e.expr.pseudos.aicontains = function (t, i, n) {
var a = e(t);
return (a.data("tokens") || a.data("normalizedText") || a.text()).toString().toUpperCase().includes(n[3].toUpperCase())
}, e.expr.pseudos.aibegins = function (t, i, n) {
var a = e(t);
return (a.data("tokens") || a.data("normalizedText") || a.text()).toString().toUpperCase().startsWith(n[3].toUpperCase())
};
var l = function (e) {
var t = function (t) {
return e[t]
},
i = "(?:" + Object.keys(e).join("|") + ")",
n = RegExp(i),
a = RegExp(i, "g");
return function (e) {
return e = null == e ? "" : "" + e, n.test(e) ? e.replace(a, t) : e
}
},
d = l({
"&": "&",
"<": "<",
">": ">",
'"': """,
"'": "'",
"`": "`"
}),
c = l({
"&": "&",
"<": "<",
">": ">",
""": '"',
"'": "'",
"`": "`"
}),
u = function (t, i) {
r.useDefault || (e.valHooks.select.set = r._set, r.useDefault = !0), this.$element = e(t), this.$newElement = null, this.$button = null, this.$menu = null, this.$lis = null, this.options = i, null === this.options.title && (this.options.title = this.$element.attr("title"));
var n = this.options.windowPadding;
"number" == typeof n && (this.options.windowPadding = [n, n, n, n]), this.val = u.prototype.val, this.render = u.prototype.render, this.refresh = u.prototype.refresh, this.setStyle = u.prototype.setStyle, this.selectAll = u.prototype.selectAll, this.deselectAll = u.prototype.deselectAll, this.destroy = u.prototype.destroy, this.remove = u.prototype.remove, this.show = u.prototype.show, this.hide = u.prototype.hide, this.init()
};
function p(t) {
var i, n = arguments,
a = t;
[].shift.apply(n);
var r = this.each((function () {
var t = e(this);
if (t.is("select")) {
var r = t.data("selectpicker"),
s = "object" == typeof a && a;
if (r) {
if (s)
for (var o in s) s.hasOwnProperty(o) && (r.options[o] = s[o])
} else {
var l = e.extend({}, u.DEFAULTS, e.fn.selectpicker.defaults || {}, t.data(), s);
l.template = e.extend({}, u.DEFAULTS.template, e.fn.selectpicker.defaults ? e.fn.selectpicker.defaults.template : {}, t.data().template, s.template), t.data("selectpicker", r = new u(this, l))
}
"string" == typeof a && (i = r[a] instanceof Function ? r[a].apply(r, n) : r.options[a])
}
}));
return void 0 !== i ? i : r
}
u.VERSION = "1.12.2", u.DEFAULTS = {
noneSelectedText: "Nothing selected",
noneResultsText: "No results matched {0}",
countSelectedText: function (e, t) {
return 1 == e ? "{0} item selected" : "{0} items selected"
},
maxOptionsText: function (e, t) {
return [1 == e ? "Limit reached ({n} item max)" : "Limit reached ({n} items max)", 1 == t ? "Group limit reached ({n} item max)" : "Group limit reached ({n} items max)"]
},
selectAllText: "Select All",
deselectAllText: "Deselect All",
doneButton: !1,
doneButtonText: "Close",
multipleSeparator: ", ",
styleBase: "btn",
style: "btn-default",
size: "auto",
title: null,
selectedTextFormat: "values",
width: !1,
container: !1,
hideDisabled: !1,
showSubtext: !1,
showIcon: !0,
showContent: !0,
dropupAuto: !0,
header: !1,
liveSearch: !1,
liveSearchPlaceholder: null,
liveSearchNormalize: !1,
liveSearchStyle: "contains",
actionsBox: !1,
iconBase: "glyphicon",
tickIcon: "glyphicon-ok",
showTick: !1,
template: {
caret: '<span class="caret"></span>'
},
maxOptions: !1,
mobile: !1,
selectOnTab: !1,
dropdownAlignRight: !1,
windowPadding: 0
}, u.prototype = {
constructor: u,
init: function () {
var t = this,
i = this.$element.attr("id");
this.$element.addClass("bs-select-hidden"), this.liObj = {}, this.multiple = this.$element.prop("multiple"), this.autofocus = this.$element.prop("autofocus"), this.$newElement = this.createView(), this.$element.after(this.$newElement).appendTo(this.$newElement), this.$button = this.$newElement.children("button"), this.$menu = this.$newElement.children(".dropdown-menu"), this.$menuInner = this.$menu.children(".inner"), this.$searchbox = this.$menu.find("input"), this.$element.removeClass("bs-select-hidden"), !0 === this.options.dropdownAlignRight && this.$menu.addClass("dropdown-menu-right"), void 0 !== i && (this.$button.attr("data-id", i), e('label[for="' + i + '"]').click((function (e) {
e.preventDefault(), t.$button.focus()
}))), this.checkDisabled(), this.clickListener(), this.options.liveSearch && this.liveSearchListener(), this.render(), this.setStyle(), this.setWidth(), this.options.container && this.selectPosition(), this.$menu.data("this", this), this.$newElement.data("this", this), this.options.mobile && this.mobile(), this.$newElement.on({
"hide.bs.dropdown": function (e) {
t.$menuInner.attr("aria-expanded", !1), t.$element.trigger("hide.bs.select", e)
},
"hidden.bs.dropdown": function (e) {
t.$element.trigger("hidden.bs.select", e)
},
"show.bs.dropdown": function (e) {
t.$menuInner.attr("aria-expanded", !0), t.$element.trigger("show.bs.select", e)
},
"shown.bs.dropdown": function (e) {
t.$element.trigger("shown.bs.select", e)
}
}), t.$element[0].hasAttribute("required") && this.$element.on("invalid", (function () {
t.$button.addClass("bs-invalid").focus(), t.$element.on({
"focus.bs.select": function () {
t.$button.focus(), t.$element.off("focus.bs.select")
},
"shown.bs.select": function () {
t.$element.val(t.$element.val()).off("shown.bs.select")
},
"rendered.bs.select": function () {
this.validity.valid && t.$button.removeClass("bs-invalid"), t.$element.off("rendered.bs.select")
}
})
})), setTimeout((function () {
t.$element.trigger("loaded.bs.select")
}))
},
createDropdown: function () {
var t = this.multiple || this.options.showTick ? " show-tick" : "",
i = this.$element.parent().hasClass("input-group") ? " input-group-btn" : "",
n = this.autofocus ? " autofocus" : "",
a = this.options.header ? '<div class="popover-title"><button type="button" class="close" aria-hidden="true">×</button>' + this.options.header + "</div>" : "",
r = this.options.liveSearch ? '<div class="bs-searchbox"><input type="text" class="form-control" autocomplete="off"' + (null === this.options.liveSearchPlaceholder ? "" : ' placeholder="' + d(this.options.liveSearchPlaceholder) + '"') + ' role="textbox" aria-label="Search"></div>' : "",
s = this.multiple && this.options.actionsBox ? '<div class="bs-actionsbox"><div class="btn-group btn-group-sm btn-block"><button type="button" class="actions-btn bs-select-all btn btn-default">' + this.options.selectAllText + '</button><button type="button" class="actions-btn bs-deselect-all btn btn-default">' + this.options.deselectAllText + "</button></div></div>" : "",
o = this.multiple && this.options.doneButton ? '<div class="bs-donebutton"><div class="btn-group btn-block"><button type="button" class="btn btn-sm btn-default">' + this.options.doneButtonText + "</button></div></div>" : "",
l = '<div class="btn-group bootstrap-select' + t + i + '"><button type="button" class="' + this.options.styleBase + ' dropdown-toggle" data-toggle="dropdown"' + n + ' role="button"><span class="filter-option pull-left"></span> <span class="bs-caret">' + this.options.template.caret + '</span></button><div class="dropdown-menu open" role="combobox">' + a + r + s + '<ul class="dropdown-menu inner" role="listbox" aria-expanded="false"></ul>' + o + "</div></div>";
return e(l)
},
createView: function () {
var e = this.createDropdown(),
t = this.createLi();
return e.find("ul")[0].innerHTML = t, e
},
reloadLi: function () {
var e = this.createLi();
this.$menuInner[0].innerHTML = e
},
createLi: function () {
var t = this,
i = [],
n = 0,
a = document.createElement("option"),
r = -1,
s = function (e, t, i, n) {
return "<li" + (void 0 !== i & "" !== i ? ' class="' + i + '"' : "") + (void 0 !== t & null !== t ? ' data-original-index="' + t + '"' : "") + (void 0 !== n & null !== n ? 'data-optgroup="' + n + '"' : "") + ">" + e + "</li>"
},
l = function (i, n, a, r) {
return '<a tabindex="0"' + (void 0 !== n ? ' class="' + n + '"' : "") + (a ? ' style="' + a + '"' : "") + (t.options.liveSearchNormalize ? ' data-normalized-text="' + o(d(e(i).html())) + '"' : "") + (void 0 !== r || null !== r ? ' data-tokens="' + r + '"' : "") + ' role="option">' + i + '<span class="' + t.options.iconBase + " " + t.options.tickIcon + ' check-mark"></span></a>'
};
if (this.options.title && !this.multiple && (r--, !this.$element.find(".bs-title-option").length)) {
var c = this.$element[0];
a.className = "bs-title-option", a.innerHTML = this.options.title, a.value = "", c.insertBefore(a, c.firstChild), void 0 === e(c.options[c.selectedIndex]).attr("selected") && void 0 === this.$element.data("selected") && (a.selected = !0)
}
return this.$element.find("option").each((function (a) {
var o = e(this);
if (r++, !o.hasClass("bs-title-option")) {
var c = this.className || "",
u = this.style.cssText,
p = o.data("content") ? o.data("content") : o.html(),
h = o.data("tokens") ? o.data("tokens") : null,
f = void 0 !== o.data("subtext") ? '<small class="text-muted">' + o.data("subtext") + "</small>" : "",
g = void 0 !== o.data("icon") ? '<span class="' + t.options.iconBase + " " + o.data("icon") + '"></span> ' : "",
m = o.parent(),
v = "OPTGROUP" === m[0].tagName,
b = v && m[0].disabled,
y = this.disabled || b;
if ("" !== g && y && (g = "<span>" + g + "</span>"), t.options.hideDisabled && (y && !v || b)) r--;
else {
if (o.data("content") || (p = g + '<span class="text">' + p + f + "</span>"), v && !0 !== o.data("divider")) {
if (t.options.hideDisabled && y) {
if (void 0 === m.data("allOptionsDisabled")) {
var w = m.children();
m.data("allOptionsDisabled", w.filter(":disabled").length === w.length)
}
if (m.data("allOptionsDisabled")) return void r--
}
var S = " " + m[0].className || !1;
if (0 === o.index()) {
n += 1;
var x = m[0].label,
_ = void 0 !== m.data("subtext") ? '<small class="text-muted">' + m.data("subtext") + "</small>" : "";
x = (m.data("icon") ? '<span class="' + t.options.iconBase + " " + m.data("icon") + '"></span> ' : "") + '<span class="text">' + d(x) + _ + "</span>", 0 !== a && i.length > 0 && (r++, i.push(s("", null, "divider", n + "div"))), r++, i.push(s(x, null, "dropdown-header" + S, n))
}
if (t.options.hideDisabled && y) return void r--;
i.push(s(l(p, "opt " + c + S, u, h), a, "", n))
} else if (!0 === o.data("divider")) i.push(s("", a, "divider"));
else if (!0 === o.data("hidden")) i.push(s(l(p, c, u, h), a, "hidden is-hidden"));
else {
var C = this.previousElementSibling && "OPTGROUP" === this.previousElementSibling.tagName;
if (!C && t.options.hideDisabled)
for (var T = e(this).prevAll(), D = 0; D < T.length; D++)
if ("OPTGROUP" === T[D].tagName) {
for (var k = 0, I = 0; I < D; I++) {
var E = T[I];
(E.disabled || !0 === e(E).data("hidden")) && k++
}
k === D && (C = !0);
break
} C && (r++, i.push(s("", null, "divider", n + "div"))), i.push(s(l(p, c, u, h), a))
}
t.liObj[a] = r
}
}
})), this.multiple || 0 !== this.$element.find("option:selected").length || this.options.title || this.$element.find("option").eq(0).prop("selected", !0).attr("selected", "selected"), i.join("")
},
findLis: function () {
return null == this.$lis && (this.$lis = this.$menu.find("li")), this.$lis
},
render: function (t) {
var i, n = this;
!1 !== t && this.$element.find("option").each((function (e) {
var t = n.findLis().eq(n.liObj[e]);
n.setDisabled(e, this.disabled || "OPTGROUP" === this.parentNode.tagName && this.parentNode.disabled, t), n.setSelected(e, this.selected, t)
})), this.togglePlaceholder(), this.tabIndex();
var a = this.$element.find("option").map((function () {
if (this.selected) {
if (n.options.hideDisabled && (this.disabled || "OPTGROUP" === this.parentNode.tagName && this.parentNode.disabled)) return;
var t, i = e(this),
a = i.data("icon") && n.options.showIcon ? '<i class="' + n.options.iconBase + " " + i.data("icon") + '"></i> ' : "";
return t = n.options.showSubtext && i.data("subtext") && !n.multiple ? ' <small class="text-muted">' + i.data("subtext") + "</small>" : "", void 0 !== i.attr("title") ? i.attr("title") : i.data("content") && n.options.showContent ? i.data("content").toString() : a + i.html() + t
}
})).toArray(),
r = this.multiple ? a.join(this.options.multipleSeparator) : a[0];
if (this.multiple && this.options.selectedTextFormat.indexOf("count") > -1) {
var s = this.options.selectedTextFormat.split(">");
if (s.length > 1 && a.length > s[1] || 1 == s.length && a.length >= 2) {
i = this.options.hideDisabled ? ", [disabled]" : "";
var o = this.$element.find("option").not('[data-divider="true"], [data-hidden="true"]' + i).length;
r = ("function" == typeof this.options.countSelectedText ? this.options.countSelectedText(a.length, o) : this.options.countSelectedText).replace("{0}", a.length.toString()).replace("{1}", o.toString())
}
}
null == this.options.title && (this.options.title = this.$element.attr("title")), "static" == this.options.selectedTextFormat && (r = this.options.title), r || (r = void 0 !== this.options.title ? this.options.title : this.options.noneSelectedText), this.$button.attr("title", c(e.trim(r.replace(/<[^>]*>?/g, "")))), this.$button.children(".filter-option").html(r), this.$element.trigger("rendered.bs.select")
},
setStyle: function (e, t) {
this.$element.attr("class") && this.$newElement.addClass(this.$element.attr("class").replace(/selectpicker|mobile-device|bs-select-hidden|validate\[.*\]/gi, ""));
var i = e || this.options.style;
"add" == t ? this.$button.addClass(i) : "remove" == t ? this.$button.removeClass(i) : (this.$button.removeClass(this.options.style), this.$button.addClass(i))
},
liHeight: function (t) {
if (t || !1 !== this.options.size && !this.sizeInfo) {
var i = document.createElement("div"),
n = document.createElement("div"),
a = document.createElement("ul"),
r = document.createElement("li"),
s = document.createElement("li"),
o = document.createElement("a"),
l = document.createElement("span"),
d = this.options.header && this.$menu.find(".popover-title").length > 0 ? this.$menu.find(".popover-title")[0].cloneNode(!0) : null,
c = this.options.liveSearch ? document.createElement("div") : null,
u = this.options.actionsBox && this.multiple && this.$menu.find(".bs-actionsbox").length > 0 ? this.$menu.find(".bs-actionsbox")[0].cloneNode(!0) : null,
p = this.options.doneButton && this.multiple && this.$menu.find(".bs-donebutton").length > 0 ? this.$menu.find(".bs-donebutton")[0].cloneNode(!0) : null;
if (l.className = "text", i.className = this.$menu[0].parentNode.className + " open", n.className = "dropdown-menu open", a.className = "dropdown-menu inner", r.className = "divider", l.appendChild(document.createTextNode("Inner text")), o.appendChild(l), s.appendChild(o), a.appendChild(s), a.appendChild(r), d && n.appendChild(d), c) {
var h = document.createElement("input");
c.className = "bs-searchbox", h.className = "form-control", c.appendChild(h), n.appendChild(c)
}
u && n.appendChild(u), n.appendChild(a), p && n.appendChild(p), i.appendChild(n), document.body.appendChild(i);
var f = o.offsetHeight,
g = d ? d.offsetHeight : 0,
m = c ? c.offsetHeight : 0,
v = u ? u.offsetHeight : 0,
b = p ? p.offsetHeight : 0,
y = e(r).outerHeight(!0),
w = "function" == typeof getComputedStyle && getComputedStyle(n),
S = w ? null : e(n),
x = {
vert: parseInt(w ? w.paddingTop : S.css("paddingTop")) + parseInt(w ? w.paddingBottom : S.css("paddingBottom")) + parseInt(w ? w.borderTopWidth : S.css("borderTopWidth")) + parseInt(w ? w.borderBottomWidth : S.css("borderBottomWidth")),
horiz: parseInt(w ? w.paddingLeft : S.css("paddingLeft")) + parseInt(w ? w.paddingRight : S.css("paddingRight")) + parseInt(w ? w.borderLeftWidth : S.css("borderLeftWidth")) + parseInt(w ? w.borderRightWidth : S.css("borderRightWidth"))
},
_ = {
vert: x.vert + parseInt(w ? w.marginTop : S.css("marginTop")) + parseInt(w ? w.marginBottom : S.css("marginBottom")) + 2,
horiz: x.horiz + parseInt(w ? w.marginLeft : S.css("marginLeft")) + parseInt(w ? w.marginRight : S.css("marginRight")) + 2
};
document.body.removeChild(i), this.sizeInfo = {
liHeight: f,
headerHeight: g,
searchHeight: m,
actionsHeight: v,
doneButtonHeight: b,
dividerHeight: y,
menuPadding: x,
menuExtras: _
}
}
},
setSize: function () {
if (this.findLis(), this.liHeight(), this.options.header && this.$menu.css("padding-top", 0), !1 !== this.options.size) {
var t, i, n, a, r, s, o, l, d = this,
c = this.$menu,
u = this.$menuInner,
p = e(window),
h = this.$newElement[0].offsetHeight,
f = this.$newElement[0].offsetWidth,
g = this.sizeInfo.liHeight,
m = this.sizeInfo.headerHeight,
v = this.sizeInfo.searchHeight,
b = this.sizeInfo.actionsHeight,
y = this.sizeInfo.doneButtonHeight,
w = this.sizeInfo.dividerHeight,
S = this.sizeInfo.menuPadding,
x = this.sizeInfo.menuExtras,
_ = this.options.hideDisabled ? ".disabled" : "",
C = function () {
var t, i = d.$newElement.offset(),
n = e(d.options.container);
d.options.container && !n.is("body") ? ((t = n.offset()).top += parseInt(n.css("borderTopWidth")), t.left += parseInt(n.css("borderLeftWidth"))) : t = {
top: 0,
left: 0
};
var a = d.options.windowPadding;
r = i.top - t.top - p.scrollTop(), s = p.height() - r - h - t.top - a[2], o = i.left - t.left - p.scrollLeft(), l = p.width() - o - f - t.left - a[1], r -= a[0], o -= a[3]
};
if (C(), "auto" === this.options.size) {
var T = function () {
var p, h = function (t, i) {
return function (n) {
return i ? n.classList ? n.classList.contains(t) : e(n).hasClass(t) : !(n.classList ? n.classList.contains(t) : e(n).hasClass(t))
}
},
w = d.$menuInner[0].getElementsByTagName("li"),
_ = Array.prototype.filter ? Array.prototype.filter.call(w, h("hidden", !1)) : d.$lis.not(".hidden"),
T = Array.prototype.filter ? Array.prototype.filter.call(_, h("dropdown-header", !0)) : _.filter(".dropdown-header");
C(), t = s - x.vert, i = l - x.horiz, d.options.container ? (c.data("height") || c.data("height", c.height()), n = c.data("height"), c.data("width") || c.data("width", c.width()), a = c.data("width")) : (n = c.height(), a = c.width()), d.options.dropupAuto && d.$newElement.toggleClass("dropup", r > s && t - x.vert < n), d.$newElement.hasClass("dropup") && (t = r - x.vert), "auto" === d.options.dropdownAlignRight && c.toggleClass("dropdown-menu-right", o > l && i - x.horiz < a - f), p = _.length + T.length > 3 ? 3 * g + x.vert - 2 : 0, c.css({
"max-height": t + "px",
overflow: "hidden",
"min-height": p + m + v + b + y + "px"
}), u.css({
"max-height": t - m - v - b - y - S.vert + "px",
"overflow-y": "auto",
"min-height": Math.max(p - S.vert, 0) + "px"
})
};
T(), this.$searchbox.off("input.getSize propertychange.getSize").on("input.getSize propertychange.getSize", T), p.off("resize.getSize scroll.getSize").on("resize.getSize scroll.getSize", T)
} else if (this.options.size && "auto" != this.options.size && this.$lis.not(_).length > this.options.size) {
var D = this.$lis.not(".divider").not(_).children().slice(0, this.options.size).last().parent().index(),
k = this.$lis.slice(0, D + 1).filter(".divider").length;
t = g * this.options.size + k * w + S.vert, d.options.container ? (c.data("height") || c.data("height", c.height()), n = c.data("height")) : n = c.height(), d.options.dropupAuto && this.$newElement.toggleClass("dropup", r > s && t - x.vert < n), c.css({
"max-height": t + m + v + b + y + "px",
overflow: "hidden",
"min-height": ""
}), u.css({
"max-height": t - S.vert + "px",
"overflow-y": "auto",
"min-height": ""
})
}
}
},
setWidth: function () {
if ("auto" === this.options.width) {
this.$menu.css("min-width", "0");
var e = this.$menu.parent().clone().appendTo("body"),
t = this.options.container ? this.$newElement.clone().appendTo("body") : e,
i = e.children(".dropdown-menu").outerWidth(),
n = t.css("width", "auto").children("button").outerWidth();
e.remove(), t.remove(), this.$newElement.css("width", Math.max(i, n) + "px")
} else "fit" === this.options.width ? (this.$menu.css("min-width", ""), this.$newElement.css("width", "").addClass("fit-width")) : this.options.width ? (this.$menu.css("min-width", ""), this.$newElement.css("width", this.options.width)) : (this.$menu.css("min-width", ""), this.$newElement.css("width", ""));
this.$newElement.hasClass("fit-width") && "fit" !== this.options.width && this.$newElement.removeClass("fit-width")
},
selectPosition: function () {
this.$bsContainer = e('<div class="bs-container" />');
var t, i, n, a = this,
r = e(this.options.container),
s = function (e) {
a.$bsContainer.addClass(e.attr("class").replace(/form-control|fit-width/gi, "")).toggleClass("dropup", e.hasClass("dropup")), t = e.offset(), r.is("body") ? i = {
top: 0,
left: 0
} : ((i = r.offset()).top += parseInt(r.css("borderTopWidth")) - r.scrollTop(), i.left += parseInt(r.css("borderLeftWidth")) - r.scrollLeft()), n = e.hasClass("dropup") ? 0 : e[0].offsetHeight, a.$bsContainer.css({
top: t.top - i.top + n,
left: t.left - i.left,
width: e[0].offsetWidth
})
};
this.$button.on("click", (function () {
var t = e(this);
a.isDisabled() || (s(a.$newElement), a.$bsContainer.appendTo(a.options.container).toggleClass("open", !t.hasClass("open")).append(a.$menu))
})), e(window).on("resize scroll", (function () {
s(a.$newElement)
})), this.$element.on("hide.bs.select", (function () {
a.$menu.data("height", a.$menu.height()), a.$bsContainer.detach()
}))
},
setSelected: function (e, t, i) {
i || (this.togglePlaceholder(), i = this.findLis().eq(this.liObj[e])), i.toggleClass("selected", t).find("a").attr("aria-selected", t)
},
setDisabled: function (e, t, i) {
i || (i = this.findLis().eq(this.liObj[e])), t ? i.addClass("disabled").children("a").attr("href", "#").attr("tabindex", -1).attr("aria-disabled", !0) : i.removeClass("disabled").children("a").removeAttr("href").attr("tabindex", 0).attr("aria-disabled", !1)
},
isDisabled: function () {
return this.$element[0].disabled
},
checkDisabled: function () {
var e = this;
this.isDisabled() ? (this.$newElement.addClass("disabled"), this.$button.addClass("disabled").attr("tabindex", -1).attr("aria-disabled", !0)) : (this.$button.hasClass("disabled") && (this.$newElement.removeClass("disabled"), this.$button.removeClass("disabled").attr("aria-disabled", !1)), -1 != this.$button.attr("tabindex") || this.$element.data("tabindex") || this.$button.removeAttr("tabindex")), this.$button.click((function () {
return !e.isDisabled()
}))
},
togglePlaceholder: function () {
var e = this.$element.val();
this.$button.toggleClass("bs-placeholder", null === e || "" === e || e.constructor === Array && 0 === e.length)
},
tabIndex: function () {
this.$element.data("tabindex") !== this.$element.attr("tabindex") && -98 !== this.$element.attr("tabindex") && "-98" !== this.$element.attr("tabindex") && (this.$element.data("tabindex", this.$element.attr("tabindex")), this.$button.attr("tabindex", this.$element.data("tabindex"))), this.$element.attr("tabindex", -98)
},
clickListener: function () {
var t = this,
i = e(document);
i.data("spaceSelect", !1), this.$button.on("keyup", (function (e) {
/(32)/.test(e.keyCode.toString(10)) && i.data("spaceSelect") && (e.preventDefault(), i.data("spaceSelect", !1))
})), this.$button.on("click", (function () {
t.setSize()
})), this.$element.on("shown.bs.select", (function () {
if (t.options.liveSearch || t.multiple) {
if (!t.multiple) {
var e = t.liObj[t.$element[0].selectedIndex];
if ("number" != typeof e || !1 === t.options.size) return;
var i = t.$lis.eq(e)[0].offsetTop - t.$menuInner[0].offsetTop;
i = i - t.$menuInner[0].offsetHeight / 2 + t.sizeInfo.liHeight / 2, t.$menuInner[0].scrollTop = i
}
} else t.$menuInner.find(".selected a").focus()
})), this.$menuInner.on("click", "li a", (function (i) {
var n = e(this),
a = n.parent().data("originalIndex"),
r = t.$element.val(),
o = t.$element.prop("selectedIndex"),
l = !0;
if (t.multiple && 1 !== t.options.maxOptions && i.stopPropagation(), i.preventDefault(), !t.isDisabled() && !n.parent().hasClass("disabled")) {
var d = t.$element.find("option"),
c = d.eq(a),
u = c.prop("selected"),
p = c.parent("optgroup"),
h = t.options.maxOptions,
f = p.data("maxOptions") || !1;
if (t.multiple) {
if (c.prop("selected", !u), t.setSelected(a, !u), n.blur(), !1 !== h || !1 !== f) {
var g = h < d.filter(":selected").length,
m = f < p.find("option:selected").length;
if (h && g || f && m)
if (h && 1 == h) d.prop("selected", !1), c.prop("selected", !0), t.$menuInner.find(".selected").removeClass("selected"), t.setSelected(a, !0);
else if (f && 1 == f) {
p.find("option:selected").prop("selected", !1), c.prop("selected", !0);
var v = n.parent().data("optgroup");
t.$menuInner.find('[data-optgroup="' + v + '"]').removeClass("selected"), t.setSelected(a, !0)
} else {
var b = "string" == typeof t.options.maxOptionsText ? [t.options.maxOptionsText, t.options.maxOptionsText] : t.options.maxOptionsText,
y = "function" == typeof b ? b(h, f) : b,
w = y[0].replace("{n}", h),
S = y[1].replace("{n}", f),
x = e('<div class="notify"></div>');
y[2] && (w = w.replace("{var}", y[2][h > 1 ? 0 : 1]), S = S.replace("{var}", y[2][f > 1 ? 0 : 1])), c.prop("selected", !1), t.$menu.append(x), h && g && (x.append(e("<div>" + w + "</div>")), l = !1, t.$element.trigger("maxReached.bs.select")), f && m && (x.append(e("<div>" + S + "</div>")), l = !1, t.$element.trigger("maxReachedGrp.bs.select")), setTimeout((function () {
t.setSelected(a, !1)
}), 10), x.delay(750).fadeOut(300, (function () {
e(this).remove()
}))
}
}
} else d.prop("selected", !1), c.prop("selected", !0), t.$menuInner.find(".selected").removeClass("selected").find("a").attr("aria-selected", !1), t.setSelected(a, !0);
!t.multiple || t.multiple && 1 === t.options.maxOptions ? t.$button.focus() : t.options.liveSearch && t.$searchbox.focus(), l && (r != t.$element.val() && t.multiple || o != t.$element.prop("selectedIndex") && !t.multiple) && (s = [a, c.prop("selected"), u], t.$element.triggerNative("change"))
}
})), this.$menu.on("click", "li.disabled a, .popover-title, .popover-title :not(.close)", (function (i) {
i.currentTarget == this && (i.preventDefault(), i.stopPropagation(), t.options.liveSearch && !e(i.target).hasClass("close") ? t.$searchbox.focus() : t.$button.focus())
})), this.$menuInner.on("click", ".divider, .dropdown-header", (function (e) {
e.preventDefault(), e.stopPropagation(), t.options.liveSearch ? t.$searchbox.focus() : t.$button.focus()
})), this.$menu.on("click", ".popover-title .close", (function () {
t.$button.click()
})), this.$searchbox.on("click", (function (e) {
e.stopPropagation()
})), this.$menu.on("click", ".actions-btn", (function (i) {
t.options.liveSearch ? t.$searchbox.focus() : t.$button.focus(), i.preventDefault(), i.stopPropagation(), e(this).hasClass("bs-select-all") ? t.selectAll() : t.deselectAll()
})), this.$element.change((function () {
t.render(!1), t.$element.trigger("changed.bs.select", s), s = null
}))
},
liveSearchListener: function () {
var t = this,
i = e('<li class="no-results"></li>');
this.$button.on("click.dropdown.data-api", (function () {
t.$menuInner.find(".active").removeClass("active"), t.$searchbox.val() && (t.$searchbox.val(""), t.$lis.not(".is-hidden").removeClass("hidden"), i.parent().length && i.remove()), t.multiple || t.$menuInner.find(".selected").addClass("active"), setTimeout((function () {
t.$searchbox.focus()
}), 10)
})), this.$searchbox.on("click.dropdown.data-api focus.dropdown.data-api touchend.dropdown.data-api", (function (e) {
e.stopPropagation()
})), this.$searchbox.on("input propertychange", (function () {
if (t.$lis.not(".is-hidden").removeClass("hidden"), t.$lis.filter(".active").removeClass("active"), i.remove(), t.$searchbox.val()) {
var n, a = t.$lis.not(".is-hidden, .divider, .dropdown-header");
if ((n = t.options.liveSearchNormalize ? a.find("a").not(":a" + t._searchStyle() + '("' + o(t.$searchbox.val()) + '")') : a.find("a").not(":" + t._searchStyle() + '("' + t.$searchbox.val() + '")')).length === a.length) i.html(t.options.noneResultsText.replace("{0}", '"' + d(t.$searchbox.val()) + '"')), t.$menuInner.append(i), t.$lis.addClass("hidden");
else {
n.parent().addClass("hidden");
var r, s = t.$lis.not(".hidden");
s.each((function (t) {
var i = e(this);
i.hasClass("divider") ? void 0 === r ? i.addClass("hidden") : (r && r.addClass("hidden"), r = i) : i.hasClass("dropdown-header") && s.eq(t + 1).data("optgroup") !== i.data("optgroup") ? i.addClass("hidden") : r = null
})), r && r.addClass("hidden"), a.not(".hidden").first().addClass("active")
}
}
}))
},
_searchStyle: function () {
return {
begins: "ibegins",
startsWith: "ibegins"
}[this.options.liveSearchStyle] || "icontains"
},
val: function (e) {
return void 0 !== e ? (this.$element.val(e), this.render(), this.$element) : this.$element.val()
},
changeAll: function (t) {
if (this.multiple) {
void 0 === t && (t = !0), this.findLis();
var i = this.$element.find("option"),
n = this.$lis.not(".divider, .dropdown-header, .disabled, .hidden"),
a = n.length,
r = [];
if (t) {
if (n.filter(".selected").length === n.length) return
} else if (0 === n.filter(".selected").length) return;
n.toggleClass("selected", t);
for (var s = 0; s < a; s++) {
var o = n[s].getAttribute("data-original-index");
r[r.length] = i.eq(o)[0]
}
e(r).prop("selected", t), this.render(!1), this.togglePlaceholder(), this.$element.triggerNative("change")
}
},
selectAll: function () {
return this.changeAll(!0)
},
deselectAll: function () {
return this.changeAll(!1)
},
toggle: function (e) {
(e = e || window.event) && e.stopPropagation(), this.$button.trigger("click")
},
keydown: function (t) {
var i, n, a, r, s, l, d, c, u, p = e(this),
h = p.is("input") ? p.parent().parent() : p.parent(),
f = h.data("this"),
g = ":not(.disabled, .hidden, .dropdown-header, .divider)",
m = {
32: " ",
48: "0",
49: "1",
50: "2",
51: "3",
52: "4",
53: "5",
54: "6",
55: "7",
56: "8",
57: "9",
59: ";",
65: "a",
66: "b",
67: "c",
68: "d",
69: "e",
70: "f",
71: "g",
72: "h",
73: "i",
74: "j",
75: "k",
76: "l",
77: "m",
78: "n",
79: "o",
80: "p",
81: "q",
82: "r",
83: "s",
84: "t",
85: "u",
86: "v",
87: "w",
88: "x",
89: "y",
90: "z",
96: "0",
97: "1",
98: "2",
99: "3",
100: "4",
101: "5",
102: "6",
103: "7",
104: "8",
105: "9"
};
if (f.options.liveSearch && (h = p.parent().parent()), f.options.container && (h = f.$menu), i = e('[role="listbox"] li', h), !(u = f.$newElement.hasClass("open")) && (t.keyCode >= 48 && t.keyCode <= 57 || t.keyCode >= 96 && t.keyCode <= 105 || t.keyCode >= 65 && t.keyCode <= 90)) return f.options.container ? f.$button.trigger("click") : (f.setSize(), f.$menu.parent().addClass("open"), u = !0), void f.$searchbox.focus();
if (f.options.liveSearch && (/(^9$|27)/.test(t.keyCode.toString(10)) && u && (t.preventDefault(), t.stopPropagation(), f.$menuInner.click(), f.$button.focus()), i = e('[role="listbox"] li' + g, h), p.val() || /(38|40)/.test(t.keyCode.toString(10)) || 0 === i.filter(".active").length && (i = f.$menuInner.find("li"), i = f.options.liveSearchNormalize ? i.filter(":a" + f._searchStyle() + "(" + o(m[t.keyCode]) + ")") : i.filter(":" + f._searchStyle() + "(" + m[t.keyCode] + ")"))), i.length) {
if (/(38|40)/.test(t.keyCode.toString(10))) n = i.index(i.find("a").filter(":focus").parent()), r = i.filter(g).first().index(), s = i.filter(g).last().index(), a = i.eq(n).nextAll(g).eq(0).index(), l = i.eq(n).prevAll(g).eq(0).index(), d = i.eq(a).prevAll(g).eq(0).index(), f.options.liveSearch && (i.each((function (t) {
e(this).hasClass("disabled") || e(this).data("index", t)
})), n = i.index(i.filter(".active")), r = i.first().data("index"), s = i.last().data("index"), a = i.eq(n).nextAll().eq(0).data("index"), l = i.eq(n).prevAll().eq(0).data("index"), d = i.eq(a).prevAll().eq(0).data("index")), c = p.data("prevIndex"), 38 == t.keyCode ? (f.options.liveSearch && n--, n != d && n > l && (n = l), n < r && (n = r), n == c && (n = s)) : 40 == t.keyCode && (f.options.liveSearch && n++, -1 == n && (n = 0), n != d && n < a && (n = a), n > s && (n = s), n == c && (n = r)), p.data("prevIndex", n), f.options.liveSearch ? (t.preventDefault(), p.hasClass("dropdown-toggle") || (i.removeClass("active").eq(n).addClass("active").children("a").focus(), p.focus())) : i.eq(n).children("a").focus();
else if (!p.is("input")) {
var v, b = [];
i.each((function () {
e(this).hasClass("disabled") || e.trim(e(this).children("a").text().toLowerCase()).substring(0, 1) == m[t.keyCode] && b.push(e(this).index())
})), v = e(document).data("keycount"), v++, e(document).data("keycount", v), e.trim(e(":focus").text().toLowerCase()).substring(0, 1) != m[t.keyCode] ? (v = 1, e(document).data("keycount", v)) : v >= b.length && (e(document).data("keycount", 0), v > b.length && (v = 1)), i.eq(b[v - 1]).children("a").focus()
}
if ((/(13|32)/.test(t.keyCode.toString(10)) || /(^9$)/.test(t.keyCode.toString(10)) && f.options.selectOnTab) && u) {
if (/(32)/.test(t.keyCode.toString(10)) || t.preventDefault(), f.options.liveSearch) /(32)/.test(t.keyCode.toString(10)) || (f.$menuInner.find(".active a").click(), p.focus());
else {
var y = e(":focus");
y.click(), y.focus(), t.preventDefault(), e(document).data("spaceSelect", !0)
}
e(document).data("keycount", 0)
} (/(^9$|27)/.test(t.keyCode.toString(10)) && u && (f.multiple || f.options.liveSearch) || /(27)/.test(t.keyCode.toString(10)) && !u) && (f.$menu.parent().removeClass("open"), f.options.container && f.$newElement.removeClass("open"), f.$button.focus())
}
},
mobile: function () {
this.$element.addClass("mobile-device")
},
refresh: function () {
this.$lis = null, this.liObj = {}, this.reloadLi(), this.render(), this.checkDisabled(), this.liHeight(!0), this.setStyle(), this.setWidth(), this.$lis && this.$searchbox.trigger("propertychange"), this.$element.trigger("refreshed.bs.select")
},
hide: function () {
this.$newElement.hide()
},
show: function () {
this.$newElement.show()
},
remove: function () {
this.$newElement.remove(), this.$element.remove()
},
destroy: function () {
this.$newElement.before(this.$element).remove(), this.$bsContainer ? this.$bsContainer.remove() : this.$menu.remove(), this.$element.off(".bs.select").removeData("selectpicker").removeClass("bs-select-hidden selectpicker")
}
};
var h = e.fn.selectpicker;
e.fn.selectpicker = p, e.fn.selectpicker.Constructor = u, e.fn.selectpicker.noConflict = function () {
return e.fn.selectpicker = h, this
}, e(document).data("keycount", 0).on("keydown.bs.select", '.bootstrap-select [data-toggle=dropdown], .bootstrap-select [role="listbox"], .bs-searchbox input', u.prototype.keydown).on("focusin.modal", '.bootstrap-select [data-toggle=dropdown], .bootstrap-select [role="listbox"], .bs-searchbox input', (function (e) {
e.stopPropagation()
})), e(window).on("load.bs.select.data-api", (function () {
e(".selectpicker").each((function () {
var t = e(this);
p.call(t, t.data())
}))
}))
}(e)
}.apply(t, n)) || (e.exports = a)
}, function (e, t, i) {
var n, a;
/*!
* @name easyzoom
* @author <>
* @modified Friday, May 15th, 2020
* @version 2.5.2
*/
! function (r, s) {
"use strict";
n = [i(0)], void 0 === (a = function (e) {
! function (e) {
var t, i, n, a, r, s, o = {
loadingNotice: "Loading image",
errorNotice: "The image could not be loaded",
errorDuration: 2500,
linkAttribute: "href",
preventClicks: !0,
beforeShow: e.noop,
beforeHide: e.noop,
onShow: e.noop,
onHide: e.noop,
onMove: e.noop
};
function l(t, i) {
this.$target = e(t), this.opts = e.extend({}, o, i, this.$target.data()), void 0 === this.isOpen && this._init()
}
l.prototype._init = function () {
this.$link = this.$target.find("a"), this.$image = this.$target.find("img"), this.$flyout = e('<div class="easyzoom-flyout" />'), this.$notice = e('<div class="easyzoom-notice" />'), this.$target.on({
"mousemove.easyzoom touchmove.easyzoom": e.proxy(this._onMove, this),
"mouseleave.easyzoom touchend.easyzoom": e.proxy(this._onLeave, this),
"mouseenter.easyzoom touchstart.easyzoom": e.proxy(this._onEnter, this)
}), this.opts.preventClicks && this.$target.on("click.easyzoom", (function (e) {
e.preventDefault()
}))
}, l.prototype.show = function (e, r) {
var s = this;
if (!1 !== this.opts.beforeShow.call(this)) {
if (!this.isReady) return this._loadImage(this.$link.attr(this.opts.linkAttribute), (function () {
!s.isMouseOver && r || s.show(e)
}));
this.$target.append(this.$flyout);
var o = this.$target.outerWidth(),
l = this.$target.outerHeight(),
d = this.$flyout.width(),
c = this.$flyout.height(),
u = this.$zoom.width(),
p = this.$zoom.height();
t = Math.ceil(u - d), i = Math.ceil(p - c), t < 0 && (t = 0), i < 0 && (i = 0), n = t / o, a = i / l, this.isOpen = !0, this.opts.onShow.call(this), e && this._move(e)
}
}, l.prototype._onEnter = function (e) {
var t = e.originalEvent.touches;
this.isMouseOver = !0, t && 1 != t.length || (e.preventDefault(), this.show(e, !0))
}, l.prototype._onMove = function (e) {
this.isOpen && (e.preventDefault(), this._move(e))
}, l.prototype._onLeave = function () {
this.isMouseOver = !1, this.isOpen && this.hide()
}, l.prototype._onLoad = function (e) {
e.currentTarget.width && (this.isReady = !0, this.$notice.detach(), this.$flyout.html(this.$zoom), this.$target.removeClass("is-loading").addClass("is-ready"), e.data.call && e.data())
}, l.prototype._onError = function () {
var e = this;
this.$notice.text(this.opts.errorNotice), this.$target.removeClass("is-loading").addClass("is-error"), this.detachNotice = setTimeout((function () {
e.$notice.detach(), e.detachNotice = null
}), this.opts.errorDuration)
}, l.prototype._loadImage = function (t, i) {
var n = new Image;
this.$target.addClass("is-loading").append(this.$notice.text(this.opts.loadingNotice)), this.$zoom = e(n).on("error", e.proxy(this._onError, this)).on("load", i, e.proxy(this._onLoad, this)), n.style.position = "absolute", n.src = t
}, l.prototype._move = function (e) {
if (0 === e.type.indexOf("touch")) {
var o = e.touches || e.originalEvent.touches;
r = o[0].pageX, s = o[0].pageY
} else r = e.pageX || r, s = e.pageY || s;
var l = this.$target.offset(),
d = r - l.left,
c = s - l.top,
u = Math.ceil(d * n),
p = Math.ceil(c * a);
if (u < 0 || p < 0 || t < u || i < p) this.hide();
else {
var h = -1 * p,
f = -1 * u;
this.$zoom.css({
top: h,
left: f
}), this.opts.onMove.call(this, h, f)
}
}, l.prototype.hide = function () {
this.isOpen && !1 !== this.opts.beforeHide.call(this) && (this.$flyout.detach(), this.isOpen = !1, this.opts.onHide.call(this))
}, l.prototype.swap = function (t, i, n) {
this.hide(), this.isReady = !1, this.detachNotice && clearTimeout(this.detachNotice), this.$notice.parent().length && this.$notice.detach(), this.$target.removeClass("is-loading is-ready is-error"), this.$image.attr({
src: t,
srcset: e.isArray(n) ? n.join() : n
}), this.$link.attr(this.opts.linkAttribute, i)
}, l.prototype.teardown = function () {
this.hide(), this.$target.off(".easyzoom").removeClass("is-loading is-ready is-error"), this.detachNotice && clearTimeout(this.detachNotice), delete this.$link, delete this.$zoom, delete this.$image, delete this.$notice, delete this.$flyout, delete this.isOpen, delete this.isReady
}, e.fn.easyZoom = function (t) {
return this.each((function () {
var i = e.data(this, "easyZoom");
i ? void 0 === i.isOpen && i._init() : e.data(this, "easyZoom", new l(this, t))
}))
}
}(e)
}.apply(t, n)) || (e.exports = a)
}()
}, function (e, t) {
(function (t) {
e.exports = t
}).call(this, {})
}, function (e, t, i) {
var n, a;
/*! Bootstrap integration for DataTables' Responsive
* ©2015-2016 SpryMedia Ltd - datatables.net/license
*/
n = [i(0), i(10), i(56)], void 0 === (a = function (e) {
return function (e, t, i, n) {
"use strict";
var a = e.fn.dataTable,
r = a.Responsive.display,
s = r.modal,
o = e('<div class="modal fade dtr-bs-modal" role="dialog"><div class="modal-dialog" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button></div><div class="modal-body"/></div></div></div>');
return r.modal = function (t) {
return function (i, n, a) {
if (e.fn.modal) {
if (!n) {
if (t && t.header) {
var r = o.find("div.modal-header"),
l = r.find("button").detach();
r.empty().append('<h4 class="modal-title">' + t.header(i) + "</h4>").prepend(l)
}
o.find("div.modal-body").empty().append(a()), o.appendTo("body").modal()
}
} else s(i, n, a)
}
}, a.Responsive
}(e, window, document)
}.apply(t, n)) || (e.exports = a)
}, function (e, t, i) {
var n, a;
/*! Responsive 2.2.7
* 2014-2021 SpryMedia Ltd - datatables.net/license
*/
n = [i(0), i(11)], void 0 === (a = function (e) {
return function (e, t, i, n) {
"use strict";
var a = e.fn.dataTable,
r = function (t, i) {
if (!a.versionCheck || !a.versionCheck("1.10.10")) throw "DataTables Responsive requires DataTables 1.10.10 or newer";
this.s = {
dt: new a.Api(t),
columns: [],
current: []
}, this.s.dt.settings()[0].responsive || (i && "string" == typeof i.details ? i.details = {
type: i.details
} : i && !1 === i.details ? i.details = {
type: !1
} : i && !0 === i.details && (i.details = {
type: "inline"
}), this.c = e.extend(!0, {}, r.defaults, a.defaults.responsive, i), t.responsive = this, this._constructor())
};
e.extend(r.prototype, {
_constructor: function () {
var i = this,
n = this.s.dt,
r = n.settings()[0],
s = e(t).innerWidth();
n.settings()[0]._responsive = this, e(t).on("resize.dtr orientationchange.dtr", a.util.throttle((function () {
var n = e(t).innerWidth();
n !== s && (i._resize(), s = n)
}))), r.oApi._fnCallbackReg(r, "aoRowCreatedCallback", (function (t, a, r) {
-1 !== e.inArray(!1, i.s.current) && e(">td, >th", t).each((function (t) {
var a = n.column.index("toData", t);
!1 === i.s.current[a] && e(this).css("display", "none")
}))
})), n.on("destroy.dtr", (function () {
n.off(".dtr"), e(n.table().body()).off(".dtr"), e(t).off("resize.dtr orientationchange.dtr"), n.cells(".dtr-control").nodes().to$().removeClass("dtr-control"), e.each(i.s.current, (function (e, t) {
!1 === t && i._setColumnVis(e, !0)
}))
})), this.c.breakpoints.sort((function (e, t) {
return e.width < t.width ? 1 : e.width > t.width ? -1 : 0
})), this._classLogic(), this._resizeAuto();
var o = this.c.details;
!1 !== o.type && (i._detailsInit(), n.on("column-visibility.dtr", (function () {
i._timer && clearTimeout(i._timer), i._timer = setTimeout((function () {
i._timer = null, i._classLogic(), i._resizeAuto(), i._resize(!0), i._redrawChildren()
}), 100)
})), n.on("draw.dtr", (function () {
i._redrawChildren()
})), e(n.table().node()).addClass("dtr-" + o.type)), n.on("column-reorder.dtr", (function (e, t, n) {
i._classLogic(), i._resizeAuto(), i._resize(!0)
})), n.on("column-sizing.dtr", (function () {
i._resizeAuto(), i._resize()
})), n.on("preXhr.dtr", (function () {
var e = [];
n.rows().every((function () {
this.child.isShown() && e.push(this.id(!0))
})), n.one("draw.dtr", (function () {
i._resizeAuto(), i._resize(), n.rows(e).every((function () {
i._detailsDisplay(this, !1)
}))
}))
})), n.on("draw.dtr", (function () {
i._controlClass()
})).on("init.dtr", (function (t, a, r) {
"dt" === t.namespace && (i._resizeAuto(), i._resize(), e.inArray(!1, i.s.current) && n.columns.adjust())
})), this._resize()
},
_columnsVisiblity: function (t) {
var i, n, a = this.s.dt,
r = this.s.columns,
s = r.map((function (e, t) {
return {
columnIdx: t,
priority: e.priority
}
})).sort((function (e, t) {
return e.priority !== t.priority ? e.priority - t.priority : e.columnIdx - t.columnIdx
})),
o = e.map(r, (function (i, n) {
return !1 === a.column(n).visible() ? "not-visible" : (!i.auto || null !== i.minWidth) && (!0 === i.auto ? "-" : -1 !== e.inArray(t, i.includeIn))
})),
l = 0;
for (i = 0, n = o.length; i < n; i++) !0 === o[i] && (l += r[i].minWidth);
var d = a.settings()[0].oScroll,
c = d.sY || d.sX ? d.iBarWidth : 0,
u = a.table().container().offsetWidth - c - l;
for (i = 0, n = o.length; i < n; i++) r[i].control && (u -= r[i].minWidth);
var p = !1;
for (i = 0, n = s.length; i < n; i++) {
var h = s[i].columnIdx;
"-" === o[h] && !r[h].control && r[h].minWidth && (p || u - r[h].minWidth < 0 ? (p = !0, o[h] = !1) : o[h] = !0, u -= r[h].minWidth)
}
var f = !1;
for (i = 0, n = r.length; i < n; i++)
if (!r[i].control && !r[i].never && !1 === o[i]) {
f = !0;
break
} for (i = 0, n = r.length; i < n; i++) r[i].control && (o[i] = f), "not-visible" === o[i] && (o[i] = !1);
return -1 === e.inArray(!0, o) && (o[0] = !0), o
},
_classLogic: function () {
var t = this,
i = this.c.breakpoints,
a = this.s.dt,
r = a.columns().eq(0).map((function (e) {
var t = this.column(e),
i = t.header().className,
r = a.settings()[0].aoColumns[e].responsivePriority,
s = t.header().getAttribute("data-priority");
return r === n && (r = s === n || null === s ? 1e4 : 1 * s), {
className: i,
includeIn: [],
auto: !1,
control: !1,
never: !!i.match(/\bnever\b/),
priority: r
}
})),
s = function (t, i) {
var n = r[t].includeIn; - 1 === e.inArray(i, n) && n.push(i)
},
o = function (e, n, a, o) {
var l, d, c;
if (a) {
if ("max-" === a)
for (l = t._find(n).width, d = 0, c = i.length; d < c; d++) i[d].width <= l && s(e, i[d].name);
else if ("min-" === a)
for (l = t._find(n).width, d = 0, c = i.length; d < c; d++) i[d].width >= l && s(e, i[d].name);
else if ("not-" === a)
for (d = 0, c = i.length; d < c; d++) - 1 === i[d].name.indexOf(o) && s(e, i[d].name)
} else r[e].includeIn.push(n)
};
r.each((function (t, n) {
for (var a = t.className.split(" "), r = !1, s = 0, l = a.length; s < l; s++) {
var d = a[s].trim();
if ("all" === d) return r = !0, void (t.includeIn = e.map(i, (function (e) {
return e.name
})));
if ("none" === d || t.never) return void (r = !0);
if ("control" === d || "dtr-control" === d) return r = !0, void (t.control = !0);
e.each(i, (function (e, t) {
var i = t.name.split("-"),
a = new RegExp("(min\\-|max\\-|not\\-)?(" + i[0] + ")(\\-[_a-zA-Z0-9])?"),
s = d.match(a);
s && (r = !0, s[2] === i[0] && s[3] === "-" + i[1] ? o(n, t.name, s[1], s[2] + s[3]) : s[2] !== i[0] || s[3] || o(n, t.name, s[1], s[2]))
}))
}
r || (t.auto = !0)
})), this.s.columns = r
},
_controlClass: function () {
if ("inline" === this.c.details.type) {
var t = this.s.dt,
i = this.s.current,
n = e.inArray(!0, i);
t.cells(null, (function (e) {
return e !== n
}), {
page: "current"
}).nodes().to$().filter(".dtr-control").removeClass("dtr-control"), t.cells(null, n, {
page: "current"
}).nodes().to$().addClass("dtr-control")
}
},
_detailsDisplay: function (t, i) {
var n = this,
a = this.s.dt,
r = this.c.details;
if (r && !1 !== r.type) {
var s = r.display(t, i, (function () {
return r.renderer(a, t[0], n._detailsObj(t[0]))
}));
!0 !== s && !1 !== s || e(a.table().node()).triggerHandler("responsive-display.dt", [a, t, s, i])
}
},
_detailsInit: function () {
var t = this,
i = this.s.dt,
a = this.c.details;
"inline" === a.type && (a.target = "td.dtr-control, th.dtr-control"), i.on("draw.dtr", (function () {
t._tabIndexes()
})), t._tabIndexes(), e(i.table().body()).on("keyup.dtr", "td, th", (function (t) {
13 === t.keyCode && e(this).data("dtr-keyboard") && e(this).click()
}));
var r = a.target,
s = "string" == typeof r ? r : "td, th";
r === n && null === r || e(i.table().body()).on("click.dtr mousedown.dtr mouseup.dtr", s, (function (n) {
if (e(i.table().node()).hasClass("collapsed") && -1 !== e.inArray(e(this).closest("tr").get(0), i.rows().nodes().toArray())) {
if ("number" == typeof r) {
var a = r < 0 ? i.columns().eq(0).length + r : r;
if (i.cell(this).index().column !== a) return
}
var s = i.row(e(this).closest("tr"));
"click" === n.type ? t._detailsDisplay(s, !1) : "mousedown" === n.type ? e(this).css("outline", "none") : "mouseup" === n.type && e(this).trigger("blur").css("outline", "")
}
}))
},
_detailsObj: function (t) {
var i = this,
n = this.s.dt;
return e.map(this.s.columns, (function (a, r) {
if (!a.never && !a.control) {
var s = n.settings()[0].aoColumns[r];
return {
className: s.sClass,
columnIndex: r,
data: n.cell(t, r).render(i.c.orthogonal),
hidden: n.column(r).visible() && !i.s.current[r],
rowIndex: t,
title: null !== s.sTitle ? s.sTitle : e(n.column(r).header()).text()
}
}
}))
},
_find: function (e) {
for (var t = this.c.breakpoints, i = 0, n = t.length; i < n; i++)
if (t[i].name === e) return t[i]
},
_redrawChildren: function () {
var e = this,
t = this.s.dt;
t.rows({
page: "current"
}).iterator("row", (function (i, n) {
t.row(n), e._detailsDisplay(t.row(n), !0)
}))
},
_resize: function (i) {
var n, a, r = this,
s = this.s.dt,
o = e(t).innerWidth(),
l = this.c.breakpoints,
d = l[0].name,
c = this.s.columns,
u = this.s.current.slice();
for (n = l.length - 1; n >= 0; n--)
if (o <= l[n].width) {
d = l[n].name;
break
} var p = this._columnsVisiblity(d);
this.s.current = p;
var h = !1;
for (n = 0, a = c.length; n < a; n++)
if (!1 === p[n] && !c[n].never && !c[n].control && 0 == !s.column(n).visible()) {
h = !0;
break
} e(s.table().node()).toggleClass("collapsed", h);
var f = !1,
g = 0;
s.columns().eq(0).each((function (e, t) {
!0 === p[t] && g++, (i || p[t] !== u[t]) && (f = !0, r._setColumnVis(e, p[t]))
})), f && (this._redrawChildren(), e(s.table().node()).trigger("responsive-resize.dt", [s, this.s.current]), 0 === s.page.info().recordsDisplay && e("td", s.table().body()).eq(0).attr("colspan", g)), r._controlClass()
},
_resizeAuto: function () {
var t = this.s.dt,
i = this.s.columns;
if (this.c.auto && -1 !== e.inArray(!0, e.map(i, (function (e) {
return e.auto
})))) {
e.isEmptyObject(s) || e.each(s, (function (e) {
var i = e.split("-");
o(t, 1 * i[0], 1 * i[1])
})), t.table().node().offsetWidth, t.columns;
var n = t.table().node().cloneNode(!1),
a = e(t.table().header().cloneNode(!1)).appendTo(n),
r = e(t.table().body()).clone(!1, !1).empty().appendTo(n);
n.style.width = "auto";
var l = t.columns().header().filter((function (e) {
return t.column(e).visible()
})).to$().clone(!1).css("display", "table-cell").css("width", "auto").css("min-width", 0);
e(r).append(e(t.rows({
page: "current"
}).nodes()).clone(!1)).find("th, td").css("display", "");
var d = t.table().footer();
if (d) {
var c = e(d.cloneNode(!1)).appendTo(n),
u = t.columns().footer().filter((function (e) {
return t.column(e).visible()
})).to$().clone(!1).css("display", "table-cell");
e("<tr/>").append(u).appendTo(c)
}
e("<tr/>").append(l).appendTo(a), "inline" === this.c.details.type && e(n).addClass("dtr-inline collapsed"), e(n).find("[name]").removeAttr("name"), e(n).css("position", "relative");
var p = e("<div/>").css({
width: 1,
height: 1,
overflow: "hidden",
clear: "both"
}).append(n);
p.insertBefore(t.table().node()), l.each((function (e) {
var n = t.column.index("fromVisible", e);
i[n].minWidth = this.offsetWidth || 0
})), p.remove()
}
},
_responsiveOnlyHidden: function () {
var t = this.s.dt;
return e.map(this.s.current, (function (e, i) {
return !1 === t.column(i).visible() || e
}))
},
_setColumnVis: function (t, i) {
var n = this.s.dt,
a = i ? "" : "none";
e(n.column(t).header()).css("display", a), e(n.column(t).footer()).css("display", a), n.column(t).nodes().to$().css("display", a), e.isEmptyObject(s) || n.cells(null, t).indexes().each((function (e) {
o(n, e.row, e.column)
}))
},
_tabIndexes: function () {
var t = this.s.dt,
i = t.cells({
page: "current"
}).nodes().to$(),
n = t.settings()[0],
a = this.c.details.target;
i.filter("[data-dtr-keyboard]").removeData("[data-dtr-keyboard]"), "number" == typeof a ? t.cells(null, a, {
page: "current"
}).nodes().to$().attr("tabIndex", n.iTabIndex).data("dtr-keyboard", 1) : ("td:first-child, th:first-child" === a && (a = ">td:first-child, >th:first-child"), e(a, t.rows({
page: "current"
}).nodes()).attr("tabIndex", n.iTabIndex).data("dtr-keyboard", 1))
}
}), r.breakpoints = [{
name: "desktop",
width: 1 / 0
}, {
name: "tablet-l",
width: 1024
}, {
name: "tablet-p",
width: 768
}, {
name: "mobile-l",
width: 480
}, {
name: "mobile-p",
width: 320
}], r.display = {
childRow: function (t, i, n) {
return i ? e(t.node()).hasClass("parent") ? (t.child(n(), "child").show(), !0) : void 0 : t.child.isShown() ? (t.child(!1), e(t.node()).removeClass("parent"), !1) : (t.child(n(), "child").show(), e(t.node()).addClass("parent"), !0)
},
childRowImmediate: function (t, i, n) {
return !i && t.child.isShown() || !t.responsive.hasHidden() ? (t.child(!1), e(t.node()).removeClass("parent"), !1) : (t.child(n(), "child").show(), e(t.node()).addClass("parent"), !0)
},
modal: function (t) {
return function (n, a, r) {
if (a) e("div.dtr-modal-content").empty().append(r());
else {
var s = function () {
o.remove(), e(i).off("keypress.dtr")
},
o = e('<div class="dtr-modal"/>').append(e('<div class="dtr-modal-display"/>').append(e('<div class="dtr-modal-content"/>').append(r())).append(e('<div class="dtr-modal-close">×</div>').click((function () {
s()
})))).append(e('<div class="dtr-modal-background"/>').click((function () {
s()
}))).appendTo("body");
e(i).on("keyup.dtr", (function (e) {
27 === e.keyCode && (e.stopPropagation(), s())
}))
}
t && t.header && e("div.dtr-modal-content").prepend("<h2>" + t.header(n) + "</h2>")
}
}
};
var s = {};
function o(e, t, i) {
var a = t + "-" + i;
if (s[a]) {
for (var r = e.cell(t, i).node(), o = s[a][0].parentNode.childNodes, l = [], d = 0, c = o.length; d < c; d++) l.push(o[d]);
for (var u = 0, p = l.length; u < p; u++) r.appendChild(l[u]);
s[a] = n
}
}
r.renderer = {
listHiddenNodes: function () {
return function (t, i, n) {
var a = e('<ul data-dtr-index="' + i + '" class="dtr-details"/>'),
r = !1;
return e.each(n, (function (i, n) {
if (n.hidden) {
var o = n.className ? 'class="' + n.className + '"' : "";
e("<li " + o + ' data-dtr-index="' + n.columnIndex + '" data-dt-row="' + n.rowIndex + '" data-dt-column="' + n.columnIndex + '"><span class="dtr-title">' + n.title + "</span> </li>").append(e('<span class="dtr-data"/>').append(function (e, t, i) {
var n = t + "-" + i;
if (s[n]) return s[n];
for (var a = [], r = e.cell(t, i).node().childNodes, o = 0, l = r.length; o < l; o++) a.push(r[o]);
return s[n] = a, a
}(t, n.rowIndex, n.columnIndex))).appendTo(a), r = !0
}
})), !!r && a
}
},
listHidden: function () {
return function (t, i, n) {
var a = e.map(n, (function (e) {
var t = e.className ? 'class="' + e.className + '"' : "";
return e.hidden ? "<li " + t + ' data-dtr-index="' + e.columnIndex + '" data-dt-row="' + e.rowIndex + '" data-dt-column="' + e.columnIndex + '"><span class="dtr-title">' + e.title + '</span> <span class="dtr-data">' + e.data + "</span></li>" : ""
})).join("");
return !!a && e('<ul data-dtr-index="' + i + '" class="dtr-details"/>').append(a)
}
},
tableAll: function (t) {
return t = e.extend({
tableClass: ""
}, t),
function (i, n, a) {
var r = e.map(a, (function (e) {
return "<tr " + (e.className ? 'class="' + e.className + '"' : "") + ' data-dt-row="' + e.rowIndex + '" data-dt-column="' + e.columnIndex + '"><td>' + e.title + ":</td> <td>" + e.data + "</td></tr>"
})).join("");
return e('<table class="' + t.tableClass + ' dtr-details" width="100%"/>').append(r)
}
}
}, r.defaults = {
breakpoints: r.breakpoints,
auto: !0,
details: {
display: r.display.childRow,
renderer: r.renderer.listHidden(),
target: 0,
type: "inline"
},
orthogonal: "display"
};
var l = e.fn.dataTable.Api;
return l.register("responsive()", (function () {
return this
})), l.register("responsive.index()", (function (t) {
return {
column: (t = e(t)).data("dtr-index"),
row: t.parent().data("dtr-index")
}
})), l.register("responsive.rebuild()", (function () {
return this.iterator("table", (function (e) {
e._responsive && e._responsive._classLogic()
}))
})), l.register("responsive.recalc()", (function () {
return this.iterator("table", (function (e) {
e._responsive && (e._responsive._resizeAuto(), e._responsive._resize())
}))
})), l.register("responsive.hasHidden()", (function () {
var t = this.context[0];
return !!t._responsive && -1 !== e.inArray(!1, t._responsive._responsiveOnlyHidden())
})), l.registerPlural("columns().responsiveHidden()", "column().responsiveHidden()", (function () {
return this.iterator("column", (function (e, t) {
return !!e._responsive && e._responsive._responsiveOnlyHidden()[t]
}), 1)
})), r.version = "2.2.7", e.fn.dataTable.Responsive = r, e.fn.DataTable.Responsive = r, e(i).on("preInit.dt.dtr", (function (t, i, n) {
if ("dt" === t.namespace && (e(i.nTable).hasClass("responsive") || e(i.nTable).hasClass("dt-responsive") || i.oInit.responsive || a.defaults.responsive)) {
var s = i.oInit.responsive;
!1 !== s && new r(i, e.isPlainObject(s) ? s : {})
}
})), r
}(e, window, document)
}.apply(t, n)) || (e.exports = a)
}, function (e, t, i) {
var n, a;
/*! Bootstrap 3 styling wrapper for Scroller
* ©2018 SpryMedia Ltd - datatables.net/license
*/
n = [i(0), i(10), i(58)], void 0 === (a = function (e) {
return function (e, t, i, n) {
return e.fn.dataTable
}(e, window, document)
}.apply(t, n)) || (e.exports = a)
}, function (e, t, i) {
var n, a;
/*! Scroller 2.0.3
* ©2011-2020 SpryMedia Ltd - datatables.net/license
*/
n = [i(0), i(11)], void 0 === (a = function (e) {
return function (e, t, i, n) {
"use strict";
var a = e.fn.dataTable,
r = function (t, a) {
if (this instanceof r) {
a === n && (a = {});
var s = e.fn.dataTable.Api(t);
this.s = {
dt: s.settings()[0],
dtApi: s,
tableTop: 0,
tableBottom: 0,
redrawTop: 0,
redrawBottom: 0,
autoHeight: !0,
viewportRows: 0,
stateTO: null,
stateSaveThrottle: function () { },
drawTO: null,
heights: {
jump: null,
page: null,
virtual: null,
scroll: null,
row: null,
viewport: null,
labelFactor: 1
},
topRowFloat: 0,
scrollDrawDiff: null,
loaderVisible: !1,
forceReposition: !1,
baseRowTop: 0,
baseScrollTop: 0,
mousedown: !1,
lastScrollTop: 0
}, this.s = e.extend(this.s, r.oDefaults, a), this.s.heights.row = this.s.rowHeight, this.dom = {
force: i.createElement("div"),
label: e('<div class="dts_label">0</div>'),
scroller: null,
table: null,
loader: null
}, this.s.dt.oScroller || (this.s.dt.oScroller = this, this.construct())
} else alert("Scroller warning: Scroller must be initialised with the 'new' keyword.")
};
e.extend(r.prototype, {
measure: function (t) {
this.s.autoHeight && this._calcRowHeight();
var i = this.s.heights;
i.row && (i.viewport = this._parseHeight(e(this.dom.scroller).css("max-height")), this.s.viewportRows = parseInt(i.viewport / i.row, 10) + 1, this.s.dt._iDisplayLength = this.s.viewportRows * this.s.displayBuffer);
var a = this.dom.label.outerHeight();
i.labelFactor = (i.viewport - a) / i.scroll, (t === n || t) && this.s.dt.oInstance.fnDraw(!1)
},
pageInfo: function () {
var e = this.s.dt,
t = this.dom.scroller.scrollTop,
i = e.fnRecordsDisplay(),
n = Math.ceil(this.pixelsToRow(t + this.s.heights.viewport, !1, this.s.ani));
return {
start: Math.floor(this.pixelsToRow(t, !1, this.s.ani)),
end: i < n ? i - 1 : n - 1
}
},
pixelsToRow: function (e, t, i) {
var a = e - this.s.baseScrollTop,
r = i ? (this._domain("physicalToVirtual", this.s.baseScrollTop) + a) / this.s.heights.row : a / this.s.heights.row + this.s.baseRowTop;
return t || t === n ? parseInt(r, 10) : r
},
rowToPixels: function (e, t, i) {
var a, r = e - this.s.baseRowTop;
return i ? (a = this._domain("virtualToPhysical", this.s.baseScrollTop), a += r * this.s.heights.row) : (a = this.s.baseScrollTop, a += r * this.s.heights.row), t || t === n ? parseInt(a, 10) : a
},
scrollToRow: function (t, i) {
var a = this,
r = !1,
s = this.rowToPixels(t),
o = t - (this.s.displayBuffer - 1) / 2 * this.s.viewportRows;
o < 0 && (o = 0), (s > this.s.redrawBottom || s < this.s.redrawTop) && this.s.dt._iDisplayStart !== o && (r = !0, s = this._domain("virtualToPhysical", t * this.s.heights.row), this.s.redrawTop < s && s < this.s.redrawBottom && (this.s.forceReposition = !0, i = !1)), i === n || i ? (this.s.ani = r, e(this.dom.scroller).animate({
scrollTop: s
}, (function () {
setTimeout((function () {
a.s.ani = !1
}), 250)
}))) : e(this.dom.scroller).scrollTop(s)
},
construct: function () {
var i = this,
n = this.s.dtApi;
if (this.s.dt.oFeatures.bPaginate) {
this.dom.force.style.position = "relative", this.dom.force.style.top = "0px", this.dom.force.style.left = "0px", this.dom.force.style.width = "1px", this.dom.scroller = e("div." + this.s.dt.oClasses.sScrollBody, this.s.dt.nTableWrapper)[0], this.dom.scroller.appendChild(this.dom.force), this.dom.scroller.style.position = "relative", this.dom.table = e(">table", this.dom.scroller)[0], this.dom.table.style.position = "absolute", this.dom.table.style.top = "0px", this.dom.table.style.left = "0px", e(n.table().container()).addClass("dts DTS"), this.s.loadingIndicator && (this.dom.loader = e('<div class="dataTables_processing dts_loading">' + this.s.dt.oLanguage.sLoadingRecords + "</div>").css("display", "none"), e(this.dom.scroller.parentNode).css("position", "relative").append(this.dom.loader)), this.dom.label.appendTo(this.dom.scroller), this.s.heights.row && "auto" != this.s.heights.row && (this.s.autoHeight = !1), this.s.ingnoreScroll = !0, e(this.dom.scroller).on("scroll.dt-scroller", (function (e) {
i._scroll.call(i)
})), e(this.dom.scroller).on("touchstart.dt-scroller", (function () {
i._scroll.call(i)
})), e(this.dom.scroller).on("mousedown.dt-scroller", (function () {
i.s.mousedown = !0
})).on("mouseup.dt-scroller", (function () {
i.s.labelVisible = !1, i.s.mousedown = !1, i.dom.label.css("display", "none")
})), e(t).on("resize.dt-scroller", (function () {
i.measure(!1), i._info()
}));
var a = !0,
r = n.state.loaded();
n.on("stateSaveParams.scroller", (function (e, t, n) {
a && r ? (n.scroller = r.scroller, a = !1) : n.scroller = {
topRow: i.s.topRowFloat,
baseScrollTop: i.s.baseScrollTop,
baseRowTop: i.s.baseRowTop,
scrollTop: i.s.lastScrollTop
}
})), r && r.scroller && (this.s.topRowFloat = r.scroller.topRow, this.s.baseScrollTop = r.scroller.baseScrollTop, this.s.baseRowTop = r.scroller.baseRowTop), this.measure(!1), i.s.stateSaveThrottle = i.s.dt.oApi._fnThrottle((function () {
i.s.dtApi.state.save()
}), 500), n.on("init.scroller", (function () {
i.measure(!1), i.s.scrollType = "jump", i._draw(), n.on("draw.scroller", (function () {
i._draw()
}))
})), n.on("preDraw.dt.scroller", (function () {
i._scrollForce()
})), n.on("destroy.scroller", (function () {
e(t).off("resize.dt-scroller"), e(i.dom.scroller).off(".dt-scroller"), e(i.s.dt.nTable).off(".scroller"), e(i.s.dt.nTableWrapper).removeClass("DTS"), e("div.DTS_Loading", i.dom.scroller.parentNode).remove(), i.dom.table.style.position = "", i.dom.table.style.top = "", i.dom.table.style.left = ""
}))
} else this.s.dt.oApi._fnLog(this.s.dt, 0, "Pagination must be enabled for Scroller")
},
_calcRowHeight: function () {
var t = this.s.dt,
i = t.nTable,
n = i.cloneNode(!1),
a = e("<tbody/>").appendTo(n),
r = e('<div class="' + t.oClasses.sWrapper + ' DTS"><div class="' + t.oClasses.sScrollWrapper + '"><div class="' + t.oClasses.sScrollBody + '"></div></div></div>');
e("tbody tr:lt(4)", i).clone().appendTo(a);
var s = e("tr", a).length;
if (1 === s) a.prepend("<tr><td> </td></tr>"), a.append("<tr><td> </td></tr>");
else
for (; s < 3; s++) a.append("<tr><td> </td></tr>");
e("div." + t.oClasses.sScrollBody, r).append(n);
var o = this.s.dt.nHolding || i.parentNode;
e(o).is(":visible") || (o = "body"), r.find("input").removeAttr("name"), r.appendTo(o), this.s.heights.row = e("tr", a).eq(1).outerHeight(), r.remove()
},
_draw: function () {
var t = this,
i = this.s.heights,
n = this.dom.scroller.scrollTop,
a = e(this.s.dt.nTable).height(),
r = this.s.dt._iDisplayStart,
s = this.s.dt._iDisplayLength,
o = this.s.dt.fnRecordsDisplay();
this.s.skip = !0, !this.s.dt.bSorted && !this.s.dt.bFiltered || 0 !== r || this.s.dt._drawHold || (this.s.topRowFloat = 0), n = "jump" === this.s.scrollType ? this._domain("virtualToPhysical", this.s.topRowFloat * i.row) : n, this.s.baseScrollTop = n, this.s.baseRowTop = this.s.topRowFloat;
var l = n - (this.s.topRowFloat - r) * i.row;
0 === r ? l = 0 : r + s >= o && (l = i.scroll - a), this.dom.table.style.top = l + "px", this.s.tableTop = l, this.s.tableBottom = a + this.s.tableTop;
var d = (n - this.s.tableTop) * this.s.boundaryScale;
if (this.s.redrawTop = n - d, this.s.redrawBottom = n + d > i.scroll - i.viewport - i.row ? i.scroll - i.viewport - i.row : n + d, this.s.skip = !1, this.s.dt.oFeatures.bStateSave && null !== this.s.dt.oLoadedState && void 0 !== this.s.dt.oLoadedState.scroller) {
var c = !(!this.s.dt.sAjaxSource && !t.s.dt.ajax || this.s.dt.oFeatures.bServerSide);
(c && 2 == this.s.dt.iDraw || !c && 1 == this.s.dt.iDraw) && setTimeout((function () {
e(t.dom.scroller).scrollTop(t.s.dt.oLoadedState.scroller.scrollTop), setTimeout((function () {
t.s.ingnoreScroll = !1
}), 0)
}), 0)
} else t.s.ingnoreScroll = !1;
this.s.dt.oFeatures.bInfo && setTimeout((function () {
t._info.call(t)
}), 0), this.dom.loader && this.s.loaderVisible && (this.dom.loader.css("display", "none"), this.s.loaderVisible = !1)
},
_domain: function (e, t) {
var i, n = this.s.heights;
if (n.virtual === n.scroll) return t;
if (t < 1e4) return t;
if ("virtualToPhysical" === e && t >= n.virtual - 1e4) return i = n.virtual - t, n.scroll - i;
if ("physicalToVirtual" === e && t >= n.scroll - 1e4) return i = n.scroll - t, n.virtual - i;
var a = (n.virtual - 1e4 - 1e4) / (n.scroll - 1e4 - 1e4),
r = 1e4 - 1e4 * a;
return "virtualToPhysical" === e ? (t - r) / a : a * t + r
},
_info: function () {
if (this.s.dt.oFeatures.bInfo) {
var t, i = this.s.dt,
n = i.oLanguage,
a = this.dom.scroller.scrollTop,
r = Math.floor(this.pixelsToRow(a, !1, this.s.ani) + 1),
s = i.fnRecordsTotal(),
o = i.fnRecordsDisplay(),
l = Math.ceil(this.pixelsToRow(a + this.s.heights.viewport, !1, this.s.ani)),
d = o < l ? o : l,
c = i.fnFormatNumber(r),
u = i.fnFormatNumber(d),
p = i.fnFormatNumber(s),
h = i.fnFormatNumber(o);
t = 0 === i.fnRecordsDisplay() && i.fnRecordsDisplay() == i.fnRecordsTotal() ? n.sInfoEmpty + n.sInfoPostFix : 0 === i.fnRecordsDisplay() ? n.sInfoEmpty + " " + n.sInfoFiltered.replace("_MAX_", p) + n.sInfoPostFix : i.fnRecordsDisplay() == i.fnRecordsTotal() ? n.sInfo.replace("_START_", c).replace("_END_", u).replace("_MAX_", p).replace("_TOTAL_", h) + n.sInfoPostFix : n.sInfo.replace("_START_", c).replace("_END_", u).replace("_MAX_", p).replace("_TOTAL_", h) + " " + n.sInfoFiltered.replace("_MAX_", i.fnFormatNumber(i.fnRecordsTotal())) + n.sInfoPostFix;
var f = n.fnInfoCallback;
f && (t = f.call(i.oInstance, i, r, d, s, o, t));
var g = i.aanFeatures.i;
if (void 0 !== g)
for (var m = 0, v = g.length; m < v; m++) e(g[m]).html(t);
e(i.nTable).triggerHandler("info.dt")
}
},
_parseHeight: function (i) {
var n, a = /^([+-]?(?:\d+(?:\.\d+)?|\.\d+))(px|em|rem|vh)$/.exec(i);
if (null === a) return 0;
var r = parseFloat(a[1]),
s = a[2];
return "px" === s ? n = r : "vh" === s ? n = r / 100 * e(t).height() : "rem" === s ? n = r * parseFloat(e(":root").css("font-size")) : "em" === s && (n = r * parseFloat(e("body").css("font-size"))), n || 0
},
_scroll: function () {
var t, i = this,
n = this.s.heights,
a = this.dom.scroller.scrollTop;
if (!this.s.skip && !this.s.ingnoreScroll && a !== this.s.lastScrollTop)
if (this.s.dt.bFiltered || this.s.dt.bSorted) this.s.lastScrollTop = 0;
else {
if (this._info(), clearTimeout(this.s.stateTO), this.s.stateTO = setTimeout((function () {
i.s.dtApi.state.save()
}), 250), this.s.scrollType = Math.abs(a - this.s.lastScrollTop) > n.viewport ? "jump" : "cont", this.s.topRowFloat = "cont" === this.s.scrollType ? this.pixelsToRow(a, !1, !1) : this._domain("physicalToVirtual", a) / n.row, this.s.topRowFloat < 0 && (this.s.topRowFloat = 0), this.s.forceReposition || a < this.s.redrawTop || a > this.s.redrawBottom) {
var r = Math.ceil((this.s.displayBuffer - 1) / 2 * this.s.viewportRows);
if (t = parseInt(this.s.topRowFloat, 10) - r, this.s.forceReposition = !1, t <= 0 ? t = 0 : t + this.s.dt._iDisplayLength > this.s.dt.fnRecordsDisplay() ? (t = this.s.dt.fnRecordsDisplay() - this.s.dt._iDisplayLength) < 0 && (t = 0) : t % 2 != 0 && t++, this.s.targetTop = t, t != this.s.dt._iDisplayStart) {
this.s.tableTop = e(this.s.dt.nTable).offset().top, this.s.tableBottom = e(this.s.dt.nTable).height() + this.s.tableTop;
var s = function () {
i.s.dt._iDisplayStart = i.s.targetTop, i.s.dt.oApi._fnDraw(i.s.dt)
};
this.s.dt.oFeatures.bServerSide ? (this.s.forceReposition = !0, clearTimeout(this.s.drawTO), this.s.drawTO = setTimeout(s, this.s.serverWait)) : s(), this.dom.loader && !this.s.loaderVisible && (this.dom.loader.css("display", "block"), this.s.loaderVisible = !0)
}
} else this.s.topRowFloat = this.pixelsToRow(a, !1, !0);
this.s.lastScrollTop = a, this.s.stateSaveThrottle(), "jump" === this.s.scrollType && this.s.mousedown && (this.s.labelVisible = !0), this.s.labelVisible && this.dom.label.html(this.s.dt.fnFormatNumber(parseInt(this.s.topRowFloat, 10) + 1)).css("top", a + a * n.labelFactor).css("display", "block")
}
},
_scrollForce: function () {
var e = this.s.heights;
e.virtual = e.row * this.s.dt.fnRecordsDisplay(), e.scroll = e.virtual, e.scroll > 1e6 && (e.scroll = 1e6), this.dom.force.style.height = e.scroll > this.s.heights.row ? e.scroll + "px" : this.s.heights.row + "px"
}
}), r.defaults = {
boundaryScale: .5,
displayBuffer: 9,
loadingIndicator: !1,
rowHeight: "auto",
serverWait: 200
}, r.oDefaults = r.defaults, r.version = "2.0.3", e(i).on("preInit.dt.dtscroller", (function (t, i) {
if ("dt" === t.namespace) {
var n = i.oInit.scroller,
s = a.defaults.scroller;
if (n || s) {
var o = e.extend({}, n, s);
!1 !== n && new r(i, o)
}
}
})), e.fn.dataTable.Scroller = r, e.fn.DataTable.Scroller = r;
var s = e.fn.dataTable.Api;
return s.register("scroller()", (function () {
return this
})), s.register("scroller().rowToPixels()", (function (e, t, i) {
var n = this.context;
if (n.length && n[0].oScroller) return n[0].oScroller.rowToPixels(e, t, i)
})), s.register("scroller().pixelsToRow()", (function (e, t, i) {
var n = this.context;
if (n.length && n[0].oScroller) return n[0].oScroller.pixelsToRow(e, t, i)
})), s.register(["scroller().scrollToRow()", "scroller.toPosition()"], (function (e, t) {
return this.iterator("table", (function (i) {
i.oScroller && i.oScroller.scrollToRow(e, t)
})), this
})), s.register("row().scrollTo()", (function (e) {
var t = this;
return this.iterator("row", (function (i, n) {
if (i.oScroller) {
var a = t.rows({
order: "applied",
search: "applied"
}).indexes().indexOf(n);
i.oScroller.scrollToRow(a, e)
}
})), this
})), s.register("scroller.measure()", (function (e) {
return this.iterator("table", (function (t) {
t.oScroller && t.oScroller.measure(e)
})), this
})), s.register("scroller.page()", (function () {
var e = this.context;
if (e.length && e[0].oScroller) return e[0].oScroller.pageInfo()
})), r
}(e, window, document)
}.apply(t, n)) || (e.exports = a)
}, function (e, t, i) {
var n, a, r;
/*!
* jQuery UI Datepicker 1.12.1
* http://jqueryui.com
*
* Copyright jQuery Foundation and other contributors
* Released under the MIT license.
* http://jquery.org/license
*/
a = [i(0), i(15), i(60)], void 0 === (r = "function" == typeof (n = function (e) {
var t;
function i() {
this._curInst = null, this._keyEvent = !1, this._disabledInputs = [], this._datepickerShowing = !1, this._inDialog = !1, this._mainDivId = "ui-datepicker-div", this._inlineClass = "ui-datepicker-inline", this._appendClass = "ui-datepicker-append", this._triggerClass = "ui-datepicker-trigger", this._dialogClass = "ui-datepicker-dialog", this._disableClass = "ui-datepicker-disabled", this._unselectableClass = "ui-datepicker-unselectable", this._currentClass = "ui-datepicker-current-day", this._dayOverClass = "ui-datepicker-days-cell-over", this.regional = [], this.regional[""] = {
closeText: "Done",
prevText: "Prev",
nextText: "Next",
currentText: "Today",
monthNames: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
monthNamesShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
dayNames: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
dayNamesShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
dayNamesMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
weekHeader: "Wk",
dateFormat: "mm/dd/yy",
firstDay: 0,
isRTL: !1,
showMonthAfterYear: !1,
yearSuffix: ""
}, this._defaults = {
showOn: "focus",
showAnim: "fadeIn",
showOptions: {},
defaultDate: null,
appendText: "",
buttonText: "...",
buttonImage: "",
buttonImageOnly: !1,
hideIfNoPrevNext: !1,
navigationAsDateFormat: !1,
gotoCurrent: !1,
changeMonth: !1,
changeYear: !1,
yearRange: "c-10:c+10",
showOtherMonths: !1,
selectOtherMonths: !1,
showWeek: !1,
calculateWeek: this.iso8601Week,
shortYearCutoff: "+10",
minDate: null,
maxDate: null,
duration: "fast",
beforeShowDay: null,
beforeShow: null,
onSelect: null,
onChangeMonthYear: null,
onClose: null,
numberOfMonths: 1,
showCurrentAtPos: 0,
stepMonths: 1,
stepBigMonths: 12,
altField: "",
altFormat: "",
constrainInput: !0,
showButtonPanel: !1,
autoSize: !1,
disabled: !1
}, e.extend(this._defaults, this.regional[""]), this.regional.en = e.extend(!0, {}, this.regional[""]), this.regional["en-US"] = e.extend(!0, {}, this.regional.en), this.dpDiv = n(e("<div id='" + this._mainDivId + "' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>"))
}
function n(t) {
var i = "button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";
return t.on("mouseout", i, (function () {
e(this).removeClass("ui-state-hover"), -1 !== this.className.indexOf("ui-datepicker-prev") && e(this).removeClass("ui-datepicker-prev-hover"), -1 !== this.className.indexOf("ui-datepicker-next") && e(this).removeClass("ui-datepicker-next-hover")
})).on("mouseover", i, a)
}
function a() {
e.datepicker._isDisabledDatepicker(t.inline ? t.dpDiv.parent()[0] : t.input[0]) || (e(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"), e(this).addClass("ui-state-hover"), -1 !== this.className.indexOf("ui-datepicker-prev") && e(this).addClass("ui-datepicker-prev-hover"), -1 !== this.className.indexOf("ui-datepicker-next") && e(this).addClass("ui-datepicker-next-hover"))
}
function r(t, i) {
for (var n in e.extend(t, i), i) null == i[n] && (t[n] = i[n]);
return t
}
return e.extend(e.ui, {
datepicker: {
version: "1.12.1"
}
}), e.extend(i.prototype, {
markerClassName: "hasDatepicker",
maxRows: 4,
_widgetDatepicker: function () {
return this.dpDiv
},
setDefaults: function (e) {
return r(this._defaults, e || {}), this
},
_attachDatepicker: function (t, i) {
var n, a, r;
a = "div" === (n = t.nodeName.toLowerCase()) || "span" === n, t.id || (this.uuid += 1, t.id = "dp" + this.uuid), (r = this._newInst(e(t), a)).settings = e.extend({}, i || {}), "input" === n ? this._connectDatepicker(t, r) : a && this._inlineDatepicker(t, r)
},
_newInst: function (t, i) {
return {
id: t[0].id.replace(/([^A-Za-z0-9_\-])/g, "\\\\$1"),
input: t,
selectedDay: 0,
selectedMonth: 0,
selectedYear: 0,
drawMonth: 0,
drawYear: 0,
inline: i,
dpDiv: i ? n(e("<div class='" + this._inlineClass + " ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")) : this.dpDiv
}
},
_connectDatepicker: function (t, i) {
var n = e(t);
i.append = e([]), i.trigger = e([]), n.hasClass(this.markerClassName) || (this._attachments(n, i), n.addClass(this.markerClassName).on("keydown", this._doKeyDown).on("keypress", this._doKeyPress).on("keyup", this._doKeyUp), this._autoSize(i), e.data(t, "datepicker", i), i.settings.disabled && this._disableDatepicker(t))
},
_attachments: function (t, i) {
var n, a, r, s = this._get(i, "appendText"),
o = this._get(i, "isRTL");
i.append && i.append.remove(), s && (i.append = e("<span class='" + this._appendClass + "'>" + s + "</span>"), t[o ? "before" : "after"](i.append)), t.off("focus", this._showDatepicker), i.trigger && i.trigger.remove(), "focus" !== (n = this._get(i, "showOn")) && "both" !== n || t.on("focus", this._showDatepicker), "button" !== n && "both" !== n || (a = this._get(i, "buttonText"), r = this._get(i, "buttonImage"), i.trigger = e(this._get(i, "buttonImageOnly") ? e("<img/>").addClass(this._triggerClass).attr({
src: r,
alt: a,
title: a
}) : e("<button type='button'></button>").addClass(this._triggerClass).html(r ? e("<img/>").attr({
src: r,
alt: a,
title: a
}) : a)), t[o ? "before" : "after"](i.trigger), i.trigger.on("click", (function () {
return e.datepicker._datepickerShowing && e.datepicker._lastInput === t[0] ? e.datepicker._hideDatepicker() : e.datepicker._datepickerShowing && e.datepicker._lastInput !== t[0] ? (e.datepicker._hideDatepicker(), e.datepicker._showDatepicker(t[0])) : e.datepicker._showDatepicker(t[0]), !1
})))
},
_autoSize: function (e) {
if (this._get(e, "autoSize") && !e.inline) {
var t, i, n, a, r = new Date(2009, 11, 20),
s = this._get(e, "dateFormat");
s.match(/[DM]/) && (t = function (e) {
for (i = 0, n = 0, a = 0; a < e.length; a++) e[a].length > i && (i = e[a].length, n = a);
return n
}, r.setMonth(t(this._get(e, s.match(/MM/) ? "monthNames" : "monthNamesShort"))), r.setDate(t(this._get(e, s.match(/DD/) ? "dayNames" : "dayNamesShort")) + 20 - r.getDay())), e.input.attr("size", this._formatDate(e, r).length)
}
},
_inlineDatepicker: function (t, i) {
var n = e(t);
n.hasClass(this.markerClassName) || (n.addClass(this.markerClassName).append(i.dpDiv), e.data(t, "datepicker", i), this._setDate(i, this._getDefaultDate(i), !0), this._updateDatepicker(i), this._updateAlternate(i), i.settings.disabled && this._disableDatepicker(t), i.dpDiv.css("display", "block"))
},
_dialogDatepicker: function (t, i, n, a, s) {
var o, l, d, c, u, p = this._dialogInst;
return p || (this.uuid += 1, o = "dp" + this.uuid, this._dialogInput = e("<input type='text' id='" + o + "' style='position: absolute; top: -100px; width: 0px;'/>"), this._dialogInput.on("keydown", this._doKeyDown), e("body").append(this._dialogInput), (p = this._dialogInst = this._newInst(this._dialogInput, !1)).settings = {}, e.data(this._dialogInput[0], "datepicker", p)), r(p.settings, a || {}), i = i && i.constructor === Date ? this._formatDate(p, i) : i, this._dialogInput.val(i), this._pos = s ? s.length ? s : [s.pageX, s.pageY] : null, this._pos || (l = document.documentElement.clientWidth, d = document.documentElement.clientHeight, c = document.documentElement.scrollLeft || document.body.scrollLeft, u = document.documentElement.scrollTop || document.body.scrollTop, this._pos = [l / 2 - 100 + c, d / 2 - 150 + u]), this._dialogInput.css("left", this._pos[0] + 20 + "px").css("top", this._pos[1] + "px"), p.settings.onSelect = n, this._inDialog = !0, this.dpDiv.addClass(this._dialogClass), this._showDatepicker(this._dialogInput[0]), e.blockUI && e.blockUI(this.dpDiv), e.data(this._dialogInput[0], "datepicker", p), this
},
_destroyDatepicker: function (i) {
var n, a = e(i),
r = e.data(i, "datepicker");
a.hasClass(this.markerClassName) && (n = i.nodeName.toLowerCase(), e.removeData(i, "datepicker"), "input" === n ? (r.append.remove(), r.trigger.remove(), a.removeClass(this.markerClassName).off("focus", this._showDatepicker).off("keydown", this._doKeyDown).off("keypress", this._doKeyPress).off("keyup", this._doKeyUp)) : "div" !== n && "span" !== n || a.removeClass(this.markerClassName).empty(), t === r && (t = null))
},
_enableDatepicker: function (t) {
var i, n, a = e(t),
r = e.data(t, "datepicker");
a.hasClass(this.markerClassName) && ("input" === (i = t.nodeName.toLowerCase()) ? (t.disabled = !1, r.trigger.filter("button").each((function () {
this.disabled = !1
})).end().filter("img").css({
opacity: "1.0",
cursor: ""
})) : "div" !== i && "span" !== i || ((n = a.children("." + this._inlineClass)).children().removeClass("ui-state-disabled"), n.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled", !1)), this._disabledInputs = e.map(this._disabledInputs, (function (e) {
return e === t ? null : e
})))
},
_disableDatepicker: function (t) {
var i, n, a = e(t),
r = e.data(t, "datepicker");
a.hasClass(this.markerClassName) && ("input" === (i = t.nodeName.toLowerCase()) ? (t.disabled = !0, r.trigger.filter("button").each((function () {
this.disabled = !0
})).end().filter("img").css({
opacity: "0.5",
cursor: "default"
})) : "div" !== i && "span" !== i || ((n = a.children("." + this._inlineClass)).children().addClass("ui-state-disabled"), n.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled", !0)), this._disabledInputs = e.map(this._disabledInputs, (function (e) {
return e === t ? null : e
})), this._disabledInputs[this._disabledInputs.length] = t)
},
_isDisabledDatepicker: function (e) {
if (!e) return !1;
for (var t = 0; t < this._disabledInputs.length; t++)
if (this._disabledInputs[t] === e) return !0;
return !1
},
_getInst: function (t) {
try {
return e.data(t, "datepicker")
} catch (e) {
throw "Missing instance data for this datepicker"
}
},
_optionDatepicker: function (t, i, n) {
var a, s, o, l, d = this._getInst(t);
if (2 === arguments.length && "string" == typeof i) return "defaults" === i ? e.extend({}, e.datepicker._defaults) : d ? "all" === i ? e.extend({}, d.settings) : this._get(d, i) : null;
a = i || {}, "string" == typeof i && ((a = {})[i] = n), d && (this._curInst === d && this._hideDatepicker(), s = this._getDateDatepicker(t, !0), o = this._getMinMaxDate(d, "min"), l = this._getMinMaxDate(d, "max"), r(d.settings, a), null !== o && void 0 !== a.dateFormat && void 0 === a.minDate && (d.settings.minDate = this._formatDate(d, o)), null !== l && void 0 !== a.dateFormat && void 0 === a.maxDate && (d.settings.maxDate = this._formatDate(d, l)), "disabled" in a && (a.disabled ? this._disableDatepicker(t) : this._enableDatepicker(t)), this._attachments(e(t), d), this._autoSize(d), this._setDate(d, s), this._updateAlternate(d), this._updateDatepicker(d))
},
_changeDatepicker: function (e, t, i) {
this._optionDatepicker(e, t, i)
},
_refreshDatepicker: function (e) {
var t = this._getInst(e);
t && this._updateDatepicker(t)
},
_setDateDatepicker: function (e, t) {
var i = this._getInst(e);
i && (this._setDate(i, t), this._updateDatepicker(i), this._updateAlternate(i))
},
_getDateDatepicker: function (e, t) {
var i = this._getInst(e);
return i && !i.inline && this._setDateFromField(i, t), i ? this._getDate(i) : null
},
_doKeyDown: function (t) {
var i, n, a, r = e.datepicker._getInst(t.target),
s = !0,
o = r.dpDiv.is(".ui-datepicker-rtl");
if (r._keyEvent = !0, e.datepicker._datepickerShowing) switch (t.keyCode) {
case 9:
e.datepicker._hideDatepicker(), s = !1;
break;
case 13:
return (a = e("td." + e.datepicker._dayOverClass + ":not(." + e.datepicker._currentClass + ")", r.dpDiv))[0] && e.datepicker._selectDay(t.target, r.selectedMonth, r.selectedYear, a[0]), (i = e.datepicker._get(r, "onSelect")) ? (n = e.datepicker._formatDate(r), i.apply(r.input ? r.input[0] : null, [n, r])) : e.datepicker._hideDatepicker(), !1;
case 27:
e.datepicker._hideDatepicker();
break;
case 33:
e.datepicker._adjustDate(t.target, t.ctrlKey ? -e.datepicker._get(r, "stepBigMonths") : -e.datepicker._get(r, "stepMonths"), "M");
break;
case 34:
e.datepicker._adjustDate(t.target, t.ctrlKey ? +e.datepicker._get(r, "stepBigMonths") : +e.datepicker._get(r, "stepMonths"), "M");
break;
case 35:
(t.ctrlKey || t.metaKey) && e.datepicker._clearDate(t.target), s = t.ctrlKey || t.metaKey;
break;
case 36:
(t.ctrlKey || t.metaKey) && e.datepicker._gotoToday(t.target), s = t.ctrlKey || t.metaKey;
break;
case 37:
(t.ctrlKey || t.metaKey) && e.datepicker._adjustDate(t.target, o ? 1 : -1, "D"), s = t.ctrlKey || t.metaKey, t.originalEvent.altKey && e.datepicker._adjustDate(t.target, t.ctrlKey ? -e.datepicker._get(r, "stepBigMonths") : -e.datepicker._get(r, "stepMonths"), "M");
break;
case 38:
(t.ctrlKey || t.metaKey) && e.datepicker._adjustDate(t.target, -7, "D"), s = t.ctrlKey || t.metaKey;
break;
case 39:
(t.ctrlKey || t.metaKey) && e.datepicker._adjustDate(t.target, o ? -1 : 1, "D"), s = t.ctrlKey || t.metaKey, t.originalEvent.altKey && e.datepicker._adjustDate(t.target, t.ctrlKey ? +e.datepicker._get(r, "stepBigMonths") : +e.datepicker._get(r, "stepMonths"), "M");
break;
case 40:
(t.ctrlKey || t.metaKey) && e.datepicker._adjustDate(t.target, 7, "D"), s = t.ctrlKey || t.metaKey;
break;
default:
s = !1
} else 36 === t.keyCode && t.ctrlKey ? e.datepicker._showDatepicker(this) : s = !1;
s && (t.preventDefault(), t.stopPropagation())
},
_doKeyPress: function (t) {
var i, n, a = e.datepicker._getInst(t.target);
if (e.datepicker._get(a, "constrainInput")) return i = e.datepicker._possibleChars(e.datepicker._get(a, "dateFormat")), n = String.fromCharCode(null == t.charCode ? t.keyCode : t.charCode), t.ctrlKey || t.metaKey || n < " " || !i || i.indexOf(n) > -1
},
_doKeyUp: function (t) {
var i = e.datepicker._getInst(t.target);
if (i.input.val() !== i.lastVal) try {
e.datepicker.parseDate(e.datepicker._get(i, "dateFormat"), i.input ? i.input.val() : null, e.datepicker._getFormatConfig(i)) && (e.datepicker._setDateFromField(i), e.datepicker._updateAlternate(i), e.datepicker._updateDatepicker(i))
} catch (e) { }
return !0
},
_showDatepicker: function (t) {
var i, n, a, s, o, l, d;
"input" !== (t = t.target || t).nodeName.toLowerCase() && (t = e("input", t.parentNode)[0]), e.datepicker._isDisabledDatepicker(t) || e.datepicker._lastInput === t || (i = e.datepicker._getInst(t), e.datepicker._curInst && e.datepicker._curInst !== i && (e.datepicker._curInst.dpDiv.stop(!0, !0), i && e.datepicker._datepickerShowing && e.datepicker._hideDatepicker(e.datepicker._curInst.input[0])), !1 !== (a = (n = e.datepicker._get(i, "beforeShow")) ? n.apply(t, [t, i]) : {}) && (r(i.settings, a), i.lastVal = null, e.datepicker._lastInput = t, e.datepicker._setDateFromField(i), e.datepicker._inDialog && (t.value = ""), e.datepicker._pos || (e.datepicker._pos = e.datepicker._findPos(t), e.datepicker._pos[1] += t.offsetHeight), s = !1, e(t).parents().each((function () {
return !(s |= "fixed" === e(this).css("position"))
})), o = {
left: e.datepicker._pos[0],
top: e.datepicker._pos[1]
}, e.datepicker._pos = null, i.dpDiv.empty(), i.dpDiv.css({
position: "absolute",
display: "block",
top: "-1000px"
}), e.datepicker._updateDatepicker(i), o = e.datepicker._checkOffset(i, o, s), i.dpDiv.css({
position: e.datepicker._inDialog && e.blockUI ? "static" : s ? "fixed" : "absolute",
display: "none",
left: o.left + "px",
top: o.top + "px"
}), i.inline || (l = e.datepicker._get(i, "showAnim"), d = e.datepicker._get(i, "duration"), i.dpDiv.css("z-index", function (e) {
for (var t, i; e.length && e[0] !== document;) {
if (("absolute" === (t = e.css("position")) || "relative" === t || "fixed" === t) && (i = parseInt(e.css("zIndex"), 10), !isNaN(i) && 0 !== i)) return i;
e = e.parent()
}
return 0
}(e(t)) + 1), e.datepicker._datepickerShowing = !0, e.effects && e.effects.effect[l] ? i.dpDiv.show(l, e.datepicker._get(i, "showOptions"), d) : i.dpDiv[l || "show"](l ? d : null), e.datepicker._shouldFocusInput(i) && i.input.trigger("focus"), e.datepicker._curInst = i)))
},
_updateDatepicker: function (i) {
this.maxRows = 4, t = i, i.dpDiv.empty().append(this._generateHTML(i)), this._attachHandlers(i);
var n, r = this._getNumberOfMonths(i),
s = r[1],
o = i.dpDiv.find("." + this._dayOverClass + " a");
o.length > 0 && a.apply(o.get(0)), i.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""), s > 1 && i.dpDiv.addClass("ui-datepicker-multi-" + s).css("width", 17 * s + "em"), i.dpDiv[(1 !== r[0] || 1 !== r[1] ? "add" : "remove") + "Class"]("ui-datepicker-multi"), i.dpDiv[(this._get(i, "isRTL") ? "add" : "remove") + "Class"]("ui-datepicker-rtl"), i === e.datepicker._curInst && e.datepicker._datepickerShowing && e.datepicker._shouldFocusInput(i) && i.input.trigger("focus"), i.yearshtml && (n = i.yearshtml, setTimeout((function () {
n === i.yearshtml && i.yearshtml && i.dpDiv.find("select.ui-datepicker-year:first").replaceWith(i.yearshtml), n = i.yearshtml = null
}), 0))
},
_shouldFocusInput: function (e) {
return e.input && e.input.is(":visible") && !e.input.is(":disabled") && !e.input.is(":focus")
},
_checkOffset: function (t, i, n) {
var a = t.dpDiv.outerWidth(),
r = t.dpDiv.outerHeight(),
s = t.input ? t.input.outerWidth() : 0,
o = t.input ? t.input.outerHeight() : 0,
l = document.documentElement.clientWidth + (n ? 0 : e(document).scrollLeft()),
d = document.documentElement.clientHeight + (n ? 0 : e(document).scrollTop());
return i.left -= this._get(t, "isRTL") ? a - s : 0, i.left -= n && i.left === t.input.offset().left ? e(document).scrollLeft() : 0, i.top -= n && i.top === t.input.offset().top + o ? e(document).scrollTop() : 0, i.left -= Math.min(i.left, i.left + a > l && l > a ? Math.abs(i.left + a - l) : 0), i.top -= Math.min(i.top, i.top + r > d && d > r ? Math.abs(r + o) : 0), i
},
_findPos: function (t) {
for (var i, n = this._getInst(t), a = this._get(n, "isRTL"); t && ("hidden" === t.type || 1 !== t.nodeType || e.expr.filters.hidden(t));) t = t[a ? "previousSibling" : "nextSibling"];
return [(i = e(t).offset()).left, i.top]
},
_hideDatepicker: function (t) {
var i, n, a, r, s = this._curInst;
!s || t && s !== e.data(t, "datepicker") || this._datepickerShowing && (i = this._get(s, "showAnim"), n = this._get(s, "duration"), a = function () {
e.datepicker._tidyDialog(s)
}, e.effects && (e.effects.effect[i] || e.effects[i]) ? s.dpDiv.hide(i, e.datepicker._get(s, "showOptions"), n, a) : s.dpDiv["slideDown" === i ? "slideUp" : "fadeIn" === i ? "fadeOut" : "hide"](i ? n : null, a), i || a(), this._datepickerShowing = !1, (r = this._get(s, "onClose")) && r.apply(s.input ? s.input[0] : null, [s.input ? s.input.val() : "", s]), this._lastInput = null, this._inDialog && (this._dialogInput.css({
position: "absolute",
left: "0",
top: "-100px"
}), e.blockUI && (e.unblockUI(), e("body").append(this.dpDiv))), this._inDialog = !1)
},
_tidyDialog: function (e) {
e.dpDiv.removeClass(this._dialogClass).off(".ui-datepicker-calendar")
},
_checkExternalClick: function (t) {
if (e.datepicker._curInst) {
var i = e(t.target),
n = e.datepicker._getInst(i[0]);
(i[0].id === e.datepicker._mainDivId || 0 !== i.parents("#" + e.datepicker._mainDivId).length || i.hasClass(e.datepicker.markerClassName) || i.closest("." + e.datepicker._triggerClass).length || !e.datepicker._datepickerShowing || e.datepicker._inDialog && e.blockUI) && (!i.hasClass(e.datepicker.markerClassName) || e.datepicker._curInst === n) || e.datepicker._hideDatepicker()
}
},
_adjustDate: function (t, i, n) {
var a = e(t),
r = this._getInst(a[0]);
this._isDisabledDatepicker(a[0]) || (this._adjustInstDate(r, i + ("M" === n ? this._get(r, "showCurrentAtPos") : 0), n), this._updateDatepicker(r))
},
_gotoToday: function (t) {
var i, n = e(t),
a = this._getInst(n[0]);
this._get(a, "gotoCurrent") && a.currentDay ? (a.selectedDay = a.currentDay, a.drawMonth = a.selectedMonth = a.currentMonth, a.drawYear = a.selectedYear = a.currentYear) : (i = new Date, a.selectedDay = i.getDate(), a.drawMonth = a.selectedMonth = i.getMonth(), a.drawYear = a.selectedYear = i.getFullYear()), this._notifyChange(a), this._adjustDate(n)
},
_selectMonthYear: function (t, i, n) {
var a = e(t),
r = this._getInst(a[0]);
r["selected" + ("M" === n ? "Month" : "Year")] = r["draw" + ("M" === n ? "Month" : "Year")] = parseInt(i.options[i.selectedIndex].value, 10), this._notifyChange(r), this._adjustDate(a)
},
_selectDay: function (t, i, n, a) {
var r, s = e(t);
e(a).hasClass(this._unselectableClass) || this._isDisabledDatepicker(s[0]) || ((r = this._getInst(s[0])).selectedDay = r.currentDay = e("a", a).html(), r.selectedMonth = r.currentMonth = i, r.selectedYear = r.currentYear = n, this._selectDate(t, this._formatDate(r, r.currentDay, r.currentMonth, r.currentYear)))
},
_clearDate: function (t) {
var i = e(t);
this._selectDate(i, "")
},
_selectDate: function (t, i) {
var n, a = e(t),
r = this._getInst(a[0]);
i = null != i ? i : this._formatDate(r), r.input && r.input.val(i), this._updateAlternate(r), (n = this._get(r, "onSelect")) ? n.apply(r.input ? r.input[0] : null, [i, r]) : r.input && r.input.trigger("change"), r.inline ? this._updateDatepicker(r) : (this._hideDatepicker(), this._lastInput = r.input[0], "object" != typeof r.input[0] && r.input.trigger("focus"), this._lastInput = null)
},
_updateAlternate: function (t) {
var i, n, a, r = this._get(t, "altField");
r && (i = this._get(t, "altFormat") || this._get(t, "dateFormat"), n = this._getDate(t), a = this.formatDate(i, n, this._getFormatConfig(t)), e(r).val(a))
},
noWeekends: function (e) {
var t = e.getDay();
return [t > 0 && t < 6, ""]
},
iso8601Week: function (e) {
var t, i = new Date(e.getTime());
return i.setDate(i.getDate() + 4 - (i.getDay() || 7)), t = i.getTime(), i.setMonth(0), i.setDate(1), Math.floor(Math.round((t - i) / 864e5) / 7) + 1
},
parseDate: function (t, i, n) {
if (null == t || null == i) throw "Invalid arguments";
if ("" === (i = "object" == typeof i ? i.toString() : i + "")) return null;
var a, r, s, o, l = 0,
d = (n ? n.shortYearCutoff : null) || this._defaults.shortYearCutoff,
c = "string" != typeof d ? d : (new Date).getFullYear() % 100 + parseInt(d, 10),
u = (n ? n.dayNamesShort : null) || this._defaults.dayNamesShort,
p = (n ? n.dayNames : null) || this._defaults.dayNames,
h = (n ? n.monthNamesShort : null) || this._defaults.monthNamesShort,
f = (n ? n.monthNames : null) || this._defaults.monthNames,
g = -1,
m = -1,
v = -1,
b = -1,
y = !1,
w = function (e) {
var i = a + 1 < t.length && t.charAt(a + 1) === e;
return i && a++, i
},
S = function (e) {
var t = w(e),
n = "@" === e ? 14 : "!" === e ? 20 : "y" === e && t ? 4 : "o" === e ? 3 : 2,
a = new RegExp("^\\d{" + ("y" === e ? n : 1) + "," + n + "}"),
r = i.substring(l).match(a);
if (!r) throw "Missing number at position " + l;
return l += r[0].length, parseInt(r[0], 10)
},
x = function (t, n, a) {
var r = -1,
s = e.map(w(t) ? a : n, (function (e, t) {
return [
[t, e]
]
})).sort((function (e, t) {
return -(e[1].length - t[1].length)
}));
if (e.each(s, (function (e, t) {
var n = t[1];
if (i.substr(l, n.length).toLowerCase() === n.toLowerCase()) return r = t[0], l += n.length, !1
})), -1 !== r) return r + 1;
throw "Unknown name at position " + l
},
_ = function () {
if (i.charAt(l) !== t.charAt(a)) throw "Unexpected literal at position " + l;
l++
};
for (a = 0; a < t.length; a++)
if (y) "'" !== t.charAt(a) || w("'") ? _() : y = !1;
else switch (t.charAt(a)) {
case "d":
v = S("d");
break;
case "D":
x("D", u, p);
break;
case "o":
b = S("o");
break;
case "m":
m = S("m");
break;
case "M":
m = x("M", h, f);
break;
case "y":
g = S("y");
break;
case "@":
g = (o = new Date(S("@"))).getFullYear(), m = o.getMonth() + 1, v = o.getDate();
break;
case "!":
g = (o = new Date((S("!") - this._ticksTo1970) / 1e4)).getFullYear(), m = o.getMonth() + 1, v = o.getDate();
break;
case "'":
w("'") ? _() : y = !0;
break;
default:
_()
}
if (l < i.length && (s = i.substr(l), !/^\s+/.test(s))) throw "Extra/unparsed characters found in date: " + s;
if (-1 === g ? g = (new Date).getFullYear() : g < 100 && (g += (new Date).getFullYear() - (new Date).getFullYear() % 100 + (g <= c ? 0 : -100)), b > -1)
for (m = 1, v = b; !(v <= (r = this._getDaysInMonth(g, m - 1)));) m++, v -= r;
if ((o = this._daylightSavingAdjust(new Date(g, m - 1, v))).getFullYear() !== g || o.getMonth() + 1 !== m || o.getDate() !== v) throw "Invalid date";
return o
},
ATOM: "yy-mm-dd",
COOKIE: "D, dd M yy",
ISO_8601: "yy-mm-dd",
RFC_822: "D, d M y",
RFC_850: "DD, dd-M-y",
RFC_1036: "D, d M y",
RFC_1123: "D, d M yy",
RFC_2822: "D, d M yy",
RSS: "D, d M y",
TICKS: "!",
TIMESTAMP: "@",
W3C: "yy-mm-dd",
_ticksTo1970: 24 * (718685 + Math.floor(492.5) - Math.floor(19.7) + Math.floor(4.925)) * 60 * 60 * 1e7,
formatDate: function (e, t, i) {
if (!t) return "";
var n, a = (i ? i.dayNamesShort : null) || this._defaults.dayNamesShort,
r = (i ? i.dayNames : null) || this._defaults.dayNames,
s = (i ? i.monthNamesShort : null) || this._defaults.monthNamesShort,
o = (i ? i.monthNames : null) || this._defaults.monthNames,
l = function (t) {
var i = n + 1 < e.length && e.charAt(n + 1) === t;
return i && n++, i
},
d = function (e, t, i) {
var n = "" + t;
if (l(e))
for (; n.length < i;) n = "0" + n;
return n
},
c = function (e, t, i, n) {
return l(e) ? n[t] : i[t]
},
u = "",
p = !1;
if (t)
for (n = 0; n < e.length; n++)
if (p) "'" !== e.charAt(n) || l("'") ? u += e.charAt(n) : p = !1;
else switch (e.charAt(n)) {
case "d":
u += d("d", t.getDate(), 2);
break;
case "D":
u += c("D", t.getDay(), a, r);
break;
case "o":
u += d("o", Math.round((new Date(t.getFullYear(), t.getMonth(), t.getDate()).getTime() - new Date(t.getFullYear(), 0, 0).getTime()) / 864e5), 3);
break;
case "m":
u += d("m", t.getMonth() + 1, 2);
break;
case "M":
u += c("M", t.getMonth(), s, o);
break;
case "y":
u += l("y") ? t.getFullYear() : (t.getFullYear() % 100 < 10 ? "0" : "") + t.getFullYear() % 100;
break;
case "@":
u += t.getTime();
break;
case "!":
u += 1e4 * t.getTime() + this._ticksTo1970;
break;
case "'":
l("'") ? u += "'" : p = !0;
break;
default:
u += e.charAt(n)
}
return u
},
_possibleChars: function (e) {
var t, i = "",
n = !1,
a = function (i) {
var n = t + 1 < e.length && e.charAt(t + 1) === i;
return n && t++, n
};
for (t = 0; t < e.length; t++)
if (n) "'" !== e.charAt(t) || a("'") ? i += e.charAt(t) : n = !1;
else switch (e.charAt(t)) {
case "d":
case "m":
case "y":
case "@":
i += "0123456789";
break;
case "D":
case "M":
return null;
case "'":
a("'") ? i += "'" : n = !0;
break;
default:
i += e.charAt(t)
}
return i
},
_get: function (e, t) {
return void 0 !== e.settings[t] ? e.settings[t] : this._defaults[t]
},
_setDateFromField: function (e, t) {
if (e.input.val() !== e.lastVal) {
var i = this._get(e, "dateFormat"),
n = e.lastVal = e.input ? e.input.val() : null,
a = this._getDefaultDate(e),
r = a,
s = this._getFormatConfig(e);
try {
r = this.parseDate(i, n, s) || a
} catch (e) {
n = t ? "" : n
}
e.selectedDay = r.getDate(), e.drawMonth = e.selectedMonth = r.getMonth(), e.drawYear = e.selectedYear = r.getFullYear(), e.currentDay = n ? r.getDate() : 0, e.currentMonth = n ? r.getMonth() : 0, e.currentYear = n ? r.getFullYear() : 0, this._adjustInstDate(e)
}
},
_getDefaultDate: function (e) {
return this._restrictMinMax(e, this._determineDate(e, this._get(e, "defaultDate"), new Date))
},
_determineDate: function (t, i, n) {
var a = null == i || "" === i ? n : "string" == typeof i ? function (i) {
try {
return e.datepicker.parseDate(e.datepicker._get(t, "dateFormat"), i, e.datepicker._getFormatConfig(t))
} catch (e) { }
for (var n = (i.toLowerCase().match(/^c/) ? e.datepicker._getDate(t) : null) || new Date, a = n.getFullYear(), r = n.getMonth(), s = n.getDate(), o = /([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g, l = o.exec(i); l;) {
switch (l[2] || "d") {
case "d":
case "D":
s += parseInt(l[1], 10);
break;
case "w":
case "W":
s += 7 * parseInt(l[1], 10);
break;
case "m":
case "M":
r += parseInt(l[1], 10), s = Math.min(s, e.datepicker._getDaysInMonth(a, r));
break;
case "y":
case "Y":
a += parseInt(l[1], 10), s = Math.min(s, e.datepicker._getDaysInMonth(a, r))
}
l = o.exec(i)
}
return new Date(a, r, s)
}(i) : "number" == typeof i ? isNaN(i) ? n : function (e) {
var t = new Date;
return t.setDate(t.getDate() + e), t
}(i) : new Date(i.getTime());
return (a = a && "Invalid Date" === a.toString() ? n : a) && (a.setHours(0), a.setMinutes(0), a.setSeconds(0), a.setMilliseconds(0)), this._daylightSavingAdjust(a)
},
_daylightSavingAdjust: function (e) {
return e ? (e.setHours(e.getHours() > 12 ? e.getHours() + 2 : 0), e) : null
},
_setDate: function (e, t, i) {
var n = !t,
a = e.selectedMonth,
r = e.selectedYear,
s = this._restrictMinMax(e, this._determineDate(e, t, new Date));
e.selectedDay = e.currentDay = s.getDate(), e.drawMonth = e.selectedMonth = e.currentMonth = s.getMonth(), e.drawYear = e.selectedYear = e.currentYear = s.getFullYear(), a === e.selectedMonth && r === e.selectedYear || i || this._notifyChange(e), this._adjustInstDate(e), e.input && e.input.val(n ? "" : this._formatDate(e))
},
_getDate: function (e) {
return !e.currentYear || e.input && "" === e.input.val() ? null : this._daylightSavingAdjust(new Date(e.currentYear, e.currentMonth, e.currentDay))
},
_attachHandlers: function (t) {
var i = this._get(t, "stepMonths"),
n = "#" + t.id.replace(/\\\\/g, "\\");
t.dpDiv.find("[data-handler]").map((function () {
var t = {
prev: function () {
e.datepicker._adjustDate(n, -i, "M")
},
next: function () {
e.datepicker._adjustDate(n, +i, "M")
},
hide: function () {
e.datepicker._hideDatepicker()
},
today: function () {
e.datepicker._gotoToday(n)
},
selectDay: function () {
return e.datepicker._selectDay(n, +this.getAttribute("data-month"), +this.getAttribute("data-year"), this), !1
},
selectMonth: function () {
return e.datepicker._selectMonthYear(n, this, "M"), !1
},
selectYear: function () {
return e.datepicker._selectMonthYear(n, this, "Y"), !1
}
};
e(this).on(this.getAttribute("data-event"), t[this.getAttribute("data-handler")])
}))
},
_generateHTML: function (e) {
var t, i, n, a, r, s, o, l, d, c, u, p, h, f, g, m, v, b, y, w, S, x, _, C, T, D, k, I, E, $, A, M, P, F, N, R, O, L, z, j = new Date,
H = this._daylightSavingAdjust(new Date(j.getFullYear(), j.getMonth(), j.getDate())),
B = this._get(e, "isRTL"),
W = this._get(e, "showButtonPanel"),
U = this._get(e, "hideIfNoPrevNext"),
V = this._get(e, "navigationAsDateFormat"),
q = this._getNumberOfMonths(e),
Y = this._get(e, "showCurrentAtPos"),
X = this._get(e, "stepMonths"),
G = 1 !== q[0] || 1 !== q[1],
J = this._daylightSavingAdjust(e.currentDay ? new Date(e.currentYear, e.currentMonth, e.currentDay) : new Date(9999, 9, 9)),
K = this._getMinMaxDate(e, "min"),
Z = this._getMinMaxDate(e, "max"),
Q = e.drawMonth - Y,
ee = e.drawYear;
if (Q < 0 && (Q += 12, ee--), Z)
for (t = this._daylightSavingAdjust(new Date(Z.getFullYear(), Z.getMonth() - q[0] * q[1] + 1, Z.getDate())), t = K && t < K ? K : t; this._daylightSavingAdjust(new Date(ee, Q, 1)) > t;) --Q < 0 && (Q = 11, ee--);
for (e.drawMonth = Q, e.drawYear = ee, i = this._get(e, "prevText"), i = V ? this.formatDate(i, this._daylightSavingAdjust(new Date(ee, Q - X, 1)), this._getFormatConfig(e)) : i, n = this._canAdjustMonth(e, -1, ee, Q) ? "<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click' title='" + i + "'><span class='ui-icon ui-icon-circle-triangle-" + (B ? "e" : "w") + "'>" + i + "</span></a>" : U ? "" : "<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='" + i + "'><span class='ui-icon ui-icon-circle-triangle-" + (B ? "e" : "w") + "'>" + i + "</span></a>", a = this._get(e, "nextText"), a = V ? this.formatDate(a, this._daylightSavingAdjust(new Date(ee, Q + X, 1)), this._getFormatConfig(e)) : a, r = this._canAdjustMonth(e, 1, ee, Q) ? "<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click' title='" + a + "'><span class='ui-icon ui-icon-circle-triangle-" + (B ? "w" : "e") + "'>" + a + "</span></a>" : U ? "" : "<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='" + a + "'><span class='ui-icon ui-icon-circle-triangle-" + (B ? "w" : "e") + "'>" + a + "</span></a>", s = this._get(e, "currentText"), o = this._get(e, "gotoCurrent") && e.currentDay ? J : H, s = V ? this.formatDate(s, o, this._getFormatConfig(e)) : s, l = e.inline ? "" : "<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>" + this._get(e, "closeText") + "</button>", d = W ? "<div class='ui-datepicker-buttonpane ui-widget-content'>" + (B ? l : "") + (this._isInRange(e, o) ? "<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'>" + s + "</button>" : "") + (B ? "" : l) + "</div>" : "", c = parseInt(this._get(e, "firstDay"), 10), c = isNaN(c) ? 0 : c, u = this._get(e, "showWeek"), p = this._get(e, "dayNames"), h = this._get(e, "dayNamesMin"), f = this._get(e, "monthNames"), g = this._get(e, "monthNamesShort"), m = this._get(e, "beforeShowDay"), v = this._get(e, "showOtherMonths"), b = this._get(e, "selectOtherMonths"), y = this._getDefaultDate(e), w = "", x = 0; x < q[0]; x++) {
for (_ = "", this.maxRows = 4, C = 0; C < q[1]; C++) {
if (T = this._daylightSavingAdjust(new Date(ee, Q, e.selectedDay)), D = " ui-corner-all", k = "", G) {
if (k += "<div class='ui-datepicker-group", q[1] > 1) switch (C) {
case 0:
k += " ui-datepicker-group-first", D = " ui-corner-" + (B ? "right" : "left");
break;
case q[1] - 1:
k += " ui-datepicker-group-last", D = " ui-corner-" + (B ? "left" : "right");
break;
default:
k += " ui-datepicker-group-middle", D = ""
}
k += "'>"
}
for (k += "<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix" + D + "'>" + (/all|left/.test(D) && 0 === x ? B ? r : n : "") + (/all|right/.test(D) && 0 === x ? B ? n : r : "") + this._generateMonthYearHeader(e, Q, ee, K, Z, x > 0 || C > 0, f, g) + "</div><table class='ui-datepicker-calendar'><thead><tr>", I = u ? "<th class='ui-datepicker-week-col'>" + this._get(e, "weekHeader") + "</th>" : "", S = 0; S < 7; S++) I += "<th scope='col'" + ((S + c + 6) % 7 >= 5 ? " class='ui-datepicker-week-end'" : "") + "><span title='" + p[E = (S + c) % 7] + "'>" + h[E] + "</span></th>";
for (k += I + "</tr></thead><tbody>", $ = this._getDaysInMonth(ee, Q), ee === e.selectedYear && Q === e.selectedMonth && (e.selectedDay = Math.min(e.selectedDay, $)), A = (this._getFirstDayOfMonth(ee, Q) - c + 7) % 7, M = Math.ceil((A + $) / 7), P = G && this.maxRows > M ? this.maxRows : M, this.maxRows = P, F = this._daylightSavingAdjust(new Date(ee, Q, 1 - A)), N = 0; N < P; N++) {
for (k += "<tr>", R = u ? "<td class='ui-datepicker-week-col'>" + this._get(e, "calculateWeek")(F) + "</td>" : "", S = 0; S < 7; S++) O = m ? m.apply(e.input ? e.input[0] : null, [F]) : [!0, ""], z = (L = F.getMonth() !== Q) && !b || !O[0] || K && F < K || Z && F > Z, R += "<td class='" + ((S + c + 6) % 7 >= 5 ? " ui-datepicker-week-end" : "") + (L ? " ui-datepicker-other-month" : "") + (F.getTime() === T.getTime() && Q === e.selectedMonth && e._keyEvent || y.getTime() === F.getTime() && y.getTime() === T.getTime() ? " " + this._dayOverClass : "") + (z ? " " + this._unselectableClass + " ui-state-disabled" : "") + (L && !v ? "" : " " + O[1] + (F.getTime() === J.getTime() ? " " + this._currentClass : "") + (F.getTime() === H.getTime() ? " ui-datepicker-today" : "")) + "'" + (L && !v || !O[2] ? "" : " title='" + O[2].replace(/'/g, "'") + "'") + (z ? "" : " data-handler='selectDay' data-event='click' data-month='" + F.getMonth() + "' data-year='" + F.getFullYear() + "'") + ">" + (L && !v ? " " : z ? "<span class='ui-state-default'>" + F.getDate() + "</span>" : "<a class='ui-state-default" + (F.getTime() === H.getTime() ? " ui-state-highlight" : "") + (F.getTime() === J.getTime() ? " ui-state-active" : "") + (L ? " ui-priority-secondary" : "") + "' href='#'>" + F.getDate() + "</a>") + "</td>", F.setDate(F.getDate() + 1), F = this._daylightSavingAdjust(F);
k += R + "</tr>"
} ++Q > 11 && (Q = 0, ee++), _ += k += "</tbody></table>" + (G ? "</div>" + (q[0] > 0 && C === q[1] - 1 ? "<div class='ui-datepicker-row-break'></div>" : "") : "")
}
w += _
}
return w += d, e._keyEvent = !1, w
},
_generateMonthYearHeader: function (e, t, i, n, a, r, s, o) {
var l, d, c, u, p, h, f, g, m = this._get(e, "changeMonth"),
v = this._get(e, "changeYear"),
b = this._get(e, "showMonthAfterYear"),
y = "<div class='ui-datepicker-title'>",
w = "";
if (r || !m) w += "<span class='ui-datepicker-month'>" + s[t] + "</span>";
else {
for (l = n && n.getFullYear() === i, d = a && a.getFullYear() === i, w += "<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>", c = 0; c < 12; c++)(!l || c >= n.getMonth()) && (!d || c <= a.getMonth()) && (w += "<option value='" + c + "'" + (c === t ? " selected='selected'" : "") + ">" + o[c] + "</option>");
w += "</select>"
}
if (b || (y += w + (!r && m && v ? "" : " ")), !e.yearshtml)
if (e.yearshtml = "", r || !v) y += "<span class='ui-datepicker-year'>" + i + "</span>";
else {
for (u = this._get(e, "yearRange").split(":"), p = (new Date).getFullYear(), f = (h = function (e) {
var t = e.match(/c[+\-].*/) ? i + parseInt(e.substring(1), 10) : e.match(/[+\-].*/) ? p + parseInt(e, 10) : parseInt(e, 10);
return isNaN(t) ? p : t
})(u[0]), g = Math.max(f, h(u[1] || "")), f = n ? Math.max(f, n.getFullYear()) : f, g = a ? Math.min(g, a.getFullYear()) : g, e.yearshtml += "<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>"; f <= g; f++) e.yearshtml += "<option value='" + f + "'" + (f === i ? " selected='selected'" : "") + ">" + f + "</option>";
e.yearshtml += "</select>", y += e.yearshtml, e.yearshtml = null
} return y += this._get(e, "yearSuffix"), b && (y += (!r && m && v ? "" : " ") + w), y += "</div>"
},
_adjustInstDate: function (e, t, i) {
var n = e.selectedYear + ("Y" === i ? t : 0),
a = e.selectedMonth + ("M" === i ? t : 0),
r = Math.min(e.selectedDay, this._getDaysInMonth(n, a)) + ("D" === i ? t : 0),
s = this._restrictMinMax(e, this._daylightSavingAdjust(new Date(n, a, r)));
e.selectedDay = s.getDate(), e.drawMonth = e.selectedMonth = s.getMonth(), e.drawYear = e.selectedYear = s.getFullYear(), "M" !== i && "Y" !== i || this._notifyChange(e)
},
_restrictMinMax: function (e, t) {
var i = this._getMinMaxDate(e, "min"),
n = this._getMinMaxDate(e, "max"),
a = i && t < i ? i : t;
return n && a > n ? n : a
},
_notifyChange: function (e) {
var t = this._get(e, "onChangeMonthYear");
t && t.apply(e.input ? e.input[0] : null, [e.selectedYear, e.selectedMonth + 1, e])
},
_getNumberOfMonths: function (e) {
var t = this._get(e, "numberOfMonths");
return null == t ? [1, 1] : "number" == typeof t ? [1, t] : t
},
_getMinMaxDate: function (e, t) {
return this._determineDate(e, this._get(e, t + "Date"), null)
},
_getDaysInMonth: function (e, t) {
return 32 - this._daylightSavingAdjust(new Date(e, t, 32)).getDate()
},
_getFirstDayOfMonth: function (e, t) {
return new Date(e, t, 1).getDay()
},
_canAdjustMonth: function (e, t, i, n) {
var a = this._getNumberOfMonths(e),
r = this._daylightSavingAdjust(new Date(i, n + (t < 0 ? t : a[0] * a[1]), 1));
return t < 0 && r.setDate(this._getDaysInMonth(r.getFullYear(), r.getMonth())), this._isInRange(e, r)
},
_isInRange: function (e, t) {
var i, n, a = this._getMinMaxDate(e, "min"),
r = this._getMinMaxDate(e, "max"),
s = null,
o = null,
l = this._get(e, "yearRange");
return l && (i = l.split(":"), n = (new Date).getFullYear(), s = parseInt(i[0], 10), o = parseInt(i[1], 10), i[0].match(/[+\-].*/) && (s += n), i[1].match(/[+\-].*/) && (o += n)), (!a || t.getTime() >= a.getTime()) && (!r || t.getTime() <= r.getTime()) && (!s || t.getFullYear() >= s) && (!o || t.getFullYear() <= o)
},
_getFormatConfig: function (e) {
var t = this._get(e, "shortYearCutoff");
return {
shortYearCutoff: t = "string" != typeof t ? t : (new Date).getFullYear() % 100 + parseInt(t, 10),
dayNamesShort: this._get(e, "dayNamesShort"),
dayNames: this._get(e, "dayNames"),
monthNamesShort: this._get(e, "monthNamesShort"),
monthNames: this._get(e, "monthNames")
}
},
_formatDate: function (e, t, i, n) {
t || (e.currentDay = e.selectedDay, e.currentMonth = e.selectedMonth, e.currentYear = e.selectedYear);
var a = t ? "object" == typeof t ? t : this._daylightSavingAdjust(new Date(n, i, t)) : this._daylightSavingAdjust(new Date(e.currentYear, e.currentMonth, e.currentDay));
return this.formatDate(this._get(e, "dateFormat"), a, this._getFormatConfig(e))
}
}), e.fn.datepicker = function (t) {
if (!this.length) return this;
e.datepicker.initialized || (e(document).on("mousedown", e.datepicker._checkExternalClick), e.datepicker.initialized = !0), 0 === e("#" + e.datepicker._mainDivId).length && e("body").append(e.datepicker.dpDiv);
var i = Array.prototype.slice.call(arguments, 1);
return "string" != typeof t || "isDisabled" !== t && "getDate" !== t && "widget" !== t ? "option" === t && 2 === arguments.length && "string" == typeof arguments[1] ? e.datepicker["_" + t + "Datepicker"].apply(e.datepicker, [this[0]].concat(i)) : this.each((function () {
"string" == typeof t ? e.datepicker["_" + t + "Datepicker"].apply(e.datepicker, [this].concat(i)) : e.datepicker._attachDatepicker(this, t)
})) : e.datepicker["_" + t + "Datepicker"].apply(e.datepicker, [this[0]].concat(i))
}, e.datepicker = new i, e.datepicker.initialized = !1, e.datepicker.uuid = (new Date).getTime(), e.datepicker.version = "1.12.1", e.datepicker
}) ? n.apply(t, a) : n) || (e.exports = r)
}, function (e, t, i) {
var n, a, r;
/*!
* jQuery UI Keycode 1.12.1
* http://jqueryui.com
*
* Copyright jQuery Foundation and other contributors
* Released under the MIT license.
* http://jquery.org/license
*/
a = [i(0), i(15)], void 0 === (r = "function" == typeof (n = function (e) {
return e.ui.keyCode = {
BACKSPACE: 8,
COMMA: 188,
DELETE: 46,
DOWN: 40,
END: 35,
ENTER: 13,
ESCAPE: 27,
HOME: 36,
LEFT: 37,
PAGE_DOWN: 34,
PAGE_UP: 33,
PERIOD: 190,
RIGHT: 39,
SPACE: 32,
TAB: 9,
UP: 38
}
}) ? n.apply(t, a) : n) || (e.exports = r)
}, function (e, t, i) {
"use strict";
(function (e) {
var t = i(0),
n = i.n(t),
a = i(3),
r = i.n(a),
s = {};
n()(window).on("load", (function () {
s.homeSlider = new r.a(".swiper-container.home", {
pagination: ".swiper-pagination",
paginationClickable: !0,
nextButton: ".swiper-button-next",
prevButton: ".swiper-button-prev",
loop: !0,
speed: 1e3,
autoplay: 5e3,
effect: "fade",
slidesPerView: "auto",
swipeHandler: ".slide-image",
onSlideChangeStart: function (e) {
e.slides.eq(e.activeIndex).attr("data-swiper-slide-index") % 2 == 1 && n()(".swiper-slide-active .slide-text").addClass("red")
}
}), s.homeTeaserSlider = new r.a(".swiper-container-home-teaser", {
nextButton: ".swiper-button-next",
prevButton: ".swiper-button-prev",
loop: !0,
speed: 500,
slidesPerView: "auto",
swipeHandler: ".slide-image"
}), s.pageSlider = new r.a(".swiper-container.pages", {
pagination: ".swiper-pagination",
paginationClickable: !0,
nextButton: ".swiper-button-next",
prevButton: ".swiper-button-prev",
loop: !0,
speed: 1e3,
effect: "fade",
slidesPerView: "auto",
swipeHandler: ".slide-image",
onSlideChangeStart: function (e) {
e.slides.eq(e.activeIndex).attr("data-swiper-slide-index") % 2 == 1 && n()(".swiper-slide-active .slide-text").addClass("red")
}
}), s.productSlider = new r.a(".swiper-container.product", {
speed: 1e3,
effect: "fade",
slidesPerView: "auto",
updateOnImagesReady: !0,
onImagesReady: function () {
n()(".swiper-container.product").css("overflow", "visible"), n()(".product-thumbs-link").click((function (e) {
s.productSlider.slideTo(n()(this).data("slide")), e.preventDefault()
})), n()("body").checkSize()
}
}), s.productThumbSlider = new r.a(".swiper-container.product-slider-thumbs", {
speed: 600,
nextButton: ".swiper-button-next-thumb",
prevButton: ".swiper-button-prev-thumb",
slidesPerView: "3",
spaceBetween: 20,
breakpoints: {
480: {
slidesPerView: 3,
spaceBetween: 10
},
640: {
slidesPerView: 4,
spaceBetween: 20
},
992: {
slidesPerView: 6,
spaceBetween: 10
}
}
}), s.thumbnailSlideshow = new r.a(".thumbnail-slideshow-slider", {
speed: 1e3,
slidesPerView: "auto",
updateOnImagesReady: !0,
nextButton: ".swiper-button-next",
prevButton: ".swiper-button-prev",
onImagesReady: function () {
n()(".slideshow-thumbs-link").click((function (e) {
s.thumbnailSlideshow.slideTo(n()(this).data("slide")), e.preventDefault()
}))
}
}), s.thumbnailSlideshowThumbSlider = new r.a(".thumbnail-slideshow-navigation-slider", {
speed: 600,
nextButton: ".swiper-button-next-thumb",
prevButton: ".swiper-button-prev-thumb",
slidesPerView: "6",
spaceBetween: 15,
breakpoints: {
480: {
slidesPerView: 3,
spaceBetween: 10
},
640: {
slidesPerView: 4,
spaceBetween: 20
},
992: {
slidesPerView: 5,
spaceBetween: 10
}
}
}), s.relatedProjectsSlider = new r.a(".related-projects-slider", {
speed: 600,
nextButton: ".swiper-button-next-related",
prevButton: ".swiper-button-prev-related",
slidesPerView: "5",
spaceBetween: 20,
breakpoints: {
480: {
slidesPerView: 3,
spaceBetween: 10
},
640: {
slidesPerView: 3,
spaceBetween: 20
},
992: {
slidesPerView: 4,
spaceBetween: 10
},
1200: {
slidesPerView: 5,
spaceBetween: 10
}
}
}), s.articleSlider = new r.a(".swiper-container-article", {
pagination: ".swiper-pagination",
paginationClickable: !0,
nextButton: ".swiper-button-next",
prevButton: ".swiper-button-prev",
loop: !0,
speed: 1e3,
slidesPerView: "auto"
})
}));
var o = function (e, t) {
var i = n()("#" + e);
return !i.length || (i.attr("src", t), !1)
};
e.loadIframe = o
}).call(this, i(9))
}, function (e, t) { }, , , , , function (e, t, i) {
"use strict";
i.r(t);
var n = i(0),
a = i.n(n),
r = {};
a()((function () {
r.ExternalApplication = {
init: function () {
var e;
return (e = a()(".customernumber-switcher form")).length > 0 && e.on("submit", (function (e) {
e.preventDefault();
var t = a()(this),
i = t.attr("action");
a.a.ajax({
url: i,
type: "POST",
data: t.serialize(),
success: function () {
window.location.reload(!0)
}
})
})), this
}
}.init(), r.ERP = {
init: function () {
return a()((function () {
! function () {
var e = a()(".print-order form");
e.length > 0 && e.on("submit", (function (e) {
e.preventDefault();
var t = a()(this),
i = t.attr("action");
a.a.ajax({
url: i,
type: "POST",
data: t.find("input").serialize(),
success: function (e) {
var i, n, a, r;
i = e.type, n = e.text, r = '<div class="alert alert-' + i + '" role="alert"><p>' + n + "</p></div>", (a = t).find("div.alert").remove(), a.find("div.submit").after(r)
}
})
}));
var t = localStorage.getItem("dkErpRequestFilterForm");
if (t) {
var i = JSON.parse(t);
delete i.detailNumber;
var n = a()("#erp-detail-request-back-link"),
r = document.referrer;
r.indexOf("?") > 0 && (r = r.substr(0, r.indexOf("?")));
var s = r + "?" + a.a.param(i, !0);
n.attr("href", s), localStorage.removeItem("dkErpRequestFilterForm")
}
}()
})), this
},
updateBox: function (e) {
var t = a()(e).data("no");
a()("#docuprint-vouchernumber").val(t), a()(".vouchernumber").text(t);
var i = a()(".modal-box .print-order ");
i.find("div.alert").remove(), i.find("form").get(0).reset()
},
rememberFormValues: function () {
var e = {};
a.a.each(a()("#filter").serializeArray(), (function (t, i) {
var n = i.name || "";
e[n] = i.value || ""
})), localStorage.setItem("dkErpRequestFilterForm", JSON.stringify(e))
}
}.init()
}));
var s = r;
i(38), i(51), i(52), i(53);
a()((function (e) {
e(".menu-toggle").on("click", (function () {
e(this).toggleClass("open"), e(".mobile-navigation").toggleClass("open"), e("body").toggleClass("not-scrollable"), e(".sub-menu").removeClass("open")
})), e(".extranet-login-link").on("click", (function () {
e(".extranet-login-panel").toggleClass("open")
})), e(".extranet-login-close").on("click", (function () {
e(".extranet-login-panel").removeClass("open")
})), e(".mobile-navigation .menu-item-has-children > a").append("<i class='icon-chevron-small-right'></i>"), e(".mobile-navigation .menu-item-has-children .icon-chevron-small-right").on("click", (function (t) {
t.preventDefault(), e(this).parent("a").next(".sub-menu").addClass("open")
})), e(".mobile-navigation .sub-menu-back").on("click", (function () {
e(this).parent(".sub-menu").removeClass("open")
})), e(".scroll-to-filter").on("click", (function (t) {
t.preventDefault();
var i = e("#filterarea");
e("html, body").animate({
scrollTop: e(i).offset().top - 1
}, "slow")
})), e(".scroll-to-href").on("click", (function (t) {
var i = e(this).attr("href");
e("html, body").animate({
scrollTop: e(i).offset().top - 1
}, "slow"), t.preventDefault()
})), e(".facette-toggle").on("click", (function () {
e(this).toggleClass("open")
})), e(".sidebar-widget-search .widget-title").on("click", (function () {
e(this).closest(".sidebar-widget-search").toggleClass("open")
})), e(".collapse.in").prev(".collapse-heading").addClass("open"), e(".collapse-heading").on("click", (function () {
e(this).toggleClass("open")
})), e(".modal-open").on("click", (function () {
e("html").addClass("not-scrollable"), e("body").addClass("not-scrollable"), e(".outer-wrapper").addClass("not-scrollable")
})), e(".modal-close").on("click", (function () {
e("html").removeClass("not-scrollable"), e("body").removeClass("not-scrollable"), e("outer-wrapper").removeClass("not-scrollable")
})), e(".modal-box-wrapper").on("click", (function () {
e("html").removeClass("not-scrollable"), e("body").removeClass("not-scrollable"), e("outer-wrapper").removeClass("not-scrollable")
})), e("#zeusModeBarOpen").on("click", (function (t) {
t.preventDefault(), e(this).toggleClass("active"), e(this).next(".zeus-mode-bar__wrapper").toggleClass("open")
})), e(".select-wrapper select").selectpicker({}), e(".icon-grid-view").on("click", (function () {
e(this).closest(".product-area").addClass("grid").removeClass("list")
})), e(".icon-list-view").on("click", (function () {
e(this).closest(".product-area").addClass("list").removeClass("grid")
})), e(".product-overview.product-lines").find(".product-preview-toggle").on("click", (function (t) {
var i = e(this).closest(".product-item").next(".product-preview"),
n = e(this).closest(".product-item"),
a = n.innerHeight(),
r = {
top: n.position().top + a
};
e("html, body").animate({
scrollTop: e(n).offset().top - 80
}, "slow"), n.toggleClass("active"), i.css(r), n.siblings(".product-item").removeClass("active"), i.find(".product-preview-close").on("click", (function () {
i.prev(".inner").find(".product-preview-toggle").removeClass("active"), n.removeClass("active")
})), t.preventDefault()
})), e(".product-overview.grid").find(".product-preview-toggle").on("click", (function (t) {
var i = e(this).closest(".product-item").next(".product-preview"),
n = e(this).closest(".product-item"),
a = n.innerHeight(),
r = {
top: n.position().top + a
};
e("html, body").animate({
scrollTop: e(n).offset().top - 80
}, "slow"), n.toggleClass("active"), i.css(r), n.siblings(".product-item").removeClass("active"), i.find(".product-preview-close").on("click", (function () {
i.prev(".inner").find(".product-preview-toggle").removeClass("active"), n.removeClass("active")
})), t.preventDefault()
})), e(".product-overview.list").find(".product-preview-toggle").on("click", (function (t) {
var i = e(this).closest(".product-item").find(".product-preview"),
n = e(this).closest(".product-item");
e("html, body").animate({
scrollTop: e(n).offset().top - 80
}, "slow"), n.toggleClass("active"), n.siblings(".product-item").removeClass("active"), i.find(".product-preview-close").on("click", (function () {
n.find(".product-preview-toggle").removeClass("active"), n.removeClass("active")
})), t.preventDefault()
})), e.isFunction(e.fn.easyZoom) && (e.fn.checkSize = function () {
e(".easyzoom").easyZoom()
}, e("body").checkSize()), e(".check-all").click((function () {
this.checked ? e(this).parent(".download-all").prev(".download-list").find(":checkbox").each((function () {
this.checked = !0
})) : e(this).parent(".download-all").prev(".download-list").find(":checkbox").each((function () {
this.checked = !1
}))
})), e(".dk-dropdown").change((function () {
var t = this.value;
e(this).find(":not(:selected)").each((function () {
e("#" + this.value).addClass("mwf-hidden")
})), e("#" + t).removeClass("mwf-hidden")
}))
}));
var o = i(19),
l = i.n(o);
a()((function () {
var e = a()("#cookiePolicyName").val();
l.a.get(e) === a()("#cookiePolicyLocale").val() ? a()("#cookie-bar").remove() : a()("#cookie-bar").css("visibility", "visible")
})),
function (e) {
function t(e) {
return new RegExp("(^|\\s+)" + e + "(\\s+|$)")
}
var n, a, r;
function s(e, t) {
(n(e, t) ? r : a)(e, t)
}
"classList" in document.documentElement ? (n = function (e, t) {
return e.classList.contains(t)
}, a = function (e, t) {
e.classList.add(t)
}, r = function (e, t) {
e.classList.remove(t)
}) : (n = function (e, i) {
return t(i).test(e.className)
}, a = function (e, t) {
n(e, t) || (e.className = e.className + " " + t)
}, r = function (e, i) {
e.className = e.className.replace(t(i), " ")
});
var o = {
hasClass: n,
addClass: a,
removeClass: r,
toggleClass: s,
has: n,
add: a,
remove: r,
toggle: s
};
"function" == typeof define && i(54) ? define(o) : e.classie = o
}(window);
var d = window.classie,
c = function (e) {
this.el = e, this.inputEl = e.querySelector("form > input.slide-search-input"), this._initEvents()
};
! function (e) {
!e.addEventListener && e.Element && function () {
function e(e, t) {
Window.prototype[e] = HTMLDocument.prototype[e] = Element.prototype[e] = t
}
var t = [];
e("addEventListener", (function (e, i) {
var n = this;
t.unshift({
__listener: function (e) {
e.currentTarget = n, e.pageX = e.clientX + document.documentElement.scrollLeft, e.pageY = e.clientY + document.documentElement.scrollTop, e.preventDefault = function () {
e.returnValue = !1
}, e.relatedTarget = e.fromElement || null, e.stopPropagation = function () {
e.cancelBubble = !0
}, e.relatedTarget = e.fromElement || null, e.target = e.srcElement || n, e.timeStamp = +new Date, i.call(n, e)
},
listener: i,
target: n,
type: e
}), this.attachEvent("on" + e, t[0].__listener)
})), e("removeEventListener", (function (e, i) {
for (var n = 0, a = t.length; n < a; ++n)
if (t[n].target == this && t[n].type == e && t[n].listener == i) return this.detachEvent("on" + e, t.splice(n, 1)[0].__listener)
})), e("dispatchEvent", (function (e) {
try {
return this.fireEvent("on" + e.type, e)
} catch (a) {
for (var i = 0, n = t.length; i < n; ++i) t[i].target == this && t[i].type == e.type && t[i].call(this, e)
}
}))
}(), !String.prototype.trim && (String.prototype.trim = function () {
return this.replace(/^\s+|\s+$/g, "")
}), c.prototype = {
_initEvents: function () {
var e = this,
t = function (t) {
t.stopPropagation(), e.inputEl.value = e.inputEl.value.trim(), d.has(e.el, "slide-search-open") ? d.has(e.el, "slide-search-open") && /^\s*$/.test(e.inputEl.value) && (t.preventDefault(), e.close()) : (t.preventDefault(), e.open())
};
this.el.addEventListener("click", t), this.el.addEventListener("touchstart", t), this.inputEl.addEventListener("click", (function (e) {
e.stopPropagation()
})), this.inputEl.addEventListener("touchstart", (function (e) {
e.stopPropagation()
}))
},
open: function () {
var t, i = this;
d.add(this.el, "slide-search-open"), t = !1,
function (e) {
(/(android|ipad|playbook|silk|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(e) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(e.substr(0, 4))) && (t = !0)
}(navigator.userAgent || navigator.vendor || e.opera), t || this.inputEl.focus();
var n = function e() {
i.close(), this.removeEventListener("click", e), this.removeEventListener("touchstart", e)
};
document.addEventListener("click", n), document.addEventListener("touchstart", n)
},
close: function () {
this.inputEl.blur(), d.remove(this.el, "slide-search-open")
}
}, e.UISearch = c
}(window);
var u = c;
a()((function () {
document.getElementById("slide-search") && new u(document.getElementById("slide-search")), a()("#responsive-images").length && a()("#responsive-images").lightGallery({
selector: ".selector"
})
}));
i(10), i(55), i(57), i(59);
a()((function () {
a()("#extranet_table").DataTable({
stateSave: !0
}), a()((function () {
a()("input.datePickInput").each((function () {
var e = {
onSelect: function () {
document.all ? window.jQuery(this).get(0).fireEvent("onchange") : window.jQuery(this).change()
},
changeMonth: !0,
changeYear: !0,
constrainInput: !0,
dateFormat: "yy-mm-dd",
dateISO: !0
},
t = a()(this).data("datepicker");
a.a.extend(e, t), a()(this).datepicker(e)
})), a()("#datefrom").each((function () {
a()(this).val() || a()(this).datepicker("setDate", new Date((new Date).getFullYear(), 0, 1))
})), a()("#dateto").each((function () {
a()(this).val() || a()(this).datepicker("setDate", new Date)
}))
}))
}));
i(61);
window.$ = a.a, window.jQuery = a.a, window.dk = s
}, function (e, t, i) {
"use strict";
i.r(t);
var n = i(4),
a = i.n(n),
r = i(0),
s = i.n(r),
o = i(5),
l = i(1);
i(31);
function d(e) {
var t = s()(e).data("cm-responsive-media");
return Array.isArray(t) ? t : []
}
function c(e) {
var t = s()(e);
function i() {
t.trigger({
type: "srcChanged",
src: t.attr("src"),
maxWidth: t.data("lastMaxWidth"),
ratio: t.data("lastRatio")
})
}
var n = "function" == typeof s.a.fn.imagesLoaded;
void 0 === t.data("cm-responsive-media-state") && (t.data("cm-responsive-media-state", "initialized"), n ? t.attr("src") && t.imagesLoaded(i) : t.on("load", i));
var a = d(e);
if (0 !== a.length) {
var r = t.parent(),
o = r.width(),
c = r.height();
if (o && c) {
var u = window.devicePixelRatio,
p = !1;
u > 1 && t.data("cm-retina") && (p = !0, c *= u, o *= u);
var h = o / c,
f = a.filter((function (e) {
return e.ratioHeight > 0 && e.ratioWidth > 0
})).map((function (e) {
return {
format: e,
difference: Math.abs(h - e.ratioWidth / e.ratioHeight)
}
})).reduce((function (e, t) {
return t.difference < e.difference ? t : e
}), {
format: null,
difference: 1 / 0
}).format;
if (f) {
var g = Object.keys(f.linksForWidth).map((function (e) {
return parseInt(e)
})).filter((function (e) {
return !isNaN(e) && f.linksForWidth[e]
})).reduce((function (e, t) {
return e < o && t < o && t > e || e < o && t >= o || e >= o && t >= o && t < e ? t : e
}), -1);
if (-1 !== g) {
var m = f.linksForWidth[g],
v = p ? " (Retina Images enabled with deviceRatio: ".concat(u, ")") : "";
t.is("img") ? m !== t.attr("src") && (l.c("Change Responsive Image to aspect ratio: '".concat(f.name, "' and maxWidth: '").concat(g, "'").concat(v), e), t.trigger({
type: "srcChanging",
src: t.attr("src"),
maxWidth: g,
ratio: f.name
}), t.data("lastMaxWidth", g), t.data("lastRatio", f.name), t.attr("src", m), n && t.imagesLoaded(i)) : "background-image: url('" + m + "');" !== t.attr("style") && (l.c("Change Responsive Background Image to aspect ratio: '".concat(f.name, "' and maxWidth: '").concat(g, "'").concat(v), e), t.data("lastMaxWidth", g), t.data("lastRatio", f.name), t.attr("style", "background-image: url('" + m + "');"))
} else l.g("Found no matching link in aspect ratio '".concat(f.name, "'."), e)
} else l.g("Found no matching aspect ratio.", e)
} else l.d("Could not load hidden Responsive Media. The width and height of the surrounding container must be greater than zero.", e)
} else l.g("No responsive image data found.", e)
}
var u = function (e) {
e instanceof s.a ? s.a.each(e, (function (e, t) {
c(t)
})) : c(e)
};
s()((function () {
o.a("[data-cm-responsive-media]", (function (e) {
u(e)
})), o.a(".cm-media--loading", (function (e) {
var t = function () {
e.removeClass("cm-media--loading")
};
a()(s.a.fn.imagesLoaded) === a()(t) ? e.imagesLoaded(t) : e.on("load", t)
})), s()(document).on(l.a, (function () {
u(s()("[data-cm-responsive-media]"))
}))
}))
}, function (e, t, i) {
"use strict";
i.r(t);
i(32), i(0), i(33), i(35), i(36), i(37)
}],
[
[22, 0]
]
]);


PK 99