@@ -59,7 +59,7 @@ import { IgxTextSelectionModule } from '../directives/text-selection/text-select
5959import { IgxLabelDirective } from '../directives/label/label.directive' ;
6060import { PickerBaseDirective } from '../date-common/picker-base.directive' ;
6161import { DateTimeUtil } from '../date-common/util/date-time.util' ;
62- import { DatePart } from '../directives/date-time-editor/public_api' ;
62+ import { DatePart , DatePartDeltas } from '../directives/date-time-editor/public_api' ;
6363import { PickerHeaderOrientation } from '../date-common/types' ;
6464import { IgxPickersCommonModule , IgxPickerToggleComponent } from '../date-common/picker-icons.common' ;
6565import { TimeFormatPipe } from './time-picker.pipes' ;
@@ -471,7 +471,7 @@ export class IgxTimePickerComponent extends PickerBaseDirective
471471 private _resourceStrings = CurrentResourceStrings . TimePickerResStrings ;
472472 private _okButtonLabel = null ;
473473 private _cancelButtonLabel = null ;
474- private _itemsDelta : { hour : number ; minute : number ; second : number } = { hour : 1 , minute : 1 , second : 1 } ;
474+ private _itemsDelta : Pick < DatePartDeltas , 'hours' | 'minutes' | 'seconds' > = { hours : 1 , minutes : 1 , seconds : 1 } ;
475475
476476 private _hourItems = [ ] ;
477477 private _minuteItems = [ ] ;
@@ -614,11 +614,11 @@ export class IgxTimePickerComponent extends PickerBaseDirective
614614 * ```
615615 */
616616 @Input ( )
617- public set itemsDelta ( value ) {
618- this . _itemsDelta = { hour : 1 , minute : 1 , second : 1 , ... value } ;
617+ public set itemsDelta ( value : Pick < DatePartDeltas , 'hours' | 'minutes' | 'seconds' > ) {
618+ Object . assign ( this . _itemsDelta , value ) ;
619619 }
620620
621- public get itemsDelta ( ) : { hour : number ; minute : number ; second : number } {
621+ public get itemsDelta ( ) : Pick < DatePartDeltas , 'hours' | 'minutes' | 'seconds' > {
622622 return this . _itemsDelta ;
623623 }
624624
@@ -761,7 +761,6 @@ export class IgxTimePickerComponent extends PickerBaseDirective
761761 , settings ) ;
762762
763763 this . toggleRef . open ( overlaySettings ) ;
764- this . initializeContainer ( ) ;
765764 }
766765
767766 /**
@@ -949,7 +948,7 @@ export class IgxTimePickerComponent extends PickerBaseDirective
949948 const minHours = this . _minDropdownValue ?. getHours ( ) || 0 ;
950949 const maxHours = this . _maxDropdownValue ?. getHours ( ) || 24 ;
951950 const previousHours = previousDate . getHours ( ) ;
952- let hours = previousHours + delta * this . itemsDelta . hour ;
951+ let hours = previousHours + delta * this . itemsDelta . hours ;
953952 if ( ( previousHours === maxHours && delta > 0 ) || ( previousHours === minHours && delta < 0 ) ) {
954953 hours = ! this . spinLoop ? previousHours : delta > 0 ? minHours : maxHours ;
955954 }
@@ -981,7 +980,7 @@ export class IgxTimePickerComponent extends PickerBaseDirective
981980 if ( ( delta < 0 && minutes === min ) || ( delta > 0 && minutes === max ) ) {
982981 minutes = this . spinLoop && minutes === min ? max : this . spinLoop && minutes === max ? min : minutes ;
983982 } else {
984- minutes = minutes + delta * this . itemsDelta . minute ;
983+ minutes = minutes + delta * this . itemsDelta . minutes ;
985984 }
986985
987986 this . _selectedDate . setMinutes ( minutes ) ;
@@ -1004,7 +1003,7 @@ export class IgxTimePickerComponent extends PickerBaseDirective
10041003 if ( ( delta < 0 && seconds === min ) || ( delta > 0 && seconds === max ) ) {
10051004 seconds = this . spinLoop && seconds === min ? max : this . spinLoop && seconds === max ? min : seconds ;
10061005 } else {
1007- seconds = seconds + delta * this . itemsDelta . second ;
1006+ seconds = seconds + delta * this . itemsDelta . seconds ;
10081007 }
10091008
10101009 this . _selectedDate . setSeconds ( seconds ) ;
@@ -1108,10 +1107,10 @@ export class IgxTimePickerComponent extends PickerBaseDirective
11081107 const leadZeroMinute = ( item < 10 && this . inputFormat . indexOf ( 'mm' ) !== - 1 ) ;
11091108 const leadZeroSeconds = ( item < 10 && this . inputFormat . indexOf ( 'ss' ) !== - 1 ) ;
11101109
1111- const leadZero = {
1112- hour : leadZeroHour ,
1113- minute : leadZeroMinute ,
1114- second : leadZeroSeconds
1110+ const leadZero : Pick < DatePartDeltas , 'hours' | 'minutes' | 'seconds' > = {
1111+ hours : leadZeroHour ,
1112+ minutes : leadZeroMinute ,
1113+ seconds : leadZeroSeconds
11151114 } [ dateType ] ;
11161115
11171116 item = ( leadZero ) ? '0' + item : `${ item } ` ;
@@ -1122,13 +1121,13 @@ export class IgxTimePickerComponent extends PickerBaseDirective
11221121 private generateHours ( ) : void {
11231122 this . _hourItems = [ ] ;
11241123 let hoursCount = this . isTwelveHourFormat ? 13 : 24 ;
1125- hoursCount /= this . itemsDelta . hour ;
1124+ hoursCount /= this . itemsDelta . hours ;
11261125 const minHours = this . _minDropdownValue . getHours ( ) || 0 ;
11271126 const maxHours = this . _maxDropdownValue . getHours ( ) || 24 ;
11281127
11291128 if ( hoursCount > 1 ) {
11301129 for ( let hourIndex = 0 ; hourIndex < 24 ; hourIndex ++ ) {
1131- let hours = hourIndex * this . itemsDelta . hour ;
1130+ let hours = hourIndex * this . itemsDelta . hours ;
11321131 if ( hours >= minHours && hours <= maxHours ) {
11331132 hours = this . isTwelveHourFormat ? this . toTwelveHourFormat ( hours ) : hours ;
11341133 if ( ! this . _hourItems . find ( ( element => element === hours ) ) ) {
@@ -1150,7 +1149,7 @@ export class IgxTimePickerComponent extends PickerBaseDirective
11501149
11511150 private generateMinutes ( ) : void {
11521151 this . _minuteItems = [ ] ;
1153- const minuteItemsCount = 60 / this . itemsDelta . minute ;
1152+ const minuteItemsCount = 60 / this . itemsDelta . minutes ;
11541153 const min = new Date ( this . _minDropdownValue ) ;
11551154 const max = new Date ( this . _maxDropdownValue ) ;
11561155 const time = new Date ( this . _selectedDate ) ;
@@ -1161,7 +1160,7 @@ export class IgxTimePickerComponent extends PickerBaseDirective
11611160 }
11621161
11631162 for ( let i = 0 ; i < minuteItemsCount ; i ++ ) {
1164- const minutes = i * this . itemsDelta . minute ;
1163+ const minutes = i * this . itemsDelta . minutes ;
11651164 time . setMinutes ( minutes ) ;
11661165 if ( time >= min && time <= max ) {
11671166 this . _minuteItems . push ( minutes ) ;
@@ -1178,14 +1177,14 @@ export class IgxTimePickerComponent extends PickerBaseDirective
11781177
11791178 private generateSeconds ( ) : void {
11801179 this . _secondsItems = [ ] ;
1181- const secondsItemsCount = 60 / this . itemsDelta . second ;
1180+ const secondsItemsCount = 60 / this . itemsDelta . seconds ;
11821181 const time = new Date ( this . _selectedDate ) ;
11831182
11841183 for ( let i = 0 ; i < secondsItemsCount ; i ++ ) {
1185- const seconds = i * this . itemsDelta . second ;
1184+ const seconds = i * this . itemsDelta . seconds ;
11861185 time . setSeconds ( seconds ) ;
11871186 if ( time . getTime ( ) >= this . _minDropdownValue . getTime ( ) && time . getTime ( ) <= this . _maxDropdownValue . getTime ( ) ) {
1188- this . _secondsItems . push ( i * this . itemsDelta . second ) ;
1187+ this . _secondsItems . push ( i * this . itemsDelta . seconds ) ;
11891188 }
11901189 }
11911190
@@ -1369,14 +1368,14 @@ export class IgxTimePickerComponent extends PickerBaseDirective
13691368 const minutes = time . getMinutes ( ) ;
13701369 const seconds = time . getSeconds ( ) ;
13711370
1372- if ( this . showHoursList && hours % this . itemsDelta . hour > 0 ) {
1373- delta = value === 'min' ? this . itemsDelta . hour - hours % this . itemsDelta . hour : hours % this . itemsDelta . hour ;
1371+ if ( this . showHoursList && hours % this . itemsDelta . hours > 0 ) {
1372+ delta = value === 'min' ? this . itemsDelta . hours - hours % this . itemsDelta . hours : hours % this . itemsDelta . hours ;
13741373 time . setHours ( hours + sign * delta , 0 , 0 ) ;
1375- } else if ( this . showMinutesList && minutes % this . itemsDelta . minute > 0 ) {
1376- delta = value === 'min' ? this . itemsDelta . minute - minutes % this . itemsDelta . minute : minutes % this . itemsDelta . minute ;
1374+ } else if ( this . showMinutesList && minutes % this . itemsDelta . minutes > 0 ) {
1375+ delta = value === 'min' ? this . itemsDelta . minutes - minutes % this . itemsDelta . minutes : minutes % this . itemsDelta . minutes ;
13771376 time . setHours ( hours , minutes + sign * delta , 0 ) ;
1378- } else if ( this . showSecondsList && seconds % this . itemsDelta . second > 0 ) {
1379- delta = value === 'min' ? this . itemsDelta . second - seconds % this . itemsDelta . second : seconds % this . itemsDelta . second ;
1377+ } else if ( this . showSecondsList && seconds % this . itemsDelta . seconds > 0 ) {
1378+ delta = value === 'min' ? this . itemsDelta . seconds - seconds % this . itemsDelta . seconds : seconds % this . itemsDelta . seconds ;
13801379 time . setHours ( hours , minutes , seconds + sign * delta ) ;
13811380 }
13821381
@@ -1398,25 +1397,25 @@ export class IgxTimePickerComponent extends PickerBaseDirective
13981397 return ;
13991398 }
14001399
1401- if ( this . _selectedDate . getHours ( ) % this . itemsDelta . hour > 0 ) {
1400+ if ( this . _selectedDate . getHours ( ) % this . itemsDelta . hours > 0 ) {
14021401 this . _selectedDate . setHours (
1403- this . _selectedDate . getHours ( ) + this . itemsDelta . hour - this . _selectedDate . getHours ( ) % this . itemsDelta . hour ,
1402+ this . _selectedDate . getHours ( ) + this . itemsDelta . hours - this . _selectedDate . getHours ( ) % this . itemsDelta . hours ,
14041403 0 ,
14051404 0
14061405 ) ;
14071406 }
14081407
1409- if ( this . _selectedDate . getMinutes ( ) % this . itemsDelta . minute > 0 ) {
1408+ if ( this . _selectedDate . getMinutes ( ) % this . itemsDelta . minutes > 0 ) {
14101409 this . _selectedDate . setHours (
14111410 this . _selectedDate . getHours ( ) ,
1412- this . _selectedDate . getMinutes ( ) + this . itemsDelta . minute - this . _selectedDate . getMinutes ( ) % this . itemsDelta . minute ,
1411+ this . _selectedDate . getMinutes ( ) + this . itemsDelta . minutes - this . _selectedDate . getMinutes ( ) % this . itemsDelta . minutes ,
14131412 0
14141413 ) ;
14151414 }
14161415
1417- if ( this . _selectedDate . getSeconds ( ) % this . itemsDelta . second > 0 ) {
1416+ if ( this . _selectedDate . getSeconds ( ) % this . itemsDelta . seconds > 0 ) {
14181417 this . _selectedDate . setSeconds (
1419- this . _selectedDate . getSeconds ( ) + this . itemsDelta . second - this . _selectedDate . getSeconds ( ) % this . itemsDelta . second
1418+ this . _selectedDate . getSeconds ( ) + this . itemsDelta . seconds - this . _selectedDate . getSeconds ( ) % this . itemsDelta . seconds
14201419 ) ;
14211420 }
14221421 }
@@ -1491,6 +1490,7 @@ export class IgxTimePickerComponent extends PickerBaseDirective
14911490 if ( event . cancel ) {
14921491 return ;
14931492 }
1493+ this . initializeContainer ( ) ;
14941494 } ) ;
14951495
14961496 this . toggleRef . onOpened . pipe ( takeUntil ( this . _destroy$ ) ) . subscribe ( ( ) => {
0 commit comments