You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(ui5-dynamic-date-range): introduce last/next X options (#11621)
Introducing new **Last/Next** options for the `<ui5-dynamic-date-range>` component.
These options allow relative date selections like "Last 7 Days", "Next 3 Months", etc.
The implementation supports both individual time units and flexible grouping of multiple units under a single option.
**The New Options That Are Added (Inclusive):**
- `LASTDAYS`, `LASTWEEKS`, `LASTMONTHS`, `LASTQUARTERS`, `LASTYEARS` - Select periods going backward from today
- `NEXTDAYS`, `NEXTWEEKS`, `NEXTMONTHS`, `NEXTQUARTERS`, `NEXTYEARS` - Select periods going forward from today
**Sample usage with individual options:**
```html
<ui5-dynamic-date-range options="TODAY, LASTDAYS, NEXTWEEKS"></ui5-dynamic-date-range>
```
**Sample usage with grouped options:**
```html
<ui5-dynamic-date-range options="LASTDAYS, LASTWEEKS, LASTMONTHS"></ui5-dynamic-date-range>
<!-- Shows: Number input + Unit selector (Days/Weeks/Months) -->
```
- `DateRange.ts`: Fixed date range for backwards selections
* - `format(value: DynamicDateRangeValue): string`: Formats the given dynamic date range value into a string representation.
63
63
* - `parse(value: string): DynamicDateRangeValue | undefined`: Parses a string into a dynamic date range value.
64
-
* - `toDates(value: DynamicDateRangeValue): Date[]`: Converts a dynamic date range value into an array of `Date` objects.
64
+
* - `toDates(value: DynamicDateRangeValue): Array<Date>`: Converts a dynamic date range value into an array of `Date` objects.
65
65
* - `handleSelectionChange?(event: CustomEvent): DynamicDateRangeValue | undefined`: (Optional) Handles selection changes in the UI of the dynamic date range option.
66
66
* - `isValidString(value: string): boolean`: Validates whether a given string is a valid representation of the dynamic date range value.
* - "TOMORROW" - Represents the next date. An example value is `{ operator: "TOMORROW"}`. Import: `import "@ui5/webcomponents/dist/dynamic-date-range-options/Tomorrow.js";`
105
105
* - "DATE" - Represents a single date. An example value is `{ operator: "DATE", values: [new Date()]}`. Import: `import "@ui5/webcomponents/dist/dynamic-date-range-options/SingleDate.js";`
106
106
* - "DATERANGE" - Represents a range of dates. An example value is `{ operator: "DATERANGE", values: [new Date(), new Date()]}`. Import: `import "@ui5/webcomponents/dist/dynamic-date-range-options/DateRange.js";`
107
+
* - "LASTDAYS" - Represents Last X Days from today. An example value is `{ operator: "LASTDAYS", values: [2]}`. Import: `import "@ui5/webcomponents/dist/dynamic-date-range-options/LastOptions.js";`
108
+
* - "LASTWEEKS" - Represents Last X Weeks from today. An example value is `{ operator: "LASTWEEKS", values: [3]}`. Import: `import "@ui5/webcomponents/dist/dynamic-date-range-options/LastOptions.js";`
109
+
* - "LASTMONTHS" - Represents Last X Months from today. An example value is `{ operator: "LASTMONTHS", values: [6]}`. Import: `import "@ui5/webcomponents/dist/dynamic-date-range-options/LastOptions.js";`
110
+
* - "LASTQUARTERS" - Represents Last X Quarters from today. An example value is `{ operator: "LASTQUARTERS", values: [2]}`. Import: `import "@ui5/webcomponents/dist/dynamic-date-range-options/LastOptions.js";`
111
+
* - "LASTYEARS" - Represents Last X Years from today. An example value is `{ operator: "LASTYEARS", values: [1]}`. Import: `import "@ui5/webcomponents/dist/dynamic-date-range-options/LastOptions.js";`
112
+
* - "NEXTDAYS" - Represents Next X Days from today. An example value is `{ operator: "NEXTDAYS", values: [2]}`. Import: `import "@ui5/webcomponents/dist/dynamic-date-range-options/NextOptions.js";`
113
+
* - "NEXTWEEKS" - Represents Next X Weeks from today. An example value is `{ operator: "NEXTWEEKS", values: [3]}`. Import: `import "@ui5/webcomponents/dist/dynamic-date-range-options/NextOptions.js";`
114
+
* - "NEXTMONTHS" - Represents Next X Months from today. An example value is `{ operator: "NEXTMONTHS", values: [6]}`. Import: `import "@ui5/webcomponents/dist/dynamic-date-range-options/NextOptions.js";`
115
+
* - "NEXTQUARTERS" - Represents Next X Quarters from today. An example value is `{ operator: "NEXTQUARTERS", values: [2]}`. Import: `import "@ui5/webcomponents/dist/dynamic-date-range-options/NextOptions.js";`
116
+
* - "NEXTYEARS" - Represents Next X Years from today. An example value is `{ operator: "NEXTYEARS", values: [1]}`. Import: `import "@ui5/webcomponents/dist/dynamic-date-range-options/NextOptions.js";`
107
117
*
108
118
* ### ES6 Module Import
109
119
*
@@ -173,9 +183,9 @@ class DynamicDateRange extends UI5Element {
0 commit comments