@researchdatabox/redbox-core 0.0.1-beta.10213 → 0.0.1-beta.10300

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.
Files changed (110) hide show
  1. package/dist/CoreController.d.ts +8 -0
  2. package/dist/CoreController.d.ts.map +1 -1
  3. package/dist/CoreController.js +87 -52
  4. package/dist/api-routes/groups/export.js +2 -2
  5. package/dist/config/brandingConfigurationDefaults.config.d.ts +1 -1
  6. package/dist/config/brandingConfigurationDefaults.config.d.ts.map +1 -1
  7. package/dist/config/brandingConfigurationDefaults.config.js +9 -230
  8. package/dist/config/dashboardtype.config.d.ts +7 -0
  9. package/dist/config/dashboardtype.config.d.ts.map +1 -1
  10. package/dist/config/dashboardtype.config.js +9 -89
  11. package/dist/config/dashboardview.config.d.ts +7 -0
  12. package/dist/config/dashboardview.config.d.ts.map +1 -1
  13. package/dist/config/dashboardview.config.js +9 -134
  14. package/dist/config/http.config.d.ts +2 -0
  15. package/dist/config/http.config.d.ts.map +1 -1
  16. package/dist/config/http.config.js +47 -1
  17. package/dist/config/jsonld.config.d.ts.map +1 -1
  18. package/dist/config/jsonld.config.js +2 -21
  19. package/dist/config/record.config.d.ts.map +1 -1
  20. package/dist/config/record.config.js +2 -9
  21. package/dist/config/recordtype.config.d.ts +8 -0
  22. package/dist/config/recordtype.config.d.ts.map +1 -1
  23. package/dist/config/recordtype.config.js +10 -660
  24. package/dist/config/routes.config.d.ts.map +1 -1
  25. package/dist/config/routes.config.js +2 -3
  26. package/dist/config/storage.config.d.ts.map +1 -1
  27. package/dist/config/storage.config.js +7 -1
  28. package/dist/config/views.config.d.ts.map +1 -1
  29. package/dist/config/views.config.js +2 -6
  30. package/dist/config/workflow.config.d.ts +7 -0
  31. package/dist/config/workflow.config.d.ts.map +1 -1
  32. package/dist/config/workflow.config.js +9 -194
  33. package/dist/config/workspacetype.config.d.ts +7 -0
  34. package/dist/config/workspacetype.config.d.ts.map +1 -1
  35. package/dist/config/workspacetype.config.js +9 -10
  36. package/dist/configmodels/DoiPublishing.d.ts +1 -1
  37. package/dist/configmodels/DoiPublishing.d.ts.map +1 -1
  38. package/dist/configmodels/FigsharePublishing.d.ts +24 -1
  39. package/dist/configmodels/FigsharePublishing.d.ts.map +1 -1
  40. package/dist/configmodels/FigsharePublishing.js +152 -131
  41. package/dist/constants/export.d.ts +2 -0
  42. package/dist/constants/export.d.ts.map +1 -0
  43. package/dist/constants/export.js +8 -0
  44. package/dist/controllers/ExportController.d.ts.map +1 -1
  45. package/dist/controllers/ExportController.js +4 -3
  46. package/dist/controllers/RecordController.d.ts.map +1 -1
  47. package/dist/controllers/RecordController.js +2 -1
  48. package/dist/controllers/webservice/ExportController.d.ts.map +1 -1
  49. package/dist/controllers/webservice/ExportController.js +4 -3
  50. package/dist/form-config/index.d.ts +7 -0
  51. package/dist/form-config/index.d.ts.map +1 -1
  52. package/dist/form-config/index.js +8 -5
  53. package/dist/hooks/hookDiscovery.d.ts +20 -0
  54. package/dist/hooks/hookDiscovery.d.ts.map +1 -0
  55. package/dist/hooks/hookDiscovery.js +186 -0
  56. package/dist/hooks/hookResources.d.ts +23 -0
  57. package/dist/hooks/hookResources.d.ts.map +1 -0
  58. package/dist/hooks/hookResources.js +136 -0
  59. package/dist/hooks/index.d.ts +4 -0
  60. package/dist/hooks/index.d.ts.map +1 -1
  61. package/dist/hooks/index.js +14 -2
  62. package/dist/index.d.ts +4 -0
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.js +14 -2
  65. package/dist/loader/index.d.ts.map +1 -1
  66. package/dist/loader/index.js +21 -62
  67. package/dist/services/EmailService.d.ts +2 -8
  68. package/dist/services/EmailService.d.ts.map +1 -1
  69. package/dist/services/EmailService.js +8 -26
  70. package/dist/services/FigshareService.d.ts.map +1 -1
  71. package/dist/services/FigshareService.js +5 -4
  72. package/dist/services/NamedQueryService.d.ts.map +1 -1
  73. package/dist/services/NamedQueryService.js +3 -16
  74. package/dist/services/RecordsService.d.ts +1 -0
  75. package/dist/services/RecordsService.d.ts.map +1 -1
  76. package/dist/services/RecordsService.js +30 -10
  77. package/dist/services/ReportsService.d.ts +0 -5
  78. package/dist/services/ReportsService.d.ts.map +1 -1
  79. package/dist/services/ReportsService.js +2 -19
  80. package/dist/services/StandardDatastreamService.d.ts +7 -0
  81. package/dist/services/StandardDatastreamService.d.ts.map +1 -1
  82. package/dist/services/StandardDatastreamService.js +127 -27
  83. package/dist/services/TemplateService.d.ts +0 -14
  84. package/dist/services/TemplateService.d.ts.map +1 -1
  85. package/dist/services/TemplateService.js +4 -45
  86. package/dist/services/ViewUtilsService.d.ts +5 -1
  87. package/dist/services/ViewUtilsService.d.ts.map +1 -1
  88. package/dist/services/ViewUtilsService.js +38 -46
  89. package/dist/services/doi-v2/bindings.d.ts.map +1 -1
  90. package/dist/services/doi-v2/bindings.js +2 -11
  91. package/dist/services/figshare-v2/assets.d.ts +2 -1
  92. package/dist/services/figshare-v2/assets.d.ts.map +1 -1
  93. package/dist/services/figshare-v2/assets.js +144 -89
  94. package/dist/services/figshare-v2/bindings.d.ts +0 -1
  95. package/dist/services/figshare-v2/bindings.d.ts.map +1 -1
  96. package/dist/services/figshare-v2/bindings.js +2 -12
  97. package/dist/services/figshare-v2/context.d.ts.map +1 -1
  98. package/dist/services/figshare-v2/context.js +11 -2
  99. package/dist/storage/TusStorageManagerDataStore.d.ts.map +1 -1
  100. package/dist/storage/TusStorageManagerDataStore.js +14 -1
  101. package/dist/utilities/ContextVariableUtils.d.ts +3 -1
  102. package/dist/utilities/ContextVariableUtils.d.ts.map +1 -1
  103. package/dist/utilities/ContextVariableUtils.js +25 -7
  104. package/package.json +5 -5
  105. package/dist/form-config/dataRecord-1.0-draft.d.ts +0 -4
  106. package/dist/form-config/dataRecord-1.0-draft.d.ts.map +0 -1
  107. package/dist/form-config/dataRecord-1.0-draft.js +0 -1042
  108. package/dist/form-config/default-1.0-draft.d.ts +0 -4
  109. package/dist/form-config/default-1.0-draft.d.ts.map +0 -1
  110. package/dist/form-config/default-1.0-draft.js +0 -1156
@@ -1,1156 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const formConfig = {
4
- name: 'default-1.0-draft',
5
- type: 'rdmp',
6
- debugValue: true,
7
- domElementType: 'form',
8
- defaultComponentConfig: {
9
- defaultComponentCssClasses: 'row',
10
- },
11
- attachmentFields: ["file_upload_1"],
12
- editCssClasses: 'redbox-form form',
13
- validationGroups: {
14
- all: {
15
- description: 'Validate all fields with validators.',
16
- initialMembership: 'all',
17
- },
18
- none: {
19
- description: 'Validate none of the fields.',
20
- initialMembership: 'none',
21
- },
22
- minimumCreate: {
23
- description: 'Fields that must be valid to create a new record.',
24
- initialMembership: 'none',
25
- },
26
- recommended: {
27
- description: 'Recommended fields that should be encouraged but not enforced.',
28
- initialMembership: 'none',
29
- },
30
- transitionDraftToSubmitted: {
31
- description: 'Fields that must be valid to transition from draft to submitted.',
32
- initialMembership: 'all',
33
- },
34
- },
35
- // Validators that operate on multiple fields.
36
- validators: [{ class: 'different-values', config: { controlNames: ['text_1_event', 'text_2'] } }],
37
- // operations: [
38
- // // sample operations...that can be referenced by expressions
39
- // {
40
- // class: "script",// or "valueEquals", "valueInList", "hasKey" etc.
41
- // config: {
42
- // name: "runSomeOperationThatNeedsTheEntireFormData", // the unique name of the operation
43
- // template: "<% %>"
44
- // }
45
- // },
46
- // {
47
- // class: "valueEquals",
48
- // config: {
49
- // name: "setVisibilityByValueEquals",
50
- // config: {
51
- // }
52
- // }
53
- // },
54
- // {
55
- // class: "valueMatches",
56
- // config: {
57
- // name: "setVisibilityByValueMatches",
58
- // config: {
59
- // }
60
- // }
61
- // },
62
- // ],
63
- // // Operations that will run every time form data changes
64
- // expressions: [
65
- // {
66
- // name: "runSomeOperationThatNeedsTheEntireFormData",
67
- // description: '',
68
- // config: {
69
- // template: ``,
70
- // condition: ``,
71
- // // target: ``
72
- // }
73
- // }
74
- // ],
75
- componentDefinitions: [
76
- {
77
- name: 'main_tab',
78
- layout: {
79
- class: 'TabLayout',
80
- config: {
81
- // layout-specific config goes here
82
- hostCssClasses: 'd-flex align-items-start',
83
- buttonSectionCssClass: 'nav flex-column nav-pills me-5',
84
- tabPaneCssClass: 'tab-pane fade',
85
- tabPaneActiveCssClass: 'active show',
86
- },
87
- },
88
- component: {
89
- class: 'TabComponent',
90
- config: {
91
- hostCssClasses: 'tab-content',
92
- tabs: [
93
- {
94
- name: 'tab_1',
95
- layout: {
96
- class: 'TabContentLayout',
97
- config: {
98
- buttonLabel: 'Tab 1',
99
- },
100
- },
101
- component: {
102
- class: 'TabContentComponent',
103
- config: {
104
- selected: true,
105
- componentDefinitions: [
106
- {
107
- name: 'text_block',
108
- component: {
109
- class: 'ContentComponent',
110
- config: {
111
- content: 'My first text block component!!!',
112
- template: '<h3>content default value content: {{content}}</h3>',
113
- },
114
- },
115
- },
116
- {
117
- "name": "contributor_ci",
118
- "constraints": {
119
- "authorization": {
120
- "allowRoles": []
121
- },
122
- "allowModes": []
123
- },
124
- "overrides": {
125
- "reusableFormName": "standard-contributor-fields-group"
126
- },
127
- "component": {
128
- "class": "ReusableComponent",
129
- "config": {
130
- "readonly": false,
131
- "visible": true,
132
- "editMode": true,
133
- "label": "contributor_ci",
134
- "disabled": false,
135
- "autofocus": false,
136
- "componentDefinitions": [
137
- {
138
- "name": "standard_contributor_fields_group",
139
- "constraints": {
140
- "authorization": {
141
- "allowRoles": []
142
- },
143
- "allowModes": []
144
- },
145
- "overrides": {
146
- "replaceName": "contributor_ci"
147
- },
148
- "component": {
149
- "class": "GroupComponent",
150
- "config": {
151
- "readonly": false,
152
- "visible": true,
153
- "editMode": true,
154
- "label": "contributor_ci",
155
- "disabled": false,
156
- "autofocus": false,
157
- "componentDefinitions": []
158
- }
159
- },
160
- "model": {
161
- "class": "GroupModel",
162
- "config": {
163
- "defaultValue": {
164
- "name": "@user_name",
165
- "email": "@user_email",
166
- "username": "@user_username",
167
- "text_full_name": "@user_name"
168
- },
169
- "validators": []
170
- }
171
- },
172
- "layout": {
173
- "class": "DefaultLayout",
174
- "config": {
175
- "readonly": false,
176
- "visible": true,
177
- "editMode": true,
178
- "label": "contributor_ci",
179
- "disabled": false,
180
- "autofocus": false,
181
- "labelRequiredStr": "*",
182
- "helpText": "",
183
- "cssClassesMap": {},
184
- "helpTextVisibleOnInit": false,
185
- "helpTextVisible": false
186
- }
187
- }
188
- }
189
- ]
190
- }
191
- }
192
- },
193
- // {
194
- // name: 'debug_checkbox',
195
- // layout: {
196
- // class: 'DefaultLayout',
197
- // config: {
198
- // label: 'Debug Checkbox',
199
- // helpText: 'Checkbox some help text - single selection mode',
200
- // }
201
- // },
202
- // model: {
203
- // class: 'CheckboxInputModel',
204
- // config: {
205
- // defaultValue: 'debugging',
206
- // }
207
- // },
208
- // component: {
209
- // class: 'CheckboxInputComponent',
210
- // config: {
211
- // options: [
212
- // { label: 'Debug', value: 'debugging' }
213
- // ],
214
- // tooltip: 'Checkbox tooltip',
215
- // multipleValues: false
216
- // }
217
- // }
218
- // },
219
- {
220
- name: 'textarea_1',
221
- layout: {
222
- class: 'DefaultLayout',
223
- config: {
224
- label: 'Textarea some label',
225
- helpText: 'Textarea some help text',
226
- },
227
- },
228
- model: {
229
- class: 'TextAreaModel',
230
- config: {
231
- defaultValue: 'Textarea hello world!!!',
232
- },
233
- },
234
- component: {
235
- class: 'TextAreaComponent',
236
- config: {
237
- rows: 7,
238
- cols: 80,
239
- tooltip: 'Textarea tooltip',
240
- },
241
- },
242
- // expressions: [
243
- // {
244
- // name: "setVisibilityByValueScript",
245
- // config: {
246
- // sources: [
247
- // "tab1.text_1_event/value",
248
- // "tab1.text_1_event/metadata"
249
- // ]
250
- // }
251
- // }
252
- // ]
253
- },
254
- {
255
- name: 'rich_text_1',
256
- layout: {
257
- class: 'DefaultLayout',
258
- config: {
259
- label: 'Rich text editor',
260
- helpText: 'Use the rich text editor to format content.',
261
- },
262
- },
263
- model: {
264
- class: 'RichTextEditorModel',
265
- config: {
266
- defaultValue: '<p><strong>Rich text test content</strong></p><p>Try headings, lists, links, and tables.</p>',
267
- },
268
- },
269
- component: {
270
- class: 'RichTextEditorComponent',
271
- config: {
272
- outputFormat: 'html',
273
- minHeight: '240px',
274
- placeholder: 'Start writing formatted content...',
275
- },
276
- },
277
- },
278
- {
279
- name: 'rich_text_markdown_1',
280
- layout: {
281
- class: 'DefaultLayout',
282
- config: {
283
- label: 'Rich text editor (Markdown output)',
284
- helpText: 'Stores Markdown while keeping rich text editing.',
285
- },
286
- },
287
- model: {
288
- class: 'RichTextEditorModel',
289
- config: {
290
- defaultValue: '## Markdown heading\n\nThis is **bold** and this is *italic*.',
291
- },
292
- },
293
- component: {
294
- class: 'RichTextEditorComponent',
295
- config: {
296
- outputFormat: 'markdown',
297
- minHeight: '240px',
298
- showSourceToggle: true,
299
- placeholder: 'Start writing markdown-backed rich text...',
300
- },
301
- },
302
- },
303
- {
304
- name: 'dropdown_1',
305
- layout: {
306
- class: 'DefaultLayout',
307
- config: {
308
- label: 'Dropdown some label',
309
- helpText: 'Dropdown some help text',
310
- },
311
- },
312
- model: {
313
- class: 'DropdownInputModel',
314
- config: {
315
- defaultValue: 'Dropdown hello world!!!',
316
- },
317
- },
318
- component: {
319
- class: 'DropdownInputComponent',
320
- config: {
321
- options: [
322
- { label: 'Option 1', value: 'option1' },
323
- { label: 'Option 2', value: 'option2' },
324
- { label: 'Option 3', value: 'option3' },
325
- ],
326
- tooltip: 'Dropdown tooltip',
327
- },
328
- },
329
- },
330
- {
331
- name: 'lookahead_1',
332
- layout: {
333
- class: 'DefaultLayout',
334
- config: {
335
- label: 'Lookahead example',
336
- helpText: 'Type to filter static options in a typeahead field.',
337
- },
338
- },
339
- model: {
340
- class: 'TypeaheadInputModel',
341
- config: {
342
- defaultValue: 'option2',
343
- },
344
- },
345
- component: {
346
- class: 'TypeaheadInputComponent',
347
- config: {
348
- sourceType: 'static',
349
- staticOptions: [
350
- { label: 'Option 1', value: 'option1' },
351
- { label: 'Option 2', value: 'option2' },
352
- { label: 'Option 3', value: 'option3' },
353
- { label: 'Another Option', value: 'another-option' },
354
- ],
355
- placeholder: 'Start typing to search...',
356
- minChars: 1,
357
- debounceMs: 200,
358
- maxResults: 10,
359
- requireSelection: true,
360
- valueMode: 'value',
361
- },
362
- },
363
- },
364
- {
365
- name: 'lookahead_party_1',
366
- layout: {
367
- class: 'DefaultLayout',
368
- config: {
369
- label: 'Party lookup',
370
- helpText: 'Type to search party records via named query.',
371
- },
372
- },
373
- model: {
374
- class: 'TypeaheadInputModel',
375
- config: {
376
- defaultValue: null,
377
- },
378
- },
379
- component: {
380
- class: 'TypeaheadInputComponent',
381
- config: {
382
- sourceType: 'namedQuery',
383
- queryId: 'party',
384
- labelField: 'metadata.fullName',
385
- valueField: 'oid',
386
- placeholder: '@lookup-placeholder-party',
387
- minChars: 1,
388
- debounceMs: 250,
389
- maxResults: 25,
390
- requireSelection: true,
391
- valueMode: 'value',
392
- },
393
- },
394
- },
395
- {
396
- name: 'lookahead_vocab_1',
397
- layout: {
398
- class: 'DefaultLayout',
399
- config: {
400
- label: 'ANZSRC ToA lookup',
401
- helpText: 'Type to search vocabulary entries from anzsrc-toa.',
402
- },
403
- },
404
- model: {
405
- class: 'TypeaheadInputModel',
406
- config: {
407
- defaultValue: null,
408
- },
409
- },
410
- component: {
411
- class: 'TypeaheadInputComponent',
412
- config: {
413
- sourceType: 'vocabulary',
414
- vocabRef: 'anzsrc-toa',
415
- placeholder: 'Start typing a ToA term...',
416
- minChars: 1,
417
- debounceMs: 250,
418
- maxResults: 25,
419
- requireSelection: true,
420
- valueMode: 'value',
421
- },
422
- },
423
- },
424
- {
425
- name: 'checkbox_1',
426
- layout: {
427
- class: 'DefaultLayout',
428
- config: {
429
- label: 'Checkbox some label (single value)',
430
- helpText: 'Checkbox some help text - single selection mode',
431
- },
432
- },
433
- model: {
434
- class: 'CheckboxInputModel',
435
- config: {
436
- defaultValue: 'option1',
437
- },
438
- },
439
- component: {
440
- class: 'CheckboxInputComponent',
441
- config: {
442
- options: [
443
- { label: 'Option 1', value: 'option1' },
444
- { label: 'Option 2', value: 'option2' },
445
- { label: 'Option 3', value: 'option3' },
446
- ],
447
- tooltip: 'Checkbox tooltip',
448
- multipleValues: false,
449
- },
450
- },
451
- },
452
- {
453
- name: 'checkbox_multiple',
454
- layout: {
455
- class: 'DefaultLayout',
456
- config: {
457
- label: 'Checkbox multiple values',
458
- helpText: 'Checkbox with multiple selection enabled',
459
- },
460
- },
461
- model: {
462
- class: 'CheckboxInputModel',
463
- config: {
464
- defaultValue: ['option1', 'option3'],
465
- },
466
- },
467
- component: {
468
- class: 'CheckboxInputComponent',
469
- config: {
470
- options: [
471
- { label: 'Multi Option 1', value: 'option1' },
472
- { label: 'Multi Option 2', value: 'option2' },
473
- { label: 'Multi Option 3', value: 'option3' },
474
- { label: 'Multi Option 4', value: 'option4' },
475
- ],
476
- tooltip: 'Multiple selection checkbox tooltip',
477
- multipleValues: true,
478
- },
479
- },
480
- },
481
- {
482
- name: 'radio_1',
483
- layout: {
484
- class: 'DefaultLayout',
485
- config: {
486
- label: 'Radio some label (single value)',
487
- helpText: 'Radio some help text - single selection mode',
488
- },
489
- },
490
- model: {
491
- class: 'RadioInputModel',
492
- config: {
493
- defaultValue: 'option1',
494
- },
495
- },
496
- component: {
497
- class: 'RadioInputComponent',
498
- config: {
499
- options: [
500
- { label: 'Option 1', value: 'option1' },
501
- { label: 'Option 2', value: 'option2' },
502
- { label: 'Option 3', value: 'option3' },
503
- ],
504
- tooltip: 'Checkbox tooltip',
505
- },
506
- },
507
- },
508
- {
509
- name: 'date_1',
510
- layout: {
511
- class: 'DefaultLayout',
512
- config: {
513
- label: 'Date1',
514
- helpText: 'Date1 some help text',
515
- },
516
- },
517
- model: {
518
- class: 'DateInputModel',
519
- config: {},
520
- },
521
- component: {
522
- class: 'DateInputComponent',
523
- },
524
- expressions: [
525
- {
526
- name: 'listenToRadio1Change',
527
- config: {
528
- template: `value = "option2"`,
529
- conditionKind: 'jsonpointer',
530
- condition: `/main_tab/tab_1/radio_1::field.value.changed`,
531
- target: `layout.visible`,
532
- },
533
- },
534
- ],
535
- },
536
- {
537
- name: 'date_2',
538
- layout: {
539
- class: 'DefaultLayout',
540
- config: {
541
- label: 'Date some label',
542
- helpText: 'Date some help text',
543
- },
544
- },
545
- model: {
546
- class: 'DateInputModel',
547
- config: {},
548
- },
549
- component: {
550
- class: 'DateInputComponent',
551
- config: {
552
- enableTimePicker: true,
553
- },
554
- },
555
- expressions: [
556
- {
557
- name: 'listenToDate1UIChange',
558
- config: {
559
- template: `event.meta.visible = true`,
560
- conditionKind: 'jsonpointer',
561
- condition: `/main_tab-layout/tab_1-layout/date_1-layout::field.ui-attribute.changed`,
562
- target: `layout.visible`,
563
- },
564
- },
565
- ],
566
- },
567
- {
568
- name: 'text_1_event',
569
- layout: {
570
- class: 'DefaultLayout',
571
- config: {
572
- label: 'TextField1 emitting events',
573
- helpText: 'This is a help text',
574
- },
575
- },
576
- model: {
577
- class: 'SimpleInputModel',
578
- config: {
579
- defaultValue: 'hello world!',
580
- validators: [{ class: 'required' }],
581
- },
582
- },
583
- component: {
584
- class: 'SimpleInputComponent',
585
- },
586
- },
587
- {
588
- name: 'text_2',
589
- layout: {
590
- class: 'DefaultLayout',
591
- config: {
592
- label: 'TextField2 with expression listening to text_1_event',
593
- helpText: 'This is a help text',
594
- },
595
- },
596
- model: {
597
- class: 'SimpleInputModel',
598
- config: {
599
- defaultValue: 'hello world 2!',
600
- validators: [
601
- // {class: 'pattern', config: {pattern: "prefix.*", description: "must start with prefix"}},
602
- // {class: 'minLength', message: "@validator-error-custom-text_2", config: {minLength: 3}},
603
- ],
604
- },
605
- },
606
- component: {
607
- class: 'SimpleInputComponent',
608
- },
609
- expressions: [
610
- {
611
- name: 'listenToText1Event',
612
- config: {
613
- template: `value & "__suffix"`,
614
- conditionKind: 'jsonpointer',
615
- condition: `/main_tab/tab_1/text_1_event::field.value.changed`,
616
- target: `model.value`,
617
- },
618
- },
619
- {
620
- name: 'listenToText1Event2',
621
- config: {
622
- template: `formData.text_2 & "__hasJSONata"`,
623
- conditionKind: 'jsonata',
624
- condition: `$contains($lowercase(formData.text_1_event), "jsonata")`,
625
- target: `model.value`,
626
- },
627
- },
628
- {
629
- name: 'listenToRepeatable1',
630
- config: {
631
- conditionKind: 'jsonata_query',
632
- condition: `$count(**[name="repeatable_textfield_1"].children) >= 2`,
633
- template: `formData.text_2 & "__repeatableMoreThan2"`,
634
- target: `model.value`,
635
- },
636
- },
637
- ],
638
- },
639
- {
640
- name: 'text_7',
641
- layout: {
642
- class: 'DefaultLayout',
643
- config: {
644
- label: 'TextField with default wrapper defined',
645
- helpText: 'This is a help text',
646
- },
647
- },
648
- model: {
649
- class: 'SimpleInputModel',
650
- config: {
651
- defaultValue: 'hello world 2!',
652
- validators: [
653
- {
654
- class: 'pattern',
655
- config: {
656
- pattern: "prefix.*",
657
- description: 'must start with prefix',
658
- },
659
- groups: { include: ['minimumCreate'] },
660
- },
661
- {
662
- class: 'minLength',
663
- message: '@validator-error-custom-text_7',
664
- config: { minLength: 3 },
665
- },
666
- ],
667
- },
668
- },
669
- component: {
670
- class: 'SimpleInputComponent',
671
- },
672
- expressions: [
673
- {
674
- name: 'text_7_set_validation_groups',
675
- config: {
676
- template: `{"initial": "empty", "groups": {"include":["none"]}}`,
677
- conditionKind: 'jsonata',
678
- condition: `formData.text_7 = "a"`,
679
- target: 'form.enabledValidationGroups',
680
- },
681
- },
682
- ]
683
- },
684
- {
685
- name: 'text_2_event',
686
- model: {
687
- class: 'SimpleInputModel',
688
- config: {
689
- defaultValue: 'hello world! component event',
690
- validators: [{ class: 'required' }],
691
- },
692
- },
693
- component: {
694
- class: 'SimpleInputComponent',
695
- config: {
696
- tooltip: 'text_2_event tooltip',
697
- type: 'text',
698
- },
699
- },
700
- },
701
- {
702
- name: 'text_2_component_event',
703
- layout: {
704
- class: 'DefaultLayout',
705
- config: {
706
- label: 'TextField with default wrapper defined',
707
- helpText: 'This is a help text',
708
- tooltip: 'text_2_component_event layout tooltip',
709
- },
710
- },
711
- model: {
712
- class: 'SimpleInputModel',
713
- config: {
714
- defaultValue: '',
715
- validators: [
716
- {
717
- class: 'required',
718
- groups: {
719
- include: ['recommended'],
720
- exclude: ['all', 'transitionDraftToSubmitted'],
721
- },
722
- },
723
- ],
724
- },
725
- },
726
- component: {
727
- class: 'SimpleInputComponent',
728
- config: {
729
- tooltip: 'text_2_component_event component tooltip 22222',
730
- type: 'text',
731
- },
732
- },
733
- },
734
- {
735
- name: 'text_3_event',
736
- model: {
737
- class: 'SimpleInputModel',
738
- config: {
739
- defaultValue: 'hello world! layout event',
740
- validators: [{ class: 'required' }],
741
- },
742
- },
743
- component: {
744
- class: 'SimpleInputComponent',
745
- },
746
- },
747
- {
748
- name: 'text_3_layout_event',
749
- layout: {
750
- class: 'DefaultLayout',
751
- config: {
752
- label: 'TextField with default wrapper defined',
753
- helpText: 'This is a help text',
754
- },
755
- },
756
- model: {
757
- class: 'SimpleInputModel',
758
- config: {
759
- defaultValue: 'hello world 2! layout expression',
760
- },
761
- },
762
- component: {
763
- class: 'SimpleInputComponent',
764
- },
765
- // expressions: {
766
- // 'layout.visible': {
767
- // template: `<% if(_.isEmpty(_.get(model,'text_3_event',''))) {
768
- // return false;
769
- // } else {
770
- // return true;
771
- // } %>`
772
- // }
773
- // }
774
- },
775
- ],
776
- },
777
- },
778
- },
779
- {
780
- name: 'tab_2',
781
- layout: {
782
- class: 'TabContentLayout',
783
- config: {
784
- buttonLabel: 'Tab 2',
785
- },
786
- },
787
- component: {
788
- class: 'TabContentComponent',
789
- config: {
790
- componentDefinitions: [
791
- {
792
- // first group component
793
- name: 'group_1_component',
794
- layout: {
795
- class: 'DefaultLayout',
796
- config: {
797
- label: 'Group label',
798
- helpText: 'Group help',
799
- },
800
- },
801
- model: {
802
- class: 'GroupModel',
803
- config: {
804
- defaultValue: {},
805
- },
806
- },
807
- component: {
808
- class: 'GroupComponent',
809
- config: {
810
- componentDefinitions: [
811
- {
812
- name: 'text_3',
813
- layout: {
814
- class: 'DefaultLayout',
815
- config: {
816
- label: 'TextField with default wrapper defined',
817
- helpText: 'This is a help text',
818
- },
819
- },
820
- model: {
821
- class: 'SimpleInputModel',
822
- config: {
823
- defaultValue: 'hello world 3!',
824
- },
825
- },
826
- component: {
827
- class: 'SimpleInputComponent',
828
- },
829
- },
830
- {
831
- name: 'text_4',
832
- model: {
833
- class: 'SimpleInputModel',
834
- config: {
835
- defaultValue: 'hello world 4!',
836
- },
837
- },
838
- component: {
839
- class: 'SimpleInputComponent',
840
- },
841
- },
842
- {
843
- // second group component, nested in first group component
844
- name: 'group_2_component',
845
- layout: {
846
- class: 'DefaultLayout',
847
- config: {
848
- label: 'Group2 label',
849
- helpText: 'Group 2 help',
850
- },
851
- },
852
- model: {
853
- class: 'GroupModel',
854
- config: {
855
- defaultValue: {},
856
- },
857
- },
858
- component: {
859
- class: 'GroupComponent',
860
- config: {
861
- componentDefinitions: [
862
- {
863
- name: 'text_5',
864
- layout: {
865
- class: 'DefaultLayout',
866
- config: {
867
- label: 'TextField with default wrapper defined',
868
- helpText: 'This is a help text',
869
- },
870
- },
871
- model: {
872
- class: 'SimpleInputModel',
873
- config: {
874
- defaultValue: 'hello world 5!',
875
- },
876
- },
877
- component: {
878
- class: 'SimpleInputComponent',
879
- },
880
- },
881
- ],
882
- },
883
- },
884
- },
885
- ],
886
- },
887
- },
888
- // expressions: {
889
- // 'layout.visible': {
890
- // template: `<% if(_.isEmpty(_.get(model,'text_3_event',''))) {
891
- // return false;
892
- // } else {
893
- // return true;
894
- // } %>`
895
- // }
896
- // }
897
- },
898
- {
899
- name: 'map_coverage',
900
- layout: {
901
- class: 'DefaultLayout',
902
- config: {
903
- label: 'Geographic coverage',
904
- helpText: 'Draw or import the geographic coverage area.',
905
- },
906
- },
907
- model: {
908
- class: 'MapModel',
909
- config: {
910
- defaultValue: { type: 'FeatureCollection', features: [] },
911
- },
912
- },
913
- component: {
914
- class: 'MapComponent',
915
- config: {
916
- zoom: 4,
917
- center: [-24.67, 134.07],
918
- enableImport: true,
919
- },
920
- },
921
- },
922
- {
923
- name: 'file_upload_1',
924
- layout: {
925
- class: 'DefaultLayout',
926
- config: {
927
- label: 'File upload',
928
- helpText: 'Attach one or more files to this record.',
929
- },
930
- },
931
- model: {
932
- class: 'FileUploadModel',
933
- config: {
934
- defaultValue: [],
935
- },
936
- },
937
- component: {
938
- class: 'FileUploadComponent',
939
- config: {
940
- allowUploadWithoutSave: true,
941
- companionUrl: '/companion',
942
- enabledSources: ['dropbox', 'googleDrive', 'onedrive'],
943
- uppyDashboardNote: 'Maximum upload size: 1 Gb per file',
944
- },
945
- },
946
- },
947
- {
948
- name: 'repeatable_textfield_1',
949
- model: {
950
- class: 'RepeatableModel',
951
- config: {
952
- defaultValue: ['hello world from repeatable, default!'],
953
- },
954
- },
955
- component: {
956
- class: 'RepeatableComponent',
957
- config: {
958
- elementTemplate: {
959
- name: "",
960
- model: {
961
- class: 'SimpleInputModel',
962
- config: {
963
- newEntryValue: 'hello world from elementTemplate!',
964
- validators: [
965
- {
966
- class: 'pattern',
967
- config: {
968
- pattern: "prefix.*",
969
- description: 'must start with prefix',
970
- },
971
- },
972
- {
973
- class: 'minLength',
974
- message: '@validator-error-custom-example_repeatable',
975
- config: { minLength: 3 },
976
- },
977
- ],
978
- },
979
- },
980
- component: {
981
- class: 'SimpleInputComponent',
982
- config: {
983
- wrapperCssClasses: 'col',
984
- type: 'text',
985
- },
986
- },
987
- layout: {
988
- class: 'RepeatableElementLayout',
989
- config: {
990
- hostCssClasses: 'row align-items-start',
991
- },
992
- },
993
- },
994
- },
995
- },
996
- layout: {
997
- class: 'DefaultLayout',
998
- config: {
999
- label: 'Repeatable TextField with default wrapper defined',
1000
- helpText: 'Repeatable component help text',
1001
- },
1002
- },
1003
- // expressions: {
1004
- // 'layout.visible': {
1005
- // template: `<% if(_.isEmpty(_.get(model,'text_3_event',''))) {
1006
- // return false;
1007
- // } else {
1008
- // return true;
1009
- // } %>`
1010
- // }
1011
- // }
1012
- },
1013
- ],
1014
- },
1015
- },
1016
- },
1017
- ],
1018
- },
1019
- },
1020
- },
1021
- {
1022
- name: 'repeatable_group_1',
1023
- model: {
1024
- class: 'RepeatableModel',
1025
- config: {
1026
- defaultValue: [{ text_3: 'hello world from repeating groups' }],
1027
- },
1028
- },
1029
- component: {
1030
- class: 'RepeatableComponent',
1031
- config: {
1032
- elementTemplate: {
1033
- name: "",
1034
- // first group component
1035
- model: {
1036
- class: 'GroupModel',
1037
- config: {
1038
- newEntryValue: { text_3: 'hello world 3!' },
1039
- },
1040
- },
1041
- component: {
1042
- class: 'GroupComponent',
1043
- config: {
1044
- wrapperCssClasses: 'col',
1045
- componentDefinitions: [
1046
- {
1047
- name: 'text_3',
1048
- model: {
1049
- class: 'SimpleInputModel',
1050
- config: {
1051
- validators: [
1052
- {
1053
- class: 'minLength',
1054
- message: '@validator-error-custom-text_3',
1055
- config: { minLength: 3 },
1056
- groups: { exclude: ['transitionDraftToSubmitted'] },
1057
- },
1058
- ],
1059
- },
1060
- },
1061
- component: {
1062
- class: 'SimpleInputComponent',
1063
- config: {
1064
- type: 'text',
1065
- },
1066
- },
1067
- },
1068
- ],
1069
- },
1070
- },
1071
- layout: {
1072
- class: 'RepeatableElementLayout',
1073
- config: {
1074
- hostCssClasses: 'row align-items-start',
1075
- },
1076
- },
1077
- },
1078
- },
1079
- },
1080
- layout: {
1081
- class: 'DefaultLayout',
1082
- config: {
1083
- label: 'Repeatable TextField not inside the tab with default wrapper defined',
1084
- helpText: 'Repeatable component help text',
1085
- },
1086
- },
1087
- },
1088
- {
1089
- name: 'save_button',
1090
- component: {
1091
- class: 'SaveButtonComponent',
1092
- config: {
1093
- label: 'Save',
1094
- labelSaving: 'Saving...',
1095
- },
1096
- },
1097
- },
1098
- {
1099
- name: 'tab_nav_buttons',
1100
- component: {
1101
- class: 'TabNavButtonComponent',
1102
- config: {
1103
- prevLabel: 'Previous',
1104
- nextLabel: 'Next',
1105
- targetTabContainerId: 'main_tab',
1106
- endDisplayMode: 'disabled',
1107
- },
1108
- },
1109
- },
1110
- {
1111
- name: 'cancel_button',
1112
- component: {
1113
- class: 'CancelButtonComponent',
1114
- config: {
1115
- label: 'Cancel',
1116
- confirmationTitle: 'Confirm',
1117
- confirmationMessage: 'Are you sure you want to cancel?',
1118
- cancelButtonMessage: 'No',
1119
- confirmButtonMessage: 'Yes',
1120
- },
1121
- },
1122
- },
1123
- {
1124
- name: 'validation_summary_1',
1125
- component: { class: 'ValidationSummaryComponent' },
1126
- },
1127
- {
1128
- name: 'suggested_validation_summary_1',
1129
- component: {
1130
- class: 'SuggestedValidationSummaryComponent',
1131
- config: {
1132
- enabledValidationGroups: ['recommended'],
1133
- includeTabLabel: true,
1134
- header: '@dmpt-form-suggested-validation-summary-header',
1135
- },
1136
- },
1137
- },
1138
- // {
1139
- // module: 'custom',
1140
- // component: {
1141
- // class: 'FormCustomComponent',
1142
- // },
1143
- // model: {
1144
- // class: 'FormCustomFieldModel',
1145
- // config: {
1146
- // name: 'project_name',
1147
- // label: 'Project Name',
1148
- // type: 'text',
1149
- // defaultValue: 'hello world!'
1150
- // }
1151
- // }
1152
- // }
1153
- ],
1154
- };
1155
- exports.default = formConfig;
1156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC0xLjAtZHJhZnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZm9ybS1jb25maWcvZGVmYXVsdC0xLjAtZHJhZnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFFQSxNQUFNLFVBQVUsR0FBb0I7SUFDbEMsSUFBSSxFQUFFLG1CQUFtQjtJQUN6QixJQUFJLEVBQUUsTUFBTTtJQUNaLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLGNBQWMsRUFBRSxNQUFNO0lBQ3RCLHNCQUFzQixFQUFFO1FBQ3RCLDBCQUEwQixFQUFFLEtBQUs7S0FDbEM7SUFDRCxnQkFBZ0IsRUFBRSxDQUFDLGVBQWUsQ0FBQztJQUNuQyxjQUFjLEVBQUUsa0JBQWtCO0lBQ2xDLGdCQUFnQixFQUFFO1FBQ2hCLEdBQUcsRUFBRTtZQUNILFdBQVcsRUFBRSxzQ0FBc0M7WUFDbkQsaUJBQWlCLEVBQUUsS0FBSztTQUN6QjtRQUNELElBQUksRUFBRTtZQUNKLFdBQVcsRUFBRSw4QkFBOEI7WUFDM0MsaUJBQWlCLEVBQUUsTUFBTTtTQUMxQjtRQUNELGFBQWEsRUFBRTtZQUNiLFdBQVcsRUFBRSxtREFBbUQ7WUFDaEUsaUJBQWlCLEVBQUUsTUFBTTtTQUMxQjtRQUNELFdBQVcsRUFBRTtZQUNYLFdBQVcsRUFBRSxnRUFBZ0U7WUFDN0UsaUJBQWlCLEVBQUUsTUFBTTtTQUMxQjtRQUNELDBCQUEwQixFQUFFO1lBQzFCLFdBQVcsRUFBRSxrRUFBa0U7WUFDL0UsaUJBQWlCLEVBQUUsS0FBSztTQUN6QjtLQUNGO0lBRUQsOENBQThDO0lBQzlDLFVBQVUsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxFQUFFLFlBQVksRUFBRSxDQUFDLGNBQWMsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFFLENBQUM7SUFDakcsZ0JBQWdCO0lBQ2hCLGlFQUFpRTtJQUNqRSxNQUFNO0lBQ04sd0VBQXdFO0lBQ3hFLGdCQUFnQjtJQUNoQixr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