blob: 106ec0fd20d5fd2e1b4d4b2f628080a703ad8578 (
plain) (
blame)
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
import DefaultSettings from '../../shared/settings/default';
import * as settingsValues from '../../shared/settings/values';
export default class Setting {
constructor({ source, json, form }) {
this.obj = {
source, json, form
};
}
get source() {
return this.obj.source;
}
get json() {
return this.obj.json;
}
get form() {
return this.obj.form;
}
value() {
let value = JSON.parse(DefaultSettings.json);
if (this.obj.source === 'json') {
value = settingsValues.valueFromJson(this.obj.json);
} else if (this.obj.source === 'form') {
value = settingsValues.valueFromForm(this.obj.form);
}
if (!value.properties) {
value.properties = {};
}
return { ...settingsValues.valueFromJson(DefaultSettings.json), ...value };
}
serialize() {
return this.obj;
}
static deserialize(obj) {
return new Setting({ source: obj.source, json: obj.json, form: obj.form });
}
static defaultSettings() {
return new Setting({
source: DefaultSettings.source,
json: DefaultSettings.json,
form: {},
});
}
}
|