lightgallery 2.3.0-beta.2 → 2.4.0-beta.0

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 (173) hide show
  1. package/README.md +4 -0
  2. package/angular/10/bundles/lightgallery-angular-10.umd.js +34 -1
  3. package/angular/10/bundles/lightgallery-angular-10.umd.js.map +1 -1
  4. package/angular/10/bundles/lightgallery-angular-10.umd.min.js +1 -1
  5. package/angular/10/bundles/lightgallery-angular-10.umd.min.js.map +1 -1
  6. package/angular/10/esm2015/lib/lightgallery-angular.component.js +35 -2
  7. package/angular/10/fesm2015/lightgallery-angular-10.js +34 -1
  8. package/angular/10/fesm2015/lightgallery-angular-10.js.map +1 -1
  9. package/angular/10/lib/lightgallery-angular.component.d.ts +6 -2
  10. package/angular/10/lib/lightgallery-angular.component.d.ts.map +1 -1
  11. package/angular/11/bundles/lightgallery-angular-11.umd.js +34 -1
  12. package/angular/11/bundles/lightgallery-angular-11.umd.js.map +1 -1
  13. package/angular/11/bundles/lightgallery-angular-11.umd.min.js +1 -1
  14. package/angular/11/bundles/lightgallery-angular-11.umd.min.js.map +1 -1
  15. package/angular/11/esm2015/lib/lightgallery-angular.component.js +35 -2
  16. package/angular/11/fesm2015/lightgallery-angular-11.js +34 -1
  17. package/angular/11/fesm2015/lightgallery-angular-11.js.map +1 -1
  18. package/angular/11/lib/lightgallery-angular.component.d.ts +6 -2
  19. package/angular/11/lib/lightgallery-angular.component.d.ts.map +1 -1
  20. package/angular/9/bundles/lightgallery-angular-9.umd.js +34 -1
  21. package/angular/9/bundles/lightgallery-angular-9.umd.js.map +1 -1
  22. package/angular/9/bundles/lightgallery-angular-9.umd.min.js +1 -1
  23. package/angular/9/bundles/lightgallery-angular-9.umd.min.js.map +1 -1
  24. package/angular/9/esm2015/lib/lightgallery-angular.component.js +35 -2
  25. package/angular/9/esm5/lib/lightgallery-angular.component.js +35 -2
  26. package/angular/9/fesm2015/lightgallery-angular-9.js +34 -1
  27. package/angular/9/fesm2015/lightgallery-angular-9.js.map +1 -1
  28. package/angular/9/fesm5/lightgallery-angular-9.js +34 -1
  29. package/angular/9/fesm5/lightgallery-angular-9.js.map +1 -1
  30. package/angular/9/lib/lightgallery-angular.component.d.ts +6 -2
  31. package/angular/bundles/lightgallery-angular.umd.js +34 -1
  32. package/angular/bundles/lightgallery-angular.umd.js.map +1 -1
  33. package/angular/esm2015/lib/lightgallery-angular.component.js +35 -2
  34. package/angular/fesm2015/lightgallery-angular.js +34 -1
  35. package/angular/fesm2015/lightgallery-angular.js.map +1 -1
  36. package/angular/lib/lightgallery-angular.component.d.ts +6 -2
  37. package/angular/lib/lightgallery-angular.component.d.ts.map +1 -1
  38. package/css/lightgallery-bundle.css +19 -27
  39. package/css/lightgallery-bundle.min.css +1 -1
  40. package/css/lightgallery-core.css +0 -20
  41. package/css/lightgallery.css +19 -27
  42. package/lg-events.d.ts +44 -0
  43. package/lg-settings.d.ts +20 -8
  44. package/lg-utils.d.ts +16 -4
  45. package/lib/lg-events.js +3 -0
  46. package/lib/lg-events.js.map +1 -1
  47. package/lib/lg-settings.js +12 -2
  48. package/lib/lg-settings.js.map +1 -1
  49. package/lib/lg-utils.js +4 -4
  50. package/lib/lg-utils.js.map +1 -1
  51. package/lib/lgQuery.js +31 -20
  52. package/lib/lgQuery.js.map +1 -1
  53. package/lib/lightgallery.js +30 -19
  54. package/lib/lightgallery.js.map +1 -1
  55. package/lib/plugins/autoplay/lg-autoplay-settings.js +1 -0
  56. package/lib/plugins/autoplay/lg-autoplay-settings.js.map +1 -1
  57. package/lib/plugins/autoplay/lg-autoplay.js +20 -11
  58. package/lib/plugins/autoplay/lg-autoplay.js.map +1 -1
  59. package/lib/plugins/comment/lg-comment-settings.js +1 -0
  60. package/lib/plugins/comment/lg-comment-settings.js.map +1 -1
  61. package/lib/plugins/comment/lg-comment.js +1 -1
  62. package/lib/plugins/comment/lg-comment.js.map +1 -1
  63. package/lib/plugins/fullscreen/lg-fullscreen-settings.js +1 -0
  64. package/lib/plugins/fullscreen/lg-fullscreen-settings.js.map +1 -1
  65. package/lib/plugins/fullscreen/lg-fullscreen.js +1 -2
  66. package/lib/plugins/fullscreen/lg-fullscreen.js.map +1 -1
  67. package/lib/plugins/rotate/lg-rotate-settings.js +6 -0
  68. package/lib/plugins/rotate/lg-rotate-settings.js.map +1 -1
  69. package/lib/plugins/rotate/lg-rotate.js +4 -8
  70. package/lib/plugins/rotate/lg-rotate.js.map +1 -1
  71. package/lib/plugins/share/lg-share-settings.js +1 -0
  72. package/lib/plugins/share/lg-share-settings.js.map +1 -1
  73. package/lib/plugins/share/lg-share.js +1 -1
  74. package/lib/plugins/share/lg-share.js.map +1 -1
  75. package/lib/plugins/thumbnail/lg-thumbnail-settings.js +1 -0
  76. package/lib/plugins/thumbnail/lg-thumbnail-settings.js.map +1 -1
  77. package/lib/plugins/thumbnail/lg-thumbnail.js +3 -1
  78. package/lib/plugins/thumbnail/lg-thumbnail.js.map +1 -1
  79. package/lib/plugins/zoom/lg-zoom-settings.js +5 -0
  80. package/lib/plugins/zoom/lg-zoom-settings.js.map +1 -1
  81. package/lib/plugins/zoom/lg-zoom.js +2 -2
  82. package/lib/plugins/zoom/lg-zoom.js.map +1 -1
  83. package/lightgallery.d.ts +1 -1
  84. package/lightgallery.es5.js +174 -139
  85. package/lightgallery.es5.js.map +1 -1
  86. package/lightgallery.min.js +2 -2
  87. package/lightgallery.umd.js +174 -139
  88. package/lightgallery.umd.js.map +1 -1
  89. package/lit/lightgallery.esm.js +7 -7
  90. package/lit/lightgallery.umd.js +3 -3
  91. package/package.json +1 -1
  92. package/plugins/autoplay/lg-autoplay-settings.d.ts +6 -0
  93. package/plugins/autoplay/lg-autoplay.d.ts +2 -2
  94. package/plugins/autoplay/lg-autoplay.es5.js +25 -12
  95. package/plugins/autoplay/lg-autoplay.es5.js.map +1 -1
  96. package/plugins/autoplay/lg-autoplay.min.js +2 -2
  97. package/plugins/autoplay/lg-autoplay.umd.js +25 -12
  98. package/plugins/autoplay/lg-autoplay.umd.js.map +1 -1
  99. package/plugins/comment/lg-comment-settings.d.ts +6 -0
  100. package/plugins/comment/lg-comment.es5.js +6 -2
  101. package/plugins/comment/lg-comment.es5.js.map +1 -1
  102. package/plugins/comment/lg-comment.min.js +2 -2
  103. package/plugins/comment/lg-comment.umd.js +6 -2
  104. package/plugins/comment/lg-comment.umd.js.map +1 -1
  105. package/plugins/fullscreen/lg-fullscreen-settings.d.ts +6 -0
  106. package/plugins/fullscreen/lg-fullscreen.es5.js +3 -3
  107. package/plugins/fullscreen/lg-fullscreen.es5.js.map +1 -1
  108. package/plugins/fullscreen/lg-fullscreen.min.js +2 -2
  109. package/plugins/fullscreen/lg-fullscreen.umd.js +3 -3
  110. package/plugins/fullscreen/lg-fullscreen.umd.js.map +1 -1
  111. package/plugins/hash/lg-hash.es5.js +4 -1
  112. package/plugins/hash/lg-hash.es5.js.map +1 -1
  113. package/plugins/hash/lg-hash.min.js +1 -1
  114. package/plugins/hash/lg-hash.umd.js +4 -1
  115. package/plugins/hash/lg-hash.umd.js.map +1 -1
  116. package/plugins/mediumZoom/lg-medium-zoom.es5.js +4 -1
  117. package/plugins/mediumZoom/lg-medium-zoom.es5.js.map +1 -1
  118. package/plugins/mediumZoom/lg-medium-zoom.min.js +1 -1
  119. package/plugins/mediumZoom/lg-medium-zoom.umd.js +4 -1
  120. package/plugins/mediumZoom/lg-medium-zoom.umd.js.map +1 -1
  121. package/plugins/pager/lg-pager.es5.js +4 -1
  122. package/plugins/pager/lg-pager.es5.js.map +1 -1
  123. package/plugins/pager/lg-pager.min.js +1 -1
  124. package/plugins/pager/lg-pager.umd.js +4 -1
  125. package/plugins/pager/lg-pager.umd.js.map +1 -1
  126. package/plugins/relativeCaption/lg-relative-caption.es5.js +4 -1
  127. package/plugins/relativeCaption/lg-relative-caption.es5.js.map +1 -1
  128. package/plugins/relativeCaption/lg-relative-caption.min.js +1 -1
  129. package/plugins/relativeCaption/lg-relative-caption.umd.js +4 -1
  130. package/plugins/relativeCaption/lg-relative-caption.umd.js.map +1 -1
  131. package/plugins/rotate/lg-rotate-settings.d.ts +12 -0
  132. package/plugins/rotate/lg-rotate.es5.js +14 -9
  133. package/plugins/rotate/lg-rotate.es5.js.map +1 -1
  134. package/plugins/rotate/lg-rotate.min.js +2 -2
  135. package/plugins/rotate/lg-rotate.umd.js +14 -9
  136. package/plugins/rotate/lg-rotate.umd.js.map +1 -1
  137. package/plugins/share/lg-share-settings.d.ts +9 -0
  138. package/plugins/share/lg-share.es5.js +6 -2
  139. package/plugins/share/lg-share.es5.js.map +1 -1
  140. package/plugins/share/lg-share.min.js +2 -2
  141. package/plugins/share/lg-share.umd.js +6 -2
  142. package/plugins/share/lg-share.umd.js.map +1 -1
  143. package/plugins/thumbnail/lg-thumbnail-settings.d.ts +6 -0
  144. package/plugins/thumbnail/lg-thumbnail.es5.js +8 -2
  145. package/plugins/thumbnail/lg-thumbnail.es5.js.map +1 -1
  146. package/plugins/thumbnail/lg-thumbnail.min.js +2 -2
  147. package/plugins/thumbnail/lg-thumbnail.umd.js +8 -2
  148. package/plugins/thumbnail/lg-thumbnail.umd.js.map +1 -1
  149. package/plugins/video/lg-video.es5.js +4 -1
  150. package/plugins/video/lg-video.es5.js.map +1 -1
  151. package/plugins/video/lg-video.min.js +1 -1
  152. package/plugins/video/lg-video.umd.js +4 -1
  153. package/plugins/video/lg-video.umd.js.map +1 -1
  154. package/plugins/zoom/lg-zoom-settings.d.ts +6 -0
  155. package/plugins/zoom/lg-zoom.es5.js +11 -3
  156. package/plugins/zoom/lg-zoom.es5.js.map +1 -1
  157. package/plugins/zoom/lg-zoom.min.js +2 -2
  158. package/plugins/zoom/lg-zoom.umd.js +11 -3
  159. package/plugins/zoom/lg-zoom.umd.js.map +1 -1
  160. package/react/Lightgallery.d.ts +5 -1
  161. package/react/Lightgallery.es5.js +203 -140
  162. package/react/Lightgallery.es5.js.map +1 -1
  163. package/react/Lightgallery.umd.js +203 -140
  164. package/react/Lightgallery.umd.js.map +1 -1
  165. package/scss/_lg-theme-default.scss +17 -10
  166. package/scss/lightgallery-core.scss +0 -25
  167. package/vue/LightGallery.vue.d.ts +5 -1
  168. package/vue/LightGalleryVue.common.js +317 -270
  169. package/vue/LightGalleryVue.common.js.map +1 -1
  170. package/vue/LightGalleryVue.umd.js +317 -270
  171. package/vue/LightGalleryVue.umd.js.map +1 -1
  172. package/vue/LightGalleryVue.umd.min.js +2 -2
  173. package/vue/LightGalleryVue.umd.min.js.map +1 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * lightgallery | 2.3.0-beta.2 | September 28th 2021
2
+ * lightgallery | 2.4.0-beta.0 | December 12th 2021
3
3
  * http://www.lightgalleryjs.com/
4
4
  * Copyright (c) 2020 Sachin Neravath;
5
5
  * @license GPLv3
@@ -39,24 +39,140 @@ function __spreadArrays() {
39
39
  return r;
40
40
  }
41
41
 
42
- (function () {
43
- if (typeof window.CustomEvent === 'function')
44
- return false;
45
- function CustomEvent(event, params) {
46
- params = params || { bubbles: false, cancelable: false, detail: null };
47
- var evt = document.createEvent('CustomEvent');
48
- evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);
49
- return evt;
50
- }
51
- window.CustomEvent = CustomEvent;
52
- })();
53
- (function () {
54
- if (!Element.prototype.matches) {
55
- Element.prototype.matches =
56
- Element.prototype.msMatchesSelector ||
57
- Element.prototype.webkitMatchesSelector;
58
- }
59
- })();
42
+ /**
43
+ * List of lightGallery events
44
+ * All events should be documented here
45
+ * Below interfaces are used to build the website documentations
46
+ * */
47
+ var lGEvents = {
48
+ afterAppendSlide: 'lgAfterAppendSlide',
49
+ init: 'lgInit',
50
+ hasVideo: 'lgHasVideo',
51
+ containerResize: 'lgContainerResize',
52
+ updateSlides: 'lgUpdateSlides',
53
+ afterAppendSubHtml: 'lgAfterAppendSubHtml',
54
+ beforeOpen: 'lgBeforeOpen',
55
+ afterOpen: 'lgAfterOpen',
56
+ slideItemLoad: 'lgSlideItemLoad',
57
+ beforeSlide: 'lgBeforeSlide',
58
+ afterSlide: 'lgAfterSlide',
59
+ posterClick: 'lgPosterClick',
60
+ dragStart: 'lgDragStart',
61
+ dragMove: 'lgDragMove',
62
+ dragEnd: 'lgDragEnd',
63
+ beforeNextSlide: 'lgBeforeNextSlide',
64
+ beforePrevSlide: 'lgBeforePrevSlide',
65
+ beforeClose: 'lgBeforeClose',
66
+ afterClose: 'lgAfterClose',
67
+ rotateLeft: 'lgRotateLeft',
68
+ rotateRight: 'lgRotateRight',
69
+ flipHorizontal: 'lgFlipHorizontal',
70
+ flipVertical: 'lgFlipVertical',
71
+ autoplay: 'lgAutoplay',
72
+ autoplayStart: 'lgAutoplayStart',
73
+ autoplayStop: 'lgAutoplayStop',
74
+ };
75
+
76
+ var lightGalleryCoreSettings = {
77
+ mode: 'lg-slide',
78
+ easing: 'ease',
79
+ speed: 400,
80
+ licenseKey: '0000-0000-000-0000',
81
+ height: '100%',
82
+ width: '100%',
83
+ addClass: '',
84
+ startClass: 'lg-start-zoom',
85
+ backdropDuration: 300,
86
+ container: '',
87
+ startAnimationDuration: 400,
88
+ zoomFromOrigin: true,
89
+ hideBarsDelay: 0,
90
+ showBarsAfter: 10000,
91
+ slideDelay: 0,
92
+ supportLegacyBrowser: true,
93
+ allowMediaOverlap: false,
94
+ videoMaxSize: '1280-720',
95
+ loadYouTubePoster: true,
96
+ defaultCaptionHeight: 0,
97
+ ariaLabelledby: '',
98
+ ariaDescribedby: '',
99
+ closable: true,
100
+ swipeToClose: true,
101
+ closeOnTap: true,
102
+ showCloseIcon: true,
103
+ showMaximizeIcon: false,
104
+ loop: true,
105
+ escKey: true,
106
+ keyPress: true,
107
+ controls: true,
108
+ slideEndAnimation: true,
109
+ hideControlOnEnd: false,
110
+ mousewheel: false,
111
+ getCaptionFromTitleOrAlt: true,
112
+ appendSubHtmlTo: '.lg-sub-html',
113
+ subHtmlSelectorRelative: false,
114
+ preload: 2,
115
+ numberOfSlideItemsInDom: 10,
116
+ selector: '',
117
+ selectWithin: '',
118
+ nextHtml: '',
119
+ prevHtml: '',
120
+ index: 0,
121
+ iframeWidth: '100%',
122
+ iframeHeight: '100%',
123
+ iframeMaxWidth: '100%',
124
+ iframeMaxHeight: '100%',
125
+ download: true,
126
+ counter: true,
127
+ appendCounterTo: '.lg-toolbar',
128
+ swipeThreshold: 50,
129
+ enableSwipe: true,
130
+ enableDrag: true,
131
+ dynamic: false,
132
+ dynamicEl: [],
133
+ extraProps: [],
134
+ exThumbImage: '',
135
+ isMobile: undefined,
136
+ mobileSettings: {
137
+ controls: false,
138
+ showCloseIcon: false,
139
+ download: false,
140
+ },
141
+ plugins: [],
142
+ strings: {
143
+ closeGallery: 'Close gallery',
144
+ toggleMaximize: 'Toggle maximize',
145
+ previousSlide: 'Previous slide',
146
+ nextSlide: 'Next slide',
147
+ download: 'Download',
148
+ playVideo: 'Play video',
149
+ },
150
+ };
151
+
152
+ function initLgPolyfills() {
153
+ (function () {
154
+ if (typeof window.CustomEvent === 'function')
155
+ return false;
156
+ function CustomEvent(event, params) {
157
+ params = params || {
158
+ bubbles: false,
159
+ cancelable: false,
160
+ detail: null,
161
+ };
162
+ var evt = document.createEvent('CustomEvent');
163
+ evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);
164
+ return evt;
165
+ }
166
+ window.CustomEvent = CustomEvent;
167
+ })();
168
+ (function () {
169
+ if (!Element.prototype.matches) {
170
+ Element.prototype.matches =
171
+ Element.prototype.msMatchesSelector ||
172
+ Element.prototype.webkitMatchesSelector;
173
+ }
174
+ })();
175
+ }
60
176
  var lgQuery = /** @class */ (function () {
61
177
  function lgQuery(selector) {
62
178
  this.cssVenderPrefixes = [
@@ -189,7 +305,9 @@ var lgQuery = /** @class */ (function () {
189
305
  this._each(function (el) {
190
306
  // IE doesn't support multiple arguments
191
307
  classNames.split(' ').forEach(function (className) {
192
- el.classList.add(className);
308
+ if (className) {
309
+ el.classList.add(className);
310
+ }
193
311
  });
194
312
  });
195
313
  return this;
@@ -198,7 +316,9 @@ var lgQuery = /** @class */ (function () {
198
316
  this._each(function (el) {
199
317
  // IE doesn't support multiple arguments
200
318
  classNames.split(' ').forEach(function (className) {
201
- el.classList.remove(className);
319
+ if (className) {
320
+ el.classList.remove(className);
321
+ }
202
322
  });
203
323
  });
204
324
  return this;
@@ -398,6 +518,7 @@ var lgQuery = /** @class */ (function () {
398
518
  return lgQuery;
399
519
  }());
400
520
  function $LG(selector) {
521
+ initLgPolyfills();
401
522
  return new lgQuery(selector);
402
523
  }
403
524
 
@@ -521,9 +642,9 @@ var utils = {
521
642
  ', 1)';
522
643
  return transform;
523
644
  },
524
- getIframeMarkup: function (iframeWidth, iframeHeight, src, iframeTitle) {
645
+ getIframeMarkup: function (iframeWidth, iframeHeight, iframeMaxWidth, iframeMaxHeight, src, iframeTitle) {
525
646
  var title = iframeTitle ? 'title="' + iframeTitle + '"' : '';
526
- return "<div class=\"lg-video-cont lg-has-iframe\" style=\"width:" + iframeWidth + "; height: " + iframeHeight + "\">\n <iframe class=\"lg-object\" frameborder=\"0\" " + title + " src=\"" + src + "\" allowfullscreen=\"true\"></iframe>\n </div>";
647
+ 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>";
527
648
  },
528
649
  getImgMarkup: function (index, src, altAttr, srcset, sizes, sources) {
529
650
  var srcsetAttr = srcset ? "srcset=\"" + srcset + "\"" : '';
@@ -584,7 +705,7 @@ var utils = {
584
705
  // No other way of checking: assume it’s ok.
585
706
  return true;
586
707
  },
587
- getVideoPosterMarkup: function (_poster, dummyImg, videoContStyle, _isVideo) {
708
+ getVideoPosterMarkup: function (_poster, dummyImg, videoContStyle, playVideoString, _isVideo) {
588
709
  var videoClass = '';
589
710
  if (_isVideo && _isVideo.youtube) {
590
711
  videoClass = 'lg-has-youtube';
@@ -595,7 +716,7 @@ var utils = {
595
716
  else {
596
717
  videoClass = 'lg-has-html5';
597
718
  }
598
- 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=\"Play video\"\n role=\"img\"\n class=\"lg-video-play-icon\"\n >\n <title>Play video</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>";
719
+ 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>";
599
720
  },
600
721
  /**
601
722
  * @desc Create dynamic elements array from gallery items when dynamic option is false
@@ -683,103 +804,6 @@ var utils = {
683
804
  },
684
805
  };
685
806
 
686
- var lightGalleryCoreSettings = {
687
- mode: 'lg-slide',
688
- easing: 'ease',
689
- speed: 400,
690
- licenseKey: '0000-0000-000-0000',
691
- height: '100%',
692
- width: '100%',
693
- addClass: '',
694
- startClass: 'lg-start-zoom',
695
- backdropDuration: 300,
696
- container: document.body,
697
- startAnimationDuration: 400,
698
- zoomFromOrigin: true,
699
- hideBarsDelay: 0,
700
- showBarsAfter: 10000,
701
- slideDelay: 0,
702
- supportLegacyBrowser: true,
703
- allowMediaOverlap: false,
704
- videoMaxSize: '1280-720',
705
- defaultCaptionHeight: 0,
706
- ariaLabelledby: '',
707
- ariaDescribedby: '',
708
- closable: true,
709
- swipeToClose: true,
710
- closeOnTap: true,
711
- showCloseIcon: true,
712
- showMaximizeIcon: false,
713
- loop: true,
714
- escKey: true,
715
- keyPress: true,
716
- controls: true,
717
- slideEndAnimation: true,
718
- hideControlOnEnd: false,
719
- mousewheel: false,
720
- getCaptionFromTitleOrAlt: true,
721
- appendSubHtmlTo: '.lg-sub-html',
722
- subHtmlSelectorRelative: false,
723
- preload: 2,
724
- numberOfSlideItemsInDom: 10,
725
- showAfterLoad: true,
726
- selector: '',
727
- selectWithin: '',
728
- nextHtml: '',
729
- prevHtml: '',
730
- index: 0,
731
- iframeWidth: '100%',
732
- iframeHeight: '100%',
733
- download: true,
734
- counter: true,
735
- appendCounterTo: '.lg-toolbar',
736
- swipeThreshold: 50,
737
- enableSwipe: true,
738
- enableDrag: true,
739
- dynamic: false,
740
- dynamicEl: [],
741
- extraProps: [],
742
- exThumbImage: '',
743
- isMobile: undefined,
744
- mobileSettings: {
745
- controls: false,
746
- showCloseIcon: false,
747
- download: false,
748
- },
749
- plugins: [],
750
- };
751
-
752
- /**
753
- * List of lightGallery events
754
- * All events should be documented here
755
- * Below interfaces are used to build the website documentations
756
- * */
757
- var lGEvents = {
758
- afterAppendSlide: 'lgAfterAppendSlide',
759
- init: 'lgInit',
760
- hasVideo: 'lgHasVideo',
761
- containerResize: 'lgContainerResize',
762
- updateSlides: 'lgUpdateSlides',
763
- afterAppendSubHtml: 'lgAfterAppendSubHtml',
764
- beforeOpen: 'lgBeforeOpen',
765
- afterOpen: 'lgAfterOpen',
766
- slideItemLoad: 'lgSlideItemLoad',
767
- beforeSlide: 'lgBeforeSlide',
768
- afterSlide: 'lgAfterSlide',
769
- posterClick: 'lgPosterClick',
770
- dragStart: 'lgDragStart',
771
- dragMove: 'lgDragMove',
772
- dragEnd: 'lgDragEnd',
773
- beforeNextSlide: 'lgBeforeNextSlide',
774
- beforePrevSlide: 'lgBeforePrevSlide',
775
- beforeClose: 'lgBeforeClose',
776
- afterClose: 'lgAfterClose',
777
- rotateLeft: 'lgRotateLeft',
778
- rotateRight: 'lgRotateRight',
779
- flipHorizontal: 'lgFlipHorizontal',
780
- flipVertical: 'lgFlipVertical',
781
- };
782
-
783
807
  // @ref - https://stackoverflow.com/questions/3971841/how-to-resize-images-proportionally-keeping-the-aspect-ratio
784
808
  // @ref - https://2ality.com/2017/04/setting-up-multi-platform-packages.html
785
809
  // Unique id for each gallery
@@ -951,7 +975,7 @@ var LightGallery = /** @class */ (function () {
951
975
  var subHtmlCont = '';
952
976
  // Create controls
953
977
  if (this.settings.controls) {
954
- controls = "<button type=\"button\" id=\"" + this.getIdName('lg-prev') + "\" aria-label=\"Previous slide\" class=\"lg-prev lg-icon\"> " + this.settings.prevHtml + " </button>\n <button type=\"button\" id=\"" + this.getIdName('lg-next') + "\" aria-label=\"Next slide\" class=\"lg-next lg-icon\"> " + this.settings.nextHtml + " </button>";
978
+ controls = "<button type=\"button\" id=\"" + this.getIdName('lg-prev') + "\" aria-label=\"" + this.settings.strings['previousSlide'] + "\" class=\"lg-prev lg-icon\"> " + this.settings.prevHtml + " </button>\n <button type=\"button\" id=\"" + this.getIdName('lg-next') + "\" aria-label=\"" + this.settings.strings['nextSlide'] + "\" class=\"lg-next lg-icon\"> " + this.settings.nextHtml + " </button>";
955
979
  }
956
980
  if (this.settings.appendSubHtmlTo !== '.lg-item') {
957
981
  subHtmlCont =
@@ -970,19 +994,20 @@ var LightGallery = /** @class */ (function () {
970
994
  : '';
971
995
  var containerClassName = "lg-container " + this.settings.addClass + " " + (document.body !== this.settings.container ? 'lg-inline' : '');
972
996
  var closeIcon = this.settings.closable && this.settings.showCloseIcon
973
- ? "<button type=\"button\" aria-label=\"Close gallery\" id=\"" + this.getIdName('lg-close') + "\" class=\"lg-close lg-icon\"></button>"
997
+ ? "<button type=\"button\" aria-label=\"" + this.settings.strings['closeGallery'] + "\" id=\"" + this.getIdName('lg-close') + "\" class=\"lg-close lg-icon\"></button>"
974
998
  : '';
975
999
  var maximizeIcon = this.settings.showMaximizeIcon
976
- ? "<button type=\"button\" aria-label=\"Toggle maximize\" id=\"" + this.getIdName('lg-maximize') + "\" class=\"lg-maximize lg-icon\"></button>"
1000
+ ? "<button type=\"button\" aria-label=\"" + this.settings.strings['toggleMaximize'] + "\" id=\"" + this.getIdName('lg-maximize') + "\" class=\"lg-maximize lg-icon\"></button>"
977
1001
  : '';
978
1002
  var template = "\n <div class=\"" + containerClassName + "\" id=\"" + this.getIdName('lg-container') + "\" tabindex=\"-1\" aria-modal=\"true\" " + ariaLabelledby + " " + ariaDescribedby + " role=\"dialog\"\n >\n <div id=\"" + this.getIdName('lg-backdrop') + "\" class=\"lg-backdrop\"></div>\n\n <div id=\"" + this.getIdName('lg-outer') + "\" class=\"lg-outer lg-use-css3 lg-css3 lg-hide-items " + addClasses + " \">\n\n <div id=\"" + this.getIdName('lg-content') + "\" class=\"lg-content\">\n <div id=\"" + this.getIdName('lg-inner') + "\" class=\"lg-inner\">\n </div>\n " + controls + "\n </div>\n <div id=\"" + this.getIdName('lg-toolbar') + "\" class=\"lg-toolbar lg-group\">\n " + maximizeIcon + "\n " + closeIcon + "\n </div>\n " + (this.settings.appendSubHtmlTo === '.lg-outer'
979
1003
  ? subHtmlCont
980
1004
  : '') + "\n <div id=\"" + this.getIdName('lg-components') + "\" class=\"lg-components\">\n " + (this.settings.appendSubHtmlTo === '.lg-sub-html'
981
1005
  ? subHtmlCont
982
1006
  : '') + "\n </div>\n </div>\n </div>\n ";
983
- $LG(this.settings.container)
984
- .css('position', 'relative')
985
- .append(template);
1007
+ $LG(this.settings.container).append(template);
1008
+ if (document.body !== this.settings.container) {
1009
+ $LG(this.settings.container).css('position', 'relative');
1010
+ }
986
1011
  this.outer = this.getElementById('lg-outer');
987
1012
  this.$lgComponents = this.getElementById('lg-components');
988
1013
  this.$backdrop = this.getElementById('lg-backdrop');
@@ -996,14 +1021,11 @@ var LightGallery = /** @class */ (function () {
996
1021
  if (this.settings.enableDrag) {
997
1022
  outerClassNames += 'lg-grab ';
998
1023
  }
999
- if (this.settings.showAfterLoad) {
1000
- outerClassNames += 'lg-show-after-load';
1001
- }
1002
1024
  this.outer.addClass(outerClassNames);
1003
1025
  this.$inner.css('transition-timing-function', this.settings.easing);
1004
1026
  this.$inner.css('transition-duration', this.settings.speed + 'ms');
1005
1027
  if (this.settings.download) {
1006
- this.$toolbar.append("<a id=\"" + this.getIdName('lg-download') + "\" target=\"_blank\" rel=\"noopener\" aria-label=\"Download\" download class=\"lg-download lg-icon\"></a>");
1028
+ this.$toolbar.append("<a id=\"" + this.getIdName('lg-download') + "\" target=\"_blank\" rel=\"noopener\" aria-label=\"" + this.settings.strings['download'] + "\" download class=\"lg-download lg-icon\"></a>");
1007
1029
  }
1008
1030
  this.counter();
1009
1031
  $LG(window).on("resize.lg.global" + this.lgId + " orientationchange.lg.global" + this.lgId, function () {
@@ -1522,8 +1544,15 @@ var LightGallery = /** @class */ (function () {
1522
1544
  };
1523
1545
  // Add video slideInfo
1524
1546
  LightGallery.prototype.addSlideVideoInfo = function (items) {
1547
+ var _this = this;
1525
1548
  items.forEach(function (element, index) {
1526
1549
  element.__slideVideoInfo = utils.isVideo(element.src, !!element.video, index);
1550
+ if (element.__slideVideoInfo &&
1551
+ _this.settings.loadYouTubePoster &&
1552
+ !element.poster &&
1553
+ element.__slideVideoInfo.youtube) {
1554
+ element.poster = "//img.youtube.com/vi/" + element.__slideVideoInfo.youtube[1] + "/maxresdefault.jpg";
1555
+ }
1527
1556
  });
1528
1557
  };
1529
1558
  /**
@@ -1565,7 +1594,7 @@ var LightGallery = /** @class */ (function () {
1565
1594
  lgVideoStyle = this.getVideoContStyle(videoSize);
1566
1595
  }
1567
1596
  if (iframe) {
1568
- var markup = utils.getIframeMarkup(this.settings.iframeWidth, this.settings.iframeHeight, src, currentGalleryItem.iframeTitle);
1597
+ var markup = utils.getIframeMarkup(this.settings.iframeWidth, this.settings.iframeHeight, this.settings.iframeMaxWidth, this.settings.iframeMaxHeight, src, currentGalleryItem.iframeTitle);
1569
1598
  $currentSlide.prepend(markup);
1570
1599
  }
1571
1600
  else if (poster) {
@@ -1576,7 +1605,7 @@ var LightGallery = /** @class */ (function () {
1576
1605
  if (hasStartAnimation) {
1577
1606
  dummyImg = this.getDummyImageContent($currentSlide, index, '');
1578
1607
  }
1579
- var markup = utils.getVideoPosterMarkup(poster, dummyImg || '', lgVideoStyle, videoInfo);
1608
+ var markup = utils.getVideoPosterMarkup(poster, dummyImg || '', lgVideoStyle, this.settings.strings['playVideo'], videoInfo);
1580
1609
  $currentSlide.prepend(markup);
1581
1610
  }
1582
1611
  else if (videoInfo) {
@@ -2359,17 +2388,23 @@ var LightGallery = /** @class */ (function () {
2359
2388
  };
2360
2389
  LightGallery.prototype.mousewheel = function () {
2361
2390
  var _this = this;
2362
- this.outer.on('mousewheel.lg', function (e) {
2391
+ var lastCall = 0;
2392
+ this.outer.on('wheel.lg', function (e) {
2363
2393
  if (!e.deltaY || _this.galleryItems.length < 2) {
2364
2394
  return;
2365
2395
  }
2366
- if (e.deltaY > 0) {
2367
- _this.goToPrevSlide();
2396
+ e.preventDefault();
2397
+ var now = new Date().getTime();
2398
+ if (now - lastCall < 1000) {
2399
+ return;
2368
2400
  }
2369
- else {
2401
+ lastCall = now;
2402
+ if (e.deltaY > 0) {
2370
2403
  _this.goToNextSlide();
2371
2404
  }
2372
- e.preventDefault();
2405
+ else if (e.deltaY < 0) {
2406
+ _this.goToPrevSlide();
2407
+ }
2373
2408
  });
2374
2409
  };
2375
2410
  LightGallery.prototype.isSlideElement = function (target) {