| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 | /** * -------------------------------------------- * AdminLTE Fullscreen.js * License MIT * -------------------------------------------- */import $ from 'jquery'/** * Constants * ==================================================== */const NAME = 'Fullscreen'const DATA_KEY = 'lte.fullscreen'const JQUERY_NO_CONFLICT = $.fn[NAME]const SELECTOR_DATA_WIDGET = '[data-widget="fullscreen"]'const SELECTOR_ICON = `${SELECTOR_DATA_WIDGET} i`const Default = {  minimizeIcon: 'fa-compress-arrows-alt',  maximizeIcon: 'fa-expand-arrows-alt'}/** * Class Definition * ==================================================== */class Fullscreen {  constructor(_element, _options) {    this.element = _element    this.options = $.extend({}, Default, _options)  }  // Public  toggle() {    if (document.fullscreenElement ||      document.mozFullScreenElement ||      document.webkitFullscreenElement ||      document.msFullscreenElement) {      this.windowed()    } else {      this.fullscreen()    }  }  fullscreen() {    if (document.documentElement.requestFullscreen) {      document.documentElement.requestFullscreen()    } else if (document.documentElement.webkitRequestFullscreen) {      document.documentElement.webkitRequestFullscreen()    } else if (document.documentElement.msRequestFullscreen) {      document.documentElement.msRequestFullscreen()    }    $(SELECTOR_ICON).removeClass(this.options.maximizeIcon).addClass(this.options.minimizeIcon)  }  windowed() {    if (document.exitFullscreen) {      document.exitFullscreen()    } else if (document.webkitExitFullscreen) {      document.webkitExitFullscreen()    } else if (document.msExitFullscreen) {      document.msExitFullscreen()    }    $(SELECTOR_ICON).removeClass(this.options.minimizeIcon).addClass(this.options.maximizeIcon)  }  // Static  static _jQueryInterface(config) {    let data = $(this).data(DATA_KEY)    if (!data) {      data = $(this).data()    }    const _options = $.extend({}, Default, typeof config === 'object' ? config : data)    const plugin = new Fullscreen($(this), _options)    $(this).data(DATA_KEY, typeof config === 'object' ? config : data)    if (typeof config === 'string' && config.match(/toggle|fullscreen|windowed/)) {      plugin[config]()    } else {      plugin.init()    }  }}/**  * Data API  * ====================================================  */$(document).on('click', SELECTOR_DATA_WIDGET, function () {  Fullscreen._jQueryInterface.call($(this), 'toggle')})/** * jQuery API * ==================================================== */$.fn[NAME] = Fullscreen._jQueryInterface$.fn[NAME].Constructor = Fullscreen$.fn[NAME].noConflict = function () {  $.fn[NAME] = JQUERY_NO_CONFLICT  return Fullscreen._jQueryInterface}export default Fullscreen
 |