1/*! nouislider - 8.0.2 - 2015-07-06 13:22:09 */ ! function(a) { 2 if ("function" == typeof define && define.amd) define([], a); 3 else if ("object" == typeof exports) { 4 var b = require("fs"); 5 module.exports = a(), module.exports.css = function() { 6 return b.readFileSync(__dirname + "/nouislider.min.css", "utf8") 7 } 8 } else window.noUiSlider = a() 9}(function() { 10 "use strict"; 11 12 function a(a) { 13 return a.filter(function(a) { 14 return this[a] ? !1 : this[a] = !0 15 }, {}) 16 } 17 18 function b(a, b) { 19 return Math.round(a / b) * b 20 } 21 22 function c(a) { 23 var b = a.getBoundingClientRect(), 24 c = a.ownerDocument, 25 d = c.defaultView || c.parentWindow, 26 e = c.documentElement, 27 f = d.pageXOffset; 28 return /webkit.*Chrome.*Mobile/i.test(navigator.userAgent) && (f = 0), { 29 top: b.top + d.pageYOffset - e.clientTop, 30 left: b.left + f - e.clientLeft 31 } 32 } 33 34 function d(a) { 35 return "number" == typeof a && !isNaN(a) && isFinite(a) 36 } 37 38 function e(a) { 39 var b = Math.pow(10, 7); 40 return Number((Math.round(a * b) / b).toFixed(7)) 41 } 42 43 function f(a, b, c) { 44 j(a, b), setTimeout(function() { 45 k(a, b) 46 }, c) 47 } 48 49 function g(a) { 50 return Math.max(Math.min(a, 100), 0) 51 } 52 53 function h(a) { 54 return Array.isArray(a) ? a : [a] 55 } 56 57 function i(a) { 58 var b = a.split("."); 59 return b.length > 1 ? b[1].length : 0 60 } 61 62 function j(a, b) { 63 a.classList ? a.classList.add(b) : a.className += " " + b 64 } 65 66 function k(a, b) { 67 a.classList ? a.classList.remove(b) : a.className = a.className.replace(new RegExp("(^|\\b)" + b.split(" ").join("|") + "(\\b|$)", "gi"), " ") 68 } 69 70 function l(a, b) { 71 a.classList ? a.classList.contains(b) : new RegExp("(^| )" + b + "( |$)", "gi").test(a.className) 72 } 73 74 function m(a, b) { 75 return 100 / (b - a) 76 } 77 78 function n(a, b) { 79 return 100 * b / (a[1] - a[0]) 80 } 81 82 function o(a, b) { 83 return n(a, a[0] < 0 ? b + Math.abs(a[0]) : b - a[0]) 84 } 85 86 function p(a, b) { 87 return b * (a[1] - a[0]) / 100 + a[0] 88 } 89 90 function q(a, b) { 91 for (var c = 1; a >= b[c];) c += 1; 92 return c 93 } 94 95 function r(a, b, c) { 96 if (c >= a.slice(-1)[0]) return 100; 97 var d, e, f, g, h = q(c, a); 98 return d = a[h - 1], e = a[h], f = b[h - 1], g = b[h], f + o([d, e], c) / m(f, g) 99 } 100 101 function s(a, b, c) { 102 if (c >= 100) return a.slice(-1)[0]; 103 var d, e, f, g, h = q(c, b); 104 return d = a[h - 1], e = a[h], f = b[h - 1], g = b[h], p([d, e], (c - f) * m(f, g)) 105 } 106 107 function t(a, c, d, e) { 108 if (100 === e) return e; 109 var f, g, h = q(e, a); 110 return d ? (f = a[h - 1], g = a[h], e - f > (g - f) / 2 ? g : f) : c[h - 1] ? a[h - 1] + b(e - a[h - 1], c[h - 1]) : e 111 } 112 113 function u(a, b, c) { 114 var e; 115 if ("number" == typeof b && (b = [b]), "[object Array]" !== Object.prototype.toString.call(b)) throw new Error("noUiSlider: 'range' contains invalid value."); 116 if (e = "min" === a ? 0 : "max" === a ? 100 : parseFloat(a), !d(e) || !d(b[0])) throw new Error("noUiSlider: 'range' value isn't numeric."); 117 c.xPct.push(e), c.xVal.push(b[0]), e ? c.xSteps.push(isNaN(b[1]) ? !1 : b[1]) : isNaN(b[1]) || (c.xSteps[0] = b[1]) 118 } 119 120 function v(a, b, c) { 121 return b ? void(c.xSteps[a] = n([c.xVal[a], c.xVal[a + 1]], b) / m(c.xPct[a], c.xPct[a + 1])) : !0 122 } 123 124 function w(a, b, c, d) { 125 this.xPct = [], this.xVal = [], this.xSteps = [d || !1], this.xNumSteps = [!1], this.snap = b, this.direction = c; 126 var e, f = []; 127 for (e in a) a.hasOwnProperty(e) && f.push([a[e], e]); 128 for (f.sort(function(a, b) { 129 return a[0] - b[0] 130 }), e = 0; e < f.length; e++) u(f[e][1], f[e][0], this); 131 for (this.xNumSteps = this.xSteps.slice(0), e = 0; e < this.xNumSteps.length; e++) v(e, this.xNumSteps[e], this) 132 } 133 134 function x(a, b) { 135 if (!d(b)) throw new Error("noUiSlider: 'step' is not numeric."); 136 a.singleStep = b 137 } 138 139 function y(a, b) { 140 if ("object" != typeof b || Array.isArray(b)) throw new Error("noUiSlider: 'range' is not an object."); 141 if (void 0 === b.min || void 0 === b.max) throw new Error("noUiSlider: Missing 'min' or 'max' in 'range'."); 142 a.spectrum = new w(b, a.snap, a.dir, a.singleStep) 143 } 144 145 function z(a, b) { 146 if (b = h(b), !Array.isArray(b) || !b.length || b.length > 2) throw new Error("noUiSlider: 'start' option is incorrect."); 147 a.handles = b.length, a.start = b 148 } 149 150 function A(a, b) { 151 if (a.snap = b, "boolean" != typeof b) throw new Error("noUiSlider: 'snap' option must be a boolean.") 152 } 153 154 function B(a, b) { 155 if (a.animate = b, "boolean" != typeof b) throw new Error("noUiSlider: 'animate' option must be a boolean.") 156 } 157 158 function C(a, b) { 159 if ("lower" === b && 1 === a.handles) a.connect = 1; 160 else if ("upper" === b && 1 === a.handles) a.connect = 2; 161 else if (b === !0 && 2 === a.handles) a.connect = 3; 162 else { 163 if (b !== !1) throw new Error("noUiSlider: 'connect' option doesn't match handle count."); 164 a.connect = 0 165 } 166 } 167 168 function D(a, b) { 169 switch (b) { 170 case "horizontal": 171 a.ort = 0; 172 break; 173 case "vertical": 174 a.ort = 1; 175 break; 176 default: 177 throw new Error("noUiSlider: 'orientation' option is invali
177d.") 178 } 179 } 180 181 function E(a, b) { 182 if (!d(b)) throw new Error("noUiSlider: 'margin' option must be numeric."); 183 if (a.margin = a.spectrum.getMargin(b), !a.margin) throw new Error("noUiSlider: 'margin' option is only supported on linear sliders.") 184 } 185 186 function F(a, b) { 187 if (!d(b)) throw new Error("noUiSlider: 'limit' option must be numeric."); 188 if (a.limit = a.spectrum.getMargin(b), !a.limit) throw new Error("noUiSlider: 'limit' option is only supported on linear sliders.") 189 } 190 191 function G(a, b) { 192 switch (b) { 193 case "ltr": 194 a.dir = 0; 195 break; 196 case "rtl": 197 a.dir = 1, a.connect = [0, 2, 1, 3][a.connect]; 198 break; 199 default: 200 throw new Error("noUiSlider: 'direction' option was not recognized.") 201 } 202 } 203 204 function H(a, b) { 205 if ("string" != typeof b) throw new Error("noUiSlider: 'behaviour' must be a string containing options."); 206 var c = b.indexOf("tap") >= 0, 207 d = b.indexOf("drag") >= 0, 208 e = b.indexOf("fixed") >= 0, 209 f = b.indexOf("snap") >= 0; 210 a.events = { 211 tap: c || f, 212 drag: d, 213 fixed: e, 214 snap: f 215 } 216 } 217 218 function I(a, b) { 219 if (a.format = b, "function" == typeof b.to && "function" == typeof b.from) return !0; 220 throw new Error("noUiSlider: 'format' requires 'to' and 'from' methods.") 221 } 222 223 function J(a) { 224 var b, c = { 225 margin: 0, 226 limit: 0, 227 animate: !0, 228 format: U 229 }; 230 b = { 231 step: { 232 r: !1, 233 t: x 234 }, 235 start: { 236 r: !0, 237 t: z 238 }, 239 connect: { 240 r: !0, 241 t: C 242 }, 243 direction: { 244 r: !0, 245 t: G 246 }, 247 snap: { 248 r: !1, 249 t: A 250 }, 251 animate: { 252 r: !1, 253 t: B 254 }, 255 range: { 256 r: !0, 257 t: y 258 }, 259 orientation: { 260 r: !1, 261 t: D 262 }, 263 margin: { 264 r: !1, 265 t: E 266 }, 267 limit: { 268 r: !1, 269 t: F 270 }, 271 behaviour: { 272 r: !0, 273 t: H 274 }, 275 format: { 276 r: !1, 277 t: I 278 } 279 }; 280 var d = { 281 connect: !1, 282 direction: "ltr", 283 behaviour: "tap", 284 orientation: "horizontal" 285 }; 286 return Object.keys(d).forEach(function(b) { 287 void 0 === a[b] && (a[b] = d[b]) 288 }), Object.keys(b).forEach(function(d) { 289 var e = b[d]; 290 if (void 0 === a[d]) { 291 if (e.r) throw new Error("noUiSlider: '" + d + "' is required."); 292 return !0 293 } 294 e.t(c, a[d]) 295 }), c.pips = a.pips, c.style = c.ort ? "top" : "left", c 296 } 297 298 function K(a, b, c) { 299 var d = a + b[0], 300 e = a + b[1]; 301 return c ? (0 > d && (e += Math.abs(d)), e > 100 && (d -= e - 100), [g(d), g(e)]) : [d, e] 302 } 303 304 function L(a) { 305 a.preventDefault(); 306 var b, c, d = 0 === a.type.indexOf("touch"), 307 e = 0 === a.type.indexOf("mouse"), 308 f = 0 === a.type.indexOf("pointer"), 309 g = a; 310 return 0 === a.type.indexOf("MSPointer") && (f = !0), d && (b = a.changedTouches[0].pageX, c = a.changedTouches[0].pageY), (e || f) && (b = a.clientX + window.pageXOffset, c = a.clientY + window.pageYOffset), g.points = [b, c], g.cursor = e || f, g 311 } 312 313 function M(a, b) { 314 var c = document.createElement("div"), 315 d = document.createElement("div"), 316 e = ["-lower", "-upper"]; 317 return a && e.reverse(), j(d, T[3]), j(d, T[3] + e[b]), j(c, T[2]), c.appendChild(d), c 318 } 319 320 function N(a, b, c) { 321 switch (a) { 322 case 1:
323 j(b, T[7]), j(c[0], T[6]); 324 break; 325 case 3: 326 j(c[1], T[6]); 327 case 2: 328 j(c[0], T[7]); 329 case 0: 330 j(b, T[6]) 331 } 332 } 333 334 function O(a, b, c) { 335 var d, e = []; 336 for (d = 0; a > d; d += 1) e.push(c.appendChild(M(b, d))); 337 return e 338 } 339 340 function P(a, b, c) { 341 j(c, T[0]), j(c, T[8 + a]), j(c, T[4 + b]); 342 var d = document.createElement("div"); 343 return j(d, T[1]), c.appendChild(d), d 344 } 345 346 function Q(b, d) { 347 function e(a, b, c) { 348 if ("range" === a || "steps" === a) return M.xVal; 349 if ("count" === a) { 350 var d, e = 100 / (b - 1), 351 f = 0; 352 for (b = []; 353 (d = f++ * e) <= 100;) b.push(d); 354 a = "positions" 355 } 356 return "positions" === a ? b.map(function(a) { 357 return M.fromStepping(c ? M.getStep(a) : a) 358 }) : "values" === a ? c ? b.map(function(a) { 359 return M.fromStepping(M.getStep(M.toStepping(a))) 360 }) : b : void 0 361 } 362 363 function m(b, c, d) { 364 var e = M.direction, 365 f = {}, 366 g = M.xVal[0], 367 h = M.xVal[M.xVal.length - 1], 368 i = !1, 369 j = !1, 370 k = 0; 371 return M.direction = 0, d = a(d.slice().sort(function(a, b) { 372 return a - b 373 })), d[0] !== g && (d.unshift(g), i = !0), d[d.length - 1] !== h && (d.push(h), j = !0), d.forEach(function(a, e) { 374 var g, h, l, m, n, o, p, q, r, s, t = a, 375 u = d[e + 1]; 376 if ("steps" === c && (g = M.xNumSteps[e]), g || (g = u - t), t !== !1 && void 0 !== u) 377 for (h = t; u >= h; h += g) { 378 for (m = M.toStepping(h), n = m - k, q = n / b, r = Math.round(q), s = n / r, l = 1; r >= l; l += 1) o = k + l * s, f[o.toFixed(5)] = ["x", 0]; 379 p = d.indexOf(h) > -1 ? 1 : "steps" === c ? 2 : 0, !e && i && (p = 0), h === u && j || (f[m.toFixed(5)] = [h, p]), k = m 380 } 381 }), M.direction = e, f 382 } 383 384 function n(a, b, c) { 385 function e(a) { 386 return ["-normal", "-large", "-sub"][a] 387 } 388 389 function f(a, b, c) { 390 return 'class="' + b + " " + b + "-" + h + " " + b + e(c[1]) + '" style="' + d.style + ": " + a + '%"' 391 } 392 393 function g(a, d) { 394 M.direction && (a = 100 - a), d[1] = d[1] && b ? b(d[0], d[1]) : d[1], i.innerHTML += "<div " + f(a, "noUi-marker", d) + "></div>", d[1] && (i.innerHTML += "<div " + f(a, "noUi-value", d) + ">" + c.to(d[0]) + "</div>") 395 } 396 var h = ["horizontal", "vertical"][d.ort], 397 i = document.createElement("div"); 398 return j(i, "noUi-pips"), j(i, "noUi-pips-" + h), Object.keys(a).forEach(function(b) { 399 g(b, a[b]) 400 }), i 401 } 402 403 function o(a) { 404 var b = a.mode, 405 c = a.density || 1, 406 d = a.filter || !1, 407 f = a.values || !1, 408 g = a.stepped || !1, 409 h = e(b, f, g), 410 i = m(c, b, h), 411 j = a.format || { 412 to: Math.round 413 }; 414 return I.appendChild(n(i, d, j)) 415 } 416 417 function p() { 418 return G["offset" + ["Width", "Height"][d.ort]] 419 } 420 421 function q(a, b) { 422 void 0 !== b && (b = Math.abs(b - d.dir)), Object.keys(R).forEach(function(c) { 423 var d = c.split(".")[0]; 424 a === d && R[c].forEach(function(a) { 425 a(h(B()), b, r(Array.prototype.slice.call(Q))) 426 }) 427 }) 428 } 429 430 function r(a) { 431 return 1 === a.length ? a[0] : d.dir ? a.reverse() : a 432 } 433 434 function s(a, b, c, e) { 435 var f = function(b) { 436 return I.hasAttribute("disabled") ? !1 : l(I, T[14]) ? !1 : (b = L(b), a === S.start && void 0 !== b.buttons && b.buttons > 1 ? !1 : (b.calcPoint = b.points[d.ort], void c(b, e))) 437 }, 438 g = []; 439 return a.split(" ").forEach(function(a) { 440 b.addEventListener(a, f, !1), g.push([a, f]) 441 }), g 442 } 443 444 function t(a, b) { 445 var c, d, e = b.handles || H, 446 f = !1, 447 g = 100 * (a.calcPoint - b.start) / p(), 448 h = e[0] === H[0] ? 0 : 1; 449 if (c = K(g, b.positions, e.length > 1), f = y(e[0], c[h], 1 === e.length), e.length > 1) { 450 if (f = y(e[1], c[h ? 0 : 1], !1) || f) 451 for (d = 0; d < b.handles.length; d++) q("slide", d) 452 } else f && q("slide", h) 453 } 454 455 function u(a, b) { 456 var c = G.getElementsByClassName(T[15]), 457 d = b.handles[0] === H[0] ? 0 : 1; 458 c.length && k(c[0], T[15]), a.cursor && (document.body.style.cursor = "", document.body.removeEventListener("selectstart", document.body.noUiListener)); 459 var e = document.documentElement;
460 e.noUiListeners.forEach(function(a) { 461 e.removeEventListener(a[0], a[1]) 462 }), k(I, T[12]), q("set", d), q("change", d) 463 } 464 465 function v(a, b) { 466 var c = document.documentElement; 467 if (1 === b.handles.length && (j(b.handles[0].children[0], T[15]), b.handles[0].hasAttribute("disabled"))) return !1; 468 a.stopPropagation(); 469 var d = s(S.move, c, t, { 470 start: a.calcPoint, 471 handles: b.handles, 472 positions: [J[0], J[H.length - 1]] 473 }), 474 e = s(S.end, c, u, { 475 handles: b.handles 476 }); 477 if (c.noUiListeners = d.concat(e), a.cursor) { 478 document.body.style.cursor = getComputedStyle(a.target).cursor, H.length > 1 && j(I, T[12]); 479 var f = function() { 480 return !1 481 }; 482 document.body.noUiListener = f, document.body.addEventListener("selectstart", f, !1) 483 } 484 } 485 486 function w(a) { 487 var b, e, g = a.calcPoint, 488 h = 0; 489 return a.stopPropagation(), H.forEach(function(a) { 490 h += c(a)[d.style] 491 }), b = h / 2 > g || 1 === H.length ? 0 : 1, g -= c(G)[d.style], e = 100 * g / p(), d.events.snap || f(I, T[14], 300), H[b].hasAttribute("disabled") ? !1 : (y(H[b], e), q("slide", b), q("set", b), q("change", b), void(d.events.snap && v(a, { 492 handles: [H[h]] 493 }))) 494 } 495 496 function x(a) { 497 var b, c; 498 if (!a.fixed) 499 for (b = 0; b < H.length; b += 1) s(S.start, H[b].children[0], v, { 500 handles: [H[b]] 501 }); 502 a.tap && s(S.start, G, w, { 503 handles: H 504 }), a.drag && (c = [G.getElementsByClassName(T[7])[0]], j(c[0], T[10]), a.fixed && c.push(H[c[0] === H[0] ? 1 : 0].children[0]), c.forEach(function(a) { 505 s(S.start, a, v, { 506 handles: H 507 }) 508 })) 509 } 510 511 function y(a, b, c) { 512 var e = a !== H[0] ? 1 : 0, 513 f = J[0] + d.margin, 514 h = J[1] - d.margin, 515 i = J[0] + d.limit, 516 l = J[1] - d.limit; 517 return H.length > 1 && (b = e ? Math.max(b, f) : Math.min(b, h)), c !== !1 && d.limit && H.length > 1 && (b = e ? Math.min(b, i) : Math.max(b, l)), b = M.getStep(b), b = g(parseFloat(b.toFixed(7))), b === J[e] ? !1 : (a.style[d.style] = b + "%", a.previousSibling || (k(a, T[17]), b > 50 && j(a, T[17])), J[e] = b, Q[e] = M.fromStepping(b), q("update", e), !0) 518 } 519 520 function z(a, b) { 521 var c, e, f; 522 for (d.limit && (a += 1), c = 0; a > c; c += 1) e = c % 2, f = b[e], null !== f && f !== !1 && ("number" == typeof f && (f = String(f)), f = d.format.from(f), (f === !1 || isNaN(f) || y(H[e], M.toStepping(f), c === 3 - d.dir) === !1) && q("update", e)) 523 } 524 525 function A(a) { 526 var b, c, e = h(a); 527 for (d.dir && d.handles > 1 && e.reverse(), d.animate && -1 !== J[0] && f(I, T[14], 300), b = H.length > 1 ? 3 : 1, 1 === e.length && (b = 1), z(b, e), c = 0; c < H.length; c++) q("set", c) 528 } 529 530 function B() { 531 var a, b = []; 532 for (a = 0; a < d.handles; a += 1) b[a] = d.format.to(Q[a]); 533 return r(b) 534 } 535 536 function C() { 537 T.forEach(function(a) { 538 a && k(I, a) 539 }), I.innerHTML = "", delete I.noUiSlider 540 } 541 542 function D() { 543 var a = J.map(function(a, b) { 544 var c = M.getApplicableStep(a), 545 d = i(String(c[2])), 546 e = Q[b], 547 f = 100 === a ? null : c[2], 548 g = Number((e - c[2]).toFixed(d)), 549 h = 0 === a ? null : g >= c[1] ? c[2] : c[0] || !1; 550 return [h, f] 551 }); 552 return r(a) 553 } 554 555 function E(a, b) { 556 R[a] = R[a] || [], R[a].push(b), "update" === a.split(".")[0] && H.forEach(function(a, b) { 557 q("update", b) 558 }) 559 } 560 561 function F(a) { 562 var b = a.split(".")[0], 563 c = a.substring(b.length);
564 Object.keys(R).forEach(function(a) { 565 var d = a.split(".")[0], 566 e = a.substring(d.length); 567 b && b !== d || c && c !== e || delete R[a] 568 }) 569 } 570 var G, H, I = b, 571 J = [-1, -1], 572 M = d.spectrum, 573 Q = [], 574 R = {}; 575 if (I.noUiSlider) throw new Error("Slider was already initialized."); 576 return G = P(d.dir, d.ort, I), H = O(d.handles, d.dir, G), N(d.connect, I, H), x(d.events), d.pips && o(d.pips), { 577 destroy: C, 578 steps: D, 579 on: E, 580 off: F, 581 get: B, 582 set: A 583 } 584 } 585 586 function R(a, b) { 587 if (!a.nodeName) throw new Error("noUiSlider.create requires a single element."); 588 var c = J(b, a), 589 d = Q(a, c); 590 d.set(c.start), a.noUiSlider = d 591 } 592 var S = window.navigator.pointerEnabled ? { 593 start: "pointerdown", 594 move: "pointermove", 595 end: "pointerup" 596 } : window.navigator.msPointerEnabled ? { 597 start: "MSPointerDown", 598 move: "MSPointerMove", 599 end: "MSPointerUp" 600 } : { 601 start: "mousedown touchstart", 602 move: "mousemove touchmove", 603 end: "mouseup touchend" 604 }, 605 T = ["noUi-target", "noUi-base", "noUi-origin", "noUi-handle", "noUi-horizontal", "noUi-vertical", "noUi-background", "noUi-connect", "noUi-ltr", "noUi-rtl", "noUi-dragable", "", "noUi-state-drag", "", "noUi-state-tap", "noUi-active", "", "noUi-stacking"]; 606 w.prototype.getMargin = function(a) { 607 return 2 === this.xPct.length ? n(this.xVal, a) : !1 608 }, w.prototype.toStepping = function(a) { 609 return a = r(this.xVal, this.xPct, a), this.direction && (a = 100 - a), a 610 }, w.prototype.fromStepping = function(a) { 611 return this.direction && (a = 100 - a), e(s(this.xVal, this.xPct, a)) 612 }, w.prototype.getStep = function(a) { 613 return this.direction && (a = 100 - a), a = t(this.xPct, this.xSteps, this.snap, a), this.direction && (a = 100 - a), a 614 }, w.prototype.getApplicableStep = function(a) { 615 var b = q(a, this.xPct), 616 c = 100 === a ? 2 : 1; 617 return [this.xNumSteps[b - 2], this.xVal[b - c], this.xNumSteps[b - c]] 618 }, w.prototype.convert = function(a) { 619 return this.getStep(this.toStepping(a)) 620 }; 621 var U = { 622 to: function(a) { 623 return a.toFixed(2) 624 }, 625 from: Number 626 }; 627 return { 628 create: R 629 } 630});
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.