Slots Without Shadow Dom

Posted on
Slots Without Shadow DomWeb components 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

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.

WithoutSlots without shadow domain
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