Skip to content

Commit 4a33e35

Browse files
committed
noUiSlider 14.1.0
1 parent fe81186 commit 4a33e35

File tree

7 files changed

+76
-38
lines changed

7 files changed

+76
-38
lines changed

CHANGELOG.MD

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Changelog
22

3+
### 14.1.0 (*2019-12-04*)
4+
- Fixed: Styling requires a root `html` node, so noUiSlider can't be used in shadow dom (#1035);
5+
- Added: Support for PageUp/PageDown and Home/End keys in keyboard support (#1036);
6+
37
### 14.0.3 (*2019-10-10*)
48
- Fixed: Initialising handle values near the slider edge does not always respect `margin` (#1009);
59

distribute/nouislider.css

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/*! nouislider - 14.0.3 - 10/10/2019 */
1+
/*! nouislider - 14.1.0 - 12/4/2019 */
22
/* Functional styling;
33
* These styles are required for noUiSlider to function.
44
* You don't need to change these rules to apply your design.
@@ -18,7 +18,6 @@
1818
}
1919
.noUi-target {
2020
position: relative;
21-
direction: ltr;
2221
}
2322
.noUi-base,
2423
.noUi-connects {
@@ -39,7 +38,7 @@
3938
position: absolute;
4039
z-index: 1;
4140
top: 0;
42-
left: 0;
41+
right: 0;
4342
-ms-transform-origin: 0 0;
4443
-webkit-transform-origin: 0 0;
4544
-webkit-transform-style: preserve-3d;
@@ -56,9 +55,9 @@
5655
}
5756
/* Offset direction
5857
*/
59-
html:not([dir="rtl"]) .noUi-horizontal .noUi-origin {
60-
left: auto;
61-
right: 0;
58+
.noUi-txt-dir-rtl.noUi-horizontal .noUi-origin {
59+
left: 0;
60+
right: auto;
6261
}
6362
/* Give origins 0 height/width so they don't interfere with clicking the
6463
* connect elements.
@@ -94,7 +93,7 @@ html:not([dir="rtl"]) .noUi-horizontal .noUi-origin {
9493
.noUi-horizontal .noUi-handle {
9594
width: 34px;
9695
height: 28px;
97-
left: -17px;
96+
right: -17px;
9897
top: -6px;
9998
}
10099
.noUi-vertical {
@@ -103,12 +102,12 @@ html:not([dir="rtl"]) .noUi-horizontal .noUi-origin {
103102
.noUi-vertical .noUi-handle {
104103
width: 28px;
105104
height: 34px;
106-
left: -6px;
105+
right: -6px;
107106
top: -17px;
108107
}
109-
html:not([dir="rtl"]) .noUi-horizontal .noUi-handle {
110-
right: -17px;
111-
left: auto;
108+
.noUi-txt-dir-rtl.noUi-horizontal .noUi-handle {
109+
left: -17px;
110+
right: auto;
112111
}
113112
/* Styling;
114113
* Giving the connect element a border radius causes issues with using transform: scale

distribute/nouislider.js

Lines changed: 56 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/*! nouislider - 14.0.3 - 10/10/2019 */
1+
/*! nouislider - 14.1.0 - 12/4/2019 */
22
(function(factory) {
33
if (typeof define === "function" && define.amd) {
44
// AMD. Register as an anonymous module.
@@ -13,7 +13,7 @@
1313
})(function() {
1414
"use strict";
1515

16-
var VERSION = "14.0.3";
16+
var VERSION = "14.1.0";
1717

1818
//region Helper Methods
1919

@@ -893,6 +893,8 @@
893893
connects: "connects",
894894
ltr: "ltr",
895895
rtl: "rtl",
896+
textDirectionLtr: "txt-dir-ltr",
897+
textDirectionRtl: "txt-dir-rtl",
896898
draggable: "draggable",
897899
drag: "state-drag",
898900
tap: "state-tap",
@@ -1090,6 +1092,14 @@
10901092
addClass(addTarget, options.cssClasses.vertical);
10911093
}
10921094

1095+
var textDirection = getComputedStyle(addTarget).direction;
1096+
1097+
if (textDirection === "ltr") {
1098+
addClass(addTarget, options.cssClasses.textDirectionLtr);
1099+
} else {
1100+
addClass(addTarget, options.cssClasses.textDirectionRtl);
1101+
}
1102+
10931103
return addNodeTo(addTarget, options.cssClasses.base);
10941104
}
10951105

@@ -1798,47 +1808,72 @@
17981808

17991809
var horizontalKeys = ["Left", "Right"];
18001810
var verticalKeys = ["Down", "Up"];
1811+
var largeStepKeys = ["PageDown", "PageUp"];
1812+
var edgeKeys = ["Home", "End"];
18011813

18021814
if (options.dir && !options.ort) {
18031815
// On an right-to-left slider, the left and right keys act inverted
18041816
horizontalKeys.reverse();
18051817
} else if (options.ort && !options.dir) {
18061818
// On a top-to-bottom slider, the up and down keys act inverted
18071819
verticalKeys.reverse();
1820+
largeStepKeys.reverse();
18081821
}
18091822

18101823
// Strip "Arrow" for IE compatibility. https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key
18111824
var key = event.key.replace("Arrow", "");
1812-
var isDown = key === verticalKeys[0] || key === horizontalKeys[0];
1813-
var isUp = key === verticalKeys[1] || key === horizontalKeys[1];
18141825

1815-
if (!isDown && !isUp) {
1826+
var isLargeDown = key === largeStepKeys[0];
1827+
var isLargeUp = key === largeStepKeys[1];
1828+
var isDown = key === verticalKeys[0] || key === horizontalKeys[0] || isLargeDown;
1829+
var isUp = key === verticalKeys[1] || key === horizontalKeys[1] || isLargeUp;
1830+
var isMin = key === edgeKeys[0];
1831+
var isMax = key === edgeKeys[1];
1832+
1833+
if (!isDown && !isUp && !isMin && !isMax) {
18161834
return true;
18171835
}
18181836

18191837
event.preventDefault();
18201838

1821-
var direction = isDown ? 0 : 1;
1822-
var steps = getNextStepsForHandle(handleNumber);
1823-
var step = steps[direction];
1839+
var to;
18241840

1825-
// At the edge of a slider, do nothing
1826-
if (step === null) {
1827-
return false;
1828-
}
1841+
if (isUp || isDown) {
1842+
var multiplier = 5;
1843+
var direction = isDown ? 0 : 1;
1844+
var steps = getNextStepsForHandle(handleNumber);
1845+
var step = steps[direction];
18291846

1830-
// No step set, use the default of 10% of the sub-range
1831-
if (step === false) {
1832-
step = scope_Spectrum.getDefaultStep(scope_Locations[handleNumber], isDown, 10);
1833-
}
1847+
// At the edge of a slider, do nothing
1848+
if (step === null) {
1849+
return false;
1850+
}
18341851

1835-
// Step over zero-length ranges (#948);
1836-
step = Math.max(step, 0.0000001);
1852+
// No step set, use the default of 10% of the sub-range
1853+
if (step === false) {
1854+
step = scope_Spectrum.getDefaultStep(scope_Locations[handleNumber], isDown, 10);
1855+
}
18371856

1838-
// Decrement for down steps
1839-
step = (isDown ? -1 : 1) * step;
1857+
if (isLargeUp || isLargeDown) {
1858+
step *= multiplier;
1859+
}
1860+
1861+
// Step over zero-length ranges (#948);
1862+
step = Math.max(step, 0.0000001);
1863+
1864+
// Decrement for down steps
1865+
step = (isDown ? -1 : 1) * step;
1866+
1867+
to = scope_Values[handleNumber] + step;
1868+
} else if (isMax) {
1869+
// End key
1870+
to = options.spectrum.xVal[options.spectrum.xVal.length - 1];
1871+
} else {
1872+
// Home key
1873+
to = options.spectrum.xVal[0];
1874+
}
18401875

1841-
setHandle(handleNumber, scope_Spectrum.toStepping(scope_Values[handleNumber] + step), true, true);
1876+
setHandle(handleNumber, scope_Spectrum.toStepping(to), true, true);
18421877

18431878
fireEvent("slide", handleNumber);
18441879
fireEvent("update", handleNumber);

distribute/nouislider.min.css

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

distribute/nouislider.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package-lock.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "nouislider",
3-
"version": "14.0.3",
3+
"version": "14.1.0",
44
"main": "distribute/nouislider.js",
55
"style": "distribute/nouislider.min.css",
66
"license": "MIT",

0 commit comments

Comments
 (0)