Skip to content

Commit c81a7f3

Browse files
committed
chore: prepare release v2.2.4 and refactor ngOnChanges
- Bump version to 2.2.4 in package.json (root and library) and package-lock.json - Update all documentation (README, CHANGELOG, MIGRATION, ROADMAP, SECURITY, PUBLISHING) to reflect v2.2.4 - Refactor ngOnChanges in ngxsmk-datepicker.ts to reduce cognitive complexity from 17 to under 15 - Extract focused private methods (handleChangesTimeAndMode, handleChangesDisabledStates, etc.) for better maintainability - Update demo app versioning and translations across all supported languages - Update docs/INSTALLATION.md with new version-specific CDN and download links
1 parent 746866d commit c81a7f3

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+230
-169
lines changed

CHANGELOG.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,18 @@
22

33
All notable changes to this project will be documented in this file.
44

5-
**Last updated:** March 9, 2026 · **Current stable:** v2.2.3
5+
**Last updated:** March 10, 2026 · **Current stable:** v2.2.4
66

77
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
88
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
99

10+
## [2.2.4] - 2026-03-10
11+
12+
### Fixed
13+
- **Timezone Support**: Added full support for IANA timezones in "Today" calculation. The component now correctly identifies "Today" based on the configured `timezone` input.
14+
- **Date Validation**: Fixed an issue where "Today" was incorrectly considered invalid if `minDate` was set to the current time. Validation now normalizes to the start of the day.
15+
- **Keyboard Shortcuts**: Updated "Today" selection shortcut to be timezone-aware.
16+
1017
## [2.2.3] - 2026-03-09
1118

1219
### Fixed

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
Thank you for your interest in contributing to ngxsmk-datepicker! This document provides guidelines and instructions for contributing.
44

5-
**Last updated:** March 9, 2026 · **Current stable:** v2.2.3
5+
**Last updated:** March 10, 2026 · **Current stable:** v2.2.4
66

77
## Code of Conduct
88

DEPLOYMENT.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
This document explains how the ngxsmk-datepicker demo app is deployed to GitHub Pages.
44

5-
**Last updated:** March 9, 2026 · **Current stable:** v2.2.3
5+
**Last updated:** March 10, 2026 · **Current stable:** v2.2.4
66

77
## Automatic Deployment
88

MIGRATION.md

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@
22

33
This document provides migration instructions for upgrading between major versions of ngxsmk-datepicker.
44

5-
**Last updated:** March 9, 2026 · **Current stable:** v2.2.3
5+
**Last updated:** March 10, 2026 · **Current stable:** v2.2.4
66

77
## Table of Contents
88

9+
- [v2.2.3 → v2.2.4](#v223---v224)
910
- [v2.2.0 → v2.2.3](#v220---v223)
1011
- [v2.1.8 → v2.2.0](#v218---v219)
1112
- [v2.1.7 → v2.1.8](#v217---v218)
@@ -53,9 +54,24 @@ This document provides migration instructions for upgrading between major versio
5354
- [v1.9.1 → v1.9.2](#v191---v192)
5455
- [v1.9.0 → v1.9.1](#v190---v191)
5556
- [v1.8.0 → v1.9.0](#v180---v190)
56-
- [v1.9.0 → v2.0.0](#v190---v200) (Future)
5757
- [v1.7.0 → v1.8.0](#v170---v180)
5858

59+
## v2.2.3 → v2.2.4
60+
61+
### Changes
62+
63+
- **Timezone Support**: Added full support for IANA timezones in "Today" calculation. The component now correctly identifies "Today" based on the configured `timezone` input rather than just browser local time.
64+
- **Date Validation**: Fixed an issue where "Today" could become unselectable if `minDate` was set to the current time later in the day. `minDate` validation now correctly normalizes to the start of the day.
65+
- **Keyboard Shortcuts**: Updated `selectToday` shortcut to use the timezone-aware `today` value.
66+
67+
### Migration Steps
68+
69+
No migration steps required.
70+
71+
```bash
72+
npm install ngxsmk-datepicker@2.2.4
73+
```
74+
5975
## v2.2.0 → v2.2.3
6076

6177
### Changes
@@ -266,7 +282,7 @@ npm install ngxsmk-datepicker@2.0.8
266282
### Changes
267283

268284
- **Version Update**: Updated to version 2.0.7
269-
- **Stable Release**: Version 2.2.3 is the current stable version
285+
- **Stable Release**: Version 2.2.4 is the current stable version
270286
- No breaking changes.
271287

272288
### Migration Steps

PUBLISHING.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
This document outlines the process for publishing new versions of `ngxsmk-datepicker` to npm.
44

5-
**Last updated:** March 9, 2026 · **Current stable:** v2.2.3
5+
**Last updated:** March 10, 2026 · **Current stable:** v2.2.4
66

77
## Prerequisites
88

@@ -104,8 +104,8 @@ npm run publish:beta
104104
### 2. Publish production (after beta is validated)
105105

106106
```bash
107-
# Set the stable version (must match the release, e.g. 2.2.3 from 2.2.3-beta.0)
108-
npm run version:stable -- 2.2.3
107+
# Set the stable version (must match the release, e.g. 2.2.4 from 2.2.4-beta.0)
108+
npm run version:stable -- 2.2.4
109109

110110
# Update CHANGELOG.md: rename [X.Y.Z-beta.N] to [X.Y.Z] or add a [X.Y.Z] section, then commit
111111

@@ -118,8 +118,8 @@ npm run publish:patch
118118

119119
### Manual version (optional)
120120

121-
- Set a specific beta: `node scripts/set-beta-version.js 2.2.3-beta.0`
122-
- Set stable: `node scripts/set-stable-version.js 2.2.3`
121+
- Set a specific beta: `node scripts/set-beta-version.js 2.2.4-beta.0`
122+
- Set stable: `node scripts/set-stable-version.js 2.2.4`
123123

124124
## Pre-Release Checklist
125125

README.md

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,15 @@
2424

2525
---
2626

27-
**Last updated:** March 9, 2026 · **Current stable:** v2.2.3
27+
**Last updated:** March 10, 2026 · **Current stable:** v2.2.4
2828

2929
### **Overview**
3030

3131
**ngxsmk-datepicker** is a high-performance, enterprise-ready date and range picker engineered for the modern Angular ecosystem (v17+). Built from the ground up with **Angular Signals**, it delivers a seamless, zoneless-ready experience for both desktop and mobile (Ionic) applications.
3232

33-
> **Stable Release**: `v2.2.3` is live! This release brings a **TypeScript Strictness Overhaul** (eliminating `any` types), **Cognitive Complexity & Linting Fixes** for Material integration, and improved **Test Coverage (~68.2%)**. It also fixes **appendToBody** popover positioning, datepicker-in-modal behavior, and touch interaction regressions. No breaking changes.
33+
> **Stable Release**: `v2.2.4` is live! This release adds full **IANA Timezone Support** for "Today" calculation, resolves a critical bug where "Today" could become unselectable after late-day `minDate` initializations, and ensures high-performance date validation across all configurations.
3434
>
35-
> ⚠️ **Important**: Versions 2.0.10 and 2.0.11 are broken and have been unpublished. Please use v2.2.3 or later.
35+
> ⚠️ **Important**: Versions 2.0.10 and 2.0.11 are broken and have been unpublished. Please use v2.2.4 or later.
3636
3737
---
3838

@@ -139,7 +139,7 @@ For details, see [CONTRIBUTING.md](https://github.com/NGXSMK/ngxsmk-datepicker/b
139139
## **📦 Installation**
140140

141141
```bash
142-
npm install ngxsmk-datepicker@2.2.3
142+
npm install ngxsmk-datepicker@2.2.4
143143
```
144144

145145
### Alternative installation
@@ -148,12 +148,12 @@ You can install without npm using any of these methods (peer dependencies must s
148148

149149
| Method | Command |
150150
|--------|--------|
151-
| **Yarn** | `yarn add ngxsmk-datepicker@2.2.3` |
152-
| **pnpm** | `pnpm add ngxsmk-datepicker@2.2.3` |
153-
| **Bun** | `bun add ngxsmk-datepicker@2.2.3` |
154-
| **From Git** | `npm install github:NGXSMK/ngxsmk-datepicker#v2.2.3` (requires the repo to have built output or you build from source) |
151+
| **Yarn** | `yarn add ngxsmk-datepicker@2.2.4` |
152+
| **pnpm** | `pnpm add ngxsmk-datepicker@2.2.4` |
153+
| **Bun** | `bun add ngxsmk-datepicker@2.2.4` |
154+
| **From Git** | `npm install github:NGXSMK/ngxsmk-datepicker#v2.2.4` (requires the repo to have built output or you build from source) |
155155
| **Local path** | Build the library in the repo (`npx ng build ngxsmk-datepicker`), then `npm install /path/to/ngxsmk-datepicker/dist/ngxsmk-datepicker` |
156-
| **CDN (ESM)** | Use [unpkg](https://unpkg.com/ngxsmk-datepicker@2.2.3/) or [jsDelivr](https://cdn.jsdelivr.net/npm/ngxsmk-datepicker@2.2.3/) in your bundler or import map; peer dependencies (Angular, etc.) must be installed in your app. |
156+
| **CDN (ESM)** | Use [unpkg](https://unpkg.com/ngxsmk-datepicker@2.2.4/) or [jsDelivr](https://cdn.jsdelivr.net/npm/ngxsmk-datepicker@2.2.4/) in your bundler or import map; peer dependencies (Angular, etc.) must be installed in your app. |
157157

158158
For all options and caveats, see [docs/INSTALLATION.md](docs/INSTALLATION.md).
159159

@@ -604,7 +604,7 @@ The `locale` input controls all internationalization. It automatically formats m
604604

605605
### **Global Language Support**
606606

607-
ngxsmk-datepicker v2.2.3 now features **full localization synchronization** for:
607+
ngxsmk-datepicker v2.2.4 now features **full localization synchronization** for:
608608

609609
- �� English (`en`)
610610
- �� German (`de`)
@@ -697,8 +697,12 @@ This library has been optimized for maximum performance:
697697

698698
## **🐛 Bug Fixes & Improvements**
699699

700-
### **Critical Bug Fixes in v1.4.15:**
700+
### **Critical Updates in v2.2.4:**
701701

702+
-**Timezone Support**: Added full support for IANA timezones in "Today" calculation.
703+
-**Date Validation**: Fixed "Today" unselectable bug by normalizing `minDate` boundary checks.
704+
-**Keyboard Shortcuts**: Updated "Today" selection shortcut to use timezone-aware calculation.
705+
-**Validation messages**: User-facing i18n strings for invalid date, min/max; `validationError` output and on-screen error display
702706
-**Change Detection**: Fixed OnPush change detection issues with proper `markForCheck()` triggers
703707
-**Date Comparison**: Fixed null safety issues in date range comparisons
704708
-**Memory Leaks**: Added cache size limits to prevent memory leaks
@@ -860,7 +864,7 @@ We welcome and appreciate contributions from the community! Whether it's reporti
860864

861865
## **📄 Changelog**
862866

863-
**Recent:** v2.2.3 — TypeScript strictness overhaul, appendToBody/popover fixes, loading and CSS cleanup. Versions 2.0.10 and 2.0.11 are unpublished; use v2.2.3 or later.
867+
**Recent:** v2.2.4 — TypeScript strictness overhaul, appendToBody/popover fixes, loading and CSS cleanup. Versions 2.0.10 and 2.0.11 are unpublished; use v2.2.4 or later.
864868

865869
For the full list of changes, see [CHANGELOG.md](https://github.com/NGXSMK/ngxsmk-datepicker/blob/main/CHANGELOG.md).
866870

ROADMAP.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
This roadmap outlines the planned features, improvements, and enhancements for ngxsmk-datepicker. We welcome community input and contributions!
44

5-
**Last updated:** March 9, 2026 · **Current stable:** v2.2.3
5+
**Last updated:** March 10, 2026 · **Current stable:** v2.2.4
66

77
## 🎯 Current Focus (Q1 2026 - Q2 2026)
88

SECURITY.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Security Policy
22

3-
**Last updated:** March 9, 2026 · **Current stable:** v2.2.3
3+
**Last updated:** March 10, 2026 · **Current stable:** v2.2.4
44

55
## Supported Versions
66

docs/ACCESSIBILITY_TESTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Accessibility Testing
22

3-
**Last updated:** March 9, 2026 · **Current stable:** v2.2.3
3+
**Last updated:** March 10, 2026 · **Current stable:** v2.2.4
44

55
This document outlines the accessibility testing infrastructure integrated into the ngxsmk-datepicker library.
66

docs/API_REFERENCE.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
Complete API reference for ngxsmk-datepicker with JSDoc examples for improved IDE IntelliSense.
44

5-
**Version**: 2.2.3+
6-
**Last Updated**: March 9, 2026
5+
**Version**: 2.2.4+
6+
**Last Updated**: March 10, 2026
77

88
---
99

0 commit comments

Comments
 (0)