@@ -74,7 +74,6 @@ class SfTimePicker {
7474 this . timeCollections = [ ] ;
7575 this . listWrapper = popupHolderEle . querySelector ( '.' + POPUP_CONTENT ) as HTMLElement || select ( '.' + POPUP_CONTENT ) as HTMLElement ;
7676 this . getTimeCollection ( ) ;
77- this . wireListEvents ( ) ;
7877 if ( ! isNullOrUndefined ( ( this . element as HTMLInputElement ) . value ) ) {
7978 this . removeSelection ( ) ;
8079 this . selectedElement = this . listWrapper . querySelector (
@@ -115,17 +114,6 @@ class SfTimePicker {
115114 selectElement . setAttribute ( ARIA_SELECT , 'true' ) ;
116115 }
117116 }
118- public updateListStatus ( index : number , status : string ) : void {
119- if ( ! isNullOrUndefined ( this . listWrapper ) && ! isNullOrUndefined ( index ) ) {
120- this . selectedElement = this . listWrapper . querySelectorAll ( '.' + LISTCLASS ) [ index ] as HTMLElement ;
121- if ( status === SELECT ) {
122- this . removeSelection ( ) ;
123- this . updateSelection ( this . selectedElement ) ;
124- }
125- this . setHover ( this . selectedElement , NAVIGATION ) ;
126- this . setScrollPosition ( ) ;
127- }
128- }
129117 private setScrollPosition ( ) : void {
130118 if ( ! isNullOrUndefined ( this . selectedElement ) ) {
131119 this . findScrollTop ( this . selectedElement ) ;
@@ -205,7 +193,6 @@ class SfTimePicker {
205193 open : ( ) => {
206194 this . popupWrapper . style . visibility = 'visible' ;
207195 } , close : ( ) => {
208- this . unWireListEvents ( ) ;
209196 this . popupHolder . appendChild ( this . popupWrapper ) ;
210197 if ( this . popupObj ) {
211198 this . popupObj . destroy ( ) ;
@@ -226,38 +213,6 @@ class SfTimePicker {
226213 removeClass ( [ document . body ] , OVERFLOW ) ;
227214 this . closeEventCallback ( closeEventArgs ) ;
228215 }
229- private wireListEvents ( ) : void {
230- EventHandler . add ( this . listWrapper , 'click' , this . onMouseClick , this ) ;
231- if ( ! Browser . isDevice ) {
232- EventHandler . add ( this . listWrapper , 'mouseover' , this . onMouseOver , this ) ;
233- EventHandler . add ( this . listWrapper , 'mouseout' , this . onMouseLeave , this ) ;
234- }
235- }
236- private onMouseClick ( event : MouseEvent ) : void {
237- let target : Element = < Element > event . target ;
238- let li : HTMLElement = this . selectedElement = < HTMLElement > closest ( target , '.' + LISTCLASS ) ;
239- let dataVal : string = li . getAttribute ( 'data-value' ) ;
240- if ( this . isValidLI ( li ) && ! li . classList . contains ( SELECTED ) ) {
241- this . removeSelection ( ) ;
242- this . updateSelection ( this . selectedElement ) ;
243- this . dotNetRef . invokeMethodAsync ( LIST_CLICK , dataVal , event ) ;
244- } else {
245- this . dotNetRef . invokeMethodAsync ( HIDE_POPUP , event ) ;
246- }
247- }
248- private onMouseOver ( event : MouseEvent ) : void {
249- let currentLi : HTMLElement = < HTMLElement > closest ( < Element > event . target , '.' + LISTCLASS ) ;
250- this . setHover ( currentLi , HOVER ) ;
251- }
252- private setHover ( li : HTMLElement , className : string ) : void {
253- if ( this . isValidLI ( li ) && ! li . classList . contains ( className ) ) {
254- this . removeHover ( className ) ;
255- addClass ( [ li ] , className ) ;
256- if ( className === NAVIGATION ) {
257- li . setAttribute ( ARIA_SELECT , 'true' ) ;
258- }
259- }
260- }
261216 private removeSelection ( ) : void {
262217 this . removeHover ( HOVER ) ;
263218 if ( ! isNullOrUndefined ( this . popupWrapper ) ) {
@@ -278,21 +233,6 @@ class SfTimePicker {
278233 }
279234 }
280235 }
281- private isValidLI ( li : Element | HTMLElement ) : boolean {
282- return ( li && li . classList . contains ( LISTCLASS ) && ! li . classList . contains ( DISABLED ) ) ;
283- }
284- private onMouseLeave ( ) : void {
285- this . removeHover ( HOVER ) ;
286- }
287- private unWireListEvents ( ) : void {
288- if ( this . listWrapper ) {
289- EventHandler . remove ( this . listWrapper , 'click' , this . onMouseClick ) ;
290- if ( ! Browser . isDevice ) {
291- EventHandler . remove ( this . listWrapper , 'mouseover' , this . onMouseOver ) ;
292- EventHandler . remove ( this . listWrapper , 'mouseout' , this . onMouseLeave ) ;
293- }
294- }
295- }
296236 private setWidth ( width : number | string ) : string {
297237 if ( typeof width === 'number' ) {
298238 width = formatUnit ( width ) ;
@@ -359,9 +299,13 @@ class SfTimePicker {
359299 popupWrapper . style . zIndex = index . toString ( ) ;
360300 }
361301 }
362- public selectInputText ( element : BlazorTimePickerElement | HTMLInputElement ) : void {
302+ public selectInputText ( element : BlazorTimePickerElement | HTMLInputElement , isNavigation : boolean , index : number ) : void {
363303 if ( ! Browser . isDevice ) {
364304 ( element as HTMLInputElement ) . setSelectionRange ( 0 , ( element as HTMLInputElement ) . value . length ) ;
305+ if ( isNavigation && this . listWrapper ) {
306+ this . selectedElement = this . listWrapper . querySelectorAll ( '.' + LISTCLASS ) [ index ] as HTMLElement ;
307+ this . setScrollPosition ( ) ;
308+ }
365309 }
366310 }
367311 public isDevice ( ) : Boolean {
@@ -406,14 +350,9 @@ let TimePicker: object = {
406350 element . blazor__instance . closePopup ( closeEventArgs , options ) ;
407351 }
408352 } ,
409- selectInputText ( element : BlazorTimePickerElement ) : void {
410- if ( element && element . blazor__instance ) {
411- element . blazor__instance . selectInputText ( element ) ;
412- }
413- } ,
414- updateListStatus ( element : BlazorTimePickerElement , index : number , status : string ) : void {
353+ selectInputText ( element : BlazorTimePickerElement , isNavigation : boolean , index : number ) : void {
415354 if ( element && element . blazor__instance ) {
416- element . blazor__instance . updateListStatus ( index , status ) ;
355+ element . blazor__instance . selectInputText ( element , isNavigation , index ) ;
417356 }
418357 } ,
419358 focusIn ( inputEle : HTMLInputElement ) : void {
0 commit comments