From d6165d2938be269ec3d3da72cf0a01e1b18229c5 Mon Sep 17 00:00:00 2001 From: Arturo Castillo Delgado Date: Wed, 5 Nov 2025 13:23:44 +0100 Subject: [PATCH 1/5] [EuiSuperDatePicker] Time window buttons (#9151) --- packages/eui/changelogs/upcoming/9151.md | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 packages/eui/changelogs/upcoming/9151.md diff --git a/packages/eui/changelogs/upcoming/9151.md b/packages/eui/changelogs/upcoming/9151.md new file mode 100644 index 00000000000..548300f184c --- /dev/null +++ b/packages/eui/changelogs/upcoming/9151.md @@ -0,0 +1,2 @@ +- Updated `EuiSuperDatePicker` with new time window buttons for time shifting and zoom out, opt-in via `showTimeWindowButtons` boolean prop. + From 72aea11ac78886c7b2c7a3e124a8eb8568966f53 Mon Sep 17 00:00:00 2001 From: Arturo Castillo Delgado Date: Mon, 10 Nov 2025 14:00:19 +0100 Subject: [PATCH 2/5] [EuiSuperDatePicker] Make parsing forgiving for dateFormat in Absolute tab --- .../super_date_picker/date_popover/absolute_tab.tsx | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/eui/src/components/date_picker/super_date_picker/date_popover/absolute_tab.tsx b/packages/eui/src/components/date_picker/super_date_picker/date_popover/absolute_tab.tsx index 7f22a5597c2..aa17893453d 100644 --- a/packages/eui/src/components/date_picker/super_date_picker/date_popover/absolute_tab.tsx +++ b/packages/eui/src/components/date_picker/super_date_picker/date_popover/absolute_tab.tsx @@ -126,12 +126,22 @@ export const EuiAbsoluteTab: FunctionComponent = ({ return; } + // We can be forgiving for `dateFormat` if we are certain + // we're not expecting any of the other formats allowed; + // otherwise we can get valid but inaccurate results e.g. + // `1970-01-01` -> `Jan 19, 1970 @ 01:01:00.000` + const strictModeForPassedFormat = moment( + textInputValue, + ALLOWED_USER_DATE_FORMATS, + true + ).isValid(); + // Attempt to parse with passed `dateFormat` and `locale` let valueAsMoment = moment( textInputValue, dateFormat, typeof locale === 'string' ? locale : 'en', // Narrow the union type to string - true + strictModeForPassedFormat ); let dateIsValid = valueAsMoment.isValid(); From 04a6c0b38b03d6fa84d814426f5d5897033cd4f6 Mon Sep 17 00:00:00 2001 From: Arturo Castillo Delgado Date: Mon, 10 Nov 2025 14:00:32 +0100 Subject: [PATCH 3/5] [EuiAbsoluteTab] Test forgiving parsing --- .../date_popover/absolute_tab.test.tsx | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/packages/eui/src/components/date_picker/super_date_picker/date_popover/absolute_tab.test.tsx b/packages/eui/src/components/date_picker/super_date_picker/date_popover/absolute_tab.test.tsx index 2cac4931553..e021688700e 100644 --- a/packages/eui/src/components/date_picker/super_date_picker/date_popover/absolute_tab.test.tsx +++ b/packages/eui/src/components/date_picker/super_date_picker/date_popover/absolute_tab.test.tsx @@ -123,6 +123,31 @@ describe('EuiAbsoluteTab', () => { expect(input).toHaveValue('Jan 31st 01'); }); + it('can be forgiving with `dateFormat`', () => { + const { getByTestSubject } = render( + + ); + const input = getByTestSubject( + 'superDatePickerAbsoluteDateInput' + ) as HTMLInputElement; + + changeInput(input, 'Jan 31, 1993'); + expect(input).not.toBeInvalid(); + expect(input).toHaveValue('Jan 31, 1993 00:00:00'); + + changeInput(input, 'Jan 31'); + expect(input).not.toBeInvalid(); + expect(input.value).toContain('Jan 31, '); + + changeInput(input, 'Jan'); + expect(input).not.toBeInvalid(); + expect(input.value).toContain('Jan 1, '); + }); + describe('parses date string in locale', () => { test.each<{ locale: LocaleSpecifier; From fb6b5955d73aa6381b06efd1adeb1f0d52d0473c Mon Sep 17 00:00:00 2001 From: Arturo Castillo Delgado Date: Mon, 10 Nov 2025 16:03:31 +0100 Subject: [PATCH 4/5] Changelog --- packages/eui/changelogs/upcoming/9199.md | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 packages/eui/changelogs/upcoming/9199.md diff --git a/packages/eui/changelogs/upcoming/9199.md b/packages/eui/changelogs/upcoming/9199.md new file mode 100644 index 00000000000..21d9d8be200 --- /dev/null +++ b/packages/eui/changelogs/upcoming/9199.md @@ -0,0 +1,2 @@ +- Updated `EuiSuperDatePicker` to have a more forgiving manual input for absolute dates. + From f469a97bcd82dcaf06476228647272af827d291e Mon Sep 17 00:00:00 2001 From: Arturo Castillo Delgado Date: Tue, 18 Nov 2025 13:50:53 +0100 Subject: [PATCH 5/5] Revert "[EuiSuperDatePicker] Time window buttons (#9151)" This reverts commit cf0a055b02c55f690cfea60e09bf9aa9b398239b. Wrongly included here because of a rebase --- packages/eui/changelogs/upcoming/9151.md | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 packages/eui/changelogs/upcoming/9151.md diff --git a/packages/eui/changelogs/upcoming/9151.md b/packages/eui/changelogs/upcoming/9151.md deleted file mode 100644 index 548300f184c..00000000000 --- a/packages/eui/changelogs/upcoming/9151.md +++ /dev/null @@ -1,2 +0,0 @@ -- Updated `EuiSuperDatePicker` with new time window buttons for time shifting and zoom out, opt-in via `showTimeWindowButtons` boolean prop. -