UNPKG

ng-devui

Version:

DevUI components based on Angular

1 lines 17.5 kB
{"version":3,"file":"ng-devui-fullscreen.mjs","sources":["../../devui/fullscreen/fullscreen.config.ts","../../devui/fullscreen/fullscreen.component.ts","../../devui/fullscreen/fullscreen.component.html","../../devui/fullscreen/fullscreen.module.ts","../../devui/fullscreen/ng-devui-fullscreen.ts"],"sourcesContent":["export const DEFAULT_MODE = 'immersive';\nexport const DEFAULT_ZINDEX = 10;\nexport const ESC_KEYCODE = 27;\n","import { DOCUMENT } from '@angular/common';\nimport { AfterViewInit, Component, ElementRef, EventEmitter, Inject, Input, OnDestroy, OnInit, Output, Renderer2 } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { DEFAULT_MODE, DEFAULT_ZINDEX, ESC_KEYCODE } from './fullscreen.config';\nimport { FullscreenMode } from './fullscreen.type';\n\n@Component({\n selector: 'd-fullscreen',\n templateUrl: './fullscreen.component.html',\n styleUrls: ['./fullscreen.component.scss'],\n preserveWhitespaces: false,\n})\nexport class FullscreenComponent implements OnInit, OnDestroy, AfterViewInit {\n @Input() mode: FullscreenMode = DEFAULT_MODE;\n @Input() zIndex = DEFAULT_ZINDEX;\n /**\n * @deprecated\n */\n @Input() target: HTMLElement;\n @Input() container: HTMLElement;\n @Input() beforeChange: (isFullscreen: boolean, trigger: string) => boolean | Promise<boolean> | Observable<boolean>;\n @Output() fullscreenLaunch: EventEmitter<any> = new EventEmitter<any>();\n document: Document;\n private currentTarget: HTMLElement;\n private isFullscreen = false;\n\n constructor(@Inject(DOCUMENT) private doc: any, private elementRef: ElementRef, private render: Renderer2) {\n this.document = this.doc;\n }\n\n ngOnInit() {\n this.document.addEventListener('fullscreenchange', this.onFullScreenChange);\n this.document.addEventListener('MSFullscreenChange', this.onFullScreenChange);\n this.document.addEventListener('webkitfullscreenchange', this.onFullScreenChange);\n this.document.addEventListener('keydown', this.handleKeyDown);\n }\n\n ngAfterViewInit() {\n const btnLaunch = this.elementRef.nativeElement.querySelector('[fullscreen-launch]');\n if (btnLaunch) {\n btnLaunch.addEventListener('click', this.handleFullscreen);\n }\n }\n\n ngOnDestroy() {\n this.document.removeEventListener('fullscreenchange', this.onFullScreenChange);\n this.document.removeEventListener('MSFullscreenChange', this.onFullScreenChange);\n this.document.removeEventListener('webkitfullscreenchange', this.onFullScreenChange);\n this.document.removeEventListener('keydown', this.handleKeyDown);\n const btnLaunch = this.elementRef.nativeElement.querySelector('[fullscreen-launch]');\n if (btnLaunch) {\n btnLaunch.removeEventListener('click', this.handleFullscreen);\n }\n }\n\n private launchNormalFullscreen(targetElement: HTMLElement) {\n targetElement.classList.add('fullscreen');\n if (this.zIndex) {\n targetElement.setAttribute('style', `z-index: ${this.zIndex}`);\n }\n }\n\n private exitNormalFullscreen(targetElement: HTMLElement) {\n targetElement.classList.remove('fullscreen');\n targetElement.style.zIndex = null;\n }\n\n private async launchImmersiveFullScreen(docElement: any) {\n let fullscreenLaunch;\n if (docElement.requestFullscreen) {\n fullscreenLaunch = docElement.requestFullscreen();\n } else if (docElement.mozRequestFullScreen) {\n fullscreenLaunch = docElement.mozRequestFullScreen();\n } else if (docElement.webkitRequestFullScreen) {\n fullscreenLaunch = Promise.resolve(docElement.webkitRequestFullScreen());\n } else if (docElement.msRequestFullscreen) {\n fullscreenLaunch = Promise.resolve(docElement.msRequestFullscreen());\n }\n return await fullscreenLaunch.then(() => !!this.doc.fullscreenElement);\n }\n\n private async exitImmersiveFullScreen(doc: any) {\n let fullscreenExit;\n if (doc.exitFullscreen) {\n fullscreenExit = doc.exitFullscreen();\n } else if (doc.mozCancelFullScreen) {\n fullscreenExit = doc.mozCancelFullScreen();\n } else if (doc.webkitCancelFullScreen) {\n fullscreenExit = Promise.resolve(doc.webkitCancelFullScreen());\n } else if (doc.msExitFullscreen) {\n fullscreenExit = Promise.resolve(doc.msExitFullscreen());\n }\n return await fullscreenExit.then(() => !!this.doc.fullscreenElement);\n }\n\n private canChange(isFullscreen: boolean, trigger: string) {\n let changeResult = Promise.resolve(true);\n\n if (this.beforeChange) {\n const result: any = this.beforeChange(isFullscreen, trigger);\n if (typeof result !== 'undefined') {\n if (result.then) {\n changeResult = result;\n } else if (result.subscribe) {\n changeResult = (result as Observable<boolean>).toPromise();\n } else {\n changeResult = Promise.resolve(result);\n }\n }\n }\n\n return changeResult;\n }\n\n private beforeChangeCheck(fullscreen: boolean, trigger: string, func: Function) {\n this.canChange(fullscreen, trigger).then((permission: boolean) => permission && func());\n }\n\n private onFullScreenChange = (event) => {\n if (this.currentTarget) {\n const targetElement: HTMLElement = this.currentTarget;\n if (this.doc.fullscreenElement || this.doc.msFullscreenElement || this.doc.webkitFullscreenElement) {\n this.addFullScreenStyle();\n this.launchNormalFullscreen(targetElement);\n } else {\n this.removeFullScreenStyle();\n this.currentTarget = null;\n this.exitNormalFullscreen(targetElement);\n }\n // F11退出全屏时,需要将全屏状态传出去\n const isFullscreen = !!(this.doc.fullscreenElement || this.doc.msFullscreenElement || this.doc.webkitFullscreenElement);\n this.fullscreenLaunch.emit({ isFullscreen });\n this.isFullscreen = isFullscreen;\n }\n };\n\n public handleFullscreen = () => {\n const targetElement = this.elementRef.nativeElement.querySelector('[fullscreen-target]');\n const fullscreen =\n this.mode === 'normal'\n ? targetElement.classList.contains('fullscreen')\n : !!(this.doc.fullscreenElement || this.doc.msFullscreenElement || this.doc.webkitFullscreenElement);\n this.beforeChangeCheck(fullscreen, 'click', async () => {\n this.isFullscreen =\n this.mode === 'normal'\n ? this.normalFullscreenCallback(fullscreen, targetElement)\n : await this.immersiveFullScreenCallback(fullscreen, targetElement);\n this.fullscreenLaunch.emit({ isFullscreen: this.isFullscreen });\n });\n };\n\n normalFullscreenCallback(fullscreen: boolean, targetElement: HTMLElement) {\n if (fullscreen) {\n this.removeFullScreenStyle();\n this.exitNormalFullscreen(targetElement);\n return false;\n } else {\n this.addFullScreenStyle();\n this.launchNormalFullscreen(targetElement);\n return true;\n }\n }\n\n async immersiveFullScreenCallback(fullscreen: boolean, targetElement: HTMLElement) {\n this.currentTarget = targetElement;\n return fullscreen ? await this.exitImmersiveFullScreen(this.doc) : await this.launchImmersiveFullScreen(this.doc.documentElement);\n }\n\n private handleKeyDown = (event) => {\n // 按ESC键退出全屏\n if (event.keyCode === ESC_KEYCODE && this.isFullscreen) {\n this.beforeChangeCheck(this.isFullscreen, 'esc', () => {\n const targetElement = this.elementRef.nativeElement.querySelector('[fullscreen-target]');\n if (this.mode === 'normal') {\n this.removeFullScreenStyle();\n this.exitNormalFullscreen(targetElement);\n } else if (this.doc.fullscreenElement) {\n this.exitImmersiveFullScreen(this.doc);\n }\n\n this.isFullscreen = false;\n this.fullscreenLaunch.emit({ isFullscreen: false });\n });\n }\n };\n\n private addFullScreenStyle() {\n if (this.container) {\n this.render.addClass(this.container, 'devui-container-fullscreen');\n } else {\n this.render.addClass(this.document.getElementsByTagName('html')[0], 'devui-fullscreen');\n }\n }\n\n private removeFullScreenStyle() {\n if (this.container) {\n this.render.removeClass(this.container, 'devui-container-fullscreen');\n } else {\n this.render.removeClass(this.document.getElementsByTagName('html')[0], 'devui-fullscreen');\n }\n }\n}\n","<div class=\"fullscreen-container\">\n <ng-content select=\"[fullscreen-launch]\"></ng-content>\n <ng-content select=\"[fullscreen-target]\"></ng-content>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ButtonModule } from 'ng-devui/button';\nimport { FullscreenComponent } from './fullscreen.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ButtonModule\n ],\n exports: [\n FullscreenComponent\n ],\n declarations: [\n FullscreenComponent\n ]\n})\nexport class FullscreenModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}