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
@@ -5872,6 +5872,8 @@ var lightGalleryCoreSettings = {
5872
5872
  defaultCaptionHeight: 0,
5873
5873
  ariaLabelledby: '',
5874
5874
  ariaDescribedby: '',
5875
+ resetScrollPosition: true,
5876
+ hideScrollbar: false,
5875
5877
  closable: true,
5876
5878
  swipeToClose: true,
5877
5879
  closeOnTap: true,
@@ -6829,6 +6831,7 @@ var lightgallery_LightGallery = /*#__PURE__*/function () {
6829
6831
  this.currentItemsInDom = []; // Scroll top value before lightGallery is opened
6830
6832
 
6831
6833
  this.prevScrollTop = 0;
6834
+ this.bodyPaddingRight = 0;
6832
6835
  this.isDummyImageRemoved = false;
6833
6836
  this.dragOrSwipeEnabled = false;
6834
6837
  this.mediaContainerPosition = {
@@ -7222,6 +7225,34 @@ var lightgallery_LightGallery = /*#__PURE__*/function () {
7222
7225
  return this.settings.dynamicEl || [];
7223
7226
  }
7224
7227
  }
7228
+ }, {
7229
+ key: "shouldHideScrollbar",
7230
+ value: function shouldHideScrollbar() {
7231
+ return this.settings.hideScrollbar && document.body === this.settings.container;
7232
+ }
7233
+ }, {
7234
+ key: "hideScrollbar",
7235
+ value: function hideScrollbar() {
7236
+ if (!this.shouldHideScrollbar()) {
7237
+ return;
7238
+ }
7239
+
7240
+ this.bodyPaddingRight = parseFloat($LG('body').style().paddingRight);
7241
+ var bodyRect = document.documentElement.getBoundingClientRect();
7242
+ var scrollbarWidth = window.innerWidth - bodyRect.width;
7243
+ $LG(document.body).css('padding-right', scrollbarWidth + this.bodyPaddingRight + 'px');
7244
+ $LG(document.body).addClass('lg-overlay-open');
7245
+ }
7246
+ }, {
7247
+ key: "resetScrollBar",
7248
+ value: function resetScrollBar() {
7249
+ if (!this.shouldHideScrollbar()) {
7250
+ return;
7251
+ }
7252
+
7253
+ $LG(document.body).css('padding-right', this.bodyPaddingRight + 'px');
7254
+ $LG(document.body).removeClass('lg-overlay-open');
7255
+ }
7225
7256
  /**
7226
7257
  * Open lightGallery.
7227
7258
  * Open gallery with specific slide by passing index of the slide as parameter.
@@ -7261,7 +7292,8 @@ var lightgallery_LightGallery = /*#__PURE__*/function () {
7261
7292
  // prevent accidental double execution
7262
7293
  if (this.lgOpened) return;
7263
7294
  this.lgOpened = true;
7264
- this.outer.removeClass('lg-hide-items'); // Add display block, but still has opacity 0
7295
+ this.outer.removeClass('lg-hide-items');
7296
+ this.hideScrollbar(); // Add display block, but still has opacity 0
7265
7297
 
7266
7298
  this.$container.addClass('lg-show');
7267
7299
  var itemsToBeInsertedToDom = this.getItemsToBeInsertedToDom(index, index);
@@ -8664,7 +8696,9 @@ var lightgallery_LightGallery = /*#__PURE__*/function () {
8664
8696
  value: function trapFocus() {
8665
8697
  var _this26 = this;
8666
8698
 
8667
- this.$container.get().focus();
8699
+ this.$container.get().focus({
8700
+ preventScroll: true
8701
+ });
8668
8702
  $LG(window).on("keydown.lg.global".concat(this.lgId), function (e) {
8669
8703
  if (!_this26.lgOpened) {
8670
8704
  return;
@@ -8752,7 +8786,11 @@ var lightgallery_LightGallery = /*#__PURE__*/function () {
8752
8786
  }
8753
8787
 
8754
8788
  this.LGel.trigger(lGEvents.beforeClose);
8755
- $LG(window).scrollTop(this.prevScrollTop);
8789
+
8790
+ if (this.settings.resetScrollPosition && !this.settings.hideScrollbar) {
8791
+ $LG(window).scrollTop(this.prevScrollTop);
8792
+ }
8793
+
8756
8794
  var currentItem = this.items[this.index];
8757
8795
  var transform;
8758
8796
 
@@ -8798,7 +8836,10 @@ var lightgallery_LightGallery = /*#__PURE__*/function () {
8798
8836
  _this28.outer.removeClass('lg-zoom-from-image');
8799
8837
  }
8800
8838
 
8801
- _this28.$container.removeClass('lg-show'); // Need to remove inline opacity as it is used in the stylesheet as well
8839
+ _this28.$container.removeClass('lg-show'); // Reset scrollbar
8840
+
8841
+
8842
+ _this28.resetScrollBar(); // Need to remove inline opacity as it is used in the stylesheet as well
8802
8843
 
8803
8844
 
8804
8845
  _this28.$backdrop.removeAttr('style').css('transition-duration', _this28.settings.backdropDuration + 'ms');