@@ -25,28 +25,28 @@ <h1><a href="index.html">All files</a> CssChain.js</h1>
2525 < div class ='fl pad1y space-right2 '>
2626 < span class ="strong "> 100% </ span >
2727 < span class ="quiet "> Statements</ span >
28- < span class ='fraction '> 257/257 </ span >
28+ < span class ='fraction '> 292/292 </ span >
2929 </ div >
3030
3131
3232 < div class ='fl pad1y space-right2 '>
3333 < span class ="strong "> 100% </ span >
3434 < span class ="quiet "> Branches</ span >
35- < span class ='fraction '> 168/168 </ span >
35+ < span class ='fraction '> 177/177 </ span >
3636 </ div >
3737
3838
3939 < div class ='fl pad1y space-right2 '>
4040 < span class ="strong "> 100% </ span >
4141 < span class ="quiet "> Functions</ span >
42- < span class ='fraction '> 64/64 </ span >
42+ < span class ='fraction '> 68/68 </ span >
4343 </ div >
4444
4545
4646 < div class ='fl pad1y space-right2 '>
4747 < span class ="strong "> 100% </ span >
4848 < span class ="quiet "> Lines</ span >
49- < span class ='fraction '> 257/257 </ span >
49+ < span class ='fraction '> 292/292 </ span >
5050 </ div >
5151
5252
@@ -314,7 +314,42 @@ <h1><a href="index.html">All files</a> CssChain.js</h1>
314314< a name ='L255 '> </ a > < a href ='#L255 '> 255</ a >
315315< a name ='L256 '> </ a > < a href ='#L256 '> 256</ a >
316316< a name ='L257 '> </ a > < a href ='#L257 '> 257</ a >
317- < a name ='L258 '> </ a > < a href ='#L258 '> 258</ a > </ td > < td class ="line-coverage quiet "> < span class ="cline-any cline-yes "> 7x</ span >
317+ < a name ='L258 '> </ a > < a href ='#L258 '> 258</ a >
318+ < a name ='L259 '> </ a > < a href ='#L259 '> 259</ a >
319+ < a name ='L260 '> </ a > < a href ='#L260 '> 260</ a >
320+ < a name ='L261 '> </ a > < a href ='#L261 '> 261</ a >
321+ < a name ='L262 '> </ a > < a href ='#L262 '> 262</ a >
322+ < a name ='L263 '> </ a > < a href ='#L263 '> 263</ a >
323+ < a name ='L264 '> </ a > < a href ='#L264 '> 264</ a >
324+ < a name ='L265 '> </ a > < a href ='#L265 '> 265</ a >
325+ < a name ='L266 '> </ a > < a href ='#L266 '> 266</ a >
326+ < a name ='L267 '> </ a > < a href ='#L267 '> 267</ a >
327+ < a name ='L268 '> </ a > < a href ='#L268 '> 268</ a >
328+ < a name ='L269 '> </ a > < a href ='#L269 '> 269</ a >
329+ < a name ='L270 '> </ a > < a href ='#L270 '> 270</ a >
330+ < a name ='L271 '> </ a > < a href ='#L271 '> 271</ a >
331+ < a name ='L272 '> </ a > < a href ='#L272 '> 272</ a >
332+ < a name ='L273 '> </ a > < a href ='#L273 '> 273</ a >
333+ < a name ='L274 '> </ a > < a href ='#L274 '> 274</ a >
334+ < a name ='L275 '> </ a > < a href ='#L275 '> 275</ a >
335+ < a name ='L276 '> </ a > < a href ='#L276 '> 276</ a >
336+ < a name ='L277 '> </ a > < a href ='#L277 '> 277</ a >
337+ < a name ='L278 '> </ a > < a href ='#L278 '> 278</ a >
338+ < a name ='L279 '> </ a > < a href ='#L279 '> 279</ a >
339+ < a name ='L280 '> </ a > < a href ='#L280 '> 280</ a >
340+ < a name ='L281 '> </ a > < a href ='#L281 '> 281</ a >
341+ < a name ='L282 '> </ a > < a href ='#L282 '> 282</ a >
342+ < a name ='L283 '> </ a > < a href ='#L283 '> 283</ a >
343+ < a name ='L284 '> </ a > < a href ='#L284 '> 284</ a >
344+ < a name ='L285 '> </ a > < a href ='#L285 '> 285</ a >
345+ < a name ='L286 '> </ a > < a href ='#L286 '> 286</ a >
346+ < a name ='L287 '> </ a > < a href ='#L287 '> 287</ a >
347+ < a name ='L288 '> </ a > < a href ='#L288 '> 288</ a >
348+ < a name ='L289 '> </ a > < a href ='#L289 '> 289</ a >
349+ < a name ='L290 '> </ a > < a href ='#L290 '> 290</ a >
350+ < a name ='L291 '> </ a > < a href ='#L291 '> 291</ a >
351+ < a name ='L292 '> </ a > < a href ='#L292 '> 292</ a >
352+ < a name ='L293 '> </ a > < a href ='#L293 '> 293</ a > </ td > < td class ="line-coverage quiet "> < span class ="cline-any cline-yes "> 7x</ span >
318353< span class ="cline-any cline-yes "> 7x</ span >
319354< span class ="cline-any cline-yes "> 7x</ span >
320355< span class ="cline-any cline-yes "> 7x</ span >
@@ -333,8 +368,8 @@ <h1><a href="index.html">All files</a> CssChain.js</h1>
333368< span class ="cline-any cline-yes "> 7x</ span >
334369< span class ="cline-any cline-yes "> 7x</ span >
335370< span class ="cline-any cline-yes "> 7x</ span >
336- < span class ="cline-any cline-yes "> 5x </ span >
337- < span class ="cline-any cline-yes "> 5x </ span >
371+ < span class ="cline-any cline-yes "> 4x </ span >
372+ < span class ="cline-any cline-yes "> 4x </ span >
338373< span class ="cline-any cline-yes "> 7x</ span >
339374< span class ="cline-any cline-yes "> 7x</ span >
340375< span class ="cline-any cline-yes "> 7x</ span >
@@ -358,16 +393,21 @@ <h1><a href="index.html">All files</a> CssChain.js</h1>
358393< span class ="cline-any cline-yes "> 7x</ span >
359394< span class ="cline-any cline-yes "> 7x</ span >
360395< span class ="cline-any cline-yes "> 7x</ span >
361- < span class ="cline-any cline-yes "> 4x</ span >
362- < span class ="cline-any cline-yes "> 4x</ span >
363- < span class ="cline-any cline-yes "> 4x</ span >
364- < span class ="cline-any cline-yes "> 4x</ span >
365- < span class ="cline-any cline-yes "> 4x</ span >
366- < span class ="cline-any cline-yes "> 4x</ span >
367- < span class ="cline-any cline-yes "> 4x</ span >
368- < span class ="cline-any cline-yes "> 4x</ span >
369- < span class ="cline-any cline-yes "> 4x</ span >
370- < span class ="cline-any cline-yes "> 4x</ span >
396+ < span class ="cline-any cline-yes "> 5x</ span >
397+ < span class ="cline-any cline-yes "> 5x</ span >
398+ < span class ="cline-any cline-yes "> 5x</ span >
399+ < span class ="cline-any cline-yes "> 5x</ span >
400+ < span class ="cline-any cline-yes "> 5x</ span >
401+ < span class ="cline-any cline-yes "> 5x</ span >
402+ < span class ="cline-any cline-yes "> 5x</ span >
403+ < span class ="cline-any cline-yes "> 5x</ span >
404+ < span class ="cline-any cline-yes "> 5x</ span >
405+ < span class ="cline-any cline-yes "> 5x</ span >
406+ < span class ="cline-any cline-yes "> 3x</ span >
407+ < span class ="cline-any cline-yes "> 3x</ span >
408+ < span class ="cline-any cline-yes "> 3x</ span >
409+ < span class ="cline-any cline-yes "> 5x</ span >
410+ < span class ="cline-any cline-yes "> 5x</ span >
371411< span class ="cline-any cline-yes "> 7x</ span >
372412< span class ="cline-any cline-yes "> 7x</ span >
373413< span class ="cline-any cline-yes "> 7x</ span >
@@ -387,6 +427,15 @@ <h1><a href="index.html">All files</a> CssChain.js</h1>
387427< span class ="cline-any cline-yes "> 5x</ span >
388428< span class ="cline-any cline-yes "> 5x</ span >
389429< span class ="cline-any cline-yes "> 7x</ span >
430+ < span class ="cline-any cline-yes "> 1x</ span >
431+ < span class ="cline-any cline-yes "> 1x</ span >
432+ < span class ="cline-any cline-yes "> 1x</ span >
433+ < span class ="cline-any cline-yes "> 1x</ span >
434+ < span class ="cline-any cline-yes "> 1x</ span >
435+ < span class ="cline-any cline-yes "> 1x</ span >
436+ < span class ="cline-any cline-yes "> 1x</ span >
437+ < span class ="cline-any cline-yes "> 1x</ span >
438+ < span class ="cline-any cline-yes "> 1x</ span >
390439< span class ="cline-any cline-yes "> 7x</ span >
391440< span class ="cline-any cline-yes "> 7x</ span >
392441< span class ="cline-any cline-yes "> 7x</ span >
@@ -420,19 +469,19 @@ <h1><a href="index.html">All files</a> CssChain.js</h1>
420469< span class ="cline-any cline-yes "> 4x</ span >
421470< span class ="cline-any cline-yes "> 4x</ span >
422471< span class ="cline-any cline-yes "> 4x</ span >
423- < span class ="cline-any cline-yes "> 2x </ span >
424- < span class ="cline-any cline-yes "> 2x </ span >
425- < span class ="cline-any cline-yes "> 2x </ span >
426- < span class ="cline-any cline-yes "> 2x </ span >
472+ < span class ="cline-any cline-yes "> 3x </ span >
473+ < span class ="cline-any cline-yes "> 3x </ span >
474+ < span class ="cline-any cline-yes "> 3x </ span >
475+ < span class ="cline-any cline-yes "> 3x </ span >
427476< span class ="cline-any cline-yes "> 4x</ span >
428477< span class ="cline-any cline-yes "> 4x</ span >
429478< span class ="cline-any cline-yes "> 4x</ span >
430479< span class ="cline-any cline-yes "> 4x</ span >
431480< span class ="cline-any cline-yes "> 4x</ span >
432- < span class ="cline-any cline-yes "> 2x </ span >
433- < span class ="cline-any cline-yes "> 2x </ span >
434- < span class ="cline-any cline-yes "> 2x </ span >
435- < span class ="cline-any cline-yes "> 2x </ span >
481+ < span class ="cline-any cline-yes "> 3x </ span >
482+ < span class ="cline-any cline-yes "> 3x </ span >
483+ < span class ="cline-any cline-yes "> 3x </ span >
484+ < span class ="cline-any cline-yes "> 3x </ span >
436485< span class ="cline-any cline-yes "> 4x</ span >
437486< span class ="cline-any cline-yes "> 4x</ span >
438487< span class ="cline-any cline-yes "> 4x</ span >
@@ -464,14 +513,35 @@ <h1><a href="index.html">All files</a> CssChain.js</h1>
464513< span class ="cline-any cline-yes "> 1x</ span >
465514< span class ="cline-any cline-yes "> 1x</ span >
466515< span class ="cline-any cline-yes "> 1x</ span >
516+ < span class ="cline-any cline-yes "> 1x</ span >
517+ < span class ="cline-any cline-yes "> 1x</ span >
518+ < span class ="cline-any cline-yes "> 1x</ span >
519+ < span class ="cline-any cline-yes "> 1x</ span >
520+ < span class ="cline-any cline-yes "> 1x</ span >
521+ < span class ="cline-any cline-yes "> 1x</ span >
522+ < span class ="cline-any cline-yes "> 1x</ span >
523+ < span class ="cline-any cline-yes "> 1x</ span >
524+ < span class ="cline-any cline-yes "> 1x</ span >
525+ < span class ="cline-any cline-yes "> 1x</ span >
526+ < span class ="cline-any cline-yes "> 1x</ span >
527+ < span class ="cline-any cline-yes "> 1x</ span >
528+ < span class ="cline-any cline-yes "> 1x</ span >
529+ < span class ="cline-any cline-yes "> 1x</ span >
530+ < span class ="cline-any cline-yes "> 1x</ span >
531+ < span class ="cline-any cline-yes "> 1x</ span >
532+ < span class ="cline-any cline-yes "> 1x</ span >
533+ < span class ="cline-any cline-yes "> 1x</ span >
534+ < span class ="cline-any cline-yes "> 1x</ span >
535+ < span class ="cline-any cline-yes "> 1x</ span >
536+ < span class ="cline-any cline-yes "> 1x</ span >
467537< span class ="cline-any cline-yes "> 7x</ span >
468538< span class ="cline-any cline-yes "> 7x</ span >
469539< span class ="cline-any cline-yes "> 7x</ span >
470540< span class ="cline-any cline-yes "> 7x</ span >
471541< span class ="cline-any cline-yes "> 7x</ span >
472542< span class ="cline-any cline-yes "> 7x</ span >
473- < span class ="cline-any cline-yes "> 7x </ span >
474- < span class ="cline-any cline-yes "> 7x </ span >
543+ < span class ="cline-any cline-yes "> 5x </ span >
544+ < span class ="cline-any cline-yes "> 5x </ span >
475545< span class ="cline-any cline-yes "> 7x</ span >
476546< span class ="cline-any cline-yes "> 7x</ span >
477547< span class ="cline-any cline-yes "> 7x</ span >
@@ -499,27 +569,27 @@ <h1><a href="index.html">All files</a> CssChain.js</h1>
499569< span class ="cline-any cline-yes "> 7x</ span >
500570< span class ="cline-any cline-yes "> 7x</ span >
501571< span class ="cline-any cline-yes "> 7x</ span >
502- < span class ="cline-any cline-yes "> 2x</ span >
503- < span class ="cline-any cline-yes "> 2x</ span >
504- < span class ="cline-any cline-yes "> 2x</ span >
505- < span class ="cline-any cline-yes "> 2x</ span >
506- < span class ="cline-any cline-yes "> 2x</ span >
507- < span class ="cline-any cline-yes "> 2x</ span >
508- < span class ="cline-any cline-yes "> 2x</ span >
509- < span class ="cline-any cline-yes "> 2x</ span >
510- < span class ="cline-any cline-yes "> 2x</ span >
511- < span class ="cline-any cline-yes "> 2x</ span >
512- < span class ="cline-any cline-yes "> 2x</ span >
513- < span class ="cline-any cline-yes "> 2x</ span >
514- < span class ="cline-any cline-yes "> 2x</ span >
515- < span class ="cline-any cline-yes "> 2x</ span >
516- < span class ="cline-any cline-yes "> 2x</ span >
517- < span class ="cline-any cline-yes "> 2x</ span >
518- < span class ="cline-any cline-yes "> 2x</ span >
519- < span class ="cline-any cline-yes "> 2x</ span >
520572< span class ="cline-any cline-yes "> 1x</ span >
521573< span class ="cline-any cline-yes "> 1x</ span >
522- < span class ="cline-any cline-yes "> 2x</ span >
574+ < span class ="cline-any cline-yes "> 1x</ span >
575+ < span class ="cline-any cline-yes "> 1x</ span >
576+ < span class ="cline-any cline-yes "> 1x</ span >
577+ < span class ="cline-any cline-yes "> 1x</ span >
578+ < span class ="cline-any cline-yes "> 1x</ span >
579+ < span class ="cline-any cline-yes "> 1x</ span >
580+ < span class ="cline-any cline-yes "> 1x</ span >
581+ < span class ="cline-any cline-yes "> 1x</ span >
582+ < span class ="cline-any cline-yes "> 1x</ span >
583+ < span class ="cline-any cline-yes "> 1x</ span >
584+ < span class ="cline-any cline-yes "> 1x</ span >
585+ < span class ="cline-any cline-yes "> 1x</ span >
586+ < span class ="cline-any cline-yes "> 1x</ span >
587+ < span class ="cline-any cline-yes "> 1x</ span >
588+ < span class ="cline-any cline-yes "> 1x</ span >
589+ < span class ="cline-any cline-yes "> 1x</ span >
590+ < span class ="cline-any cline-yes "> 1x</ span >
591+ < span class ="cline-any cline-yes "> 1x</ span >
592+ < span class ="cline-any cline-yes "> 1x</ span >
523593< span class ="cline-any cline-yes "> 7x</ span >
524594< span class ="cline-any cline-yes "> 7x</ span >
525595< span class ="cline-any cline-yes "> 7x</ span >
@@ -615,8 +685,13 @@ <h1><a href="index.html">All files</a> CssChain.js</h1>
615685 ).join('');
616686
617687export const html2NodeArr = html =>
618- { const n = createEl('div');
619- n.innerHTML = html;
688+ { let n = createEl('div');
689+ if( isNode(html) )
690+ n.append( html.cloneNode(true) );
691+ else if( isArr(html) )
692+ each(html, e=> each( html2NodeArr(e), i=> n.appendChild(i)) )
693+ else
694+ n.innerHTML = html;
620695 const wrapIfText = e=>{
621696 if( e.nodeType !== 3 )
622697 return e;
@@ -644,6 +719,15 @@ <h1><a href="index.html">All files</a> CssChain.js</h1>
644719 : append(val);
645720}
646721export const setNodeHtml = ( n, val ) => { clear(n); addNodeHtml(n,val) };
722+ function assignedNodesLight(f)
723+ { if(f?.flatten)
724+ { const r = [];
725+ const flatten = n=> n.CssChainAssignedNodes ? each(n.CssChainAssignedNodes,flatten): r.push(n);
726+ each(this.CssChainAssignedNodes, flatten );
727+ return r;
728+ }
729+ return this.CssChainAssignedNodes;
730+ }
647731
648732 class
649733CssChainT extends Array
@@ -712,13 +796,34 @@ <h1><a href="index.html">All files</a> CssChain.js</h1>
712796 { n = this.$( n );
713797 n.remove();
714798 }
715- const c = CssChain( n.content ? n.content.childNodes : n ).clone(this);
799+ n = n.cloneNode(true);
800+ const content = n.content ? n.content.childNodes : n;
801+ const c = CssChain( content );
716802 c.slots().forEach( s =>
717803 { const v = this.children.filter( n=>n.slot===s.name );
718- v.length && setNodeHtml(s,v)
804+ const p = s.parentNode;
805+ s.CssChainAssignedNodes = [];
806+ s.assignedNodes = s.assignedElements = assignedNodesLight;
807+ const insert = (n,r)=>
808+ { const k = p.insertBefore( n, r);
809+ n.CssChainAssignedSlot || s.CssChainAssignedNodes.push(n);
810+ n.CssChainAssignedSlot = s;
811+ return k;
812+ };
813+ each(v, e=>e.cssChainSlot = s);
814+ const injectInSlot = (e,s)=>
815+ { if( e.tagName === 'SLOT' )
816+ { const q = e.parentNode;
817+ const r = insert(e,s);
818+ each( q.querySelectorAll(`[slot="${e.name}"]`), n=> p.insertBefore( n, r) );
819+ }else
820+ insert(e,s);
821+ }
822+ each( v, e=>injectInSlot( e, s) )
823+ if( v.length ) s.hidden=true;
719824 });
720- this.children.remove();
721- this.append(c );
825+ this.children.filter(e=>!e.cssChainSlot). remove();
826+ this.append( CssChain( html2NodeArr('<light-dom></light-dom>') ).append(content) );
722827 return this;
723828 }
724829 get innerText(){ return this.txt() }
@@ -835,7 +940,7 @@ <h1><a href="index.html">All files</a> CssChain.js</h1>
835940 < div class ='footer quiet pad2 space-top1 center small '>
836941 Code coverage generated by
837942 < a href ="https://istanbul.js.org/ " target ="_blank "> istanbul</ a >
838- at Thu May 12 2022 21:31:35 GMT-0700 (Pacific Daylight Time)
943+ at Sat Jun 04 2022 00:17:19 GMT-0700 (Pacific Daylight Time)
839944 </ div >
840945 </ div >
841946 < script src ="prettify.js "> </ script >
0 commit comments