lightgallery 2.5.0-beta.2 → 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 +3 -3
- 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/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.es5.js +1 -1
- package/plugins/video/lg-video.min.js +1 -1
- package/plugins/video/lg-video.umd.js +1 -1
- package/plugins/vimeoThumbnail/lg-vimeo-thumbnail.es5.js +1 -1
- package/plugins/vimeoThumbnail/lg-vimeo-thumbnail.min.js +1 -1
- package/plugins/vimeoThumbnail/lg-vimeo-thumbnail.umd.js +1 -1
- 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
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
/*!
|
|
35
|
-
* lightgallery | 2.5.0-beta.
|
|
35
|
+
* lightgallery | 2.5.0-beta.3 | April 23rd 2022
|
|
36
36
|
* http://www.lightgalleryjs.com/
|
|
37
37
|
* Copyright (c) 2020 Sachin Neravath;
|
|
38
38
|
* @license GPLv3
|
|
@@ -137,6 +137,7 @@
|
|
|
137
137
|
loop: true,
|
|
138
138
|
escKey: true,
|
|
139
139
|
keyPress: true,
|
|
140
|
+
trapFocus: true,
|
|
140
141
|
controls: true,
|
|
141
142
|
slideEndAnimation: true,
|
|
142
143
|
hideControlOnEnd: false,
|
|
@@ -753,6 +754,14 @@
|
|
|
753
754
|
}
|
|
754
755
|
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>";
|
|
755
756
|
},
|
|
757
|
+
getFocusableElements: function (container) {
|
|
758
|
+
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])');
|
|
759
|
+
var visibleElements = [].filter.call(elements, function (element) {
|
|
760
|
+
var style = window.getComputedStyle(element);
|
|
761
|
+
return style.display !== 'none' && style.visibility !== 'hidden';
|
|
762
|
+
});
|
|
763
|
+
return visibleElements;
|
|
764
|
+
},
|
|
756
765
|
/**
|
|
757
766
|
* @desc Create dynamic elements array from gallery items when dynamic option is false
|
|
758
767
|
* It helps to avoid frequent DOM interaction
|
|
@@ -1238,7 +1247,6 @@
|
|
|
1238
1247
|
if (this.lgOpened)
|
|
1239
1248
|
return;
|
|
1240
1249
|
this.lgOpened = true;
|
|
1241
|
-
this.outer.get().focus();
|
|
1242
1250
|
this.outer.removeClass('lg-hide-items');
|
|
1243
1251
|
// Add display block, but still has opacity 0
|
|
1244
1252
|
this.$container.addClass('lg-show');
|
|
@@ -1298,6 +1306,12 @@
|
|
|
1298
1306
|
_this.$backdrop.addClass('in');
|
|
1299
1307
|
_this.$container.addClass('lg-show-in');
|
|
1300
1308
|
}, 10);
|
|
1309
|
+
setTimeout(function () {
|
|
1310
|
+
if (_this.settings.trapFocus &&
|
|
1311
|
+
document.body === _this.settings.container) {
|
|
1312
|
+
_this.trapFocus();
|
|
1313
|
+
}
|
|
1314
|
+
}, _this.settings.backdropDuration + 50);
|
|
1301
1315
|
// lg-visible class resets gallery opacity to 1
|
|
1302
1316
|
if (!_this.zoomFromOrigin || !transform) {
|
|
1303
1317
|
setTimeout(function () {
|
|
@@ -2473,6 +2487,34 @@
|
|
|
2473
2487
|
$element.off("click.lgcustom-item-" + $element.attr('data-lg-id'));
|
|
2474
2488
|
}
|
|
2475
2489
|
};
|
|
2490
|
+
LightGallery.prototype.trapFocus = function () {
|
|
2491
|
+
var _this = this;
|
|
2492
|
+
this.$container.get().focus();
|
|
2493
|
+
$LG(window).on("keydown.lg.global" + this.lgId, function (e) {
|
|
2494
|
+
if (!_this.lgOpened) {
|
|
2495
|
+
return;
|
|
2496
|
+
}
|
|
2497
|
+
var isTabPressed = e.key === 'Tab' || e.keyCode === 9;
|
|
2498
|
+
if (!isTabPressed) {
|
|
2499
|
+
return;
|
|
2500
|
+
}
|
|
2501
|
+
var focusableEls = utils.getFocusableElements(_this.$container.get());
|
|
2502
|
+
var firstFocusableEl = focusableEls[0];
|
|
2503
|
+
var lastFocusableEl = focusableEls[focusableEls.length - 1];
|
|
2504
|
+
if (e.shiftKey) {
|
|
2505
|
+
if (document.activeElement === firstFocusableEl) {
|
|
2506
|
+
lastFocusableEl.focus();
|
|
2507
|
+
e.preventDefault();
|
|
2508
|
+
}
|
|
2509
|
+
}
|
|
2510
|
+
else {
|
|
2511
|
+
if (document.activeElement === lastFocusableEl) {
|
|
2512
|
+
firstFocusableEl.focus();
|
|
2513
|
+
e.preventDefault();
|
|
2514
|
+
}
|
|
2515
|
+
}
|
|
2516
|
+
});
|
|
2517
|
+
};
|
|
2476
2518
|
LightGallery.prototype.manageCloseGallery = function () {
|
|
2477
2519
|
var _this = this;
|
|
2478
2520
|
if (!this.settings.closable)
|
|
@@ -2580,8 +2622,8 @@
|
|
|
2580
2622
|
instance: _this,
|
|
2581
2623
|
});
|
|
2582
2624
|
}
|
|
2583
|
-
if (_this.
|
|
2584
|
-
_this.
|
|
2625
|
+
if (_this.$container.get()) {
|
|
2626
|
+
_this.$container.get().blur();
|
|
2585
2627
|
}
|
|
2586
2628
|
_this.lgOpened = false;
|
|
2587
2629
|
}, removeTimeout + 100);
|