1 | export default function setDataObjectField(dataObject, field, passedValue) {
|
2 | const fieldDefinition = dataObject.getFields(field);
|
3 |
|
4 | let value;
|
5 |
|
6 | if (
|
7 | passedValue &&
|
8 | typeof passedValue === "object" &&
|
9 | "target" in passedValue &&
|
10 | passedValue.target
|
11 | ) {
|
12 | let elem = passedValue.target;
|
13 | if (elem.type === "checkbox") {
|
14 | value = elem.checked;
|
15 | } else if ("value" in elem) {
|
16 | value = elem.value;
|
17 | } else {
|
18 | value = passedValue;
|
19 | }
|
20 | } else {
|
21 | value = passedValue;
|
22 | }
|
23 |
|
24 | if (fieldDefinition.nullable && fieldDefinition.type === "string" && !value) {
|
25 | value = null;
|
26 | }
|
27 |
|
28 | if (fieldDefinition !== null && value !== null) {
|
29 | if (fieldDefinition.type === "number") {
|
30 | value = Number(value);
|
31 | } else if (["date", "datetime"].includes(fieldDefinition.type) && !(value instanceof Date)) {
|
32 | value = new Date(value);
|
33 | }
|
34 | }
|
35 |
|
36 | dataObject.currentRow(field, value);
|
37 | }
|