@@ -42,6 +42,7 @@ export class SliderButtonCard extends LitElement implements LovelaceCard {
4242 @query ( '.button' ) button ;
4343 @query ( '.action' ) action ;
4444 @query ( '.slider' ) slider ;
45+ @query ( '.type-custom-slider-button-card' ) card ;
4546 private changing = false ;
4647 private changed = false ;
4748 private ctrl ! : Controller ;
@@ -148,9 +149,9 @@ export class SliderButtonCard extends LitElement implements LovelaceCard {
148149 <ha- card
149150 tabindex= "0"
150151 .label = ${ `SliderButton: ${ this . config . entity || 'No Entity Defined' } ` }
151- class= "${ classMap ( { 'square' : this . config . slider ?. force_square || false , 'hide-name' : ! this . config . show_name , 'hide-state' : ! this . config . show_state , 'hide-action' : ! this . config . action_button ?. show , 'compact' : this . config . compact === true } ) } "
152+ class= "${ classMap ( { 'square' : this . config . slider ?. force_square || false , 'hide-name' : ! this . config . show_name , 'hide-state' : ! this . config . show_state , 'hide-action' : ! this . config . action_button ?. show , 'compact' : this . config . compact === true , 'locked' : this . locked } ) } "
152153 >
153- <div class= "button ${ classMap ( { off : this . ctrl . isOff , unavailable : this . ctrl . isUnavailable , 'locked' : this . locked } ) } "
154+ <div class= "button ${ classMap ( { off : this . ctrl . isOff , unavailable : this . ctrl . isUnavailable } ) } "
154155 data-lock-layout = "${ this . config . slider ?. lock ?. layout || LockLayout . CORNER } "
155156 style = ${ styleMap ( {
156157 '--slider-value' : `${ this . ctrl . percentage } %` ,
@@ -314,13 +315,13 @@ export class SliderButtonCard extends LitElement implements LovelaceCard {
314315 private lockCard ( ) : void {
315316 clearTimeout ( this . lockTimeout ) ;
316317 this . locked = true ;
317- this . button . classList . add ( 'locked' ) ;
318+ this . card . classList . add ( 'locked' ) ;
318319 }
319320
320321 private unlockCard ( ) : void {
321322 clearTimeout ( this . lockTimeout ) ;
322323 this . locked = false ;
323- this . button . classList . remove ( 'locked' ) ;
324+ this . card . classList . remove ( 'locked' ) ;
324325 this . lockTimeout = setTimeout ( ( ) => {
325326 this . lockCard ( ) ;
326327 } , ( this . config . slider ?. lock ?. duration || 5 ) * 1000 )
@@ -419,8 +420,8 @@ export class SliderButtonCard extends LitElement implements LovelaceCard {
419420 }
420421
421422 private onPointerDown ( event : PointerEvent ) : void {
422- /* event.preventDefault();*/
423- /* event.stopPropagation();*/
423+ event . preventDefault ( ) ;
424+ event . stopPropagation ( ) ;
424425 if ( this . ctrl . isSliderDisabled ) {
425426 return ;
426427 }
@@ -474,7 +475,10 @@ export class SliderButtonCard extends LitElement implements LovelaceCard {
474475 }
475476 ha-card .compact {
476477 min-height : 3rem !important ;
477- }
478+ }
479+ ha-card .locked {
480+ touch-action : auto;
481+ }
478482 : host {
479483 - - slider- bg- default- color : var(--primary-color , rgb (95, 124, 171));
480484 - - slider- bg: var(- - slider- color );
@@ -519,7 +523,10 @@ export class SliderButtonCard extends LitElement implements LovelaceCard {
519523 .button .off {
520524 background-color : var (--btn-bg-color-off );
521525 }
522-
526+ ha-card .locked .button {
527+ touch-action : auto;
528+ }
529+
523530 /* --- ICON --- */
524531
525532 .icon {
@@ -638,14 +645,11 @@ export class SliderButtonCard extends LitElement implements LovelaceCard {
638645 background-color : var ( --ha-card-background , var (--card-background-color , var (--btn-bg-color-on , black)) );
639646 cursor : ew-resize;
640647 z-index : 0 ;
641- /*touch-action: pan-x;*/
642648 }
643649 .slider [data-mode = "bottom-top" ] {
644- /*touch-action: pan-y;*/
645- cursor : ns-resize;
650+ cursor : ns-resize;
646651 }
647652 .slider [data-mode = "top-bottom" ] {
648- /*touch-action: pan-y;*/
649653 cursor : ns-resize;
650654 }
651655 .slider : active {
@@ -683,6 +687,15 @@ export class SliderButtonCard extends LitElement implements LovelaceCard {
683687 [data-lock-layout = "corner" ] .lock-overlay ha-icon {
684688 margin : 0.4rem ;
685689 }
690+ .compact [data-lock-layout = "corner" ] .lock-overlay ha-icon {
691+ margin : 0 ;
692+ bottom : unset;
693+ top : 1.2rem ;
694+ right : 3.2rem ;
695+ }
696+ .compact .hide-action [data-lock-layout = "corner" ] .lock-overlay ha-icon {
697+ right : 1.2rem ;
698+ }
686699 [data-lock-layout = "overlay" ] .lock-overlay ha-icon {
687700 --mdc-icon-size : 30px ;
688701 bottom : unset;
0 commit comments