lightgallery 2.5.0-beta.3 → 2.5.0-beta.4

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.
Files changed (68) hide show
  1. package/css/lightgallery-bundle.css +4 -0
  2. package/css/lightgallery-bundle.min.css +1 -1
  3. package/css/lightgallery-core.css +4 -0
  4. package/css/lightgallery.css +4 -0
  5. package/lg-settings.d.ts +10 -0
  6. package/lib/lg-settings.js +2 -0
  7. package/lib/lg-settings.js.map +1 -1
  8. package/lib/lightgallery.js +31 -2
  9. package/lib/lightgallery.js.map +1 -1
  10. package/lightgallery.d.ts +4 -0
  11. package/lightgallery.es5.js +34 -3
  12. package/lightgallery.es5.js.map +1 -1
  13. package/lightgallery.min.js +2 -2
  14. package/lightgallery.umd.js +34 -3
  15. package/lightgallery.umd.js.map +1 -1
  16. package/lit/lightgallery.esm.js +4 -4
  17. package/lit/lightgallery.umd.js +2 -2
  18. package/package.json +1 -1
  19. package/plugins/autoplay/lg-autoplay.es5.js +1 -1
  20. package/plugins/autoplay/lg-autoplay.min.js +1 -1
  21. package/plugins/autoplay/lg-autoplay.umd.js +1 -1
  22. package/plugins/comment/lg-comment.es5.js +1 -1
  23. package/plugins/comment/lg-comment.min.js +1 -1
  24. package/plugins/comment/lg-comment.umd.js +1 -1
  25. package/plugins/fullscreen/lg-fullscreen.es5.js +1 -1
  26. package/plugins/fullscreen/lg-fullscreen.min.js +1 -1
  27. package/plugins/fullscreen/lg-fullscreen.umd.js +1 -1
  28. package/plugins/hash/lg-hash.es5.js +1 -1
  29. package/plugins/hash/lg-hash.min.js +1 -1
  30. package/plugins/hash/lg-hash.umd.js +1 -1
  31. package/plugins/mediumZoom/lg-medium-zoom.es5.js +1 -1
  32. package/plugins/mediumZoom/lg-medium-zoom.min.js +1 -1
  33. package/plugins/mediumZoom/lg-medium-zoom.umd.js +1 -1
  34. package/plugins/pager/lg-pager.es5.js +1 -1
  35. package/plugins/pager/lg-pager.min.js +1 -1
  36. package/plugins/pager/lg-pager.umd.js +1 -1
  37. package/plugins/relativeCaption/lg-relative-caption.es5.js +1 -1
  38. package/plugins/relativeCaption/lg-relative-caption.min.js +1 -1
  39. package/plugins/relativeCaption/lg-relative-caption.umd.js +1 -1
  40. package/plugins/rotate/lg-rotate.es5.js +1 -1
  41. package/plugins/rotate/lg-rotate.min.js +1 -1
  42. package/plugins/rotate/lg-rotate.umd.js +1 -1
  43. package/plugins/share/lg-share.es5.js +1 -1
  44. package/plugins/share/lg-share.min.js +1 -1
  45. package/plugins/share/lg-share.umd.js +1 -1
  46. package/plugins/thumbnail/lg-thumbnail.es5.js +1 -1
  47. package/plugins/thumbnail/lg-thumbnail.min.js +1 -1
  48. package/plugins/thumbnail/lg-thumbnail.umd.js +1 -1
  49. package/plugins/video/lg-video.es5.js +1 -1
  50. package/plugins/video/lg-video.min.js +1 -1
  51. package/plugins/video/lg-video.umd.js +1 -1
  52. package/plugins/vimeoThumbnail/lg-vimeo-thumbnail.es5.js +1 -1
  53. package/plugins/vimeoThumbnail/lg-vimeo-thumbnail.min.js +1 -1
  54. package/plugins/vimeoThumbnail/lg-vimeo-thumbnail.umd.js +1 -1
  55. package/plugins/zoom/lg-zoom.es5.js +1 -1
  56. package/plugins/zoom/lg-zoom.min.js +1 -1
  57. package/plugins/zoom/lg-zoom.umd.js +1 -1
  58. package/react/Lightgallery.es5.js +34 -3
  59. package/react/Lightgallery.es5.js.map +1 -1
  60. package/react/Lightgallery.umd.js +34 -3
  61. package/react/Lightgallery.umd.js.map +1 -1
  62. package/scss/lightgallery-core.scss +3 -0
  63. package/vue/LightGalleryVue.common.js +45 -4
  64. package/vue/LightGalleryVue.common.js.map +1 -1
  65. package/vue/LightGalleryVue.umd.js +45 -4
  66. package/vue/LightGalleryVue.umd.js.map +1 -1
  67. package/vue/LightGalleryVue.umd.min.js +2 -2
  68. package/vue/LightGalleryVue.umd.min.js.map +1 -1
@@ -19,6 +19,9 @@
19
19
  .lg-on {
20
20
  scroll-behavior: unset;
21
21
  }
22
+ .lg-overlay-open {
23
+ overflow: hidden;
24
+ }
22
25
 
23
26
  // for idle state
24
27
  .lg-toolbar,
@@ -5863,6 +5863,8 @@ var lightGalleryCoreSettings = {
5863
5863
  defaultCaptionHeight: 0,
5864
5864
  ariaLabelledby: '',
5865
5865
  ariaDescribedby: '',
5866
+ resetScrollPosition: true,
5867
+ hideScrollbar: false,
5866
5868
  closable: true,
5867
5869
  swipeToClose: true,
5868
5870
  closeOnTap: true,
@@ -6820,6 +6822,7 @@ var lightgallery_LightGallery = /*#__PURE__*/function () {
6820
6822
  this.currentItemsInDom = []; // Scroll top value before lightGallery is opened
6821
6823
 
6822
6824
  this.prevScrollTop = 0;
6825
+ this.bodyPaddingRight = 0;
6823
6826
  this.isDummyImageRemoved = false;
6824
6827
  this.dragOrSwipeEnabled = false;
6825
6828
  this.mediaContainerPosition = {
@@ -7213,6 +7216,34 @@ var lightgallery_LightGallery = /*#__PURE__*/function () {
7213
7216
  return this.settings.dynamicEl || [];
7214
7217
  }
7215
7218
  }
7219
+ }, {
7220
+ key: "shouldHideScrollbar",
7221
+ value: function shouldHideScrollbar() {
7222
+ return this.settings.hideScrollbar && document.body === this.settings.container;
7223
+ }
7224
+ }, {
7225
+ key: "hideScrollbar",
7226
+ value: function hideScrollbar() {
7227
+ if (!this.shouldHideScrollbar()) {
7228
+ return;
7229
+ }
7230
+
7231
+ this.bodyPaddingRight = parseFloat($LG('body').style().paddingRight);
7232
+ var bodyRect = document.documentElement.getBoundingClientRect();
7233
+ var scrollbarWidth = window.innerWidth - bodyRect.width;
7234
+ $LG(document.body).css('padding-right', scrollbarWidth + this.bodyPaddingRight + 'px');
7235
+ $LG(document.body).addClass('lg-overlay-open');
7236
+ }
7237
+ }, {
7238
+ key: "resetScrollBar",
7239
+ value: function resetScrollBar() {
7240
+ if (!this.shouldHideScrollbar()) {
7241
+ return;
7242
+ }
7243
+
7244
+ $LG(document.body).css('padding-right', this.bodyPaddingRight + 'px');
7245
+ $LG(document.body).removeClass('lg-overlay-open');
7246
+ }
7216
7247
  /**
7217
7248
  * Open lightGallery.
7218
7249
  * Open gallery with specific slide by passing index of the slide as parameter.
@@ -7252,7 +7283,8 @@ var lightgallery_LightGallery = /*#__PURE__*/function () {
7252
7283
  // prevent accidental double execution
7253
7284
  if (this.lgOpened) return;
7254
7285
  this.lgOpened = true;
7255
- this.outer.removeClass('lg-hide-items'); // Add display block, but still has opacity 0
7286
+ this.outer.removeClass('lg-hide-items');
7287
+ this.hideScrollbar(); // Add display block, but still has opacity 0
7256
7288
 
7257
7289
  this.$container.addClass('lg-show');
7258
7290
  var itemsToBeInsertedToDom = this.getItemsToBeInsertedToDom(index, index);
@@ -8655,7 +8687,9 @@ var lightgallery_LightGallery = /*#__PURE__*/function () {
8655
8687
  value: function trapFocus() {
8656
8688
  var _this26 = this;
8657
8689
 
8658
- this.$container.get().focus();
8690
+ this.$container.get().focus({
8691
+ preventScroll: true
8692
+ });
8659
8693
  $LG(window).on("keydown.lg.global".concat(this.lgId), function (e) {
8660
8694
  if (!_this26.lgOpened) {
8661
8695
  return;
@@ -8743,7 +8777,11 @@ var lightgallery_LightGallery = /*#__PURE__*/function () {
8743
8777
  }
8744
8778
 
8745
8779
  this.LGel.trigger(lGEvents.beforeClose);
8746
- $LG(window).scrollTop(this.prevScrollTop);
8780
+
8781
+ if (this.settings.resetScrollPosition && !this.settings.hideScrollbar) {
8782
+ $LG(window).scrollTop(this.prevScrollTop);
8783
+ }
8784
+
8747
8785
  var currentItem = this.items[this.index];
8748
8786
  var transform;
8749
8787
 
@@ -8789,7 +8827,10 @@ var lightgallery_LightGallery = /*#__PURE__*/function () {
8789
8827
  _this28.outer.removeClass('lg-zoom-from-image');
8790
8828
  }
8791
8829
 
8792
- _this28.$container.removeClass('lg-show'); // Need to remove inline opacity as it is used in the stylesheet as well
8830
+ _this28.$container.removeClass('lg-show'); // Reset scrollbar
8831
+
8832
+
8833
+ _this28.resetScrollBar(); // Need to remove inline opacity as it is used in the stylesheet as well
8793
8834
 
8794
8835
 
8795
8836
  _this28.$backdrop.removeAttr('style').css('transition-duration', _this28.settings.backdropDuration + 'ms');