@@ -5,6 +5,7 @@ import Icon from "./Icon.js";
55import ResponsivePopover from "./ResponsivePopover.js" ;
66import TimeSelectionClocks from "./TimeSelectionClocks.js" ;
77import TimeSelectionInputs from "./TimeSelectionInputs.js" ;
8+ import decline from "@ui5/webcomponents-icons/dist/decline.js" ;
89import ValueState from "@ui5/webcomponents-base/dist/types/ValueState.js" ;
910import error from "@ui5/webcomponents-icons/dist/error.js" ;
1011import alert from "@ui5/webcomponents-icons/dist/alert.js" ;
@@ -22,7 +23,7 @@ export default function TimePickerPopoverTemplate(this: TimePicker) {
2223 opener = { this }
2324 open = { this . open }
2425 allowTargetOverlap = { true }
25- _hideHeader = { ! this . hasValueStateText }
26+ _hideHeader = { this . _shouldHideHeader }
2627 hideArrow = { true }
2728 accessibleName = { this . pickerAccessibleName }
2829 onClose = { this . onResponsivePopoverAfterClose }
@@ -31,6 +32,8 @@ export default function TimePickerPopoverTemplate(this: TimePicker) {
3132 onWheel = { this . _handleWheel }
3233 onKeyDown = { this . _onkeydown }
3334 >
35+ { ! ! this . showHeader && defaultHeader . call ( this ) }
36+
3437 { this . shouldDisplayValueStateMessageInResponsivePopover && valueStateTextHeader . call ( this ) }
3538
3639 < TimeSelectionClocks
@@ -61,7 +64,7 @@ export default function TimePickerPopoverTemplate(this: TimePicker) {
6164 onWheel = { this . _handleWheel }
6265 onKeyDown = { this . _onkeydown }
6366 >
64- { this . hasValueStateText && valueStateTextHeader . call ( this , { "width" : "100%" } ) }
67+ { this . hasValueStateText && valueStateTextHeader . call ( this ) }
6568
6669 < div class = "popover-content" >
6770 < TimeSelectionInputs
@@ -83,20 +86,37 @@ export default function TimePickerPopoverTemplate(this: TimePicker) {
8386 ) ;
8487}
8588
89+ function defaultHeader ( this : TimePicker ) {
90+ return (
91+ < div slot = "header" class = "ui5-responsive-popover-header" >
92+ < div class = "row" >
93+ < span > { this . _headerTitleText } </ span >
94+ < Button
95+ class = "ui5-responsive-popover-close-btn"
96+ icon = { decline }
97+ design = "Transparent"
98+ onClick = { this . _togglePicker }
99+ >
100+ </ Button >
101+ </ div >
102+ </ div >
103+ ) ;
104+ }
105+
86106function valueStateMessage ( this : TimePicker ) {
87107 return (
88108 this . shouldDisplayDefaultValueStateMessage ? this . valueStateDefaultText : < slot name = "valueStateMessage" > </ slot >
89109 ) ;
90110}
91111
92- function valueStateTextHeader ( this : TimePicker , style ?: Record < string , string > ) {
112+ function valueStateTextHeader ( this : TimePicker ) {
93113 if ( ! this . hasValueStateText ) {
94114 return ;
95115 }
96116
97117 return (
98118 < div
99- slot = "header"
119+ slot = { ! this . showHeader ? "header" : undefined }
100120 class = { {
101121 "ui5-popover-header" : true ,
102122 "ui5-valuestatemessage-header" : true ,
@@ -106,7 +126,6 @@ function valueStateTextHeader(this: TimePicker, style?: Record<string, string>)
106126 "ui5-valuestatemessage--warning" : this . valueState === ValueState . Critical ,
107127 "ui5-valuestatemessage--information" : this . valueState === ValueState . Information ,
108128 } }
109- style = { style }
110129 >
111130 < Icon class = "ui5-input-value-state-message-icon" name = { valueStateMessageInputIcon . call ( this ) } />
112131 { valueStateMessage . call ( this ) }
0 commit comments