global-node.mjs 775 B

1234567891011121314151617181920212223242526272829
  1. import { isClient } from "../browser.mjs";
  2. //#region ../../packages/utils/vue/global-node.ts
  3. const globalNodes = [];
  4. let target = !isClient ? void 0 : document.body;
  5. function createGlobalNode(id) {
  6. const el = document.createElement("div");
  7. if (id !== void 0) el.setAttribute("id", id);
  8. if (target) {
  9. target.appendChild(el);
  10. globalNodes.push(el);
  11. }
  12. return el;
  13. }
  14. function removeGlobalNode(el) {
  15. globalNodes.splice(globalNodes.indexOf(el), 1);
  16. el.remove();
  17. }
  18. function changeGlobalNodesTarget(el) {
  19. if (el === target) return;
  20. target = el;
  21. globalNodes.forEach((el) => {
  22. if (target && !el.contains(target)) target.appendChild(el);
  23. });
  24. }
  25. //#endregion
  26. export { changeGlobalNodesTarget, createGlobalNode, removeGlobalNode };
  27. //# sourceMappingURL=global-node.mjs.map