lightgallery 2.3.0 → 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 (170) 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 +0 -1
  39. package/css/lightgallery-bundle.min.css +1 -1
  40. package/css/lightgallery-core.css +0 -1
  41. package/css/lightgallery.css +0 -1
  42. package/lg-events.d.ts +44 -0
  43. package/lg-settings.d.ts +3 -0
  44. package/lg-utils.d.ts +1 -1
  45. package/lib/lg-events.js +3 -0
  46. package/lib/lg-events.js.map +1 -1
  47. package/lib/lg-settings.js +8 -0
  48. package/lib/lg-settings.js.map +1 -1
  49. package/lib/lg-utils.js +2 -2
  50. package/lib/lg-utils.js.map +1 -1
  51. package/lib/lightgallery.js +11 -10
  52. package/lib/lightgallery.js.map +1 -1
  53. package/lib/plugins/autoplay/lg-autoplay-settings.js +1 -0
  54. package/lib/plugins/autoplay/lg-autoplay-settings.js.map +1 -1
  55. package/lib/plugins/autoplay/lg-autoplay.js +20 -11
  56. package/lib/plugins/autoplay/lg-autoplay.js.map +1 -1
  57. package/lib/plugins/comment/lg-comment-settings.js +1 -0
  58. package/lib/plugins/comment/lg-comment-settings.js.map +1 -1
  59. package/lib/plugins/comment/lg-comment.js +1 -1
  60. package/lib/plugins/comment/lg-comment.js.map +1 -1
  61. package/lib/plugins/fullscreen/lg-fullscreen-settings.js +1 -0
  62. package/lib/plugins/fullscreen/lg-fullscreen-settings.js.map +1 -1
  63. package/lib/plugins/fullscreen/lg-fullscreen.js +1 -2
  64. package/lib/plugins/fullscreen/lg-fullscreen.js.map +1 -1
  65. package/lib/plugins/rotate/lg-rotate-settings.js +6 -0
  66. package/lib/plugins/rotate/lg-rotate-settings.js.map +1 -1
  67. package/lib/plugins/rotate/lg-rotate.js +4 -8
  68. package/lib/plugins/rotate/lg-rotate.js.map +1 -1
  69. package/lib/plugins/share/lg-share-settings.js +1 -0
  70. package/lib/plugins/share/lg-share-settings.js.map +1 -1
  71. package/lib/plugins/share/lg-share.js +1 -1
  72. package/lib/plugins/share/lg-share.js.map +1 -1
  73. package/lib/plugins/thumbnail/lg-thumbnail-settings.js +1 -0
  74. package/lib/plugins/thumbnail/lg-thumbnail-settings.js.map +1 -1
  75. package/lib/plugins/thumbnail/lg-thumbnail.js +3 -1
  76. package/lib/plugins/thumbnail/lg-thumbnail.js.map +1 -1
  77. package/lib/plugins/zoom/lg-zoom-settings.js +5 -0
  78. package/lib/plugins/zoom/lg-zoom-settings.js.map +1 -1
  79. package/lib/plugins/zoom/lg-zoom.js +2 -2
  80. package/lib/plugins/zoom/lg-zoom.js.map +1 -1
  81. package/lightgallery.d.ts +1 -1
  82. package/lightgallery.es5.js +122 -110
  83. package/lightgallery.es5.js.map +1 -1
  84. package/lightgallery.min.js +2 -2
  85. package/lightgallery.umd.js +122 -110
  86. package/lightgallery.umd.js.map +1 -1
  87. package/lit/lightgallery.esm.js +6 -6
  88. package/lit/lightgallery.umd.js +3 -3
  89. package/package.json +1 -1
  90. package/plugins/autoplay/lg-autoplay-settings.d.ts +6 -0
  91. package/plugins/autoplay/lg-autoplay.d.ts +2 -2
  92. package/plugins/autoplay/lg-autoplay.es5.js +25 -12
  93. package/plugins/autoplay/lg-autoplay.es5.js.map +1 -1
  94. package/plugins/autoplay/lg-autoplay.min.js +2 -2
  95. package/plugins/autoplay/lg-autoplay.umd.js +25 -12
  96. package/plugins/autoplay/lg-autoplay.umd.js.map +1 -1
  97. package/plugins/comment/lg-comment-settings.d.ts +6 -0
  98. package/plugins/comment/lg-comment.es5.js +6 -2
  99. package/plugins/comment/lg-comment.es5.js.map +1 -1
  100. package/plugins/comment/lg-comment.min.js +2 -2
  101. package/plugins/comment/lg-comment.umd.js +6 -2
  102. package/plugins/comment/lg-comment.umd.js.map +1 -1
  103. package/plugins/fullscreen/lg-fullscreen-settings.d.ts +6 -0
  104. package/plugins/fullscreen/lg-fullscreen.es5.js +3 -3
  105. package/plugins/fullscreen/lg-fullscreen.es5.js.map +1 -1
  106. package/plugins/fullscreen/lg-fullscreen.min.js +2 -2
  107. package/plugins/fullscreen/lg-fullscreen.umd.js +3 -3
  108. package/plugins/fullscreen/lg-fullscreen.umd.js.map +1 -1
  109. package/plugins/hash/lg-hash.es5.js +4 -1
  110. package/plugins/hash/lg-hash.es5.js.map +1 -1
  111. package/plugins/hash/lg-hash.min.js +1 -1
  112. package/plugins/hash/lg-hash.umd.js +4 -1
  113. package/plugins/hash/lg-hash.umd.js.map +1 -1
  114. package/plugins/mediumZoom/lg-medium-zoom.es5.js +4 -1
  115. package/plugins/mediumZoom/lg-medium-zoom.es5.js.map +1 -1
  116. package/plugins/mediumZoom/lg-medium-zoom.min.js +1 -1
  117. package/plugins/mediumZoom/lg-medium-zoom.umd.js +4 -1
  118. package/plugins/mediumZoom/lg-medium-zoom.umd.js.map +1 -1
  119. package/plugins/pager/lg-pager.es5.js +4 -1
  120. package/plugins/pager/lg-pager.es5.js.map +1 -1
  121. package/plugins/pager/lg-pager.min.js +1 -1
  122. package/plugins/pager/lg-pager.umd.js +4 -1
  123. package/plugins/pager/lg-pager.umd.js.map +1 -1
  124. package/plugins/relativeCaption/lg-relative-caption.es5.js +4 -1
  125. package/plugins/relativeCaption/lg-relative-caption.es5.js.map +1 -1
  126. package/plugins/relativeCaption/lg-relative-caption.min.js +1 -1
  127. package/plugins/relativeCaption/lg-relative-caption.umd.js +4 -1
  128. package/plugins/relativeCaption/lg-relative-caption.umd.js.map +1 -1
  129. package/plugins/rotate/lg-rotate-settings.d.ts +12 -0
  130. package/plugins/rotate/lg-rotate.es5.js +14 -9
  131. package/plugins/rotate/lg-rotate.es5.js.map +1 -1
  132. package/plugins/rotate/lg-rotate.min.js +2 -2
  133. package/plugins/rotate/lg-rotate.umd.js +14 -9
  134. package/plugins/rotate/lg-rotate.umd.js.map +1 -1
  135. package/plugins/share/lg-share-settings.d.ts +9 -0
  136. package/plugins/share/lg-share.es5.js +6 -2
  137. package/plugins/share/lg-share.es5.js.map +1 -1
  138. package/plugins/share/lg-share.min.js +2 -2
  139. package/plugins/share/lg-share.umd.js +6 -2
  140. package/plugins/share/lg-share.umd.js.map +1 -1
  141. package/plugins/thumbnail/lg-thumbnail-settings.d.ts +6 -0
  142. package/plugins/thumbnail/lg-thumbnail.es5.js +8 -2
  143. package/plugins/thumbnail/lg-thumbnail.es5.js.map +1 -1
  144. package/plugins/thumbnail/lg-thumbnail.min.js +2 -2
  145. package/plugins/thumbnail/lg-thumbnail.umd.js +8 -2
  146. package/plugins/thumbnail/lg-thumbnail.umd.js.map +1 -1
  147. package/plugins/video/lg-video.es5.js +4 -1
  148. package/plugins/video/lg-video.es5.js.map +1 -1
  149. package/plugins/video/lg-video.min.js +1 -1
  150. package/plugins/video/lg-video.umd.js +4 -1
  151. package/plugins/video/lg-video.umd.js.map +1 -1
  152. package/plugins/zoom/lg-zoom-settings.d.ts +6 -0
  153. package/plugins/zoom/lg-zoom.es5.js +11 -3
  154. package/plugins/zoom/lg-zoom.es5.js.map +1 -1
  155. package/plugins/zoom/lg-zoom.min.js +2 -2
  156. package/plugins/zoom/lg-zoom.umd.js +11 -3
  157. package/plugins/zoom/lg-zoom.umd.js.map +1 -1
  158. package/react/Lightgallery.d.ts +5 -1
  159. package/react/Lightgallery.es5.js +151 -111
  160. package/react/Lightgallery.es5.js.map +1 -1
  161. package/react/Lightgallery.umd.js +151 -111
  162. package/react/Lightgallery.umd.js.map +1 -1
  163. package/scss/lightgallery-core.scss +0 -1
  164. package/vue/LightGallery.vue.d.ts +5 -1
  165. package/vue/LightGalleryVue.common.js +137 -109
  166. package/vue/LightGalleryVue.common.js.map +1 -1
  167. package/vue/LightGalleryVue.umd.js +137 -109
  168. package/vue/LightGalleryVue.umd.js.map +1 -1
  169. package/vue/LightGalleryVue.umd.min.js +1 -1
  170. package/vue/LightGalleryVue.umd.min.js.map +1 -1
@@ -32,7 +32,7 @@
32
32
  }
33
33
 
34
34
  /*!
35
- * lightgallery | 2.3.0 | October 28th 2021
35
+ * lightgallery | 2.4.0-beta.0 | December 12th 2021
36
36
  * http://www.lightgalleryjs.com/
37
37
  * Copyright (c) 2020 Sachin Neravath;
38
38
  * @license GPLv3
@@ -72,6 +72,116 @@
72
72
  return r;
73
73
  }
74
74
 
75
+ /**
76
+ * List of lightGallery events
77
+ * All events should be documented here
78
+ * Below interfaces are used to build the website documentations
79
+ * */
80
+ var lGEvents = {
81
+ afterAppendSlide: 'lgAfterAppendSlide',
82
+ init: 'lgInit',
83
+ hasVideo: 'lgHasVideo',
84
+ containerResize: 'lgContainerResize',
85
+ updateSlides: 'lgUpdateSlides',
86
+ afterAppendSubHtml: 'lgAfterAppendSubHtml',
87
+ beforeOpen: 'lgBeforeOpen',
88
+ afterOpen: 'lgAfterOpen',
89
+ slideItemLoad: 'lgSlideItemLoad',
90
+ beforeSlide: 'lgBeforeSlide',
91
+ afterSlide: 'lgAfterSlide',
92
+ posterClick: 'lgPosterClick',
93
+ dragStart: 'lgDragStart',
94
+ dragMove: 'lgDragMove',
95
+ dragEnd: 'lgDragEnd',
96
+ beforeNextSlide: 'lgBeforeNextSlide',
97
+ beforePrevSlide: 'lgBeforePrevSlide',
98
+ beforeClose: 'lgBeforeClose',
99
+ afterClose: 'lgAfterClose',
100
+ rotateLeft: 'lgRotateLeft',
101
+ rotateRight: 'lgRotateRight',
102
+ flipHorizontal: 'lgFlipHorizontal',
103
+ flipVertical: 'lgFlipVertical',
104
+ autoplay: 'lgAutoplay',
105
+ autoplayStart: 'lgAutoplayStart',
106
+ autoplayStop: 'lgAutoplayStop',
107
+ };
108
+
109
+ var lightGalleryCoreSettings = {
110
+ mode: 'lg-slide',
111
+ easing: 'ease',
112
+ speed: 400,
113
+ licenseKey: '0000-0000-000-0000',
114
+ height: '100%',
115
+ width: '100%',
116
+ addClass: '',
117
+ startClass: 'lg-start-zoom',
118
+ backdropDuration: 300,
119
+ container: '',
120
+ startAnimationDuration: 400,
121
+ zoomFromOrigin: true,
122
+ hideBarsDelay: 0,
123
+ showBarsAfter: 10000,
124
+ slideDelay: 0,
125
+ supportLegacyBrowser: true,
126
+ allowMediaOverlap: false,
127
+ videoMaxSize: '1280-720',
128
+ loadYouTubePoster: true,
129
+ defaultCaptionHeight: 0,
130
+ ariaLabelledby: '',
131
+ ariaDescribedby: '',
132
+ closable: true,
133
+ swipeToClose: true,
134
+ closeOnTap: true,
135
+ showCloseIcon: true,
136
+ showMaximizeIcon: false,
137
+ loop: true,
138
+ escKey: true,
139
+ keyPress: true,
140
+ controls: true,
141
+ slideEndAnimation: true,
142
+ hideControlOnEnd: false,
143
+ mousewheel: false,
144
+ getCaptionFromTitleOrAlt: true,
145
+ appendSubHtmlTo: '.lg-sub-html',
146
+ subHtmlSelectorRelative: false,
147
+ preload: 2,
148
+ numberOfSlideItemsInDom: 10,
149
+ selector: '',
150
+ selectWithin: '',
151
+ nextHtml: '',
152
+ prevHtml: '',
153
+ index: 0,
154
+ iframeWidth: '100%',
155
+ iframeHeight: '100%',
156
+ iframeMaxWidth: '100%',
157
+ iframeMaxHeight: '100%',
158
+ download: true,
159
+ counter: true,
160
+ appendCounterTo: '.lg-toolbar',
161
+ swipeThreshold: 50,
162
+ enableSwipe: true,
163
+ enableDrag: true,
164
+ dynamic: false,
165
+ dynamicEl: [],
166
+ extraProps: [],
167
+ exThumbImage: '',
168
+ isMobile: undefined,
169
+ mobileSettings: {
170
+ controls: false,
171
+ showCloseIcon: false,
172
+ download: false,
173
+ },
174
+ plugins: [],
175
+ strings: {
176
+ closeGallery: 'Close gallery',
177
+ toggleMaximize: 'Toggle maximize',
178
+ previousSlide: 'Previous slide',
179
+ nextSlide: 'Next slide',
180
+ download: 'Download',
181
+ playVideo: 'Play video',
182
+ },
183
+ };
184
+
75
185
  function initLgPolyfills() {
76
186
  (function () {
77
187
  if (typeof window.CustomEvent === 'function')
@@ -628,7 +738,7 @@
628
738
  // No other way of checking: assume it’s ok.
629
739
  return true;
630
740
  },
631
- getVideoPosterMarkup: function (_poster, dummyImg, videoContStyle, _isVideo) {
741
+ getVideoPosterMarkup: function (_poster, dummyImg, videoContStyle, playVideoString, _isVideo) {
632
742
  var videoClass = '';
633
743
  if (_isVideo && _isVideo.youtube) {
634
744
  videoClass = 'lg-has-youtube';
@@ -639,7 +749,7 @@
639
749
  else {
640
750
  videoClass = 'lg-has-html5';
641
751
  }
642
- 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>";
752
+ 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>";
643
753
  },
644
754
  /**
645
755
  * @desc Create dynamic elements array from gallery items when dynamic option is false
@@ -727,105 +837,6 @@
727
837
  },
728
838
  };
729
839
 
730
- var lightGalleryCoreSettings = {
731
- mode: 'lg-slide',
732
- easing: 'ease',
733
- speed: 400,
734
- licenseKey: '0000-0000-000-0000',
735
- height: '100%',
736
- width: '100%',
737
- addClass: '',
738
- startClass: 'lg-start-zoom',
739
- backdropDuration: 300,
740
- container: '',
741
- startAnimationDuration: 400,
742
- zoomFromOrigin: true,
743
- hideBarsDelay: 0,
744
- showBarsAfter: 10000,
745
- slideDelay: 0,
746
- supportLegacyBrowser: true,
747
- allowMediaOverlap: false,
748
- videoMaxSize: '1280-720',
749
- loadYouTubePoster: true,
750
- defaultCaptionHeight: 0,
751
- ariaLabelledby: '',
752
- ariaDescribedby: '',
753
- closable: true,
754
- swipeToClose: true,
755
- closeOnTap: true,
756
- showCloseIcon: true,
757
- showMaximizeIcon: false,
758
- loop: true,
759
- escKey: true,
760
- keyPress: true,
761
- controls: true,
762
- slideEndAnimation: true,
763
- hideControlOnEnd: false,
764
- mousewheel: false,
765
- getCaptionFromTitleOrAlt: true,
766
- appendSubHtmlTo: '.lg-sub-html',
767
- subHtmlSelectorRelative: false,
768
- preload: 2,
769
- numberOfSlideItemsInDom: 10,
770
- selector: '',
771
- selectWithin: '',
772
- nextHtml: '',
773
- prevHtml: '',
774
- index: 0,
775
- iframeWidth: '100%',
776
- iframeHeight: '100%',
777
- iframeMaxWidth: '100%',
778
- iframeMaxHeight: '100%',
779
- download: true,
780
- counter: true,
781
- appendCounterTo: '.lg-toolbar',
782
- swipeThreshold: 50,
783
- enableSwipe: true,
784
- enableDrag: true,
785
- dynamic: false,
786
- dynamicEl: [],
787
- extraProps: [],
788
- exThumbImage: '',
789
- isMobile: undefined,
790
- mobileSettings: {
791
- controls: false,
792
- showCloseIcon: false,
793
- download: false,
794
- },
795
- plugins: [],
796
- };
797
-
798
- /**
799
- * List of lightGallery events
800
- * All events should be documented here
801
- * Below interfaces are used to build the website documentations
802
- * */
803
- var lGEvents = {
804
- afterAppendSlide: 'lgAfterAppendSlide',
805
- init: 'lgInit',
806
- hasVideo: 'lgHasVideo',
807
- containerResize: 'lgContainerResize',
808
- updateSlides: 'lgUpdateSlides',
809
- afterAppendSubHtml: 'lgAfterAppendSubHtml',
810
- beforeOpen: 'lgBeforeOpen',
811
- afterOpen: 'lgAfterOpen',
812
- slideItemLoad: 'lgSlideItemLoad',
813
- beforeSlide: 'lgBeforeSlide',
814
- afterSlide: 'lgAfterSlide',
815
- posterClick: 'lgPosterClick',
816
- dragStart: 'lgDragStart',
817
- dragMove: 'lgDragMove',
818
- dragEnd: 'lgDragEnd',
819
- beforeNextSlide: 'lgBeforeNextSlide',
820
- beforePrevSlide: 'lgBeforePrevSlide',
821
- beforeClose: 'lgBeforeClose',
822
- afterClose: 'lgAfterClose',
823
- rotateLeft: 'lgRotateLeft',
824
- rotateRight: 'lgRotateRight',
825
- flipHorizontal: 'lgFlipHorizontal',
826
- flipVertical: 'lgFlipVertical',
827
- };
828
-
829
840
  // @ref - https://stackoverflow.com/questions/3971841/how-to-resize-images-proportionally-keeping-the-aspect-ratio
830
841
  // @ref - https://2ality.com/2017/04/setting-up-multi-platform-packages.html
831
842
  // Unique id for each gallery
@@ -997,7 +1008,7 @@
997
1008
  var subHtmlCont = '';
998
1009
  // Create controls
999
1010
  if (this.settings.controls) {
1000
- 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>";
1011
+ 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>";
1001
1012
  }
1002
1013
  if (this.settings.appendSubHtmlTo !== '.lg-item') {
1003
1014
  subHtmlCont =
@@ -1016,19 +1027,20 @@
1016
1027
  : '';
1017
1028
  var containerClassName = "lg-container " + this.settings.addClass + " " + (document.body !== this.settings.container ? 'lg-inline' : '');
1018
1029
  var closeIcon = this.settings.closable && this.settings.showCloseIcon
1019
- ? "<button type=\"button\" aria-label=\"Close gallery\" id=\"" + this.getIdName('lg-close') + "\" class=\"lg-close lg-icon\"></button>"
1030
+ ? "<button type=\"button\" aria-label=\"" + this.settings.strings['closeGallery'] + "\" id=\"" + this.getIdName('lg-close') + "\" class=\"lg-close lg-icon\"></button>"
1020
1031
  : '';
1021
1032
  var maximizeIcon = this.settings.showMaximizeIcon
1022
- ? "<button type=\"button\" aria-label=\"Toggle maximize\" id=\"" + this.getIdName('lg-maximize') + "\" class=\"lg-maximize lg-icon\"></button>"
1033
+ ? "<button type=\"button\" aria-label=\"" + this.settings.strings['toggleMaximize'] + "\" id=\"" + this.getIdName('lg-maximize') + "\" class=\"lg-maximize lg-icon\"></button>"
1023
1034
  : '';
1024
1035
  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'
1025
1036
  ? subHtmlCont
1026
1037
  : '') + "\n <div id=\"" + this.getIdName('lg-components') + "\" class=\"lg-components\">\n " + (this.settings.appendSubHtmlTo === '.lg-sub-html'
1027
1038
  ? subHtmlCont
1028
1039
  : '') + "\n </div>\n </div>\n </div>\n ";
1029
- $LG(this.settings.container)
1030
- .css('position', 'relative')
1031
- .append(template);
1040
+ $LG(this.settings.container).append(template);
1041
+ if (document.body !== this.settings.container) {
1042
+ $LG(this.settings.container).css('position', 'relative');
1043
+ }
1032
1044
  this.outer = this.getElementById('lg-outer');
1033
1045
  this.$lgComponents = this.getElementById('lg-components');
1034
1046
  this.$backdrop = this.getElementById('lg-backdrop');
@@ -1046,7 +1058,7 @@
1046
1058
  this.$inner.css('transition-timing-function', this.settings.easing);
1047
1059
  this.$inner.css('transition-duration', this.settings.speed + 'ms');
1048
1060
  if (this.settings.download) {
1049
- this.$toolbar.append("<a id=\"" + this.getIdName('lg-download') + "\" target=\"_blank\" rel=\"noopener\" aria-label=\"Download\" download class=\"lg-download lg-icon\"></a>");
1061
+ 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>");
1050
1062
  }
1051
1063
  this.counter();
1052
1064
  $LG(window).on("resize.lg.global" + this.lgId + " orientationchange.lg.global" + this.lgId, function () {
@@ -1626,7 +1638,7 @@
1626
1638
  if (hasStartAnimation) {
1627
1639
  dummyImg = this.getDummyImageContent($currentSlide, index, '');
1628
1640
  }
1629
- var markup = utils.getVideoPosterMarkup(poster, dummyImg || '', lgVideoStyle, videoInfo);
1641
+ var markup = utils.getVideoPosterMarkup(poster, dummyImg || '', lgVideoStyle, this.settings.strings['playVideo'], videoInfo);
1630
1642
  $currentSlide.prepend(markup);
1631
1643
  }
1632
1644
  else if (videoInfo) {
@@ -2685,9 +2697,13 @@
2685
2697
  onBeforePrevSlide: 'lgBeforePrevSlide',
2686
2698
  onBeforeClose: 'lgBeforeClose',
2687
2699
  onAfterClose: 'lgAfterClose',
2700
+ onRotateLeft: 'lgRotateLeft',
2701
+ onRotateRight: 'lgRotateRight',
2702
+ onFlipHorizontal: 'lgFlipHorizontal',
2703
+ onFlipVertical: 'lgFlipVertical',
2688
2704
  };
2689
2705
  var LG = function (_a) {
2690
- var children = _a.children, elementClassNames = _a.elementClassNames, onAfterAppendSlide = _a.onAfterAppendSlide, onInit = _a.onInit, onHasVideo = _a.onHasVideo, onContainerResize = _a.onContainerResize, onAfterAppendSubHtml = _a.onAfterAppendSubHtml, onBeforeOpen = _a.onBeforeOpen, onAfterOpen = _a.onAfterOpen, onSlideItemLoad = _a.onSlideItemLoad, onBeforeSlide = _a.onBeforeSlide, onAfterSlide = _a.onAfterSlide, onPosterClick = _a.onPosterClick, onDragStart = _a.onDragStart, onDragMove = _a.onDragMove, onDragEnd = _a.onDragEnd, onBeforeNextSlide = _a.onBeforeNextSlide, onBeforePrevSlide = _a.onBeforePrevSlide, onBeforeClose = _a.onBeforeClose, onAfterClose = _a.onAfterClose, restProps = __rest(_a, ["children", "elementClassNames", "onAfterAppendSlide", "onInit", "onHasVideo", "onContainerResize", "onAfterAppendSubHtml", "onBeforeOpen", "onAfterOpen", "onSlideItemLoad", "onBeforeSlide", "onAfterSlide", "onPosterClick", "onDragStart", "onDragMove", "onDragEnd", "onBeforeNextSlide", "onBeforePrevSlide", "onBeforeClose", "onAfterClose"]);
2706
+ var children = _a.children, elementClassNames = _a.elementClassNames, onAfterAppendSlide = _a.onAfterAppendSlide, onInit = _a.onInit, onHasVideo = _a.onHasVideo, onContainerResize = _a.onContainerResize, onAfterAppendSubHtml = _a.onAfterAppendSubHtml, onBeforeOpen = _a.onBeforeOpen, onAfterOpen = _a.onAfterOpen, onSlideItemLoad = _a.onSlideItemLoad, onBeforeSlide = _a.onBeforeSlide, onAfterSlide = _a.onAfterSlide, onPosterClick = _a.onPosterClick, onDragStart = _a.onDragStart, onDragMove = _a.onDragMove, onDragEnd = _a.onDragEnd, onBeforeNextSlide = _a.onBeforeNextSlide, onBeforePrevSlide = _a.onBeforePrevSlide, onBeforeClose = _a.onBeforeClose, onAfterClose = _a.onAfterClose, onRotateLeft = _a.onRotateLeft, onRotateRight = _a.onRotateRight, onFlipHorizontal = _a.onFlipHorizontal, onFlipVertical = _a.onFlipVertical, restProps = __rest(_a, ["children", "elementClassNames", "onAfterAppendSlide", "onInit", "onHasVideo", "onContainerResize", "onAfterAppendSubHtml", "onBeforeOpen", "onAfterOpen", "onSlideItemLoad", "onBeforeSlide", "onAfterSlide", "onPosterClick", "onDragStart", "onDragMove", "onDragEnd", "onBeforeNextSlide", "onBeforePrevSlide", "onBeforeClose", "onAfterClose", "onRotateLeft", "onRotateRight", "onFlipHorizontal", "onFlipVertical"]);
2691
2707
  var $lg = React.useRef(null);
2692
2708
  var registerEvents = React.useCallback(function () {
2693
2709
  if (onAfterAppendSlide && $lg && $lg.current) {
@@ -2780,10 +2796,34 @@
2780
2796
  onAfterClose(event.detail);
2781
2797
  }));
2782
2798
  }
2799
+ if (onRotateLeft && $lg && $lg.current) {
2800
+ $lg.current.addEventListener(LgMethods.onRotateLeft, (function (event) {
2801
+ onRotateLeft(event.detail);
2802
+ }));
2803
+ }
2804
+ if (onRotateRight && $lg && $lg.current) {
2805
+ $lg.current.addEventListener(LgMethods.onRotateRight, (function (event) {
2806
+ onRotateRight(event.detail);
2807
+ }));
2808
+ }
2809
+ if (onFlipHorizontal && $lg && $lg.current) {
2810
+ $lg.current.addEventListener(LgMethods.onFlipHorizontal, (function (event) {
2811
+ onFlipHorizontal(event.detail);
2812
+ }));
2813
+ }
2814
+ if (onFlipVertical && $lg && $lg.current) {
2815
+ $lg.current.addEventListener(LgMethods.onFlipVertical, (function (event) {
2816
+ onFlipVertical(event.detail);
2817
+ }));
2818
+ }
2783
2819
  }, [
2784
2820
  onAfterAppendSlide,
2785
2821
  onAfterAppendSubHtml,
2786
2822
  onAfterClose,
2823
+ onRotateLeft,
2824
+ onRotateRight,
2825
+ onFlipHorizontal,
2826
+ onFlipVertical,
2787
2827
  onAfterOpen,
2788
2828
  onAfterSlide,
2789
2829
  onBeforeClose,