lightgallery 2.7.2 → 2.8.0-beta.2

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 (176) hide show
  1. package/angular/14/README.md +24 -0
  2. package/angular/14/esm2020/lightgallery-angular-14.mjs +5 -0
  3. package/angular/{fesm2015/lightgallery-angular.mjs → 14/fesm2015/lightgallery-angular-14.mjs} +1 -1
  4. package/angular/14/fesm2015/lightgallery-angular-14.mjs.map +1 -0
  5. package/angular/{fesm2020/lightgallery-angular.mjs → 14/fesm2020/lightgallery-angular-14.mjs} +1 -1
  6. package/angular/14/fesm2020/lightgallery-angular-14.mjs.map +1 -0
  7. package/angular/14/index.d.ts +5 -0
  8. package/angular/14/lib/lightgallery-angular.component.d.ts +38 -0
  9. package/angular/14/lib/lightgallery-angular.module.d.ts +7 -0
  10. package/angular/14/lib/lightgallery-angular.service.d.ts +6 -0
  11. package/angular/14/package.json +31 -0
  12. package/angular/14/public-api.d.ts +3 -0
  13. package/angular/15/README.md +24 -0
  14. package/angular/15/esm2022/lib/lightgallery-angular.component.mjs +218 -0
  15. package/angular/15/esm2022/lib/lightgallery-angular.module.mjs +18 -0
  16. package/angular/15/esm2022/lib/lightgallery-angular.service.mjs +15 -0
  17. package/angular/15/esm2022/lightgallery-angular-15.mjs +5 -0
  18. package/angular/15/esm2022/public-api.mjs +7 -0
  19. package/angular/15/fesm2022/lightgallery-angular-15.mjs +254 -0
  20. package/angular/15/fesm2022/lightgallery-angular-15.mjs.map +1 -0
  21. package/angular/15/index.d.ts +5 -0
  22. package/angular/15/lib/lightgallery-angular.component.d.ts +38 -0
  23. package/angular/15/lib/lightgallery-angular.module.d.ts +7 -0
  24. package/angular/15/lib/lightgallery-angular.service.d.ts +6 -0
  25. package/angular/15/package.json +25 -0
  26. package/angular/15/public-api.d.ts +3 -0
  27. package/angular/16/README.md +24 -0
  28. package/angular/16/esm2022/lib/lightgallery-angular.component.mjs +218 -0
  29. package/angular/16/esm2022/lib/lightgallery-angular.module.mjs +18 -0
  30. package/angular/16/esm2022/lib/lightgallery-angular.service.mjs +15 -0
  31. package/angular/16/esm2022/lightgallery-angular-16.mjs +5 -0
  32. package/angular/16/esm2022/public-api.mjs +7 -0
  33. package/angular/16/fesm2022/lightgallery-angular-16.mjs +254 -0
  34. package/angular/16/fesm2022/lightgallery-angular-16.mjs.map +1 -0
  35. package/angular/16/index.d.ts +5 -0
  36. package/angular/16/lib/lightgallery-angular.component.d.ts +38 -0
  37. package/angular/16/lib/lightgallery-angular.module.d.ts +7 -0
  38. package/angular/16/lib/lightgallery-angular.service.d.ts +6 -0
  39. package/angular/16/package.json +25 -0
  40. package/angular/16/public-api.d.ts +3 -0
  41. package/angular/README.md +1 -1
  42. package/angular/esm2022/lib/lightgallery-angular.component.mjs +218 -0
  43. package/angular/esm2022/lib/lightgallery-angular.module.mjs +18 -0
  44. package/angular/esm2022/lib/lightgallery-angular.service.mjs +15 -0
  45. package/angular/esm2022/public-api.mjs +7 -0
  46. package/angular/fesm2022/lightgallery-angular.mjs +254 -0
  47. package/angular/{fesm2020 → fesm2022}/lightgallery-angular.mjs.map +1 -1
  48. package/angular/lib/lightgallery-angular.component.d.ts +1 -1
  49. package/angular/package.json +8 -14
  50. package/css/lg-autoplay.css +5 -8
  51. package/css/lg-autoplay.css.map +1 -0
  52. package/css/lg-comments.css +5 -18
  53. package/css/lg-comments.css.map +1 -0
  54. package/css/lg-fullscreen.css +2 -1
  55. package/css/lg-fullscreen.css.map +1 -0
  56. package/css/lg-medium-zoom.css +2 -2
  57. package/css/lg-medium-zoom.css.map +1 -0
  58. package/css/lg-pager.css +2 -10
  59. package/css/lg-pager.css.map +1 -0
  60. package/css/lg-relative-caption.css +2 -2
  61. package/css/lg-relative-caption.css.map +1 -0
  62. package/css/lg-rotate.css +14 -14
  63. package/css/lg-rotate.css.map +1 -0
  64. package/css/lg-share.css +8 -24
  65. package/css/lg-share.css.map +1 -0
  66. package/css/lg-thumbnail.css +4 -19
  67. package/css/lg-thumbnail.css.map +1 -0
  68. package/css/lg-transitions.css +2 -116
  69. package/css/lg-transitions.css.map +1 -0
  70. package/css/lg-video.css +2 -11
  71. package/css/lg-video.css.map +1 -0
  72. package/css/lg-zoom.css +12 -24
  73. package/css/lg-zoom.css.map +1 -0
  74. package/css/lightgallery-bundle.css +65 -224
  75. package/css/lightgallery-bundle.css.map +1 -0
  76. package/css/lightgallery-bundle.min.css +1 -1
  77. package/css/lightgallery-core.css +19 -51
  78. package/css/lightgallery-core.css.map +1 -0
  79. package/css/lightgallery.css +29 -91
  80. package/css/lightgallery.css.map +1 -0
  81. package/lg-settings.d.ts +4 -3
  82. package/lg-utils.d.ts +9 -1
  83. package/lgQuery.d.ts +1 -1
  84. package/lib/lg-settings.js.map +1 -1
  85. package/lib/lg-utils.js +28 -2
  86. package/lib/lg-utils.js.map +1 -1
  87. package/lib/lgQuery.js +6 -1
  88. package/lib/lgQuery.js.map +1 -1
  89. package/lib/lightgallery.js +25 -8
  90. package/lib/lightgallery.js.map +1 -1
  91. package/lib/plugins/thumbnail/lg-thumbnail.js +13 -10
  92. package/lib/plugins/thumbnail/lg-thumbnail.js.map +1 -1
  93. package/lib/plugins/video/lg-video-utils.js +12 -4
  94. package/lib/plugins/video/lg-video-utils.js.map +1 -1
  95. package/lib/plugins/video/lg-video.js +3 -1
  96. package/lib/plugins/video/lg-video.js.map +1 -1
  97. package/lib/plugins/zoom/lg-zoom.js +7 -1
  98. package/lib/plugins/zoom/lg-zoom.js.map +1 -1
  99. package/lightgallery.d.ts +1 -1
  100. package/lightgallery.es5.js +60 -12
  101. package/lightgallery.es5.js.map +1 -1
  102. package/lightgallery.min.js +2 -2
  103. package/lightgallery.umd.js +60 -12
  104. package/lightgallery.umd.js.map +1 -1
  105. package/lit/lightgallery.esm.js +7 -7
  106. package/lit/lightgallery.umd.js +3 -3
  107. package/package.json +1 -1
  108. package/plugins/autoplay/lg-autoplay.es5.js +1 -1
  109. package/plugins/autoplay/lg-autoplay.min.js +1 -1
  110. package/plugins/autoplay/lg-autoplay.umd.js +1 -1
  111. package/plugins/comment/lg-comment.es5.js +1 -1
  112. package/plugins/comment/lg-comment.min.js +1 -1
  113. package/plugins/comment/lg-comment.umd.js +1 -1
  114. package/plugins/fullscreen/lg-fullscreen.es5.js +1 -1
  115. package/plugins/fullscreen/lg-fullscreen.min.js +1 -1
  116. package/plugins/fullscreen/lg-fullscreen.umd.js +1 -1
  117. package/plugins/hash/lg-hash.es5.js +1 -1
  118. package/plugins/hash/lg-hash.min.js +1 -1
  119. package/plugins/hash/lg-hash.umd.js +1 -1
  120. package/plugins/mediumZoom/lg-medium-zoom.es5.js +1 -1
  121. package/plugins/mediumZoom/lg-medium-zoom.min.js +1 -1
  122. package/plugins/mediumZoom/lg-medium-zoom.umd.js +1 -1
  123. package/plugins/pager/lg-pager.es5.js +1 -1
  124. package/plugins/pager/lg-pager.min.js +1 -1
  125. package/plugins/pager/lg-pager.umd.js +1 -1
  126. package/plugins/relativeCaption/lg-relative-caption.es5.js +1 -1
  127. package/plugins/relativeCaption/lg-relative-caption.min.js +1 -1
  128. package/plugins/relativeCaption/lg-relative-caption.umd.js +1 -1
  129. package/plugins/rotate/lg-rotate.es5.js +1 -1
  130. package/plugins/rotate/lg-rotate.min.js +1 -1
  131. package/plugins/rotate/lg-rotate.umd.js +1 -1
  132. package/plugins/share/lg-share.es5.js +1 -1
  133. package/plugins/share/lg-share.min.js +1 -1
  134. package/plugins/share/lg-share.umd.js +1 -1
  135. package/plugins/thumbnail/lg-thumbnail.d.ts +1 -2
  136. package/plugins/thumbnail/lg-thumbnail.es5.js +14 -11
  137. package/plugins/thumbnail/lg-thumbnail.es5.js.map +1 -1
  138. package/plugins/thumbnail/lg-thumbnail.min.js +2 -2
  139. package/plugins/thumbnail/lg-thumbnail.umd.js +14 -11
  140. package/plugins/thumbnail/lg-thumbnail.umd.js.map +1 -1
  141. package/plugins/video/lg-video.es5.js +16 -6
  142. package/plugins/video/lg-video.es5.js.map +1 -1
  143. package/plugins/video/lg-video.min.js +2 -2
  144. package/plugins/video/lg-video.umd.js +16 -6
  145. package/plugins/video/lg-video.umd.js.map +1 -1
  146. package/plugins/vimeoThumbnail/lg-vimeo-thumbnail.es5.js +1 -1
  147. package/plugins/vimeoThumbnail/lg-vimeo-thumbnail.min.js +1 -1
  148. package/plugins/vimeoThumbnail/lg-vimeo-thumbnail.umd.js +1 -1
  149. package/plugins/zoom/lg-zoom.es5.js +8 -2
  150. package/plugins/zoom/lg-zoom.es5.js.map +1 -1
  151. package/plugins/zoom/lg-zoom.min.js +2 -2
  152. package/plugins/zoom/lg-zoom.umd.js +8 -2
  153. package/plugins/zoom/lg-zoom.umd.js.map +1 -1
  154. package/react/Lightgallery.es5.js +60 -12
  155. package/react/Lightgallery.es5.js.map +1 -1
  156. package/react/Lightgallery.umd.js +60 -12
  157. package/react/Lightgallery.umd.js.map +1 -1
  158. package/scss/lg-zoom.scss +2 -2
  159. package/scss/lightgallery-core.scss +18 -0
  160. package/angular/11/README.md +0 -24
  161. package/angular/11/bundles/lightgallery-angular-11.umd.min.js +0 -2
  162. package/angular/11/bundles/lightgallery-angular-11.umd.min.js.map +0 -1
  163. package/angular/11/package.json +0 -21
  164. package/angular/fesm2015/lightgallery-angular.mjs.map +0 -1
  165. package/vue/LightGallery.vue.d.ts +0 -3
  166. package/vue/LightGalleryVue.common.js +0 -9290
  167. package/vue/LightGalleryVue.common.js.map +0 -1
  168. package/vue/LightGalleryVue.umd.js +0 -9300
  169. package/vue/LightGalleryVue.umd.js.map +0 -1
  170. package/vue/LightGalleryVue.umd.min.js +0 -8
  171. package/vue/LightGalleryVue.umd.min.js.map +0 -1
  172. /package/angular/{esm2020 → 14/esm2020}/lib/lightgallery-angular.component.mjs +0 -0
  173. /package/angular/{esm2020 → 14/esm2020}/lib/lightgallery-angular.module.mjs +0 -0
  174. /package/angular/{esm2020 → 14/esm2020}/lib/lightgallery-angular.service.mjs +0 -0
  175. /package/angular/{esm2020 → 14/esm2020}/public-api.mjs +0 -0
  176. /package/angular/{esm2020 → esm2022}/lightgallery-angular.mjs +0 -0
@@ -32,7 +32,7 @@
32
32
  }
33
33
 
34
34
  /*!
35
- * lightgallery | 2.7.2 | September 20th 2023
35
+ * lightgallery | 2.8.0-beta.2 | April 25th 2024
36
36
  * http://www.lightgalleryjs.com/
37
37
  * Copyright (c) 2020 Sachin Neravath;
38
38
  * @license GPLv3
@@ -475,7 +475,12 @@
475
475
  };
476
476
  lgQuery.prototype.prepend = function (html) {
477
477
  this._each(function (el) {
478
- el.insertAdjacentHTML('afterbegin', html);
478
+ if (typeof html === 'string') {
479
+ el.insertAdjacentHTML('afterbegin', html);
480
+ }
481
+ else if (html instanceof HTMLElement) {
482
+ el.insertBefore(html.cloneNode(true), el.firstChild);
483
+ }
479
484
  });
480
485
  return this;
481
486
  };
@@ -599,6 +604,27 @@
599
604
  return attr;
600
605
  }
601
606
  var utils = {
607
+ /**
608
+ * Fetches HTML content from a given URL and inserts it into a specified element.
609
+ *
610
+ * @param url - The URL to fetch the HTML content from.
611
+ * @param element - The DOM element (jQuery object) to insert the HTML content into.
612
+ * @param insertMethod - The method to insert the HTML ('append' or 'replace').
613
+ */
614
+ fetchCaptionFromUrl: function (url, element, insertMethod) {
615
+ // Fetch content from the URL
616
+ fetch(url)
617
+ .then(function (response) { return response.text(); })
618
+ .then(function (htmlContent) {
619
+ if (insertMethod === 'append') {
620
+ var contentDiv = "<div class=\"lg-sub-html\">" + htmlContent + "</div>";
621
+ element.append(contentDiv);
622
+ }
623
+ else {
624
+ element.html(htmlContent);
625
+ }
626
+ });
627
+ },
602
628
  /**
603
629
  * get possible width and height from the lgSize attribute. Used for ZoomFromOrigin option
604
630
  */
@@ -683,7 +709,7 @@
683
709
  },
684
710
  getIframeMarkup: function (iframeWidth, iframeHeight, iframeMaxWidth, iframeMaxHeight, src, iframeTitle) {
685
711
  var title = iframeTitle ? 'title="' + iframeTitle + '"' : '';
686
- return "<div class=\"lg-video-cont lg-has-iframe\" style=\"width:" + iframeWidth + "; max-width:" + iframeMaxWidth + "; height: " + iframeHeight + "; max-height:" + iframeMaxHeight + "\">\n <iframe class=\"lg-object\" frameborder=\"0\" " + title + " src=\"" + src + "\" allowfullscreen=\"true\"></iframe>\n </div>";
712
+ return "<div class=\"lg-media-cont lg-has-iframe\" style=\"width:" + iframeWidth + "; max-width:" + iframeMaxWidth + "; height: " + iframeHeight + "; max-height:" + iframeMaxHeight + "\">\n <iframe class=\"lg-object\" frameborder=\"0\" " + title + " src=\"" + src + "\" allowfullscreen=\"true\"></iframe>\n </div>";
687
713
  },
688
714
  getImgMarkup: function (index, src, altAttr, srcset, sizes, sources) {
689
715
  var srcsetAttr = srcset ? "srcset=\"" + srcset + "\"" : '';
@@ -755,7 +781,11 @@
755
781
  else {
756
782
  videoClass = 'lg-has-html5';
757
783
  }
758
- 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>";
784
+ var _dummy = dummyImg;
785
+ if (typeof dummyImg !== 'string') {
786
+ _dummy = dummyImg.outerHTML;
787
+ }
788
+ 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 " + _dummy + "\n <img class=\"lg-object lg-video-poster\" src=\"" + _poster + "\" />\n </div>";
759
789
  },
760
790
  getFocusableElements: function (container) {
761
791
  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])');
@@ -803,6 +833,7 @@
803
833
  dynamicEl.alt = alt || title || '';
804
834
  dynamicElements.push(dynamicEl);
805
835
  });
836
+ console.log(dynamicElements, 'dynamicElements');
806
837
  return dynamicElements;
807
838
  },
808
839
  isMobile: function () {
@@ -922,7 +953,17 @@
922
953
  if (this.settings.dynamic) {
923
954
  this.zoomFromOrigin = false;
924
955
  }
925
- if (!this.settings.container) {
956
+ if (this.settings.container) {
957
+ var container = this.settings.container;
958
+ if (typeof container === 'function') {
959
+ this.settings.container = container();
960
+ }
961
+ else if (typeof container === 'string') {
962
+ var el = document.querySelector(container);
963
+ this.settings.container = el !== null && el !== void 0 ? el : document.body;
964
+ }
965
+ }
966
+ else {
926
967
  this.settings.container = document.body;
927
968
  }
928
969
  // settings.preload should not be grater than $item.length
@@ -1461,7 +1502,7 @@
1461
1502
  }
1462
1503
  if (this.settings.appendSubHtmlTo !== '.lg-item') {
1463
1504
  if (subHtmlUrl) {
1464
- this.outer.find('.lg-sub-html').load(subHtmlUrl);
1505
+ utils.fetchCaptionFromUrl(subHtmlUrl, this.outer.find('.lg-sub-html'), 'replace');
1465
1506
  }
1466
1507
  else {
1467
1508
  this.outer.find('.lg-sub-html').html(subHtml);
@@ -1470,7 +1511,7 @@
1470
1511
  else {
1471
1512
  var currentSlide = $LG(this.getSlideItemId(index));
1472
1513
  if (subHtmlUrl) {
1473
- currentSlide.load(subHtmlUrl);
1514
+ utils.fetchCaptionFromUrl(subHtmlUrl, currentSlide, 'append');
1474
1515
  }
1475
1516
  else {
1476
1517
  currentSlide.append("<div class=\"lg-sub-html\">" + subHtml + "</div>");
@@ -1538,10 +1579,14 @@
1538
1579
  if (!_dummyImgSrc)
1539
1580
  return '';
1540
1581
  var imgStyle = this.getDummyImgStyles(this.currentImageSize);
1541
- var dummyImgContent = "<img " + alt + " style=\"" + imgStyle + "\" class=\"lg-dummy-img\" src=\"" + _dummyImgSrc + "\" />";
1582
+ var dummyImgContentImg = document.createElement('img');
1583
+ dummyImgContentImg.alt = alt || '';
1584
+ dummyImgContentImg.src = _dummyImgSrc;
1585
+ dummyImgContentImg.className = "lg-dummy-img";
1586
+ dummyImgContentImg.style.cssText = imgStyle;
1542
1587
  $currentSlide.addClass('lg-first-slide');
1543
1588
  this.outer.addClass('lg-first-slide-loading');
1544
- return dummyImgContent;
1589
+ return dummyImgContentImg;
1545
1590
  }
1546
1591
  return '';
1547
1592
  };
@@ -1558,8 +1603,10 @@
1558
1603
  else {
1559
1604
  imgContent = utils.getImgMarkup(index, src, altAttr, srcset, sizes, sources);
1560
1605
  }
1561
- var imgMarkup = "<picture class=\"lg-img-wrap\"> " + imgContent + "</picture>";
1562
- $currentSlide.prepend(imgMarkup);
1606
+ var picture = document.createElement('picture');
1607
+ picture.className = 'lg-img-wrap';
1608
+ $LG(picture).append(imgContent);
1609
+ $currentSlide.prepend(picture);
1563
1610
  };
1564
1611
  LightGallery.prototype.onSlideObjectLoad = function ($slide, isHTML5VideoWithoutPoster, onLoad, onError) {
1565
1612
  var mediaObject = $slide.find('.lg-object').first();
@@ -2489,7 +2536,8 @@
2489
2536
  LightGallery.prototype.isSlideElement = function (target) {
2490
2537
  return (target.hasClass('lg-outer') ||
2491
2538
  target.hasClass('lg-item') ||
2492
- target.hasClass('lg-img-wrap'));
2539
+ target.hasClass('lg-img-wrap') ||
2540
+ target.hasClass('lg-img-rotate'));
2493
2541
  };
2494
2542
  LightGallery.prototype.isPosterElement = function (target) {
2495
2543
  var playButton = this.getSlideItem(this.index)