| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 | 
							- import defined from "../../Core/defined.js";
 
- import defaultValue from "../../Core/defaultValue.js";
 
- import destroyObject from "../../Core/destroyObject.js";
 
- import DeveloperError from "../../Core/DeveloperError.js";
 
- import Fullscreen from "../../Core/Fullscreen.js";
 
- import knockout from "../../ThirdParty/knockout.js";
 
- import createCommand from "../createCommand.js";
 
- import getElement from "../getElement.js";
 
- /**
 
-  * The view model for {@link FullscreenButton}.
 
-  * @alias FullscreenButtonViewModel
 
-  * @constructor
 
-  *
 
-  * @param {Element|String} [fullscreenElement=document.body] The element or id to be placed into fullscreen mode.
 
-  * @param {Element|String} [container] The DOM element or ID that will contain the widget.
 
-  */
 
- function FullscreenButtonViewModel(fullscreenElement, container) {
 
-   if (!defined(container)) {
 
-     container = document.body;
 
-   }
 
-   container = getElement(container);
 
-   const that = this;
 
-   const tmpIsFullscreen = knockout.observable(Fullscreen.fullscreen);
 
-   const tmpIsEnabled = knockout.observable(Fullscreen.enabled);
 
-   const ownerDocument = container.ownerDocument;
 
-   /**
 
-    * Gets whether or not fullscreen mode is active.  This property is observable.
 
-    *
 
-    * @type {Boolean}
 
-    */
 
-   this.isFullscreen = undefined;
 
-   knockout.defineProperty(this, "isFullscreen", {
 
-     get: function () {
 
-       return tmpIsFullscreen();
 
-     },
 
-   });
 
-   /**
 
-    * Gets or sets whether or not fullscreen functionality should be enabled.  This property is observable.
 
-    *
 
-    * @type {Boolean}
 
-    * @see Fullscreen.enabled
 
-    */
 
-   this.isFullscreenEnabled = undefined;
 
-   knockout.defineProperty(this, "isFullscreenEnabled", {
 
-     get: function () {
 
-       return tmpIsEnabled();
 
-     },
 
-     set: function (value) {
 
-       tmpIsEnabled(value && Fullscreen.enabled);
 
-     },
 
-   });
 
-   /**
 
-    * Gets the tooltip.  This property is observable.
 
-    *
 
-    * @type {String}
 
-    */
 
-   this.tooltip = undefined;
 
-   knockout.defineProperty(this, "tooltip", function () {
 
-     if (!this.isFullscreenEnabled) {
 
-       return "Full screen unavailable";
 
-     }
 
-     return tmpIsFullscreen() ? "Exit full screen" : "Full screen";
 
-   });
 
-   this._command = createCommand(function () {
 
-     if (Fullscreen.fullscreen) {
 
-       Fullscreen.exitFullscreen();
 
-     } else {
 
-       Fullscreen.requestFullscreen(that._fullscreenElement);
 
-     }
 
-   }, knockout.getObservable(this, "isFullscreenEnabled"));
 
-   this._fullscreenElement = defaultValue(
 
-     getElement(fullscreenElement),
 
-     ownerDocument.body
 
-   );
 
-   this._callback = function () {
 
-     tmpIsFullscreen(Fullscreen.fullscreen);
 
-   };
 
-   ownerDocument.addEventListener(Fullscreen.changeEventName, this._callback);
 
- }
 
- Object.defineProperties(FullscreenButtonViewModel.prototype, {
 
-   /**
 
-    * Gets or sets the HTML element to place into fullscreen mode when the
 
-    * corresponding button is pressed.
 
-    * @memberof FullscreenButtonViewModel.prototype
 
-    *
 
-    * @type {Element}
 
-    */
 
-   fullscreenElement: {
 
-     //TODO:@exception {DeveloperError} value must be a valid HTML Element.
 
-     get: function () {
 
-       return this._fullscreenElement;
 
-     },
 
-     set: function (value) {
 
-       //>>includeStart('debug', pragmas.debug);
 
-       if (!(value instanceof Element)) {
 
-         throw new DeveloperError("value must be a valid Element.");
 
-       }
 
-       //>>includeEnd('debug');
 
-       this._fullscreenElement = value;
 
-     },
 
-   },
 
-   /**
 
-    * Gets the Command to toggle fullscreen mode.
 
-    * @memberof FullscreenButtonViewModel.prototype
 
-    *
 
-    * @type {Command}
 
-    */
 
-   command: {
 
-     get: function () {
 
-       return this._command;
 
-     },
 
-   },
 
- });
 
- /**
 
-  * @returns {Boolean} true if the object has been destroyed, false otherwise.
 
-  */
 
- FullscreenButtonViewModel.prototype.isDestroyed = function () {
 
-   return false;
 
- };
 
- /**
 
-  * Destroys the view model.  Should be called to
 
-  * properly clean up the view model when it is no longer needed.
 
-  */
 
- FullscreenButtonViewModel.prototype.destroy = function () {
 
-   document.removeEventListener(Fullscreen.changeEventName, this._callback);
 
-   destroyObject(this);
 
- };
 
- export default FullscreenButtonViewModel;
 
 
  |