@@ -269,6 +269,7 @@ function apply_custom_class(element, className) {
269
269
}
270
270
271
271
function do_apply ( element , selectors , classes , events , media_query , original_class ) {
272
+ // console.log({element,selectors,classes,original_class})
272
273
if ( media_query ) {
273
274
if ( '(' !== media_query [ 0 ] ) {
274
275
media_query = `(${ media_query } )` ;
@@ -288,7 +289,7 @@ function do_apply(element, selectors, classes, events, media_query, original_cla
288
289
for ( let j = 0 ; j < selectors . length ; j ++ ) {
289
290
const selector = selectors [ j ] ;
290
291
if ( typeof selector === 'object' ) {
291
- const { tag } = selector ;
292
+ const { tag, selectors : _selectors } = selector ;
292
293
if ( tag === 'lookout' ) {
293
294
let before_to_apply = [ ] ;
294
295
let after_to_apply = [ ] ;
@@ -318,13 +319,25 @@ function do_apply(element, selectors, classes, events, media_query, original_cla
318
319
}
319
320
}
320
321
}
321
- if ( '>' === tag && selector . selectors ) {
322
- const { selectors } = selector ;
322
+ // For each children within children of element matching selector
323
+ if ( '>' === tag && _selectors ) {
324
+ // console.log({tag, _selectors, children: element.children})
323
325
for ( let k = 0 ; k < element . children . length ; k ++ ) {
324
326
const child = element . children [ k ] ;
325
- do_apply ( child , selectors , classes , events , media_query ) ;
327
+ if ( ! child . matches ( _selectors ) ) continue ;
328
+ // if ('>' === tag) console.log({_selectors, child, classes})
329
+ do_apply ( child , null , classes , events , media_query ) ;
326
330
}
327
331
}
332
+ //
333
+ // Next sibling of element matching selector
334
+ if ( '+' === tag && _selectors ) {
335
+ const { selectors } = selector ;
336
+ const { nextElementSibling } = element ;
337
+ if ( ! nextElementSibling ) continue ;
338
+ if ( ! nextElementSibling . matches ( selectors ) ) continue ;
339
+ do_apply ( nextElementSibling , null , classes , events , media_query ) ;
340
+ }
328
341
continue ;
329
342
}
330
343
const elements = element . querySelectorAll ( selector ) ;
@@ -376,7 +389,7 @@ function do_apply(element, selectors, classes, events, media_query, original_cla
376
389
}
377
390
378
391
function init ( document , event = undefined ) {
379
- const tag_console = `init : ${ event ? `(${ event . type } )` : '' } ` ;
392
+ // const tag_console = `init : ${event ? `(${event.type})` : ''}`;
380
393
// console.time(tag_console);
381
394
// console.log(event?.type);
382
395
@@ -401,6 +414,13 @@ function init(document, event = undefined) {
401
414
402
415
// console.timeEnd(tag_console);
403
416
417
+ for ( let i = 0 ; i < elements . length ; i ++ ) {
418
+ const element = elements [ i ] ;
419
+ if ( 0 === element . className . length ) {
420
+ element . removeAttribute ( 'class' ) ;
421
+ }
422
+ }
423
+
404
424
document . documentElement . removeAttribute ( 'aria-busy' ) ;
405
425
}
406
426
0 commit comments