Slots Without Shadow Dom
index.js
// Custom Template/Slot without Shadow DOM |
// template refers to <template></template> |
// context refers to stuff inside <your-custom-element> <span slot='bork'>🍭</span> </your-custom-element> |
// overall flow of operation translates to YOUR-HTML = TEMPLATE(CONTEXT) |
// a map of all <slot name='bork'> elements, where key is the name attribute, and value the <slot name='bork'> node; |
consttemplate=newMap(Array.from(this.querySelectorAll('slot').values()).map(i=>[i.name,i])); |
// an array of [[name, element]] where name is the slot attribute of html element <span slot='bork'>🍭</span> |
constcontext=Array.from(this.querySelectorAll(':scope > *[slot]').values()).map(i=>[i.slot,i]); |
console.log(context) |
// traverse context, the list of elements with slot='*' property |
// name is taken from context (see above) |
// element is the thing we want to replace <slot> with |
for(const[slotName,element]ofcontext){ |
// slot is the <slot name='bork'> referenced by <span slot='bork'>🍭</span> inside your custom element |
constslot=template.get(slotName); |
// if template had the slot bork, replace the entire <slot name='bork'>*</slot> with <span slot='bork'>🍭</span> |
if(slot)slot.parentElement.replaceChild(element,slot);// Syntax: replacedNode = parentNode.replaceChild(newChild, oldChild); |
// remove the remove slot='bork' from <span slot='bork'>🍭</span> |
// NOTE: THIS IS NON SPEC, YOU SHOULD COMMENT THIS OUT FOR FUTURE COMPAT |
// element.removeAttribute('slot'); |
} |
Slots Without Shadow Domain
Web Components Slots Without Shadow Dom
No deposit bonus. When the best new online casino games are released, the casino can award a small no deposit for the new gamblers to draw new customers and allow them to play the new slots free. No deposit bonus means you are getting a certain amount of money (usually about $10) to play new slots online right after you create your casino account. Stack Overflow for Teams is a private, secure spot for you and your coworkers to find and share information. Custom Template/Slot without Shadow DOM. GitHub Gist: instantly share code, notes, and snippets. Aurelia Shadow DOM slots (Blog). GitHub Gist: instantly share code, notes, and snippets.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment
index.js
// Custom Template/Slot without Shadow DOM |
// template refers to <template></template> |
// context refers to stuff inside <your-custom-element> <span slot='bork'>🍭</span> </your-custom-element> |
// overall flow of operation translates to YOUR-HTML = TEMPLATE(CONTEXT) |
// a map of all <slot name='bork'> elements, where key is the name attribute, and value the <slot name='bork'> node; |
consttemplate=newMap(Array.from(this.querySelectorAll('slot').values()).map(i=>[i.name,i])); |
// an array of [[name, element]] where name is the slot attribute of html element <span slot='bork'>🍭</span> |
constcontext=Array.from(this.querySelectorAll(':scope > *[slot]').values()).map(i=>[i.slot,i]); |
console.log(context) |
// traverse context, the list of elements with slot='*' property |
// name is taken from context (see above) |
// element is the thing we want to replace <slot> with |
for(const[slotName,element]ofcontext){ |
// slot is the <slot name='bork'> referenced by <span slot='bork'>🍭</span> inside your custom element |
constslot=template.get(slotName); |
// if template had the slot bork, replace the entire <slot name='bork'>*</slot> with <span slot='bork'>🍭</span> |
if(slot)slot.parentElement.replaceChild(element,slot);// Syntax: replacedNode = parentNode.replaceChild(newChild, oldChild); |
// remove the remove slot='bork' from <span slot='bork'>🍭</span> |
// NOTE: THIS IS NON SPEC, YOU SHOULD COMMENT THIS OUT FOR FUTURE COMPAT |
// element.removeAttribute('slot'); |
} |
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment