formbuilder-lhcforms 11.0.15 → 11.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,393 @@
1
+ {
2
+ "formLayout": {
3
+ "targetPage": "extensionResource",
4
+ "basic": [
5
+ {
6
+ "showFields": [
7
+ {"field": "url", "col": 12},
8
+ {"field": "__$isValueX", "col": 12},
9
+ {"field": "__$valueTypeCategory", "col": 12},
10
+ {"field": "__$valueTypePrimitive", "col": 12},
11
+ {"field": "__$valueGeneralPurposeDatatype", "col": 12},
12
+ {"field": "__$valueMetadataType", "col": 12},
13
+ {"field": "__$valueSpecialPurposeDatatype", "col": 12},
14
+ {"field": "extension", "col": 12 },
15
+ ]
16
+ }
17
+ ],
18
+ },
19
+ // The keys are jsonpath expressions.
20
+ overridePropertyLabels: {
21
+ '$.properties.__$valueTypeCategory': 'Value Type Category',
22
+ '$.properties.__$valueTypePrimitive': 'Primitive Type',
23
+ '$.properties.__$valueGeneralPurposeDatatype': 'Value Type',
24
+ '$.properties.__$valueMetadataType': 'Value Type',
25
+ '$.properties.__$valueSpecialPurposeDatatype': 'Value Type',
26
+ '$.properties.__$isValueX': 'Value or extension?',
27
+ '$.properties.extension': 'Extensions',
28
+ '$.properties.valueExpression': 'Value expression',
29
+ '$.properties.valueExpression.properties.name': 'Name',
30
+ '$.properties.valueExpression.properties.description': 'Description',
31
+ '$.properties.valueExpression.properties.language': 'Language',
32
+ '$.properties.valueExpression.properties.expression': 'Expression',
33
+ '$.properties.valueCoding': 'Value coding',
34
+ '$.properties.valueCoding.properties.code': 'Code',
35
+ '$.properties.valueCoding.properties.display': 'Display',
36
+ '$.properties.valueCoding.properties.system': 'System',
37
+ '$.properties.valuePeriod': 'Value period',
38
+ '$.properties.valueAddress.properties.period': 'Period',
39
+ '$.properties.valueContactPoint.properties.period': 'Period',
40
+ '$.properties.valueHumanName.properties.period': 'Period',
41
+ '$.properties.valueIdentifier.properties.period': 'Period',
42
+ '$.properties.valueContactDetail.properties.telecom.items.properties.period': 'Period',
43
+ '$.properties.valueContributor.properties.contact.items.properties.telecom.items.properties.period': 'Period',
44
+ '$.properties.valuePositiveInt': 'Value Positive Integer',
45
+ '$.properties.valueUnsignedInt': 'Value Unsigned Integer'
46
+ },
47
+ // Specify widget layout.
48
+ // id is widget schema registry defined in lforms-widget-registry.ts
49
+ // Label classes and control classes are used in the widget templates to fine tune widget layout positions
50
+ widgets: {
51
+ string: {
52
+ id: "string",
53
+ labelPosition: "left",
54
+ labelClasses: "col-sm-2 m-0 px-1",
55
+ controlClasses: "col-sm-10 m-0 p-0"
56
+ },
57
+ textarea: {
58
+ id: "textarea",
59
+ labelPosition: "left",
60
+ labelClasses: "col-sm-2 m-0 px-1",
61
+ controlClasses: "col-sm-10 m-0 p-0",
62
+ rows: 3
63
+ },
64
+ jsonStringify: {
65
+ id: "string",
66
+ controlClasses: "col-sm-10 m-0 p-0",
67
+ tooltipClass: "custom-tooltip-class",
68
+ readonly: true,
69
+ tooltipFormat: "json"
70
+ },
71
+ urlMandatory: {
72
+ id: "url",
73
+ labelPosition: "left",
74
+ labelClasses: "col-sm-2 m-0 px-1",
75
+ controlClasses: "col-sm-10 m-0 p-0",
76
+ showEmptyError: true,
77
+ "note": "* This field is mandatory."
78
+ },
79
+ url: {
80
+ id: "url",
81
+ labelPosition: "left",
82
+ labelClasses: "col-sm-2 m-0 px-1",
83
+ controlClasses: "col-sm-10 m-0 p-0",
84
+ },
85
+ primitiveSelect: {
86
+ id: "select",
87
+ labelPosition: "left",
88
+ labelClasses: "col-sm-2 m-0 px-1",
89
+ controlClasses: "col-sm-10 p-0",
90
+ selectOptionsMap: {
91
+ // Transform value to display string.
92
+ // Applies the methods in sequential order feeding the result in each step
93
+ // into the next method.
94
+ transform: [
95
+ {
96
+ "method": "regexReplace",
97
+ "expression": "^value([A-Z].*)$",
98
+ "flags": "g",
99
+ "substitution": "$1",
100
+ },
101
+ {
102
+ "method": "lowerCaseFirstChar"
103
+ }
104
+ ],
105
+ }
106
+ },
107
+ complexSelect: {
108
+ id: "select",
109
+ labelPosition: "left",
110
+ labelClasses: "col-sm-2 m-0 px-1",
111
+ controlClasses: "col-sm-10 p-0",
112
+ selectOptionsMap: {
113
+ // Transform value to display string.
114
+ // Applies the methods in sequential order feeding the result in each step
115
+ // into the next method.
116
+ transform: [
117
+ {
118
+ "method": "regexReplace",
119
+ "expression": "^value([A-Z].*)$",
120
+ "flags": "g",
121
+ "substitution": "$1",
122
+ },
123
+ {
124
+ "method": "camelToTitleCase"
125
+ }
126
+ ],
127
+ }
128
+ },
129
+ select: {
130
+ id: "select",
131
+ labelPosition: "left",
132
+ labelClasses: "col-sm-2 m-0 px-1",
133
+ controlClasses: "col-sm-10 p-0",
134
+ addEmptyOption: true,
135
+ },
136
+ boolean: {
137
+ "id": "boolean-radio",
138
+ "layout": "row",
139
+ "labelPosition": "left",
140
+ "labelClasses": "col-2 px-1",
141
+ "controlClasses": "col-auto ps-0 btn-group btn-group-sm",
142
+ },
143
+ date: {
144
+ id: "date",
145
+ labelPosition: "left",
146
+ labelClasses: "col-sm-2 m-0 px-1",
147
+ controlClasses: "col-sm-3",
148
+ placeholder: 'yyyy-MM-dd'
149
+ },
150
+ dateTime: {
151
+ id: "datetime",
152
+ labelPosition: "left",
153
+ labelClasses: "col-sm-2 m-0 px-1",
154
+ controlClasses: "col-sm-3",
155
+ placeholder: 'yyyy-MM-dd hh:mm:ss (AM|PM)'
156
+ },
157
+ dateRange: {
158
+ id: "date-range",
159
+ labelPosition: "left",
160
+ labelClasses: "col-sm-2 m-0 px-1",
161
+ controlClasses: "col-sm-6",
162
+ showFields: [
163
+ {"field": "start", "col": 6},
164
+ {"field": "end", "col": 6}
165
+ ]
166
+ },
167
+ instant: {
168
+ id: "instant",
169
+ labelPosition: "left",
170
+ labelClasses: "col-sm-2 m-0 px-1",
171
+ controlClasses: "col-sm-3",
172
+ placeholder: 'yyyy-MM-dd hh:mm:ss (AM|PM)'
173
+ },
174
+ time: {
175
+ id: "time",
176
+ labelPosition: "left",
177
+ labelClasses: "col-sm-2 m-0 px-1",
178
+ controlClasses: "col-sm-3",
179
+ placeholder: 'hh:mm:ss'
180
+ },
181
+ integer: {
182
+ id: "integer",
183
+ labelPosition: "left",
184
+ labelClasses: "col-sm-2 m-0 px-1",
185
+ controlClasses: "col-sm-10 m-0 p-0"
186
+ },
187
+ "positive-integer": {
188
+ id: "positive-integer",
189
+ labelPosition: "left",
190
+ labelClasses: "col-sm-2 m-0 px-1",
191
+ controlClasses: "col-sm-10 m-0 p-0"
192
+ },
193
+ "unsigned-integer": {
194
+ id: "unsigned-integer",
195
+ labelPosition: "left",
196
+ labelClasses: "col-sm-2 m-0 px-1",
197
+ controlClasses: "col-sm-10 m-0 p-0"
198
+ },
199
+ number: {
200
+ id: "number",
201
+ labelPosition: "left",
202
+ labelClasses: "col-sm-2 m-0 px-1",
203
+ controlClasses: "col-sm-10 m-0 p-0"
204
+ },
205
+ expression: {
206
+ "id": "lfb-object",
207
+ "labelPosition": "left",
208
+ "labelClasses": "px-1",
209
+ "childOffsetClass": "ps-4",
210
+ "controlClasses": "col-sm-10",
211
+ "showFields": [
212
+ {"field": "name"},
213
+ {"field": "description"},
214
+ {"field": "language"},
215
+ {"field": "expression"},
216
+ ]
217
+ },
218
+ coding: {
219
+ "id": "lfb-object",
220
+ "labelPosition": "left",
221
+ "labelClasses": "px-1",
222
+ "childOffsetClass": "ps-4",
223
+ "controlClasses": "col-sm-10",
224
+ "showFields": [
225
+ {"field": "display"},
226
+ {"field": "code"},
227
+ {"field": "system"}
228
+ ]
229
+ },
230
+ extension: {
231
+ "id": "extension",
232
+ "noTableLabel": true,
233
+ "addEditAction": true,
234
+ "labelPosition": "left",
235
+ "labelClasses": "col-sm-2 px-1",
236
+ "controlClasses": "col-sm-10",
237
+ "addButtonLabel": "Add new extension",
238
+ "addButtonTitle": "Note that the extensions added by other UI elements will be disabled for editing here.",
239
+ "showFields": [
240
+ // The fields here are canonical paths of FormProperty.
241
+ {"field": "url", "col": 4, "nolabel": true},
242
+ {"field": "__$valueType", "col": 2, "nolabel": true},
243
+ {"field": "__$stringify", "col": 5, "nolabel": true}
244
+ ]
245
+ },
246
+ valueTypeCategory: {
247
+ id: "lb-radio",
248
+ "labels": {
249
+ "__$valueTypePrimitive": "Primitive type",
250
+ "__$valueGeneralPurposeDatatype": "General purpose datatype",
251
+ "__$valueMetadataType": "Metadata type",
252
+ "__$valueSpecialPurposeDatatype": "Special purpose datatype"
253
+ },
254
+ labelPosition: "left",
255
+ labelClasses: "col-sm-2 m-0 px-1",
256
+ controlClasses: "btn-group btn-group-sm ps-0 col-sm-auto"
257
+ },
258
+ object: {
259
+ "id": "lfb-object",
260
+ "labelPosition": "left",
261
+ "labelClasses": "px-1",
262
+ "childOffsetClass": "ps-4",
263
+ "controlClasses": "col-sm-10",
264
+ },
265
+ array: {
266
+ "id": "array",
267
+ "noTableLabel": true,
268
+ "labelPosition": "left",
269
+ "labelClasses": "px-1",
270
+ "childOffsetClass": "ps-0",
271
+ "arrayBodyClasses": "col-sm-12 shadow rounded p-1 mb-1",
272
+ "controlClasses": "col-sm-10",
273
+ "arrayItemRowClasses": "col-sm-12 row m-0 p-1 lfb-hover-scope",
274
+ "arrayItemLabelClasses": "lfb-array-item-gutter-narrow d-flex align-items-start p-1",
275
+ "arrayItemControlClasses": "col p-0 lfb-array-item-control",
276
+ "arrayItemLabelSpacerClasses": "lfb-array-item-gutter-narrow",
277
+ "arrayAddButtonClasses": "col p-0 my-1",
278
+ "arrayItemDeleteClasses": "lfb-array-item-delete d-flex justify-content-center align-items-start p-1",
279
+ "arrayAddButtonActionSpacerClasses": "lfb-array-item-delete",
280
+ "deleteButtonAfterControl": true,
281
+ "collapseButtonNextToLabel": true,
282
+ "addButtonLabel": "Add new item",
283
+ },
284
+ hidden: {
285
+ id: "hidden"
286
+ },
287
+ },
288
+
289
+ schemaTypeWidgetMap: {
290
+ 'boolean': 'boolean',
291
+ 'string': 'string',
292
+ 'integer': 'integer',
293
+ 'number': 'number',
294
+ 'object': 'object',
295
+ 'array': 'array',
296
+ },
297
+ // Map property: Each widget type is mapped to fields with jsonpath of its schema.
298
+ widgetsMap: {
299
+ // List of fields implementing this widget.
300
+ hidden: [
301
+ '$..properties.id'
302
+ ],
303
+ string: [
304
+ '$.properties.valueCode',
305
+ '$.properties.valueDecimal',
306
+ '$.properties.valueId',
307
+ '$.properties.valueOid',
308
+ '$.properties.valueString',
309
+ '$.properties.valueTime',
310
+ '$.properties.valueUuid',
311
+ '$.properties.valueCoding.properties.display',
312
+ '$.properties.valueCoding.properties.code',
313
+ '$.properties.valueCoding.properties.system',
314
+ '$.properties.valueExpression.properties.name',
315
+ ],
316
+ textarea: [
317
+ '$.properties.valueMarkdown',
318
+ '$.properties.valueBase64Binary',
319
+ '$.properties.valueExpression.properties.description',
320
+ '$.properties.valueExpression.properties.expression'
321
+ ],
322
+ urlMandatory: [
323
+ '$.properties.url',
324
+ ],
325
+ url: [
326
+ '$.properties.valueCanonical',
327
+ '$.properties.valueUrl',
328
+ '$.properties.valueUri'
329
+ ],
330
+ boolean: [
331
+ '$.properties.valueBoolean',
332
+ ],
333
+ number: [
334
+ '$.properties.valueDecimal',
335
+ ],
336
+ integer: [
337
+ '$.properties.valueInteger',
338
+ ],
339
+ "positive-integer": [
340
+ '$.properties.valuePositiveInt',
341
+ ],
342
+ "unsigned-integer": [
343
+ '$.properties.valueUnsignedInt',
344
+ ],
345
+ time: [
346
+ '$.properties.valueTime',
347
+ ],
348
+ date: [
349
+ '$.properties.valueDate',
350
+ ],
351
+ dateTime: [
352
+ '$.properties.valueDateTime',
353
+ ],
354
+ dateRange: [
355
+ '$.properties.valuePeriod',
356
+ '$.properties.valueAddress.properties.period',
357
+ '$.properties.valueContactPoint.properties.period',
358
+ '$.properties.valueHumanName.properties.period',
359
+ '$.properties.valueIdentifier.properties.period',
360
+ '$.properties.valueContactDetail.properties.telecom.items.properties.period',
361
+ '$.properties.valueContributor.properties.contact.items.properties.telecom.items.properties.period',
362
+ ],
363
+ instant: [
364
+ '$.properties.valueInstant',
365
+ ],
366
+ expression: [
367
+ '$.properties.valueExpression',
368
+ ],
369
+ coding: [
370
+ '$.properties.valueCoding',
371
+ ],
372
+ select: [
373
+ '$.properties.valueExpression.properties.language',
374
+ ],
375
+ primitiveSelect: [
376
+ '$.properties.__$valueTypePrimitive',
377
+ ],
378
+ complexSelect: [
379
+ '$.properties.__$valueGeneralPurposeDatatype',
380
+ '$.properties.__$valueMetadataType',
381
+ '$.properties.__$valueSpecialPurposeDatatype'
382
+ ],
383
+ extension: [
384
+ '$.properties.extension',
385
+ ],
386
+ valueTypeCategory: [
387
+ '$.properties.__$valueTypeCategory',
388
+ ],
389
+ jsonStringify: [
390
+ '$.properties.__$stringify',
391
+ ]
392
+ }
393
+ }