@@ -89,11 +89,11 @@ export default class GroundControl extends HTMLElement {
8989 get usedValue ( ) { return this . value || this . dataset . off ; }
9090
9191 set inputId ( value ) {
92- this . #inputId = value ;
92+ if ( this . #inputId) { this . #removeResetListener ( ) ; }
9393
94- this . #removeResetListener ( ) ;
94+ this . #inputId = value ;
9595 this . #related. resets = this . #findAll(
96- `button[data-reset~=${ value } ]`
96+ `button:is( [data-reset~=${ value } ], [data-reset="*"]) `
9797 ) ;
9898 this . #addResetListener( ) ;
9999
@@ -131,7 +131,7 @@ export default class GroundControl extends HTMLElement {
131131 onValueChange ;
132132 onEventChange ;
133133
134- onReset = ( ) => {
134+ reSet = ( ) => {
135135 this . value = this . initialValue ;
136136 } ;
137137
@@ -182,15 +182,27 @@ export default class GroundControl extends HTMLElement {
182182
183183 #addResetListener = ( ) => {
184184 this . #related. resets . forEach ( ( resetBtn ) => {
185- resetBtn . addEventListener ( 'click' , this . onReset ) ;
185+ resetBtn . resetTargets = [
186+ ...( resetBtn . resetTargets || [ ] ) ,
187+ this
188+ ] ;
189+
190+ if ( ! resetBtn . resetListener ) {
191+ resetBtn . resetListener = ( ) => {
192+ resetBtn . resetTargets . forEach ( ( target ) => { target . reSet ( ) ; } ) ;
193+ }
194+ resetBtn . addEventListener ( 'click' , resetBtn . resetListener ) ;
195+ }
186196 } ) ;
187197 } ;
188198
189199 #removeResetListener = ( ) => {
190- if ( ! this . #related. resets ) { return ; }
200+ this . #related. resets ?. forEach ( ( resetBtn ) => {
201+ resetBtn . resetTargets . filter ( ( target ) => target !== this ) ;
191202
192- this . #related. resets . forEach ( ( resetBtn ) => {
193- resetBtn . removeEventListener ( 'click' , this . onReset ) ;
203+ if ( resetBtn . resetTargets . length === 0 ) {
204+ resetBtn . removeEventListener ( 'click' , resetBtn . resetListener ) ;
205+ }
194206 } ) ;
195207 } ;
196208}
0 commit comments