You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1337 lines
38 KiB
1337 lines
38 KiB
/*! nouislider - 13.1.4 - 3/20/2019 */ |
|
!(function (t) { |
|
"function" == typeof define && define.amd |
|
? define([], t) |
|
: "object" == typeof exports |
|
? (module.exports = t()) |
|
: (window.noUiSlider = t()); |
|
})(function () { |
|
"use strict"; |
|
var ut = "13.1.4"; |
|
function ct(t) { |
|
t.parentElement.removeChild(t); |
|
} |
|
function s(t) { |
|
return null != t; |
|
} |
|
function pt(t) { |
|
t.preventDefault(); |
|
} |
|
function i(t) { |
|
return "number" == typeof t && !isNaN(t) && isFinite(t); |
|
} |
|
function ft(t, e, r) { |
|
0 < r && |
|
(mt(t, e), |
|
setTimeout(function () { |
|
gt(t, e); |
|
}, r)); |
|
} |
|
function dt(t) { |
|
return Math.max(Math.min(t, 100), 0); |
|
} |
|
function ht(t) { |
|
return Array.isArray(t) ? t : [t]; |
|
} |
|
function e(t) { |
|
var e = (t = String(t)).split("."); |
|
return 1 < e.length ? e[1].length : 0; |
|
} |
|
function mt(t, e) { |
|
t.classList ? t.classList.add(e) : (t.className += " " + e); |
|
} |
|
function gt(t, e) { |
|
t.classList |
|
? t.classList.remove(e) |
|
: (t.className = t.className.replace( |
|
new RegExp("(^|\\b)" + e.split(" ").join("|") + "(\\b|$)", "gi"), |
|
" " |
|
)); |
|
} |
|
function vt(t) { |
|
var e = void 0 !== window.pageXOffset, |
|
r = "CSS1Compat" === (t.compatMode || ""); |
|
return { |
|
x: e |
|
? window.pageXOffset |
|
: r |
|
? t.documentElement.scrollLeft |
|
: t.body.scrollLeft, |
|
y: e |
|
? window.pageYOffset |
|
: r |
|
? t.documentElement.scrollTop |
|
: t.body.scrollTop, |
|
}; |
|
} |
|
function c(t, e) { |
|
return 100 / (e - t); |
|
} |
|
function p(t, e) { |
|
return (100 * e) / (t[1] - t[0]); |
|
} |
|
function f(t, e) { |
|
for (var r = 1; t >= e[r]; ) r += 1; |
|
return r; |
|
} |
|
function r(t, e, r) { |
|
if (r >= t.slice(-1)[0]) return 100; |
|
var n, |
|
i, |
|
o = f(r, t), |
|
a = t[o - 1], |
|
s = t[o], |
|
l = e[o - 1], |
|
u = e[o]; |
|
return ( |
|
l + |
|
((i = r), |
|
p((n = [a, s]), n[0] < 0 ? i + Math.abs(n[0]) : i - n[0]) / c(l, u)) |
|
); |
|
} |
|
function n(t, e, r, n) { |
|
if (100 === n) return n; |
|
var i, |
|
o, |
|
a = f(n, t), |
|
s = t[a - 1], |
|
l = t[a]; |
|
return r |
|
? (l - s) / 2 < n - s |
|
? l |
|
: s |
|
: e[a - 1] |
|
? t[a - 1] + ((i = n - t[a - 1]), (o = e[a - 1]), Math.round(i / o) * o) |
|
: n; |
|
} |
|
function o(t, e, r) { |
|
var n; |
|
if (("number" == typeof e && (e = [e]), !Array.isArray(e))) |
|
throw new Error( |
|
"noUiSlider (" + ut + "): 'range' contains invalid value." |
|
); |
|
if ( |
|
!i((n = "min" === t ? 0 : "max" === t ? 100 : parseFloat(t))) || |
|
!i(e[0]) |
|
) |
|
throw new Error("noUiSlider (" + ut + "): 'range' value isn't numeric."); |
|
r.xPct.push(n), |
|
r.xVal.push(e[0]), |
|
n |
|
? r.xSteps.push(!isNaN(e[1]) && e[1]) |
|
: isNaN(e[1]) || (r.xSteps[0] = e[1]), |
|
r.xHighestCompleteStep.push(0); |
|
} |
|
function a(t, e, r) { |
|
if (e) |
|
if (r.xVal[t] !== r.xVal[t + 1]) { |
|
r.xSteps[t] = |
|
p([r.xVal[t], r.xVal[t + 1]], e) / c(r.xPct[t], r.xPct[t + 1]); |
|
var n = (r.xVal[t + 1] - r.xVal[t]) / r.xNumSteps[t], |
|
i = Math.ceil(Number(n.toFixed(3)) - 1), |
|
o = r.xVal[t] + r.xNumSteps[t] * i; |
|
r.xHighestCompleteStep[t] = o; |
|
} else r.xSteps[t] = r.xHighestCompleteStep[t] = r.xVal[t]; |
|
} |
|
function l(t, e, r) { |
|
var n; |
|
(this.xPct = []), |
|
(this.xVal = []), |
|
(this.xSteps = [r || !1]), |
|
(this.xNumSteps = [!1]), |
|
(this.xHighestCompleteStep = []), |
|
(this.snap = e); |
|
var i = []; |
|
for (n in t) t.hasOwnProperty(n) && i.push([t[n], n]); |
|
for ( |
|
i.length && "object" == typeof i[0][0] |
|
? i.sort(function (t, e) { |
|
return t[0][0] - e[0][0]; |
|
}) |
|
: i.sort(function (t, e) { |
|
return t[0] - e[0]; |
|
}), |
|
n = 0; |
|
n < i.length; |
|
n++ |
|
) |
|
o(i[n][1], i[n][0], this); |
|
for ( |
|
this.xNumSteps = this.xSteps.slice(0), n = 0; |
|
n < this.xNumSteps.length; |
|
n++ |
|
) |
|
a(n, this.xNumSteps[n], this); |
|
} |
|
(l.prototype.getMargin = function (t) { |
|
var e = this.xNumSteps[0]; |
|
if (e && (t / e) % 1 != 0) |
|
throw new Error( |
|
"noUiSlider (" + |
|
ut + |
|
"): 'limit', 'margin' and 'padding' must be divisible by step." |
|
); |
|
return 2 === this.xPct.length && p(this.xVal, t); |
|
}), |
|
(l.prototype.toStepping = function (t) { |
|
return (t = r(this.xVal, this.xPct, t)); |
|
}), |
|
(l.prototype.fromStepping = function (t) { |
|
return (function (t, e, r) { |
|
if (100 <= r) return t.slice(-1)[0]; |
|
var n, |
|
i = f(r, e), |
|
o = t[i - 1], |
|
a = t[i], |
|
s = e[i - 1], |
|
l = e[i]; |
|
return (n = [o, a]), ((r - s) * c(s, l) * (n[1] - n[0])) / 100 + n[0]; |
|
})(this.xVal, this.xPct, t); |
|
}), |
|
(l.prototype.getStep = function (t) { |
|
return (t = n(this.xPct, this.xSteps, this.snap, t)); |
|
}), |
|
(l.prototype.getDefaultStep = function (t, e, r) { |
|
var n = f(t, this.xPct); |
|
return ( |
|
(100 === t || (e && t === this.xPct[n - 1])) && |
|
(n = Math.max(n - 1, 1)), |
|
(this.xVal[n] - this.xVal[n - 1]) / r |
|
); |
|
}), |
|
(l.prototype.getNearbySteps = function (t) { |
|
var e = f(t, this.xPct); |
|
return { |
|
stepBefore: { |
|
startValue: this.xVal[e - 2], |
|
step: this.xNumSteps[e - 2], |
|
highestStep: this.xHighestCompleteStep[e - 2], |
|
}, |
|
thisStep: { |
|
startValue: this.xVal[e - 1], |
|
step: this.xNumSteps[e - 1], |
|
highestStep: this.xHighestCompleteStep[e - 1], |
|
}, |
|
stepAfter: { |
|
startValue: this.xVal[e], |
|
step: this.xNumSteps[e], |
|
highestStep: this.xHighestCompleteStep[e], |
|
}, |
|
}; |
|
}), |
|
(l.prototype.countStepDecimals = function () { |
|
var t = this.xNumSteps.map(e); |
|
return Math.max.apply(null, t); |
|
}), |
|
(l.prototype.convert = function (t) { |
|
return this.getStep(this.toStepping(t)); |
|
}); |
|
var u = { |
|
to: function (t) { |
|
return void 0 !== t && t.toFixed(2); |
|
}, |
|
from: Number, |
|
}; |
|
function d(t) { |
|
if ( |
|
"object" == typeof (e = t) && |
|
"function" == typeof e.to && |
|
"function" == typeof e.from |
|
) |
|
return !0; |
|
var e; |
|
throw new Error( |
|
"noUiSlider (" + ut + "): 'format' requires 'to' and 'from' methods." |
|
); |
|
} |
|
function h(t, e) { |
|
if (!i(e)) |
|
throw new Error("noUiSlider (" + ut + "): 'step' is not numeric."); |
|
t.singleStep = e; |
|
} |
|
function m(t, e) { |
|
if ("object" != typeof e || Array.isArray(e)) |
|
throw new Error("noUiSlider (" + ut + "): 'range' is not an object."); |
|
if (void 0 === e.min || void 0 === e.max) |
|
throw new Error( |
|
"noUiSlider (" + ut + "): Missing 'min' or 'max' in 'range'." |
|
); |
|
if (e.min === e.max) |
|
throw new Error( |
|
"noUiSlider (" + ut + "): 'range' 'min' and 'max' cannot be equal." |
|
); |
|
t.spectrum = new l(e, t.snap, t.singleStep); |
|
} |
|
function g(t, e) { |
|
if (((e = ht(e)), !Array.isArray(e) || !e.length)) |
|
throw new Error("noUiSlider (" + ut + "): 'start' option is incorrect."); |
|
(t.handles = e.length), (t.start = e); |
|
} |
|
function v(t, e) { |
|
if ("boolean" != typeof (t.snap = e)) |
|
throw new Error( |
|
"noUiSlider (" + ut + "): 'snap' option must be a boolean." |
|
); |
|
} |
|
function b(t, e) { |
|
if ("boolean" != typeof (t.animate = e)) |
|
throw new Error( |
|
"noUiSlider (" + ut + "): 'animate' option must be a boolean." |
|
); |
|
} |
|
function S(t, e) { |
|
if ("number" != typeof (t.animationDuration = e)) |
|
throw new Error( |
|
"noUiSlider (" + ut + "): 'animationDuration' option must be a number." |
|
); |
|
} |
|
function x(t, e) { |
|
var r, |
|
n = [!1]; |
|
if ( |
|
("lower" === e ? (e = [!0, !1]) : "upper" === e && (e = [!1, !0]), |
|
!0 === e || !1 === e) |
|
) { |
|
for (r = 1; r < t.handles; r++) n.push(e); |
|
n.push(!1); |
|
} else { |
|
if (!Array.isArray(e) || !e.length || e.length !== t.handles + 1) |
|
throw new Error( |
|
"noUiSlider (" + |
|
ut + |
|
"): 'connect' option doesn't match handle count." |
|
); |
|
n = e; |
|
} |
|
t.connect = n; |
|
} |
|
function w(t, e) { |
|
switch (e) { |
|
case "horizontal": |
|
t.ort = 0; |
|
break; |
|
case "vertical": |
|
t.ort = 1; |
|
break; |
|
default: |
|
throw new Error( |
|
"noUiSlider (" + ut + "): 'orientation' option is invalid." |
|
); |
|
} |
|
} |
|
function y(t, e) { |
|
if (!i(e)) |
|
throw new Error( |
|
"noUiSlider (" + ut + "): 'margin' option must be numeric." |
|
); |
|
if (0 !== e && ((t.margin = t.spectrum.getMargin(e)), !t.margin)) |
|
throw new Error( |
|
"noUiSlider (" + |
|
ut + |
|
"): 'margin' option is only supported on linear sliders." |
|
); |
|
} |
|
function E(t, e) { |
|
if (!i(e)) |
|
throw new Error( |
|
"noUiSlider (" + ut + "): 'limit' option must be numeric." |
|
); |
|
if (((t.limit = t.spectrum.getMargin(e)), !t.limit || t.handles < 2)) |
|
throw new Error( |
|
"noUiSlider (" + |
|
ut + |
|
"): 'limit' option is only supported on linear sliders with 2 or more handles." |
|
); |
|
} |
|
function C(t, e) { |
|
if (!i(e) && !Array.isArray(e)) |
|
throw new Error( |
|
"noUiSlider (" + |
|
ut + |
|
"): 'padding' option must be numeric or array of exactly 2 numbers." |
|
); |
|
if (Array.isArray(e) && 2 !== e.length && !i(e[0]) && !i(e[1])) |
|
throw new Error( |
|
"noUiSlider (" + |
|
ut + |
|
"): 'padding' option must be numeric or array of exactly 2 numbers." |
|
); |
|
if (0 !== e) { |
|
if ( |
|
(Array.isArray(e) || (e = [e, e]), |
|
!(t.padding = [ |
|
t.spectrum.getMargin(e[0]), |
|
t.spectrum.getMargin(e[1]), |
|
]) === t.padding[0] || !1 === t.padding[1]) |
|
) |
|
throw new Error( |
|
"noUiSlider (" + |
|
ut + |
|
"): 'padding' option is only supported on linear sliders." |
|
); |
|
if (t.padding[0] < 0 || t.padding[1] < 0) |
|
throw new Error( |
|
"noUiSlider (" + |
|
ut + |
|
"): 'padding' option must be a positive number(s)." |
|
); |
|
if (100 <= t.padding[0] + t.padding[1]) |
|
throw new Error( |
|
"noUiSlider (" + |
|
ut + |
|
"): 'padding' option must not exceed 100% of the range." |
|
); |
|
} |
|
} |
|
function N(t, e) { |
|
switch (e) { |
|
case "ltr": |
|
t.dir = 0; |
|
break; |
|
case "rtl": |
|
t.dir = 1; |
|
break; |
|
default: |
|
throw new Error( |
|
"noUiSlider (" + ut + "): 'direction' option was not recognized." |
|
); |
|
} |
|
} |
|
function U(t, e) { |
|
if ("string" != typeof e) |
|
throw new Error( |
|
"noUiSlider (" + |
|
ut + |
|
"): 'behaviour' must be a string containing options." |
|
); |
|
var r = 0 <= e.indexOf("tap"), |
|
n = 0 <= e.indexOf("drag"), |
|
i = 0 <= e.indexOf("fixed"), |
|
o = 0 <= e.indexOf("snap"), |
|
a = 0 <= e.indexOf("hover"), |
|
s = 0 <= e.indexOf("unconstrained"); |
|
if (i) { |
|
if (2 !== t.handles) |
|
throw new Error( |
|
"noUiSlider (" + |
|
ut + |
|
"): 'fixed' behaviour must be used with 2 handles" |
|
); |
|
y(t, t.start[1] - t.start[0]); |
|
} |
|
if (s && (t.margin || t.limit)) |
|
throw new Error( |
|
"noUiSlider (" + |
|
ut + |
|
"): 'unconstrained' behaviour cannot be used with margin or limit" |
|
); |
|
t.events = { |
|
tap: r || o, |
|
drag: n, |
|
fixed: i, |
|
snap: o, |
|
hover: a, |
|
unconstrained: s, |
|
}; |
|
} |
|
function k(t, e) { |
|
if (!1 !== e) |
|
if (!0 === e) { |
|
t.tooltips = []; |
|
for (var r = 0; r < t.handles; r++) t.tooltips.push(!0); |
|
} else { |
|
if (((t.tooltips = ht(e)), t.tooltips.length !== t.handles)) |
|
throw new Error( |
|
"noUiSlider (" + ut + "): must pass a formatter for all handles." |
|
); |
|
t.tooltips.forEach(function (t) { |
|
if ( |
|
"boolean" != typeof t && |
|
("object" != typeof t || "function" != typeof t.to) |
|
) |
|
throw new Error( |
|
"noUiSlider (" + |
|
ut + |
|
"): 'tooltips' must be passed a formatter or 'false'." |
|
); |
|
}); |
|
} |
|
} |
|
function P(t, e) { |
|
d((t.ariaFormat = e)); |
|
} |
|
function A(t, e) { |
|
d((t.format = e)); |
|
} |
|
function V(t, e) { |
|
if ("boolean" != typeof (t.keyboardSupport = e)) |
|
throw new Error( |
|
"noUiSlider (" + ut + "): 'keyboardSupport' option must be a boolean." |
|
); |
|
} |
|
function M(t, e) { |
|
t.documentElement = e; |
|
} |
|
function O(t, e) { |
|
if ("string" != typeof e && !1 !== e) |
|
throw new Error( |
|
"noUiSlider (" + ut + "): 'cssPrefix' must be a string or `false`." |
|
); |
|
t.cssPrefix = e; |
|
} |
|
function L(t, e) { |
|
if ("object" != typeof e) |
|
throw new Error( |
|
"noUiSlider (" + ut + "): 'cssClasses' must be an object." |
|
); |
|
if ("string" == typeof t.cssPrefix) |
|
for (var r in ((t.cssClasses = {}), e)) |
|
e.hasOwnProperty(r) && (t.cssClasses[r] = t.cssPrefix + e[r]); |
|
else t.cssClasses = e; |
|
} |
|
function bt(e) { |
|
var r = { |
|
margin: 0, |
|
limit: 0, |
|
padding: 0, |
|
animate: !0, |
|
animationDuration: 300, |
|
ariaFormat: u, |
|
format: u, |
|
}, |
|
n = { |
|
step: { r: !1, t: h }, |
|
start: { r: !0, t: g }, |
|
connect: { r: !0, t: x }, |
|
direction: { r: !0, t: N }, |
|
snap: { r: !1, t: v }, |
|
animate: { r: !1, t: b }, |
|
animationDuration: { r: !1, t: S }, |
|
range: { r: !0, t: m }, |
|
orientation: { r: !1, t: w }, |
|
margin: { r: !1, t: y }, |
|
limit: { r: !1, t: E }, |
|
padding: { r: !1, t: C }, |
|
behaviour: { r: !0, t: U }, |
|
ariaFormat: { r: !1, t: P }, |
|
format: { r: !1, t: A }, |
|
tooltips: { r: !1, t: k }, |
|
keyboardSupport: { r: !0, t: V }, |
|
documentElement: { r: !1, t: M }, |
|
cssPrefix: { r: !0, t: O }, |
|
cssClasses: { r: !0, t: L }, |
|
}, |
|
i = { |
|
connect: !1, |
|
direction: "ltr", |
|
behaviour: "tap", |
|
orientation: "horizontal", |
|
keyboardSupport: !0, |
|
cssPrefix: "noUi-", |
|
cssClasses: { |
|
target: "target", |
|
base: "base", |
|
origin: "origin", |
|
handle: "handle", |
|
handleLower: "handle-lower", |
|
handleUpper: "handle-upper", |
|
touchArea: "touch-area", |
|
horizontal: "horizontal", |
|
vertical: "vertical", |
|
background: "background", |
|
connect: "connect", |
|
connects: "connects", |
|
ltr: "ltr", |
|
rtl: "rtl", |
|
draggable: "draggable", |
|
drag: "state-drag", |
|
tap: "state-tap", |
|
active: "active", |
|
tooltip: "tooltip", |
|
pips: "pips", |
|
pipsHorizontal: "pips-horizontal", |
|
pipsVertical: "pips-vertical", |
|
marker: "marker", |
|
markerHorizontal: "marker-horizontal", |
|
markerVertical: "marker-vertical", |
|
markerNormal: "marker-normal", |
|
markerLarge: "marker-large", |
|
markerSub: "marker-sub", |
|
value: "value", |
|
valueHorizontal: "value-horizontal", |
|
valueVertical: "value-vertical", |
|
valueNormal: "value-normal", |
|
valueLarge: "value-large", |
|
valueSub: "value-sub", |
|
}, |
|
}; |
|
e.format && !e.ariaFormat && (e.ariaFormat = e.format), |
|
Object.keys(n).forEach(function (t) { |
|
if (!s(e[t]) && void 0 === i[t]) { |
|
if (n[t].r) |
|
throw new Error( |
|
"noUiSlider (" + ut + "): '" + t + "' is required." |
|
); |
|
return !0; |
|
} |
|
n[t].t(r, s(e[t]) ? e[t] : i[t]); |
|
}), |
|
(r.pips = e.pips); |
|
var t = document.createElement("div"), |
|
o = void 0 !== t.style.msTransform, |
|
a = void 0 !== t.style.transform; |
|
r.transformRule = a ? "transform" : o ? "msTransform" : "webkitTransform"; |
|
return ( |
|
(r.style = [ |
|
["left", "top"], |
|
["right", "bottom"], |
|
][r.dir][r.ort]), |
|
r |
|
); |
|
} |
|
function z(t, f, o) { |
|
var l, |
|
u, |
|
a, |
|
c, |
|
i, |
|
s, |
|
e, |
|
p, |
|
d = window.navigator.pointerEnabled |
|
? { start: "pointerdown", move: "pointermove", end: "pointerup" } |
|
: window.navigator.msPointerEnabled |
|
? { start: "MSPointerDown", move: "MSPointerMove", end: "MSPointerUp" } |
|
: { |
|
start: "mousedown touchstart", |
|
move: "mousemove touchmove", |
|
end: "mouseup touchend", |
|
}, |
|
h = |
|
window.CSS && |
|
CSS.supports && |
|
CSS.supports("touch-action", "none") && |
|
(function () { |
|
var t = !1; |
|
try { |
|
var e = Object.defineProperty({}, "passive", { |
|
get: function () { |
|
t = !0; |
|
}, |
|
}); |
|
window.addEventListener("test", null, e); |
|
} catch (t) {} |
|
return t; |
|
})(), |
|
y = t, |
|
E = f.spectrum, |
|
m = [], |
|
g = [], |
|
v = [], |
|
b = 0, |
|
S = {}, |
|
x = t.ownerDocument, |
|
w = f.documentElement || x.documentElement, |
|
C = x.body, |
|
N = -1, |
|
U = 0, |
|
k = 1, |
|
P = 2, |
|
A = "rtl" === x.dir || 1 === f.ort ? 0 : 100; |
|
function V(t, e) { |
|
var r = x.createElement("div"); |
|
return e && mt(r, e), t.appendChild(r), r; |
|
} |
|
function M(t, e) { |
|
var r = V(t, f.cssClasses.origin), |
|
n = V(r, f.cssClasses.handle); |
|
return ( |
|
V(n, f.cssClasses.touchArea), |
|
n.setAttribute("data-handle", e), |
|
f.keyboardSupport && |
|
(n.setAttribute("tabindex", "0"), |
|
n.addEventListener("keydown", function (t) { |
|
return (function (t, e) { |
|
if (L() || z(e)) return !1; |
|
var r = ["Left", "Right"], |
|
n = ["Down", "Up"]; |
|
f.dir && !f.ort ? r.reverse() : f.ort && !f.dir && n.reverse(); |
|
var i = t.key.replace("Arrow", ""), |
|
o = i === n[0] || i === r[0], |
|
a = i === n[1] || i === r[1]; |
|
if (!o && !a) return !0; |
|
t.preventDefault(); |
|
var s = o ? 0 : 1, |
|
l = lt(e)[s]; |
|
if (null === l) return !1; |
|
!1 === l && (l = E.getDefaultStep(g[e], o, 10)); |
|
return ( |
|
(l = Math.max(l, 1e-7)), |
|
(l *= o ? -1 : 1), |
|
at(e, m[e] + l, !0), |
|
!1 |
|
); |
|
})(t, e); |
|
})), |
|
n.setAttribute("role", "slider"), |
|
n.setAttribute("aria-orientation", f.ort ? "vertical" : "horizontal"), |
|
0 === e |
|
? mt(n, f.cssClasses.handleLower) |
|
: e === f.handles - 1 && mt(n, f.cssClasses.handleUpper), |
|
r |
|
); |
|
} |
|
function O(t, e) { |
|
return !!e && V(t, f.cssClasses.connect); |
|
} |
|
function r(t, e) { |
|
return !!f.tooltips[e] && V(t.firstChild, f.cssClasses.tooltip); |
|
} |
|
function L() { |
|
return y.hasAttribute("disabled"); |
|
} |
|
function z(t) { |
|
return u[t].hasAttribute("disabled"); |
|
} |
|
function j() { |
|
i && |
|
(G("update.tooltips"), |
|
i.forEach(function (t) { |
|
t && ct(t); |
|
}), |
|
(i = null)); |
|
} |
|
function H() { |
|
j(), |
|
(i = u.map(r)), |
|
$("update.tooltips", function (t, e, r) { |
|
if (i[e]) { |
|
var n = t[e]; |
|
!0 !== f.tooltips[e] && (n = f.tooltips[e].to(r[e])), |
|
(i[e].innerHTML = n); |
|
} |
|
}); |
|
} |
|
function F(e, i, o) { |
|
var a = x.createElement("div"), |
|
s = []; |
|
(s[U] = f.cssClasses.valueNormal), |
|
(s[k] = f.cssClasses.valueLarge), |
|
(s[P] = f.cssClasses.valueSub); |
|
var l = []; |
|
(l[U] = f.cssClasses.markerNormal), |
|
(l[k] = f.cssClasses.markerLarge), |
|
(l[P] = f.cssClasses.markerSub); |
|
var u = [f.cssClasses.valueHorizontal, f.cssClasses.valueVertical], |
|
c = [f.cssClasses.markerHorizontal, f.cssClasses.markerVertical]; |
|
function p(t, e) { |
|
var r = e === f.cssClasses.value, |
|
n = r ? s : l; |
|
return e + " " + (r ? u : c)[f.ort] + " " + n[t]; |
|
} |
|
return ( |
|
mt(a, f.cssClasses.pips), |
|
mt( |
|
a, |
|
0 === f.ort ? f.cssClasses.pipsHorizontal : f.cssClasses.pipsVertical |
|
), |
|
Object.keys(e).forEach(function (t) { |
|
!(function (t, e, r) { |
|
if ((r = i ? i(e, r) : r) !== N) { |
|
var n = V(a, !1); |
|
(n.className = p(r, f.cssClasses.marker)), |
|
(n.style[f.style] = t + "%"), |
|
U < r && |
|
(((n = V(a, !1)).className = p(r, f.cssClasses.value)), |
|
n.setAttribute("data-value", e), |
|
(n.style[f.style] = t + "%"), |
|
(n.innerHTML = o.to(e))); |
|
} |
|
})(t, e[t][0], e[t][1]); |
|
}), |
|
a |
|
); |
|
} |
|
function D() { |
|
c && (ct(c), (c = null)); |
|
} |
|
function T(t) { |
|
D(); |
|
var m, |
|
g, |
|
v, |
|
b, |
|
e, |
|
r, |
|
S, |
|
x, |
|
w, |
|
n = t.mode, |
|
i = t.density || 1, |
|
o = t.filter || !1, |
|
a = (function (t, e, r) { |
|
if ("range" === t || "steps" === t) return E.xVal; |
|
if ("count" === t) { |
|
if (e < 2) |
|
throw new Error( |
|
"noUiSlider (" + |
|
ut + |
|
"): 'values' (>= 2) required for mode 'count'." |
|
); |
|
var n = e - 1, |
|
i = 100 / n; |
|
for (e = []; n--; ) e[n] = n * i; |
|
e.push(100), (t = "positions"); |
|
} |
|
return "positions" === t |
|
? e.map(function (t) { |
|
return E.fromStepping(r ? E.getStep(t) : t); |
|
}) |
|
: "values" === t |
|
? r |
|
? e.map(function (t) { |
|
return E.fromStepping(E.getStep(E.toStepping(t))); |
|
}) |
|
: e |
|
: void 0; |
|
})(n, t.values || !1, t.stepped || !1), |
|
s = |
|
((m = i), |
|
(g = n), |
|
(v = a), |
|
(b = {}), |
|
(e = E.xVal[0]), |
|
(r = E.xVal[E.xVal.length - 1]), |
|
(x = S = !1), |
|
(w = 0), |
|
(v = v |
|
.slice() |
|
.sort(function (t, e) { |
|
return t - e; |
|
}) |
|
.filter(function (t) { |
|
return !this[t] && (this[t] = !0); |
|
}, {}))[0] !== e && (v.unshift(e), (S = !0)), |
|
v[v.length - 1] !== r && (v.push(r), (x = !0)), |
|
v.forEach(function (t, e) { |
|
var r, |
|
n, |
|
i, |
|
o, |
|
a, |
|
s, |
|
l, |
|
u, |
|
c, |
|
p, |
|
f = t, |
|
d = v[e + 1], |
|
h = "steps" === g; |
|
if ( |
|
(h && (r = E.xNumSteps[e]), |
|
r || (r = d - f), |
|
!1 !== f && void 0 !== d) |
|
) |
|
for ( |
|
r = Math.max(r, 1e-7), n = f; |
|
n <= d; |
|
n = (n + r).toFixed(7) / 1 |
|
) { |
|
for ( |
|
u = (a = (o = E.toStepping(n)) - w) / m, |
|
p = a / (c = Math.round(u)), |
|
i = 1; |
|
i <= c; |
|
i += 1 |
|
) |
|
b[(s = w + i * p).toFixed(5)] = [E.fromStepping(s), 0]; |
|
(l = -1 < v.indexOf(n) ? k : h ? P : U), |
|
!e && S && (l = 0), |
|
(n === d && x) || (b[o.toFixed(5)] = [n, l]), |
|
(w = o); |
|
} |
|
}), |
|
b), |
|
l = t.format || { to: Math.round }; |
|
return (c = y.appendChild(F(s, o, l))); |
|
} |
|
function R() { |
|
var t = l.getBoundingClientRect(), |
|
e = "offset" + ["Width", "Height"][f.ort]; |
|
return 0 === f.ort ? t.width || l[e] : t.height || l[e]; |
|
} |
|
function B(n, i, o, a) { |
|
var e = function (t) { |
|
return ( |
|
!!(t = (function (t, e, r) { |
|
var n, |
|
i, |
|
o = 0 === t.type.indexOf("touch"), |
|
a = 0 === t.type.indexOf("mouse"), |
|
s = 0 === t.type.indexOf("pointer"); |
|
0 === t.type.indexOf("MSPointer") && (s = !0); |
|
if (o) { |
|
var l = function (t) { |
|
return t.target === r || r.contains(t.target); |
|
}; |
|
if ("touchstart" === t.type) { |
|
var u = Array.prototype.filter.call(t.touches, l); |
|
if (1 < u.length) return !1; |
|
(n = u[0].pageX), (i = u[0].pageY); |
|
} else { |
|
var c = Array.prototype.find.call(t.changedTouches, l); |
|
if (!c) return !1; |
|
(n = c.pageX), (i = c.pageY); |
|
} |
|
} |
|
(e = e || vt(x)), |
|
(a || s) && ((n = t.clientX + e.x), (i = t.clientY + e.y)); |
|
return ( |
|
(t.pageOffset = e), (t.points = [n, i]), (t.cursor = a || s), t |
|
); |
|
})(t, a.pageOffset, a.target || i)) && |
|
!(L() && !a.doNotReject) && |
|
((e = y), |
|
(r = f.cssClasses.tap), |
|
!( |
|
(e.classList |
|
? e.classList.contains(r) |
|
: new RegExp("\\b" + r + "\\b").test(e.className)) && |
|
!a.doNotReject |
|
) && |
|
!(n === d.start && void 0 !== t.buttons && 1 < t.buttons) && |
|
(!a.hover || !t.buttons) && |
|
(h || t.preventDefault(), |
|
(t.calcPoint = t.points[f.ort]), |
|
void o(t, a))) |
|
); |
|
var e, r; |
|
}, |
|
r = []; |
|
return ( |
|
n.split(" ").forEach(function (t) { |
|
i.addEventListener(t, e, !!h && { passive: !0 }), r.push([t, e]); |
|
}), |
|
r |
|
); |
|
} |
|
function q(t) { |
|
var e, |
|
r, |
|
n, |
|
i, |
|
o, |
|
a, |
|
s = |
|
(100 * |
|
(t - |
|
((e = l), |
|
(r = f.ort), |
|
(n = e.getBoundingClientRect()), |
|
(i = e.ownerDocument), |
|
(o = i.documentElement), |
|
(a = vt(i)), |
|
/webkit.*Chrome.*Mobile/i.test(navigator.userAgent) && (a.x = 0), |
|
r ? n.top + a.y - o.clientTop : n.left + a.x - o.clientLeft))) / |
|
R(); |
|
return (s = dt(s)), f.dir ? 100 - s : s; |
|
} |
|
function X(t, e) { |
|
"mouseout" === t.type && |
|
"HTML" === t.target.nodeName && |
|
null === t.relatedTarget && |
|
_(t, e); |
|
} |
|
function Y(t, e) { |
|
if ( |
|
-1 === navigator.appVersion.indexOf("MSIE 9") && |
|
0 === t.buttons && |
|
0 !== e.buttonsProperty |
|
) |
|
return _(t, e); |
|
var r = (f.dir ? -1 : 1) * (t.calcPoint - e.startCalcPoint); |
|
Z(0 < r, (100 * r) / e.baseSize, e.locations, e.handleNumbers); |
|
} |
|
function _(t, e) { |
|
e.handle && (gt(e.handle, f.cssClasses.active), (b -= 1)), |
|
e.listeners.forEach(function (t) { |
|
w.removeEventListener(t[0], t[1]); |
|
}), |
|
0 === b && |
|
(gt(y, f.cssClasses.drag), |
|
et(), |
|
t.cursor && |
|
((C.style.cursor = ""), C.removeEventListener("selectstart", pt))), |
|
e.handleNumbers.forEach(function (t) { |
|
J("change", t), J("set", t), J("end", t); |
|
}); |
|
} |
|
function I(t, e) { |
|
if (e.handleNumbers.some(z)) return !1; |
|
var r; |
|
1 === e.handleNumbers.length && |
|
((r = u[e.handleNumbers[0]].children[0]), |
|
(b += 1), |
|
mt(r, f.cssClasses.active)); |
|
t.stopPropagation(); |
|
var n = [], |
|
i = B(d.move, w, Y, { |
|
target: t.target, |
|
handle: r, |
|
listeners: n, |
|
startCalcPoint: t.calcPoint, |
|
baseSize: R(), |
|
pageOffset: t.pageOffset, |
|
handleNumbers: e.handleNumbers, |
|
buttonsProperty: t.buttons, |
|
locations: g.slice(), |
|
}), |
|
o = B(d.end, w, _, { |
|
target: t.target, |
|
handle: r, |
|
listeners: n, |
|
doNotReject: !0, |
|
handleNumbers: e.handleNumbers, |
|
}), |
|
a = B("mouseout", w, X, { |
|
target: t.target, |
|
handle: r, |
|
listeners: n, |
|
doNotReject: !0, |
|
handleNumbers: e.handleNumbers, |
|
}); |
|
n.push.apply(n, i.concat(o, a)), |
|
t.cursor && |
|
((C.style.cursor = getComputedStyle(t.target).cursor), |
|
1 < u.length && mt(y, f.cssClasses.drag), |
|
C.addEventListener("selectstart", pt, !1)), |
|
e.handleNumbers.forEach(function (t) { |
|
J("start", t); |
|
}); |
|
} |
|
function n(t) { |
|
t.stopPropagation(); |
|
var n, |
|
i, |
|
o, |
|
e = q(t.calcPoint), |
|
r = |
|
((n = e), |
|
(o = !(i = 100)), |
|
u.forEach(function (t, e) { |
|
if (!z(e)) { |
|
var r = Math.abs(g[e] - n); |
|
(r < i || (100 === r && 100 === i)) && ((o = e), (i = r)); |
|
} |
|
}), |
|
o); |
|
if (!1 === r) return !1; |
|
f.events.snap || ft(y, f.cssClasses.tap, f.animationDuration), |
|
rt(r, e, !0, !0), |
|
et(), |
|
J("slide", r, !0), |
|
J("update", r, !0), |
|
J("change", r, !0), |
|
J("set", r, !0), |
|
f.events.snap && I(t, { handleNumbers: [r] }); |
|
} |
|
function W(t) { |
|
var e = q(t.calcPoint), |
|
r = E.getStep(e), |
|
n = E.fromStepping(r); |
|
Object.keys(S).forEach(function (t) { |
|
"hover" === t.split(".")[0] && |
|
S[t].forEach(function (t) { |
|
t.call(s, n); |
|
}); |
|
}); |
|
} |
|
function $(t, e) { |
|
(S[t] = S[t] || []), |
|
S[t].push(e), |
|
"update" === t.split(".")[0] && |
|
u.forEach(function (t, e) { |
|
J("update", e); |
|
}); |
|
} |
|
function G(t) { |
|
var n = t && t.split(".")[0], |
|
i = n && t.substring(n.length); |
|
Object.keys(S).forEach(function (t) { |
|
var e = t.split(".")[0], |
|
r = t.substring(e.length); |
|
(n && n !== e) || (i && i !== r) || delete S[t]; |
|
}); |
|
} |
|
function J(r, n, i) { |
|
Object.keys(S).forEach(function (t) { |
|
var e = t.split(".")[0]; |
|
r === e && |
|
S[t].forEach(function (t) { |
|
t.call(s, m.map(f.format.to), n, m.slice(), i || !1, g.slice()); |
|
}); |
|
}); |
|
} |
|
function K(t, e, r, n, i, o) { |
|
return ( |
|
1 < u.length && |
|
!f.events.unconstrained && |
|
(n && 0 < e && (r = Math.max(r, t[e - 1] + f.margin)), |
|
i && e < u.length - 1 && (r = Math.min(r, t[e + 1] - f.margin))), |
|
1 < u.length && |
|
f.limit && |
|
(n && 0 < e && (r = Math.min(r, t[e - 1] + f.limit)), |
|
i && e < u.length - 1 && (r = Math.max(r, t[e + 1] - f.limit))), |
|
f.padding && |
|
(0 === e && (r = Math.max(r, f.padding[0])), |
|
e === u.length - 1 && (r = Math.min(r, 100 - f.padding[1]))), |
|
!((r = dt((r = E.getStep(r)))) === t[e] && !o) && r |
|
); |
|
} |
|
function Q(t, e) { |
|
var r = f.ort; |
|
return (r ? e : t) + ", " + (r ? t : e); |
|
} |
|
function Z(t, n, r, e) { |
|
var i = r.slice(), |
|
o = [!t, t], |
|
a = [t, !t]; |
|
(e = e.slice()), |
|
t && e.reverse(), |
|
1 < e.length |
|
? e.forEach(function (t, e) { |
|
var r = K(i, t, i[t] + n, o[e], a[e], !1); |
|
!1 === r ? (n = 0) : ((n = r - i[t]), (i[t] = r)); |
|
}) |
|
: (o = a = [!0]); |
|
var s = !1; |
|
e.forEach(function (t, e) { |
|
s = rt(t, r[t] + n, o[e], a[e]) || s; |
|
}), |
|
s && |
|
e.forEach(function (t) { |
|
J("update", t), J("slide", t); |
|
}); |
|
} |
|
function tt(t, e) { |
|
return f.dir ? 100 - t - e : t; |
|
} |
|
function et() { |
|
v.forEach(function (t) { |
|
var e = 50 < g[t] ? -1 : 1, |
|
r = 3 + (u.length + e * t); |
|
u[t].style.zIndex = r; |
|
}); |
|
} |
|
function rt(t, e, r, n) { |
|
return ( |
|
!1 !== (e = K(g, t, e, r, n, !1)) && |
|
((function (t, e) { |
|
(g[t] = e), (m[t] = E.fromStepping(e)); |
|
var r = "translate(" + Q(tt(e, 0) - A + "%", "0") + ")"; |
|
(u[t].style[f.transformRule] = r), nt(t), nt(t + 1); |
|
})(t, e), |
|
!0) |
|
); |
|
} |
|
function nt(t) { |
|
if (a[t]) { |
|
var e = 0, |
|
r = 100; |
|
0 !== t && (e = g[t - 1]), t !== a.length - 1 && (r = g[t]); |
|
var n = r - e, |
|
i = "translate(" + Q(tt(e, n) + "%", "0") + ")", |
|
o = "scale(" + Q(n / 100, "1") + ")"; |
|
a[t].style[f.transformRule] = i + " " + o; |
|
} |
|
} |
|
function it(t, e) { |
|
return null === t || !1 === t || void 0 === t |
|
? g[e] |
|
: ("number" == typeof t && (t = String(t)), |
|
(t = f.format.from(t)), |
|
!1 === (t = E.toStepping(t)) || isNaN(t) ? g[e] : t); |
|
} |
|
function ot(t, e) { |
|
var r = ht(t), |
|
n = void 0 === g[0]; |
|
(e = void 0 === e || !!e), |
|
f.animate && !n && ft(y, f.cssClasses.tap, f.animationDuration), |
|
v.forEach(function (t) { |
|
rt(t, it(r[t], t), !0, !1); |
|
}), |
|
v.forEach(function (t) { |
|
rt(t, g[t], !0, !0); |
|
}), |
|
et(), |
|
v.forEach(function (t) { |
|
J("update", t), null !== r[t] && e && J("set", t); |
|
}); |
|
} |
|
function at(t, e, r) { |
|
if (!(0 <= (t = Number(t)) && t < v.length)) |
|
throw new Error( |
|
"noUiSlider (" + ut + "): invalid handle number, got: " + t |
|
); |
|
rt(t, it(e, t), !0, !0), J("update", t), r && J("set", t); |
|
} |
|
function st() { |
|
var t = m.map(f.format.to); |
|
return 1 === t.length ? t[0] : t; |
|
} |
|
function lt(t) { |
|
var e = g[t], |
|
r = E.getNearbySteps(e), |
|
n = m[t], |
|
i = r.thisStep.step, |
|
o = null; |
|
if (f.snap) |
|
return [ |
|
n - r.stepBefore.startValue || null, |
|
r.stepAfter.startValue - n || null, |
|
]; |
|
!1 !== i && |
|
n + i > r.stepAfter.startValue && |
|
(i = r.stepAfter.startValue - n), |
|
(o = |
|
n > r.thisStep.startValue |
|
? r.thisStep.step |
|
: !1 !== r.stepBefore.step && n - r.stepBefore.highestStep), |
|
100 === e ? (i = null) : 0 === e && (o = null); |
|
var a = E.countStepDecimals(); |
|
return ( |
|
null !== i && !1 !== i && (i = Number(i.toFixed(a))), |
|
null !== o && !1 !== o && (o = Number(o.toFixed(a))), |
|
[o, i] |
|
); |
|
} |
|
return ( |
|
mt((e = y), f.cssClasses.target), |
|
0 === f.dir ? mt(e, f.cssClasses.ltr) : mt(e, f.cssClasses.rtl), |
|
0 === f.ort |
|
? mt(e, f.cssClasses.horizontal) |
|
: mt(e, f.cssClasses.vertical), |
|
(l = V(e, f.cssClasses.base)), |
|
(function (t, e) { |
|
var r = V(e, f.cssClasses.connects); |
|
(u = []), (a = []).push(O(r, t[0])); |
|
for (var n = 0; n < f.handles; n++) |
|
u.push(M(e, n)), (v[n] = n), a.push(O(r, t[n + 1])); |
|
})(f.connect, l), |
|
(p = f.events).fixed || |
|
u.forEach(function (t, e) { |
|
B(d.start, t.children[0], I, { handleNumbers: [e] }); |
|
}), |
|
p.tap && B(d.start, l, n, {}), |
|
p.hover && B(d.move, l, W, { hover: !0 }), |
|
p.drag && |
|
a.forEach(function (t, e) { |
|
if (!1 !== t && 0 !== e && e !== a.length - 1) { |
|
var r = u[e - 1], |
|
n = u[e], |
|
i = [t]; |
|
mt(t, f.cssClasses.draggable), |
|
p.fixed && (i.push(r.children[0]), i.push(n.children[0])), |
|
i.forEach(function (t) { |
|
B(d.start, t, I, { |
|
handles: [r, n], |
|
handleNumbers: [e - 1, e], |
|
}); |
|
}); |
|
} |
|
}), |
|
ot(f.start), |
|
f.pips && T(f.pips), |
|
f.tooltips && H(), |
|
$("update", function (t, e, a, r, s) { |
|
v.forEach(function (t) { |
|
var e = u[t], |
|
r = K(g, t, 0, !0, !0, !0), |
|
n = K(g, t, 100, !0, !0, !0), |
|
i = s[t], |
|
o = f.ariaFormat.to(a[t]); |
|
(r = E.fromStepping(r).toFixed(1)), |
|
(n = E.fromStepping(n).toFixed(1)), |
|
(i = E.fromStepping(i).toFixed(1)), |
|
e.children[0].setAttribute("aria-valuemin", r), |
|
e.children[0].setAttribute("aria-valuemax", n), |
|
e.children[0].setAttribute("aria-valuenow", i), |
|
e.children[0].setAttribute("aria-valuetext", o); |
|
}); |
|
}), |
|
(s = { |
|
destroy: function () { |
|
for (var t in f.cssClasses) |
|
f.cssClasses.hasOwnProperty(t) && gt(y, f.cssClasses[t]); |
|
for (; y.firstChild; ) y.removeChild(y.firstChild); |
|
delete y.noUiSlider; |
|
}, |
|
steps: function () { |
|
return v.map(lt); |
|
}, |
|
on: $, |
|
off: G, |
|
get: st, |
|
set: ot, |
|
setHandle: at, |
|
reset: function (t) { |
|
ot(f.start, t); |
|
}, |
|
__moveHandles: function (t, e, r) { |
|
Z(t, e, g, r); |
|
}, |
|
options: o, |
|
updateOptions: function (e, t) { |
|
var r = st(), |
|
n = [ |
|
"margin", |
|
"limit", |
|
"padding", |
|
"range", |
|
"animate", |
|
"snap", |
|
"step", |
|
"format", |
|
"pips", |
|
"tooltips", |
|
]; |
|
n.forEach(function (t) { |
|
void 0 !== e[t] && (o[t] = e[t]); |
|
}); |
|
var i = bt(o); |
|
n.forEach(function (t) { |
|
void 0 !== e[t] && (f[t] = i[t]); |
|
}), |
|
(E = i.spectrum), |
|
(f.margin = i.margin), |
|
(f.limit = i.limit), |
|
(f.padding = i.padding), |
|
f.pips ? T(f.pips) : D(), |
|
f.tooltips ? H() : j(), |
|
(g = []), |
|
ot(e.start || r, t); |
|
}, |
|
target: y, |
|
removePips: D, |
|
removeTooltips: j, |
|
pips: T, |
|
}) |
|
); |
|
} |
|
return { |
|
__spectrum: l, |
|
version: ut, |
|
create: function (t, e) { |
|
if (!t || !t.nodeName) |
|
throw new Error( |
|
"noUiSlider (" + ut + "): create requires a single element, got: " + t |
|
); |
|
if (t.noUiSlider) |
|
throw new Error( |
|
"noUiSlider (" + ut + "): Slider was already initialized." |
|
); |
|
var r = z(t, bt(e), e); |
|
return (t.noUiSlider = r); |
|
}, |
|
}; |
|
});
|
|
|