lightgallery 2.6.1 → 2.7.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 (118) hide show
  1. package/angular/12/README.md +24 -0
  2. package/angular/{bundles/lightgallery-angular.umd.js → 12/bundles/lightgallery-angular-12.umd.js} +22 -37
  3. package/angular/12/bundles/lightgallery-angular-12.umd.js.map +1 -0
  4. package/angular/12/esm2015/lib/lightgallery-angular.component.js +221 -0
  5. package/angular/12/esm2015/lib/lightgallery-angular.module.js +17 -0
  6. package/angular/12/esm2015/lib/lightgallery-angular.service.js +14 -0
  7. package/angular/12/esm2015/lightgallery-angular-12.js +5 -0
  8. package/angular/{esm2015 → 12/esm2015}/public-api.js +0 -0
  9. package/angular/12/fesm2015/lightgallery-angular-12.js +258 -0
  10. package/angular/12/fesm2015/lightgallery-angular-12.js.map +1 -0
  11. package/angular/12/lib/lightgallery-angular.component.d.ts +38 -0
  12. package/angular/12/lib/lightgallery-angular.module.d.ts +7 -0
  13. package/angular/12/lib/lightgallery-angular.service.d.ts +6 -0
  14. package/angular/12/lightgallery-angular-12.d.ts +5 -0
  15. package/angular/12/package.json +18 -0
  16. package/angular/12/public-api.d.ts +3 -0
  17. package/angular/13/README.md +24 -0
  18. package/angular/13/esm2020/lib/lightgallery-angular.component.mjs +221 -0
  19. package/angular/13/esm2020/lib/lightgallery-angular.module.mjs +17 -0
  20. package/angular/13/esm2020/lib/lightgallery-angular.service.mjs +14 -0
  21. package/angular/13/esm2020/lightgallery-angular-13.mjs +5 -0
  22. package/angular/13/esm2020/public-api.mjs +7 -0
  23. package/angular/13/fesm2015/lightgallery-angular-13.mjs +258 -0
  24. package/angular/13/fesm2015/lightgallery-angular-13.mjs.map +1 -0
  25. package/angular/13/fesm2020/lightgallery-angular-13.mjs +258 -0
  26. package/angular/13/fesm2020/lightgallery-angular-13.mjs.map +1 -0
  27. package/angular/13/lib/lightgallery-angular.component.d.ts +38 -0
  28. package/angular/13/lib/lightgallery-angular.module.d.ts +7 -0
  29. package/angular/13/lib/lightgallery-angular.service.d.ts +6 -0
  30. package/angular/13/lightgallery-angular-13.d.ts +5 -0
  31. package/angular/13/package.json +31 -0
  32. package/angular/13/public-api.d.ts +3 -0
  33. package/angular/README.md +1 -1
  34. package/angular/esm2020/lib/lightgallery-angular.component.mjs +217 -0
  35. package/angular/esm2020/lib/lightgallery-angular.module.mjs +17 -0
  36. package/angular/esm2020/lib/lightgallery-angular.service.mjs +14 -0
  37. package/angular/{esm2015/lightgallery-angular.js → esm2020/lightgallery-angular.mjs} +0 -0
  38. package/angular/esm2020/public-api.mjs +7 -0
  39. package/angular/fesm2015/{lightgallery-angular.js → lightgallery-angular.mjs} +72 -81
  40. package/angular/fesm2015/lightgallery-angular.mjs.map +1 -0
  41. package/angular/fesm2020/lightgallery-angular.mjs +254 -0
  42. package/angular/fesm2020/lightgallery-angular.mjs.map +1 -0
  43. package/angular/{lightgallery-angular.d.ts → index.d.ts} +0 -1
  44. package/angular/lib/lightgallery-angular.component.d.ts +1 -2
  45. package/angular/lib/lightgallery-angular.module.d.ts +0 -1
  46. package/angular/lib/lightgallery-angular.service.d.ts +0 -1
  47. package/angular/package.json +23 -14
  48. package/angular/public-api.d.ts +0 -1
  49. package/lg-settings.d.ts +1 -0
  50. package/lib/lg-settings.js.map +1 -1
  51. package/lib/plugins/zoom/lg-zoom.js +27 -21
  52. package/lib/plugins/zoom/lg-zoom.js.map +1 -1
  53. package/lightgallery.es5.js +1 -1
  54. package/lightgallery.es5.js.map +1 -1
  55. package/lightgallery.min.js +1 -1
  56. package/lightgallery.umd.js +1 -1
  57. package/lightgallery.umd.js.map +1 -1
  58. package/lit/lightgallery.esm.js +1 -1
  59. package/lit/lightgallery.umd.js +1 -1
  60. package/package.json +1 -1
  61. package/plugins/autoplay/lg-autoplay.es5.js +1 -1
  62. package/plugins/autoplay/lg-autoplay.min.js +1 -1
  63. package/plugins/autoplay/lg-autoplay.umd.js +1 -1
  64. package/plugins/comment/lg-comment.es5.js +1 -1
  65. package/plugins/comment/lg-comment.min.js +1 -1
  66. package/plugins/comment/lg-comment.umd.js +1 -1
  67. package/plugins/fullscreen/lg-fullscreen.es5.js +1 -1
  68. package/plugins/fullscreen/lg-fullscreen.min.js +1 -1
  69. package/plugins/fullscreen/lg-fullscreen.umd.js +1 -1
  70. package/plugins/hash/lg-hash.es5.js +1 -1
  71. package/plugins/hash/lg-hash.min.js +1 -1
  72. package/plugins/hash/lg-hash.umd.js +1 -1
  73. package/plugins/mediumZoom/lg-medium-zoom.es5.js +1 -1
  74. package/plugins/mediumZoom/lg-medium-zoom.min.js +1 -1
  75. package/plugins/mediumZoom/lg-medium-zoom.umd.js +1 -1
  76. package/plugins/pager/lg-pager.es5.js +1 -1
  77. package/plugins/pager/lg-pager.min.js +1 -1
  78. package/plugins/pager/lg-pager.umd.js +1 -1
  79. package/plugins/relativeCaption/lg-relative-caption.es5.js +1 -1
  80. package/plugins/relativeCaption/lg-relative-caption.min.js +1 -1
  81. package/plugins/relativeCaption/lg-relative-caption.umd.js +1 -1
  82. package/plugins/rotate/lg-rotate.es5.js +1 -1
  83. package/plugins/rotate/lg-rotate.min.js +1 -1
  84. package/plugins/rotate/lg-rotate.umd.js +1 -1
  85. package/plugins/share/lg-share.es5.js +1 -1
  86. package/plugins/share/lg-share.min.js +1 -1
  87. package/plugins/share/lg-share.umd.js +1 -1
  88. package/plugins/thumbnail/lg-thumbnail.es5.js +1 -1
  89. package/plugins/thumbnail/lg-thumbnail.min.js +1 -1
  90. package/plugins/thumbnail/lg-thumbnail.umd.js +1 -1
  91. package/plugins/video/lg-video.es5.js +1 -1
  92. package/plugins/video/lg-video.min.js +1 -1
  93. package/plugins/video/lg-video.umd.js +1 -1
  94. package/plugins/vimeoThumbnail/lg-vimeo-thumbnail.es5.js +1 -1
  95. package/plugins/vimeoThumbnail/lg-vimeo-thumbnail.min.js +1 -1
  96. package/plugins/vimeoThumbnail/lg-vimeo-thumbnail.umd.js +1 -1
  97. package/plugins/zoom/lg-zoom.es5.js +28 -22
  98. package/plugins/zoom/lg-zoom.es5.js.map +1 -1
  99. package/plugins/zoom/lg-zoom.min.js +2 -2
  100. package/plugins/zoom/lg-zoom.umd.js +28 -22
  101. package/plugins/zoom/lg-zoom.umd.js.map +1 -1
  102. package/react/Lightgallery.es5.js +1 -1
  103. package/react/Lightgallery.es5.js.map +1 -1
  104. package/react/Lightgallery.umd.js +1 -1
  105. package/react/Lightgallery.umd.js.map +1 -1
  106. package/vue/LightGalleryVue.common.js.map +1 -1
  107. package/vue/LightGalleryVue.umd.js.map +1 -1
  108. package/vue/LightGalleryVue.umd.min.js.map +1 -1
  109. package/angular/bundles/lightgallery-angular.umd.js.map +0 -1
  110. package/angular/esm2015/lib/lightgallery-angular.component.js +0 -225
  111. package/angular/esm2015/lib/lightgallery-angular.module.js +0 -18
  112. package/angular/esm2015/lib/lightgallery-angular.service.js +0 -14
  113. package/angular/fesm2015/lightgallery-angular.js.map +0 -1
  114. package/angular/lib/lightgallery-angular.component.d.ts.map +0 -1
  115. package/angular/lib/lightgallery-angular.module.d.ts.map +0 -1
  116. package/angular/lib/lightgallery-angular.service.d.ts.map +0 -1
  117. package/angular/lightgallery-angular.d.ts.map +0 -1
  118. package/angular/public-api.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"lg-zoom.umd.js","sources":["../../../src/plugins/zoom/lg-zoom-settings.ts","../../../src/lg-events.ts","../../../src/plugins/zoom/lg-zoom.ts"],"sourcesContent":["export interface ActualSizeIcons {\n zoomIn: 'lg-zoom-in' | 'lg-actual-size';\n zoomOut: 'lg-zoom-out' | 'lg-actual-size';\n}\n\nexport interface ZoomStrings {\n zoomIn: string;\n zoomOut: string;\n viewActualSize: string;\n}\n\nexport interface ZoomSettings {\n /**\n * Value of zoom should be incremented/decremented\n */\n scale: number;\n\n /**\n * Enable/Disable zoom option\n */\n zoom: boolean;\n\n /**\n * Enable actual size icon.\n */\n actualSize: boolean;\n\n /**\n * Once the slide transition is completed, how much time should take zoom plugin to activate\n * @description Some css styles will be added to the images if zoom is enabled.\n * So it might conflict if you add any custom styles to the images such as the initial transition while opening the gallery.\n * So you can delay adding zoom related styles to the images by changing the value of enableZoomAfter.\n */\n enableZoomAfter: number;\n\n /**\n * Show zoom in, zoom out icons\n */\n showZoomInOutIcons: boolean;\n\n /**\n * Actual size icons classnames.\n * Specify classnames for both ZoomIn and ZoomOut states\n * You can use `actualSizeIcons: { zoomIn: 'lg-actual-size', zoomOut: 'lg-zoom-out' }`\n * to show actual size icons instead of zoom in and zoom out icons.\n */\n actualSizeIcons: ActualSizeIcons;\n\n /**\n * Custom translation strings for aria-labels\n */\n zoomPluginStrings: ZoomStrings;\n}\n\nexport const zoomSettings: ZoomSettings = {\n scale: 1,\n zoom: true,\n actualSize: true,\n showZoomInOutIcons: false,\n actualSizeIcons: {\n zoomIn: 'lg-zoom-in',\n zoomOut: 'lg-zoom-out',\n } as ActualSizeIcons,\n enableZoomAfter: 300,\n zoomPluginStrings: {\n zoomIn: 'Zoom in',\n zoomOut: 'Zoom out',\n viewActualSize: 'View actual size',\n } as ZoomStrings,\n};\n","import { LightGallery } from './lightgallery';\nimport { VideoSource } from './plugins/video/types';\n\n/**\n * List of lightGallery events\n * All events should be documented here\n * Below interfaces are used to build the website documentations\n * */\nexport const lGEvents: {\n [key: string]: string;\n} = {\n afterAppendSlide: 'lgAfterAppendSlide',\n init: 'lgInit',\n hasVideo: 'lgHasVideo',\n containerResize: 'lgContainerResize',\n updateSlides: 'lgUpdateSlides',\n afterAppendSubHtml: 'lgAfterAppendSubHtml',\n beforeOpen: 'lgBeforeOpen',\n afterOpen: 'lgAfterOpen',\n slideItemLoad: 'lgSlideItemLoad',\n beforeSlide: 'lgBeforeSlide',\n afterSlide: 'lgAfterSlide',\n posterClick: 'lgPosterClick',\n dragStart: 'lgDragStart',\n dragMove: 'lgDragMove',\n dragEnd: 'lgDragEnd',\n beforeNextSlide: 'lgBeforeNextSlide',\n beforePrevSlide: 'lgBeforePrevSlide',\n beforeClose: 'lgBeforeClose',\n afterClose: 'lgAfterClose',\n rotateLeft: 'lgRotateLeft',\n rotateRight: 'lgRotateRight',\n flipHorizontal: 'lgFlipHorizontal',\n flipVertical: 'lgFlipVertical',\n autoplay: 'lgAutoplay',\n autoplayStart: 'lgAutoplayStart',\n autoplayStop: 'lgAutoplayStop',\n};\n\n// Follow the below format for the event documentation\n// @method is the method name when event is used with Angular/React components\n\n/**\n * Fired only once when lightGallery is initialized\n * @name lgInit\n * @method onInit\n * @example\n * const lg = document.getElementById('custom-events-demo');\n * // Perform any action on lightGallery initialization.\n * // Init event returns the plugin instance that can be used to call any lightGalley public method\n * let pluginInstance = null;\n * lg.addEventListener('lgInit', (event) => {\n * pluginInstance = event.detail.instance;\n * });\n * lightGallery(lg);\n * @see <a href=\"/docs/methods\">Methods<a>\n */\nexport interface InitDetail {\n /**\n * lightGallery plugin instance\n */\n instance: LightGallery;\n}\n\n/**\n * Fired when the slide content has been inserted into it's slide container.\n * @name lgAfterAppendSlide\n * @method onAfterAppendSlide\n */\nexport interface AfterAppendSlideEventDetail {\n /**\n * Index of the slide\n */\n index: number;\n}\n\n/**\n * Fired immediately before opening the gallery\n * @name lgBeforeOpen\n * @method onBeforeOpen\n */\nexport interface BeforeOpenDetail {}\n\n/**\n * Fired immediately after opening the gallery\n * @name lgAfterOpen\n * @method onAfterOpen\n */\nexport interface AfterOpenDetail {}\n\n/**\n * Fired once the media inside the slide has been completely loaded .\n * @name lgSlideItemLoad\n * @method onSlideItemLoad\n */\nexport interface SlideItemLoadDetail {\n /**\n * Index of the slide\n */\n index: number;\n /**\n * For the first slide, lightGallery adds some delay for displaying the loaded slide item.\n * This delay is required for the transition effect when the slide item is displayed\n * Respect the delay when you use this event\n */\n delay: number;\n\n // Will be true for the first slide\n isFirstSlide: boolean;\n}\n\n/**\n * Fired immediately before each slide transition.\n * @name lgBeforeSlide\n * @method onBeforeSlide\n * @example\n * const lg = document.getElementById('custom-events-demo');\n * // Perform any action before each slide transition\n * lg.addEventListener('lgBeforeSlide', (event) => {\n * const { index, prevIndex } = event.detail;\n * alert(index, prevIndex);\n * });\n * lightGallery(lg);\n */\nexport interface BeforeSlideDetail {\n /**\n * Index of the previous slide\n */\n prevIndex: number;\n /**\n * Index of the slide\n */\n index: number;\n /**\n * true if slide function called via touch event or mouse drag\n */\n fromTouch: boolean;\n /**\n * true if slide function called via thumbnail click\n */\n fromThumb: boolean;\n}\n\n/**\n * Fired immediately after each slide transition.\n * @name lgAfterSlide\n * @method onAfterSlide\n */\nexport interface AfterSlideDetail {\n /**\n * Index of the previous slide\n */\n prevIndex: number;\n /**\n * Index of the slide\n */\n index: number;\n /**\n * true if slide function called via touch event or mouse drag\n */\n fromTouch: boolean;\n /**\n * true if slide function called via thumbnail click\n */\n fromThumb: boolean;\n}\n\n/**\n * Fired when the video poster is clicked.\n * @name lgPosterClick\n * @method onPosterClick\n */\nexport interface PosterClickDetail {}\n\n/**\n * Fired when the drag event to move to different slide starts.\n * @name lgDragStart\n * @method onDragStart\n */\nexport interface DragStartDetail {}\n\n/**\n * Fired periodically during the drag operation.\n * @name lgDragMove\n * @method onDragMove\n */\nexport interface DragMoveDetail {}\n\n/**\n * Fired when the user has finished the drag operation\n * @name lgDragEnd\n * @method onDragEnd\n */\nexport interface DragEndDetail {}\n\n/**\n * Fired immediately before the start of the close process.\n * @name lgBeforeClose\n * @method onBeforeClose\n */\nexport interface BeforeCloseDetail {}\n\n/**\n * Fired immediately once lightGallery is closed.\n * @name lgAfterClose\n * @method onAfterClose\n */\nexport interface AfterCloseDetail {\n /**\n * lightGallery plugin instance\n */\n instance: LightGallery;\n}\n\n/**\n * Fired immediately before each \"next\" slide transition\n * @name lgBeforeNextSlide\n * @method onBeforeNextSlide\n */\nexport interface BeforeNextSlideDetail {\n /**\n * Index of the slide\n */\n index: number;\n /**\n * true if slide function called via touch event or mouse drag\n */\n fromTouch: boolean;\n}\n\n/**\n * Fired immediately before each \"prev\" slide transition\n * @name lgBeforePrevSlide\n * @method onBeforePrevSlide\n */\nexport interface BeforePrevSlideDetail {\n /**\n * Index of the slide\n */\n index: number;\n /**\n * true if slide function called via touch event or mouse drag\n */\n fromTouch: boolean;\n}\n\n/**\n * Fired when the sub-html content (ex : title/ description) has been appended into the slide.\n * @name lgAfterAppendSubHtml\n * @method onAfterAppendSubHtml\n */\nexport interface AfterAppendSubHtmlDetail {\n /**\n * Index of the slide\n */\n index: number;\n}\n\n/**\n * Fired when the lightGallery container has been resized.\n * @name lgContainerResize\n * @method onContainerResize\n */\nexport interface ContainerResizeDetail {\n /**\n * Index of the slide\n */\n index: number;\n}\n\n/**\n * Fired when lightGallery detects video slide\n * @name lgHasVideo\n * @method onHasVideo\n */\nexport interface HasVideoDetail {\n /**\n * Index of the slide,\n */\n index: number;\n /**\n * Video source\n */\n src: string;\n /**\n * HTML5 video source if available\n * <p>\n HTML5 video source = source: {\n src: string;\n type: string;\n }[];\n attributes: HTMLVideoElement;\n * </p>\n */\n html5Video: VideoSource;\n /**\n * True if video has poster\n */\n hasPoster: boolean;\n}\n\n/**\n * Fired when the image is rotated in anticlockwise direction\n * @name lgRotateLeft\n * @method onRotateLeft\n */\nexport interface RotateLeftDetail {\n /**\n * Index of the slide\n */\n index: number;\n}\n\n/**\n * Fired when the image is rotated in clockwise direction\n * @name lgRotateRight\n * @method onRotateRight\n */\nexport interface RotateRightDetail {\n /**\n * Index of the slide\n */\n index: number;\n}\n\n/**\n * Fired when the image is flipped horizontally\n * @name lgFlipHorizontal\n * @method onFlipHorizontal\n */\nexport interface FlipHorizontalDetail {\n /**\n * Index of the slide\n */\n index: number;\n}\n\n/**\n * Fired when the image is flipped vertically\n * @name lgFlipVertical\n * @method onFlipVertical\n */\nexport interface FlipVerticalDetail {\n /**\n * Index of the slide\n */\n index: number;\n}\n","import { ZoomSettings, zoomSettings } from './lg-zoom-settings';\nimport { LgQuery, lgQuery } from '../../lgQuery';\nimport { LightGallery } from '../../lightgallery';\nimport { lGEvents } from '../../lg-events';\n\ninterface Coords {\n x: number;\n y: number;\n}\n\ninterface DragAllowedAxises {\n allowX: boolean;\n allowY: boolean;\n}\ninterface ZoomTouchEvent {\n pageX: number;\n touches: { pageY: number; pageX: number }[];\n pageY: number;\n}\ninterface PossibleCords {\n minX: number;\n minY: number;\n maxX: number;\n maxY: number;\n}\nexport default class Zoom {\n private core: LightGallery;\n private settings: ZoomSettings;\n private $LG!: LgQuery;\n private imageReset!: number | boolean;\n zoomableTimeout: any;\n positionChanged!: boolean;\n pageX!: number;\n pageY!: number;\n scale!: number;\n\n containerRect!: ClientRect;\n dragAllowedAxises!: DragAllowedAxises;\n top!: number;\n left!: number;\n scrollTop!: number;\n constructor(instance: LightGallery, $LG: LgQuery) {\n // get lightGallery core plugin instance\n this.core = instance;\n this.$LG = $LG;\n\n this.settings = { ...zoomSettings, ...this.core.settings };\n\n return this;\n }\n\n // Append Zoom controls. Actual size, Zoom-in, Zoom-out\n buildTemplates(): void {\n let zoomIcons = this.settings.showZoomInOutIcons\n ? `<button id=\"${this.core.getIdName(\n 'lg-zoom-in',\n )}\" type=\"button\" aria-label=\"${\n this.settings.zoomPluginStrings['zoomIn']\n }\" class=\"lg-zoom-in lg-icon\"></button><button id=\"${this.core.getIdName(\n 'lg-zoom-out',\n )}\" type=\"button\" aria-label=\"${\n this.settings.zoomPluginStrings['zoomIn']\n }\" class=\"lg-zoom-out lg-icon\"></button>`\n : '';\n\n if (this.settings.actualSize) {\n zoomIcons += `<button id=\"${this.core.getIdName(\n 'lg-actual-size',\n )}\" type=\"button\" aria-label=\"${\n this.settings.zoomPluginStrings['viewActualSize']\n }\" class=\"${\n this.settings.actualSizeIcons.zoomIn\n } lg-icon\"></button>`;\n }\n\n this.core.outer.addClass('lg-use-transition-for-zoom');\n\n this.core.$toolbar.first().append(zoomIcons);\n }\n\n /**\n * @desc Enable zoom option only once the image is completely loaded\n * If zoomFromOrigin is true, Zoom is enabled once the dummy image has been inserted\n *\n * Zoom styles are defined under lg-zoomable CSS class.\n */\n enableZoom(event: CustomEvent): void {\n // delay will be 0 except first time\n let _speed = this.settings.enableZoomAfter + event.detail.delay;\n\n // set _speed value 0 if gallery opened from direct url and if it is first slide\n if (\n this.$LG('body').first().hasClass('lg-from-hash') &&\n event.detail.delay\n ) {\n // will execute only once\n _speed = 0;\n } else {\n // Remove lg-from-hash to enable starting animation.\n this.$LG('body').first().removeClass('lg-from-hash');\n }\n\n this.zoomableTimeout = setTimeout(() => {\n if (!this.isImageSlide(this.core.index)) {\n return;\n }\n this.core.getSlideItem(event.detail.index).addClass('lg-zoomable');\n if (event.detail.index === this.core.index) {\n this.setZoomEssentials();\n }\n }, _speed + 30);\n }\n\n enableZoomOnSlideItemLoad(): void {\n // Add zoomable class\n this.core.LGel.on(\n `${lGEvents.slideItemLoad}.zoom`,\n this.enableZoom.bind(this),\n );\n }\n\n getDragCords(e: MouseEvent): Coords {\n return {\n x: e.pageX,\n y: e.pageY,\n };\n }\n getSwipeCords(e: TouchEvent): Coords {\n const x = e.touches[0].pageX;\n const y = e.touches[0].pageY;\n return {\n x,\n y,\n };\n }\n\n getDragAllowedAxises(scale: number, scaleDiff?: number): DragAllowedAxises {\n const $image = this.core\n .getSlideItem(this.core.index)\n .find('.lg-image')\n .first()\n .get();\n\n let height = 0;\n let width = 0;\n const rect = $image.getBoundingClientRect();\n if (scale) {\n height = $image.offsetHeight * scale;\n width = $image.offsetWidth * scale;\n } else if (scaleDiff) {\n height = rect.height + scaleDiff * rect.height;\n width = rect.width + scaleDiff * rect.width;\n } else {\n height = rect.height;\n width = rect.width;\n }\n const allowY = height > this.containerRect.height;\n const allowX = width > this.containerRect.width;\n return {\n allowX,\n allowY,\n };\n }\n\n setZoomEssentials(): void {\n this.containerRect = this.core.$content.get().getBoundingClientRect();\n }\n\n /**\n * @desc Image zoom\n * Translate the wrap and scale the image to get better user experience\n *\n * @param {String} scale - Zoom decrement/increment value\n */\n zoomImage(\n scale: number,\n scaleDiff: number,\n reposition: boolean,\n resetToMax: boolean,\n ): void {\n if (Math.abs(scaleDiff) <= 0) return;\n\n const offsetX = this.containerRect.width / 2 + this.containerRect.left;\n\n const offsetY =\n this.containerRect.height / 2 +\n this.containerRect.top +\n this.scrollTop;\n\n let originalX;\n let originalY;\n\n if (scale === 1) {\n this.positionChanged = false;\n }\n\n const dragAllowedAxises = this.getDragAllowedAxises(0, scaleDiff);\n\n const { allowY, allowX } = dragAllowedAxises;\n if (this.positionChanged) {\n originalX = this.left / (this.scale - scaleDiff);\n originalY = this.top / (this.scale - scaleDiff);\n this.pageX = offsetX - originalX;\n this.pageY = offsetY - originalY;\n\n this.positionChanged = false;\n }\n\n const possibleSwipeCords = this.getPossibleSwipeDragCords(scaleDiff);\n\n let x;\n let y;\n let _x = offsetX - this.pageX;\n let _y = offsetY - this.pageY;\n\n if (scale - scaleDiff > 1) {\n const scaleVal = (scale - scaleDiff) / Math.abs(scaleDiff);\n _x =\n (scaleDiff < 0 ? -_x : _x) +\n this.left * (scaleVal + (scaleDiff < 0 ? -1 : 1));\n _y =\n (scaleDiff < 0 ? -_y : _y) +\n this.top * (scaleVal + (scaleDiff < 0 ? -1 : 1));\n x = _x / scaleVal;\n y = _y / scaleVal;\n } else {\n const scaleVal = (scale - scaleDiff) * scaleDiff;\n x = _x * scaleVal;\n y = _y * scaleVal;\n }\n\n if (reposition) {\n if (allowX) {\n if (this.isBeyondPossibleLeft(x, possibleSwipeCords.minX)) {\n x = possibleSwipeCords.minX;\n } else if (\n this.isBeyondPossibleRight(x, possibleSwipeCords.maxX)\n ) {\n x = possibleSwipeCords.maxX;\n }\n } else {\n if (scale > 1) {\n if (x < possibleSwipeCords.minX) {\n x = possibleSwipeCords.minX;\n } else if (x > possibleSwipeCords.maxX) {\n x = possibleSwipeCords.maxX;\n }\n }\n }\n // @todo fix this\n if (allowY) {\n if (this.isBeyondPossibleTop(y, possibleSwipeCords.minY)) {\n y = possibleSwipeCords.minY;\n } else if (\n this.isBeyondPossibleBottom(y, possibleSwipeCords.maxY)\n ) {\n y = possibleSwipeCords.maxY;\n }\n } else {\n // If the translate value based on index of beyond the viewport, utilize the available space to prevent image being cut out\n if (scale > 1) {\n //If image goes beyond viewport top, use the minim possible translate value\n if (y < possibleSwipeCords.minY) {\n y = possibleSwipeCords.minY;\n } else if (y > possibleSwipeCords.maxY) {\n y = possibleSwipeCords.maxY;\n }\n }\n }\n }\n\n this.setZoomStyles({\n x: x,\n y: y,\n scale,\n });\n\n this.left = x;\n this.top = y;\n\n if (resetToMax) {\n const actualSizeScale = this.getCurrentImageActualSizeScale();\n\n if (scale >= actualSizeScale) {\n this.setZoomImageSize();\n }\n }\n }\n\n resetImageTranslate(index: number): void {\n if (!this.isImageSlide(index)) {\n return;\n }\n const $image = this.core.getSlideItem(index).find('.lg-image').first();\n this.imageReset = false;\n $image.removeClass(\n 'reset-transition reset-transition-y reset-transition-x',\n );\n this.core.outer.removeClass('lg-actual-size');\n $image.css('width', 'auto').css('height', 'auto');\n setTimeout(() => {\n $image.removeClass('no-transition');\n }, 10);\n }\n\n setZoomImageSize(): void {\n const $image = this.core\n .getSlideItem(this.core.index)\n .find('.lg-image')\n .first();\n\n setTimeout(() => {\n $image.addClass('no-transition');\n this.imageReset = true;\n }, 500);\n setTimeout(() => {\n const dragAllowedAxises = this.getDragAllowedAxises(this.scale);\n\n $image\n .css(\n 'width',\n ($image.get() as HTMLImageElement).naturalWidth + 'px',\n )\n .css(\n 'height',\n ($image.get() as HTMLImageElement).naturalHeight + 'px',\n );\n this.core.outer.addClass('lg-actual-size');\n if (dragAllowedAxises.allowX && dragAllowedAxises.allowY) {\n $image.addClass('reset-transition');\n } else if (dragAllowedAxises.allowX && !dragAllowedAxises.allowY) {\n $image.addClass('reset-transition-x');\n } else if (!dragAllowedAxises.allowX && dragAllowedAxises.allowY) {\n $image.addClass('reset-transition-y');\n }\n }, 550);\n }\n\n /**\n * @desc apply scale3d to image and translate to image wrap\n * @param {style} X,Y and scale\n */\n setZoomStyles(style: { x: number; y: number; scale: number }): void {\n const $imageWrap = this.core\n .getSlideItem(this.core.index)\n .find('.lg-img-wrap')\n .first();\n const $image = this.core\n .getSlideItem(this.core.index)\n .find('.lg-image')\n .first();\n const $dummyImage = this.core.outer\n .find('.lg-current .lg-dummy-img')\n .first();\n this.scale = style.scale;\n $image.css(\n 'transform',\n 'scale3d(' + style.scale + ', ' + style.scale + ', 1)',\n );\n\n $dummyImage.css(\n 'transform',\n 'scale3d(' + style.scale + ', ' + style.scale + ', 1)',\n );\n\n const transform =\n 'translate3d(' + style.x + 'px, ' + style.y + 'px, 0)';\n $imageWrap.css('transform', transform);\n }\n\n /**\n * @param index - Index of the current slide\n * @param event - event will be available only if the function is called on clicking/taping the imags\n */\n setActualSize(index: number, event?: ZoomTouchEvent): void {\n const currentItem = this.core.galleryItems[this.core.index];\n this.resetImageTranslate(index);\n setTimeout(() => {\n // Allow zoom only on image\n if (\n !currentItem.src ||\n this.core.outer.hasClass('lg-first-slide-loading')\n ) {\n return;\n }\n const scale = this.getCurrentImageActualSizeScale();\n const prevScale = this.scale;\n if (this.core.outer.hasClass('lg-zoomed')) {\n this.scale = 1;\n } else {\n this.scale = this.getScale(scale);\n }\n this.setPageCords(event);\n\n this.beginZoom(this.scale);\n this.zoomImage(this.scale, this.scale - prevScale, true, true);\n\n setTimeout(() => {\n this.core.outer.removeClass('lg-grabbing').addClass('lg-grab');\n }, 10);\n }, 50);\n }\n\n getNaturalWidth(index: number): number {\n const $image = this.core.getSlideItem(index).find('.lg-image').first();\n\n const naturalWidth = this.core.galleryItems[index].width;\n return naturalWidth\n ? parseFloat(naturalWidth)\n : undefined || ($image.get() as any).naturalWidth;\n }\n\n getActualSizeScale(naturalWidth: number, width: number): number {\n let _scale;\n let scale;\n if (naturalWidth >= width) {\n _scale = naturalWidth / width;\n scale = _scale || 2;\n } else {\n scale = 1;\n }\n return scale;\n }\n\n getCurrentImageActualSizeScale(): number {\n const $image = this.core\n .getSlideItem(this.core.index)\n .find('.lg-image')\n .first();\n const width = $image.get().offsetWidth;\n const naturalWidth = this.getNaturalWidth(this.core.index) || width;\n return this.getActualSizeScale(naturalWidth, width);\n }\n\n getPageCords(event?: ZoomTouchEvent): Coords {\n const cords: Coords = {} as Coords;\n if (event) {\n cords.x = event.pageX || event.touches[0].pageX;\n cords.y = event.pageY || event.touches[0].pageY;\n } else {\n const containerRect = this.core.$content\n .get()\n .getBoundingClientRect();\n cords.x = containerRect.width / 2 + containerRect.left;\n cords.y =\n containerRect.height / 2 + this.scrollTop + containerRect.top;\n }\n return cords;\n }\n\n setPageCords(event?: ZoomTouchEvent): void {\n const pageCords = this.getPageCords(event);\n\n this.pageX = pageCords.x;\n this.pageY = pageCords.y;\n }\n\n manageActualPixelClassNames(): void {\n const $actualSize = this.core.getElementById('lg-actual-size');\n $actualSize\n .removeClass(this.settings.actualSizeIcons.zoomIn)\n .addClass(this.settings.actualSizeIcons.zoomOut);\n }\n\n // If true, zoomed - in else zoomed out\n beginZoom(scale: number): boolean {\n this.core.outer.removeClass('lg-zoom-drag-transition lg-zoom-dragging');\n if (scale > 1) {\n this.core.outer.addClass('lg-zoomed');\n this.manageActualPixelClassNames();\n } else {\n this.resetZoom();\n }\n return scale > 1;\n }\n\n getScale(scale: number): number {\n const actualSizeScale = this.getCurrentImageActualSizeScale();\n if (scale < 1) {\n scale = 1;\n } else if (scale > actualSizeScale) {\n scale = actualSizeScale;\n }\n return scale;\n }\n\n init(): void {\n if (!this.settings.zoom) {\n return;\n }\n this.buildTemplates();\n this.enableZoomOnSlideItemLoad();\n\n let tapped: ReturnType<typeof setTimeout> | null = null;\n\n this.core.outer.on('dblclick.lg', (event) => {\n if (!this.$LG(event.target).hasClass('lg-image')) {\n return;\n }\n this.setActualSize(this.core.index, event);\n });\n\n this.core.outer.on('touchstart.lg', (event) => {\n const $target = this.$LG(event.target);\n if (event.touches.length === 1 && $target.hasClass('lg-image')) {\n if (!tapped) {\n tapped = setTimeout(() => {\n tapped = null;\n }, 300);\n } else {\n clearTimeout(tapped);\n tapped = null;\n event.preventDefault();\n this.setActualSize(this.core.index, event);\n }\n }\n });\n\n this.core.LGel.on(\n `${lGEvents.containerResize}.zoom ${lGEvents.rotateRight}.zoom ${lGEvents.rotateLeft}.zoom ${lGEvents.flipHorizontal}.zoom ${lGEvents.flipVertical}.zoom`,\n () => {\n if (\n !this.core.lgOpened ||\n !this.isImageSlide(this.core.index) ||\n this.core.touchAction\n ) {\n return;\n }\n const _LGel = this.core\n .getSlideItem(this.core.index)\n .find('.lg-img-wrap')\n .first();\n this.top = 0;\n this.left = 0;\n this.setZoomEssentials();\n this.setZoomSwipeStyles(_LGel, { x: 0, y: 0 });\n this.positionChanged = true;\n },\n );\n // Update zoom on resize and orientationchange\n this.$LG(window).on(`scroll.lg.zoom.global${this.core.lgId}`, () => {\n if (!this.core.lgOpened) return;\n this.scrollTop = this.$LG(window).scrollTop();\n });\n\n this.core.getElementById('lg-zoom-out').on('click.lg', () => {\n // Allow zoom only on image\n if (!this.isImageSlide(this.core.index)) {\n return;\n }\n\n let timeout = 0;\n if (this.imageReset) {\n this.resetImageTranslate(this.core.index);\n timeout = 50;\n }\n setTimeout(() => {\n let scale = this.scale - this.settings.scale;\n\n if (scale < 1) {\n scale = 1;\n }\n this.beginZoom(scale);\n this.zoomImage(scale, -this.settings.scale, true, true);\n }, timeout);\n });\n\n this.core.getElementById('lg-zoom-in').on('click.lg', () => {\n this.zoomIn();\n });\n\n this.core.getElementById('lg-actual-size').on('click.lg', () => {\n this.setActualSize(this.core.index);\n });\n\n this.core.LGel.on(`${lGEvents.beforeOpen}.zoom`, () => {\n this.core.outer.find('.lg-item').removeClass('lg-zoomable');\n });\n this.core.LGel.on(`${lGEvents.afterOpen}.zoom`, () => {\n this.scrollTop = this.$LG(window).scrollTop();\n\n // Set the initial value center\n this.pageX = this.core.outer.width() / 2;\n this.pageY = this.core.outer.height() / 2 + this.scrollTop;\n\n this.scale = 1;\n });\n\n // Reset zoom on slide change\n this.core.LGel.on(\n `${lGEvents.afterSlide}.zoom`,\n (event: CustomEvent) => {\n const { prevIndex } = event.detail;\n this.scale = 1;\n this.positionChanged = false;\n this.resetZoom(prevIndex);\n this.resetImageTranslate(prevIndex);\n if (this.isImageSlide(this.core.index)) {\n this.setZoomEssentials();\n }\n },\n );\n\n // Drag option after zoom\n this.zoomDrag();\n\n this.pinchZoom();\n\n this.zoomSwipe();\n\n // Store the zoomable timeout value just to clear it while closing\n this.zoomableTimeout = false;\n this.positionChanged = false;\n }\n\n zoomIn(): void {\n // Allow zoom only on image\n if (!this.isImageSlide(this.core.index)) {\n return;\n }\n\n let scale = this.scale + this.settings.scale;\n\n scale = this.getScale(scale);\n this.beginZoom(scale);\n this.zoomImage(scale, this.settings.scale, true, true);\n }\n\n // Reset zoom effect\n resetZoom(index?: number): void {\n this.core.outer.removeClass('lg-zoomed lg-zoom-drag-transition');\n const $actualSize = this.core.getElementById('lg-actual-size');\n const $item = this.core.getSlideItem(\n index !== undefined ? index : this.core.index,\n );\n $actualSize\n .removeClass(this.settings.actualSizeIcons.zoomOut)\n .addClass(this.settings.actualSizeIcons.zoomIn);\n $item.find('.lg-img-wrap').first().removeAttr('style');\n $item.find('.lg-image').first().removeAttr('style');\n this.scale = 1;\n this.left = 0;\n this.top = 0;\n\n // Reset pagx pagy values to center\n this.setPageCords();\n }\n\n getTouchDistance(e: TouchEvent): number {\n return Math.sqrt(\n (e.touches[0].pageX - e.touches[1].pageX) *\n (e.touches[0].pageX - e.touches[1].pageX) +\n (e.touches[0].pageY - e.touches[1].pageY) *\n (e.touches[0].pageY - e.touches[1].pageY),\n );\n }\n\n pinchZoom(): void {\n let startDist = 0;\n let pinchStarted = false;\n let initScale = 1;\n let prevScale = 0;\n\n let $item = this.core.getSlideItem(this.core.index);\n\n this.core.outer.on('touchstart.lg', (e) => {\n $item = this.core.getSlideItem(this.core.index);\n if (!this.isImageSlide(this.core.index)) {\n return;\n }\n if (e.touches.length === 2) {\n e.preventDefault();\n if (this.core.outer.hasClass('lg-first-slide-loading')) {\n return;\n }\n initScale = this.scale || 1;\n this.core.outer.removeClass(\n 'lg-zoom-drag-transition lg-zoom-dragging',\n );\n\n this.setPageCords(e);\n this.resetImageTranslate(this.core.index);\n\n this.core.touchAction = 'pinch';\n\n startDist = this.getTouchDistance(e);\n }\n });\n\n this.core.$inner.on('touchmove.lg', (e) => {\n if (\n e.touches.length === 2 &&\n this.core.touchAction === 'pinch' &&\n (this.$LG(e.target).hasClass('lg-item') ||\n $item.get().contains(e.target))\n ) {\n e.preventDefault();\n const endDist = this.getTouchDistance(e);\n\n const distance = startDist - endDist;\n if (!pinchStarted && Math.abs(distance) > 5) {\n pinchStarted = true;\n }\n if (pinchStarted) {\n prevScale = this.scale;\n const _scale = Math.max(1, initScale + -distance * 0.02);\n this.scale =\n Math.round((_scale + Number.EPSILON) * 100) / 100;\n const diff = this.scale - prevScale;\n this.zoomImage(\n this.scale,\n Math.round((diff + Number.EPSILON) * 100) / 100,\n false,\n false,\n );\n }\n }\n });\n\n this.core.$inner.on('touchend.lg', (e) => {\n if (\n this.core.touchAction === 'pinch' &&\n (this.$LG(e.target).hasClass('lg-item') ||\n $item.get().contains(e.target))\n ) {\n pinchStarted = false;\n startDist = 0;\n if (this.scale <= 1) {\n this.resetZoom();\n } else {\n const actualSizeScale = this.getCurrentImageActualSizeScale();\n\n if (this.scale >= actualSizeScale) {\n let scaleDiff = actualSizeScale - this.scale;\n if (scaleDiff === 0) {\n scaleDiff = 0.01;\n }\n this.zoomImage(actualSizeScale, scaleDiff, false, true);\n }\n this.manageActualPixelClassNames();\n\n this.core.outer.addClass('lg-zoomed');\n }\n this.core.touchAction = undefined;\n }\n });\n }\n\n touchendZoom(\n startCoords: Coords,\n endCoords: Coords,\n allowX: boolean,\n allowY: boolean,\n touchDuration: number,\n ): void {\n let distanceXnew = endCoords.x - startCoords.x;\n let distanceYnew = endCoords.y - startCoords.y;\n\n let speedX = Math.abs(distanceXnew) / touchDuration + 1;\n let speedY = Math.abs(distanceYnew) / touchDuration + 1;\n\n if (speedX > 2) {\n speedX += 1;\n }\n\n if (speedY > 2) {\n speedY += 1;\n }\n\n distanceXnew = distanceXnew * speedX;\n distanceYnew = distanceYnew * speedY;\n\n const _LGel = this.core\n .getSlideItem(this.core.index)\n .find('.lg-img-wrap')\n .first();\n const distance: Coords = {} as Coords;\n\n distance.x = this.left + distanceXnew;\n distance.y = this.top + distanceYnew;\n\n const possibleSwipeCords = this.getPossibleSwipeDragCords();\n\n if (Math.abs(distanceXnew) > 15 || Math.abs(distanceYnew) > 15) {\n if (allowY) {\n if (\n this.isBeyondPossibleTop(\n distance.y,\n possibleSwipeCords.minY,\n )\n ) {\n distance.y = possibleSwipeCords.minY;\n } else if (\n this.isBeyondPossibleBottom(\n distance.y,\n possibleSwipeCords.maxY,\n )\n ) {\n distance.y = possibleSwipeCords.maxY;\n }\n }\n\n if (allowX) {\n if (\n this.isBeyondPossibleLeft(\n distance.x,\n possibleSwipeCords.minX,\n )\n ) {\n distance.x = possibleSwipeCords.minX;\n } else if (\n this.isBeyondPossibleRight(\n distance.x,\n possibleSwipeCords.maxX,\n )\n ) {\n distance.x = possibleSwipeCords.maxX;\n }\n }\n\n if (allowY) {\n this.top = distance.y;\n } else {\n distance.y = this.top;\n }\n\n if (allowX) {\n this.left = distance.x;\n } else {\n distance.x = this.left;\n }\n\n this.setZoomSwipeStyles(_LGel, distance);\n\n this.positionChanged = true;\n }\n }\n\n getZoomSwipeCords(\n startCoords: Coords,\n endCoords: Coords,\n allowX: boolean,\n allowY: boolean,\n possibleSwipeCords: PossibleCords,\n ): Coords {\n const distance: Coords = {} as Coords;\n if (allowY) {\n distance.y = this.top + (endCoords.y - startCoords.y);\n if (this.isBeyondPossibleTop(distance.y, possibleSwipeCords.minY)) {\n const diffMinY = possibleSwipeCords.minY - distance.y;\n distance.y = possibleSwipeCords.minY - diffMinY / 6;\n } else if (\n this.isBeyondPossibleBottom(distance.y, possibleSwipeCords.maxY)\n ) {\n const diffMaxY = distance.y - possibleSwipeCords.maxY;\n distance.y = possibleSwipeCords.maxY + diffMaxY / 6;\n }\n } else {\n distance.y = this.top;\n }\n\n if (allowX) {\n distance.x = this.left + (endCoords.x - startCoords.x);\n if (\n this.isBeyondPossibleLeft(distance.x, possibleSwipeCords.minX)\n ) {\n const diffMinX = possibleSwipeCords.minX - distance.x;\n distance.x = possibleSwipeCords.minX - diffMinX / 6;\n } else if (\n this.isBeyondPossibleRight(distance.x, possibleSwipeCords.maxX)\n ) {\n const difMaxX = distance.x - possibleSwipeCords.maxX;\n distance.x = possibleSwipeCords.maxX + difMaxX / 6;\n }\n } else {\n distance.x = this.left;\n }\n\n return distance;\n }\n\n private isBeyondPossibleLeft(x: number, minX: number) {\n return x >= minX;\n }\n private isBeyondPossibleRight(x: number, maxX: number) {\n return x <= maxX;\n }\n private isBeyondPossibleTop(y: number, minY: number) {\n return y >= minY;\n }\n private isBeyondPossibleBottom(y: number, maxY: number) {\n return y <= maxY;\n }\n\n isImageSlide(index: number): boolean {\n const currentItem = this.core.galleryItems[index];\n return this.core.getSlideType(currentItem) === 'image';\n }\n\n getPossibleSwipeDragCords(scale?: number): PossibleCords {\n const $image = this.core\n .getSlideItem(this.core.index)\n .find('.lg-image')\n .first();\n\n const { bottom } = this.core.mediaContainerPosition;\n\n const imgRect = $image.get().getBoundingClientRect();\n\n let imageHeight = imgRect.height;\n let imageWidth = imgRect.width;\n\n if (scale) {\n imageHeight = imageHeight + scale * imageHeight;\n imageWidth = imageWidth + scale * imageWidth;\n }\n\n const minY = (imageHeight - this.containerRect.height) / 2;\n const maxY = (this.containerRect.height - imageHeight) / 2 + bottom;\n\n const minX = (imageWidth - this.containerRect.width) / 2;\n\n const maxX = (this.containerRect.width - imageWidth) / 2;\n\n const possibleSwipeCords = {\n minY: minY,\n maxY: maxY,\n minX: minX,\n maxX: maxX,\n };\n return possibleSwipeCords;\n }\n\n setZoomSwipeStyles(\n LGel: lgQuery,\n distance: { x: number; y: number },\n ): void {\n LGel.css(\n 'transform',\n 'translate3d(' + distance.x + 'px, ' + distance.y + 'px, 0)',\n );\n }\n\n zoomSwipe(): void {\n let startCoords = {} as Coords;\n let endCoords = {} as Coords;\n let isMoved = false;\n\n // Allow x direction drag\n let allowX = false;\n\n // Allow Y direction drag\n let allowY = false;\n\n let startTime: Date = new Date();\n let endTime: Date = new Date();\n let possibleSwipeCords: PossibleCords;\n\n let _LGel: lgQuery;\n\n let $item = this.core.getSlideItem(this.core.index);\n\n this.core.$inner.on('touchstart.lg', (e) => {\n // Allow zoom only on image\n if (!this.isImageSlide(this.core.index)) {\n return;\n }\n $item = this.core.getSlideItem(this.core.index);\n if (\n (this.$LG(e.target).hasClass('lg-item') ||\n $item.get().contains(e.target)) &&\n e.touches.length === 1 &&\n this.core.outer.hasClass('lg-zoomed')\n ) {\n e.preventDefault();\n startTime = new Date();\n this.core.touchAction = 'zoomSwipe';\n _LGel = this.core\n .getSlideItem(this.core.index)\n .find('.lg-img-wrap')\n .first();\n\n const dragAllowedAxises = this.getDragAllowedAxises(0);\n\n allowY = dragAllowedAxises.allowY;\n allowX = dragAllowedAxises.allowX;\n if (allowX || allowY) {\n startCoords = this.getSwipeCords(e);\n }\n\n possibleSwipeCords = this.getPossibleSwipeDragCords();\n\n // reset opacity and transition duration\n this.core.outer.addClass(\n 'lg-zoom-dragging lg-zoom-drag-transition',\n );\n }\n });\n\n this.core.$inner.on('touchmove.lg', (e) => {\n if (\n e.touches.length === 1 &&\n this.core.touchAction === 'zoomSwipe' &&\n (this.$LG(e.target).hasClass('lg-item') ||\n $item.get().contains(e.target))\n ) {\n e.preventDefault();\n this.core.touchAction = 'zoomSwipe';\n\n endCoords = this.getSwipeCords(e);\n\n const distance = this.getZoomSwipeCords(\n startCoords,\n endCoords,\n allowX,\n allowY,\n possibleSwipeCords,\n );\n\n if (\n Math.abs(endCoords.x - startCoords.x) > 15 ||\n Math.abs(endCoords.y - startCoords.y) > 15\n ) {\n isMoved = true;\n this.setZoomSwipeStyles(_LGel, distance);\n }\n }\n });\n\n this.core.$inner.on('touchend.lg', (e) => {\n if (\n this.core.touchAction === 'zoomSwipe' &&\n (this.$LG(e.target).hasClass('lg-item') ||\n $item.get().contains(e.target))\n ) {\n e.preventDefault();\n this.core.touchAction = undefined;\n this.core.outer.removeClass('lg-zoom-dragging');\n if (!isMoved) {\n return;\n }\n isMoved = false;\n endTime = new Date();\n const touchDuration = endTime.valueOf() - startTime.valueOf();\n this.touchendZoom(\n startCoords,\n endCoords,\n allowX,\n allowY,\n touchDuration,\n );\n }\n });\n }\n\n zoomDrag(): void {\n let startCoords: Coords = {} as Coords;\n let endCoords: Coords = {} as Coords;\n let isDragging = false;\n let isMoved = false;\n\n // Allow x direction drag\n let allowX = false;\n\n // Allow Y direction drag\n let allowY = false;\n\n let startTime: number | Date;\n let endTime;\n\n let possibleSwipeCords: PossibleCords;\n\n let _LGel: lgQuery;\n\n this.core.outer.on('mousedown.lg.zoom', (e) => {\n // Allow zoom only on image\n if (!this.isImageSlide(this.core.index)) {\n return;\n }\n const $item = this.core.getSlideItem(this.core.index);\n if (\n this.$LG(e.target).hasClass('lg-item') ||\n $item.get().contains(e.target)\n ) {\n startTime = new Date();\n _LGel = this.core\n .getSlideItem(this.core.index)\n .find('.lg-img-wrap')\n .first();\n\n const dragAllowedAxises = this.getDragAllowedAxises(0);\n\n allowY = dragAllowedAxises.allowY;\n allowX = dragAllowedAxises.allowX;\n\n if (this.core.outer.hasClass('lg-zoomed')) {\n if (\n this.$LG(e.target).hasClass('lg-object') &&\n (allowX || allowY)\n ) {\n e.preventDefault();\n startCoords = this.getDragCords(e);\n\n possibleSwipeCords = this.getPossibleSwipeDragCords();\n\n isDragging = true;\n\n this.core.outer\n .removeClass('lg-grab')\n .addClass(\n 'lg-grabbing lg-zoom-drag-transition lg-zoom-dragging',\n );\n // reset opacity and transition duration\n }\n }\n }\n });\n\n this.$LG(window).on(\n `mousemove.lg.zoom.global${this.core.lgId}`,\n (e) => {\n if (isDragging) {\n isMoved = true;\n endCoords = this.getDragCords(e);\n\n const distance = this.getZoomSwipeCords(\n startCoords,\n endCoords,\n allowX,\n allowY,\n possibleSwipeCords,\n );\n\n this.setZoomSwipeStyles(_LGel, distance);\n }\n },\n );\n\n this.$LG(window).on(`mouseup.lg.zoom.global${this.core.lgId}`, (e) => {\n if (isDragging) {\n endTime = new Date();\n isDragging = false;\n this.core.outer.removeClass('lg-zoom-dragging');\n\n // Fix for chrome mouse move on click\n if (\n isMoved &&\n (startCoords.x !== endCoords.x ||\n startCoords.y !== endCoords.y)\n ) {\n endCoords = this.getDragCords(e);\n\n const touchDuration =\n endTime.valueOf() - startTime.valueOf();\n this.touchendZoom(\n startCoords,\n endCoords,\n allowX,\n allowY,\n touchDuration,\n );\n }\n\n isMoved = false;\n }\n\n this.core.outer.removeClass('lg-grabbing').addClass('lg-grab');\n });\n }\n\n closeGallery(): void {\n this.resetZoom();\n }\n\n destroy(): void {\n // Unbind all events added by lightGallery zoom plugin\n this.$LG(window).off(`.lg.zoom.global${this.core.lgId}`);\n this.core.LGel.off('.lg.zoom');\n this.core.LGel.off('.zoom');\n clearTimeout(this.zoomableTimeout);\n this.zoomableTimeout = false;\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lg-zoom.umd.js","sources":["../../../src/plugins/zoom/lg-zoom-settings.ts","../../../src/lg-events.ts","../../../src/plugins/zoom/lg-zoom.ts"],"sourcesContent":["export interface ActualSizeIcons {\n zoomIn: 'lg-zoom-in' | 'lg-actual-size';\n zoomOut: 'lg-zoom-out' | 'lg-actual-size';\n}\n\nexport interface ZoomStrings {\n zoomIn: string;\n zoomOut: string;\n viewActualSize: string;\n}\n\nexport interface ZoomSettings {\n /**\n * Value of zoom should be incremented/decremented\n */\n scale: number;\n\n /**\n * Enable/Disable zoom option\n */\n zoom: boolean;\n\n /**\n * Enable actual size icon.\n */\n actualSize: boolean;\n\n /**\n * Once the slide transition is completed, how much time should take zoom plugin to activate\n * @description Some css styles will be added to the images if zoom is enabled.\n * So it might conflict if you add any custom styles to the images such as the initial transition while opening the gallery.\n * So you can delay adding zoom related styles to the images by changing the value of enableZoomAfter.\n */\n enableZoomAfter: number;\n\n /**\n * Show zoom in, zoom out icons\n */\n showZoomInOutIcons: boolean;\n\n /**\n * Actual size icons classnames.\n * Specify classnames for both ZoomIn and ZoomOut states\n * You can use `actualSizeIcons: { zoomIn: 'lg-actual-size', zoomOut: 'lg-zoom-out' }`\n * to show actual size icons instead of zoom in and zoom out icons.\n */\n actualSizeIcons: ActualSizeIcons;\n\n /**\n * Custom translation strings for aria-labels\n */\n zoomPluginStrings: ZoomStrings;\n}\n\nexport const zoomSettings: ZoomSettings = {\n scale: 1,\n zoom: true,\n actualSize: true,\n showZoomInOutIcons: false,\n actualSizeIcons: {\n zoomIn: 'lg-zoom-in',\n zoomOut: 'lg-zoom-out',\n } as ActualSizeIcons,\n enableZoomAfter: 300,\n zoomPluginStrings: {\n zoomIn: 'Zoom in',\n zoomOut: 'Zoom out',\n viewActualSize: 'View actual size',\n } as ZoomStrings,\n};\n","import { LightGallery } from './lightgallery';\nimport { VideoSource } from './plugins/video/types';\n\n/**\n * List of lightGallery events\n * All events should be documented here\n * Below interfaces are used to build the website documentations\n * */\nexport const lGEvents: {\n [key: string]: string;\n} = {\n afterAppendSlide: 'lgAfterAppendSlide',\n init: 'lgInit',\n hasVideo: 'lgHasVideo',\n containerResize: 'lgContainerResize',\n updateSlides: 'lgUpdateSlides',\n afterAppendSubHtml: 'lgAfterAppendSubHtml',\n beforeOpen: 'lgBeforeOpen',\n afterOpen: 'lgAfterOpen',\n slideItemLoad: 'lgSlideItemLoad',\n beforeSlide: 'lgBeforeSlide',\n afterSlide: 'lgAfterSlide',\n posterClick: 'lgPosterClick',\n dragStart: 'lgDragStart',\n dragMove: 'lgDragMove',\n dragEnd: 'lgDragEnd',\n beforeNextSlide: 'lgBeforeNextSlide',\n beforePrevSlide: 'lgBeforePrevSlide',\n beforeClose: 'lgBeforeClose',\n afterClose: 'lgAfterClose',\n rotateLeft: 'lgRotateLeft',\n rotateRight: 'lgRotateRight',\n flipHorizontal: 'lgFlipHorizontal',\n flipVertical: 'lgFlipVertical',\n autoplay: 'lgAutoplay',\n autoplayStart: 'lgAutoplayStart',\n autoplayStop: 'lgAutoplayStop',\n};\n\n// Follow the below format for the event documentation\n// @method is the method name when event is used with Angular/React components\n\n/**\n * Fired only once when lightGallery is initialized\n * @name lgInit\n * @method onInit\n * @example\n * const lg = document.getElementById('custom-events-demo');\n * // Perform any action on lightGallery initialization.\n * // Init event returns the plugin instance that can be used to call any lightGalley public method\n * let pluginInstance = null;\n * lg.addEventListener('lgInit', (event) => {\n * pluginInstance = event.detail.instance;\n * });\n * lightGallery(lg);\n * @see <a href=\"/docs/methods\">Methods<a>\n */\nexport interface InitDetail {\n /**\n * lightGallery plugin instance\n */\n instance: LightGallery;\n}\n\n/**\n * Fired when the slide content has been inserted into it's slide container.\n * @name lgAfterAppendSlide\n * @method onAfterAppendSlide\n */\nexport interface AfterAppendSlideEventDetail {\n /**\n * Index of the slide\n */\n index: number;\n}\n\n/**\n * Fired immediately before opening the gallery\n * @name lgBeforeOpen\n * @method onBeforeOpen\n */\nexport interface BeforeOpenDetail {}\n\n/**\n * Fired immediately after opening the gallery\n * @name lgAfterOpen\n * @method onAfterOpen\n */\nexport interface AfterOpenDetail {}\n\n/**\n * Fired once the media inside the slide has been completely loaded .\n * @name lgSlideItemLoad\n * @method onSlideItemLoad\n */\nexport interface SlideItemLoadDetail {\n /**\n * Index of the slide\n */\n index: number;\n /**\n * For the first slide, lightGallery adds some delay for displaying the loaded slide item.\n * This delay is required for the transition effect when the slide item is displayed\n * Respect the delay when you use this event\n */\n delay: number;\n\n // Will be true for the first slide\n isFirstSlide: boolean;\n}\n\n/**\n * Fired immediately before each slide transition.\n * @name lgBeforeSlide\n * @method onBeforeSlide\n * @example\n * const lg = document.getElementById('custom-events-demo');\n * // Perform any action before each slide transition\n * lg.addEventListener('lgBeforeSlide', (event) => {\n * const { index, prevIndex } = event.detail;\n * alert(index, prevIndex);\n * });\n * lightGallery(lg);\n */\nexport interface BeforeSlideDetail {\n /**\n * Index of the previous slide\n */\n prevIndex: number;\n /**\n * Index of the slide\n */\n index: number;\n /**\n * true if slide function called via touch event or mouse drag\n */\n fromTouch: boolean;\n /**\n * true if slide function called via thumbnail click\n */\n fromThumb: boolean;\n}\n\n/**\n * Fired immediately after each slide transition.\n * @name lgAfterSlide\n * @method onAfterSlide\n */\nexport interface AfterSlideDetail {\n /**\n * Index of the previous slide\n */\n prevIndex: number;\n /**\n * Index of the slide\n */\n index: number;\n /**\n * true if slide function called via touch event or mouse drag\n */\n fromTouch: boolean;\n /**\n * true if slide function called via thumbnail click\n */\n fromThumb: boolean;\n}\n\n/**\n * Fired when the video poster is clicked.\n * @name lgPosterClick\n * @method onPosterClick\n */\nexport interface PosterClickDetail {}\n\n/**\n * Fired when the drag event to move to different slide starts.\n * @name lgDragStart\n * @method onDragStart\n */\nexport interface DragStartDetail {}\n\n/**\n * Fired periodically during the drag operation.\n * @name lgDragMove\n * @method onDragMove\n */\nexport interface DragMoveDetail {}\n\n/**\n * Fired when the user has finished the drag operation\n * @name lgDragEnd\n * @method onDragEnd\n */\nexport interface DragEndDetail {}\n\n/**\n * Fired immediately before the start of the close process.\n * @name lgBeforeClose\n * @method onBeforeClose\n */\nexport interface BeforeCloseDetail {}\n\n/**\n * Fired immediately once lightGallery is closed.\n * @name lgAfterClose\n * @method onAfterClose\n */\nexport interface AfterCloseDetail {\n /**\n * lightGallery plugin instance\n */\n instance: LightGallery;\n}\n\n/**\n * Fired immediately before each \"next\" slide transition\n * @name lgBeforeNextSlide\n * @method onBeforeNextSlide\n */\nexport interface BeforeNextSlideDetail {\n /**\n * Index of the slide\n */\n index: number;\n /**\n * true if slide function called via touch event or mouse drag\n */\n fromTouch: boolean;\n}\n\n/**\n * Fired immediately before each \"prev\" slide transition\n * @name lgBeforePrevSlide\n * @method onBeforePrevSlide\n */\nexport interface BeforePrevSlideDetail {\n /**\n * Index of the slide\n */\n index: number;\n /**\n * true if slide function called via touch event or mouse drag\n */\n fromTouch: boolean;\n}\n\n/**\n * Fired when the sub-html content (ex : title/ description) has been appended into the slide.\n * @name lgAfterAppendSubHtml\n * @method onAfterAppendSubHtml\n */\nexport interface AfterAppendSubHtmlDetail {\n /**\n * Index of the slide\n */\n index: number;\n}\n\n/**\n * Fired when the lightGallery container has been resized.\n * @name lgContainerResize\n * @method onContainerResize\n */\nexport interface ContainerResizeDetail {\n /**\n * Index of the slide\n */\n index: number;\n}\n\n/**\n * Fired when lightGallery detects video slide\n * @name lgHasVideo\n * @method onHasVideo\n */\nexport interface HasVideoDetail {\n /**\n * Index of the slide,\n */\n index: number;\n /**\n * Video source\n */\n src: string;\n /**\n * HTML5 video source if available\n * <p>\n HTML5 video source = source: {\n src: string;\n type: string;\n }[];\n attributes: HTMLVideoElement;\n * </p>\n */\n html5Video: VideoSource;\n /**\n * True if video has poster\n */\n hasPoster: boolean;\n}\n\n/**\n * Fired when the image is rotated in anticlockwise direction\n * @name lgRotateLeft\n * @method onRotateLeft\n */\nexport interface RotateLeftDetail {\n /**\n * Index of the slide\n */\n index: number;\n}\n\n/**\n * Fired when the image is rotated in clockwise direction\n * @name lgRotateRight\n * @method onRotateRight\n */\nexport interface RotateRightDetail {\n /**\n * Index of the slide\n */\n index: number;\n}\n\n/**\n * Fired when the image is flipped horizontally\n * @name lgFlipHorizontal\n * @method onFlipHorizontal\n */\nexport interface FlipHorizontalDetail {\n /**\n * Index of the slide\n */\n index: number;\n}\n\n/**\n * Fired when the image is flipped vertically\n * @name lgFlipVertical\n * @method onFlipVertical\n */\nexport interface FlipVerticalDetail {\n /**\n * Index of the slide\n */\n index: number;\n}\n","import { ZoomSettings, zoomSettings } from './lg-zoom-settings';\nimport { LgQuery, lgQuery } from '../../lgQuery';\nimport { LightGallery } from '../../lightgallery';\nimport { lGEvents } from '../../lg-events';\n\ninterface Coords {\n x: number;\n y: number;\n}\n\ninterface DragAllowedAxises {\n allowX: boolean;\n allowY: boolean;\n}\ninterface ZoomTouchEvent {\n pageX: number;\n touches: { pageY: number; pageX: number }[];\n pageY: number;\n}\ninterface PossibleCords {\n minX: number;\n minY: number;\n maxX: number;\n maxY: number;\n}\n\nconst ZOOM_TRANSITION_DURATION = 500;\n\nexport default class Zoom {\n private core: LightGallery;\n private settings: ZoomSettings;\n private $LG!: LgQuery;\n private imageReset!: number | boolean;\n zoomableTimeout: any;\n positionChanged!: boolean;\n pageX!: number;\n pageY!: number;\n scale!: number;\n\n containerRect!: ClientRect;\n dragAllowedAxises!: DragAllowedAxises;\n top!: number;\n left!: number;\n scrollTop!: number;\n constructor(instance: LightGallery, $LG: LgQuery) {\n // get lightGallery core plugin instance\n this.core = instance;\n this.$LG = $LG;\n\n this.settings = { ...zoomSettings, ...this.core.settings };\n\n return this;\n }\n\n // Append Zoom controls. Actual size, Zoom-in, Zoom-out\n buildTemplates(): void {\n let zoomIcons = this.settings.showZoomInOutIcons\n ? `<button id=\"${this.core.getIdName(\n 'lg-zoom-in',\n )}\" type=\"button\" aria-label=\"${\n this.settings.zoomPluginStrings['zoomIn']\n }\" class=\"lg-zoom-in lg-icon\"></button><button id=\"${this.core.getIdName(\n 'lg-zoom-out',\n )}\" type=\"button\" aria-label=\"${\n this.settings.zoomPluginStrings['zoomIn']\n }\" class=\"lg-zoom-out lg-icon\"></button>`\n : '';\n\n if (this.settings.actualSize) {\n zoomIcons += `<button id=\"${this.core.getIdName(\n 'lg-actual-size',\n )}\" type=\"button\" aria-label=\"${\n this.settings.zoomPluginStrings['viewActualSize']\n }\" class=\"${\n this.settings.actualSizeIcons.zoomIn\n } lg-icon\"></button>`;\n }\n\n this.core.outer.addClass('lg-use-transition-for-zoom');\n\n this.core.$toolbar.first().append(zoomIcons);\n }\n\n /**\n * @desc Enable zoom option only once the image is completely loaded\n * If zoomFromOrigin is true, Zoom is enabled once the dummy image has been inserted\n *\n * Zoom styles are defined under lg-zoomable CSS class.\n */\n enableZoom(event: CustomEvent): void {\n // delay will be 0 except first time\n let _speed = this.settings.enableZoomAfter + event.detail.delay;\n\n // set _speed value 0 if gallery opened from direct url and if it is first slide\n if (\n this.$LG('body').first().hasClass('lg-from-hash') &&\n event.detail.delay\n ) {\n // will execute only once\n _speed = 0;\n } else {\n // Remove lg-from-hash to enable starting animation.\n this.$LG('body').first().removeClass('lg-from-hash');\n }\n\n this.zoomableTimeout = setTimeout(() => {\n if (!this.isImageSlide(this.core.index)) {\n return;\n }\n this.core.getSlideItem(event.detail.index).addClass('lg-zoomable');\n if (event.detail.index === this.core.index) {\n this.setZoomEssentials();\n }\n }, _speed + 30);\n }\n\n enableZoomOnSlideItemLoad(): void {\n // Add zoomable class\n this.core.LGel.on(\n `${lGEvents.slideItemLoad}.zoom`,\n this.enableZoom.bind(this),\n );\n }\n\n getDragCords(e: MouseEvent): Coords {\n return {\n x: e.pageX,\n y: e.pageY,\n };\n }\n getSwipeCords(e: TouchEvent): Coords {\n const x = e.touches[0].pageX;\n const y = e.touches[0].pageY;\n return {\n x,\n y,\n };\n }\n\n getDragAllowedAxises(scale: number, scaleDiff?: number): DragAllowedAxises {\n const $image = this.core\n .getSlideItem(this.core.index)\n .find('.lg-image')\n .first()\n .get();\n\n let height = 0;\n let width = 0;\n const rect = $image.getBoundingClientRect();\n if (scale) {\n height = $image.offsetHeight * scale;\n width = $image.offsetWidth * scale;\n } else if (scaleDiff) {\n height = rect.height + scaleDiff * rect.height;\n width = rect.width + scaleDiff * rect.width;\n } else {\n height = rect.height;\n width = rect.width;\n }\n const allowY = height > this.containerRect.height;\n const allowX = width > this.containerRect.width;\n return {\n allowX,\n allowY,\n };\n }\n\n setZoomEssentials(): void {\n this.containerRect = this.core.$content.get().getBoundingClientRect();\n }\n\n /**\n * @desc Image zoom\n * Translate the wrap and scale the image to get better user experience\n *\n * @param {String} scale - Zoom decrement/increment value\n */\n zoomImage(\n scale: number,\n scaleDiff: number,\n reposition: boolean,\n resetToMax: boolean,\n ): void {\n if (Math.abs(scaleDiff) <= 0) return;\n\n const offsetX = this.containerRect.width / 2 + this.containerRect.left;\n\n const offsetY =\n this.containerRect.height / 2 +\n this.containerRect.top +\n this.scrollTop;\n\n let originalX;\n let originalY;\n\n if (scale === 1) {\n this.positionChanged = false;\n }\n\n const dragAllowedAxises = this.getDragAllowedAxises(0, scaleDiff);\n\n const { allowY, allowX } = dragAllowedAxises;\n if (this.positionChanged) {\n originalX = this.left / (this.scale - scaleDiff);\n originalY = this.top / (this.scale - scaleDiff);\n this.pageX = offsetX - originalX;\n this.pageY = offsetY - originalY;\n\n this.positionChanged = false;\n }\n\n const possibleSwipeCords = this.getPossibleSwipeDragCords(scaleDiff);\n\n let x;\n let y;\n let _x = offsetX - this.pageX;\n let _y = offsetY - this.pageY;\n\n if (scale - scaleDiff > 1) {\n const scaleVal = (scale - scaleDiff) / Math.abs(scaleDiff);\n _x =\n (scaleDiff < 0 ? -_x : _x) +\n this.left * (scaleVal + (scaleDiff < 0 ? -1 : 1));\n _y =\n (scaleDiff < 0 ? -_y : _y) +\n this.top * (scaleVal + (scaleDiff < 0 ? -1 : 1));\n x = _x / scaleVal;\n y = _y / scaleVal;\n } else {\n const scaleVal = (scale - scaleDiff) * scaleDiff;\n x = _x * scaleVal;\n y = _y * scaleVal;\n }\n\n if (reposition) {\n if (allowX) {\n if (this.isBeyondPossibleLeft(x, possibleSwipeCords.minX)) {\n x = possibleSwipeCords.minX;\n } else if (\n this.isBeyondPossibleRight(x, possibleSwipeCords.maxX)\n ) {\n x = possibleSwipeCords.maxX;\n }\n } else {\n if (scale > 1) {\n if (x < possibleSwipeCords.minX) {\n x = possibleSwipeCords.minX;\n } else if (x > possibleSwipeCords.maxX) {\n x = possibleSwipeCords.maxX;\n }\n }\n }\n // @todo fix this\n if (allowY) {\n if (this.isBeyondPossibleTop(y, possibleSwipeCords.minY)) {\n y = possibleSwipeCords.minY;\n } else if (\n this.isBeyondPossibleBottom(y, possibleSwipeCords.maxY)\n ) {\n y = possibleSwipeCords.maxY;\n }\n } else {\n // If the translate value based on index of beyond the viewport, utilize the available space to prevent image being cut out\n if (scale > 1) {\n //If image goes beyond viewport top, use the minim possible translate value\n if (y < possibleSwipeCords.minY) {\n y = possibleSwipeCords.minY;\n } else if (y > possibleSwipeCords.maxY) {\n y = possibleSwipeCords.maxY;\n }\n }\n }\n }\n\n this.setZoomStyles({\n x: x,\n y: y,\n scale,\n });\n\n this.left = x;\n this.top = y;\n\n if (resetToMax) {\n this.setZoomImageSize();\n }\n }\n\n resetImageTranslate(index: number): void {\n if (!this.isImageSlide(index)) {\n return;\n }\n const $image = this.core.getSlideItem(index).find('.lg-image').first();\n this.imageReset = false;\n $image.removeClass(\n 'reset-transition reset-transition-y reset-transition-x',\n );\n this.core.outer.removeClass('lg-actual-size');\n $image.css('width', 'auto').css('height', 'auto');\n setTimeout(() => {\n $image.removeClass('no-transition');\n }, 10);\n }\n\n setZoomImageSize(): void {\n const $image = this.core\n .getSlideItem(this.core.index)\n .find('.lg-image')\n .first();\n\n setTimeout(() => {\n const actualSizeScale = this.getCurrentImageActualSizeScale();\n\n if (this.scale >= actualSizeScale) {\n $image.addClass('no-transition');\n this.imageReset = true;\n }\n }, ZOOM_TRANSITION_DURATION);\n\n setTimeout(() => {\n const actualSizeScale = this.getCurrentImageActualSizeScale();\n\n if (this.scale >= actualSizeScale) {\n const dragAllowedAxises = this.getDragAllowedAxises(this.scale);\n\n $image\n .css(\n 'width',\n ($image.get() as HTMLImageElement).naturalWidth + 'px',\n )\n .css(\n 'height',\n ($image.get() as HTMLImageElement).naturalHeight + 'px',\n );\n\n this.core.outer.addClass('lg-actual-size');\n\n if (dragAllowedAxises.allowX && dragAllowedAxises.allowY) {\n $image.addClass('reset-transition');\n } else if (\n dragAllowedAxises.allowX &&\n !dragAllowedAxises.allowY\n ) {\n $image.addClass('reset-transition-x');\n } else if (\n !dragAllowedAxises.allowX &&\n dragAllowedAxises.allowY\n ) {\n $image.addClass('reset-transition-y');\n }\n }\n }, ZOOM_TRANSITION_DURATION + 50);\n }\n\n /**\n * @desc apply scale3d to image and translate to image wrap\n * @param {style} X,Y and scale\n */\n setZoomStyles(style: { x: number; y: number; scale: number }): void {\n const $imageWrap = this.core\n .getSlideItem(this.core.index)\n .find('.lg-img-wrap')\n .first();\n const $image = this.core\n .getSlideItem(this.core.index)\n .find('.lg-image')\n .first();\n const $dummyImage = this.core.outer\n .find('.lg-current .lg-dummy-img')\n .first();\n this.scale = style.scale;\n $image.css(\n 'transform',\n 'scale3d(' + style.scale + ', ' + style.scale + ', 1)',\n );\n\n $dummyImage.css(\n 'transform',\n 'scale3d(' + style.scale + ', ' + style.scale + ', 1)',\n );\n\n const transform =\n 'translate3d(' + style.x + 'px, ' + style.y + 'px, 0)';\n $imageWrap.css('transform', transform);\n }\n\n /**\n * @param index - Index of the current slide\n * @param event - event will be available only if the function is called on clicking/taping the imags\n */\n setActualSize(index: number, event?: ZoomTouchEvent): void {\n const currentItem = this.core.galleryItems[this.core.index];\n this.resetImageTranslate(index);\n setTimeout(() => {\n // Allow zoom only on image\n if (\n !currentItem.src ||\n this.core.outer.hasClass('lg-first-slide-loading')\n ) {\n return;\n }\n const scale = this.getCurrentImageActualSizeScale();\n const prevScale = this.scale;\n if (this.core.outer.hasClass('lg-zoomed')) {\n this.scale = 1;\n } else {\n this.scale = this.getScale(scale);\n }\n this.setPageCords(event);\n\n this.beginZoom(this.scale);\n this.zoomImage(this.scale, this.scale - prevScale, true, true);\n\n setTimeout(() => {\n this.core.outer.removeClass('lg-grabbing').addClass('lg-grab');\n }, 10);\n }, 50);\n }\n\n getNaturalWidth(index: number): number {\n const $image = this.core.getSlideItem(index).find('.lg-image').first();\n\n const naturalWidth = this.core.galleryItems[index].width;\n return naturalWidth\n ? parseFloat(naturalWidth)\n : undefined || ($image.get() as any).naturalWidth;\n }\n\n getActualSizeScale(naturalWidth: number, width: number): number {\n let _scale;\n let scale;\n if (naturalWidth >= width) {\n _scale = naturalWidth / width;\n scale = _scale || 2;\n } else {\n scale = 1;\n }\n return scale;\n }\n\n getCurrentImageActualSizeScale(): number {\n const $image = this.core\n .getSlideItem(this.core.index)\n .find('.lg-image')\n .first();\n const width = $image.get().offsetWidth;\n const naturalWidth = this.getNaturalWidth(this.core.index) || width;\n return this.getActualSizeScale(naturalWidth, width);\n }\n\n getPageCords(event?: ZoomTouchEvent): Coords {\n const cords: Coords = {} as Coords;\n if (event) {\n cords.x = event.pageX || event.touches[0].pageX;\n cords.y = event.pageY || event.touches[0].pageY;\n } else {\n const containerRect = this.core.$content\n .get()\n .getBoundingClientRect();\n cords.x = containerRect.width / 2 + containerRect.left;\n cords.y =\n containerRect.height / 2 + this.scrollTop + containerRect.top;\n }\n return cords;\n }\n\n setPageCords(event?: ZoomTouchEvent): void {\n const pageCords = this.getPageCords(event);\n\n this.pageX = pageCords.x;\n this.pageY = pageCords.y;\n }\n\n manageActualPixelClassNames(): void {\n const $actualSize = this.core.getElementById('lg-actual-size');\n $actualSize\n .removeClass(this.settings.actualSizeIcons.zoomIn)\n .addClass(this.settings.actualSizeIcons.zoomOut);\n }\n\n // If true, zoomed - in else zoomed out\n beginZoom(scale: number): boolean {\n this.core.outer.removeClass('lg-zoom-drag-transition lg-zoom-dragging');\n if (scale > 1) {\n this.core.outer.addClass('lg-zoomed');\n this.manageActualPixelClassNames();\n } else {\n this.resetZoom();\n }\n return scale > 1;\n }\n\n getScale(scale: number): number {\n const actualSizeScale = this.getCurrentImageActualSizeScale();\n if (scale < 1) {\n scale = 1;\n } else if (scale > actualSizeScale) {\n scale = actualSizeScale;\n }\n return scale;\n }\n\n init(): void {\n if (!this.settings.zoom) {\n return;\n }\n this.buildTemplates();\n this.enableZoomOnSlideItemLoad();\n\n let tapped: ReturnType<typeof setTimeout> | null = null;\n\n this.core.outer.on('dblclick.lg', (event) => {\n if (!this.$LG(event.target).hasClass('lg-image')) {\n return;\n }\n this.setActualSize(this.core.index, event);\n });\n\n this.core.outer.on('touchstart.lg', (event) => {\n const $target = this.$LG(event.target);\n if (event.touches.length === 1 && $target.hasClass('lg-image')) {\n if (!tapped) {\n tapped = setTimeout(() => {\n tapped = null;\n }, 300);\n } else {\n clearTimeout(tapped);\n tapped = null;\n event.preventDefault();\n this.setActualSize(this.core.index, event);\n }\n }\n });\n\n this.core.LGel.on(\n `${lGEvents.containerResize}.zoom ${lGEvents.rotateRight}.zoom ${lGEvents.rotateLeft}.zoom ${lGEvents.flipHorizontal}.zoom ${lGEvents.flipVertical}.zoom`,\n () => {\n if (\n !this.core.lgOpened ||\n !this.isImageSlide(this.core.index) ||\n this.core.touchAction\n ) {\n return;\n }\n const _LGel = this.core\n .getSlideItem(this.core.index)\n .find('.lg-img-wrap')\n .first();\n this.top = 0;\n this.left = 0;\n this.setZoomEssentials();\n this.setZoomSwipeStyles(_LGel, { x: 0, y: 0 });\n this.positionChanged = true;\n },\n );\n // Update zoom on resize and orientationchange\n this.$LG(window).on(`scroll.lg.zoom.global${this.core.lgId}`, () => {\n if (!this.core.lgOpened) return;\n this.scrollTop = this.$LG(window).scrollTop();\n });\n\n this.core.getElementById('lg-zoom-out').on('click.lg', () => {\n // Allow zoom only on image\n if (!this.isImageSlide(this.core.index)) {\n return;\n }\n\n let timeout = 0;\n if (this.imageReset) {\n this.resetImageTranslate(this.core.index);\n timeout = 50;\n }\n setTimeout(() => {\n let scale = this.scale - this.settings.scale;\n\n if (scale < 1) {\n scale = 1;\n }\n this.beginZoom(scale);\n this.zoomImage(scale, -this.settings.scale, true, true);\n }, timeout);\n });\n\n this.core.getElementById('lg-zoom-in').on('click.lg', () => {\n this.zoomIn();\n });\n\n this.core.getElementById('lg-actual-size').on('click.lg', () => {\n this.setActualSize(this.core.index);\n });\n\n this.core.LGel.on(`${lGEvents.beforeOpen}.zoom`, () => {\n this.core.outer.find('.lg-item').removeClass('lg-zoomable');\n });\n this.core.LGel.on(`${lGEvents.afterOpen}.zoom`, () => {\n this.scrollTop = this.$LG(window).scrollTop();\n\n // Set the initial value center\n this.pageX = this.core.outer.width() / 2;\n this.pageY = this.core.outer.height() / 2 + this.scrollTop;\n\n this.scale = 1;\n });\n\n // Reset zoom on slide change\n this.core.LGel.on(\n `${lGEvents.afterSlide}.zoom`,\n (event: CustomEvent) => {\n const { prevIndex } = event.detail;\n this.scale = 1;\n this.positionChanged = false;\n this.resetZoom(prevIndex);\n this.resetImageTranslate(prevIndex);\n if (this.isImageSlide(this.core.index)) {\n this.setZoomEssentials();\n }\n },\n );\n\n // Drag option after zoom\n this.zoomDrag();\n\n this.pinchZoom();\n\n this.zoomSwipe();\n\n // Store the zoomable timeout value just to clear it while closing\n this.zoomableTimeout = false;\n this.positionChanged = false;\n }\n\n zoomIn(): void {\n // Allow zoom only on image\n if (!this.isImageSlide(this.core.index)) {\n return;\n }\n\n let scale = this.scale + this.settings.scale;\n\n scale = this.getScale(scale);\n this.beginZoom(scale);\n this.zoomImage(scale, this.settings.scale, true, true);\n }\n\n // Reset zoom effect\n resetZoom(index?: number): void {\n this.core.outer.removeClass('lg-zoomed lg-zoom-drag-transition');\n const $actualSize = this.core.getElementById('lg-actual-size');\n const $item = this.core.getSlideItem(\n index !== undefined ? index : this.core.index,\n );\n $actualSize\n .removeClass(this.settings.actualSizeIcons.zoomOut)\n .addClass(this.settings.actualSizeIcons.zoomIn);\n $item.find('.lg-img-wrap').first().removeAttr('style');\n $item.find('.lg-image').first().removeAttr('style');\n this.scale = 1;\n this.left = 0;\n this.top = 0;\n\n // Reset pagx pagy values to center\n this.setPageCords();\n }\n\n getTouchDistance(e: TouchEvent): number {\n return Math.sqrt(\n (e.touches[0].pageX - e.touches[1].pageX) *\n (e.touches[0].pageX - e.touches[1].pageX) +\n (e.touches[0].pageY - e.touches[1].pageY) *\n (e.touches[0].pageY - e.touches[1].pageY),\n );\n }\n\n pinchZoom(): void {\n let startDist = 0;\n let pinchStarted = false;\n let initScale = 1;\n let prevScale = 0;\n\n let $item = this.core.getSlideItem(this.core.index);\n\n this.core.outer.on('touchstart.lg', (e) => {\n $item = this.core.getSlideItem(this.core.index);\n if (!this.isImageSlide(this.core.index)) {\n return;\n }\n if (e.touches.length === 2) {\n e.preventDefault();\n if (this.core.outer.hasClass('lg-first-slide-loading')) {\n return;\n }\n initScale = this.scale || 1;\n this.core.outer.removeClass(\n 'lg-zoom-drag-transition lg-zoom-dragging',\n );\n\n this.setPageCords(e);\n this.resetImageTranslate(this.core.index);\n\n this.core.touchAction = 'pinch';\n\n startDist = this.getTouchDistance(e);\n }\n });\n\n this.core.$inner.on('touchmove.lg', (e) => {\n if (\n e.touches.length === 2 &&\n this.core.touchAction === 'pinch' &&\n (this.$LG(e.target).hasClass('lg-item') ||\n $item.get().contains(e.target))\n ) {\n e.preventDefault();\n const endDist = this.getTouchDistance(e);\n\n const distance = startDist - endDist;\n if (!pinchStarted && Math.abs(distance) > 5) {\n pinchStarted = true;\n }\n if (pinchStarted) {\n prevScale = this.scale;\n const _scale = Math.max(1, initScale + -distance * 0.02);\n this.scale =\n Math.round((_scale + Number.EPSILON) * 100) / 100;\n const diff = this.scale - prevScale;\n this.zoomImage(\n this.scale,\n Math.round((diff + Number.EPSILON) * 100) / 100,\n false,\n false,\n );\n }\n }\n });\n\n this.core.$inner.on('touchend.lg', (e) => {\n if (\n this.core.touchAction === 'pinch' &&\n (this.$LG(e.target).hasClass('lg-item') ||\n $item.get().contains(e.target))\n ) {\n pinchStarted = false;\n startDist = 0;\n if (this.scale <= 1) {\n this.resetZoom();\n } else {\n const actualSizeScale = this.getCurrentImageActualSizeScale();\n\n if (this.scale >= actualSizeScale) {\n let scaleDiff = actualSizeScale - this.scale;\n if (scaleDiff === 0) {\n scaleDiff = 0.01;\n }\n this.zoomImage(actualSizeScale, scaleDiff, false, true);\n }\n this.manageActualPixelClassNames();\n\n this.core.outer.addClass('lg-zoomed');\n }\n this.core.touchAction = undefined;\n }\n });\n }\n\n touchendZoom(\n startCoords: Coords,\n endCoords: Coords,\n allowX: boolean,\n allowY: boolean,\n touchDuration: number,\n ): void {\n let distanceXnew = endCoords.x - startCoords.x;\n let distanceYnew = endCoords.y - startCoords.y;\n\n let speedX = Math.abs(distanceXnew) / touchDuration + 1;\n let speedY = Math.abs(distanceYnew) / touchDuration + 1;\n\n if (speedX > 2) {\n speedX += 1;\n }\n\n if (speedY > 2) {\n speedY += 1;\n }\n\n distanceXnew = distanceXnew * speedX;\n distanceYnew = distanceYnew * speedY;\n\n const _LGel = this.core\n .getSlideItem(this.core.index)\n .find('.lg-img-wrap')\n .first();\n const distance: Coords = {} as Coords;\n\n distance.x = this.left + distanceXnew;\n distance.y = this.top + distanceYnew;\n\n const possibleSwipeCords = this.getPossibleSwipeDragCords();\n\n if (Math.abs(distanceXnew) > 15 || Math.abs(distanceYnew) > 15) {\n if (allowY) {\n if (\n this.isBeyondPossibleTop(\n distance.y,\n possibleSwipeCords.minY,\n )\n ) {\n distance.y = possibleSwipeCords.minY;\n } else if (\n this.isBeyondPossibleBottom(\n distance.y,\n possibleSwipeCords.maxY,\n )\n ) {\n distance.y = possibleSwipeCords.maxY;\n }\n }\n\n if (allowX) {\n if (\n this.isBeyondPossibleLeft(\n distance.x,\n possibleSwipeCords.minX,\n )\n ) {\n distance.x = possibleSwipeCords.minX;\n } else if (\n this.isBeyondPossibleRight(\n distance.x,\n possibleSwipeCords.maxX,\n )\n ) {\n distance.x = possibleSwipeCords.maxX;\n }\n }\n\n if (allowY) {\n this.top = distance.y;\n } else {\n distance.y = this.top;\n }\n\n if (allowX) {\n this.left = distance.x;\n } else {\n distance.x = this.left;\n }\n\n this.setZoomSwipeStyles(_LGel, distance);\n\n this.positionChanged = true;\n }\n }\n\n getZoomSwipeCords(\n startCoords: Coords,\n endCoords: Coords,\n allowX: boolean,\n allowY: boolean,\n possibleSwipeCords: PossibleCords,\n ): Coords {\n const distance: Coords = {} as Coords;\n if (allowY) {\n distance.y = this.top + (endCoords.y - startCoords.y);\n if (this.isBeyondPossibleTop(distance.y, possibleSwipeCords.minY)) {\n const diffMinY = possibleSwipeCords.minY - distance.y;\n distance.y = possibleSwipeCords.minY - diffMinY / 6;\n } else if (\n this.isBeyondPossibleBottom(distance.y, possibleSwipeCords.maxY)\n ) {\n const diffMaxY = distance.y - possibleSwipeCords.maxY;\n distance.y = possibleSwipeCords.maxY + diffMaxY / 6;\n }\n } else {\n distance.y = this.top;\n }\n\n if (allowX) {\n distance.x = this.left + (endCoords.x - startCoords.x);\n if (\n this.isBeyondPossibleLeft(distance.x, possibleSwipeCords.minX)\n ) {\n const diffMinX = possibleSwipeCords.minX - distance.x;\n distance.x = possibleSwipeCords.minX - diffMinX / 6;\n } else if (\n this.isBeyondPossibleRight(distance.x, possibleSwipeCords.maxX)\n ) {\n const difMaxX = distance.x - possibleSwipeCords.maxX;\n distance.x = possibleSwipeCords.maxX + difMaxX / 6;\n }\n } else {\n distance.x = this.left;\n }\n\n return distance;\n }\n\n private isBeyondPossibleLeft(x: number, minX: number) {\n return x >= minX;\n }\n private isBeyondPossibleRight(x: number, maxX: number) {\n return x <= maxX;\n }\n private isBeyondPossibleTop(y: number, minY: number) {\n return y >= minY;\n }\n private isBeyondPossibleBottom(y: number, maxY: number) {\n return y <= maxY;\n }\n\n isImageSlide(index: number): boolean {\n const currentItem = this.core.galleryItems[index];\n return this.core.getSlideType(currentItem) === 'image';\n }\n\n getPossibleSwipeDragCords(scale?: number): PossibleCords {\n const $image = this.core\n .getSlideItem(this.core.index)\n .find('.lg-image')\n .first();\n\n const { bottom } = this.core.mediaContainerPosition;\n\n const imgRect = $image.get().getBoundingClientRect();\n\n let imageHeight = imgRect.height;\n let imageWidth = imgRect.width;\n\n if (scale) {\n imageHeight = imageHeight + scale * imageHeight;\n imageWidth = imageWidth + scale * imageWidth;\n }\n\n const minY = (imageHeight - this.containerRect.height) / 2;\n const maxY = (this.containerRect.height - imageHeight) / 2 + bottom;\n\n const minX = (imageWidth - this.containerRect.width) / 2;\n\n const maxX = (this.containerRect.width - imageWidth) / 2;\n\n const possibleSwipeCords = {\n minY: minY,\n maxY: maxY,\n minX: minX,\n maxX: maxX,\n };\n return possibleSwipeCords;\n }\n\n setZoomSwipeStyles(\n LGel: lgQuery,\n distance: { x: number; y: number },\n ): void {\n LGel.css(\n 'transform',\n 'translate3d(' + distance.x + 'px, ' + distance.y + 'px, 0)',\n );\n }\n\n zoomSwipe(): void {\n let startCoords = {} as Coords;\n let endCoords = {} as Coords;\n let isMoved = false;\n\n // Allow x direction drag\n let allowX = false;\n\n // Allow Y direction drag\n let allowY = false;\n\n let startTime: Date = new Date();\n let endTime: Date = new Date();\n let possibleSwipeCords: PossibleCords;\n\n let _LGel: lgQuery;\n\n let $item = this.core.getSlideItem(this.core.index);\n\n this.core.$inner.on('touchstart.lg', (e) => {\n // Allow zoom only on image\n if (!this.isImageSlide(this.core.index)) {\n return;\n }\n $item = this.core.getSlideItem(this.core.index);\n if (\n (this.$LG(e.target).hasClass('lg-item') ||\n $item.get().contains(e.target)) &&\n e.touches.length === 1 &&\n this.core.outer.hasClass('lg-zoomed')\n ) {\n e.preventDefault();\n startTime = new Date();\n this.core.touchAction = 'zoomSwipe';\n _LGel = this.core\n .getSlideItem(this.core.index)\n .find('.lg-img-wrap')\n .first();\n\n const dragAllowedAxises = this.getDragAllowedAxises(0);\n\n allowY = dragAllowedAxises.allowY;\n allowX = dragAllowedAxises.allowX;\n if (allowX || allowY) {\n startCoords = this.getSwipeCords(e);\n }\n\n possibleSwipeCords = this.getPossibleSwipeDragCords();\n\n // reset opacity and transition duration\n this.core.outer.addClass(\n 'lg-zoom-dragging lg-zoom-drag-transition',\n );\n }\n });\n\n this.core.$inner.on('touchmove.lg', (e) => {\n if (\n e.touches.length === 1 &&\n this.core.touchAction === 'zoomSwipe' &&\n (this.$LG(e.target).hasClass('lg-item') ||\n $item.get().contains(e.target))\n ) {\n e.preventDefault();\n this.core.touchAction = 'zoomSwipe';\n\n endCoords = this.getSwipeCords(e);\n\n const distance = this.getZoomSwipeCords(\n startCoords,\n endCoords,\n allowX,\n allowY,\n possibleSwipeCords,\n );\n\n if (\n Math.abs(endCoords.x - startCoords.x) > 15 ||\n Math.abs(endCoords.y - startCoords.y) > 15\n ) {\n isMoved = true;\n this.setZoomSwipeStyles(_LGel, distance);\n }\n }\n });\n\n this.core.$inner.on('touchend.lg', (e) => {\n if (\n this.core.touchAction === 'zoomSwipe' &&\n (this.$LG(e.target).hasClass('lg-item') ||\n $item.get().contains(e.target))\n ) {\n e.preventDefault();\n this.core.touchAction = undefined;\n this.core.outer.removeClass('lg-zoom-dragging');\n if (!isMoved) {\n return;\n }\n isMoved = false;\n endTime = new Date();\n const touchDuration = endTime.valueOf() - startTime.valueOf();\n this.touchendZoom(\n startCoords,\n endCoords,\n allowX,\n allowY,\n touchDuration,\n );\n }\n });\n }\n\n zoomDrag(): void {\n let startCoords: Coords = {} as Coords;\n let endCoords: Coords = {} as Coords;\n let isDragging = false;\n let isMoved = false;\n\n // Allow x direction drag\n let allowX = false;\n\n // Allow Y direction drag\n let allowY = false;\n\n let startTime: number | Date;\n let endTime;\n\n let possibleSwipeCords: PossibleCords;\n\n let _LGel: lgQuery;\n\n this.core.outer.on('mousedown.lg.zoom', (e) => {\n // Allow zoom only on image\n if (!this.isImageSlide(this.core.index)) {\n return;\n }\n const $item = this.core.getSlideItem(this.core.index);\n if (\n this.$LG(e.target).hasClass('lg-item') ||\n $item.get().contains(e.target)\n ) {\n startTime = new Date();\n _LGel = this.core\n .getSlideItem(this.core.index)\n .find('.lg-img-wrap')\n .first();\n\n const dragAllowedAxises = this.getDragAllowedAxises(0);\n\n allowY = dragAllowedAxises.allowY;\n allowX = dragAllowedAxises.allowX;\n\n if (this.core.outer.hasClass('lg-zoomed')) {\n if (\n this.$LG(e.target).hasClass('lg-object') &&\n (allowX || allowY)\n ) {\n e.preventDefault();\n startCoords = this.getDragCords(e);\n\n possibleSwipeCords = this.getPossibleSwipeDragCords();\n\n isDragging = true;\n\n this.core.outer\n .removeClass('lg-grab')\n .addClass(\n 'lg-grabbing lg-zoom-drag-transition lg-zoom-dragging',\n );\n // reset opacity and transition duration\n }\n }\n }\n });\n\n this.$LG(window).on(\n `mousemove.lg.zoom.global${this.core.lgId}`,\n (e) => {\n if (isDragging) {\n isMoved = true;\n endCoords = this.getDragCords(e);\n\n const distance = this.getZoomSwipeCords(\n startCoords,\n endCoords,\n allowX,\n allowY,\n possibleSwipeCords,\n );\n\n this.setZoomSwipeStyles(_LGel, distance);\n }\n },\n );\n\n this.$LG(window).on(`mouseup.lg.zoom.global${this.core.lgId}`, (e) => {\n if (isDragging) {\n endTime = new Date();\n isDragging = false;\n this.core.outer.removeClass('lg-zoom-dragging');\n\n // Fix for chrome mouse move on click\n if (\n isMoved &&\n (startCoords.x !== endCoords.x ||\n startCoords.y !== endCoords.y)\n ) {\n endCoords = this.getDragCords(e);\n\n const touchDuration =\n endTime.valueOf() - startTime.valueOf();\n this.touchendZoom(\n startCoords,\n endCoords,\n allowX,\n allowY,\n touchDuration,\n );\n }\n\n isMoved = false;\n }\n\n this.core.outer.removeClass('lg-grabbing').addClass('lg-grab');\n });\n }\n\n closeGallery(): void {\n this.resetZoom();\n }\n\n destroy(): void {\n // Unbind all events added by lightGallery zoom plugin\n this.$LG(window).off(`.lg.zoom.global${this.core.lgId}`);\n this.core.LGel.off('.lg.zoom');\n this.core.LGel.off('.zoom');\n clearTimeout(this.zoomableTimeout);\n this.zoomableTimeout = false;\n }\n}\n"],"names":[],"mappings":"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"}
@@ -28,7 +28,7 @@ function __rest(s, e) {
28
28
  }
29
29
 
30
30
  /*!
31
- * lightgallery | 2.6.1 | September 14th 2022
31
+ * lightgallery | 2.7.0 | October 9th 2022
32
32
  * http://www.lightgalleryjs.com/
33
33
  * Copyright (c) 2020 Sachin Neravath;
34
34
  * @license GPLv3