From 41232640266ad8f92cc5a6686977a153c98432dc Mon Sep 17 00:00:00 2001 From: Ilia Choly Date: Mon, 5 Jan 2015 09:58:05 -0500 Subject: [PATCH] add screenfull definition --- screenfull/screenfull-tests.ts | 62 ++++++++++++++++++++++++++++++++++ screenfull/screenfull.d.ts | 26 ++++++++++++++ 2 files changed, 88 insertions(+) create mode 100644 screenfull/screenfull-tests.ts create mode 100644 screenfull/screenfull.d.ts diff --git a/screenfull/screenfull-tests.ts b/screenfull/screenfull-tests.ts new file mode 100644 index 000000000..b4cc17421 --- /dev/null +++ b/screenfull/screenfull-tests.ts @@ -0,0 +1,62 @@ +/// + +function test_fullscreen_page() { + if (screenfull.enabled) { + screenfull.request(); + } +} + +function test_fullscreen_element() { + var elem = document.getElementById('target'); + if (screenfull.enabled) { + screenfull.request(elem); + } +} + +function test_toggle() { + var elem = document.getElementById('target'); + if (screenfull.enabled) { + screenfull.toggle(elem); + } +} + +function test_exit() { + if (screenfull.enabled) { + screenfull.request(); + } + document.getElementById('target').addEventListener('click', function () { + if (screenfull.enabled) { + screenfull.exit(); + } + }) +} + +function test_detect_change() { + if (screenfull.enabled) { + document.addEventListener(screenfull.raw.fullscreenchange, function () { + if (screenfull.isFullscreen) { + console.log('fullscreen'); + } else { + console.log('not fullscreen'); + } + }); + } +} + +function test_detect_error() { + if (screenfull.enabled) { + document.addEventListener(screenfull.raw.fullscreenerror, function (event) { + console.error('Failed to enable fullscreen', event); + }); + } +} + +function test_access_element() { + var elem = document.getElementById('target'); + if (screenfull.enabled) { + screenfull.request(elem); + if (elem !== screenfull.element) { + alert('incorrect element property'); + } + } +} diff --git a/screenfull/screenfull.d.ts b/screenfull/screenfull.d.ts new file mode 100644 index 000000000..2e5e78deb --- /dev/null +++ b/screenfull/screenfull.d.ts @@ -0,0 +1,26 @@ +// Type definitions for screenfull.js 2.0.0 +// Project: https://github.com/sindresorhus/screenfull.js +// Definitions by: Ilia Choly +// Definitions: https://github.com/borisyankov/DefinitelyTyped + + +declare var screenfull: IScreenfull; + +interface IScreenfullRaw { + requestFullscreen?: string; + exitFullscreen?: string; + fullscreenElement?: string; + fullscreenEnabled?: string; + fullscreenchange?: string; + fullscreenerror?: string; +} + +interface IScreenfull { + isFullscreen: boolean; + element: Element; + enabled: boolean; + raw: IScreenfullRaw; + request(elem?: Element): void; + toggle(elem?: Element): void; + exit(): void; +}