lightgallery 2.4.0 → 2.5.0-beta.3
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.
- package/README.md +4 -4
- package/css/lightgallery-bundle.css +11 -0
- package/css/lightgallery-bundle.min.css +1 -1
- package/css/lightgallery.css +11 -0
- package/lg-settings.d.ts +4 -0
- package/lg-utils.d.ts +1 -0
- package/lib/lg-settings.js +1 -0
- package/lib/lg-settings.js.map +1 -1
- package/lib/lg-utils.js +8 -0
- package/lib/lg-utils.js.map +1 -1
- package/lib/lightgallery.js +36 -3
- package/lib/lightgallery.js.map +1 -1
- package/lib/plugins/video/lg-video-settings.js +1 -0
- package/lib/plugins/video/lg-video-settings.js.map +1 -1
- package/lib/plugins/video/lg-video-utils.js +13 -5
- package/lib/plugins/video/lg-video-utils.js.map +1 -1
- package/lib/plugins/video/lg-video.js +3 -1
- package/lib/plugins/video/lg-video.js.map +1 -1
- package/lib/plugins/vimeoThumbnail/lg-vimeo-thumbnail-settings.js +8 -0
- package/lib/plugins/vimeoThumbnail/lg-vimeo-thumbnail-settings.js.map +1 -0
- package/lib/plugins/vimeoThumbnail/lg-vimeo-thumbnail.js +122 -0
- package/lib/plugins/vimeoThumbnail/lg-vimeo-thumbnail.js.map +1 -0
- package/lightgallery.d.ts +1 -0
- package/lightgallery.es5.js +46 -4
- package/lightgallery.es5.js.map +1 -1
- package/lightgallery.min.js +2 -2
- package/lightgallery.umd.js +46 -4
- package/lightgallery.umd.js.map +1 -1
- package/lit/lightgallery.esm.js +7 -7
- package/lit/lightgallery.umd.js +3 -3
- package/package.json +1 -1
- package/plugins/autoplay/lg-autoplay.es5.js +1 -1
- package/plugins/autoplay/lg-autoplay.min.js +1 -1
- package/plugins/autoplay/lg-autoplay.umd.js +1 -1
- package/plugins/comment/lg-comment.es5.js +1 -1
- package/plugins/comment/lg-comment.min.js +1 -1
- package/plugins/comment/lg-comment.umd.js +1 -1
- package/plugins/fullscreen/lg-fullscreen.es5.js +1 -1
- package/plugins/fullscreen/lg-fullscreen.min.js +1 -1
- package/plugins/fullscreen/lg-fullscreen.umd.js +1 -1
- package/plugins/hash/lg-hash.es5.js +1 -1
- package/plugins/hash/lg-hash.min.js +1 -1
- package/plugins/hash/lg-hash.umd.js +1 -1
- package/plugins/mediumZoom/lg-medium-zoom.es5.js +1 -1
- package/plugins/mediumZoom/lg-medium-zoom.min.js +1 -1
- package/plugins/mediumZoom/lg-medium-zoom.umd.js +1 -1
- package/plugins/pager/lg-pager.es5.js +1 -1
- package/plugins/pager/lg-pager.min.js +1 -1
- package/plugins/pager/lg-pager.umd.js +1 -1
- package/plugins/relativeCaption/lg-relative-caption.es5.js +1 -1
- package/plugins/relativeCaption/lg-relative-caption.min.js +1 -1
- package/plugins/relativeCaption/lg-relative-caption.umd.js +1 -1
- package/plugins/rotate/lg-rotate.es5.js +1 -1
- package/plugins/rotate/lg-rotate.min.js +1 -1
- package/plugins/rotate/lg-rotate.umd.js +1 -1
- package/plugins/share/lg-share.es5.js +1 -1
- package/plugins/share/lg-share.min.js +1 -1
- package/plugins/share/lg-share.umd.js +1 -1
- package/plugins/thumbnail/lg-thumbnail.es5.js +1 -1
- package/plugins/thumbnail/lg-thumbnail.min.js +1 -1
- package/plugins/thumbnail/lg-thumbnail.umd.js +1 -1
- package/plugins/video/lg-video-settings.d.ts +6 -1
- package/plugins/video/lg-video.es5.js +18 -7
- package/plugins/video/lg-video.es5.js.map +1 -1
- package/plugins/video/lg-video.min.js +2 -2
- package/plugins/video/lg-video.umd.js +18 -7
- package/plugins/video/lg-video.umd.js.map +1 -1
- package/plugins/vimeoThumbnail/lg-vimeo-thumbnail-settings.d.ts +11 -0
- package/plugins/vimeoThumbnail/lg-vimeo-thumbnail.d.ts +14 -0
- package/plugins/vimeoThumbnail/lg-vimeo-thumbnail.es5.js +182 -0
- package/plugins/vimeoThumbnail/lg-vimeo-thumbnail.es5.js.map +1 -0
- package/plugins/vimeoThumbnail/lg-vimeo-thumbnail.min.js +8 -0
- package/plugins/vimeoThumbnail/lg-vimeo-thumbnail.umd.js +190 -0
- package/plugins/vimeoThumbnail/lg-vimeo-thumbnail.umd.js.map +1 -0
- package/plugins/vimeoThumbnail/package.json +7 -0
- package/plugins/zoom/lg-zoom.es5.js +1 -1
- package/plugins/zoom/lg-zoom.min.js +1 -1
- package/plugins/zoom/lg-zoom.umd.js +1 -1
- package/react/Lightgallery.es5.js +46 -4
- package/react/Lightgallery.es5.js.map +1 -1
- package/react/Lightgallery.umd.js +46 -4
- package/react/Lightgallery.umd.js.map +1 -1
- package/scss/_lg-theme-default.scss +16 -0
- package/vue/LightGalleryVue.common.js +77 -29
- package/vue/LightGalleryVue.common.js.map +1 -1
- package/vue/LightGalleryVue.umd.js +77 -29
- package/vue/LightGalleryVue.umd.js.map +1 -1
- package/vue/LightGalleryVue.umd.min.js +2 -2
- package/vue/LightGalleryVue.umd.min.js.map +1 -1
package/lightgallery.es5.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* lightgallery | 2.
|
|
2
|
+
* lightgallery | 2.5.0-beta.3 | April 23rd 2022
|
|
3
3
|
* http://www.lightgalleryjs.com/
|
|
4
4
|
* Copyright (c) 2020 Sachin Neravath;
|
|
5
5
|
* @license GPLv3
|
|
@@ -104,6 +104,7 @@ var lightGalleryCoreSettings = {
|
|
|
104
104
|
loop: true,
|
|
105
105
|
escKey: true,
|
|
106
106
|
keyPress: true,
|
|
107
|
+
trapFocus: true,
|
|
107
108
|
controls: true,
|
|
108
109
|
slideEndAnimation: true,
|
|
109
110
|
hideControlOnEnd: false,
|
|
@@ -720,6 +721,14 @@ var utils = {
|
|
|
720
721
|
}
|
|
721
722
|
return "<div class=\"lg-video-cont " + videoClass + "\" style=\"" + videoContStyle + "\">\n <div class=\"lg-video-play-button\">\n <svg\n viewBox=\"0 0 20 20\"\n preserveAspectRatio=\"xMidYMid\"\n focusable=\"false\"\n aria-labelledby=\"" + playVideoString + "\"\n role=\"img\"\n class=\"lg-video-play-icon\"\n >\n <title>" + playVideoString + "</title>\n <polygon class=\"lg-video-play-icon-inner\" points=\"1,0 20,10 1,20\"></polygon>\n </svg>\n <svg class=\"lg-video-play-icon-bg\" viewBox=\"0 0 50 50\" focusable=\"false\">\n <circle cx=\"50%\" cy=\"50%\" r=\"20\"></circle></svg>\n <svg class=\"lg-video-play-icon-circle\" viewBox=\"0 0 50 50\" focusable=\"false\">\n <circle cx=\"50%\" cy=\"50%\" r=\"20\"></circle>\n </svg>\n </div>\n " + (dummyImg || '') + "\n <img class=\"lg-object lg-video-poster\" src=\"" + _poster + "\" />\n </div>";
|
|
722
723
|
},
|
|
724
|
+
getFocusableElements: function (container) {
|
|
725
|
+
var elements = container.querySelectorAll('a[href]:not([disabled]), button:not([disabled]), textarea:not([disabled]), input[type="text"]:not([disabled]), input[type="radio"]:not([disabled]), input[type="checkbox"]:not([disabled]), select:not([disabled])');
|
|
726
|
+
var visibleElements = [].filter.call(elements, function (element) {
|
|
727
|
+
var style = window.getComputedStyle(element);
|
|
728
|
+
return style.display !== 'none' && style.visibility !== 'hidden';
|
|
729
|
+
});
|
|
730
|
+
return visibleElements;
|
|
731
|
+
},
|
|
723
732
|
/**
|
|
724
733
|
* @desc Create dynamic elements array from gallery items when dynamic option is false
|
|
725
734
|
* It helps to avoid frequent DOM interaction
|
|
@@ -1205,7 +1214,6 @@ var LightGallery = /** @class */ (function () {
|
|
|
1205
1214
|
if (this.lgOpened)
|
|
1206
1215
|
return;
|
|
1207
1216
|
this.lgOpened = true;
|
|
1208
|
-
this.outer.get().focus();
|
|
1209
1217
|
this.outer.removeClass('lg-hide-items');
|
|
1210
1218
|
// Add display block, but still has opacity 0
|
|
1211
1219
|
this.$container.addClass('lg-show');
|
|
@@ -1265,6 +1273,12 @@ var LightGallery = /** @class */ (function () {
|
|
|
1265
1273
|
_this.$backdrop.addClass('in');
|
|
1266
1274
|
_this.$container.addClass('lg-show-in');
|
|
1267
1275
|
}, 10);
|
|
1276
|
+
setTimeout(function () {
|
|
1277
|
+
if (_this.settings.trapFocus &&
|
|
1278
|
+
document.body === _this.settings.container) {
|
|
1279
|
+
_this.trapFocus();
|
|
1280
|
+
}
|
|
1281
|
+
}, _this.settings.backdropDuration + 50);
|
|
1268
1282
|
// lg-visible class resets gallery opacity to 1
|
|
1269
1283
|
if (!_this.zoomFromOrigin || !transform) {
|
|
1270
1284
|
setTimeout(function () {
|
|
@@ -2440,6 +2454,34 @@ var LightGallery = /** @class */ (function () {
|
|
|
2440
2454
|
$element.off("click.lgcustom-item-" + $element.attr('data-lg-id'));
|
|
2441
2455
|
}
|
|
2442
2456
|
};
|
|
2457
|
+
LightGallery.prototype.trapFocus = function () {
|
|
2458
|
+
var _this = this;
|
|
2459
|
+
this.$container.get().focus();
|
|
2460
|
+
$LG(window).on("keydown.lg.global" + this.lgId, function (e) {
|
|
2461
|
+
if (!_this.lgOpened) {
|
|
2462
|
+
return;
|
|
2463
|
+
}
|
|
2464
|
+
var isTabPressed = e.key === 'Tab' || e.keyCode === 9;
|
|
2465
|
+
if (!isTabPressed) {
|
|
2466
|
+
return;
|
|
2467
|
+
}
|
|
2468
|
+
var focusableEls = utils.getFocusableElements(_this.$container.get());
|
|
2469
|
+
var firstFocusableEl = focusableEls[0];
|
|
2470
|
+
var lastFocusableEl = focusableEls[focusableEls.length - 1];
|
|
2471
|
+
if (e.shiftKey) {
|
|
2472
|
+
if (document.activeElement === firstFocusableEl) {
|
|
2473
|
+
lastFocusableEl.focus();
|
|
2474
|
+
e.preventDefault();
|
|
2475
|
+
}
|
|
2476
|
+
}
|
|
2477
|
+
else {
|
|
2478
|
+
if (document.activeElement === lastFocusableEl) {
|
|
2479
|
+
firstFocusableEl.focus();
|
|
2480
|
+
e.preventDefault();
|
|
2481
|
+
}
|
|
2482
|
+
}
|
|
2483
|
+
});
|
|
2484
|
+
};
|
|
2443
2485
|
LightGallery.prototype.manageCloseGallery = function () {
|
|
2444
2486
|
var _this = this;
|
|
2445
2487
|
if (!this.settings.closable)
|
|
@@ -2547,8 +2589,8 @@ var LightGallery = /** @class */ (function () {
|
|
|
2547
2589
|
instance: _this,
|
|
2548
2590
|
});
|
|
2549
2591
|
}
|
|
2550
|
-
if (_this.
|
|
2551
|
-
_this.
|
|
2592
|
+
if (_this.$container.get()) {
|
|
2593
|
+
_this.$container.get().blur();
|
|
2552
2594
|
}
|
|
2553
2595
|
_this.lgOpened = false;
|
|
2554
2596
|
}, removeTimeout + 100);
|