_uiExtendEl(parentEl, components, ns = "") {
    components.forEach((compToAdd, i) => {
      _a.log("trace", `Ui:_uiExtendEl:components-forEach:${i}`, compToAdd)();
      let newEl;
      compToAdd.ns = ns;
      if (compToAdd.ns === "html") {
        newEl = parentEl;
        this.replaceSlot(parentEl, compToAdd.slot);
      } else if (compToAdd.ns === "svg") {
        newEl = _a.doc.createElementNS("http://www.w3.org/2000/svg", compToAdd.type);
        this._uiComposeComponent(newEl, compToAdd);
        parentEl.appendChild(newEl);
      } else {
        newEl = _a.doc.createElement(compToAdd.type === "html" ? "div" : compToAdd.type);
        this._uiComposeComponent(newEl, compToAdd);
        parentEl.appendChild(newEl);
      }
      if (compToAdd.components) {
        this._uiExtendEl(newEl, compToAdd.components, compToAdd.ns);
      }
    });
  }
Extend an HTML Element with appended elements using ui components
NOTE: This fn follows a strict hierarchy of added components.
@param {HTMLElement} parentEl The parent HTML Element we want to append to
@param {*} components The ui component(s) we want to add
@param {string} [ns] Optional. The namespace to use.