constructor(routerConfig) {
    /** Configuration settings @type {UibRouterConfig} */
    __publicField(this, "config");
    /** Reference to the container DOM element - set in setup() @type {HTMLDivElement} */
    __publicField(this, "routeContainerEl");
    /** The current route id after doRoute() has been called */
    __publicField(this, "currentRouteId");
    /** The previous route id after doRoute() has been called */
    __publicField(this, "previousRouteId");
    /** Array of route ID's (created in constructor) */
    __publicField(this, "routeIds", []);
    /** Internal only. Set to true when the _start() method has been called */
    __privateAdd(this, _startDone, false);
    __publicField(this, "safety", 0);
    __publicField(this, "uibuilder", false);
    if (__privateGet(_UibRouter, _instanceExists))
      throw new Error("[uibrouter:constructor] Only 1 instance of a UibRouter may exist on the page.");
    if (!fetch)
      throw new Error("[uibrouter:constructor] UibRouter requires `fetch`. Please use a current browser or load a fetch polyfill.");
    if (!routerConfig)
      throw new Error("[uibrouter:constructor] No config provided");
    if (!routerConfig.routes)
      throw new Error("[uibrouter:constructor] No routes provided in routerConfig");
    this.config = routerConfig;
    if (!this.config.routeContainer)
      this.config.routeContainer = "#uibroutecontainer";
    if (!this.config.defaultRoute && this.config.routes[0] && this.config.routes[0].id)
      this.config.defaultRoute = this.config.routes[0].id;
    if (!this.config.hide)
      this.config.hide = false;
    if (!this.config.templateLoadAll)
      this.config.templateLoadAll = false;
    if (!this.config.templateUnload)
      this.config.templateUnload = true;
    this._normaliseRouteDefns(this.config.routes);
    if (window["markdownit"])
      this._markdownIt();
    if (window["uibuilder"]) {
      this.uibuilder = true;
      uibuilder.set("uibrouterinstance", this);
    }
    this._setRouteContainer();
    if (this.config.otherLoad)
      this.loadOther(this.config.otherLoad);
    this._updateRouteIds();
    if (this.config.templateLoadAll === false) {
      this._start();
    } else {
      console.info("[uibrouter] Pre-loading all external templates");
      Promise.allSettled(Object.values(routerConfig.routes).filter((r) => r.type && r.type === "url").map(this._loadExternal)).then((results) => {
        results.filter((res) => res.status === "rejected").forEach((res) => {
          console.error(res.reason);
        });
        results.filter((res) => res.status === "fulfilled").forEach((res) => {
          console.log("allSettled results", res, results);
          this._appendExternalTemplates(res.value);
        });
        this._start();
        return true;
      }).catch((reason) => {
        console.error(reason);
      });
    }
    __privateSet(_UibRouter, _instanceExists, true);
  }
Class constructor
@param {UibRouterConfig} routerConfig Configuration object