Skip to content

Commit f0473f0

Browse files
fix(ui5-date-picker): ensure min and max date are not disabled (#2280)
Ensure the Min and Max dates are included in the interval of selectable days. In addition, correct component sample.
1 parent 5ecc51e commit f0473f0

File tree

3 files changed

+18
-2
lines changed

3 files changed

+18
-2
lines changed

packages/main/src/DayPicker.js

+7-1
Original file line numberDiff line numberDiff line change
@@ -807,8 +807,14 @@ class DayPicker extends UI5Element {
807807

808808
_isOutOfSelectableRange(date) {
809809
const currentDate = date._oUDate ? date.toLocalJSDate() : CalendarDate.fromTimestamp(date).toLocalJSDate();
810+
const minDate = this._minDateObject;
811+
const maxDate = this._maxDateObject;
810812

811-
return currentDate > this._maxDateObject || currentDate < this._minDateObject;
813+
currentDate.setHours(0);
814+
minDate.setHours(0);
815+
maxDate.setHours(0);
816+
817+
return currentDate > maxDate || currentDate < minDate;
812818
}
813819

814820
get _maxDate() {

packages/main/test/pages/DatePicker.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ <h3>2 months range</h3>
110110
<h3>3 months range</h3>
111111
<ui5-date-picker id="minMax3" value="5/6/2020" min-date="6/1/2020" max-date="5/1/2021" format-pattern="dd/MM/yyyy"></ui5-date-picker>
112112
<h3>1 year range</h3>
113-
<ui5-date-picker id="minMax4" value="5 Feb 2021" min-date="5 Jan 2020" max-date="5 Jan 2021"></ui5-date-picker>
113+
<ui5-date-picker id="minMax4" value="Feb 5, 2020" min-date="Jan 5, 2020" max-date="Jan 5, 2021"></ui5-date-picker>
114114

115115
<section>
116116
<h3>Test ariaLabel and ariaLabelledBy</h3>

packages/main/test/specs/DatePicker.spec.js

+10
Original file line numberDiff line numberDiff line change
@@ -726,6 +726,16 @@ describe("Date Picker Tests", () => {
726726
assert.ok(datepicker.getDisplayedDay(14).isFocusedDeep(), "Days out of range are disabled");
727727
});
728728

729+
it("Min and Max date are included in the interval", () => {
730+
datepicker.id = "#dp33";
731+
732+
datepicker.root.keys("Escape");
733+
datepicker.openPicker({ focusInput: false });
734+
735+
assert.equal(datepicker.getDisplayedDay(9).hasClass("ui5-dp-item--disabled"), false , "Min date is included");
736+
assert.equal(datepicker.getDisplayedDay(11).hasClass("ui5-dp-item--disabled"), false, "Max date is included");
737+
});
738+
729739
it("Tests week numbers column visibility", () => {
730740
// act
731741
datepicker.id = "#dp18";

0 commit comments

Comments
 (0)