blob: 8b7249dd42a00448c158eb46b208f4fa4d5f7370 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
function init_date_time_single(dt) {
dt.time = dt.querySelector('[type=time]');
dt.date = dt.querySelector('[type=date]');
Object.defineProperty(dt, 'value', {
get: () => (dt.date.value && dt.time.value)
// TODO wrapping <date-time/> tag
? dt.date.value + "T" + dt.time.value
: "",
set: (v) => [dt.date.value, dt.time.value] = v.split("T"),
});
Object.defineProperty(dt, 'name', {
get: () => dt.attributes.name.value
});
dt._addEventListener = dt.addEventListener;
dt.addEventListener = function (field, proc) {
/* input events are propagated to children
other events target ourselves */
switch (field) {
case 'input':
dt.time.addEventListener(field, proc);
dt.date.addEventListener(field, proc);
break;
default:
dt._addEventListener(field, proc);
}
}
}
function init_date_time() {
for (let dt of document.getElementsByClassName("date-time")) {
init_date_time_single(dt);
}
}
|