    /**
     * @file fullscreen-api.js
     * @module fullscreen-api
     * @private
     */
    import document from 'global/document';

    /**
     * Store the browser-specific methods for the fullscreen API.
     *
     * @type {Object}
     * @see [Specification]{@link https://fullscreen.spec.whatwg.org}
     * @see [Map Approach From Screenfull.js]{@link https://github.com/sindresorhus/screenfull.js}
     */
    const FullscreenApi = {};

    // browser API methods
    const apiMap = [
      [
        'requestFullscreen',
        'exitFullscreen',
        'fullscreenElement',
        'fullscreenEnabled',
        'fullscreenchange',
        'fullscreenerror'
      ],
      // WebKit
      [
        'webkitRequestFullscreen',
        'webkitExitFullscreen',
        'webkitFullscreenElement',
        'webkitFullscreenEnabled',
        'webkitfullscreenchange',
        'webkitfullscreenerror'
      ],
      // Old WebKit (Safari 5.1)
      [
        'webkitRequestFullScreen',
        'webkitCancelFullScreen',
        'webkitCurrentFullScreenElement',
        'webkitCancelFullScreen',
        'webkitfullscreenchange',
        'webkitfullscreenerror'
      ],
      // Mozilla
      [
        'mozRequestFullScreen',
        'mozCancelFullScreen',
        'mozFullScreenElement',
        'mozFullScreenEnabled',
        'mozfullscreenchange',
        'mozfullscreenerror'
      ],
      // Microsoft
      [
        'msRequestFullscreen',
        'msExitFullscreen',
        'msFullscreenElement',
        'msFullscreenEnabled',
        'MSFullscreenChange',
        'MSFullscreenError'
      ]
    ];

    const specApi = apiMap[0];
    let browserApi;

    // determine the supported set of functions
    for (let i = 0; i < apiMap.length; i++) {
      // check for exitFullscreen function
      if (apiMap[i][1] in document) {
        browserApi = apiMap[i];
        break;
      }
    }

    // map the browser API names to the spec API names
    if (browserApi) {
      for (let i = 0; i < browserApi.length; i++) {
        FullscreenApi[specApi[i]] = browserApi[i];
      }
    }

    export default FullscreenApi;