@@ -258,16 +258,17 @@ function apply_custom_class(element, className) {
258258 value : class_value . substring ( 1 , class_value . length - 1 ) ,
259259 } ) ;
260260 }
261- element . className = element . className . replace ( className , '' ) . trim ( ) ;
261+ const original_class = className ;
262+ // element.className = element.className.replace(className, '').trim();
262263 // console.log({classes_to_apply})
263264
264265 // console.log({ selectors, classes_to_apply, events, media_query });
265266
266- do_apply ( element , selectors , classes_to_apply , events , media_query ) ;
267+ do_apply ( element , selectors , classes_to_apply , events , media_query , original_class ) ;
267268 }
268269}
269270
270- function do_apply ( element , selectors , classes , events , media_query ) {
271+ function do_apply ( element , selectors , classes , events , media_query , original_class ) {
271272 if ( media_query ) {
272273 if ( '(' !== media_query [ 0 ] ) {
273274 media_query = `(${ media_query } )` ;
@@ -353,14 +354,25 @@ function do_apply(element, selectors, classes, events, media_query) {
353354 return ;
354355 }
355356
357+ let to_remove_class = false ;
358+
356359 for ( let j = 0 ; j < elements_to_apply . length ; j ++ ) {
357360 const element_to_apply = elements_to_apply [ j ] ;
358361 if ( ! element_to_apply ) continue ;
359362 for ( let k = 0 ; k < classes . length ; k ++ ) {
360363 const { name, value } = classes [ k ] ;
364+ if ( ! name ) continue ;
361365 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+ }
362370 }
363371 }
372+
373+ if ( to_remove_class ) {
374+ element . className = element . className . replace ( original_class , '' ) ;
375+ }
364376}
365377
366378function init ( document , event = undefined ) {
0 commit comments