UNPKG

7.15 kBSource Map (JSON)View Raw
1{"version":3,"file":"lg-fullscreen.umd.js","sources":["../../../src/plugins/fullscreen/lg-fullscreen-settings.ts","../../../src/plugins/fullscreen/lg-fullscreen.ts"],"sourcesContent":["export interface FullscreenStrings {\n toggleFullscreen: string;\n}\nexport interface FullscreenSettings {\n /**\n * Enable/Disable fullscreen option\n */\n fullScreen: boolean;\n\n /**\n * Custom translation strings for aria-labels\n */\n fullscreenPluginStrings: FullscreenStrings;\n}\n\nexport const fullscreenSettings: FullscreenSettings = {\n fullScreen: true,\n fullscreenPluginStrings: {\n toggleFullscreen: 'Toggle Fullscreen',\n } as FullscreenStrings,\n};\n","import { LgQuery } from '../../lgQuery';\nimport { LightGallery } from '../../lightgallery';\nimport {\n FullscreenSettings,\n fullscreenSettings,\n} from './lg-fullscreen-settings';\n\ndeclare let document: any;\n\nexport default class FullScreen {\n core: LightGallery;\n settings: FullscreenSettings;\n private $LG!: LgQuery;\n constructor(instance: LightGallery, $LG: LgQuery) {\n // get lightGallery core plugin instance\n this.core = instance;\n this.$LG = $LG;\n\n // extend module default settings with lightGallery core settings\n this.settings = { ...fullscreenSettings, ...this.core.settings };\n\n return this;\n }\n\n public init(): void {\n let fullScreen = '';\n if (this.settings.fullScreen) {\n // check for fullscreen browser support\n if (\n !document.fullscreenEnabled &&\n !document.webkitFullscreenEnabled &&\n !document.mozFullScreenEnabled &&\n !document.msFullscreenEnabled\n ) {\n return;\n } else {\n fullScreen = `<button type=\"button\" aria-label=\"${this.settings.fullscreenPluginStrings['toggleFullscreen']}\" class=\"lg-fullscreen lg-icon\"></button>`;\n this.core.$toolbar.append(fullScreen);\n this.fullScreen();\n }\n }\n }\n\n private isFullScreen(): boolean {\n return (\n document.fullscreenElement ||\n document.mozFullScreenElement ||\n document.webkitFullscreenElement ||\n document.msFullscreenElement\n );\n }\n\n private requestFullscreen(): void {\n const el = document.documentElement;\n if (el.requestFullscreen) {\n el.requestFullscreen();\n } else if (el.msRequestFullscreen) {\n el.msRequestFullscreen();\n } else if (el.mozRequestFullScreen) {\n el.mozRequestFullScreen();\n } else if (el.webkitRequestFullscreen) {\n el.webkitRequestFullscreen();\n }\n }\n\n private exitFullscreen(): void {\n if (document.exitFullscreen) {\n document.exitFullscreen();\n } else if (document.msExitFullscreen) {\n document.msExitFullscreen();\n } else if (document.mozCancelFullScreen) {\n document.mozCancelFullScreen();\n } else if (document.webkitExitFullscreen) {\n document.webkitExitFullscreen();\n }\n }\n\n // https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Using_full_screen_mode\n private fullScreen(): void {\n this.$LG(document).on(\n `fullscreenchange.lg.global${this.core.lgId} \n webkitfullscreenchange.lg.global${this.core.lgId} \n mozfullscreenchange.lg.global${this.core.lgId} \n MSFullscreenChange.lg.global${this.core.lgId}`,\n () => {\n if (!this.core.lgOpened) return;\n this.core.outer.toggleClass('lg-fullscreen-on');\n },\n );\n\n this.core.outer\n .find('.lg-fullscreen')\n .first()\n .on('click.lg', () => {\n if (this.isFullScreen()) {\n this.exitFullscreen();\n } else {\n this.requestFullscreen();\n }\n });\n }\n\n closeGallery(): void {\n // exit from fullscreen if activated\n if (this.isFullScreen()) {\n this.exitFullscreen();\n }\n }\n\n destroy(): void {\n this.$LG(document).off(\n `fullscreenchange.lg.global${this.core.lgId} \n webkitfullscreenchange.lg.global${this.core.lgId} \n mozfullscreenchange.lg.global${this.core.lgId} \n MSFullscreenChange.lg.global${this.core.lgId}`,\n );\n }\n}\n"],"names":[],"mappings":"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"}
\No newline at end of file