perfect-scrollbar-rails 0.6.10 → 0.6.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Dockerfile +12 -10
- data/lib/perfect-scrollbar-rails/version.rb +1 -1
- data/vendor/assets/javascripts/perfect-scrollbar.js +214 -207
- data/vendor/assets/stylesheets/perfect-scrollbar.css +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e677c5940a6525915079cc912e854b0a70970a57
|
4
|
+
data.tar.gz: 8420d99bc40abbe20fe93313ae262ebd32685bb7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 164c232f28a1944cb34941545dbbd5c0d642cc20c1dfae0917b375fa1fbff91dd2dcd30f26ff226d39592f0453702eea22daa392fb6f24dd83776523ca2aaeb9
|
7
|
+
data.tar.gz: eeb2ca8b6c5bb90adaeab430b9779e43982cf532d3d6da5de42f915b4d31e3d84be94a5ccae1b90cfdf93f9c98a580bcf8b1af4cbb23b7ee51a629fd60d0c51b
|
data/Dockerfile
CHANGED
@@ -5,28 +5,30 @@
|
|
5
5
|
|
6
6
|
# ~~~~ Image base ~~~~
|
7
7
|
# Base image with the latest Ruby only
|
8
|
-
FROM ruby:2.3.0
|
8
|
+
FROM ruby:2.3.0-slim
|
9
9
|
MAINTAINER Guillaume Hain zedtux@zedroot.org
|
10
10
|
|
11
11
|
|
12
12
|
# ~~~~ Set up the environment ~~~~
|
13
13
|
ENV DEBIAN_FRONTEND noninteractive
|
14
14
|
|
15
|
-
|
16
|
-
|
15
|
+
RUN mkdir -p /gem/
|
16
|
+
WORKDIR /gem/
|
17
|
+
ADD . /gem/
|
17
18
|
|
18
|
-
# ~~~~ Rails Preparation ~~~~
|
19
|
+
# ~~~~ OS Maintenance & Rails Preparation ~~~~
|
19
20
|
# Rubygems and Bundler
|
20
|
-
RUN
|
21
|
+
RUN apt-get update && \
|
22
|
+
apt-get install -y git build-essential unzip && \
|
23
|
+
touch ~/.gemrc && \
|
21
24
|
echo "gem: --no-ri --no-rdoc" >> ~/.gemrc && \
|
22
25
|
gem install rubygems-update && \
|
23
26
|
update_rubygems && \
|
24
27
|
gem install bundler && \
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
RUN bundle install
|
28
|
+
bundle install && \
|
29
|
+
apt-get remove --purge -y build-essential && \
|
30
|
+
apt-get autoclean -y && \
|
31
|
+
apt-get clean
|
30
32
|
|
31
33
|
# Import the gem source code
|
32
34
|
VOLUME .:/gem/
|
@@ -1,9 +1,9 @@
|
|
1
|
-
/* perfect-scrollbar v0.6.
|
1
|
+
/* perfect-scrollbar v0.6.11 */
|
2
2
|
(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
|
3
3
|
'use strict';
|
4
4
|
|
5
|
-
var ps = require('../main')
|
6
|
-
|
5
|
+
var ps = require('../main');
|
6
|
+
var psInstances = require('../plugin/instances');
|
7
7
|
|
8
8
|
function mountJQuery(jQuery) {
|
9
9
|
jQuery.fn.perfectScrollbar = function (settingOrCommand) {
|
@@ -26,8 +26,6 @@ function mountJQuery(jQuery) {
|
|
26
26
|
ps.destroy(this);
|
27
27
|
}
|
28
28
|
}
|
29
|
-
|
30
|
-
return jQuery(this);
|
31
29
|
});
|
32
30
|
};
|
33
31
|
}
|
@@ -265,20 +263,22 @@ module.exports = (function () {
|
|
265
263
|
},{}],6:[function(require,module,exports){
|
266
264
|
'use strict';
|
267
265
|
|
268
|
-
var cls = require('./class')
|
269
|
-
|
266
|
+
var cls = require('./class');
|
267
|
+
var dom = require('./dom');
|
270
268
|
|
271
|
-
exports.toInt = function (x) {
|
269
|
+
var toInt = exports.toInt = function (x) {
|
272
270
|
return parseInt(x, 10) || 0;
|
273
271
|
};
|
274
272
|
|
275
|
-
exports.clone = function (obj) {
|
273
|
+
var clone = exports.clone = function (obj) {
|
276
274
|
if (obj === null) {
|
277
275
|
return null;
|
276
|
+
} else if (obj.constructor === Array) {
|
277
|
+
return obj.map(clone);
|
278
278
|
} else if (typeof obj === 'object') {
|
279
279
|
var result = {};
|
280
280
|
for (var key in obj) {
|
281
|
-
result[key] =
|
281
|
+
result[key] = clone(obj[key]);
|
282
282
|
}
|
283
283
|
return result;
|
284
284
|
} else {
|
@@ -287,18 +287,18 @@ exports.clone = function (obj) {
|
|
287
287
|
};
|
288
288
|
|
289
289
|
exports.extend = function (original, source) {
|
290
|
-
var result =
|
290
|
+
var result = clone(original);
|
291
291
|
for (var key in source) {
|
292
|
-
result[key] =
|
292
|
+
result[key] = clone(source[key]);
|
293
293
|
}
|
294
294
|
return result;
|
295
295
|
};
|
296
296
|
|
297
297
|
exports.isEditable = function (el) {
|
298
|
-
return
|
299
|
-
|
300
|
-
|
301
|
-
|
298
|
+
return dom.matches(el, "input,[contenteditable]") ||
|
299
|
+
dom.matches(el, "select,[contenteditable]") ||
|
300
|
+
dom.matches(el, "textarea,[contenteditable]") ||
|
301
|
+
dom.matches(el, "button,[contenteditable]");
|
302
302
|
};
|
303
303
|
|
304
304
|
exports.removePsClasses = function (element) {
|
@@ -312,11 +312,11 @@ exports.removePsClasses = function (element) {
|
|
312
312
|
};
|
313
313
|
|
314
314
|
exports.outerWidth = function (element) {
|
315
|
-
return
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
315
|
+
return toInt(dom.css(element, 'width')) +
|
316
|
+
toInt(dom.css(element, 'paddingLeft')) +
|
317
|
+
toInt(dom.css(element, 'paddingRight')) +
|
318
|
+
toInt(dom.css(element, 'borderLeftWidth')) +
|
319
|
+
toInt(dom.css(element, 'borderRightWidth'));
|
320
320
|
};
|
321
321
|
|
322
322
|
exports.startScrolling = function (element, axis) {
|
@@ -348,9 +348,9 @@ exports.env = {
|
|
348
348
|
},{"./class":2,"./dom":3}],7:[function(require,module,exports){
|
349
349
|
'use strict';
|
350
350
|
|
351
|
-
var destroy = require('./plugin/destroy')
|
352
|
-
|
353
|
-
|
351
|
+
var destroy = require('./plugin/destroy');
|
352
|
+
var initialize = require('./plugin/initialize');
|
353
|
+
var update = require('./plugin/update');
|
354
354
|
|
355
355
|
module.exports = {
|
356
356
|
initialize: initialize,
|
@@ -362,6 +362,7 @@ module.exports = {
|
|
362
362
|
'use strict';
|
363
363
|
|
364
364
|
module.exports = {
|
365
|
+
handlers: ['click-rail', 'drag-scrollbar', 'keyboard', 'wheel', 'touch'],
|
365
366
|
maxScrollbarLength: null,
|
366
367
|
minScrollbarLength: null,
|
367
368
|
scrollXMarginOffset: 0,
|
@@ -371,8 +372,6 @@ module.exports = {
|
|
371
372
|
suppressScrollY: false,
|
372
373
|
swipePropagation: true,
|
373
374
|
useBothWheelAxes: false,
|
374
|
-
useKeyboard: true,
|
375
|
-
useSelectionScroll: false,
|
376
375
|
wheelPropagation: false,
|
377
376
|
wheelSpeed: 1,
|
378
377
|
theme: 'default'
|
@@ -381,9 +380,9 @@ module.exports = {
|
|
381
380
|
},{}],9:[function(require,module,exports){
|
382
381
|
'use strict';
|
383
382
|
|
384
|
-
var
|
385
|
-
|
386
|
-
|
383
|
+
var _ = require('../lib/helper');
|
384
|
+
var dom = require('../lib/dom');
|
385
|
+
var instances = require('./instances');
|
387
386
|
|
388
387
|
module.exports = function (element) {
|
389
388
|
var i = instances.get(element);
|
@@ -393,11 +392,11 @@ module.exports = function (element) {
|
|
393
392
|
}
|
394
393
|
|
395
394
|
i.event.unbindAll();
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
395
|
+
dom.remove(i.scrollbarX);
|
396
|
+
dom.remove(i.scrollbarY);
|
397
|
+
dom.remove(i.scrollbarXRail);
|
398
|
+
dom.remove(i.scrollbarYRail);
|
399
|
+
_.removePsClasses(element);
|
401
400
|
|
402
401
|
instances.remove(element);
|
403
402
|
};
|
@@ -405,22 +404,22 @@ module.exports = function (element) {
|
|
405
404
|
},{"../lib/dom":3,"../lib/helper":6,"./instances":18}],10:[function(require,module,exports){
|
406
405
|
'use strict';
|
407
406
|
|
408
|
-
var
|
409
|
-
|
410
|
-
|
411
|
-
|
407
|
+
var _ = require('../../lib/helper');
|
408
|
+
var instances = require('../instances');
|
409
|
+
var updateGeometry = require('../update-geometry');
|
410
|
+
var updateScroll = require('../update-scroll');
|
412
411
|
|
413
412
|
function bindClickRailHandler(element, i) {
|
414
413
|
function pageOffset(el) {
|
415
414
|
return el.getBoundingClientRect();
|
416
415
|
}
|
417
|
-
var stopPropagation =
|
416
|
+
var stopPropagation = function (e) { e.stopPropagation(); };
|
418
417
|
|
419
418
|
if (i.settings.stopPropagationOnClick) {
|
420
419
|
i.event.bind(i.scrollbarY, 'click', stopPropagation);
|
421
420
|
}
|
422
421
|
i.event.bind(i.scrollbarYRail, 'click', function (e) {
|
423
|
-
var halfOfScrollbarLength =
|
422
|
+
var halfOfScrollbarLength = _.toInt(i.scrollbarYHeight / 2);
|
424
423
|
var positionTop = i.railYRatio * (e.pageY - window.pageYOffset - pageOffset(i.scrollbarYRail).top - halfOfScrollbarLength);
|
425
424
|
var maxPositionTop = i.railYRatio * (i.railYHeight - i.scrollbarYHeight);
|
426
425
|
var positionRatio = positionTop / maxPositionTop;
|
@@ -441,7 +440,7 @@ function bindClickRailHandler(element, i) {
|
|
441
440
|
i.event.bind(i.scrollbarX, 'click', stopPropagation);
|
442
441
|
}
|
443
442
|
i.event.bind(i.scrollbarXRail, 'click', function (e) {
|
444
|
-
var halfOfScrollbarLength =
|
443
|
+
var halfOfScrollbarLength = _.toInt(i.scrollbarXWidth / 2);
|
445
444
|
var positionLeft = i.railXRatio * (e.pageX - window.pageXOffset - pageOffset(i.scrollbarXRail).left - halfOfScrollbarLength);
|
446
445
|
var maxPositionLeft = i.railXRatio * (i.railXWidth - i.scrollbarXWidth);
|
447
446
|
var positionRatio = positionLeft / maxPositionLeft;
|
@@ -467,11 +466,11 @@ module.exports = function (element) {
|
|
467
466
|
},{"../../lib/helper":6,"../instances":18,"../update-geometry":19,"../update-scroll":20}],11:[function(require,module,exports){
|
468
467
|
'use strict';
|
469
468
|
|
470
|
-
var
|
471
|
-
|
472
|
-
|
473
|
-
|
474
|
-
|
469
|
+
var _ = require('../../lib/helper');
|
470
|
+
var dom = require('../../lib/dom');
|
471
|
+
var instances = require('../instances');
|
472
|
+
var updateGeometry = require('../update-geometry');
|
473
|
+
var updateScroll = require('../update-scroll');
|
475
474
|
|
476
475
|
function bindMouseScrollXHandler(element, i) {
|
477
476
|
var currentLeft = null;
|
@@ -489,7 +488,7 @@ function bindMouseScrollXHandler(element, i) {
|
|
489
488
|
i.scrollbarXLeft = newLeft;
|
490
489
|
}
|
491
490
|
|
492
|
-
var scrollLeft =
|
491
|
+
var scrollLeft = _.toInt(i.scrollbarXLeft * (i.contentWidth - i.containerWidth) / (i.containerWidth - (i.railXRatio * i.scrollbarXWidth))) - i.negativeScrollAdjustment;
|
493
492
|
updateScroll(element, 'left', scrollLeft);
|
494
493
|
}
|
495
494
|
|
@@ -501,14 +500,14 @@ function bindMouseScrollXHandler(element, i) {
|
|
501
500
|
};
|
502
501
|
|
503
502
|
var mouseUpHandler = function () {
|
504
|
-
|
503
|
+
_.stopScrolling(element, 'x');
|
505
504
|
i.event.unbind(i.ownerDocument, 'mousemove', mouseMoveHandler);
|
506
505
|
};
|
507
506
|
|
508
507
|
i.event.bind(i.scrollbarX, 'mousedown', function (e) {
|
509
508
|
currentPageX = e.pageX;
|
510
|
-
currentLeft =
|
511
|
-
|
509
|
+
currentLeft = _.toInt(dom.css(i.scrollbarX, 'left')) * i.railXRatio;
|
510
|
+
_.startScrolling(element, 'x');
|
512
511
|
|
513
512
|
i.event.bind(i.ownerDocument, 'mousemove', mouseMoveHandler);
|
514
513
|
i.event.once(i.ownerDocument, 'mouseup', mouseUpHandler);
|
@@ -534,7 +533,7 @@ function bindMouseScrollYHandler(element, i) {
|
|
534
533
|
i.scrollbarYTop = newTop;
|
535
534
|
}
|
536
535
|
|
537
|
-
var scrollTop =
|
536
|
+
var scrollTop = _.toInt(i.scrollbarYTop * (i.contentHeight - i.containerHeight) / (i.containerHeight - (i.railYRatio * i.scrollbarYHeight)));
|
538
537
|
updateScroll(element, 'top', scrollTop);
|
539
538
|
}
|
540
539
|
|
@@ -546,14 +545,14 @@ function bindMouseScrollYHandler(element, i) {
|
|
546
545
|
};
|
547
546
|
|
548
547
|
var mouseUpHandler = function () {
|
549
|
-
|
548
|
+
_.stopScrolling(element, 'y');
|
550
549
|
i.event.unbind(i.ownerDocument, 'mousemove', mouseMoveHandler);
|
551
550
|
};
|
552
551
|
|
553
552
|
i.event.bind(i.scrollbarY, 'mousedown', function (e) {
|
554
553
|
currentPageY = e.pageY;
|
555
|
-
currentTop =
|
556
|
-
|
554
|
+
currentTop = _.toInt(dom.css(i.scrollbarY, 'top')) * i.railYRatio;
|
555
|
+
_.startScrolling(element, 'y');
|
557
556
|
|
558
557
|
i.event.bind(i.ownerDocument, 'mousemove', mouseMoveHandler);
|
559
558
|
i.event.once(i.ownerDocument, 'mouseup', mouseUpHandler);
|
@@ -572,11 +571,11 @@ module.exports = function (element) {
|
|
572
571
|
},{"../../lib/dom":3,"../../lib/helper":6,"../instances":18,"../update-geometry":19,"../update-scroll":20}],12:[function(require,module,exports){
|
573
572
|
'use strict';
|
574
573
|
|
575
|
-
var
|
576
|
-
|
577
|
-
|
578
|
-
|
579
|
-
|
574
|
+
var _ = require('../../lib/helper');
|
575
|
+
var dom = require('../../lib/dom');
|
576
|
+
var instances = require('../instances');
|
577
|
+
var updateGeometry = require('../update-geometry');
|
578
|
+
var updateScroll = require('../update-scroll');
|
580
579
|
|
581
580
|
function bindKeyboardHandler(element, i) {
|
582
581
|
var hovered = false;
|
@@ -616,8 +615,8 @@ function bindKeyboardHandler(element, i) {
|
|
616
615
|
return;
|
617
616
|
}
|
618
617
|
|
619
|
-
var focused =
|
620
|
-
|
618
|
+
var focused = dom.matches(i.scrollbarX, ':focus') ||
|
619
|
+
dom.matches(i.scrollbarY, ':focus');
|
621
620
|
|
622
621
|
if (!hovered && !focused) {
|
623
622
|
return;
|
@@ -625,11 +624,15 @@ function bindKeyboardHandler(element, i) {
|
|
625
624
|
|
626
625
|
var activeElement = document.activeElement ? document.activeElement : i.ownerDocument.activeElement;
|
627
626
|
if (activeElement) {
|
628
|
-
|
629
|
-
|
630
|
-
|
627
|
+
if (activeElement.tagName === 'IFRAME') {
|
628
|
+
activeElement = activeElement.contentDocument.activeElement;
|
629
|
+
} else {
|
630
|
+
// go deeper if element is a webcomponent
|
631
|
+
while (activeElement.shadowRoot) {
|
632
|
+
activeElement = activeElement.shadowRoot.activeElement;
|
633
|
+
}
|
631
634
|
}
|
632
|
-
if (
|
635
|
+
if (_.isEditable(activeElement)) {
|
633
636
|
return;
|
634
637
|
}
|
635
638
|
}
|
@@ -700,9 +703,9 @@ module.exports = function (element) {
|
|
700
703
|
},{"../../lib/dom":3,"../../lib/helper":6,"../instances":18,"../update-geometry":19,"../update-scroll":20}],13:[function(require,module,exports){
|
701
704
|
'use strict';
|
702
705
|
|
703
|
-
var instances = require('../instances')
|
704
|
-
|
705
|
-
|
706
|
+
var instances = require('../instances');
|
707
|
+
var updateGeometry = require('../update-geometry');
|
708
|
+
var updateScroll = require('../update-scroll');
|
706
709
|
|
707
710
|
function bindMouseWheelHandler(element, i) {
|
708
711
|
var shouldPrevent = false;
|
@@ -755,20 +758,22 @@ function bindMouseWheelHandler(element, i) {
|
|
755
758
|
return [deltaX, deltaY];
|
756
759
|
}
|
757
760
|
|
758
|
-
function
|
759
|
-
var
|
760
|
-
if (
|
761
|
-
|
761
|
+
function shouldBeConsumedByChild(deltaX, deltaY) {
|
762
|
+
var child = element.querySelector('textarea:hover, .ps-child:hover');
|
763
|
+
if (child) {
|
764
|
+
if (child.tagName !== 'TEXTAREA' && !window.getComputedStyle(child).overflow.match(/(scroll|auto)/)) {
|
765
|
+
return false;
|
766
|
+
}
|
767
|
+
|
768
|
+
var maxScrollTop = child.scrollHeight - child.clientHeight;
|
762
769
|
if (maxScrollTop > 0) {
|
763
|
-
if (!(
|
764
|
-
!(hoveredTextarea.scrollTop === maxScrollTop && deltaY < 0)) {
|
770
|
+
if (!(child.scrollTop === 0 && deltaY > 0) && !(child.scrollTop === maxScrollTop && deltaY < 0)) {
|
765
771
|
return true;
|
766
772
|
}
|
767
773
|
}
|
768
|
-
var maxScrollLeft =
|
774
|
+
var maxScrollLeft = child.scrollLeft - child.clientWidth;
|
769
775
|
if (maxScrollLeft > 0) {
|
770
|
-
if (!(
|
771
|
-
!(hoveredTextarea.scrollLeft === maxScrollLeft && deltaX > 0)) {
|
776
|
+
if (!(child.scrollLeft === 0 && deltaX < 0) && !(child.scrollLeft === maxScrollLeft && deltaX > 0)) {
|
772
777
|
return true;
|
773
778
|
}
|
774
779
|
}
|
@@ -782,7 +787,7 @@ function bindMouseWheelHandler(element, i) {
|
|
782
787
|
var deltaX = delta[0];
|
783
788
|
var deltaY = delta[1];
|
784
789
|
|
785
|
-
if (
|
790
|
+
if (shouldBeConsumedByChild(deltaX, deltaY)) {
|
786
791
|
return;
|
787
792
|
}
|
788
793
|
|
@@ -836,8 +841,8 @@ module.exports = function (element) {
|
|
836
841
|
},{"../instances":18,"../update-geometry":19,"../update-scroll":20}],14:[function(require,module,exports){
|
837
842
|
'use strict';
|
838
843
|
|
839
|
-
var instances = require('../instances')
|
840
|
-
|
844
|
+
var instances = require('../instances');
|
845
|
+
var updateGeometry = require('../update-geometry');
|
841
846
|
|
842
847
|
function bindNativeScrollHandler(element, i) {
|
843
848
|
i.event.bind(element, 'scroll', function () {
|
@@ -853,10 +858,10 @@ module.exports = function (element) {
|
|
853
858
|
},{"../instances":18,"../update-geometry":19}],15:[function(require,module,exports){
|
854
859
|
'use strict';
|
855
860
|
|
856
|
-
var
|
857
|
-
|
858
|
-
|
859
|
-
|
861
|
+
var _ = require('../../lib/helper');
|
862
|
+
var instances = require('../instances');
|
863
|
+
var updateGeometry = require('../update-geometry');
|
864
|
+
var updateScroll = require('../update-scroll');
|
860
865
|
|
861
866
|
function bindSelectionHandler(element, i) {
|
862
867
|
function getRangeNode() {
|
@@ -890,7 +895,7 @@ function bindSelectionHandler(element, i) {
|
|
890
895
|
clearInterval(scrollingLoop);
|
891
896
|
scrollingLoop = null;
|
892
897
|
}
|
893
|
-
|
898
|
+
_.stopScrolling(element);
|
894
899
|
}
|
895
900
|
|
896
901
|
var isSelected = false;
|
@@ -921,10 +926,10 @@ function bindSelectionHandler(element, i) {
|
|
921
926
|
|
922
927
|
if (mousePosition.x < containerGeometry.left + 3) {
|
923
928
|
scrollDiff.left = -5;
|
924
|
-
|
929
|
+
_.startScrolling(element, 'x');
|
925
930
|
} else if (mousePosition.x > containerGeometry.right - 3) {
|
926
931
|
scrollDiff.left = 5;
|
927
|
-
|
932
|
+
_.startScrolling(element, 'x');
|
928
933
|
} else {
|
929
934
|
scrollDiff.left = 0;
|
930
935
|
}
|
@@ -935,14 +940,14 @@ function bindSelectionHandler(element, i) {
|
|
935
940
|
} else {
|
936
941
|
scrollDiff.top = -20;
|
937
942
|
}
|
938
|
-
|
943
|
+
_.startScrolling(element, 'y');
|
939
944
|
} else if (mousePosition.y > containerGeometry.bottom - 3) {
|
940
945
|
if (mousePosition.y - containerGeometry.bottom + 3 < 5) {
|
941
946
|
scrollDiff.top = 5;
|
942
947
|
} else {
|
943
948
|
scrollDiff.top = 20;
|
944
949
|
}
|
945
|
-
|
950
|
+
_.startScrolling(element, 'y');
|
946
951
|
} else {
|
947
952
|
scrollDiff.top = 0;
|
948
953
|
}
|
@@ -964,9 +969,10 @@ module.exports = function (element) {
|
|
964
969
|
},{"../../lib/helper":6,"../instances":18,"../update-geometry":19,"../update-scroll":20}],16:[function(require,module,exports){
|
965
970
|
'use strict';
|
966
971
|
|
967
|
-
var
|
968
|
-
|
969
|
-
|
972
|
+
var _ = require('../../lib/helper');
|
973
|
+
var instances = require('../instances');
|
974
|
+
var updateGeometry = require('../update-geometry');
|
975
|
+
var updateScroll = require('../update-scroll');
|
970
976
|
|
971
977
|
function bindTouchHandler(element, i, supportsTouch, supportsIePointer) {
|
972
978
|
function shouldPreventDefault(deltaX, deltaY) {
|
@@ -1051,6 +1057,9 @@ function bindTouchHandler(element, i, supportsTouch, supportsIePointer) {
|
|
1051
1057
|
}
|
1052
1058
|
}
|
1053
1059
|
function touchMove(e) {
|
1060
|
+
if (!inLocalTouch && i.settings.swipePropagation) {
|
1061
|
+
touchStart(e);
|
1062
|
+
}
|
1054
1063
|
if (!inGlobalTouch && inLocalTouch && shouldHandle(e)) {
|
1055
1064
|
var touch = getTouch(e);
|
1056
1065
|
|
@@ -1126,27 +1135,33 @@ function bindTouchHandler(element, i, supportsTouch, supportsIePointer) {
|
|
1126
1135
|
}
|
1127
1136
|
}
|
1128
1137
|
|
1129
|
-
module.exports = function (element
|
1138
|
+
module.exports = function (element) {
|
1139
|
+
if (!_.env.supportsTouch && !_.env.supportsIePointer) {
|
1140
|
+
return;
|
1141
|
+
}
|
1142
|
+
|
1130
1143
|
var i = instances.get(element);
|
1131
|
-
bindTouchHandler(element, i, supportsTouch, supportsIePointer);
|
1144
|
+
bindTouchHandler(element, i, _.env.supportsTouch, _.env.supportsIePointer);
|
1132
1145
|
};
|
1133
1146
|
|
1134
|
-
},{"../instances":18,"../update-geometry":19,"../update-scroll":20}],17:[function(require,module,exports){
|
1147
|
+
},{"../../lib/helper":6,"../instances":18,"../update-geometry":19,"../update-scroll":20}],17:[function(require,module,exports){
|
1135
1148
|
'use strict';
|
1136
1149
|
|
1137
|
-
var
|
1138
|
-
|
1139
|
-
|
1140
|
-
|
1150
|
+
var _ = require('../lib/helper');
|
1151
|
+
var cls = require('../lib/class');
|
1152
|
+
var instances = require('./instances');
|
1153
|
+
var updateGeometry = require('./update-geometry');
|
1141
1154
|
|
1142
1155
|
// Handlers
|
1143
|
-
var
|
1144
|
-
|
1145
|
-
|
1146
|
-
|
1147
|
-
|
1148
|
-
|
1149
|
-
|
1156
|
+
var handlers = {
|
1157
|
+
'click-rail': require('./handler/click-rail'),
|
1158
|
+
'drag-scrollbar': require('./handler/drag-scrollbar'),
|
1159
|
+
'keyboard': require('./handler/keyboard'),
|
1160
|
+
'wheel': require('./handler/mouse-wheel'),
|
1161
|
+
'touch': require('./handler/touch'),
|
1162
|
+
'selection': require('./handler/selection')
|
1163
|
+
};
|
1164
|
+
var nativeScrollHandler = require('./handler/native-scroll');
|
1150
1165
|
|
1151
1166
|
module.exports = function (element, userSettings) {
|
1152
1167
|
userSettings = typeof userSettings === 'object' ? userSettings : {};
|
@@ -1156,24 +1171,14 @@ module.exports = function (element, userSettings) {
|
|
1156
1171
|
// Create a plugin instance.
|
1157
1172
|
var i = instances.add(element);
|
1158
1173
|
|
1159
|
-
i.settings =
|
1174
|
+
i.settings = _.extend(i.settings, userSettings);
|
1160
1175
|
cls.add(element, 'ps-theme-' + i.settings.theme);
|
1161
1176
|
|
1162
|
-
|
1163
|
-
|
1164
|
-
|
1165
|
-
nativeScrollHandler(element);
|
1166
|
-
|
1167
|
-
if (i.settings.useSelectionScroll) {
|
1168
|
-
selectionHandler(element);
|
1169
|
-
}
|
1177
|
+
i.settings.handlers.forEach(function (handlerName) {
|
1178
|
+
handlers[handlerName](element);
|
1179
|
+
});
|
1170
1180
|
|
1171
|
-
|
1172
|
-
touchHandler(element, h.env.supportsTouch, h.env.supportsIePointer);
|
1173
|
-
}
|
1174
|
-
if (i.settings.useKeyboard) {
|
1175
|
-
keyboardHandler(element);
|
1176
|
-
}
|
1181
|
+
nativeScrollHandler(element);
|
1177
1182
|
|
1178
1183
|
updateGeometry(element);
|
1179
1184
|
};
|
@@ -1181,25 +1186,25 @@ module.exports = function (element, userSettings) {
|
|
1181
1186
|
},{"../lib/class":2,"../lib/helper":6,"./handler/click-rail":10,"./handler/drag-scrollbar":11,"./handler/keyboard":12,"./handler/mouse-wheel":13,"./handler/native-scroll":14,"./handler/selection":15,"./handler/touch":16,"./instances":18,"./update-geometry":19}],18:[function(require,module,exports){
|
1182
1187
|
'use strict';
|
1183
1188
|
|
1184
|
-
var
|
1185
|
-
|
1186
|
-
|
1187
|
-
|
1188
|
-
|
1189
|
-
|
1189
|
+
var _ = require('../lib/helper');
|
1190
|
+
var cls = require('../lib/class');
|
1191
|
+
var defaultSettings = require('./default-setting');
|
1192
|
+
var dom = require('../lib/dom');
|
1193
|
+
var EventManager = require('../lib/event-manager');
|
1194
|
+
var guid = require('../lib/guid');
|
1190
1195
|
|
1191
1196
|
var instances = {};
|
1192
1197
|
|
1193
1198
|
function Instance(element) {
|
1194
1199
|
var i = this;
|
1195
1200
|
|
1196
|
-
i.settings =
|
1201
|
+
i.settings = _.clone(defaultSettings);
|
1197
1202
|
i.containerWidth = null;
|
1198
1203
|
i.containerHeight = null;
|
1199
1204
|
i.contentWidth = null;
|
1200
1205
|
i.contentHeight = null;
|
1201
1206
|
|
1202
|
-
i.isRtl =
|
1207
|
+
i.isRtl = dom.css(element, 'direction') === "rtl";
|
1203
1208
|
i.isNegativeScroll = (function () {
|
1204
1209
|
var originalScrollLeft = element.scrollLeft;
|
1205
1210
|
var result = null;
|
@@ -1220,67 +1225,55 @@ function Instance(element) {
|
|
1220
1225
|
cls.remove(element, 'ps-focus');
|
1221
1226
|
}
|
1222
1227
|
|
1223
|
-
i.scrollbarXRail =
|
1224
|
-
i.scrollbarX =
|
1228
|
+
i.scrollbarXRail = dom.appendTo(dom.e('div', 'ps-scrollbar-x-rail'), element);
|
1229
|
+
i.scrollbarX = dom.appendTo(dom.e('div', 'ps-scrollbar-x'), i.scrollbarXRail);
|
1225
1230
|
i.scrollbarX.setAttribute('tabindex', 0);
|
1226
1231
|
i.event.bind(i.scrollbarX, 'focus', focus);
|
1227
1232
|
i.event.bind(i.scrollbarX, 'blur', blur);
|
1228
1233
|
i.scrollbarXActive = null;
|
1229
1234
|
i.scrollbarXWidth = null;
|
1230
1235
|
i.scrollbarXLeft = null;
|
1231
|
-
i.scrollbarXBottom =
|
1236
|
+
i.scrollbarXBottom = _.toInt(dom.css(i.scrollbarXRail, 'bottom'));
|
1232
1237
|
i.isScrollbarXUsingBottom = i.scrollbarXBottom === i.scrollbarXBottom; // !isNaN
|
1233
|
-
i.scrollbarXTop = i.isScrollbarXUsingBottom ? null :
|
1234
|
-
i.railBorderXWidth =
|
1238
|
+
i.scrollbarXTop = i.isScrollbarXUsingBottom ? null : _.toInt(dom.css(i.scrollbarXRail, 'top'));
|
1239
|
+
i.railBorderXWidth = _.toInt(dom.css(i.scrollbarXRail, 'borderLeftWidth')) + _.toInt(dom.css(i.scrollbarXRail, 'borderRightWidth'));
|
1235
1240
|
// Set rail to display:block to calculate margins
|
1236
|
-
|
1237
|
-
i.railXMarginWidth =
|
1238
|
-
|
1241
|
+
dom.css(i.scrollbarXRail, 'display', 'block');
|
1242
|
+
i.railXMarginWidth = _.toInt(dom.css(i.scrollbarXRail, 'marginLeft')) + _.toInt(dom.css(i.scrollbarXRail, 'marginRight'));
|
1243
|
+
dom.css(i.scrollbarXRail, 'display', '');
|
1239
1244
|
i.railXWidth = null;
|
1240
1245
|
i.railXRatio = null;
|
1241
1246
|
|
1242
|
-
i.scrollbarYRail =
|
1243
|
-
i.scrollbarY =
|
1247
|
+
i.scrollbarYRail = dom.appendTo(dom.e('div', 'ps-scrollbar-y-rail'), element);
|
1248
|
+
i.scrollbarY = dom.appendTo(dom.e('div', 'ps-scrollbar-y'), i.scrollbarYRail);
|
1244
1249
|
i.scrollbarY.setAttribute('tabindex', 0);
|
1245
1250
|
i.event.bind(i.scrollbarY, 'focus', focus);
|
1246
1251
|
i.event.bind(i.scrollbarY, 'blur', blur);
|
1247
1252
|
i.scrollbarYActive = null;
|
1248
1253
|
i.scrollbarYHeight = null;
|
1249
1254
|
i.scrollbarYTop = null;
|
1250
|
-
i.scrollbarYRight =
|
1255
|
+
i.scrollbarYRight = _.toInt(dom.css(i.scrollbarYRail, 'right'));
|
1251
1256
|
i.isScrollbarYUsingRight = i.scrollbarYRight === i.scrollbarYRight; // !isNaN
|
1252
|
-
i.scrollbarYLeft = i.isScrollbarYUsingRight ? null :
|
1253
|
-
i.scrollbarYOuterWidth = i.isRtl ?
|
1254
|
-
i.railBorderYWidth =
|
1255
|
-
|
1256
|
-
i.railYMarginHeight =
|
1257
|
-
|
1257
|
+
i.scrollbarYLeft = i.isScrollbarYUsingRight ? null : _.toInt(dom.css(i.scrollbarYRail, 'left'));
|
1258
|
+
i.scrollbarYOuterWidth = i.isRtl ? _.outerWidth(i.scrollbarY) : null;
|
1259
|
+
i.railBorderYWidth = _.toInt(dom.css(i.scrollbarYRail, 'borderTopWidth')) + _.toInt(dom.css(i.scrollbarYRail, 'borderBottomWidth'));
|
1260
|
+
dom.css(i.scrollbarYRail, 'display', 'block');
|
1261
|
+
i.railYMarginHeight = _.toInt(dom.css(i.scrollbarYRail, 'marginTop')) + _.toInt(dom.css(i.scrollbarYRail, 'marginBottom'));
|
1262
|
+
dom.css(i.scrollbarYRail, 'display', '');
|
1258
1263
|
i.railYHeight = null;
|
1259
1264
|
i.railYRatio = null;
|
1260
1265
|
}
|
1261
1266
|
|
1262
1267
|
function getId(element) {
|
1263
|
-
|
1264
|
-
return element.getAttribute('data-ps-id');
|
1265
|
-
} else {
|
1266
|
-
return element.dataset.psId;
|
1267
|
-
}
|
1268
|
+
return element.getAttribute('data-ps-id');
|
1268
1269
|
}
|
1269
1270
|
|
1270
1271
|
function setId(element, id) {
|
1271
|
-
|
1272
|
-
element.setAttribute('data-ps-id', id);
|
1273
|
-
} else {
|
1274
|
-
element.dataset.psId = id;
|
1275
|
-
}
|
1272
|
+
element.setAttribute('data-ps-id', id);
|
1276
1273
|
}
|
1277
1274
|
|
1278
1275
|
function removeId(element) {
|
1279
|
-
|
1280
|
-
element.removeAttribute('data-ps-id');
|
1281
|
-
} else {
|
1282
|
-
delete element.dataset.psId;
|
1283
|
-
}
|
1276
|
+
element.removeAttribute('data-ps-id');
|
1284
1277
|
}
|
1285
1278
|
|
1286
1279
|
exports.add = function (element) {
|
@@ -1302,11 +1295,11 @@ exports.get = function (element) {
|
|
1302
1295
|
},{"../lib/class":2,"../lib/dom":3,"../lib/event-manager":4,"../lib/guid":5,"../lib/helper":6,"./default-setting":8}],19:[function(require,module,exports){
|
1303
1296
|
'use strict';
|
1304
1297
|
|
1305
|
-
var
|
1306
|
-
|
1307
|
-
|
1308
|
-
|
1309
|
-
|
1298
|
+
var _ = require('../lib/helper');
|
1299
|
+
var cls = require('../lib/class');
|
1300
|
+
var dom = require('../lib/dom');
|
1301
|
+
var instances = require('./instances');
|
1302
|
+
var updateScroll = require('./update-scroll');
|
1310
1303
|
|
1311
1304
|
function getThumbSize(i, thumbSize) {
|
1312
1305
|
if (i.settings.minScrollbarLength) {
|
@@ -1330,7 +1323,7 @@ function updateCss(element, i) {
|
|
1330
1323
|
} else {
|
1331
1324
|
xRailOffset.top = i.scrollbarXTop + element.scrollTop;
|
1332
1325
|
}
|
1333
|
-
|
1326
|
+
dom.css(i.scrollbarXRail, xRailOffset);
|
1334
1327
|
|
1335
1328
|
var yRailOffset = {top: element.scrollTop, height: i.railYHeight};
|
1336
1329
|
if (i.isScrollbarYUsingRight) {
|
@@ -1346,10 +1339,10 @@ function updateCss(element, i) {
|
|
1346
1339
|
yRailOffset.left = i.scrollbarYLeft + element.scrollLeft;
|
1347
1340
|
}
|
1348
1341
|
}
|
1349
|
-
|
1342
|
+
dom.css(i.scrollbarYRail, yRailOffset);
|
1350
1343
|
|
1351
|
-
|
1352
|
-
|
1344
|
+
dom.css(i.scrollbarX, {left: i.scrollbarXLeft, width: i.scrollbarXWidth - i.railBorderXWidth});
|
1345
|
+
dom.css(i.scrollbarY, {top: i.scrollbarYTop, height: i.scrollbarYHeight - i.railBorderYWidth});
|
1353
1346
|
}
|
1354
1347
|
|
1355
1348
|
module.exports = function (element) {
|
@@ -1362,30 +1355,30 @@ module.exports = function (element) {
|
|
1362
1355
|
|
1363
1356
|
var existingRails;
|
1364
1357
|
if (!element.contains(i.scrollbarXRail)) {
|
1365
|
-
existingRails =
|
1358
|
+
existingRails = dom.queryChildren(element, '.ps-scrollbar-x-rail');
|
1366
1359
|
if (existingRails.length > 0) {
|
1367
1360
|
existingRails.forEach(function (rail) {
|
1368
|
-
|
1361
|
+
dom.remove(rail);
|
1369
1362
|
});
|
1370
1363
|
}
|
1371
|
-
|
1364
|
+
dom.appendTo(i.scrollbarXRail, element);
|
1372
1365
|
}
|
1373
1366
|
if (!element.contains(i.scrollbarYRail)) {
|
1374
|
-
existingRails =
|
1367
|
+
existingRails = dom.queryChildren(element, '.ps-scrollbar-y-rail');
|
1375
1368
|
if (existingRails.length > 0) {
|
1376
1369
|
existingRails.forEach(function (rail) {
|
1377
|
-
|
1370
|
+
dom.remove(rail);
|
1378
1371
|
});
|
1379
1372
|
}
|
1380
|
-
|
1373
|
+
dom.appendTo(i.scrollbarYRail, element);
|
1381
1374
|
}
|
1382
1375
|
|
1383
1376
|
if (!i.settings.suppressScrollX && i.containerWidth + i.settings.scrollXMarginOffset < i.contentWidth) {
|
1384
1377
|
i.scrollbarXActive = true;
|
1385
1378
|
i.railXWidth = i.containerWidth - i.railXMarginWidth;
|
1386
1379
|
i.railXRatio = i.containerWidth / i.railXWidth;
|
1387
|
-
i.scrollbarXWidth = getThumbSize(i,
|
1388
|
-
i.scrollbarXLeft =
|
1380
|
+
i.scrollbarXWidth = getThumbSize(i, _.toInt(i.railXWidth * i.containerWidth / i.contentWidth));
|
1381
|
+
i.scrollbarXLeft = _.toInt((i.negativeScrollAdjustment + element.scrollLeft) * (i.railXWidth - i.scrollbarXWidth) / (i.contentWidth - i.containerWidth));
|
1389
1382
|
} else {
|
1390
1383
|
i.scrollbarXActive = false;
|
1391
1384
|
}
|
@@ -1394,8 +1387,8 @@ module.exports = function (element) {
|
|
1394
1387
|
i.scrollbarYActive = true;
|
1395
1388
|
i.railYHeight = i.containerHeight - i.railYMarginHeight;
|
1396
1389
|
i.railYRatio = i.containerHeight / i.railYHeight;
|
1397
|
-
i.scrollbarYHeight = getThumbSize(i,
|
1398
|
-
i.scrollbarYTop =
|
1390
|
+
i.scrollbarYHeight = getThumbSize(i, _.toInt(i.railYHeight * i.containerHeight / i.contentHeight));
|
1391
|
+
i.scrollbarYTop = _.toInt(element.scrollTop * (i.railYHeight - i.scrollbarYHeight) / (i.contentHeight - i.containerHeight));
|
1399
1392
|
} else {
|
1400
1393
|
i.scrollbarYActive = false;
|
1401
1394
|
}
|
@@ -1432,18 +1425,18 @@ module.exports = function (element) {
|
|
1432
1425
|
|
1433
1426
|
var instances = require('./instances');
|
1434
1427
|
|
1435
|
-
var upEvent = document.createEvent('Event')
|
1436
|
-
|
1437
|
-
|
1438
|
-
|
1439
|
-
|
1440
|
-
|
1441
|
-
|
1442
|
-
|
1443
|
-
|
1444
|
-
|
1445
|
-
|
1446
|
-
|
1428
|
+
var upEvent = document.createEvent('Event');
|
1429
|
+
var downEvent = document.createEvent('Event');
|
1430
|
+
var leftEvent = document.createEvent('Event');
|
1431
|
+
var rightEvent = document.createEvent('Event');
|
1432
|
+
var yEvent = document.createEvent('Event');
|
1433
|
+
var xEvent = document.createEvent('Event');
|
1434
|
+
var xStartEvent = document.createEvent('Event');
|
1435
|
+
var xEndEvent = document.createEvent('Event');
|
1436
|
+
var yStartEvent = document.createEvent('Event');
|
1437
|
+
var yEndEvent = document.createEvent('Event');
|
1438
|
+
var lastTop;
|
1439
|
+
var lastLeft;
|
1447
1440
|
|
1448
1441
|
upEvent.initEvent('ps-scroll-up', true, true);
|
1449
1442
|
downEvent.initEvent('ps-scroll-down', true, true);
|
@@ -1482,12 +1475,26 @@ module.exports = function (element, axis, value) {
|
|
1482
1475
|
var i = instances.get(element);
|
1483
1476
|
|
1484
1477
|
if (axis === 'top' && value >= i.contentHeight - i.containerHeight) {
|
1485
|
-
|
1478
|
+
// don't allow scroll past container
|
1479
|
+
value = i.contentHeight - i.containerHeight;
|
1480
|
+
if (value - element.scrollTop <= 1) {
|
1481
|
+
// mitigates rounding errors on non-subpixel scroll values
|
1482
|
+
value = element.scrollTop;
|
1483
|
+
} else {
|
1484
|
+
element.scrollTop = value;
|
1485
|
+
}
|
1486
1486
|
element.dispatchEvent(yEndEvent);
|
1487
1487
|
}
|
1488
1488
|
|
1489
1489
|
if (axis === 'left' && value >= i.contentWidth - i.containerWidth) {
|
1490
|
-
|
1490
|
+
// don't allow scroll past container
|
1491
|
+
value = i.contentWidth - i.containerWidth;
|
1492
|
+
if (value - element.scrollLeft <= 1) {
|
1493
|
+
// mitigates rounding errors on non-subpixel scroll values
|
1494
|
+
value = element.scrollLeft;
|
1495
|
+
} else {
|
1496
|
+
element.scrollLeft = value;
|
1497
|
+
}
|
1491
1498
|
element.dispatchEvent(xEndEvent);
|
1492
1499
|
}
|
1493
1500
|
|
@@ -1530,11 +1537,11 @@ module.exports = function (element, axis, value) {
|
|
1530
1537
|
},{"./instances":18}],21:[function(require,module,exports){
|
1531
1538
|
'use strict';
|
1532
1539
|
|
1533
|
-
var
|
1534
|
-
|
1535
|
-
|
1536
|
-
|
1537
|
-
|
1540
|
+
var _ = require('../lib/helper');
|
1541
|
+
var dom = require('../lib/dom');
|
1542
|
+
var instances = require('./instances');
|
1543
|
+
var updateGeometry = require('./update-geometry');
|
1544
|
+
var updateScroll = require('./update-scroll');
|
1538
1545
|
|
1539
1546
|
module.exports = function (element) {
|
1540
1547
|
var i = instances.get(element);
|
@@ -1547,14 +1554,14 @@ module.exports = function (element) {
|
|
1547
1554
|
i.negativeScrollAdjustment = i.isNegativeScroll ? element.scrollWidth - element.clientWidth : 0;
|
1548
1555
|
|
1549
1556
|
// Recalculate rail margins
|
1550
|
-
|
1551
|
-
|
1552
|
-
i.railXMarginWidth =
|
1553
|
-
i.railYMarginHeight =
|
1557
|
+
dom.css(i.scrollbarXRail, 'display', 'block');
|
1558
|
+
dom.css(i.scrollbarYRail, 'display', 'block');
|
1559
|
+
i.railXMarginWidth = _.toInt(dom.css(i.scrollbarXRail, 'marginLeft')) + _.toInt(dom.css(i.scrollbarXRail, 'marginRight'));
|
1560
|
+
i.railYMarginHeight = _.toInt(dom.css(i.scrollbarYRail, 'marginTop')) + _.toInt(dom.css(i.scrollbarYRail, 'marginBottom'));
|
1554
1561
|
|
1555
1562
|
// Hide scrollbars not to affect scrollWidth and scrollHeight
|
1556
|
-
|
1557
|
-
|
1563
|
+
dom.css(i.scrollbarXRail, 'display', 'none');
|
1564
|
+
dom.css(i.scrollbarYRail, 'display', 'none');
|
1558
1565
|
|
1559
1566
|
updateGeometry(element);
|
1560
1567
|
|
@@ -1562,8 +1569,8 @@ module.exports = function (element) {
|
|
1562
1569
|
updateScroll(element, 'top', element.scrollTop);
|
1563
1570
|
updateScroll(element, 'left', element.scrollLeft);
|
1564
1571
|
|
1565
|
-
|
1566
|
-
|
1572
|
+
dom.css(i.scrollbarXRail, 'display', '');
|
1573
|
+
dom.css(i.scrollbarYRail, 'display', '');
|
1567
1574
|
};
|
1568
1575
|
|
1569
1576
|
},{"../lib/dom":3,"../lib/helper":6,"./instances":18,"./update-geometry":19,"./update-scroll":20}]},{},[1]);
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: perfect-scrollbar-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Guillaume Hain
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-04-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: railties
|
@@ -97,7 +97,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
97
97
|
version: '0'
|
98
98
|
requirements: []
|
99
99
|
rubyforge_project:
|
100
|
-
rubygems_version: 2.
|
100
|
+
rubygems_version: 2.6.4
|
101
101
|
signing_key:
|
102
102
|
specification_version: 4
|
103
103
|
summary: This Gem integrates noraesae's Jquery perfect-scrollbar with Rails, exposing
|