element-plus
Version:
A Component Library for Vue 3
1 lines • 1.72 kB
Source Map (JSON)
{"version":3,"file":"global-node.mjs","sources":["../../../../../packages/utils/vue/global-node.ts"],"sourcesContent":["import { isClient } from '../browser'\n\nconst globalNodes: HTMLElement[] = []\nlet target: HTMLElement | undefined = !isClient ? undefined : document.body\n\nexport function createGlobalNode(id?: string) {\n const el = document.createElement('div')\n if (id !== undefined) {\n el.setAttribute('id', id)\n }\n\n if (target) {\n target.appendChild(el)\n globalNodes.push(el)\n }\n\n return el\n}\n\nexport function removeGlobalNode(el: HTMLElement) {\n globalNodes.splice(globalNodes.indexOf(el), 1)\n el.remove()\n}\n\nexport function changeGlobalNodesTarget(el: HTMLElement) {\n if (el === target) return\n\n target = el\n globalNodes.forEach((el) => {\n if (target && !el.contains(target)) {\n target.appendChild(el)\n }\n })\n}\n"],"names":["el"],"mappings":";;AAEA,MAAM,cAA6B,EAAC;AACpC,IAAI,MAAA,GAAkC,CAAC,QAAA,GAAW,MAAA,GAAY,QAAA,CAAS,IAAA;AAEhE,SAAS,iBAAiB,EAAA,EAAa;AAC5C,EAAA,MAAM,EAAA,GAAK,QAAA,CAAS,aAAA,CAAc,KAAK,CAAA;AACvC,EAAA,IAAI,OAAO,MAAA,EAAW;AACpB,IAAA,EAAA,CAAG,YAAA,CAAa,MAAM,EAAE,CAAA;AAAA,EAC1B;AAEA,EAAA,IAAI,MAAA,EAAQ;AACV,IAAA,MAAA,CAAO,YAAY,EAAE,CAAA;AACrB,IAAA,WAAA,CAAY,KAAK,EAAE,CAAA;AAAA,EACrB;AAEA,EAAA,OAAO,EAAA;AACT;AAEO,SAAS,iBAAiB,EAAA,EAAiB;AAChD,EAAA,WAAA,CAAY,MAAA,CAAO,WAAA,CAAY,OAAA,CAAQ,EAAE,GAAG,CAAC,CAAA;AAC7C,EAAA,EAAA,CAAG,MAAA,EAAO;AACZ;AAEO,SAAS,wBAAwB,EAAA,EAAiB;AACvD,EAAA,IAAI,OAAO,MAAA,EAAQ;AAEnB,EAAA,MAAA,GAAS,EAAA;AACT,EAAA,WAAA,CAAY,OAAA,CAAQ,CAACA,GAAAA,KAAO;AAC1B,IAAA,IAAI,MAAA,IAAU,CAACA,GAAAA,CAAG,QAAA,CAAS,MAAM,CAAA,EAAG;AAClC,MAAA,MAAA,CAAO,YAAYA,GAAE,CAAA;AAAA,IACvB;AAAA,EACF,CAAC,CAAA;AACH;;;;"}