PageSourceSearch

https://tuglas.fi/assets/js/plugins/nouislider.min.js

js tuglas.fi collected 2026-10-02 11:43:07 UTC 35,345 bytes, 961 lines download raw bytes

1/*! nouislider - 10.0.0 */
2
3! function(a) {
4    "function" == typeof define && define.amd ? define([], a) : "object" == typeof exports ? module.exports = a() : window.noUiSlider = a()
5}(function() {
6    "use strict";
7
8    function a(a) {
9        return "object" == typeof a && "function" == typeof a.to && "function" == typeof a.from
10    }
11
12    function b(a) {
13        a.parentElement.removeChild(a)
14    }
15
16    function c(a) {
17        a.preventDefault()
18    }
19
20    function d(a) {
21        return a.filter(function(a) {
22            return this[a] ? !1 : this[a] = !0
23        }, {})
24    }
25
26    function e(a, b) {
27        return Math.round(a / b) * b
28    }
29
30    function f(a, b) {
31        var c = a.getBoundingClientRect(),
32            d = a.ownerDocument,
33            e = d.documentElement,
34            f = o(d);
35        return /webkit.*Chrome.*Mobile/i.test(navigator.userAgent) && (f.x = 0), b ? c.top + f.y - e.clientTop : c.left + f.x - e.clientLeft
36    }
37
38    function g(a) {
39        return "number" == typeof a && !isNaN(a) && isFinite(a)
40    }
41
42    function h(a, b, c) {
43        c > 0 && (l(a, b), setTimeout(function() {
44            m(a, b)
45        }, c))
46    }
47
48    function i(a) {
49        return Math.max(Math.min(a, 100), 0)
50    }
51
52    function j(a) {
53        return Array.isArray(a) ? a : [a]
54    }
55
56    function k(a) {
57        a = String(a);
58        var b = a.split(".");
59        return b.length > 1 ? b[1].length : 0
60    }
61
62    function l(a, b) {
63        a.classList ? a.classList.add(b) : a.className += " " + b
64    }
65
66    function m(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 n(a, b) {
71        return a.classList ? a.classList.contains(b) : new RegExp("\\b" + b + "\\b").test(a.className)
72    }
73
74    function o(a) {
75        var b = void 0 !== window.pageXOffset,
76            c = "CSS1Compat" === (a.compatMode || ""),
77            d = b ? window.pageXOffset : c ? a.documentElement.scrollLeft : a.body.scrollLeft,
78            e = b ? window.pageYOffset : c ? a.documentElement.scrollTop : a.body.scrollTop;
79        return {
80            x: d,
81            y: e
82        }
83    }
84
85    function p() {
86        return window.navigator.pointerEnabled ? {
87            start: "pointerdown",
88            move: "pointermove",
89            end: "pointerup"
90        } : window.navigator.msPointerEnabled ? {
91            start: "MSPointerDown",
92            move: "MSPointerMove",
93            end: "MSPointerUp"
94        } : {
95            start: "mousedown touchstart",
96            move: "mousemove touchmove",
97            end: "mouseup touchend"
98        }
99    }
100
101    function q() {
102        var a = !1;
103        try {
104            var b = Object.defineProperty({}, "passive", {
105                get: function() {
106                    a = !0
107                }
108            });
109            window.addEventListener("test", null, b)
110        } catch (c) {}
111        return a
112    }
113
114    function r() {
115        return window.CSS && CSS.supports && CSS.supports("touch-action", "none")
116    }
117
118    function s(a, b) {
119        return 100 / (b - a)
120    }
121
122    function t(a, b) {
123        return 100 * b / (a[1] - a[0])
124    }
125
126    function u(a, b) {
127        return t(a, a[0] < 0 ? b + Math.abs(a[0]) : b - a[0])
128    }
129
130    function v(a, b) {
131        return b * (a[1] - a[0]) / 100 + a[0]
132    }
133
134    function w(a, b) {
135        for (var c = 1; a >= b[c];) c += 1;
136        return c
137    }
138
139    function x(a, b, c) {
140        if (c >= a.slice(-1)[0]) return 100;
141        var d, e, f, g, h = w(c, a);
142        return d = a[h - 1], e = a[h], f = b[h - 1], g = b[h], f + u([d, e], c) / s(f, g)
143    }
144
145    function y(a, b, c) {
146        if (c >= 100) return a.slice(-1)[0];
147        var d, e, f, g, h = w(c, b);
148        return d = a[h - 1], e = a[h], f = b[h - 1], g = b[h], v([d, e], (c - f) * s(f, g))
149    }
150
151    function z(a, b, c, d) {
152        if (100 === d) return d;
153        var f, g, h = w(d, a);
154        return c ? (f = a[h - 1], g = a[h], d - f > (g - f) / 2 ? g : f) : b[h - 1] ? a[h - 1] + e(d - a[h - 1], b[h - 1]) : d
155    }
156
157    function A(a, b, c) {
158        var d;
159        if ("number" == typeof b && (b = [b]), "[object Array]" !== Object.prototype.toString.call(b)) throw new Error("noUiSlider (" + $ + "): 'range' contains invali
vendor: 6,823 bytes, lines 159-323
159d value.");
160        if (d = "min" === a ? 0 : "max" === a ? 100 : parseFloat(a), !g(d) || !g(b[0])) throw new Error("noUiSlider (" + $ + "): 'range' value isn't numeric.");
161        c.xPct.push(d), c.xVal.push(b[0]), d ? c.xSteps.push(isNaN(b[1]) ? !1 : b[1]) : isNaN(b[1]) || (c.xSteps[0] = b[1]), c.xHighestCompleteStep.push(0)
162    }
163
164    function B(a, b, c) {
165        if (!b) return !0;
166        c.xSteps[a] = t([c.xVal[a], c.xVal[a + 1]], b) / s(c.xPct[a], c.xPct[a + 1]);
167        var d = (c.xVal[a + 1] - c.xVal[a]) / c.xNumSteps[a],
168            e = Math.ceil(Number(d.toFixed(3)) - 1),
169            f = c.xVal[a] + c.xNumSteps[a] * e;
170        c.xHighestCompleteStep[a] = f
171    }
172
173    function C(a, b, c) {
174        this.xPct = [], this.xVal = [], this.xSteps = [c || !1], this.xNumSteps = [!1], this.xHighestCompleteStep = [], this.snap = b;
175        var d, e = [];
176        for (d in a) a.hasOwnProperty(d) && e.push([a[d], d]);
177        for (e.sort(e.length && "object" == typeof e[0][0] ? function(a, b) {
178                return a[0][0] - b[0][0]
179            } : function(a, b) {
180                return a[0] - b[0]
181            }), d = 0; d < e.length; d++) A(e[d][1], e[d][0], this);
182        for (this.xNumSteps = this.xSteps.slice(0), d = 0; d < this.xNumSteps.length; d++) B(d, this.xNumSteps[d], this)
183    }
184
185    function D(b) {
186        if (a(b)) return !0;
187        throw new Error("noUiSlider (" + $ + "): 'format' requires 'to' and 'from' methods.")
188    }
189
190    function E(a, b) {
191        if (!g(b)) throw new Error("noUiSlider (" + $ + "): 'step' is not numeric.");
192        a.singleStep = b
193    }
194
195    function F(a, b) {
196        if ("object" != typeof b || Array.isArray(b)) throw new Error("noUiSlider (" + $ + "): 'range' is not an object.");
197        if (void 0 === b.min || void 0 === b.max) throw new Error("noUiSlider (" + $ + "): Missing 'min' or 'max' in 'range'.");
198        if (b.min === b.max) throw new Error("noUiSlider (" + $ + "): 'range' 'min' and 'max' cannot be equal.");
199        a.spectrum = new C(b, a.snap, a.singleStep)
200    }
201
202    function G(a, b) {
203        if (b = j(b), !Array.isArray(b) || !b.length) throw new Error("noUiSlider (" + $ + "): 'start' option is incorrect.");
204        a.handles = b.length, a.start = b
205    }
206
207    function H(a, b) {
208        if (a.snap = b, "boolean" != typeof b) throw new Error("noUiSlider (" + $ + "): 'snap' option must be a boolean.")
209    }
210
211    function I(a, b) {
212        if (a.animate = b, "boolean" != typeof b) throw new Error("noUiSlider (" + $ + "): 'animate' option must be a boolean.")
213    }
214
215    function J(a, b) {
216        if (a.animationDuration = b, "number" != typeof b) throw new Error("noUiSlider (" + $ + "): 'animationDuration' option must be a number.")
217    }
218
219    function K(a, b) {
220        var c, d = [!1];
221        if ("lower" === b ? b = [!0, !1] : "upper" === b && (b = [!1, !0]), b === !0 || b === !1) {
222            for (c = 1; c < a.handles; c++) d.push(b);
223            d.push(!1)
224        } else {
225            if (!Array.isArray(b) || !b.length || b.length !== a.handles + 1) throw new Error("noUiSlider (" + $ + "): 'connect' option doesn't match handle count.");
226            d = b
227        }
228        a.connect = d
229    }
230
231    function L(a, b) {
232        switch (b) {
233            case "horizontal":
234                a.ort = 0;
235                break;
236            case "vertical":
237                a.ort = 1;
238                break;
239            default:
240                throw new Error("noUiSlider (" + $ + "): 'orientation' option is invalid.")
241        }
242    }
243
244    function M(a, b) {
245        if (!g(b)) throw new Error("noUiSlider (" + $ + "): 'margin' option must be numeric.");
246        if (0 !== b && (a.margin = a.spectrum.getMargin(b), !a.margin)) throw new Error("noUiSlider (" + $ + "): 'margin' option is only supported on linear sliders.")
247    }
248
249    function N(a, b) {
250        if (!g(b)) throw new Error("noUiSlider (" + $ + "): 'limit' option must be numeric.");
251        if (a.limit = a.spectrum.getMargin(b), !a.limit || a.handles < 2) throw new Error("noUiSlider (" + $ + "): 'limit' option is only supported on linear sliders with 2 or more handles.")
252    }
253
254    function O(a, b) {
255        if (!g(b)) throw new Error("noUiSlider (" + $ + "): 'padding' option must be numeric.");
256        if (0 !== b) {
257            if (a.padding = a.spectrum.getMargin(b), !a.padding) throw new Error("noUiSlider (" + $ + "): 'padding' option is only supported on linear sliders.");
258            if (a.padding < 0) throw new Error("noUiSlider (" + $ + "): 'padding' option must be a positive number.");
259            if (a.padding >= 50) throw new Error("noUiSlider (" + $ + "): 'padding' option must be less than half the range.")
260        }
261    }
262
263    function P(a, b) {
264        switch (b) {
265            case "ltr":
266                a.dir = 0;
267                break;
268            case "rtl":
269                a.dir = 1;
270                break;
271            default:
272                throw new Error("noUiSlider (" + $ + "): 'direction' option was not recognized.")
273        }
274    }
275
276    function Q(a, b) {
277        if ("string" != typeof b) throw new Error("noUiSlider (" + $ + "): 'behaviour' must be a string containing options.");
278        var c = b.indexOf("tap") >= 0,
279            d = b.indexOf("drag") >= 0,
280            e = b.indexOf("fixed") >= 0,
281            f = b.indexOf("snap") >= 0,
282            g = b.indexOf("hover") >= 0;
283        if (e) {
284            if (2 !== a.handles) throw new Error("noUiSlider (" + $ + "): 'fixed' behaviour must be used with 2 handles");
285            M(a, a.start[1] - a.start[0])
286        }
287        a.events = {
288            tap: c || f,
289            drag: d,
290            fixed: e,
291            snap: f,
292            hover: g
293        }
294    }
295
296    function R(a, b) {
297        if (b !== !1)
298            if (b === !0) {
299                a.tooltips = [];
300                for (var c = 0; c < a.handles; c++) a.tooltips.push(!0)
301            } else {
302                if (a.tooltips = j(b), a.tooltips.length !== a.handles) throw new Error("noUiSlider (" + $ + "): must pass a formatter for all handles.");
303                a.tooltips.forEach(function(a) {
304                    if ("boolean" != typeof a && ("object" != typeof a || "function" != typeof a.to)) throw new Error("noUiSlider (" + $ + "): 'tooltips' must be passed a formatter or 'false'.")
305                })
306            }
307    }
308
309    function S(a, b) {
310        a.ariaFormat = b, D(b)
311    }
312
313    function T(a, b) {
314        a.format = b, D(b)
315    }
316
317    function U(a, b) {
318        if (void 0 !== b && "string" != typeof b && b !== !1) throw new Error("noUiSlider (" + $ + "): 'cssPrefix' must be a string or `false`.");
319        a.cssPrefix = b
320    }
321
322    function V(a, b) {
323        if (void 0 !== b && "object" != typeof b) throw new Error("noUiSlider (" + $ + "): 'cssClasse
323s' must be an object.");
324        if ("string" == typeof a.cssPrefix) {
325            a.cssClasses = {};
326            for (var c in b) b.hasOwnProperty(c) && (a.cssClasses[c] = a.cssPrefix + b[c])
327        } else a.cssClasses = b
328    }
329
330    function W(a, b) {
331        if (b !== !0 && b !== !1) throw new Error("noUiSlider (" + $ + "): 'useRequestAnimationFrame' option should be true (default) or false.");
332        a.useRequestAnimationFrame = b
333    }
334
335    function X(a) {
336        var b = {
337                margin: 0,
338                limit: 0,
339                padding: 0,
340                animate: !0,
341                animationDuration: 300,
342                ariaFormat: _,
343                format: _
344            },
345            c = {
346                step: {
347                    r: !1,
348                    t: E
349                },
350                start: {
351                    r: !0,
352                    t: G
353                },
354                connect: {
355                    r: !0,
356                    t: K
357                },
358                direction: {
359                    r: !0,
360                    t: P
361                },
362                snap: {
363                    r: !1,
364                    t: H
365                },
366                animate: {
367                    r: !1,
368                    t: I
369                },
370                animationDuration: {
371                    r: !1,
372                    t: J
373                },
374                range: {
375                    r: !0,
376                    t: F
377                },
378                orientation: {
379                    r: !1,
380                    t: L
381                },
382                margin: {
383                    r: !1,
384                    t: M
385                },
386                limit: {
387                    r: !1,
388                    t: N
389                },
390                padding: {
391                    r: !1,
392                    t: O
393                },
394                behaviour: {
395                    r: !0,
396                    t: Q
397                },
398                ariaFormat: {
399                    r: !1,
400                    t: S
401                },
402                format: {
403                    r: !1,
404                    t: T
405                },
406                tooltips: {
407                    r: !1,
408                    t: R
409                },
410                cssPrefix: {
411                    r: !1,
412                    t: U
413                },
414                cssClasses: {
415                    r: !1,
416                    t: V
417                },
418                useRequestAnimationFrame: {
419                    r: !1,
420                    t: W
421                }
422            },
423            d = {
424                connect: !1,
425                direction: "ltr",
426                behaviour: "tap",
427                orientation: "horizontal",
428                cssPrefix: "noUi-",
429                cssClasses: {
430                    target: "target",
431                    base: "base",
432                    origin: "origin",
433                    handle: "handle",
434                    handleLower: "handle-lower",
435                    handleUpper: "handle-upper",
436                    horizontal: "horizontal",
437                    vertical: "vertical",
438                    background: "background",
439                    connect: "connect",
440                    ltr: "ltr",
441                    rtl: "rtl",
442                    draggable: "draggable",
443                    drag: "state-drag",
444                    tap: "state-tap",
445                    active: "active",
446                    tooltip: "tooltip",
447                    pips: "pips",
448                    pipsHorizontal: "pips-horizontal",
449                    pipsVertical: "pips-vertical",
450                    marker: "marker",
451                    markerHorizontal: "marker-horizontal",
452                    markerVertical: "marker-vertical",
453                    markerNormal: "marker-normal",
454                    markerLarge: "marker-large",
455                    markerSub: "marker-sub",
456                    value: "value",
457                    valueHorizontal: "value-horizontal",
458                    valueVertical: "value-vertical",
459                    valueNormal: "value-normal",
460                    valueLarge: "value-large",
461                    valueSub: "value-sub"
462                },
463                useRequestAnimationFrame: !0
464            };
465        a.format && !a.ariaFormat && (a.ariaFormat = a.format), Object.keys(c).forEac
465h(function(e) {
466            if (void 0 === a[e] && void 0 === d[e]) {
467                if (c[e].r) throw new Error("noUiSlider (" + $ + "): '" + e + "' is required.");
468                return !0
469            }
470            c[e].t(b, void 0 === a[e] ? d[e] : a[e])
471        }), b.pips = a.pips;
472        var e = [
473            ["left", "top"],
474            ["right", "bottom"]
475        ];
476        return b.style = e[b.dir][b.ort], b.styleOposite = e[b.dir ? 0 : 1][b.ort], b
477    }
478
479    function Y(a, e, g) {
480        function k(a, b) {
481            var c = xa.createElement("div");
482            return b && l(c, b), a.appendChild(c), c
483        }
484
485        function s(a, b) {
486            var c = k(a, e.cssClasses.origin),
487                d = k(c, e.cssClasses.handle);
488            return d.setAttribute("data-handle", b), d.setAttribute("tabindex", "0"), d.setAttribute("role", "slider"), d.setAttribute("aria-orientation", e.ort ? "vertical" : "horizontal"), 0 === b ? l(d, e.cssClasses.handleLower) : b === e.handles - 1 && l(d, e.cssClasses.handleUpper), c
489        }
490
491        function t(a, b) {
492            return b ? k(a, e.cssClasses.connect) : !1
493        }
494
495        function u(a, b) {
496            ia = [], ja = [], ja.push(t(b, a[0]));
497            for (var c = 0; c < e.handles; c++) ia.push(s(b, c)), ra[c] = c, ja.push(t(b, a[c + 1]))
498        }
499
500        function v(a) {
501            l(a, e.cssClasses.target), 0 === e.dir ? l(a, e.cssClasses.ltr) : l(a, e.cssClasses.rtl), 0 === e.ort ? l(a, e.cssClasses.horizontal) : l(a, e.cssClasses.vertical), ha = k(a, e.cssClasses.base)
502        }
503
504        function w(a, b) {
505            return e.tooltips[b] ? k(a.firstChild, e.cssClasses.tooltip) : !1
506        }
507
508        function x() {
509            var a = ia.map(w);
510            ea("update", function(b, c, d) {
511                if (a[c]) {
512                    var f = b[c];
513                    e.tooltips[c] !== !0 && (f = e.tooltips[c].to(d[c])), a[c].innerHTML = f
514                }
515            })
516        }
517
518        function y() {
519            ea("update", function(a, b, c, d, f) {
520                ra.forEach(function(a) {
521                    var b = ia[a],
522                        d = S(qa, a, 0, !0, !0, !0),
523                        g = S(qa, a, 100, !0, !0, !0),
524                        h = f[a],
525                        i = e.ariaFormat.to(c[a]);
526                    b.children[0].setAttribute("aria-valuemin", d.toFixed(1)), b.children[0].setAttribute("aria-valuemax", g.toFixed(1)), b.children[0].setAttribute("aria-valuenow", h.toFixed(1)), b.children[0].setAttribute("aria-valuetext", i)
527                })
528            })
529        }
530
531        function z(a, b, c) {
532            if ("range" === a || "steps" === a) return ta.xVal;
533            if ("count" === a) {
534                if (!b) throw new Error("noUiSlider (" + $ + "): 'values' required for mode 'count'.");
535                var d, e = 100 / (b - 1),
536                    f = 0;
537                for (b = [];
538                    (d = f++ * e) <= 100;) b.push(d);
539                a = "positions"
540            }
541            return "positions" === a ? b.map(function(a) {
542                return ta.fromStepping(c ? ta.getStep(a) : a)
543            }) : "values" === a ? c ? b.map(function(a) {
544                return ta.fromStepping(ta.getStep(ta.toStepping(a)))
545            }) : b : void 0
546        }
547
548        function A(a, b, c) {
549            function e(a, b) {
550                return (a + b).toFixed(7) / 1
551            }
552            var f = {},
553                g = ta.xVal[0],
554                h = ta.xVal[ta.xVal.length - 1],
555                i = !1,
556                j = !1,
557                k = 0;
558            return c = d(c.slice().sort(function(a, b) {
559                return a - b
560            })), c[0] !== g && (c.unshift(g), i = !0), c[c.length - 1] !== h && (c.push(h), j = !0), c.forEach(function(d, g) {
561                var h, l, m, n, o, p, q, r, s, t, u = d,
562                    v = c[g + 1];
563                if ("steps" === b && (h = ta.xNumSteps[g]), h || (h = v - u), u !== !1 && void 0 !== v)
564                    for (h = Math.max(h, 1e-7), l = u; v >= l; l = e(l, h)) {
565                        for (n = ta.toStepping(l), o = n - k, r = o / a, s = Math.round(r), t = o / s, m = 1; s >= m; m += 1) p = k + m * t, f[p.toFixed(5)] = ["x", 0];
566                        q = c.indexOf(l) > -1 ? 1 : "steps" === b ? 2 : 0, !g && i && (q = 0), l === v && j || (f[n.toFixed(5)] = [l, q]), k = n
567                    }
568            }), f
569        }
570
571        function B(a, b, c) {
572            function d(a, b) {
573                var c = b === e.cssClasses.value,
574                    d = c ? j : m,
575                    f = c ? h : i;
576                return b + " " + d[e.ort] + " " + f[a]
577            }
578
579            function f(a, f) {
580                f[1] = f[1] && b ? b(f[0], f[1]) : f[1];
581                var h = k(g, !1);
582                h.className = d(f[1], e.cssClasses.marker), h.style[e.style] = a + "%", f[1] && (h = k(g, !1), h.className = d(f[1], e.cssClasses.value), h.style[e.style] = a + "%", h.innerText = c.to(f[0]))
583            }
584            var g = xa.createElement("div"),
585                h = [e.cssClasses.valueNormal, e.cssClasses.valueLarge, e.cssClasses.valueSub],
586                i = [e.cssClasses.markerNormal, e.cssClasses.markerLarge, e.cssClasses.markerSub],
587                j = [e.cssClasses.valueHorizontal, e.cssClasses.valueVertical],
588                m = [e.cssClasses.markerHorizontal, e.cssClasses.markerVertical];
589            return l(g, e.cssClasses.pips), l(g, 0 === e.ort ? e.cssClasses.pipsHorizontal : e.cssClasses.pipsVertical), Object.keys(a).forEach(function(b) {
590                f(b, a[b])
591            }), g
592        }
593
594        function C() {
595            la && (b(la), la = null)
596        }
597
598        function D(a) {
599            C();
600            var b = a.mode,
601                c = a.density || 1,
602                d = a.filter || !1,
603                e = a.values || !1,
604                f = a.stepped || !1,
605                g = z(b, e, f),
606                h = A(c, b, g),
607                i = a.format || {
608                    to: Math.round
609                };
610            return la = pa.appendChild(B(h, d, i))
611        }
612
613        function E() {
614            var a = ha.getBoundingClientRect(),
615                b = "offset" + ["Width", "Height"][e.ort];
616            return 0 === e.ort ? a.width || ha[b] : a.height || ha[b]
617        }
618
619        function F(a, b, c, d) {
620            var f = function(b) {
621                    return pa.hasAttribute("disabled") ? !1 : n(pa, e.cssClasses.tap) ? !1 : (b = G(b, d.pageOffset)) ? a === ma.start && void 0 !== b.buttons && b.buttons > 1 ? !1 : d.hover && b.buttons ? !1 : (oa || b.preventDefault(), b.calcPoint = b.points[e.ort], void c(b, d)) : !1
622                },
623                g = [];
624            return a.split(" ").forEach(function(a) {
625                b.addEventListener(a, f, oa ? {
626                    passive: !0
627                } : !1), g.push([a, f])
628            }), g
629        }
630
631        function G(a, b) {
632            var c, d, e = 0 === a.type.indexOf("touch"),
633                f = 0 === a.type.indexOf("mouse"),
634                g = 0 === a.type.indexOf("pointer");
635            if (0 === a.type.indexOf("MSPointer") && (g = !0), e) {
636                if (a.touches.length > 1) return !1;
637                c = a.changedTouches[0].pageX, d = a.changedTouches[0].pageY
638            }
639            return b = b || o(xa), (f || g) && (c = a.clientX + b.x, d = a.clientY + b.y), a.pageOffset = b, a.points = [c, d], a.cursor = f || g, a
640        }
641
642        function H(a) {
643            var b = a - f(ha, e.ort),
644                c = 100 * b / E();
645            return e.dir ? 100 - c : c
646        }
647
648        function I(a) {
649            var b = 100,
650                c = !1;
651            return ia.forEach(function(d, e) {
652                if (!d.hasAttribute("disabled")) {
653                    var f = Math.abs(qa[e] - a);
654                    b > f && (c = e, b = f)
655                }
656            }), c
657        }
658
659        function J(a, b, c, d) {
660            var e = c.slice(),
661                f = [!a, a],
662                g = [a, !a];
663            d = d.slice(), a && d.reverse(), d.length > 1 ? d.forEach(function(a, c) {
664                var d = S(e, a, e[a] + b, f[c], g[c], !1);
665                d === !1 ? b = 0 : (b = d - e[a], e[a] = d)
666            }) : f = g = [!0];
667            var h = !1;
668            d.forEach(function(a, d) {
669                h = W(a, c[a] + b, f[d], g[d]) || h
670            }), h && d.forEach(function(a) {
671                K("update", a), K("slide", a)
672            })
673        }
674
675        function K(a, b, c) {
676            Object.keys(va).forEach(function(d) {
677                var f = d.split(".")[0];
678                a === f && va[d].forEach(function(a) {
679                    a.call(ka, ua.map(e.format.to), b, ua.slice(), c || !1, qa.slice())
680                })
681            })
682        }
683
684        function L(a, b) {
685            "mouseout" === a.type && "HTML" === a.target.nodeName && null === a.relatedTarget && N(a, b)
686        }
687
688        function M(a, b) {
689            if (-1 === navigator.appVersion.indexOf("MSIE 9") && 0 === a.buttons && 0 !== b.buttonsProperty) return N(a, b);
690            var c = (e.dir ? -1 : 1) * (a.calcPoint - b.startCalcPoint),
691                d = 100 * c / b.baseSize;
692            J(c > 0, d, b.locations, b.handleNumbers)
693        }
694
695        function N(a, b) {
696            sa && (m(sa, e.cssClasses.active), sa = !1), a.cursor && (za.style.cursor = "", za.removeEventListener("selectstart", c)), wa.forEach(function(a) {
697                ya.removeEventListener(a[0], a[1])
698            }), m(pa, e.cssClasses.drag), V(), b.handleNumbers.forEach(function(a) {
699                K("change", a), K("set", a), K("end", a)
700            })
701        }
702
703        function O(a, b) {
704            if (1 === b.handleNumbers.length) {
705                var d = ia[b.handleNumbers[0]];
706                if (d.hasAttribute("disabled")) return !1;
707                sa = d.children[0], l(sa, e.cssClasses.active)
708            }
709            a.stopPropagation();
710            var f = F(ma.move, ya, M, {
711                    startCalcPoint: a.calcPoint,
712                    baseSize: E(),
713                    pageOffset: a.pageOffset,
714                    handleNumbers: b.handleNumbers,
715                    buttonsProperty: a.buttons,
716                    locations: qa.slice()
717                }),
718                g = F(ma.end, ya, N, {
719                    handleNumbers: b.handleNumbers
720                }),
721                h = F("mouseout", ya, L, {
722                    handleNumbers: b.handleNumbers
723                });
724            wa = f.concat(g, h), a.cursor && (za.style.cursor = getComputedStyle(a.target).cursor, ia.length > 1 && l(pa, e.cssClasses.drag), za.addEventListener("selectstart", c, !1)), b.handleNumbers.forEach(function(a) {
725                K("start", a)
726            })
727        }
728
729        function P(a) {
730            a.stopPropagation();
731            var b = H(a.calcPoint),
732                c = I(b);
733            return c === !1 ? !1 : (e.events.snap || h(pa, e.cssClasses.tap, e.animationDuration), W(c, b, !0, !0), V(), K("slide", c, !0), K("update", c, !0), K("change", c, !0), K("set", c, !0), void(e.events.snap && O(a, {
734                handleNumbers: [c]
735            })))
736        }
737
738        function Q(a) {
739            var b = H(a.calcPoint),
740                c = ta.getStep(b),
741                d = ta.fromStepping(c);
742            Object.keys(va).forEach(function(a) {
743                "hover" === a.split(".")[0] && va[a].forEach(function(a) {
744                    a.call(ka, d)
745                })
746            })
747        }
748
749        function R(a) {
750            a.fixed || ia.forEach(function(a, b) {
751                F(ma.start, a.children[0], O, {
752                    handleNumbers: [b]
753                })
754            }), a.tap && F(ma.start, ha, P, {}), a.hover && F(ma.move, ha, Q, {
755                hover: !0
756            }), a.drag && ja.forEach(function(b, c) {
757                if (b !== !1 && 0 !== c && c !== ja.length - 1) {
758                    var d = ia[c - 1],
759                        f = ia[c],
760                        g = [b];
761                    l(b, e.cssClasses.draggable), a.fixed && (g.push(d.children[0]), g.push(f.children[0])), g.forEach(function(a) {
762                        F(ma.start, a, O, {
763                            handles: [d, f],
764                            handleNumbers: [c - 1, c]
765                        })
766                    })
767                }
768            })
769        }
770
771        function S(a, b, c, d, f, g) {
772            return ia.length > 1 && (d && b > 0 && (c = Math.max(c, a[b - 1] + e.margin)), f && b < ia.length - 1 && (c = Math.min(c, a[b + 1] - e.margin))), ia.length > 1 && e.limit && (d && b > 0 && (c = Math.min(c, a[b - 1] + e.limit)), f && b < ia.length - 1 && (c = Math.max(c, a[b + 1] - e.limit))), e.padding && (0 === b && (c = Math.max(c, e.padding)), b === ia.length - 1 && (c = Math.min(c, 100 - e.padding))), c = ta.getStep(c), c = i(c), c !== a[b] || g ? c : !1
773        }
774
775        function T(a) {
776            return a + "%"
777        }
778
779        function U(a, b) {
780            qa[a] = b, ua[a] = ta.fromStepping(b);
781            var c = function() {
782                ia[a].style[e.style] = T(b), Y(a), Y(a + 1)
783            };
784            window.requestAnimationFrame && e.useRequestAnimationFrame ? window.requestAnimationFrame(c) : c()
785        }
786
787        function V() {
788            ra.forEach(function(a) {
789                var b = qa[a] > 50 ? -1 : 1,
790                    c = 3 + (ia.length + b * a);
791                ia[a].childNodes[0].style.zIndex = c
792            })
793        }
794
795        function W(a, b, c, d) {
796            return b = S(qa, a, b, c, d, !1), b === !1 ? !1 : (U(a, b), !0)
797        }
798
799        function Y(a) {
800            if (ja[a]) {
801                var b = 0,
802                    c = 100;
803                0 !== a && (b = qa[a - 1]), a !== ja.length - 1 && (c = qa[a]), ja[a].style[e.style] = T(b), ja[a].style[e.styleOposite] = T(100 - c)
804            }
805        }
806
807        function Z(a, b) {
808            null !== a && a !== !1 && ("number" == typeof a && (a = String(a)), a = e.format.from(a), a === !1 || isNaN(a) || W(b, ta.toStepping(a), !1, !1))
809        }
810
811        function _(a, b) {
812            var c = j(a),
813                d = void 0 === qa[0];
814            b = void 0 === b ? !0 : !!b, c.forEach(Z), e.animate && !d && h(pa, e.cssClasses.tap, e.animationDuration), ra.forEach(function(a) {
815                W(a, qa[a], !0, !1)
816            }), V(), ra.forEach(function(a) {
817                K("update", a), null !== c[a] && b && K("set", a)
818            })
819        }
820
821        function aa(a) {
822            _(e.start, a)
823        }
824
825        function ba() {
826            var a = ua.map(e.format.to);
827            return 1 === a.length ? a[0] : a
828        }
829
830        function ca() {
831            for (var a in e.cssClasses) e.cssClasses.hasOwnProperty(a) && m(pa, e.cssClasses[a]);
832            for (; pa.firstChild;) pa.removeChild(pa.firstChild);
833            delete pa.noUiSlider
834        }
835
836        function da() {
837            return qa.map(function(a, b) {
838                var c = ta.getNearbySteps(a),
839                    d = ua[b],
840                    e = c.thisStep.step,
841                    f = null;
842                e !== !1 && d + e > c.stepAfter.startValue && (e = c.stepAfter.startValue - d), f = d > c.thisStep.startValue ? c.thisStep.step : c.stepBefore.step === !1 ? !1 : d - c.stepBefore.highestStep, 100 === a ? e = null : 0 === a && (f = null);
843                var g = ta.countStepDecimals();
844                return null !== e && e !== !1 && (e = Number(e.toFixed(g))), null !== f && f !== !1 && (f = Number(f.toFixed(g))), [f, e]
845            })
846        }
847
848        function ea(a, b) {
849            va[a] = va[a] || [], va[a].push(b), "update" === a.split(".")[0] && ia.forEach(function(a, b) {
850                K("update", b)
851            })
852        }
853
854        function fa(a) {
855            var b = a && a.split(".")[0],
856                c = b && a.substring(b.length);
857            Object.keys(va).forEach(function(a) {
858                var d = a.split(".")[0],
859                    e = a.substring(d.length);
860                b && b !== d || c && c !== e || delete va[a]
861            })
862        }
863
864        function ga(a, b) {
865            var c = ba(),
866                d = ["margin", "limit", "padding", "range", "animate", "snap", "step", "format"];
867            d.forEach(function(b) {
868                void 0 !== a[b] && (g[b] = a[b])
869            });
870            var f = X(g);
871            d.forEach(function(b) {
872                void 0 !== a[b] && (e[b] = f[b])
873            }), ta = f.spectrum, e.margin = f.margin, e.limit = f.limit, e.padding = f.padding, e.pips && D(e.pips), qa = [], _(a.start || c, b)
874        }
875        var ha, ia, ja, ka, la, ma = p(),
876            na = r(),
877            oa = na && q(),
878            pa = a,
879            qa = [],
880            ra = [],
881            sa = !1,
882            ta = e.spectrum,
883            ua = [],
884            va = {},
885            wa = null,
886            xa = a.ownerDocument,
887            ya = xa.documentElement,
888            za = xa.body;
889        if (pa.noUiSlider) throw new Error("noUiSlider (" + $ + "): Slider was already initialized.");
890        return v(pa), u(e.connect, ha), ka = {
891            destroy: ca,
892            steps: da,
893            on: ea,
894            off: fa,
895            get: ba,
896            set: _,
897            reset: aa,
898            __moveHandles: function(a, b, c) {
899                J(a, b, qa, c)
900            },
901            options: g,
902            updateOptions: ga,
903            target: pa,
904            removePips: C,
905            pips: D
906        }, R(e.events), _(e.start), e.pips && D(e.pips), e.tooltips && x(), y(), ka
907    }
908
909    function Z(a, b) {
910        if (!a || !a.nodeName) throw new Error("noUiSlider (" + $ + "): create requires a single element, got: " + a);
911        var c = X(b, a),
912            d = Y(a, c, b);
913        return a.noUiSlider = d, d
914    }
915    var $ = "10.0.0";
916    C.prototype.getMargin = function(a) {
917        var b = this.xNumSteps[0];
918        if (b && a / b % 1 !== 0) throw new Error("noUiSlider (" + $ + "): 'limit', 'margin' and 'padding' must be divisible by step.");
919        return 2 === this.xPct.length ? t(this.xVal, a) : !1
920    }, C.prototype.toStepping = function(a) {
921        return a = x(this.xVal, this.xPct, a)
922    }, C.prototype.fromStepping = function(a) {
923        return y(this.xVal, this.xPct, a)
924    }, C.prototype.getStep = function(a) {
925        return a = z(this.xPct, this.xSteps, this.snap, a)
926    }, C.prototype.getNearbySteps = function(a) {
927        var b = w(a, this.xPct);
928        return {
929            stepBefore: {
930                startValue: this.xVal[b - 2],
931                step: this.xNumSteps[b - 2],
932                highestStep: this.xHighestCompleteStep[b - 2]
933            },
934            thisStep: {
935                startValue: this.xVal[b - 1],
936                step: this.xNumSteps[b - 1],
937                highestStep: this.xHighestCompleteStep[b - 1]
938            },
939            stepAfter: {
940                startValue: this.xVal[b - 0],
941                step: this.xNumSteps[b - 0],
942                highestStep: this.xHighestCompleteStep[b - 0]
943            }
944        }
945    }, C.prototype.countStepDecimals = function() {
946        var a = this.xNumSteps.map(k);
947        return Math.max.apply(null, a)
948    }, C.prototype.convert = function(a) {
949        return this.getStep(this.toStepping(a))
950    };
951    var _ = {
952        to: function(a) {
953            return void 0 !== a && a.toFixed(2)
954        },
955        from: Number
956    };
957    return {
958        version: $,
959        create: Z
960    }
961});

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.