UNPKG

@angular/cdk

Version:

Angular Material Component Development Kit

1 lines 5.72 kB
{"version":3,"file":"overlay.mjs","sources":["../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/cdk/overlay/fullscreen-overlay-container.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {inject, Injectable, OnDestroy, RendererFactory2} from '@angular/core';\nimport {OverlayContainer} from './overlay-container';\n\n/**\n * Alternative to OverlayContainer that supports correct displaying of overlay elements in\n * Fullscreen mode\n * https://developer.mozilla.org/en-US/docs/Web/API/Element/requestFullScreen\n *\n * Should be provided in the root component.\n */\n@Injectable({providedIn: 'root'})\nexport class FullscreenOverlayContainer extends OverlayContainer implements OnDestroy {\n private _renderer = inject(RendererFactory2).createRenderer(null, null);\n private _fullScreenEventName: string | undefined;\n private _cleanupFullScreenListener: (() => void) | undefined;\n\n constructor(...args: unknown[]);\n\n constructor() {\n super();\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n this._cleanupFullScreenListener?.();\n }\n\n protected override _createContainer(): void {\n const eventName = this._getEventName();\n super._createContainer();\n this._adjustParentForFullscreenChange();\n\n if (eventName) {\n this._cleanupFullScreenListener?.();\n this._cleanupFullScreenListener = this._renderer.listen('document', eventName, () => {\n this._adjustParentForFullscreenChange();\n });\n }\n }\n\n private _adjustParentForFullscreenChange(): void {\n if (this._containerElement) {\n const fullscreenElement = this.getFullscreenElement();\n const parent = fullscreenElement || this._document.body;\n parent.appendChild(this._containerElement);\n }\n }\n\n private _getEventName(): string | undefined {\n if (!this._fullScreenEventName) {\n const _document = this._document as any;\n\n if (_document.fullscreenEnabled) {\n this._fullScreenEventName = 'fullscreenchange';\n } else if (_document.webkitFullscreenEnabled) {\n this._fullScreenEventName = 'webkitfullscreenchange';\n } else if (_document.mozFullScreenEnabled) {\n this._fullScreenEventName = 'mozfullscreenchange';\n } else if (_document.msFullscreenEnabled) {\n this._fullScreenEventName = 'MSFullscreenChange';\n }\n }\n\n return this._fullScreenEventName;\n }\n\n /**\n * When the page is put into fullscreen mode, a specific element is specified.\n * Only that element and its children are visible when in fullscreen mode.\n */\n getFullscreenElement(): Element {\n const _document = this._document as any;\n\n return (\n _document.fullscreenElement ||\n _document.webkitFullscreenElement ||\n _document.mozFullScreenElement ||\n _document.msFullscreenElement ||\n null\n );\n }\n}\n"],"names":["FullscreenOverlayContainer","OverlayContainer","_renderer","inject","RendererFactory2","createRenderer","_fullScreenEventName","_cleanupFullScreenListener","constructor","ngOnDestroy","_createContainer","eventName","_getEventName","_adjustParentForFullscreenChange","listen","_containerElement","fullscreenElement","getFullscreenElement","parent","_document","body","appendChild","fullscreenEnabled","webkitFullscreenEnabled","mozFullScreenEnabled","msFullscreenEnabled","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","deps","target","i0","ɵɵFactoryTarget","Injectable","ɵprov","ɵɵngDeclareInjectable","minVersion","version","ngImport","type","decorators","providedIn"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAmBM,MAAOA,0BAA2B,SAAQC,gBAAgB,CAAA;EACtDC,SAAS,GAAGC,MAAM,CAACC,gBAAgB,CAAC,CAACC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC;EAC/DC,oBAAoB;EACpBC,0BAA0B;AAIlCC,EAAAA,WAAAA,GAAA;AACE,IAAA,KAAK,EAAE;AACT;AAESC,EAAAA,WAAWA,GAAA;IAClB,KAAK,CAACA,WAAW,EAAE;IACnB,IAAI,CAACF,0BAA0B,IAAI;AACrC;AAEmBG,EAAAA,gBAAgBA,GAAA;AACjC,IAAA,MAAMC,SAAS,GAAG,IAAI,CAACC,aAAa,EAAE;IACtC,KAAK,CAACF,gBAAgB,EAAE;IACxB,IAAI,CAACG,gCAAgC,EAAE;AAEvC,IAAA,IAAIF,SAAS,EAAE;MACb,IAAI,CAACJ,0BAA0B,IAAI;AACnC,MAAA,IAAI,CAACA,0BAA0B,GAAG,IAAI,CAACL,SAAS,CAACY,MAAM,CAAC,UAAU,EAAEH,SAAS,EAAE,MAAK;QAClF,IAAI,CAACE,gCAAgC,EAAE;AACzC,OAAC,CAAC;AACJ;AACF;AAEQA,EAAAA,gCAAgCA,GAAA;IACtC,IAAI,IAAI,CAACE,iBAAiB,EAAE;AAC1B,MAAA,MAAMC,iBAAiB,GAAG,IAAI,CAACC,oBAAoB,EAAE;MACrD,MAAMC,MAAM,GAAGF,iBAAiB,IAAI,IAAI,CAACG,SAAS,CAACC,IAAI;AACvDF,MAAAA,MAAM,CAACG,WAAW,CAAC,IAAI,CAACN,iBAAiB,CAAC;AAC5C;AACF;AAEQH,EAAAA,aAAaA,GAAA;AACnB,IAAA,IAAI,CAAC,IAAI,CAACN,oBAAoB,EAAE;AAC9B,MAAA,MAAMa,SAAS,GAAG,IAAI,CAACA,SAAgB;MAEvC,IAAIA,SAAS,CAACG,iBAAiB,EAAE;QAC/B,IAAI,CAAChB,oBAAoB,GAAG,kBAAkB;AAChD,OAAA,MAAO,IAAIa,SAAS,CAACI,uBAAuB,EAAE;QAC5C,IAAI,CAACjB,oBAAoB,GAAG,wBAAwB;AACtD,OAAA,MAAO,IAAIa,SAAS,CAACK,oBAAoB,EAAE;QACzC,IAAI,CAAClB,oBAAoB,GAAG,qBAAqB;AACnD,OAAA,MAAO,IAAIa,SAAS,CAACM,mBAAmB,EAAE;QACxC,IAAI,CAACnB,oBAAoB,GAAG,oBAAoB;AAClD;AACF;IAEA,OAAO,IAAI,CAACA,oBAAoB;AAClC;AAMAW,EAAAA,oBAAoBA,GAAA;AAClB,IAAA,MAAME,SAAS,GAAG,IAAI,CAACA,SAAgB;AAEvC,IAAA,OACEA,SAAS,CAACH,iBAAiB,IAC3BG,SAAS,CAACO,uBAAuB,IACjCP,SAAS,CAACQ,oBAAoB,IAC9BR,SAAS,CAACS,mBAAmB,IAC7B,IAAI;AAER;;;;;UArEW5B,0BAA0B;AAAA6B,IAAAA,IAAA,EAAA,EAAA;AAAAC,IAAAA,MAAA,EAAAC,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;AAA1B,EAAA,OAAAC,KAAA,GAAAH,EAAA,CAAAI,qBAAA,CAAA;AAAAC,IAAAA,UAAA,EAAA,QAAA;AAAAC,IAAAA,OAAA,EAAA,QAAA;AAAAC,IAAAA,QAAA,EAAAP,EAAA;AAAAQ,IAAAA,IAAA,EAAAvC,0BAA0B;gBADd;AAAM,GAAA,CAAA;;;;;;QAClBA,0BAA0B;AAAAwC,EAAAA,UAAA,EAAA,CAAA;UADtCP,UAAU;WAAC;AAACQ,MAAAA,UAAU,EAAE;KAAO;;;;;;;"}