All files / widgets/Source ToggleButtonViewModel.js

88.88% Statements 8/9
50% Branches 4/8
100% Functions 2/2
88.88% Lines 8/9

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55                              408x         408x   408x             408x             408x   408x     1x               335x          
import { Frozen, defined, DeveloperError } from "@cesium/engine";
import knockout from "./ThirdParty/knockout.js";
 
/**
 * A view model which exposes the properties of a toggle button.
 * @alias ToggleButtonViewModel
 * @constructor
 *
 * @param {Command} command The command which will be executed when the button is toggled.
 * @param {object} [options] Object with the following properties:
 * @param {boolean} [options.toggled=false] A boolean indicating whether the button should be initially toggled.
 * @param {string} [options.tooltip=''] A string containing the button's tooltip.
 */
function ToggleButtonViewModel(command, options) {
  //>>includeStart('debug', pragmas.debug);
  Iif (!defined(command)) {
    throw new DeveloperError("command is required.");
  }
  //>>includeEnd('debug');
 
  this._command = command;
 
  options = options ?? Frozen.EMPTY_OBJECT;
 
  /**
   * Gets or sets whether the button is currently toggled.  This property is observable.
   * @type {boolean}
   * @default false
   */
  this.toggled = options.toggled ?? false;
 
  /**
   * Gets or sets the button's tooltip.  This property is observable.
   * @type {string}
   * @default ''
   */
  this.tooltip = options.tooltip ?? "";
 
  knockout.track(this, ["toggled", "tooltip"]);
}
 
Object.defineProperties(ToggleButtonViewModel.prototype, {
  /**
   * Gets the command which will be executed when the button is toggled.
   * @memberof ToggleButtonViewModel.prototype
   * @type {Command}
   */
  command: {
    get: function () {
      return this._command;
    },
  },
});
export default ToggleButtonViewModel;