@researchdatabox/redbox-core 0.0.1-beta.9474 → 0.0.1-beta.9700

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 (133) hide show
  1. package/dist/CoreController.d.ts.map +1 -1
  2. package/dist/CoreController.js +8 -4
  3. package/dist/api-routes/groups/translation.d.ts.map +1 -1
  4. package/dist/api-routes/groups/translation.js +5 -1
  5. package/dist/config/branding.config.d.ts +2 -1
  6. package/dist/config/branding.config.d.ts.map +1 -1
  7. package/dist/config/branding.config.js +5 -95
  8. package/dist/config/custom.config.d.ts +6 -0
  9. package/dist/config/custom.config.d.ts.map +1 -1
  10. package/dist/config/custom.config.js +10 -1
  11. package/dist/config/form.config.d.ts +4 -0
  12. package/dist/config/form.config.d.ts.map +1 -1
  13. package/dist/config/form.config.js +1 -1
  14. package/dist/config/http.config.d.ts +2 -1
  15. package/dist/config/http.config.d.ts.map +1 -1
  16. package/dist/config/http.config.js +96 -6
  17. package/dist/config/reusableContributorFormDefinitions.config.d.ts.map +1 -1
  18. package/dist/config/reusableContributorFormDefinitions.config.js +75 -20
  19. package/dist/config/routes.config.d.ts.map +1 -1
  20. package/dist/config/routes.config.js +9 -4
  21. package/dist/config/validators.config.d.ts +6 -4
  22. package/dist/config/validators.config.d.ts.map +1 -1
  23. package/dist/config/validators.config.js +5 -3
  24. package/dist/config/webpack.config.d.ts.map +1 -1
  25. package/dist/config/webpack.config.js +9 -9
  26. package/dist/controllers/BrandingAppController.js +2 -2
  27. package/dist/controllers/BrandingController.d.ts +8 -0
  28. package/dist/controllers/BrandingController.d.ts.map +1 -1
  29. package/dist/controllers/BrandingController.js +88 -28
  30. package/dist/controllers/DynamicAssetController.d.ts +0 -21
  31. package/dist/controllers/DynamicAssetController.d.ts.map +1 -1
  32. package/dist/controllers/DynamicAssetController.js +1 -42
  33. package/dist/controllers/FormVocabularyController.d.ts +2 -0
  34. package/dist/controllers/FormVocabularyController.d.ts.map +1 -1
  35. package/dist/controllers/FormVocabularyController.js +58 -1
  36. package/dist/controllers/RecordController.d.ts.map +1 -1
  37. package/dist/controllers/RecordController.js +23 -7
  38. package/dist/controllers/TranslationController.js +3 -3
  39. package/dist/controllers/webservice/AdminController.js +2 -2
  40. package/dist/controllers/webservice/BrandingController.js +2 -2
  41. package/dist/controllers/webservice/TranslationController.d.ts.map +1 -1
  42. package/dist/controllers/webservice/TranslationController.js +8 -8
  43. package/dist/controllers/webservice/UserManagementController.d.ts +1 -1
  44. package/dist/controllers/webservice/UserManagementController.d.ts.map +1 -1
  45. package/dist/controllers/webservice/UserManagementController.js +3 -3
  46. package/dist/hooks/webpack.d.ts.map +1 -1
  47. package/dist/hooks/webpack.js +17 -7
  48. package/dist/middleware/redboxSession.d.ts.map +1 -1
  49. package/dist/middleware/redboxSession.js +6 -2
  50. package/dist/model/BuildResponse.d.ts +4 -0
  51. package/dist/model/BuildResponse.d.ts.map +1 -1
  52. package/dist/sails.d.ts +2 -0
  53. package/dist/sails.d.ts.map +1 -1
  54. package/dist/services/BrandingService.d.ts.map +1 -1
  55. package/dist/services/BrandingService.js +4 -32
  56. package/dist/services/BrandingThemeCssService.d.ts +21 -0
  57. package/dist/services/BrandingThemeCssService.d.ts.map +1 -0
  58. package/dist/services/BrandingThemeCssService.js +113 -0
  59. package/dist/services/BrandingThemeTokens.d.ts +16 -0
  60. package/dist/services/BrandingThemeTokens.d.ts.map +1 -0
  61. package/dist/services/BrandingThemeTokens.js +82 -0
  62. package/dist/services/CacheService.d.ts.map +1 -1
  63. package/dist/services/CacheService.js +37 -29
  64. package/dist/services/DashboardConfigService.d.ts.map +1 -1
  65. package/dist/services/DashboardConfigService.js +8 -2
  66. package/dist/services/FormPayloadPrehydrateService.d.ts +35 -0
  67. package/dist/services/FormPayloadPrehydrateService.d.ts.map +1 -0
  68. package/dist/services/FormPayloadPrehydrateService.js +200 -0
  69. package/dist/services/FormRecordConsistencyService.d.ts +3 -3
  70. package/dist/services/FormRecordConsistencyService.d.ts.map +1 -1
  71. package/dist/services/FormRecordConsistencyService.js +18 -18
  72. package/dist/services/FormsService.js +5 -5
  73. package/dist/services/I18nEntriesService.d.ts +6 -4
  74. package/dist/services/I18nEntriesService.d.ts.map +1 -1
  75. package/dist/services/I18nEntriesService.js +83 -17
  76. package/dist/services/OniService.js +2 -2
  77. package/dist/services/RecordsService.js +3 -3
  78. package/dist/services/SassCompilerService.d.ts +4 -10
  79. package/dist/services/SassCompilerService.d.ts.map +1 -1
  80. package/dist/services/SassCompilerService.js +9 -173
  81. package/dist/services/StandardDatastreamService.d.ts +5 -0
  82. package/dist/services/StandardDatastreamService.d.ts.map +1 -1
  83. package/dist/services/StandardDatastreamService.js +51 -6
  84. package/dist/services/StorageManagerService.d.ts +1 -0
  85. package/dist/services/StorageManagerService.d.ts.map +1 -1
  86. package/dist/services/StorageManagerService.js +30 -12
  87. package/dist/services/TemplateService.d.ts +1 -17
  88. package/dist/services/TemplateService.d.ts.map +1 -1
  89. package/dist/services/TemplateService.js +5 -50
  90. package/dist/services/VocabularyService.d.ts +12 -0
  91. package/dist/services/VocabularyService.d.ts.map +1 -1
  92. package/dist/services/VocabularyService.js +201 -14
  93. package/dist/services/doi-v2/bindings.d.ts.map +1 -1
  94. package/dist/services/doi-v2/bindings.js +2 -8
  95. package/dist/services/figshare-v2/bindings.d.ts.map +1 -1
  96. package/dist/services/figshare-v2/bindings.js +2 -5
  97. package/dist/services/index.d.ts +6 -0
  98. package/dist/services/index.d.ts.map +1 -1
  99. package/dist/services/index.js +12 -2
  100. package/dist/visitor/attachment-fields.visitor.d.ts +17 -17
  101. package/dist/visitor/attachment-fields.visitor.d.ts.map +1 -1
  102. package/dist/visitor/attachment-fields.visitor.js +44 -34
  103. package/dist/visitor/client.visitor.d.ts +93 -92
  104. package/dist/visitor/client.visitor.d.ts.map +1 -1
  105. package/dist/visitor/client.visitor.js +169 -159
  106. package/dist/visitor/construct.visitor.d.ts +95 -95
  107. package/dist/visitor/construct.visitor.d.ts.map +1 -1
  108. package/dist/visitor/construct.visitor.js +169 -156
  109. package/dist/visitor/context-variables.visitor.d.ts +35 -35
  110. package/dist/visitor/context-variables.visitor.d.ts.map +1 -1
  111. package/dist/visitor/context-variables.visitor.js +85 -75
  112. package/dist/visitor/data-value.visitor.d.ts +95 -95
  113. package/dist/visitor/data-value.visitor.d.ts.map +1 -1
  114. package/dist/visitor/data-value.visitor.js +151 -151
  115. package/dist/visitor/json-type-def.visitor.d.ts +92 -92
  116. package/dist/visitor/json-type-def.visitor.d.ts.map +1 -1
  117. package/dist/visitor/json-type-def.visitor.js +152 -152
  118. package/dist/visitor/migrate-config-v4-v5.visitor.d.ts +96 -96
  119. package/dist/visitor/migrate-config-v4-v5.visitor.d.ts.map +1 -1
  120. package/dist/visitor/migrate-config-v4-v5.visitor.js +195 -186
  121. package/dist/visitor/template.visitor.d.ts +96 -94
  122. package/dist/visitor/template.visitor.d.ts.map +1 -1
  123. package/dist/visitor/template.visitor.js +220 -159
  124. package/dist/visitor/validator.visitor.d.ts +92 -92
  125. package/dist/visitor/validator.visitor.d.ts.map +1 -1
  126. package/dist/visitor/validator.visitor.js +165 -152
  127. package/dist/visitor/visitor-helpers.js +9 -9
  128. package/dist/visitor/vocab-inline.visitor.d.ts +18 -18
  129. package/dist/visitor/vocab-inline.visitor.d.ts.map +1 -1
  130. package/dist/visitor/vocab-inline.visitor.js +67 -53
  131. package/dist/waterline-models/BrandingConfig.d.ts.map +1 -1
  132. package/dist/waterline-models/BrandingConfig.js +5 -4
  133. package/package.json +20 -17
@@ -29,167 +29,167 @@ class JsonTypeDefSchemaFormConfigVisitor extends sails_ng_common_1.FormConfigVis
29
29
  * @param options Configure the visitor.
30
30
  * @param options.form The constructed form.
31
31
  */
32
- start(options) {
32
+ async start(options) {
33
33
  this.jsonTypeDefPath = [];
34
34
  this.jsonTypeDef = {};
35
35
  this.typeaheadValueModesByJsonPath = new Map();
36
36
  this.formPathHelper.reset();
37
- options.form.accept(this);
37
+ await options.form.accept(this);
38
38
  return this.jsonTypeDef;
39
39
  }
40
40
  /* Form Config */
41
- visitFormConfig(item) {
42
- (item?.componentDefinitions ?? []).forEach((componentDefinition, index) => {
41
+ async visitFormConfig(item) {
42
+ for (const [index, componentDefinition] of (item?.componentDefinitions ?? []).entries()) {
43
43
  // Visit children
44
- this.acceptJsonTypeDefPath(componentDefinition, this.formPathHelper.lineagePathsForFormConfigComponentDefinition(componentDefinition, index), ['properties']);
45
- });
44
+ await this.acceptJsonTypeDefPath(componentDefinition, this.formPathHelper.lineagePathsForFormConfigComponentDefinition(componentDefinition, index), ['properties']);
45
+ }
46
46
  }
47
47
  /* SimpleInput */
48
- visitSimpleInputFieldComponentDefinition(_item) { }
49
- visitSimpleInputFieldModelDefinition(item) {
48
+ async visitSimpleInputFieldComponentDefinition(_item) { }
49
+ async visitSimpleInputFieldModelDefinition(item) {
50
50
  this.setFromModelDefinition(item);
51
51
  }
52
- visitSimpleInputFormComponentDefinition(item) {
53
- this.acceptFormComponentDefinition(item);
52
+ async visitSimpleInputFormComponentDefinition(item) {
53
+ await this.acceptFormComponentDefinition(item);
54
54
  }
55
55
  /* Content */
56
- visitContentFieldComponentDefinition(_item) { }
57
- visitContentFormComponentDefinition(item) {
58
- this.acceptFormComponentDefinition(item);
56
+ async visitContentFieldComponentDefinition(_item) { }
57
+ async visitContentFormComponentDefinition(item) {
58
+ await this.acceptFormComponentDefinition(item);
59
59
  }
60
60
  /* Repeatable */
61
- visitRepeatableFieldComponentDefinition(item) {
61
+ async visitRepeatableFieldComponentDefinition(item) {
62
62
  const componentDefinition = item.config?.elementTemplate;
63
63
  if (componentDefinition) {
64
- this.acceptJsonTypeDefPath(componentDefinition, this.formPathHelper.lineagePathsForRepeatableFieldComponentDefinition(componentDefinition), ['elements']);
64
+ await this.acceptJsonTypeDefPath(componentDefinition, this.formPathHelper.lineagePathsForRepeatableFieldComponentDefinition(componentDefinition), ['elements']);
65
65
  }
66
66
  }
67
- visitRepeatableFieldModelDefinition(_item) {
67
+ async visitRepeatableFieldModelDefinition(_item) {
68
68
  // Build the json type def from the component instead of model for repeatable.
69
69
  // Need to visit nested components to build the correct structure.
70
70
  // this.setFromModelDefinition(item);
71
71
  }
72
- visitRepeatableElementFieldLayoutDefinition(_item) { }
73
- visitRepeatableFormComponentDefinition(item) {
74
- this.acceptFormComponentDefinition(item);
72
+ async visitRepeatableElementFieldLayoutDefinition(_item) { }
73
+ async visitRepeatableFormComponentDefinition(item) {
74
+ await this.acceptFormComponentDefinition(item);
75
75
  }
76
76
  /* Validation Summary */
77
- visitValidationSummaryFieldComponentDefinition(_item) { }
78
- visitValidationSummaryFormComponentDefinition(item) {
79
- this.acceptFormComponentDefinition(item);
77
+ async visitValidationSummaryFieldComponentDefinition(_item) { }
78
+ async visitValidationSummaryFormComponentDefinition(item) {
79
+ await this.acceptFormComponentDefinition(item);
80
80
  }
81
- visitSuggestedValidationSummaryFieldComponentDefinition(_item) { }
82
- visitSuggestedValidationSummaryFormComponentDefinition(item) {
83
- this.acceptFormComponentDefinition(item);
81
+ async visitSuggestedValidationSummaryFieldComponentDefinition(_item) { }
82
+ async visitSuggestedValidationSummaryFormComponentDefinition(item) {
83
+ await this.acceptFormComponentDefinition(item);
84
84
  }
85
- visitSaveStatusFieldComponentDefinition(_item) { }
86
- visitSaveStatusFormComponentDefinition(item) {
87
- this.acceptFormComponentDefinition(item);
85
+ async visitSaveStatusFieldComponentDefinition(_item) { }
86
+ async visitSaveStatusFormComponentDefinition(item) {
87
+ await this.acceptFormComponentDefinition(item);
88
88
  }
89
89
  /* Group */
90
- visitGroupFieldComponentDefinition(item) {
91
- (item.config?.componentDefinitions ?? []).forEach((componentDefinition, index) => {
90
+ async visitGroupFieldComponentDefinition(item) {
91
+ for (const [index, componentDefinition] of (item.config?.componentDefinitions ?? []).entries()) {
92
92
  // Visit children
93
- this.acceptJsonTypeDefPath(componentDefinition, this.formPathHelper.lineagePathsForGroupFieldComponentDefinition(componentDefinition, index), ['properties']);
94
- });
93
+ await this.acceptJsonTypeDefPath(componentDefinition, this.formPathHelper.lineagePathsForGroupFieldComponentDefinition(componentDefinition, index), ['properties']);
94
+ }
95
95
  }
96
- visitGroupFieldModelDefinition(_item) {
96
+ async visitGroupFieldModelDefinition(_item) {
97
97
  // Build the json type def from the component instead of model for group.
98
98
  // Need to visit nested components to build the correct structure.
99
99
  // this.setFromModelDefinition(item);
100
100
  }
101
- visitGroupFormComponentDefinition(item) {
102
- this.acceptFormComponentDefinition(item);
101
+ async visitGroupFormComponentDefinition(item) {
102
+ await this.acceptFormComponentDefinition(item);
103
103
  }
104
104
  /* Tab */
105
- visitTabFieldComponentDefinition(item) {
106
- (item.config?.tabs ?? []).forEach((componentDefinition, index) => {
105
+ async visitTabFieldComponentDefinition(item) {
106
+ for (const [index, componentDefinition] of (item.config?.tabs ?? []).entries()) {
107
107
  // Visit children
108
- this.acceptJsonTypeDefPath(componentDefinition, this.formPathHelper.lineagePathsForTabFieldComponentDefinition(componentDefinition, index));
109
- });
108
+ await this.acceptJsonTypeDefPath(componentDefinition, this.formPathHelper.lineagePathsForTabFieldComponentDefinition(componentDefinition, index));
109
+ }
110
110
  }
111
- visitTabFieldLayoutDefinition(_item) { }
112
- visitTabFormComponentDefinition(item) {
113
- this.acceptFormComponentDefinition(item);
111
+ async visitTabFieldLayoutDefinition(_item) { }
112
+ async visitTabFormComponentDefinition(item) {
113
+ await this.acceptFormComponentDefinition(item);
114
114
  }
115
115
  /* Accordion */
116
- visitAccordionFieldComponentDefinition(item) {
117
- (item.config?.panels ?? []).forEach((componentDefinition, index) => {
118
- this.acceptJsonTypeDefPath(componentDefinition, this.formPathHelper.lineagePathsForAccordionFieldComponentDefinition(componentDefinition, index));
119
- });
116
+ async visitAccordionFieldComponentDefinition(item) {
117
+ for (const [index, componentDefinition] of (item.config?.panels ?? []).entries()) {
118
+ await this.acceptJsonTypeDefPath(componentDefinition, this.formPathHelper.lineagePathsForAccordionFieldComponentDefinition(componentDefinition, index));
119
+ }
120
120
  }
121
- visitAccordionFieldLayoutDefinition(_item) { }
122
- visitAccordionFormComponentDefinition(item) {
123
- this.acceptFormComponentDefinition(item);
121
+ async visitAccordionFieldLayoutDefinition(_item) { }
122
+ async visitAccordionFormComponentDefinition(item) {
123
+ await this.acceptFormComponentDefinition(item);
124
124
  }
125
- visitAccordionPanelFieldComponentDefinition(item) {
126
- (item.config?.componentDefinitions ?? []).forEach((componentDefinition, index) => {
127
- this.acceptJsonTypeDefPath(componentDefinition, this.formPathHelper.lineagePathsForAccordionPanelFieldComponentDefinition(componentDefinition, index));
128
- });
125
+ async visitAccordionPanelFieldComponentDefinition(item) {
126
+ for (const [index, componentDefinition] of (item.config?.componentDefinitions ?? []).entries()) {
127
+ await this.acceptJsonTypeDefPath(componentDefinition, this.formPathHelper.lineagePathsForAccordionPanelFieldComponentDefinition(componentDefinition, index));
128
+ }
129
129
  }
130
- visitAccordionPanelFieldLayoutDefinition(_item) { }
131
- visitAccordionPanelFormComponentDefinition(item) {
132
- this.acceptFormComponentDefinition(item);
130
+ async visitAccordionPanelFieldLayoutDefinition(_item) { }
131
+ async visitAccordionPanelFormComponentDefinition(item) {
132
+ await this.acceptFormComponentDefinition(item);
133
133
  }
134
134
  /* Tab Content */
135
- visitTabContentFieldComponentDefinition(item) {
136
- (item.config?.componentDefinitions ?? []).forEach((componentDefinition, index) => {
135
+ async visitTabContentFieldComponentDefinition(item) {
136
+ for (const [index, componentDefinition] of (item.config?.componentDefinitions ?? []).entries()) {
137
137
  // Visit children
138
- this.acceptJsonTypeDefPath(componentDefinition, this.formPathHelper.lineagePathsForTabContentFieldComponentDefinition(componentDefinition, index));
139
- });
138
+ await this.acceptJsonTypeDefPath(componentDefinition, this.formPathHelper.lineagePathsForTabContentFieldComponentDefinition(componentDefinition, index));
139
+ }
140
140
  }
141
- visitTabContentFieldLayoutDefinition(_item) { }
142
- visitTabContentFormComponentDefinition(item) {
143
- this.acceptFormComponentDefinition(item);
141
+ async visitTabContentFieldLayoutDefinition(_item) { }
142
+ async visitTabContentFormComponentDefinition(item) {
143
+ await this.acceptFormComponentDefinition(item);
144
144
  }
145
145
  /* Save Button */
146
- visitSaveButtonFieldComponentDefinition(_item) { }
147
- visitSaveButtonFormComponentDefinition(item) {
148
- this.acceptFormComponentDefinition(item);
146
+ async visitSaveButtonFieldComponentDefinition(_item) { }
147
+ async visitSaveButtonFormComponentDefinition(item) {
148
+ await this.acceptFormComponentDefinition(item);
149
149
  }
150
150
  /* Cancel Button */
151
- visitCancelButtonFieldComponentDefinition(_item) { }
152
- visitCancelButtonFormComponentDefinition(item) {
153
- this.acceptFormComponentDefinition(item);
151
+ async visitCancelButtonFieldComponentDefinition(_item) { }
152
+ async visitCancelButtonFormComponentDefinition(item) {
153
+ await this.acceptFormComponentDefinition(item);
154
154
  }
155
- visitDeleteButtonFieldComponentDefinition(_item) { }
156
- visitDeleteButtonFormComponentDefinition(item) {
157
- this.acceptFormComponentDefinition(item);
155
+ async visitDeleteButtonFieldComponentDefinition(_item) { }
156
+ async visitDeleteButtonFormComponentDefinition(item) {
157
+ await this.acceptFormComponentDefinition(item);
158
158
  }
159
159
  /* Tab Nav Button */
160
- visitTabNavButtonFieldComponentDefinition(_item) { }
161
- visitTabNavButtonFormComponentDefinition(item) {
162
- this.acceptFormComponentDefinition(item);
160
+ async visitTabNavButtonFieldComponentDefinition(_item) { }
161
+ async visitTabNavButtonFormComponentDefinition(item) {
162
+ await this.acceptFormComponentDefinition(item);
163
163
  }
164
164
  /* Text Area */
165
- visitTextAreaFieldComponentDefinition(_item) { }
166
- visitTextAreaFieldModelDefinition(item) {
165
+ async visitTextAreaFieldComponentDefinition(_item) { }
166
+ async visitTextAreaFieldModelDefinition(item) {
167
167
  this.setFromModelDefinition(item);
168
168
  }
169
- visitTextAreaFormComponentDefinition(item) {
170
- this.acceptFormComponentDefinition(item);
169
+ async visitTextAreaFormComponentDefinition(item) {
170
+ await this.acceptFormComponentDefinition(item);
171
171
  }
172
172
  /* Default Layout */
173
- visitDefaultFieldLayoutDefinition(_item) { }
173
+ async visitDefaultFieldLayoutDefinition(_item) { }
174
174
  /* Checkbox Input */
175
- visitCheckboxInputFieldComponentDefinition(_item) { }
176
- visitCheckboxInputFieldModelDefinition(item) {
175
+ async visitCheckboxInputFieldComponentDefinition(_item) { }
176
+ async visitCheckboxInputFieldModelDefinition(item) {
177
177
  this.setFromModelDefinition(item);
178
178
  }
179
- visitCheckboxInputFormComponentDefinition(item) {
180
- this.acceptFormComponentDefinition(item);
179
+ async visitCheckboxInputFormComponentDefinition(item) {
180
+ await this.acceptFormComponentDefinition(item);
181
181
  }
182
182
  /* Checkbox Tree */
183
- visitCheckboxTreeFieldComponentDefinition(_item) { }
184
- visitCheckboxTreeFieldModelDefinition(item) {
183
+ async visitCheckboxTreeFieldComponentDefinition(_item) { }
184
+ async visitCheckboxTreeFieldModelDefinition(item) {
185
185
  this.setFromModelDefinition(item);
186
186
  }
187
- visitCheckboxTreeFormComponentDefinition(item) {
188
- this.acceptFormComponentDefinition(item);
187
+ async visitCheckboxTreeFormComponentDefinition(item) {
188
+ await this.acceptFormComponentDefinition(item);
189
189
  }
190
190
  /* Record Selector */
191
- visitRecordSelectorFieldComponentDefinition(_item) { }
192
- visitRecordSelectorFieldModelDefinition(_item) {
191
+ async visitRecordSelectorFieldComponentDefinition(_item) { }
192
+ async visitRecordSelectorFieldModelDefinition(_item) {
193
193
  (0, lodash_1.set)(this.jsonTypeDef, this.jsonTypeDefPath, {
194
194
  properties: {
195
195
  oid: { type: 'string' },
@@ -199,23 +199,23 @@ class JsonTypeDefSchemaFormConfigVisitor extends sails_ng_common_1.FormConfigVis
199
199
  },
200
200
  });
201
201
  }
202
- visitRecordSelectorFormComponentDefinition(item) {
203
- this.acceptFormComponentDefinition(item);
202
+ async visitRecordSelectorFormComponentDefinition(item) {
203
+ await this.acceptFormComponentDefinition(item);
204
204
  }
205
205
  /* Dropdown Input */
206
- visitDropdownInputFieldComponentDefinition(_item) { }
207
- visitDropdownInputFieldModelDefinition(item) {
206
+ async visitDropdownInputFieldComponentDefinition(_item) { }
207
+ async visitDropdownInputFieldModelDefinition(item) {
208
208
  this.setFromModelDefinition(item);
209
209
  }
210
- visitDropdownInputFormComponentDefinition(item) {
211
- this.acceptFormComponentDefinition(item);
210
+ async visitDropdownInputFormComponentDefinition(item) {
211
+ await this.acceptFormComponentDefinition(item);
212
212
  }
213
213
  /* Typeahead Input */
214
- visitTypeaheadInputFieldComponentDefinition(item) {
214
+ async visitTypeaheadInputFieldComponentDefinition(item) {
215
215
  const jsonPathKey = this.jsonTypeDefPath.join('/');
216
216
  this.typeaheadValueModesByJsonPath.set(jsonPathKey, item.config?.valueMode === 'optionObject' ? 'optionObject' : 'value');
217
217
  }
218
- visitTypeaheadInputFieldModelDefinition(item) {
218
+ async visitTypeaheadInputFieldModelDefinition(item) {
219
219
  const jsonPathKey = this.jsonTypeDefPath.join('/');
220
220
  const valueMode = this.typeaheadValueModesByJsonPath.get(jsonPathKey) ?? 'value';
221
221
  if (valueMode === 'optionObject') {
@@ -232,110 +232,110 @@ class JsonTypeDefSchemaFormConfigVisitor extends sails_ng_common_1.FormConfigVis
232
232
  }
233
233
  this.setFromModelDefinition(item);
234
234
  }
235
- visitTypeaheadInputFormComponentDefinition(item) {
236
- this.acceptFormComponentDefinition(item);
235
+ async visitTypeaheadInputFormComponentDefinition(item) {
236
+ await this.acceptFormComponentDefinition(item);
237
237
  }
238
238
  /* Rich Text Editor */
239
- visitRichTextEditorFieldComponentDefinition(_item) { }
240
- visitRichTextEditorFieldModelDefinition(item) {
239
+ async visitRichTextEditorFieldComponentDefinition(_item) { }
240
+ async visitRichTextEditorFieldModelDefinition(item) {
241
241
  this.setFromModelDefinition(item);
242
242
  }
243
- visitRichTextEditorFormComponentDefinition(item) {
244
- this.acceptFormComponentDefinition(item);
243
+ async visitRichTextEditorFormComponentDefinition(item) {
244
+ await this.acceptFormComponentDefinition(item);
245
245
  }
246
246
  /* Map */
247
- visitMapFieldComponentDefinition(_item) { }
248
- visitMapFieldModelDefinition(_item) {
247
+ async visitMapFieldComponentDefinition(_item) { }
248
+ async visitMapFieldModelDefinition(_item) {
249
249
  (0, lodash_1.set)(this.jsonTypeDef, this.jsonTypeDefPath, {
250
250
  type: 'object',
251
251
  });
252
252
  }
253
- visitMapFormComponentDefinition(item) {
254
- this.acceptFormComponentDefinition(item);
253
+ async visitMapFormComponentDefinition(item) {
254
+ await this.acceptFormComponentDefinition(item);
255
255
  }
256
256
  /* File Upload */
257
- visitFileUploadFieldComponentDefinition(_item) { }
258
- visitFileUploadFieldModelDefinition(_item) {
257
+ async visitFileUploadFieldComponentDefinition(_item) { }
258
+ async visitFileUploadFieldModelDefinition(_item) {
259
259
  (0, lodash_1.set)(this.jsonTypeDef, this.jsonTypeDefPath, {
260
260
  elements: {
261
261
  type: 'object',
262
262
  },
263
263
  });
264
264
  }
265
- visitFileUploadFormComponentDefinition(item) {
266
- this.acceptFormComponentDefinition(item);
265
+ async visitFileUploadFormComponentDefinition(item) {
266
+ await this.acceptFormComponentDefinition(item);
267
267
  }
268
- visitPDFListFieldComponentDefinition(_item) { }
269
- visitPDFListFieldModelDefinition(_item) {
268
+ async visitPDFListFieldComponentDefinition(_item) { }
269
+ async visitPDFListFieldModelDefinition(_item) {
270
270
  (0, lodash_1.set)(this.jsonTypeDef, this.jsonTypeDefPath, {
271
271
  elements: {
272
272
  type: 'object',
273
273
  },
274
274
  });
275
275
  }
276
- visitPDFListFormComponentDefinition(item) {
277
- this.acceptFormComponentDefinition(item);
276
+ async visitPDFListFormComponentDefinition(item) {
277
+ await this.acceptFormComponentDefinition(item);
278
278
  }
279
- visitRecordMetadataRetrieverFieldComponentDefinition(_item) { }
280
- visitRecordMetadataRetrieverFormComponentDefinition(item) {
281
- this.acceptFormComponentDefinition(item);
279
+ async visitRecordMetadataRetrieverFieldComponentDefinition(_item) { }
280
+ async visitRecordMetadataRetrieverFormComponentDefinition(item) {
281
+ await this.acceptFormComponentDefinition(item);
282
282
  }
283
283
  /* Data Location */
284
- visitDataLocationFieldComponentDefinition(_item) { }
285
- visitDataLocationFieldModelDefinition(_item) {
284
+ async visitDataLocationFieldComponentDefinition(_item) { }
285
+ async visitDataLocationFieldModelDefinition(_item) {
286
286
  (0, lodash_1.set)(this.jsonTypeDef, this.jsonTypeDefPath, {
287
287
  elements: {
288
288
  type: 'object',
289
289
  },
290
290
  });
291
291
  }
292
- visitDataLocationFormComponentDefinition(item) {
293
- this.acceptFormComponentDefinition(item);
292
+ async visitDataLocationFormComponentDefinition(item) {
293
+ await this.acceptFormComponentDefinition(item);
294
294
  }
295
295
  // The refresh trigger contributes no persisted JSON schema because it does not
296
296
  // write a value into form data.
297
- visitPublishDataLocationRefreshFieldComponentDefinition(_item) { }
298
- visitPublishDataLocationRefreshFormComponentDefinition(item) {
299
- this.acceptFormComponentDefinition(item);
297
+ async visitPublishDataLocationRefreshFieldComponentDefinition(_item) { }
298
+ async visitPublishDataLocationRefreshFormComponentDefinition(item) {
299
+ await this.acceptFormComponentDefinition(item);
300
300
  }
301
- visitPublishDataLocationSelectorFieldComponentDefinition(_item) { }
302
- visitPublishDataLocationSelectorFieldModelDefinition(_item) {
301
+ async visitPublishDataLocationSelectorFieldComponentDefinition(_item) { }
302
+ async visitPublishDataLocationSelectorFieldModelDefinition(_item) {
303
303
  (0, lodash_1.set)(this.jsonTypeDef, this.jsonTypeDefPath, {
304
304
  elements: {
305
305
  type: 'object',
306
306
  },
307
307
  });
308
308
  }
309
- visitPublishDataLocationSelectorFormComponentDefinition(item) {
310
- this.acceptFormComponentDefinition(item);
309
+ async visitPublishDataLocationSelectorFormComponentDefinition(item) {
310
+ await this.acceptFormComponentDefinition(item);
311
311
  }
312
312
  /* Radio Input */
313
- visitRadioInputFieldComponentDefinition(_item) { }
314
- visitRadioInputFieldModelDefinition(item) {
313
+ async visitRadioInputFieldComponentDefinition(_item) { }
314
+ async visitRadioInputFieldModelDefinition(item) {
315
315
  this.setFromModelDefinition(item);
316
316
  }
317
- visitRadioInputFormComponentDefinition(item) {
318
- this.acceptFormComponentDefinition(item);
317
+ async visitRadioInputFormComponentDefinition(item) {
318
+ await this.acceptFormComponentDefinition(item);
319
319
  }
320
320
  /* Date Input */
321
- visitDateInputFieldComponentDefinition(_item) { }
322
- visitDateInputFieldModelDefinition(item) {
321
+ async visitDateInputFieldComponentDefinition(_item) { }
322
+ async visitDateInputFieldModelDefinition(item) {
323
323
  this.setFromModelDefinition(item);
324
324
  }
325
- visitDateInputFormComponentDefinition(item) {
326
- this.acceptFormComponentDefinition(item);
325
+ async visitDateInputFormComponentDefinition(item) {
326
+ await this.acceptFormComponentDefinition(item);
327
327
  }
328
328
  /* Question Tree */
329
- visitQuestionTreeFieldComponentDefinition(item) {
330
- (item.config?.componentDefinitions ?? []).forEach((componentDefinition, index) => {
331
- this.acceptJsonTypeDefPath(componentDefinition, this.formPathHelper.lineagePathsForQuestionTreeFieldComponentDefinition(componentDefinition, index), ['properties']);
332
- });
329
+ async visitQuestionTreeFieldComponentDefinition(item) {
330
+ for (const [index, componentDefinition] of (item.config?.componentDefinitions ?? []).entries()) {
331
+ await this.acceptJsonTypeDefPath(componentDefinition, this.formPathHelper.lineagePathsForQuestionTreeFieldComponentDefinition(componentDefinition, index), ['properties']);
332
+ }
333
333
  }
334
- visitQuestionTreeFieldModelDefinition(_item) {
334
+ async visitQuestionTreeFieldModelDefinition(_item) {
335
335
  // Visit nested components to build the correct structure.
336
336
  }
337
- visitQuestionTreeFormComponentDefinition(item) {
338
- this.acceptFormComponentDefinition(item);
337
+ async visitQuestionTreeFormComponentDefinition(item) {
338
+ await this.acceptFormComponentDefinition(item);
339
339
  }
340
340
  /* Shared */
341
341
  setFromModelDefinition(item) {
@@ -363,21 +363,21 @@ class JsonTypeDefSchemaFormConfigVisitor extends sails_ng_common_1.FormConfigVis
363
363
  * @param item The form component definition outline.
364
364
  * @protected
365
365
  */
366
- acceptFormComponentDefinition(item) {
366
+ async acceptFormComponentDefinition(item) {
367
367
  const jsonTypeDefPathKeys = item.model && item.name ? [item.name] : [];
368
- this.acceptJsonTypeDefPath(item.component, { formConfig: ['component'] }, jsonTypeDefPathKeys);
368
+ await this.acceptJsonTypeDefPath(item.component, { formConfig: ['component'] }, jsonTypeDefPathKeys);
369
369
  if (item.model) {
370
- this.acceptJsonTypeDefPath(item.model, { formConfig: ['model'] }, jsonTypeDefPathKeys);
370
+ await this.acceptJsonTypeDefPath(item.model, { formConfig: ['model'] }, jsonTypeDefPathKeys);
371
371
  }
372
372
  if (item.layout) {
373
- this.acceptJsonTypeDefPath(item.layout, { formConfig: ['layout'] }, jsonTypeDefPathKeys);
373
+ await this.acceptJsonTypeDefPath(item.layout, { formConfig: ['layout'] }, jsonTypeDefPathKeys);
374
374
  }
375
375
  }
376
- acceptJsonTypeDefPath(item, more, jsonTypeDefPathKeys) {
376
+ async acceptJsonTypeDefPath(item, more, jsonTypeDefPathKeys) {
377
377
  const originalPath = [...this.jsonTypeDefPath];
378
378
  try {
379
379
  this.jsonTypeDefPath = [...originalPath, ...(jsonTypeDefPathKeys ?? [])];
380
- this.formPathHelper.acceptFormPath(item, more);
380
+ await this.formPathHelper.acceptFormPath(item, more);
381
381
  }
382
382
  finally {
383
383
  this.jsonTypeDefPath = originalPath;
@@ -385,4 +385,4 @@ class JsonTypeDefSchemaFormConfigVisitor extends sails_ng_common_1.FormConfigVis
385
385
  }
386
386
  }
387
387
  exports.JsonTypeDefSchemaFormConfigVisitor = JsonTypeDefSchemaFormConfigVisitor;
388
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi10eXBlLWRlZi52aXNpdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Zpc2l0b3IvanNvbi10eXBlLWRlZi52aXNpdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHNFQUFxRTtBQUVyRSxtQ0FBcUM7QUFVckMsc0VBTTBDO0FBd0kxQyxzRUFBNkQ7QUFLN0Qsc0VBQWtFO0FBR2xFOzs7O0dBSUc7QUFDSCxNQUFhLGtDQUFtQyxTQUFRLG1DQUFpQjtJQUNwRCxPQUFPLEdBQUcsb0NBQW9DLENBQUM7SUFFMUQsZUFBZSxDQUFjO0lBQzdCLFdBQVcsQ0FBMEI7SUFDckMsNkJBQTZCLENBQXdDO0lBQ3JFLGNBQWMsQ0FBaUI7SUFFdkMsWUFBWSxNQUFlO1FBQ3pCLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNkLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyw2QkFBNkIsR0FBRyxJQUFJLEdBQUcsRUFBb0MsQ0FBQztRQUNqRixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksZ0NBQWMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsT0FBb0M7UUFDeEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLDZCQUE2QixHQUFHLElBQUksR0FBRyxFQUFvQyxDQUFDO1FBQ2pGLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFNUIsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFRCxpQkFBaUI7SUFF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
388
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi10eXBlLWRlZi52aXNpdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Zpc2l0b3IvanNvbi10eXBlLWRlZi52aXNpdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHNFQUFxRTtBQUVyRSxtQ0FBcUM7QUFVckMsc0VBTTBDO0FBd0kxQyxzRUFBNkQ7QUFLN0Qsc0VBQWtFO0FBR2xFOzs7O0dBSUc7QUFDSCxNQUFhLGtDQUFtQyxTQUFRLG1DQUFpQjtJQUNwRCxPQUFPLEdBQUcsb0NBQW9DLENBQUM7SUFFMUQsZUFBZSxDQUFjO0lBQzdCLFdBQVcsQ0FBMEI7SUFDckMsNkJBQTZCLENBQXdDO0lBQ3JFLGNBQWMsQ0FBaUI7SUFFdkMsWUFBWSxNQUFlO1FBQ3pCLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNkLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyw2QkFBNkIsR0FBRyxJQUFJLEdBQUcsRUFBb0MsQ0FBQztRQUNqRixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksZ0NBQWMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQW9DO1FBQzlDLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyw2QkFBNkIsR0FBRyxJQUFJLEdBQUcsRUFBb0MsQ0FBQztRQUNqRixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRTVCLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7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