lightgallery 2.9.0 → 3.0.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.
Files changed (619) hide show
  1. package/LICENSE +690 -0
  2. package/README.md +31 -21
  3. package/dist/README.md +229 -0
  4. package/{css → dist/css}/lg-autoplay.css +7 -4
  5. package/{css → dist/css}/lg-autoplay.css.map +1 -1
  6. package/{css → dist/css}/lg-comments.css +0 -6
  7. package/{css → dist/css}/lg-comments.css.map +1 -1
  8. package/dist/css/lg-fullscreen.css +11 -0
  9. package/dist/css/lg-fullscreen.css.map +1 -0
  10. package/dist/css/lg-justified.css +37 -0
  11. package/dist/css/lg-justified.css.map +1 -0
  12. package/{css → dist/css}/lg-pager.css.map +1 -1
  13. package/{css → dist/css}/lg-rotate.css +0 -16
  14. package/{css → dist/css}/lg-rotate.css.map +1 -1
  15. package/dist/css/lg-rtl.css +94 -0
  16. package/dist/css/lg-rtl.css.map +1 -0
  17. package/{css → dist/css}/lg-share.css +4 -32
  18. package/dist/css/lg-share.css.map +1 -0
  19. package/{css → dist/css}/lg-thumbnail.css +7 -3
  20. package/dist/css/lg-thumbnail.css.map +1 -0
  21. package/{css → dist/css}/lg-transitions.css +10 -0
  22. package/dist/css/lg-transitions.css.map +1 -0
  23. package/{css → dist/css}/lg-zoom.css +20 -9
  24. package/dist/css/lg-zoom.css.map +1 -0
  25. package/{css → dist/css}/lightgallery-bundle.css +150 -118
  26. package/dist/css/lightgallery-bundle.css.map +1 -0
  27. package/dist/css/lightgallery-bundle.min.css +1 -0
  28. package/{css → dist/css}/lightgallery-core.css +49 -7
  29. package/dist/css/lightgallery-core.css.map +1 -0
  30. package/{css → dist/css}/lightgallery.css +105 -44
  31. package/dist/css/lightgallery.css.map +1 -0
  32. package/dist/lightgallery.es5.js +3797 -0
  33. package/dist/lightgallery.es5.js.map +1 -0
  34. package/dist/lightgallery.min.js +1 -0
  35. package/dist/lightgallery.umd.js +3800 -0
  36. package/dist/lightgallery.umd.js.map +1 -0
  37. package/dist/package.json +33 -0
  38. package/dist/plugins/autoplay/lg-autoplay.es5.js +193 -0
  39. package/dist/plugins/autoplay/lg-autoplay.es5.js.map +1 -0
  40. package/dist/plugins/autoplay/lg-autoplay.min.js +1 -0
  41. package/dist/plugins/autoplay/lg-autoplay.umd.js +196 -0
  42. package/dist/plugins/autoplay/lg-autoplay.umd.js.map +1 -0
  43. package/dist/plugins/autoplay/package.json +7 -0
  44. package/dist/plugins/comment/lg-comment.es5.js +136 -0
  45. package/dist/plugins/comment/lg-comment.es5.js.map +1 -0
  46. package/dist/plugins/comment/lg-comment.min.js +1 -0
  47. package/dist/plugins/comment/lg-comment.umd.js +139 -0
  48. package/dist/plugins/comment/lg-comment.umd.js.map +1 -0
  49. package/dist/plugins/comment/package.json +7 -0
  50. package/dist/plugins/fullscreen/lg-fullscreen.es5.js +114 -0
  51. package/dist/plugins/fullscreen/lg-fullscreen.es5.js.map +1 -0
  52. package/dist/plugins/fullscreen/lg-fullscreen.min.js +1 -0
  53. package/dist/plugins/fullscreen/lg-fullscreen.umd.js +117 -0
  54. package/dist/plugins/fullscreen/lg-fullscreen.umd.js.map +1 -0
  55. package/dist/plugins/fullscreen/package.json +7 -0
  56. package/dist/plugins/hash/lg-hash.es5.js +207 -0
  57. package/dist/plugins/hash/lg-hash.es5.js.map +1 -0
  58. package/dist/plugins/hash/lg-hash.min.js +1 -0
  59. package/dist/plugins/hash/lg-hash.umd.js +210 -0
  60. package/dist/plugins/hash/lg-hash.umd.js.map +1 -0
  61. package/dist/plugins/hash/package.json +7 -0
  62. package/dist/plugins/justified/lg-justified.es5.js +415 -0
  63. package/dist/plugins/justified/lg-justified.es5.js.map +1 -0
  64. package/dist/plugins/justified/lg-justified.min.js +1 -0
  65. package/dist/plugins/justified/lg-justified.umd.js +418 -0
  66. package/dist/plugins/justified/lg-justified.umd.js.map +1 -0
  67. package/dist/plugins/justified/package.json +7 -0
  68. package/dist/plugins/mediumZoom/lg-medium-zoom.es5.js +95 -0
  69. package/dist/plugins/mediumZoom/lg-medium-zoom.es5.js.map +1 -0
  70. package/dist/plugins/mediumZoom/lg-medium-zoom.min.js +1 -0
  71. package/dist/plugins/mediumZoom/lg-medium-zoom.umd.js +98 -0
  72. package/dist/plugins/mediumZoom/lg-medium-zoom.umd.js.map +1 -0
  73. package/dist/plugins/mediumZoom/package.json +7 -0
  74. package/dist/plugins/originCrop/lg-origin-crop.es5.js +622 -0
  75. package/dist/plugins/originCrop/lg-origin-crop.es5.js.map +1 -0
  76. package/dist/plugins/originCrop/lg-origin-crop.min.js +1 -0
  77. package/dist/plugins/originCrop/lg-origin-crop.umd.js +625 -0
  78. package/dist/plugins/originCrop/lg-origin-crop.umd.js.map +1 -0
  79. package/dist/plugins/pager/lg-pager.es5.js +96 -0
  80. package/dist/plugins/pager/lg-pager.es5.js.map +1 -0
  81. package/dist/plugins/pager/lg-pager.min.js +1 -0
  82. package/dist/plugins/pager/lg-pager.umd.js +99 -0
  83. package/dist/plugins/pager/lg-pager.umd.js.map +1 -0
  84. package/dist/plugins/pager/package.json +7 -0
  85. package/dist/plugins/relativeCaption/lg-relative-caption.es5.js +98 -0
  86. package/dist/plugins/relativeCaption/lg-relative-caption.es5.js.map +1 -0
  87. package/dist/plugins/relativeCaption/lg-relative-caption.min.js +1 -0
  88. package/dist/plugins/relativeCaption/lg-relative-caption.umd.js +101 -0
  89. package/dist/plugins/relativeCaption/lg-relative-caption.umd.js.map +1 -0
  90. package/dist/plugins/relativeCaption/package.json +7 -0
  91. package/dist/plugins/rotate/lg-rotate.es5.js +226 -0
  92. package/dist/plugins/rotate/lg-rotate.es5.js.map +1 -0
  93. package/dist/plugins/rotate/lg-rotate.min.js +1 -0
  94. package/dist/plugins/rotate/lg-rotate.umd.js +229 -0
  95. package/dist/plugins/rotate/lg-rotate.umd.js.map +1 -0
  96. package/dist/plugins/rotate/package.json +7 -0
  97. package/dist/plugins/share/lg-share.es5.js +309 -0
  98. package/dist/plugins/share/lg-share.es5.js.map +1 -0
  99. package/dist/plugins/share/lg-share.min.js +1 -0
  100. package/dist/plugins/share/lg-share.umd.js +312 -0
  101. package/dist/plugins/share/lg-share.umd.js.map +1 -0
  102. package/dist/plugins/share/package.json +7 -0
  103. package/dist/plugins/thumbnail/lg-thumbnail.es5.js +792 -0
  104. package/dist/plugins/thumbnail/lg-thumbnail.es5.js.map +1 -0
  105. package/dist/plugins/thumbnail/lg-thumbnail.min.js +1 -0
  106. package/dist/plugins/thumbnail/lg-thumbnail.umd.js +795 -0
  107. package/dist/plugins/thumbnail/lg-thumbnail.umd.js.map +1 -0
  108. package/dist/plugins/thumbnail/package.json +7 -0
  109. package/dist/plugins/video/lg-video.es5.js +518 -0
  110. package/dist/plugins/video/lg-video.es5.js.map +1 -0
  111. package/dist/plugins/video/lg-video.min.js +1 -0
  112. package/dist/plugins/video/lg-video.umd.js +521 -0
  113. package/dist/plugins/video/lg-video.umd.js.map +1 -0
  114. package/dist/plugins/video/package.json +7 -0
  115. package/dist/plugins/vimeoThumbnail/lg-vimeo-thumbnail.es5.js +72 -0
  116. package/dist/plugins/vimeoThumbnail/lg-vimeo-thumbnail.es5.js.map +1 -0
  117. package/dist/plugins/vimeoThumbnail/lg-vimeo-thumbnail.min.js +1 -0
  118. package/dist/plugins/vimeoThumbnail/lg-vimeo-thumbnail.umd.js +75 -0
  119. package/dist/plugins/vimeoThumbnail/lg-vimeo-thumbnail.umd.js.map +1 -0
  120. package/dist/plugins/vimeoThumbnail/package.json +7 -0
  121. package/dist/plugins/zoom/lg-zoom.es5.js +1412 -0
  122. package/dist/plugins/zoom/lg-zoom.es5.js.map +1 -0
  123. package/dist/plugins/zoom/lg-zoom.min.js +1 -0
  124. package/dist/plugins/zoom/lg-zoom.umd.js +1415 -0
  125. package/dist/plugins/zoom/lg-zoom.umd.js.map +1 -0
  126. package/dist/plugins/zoom/package.json +7 -0
  127. package/{scss → dist/scss}/_lg-theme-default.scss +68 -18
  128. package/{scss → dist/scss}/_lg-variables.scss +0 -1
  129. package/{scss → dist/scss}/lg-autoplay.scss +10 -4
  130. package/{scss → dist/scss}/lg-comments.scss +0 -8
  131. package/dist/scss/lg-fullscreen.scss +15 -0
  132. package/dist/scss/lg-justified.scss +63 -0
  133. package/{scss → dist/scss}/lg-rotate.scss +0 -24
  134. package/dist/scss/lg-rtl.scss +145 -0
  135. package/{scss → dist/scss}/lg-share.scss +6 -33
  136. package/{scss → dist/scss}/lg-thumbnail.scss +16 -5
  137. package/{scss → dist/scss}/lg-zoom.scss +46 -9
  138. package/{scss → dist/scss}/lightgallery-bundle.scss +0 -1
  139. package/{scss → dist/scss}/lightgallery-core.scss +73 -6
  140. package/{scss → dist/scss}/lightgallery.scss +0 -1
  141. package/{scss → dist/scss}/transitions/_lg-scale-up.scss +6 -0
  142. package/{scss → dist/scss}/transitions/_lg-slide-circular-vertical.scss +6 -0
  143. package/{scss → dist/scss}/transitions/_lg-slide-circular.scss +6 -0
  144. package/{scss → dist/scss}/transitions/_lg-soft-zoom.scss +6 -0
  145. package/{scss → dist/scss}/transitions/_lg-zoom-in-big.scss +6 -0
  146. package/{scss → dist/scss}/transitions/_lg-zoom-in-out.scss +6 -0
  147. package/{scss → dist/scss}/transitions/_lg-zoom-in.scss +6 -0
  148. package/{scss → dist/scss}/transitions/_lg-zoom-out-big.scss +6 -0
  149. package/{scss → dist/scss}/transitions/_lg-zoom-out-in.scss +6 -0
  150. package/{scss → dist/scss}/transitions/_lg-zoom-out.scss +6 -0
  151. package/dist/types/headless/announce.d.ts +22 -0
  152. package/dist/types/headless/emitter.d.ts +14 -0
  153. package/dist/types/headless/gestures.d.ts +128 -0
  154. package/dist/types/headless/hash-driver.d.ts +77 -0
  155. package/dist/types/headless/icons.d.ts +56 -0
  156. package/dist/types/headless/index.d.ts +34 -0
  157. package/dist/types/headless/items.d.ts +92 -0
  158. package/dist/types/headless/justified-layout.d.ts +71 -0
  159. package/dist/types/headless/license.d.ts +35 -0
  160. package/dist/types/headless/origin-crop.d.ts +135 -0
  161. package/dist/types/headless/origin.d.ts +65 -0
  162. package/dist/types/headless/plugin-slices.d.ts +64 -0
  163. package/dist/types/headless/preload.d.ts +36 -0
  164. package/dist/types/headless/responsive.d.ts +90 -0
  165. package/dist/types/headless/settings.d.ts +268 -0
  166. package/dist/types/headless/share-urls.d.ts +60 -0
  167. package/dist/types/headless/spring.d.ts +42 -0
  168. package/dist/types/headless/state.d.ts +63 -0
  169. package/dist/types/headless/thumb-math.d.ts +85 -0
  170. package/dist/types/headless/toolbar-overflow.d.ts +61 -0
  171. package/dist/types/headless/transition.d.ts +33 -0
  172. package/dist/types/headless/velocity.d.ts +31 -0
  173. package/dist/types/headless/video-urls.d.ts +64 -0
  174. package/dist/types/headless/zoom-math.d.ts +89 -0
  175. package/{index.d.ts → dist/types/index.d.ts} +9 -4
  176. package/{lg-events.d.ts → dist/types/lg-events.d.ts} +300 -300
  177. package/dist/types/lg-icons.d.ts +27 -0
  178. package/{lg-plugin.d.ts → dist/types/lg-plugin.d.ts} +7 -7
  179. package/{lg-settings.d.ts → dist/types/lg-settings.d.ts} +549 -425
  180. package/dist/types/lg-spring-runner.d.ts +14 -0
  181. package/dist/types/lg-toolbar-overflow.d.ts +36 -0
  182. package/{lg-utils.d.ts → dist/types/lg-utils.d.ts} +236 -228
  183. package/{lgQuery.d.ts → dist/types/lgQuery.d.ts} +56 -56
  184. package/{lightgallery.d.ts → dist/types/lightgallery.d.ts} +384 -305
  185. package/{plugins → dist/types/plugins}/autoplay/lg-autoplay-settings.d.ts +41 -38
  186. package/{plugins → dist/types/plugins}/autoplay/lg-autoplay.d.ts +22 -22
  187. package/{plugins → dist/types/plugins}/comment/lg-comment-settings.d.ts +36 -33
  188. package/{plugins → dist/types/plugins}/comment/lg-comment.d.ts +25 -25
  189. package/{plugins → dist/types/plugins}/fullscreen/lg-fullscreen-settings.d.ts +17 -14
  190. package/{plugins → dist/types/plugins}/fullscreen/lg-fullscreen.d.ts +16 -16
  191. package/dist/types/plugins/hash/lg-hash-settings.d.ts +28 -0
  192. package/{plugins → dist/types/plugins}/hash/lg-hash.d.ts +25 -23
  193. package/dist/types/plugins/justified/lg-justified-settings.d.ts +42 -0
  194. package/dist/types/plugins/justified/lg-justified.d.ts +55 -0
  195. package/{plugins → dist/types/plugins}/mediumZoom/lg-medium-zoom-settings.d.ts +16 -16
  196. package/{plugins → dist/types/plugins}/mediumZoom/lg-medium-zoom.d.ts +12 -12
  197. package/dist/types/plugins/originCrop/lg-origin-crop-settings.d.ts +12 -0
  198. package/dist/types/plugins/originCrop/lg-origin-crop.d.ts +79 -0
  199. package/{plugins → dist/types/plugins}/pager/lg-pager-settings.d.ts +7 -7
  200. package/{plugins → dist/types/plugins}/pager/lg-pager.d.ts +13 -13
  201. package/{plugins → dist/types/plugins}/relativeCaption/lg-relative-caption-settings.d.ts +7 -7
  202. package/{plugins → dist/types/plugins}/relativeCaption/lg-relative-caption.d.ts +14 -14
  203. package/{plugins → dist/types/plugins}/rotate/lg-rotate-settings.d.ts +47 -45
  204. package/{plugins → dist/types/plugins}/rotate/lg-rotate.d.ts +25 -24
  205. package/{plugins → dist/types/plugins}/share/lg-fb-share-utils.d.ts +2 -2
  206. package/{plugins → dist/types/plugins}/share/lg-pinterest-share-utils.d.ts +2 -2
  207. package/{plugins → dist/types/plugins}/share/lg-share-settings.d.ts +71 -56
  208. package/dist/types/plugins/share/lg-share.d.ts +33 -0
  209. package/dist/types/plugins/share/lg-twitter-share-utils.d.ts +4 -0
  210. package/{plugins → dist/types/plugins}/share/types.d.ts +6 -6
  211. package/{plugins → dist/types/plugins}/thumbnail/lg-thumbnail-settings.d.ts +85 -70
  212. package/dist/types/plugins/thumbnail/lg-thumbnail.d.ts +88 -0
  213. package/{plugins → dist/types/plugins}/video/lg-video-settings.d.ts +94 -71
  214. package/{plugins → dist/types/plugins}/video/lg-video.d.ts +116 -104
  215. package/{plugins → dist/types/plugins}/video/types.d.ts +8 -8
  216. package/{plugins → dist/types/plugins}/vimeoThumbnail/lg-vimeo-thumbnail-settings.d.ts +11 -11
  217. package/{plugins → dist/types/plugins}/vimeoThumbnail/lg-vimeo-thumbnail.d.ts +14 -14
  218. package/{plugins → dist/types/plugins}/zoom/lg-zoom-settings.d.ts +54 -51
  219. package/{plugins → dist/types/plugins}/zoom/lg-zoom.d.ts +145 -108
  220. package/{types.d.ts → dist/types/types.d.ts} +40 -40
  221. package/package.json +222 -8
  222. package/angular/10/README.md +0 -24
  223. package/angular/10/bundles/lightgallery-angular-10.umd.js +0 -289
  224. package/angular/10/bundles/lightgallery-angular-10.umd.js.map +0 -1
  225. package/angular/10/bundles/lightgallery-angular-10.umd.min.js +0 -2
  226. package/angular/10/bundles/lightgallery-angular-10.umd.min.js.map +0 -1
  227. package/angular/10/esm2015/lib/lightgallery-angular.component.js +0 -225
  228. package/angular/10/esm2015/lib/lightgallery-angular.module.js +0 -17
  229. package/angular/10/esm2015/lib/lightgallery-angular.service.js +0 -14
  230. package/angular/10/esm2015/lightgallery-angular-10.js +0 -5
  231. package/angular/10/esm2015/public-api.js +0 -7
  232. package/angular/10/fesm2015/lightgallery-angular-10.js +0 -261
  233. package/angular/10/fesm2015/lightgallery-angular-10.js.map +0 -1
  234. package/angular/10/lib/lightgallery-angular.component.d.ts +0 -39
  235. package/angular/10/lib/lightgallery-angular.component.d.ts.map +0 -1
  236. package/angular/10/lib/lightgallery-angular.module.d.ts +0 -7
  237. package/angular/10/lib/lightgallery-angular.module.d.ts.map +0 -1
  238. package/angular/10/lib/lightgallery-angular.service.d.ts +0 -7
  239. package/angular/10/lib/lightgallery-angular.service.d.ts.map +0 -1
  240. package/angular/10/lightgallery-angular-10.d.ts +0 -6
  241. package/angular/10/lightgallery-angular-10.d.ts.map +0 -1
  242. package/angular/10/package.json +0 -21
  243. package/angular/10/public-api.d.ts +0 -4
  244. package/angular/10/public-api.d.ts.map +0 -1
  245. package/angular/11/README.md +0 -24
  246. package/angular/11/bundles/lightgallery-angular-11.umd.js +0 -290
  247. package/angular/11/bundles/lightgallery-angular-11.umd.js.map +0 -1
  248. package/angular/11/bundles/lightgallery-angular-11.umd.min.js +0 -2
  249. package/angular/11/bundles/lightgallery-angular-11.umd.min.js.map +0 -1
  250. package/angular/11/esm2015/lib/lightgallery-angular.component.js +0 -225
  251. package/angular/11/esm2015/lib/lightgallery-angular.module.js +0 -18
  252. package/angular/11/esm2015/lib/lightgallery-angular.service.js +0 -14
  253. package/angular/11/esm2015/lightgallery-angular-11.js +0 -5
  254. package/angular/11/esm2015/public-api.js +0 -7
  255. package/angular/11/fesm2015/lightgallery-angular-11.js +0 -262
  256. package/angular/11/fesm2015/lightgallery-angular-11.js.map +0 -1
  257. package/angular/11/lib/lightgallery-angular.component.d.ts +0 -39
  258. package/angular/11/lib/lightgallery-angular.component.d.ts.map +0 -1
  259. package/angular/11/lib/lightgallery-angular.module.d.ts +0 -8
  260. package/angular/11/lib/lightgallery-angular.module.d.ts.map +0 -1
  261. package/angular/11/lib/lightgallery-angular.service.d.ts +0 -7
  262. package/angular/11/lib/lightgallery-angular.service.d.ts.map +0 -1
  263. package/angular/11/lightgallery-angular-11.d.ts +0 -6
  264. package/angular/11/lightgallery-angular-11.d.ts.map +0 -1
  265. package/angular/11/package.json +0 -21
  266. package/angular/11/public-api.d.ts +0 -4
  267. package/angular/11/public-api.d.ts.map +0 -1
  268. package/angular/12/README.md +0 -24
  269. package/angular/12/bundles/lightgallery-angular-12.umd.js +0 -296
  270. package/angular/12/bundles/lightgallery-angular-12.umd.js.map +0 -1
  271. package/angular/12/esm2015/lib/lightgallery-angular.component.js +0 -221
  272. package/angular/12/esm2015/lib/lightgallery-angular.module.js +0 -17
  273. package/angular/12/esm2015/lib/lightgallery-angular.service.js +0 -14
  274. package/angular/12/esm2015/lightgallery-angular-12.js +0 -5
  275. package/angular/12/esm2015/public-api.js +0 -7
  276. package/angular/12/fesm2015/lightgallery-angular-12.js +0 -258
  277. package/angular/12/fesm2015/lightgallery-angular-12.js.map +0 -1
  278. package/angular/12/lib/lightgallery-angular.component.d.ts +0 -38
  279. package/angular/12/lib/lightgallery-angular.module.d.ts +0 -7
  280. package/angular/12/lib/lightgallery-angular.service.d.ts +0 -6
  281. package/angular/12/lightgallery-angular-12.d.ts +0 -5
  282. package/angular/12/package.json +0 -18
  283. package/angular/12/public-api.d.ts +0 -3
  284. package/angular/13/README.md +0 -24
  285. package/angular/13/esm2020/lib/lightgallery-angular.component.mjs +0 -221
  286. package/angular/13/esm2020/lib/lightgallery-angular.module.mjs +0 -17
  287. package/angular/13/esm2020/lib/lightgallery-angular.service.mjs +0 -14
  288. package/angular/13/esm2020/lightgallery-angular-13.mjs +0 -5
  289. package/angular/13/esm2020/public-api.mjs +0 -7
  290. package/angular/13/fesm2015/lightgallery-angular-13.mjs +0 -258
  291. package/angular/13/fesm2015/lightgallery-angular-13.mjs.map +0 -1
  292. package/angular/13/fesm2020/lightgallery-angular-13.mjs +0 -258
  293. package/angular/13/fesm2020/lightgallery-angular-13.mjs.map +0 -1
  294. package/angular/13/lib/lightgallery-angular.component.d.ts +0 -38
  295. package/angular/13/lib/lightgallery-angular.module.d.ts +0 -7
  296. package/angular/13/lib/lightgallery-angular.service.d.ts +0 -6
  297. package/angular/13/lightgallery-angular-13.d.ts +0 -5
  298. package/angular/13/package.json +0 -31
  299. package/angular/13/public-api.d.ts +0 -3
  300. package/angular/14/README.md +0 -24
  301. package/angular/14/esm2020/lib/lightgallery-angular.component.mjs +0 -217
  302. package/angular/14/esm2020/lib/lightgallery-angular.module.mjs +0 -17
  303. package/angular/14/esm2020/lib/lightgallery-angular.service.mjs +0 -14
  304. package/angular/14/esm2020/lightgallery-angular-14.mjs +0 -5
  305. package/angular/14/esm2020/public-api.mjs +0 -7
  306. package/angular/14/fesm2015/lightgallery-angular-14.mjs +0 -254
  307. package/angular/14/fesm2015/lightgallery-angular-14.mjs.map +0 -1
  308. package/angular/14/fesm2020/lightgallery-angular-14.mjs +0 -254
  309. package/angular/14/fesm2020/lightgallery-angular-14.mjs.map +0 -1
  310. package/angular/14/index.d.ts +0 -5
  311. package/angular/14/lib/lightgallery-angular.component.d.ts +0 -38
  312. package/angular/14/lib/lightgallery-angular.module.d.ts +0 -7
  313. package/angular/14/lib/lightgallery-angular.service.d.ts +0 -6
  314. package/angular/14/package.json +0 -31
  315. package/angular/14/public-api.d.ts +0 -3
  316. package/angular/15/README.md +0 -24
  317. package/angular/15/esm2022/lib/lightgallery-angular.component.mjs +0 -218
  318. package/angular/15/esm2022/lib/lightgallery-angular.module.mjs +0 -18
  319. package/angular/15/esm2022/lib/lightgallery-angular.service.mjs +0 -15
  320. package/angular/15/esm2022/lightgallery-angular-15.mjs +0 -5
  321. package/angular/15/esm2022/public-api.mjs +0 -7
  322. package/angular/15/fesm2022/lightgallery-angular-15.mjs +0 -254
  323. package/angular/15/fesm2022/lightgallery-angular-15.mjs.map +0 -1
  324. package/angular/15/index.d.ts +0 -5
  325. package/angular/15/lib/lightgallery-angular.component.d.ts +0 -38
  326. package/angular/15/lib/lightgallery-angular.module.d.ts +0 -7
  327. package/angular/15/lib/lightgallery-angular.service.d.ts +0 -6
  328. package/angular/15/package.json +0 -25
  329. package/angular/15/public-api.d.ts +0 -3
  330. package/angular/16/README.md +0 -24
  331. package/angular/16/esm2022/lib/lightgallery-angular.component.mjs +0 -218
  332. package/angular/16/esm2022/lib/lightgallery-angular.module.mjs +0 -18
  333. package/angular/16/esm2022/lib/lightgallery-angular.service.mjs +0 -15
  334. package/angular/16/esm2022/lightgallery-angular-16.mjs +0 -5
  335. package/angular/16/esm2022/public-api.mjs +0 -7
  336. package/angular/16/fesm2022/lightgallery-angular-16.mjs +0 -254
  337. package/angular/16/fesm2022/lightgallery-angular-16.mjs.map +0 -1
  338. package/angular/16/index.d.ts +0 -5
  339. package/angular/16/lib/lightgallery-angular.component.d.ts +0 -38
  340. package/angular/16/lib/lightgallery-angular.module.d.ts +0 -7
  341. package/angular/16/lib/lightgallery-angular.service.d.ts +0 -6
  342. package/angular/16/package.json +0 -25
  343. package/angular/16/public-api.d.ts +0 -3
  344. package/angular/9/README.md +0 -24
  345. package/angular/9/bundles/lightgallery-angular-9.umd.js +0 -271
  346. package/angular/9/bundles/lightgallery-angular-9.umd.js.map +0 -1
  347. package/angular/9/bundles/lightgallery-angular-9.umd.min.js +0 -2
  348. package/angular/9/bundles/lightgallery-angular-9.umd.min.js.map +0 -1
  349. package/angular/9/esm2015/lib/lightgallery-angular.component.js +0 -225
  350. package/angular/9/esm2015/lib/lightgallery-angular.module.js +0 -17
  351. package/angular/9/esm2015/lib/lightgallery-angular.service.js +0 -14
  352. package/angular/9/esm2015/lightgallery-angular-9.js +0 -5
  353. package/angular/9/esm2015/public-api.js +0 -7
  354. package/angular/9/esm5/lib/lightgallery-angular.component.js +0 -228
  355. package/angular/9/esm5/lib/lightgallery-angular.module.js +0 -21
  356. package/angular/9/esm5/lib/lightgallery-angular.service.js +0 -17
  357. package/angular/9/esm5/lightgallery-angular-9.js +0 -5
  358. package/angular/9/esm5/public-api.js +0 -7
  359. package/angular/9/fesm2015/lightgallery-angular-9.js +0 -261
  360. package/angular/9/fesm2015/lightgallery-angular-9.js.map +0 -1
  361. package/angular/9/fesm5/lightgallery-angular-9.js +0 -268
  362. package/angular/9/fesm5/lightgallery-angular-9.js.map +0 -1
  363. package/angular/9/lib/lightgallery-angular.component.d.ts +0 -38
  364. package/angular/9/lib/lightgallery-angular.module.d.ts +0 -6
  365. package/angular/9/lib/lightgallery-angular.service.d.ts +0 -6
  366. package/angular/9/lightgallery-angular-9.d.ts +0 -5
  367. package/angular/9/package.json +0 -23
  368. package/angular/9/public-api.d.ts +0 -3
  369. package/angular/README.md +0 -24
  370. package/angular/esm2022/lib/lightgallery-angular.component.mjs +0 -218
  371. package/angular/esm2022/lib/lightgallery-angular.module.mjs +0 -18
  372. package/angular/esm2022/lib/lightgallery-angular.service.mjs +0 -15
  373. package/angular/esm2022/lightgallery-angular.mjs +0 -5
  374. package/angular/esm2022/public-api.mjs +0 -7
  375. package/angular/fesm2022/lightgallery-angular.mjs +0 -254
  376. package/angular/fesm2022/lightgallery-angular.mjs.map +0 -1
  377. package/angular/index.d.ts +0 -5
  378. package/angular/lib/lightgallery-angular.component.d.ts +0 -38
  379. package/angular/lib/lightgallery-angular.module.d.ts +0 -7
  380. package/angular/lib/lightgallery-angular.service.d.ts +0 -6
  381. package/angular/package.json +0 -25
  382. package/angular/public-api.d.ts +0 -3
  383. package/css/lg-fullscreen.css +0 -8
  384. package/css/lg-fullscreen.css.map +0 -1
  385. package/css/lg-share.css.map +0 -1
  386. package/css/lg-thumbnail.css.map +0 -1
  387. package/css/lg-transitions.css.map +0 -1
  388. package/css/lg-zoom.css.map +0 -1
  389. package/css/lightgallery-bundle.css.map +0 -1
  390. package/css/lightgallery-bundle.min.css +0 -1
  391. package/css/lightgallery-core.css.map +0 -1
  392. package/css/lightgallery.css.map +0 -1
  393. package/fonts/lg.svg +0 -54
  394. package/fonts/lg.ttf +0 -0
  395. package/fonts/lg.woff +0 -0
  396. package/fonts/lg.woff2 +0 -0
  397. package/lib/index.js +0 -8
  398. package/lib/index.js.map +0 -1
  399. package/lib/lg-events.js +0 -37
  400. package/lib/lg-events.js.map +0 -1
  401. package/lib/lg-plugin.js +0 -13
  402. package/lib/lg-plugin.js.map +0 -1
  403. package/lib/lg-settings.js +0 -83
  404. package/lib/lg-settings.js.map +0 -1
  405. package/lib/lg-utils.js +0 -328
  406. package/lib/lg-utils.js.map +0 -1
  407. package/lib/lgQuery.js +0 -385
  408. package/lib/lgQuery.js.map +0 -1
  409. package/lib/lightgallery.js +0 -1949
  410. package/lib/lightgallery.js.map +0 -1
  411. package/lib/plugins/autoplay/lg-autoplay-settings.js +0 -16
  412. package/lib/plugins/autoplay/lg-autoplay-settings.js.map +0 -1
  413. package/lib/plugins/autoplay/lg-autoplay.js +0 -184
  414. package/lib/plugins/autoplay/lg-autoplay.js.map +0 -1
  415. package/lib/plugins/comment/lg-comment-settings.js +0 -17
  416. package/lib/plugins/comment/lg-comment-settings.js.map +0 -1
  417. package/lib/plugins/comment/lg-comment.js +0 -140
  418. package/lib/plugins/comment/lg-comment.js.map +0 -1
  419. package/lib/plugins/fullscreen/lg-fullscreen-settings.js +0 -10
  420. package/lib/plugins/fullscreen/lg-fullscreen-settings.js.map +0 -1
  421. package/lib/plugins/fullscreen/lg-fullscreen.js +0 -108
  422. package/lib/plugins/fullscreen/lg-fullscreen.js.map +0 -1
  423. package/lib/plugins/hash/lg-hash-settings.js +0 -9
  424. package/lib/plugins/hash/lg-hash-settings.js.map +0 -1
  425. package/lib/plugins/hash/lg-hash.js +0 -139
  426. package/lib/plugins/hash/lg-hash.js.map +0 -1
  427. package/lib/plugins/mediumZoom/lg-medium-zoom-settings.js +0 -9
  428. package/lib/plugins/mediumZoom/lg-medium-zoom-settings.js.map +0 -1
  429. package/lib/plugins/mediumZoom/lg-medium-zoom.js +0 -73
  430. package/lib/plugins/mediumZoom/lg-medium-zoom.js.map +0 -1
  431. package/lib/plugins/pager/lg-pager-settings.js +0 -7
  432. package/lib/plugins/pager/lg-pager-settings.js.map +0 -1
  433. package/lib/plugins/pager/lg-pager.js +0 -82
  434. package/lib/plugins/pager/lg-pager.js.map +0 -1
  435. package/lib/plugins/relativeCaption/lg-relative-caption-settings.js +0 -7
  436. package/lib/plugins/relativeCaption/lg-relative-caption-settings.js.map +0 -1
  437. package/lib/plugins/relativeCaption/lg-relative-caption.js +0 -97
  438. package/lib/plugins/relativeCaption/lg-relative-caption.js.map +0 -1
  439. package/lib/plugins/rotate/lg-rotate-settings.js +0 -18
  440. package/lib/plugins/rotate/lg-rotate-settings.js.map +0 -1
  441. package/lib/plugins/rotate/lg-rotate.js +0 -206
  442. package/lib/plugins/rotate/lg-rotate.js.map +0 -1
  443. package/lib/plugins/share/lg-fb-share-utils.js +0 -10
  444. package/lib/plugins/share/lg-fb-share-utils.js.map +0 -1
  445. package/lib/plugins/share/lg-pinterest-share-utils.js +0 -17
  446. package/lib/plugins/share/lg-pinterest-share-utils.js.map +0 -1
  447. package/lib/plugins/share/lg-share-settings.js +0 -15
  448. package/lib/plugins/share/lg-share-settings.js.map +0 -1
  449. package/lib/plugins/share/lg-share.js +0 -130
  450. package/lib/plugins/share/lg-share.js.map +0 -1
  451. package/lib/plugins/share/lg-twitter-share-utils.js +0 -11
  452. package/lib/plugins/share/lg-twitter-share-utils.js.map +0 -1
  453. package/lib/plugins/share/types.js +0 -3
  454. package/lib/plugins/share/types.js.map +0 -1
  455. package/lib/plugins/thumbnail/lg-thumbnail-settings.js +0 -23
  456. package/lib/plugins/thumbnail/lg-thumbnail-settings.js.map +0 -1
  457. package/lib/plugins/thumbnail/lg-thumbnail.js +0 -414
  458. package/lib/plugins/thumbnail/lg-thumbnail.js.map +0 -1
  459. package/lib/plugins/video/lg-video-settings.js +0 -15
  460. package/lib/plugins/video/lg-video-settings.js.map +0 -1
  461. package/lib/plugins/video/lg-video-utils.js +0 -84
  462. package/lib/plugins/video/lg-video-utils.js.map +0 -1
  463. package/lib/plugins/video/lg-video.js +0 -411
  464. package/lib/plugins/video/lg-video.js.map +0 -1
  465. package/lib/plugins/video/types.js +0 -3
  466. package/lib/plugins/video/types.js.map +0 -1
  467. package/lib/plugins/vimeoThumbnail/lg-vimeo-thumbnail-settings.js +0 -8
  468. package/lib/plugins/vimeoThumbnail/lg-vimeo-thumbnail-settings.js.map +0 -1
  469. package/lib/plugins/vimeoThumbnail/lg-vimeo-thumbnail.js +0 -122
  470. package/lib/plugins/vimeoThumbnail/lg-vimeo-thumbnail.js.map +0 -1
  471. package/lib/plugins/zoom/lg-zoom-settings.js +0 -21
  472. package/lib/plugins/zoom/lg-zoom-settings.js.map +0 -1
  473. package/lib/plugins/zoom/lg-zoom.js +0 -909
  474. package/lib/plugins/zoom/lg-zoom.js.map +0 -1
  475. package/lib/types.js +0 -3
  476. package/lib/types.js.map +0 -1
  477. package/lightgallery-2.9.0.tgz +0 -0
  478. package/lightgallery.es5.js +0 -2786
  479. package/lightgallery.es5.js.map +0 -1
  480. package/lightgallery.min.js +0 -8
  481. package/lightgallery.umd.js +0 -2794
  482. package/lightgallery.umd.js.map +0 -1
  483. package/lit/custom-elements.json +0 -82
  484. package/lit/lightgallery.esm.js +0 -59
  485. package/lit/lightgallery.umd.js +0 -37
  486. package/lit/package.json +0 -8
  487. package/plugins/autoplay/lg-autoplay.es5.js +0 -250
  488. package/plugins/autoplay/lg-autoplay.es5.js.map +0 -1
  489. package/plugins/autoplay/lg-autoplay.min.js +0 -8
  490. package/plugins/autoplay/lg-autoplay.umd.js +0 -258
  491. package/plugins/autoplay/lg-autoplay.umd.js.map +0 -1
  492. package/plugins/autoplay/package.json +0 -7
  493. package/plugins/comment/lg-comment.es5.js +0 -205
  494. package/plugins/comment/lg-comment.es5.js.map +0 -1
  495. package/plugins/comment/lg-comment.min.js +0 -8
  496. package/plugins/comment/lg-comment.umd.js +0 -213
  497. package/plugins/comment/lg-comment.umd.js.map +0 -1
  498. package/plugins/comment/package.json +0 -7
  499. package/plugins/fullscreen/lg-fullscreen.es5.js +0 -135
  500. package/plugins/fullscreen/lg-fullscreen.es5.js.map +0 -1
  501. package/plugins/fullscreen/lg-fullscreen.min.js +0 -8
  502. package/plugins/fullscreen/lg-fullscreen.umd.js +0 -143
  503. package/plugins/fullscreen/lg-fullscreen.umd.js.map +0 -1
  504. package/plugins/fullscreen/package.json +0 -7
  505. package/plugins/hash/lg-hash-settings.d.ts +0 -16
  506. package/plugins/hash/lg-hash.es5.js +0 -198
  507. package/plugins/hash/lg-hash.es5.js.map +0 -1
  508. package/plugins/hash/lg-hash.min.js +0 -8
  509. package/plugins/hash/lg-hash.umd.js +0 -206
  510. package/plugins/hash/lg-hash.umd.js.map +0 -1
  511. package/plugins/hash/package.json +0 -7
  512. package/plugins/mediumZoom/lg-medium-zoom.es5.js +0 -132
  513. package/plugins/mediumZoom/lg-medium-zoom.es5.js.map +0 -1
  514. package/plugins/mediumZoom/lg-medium-zoom.min.js +0 -8
  515. package/plugins/mediumZoom/lg-medium-zoom.umd.js +0 -140
  516. package/plugins/mediumZoom/lg-medium-zoom.umd.js.map +0 -1
  517. package/plugins/mediumZoom/package.json +0 -7
  518. package/plugins/pager/lg-pager.es5.js +0 -139
  519. package/plugins/pager/lg-pager.es5.js.map +0 -1
  520. package/plugins/pager/lg-pager.min.js +0 -8
  521. package/plugins/pager/lg-pager.umd.js +0 -147
  522. package/plugins/pager/lg-pager.umd.js.map +0 -1
  523. package/plugins/pager/package.json +0 -7
  524. package/plugins/relativeCaption/lg-relative-caption.es5.js +0 -154
  525. package/plugins/relativeCaption/lg-relative-caption.es5.js.map +0 -1
  526. package/plugins/relativeCaption/lg-relative-caption.min.js +0 -8
  527. package/plugins/relativeCaption/lg-relative-caption.umd.js +0 -162
  528. package/plugins/relativeCaption/lg-relative-caption.umd.js.map +0 -1
  529. package/plugins/relativeCaption/package.json +0 -7
  530. package/plugins/rotate/lg-rotate.es5.js +0 -274
  531. package/plugins/rotate/lg-rotate.es5.js.map +0 -1
  532. package/plugins/rotate/lg-rotate.min.js +0 -8
  533. package/plugins/rotate/lg-rotate.umd.js +0 -282
  534. package/plugins/rotate/lg-rotate.umd.js.map +0 -1
  535. package/plugins/rotate/package.json +0 -7
  536. package/plugins/share/lg-share.d.ts +0 -15
  537. package/plugins/share/lg-share.es5.js +0 -219
  538. package/plugins/share/lg-share.es5.js.map +0 -1
  539. package/plugins/share/lg-share.min.js +0 -8
  540. package/plugins/share/lg-share.umd.js +0 -227
  541. package/plugins/share/lg-share.umd.js.map +0 -1
  542. package/plugins/share/lg-twitter-share-utils.d.ts +0 -2
  543. package/plugins/share/package.json +0 -7
  544. package/plugins/thumbnail/lg-thumbnail.d.ts +0 -48
  545. package/plugins/thumbnail/lg-thumbnail.es5.js +0 -487
  546. package/plugins/thumbnail/lg-thumbnail.es5.js.map +0 -1
  547. package/plugins/thumbnail/lg-thumbnail.min.js +0 -8
  548. package/plugins/thumbnail/lg-thumbnail.umd.js +0 -495
  549. package/plugins/thumbnail/lg-thumbnail.umd.js.map +0 -1
  550. package/plugins/thumbnail/package.json +0 -7
  551. package/plugins/video/lg-video-utils.d.ts +0 -10
  552. package/plugins/video/lg-video.es5.js +0 -545
  553. package/plugins/video/lg-video.es5.js.map +0 -1
  554. package/plugins/video/lg-video.min.js +0 -8
  555. package/plugins/video/lg-video.umd.js +0 -553
  556. package/plugins/video/lg-video.umd.js.map +0 -1
  557. package/plugins/video/package.json +0 -7
  558. package/plugins/vimeoThumbnail/lg-vimeo-thumbnail.es5.js +0 -182
  559. package/plugins/vimeoThumbnail/lg-vimeo-thumbnail.es5.js.map +0 -1
  560. package/plugins/vimeoThumbnail/lg-vimeo-thumbnail.min.js +0 -8
  561. package/plugins/vimeoThumbnail/lg-vimeo-thumbnail.umd.js +0 -190
  562. package/plugins/vimeoThumbnail/lg-vimeo-thumbnail.umd.js.map +0 -1
  563. package/plugins/vimeoThumbnail/package.json +0 -7
  564. package/plugins/zoom/lg-zoom.es5.js +0 -980
  565. package/plugins/zoom/lg-zoom.es5.js.map +0 -1
  566. package/plugins/zoom/lg-zoom.min.js +0 -8
  567. package/plugins/zoom/lg-zoom.umd.js +0 -988
  568. package/plugins/zoom/lg-zoom.umd.js.map +0 -1
  569. package/plugins/zoom/package.json +0 -7
  570. package/react/Lightgallery.d.ts +0 -33
  571. package/react/Lightgallery.es5.js +0 -2988
  572. package/react/Lightgallery.es5.js.map +0 -1
  573. package/react/Lightgallery.umd.js +0 -2994
  574. package/react/Lightgallery.umd.js.map +0 -1
  575. package/react/package.json +0 -7
  576. package/scss/_lg-fonts.scss +0 -27
  577. package/scss/lg-fullscreen.scss +0 -9
  578. package/vue/LightGallery.vue.d.ts +0 -37
  579. package/vue/LightGalleryVue.common.js +0 -9343
  580. package/vue/LightGalleryVue.common.js.map +0 -1
  581. package/vue/LightGalleryVue.umd.js +0 -9353
  582. package/vue/LightGalleryVue.umd.js.map +0 -1
  583. package/vue/LightGalleryVue.umd.min.js +0 -8
  584. package/vue/LightGalleryVue.umd.min.js.map +0 -1
  585. package/vue/package.json +0 -7
  586. /package/{css → dist/css}/lg-medium-zoom.css +0 -0
  587. /package/{css → dist/css}/lg-medium-zoom.css.map +0 -0
  588. /package/{css → dist/css}/lg-pager.css +0 -0
  589. /package/{css → dist/css}/lg-relative-caption.css +0 -0
  590. /package/{css → dist/css}/lg-relative-caption.css.map +0 -0
  591. /package/{css → dist/css}/lg-video.css +0 -0
  592. /package/{css → dist/css}/lg-video.css.map +0 -0
  593. /package/{images → dist/images}/loading.gif +0 -0
  594. /package/{scss → dist/scss}/_lg-mixins.scss +0 -0
  595. /package/{scss → dist/scss}/lg-medium-zoom.scss +0 -0
  596. /package/{scss → dist/scss}/lg-pager.scss +0 -0
  597. /package/{scss → dist/scss}/lg-relative-caption.scss +0 -0
  598. /package/{scss → dist/scss}/lg-transitions.scss +0 -0
  599. /package/{scss → dist/scss}/lg-video.scss +0 -0
  600. /package/{scss → dist/scss}/transitions/_index.scss +0 -0
  601. /package/{scss → dist/scss}/transitions/_lg-lollipop-rev.scss +0 -0
  602. /package/{scss → dist/scss}/transitions/_lg-lollipop.scss +0 -0
  603. /package/{scss → dist/scss}/transitions/_lg-rotate-rev.scss +0 -0
  604. /package/{scss → dist/scss}/transitions/_lg-rotate.scss +0 -0
  605. /package/{scss → dist/scss}/transitions/_lg-slide-skew-cross-rev.scss +0 -0
  606. /package/{scss → dist/scss}/transitions/_lg-slide-skew-cross.scss +0 -0
  607. /package/{scss → dist/scss}/transitions/_lg-slide-skew-only-rev.scss +0 -0
  608. /package/{scss → dist/scss}/transitions/_lg-slide-skew-only-y-rev.scss +0 -0
  609. /package/{scss → dist/scss}/transitions/_lg-slide-skew-only-y.scss +0 -0
  610. /package/{scss → dist/scss}/transitions/_lg-slide-skew-only.scss +0 -0
  611. /package/{scss → dist/scss}/transitions/_lg-slide-skew-rev.scss +0 -0
  612. /package/{scss → dist/scss}/transitions/_lg-slide-skew-ver-cross-rev.scss +0 -0
  613. /package/{scss → dist/scss}/transitions/_lg-slide-skew-ver-cross.scss +0 -0
  614. /package/{scss → dist/scss}/transitions/_lg-slide-skew-ver-rev.scss +0 -0
  615. /package/{scss → dist/scss}/transitions/_lg-slide-skew-ver.scss +0 -0
  616. /package/{scss → dist/scss}/transitions/_lg-slide-skew.scss +0 -0
  617. /package/{scss → dist/scss}/transitions/_lg-slide-vertical-growth.scss +0 -0
  618. /package/{scss → dist/scss}/transitions/_lg-slide-vertical.scss +0 -0
  619. /package/{scss → dist/scss}/transitions/_lg-tube.scss +0 -0
@@ -0,0 +1,792 @@
1
+ /*!
2
+ * lightgallery | 3.0.0-beta.3 | October 1st 2026
3
+ * http://www.lightgalleryjs.com/
4
+ * Copyright (c) 2020 Sachin Neravath;
5
+ * @license GPLv3
6
+ */
7
+ const SPRING_SETTLE_DAMPING = 1;
8
+ const SPRING_NATURAL_FREQUENCY = 12;
9
+ const DECELERATION_RATE = 0.995;
10
+ function project(velocity, decelerationRate = DECELERATION_RATE) {
11
+ return velocity * decelerationRate / (1 - decelerationRate);
12
+ }
13
+ function stepSpring(state, target, dtMs, {
14
+ dampingRatio = SPRING_SETTLE_DAMPING,
15
+ naturalFrequency = SPRING_NATURAL_FREQUENCY
16
+ } = {}) {
17
+ const t = dtMs / 1e3;
18
+ const w0 = naturalFrequency;
19
+ const zeta = Math.min(dampingRatio, 1);
20
+ const x0 = state.position - target;
21
+ const v0 = state.velocity * 1e3;
22
+ const decay = Math.exp(-zeta * w0 * t);
23
+ let x;
24
+ let v;
25
+ if (zeta < 1) {
26
+ const wd = w0 * Math.sqrt(1 - zeta * zeta);
27
+ const a = x0;
28
+ const b = (v0 + zeta * w0 * x0) / wd;
29
+ const cos = Math.cos(wd * t);
30
+ const sin = Math.sin(wd * t);
31
+ x = decay * (a * cos + b * sin);
32
+ v = decay * ((b * wd - zeta * w0 * a) * cos - (a * wd + zeta * w0 * b) * sin);
33
+ } else {
34
+ const b = v0 + w0 * x0;
35
+ x = decay * (x0 + b * t);
36
+ v = decay * (b - w0 * (x0 + b * t));
37
+ }
38
+ return { position: target + x, velocity: v / 1e3 };
39
+ }
40
+ function isSpringSettled(state, target, restDelta = 0.3, restVelocity = 0.012) {
41
+ return Math.abs(state.position - target) < restDelta && Math.abs(state.velocity) < restVelocity;
42
+ }
43
+ const SLIDE_EDGE_FRICTION = 0.35;
44
+ const thumbnailDefaultIcons = {
45
+ toggleThumbnails: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" fill="currentColor"><path transform="translate(0, 960) scale(1, -1)" d="M682 84.667v172h172v-172h-172zM682 340.667v172h172v-172h-172zM426 596.667v172h172v-172h-172zM682 768.667h172v-172h-172v172zM426 340.667v172h172v-172h-172zM170 340.667v172h172v-172h-172zM170 84.667v172h172v-172h-172zM426 84.667v172h172v-172h-172zM170 596.667v172h172v-172h-172z"/></svg>'
46
+ };
47
+ var __defProp$1 = Object.defineProperty;
48
+ var __defProps$1 = Object.defineProperties;
49
+ var __getOwnPropDescs$1 = Object.getOwnPropertyDescriptors;
50
+ var __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;
51
+ var __hasOwnProp$1 = Object.prototype.hasOwnProperty;
52
+ var __propIsEnum$1 = Object.prototype.propertyIsEnumerable;
53
+ var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
54
+ var __spreadValues$1 = (a, b) => {
55
+ for (var prop in b || (b = {}))
56
+ if (__hasOwnProp$1.call(b, prop))
57
+ __defNormalProp$1(a, prop, b[prop]);
58
+ if (__getOwnPropSymbols$1)
59
+ for (var prop of __getOwnPropSymbols$1(b)) {
60
+ if (__propIsEnum$1.call(b, prop))
61
+ __defNormalProp$1(a, prop, b[prop]);
62
+ }
63
+ return a;
64
+ };
65
+ var __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b));
66
+ var __objRest = (source, exclude) => {
67
+ var target = {};
68
+ for (var prop in source)
69
+ if (__hasOwnProp$1.call(source, prop) && exclude.indexOf(prop) < 0)
70
+ target[prop] = source[prop];
71
+ if (source != null && __getOwnPropSymbols$1)
72
+ for (var prop of __getOwnPropSymbols$1(source)) {
73
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$1.call(source, prop))
74
+ target[prop] = source[prop];
75
+ }
76
+ return target;
77
+ };
78
+ function getElasticThumbTranslate(raw, totalWidth, stripWidth, friction = SLIDE_EDGE_FRICTION) {
79
+ const max = Math.max(0, totalWidth - stripWidth);
80
+ if (raw < 0) {
81
+ return raw * friction;
82
+ }
83
+ if (raw > max) {
84
+ return max + (raw - max) * friction;
85
+ }
86
+ return raw;
87
+ }
88
+ function getThumbTotalWidth(count, thumbWidth, thumbMargin) {
89
+ return count * (thumbWidth + thumbMargin);
90
+ }
91
+ function clampThumbTranslate(translate, totalWidth, stripWidth) {
92
+ const max = Math.max(0, totalWidth - stripWidth);
93
+ return Math.min(Math.max(translate, 0), max);
94
+ }
95
+ function getThumbWindow(options) {
96
+ const { translate, stripWidth, thumbWidth, thumbMargin, count } = options;
97
+ const unit = thumbWidth + thumbMargin;
98
+ if (count <= 0 || unit <= 0) {
99
+ return { start: 0, end: -1, leadingPad: 0, trailingPad: 0 };
100
+ }
101
+ const overscan = options.overscan === "auto" || options.overscan === void 0 ? Math.max(1, Math.ceil(stripWidth / unit)) : Math.max(0, options.overscan);
102
+ const clampedTranslate = clampThumbTranslate(
103
+ translate,
104
+ getThumbTotalWidth(count, thumbWidth, thumbMargin),
105
+ stripWidth
106
+ );
107
+ const firstVisible = Math.floor(clampedTranslate / unit);
108
+ const lastVisible = Math.ceil((clampedTranslate + stripWidth) / unit) - 1;
109
+ const start = Math.max(0, firstVisible - overscan);
110
+ const end = Math.min(count - 1, lastVisible + overscan);
111
+ return {
112
+ start,
113
+ end,
114
+ leadingPad: start * unit,
115
+ trailingPad: (count - 1 - end) * unit
116
+ };
117
+ }
118
+ function getThumbCorridorWindow(options) {
119
+ const _a = options, { from, to } = _a, geometry = __objRest(_a, ["from", "to"]);
120
+ const a = getThumbWindow(__spreadProps$1(__spreadValues$1({}, geometry), { translate: from }));
121
+ const b = getThumbWindow(__spreadProps$1(__spreadValues$1({}, geometry), { translate: to }));
122
+ const start = Math.min(a.start, b.start);
123
+ const end = Math.max(a.end, b.end);
124
+ const unit = options.thumbWidth + options.thumbMargin;
125
+ if (end < start) {
126
+ return { start: 0, end: -1, leadingPad: 0, trailingPad: 0 };
127
+ }
128
+ return {
129
+ start,
130
+ end,
131
+ leadingPad: start * unit,
132
+ trailingPad: (options.count - 1 - end) * unit
133
+ };
134
+ }
135
+ function getScrubThumbIndex(translate, totalWidth, stripWidth, count) {
136
+ const max = totalWidth - stripWidth;
137
+ if (count <= 1 || max <= 0) {
138
+ return 0;
139
+ }
140
+ const clamped = clampThumbTranslate(translate, totalWidth, stripWidth);
141
+ return Math.round(clamped / max * (count - 1));
142
+ }
143
+ function getActiveThumbTranslate(index, thumbWidth, thumbMargin, stripWidth, totalWidth, pagerPosition, direction = "ltr") {
144
+ const logicalPosition = direction === "rtl" && pagerPosition !== "middle" ? pagerPosition === "left" ? "right" : "left" : pagerPosition;
145
+ let position = 0;
146
+ switch (logicalPosition) {
147
+ case "left":
148
+ position = 0;
149
+ break;
150
+ case "middle":
151
+ position = stripWidth / 2 - thumbWidth / 2;
152
+ break;
153
+ case "right":
154
+ position = stripWidth - thumbWidth;
155
+ }
156
+ const translate = (thumbWidth + thumbMargin) * index - 1 - position;
157
+ return clampThumbTranslate(translate, totalWidth, stripWidth);
158
+ }
159
+ const VELOCITY_WINDOW_MS = 100;
160
+ const MIN_DISPLACEMENT = 1;
161
+ const MIN_WINDOW_SPAN_MS = 5;
162
+ function pushVelocitySample(samples, sample, windowMs = VELOCITY_WINDOW_MS) {
163
+ return [...samples.filter((s) => sample.t - s.t <= windowMs), sample];
164
+ }
165
+ function getWindowedVelocity(samples, releaseTime, windowMs = VELOCITY_WINDOW_MS) {
166
+ const recent = samples.filter((s) => releaseTime - s.t <= windowMs);
167
+ if (recent.length < 2) {
168
+ return { x: 0, y: 0 };
169
+ }
170
+ const first = recent[0];
171
+ const last = recent[recent.length - 1];
172
+ const dt = last.t - first.t;
173
+ if (dt < MIN_WINDOW_SPAN_MS) {
174
+ return { x: 0, y: 0 };
175
+ }
176
+ const dx = last.x - first.x;
177
+ const dy = last.y - first.y;
178
+ return {
179
+ x: Math.abs(dx) > MIN_DISPLACEMENT ? dx / dt : 0,
180
+ y: Math.abs(dy) > MIN_DISPLACEMENT ? dy / dt : 0
181
+ };
182
+ }
183
+ const MAX_FRAME_MS = 64;
184
+ function runSprings(tracks, onFrame, onDone) {
185
+ let raf = 0;
186
+ let last = Date.now();
187
+ const states = tracks.map((t) => ({
188
+ position: t.from,
189
+ velocity: t.velocity
190
+ }));
191
+ const frame = () => {
192
+ const now = Date.now();
193
+ const dt = Math.min(Math.max(now - last, 0), MAX_FRAME_MS);
194
+ last = now;
195
+ let settled = true;
196
+ tracks.forEach((t, i) => {
197
+ states[i] = stepSpring(states[i], t.target, dt, t);
198
+ if (!isSpringSettled(states[i], t.target)) {
199
+ settled = false;
200
+ }
201
+ });
202
+ if (settled) {
203
+ onFrame(tracks.map((t) => t.target));
204
+ onDone == null ? void 0 : onDone();
205
+ return;
206
+ }
207
+ onFrame(states.map((s) => s.position));
208
+ raf = requestAnimationFrame(frame);
209
+ };
210
+ raf = requestAnimationFrame(frame);
211
+ return () => cancelAnimationFrame(raf);
212
+ }
213
+ const thumbnailsSettings = {
214
+ thumbnail: true,
215
+ animateThumb: true,
216
+ currentPagerPosition: "middle",
217
+ alignThumbnails: "middle",
218
+ thumbWidth: 100,
219
+ thumbHeight: "80px",
220
+ thumbMargin: 5,
221
+ appendThumbnailsTo: ".lg-components",
222
+ toggleThumb: false,
223
+ enableThumbDrag: true,
224
+ enableThumbSwipe: true,
225
+ thumbnailSwipeThreshold: 10,
226
+ scrubThumbnails: false,
227
+ loadYouTubeThumbnail: true,
228
+ youTubeThumbSize: 1
229
+ };
230
+ const lGEvents = {
231
+ containerResize: "lgContainerResize",
232
+ updateSlides: "lgUpdateSlides",
233
+ beforeOpen: "lgBeforeOpen",
234
+ afterOpen: "lgAfterOpen",
235
+ beforeSlide: "lgBeforeSlide"
236
+ };
237
+ var __defProp = Object.defineProperty;
238
+ var __defProps = Object.defineProperties;
239
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
240
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
241
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
242
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
243
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
244
+ var __spreadValues = (a, b) => {
245
+ for (var prop in b || (b = {}))
246
+ if (__hasOwnProp.call(b, prop))
247
+ __defNormalProp(a, prop, b[prop]);
248
+ if (__getOwnPropSymbols)
249
+ for (var prop of __getOwnPropSymbols(b)) {
250
+ if (__propIsEnum.call(b, prop))
251
+ __defNormalProp(a, prop, b[prop]);
252
+ }
253
+ return a;
254
+ };
255
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
256
+ class Thumbnail {
257
+ constructor(instance, $LG) {
258
+ this.thumbOuterWidth = 0;
259
+ this.thumbTotalWidth = 0;
260
+ this.translateX = 0;
261
+ this.thumbClickable = false;
262
+ this.instantThumb = false;
263
+ this.dragSamples = [];
264
+ this.liveTranslateX = 0;
265
+ this.scrubActive = false;
266
+ this.scrubIndex = -1;
267
+ this.core = instance;
268
+ this.$LG = $LG;
269
+ return this;
270
+ }
271
+ init() {
272
+ this.core.registerDefaultIcons(thumbnailDefaultIcons);
273
+ this.settings = __spreadValues(__spreadValues({}, thumbnailsSettings), this.core.settings);
274
+ this.thumbOuterWidth = 0;
275
+ this.thumbTotalWidth = getThumbTotalWidth(
276
+ this.core.galleryItems.length,
277
+ this.settings.thumbWidth,
278
+ this.settings.thumbMargin
279
+ );
280
+ this.translateX = 0;
281
+ this.setAnimateThumbStyles();
282
+ if (!this.core.settings.allowMediaOverlap) {
283
+ this.settings.toggleThumb = false;
284
+ }
285
+ if (this.settings.thumbnail) {
286
+ this.build();
287
+ if (this.settings.animateThumb) {
288
+ if (this.settings.enableThumbDrag) {
289
+ this.enableThumbDrag();
290
+ }
291
+ if (this.settings.enableThumbSwipe) {
292
+ this.enableThumbSwipe();
293
+ }
294
+ this.thumbClickable = false;
295
+ } else {
296
+ this.thumbClickable = true;
297
+ }
298
+ this.toggleThumbBar();
299
+ this.thumbKeyPress();
300
+ }
301
+ }
302
+ build() {
303
+ this.setThumbMarkup();
304
+ this.manageActiveClassOnSlideChange();
305
+ this.$lgThumb.first().on("click.lg touchend.lg", (e) => {
306
+ const $target = this.$LG(e.target);
307
+ if (!$target.hasAttribute("data-lg-item-id")) {
308
+ return;
309
+ }
310
+ setTimeout(() => {
311
+ if (this.thumbClickable && !this.core.lgBusy) {
312
+ const index = parseInt($target.attr("data-lg-item-id"));
313
+ this.core.slide(index, false, true, false);
314
+ }
315
+ }, 50);
316
+ });
317
+ this.core.LGel.on(`${lGEvents.beforeSlide}.thumb`, (event) => {
318
+ if (this.scrubActive) {
319
+ return;
320
+ }
321
+ const { index } = event.detail;
322
+ this.animateThumb(index);
323
+ });
324
+ this.core.LGel.on(`${lGEvents.beforeOpen}.thumb`, () => {
325
+ this.thumbOuterWidth = this.core.outer.get().offsetWidth;
326
+ this.instantThumb = true;
327
+ });
328
+ this.core.LGel.on(`${lGEvents.afterOpen}.thumb`, () => {
329
+ this.instantThumb = false;
330
+ });
331
+ this.core.LGel.on(`${lGEvents.updateSlides}.thumb`, () => {
332
+ this.rebuildThumbnails();
333
+ });
334
+ this.core.LGel.on(`${lGEvents.containerResize}.thumb`, () => {
335
+ if (!this.core.lgOpened) return;
336
+ setTimeout(() => {
337
+ this.thumbOuterWidth = this.core.outer.get().offsetWidth;
338
+ this.animateThumb(this.core.index);
339
+ this.thumbOuterWidth = this.core.outer.get().offsetWidth;
340
+ }, 50);
341
+ });
342
+ }
343
+ setThumbMarkup() {
344
+ let thumbOuterClassNames = "lg-thumb-outer ";
345
+ if (this.settings.alignThumbnails) {
346
+ thumbOuterClassNames += `lg-thumb-align-${this.settings.alignThumbnails}`;
347
+ }
348
+ const html = `<div class="${thumbOuterClassNames}">
349
+ <div class="lg-thumb lg-group">
350
+ </div>
351
+ </div>`;
352
+ this.core.outer.addClass("lg-has-thumb");
353
+ if (this.settings.appendThumbnailsTo === ".lg-components") {
354
+ this.core.$lgComponents.append(html);
355
+ } else {
356
+ this.core.outer.append(html);
357
+ }
358
+ this.$thumbOuter = this.core.outer.find(".lg-thumb-outer").first();
359
+ this.$lgThumb = this.core.outer.find(".lg-thumb").first();
360
+ if (this.settings.animateThumb) {
361
+ this.core.outer.find(".lg-thumb").css("transition-duration", this.core.settings.speed + "ms").css("width", this.thumbTotalWidth + "px").css("position", "relative");
362
+ }
363
+ this.renderThumbItems();
364
+ }
365
+ enableThumbDrag() {
366
+ let thumbDragUtils = {
367
+ cords: {
368
+ startX: 0,
369
+ endX: 0
370
+ },
371
+ isMoved: false,
372
+ newTranslateX: 0,
373
+ startTime: /* @__PURE__ */ new Date(),
374
+ endTime: /* @__PURE__ */ new Date(),
375
+ touchMoveTime: 0
376
+ };
377
+ let isDragging = false;
378
+ this.$thumbOuter.addClass("lg-grab");
379
+ this.core.outer.find(".lg-thumb").first().on("mousedown.lg.thumb", (e) => {
380
+ if (this.thumbTotalWidth > this.thumbOuterWidth) {
381
+ e.preventDefault();
382
+ this.onThumbDragStart(e.pageX);
383
+ thumbDragUtils.cords.startX = e.pageX;
384
+ thumbDragUtils.startTime = /* @__PURE__ */ new Date();
385
+ this.thumbClickable = false;
386
+ isDragging = true;
387
+ this.core.outer.get().scrollLeft += 1;
388
+ this.core.outer.get().scrollLeft -= 1;
389
+ this.$thumbOuter.removeClass("lg-grab").addClass("lg-grabbing");
390
+ }
391
+ });
392
+ this.$LG(window).on(
393
+ `mousemove.lg.thumb.global${this.core.lgId}`,
394
+ (e) => {
395
+ if (!this.core.lgOpened) return;
396
+ if (isDragging) {
397
+ thumbDragUtils.cords.endX = e.pageX;
398
+ thumbDragUtils = this.onThumbTouchMove(thumbDragUtils);
399
+ }
400
+ }
401
+ );
402
+ this.$LG(window).on(`mouseup.lg.thumb.global${this.core.lgId}`, () => {
403
+ if (!this.core.lgOpened) return;
404
+ if (thumbDragUtils.isMoved) {
405
+ thumbDragUtils = this.onThumbTouchEnd(thumbDragUtils);
406
+ } else {
407
+ this.thumbClickable = true;
408
+ this.endScrub();
409
+ }
410
+ if (isDragging) {
411
+ isDragging = false;
412
+ this.$thumbOuter.removeClass("lg-grabbing").addClass("lg-grab");
413
+ }
414
+ });
415
+ }
416
+ enableThumbSwipe() {
417
+ let thumbDragUtils = {
418
+ cords: {
419
+ startX: 0,
420
+ endX: 0
421
+ },
422
+ isMoved: false,
423
+ newTranslateX: 0,
424
+ startTime: /* @__PURE__ */ new Date(),
425
+ endTime: /* @__PURE__ */ new Date(),
426
+ touchMoveTime: 0
427
+ };
428
+ this.$lgThumb.on("touchstart.lg", (e) => {
429
+ if (this.thumbTotalWidth > this.thumbOuterWidth) {
430
+ e.preventDefault();
431
+ this.onThumbDragStart(e.targetTouches[0].pageX);
432
+ thumbDragUtils.cords.startX = e.targetTouches[0].pageX;
433
+ this.thumbClickable = false;
434
+ thumbDragUtils.startTime = /* @__PURE__ */ new Date();
435
+ }
436
+ });
437
+ this.$lgThumb.on("touchmove.lg", (e) => {
438
+ if (this.thumbTotalWidth > this.thumbOuterWidth) {
439
+ e.preventDefault();
440
+ thumbDragUtils.cords.endX = e.targetTouches[0].pageX;
441
+ thumbDragUtils = this.onThumbTouchMove(thumbDragUtils);
442
+ }
443
+ });
444
+ this.$lgThumb.on("touchend.lg", () => {
445
+ if (thumbDragUtils.isMoved) {
446
+ thumbDragUtils = this.onThumbTouchEnd(thumbDragUtils);
447
+ } else {
448
+ this.thumbClickable = true;
449
+ this.endScrub();
450
+ }
451
+ });
452
+ }
453
+ // Rebuild thumbnails
454
+ rebuildThumbnails() {
455
+ this.$thumbOuter.addClass("lg-rebuilding-thumbnails");
456
+ setTimeout(() => {
457
+ this.thumbTotalWidth = getThumbTotalWidth(
458
+ this.core.galleryItems.length,
459
+ this.settings.thumbWidth,
460
+ this.settings.thumbMargin
461
+ );
462
+ this.$lgThumb.css("width", this.thumbTotalWidth + "px");
463
+ this.$lgThumb.empty();
464
+ this.renderThumbItems();
465
+ this.animateThumb(this.core.index);
466
+ }, 50);
467
+ setTimeout(() => {
468
+ this.$thumbOuter.removeClass("lg-rebuilding-thumbnails");
469
+ }, 200);
470
+ }
471
+ // @ts-check
472
+ setTranslate(value) {
473
+ const x = this.isRtl() ? value : -value;
474
+ this.$lgThumb.css("transform", "translate3d(" + x + "px, 0px, 0px)");
475
+ }
476
+ isRtl() {
477
+ return this.core.settings.direction === "rtl";
478
+ }
479
+ getPossibleTransformX(left) {
480
+ return clampThumbTranslate(
481
+ left,
482
+ this.thumbTotalWidth,
483
+ this.thumbOuterWidth
484
+ );
485
+ }
486
+ animateThumb(index) {
487
+ if (this.cancelThumbSpring) {
488
+ this.cancelThumbSpring();
489
+ this.cancelThumbSpring = void 0;
490
+ }
491
+ this.$lgThumb.css(
492
+ "transition-duration",
493
+ this.instantThumb ? "0ms" : this.core.settings.speed + "ms"
494
+ );
495
+ if (this.settings.animateThumb) {
496
+ this.translateX = getActiveThumbTranslate(
497
+ index,
498
+ this.settings.thumbWidth,
499
+ this.settings.thumbMargin,
500
+ this.thumbOuterWidth,
501
+ this.thumbTotalWidth,
502
+ this.settings.currentPagerPosition,
503
+ this.isRtl() ? "rtl" : "ltr"
504
+ );
505
+ this.liveTranslateX = this.translateX;
506
+ this.setTranslate(this.translateX);
507
+ if (this.isThumbWindowed()) {
508
+ this.renderThumbItems(index);
509
+ }
510
+ }
511
+ }
512
+ canScrub() {
513
+ return this.settings.scrubThumbnails && this.settings.animateThumb;
514
+ }
515
+ /**
516
+ * A scrub session starts on the first actual strip movement and
517
+ * ends when the release glide settles (or the plugin dies). While
518
+ * it runs: slide transitions are visually off (`lg-thumb-scrubbing`
519
+ * CSS), the core's transition timers collapse (`speed` 0) so the
520
+ * landed slide's content loads without the navigation lag, and the
521
+ * strip's own slide-change re-centering stands down.
522
+ */
523
+ beginScrub() {
524
+ if (this.scrubActive) {
525
+ return;
526
+ }
527
+ this.scrubActive = true;
528
+ this.scrubIndex = this.core.index;
529
+ this.scrubSavedSpeed = this.core.settings.speed;
530
+ this.core.settings.speed = 0;
531
+ this.core.outer.addClass("lg-thumb-scrubbing");
532
+ }
533
+ endScrub() {
534
+ if (!this.scrubActive) {
535
+ return;
536
+ }
537
+ this.scrubActive = false;
538
+ this.scrubIndex = -1;
539
+ if (this.scrubSavedSpeed !== void 0) {
540
+ this.core.settings.speed = this.scrubSavedSpeed;
541
+ this.scrubSavedSpeed = void 0;
542
+ }
543
+ this.core.outer.removeClass("lg-thumb-scrubbing");
544
+ }
545
+ /** Live translate → slide, on drag frames and glide frames alike. */
546
+ scrubTo(translate) {
547
+ const index = getScrubThumbIndex(
548
+ translate,
549
+ this.thumbTotalWidth,
550
+ this.thumbOuterWidth,
551
+ this.core.galleryItems.length
552
+ );
553
+ if (index === this.scrubIndex) {
554
+ return;
555
+ }
556
+ this.scrubIndex = index;
557
+ this.core.lgBusy = false;
558
+ this.core.slide(index, true, true, false);
559
+ }
560
+ /**
561
+ * Drag-start seam (plan 010 physics): a press mid-glide takes over
562
+ * from the live position, and the velocity window restarts.
563
+ */
564
+ onThumbDragStart(pageX) {
565
+ if (this.cancelThumbSpring) {
566
+ this.cancelThumbSpring();
567
+ this.cancelThumbSpring = void 0;
568
+ this.translateX = this.liveTranslateX;
569
+ }
570
+ this.liveTranslateX = this.translateX;
571
+ this.dragSamples = pushVelocitySample([], {
572
+ x: pageX,
573
+ y: 0,
574
+ t: Date.now()
575
+ });
576
+ }
577
+ onThumbTouchMove(thumbDragUtils) {
578
+ thumbDragUtils.isMoved = true;
579
+ thumbDragUtils.touchMoveTime = (/* @__PURE__ */ new Date()).valueOf();
580
+ this.dragSamples = pushVelocitySample(this.dragSamples, {
581
+ x: thumbDragUtils.cords.endX,
582
+ y: 0,
583
+ t: Date.now()
584
+ });
585
+ const dragDelta = thumbDragUtils.cords.endX - thumbDragUtils.cords.startX;
586
+ thumbDragUtils.newTranslateX = getElasticThumbTranslate(
587
+ this.translateX + (this.isRtl() ? dragDelta : -dragDelta),
588
+ this.thumbTotalWidth,
589
+ this.thumbOuterWidth
590
+ );
591
+ this.liveTranslateX = thumbDragUtils.newTranslateX;
592
+ this.setTranslate(thumbDragUtils.newTranslateX);
593
+ this.$thumbOuter.addClass("lg-dragging");
594
+ if (this.canScrub()) {
595
+ this.beginScrub();
596
+ this.scrubTo(this.liveTranslateX);
597
+ }
598
+ if (this.isThumbWindowed() && this.renderedThumbWindow) {
599
+ const rendered = this.renderedThumbWindow;
600
+ if (this.liveTranslateX < rendered.leadingPad || this.liveTranslateX + this.thumbOuterWidth > this.thumbTotalWidth - rendered.trailingPad) {
601
+ this.renderThumbItems(this.core.index, {
602
+ from: this.liveTranslateX,
603
+ to: this.liveTranslateX
604
+ });
605
+ }
606
+ }
607
+ return thumbDragUtils;
608
+ }
609
+ onThumbTouchEnd(thumbDragUtils) {
610
+ thumbDragUtils.isMoved = false;
611
+ thumbDragUtils.endTime = /* @__PURE__ */ new Date();
612
+ this.$thumbOuter.removeClass("lg-dragging");
613
+ const pointerVelocityX = getWindowedVelocity(
614
+ this.dragSamples,
615
+ Date.now()
616
+ ).x;
617
+ const translateVelocity = this.isRtl() ? pointerVelocityX : -pointerVelocityX;
618
+ const from = this.liveTranslateX;
619
+ const target = this.getPossibleTransformX(
620
+ from + project(translateVelocity)
621
+ );
622
+ this.$lgThumb.css("transition-duration", "0ms");
623
+ if (this.isThumbWindowed()) {
624
+ this.renderThumbItems(this.core.index, { from, to: target });
625
+ }
626
+ this.cancelThumbSpring = runSprings(
627
+ [{ from, velocity: translateVelocity, target }],
628
+ ([value]) => {
629
+ this.liveTranslateX = value;
630
+ this.setTranslate(value);
631
+ if (this.scrubActive) {
632
+ this.scrubTo(value);
633
+ }
634
+ },
635
+ () => {
636
+ this.cancelThumbSpring = void 0;
637
+ this.translateX = target;
638
+ this.endScrub();
639
+ this.$lgThumb.css(
640
+ "transition-duration",
641
+ this.core.settings.speed + "ms"
642
+ );
643
+ if (this.isThumbWindowed()) {
644
+ this.renderThumbItems();
645
+ }
646
+ }
647
+ );
648
+ if (Math.abs(thumbDragUtils.cords.endX - thumbDragUtils.cords.startX) < this.settings.thumbnailSwipeThreshold) {
649
+ this.thumbClickable = true;
650
+ }
651
+ return thumbDragUtils;
652
+ }
653
+ getThumbHtml(thumb, index, alt) {
654
+ const slideVideoInfo = this.core.galleryItems[index].__slideVideoInfo || {};
655
+ let thumbImg;
656
+ if (slideVideoInfo.youtube) {
657
+ if (this.settings.loadYouTubeThumbnail) {
658
+ thumbImg = "//img.youtube.com/vi/" + slideVideoInfo.youtube[1] + "/" + this.settings.youTubeThumbSize + ".jpg";
659
+ } else {
660
+ thumbImg = thumb;
661
+ }
662
+ } else {
663
+ thumbImg = thumb;
664
+ }
665
+ const div = document.createElement("div");
666
+ div.setAttribute("data-lg-item-id", index + "");
667
+ div.className = `lg-thumb-item ${index === this.core.index ? "active" : ""}`;
668
+ const marginSide = this.isRtl() ? "margin-left" : "margin-right";
669
+ div.style.cssText = `width: ${this.settings.thumbWidth}px; height: ${this.settings.thumbHeight}; ${marginSide}: ${this.settings.thumbMargin}px;`;
670
+ const img = document.createElement("img");
671
+ img.alt = alt || "";
672
+ img.setAttribute("data-lg-item-id", index + "");
673
+ img.src = thumbImg;
674
+ div.appendChild(img);
675
+ return div;
676
+ }
677
+ /**
678
+ * True when the strip renders only a window of thumbs
679
+ * (virtualization.thumbs, plan 010).
680
+ */
681
+ isThumbWindowed() {
682
+ var _a;
683
+ return ((_a = this.core.settings.virtualization) == null ? void 0 : _a.thumbs) !== void 0;
684
+ }
685
+ /**
686
+ * (Re)build the strip contents. Classic mode appends every thumb once;
687
+ * windowed mode renders the visible range plus overscan with spacers
688
+ * preserving the strip geometry, and re-runs at commit points only
689
+ * (open, slide change, drag release, resize, updateSlides), never per
690
+ * pointer move.
691
+ */
692
+ renderThumbItems(activeIndex = this.core.index, corridor) {
693
+ var _a;
694
+ const items = this.core.galleryItems;
695
+ if (!this.isThumbWindowed()) {
696
+ this.setThumbItemHtml(items);
697
+ return;
698
+ }
699
+ const geometry = {
700
+ stripWidth: this.thumbOuterWidth,
701
+ thumbWidth: this.settings.thumbWidth,
702
+ thumbMargin: this.settings.thumbMargin,
703
+ count: items.length,
704
+ overscan: (_a = this.core.settings.virtualization) == null ? void 0 : _a.thumbs
705
+ };
706
+ const thumbWindow = corridor ? getThumbCorridorWindow(__spreadValues(__spreadValues({}, geometry), corridor)) : getThumbWindow(__spreadProps(__spreadValues({}, geometry), { translate: this.translateX }));
707
+ this.renderedThumbWindow = thumbWindow;
708
+ this.$lgThumb.empty();
709
+ if (thumbWindow.leadingPad > 0) {
710
+ this.$lgThumb.append(
711
+ `<div class="lg-thumb-spacer" aria-hidden="true" style="width: ${thumbWindow.leadingPad}px;"></div>`
712
+ );
713
+ }
714
+ for (let i = thumbWindow.start; i <= thumbWindow.end; i++) {
715
+ const thumb = this.getThumbHtml(items[i].thumb, i, items[i].alt);
716
+ if (i === activeIndex) {
717
+ thumb.classList.add("active");
718
+ }
719
+ this.$lgThumb.append(thumb);
720
+ }
721
+ if (thumbWindow.trailingPad > 0) {
722
+ this.$lgThumb.append(
723
+ `<div class="lg-thumb-spacer" aria-hidden="true" style="width: ${thumbWindow.trailingPad}px;"></div>`
724
+ );
725
+ }
726
+ }
727
+ setThumbItemHtml(items) {
728
+ for (let i = 0; i < items.length; i++) {
729
+ const thumb = this.getThumbHtml(items[i].thumb, i, items[i].alt);
730
+ this.$lgThumb.append(thumb);
731
+ }
732
+ }
733
+ setAnimateThumbStyles() {
734
+ if (this.settings.animateThumb) {
735
+ this.core.outer.addClass("lg-animate-thumb");
736
+ }
737
+ }
738
+ // Manage thumbnail active calss
739
+ manageActiveClassOnSlideChange() {
740
+ this.core.LGel.on(
741
+ `${lGEvents.beforeSlide}.thumb`,
742
+ (event) => {
743
+ const { index } = event.detail;
744
+ this.core.outer.find(".lg-thumb-item").removeClass("active");
745
+ this.core.outer.find(`.lg-thumb-item[data-lg-item-id="${index}"]`).addClass("active");
746
+ }
747
+ );
748
+ }
749
+ // Toggle thumbnail bar
750
+ toggleThumbBar() {
751
+ var _a, _b;
752
+ if (this.settings.toggleThumb) {
753
+ this.core.outer.addClass("lg-can-toggle");
754
+ this.core.$toolbar.append(
755
+ '<button type="button" aria-label="' + ((_b = (_a = this.settings.thumbnailPluginStrings) == null ? void 0 : _a.toggleThumbnails) != null ? _b : this.core.settings.strings.toggleThumbnails) + '" class="lg-toggle-thumb lg-icon"></button>'
756
+ );
757
+ this.core.outer.find(".lg-toggle-thumb").first().on("click.lg", () => {
758
+ this.core.outer.toggleClass("lg-components-open");
759
+ });
760
+ }
761
+ }
762
+ thumbKeyPress() {
763
+ this.$LG(window).on(`keydown.lg.thumb.global${this.core.lgId}`, (e) => {
764
+ if (!this.core.lgOpened || !this.settings.toggleThumb) return;
765
+ if (e.keyCode === 38) {
766
+ e.preventDefault();
767
+ this.core.outer.addClass("lg-components-open");
768
+ } else if (e.keyCode === 40) {
769
+ e.preventDefault();
770
+ this.core.outer.removeClass("lg-components-open");
771
+ }
772
+ });
773
+ }
774
+ destroy() {
775
+ this.endScrub();
776
+ if (this.cancelThumbSpring) {
777
+ this.cancelThumbSpring();
778
+ this.cancelThumbSpring = void 0;
779
+ }
780
+ if (this.settings.thumbnail) {
781
+ this.$LG(window).off(`.lg.thumb.global${this.core.lgId}`);
782
+ this.core.LGel.off(".lg.thumb");
783
+ this.core.LGel.off(".thumb");
784
+ this.$thumbOuter.remove();
785
+ this.core.outer.removeClass("lg-has-thumb");
786
+ }
787
+ }
788
+ }
789
+ export {
790
+ Thumbnail as default
791
+ };
792
+ //# sourceMappingURL=lg-thumbnail.es5.js.map