diff --git a/packages/main/src/TimePicker.js b/packages/main/src/TimePicker.js
index 7676e8fa884d..200c3be88095 100644
--- a/packages/main/src/TimePicker.js
+++ b/packages/main/src/TimePicker.js
@@ -281,8 +281,7 @@ class TimePicker extends UI5Element {
constructor() {
super();
- this.readonly = false;
- this.disabled = false;
+ this.prevValue = null;
this._isPickerOpen = false;
this.i18nBundle = getI18nBundle("@ui5/webcomponents");
@@ -531,9 +530,13 @@ class TimePicker extends UI5Element {
selectedDate.setMinutes(minutes);
selectedDate.setSeconds(seconds);
+ this.setPrevValue(this.value);
this.setValue(this.getFormat().format(selectedDate));
- this.fireEvent("change", { value: this.value, valid: true });
+ if (this.prevValue !== this.value) {
+ this.fireEvent("change", { value: this.value, valid: true });
+ this.previousValue = this.value;
+ }
this.closePicker();
}
@@ -700,6 +703,12 @@ class TimePicker extends UI5Element {
}
}
+ setPrevValue(value) {
+ if (this.isValid(value)) {
+ this.prevValue = this.normalizeValue(value);
+ }
+ }
+
/**
* Formats a Java Script date object into a string representing a locale date and time
* according to the formatPattern
property of the TimePicker instance
diff --git a/packages/main/test/pages/TimePicker.html b/packages/main/test/pages/TimePicker.html
index e7b30bbbc083..9daa1e851d70 100644
--- a/packages/main/test/pages/TimePicker.html
+++ b/packages/main/test/pages/TimePicker.html
@@ -30,8 +30,8 @@
Test "change" event
-
-
+
+
Test "input" event
@@ -57,12 +57,12 @@