1try 2{ 3 4 5 function dropdownEffectData(t) { 6 var e = null, n = null, i = $(t), o = $(".dropdown-menu", t), a = i.parents("ul.nav"); 7 return a.height > 0 && (e = a.data("dropdown-in") || null, n = a.data("dropdown-out") || null), {target: t, dropdown: i, dropdownMenu: o, effectIn: o.data("dropdown-in") || e, effectOut: o.data("dropdown-out") || n} 8 } 9 function dropdownEffectStart(t, e) { 10 e && (t.dropdown.addClass("dropdown-animating"), t.dropdownMenu.addClass("animated"), t.dropdownMenu.addClass(e)) 11 } 12 function dropdownEffectEnd(t, e) { 13 t.dropdown.one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend", function () { 14 t.dropdown.removeClass("dropdown-animating"), t.dropdownMenu.removeClass("animated"), t.dropdownMenu.removeClass(t.effectIn), t.dropdownMenu.removeClass(t.effectOut), "function" == typeof e && e() 15 }) 16 } 17 function _classCallCheck(t, e) { 18 if (!(t instanceof e)) 19 throw new TypeError("Cannot call a class as a function") 20 } 21 !function (t) { 22 function e(e) { 23 if ($this = e, !1 === $this.hasClass("active")) { 24 $this.addClass("active"), $this.find("ul .btn-floating").velocity({scaleY: ".4", scaleX: ".4", translateY: "40px"}, {duration: 0}); 25 n = 0; 26 $this.find("ul .btn-floating").reverse().each(function () { 27 t(this).velocity({opacity: "1", scaleX: "1", scaleY: "1", translateY: "0"}, {duration: 80, delay: n}), n += 40 28 }) 29 } else { 30 $this.removeClass("active"); 31 var n = 0; 32 $this.find("ul .btn-floating").velocity("stop", !0), $this.find("ul .btn-floating").velocity({opacity: "0", scaleX: ".4", scaleY: ".4", translateY: "40px"}, {duration: 80}) 33 } 34 } 35 t(document).ready(function () { 36 t.fn.reverse = [].reverse, t(document).on("mouseenter.fixedActionBtn", ".fixed-action-btn:not(.click-to-toggle)", function (e) { 37 var i = t(this); 38 n(i) 39 }), t(document).on("mouseleave.fixedActionBtn", ".fixed-action-btn:not(.click-to-toggle)", function (e) { 40 var n = t(this); 41 i(n) 42 }), t(document).on("click.fixedActionBtn", ".fixed-action-btn.click-to-toggle > a", function (e) { 43 var o = t(this).parent(); 44 o.hasClass("active") ? i(o) : n(o) 45 }) 46 }), t.fn.extend({openFAB: function () { 47 n(t(this)) 48 }, closeFAB: function () { 49 i(t(this)) 50 }}); 51 var n = function (e) { 52 if ($this = e, !1 === $this.hasClass("active")) { 53 var n, i; 54 !0 === $this.hasClass("horizontal") ? i = 40 : n = 40, $this.addClass("active"), $this.find("ul .btn-floating").velocity({scaleY: ".4", scaleX: ".4", translateY: n + "px", translateX: i + "px"}, {duration: 0}); 55 var o = 0; 56 $this.find("ul .btn-floating").reverse().each(function () { 57 t(this).velocity({opacity: "1", scaleX: "1", scaleY: "1", translateY: "0", translateX: "0"}, {duration: 80, delay: o}), o += 40 58 }) 59 } 60 }, i = function (t) { 61 $this = t; 62 var e, n; 63 !0 === $this.hasClass("horizontal") ? n = 40 : e = 40, $this.removeClass("active"); 64 $this.find("ul .btn-floating").velocity("stop", !0), $this.find("ul .btn-floating").velocity({opacity: "0", scaleX: ".4", scaleY: ".4", translateY: e + "px", translateX: n + "px"}, {duration: 80}) 65 }; 66 t(".fixed-action-btn").on({click: function (n) { 67 return n.preventDefault(), e(t(".fixed-action-btn")), !1 68 }}) 69 }(jQuery), function (t) { 70 t(document).ready(function () { 71 t(document).on("click.card", ".card", function (e) { 72 var n = t(this); 73 if (n.find(".card-reveal").length) { 74 var i = t(e.target), o = i.is(".card-reveal .card-title"), a = i.is(".card-reveal .card-title i"), r = i.is(".card .activator"), s = i.is(".card .activator i"); 75 o || a ? n.find(".card-reveal").velocity({translateY: 0}, {duration: 225, queue: !1, easing: "easeInOutQuad", complete: function () { 76 t(this).css({display: "none"}) 77 }}) : (r || s) && n.find(".card-reveal").css({display: "block"}).velocity("stop", !1).velocity({translateY: "-100%"}, {duration: 300, queue: !1, easing: "easeInOutQuad"}) 78 } 79 }), t(".rotate-btn").on("click", function () { 80 var e = t(this).attr("data-card"); 81 t("#" + e).toggleClass("flipped") 82 }) 83 }) 84 }(jQuery), $(document).ready(function (t) { 85 t(".card-share > a").on("click", function (e) { 86 e.preventDefault(), t(this).parent().find("div").toggleClass("social-reveal-active"), t(this).toggleClass("share-expanded") 87 }) 88 }), function (t) { 89 t.fn.collapsible = function (e) { 90 var n = {accordion: void 0}; 91 return e = t.extend(n, e), this.each(function () { 92 function n(e) { 93 s = r.find("> li > .collapsible-header"), e.hasClass("active") ? e.parent().addClass("active") : e.parent().removeClass("active"), e.parent().hasClass("active") ? e.siblings(".collapsible-body").stop(!0, !1).slideDown({duration: 350, easing: "easeOutQuart", queue: !1, complete: function () { 94 t(this).css("height", "") 95 }}) : e.siblings(".collapsible-body").stop(!0, !1).slideUp({duration: 350, easing: "easeOutQuart", queue: !1, complete: function () { 96 t(this).css("height", "") 97 }}), s.not(e).removeClass("active").parent().removeClass("active"), s.not(e).parent().children(".collapsible-body").stop(!0, !1).slideUp({duration: 350, easing: "easeOutQuart", queue: !1, complete: function () { 98 t(this).css("height", "") 99 }}) 100 } 101 function i(e) { 102 e.hasClass("active") ? e.parent().addClass("active") : e.parent().removeClass("active"), e.parent().hasClass("active") ? e.siblings(".collapsible-body").stop(!0, !1).slideDown({duration: 350, easing: "easeOutQuart", queue: !1, complete: function () { 103 t(this).css("height", "") 104 }}) : e.siblings(".collapsible-body").stop(!0, !1).slideUp({duration: 350, easing: "easeOutQuart", queue: !1, complete: function () { 105 t(this).css("height", "") 106 }}) 107 } 108 function o(t) { 109 return a(t).length > 0 110 } 111 function a(t) { 112 return t.closest("li > .collapsible-header") 113 } 114 var r = t(this), s = t(this).find("> li > .collapsible-header"), l = r.data("collapsible"); 115 r.off("click.collapse", ".collapsible-header"), s.off("click.collapse"), e.accordion || "accordion" === l || void 0 === l ? ((s = r.find("> li > .collapsible-header")).on("click.collapse", function (e) { 116 var i = t(e.target); 117 o(i) && (i = a(i)), i.toggleClass("active"), n(i) 118 }), n(s.filter(".active").first())) : s.each(function () { 119 t(this).on("click.collapse", function (e) { 120 var n = t(e.target); 121 o(n) && (n = a(n)), n.toggleClass("active"), i(n) 122 }), t(this).hasClass("active") && i(t(this)) 123 }) 124 }) 125 }, t(document).ready(function () { 126 t(".collapsible").collapsible() 127 }) 128 }(jQuery), function (t) { 129 t.fn.scrollTo = function (e) { 130 return t(this).scrollTop(t(this).scrollTop() - t(this).offset().top + t(e).offset().top), this 131 }, t.fn.dropdown = function (e) { 132 var n = {inDuration: 300, outDuration: 225, constrain_width: !0, hover: !0, gutter: 0, belowOrigin: !1, alignment: "left"}; 133 this.each(function () { 134 function i() { 135 void 0 !== r.data("induration") && (s.inDuration = r.data("inDuration")), void 0 !== r.data("outduration") && (s.outDuration = r.data("outDuration")), void 0 !== r.data("constrainwidth") && (s.constrain_width = r.data("constrainwidth")), void 0 !== r.data("hover") && (s.hover = r.data("hover")), void 0 !== r.data("gutter") && (s.gutter = r.data("gutter")), void 0 !== r.data("beloworigin") && (s.belowOrigin = r.data("beloworigin")), void 0 !== r.data("alignment") && (s.alignment = r.data("alignment")) 136 } 137 function o(e) { 138 "focus" === e && (l = !0), i(), c.addClass("active"), r.addClass("active"), !0 === s.constrain_width ? c.css("width", r.outerWidth()) : c.css("white-space", "nowrap");
139 var n = window.innerHeight, o = r.innerHeight(), a = r.offset().left, u = r.offset().top - t(window).scrollTop(), d = s.alignment, h = 0, p = 0, f = 0; 140 !0 === s.belowOrigin && (f = o); 141 var m = 0, g = r.parent(); 142 if (!g.is("body") && g[0].scrollHeight > g[0].clientHeight && (m = g[0].scrollTop), a + c.innerWidth() > t(window).width() ? d = "right" : a - c.innerWidth() + r.innerWidth() < 0 && (d = "left"), u + c.innerHeight() > n) 143 if (u + o - c.innerHeight() < 0) { 144 var v = n - u - f; 145 c.css("max-height", v) 146 } else 147 f || (f += o), f -= c.innerHeight(); 148 "left" === d ? (h = s.gutter, p = r.position().left + h) : "right" === d && (p = r.position().left + r.outerWidth() - c.outerWidth() + (h = -s.gutter)), c.css({position: "absolute", top: r.position().top + f + m, left: p}), c.stop(!0, !0).css("opacity", 0).slideDown({queue: !1, duration: s.inDuration, easing: "easeOutCubic", complete: function () { 149 t(this).css("height", "") 150 }}).animate({opacity: 1}, {queue: !1, duration: s.inDuration, easing: "easeOutSine"}) 151 } 152 function a() { 153 l = !1, c.fadeOut(s.outDuration), c.removeClass("active"), r.removeClass("active"), setTimeout(function () { 154 c.css("max-height", "") 155 }, s.outDuration) 156 } 157 var r = t(this), s = t.extend({}, n, e), l = !1, c = t("#" + r.attr("data-activates")); 158 if (i(), r.after(c), s.hover) { 159 var u = !1; 160 r.unbind("click." + r.attr("id")), r.on("mouseenter", function (t) { 161 !1 === u && (o(), u = !0) 162 }), r.on("mouseleave", function (e) { 163 var n = e.toElement || e.relatedTarget; 164 t(n).closest(".dropdown-content").is(c) || (c.stop(!0, !0), a(), u = !1) 165 }), c.on("mouseleave", function (e) { 166 var n = e.toElement || e.relatedTarget; 167 t(n).closest(".dropdown-button").is(r) || (c.stop(!0, !0), a(), u = !1) 168 }) 169 } else 170 r.unbind("click." + r.attr("id")), r.bind("click." + r.attr("id"), function (e) { 171 l || (r[0] != e.currentTarget || r.hasClass("active") || 0 !== t(e.target).closest(".dropdown-content").length ? r.hasClass("active") && (a(), t(document).unbind("click." + c.attr("id") + " touchstart." + c.attr("id"))) : (e.preventDefault(), o("click")), c.hasClass("active") && t(document).bind("click." + c.attr("id") + " touchstart." + c.attr("id"), function (e) { 172 c.is(e.target) || r.is(e.target) || r.find(e.target).length || (a(), t(document).unbind("click." + c.attr("id") + " touchstart." + c.attr("id"))) 173 })) 174 }); 175 r.on("open", function (t, e) { 176 o(e) 177 }), r.on("close", a) 178 }) 179 }, t(document).ready(function () { 180 t(".dropdown-button").dropdown() 181 }) 182 }(jQuery); 183 var dropdownSelectors = $(".dropdown, .dropup"); 184 dropdownSelectors.on({"show.bs.dropdown": function () { 185 $(this).find(".dropdown-menu").first().stop(!0, !0).fadeIn(); 186 var t = dropdownEffectData(this); 187 dropdownEffectStart(t, t.effectIn) 188 }, "shown.bs.dropdown": function () { 189 var t = dropdownEffectData(this); 190 t.effectIn && t.effectOut && dropdownEffectEnd(t, function () {}) 191 }, "hide.bs.dropdown": function (t) { 192 $(this).find(".dropdown-menu").first().stop(!0, !0).fadeOut(); 193 var e = dropdownEffectData(this); 194 e.effectOut && (t.preventDefault(), dropdownEffectStart(e, e.effectOut), dropdownEffectEnd(e, function () { 195 e.dropdown.removeClass("open"), e.dropdown.removeClass("show") 196 })) 197 }}), function (t) { 198 t(document).on("change", '.file-field input[type="file"]', function (e) { 199 for (var n = t(e.target), i = n.closest(".file-field").find("input.file-path"), o = n[0].files, a = [], r = 0; r < o.length; r++) { 200 var s = o[r].name; 201 a.push(s) 202 } 203 i.val(a.join(", ")), i.trigger("change") 204 }) 205 }(jQuery), function (t) { 206 t(document).ready(function () { 207 var e = ["text", "password", "email", "url", "tel", "number", "search", "search-md"].map(function (t) { 208 return"input[type=" + t + "]" 209 }).join(", ") + ", textarea", n = function (t) { 210 var e = t.siblings("label, i"), n = t.val().length, i = t.attr("placeholder"); 211 e[(n || i ? "add" : "remove") + "Class"]("active") 212 }, i = function (t) {
213 if (t.hasClass("validate")) { 214 var e = t.val(), n = !e.length, i = !t[0].validity.badInput; 215 if (n && i) 216 t.removeClass("valid").removeClass("invalid"); 217 else { 218 var o = t.is(":valid"), a = +t.attr("length") || 0; 219 o && (!a || a > e.length) ? t.removeClass("invalid").addClass("valid") : t.removeClass("valid").addClass("invalid") 220 } 221 } 222 }, o = function () { 223 var e = t(void 0); 224 if (e.val().length) { 225 var n = t(".hiddendiv"), i = e.css("font-family"), o = e.css("font-size"); 226 o && hiddenDiv.css("font-size", o), i && hiddenDiv.css("font-family", i), "off" === e.attr("wrap") && hiddenDiv.css("overflow-wrap", "normal").css("white-space", "pre"), n.text(e.val() + "\n"); 227 var a = hiddenDiv.html().replace(/\n/g, "<br>"); 228 n.html(a), n.css("width", e.is(":visible") ? e.width() : t(window).width() / 2), e.css("height", n.height()) 229 } 230 }; 231 t(e).each(function (e, i) { 232 var o = t(i), a = o.siblings("label, i"); 233 n(o), i.validity.badInput && a.addClass("active") 234 }), t(document).on("focus", e, function (e) { 235 t(e.target).siblings("label, i").addClass("active") 236 }), t(document).on("blur", e, function (e) { 237 var n = t(e.target), o = !n.val(), a = !e.target.validity.badInput, r = void 0 === n.attr("placeholder"); 238 o && a && r && n.siblings("label, i").removeClass("active"), i(n) 239 }), t(document).on("change", e, function (e) { 240 var o = t(e.target); 241 n(o), i(o) 242 }), t("input[autofocus]").siblings("label, i").addClass("active"), t(document).on("reset", function (n) { 243 var i = t(n.target); 244 i.is("form") && (i.find(e).removeClass("valid").removeClass("invalid").each(function (e, n) { 245 var i = t(n), o = !i.val(), a = !i.attr("placeholder"); 246 o && a && i.siblings("label, i").removeClass("active") 247 }), i.find("select.initialized").each(function (e, n) { 248 var i = t(n), o = i.siblings("input.select-dropdown"), a = i.children("[selected]").val(); 249 i.val(a), o.val(a) 250 })) 251 }), t(".hiddendiv").first().length || ($hiddenDiv = t('<div class="hiddendiv common"></div>'), t("body").append($hiddenDiv)), t(".materialize-textarea").each(o), t("body").on("keyup keydown", ".materialize-textarea", o) 252 }) 253 }(jQuery), function (t, e, n, i) { 254 "use strict"; 255 function o(t, e, n) { 256 return setTimeout(c(t, n), e) 257 } 258 function a(t, e, n) { 259 return!!Array.isArray(t) && (r(t, n[e], n), !0) 260 } 261 function r(t, e, n) { 262 var o; 263 if (t) 264 if (t.forEach) 265 t.forEach(e, n); 266 else if (t.length !== i) 267 for (o = 0; o < t.length; ) 268 e.call(n, t[o], o, t), o++; 269 else 270 for (o in t) 271 t.hasOwnProperty(o) && e.call(n, t[o], o, t) 272 } 273 function s(e, n, i) { 274 var o = "DEPRECATED METHOD: " + n + "\n" + i + " AT \n"; 275 return function () { 276 var n = new Error("get-stack-trace"), i = n && n.stack ? n.stack.replace(/^[^\(]+?[\n$]/gm, "").replace(/^\s+at\s+/gm, "").replace(/^Object.<anonymous>\s*\(/gm, "{anonymous}()@") : "Unknown Stack Trace", a = t.console && (t.console.warn || t.console.log); 277 return a && a.call(t.console, o, i), e.apply(this, arguments) 278 } 279 } 280 function l(t, e, n) { 281 var i, o = e.prototype; 282 (i = t.prototype = Object.create(o)).constructor = t, i._super = o, n && ut(i, n) 283 } 284 function c(t, e) { 285 return function () { 286 return t.apply(e, arguments) 287 } 288 } 289 function u(t, e) { 290 return typeof t == pt ? t.apply(e ? e[0] || i : i, e) : t 291 } 292 function d(t, e) { 293 return t === i ? e : t 294 } 295 function h(t, e, n) { 296 r(g(e), function (e) { 297 t.addEventListener(e, n, !1) 298 }) 299 } 300 function p(t, e, n) { 301 r(g(e), function (e) { 302 t.removeEventListener(e, n, !1) 303 }) 304 } 305 function f(t, e) { 306 for (; t; ) { 307 if (t == e) 308 return!0; 309 t = t.parentNode 310 } 311 return!1 312 } 313 function m(t, e) { 314 return t.indexOf(e) > -1 315 } 316 function g(t) { 317 return t.trim().split(/\s+/g) 318 } 319 function v(t, e, n) { 320 if (t.indexOf && !n) 321 return t.indexOf(e); 322 for (var i = 0; i < t.length; ) { 323 if (n && t[i][n] == e || !n && t[i] === e) 324 return i; 325 i++ 326 } 327 return-1 328 } 329 function y(t) { 330 return Array.prototype.slice.call(t, 0) 331 } 332 function b(t, e, n) { 333 for (var i = [], o = [], a = 0; a < t.length; ) { 334 var r = e ? t[a][e] : t[a]; 335 v(o, r) < 0 && i.push(t[a]), o[a] = r, a++ 336 } 337 return n && (i = e ? i.sort(function (t, n) { 338 return t[e] > n[e] 339 }) : i.sort()), i 340 } 341 function x(t, e) { 342 for (var n, o, a = e[0].toUpperCase() + e.slice(1), r = 0; r < dt.length; ) { 343 if (n = dt[r], (o = n ? n + a : e)in t) 344 return o; 345 r++ 346 } 347 return i 348 } 349 function w() { 350 return bt++ 351 } 352 function k(e) { 353 var n = e.ownerDocument || e; 354 return n.defaultView || n.parentWindow || t 355 } 356 function C(t, e) { 357 var n = this; 358 this.manager = t, this.callback = e, this.element = t.element, this.target = t.options.inputTarget, this.domHandler = function (e) { 359 u(t.options.enable, [t]) && n.handler(e) 360 }, this.init() 361 } 362 function S(t) { 363 var e = t.options.inputClass; 364 return new (e || (kt ? V : Ct ? H : wt ? Y : W))(t, T) 365 } 366 function T(t, e, n) { 367 var i = n.pointers.length, o = n.changedPointers.length, a = e & Tt && i - o == 0, r = e & (It | At) && i - o == 0; 368 n.isFirst = !!a, n.isFinal = !!r, a && (t.session = {}), n.eventType = e, M(t, n), t.emit("hammer.input", n), t.recognize(n), t.session.prevInput = n 369 } 370 function M(t, e) { 371 var n = t.session, i = e.pointers, o = i.length; 372 n.firstInput || (n.firstInput = P(e)), o > 1 && !n.firstMultiple ? n.firstMultiple = P(e) : 1 === o && (n.firstMultiple = !1);
vendor: 23,844 bytes, lines 373-773
373 var a = n.firstInput, r = n.firstMultiple, s = r ? r.center : a.center, l = e.center = _(i); 374 e.timeStamp = gt(), e.deltaTime = e.timeStamp - a.timeStamp, e.angle = L(s, l), e.distance = O(s, l), I(n, e), e.offsetDirection = E(e.deltaX, e.deltaY); 375 var c = D(e.deltaTime, e.deltaX, e.deltaY); 376 e.overallVelocityX = c.x, e.overallVelocityY = c.y, e.overallVelocity = mt(c.x) > mt(c.y) ? c.x : c.y, e.scale = r ? R(r.pointers, i) : 1, e.rotation = r ? F(r.pointers, i) : 0, e.maxPointers = n.prevInput ? e.pointers.length > n.prevInput.maxPointers ? e.pointers.length : n.prevInput.maxPointers : e.pointers.length, A(n, e); 377 var u = t.element; 378 f(e.srcEvent.target, u) && (u = e.srcEvent.target), e.target = u 379 } 380 function I(t, e) { 381 var n = e.center, i = t.offsetDelta || {}, o = t.prevDelta || {}, a = t.prevInput || {}; 382 e.eventType !== Tt && a.eventType !== It || (o = t.prevDelta = {x: a.deltaX || 0, y: a.deltaY || 0}, i = t.offsetDelta = {x: n.x, y: n.y}), e.deltaX = o.x + (n.x - i.x), e.deltaY = o.y + (n.y - i.y) 383 } 384 function A(t, e) { 385 var n, o, a, r, s = t.lastInterval || e, l = e.timeStamp - s.timeStamp; 386 if (e.eventType != At && (l > St || s.velocity === i)) { 387 var c = e.deltaX - s.deltaX, u = e.deltaY - s.deltaY, d = D(l, c, u); 388 o = d.x, a = d.y, n = mt(d.x) > mt(d.y) ? d.x : d.y, r = E(c, u), t.lastInterval = e 389 } else 390 n = s.velocity, o = s.velocityX, a = s.velocityY, r = s.direction; 391 e.velocity = n, e.velocityX = o, e.velocityY = a, e.direction = r 392 } 393 function P(t) { 394 for (var e = [], n = 0; n < t.pointers.length; ) 395 e[n] = {clientX: ft(t.pointers[n].clientX), clientY: ft(t.pointers[n].clientY)}, n++; 396 return{timeStamp: gt(), pointers: e, center: _(e), deltaX: t.deltaX, deltaY: t.deltaY} 397 } 398 function _(t) { 399 var e = t.length; 400 if (1 === e) 401 return{x: ft(t[0].clientX), y: ft(t[0].clientY)}; 402 for (var n = 0, i = 0, o = 0; o < e; ) 403 n += t[o].clientX, i += t[o].clientY, o++; 404 return{x: ft(n / e), y: ft(i / e)} 405 } 406 function D(t, e, n) { 407 return{x: e / t || 0, y: n / t || 0} 408 } 409 function E(t, e) { 410 return t === e ? Pt : mt(t) >= mt(e) ? t < 0 ? _t : Dt : e < 0 ? Et : Ot 411 } 412 function O(t, e, n) { 413 n || (n = Wt); 414 var i = e[n[0]] - t[n[0]], o = e[n[1]] - t[n[1]]; 415 return Math.sqrt(i * i + o * o) 416 } 417 function L(t, e, n) { 418 n || (n = Wt); 419 var i = e[n[0]] - t[n[0]], o = e[n[1]] - t[n[1]]; 420 return 180 * Math.atan2(o, i) / Math.PI 421 } 422 function F(t, e) { 423 return L(e[1], e[0], Vt) + L(t[1], t[0], Vt) 424 } 425 function R(t, e) { 426 return O(e[0], e[1], Vt) / O(t[0], t[1], Vt) 427 } 428 function W() { 429 this.evEl = Nt, this.evWin = Ht, this.pressed = !1, C.apply(this, arguments) 430 } 431 function V() { 432 this.evEl = jt, this.evWin = $t, C.apply(this, arguments), this.store = this.manager.session.pointerEvents = [] 433 } 434 function z() { 435 this.evTarget = qt, this.evWin = Ut, this.started = !1, C.apply(this, arguments) 436 } 437 function N(t, e) { 438 var n = y(t.touches), i = y(t.changedTouches); 439 return e & (It | At) && (n = b(n.concat(i), "identifier", !0)), [n, i] 440 } 441 function H() { 442 this.evTarget = Zt, this.targetIds = {}, C.apply(this, arguments) 443 } 444 function B(t, e) { 445 var n = y(t.touches), i = this.targetIds; 446 if (e & (Tt | Mt) && 1 === n.length) 447 return i[n[0].identifier] = !0, [n, n]; 448 var o, a, r = y(t.changedTouches), s = [], l = this.target; 449 if (a = n.filter(function (t) { 450 return f(t.target, l) 451 }), e === Tt) 452 for (o = 0; o < a.length; ) 453 i[a[o].identifier] = !0, o++; 454 for (o = 0; o < r.length; ) 455 i[r[o].identifier] && s.push(r[o]), e & (It | At) && delete i[r[o].identifier], o++; 456 return s.length ? [b(a.concat(s), "identifier", !0), s] : void 0 457 } 458 function Y() { 459 C.apply(this, arguments); 460 var t = c(this.handler, this); 461 this.touch = new H(this.manager, t), this.mouse = new W(this.manager, t), this.primaryTouch = null, this.lastTouches = [] 462 } 463 function j(t, e) { 464 t & Tt ? (this.primaryTouch = e.changedPointers[0].identifier, $.call(this, e)) : t & (It | At) && $.call(this, e) 465 } 466 function $(t) { 467 var e = t.changedPointers[0]; 468 if (e.identifier === this.primaryTouch) { 469 var n = {x: e.clientX, y: e.clientY}; 470 this.lastTouches.push(n); 471 var i = this.lastTouches; 472 setTimeout(function () { 473 var t = i.indexOf(n); 474 t > -1 && i.splice(t, 1) 475 }, Gt) 476 } 477 } 478 function X(t) { 479 for (var e = t.srcEvent.clientX, n = t.srcEvent.clientY, i = 0; i < this.lastTouches.length; i++) { 480 var o = this.lastTouches[i], a = Math.abs(e - o.x), r = Math.abs(n - o.y); 481 if (a <= Kt && r <= Kt) 482 return!0 483 } 484 return!1 485 } 486 function q(t, e) { 487 this.manager = t, this.set(e) 488 } 489 function U(t) { 490 if (m(t, ie)) 491 return ie; 492 var e = m(t, oe), n = m(t, ae); 493 return e && n ? ie : e || n ? e ? oe : ae : m(t, ne) ? ne : ee 494 } 495 function Q(t) { 496 this.options = ut({}, this.defaults, t || {}), this.id = w(), this.manager = null, this.options.enable = d(this.options.enable, !0), this.state = se, this.simultaneous = {}, this.requireFail = [] 497 } 498 function Z(t) { 499 return t & he ? "cancel" : t & ue ? "end" : t & ce ? "move" : t & le ? "start" : "" 500 } 501 function G(t) { 502 return t == Ot ? "down" : t == Et ? "up" : t == _t ? "left" : t == Dt ? "right" : "" 503 } 504 function K(t, e) { 505 var n = e.manager; 506 return n ? n.get(t) : t 507 } 508 function J() { 509 Q.apply(this, arguments) 510 } 511 function tt() { 512 J.apply(this, arguments), this.pX = null, this.pY = null 513 } 514 function et() { 515 J.apply(this, arguments) 516 } 517 function nt() { 518 Q.apply(this, arguments), this._timer = null, this._input = null 519 } 520 function it() { 521 J.apply(this, arguments) 522 } 523 function ot() { 524 J.apply(this, arguments) 525 } 526 function at() { 527 Q.apply(this, arguments), this.pTime = !1, this.pCenter = !1, this._timer = null, this._input = null, this.count = 0 528 } 529 function rt(t, e) { 530 return e = e || {}, e.recognizers = d(e.recognizers, rt.defaults.preset), new st(t, e) 531 } 532 function st(t, e) { 533 this.options = ut({}, rt.defaults, e || {}), this.options.inputTarget = this.options.inputTarget || t, this.handlers = {}, this.session = {}, this.recognizers = [], this.oldCssProps = {}, this.element = t, this.input = S(this), this.touchAction = new q(this, this.options.touchAction), lt(this, !0), r(this.options.recognizers, function (t) { 534 var e = this.add(new t[0](t[1])); 535 t[2] && e.recognizeWith(t[2]), t[3] && e.requireFailure(t[3]) 536 }, this) 537 } 538 function lt(t, e) { 539 var n = t.element; 540 if (n.style) { 541 var i; 542 r(t.options.cssProps, function (o, a) { 543 i = x(n.style, a), e ? (t.oldCssProps[i] = n.style[i], n.style[i] = o) : n.style[i] = t.oldCssProps[i] || "" 544 }), e || (t.oldCssProps = {}) 545 } 546 } 547 function ct(t, n) { 548 var i = e.createEvent("Event"); 549 i.initEvent(t, !0, !0), i.gesture = n, n.target.dispatchEvent(i) 550 } 551 var ut, dt = ["", "webkit", "Moz", "MS", "ms", "o"], ht = e.createElement("div"), pt = "function", ft = Math.round, mt = Math.abs, gt = Date.now; 552 ut = "function" != typeof Object.assign ? function (t) { 553 if (t === i || null === t) 554 throw new TypeError("Cannot convert undefined or null to object"); 555 for (var e = Object(t), n = 1; n < arguments.length; n++) { 556 var o = arguments[n]; 557 if (o !== i && null !== o) 558 for (var a in o) 559 o.hasOwnProperty(a) && (e[a] = o[a]) 560 } 561 return e 562 } : Object.assign; 563 var vt = s(function (t, e, n) { 564 for (var o = Object.keys(e), a = 0; a < o.length; ) 565 (!n || n && t[o[a]] === i) && (t[o[a]] = e[o[a]]), a++; 566 return t 567 }, "extend", "Use `assign`."), yt = s(function (t, e) { 568 return vt(t, e, !0) 569 }, "merge", "Use `assign`."), bt = 1, xt = /mobile|tablet|ip(ad|hone|od)|android/i, wt = "ontouchstart"in t, kt = x(t, "PointerEvent") !== i, Ct = wt && xt.test(navigator.userAgent), St = 25, Tt = 1, Mt = 2, It = 4, At = 8, Pt = 1, _t = 2, Dt = 4, Et = 8, Ot = 16, Lt = _t | Dt, Ft = Et | Ot, Rt = Lt | Ft, Wt = ["x", "y"], Vt = ["clientX", "clientY"]; 570 C.prototype = {handler: function () {}, init: function () { 571 this.evEl && h(this.element, this.evEl, this.domHandler), this.evTarget && h(this.target, this.evTarget, this.domHandler), this.evWin && h(k(this.element), this.evWin, this.domHandler) 572 }, destroy: function () { 573 this.evEl && p(this.element, this.evEl, this.domHandler), this.evTarget && p(this.target, this.evTarget, this.domHandler), this.evWin && p(k(this.element), this.evWin, this.domHandler) 574 }}; 575 var zt = {mousedown: Tt, mousemove: Mt, mouseup: It}, Nt = "mousedown", Ht = "mousemove mouseup"; 576 l(W, C, {handler: function (t) { 577 var e = zt[t.type]; 578 e & Tt && 0 === t.button && (this.pressed = !0), e & Mt && 1 !== t.which && (e = It), this.pressed && (e & It && (this.pressed = !1), this.callback(this.manager, e, {pointers: [t], changedPointers: [t], pointerType: "mouse", srcEvent: t})) 579 }}); 580 var Bt = {pointerdown: Tt, pointermove: Mt, pointerup: It, pointercancel: At, pointerout: At}, Yt = {2: "touch", 3: "pen", 4: "mouse", 5: "kinect"}, jt = "pointerdown", $t = "pointermove pointerup pointercancel"; 581 t.MSPointerEvent && !t.PointerEvent && (jt = "MSPointerDown", $t = "MSPointerMove MSPointerUp MSPointerCancel"), l(V, C, {handler: function (t) { 582 var e = this.store, n = !1, i = t.type.toLowerCase().replace("ms", ""), o = Bt[i], a = Yt[t.pointerType] || t.pointerType, r = "touch" == a, s = v(e, t.pointerId, "pointerId"); 583 o & Tt && (0 === t.button || r) ? s < 0 && (e.push(t), s = e.length - 1) : o & (It | At) && (n = !0), s < 0 || (e[s] = t, this.callback(this.manager, o, {pointers: e, changedPointers: [t], pointerType: a, srcEvent: t}), n && e.splice(s, 1)) 584 }}); 585 var Xt = {touchstart: Tt, touchmove: Mt, touchend: It, touchcancel: At}, qt = "touchstart", Ut = "touchstart touchmove touchend touchcancel"; 586 l(z, C, {handler: function (t) { 587 var e = Xt[t.type]; 588 if (e === Tt && (this.started = !0), this.started) { 589 var n = N.call(this, t, e); 590 e & (It | At) && n[0].length - n[1].length == 0 && (this.started = !1), this.callback(this.manager, e, {pointers: n[0], changedPointers: n[1], pointerType: "touch", srcEvent: t}) 591 } 592 }}); 593 var Qt = {touchstart: Tt, touchmove: Mt, touchend: It, touchcancel: At}, Zt = "touchstart touchmove touchend touchcancel"; 594 l(H, C, {handler: function (t) { 595 var e = Qt[t.type], n = B.call(this, t, e); 596 n && this.callback(this.manager, e, {pointers: n[0], changedPointers: n[1], pointerType: "touch", srcEvent: t}) 597 }}); 598 var Gt = 2500, Kt = 25; 599 l(Y, C, {handler: function (t, e, n) { 600 var i = "touch" == n.pointerType, o = "mouse" == n.pointerType; 601 if (!(o && n.sourceCapabilities && n.sourceCapabilities.firesTouchEvents)) { 602 if (i) 603 j.call(this, e, n); 604 else if (o && X.call(this, n)) 605 return; 606 this.callback(t, e, n) 607 } 608 }, destroy: function () { 609 this.touch.destroy(), this.mouse.destroy() 610 }}); 611 var Jt = x(ht.style, "touchAction"), te = Jt !== i, ee = "auto", ne = "manipulation", ie = "none", oe = "pan-x", ae = "pan-y", re = function () { 612 if (!te) 613 return!1; 614 var e = {}, n = t.CSS && t.CSS.supports; 615 return["auto", "manipulation", "pan-y", "pan-x", "pan-x pan-y", "none"].forEach(function (i) { 616 e[i] = !n || t.CSS.supports("touch-action", i) 617 }), e 618 }(); 619 q.prototype = {set: function (t) { 620 "compute" == t && (t = this.compute()), te && this.manager.element.style && re[t] && (this.manager.element.style[Jt] = t), this.actions = t.toLowerCase().trim() 621 }, update: function () { 622 this.set(this.manager.options.touchAction) 623 }, compute: function () { 624 var t = []; 625 return r(this.manager.recognizers, function (e) { 626 u(e.options.enable, [e]) && (t = t.concat(e.getTouchAction())) 627 }), U(t.join(" ")) 628 }, preventDefaults: function (t) { 629 var e = t.srcEvent, n = t.offsetDirection; 630 if (this.manager.session.prevented) 631 e.preventDefault(); 632 else { 633 var i = this.actions, o = m(i, ie) && !re[ie], a = m(i, ae) && !re[ae], r = m(i, oe) && !re[oe]; 634 if (o) { 635 var s = 1 === t.pointers.length, l = t.distance < 2, c = t.deltaTime < 250; 636 if (s && l && c) 637 return 638 } 639 if (!r || !a) 640 return o || a && n & Lt || r && n & Ft ? this.preventSrc(e) : void 0 641 } 642 }, preventSrc: function (t) { 643 this.manager.session.prevented = !0, t.preventDefault() 644 }}; 645 var se = 1, le = 2, ce = 4, ue = 8, de = ue, he = 16; 646 Q.prototype = {defaults: {}, set: function (t) { 647 return ut(this.options, t), this.manager && this.manager.touchAction.update(), this 648 }, recognizeWith: function (t) { 649 if (a(t, "recognizeWith", this)) 650 return this; 651 var e = this.simultaneous; 652 return t = K(t, this), e[t.id] || (e[t.id] = t, t.recognizeWith(this)), this 653 }, dropRecognizeWith: function (t) { 654 return a(t, "dropRecognizeWith", this) ? this : (t = K(t, this), delete this.simultaneous[t.id], this) 655 }, requireFailure: function (t) { 656 if (a(t, "requireFailure", this)) 657 return this; 658 var e = this.requireFail; 659 return t = K(t, this), -1 === v(e, t) && (e.push(t), t.requireFailure(this)), this 660 }, dropRequireFailure: function (t) { 661 if (a(t, "dropRequireFailure", this)) 662 return this; 663 t = K(t, this); 664 var e = v(this.requireFail, t); 665 return e > -1 && this.requireFail.splice(e, 1), this 666 }, hasRequireFailures: function () { 667 return this.requireFail.length > 0 668 }, canRecognizeWith: function (t) { 669 return!!this.simultaneous[t.id] 670 }, emit: function (t) { 671 function e(e) { 672 n.manager.emit(e, t) 673 } 674 var n = this, i = this.state; 675 i < ue && e(n.options.event + Z(i)), e(n.options.event), t.additionalEvent && e(t.additionalEvent), i >= ue && e(n.options.event + Z(i)) 676 }, tryEmit: function (t) { 677 if (this.canEmit()) 678 return this.emit(t); 679 this.state = 32 680 }, canEmit: function () { 681 for (var t = 0; t < this.requireFail.length; ) { 682 if (!(this.requireFail[t].state & (32 | se))) 683 return!1; 684 t++ 685 } 686 return!0 687 }, recognize: function (t) { 688 var e = ut({}, t); 689 if (!u(this.options.enable, [this, e])) 690 return this.reset(), void(this.state = 32); 691 this.state & (de | he | 32) && (this.state = se), this.state = this.process(e), this.state & (le | ce | ue | he) && this.tryEmit(e) 692 }, process: function (t) {}, getTouchAction: function () {}, reset: function () {}}, l(J, Q, {defaults: {pointers: 1}, attrTest: function (t) { 693 var e = this.options.pointers; 694 return 0 === e || t.pointers.length === e 695 }, process: function (t) { 696 var e = this.state, n = t.eventType, i = e & (le | ce), o = this.attrTest(t); 697 return i && (n & At || !o) ? e | he : i || o ? n & It ? e | ue : e & le ? e | ce : le : 32 698 }}), l(tt, J, {defaults: {event: "pan", threshold: 10, pointers: 1, direction: Rt}, getTouchAction: function () { 699 var t = this.options.direction, e = []; 700 return t & Lt && e.push(ae), t & Ft && e.push(oe), e 701 }, directionTest: function (t) { 702 var e = this.options, n = !0, i = t.distance, o = t.direction, a = t.deltaX, r = t.deltaY; 703 return o & e.direction || (e.direction & Lt ? (o = 0 === a ? Pt : a < 0 ? _t : Dt, n = a != this.pX, i = Math.abs(t.deltaX)) : (o = 0 === r ? Pt : r < 0 ? Et : Ot, n = r != this.pY, i = Math.abs(t.deltaY))), t.direction = o, n && i > e.threshold && o & e.direction 704 }, attrTest: function (t) { 705 return J.prototype.attrTest.call(this, t) && (this.state & le || !(this.state & le) && this.directionTest(t)) 706 }, emit: function (t) { 707 this.pX = t.deltaX, this.pY = t.deltaY; 708 var e = G(t.direction); 709 e && (t.additionalEvent = this.options.event + e), this._super.emit.call(this, t) 710 }}), l(et, J, {defaults: {event: "pinch", threshold: 0, pointers: 2}, getTouchAction: function () { 711 return[ie] 712 }, attrTest: function (t) { 713 return this._super.attrTest.call(this, t) && (Math.abs(t.scale - 1) > this.options.threshold || this.state & le) 714 }, emit: function (t) { 715 if (1 !== t.scale) { 716 var e = t.scale < 1 ? "in" : "out"; 717 t.additionalEvent = this.options.event + e 718 } 719 this._super.emit.call(this, t) 720 }}), l(nt, Q, {defaults: {event: "press", pointers: 1, time: 251, threshold: 9}, getTouchAction: function () { 721 return[ee] 722 }, process: function (t) { 723 var e = this.options, n = t.pointers.length === e.pointers, i = t.distance < e.threshold, a = t.deltaTime > e.time; 724 if (this._input = t, !i || !n || t.eventType & (It | At) && !a) 725 this.reset(); 726 else if (t.eventType & Tt) 727 this.reset(), this._timer = o(function () { 728 this.state = de, this.tryEmit() 729 }, e.time, this); 730 else if (t.eventType & It) 731 return de; 732 return 32 733 }, reset: function () { 734 clearTimeout(this._timer) 735 }, emit: function (t) { 736 this.state === de && (t && t.eventType & It ? this.manager.emit(this.options.event + "up", t) : (this._input.timeStamp = gt(), this.manager.emit(this.options.event, this._input))) 737 }}), l(it, J, {defaults: {event: "rotate", threshold: 0, pointers: 2}, getTouchAction: function () { 738 return[ie] 739 }, attrTest: function (t) { 740 return this._super.attrTest.call(this, t) && (Math.abs(t.rotation) > this.options.threshold || this.state & le) 741 }}), l(ot, J, {defaults: {event: "swipe", threshold: 10, velocity: .3, direction: Lt | Ft, pointers: 1}, getTouchAction: function () { 742 return tt.prototype.getTouchAction.call(this) 743 }, attrTest: function (t) { 744 var e, n = this.options.direction; 745 return n & (Lt | Ft) ? e = t.overallVelocity : n & Lt ? e = t.overallVelocityX : n & Ft && (e = t.overallVelocityY), this._super.attrTest.call(this, t) && n & t.offsetDirection && t.distance > this.options.threshold && t.maxPointers == this.options.pointers && mt(e) > this.options.velocity && t.eventType & It 746 }, emit: function (t) { 747 var e = G(t.offsetDirection); 748 e && this.manager.emit(this.options.event + e, t), this.manager.emit(this.options.event, t) 749 }}), l(at, Q, {defaults: {event: "tap", pointers: 1, taps: 1, interval: 300, time: 250, threshold: 9, posThreshold: 10}, getTouchAction: function () { 750 return[ne] 751 }, process: function (t) { 752 var e = this.options, n = t.pointers.length === e.pointers, i = t.distance < e.threshold, a = t.deltaTime < e.time; 753 if (this.reset(), t.eventType & Tt && 0 === this.count) 754 return this.failTimeout(); 755 if (i && a && n) { 756 if (t.eventType != It) 757 return this.failTimeout(); 758 var r = !this.pTime || t.timeStamp - this.pTime < e.interval, s = !this.pCenter || O(this.pCenter, t.center) < e.posThreshold; 759 if (this.pTime = t.timeStamp, this.pCenter = t.center, s && r ? this.count += 1 : this.count = 1, this._input = t, 0 === this.count % e.taps) 760 return this.hasRequireFailures() ? (this._timer = o(function () { 761 this.state = de, this.tryEmit() 762 }, e.interval, this), le) : de 763 } 764 return 32 765 }, failTimeout: function () { 766 return this._timer = o(function () { 767 this.state = 32 768 }, this.options.interval, this), 32 769 }, reset: function () { 770 clearTimeout(this._timer) 771 }, emit: function () { 772 this.state == de && (this._input.tapCount = this.count, this.manager.emit(this.options.event, this._input)) 773 }}), rt.VERSION = "2.0.7", rt.defaults = {domEvents: !1, touchAction: "compute", enable: !0, inputTarget: null, inputClass: null, preset
773: [[it, {enable: !1}], [et, {enable: !1}, ["rotate"]], [ot, {direction: Lt}], [tt, {direction: Lt}, ["swipe"]], [at], [at, {event: "doubletap", taps: 2}, ["tap"]], [nt]], cssProps: {userSelect: "none", touchSelect: "none", touchCallout: "none", contentZooming: "none", userDrag: "none", tapHighlightColor: "rgba(0,0,0,0)"}}; 774 st.prototype = {set: function (t) { 775 return ut(this.options, t), t.touchAction && this.touchAction.update(), t.inputTarget && (this.input.destroy(), this.input.target = t.inputTarget, this.input.init()), this 776 }, stop: function (t) { 777 this.session.stopped = t ? 2 : 1 778 }, recognize: function (t) { 779 var e = this.session; 780 if (!e.stopped) { 781 this.touchAction.preventDefaults(t); 782 var n, i = this.recognizers, o = e.curRecognizer; 783 (!o || o && o.state & de) && (o = e.curRecognizer = null); 784 for (var a = 0; a < i.length; ) 785 n = i[a], 2 === e.stopped || o && n != o && !n.canRecognizeWith(o) ? n.reset() : n.recognize(t), !o && n.state & (le | ce | ue) && (o = e.curRecognizer = n), a++ 786 } 787 }, get: function (t) { 788 if (t instanceof Q) 789 return t; 790 for (var e = this.recognizers, n = 0; n < e.length; n++) 791 if (e[n].options.event == t) 792 return e[n]; 793 return null 794 }, add: function (t) { 795 if (a(t, "add", this)) 796 return this; 797 var e = this.get(t.options.event); 798 return e && this.remove(e), this.recognizers.push(t), t.manager = this, this.touchAction.update(), t 799 }, remove: function (t) { 800 if (a(t, "remove", this)) 801 return this; 802 if (t = this.get(t)) { 803 var e = this.recognizers, n = v(e, t); 804 -1 !== n && (e.splice(n, 1), this.touchAction.update()) 805 } 806 return this 807 }, on: function (t, e) { 808 if (t !== i && e !== i) { 809 var n = this.handlers; 810 return r(g(t), function (t) { 811 n[t] = n[t] || [], n[t].push(e) 812 }), this 813 } 814 }, off: function (t, e) { 815 if (t !== i) { 816 var n = this.handlers; 817 return r(g(t), function (t) { 818 e ? n[t] && n[t].splice(v(n[t], e), 1) : delete n[t] 819 }), this 820 } 821 }, emit: function (t, e) { 822 this.options.domEvents && ct(t, e); 823 var n = this.handlers[t] && this.handlers[t].slice(); 824 if (n && n.length) { 825 e.type = t, e.preventDefault = function () { 826 e.srcEvent.preventDefault() 827 }; 828 for (var i = 0; i < n.length; ) 829 n[i](e), i++ 830 } 831 }, destroy: function () { 832 this.element && lt(this, !1), this.handlers = {}, this.session = {}, this.input.destroy(), this.element = null 833 }}, ut(rt, {INPUT_START: Tt, INPUT_MOVE: Mt, INPUT_END: It, INPUT_CANCEL: At, STATE_POSSIBLE: se, STATE_BEGAN: le, STATE_CHANGED: ce, STATE_ENDED: ue, STATE_RECOGNIZED: de, STATE_CANCELLED: he, STATE_FAILED: 32, DIRECTION_NONE: Pt, DIRECTION_LEFT: _t, DIRECTION_RIGHT: Dt, DIRECTION_UP: Et, DIRECTION_DOWN: Ot, DIRECTION_HORIZONTAL: Lt, DIRECTION_VERTICAL: Ft, DIRECTION_ALL: Rt, Manager: st, Input: C, TouchAction: q, TouchInput: H, MouseInput: W, PointerEventInput: V, TouchMouseInput: Y, SingleTouchInput: z, Recognizer: Q, AttrRecognizer: J, Tap: at, Pan: tt, Swipe: ot, Pinch: et, Rotate: it, Press: nt, on: h, off: p, each: r, merge: yt, extend: vt, assign: ut, inherit: l, bindFn: c, prefixed: x}), (void 0 !== t ? t : "undefined" != typeof self ? self : {}).Hammer = rt, "function" == typeof define && define.amd ? define(function () { 834 return rt 835 }) : "undefined" != typeof module && module.exports ? module.exports = rt : t.Hammer = rt 836 }(window, document), jQuery.easing.jswing = jQuery.easing.swing, jQuery.extend(jQuery.easing, {def: "easeOutQuad", swing: function (t, e, n, i, o) { 837 return jQuery.easing[jQuery.easing.def](t, e, n, i, o) 838 }, easeInQuad: function (t, e, n, i, o) { 839 return i * (e /= o) * e + n 840 }, easeOutQuad: function (t, e, n, i, o) { 841 return-i * (e /= o) * (e - 2) + n 842 }, easeInOutQuad: function (t, e, n, i, o) { 843 return(e /= o / 2) < 1 ? i / 2 * e * e + n : -i / 2 * (--e * (e - 2) - 1) + n 844 }, easeInCubic: function (t, e, n, i, o) { 845 return i * (e /= o) * e * e + n 846 }, easeOutCubic: function (t, e, n, i, o) { 847 return i * ((e = e / o - 1) * e * e + 1) + n 848 }, easeInOutCubic: function (t, e, n, i, o) { 849 return(e /= o / 2) < 1 ? i / 2 * e * e * e + n : i / 2 * ((e -= 2) * e * e + 2) + n 850 }, easeInQuart: function (t, e, n, i, o) { 851 return i * (e /= o) * e * e * e + n 852 }, easeOutQuart: function (t, e, n, i, o) { 853 return-i * ((e = e / o - 1) * e * e * e - 1) + n 854 }, easeInOutQuart: function (t, e, n, i, o) { 855 return(e /= o / 2) < 1 ? i / 2 * e * e * e * e + n : -i / 2 * ((e -= 2) * e * e * e - 2) + n 856 }, easeInQuint: function (t, e, n, i, o) { 857 return i * (e /= o) * e * e * e * e + n 858 }, easeOutQuint: function (t, e, n, i, o) { 859 return i * ((e = e / o - 1) * e * e * e * e + 1) + n 860 }, easeInOutQuint: function (t, e, n, i, o) { 861 return(e /= o / 2) < 1 ? i / 2 * e * e * e * e * e + n : i / 2 * ((e -= 2) * e * e * e * e + 2) + n 862 }, easeInSine: function (t, e, n, i, o) { 863 return-i * Math.cos(e / o * (Math.PI / 2)) + i + n 864 }, easeOutSine: function (t, e, n, i, o) { 865 return i * Math.sin(e / o * (Math.PI / 2)) + n 866 }, easeInOutSine: function (t, e, n, i, o) { 867 return-i / 2 * (Math.cos(Math.PI * e / o) - 1) + n 868 }, easeInExpo: function (t, e, n, i, o) { 869 return 0 == e ? n : i * Math.pow(2, 10 * (e / o - 1)) + n 870 }, easeOutExpo: function (t, e, n, i, o) { 871 return e == o ? n + i : i * (1 - Math.pow(2, -10 * e / o)) + n 872 }, easeInOutExpo: function (t, e, n, i, o) { 873 return 0 == e ? n : e == o ? n + i : (e /= o / 2) < 1 ? i / 2 * Math.pow(2, 10 * (e - 1)) + n : i / 2 * (2 - Math.pow(2, -10 * --e)) + n 874 }, easeInCirc: function (t, e, n, i, o) { 875 return-i * (Math.sqrt(1 - (e /= o) * e) - 1) + n 876 }, easeOutCirc: function (t, e, n, i, o) { 877 return i * Math.sqrt(1 - (e = e / o - 1) * e) + n 878 }, easeInOutCirc: function (t, e, n, i, o) { 879 return(e /= o / 2) < 1 ? -i / 2 * (Math.sqrt(1 - e * e) - 1) + n : i / 2 * (Math.sqrt(1 - (e -= 2) * e) + 1) + n 880 }, easeInElastic: function (t, e, n, i, o) { 881 var a = 1.70158, r = 0, s = i; 882 if (0 == e) 883 return n; 884 if (1 == (e /= o)) 885 return n + i; 886 if (r || (r = .3 * o), s < Math.abs(i)) { 887 s = i; 888 a = r / 4 889 } else 890 a = r / (2 * Math.PI) * Math.asin(i / s); 891 return-s * Math.pow(2, 10 * (e -= 1)) * Math.sin((e * o - a) * (2 * Math.PI) / r) + n 892 }, easeOutElastic: function (t, e, n, i, o) { 893 var a = 1.70158, r = 0, s = i; 894 if (0 == e) 895 return n; 896 if (1 == (e /= o)) 897 return n + i; 898 if (r || (r = .3 * o), s < Math.abs(i)) { 899 s = i; 900 a = r / 4 901 } else 902 a = r / (2 * Math.PI) * Math.asin(i / s); 903 return s * Math.pow(2, -10 * e) * Math.sin((e * o - a) * (2 * Math.PI) / r) + i + n 904 }, easeInOutElastic: function (t, e, n, i, o) { 905 var a = 1.70158, r = 0, s = i; 906 if (0 == e) 907 return n; 908 if (2 == (e /= o / 2)) 909 return n + i; 910 if (r || (r = o * (.3 * 1.5)), s < Math.abs(i)) { 911 s = i; 912 a = r / 4 913 } else 914 a = r / (2 * Math.PI) * Math.asin(i / s); 915 return e < 1 ? s * Math.pow(2, 10 * (e -= 1)) * Math.sin((e * o - a) * (2 * Math.PI) / r) * -.5 + n : s * Math.pow(2, -10 * (e -= 1)) * Math.sin((e * o - a) * (2 * Math.PI) / r) * .5 + i + n 916 }, easeInBack: function (t, e, n, i, o, a) { 917 return void 0 == a && (a = 1.70158), i * (e /= o) * e * ((a + 1) * e - a) + n 918 }, easeOutBack: function (t, e, n, i, o, a) { 919 return void 0 == a && (a = 1.70158), i * ((e = e / o - 1) * e * ((a + 1) * e + a) + 1) + n 920 }, easeInOutBack: function (t, e, n, i, o, a) { 921 return void 0 == a && (a = 1.70158), (e /= o / 2) < 1 ? i / 2 * (e * e * ((1 + (a *= 1.525)) * e - a)) + n : i / 2 * ((e -= 2) * e * ((1 + (a *= 1.525)) * e + a) + 2) + n 922 }, easeInBounce: function (t, e, n, i, o) { 923 return i - jQuery.easing.easeOutBounce(t, o - e, 0, i, o) + n 924 }, easeOutBounce: function (t, e, n, i, o) { 925 return(e /= o) < 1 / 2.75 ? i * (7.5625 * e * e) + n : e < 2 / 2.75 ? i * (7.5625 * (e -= 1.5 / 2.75) * e + .75) + n : e < 2.5 / 2.75 ? i * (7.5625 * (e -= 2.25 / 2.75) * e + .9375) + n : i * (7.5625 * (e -= 2.625 / 2.75) * e + .984375) + n 926 }, easeInOutBounce: function (t, e, n, i, o) { 927 return e < o / 2 ? .5 * jQuery.easing.easeInBounce(t, 2 * e, 0, i, o) + n : .5 * jQuery.easing.easeOutBounce(t, 2 * e - o, 0, i, o) + .5 * i + n 928 }}), function (t) { 929 "function" == typeof define && define.amd ? define(["jquery", "hammerjs"], t) : "object" == typeof exports ? t(require("jquery"), require("hammerjs")) : t(jQuery, Hammer) 930 }(function (t, e) { 931 function n(n, i) { 932 var o = t(n); 933 o.data("hammer") || o.data("hammer", new e(o[0], i)) 934 } 935 t.fn.hammer = function (t) { 936 return this.each(function () { 937 n(this, t) 938 }) 939 }, e.Manager.prototype.emit = function (e) { 940 return function (n, i) { 941 e.call(this, n, i), t(this.element).trigger({type: n, gesture: i}) 942 } 943 }(e.Manager.prototype.emit) 944 }), function (t) { 945 "use strict"; 946 function e(t) { 947 t = t || {}; 948 for (var e = 1; e < arguments.length; e++) 949 if (arguments[e]) 950 for (var n in arguments[e]) 951 arguments[e].hasOwnProperty(n) && (t[n] = arguments[e][n]); 952 return t 953 } 954 function n() { 955 this._done = [], this._fail = [] 956 } 957 function i(t, e, n) { 958 t.addEventListener ? t.addEventListener(e, n) : t.attachEvent("on" + e, function () { 959 n.call(t) 960 }) 961 } 962 n.prototype = {execute: function (t, e) { 963 var n = t.length; 964 for (e = Array.prototype.slice.call(e); n--; ) 965 t[n].apply(null, e) 966 }, resolve: function () { 967 this.execute(this._done, arguments) 968 }, reject: function () { 969 this.execute(this._fail, arguments) 970 }, done: function (t) { 971 this._done.push(t) 972 }, fail: function (t) { 973 this._fail.push(t) 974 }}; 975 var o = function () { 976 var t = 0; 977 return function (n, i) { 978 var o = this; 979 o.url = n, o.options_default = {autoplay: 1, loop: 1, mute: 1, controls: 0, startTime: 0, endTime: 0}, o.options = e({}, o.options_default, i), o.videoID = o.parseURL(n), o.videoID && (o.ID = t++, o.loadAPI(), o.init()) 980 } 981 }(); 982 o.prototype.parseURL = function (t) { 983 var e = function (t) { 984 var e = /.*(?:youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=)([^#\&\?]*).*/, n = t.match(e); 985 return!(!n || 11 !== n[1].length) && n[1] 986 }(t), n = function (t) { 987 var e = /https?:\/\/(?:www\.|player\.)?vimeo.com\/(?:channels\/(?:\w+\/)?|groups\/([^\/]*)\/videos\/|album\/(\d+)\/video\/|video\/|)(\d+)(?:$|\/|\?)/, n = t.match(e); 988 return!(!n || !n[3]) && n[3] 989 }(t), i = function (t) { 990 for (var e = t.split(/,(?=mp4\:|webm\:|ogv\:|ogg\:)/), n = {}, i = 0, o = 0; o < e.length; o++) { 991 var a = e[o].match(/^(mp4|webm|ogv|ogg)\:(.*)/); 992 a && a[1] && a[2] && (n["ogv" === a[1] ? "ogg" : a[1]] = a[2], i = 1) 993 } 994 return!!i && n 995 }(t);
996 return e ? (this.type = "youtube", e) : n ? (this.type = "vimeo", n) : !!i && (this.type = "local", i) 997 }, o.prototype.isValid = function () { 998 return!!this.videoID 999 }, o.prototype.on = function (t, e) { 1000 this.userEventsList = this.userEventsList || [], (this.userEventsList[t] || (this.userEventsList[t] = [])).push(e) 1001 }, o.prototype.off = function (t, e) { 1002 if (this.userEventsList && this.userEventsList[t]) 1003 if (e) 1004 for (var n = 0; n < this.userEventsList[t].length; n++) 1005 this.userEventsList[t][n] === e && (this.userEventsList[t][n] = !1); 1006 else 1007 delete this.userEventsList[t] 1008 }, o.prototype.fire = function (t) { 1009 var e = [].slice.call(arguments, 1); 1010 if (this.userEventsList && void 0 !== this.userEventsList[t]) 1011 for (var n in this.userEventsList[t]) 1012 this.userEventsList[t][n] && this.userEventsList[t][n].apply(this, e) 1013 }, o.prototype.play = function (t) { 1014 var e = this; 1015 e.player && ("youtube" === e.type && e.player.playVideo && (void 0 !== t && e.player.seekTo(t || 0), e.player.playVideo()), "vimeo" === e.type && (void 0 !== t && e.player.setCurrentTime(t), e.player.getPaused().then(function (t) { 1016 t && e.player.play() 1017 })), "local" === e.type && (void 0 !== t && (e.player.currentTime = t), e.player.play())) 1018 }, o.prototype.pause = function () { 1019 this.player && ("youtube" === this.type && this.player.pauseVideo && this.player.pauseVideo(), "vimeo" === this.type && this.player.pause(), "local" === this.type && this.player.pause()) 1020 }, o.prototype.getImageURL = function (t) { 1021 var e = this; 1022 if (e.videoImage) 1023 t(e.videoImage); 1024 else { 1025 if ("youtube" === e.type) { 1026 var n = ["maxresdefault", "sddefault", "hqdefault", "0"], i = 0, o = new Image; 1027 o.onload = function () { 1028 120 !== (this.naturalWidth || this.width) || i === n.length - 1 ? (e.videoImage = "https://img.youtube.com/vi/" + e.videoID + "/" + n[i] + ".jpg", t(e.videoImage)) : (i++, this.src = "https://img.youtube.com/vi/" + e.videoID + "/" + n[i] + ".jpg") 1029 }, o.src = "https://img.youtube.com/vi/" + e.videoID + "/" + n[i] + ".jpg" 1030 } 1031 if ("vimeo" === e.type) { 1032 var a = new XMLHttpRequest; 1033 a.open("GET", "https://vimeo.com/api/v2/video/" + e.videoID + ".json", !0), a.onreadystatechange = function () { 1034 if (4 === this.readyState && this.status >= 200 && this.status < 400) { 1035 var n = JSON.parse(this.responseText); 1036 e.videoImage = n[0].thumbnail_large, t(e.videoImage) 1037 } 1038 }, a.send(), a = null 1039 } 1040 } 1041 }, o.prototype.getIframe = function (e) { 1042 var n = this; 1043 n.$iframe ? e(n.$iframe) : n.onAPIready(function () { 1044 var o; 1045 if (n.$iframe || ((o = document.createElement("div")).style.display = "none"), "youtube" === n.type) { 1046 n.playerOptions = {}, n.playerOptions.videoId = n.videoID, n.playerOptions.playerVars = {autohide: 1, rel: 0, autoplay: 0}, n.options.controls || (n.playerOptions.playerVars.iv_load_policy = 3, n.playerOptions.playerVars.modestbranding = 1, n.playerOptions.playerVars.controls = 0, n.playerOptions.playerVars.showinfo = 0, n.playerOptions.playerVars.disablekb = 1); 1047 var a, r; 1048 n.playerOptions.events = {onReady: function (t) { 1049 n.options.mute && t.target.mute(), n.options.autoplay && n.play(n.options.startTime), n.fire("ready", t) 1050 }, onStateChange: function (t) { 1051 n.options.loop && t.data === YT.PlayerState.ENDED && n.play(n.options.startTime), a || t.data !== YT.PlayerState.PLAYING || (a = 1, n.fire("started", t)), t.data === YT.PlayerState.PLAYING && n.fire("play", t), t.data === YT.PlayerState.PAUSED && n.fire("pause", t), t.data === YT.PlayerState.ENDED && n.fire("end", t), n.options.endTime && (t.data === YT.PlayerState.PLAYING ? r = setInterval(function () { 1052 n.options.endTime && n.player.getCurrentTime() >= n.options.endTime && (n.options.loop ? n.play(n.options.startTime) : n.pause()) 1053 }, 150) : clearInterval(r)) 1054 }}; 1055 var s = !n.$iframe; 1056 if (s) { 1057 var l = document.createElement("div"); 1058 l.setAttribute("id", n.playerID), o.appendChild(l), document.body.appendChild(o) 1059 } 1060 n.player = n.player || new t.YT.Player(n.playerID, n.playerOptions), s && (n.$iframe = document.getElementById(n.playerID), n.videoWidth = parseInt(n.$iframe.getAttribute("width"), 10) || 1280, n.videoHeight = parseInt(n.$iframe.getAttribute("height"), 10) || 720) 1061 } 1062 if ("vimeo" === n.type) { 1063 n.playerOptions = "", n.playerOptions += "player_id=" + n.playerID, n.playerOptions += "&autopause=0", n.options.controls || (n.playerOptions += "&badge=0&byline=0&portrait=0&title=0"), n.playerOptions += "&autoplay=" + (n.options.autoplay ? "1" : "0"), n.playerOptions += "&loop=" + (n.options.loop ? 1 : 0), n.$iframe || (n.$iframe = document.createElement("iframe"), n.$iframe.
1063setAttribute("id", n.playerID), n.$iframe.setAttribute("src", "https://player.vimeo.com/video/" + n.videoID + "?" + n.playerOptions), n.$iframe.setAttribute("frameborder", "0"), o.appendChild(n.$iframe), document.body.appendChild(o)), n.player = n.player || new Vimeo.Player(n.$iframe), n.player.getVideoWidth().then(function (t) { 1064 n.videoWidth = t || 1280 1065 }), n.player.getVideoHeight().then(function (t) { 1066 n.videoHeight = t || 720 1067 }), n.player.setVolume(n.options.mute ? 0 : 100); 1068 var c; 1069 n.player.on("timeupdate", function (t) { 1070 c || n.fire("started", t), c = 1, n.options.endTime && n.options.endTime && t.seconds >= n.options.endTime && (n.options.loop ? n.play(n.options.startTime) : n.pause()) 1071 }), n.player.on("play", function (t) { 1072 n.fire("play", t), n.options.startTime && 0 === t.seconds && n.play(n.options.startTime) 1073 }), n.player.on("pause", function (t) { 1074 n.fire("pause", t) 1075 }), n.player.on("ended", function (t) { 1076 n.fire("end", t) 1077 }), n.player.on("loaded", function (t) { 1078 n.fire("ready", t) 1079 }) 1080 } 1081 if ("local" === n.type) { 1082 if (!n.$iframe) { 1083 n.$iframe = document.createElement("video"), n.options.mute && (n.$iframe.muted = !0), n.options.loop && (n.$iframe.loop = !0), n.$iframe.setAttribute("id", n.playerID), o.appendChild(n.$iframe), document.body.appendChild(o); 1084 for (var u in n.videoID) 1085 !function (t, e, n) { 1086 var i = document.createElement("source"); 1087 i.src = e, i.type = n, t.appendChild(i) 1088 }(n.$iframe, n.videoID[u], "video/" + u) 1089 } 1090 n.player = n.player || n.$iframe; 1091 var d; 1092 i(n.player, "playing", function (t) { 1093 d || n.fire("started", t), d = 1 1094 }), i(n.player, "timeupdate", function () { 1095 n.options.endTime && n.options.endTime && this.currentTime >= n.options.endTime && (n.options.loop ? n.play(n.options.startTime) : n.pause()) 1096 }), i(n.player, "play", function (t) { 1097 n.fire("play", t) 1098 }), i(n.player, "pause", function (t) { 1099 n.fire("pause", t) 1100 }), i(n.player, "ended", function (t) { 1101 n.fire("end", t) 1102 }), i(n.player, "loadedmetadata", function () { 1103 n.videoWidth = this.videoWidth || 1280, n.videoHeight = this.videoHeight || 720, n.fire("ready"), n.options.autoplay && n.play(n.options.startTime) 1104 }) 1105 } 1106 e(n.$iframe) 1107 }) 1108 }, o.prototype.init = function () { 1109 var t = this; 1110 t.playerID = "VideoWorker-" + t.ID 1111 }; 1112 var a = 0, r = 0; 1113 o.prototype.loadAPI = function () { 1114 var e = this; 1115 if (!a || !r) { 1116 var n = ""; 1117 if ("youtube" !== e.type || a || (a = 1, n = "//www.youtube.com/iframe_api"), "vimeo" !== e.type || r || (r = 1, n = "//player.vimeo.com/api/player.js"), n) { 1118 "file://" === t.location.origin && (n = "http:" + n); 1119 var i = document.createElement("script"), o = document.getElementsByTagName("head")[0]; 1120 i.src = n, o.appendChild(i), o = null, i = null 1121 } 1122 } 1123 }; 1124 var s = 0, l = 0, c = new n, u = new n; 1125 o.prototype.onAPIready = function (e) { 1126 var n = this; 1127 if ("youtube" === n.type && ("undefined" != typeof YT && 0 !== YT.loaded || s ? "object" == typeof YT && 1 === YT.loaded ? e() : c.done(function () { 1128 e() 1129 }) : (s = 1, t.onYouTubeIframeAPIReady = function () { 1130 t.onYouTubeIframeAPIReady = null, c.resolve("done"), e() 1131 })), "vimeo" === n.type) 1132 if ("undefined" != typeof Vimeo || l) 1133 "undefined" != typeof Vimeo ? e() : u.done(function () { 1134 e() 1135 }); 1136 else { 1137 l = 1; 1138 var i = setInterval(function () { 1139 "undefined" != typeof Vimeo && (clearInterval(i), u.resolve("done"), e()) 1140 }, 20) 1141 } 1142 "local" === n.type && e() 1143 }, t.VideoWorker = o 1144 }(window), function () { 1145 "use strict"; 1146 if ("undefined" != typeof jarallax) { 1147 var t = jarallax.constructor, e = t.prototype.init; 1148 t.prototype.init = function () { 1149 var t = this; 1150 e.apply(t), t.video && t.video.getIframe(function (e) { 1151 var n = e.parentNode; 1152 t.css(e, {position: t.image.position, top: "0px", left: "0px", right: "0px", bottom: "0px", width: "100%", height: "100%", maxWidth: "none", maxHeight: "none", visibility: "hidden", margin: 0, zIndex: -1}), t.$video = e, t.image.$container.appendChild(e), n.parentNode.removeChild(n) 1153 }) 1154 }; 1155 var n = t.prototype.coverImage; 1156 t.prototype.coverImage = function () { 1157 var t = this; 1158 n.apply(t), t.video && "IFRAME" === t.image.$item.nodeName && t.css(t.image.$item, {height: t.image.$item.getBoundingClientRect().height + 400 + "px", marginTop: -200 + parseFloat(t.css(t.image.$item, "margin-top")) + "px"}) 1159 }; 1160 var i = t.prototype.initImg; 1161 t.prototype.initImg = function () { 1162 var t = this, e = i.apply(t); 1163 if (t.options.videoSrc || (t.options.videoSrc = t.$item.getAttribute("data-jarallax-video") || !1), t.options.videoSrc) { 1164 var n = new VideoWorker(t.options.videoSrc, {startTime: t.options.videoStartTime || 0, endTime: t.options.videoEndTime || 0}); 1165 if (n.isValid() && (t.image.useImgTag = !0, n.on("ready", function () { 1166 var e = t.onScroll; 1167 t.onScroll = function () { 1168 e.apply(t), t.isVisible() ? n.play() : n.pause() 1169 } 1170 }), n.on("started", function () { 1171 t.image.$default_item = t.image.$item, t.image.$item = t.$video, t.image.width = t.options.imgWidth = t.video.videoWidth || 1280, t.image.height = t.options.imgHeight = t.video.videoHeight || 720, t.coverImage(), t.clipContainer(), t.onScroll(), t.image.$default_item && (t.image.$default_item.style.display = "none") 1172 }), t.video = n, "local" !== n.type && n.getImageURL(function (e) { 1173 t.image.src = e, t.init() 1174 })), "local" !== n.type) 1175 return!1; 1176 if (!e) 1177 return t.image.src = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7", !0 1178 } 1179 return e 1180 }; 1181 var o = t.prototype.destroy; 1182 t.prototype.destroy = function () { 1183 var t = this; 1184 o.apply(t) 1185 } 1186 } 1187 }(), function (t) { 1188 "use strict"; 1189 function e(t) { 1190 var e = ["O", "Moz", "ms", "Ms", "Webkit"], n = e.length; 1191 if (void 0 !== s.style[t]) 1192 return!0; 1193 for (t = t.charAt(0).toUpperCase() + t.substr(1); --n > - 1 && void 0 === s.style[e[n] + t]; ) 1194 ; 1195 return n >= 0 1196 } 1197 function n() { 1198 a = t.innerWidth || document.documentElement.clientWidth, r = t.innerHe
1198ight || document.documentElement.clientHeight 1199 } 1200 function i(t, e, n) { 1201 t.addEventListener ? t.addEventListener(e, n) : t.attachEvent("on" + e, function () { 1202 n.call(t) 1203 }) 1204 } 1205 function o(e) { 1206 t.requestAnimationFrame(function () { 1207 "scroll" !== e.type && n(); 1208 for (var t = 0, i = g.length; t < i; t++) 1209 "scroll" !== e.type && (g[t].coverImage(), g[t].clipContainer()), g[t].onScroll() 1210 }) 1211 } 1212 Date.now || (Date.now = function () { 1213 return(new Date).getTime() 1214 }), t.requestAnimationFrame || function () { 1215 for (var e = ["webkit", "moz"], n = 0; n < e.length && !t.requestAnimationFrame; ++n) { 1216 var i = e[n]; 1217 t.requestAnimationFrame = t[i + "RequestAnimationFrame"], t.cancelAnimationFrame = t[i + "CancelAnimationFrame"] || t[i + "CancelRequestAnimationFrame"] 1218 } 1219 if (/iP(ad|hone|od).*OS 6/.test(t.navigator.userAgent) || !t.requestAnimationFrame || !t.cancelAnimationFrame) { 1220 var o = 0; 1221 t.requestAnimationFrame = function (t) { 1222 var e = Date.now(), n = Math.max(o + 16, e); 1223 return setTimeout(function () { 1224 t(o = n) 1225 }, n - e) 1226 }, t.cancelAnimationFrame = clearTimeout 1227 } 1228 }(); 1229 var a, r, s = document.createElement("div"), l = e("transform"), c = e("perspective"), u = navigator.userAgent, d = u.toLowerCase().indexOf("android") > -1, h = /iPad|iPhone|iPod/.test(u) && !t.MSStream, p = u.toLowerCase().indexOf("firefox") > -1, f = u.indexOf("MSIE ") > -1 || u.indexOf("Trident/") > -1 || u.indexOf("Edge/") > -1, m = document.all && !t.atob; 1230 n(); 1231 var g = [], v = function () { 1232 var t = 0; 1233 return function (e, n) { 1234 var i, o = this; 1235 if (o.$item = e, o.defaults = {type: "scroll", speed: .5, imgSrc: null, imgWidth: null, imgHeight: null, elementInViewport: null, zIndex: -100, noAndroid: !1, noIos: !0, onScroll: null, onInit: null, onDestroy: null, onCoverImage: null}, i = JSON.parse(o.$item.getAttribute("data-jarallax") || "{}"), o.options = o.extend({}, o.defaults, i, n), !(!l || d && o.options.noAndroid || h && o.options.noIos)) { 1236 o.options.speed = Math.min(2, Math.max(-1, parseFloat(o.options.speed))); 1237 var a = o.options.elementInViewport; 1238 a && "object" == typeof a && void 0 !== a.length && (a = a[0]), !a instanceof Element && (a = null), o.options.elementInViewport = a, o.instanceID = t++, o.image = {src: o.options.imgSrc || null, $container: null, $item: null, width: o.options.imgWidth || null, height: o.options.imgHeight || null, useImgTag: h || d || f, position: !c || p ? "absolute" : "fixed"}, o.initImg() && o.init() 1239 } 1240 } 1241 }(); 1242 v.prototype.css = function (e, n) { 1243 if ("string" == typeof n) 1244 return t.getComputedStyle ? t.getComputedStyle(e).getPropertyValue(n) : e.style[n]; 1245 n.transform && (c && (n.transform += " translateZ(0)"), n.WebkitTransform = n.MozTransform = n.msTransform = n.OTransform = n.transform); 1246 for (var i in n) 1247 e.style[i] = n[i]; 1248 return e 1249 }, v.prototype.extend = function (t) { 1250 t = t || {}; 1251 for (var e = 1; e < arguments.length; e++) 1252 if (arguments[e]) 1253 for (var n in arguments[e]) 1254 arguments[e].hasOwnProperty(n) && (t[n] = arguments[e][n]); 1255 return t 1256 }, v.prototype.initImg = function () { 1257 var t = this; 1258 return null === t.image.src && (t.image.src = t.css(t.$item, "background-image").replace(/^url\(['"]?/g, "").replace(/['"]?\)$/g, "")), !(!t.image.src || "none" === t.image.src) 1259 }, v.prototype.init = function () { 1260 function t() { 1261 e.coverImage(), e.clipContainer(), e.onScroll(!0), e.options.onInit && e.options.onInit.call(e), setTimeout(function () { 1262 e.$item && e.css(e.$item, {"background-image": "none", "background-attachment": "scroll", "background-size": "auto"}) 1263 }, 0) 1264 } 1265 var e = this, n = {position: "absolute", top: 0, left: 0, width: "100%", height: "100%", overflow: "hidden", pointerEvents: "none"}, i = {}; 1266 e.$item.setAttribute("data-jarallax-original-styles", e.$item.getAttribute("style")), "static" === e.css(e.$item, "position") && e.css(e.$item, {position: "relative"}), "auto" === e.css(e.$item, "z-index") && e.css(e.$item, {zIndex: 0}), e.image.$container = document.createElement("div"), e.css(e.image.$container, n), e.css(e.image.$container, {visibility: "hidden", "z-index": e.options.zIndex}), e.image.$container.setAttribute("id", "jarallax-container-" + e.instanceID), e.$item.appendChild(e.image.$container), e.image.useImgTag ? (e.image.$item = document.createElement("img"), e.
1266image.$item.setAttribute("src", e.image.src), i = e.extend({"max-width": "none"}, n, i)) : (e.image.$item = document.createElement("div"), i = e.extend({"background-position": "50% 50%", "background-size": "100% auto", "background-repeat": "no-repeat no-repeat", "background-image": 'url("' + e.image.src + '")'}, n, i)); 1267 for (var o = 0, a = e.$item; null !== a && a !== document && 0 === o; ) { 1268 var r = e.css(a, "-webkit-transform") || e.css(a, "-moz-transform") || e.css(a, "transform"); 1269 r && "none" !== r && (o = 1, e.css(e.image.$container, {transform: "translateX(0) translateY(0)"})), a = a.parentNode 1270 } 1271 (o || "opacity" === e.options.type || "scale" === e.options.type || "scale-opacity" === e.options.type) && (e.image.position = "absolute"), i.position = e.image.position, e.css(e.image.$item, i), e.image.$container.appendChild(e.image.$item), e.image.width && e.image.height ? t() : e.getImageSize(e.image.src, function (n, i) { 1272 e.image.width = n, e.image.height = i, t() 1273 }), g.push(e) 1274 }, v.prototype.destroy = function () { 1275 for (var t = this, e = 0, n = g.length; e < n; e++) 1276 if (g[e].instanceID === t.instanceID) { 1277 g.splice(e, 1); 1278 break 1279 } 1280 var i = t.$item.getAttribute("data-jarallax-original-styles"); 1281 t.$item.removeAttribute("data-jarallax-original-styles"), "null" === i ? t.$item.removeAttribute("style") : t.$item.setAttribute("style", i), t.$clipStyles && t.$clipStyles.parentNode.removeChild(t.$clipStyles), t.image.$container.parentNode.removeChild(t.image.$container), t.options.onDestroy && t.options.onDestroy.call(t), delete t.$item.jarallax; 1282 for (var o in t) 1283 delete t[o] 1284 }, v.prototype.getImageSize = function (t, e) { 1285 if (t && e) { 1286 var n = new Image; 1287 n.onload = function () { 1288 e(n.width, n.height) 1289 }, n.src = t 1290 } 1291 }, v.prototype.clipContainer = function () { 1292 if (!m) { 1293 var t = this, e = t.image.$container.getBoundingClientRect(), n = e.width, i = e.height; 1294 t.$clipStyles || (t.$clipStyles = document.createElement("style"), t.$clipStyles.setAttribute("type", "text/css"), t.$clipStyles.setAttribute("id", "#jarallax-clip-" + t.instanceID), (document.head || document.getElementsByTagName("head")[0]).appendChild(t.$clipStyles)); 1295 var o = ["#jarallax-container-" + t.instanceID + " {", " clip: rect(0 " + n + "px " + i + "px 0);", " clip: rect(0, " + n + "px, " + i + "px, 0);", "}"].join("\n"); 1296 t.$clipStyles.styleSheet ? t.$clipStyles.styleSheet.cssText = o : t.$clipStyles.innerHTML = o 1297 } 1298 }, v.prototype.coverImage = function () { 1299 var t = this; 1300 if (t.image.width && t.image.height) { 1301 var e = t.image.$container.getBoundingClientRect(), n = e.width, i = e.height, o = e.left, a = t.image.width, s = t.image.height, l = t.options.speed, c = "scroll" === t.options.type || "scroll-opacity" === t.options.type, u = 0, d = 0, h = i, p = 0, f = 0; 1302 c && (u = l < 0 ? l * Math.max(i, r) : l * (i + r), l > 1 ? h = Math.abs(u - r) : l < 0 ? h = u / l + Math.abs(u) : h += Math.abs(r - i) * (1 - l), u /= 2), (d = h * a / s) < n && (h = (d = n) * s / a), c ? (p = o + (n - d) / 2, f = (r - h) / 2) : (p = (n - d) / 2, f = (i - h) / 2), "absolute" === t.image.position && (p -= o), t.parallaxScrollDistance = u, t.css(t.image.$item, {width: d + "px", height: h + "px", marginLeft: p + "px", marginTop: f + "px"}), t.options.onCoverImage && t.options.onCoverImage.call(t) 1303 } 1304 }, v.prototype.isVisible = function () { 1305 return this.isElementInViewport || !1 1306 }, v.prototype.onScroll = function (t) { 1307 var e = this; 1308 if (e.image.width && e.image.height) { 1309 var n = e.$item.getBoundingClientRect(), i = n.top, o = n.height, s = {visibility: "visible", backgroundPosition: "50% 50%"}, l = n; 1310 if (e.options.elementInViewport && (l = e.options.elementInViewport.getBoundingClientRect()), e.isElementInViewport = l.bottom >= 0 && l.right >= 0 && l.top <= r && l.left <= a, t || e.isElementInViewport) { 1311 var c = Math.max(0, i), u = Math.max(0, o + i), d = Math.max(0, -i), h = Math.max(0, i + o - r), p = Math.max(0, o - (i + o - r)), f = Math.max(0, -i + r - o), m = 1 - 2 * (r - i) / (r + o), g = 1; 1312 if (o < r ? g = 1 - (d || h) / o : u <= r ? g = u / r : p <= r && (g = p / r), "opacity" !== e.options.type && "scale-opacity" !== e.options.type && "scroll-opacity" !== e.options.type || (s.transform = "", s.opacity = g), "scale" === e.options.type || "scale-opacity" === e.options.type) { 1313 var v = 1; 1314 e.options.speed < 0 ? v -= e.options.speed * g : v += e.options.speed * (1 - g), s.transform = "scale(" + v + ")" 1315 } 1316 if ("scroll" === e.options.type || "scroll-opacity" === e.options.type) { 1317 var y = e.parallaxScrollDistance * m; 1318 "absolute" === e.image.position && (y -= i), s.transform = "translateY(" + y + "px)" 1319 } 1320 e.css(e.image.$item, s), e.options.onScroll && e.options.onScroll.call(e, {section: n, beforeTop: c, beforeTopEnd: u, afterTop: d, beforeBottom: h, beforeBottomEnd: p, afterBottom: f, visiblePercent: g, fromViewportCenter: m}) 1321 } 1322 } 1323 }, i(t, "scroll", o), i(t, "resize", o), i(t, "orientationchange", o), i(t, "load", o); 1324 var y = function (t) { 1325 ("object" == typeof HTMLElement ? t instanceof HTMLElement : t && "object" == typeof t && null !== t && 1 === t.nodeType && "string" == typeof t.nodeName) && (t = [t]); 1326 var e, n = arguments[1], i = Array.prototype.slice.call(arguments, 2), o = t.length, a = 0; 1327 for (a; a < o; a++) 1328 if ("object" == typeof n || void 0 === n ? t[a].jarallax || (t[a].jarallax = new v(t[a], n)) : t[a].jarallax && (e = t[a].jarallax[n].apply(t[a].jarallax, i)), void 0 !== e) 1329 return e; 1330 return t 1331 }; 1332 y.constructor = v; 1333 var b = t.jarallax; 1334 if (t.jarallax = y, t.jarallax.noConflict = function () { 1335 return t.jarallax = b, this 1336 }, "undefined" != typeof jQuery) { 1337 var x = function () { 1338 var e = arguments || []; 1339 Array.prototype.unshift.call(e, this); 1340 var n = y.apply(t, e); 1341 return"object" != typeof n ? n : this 1342 }; 1343 x.constructor = v; 1344 var w = jQuery.fn.jarallax; 1345 jQuery.fn.jarallax = x, jQuery.fn.jarallax.noConflict = function () { 1346 return jQuery.fn.jarallax = w, this 1347 } 1348 } 1349 i(t, "DOMContentLoaded", function () { 1350 y(document.querySelectorAll("[data-jarallax], [data-jarallax-video]")) 1351 }) 1352 }(window), function (t) { 1353 t.fn.sticky = function (e) { 1354 var n = {topSpacing: 0, zIndex: "", stopper: ".sticky-stopper", stickyClass: !1}, i = t.extend({}, n, e), o = "number" == typeof i.zIndex, a = 0 < t(i.stopper).length || "number" == typeof i.stopper; 1355 return this.each(function () { 1356 function e() { 1357 var e = p.scrollTop(), s = h, f = n.parent().width(); 1358 if (d.width(f), a && "string" == typeof h && (s = t(h).offset().top - r - l), u < e) { 1359 if (i.stickyClass && n.addClass(i.stickyClass), n.after(d).css({position: "fixed", top: l, width: f}), o && n.css({zIndex: c}), a && s < e) {
1360 var m = s - e + l; 1361 n.css({top: m}) 1362 } 1363 } else 1364 i.stickyClass && n.removeClass(i.stickyClass), n.css({position: "static", top: null, left: null, width: "auto"}), d.remove() 1365 } 1366 var n = t(this), r = n.outerHeight(), s = n.outerWidth(), l = i.topSpacing, c = i.zIndex, u = n.offset().top - l, d = t("<div></div>").width(s).height(r).addClass("sticky-placeholder"), h = i.stopper, p = t(window); 1367 p.innerHeight() > r && (p.bind("scroll", e), p.bind("load", e), p.bind("resize", e)) 1368 }) 1369 } 1370 }(jQuery), function (t, e) { 1371 "function" == typeof define && define.amd ? define(e) : "object" == typeof exports ? module.exports = e() : t.PhotoSwipe = e() 1372 }(this, function () { 1373 "use strict"; 1374 return function (t, e, n, i) { 1375 var o = {features: null, bind: function (t, e, n, i) { 1376 var o = (i ? "remove" : "add") + "EventListener"; 1377 e = e.split(" "); 1378 for (var a = 0; a < e.length; a++) 1379 e[a] && t[o](e[a], n, !1) 1380 }, isArray: function (t) { 1381 return t instanceof Array 1382 }, createEl: function (t, e) { 1383 var n = document.createElement(e || "div"); 1384 return t && (n.className = t), n 1385 }, getScrollY: function () { 1386 var t = window.pageYOffset; 1387 return void 0 !== t ? t : document.documentElement.scrollTop 1388 }, unbind: function (t, e, n) { 1389 o.bind(t, e, n, !0) 1390 }, removeClass: function (t, e) { 1391 var n = new RegExp("(\\s|^)" + e + "(\\s|$)"); 1392 t.className = t.className.replace(n, " ").replace(/^\s\s*/, "").replace(/\s\s*$/, "") 1393 }, addClass: function (t, e) { 1394 o.hasClass(t, e) || (t.className += (t.className ? " " : "") + e) 1395 }, hasClass: function (t, e) { 1396 return t.className && new RegExp("(^|\\s)" + e + "(\\s|$)").test(t.className) 1397 }, getChildByClass: function (t, e) { 1398 for (var n = t.firstChild; n; ) { 1399 if (o.hasClass(n, e)) 1400 return n; 1401 n = n.nextSibling 1402 } 1403 }, arraySearch: function (t, e, n) { 1404 for (var i = t.length; i--; ) 1405 if (t[i][n] === e) 1406 return i; 1407 return-1 1408 }, extend: function (t, e, n) { 1409 for (var i in e) 1410 if (e.hasOwnProperty(i)) { 1411 if (n && t.hasOwnProperty(i)) 1412 continue; 1413 t[i] = e[i] 1414 } 1415 }, easing: {sine: {out: function (t) { 1416 return Math.sin(t * (Math.PI / 2)) 1417 }, inOut: function (t) { 1418 return-(Math.cos(Math.PI * t) - 1) / 2 1419 }}, cubic: {out: function (t) { 1420 return--t * t * t + 1 1421 }}}, detectFeatures: function () { 1422 if (o.features) 1423 return o.features; 1424 var t = o.createEl().style, e = "", n = {}; 1425 if (n.oldIE = document.all && !document.addEventListener, n.touch = "ontouchstart"in window, window.requestAnimationFrame && (n.raf = window.requestAnimationFrame, n.caf = window.cancelAnimationFrame), n.pointerEvent = navigator.pointerEnabled || navigator.msPointerEnabled, !n.pointerEvent) { 1426 var i = navigator.userAgent; 1427 if (/iP(hone|od)/.test(navigator.platform)) { 1428 var a = navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/);
1429 a && a.length > 0 && (a = parseInt(a[1], 10)) >= 1 && 8 > a && (n.isOldIOSPhone = !0) 1430 } 1431 var r = i.match(/Android\s([0-9\.]*)/), s = r ? r[1] : 0; 1432 (s = parseFloat(s)) >= 1 && (4.4 > s && (n.isOldAndroid = !0), n.androidVersion = s), n.isMobileOpera = /opera mini|opera mobi/i.test(i) 1433 } 1434 for (var l, c, u = ["transform", "perspective", "animationName"], d = ["", "webkit", "Moz", "ms", "O"], h = 0; 4 > h; h++) { 1435 e = d[h]; 1436 for (var p = 0; 3 > p; p++) 1437 l = u[p], c = e + (e ? l.charAt(0).toUpperCase() + l.slice(1) : l), !n[l] && c in t && (n[l] = c); 1438 e && !n.raf && (e = e.toLowerCase(), n.raf = window[e + "RequestAnimationFrame"], n.raf && (n.caf = window[e + "CancelAnimationFrame"] || window[e + "CancelRequestAnimationFrame"])) 1439 } 1440 if (!n.raf) { 1441 var f = 0; 1442 n.raf = function (t) { 1443 var e = (new Date).getTime(), n = Math.max(0, 16 - (e - f)), i = window.setTimeout(function () { 1444 t(e + n) 1445 }, n); 1446 return f = e + n, i 1447 }, n.caf = function (t) { 1448 clearTimeout(t) 1449 } 1450 } 1451 return n.svg = !!document.createElementNS && !!document.createElementNS("http://www.w3.org/2000/svg", "svg").createSVGRect, o.features = n, n 1452 }}; 1453 o.detectFeatures(), o.features.oldIE && (o.bind = function (t, e, n, i) { 1454 e = e.split(" "); 1455 for (var o, a = (i ? "detach" : "attach") + "Event", r = 0; r < e.length; r++) 1456 if (o = e[r]) 1457 if ("object" == typeof n && n.handleEvent) { 1458 if (i) { 1459 if (!n["oldIE" + o]) 1460 return!1 1461 } else 1462 n["oldIE" + o] = function () { 1463 n.handleEvent.call(n) 1464 }; 1465 t[a]("on" + o, n["oldIE" + o]) 1466 } else 1467 t[a]("on" + o, n) 1468 }); 1469 var a = this, r = {allowPanToNext: !0, spacing: .12, bgOpacity: 1, mouseUsed: !1, loop: !0, pinchToClose: !0, closeOnScroll: !0, closeOnVerticalDrag: !0, verticalDragRange: .75, hideAnimationDuration: 333, showAnimationDuration: 333, showHideOpacity: !1, focus: !0, escKey: !0, arrowKeys: !0, mainScrollEndFriction: .35, panEndFriction: .35, isClickableElement: function (t) { 1470 return"A" === t.tagName 1471 }, getDoubleTapZoom: function (t, e) { 1472 return t ? 1 : e.initialZoomLevel < .7 ? 1 : 1.33 1473 }, maxSpreadZoom: 1.33, modal: !0, scaleMode: "fit"}; 1474 o.extend(r, i); 1475 var s, l, c, u, d, h, p, f, m, g, v, y, b, x, w, k, C, S, T, M, I, A, P, _, D, E, O, L, F, R, W, V, z, N, H, B, Y, j, $, X, q, U, Q, Z, G, K, J, tt, et, nt, it, ot, at, rt, st, lt, ct = {x: 0, y: 0}, ut = {x: 0, y: 0}, dt = {x: 0, y: 0}, ht = {}, pt = 0, ft = {}, mt = {x: 0, y: 0}, gt = 0, vt = !0, yt = [], bt = {}, xt = !1, wt = function (t, e) { 1476 o.extend(a, e.publicMethods), yt.push(t) 1477 }, kt = function (t) { 1478 var e = Ue(); 1479 return t > e - 1 ? t - e : 0 > t ? e + t : t 1480 }, Ct = {}, St = function (t, e) { 1481 return Ct[t] || (Ct[t] = []), Ct[t].push(e) 1482 }, Tt = function (t) { 1483 var e = Ct[t]; 1484 if (e) { 1485 var n = Array.prototype.slice.call(arguments); 1486 n.shift(); 1487 for (var i = 0; i < e.length; i++) 1488 e[i].apply(a, n) 1489 } 1490 }, Mt = function () { 1491 return(new Date).getTime() 1492 }, It = function (t) { 1493 rt = t, a.bg.style.opacity = t * r.bgOpacity 1494 }, At = function (t, e, n, i, o) { 1495 (!xt || o && o !== a.currItem) && (i /= o ? o.fitRatio : a.currItem.fitRatio), t[A] = y + e + "px, " + n + "px" + b + " scale(" + i + ")" 1496 }, Pt = function (t) { 1497 et && (t && (g > a.currItem.fitRatio ? xt || (rn(a.currItem, !1, !0), xt = !0) : xt && (rn(a.currItem), xt = !1)), At(et, dt.x, dt.y, g)) 1498 }, _t = function (t) { 1499 t.container && At(t.container.style, t.initialPosition.x, t.initialPosition.y, t.initialZoomLevel, t) 1500 }, Dt = function (t, e) { 1501 e[A] = y + t + "px, 0px" + b 1502 }, Et = function (t, e) { 1503 if (!r.loop && e) { 1504 var n = u + (mt.x * pt - t) / mt.x, i = Math.round(t - pe.x); 1505 (0 > n && i > 0 || n >= Ue() - 1 && 0 > i) && (t = pe.x + i * r.mainScrollEndFriction) 1506 } 1507 pe.x = t, Dt(t, d) 1508 }, Ot = function (t, e) { 1509 var n = fe[t] - ft[t]; 1510 return ut[t] + ct[t] + n - n * (e / v) 1511 }, Lt = function (t, e) { 1512 t.x = e.x, t.y = e.y, e.id && (t.id = e.id) 1513 }, Ft = function (t) { 1514 t.x = Math.round(t.x), t.y = Math.round(t.y) 1515 }, Rt = null, Wt = function () { 1516 Rt && (o.unbind(document, "mousemove", Wt), o.addClass(t, "pswp--has_mouse"), r.mouseUsed = !0, Tt("mou
1516seUsed")), Rt = setTimeout(function () { 1517 Rt = null 1518 }, 100) 1519 }, Vt = function () { 1520 o.bind(document, "keydown", a), W.transform && o.bind(a.scrollWrap, "click", a), r.mouseUsed || o.bind(document, "mousemove", Wt), o.bind(window, "resize scroll", a), Tt("bindEvents") 1521 }, zt = function () { 1522 o.unbind(window, "resize", a), o.unbind(window, "scroll", m.scroll), o.unbind(document, "keydown", a), o.unbind(document, "mousemove", Wt), W.transform && o.unbind(a.scrollWrap, "click", a), j && o.unbind(window, p, a), Tt("unbindEvents") 1523 }, Nt = function (t, e) { 1524 var n = en(a.currItem, ht, t); 1525 return e && (tt = n), n 1526 }, Ht = function (t) { 1527 return t || (t = a.currItem), t.initialZoomLevel 1528 }, Bt = function (t) { 1529 return t || (t = a.currItem), t.w > 0 ? r.maxSpreadZoom : 1 1530 }, Yt = function (t, e, n, i) { 1531 return i === a.currItem.initialZoomLevel ? (n[t] = a.currItem.initialPosition[t], !0) : (n[t] = Ot(t, i), n[t] > e.min[t] ? (n[t] = e.min[t], !0) : n[t] < e.max[t] && (n[t] = e.max[t], !0)) 1532 }, jt = function () { 1533 if (A) { 1534 var e = W.perspective && !_; 1535 return y = "translate" + (e ? "3d(" : "("), void(b = W.perspective ? ", 0px)" : ")") 1536 } 1537 A = "left", o.addClass(t, "pswp--ie"), Dt = function (t, e) { 1538 e.left = t + "px" 1539 }, _t = function (t) { 1540 var e = t.fitRatio > 1 ? 1 : t.fitRatio, n = t.container.style, i = e * t.w, o = e * t.h; 1541 n.width = i + "px", n.height = o + "px", n.left = t.initialPosition.x + "px", n.top = t.initialPosition.y + "px" 1542 }, Pt = function () { 1543 if (et) { 1544 var t = et, e = a.currItem, n = e.fitRatio > 1 ? 1 : e.fitRatio, i = n * e.w, o = n * e.h; 1545 t.width = i + "px", t.height = o + "px", t.left = dt.x + "px", t.top = dt.y + "px" 1546 } 1547 } 1548 }, $t = function (t) { 1549 var e = ""; 1550 r.escKey && 27 === t.keyCode ? e = "close" : r.arrowKeys && (37 === t.keyCode ? e = "prev" : 39 === t.keyCode && (e = "next")), e && (t.ctrlKey || t.altKey || t.shiftKey || t.metaKey || (t.preventDefault ? t.preventDefault() : t.returnValue = !1, a[e]())) 1551 }, Xt = function (t) { 1552 t && (q || X || nt || B) && (t.preventDefault(), t.stopPropagation()) 1553 }, qt = function () { 1554 a.setScrollOffset(0, o.getScrollY()) 1555 }, Ut = {}, Qt = 0, Zt = function (t) { 1556 Ut[t] && (Ut[t].raf && E(Ut[t].raf), Qt--, delete Ut[t]) 1557 }, Gt = function (t) { 1558 Ut[t] && Zt(t), Ut[t] || (Qt++, Ut[t] = {}) 1559 }, Kt = function () { 1560 for (var t in Ut) 1561 Ut.hasOwnProperty(t) && Zt(t) 1562 }, Jt = function (t, e, n, i, o, a, r) { 1563 var s, l = Mt(); 1564 Gt(t); 1565 var c = function () { 1566 if (Ut[t]) { 1567 if ((s = Mt() - l) >= i) 1568 return Zt(t), a(n), void(r && r()); 1569 a((n - e) * o(s / i) + e), Ut[t].raf = D(c) 1570 } 1571 }; 1572 c() 1573 }, te = {shout: Tt, listen: St, viewportSize: ht, options: r, isMainScrollAnimating: function () { 1574 return nt 1575 }, getZoomLevel: function () { 1576 return g 1577 }, getCurrentIndex: function () { 1578 return u 1579 }, isDragging: function () { 1580 return j 1581 }, isZooming: function () { 1582 return G 1583 }, setScrollOffset: function (t, e) { 1584 ft.x = t, R = ft.y = e, Tt("updateScrollOffset", ft) 1585 }, applyZoomPan: function (t, e, n, i) { 1586 dt.x = e, dt.y = n, g = t, Pt(i) 1587 }, init: function () { 1588 if (!s && !l) { 1589 var n; 1590 a.framework = o, a.template = t, a.bg = o.getChildByClass(t, "pswp__bg"), O = t.className, s = !0, W = o.detectFeatures(), D = W.raf, E = W.caf, A = W.transform, F = W.oldIE, a.scrollWrap = o.getChildByClass(t, "pswp__scroll-wrap"), a.container = o.getChildByClass(a.scrollWrap, "psw
1590p__container"), d = a.container.style, a.itemHolders = k = [{el: a.container.children[0], wrap: 0, index: -1}, {el: a.container.children[1], wrap: 0, index: -1}, {el: a.container.children[2], wrap: 0, index: -1}], k[0].el.style.display = k[2].el.style.display = "none", jt(), m = {resize: a.updateSize, scroll: qt, keydown: $t, click: Xt}; 1591 var i = W.isOldIOSPhone || W.isOldAndroid || W.isMobileOpera; 1592 for (W.animationName && W.transform && !i || (r.showAnimationDuration = r.hideAnimationDuration = 0), n = 0; n < yt.length; n++) 1593 a["init" + yt[n]](); 1594 e && (a.ui = new e(a, o)).init(), Tt("firstUpdate"), u = u || r.index || 0, (isNaN(u) || 0 > u || u >= Ue()) && (u = 0), a.currItem = qe(u), (W.isOldIOSPhone || W.isOldAndroid) && (vt = !1), t.setAttribute("aria-hidden", "false"), r.modal && (vt ? t.style.position = "fixed" : (t.style.position = "absolute", t.style.top = o.getScrollY() + "px")), void 0 === R && (Tt("initialLayout"), R = L = o.getScrollY()); 1595 var c = "pswp--open "; 1596 for (r.mainClass && (c += r.mainClass + " "), r.showHideOpacity && (c += "pswp--animate_opacity "), c += _?"pswp--touch":"pswp--notouch", c += W.animationName?" pswp--css_animation":"", c += W.svg?" pswp--svg":"", o.addClass(t, c), a.updateSize(), h = - 1, gt = null, n = 0; 3 > n; n++) 1597 Dt((n + h) * mt.x, k[n].el.style); 1598 F || o.bind(a.scrollWrap, f, a), St("initialZoomInEnd", function () { 1599 a.setContent(k[0], u - 1), a.setContent(k[2], u + 1), k[0].el.style.display = k[2].el.style.display = "block", r.focus && t.focus(), Vt() 1600 }), a.setContent(k[1], u), a.updateCurrItem(), Tt("afterInit"), vt || (x = setInterval(function () { 1601 Qt || j || G || g !== a.currItem.initialZoomLevel || a.updateSize() 1602 }, 1e3)), o.addClass(t, "pswp--visible") 1603 } 1604 }, close: function () { 1605 s && (s = !1, l = !0, Tt("close"), zt(), Ze(a.currItem, null, !0, a.destroy)) 1606 }, destroy: function () { 1607 Tt("destroy"), Ye && clearTimeout(Ye), t.setAttribute("aria-hidden", "true"), t.className = O, x && clearInterval(x), o.unbind(a.scrollWrap, f, a), o.unbind(window, "scroll", a), be(), Kt(), Ct = null 1608 }, panTo: function (t, e, n) { 1609 n || (t > tt.min.x ? t = tt.min.x : t < tt.max.x && (t = tt.max.x), e > tt.min.y ? e = tt.min.y : e < tt.max.y && (e = tt.max.y)), dt.x = t, dt.y = e, Pt() 1610 }, handleEvent: function (t) { 1611 t = t || window.event, m[t.type] && m[t.type](t) 1612 }, goTo: function (t) { 1613 var e = (t = kt(t)) - u; 1614 gt = e, u = t, a.currItem = qe(u), pt -= e, Et(mt.x * pt), Kt(), nt = !1, a.updateCurrItem() 1615 }, next: function () { 1616 a.goTo(u + 1) 1617 }, prev: function () { 1618 a.goTo(u - 1) 1619 }, updateCurrZoomItem: function (t) { 1620 if (t && Tt("beforeChange", 0), k[1].el.children.length) { 1621 var e = k[1].el.children[0]; 1622 et = o.hasClass(e, "pswp__zoom-wrap") ? e.style : null 1623 } else 1624 et = null; 1625 tt = a.currItem.bounds, v = g = a.currItem.initialZoomLevel, dt.x = tt.center.x, dt.y = tt.center.y, t && Tt("afterChange") 1626 }, invalidateCurrItems: function () { 1627 w = !0; 1628 for (var t = 0; 3 > t; t++) 1629 k[t].item && (k[t].item.needsUpdate = !0) 1630 }, updateCurrItem: function (t) { 1631 if (0 !== gt) { 1632 var e, n = Math.abs(gt); 1633 if (!(t && 2 > n)) { 1634 a.currItem = qe(u), xt = !1, Tt("beforeChange", gt), n >= 3 && (h += gt + (gt > 0 ? -3 : 3), n = 3); 1635 for (var i = 0; n > i; i++) 1636 gt > 0 ? (e = k.shift(), k[2] = e, h++, Dt((h + 2) * mt.x, e.el.style), a.setContent(e, u - n + i + 1 + 1)) : (e = k.pop(), k.unshift(e), h--, Dt(h * mt.x, e.el.style), a.setContent(e, u + n - i - 1 - 1)); 1637 if (et && 1 === Math.abs(gt)) { 1638 var o = qe(C); 1639 o.initialZoomLevel !== g && (en(o, ht), rn(o), _t(o)) 1640 } 1641 gt = 0, a.updateCurrZoomItem(), C = u, Tt("afterChange") 1642 } 1643 } 1644 }, updateSize: function (e) { 1645 if (!vt && r.modal) { 1646 var n = o.getScrollY(); 1647 if (R !== n && (t.style.top = n + "px", R = n), !e && bt.x === window.innerWidth && bt.y === window.innerHeight) 1648 return; 1649 bt.x = window.innerWidth, bt.y = window.innerHeight, t.style.height = bt.y + "px" 1650 } 1651 if (ht.x = a.scrollWrap.clientWidth, ht.y = a.scrollWrap.clientHeight, qt(), mt.x = ht.x + Math.round(ht.x * r.spacing), mt.y = ht.y, Et(mt.x * pt), Tt("beforeResize"), void 0 !== h) { 1652 for (var i, s, l, c = 0; 3 > c; c++) 1653 i = k[c], Dt((c + h) * mt.x, i.el.style), l = u + c - 1, r.loop && Ue() > 2 && (l = kt(l)), s = qe(l), s && (w || s.needsUpdate || !s.bounds) ? (
1653a.cleanSlide(s), a.setContent(i, l), 1 === c && (a.currItem = s, a.updateCurrZoomItem(!0)), s.needsUpdate = !1) : -1 === i.index && l >= 0 && a.setContent(i, l), s && s.container && (en(s, ht), rn(s), _t(s)); 1654 w = !1 1655 } 1656 v = g = a.currItem.initialZoomLevel, (tt = a.currItem.bounds) && (dt.x = tt.center.x, dt.y = tt.center.y, Pt(!0)), Tt("resize") 1657 }, zoomTo: function (t, e, n, i, a) { 1658 e && (v = g, fe.x = Math.abs(e.x) - dt.x, fe.y = Math.abs(e.y) - dt.y, Lt(ut, dt)); 1659 var r = Nt(t, !1), s = {}; 1660 Yt("x", r, s, t), Yt("y", r, s, t); 1661 var l = g, c = {x: dt.x, y: dt.y}; 1662 Ft(s); 1663 var u = function (e) { 1664 1 === e ? (g = t, dt.x = s.x, dt.y = s.y) : (g = (t - l) * e + l, dt.x = (s.x - c.x) * e + c.x, dt.y = (s.y - c.y) * e + c.y), a && a(e), Pt(1 === e) 1665 }; 1666 n ? Jt("customZoomTo", 0, 1, n, i || o.easing.sine.inOut, u) : u(1) 1667 }}, ee = {}, ne = {}, ie = {}, oe = {}, ae = {}, re = [], se = {}, le = [], ce = {}, ue = 0, de = {x: 0, y: 0}, he = 0, pe = {x: 0, y: 0}, fe = {x: 0, y: 0}, me = {x: 0, y: 0}, ge = function (t, e) { 1668 return t.x === e.x && t.y === e.y 1669 }, ve = function (t, e) { 1670 return Math.abs(t.x - e.x) < 25 && Math.abs(t.y - e.y) < 25 1671 }, ye = function (t, e) { 1672 return ce.x = Math.abs(t.x - e.x), ce.y = Math.abs(t.y - e.y), Math.sqrt(ce.x * ce.x + ce.y * ce.y) 1673 }, be = function () { 1674 U && (E(U), U = null) 1675 }, xe = function () { 1676 j && (U = D(xe), Re()) 1677 }, we = function () { 1678 return!("fit" === r.scaleMode && g === a.currItem.initialZoomLevel) 1679 }, ke = function (t, e) { 1680 return!(!t || t === document) && (!(t.getAttribute("class") && t.getAttribute("class").indexOf("pswp__scroll-wrap") > -1) && (e(t) ? t : ke(t.parentNode, e))) 1681 }, Ce = {}, Se = function (t, e) { 1682 return Ce.prevent = !ke(t.target, r.isClickableElement), Tt("preventDragEvent", t, e, Ce), Ce.prevent 1683 }, Te = function (t, e) { 1684 return e.x = t.pageX, e.y = t.pageY, e.id = t.identifier, e 1685 }, Me = function (t, e, n) { 1686 n.x = .5 * (t.x + e.x), n.y = .5 * (t.y + e.y) 1687 }, Ie = function (t, e, n) { 1688 if (t - z > 50) { 1689 var i = le.length > 2 ? le.shift() : {}; 1690 i.x = e, i.y = n, le.push(i), z = t 1691 } 1692 }, Ae = function () { 1693 var t = dt.y - a.currItem.initialPosition.y; 1694 return 1 - Math.abs(t / (ht.y / 2)) 1695 }, Pe = {}, _e = {}, De = [], Ee = function (t) { 1696 for (; De.length > 0; ) 1697 De.pop(); 1698 return P ? (lt = 0, re.forEach(function (t) { 1699 0 === lt ? De[0] = t : 1 === lt && (De[1] = t), lt++ 1700 })) : t.type.indexOf("touch") > -1 ? t.touches && t.touches.length > 0 && (De[0] = Te(t.touches[0], Pe), t.touches.length > 1 && (De[1] = Te(t.touches[1], _e))) : (Pe.x = t.pageX, Pe.y = t.pageY, Pe.id = "", De[0] = Pe), De 1701 }, Oe = function (t, e) { 1702 var n, i, o, s, l = dt[t] + e[t], c = e[t] > 0, u = pe.x + e.x, d = pe.x - se.x; 1703 return n = l > tt.min[t] || l < tt.max[t] ? r.panEndFriction : 1, l = dt[t] + e[t] * n, !r.allowPanToNext && g !== a.currItem.initialZoomLevel || (et ? "h" !== it || "x" !== t || X || (c ? (l > tt.min[t] && (n = r.panEndFriction, tt.min[t] - l, i = tt.min[t] - ut[t]), (0 >= i || 0 > d) && Ue() > 1 ? (s = u, 0 > d && u > se.x && (s = se.x)) : tt.min.x !== tt.max.x && (o = l)) : (l < tt.max[t] && (n = r.panEndFriction, l - tt.max[t], i = ut[t] - tt.max[t]), (0 >= i || d > 0) && Ue() > 1 ? (s = u, d >
1703 0 && u < se.x && (s = se.x)) : tt.min.x !== tt.max.x && (o = l))) : s = u, "x" !== t) ? void(nt || Q || g > a.currItem.fitRatio && (dt[t] += e[t] * n)) : (void 0 !== s && (Et(s, !0), Q = s !== se.x), tt.min.x !== tt.max.x && (void 0 !== o ? dt.x = o : Q || (dt.x += e.x * n)), void 0 !== s) 1704 }, Le = function (t) { 1705 if (!("mousedown" === t.type && t.button > 0)) { 1706 if (Xe) 1707 return void t.preventDefault(); 1708 if (!Y || "mousedown" !== t.type) { 1709 if (Se(t, !0) && t.preventDefault(), Tt("pointerDown"), P) { 1710 var e = o.arraySearch(re, t.pointerId, "id"); 1711 0 > e && (e = re.length), re[e] = {x: t.pageX, y: t.pageY, id: t.pointerId} 1712 } 1713 var n = Ee(t), i = n.length; 1714 Z = null, Kt(), j && 1 !== i || (j = ot = !0, o.bind(window, p, a), H = st = at = B = Q = q = $ = X = !1, it = null, Tt("firstTouchStart", n), Lt(ut, dt), ct.x = ct.y = 0, Lt(oe, n[0]), Lt(ae, oe), se.x = mt.x * pt, le = [{x: oe.x, y: oe.y}], z = V = Mt(), Nt(g, !0), be(), xe()), !G && i > 1 && !nt && !Q && (v = g, X = !1, G = $ = !0, ct.y = ct.x = 0, Lt(ut, dt), Lt(ee, n[0]), Lt(ne, n[1]), Me(ee, ne, me), fe.x = Math.abs(me.x) - dt.x, fe.y = Math.abs(me.y) - dt.y, K = J = ye(ee, ne)) 1715 } 1716 } 1717 }, Fe = function (t) { 1718 if (t.preventDefault(), P) { 1719 var e = o.arraySearch(re, t.pointerId, "id"); 1720 if (e > -1) { 1721 var n = re[e]; 1722 n.x = t.pageX, n.y = t.pageY 1723 } 1724 } 1725 if (j) { 1726 var i = Ee(t); 1727 if (it || q || G) 1728 Z = i; 1729 else if (pe.x !== mt.x * pt) 1730 it = "h"; 1731 else { 1732 var a = Math.abs(i[0].x - oe.x) - Math.abs(i[0].y - oe.y); 1733 Math.abs(a) >= 10 && (it = a > 0 ? "h" : "v", Z = i) 1734 } 1735 } 1736 }, Re = function () { 1737 if (Z) { 1738 var t = Z.length; 1739 if (0 !== t) 1740 if (Lt(ee, Z[0]), ie.x = ee.x - oe.x, ie.y = ee.y - oe.y, G && t > 1) { 1741 if (oe.x = ee.x, oe.y = ee.y, !ie.x && !ie.y && ge(Z[1], ne)) 1742 return; 1743 Lt(ne, Z[1]), X || (X = !0, Tt("zoomGestureStarted")); 1744 var e = ye(ee, ne), n = He(e); 1745 n > a.currItem.initialZoomLevel + a.currItem.initialZoomLevel / 15 && (st = !0); 1746 var i = 1, o = Ht(), s = Bt(); 1747 if (o > n) 1748 if (r.pinchToClose && !st && v <= a.currItem.initialZoomLevel) { 1749 var l = 1 - (o - n) / (o / 1.2); 1750 It(l), Tt("onPinchClose", l), at = !0 1751 } else 1752 (i = (o - n) / o) > 1 && (i = 1), n = o - i * (o / 3); 1753 else 1754 n > s && ((i = (n - s) / (6 * o)) > 1 && (i = 1), n = s + i * o); 1755 0 > i && (i = 0), K = e, Me(ee, ne, de), ct.x += de.x - me.x, ct.y += de.y - me.y, Lt(me, de), dt.x = Ot("x", n), dt.y = Ot("y", n), H = n > g, g = n, Pt() 1756 } else { 1757 if (!it) 1758 return; 1759 if (ot && (ot = !1, Math.abs(ie.x) >= 10 && (ie.x -= Z[0].x - ae.x), Math.abs(ie.y) >= 10 && (ie.y -= Z[0].y - ae.y)), oe.x = ee.x, oe.y = ee.y, 0 === ie.x && 0 === ie.y) 1760 return; 1761 if ("v" === it && r.closeOnVerticalDrag && !we()) { 1762 ct.y += ie.y, dt.y += ie.y; 1763 var c = Ae();
1764 return B = !0, Tt("onVerticalDrag", c), It(c), void Pt() 1765 } 1766 Ie(Mt(), ee.x, ee.y), q = !0, tt = a.currItem.bounds, Oe("x", ie) || (Oe("y", ie), Ft(dt), Pt()) 1767 } 1768 } 1769 }, We = function (t) { 1770 if (W.isOldAndroid) { 1771 if (Y && "mouseup" === t.type) 1772 return; 1773 t.type.indexOf("touch") > -1 && (clearTimeout(Y), Y = setTimeout(function () { 1774 Y = 0 1775 }, 600)) 1776 } 1777 Tt("pointerUp"), Se(t, !1) && t.preventDefault(); 1778 var e; 1779 if (P) { 1780 var n = o.arraySearch(re, t.pointerId, "id"); 1781 if (n > -1) 1782 if (e = re.splice(n, 1)[0], navigator.pointerEnabled) 1783 e.type = t.pointerType || "mouse"; 1784 else { 1785 var i = {4: "mouse", 2: "touch", 3: "pen"}; 1786 e.type = i[t.pointerType], e.type || (e.type = t.pointerType || "mouse") 1787 } 1788 } 1789 var s, l = Ee(t), c = l.length; 1790 if ("mouseup" === t.type && (c = 0), 2 === c) 1791 return Z = null, !0; 1792 1 === c && Lt(ae, l[0]), 0 !== c || it || nt || (e || ("mouseup" === t.type ? e = {x: t.pageX, y: t.pageY, type: "mouse"} : t.changedTouches && t.changedTouches[0] && (e = {x: t.changedTouches[0].pageX, y: t.changedTouches[0].pageY, type: "touch"})), Tt("touchRelease", t, e)); 1793 var u = -1; 1794 if (0 === c && (j = !1, o.unbind(window, p, a), be(), G ? u = 0 : -1 !== he && (u = Mt() - he)), he = 1 === c ? Mt() : -1, s = -1 !== u && 150 > u ? "zoom" : "swipe", G && 2 > c && (G = !1, 1 === c && (s = "zoomPointerUp"), Tt("zoomGestureEnded")), Z = null, q || X || nt || B) 1795 if (Kt(), N || (N = Ve()), N.calculateSwipeSpeed("x"), B) 1796 if (Ae() < r.verticalDragRange) 1797 a.close(); 1798 else { 1799 var d = dt.y, h = rt; 1800 Jt("verticalDrag", 0, 1, 300, o.easing.cubic.out, function (t) { 1801 dt.y = (a.currItem.initialPosition.y - d) * t + d, It((1 - h) * t + h), Pt() 1802 }), Tt("onVerticalDrag", 1) 1803 } 1804 else { 1805 if ((Q || nt) && 0 === c) { 1806 if (Ne(s, N)) 1807 return; 1808 s = "zoomPointerUp" 1809 } 1810 if (!nt) 1811 return"swipe" !== s ? void Be() : void(!Q && g > a.currItem.fitRatio && ze(N)) 1812 } 1813 }, Ve = function () { 1814 var t, e, n = {lastFlickOffset: {}, lastFlickDist: {}, lastFlickSpeed: {}, slowDownRatio: {}, slowDownRatioReverse: {}, speedDecelerationRatio: {}, speedDecelerationRatioAbs: {}, distanceOffset: {}, backAnimDestination: {}, backAnimStarted: {}, calculateSwipeSpeed: function (i) { 1815 le.length > 1 ? (t = Mt() - z + 50, e = le[le.length - 2][i]) : (t = Mt() - V, e = ae[i]), n.lastFlickOffset[i] = oe[i] - e, n.lastFlickDist[i] = Math.abs(n.lastFlickOffset[i]), n.lastFlickDist[i] > 20 ? n.lastFlickSpeed[i] = n.lastFlickOffset[i] / t : n.lastFlickSpeed[i] = 0, Math.abs(n.lastFlickSpeed[i]) < .1 && (n.lastFlickSpeed[i] = 0), n.slowDownRatio[i] = .95, n.slowDownRatioReverse[i] = 1 - n.slowDownRatio[i], n.speedDecelerationRatio[i] = 1 1816 }, calculateOverBoundsAnimOffset: function (t, e) { 1817 n.backAnimStarted[t] || (dt[t] > tt.min[t] ? n.backAnimDestination[t] = tt.min[t] : dt[t] < tt.max[t] && (n.backAnimDestination[t] = tt.max[t]), void 0 !== n.backAnimDestination[t] && (n.slowDownRatio[t] = .7, n.slowDownRatioReverse[t] = 1 - n.slowDownRatio[t], n.speedDecelerationRatioAbs[t] < .05 && (n.lastFlickSpeed[t] = 0, n.backAnimStarted[t] = !0, Jt("bounceZoomPan" + t, dt[t], n.backAnimDestination[t], e || 300, o.easing.sine.out, function (e) { 1818 dt[t] = e, Pt() 1819 })))) 1820 }, calculateAnimOffset: function (t) { 1821 n.backAnimStarted[t] || (n.speedDecelerationRatio[t] = n.speedDecelerationRatio[t] * (n.slowDownRatio[t] + n.slowDownRatioReverse[t] - n.slowDownRatioReverse[t] * n.timeDiff / 10), n.speedDecelerationRatioAbs[t] = Math.abs(n.lastFlickSpeed[t] * n.speedDecelerationRatio[t]), n.distanceOffset[t] = n.lastFlickSpeed[t] * n.speedDecelerationRatio[t] * n.timeDiff, dt[t] += n.distanceOffset[t]) 1822 }, panAnimLoop: function () { 1823 return Ut.zoomPan && (Ut.zoomPan.raf = D(n.panAnimLoop), n.now = Mt(), n.timeDiff = n.now - n.lastNow, n.lastNow = n.now, n.calculateAnimOffset("x"), n.calculateAnimOffset("y"), Pt(), n.calculateOverBoundsAnimOffset("x"), n.calculateOverBoundsAnimOffset("y"), n.speedDecelerationRatioAbs.x < .05 && n.speedDecelerationRatioAbs.y < .05) ? (dt.x = Math.round(dt.x), dt.y = Math.round(dt.y), Pt(), void Zt("zoomPan")) : void 0 1824 }}; 1825 return n 1826 }, ze = function (t) {
1827 return t.calculateSwipeSpeed("y"), tt = a.currItem.bounds, t.backAnimDestination = {}, t.backAnimStarted = {}, Math.abs(t.lastFlickSpeed.x) <= .05 && Math.abs(t.lastFlickSpeed.y) <= .05 ? (t.speedDecelerationRatioAbs.x = t.speedDecelerationRatioAbs.y = 0, t.calculateOverBoundsAnimOffset("x"), t.calculateOverBoundsAnimOffset("y"), !0) : (Gt("zoomPan"), t.lastNow = Mt(), void t.panAnimLoop()) 1828 }, Ne = function (t, e) { 1829 var n; 1830 nt || (ue = u); 1831 var i; 1832 if ("swipe" === t) { 1833 var s = oe.x - ae.x, l = e.lastFlickDist.x < 10; 1834 s > 30 && (l || e.lastFlickOffset.x > 20) ? i = -1 : -30 > s && (l || e.lastFlickOffset.x < -20) && (i = 1) 1835 } 1836 var c; 1837 i && (u += i, 0 > u ? (u = r.loop ? Ue() - 1 : 0, c = !0) : u >= Ue() && (u = r.loop ? 0 : Ue() - 1, c = !0), (!c || r.loop) && (gt += i, pt -= i, n = !0)); 1838 var d, h = mt.x * pt, p = Math.abs(h - pe.x); 1839 return n || h > pe.x == e.lastFlickSpeed.x > 0 ? (d = Math.abs(e.lastFlickSpeed.x) > 0 ? p / Math.abs(e.lastFlickSpeed.x) : 333, d = Math.min(d, 400), d = Math.max(d, 250)) : d = 333, ue === u && (n = !1), nt = !0, Tt("mainScrollAnimStart"), Jt("mainScroll", pe.x, h, d, o.easing.cubic.out, Et, function () { 1840 Kt(), nt = !1, ue = -1, (n || ue !== u) && a.updateCurrItem(), Tt("mainScrollAnimComplete") 1841 }), n && a.updateCurrItem(!0), n 1842 }, He = function (t) { 1843 return 1 / J * t * v 1844 }, Be = function () { 1845 var t = g, e = Ht(), n = Bt(); 1846 e > g ? t = e : g > n && (t = n); 1847 var i, r = rt; 1848 return at && !H && !st && e > g ? (a.close(), !0) : (at && (i = function (t) { 1849 It((1 - r) * t + r) 1850 }), a.zoomTo(t, 0, 200, o.easing.cubic.out, i), !0) 1851 }; 1852 wt("Gestures", {publicMethods: {initGestures: function () { 1853 var t = function (t, e, n, i, o) { 1854 S = t + e, T = t + n, M = t + i, I = o ? t + o : "" 1855 }; 1856 (P = W.pointerEvent) && W.touch && (W.touch = !1), P ? navigator.pointerEnabled ? t("pointer", "down", "move", "up", "cancel") : t("MSPointer", "Down", "Move", "Up", "Cancel") : W.touch ? (t("touch", "start", "move", "end", "cancel"), _ = !0) : t("mouse", "down", "move", "up"), p = T + " " + M + " " + I, f = S, P && !_ && (_ = navigator.maxTouchPoints > 1 || navigator.msMaxTouchPoints > 1), a.likelyTouchDevice = _, m[S] = Le, m[T] = Fe, m[M] = We, I && (m[I] = m[M]), W.touch && (f += " mousedown", p += " mousemove mouseup", m.mousedown = m[S], m.mousemove = m[T], m.mouseup = m[M]), _ || (r.allowPanToNext = !1) 1857 }}}); 1858 var Ye, je, $e, Xe, qe, Ue, Qe, Ze = function (e, n, i, s) { 1859 Ye && clearTimeout(Ye), Xe = !0, $e = !0; 1860 var l; 1861 e.initialLayout ? (l = e.initialLayout, e.initialLayout = null) : l = r.getThumbBoundsFn && r.getThumbBoundsFn(u); 1862 var d = i ? r.hideAnimationDuration : r.showAnimationDuration, h = function () { 1863 Zt("initialZoom"), i ? (a.template.removeAttribute("style"), a.bg.removeAttribute("style")) : (It(1), n && (n.style.display = "block"), o.addClass(t, "pswp--animated-in"), Tt("initialZoom" + (i ? "OutEnd" : "InEnd"))), s && s(), Xe = !1 1864 }; 1865 if (!d || !l || void 0 === l.x) 1866 return Tt("initialZoom" + (i ? "Out" : "In")), g = e.initialZoomLevel, Lt(dt, e.initialPosition), Pt(), t.style.opacity = i ? 0 : 1, It(1), void(d ? setTimeout(function () { 1867 h() 1868 }, d) : h()); 1869 !function () { 1870 var n = c, s = !a.currItem.src || a.currItem.loadError || r.showHideOpacity; 1871 e.miniImg && (e.miniImg.style.webkitBackfaceVisibility = "hidden"), i || (g = l.w / e.w, dt.x = l.x, dt.y = l.y - L, a[s ? "template" : "bg"].style.opacity = .001, Pt()), Gt("initialZoom"), i && !n && o.removeClass(t, "pswp--animated-in"), s && (i ? o[(n ? "remove" : "add") + "Class"](t, "pswp--animate_opacity") : setTimeout(function () { 1872 o.addClass(t, "pswp--animate_opacity") 1873 }, 30)), Ye = setTimeout(function () { 1874 if (Tt("initialZoom" + (i ? "Out" : "In")), i) { 1875 var a = l.w / e.w, r = {x: dt.x, y: dt.y}, c = g, u = rt, p = function (e) { 1876 1 === e ? (g = a, dt.x = l.x, dt.y = l.y - R) : (g = (a - c) * e + c, dt.x = (l.x - r.x) * e + r.x, dt.y = (l.y - R - r.y) * e + r.y), Pt(), s ? t.style.opacity = 1 - e : It(u - e * u) 1877 }; 1878 n ? Jt("initialZoom", 0, 1, d, o.easing.cubic.out, p, h) : (p(1), Ye = setTimeout(h, d + 20)) 1879 } else 1880 g = e.initialZoomLevel, Lt(dt, e.initialPosition), Pt(), It(1), s ? t.style.opacity = 1 : It(1), Ye = setTimeout(h, d + 20) 1881 }
1881, i ? 25 : 90) 1882 }() 1883 }, Ge = {}, Ke = [], Je = {index: 0, errorMsg: '<div class="pswp__error-msg"><a href="%url%" target="_blank">The image</a> could not be loaded.</div>', forceProgressiveLoading: !1, preload: [1, 1], getNumItemsFn: function () { 1884 return je.length 1885 }}, tn = function (t, e, n) { 1886 var i = t.bounds; 1887 i.center.x = Math.round((Ge.x - e) / 2), i.center.y = Math.round((Ge.y - n) / 2) + t.vGap.top, i.max.x = e > Ge.x ? Math.round(Ge.x - e) : i.center.x, i.max.y = n > Ge.y ? Math.round(Ge.y - n) + t.vGap.top : i.center.y, i.min.x = e > Ge.x ? 0 : i.center.x, i.min.y = n > Ge.y ? t.vGap.top : i.center.y 1888 }, en = function (t, e, n) { 1889 if (t.src && !t.loadError) { 1890 var i = !n; 1891 if (i && (t.vGap || (t.vGap = {top: 0, bottom: 0}), Tt("parseVerticalMargin", t)), Ge.x = e.x, Ge.y = e.y - t.vGap.top - t.vGap.bottom, i) { 1892 var o = Ge.x / t.w, a = Ge.y / t.h; 1893 t.fitRatio = a > o ? o : a; 1894 var s = r.scaleMode; 1895 "orig" === s ? n = 1 : "fit" === s && (n = t.fitRatio), n > 1 && (n = 1), t.initialZoomLevel = n, t.bounds || (t.bounds = {center: {x: 0, y: 0}, max: {x: 0, y: 0}, min: {x: 0, y: 0}}) 1896 } 1897 if (!n) 1898 return; 1899 return tn(t, t.w * n, t.h * n), i && n === t.initialZoomLevel && (t.initialPosition = t.bounds.center), t.bounds 1900 } 1901 return t.w = t.h = 0, t.initialZoomLevel = t.fitRatio = 1, t.bounds = {center: {x: 0, y: 0}, max: {x: 0, y: 0}, min: {x: 0, y: 0}}, t.initialPosition = t.bounds.center, t.bounds 1902 }, nn = function (t, e, n, i, o, r) { 1903 e.loadError || i && (e.imageAppended = !0, rn(e, i, e === a.currItem && xt), n.appendChild(i), r && setTimeout(function () { 1904 e && e.loaded && e.placeholder && (e.placeholder.style.display = "none", e.placeholder = null) 1905 }, 500)) 1906 }, on = function (t) { 1907 t.loading = !0, t.loaded = !1; 1908 var e = t.img = o.createEl("pswp__img", "img"), n = function () { 1909 t.loading = !1, t.loaded = !0, t.loadComplete ? t.loadComplete(t) : t.img = null, e.onload = e.onerror = null, e = null 1910 }; 1911 return e.onload = n, e.onerror = function () { 1912 t.loadError = !0, n() 1913 }, e.src = t.src, e 1914 }, an = function (t, e) { 1915 return t.src && t.loadError && t.container ? (e && (t.container.innerHTML = ""), t.container.innerHTML = r.errorMsg.replace("%url%", t.src), !0) : void 0 1916 }, rn = function (t, e, n) { 1917 if (t.src) { 1918 e || (e = t.container.lastChild); 1919 var i = n ? t.w : Math.round(t.w * t.fitRatio), o = n ? t.h : Math.round(t.h * t.fitRatio); 1920 t.placeholder && !t.loaded && (t.placeholder.style.width = i + "px", t.placeholder.style.height = o + "px"), e.style.width = i + "px", e.style.height = o + "px" 1921 } 1922 }, sn = function () { 1923 if (Ke.length) { 1924 for (var t, e = 0; e < Ke.length; e++) 1925 (t = Ke[e]).holder.index === t.index && nn(t.index, t.item, t.baseDiv, t.img, 0, t.clearPlaceholder); 1926 Ke = [] 1927 } 1928 }; 1929 wt("Controller", {publicMethods: {lazyLoadItem: function (t) { 1930 t = kt(t); 1931 var e = qe(t); 1932 e && (!e.loaded && !e.loading || w) && (Tt("gettingData", t, e), e.src && on(e)) 1933 }, initController: function () { 1934 o.extend(r, Je, !0), a.items = je = n, qe = a.getItemAt, Ue = r.getNumItemsFn, Qe = r.loop, Ue() < 3 && (r.loop = !1), St("beforeChange", function (t) { 1935 var e, n = r.preload, i = null === t || t >= 0, o = Math.min(n[0], Ue()), s = Math.min(n[1], Ue()); 1936 for (e = 1; (i?s:o) >= e; e++) 1937 a.lazyLoadItem(u + e); 1938 for (e = 1; (i?o:s) >= e; e++) 1939 a.lazyLoadItem(u - e) 1940 }), St("initialLayout", function () { 1941 a.currItem.initialLayout = r.getThumbBoundsFn && r.getThumbBoundsFn(u) 1942 }), St("mainScrollAnimComplete", sn), St("initialZoomInEnd", sn), St("destroy", function () { 1943 for (var t, e = 0; e < je.length; e++) 1944 (t = je[e]).container && (t.container = null), t.placeholder && (t.placeholder = null), t.img && (t.img = null), t.preloader && (t.preloader = null), t.loadError && (t.loaded = t.loadError = !1);
1945 Ke = null 1946 }) 1947 }, getItemAt: function (t) { 1948 return t >= 0 && void 0 !== je[t] && je[t] 1949 }, allowProgressiveImg: function () { 1950 return r.forceProgressiveLoading || !_ || r.mouseUsed || screen.width > 1200 1951 }, setContent: function (t, e) { 1952 r.loop && (e = kt(e)); 1953 var n = a.getItemAt(t.index); 1954 n && (n.container = null); 1955 var i, l = a.getItemAt(e); 1956 if (l) { 1957 Tt("gettingData", e, l), t.index = e, t.item = l; 1958 var c = l.container = o.createEl("pswp__zoom-wrap"); 1959 if (!l.src && l.html && (l.html.tagName ? c.appendChild(l.html) : c.innerHTML = l.html), an(l), en(l, ht), !l.src || l.loadError || l.loaded) 1960 l.src && !l.loadError && (i = o.createEl("pswp__img", "img"), i.style.opacity = 1, i.src = l.src, rn(l, i), nn(0, l, c, i)); 1961 else { 1962 if (l.loadComplete = function (n) { 1963 if (s) { 1964 if (t && t.index === e) { 1965 if (an(n, !0)) 1966 return n.loadComplete = n.img = null, en(n, ht), _t(n), void(t.index === u && a.updateCurrZoomItem()); 1967 n.imageAppended ? !Xe && n.placeholder && (n.placeholder.style.display = "none", n.placeholder = null) : W.transform && (nt || Xe) ? Ke.push({item: n, baseDiv: c, img: n.img, index: e, holder: t, clearPlaceholder: !0}) : nn(0, n, c, n.img, 0, !0) 1968 } 1969 n.loadComplete = null, n.img = null, Tt("imageLoadComplete", e, n) 1970 } 1971 }, o.features.transform) { 1972 var d = "pswp__img pswp__img--placeholder"; 1973 d += l.msrc ? "" : " pswp__img--placeholder--blank"; 1974 var h = o.createEl(d, l.msrc ? "img" : ""); 1975 l.msrc && (h.src = l.msrc), rn(l, h), c.appendChild(h), l.placeholder = h 1976 } 1977 l.loading || on(l), a.allowProgressiveImg() && (!$e && W.transform ? Ke.push({item: l, baseDiv: c, img: l.img, index: e, holder: t}) : nn(0, l, c, l.img, 0, !0)) 1978 } 1979 $e || e !== u ? _t(l) : (et = c.style, Ze(l, i || l.img)), t.el.innerHTML = "", t.el.a
1979ppendChild(c) 1980 } else 1981 t.el.innerHTML = "" 1982 }, cleanSlide: function (t) { 1983 t.img && (t.img.onload = t.img.onerror = null), t.loaded = t.loading = t.img = t.imageAppended = !1 1984 }}}); 1985 var ln, cn = {}, un = function (t, e, n) { 1986 var i = document.createEvent("CustomEvent"), o = {origEvent: t, target: t.target, releasePoint: e, pointerType: n || "touch"}; 1987 i.initCustomEvent("pswpTap", !0, !0, o), t.target.dispatchEvent(i) 1988 }; 1989 wt("Tap", {publicMethods: {initTap: function () { 1990 St("firstTouchStart", a.onTapStart), St("touchRelease", a.onTapRelease), St("destroy", function () { 1991 cn = {}, ln = null 1992 }) 1993 }, onTapStart: function (t) { 1994 t.length > 1 && (clearTimeout(ln), ln = null) 1995 }, onTapRelease: function (t, e) { 1996 if (e && !q && !$ && !Qt) { 1997 var n = e; 1998 if (ln && (clearTimeout(ln), ln = null, ve(n, cn))) 1999 return void Tt("doubleTap", n); 2000 if ("mouse" === e.type) 2001 return void un(t, e, "mouse"); 2002 if ("BUTTON" === t.target.tagName.toUpperCase() || o.hasClass(t.target, "pswp__single-tap")) 2003 return void un(t, e); 2004 Lt(cn, n), ln = setTimeout(function () { 2005 un(t, e), ln = null 2006 }, 300) 2007 } 2008 }}}); 2009 var dn; 2010 wt("DesktopZoom", {publicMethods: {initDesktopZoom: function () { 2011 F || (_ ? St("mouseUsed", function () { 2012 a.setupDesktopZoom() 2013 }) : a.setupDesktopZoom(!0)) 2014 }, setupDesktopZoom: function (e) { 2015 dn = {}; 2016 var n = "wheel mousewheel DOMMouseScroll"; 2017 St("bindEvents", function () { 2018 o.bind(t, n, a.handleMouseWheel) 2019 }), St("unbindEvents", function () { 2020 dn && o.unbind(t, n, a.handleMouseWheel) 2021 }), a.mouseZoomedIn = !1; 2022 var i, r = function () { 2023 a.mouseZoomedIn && (o.removeClass(t, "pswp--zoomed-in"), a.mouseZoomedIn = !1), 1 > g ? o.addClass(t, "pswp--zoom-allowed") : o.removeClass(t, "pswp--zoom-allowed"), s() 2024 }, s = function () { 2025 i && (o.removeClass(t, "pswp--dragging"), i = !1) 2026 }; 2027 St("resize", r), St("afterChange", r), St("pointerDown", function () { 2028 a.mouseZoomedIn && (i = !0, o.addClass(t, "pswp--dragging")) 2029 }), St("pointerUp", s), e || r() 2030 }, handleMouseWheel: function (t) { 2031 if (g <= a.currItem.fitRatio) 2032 return r.modal && (!r.closeOnScroll || Qt || j ? t.preventDefault() : A && Math.abs(t.deltaY) > 2 && (c = !0, a.close())), !0; 2033 if (t.stopPropagation(), dn.x = 0, "deltaX"in t) 2034 1 === t.deltaMode ? (dn.x = 18 * t.deltaX, dn.y = 18 * t.deltaY) : (dn.x = t.deltaX, dn.y = t.deltaY); 2035 else if ("wheelDelta"in t) 2036 t.wheelDeltaX && (dn.x = -.16 * t.wheelDeltaX), t.wheelDeltaY ? dn.y = -.16 * t.wheelDeltaY : dn.y = -.16 * t.wheelDelta; 2037 else { 2038 if (!("detail"in t)) 2039 return; 2040 dn.y = t.detail 2041 } 2042 Nt(g, !0); 2043 var e = dt.x - dn.x, n = dt.y - dn.y; 2044 (r.modal || e <= tt.min.x && e >= tt.max.x && n <= tt.min.y && n >= tt.max.y) && t.preventDefault(), a.panTo(e, n) 2045 }, toggleDesktopZoom: function (e) { 2046 e = e || {x: ht.x / 2 + ft.x, y: ht.y / 2 + ft.y}; 2047 var n = r.getDoubleTapZoom(!0, a.currItem), i = g === n; 2048 a.mouseZoomedIn = !i, a.zoomTo(i ? a.currItem.initialZoomLevel : n, e, 333), o[(i ? "remove" : "add") + "Class"](t, "pswp--zoomed-in") 2049 }}}); 2050 var hn, pn, fn, mn, gn, vn, yn, bn, xn, wn, kn, Cn, Sn = {history: !0, galleryUID: 1}, Tn = function () { 2051 return kn.hash.substring(1) 2052 }, Mn = function () { 2053 hn && clearTimeout(hn), fn && clearTimeout(fn) 2054 }, In = function () { 2055 var t = Tn(), e = {}; 2056 if (t.length < 5) 2057 return e; 2058 var n, i = t.split("&"); 2059 for (n = 0; n < i.length; n++) 2060 if (i[n]) { 2061 var o = i[n].split("="); 2062 o.length < 2 || (e[o[0]] = o[1]) 2063 } 2064 if (r.galleryPIDs) { 2065 var a = e.pid; 2066 for (e.pid = 0, n = 0; n < je.length; n++) 2067 if (je[n].pid === a) { 2068 e.pid = n; 2069 break 2070 } 2071 } else 2072 e.pid = parseInt(e.pid, 10) - 1; 2073 return e.pid < 0 && (e.pid = 0), e 2074 }, An = function () { 2075 if (fn && clearTimeout(fn), Qt || j) 2076 fn = setTimeout(An, 500); 2077 else { 2078 mn ? clearTimeout(pn) : mn = !0; 2079 var t = u + 1, e = qe(u); 2080 e.hasOwnProperty("pid") && (t = e.pid); 2081 var n = yn + "&gid=" + r.galleryUID + "&pid=" + t; 2082 bn || -1 === kn.hash.indexOf(n) && (wn = !0);
2083 var i = kn.href.split("#")[0] + "#" + n; 2084 Cn ? "#" + n !== window.location.hash && history[bn ? "replaceState" : "pushState"]("", document.title, i) : bn ? kn.replace(i) : kn.hash = n, bn = !0, pn = setTimeout(function () { 2085 mn = !1 2086 }, 60) 2087 } 2088 }; 2089 wt("History", {publicMethods: {initHistory: function () { 2090 if (o.extend(r, Sn, !0), r.history) { 2091 kn = window.location, wn = !1, xn = !1, bn = !1, yn = Tn(), Cn = "pushState"in history, yn.indexOf("gid=") > -1 && (yn = yn.split("&gid=")[0], yn = yn.split("?gid=")[0]), St("afterChange", a.updateURL), St("unbindEvents", function () { 2092 o.unbind(window, "hashchange", a.onHashChange) 2093 }); 2094 var t = function () { 2095 vn = !0, xn || (wn ? history.back() : yn ? kn.hash = yn : Cn ? history.pushState("", document.title, kn.pathname + kn.search) : kn.hash = ""), Mn() 2096 }; 2097 St("unbindEvents", function () { 2098 c && t() 2099 }), St("destroy", function () { 2100 vn || t() 2101 }), St("firstUpdate", function () { 2102 u = In().pid 2103 }); 2104 var e = yn.indexOf("pid="); 2105 e > -1 && "&" === (yn = yn.substring(0, e)).slice(-1) && (yn = yn.slice(0, -1)), setTimeout(function () { 2106 s && o.bind(window, "hashchange", a.onHashChange) 2107 }, 40) 2108 } 2109 }, onHashChange: function () { 2110 return Tn() === yn ? (xn = !0, void a.close()) : void(mn || (gn = !0, a.goTo(In().pid), gn = !1)) 2111 }, updateURL: function () { 2112 Mn(), gn || (bn ? hn = setTimeout(An, 800) : An()) 2113 }}}), o.extend(a, te) 2114 } 2115 }), function (t, e) { 2116 "function" == typeof define && define.amd ? define(e) : "object" == typeof exports ? module.exports = e() : t.PhotoSwipeUI_Default = e() 2117 }(this, function () { 2118 "use strict"; 2119 return function (t, e) { 2120 var n, i, o, a, r, s, l, c, u, d, h, p, f, m, g, v, y, b, x, w = this, k = !1, C = !0, S = !0, T = {barsSize: {top: 44, bottom: "auto"}, closeElClasses: ["item", "caption", "zoom-wrap", "ui", "top-bar"], timeToIdle: 4e3, timeToIdleOutside: 1e3, loadingIndicatorDelay: 1e3, addCaptionHTMLFn: function (t, e) { 2121 return t.title ? (e.children[0].innerHTML = t.title, !0) : (e.children[0].innerHTML = "", !1) 2122 }, closeEl: !0, captionEl: !0, fullscreenEl: !0, zoomEl: !0, shareEl: !0, counterEl: !0, arrowEl: !0, preloaderEl: !0, tapToClose: !1, tapToToggleControls: !0, clickToCloseNonZoomable: !0, shareButtons: [{id: "facebook", label: "Share on Facebook", url: "https://www.facebook.com/sharer/sharer.php?u={{url}}"}, {id: "twitter", label: "Tweet", url: "https://twitter.com/intent/tweet?text={{text}}&url={{url}}"}, {id: "pinterest", label: "Pin it", url: "http://www.pinterest.com/pin/create/button/?url={{url}}&media={{image_url}}&description={{text}}"}, {id: "download", label: "Download image", url: "{{raw_image_url}}", download: !0}], getImageURLForShare: function () { 2123 return t.currItem.src || "" 2124 }, getPageURLForShare: function () { 2125 return window.location.href 2126 }, getTextForShare: function () { 2127 return t.currItem.title || "" 2128 }, indexIndicatorSep: " / ", fitControlsWidth: 1200}, M = function (t) { 2129 if (v) 2130 return!0; 2131 t = t || window.event, g.timeToIdle && g.mouseUsed && !u && R(); 2132 for (var n, i, o = (t.target || t.srcElement).getAttribute("class") || "", a = 0; a < j.length; a++) 2133 (n = j[a]).onTap && o.indexOf("pswp__" + n.name) > -1 && (n.onTap(), i = !0);
2134 if (i) { 2135 t.stopPropagation && t.stopPropagation(), v = !0; 2136 var r = e.features.isOldAndroid ? 600 : 30; 2137 y = setTimeout(function () { 2138 v = !1 2139 }, r) 2140 } 2141 }, I = function () { 2142 return!t.likelyTouchDevice || g.mouseUsed || screen.width > g.fitControlsWidth 2143 }, A = function (t, n, i) { 2144 e[(i ? "add" : "remove") + "Class"](t, "pswp__" + n) 2145 }, P = function () { 2146 var t = 1 === g.getNumItemsFn(); 2147 t !== m && (A(i, "ui--one-slide", t), m = t) 2148 }, _ = function () { 2149 A(l, "share-modal--hidden", S) 2150 }, D = function () { 2151 return S = !S, S ? (e.removeClass(l, "pswp__share-modal--fade-in"), setTimeout(function () { 2152 S && _() 2153 }, 300)) : (_(), setTimeout(function () { 2154 S || e.addClass(l, "pswp__share-modal--fade-in") 2155 }, 30)), S || O(), !1 2156 }, E = function (e) { 2157 var n = (e = e || window.event).target || e.srcElement; 2158 return t.shout("shareLinkClick", e, n), !!n.href && (!!n.hasAttribute("download") || (window.open(n.href, "pswp_share", "scrollbars=yes,resizable=yes,toolbar=no,location=yes,width=550,height=420,top=100,left=" + (window.screen ? Math.round(screen.width / 2 - 275) : 100)), S || D(), !1)) 2159 }, O = function () { 2160 for (var t, e, n, i, o, a = "", r = 0; r < g.shareButtons.length; r++) 2161 t = g.shareButtons[r], n = g.getImageURLForShare(t), i = g.getPageURLForShare(t), o = g.getTextForShare(t), e = t.url.replace("{{url}}", encodeURIComponent(i)).replace("{{image_url}}", encodeURIComponent(n)).replace("{{raw_image_url}}", n).replace("{{text}}", encodeURIComponent(o)), a += '<a href="' + e + '" target="_blank" class="pswp__share--' + t.id + '"' + (t.download ? "download" : "") + ">" + t.label + "</a>", g.parseShareButtonOut && (a = g.parseShareButtonOut(t, a)); 2162 l.children[0].innerHTML = a, l.children[0].onclick = E 2163 }, L = function (t) { 2164 for (var n = 0; n < g.closeElClasses.length; n++) 2165 if (e.hasClass(t, "pswp__" + g.closeElClasses[n])) 2166 return!0 2167 }, F = 0, R = function () { 2168 clearTimeout(x), F = 0, u && w.setIdle(!1) 2169 }, W = function (t) { 2170 var e = (t = t || window.event).relatedTarget || t.toElement; 2171 e && "HTML" !== e.nodeName || (clearTimeout(x), x = setTimeout(function () { 2172 w.setIdle(!0) 2173 }, g.timeToIdleOutside)) 2174 }, V = function () { 2175 g.fullscreenEl && !e.features.isOldAndroid && (n || (n = w.getFullscreenAPI()), n ? (e.bind(document, n.eventK, w.updateFullscreen), w.updateFullscreen(), e.addClass(t.template, "pswp--supports-fs")) : e.removeClass(t.template, "pswp--supports-fs")) 2176 }, z = function () { 2177 g.preloaderEl && (N(!0), d("beforeChange", function () { 2178 clearTimeout(f), f = setTimeout(function () { 2179 t.currItem && t.currItem.loading ? (!t.allowProgressiveImg() || t.currItem.img && !t.currItem.img.naturalWidth) && N(!1) : N(!0) 2180 }, g.loadingIndicatorDelay) 2181 }), d("imageLoadComplete", function (e, n) { 2182 t.currItem === n && N(!0) 2183 })) 2184 }, N = function (t) { 2185 p !== t && (A(h, "preloader--active", !t), p = t) 2186 }, H = function (t) { 2187 var n = t.vGap; 2188 if (I()) { 2189 var r = g.barsSize; 2190 if (g.captionEl && "auto" === r.bottom) 2191 if (a || ((a = e.createEl("pswp__caption pswp__caption--fake")).appendChild(e.createEl("pswp__caption__center")), i.insertBefore(a, o), e.addClass(i, "pswp__ui--fit")), g.addCaptionHTMLFn(t, a, !0)) { 2192 var s = a.clientHeight; 2193 n.bottom = parseInt(s, 10) || 44 2194 } else 2195 n.bottom = r.top; 2196 else 2197 n.bottom = "auto" === r.bottom ? 0 : r.bottom; 2198 n.top = r.top 2199 } else 2200 n.top = n.bottom = 0 2201 }, B = function () { 2202 g.timeToIdle && d("mouseUsed", function () { 2203 e.bind(document, "mousemove", R), e.bind(document, "mouseout", W), b = setInterval(function () { 2204 2 == ++F && w.setIdle(!0) 2205 }, g.timeToIdle / 2) 2206 }) 2207 }, Y = function () { 2208 d("onVerticalDrag", function (t) { 2209 C && .95 > t ? w.hideControls() : !C && t >= .95 && w.showControls() 2210 }); 2211 var t; 2212 d("onPinchClose", function (e) { 2213 C && .9 > e ? (w.hideControls(), t = !0) : t && !C && e > .9 && w.showControls() 2214 }), d("zoomGestureEnded", function () { 2215 (t = !1) && !C && w.showControls() 2216 }) 2217 }, j = [{name: "caption", option: "captionEl", onInit: function (t) { 2218 o = t 2219 }}, {name: "share-modal", option: "shareEl", onInit: function (t) { 2220 l = t 2221 }, onTap: function () { 2222 D() 2223 }}, {name: "button--share", option: "shareEl", onInit: function (t) { 2224 s = t 2225 }, onTap: function () { 2226 D() 2227 }}, {name: "button--zoom", option: "zoomEl", onTap: t.toggleDesktopZoom}, {name: "counter", option: "counterEl", onInit: function (t) { 2228 r = t 2229 }}, {name: "button--close", option: "closeEl", onTap: t.close}, {name: "button--arrow--left", option: "arrowEl", onTap: t.prev}, {name: "button--arrow--right", option: "arrowEl", onTap: t.next}, {name: "button--fs", option: "fullscreenEl", onTap: function () { 2230 n.isFullscreen() ? n.exit() : n.enter() 2231 }}, {name: "preloader", option: "preloaderEl", onInit: function (t) { 2232 h = t 2233 }}], $ = function () { 2234 var t, n, o, a = function (i) { 2235 if (i) 2236 for (var a = i.length, r = 0; a > r; r++) { 2237 t = i[r], n = t.className; 2238 for (var s = 0; s < j.length; s++) 2239 o = j[s], n.indexOf("pswp__" + o.name) > -1 && (g[o.option] ? (e.removeClass(t, "pswp__element--disabled"), o.onInit && o.onInit(t)) : e.addClass(t, "pswp__element--disabled")) 2240 } 2241 }; 2242 a(i.children); 2243 var r = e.getChildByClass(i, "pswp__top-bar"); 2244 r && a(r.children) 2245 }; 2246 w.init = function () { 2247 e.extend(t.options, T, !0), g = t.options, i = e.getChildByClass(t.scrollWrap, "psw
2247p__ui"), d = t.listen, Y(), d("beforeChange", w.update), d("doubleTap", function (e) { 2248 var n = t.currItem.initialZoomLevel; 2249 t.getZoomLevel() !== n ? t.zoomTo(n, e, 333) : t.zoomTo(g.getDoubleTapZoom(!1, t.currItem), e, 333) 2250 }), d("preventDragEvent", function (t, e, n) { 2251 var i = t.target || t.srcElement; 2252 i && i.getAttribute("class") && t.type.indexOf("mouse") > -1 && (i.getAttribute("class").indexOf("__caption") > 0 || /(SMALL|STRONG|EM)/i.test(i.tagName)) && (n.prevent = !1) 2253 }), d("bindEvents", function () { 2254 e.bind(i, "pswpTap click", M), e.bind(t.scrollWrap, "pswpTap", w.onGlobalTap), t.likelyTouchDevice || e.bind(t.scrollWrap, "mouseover", w.onMouseOver) 2255 }), d("unbindEvents", function () { 2256 S || D(), b && clearInterval(b), e.unbind(document, "mouseout", W), e.unbind(document, "mousemove", R), e.unbind(i, "pswpTap click", M), e.unbind(t.scrollWrap, "pswpTap", w.onGlobalTap), e.unbind(t.scrollWrap, "mouseover", w.onMouseOver), n && (e.unbind(document, n.eventK, w.updateFullscreen), n.isFullscreen() && (g.hideAnimationDuration = 0, n.exit()), n = null) 2257 }), d("destroy", function () { 2258 g.captionEl && (a && i.removeChild(a), e.removeClass(o, "pswp__caption--empty")), l && (l.children[0].onclick = null), e.removeClass(i, "pswp__ui--over-close"), e.addClass(i, "pswp__ui--hidden"), w.setIdle(!1) 2259 }), g.showAnimationDuration || e.removeClass(i, "pswp__ui--hidden"), d("initialZoomIn", function () { 2260 g.showAnimationDuration && e.removeClass(i, "pswp__ui--hidden") 2261 }), d("initialZoomOut", function () { 2262 e.addClass(i, "pswp__ui--hidden") 2263 }), d("parseVerticalMargin", H), $(), g.shareEl && s && l && (S = !0), P(), B(), V(), z() 2264 }, w.setIdle = function (t) { 2265 u = t, A(i, "ui--idle", t) 2266 }, w.update = function () { 2267 C && t.currItem ? (w.updateIndexIndicator(), g.captionEl && (g.addCaptionHTMLFn(t.currItem, o), A(o, "caption--empty", !t.currItem.title)), k = !0) : k = !1, S || D(), P() 2268 }, w.updateFullscreen = function (i) { 2269 i && setTimeout(function () { 2270 t.setScrollOffset(0, e.getScrollY()) 2271 }, 50), e[(n.isFullscreen() ? "add" : "remove") + "Class"](t.template, "pswp--fs") 2272 }, w.updateIndexIndicator = function () { 2273 g.counterEl && (r.innerHTML = t.getCurrentIndex() + 1 + g.indexIndicatorSep + g.getNumItemsFn()) 2274 }, w.onGlobalTap = function (n) { 2275 var i = (n = n || window.event).target || n.srcElement; 2276 if (!v) 2277 if (n.detail && "mouse" === n.detail.pointerType) { 2278 if (L(i)) 2279 return void t.close(); 2280 e.hasClass(i, "pswp__img") && (1 === t.getZoomLevel() && t.getZoomLevel() <= t.currItem.fitRatio ? g.clickToCloseNonZoomable && t.close() : t.toggleDesktopZoom(n.detail.releasePoint)) 2281 } else if (g.tapToToggleControls && (C ? w.hideControls() : w.showControls()), g.tapToClose && (e.hasClass(i, "pswp__img") || L(i))) 2282 return void t.close() 2283 }, w.onMouseOver = function (t) { 2284 var e = (t = t || window.event).target || t.srcElement; 2285 A(i, "ui--over-close", L(e)) 2286 }, w.hideControls = function () { 2287 e.addClass(i, "pswp__ui--hidden"), C = !1 2288 }, w.showControls = function () { 2289 C = !0, k || w.update(), e.removeClass(i, "pswp__ui--hidden") 2290 }, w.supportsFullscreen = function () { 2291 var t = document; 2292 return!!(t.exitFullscreen || t.mozCancelFullScreen || t.webkitExitFullscreen || t.msExitFullscreen) 2293 }, w.getFullscreenAPI = function () { 2294 var e, n = document.documentElement, i = "fullscreenchange"; 2295 return n.requestFullscreen ? e = {enterK: "requestFullscreen", exitK: "exitFullscreen", elementK: "fullscreenElement", eventK: i} : n.mozRequestFullScreen ? e = {enterK: "mozRequestFullScreen", exitK: "mozCancelFullScreen", elementK: "mozFullScreenElement", eventK: "moz" + i} : n.webkitRequestFullscreen ? e = {enterK: "webkitRequestFullscreen", exitK: "webkitExitFullscreen", elementK: "webkitFullscreenElement", eventK: "webkit" + i} : n.msRequestFullscreen && (e = {enterK: "msRequestFullscreen", exitK: "msExitFullscreen", elementK: "msFullscreenElement", eventK: "MSFullscreenChange"}), e && (e.enter = function () { 2296 return c = g.closeOnScroll, g.closeOnScroll = !1, "webkitRequestFullscreen" !== this.enterK ? t.template[this.enterK]() : void t.template[this.enterK](Element.ALLOW_KEYBOARD_INPUT) 2297 }, e.exit = function () { 2298 return g.closeOnScroll = c, document[this.exitK]() 2299 }, e.isFullscreen = function () { 2300 return document[this.elementK] 2301 }), e 2302 } 2303 } 2304 });
2305 var initPhotoSwipeFromDOM = function (t) { 2306 for (var e = function (t) { 2307 for (var e, n, i, o, a = t.childNodes, r = a.length, s = [], l = 0; l < r; l++) 2308 1 === (e = a[l]).nodeType && (i = (n = e.children[0]).getAttribute("data-size").split("x"), o = {src: n.getAttribute("href"), w: parseInt(i[0], 10), h: parseInt(i[1], 10)}, e.children.length > 1 && (o.title = e.children[1].innerHTML), n.children.length > 0 && (o.msrc = n.children[0].getAttribute("src")), o.el = e, s.push(o)); 2309 return s 2310 }, n = function t(e, n) { 2311 return e && (n(e) ? e : t(e.parentNode, n)) 2312 }, i = function (t, n, i, o) { 2313 var a, r, s = document.querySelectorAll(".pswp")[0]; 2314 if (r = e(n), a = {galleryUID: n.getAttribute("data-pswp-uid"), getThumbBoundsFn: function (t) { 2315 var e = r[t].el.getElementsByTagName("img")[0], n = window.pageYOffset || document.documentElement.scrollTop, i = e.getBoundingClientRect(); 2316 return{x: i.left, y: i.top + n, w: i.width} 2317 }}, o) 2318 if (a.galleryPIDs) { 2319 for (var l = 0; l < r.length; l++) 2320 if (r[l].pid == t) { 2321 a.index = l; 2322 break 2323 } 2324 } else 2325 a.index = parseInt(t, 10) - 1; 2326 else 2327 a.index = parseInt(t, 10); 2328 isNaN(a.index) || (i && (a.showAnimationDuration = 0), new PhotoSwipe(s, PhotoSwipeUI_Default, r, a).init()) 2329 }, o = document.querySelectorAll(t), a = 0, r = o.length; a < r; a++) 2330 o[a].setAttribute("data-pswp-uid", a + 1), o[a].onclick = function (t) { 2331 (t = t || window.event).preventDefault ? t.preventDefault() : t.returnValue = !1; 2332 var e = t.target || t.srcElement, o = n(e, function (t) { 2333 return t.tagName && "FIGURE" === t.tagName.toUpperCase() 2334 }); 2335 if (o) { 2336 for (var a, r = o.parentNode, s = o.parentNode.childNodes, l = s.length, c = 0, u = 0; u < l; u++) 2337 if (1 === s[u].nodeType) { 2338 if (s[u] === o) { 2339 a = c; 2340 break 2341 } 2342 c++ 2343 } 2344 return a >= 0 && i(a, r), !1 2345 } 2346 }; 2347 var s = function () { 2348 var t = window.location.hash.substring(1), e = {}; 2349 if (t.length < 5) 2350 return e; 2351 for (var n = t.split("&"), i = 0; i < n.length; i++) 2352 if (n[i]) { 2353 var o = n[i].split("="); 2354 o.length < 2 || (e[o[0]] = o[1]) 2355 } 2356 return e.gid && (e.gid = parseInt(e.gid, 10)), e 2357 }(); 2358 s.pid && s.gid && i(s.pid, o[s.gid - 1], !0, !0) 2359 }; 2360 initPhotoSwipeFromDOM(".kb-lightbox"), function (t) { 2361 t.fn.material_select = function (e) { 2362 function n(t, e, n) { 2363 var o = t.indexOf(e), a = -1 === o; 2364 return a ? t.push(e) : t.splice(o, 1), n.siblings("ul.dropdown-content").find("li").eq(e).toggleClass("active"), n.find("option").eq(e).prop("selected", a), i(t, n), a 2365 } 2366 function i(t, e) { 2367 for (var n = "", i = 0, o = t.length; i < o; i++) { 2368 var a = e.find("option").eq(t[i]).text(); 2369 n += 0 === i ? a : ", " + a 2370 } 2371 "" === n && (n = e.find("option:disabled").eq(0).text()), e.siblings("input.select-dropdown").val(n) 2372 } 2373 function o() { 2374 var t = (new Date).getTime(); 2375 return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (e) { 2376 var n = (t + 16 * Math.random()) % 16 | 0; 2377 return t = Math.floor(t / 16), ("x" == e ? n : 3 & n | 8).toString(16) 2378 }) 2379 } 2380 t(this).each(function () { 2381 var i = t(this); 2382 if (!i.hasClass("browser-default")) { 2383 var a = !!i.attr("multiple"), r = !1, s = !1, l = i.data("select-id"); 2384 if (l && (i.parent().find("span.caret").remove(), i.parent().find("input").remove(), i.unwrap(), t("ul#select-options-" + l).remove()), "destroy" !== e) { 2385 var c = o(); 2386 i.data("select-id", c); 2387 var u = t('<div class="select-wrapper"></div>'); 2388 u.addClass(i.attr("class")); 2389 var d = t('<ul id="select-options-' + c + '" class="dropdown-content select-dropdown ' + (a ? "multiple-select-dropdown" : "") + '"></ul>
2389'), h = i.children("option, optgroup"), p = [], f = !1, m = i.find("option:selected").html() || i.find("option:first").html() || "", g = function () { 2390 var e = t(this).closest("ul"), n = t(this).val(); 2391 e.find("li").find("span.filtrable").each(function () { 2392 "string" == typeof this.outerText && (this.outerText.toLowerCase().startsWith(n.toLowerCase()) ? (t(this).show(), t(this).parent().show()) : (t(this).hide(), t(this).parent().hide())) 2393 }) 2394 }, v = !!i.attr("searchable"); 2395 v && function () { 2396 var e = i.attr("searchable"), n = t('<span class="search-wrap"><input type="text" class="search" placeholder="' + e + '"></span>'); 2397 d.append(n), n.find(".search").keyup(g) 2398 }(); 2399 var y = function (e, n, i) { 2400 s = e.attr("searchable"); 2401 var o = n.is(":disabled") ? "disabled " : "", a = "optgroup-option" === i ? "optgroup-option " : ""; 2402 "" !== a && (i = "multiple" === e.attr("multiple") ? "multiple" : i, r = !0); 2403 var l = n.data("icon"), c = n.attr("class"); 2404 if (l) { 2405 var u = ""; 2406 return c && (u = ' class="' + c + '"'), "multiple" === i ? d.append(t('<li class="' + o + '"><img alt="" src="' + l + '"' + u + '><span class="filtrable"><input type="checkbox"' + o + "/><label></label>" + n.html() + "</span></li>")) : d.append(t('<li class="' + o + a + '"><img alt="" src="' + l + '"' + u + '><span class="filtrable">' + n.html() + "</span></li>")), !0 2407 } 2408 "multiple" === i ? d.append(t('<li class="' + o + '"><span class="filtrable"><input type="checkbox"' + o + "/><label>" + n.html() + "</label></span></li>")) : d.append(t('<li class="' + o + a + '"><span class="filtrable">' + n.html() + "</span></li>")) 2409 }; 2410 h.length && h.each(function () { 2411 if (t(this).is("option")) 2412 a ? y(i, t(this), "multiple") : y(i, t(this)); 2413 else if (t(this).is("optgroup")) { 2414 var e = t(this).children("option"); 2415 d.append(t('<li class="optgroup"><span>' + t(this).attr("label") + "</span></li>")), e.each(function () { 2416 y(i, t(this), "optgroup-option") 2417 }) 2418 } 2419 }), d.find("li:not(.optgroup)").each(function (o) { 2420 t(this).click(function (l) { 2421 if (!t(this).hasClass("disabled") && !t(this).hasClass("optgroup")) { 2422 var c = !0; 2423 a && r ? (t('input[type="checkbox"]', this).prop("checked", function (t, e) { 2424 return!e 2425 }), c = n(p, t(this).index(), i)) : a && s ? (t('input[type="checkbox"]', this).prop("checked", function (t, e) { 2426 return!e 2427 }), c = n(p, t(this).index() - 1, i), w.trigger("focus")) : a ? (t('input[type="checkbox"]', this).prop("checked", function (t, e) { 2428 return!e 2429 }), c = n(p, t(this).index(), i), w.trigger("focus")) : (d.find("li").removeClass("active"), t(this).toggleClass("active"), w.val(t(this).text())), k(d, t(this)), i.find("option").eq(o).prop("selected", c), i.trigger("change"), void 0 !== e && e() 2430 } 2431 l.stopPropagation() 2432 }) 2433 }), i.wrap(u); 2434 var b = t('<span class="caret">▼</span>'); 2435 i.is(":disabled") && b.addClass("disabled"); 2436 var x = m.replace(/"/g, """), w = t('<input type="text" class="select-dropdown" readonly="true" ' + (i.is(":disabled") ? "disabled" : "") + ' data-activates="select-options-' + c + '" value="' + x + '"/>'); 2437 i.before(w), w.before(b), w.after(d), i.is(":disabled") || w.dropdown({hover: !1, closeOnClick: !1}), i.attr("tabindex") && t(w[0]).attr("tabindex", i.attr("tabindex")), i.addClass("initialized"), w.on({focu
2437s: function () { 2438 if (t("ul.select-dropdown").not(d[0]).is(":visible") && t("input.select-dropdown").trigger("close"), !d.is(":visible")) { 2439 t(this).trigger("open", ["focus"]); 2440 var e = t(this).val(), n = d.find("li").filter(function () { 2441 return t(this).text().toLowerCase() === e.toLowerCase() 2442 })[0]; 2443 k(d, n) 2444 } 2445 }, click: function (t) { 2446 t.stopPropagation() 2447 }}), w.on("blur", function () { 2448 a || v || t(this).trigger("close"), d.find("li.selected").removeClass("selected") 2449 }), !a && v && d.find("li").on("click", function () { 2450 w.trigger("close") 2451 }), d.hover(function () { 2452 f = !0 2453 }, function () { 2454 f = !1 2455 }), t(window).on({click: function () { 2456 (a || v) && (f || w.trigger("close")) 2457 }}), a && i.find("option:selected:not(:disabled)").each(function () { 2458 var e = t(this).index(); 2459 n(p, e, i), d.find("li").eq(e).find(":checkbox").prop("checked", !0) 2460 }); 2461 var k = function (e, n) { 2462 if (n) { 2463 e.find("li.selected").removeClass("selected"); 2464 var i = t(n); 2465 i.addClass("selected"), d.scrollTo(i) 2466 } 2467 }, C = []; 2468 w.on("keydown", function (e) { 2469 if (9 != e.which) 2470 if (40 != e.which || d.is(":visible")) { 2471 if (13 != e.which || d.is(":visible")) { 2472 e.preventDefault(); 2473 var n = String.fromCharCode(e.which).toLowerCase(), i = [9, 13, 27, 38, 40]; 2474 if (n && -1 === i.indexOf(e.which)) { 2475 C.push(n); 2476 var o = C.join(""), r = d.find("li").filter(function () { 2477 return 0 === t(this).text().toLowerCase().indexOf(o) 2478 })[0]; 2479 r && k(d, r) 2480 } 2481 if (13 == e.which) { 2482 var s = d.find("li.selected:not(.disabled)")[0]; 2483 s && (t(s).trigger("click"), a || w.trigger("close")) 2484 } 2485 40 == e.which && (r = d.find("li.selected").length ? d.find("li.selected").next("li:not(.disabled)")[0] : d.find("li:not(.disabled)")[0], k(d, r)), 27 == e.which && w.trigger("close"), 38 == e.which && (r = d.find("li.selected").prev("li:not(.disabled)")[0]) && k(d, r), setTimeout(function () { 2486 C = [] 2487 }, 1e3) 2488 } 2489 } else 2490 w.trigger("open"); 2491 else 2492 w.trigger("close") 2493 }) 2494 } else 2495 i.data("select-id", null).removeClass("initialized") 2496 } 2497 }) 2498 } 2499 }(jQuery), jQuery("select").siblings("input.select-dropdown").on("mousedown", function (t) { 2500 /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) && (t.clientX >= t.target.clientWidth || t.clientY >= t.target.clientHeight) && t.preventDefault() 2501 }), $.fn.kb_autocomplete = function (t) { 2502 var e = {data: {}}; 2503 return t = $.extend(e, t), this.each(function () { 2504 var e = $(this), n = t.data; 2505 if (Object.keys(n).length) { 2506 var i = $('<ul class="kb-autocomplete-wrap"></ul>'); 2507 i.insertAfter($(this)) 2508 } 2509 e.on("keyup", function (t) { 2510 var o = e.val(); 2511 if (i.empty(), o.length) 2512 for (var a in n) 2513 if (-1 !== n[a].toLowerCase().indexOf(o.toLowerCase())) { 2514 var r = $("<li>" + n[a] + "</li>"); 2515 i.append(r) 2516 } 2517 13 == t.which && (i.children(":first").trigger("click"), i.empty()), 0 == o.length ? $(".kb-autocomplete-clear").css("visibility", "hidden") : $(".kb-autocomplete-clear").css("visibility", "visible") 2518 }), i.on("click", "li", function () { 2519 e.val($(this).text()), i.empty() 2520 }), $(".kb-autocomplete-clear").on("click", function (t) { 2521 t.preventDefault(), e.val(""), $(this).css("visibility", "hidden"), i.empty(), $(this).parent().find("label").removeClass("active") 2522 }) 2523 }) 2524 }, function (t) { 2525 "function" == typeof define && define.amd ? define("picker", ["jquery"], t) : "object" == typeof exports ? module.exports = t(require("jquery")) : this.Picker = t(jQuery) 2526 }(function (t) { 2527 function e(a, s, d, h) { 2528 function p() {
2529 return e._.node("div", e._.node("div", e._.node("div", e._.node("div", I.component.nodes(k.open), S.box), S.wrap), S.frame), S.holder, 'tabindex="-1"') 2530 } 2531 function f() { 2532 T.data(s, I).addClass(S.input).val(T.data("value") ? I.get("select", C.format) : a.value), C.editable || T.on("focus." + k.id + " click." + k.id, function (t) { 2533 t.preventDefault(), I.open() 2534 }).on("keydown." + k.id, x), o(a, {haspopup: !0, expanded: !1, readonly: !1, owns: a.id + "_root"}) 2535 } 2536 function m() { 2537 o(I.$root[0], "hidden", !0) 2538 } 2539 function g() { 2540 I.$holder.on({keydown: x, "focus.toOpen": b, blur: function () { 2541 T.removeClass(S.target) 2542 }, focusin: function (t) { 2543 I.$root.removeClass(S.focused), t.stopPropagation() 2544 }, "mousedown click": function (e) { 2545 var n = e.target; 2546 n != I.$holder[0] && (e.stopPropagation(), "mousedown" != e.type || t(n).is("input, select, textarea, button, option") || (e.preventDefault(), I.$holder[0].focus())) 2547 }}).on("click", "[data-pick], [data-nav], [data-clear], [data-close]", function () { 2548 var e = t(this), n = e.data(), i = e.hasClass(S.navDisabled) || e.hasClass(S.disabled), o = r(); 2549 o = o && (o.type || o.href), (i || o && !t.contains(I.$root[0], o)) && I.$holder[0].focus(), !i && n.nav ? I.set("highlight", I.component.item.highlight, {nav: n.nav}) : !i && "pick"in n ? (I.set("select", n.pick), C.closeOnSelect && I.close(!0)) : n.clear ? (I.clear(), C.closeOnClear && I.close(!0)) : n.close && I.close(!0) 2550 }) 2551 } 2552 function v() { 2553 var e; 2554 !0 === C.hiddenName ? (e = a.name, a.name = "") : e = (e = ["string" == typeof C.hiddenPrefix ? C.hiddenPrefix : "", "string" == typeof C.hiddenSuffix ? C.hiddenSuffix : "_submit"])[0] + a.name + e[1], I._hidden = t('<input type=hidden name="' + e + '"' + (T.data("value") || a.value ? ' value="' + I.get("select", C.formatSubmit) + '"' : "") + ">")[0], T.on("change." + k.id, function () { 2555 I._hidden.value = a.value ? I.get("select", C.formatSubmit) : "" 2556 }) 2557 } 2558 function y() { 2559 w && u ? I.$holder.find("." + S.frame).one("transitionend", function () { 2560 I.$holder[0].focus() 2561 }) : I.$holder[0].focus() 2562 } 2563 function b(t) { 2564 t.stopPropagation(), T.addClass(S.target), I.$root.addClass(S.focused), I.open() 2565 } 2566 function x(t) { 2567 var e = t.keyCode, n = /^(8|46)$/.test(e); 2568 if (27 == e) 2569 return I.close(!0), !1; 2570 (32 == e || n || !k.open && I.component.key[e]) && (t.preventDefault(), t.stopPropagation(), n ? I.clear().close() : I.open()) 2571 } 2572 if (!a) 2573 return e; 2574 var w = !1, k = {id: a.id || "P" + Math.abs(~~(Math.random() * new Date))}, C = d ? t.extend(!0, {}, d.defaults, h) : h || {}, S = t.extend({}, e.klasses(), C.klass), T = t(a), M = function () { 2575 return this.start() 2576 }, I = M.prototype = {constructor: M, $node: T, start: function () { 2577 return k && k.start ? I : (k.methods = {}, k.start = !0, k.open = !1, k.type = a.type, a.autofocus = a == r(), a.readOnly = !C.editable, a.id = a.id || k.id, "text" != a.type && (a.type = "text"), I.component = new d(I, C), I.$root = t('<div class="' + S.picker + '" id="' + a.id + '_root" />'), m(), I.$holder = t(p()).appendTo(I.$root), g(), C.formatSubmit && v(), f(), C.containerHidden ? t(C.containerHidden).append(I._hidden) : T.after(I._hidden), C.container ? t(C.container).append(I.$root) : T.after(I.$root), I.on({start: I.component.onStart, render: I.component.onRender, stop: I.component.onStop, open: I.component.onOpen, close: I.component.onClose, set: I.component.onSet}).on({start: C.onStart, render: C.onRender, stop: C.onStop, open: C.onOpen, close: C.onClose, set: C.onSet}), w = n(I.$holder[0]), a.autofocus && I.open(), I.trigger("start").trigger("render")) 2578 }, render: function (e) { 2579 return e ? (I.$holder = t(p()), g(), I.$root.html(I.$holder)) : I.$root.find("." + S.box).html(I.component.nodes(k.open)), I.trigger("render") 2580 }, stop: function () { 2581 return k.start ? (I.close(), I._hidden && I._hidden.parentNode.removeChild(I._hidden), I.$root.remove(), T.removeClass(S.input).removeData(s), setTimeout(function () { 2582 T.off("." + k.id) 2583 }, 0), a.type = k.type, a.readOnly = !1, I.trigger("stop"), k.methods = {}, k.start = !1, I) : I 2584 }, open: function (n) { 2585 return k.open ? I : (T.addClass(S.active), o(a, "expanded", !0), setTimeout(function () { 2586 I.$root.addClass(S.opened), o(I.$root[0], "hidden", !1) 2587 }, 0), !1 !== n && (k.open = !0, w && c.css("overflow", "hidden").css("padding-right", "+=" + i()), y(), l.on("click." + k.id + " focusin." + k.id, function (t) { 2588 var e = t.target; 2589 e != a && e != document && 3 != t.which && I.close(e === I.$holder[0]) 2590 }).on("keydown." + k.id, function (n) { 2591 var i = n.keyCode, o = I.component.key[i], a = n.target; 2592 27 == i ? I.close(!0) : a != I.$holder[0] || !o && 13 != i ? t.contains(I.$root[0], a) && 13 == i && (n.preventDefault(), a.click()) : (n.preventDefault(), o ? e._.trigger(I.component.key.go, I, [e._.trigger(o)]) : I.$root.find("." + S.highlighted).hasClass(S.disabled) || (I.set("select", I.component.item.highlight), C.closeOnSelect && I.close(!0))) 2593 })), I.trigger("open")) 2594 }, close: function (t) { 2595 return t && (C.editable ? a.focus() : (I.$holder.off("focus.toOpen").focus(), setTimeout(function () { 2596 I.$holder.on("focus.toOpen", b) 2597 }, 0))), T.removeClass(S.active), o(a, "expanded", !1), setTimeout(function () { 2598 I.$root.removeClass(S.opened + " " + S.focused), o(I.$root[0], "hidden", !0) 2599 }, 0), k.open ? (k.open = !1, w && c.css("overflow", "").css("padding-right", "-=" + i()), l.off("." + k.id), I.trigger("close")) : I 2600 }, clear: function (t) { 2601 return I.set("clear", null, t) 2602 }, set: function (e, n, i) { 2603 var o, a, r = t.isPlainObject(e), s = r ? e : {}; 2604 if (i = r && t.isPlainObject(n) ? n : i || {}, e) { 2605 r || (s[e] = n); 2606 for (o in s) 2607 a = s[o], o in I.component.item && (void 0 === a && (a = null), I.component.set(o, a, i)), "select" != o && "clear" != o || T.val("clear" == o ? "" : I.get(o, C.format)).trigger("change"); 2608 I.render() 2609 } 2610 return i.muted ? I : I.trigger("set", s) 2611 }, get: function (t, n) { 2612 if (t = t || "value", null != k[t]) 2613 return k[t]; 2614 if ("valueSubmit" == t) { 2615 if (I._hidden) 2616 return I._hidden.value; 2617 t = "value" 2618 } 2619 if ("value" == t) 2620 return a.value; 2621 if (t in I.component.item) { 2622 if ("string" == typeof n) { 2623 var i = I.component.get(t); 2624 return i ? e._.trigger(I.component.formats.toString, I.component, [n, i]) : "" 2625 } 2626 return I.component.get(t) 2627 } 2628 }, on: function (e, n, i) { 2629 var o, a, r = t.isPlainObject(e), s = r ? e : {}; 2630 if (e) { 2631 r || (s[e] = n); 2632 for (o in s) 2633 a = s[o], i && (o = "_" + o), k.methods[o] = k.methods[o] || [], k.methods[o].push(a) 2634 } 2635 return I 2636 }, off: function () { 2637 var t, e, n = arguments; 2638 for (t = 0, namesCount = n.length; t < namesCount; t += 1) 2639 (e = n[t])in k.methods && delete k.methods[e]; 2640 return I 2641 }, trigger: function (t, n) { 2642 var i = function (t) { 2643 var i = k.methods[t]; 2644 i && i.map(function (t) { 2645 e._.trigger(t, I, [n]) 2646 }) 2647 }; 2648 return i("_" + t), i(t), I 2649 }}; 2650 return new M 2651 } 2652 function n(t) { 2653 var e; 2654 return t.currentStyle ? e = t.currentStyle.position : window.getComputedStyle && (e = getComputedStyle(t).position), "fixed" == e 2655 } 2656 function i() { 2657 if (c.height() <= s.height()) 2658 return 0; 2659 var e = t('<div style="visibility:hidden;width:100px" />').appendTo("body"), n = e[0].offsetWidth; 2660 e.css("overflow", "scroll"); 2661 var i = t('<div style="width:100%" />').appendTo(e)[0].offsetWidth; 2662 return e.remove(), n - i 2663 } 2664 function o(e, n, i) { 2665 if (t.isPlainObject(n)) 2666 for (var o in n) 2667 a(e, o, n[o]); 2668 else 2669 a(e, n, i) 2670 } 2671 function a(t, e, n) { 2672 t.setAttribute(("role" == e ? "" : "aria-") + e, n) 2673 } 2674 function r() { 2675 try { 2676 return document.activeElement 2677 } catch (t) { 2678 } 2679 } 2680 var s = t(window), l = t(document), c = t(document.documentElement), u = null != document.documentElement.style.transition; 2681 return e.klasses = function (t) { 2682 return t = t || "picker", {picker: t, opened: t + "--opened", focused: t + "--focused", input: t + "__input", active: t + "__input--active", target: t + "__input--target", holder: t + "__holder", frame: t + "__frame", wrap: t + "__wrap", box: t + "__box"} 2683 }, e._ = {group: function (t) { 2684 for (var n, i = "", o = e._.trigger(t.min, t); o <= e._.trigger(t.max, t, [o]); o += t.i) 2685 n = e._.trigger(t.item, t, [o]), i += e._.node(t.node, n[0], n[1], n[2]); 2686 return i 2687 }, node: function (e, n, i, o) { 2688 return n ? (n = t.isArray(n) ? n.join("") : n, i = i ? ' class="' + i + '"' : "", o = o ? " " + o : "", "<" + e + i + o + ">" + n + "</" + e + ">") : "" 2689 }, lead: function (t) { 2690 return(t < 10 ? "0" : "") + t 2691 }, trigger: function (t, e, n) { 2692 return"function" == typeof t ? t.apply(e, n || []) : t 2693 }, digits: function (t) { 2694 return/\d/.test(t[1]) ? 2 : 1 2695 }, isDate: function (t) { 2696 return{}.toString.call(t).indexOf("Date") > -1 && this.isInteger(t.getDate()) 2697 }, isInteger: function (t) { 2698 return{}.toString.call(t).indexOf("Number") > -1 && t % 1 == 0 2699 }, ariaAttr: function (e, n) { 2700 t.isPlainObject(e) || (e = {attribute: n}), n = ""; 2701 for (var i in e) { 2702 var o = ("role" == i ? "" : "aria-") + i; 2703 n += null == e[i] ? "" : o + '="' + e[i] + '"' 2704 } 2705 return n 2706 }}, e.extend = function (n, i) { 2707 t.fn[n] = function (o, a) { 2708 var r = this.data(n); 2709 return"picker" == o ? r : r && "string" == typeof o ? e._.trigger(r[o], r, [a]) : this.each(function () { 2710 t(this).data(n) || new e(this, n, i, o) 2711 }) 2712 }, t.fn[n].defaults = i.defaults 2713 }, e 2714 }), function (t) { 2715 "function" == typeof define && define.amd ? define(["picker", "jquery"], t) : "object" == typeof exports ? module.exports = t(require("./picker.js"), require("jquery")) : t(Picker, jQuery) 2716 }(function (t, e) { 2717 function n(t, e) { 2718 var n = this, i = t.$node[0], o = i.value, a = t.$node.data("value"), r = a || o, s = a ? e.formatSubmit : e.format, l = function () { 2719 return i.currentStyle ? "rtl" == i.currentStyle.direction : "rtl" == getComputedStyle(t.$root[0]).direction 2720 }; 2721 n.settings = e, n.$node = t.$node, n.queue = {min: "measure create", max: "measure create", now: "now create", select: "parse create validate", highlight: "parse navigate create validate", view: "parse create validate viewset", disable: "deactivate", enable: "activate"}, n.item = {}, n.item.clear = null, n.item.disable = (e.disable || []).slice(0), n.item.enable = -function (t) { 2722 return!0 === t[0] ? t.shift() : -1 2723 }(n.item.disable), n.set("min", e.min).set("max", e.max).set("now"), r ? n.set("select", r, {format: s, defaultValue: !0}) : n.set("select", null).set("highlight", n.item.now), n.key = {40: 7, 38: -7, 39: function () { 2724 return l() ? -1 : 1 2725 }, 37: function () { 2726 return l() ? 1 : -1 2727 }, go: function (t) { 2728 var e = n.item.highlight, i = new Date(e.year, e.month, e.date + t); 2729 n.set("highlight", i, {interval: t}), this.render() 2730 }}, t.on("render", function () { 2731 t.$root.find("." + e.klass.selectMonth).on("change", function () { 2732 var n = this.value; 2733 n && (t.set("highlight", [t.get("view").year, n, t.get("highlight").date]), t.$root.find("." + e.klass.selectMonth).trigger("focus")) 2734 }), t.$root.find("." + e.klass.selectYear).on("change", function () { 2735 var n = this.value; 2736 n && (t.set("highlight", [n, t.get("view").month, t.get("highlight").date]), t.$root.find("." + e.klass.selectYear).trigger("focus")) 2737 }) 2738 }, 1).on("open", function () { 2739 var i = ""; 2740 n.disabled(n.get("now")) && (i = ":not(." + e.klass.buttonToday + ")"), t.$root.find("button" + i + ", select").attr("disabled", !1) 2741 }, 1).on("close", function () { 2742 t.$root.find("button, select").attr("disabled", !0) 2743 }, 1) 2744 } 2745 var i = t._; 2746 n.prototype.set = function (t, e, n) { 2747 var i = this, o = i.item; 2748 return null === e ? ("clear" == t && (t = "select"), o[t] = e, i) : (o["enable" == t ? "disable" : "flip" == t ? "enable" : t] = i.queue[t].split(" ").map(function (o) { 2749 return e = i[o](t, e, n) 2750 }).pop(), "select" == t ? i.set("highlight", o.select, n) : "highlight" == t ? i.set("view", o.highlight, n) : t.match(/^(flip|min|max|disable|enable)$/) && (o.select && i.disabled(o.select) && i.set("select", o.select, n), o.highlight && i.disabled(o.highlight) && i.set("highlight", o.highlight, n)), i) 2751 }, n.prototype.get = function (t) { 2752 return this.item[t] 2753 }, n.prototype.create = function (t, n, o) { 2754 var a, r = this; 2755 return n = void 0 === n ? t : n, n == -1 / 0 || n == 1 / 0 ? a = n : e.isPlainObject(n) && i.isInteger(n.pick) ? n = n.obj : e.isArray(n) ? (n = new Date(n[0], n[1], n[2]), n = i.isDate(n) ? n : r.create().obj) : n = i.isInteger(n) || i.isDate(n) ? r.normalize(new Date(n), o) : r.now(t, n, o), {year: a || n.getFullYear(), month: a || n.getMonth(), date: a || n.getDate(), day: a || n.getDay(), obj: a || n, pick: a || n.getTime()} 2756 }, n.prototype.createRange = function (t, n) { 2757 var o = this, a = function (t) { 2758
2758 return!0 === t || e.isArray(t) || i.isDate(t) ? o.create(t) : t 2759 }; 2760 return i.isInteger(t) || (t = a(t)), i.isInteger(n) || (n = a(n)), i.isInteger(t) && e.isPlainObject(n) ? t = [n.year, n.month, n.date + t] : i.isInteger(n) && e.isPlainObject(t) && (n = [t.year, t.month, t.date + n]), {from: a(t), to: a(n)} 2761 }, n.prototype.withinRange = function (t, e) { 2762 return t = this.createRange(t.from, t.to), e.pick >= t.from.pick && e.pick <= t.to.pick 2763 }, n.prototype.overlapRanges = function (t, e) { 2764 var n = this; 2765 return t = n.createRange(t.from, t.to), e = n.createRange(e.from, e.to), n.withinRange(t, e.from) || n.withinRange(t, e.to) || n.withinRange(e, t.from) || n.withinRange(e, t.to) 2766 }, n.prototype.now = function (t, e, n) { 2767 return e = new Date, n && n.rel && e.setDate(e.getDate() + n.rel), this.normalize(e, n) 2768 }, n.prototype.navigate = function (t, n, i) { 2769 var o, a, r, s, l = e.isArray(n), c = e.isPlainObject(n), u = this.item.view; 2770 if (l || c) { 2771 for (c?(a = n.year, r = n.month, s = n.date):(a = + n[0], r = + n[1], s = + n[2]), i && i.nav && u && u.month !== r && (a = u.year, r = u.month), a = (o = new Date(a, r + (i && i.nav?i.nav:0), 1)).getFullYear(), r = o.getMonth(); new Date(a, r, s).getMonth() !== r; ) 2772 s -= 1; 2773 n = [a, r, s] 2774 } 2775 return n 2776 }, n.prototype.normalize = function (t) { 2777 return t.setHours(0, 0, 0, 0), t 2778 }, n.prototype.measure = function (t, e) { 2779 var n = this; 2780 return e ? "string" == typeof e ? e = n.parse(t, e) : i.isInteger(e) && (e = n.now(t, e, {rel: e})) : e = "min" == t ? -1 / 0 : 1 / 0, e 2781 }, n.prototype.viewset = function (t, e) { 2782 return this.create([e.year, e.month, 1]) 2783 }, n.prototype.validate = function (t, n, o) { 2784 var a, r, s, l, c = this, u = n, d = o && o.interval ? o.interval : 1, h = -1
2784=== c.item.enable, p = c.item.min, f = c.item.max, m = h && c.item.disable.filter(function (t) { 2785 if (e.isArray(t)) { 2786 var o = c.create(t).pick; 2787 o < n.pick ? a = !0 : o > n.pick && (r = !0) 2788 } 2789 return i.isInteger(t) 2790 }).length; 2791 if ((!o || !o.nav && !o.defaultValue) && (!h && c.disabled(n) || h && c.disabled(n) && (m || a || r) || !h && (n.pick <= p.pick || n.pick >= f.pick))) 2792 for (h && !m && (!r && d > 0 || !a && d < 0) && (d *= - 1); c.disabled(n) && (Math.abs(d) > 1 && (n.month < u.month || n.month > u.month) && (n = u, d = d > 0?1: - 1), n.pick <= p.pick?(s = !0, d = 1, n = c.create([p.year, p.month, p.date + (n.pick === p.pick?0: - 1)])):n.pick >= f.pick && (l = !0, d = - 1, n = c.create([f.year, f.month, f.date + (n.pick === f.pick?0:1)])), !s || !l); ) 2793 n = c.create([n.year, n.month, n.date + d]); 2794 return n 2795 }, n.prototype.disabled = function (t) { 2796 var n = this, o = n.item.disable.filter(function (o) { 2797 return i.isInteger(o) ? t.day === (n.settings.firstDay ? o : o - 1) % 7 : e.isArray(o) || i.isDate(o) ? t.pick === n.create(o).pick : e.isPlainObject(o) ? n.withinRange(o, t) : void 0 2798 }); 2799 return o = o.length && !o.filter(function (t) { 2800 return e.isArray(t) && "inverted" == t[3] || e.isPlainObject(t) && t.inverted 2801 }).length, -1 === n.item.enable ? !o : o || t.pick < n.item.min.pick || t.pick > n.item.max.pick 2802 }, n.prototype.parse = function (t, e, n) { 2803 var o = this, a = {}; 2804 return e && "string" == typeof e ? (n && n.format || ((n = n || {}).format = o.settings.format), o.formats.toArray(n.format).map(function (t) { 2805 var n = o.formats[t], r = n ? i.trigger(n, o, [e, a]) : t.replace(/^!/, "").length; 2806 n && (a[t] = e.substr(0, r)), e = e.substr(r) 2807 }), [a.yyyy || a.yy, +(a.mm || a.m) - 1, a.dd || a.d]) : e 2808 }, n.prototype.formats = function () { 2809 function t(t, e, n) { 2810 var i = t.match(/[^\x00-\x7F]+|\w+/)[0]; 2811 return n.mm || n.m || (n.m = e.indexOf(i) + 1), i.length 2812 } 2813 function e(t) { 2814 return t.match(/\w+/)[0].length 2815 } 2816 return{d: function (t, e) { 2817 return t ? i.digits(t) : e.date 2818 }, dd: function (t, e) { 2819 return t ? 2 : i.lead(e.date) 2820 }, ddd: function (t, n) { 2821 return t ? e(t) : this.settings.weekdaysShort[n.day] 2822 }, dddd: function (t, n) { 2823 return t ? e(t) : this.settings.weekdaysFull[n.day] 2824 }, m: function (t, e) { 2825 return t ? i.digits(t) : e.month + 1 2826 }, mm: function (t, e) { 2827 return t ? 2 : i.lead(e.month + 1) 2828 }, mmm: function (e, n) { 2829 var i = this.settings.monthsShort; 2830 return e ? t(e, i, n) : i[n.month] 2831 }, mmmm: function (e, n) { 2832 var i = this.settings.monthsFull; 2833 return e ? t(e, i, n) : i[n.month] 2834 }, yy: function (t, e) { 2835 return t ? 2 : ("" + e.year).slice(2) 2836 }, yyyy: function (t, e) { 2837 return t ? 4 : e.year 2838 }, toArray: function (t) { 2839 return t.split(/(d{1,4}|m{1,4}|y{4}|yy|!.)/g) 2840 }, toString: function (t, e) { 2841 var n = this; 2842 return n.formats.toArray(t).map(function (t) { 2843 return i.trigger(n.formats[t], n, [0, e]) || t.replace(/^!/, "") 2844 }).join("") 2845 }} 2846 }(), n.prototype.isDateExact = function (t, n) { 2847 var o = this; 2848 return i.isInteger(t) && i.isInteger(n) || "boolean" == typeof t && "boolean" == typeof n ? t === n : (i.isDate(t) || e.isArray(t)) && (i.isDate(n) || e.isArray(n)) ? o.create(t).pick === o.create(n).pick : !(!e.isPlainObject(t) || !e.isPlainObject(n)) && (o.isDateExact(t.from, n.from) && o.isDateExact(t.to, n.to)) 2849 }, n.prototype.isDateOverlap = function (t, n) { 2850 var o = this, a = o.settings.firstDay ? 1 : 0; 2851 return i.isInteger(t) && (i.isDate(n) || e.isArray(n)) ? (t = t % 7 + a) === o.create(n).day + 1 : i.isInteger(n) && (i.isDate(t) || e.isArray(t)) ? (n = n % 7 + a) === o.create(t).day + 1 : !(!e.isPlainObject(t) || !e.isPlainObject(n)) && o.overlapRanges(t, n) 2852 }, n.prototype.flipEnable = function (t) { 2853 var e = this.item; 2854 e.enable = t || (-1 == e.enable ? 1 : -1) 2855 }, n.prototype.deactivate = function (t, n) { 2856 var o = this, a = o.item.disable.slice(0); 2857 return"flip" == n ? o.flipEnable() : !1 === n ? (o.flipEnable(1), a = []) : !0 === n ? (o.flipEnable(-1), a = []) : n.map(function (t) { 2858 for (var n, r = 0; r < a.length; r += 1) 2859 if (o.isDateExact(t, a[r])) { 2860 n = !0; 2861 break 2862 } 2863 n || (i.isInteger(t) || i.isDate(t) || e.isArray(t) || e.isPlainObject(t) && t.from && t.to) && a.push(t) 2864 }), a 2865 }, n.prototype.activate = function (t, n) { 2866 var o = this, a = o.item.disable, r = a.length; 2867 return"flip" == n ? o.flipEnable() : !0 === n ? (o.flipEnable(1), a = []) : !1 === n ? (o.flipEnable(-1), a = []) : n.map(function (t) { 2868 var n, s, l, c; 2869 for (l = 0; l < r; l += 1) { 2870 if (s = a[l], o.isDateExact(s, t)) { 2871 n = a[l] = null, c = !0; 2872 break 2873 } 2874 if (o.isDateOverlap(s, t)) { 2875 e.isPlainObject(t) ? (t.inverted = !0, n = t) : e.isArray(t) ? (n = t)[3] || n.push("inverted") : i.isDate(t) && (n = [t.getFullYear(), t.getMonth(), t.getDate(), "inverted"]); 2876 break 2877 } 2878 } 2879 if (n) 2880 for (l = 0; l < r; l += 1) 2881 if (o.isDateExact(a[l], t)) { 2882 a[l] = null; 2883 break 2884 } 2885 if (c) 2886 for (l = 0; l < r; l += 1) 2887 if (o.isDateOverlap(a[l], t)) { 2888 a[l] = null; 2889 break 2890 } 2891 n && a.push(n) 2892 }), a.filter(function (t) { 2893 return null != t 2894 }) 2895 }, n.prototype.nodes = function (t) { 2896 var e = this, n = e.settings, o = e.item, a = o.now, r = o.select, s = o.highlight, l = o.view, c = o.disable, u = o.min, d = o.max, h = function (t, e) { 2897 return n.firstDay && (t.push(t.shift()), e.push(e.shift())), i.node("thead", i.node("tr", i.group({min: 0, max: 6, i: 1, node: "th", item: function (i) { 2898 return[t[i], n.klass.weekdays, 'scope=col title="' + e[i] + '"'] 2899 }}))) 2900 }((n.showWeekdaysFull ? n.weekdaysFull : n.weekdaysShort).slice(0), n.weekdaysFull.slice(0)), p = function (t) { 2901 return i.node("div", " ", n.klass["nav" + (t ? "Next" : "Prev")] + (t && l.year >= d.year && l.month >= d.month || !t && l.year <= u.year && l.month <= u.month ? " " + n.klass.navDisabled : ""), "data-nav=" + (t || -1) + " " + i.ariaAttr({role: "button", controls: e.$node[0].id + "_table"}) + ' title="' + (t ? n.labelMonthNext : n.labelMonthPrev) + '"') 2902 }, f = function () { 2903 var o = n.showMonthsShort ? n.monthsShort : n.monthsFull; 2904 return n.selectMonths ? i.node("select", i.group({min: 0, max: 11, i: 1, node: "option", item: function (t) { 2905 return[o[t], 0, "value=" + t + (l.month == t ? " selected" : "") + (l.year == u.year && t < u.month || l.year == d.year && t > d.month ? " disabled" : "")] 2906 }}), n.klass.selectMonth, (t ? "" : "disabled") + " " + i.ariaAttr({controls: e.$node[0].id + "_table"}) + ' title="' + n.labelMonthSelect + '"') : i.node("div", o[l.month], n.klass.month) 2907 }, m = function () { 2908 var o = l.year, a = !0 === n.selectYears ? 5 : ~~(n.selectYears / 2); 2909 if (a) { 2910 var r = u.year, s = d.year, c = o - a, h = o + a; 2911 if (r > c && (h += r - c, c = r), s < h) { 2912 var p = c - r, f = h - s; 2913 c -= p >
2913 f ? f : p, h = s 2914 } 2915 return i.node("select", i.group({min: c, max: h, i: 1, node: "option", item: function (t) { 2916 return[t, 0, "value=" + t + (o == t ? " selected" : "")] 2917 }}), n.klass.selectYear, (t ? "" : "disabled") + " " + i.ariaAttr({controls: e.$node[0].id + "_table"}) + ' title="' + n.labelYearSelect + '"') 2918 } 2919 return i.node("div", o, n.klass.year) 2920 }; 2921 return i.node("div", (n.selectYears ? m() + f() : f() + m()) + p() + p(1), n.klass.header) + i.node("table", h + i.node("tbody", i.group({min: 0, max: 5, i: 1, node: "tr", item: function (t) { 2922 var o = n.firstDay && 0 === e.create([l.year, l.month, 1]).day ? -7 : 0; 2923 return[i.group({min: 7 * t - l.day + o + 1, max: function () { 2924 return this.min + 7 - 1 2925 }, i: 1, node: "td", item: function (t) { 2926 t = e.create([l.year, l.month, t + (n.firstDay ? 1 : 0)]); 2927 var o = r && r.pick == t.pick, h = s && s.pick == t.pick, p = c && e.disabled(t) || t.pick < u.pick || t.pick > d.pick, f = i.trigger(e.formats.toString, e, [n.format, t]); 2928 return[i.node("div", t.date, function (e) { 2929 return e.push(l.month == t.month ? n.klass.infocus : n.klass.outfocus), a.pick == t.pick && e.push(n.klass.now), o && e.push(n.klass.selected), h && e.push(n.klass.highlighted), p && e.push(n.klass.disabled), e.join(" ") 2930 }([n.klass.day]), "data-pick=" + t.pick + " " + i.ariaAttr({role: "gridcell", label: f, selected: !(!o || e.$node.val() !== f) || null, activedescendant: !!h || null, disabled: !!p || null})), "", i.ariaAttr({role: "presentation"})] 2931 }})] 2932 }})), n.klass.table, 'id="' + e.$node[0].id + '_table" ' + i.ariaAttr({role: "grid", controls: e.$node[0].id, readonly: !0})) + i.node("div", i.node("button", n.today, n.klass.buttonToday, "type=button data-pick=" + a.pick + (t && !e.disabled(a) ? "" : " disabled") + " " + i.ariaAttr({controls: e.$node[0].id})) + i.node("button", n.clear, n.klass.buttonClear, "type=button data-clear=1" + (t ? "" : " disabled") + " " + i.ariaAttr({controls: e.$node[0].id})) + i.node("button", n.close, n.klass.buttonClose, "type=button data-close=true " + (t ? "" : " disabled") + " " + i.ariaAttr({controls: e.$node[0].id})), n.klass.footer) 2933 }, n.defaults = function (t) { 2934 return{labelMonthNext: "Next month", labelMonthPrev: "Previous month", labelMonthSelect: "Select a month", labelYearSelect: "Select a year", monthsFull: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "
2934November", "December"], monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], weekdaysFull: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], weekdaysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], today: "Today", clear: "Clear", close: "Close", closeOnSelect: !0, closeOnClear: !0, format: "d mmmm, yyyy", klass: {table: t + "table", header: t + "header", navPrev: t + "nav--prev", navNext: t + "nav--next", navDisabled: t + "nav--disabled", month: t + "month", year: t + "year", selectMonth: t + "select--month", selectYear: t + "select--year", weekdays: t + "weekday", day: t + "day", disabled: t + "day--disabled", selected: t + "day--selected", highlighted: t + "day--highlighted", now: t + "day--today", infocus: t + "day--infocus", outfocus: t + "day--outfocus", footer: t + "footer", buttonClear: t + "button--clear", buttonToday: t + "button--today", buttonClose: t + "button--close"}} 2935 }(t.klasses().picker + "__"), t.extend("pickadate", n) 2936 }), $.extend($.fn.pickadate.defaults, {selectMonths: !0, selectYears: 15, onRender: function () { 2937 var t = this.$root, e = this.get("highlight", "yyyy"), n = this.get("highlight", "dd"), i = this.get("highlight", "mmm"), o = this.get("highlight", "dddd"); 2938 t.find(".picker__header").prepend('<div class="picker__date-display"><div class="picker__weekday-display">' + o + '</div><div class="picker__month-display"><div>' + i + '</div></div><div class="picker__day-display"><div>' + n + '</div></div><div class="picker__year-display"><div>' + e + "</div></div></div>") 2939 }}), function () { 2940 function t(t) { 2941 return document.createElementNS(l, t) 2942 } 2943 function e(t) { 2944 return(t < 10 ? "0" : "") + t 2945 } 2946 function n(t) { 2947 var e = ++g + ""; 2948 return t ? t + e : e 2949 } 2950 function i(i, r) { 2951 function l(t, e) { 2952 var n = d.offset(), i = /^touch/.test(t.type), o = n.left + v, a = n.top + v, l = (i ? t.originalEvent.touches[0] : t).pageX - o, u = (i ? t.originalEvent.touches[0] : t).pageY - a, h = Math.sqrt(l * l + u * u), m = !1; 2953 if (!e || !(h < y - x || h > y + x)) { 2954 t.preventDefault(); 2955 var g = setTimeout(function () { 2956 P.popover.addClass("clockpicker-moving") 2957 }, 200); 2958 c && d.append(P.canvas), P.setHand(l, u, !e, !0), s.off(p).on(p, function (t) { 2959 t.preventDefault(); 2960 var e = /^touch/.test(t.type), n = (e ? t.originalEvent.touches[0] : t).pageX - o, i = (e ? t.originalEvent.touches[0] : t).pageY - a; 2961 (m || n !== l || i !== u) && (m = !0, P.setHand(n, i, !1, !0)) 2962 }), s.off(f).on(f, function (t) { 2963 s.off(f), t.preventDefault(); 2964 var n = /^touch/.test(t.type), i = (n ? t.originalEvent.changedTouches[0] : t).pageX - o, c = (n ? t.originalEvent.changedTouches[0] : t).pageY - a; 2965 (e || m) && i === l && c === u && P.setHand(i, c), "hours" === P.currentView ? P.toggleView("minutes", k / 2) : r.autoclose && (P.minutesView.addClass("clockpicker-dial-out"), setTimeout(function () { 2966 P.done() 2967 }, k / 2)), d.prepend(W), clearTimeout(g), P.popover.removeClass("clockpicker-moving"), s.off(p) 2968 }) 2969 } 2970 } 2971 var u = a(C), d = u.find(".clockpicker-plate"), m = u.find(".picker__holder"), g = u.find(".clockpicker-hours"), S = u.find(".clockpicker-minutes"), T = u.find(".clockpicker-am-pm-block"), M = "INPUT" === i.prop("tagName"), I = M ? i : i.find("input"), A = a("label[for=" + I.attr("id") + "]"), P = this; 2972 if (this.id = n("cp"), this.element = i, this.holder = m, this.options = r, this.isAppended = !1, this.isShown = !1, this.currentView = "hours", this.isInput = M, this.input = I, this.label = A, this.popover = u, this.plate = d, this.hoursView = g, this.minutesView = S, this.amPmBlock = T, this.spanHours = u.find(".clockpicker-span-hours"), this.spanMinutes = u.find(".clockpicker-span-minutes"), this.spanAmPm = u.find(".clockpicker-span-am-pm"), this.footer = u.find(".picker__footer"), this.amOrPm = "PM", r.twelvehour) { 2973 var _ = ['<div class="clockpicker-am-pm-block">', '<button type="button" class="btn-floating btn-flat clockpicker-button clockpicker-am-button">', "AM", "</button>", '<button type="button" class="btn-floating btn-flat clockpicker-button clockpicker-pm-button">', "PM", "</button>", "</div>"].join(""); 2974 a(_); 2975 r.ampmclickable ? (this.spanAmPm.empty(), a('<div id="click-am">AM</div>').on("click", function () { 2976 P.spanAmPm.children("#click-am").addClass("text-primary"), P.spanAmPm.children("#click-pm").removeClass("text-primary"), P.amOrPm = "AM" 2977 }).appendTo(this.spanAmPm), a('<div id="click-pm">PM</div>').on("click", function () { 2978 P.spanAmPm.children("#click-pm").addClass("text-primary"), P.spanAmPm.children("#click-am").removeClass("text-primary"), P.amOrPm = "PM" 2979 }).appendTo(this.spanAmPm)) : (a('<button type="button" class="btn-floating btn-flat clockpicker-button am-button" tabindex="1">AM</button>').on("click", function () { 2980 P.amOrPm = "AM", P.amPmBlock.children(".pm-button").removeClass("active"), P.amPmBlock.children(".am-button").addClass("active"), P.spanAmPm.empty().append("AM") 2981 }).appendTo(this.amPmBlock), a('<button type="button" class="btn-floating btn-flat clockpicker-button pm-button" tabindex="2">PM</button>').on("click", function () { 2982 P.amOrPm = "PM", P.amPmBlock.children(".am-button").removeClass("active"), P.amPmBlock.children(".pm-button").addClass("active"), P.spanAmPm.empty().append("PM") 2983 }).appendTo(this.amPmBlock)) 2984 } 2985 r.darktheme && u.addClass("darktheme"), a('<button type="button" class="btn-flat clockpicker-button" tabindex="' + (r.twelvehour ? "3" : "1") + '">' + r.donetext + "</button>").click(a.proxy(this.done, this)).appendTo(this.footer), this.spanHours.click(a.proxy(this.toggleView, this, "hours")), this.spanMinutes.click(a.proxy(this.toggleView, this, "minutes")), I.on("focus.clockpicker click.clockpicker", a.proxy(this.show, this)); 2986 var D, E, O, L, F = a('<div class="clockpicker-tick"></div>'); 2987 if (r.twelvehour) 2988 for (D = 1; D < 13; D += 1) 2989 E = F.clone(), O = D / 6 * Math.PI, L = y, E.css("font-size", "140%"), E.css({left: v + Math.sin(O) * L - x, top: v - Math.
2989cos(O) * L - x}), E.html(0 === D ? "00" : D), g.append(E), E.on(h, l); 2990 else 2991 for (D = 0; D < 24; D += 1) { 2992 E = F.clone(), O = D / 6 * Math.PI; 2993 var R = D > 0 && D < 13; 2994 L = R ? b : y, E.css({left: v + Math.sin(O) * L - x, top: v - Math.cos(O) * L - x}), R && E.css("font-size", "120%"), E.html(0 === D ? "00" : D), g.append(E), E.on(h, l) 2995 } 2996 for (D = 0; D < 60; D += 5) 2997 E = F.clone(), O = D / 30 * Math.PI, E.css({left: v + Math.sin(O) * y - x, top: v - Math.cos(O) * y - x}), E.css("font-size", "140%"), E.html(e(D)), S.append(E), E.on(h, l); 2998 if (d.on(h, function (t) { 2999 0 === a(t.target).closest(".clockpicker-tick").length && l(t, !0) 3000 }), c) { 3001 var W = u.find(".clockpicker-canvas"), V = t("svg"); 3002 V.setAttribute("class", "clockpicker-svg"), V.setAttribute("width", w), V.setAttribute("height", w); 3003 var z = t("g"); 3004 z.setAttribute("transform", "translate(" + v + "," + v + ")"); 3005 var N = t("circle"); 3006 N.setAttribute("class", "clockpicker-canvas-bearing"), N.setAttribute("cx", 0), N.setAttribute("cy", 0), N.setAttribute("r", 2); 3007 var H = t("line"); 3008 H.setAttribute("x1", 0), H.setAttribute("y1", 0); 3009 var B = t("circle"); 3010 B.setAttribute("class", "clockpicker-canvas-bg"), B.setAttribute("r", x); 3011 var Y = t("circle"); 3012 Y.setAttribute("class", "clockpicker-canvas-fg"), Y.setAttribute("r", 5), z.appendChild(H), z.appendChild(B), z.appendChild(Y), z.appendChild(N), V.appendChild(z), W.append(V), this.hand = H, this.bg = B, this.fg = Y, this.bearing = N, this.g = z, this.canvas = W 3013 } 3014 o(this.options.init) 3015 } 3016 function o(t) { 3017 t && "function" == typeof t && t() 3018 } 3019 var a = window.jQuery, r = a(window), s = a(document), l = "http://www.w3.org/2000/svg", c = "SVGAngle"in window && function () { 3020 var t, e = document.createElement("div"); 3021 return e.innerHTML = "<svg/>", t = (e.firstChild && e.firstChild.namespaceURI) == l, e.innerHTML = "", t 3022 }(), u = function () { 3023 var t = document.createElement("div").style; 3024 return"transition"in t || "WebkitTransition"in t || "MozTransition"in t || "msTransition"in t || "OTransition"in t 3025 }(), d = "ontouchstart"in window, h = "mousedown" + (d ? " touchstart" : ""), p = "mousemove.clockpicker" + (d ? " touchmove.clockpicker" : ""), f = "mouseup.clockpicker" + (d ? " touchend.clockpicker" : ""), m = navigator.vibrate ? "vibrate" : navigator.webkitVibrate ? "webkitVibrate" : null, g = 0, v = 135, y = 110, b = 80, x = 20, w = 2 * v, k = u ? 350 : 1, C = ['<div class="clockpicker picker">', '<div class="picker__holder">', '<div class="picker__frame">', '<div class="picker__wrap">', '<div class="picker__box">', '<div class="picker__date-display">', '<div class="clockpicker-display">', '<div class="clockpicker-display-column">', '<span class="clockpicker-span-hours text-primary"></span>', ":", '<span class="clockpicker-span-minutes"></span>', "</div>", '<div class="clockpicker-display-column clockpicker-display-am-pm">', '<div class="clockpicker-span-am-pm"></div>', "</div>", "</div>", "</div>", '<div class="picker__calendar-container">', '<div class="clockpicker-plate">', '<div class="clockpicker-canvas"></div>', '<div class="clockpicker-dial clockpicker-hours"></div>', '<div class="clockpicker-dial clockpicker-minutes clockpicker-dial-out"></div>', "</div>", '<div class="clockpicker-am-pm-block">', "</div>", "</div>", '<div class="picker__footer">', "</div>", "</div>", "</div>", "</div>", "</div>", "</div>"].join(""); 3026 i.DEFAULTS = {default: "", fromnow: 0, donetext: "Done", autoclose: !1, ampmclickable: !1, darktheme: !1, twelvehour: !0, vibrate: !0}, i.prototype.toggle = function () { 3027 this[this.isShown ? "hide" : "show"]() 3028 }, i.prototype.locate = function () { 3029 var t = this.element, e = this.popover; 3030 t.offset(), t.outerWidth(), t.outerHeight(), this.options.align; 3031 e.show() 3032 }, i.prototype.show = function (t) { 3033 if (!this.isShown) { 3034 o(this.options.beforeShow), a(":input").each(function () { 3035 a(this).attr("tabindex", -1) 3036 }); 3037 var n = this; 3038 this.input.blur(), this.popover.addClass("picker--opened"), this.input.addClass("picker__input picker__input--active"), a(document.body).css("overflow", "hidden"), this.isAppended || (this.popover.insertAfter(this.input), this.options.twelvehour && (this.amOrPm = "PM", this.options.ampmclickable ? (this.spanAmPm.children("#click-pm").addClass("text-primary"), this.spanAmPm.children("#click-am").removeClass("text-primary")) : (this.amPmBlock.children(".am-button").removeClass("active"), this.amPmBlock.children(".pm-button").addClass("active"), this.spanAmPm.empty().append("PM"))), r.on("resize.clockpicker" + this.id, function () { 3039 n.isShown && n.locate() 3040 }), this.isAppended = !0);
3041 var i = ((this.input.prop("value") || this.options.default || "") + "").split(":"); 3042 if (this.options.twelvehour && void 0 !== i[1] && (i[1] = i[1].replace("AM", "").replace("PM", "")), "now" === i[0]) { 3043 var l = new Date(+new Date + this.options.fromnow); 3044 i = [l.getHours(), l.getMinutes()] 3045 } 3046 this.hours = +i[0] || 0, this.minutes = +i[1] || 0, this.spanHours.html(e(this.hours)), this.spanMinutes.html(e(this.minutes)), this.toggleView("hours"), this.locate(), this.isShown = !0, s.on("click.clockpicker." + this.id + " focusin.clockpicker." + this.id, function (t) { 3047 var e = a(t.target); 3048 0 === e.closest(n.popover.find(".picker__wrap")).length && 0 === e.closest(n.input).length && n.hide() 3049 }), s.on("keyup.clockpicker." + this.id, function (t) { 3050 27 === t.keyCode && n.hide() 3051 }), o(this.options.afterShow) 3052 } 3053 }, i.prototype.hide = function () { 3054 o(this.options.beforeHide), this.input.removeClass("picker__input picker__input--active"), this.popover.removeClass("picker--opened"), a(document.body).css("overflow", "visible"), this.isShown = !1, a(":input").each(function (t) { 3055 a(this).attr("tabindex", t + 1) 3056 }), s.off("click.clockpicker." + this.id + " focusin.clockpicker." + this.id), s.off("keyup.clockpicker." + this.id), this.popover.hide(), o(this.options.afterHide) 3057 }, i.prototype.toggleView = function (t, e) { 3058 var n = !1; 3059 "minutes" === t && "visible" === a(this.hoursView).css("visibility") && (o(this.options.beforeHourSelect), n = !0); 3060 var i = "hours" === t, r = i ? this.hoursView : this.minutesView, s = i ? this.minutesView : this.hoursView; 3061 this.currentView = t, this.spanHours.toggleClass("text-primary", i), this.spanMinutes.toggleClass("text-primary", !i), s.addClass("clockpicker-dial-out"), r.css("visibility", "visible").removeClass("clockpicker-dial-out"), this.resetClock(e), clearTimeout(this.toggleViewTimer), this.toggleViewTimer = setTimeout(function () { 3062 s.css("visibility", "hidden") 3063 }, k), n && o(this.options.afterHourSelect) 3064 }, i.prototype.resetClock = function (t) { 3065 var e = this.currentView, n = this[e], i = "hours" === e, o = n * (Math.PI / (i ? 6 : 30)), a = i && n > 0 && n < 13 ? b : y, r = Math.sin(o) * a, s = -Math.cos(o) * a, l = this; 3066 c && t ? (l.canvas.addClass("clockpicker-canvas-out"), setTimeout(function () { 3067 l.canvas.removeClass("clockpicker-canvas-out"), l.setHand(r, s) 3068 }, t)) : this.setHand(r, s) 3069 }, i.prototype.setHand = function (t, n, i, o) { 3070 var r, s = Math.atan2(t, -n), l = "hours" === this.currentView, u = Math.PI / (l || i ? 6 : 30), d = Math.sqrt(t * t + n * n), h = this.options, p = l && d < (y + b) / 2, f = p ? b : y; 3071 if (h.twelvehour && (f = y), s < 0 && (s = 2 * Math.PI + s), r = Math.round(s / u), s = r * u, h.twelvehour ? l ? 0 === r && (r = 12) : (i && (r *= 5), 60 === r && (r = 0)) : l ? (12 === r && (r = 0), r = p ? 0 === r ? 12 : r : 0 === r ? 0 : r + 12) : (i && (r *= 5), 60 === r && (r = 0)), l ? this.fg.setAttribute("class", "clockpicker-canvas-fg") : r % 5 == 0 ? this.fg.setAttribute("class", "clockpicker-canvas-fg") : this.fg.setAttribute("class", "clockpicker-canvas-fg active"), this[this.currentView] !== r && m && this.options.vibrate && (this.vibrateTimer || (navigator[m](10), this.vibrateTimer = setTimeout(a.proxy(function () { 3072 this.vibrateTimer = null 3073 }, this), 100))), this[this.currentView] = r, this[l ? "spanHours" : "spanMinutes"].html(e(r)), c) { 3074 o || !l && r % 5 ? (this.g.insertBefore(this.hand, this.bearing), this.g.insertBefore(this.bg, this.fg), this.bg.setAttribute("class", "clockpicker-canvas-bg clockpicker-canvas-bg-trans")) : (this.g.insertBefore(this.hand, this.bg), this.g.insertBefore(this.fg, this.bg), this.bg.setAttribute("class", "clockpicker-canvas-bg")); 3075 var g = Math.sin(s) * (f - x), v = -Math.cos(s) * (f - x), w = Math.sin(s) * f, k = -Math.cos(s) * f; 3076 this.hand.setAttribute("x2", g), this.hand.setAttribute("y2", v), this.bg.setAttribute("cx", w), this.bg.setAttribute("cy", k), this.fg.setAttribute("cx", w), this.fg.setAttribute("cy", k) 3077 } else 3078 this[l ? "hoursView" : "minutesView"].find(".clockpicker-tick").each(function () { 3079 var t = a(this); 3080 t.toggleClass("active", r === +t.html()) 3081 }) 3082 }, i.prototype.done = function () { 3083 o(this.options.beforeDone), this.hide(), this.label.addClass("active"); 3084 var t = this.input.prop("value"), n = e(this.hours) + ":" + e(this.minutes); 3085 this.options.twelvehour && (n += this.amOrPm), this.input.prop("value", n), n !== t && (this.input.triggerHandler("change"), this.isInput || this.element.trigger("change")), this.options.autoclose && this.input.trigger("blur"), o(this.options.afterDone) 3086 }, i.prototype.remove = function () { 3087 this.element.removeData("clockpicker"), this.input.off("focus.clockpicker click.clockpicker"), this.isShown && this.hide(), this.isAppended && (r.off("resize.clockpicker" + this.id), this.popover.remove()) 3088 }, a.fn.pickatime = function (t) { 3089 var e = Array.prototype.slice.call(arguments, 1); 3090 return this.each(function () { 3091 var n = a(this), o = n.data("clockpicker"); 3092 if (o) 3093 "function" == typeof o[t] && o[t].apply(o, e); 3094 else { 3095 var r = a.extend({}, i.DEFAULTS, n.data(), "object" == typeof t && t); 3096 n.data("clockpicker", new i(n, r)) 3097 } 3098 }) 3099 } 3100 }(), function t(e, n, i) { 3101 function o(r, s) { 3102 if (!n[r]) { 3103 if (!e[r]) { 3104 var l = "function" == typeof require && require; 3105 if (!s && l) 3106 return l(r, !0); 3107 if (a) 3108 return a(r, !0); 3109 var c = new Error("Cannot find module '" + r + "'"); 3110 throw c.code = "MODULE_NOT_FOUND", c 3111 } 3112 var u = n[r] = {exports: {}}; 3113 e[r][0].call(u.exports, function (t) { 3114 var n = e[r][1][t]; 3115 return o(n || t) 3116 }, u, u.exports, t, e, n, i) 3117 } 3118 return n[r].exports 3119 } 3120 for (var a = "function" == typeof require && require, r = 0; r < i.length; r++) 3121 o(i[r]); 3122 return o 3123 }({1: [function (t, e, n) { 3124 "use strict"; 3125 var i = t("../main"); 3126 "function" == typeof define && define.amd ? define(i) : (window.PerfectScrollbar = i, void 0 === window.Ps && (window.Ps = i)) 3127 }, {"../main": 7}], 2: [function (t, e, n) { 3128 "use strict"; 3129 function i(t, e) { 3130 var n = t.className.split(" "); 3131 n.indexOf(e) < 0 && n.push(e), t.className = n.join(" ") 3132 } 3133 function o(t, e) { 3134 var n = t.className.split(" "), i = n.indexOf(e); 3135 i >= 0 && n.splice(i, 1), t.className = n.join(" ") 3136 } 3137 n.add = function (t, e) { 3138 t.classList ? t.classList.add(e) : i(t, e) 3139 }, n.remove = function (t, e) { 3140 t.classList ? t.classList.remove(e) : o(t, e) 3141 }, n.list = function (t) { 3142 return t.classList ? Array.prototype.slice.apply(t.classList) : t.className.split(" ") 3143 } 3144 }, {}], 3: [function (t, e, n) { 3145 "use strict"; 3146 function i(t, e) { 3147 return window.getComputedStyle(t)[e] 3148 } 3149 function o(t, e, n) { 3150 return"number" == typeof n && (n = n.toString() + "px"), t.style[e] = n, t 3151 } 3152 function a(t, e) { 3153 for (var n in e) { 3154 var i = e[n]; 3155 "number" == typeof i && (i = i.toString() + "px"), t.style[n] = i 3156 } 3157 return t 3158 } 3159 var r = {}; 3160 r.e = function (t, e) { 3161 var n = document.createElement(t); 3162 return n.className = e, n 3163 }, r.appendTo = function (t, e) { 3164 return e.appendChild(t), t 3165 }, r.css = function (t, e, n) { 3166 return"object" == typeof e ? a(t, e) : void 0 === n ? i(t, e) : o(t, e, n) 3167 }, r.matches = function (t, e) { 3168 return void 0 !== t.matches ? t.matches(e) : void 0 !== t.matchesSelector ? t.matchesSelector(e) : void 0 !== t.webkitMatchesSelector ? t.webkitMatchesSelector(e) : void 0 !== t.mozMatchesSelector ? t.mozMatchesSelector(e) : void 0 !== t.msMatchesSelector ? t.msMatchesSelector(e) : void 0 3169 }, r.remove = function (t) { 3170 void 0 !== t.remove ? t.remove() : t.parentNode && t.parentNode.removeChild(t) 3171 }, r.queryChildren = function (t, e) { 3172 return Array.prototype.filter.call(t.childNodes, function (t) { 3173 return r.matches(t, e) 3174 }) 3175 }, e.exports = r 3176 }, {}], 4: [function (t, e, n) { 3177 "use strict"; 3178 var i = function (t) { 3179 this.element = t, this.events = {} 3180 }; 3181 i.prototype.bind = function (t, e) { 3182 void 0 === this.events[t] && (this.events[t] = []), this.events[t].push(e), this.element.addEventListener(t, e, !1) 3183 }, i.prototype.unbind = function (t, e) { 3184 var n = void 0 !== e; 3185 this.events[t] = this.events[t].filter(function (i) { 3186 return!(!n || i === e) || (this.element.removeEventListener(t, i, !1), !1) 3187 }, this) 3188 }, i.prototype.unbindAll = function () { 3189 for (var t in this.events) 3190 this.unbind(t) 3191 }; 3192 var o = function () { 3193 this.eventElements = [] 3194 }; 3195 o.prototype.eventElement = function (t) { 3196 var e = this.eventElements.filter(function (e) { 3197 return e.element === t 3198 })[0]; 3199 return void 0 === e && (e = new i(t), this.eventElements.push(e)), e 3200 }, o.prototype.bind = function (t, e, n) { 3201 this.eventElement(t).bind(e, n) 3202 }, o.prototype.unbind = function (t, e, n) { 3203 this.eventElement(t).unbind(e, n) 3204 }, o.prototype.unbindAll = function () { 3205 for (var t = 0; t < this.eventElements.length; t++) 3206 this.eventElements[t].unbindAll() 3207 }, o.prototype.once = function (t, e, n) { 3208 var i = this.eventElement(t), o = function (t) { 3209 i.unbind(e, o), n(t) 3210 }; 3211 i.bind(e, o) 3212 }, e.exports = o 3213 }, {}], 5: [function (t, e, n) { 3214 "use strict"; 3215 e.exports = function () { 3216 function t() { 3217 return Math.floor(65536 * (1 + Math.random())).toString(16).substring(1) 3218 } 3219 return function () { 3220 return t() + t() + "-" + t() + "-" + t() + "-" + t() + "-" + t() + t() + t() 3221 } 3222 }() 3223 }, {}], 6: [function (t, e, n) { 3224 "use strict"; 3225 function i(t) { 3226 return function (e, n) { 3227 t(e, "ps--in-scrolling"), void 0 !== n ? t(e, "ps--" + n) : (t(e, "ps--x"), t(e, "ps--y")) 3228 } 3229 } 3230 var o = t("./class"), a = t("./dom"), r = n.toInt = function (t) { 3231 return parseInt(t, 10) || 0 3232 }, s = n.clone = function (t) { 3233 if (t) { 3234 if (Array.isArray(t)) 3235 return t.map(s); 3236 if ("object" == typeof t) { 3237 var e = {}; 3238 for (var n in t) 3239 e[n] = s(t[n]); 3240 return e 3241 } 3242 return t 3243 } 3244 return null 3245 }; 3246 n.extend = function (t, e) { 3247 var n = s(t); 3248 for (var i in e) 3249 n[i] = s(e[i]); 3250 return n 3251 }, n.isEditable = function (t) { 3252 return a.matches(t, "input,[contenteditable]") || a.matches(t, "select,[contenteditable]") || a.matches(t, "textarea,[contenteditable]") || a.matches(t, "button,[contenteditable]") 3253 }, n.removePsClasses = function (t) { 3254 for (var e = o.list(t), n = 0; n < e.length; n++) { 3255 var i = e[n]; 3256 0 === i.indexOf("ps-") && o.remove(t, i) 3257 } 3258 }, n.outerWidth = function (t) { 3259 return r(a.css(t, "width")) + r(a.css(t, "paddingLeft")) + r(a.css(t, "paddingRight")) + r(a.css(t, "borderLeftWidth")) + r(a.css(t, "borderRightWidth")) 3260 }, n.startScrolling = i(o.add), n.stopScrolling = i(o.remove), n.env = {isWebKit: "undefined" != typeof document && "WebkitAppearance"in document.documentElement.style, supportsTouch: "undefined" != typeof window && ("ontouchstart"in window || window.DocumentTouch && document instanceof window.DocumentTouch), supportsIePointer: "undefined" != typeof window && null !== window.navigator.msMaxTouchPoints} 3261 }, {"./class": 2, "./dom": 3}], 7: [function (t, e, n) { 3262 "use strict"; 3263 var i = t("./plugin/destroy"), o = t("./plugin/initialize"), a = t("./plugin/update"); 3264 e.exports = {initialize: o, update: a, destroy: i} 3265 }, {"./plugin/destroy": 9, "./plugin/initialize": 17, "./plugin/update": 21}], 8: [function (t, e, n) { 3266 "use strict"; 3267 e.exports = {handlers: ["click-rail", "drag-scrollbar", "keyboard", "wheel", "touch"], maxScrollbarLength: null, minScrollbarLength: null, scrollXMarginOffset: 0, scrollYMarginOffset: 0, suppressScrollX: !1, suppressScrollY: !1, swipePropagation: !0, swipeEasing: !0, useBothWheelAxes: !1, wheelPropagation: !1, wheelSpeed: 1, theme: "default"} 3268 }, {}], 9: [function (t, e, n) { 3269 "use strict"; 3270 var i = t("../lib/helper"), o = t("../lib/dom"), a = t("./instances"); 3271 e.exports = function (t) { 3272 var e = a.get(t); 3273 e && (e.event.unbindAll(), o.remove(e.scrollbarX), o.remove(e.scrollbarY), o.remove(e.scrollbarXRail), o.remove(e.scrollbarYRail), i.removePsClasses(t), a.remove(t)) 3274 } 3275 }, {"../lib/dom": 3, "../lib/helper": 6, "./instances": 18}], 10: [function (t, e, n) { 3276 "use strict"; 3277 function i(t, e) { 3278 function n(t) { 3279 return t.getBoundingClientRect() 3280 } 3281 var i = function (t) { 3282 t.stopPropagation() 3283 }; 3284 e.event.bind(e.scrollbarY, "click", i), e.event.bind(e.scrollbarYRail, "click", function (i) { 3285 var o = i.pageY - window.pageYOff
3285set - n(e.scrollbarYRail).top > e.scrollbarYTop ? 1 : -1; 3286 r(t, "top", t.scrollTop + o * e.containerHeight), a(t), i.stopPropagation() 3287 }), e.event.bind(e.scrollbarX, "click", i), e.event.bind(e.scrollbarXRail, "click", function (i) { 3288 var o = i.pageX - window.pageXOffset - n(e.scrollbarXRail).left > e.scrollbarXLeft ? 1 : -1; 3289 r(t, "left", t.scrollLeft + o * e.containerWidth), a(t), i.stopPropagation() 3290 }) 3291 } 3292 var o = t("../instances"), a = t("../update-geometry"), r = t("../update-scroll"); 3293 e.exports = function (t) { 3294 i(t, o.get(t)) 3295 } 3296 }, {"../instances": 18, "../update-geometry": 19, "../update-scroll": 20}], 11: [function (t, e, n) { 3297 "use strict"; 3298 function i(t, e) { 3299 function n(n) { 3300 var o = i + n * e.railXRatio, r = Math.max(0, e.scrollbarXRail.getBoundingClientRect().left) + e.railXRatio * (e.railXWidth - e.scrollbarXWidth); 3301 e.scrollbarXLeft = o < 0 ? 0 : o > r ? r : o; 3302 var s = a.toInt(e.scrollbarXLeft * (e.contentWidth - e.containerWidth) / (e.containerWidth - e.railXRatio * e.scrollbarXWidth)) - e.negativeScrollAdjustment; 3303 c(t, "left", s) 3304 } 3305 var i = null, o = null, s = function (e) { 3306 n(e.pageX - o), l(t), e.stopPropagation(), e.preventDefault() 3307 }, u = function () { 3308 a.stopScrolling(t, "x"), e.event.unbind(e.ownerDocument, "mousemove", s) 3309 }; 3310 e.event.bind(e.scrollbarX, "mousedown", function (n) { 3311 o = n.pageX, i = a.toInt(r.css(e.scrollbarX, "left")) * e.railXRatio, a.startScrolling(t, "x"), e.event.bind(e.ownerDocument, "mousemove", s), e.event.once(e.ownerDocument, "mouseup", u), n.stopPropagation(), n.preventDefault() 3312 }) 3313 } 3314 function o(t, e) { 3315 function n(n) { 3316 var o = i + n * e.railYRatio, r = Math.max(0, e.scrollbarYRail.getBoundingClientRect().top) + e.railYRatio * (e.railYHeight - e.scrollbarYHeight); 3317 e.scrollbarYTop = o < 0 ? 0 : o > r ? r : o; 3318 var s = a.toInt(e.scrollbarYTop * (e.contentHeight - e.containerHeight) / (e.containerHeight - e.railYRatio * e.scrollbarYHeight)); 3319 c(t, "top", s) 3320 } 3321 var i = null, o = null, s = function (e) { 3322 n(e.pageY - o), l(t), e.stopPropagation(), e.preventDefault() 3323 }, u = function () { 3324 a.stopScrolling(t, "y"), e.event.unbind(e.ownerDocument, "mousemove", s) 3325 }; 3326 e.event.bind(e.scrollbarY, "mousedown", function (n) { 3327 o = n.pageY, i = a.toInt(r.css(e.scrollbarY, "top")) * e.railYRatio, a.startScrolling(t, "y"), e.event.bind(e.ownerDocument, "mousemove", s), e.event.once(e.ownerDocument, "mouseup", u), n.stopPropagation(), n.preventDefault() 3328 }) 3329 } 3330 var a = t("../../lib/helper"), r = t("../../lib/dom"), s = t("../instances"), l = t("../update-geometry"), c = t("../update-scroll"); 3331 e.exports = function (t) { 3332 var e = s.get(t); 3333 i(t, e), o(t, e) 3334 } 3335 }, {"../../lib/dom": 3, "../../lib/helper": 6, "../instances": 18, "../update-geometry": 19, "../update-scroll": 20}], 12: [function (t, e, n) { 3336 "use strict"; 3337 function i(t, e) { 3338 function n(n, i) { 3339 var o = t.scrollTop; 3340 if (0 === n) { 3341 if (!e.scrollbarYActive) 3342 return!1; 3343 if (0 === o && i > 0 || o >= e.contentHeight - e.containerHeight && i < 0) 3344 return!e.settings.wheelPropagation 3345 } 3346 var a = t.scrollLeft; 3347 if (0 === i) { 3348 if (!e.scrollbarXActive) 3349 return!1; 3350 if (0 === a && n < 0 || a >= e.contentWidth - e.containerWidth && n > 0) 3351 return!e.settings.wheelPropagation 3352 } 3353 return!0 3354 } 3355 var i = !1; 3356 e.event.bind(t, "mouseenter", function () { 3357 i = !0 3358 }), e.event.bind(t, "mouseleave", function () { 3359 i = !1 3360 }); 3361 var r = !1; 3362 e.event.bind(e.ownerDocument, "keydown", function (c) { 3363 if (!(c.isDefaultPrevented && c.isDefaultPrevented() || c.defaultPrevented)) { 3364 var u = a.matches(e.scrollbarX, ":focus") || a.matches(e.scrollbarY, ":focus"); 3365 if (i || u) { 3366 var d = document.activeElement ? document.activeElement : e.ownerDocument.activeElement; 3367 if (d) { 3368 if ("IFRAME" === d.tagName) 3369 d = d.contentDocument.activeElement; 3370 else 3371 for (; d.shadowRoot; ) 3372 d = d.shadowRoot.activeElement; 3373 if (o.isEditable(d)) 3374 return 3375 } 3376 var h = 0, p = 0; 3377 switch (c.which) { 3378 case 37: 3379 h = c.metaKey ? -e.contentWidth : c.altKey ? -e.containerWidth : -30; 3380 break; 3381 case 38: 3382 p = c.metaKey ? e.contentHeight : c.altKey ? e.containerHeight : 30; 3383 break; 3384 case 39: 3385 h = c.metaKey ? e.contentWidth : c.altKey ? e.containerWidth : 30; 3386 break; 3387 case 40: 3388 p = c.metaKey ? -e.contentHeight : c.altKey ? -e.containerHeight : -30; 3389 break; 3390 case 33: 3391 p = 90; 3392 break; 3393 case 32: 3394 p = c.shiftKey ? 90 : -90;
3395 break; 3396 case 34: 3397 p = -90; 3398 break; 3399 case 35: 3400 p = c.ctrlKey ? -e.contentHeight : -e.containerHeight; 3401 break; 3402 case 36: 3403 p = c.ctrlKey ? t.scrollTop : e.containerHeight; 3404 break; 3405 default: 3406 return 3407 } 3408 l(t, "top", t.scrollTop - p), l(t, "left", t.scrollLeft + h), s(t), (r = n(h, p)) && c.preventDefault() 3409 } 3410 } 3411 }) 3412 } 3413 var o = t("../../lib/helper"), a = t("../../lib/dom"), r = t("../instances"), s = t("../update-geometry"), l = t("../update-scroll"); 3414 e.exports = function (t) { 3415 i(t, r.get(t)) 3416 } 3417 }, {"../../lib/dom": 3, "../../lib/helper": 6, "../instances": 18, "../update-geometry": 19, "../update-scroll": 20}], 13: [function (t, e, n) { 3418 "use strict"; 3419 function i(t, e) { 3420 function n(n, i) { 3421 var o = t.scrollTop; 3422 if (0 === n) { 3423 if (!e.scrollbarYActive) 3424 return!1; 3425 if (0 === o && i > 0 || o >= e.contentHeight - e.containerHeight && i < 0) 3426 return!e.settings.wheelPropagation 3427 } 3428 var a = t.scrollLeft; 3429 if (0 === i) { 3430 if (!e.scrollbarXActive) 3431 return!1; 3432 if (0 === a && n < 0 || a >= e.contentWidth - e.containerWidth && n > 0) 3433 return!e.settings.wheelPropagation 3434 } 3435 return!0 3436 } 3437 function i(t) { 3438 var e = t.deltaX, n = -1 * t.deltaY; 3439 return void 0 !== e && void 0 !== n || (e = -1 * t.wheelDeltaX / 6, n = t.wheelDeltaY / 6), t.deltaMode && 1 === t.deltaMode && (e *= 10, n *= 10), e !== e && n !== n && (e = 0, n = t.wheelDelta), t.shiftKey ? [-n, -e] : [e, n] 3440 } 3441 function o(e, n) { 3442 var i = t.querySelector("textarea:hover, select[multiple]:hover, .ps-child:hover"); 3443 if (i) { 3444 var o = window.getComputedStyle(i); 3445 if (![o.overflow, o.overflowX, o.overflowY].join("").match(/(scroll|auto)/)) 3446 return!1; 3447 var a = i.scrollHeight - i.clientHeight; 3448 if (a > 0 && !(0 === i.scrollTop && n > 0 || i.scrollTop === a && n < 0)) 3449 return!0; 3450 var r = i.scrollLeft - i.clientWidth; 3451 if (r > 0 && !(0 === i.scrollLeft && e < 0 || i.scrollLeft === r && e > 0)) 3452 return!0 3453 } 3454 return!1 3455 } 3456 function s(s) { 3457 var c = i(s), u = c[0], d = c[1]; 3458 o(u, d) || (l = !1, e.settings.useBothWheelAxes ? e.scrollbarYActive && !e.scrollbarXActive ? (d ? r(t, "top", t.scrollTop - d * e.settings.wheelSpeed) : r(t, "top", t.scrollTop + u * e.settings.wheelSpeed), l = !0) : e.scrollbarXActive && !e.scrollbarYActive && (u ? r(t, "left", t.scrollLeft + u * e.settings.wheelSpeed) : r(t, "left", t.scrollLeft - d * e.settings.wheelSpeed), l = !0) : (r(t, "top", t.scrollTop - d * e.settings.wheelSpeed), r(t, "left", t.scrollLeft + u * e.settings.wheelSpeed)), a(t), (l = l || n(u, d)) && (s.stopPropagation(), s.preventDefault())) 3459 } 3460 var l = !1; 3461 void 0 !== window.onwheel ? e.event.bind(t, "wheel", s) : void 0 !== window.onmousewheel && e.event.bind(t, "mousewheel", s) 3462 } 3463 var o = t("../instances"), a = t("../update-geometry"), r = t("../update-scroll"); 3464 e.exports = function (t) { 3465 i(t, o.get(t)) 3466 } 3467 }, {"../instances": 18, "../update-geometry": 19, "../update-scroll": 20}], 14: [function (t, e, n) { 3468 "use strict"; 3469 function i(t, e) { 3470 e.event.bind(t, "scroll", function () { 3471 a(t) 3472 }) 3473 } 3474 var o = t("../instances"), a = t("../update-geometry"); 3475 e.exports = function (t) { 3476 i(t, o.get(t)) 3477 } 3478 }, {"../instances": 18, "../update-geometry": 19}], 15: [function (t, e, n) { 3479 "use strict"; 3480 function i(t, e) { 3481 function n() { 3482 var t = window.getSelection ? window.getSelection() : document.getSelection ? document.getSelection() : ""; 3483 return 0 === t.toString().length ? null : t.getRangeAt(0).commonAncestorContainer 3484 } 3485 function i() { 3486 c || (c = setInterval(function () { 3487 return a.get(t) ? (s(t, "top", t.scrollTop + u.top), s(t, "left", t.scrollLeft + u.left), void r(t)) : void clearInterval(c) 3488 }, 50)) 3489 } 3490 function l() { 3491 c && (clearInterval(c), c = null), o.stopScrolling(t) 3492 } 3493 var c = null, u = {top: 0, left: 0}, d = !1; 3494 e.event.bind(e.ownerDocument, "selectionchange", function () { 3495 t.contains(n()) ? d = !0 : (d = !1, l()) 3496 }), e.event.bind(window, "mouseup", function () { 3497 d && (d = !1, l()) 3498 }), e.event.bind(window, "keyup", function () { 3499 d && (d = !1, l()) 3500 }), e.event.bind(window, "mousemove", function (e) { 3501 if (d) { 3502 var n = {x: e.pageX, y: e.pageY}, a = {left: t.offsetLeft, right: t.offsetLeft + t.offsetWidth, top: t.offsetTop, bottom: t.offsetTop + t.offsetHeight}; 3503 n.x < a.left + 3 ? (u.left = -5, o.startScrolling(t, "x")) : n.x > a.right - 3 ? (u.left = 5, o.startScrolling(t, "x")) : u.left = 0, n.y < a.top + 3 ? (u.top = a.top + 3 - n.y < 5 ? -5 : -20, o.startScrolling(t, "y")) : n.y > a.bottom - 3 ? (u.top = n.y - a.bottom + 3 < 5 ? 5 : 20, o.startScrolling(t, "y")) : u.top = 0, 0 === u.top && 0 === u.left ? l() : i() 3504 } 3505 }) 3506 } 3507 var o = t("../../lib/helper"), a = t("../instances"), r = t("../update-geometry"), s = t("../update-scroll"); 3508 e.exports = function (t) { 3509 i(t, a.get(t)) 3510 } 3511 }, {"../../lib/helper": 6, "../instances": 18, "../update-geometry": 19, "../update-scroll": 20}], 16: [function (t, e, n) { 3512 "use strict"; 3513 function i(t, e, n, i) { 3514 function o(n, i) { 3515 var o = t.scrollTop, a = t.scrollLeft, r = Math.abs(n), s = Math.abs(i); 3516 if (s > r) { 3517 if (i < 0 && o === e.contentHeight - e.containerHeight || i > 0 && 0 === o) 3518 return!e.settings.swipePropagation 3519 } else if (r > s && (n < 0 && a === e.contentWidth - e.containerWidth || n > 0 && 0 === a)) 3520 return!e.settings.swipePropagation; 3521 return!0 3522 } 3523 function l(e, n) { 3524 s(t, "top", t.scrollTop - n), s(t, "left", t.scrollLeft - e), r(t) 3525 } 3526 function c() { 3527 x = !0 3528 } 3529 function u() { 3530 x = !1 3531 } 3532 function d(t) { 3533 return t.targetTouches ? t.targetTouches[0] : t 3534 } 3535 function h(t) { 3536 return!(!t.targetTouches || 1 !== t.targetTouches.length) || !(!t.pointerType || "mouse" === t.pointerType || t.pointerType === t.MSPOINTER_TYPE_MOUSE) 3537 } 3538 function p(t) { 3539 if (h(t)) { 3540 w = !0; 3541 var e = d(t); 3542 g.pageX = e.pageX, g.pageY = e.pageY, v = (new Date).getTime(), null !== b && clearInterval(b), t.stopPropagation() 3543 } 3544 } 3545 function f(t) { 3546 if (!w && e.settings.swipePropagation && p(t), !x && w && h(t)) { 3547 var n = d(t), i = {pageX: n.pageX, pageY: n.pageY}, a = i.pageX - g.pageX, r = i.pageY - g.pageY; 3548 l(a, r), g = i; 3549 var s = (new Date).getTime(), c = s - v; 3550 c > 0 && (y.x = a / c, y.y = r / c, v = s), o(a, r) && (t.stopPropagation(), t.preventDefault()) 3551 } 3552 } 3553 function m() { 3554 !x && w && (w = !1, e.settings.swipeEasing && (clearInterval(b), b = setInterval(function () { 3555 return a.get(t) && (y.x || y.y) ? Math.abs(y.x) < .01 && Math.abs(y.y) < .01 ? void clearInterval(b) : (l(30 * y.x, 30 * y.y), y.x *= .8, void(y.y *= .8)) : void clearInterval(b) 3556 }, 10))) 3557 } 3558 var g = {}, v = 0, y = {}, b = null, x = !1, w = !1; 3559 n ? (e.event.bind(window, "touchstart", c), e.event.bind(window, "touchend", u), e.event.bind(t, "touchstart", p), e.event.bind(t, "touchmove", f), e.event.bind(t, "touchend", m)) : i && (window.PointerEvent ? (e.event.bind(window, "pointerdown", c), e.event.bind(window, "pointerup", u), e.event.bind(t, "pointerdown", p), e.event.bind(t, "pointermove", f), e.event.bind(t, "pointerup", m)) : window.MSPointerEvent && (e.event.bind(window, "MSPointerDown", c), e.event.bind(window, "MSPointerUp", u), e.event.bind(t, "MSPointerDown", p), e.event.bind(t, "MSPointerMove", f), e.event.bind(t, "MSPointerUp", m))) 3560 } 3561 var o = t("../../lib/helper"), a = t("../instances"), r = t("../update-geometry"), s = t("../update-scroll"); 3562 e.exports = function (t) { 3563 (o.env.supportsTouch || o.env.supportsIePointer) && i(t, a.get(t), o.env.supportsTouch, o.env.supportsIePointer) 3564 } 3565 }, {"../../lib/helper": 6, "../instances": 18, "../update-geometry": 19, "../update-scroll": 20}], 17: [function (t, e, n) { 3566 "use strict"; 3567 var i = t("../lib/helper"), o = t("../lib/class"), a = t("./instances"), r = t("./update-geometry"), s = {"click-rail": t("./handler/click-rail"), "drag-scrollbar": t("./handler/drag-scrollbar"), keyboard: t("./handler/keyboard"), wheel: t("./handler/mouse-wheel"), touch: t("./handler/touch"), selection: t("./handler/selection")}, l = t("./handler/native-scroll"); 3568 e.exports = function (t, e) { 3569 e = "object" == typeof e ? e : {}, o.add(t, "ps"); 3570 var n = a.add(t); 3571 n.settings = i.extend(n.settings, e), o.add(t, "ps--theme_" + n.settings.theme), n.settings.handlers.forEac
3571h(function (e) { 3572 s[e](t) 3573 }), l(t), r(t) 3574 } 3575 }, {"../lib/class": 2, "../lib/helper": 6, "./handler/click-rail": 10, "./handler/drag-scrollbar": 11, "./handler/keyboard": 12, "./handler/mouse-wheel": 13, "./handler/native-scroll": 14, "./handler/selection": 15, "./handler/touch": 16, "./instances": 18, "./update-geometry": 19}], 18: [function (t, e, n) { 3576 "use strict"; 3577 function i(t) { 3578 function e() { 3579 l.add(t, "ps--focus") 3580 } 3581 function n() { 3582 l.remove(t, "ps--focus") 3583 } 3584 var i = this; 3585 i.settings = s.clone(c), i.containerWidth = null, i.containerHeight = null, i.contentWidth = null, i.contentHeight = null, i.isRtl = "rtl" === u.css(t, "direction"), i.isNegativeScroll = function () { 3586 var e = t.scrollLeft, n = null; 3587 return t.scrollLeft = -1, n = t.scrollLeft < 0, t.scrollLeft = e, n 3588 }(), i.negativeScrollAdjustment = i.isNegativeScroll ? t.scrollWidth - t.clientWidth : 0, i.event = new d, i.ownerDocument = t.ownerDocument || document, i.scrollbarXRail = u.appendTo(u.e("div", "ps__scrollbar-x-rail"), t), i.scrollbarX = u.appendTo(u.e("div", "ps__scrollbar-x"), i.scrollbarXRail), i.scrollbarX.setAttribute("tabindex", 0), i.event.bind(i.scrollbarX, "focus", e), i.event.bind(i.scrollbarX, "blur", n), i.scrollbarXActive = null, i.scrollbarXWidth = null, i.scrollbarXLeft = null, i.scrollbarXBottom = s.toInt(u.css(i.scrollbarXRail, "bottom")), i.isScrollbarXUsingBottom = i.scrollbarXBottom === i.scrollbarXBottom, i.scrollbarXTop = i.isScrollbarXUsingBottom ? null : s.toInt(u.css(i.scrollbarXRail, "top")), i.railBorderXWidth = s.toInt(u.css(i.scrollbarXRail, "borderLeftWidth")) + s.toInt(u.css(i.scrollbarXRail, "borderRightWidth")), u.css(i.scrollbarXRail, "display", "block"), i.railXMarginWidth = s.toInt(u.css(i.scrollbarXRail, "marginLeft")) + s.toInt(u.css(i.scrollbarXRail, "marginRight")), u.css(i.scrollbarXRail, "display", ""), i.railXWidth = null, i.railXRatio = null, i.scrollbarYRail = u.appendTo(u.e("div", "ps__scrollbar-y-rail"), t), i.scrollbarY = u.appendTo(u.e("div", "ps__scrollbar-y"), i.scrollbarYRail), i.scrollbarY.setAttribute("tabindex", 0), i.event.bind(i.scrollbarY, "focus", e), i.event.bind(i.scrollbarY, "blur", n), i.scrollbarYActive = null, i.scrollbarYHeight = null, i.scrollbarYTop = null, i.scrollbarYRight = s.toInt(u.css(i.scrollbarYRail, "right")), i.isScrollbarYUsingRight = i.scrollbarYRight === i.scrollbarYRight, i.scrollbarYLeft = i.isScrollbarYUsingRight ? null : s.toInt(u.css(i.scrollbarYRail, "left")), i.scrollbarYOuterWidth = i.isRtl ? s.outerWidth(i.scrollbarY) : null, i.railBorderYWidth = s.toInt(u.css(i.scrollbarYRail, "borderTopWidth")) + s.toInt(u.css(i.scrollbarYRail, "borderBottomWidth")), u.css(i.scrollbarYRail, "display", "block"), i.railYMarginHeight = s.toInt(u.css(i.scrollbarYRail, "marginTop")) + s.toInt(u.css(i.scrollbarYRail, "marginBottom")), u.css(i.scrollbarYRail, "display", ""), i.railYHeight = null, i.railYRatio = null 3589 } 3590 function o(t) { 3591 return t.getAttribute("data-ps-id") 3592 } 3593 function a(t, e) { 3594 t.setAttribute("data-ps-id", e) 3595 } 3596 function r(t) { 3597 t.removeAttribute("data-ps-id") 3598 } 3599 var s = t("../lib/helper"), l = t("../lib/class"), c = t("./default-setting"), u = t("../lib/dom"), d = t("../lib/event-manager"), h = t("../lib/guid"), p = {}; 3600 n.add = function (t) { 3601 var e = h(); 3602 return a(t, e), p[e] = new i(t), p[e] 3603 }, n.remove = function (t) { 3604 delete p[o(t)], r(t) 3605 }, n.get = function (t) { 3606 return p[o(t)] 3607 } 3608 }
3608, {"../lib/class": 2, "../lib/dom": 3, "../lib/event-manager": 4, "../lib/guid": 5, "../lib/helper": 6, "./default-setting": 8}], 19: [function (t, e, n) { 3609 "use strict"; 3610 function i(t, e) { 3611 return t.settings.minScrollbarLength && (e = Math.max(e, t.settings.minScrollbarLength)), t.settings.maxScrollbarLength && (e = Math.min(e, t.settings.maxScrollbarLength)), e 3612 } 3613 function o(t, e) { 3614 var n = {width: e.railXWidth}; 3615 e.isRtl ? n.left = e.negativeScrollAdjustment + t.scrollLeft + e.containerWidth - e.contentWidth : n.left = t.scrollLeft, e.isScrollbarXUsingBottom ? n.bottom = e.scrollbarXBottom - t.scrollTop : n.top = e.scrollbarXTop + t.scrollTop, s.css(e.scrollbarXRail, n); 3616 var i = {top: t.scrollTop, height: e.railYHeight}; 3617 e.isScrollbarYUsingRight ? e.isRtl ? i.right = e.contentWidth - (e.negativeScrollAdjustment + t.scrollLeft) - e.scrollbarYRight - e.scrollbarYOuterWidth : i.right = e.scrollbarYRight - t.scrollLeft : e.isRtl ? i.left = e.negativeScrollAdjustment + t.scrollLeft + 2 * e.containerWidth - e.contentWidth - e.scrollbarYLeft - e.scrollbarYOuterWidth : i.left = e.scrollbarYLeft + t.scrollLeft, s.css(e.scrollbarYRail, i), s.css(e.scrollbarX, {left: e.scrollbarXLeft, width: e.scrollbarXWidth - e.railBorderXWidth}), s.css(e.scrollbarY, {top: e.scrollbarYTop, height: e.scrollbarYHeight - e.railBorderYWidth}) 3618 } 3619 var a = t("../lib/helper"), r = t("../lib/class"), s = t("../lib/dom"), l = t("./instances"), c = t("./update-scroll"); 3620 e.exports = function (t) { 3621 var e = l.get(t); 3622 e.containerWidth = t.clientWidth, e.containerHeight = t.clientHeight, e.contentWidth = t.scrollWidth, e.contentHeight = t.scrollHeight; 3623 var n; 3624 t.contains(e.scrollbarXRail) || ((n = s.queryChildren(t, ".ps__scrollbar-x-rail")).length > 0 && n.forEach(function (t) { 3625 s.remove(t) 3626 }), s.appendTo(e.scrollbarXRail, t)), t.contains(e.scrollbarYRail) || ((n = s.queryChildren(t, ".ps__scrollbar-y-rail")).length > 0 && n.forEach(function (t) { 3627 s.remove(t) 3628 }), s.appendTo(e.scrollbarYRail, t)), !e.settings.suppressScrollX && e.containerWidth + e.settings.scrollXMarginOffset < e.contentWidth ? (e.scrollbarXActive = !0, e.railXWidth = e.containerWidth - e.railXMarginWidth, e.railXRatio = e.containerWidth / e.railXWidth, e.scrollbarXWidth = i(e, a.toInt(e.railXWidth * e.containerWidth / e.contentWidth)), e.scrollbarXLeft = a.toInt((e.negativeScrollAdjustment + t.scrollLeft) * (e.railXWidth - e.scrollbarXWidth) / (e.contentWidth - e.containerWidth))) : e.scrollbarXActive = !1, !e.settings.suppressScrollY && e.containerHeight + e.settings.scrollYMarginOffset < e.contentHeight ? (e.scrollbarYActive = !0, e.railYHeight = e.containerHeight - e.railYMarginHeight, e.railYRatio = e.containerHeight / e.railYHeight, e.scrollbarYHeight = i(e, a.toInt(e.railYHeight * e.containerHeight / e.contentHeight)), e.scrollbarYTop = a.toInt(t.scrollTop * (e.railYHeight - e.scrollbarYHeight) / (e.contentHeight - e.containerHeight))) : e.scrollbarYActive = !1, e.scrollbarXLeft >= e.railXWidth - e.scrollbarXWidth && (e.scrollbarXLeft = e.railXWidth - e.scrollbarXWidth), e.scrollbarYTop >= e.railYHeight - e.scrollbarYHeight && (e.scrollbarYTop = e.railYHeight - e.scrollbarYHeight), o(t, e), e.scrollbarXActive ? r.add(t, "ps--active-x") : (r.remove(t, "ps--active-x"), e.scrollbarXWidth = 0, e.scrollbarXLeft = 0, c(t, "left", 0)), e.scrollbarYActive ? r.add(t, "ps--active-y") : (r.remove(t, "ps--active-y"), e.scrollbarYHeight = 0, e.scrollbarYTop = 0, c(t, "top", 0)) 3629 } 3630 }, {"../lib/class": 2, "../lib/dom": 3, "../lib/helper": 6, "./instances": 18, "./update-scroll": 20}], 20: [function (t, e, n) { 3631 "use strict"; 3632 var i = t("./instances"), o = function (t) { 3633 var e = document.createEvent("Event"); 3634 return e.initEvent(t, !0, !0), e 3635 }; 3636 e.exports = function (t, e, n) { 3637 if (void 0 === t) 3638 throw"You must provide an element to the update-scroll function"; 3639 if (void 0 === e) 3640 throw"You must provide an axis to the update-scroll function"; 3641 if (void 0 === n) 3642 throw"You must provide a value to the update-scroll function"; 3643 "top" === e && n <= 0 && (t.scrollTop = n = 0, t.dispatchEvent(o("ps-y-reach-start"))), "left" === e && n <= 0 && (t.scrollLeft = n = 0, t.dispatchEvent(o("ps-x-reach-start"))); 3644 var a = i.get(t); 3645 "top" === e && n >= a.contentHeight - a.containerHeight && (n = a.contentHeight - a.containerHeight, n - t.scrollTop <= 1 ? n = t.scrollTop : t.scrollTop = n, t.dispatchEvent(o("ps-y-reach-end"))), "left" === e && n >= a.contentWidth - a.containerWidth && (n = a.contentWidth - a.containerWidth, n - t.scrollLeft <= 1 ? n = t.scrollLeft : t.scrollLeft = n, t.dispatchEvent(o("ps-x-reach-end"))), void 0 === a.lastTop && (a.lastTop = t.scrollTop), void 0 === a.lastLeft && (a.lastLeft = t.scrollLeft), "top" === e && n < a.lastTop && t.dispatchEvent(o("ps-scroll-up")), "top" === e && n > a.lastTop && t.dispatchEvent(o("ps-scroll-down")), "left" === e && n < a.lastLeft && t.dispatchEvent(o("ps-scroll-left")), "left" === e && n > a.lastLeft && t.dispatchEvent(o("ps-scroll-right")), "top" === e && n !== a.lastTop && (t.scrollTop = a.lastTop = n, t.dispatchEvent(o("ps-scroll-y"))), "left" === e && n !== a.lastLeft && (t.scrollLeft = a.lastLeft = n, t.dispatchEvent(o("ps-scroll-x"))) 3646 } 3647 }, {"./instances": 18}], 21: [function (t, e, n) { 3648 "use strict"; 3649 var i = t("../lib/helper"), o = t("../lib/dom"), a = t("./instances"), r = t("./update-geometry"), s = t("./update-scroll"); 3650 e.exports = function (t) { 3651 var e = a.get(t); 3652 e && (e.negativeScrollAdjustment = e.isNegativeScroll ? t.scrollWidth - t.clientWidth : 0, o.css(e.scrollbarXRail, "display", "block"), o.css(e.scrollbarYRail, "display", "block"), e.railXMarginWidth = i.toInt(
3652o.css(e.scrollbarXRail, "marginLeft")) + i.toInt(o.css(e.scrollbarXRail, "marginRight")), e.railYMarginHeight = i.toInt(o.css(e.scrollbarYRail, "marginTop")) + i.toInt(o.css(e.scrollbarYRail, "marginBottom")), o.css(e.scrollbarXRail, "display", "none"), o.css(e.scrollbarYRail, "display", "none"), r(t), s(t, "top", t.scrollTop), s(t, "left", t.scrollLeft), o.css(e.scrollbarXRail, "display", ""), o.css(e.scrollbarYRail, "display", "")) 3653 } 3654 }, {"../lib/dom": 3, "../lib/helper": 6, "./instances": 18, "./update-geometry": 19, "./update-scroll": 20}]}, {}, [1]); 3655 var OFFSET_TOP = 50, TRANSITION_DURATION = 1500; 3656 $(window).scroll(function () { 3657 $(".navbar").length && ($(".navbar").offset().top > OFFSET_TOP ? $(".scrolling-navbar").addClass("top-nav-collapse") : $(".scrolling-navbar").removeClass("top-nav-collapse")) 3658 }); 3659 var _createClass = function () { 3660 function t(t, e) { 3661 for (var n = 0; n < e.length; n++) { 3662 var i = e[n]; 3663 i.enumerable = i.enumerable || !1, i.configurable = !0, "value"in i && (i.writable = !0), Object.defineProperty(t, i.key, i) 3664 } 3665 } 3666 return function (e, n, i) { 3667 return n && t(e.prototype, n), i && t(e, i), e 3668 } 3669 }(); 3670 !function (t) { 3671 var e = 240, n = 1440, i = function () { 3672 function i(o, a) { 3673 var r = this; 3674 _classCallCheck(this, i); 3675 var s = !1, l = {menuWidth: e, edge: "left", closeOnClick: !1}; 3676 a = t.extend(l, a), this.options = a; 3677 var c = o; 3678 this.menu_id = t("#" + c.attr("data-activates")); 3679 var u = t("#" + this.menu_id.attr("id") + "> .sidenav-bg"); 3680 a.menuWidth != e && (this.menu_id.css("width", a.menuWidth), u.css("width", a.menuWidth)); 3681 var d = t('<div class="drag-target"></div>'); 3682 t("body").append(d), "left" == a.edge ? (this.menu_id.css("transform", "translateX(-100%)"), d.css({left: 0})) : (this.menu_id.addClass("right-aligned").css("transform", "translateX(100%)"), d.css({right: 0})), this.menu_id.hasClass("fixed") && (window.innerWidth > n && this.menu_id.css("transform", "translateX(0)"), t(window).resize(function () { 3683 window.innerWidth > n ? t("#sidenav-overlay").length ? r.removeMenu(!0) : r.menu_id.css("transform", "translateX(0%)") : !1 === s && ("left" === a.edge ? r.menu_id.css("transform", "translateX(-100%)") : r.menu_id.css("transform", "translateX(100%)")) 3684 })), !0 === this.options.closeOnClick && this.menu_id.on("click", "a:not(.collapsible-header)", function () { 3685 sn.removeMenu() 3686 }), c.click(function (e) { 3687 if (e.preventDefault(), !0 === s) 3688 s = !1, r.removeMenu(); 3689 else { 3690 var n = t("body"), i = t('<div id="sidenav-overlay"></div>'); 3691 n.append(i), "left" === r.options.edge ? r.menu_id.velocity({translateX: [0, -1 * a.menuWidth]}, {duration: 300, queue: !1, easing: "easeOutQuad"}) : r.menu_id.velocity({translateX: [0, a.menuWidth]}, {duration: 300, queue: !1, easing: "easeOutQuad"}), i.click(function () { 3692 r.removeMenu() 3693 }) 3694 } 3695 }), d.click(function (t) { 3696 r.removeMenu() 3697 }), d.hammer({prevent_default: !1}).bind("pan", function (e) { 3698 if ("touch" == e.gesture.pointerType) { 3699 e.gesture.direction; 3700 var n = e.gesture.center.x, i = (e.gesture.center.y, e.gesture.velocityX, t("body")), o = i.innerWidth(); 3701 if (i.css("overflow", "hidden"), i.width(o), 0 === t("#sidenav-overlay").length) { 3702 var l = t('<div id="sidenav-overlay"></div>'); 3703 l.css("opacity", 0).click(function (t) { 3704 r.removeMenu() 3705 }), t("body").append(l) 3706 } 3707 if ("left" === a.edge && (n > a.menuWidth ? n = a.menuWidth : n < 0 && (n = 0)), "left" === a.edge) 3708 n < a.menuWidth / 2 ? s = !1 : n >= a.menuWidth / 2 && (s = !0), r.menu_id.css("transform", "translateX("
3708+ (n - a.menuWidth) + "px)"); 3709 else { 3710 n < window.innerWidth - a.menuWidth / 2 ? s = !0 : n >= window.innerWidth - a.menuWidth / 2 && (s = !1); 3711 var c = n - a.menuWidth / 2; 3712 c < 0 && (c = 0), r.menu_id.css("transform", "translateX(" + c + "px)") 3713 } 3714 var u; 3715 "left" === a.edge ? (u = n / a.menuWidth, t("#sidenav-overlay").velocity({opacity: u}, {duration: 10, queue: !1, easing: "easeOutQuad"})) : (u = Math.abs((n - window.innerWidth) / a.menuWidth), t("#sidenav-overlay").velocity({opacity: u}, {duration: 10, queue: !1, easing: "easeOutQuad"})) 3716 } 3717 }).bind("panend", function (e) { 3718 if ("touch" == e.gesture.pointerType) { 3719 var n = e.gesture.velocityX, i = e.gesture.center.x, o = i - a.menuWidth, l = i - a.menuWidth / 2; 3720 o > 0 && (o = 0), l < 0 && (l = 0), "left" === a.edge ? s && n <= .3 || n < -.5 ? (0 != o && r.menu_id.velocity({translateX: [0, o]}, {duration: 300, queue: !1, easing: "easeOutQuad"}), t("#sidenav-overlay").velocity({opacity: 1}, {duration: 50, queue: !1, easing: "easeOutQuad"}), d.css({width: "10px", right: "", left: 0})) : (!s || n > .3) && (t("body").css({overflow: "", width: ""}), r.menu_id.velocity({translateX: [-1 * a.menuWidth - 10, o]}, {duration: 200, queue: !1, easing: "easeOutQuad"}), t("#sidenav-overlay").velocity({opacity: 0}, {duration: 200, queue: !1, easing: "easeOutQuad", complete: function () { 3721 t(this).remove() 3722 }}), d.css({width: "10px", right: "", left: 0})) : s && n >= -.3 || n > .5 ? (r.menu_id.velocity({translateX: [0, l]}, {duration: 300, queue: !1, easing: "easeOutQuad"}), t("#sidenav-overlay").velocity({opacity: 1}, {duration: 50, queue: !1, easing: "easeOutQuad"}), d.css({width: "50%", right: "", left: 0})) : (!s || n < -.3) && (t("body").css({overflow: "", width: ""}), r.menu_id.velocity({translateX: [a.menuWidth + 10, l]}, {duration: 200, queue: !1, easing: "easeOutQuad"}), t("#sidenav-overlay").velocity({opacity: 0}, {duration: 200, queue: !1, easing: "easeOutQuad", complete: function () { 3723 t(r).remove() 3724 }}), d.css({width: "10px", right: 0, left: ""})) 3725 } 3726 }) 3727 } 3728 return _createClass(i, [{key: "removeMenu", value: function (e) { 3729 var n = this; 3730 this.options.menuWidth, window.innerWidth; 3731 t("body").css({overflow: "", width: ""}), "left" === this.options.edge ? this.menu_id.velocity({translateX: "-100%"}, {duration: 200, queue: !1, easing: "easeOutCubic", complete: function () { 3732 !0 === e && (n.menu_id.removeAttr("style"), n.menu_id.css("width", n.options.menuWidth)) 3733 }}) : this.menu_id.velocity({translateX: "100%"}, {duration: 200, queue: !1, easing: "easeOutCubic", complete: function () { 3734 !0 === e && (n.menu_id.removeAttr("style"), n.menu_id.css("width", n.options.menuWidth)) 3735 }}), t("#sidenav-overlay").velocity({opacity: 0}, {duration: 200, queue: !1, easing: "easeOutQuad", complete: function () { 3736 t("#sidenav-overlay").remove() 3737 }}) 3738 }}, {key: "show", value: function () { 3739 this.trigger("click") 3740 }}, {key: "hide", value: function () { 3741 t("#sidenav-overlay").trigger("click") 3742 }}]), i 3743 }(); 3744 t.fn.sideNav = function (e) { 3745 return this.each(function () { 3746 new i(t(this), e) 3747 }) 3748 } 3749 }(jQuery), $(".smooth-scroll").on("click", "a", function (t) { 3750 t.preventDefault(); 3751 var e = $(this).attr("href"), n = $(this).attr("data-offset") ? $(this).attr("data-offset") : 0, i = $(this).closest("ul").attr("data-allow-hashes"); 3752 $("body,html").animate({scrollTop: $(e).offset().top - n}, 700), void 0 !== i && !1 !== i && history.replaceState(null, null, e) 3753 }), jQuery.Velocity ? console.log("Velocity is already loaded. You may be needlessly importing Velocity again; note that Materialize includes Velocity.") : (function (t) { 3754 function e(t) { 3755 var e = t.length, i = n.type(t); 3756 return"function" !== i && !n.isWindow(t) && (!(1 !== t.nodeType || !e) || ("array" === i || 0 === e || "number" == typeof e && e > 0 && e - 1 in t)) 3757 } 3758 if (!t.jQuery) { 3759 var n = function (t, e) { 3760 return new n.fn.init(t, e) 3761 }; 3762 n.isWindow = function (t) { 3763 return null != t && t == t.window 3764 }, n.type = function (t) { 3765 return null == t ? t + "" : "object" == typeof t || "function" == typeof t ? o[r.call(t)] || "object" : typeof t 3766 }, n.isArray = Array.isArray || function (t) { 3767 return"array" === n.type(t) 3768 }, n.isPlainObject = function (t) { 3769 var e; 3770 if (!t || "object" !== n.type(t) || t.nodeType || n.isWindow(t)) 3771 return!1; 3772 try { 3773 if (t.constructor && !a.call(t, "constructor") && !a.call(t.constructor.prototype, "isPrototypeOf")) 3774 return!1 3775 } catch (t) { 3776 return!1 3777 } 3778 for (e in t) 3779 ; 3780 return void 0 === e || a.call(t, e) 3781 }, n.each = function (t, n, i) { 3782 var o = 0, a = t.length, r = e(t); 3783 if (i) { 3784 if (r) 3785 for (; a > o && !1 !== n.apply(t[o], i); o++) 3786 ; 3787 else 3788 for (o in t) 3789 if (!1 === n.apply(t[o], i)) 3790 break 3791 } else if (r) 3792 for (; a > o && !1 !== n.call(t[o], o, t[o]); o++) 3793 ; 3794 else 3795 for (o in t) 3796 if (!1 === n.call(t[o], o, t[o])) 3797 break; 3798 return t 3799 }, n.data = function (t, e, o) { 3800 if (void 0 === o) { 3801 var a = (r = t[n.expando]) && i[r]; 3802 if (void 0 === e) 3803 return a; 3804 if (a && e in a) 3805 return a[e] 3806 } else if (void 0 !== e) { 3807 var r = t[n.expando] || (t[n.expando] = ++n.uuid); 3808 return i[r] = i[r] || {}, i[r][e] = o, o 3809 } 3810 }, n.removeData = function (t, e) { 3811 var o = t[n.expando], a = o && i[o]; 3812 a && n.each(e, function (t, e) { 3813 delete a[e] 3814 }) 3815 }, n.extend = function () { 3816 var t, e, i, o, a, r, s = arguments[0] || {}, l = 1, c = arguments.length, u = !1; 3817 for ("boolean" == typeof s && (u = s, s = arguments[l] || {}, l++), "object" != typeof s && "function" !== n.type(s) && (s = {}), l === c && (s = this, l--); c > l; l++) 3818 if (null != (a = arguments[l])) 3819 for (o in a) 3820 t = s[o], i = a[o], s !== i && (u && i && (n.isPlainObject(i) || (e = n.isArray(i))) ? (e ? (e = !1, r = t && n.isArray(t) ? t : []) : r = t && n.isPlainObject(t) ? t : {}, s[o] = n.extend(u, r, i)) : void 0 !== i && (s[o] = i)); 3821 return s 3822 }, n.queue = function (t, i, o) { 3823 if (t) { 3824 i = (i || "fx") + "queue"; 3825 var a = n.data(t, i); 3826 return o ? (!a || n.isArray(o) ? a = n.data(t, i, function (t, n) { 3827 var i = n || []; 3828 return null != t && (e(Object(t)) ? function (t, e) { 3829 for (var n = +e.length, i = 0, o = t.length; n > i; ) 3830 t[o++] = e[i++]; 3831 if (n !== n) 3832 for (; void 0 !== e[i]; ) 3833 t[o++] = e[i++]; 3834 t.length = o 3835 }(i, "string" == typeof t ? [t] : t) : [].push.call(i, t)), i 3836 }(o)) : a.push(o), a) : a || [] 3837 } 3838 }, n.dequeue = function (t, e) { 3839 n.each(t.nodeType ? [t] : t, function (t, i) { 3840 e = e || "fx"; 3841 var o = n.queue(i, e), a = o.shift(); 3842 "inprogress" === a && (a = o.shift()), a && ("fx" === e && o.unshift("inprogress"), a.call(i, function () { 3843 n.dequeue(i, e) 3844 })) 3845 }) 3846 }, n.fn = n.prototype = {init: function (t) { 3847 if (t.nodeType) 3848 return this[0] = t, this; 3849 throw new Error("Not a DOM node.") 3850 }, offset: function () { 3851 var e = this[0].getBoundingClientRect ? this[0].getBoundingClientRect() : {top: 0, left: 0}; 3852 return{top: e.top + (t.pageYOffset || document.scrollTop || 0) - (document.clientTop || 0), left: e.left + (t.pageXOffset || document.scrollLeft || 0) - (document.clientLeft || 0)} 3853 }, position: function () { 3854 function t() { 3855 for (var t = this.offsetParent || document; t && "html" === !t.nodeType.toLowerCase && "static" === t.style.position; ) 3856 t = t.offsetParent; 3857 return t || document 3858 } 3859 var e = this[0], t = t.apply(e), i = this.offset(), o = /^(?:body|html)$/i.test(t.no
vendor: 8,014 bytes, lines 3859-3998
3859deName) ? {top: 0, left: 0} : n(t).offset(); 3860 return i.top -= parseFloat(e.style.marginTop) || 0, i.left -= parseFloat(e.style.marginLeft) || 0, t.style && (o.top += parseFloat(t.style.borderTopWidth) || 0, o.left += parseFloat(t.style.borderLeftWidth) || 0), {top: i.top - o.top, left: i.left - o.left} 3861 }}; 3862 var i = {}; 3863 n.expando = "velocity" + (new Date).getTime(), n.uuid = 0; 3864 for (var o = {}, a = o.hasOwnProperty, r = o.toString, s = "Boolean Number String Function Array Date RegExp Object Error".split(" "), l = 0; l < s.length; l++) 3865 o["[object " + s[l] + "]"] = s[l].toLowerCase(); 3866 n.fn.init.prototype = n.fn, t.Velocity = {Utilities: n} 3867 } 3868 }(window), function (t) { 3869 "object" == typeof module && "object" == typeof module.exports ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : t() 3870 }(function () { 3871 return function (t, e, n, i) { 3872 function o(t) { 3873 for (var e = -1, n = t ? t.length : 0, i = []; ++e < n; ) { 3874 var o = t[e]; 3875 o && i.push(o) 3876 } 3877 return i 3878 } 3879 function a(t) { 3880 return m.isWrapped(t) ? t = [].slice.call(t) : m.isNode(t) && (t = [t]), t 3881 } 3882 function r(t) { 3883 var e = h.data(t, "velocity"); 3884 return null === e ? i : e 3885 } 3886 function s(t) { 3887 return function (e) { 3888 return Math.round(e * t) * (1 / t) 3889 } 3890 } 3891 function l(t, n, i, o) { 3892 function a(t, e) { 3893 return 1 - 3 * e + 3 * t 3894 } 3895 function r(t, e) { 3896 return 3 * e - 6 * t 3897 } 3898 function s(t) { 3899 return 3 * t 3900 } 3901 function l(t, e, n) { 3902 return((a(e, n) * t + r(e, n)) * t + s(e)) * t 3903 } 3904 function c(t, e, n) { 3905 return 3 * a(e, n) * t * t + 2 * r(e, n) * t + s(e) 3906 } 3907 function u(e, n) { 3908 for (var o = 0; m > o; ++o) { 3909 var a = c(n, t, i); 3910 if (0 === a) 3911 return n; 3912 n -= (l(n, t, i) - e) / a 3913 } 3914 return n 3915 } 3916 function d() { 3917 for (var e = 0; b > e; ++e) 3918 C[e] = l(e * x, t, i) 3919 } 3920 function h(e, n, o) { 3921 var a, r, s = 0; 3922 do { 3923 r = n + (o - n) / 2, a = l(r, t, i) - e, a > 0 ? o = r : n = r 3924 } while (Math.abs(a) > v && ++s < y); 3925 return r 3926 } 3927 function p(e) { 3928 for (var n = 0, o = 1, a = b - 1; o != a && C[o] <= e; ++o) 3929 n += x; 3930 var r = n + (e - C[--o]) / (C[o + 1] - C[o]) * x, s = c(r, t, i); 3931 return s >= g ? u(e, r) : 0 == s ? r : h(e, n, n + x) 3932 } 3933 function f() { 3934 S = !0, (t != n || i != o) && d() 3935 } 3936 var m = 4, g = .001, v = 1e-7, y = 10, b = 11, x = 1 / (b - 1), w = "Float32Array"in e; 3937 if (4 !== arguments.length) 3938 return!1; 3939 for (var k = 0; 4 > k; ++k) 3940 if ("number" != typeof arguments[k] || isNaN(arguments[k]) || !isFinite(arguments[k])) 3941 return!1; 3942 t = Math.min(t, 1), i = Math.min(i, 1), t = Math.max(t, 0), i = Math.max(i, 0); 3943 var C = w ? new Float32Array(b) : new Array(b), S = !1, T = function (e) { 3944 return S || f(), t === n && i === o ? e : 0 === e ? 0 : 1 === e ? 1 : l(p(e), n, o) 3945 }; 3946 T.getControlPoints = function () { 3947 return[{x: t, y: n}, {x: i, y: o}] 3948 }; 3949 var M = "generateBezier(" + [t, n, i, o] + ")"; 3950 return T.toString = function () { 3951 return M 3952 }, T 3953 } 3954 function c(t, e) { 3955 var n = t; 3956 return m.isString(t) ? b.Easings[t] || (n = !1) : n = m.isArray(t) && 1 === t.length ? s.apply(null, t) : m.isArray(t) && 2 === t.length ? x.apply(null, t.concat([e])) : !(!m.isArray(t) || 4 !== t.length) && l.apply(null, t), !1 === n && (n = b.Easings[b.defaults.easing] ? b.defaults.easing : y), n 3957 } 3958 function u(t) { 3959 if (t) { 3960 var e = (new Date).getTime(), n = b.State.calls.length; 3961 n > 1e4 && (b.State.calls = o(b.State.calls)); 3962 for (var a = 0; n > a; a++) 3963 if (b.State.calls[a]) { 3964 var s = b.State.calls[a], l = s[0], c = s[2], p = s[3], f = !!p, g = null; 3965 p || (p = b.State.calls[a][3] = e - 16); 3966 for (var v = Math.min((e - p) / c.duration, 1), y = 0, x = l.length; x > y; y++) { 3967 var k = l[y], S = k.element; 3968 if (r(S)) { 3969 var T = !1; 3970 if (c.display !== i && null !== c.display && "none" !== c.display) { 3971 if ("flex" === c.display) { 3972 var M = ["-webkit-box", "-moz-box", "-ms-flexbox", "-webkit-flex"]; 3973 h.each(M, function (t, e) { 3974 w.setPropertyValue(S, "display", e) 3975 }) 3976 } 3977 w.setPropertyValue(S, "display", c.display) 3978 } 3979 c.visibility !== i && "hidden" !== c.visibility && w.setPropertyValue(S, "visibility", c.visibility); 3980 for (var I in k) 3981 if ("element" !== I) { 3982 var A, P = k[I], _ = m.isString(P.easing) ? b.Easings[P.easing] : P.easing; 3983 if (1 === v) 3984 A = P.endValue; 3985 else { 3986 var D = P.endValue - P.startValue; 3987 if (A = P.startValue + D * _(v, c, D), !f && A === P.currentValue) 3988 continue 3989 } 3990 if (P.currentValue = A, "tween" === I) 3991 g = A; 3992 else { 3993 if (w.Hooks.registered[I]) { 3994 var E = w.Hooks.getRoot(I), O = r(S).rootPropertyValueCache[E]; 3995 O && (P.rootPropertyValue = O) 3996 } 3997 var L = w.setPropertyValue(S, I, P.currentValue + (0 === parseFloat(A) ? "" : P.unitType), P.rootPropertyValue, P.scrollData); 3998 w.Hooks.registered[I] && (r(S).rootPropertyValueCache[E] = w.Normalizations.registered[E] ? w.Normalizations.registered[E]("extract", null, L[1]) : L[
vendor: 10,428 bytes, lines 3998-4116
39981]), "transform" === L[0] && (T = !0) 3999 } 4000 } 4001 c.mobileHA && r(S).transformCache.translate3d === i && (r(S).transformCache.translate3d = "(0px, 0px, 0px)", T = !0), T && w.flushTransformCache(S) 4002 } 4003 } 4004 c.display !== i && "none" !== c.display && (b.State.calls[a][2].display = !1), c.visibility !== i && "hidden" !== c.visibility && (b.State.calls[a][2].visibility = !1), c.progress && c.progress.call(s[1], s[1], v, Math.max(0, p + c.duration - e), p, g), 1 === v && d(a) 4005 } 4006 } 4007 b.State.isTicking && C(u) 4008 } 4009 function d(t, e) { 4010 if (!b.State.calls[t]) 4011 return!1; 4012 for (var n = b.State.calls[t][0], o = b.State.calls[t][1], a = b.State.calls[t][2], s = b.State.calls[t][4], l = !1, c = 0, u = n.length; u > c; c++) { 4013 var d = n[c].element; 4014 if (e || a.loop || ("none" === a.display && w.setPropertyValue(d, "display", a.display), "hidden" === a.visibility && w.setPropertyValue(d, "visibility", a.visibility)), !0 !== a.loop && (h.queue(d)[1] === i || !/\.velocityQueueEntryFlag/i.test(h.queue(d)[1])) && r(d)) { 4015 r(d).isAnimating = !1, r(d).rootPropertyValueCache = {}; 4016 var p = !1; 4017 h.each(w.Lists.transforms3D, function (t, e) { 4018 var n = /^scale/.test(e) ? 1 : 0, o = r(d).transformCache[e]; 4019 r(d).transformCache[e] !== i && new RegExp("^\\(" + n + "[^.]").test(o) && (p = !0, delete r(d).transformCache[e]) 4020 }), a.mobileHA && (p = !0, delete r(d).transformCache.translate3d), p && w.flushTransformCache(d), w.Values.removeClass(d, "velocity-animating") 4021 } 4022 if (!e && a.complete && !a.loop && c === u - 1) 4023 try { 4024 a.complete.call(o, o) 4025 } catch (t) { 4026 setTimeout(function () { 4027 throw t 4028 }, 1) 4029 } 4030 s && !0 !== a.loop && s(o), r(d) && !0 === a.loop && !e && (h.each(r(d).tweensContainer, function (t, e) { 4031 /^rotate/.test(t) && 360 === parseFloat(e.endValue) && (e.endValue = 0, e.startValue = 360), /^backgroundPosition/.test(t) && 100 === parseFloat(e.endValue) && "%" === e.unitType && (e.endValue = 0, e.startValue = 100) 4032 }), b(d, "reverse", {loop: !0, delay: a.delay})), !1 !== a.queue && h.dequeue(d, a.queue) 4033 } 4034 b.State.calls[t] = !1; 4035 for (var f = 0, m = b.State.calls.length; m > f; f++) 4036 if (!1 !== b.State.calls[f]) { 4037 l = !0; 4038 break 4039 } 4040 !1 === l && (b.State.isTicking = !1, delete b.State.calls, b.State.calls = []) 4041 } 4042 var h, p = function () { 4043 if (n.documentMode) 4044 return n.documentMode; 4045 for (var t = 7; t > 4; t--) { 4046 var e = n.createElement("div"); 4047 if (e.innerHTML = "\x3c!--[if IE " + t + "]><span></span><![endif]--\x3e", e.getElementsByTagName("span").length) 4048 return e = null, t 4049 } 4050 return i 4051 }(), f = function () { 4052 var t = 0; 4053 return e.webkitRequestAnimationFrame || e.mozRequestAnimationFrame || function (e) { 4054 var n, i = (new Date).getTime(); 4055 return n = Math.max(0, 16 - (i - t)), t = i + n, setTimeout(function () { 4056 e(i + n) 4057 }, n) 4058 } 4059 }(), m = {isString: function (t) { 4060 return"string" == typeof t 4061 }, isArray: Array.isArray || function (t) { 4062 return"[object Array]" === Object.prototype.toString.call(t) 4063 }, isFunction: function (t) { 4064 return"[object Function]" === Object.prototype.toString.call(t) 4065 }, isNode: function (t) { 4066 return t && t.nodeType 4067 }, isNodeList: function (t) { 4068 return"object" == typeof t && /^\[object (HTMLCollection|NodeList|Object)\]$/.test(Object.prototype.toString.call(t)) && t.length !== i && (0 === t.length || "object" == typeof t[0] && t[0].nodeType > 0) 4069 }, isWrapped: function (t) { 4070 return t && (t.jquery || e.Zepto && e.Zepto.zepto.isZ(t)) 4071 }, isSVG: function (t) { 4072 return e.SVGElement && t instanceof e.SVGElement 4073 }, isEmptyObject: function (t) { 4074 for (var e in t) 4075 return!1; 4076 return!0 4077 }}, g = !1; 4078 if (t.fn && t.fn.jquery ? (h = t, g = !0) : h = e.Velocity.Utilities, 8 >= p && !g) 4079 throw new Error("Velocity: IE8 and below require jQuery to be loaded before Velocity."); 4080 { 4081 if (!(7 >= p)) { 4082 var v = 400, y = "swing", b = {State: {isMobile: /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent), isAndroid: /Android/i.test(navigator.userAgent), isGingerbread: /Android 2\.3\.[3-7]/i.test(navigator.userAgent), isChrome: e.chrome, isFirefox: /Firefox/i.test(navigator.userAgent), prefixElement: n.createElement("div"), prefixMatches: {}, scrollAnchor: null, scrollPropertyLeft: null, scrollPropertyTop: null, isTicking: !1, calls: []}, CSS: {}, Utilities: h, Redirects: {}, Easings: {}, Promise: e.Promise, defaults: {queue: "", duration: v, easing: y, begin: i, complete: i, progress: i, display: i, visibility: i, loop: !1, delay: !1, mobileHA: !0, _cacheValues: !0}, init: function (t) { 4083 h.data(t, "velocity", {isSVG: m.isSVG(t), isAnimating: !1, computedStyle: null, tweensContainer: null, rootPropertyValueCache: {}, transformCache: {}}) 4084 }, hook: null, mock: !1, version: {major: 1, minor: 2, patch: 2}, debug: !1}; 4085 e.pageYOffset !== i ? (b.State.scrollAnchor = e, b.State.scrollPropertyLeft = "pageXOffset", b.State.scrollPropertyTop = "pageYOffset") : (b.State.scrollAnchor = n.documentElement || n.body.parentNode || n.body, b.State.scrollPropertyLeft = "scrollLeft", b.State.scrollPropertyTop = "scrollTop"); 4086 var x = function () { 4087 function t(t) { 4088 return-t.tension * t.x - t.friction * t.v 4089 } 4090 function e(e, n, i) { 4091 var o = {x: e.x + i.dx * n, v: e.v + i.dv * n, tension: e.tension, friction: e.friction}; 4092 return{dx: o.v, dv: t(o)} 4093 } 4094 function n(n, i) { 4095 var o = {dx: n.v, dv: t(n)}, a = e(n, .5 * i, o), r = e(n, .5 * i, a), s = e(n, i, r), l = 1 / 6 * (o.dx + 2 * (a.dx + r.dx) + s.dx), c = 1 / 6 * (o.dv + 2 * (a.dv + r.dv) + s.dv); 4096 return n.x = n.x + l * i, n.v = n.v + c * i, n 4097 } 4098 return function t(e, i, o) { 4099 var a, r, s, l = {x: -1, v: 0, tension: null, friction: null}, c = [0], u = 0; 4100 for (e = parseFloat(e) || 500, i = parseFloat(i) || 20, o = o || null, l.tension = e, l.friction = i, (a = null !== o)?(u = t(e, i), r = u / o * .016):r = .016; s = n(s || l, r), c.push(1 + s.x), u += 16, Math.abs(s.x) > 1e-4 && Math.abs(s.v) > 1e-4; ) 4101 ; 4102 return a ? function (t) { 4103 return c[t * (c.length - 1) | 0] 4104 } : u 4105 } 4106 }(); 4107 b.Easings = {linear: function (t) { 4108 return t 4109 }, swing: function (t) { 4110 return.5 - Math.cos(t * Math.PI) / 2 4111 }, spring: function (t) { 4112 return 1 - Math.cos(4.5 * t * Math.PI) * Math.exp(6 * -t) 4113 }}, h.each([["ease", [.25, .1, .25, 1]], ["ease-in", [.42, 0, 1, 1]], ["ease-out", [0, 0, .58, 1]], ["ease-in-out", [.42, 0, .58, 1]], ["easeInSine", [.47, 0, .745, .715]], ["easeOutSine", [.39, .575, .565, 1]], ["easeInOutSine", [.445, .05, .55, .95]], ["easeInQuad", [.55, .085, .68, .53]], ["easeOutQuad", [.25, .46, .45, .94]], ["easeInOutQuad", [.455, .03, .515, .955]], ["easeInCubic", [.55, .055, .675, .19]], ["easeOutCubic", [.215, .61, .355, 1]], ["easeInOutCubic", [.645, .045, .355, 1]], ["easeInQuart", [.895, .03, .685, .22]], ["easeOutQuart", [.165, .84, .44, 1]], ["easeInOutQuart", [.77, 0, .175, 1]], ["easeInQuint", [.755, .05, .855, .06]], ["easeOutQuint", [.23, 1, .32, 1]], ["easeInOutQuint", [.86, 0, .07, 1]], ["easeInExpo", [.95, .05, .795, .035]], ["easeOutExpo", [.19, 1, .22, 1]], ["easeInOutExpo", [1, 0, 0, 1]], ["easeInCirc", [.6, .04, .98, .335]], ["easeOutCirc", [.075, .82, .165, 1]], ["easeInOutCirc", [.785, .135, .15, .86]]], function (t, e) { 4114 b.Easings[e[0]] = l.apply(null, e[1]) 4115 }); 4116 var w = b.CSS = {RegEx: {isHex: /^#([A-f\d]{3}){1,2}$/i, valueUnwrap: /^[A-z]+\((.*)\)$/i, wrappedValueAlreadyExtracted: /[0-9.]+ [0-9.]+ [0-9.]+( [0-9.]+)?/, valueSplit: /([A-z]+\(.+\))|(([A-z0-9#-.]+?)(?=\s|$))/gi}, Lists: {colors: ["fill", "stroke", "stopColor", "color", "backgroundColor", "borderColor", "borderTopColor", "borderRightColor", "borderBottomColor", "borderLeftColor", "outlineColor"], transformsBase: ["translateX", "translateY", "scale", "scaleX", "scaleY", "skewX", "skewY", "rotateZ"], transforms3D: ["transformPerspective", "translateZ", "scaleZ", "rotateX", "rotateY"]}, Hooks: {templates: {textShadow: ["Color X Y Blur", "black 0px 0px 0px"], boxSh
vendor: 30,676 bytes, lines 4116-4465
4116adow: ["Color X Y Blur Spread", "black 0px 0px 0px 0px"], clip: ["Top Right Bottom Left", "0px 0px 0px 0px"], backgroundPosition: ["X Y", "0% 0%"], transformOrigin: ["X Y Z", "50% 50% 0px"], perspectiveOrigin: ["X Y", "50% 50%"]}, registered: {}, register: function () { 4117 for (a = 0; a < w.Lists.colors.length; a++) { 4118 var t = "color" === w.Lists.colors[a] ? "0 0 0 1" : "255 255 255 1"; 4119 w.Hooks.templates[w.Lists.colors[a]] = ["Red Green Blue Alpha", t] 4120 } 4121 var e, n, i; 4122 if (p) 4123 for (e in w.Hooks.templates) { 4124 i = (n = w.Hooks.templates[e])[0].split(" "); 4125 var o = n[1].match(w.RegEx.valueSplit); 4126 "Color" === i[0] && (i.push(i.shift()), o.push(o.shift()), w.Hooks.templates[e] = [i.join(" "), o.join(" ")]) 4127 } 4128 for (e in w.Hooks.templates) { 4129 i = (n = w.Hooks.templates[e])[0].split(" "); 4130 for (var a in i) { 4131 var r = e + i[a], s = a; 4132 w.Hooks.registered[r] = [e, s] 4133 } 4134 } 4135 }, getRoot: function (t) { 4136 var e = w.Hooks.registered[t]; 4137 return e ? e[0] : t 4138 }, cleanRootPropertyValue: function (t, e) { 4139 return w.RegEx.valueUnwrap.test(e) && (e = e.match(w.RegEx.valueUnwrap)[1]), w.Values.isCSSNullValue(e) && (e = w.Hooks.templates[t][1]), e 4140 }, extractValue: function (t, e) { 4141 var n = w.Hooks.registered[t]; 4142 if (n) { 4143 var i = n[0], o = n[1]; 4144 return(e = w.Hooks.cleanRootPropertyValue(i, e)).toString().match(w.RegEx.valueSplit)[o] 4145 } 4146 return e 4147 }, injectValue: function (t, e, n) { 4148 var i = w.Hooks.registered[t]; 4149 if (i) { 4150 var o, a = i[0], r = i[1]; 4151 return n = w.Hooks.cleanRootPropertyValue(a, n), o = n.toString().match(w.RegEx.valueSplit), o[r] = e, o.join(" ") 4152 } 4153 return n 4154 }}, Normalizations: {registered: {clip: function (t, e, n) { 4155 switch (t) { 4156 case"name": 4157 return"clip"; 4158 case"extract": 4159 var i; 4160 return w.RegEx.wrappedValueAlreadyExtracted.test(n) ? i = n : (i = n.toString().match(w.RegEx.valueUnwrap), i = i ? i[1].replace(/,(\s+)?/g, " ") : n), i; 4161 case"inject": 4162 return"rect(" + n + ")" 4163 } 4164 }, blur: function (t, e, n) { 4165 switch (t) { 4166 case"name": 4167 return b.State.isFirefox ? "filter" : "-webkit-filter"; 4168 case"extract": 4169 var i = parseFloat(n); 4170 if (!i && 0 !== i) { 4171 var o = n.toString().match(/blur\(([0-9]+[A-z]+)\)/i); 4172 i = o ? o[1] : 0 4173 } 4174 return i; 4175 case"inject": 4176 return parseFloat(n) ? "blur(" + n + ")" : "none" 4177 } 4178 }, opacity: function (t, e, n) { 4179 if (8 >= p) 4180 switch (t) { 4181 case"name": 4182 return"filter"; 4183 case"extract": 4184 var i = n.toString().match(/alpha\(opacity=(.*)\)/i); 4185 return n = i ? i[1] / 100 : 1; 4186 case"inject": 4187 return e.style.zoom = 1, parseFloat(n) >= 1 ? "" : "alpha(opacity=" + parseInt(100 * parseFloat(n), 10) + ")" 4188 } 4189 else 4190 switch (t) { 4191 case"name": 4192 return"opacity"; 4193 case"extract": 4194 case"inject": 4195 return n 4196 } 4197 }}, register: function () { 4198 9 >= p || b.State.isGingerbread || (w.Lists.transformsBase = w.Lists.transformsBase.concat(w.Lists.transforms3D)); 4199 for (t = 0; t < w.Lists.transformsBase.length; t++) 4200 !function () { 4201 var e = w.Lists.transformsBase[t]; 4202 w.Normalizations.registered[e] = function (t, n, o) { 4203 switch (t) { 4204 case"name": 4205 return"transform"; 4206 case"extract": 4207 return r(n) === i || r(n).transformCache[e] === i ? /^scale/i.test(e) ? 1 : 0 : r(n).transformCache[e].replace(/[()]/g, ""); 4208 case"inject": 4209 var a = !1; 4210 switch (e.substr(0, e.length - 1)) { 4211 case"translate": 4212 a = !/(%|px|em|rem|vw|vh|\d)$/i.test(o); 4213 break; 4214 case"scal": 4215 case"scale": 4216 b.State.isAndroid && r(n).transformCache[e] === i && 1 > o && (o = 1), a = !/(\d)$/i.test(o); 4217 break; 4218 case"skew": 4219 a = !/(deg|\d)$/i.test(o); 4220 break; 4221 case"rotate": 4222 a = !/(deg|\d)$/i.test(o) 4223 } 4224 return a || (r(n).transformCache[e] = "(" + o + ")"), r(n).transformCache[e] 4225 } 4226 } 4227 }(); 4228 for (var t = 0; t < w.Lists.colors.length; t++) 4229 !function () { 4230 var e = w.Lists.colors[t]; 4231 w.Normalizations.registered[e] = function (t, n, o) { 4232 switch (t) { 4233 case"name": 4234 return e; 4235 case"extract": 4236 var a; 4237 if (w.RegEx.wrappedValueAlreadyExtracted.test(o)) 4238 a = o; 4239 else { 4240 var r, s = {black: "rgb(0, 0, 0)", blue: "rgb(0, 0, 255)", gray: "rgb(128, 128, 128)", green: "rgb(0, 128, 0)", red: "rgb(255, 0, 0)", white: "rgb(255, 255, 255)"}; 4241 /^[A-z]+$/i.test(o) ? r = s[o] !== i ? s[o] : s.black : w.RegEx.isHex.test(o) ? r = "rgb(" + w.Values.hexToRgb(o).join(" ") + ")" : /^rgba?\(/i.test(o) || (r = s.black), a = (r || o).toString().match(w.RegEx.valueUnwrap)[1].replace(/,(\s+)?/g, " ") 4242 } 4243 return 8 >= p || 3 !== a.split(" ").length || (a += " 1"), a; 4244 case"inject": 4245 return 8 >= p ? 4 === o.split(" ").length && (o = o.split(/\s+/).slice(0, 3).join(" ")) : 3 === o.split(" ").length && (o += " 1"), (8 >= p ? "rgb" : "rgba") + "(" + o.replace(/\s+/g, ",").replace(/\.(\d)+(?=,)/g, "") + ")" 4246 } 4247 } 4248 }() 4249 }}, Names: {camelCase: function (t) { 4250 return t.replace(/-(\w)/g, function (t, e) { 4251 return e.toUpperCase() 4252 }) 4253 }, SVGAttribute: function (t) { 4254 var e = "width|height|x|y|cx|cy|r|rx|ry|x1|x2|y1|y2"; 4255 return(p || b.State.isAndroid && !b.State.isChrome) && (e += "|transform"), new RegExp("^(" + e + ")$", "i").test(t) 4256 }, prefixCheck: function (t) { 4257 if (b.State.prefixMatches[t]) 4258 return[b.State.prefixMatches[t], !0]; 4259 for (var e = ["", "Webkit", "Moz", "ms", "O"], n = 0, i = e.length; i > n; n++) { 4260 var o; 4261 if (o = 0 === n ? t : e[n] + t.replace(/^\w/, function (t) { 4262 return t.toUpperCase() 4263 }), m.isString(b.State.prefixElement.style[o])) 4264 return b.State.prefixMatches[t] = o, [o, !0] 4265 } 4266 return[t, !1] 4267 }}, Values: {hexToRgb: function (t) { 4268 var e, n = /^#?([a-f\d])([a-f\d])([a-f\d])$/i, i = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i; 4269 return t = t.replace(n, function (t, e, n, i) { 4270 return e + e + n + n + i + i 4271 }), e = i.exec(t), e ? [parseInt(e[1], 16), parseInt(e[2], 16), parseInt(e[3], 16)] : [0, 0, 0] 4272 }, isCSSNullValue: function (t) { 4273 return 0 == t || /^(none|auto|transparent|(rgba\(0, ?0, ?0, ?0\)))$/i.test(t) 4274 }, getUnitType: function (t) { 4275 return/^(rotate|skew)/i.test(t) ? "deg" : /(^(scale|scaleX|scaleY|scaleZ|alpha|flexGrow|flexHeight|zIndex|fontWeight)$)|((opacity|red|green|blue|alpha)$)/i.test(t) ? "" : "px" 4276 }, getDisplayType: function (t) { 4277 var e = t && t.tagName.toString().toLowerCase(); 4278 return/^(b|big|i|small|tt|abbr|acronym|cite|code|dfn|em|kbd|strong|samp|var|a|bdo|br|img|map|object|q|script|span|sub|sup|button|input|label|select|textarea)$/i.test(e) ? "inline" : /^(li)$/i.test(e) ? "list-item" : /^(tr)$/i.test(e) ? "table-row" : /^(table)$/i.test(e) ? "table" : /^(tbody)$/i.test(e) ? "table-row-group" : "block" 4279 }, addClass: function (t, e) { 4280 t.classList ? t.classList.add(e) : t.className += (t.className.length ? " " : "") + e 4281 }, removeClass: function (t, e) { 4282 t.classList ? t.classList.remove(e) : t.className = t.className.toString().replace(new RegExp("(^|\\s)" + e.split(" ").join("|") + "(\\s|$)", "gi"), " ") 4283 }}, getPropertyValue: function (t, n, o, a) { 4284 function s(t, n) { 4285 function o() { 4286 c && w.setPropertyValue(t, "display", "none") 4287 } 4288 var l = 0; 4289 if (8 >= p) 4290 l = h.css(t, n); 4291 else { 4292 var c = !1; 4293 if (/^(width|height)$/.test(n) && 0 === w.getPropertyValue(t, "display") && (c = !0, w.setPropertyValue(t, "display", w.Values.getDisplayType(t))), !a) { 4294 if ("height" === n && "border-box" !== w.getPropertyValue(t, "boxSizing").toString().toLowerCase()) { 4295 var u = t.offsetHeight - (parseFloat(w.getPropertyValue(t, "borderTopWidth")) || 0) - (parseFloat(w.getPropertyValue(t, "borderBottomWidth")) || 0) - (parseFloat(w.getPropertyValue(t, "paddingTop")) || 0) - (parseFloat(w.getPropertyValue(t, "paddingBottom")) || 0); 4296 return o(), u 4297 } 4298 if ("width" === n && "border-box" !== w.getPropertyValue(t, "boxSizing").toString().toLowerCase()) { 4299 var d = t.offsetWidth - (parseFloat(w.getPropertyValue(t, "borderLeftWidth")) || 0) - (parseFloat(w.getPropertyValue(t, "borderRightWidth")) || 0) - (parseFloat(w.getPropertyValue(t, "paddingLeft")) || 0) - (parseFloat(w.getPropertyValue(t, "paddingRight")) || 0); 4300 return o(), d 4301 } 4302 } 4303 var f; 4304 f = r(t) === i ? e.getComputedStyle(t, null) : r(t).computedStyle ? r(t).computedStyle : r(t).computedStyle = e.getComputedStyle(t, null), "borderColor" === n && (n = "borderTopColor"), ("" === (l = 9 === p && "filter" === n ? f.getPropertyValue(n) : f[n]) || null === l) && (l = t.style[n]), o() 4305 } 4306 if ("auto" === l && /^(top|right|bottom|left)$/i.test(n)) { 4307 var m = s(t, "position"); 4308 ("fixed" === m || "absolute" === m && /top|left/i.test(n)) && (l = h(t).position()[n] + "px") 4309 } 4310 return l 4311 } 4312 var l; 4313 if (w.Hooks.registered[n]) { 4314 var c = n, u = w.Hooks.getRoot(c); 4315 o === i && (o = w.getPropertyValue(t, w.Names.prefixCheck(u)[0])), w.Normalizations.registered[u] && (o = w.Normalizations.registered[u]("extract", t, o)), l = w.Hooks.extractValue(c, o) 4316 } else if (w.Normalizations.registered[n]) { 4317 var d, f; 4318 "transform" !== (d = w.Normalizations.registered[n]("name", t)) && (f = s(t, w.Names.prefixCheck(d)[0]), w.Values.isCSSNullValue(f) && w.Hooks.templates[n] && (f = w.Hooks.templates[n][1])), l = w.Normalizations.registered[n]("extract", t, f) 4319 } 4320 if (!/^[\d-]/.test(l)) 4321 if (r(t) && r(t).isSVG && w.Names.SVGAttribute(n)) 4322 if (/^(height|width)$/i.test(n)) 4323 try { 4324 l = t.getBBox()[n] 4325 } catch (t) { 4326 l = 0 4327 } 4328 else 4329 l = t.getAttribute(n); 4330 else 4331 l = s(t, w.Names.prefixCheck(n)[0]); 4332 return w.Values.isCSSNullValue(l) && (l = 0), b.debug >= 2 && console.log("Get " + n + ": " + l), l 4333 }, setPropertyValue: function (t, n, i, o, a) { 4334 var s = n; 4335 if ("scroll" === n) 4336 a.container ? a.container["scroll" + a.direction] = i : "Left" === a.direction ? e.scrollTo(i, a.alternateValue) : e.scrollTo(a.alternateValue, i); 4337 else if (w.Normalizations.registered[n] && "transform" === w.Normalizations.registered[n]("name", t)) 4338 w.Normalizations.registered[n]("inject", t, i), s = "transform", i = r(t).transformCache[n]; 4339 else { 4340 if (w.Hooks.registered[n]) { 4341 var l = n, c = w.Hooks.getRoot(n); 4342 o = o || w.getPropertyValue(t, c), i = w.Hooks.injectValue(l, i, o), n = c 4343 } 4344 if (w.Normalizations.registered[n] && (i = w.Normalizations.registered[n]("inject", t, i), n = w.Normalizations.registered[n]("name", t)), s = w.Names.prefixCheck(n)[0], 8 >= p) 4345 try { 4346 t.style[s] = i 4347 } catch (t) { 4348 b.debug && console.log("Browser does not support [" + i + "] for [" + s + "]") 4349 } 4350 else 4351 r(t) && r(t).isSVG && w.Names.SVGAttribute(n) ? t.setAttribute(n, i) : t.style[s] = i; 4352 b.debug >= 2 && console.log("Set " + n + " (" + s + "): " + i) 4353 } 4354 return[s, i] 4355 }, flushTransformCache: function (t) { 4356 function e(e) { 4357 return parseFloat(w.getPropertyValue(t, e)) 4358 } 4359 var n = ""; 4360 if ((p || b.State.isAndroid && !b.State.isChrome) && r(t).isSVG) { 4361 var i = {translate: [e("translateX"), e("translateY")], skewX: [e("skewX")], skewY: [e("skewY")], scale: 1 !== e("scale") ? [e("scale"), e("scale")] : [e("scaleX"), e("scaleY")], rotate: [e("rotateZ"), 0, 0]}; 4362 h.each(r(t).transformCache, function (t) { 4363 /^translate/i.test(t) ? t = "translate" : /^scale/i.test(t) ? t = "scale" : /^rotate/i.test(t) && (t = "rotate"), i[t] && (n += t + "(" + i[t].join(" ") + ") ", delete i[t]) 4364 }) 4365 } else { 4366 var o, a; 4367 h.each(r(t).transformCache, function (e) { 4368 return o = r(t).transformCache[e], "transformPerspective" === e ? (a = o, !0) : (9 === p && "rotateZ" === e && (e = "rotate"), void(n += e + o + " ")) 4369 }), a && (n = "perspective" + a + " " + n) 4370 } 4371 w.setPropertyValue(t, "transform", n) 4372 }}; 4373 w.Hooks.register(), w.Normalizations.register(), b.hook = function (t, e, n) { 4374 var o = i; 4375 return t = a(t), h.each(t, function (t, a) { 4376 if (r(a) === i && b.init(a), n === i) 4377 o === i && (o = b.CSS.getPropertyValue(a, e)); 4378 else { 4379 var s = b.CSS.setPropertyValue(a, e, n); 4380 "transform" === s[0] && b.CSS.flushTransformCache(a), o = s 4381 } 4382 }), o 4383 }; 4384 var k = function () { 4385 function t() { 4386 return s ? M.promise || null : l 4387 } 4388 function o() { 4389 function t(t) { 4390 function d(t, e) { 4391 var n = i, o = i, r = i; 4392 return m.isArray(t) ? (n = t[0], !m.isArray(t[1]) && /^[\d-]/.test(t[1]) || m.isFunction(t[1]) || w.RegEx.isHex.test(t[1]) ? r = t[1] : (m.isString(t[1]) && !w.RegEx.isHex.test(t[1]) || m.isArray(t[1])) && (o = e ? t[1] : c(t[1], s.duration), t[2] !== i && (r = t[2]))) : n = t, e || (o = o || s.easing), m.isFunction(n) && (n = n.call(a, S, C)), m.isFunction(r) && (r = r.call(a, S, C)), [n || 0, o, r] 4393 } 4394 function p(t, e) { 4395 var n, i; 4396 return i = (e || "0").toString().toLowerCase().replace(/[%A-z]+$/, function (t) { 4397 return n = t, "" 4398 }), n || (n = w.Values.getUnitType(t)), [i, n] 4399 } 4400 if (s.begin && 0 === S) 4401 try { 4402 s.begin.call(f, f) 4403 } catch (t) { 4404 setTimeout(function () { 4405 throw t 4406 }, 1) 4407 } 4408 if ("scroll" === I) { 4409 var v, x, k, T = /^x$/i.test(s.axis) ? "Left" : "Top", A = parseFloat(s.offset) || 0; 4410 s.container ? m.isWrapped(s.container) || m.isNode(s.container) ? (s.container = s.container[0] || s.container, v = s.container["scroll" + T], k = v + h(a).position()[T.toLowerCase()] + A) : s.container = null : (v = b.State.scrollAnchor[b.State["scrollProperty" + T]], x = b.State.scrollAnchor[b.State["scrollProperty" + ("Left" === T ? "Top" : "Left")]], k = h(a).offset()[T.toLowerCase()] + A), l = {scroll: {rootPropertyValue: !1, startValue: v, currentValue: v, endValue: k, unitType: "", easing: s.easing, scrollData: {container: s.container, direction: T, alternateValue: x}}, element: a}, b.debug && console.log("tweensContainer (scroll): ", l.scroll, a) 4411 } else if ("reverse" === I) { 4412 if (!r(a).tweensContainer) 4413 return void h.dequeue(a, s.queue); 4414 "none" === r(a).opts.display && (r(a).opts.display = "auto"), "hidden" === r(a).opts.visibility && (r(a).opts.visibility = "visible"), r(a).opts.loop = !1, r(a).opts.begin = null, r(a).opts.complete = null, y.easing || delete s.easing, y.duration || delete s.duration, s = h.extend({}, r(a).opts, s); 4415 D = h.extend(!0, {}, r(a).tweensContainer); 4416 for (var P in D) 4417 if ("element" !== P) { 4418 var _ = D[P].startValue; 4419 D[P].startValue = D[P].currentValue = D[P].endValue, D[P].endValue = _, m.isEmptyObject(y) || (D[P].easing = s.easing), b.debug && console.log("reverse tweensContainer (" + P + "): " + JSON.stringify(D[P]), a) 4420 } 4421 l = D 4422 } else if ("start" === I) { 4423 var D; 4424 r(a).tweensContainer && !0 === r(a).isAnimating && (D = r(a).tweensContainer), h.each(g, function (t, e) { 4425 if (RegExp("^" + w.Lists.colors.join("$|^") + "$").test(t)) { 4426 var n = d(e, !0), o = n[0], a = n[1], r = n[2]; 4427 if (w.RegEx.isHex.test(o)) { 4428 for (var s = ["Red", "Green", "Blue"], l = w.Values.hexToRgb(o), c = r ? w.Values.hexToRgb(r) : i, u = 0; u < s.length; u++) { 4429 var h = [l[u]]; 4430 a && h.push(a), c !== i && h.push(c[u]), g[t + s[u]] = h 4431 } 4432 delete g[t] 4433 } 4434 } 4435 }); 4436 for (var L in g) { 4437 var F = d(g[L]), R = F[0], W = F[1], V = F[2]; 4438 L = w.Names.camelCase(L); 4439 var z = w.Hooks.getRoot(L), N = !1; 4440 if (r(a).isSVG || "tween" === z || !1 !== w.Names.prefixCheck(z)[1] || w.Normalizations.registered[z] !== i) { 4441 (s.display !== i && null !== s.display && "none" !== s.display || s.visibility !== i && "hidden" !== s.visibility) && /opacity|filter/.test(L) && !V && 0 !== R && (V = 0), s._cacheValues && D && D[L] ? (V === i && (V = D[L].endValue + D[L].unitType), N = r(a).rootPropertyValueCache[z]) : w.Hooks.registered[L] ? V === i ? (N = w.getPropertyValue(a, z), V = w.getPropertyValue(a, L, N)) : N = w.Hooks.templates[z][1] : V === i && (V = w.getPropertyValue(a, L)); 4442 var H, B, Y, j = !1; 4443 if (H = p(L, V), V = H[0], Y = H[1], H = p(L, R), R = H[0].replace(/^([+-\/*])=/, function (t, e) { 4444 return j = e, "" 4445 }), B = H[1], V = parseFloat(V) || 0, R = parseFloat(R) || 0, "%" === B && (/^(fontSize|lineHeight)$/.test(L) ? (R /= 100, B = "em") : /^scale/.test(L) ? (R /= 100, B = "") : /(Red|Green|Blue)$/i.test(L) && (R = R / 100 * 255, B = "")), /[\/*]/.test(j)) 4446 B = Y; 4447 else if (Y !== B && 0 !== V) 4448 if (0 === R) 4449 B = Y; 4450 else { 4451 o = o || function () { 4452 var t = {myParent: a.parentNode || n.body, position: w.getPropertyValue(a, "position"), fontSize: w.getPropertyValue(a, "fontSize")}, i = t.position === E.lastPosition && t.myParent === E.lastParent, o = t.fontSize === E.lastFontSize; 4453 E.lastParent = t.myParent, E.lastPosition = t.position, E.lastFontSize = t.fontSize; 4454 var s = 100, l = {}; 4455 if (o && i) 4456 l.emToPx = E.lastEmToPx, l.percentToPxWidth = E.lastPercentToPxWidth, l.percentToPxHeight = E.lastPercentToPxHeight; 4457 else { 4458 var c = r(a).isSVG ? n.createElementNS("http://www.w3.org/2000/svg", "rect") : n.createElement("div"); 4459 b.init(c), t.myParent.appendChild(c), h.each(["overflow", "overflowX", "overflowY"], function (t, e) { 4460 b.CSS.setPropertyValue(c, e, "hidden") 4461 }), b.CSS.setPropertyValue(c, "position", t.position), b.CSS.setPropertyValue(c, "fontSize", t.fontSize), b.CSS.setPropertyValue(c, "boxSizing", "content-box"), h.each(["minWidth", "maxWidth", "width", "minHeight", "maxHeight", "height"], function (t, e) { 4462 b.CSS.setPropertyValue(c, e, s + "%") 4463 }), b.CSS.setPropertyValue(c, "paddingLeft", s + "em"), l.percentToPxWidth = E.lastPercentToPxWidth = (parseFloat(w.getPropertyValue(c, "width", null, !0)) || 1) / s, l.percentToPxHeight = E.lastPercentToPxHeight = (parseFloat(w.getPropertyValue(c, "height", null, !0)) || 1) / s, l.emToPx = E.lastEmToPx = (parseFloat(w.getPropertyValue(c, "paddingLeft")) || 1) / s, t.myParent.removeChild(c) 4464 } 4465 return null === E.remToPx && (E.remToPx = parseFloat(w.getPropertyValue(n.body, "fontSize")) || 16), null === E.vwToPx && (E.vwToPx = parseFloat(e.innerWidth) / 100, E.vhToPx = parseFloat(e.innerHe
vendor: 4,463 bytes, lines 4465-4523
4465ight) / 100), l.remToPx = E.remToPx, l.vwToPx = E.vwToPx, l.vhToPx = E.vhToPx, b.debug >= 1 && console.log("Unit ratios: " + JSON.stringify(l), a), l 4466 }(); 4467 var $ = /margin|padding|left|right|width|text|word|letter/i.test(L) || /X$/.test(L) || "x" === L ? "x" : "y"; 4468 switch (Y) { 4469 case"%": 4470 V *= "x" === $ ? o.percentToPxWidth : o.percentToPxHeight; 4471 break; 4472 case"px": 4473 break; 4474 default: 4475 V *= o[Y + "ToPx"] 4476 } 4477 switch (B) { 4478 case"%": 4479 V *= 1 / ("x" === $ ? o.percentToPxWidth : o.percentToPxHeight); 4480 break; 4481 case"px": 4482 break; 4483 default: 4484 V *= 1 / o[B + "ToPx"] 4485 } 4486 } 4487 switch (j) { 4488 case"+": 4489 R = V + R; 4490 break; 4491 case"-": 4492 R = V - R; 4493 break; 4494 case"*": 4495 R *= V; 4496 break; 4497 case"/": 4498 R = V / R 4499 } 4500 l[L] = {rootPropertyValue: N, startValue: V, currentValue: V, endValue: R, unitType: B, easing: W}, b.debug && console.log("tweensContainer (" + L + "): " + JSON.stringify(l[L]), a) 4501 } else 4502 b.debug && console.log("Skipping [" + z + "] due to a lack of browser support.") 4503 } 4504 l.element = a 4505 } 4506 l.element && (w.Values.addClass(a, "velocity-animating"), O.push(l), "" === s.queue && (r(a).tweensContainer = l, r(a).opts = s), r(a).isAnimating = !0, S === C - 1 ? (b.State.calls.push([O, f, s, null, M.resolver]), !1 === b.State.isTicking && (b.State.isTicking = !0, u())) : S++) 4507 } 4508 var o, a = this, s = h.extend({}, b.defaults, y), l = {}; 4509 switch (r(a) === i && b.init(a), parseFloat(s.delay) && !1 !== s.queue && h.queue(a, s.queue, function (t) { 4510 b.velocityQueueEntryFlag = !0, r(a).delayTimer = {setTimeout: setTimeout(t, parseFloat(s.delay)), next: t} 4511 }), s.duration.toString().toLowerCase()){case"fast": 4512 s.duration = 200; 4513 break; 4514 case"normal": 4515 s.duration = v; 4516 break; 4517 case"slow": 4518 s.duration = 600; 4519 break; 4520 default: 4521 s.duration = parseFloat(s.duration) || 1 4522 } 4523 !1 !== b.mock && (!0 === b.mock ? s.duration = s.delay
4523= 1 : (s.duration *= parseFloat(b.mock) || 1, s.delay *= parseFloat(b.mock) || 1)), s.easing = c(s.easing, s.duration), s.begin && !m.isFunction(s.begin) && (s.begin = null), s.progress && !m.isFunction(s.progress) && (s.progress = null), s.complete && !m.isFunction(s.complete) && (s.complete = null), s.display !== i && null !== s.display && (s.display = s.display.toString().toLowerCase(), "auto" === s.display && (s.display = b.CSS.Values.getDisplayType(a))), s.visibility !== i && null !== s.visibility && (s.visibility = s.visibility.toString().toLowerCase()), s.mobileHA = s.mobileHA && b.State.isMobile && !b.State.isGingerbread, !1 === s.queue ? s.delay ? setTimeout(t, s.delay) : t() : h.queue(a, s.queue, function (e, n) { 4524 return!0 === n ? (M.promise && M.resolver(f), !0) : (b.velocityQueueEntryFlag = !0, void t(e)) 4525 }), "" !== s.queue && "fx" !== s.queue || "inprogress" === h.queue(a)[0] || h.dequeue(a) 4526 } 4527 var s, l, p, f, g, y, x = arguments[0] && (arguments[0].p || h.isPlainObject(arguments[0].properties) && !arguments[0].properties.names || m.isString(arguments[0].properties)); 4528 if (m.isWrapped(this) ? (s = !1, p = 0, f = this, l = this) : (s = !0, p = 1, f = x ? arguments[0].elements || arguments[0].e : arguments[0]), f = a(f)) { 4529 x ? (g = arguments[0].properties || arguments[0].p, y = arguments[0].options || arguments[0].o) : (g = arguments[p], y = arguments[p + 1]); 4530 var C = f.length, S = 0; 4531 if (!/^(stop|finish)$/i.test(g) && !h.isPlainObject(y)) { 4532 y = {}; 4533 for (var T = p + 1; T < arguments.length; T++) 4534 m.isArray(arguments[T]) || !/^(fast|normal|slow)$/i.test(arguments[T]) && !/^\d/.test(arguments[T]) ? m.isString(arguments[T]) || m.isArray(arguments[T]) ? y.easing = arguments[T] : m.isFunction(arguments[T]) && (y.complete = arguments[T]) : y.duration = arguments[T] 4535 } 4536 var M = {promise: null, resolver: null, rejecter: null}; 4537 s && b.Promise && (M.promise = new b.Promise(function (t, e) { 4538 M.resolver = t, M.rejecter = e 4539 })); 4540 var I; 4541 switch (g) { 4542 case"scroll": 4543 I = "scroll"; 4544 break; 4545 case"reverse": 4546 I = "reverse"; 4547 break; 4548 case"finish": 4549 case"stop": 4550 h.each(f, function (t, e) { 4551 r(e) && r(e).delayTimer && (clearTimeout(r(e).delayTimer.setTimeout), r(e).delayTimer.next && r(e).delayTimer.next(), delete r(e).delayTimer) 4552 }); 4553 var A = []; 4554 return h.each(b.State.calls, function (t, e) { 4555 e && h.each(e[1], function (n, o) { 4556 var a = y === i ? "" : y; 4557 return!0 !== a && e[2].queue !== a && (y !== i || !1 !== e[2].queue) || void h.each(f, function (n, i) { 4558 i === o && ((!0 === y || m.isString(y)) && (h.each(h.queue(i, m.isString(y) ? y : ""), function (t, e) { 4559 m.isFunction(e) && e(null, !0) 4560 }), h.queue(i, m.isString(y) ? y : "", [])), "stop" === g ? (r(i) && r(i).tweensContainer && !1 !== a && h.each(r(i).tweensContainer, function (t, e) { 4561 e.endValue = e.currentValue 4562 }), A.push(t)) : "finish" === g && (e[2].duration = 1)) 4563 }) 4564 }) 4565 }), "stop" === g && (h.each(A, function (t, e) { 4566 d(e, !0) 4567 }), M.promise && M.resolver(f)), t(); 4568 default: 4569 if (!h.isPlainObject(g) || m.isEmptyObject(g)) { 4570 if (m.isString(g) && b.Redirects[g]) { 4571 var P = (F = h.extend({}, y)).duration, _ = F.delay || 0; 4572 return!0 === F.backwards && (f = h.extend(!0, [], f).reverse()), h.each(f, function (t, e) { 4573 parseFloat(F.stagger) ? F.delay = _ + parseFloat(F.stagger) * t : m.isFunction(F.stagger) && (F.delay
4573= _ + F.stagger.call(e, t, C)), F.drag && (F.duration = parseFloat(P) || (/^(callout|transition)/.test(g) ? 1e3 : v), F.duration = Math.max(F.duration * (F.backwards ? 1 - t / C : (t + 1) / C), .75 * F.duration, 200)), b.Redirects[g].call(e, e, F || {}, t, C, f, M.promise ? M : i) 4574 }), t() 4575 } 4576 var D = "Velocity: First argument (" + g + ") was not a property map, a known action, or a registered redirect. Aborting."; 4577 return M.promise ? M.rejecter(new Error(D)) : console.log(D), t() 4578 } 4579 I = "start" 4580 } 4581 var E = {lastParent: null, lastPosition: null, lastFontSize: null, lastPercentToPxWidth: null, lastPercentToPxHeight: null, lastEmToPx: null, remToPx: null, vwToPx: null, vhToPx: null}, O = []; 4582 h.each(f, function (t, e) { 4583 m.isNode(e) && o.call(e) 4584 }); 4585 var L, F = h.extend({}, b.defaults, y); 4586 if (F.loop = parseInt(F.loop), L = 2 * F.loop - 1, F.loop) 4587 for (var R = 0; L > R; R++) { 4588 var W = {delay: F.delay, progress: F.progress}; 4589 R === L - 1 && (W.display = F.display, W.visibility = F.visibility, W.complete = F.complete), k(f, "reverse", W) 4590 } 4591 return t() 4592 } 4593 }; 4594 (b = h.extend(k, b)).animate = k; 4595 var C = e.requestAnimationFrame || f; 4596 return b.State.isMobile || n.hidden === i || n.addEventListener("visibilitychange", function () { 4597 n.hidden ? (C = function (t) { 4598 return setTimeout(function () { 4599 t(!0) 4600 }, 16) 4601 }, u()) : C = e.requestAnimationFrame || f 4602 }), t.Velocity = b, t !== e && (t.fn.velocity = k, t.fn.velocity.defaults = b.defaults), h.each(["Down", "Up"], function (t, e) { 4603 b.Redirects["slide" + e] = function (t, n, o, a, r, s) { 4604 var l = h.extend({}, n), c = l.begin, u = l.complete, d = {height: "", marginTop: "", marginBottom: "", paddingTop: "", paddingBottom: ""}, p = {}; 4605 l.display === i && (l.display = "Down" === e ? "inline" === b.CSS.Values.getDisplayType(t) ? "inline-block" : "block" : "none"), l.begin = function () { 4606 c && c.call(r, r); 4607 for (var n in d) { 4608 p[n] = t.style[n]; 4609 var i = b.CSS.getPropertyValue(t, n); 4610 d[n] = "Down" === e ? [i, 0] : [0, i] 4611 } 4612 p.overflow = t.style.overflow, t.style.overflow = "hidden" 4613 }, l.complete = function () { 4614 for (var e in p) 4615 t.style[e] = p[e]; 4616 u && u.call(r, r), s && s.resolver(r) 4617 }, b(t, d, l) 4618 } 4619 }), h.each(["In", "Out"], function (t, e) { 4620 b.Redirects["fade" + e] = function (t, n, o, a, r, s) { 4621 var l = h.extend({}, n), c = {opacity: "In" === e ? 1 : 0}, u = l.complete; 4622 l.complete = o !== a - 1 ? l.begin = null : function () { 4623 u && u.call(r, r), s && s.resolver(r) 4624 }, l.display === i && (l.display = "In" === e ? "auto" : "none"), b(this, c, l) 4625 } 4626 }), b 4627 } 4628 jQuery.fn.velocity = jQuery.fn.animate 4629 } 4630 }(window.jQuery || window.Zepto || window, window, document) 4631 })), function (t, e) { 4632 "use strict"; 4633 "function" == typeof define && define.amd ? define([], function () { 4634 return e.apply(t) 4635 }) : "object" == typeof exports ? module.exports = e.call(t) : t.Waves = e.call(t) 4636 }("object" == typeof global ? global : this, function () { 4637 "use strict"; 4638 function t(t) { 4639 return null !== t && t === t.window 4640 } 4641 function e(e) {
4642 return t(e) ? e : 9 === e.nodeType && e.defaultView 4643 } 4644 function n(t) { 4645 var e = typeof t; 4646 return"function" === e || "object" === e && !!t 4647 } 4648 function i(t) { 4649 return n(t) && t.nodeType > 0 4650 } 4651 function o(t) { 4652 var e = h.call(t); 4653 return"[object String]" === e ? d(t) : n(t) && /^\[object (Array|HTMLCollection|NodeList|Object)\]$/.test(e) && t.hasOwnProperty("length") ? t : i(t) ? [t] : [] 4654 } 4655 function a(t) { 4656 var n, i, o = {top: 0, left: 0}, a = t && t.ownerDocument; 4657 return n = a.documentElement, void 0 !== t.getBoundingClientRect && (o = t.getBoundingClientRect()), i = e(a), {top: o.top + i.pageYOffset - n.clientTop, left: o.left + i.pageXOffset - n.clientLeft} 4658 } 4659 function r(t) { 4660 var e = ""; 4661 for (var n in t) 4662 t.hasOwnProperty(n) && (e += n + ":" + t[n] + ";"); 4663 return e 4664 } 4665 function s(t, e, n) { 4666 if (n) { 4667 n.classList.remove("waves-rippling"); 4668 var i = n.getAttribute("data-x"), o = n.getAttribute("data-y"), a = n.getAttribute("data-scale"), s = n.getAttribute("data-translate"), l = 350 - (Date.now() - Number(n.getAttribute("data-hold"))); 4669 l < 0 && (l = 0), "mousemove" === t.type && (l = 150); 4670 var c = "mousemove" === t.type ? 2500 : f.duration; 4671 setTimeout(function () { 4672 var t = {top: o + "px", left: i + "px", opacity: "0", "-webkit-transition-duration": c + "ms", "-moz-transition-duration": c + "ms", "-o-transition-duration": c + "ms", "transition-duration": c + "ms", "-webkit-transform": a + " " + s, "-moz-transform": a + " " + s, "-ms-transform": a + " " + s, "-o-transform": a + " " + s, transform: a + " " + s}; 4673 n.setAttribute("style", r(t)), setTimeout(function () { 4674 try { 4675 e.removeChild(n) 4676 } catch (t) { 4677 return!1 4678 } 4679 }, c) 4680 }, l) 4681 } 4682 } 4683 function l(t) { 4684 if (!1 === g.allowEvent(t)) 4685 return null; 4686 for (var e = null, n = t.target || t.srcElement; null !== n.parentElement; ) { 4687 if (n.classList.contains("waves-effect") && !(n instanceof SVGElement)) { 4688 e = n; 4689 break 4690 } 4691 n = n.parentElement 4692 } 4693 return e 4694 } 4695 function c(t) { 4696 var e = l(t); 4697 if (null !== e) { 4698 if (e.disabled || e.getAttribute("disabled") || e.classList.contains("disabled")) 4699 return; 4700 if (g.registerEvent(t), "touchstart" === t.type && f.delay) { 4701 var n = !1, i = setTimeout(function () { 4702 i = null, f.show(t, e) 4703 }, f.delay), o = function (o) { 4704 i && (clearTimeout(i), i = null, f.show(t, e)), n || (n = !0, f.hide(o, e)) 4705 }; 4706 e.addEventListener("touchmove", function (t) { 4707 i && (clearTimeout(i), i = null), o(t) 4708 }, !1), e.addEventListener("touchend", o, !1), e.addEventListener("touchcancel", o, !1) 4709 } else 4710 f.show(t, e), p && (e.addEventListener("touchend", f.hide, !1), e.addEventListener("touchcancel", f.hide, !1)), e.addEventListener("mouseup", f.hide, !1), e.addEventListener("mouseleave", f.hide, !1) 4711 } 4712 } 4713 var u = u || {}, d = document.querySelectorAll.bind(document), h = Object.prototype.toString, p = "ontouchstart"in window, f = {duration: 750, delay: 200, show: function (t, e, n) { 4714 if (2 === t.button) 4715 return!1; 4716 e = e || this; 4717 var i = document.createElement("div"); 4718// i.className = "waves-ripple waves-rippling", e.a
vendor: 4,425 bytes, lines 4718-4773
4718ppendChild(i); 4719 var o = a(e), s = 0, l = 0; 4720 "touches"in t && t.touches.length ? (s = t.touches[0].pageY - o.top, l = t.touches[0].pageX - o.left) : (s = t.pageY - o.top, l = t.pageX - o.left), l = l >= 0 ? l : 0, s = s >= 0 ? s : 0; 4721 var c = "scale(" + e.clientWidth / 100 * 3 + ")", u = "translate(0,0)"; 4722 n && (u = "translate(" + n.x + "px, " + n.y + "px)"), i.setAttribute("data-hold", Date.now()), i.setAttribute("data-x", l), i.setAttribute("data-y", s), i.setAttribute("data-scale", c), i.setAttribute("data-translate", u); 4723 var d = {top: s + "px", left: l + "px"}; 4724 i.classList.add("waves-notransition"), i.setAttribute("style", r(d)), i.classList.remove("waves-notransition"), d["-webkit-transform"] = c + " " + u, d["-moz-transform"] = c + " " + u, d["-ms-transform"] = c + " " + u, d["-o-transform"] = c + " " + u, d.transform = c + " " + u, d.opacity = "1"; 4725 var h = "mousemove" === t.type ? 2500 : f.duration; 4726 d["-webkit-transition-duration"] = h + "ms", d["-moz-transition-duration"] = h + "ms", d["-o-transition-duration"] = h + "ms", d["transition-duration"] = h + "ms", i.setAttribute("style", r(d)) 4727 }, hide: function (t, e) { 4728 for (var n = (e = e || this).getElementsByClassName("waves-rippling"), i = 0, o = n.length; i < o; i++) 4729 s(t, e, n[i]) 4730 }}, m = {input: function (t) { 4731 var e = t.parentNode, n = document.createElement("div"); 4732 n.className = "waves-input-wrapper", e.replaceChild(n, t), n.appendChild(t) 4733 }, img: function (t) { 4734 var e = t.parentNode; 4735 if ("i" !== e.tagName.toLowerCase() || !e.classList.contains("waves-effect")) { 4736 var n = document.createElement("i"); 4737 e.replaceChild(n, t), n.appendChild(t) 4738 } 4739 }}, g = {touches: 0, allowEvent: function (t) { 4740 var e = !0; 4741 return/^(mousedown|mousemove)$/.test(t.type) && g.touches && (e = !1), e 4742 }, registerEvent: function (t) { 4743 var e = t.type; 4744 "touchstart" === e ? g.touches += 1 : /^(touchend|touchcancel)$/.test(e) && setTimeout(function () { 4745 g.touches && (g.touches -= 1) 4746 }, 500) 4747 }}; 4748 return u.init = function (t) { 4749 var e = document.body; 4750 "duration"in(t = t || {}) && (f.duration = t.duration), "delay"in t && (f.delay = t.delay), p && (e.addEventListener("touchstart", c, !1), e.addEventListener("touchcancel", g.registerEvent, !1), e.addEventListener("touchend", g.registerEvent, !1)), e.addEventListener("mousedown", c, !1) 4751 }, u.attach = function (t, e) { 4752 t = o(t), "[object Array]" === h.call(e) && (e = e.join(" ")), e = e ? " " + e : ""; 4753 for (var n, i, a = 0, r = t.length; a < r; a++) 4754 i = (n = t[a]).tagName.toLowerCase(), -1 !== ["input", "img"].indexOf(i) && (m[i](n), n = n.parentElement), -1 === n.className.indexOf("waves-effect") && (n.className += " waves-effect" + e) 4755 }, u.ripple = function (t, e) { 4756 var n = (t = o(t)).length; 4757 if (e = e || {}, e.wait = e.wait || 0, e.position = e.position || null, n) 4758 for (var i, r, s, l = {}, c = 0, u = {type: "mousedown", button: 1}; c < n; c++) 4759 if (i = t[c], r = e.position || {x: i.clientWidth / 2, y: i.clientHeight / 2}, s = a(i), l.x = s.left + r.x, l.y = s.top + r.y, u.pageX = l.x, u.pageY = l.y, f.show(u, i), e.wait >= 0 && null !== e.wait) { 4760 var d = {type: "mouseup", button: 1}; 4761 setTimeout(function (t, e) { 4762 return function () { 4763 f.hide(t, e) 4764 } 4765 }(d, i), e.wait) 4766 } 4767 }, u.calm = function (t) { 4768 for (var e = {type: "mouseup", button: 1}, n = 0, i = (t = o(t)).length; n < i; n++) 4769 f.hide(e, t[n]) 4770 }, u.displayEffect = function (t) { 4771 console.error("Waves.displayEffect() has been deprecated and will be removed in future version. Please use Waves.init() to initialize Waves effect"), u.init(t) 4772 }, u 4773 }
4773), Waves.attach(".btn:not(.btn-flat), .btn-floating", ["waves-light"]), Waves.attach(".btn-flat", ["waves-effect"]), Waves.attach(".view .mask", ["waves-light"]), Waves.attach(".waves-light", ["waves-light"]), Waves.attach(".waves-effect", ["waves-effect"]), Waves.attach(".navbar-nav a:not(.navbar-brand), .nav-icons li a, .navbar form, .nav-tabs .nav-item", ["waves-light"]), Waves.attach(".pager li a", ["waves-light"]), Waves.attach(".pagination .page-item .page-link", ["waves-effect"]), Waves.init(); 4774 var WOW = function (t) { 4775 var e = t || {}; 4776 this._boxClass = e.boxClass || "wow", this._animateClass = e.animateClass || "animated", this._offset = e.offset || 0, this._mobile = void 0 === e.mobile, this._live = void 0 === e.live, this._seoFixEnabled = void 0 === e.seoFixEnabled, this._animationDuration = e.animationDuration || "1s", this._animationDelay = e.animationDelay || "0s", this._initStorageVariables() 4777 }; 4778 WOW.prototype._initStorageVariables = function () { 4779 this._animation = [], this._boxes = [], this._cleanupBoxListener = [], this._cleanupBoxVisibleListener = [] 4780 }, WOW.prototype.init = function () { 4781 !this._mobile && this._isMobile() || (this._eachBoxInit(this._prepareBox.bind(this)), this._startWow()) 4782 }, WOW.prototype._isMobile = function () { 4783 return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) 4784 }, WOW.prototype._eachBoxInit = function (t) { 4785 for (var e = document.getElementsByClassName(this._boxClass), n = 0; n < e.length; n++) 4786 !function (n) { 4787 t(e[n], n) 4788 }(n) 4789 }, WOW.prototype._prepareBox = function (t) { 4790 var e = this._boxes.push(t) - 1; 4791 this._animation[e] = {animationName: t.style.animationName || window.getComputedStyle(t, null).animationName}, t.style.animationName = "none", t.style.visibility = "hidden" 4792 }, WOW.prototype._startWow = function () { 4793 this._live && this._checkForChanges(), 0 === this._scrollY() && this._seoFixEnabled && this._seoFix(), this._appearInView(), this._scrollHandler() 4794 }, WOW.prototype._scrollY = function () { 4795 return this._isInt(window.pageYOffset) ? window.pageYOffset : this._isInt(document.documentElement.scrollTop) ? document.documentElement.scrollTop : this._isInt(document.body.scrollTop) ? document.body.scrollTop : void 0 4796 }, WOW.prototype._isInt = function (t) { 4797 return"number" == typeof t && isFinite(t) && Math.floor(t) === t 4798 }, WOW.prototype._seoFix = function () { 4799 this._showNotInView() 4800 }, WOW.prototype._appear = function (t, e) { 4801 t.style.animationPlayState || t.style.WebkitAnimationPlayState; 4802 -1 === t.className.indexOf(this._animateClass) && (delete this._boxes[e], this._onStartAnimation(t, e), this._onStopAnimation(t, e), this._animate(t, e, this._getAnimationConfig(t))) 4803 }, WOW.prototype._onStartAnimation = function (t, e) { 4804 this._cleanupBoxVisibleListener[e] = this._boxVisible.bind(this, t, e), t.addEventListener("animationstart", this._cleanupBoxVisibleListener[e]), t.addEventListener("webkitAnimationStart", this._cleanupBoxVisibleListener[e]) 4805 }, WOW.prototype._onStopAnimation = function (t, e) { 4806 this._cleanupBoxListener[e] = this._cleanupBox.bind(this, t, e), t.addEventListener("animationend", this._cleanupBoxListener[e]), t.addEventListener("webkitAnimationEnd", this._cleanupBoxListener[e]) 4807 }, WOW.prototype._getAnimationConfig = function (t) { 4808 return{delay: this._getDelay(t), duration: this._getDuration(t), iterations: this._getIterations(t)} 4809 }, WOW.prototype._getDelay = function (t) { 4810 return t.getAttribute("data-wow-delay") || this._animationDelay 4811 }, WOW.prototype._getDuration = function (t) { 4812 return t.getAttribute("data-wow-duration") || this._animationDuration 4813 }, WOW.prototype._getIterations = function (t) { 4814 return t.getAttribute("data-wow-iteration") || t.style.animationIterationCount || window.getComputedStyle(t, null).animationIterationCount || 1 4815 }, WOW.prototype._animate = function (t, e, n) { 4816 t.style.animationDelay = n.delay, t.style.animationDuration = n.duration, t.style.animationIterationCount = n.iterations, t.style.animationName = this._animation[e].animationName, t.className += " " + this._animateClass 4817 }, WOW.prototype._boxVisible = function (t, e) { 4818 t.style.visibility = "visible", t.removeEventListener("animationstart", this._cleanupBoxVisibleListener[e]), t.removeEventListener("webkitAnimationStart", this._cleanupBoxVisibleListener[e]), delete this._cleanupBoxVisibleListener[e] 4819 }, WOW.prototype._cleanupBox = function (t, e) { 4820 t.style.animationDelay = "", t.style.animationDuration = "", t.style.animationIterationCount = "", t.style.animationName = "none", this._cleanupClass(t), t.removeEventListener("animationend", this._cleanupBoxListener[e]), t.removeEventListener("webkitAnimationEnd", this._cleanupBoxListener[e]), delete this._cleanupBoxListener[e] 4821 }, WOW.prototype._cleanupClass = function (t) { 4822 var e = t.className.split(" "), n = e.indexOf(this._animateClass); 4823 -1 !== n && (e.splice(n, 1), t.className = e.join(" ")) 4824 }
4824, WOW.prototype._eachBox = function (t) { 4825 for (var e = 0; e < this._boxes.length; e++) 4826 this._boxes[e] && function (e) { 4827 t(this._boxes[e], e) 4828 }.bind(this)(e) 4829 }, WOW.prototype._scrollHandler = function () { 4830 this._hideSeoFixListener = this._hideSeoFix.bind(this), window.addEventListener("scroll", this._hideSeoFixListener), window.addEventListener("scroll", this._appearInView.bind(this)), window.addEventListener("resize", this._appearInView.bind(this)) 4831 }, WOW.prototype._hideSeoFix = function () { 4832 window.removeEventListener("scroll", this._hideSeoFixListener), delete this._hideSeoFixListener, this._eachBox(function (t, e) { 4833 this._isInView(t) || (t.style.visibility = "hidden") 4834 }.bind(this)) 4835 }, WOW.prototype._appearInView = function () { 4836 this._eachBox(function (t, e) { 4837 this._animateBox(t, e) 4838 }.bind(this)) 4839 }, WOW.prototype._animateBox = function (t, e) { 4840 this._isInView(t) && (delete this._boxes[e], this._appear(t, e)) 4841 }, WOW.prototype._showNotInView = function () { 4842 this._eachBox(function (t, e) { 4843 this._makeVisible(t, e) 4844 }.bind(this)) 4845 }, WOW.prototype._makeVisible = function (t, e) { 4846 this._isInView(t) || (this._boxes[e].style.visibility = "visible") 4847 }, WOW.prototype._isInView = function (t) { 4848 var e = t.getAttribute("data-wow-offset") || this._offset, n = this._getElementOffset(t) + ~~e; 4849 return n <= window.innerHeight + this._scrollY() && (0 === n ? 10 : n) >= this._scrollY() 4850 }, WOW.prototype._getElementOffset = function (t) { 4851 var e = t.getBoundingClientRect(), n = document.body, i = this._scrollY(), o = document.documentElement.clientTop || n.clientTop || 0, a = e.top + i - o; 4852 return Math.round(a) 4853 }, WOW.prototype._checkForChanges = function () { 4854 var t = {childList: !0, subtree: !0}; 4855 new (window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver)(this._mutations.bind(this)).observe(document.body, t) 4856 }, WOW.prototype._mutations = function (t) { 4857 t.forEach(function (t) { 4858 for (var e = 0; e < t.addedNodes.length; e++) 4859 this.doSync(t.addedNodes[e]) 4860 }.bind(this)) 4861 }, WOW.prototype.doSync = function (t) { 4862 t.className && -1 !== t.className.split(" ").indexOf(this._boxClass) && this._prepareBox(t) 4863 }, function (t) { 4864 if ("object" == typeof exports && "undefined" != typeof module) 4865 module.exports = t(); 4866 else if ("function" == typeof define && define.amd) 4867 define([], t); 4868 else { 4869 ("undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this).Chart = t() 4870 } 4871 }(function () { 4872 return function t(e, n, i) { 4873 function o(r, s) { 4874 if (!n[r]) { 4875 if (!e[r]) { 4876 var l = "function" == typeof require && require; 4877 if (!s && l) 4878 return l(r, !0); 4879 if (a) 4880 return a(r, !0); 4881 var c = new Error("Cannot find module '" + r + "'"); 4882 throw c.code = "MODULE_NOT_FOUND", c 4883 } 4884 var u = n[r] = {exports: {}}; 4885 e[r][0].call(u.exports, function (t) { 4886 var n = e[r][1][t]; 4887 return o(n || t) 4888 }, u, u.exports, t, e, n, i) 4889 } 4890 return n[r].exports 4891 } 4892 for (var a = "function" == typeof require && require, r = 0; r < i.length; r++) 4893 o(i[r]); 4894 return o 4895 }({1: [function (t, e, n) {}, {}], 2: [function (t, e, n) { 4896 function i(t) { 4897 if (t) { 4898 var e = /^#([a-fA-F0-9]{3})$/, n = /^#([a-fA-F0-9]{6})$/, i = /^rgba?\(\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/, o = /^rgba?\(\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/, a = /(\w+)/, r = [0, 0, 0], s = 1, l = t.match(e); 4899 if (l) { 4900 l = l[1]; 4901 for (u = 0; u < r.length; u++) 4902 r[u] = parseInt(l[u] + l[u], 16) 4903 } else if (l = t.match(n)) { 4904 l = l[1]; 4905 for (u = 0; u < r.length; u++) 4906 r[u] = parseInt(l.slice(2 * u, 2 * u + 2), 16) 4907 } else if (l = t.match(i)) { 4908 for (u = 0; u < r.length; u++) 4909 r[u] = parseInt(l[u + 1]); 4910 s = parseFloat(l[4]) 4911 }
4911 else if (l = t.match(o)) { 4912 for (u = 0; u < r.length; u++) 4913 r[u] = Math.round(2.55 * parseFloat(l[u + 1])); 4914 s = parseFloat(l[4]) 4915 } else if (l = t.match(a)) { 4916 if ("transparent" == l[1]) 4917 return[0, 0, 0, 0]; 4918 if (!(r = d[l[1]])) 4919 return 4920 } 4921 for (var u = 0; u < r.length; u++) 4922 r[u] = c(r[u], 0, 255); 4923 return s = s || 0 == s ? c(s, 0, 1) : 1, r[3] = s, r 4924 } 4925 } 4926 function o(t) { 4927 if (t) { 4928 var e = /^hsla?\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/, n = t.match(e); 4929 if (n) { 4930 var i = parseFloat(n[4]); 4931 return[c(parseInt(n[1]), 0, 360), c(parseFloat(n[2]), 0, 100), c(parseFloat(n[3]), 0, 100), c(isNaN(i) ? 1 : i, 0, 1)] 4932 } 4933 } 4934 } 4935 function a(t) { 4936 if (t) { 4937 var e = /^hwb\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/, n = t.match(e); 4938 if (n) { 4939 var i = parseFloat(n[4]); 4940 return[c(parseInt(n[1]), 0, 360), c(parseFloat(n[2]), 0, 100), c(parseFloat(n[3]), 0, 100), c(isNaN(i) ? 1 : i, 0, 1)] 4941 } 4942 } 4943 } 4944 function r(t, e) { 4945 return void 0 === e && (e = void 0 !== t[3] ? t[3] : 1), "rgba(" + t[0] + ", " + t[1] + ", " + t[2] + ", " + e + ")" 4946 } 4947 function s(t, e) { 4948 return"rgba(" + Math.round(t[0] / 255 * 100) + "%, " + Math.round(t[1] / 255 * 100) + "%, " + Math.round(t[2] / 255 * 100) + "%, " + (e || t[3] || 1) + ")" 4949 } 4950 function l(t, e) { 4951 return void 0 === e && (e = void 0 !== t[3] ? t[3] : 1), "hsla(" + t[0] + ", " + t[1] + "%, " + t[2] + "%, " + e + ")" 4952 } 4953 function c(t, e, n) { 4954 return Math.min(Math.max(e, t), n) 4955 } 4956 function u(t) { 4957 var e = t.toString(16).toUpperCase(); 4958 return e.length < 2 ? "0" + e : e 4959 } 4960 var d = t(6); 4961 e.exports = {getRgba: i, getHsla: o, getRgb: function (t) { 4962 var e = i(t); 4963 return e && e.slice(0, 3) 4964 }, getHsl: function (t) { 4965 var e = o(t); 4966 return e && e.slice(0, 3) 4967 }, getHwb: a, getAlpha: function (t) { 4968 var e = i(t); 4969 return e ? e[3] : (e = o(t)) ? e[3] : (e = a(t)) ? e[3] : void 0 4970 }, hexString: function (t) { 4971 return"#" + u(t[0]) + u(t[1]) + u(t[2]) 4972 }, rgbString: function (t, e) { 4973 return e < 1 || t[3] && t[3] < 1 ? r(t, e) : "rgb(" + t[0] + ", " + t[1] + ", " + t[2] + ")" 4974 }, rgbaString: r, percentString: function (t, e) { 4975 return e < 1 || t[3] && t[3] < 1 ? s(t, e) : "rgb(" + Math.round(t[0] / 255 * 100) + "%, " + Math.round(t[1] / 255 * 100) + "%, " + Math.round(t[2] / 255 * 100) + "%)" 4976 }, percentaString: s, hslString: function (t, e) { 4977 return e < 1 || t[3] && t[3] < 1 ? l(t, e) : "hsl(" + t[0] + ", " + t[1] + "%, " + t[2] + "%)" 4978 }, hslaString: l, hwbString: function (t, e) { 4979 return void 0 === e && (e = void 0 !== t[3] ? t[3] : 1), "hwb(" + t[0] + ", " + t[1] + "%, " + t[2] + "%" + (void 0 !== e && 1 !== e ? ", " + e : "") + ")" 4980 }, keyword: function (t) { 4981 return h[t.slice(0, 3)] 4982 }}; 4983 var h = {}; 4984 for (var p in d) 4985 h[d[p]] = p 4986 }, {6: 6}], 3: [function (t, e, n) { 4987 var i = t(5), o = t(2), a = function (t) { 4988 if (t instanceof a) 4989 return t; 4990 if (!(this instanceof a)) 4991 return new a(t); 4992 this.valid = !1, this.values = {rgb: [0, 0, 0], hsl: [0, 0, 0], hsv: [0, 0, 0], hwb: [0, 0, 0], cmyk: [0, 0, 0, 0], alpha: 1}; 4993 var e; 4994 "string" == typeof t ? (e = o.getRgba(t)) ? this.setValues("rgb", e) : (e = o.getHsla(t)) ? this.setValues("hsl", e) : (e = o.getHwb(t)) && this.setValues("hwb", e) : "object" == typeof t && (void 0 !== (e = t).r || void 0 !== e.red ? this.setValues("rgb", e) : void 0 !== e.l || void 0 !== e.lightness ? this.setValues("hsl", e) : void 0 !== e.v || void 0 !== e.value ? this.setValues("hsv", e) : void 0 !== e.w || void 0 !== e.whiteness ? this.setValues("hwb", e) : void 0 === e.c && void 0 === e.cyan || this.setValues("cmyk", e)) 4995 }; 4996 a.prototype = {isValid: function () { 4997 return this.valid 4998 }, rgb: function () { 4999 return this.setSpace("rgb", arguments) 5000 }, hsl: function () { 5001 return this.setSpace("hsl", arguments) 5002 }, hsv: function () { 5003 return this.setSpace("hsv", arguments) 5004 }, hwb: function () { 5005 return this.setSpace("hwb", arguments) 5006 }, cmyk: function () { 5007 return this.setSpace("cmyk", arguments) 5008 }, rgbArray: function () { 5009 return this.values.rgb 5010 }, hslArray: function () { 5011 return this.values.hsl 5012 }, hsvArray: function () { 5013 return this.values.hsv 5014 }, hwbArray: function () { 5015 var t = this.values; 5016 return 1 !== t.alpha ? t.hwb.concat([t.alpha]) : t.hwb 5017 }, cmykArray: function () { 5018 return this.values.cmyk 5019 }, rgbaArray: function () { 5020 var t = this.values; 5021 return t.rgb.concat([t.alpha]) 5022 }, hslaArray: function () { 5023 var t = this.values; 5024 return t.hsl.concat([t.alpha]) 5025 }, alpha: function (t) { 5026 return void 0 === t ? this.values.alpha : (this.setValues("alph
vendor: 5,771 bytes, lines 5026-5117
5026a", t), this) 5027 }, red: function (t) { 5028 return this.setChannel("rgb", 0, t) 5029 }, green: function (t) { 5030 return this.setChannel("rgb", 1, t) 5031 }, blue: function (t) { 5032 return this.setChannel("rgb", 2, t) 5033 }, hue: function (t) { 5034 return t && (t = (t %= 360) < 0 ? 360 + t : t), this.setChannel("hsl", 0, t) 5035 }, saturation: function (t) { 5036 return this.setChannel("hsl", 1, t) 5037 }, lightness: function (t) { 5038 return this.setChannel("hsl", 2, t) 5039 }, saturationv: function (t) { 5040 return this.setChannel("hsv", 1, t) 5041 }, whiteness: function (t) { 5042 return this.setChannel("hwb", 1, t) 5043 }, blackness: function (t) { 5044 return this.setChannel("hwb", 2, t) 5045 }, value: function (t) { 5046 return this.setChannel("hsv", 2, t) 5047 }, cyan: function (t) { 5048 return this.setChannel("cmyk", 0, t) 5049 }, magenta: function (t) { 5050 return this.setChannel("cmyk", 1, t) 5051 }, yellow: function (t) { 5052 return this.setChannel("cmyk", 2, t) 5053 }, black: function (t) { 5054 return this.setChannel("cmyk", 3, t) 5055 }, hexString: function () { 5056 return o.hexString(this.values.rgb) 5057 }, rgbString: function () { 5058 return o.rgbString(this.values.rgb, this.values.alpha) 5059 }, rgbaString: function () { 5060 return o.rgbaString(this.values.rgb, this.values.alpha) 5061 }, percentString: function () { 5062 return o.percentString(this.values.rgb, this.values.alpha) 5063 }, hslString: function () { 5064 return o.hslString(this.values.hsl, this.values.alpha) 5065 }, hslaString: function () { 5066 return o.hslaString(this.values.hsl, this.values.alpha) 5067 }, hwbString: function () { 5068 return o.hwbString(this.values.hwb, this.values.alpha) 5069 }, keyword: function () { 5070 return o.keyword(this.values.rgb, this.values.alpha) 5071 }, rgbNumber: function () { 5072 var t = this.values.rgb; 5073 return t[0] << 16 | t[1] << 8 | t[2] 5074 }, luminosity: function () { 5075 for (var t = this.values.rgb, e = [], n = 0; n < t.length; n++) { 5076 var i = t[n] / 255; 5077 e[n] = i <= .03928 ? i / 12.92 : Math.pow((i + .055) / 1.055, 2.4) 5078 } 5079 return.2126 * e[0] + .7152 * e[1] + .0722 * e[2] 5080 }, contrast: function (t) { 5081 var e = this.luminosity(), n = t.luminosity(); 5082 return e > n ? (e + .05) / (n + .05) : (n + .05) / (e + .05) 5083 }, level: function (t) { 5084 var e = this.contrast(t); 5085 return e >= 7.1 ? "AAA" : e >= 4.5 ? "AA" : "" 5086 }, dark: function () { 5087 var t = this.values.rgb; 5088 return(299 * t[0] + 587 * t[1] + 114 * t[2]) / 1e3 < 128 5089 }, light: function () { 5090 return!this.dark() 5091 }, negate: function () { 5092 for (var t = [], e = 0; e < 3; e++) 5093 t[e] = 255 - this.values.rgb[e]; 5094 return this.setValues("rgb", t), this 5095 }, lighten: function (t) { 5096 var e = this.values.hsl; 5097 return e[2] += e[2] * t, this.setValues("hsl", e), this 5098 }, darken: function (t) { 5099 var e = this.values.hsl; 5100 return e[2] -= e[2] * t, this.setValues("hsl", e), this 5101 }, saturate: function (t) { 5102 var e = this.values.hsl; 5103 return e[1] += e[1] * t, this.setValues("hsl", e), this 5104 }, desaturate: function (t) { 5105 var e = this.values.hsl; 5106 return e[1] -= e[1] * t, this.setValues("hsl", e), this 5107 }, whiten: function (t) { 5108 var e = this.values.hwb; 5109 return e[1] += e[1] * t, this.setValues("hwb", e), this 5110 }, blacken: function (t) { 5111 var e = this.values.hwb; 5112 return e[2] += e[2] * t, this.setValues("hwb", e), this 5113 }, greyscale: function () { 5114 var t = this.values.rgb, e = .3 * t[0] + .59 * t[1] + .11 * t[2]; 5115 return this.setValues("rgb", [e, e, e]), this 5116 }, clearer: function (t) { 5117 var e = this.values.alpha;
vendor: 4,087 bytes, lines 5118-5171
5118 return this.setValues("alpha", e - e * t), this 5119 }, opaquer: function (t) { 5120 var e = this.values.alpha; 5121 return this.setValues("alpha", e + e * t), this 5122 }, rotate: function (t) { 5123 var e = this.values.hsl, n = (e[0] + t) % 360; 5124 return e[0] = n < 0 ? 360 + n : n, this.setValues("hsl", e), this 5125 }, mix: function (t, e) { 5126 var n = this, i = t, o = void 0 === e ? .5 : e, a = 2 * o - 1, r = n.alpha() - i.alpha(), s = ((a * r == -1 ? a : (a + r) / (1 + a * r)) + 1) / 2, l = 1 - s; 5127 return this.rgb(s * n.red() + l * i.red(), s * n.green() + l * i.green(), s * n.blue() + l * i.blue()).alpha(n.alpha() * o + i.alpha() * (1 - o)) 5128 }, toJSON: function () { 5129 return this.rgb() 5130 }, clone: function () { 5131 var t, e, n = new a, i = this.values, o = n.values; 5132 for (var r in i) 5133 i.hasOwnProperty(r) && (t = i[r], "[object Array]" === (e = {}.toString.call(t)) ? o[r] = t.slice(0) : "[object Number]" === e ? o[r] = t : console.error("unexpected color value:", t)); 5134 return n 5135 }}, a.prototype.spaces = {rgb: ["red", "green", "blue"], hsl: ["hue", "saturation", "lightness"], hsv: ["hue", "saturation", "value"], hwb: ["hue", "whiteness", "blackness"], cmyk: ["cyan", "magenta", "yellow", "black"]}, a.prototype.maxes = {rgb: [255, 255, 255], hsl: [360, 100, 100], hsv: [360, 100, 100], hwb: [360, 100, 100], cmyk: [100, 100, 100, 100]}, a.prototype.getValues = function (t) { 5136 for (var e = this.values, n = {}, i = 0; i < t.length; i++) 5137 n[t.charAt(i)] = e[t][i]; 5138 return 1 !== e.alpha && (n.a = e.alpha), n 5139 }, a.prototype.setValues = function (t, e) { 5140 var n, o = this.values, a = this.spaces, r = this.maxes, s = 1; 5141 if (this.valid = !0, "alpha" === t) 5142 s = e; 5143 else if (e.length) 5144 o[t] = e.slice(0, t.length), s = e[t.length]; 5145 else if (void 0 !== e[t.charAt(0)]) { 5146 for (n = 0; n < t.length; n++) 5147 o[t][n] = e[t.charAt(n)]; 5148 s = e.a 5149 } else if (void 0 !== e[a[t][0]]) { 5150 var l = a[t]; 5151 for (n = 0; n < t.length; n++) 5152 o[t][n] = e[l[n]]; 5153 s = e.alpha 5154 } 5155 if (o.alpha = Math.max(0, Math.min(1, void 0 === s ? o.alpha : s)), "alpha" === t) 5156 return!1; 5157 var c; 5158 for (n = 0; n < t.length; n++) 5159 c = Math.max(0, Math.min(r[t][n], o[t][n])), o[t][n] = Math.round(c); 5160 for (var u in a) 5161 u !== t && (o[u] = i[t][u](o[t])); 5162 return!0 5163 }, a.prototype.setSpace = function (t, e) { 5164 var n = e[0]; 5165 return void 0 === n ? this.getValues(t) : ("number" == typeof n && (n = Array.prototype.slice.call(e)), this.setValues(t, n), this) 5166 }, a.prototype.setChannel = function (t, e, n) { 5167 var i = this.values[t]; 5168 return void 0 === n ? i[e] : n === i[e] ? this : (i[e] = n, this.setValues(t, i), this) 5169 }, "undefined" != typeof window && (window.Color = a), e.exports = a 5170 }, {2: 2, 5: 5}], 4: [function (t, e, n) { 5171 function i(t) {
5172 var e, n, i, o = t[0] / 255, a = t[1] / 255, r = t[2] / 255, s = Math.min(o, a, r), l = Math.max(o, a, r), c = l - s; 5173 return l == s ? e = 0 : o == l ? e = (a - r) / c : a == l ? e = 2 + (r - o) / c : r == l && (e = 4 + (o - a) / c), (e = Math.min(60 * e, 360)) < 0 && (e += 360), i = (s + l) / 2, n = l == s ? 0 : i <= .5 ? c / (l + s) : c / (2 - l - s), [e, 100 * n, 100 * i] 5174 } 5175 function o(t) { 5176 var e, n, i, o = t[0], a = t[1], r = t[2], s = Math.min(o, a, r), l = Math.max(o, a, r), c = l - s; 5177 return n = 0 == l ? 0 : c / l * 1e3 / 10, l == s ? e = 0 : o == l ? e = (a - r) / c : a == l ? e = 2 + (r - o) / c : r == l && (e = 4 + (o - a) / c), (e = Math.min(60 * e, 360)) < 0 && (e += 360), i = l / 255 * 1e3 / 10, [e, n, i] 5178 } 5179 function a(t) { 5180 var e = t[0], n = t[1], o = t[2]; 5181 return[i(t)[0], 100 * (1 / 255 * Math.min(e, Math.min(n, o))), 100 * (o = 1 - 1 / 255 * Math.max(e, Math.max(n, o)))] 5182 } 5183 function s(t) { 5184 var e, n, i, o, a = t[0] / 255, r = t[1] / 255, s = t[2] / 255; 5185 return o = Math.min(1 - a, 1 - r, 1 - s), e = (1 - a - o) / (1 - o) || 0, n = (1 - r - o) / (1 - o) || 0, i = (1 - s - o) / (1 - o) || 0, [100 * e, 100 * n, 100 * i, 100 * o] 5186 } 5187 function l(t) { 5188 return T[JSON.stringify(t)] 5189 } 5190 function c(t) {
5191 var e = t[0] / 255, n = t[1] / 255, i = t[2] / 255; 5192 return[100 * (.4124 * (e = e > .04045 ? Math.pow((e + .055) / 1.055, 2.4) : e / 12.92) + .3576 * (n = n > .04045 ? Math.pow((n + .055) / 1.055, 2.4) : n / 12.92) + .1805 * (i = i > .04045 ? Math.pow((i + .055) / 1.055, 2.4) : i / 12.92)), 100 * (.2126 * e + .7152 * n + .0722 * i), 100 * (.0193 * e + .1192 * n + .9505 * i)] 5193 } 5194 function u(t) { 5195 var e, n, i, o = c(t), a = o[0], r = o[1], s = o[2]; 5196 return a /= 95.047, r /= 100, s /= 108.883, a = a > .008856 ? Math.pow(a, 1 / 3) : 7.787 * a + 16 / 116, r = r > .008856 ? Math.pow(r, 1 / 3) : 7.787 * r + 16 / 116, s = s > .008856 ? Math.pow(s, 1 / 3) : 7.787 * s + 16 / 116, e = 116 * r - 16, n = 500 * (a - r), i = 200 * (r - s), [e, n, i] 5197 } 5198 function d(t) { 5199 var e, n, i, o, a, r = t[0] / 360, s = t[1] / 100, l = t[2] / 100; 5200 if (0 == s) 5201 return a = 255 * l, [a, a, a]; 5202 e = 2 * l - (n = l < .5 ? l * (1 + s) : l + s - l * s), o = [0, 0, 0]; 5203 for (var c = 0; c < 3; c++) 5204 (i = r + 1 / 3 * -(c - 1)) < 0 && i++, i > 1 && i--, a = 6 * i < 1 ? e + 6 * (n - e) * i : 2 * i < 1 ? n : 3 * i < 2 ? e + (n - e) * (2 / 3 - i) * 6 : e, o[c] = 255 * a; 5205 return o 5206 } 5207 function h(t) { 5208 var e = t[0] / 60, n = t[1] / 100, i = t[2] / 100, o = Math.floor(e) % 6, a = e - Math.floor(e), r = 255 * i * (1 - n), s = 255 * i * (1 - n * a), l = 255 * i * (1 - n * (1 - a)), i = 255 * i; 5209 switch (o) { 5210 case 0: 5211 return[i, l, r]; 5212 case 1: 5213 return[s, i, r]; 5214 case 2: 5215 return[r, i, l]; 5216 case 3: 5217 return[r, s, i]; 5218 case 4: 5219 return[l, r, i]; 5220 case 5: 5221 return[i, r, s] 5222 } 5223 } 5224 function p(t) { 5225 var e, n, i, o, a = t[0] / 360, s = t[1] / 100, l = t[2] / 100, c = s + l; 5226 switch (c > 1 && (s /= c, l /= c), e = Math.floor(6 * a), n = 1 - l, i = 6 * a - e, 0 != (1 & e) && (i = 1 - i), o = s + i * (n - s), e) { 5227 default: 5228 case 6: 5229 case 0: 5230 r = n, g = o, b = s; 5231 break; 5232 case 1: 5233 r = o, g = n, b = s; 5234 break; 5235 case 2: 5236 r = s, g = n, b = o; 5237 break; 5238 case 3: 5239 r = s, g = o, b = n; 5240 break; 5241 case 4: 5242 r = o, g = s, b = n; 5243 break; 5244 case 5: 5245 r = n, g = s, b = o 5246 } 5247 return[255 * r, 255 * g, 255 * b] 5248 } 5249 function f(t) { 5250 var e, n, i, o = t[0] / 100, a = t[1] / 100, r = t[2] / 100, s = t[3] / 100; 5251 return e = 1 - Math.min(1, o * (1 - s) + s), n = 1 - Math.min(1, a * (1 - s) + s), i = 1 - Math.min(1, r * (1 - s) + s), [255 * e, 255 * n, 255 * i] 5252 } 5253 function m(t) { 5254 var e, n, i, o = t[0] / 100, a = t[1] / 100, r = t[2] / 100; 5255 return e = 3.2406 * o + -1.5372 * a + -.4986 * r, n = -.9689 * o + 1.8758 * a + .0415 * r, i = .0557 * o + -.204 * a + 1.057 * r, e = e > .0031308 ? 1.055 * Math.pow(e, 1 / 2.4) - .055 : e *= 12.92, n = n > .0031308 ? 1.055 * Math.pow(n, 1 / 2.4) - .055 : n *= 12.92, i = i > .0031308 ? 1.055 * Math.pow(i, 1 / 2.4) - .055 : i *= 12.92, e = Math.min(Math.max(0, e), 1), n = Math.min(Math.max(0, n), 1), i = Math.min(Math.max(0, i), 1), [255 * e, 255 * n, 255 * i] 5256 } 5257 function v(t) { 5258 var e, n, i, o = t[0], a = t[1], r = t[2]; 5259 return o /= 95.047, a /= 100, r /= 108.883, o = o > .008856 ? Math.pow(o, 1 / 3) : 7.787 * o + 16 / 116, a = a > .008856 ? Math.pow(a, 1 / 3) : 7.787 * a + 16 / 116, r = r > .008856 ? Math.pow(r, 1 / 3) : 7.787 * r + 16 / 116, e = 116 * a - 16, n = 500 * (o - a), i = 200 * (a - r), [e, n, i] 5260 } 5261 function y(t) { 5262 var e, n, i, o, a = t[0], r = t[1], s = t[2]; 5263 return a <= 8 ? o = (n = 100 * a / 903.3) / 100 * 7.787 + 16 / 116 : (n = 100 * Math.pow((a + 16) / 116, 3), o = Math.pow(n / 100, 1 / 3)), e = e / 95.047 <= .008856 ? e = 95.047 * (r / 500 + o - 16 / 116) / 7.787 : 95.047 * Math.pow(r / 500 + o, 3), i = i / 108.883 <= .008859 ? i = 108.883 * (o - s / 200 - 16 / 116) / 7.787 : 108.883 * Math.pow(o - s / 200, 3), [e, n, i] 5264 } 5265 function x(t) { 5266 var e, n, i, o = t[0], a = t[1], r = t[2]; 5267 return e = Math.atan2(r, a), (n = 360 * e / 2 / Math.PI) < 0 && (n += 360), i = Math.sqrt(a * a + r * r), [o, i, n] 5268 } 5269 function w(t) { 5270 return m(y(t)) 5271 } 5272 function k(t) { 5273 var e, n, i, o = t[0], a = t[1]; 5274 return i = t[2] / 360 * 2 * Math.PI, e = a * Math.cos(i), n = a * Math.sin(i), [o, e, n] 5275 } 5276 function C(t) { 5277 return S[t] 5278 } 5279 e.exports = {rgb2hsl: i, rgb2hsv: o, rgb2hwb: a, rgb2cmyk: s, rgb2keyword: l, rgb2xyz: c, rgb2lab: u, rgb2lch: function (t) { 5280 return x(u(t)) 5281 }, hsl2rgb: d, hsl2hsv: function (t) { 5282 var e, n, i = t[0], o = t[1] / 100, a = t[2] / 100; 5283 return 0 === a ? [0, 0, 0] : (a *= 2, o *= a <= 1 ? a : 2 - a, n = (a + o) / 2, e = 2 * o / (a + o), [i, 100 * e, 100 * n]) 5284 }, hsl2hwb: function (t) { 5285 return a(d(t)) 5286 }, hsl2cmyk: function (t) { 5287 return s(d(t)) 5288 }, hsl2keyword: function (t) { 5289 return l(d(t)) 5290 }, hsv2rgb: h, hsv2hsl: function (t) { 5291 var e, n, i = t[0], o = t[1] / 100, a = t[2] / 100; 5292 return n = (2 - o) * a, e = o * a, e /= n <= 1 ? n : 2 - n, e = e || 0, n /= 2, [i, 100 * e, 100 * n] 5293 }, hsv2hwb: function (t) { 5294 return a(h(t)) 5295 }, hsv2cmyk: function (t) { 5296 return s(h(t)) 5297 }, hsv2keyword: function (t) { 5298 return l(h(t)) 5299 }, hwb2rgb: p, hwb2hsl: function (t) { 5300 return i(p(t)) 5301 }, hwb2hsv: function (t) { 5302 return o(p(t)) 5303 }, hwb2cmyk: function (t) { 5304 return s(p(t)) 5305 }, hwb2keyword: function (t) { 5306 return l(p(t)) 5307 }, cmyk2rgb: f, cmyk2hsl: function (t) { 5308 return i(f(t)) 5309 }, cmyk2hsv: function (t) { 5310 return o(f(t)) 5311 }, cmyk2hwb: function (t) { 5312 return a(f(t)) 5313 }, cmyk2keyword: function (t) { 5314 return l(f(t)) 5315 }, keyword2rgb: C, keyword2hsl: function (t) { 5316 return i(C(t)) 5317 }, keyword2hsv: function (t) { 5318 return o(C(t)) 5319 }, keyword2hwb: function (t) { 5320 return a(C(t)) 5321 }, keyword2cmyk: function (t) { 5322 return s(C(t)) 5323 }, keyword2lab: function (t) { 5324 return u(C(t)) 5325 }, keyword2xyz: function (t) { 5326 return c(C(t)) 5327 }, xyz2rgb: m, xyz2lab: v, xyz2lch: function (t) { 5328 return x(v(t)) 5329 }, lab2xyz: y, lab2rgb: w, lab2lch: x, lch2lab: k, lch2xyz: function (t) { 5330 return y(k(t)) 5331 }, lch2rgb: function (t) { 5332 return w(k(t)) 5333 }}; 5334 var S = {aliceblue: [240, 248, 255], antiquewhite: [250, 235, 215], aqua: [0, 255, 255], aquamarine: [127, 255, 212], azure: [240, 255, 255], beige: [245, 245, 220], bisque: [255, 228, 196], black: [0, 0, 0], blanchedalmond: [255, 235, 205], blue: [0, 0, 255], blueviolet: [138, 43, 226], brown: [165, 42, 42], burlywood: [222, 184, 135], cadetblue: [95, 158, 160], chartreuse: [127, 255, 0], chocolate: [210, 105, 30], coral: [255, 127, 80], cornflowerblue: [100, 149, 237], cornsilk: [255, 248, 220], crimson: [220, 20, 60], cyan: [0, 255, 255], darkblue: [0, 0, 139], darkcyan: [0, 139, 139], darkgoldenrod: [184, 134, 11], darkgray: [169, 169, 169], darkgreen: [0, 100, 0], darkgrey: [169, 169, 169], darkkhaki: [189, 183, 107], darkmagenta: [139, 0, 139], darkolivegreen: [85, 107, 47], darkorange: [255, 140, 0], darkorchid: [153, 50, 204], darkred: [139, 0, 0], darksalmon: [233, 150, 122], darkseagreen: [143, 188, 143], darkslateblue: [72, 61, 139], darkslategray: [47, 79, 79], darkslategrey: [47, 79, 79], darkturquoise: [0, 206, 209], darkviolet: [148, 0, 211], deeppink: [255, 20, 147], deepskyblue: [0, 191, 255], dimgray: [105, 105, 105], dimgrey: [105, 105, 105], dodgerblue: [30, 144, 255], firebrick: [178, 34, 34], floralwhite: [255, 250, 240], forestgreen: [34, 139, 34], fuchsia: [255, 0, 255], gainsboro: [220, 220, 220], ghostwhite: [248, 248, 255], gold: [255, 215, 0], goldenrod: [218, 165, 32], gray: [128, 128, 128], green: [0, 128, 0], greenyellow: [173, 255, 47], grey: [128, 128, 128], honeydew: [240, 255, 240], hotpink: [255, 105, 180], indianred: [205, 92, 92], indigo: [75, 0, 130], ivory: [255, 255, 240], khaki: [240, 230, 140], lavender: [230, 230, 250], lavenderblush: [255, 240, 245], lawngreen: [124, 252, 0], lemonchiffon: [255, 250, 205], lightblue: [173, 216, 230], lightcoral: [240, 128, 128], lightcyan: [224, 255, 255], lightgoldenrodyellow: [250, 250, 210], lightgray: [211, 211, 211], lightgreen: [144, 238, 144], lightgrey: [211, 211, 211], lightpink: [255, 182, 193], lightsalmon: [255, 160, 122], lightseagreen: [32, 178, 170], lightskyblue: [135, 206, 250], lightslategray: [119, 136, 153], lightslategrey: [119, 136, 153], lightsteelblue: [176, 196, 222], lightyellow: [255, 255, 224], lime: [0, 255, 0], limegreen: [50, 205, 50], linen: [250, 240, 230], magenta: [255, 0, 255], maroon: [128, 0, 0], mediumaquamarine: [102, 205, 170], mediumblue: [0, 0, 205], mediumorchid: [186, 85, 211], mediumpurple: [147, 112, 219], mediumseagreen: [60, 179, 113], mediumslateblue: [123, 104, 238], mediumspringgreen: [0, 250, 154], mediumturquoise: [72, 209, 204], mediumvioletred: [199, 21, 133], midnightblue: [25, 25, 112], mintcream: [245, 255, 250], mistyrose: [255, 228, 225], moccasin: [255, 228, 181], navajowhite: [255, 222, 173], navy: [0, 0, 128], oldlace: [253, 245, 230], olive: [128, 128, 0], olivedrab: [107, 142, 35], orange: [255, 165, 0], orangered: [255, 69, 0], orchid: [218, 112, 214], palegoldenrod: [238, 232, 170], palegreen: [152, 251, 152], paleturquoise: [175, 238, 238], palevioletred: [219, 112, 147], papayawhip: [255, 239, 213], peachpuff: [255, 218, 185], peru: [205, 133, 63], pink: [255, 192, 203], plum: [221, 160, 221], powderblue: [176, 224, 230], purple: [128, 0, 128], rebeccapurple: [102, 51, 153], red: [255, 0, 0], rosybrown: [188, 143, 143], royalblue: [65, 105, 225], saddlebrown: [139, 69, 19], salmon: [250, 128, 114], sandybrown: [244, 164, 96], seagreen: [46, 139, 87], seashell: [255, 245, 238], sienna: [160, 82, 45], silver: [192, 192, 192], skyblue: [135, 206, 235], slateblue: [106, 90, 205], slategray: [112, 128, 144], slategrey: [112, 128, 144], snow: [255, 250, 250], springgreen: [0, 255, 127], steelblue: [70, 130, 180], tan: [210, 180, 140], teal: [0, 128, 128], thistle: [216, 191, 216], tomato: [255, 99, 71], turquoise: [64, 224, 208], violet: [238, 130, 238], wheat: [245, 222, 179], white: [255, 255, 255], whitesmoke: [245, 245, 245], yellow: [255, 255, 0], yellowgreen: [154, 205, 50]}, T = {}; 5335 for (var M in S) 5336 T[JSON.stringify(S[M])] = M 5337 }, {}], 5: [function (t, e, n) { 5338 var i = t(4), o = function () { 5339 return new c 5340 }; 5341 for (var a in i) { 5342 o[a + "Raw"] = function (t) { 5343 return function (e) { 5344 return"number" == typeof e && (e = Array.prototype.slice.call(arguments)), i[t](e) 5345 } 5346 }(a); 5347 var r = /(\w+)2(\w+)/.exec(a), s = r[1], l = r[2]; 5348 (o[s] = o[s] || {})[l] = o[a] = function (t) { 5349 return function (e) { 5350 "number" == typeof e && (e = Array.prototype.slice.call(arguments)); 5351 var n = i[t](e); 5352 if ("string" == typeof n || void 0 === n) 5353 return n; 5354 for (var o = 0; o < n.length; o++) 5355 n[o] = Math.round(n[o]); 5356 return n 5357 } 5358 }(a) 5359 } 5360 var c = function () { 5361 this.convs = {} 5362 }; 5363 c.prototype.routeSpace = function (t, e) { 5364 var n = e[0];
vendor: 5,472 bytes, lines 5365-5384
5365 return void 0 === n ? this.getValues(t) : ("number" == typeof n && (n = Array.prototype.slice.call(e)), this.setValues(t, n)) 5366 }, c.prototype.setValues = function (t, e) { 5367 return this.space = t, this.convs = {}, this.convs[t] = e, this 5368 }, c.prototype.getValues = function (t) { 5369 var e = this.convs[t]; 5370 if (!e) { 5371 var n = this.space, i = this.convs[n]; 5372 e = o[n][t](i), this.convs[t] = e 5373 } 5374 return e 5375 }, ["rgb", "hsl", "hsv", "cmyk", "keyword"].forEach(function (t) { 5376 c.prototype[t] = function (e) { 5377 return this.routeSpace(t, arguments) 5378 } 5379 }), e.exports = o 5380 }, {4: 4}], 6: [function (t, e, n) { 5381 e.exports = {aliceblue: [240, 248, 255], antiquewhite: [250, 235, 215], aqua: [0, 255, 255], aquamarine: [127, 255, 212], azure: [240, 255, 255], beige: [245, 245, 220], bisque: [255, 228, 196], black: [0, 0, 0], blanchedalmond: [255, 235, 205], blue: [0, 0, 255], blueviolet: [138, 43, 226], brown: [165, 42, 42], burlywood: [222, 184, 135], cadetblue: [95, 158, 160], chartreuse: [127, 255, 0], chocolate: [210, 105, 30], coral: [255, 127, 80], cornflowerblue: [100, 149, 237], cornsilk: [255, 248, 220], crimson: [220, 20, 60], cyan: [0, 255, 255], darkblue: [0, 0, 139], darkcyan: [0, 139, 139], darkgoldenrod: [184, 134, 11], darkgray: [169, 169, 169], darkgreen: [0, 100, 0], darkgrey: [169, 169, 169], darkkhaki: [189, 183, 107], darkmagenta: [139, 0, 139], darkolivegreen: [85, 107, 47], darkorange: [255, 140, 0], darkorchid: [153, 50, 204], darkred: [139, 0, 0], darksalmon: [233, 150, 122], darkseagreen: [143, 188, 143], darkslateblue: [72, 61, 139], darkslategray: [47, 79, 79], darkslategrey: [47, 79, 79], darkturquoise: [0, 206, 209], darkviolet: [148, 0, 211], deeppink: [255, 20, 147], deepskyblue: [0, 191, 255], dimgray: [105, 105, 105], dimgrey: [105, 105, 105], dodgerblue: [30, 144, 255], firebrick: [178, 34, 34], floralwhite: [255, 250, 240], forestgreen: [34, 139, 34], fuchsia: [255, 0, 255], gainsboro: [220, 220, 220], ghostwhite: [248, 248, 255], gold: [255, 215, 0], goldenrod: [218, 165, 32], gray: [128, 128, 128], green: [0, 128, 0], greenyellow: [173, 255, 47], grey: [128, 128, 128], honeydew: [240, 255, 240], hotpink: [255, 105, 180], indianred: [205, 92, 92], indigo: [75, 0, 130], ivory: [255, 255, 240], khaki: [240, 230, 140], lavender: [230, 230, 250], lavenderblush: [255, 240, 245], lawngreen: [124, 252, 0], lemonchiffon: [255, 250, 205], lightblue: [173, 216, 230], lightcoral: [240, 128, 128], lightcyan: [224, 255, 255], lightgoldenrodyellow: [250, 250, 210], lightgray: [211, 211, 211], lightgreen: [144, 238, 144], lightgrey: [211, 211, 211], lightpink: [255, 182, 193], lightsalmon: [255, 160, 122], lightseagreen: [32, 178, 170], lightskyblue: [135, 206, 250], lightslategray: [119, 136, 153], lightslategrey: [119, 136, 153], lightsteelblue: [176, 196, 222], lightyellow: [255, 255, 224], lime: [0, 255, 0], limegreen: [50, 205, 50], linen: [250, 240, 230], magenta: [255, 0, 255], maroon: [128, 0, 0], mediumaquamarine: [102, 205, 170], mediumblue: [0, 0, 205], mediumorchid: [186, 85, 211], mediumpurple: [147, 112, 219], mediumseagreen: [60, 179, 113], mediumslateblue: [123, 104, 238], mediumspringgreen: [0, 250, 154], mediumturquoise: [72, 209, 204], mediumvioletred: [199, 21, 133], midnightblue: [25, 25, 112], mintcream: [245, 255, 250], mistyrose: [255, 228, 225], moccasin: [255, 228, 181], navajowhite: [255, 222, 173], navy: [0, 0, 128], oldlace: [253, 245, 230], olive: [128, 128, 0], olivedrab: [107, 142, 35], orange: [255, 165, 0], orangered: [255, 69, 0], orchid: [218, 112, 214], palegoldenrod: [238, 232, 170], palegreen: [152, 251, 152], paleturquoise: [175, 238, 238], palevioletred: [219, 112, 147], papayawhip: [255, 239, 213], peachpuff: [255, 218, 185], peru: [205, 133, 63], pink: [255, 192, 203], plum: [221, 160, 221], powderblue: [176, 224, 230], purple: [128, 0, 128], rebeccapurple: [102, 51, 153], red: [255, 0, 0], rosybrown: [188, 143, 143], royalblue: [65, 105, 225], saddlebrown: [139, 69, 19], salmon: [250, 128, 114], sandybrown: [244, 164, 96], seagreen: [46, 139, 87], seashell: [255, 245, 238], sienna: [160, 82, 45], silver: [192, 192, 192], skyblue: [135, 206, 235], slateblue: [106, 90, 205], slategray: [112, 128, 144], slategrey: [112, 128, 144], snow: [255, 250, 250], springgreen: [0, 255, 127], steelblue: [70, 130, 180], tan: [210, 180, 140], teal: [0, 128, 128], thistle: [216, 191, 216], tomato: [255, 99, 71], turquoise: [64, 224, 208], violet: [238, 130, 238], wheat: [245, 222, 179], white: [255, 255, 255], whitesmoke: [245, 245, 245], yellow: [255, 255, 0], yellowgreen: [154, 205, 50]} 5382 }, {}], 7: [function (t, e, n) { 5383 var i = t(28)(); 5384 t(26)(i), t(40)(i), t(22)(i), t(25)(i), t(30)(i), t(21)(i), t(23)(i), t(24)(i), t(29)(i), t(32)(i), t(33)(i), t(31)(i), t(27)(i), t(34)(i), t(35)(i), t(36)(i), t(37)(i), t(38)(i), t(46)(i), t(44)(i), t(45)(i), t(47)(i), t(48)(i), t(49)(i), t(15)(i), t(16)(i), t(17)(i), t(18)(i), t(19)(i), t(20)(i), t(8)(i), t(9)(i), t(10)(i), t(11)(i), t(12)(i), t(13)(i), t(14)(i);
5385 var o = []; 5386 o.push(t(41)(i), t(42)(i), t(43)(i)), i.plugins.register(o), e.exports = i, "undefined" != typeof window && (window.Chart = i) 5387 }, {10: 10, 11: 11, 12: 12, 13: 13, 14: 14, 15: 15, 16: 16, 17: 17, 18: 18, 19: 19, 20: 20, 21: 21, 22: 22, 23: 23, 24: 24, 25: 25, 26: 26, 27: 27, 28: 28, 29: 29, 30: 30, 31: 31, 32: 32, 33: 33, 34: 34, 35: 35, 36: 36, 37: 37, 38: 38, 40: 40, 41: 41, 42: 42, 43: 43, 44: 44, 45: 45, 46: 46, 47: 47, 48: 48, 49: 49, 8: 8, 9: 9}], 8: [function (t, e, n) { 5388 "use strict"; 5389 e.exports = function (t) { 5390 t.Bar = function (e, n) { 5391 return n.type = "bar", new t(e, n) 5392 } 5393 } 5394 }, {}], 9: [function (t, e, n) { 5395 "use strict"; 5396 e.exports = function (t) { 5397 t.Bubble = function (e, n) { 5398 return n.type = "bubble", new t(e, n) 5399 } 5400 } 5401 }, {}], 10: [function (t, e, n) { 5402 "use strict"; 5403 e.exports = function (t) { 5404 t.Doughnut = function (e, n) { 5405 return n.type = "doughnut", new t(e, n) 5406 } 5407 } 5408 }, {}], 11: [function (t, e, n) { 5409 "use strict"; 5410 e.exports = function (t) { 5411 t.Line = function (e, n) { 5412 return n.type = "line", new t(e, n) 5413 } 5414 } 5415 }, {}], 12: [function (t, e, n) { 5416 "use strict"; 5417 e.exports = function (t) { 5418 t.PolarArea = function (e, n) { 5419 return n.type = "polarArea", new t(e, n) 5420 } 5421 } 5422 }, {}], 13: [function (t, e, n) { 5423 "use strict"; 5424 e.exports = function (t) { 5425 t.Radar = function (e, n) { 5426 return n.type = "radar", new t(e, n) 5427 } 5428 } 5429 }, {}], 14: [function (t, e, n) { 5430 "use strict"; 5431 e.exports = function (t) { 5432 var e = {hover: {mode: "single"}, scales: {xAxes: [{type: "linear", position: "bottom", id: "x-axis-1"}], yAxes: [{type: "linear", position: "left", id: "y-axis-1"}]}, tooltips: {callbacks: {title: function () { 5433 return"" 5434 }, label: function (t) { 5435 return"(" + t.xLabel + ", " + t.yLabel + ")" 5436 }}}}; 5437 t.defaults.scatter = e, t.controllers.scatter = t.controllers.line, t.Scatter = function (e, n) { 5438 return n.type = "scatter", new t(e, n) 5439 } 5440 } 5441 }, {}], 15: [function (t, e, n) { 5442 "use strict"; 5443 e.exports = function (t) { 5444 var e = t.helpers; 5445 t.defaults.bar = {hover: {mode: "label"}, scales: {xAxes: [{type: "category", categoryPercentage: .8, barPercentage: .9, gridLines: {offsetGridLines: !0}}], yAxes: [{type: "linear"}]}}, t.controllers.bar = t.DatasetController.extend({dataElementType: t.elements.Rectangle, initialize: function () { 5446 var e, n = this; 5447 t.DatasetController.prototype.initialize.apply(n, arguments), (e = n.getMeta()).stack = n.getDataset().stack, e.bar = !0 5448 }, update: function (t) { 5449 var e, n, i = this, o = i.getMeta().data; 5450 for (i._ruler = i.getRuler(), e = 0, n = o.length; e < n; ++e) 5451 i.updateElement(o[e], e, t) 5452 }, updateElement: function (t, n, i) { 5453 var o = this, a = o.chart, r = o.getMeta(), s = o.getDataset(), l = t.custom || {}, c = a.options.elements.rectangle; 5454 t._xScale = o.getScaleForId(r.xAxisID), t._yScale = o.getScaleForId(r.yAxisID), t._datasetIndex = o.index, t._index = n, t._model = {datasetLabel: s.label, label: a.data.labels[n], borderSkipped: l.borderSkipped ? l.borderSkipped : c.borderSkipped, backgroundColor: l.backgroundColor ? l.backgroundColor : e.getValueAtIndexOrDefault(s.backgroundColor, n, c.backgroundColor), borderColor: l.borderColor ? l.borderColor : e.getValueAtIndexOrDefault(s.borderColor, n, c.borderColor), borderWidth: l.borderWidth ? l.borderWidth : e.getValueAtIndexOrDefault(s.borderWidth, n, c.borderWidth)}, o.updateElementGeometry(t, n, i), t.pivot() 5455 }, updateElementGeometry: function (t, e, n) { 5456 var i = this, o = t._model, a = i.getValueScale(), r = a.getBasePixel(), s = a.isHorizontal(), l = i._ruler || i.getRuler(), c = i.calculateBarValuePixels(i.index, e), u = i.calculateBarIndexPixels(i.index, e, l); 5457 o.horizontal = s, o.base = n ? r : c.base, o.x = s ? n ? r : c.head : u.center, o.y = s ? u.center : n ? r : c.head, o.height = s ? u.size : void 0, o.width = s ? void 0 : u.size 5458 }, getValueScaleId: function () { 5459 return this.getMeta().yAxisID 5460 }, getIndexScaleId: function () { 5461 return this.getMeta().xAxisID 5462 }, getValueScale: function () {
5463 return this.getScaleForId(this.getValueScaleId()) 5464 }, getIndexScale: function () { 5465 return this.getScaleForId(this.getIndexScaleId()) 5466 }, getStackCount: function (t) { 5467 var e, n, i = this, o = i.chart, a = i.getIndexScale().options.stacked, r = void 0 === t ? o.data.datasets.length : t + 1, s = []; 5468 for (e = 0; e < r; ++e) 5469 (n = o.getDatasetMeta(e)).bar && o.isDatasetVisible(e) && (!1 === a || !0 === a && -1 === s.indexOf(n.stack) || void 0 === a && (void 0 === n.stack || -1 === s.indexOf(n.stack))) && s.push(n.stack); 5470 return s.length 5471 }, getStackIndex: function (t) { 5472 return this.getStackCount(t) - 1 5473 }, getRuler: function () { 5474 var t = this, n = t.getIndexScale(), i = n.options, o = t.getStackCount(), a = (n.isHorizontal() ? n.width : n.height) / n.ticks.length, r = a * i.categoryPercentage, s = r / o, l = s * i.barPercentage; 5475 return l = Math.min(e.getValueOrDefault(i.barThickness, l), e.getValueOrDefault(i.maxBarThickness, 1 / 0)), {stackCount: o, tickSize: a, categorySize: r, categorySpacing: a - r, fullBarSize: s, barSize: l, barSpacing: s - l, scale: n} 5476 }, calculateBarValuePixels: function (t, e) { 5477 var n, i, o, a, r, s, l = this, c = l.chart, u = l.getMeta(), d = l.getValueScale(), h = c.data.datasets, p = Number(h[t].data[e]), f = d.options.stacked, m = u.stack, g = 0; 5478 if (f || void 0 === f && void 0 !== m) 5479 for (n = 0; n < t; ++n) 5480 (i = c.getDatasetMeta(n)).bar && i.stack === m && i.controller.getValueScaleId() === d.id && c.isDatasetVisible(n) && (o = Number(h[n].data[e]), (p < 0 && o < 0 || p >= 0 && o > 0) && (g += o)); 5481 return a = d.getPixelForValue(g), r = d.getPixelForValue(g + p), s = (r - a) / 2, {size: s, base: a, head: r, center: r + s / 2} 5482 }, calculateBarIndexPixels: function (t, e, n) { 5483 var i = this, o = n.scale, a = i.chart.isCombo, r = i.getStackIndex(t), s = o.getPixelForValue(null, e, t, a), l = n.barSize; 5484 return s -= a ? n.tickSize / 2 : 0, s += n.fullBarSize * r, s += n.categorySpacing / 2, s += n.barSpacing / 2, {size: l, base: s, head: s + l, center: s + l / 2} 5485 }, draw: function () { 5486 var t, n = this, i = n.chart, o = n.getMeta().data, a = n.getDataset(), r = o.length, s = 0; 5487 for (e.canvas.clipArea(i.ctx, i.chartArea); s < r; ++s) 5488 null === (t = a.data[s]) || void 0 === t || isNaN(t) || o[s].draw(); 5489 e.canvas.unclipArea(i.ctx) 5490 }, setHoverStyle: function (t) { 5491 var n = this.chart.data.datasets[t._datasetIndex], i = t._index, o = t.custom || {}, a = t._model; 5492 a.backgroundColor = o.hoverBackgroundColor ? o.hoverBackgroundColor : e.getValueAtIndexOrDefault(n.hoverBackgroundColor, i, e.getHoverColor(a.backgroundColor)), a.borderColor = o.hoverBorderColor ? o.hoverBorderColor : e.getValueAtIndexOrDefault(n.hoverBorderColor, i, e.getHoverColor(a.borderColor)), a.borderWidth = o.hoverBorderWidth ? o.hoverBorderWidth : e.getValueAtIndexOrDefault(n.hoverBorderWidth, i, a.borderWidth) 5493 }, removeHoverStyle: function (t) { 5494 var n = this.chart.data.datasets[t._datasetIndex], i = t._index, o = t.custom || {}, a = t._model, r = this.chart.options.elements.rectangle; 5495 a.backgroundColor = o.backgroundColor ? o.backgroundColor : e.getValueAtIndexOrDefault(n.backgroundColor, i, r.backgroundColor), a.borderColor = o.borderColor ? o.borderColor : e.getValueAtIndexOrDefault(n.borderColor, i, r.borderColor), a.borderWidth = o.borderWidth ? o.borderWidth : e.getValueAtIndexOrDefault(n.borderWidth, i, r.borderWidth) 5496 }}), t.defaults.horizontalBar = {hover: {mode: "label"}, scales: {xAxes: [{type: "linear", position: "bottom"}], yAxes: [{position: "left", type: "category", categoryPercentage: .8, barPercentage: .9, gridLines: {offsetGridLines: !0}}]}, elements: {rectangle: {borderSkipped: "left"}}, tooltips: {callbacks: {title: function (t, e) { 5497 var n = ""; 5498 return t.length > 0 && (t[0].yLabel ? n = t[0].yLabel : e.labels.length > 0 && t[0].index < e.labels.length && (n = e.labels[t[0].index])), n 5499 }, label: function (t, e) { 5500 return(e.datasets[t.datasetIndex].label || "") + ": " + t.xLabel 5501 }}}}, t.controllers.horizontalBar = t.controllers.bar.extend({getValueScaleId: function () { 5502 return this.getMeta().xAxisID 5503 }, getIndexScaleId: function () { 5504 return this.getMeta().yAxisID 5505 }}) 5506 } 5507 }, {}], 16: [function (t, e, n) { 5508 "use strict"; 5509 e.exports = function (t) { 5510 var e = t.helpers; 5511 t.defaults.bubble = {hover: {mode: "single"}, scales: {xAxes: [{type: "linear", position: "bottom", id: "x-axis-0"}], yAxes: [{type: "linear", position: "left", id: "y-axis-0"}]}, tooltips: {callbacks: {title: function () { 5512 return"" 5513 }, label: function (t, e) { 5514 var n = e.datasets[t.datasetIndex].label || "", i = e.datasets[t.datasetIndex].data[t.index]; 5515 return n + ": (" + t.xLabel + ", " + t.yLabel + ", " + i.r + ")" 5516 }}}}, t.controllers.bubble = t.DatasetController.extend({dataElementType: t.elements.Point, update: function (t) { 5517 var n = this, i = n.getMeta().data; 5518 e.each(i, function (e, i) { 5519 n.updateElement(e, i, t) 5520 }) 5521 }, updateElement: function (n, i, o) { 5522 var a = this, r = a.getMeta(), s = a.getScaleForId(r.xAxisID), l = a.getScaleForId(r.yAxisID), c = n.custom || {}, u = a.getDataset(), d = u.data[i], h = a.chart.options.elements.point, p = a.index; 5523 e.extend(n, {_xScale: s, _yScale: l, _datasetIndex: p, _index: i, _model: {x: o ? s.getPixelForDecimal(.5) : s.getPixelForValue("object" == typeof d ? d : NaN, i, p, a.chart.isCombo), y: o ? l.getBasePixel() : l.getPixelForValue(d, i, p), radius: o ? 0 : c.radius ? c.radius : a.getRadius(d), hitRadius: c.hitRadius ? c.hitRadius : e.getValueAtIndexOrDefault(u.hitRadius, i, h.hitRadius)}}), t.DatasetController.prototype.removeHoverStyle.call(a, n, h); 5524 var f = n._model; 5525 f.skip = c.skip ? c.skip : isNaN(f.x) || isNaN(f.y), n.pivot() 5526 }, getRadius: function (t) { 5527 return t.r || this.chart.options.elements.point.radius 5528 }, setHoverStyle: function (n) { 5529 var i = this; 5530 t.DatasetController.prototype.setHoverStyle.call(i, n); 5531 var o = i.chart.data.datasets[n._datasetIndex], a = n._index, r = n.custom || {}; 5532 n._model.radius = r.hoverRadius ? r.hoverRadius : e.getValueAtIndexOrDefault(o.hoverRadius, a, i.chart.options.elements.point.hoverRadius) + i.getRadius(o.data[a]) 5533 }, removeHoverStyle: function (e) { 5534 var n = this; 5535 t.DatasetController.prototype.removeHoverStyle.call(n, e, n.chart.options.elements.point); 5536 var i = n.chart.data.datasets[e._datasetIndex].data[e._index], o = e.custom || {}; 5537 e._model.radius = o.radius ? o.radius : n.getRadius(i) 5538 }}) 5539 } 5540 }, {}], 17: [function (t, e, n) { 5541 "use strict"; 5542 e.exports = function (t) { 5543 var e = t.helpers, n = t.defaults; 5544 n.doughnut = {animation: {animateRotate: !0, animateScale: !1}, aspectRatio: 1, hover: {mode: "single"}, legendCallback: function (t) { 5545 var e = []; 5546 e.push('<ul class="' + t.id + '-legend">'); 5547 var n = t.data, i = n.datasets, o = n.labels; 5548 if (i.length) 5549 for (var a = 0; a < i[0].data.length; ++a) 5550 e.push('<li><span style="background-color:' + i[0].backgroundColor[a] + '"></span>'), o[a] && e.push(o[a]), e.push("</li>"); 5551 return e.push("</ul>"), e.join("") 5552 }, legend: {labels: {generateLabels: function (t) { 5553 var n = t.data; 5554 return n.labels.length && n.datasets.length ? n.labels.map(function (i, o) { 5555 var a = t.getDatasetMeta(0), r = n.datasets[0], s = a.data[o], l = s && s.custom || {}
vendor: 6,389 bytes, lines 5555-5605
5555, c = e.getValueAtIndexOrDefault, u = t.options.elements.arc; 5556 return{text: i, fillStyle: l.backgroundColor ? l.backgroundColor : c(r.backgroundColor, o, u.backgroundColor), strokeStyle: l.borderColor ? l.borderColor : c(r.borderColor, o, u.borderColor), lineWidth: l.borderWidth ? l.borderWidth : c(r.borderWidth, o, u.borderWidth), hidden: isNaN(r.data[o]) || a.data[o].hidden, index: o} 5557 }) : [] 5558 }}, onClick: function (t, e) { 5559 var n, i, o, a = e.index, r = this.chart; 5560 for (n = 0, i = (r.data.datasets || []).length; n < i; ++n) 5561 (o = r.getDatasetMeta(n)).data[a] && (o.data[a].hidden = !o.data[a].hidden); 5562 r.update() 5563 }}, cutoutPercentage: 50, rotation: -.5 * Math.PI, circumference: 2 * Math.PI, tooltips: {callbacks: {title: function () { 5564 return"" 5565 }, label: function (t, n) { 5566 var i = n.labels[t.index], o = ": " + n.datasets[t.datasetIndex].data[t.index]; 5567 return e.isArray(i) ? (i = i.slice())[0] += o : i += o, i 5568 }}}}, n.pie = e.clone(n.doughnut), e.extend(n.pie, {cutoutPercentage: 0}), t.controllers.doughnut = t.controllers.pie = t.DatasetController.extend({dataElementType: t.elements.Arc, linkScales: e.noop, getRingIndex: function (t) { 5569 for (var e = 0, n = 0; n < t; ++n) 5570 this.chart.isDatasetVisible(n) && ++e; 5571 return e 5572 }, update: function (t) { 5573 var n = this, i = n.chart, o = i.chartArea, a = i.options, r = a.elements.arc, s = o.right - o.left - r.borderWidth, l = o.bottom - o.top - r.borderWidth, c = Math.min(s, l), u = {x: 0, y: 0}, d = n.getMeta(), h = a.cutoutPercentage, p = a.circumference; 5574 if (p < 2 * Math.PI) { 5575 var f = a.rotation % (2 * Math.PI), m = (f += 2 * Math.PI * (f >= Math.PI ? -1 : f < -Math.PI ? 1 : 0)) + p, g = {x: Math.cos(f), y: Math.sin(f)}, v = {x: Math.cos(m), y: Math.sin(m)}, y = f <= 0 && 0 <= m || f <= 2 * Math.PI && 2 * Math.PI <= m, b = f <= .5 * Math.PI && .5 * Math.PI <= m || f <= 2.5 * Math.PI && 2.5 * Math.PI <= m, x = f <= -Math.PI && -Math.PI <= m || f <= Math.PI && Math.PI <= m, w = f <= .5 * -Math.PI && .5 * -Math.PI <= m || f <= 1.5 * Math.PI && 1.5 * Math.PI <= m, k = h / 100, C = {x: x ? -1 : Math.min(g.x * (g.x < 0 ? 1 : k), v.x * (v.x < 0 ? 1 : k)), y: w ? -1 : Math.min(g.y * (g.y < 0 ? 1 : k), v.y * (v.y < 0 ? 1 : k))}, S = {x: y ? 1 : Math.max(g.x * (g.x > 0 ? 1 : k), v.x * (v.x > 0 ? 1 : k)), y: b ? 1 : Math.max(g.y * (g.y > 0 ? 1 : k), v.y * (v.y > 0 ? 1 : k))}, T = {width: .5 * (S.x - C.x), height: .5 * (S.y - C.y)}; 5576 c = Math.min(s / T.width, l / T.height), u = {x: -.5 * (S.x + C.x), y: -.5 * (S.y + C.y)} 5577 } 5578 i.borderWidth = n.getMaxBorderWidth(d.data), i.outerRadius = Math.max((c - i.borderWidth) / 2, 0), i.innerRadius = Math.max(h ? i.outerRadius / 100 * h : 0, 0), i.radiusLength = (i.outerRadius - i.innerRadius) / i.getVisibleDatasetCount(), i.offsetX = u.x * i.outerRadius, i.offsetY = u.y * i.outerRadius, d.total = n.calculateTotal(), n.outerRadius = i.outerRadius - i.radiusLength * n.getRingIndex(n.index), n.innerRadius = Math.max(n.outerRadius - i.radiusLength, 0), e.each(d.data, function (e, i) { 5579 n.updateElement(e, i, t) 5580 }) 5581 }, updateElement: function (t, n, i) { 5582 var o = this, a = o.chart, r = a.chartArea, s = a.options, l = s.animation, c = (r.left + r.right) / 2, u = (r.top + r.bottom) / 2, d = s.rotation, h = s.rotation, p = o.getDataset(), f = i && l.animateRotate ? 0 : t.hidden ? 0 : o.calculateCircumference(p.data[n]) * (s.circumference / (2 * Math.PI)), m = i && l.animateScale ? 0 : o.innerRadius, g = i && l.animateScale ? 0 : o.outerRadius, v = e.getValueAtIndexOrDefault; 5583 e.extend(t, {_datasetIndex: o.index, _index: n, _model: {x: c + a.offsetX, y: u + a.offsetY, startAngle: d, endAngle: h, circumference: f, outerRadius: g, innerRadius: m, label: v(p.label, n, a.data.labels[n])}}); 5584 var y = t._model; 5585 this.removeHoverStyle(t), i && l.animateRotate || (y.startAngle = 0 === n ? s.rotation : o.getMeta().data[n - 1]._model.endAngle, y.endAngle = y.startAngle + y.circumference), t.pivot() 5586 }, removeHoverStyle: function (e) { 5587 t.DatasetController.prototype.removeHoverStyle.call(this, e, this.chart.options.elements.arc) 5588 }, calculateTotal: function () { 5589 var t, n = this.getDataset(), i = this.getMeta(), o = 0; 5590 return e.each(i.data, function (e, i) { 5591 t = n.data[i], isNaN(t) || e.hidden || (o += Math.abs(t)) 5592 }), o 5593 }, calculateCircumference: function (t) { 5594 var e = this.getMeta().total; 5595 return e > 0 && !isNaN(t) ? 2 * Math.PI * (t / e) : 0 5596 }, getMaxBorderWidth: function (t) { 5597 for (var e, n, i = 0, o = this.index, a = t.length, r = 0; r < a; r++) 5598 e = t[r]._model ? t[r]._model.borderWidth : 0, i = (n = t[r]._chart ? t[r]._chart.config.data.datasets[o].hoverBorderWidth : 0) > (i = e > i ? e : i) ? n : i; 5599 return i 5600 }}) 5601 } 5602 }, {}], 18: [function (t, e, n) { 5603 "use strict"; 5604 e.exports = function (t) { 5605 function e(t, e) {
5606 return n.getValueOrDefault(t.showLine, e.showLines) 5607 } 5608 var n = t.helpers; 5609 t.defaults.line = {showLines: !0, spanGaps: !1, hover: {mode: "label"}, scales: {xAxes: [{type: "category", id: "x-axis-0"}], yAxes: [{type: "linear", id: "y-axis-0"}]}}, t.controllers.line = t.DatasetController.extend({datasetElementType: t.elements.Line, dataElementType: t.elements.Point, update: function (t) { 5610 var i, o, a, r = this, s = r.getMeta(), l = s.dataset, c = s.data || [], u = r.chart.options, d = u.elements.line, h = r.getScaleForId(s.yAxisID), p = r.getDataset(), f = e(p, u); 5611 for (f && (a = l.custom || {}, void 0 !== p.tension && void 0 === p.lineTension && (p.lineTension = p.tension), l._scale = h, l._datasetIndex = r.index, l._children = c, l._model = {spanGaps:p.spanGaps?p.spanGaps:u.spanGaps, tension:a.tension?a.tension:n.getValueOrDefault(p.lineTension, d.tension), backgroundColor:a.backgroundColor?a.backgroundColor:p.backgroundColor || d.backgroundColor, borderWidth:a.borderWidth?a.borderWidth:p.borderWidth || d.borderWidth, borderColor:a.borderColor?a.borderColor:p.borderColor || d.borderColor, borderCapStyle:a.borderCapStyle?a.borderCapStyle:p.borderCapStyle || d.borderCapStyle, borderDash:a.borderDash?a.borderDash:p.borderDash || d.borderDash, borderDashOffset:a.borderDashOffset?a.borderDashOffset:p.borderDashOffset || d.borderDashOffset, borderJoinStyle:a.borderJoinStyle?a.borderJoinStyle:p.borderJoinStyle || d.borderJoinStyle, fill:a.fill?a.fill:void 0 !== p.fill?p.fill:d.fill, steppedLine:a.steppedLine?a.steppedLine:n.getValueOrDefault(p.steppedLine, d.stepped), cubicInterpolationMode:a.cubicInterpolationMode?a.cubicInterpolationMode:n.getValueOrDefault(p.cubicInterpolationMode, d.cubicInterpolationMode)}, l.pivot()), i = 0, o = c.length; i < o; ++i) 5612 r.updateElement(c[i], i, t); 5613 for (f && 0 !== l._model.tension && r.updateBezierControlPoints(), i = 0, o = c.length; i < o; ++i) 5614 c[i].pivot() 5615 }
5615, getPointBackgroundColor: function (t, e) { 5616 var i = this.chart.options.elements.point.backgroundColor, o = this.getDataset(), a = t.custom || {}; 5617 return a.backgroundColor ? i = a.backgroundColor : o.pointBackgroundColor ? i = n.getValueAtIndexOrDefault(o.pointBackgroundColor, e, i) : o.backgroundColor && (i = o.backgroundColor), i 5618 }, getPointBorderColor: function (t, e) { 5619 var i = this.chart.options.elements.point.borderColor, o = this.getDataset(), a = t.custom || {}; 5620 return a.borderColor ? i = a.borderColor : o.pointBorderColor ? i = n.getValueAtIndexOrDefault(o.pointBorderColor, e, i) : o.borderColor && (i = o.borderColor), i 5621 }, getPointBorderWidth: function (t, e) { 5622 var i = this.chart.options.elements.point.borderWidth, o = this.getDataset(), a = t.custom || {}; 5623 return isNaN(a.borderWidth) ? isNaN(o.pointBorderWidth) ? isNaN(o.borderWidth) || (i = o.borderWidth) : i = n.getValueAtIndexOrDefault(o.pointBorderWidth, e, i) : i = a.borderWidth, i 5624 }, updateElement: function (t, e, i) { 5625 var o, a, r = this, s = r.getMeta(), l = t.custom || {}, c = r.getDataset(), u = r.index, d = c.data[e], h = r.getScaleForId(s.yAxisID), p = r.getScaleForId(s.xAxisID), f = r.chart.options.elements.point, m = 1 === (r.chart.data.labels || []).length || 1 === c.data.length || r.chart.isCombo; 5626 void 0 !== c.radius && void 0 === c.pointRadius && (c.pointRadius = c.radius), void 0 !== c.hitRadius && void 0 === c.pointHitRadius && (c.pointHitRadius = c.hitRadius), o = p.getPixelForValue("object" == typeof d ? d : NaN, e, u, m), a = i ? h.getBasePixel() : r.calculatePointY(d, e, u), t._xScale = p, t._yScale = h, t._datasetIndex = u, t._index = e, t._model = {x: o, y: a, skip: l.skip || isNaN(o) || isNaN(a), radius: l.radius || n.getValueAtIndexOrDefault(c.pointRadius, e, f.radius), pointStyle: l.pointStyle || n.getValueAtIndexOrDefault(c.pointStyle, e, f.pointStyle), backgroundColor: r.getPointBackgroun
vendor: 9,230 bytes, lines 5626-5704
5626dColor(t, e), borderColor: r.getPointBorderColor(t, e), borderWidth: r.getPointBorderWidth(t, e), tension: s.dataset._model ? s.dataset._model.tension : 0, steppedLine: !!s.dataset._model && s.dataset._model.steppedLine, hitRadius: l.hitRadius || n.getValueAtIndexOrDefault(c.pointHitRadius, e, f.hitRadius)} 5627 }, calculatePointY: function (t, e, n) { 5628 var i, o, a, r = this, s = r.chart, l = r.getMeta(), c = r.getScaleForId(l.yAxisID), u = 0, d = 0; 5629 if (c.options.stacked) { 5630 for (i = 0; i < n; i++) 5631 if (o = s.data.datasets[i], "line" === (a = s.getDatasetMeta(i)).type && a.yAxisID === c.id && s.isDatasetVisible(i)) { 5632 var h = Number(c.getRightValue(o.data[e])); 5633 h < 0 ? d += h || 0 : u += h || 0 5634 } 5635 var p = Number(c.getRightValue(t)); 5636 return p < 0 ? c.getPixelForValue(d + p) : c.getPixelForValue(u + p) 5637 } 5638 return c.getPixelForValue(t) 5639 }, updateBezierControlPoints: function () { 5640 function t(t, e, n) { 5641 return Math.max(Math.min(t, n), e) 5642 } 5643 var e, i, o, a, r = this, s = r.getMeta(), l = r.chart.chartArea, c = s.data || []; 5644 if (s.dataset._model.spanGaps && (c = c.filter(function (t) { 5645 return!t._model.skip 5646 })), "monotone" === s.dataset._model.cubicInterpolationMode) 5647 n.splineCurveMonotone(c); 5648 else 5649 for (e = 0, i = c.length; e < i; ++e) 5650 o = c[e]._model, a = n.splineCurve(n.previousItem(c, e)._model, o, n.nextItem(c, e)._model, s.dataset._model.tension), o.controlPointPreviousX = a.previous.x, o.controlPointPreviousY = a.previous.y, o.controlPointNextX = a.next.x, o.controlPointNextY = a.next.y; 5651 if (r.chart.options.elements.line.capBezierPoints) 5652 for (e = 0, i = c.length; e < i; ++e) 5653 (o = c[e]._model).controlPointPreviousX = t(o.controlPointPreviousX, l.left, l.right), o.controlPointPreviousY = t(o.controlPointPreviousY, l.top, l.bottom), o.controlPointNextX = t(o.controlPointNextX, l.left, l.right), o.controlPointNextY = t(o.controlPointNextY, l.top, l.bottom) 5654 }, draw: function () { 5655 var n = this, i = n.chart, o = n.getMeta(), a = o.data || [], r = i.chartArea, s = a.length, l = 0; 5656 for (t.canvasHelpers.clipArea(i.ctx, r), e(n.getDataset(), i.options) && o.dataset.draw(), t.canvasHelpers.unclipArea(i.ctx); l < s; ++l) 5657 a[l].draw(r) 5658 }, setHoverStyle: function (t) { 5659 var e = this.chart.data.datasets[t._datasetIndex], i = t._index, o = t.custom || {}, a = t._model; 5660 a.radius = o.hoverRadius || n.getValueAtIndexOrDefault(e.pointHoverRadius, i, this.chart.options.elements.point.hoverRadius), a.backgroundColor = o.hoverBackgroundColor || n.getValueAtIndexOrDefault(e.pointHoverBackgroundColor, i, n.getHoverColor(a.backgroundColor)), a.borderColor = o.hoverBorderColor || n.getValueAtIndexOrDefault(e.pointHoverBorderColor, i, n.getHoverColor(a.borderColor)), a.borderWidth = o.hoverBorderWidth || n.getValueAtIndexOrDefault(e.pointHoverBorderWidth, i, a.borderWidth) 5661 }, removeHoverStyle: function (t) { 5662 var e = this, i = e.chart.data.datasets[t._datasetIndex], o = t._index, a = t.custom || {}, r = t._model; 5663 void 0 !== i.radius && void 0 === i.pointRadius && (i.pointRadius = i.radius), r.radius = a.radius || n.getValueAtIndexOrDefault(i.pointRadius, o, e.chart.options.elements.point.radius), r.backgroundColor = e.getPointBackgroundColor(t, o), r.borderColor = e.getPointBorderColor(t, o), r.borderWidth = e.getPointBorderWidth(t, o) 5664 }}) 5665 } 5666 }, {}], 19: [function (t, e, n) { 5667 "use strict"; 5668 e.exports = function (t) { 5669 var e = t.helpers; 5670 t.defaults.polarArea = {scale: {type: "radialLinear", angleLines: {display: !1}, gridLines: {circular: !0}, pointLabels: {display: !1}, ticks: {beginAtZero: !0}}, animation: {animateRotate: !0, animateScale: !0}, startAngle: -.5 * Math.PI, aspectRatio: 1, legendCallback: function (t) { 5671 var e = []; 5672 e.push('<ul class="' + t.id + '-legend">'); 5673 var n = t.data, i = n.datasets, o = n.labels; 5674 if (i.length) 5675 for (var a = 0; a < i[0].data.length; ++a) 5676 e.push('<li><span style="background-color:' + i[0].backgroundColor[a] + '"></span>'), o[a] && e.push(o[a]), e.push("</li>"); 5677 return e.push("</ul>"), e.join("") 5678 }, legend: {labels: {generateLabels: function (t) { 5679 var n = t.data; 5680 return n.labels.length && n.datasets.length ? n.labels.map(function (i, o) { 5681 var a = t.getDatasetMeta(0), r = n.datasets[0], s = a.data[o].custom || {}, l = e.getValueAtIndexOrDefault, c = t.options.elements.arc; 5682 return{text: i, fillStyle: s.backgroundColor ? s.backgroundColor : l(r.backgroundColor, o, c.backgroundColor), strokeStyle: s.borderColor ? s.borderColor : l(r.borderColor, o, c.borderColor), lineWidth: s.borderWidth ? s.borderWidth : l(r.borderWidth, o, c.borderWidth), hidden: isNaN(r.data[o]) || a.data[o].hidden, index: o} 5683 }) : [] 5684 }}, onClick: function (t, e) { 5685 var n, i, o, a = e.index, r = this.chart; 5686 for (n = 0, i = (r.data.datasets || []).length; n < i; ++n) 5687 (o = r.getDatasetMeta(n)).data[a].hidden = !o.data[a].hidden; 5688 r.update() 5689 }}, tooltips: {callbacks: {title: function () { 5690 return"" 5691 }, label: function (t, e) { 5692 return e.labels[t.index] + ": " + t.yLabel 5693 }}}}, t.controllers.polarArea = t.DatasetController.extend({dataElementType: t.elements.Arc, linkScales: e.noop, update: function (t) { 5694 var n = this, i = n.chart, o = i.chartArea, a = n.getMeta(), r = i.options, s = r.elements.arc, l = Math.min(o.right - o.left, o.bottom - o.top); 5695 i.outerRadius = Math.max((l - s.borderWidth / 2) / 2, 0), i.innerRadius = Math.max(r.cutoutPercentage ? i.outerRadius / 100 * r.cutoutPercentage : 1, 0), i.radiusLength = (i.outerRadius - i.innerRadius) / i.getVisibleDatasetCount(), n.outerRadius = i.outerRadius - i.radiusLength * n.index, n.innerRadius = n.outerRadius - i.radiusLength, a.count = n.countVisibleElements(), e.each(a.data, function (e, i) { 5696 n.updateElement(e, i, t) 5697 }) 5698 }, updateElement: function (t, n, i) { 5699 for (var o = this, a = o.chart, r = o.getDataset(), s = a.options, l = s.animation, c = a.scale, u = e.getValueAtIndexOrDefault, d = a.data.labels, h = o.calculateCircumference(r.data[n]), p = c.xCenter, f = c.yCenter, m = 0, g = o.getMeta(), v = 0; v < n; ++v) 5700 isNaN(r.data[v]) || g.data[v].hidden || ++m; 5701 var y = s.startAngle, b = t.hidden ? 0 : c.getDistanceFromCenterForValue(r.data[n]), x = y + h * m, w = x + (t.hidden ? 0 : h), k = l.animateScale ? 0 : c.getDistanceFromCenterForValue(r.data[n]); 5702 e.extend(t, {_datasetIndex: o.index, _index: n, _scale: c, _model: {x: p, y: f, innerRadius: 0, outerRadius: i ? k : b, startAngle: i && l.animateRotate ? y : x, endAngle: i && l.animateRotate ? y : w, label: u(d, n, d[n])}}), o.removeHoverStyle(t), t.pivot() 5703 }, removeHoverStyle: function (e) { 5704 t.DatasetController.prototype.removeHoverStyle.call(this, e, this.chart.options.elements.ar
5704c) 5705 }, countVisibleElements: function () { 5706 var t = this.getDataset(), n = this.getMeta(), i = 0; 5707 return e.each(n.data, function (e, n) { 5708 isNaN(t.data[n]) || e.hidden || i++ 5709 }), i 5710 }, calculateCircumference: function (t) { 5711 var e = this.getMeta().count; 5712 return e > 0 && !isNaN(t) ? 2 * Math.PI / e : 0 5713 }}) 5714 } 5715 }, {}], 20: [function (t, e, n) { 5716 "use strict"; 5717 e.exports = function (t) { 5718 var e = t.helpers; 5719 t.defaults.radar = {aspectRatio: 1, scale: {type: "radialLinear"}, elements: {line: {tension: 0}}}, t.controllers.radar = t.DatasetController.extend({datasetElementType: t.elements.Line, dataElementType: t.elements.Point, linkScales: e.noop, update: function (t) { 5720 var n = this, i = n.getMeta(), o = i.dataset, a = i.data, r = o.custom || {}, s = n.getDataset(), l = n.chart.options.elements.line, c = n.chart.scale; 5721 void 0 !== s.tension && void 0 === s.lineTension && (s.lineTension = s.tension), e.extend(i.dataset, {_datasetIndex: n.index, _scale: c, _children: a, _loop: !0, _model: {tension: r.tension ? r.tension : e.getValueOrDefault(s.lineTension, l.tension), backgroundColor: r.backgroundColor ? r.backgroundColor : s.backgroundColor || l.backgroundColor, borderWidth: r.borderWidth ? r.borderWidth : s.borderWidth || l.borderWidth, borderColor: r.borderColor ? r.borderColor : s.borderColor || l.borderColor, fill: r.fill ? r.fill : void 0 !== s.fill ? s.fill : l.fill, borderCapStyle: r.borderCapStyle ? r.borderCapStyle : s.borderCapStyle || l.borderCapStyle, borderDash: r.borderDash ? r.borderDash : s.borderDash || l.borderDash, borderDashOffset: r.borderDashOffset ? r.borderDashOffset : s.borderDashOffset || l.borderDashOffset, borderJoinStyle: r.borderJoinStyle ? r.borderJoinStyle : s.borderJoinStyle || l.borderJoinStyle}}), i.dataset.pivot(), e.each(a, function (e, i) { 5722 n.updateElement(e, i, t) 5723 }, n), n.updateBezierControlPoints() 5724 }, updateElement: function (t, n, i) { 5725 var o = this, a = t.custom || {}, r = o.getDataset(), s = o.chart.scale, l = o.chart.options.elements.point, c = s.getPointPositionForValue(n, r.data[n]); 5726 void 0 !== r.radius && void 0 === r.pointRadius && (r.pointRadius = r.radius), void 0 !== r.hitRadius && void 0 === r.pointHitRadius && (r.pointHitRadius = r.hitRadius), e.extend(t, {_datasetIndex: o.index, _index: n, _scale: s, _model: {x: i ? s.xCenter : c.x, y: i ? s.yCenter : c.y, tension: a.tension ? a.tension : e.getValueOrDefault(r.lineTension, o.chart.options.elements.line.tension), radius: a.radius ? a.radius : e.getValueAtIndexOrDefault(r.pointRadius, n, l.radius), backgroundColor: a.backgroundColor ? a.backgroundColor : e.getValueAtIndexOrDefault(r.pointBackgroun
vendor: 8,364 bytes, lines 5726-5806
5726dColor, n, l.backgroundColor), borderColor: a.borderColor ? a.borderColor : e.getValueAtIndexOrDefault(r.pointBorderColor, n, l.borderColor), borderWidth: a.borderWidth ? a.borderWidth : e.getValueAtIndexOrDefault(r.pointBorderWidth, n, l.borderWidth), pointStyle: a.pointStyle ? a.pointStyle : e.getValueAtIndexOrDefault(r.pointStyle, n, l.pointStyle), hitRadius: a.hitRadius ? a.hitRadius : e.getValueAtIndexOrDefault(r.pointHitRadius, n, l.hitRadius)}}), t._model.skip = a.skip ? a.skip : isNaN(t._model.x) || isNaN(t._model.y) 5727 }, updateBezierControlPoints: function () { 5728 var t = this.chart.chartArea, n = this.getMeta(); 5729 e.each(n.data, function (i, o) { 5730 var a = i._model, r = e.splineCurve(e.previousItem(n.data, o, !0)._model, a, e.nextItem(n.data, o, !0)._model, a.tension); 5731 a.controlPointPreviousX = Math.max(Math.min(r.previous.x, t.right), t.left), a.controlPointPreviousY = Math.max(Math.min(r.previous.y, t.bottom), t.top), a.controlPointNextX = Math.max(Math.min(r.next.x, t.right), t.left), a.controlPointNextY = Math.max(Math.min(r.next.y, t.bottom), t.top), i.pivot() 5732 }) 5733 }, setHoverStyle: function (t) { 5734 var n = this.chart.data.datasets[t._datasetIndex], i = t.custom || {}, o = t._index, a = t._model; 5735 a.radius = i.hoverRadius ? i.hoverRadius : e.getValueAtIndexOrDefault(n.pointHoverRadius, o, this.chart.options.elements.point.hoverRadius), a.backgroundColor = i.hoverBackgroundColor ? i.hoverBackgroundColor : e.getValueAtIndexOrDefault(n.pointHoverBackgroundColor, o, e.getHoverColor(a.backgroundColor)), a.borderColor = i.hoverBorderColor ? i.hoverBorderColor : e.getValueAtIndexOrDefault(n.pointHoverBorderColor, o, e.getHoverColor(a.borderColor)), a.borderWidth = i.hoverBorderWidth ? i.hoverBorderWidth : e.getValueAtIndexOrDefault(n.pointHoverBorderWidth, o, a.borderWidth) 5736 }, removeHoverStyle: function (t) { 5737 var n = this.chart.data.datasets[t._datasetIndex], i = t.custom || {}, o = t._index, a = t._model, r = this.chart.options.elements.point; 5738 a.radius = i.radius ? i.radius : e.getValueAtIndexOrDefault(n.pointRadius, o, r.radius), a.backgroundColor = i.backgroundColor ? i.backgroundColor : e.getValueAtIndexOrDefault(n.pointBackgroundColor, o, r.backgroundColor), a.borderColor = i.borderColor ? i.borderColor : e.getValueAtIndexOrDefault(n.pointBorderColor, o, r.borderColor), a.borderWidth = i.borderWidth ? i.borderWidth : e.getValueAtIndexOrDefault(n.pointBorderWidth, o, r.borderWidth) 5739 }}) 5740 } 5741 }, {}], 21: [function (t, e, n) { 5742 "use strict"; 5743 e.exports = function (t) { 5744 var e = t.helpers; 5745 t.defaults.global.animation = {duration: 1e3, easing: "easeOutQuart", onProgress: e.noop, onComplete: e.noop}, t.Animation = t.Element.extend({chart: null, currentStep: 0, numSteps: 60, easing: "", render: null, onAnimationProgress: null, onAnimationComplete: null}), t.animationService = {frameDuration: 17, animations: [], dropFrames: 0, request: null, addAnimation: function (t, e, n, i) { 5746 var o, a, r = this.animations; 5747 for (e.chart = t, i || (t.animating = !0), o = 0, a = r.length; o < a; ++o) 5748 if (r[o].chart === t) 5749 return void(r[o] = e); 5750 r.push(e), 1 === r.length && this.requestAnimationFrame() 5751 }, cancelAnimation: function (t) { 5752 var n = e.findIndex(this.animations, function (e) { 5753 return e.chart === t 5754 }); 5755 -1 !== n && (this.animations.splice(n, 1), t.animating = !1) 5756 }, requestAnimationFrame: function () { 5757 var t = this; 5758 null === t.request && (t.request = e.requestAnimFrame.call(window, function () { 5759 t.request = null, t.startDigest() 5760 })) 5761 }, startDigest: function () { 5762 var t = this, e = Date.now(), n = 0; 5763 t.dropFrames > 1 && (n = Math.floor(t.dropFrames), t.dropFrames = t.dropFrames % 1), t.advance(1 + n); 5764 var i = Date.now(); 5765 t.dropFrames += (i - e) / t.frameDuration, t.animations.length > 0 && t.requestAnimationFrame() 5766 }, advance: function (t) { 5767 for (var n, i, o = this.animations, a = 0; a < o.length; ) 5768 i = (n = o[a]).chart, n.currentStep = (n.currentStep || 0) + t, n.currentStep = Math.min(n.currentStep, n.numSteps), e.callback(n.render, [i, n], i), e.callback(n.onAnimationProgress, [n], i), n.currentStep >= n.numSteps ? (e.callback(n.onAnimationComplete, [n], i), i.animating = !1, o.splice(a, 1)) : ++a 5769 }}, Object.defineProperty(t.Animation.prototype, "animationObject", {get: function () { 5770 return this 5771 }}), Object.defineProperty(t.Animation.prototype, "chartInstance", {get: function () { 5772 return this.chart 5773 }, set: function (t) { 5774 this.chart = t 5775 }}) 5776 } 5777 }, {}], 22: [function (t, e, n) { 5778 "use strict"; 5779 e.exports = function (t) { 5780 var e = t.canvasHelpers = {}; 5781 e.drawPoint = function (e, n, i, o, a) { 5782 var r, s, l, c, u, d; 5783 if ("object" != typeof n || "[object HTMLImageElement]" !== (r = n.toString()) && "[object HTMLCanvasElement]" !== r) { 5784 if (!(isNaN(i) || i <= 0)) { 5785 switch (n) { 5786 default: 5787 e.beginPath(), e.arc(o, a, i, 0, 2 * Math.PI), e.closePath(), e.fill(); 5788 break; 5789 case"triangle": 5790 e.beginPath(), u = (s = 3 * i / Math.sqrt(3)) * Math.sqrt(3) / 2, e.moveTo(o - s / 2, a + u / 3), e.lineTo(o + s / 2, a + u / 3), e.lineTo(o, a - 2 * u / 3), e.closePath(), e.fill(); 5791 break; 5792 case"rect": 5793 d = 1 / Math.SQRT2 * i, e.beginPath(), e.fillRect(o - d, a - d, 2 * d, 2 * d), e.strokeRect(o - d, a - d, 2 * d, 2 * d); 5794 break; 5795 case"rectRounded": 5796 var h = i / Math.SQRT2, p = o - h, f = a - h, m = Math.SQRT2 * i; 5797 t.helpers.drawRoundedRectangle(e, p, f, m, m, i / 2), e.fill(); 5798 break; 5799 case"rectRot": 5800 d = 1 / Math.SQRT2 * i, e.beginPath(), e.moveTo(o - d, a), e.lineTo(o, a + d), e.lineTo(o + d, a), e.lineTo(o, a - d), e.closePath(), e.fill(); 5801 break; 5802 case"cross": 5803 e.beginPath(), e.moveTo(o, a + i), e.lineTo(o, a - i), e.moveTo(o - i, a), e.lineTo(o + i, a), e.closePath(); 5804 break; 5805 case"crossRot": 5806 e.beginPath(), l = Math.
5806cos(Math.PI / 4) * i, c = Math.sin(Math.PI / 4) * i, e.moveTo(o - l, a - c), e.lineTo(o + l, a + c), e.moveTo(o - l, a + c), e.lineTo(o + l, a - c), e.closePath(); 5807 break; 5808 case"star": 5809 e.beginPath(), e.moveTo(o, a + i), e.lineTo(o, a - i), e.moveTo(o - i, a), e.lineTo(o + i, a), l = Math.cos(Math.PI / 4) * i, c = Math.sin(Math.PI / 4) * i, e.moveTo(o - l, a - c), e.lineTo(o + l, a + c), e.moveTo(o - l, a + c), e.lineTo(o + l, a - c), e.closePath(); 5810 break; 5811 case"line": 5812 e.beginPath(), e.moveTo(o - i, a), e.lineTo(o + i, a), e.closePath(); 5813 break; 5814 case"dash": 5815 e.beginPath(), e.moveTo(o, a), e.lineTo(o + i, a), e.closePath() 5816 } 5817 e.stroke() 5818 } 5819 } else 5820 e.drawImage(n, o - n.width / 2, a - n.height / 2, n.width, n.height) 5821 }, e.clipArea = function (t, e) { 5822 t.save(), t.beginPath(), t.rect(e.left, e.top, e.right - e.left, e.bottom - e.top), t.clip() 5823 }, e.unclipArea = function (t) { 5824 t.restore() 5825 }, e.lineTo = function (t, e, n, i) { 5826 if (n.steppedLine) 5827 return"after" === n.steppedLine ? t.lineTo(e.x, n.y) : t.lineTo(n.x, e.y), void t.lineTo(n.x, n.y); 5828 n.tension ? t.bezierCurveTo(i ? e.controlPointPreviousX : e.controlPointNextX, i ? e.controlPointPreviousY : e.controlPointNextY, i ? n.controlPointNextX : n.controlPointPreviousX, i ? n.controlPointNextY : n.controlPointPreviousY, n.x, n.y) : t.lineTo(n.x, n.y) 5829 }, t.helpers.canvas = e 5830 } 5831 }, {}], 23: [function (t, e, n) { 5832 "use strict"; 5833 e.exports = function (t) { 5834 function e(e) { 5835 var n = (e = e || {}).data = e.data || {}; 5836 return n.datasets = n.datasets || [], n.labels = n.labels || [], e.options = o.configMerge(t.defaults.global, t.defaults[e.type], e.options || {}), e 5837 } 5838 function n(t) { 5839 var e = t.options; 5840 e.scale ? t.scale.options = e.scale : e.scales && e.scales.xAxes.concat(e.scales.yAxes).forEach(function (e) { 5841 t.scales[e.id].options = e 5842 }), t.tooltip._options = e.tooltips 5843 } 5844 function i(t) { 5845 return"top" === t || "bottom" === t 5846 } 5847 var o = t.helpers, a = t.plugins, r = t.platform; 5848 t.types = {}, t.instances = {}, t.controllers = {}, o.extend(t.prototype, {construct: function (n, i) { 5849 var a = this; 5850 i = e(i); 5851 var s = r.acquireContext(n, i), l = s && s.canvas, c = l && l.height, u = l && l.
5851width; 5852 a.id = o.uid(), a.ctx = s, a.canvas = l, a.config = i, a.width = u, a.height = c, a.aspectRatio = c ? u / c : null, a.options = i.options, a._bufferedRender = !1, a.chart = a, a.controller = a, t.instances[a.id] = a, Object.defineProperty(a, "data", {get: function () { 5853 return a.config.data 5854 }, set: function (t) { 5855 a.config.data = t 5856 }}), s && l ? (a.initialize(), a.update()) : console.error("Failed to create chart: can't acquire context from the given item") 5857 }, initialize: function () { 5858 var t = this; 5859 return a.notify(t, "beforeInit"), o.retinaScale(t), t.bindEvents(), t.options.responsive && t.resize(!0), t.ensureScalesHaveIDs(), t.buildScales(), t.initToolTip(), a.notify(t, "afterInit"), t 5860 }, clear: function () { 5861 return o.clear(this), this 5862 }, stop: function () { 5863 return t.animationService.cancelAnimation(this), this 5864 }, resize: function (t) { 5865 var e = this, n = e.options, i = e.canvas, r = n.maintainAspectRatio && e.aspectRatio || null, s = Math.floor(o.getMaximumWidth(i)), l = Math.floor(r ? s / r : o.getMaximumHeight(i)); 5866 if ((e.width !== s || e.height !== l) && (i.width = e.width = s, i.height = e.height = l, i.style.width = s + "px", i.style.height = l + "px", o.retinaScale(e), !t)) { 5867 var c = {width: s, height: l}; 5868 a.notify(e, "resize", [c]), e.options.onResize && e.options.onResize(e, c), e.stop(), e.update(e.options.responsiveAnimationDuration) 5869 } 5870 }, ensureScalesHaveIDs: function () { 5871 var t = this.options, e = t.scales || {}, n = t.scale; 5872 o.each(e.xAxes, function (t, e) { 5873 t.id = t.id || "x-axis-" + e 5874 }), o.each(e.yAxes, function (t, e) { 5875 t.id = t.id || "y-axis-" + e 5876 }), n && (n.id = n.id || "scale") 5877 }, buildScales: function () { 5878 var e = this, n = e.options, a = e.scales = {}, r = []; 5879 n.scales && (r = r.concat((n.scales.xAxes || []).map(function (t) { 5880 return{options: t, dtype: "category", dposition: "bottom"} 5881 }), (n.scales.yAxes || []).map(function (t) { 5882 return{options: t, dtype: "linear", dposition: "left"} 5883 }))), n.scale && r.push({options: n.scale, dtype: "radialLinear", isDefault: !0, dposition: "chartArea"}), o.each(r, function (n) { 5884 var r = n.options, s = o.getValueOrDefault(r.type, n.dtype), l = t.scaleService.getScaleConstructor(s); 5885 if (l) { 5886 i(r.position) !== i(n.dposition) && (r.position = n.dposition); 5887 var c = new l({id: r.id, options: r, ctx: e.ctx, chart: e}); 5888 a[c.id] = c, n.isDefault && (e.scale = c) 5889 } 5890 }), t.scaleService.addScalesToLayout(this) 5891 }, buildOrUpdateControllers: function () { 5892 var e = this, n = [], i = []; 5893 if (o.each(e.data.datasets, function (o, a) { 5894 var r = e.getDatasetMeta(a); 5895 if (r.type || (r.type = o.type || e.config.type), n.push(r.type), r.controller) 5896 r.controller.updateIndex(a); 5897 else { 5898 var s = t.controllers[r.type]; 5899 if (void 0 === s) 5900 throw new Error('"' + r.type + '" is not a chart type.'); 5901 r.controller = new s(e, a), i.push(r.controller) 5902 } 5903 }, e), n.length > 1) 5904 for (var a = 1; a < n.length; a++) 5905 if (n[a] !== n[a - 1]) { 5906 e.isCombo = !0; 5907 break 5908 } 5909 return i 5910 }, resetElements: function () { 5911 var t = this; 5912 o.each(t.data.datasets, function (e, n) { 5913 t.getDatasetMeta(n).controller.reset() 5914 }, t) 5915 }, reset: function () { 5916 this.resetElements(), this.tooltip.initialize() 5917 }, update: function (t, e) { 5918 var i = this; 5919 if (n(i), !1 !== a.notify(i, "beforeUpdate")) { 5920 i.tooltip._data = i.data; 5921 var r = i.buildOrUpdateControllers(); 5922 o.each(i.data.datasets, function (t, e) { 5923 i.getDatasetMeta(e).controller.buildOrUpdateElements() 5924 }, i), i.updateLayout(), o.each(r, function (t) { 5925 t.reset() 5926 }), i.updateDatasets(), a.notify(i, "afterUpdate"), i._bufferedRender ? i._bufferedRequest = {lazy: e, duration: t} : i.render(t, e) 5927 } 5928 }, updateLayout: function () { 5929 var e = this; 5930 !1 !== a.notify(e, "beforeLayout") && (t.layoutService.update(this, this.width, this.height), a.notify(e, "afterScaleUpdate"), a.notify(e, "afterLayout")) 5931 }, updateDatasets: function () { 5932 var t = this; 5933 if (!1 !== a.notify(t, "beforeDatasetsUpdate")) { 5934 for (var e = 0, n = t.data.datasets.length; e < n; ++e) 5935 t.updateDataset(e); 5936 a.notify(t, "afterDatasetsUpdate") 5937 } 5938 }, updateDataset: function (t) { 5939 var e = this, n = e.getDatasetMeta(t), i = {meta: n, index: t}; 5940 !1 !== a.notify(e, "beforeDatasetUpdate", [i]) && (n.controller.update(
5940), a.notify(e, "afterDatasetUpdate", [i])) 5941 }, render: function (e, n) { 5942 var i = this; 5943 if (!1 !== a.notify(i, "beforeRender")) { 5944 var r = i.options.animation, s = function (t) { 5945 a.notify(i, "afterRender"), o.callback(r && r.onComplete, [t], i) 5946 }; 5947 if (r && (void 0 !== e && 0 !== e || void 0 === e && 0 !== r.duration)) { 5948 var l = new t.Animation({numSteps: (e || r.duration) / 16.66, easing: r.easing, render: function (t, e) { 5949 var n = o.easingEffects[e.easing], i = e.currentStep, a = i / e.numSteps; 5950 t.draw(n(a), a, i) 5951 }, onAnimationProgress: r.onProgress, onAnimationComplete: s}); 5952 t.animationService.addAnimation(i, l, e, n) 5953 } else 5954 i.draw(), s(new t.Animation({numSteps: 0, chart: i})); 5955 return i 5956 } 5957 }, draw: function (t) { 5958 var e = this; 5959 e.clear(), void 0 !== t && null !== t || (t = 1), e.transition(t), !1 !== a.notify(e, "beforeDraw", [t]) && (o.each(e.boxes, function (t) { 5960 t.draw(e.chartArea) 5961 }, e), e.scale && e.scale.draw(), e.drawDatasets(t), e.tooltip.draw(), a.notify(e, "afterDraw", [t])) 5962 }, transition: function (t) { 5963 for (var e = this, n = 0, i = (e.data.datasets || []).length; n < i; ++n) 5964 e.isDatasetVisible(n) && e.getDatasetMeta(n).controller.transition(t); 5965 e.tooltip.transition(t) 5966 }, drawDatasets: function (t) { 5967 var e = this; 5968 if (!1 !== a.notify(e, "beforeDatasetsDraw", [t])) { 5969 for (var n = (e.data.datasets || []).length - 1; n >= 0; --n) 5970 e.isDatasetVisible(n) && e.drawDataset(n, t); 5971 a.notify(e, "afterDatasetsDraw", [t]) 5972 } 5973 }, drawDataset: function (t, e) { 5974 var n = this, i = n.getDatasetMeta(t), o = {meta: i, index: t, easingValue: e}; 5975 !1 !== a.notify(n, "beforeDatasetDraw", [o]) && (i.controller.draw(e), a.notify(n, "afterDatasetDraw", [o])) 5976 }, getElementAtEvent: function (e) { 5977 return t.Interaction.modes.single(this, e) 5978 }, getElementsAtEvent: function (e) { 5979 return t.Interaction.modes.label(this, e, {intersect: !0}) 5980 }, getElementsAtXAxis: function (e) { 5981 return t.Interaction.modes["x-axis"](this, e, {intersect: !0}) 5982 }, getElementsAtEventForMode: function (e, n, i) { 5983 var o = t.Interaction.modes[n]; 5984 return"function" == typeof o ? o(this, e, i) : [] 5985 }, getDatasetAtEvent: function (e) { 5986 return t.Interaction.modes.dataset(this, e, {intersect: !0}) 5987 }, getDatasetMeta: function (t) { 5988 var e = this, n = e.data.datasets[t]; 5989 n._meta || (n._meta = {}); 5990 var i = n._meta[e.id]; 5991 return i || (i = n._meta[e.id] = {type: null, data: [], dataset: null, controller: null, hidden: null, xAxisID: null, yAxisID: null}), i 5992 }, getVisibleDatasetCount: function () { 5993 for (var t = 0, e = 0, n = this.data.datasets.length; e < n; ++e) 5994 this.isDatasetVisible(e) && t++; 5995 return t 5996 }, isDatasetVisible: function (t) { 5997 var e = this.getDatasetMeta(t); 5998 return"boolean" == typeof e.hidden ? !e.hidden : !this.data.datasets[t].hidden 5999 }, generateLegend: function () { 6000 return this.options.legendCallback(this) 6001 }, destroy: function () { 6002 var e, n, i, s = this, l = s.canvas; 6003 for (s.stop(), n = 0, i = s.data.datasets.length; n < i; ++n) 6004 (e = s.getDatasetMeta(n)).controller && (e.controller.destroy(), e.controller = null); 6005 l && (s.unbindEvents(), o.clear(s), r.releaseContext(s.ctx), s.canvas = null, s.ctx = null), a.notify(s, "destroy"), delete t.instances[s.id] 6006 }, toBase64Image: function () { 6007 return this.canvas.toDataURL.apply(this.canvas, arguments) 6008 }, initToolTip: function () { 6009 var e = this; 6010 e.tooltip = new t.Tooltip({_chart: e, _chartInstance: e, _data: e.data, _options: e.options.tooltips}, e), e.tooltip.initialize() 6011 }, bindEvents: function () { 6012 var t = this, e = t._listeners = {}, n = function () { 6013 t.eventHandler.apply(t, arguments) 6014 }; 6015 o.each(t.options.events, function (i) { 6016 r.addEventListener(t, i, n), e[i] = n 6017 }), t.options.responsive && (n = function () { 6018 t.resize() 6019 }, r.addEventListener(t, "resize", n), e.resize = n) 6020 }, unbindEvents: function () { 6021 var t = this, e = t._listeners; 6022 e && (delete t._listeners, o.each(e, function (e, n) { 6023 r.removeEventListener(t, n, e) 6024 })) 6025 }, updateHoverStyle: function (t, e, n) { 6026 var i, o, a, r = n ? "setHoverStyle" : "removeHoverStyle"; 6027 for (o = 0, a = t.length; o < a; ++o) 6028 (i = t[o]) && this.getDatasetMeta(i._datasetIndex).controller[r](i) 6029 }, eventHandler: function (t) { 6030 var e = this, n = e.tooltip; 6031 if (!1 !== a.notify(e, "beforeEvent", [t])) { 6032 e._bufferedRender = !0, e._bufferedRequest = null; 6033 var i = e.handleEvent(t); 6034 i |= n && n.handleEvent(t), a.notify(e, "afterEvent", [t]); 6035 var o = e._bufferedRequest; 6036 return o ? e.render(o.duration, o.lazy) : i && !e.animating && (e.stop(), e.render(e.options.hover.animationDuration, !0)), e._bufferedRender = !1, e._bufferedRequest = null, e 6037 } 6038 }, handleEvent: function (t) { 6039 var e = this, n = e.options || {}, i = n.hover, a = !1; 6040 return e.lastActive = e.lastActive || [], "mouseout" === t.type ? e.active = [] : e.active = e.getElementsAtEventForMode(t, i.mode, i), i.onHover && i.onHover.call(e, t.native, e.active), "mouseup" !== t.type && "click" !== t.type || n.onClick && n.onClick.call(e, t.native, e.active), e.lastActive.length && e.updateHoverStyle(e.lastActive, i.mode, !1), e.active.length && i.mode && e.updateHoverStyle(e.active, i.mode, !0), a = !o.arrayEquals(e.active, e.lastActive), e.lastActive = e.active, a 6041 }}), t.Controller = t 6042 } 6043 }, {}], 24: [function (t, e, n) { 6044 "use strict"; 6045 e.exports = function (t) { 6046 function e(t, e) { 6047 t._chartjs ? t._chartjs.listeners.push(e) : (Object.defineProperty(t, "_chartjs", {configurable: !0, enumerable: !1, value: {listeners: [e]}}), o.forEach(function (e) { 6048 var n = "onData" + e.charAt(0).toUpperCase() + e.slice(1), o = t[e]; 6049 Object.defineProperty(t, e, {configurable: !0, enumerable: !1, value: function () { 6050 var e = Array.prototype.slice.call(arguments), a = o.apply(this, e); 6051 return i.each(t._chartjs.listeners, function (t) { 6052 "function" == typeof t[n] && t[n].apply(t, e) 6053 }), a 6054 }}) 6055 })) 6056 } 6057 function n(t, e) { 6058 var n = t._chartjs; 6059 if (n) { 6060 var i = n.listeners, a = i.indexOf(e); 6061 -1 !== a && i.splice(a, 1), i.length >
6061 0 || (o.forEach(function (e) { 6062 delete t[e] 6063 }), delete t._chartjs) 6064 } 6065 } 6066 var i = t.helpers, o = ["push", "pop", "shift", "splice", "unshift"]; 6067 t.DatasetController = function (t, e) { 6068 this.initialize(t, e) 6069 }, i.extend(t.DatasetController.prototype, {datasetElementType: null, dataElementType: null, initialize: function (t, e) { 6070 var n = this; 6071 n.chart = t, n.index = e, n.linkScales(), n.addElements() 6072 }, updateIndex: function (t) { 6073 this.index = t 6074 }, linkScales: function () { 6075 var t = this, e = t.getMeta(), n = t.getDataset(); 6076 null === e.xAxisID && (e.xAxisID = n.xAxisID || t.chart.options.scales.xAxes[0].id), null === e.yAxisID && (e.yAxisID = n.yAxisID || t.chart.options.scales.yAxes[0].id) 6077 }, getDataset: function () { 6078 return this.chart.data.datasets[this.index] 6079 }, getMeta: function () { 6080 return this.chart.getDatasetMeta(this.index) 6081 }, getScaleForId: function (t) { 6082 return this.chart.scales[t] 6083 }, reset: function () { 6084 this.update(!0) 6085 }, destroy: function () { 6086 this._data && n(this._data, this) 6087 }, createMetaDataset: function () { 6088 var t = this, e = t.datasetElementType; 6089 return e && new e({_chart: t.chart, _datasetIndex: t.index}) 6090 }, createMetaData: function (t) { 6091 var e = this, n = e.dataElementType; 6092 return n && new n({_chart: e.chart, _datasetIndex: e.index, _index: t}) 6093 }, addElements: function () { 6094 var t, e, n = this, i = n.getMeta(), o = n.getDataset().data || [], a = i.data; 6095 for (t = 0, e = o.length; t < e; ++t) 6096 a[t] = a[t] || n.createMetaData(t); 6097 i.dataset = i.dataset || n.createMetaDataset() 6098 }, addElementAndReset: function (t) { 6099 var e = this.createMetaData(t); 6100 this.getMeta().data.splice(t, 0, e), this.updateElement(e, t, !0) 6101 }, buildOrUpdateElements: function () { 6102 var t = this, i = t.getDataset(), o = i.data || (i.data = []); 6103 t._data !== o && (t._data && n(t._data, t), e(o, t), t._data = o), t.resyncElements() 6104 }, update: i.noop, transition: function (t) { 6105 for (var e = this.getMeta(), n = e.data || [], i = n.length, o = 0; o < i; ++o) 6106 n[o].transition(t); 6107 e.dataset && e.dataset.transition(t) 6108 }, draw: function () { 6109 var t = this.getMeta(), e = t.data || [], n = e.length, i = 0; 6110 for (t.dataset && t.dataset.draw(); i < n; ++i) 6111 e[i].draw() 6112 }, removeHoverStyle: function (t, e) { 6113 var n = this.chart.data.datasets[t._datasetIndex], o = t._index, a = t.custom || {}, r = i.getValueAtIndexOrDefault, s = t._model; 6114 s.backgroundColor = a.backgroundColor ? a.backgroundColor : r(n.backgroundColor, o, e.backgroundColor), s.borderColor = a.borderColor ? a.borderColor : r(n.borderColor, o, e.borderColor), s.borderWidth = a.borderWidth ? a.borderWidth : r(n.borderWidth, o, e.borderWidth) 6115 }, setHoverStyle: function (t) { 6116 var e = this.chart.data.datasets[t._datasetIndex], n = t._index, o = t.custom || {}, a = i.getValueAtIndexOrDefault, r = i.getHoverColor, s = t._model; 6117 s.backgroundColor = o.hoverBackgroun
6117dColor ? o.hoverBackgroundColor : a(e.hoverBackgroundColor, n, r(s.backgroundColor)), s.borderColor = o.hoverBorderColor ? o.hoverBorderColor : a(e.hoverBorderColor, n, r(s.borderColor)), s.borderWidth = o.hoverBorderWidth ? o.hoverBorderWidth : a(e.hoverBorderWidth, n, s.borderWidth) 6118 }, resyncElements: function () { 6119 var t = this, e = t.getMeta(), n = t.getDataset().data, i = e.data.length, o = n.length; 6120 o < i ? e.data.splice(o, i - o) : o > i && t.insertElements(i, o - i) 6121 }, insertElements: function (t, e) { 6122 for (var n = 0; n < e; ++n) 6123 this.addElementAndReset(t + n) 6124 }, onDataPush: function () { 6125 this.insertElements(this.getDataset().data.length - 1, arguments.length) 6126 }, onDataPop: function () { 6127 this.getMeta().data.pop() 6128 }, onDataShift: function () { 6129 this.getMeta().data.shift() 6130 }, onDataSplice: function (t, e) { 6131 this.getMeta().data.splice(t, e), this.insertElements(t, arguments.length - 2) 6132 }, onDataUnshift: function () { 6133 this.insertElements(0, arguments.length) 6134 }}), t.DatasetController.extend = i.inherits 6135 } 6136 }, {}], 25: [function (t, e, n) { 6137 "use strict"; 6138 var i = t(3); 6139 e.exports = function (t) { 6140 function e(t, e, n, o) { 6141 var a, r, s, l, c, u, d, h, p, f = Object.keys(n); 6142 for (a = 0, r = f.length; a < r; ++a) 6143 if (s = f[a], u = n[s], e.hasOwnProperty(s) || (e[s] = u), (l = e[s]) !== u && "_" !== s[0]) { 6144 if (t.hasOwnProperty(s) || (t[s] = l), c = t[s], (d = typeof u) === typeof c) 6145 if ("string" === d) { 6146 if ((h = i(c)).valid && (p = i(u)).valid) { 6147 e[s] = p.mix(h, o).rgbString(); 6148 continue 6149 } 6150 } else if ("number" === d && isFinite(c) && isFinite(u)) { 6151 e[s] = c + (u - c) * o; 6152 continue 6153 } 6154 e[s] = u 6155 } 6156 } 6157 var n = t.helpers; 6158 t.elements = {}, t.Element = function (t) { 6159 n.extend(this, t), this.initialize.apply(this, arguments) 6160 }, n.extend(t.Element.prototype, {initialize: function () { 6161 this.hidden = !1 6162 }, pivot: function () { 6163 var t = this; 6164 return t._view || (t._view = n.clone(t._model)), t._start = {}, t 6165 }, transition: function (t) { 6166 var n = this, i = n._model, o = n._start, a = n._view; 6167 return i && 1 !== t ? (a || (a = n._view = {}), o || (o = n._start = {}), e(o, a, i, t), n) : (n._view = i, n._start = null, n) 6168 }, tooltipPosition: function () { 6169 return{x: this._model.x, y: this._model.y} 6170 }, hasValue: function () { 6171 return n.isNumber(this._model.x) && n.isNumber(this._model.y) 6172 }}), t.Element.extend = n.inherits 6173 } 6174 }, {3: 3}], 26: [function (t, e, n) { 6175 "use strict"; 6176 var i = t(3); 6177 e.exports = function (t) { 6178 function e(t, e, n) { 6179 var i; 6180 return"string" == typeof t ? (i = parseInt(t, 10), -1 !== t.indexOf("%") && (i = i / 100 * e.parentNode[n])) : i = t, i 6181 } 6182 function n(t) { 6183 return void 0 !== t && null !== t && "none" !== t 6184 } 6185 function o(t, i, o) { 6186 var a = document.defaultView, r = t.parentNode, s = a.getComputedStyle(t)[i], l = a.getComputedStyle(r)[i], c = n(s), u = n(l), d = Number.POSITIVE_INFINITY; 6187 return c || u ? Math.min(c ? e(s, t, o) : d, u ? e(l, r, o) : d) : "none" 6188 } 6189 var a = t.helpers = {}; 6190 a.each = function (t, e, n, i) { 6191 var o, r; 6192 if (a.isArray(t)) 6193 if (r = t.length, i) 6194 for (o = r - 1; o >= 0; o--) 6195 e.call(n, t[o], o); 6196 else 6197 for (o = 0; o < r; o++) 6198 e.call(n, t[o], o); 6199 else if ("object" == typeof t) { 6200 var s = Object.keys(t); 6201 for (r = s.length, o = 0; o < r; o++) 6202 e.call(n, t[s[o]], s[o]) 6203 } 6204 }, a.clone = function (t) { 6205 var e = {}; 6206 return a.each(t, function (t, n) { 6207 a.isArray(t) ? e[n] = t.slice(0) : e[n] = "object" == typeof t && null !== t ? a.clone(t) : t 6208 }), e 6209 }, a.extend = function (t) { 6210 for (var e = 1, n = arguments.length; e < n; e++) 6211 a.each(arguments[e], function (e, n) { 6212 t[n] = e 6213 }); 6214 return t 6215 }, a.configMerge = function (e) { 6216 var n = a.clone(e); 6217 return a.each(Array.prototype.slice.call(arguments, 1), function (e) { 6218 a.each(e, function (e, i) { 6219 var o = n.hasOwnProperty(i), r = o ? n[i] : {}; 6220 "scales" === i ? n[i] = a.scaleMerge(r, e) : "scale" === i ? n[i] = a.configMerge(r, t.scaleService.getScaleDefaults(e.type), e) : !o || "object" != typeof r || a.isArray(r) || null === r || "object" != typeof e || a.isArray(e) ? n[i] = e : n[i] = a.configMerge(r, e) 6221 }) 6222 }), n 6223 }, a.scaleMerge = function (e, n) { 6224 var i = a.clone(e); 6225 return a.each(n, function (e, n) { 6226 "xAxes" === n || "yAxes" === n ? i.hasOwnProperty(n) ? a.each(e, function (e, o) { 6227 var r = a.getValueOrDefault(e.type, "xAxes" === n ? "category" : "linear"), s = t.scaleService.getScaleDefaults(r); 6228 o >= i[n].length || !i[n][o].type ? i[n].push(a.configMerge(s, e)) : e.type && e.type !== i[n][o].type ? i[n][o] = a.configMerge(i[n][o], s, e) : i[n][o] = a.configMerge(i[n][o], e) 6229 }) : (i[n] = [], a.each(e, function (e) { 6230 var o = a.getValueOrDefault(e.type, "xAxes" === n ? "category" : "linear"); 6231 i[n].push(a.configMerge(t.scaleService.getScaleDefaults(o), e)) 6232 })) : i.hasOwnProperty(n) && "object" == typeof i[n] && null !== i[n] && "object" == typeof e ? i[n] = a.configMerge(i[n], e) : i[n] = e 6233 }), i 6234 }, a.getValueAtIndexOrDefault = function (t, e, n) { 6235 return void 0 === t || null === t ? n : a.isArray(t) ? e < t.length ? t[e] : n : t 6236 }, a.getValueOrDefault = function (t, e) { 6237 return void 0 === t ? e : t 6238 }, a.indexOf = Array.prototype.indexOf ? function (t, e) { 6239 return t.indexOf(e) 6240 } : function (t, e) { 6241 for (var n = 0, i = t.length; n < i; ++n) 6242 if (t[n] === e) 6243 return n; 6244 return-1 6245 }, a.where = function (t, e) { 6246 if (a.isArray(t) && Array.prototype.filter) 6247 return t.filter(e); 6248 var n = []; 6249 return a.each(t, function (t) { 6250 e(t) && n.push(t) 6251 }), n 6252 }, a.findIndex = Array.prototype.findIndex ? function (t, e, n) { 6253 return t.findIndex(e, n) 6254 } : function (t, e, n) { 6255 n = void 0 === n ? t : n; 6256 for (var i = 0, o = t.length; i < o; ++i) 6257 if (e.call(n, t[i], i, t)) 6258 return i; 6259 return-1 6260 }, a.findNextWhere = function (t, e, n) { 6261 void 0 !== n && null !== n || (n = -1); 6262 for (var i = n + 1; i < t.length; i++) { 6263 var o = t[i]; 6264 if (e(o)) 6265 return o 6266 } 6267 }, a.findPreviousWhere = function (t, e, n) { 6268 void 0 !== n && null !== n || (n = t.length); 6269 for (var i = n - 1; i >= 0; i--) { 6270 var o = t[i]; 6271 if (e(o)) 6272 return o 6273 } 6274 }, a.inherits = function (t) { 6275 var e = this, n = t && t.hasOwnProperty("constructor") ? t.constructor : function () { 6276 return e.apply(this, arguments) 6277 }, i = function () { 6278 this.constructor = n 6279 }; 6280 return i.prototype = e.prototype, n.prototype = new i, n.extend = a.inherits, t && a.extend(n.prototype, t), n.__super__ = e.prototype, n 6281 }, a.noop = function () {}, a.uid = function () { 6282 var t = 0; 6283 return function () { 6284 return t++ 6285 } 6286 }(), a.isNumber = function (t) { 6287 return!isNaN(parseFloat(t)) && isFinite(t) 6288 }, a.almostEquals = function (t, e, n) { 6289 return Math.abs(t - e) < n 6290 }, a.almostWhole = function (t, e) { 6291 var n = Math.round(t); 6292 return n - e < t && n + e > t 6293 }, a.max = function (t) { 6294 return t.reduce(function (t, e) { 6295 return isNaN(e) ? t : Math.max(t, e) 6296 }, Number.NEGATIVE_INFINITY) 6297 }, a.min = function (t) { 6298 return t.reduce(function (t, e) { 6299 return isNaN(e) ? t : Math.min(t, e) 6300 }, Number.POSITIVE_INFINITY) 6301 }, a.sign = Math.sign ? function (t) { 6302 return Math.sign(t) 6303 } : function (t) { 6304 return t = +t, 0 === t || isNaN(t) ? t : t > 0 ? 1 : -1 6305 }, a.log10 = Math.log10 ? function (t) { 6306 return Math.log10(t) 6307 } : function (t) { 6308 return Math.log(t) / Math.LN10 6309 }, a.toRadians = function (t) { 6310 return t * (Math.PI / 180) 6311 }, a.toDegrees = function (t) { 6312 return t * (180 / Math.PI) 6313 }, a.getAngleFromPoint = function (t, e) {
6314 var n = e.x - t.x, i = e.y - t.y, o = Math.sqrt(n * n + i * i), a = Math.atan2(i, n); 6315 return a < -.5 * Math.PI && (a += 2 * Math.PI), {angle: a, distance: o} 6316 }, a.distanceBetweenPoints = function (t, e) { 6317 return Math.sqrt(Math.pow(e.x - t.x, 2) + Math.pow(e.y - t.y, 2)) 6318 }, a.aliasPixel = function (t) { 6319 return t % 2 == 0 ? 0 : .5 6320 }, a.splineCurve = function (t, e, n, i) { 6321 var o = t.skip ? e : t, a = e, r = n.skip ? e : n, s = Math.sqrt(Math.pow(a.x - o.x, 2) + Math.pow(a.y - o.y, 2)), l = Math.sqrt(Math.pow(r.x - a.x, 2) + Math.pow(r.y - a.y, 2)), c = s / (s + l), u = l / (s + l), d = i * (c = isNaN(c) ? 0 : c), h = i * (u = isNaN(u) ? 0 : u); 6322 return{previous: {x: a.x - d * (r.x - o.x), y: a.y - d * (r.y - o.y)}, next: {x: a.x + h * (r.x - o.x), y: a.y + h * (r.y - o.y)}} 6323 }, a.EPSILON = Number.EPSILON || 1e-14, a.splineCurveMonotone = function (t) { 6324 var e, n, i, o, r = (t || []).map(function (t) { 6325 return{model: t._model, deltaK: 0, mK: 0} 6326 }), s = r.length; 6327 for (e = 0; e < s; ++e) 6328 if (!(i = r[e]).model.skip) { 6329 if (n = e > 0 ? r[e - 1] : null, (o = e < s - 1 ? r[e + 1] : null) && !o.model.skip) { 6330 var l = o.model.x - i.model.x; 6331 i.deltaK = 0 !== l ? (o.model.y - i.model.y) / l : 0 6332 } 6333 !n || n.model.skip ? i.mK = i.deltaK : !o || o.model.skip ? i.mK = n.deltaK : this.sign(n.deltaK) !== this.sign(i.deltaK) ? i.mK = 0 : i.mK = (n.deltaK + i.deltaK) / 2 6334 } 6335 var c, u, d, h; 6336 for (e = 0; e < s - 1; ++e) 6337 i = r[e], o = r[e + 1], i.model.skip || o.model.skip || (a.almostEquals(i.deltaK, 0, this.EPSILON) ? i.mK = o.mK = 0 : (c = i.mK / i.deltaK, u = o.mK / i.deltaK, (h = Math.pow(c, 2) + Math.pow(u, 2)) <= 9 || (d = 3 / Math.sqrt(h), i.mK = c * d * i.deltaK, o.mK = u * d * i.deltaK))); 6338 var p; 6339 for (e = 0; e < s; ++e) 6340 (i = r[e]).model.skip || (n = e > 0 ? r[e - 1] : null, o = e < s - 1 ? r[e + 1] : null, n && !n.model.skip && (p = (i.model.x - n.model.x) / 3, i.model.controlPointPreviousX = i.model.x - p, i.model.controlPointPreviousY = i.model.y - p * i.mK), o && !o.model.skip && (p = (o.model.x - i.model.x) / 3, i.model.controlPointNextX = i.model.x + p, i.model.controlPointNextY = i.model.y + p * i.mK)) 6341 }, a.nextItem = function (t, e, n) { 6342 return n ? e >= t.length - 1 ? t[0] : t[e + 1] : e >= t.length - 1 ? t[t.length - 1] : t[e + 1] 6343 }, a.previousItem = function (t, e, n) { 6344 return n ? e <= 0 ? t[t.length - 1] : t[e - 1] : e <= 0 ? t[0] : t[e - 1] 6345 }, a.niceNum = function (t, e) { 6346 var n = Math.floor(a.log10(t)), i = t / Math.pow(10, n); 6347 return(e ? i < 1.5 ? 1 : i < 3 ? 2 : i < 7 ? 5 : 10 : i <= 1 ? 1 : i <= 2 ? 2 : i <= 5 ? 5 : 10) * Math.pow(10, n) 6348 }; 6349 var r = a.easingEffects = {linear: function (t) { 6350 return t 6351 }, easeInQuad: function (t) { 6352 return t * t 6353 }, easeOutQuad: function (t) { 6354 return-1 * t * (t - 2) 6355 }, easeInOutQuad: function (t) { 6356 return(t /= .5) < 1 ? .5 * t * t : -.5 * (--t * (t - 2) - 1) 6357 }, easeInCubic: function (t) { 6358 return t * t * t 6359 }, easeOutCubic: function (t) { 6360 return 1 * ((t = t / 1 - 1) * t * t + 1) 6361 }, easeInOutCubic: function (t) { 6362 return(t /= .5) < 1 ? .5 * t * t * t : .5 * ((t -= 2) * t * t + 2) 6363 }, easeInQuart: function (t) { 6364 return t * t * t * t 6365 }, easeOutQuart: function (t) { 6366 return-1 * ((t = t / 1 - 1) * t * t * t - 1) 6367 }, easeInOutQuart: function (t) { 6368 return(t /= .5) < 1 ? .5 * t * t * t * t : -.5 * ((t -= 2) * t * t * t - 2) 6369 }, easeInQuint: function (t) { 6370 return 1 * (t /= 1) * t * t * t * t 6371 }, easeOutQuint: function (t) { 6372 return 1 * ((t = t / 1 - 1) * t * t * t * t + 1) 6373 }, easeInOutQuint: function (t) { 6374 return(t /= .5) < 1 ? .5 * t * t * t * t * t : .5 * ((t -= 2) * t * t * t * t + 2) 6375 }, easeInSine: function (t) { 6376 return-1 * Math.cos(t / 1 * (Math.PI / 2)) + 1 6377 }, easeOutSine: function (t) { 6378 return 1 * Math.sin(t / 1 * (Math.PI / 2)) 6379 }, easeInOutSine: function (t) { 6380 return-.5 * (Math.cos(Math.PI * t / 1) - 1) 6381 }, easeInExpo: function (t) { 6382 return 0 === t ? 1 : 1 * Math.pow(2, 10 * (t / 1 - 1)) 6383 }, easeOutExpo: function (t) { 6384 return 1 === t ? 1 : 1 * (1 - Math.pow(2, -10 * t / 1)) 6385 }, easeInOutExpo: function (t) { 6386 return 0 === t ? 0 : 1 === t ? 1 : (t /= .5) < 1 ? .5 * Math.pow(2, 10 * (t - 1)) : .5 * (2 - Math.pow(2, -10 * --t)) 6387 }, easeInCirc: function (t) { 6388 return t >= 1 ? t : -1 * (Math.sqrt(1 - (t /= 1) * t) - 1) 6389 }, easeOutCirc: function (t) { 6390 return 1 * Math.sqrt(1 - (t = t / 1 - 1) * t) 6391 }, easeInOutCirc: function (t) { 6392 return(t /= .5) < 1 ? -.5 * (Math.sqrt(1 - t * t) - 1) : .5 * (Math.sqrt(1 - (t -= 2) * t) + 1) 6393 }, easeInElastic: function (t) { 6394 var e = 1.70158, n = 0, i = 1; 6395 return 0 === t ? 0 : 1 == (t /= 1) ? 1 : (n || (n = .3), i < Math.abs(1) ? (i = 1, e = n / 4) : e = n / (2 * Math.PI) * Math.asin(1 / i), -i * Math.pow(2, 10 * (t -= 1)) * Math.sin((1 * t - e) * (2 * Math.PI) / n)) 6396 }, easeOutElastic: function (t) { 6397 var e = 1.70158, n = 0, i = 1; 6398 return 0 === t ? 0 : 1 == (t /= 1) ? 1 : (n || (n = .3), i < Math.abs(1) ? (i = 1, e = n / 4) : e = n / (2 * Math.PI) * Math.asin(1 / i), i * Math.pow(2, -10 * t) * Math.sin((1 * t - e) * (2 * Math.PI) / n) + 1) 6399 }, easeInOutElastic: function (t) { 6400 var e = 1.70158, n = 0, i = 1; 6401 return 0 === t ? 0 : 2 == (t /= .5) ? 1 : (n || (n = .3 * 1.5 * 1), i < Math.abs(1) ? (i = 1, e = n / 4) : e = n / (2 * Math.PI) * Math.asin(1 / i), t < 1 ? i * Math.pow(2, 10 * (t -= 1)) * Math.sin((1 * t - e) * (2 * Math.PI) / n) * -.5 : i * Math.pow(2, -10 * (t -= 1)) * Math.sin((1 * t - e) * (2 * Math.PI) / n) * .5 + 1) 6402 }, easeInBack: function (t) { 6403 var e = 1.70158; 6404 return 1 * (t /= 1) * t * ((e + 1) * t - e) 6405 }, easeOutBack: function (t) { 6406 var e = 1.70158; 6407 return 1 * ((t = t / 1 - 1) * t * ((e + 1) * t + e) + 1) 6408 }, easeInOutBack: function (t) { 6409 var e = 1.70158; 6410 return(t /= .5) < 1 ? t * t * ((1 + (e *= 1.525)) * t - e) * .5 : .5 * ((t -= 2) * t * ((1 + (e *= 1.525)) * t + e) + 2) 6411 }, easeInBounce: function (t) { 6412 return 1 - r.easeOutBounce(1 - t) 6413 }, easeOutBounce: function (t) { 6414 return(t /= 1) < 1 / 2.75 ? 7.5625 * t * t * 1 : t < 2 / 2.75 ? 1 * (7.5625 * (t -= 1.5 / 2.75) * t + .75) : t < 2.5 / 2.75 ? 1 * (7.5625 * (t -= 2.25 / 2.75) * t + .9375) : 1 * (7.5625 * (t -= 2.625 / 2.75) * t + .984375) 6415 }, easeInOutBounce: function (t) { 6416 return t < .5 ? .5 * r.easeInBounce(2 * t) : .5 * r.easeOutBounce(2 * t - 1) + .5 6417 }}; 6418 a.requestAnimFrame = "undefined" == typeof window ? function (t) { 6419 t() 6420 } : window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function (t) { 6421 return window.setTimeout(t, 1e3 / 60) 6422 }, a.getRelativePosition = function (t, e) { 6423 var n, i, o = t.originalEvent || t, r = t.currentTarget || t.srcElement, s = r.getBoundingClientRect(), l = o.touches; 6424 l && l.length > 0 ? (n = l[0].clientX, i = l[0].clientY) : (n = o.clientX, i = o.clientY); 6425 var c = parseFloat(a.getStyle(r, "padding-left")), u = parseFloat(a.getStyle(r, "padding-top")), d = parseFloat(a.getStyle(r, "padding-right")), h = parseFloat(a.getStyle(r, "padding-bottom")), p = s.right - s.left - c - d, f = s.bottom - s.top - u - h; 6426 return n = Math.round((n - s.left - c) / p * r.width / e.currentDevicePixelRatio), i = Math.round((i - s.top - u) / f * r.height / e.currentDevicePixelRatio), {x: n, y: i} 6427 }, a.addEvent = function (t, e, n) { 6428 t.addEventListener ? t.addEventListener(e, n) : t.attachEvent ? t.attachEvent("on" + e, n) : t["on" + e] = n 6429 }, a.removeEvent = function (t, e, n) { 6430 t.removeEventListener ? t.removeEventListener(e, n, !1) : t.detachEvent ? t.detachEvent("on" + e, n) : t["on" + e] = a.noop 6431 }, a.getConstraintWidth = function (t) { 6432 return o(t, "max-width", "clientWidth") 6433 }, a.getConstraintHeight = function (t) { 6434 return o(t, "max-height", "clientHeight") 6435 }, a.getMaximumWidth = function (t) { 6436 var e = t.parentNode, n = parseInt(a.getStyle(e, "padding-left"), 10), i = parseInt(a.getStyle(e, "padding-right"), 10), o = e.clientWidth - n - i, r = a.getConstraintWidth(t); 6437 return isNaN(r) ? o : Math.min(o, r) 6438 }, a.getMaximumHeight = function (t) { 6439 var e = t.parentNode, n = parseInt(a.getStyle(e, "padding-top"), 10), i = parseInt(a.getStyle(e, "padding-bottom"), 10), o = e.clientHeight - n - i, r = a.getConstraintHeight(t); 6440 return isNaN(r) ? o : Math.min(o, r) 6441 }, a.getStyle = function (t, e) { 6442 return t.currentStyle ? t.currentStyle[e] : document.defaultView.getComputedStyle(t, null).getPropertyValue(e) 6443 }, a.retinaScale = function (t) { 6444 var e = t.currentDevicePixelRatio = window.devicePixelRatio || 1; 6445 if (1 !== e) { 6446 var n = t.canvas, i = t.height, o = t.width; 6447 n.height = i * e, n.width = o * e, t.ctx.scale(e, e), n.style.height = i + "px", n.style.width = o + "px" 6448 } 6449 }, a.clear = function (t) { 6450 t.ctx.clearRect(0, 0, t.width, t.height) 6451 }, a.fontString = function (t, e, n) { 6452 return e + " " + t + "px " + n 6453 }, a.longestText = function (t, e, n, i) { 6454 var o = (i = i || {}).data = i.data || {}, r = i.garbageCollect = i.garbageCollect || []; 6455 i.font !== e && (o = i.data = {}, r = i.garbageCollect = [], i.font = e), t.font = e; 6456 var s = 0; 6457 a.each(n, function (e) { 6458 void 0 !== e && null !== e && !0 !== a.isArray(e) ? s = a.measureText(t, o, r, s, e) : a.isArray(e) && a.each(e, function (e) { 6459 void 0 === e || null === e || a.isArray(e) || (s = a.measureText(t, o, r, s, e)) 6460 }) 6461 }); 6462 var l = r.length / 2; 6463 if (l > n.length) { 6464 for (var c = 0; c < l; c++) 6465 delete o[r[c]]; 6466 r.splice(0, l) 6467 } 6468 return s 6469 }, a.measureText = function (t, e, n, i, o) { 6470 var a = e[o]; 6471 return a || (a = e[o] = t.measureText(o).width, n.push(o)), a > i && (i = a), i 6472 }, a.numberOfLabelLines = function (t) { 6473 var e = 1; 6474 return a.each(t, function (t) { 6475 a.isArray(t) && t.length > e && (e = t.length) 6476 }), e 6477 }, a.drawRoundedRectangle = function (t, e, n, i, o, a) { 6478 t.beginPath(), t.moveTo(e + a, n), t.lineTo(e + i - a, n), t.quadraticCurveTo(e + i, n, e + i, n + a), t.lineTo(e + i, n + o - a), t.quadraticCurveTo(e + i, n + o, e + i - a, n + o), t.lineTo(e + a, n + o), t.quadraticCurveTo(e, n + o, e, n + o - a), t.lineTo(e, n + a), t.quadraticCurveTo(e, n, e + a, n), t.closePath() 6479 }, a.color = i ? function (e) { 6480 return e instanceof CanvasGradient && (e = t.defaults.global.defaultColor), i(e) 6481 } : function (t) { 6482 return console.error("Color.js not found!"), t 6483 }, a.isArray = Array.isArray ? function (t) { 6484 return Array.isArray(t) 6485 } : function (t) { 6486 return"[object Array]" === Object.prototype.toString.call(t) 6487 }, a.arrayEquals = function (t, e) { 6488 var n, i, o, r; 6489 if (!t || !e || t.length !== e.length) 6490 return!1; 6491 for (n = 0, i = t.length; n < i; ++n) 6492 if (o = t[n], r = e[n], o instanceof Array && r instanceof Array) { 6493 if (!a.arrayEquals(o, r)) 6494 return!1 6495 } else if (o !== r) 6496 return!1; 6497 return!0 6498 }, a.callback = function (t, e, n) { 6499 t && "function" == typeof t.call && t.apply(n, e) 6500 }, a.getHoverColor = function (t) { 6501 return t instanceof CanvasPattern ? t : a.color(t).saturate(.5).darken(.1).rgbString() 6502 }, a.c
6502allCallback = a.callback 6503 } 6504 }, {3: 3}], 27: [function (t, e, n) { 6505 "use strict"; 6506 e.exports = function (t) { 6507 function e(t, e) { 6508 return t.native ? {x: t.x, y: t.y} : r.getRelativePosition(t, e) 6509 } 6510 function n(t, e) { 6511 var n, i, o, a, r; 6512 for (i = 0, a = t.data.datasets.length; i < a; ++i) 6513 if (t.isDatasetVisible(i)) 6514 for (o = 0, r = (n = t.getDatasetMeta(i)).data.length; o < r; ++o) { 6515 var s = n.data[o]; 6516 s._view.skip || e(s) 6517 } 6518 } 6519 function i(t, e) { 6520 var i = []; 6521 return n(t, function (t) { 6522 t.inRange(e.x, e.y) && i.push(t) 6523 }), i 6524 } 6525 function o(t, e, i, o) { 6526 var a = Number.POSITIVE_INFINITY, s = []; 6527 return o || (o = r.distanceBetweenPoints), n(t, function (t) { 6528 if (!i || t.inRange(e.x, e.y)) { 6529 var n = t.getCenterPoint(), r = o(e, n); 6530 r < a ? (s = [t], a = r) : r === a && s.push(t) 6531 } 6532 }), s 6533 } 6534 function a(t, n, a) { 6535 var r = e(n, t), s = a.intersect ? i(t, r) : o(t, r, !1, function (t, e) { 6536 return Math.abs(t.x - e.x) 6537 }), l = []; 6538 return s.length ? (t.data.datasets.forEach(function (e, n) { 6539 if (t.isDatasetVisible(n)) { 6540 var i = t.getDatasetMeta(n).data[s[0]._index]; 6541 i && !i._view.skip && l.push(i) 6542 } 6543 }), l) : [] 6544 } 6545 var r = t.helpers; 6546 t.Interaction = {modes: {single: function (t, i) { 6547 var o = e(i, t), a = []; 6548 return n(t, function (t) { 6549 if (t.inRange(o.x, o.y)) 6550 return a.push(t), a 6551 }), a.slice(0, 1) 6552 }, label: a, index: a, dataset: function (t, n, a) { 6553 var r = e(n, t), s = a.intersect ? i(t, r) : o(t, r, !1); 6554 return s.length > 0 && (s = t.getDatasetMeta(s[0]._datasetIndex).data), s 6555 }, "x-axis": function (t, e) { 6556 return a(t, e, !0) 6557 }, point: function (t, n) { 6558 return i(t, e(n, t)) 6559 }, nearest: function (t, n, i) { 6560 var a = o(t, e(n, t), i.intersect); 6561 return a.length > 1 && a.sort(function (t, e) { 6562 var n = t.getArea() - e.getArea(); 6563 return 0 === n && (n = t._datasetIndex - e._datasetIndex), n 6564 }), a.slice(0, 1) 6565 }, x: function (t, i, o) { 6566 var a = e(i, t), r = [], s = !1; 6567 return n(t, function (t) { 6568 t.inXRange(a.x) && r.push(t), t.inRange(a.x, a.y) && (s = !0) 6569 }), o.intersect && !s && (r = []), r 6570 }, y: function (t, i, o) { 6571 var a = e(i, t), r = [], s = !1; 6572 return n(t, function (t) { 6573 t.inYRange(a.y) && r.push(t), t.inRange(a.x, a.y) && (s = !0) 6574 }), o.intersect && !s && (r = []), r 6575 }}} 6576 } 6577 }, {}], 28: [function (t, e, n) { 6578 "use strict"; 6579 e.exports = function () { 6580 var t = function (t, e) { 6581 return this.construct(t, e), this 6582 }; 6583 return t.defaults = {global: {responsive: !0, responsiveAnimationDuration: 0, maintainAspectRatio: !0, events: ["mousemove", "mouseout", "click", "touchstart", "touchmove"], hover: {onHover: null, mode: "nearest", intersect: !0, animationDuration: 400}, onClick: null, defaultColor: "rgba(0,0,0,0.1)", defaultFontColor: "#666", defaultFontFamily: "'Helvetica Neue', 'Helvetica', 'Arial', sans-serif", defaultFontSize: 12, defaultFontStyle: "normal", showLines: !0, elements: {}, legendCallback: function (t) { 6584 var e = []; 6585 e.push('<ul class="' + t.id + '-legend">'); 6586 for (var n = 0; n < t.data.datasets.length; n++) 6587 e.push('<li><span style="background-color:' + t.data.datasets[n].backgroundColor + '"></span>'), t.data.datasets[n].label && e.push(t.data.datasets[n].label), e.push("</li>"); 6588 return e.push("</ul>"), e.join("") 6589 }}}, t.Chart = t, t 6590 } 6591 }, {}], 29: [function (t, e, n) { 6592 "use strict"; 6593 e.exports = function (t) { 6594 function e(t, e) { 6595 return i.where(t, function (t) { 6596 return t.position === e 6597 }) 6598 } 6599 function n(t, e) { 6600 t.forEach(function (t, e) { 6601 return t._tmpIndex_ = e, t 6602 }), t.sort(function (t, n) { 6603 var i = e ? n : t, o = e ? t : n; 6604 return i.weight === o.weight ? i._tmpIndex_ - o._tmpIndex_ : i.weight - o.weight 6605 }), t.forEach(function (t) { 6606 delete t._tmpIndex_ 6607 }) 6608 } 6609 var i = t.helpers; 6610 t.layoutService = {defaults: {}
6610, addBox: function (t, e) { 6611 t.boxes || (t.boxes = []), e.fullWidth = e.fullWidth || !1, e.position = e.position || "top", e.weight = e.weight || 0, t.boxes.push(e) 6612 }, removeBox: function (t, e) { 6613 var n = t.boxes ? t.boxes.indexOf(e) : -1; 6614 -1 !== n && t.boxes.splice(n, 1) 6615 }, configure: function (t, e, n) { 6616 for (var i, o = ["fullWidth", "position", "weight"], a = o.length, r = 0; r < a; ++r) 6617 i = o[r], n.hasOwnProperty(i) && (e[i] = n[i]) 6618 }, update: function (t, o, a) { 6619 function r(t) { 6620 var e = i.findNextWhere(M, function (e) { 6621 return e.box === t 6622 }); 6623 if (e) 6624 if (t.isHorizontal()) { 6625 var n = {left: Math.max(D, I), right: Math.max(E, A), top: 0, bottom: 0}; 6626 t.update(t.fullWidth ? b : S, x / 2, n) 6627 } else 6628 t.update(e.minSize.width, T) 6629 } 6630 function s(t) { 6631 t.isHorizontal() ? (t.left = t.fullWidth ? u : D, t.right = t.fullWidth ? o - d : D + S, t.top = N, t.bottom = N + t.height, N = t.bottom) : (t.left = z, t.right = z + t.width, t.top = O, t.bottom = O + T, z = t.right) 6632 } 6633 if (t) { 6634 var l = t.options.layout, c = l ? l.padding : null, u = 0, d = 0, h = 0, p = 0; 6635 isNaN(c) ? (u = c.left || 0, d = c.right || 0, h = c.top || 0, p = c.bottom || 0) : (u = c, d = c, h = c, p = c); 6636 var f = e(t.boxes, "left"), m = e(t.boxes, "right"), g = e(t.boxes, "top"), v = e(t.boxes, "bottom"), y = e(t.boxes, "chartArea"); 6637 n(f, !0), n(m, !1), n(g, !0), n(v, !1); 6638 var b = o - u - d, x = a - h - p, w = x / 2, k = (o - b / 2) / (f.length + m.length), C = (a - w) / (g.length + v.length), S = b, T = x, M = []; 6639 i.each(f.concat(m, g, v), function (t) { 6640 var e, n = t.isHorizontal(); 6641 n ? (e = t.update(t.fullWidth ? b : S, C), T -= e.height) : (e = t.update(k, w), S -= e.width), M.push({horizontal: n, minSize: e, box: t}) 6642 }); 6643 var I = 0, A = 0, P = 0, _ = 0; 6644 i.each(g.concat(v), function (t) { 6645 if (t.getPadding) { 6646 var e = t.getPadding(); 6647 I = Math.max(I, e.left), A = Math.max(A, e.right) 6648 } 6649 }), i.each(f.concat(m), function (t) { 6650 if (t.getPadding) { 6651 var e = t.getPadding(); 6652 P = Math.max(P, e.top), _ = Math.max(_, e.bottom) 6653 } 6654 }); 6655 var D = u, E = d, O = h, L = p; 6656 i.each(f.concat(m), r), i.each(f, function (t) { 6657 D += t.width 6658 }), i.each(m, function (t) { 6659 E += t.width 6660 }), i.each(g.concat(v), r), i.each(g, function (t) {
vendor: 4,807 bytes, lines 6661-6731
6661 O += t.height 6662 }), i.each(v, function (t) { 6663 L += t.height 6664 }), i.each(f.concat(m), function (t) { 6665 var e = i.findNextWhere(M, function (e) { 6666 return e.box === t 6667 }), n = {left: 0, right: 0, top: O, bottom: L}; 6668 e && t.update(e.minSize.width, T, n) 6669 }), D = u, E = d, O = h, L = p, i.each(f, function (t) { 6670 D += t.width 6671 }), i.each(m, function (t) { 6672 E += t.width 6673 }), i.each(g, function (t) { 6674 O += t.height 6675 }), i.each(v, function (t) { 6676 L += t.height 6677 }); 6678 var F = Math.max(I - D, 0); 6679 D += F, E += Math.max(A - E, 0); 6680 var R = Math.max(P - O, 0); 6681 O += R, L += Math.max(_ - L, 0); 6682 var W = a - O - L, V = o - D - E; 6683 V === S && W === T || (i.each(f, function (t) { 6684 t.height = W 6685 }), i.each(m, function (t) { 6686 t.height = W 6687 }), i.each(g, function (t) { 6688 t.fullWidth || (t.width = V) 6689 }), i.each(v, function (t) { 6690 t.fullWidth || (t.width = V) 6691 }), T = W, S = V); 6692 var z = u + F, N = h + R; 6693 i.each(f.concat(g), s), z += S, N += T, i.each(m, s), i.each(v, s), t.chartArea = {left: D, top: O, right: D + S, bottom: O + T}, i.each(y, function (e) { 6694 e.left = t.chartArea.left, e.top = t.chartArea.top, e.right = t.chartArea.right, e.bottom = t.chartArea.bottom, e.update(S, T) 6695 }) 6696 } 6697 }} 6698 } 6699 }, {}], 30: [function (t, e, n) { 6700 "use strict"; 6701 e.exports = function (t) { 6702 var e = t.helpers; 6703 t.defaults.global.plugins = {}, t.plugins = {_plugins: [], _cacheId: 0, register: function (t) { 6704 var e = this._plugins; 6705 [].concat(t).forEach(function (t) { 6706 -1 === e.indexOf(t) && e.push(t) 6707 }), this._cacheId++ 6708 }, unregister: function (t) { 6709 var e = this._plugins; 6710 [].concat(t).forEach(function (t) { 6711 var n = e.indexOf(t); 6712 -1 !== n && e.splice(n, 1) 6713 }), this._cacheId++ 6714 }, clear: function () { 6715 this._plugins = [], this._cacheId++ 6716 }, count: function () { 6717 return this._plugins.length 6718 }, getAll: function () { 6719 return this._plugins 6720 }, notify: function (t, e, n) { 6721 var i, o, a, r, s, l = this.descriptors(t), c = l.length; 6722 for (i = 0; i < c; ++i) 6723 if (o = l[i], a = o.plugin, "function" == typeof (s = a[e]) && ((r = [t].concat(n || [])).push(o.options), !1 === s.apply(a, r))) 6724 return!1; 6725 return!0 6726 }, descriptors: function (n) { 6727 var i = n._plugins || (n._plugins = {}); 6728 if (i.id === this._cacheId) 6729 return i.descriptors; 6730 var o = [], a = [], r = n && n.config || {}, s = t.defaults.global.plugins, l = r.options && r.options.plugins || {}; 6731 return this._plugins.concat(r.plugins || []).forEac
6731h(function (t) { 6732 if (-1 === o.indexOf(t)) { 6733 var n = t.id, i = l[n]; 6734 !1 !== i && (!0 === i && (i = e.clone(s[n])), o.push(t), a.push({plugin: t, options: i || {}})) 6735 } 6736 }), i.descriptors = a, i.id = this._cacheId, a 6737 }}, t.pluginService = t.plugins, t.PluginBase = t.Element.extend({}) 6738 } 6739 }, {}], 31: [function (t, e, n) { 6740 "use strict"; 6741 e.exports = function (t) { 6742 function e(t, e, n) { 6743 return i.isArray(e) ? i.longestText(t, n, e) : t.measureText(e).width 6744 } 6745 function n(e) { 6746 var n = i.getValueOrDefault, o = t.defaults.global, a = n(e.fontSize, o.defaultFontSize), r = n(e.fontStyle, o.defaultFontStyle), s = n(e.fontFamily, o.defaultFontFamily); 6747 return{size: a, style: r, family: s, font: i.fontString(a, r, s)} 6748 } 6749 var i = t.helpers; 6750 t.defaults.scale = {display: !0, position: "left", gridLines: {display: !0, color: "rgba(0, 0, 0, 0.1)", lineWidth: 1, drawBorder: !0, drawOnChartArea: !0, drawTicks: !0, tickMarkLength: 10, zeroLineWidth: 1, zeroLineColor: "rgba(0,0,0,0.25)", zeroLineBorderDash: [], zeroLineBorderDashOffset: 0, offsetGridLines: !1, borderDash: [], borderDashOffset: 0}, scaleLabel: {labelString: "", display: !1}, ticks: {beginAtZero: !1, minRotation: 0, maxRotation: 50, mirror: !1, padding: 0, reverse: !1, display: !0, autoSkip: !0, autoSkipPadding: 0, labelOffset: 0, callback: t.Ticks.formatters.values}}, t.Scale = t.Element.extend({getPadding: function () { 6751 var t = this; 6752 return{left: t.paddingLeft || 0, top: t.paddingTop || 0, right: t.paddingRight || 0, bottom: t.paddingBottom || 0} 6753 }, beforeUpdate: function () { 6754 i.callback(this.options.beforeUpdate, [this]) 6755 }, update: function (t, e, n) { 6756 var o = this; 6757 return o.beforeUpdate(), o.maxWidth = t, o.maxHeight = e, o.margins = i.extend({left: 0, right: 0, top: 0, bottom: 0}, n), o.longestTextCache = o.longestTextCache || {}, o.beforeSetDimensions(), o.setDimensions(), o.afterSetDimensions(), o.beforeDataLimits(), o.determineDataLimits(), o.afterDataLimits(), o.beforeBuildTicks(), o.buildTicks(), o.afterBuildTicks(), o.beforeTickToLabelConversion(), o.convertTicksToLabels(), o.afterTickToLabelConversion(), o.beforeCalculateTickRotation(), o.calculateTickRotation(), o.afterCalculateTickRotation(), o.beforeFit(), o.fit(), o.afterFit(), o.afterUpdate(), o.minSize 6758 }, afterUpdate: function () { 6759 i.callback(this.options.afterUpdate, [this]) 6760 }, beforeSetDimensions: function () { 6761 i.callback(this.options.beforeSetDimensions, [this]) 6762 }, setDimensions: function () { 6763 var t = this; 6764 t.isHorizontal() ? (t.width = t.maxWidth, t.left = 0, t.right = t.width) : (t.height = t.maxHeight, t.top = 0, t.bottom = t.height), t.paddingLeft = 0, t.paddingTop = 0, t.paddingRight = 0, t.paddingBottom = 0 6765 }, afterSetDimensions: function () { 6766 i.callback(this.options.afterSetDimensions, [this]) 6767 }, beforeDataLimits: function () { 6768 i.callback(this.options.beforeDataLimits, [this]) 6769 }, determineDataLimits: i.noop, afterDataLimits: function () { 6770 i.callback(this.options.afterDataLimits, [this]) 6771 }, beforeBuildTicks: function () { 6772 i.callback(this.options.beforeBuildTicks, [this]) 6773 }, buildTicks: i.noop, afterBuildTicks: function () { 6774 i.callback(this.options.afterBuildTicks, [this]) 6775 }, beforeTickToLabelConversion: function () { 6776 i.callback(this.options.beforeTickToLabelConversion, [this]) 6777 }, convertTicksToLabels: function () { 6778 var t = this, e = t.options.ticks; 6779 t.ticks = t.ticks.map(e.userCallback || e.callback) 6780 }, afterTickToLabelConversion: function () { 6781 i.callback(this.options.afterTickToLabelConversion, [this]) 6782 }, beforeCalculateTickRotation: function () { 6783 i.callback(this.options.beforeCalculateTickRotation, [this]) 6784 }, calculateTickRotation: function () { 6785 var t = this, e = t.ctx, o = t.options.ticks, a = n(o); 6786 e.font = a.font; 6787 var r = o.minRotation || 0; 6788 if (t.options.display && t.isHorizontal()) 6789 for (var s, l = i.longestText(e, a.font, t.ticks, t.longestTextCache), c = l, u = t.getPixelForTick(1) - t.getPixelForTick(0) - 6; c > u && r < o.maxRotation; ) { 6790 var d = i.toRadians(r); 6791 if (s = Math.cos(d), Math.sin(d) * l > t.maxHeight) { 6792 r--; 6793 break 6794 } 6795 r++, c = s * l 6796 } 6797 t.labelRotation = r 6798 }, afterCalculateTickRotation: function () { 6799 i.callback(this.options.afterCalculateTickRotation, [this]) 6800 }, beforeFit: function () { 6801 i.callback(this.options.beforeFit, [this]) 6802 }, fit: function () { 6803 var t = this, o = t.minSize = {width: 0, height: 0}, a = t.options, r = a.ticks, s = a.scaleLabel, l = a.gridLines, c = a.display, u = t.isHorizontal(), d = n(r), h = 1.5 * n(s).size, p = a.gridLines.tickMarkLength; 6804 if (o.width = u ? t.isFullWidth() ? t.maxWidth - t.margins.left - t.margins.right : t.maxWidth : c && l.drawTicks ? p : 0, o.height = u ? c && l.drawTicks ? p : 0 : t.maxHeight, s.display && c && (u ? o.height += h : o.width += h), r.display && c) { 6805 var f = i.longestText(t.ctx, d.font, t.ticks, t.longestTextCache), m = i.numberOfLabelLines(t.ticks), g = .5 * d.size; 6806 if (u) { 6807 t.longestLabelWidth = f; 6808 var v = i.toRadians(t.labelRotation), y = Math.cos(v), b = Math.sin(v) * f + d.size * m + g * m; 6809 o.height = Math.min(t.maxHeight, o.height + b), t.ctx.font = d.font; 6810 var x = t.ticks[0], w = e(t.ctx, x, d.font), k = t.ticks[t.ticks.length - 1], C = e(t.ctx, k, d.font); 6811 0 !== t.labelRotation ? (t.paddingLeft = "bottom" === a.position ? y * w + 3 : y * g + 3, t.paddingRight = "bottom" === a.position ? y * g + 3 : y * C + 3) : (t.paddingLeft = w / 2 + 3, t.paddingRight = C / 2 + 3) 6812 } else 6813 r.mirror ? f = 0 : f += t.options.ticks.padding, o.width = Math.min(t.maxWidth, o.width + f), t.paddingTop = d.size / 2, t.paddingBottom = d.size / 2 6814 } 6815 t.handleMargins(), t.width = o.width, t.height = o.height 6816 }, handleMargins: function () { 6817 var t = this; 6818 t.margins && (t.paddingLeft = Math.max(t.paddingLeft - t.margins.left, 0), t.paddingTop = Math.max(t.paddingTop
6818- t.margins.top, 0), t.paddingRight = Math.max(t.paddingRight - t.margins.right, 0), t.paddingBottom = Math.max(t.paddingBottom - t.margins.bottom, 0)) 6819 }, afterFit: function () { 6820 i.callback(this.options.afterFit, [this]) 6821 }, isHorizontal: function () { 6822 return"top" === this.options.position || "bottom" === this.options.position 6823 }, isFullWidth: function () { 6824 return this.options.fullWidth 6825 }, getRightValue: function (t) { 6826 return null === t || void 0 === t ? NaN : "number" != typeof t || isFinite(t) ? "object" == typeof t ? t instanceof Date || t.isValid ? t : this.getRightValue(this.isHorizontal() ? t.x : t.y) : t : NaN 6827 }, getLabelForIndex: i.noop, getPixelForValue: i.noop, getValueForPixel: i.noop, getPixelForTick: function (t, e) { 6828 var n = this; 6829 if (n.isHorizontal()) { 6830 var i = (n.width - (n.paddingLeft + n.paddingRight)) / Math.max(n.ticks.length - (n.options.gridLines.offsetGridLines ? 0 : 1), 1), o = i * t + n.paddingLeft; 6831 e && (o += i / 2); 6832 var a = n.left + Math.round(o); 6833 return a += n.isFullWidth() ? n.margins.left : 0 6834 } 6835 var r = n.height - (n.paddingTop + n.paddingBottom); 6836 return n.top + t * (r / (n.ticks.length - 1)) 6837 }, getPixelForDecimal: function (t) { 6838 var e = this; 6839 if (e.isHorizontal()) { 6840 var n = (e.width - (e.paddingLeft + e.paddingRight)) * t + e.paddingLeft, i = e.left + Math.round(n); 6841 return i += e.isFullWidth() ? e.margins.left : 0 6842 } 6843 return e.top + t * e.height 6844 }, getBasePixel: function () { 6845 return this.getPixelForValue(this.getBaseValue()) 6846 }, getBaseValue: function () { 6847 var t = this, e = t.min, n = t.max; 6848 return t.beginAtZero ? 0 : e < 0 && n < 0 ? n : e > 0 && n > 0 ? e : 0 6849 }, draw: function (e) { 6850 var o = this, a = o.options; 6851 if (a.display) { 6852 var r, s, l = o.ctx, c = t.defaults.global, u = a.ticks, d = a.gridLines, h = a.scaleLabel, p = 0 !== o.labelRotation, f = u.autoSkip, m = o.isHorizontal(); 6853 u.maxTicksLimit && (s = u.maxTicksLimit); 6854 var g = i.getValueOrDefault(u.fontColor, c.defaultFontColor), v = n(u), y = d.drawTicks ? d.tickMarkLength : 0, b = i.getValueOrDefault(h.fontColor, c.defaultFontColor), x = n(h), w = i.toRadians(o.labelRotation), k = Math.cos(w), C = o.longestLabelWidth * k; 6855 l.fillStyle = g; 6856 var S = []; 6857 if (m) { 6858 if (r = !1, (C + u.autoSkipPadding) * o.ticks.length > o.width - (o.paddingLeft + o.paddingRight) && (r = 1 + Math.floor((C + u.autoSkipPadding) * o.ticks.length / (o.width - (o.paddingLeft + o.paddingRight)))), s && o.ticks.length > s) 6859 for (; !r || o.ticks.length / (r || 1) > s; ) 6860 r || (r = 1), r += 1; 6861 f || (r = !1) 6862 } 6863 var T = "right" === a.position ? o.left : o.right - y, M = "right" === a.position ? o.left + y : o.right, I = "bottom" === a.position ? o.top : o.bottom - y, A = "bottom" === a.position ? o.top + y : o.bottom; 6864 if (i.each(o.ticks, function (t, n) { 6865 if (void 0 !== t && null !== t) { 6866 var s = o.ticks.length === n + 1; 6867 if ((!(r > 1 && n % r > 0 || n % r == 0 && n + r >= o.ticks.length) || s) && void 0 !== t && null !== t) { 6868 var l, h, f, g; 6869 n === (void 0 !== o.zeroLineIndex ? o.zeroLineIndex : 0) ? (l = d.zeroLineWi
6869dth, h = d.zeroLineColor, f = d.zeroLineBorderDash, g = d.zeroLineBorderDashOffset) : (l = i.getValueAtIndexOrDefault(d.lineWidth, n), h = i.getValueAtIndexOrDefault(d.color, n), f = i.getValueOrDefault(d.borderDash, c.borderDash), g = i.getValueOrDefault(d.borderDashOffset, c.borderDashOffset)); 6870 var v, b, x, k, C, P, _, D, E, O, L = "middle", F = "middle"; 6871 if (m) { 6872 "bottom" === a.position ? (F = p ? "middle" : "top", L = p ? "right" : "center", O = o.top + y) : (F = p ? "middle" : "bottom", L = p ? "left" : "center", O = o.bottom - y); 6873 var R = o.getPixelForTick(n) + i.aliasPixel(l); 6874 E = o.getPixelForTick(n, d.offsetGridLines) + u.labelOffset, v = x = C = _ = R, b = I, k = A, P = e.top, D = e.bottom 6875 } else { 6876 var W, V = "left" === a.position, z = u.padding; 6877 u.mirror ? (L = V ? "left" : "right", W = z) : (L = V ? "right" : "left", W = y + z), E = V ? o.right - W : o.left + W; 6878 var N = o.getPixelForTick(n); 6879 N += i.aliasPixel(l), O = o.getPixelForTick(n, d.offsetGridLines), v = T, x = M, C = e.left, _ = e.right, b = k = P = D = N 6880 } 6881 S.push({tx1: v, ty1: b, tx2: x, ty2: k, x1: C, y1: P, x2: _, y2: D, labelX: E, labelY: O, glWidth: l, glColor: h, glBorderDash: f, glBorderDashOffset: g, rotation: -1 * w, label: t, textBaseline: F, textAlign: L}) 6882 } 6883 } 6884 }), i.each(S, function (t) { 6885 if (d.display && (l.save(), l.lineWidth = t.glWidth, l.strokeStyle = t.glColor, l.setLineDash && (l.setLineDash(t.glBorderDash), l.lineDashOffset = t.glBorderDashOffset), l.beginPath(), d.drawTicks && (l.moveTo(t.tx1, t.ty1), l.lineTo(t.tx2, t.ty2)), d.drawOnChartArea && (l.moveTo(t.x1, t.y1), l.lineTo(t.x2, t.y2)), l.stroke(), l.restore()), u.display) { 6886 l.save(), l.translate(t.labelX, t.labelY), l.rotate(t.rotation), l.font = v.font, l.textBaseline = t.textBaseline, l.textAlign = t.textAlign; 6887 var e = t.label; 6888 if (i.isArray(e)) 6889 for (var n = 0, o = 0; n < e.length; ++n) 6890 l.fillText("" + e[n], 0, o), o += 1.5 * v.size; 6891 else 6892 l.fillText(e, 0, 0); 6893 l.restore() 6894 } 6895 }), h.display) { 6896 var P, _, D = 0; 6897 if (m) 6898 P = o.left + (o.right - o.left) / 2, _ = "bottom" === a.position ? o.bottom - x.size / 2 : o.top + x.size / 2; 6899 else { 6900 var E = "left" === a.position; 6901 P = E ? o.left + x.size / 2 : o.right - x.size / 2, _ = o.top + (o.bottom - o.top) / 2, D = E ? -.5 * Math.PI : .5 * Math.PI 6902 } 6903 l.save(), l.translate(P, _), l.rotate(D), l.textAlign = "center", l.textBaseline = "middle", l.fillStyle = b, l.font = x.font, l.fillText(h.labelString, 0, 0
6903), l.restore() 6904 } 6905 if (d.drawBorder) { 6906 l.lineWidth = i.getValueAtIndexOrDefault(d.lineWidth, 0), l.strokeStyle = i.getValueAtIndexOrDefault(d.color, 0); 6907 var O = o.left, L = o.right, F = o.top, R = o.bottom, W = i.aliasPixel(l.lineWidth); 6908 m ? (F = R = "top" === a.position ? o.bottom : o.top, F += W, R += W) : (O = L = "left" === a.position ? o.right : o.left, O += W, L += W), l.beginPath(), l.moveTo(O, F), l.lineTo(L, R), l.stroke() 6909 } 6910 } 6911 }}) 6912 } 6913 }, {}], 32: [function (t, e, n) { 6914 "use strict"; 6915 e.exports = function (t) { 6916 var e = t.helpers; 6917 t.scaleService = {constructors: {}, defaults: {}, registerScaleType: function (t, n, i) { 6918 this.constructors[t] = n, this.defaults[t] = e.clone(i) 6919 }, getScaleConstructor: function (t) { 6920 return this.constructors.hasOwnProperty(t) ? this.constructors[t] : void 0 6921 }, getScaleDefaults: function (n) { 6922 return this.defaults.hasOwnProperty(n) ? e.scaleMerge(t.defaults.scale, this.defaults[n]) : {} 6923 }, updateScaleDefaults: function (t, n) { 6924 var i = this.defaults; 6925 i.hasOwnProperty(t) && (i[t] = e.extend(i[t], n)) 6926 }, addScalesToLayout: function (n) { 6927 e.each(n.scales, function (e) { 6928 e.fullWidth = e.options.fullWidth, e.position = e.options.position, e.weight = e.options.weight, t.layoutService.addBox(n, e) 6929 }) 6930 }} 6931 } 6932 }, {}], 33: [function (t, e, n) { 6933 "use strict"; 6934 e.exports = function (t) { 6935 var e = t.helpers; 6936 t.Ticks = {generators: {linear: function (t, n) { 6937 var i, o = []; 6938 if (t.stepSize && t.stepSize > 0) 6939 i = t.stepSize; 6940 else { 6941 var a = e.niceNum(n.max - n.min, !1); 6942 i = e.niceNum(a / (t.maxTicks - 1), !0) 6943 } 6944 var r = Math.floor(n.min / i) * i, s = Math.ceil(n.max / i) * i; 6945 t.min && t.max && t.stepSize && e.almostWhole((t.max - t.min) / t.stepSize, i / 1e3) && (r = t.min, s = t.max); 6946 var l = (s - r) / i; 6947 l = e.almostEquals(l, Math.round(l), i / 1e3) ? Math.round(l) : Math.ceil(l), o.push(void 0 !== t.min ? t.min : r); 6948 for (var c = 1; c < l; ++c) 6949 o.push(r + c * i); 6950 return o.push(void 0 !== t.max ? t.max : s), o 6951 }, logarithmic: function (t, n) { 6952 var i, o, a = [], r = e.getValueOrDefault, s = r(t.min, Math.pow(10, Math.floor(e.log10(n.min)))), l = Math.floor(e.log10(n.max)), c = Math.ceil(n.max / Math.pow(10, l)); 6953 0 === s ? (i = Math.floor(e.log10(n.minNotZero)), o = Math.floor(n.minNotZero / Math.pow(10, i)), a.push(s), s = o * Math.pow(10, i)) : (i = Math.floor(e.log10(s)), o = Math.floor(s / Math.pow(10, i))); 6954 do { 6955 a.push(s), 10 === ++o && (o = 1, ++i), s = o * Math.pow(10, i) 6956 } while (i < l || i === l && o < c); 6957 var u = r(t.max, s); 6958 return a.push(u), a 6959 }}, formatters: {values: function (t) { 6960 return e.isArray(t) ? t : "" + t 6961 }, linear: function (t, n, i) { 6962 var o = i.length > 3 ? i[2] - i[1] : i[1] - i[0]; 6963 Math.abs(o) >
6963 1 && t !== Math.floor(t) && (o = t - Math.floor(t)); 6964 var a = e.log10(Math.abs(o)), r = ""; 6965 if (0 !== t) { 6966 var s = -1 * Math.floor(a); 6967 s = Math.max(Math.min(s, 20), 0), r = t.toFixed(s) 6968 } else 6969 r = "0"; 6970 return r 6971 }, logarithmic: function (t, n, i) { 6972 var o = t / Math.pow(10, Math.floor(e.log10(t))); 6973 return 0 === t ? "0" : 1 === o || 2 === o || 5 === o || 0 === n || n === i.length - 1 ? t.toExponential() : "" 6974 }}} 6975 } 6976 }, {}], 34: [function (t, e, n) { 6977 "use strict"; 6978 e.exports = function (t) { 6979 function e(t, e) { 6980 var n = l.color(t); 6981 return n.alpha(e * n.alpha()).rgbaString() 6982 } 6983 function n(t, e) { 6984 return e && (l.isArray(e) ? Array.prototype.push.apply(t, e) : t.push(e)), t 6985 } 6986 function i(t) { 6987 var e = t._xScale, n = t._yScale || t._scale, i = t._index, o = t._datasetIndex; 6988 return{xLabel: e ? e.getLabelForIndex(i, o) : "", yLabel: n ? n.getLabelForIndex(i, o) : "", index: i, datasetIndex: o, x: t._model.x, y: t._model.y} 6989 } 6990 function o(e) { 6991 var n = t.defaults.global, i = l.getValueOrDefault; 6992 return{xPadding: e.xPadding, yPadding: e.yPadding, xAlign: e.xAlign, yAlign: e.yAlign, bodyFontColor: e.bodyFontColor, _bodyFontFamily: i(e.bodyFontFamily, n.defaultFontFamily), _bodyFontStyle: i(e.bodyFontStyle, n.defaultFontStyle), _bodyAlign: e.bodyAlign, bodyFontSize: i(e.bodyFontSize, n.defaultFontSize), bodySpacing: e.bodySpacing, titleFontColor: e.titleFontColor, _titleFontFamily: i(e.titleFontFamily, n.defaultFontFamily), _titleFontStyle: i(e.titleFontStyle, n.defaultFontStyle), titleFontSize: i(e.titleFontSize, n.defaultFontSize), _titleAlign: e.titleAlign, titleSpacing: e.titleSpacing, titleMarginBottom: e.titleMarginBottom, footerFontColor: e.footerFontColor, _footerFontFamily: i(e.footerFontFamily, n.defaultFontFamily), _footerFontStyle: i(e.footerFontStyle, n.defaultFontStyle), footerFontSize: i(e.footerFontSize, n.defaultFontSize), _footerAlign: e.footerAlign, footerSpacing: e.footerSpacing, footerMarginTop: e.footerMarginTop, caretSize: e.caretSize, cornerRadius: e.cornerRadius, backgroundColor: e.backgroundColor, opacity: 0, legendColorBackground: e.multiKeyBackground, displayColors: e.displayColors, borderColor: e.borderColor, borderWidth: e.borderWidth} 6993 } 6994 function a(t, e) { 6995 var n = t._chart.ctx, i = 2 * e.yPadding, o = 0, a = e.body, r = a.reduce(function (t, e) { 6996 return t + e.before.length + e.lines.length + e.after.length 6997 }, 0); 6998 r += e.beforeBody.length + e.afterBody.length; 6999 var s = e.title.length, c = e.footer.length, u = e.titleFontSize, d = e.bodyFontSize, h = e.footerFontSize; 7000 i += s * u, i += s ? (s - 1) * e.titleSpacing : 0, i += s ? e.titleMarginBottom : 0, i += r * d, i += r ? (r - 1) * e.bodySpacing : 0, i += c ? e.footerMarginTop : 0, i += c * h, i += c ? (c - 1) * e.footerSpacing : 0; 7001 var p = 0, f = function (t) { 7002 o = Math.max(o, n.measureText(t).width + p) 7003 }; 7004 return n.font = l.fontString(u, e._titleFontStyle, e._titleFontFamily), l.each(e.title, f), n.font = l.fontString(d, e._bodyFontStyle, e._bodyFontFamily), l.each(e.beforeBody.concat(e.afterBody), f), p = e.displayColors ? d + 2 : 0, l.each(a, function (t) { 7005 l.each(t.before, f), l.each(t.lines, f), l.each(t.after, f) 7006 }), p = 0, n.font = l.fontString(h, e._footerFontStyle, e._footerFontFamily), l.each(e.footer, f), o += 2 * e.xPadding, {width: o, height: i} 7007 } 7008 function r(t, e) { 7009 var n = t._model, i = t._chart, o = t._chart.chartArea, a = "center", r = "center"; 7010 n.y < e.height ? r = "top" : n.y > i.height - e.height && (r = "bottom"); 7011 var s, l, c, u, d, h = (o.left + o.right) / 2, p = (o.top + o.bottom) / 2; 7012 "center" === r ? (s = function (t) { 7013 return t <= h 7014 }, l = function (t) { 7015 return t > h 7016 }) : (s = function (t) { 7017 return t <= e.width / 2 7018 }, l = function (t) { 7019 return t >= i.width - e.width / 2 7020 }), c = function (t) { 7021 return t + e.width > i.width 7022 }, u = function (t) { 7023 return t - e.width < 0 7024 }, d = function (t) { 7025 return t <= p ? "top" : "bottom" 7026 }, s(n.x) ? (a = "left", c(n.x) && (a = "center", r = d(n.y))) : l(n.x) && (a = "right", u(n.x) && (a = "center", r = d(n.y))); 7027 var f = t._options; 7028 return{xAlign: f.xAlign ? f.xAlign : a, yAlign: f.yAlign ? f.yAlign : r} 7029 } 7030 function s(t, e, n) { 7031 var i = t.x, o = t.y, a = t.caretSize, r = t.caretPadding, s = t.cornerRadius, l = n.xAlign, c = n.yAlign, u = a + r, d = s + r; 7032 return"right" === l ? i -= e.width : "center" === l && (i -= e.width / 2), "top" === c ? o += u : o -= "bottom" === c ? e.height + u : e.height / 2, "center" === c ? "left" === l ? i += u : "right" === l && (i -= u) : "left" === l ? i -= d : "right" === l && (i += d), {x: i, y: o} 7033 } 7034 var l = t.helpers; 7035 t.defaults.global.tooltips = {enabled: !0, custom: null, mode: "nearest", position: "average", intersect: !0, backgroundColor: "rgba(0,0,0,0.8)", titleFontStyle: "bold", titleSpacing: 2, titleMarginBottom: 6, titleFontColor: "#fff", titleAlign: "left", bodySpacing: 2, bodyFontColor: "#fff", bodyAlign: "left", footerFontStyle: "bold", footerSpacing: 2, footerMarginTop: 6, footerFontColor: "#fff", footerAlign: "left", yPadding: 6, xPadding: 6, caretPadding: 2, caretSize: 5, cornerRadius: 6, multiKeyBackgroun
7035d: "#fff", displayColors: !0, borderColor: "rgba(0,0,0,0)", borderWidth: 0, callbacks: {beforeTitle: l.noop, title: function (t, e) { 7036 var n = "", i = e.labels, o = i ? i.length : 0; 7037 if (t.length > 0) { 7038 var a = t[0]; 7039 a.xLabel ? n = a.xLabel : o > 0 && a.index < o && (n = i[a.index]) 7040 } 7041 return n 7042 }, afterTitle: l.noop, beforeBody: l.noop, beforeLabel: l.noop, label: function (t, e) { 7043 var n = e.datasets[t.datasetIndex].label || ""; 7044 return n && (n += ": "), n += t.yLabel 7045 }, labelColor: function (t, e) { 7046 var n = e.getDatasetMeta(t.datasetIndex).data[t.index]._view; 7047 return{borderColor: n.borderColor, backgroundColor: n.backgroundColor} 7048 }, afterLabel: l.noop, afterBody: l.noop, beforeFooter: l.noop, footer: l.noop, afterFooter: l.noop}}, t.Tooltip = t.Element.extend({initialize: function () { 7049 this._model = o(this._options) 7050 }, getTitle: function () { 7051 var t = this, e = t._options.callbacks, i = e.beforeTitle.apply(t, arguments), o = e.title.apply(t, arguments), a = e.afterTitle.apply(t, arguments), r = []; 7052 return r = n(r, i), r = n(r, o), r = n(r, a) 7053 }, getBeforeBody: function () { 7054 var t = this._options.callbacks.beforeBody.apply(this, arguments); 7055 return l.isArray(t) ? t : void 0 !== t ? [t] : [] 7056 }, getBody: function (t, e) { 7057 var i = this, o = i._options.callbacks, a = []; 7058 return l.each(t, function (t) { 7059 var r = {before: [], lines: [], after: []}; 7060 n(r.before, o.beforeLabel.call(i, t, e)), n(r.lines, o.label.call(i, t, e)), n(r.after, o.afterLabel.call(i, t, e)), a.push(r) 7061 }), a 7062 }, getAfterBody: function () { 7063 var t = this._options.callbacks.afterBody.apply(this, arguments); 7064 return l.isArray(t) ? t : void 0 !== t ? [t] : [] 7065 }, getFooter: function () { 7066 var t = this, e = t._options.callbacks, i = e.beforeFooter.apply(t, arguments), o = e.footer.apply(t, arguments), a = e.afterFooter.apply(t, arguments), r = []; 7067 return r = n(r, i), r = n(r, o), r = n(r, a) 7068 }, update: function (e) { 7069 var n, c, u = this, d = u._options, h = u._model, p = u._model = o(d), f = u._active, m = u._data, g = {xAlign: h.xAlign, yAlign: h.yAlign}, v = {x: h.x, y: h.y}, y = {width: h.width, height: h.height}, b = {x: h.caretX, y: h.caretY}; 7070 if (f.length) { 7071 p.opacity = 1; 7072 var x = []; 7073 b = t.Tooltip.positioners[d.position](f, u._eventPosition); 7074 var w = []; 7075 for (n = 0, c = f.length; n < c; ++n) 7076 w.push(i(f[n])); 7077 d.filter && (w = w.filter(function (t) { 7078 return d.filter(t, m) 7079 })), d.itemSort && (w = w.sort(function (t, e) { 7080 return d.itemSort(t, e, m) 7081 })), l.each(w, function (t) { 7082 x.push(d.callbacks.labelColor.call(u, t, u._chart)) 7083 }), p.title = u.getTitle(w, m), p.beforeBody = u.getBeforeBody(w, m), p.body = u.getBody(w, m), p.afterBody = u.getAfterBody(w, m), p.footer = u.getFooter(w, m), p.x = Math.round(b.x), p.y = Math.round(b.y), p.caretPadding = d.caretPadding, p.labelColors = x, p.dataPoints = w, v = s(p, y = a(this, p), g = r(this, y)) 7084 } else 7085 p.opacity = 0; 7086 return p.xAlign = g.xAlign, p.yAlign = g.yAlign, p.x = v.x, p.y = v.y, p.width = y.width, p.height = y.height, p.caretX = b.x, p.caretY = b.y, u._model = p, e && d.custom && d.custom.call(u, p), u 7087 }, drawCaret: function (t, e) { 7088 var n = this._chart.ctx, i = this._view, o = this.getCaretPosition(t, e, i); 7089 n.lineTo(o.x1, o.y1), n.lineTo(o.x2, o.y2), n.lineTo(o.x3, o.y3) 7090 }, getCaretPosition: function (t, e, n) { 7091 var i, o, a, r, s, l, c = n.caretSize, u = n.cornerRadius, d = n.xAlign, h = n.yAlign, p = t.x, f = t.y, m = e.width, g = e.height; 7092 if ("center" === h) 7093 s = f + g / 2, "left" === d ? (o = (i = p) - c, a = i, r = s + c, l = s - c) : (o = (i = p + m) + c, a = i, r = s - c, l = s + c); 7094 else if ("left" === d ? (i = (o = p + u + c) - c, a = o + c) : "right" === d ? (i = (o = p + m - u - c) - c, a = o + c) : (i = (o = p + m / 2) - c, a = o + c), "top" === h) 7095 s = (r = f) - c, l = r; 7096 else { 7097 s = (r = f + g) + c, l = r; 7098 var v = a; 7099 a = i, i = v 7100 } 7101 return{x1: i, x2: o, x3: a, y1: r, y2: s, y3: l} 7102 }, drawTitle: function (t, n, i, o) { 7103 var a = n.title; 7104 if (a.length) { 7105 i.textAlign = n._titleAlign, i.textBaseline = "top"; 7106 var r = n.titleFontSize, s = n.titleSpacing; 7107 i.fillStyle = e(n.titleFontColor, o), i.font = l.fontString(r, n._titleFontStyle, n._titleFontFamily); 7108 var c, u; 7109 for (c = 0, u = a.length; c < u; ++c) 7110 i.fillText(a[c], t.x, t.y), t.y += r + s, c + 1 === a.length && (t.y += n.titleMarginBottom - s) 7111 } 7112 }, drawBody: function (t, n, i, o) { 7113 var a = n.bodyFontSize, r = n.bodySpacing, s = n.body; 7114 i.textAlign = n._bodyAlign, i.textBaseline = "top";
7115 var c = e(n.bodyFontColor, o); 7116 i.fillStyle = c, i.font = l.fontString(a, n._bodyFontStyle, n._bodyFontFamily); 7117 var u = 0, d = function (e) { 7118 i.fillText(e, t.x + u, t.y), t.y += a + r 7119 }; 7120 l.each(n.beforeBody, d); 7121 var h = n.displayColors; 7122 u = h ? a + 2 : 0, l.each(s, function (r, s) { 7123 l.each(r.before, d), l.each(r.lines, function (r) { 7124 h && (i.fillStyle = e(n.legendColorBackground, o), i.fillRect(t.x, t.y, a, a), i.strokeStyle = e(n.labelColors[s].borderColor, o), i.strokeRect(t.x, t.y, a, a), i.fillStyle = e(n.labelColors[s].backgroundColor, o), i.fillRect(t.x + 1, t.y + 1, a - 2, a - 2), i.fillStyle = c), d(r) 7125 }), l.each(r.after, d) 7126 }), u = 0, l.each(n.afterBody, d), t.y -= r 7127 }, drawFooter: function (t, n, i, o) { 7128 var a = n.footer; 7129 a.length && (t.y += n.footerMarginTop, i.textAlign = n._footerAlign, i.textBaseline = "top", i.fillStyle = e(n.footerFontColor, o), i.font = l.fontString(n.footerFontSize, n._footerFontStyle, n._footerFontFamily), l.each(a, function (e) { 7130 i.fillText(e, t.x, t.y), t.y += n.footerFontSize + n.footerSpacing 7131 })) 7132 }, drawBackground: function (t, n, i, o, a) { 7133 i.fillStyle = e(n.backgroundColor, a), i.strokeStyle = e(n.borderColor, a), i.lineWidth = n.borderWidth; 7134 var r = n.xAlign, s = n.yAlign, l = t.x, c = t.y, u = o.width, d = o.height, h = n.cornerRadius; 7135 i.beginPath(), i.moveTo(l + h, c), "top" === s && this.drawCaret(t, o), i.lineTo(l + u - h, c), i.quadraticCurveTo(l + u, c, l + u, c + h), "center" === s && "right" === r && this.drawCaret(t, o), i.lineTo(l + u, c + d - h), i.quadraticCurveTo(l + u, c + d, l + u - h, c + d), "bottom" === s && this.drawCaret(t, o), i.lineTo(l + h, c + d), i.quadraticCurveTo(l, c + d, l, c + d - h), "center" === s && "left" === r && this.drawCaret(t, o), i.lineTo(l, c + h), i.quadraticCurveTo(l, c, l + h, c), i.closePath(), i.fill(), n.borderWidth > 0 && i.stroke() 7136 }, draw: function () { 7137 var t = this._chart.ctx, e = this._view; 7138 if (0 !== e.opacity) { 7139 var n = {width: e.width, height: e.height}, i = {x: e.x, y: e.y}, o = Math.abs(e.opacity < .001) ? 0 : e.opacity, a = e.title.length || e.beforeBody.length || e.body.length || e.afterBody.length || e.footer.length; 7140 this._options.enabled && a && (this.drawBackground(i, e, t, n, o), i.x += e.xPadding, i.y += e.yPadding, this.drawTitle(i, e, t, o), this.drawBody(i, e, t, o), this.drawFooter(i, e, t, o)) 7141 } 7142 }, handleEvent: function (t) { 7143 var e = this, n = e._options, i = !1; 7144 if (e._lastActive = e._lastActive || [], "mouseout" === t.type ? e._active = [] : e._active = e._chart.getElementsAtEventForMode(t, n.mode, n), !(i = !l.arrayEquals(e._active, e._lastActive))) 7145 return!1; 7146 if (e._lastActive = e._active, n.enabled || n.custom) { 7147 e._eventPosition = {x: t.x, y: t.y}; 7148 var o = e._model; 7149 e.update(!0), e.pivot(), i |= o.x !== e._model.x || o.y !== e._model.y 7150 } 7151 return i 7152 }}), t.Tooltip.positioners = {average: function (t) { 7153 if (!t.length) 7154 return!1; 7155 var e, n, i = 0, o = 0, a = 0; 7156 for (e = 0, n = t.length; e < n; ++e) { 7157 var r = t[e]; 7158 if (r && r.hasValue()) { 7159 var s = r.tooltipPosition(); 7160 i += s.x, o += s.y, ++a 7161 } 7162 } 7163 return{x: Math.round(i / a), y: Math.round(o / a)} 7164 }, nearest: function (t, e) { 7165 var n, i, o, a = e.x, r = e.y, s =
7165Number.POSITIVE_INFINITY; 7166 for (i = 0, o = t.length; i < o; ++i) { 7167 var c = t[i]; 7168 if (c && c.hasValue()) { 7169 var u = c.getCenterPoint(), d = l.distanceBetweenPoints(e, u); 7170 d < s && (s = d, n = c) 7171 } 7172 } 7173 if (n) { 7174 var h = n.tooltipPosition(); 7175 a = h.x, r = h.y 7176 } 7177 return{x: a, y: r} 7178 }} 7179 } 7180 }, {}], 35: [function (t, e, n) { 7181 "use strict"; 7182 e.exports = function (t) { 7183 var e = t.helpers, n = t.defaults.global; 7184 n.elements.arc = {backgroundColor: n.defaultColor, borderColor: "#fff", borderWidth: 2}, t.elements.Arc = t.Element.extend({inLabelRange: function (t) { 7185 var e = this._view; 7186 return!!e && Math.pow(t - e.x, 2) < Math.pow(e.radius + e.hoverRadius, 2) 7187 }, inRange: function (t, n) { 7188 var i = this._view; 7189 if (i) { 7190 for (var o = e.getAngleFromPoint(i, {x: t, y: n}), a = o.angle, r = o.distance, s = i.startAngle, l = i.endAngle; l < s; ) 7191 l += 2 * Math.PI; 7192 for (; a > l; ) 7193 a -= 2 * Math.PI; 7194 for (; a < s; ) 7195 a += 2 * Math.PI; 7196 var c = a >= s && a <= l, u = r >= i.innerRadius && r <= i.outerRadius; 7197 return c && u 7198 } 7199 return!1 7200 }, getCenterPoint: function () { 7201 var t = this._view, e = (t.startAngle + t.endAngle) / 2, n = (t.innerRadius + t.outerRadius) / 2; 7202 return{x: t.x + Math.cos(e) * n, y: t.y + Math.sin(e) * n} 7203 }, getArea: function () { 7204 var t = this._view; 7205 return Math.PI * ((t.endAngle - t.startAngle) / (2 * Math.PI)) * (Math.pow(t.outerRadius, 2) - Math.pow(t.innerRadius, 2)) 7206 }, tooltipPosition: function () { 7207 var t = this._view, e = t.startAngle + (t.endAngle - t.startAngle) / 2, n = (t.outerRadius - t.innerRadius) / 2 + t.innerRadius; 7208 return{x: t.x + Math.cos(e) * n, y: t.y + Math.sin(e) * n} 7209 }, draw: function () { 7210 var t = this._chart.ctx, e = this._view, n = e.startAngle, i = e.endAngle; 7211 t.beginPath(), t.arc(e.x, e.y, e.outerRadius, n, i), t.arc(e.x, e.y, e.innerRadius, i, n, !0), t.closePath(), t.strokeStyle = e.borderColor, t.lineWidth = e.borderWidth, t.fillStyle = e.backgroundColor, t.fill(), t.lineJoin = "bevel", e.borderWidth && t.stroke() 7212 }}) 7213 } 7214 }, {}], 36: [function (t, e, n) { 7215 "use strict"; 7216 e.exports = function (t) { 7217 var e = t.helpers, n = t.defaults.global; 7218 t.defaults.global.elements.line = {tension: .4, backgroundColor: n.defaultColor, borderWidth: 3, borderColor: n.defaultColor, borderCapStyle: "butt", borderDash: [], borderDashOffset: 0, borderJoinStyle: "miter", capBezierPoints: !0, fill: !0}, t.elements.Line = t.Element.extend({draw: function () { 7219 var t, i, o, a, r = this, s = r._view, l = r._chart.ctx, c = s.spanGaps, u = r._children.slice(), d = n.elements.line, h = -1; 7220 for (r._loop && u.length && u.push(u[0]), l.save(), l.lineCap = s.borderCapStyle || d.borderCapStyle, l.setLineDash && l.setLineDash(s.borderDash || d.borderDash), l.lineDashOffset = s.borderDashOffset || d.borderDashOffset, l.lineJoin = s.borderJoinStyle || d.borderJoinStyle, l.lineWidth = s.borderWidth || d.borderWidth, l.strokeStyle = s.borderColor || n.defaultColor, l.beginPath(), h = - 1, t = 0; t < u.length; ++t) 7221 i = u[t], o = e.previousItem(u, t), a = i._view, 0 === t ? a.skip || (l.moveTo(a.x, a.y), h = t)
7221: (o = -1 === h ? o : u[h], a.skip || (h !== t - 1 && !c || -1 === h ? l.moveTo(a.x, a.y) : e.canvas.lineTo(l, o._view, i._view), h = t)); 7222 l.stroke(), l.restore() 7223 }}) 7224 } 7225 }, {}], 37: [function (t, e, n) { 7226 "use strict"; 7227 e.exports = function (t) { 7228 function e(t) { 7229 var e = this._view; 7230 return!!e && Math.pow(t - e.x, 2) < Math.pow(e.radius + e.hitRadius, 2) 7231 } 7232 var n = t.helpers, i = t.defaults.global, o = i.defaultColor; 7233 i.elements.point = {radius: 3, pointStyle: "circle", backgroundColor: o, borderWidth: 1, borderColor: o, hitRadius: 1, hoverRadius: 4, hoverBorderWidth: 1}, t.elements.Point = t.Element.extend({inRange: function (t, e) { 7234 var n = this._view; 7235 return!!n && Math.pow(t - n.x, 2) + Math.pow(e - n.y, 2) < Math.pow(n.hitRadius + n.radius, 2) 7236 }, inLabelRange: e, inXRange: e, inYRange: function (t) { 7237 var e = this._view; 7238 return!!e && Math.pow(t - e.y, 2) < Math.pow(e.radius + e.hitRadius, 2) 7239 }, getCenterPoint: function () { 7240 var t = this._view; 7241 return{x: t.x, y: t.y} 7242 }, getArea: function () { 7243 return Math.PI * Math.pow(this._view.radius, 2) 7244 }, tooltipPosition: function () { 7245 var t = this._view; 7246 return{x: t.x, y: t.y, padding: t.radius + t.borderWidth} 7247 }, draw: function (e) { 7248 var a = this._view, r = this._model, s = this._chart.ctx, l = a.pointStyle, c = a.radius, u = a.x, d = a.y, h = t.helpers.color, p = 0; 7249 a.skip || (s.strokeStyle = a.borderColor || o, s.lineWidth = n.getValueOrDefault(a.borderWidth, i.elements.point.borderWidth), s.fillStyle = a.backgroundColor || o, void 0 !== e && (r.x < e.left || 1.01 * e.right < r.x || r.y < e.top || 1.01 * e.bottom < r.y) && (r.x < e.left ? p = (u - r.x) / (e.left - r.x) : 1.01 * e.right < r.x ? p = (r.x - u) / (r.x - e.right) : r.y < e.top ? p = (d - r.y) / (e.top - r.y) : 1.01 * e.bottom < r.y && (p = (r.y - d) / (r.y - e.bottom)), p = Math.round(100 * p) / 100, s.strokeStyle = h(s.strokeStyle).alpha(p).rgbString(), s.fillStyle = h(s.fillStyle).alpha(p).rgbString()), t.canvasHelpers.drawPoint(s, l, c, u, d)) 7250 }}) 7251 } 7252 }, {}], 38: [function (t, e, n) { 7253 "use strict"; 7254 e.exports = function (t) { 7255 function e(t) { 7256 return void 0 !== t._view.width 7257 } 7258 function n(t) { 7259 var n, i, o, a, r = t._view; 7260 if (e(t)) { 7261 var s = r.width / 2; 7262 n = r.x - s, i = r.x + s, o = Math.min(r.y, r.base), a = Math.max(r.y, r.base) 7263 } else { 7264 var l = r.height / 2; 7265 n = Math.min(r.x, r.base), i = Math.max(r.x, r.base), o = r.y - l, a = r.y + l 7266 } 7267 return{left: n, top: o, right: i, bottom: a} 7268 } 7269 var i = t.defaults.global; 7270 i.elements.rectangle = {backgroundColor: i.defaultColor, borderWidth: 0, borderColor: i.defaultColor, borderSkipped: "bottom"}, t.elements.Rectangle = t.Element.extend({draw: function () { 7271 function t(t) { 7272 return v[(y + t) % 4] 7273 } 7274 var e, n, i, o, a, r, s, l = this._chart.ctx, c = this._view, u = c.borderWidth; 7275 if (c.horizontal ? (e = c.base, n = c.x, i = c.y - c.height / 2, o = c.y + c.height / 2, a = n > e ? 1 : -1, r = 1, s = c.borderSkipped || "left") : (e = c.x - c.width / 2, n = c.x + c.width / 2, i = c.y, a = 1, r = (o = c.base) > i ? 1 : -1, s = c.borderSkipped || "bottom"), u) { 7276 var d = Math.min(Math.abs(e - n), Math.abs(i - o)), h = (u = u > d ? d : u) / 2, p = e + ("left" !== s ? h * a : 0), f = n + ("right" !== s ? -h * a : 0), m = i + ("top" !== s ? h * r : 0), g = o + ("bottom" !== s ? -h * r : 0); 7277 p !== f && (i = m, o = g), m !== g && (e = p, n = f) 7278 } 7279 l.beginPath(), l.fillStyle = c.backgroundColor, l.strokeStyle = c.borderColor, l.lineWidth = u; 7280 var v = [[e, o], [e, i], [n, i], [n, o]], y = ["bottom", "left", "top", "right"].indexOf(s, 0); 7281 -1 === y && (y = 0); 7282 var b = t(0); 7283 l.moveTo(b[0], b[1]); 7284 for (var x = 1; x < 4; x++) 7285 b = t(x), l.lineTo(b[0], b[1]); 7286 l.fill(), u && l.stroke() 7287 }, height: function () { 7288 var t = this._view; 7289 return t.base - t.y 7290 }, inRange: function (t, e) { 7291 var i = !1; 7292 if (this._view) { 7293 var o = n(this); 7294 i = t >= o.left && t <= o.right && e >= o.top && e <= o.bottom 7295 } 7296 return i 7297 }, inLabelRange: function (t, i) { 7298 var o = this; 7299 if (!o._view) 7300 return!1; 7301 var a = n(o); 7302 return e(o) ? t >= a.left && t <= a.right : i >= a.top && i <= a.bottom 7303 }, inXRange: function (t) { 7304 var e = n(this); 7305 return t >= e.left && t <= e.right 7306 }, inYRange: function (t) { 7307 var e = n(this); 7308 return t >= e.top && t <= e.bottom 7309 }, getCenterPoint: function () { 7310 var t, n, i = this._view; 7311 return e(this) ? (t = i.x, n = (i.y + i.base) / 2) : (t = (i.x + i.base) / 2, n = i.y), {x: t, y: n} 7312 }, getArea: function () { 7313 var t = this._view; 7314 return t.width * Math.abs(t.y - t.base) 7315 }, tooltipPosition: function () { 7316 var t = this._view; 7317 return{x: t.x, y: t.y} 7318 }}) 7319 } 7320 }, {}], 39: [function (t, e, n) { 7321 "use strict"; 7322 e.exports = function (t) { 7323 function e(t, e) { 7324 var n = l.getStyle(t, e), i = n && n.match(/^(\d+)(\.\d+)?px$/); 7325 return i ? Number(i[1]) : void 0 7326 } 7327 function n(t, n) { 7328 var i = t.style, o = t.getAttribute("height"), a = t.getAttribute("width"); 7329 if (t._chartjs = {initial: {height: o, width: a, style: {display: i.display, height: i.height, width: i.width}}}, i.display = i.display || "block", null === a || "" === a) { 7330 var r = e(t, "width"); 7331 void 0 !== r && (t.width = r) 7332 } 7333 if (null === o || "" === o) 7334 if ("" === t.style.height) 7335 t.height = t.width / (n.options.aspectRatio || 2); 7336 else { 7337 var s = e(t, "height"); 7338 void 0 !== r && (t.height = s) 7339 } 7340 return t 7341 } 7342 function i(t, e, n, i, o) { 7343 return{type: t, chart: e, native: o || null, x: void 0 !== n ? n : null, y: void 0 !== i ? i : null} 7344 } 7345 function o(t, e) { 7346 var n = c[t.type] || t.type, o = l.getRelativePosition(t, e); 7347 return i(n, e, o.x, o.y, t) 7348 } 7349 function a(t) { 7350 var e = document.createElement("iframe"); 7351 return e.className = "chartjs-hidden-iframe", e.style.cssText = "display:block;overflow:hidden;border:0;margin:0;top:0;left:0;bottom:0;right:0;height:100%;width:100%;position:absolute;pointer-events:none;z-index:-1;", e.tabIndex = -1, l.addEvent(e, "load", function () { 7352 l.addEvent(e.contentWindow || e, "resize", t), t() 7353 }), e 7354 } 7355 function r(t, e, n) { 7356 var o = t._chartjs = {ticking: !1}; 7357 o.resizer = a(function () { 7358 o.ticking || (o.ticking = !0, l.requestAnimFrame.call(window, function () { 7359 if (o.resizer) 7360 return o.ticking = !1, e(i("resize", n)) 7361 })) 7362 }), t.insertBefore(o.resizer, t.firstChild) 7363 } 7364 function s(t) { 7365 if (t && t._chartjs) { 7366 var e = t._chartjs.resizer; 7367 e && (e.parentNode.removeChild(e), t._chartjs.resizer = null), delete t._chartjs 7368 } 7369 } 7370 var l = t.helpers, c = {touchstart: "mousedown", touchmove: "mousemove", touchend: "mouseup", pointerenter: "mouseenter", pointerdown: "mousedown", pointermove: "mousemove", pointerup: "mouseup", pointerleave: "mouseout", pointerout: "mouseout"}; 7371 return{acquireContext: function (t, e) { 7372 "string" == typeof t ? t = document.getElementById(t) : t.length && (t = t[0]), t && t.canvas && (t = t.canvas); 7373 var i = t && t.getContext && t.getContext("2d"); 7374 return i && i.canvas === t ? (n(t, e), i) : null 7375 }, releaseContext: function (t) { 7376 var e = t.canvas; 7377 if (e._chartjs) { 7378 var n = e._chartjs.initial; 7379 ["height", "width"].forEach(function (t) { 7380 var i = n[t]; 7381 void 0 === i || null === i ? e.removeAttribute(t) : e.setAttribute(t, i) 7382 }), l.each(n.style || {}, function (t, n) { 7383 e.style[n] = t 7384 }), e.width = e.width, delete e._chartjs 7385 } 7386 }, addEventListener: function (t, e, n) { 7387 var i = t.canvas; 7388 if ("resize" !== e) { 7389 var a = n._chartjs || (n._chartjs = {}), s = (a.proxies || (a.proxies = {}))[t.id + "_" + e] = function (e) { 7390 n(o(e, t)) 7391 }; 7392 l.addEvent(i, e, s) 7393 } else 7394 r(i.parentNode, n, t) 7395 }, removeEventListener: function (t, e, n) { 7396 var i = t.canvas; 7397 if ("resize" !== e) { 7398 var o = ((n._chartjs || {}).proxies || {})[t.id + "_" + e]; 7399 o && l.removeEvent(i, e, o) 7400 } else 7401 s(i.parentNode) 7402 }} 7403 } 7404 }, {}], 40: [function (t, e, n) { 7405 "use strict"; 7406 var i = t(39); 7407 e.exports = function (t) { 7408 t.platform = {acquireContext: function () {}, releaseContext: function () {}, addEventListener: function () {}, removeEventListener: function () {}}, t.helpers.extend(t.platform, i(t)) 7409 } 7410 }, {39: 39}], 41: [function (t, e, n) { 7411 "use strict"; 7412 e.exports = function (t) { 7413 function e(t, e, n) { 7414 var i, o = t._model || {}, a = o.fill; 7415 if (void 0 === a && (a = !!o.backgroundColor), !1 === a || null === a) 7416 return!1; 7417 if (!0 === a) 7418 return"origin"; 7419 if (i = parseFloat(a, 10), isFinite(i) && Math.floor(i) === i) 7420 return"-" !== a[0] && "+" !== a[0] || (i = e + i), !(i === e || i < 0 || i >= n) && i; 7421 switch (a) { 7422 case"bottom": 7423 return"start"; 7424 case"top": 7425 return"end"; 7426 case"zero": 7427 return"origin"; 7428 case"origin": 7429 case"start": 7430 case"end": 7431 return a; 7432 default: 7433 return!1 7434 } 7435 } 7436 function n(t) { 7437 var e, n = t.el._model || {}, i = t.el._scale || {}, o = t.fill, a = null; 7438 if (isFinite(o)) 7439 return null; 7440 if ("start" === o ? a = void 0 === n.scaleBottom ? i.bottom : n.scaleBottom : "end" === o ? a = void 0 === n.scaleTop ? i.top : n.scaleTop : void 0 !== n.scaleZero ? a = n.scaleZero : i.getBasePosition ? a = i.getBasePosition() : i.getBasePixel && (a = i.getBasePixel()), void 0 !== a && null !== a) { 7441 if (void 0 !== a.x && void 0 !== a.y) 7442 return a; 7443 if ("number" == typeof a && isFinite(a)) 7444 return e = i.isHorizontal(), {x: e ? a : null, y: e ? null : a} 7445 } 7446 return null 7447 } 7448 function i(t, e, n) { 7449 var i, o = t[e].fill, a = [e]; 7450 if (!n) 7451 return o; 7452 for (; !1 !== o && -1 === a.indexOf(o); ) { 7453 if (!isFinite(o)) 7454 return o; 7455 if (!(i = t[o])) 7456 return!1; 7457 if (i.visible) 7458
vendor: 9,235 bytes, lines 7458-7564
7458 return o; 7459 a.push(o), o = i.fill 7460 } 7461 return!1 7462 } 7463 function o(t) { 7464 var e = t.fill, n = "dataset"; 7465 return!1 === e ? null : (isFinite(e) || (n = "boundary"), u[n](t)) 7466 } 7467 function a(t) { 7468 return t && !t.skip 7469 } 7470 function r(t, e, n, i, o) { 7471 var a; 7472 if (i && o) { 7473 for (t.moveTo(e[0].x, e[0].y), a = 1; a < i; ++a) 7474 c.canvas.lineTo(t, e[a - 1], e[a]); 7475 for (t.lineTo(n[o - 1].x, n[o - 1].y), a = o - 1; a > 0; --a) 7476 c.canvas.lineTo(t, n[a], n[a - 1], !0) 7477 } 7478 } 7479 function s(t, e, n, i, o, s) { 7480 var l, c, u, d, h, p, f, m = e.length, g = i.spanGaps, v = [], y = [], b = 0, x = 0; 7481 for (t.beginPath(), l = 0, c = m + !!s; l < c; ++l) 7482 h = n(d = e[u = l % m]._view, u, i), p = a(d), f = a(h), p && f ? (b = v.push(d), x = y.push(h)) : b && x && (g ? (p && v.push(d), f && y.push(h)) : (r(t, v, y, b, x), b = x = 0, v = [], y = [])); 7483 r(t, v, y, b, x), t.closePath(), t.fillStyle = o, t.fill() 7484 } 7485 t.defaults.global.plugins.filler = {propagate: !0}; 7486 var l = t.defaults, c = t.helpers, u = {dataset: function (t) { 7487 var e = t.fill, n = t.chart, i = n.getDatasetMeta(e), o = i && n.isDatasetVisible(e) && i.dataset._children || []; 7488 return o.length ? function (t, e) { 7489 return o[e]._view || null 7490 } : null 7491 }, boundary: function (t) { 7492 var e = t.boundary, n = e ? e.x : null, i = e ? e.y : null; 7493 return function (t) { 7494 return{x: null === n ? t.x : n, y: null === i ? t.y : i} 7495 } 7496 }}; 7497 return{id: "filler", afterDatasetsUpdate: function (a, r) { 7498 var s, l, c, u, d = (a.data.datasets || []).length, h = r.propagate, p = []; 7499 for (l = 0; l < d; ++l) 7500 u = null, (c = (s = a.getDatasetMeta(l)).dataset) && c._model && c instanceof t.elements.Line && (u = {visible: a.isDatasetVisible(l), fill: e(c, l, d), chart: a, el: c}), s.$filler = u, p.push(u); 7501 for (l = 0; l < d; ++l) 7502 (u = p[l]) && (u.fill = i(p, l, h), u.boundary = n(u), u.mapper = o(u)) 7503 }, beforeDatasetDraw: function (t, e) { 7504 var n = e.meta.$filler; 7505 if (n) { 7506 var i = n.el, o = i._view, a = i._children || [], r = n.mapper, c = o.backgroundColor || l.global.defaultColor; 7507 r && c && a.length && s(t.ctx, a, r, o, c, i._loop) 7508 } 7509 }} 7510 } 7511 }, {}], 42: [function (t, e, n) { 7512 "use strict"; 7513 e.exports = function (t) { 7514 function e(t, e) { 7515 return t.usePointStyle ? e * Math.SQRT2 : t.boxWidth 7516 } 7517 function n(e, n) { 7518 var i = new t.Legend({ctx: e.ctx, options: n, chart: e}); 7519 o.configure(e, i, n), o.addBox(e, i), e.legend = i 7520 } 7521 var i = t.helpers, o = t.layoutService, a = i.noop; 7522 return t.defaults.global.legend = {display: !0, position: "top", fullWidth: !0, reverse: !1, weight: 1e3, onClick: function (t, e) { 7523 var n = e.datasetIndex, i = this.chart, o = i.getDatasetMeta(n); 7524 o.hidden = null === o.hidden ? !i.data.datasets[n].hidden : null, i.update() 7525 }, onHover: null, labels: {boxWidth: 40, padding: 10, generateLabels: function (t) { 7526 var e = t.data; 7527 return i.isArray(e.datasets) ? e.datasets.map(function (e, n) { 7528 return{text: e.label, fillStyle: i.isArray(e.backgroundColor) ? e.backgroundColor[0] : e.backgroundColor, hidden: !t.isDatasetVisible(n), lineCap: e.borderCapStyle, lineDash: e.borderDash, lineDashOffset: e.borderDashOffset, lineJoin: e.borderJoinStyle, lineWidth: e.borderWidth, strokeStyle: e.borderColor, pointStyle: e.pointStyle, datasetIndex: n} 7529 }, this) : [] 7530 }}}, t.Legend = t.Element.extend({initialize: function (t) { 7531 i.extend(this, t), this.legendHitBoxes = [], this.doughnutMode = !1 7532 }, beforeUpdate: a, update: function (t, e, n) { 7533 var i = this; 7534 return i.beforeUpdate(), i.maxWidth = t, i.maxHeight = e, i.margins = n, i.beforeSetDimensions(), i.setDimensions(), i.afterSetDimensions(), i.beforeBuildLabels(), i.buildLabels(), i.afterBuildLabels(), i.beforeFit(), i.fit(), i.afterFit(), i.afterUpdate(), i.minSize 7535 }, afterUpdate: a, beforeSetDimensions: a, setDimensions: function () { 7536 var t = this; 7537 t.isHorizontal() ? (t.width = t.maxWidth, t.left = 0, t.right = t.width) : (t.height = t.maxHeight, t.top = 0, t.bottom = t.height), t.paddingLeft = 0, t.paddingTop = 0, t.paddingRight = 0, t.paddingBottom = 0, t.minSize = {width: 0, height: 0} 7538 }, afterSetDimensions: a, beforeBuildLabels: a, buildLabels: function () { 7539 var t = this, e = t.options.labels, n = e.generateLabels.call(t, t.chart); 7540 e.filter && (n = n.filter(function (n) { 7541 return e.filter(n, t.chart.data) 7542 })), t.options.reverse && n.reverse(), t.legendItems = n 7543 }, afterBuildLabels: a, beforeFit: a, fit: function () { 7544 var n = this, o = n.options, a = o.labels, r = o.display, s = n.ctx, l = t.defaults.global, c = i.getValueOrDefault, u = c(a.fontSize, l.defaultFontSize), d = c(a.fontStyle, l.defaultFontStyle), h = c(a.fontFamily, l.defaultFontFamily), p = i.fontString(u, d, h), f = n.legendHitBoxes = [], m = n.minSize, g = n.isHorizontal(); 7545 if (g ? (m.width = n.maxWidth, m.height = r ? 10 : 0) : (m.width = r ? 10 : 0, m.height = n.maxHeight), r) 7546 if (s.font = p, g) { 7547 var v = n.lineWidths = [0], y = n.legendItems.length ? u + a.padding : 0; 7548 s.textAlign = "left", s.textBaseline = "top", i.each(n.legendItems, function (t, i) { 7549 var o = e(a, u) + u / 2 + s.measureText(t.text).width; 7550 v[v.length - 1] + o + a.padding >= n.width && (y += u + a.padding, v[v.length] = n.left), f[i] = {left: 0, top: 0, width: o, height: u}, v[v.length - 1] += o + a.padding 7551 }), m.height += y 7552 } else { 7553 var b = a.padding, x = n.columnWidths = [], w = a.padding, k = 0, C = 0, S = u + b; 7554 i.each(n.legendItems, function (t, n) { 7555 var i = e(a, u) + u / 2 + s.measureText(t.text).width; 7556 C + S > m.height && (w += k + a.padding, x.push(k), k = 0, C = 0), k = Math.max(k, i), C += S, f[n] = {left: 0, top: 0, width: i, height: u} 7557 }), w += k, x.push(k), m.width += w 7558 } 7559 n.width = m.width, n.height = m.height 7560 }, afterFit: a, isHorizontal: function () { 7561 return"top" === this.options.position || "bottom" === this.options.position 7562 }, draw: function () { 7563 var n = this, o = n.options, a = o.labels, r = t.defaults.global, s = r.elements.line, l = n.width, c = n.lineWidths; 7564 if (o.display) {
7565 var u, d = n.ctx, h = i.getValueOrDefault, p = h(a.fontColor, r.defaultFontColor), f = h(a.fontSize, r.defaultFontSize), m = h(a.fontStyle, r.defaultFontStyle), g = h(a.fontFamily, r.defaultFontFamily), v = i.fontString(f, m, g); 7566 d.textAlign = "left", d.textBaseline = "top", d.lineWidth = .5, d.strokeStyle = p, d.fillStyle = p, d.font = v; 7567 var y = e(a, f), b = n.legendHitBoxes, x = function (e, n, i) { 7568 if (!(isNaN(y) || y <= 0)) { 7569 d.save(), d.fillStyle = h(i.fillStyle, r.defaultColor), d.lineCap = h(i.lineCap, s.borderCapStyle), d.lineDashOffset = h(i.lineDashOffset, s.borderDashOffset), d.lineJoin = h(i.lineJoin, s.borderJoinStyle), d.lineWidth = h(i.lineWidth, s.borderWidth), d.strokeStyle = h(i.strokeStyle, r.defaultColor); 7570 var a = 0 === h(i.lineWidth, s.borderWidth); 7571 if (d.setLineDash && d.setLineDash(h(i.lineDash, s.borderDash)), o.labels && o.labels.usePointStyle) { 7572 var l = f * Math.SQRT2 / 2, c = l / Math.SQRT2, u = e + c, p = n + c; 7573 t.canvasHelpers.drawPoint(d, i.pointStyle, l, u, p) 7574 } else 7575 a || d.strokeRect(e, n, y, f), d.fillRect(e, n, y, f); 7576 d.restore() 7577 } 7578 }, w = function (t, e, n, i) { 7579 d.fillText(n.text, y + f / 2 + t, e), n.hidden && (d.beginPath(), d.lineWidth = 2, d.moveTo(y + f / 2 + t, e + f / 2), d.lineTo(y + f / 2 + t + i, e + f / 2), d.stroke()) 7580 }, k = n.isHorizontal(); 7581 u = k ? {x: n.left + (l - c[0]) / 2, y: n.top + a.padding, line: 0} : {x: n.left + a.padding, y: n.top + a.padding, line: 0}; 7582 var C = f + a.padding; 7583 i.each(n.legendItems, function (t, e) { 7584 var i = d.measureText(t.text).width, o = y + f / 2 + i, r = u.x, s = u.y; 7585 k ? r + o >= l && (s = u.y += C, u.line++, r = u.x = n.left + (l - c[u.line]) / 2) : s + C > n.bottom && (r = u.x = r + n.columnWidths[u.line] + a.padding, s = u.y = n.top + a.padding, u.line++), x(r, s, t), b[e].left = r, b[e].top = s, w(r, s, t, i), k ? u.x += o + a.padding : u.y += C 7586 }) 7587 } 7588 }, handleEvent: function (t) { 7589 var e = this, n = e.options, i = "mouseup" === t.type ? "click" : t.type, o = !1; 7590 if ("mousemove" === i) { 7591 if (!n.onHover) 7592 return 7593 } else { 7594 if ("click" !== i) 7595 return; 7596 if (!n.onClick) 7597 return 7598 } 7599 var a = t.x, r = t.y; 7600 if (a >= e.left && a <= e.right && r >= e.top && r <= e.bottom) 7601 for (var s = e.legendHitBoxes, l = 0; l < s.length; ++l) { 7602 var c = s[l]; 7603 if (a >= c.left && a <= c.left + c.width && r >= c.top && r <= c.top + c.height) { 7604 if ("click" === i) { 7605 n.onClick.call(e, t.native, e.legendItems[l]), o = !0; 7606 break 7607 } 7608 if ("mousemove" === i) { 7609 n.onHover.call(e, t.native, e.legendItems[l]), o = !0; 7610 break 7611 } 7612 } 7613 } 7614 return o 7615 }}), {id: "legend", beforeInit: function (t) { 7616 var e = t.options.legend; 7617 e && n(t, e) 7618 }, beforeUpdate: function (e) { 7619 var a = e.options.legend, r = e.legend; 7620 a ? (a = i.configMerge(t.defaults.global.legend, a), r ? (o.configure(e, r, a), r.options = a) : n(e, a)) : r && (o.removeBox(e, r), delete e.legend) 7621 }, afterEvent: function (t, e) { 7622 var n = t.legend; 7623 n && n.handleEvent(e) 7624 }} 7625 } 7626 }, {}], 43: [function (t, e, n) { 7627 "use strict"; 7628 e.exports = function (t) { 7629 function e(e, n) { 7630 var o = new t.Title({ctx: e.ctx, options: n, chart: e}); 7631 i.configure(e, o, n), i.addBox(e, o), e.titleBlock = o 7632 } 7633 var n = t.helpers, i = t.layoutService, o = n.noop; 7634 return t.defaults.global.title = {display: !1, position: "top", fullWidth: !0, weight: 2e3, fontStyle: "bold", padding: 10, text: ""}, t.Title = t.Element.extend({initialize: function (t) { 7635 var e = this; 7636 n.extend(e, t), e.legendHitBoxes = [] 7637 }, beforeUpdate: o, update: function (t, e, n) { 7638 var i = this; 7639 return i.beforeUpdate(), i.maxWidth = t, i.maxHeight = e, i.margins = n, i.beforeSetDimensions(), i.setDimensions(), i.afterSetDimensions(), i.beforeBuildLabels(), i.buildLabels(), i.afterBuildLabels(), i.beforeFit(), i.fit(), i.afterFit(), i.afterUpdate(), i.minSize 7640 }, afterUpdate: o, beforeSetDimensions: o, setDimensions: function () { 7641 var t = this; 7642 t.isHorizontal() ? (t.width = t.maxWidth, t.left = 0, t.right = t.width) : (t.height = t.maxHeight, t.top = 0, t.bottom = t.height), t.paddingLeft = 0, t.paddingTop = 0, t.paddingRight = 0, t.paddingBottom = 0, t.minSize = {width: 0, height: 0} 7643 }, afterSetDimensions: o, beforeBuildLabels: o, buildLabels: o, afterBuildLabels: o, beforeFit: o, fit: function () { 7644 var e = this, i = n.getValueOrDefault, o = e.options, a = t.defaults.global, r = o.display, s = i(o.fontSize, a.defaultFontSize), l = e.minSize; 7645 e.isHorizontal() ? (l.width = e.maxWidth, l.height = r ? s + 2 * o.padding : 0) : (l.width = r ? s + 2 * o.padding : 0, l.height = e.maxHeight), e.width = l.width, e.height = l.height 7646 }, afterFit: o, isHorizontal: function () { 7647 var t = this.options.position; 7648 return"top" === t || "bottom" === t 7649 }, draw: function () { 7650 var e = this, i = e.ctx, o = n.getValueOrDefault, a = e.options, r = t.defaults.global; 7651 if (a.display) { 7652 var s, l, c, u = o(a.fontSize, r.defaultFontSize), d = o(a.fontStyle, r.defaultFontStyle), h = o(a.fontFamily, r.defaultFontFamily), p = n.fontString(u, d, h), f = 0, m = e.top, g = e.left, v = e.bottom, y = e.right; 7653 i.fillStyle = o(a.fontColor, r.defaultFontColor), i.font = p, e.isH
7653orizontal() ? (s = g + (y - g) / 2, l = m + (v - m) / 2, c = y - g) : (s = "left" === a.position ? g + u / 2 : y - u / 2, l = m + (v - m) / 2, c = v - m, f = Math.PI * ("left" === a.position ? -.5 : .5)), i.save(), i.translate(s, l), i.rotate(f), i.textAlign = "center", i.textBaseline = "middle", i.fillText(a.text, 0, 0, c), i.restore() 7654 } 7655 }}), {id: "title", beforeInit: function (t) { 7656 var n = t.options.title; 7657 n && e(t, n) 7658 }, beforeUpdate: function (o) { 7659 var a = o.options.title, r = o.titleBlock; 7660 a ? (a = n.configMerge(t.defaults.global.title, a), r ? (i.configure(o, r, a), r.options = a) : e(o, a)) : r && (t.layoutService.removeBox(o, r), delete o.titleBlock) 7661 }} 7662 } 7663 }, {}], 44: [function (t, e, n) { 7664 "use strict"; 7665 e.exports = function (t) { 7666 var e = t.helpers, n = {position: "bottom"}, i = t.Scale.extend({getLabels: function () { 7667 var t = this.chart.data; 7668 return(this.isHorizontal() ? t.xLabels : t.yLabels) || t.labels 7669 }, determineDataLimits: function () { 7670 var t = this, n = t.getLabels(); 7671 t.minIndex = 0, t.maxIndex = n.length - 1; 7672 var i; 7673 void 0 !== t.options.ticks.min && (i = e.indexOf(n, t.options.ticks.min), t.minIndex = -1 !== i ? i : t.minIndex), void 0 !== t.options.ticks.max && (i = e.indexOf(n, t.options.ticks.max), t.maxIndex = -1 !== i ? i : t.maxIndex), t.min = n[t.minIndex], t.max = n[t.maxIndex] 7674 }, buildTicks: function () { 7675 var t = this, e = t.getLabels(); 7676 t.ticks = 0 === t.minIndex && t.maxIndex === e.length - 1 ? e : e.slice(t.minIndex, t.maxIndex + 1) 7677 }, getLabelForIndex: function (t, e) { 7678 var n = this, i = n.chart.data, o = n.isHorizontal(); 7679 return i.yLabels && !o ? n.getRightValue(i.datasets[e].data[t]) : n.ticks[t - n.minIndex] 7680 }, getPixelForValue: function (t, e, n, i) { 7681 var o, a = this, r = Math.max(a.maxIndex + 1 - a.minIndex - (a.options.gridLines.offsetGridLines ? 0 : 1), 1); 7682 if (void 0 !== t && null !== t && (o = a.isHorizontal() ? t.x : t.y), void 0 !== o || void 0 !== t && isNaN(e)) { 7683 var s = a.getLabels(); 7684 t = o || t; 7685 var l = s.indexOf(t); 7686 e = -1 !== l ? l : e 7687 } 7688 if (a.isHorizontal()) { 7689 var c = a.width / r, u = c * (e - a.minIndex); 7690 return(a.options.gridLines.offsetGridLines && i || a.maxIndex === a.minIndex && i) && (u += c / 2), a.left + Math.round(u) 7691 } 7692 var d = a.height / r, h = d * (e - a.minIndex); 7693 return a.options.gridLines.offsetGridLines && i && (h += d / 2), a.top + Math.round(h) 7694 }, getPixelForTick: function (t, e) { 7695 return this.getPixelForValue(this.ticks[t], t + this.minIndex, null, e) 7696 }, getValueForPixel: function (t) { 7697 var e = this, n = Math.max(e.ticks.length - (e.options.gridLines.offsetGridLines ? 0 : 1), 1), i = e.isHorizontal(), o = (i ? e.width : e.height) / n; 7698 return t -= i ? e.left : e.top, e.options.gridLines.offsetGridLines && (t -= o / 2), t <= 0 ? 0 : Math.round(t / o) 7699 }, getBasePixel: function () { 7700 return this.bottom 7701 }}); 7702 t.scaleService.registerScaleType("category", i, n) 7703 } 7704 }, {}], 45: [function (t, e, n) { 7705 "use strict"; 7706 e.exports = function (t) { 7707 var e = t.helpers, n = {position: "left", ticks: {callback: t.Ticks.formatters.linear}}, i = t.LinearScaleBase.extend({determineDataLimits: function () { 7708 function t(t) { 7709 return r ? t.xAxisID === n.id : t.yAxisID === n.id 7710 } 7711 var n = this, i = n.options, o = n.chart, a = o.data.datasets, r = n.isHorizontal(); 7712 n.min = null, n.max = null; 7713 var s = i.stacked; 7714 if (void 0 === s && e.each(a, function (e, n) { 7715 if (!s) { 7716 var i = o.getDatasetMeta(n); 7717 o.isDatasetVisible(n) && t(i) && void 0 !== i.stack && (s = !0) 7718 } 7719 }), i.stacked || s) { 7720 var l = {}; 7721 e.each(a, function (a, r) { 7722 var s = o.getDatasetMeta(r), c = [s.type, void 0 === i.stacked && void 0 === s.stack ? r : "", s.stack].join("."); 7723 void 0 === l[c] && (l[c] = {positiveValues: [], negativeValues: []}); 7724 var u = l[c].positiveValues, d = l[c].negativeValues; 7725 o.isDatasetVisible(r) && t(s) && e.each(a.data, function (t, e) { 7726 var o = +n.getRightValue(t); 7727 isNaN(o) || s.data[e].hidden || (u[e] = u[e] || 0, d[e] = d[e] || 0, i.relativePoints ? u[e] = 100 : o < 0 ? d[e] += o : u[e] += o) 7728 }) 7729 }), e.each(l, function (t) { 7730 var i = t.positiveValues.concat(t.negativeValues), o = e.min(i), a = e.max(i); 7731 n.min = null === n.min ? o : Math.min(n.min, o), n.max = null === n.max ? a : Math.max(n.max, a) 7732 }) 7733 } else 7734 e.each(a, function (i, a) { 7735 var r = o.getDatasetMeta(a); 7736 o.isDatasetVisible(a) && t(r) && e.each(i.data, function (t, e) { 7737 var i = +n.getRightValue(t); 7738 isNaN(i) || r.data[e].hidden || (null === n.min ? n.min = i : i < n.min && (n.min = i), null === n.max ? n.max = i : i > n.max && (n.max = i)) 7739 }) 7740 }); 7741 n.min = isFinite(n.min) ? n.min : 0, n.max = isFinite(n.max) ? n.max : 1, this.handleTickRangeOptions() 7742 }, getTickLimit: function () { 7743 var n, i = this, o = i.options.ticks; 7744 if (i.isHorizontal()) 7745 n = Math.min(o.maxTicksLimit ? o.maxTicksLimit : 11, Math.ceil(i.width / 50)); 7746 else { 7747 var a = e.getValueOrDefault(o.fontSize, t.defaults.global.defaultFontSize); 7748 n = Math.min(o.maxTicksLimit ? o.maxTicksLimit : 11, Math.ceil(i.height / (2 * a))) 7749 } 7750 return n 7751 }, handleDirectionalChanges: function () { 7752 this.isHorizontal() || this.ticks.reverse() 7753 }, getLabelForIndex: function (t, e) { 7754 return+this.getRightValue(this.chart.data.datasets[e].data[t]) 7755 }, getPixelForValue: function (t) { 7756 var e, n = this, i = n.start, o = +n.getRightValue(t), a = n.end - i; 7757 return n.isHorizontal() ? (e = n.left + n.width / a * (o - i), Math.round(e)) : (e = n.bottom - n.height / a * (o - i), Math.round(e)) 7758 }, getValueForPixel: function (t) { 7759 var e = this, n = e.isHorizontal(), i = n ? e.width : e.height, o = (n ? t - e.left : e.bottom - t) / i; 7760 return e.start + (e.end - e.start) * o 7761 }, getPixelForTick: function (t) { 7762 return this.getPixelForValue(this.ticksAsNumbers[t]) 7763 }}); 7764 t.scaleService.registerScaleType("linear", i, n) 7765 } 7766 }, {}], 46: [function (t, e, n) { 7767 "use strict"; 7768 e.exports = function (t) { 7769 var e = t.helpers, n = e.noop; 7770 t.LinearScaleBase = t.Scale.extend({handleTickRangeOptions: function () { 7771 var t = this, n = t.options.ticks; 7772 if (n.beginAtZero) { 7773 var i = e.sign(t.min), o = e.sign(t.max); 7774 i < 0 && o < 0 ? t.max = 0 : i > 0 && o > 0 && (t.min = 0) 7775 } 7776 void 0 !== n.min ? t.min = n.min : void 0 !== n.suggestedMin && (null === t.min ? t.min = n.suggestedMin : t.min = Math.min(t.min, n.suggestedMin)), void 0 !== n.max ? t.max = n.max : void 0 !== n.suggestedMax && (null === t.max ? t.max = n.suggestedMax : t.max = Math.max(t.max, n.suggestedMax)), t.min === t.max && (t.max++, n.beginAtZero || t.min--) 7777 }, getTickLimit: n, handleDirectionalChanges: n, buildTicks: function () { 7778 var n = this, i = n.options.ticks, o = n.getTickLimit(), a = {maxTicks: o = Math.max(2, o), min: i.min, max: i.max, stepSize: e.getValueOrDefault(i.fixedStepSize, i.stepSize)}, r = n.ticks = t.Ticks.generators.linear(a, n); 7779 n.handleDirectionalChanges(), n.max = e.max(r), n.min = e.min(r), i.reverse ? (r.reverse(), n.start = n.max, n.end = n.min) : (n.start = n.min, n.end = n.max) 7780 }, convertTicksToLabels: function () { 7781 var e = this; 7782 e.ticksAsNumbers = e.ticks.slice(), e.zeroLineIndex = e.ticks.indexOf(0), t.Scale.prototype.convertTicksToLabels.call(e) 7783 }}) 7784 } 7785 }, {}], 47: [function (t, e, n) { 7786 "use strict"; 7787 e.exports = function (t) { 7788 var e = t.helpers, n = {position: "left", ticks: {callback: t.Ticks.formatters.logarithmic}}, i = t.Scale.extend({determineDataLimits: function () { 7789 function t(t) { 7790 return l ? t.xAxisID === n.id : t.yAxisID === n.id 7791 } 7792 var n = this, i = n.options, o = i.ticks, a = n.chart, r = a.data.datasets, s = e.getValueOrDefault, l = n.isHorizontal(); 7793 n.min = null, n.max = null, n.minNotZero = null; 7794 var c = i.stacked; 7795 if (void 0 === c && e.each(r, function (e, n) { 7796 if (!c) { 7797 var i = a.getDatasetMeta(n); 7798 a.isDatasetVisible(n) && t(i) && void 0 !== i.stack && (c = !0) 7799 } 7800 }), i.stacked || c) { 7801 var u = {}; 7802 e.each(r, function (o, r) { 7803 var s = a.getDatasetMeta(r), l = [s.type, void 0 === i.stacked && void 0 === s.stack ? r : "", s.stack].join("."); 7804 a.isDatasetVisible(r) && t(s) && (void 0 === u[l] && (u[l] = []), e.each(o.data, function (t, e) { 7805 var o = u[l], a = +n.getRightValue(t); 7806 isNaN(a) || s.data[e].hidden || (o[e] = o[e] || 0, i.relativePoints ? o[e] = 100 : o[e] += a) 7807 })) 7808 }), e.each(u, function (t) { 7809 var i = e.min(t), o = e.max(t); 7810 n.min = null === n.min ? i : Math.min(n.min, i), n.max = null === n.max ? o : Math.max(n.max, o) 7811 }) 7812 } else 7813 e.each(r, function (i, o) { 7814 var r = a.getDatasetMeta(o); 7815 a.isDatasetVisible(o) && t(r) && e.each(i.data, function (t, e) { 7816 var i = +n.getRightValue(t); 7817 isNaN(i) || r.data[e].hidden || (null === n.min ? n.min = i : i < n.min && (n.min = i), null === n.max ? n.max = i : i > n.max && (n.max = i), 0 !== i && (null === n.minNotZero || i < n.minNotZero) && (n.minNotZero = i)) 7818 }) 7819 }); 7820 n.min = s(o.min, n.min), n.max = s(o.max, n.max), n.min === n.max && (0 !== n.min && null !== n.min ? (n.min = Math.pow(10, Math.floor(e.log10(n.min)) - 1), n.max = Math.pow(10, Math.floor(e.log10(n.max)) + 1)) : (n.min = 1, n.max = 10)) 7821 }, buildTicks: function () { 7822 var n = this, i = n.options.ticks, o = {min: i.min, max: i.max}, a = n.ticks = t.Ticks.generators.logarithmic(o, n); 7823 n.isHorizontal() || a.reverse(), n.max = e.max(a), n.min = e.min(a), i.reverse ? (a.reverse(), n.start = n.max, n.end = n.min) : (n.start = n.min, n.end = n.max) 7824 }, convertTicksToLabels: function () { 7825 this.tickValues = this.ticks.slice(), t.Scale.prototype.convertTicksToLabels.call(this) 7826 }, getLabelForIndex: function (t, e) { 7827 return+this.getRightValue(this.chart.data.datasets[e].data[t]) 7828 }, getPixelForTick: function (t) { 7829 return this.getPixelForValue(this.tickValues[t]) 7830 }, getPixelForValue: function (t) { 7831 var n, i, o, a = this, r = a.start, s = +a.getRightValue(t), l = a.options.ticks; 7832 return a.isHorizontal() ? (o = e.log10(a.end) - e.log10(r), 0 === s ? i = a.left : (n = a.width, i = a.left + n / o * (e.log10(s) - e.log10(r)))) : (n = a.height, 0 !== r || l.reverse ? 0 === a.end && l.reverse ? (o = e.log10(a.start) - e.log10(a.minNotZero), i = s === a.end ? a.top : s === a.minNotZero ? a.top + .02 * n : a.top + .02 * n + .98 * n / o * (e.log10(s) - e.log10(a.minNotZero))) : 0 === s ? i = l.reverse ? a.top : a.bottom : (o = e.log10(a.end) - e.log10(r), n = a.height, i = a.bottom - n / o * (e.log10(s) - e.log10(r))) : (o = e.log10(a.end) - e.log10(a.minNotZero), i = s === r ? a.bottom : s === a.minNotZero ? a.bottom - .02 * n : a.bottom - .02 * n - .98 * n / o * (e.log10(s) - e.log10(a.minNotZero)))), i 7833 }, getValueForPixel: function (t) { 7834 var n, i, o = thi
7834s, a = e.log10(o.end) - e.log10(o.start); 7835 return o.isHorizontal() ? (i = o.width, n = o.start * Math.pow(10, (t - o.left) * a / i)) : (i = o.height, n = Math.pow(10, (o.bottom - t) * a / i) / o.start), n 7836 }}); 7837 t.scaleService.registerScaleType("logarithmic", i, n) 7838 } 7839 }, {}], 48: [function (t, e, n) { 7840 "use strict"; 7841 e.exports = function (t) { 7842 function e(t) { 7843 var e = t.options; 7844 return e.angleLines.display || e.pointLabels.display ? t.chart.data.labels.length : 0 7845 } 7846 function n(t) { 7847 var e = t.options.pointLabels, n = p.getValueOrDefault(e.fontSize, f.defaultFontSize), i = p.getValueOrDefault(e.fontStyle, f.defaultFontStyle), o = p.getValueOrDefault(e.fontFamily, f.defaultFontFamily); 7848 return{size: n, style: i, family: o, font: p.fontString(n, i, o)} 7849 } 7850 function i(t, e, n) { 7851 return p.isArray(n) ? {w: p.longestText(t, t.font, n), h: n.length * e + 1.5 * (n.length - 1) * e} : {w: t.measureText(n).width, h: e} 7852 } 7853 function o(t, e, n, i, o) { 7854 return t === i || t === o ? {start: e - n / 2, end: e + n / 2} : t < i || t > o ? {start: e - n - 5, end: e} : {start: e, end: e + n + 5} 7855 } 7856 function a(t) { 7857 var a, r, s, l = n(t), c = Math.min(t.height / 2, t.width / 2), u = {r: t.width, l: 0, t: t.height, b: 0}, d = {}; 7858 t.ctx.font = l.font, t._pointLabelSizes = []; 7859 var h = e(t); 7860 for (a = 0; a < h; a++) { 7861 s = t.getPointPosition(a, c), r = i(t.ctx, l.size, t.pointLabels[a] || ""), t._pointLabelSizes[a] = r; 7862 var f = t.getIndexAngle(a), m = p.toDegrees(f) % 360, g = o(m, s.x, r.w, 0, 180), v = o(m, s.y, r.h, 90, 270); 7863 g.start < u.l && (u.l = g.start, d.l = f), g.end > u.r && (u.r = g.end, d.r = f), v.start < u.t && (u.t = v.start, d.t = f), v.end > u.b && (u.b = v.end, d.b = f) 7864 } 7865 t.setReductions(c, u, d) 7866 } 7867 function r(t) { 7868 var e = Math.min(t.height / 2, t.width / 2); 7869 t.drawingArea = Math.round(e), t.setCenterPoint(0, 0, 0, 0) 7870 } 7871 function s(t) { 7872 return 0 === t || 180 === t ? "center" : t < 180 ? "left" : "right" 7873 } 7874 function l(t, e, n, i) { 7875 if (p.isArray(e)) 7876 for (var o = n.y, a = 1.5 * i, r = 0; r < e.length; ++r) 7877 t.fillText(e[r], n.x, o), o += a; 7878 else 7879 t.fillText(e, n.x, n.y) 7880 } 7881 function c(t, e, n) { 7882 90 === t || 270 === t ? n.y -= e.h / 2 : (t > 270 || t < 90) && (n.y -= e.h) 7883 } 7884 function u(t) { 7885 var i = t.ctx, o = p.getValueOrDefault, a = t.options, r = a.angleLines, u = a.pointLabels; 7886 i.lineWidth = r.lineWidth, i.strokeStyle = r.color; 7887 var d = t.getDistanceFromCenterForValue(a.reverse ? t.min : t.max), h = n(t); 7888 i.textBaseline = "top"; 7889 for (var m = e(t) - 1; m >= 0; m--) { 7890 if (r.display) { 7891 var g = t.getPointPosition(m, d); 7892 i.beginPath(), i.moveTo(t.xCenter, t.yCenter), i.lineTo(g.x, g.y), i.stroke(), i.closePath() 7893 } 7894 if (u.display) { 7895 var v = t.getPointPosition(m, d + 5), y = o(u.fontColor, f.defaultFontColor); 7896 i.font = h.font, i.fillStyle = y; 7897 var b = t.getIndexAngle(m), x = p.toDegrees(b); 7898 i.textAlign = s(x), c(x, t._pointLabelSizes[m], v), l(i, t.pointLabels[m] || "", v, h.size) 7899 } 7900 } 7901 } 7902 function d(t, n, i, o) { 7903 var a = t.ctx; 7904 if (a.strokeStyle = p.getValueAtIndexOrDefault(n.color, o - 1), a.lineWidth = p.getValueAtIndexOrDefault(n.lineWidth, o - 1), t.options.gridLines.circular) 7905 a.beginPath(), a.arc(t.xCenter, t.yCenter, i, 0, 2 * Math.PI), a.closePath(), a.stroke(); 7906 else { 7907 var r = e(t); 7908 if (0 === r) 7909 return; 7910 a.beginPath(); 7911 var s = t.getPointPosition(0, i); 7912 a.moveTo(s.x, s.y); 7913 for (var l = 1; l < r; l++) 7914 s = t.getPointPosition(l, i), a.lineTo(s.x, s.y); 7915 a.closePath(), a.stroke() 7916 } 7917 } 7918 function h(t) { 7919 return p.isNumber(t) ? t : 0 7920 } 7921 var p = t.helpers, f = t.defaults.global, m = {display: !0, animate: !0, position: "chartArea", angleLines: {display: !0, color: "rgba(0, 0, 0, 0.1)", lineWidth: 1}, gridLines: {circular: !1}, ticks: {showLabelBackdrop: !0, backdropColor: "rgba(255,255,255,0.75)", backdropPaddingY: 2, backdropPaddingX: 2, callback: t.Ticks.formatters.linear}, pointLabels: {display: !0, fontSize: 10, callback: function (t) { 7922 return t 7923 }}}, g = t.LinearScaleBase.extend({setDimensions: function () { 7924 var t = this, e = t.options, n = e.ticks; 7925 t.width = t.maxWidth, t.height = t.maxHeight, t.xCenter = Math.round(t.width / 2), t.yCenter = Math.round(t.height / 2); 7926 var i = p.min([t.height, t.width]), o = p.getValueOrDefault(n.fontSize, f.defaultFontSize); 7927 t.drawingArea = e.display ? i / 2 - (o / 2 + n.backdropPaddingY) : i / 2 7928 }, determineDataLimits: function () { 7929 var t = this, e = t.chart, n = Number.POSITIVE_INFINITY, i = Number.NEGATIVE_INFINITY; 7930 p.each(e.data.datasets, function (o, a) { 7931 if (e.isDatasetVisible(a)) { 7932 var r = e.getDatasetMeta(a); 7933 p.each(o.data, function (e, o) { 7934 var a = +t.getRightValue(e); 7935 isNaN(a) || r.data[o].hidden || (n = Math.min(a, n), i = Math.max(a, i)) 7936 }) 7937 } 7938 }), t.min = n === Number.POSITIVE_INFINITY ? 0 : n, t.max = i === Number.NEGATIVE_INFINITY ? 0 : i, t.handleTickRangeOptions() 7939 }, getTickLimit: function () { 7940 var t = this.options.ticks, e = p.getValueOrDefault(t.fontSize, f.defaultFontSize); 7941 return Math.min(t.maxTicksLimit ? t.maxTicksLimit : 11, Math.ceil(this.drawingArea / (1.5 * e))) 7942 }, convertTicksToLabels: function () { 7943 var e = this; 7944 t.LinearScaleBase.prototype.convertTicksToLabels.call(e), e.pointLabels = e.chart.data.labels.map(e.options.pointLabels.callback, e) 7945 }, getLabelForIndex: function (t, e) { 7946 return+this.getRightValue(this.chart.data.datasets[e].data[t]) 7947 }, fit: function () { 7948 this.options.pointLabels.display ? a(this) : r(this) 7949 }, setReductions: function (t, e, n) { 7950 var i = this, o = e.l / Math.sin(n.l), a = Math.max(e.r - i.width, 0) / Math.sin(n.r), r = -e.t / Math.cos(n.t), s = -Math.max(e.b - i.height, 0) / Math.cos(n.b); 7951 o = h(o), a = h(a), r = h(r), s = h(s), i.drawingArea = Math.min(Math.round(t - (o + a) / 2), Math.round(t - (r + s) / 2)), i.setCenterPoint(o, a, r, s) 7952 }, setCenterPoint: function (t, e, n, i) { 7953 var o = this, a = o.width - e - o.drawingArea, r = t + o.drawingArea, s = n + o.drawingArea, l = o.height - i - o.drawingArea; 7954 o.xCenter = Math.round((r + a) / 2 + o.left), o.yCenter = Math.round((s + l) / 2 + o.top) 7955 }, getIndexAngle: function (t) { 7956 return t * (2 * Math.PI / e(this)) + (this.chart.options && this.chart.options.startAngle ? this.chart.options.startAngle : 0) * Math.PI * 2 / 360 7957 }, getDistanceFromCenterForValue: function (t) { 7958 var e = this; 7959 if (null === t) 7960 return 0; 7961 var n = e.drawingArea / (e.max - e.min); 7962 return e.options.reverse ? (e.max - t) * n : (t - e.min) * n 7963 }, getPointPosition: function (t, e) { 7964 var n = this, i = n.getIndexAngle(t) - Math.PI / 2; 7965 return{x: Math.round(Math.cos(i) * e) + n.xCenter, y: Math.round(Math.sin(i) * e) + n.yCenter} 7966 }, getPointPositionForValue: function (t, e) { 7967 return this.getPointPosition(t, this.getDistanceFromCenterForValue(e)) 7968 }, getBasePosition: function () { 7969 var t = this, e = t.min, n = t.max; 7970 return t.getPointPositionForValue(0, t.beginAtZero ? 0 : e < 0 && n < 0 ? n : e > 0 && n > 0 ? e : 0) 7971 }, draw: function () { 7972 var t = this, e = t.options, n = e.gridLines, i = e.ticks, o = p.getValueOrDefault;
7973 if (e.display) { 7974 var a = t.ctx, r = o(i.fontSize, f.defaultFontSize), s = o(i.fontStyle, f.defaultFontStyle), l = o(i.fontFamily, f.defaultFontFamily), c = p.fontString(r, s, l); 7975 p.each(t.ticks, function (s, l) { 7976 if (l > 0 || e.reverse) { 7977 var u = t.getDistanceFromCenterForValue(t.ticksAsNumbers[l]), h = t.yCenter - u; 7978 if (n.display && 0 !== l && d(t, n, u, l), i.display) { 7979 var p = o(i.fontColor, f.defaultFontColor); 7980 if (a.font = c, i.showLabelBackdrop) { 7981 var m = a.measureText(s).width; 7982 a.fillStyle = i.backdropColor, a.fillRect(t.xCenter - m / 2 - i.backdropPaddingX, h - r / 2 - i.backdropPaddingY, m + 2 * i.backdropPaddingX, r + 2 * i.backdropPaddingY) 7983 } 7984 a.textAlign = "center", a.textBaseline = "middle", a.fillStyle = p, a.fillText(s, t.xCenter, h) 7985 } 7986 } 7987 }), (e.angleLines.display || e.pointLabels.display) && u(t) 7988 } 7989 }}); 7990 t.scaleService.registerScaleType("radialLinear", g, m) 7991 } 7992 }, {}], 49: [function (t, e, n) { 7993 "use strict"; 7994 var i = t(1); 7995 i = "function" == typeof i ? i : window.moment, e.exports = function (t) { 7996 function e(t, e) { 7997 var n = t.options.time; 7998 if ("string" == typeof n.parser) 7999 return i(e, n.parser); 8000 if ("function" == typeof n.parser) 8001 return n.parser(e); 8002 if ("function" == typeof e.getMonth || "number" == typeof e) 8003 return i(e); 8004 if (e.isValid && e.isValid()) 8005 return e; 8006 var o = n.format; 8007 return"string" != typeof o && o.call ? (console.warn("options.time.format is deprecated and replaced by options.time.parser."), o(e)) : i(e, o) 8008 } 8009 function n(t, e, n, i) { 8010 for (var o, a = Object.keys(s), r = a.length, l = a.indexOf(t); l < r; l++) { 8011 o = a[l]; 8012 var c = s[o], u = c.steps && c.steps[c.steps.length - 1] || c.maxStep; 8013 if (void 0 === u || Math.ceil((n - e) / (u * c.size)) <= i) 8014 break 8015 } 8016 return o 8017 } 8018 function o(t, e, n, i) { 8019 var o = s[n], a = o.size, r = Math.ceil((e - t) / a), l = 1, c = e - t; 8020 if (o.steps) 8021 for (var u = o.steps.length, d = 0; d < u && r > i; d++) 8022 l = o.steps[d], r = Math.ceil(c / (a * l)); 8023 else 8024 for (; r > i && i > 0; ) 8025 ++l, r = Math.ceil(c / (a * l)); 8026 return l 8027 } 8028 function a(t, e, n) { 8029 var o = []; 8030 if (t.maxTicks) { 8031 var a = t.stepSize; 8032 o.push(void 0 !== t.min ? t.min : n.min); 8033 for (var r = i(n.min); r.add(a, t.unit).valueOf() < n.max; ) 8034 o.push(r.valueOf()); 8035 var s = t.max || n.max; 8036 o[o.length - 1] !== s && o.push(s) 8037 } 8038 return o 8039 } 8040 var r = t.helpers, s = {millisecond: {size: 1, steps: [1, 2, 5, 10, 20, 50, 100, 250, 500]}, second: {size: 1e3, steps: [1, 2, 5, 10, 30]}, minute: {size: 6e4, steps: [1, 2, 5, 10, 30]}, hour: {size: 36e5, steps: [1, 2, 3, 6, 12]}, day: {size: 864e5, steps: [1, 2, 5]}, week: {size: 6048e5, maxStep: 4}, month: {size: 2628e6, maxStep: 3}, quarter: {size: 7884e6, maxStep: 4}, year: {size: 3154e7, maxStep: !1}}, l = {position: "bottom", time: {parser: !1, format: !1, unit: !1, roun
8040d: !1, displayFormat: !1, isoWeekday: !1, minUnit: "millisecond", displayFormats: {millisecond: "h:mm:ss.SSS a", second: "h:mm:ss a", minute: "h:mm:ss a", hour: "MMM D, hA", day: "ll", week: "ll", month: "MMM YYYY", quarter: "[Q]Q - YYYY", year: "YYYY"}}, ticks: {autoSkip: !1}}; 8041 t.Ticks.generators.time = function (t, e) { 8042 var n, o, r = t.isoWeekday; 8043 return"week" === t.unit && !1 !== r ? (n = i(e.min).startOf("isoWeek").isoWeekday(r).valueOf(), o = i(e.max).startOf("isoWeek").isoWeekday(r), e.max - o > 0 && o.add(1, "week"), o = o.valueOf()) : (n = i(e.min).startOf(t.unit).valueOf(), o = i(e.max).startOf(t.unit), e.max - o > 0 && o.add(1, t.unit), o = o.valueOf()), a(t, e, {min: n, max: o}) 8044 }; 8045 var c = t.Scale.extend({initialize: function () { 8046 if (!i) 8047 throw new Error("Chart.js - Moment.js could not be found! You must include it before Chart.js to use the time scale. Download at https://momentjs.com"); 8048 t.Scale.prototype.initialize.call(this) 8049 }, determineDataLimits: function () { 8050 var t, n = this, i = n.options.time, o = Number.MAX_SAFE_INTEGER, a = Number.MIN_SAFE_INTEGER, s = n.chart.data, l = {labels: [], datasets: []}; 8051 r.each(s.labels, function (r, s) { 8052 var c = e(n, r); 8053 c.isValid() && (i.round && c.startOf(i.round), t = c.valueOf(), o = Math.min(t, o), a = Math.max(t, a), l.labels[s] = t) 8054 }), r.each(s.datasets, function (s, c) { 8055 var u = []; 8056 "object" == typeof s.data[0] && null !== s.data[0] && n.chart.isDatasetVisible(c) ? r.each(s.data, function (r, s) { 8057 var l = e(n, n.getRightValue(r)); 8058 l.isValid() && (i.round && l.startOf(i.round), t = l.valueOf(), o = Math.min(t, o), a = Math.max(t, a), u[s] = t) 8059 }) : u = l.labels.slice(), l.datasets[c] = u 8060 }), n.dataMin = o, n.dataMax = a, n._parsedData = l 8061 }, buildTicks: function () { 8062 var i, a, s = this, l = s.options.time, c = s.dataMin, u = s.dataMax; 8063 if (l.min) { 8064 var d = e(s, l.min); 8065 l.round && d.round(l.round), i = d.valueOf() 8066 } 8067 l.max && (a = e(s, l.max).valueOf()); 8068 var h = s.getLabelCapacity(i || c), p = l.unit || n(l.minUnit, i || c, a || u, h); 8069 s.displayFormat = l.displayFormats[p]; 8070 var f = l.stepSize || o(i || c, a || u, p, h); 8071 s.ticks = t.Ticks.generators.time({maxTicks: h, min: i, max: a, stepSize: f, unit: p, isoWeekday: l.isoWeekday}, {min: c, max: u}), s.max = r.max(s.ticks), s.min = r.min(s.ticks) 8072 }, getLabelForIndex: function (t, n) { 8073 var i = this, o = i.chart.data.labels && t < i.chart.data.labels.length ? i.chart.data.labels[t] : "", a = i.chart.data.datasets[n].data[t]; 8074 return null !== a && "object" == typeof a && (o = i.getRightValue(a)), i.options.time.tooltipFormat && (o = e(i, o).format(i.options.time.tooltipFormat)), o 8075 }, tickFormatFunction: function (t, e, n) { 8076 var i = t.format(this.displayFormat), o = this.options.ticks, a = r.getValueOrDefault(o.callback, o.userCallback); 8077 return a ? a(i, e, n) : i 8078 }, convertTicksToLabels: function () { 8079 var t = this; 8080 t.ticksAsTimestamps = t.ticks, t.ticks = t.ticks.map(function (t) { 8081 return i(t) 8082 }).map(t.tickFormatFunction, t) 8083 }, getPixelForOffset: function (t) { 8084 var e = this, n = e.max - e.min, i = n ? (t - e.min) / n : 0; 8085 if (e.isHorizontal()) { 8086 var o = e.width * i; 8087 return e.left + Math.round(o) 8088 } 8089 var a = e.height * i; 8090 return e.top + Math.round(a) 8091 }, getPixelForValue: function (t, n, i) { 8092 var o = this, a = null; 8093 if (void 0 !== n && void 0 !== i && (a = o._parsedData.datasets[i][n]), null === a && (t && t.isValid || (t = e(o, o.getRightValue(t))), t && t.isValid && t.isValid() && (a = t.valueOf())), null !== a) 8094 return o.getPixelForOffset(a) 8095 }, getPixelForTick: function (t) { 8096 return this.getPixelForOffset(this.ticksAsTimestamps[t]) 8097 }, getValueForPixel: function (t) { 8098 var e = this, n = e.isHorizontal() ? e.width : e.height, o = (t - (e.isHorizontal() ? e.left : e.top)) / n; 8099 return i(e.min + o * (e.max - e.min)) 8100 }, getLabelWidth: function (e) { 8101 var n = this, i = n.options.ticks, o = n.ctx.measureText(e).width, a = Math.cos(r.toRadians(i.maxRotation)), s = Math.sin(r.toRadians(i.maxRotation)); 8102 return o * a + r.getValueOrDefault(i.fontSize, t.defaults.global.defaultFontSize) * s 8103 }, getLabelCapacity: function (t) { 8104 var e = this; 8105 e.displayFormat = e.options.time.displayFormats.millisecond; 8106 var n = e.tickFormatFunction(i(t), 0, []), o = e.getLabelWidth(n);
8107 return(e.isHorizontal() ? e.width : e.height) / o 8108 }}); 8109 t.scaleService.registerScaleType("time", c, l) 8110 } 8111 }, {1: 1}]}, {}, [7])(7) 8112 }), function (t) { 8113 t(["jquery"], function (t) { 8114 return function () { 8115 function e(e, n) { 8116 return e || (e = l()), (u = t("#" + e.containerId)).length ? u : (n && (u = o(e)), u) 8117 } 8118 function n(e) { 8119 for (var n = u.children(), o = n.length - 1; o >= 0; o--) 8120 i(t(n[o]), e) 8121 } 8122 function i(e, n, i) { 8123 var o = !(!i || !i.force) && i.force; 8124 return!(!e || !o && 0 !== t(":focus", e).length) && (e[n.hideMethod]({duration: n.hideDuration, easing: n.hideEasing, complete: function () { 8125 c(e) 8126 }}), !0) 8127 } 8128 function o(e) { 8129 return(u = t("<div/>").attr("id", e.containerId).addClass(e.positionClass).attr("aria-live", "polite").attr("role", "alert")).appendTo(t(e.target)), u 8130 } 8131 function a() {
8132 return{tapToDismiss: !0, toastClass: "toast", containerId: "toast-container", debug: !1, showMethod: "fadeIn", showDuration: 300, showEasing: "swing", onShown: void 0, hideMethod: "fadeOut", hideDuration: 1e3, hideEasing: "swing", onHidden: void 0, extendedTimeOut: 1e3, iconClasses: {error: "toast-error", info: "toast-info", success: "toast-success", warning: "toast-warning"}, iconClass: "toast-info", positionClass: "toast-top-right", timeOut: 5e3, titleClass: "toast-title", messageClass: "toast-message", target: "body", closeHtml: '<button type="button">×</button>', newestOnTop: !0, preventDuplicates: !1, progressBar: !1} 8133 } 8134 function r(t) { 8135 d && d(t) 8136 } 8137 function s(n) { 8138 function i() { 8139 n.iconClass && k.addClass(b.toastClass).addClass(x) 8140 } 8141 function o() { 8142 b.newestOnTop ? u.prepend(k) : u.append(k) 8143 } 8144 function a() { 8145 n.title && (C.append(n.title).addClass(b.titleClass), k.append(C)) 8146 } 8147 function s() { 8148 n.message && (S.append(n.message).addClass(b.messageClass), k.append(S)) 8149 } 8150 function d() { 8151 b.closeButton && (M.addClass("toast-close-button").attr("role", "button"), k.prepend(M)) 8152 } 8153 function f() { 8154 b.progressBar && (T.addClass("toast-progress"), k.prepend(T)) 8155 } 8156 function m(e) { 8157 if (!t(":focus", k).length || e) 8158 return clearTimeout(I.intervalId), k[b.hideMethod]({duration: b.hideDuration, easing: b.hideEasing, complete: function () { 8159 c(k), b.onHidden && "hidden" !== A.state && b.onHidden(), A.state = "hidden", A.endTime = new Date, r(A) 8160 }}) 8161 } 8162 function g() { 8163 (b.timeOut > 0 || b.extendedTimeOut > 0) && (w = setTimeout(m, b.extendedTimeOut), I.maxHideTime = parseFloat(b.extendedTimeOut), I.hideEta = (new Date).getTime() + I.maxHideTime) 8164 } 8165 function v() { 8166 clearTimeout(w), I.hideEta = 0, k.stop(!0, !0)[b.showMethod]({duration: b.showDuration, easing: b.showEasing}) 8167 } 8168 function y() { 8169 var t = (I.hideEta - (new Date).getTime()) / I.maxHideTime * 100; 8170 T.width(t + "%") 8171 } 8172 var b = l(), x = n.iconClass || b.iconClass; 8173 if (void 0 !== n.optionsOverride && (b = t.extend(b, n.optionsOverride), x = n.optionsOverride.iconClass || x), !function (t, e) { 8174 if (t.preventDuplicates) { 8175 if (e.message === h) 8176 return!0; 8177 h = e.message 8178 } 8179 return!1 8180 }(b, n)) { 8181 p++, u = e(b, !0); 8182 var w = null, k = t("<div/>"), C = t("<div/>"), S = t("<div/>"), T = t("<div/>"), M = t(b.closeHtml), I = {intervalId: null, hideEta: null, maxHideTime: null}, A = {toastId: p, state: "visible", startTime: new Date, options: b, map: n}; 8183 return i(), a(), s(), d(), f(), o(), k.hide(), k[b.showMethod]({duration: b.showDuration, easing: b.showEasing, complete: b.onShown}), b.timeOut > 0 && (w = setTimeout(m, b.timeOut), I.maxHideTime = parseFloat(b.timeOut), I.hideEta = (new Date).getTime() + I.maxHideTime, b.progressBar && (I.intervalId = setInterval(y, 10))), k.hover(v, g), !b.onclick && b.tapToDismiss && k.click(m), b.closeButton && M && M.click(function (t) { 8184 t.stopPropagation ? t.stopPropagation() : void 0 !== t.cancelBubble && !0 !== t.cancelBubble && (t.cancelBubble = !0), m(!0) 8185 }), b.onclick && k.click(function () { 8186 b.onclick(), m() 8187 }), r(A), b.debug && console && console.log(A), k 8188 } 8189 } 8190 function l() { 8191 return t.extend({}, a(), m.options) 8192 } 8193 function c(t) { 8194 u || (u = e()), t.is(":visible") || (t.remove(), t = null, 0 === u.children().length && (u.remove(), h = void 0)) 8195 } 8196 var u, d, h, p = 0, f = {error: "error", info: "info", success: "success", warning: "warning"}, m = {clear: function (t, o) { 8197 var a = l(); 8198 u || e(a), i(t, a, o) || n(a) 8199 }, remove: function (n) { 8200 var i = l(); 8201 u || e(i), n && 0 === t(":focus", n).length ? c(n) : u.children().length && u.remove() 8202 }, error: function (t, e, n) { 8203 return s({type: f.error, iconClass: l().iconClasses.error, message: t, optionsOverride: n, title: e}) 8204 }, getContainer: e, info: function (t, e, n) { 8205 return s({type: f.info, iconClass: l().iconClasses.info, message: t, optionsOverride: n, title: e}) 8206 }, options: {}, subscribe: function (t) { 8207 d = t 8208 }, success: function (t, e, n) { 8209 return s({type: f.success, iconClass: l().iconClasses.success, message: t, optionsOverride: n, title: e}) 8210 }, version: "2.1.1", warning: function (t, e, n) { 8211 return s({type: f.warning, iconClass: l().iconClasses.warning, message: t, optionsOverride: n, title: e}) 8212 }}; 8213 return m 8214 }() 8215 }) 8216 }("function" == typeof define && define.amd ? define : function (t, e) { 8217 "undefined" != typeof module && module.exports ? module.exports = e(require("jquery")) : window.toastr = e(window.jQuery) 8218 }), function (t) { 8219 var e = !1, n = {data: [], placeholder: "", secondaryPlaceholder: ""}; 8220 t(document).ready(function () { 8221 t(document).on("click", ".chip .close", function (e) { 8222 var n = t(this); 8223 n.closest(".chips").data("initialized") || n.closest(".chip").remove() 8224 }) 8225 }), t.fn.material_chip = function (i) { 8226 var o = this; 8227 return this.$el = t(this), this.$document = t(document), this.SELS = {CHIPS: ".chips", CHIP: ".chip", INPUT: "input", DELETE: ".fa", SELECTED_CHIP: ".selected"}, "data" === i ? this.$el.data("chips") : "options" === i ? this.$el.data("options") : (this.$el.data("options", t.extend({}, n, i)), this.init = function () { 8228 var e = 0; 8229 o.$el.each(function () { 8230 var n = t(this); 8231 if (!n.data("initialized")) { 8232 var i = n.data("options"); 8233 (!i.data || !i.data instanceof Array) && (i.data = []), n.data("chips", i.data), n.data("index", e), n.data("initialized", !0), n.hasClass(o.SELS.CHIPS) || n.addClass("chips"), o.chips(n), e++ 8234 } 8235 }) 8236 }, this.handleEvents = function () { 8237 var e = o.SELS; 8238 o.$document.on("click", e.CHIPS, function (n) { 8239 t(n.target).find(e.INPUT).focus() 8240 }), o.$document.on("click", e.CHIP, function (n) { 8241 t(e.CHIP).removeClass("selected"), t(this).toggleClass("selected") 8242 }
8242), o.$document.on("keydown", function (n) { 8243 if (!t(n.target).is("input, textarea")) { 8244 var i, a = o.$document.find(e.CHIP + e.SELECTED_CHIP), r = a.closest(e.CHIPS), s = a.siblings(e.CHIP).length; 8245 if (a.length) { 8246 var l = 8 === n.which || 46 === n.which, c = 37 === n.which, u = 39 === n.which; 8247 if (l) { 8248 n.preventDefault(); 8249 var d = r.data("index"); 8250 i = a.index(), o.deleteChip(d, i, r); 8251 var h = null; 8252 i + 1 < s ? h = i : i !== s && i + 1 !== s || (h = s - 1), h < 0 && (h = null), null !== h && o.selectChip(d, h, r), s || r.find("input").focus() 8253 } else if (c) { 8254 if ((i = a.index() - 1) < 0) 8255 return; 8256 t(e.CHIP).removeClass("selected"), o.selectChip(r.data("index"), i, r) 8257 } else if (u) { 8258 if (i = a.index() + 1, t(e.CHIP).removeClass("selected"), i > s) 8259 return void r.find("input").focus(); 8260 o.selectChip(r.data("index"), i, r) 8261 } 8262 } 8263 } 8264 }), o.$document.on("focusin", e.CHIPS + " " + e.INPUT, function (n) { 8265 t(n.target).closest(e.CHIPS).addClass("focus"), t(e.CHIP).removeClass("selected") 8266 }), o.$document.on("focusout", e.CHIPS + " " + e.INPUT, function (n) { 8267 t(n.target).closest(e.CHIPS).removeClass("focus") 8268 }), o.$document.on("keydown", e.CHIPS + " " + e.INPUT, function (n) { 8269 var i = t(n.target), a = i.closest(e.CHIPS), r = a.data("index"), s = a.children(e.CHIP).length; 8270 if (13 === n.which) 8271 return n.preventDefault(), o.addChip(r, {tag: i.val()}, a), void i.val(""); 8272 var l = 8 === n.keyCode || 37 === n.keyCode, c = "" === i.val(); 8273 return l && c && s ? (o.selectChip(r, s - 1, a), void i.blur()) : void 0 8274 }), o.$document.on("click", e.CHIPS + " " + e.DELETE, function (n) { 8275 var i = t(n.target), a = i.closest(e.CHIPS), r = i.closest(e.CHIP); 8276 n.stopPropagation(), o.deleteChip(a.data("index"), r.index(), a), a.find("input").focus() 8277 }) 8278 }, this.chips = function (t) { 8279 var e = ""; 8280 t.data("options"); 8281 t.data("chips").forEach(function (t) { 8282 e += o.renderChip(t) 8283 }), e += '<input class="input" placeholder="">', t.html(e), o.setPlaceholder(t) 8284 }, this.renderChip = function (t) { 8285 if (t.tag) { 8286 var e = '<div class="chip">' + t.tag; 8287 return t.image && (e += ' <img src="' + t.image + '"> '), e += '<i class="close fa fa-times"></i>', e += "</div>" 8288 } 8289 }, this.setPlaceholder = function (t) { 8290 var e = t.data("options"); 8291 t.data("chips").length && e.placeholder ? t.find("input").prop("placeholder", e.placeholder) : !t.data("chips").length && e.secondaryPlaceholder && t.find("input").prop("placeholder", e.secondaryPlaceholder) 8292 }, this.isValid = function (t, e) { 8293 for (var n = t.data("chips"), i = !1, o = 0; o < n.length; o++) 8294 if (n[o].tag === e.tag) 8295 return void(i = !0); 8296 return"" !== e.tag && !i 8297 }, this.addChip = function (e, n, i) { 8298 if (o.isValid(i, n)) { 8299 i.data("options"); 8300 var a = o.renderChip(n); 8301 i.data("chips").push(n), t(a).insertBefore(i.find("input")), i.trigger("chip.add", n), o.setPlaceholder(i) 8302 } 8303 }, this.deleteChip = function (t, e, n) { 8304 var i = n.data("chips")[e]; 8305 n.find(".chip").eq(e).remove(), n.data("chips").splice(e, 1), n.trigger("chip.delete", i), o.setPlaceholder(n) 8306 }, this.selectChip = function (t, e, n) { 8307 var i = n.find(".chip").eq(e); 8308 i && !1 === i.hasClass("selected") && (i.addClass("selected"), n.trigger("chip.select", n.data("chips")[e])) 8309 }, this.getChipsElement = function (t, e) { 8310 return e.eq(t) 8311 }, this.init(), void(e || (this.handleEvents(), e = !0))) 8312 } 8313 }(jQuery); 8314} catch (err) 8315{ 8316 //Error log 8317}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.