From f5ec269b9cb39b6a484d2675c09825c85f14205b Mon Sep 17 00:00:00 2001 From: Alex Conlin Date: Thu, 25 Aug 2016 12:15:56 +0100 Subject: [PATCH 01/17] Update draggable cursors For a horizontal slider you can drag left *or right* so the cursor should have both arrows (similar for vertical). --- src/nouislider.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/nouislider.css b/src/nouislider.css index c512f344..acc457c7 100644 --- a/src/nouislider.css +++ b/src/nouislider.css @@ -106,10 +106,10 @@ /* Handles and cursors; */ .noUi-draggable { - cursor: w-resize; + cursor: ew-resize; } .noUi-vertical .noUi-draggable { - cursor: n-resize; + cursor: ns-resize; } .noUi-handle { border: 1px solid #D9D9D9; From 513003c8ba321eab9ec3072210359fa3e4e206d1 Mon Sep 17 00:00:00 2001 From: Nick Cox Date: Sun, 23 Oct 2016 14:24:55 -0600 Subject: [PATCH 02/17] Add 'padding' as a new option Padding will keep the handles away from the slider edges. --- src/js/options.js | 19 +++++++++++++++++++ src/js/range.js | 2 +- src/js/scope.js | 20 +++++++++++++++++--- 3 files changed, 37 insertions(+), 4 deletions(-) diff --git a/src/js/options.js b/src/js/options.js index 9480ec15..514ce64d 100644 --- a/src/js/options.js +++ b/src/js/options.js @@ -165,6 +165,23 @@ } } + function testPadding ( parsed, entry ) { + + if ( !isNumeric(entry) ){ + throw new Error("noUiSlider: 'padding' option must be numeric."); + } + + if ( entry === 0 ) { + return; + } + + parsed.padding = parsed.spectrum.getMargin(entry); + + if ( !parsed.padding ) { + throw new Error("noUiSlider: 'padding' option is only supported on linear sliders."); + } + } + function testDirection ( parsed, entry ) { // Set direction as a numerical value for easy parsing. @@ -305,6 +322,7 @@ var parsed = { margin: 0, limit: 0, + padding: 0, animate: true, animationDuration: 300, format: defaultFormatter @@ -323,6 +341,7 @@ 'orientation': { r: false, t: testOrientation }, 'margin': { r: false, t: testMargin }, 'limit': { r: false, t: testLimit }, + 'padding': { r: false, t: testPadding }, 'behaviour': { r: true, t: testBehaviour }, 'format': { r: false, t: testFormat }, 'tooltips': { r: false, t: testTooltips }, diff --git a/src/js/range.js b/src/js/range.js index 0eea18f2..44e68165 100644 --- a/src/js/range.js +++ b/src/js/range.js @@ -230,7 +230,7 @@ var step = this.xNumSteps[0]; if ( step && (value % step) ) { - throw new Error("noUiSlider: 'limit' and 'margin' must be divisible by step."); + throw new Error("noUiSlider: 'limit', 'margin' and 'padding' must be divisible by step."); } return this.xPct.length === 2 ? fromPercentage(this.xVal, value) : false; diff --git a/src/js/scope.js b/src/js/scope.js index 69ac2b42..cfe099a9 100644 --- a/src/js/scope.js +++ b/src/js/scope.js @@ -29,6 +29,19 @@ } } + // The padding option keeps the handles a certain distance from the + // edges of the slider. Padding must be > 0. + if ( options.padding ) { + + if ( lookBackward && handleNumber === 0 ) { + to = Math.max(to, options.padding); + } + + if ( lookForward && handleNumber === scope_Handles.length - 1 ) { + to = Math.min(to, 100 - options.padding); + } + } + to = scope_Spectrum.getStep(to); // Limit percentage to the 0 - 100 range @@ -301,7 +314,7 @@ }); } - // Updateable: margin, limit, step, range, animate, snap + // Updateable: margin, limit, padding, step, range, animate, snap function updateOptions ( optionsToUpdate, fireSetEvent ) { // Spectrum is created using the range, snap, direction and step options. @@ -309,7 +322,7 @@ // If 'snap' and 'step' are not passed, they should remain unchanged. var v = valueGet(); - var updateAble = ['margin', 'limit', 'range', 'animate', 'snap', 'step', 'format']; + var updateAble = ['margin', 'limit', 'padding', 'range', 'animate', 'snap', 'step', 'format']; // Only change options that we're actually passed to update. updateAble.forEach(function(name){ @@ -332,9 +345,10 @@ newOptions.spectrum.direction = scope_Spectrum.direction; scope_Spectrum = newOptions.spectrum; - // Limit and margin depend on the spectrum but are stored outside of it. (#677) + // Limit, margin and padding depend on the spectrum but are stored outside of it. (#677) options.margin = newOptions.margin; options.limit = newOptions.limit; + options.padding = newOptions.padding; // Invalidate the current positioning so valueSet forces an update. scope_Locations = []; From 095f97ed67aef055f5c491d37bca0c79b72a7b11 Mon Sep 17 00:00:00 2001 From: Nick Cox Date: Wed, 26 Oct 2016 20:44:21 -0600 Subject: [PATCH 03/17] Create a test for the padding option --- tests/slider_padding.js | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 tests/slider_padding.js diff --git a/tests/slider_padding.js b/tests/slider_padding.js new file mode 100644 index 00000000..147596af --- /dev/null +++ b/tests/slider_padding.js @@ -0,0 +1,37 @@ + + QUnit.test( "Padding option", function( assert ){ + + Q.innerHTML = '
'; + + var settings = { + start: [ 0, 10 ], + padding: 1, + range: { + 'min': 0, + 'max': 10 + } + }; + + var slider = Q.querySelector('.slider'); + + noUiSlider.create(slider, settings); + + assert.deepEqual( slider.noUiSlider.get(), ['1.00', '9.00'], 'Padding applied on init.' ); + + slider.noUiSlider.set( [ 2, 10 ] ); + assert.deepEqual( slider.noUiSlider.get(), ['2.00', '9.00'], 'Handle can\'t pass padding.' ); + + slider.noUiSlider.set( [ 0, 10 ] ); + assert.deepEqual( slider.noUiSlider.get(), ['1.00', '9.00'], 'Multiple set outside of padding' ); + + // Rebuild with new settings; + settings.direction = 'rtl'; + slider.noUiSlider.destroy(); + + noUiSlider.create(slider, settings); + + assert.deepEqual( slider.noUiSlider.get(), ['1.00', '9.00'], 'RTL on init.' ); + + slider.noUiSlider.set( [ 3, 10 ] ); + assert.deepEqual( slider.noUiSlider.get(), ['3.00', '9.00'], 'RTL set.' ); + }); From e099583c831d68f3c6f5099a254c059a91ee7e63 Mon Sep 17 00:00:00 2001 From: Nick Cox Date: Wed, 26 Oct 2016 20:47:32 -0600 Subject: [PATCH 04/17] Add padding option constraints --- src/js/options.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/js/options.js b/src/js/options.js index 514ce64d..fb34b50a 100644 --- a/src/js/options.js +++ b/src/js/options.js @@ -180,6 +180,14 @@ if ( !parsed.padding ) { throw new Error("noUiSlider: 'padding' option is only supported on linear sliders."); } + + if ( parsed.padding < 0 ) { + throw new Error("noUiSlider: 'padding' option must be a positive number."); + } + + if ( parsed.padding >= 50 ) { + throw new Error("noUiSlider: 'padding' option must be less than half the range."); + } } function testDirection ( parsed, entry ) { From ed5fe5b8ed9021714bf3044628a197d0596a0180 Mon Sep 17 00:00:00 2001 From: Nick Cox Date: Wed, 26 Oct 2016 20:47:56 -0600 Subject: [PATCH 05/17] lookForward/Backward are less intuitive than I thought --- src/js/scope.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/js/scope.js b/src/js/scope.js index cfe099a9..241b1284 100644 --- a/src/js/scope.js +++ b/src/js/scope.js @@ -33,11 +33,11 @@ // edges of the slider. Padding must be > 0. if ( options.padding ) { - if ( lookBackward && handleNumber === 0 ) { + if ( handleNumber === 0 ) { to = Math.max(to, options.padding); } - if ( lookForward && handleNumber === scope_Handles.length - 1 ) { + if ( handleNumber === scope_Handles.length - 1 ) { to = Math.min(to, 100 - options.padding); } } From a8d76e6d5a496bacf93c04de81901eef50aafb8c Mon Sep 17 00:00:00 2001 From: Nick Cox Date: Thu, 27 Oct 2016 17:18:45 -0600 Subject: [PATCH 06/17] Add documentation for the padding option --- documentation/slider-options.php | 39 ++++++++++++++++++++ documentation/slider-options/padding-link.js | 10 +++++ documentation/slider-options/padding.js | 10 +++++ 3 files changed, 59 insertions(+) create mode 100644 documentation/slider-options/padding-link.js create mode 100644 documentation/slider-options/padding.js diff --git a/documentation/slider-options.php b/documentation/slider-options.php index 746c62d1..686a85b8 100644 --- a/documentation/slider-options.php +++ b/documentation/slider-options.php @@ -170,6 +170,45 @@ + +

Padding

+ +
+ +
+ +

Padding limits how close to the slider edges handles can be.

+ +
+
+ + + + +
+ +
+ Default +
0
+ + Accepted values +
number
+
+
+ +
+ + +
Show the slider value
+ +
+ +
+
+ +
+ +

Step

diff --git a/documentation/slider-options/padding-link.js b/documentation/slider-options/padding-link.js new file mode 100644 index 00000000..ec523390 --- /dev/null +++ b/documentation/slider-options/padding-link.js @@ -0,0 +1,10 @@ +var paddingMin = document.getElementById('slider-padding-value-min'), + paddingMax = document.getElementById('slider-padding-value-max'); + +paddingSlider.noUiSlider.on('update', function ( values, handle ) { + if ( handle ) { + marginMax.innerHTML = values[handle]; + } else { + marginMin.innerHTML = values[handle]; + } +}); diff --git a/documentation/slider-options/padding.js b/documentation/slider-options/padding.js new file mode 100644 index 00000000..978be75f --- /dev/null +++ b/documentation/slider-options/padding.js @@ -0,0 +1,10 @@ +var paddingSlider = document.getElementById('slider-padding'); + +noUiSlider.create(paddingSlider, { + start: [ 20, 80 ], + padding: 10, + range: { + 'min': 0, + 'max': 100 + } +}); From 71bcfb9b6b0b93fada2bd31b44fcea4e5c109a0b Mon Sep 17 00:00:00 2001 From: Leon Gersen Date: Sat, 10 Dec 2016 14:49:30 +0100 Subject: [PATCH 07/17] Correctly deal with multitouch rejections --- src/js/scope_helpers.js | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/src/js/scope_helpers.js b/src/js/scope_helpers.js index eca75793..f8f0861c 100644 --- a/src/js/scope_helpers.js +++ b/src/js/scope_helpers.js @@ -24,6 +24,11 @@ e = fixEvent(e, data.pageOffset); + // Handle reject of multitouch + if ( !e ) { + return false; + } + // Ignore right or middle clicks on start #454 if ( events === actions.start && e.buttons !== undefined && e.buttons > 1 ) { return false; @@ -61,10 +66,11 @@ // Filter the event to register the type, which can be // touch, mouse or pointer. Offset changes need to be // made on an event specific basis. - var touch = e.type.indexOf('touch') === 0, - mouse = e.type.indexOf('mouse') === 0, - pointer = e.type.indexOf('pointer') === 0, - x,y, event = e; + var touch = e.type.indexOf('touch') === 0; + var mouse = e.type.indexOf('mouse') === 0; + var pointer = e.type.indexOf('pointer') === 0; + var x; + var y; // IE10 implemented pointer events with a prefix; if ( e.type.indexOf('MSPointer') === 0 ) { @@ -77,7 +83,7 @@ // It's useful when you have two or more sliders on one page, // that can be touched simultaneously. // #649, #663, #668 - if ( event.touches.length > 1 ) { + if ( e.touches.length > 1 ) { return false; } @@ -94,11 +100,11 @@ y = e.clientY + pageOffset.y; } - event.pageOffset = pageOffset; - event.points = [x, y]; - event.cursor = mouse || pointer; // Fix #435 + e.pageOffset = pageOffset; + e.points = [x, y]; + e.cursor = mouse || pointer; // Fix #435 - return event; + return e; } function calcPointToPercentage ( calcPoint ) { From 993be69c85ca8a36cf795300b4710cb26b16d4f4 Mon Sep 17 00:00:00 2001 From: Leon Gersen Date: Sat, 10 Dec 2016 14:50:18 +0100 Subject: [PATCH 08/17] Keep a reference to the 'active' handle --- src/js/scope_events.js | 12 ++++++------ src/js/scope_start.js | 1 + 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/js/scope_events.js b/src/js/scope_events.js index aac71d23..6d4a182b 100644 --- a/src/js/scope_events.js +++ b/src/js/scope_events.js @@ -31,10 +31,9 @@ function eventEnd ( event, data ) { // The handle is no longer active, so remove the class. - var active = scope_Base.querySelector( '.' + options.cssClasses.active ); - - if ( active !== null ) { - removeClass(active, options.cssClasses.active); + if ( scope_ActiveHandle ) { + removeClass(scope_ActiveHandle, options.cssClasses.active); + scope_ActiveHandle = false; } // Remove cursor styles and text-selection events bound to the body. @@ -63,7 +62,6 @@ // Bind move events on document. function eventStart ( event, data ) { - // Mark the handle as 'active' so it can be styled. if ( data.handleNumbers.length === 1 ) { var handle = scope_Handles[data.handleNumbers[0]]; @@ -73,7 +71,9 @@ return false; } - addClass(handle.children[0], options.cssClasses.active); + // Mark the handle as 'active' so it can be styled. + scope_ActiveHandle = handle.children[0]; + addClass(scope_ActiveHandle, options.cssClasses.active); } // Fix #551, where a handle gets selected instead of dragged. diff --git a/src/js/scope_start.js b/src/js/scope_start.js index c042a3cc..0b9dcf12 100644 --- a/src/js/scope_start.js +++ b/src/js/scope_start.js @@ -9,6 +9,7 @@ function closure ( target, options, originalOptions ){ var scope_Base; var scope_Handles; var scope_HandleNumbers = []; + var scope_ActiveHandle = false; var scope_Connects; var scope_Spectrum = options.spectrum; var scope_Values = []; From 299ed4b1490de370ae6219c6561f65e9e001e440 Mon Sep 17 00:00:00 2001 From: Leon Gersen Date: Sat, 10 Dec 2016 14:58:03 +0100 Subject: [PATCH 09/17] Map legacy connect options --- src/js/options.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/js/options.js b/src/js/options.js index 9480ec15..3df9a5f9 100644 --- a/src/js/options.js +++ b/src/js/options.js @@ -98,6 +98,16 @@ var connect = [false]; var i; + // Map legacy options + if ( entry === 'lower' ) { + entry = [true, false]; + } + + else if ( entry === 'upper' ) { + entry = [false, true]; + } + + // Handle boolean options if ( entry === true || entry === false ) { for ( i = 1; i < parsed.handles; i++ ) { @@ -107,6 +117,7 @@ connect.push(false); } + // Reject invalid input else if ( !Array.isArray( entry ) || !entry.length || entry.length !== parsed.handles + 1 ) { throw new Error("noUiSlider: 'connect' option doesn't match handle count."); } From 06832845dcbd9beac65152bab724f3b53fb62a27 Mon Sep 17 00:00:00 2001 From: Leon Gersen Date: Sat, 10 Dec 2016 15:06:18 +0100 Subject: [PATCH 10/17] re-introduce handle lower/upper classes --- src/js/options.js | 6 ++++-- src/js/structure.js | 9 +++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/js/options.js b/src/js/options.js index 3df9a5f9..eb1bbfa5 100644 --- a/src/js/options.js +++ b/src/js/options.js @@ -319,10 +319,10 @@ animate: true, animationDuration: 300, format: defaultFormatter - }, tests; + }; // Tests are executed in the order they are presented here. - tests = { + var tests = { 'step': { r: false, t: testStep }, 'start': { r: true, t: testStart }, 'connect': { r: true, t: testConnect }, @@ -353,6 +353,8 @@ base: 'base', origin: 'origin', handle: 'handle', + handleLower: 'handle-lower', + handleUpper: 'handle-upper', horizontal: 'horizontal', vertical: 'vertical', background: 'background', diff --git a/src/js/structure.js b/src/js/structure.js index 4c187cda..f8c528a5 100644 --- a/src/js/structure.js +++ b/src/js/structure.js @@ -4,6 +4,15 @@ var origin = addNodeTo(base, options.cssClasses.origin); var handle = addNodeTo(origin, options.cssClasses.handle); handle.setAttribute('data-handle', handleNumber); + + if ( handleNumber === 0 ) { + addClass(handle, options.cssClasses.handleLower); + } + + else if ( handleNumber === options.handles - 1 ) { + addClass(handle, options.cssClasses.handleUpper); + } + return origin; } From fad20e85dfa920896b5b36badcbab1a438731a2c Mon Sep 17 00:00:00 2001 From: Leon Gersen Date: Sat, 10 Dec 2016 15:13:45 +0100 Subject: [PATCH 11/17] Remove iOS/webkit highlight flashes on tap --- src/nouislider.css | 1 + 1 file changed, 1 insertion(+) diff --git a/src/nouislider.css b/src/nouislider.css index 4f4dd021..deadef3a 100644 --- a/src/nouislider.css +++ b/src/nouislider.css @@ -6,6 +6,7 @@ .noUi-target, .noUi-target * { -webkit-touch-callout: none; +-webkit-tap-highlight-color: rgba(0,0,0,0); -webkit-user-select: none; -ms-touch-action: none; touch-action: none; From 414a333eb0dd04bca0562feb99280dfb0812f858 Mon Sep 17 00:00:00 2001 From: Leon Gersen Date: Sat, 10 Dec 2016 15:24:31 +0100 Subject: [PATCH 12/17] Minor stylistic --- src/js/scope.js | 9 ++++++--- src/js/scope_helpers.js | 2 ++ src/js/structure.js | 2 ++ 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/js/scope.js b/src/js/scope.js index 69ac2b42..0834bef8 100644 --- a/src/js/scope.js +++ b/src/js/scope.js @@ -180,6 +180,7 @@ }); } + // Reset slider to initial values function valueReset ( fireSetEvent ) { valueSet(options.start, fireSetEvent); } @@ -232,6 +233,7 @@ } } + // If the value is beyond the starting point if ( value > nearbySteps.thisStep.startValue ) { decrement = nearbySteps.thisStep.step; @@ -246,6 +248,7 @@ decrement = value - nearbySteps.stepBefore.highestStep; } + // Now, if at the slider edges, there is not in/decrement if ( location === 100 ) { increment = null; @@ -287,8 +290,8 @@ // Undo attachment of event function removeEvent ( namespacedEvent ) { - var event = namespacedEvent && namespacedEvent.split('.')[0], - namespace = event && namespacedEvent.substring(event.length); + var event = namespacedEvent && namespacedEvent.split('.')[0]; + var namespace = event && namespacedEvent.substring(event.length); Object.keys(scope_Events).forEach(function( bind ){ @@ -359,7 +362,7 @@ get: valueGet, set: valueSet, reset: valueReset, - // Exposed for unit testing, don't use this in your application. + // Exposed for unit testing, don't use this in your application. __moveHandles: function(a, b, c) { moveHandles(a, b, scope_Locations, c); }, options: originalOptions, // Issue #600, #678 updateOptions: updateOptions, diff --git a/src/js/scope_helpers.js b/src/js/scope_helpers.js index f8f0861c..81165fe1 100644 --- a/src/js/scope_helpers.js +++ b/src/js/scope_helpers.js @@ -107,12 +107,14 @@ return e; } + // Translate a coordinate in the document to a percentage on the slider function calcPointToPercentage ( calcPoint ) { var location = calcPoint - offset(scope_Base, options.ort); var proposal = ( location * 100 ) / baseSize(); return options.dir ? 100 - proposal : proposal; } + // Find handle closest to a certain percentage on the slider function getClosestHandle ( proposal ) { var closest = 100; diff --git a/src/js/structure.js b/src/js/structure.js index f8c528a5..d7456c38 100644 --- a/src/js/structure.js +++ b/src/js/structure.js @@ -1,8 +1,10 @@ // Append a origin to the base function addOrigin ( base, handleNumber ) { + var origin = addNodeTo(base, options.cssClasses.origin); var handle = addNodeTo(origin, options.cssClasses.handle); + handle.setAttribute('data-handle', handleNumber); if ( handleNumber === 0 ) { From 727fbfca528528d0e6acb4dc31bd037b1b9683a4 Mon Sep 17 00:00:00 2001 From: Leon Gersen Date: Sat, 10 Dec 2016 15:38:32 +0100 Subject: [PATCH 13/17] Fixed #736 --- src/js/range.js | 2 +- tests/slider.html | 1 + tests/slider_step_margin.js | 22 ++++++++++++++++++++++ 3 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 tests/slider_step_margin.js diff --git a/src/js/range.js b/src/js/range.js index 0eea18f2..85b4eef9 100644 --- a/src/js/range.js +++ b/src/js/range.js @@ -229,7 +229,7 @@ var step = this.xNumSteps[0]; - if ( step && (value % step) ) { + if ( step && ((value / step) % 1) !== 0 ) { throw new Error("noUiSlider: 'limit' and 'margin' must be divisible by step."); } diff --git a/tests/slider.html b/tests/slider.html index 944bcdad..48c4e59e 100644 --- a/tests/slider.html +++ b/tests/slider.html @@ -53,6 +53,7 @@ + diff --git a/tests/slider_step_margin.js b/tests/slider_step_margin.js new file mode 100644 index 00000000..bd053e83 --- /dev/null +++ b/tests/slider_step_margin.js @@ -0,0 +1,22 @@ + + QUnit.test( "Margin divisible by step", function( assert ){ + + expect(0); + + Q.innerHTML = '
'; + + var settings = { + start: 10, + margin: 5, + step: 0.2, + range: { + 'min': 1, + 'max': 100 + } + }; + + var slider = Q.querySelector('.slider'); + + // Should not throw on divisibility + noUiSlider.create(slider, settings); + }); From 00abd1642273301b23c8c0ce86f84689dc81b6e1 Mon Sep 17 00:00:00 2001 From: Leon Gersen Date: Sat, 10 Dec 2016 15:51:05 +0100 Subject: [PATCH 14/17] Fix typo in new docs --- documentation/slider-options/padding-link.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/documentation/slider-options/padding-link.js b/documentation/slider-options/padding-link.js index ec523390..82148697 100644 --- a/documentation/slider-options/padding-link.js +++ b/documentation/slider-options/padding-link.js @@ -3,8 +3,8 @@ var paddingMin = document.getElementById('slider-padding-value-min'), paddingSlider.noUiSlider.on('update', function ( values, handle ) { if ( handle ) { - marginMax.innerHTML = values[handle]; + paddingMax.innerHTML = values[handle]; } else { - marginMin.innerHTML = values[handle]; + paddingMin.innerHTML = values[handle]; } }); From 210addba68cfb4799f2ba08213ee69ad12310202 Mon Sep 17 00:00:00 2001 From: Leon Gersen Date: Sat, 10 Dec 2016 15:57:57 +0100 Subject: [PATCH 15/17] run tests --- tests/slider.html | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/slider.html b/tests/slider.html index 48c4e59e..ddf8faeb 100644 --- a/tests/slider.html +++ b/tests/slider.html @@ -58,6 +58,7 @@ + From e8772763d524ae0f5c350a31e876384aa5d4bfdb Mon Sep 17 00:00:00 2001 From: Leon Gersen Date: Sat, 10 Dec 2016 15:58:08 +0100 Subject: [PATCH 16/17] Don't include source in zip --- Gruntfile.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index b05ef950..50bc7641 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -26,8 +26,7 @@ module.exports = function(grunt) { } var releaseFiles = [ - { src: ['**/*'], dest: '', cwd: 'distribute/', expand: true }, - { src: ['**/*.css'], dest: '', cwd: 'src/', expand: true } + { src: ['**/*'], dest: '', cwd: 'distribute/', expand: true } ]; grunt.initConfig({ From 6d0924cd993319dbeac26a4bd9848cedfb01e6a8 Mon Sep 17 00:00:00 2001 From: Leon Gersen Date: Sat, 10 Dec 2016 16:00:05 +0100 Subject: [PATCH 17/17] Update supporting files --- README.md | 11 +++++++++++ documentation/download.php | 2 +- package.json | 2 +- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index cbec0ada..0bfe655e 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,17 @@ An extensive documentation, including **examples**, **options** and **configurat Changelog --------- + +### 9.1.0 (*2016-12-10*) +- Fixed: Slider not properly handling multitouch (#700, #704); +- Fixed: Removed a querySelector for the currently active handle (#720); +- Fixed: Removed iOS/webkit flashes on tap; +- Fixed: Incorrect error when using margin/limit with a step smaller than 0 (#736); +- Fixed: Drag option using incorrect cursor arrows (#681); +- Added: New `padding` option (#711); +- Added: Re-introduced `.noUi-handle-lower` and `.noUi-handle-upper` classes removed in 9.0.0; +- Added: Compatibility for legacy `connect` options removed in 9.0.0; + ### 9.0.0 (*2016-09-26*) - Added: Support for **more than 2 handles**; - Added: `format` option can be updated (#641); diff --git a/documentation/download.php b/documentation/download.php index c4b67164..7a1eecc4 100644 --- a/documentation/download.php +++ b/documentation/download.php @@ -11,7 +11,7 @@

noUiSlider is open source, and you can use it for free in any personal or commercial product. No attribution required. Both the uncompressed and compressed version of noUiSlider are available in a .zip release, which is hosted by Github and available over https.

- Download noUiSlider from Github + Download noUiSlider from Github