_uibCommand(msg) {
    var _a3;
    if (!msg._uib || !msg._uib.command) {
      log("error", "uibuilder:_uibCommand", "Invalid command message received", { msg })();
      msg.payload = msg.error = "Invalid command message received";
      this.send(msg);
      return;
    }
    const cmd = msg._uib.command;
    if (!__privateGet(this, _extCommands).includes(cmd.trim())) {
      log("error", "Uib:_uibCommand", "Command '".concat(cmd, " is not allowed to be called externally"))();
      return;
    }
    const prop = msg._uib.prop;
    const value2 = msg._uib.value;
    const quiet = (_a3 = msg._uib.quiet) != null ? _a3 : false;
    let response, info;
    switch (cmd) {
      // case 'elementIsVisible': { // temporarily deprecated
      //     response = this.elementIsVisible(prop)
      //     // info = `Element "${prop}" ${response ? 'is visible' : 'is not visible'}`
      //     break
      // }
      case "elementExists": {
        response = this.elementExists(prop, false);
        info = 'Element "'.concat(prop, '" ').concat(response ? "exists" : "does not exist");
        break;
      }
      case "get": {
        response = this.get(prop);
        break;
      }
      case "getManagedVarList": {
        if (prop === "full") response = this.getManagedVarList();
        else response = Object.values(this.getManagedVarList());
        break;
      }
      case "getWatchedVars": {
        if (prop === "full") response = this.getWatchedVars();
        else response = Object.values(this.getWatchedVars());
        break;
      }
      case "sendHtml":
      case "htmlSend": {
        response = this.htmlSend("", false);
        break;
      }
      case "include": {
        response = _ui.include(prop, value2);
        break;
      }
      case "navigate": {
        let newUrl;
        if (prop) newUrl = prop;
        else if (value2) newUrl = value2;
        response = this.navigate(newUrl);
        break;
      }
      case "scrollTo": {
        response = this.scrollTo(prop, value2);
        break;
      }
      case "set": {
        let store = false;
        let autoload = false;
        if (msg._uib.options && msg._uib.options.store) {
          if (msg._uib.options.store === true) store = true;
          if (msg._uib.options.autoload === true) autoload = true;
        }
        response = this.set(prop, value2, store, autoload);
        break;
      }
      case "showMsg": {
        response = this.showMsg(value2, prop);
        break;
      }
      case "showStatus": {
        response = this.showStatus(value2, prop);
        break;
      }
      case "uiGet": {
        response = _ui.uiGet(prop, value2);
        break;
      }
      case "uiWatch": {
        response = this.uiWatch(prop);
        break;
      }
      case "watchUrlHash": {
        response = this.watchUrlHash(prop);
        break;
      }
      default: {
        log("warning", "Uib:_uibCommand", "Command '".concat(cmd, "' not yet implemented"))();
        break;
      }
    }
    if (quiet !== true) {
      if (response === void 0) {
        response = "'".concat(prop, "' is undefined");
      }
      if (Object(response).constructor === Promise) {
        response.then((data) => {
          msg.payload = msg._uib.response = data;
          msg.info = msg._uib.info = info;
          if (!msg.topic) msg.topic = this.topic || "uib ".concat(cmd, " for '").concat(prop, "'");
          this.send(msg);
          return true;
        }).catch((err) => {
          log(0, "Uib:_uibCommand", "Error: ", err)();
        });
      } else {
        msg.payload = msg._uib.response = response;
        msg.info = msg._uib.info = info;
        if (!msg.topic) msg.topic = this.topic || "uib ".concat(cmd, " for '").concat(prop, "'");
        this.send(msg);
      }
    }
  }
Process msg._uib.command - Remember to update #extCommands with new allowed commands
@param {object} msg Msg from Node-RED containing a msg._uib object
@private