@@ -258,16 +258,17 @@ function apply_custom_class(element, className) {
258
258
value : class_value . substring ( 1 , class_value . length - 1 ) ,
259
259
} ) ;
260
260
}
261
- element . className = element . className . replace ( className , '' ) . trim ( ) ;
261
+ const original_class = className ;
262
+ // element.className = element.className.replace(className, '').trim();
262
263
// console.log({classes_to_apply})
263
264
264
265
// console.log({ selectors, classes_to_apply, events, media_query });
265
266
266
- do_apply ( element , selectors , classes_to_apply , events , media_query ) ;
267
+ do_apply ( element , selectors , classes_to_apply , events , media_query , original_class ) ;
267
268
}
268
269
}
269
270
270
- function do_apply ( element , selectors , classes , events , media_query ) {
271
+ function do_apply ( element , selectors , classes , events , media_query , original_class ) {
271
272
if ( media_query ) {
272
273
if ( '(' !== media_query [ 0 ] ) {
273
274
media_query = `(${ media_query } )` ;
@@ -353,14 +354,25 @@ function do_apply(element, selectors, classes, events, media_query) {
353
354
return ;
354
355
}
355
356
357
+ let to_remove_class = false ;
358
+
356
359
for ( let j = 0 ; j < elements_to_apply . length ; j ++ ) {
357
360
const element_to_apply = elements_to_apply [ j ] ;
358
361
if ( ! element_to_apply ) continue ;
359
362
for ( let k = 0 ; k < classes . length ; k ++ ) {
360
363
const { name, value } = classes [ k ] ;
364
+ if ( ! name ) continue ;
361
365
element_to_apply . style . setProperty ( name , value ) ;
366
+ if ( to_remove_class ) continue ;
367
+ if ( element . className . includes ( original_class ) ) {
368
+ to_remove_class = true ;
369
+ }
362
370
}
363
371
}
372
+
373
+ if ( to_remove_class ) {
374
+ element . className = element . className . replace ( original_class , '' ) ;
375
+ }
364
376
}
365
377
366
378
function init ( document , event = undefined ) {
0 commit comments