diff --git a/documents/src/pages/elements/datetime-picker.md b/documents/src/pages/elements/datetime-picker.md
index c586fc9c20..be3bde840d 100644
--- a/documents/src/pages/elements/datetime-picker.md
+++ b/documents/src/pages/elements/datetime-picker.md
@@ -349,33 +349,44 @@ const formatToDateTime = (value) => {
const date = pad(value.getDate(), 2);
const hours = pad(value.getHours(), 2);
const minutes = pad(value.getMinutes(), 2);
- const seconds = pad(value.getSeconds(), 2);
- return year + '-' + month + '-' + date + 'T' + hours + ':' + minutes + ':' + seconds;
+ return year + '-' + month + '-' + date + 'T' + hours + ':' + minutes;
};
const toValues = (from, to) => [formatToDateTime(from), formatToDateTime(to)];
+const toViews = (from, to) => {
+ from = new Date(from)
+ to = new Date(to)
+ const year = (value) => pad(value.getFullYear(), 4);
+ const month = (value) => pad(value.getMonth() + 1, 2);
+ return [`${year(from)}-${month(from)}`, `${year(to)}-${month(to)}`]
+};
+
const rangePicker = document.querySelector('ef-datetime-picker');
document.getElementById('today').addEventListener('tap', () => {
const to = new Date().setSeconds(0, 0);
const from = new Date(to).setHours(0, 0, 0, 0);
rangePicker.values = toValues(from, to);
+ rangePicker.views = toViews(from, to);
});
document.getElementById('1-week').addEventListener('tap', () => {
const to = new Date().setSeconds(0, 0);
const from = new Date(to) - 7 * 24 * 60 * 60 * 1000;
rangePicker.values = toValues(from, to);
+ rangePicker.views = toViews(from, to);
});
document.getElementById('1-month').addEventListener('tap', () => {
const now = new Date();
const to = now.setSeconds(0, 0);
const from = new Date(now.getFullYear(), now.getMonth() - 1, now.getDate(), now.getHours(), now.getMinutes());
rangePicker.values = toValues(from, to);
+ rangePicker.views = toViews(from, to);
});
document.getElementById('3-months').addEventListener('tap', () => {
const now = new Date();
const to = now.setSeconds(0, 0);
const from = new Date(now.getFullYear(), now.getMonth() - 3, now.getDate(), now.getHours(), now.getMinutes());
rangePicker.values = toValues(from, to);
+ rangePicker.views = toViews(from, to);
});
```
```css
@@ -546,7 +557,7 @@ datetimePicker.addEventListener('before-cell-render', (event) => {
const { cell, calendar } = event.detail;
const prefix = calendar.id === 'calendar-to' ? 'to-' : 'from-';
const customCell = sourceDatetimePicker.querySelector(`[slot="${prefix}${cell.value}"]`);
-
+
// skip style overriding if there is no content for the cell
if (!customCell) { return; }
@@ -576,7 +587,7 @@ datetimePicker?.addEventListener('before-cell-render', (event) => {
// skip style overriding if there is no content for the cell
if (!customCell) { return; }
-
+
// use text from component as calendar has built-in locale support
// for instance, Mai instead of May in German
customCell.textContent = cell.text;
@@ -615,7 +626,7 @@ datetimePicker?.addEventListener('before-cell-render', (event) => {
if (!customCell) {
return;
}
-
+
// skip style overriding if there is no content for the cell
if (!customCell) { return; }
@@ -738,7 +749,7 @@ ef-datetime-picker .custom-cell.selected {
```
```html
-
```
diff --git a/packages/elements/src/datetime-picker/__demo__/index.html b/packages/elements/src/datetime-picker/__demo__/index.html
index 10778ffccc..324975800e 100644
--- a/packages/elements/src/datetime-picker/__demo__/index.html
+++ b/packages/elements/src/datetime-picker/__demo__/index.html
@@ -455,24 +455,30 @@
@@ -591,7 +599,7 @@
dynamicSingleDatetimePicker.addEventListener('before-cell-render', beforeCellRenderHandlerSingle);
-
+
10
11
Oct