-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmedblocksui.config.cjs
52 lines (49 loc) · 1.91 KB
/
medblocksui.config.cjs
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
52
const transformations = {
'DV_QUANTITY': (n) => [{
name: 'Quantity',
html: `<mb-quantity path="${n.path}" label="${n.name}">
${n.inputs && n.inputs[1] && n.inputs[1].list ? n.inputs[1].list.map(unit => `<mb-unit unit="${unit.value}" label="${unit.label}"></mb-unit>`).join('\n') : ''}
</mb-quantity>`
},
],
'DV_CODED_TEXT': (n) => [
{
name: 'Select',
html: `<mb-select path="${n.path}" label="${n.name || ''}">
${n.inputs && n.inputs[0] && n.inputs[0].list ? n.inputs[0].list.map(option => `<mb-option code="${option.value}" display="${option.label}"></mb-option>`).join('\n') : ''}
</mb-select>`
}
],
'DV_COUNT': (n) => [
],
'DV_TEXT': (n) => [
{ name: 'Input', html: `<mb-input path="${n.path}" label="${n.name || ''}"></mb-input>` },
{ name: 'Textarea', html: `<mb-input textarea path="${n.path}" label="${n.name || ''}"></mb-input>` }
],
'DV_DATE_TIME': (n) => [
{ name: 'Date & Time', html: `<mb-date time path="${n.path}" label="${n.name || ''}"></mb-date>` },
{ name: 'Date', html: `<mb-date path="${n.path}" label="${n.name || ''}"></mb-date>` }
],
'DV_DATE': (n) => [
{ name: 'Date', html: `<mb-date path="${n.path}" label="${n.name || ''}"></mb-date>` },
],
'context': (n) => [
{ name: 'Context', html: `<mb-context path=${n.path}></mb-context>` }
],
// 'wrapper': (html) => `<div class="field">${html}</div>`
}
module.exports.default = (leaf) => {
if (leaf['inContext']) {
return transformations['context'](leaf)
}
const fn = transformations[leaf.rmType]
if (fn) {
const nodes = fn(leaf)
const wrapper = transformations['wrapper']
if (wrapper) {
return nodes.map(node => ({ ...node, html: wrapper(node.html) }))
}
return nodes
}
return []
}