Skip to content

Commit 5874e5d

Browse files
docs(datetime-picker): fix code in sandbox (#1254)
1 parent 9a700a2 commit 5874e5d

File tree

2 files changed

+33
-14
lines changed

2 files changed

+33
-14
lines changed

documents/src/pages/elements/datetime-picker.md

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -349,33 +349,44 @@ const formatToDateTime = (value) => {
349349
const date = pad(value.getDate(), 2);
350350
const hours = pad(value.getHours(), 2);
351351
const minutes = pad(value.getMinutes(), 2);
352-
const seconds = pad(value.getSeconds(), 2);
353-
return year + '-' + month + '-' + date + 'T' + hours + ':' + minutes + ':' + seconds;
352+
return year + '-' + month + '-' + date + 'T' + hours + ':' + minutes;
354353
};
355354

356355
const toValues = (from, to) => [formatToDateTime(from), formatToDateTime(to)];
356+
const toViews = (from, to) => {
357+
from = new Date(from)
358+
to = new Date(to)
359+
const year = (value) => pad(value.getFullYear(), 4);
360+
const month = (value) => pad(value.getMonth() + 1, 2);
361+
return [`${year(from)}-${month(from)}`, `${year(to)}-${month(to)}`]
362+
};
363+
357364
const rangePicker = document.querySelector('ef-datetime-picker');
358365
document.getElementById('today').addEventListener('tap', () => {
359366
const to = new Date().setSeconds(0, 0);
360367
const from = new Date(to).setHours(0, 0, 0, 0);
361368
rangePicker.values = toValues(from, to);
369+
rangePicker.views = toViews(from, to);
362370
});
363371
document.getElementById('1-week').addEventListener('tap', () => {
364372
const to = new Date().setSeconds(0, 0);
365373
const from = new Date(to) - 7 * 24 * 60 * 60 * 1000;
366374
rangePicker.values = toValues(from, to);
375+
rangePicker.views = toViews(from, to);
367376
});
368377
document.getElementById('1-month').addEventListener('tap', () => {
369378
const now = new Date();
370379
const to = now.setSeconds(0, 0);
371380
const from = new Date(now.getFullYear(), now.getMonth() - 1, now.getDate(), now.getHours(), now.getMinutes());
372381
rangePicker.values = toValues(from, to);
382+
rangePicker.views = toViews(from, to);
373383
});
374384
document.getElementById('3-months').addEventListener('tap', () => {
375385
const now = new Date();
376386
const to = now.setSeconds(0, 0);
377387
const from = new Date(now.getFullYear(), now.getMonth() - 3, now.getDate(), now.getHours(), now.getMinutes());
378388
rangePicker.values = toValues(from, to);
389+
rangePicker.views = toViews(from, to);
379390
});
380391
```
381392
```css
@@ -546,7 +557,7 @@ datetimePicker.addEventListener('before-cell-render', (event) => {
546557
const { cell, calendar } = event.detail;
547558
const prefix = calendar.id === 'calendar-to' ? 'to-' : 'from-';
548559
const customCell = sourceDatetimePicker.querySelector(`[slot="${prefix}${cell.value}"]`);
549-
560+
550561
// skip style overriding if there is no content for the cell
551562
if (!customCell) { return; }
552563

@@ -576,7 +587,7 @@ datetimePicker?.addEventListener('before-cell-render', (event) => {
576587

577588
// skip style overriding if there is no content for the cell
578589
if (!customCell) { return; }
579-
590+
580591
// use text from component as calendar has built-in locale support
581592
// for instance, Mai instead of May in German
582593
customCell.textContent = cell.text;
@@ -615,7 +626,7 @@ datetimePicker?.addEventListener('before-cell-render', (event) => {
615626
if (!customCell) {
616627
return;
617628
}
618-
629+
619630
// skip style overriding if there is no content for the cell
620631
if (!customCell) { return; }
621632

@@ -738,7 +749,7 @@ ef-datetime-picker .custom-cell.selected {
738749
```
739750
```html
740751
<label id="event-date">Event date</label>
741-
<ef-datetime-picker
752+
<ef-datetime-picker
742753
aria-labelledby="event-date">
743754
</ef-datetime-picker>
744755
```

packages/elements/src/datetime-picker/__demo__/index.html

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -455,24 +455,30 @@
455455
</div>
456456
</ef-datetime-picker>
457457
<script type="module">
458-
import { DateTimeFormat, format } from '@refinitiv-ui/utils/date.js';
458+
import { DateFormat, DateTimeFormat, format } from '@refinitiv-ui/utils/date.js';
459459

460460
(function () {
461461
const toValues = (from, to) => [
462-
format(from, DateTimeFormat.yyyMMddTHHmm),
463-
format(to, DateTimeFormat.yyyMMddTHHmm)
462+
format(new Date(from), DateTimeFormat.yyyMMddTHHmm),
463+
format(new Date(to), DateTimeFormat.yyyMMddTHHmm)
464464
];
465465

466+
const toViews = (from, to) => {
467+
return [format(new Date(from), DateFormat.yyyyMM), format(new Date(to), DateFormat.yyyyMM)];
468+
};
469+
466470
const rangePicker = document.getElementById('default-range');
467471
document.getElementById('default-range-today').addEventListener('tap', () => {
468472
const to = new Date().setSeconds(0, 0);
469473
const from = new Date(to).setHours(0, 0, 0, 0);
470-
rangePicker.values = toValues(new Date(from), new Date(to));
474+
rangePicker.values = toValues(from, to);
475+
rangePicker.views = toViews(from, to);
471476
});
472477
document.getElementById('default-range-1-week').addEventListener('tap', () => {
473478
const to = new Date().setSeconds(0, 0);
474479
const from = new Date(to) - 7 * 24 * 60 * 60 * 1000;
475-
rangePicker.values = toValues(new Date(from), new Date(to));
480+
rangePicker.values = toValues(from, to);
481+
rangePicker.views = toViews(from, to);
476482
});
477483
document.getElementById('default-range-1-month').addEventListener('tap', () => {
478484
const now = new Date();
@@ -484,7 +490,8 @@
484490
now.getHours(),
485491
now.getMinutes()
486492
);
487-
rangePicker.values = toValues(from, new Date(to));
493+
rangePicker.values = toValues(from, to);
494+
rangePicker.views = toViews(from, to);
488495
});
489496
document.getElementById('default-range-3-month').addEventListener('tap', () => {
490497
const now = new Date();
@@ -496,7 +503,8 @@
496503
now.getHours(),
497504
now.getMinutes()
498505
);
499-
rangePicker.values = toValues(from, new Date(to));
506+
rangePicker.values = toValues(from, to);
507+
rangePicker.views = toViews(from, to);
500508
});
501509
})();
502510
</script>
@@ -591,7 +599,7 @@
591599
dynamicSingleDatetimePicker.addEventListener('before-cell-render', beforeCellRenderHandlerSingle);
592600
</script>
593601
<demo-block header="Slotted Cell Content + before-cell-render Event">
594-
<ef-datetime-picker id="single-datetime-picker" view="2023-10" value="2023-10-10 ">
602+
<ef-datetime-picker id="single-datetime-picker" view="2023-10" value="2023-10-10">
595603
<div class="custom-cell" slot="2023-10-10">10</div>
596604
<div class="custom-cell" slot="2023-10-11">11</div>
597605
<div class="custom-cell" slot="2023-10">Oct</div>

0 commit comments

Comments
 (0)