chunk.FMCX45AD.js 739 B

123456789101112131415161718192021222324252627282930313233
  1. // src/internal/slot.ts
  2. function getTextContent(slot) {
  3. const nodes = slot ? slot.assignedNodes({ flatten: true }) : [];
  4. let text = "";
  5. [...nodes].map((node) => {
  6. if (node.nodeType === Node.TEXT_NODE) {
  7. text += node.textContent;
  8. }
  9. });
  10. return text;
  11. }
  12. function hasSlot(el, name) {
  13. if (name) {
  14. return el.querySelector(`[slot="${name}"]`) !== null;
  15. }
  16. return [...el.childNodes].some((node) => {
  17. if (node.nodeType === node.TEXT_NODE && node.textContent.trim() !== "") {
  18. return true;
  19. }
  20. if (node.nodeType === node.ELEMENT_NODE) {
  21. const el2 = node;
  22. if (!el2.hasAttribute("slot")) {
  23. return true;
  24. }
  25. }
  26. return false;
  27. });
  28. }
  29. export {
  30. getTextContent,
  31. hasSlot
  32. };