kopia lustrzana https://github.com/shoelace-style/shoelace
				
				
				
			Add default slot detection to hasSlot
							rodzic
							
								
									0aa1c9a741
								
							
						
					
					
						commit
						23d9ff9096
					
				|  | @ -37,8 +37,28 @@ export function getTextContent(slot: HTMLSlotElement): string { | |||
| } | ||||
| 
 | ||||
| //
 | ||||
| // Determines whether a slot with the given name exists in an element.
 | ||||
| // Determines whether an element has a slot. If name is specified, the function will look for a corresponding named
 | ||||
| // slot, otherwise it will look for a "default" slot (e.g. a non-empty text node or an element with no slot attribute).
 | ||||
| //
 | ||||
| export function hasSlot(el: HTMLElement, name: string) { | ||||
| export function hasSlot(el: HTMLElement, name?: string) { | ||||
|   // Look for a named slot
 | ||||
|   if (name) { | ||||
|     return el.querySelector(`[slot="${name}"]`) !== null; | ||||
|   } | ||||
| 
 | ||||
|   // Look for a default slot
 | ||||
|   return [...el.childNodes].some(node => { | ||||
|     if (node.nodeType === node.TEXT_NODE && node.textContent.trim() !== '') { | ||||
|       return true; | ||||
|     } | ||||
| 
 | ||||
|     if (node.nodeType === node.ELEMENT_NODE) { | ||||
|       const el = node as HTMLElement; | ||||
|       if (!el.hasAttribute('slot')) { | ||||
|         return true; | ||||
|       } | ||||
|     } | ||||
| 
 | ||||
|     return false; | ||||
|   }); | ||||
| } | ||||
|  |  | |||
		Ładowanie…
	
		Reference in New Issue
	
	 Cory LaViska
						Cory LaViska