From d3465ac388886fb84db23fea23dd1e2b3d41f76c Mon Sep 17 00:00:00 2001 From: Javier Godoy <11554739+javier-godoy@users.noreply.github.com> Date: Thu, 19 Mar 2026 14:13:44 -0300 Subject: [PATCH 1/5] fix: replace undeclared grid with children in getNumPerRow Close #111 --- .../META-INF/frontend/fc-year-calendar/fc-year-calendar.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/META-INF/frontend/fc-year-calendar/fc-year-calendar.js b/src/main/resources/META-INF/frontend/fc-year-calendar/fc-year-calendar.js index accbcb0..13a4c75 100644 --- a/src/main/resources/META-INF/frontend/fc-year-calendar/fc-year-calendar.js +++ b/src/main/resources/META-INF/frontend/fc-year-calendar/fc-year-calendar.js @@ -207,7 +207,7 @@ export class FcYearCalendarElement extends ThemableMixin(PolymerElement) { const children = monthCalendars(); const baseOffset = children[0].offsetTop; const breakIndex = children.findIndex(item => item.offsetTop > baseOffset); - return (breakIndex === -1 ? grid.length : breakIndex); + return (breakIndex === -1 ? children.length : breakIndex); }; const adjustDateByHorizontalOffset = (offset) => { From d9c007ed5c5831ddf6769d3748d067f7aaeb2e20 Mon Sep 17 00:00:00 2001 From: Javier Godoy <11554739+javier-godoy@users.noreply.github.com> Date: Thu, 19 Mar 2026 14:27:16 -0300 Subject: [PATCH 2/5] fix: prevent min clamp from being overwritten in __normalizeValue Close #112 --- .../frontend/fc-year-month-field/fc-year-month-field.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/META-INF/frontend/fc-year-month-field/fc-year-month-field.js b/src/main/resources/META-INF/frontend/fc-year-month-field/fc-year-month-field.js index aae8428..250fbc2 100644 --- a/src/main/resources/META-INF/frontend/fc-year-month-field/fc-year-month-field.js +++ b/src/main/resources/META-INF/frontend/fc-year-month-field/fc-year-month-field.js @@ -92,7 +92,7 @@ export class YearMonthField extends LitElement { if (this.min && intValue < this._minAsNumber){ this.value = this.min.year + '-' + String(this.min.month + 1).padStart(2, '0'); this.date = new Date(this.min.year, this.min.month); - } if (this.max && intValue > this._maxAsNumber){ + } else if (this.max && intValue > this._maxAsNumber){ this.value = this.max.year + '-' + String(this.max.month + 1).padStart(2, '0'); this.date = new Date(this.max.year, this.max.month); } else { From 3d6e051d636e0ab08cec93528df384f92dce3e1f Mon Sep 17 00:00:00 2001 From: Javier Godoy <11554739+javier-godoy@users.noreply.github.com> Date: Thu, 19 Mar 2026 14:29:00 -0300 Subject: [PATCH 3/5] fix: remove duplicate assignment in MonthCalendar.setYearMonth() Close #113 --- .../java/com/flowingcode/addons/ycalendar/MonthCalendar.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/flowingcode/addons/ycalendar/MonthCalendar.java b/src/main/java/com/flowingcode/addons/ycalendar/MonthCalendar.java index 575fb7d..4769ad1 100644 --- a/src/main/java/com/flowingcode/addons/ycalendar/MonthCalendar.java +++ b/src/main/java/com/flowingcode/addons/ycalendar/MonthCalendar.java @@ -102,7 +102,6 @@ public Month getMonth() { * @param yearMonth the {@code YearMonth} to display */ public void setYearMonth(YearMonth yearMonth) { - this.yearMonth = Objects.requireNonNull(yearMonth); this.yearMonth = Objects.requireNonNull(yearMonth); String script = "this.month=new Date($0,$1-1,1);"; getElement().executeJs(script, yearMonth.getYear(), yearMonth.getMonthValue()); From 674ac7a14aa065678212d77502f1e92645938d84 Mon Sep 17 00:00:00 2001 From: Javier Godoy <11554739+javier-godoy@users.noreply.github.com> Date: Thu, 19 Mar 2026 14:29:29 -0300 Subject: [PATCH 4/5] fix: remove spurious type parameter from YearMonthField constructor Close #114 --- .../java/com/flowingcode/addons/ycalendar/YearMonthField.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/flowingcode/addons/ycalendar/YearMonthField.java b/src/main/java/com/flowingcode/addons/ycalendar/YearMonthField.java index 2c6a372..14ea5eb 100644 --- a/src/main/java/com/flowingcode/addons/ycalendar/YearMonthField.java +++ b/src/main/java/com/flowingcode/addons/ycalendar/YearMonthField.java @@ -51,7 +51,7 @@ private static SerializableFunction map(SerializableFunction f) } /** Constructs a new YearMonthField initializing its value to the current year and month. */ - public

YearMonthField() { + public YearMonthField() { super(VALUE_PROPERTY, null, String.class, map(YearMonth::parse), map(YearMonth::toString)); setValue(YearMonth.now()); } From 07415bf43ff47bcd57c9f7b99e7e0e0e7f3b70e8 Mon Sep 17 00:00:00 2001 From: Javier Godoy <11554739+javier-godoy@users.noreply.github.com> Date: Thu, 19 Mar 2026 14:30:02 -0300 Subject: [PATCH 5/5] fix: use Json.createObject() in setMin and setMax Close #115 --- .../addons/ycalendar/YearMonthField.java | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/flowingcode/addons/ycalendar/YearMonthField.java b/src/main/java/com/flowingcode/addons/ycalendar/YearMonthField.java index 14ea5eb..fd2c98d 100644 --- a/src/main/java/com/flowingcode/addons/ycalendar/YearMonthField.java +++ b/src/main/java/com/flowingcode/addons/ycalendar/YearMonthField.java @@ -28,6 +28,7 @@ import com.vaadin.flow.component.dependency.JsModule; import com.vaadin.flow.function.SerializableFunction; import elemental.json.Json; +import elemental.json.JsonObject; import elemental.json.JsonValue; import java.time.YearMonth; import java.util.Objects; @@ -73,8 +74,15 @@ public void setI18n(DatePickerI18n i18n) { * remove any minimum constraints */ public void setMin(YearMonth min) { - JsonValue value = min == null ? Json.createNull() - : Json.parse("{'month': " + min.getMonth().ordinal() + ", 'year': " + min.getYear() + "}"); + JsonValue value; + if (min == null) { + value = Json.createNull(); + } else { + JsonObject obj = Json.createObject(); + obj.put("month", min.getMonth().ordinal()); + obj.put("year", min.getYear()); + value = obj; + } getElement().setPropertyJson("min", value); this.min = min; } @@ -96,8 +104,15 @@ public YearMonth getMin() { * remove any maximum constraints */ public void setMax(YearMonth max) { - JsonValue value = max == null ? Json.createNull() - : Json.parse("{'month': " + max.getMonth().ordinal() + ", 'year': " + max.getYear() + "}"); + JsonValue value; + if (max == null) { + value = Json.createNull(); + } else { + JsonObject obj = Json.createObject(); + obj.put("month", max.getMonth().ordinal()); + obj.put("year", max.getYear()); + value = obj; + } getElement().setPropertyJson("max", value); this.max = max; }