{"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAI5C,MAAM,OAAO,YAAa,SAAQ,SAAS;IAA3C;;QACU,aAAQ,GAA4B,IAAI,CAAC;QAChC,iBAAY,GAAG,OAAO,SAAS,KAAK,WAAW,IAAI,UAAU,IAAI,SAAS,CAAC;QAEpF,2BAAsB,GAAG,GAAG,EAAE;YACpC,IAAI,QAAQ,CAAC,eAAe,KAAK,SAAS;gBAAE,IAAI,CAAC,SAAS,EAAE,CAAC;QAC/D,CAAC,CAAC;IA4CJ,CAAC;IA1CQ,KAAK,CAAC,SAAS;QACpB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC/B,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC3D,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAC3E,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAC7E,CAAC;IAEM,KAAK,CAAC,UAAU;;QACrB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC/B,CAAC;QACD,MAAA,IAAI,CAAC,QAAQ,0CAAE,OAAO,EAAE,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,QAAQ,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAC9E,QAAQ,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAChF,CAAC;IAEM,KAAK,CAAC,WAAW;QACtB,MAAM,MAAM,GAAG;YACb,WAAW,EAAE,IAAI,CAAC,YAAY;SAC/B,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,WAAW;QACtB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC/B,CAAC;QACD,MAAM,MAAM,GAAG;YACb,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ;SAC7B,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,qBAAqB;QAC3B,MAAM,IAAI,CAAC,WAAW,CAAC,qDAAqD,CAAC,CAAC;IAChF,CAAC;CACF","sourcesContent":["import { WebPlugin } from '@capacitor/core';\n\nimport type { IsKeptAwakeResult, IsSupportedResult, KeepAwakePlugin } from './definitions';\n\nexport class KeepAwakeWeb extends WebPlugin implements KeepAwakePlugin {\n private wakeLock: WakeLockSentinel | null = null;\n private readonly _isSupported = typeof navigator !== 'undefined' && 'wakeLock' in navigator;\n\n private handleVisibilityChange = () => {\n if (document.visibilityState === 'visible') this.keepAwake();\n };\n\n public async keepAwake(): Promise {\n if (!this._isSupported) {\n this.throwUnsupportedError();\n }\n if (this.wakeLock) {\n await this.allowSleep();\n }\n this.wakeLock = await navigator.wakeLock.request('screen');\n document.addEventListener('visibilitychange', this.handleVisibilityChange);\n document.addEventListener('fullscreenchange', this.handleVisibilityChange);\n }\n\n public async allowSleep(): Promise {\n if (!this._isSupported) {\n this.throwUnsupportedError();\n }\n this.wakeLock?.release();\n this.wakeLock = null;\n document.removeEventListener('visibilitychange', this.handleVisibilityChange);\n document.removeEventListener('fullscreenchange', this.handleVisibilityChange);\n }\n\n public async isSupported(): Promise {\n const result = {\n isSupported: this._isSupported,\n };\n return result;\n }\n\n public async isKeptAwake(): Promise {\n if (!this._isSupported) {\n this.throwUnsupportedError();\n }\n const result = {\n isKeptAwake: !!this.wakeLock,\n };\n return result;\n }\n\n private throwUnsupportedError(): never {\n throw this.unavailable('Screen Wake Lock API not available in this browser.');\n }\n}\n"]}