Skip to content

Commit 8906226

Browse files
committed
1.1.7
1 parent 3c83588 commit 8906226

24 files changed

+1130
-884
lines changed

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Collection API inherits the element API and Array.
66
[![NPM version][npm-image]][npm-url] [![coverage][coverage-image]][coverage-url]
77

88
## Live demo
9-
https://unpkg.com/[email protected].5/dist/demo.html
9+
https://unpkg.com/[email protected].7/dist/demo.html
1010

1111
# [CssChain](https://github.com/sashafirsov/css-chain/blob/main/CssChain.js)
1212
## html elements methods
@@ -132,7 +132,7 @@ If you customize the configuration a lot, you can consider moving them to indivi
132132

133133
[npm-image]: https://img.shields.io/npm/v/css-chain.svg
134134
[npm-url]: https://npmjs.org/package/css-chain-test
135-
[coverage-image]: https://unpkg.com/[email protected].5/coverage/coverage.svg
136-
[coverage-url]: https://unpkg.com/[email protected].5/coverage/lcov-report/index.html
137-
[PokeApi-explorer-image]: https://unpkg.com/[email protected].5/src/PokeApi-Explorer.png
138-
[PokeApi-explorer-url]: https://unpkg.com/[email protected].5/dist/PokeApi-Explorer.html
135+
[coverage-image]: https://unpkg.com/[email protected].7/coverage/coverage.svg
136+
[coverage-url]: https://unpkg.com/[email protected].7/coverage/lcov-report/index.html
137+
[PokeApi-explorer-image]: https://unpkg.com/[email protected].7/src/PokeApi-Explorer.png
138+
[PokeApi-explorer-url]: https://unpkg.com/[email protected].7/dist/PokeApi-Explorer.html

coverage/lcov-report/ApiChain.js.html

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -140,16 +140,16 @@ <h1><a href="index.html">All files</a> ApiChain.js</h1>
140140
<span class="cline-any cline-yes">8x</span>
141141
<span class="cline-any cline-yes">8x</span>
142142
<span class="cline-any cline-yes">8x</span>
143-
<span class="cline-any cline-yes">5x</span>
144-
<span class="cline-any cline-yes">5x</span>
143+
<span class="cline-any cline-yes">6x</span>
144+
<span class="cline-any cline-yes">6x</span>
145145
<span class="cline-any cline-yes">2x</span>
146146
<span class="cline-any cline-yes">2x</span>
147147
<span class="cline-any cline-yes">2x</span>
148148
<span class="cline-any cline-yes">2x</span>
149149
<span class="cline-any cline-yes">2x</span>
150-
<span class="cline-any cline-yes">5x</span>
151-
<span class="cline-any cline-yes">5x</span>
152-
<span class="cline-any cline-yes">5x</span>
150+
<span class="cline-any cline-yes">6x</span>
151+
<span class="cline-any cline-yes">6x</span>
152+
<span class="cline-any cline-yes">6x</span>
153153
<span class="cline-any cline-yes">8x</span>
154154
<span class="cline-any cline-yes">8x</span>
155155
<span class="cline-any cline-yes">8x</span>
@@ -289,7 +289,7 @@ <h1><a href="index.html">All files</a> ApiChain.js</h1>
289289
<div class='footer quiet pad2 space-top1 center small'>
290290
Code coverage generated by
291291
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
292-
at Thu May 12 2022 21:31:35 GMT-0700 (Pacific Daylight Time)
292+
at Sat Jun 04 2022 00:17:19 GMT-0700 (Pacific Daylight Time)
293293
</div>
294294
</div>
295295
<script src="prettify.js"></script>

coverage/lcov-report/CssChain.js.html

Lines changed: 158 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -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
&nbsp;
617687
export const html2NodeArr = html =&gt;
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=&gt; each( html2NodeArr(e), i=&gt; n.appendChild(i)) )
693+
else
694+
n.innerHTML = html;
620695
const wrapIfText = e=&gt;{
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
}
646721
export const setNodeHtml = ( n, val ) =&gt; { clear(n); addNodeHtml(n,val) };
722+
function assignedNodesLight(f)
723+
{ if(f?.flatten)
724+
{ const r = [];
725+
const flatten = n=&gt; n.CssChainAssignedNodes ? each(n.CssChainAssignedNodes,flatten): r.push(n);
726+
each(this.CssChainAssignedNodes, flatten );
727+
return r;
728+
}
729+
return this.CssChainAssignedNodes;
730+
}
647731
&nbsp;
648732
class
649733
CssChainT 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 =&gt;
717803
{ const v = this.children.filter( n=&gt;n.slot===s.name );
718-
v.length &amp;&amp; setNodeHtml(s,v)
804+
const p = s.parentNode;
805+
s.CssChainAssignedNodes = [];
806+
s.assignedNodes = s.assignedElements = assignedNodesLight;
807+
const insert = (n,r)=&gt;
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=&gt;e.cssChainSlot = s);
814+
const injectInSlot = (e,s)=&gt;
815+
{ if( e.tagName === 'SLOT' )
816+
{ const q = e.parentNode;
817+
const r = insert(e,s);
818+
each( q.querySelectorAll(`[slot="${e.name}"]`), n=&gt; p.insertBefore( n, r) );
819+
}else
820+
insert(e,s);
821+
}
822+
each( v, e=&gt;injectInSlot( e, s) )
823+
if( v.length ) s.hidden=true;
719824
});
720-
this.children.remove();
721-
this.append(c);
825+
this.children.filter(e=&gt;!e.cssChainSlot).remove();
826+
this.append( CssChain( html2NodeArr('&lt;light-dom&gt;&lt;/light-dom&gt;') ).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>

coverage/lcov-report/CssChainElement.js.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ <h1><a href="index.html">All files</a> CssChainElement.js</h1>
166166
<div class='footer quiet pad2 space-top1 center small'>
167167
Code coverage generated by
168168
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
169-
at Thu May 12 2022 21:31:35 GMT-0700 (Pacific Daylight Time)
169+
at Sat Jun 04 2022 00:17:19 GMT-0700 (Pacific Daylight Time)
170170
</div>
171171
</div>
172172
<script src="prettify.js"></script>

coverage/lcov-report/css-chain-element.js.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ <h1><a href="index.html">All files</a> css-chain-element.js</h1>
7979
<div class='footer quiet pad2 space-top1 center small'>
8080
Code coverage generated by
8181
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
82-
at Thu May 12 2022 21:31:35 GMT-0700 (Pacific Daylight Time)
82+
at Sat Jun 04 2022 00:17:19 GMT-0700 (Pacific Daylight Time)
8383
</div>
8484
</div>
8585
<script src="prettify.js"></script>

0 commit comments

Comments
 (0)