code: function MapInteractionMode(options) {
    /**
     * Gets or sets a callback that is invoked when the user cancels the interaction mode.  If this property is undefined,
     * the interaction mode cannot be canceled.
     * @type {Function}
     */
    this.onCancel = options.onCancel;
  
    /**
     * Gets or sets the details of a custom user interface for this map interaction mode. This property is not used by
     * the `MapInteractionMode` itself, so it can be anything that is suitable for the user interface. In the standard
     * React-based user interface included with TerriaJS, this property is a function that is called with no parameters
     * and is expected to return a React component.
     * @type {Any}
     */
    this.customUi = defaultValue(options.customUi, undefined);
  
    /**
     * Gets or sets the html formatted message displayed on the map when in this mode.
     * @type {Function}
     */
    this.message = function() {
      return options.message;
    };
  
    /**
     * Set the text of the button for the dialog the message is displayed on.
     * @type {String}
     */
    this.buttonText = defaultValue(options.buttonText, "Cancel");
  
    /**
     * Gets or sets the features that are currently picked.
     * @type {PickedFeatures}
     */
    this.pickedFeatures = undefined;
  
    /**
     * Determines whether a rectangle will be requested from the user rather than a set of pickedFeatures.
     * @type {Boolean}
     */
    this.drawRectangle = defaultValue(options.drawRectangle, false);
  
    knockout.track(this, ["message", "pickedFeatures", "customUi"]);
  }
docs: A mode for interacting with the map.
  
  @alias MapInteractionMode
  @constructor
  
  @param {Object} [options] Object with the following properties:
  @param {Function} [options.onCancel] The function to invoke if the user cancels the interaction mode.  The cancel button will
  only appear if this property is specified.
  @param {String} [options.message] The message to display over the map while the interaction mode is active.