lightbox2 2.11.0 → 2.11.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6ae6009457e3dbd9dd1195c716ef1e73ede567f8fd862b0e6d05fc411aeceaa8
4
- data.tar.gz: e569e4ca6890e4cb62199882c3cd71880a47f9e95da58c05f55a6bc953691cc8
3
+ metadata.gz: 1d1c9036da5b0dc4f331f06473332644fb7134b7318146bd7681d192af5b3edb
4
+ data.tar.gz: d7ef64516cefd783dac0cc0e9df25cc7a8d737ef63b6086ec5ff883c2c696d89
5
5
  SHA512:
6
- metadata.gz: 34101d21e68b4680611c2eccd110a2a81b97b47c3a730a45fbec71d8d32bcdb62b742e2adab9daecc2417f57fc088fa4d2eb7d7d48a2e51a513dc6807f3b211d
7
- data.tar.gz: aaff7d3b79aeef857f778c3f88e49c28c9a409bfa61257338703e4f7e61686cdfb6ea6f0d7cca4368cbded0807d2a5f5132d412447d60247595ebd8638e9bb57
6
+ metadata.gz: 67bb2182d2c63b13230749dc4453bb2d0aed0a9e06847cdcc9a20fde32afb8c3377c89ebc3d7a5186fe9cce2f4c38e281f34a1755db07c796a6e4227957cd9d2
7
+ data.tar.gz: 3d2242f3fceda6c5830ac3887f0ffd9da8aa4903b058bfede8736406e62930120b626fec3e09388196b79439b4446cb3629c110b3c91acc2e59ecfc6e7a58b08
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lightbox v2.11.0
2
+ * Lightbox v2.11.1
3
3
  * by Lokesh Dhakar
4
4
  *
5
5
  * More info:
@@ -99,7 +99,19 @@
99
99
  }
100
100
 
101
101
  var self = this;
102
- $('<div id="lightboxOverlay" class="lightboxOverlay"></div><div id="lightbox" class="lightbox"><div class="lb-outerContainer"><div class="lb-container"><img class="lb-image" src="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==" alt=""/><div class="lb-nav"><a class="lb-prev" aria-label="Previous image" href="" ></a><a class="lb-next" aria-label="Next image" href="" ></a></div><div class="lb-loader"><a class="lb-cancel"></a></div></div></div><div class="lb-dataContainer"><div class="lb-data"><div class="lb-details"><span class="lb-caption"></span><span class="lb-number"></span></div><div class="lb-closeContainer"><a class="lb-close"></a></div></div></div></div>').appendTo($('body'));
102
+
103
+ // The two root notes generated, #lightboxOverlay and #lightbox are given
104
+ // tabindex attrs so they are focusable. We attach our keyboard event
105
+ // listeners to these two elements, and not the document. Clicking anywhere
106
+ // while Lightbox is opened will keep the focus on or inside one of these
107
+ // two elements.
108
+ //
109
+ // We do this so we can prevent propogation of the Esc keypress when
110
+ // Lightbox is open. This prevents it from intefering with other components
111
+ // on the page below.
112
+ //
113
+ // Github issue: https://github.com/lokesh/lightbox2/issues/663
114
+ $('<div id="lightboxOverlay" tabindex="-1" class="lightboxOverlay"></div><div id="lightbox" tabindex="-1" class="lightbox"><div class="lb-outerContainer"><div class="lb-container"><img class="lb-image" src="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==" alt=""/><div class="lb-nav"><a class="lb-prev" aria-label="Previous image" href="" ></a><a class="lb-next" aria-label="Next image" href="" ></a></div><div class="lb-loader"><a class="lb-cancel"></a></div></div></div><div class="lb-dataContainer"><div class="lb-data"><div class="lb-details"><span class="lb-caption"></span><span class="lb-number"></span></div><div class="lb-closeContainer"><a class="lb-close"></a></div></div></div></div>').appendTo($('body'));
103
115
 
104
116
  // Cache jQuery objects
105
117
  this.$lightbox = $('#lightbox');
@@ -323,24 +335,28 @@
323
335
  if (self.options.maxWidth && self.options.maxWidth < maxImageWidth) {
324
336
  maxImageWidth = self.options.maxWidth;
325
337
  }
326
- if (self.options.maxHeight && self.options.maxHeight < maxImageWidth) {
338
+ if (self.options.maxHeight && self.options.maxHeight < maxImageHeight) {
327
339
  maxImageHeight = self.options.maxHeight;
328
340
  }
329
341
 
330
- // Is the current image's width or height is greater than the maxImageWidth or maxImageHeight
331
- // option than we need to size down while maintaining the aspect ratio.
332
- if ((preloader.width > maxImageWidth) || (preloader.height > maxImageHeight)) {
333
- if ((preloader.width / maxImageWidth) > (preloader.height / maxImageHeight)) {
334
- imageWidth = maxImageWidth;
335
- imageHeight = parseInt(preloader.height / (preloader.width / imageWidth), 10);
336
- $image.width(imageWidth);
337
- $image.height(imageHeight);
338
- } else {
339
- imageHeight = maxImageHeight;
340
- imageWidth = parseInt(preloader.width / (preloader.height / imageHeight), 10);
341
- $image.width(imageWidth);
342
- $image.height(imageHeight);
343
- }
342
+ } else {
343
+ maxImageWidth = self.options.maxWidth || preloader.width || maxImageWidth;
344
+ maxImageHeight = self.options.maxHeight || preloader.height || maxImageHeight;
345
+ }
346
+
347
+ // Is the current image's width or height is greater than the maxImageWidth or maxImageHeight
348
+ // option than we need to size down while maintaining the aspect ratio.
349
+ if ((preloader.width > maxImageWidth) || (preloader.height > maxImageHeight)) {
350
+ if ((preloader.width / maxImageWidth) > (preloader.height / maxImageHeight)) {
351
+ imageWidth = maxImageWidth;
352
+ imageHeight = parseInt(preloader.height / (preloader.width / imageWidth), 10);
353
+ $image.width(imageWidth);
354
+ $image.height(imageHeight);
355
+ } else {
356
+ imageHeight = maxImageHeight;
357
+ imageWidth = parseInt(preloader.width / (preloader.height / imageHeight), 10);
358
+ $image.width(imageWidth);
359
+ $image.height(imageHeight);
344
360
  }
345
361
  }
346
362
  self.sizeContainer($image.width(), $image.height());
@@ -383,6 +399,10 @@
383
399
  self.$lightbox.find('.lb-dataContainer').width(newWidth);
384
400
  self.$lightbox.find('.lb-prevLink').height(newHeight);
385
401
  self.$lightbox.find('.lb-nextLink').height(newHeight);
402
+
403
+ // Set focus on one of the two root nodes so keyboard events are captured.
404
+ self.$overlay.focus();
405
+
386
406
  self.showImage();
387
407
  }
388
408
 
@@ -489,11 +509,13 @@
489
509
  };
490
510
 
491
511
  Lightbox.prototype.enableKeyboardNav = function() {
492
- $(document).on('keyup.keyboard', $.proxy(this.keyboardAction, this));
512
+ this.$lightbox.on('keyup.keyboard', $.proxy(this.keyboardAction, this));
513
+ this.$overlay.on('keyup.keyboard', $.proxy(this.keyboardAction, this));
493
514
  };
494
515
 
495
516
  Lightbox.prototype.disableKeyboardNav = function() {
496
- $(document).off('.keyboard');
517
+ this.$lightbox.off('.keyboard');
518
+ this.$overlay.off('.keyboard');
497
519
  };
498
520
 
499
521
  Lightbox.prototype.keyboardAction = function(event) {
@@ -503,6 +525,8 @@
503
525
 
504
526
  var keycode = event.keyCode;
505
527
  if (keycode === KEYCODE_ESC) {
528
+ // Prevent bubbling so as to not affect other components on the page.
529
+ event.stopPropagation();
506
530
  this.end();
507
531
  } else if (keycode === KEYCODE_LEFTARROW) {
508
532
  if (this.currentImageIndex !== 0) {
@@ -21,6 +21,7 @@ body.lb-disable-scrolling {
21
21
  text-align: center;
22
22
  line-height: 0;
23
23
  font-weight: normal;
24
+ outline: none;
24
25
  }
25
26
 
26
27
  .lightbox .lb-image {
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lightbox2
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.11.0
4
+ version: 2.11.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Manuel Schnitzer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-04-23 00:00:00.000000000 Z
11
+ date: 2019-07-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jquery-rails