_uiUpdate(ui) {
    _a.log("trace", "UI:_uiUpdate:update", "Starting _uiUpdate", ui)();
    if (!ui.components) ui.components = [Object.assign({}, ui)];
    ui.components.forEach((compToUpd, i) => {
      _a.log("trace", "_uiUpdate:components-forEach", `Start loop #${i}`, compToUpd)();
      let elToUpd;
      if (compToUpd.parentEl) {
        elToUpd = compToUpd.parentEl;
      } else if (compToUpd.id) {
        elToUpd = _a.doc.querySelectorAll(`#${compToUpd.id}`);
      } else if (compToUpd.selector || compToUpd.select) {
        elToUpd = _a.doc.querySelectorAll(compToUpd.selector);
      } else if (compToUpd.name) {
        elToUpd = _a.doc.querySelectorAll(`[name="${compToUpd.name}"]`);
      } else if (compToUpd.type) {
        elToUpd = _a.doc.querySelectorAll(compToUpd.type);
      }
      if (elToUpd === void 0 || elToUpd.length < 1) {
        _a.log("warn", "Ui:_uiManager:update", "Cannot find the DOM element. Ignoring.", compToUpd)();
        return;
      }
      _a.log("trace", "_uiUpdate:components-forEach", `Element(s) to update. Count: ${elToUpd.length}`, elToUpd)();
      if (!compToUpd.slot && compToUpd.payload) compToUpd.slot = compToUpd.payload;
      elToUpd.forEach((el, j) => {
        _a.log("trace", "_uiUpdate:components-forEach", `Updating element #${j}`, el)();
        this._uiComposeComponent(el, compToUpd);
        if (compToUpd.components) {
          _a.log("trace", "_uiUpdate:nested-component", `Element #${j} - nested-component`, compToUpd, el)();
          const nc = { _ui: [] };
          compToUpd.components.forEach((nestedComp, k) => {
            const method = nestedComp.method || compToUpd.method || ui.method;
            if (nestedComp.method) delete nestedComp.method;
            if (!Array.isArray(nestedComp)) nestedComp = [nestedComp];
            _a.log("trace", "_uiUpdate:nested-component", `Element #${j} - nested-component #${k}`, nestedComp)();
            nc._ui.push({
              method,
              parentEl: el,
              components: nestedComp
            });
          });
          _a.log("trace", "_uiUpdate:nested-component", `Element #${j} - nested-component new manager`, nc)();
          this._uiManager(nc);
        }
      });
    });
  }
Handle incoming _ui update requests
@param {*} ui Standardised msg._ui property object. Note that payload and topic are appended to this object