case-editor-tools 1.0.0-beta.2 → 1.0.0-beta.20

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 (103) hide show
  1. package/{build/constants → constants}/key-definitions.d.ts +1 -0
  2. package/{build/constants → constants}/key-definitions.js +3 -1
  3. package/{build/constants → constants}/key-definitions.js.map +1 -1
  4. package/exporter/index.d.ts +2 -0
  5. package/exporter/index.js +99 -0
  6. package/exporter/index.js.map +1 -0
  7. package/{build/expression-utils → expression-utils}/expressionGen.d.ts +1 -1
  8. package/{build/expression-utils → expression-utils}/expressionGen.js +0 -0
  9. package/{build/expression-utils → expression-utils}/expressionGen.js.map +0 -0
  10. package/{build/expression-utils → expression-utils}/studyEngineExpressions.d.ts +3 -3
  11. package/{build/expression-utils → expression-utils}/studyEngineExpressions.js +0 -0
  12. package/{build/expression-utils → expression-utils}/studyEngineExpressions.js.map +0 -0
  13. package/{build/index.d.ts → index.d.ts} +0 -0
  14. package/{build/index.js → index.js} +0 -0
  15. package/{build/index.js.map → index.js.map} +0 -0
  16. package/{build/item-editor-8fd24b61.js → item-editor-c6933791.js} +69 -51
  17. package/item-editor-c6933791.js.map +1 -0
  18. package/logger/index.d.ts +1 -0
  19. package/logger/index.js +10 -0
  20. package/logger/index.js.map +1 -0
  21. package/{build/logger → logger}/logger.d.ts +0 -0
  22. package/{build/logger → logger}/logger.js +0 -0
  23. package/{build/logger → logger}/logger.js.map +0 -0
  24. package/package.json +9 -12
  25. package/surveys/index.d.ts +3 -0
  26. package/surveys/index.js +28 -0
  27. package/surveys/index.js.map +1 -0
  28. package/surveys/responseTypeGenerators/likertGroupComponents.d.ts +27 -0
  29. package/surveys/responseTypeGenerators/likertGroupComponents.js +347 -0
  30. package/surveys/responseTypeGenerators/likertGroupComponents.js.map +1 -0
  31. package/surveys/responseTypeGenerators/matrixGroupComponent.d.ts +49 -0
  32. package/surveys/responseTypeGenerators/matrixGroupComponent.js +99 -0
  33. package/surveys/responseTypeGenerators/matrixGroupComponent.js.map +1 -0
  34. package/surveys/responseTypeGenerators/optionGroupComponents.d.ts +7 -0
  35. package/surveys/responseTypeGenerators/optionGroupComponents.js +125 -0
  36. package/surveys/responseTypeGenerators/optionGroupComponents.js.map +1 -0
  37. package/{build → surveys}/survey-editor/component-editor.d.ts +1 -1
  38. package/{build → surveys}/survey-editor/component-editor.js +0 -0
  39. package/{build → surveys}/survey-editor/component-editor.js.map +0 -0
  40. package/{build → surveys}/survey-editor/data-types.d.ts +1 -1
  41. package/{build → surveys}/survey-editor/data-types.js +0 -0
  42. package/{build → surveys}/survey-editor/data-types.js.map +0 -0
  43. package/{build → surveys}/survey-editor/item-editor.d.ts +1 -1
  44. package/{build → surveys}/survey-editor/item-editor.js +3 -2
  45. package/{build → surveys}/survey-editor/item-editor.js.map +1 -1
  46. package/{build → surveys}/survey-editor/survey-editor.d.ts +6 -1
  47. package/{build → surveys}/survey-editor/survey-editor.js +15 -8
  48. package/{build → surveys}/survey-editor/survey-editor.js.map +1 -1
  49. package/{build/expression-utils/surveyEngineExpressions.d.ts → surveys/survey-engine-expressions.d.ts} +1 -1
  50. package/{build/expression-utils/surveyEngineExpressions.js → surveys/survey-engine-expressions.js} +2 -2
  51. package/{build/expression-utils/surveyEngineExpressions.js.map → surveys/survey-engine-expressions.js.map} +1 -1
  52. package/surveys/survey-items.d.ts +65 -0
  53. package/surveys/survey-items.js +268 -0
  54. package/surveys/survey-items.js.map +1 -0
  55. package/{build → surveys}/types/group.d.ts +1 -1
  56. package/{build → surveys}/types/group.js +5 -5
  57. package/{build → surveys}/types/group.js.map +0 -0
  58. package/surveys/types/index.d.ts +4 -0
  59. package/surveys/types/index.js +20 -0
  60. package/surveys/types/index.js.map +1 -0
  61. package/surveys/types/item-properties.d.ts +189 -0
  62. package/surveys/types/item-properties.js +3 -0
  63. package/surveys/types/item-properties.js.map +1 -0
  64. package/{build → surveys}/types/item.d.ts +1 -1
  65. package/{build → surveys}/types/item.js +0 -0
  66. package/{build → surveys}/types/item.js.map +0 -0
  67. package/{build/types/surveyDefinition.d.ts → surveys/types/survey-definition.d.ts} +5 -2
  68. package/{build/types/surveyDefinition.js → surveys/types/survey-definition.js} +12 -10
  69. package/surveys/types/survey-definition.js.map +1 -0
  70. package/{build → surveys}/utils/componentGenerators.d.ts +2 -13
  71. package/surveys/utils/componentGenerators.js +58 -0
  72. package/{build → surveys}/utils/componentGenerators.js.map +1 -1
  73. package/surveys/utils/optionDefGenerators.d.ts +69 -0
  74. package/surveys/utils/optionDefGenerators.js +169 -0
  75. package/surveys/utils/optionDefGenerators.js.map +1 -0
  76. package/{build → surveys}/utils/randomKeyGenerator.d.ts +0 -0
  77. package/{build → surveys}/utils/randomKeyGenerator.js +0 -0
  78. package/{build → surveys}/utils/randomKeyGenerator.js.map +0 -0
  79. package/{build → surveys}/utils/simple-generators.d.ts +2 -2
  80. package/{build → surveys}/utils/simple-generators.js +5 -5
  81. package/{build → surveys}/utils/simple-generators.js.map +0 -0
  82. package/{build → surveys}/utils/simple-question-editor.d.ts +3 -3
  83. package/{build → surveys}/utils/simple-question-editor.js +7 -6
  84. package/{build → surveys}/utils/simple-question-editor.js.map +1 -1
  85. package/{build/types → types}/duration.d.ts +0 -0
  86. package/{build/types → types}/duration.js +0 -0
  87. package/{build/types → types}/duration.js.map +0 -0
  88. package/{build/types → types}/expression.d.ts +1 -1
  89. package/{build/types → types}/expression.js +0 -0
  90. package/{build/types → types}/expression.js.map +0 -0
  91. package/{build/types → types}/study.d.ts +2 -2
  92. package/{build/types → types}/study.js +0 -0
  93. package/{build/types → types}/study.js.map +0 -0
  94. package/{build/types → types}/studyRules.d.ts +1 -1
  95. package/{build/types → types}/studyRules.js +0 -0
  96. package/{build/types → types}/studyRules.js.map +0 -0
  97. package/LICENSE +0 -202
  98. package/build/item-editor-8fd24b61.js.map +0 -1
  99. package/build/types/surveyDefinition.js.map +0 -1
  100. package/build/utils/componentGenerators.js +0 -92
  101. package/build/utils/question-type-generator.d.ts +0 -283
  102. package/build/utils/question-type-generator.js +0 -949
  103. package/build/utils/question-type-generator.js.map +0 -1
@@ -1,949 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var surveyEditor_componentEditor = require('../survey-editor/component-editor.js');
6
- var surveyEditor_itemEditor = require('../item-editor-8fd24b61.js');
7
- var utils_componentGenerators = require('./componentGenerators.js');
8
- var types_duration = require('../types/duration.js');
9
- var constants_keyDefinitions = require('../constants/key-definitions.js');
10
- var utils_randomKeyGenerator = require('./randomKeyGenerator.js');
11
- var utils_simpleGenerators = require('./simple-generators.js');
12
- var utils_simpleQuestionEditor = require('./simple-question-editor.js');
13
- var expressionUtils_surveyEngineExpressions = require('../expression-utils/surveyEngineExpressions.js');
14
- require('../expression-utils/expressionGen.js');
15
-
16
- const generateNumericInputQuestion = (props) => {
17
- var _a, _b, _c, _d;
18
- const simpleEditor = new utils_simpleQuestionEditor.SimpleQuestionEditor(props.parentKey, props.itemKey, props.version ? props.version : 1);
19
- // QUESTION TEXT
20
- simpleEditor.setTitle(props.questionText, props.questionSubText, props.titleClassName);
21
- if (props.condition) {
22
- simpleEditor.setCondition(props.condition);
23
- }
24
- if (props.helpGroupContent) {
25
- simpleEditor.editor.setHelpGroupComponent(utils_simpleGenerators.generateHelpGroupComponent(props.helpGroupContent));
26
- }
27
- if (props.topDisplayCompoments) {
28
- props.topDisplayCompoments.forEach(comp => simpleEditor.addDisplayComponent(comp));
29
- }
30
- const style = [];
31
- if (props.inputMaxWidth) {
32
- style.push({
33
- key: 'inputMaxWidth', value: props.inputMaxWidth,
34
- });
35
- }
36
- if (props.contentBehindInput) {
37
- style.push({ key: 'labelPlacement', value: 'after' });
38
- }
39
- const rg_inner = {
40
- key: constants_keyDefinitions.numericInputKey,
41
- role: 'numberInput',
42
- properties: {
43
- min: ((_a = props.componentProperties) === null || _a === void 0 ? void 0 : _a.min) !== undefined ? (typeof (props.componentProperties.min) === 'number' ? { dtype: 'num', num: props.componentProperties.min } : props.componentProperties.min) : undefined,
44
- max: ((_b = props.componentProperties) === null || _b === void 0 ? void 0 : _b.max) !== undefined ? (typeof ((_c = props.componentProperties) === null || _c === void 0 ? void 0 : _c.max) === 'number' ? { dtype: 'num', num: props.componentProperties.max } : props.componentProperties.max) : undefined,
45
- stepSize: ((_d = props.componentProperties) === null || _d === void 0 ? void 0 : _d.stepSize) ? (typeof (props.componentProperties.stepSize) === 'number' ? { dtype: 'num', num: props.componentProperties.stepSize } : props.componentProperties.stepSize) : undefined,
46
- },
47
- content: utils_simpleGenerators.generateLocStrings(props.content),
48
- style: style.length > 0 ? style : undefined,
49
- };
50
- simpleEditor.setResponseGroupWithContent(rg_inner);
51
- if (props.bottomDisplayCompoments) {
52
- props.bottomDisplayCompoments.forEach(comp => simpleEditor.addDisplayComponent(comp));
53
- }
54
- if (props.isRequired) {
55
- simpleEditor.addHasResponseValidation();
56
- }
57
- if (props.customValidations) {
58
- props.customValidations.forEach(v => simpleEditor.editor.addValidation(v));
59
- }
60
- if (props.footnoteText) {
61
- simpleEditor.addDisplayComponent({
62
- role: 'footnote', content: utils_simpleGenerators.generateLocStrings(props.footnoteText), style: [
63
- { key: 'className', value: 'fs-small fst-italic text-center' }
64
- ]
65
- });
66
- }
67
- return simpleEditor.getItem();
68
- };
69
- const generateSingleChoiceQuestion = (props) => {
70
- const simpleEditor = new utils_simpleQuestionEditor.SimpleQuestionEditor(props.parentKey, props.itemKey, props.version ? props.version : 1);
71
- // QUESTION TEXT
72
- simpleEditor.setTitle(props.questionText, props.questionSubText, props.titleClassName);
73
- if (props.condition) {
74
- simpleEditor.setCondition(props.condition);
75
- }
76
- if (props.helpGroupContent) {
77
- simpleEditor.editor.setHelpGroupComponent(utils_simpleGenerators.generateHelpGroupComponent(props.helpGroupContent));
78
- }
79
- if (props.topDisplayCompoments) {
80
- props.topDisplayCompoments.forEach(comp => simpleEditor.addDisplayComponent(comp));
81
- }
82
- const rg_inner = initSingleChoiceGroup(constants_keyDefinitions.singleChoiceKey, props.responseOptions);
83
- simpleEditor.setResponseGroupWithContent(rg_inner);
84
- if (props.bottomDisplayCompoments) {
85
- props.bottomDisplayCompoments.forEach(comp => simpleEditor.addDisplayComponent(comp));
86
- }
87
- if (props.isRequired) {
88
- simpleEditor.addHasResponseValidation();
89
- }
90
- if (props.customValidations) {
91
- props.customValidations.forEach(v => simpleEditor.editor.addValidation(v));
92
- }
93
- if (props.footnoteText) {
94
- simpleEditor.addDisplayComponent({
95
- role: 'footnote', content: utils_simpleGenerators.generateLocStrings(props.footnoteText), style: [
96
- { key: 'className', value: 'fs-small fst-italic text-center' }
97
- ]
98
- });
99
- }
100
- return simpleEditor.getItem();
101
- };
102
- const generateDropDownQuestion = (props) => {
103
- const simpleEditor = new utils_simpleQuestionEditor.SimpleQuestionEditor(props.parentKey, props.itemKey, props.version ? props.version : 1);
104
- // QUESTION TEXT
105
- simpleEditor.setTitle(props.questionText, props.questionSubText, props.titleClassName);
106
- if (props.condition) {
107
- simpleEditor.setCondition(props.condition);
108
- }
109
- if (props.helpGroupContent) {
110
- simpleEditor.editor.setHelpGroupComponent(utils_simpleGenerators.generateHelpGroupComponent(props.helpGroupContent));
111
- }
112
- if (props.topDisplayCompoments) {
113
- props.topDisplayCompoments.forEach(comp => simpleEditor.addDisplayComponent(comp));
114
- }
115
- const rg_inner = initDropdownGroup(constants_keyDefinitions.dropDownKey, props.responseOptions);
116
- simpleEditor.setResponseGroupWithContent(rg_inner);
117
- if (props.bottomDisplayCompoments) {
118
- props.bottomDisplayCompoments.forEach(comp => simpleEditor.addDisplayComponent(comp));
119
- }
120
- if (props.isRequired) {
121
- simpleEditor.addHasResponseValidation();
122
- }
123
- if (props.footnoteText) {
124
- simpleEditor.addDisplayComponent({
125
- role: 'footnote', content: utils_simpleGenerators.generateLocStrings(props.footnoteText), style: [
126
- { key: 'className', value: 'fs-small fst-italic text-center' }
127
- ]
128
- });
129
- }
130
- return simpleEditor.getItem();
131
- };
132
- const generateMultipleChoiceQuestion = (props) => {
133
- const simpleEditor = new utils_simpleQuestionEditor.SimpleQuestionEditor(props.parentKey, props.itemKey, props.version ? props.version : 1);
134
- // QUESTION TEXT
135
- simpleEditor.setTitle(props.questionText, props.questionSubText, props.titleClassName);
136
- if (props.condition) {
137
- simpleEditor.setCondition(props.condition);
138
- }
139
- if (props.helpGroupContent) {
140
- simpleEditor.editor.setHelpGroupComponent(utils_simpleGenerators.generateHelpGroupComponent(props.helpGroupContent));
141
- }
142
- if (props.topDisplayCompoments) {
143
- props.topDisplayCompoments.forEach(comp => simpleEditor.addDisplayComponent(comp));
144
- }
145
- const rg_inner = initMultipleChoiceGroup(constants_keyDefinitions.multipleChoiceKey, props.responseOptions);
146
- simpleEditor.setResponseGroupWithContent(rg_inner);
147
- if (props.bottomDisplayCompoments) {
148
- props.bottomDisplayCompoments.forEach(comp => simpleEditor.addDisplayComponent(comp));
149
- }
150
- if (props.isRequired) {
151
- simpleEditor.addHasResponseValidation();
152
- }
153
- if (props.customValidations) {
154
- props.customValidations.forEach(v => simpleEditor.editor.addValidation(v));
155
- }
156
- if (props.footnoteText) {
157
- simpleEditor.addDisplayComponent({
158
- role: 'footnote', content: utils_simpleGenerators.generateLocStrings(props.footnoteText), style: [
159
- { key: 'className', value: 'fs-small fst-italic text-center' }
160
- ]
161
- });
162
- }
163
- return simpleEditor.getItem();
164
- };
165
- const generateSimpleLikertGroupQuestion = (props) => {
166
- const simpleEditor = new utils_simpleQuestionEditor.SimpleQuestionEditor(props.parentKey, props.itemKey, props.version ? props.version : 1);
167
- // QUESTION TEXT
168
- simpleEditor.setTitle(props.questionText, props.questionSubText, props.titleClassName);
169
- if (props.condition) {
170
- simpleEditor.setCondition(props.condition);
171
- }
172
- if (props.helpGroupContent) {
173
- simpleEditor.editor.setHelpGroupComponent(utils_simpleGenerators.generateHelpGroupComponent(props.helpGroupContent));
174
- }
175
- if (props.topDisplayCompoments) {
176
- props.topDisplayCompoments.forEach(comp => simpleEditor.addDisplayComponent(comp));
177
- }
178
- const rg_inner = initLikertScaleGroup(constants_keyDefinitions.likertScaleGroupKey, props.rows, props.scaleOptions, props.stackOnSmallScreen);
179
- simpleEditor.setResponseGroupWithContent(rg_inner);
180
- if (props.bottomDisplayCompoments) {
181
- props.bottomDisplayCompoments.forEach(comp => simpleEditor.addDisplayComponent(comp));
182
- }
183
- if (props.isRequired) {
184
- simpleEditor.editor.addValidation({
185
- key: 'r',
186
- type: 'hard',
187
- rule: utils_simpleGenerators.expWithArgs('and', ...props.rows.map(r => utils_simpleGenerators.expWithArgs('responseHasKeysAny', [props.parentKey, props.itemKey].join('.'), [constants_keyDefinitions.responseGroupKey, constants_keyDefinitions.likertScaleGroupKey, r.key].join('.'), ...props.scaleOptions.map(o => o.key))))
188
- });
189
- simpleEditor.addHasResponseValidation();
190
- }
191
- if (props.footnoteText) {
192
- simpleEditor.addDisplayComponent({
193
- role: 'footnote', content: utils_simpleGenerators.generateLocStrings(props.footnoteText), style: [
194
- { key: 'className', value: 'fs-small fst-italic text-center' }
195
- ]
196
- });
197
- }
198
- return simpleEditor.getItem();
199
- };
200
- const generateResponsiveSingleChoiceArrayQuestion = (props) => {
201
- const simpleEditor = new utils_simpleQuestionEditor.SimpleQuestionEditor(props.parentKey, props.itemKey, props.version ? props.version : 1);
202
- // QUESTION TEXT
203
- simpleEditor.setTitle(props.questionText, props.questionSubText, props.titleClassName);
204
- if (props.condition) {
205
- simpleEditor.setCondition(props.condition);
206
- }
207
- if (props.helpGroupContent) {
208
- simpleEditor.editor.setHelpGroupComponent(utils_simpleGenerators.generateHelpGroupComponent(props.helpGroupContent));
209
- }
210
- if (props.topDisplayCompoments) {
211
- props.topDisplayCompoments.forEach(comp => simpleEditor.addDisplayComponent(comp));
212
- }
213
- const rg_inner = initResponsiveSingleChoiceArray(constants_keyDefinitions.responsiveSingleChoiceArrayKey, Object.assign({}, props));
214
- simpleEditor.setResponseGroupWithContent(rg_inner);
215
- if (props.bottomDisplayCompoments) {
216
- props.bottomDisplayCompoments.forEach(comp => simpleEditor.addDisplayComponent(comp));
217
- }
218
- if (props.isRequired) {
219
- simpleEditor.editor.addValidation({
220
- key: 'r',
221
- type: 'hard',
222
- rule: utils_simpleGenerators.expWithArgs('and', ...props.rows.map(r => utils_simpleGenerators.expWithArgs('responseHasKeysAny', [props.parentKey, props.itemKey].join('.'), [constants_keyDefinitions.responseGroupKey, constants_keyDefinitions.responsiveSingleChoiceArrayKey, r.key].join('.'), ...props.scaleOptions.map(o => o.key))))
223
- });
224
- simpleEditor.addHasResponseValidation();
225
- }
226
- if (props.footnoteText) {
227
- simpleEditor.addDisplayComponent({
228
- role: 'footnote', content: utils_simpleGenerators.generateLocStrings(props.footnoteText), style: [
229
- { key: 'className', value: 'fs-small fst-italic text-center' }
230
- ]
231
- });
232
- }
233
- return simpleEditor.getItem();
234
- };
235
- const generateResponsiveBipolarLikertArray = (props) => {
236
- const simpleEditor = new utils_simpleQuestionEditor.SimpleQuestionEditor(props.parentKey, props.itemKey, props.version ? props.version : 1);
237
- // QUESTION TEXT
238
- simpleEditor.setTitle(props.questionText, props.questionSubText, props.titleClassName);
239
- if (props.condition) {
240
- simpleEditor.setCondition(props.condition);
241
- }
242
- if (props.helpGroupContent) {
243
- simpleEditor.editor.setHelpGroupComponent(utils_simpleGenerators.generateHelpGroupComponent(props.helpGroupContent));
244
- }
245
- if (props.topDisplayCompoments) {
246
- props.topDisplayCompoments.forEach(comp => simpleEditor.addDisplayComponent(comp));
247
- }
248
- const rg_inner = initResponsiveBipolarLikertArray(constants_keyDefinitions.responsiveBipolarLikertArrayKey, Object.assign({}, props));
249
- simpleEditor.setResponseGroupWithContent(rg_inner);
250
- if (props.bottomDisplayCompoments) {
251
- props.bottomDisplayCompoments.forEach(comp => simpleEditor.addDisplayComponent(comp));
252
- }
253
- if (props.isRequired) {
254
- simpleEditor.editor.addValidation({
255
- key: 'r',
256
- type: 'hard',
257
- rule: utils_simpleGenerators.expWithArgs('and', ...props.rows.map(r => utils_simpleGenerators.expWithArgs('responseHasKeysAny', [props.parentKey, props.itemKey].join('.'), [constants_keyDefinitions.responseGroupKey, constants_keyDefinitions.responsiveBipolarLikertArrayKey, r.key].join('.'), ...props.scaleOptions.map(o => o.key))))
258
- });
259
- simpleEditor.addHasResponseValidation();
260
- }
261
- if (props.footnoteText) {
262
- simpleEditor.addDisplayComponent({
263
- role: 'footnote', content: utils_simpleGenerators.generateLocStrings(props.footnoteText), style: [
264
- { key: 'className', value: 'fs-small fst-italic text-center' }
265
- ]
266
- });
267
- }
268
- return simpleEditor.getItem();
269
- };
270
- const generateNumericSliderQuestion = (props) => {
271
- const simpleEditor = new utils_simpleQuestionEditor.SimpleQuestionEditor(props.parentKey, props.itemKey, props.version ? props.version : 1);
272
- // QUESTION TEXT
273
- simpleEditor.setTitle(props.questionText, props.questionSubText, props.titleClassName);
274
- if (props.condition) {
275
- simpleEditor.setCondition(props.condition);
276
- }
277
- if (props.helpGroupContent) {
278
- simpleEditor.editor.setHelpGroupComponent(utils_simpleGenerators.generateHelpGroupComponent(props.helpGroupContent));
279
- }
280
- if (props.topDisplayCompoments) {
281
- props.topDisplayCompoments.forEach(comp => simpleEditor.addDisplayComponent(comp));
282
- }
283
- const rg_inner = {
284
- key: 'slider', role: 'sliderNumeric',
285
- content: utils_simpleGenerators.generateLocStrings(props.sliderLabel),
286
- description: utils_simpleGenerators.generateLocStrings(props.noResponseLabel),
287
- properties: {
288
- min: props.min !== undefined ? (typeof (props.min) === 'number' ? { dtype: 'num', num: props.min } : props.min) : undefined,
289
- max: props.max !== undefined ? (typeof (props.max) === 'number' ? { dtype: 'num', num: props.max } : props.max) : undefined,
290
- stepSize: props.stepSize ? (typeof (props.stepSize) === 'number' ? { dtype: 'num', num: props.stepSize } : props.stepSize) : undefined,
291
- }
292
- };
293
- simpleEditor.setResponseGroupWithContent(rg_inner);
294
- if (props.bottomDisplayCompoments) {
295
- props.bottomDisplayCompoments.forEach(comp => simpleEditor.addDisplayComponent(comp));
296
- }
297
- if (props.isRequired) {
298
- simpleEditor.addHasResponseValidation();
299
- }
300
- if (props.footnoteText) {
301
- simpleEditor.addDisplayComponent(utils_componentGenerators.ComponentGenerators.footnote({ content: props.footnoteText }));
302
- }
303
- return simpleEditor.getItem();
304
- };
305
- const generateDatePickerInput = (props) => {
306
- const simpleEditor = new utils_simpleQuestionEditor.SimpleQuestionEditor(props.parentKey, props.itemKey, props.version ? props.version : 1);
307
- // QUESTION TEXT
308
- simpleEditor.setTitle(props.questionText, props.questionSubText, props.titleClassName);
309
- if (props.condition) {
310
- simpleEditor.setCondition(props.condition);
311
- }
312
- if (props.helpGroupContent) {
313
- simpleEditor.editor.setHelpGroupComponent(utils_simpleGenerators.generateHelpGroupComponent(props.helpGroupContent));
314
- }
315
- if (props.topDisplayCompoments) {
316
- props.topDisplayCompoments.forEach(comp => simpleEditor.addDisplayComponent(comp));
317
- }
318
- const rg_inner = {
319
- key: constants_keyDefinitions.datePickerKey, role: 'dateInput',
320
- properties: {
321
- dateInputMode: { str: props.dateInputMode },
322
- min: props.minRelativeDate ? {
323
- dtype: 'exp', exp: expressionUtils_surveyEngineExpressions.SurveyEngine.timestampWithOffset(props.minRelativeDate.delta, props.minRelativeDate.reference)
324
- } : undefined,
325
- max: props.maxRelativeDate ? {
326
- dtype: 'exp', exp: utils_simpleGenerators.expWithArgs('timestampWithOffset', types_duration.durationObjectToSeconds(props.maxRelativeDate.delta), props.maxRelativeDate.reference ? props.maxRelativeDate.reference : undefined)
327
- } : undefined,
328
- },
329
- content: props.inputLabelText ? utils_simpleGenerators.generateLocStrings(props.inputLabelText) : undefined,
330
- description: props.placeholderText ? utils_simpleGenerators.generateLocStrings(props.placeholderText) : undefined,
331
- };
332
- simpleEditor.setResponseGroupWithContent(rg_inner);
333
- if (props.bottomDisplayCompoments) {
334
- props.bottomDisplayCompoments.forEach(comp => simpleEditor.addDisplayComponent(comp));
335
- }
336
- if (props.isRequired) {
337
- simpleEditor.addHasResponseValidation();
338
- }
339
- if (props.footnoteText) {
340
- simpleEditor.addDisplayComponent(utils_componentGenerators.ComponentGenerators.footnote({ content: props.footnoteText }));
341
- }
342
- return simpleEditor.getItem();
343
- };
344
- const generateMultilineInput = (props) => {
345
- const simpleEditor = new utils_simpleQuestionEditor.SimpleQuestionEditor(props.parentKey, props.itemKey, props.version ? props.version : 1);
346
- // QUESTION TEXT
347
- simpleEditor.setTitle(props.questionText, props.questionSubText, props.titleClassName);
348
- if (props.condition) {
349
- simpleEditor.setCondition(props.condition);
350
- }
351
- if (props.helpGroupContent) {
352
- simpleEditor.editor.setHelpGroupComponent(utils_simpleGenerators.generateHelpGroupComponent(props.helpGroupContent));
353
- }
354
- if (props.topDisplayCompoments) {
355
- props.topDisplayCompoments.forEach(comp => simpleEditor.addDisplayComponent(comp));
356
- }
357
- const rg_inner = {
358
- key: constants_keyDefinitions.inputKey, role: 'multilineTextInput',
359
- content: props.inputLabelText ? utils_simpleGenerators.generateLocStrings(props.inputLabelText) : undefined,
360
- description: props.placeholderText ? utils_simpleGenerators.generateLocStrings(props.placeholderText) : undefined,
361
- };
362
- simpleEditor.setResponseGroupWithContent(rg_inner);
363
- if (props.bottomDisplayCompoments) {
364
- props.bottomDisplayCompoments.forEach(comp => simpleEditor.addDisplayComponent(comp));
365
- }
366
- if (props.isRequired) {
367
- simpleEditor.addHasResponseValidation();
368
- }
369
- if (props.footnoteText) {
370
- simpleEditor.addDisplayComponent(utils_componentGenerators.ComponentGenerators.footnote({ content: props.footnoteText }));
371
- }
372
- return simpleEditor.getItem();
373
- };
374
- const generateDisplay = (props) => {
375
- const simpleEditor = new utils_simpleQuestionEditor.SimpleQuestionEditor(props.parentKey, props.itemKey, 1);
376
- props.content.forEach(item => simpleEditor.addDisplayComponent(item));
377
- if (props.condition) {
378
- simpleEditor.setCondition(props.condition);
379
- }
380
- return simpleEditor.getItem();
381
- };
382
- const generateSurveyEnd = (parentKey, content, condition) => {
383
- const defaultKey = 'surveyEnd';
384
- const itemKey = [parentKey, defaultKey].join('.');
385
- const editor = new surveyEditor_itemEditor.ItemEditor(undefined, { itemKey: itemKey, type: 'surveyEnd', isGroup: false });
386
- editor.setTitleComponent(utils_simpleGenerators.generateTitleComponent(content));
387
- // CONDITION
388
- editor.setCondition(condition);
389
- return editor.getItem();
390
- };
391
- const SurveyItemGenerators = {
392
- singleChoice: generateSingleChoiceQuestion,
393
- responsiveSingleChoiceArray: generateResponsiveSingleChoiceArrayQuestion,
394
- responsiveBipolarLikertArray: generateResponsiveBipolarLikertArray,
395
- multipleChoice: generateMultipleChoiceQuestion,
396
- simpleLikertGroup: generateSimpleLikertGroupQuestion,
397
- dateInput: generateDatePickerInput,
398
- multilineTextInput: generateMultilineInput,
399
- dropDown: generateDropDownQuestion,
400
- numericSlider: generateNumericSliderQuestion,
401
- numericInput: generateNumericInputQuestion,
402
- display: generateDisplay,
403
- surveyEnd: generateSurveyEnd,
404
- };
405
- const initSingleChoiceGroup = (key, optionItems, order) => {
406
- // init group
407
- return initResponseGroup('singleChoiceGroup', key, optionItems, order);
408
- };
409
- const initMultipleChoiceGroup = (key, optionItems, order) => {
410
- // init group
411
- return initResponseGroup('multipleChoiceGroup', key, optionItems, order);
412
- };
413
- const initDropdownGroup = (key, optionItems, order, groupDisabled, groupContent, groupDescription) => {
414
- // init group
415
- return initResponseGroup('dropDownGroup', key, optionItems, order, groupDisabled, groupContent ? utils_simpleGenerators.generateLocStrings(groupContent) : undefined, groupDescription ? utils_simpleGenerators.generateLocStrings(groupDescription) : undefined);
416
- };
417
- const initSliderCategoricalGroup = (key, optionItems, order, groupDisabled) => {
418
- // init group
419
- return initResponseGroup('sliderCategorical', key, optionItems, order, groupDisabled);
420
- };
421
- const initResponseGroup = (type, key, optionItems, order, groupDisabled, groupContent, groupDescription) => {
422
- // init group
423
- const groupEdit = new surveyEditor_componentEditor.ComponentEditor(undefined, {
424
- key: key,
425
- isGroup: true,
426
- role: type,
427
- });
428
- groupEdit.setOrder(order ? order : {
429
- name: 'sequential'
430
- });
431
- if (groupDisabled) {
432
- groupEdit.setDisabled(groupDisabled);
433
- }
434
- if (groupContent) {
435
- groupEdit.setContent(groupContent);
436
- }
437
- if (groupDescription) {
438
- groupEdit.setDescription(groupDescription);
439
- }
440
- // add option items
441
- optionItems.forEach(optionDef => {
442
- const optEditor = new surveyEditor_componentEditor.ComponentEditor(undefined, {
443
- key: optionDef.key,
444
- role: optionDef.role,
445
- });
446
- if (optionDef.content) {
447
- optEditor.setContent(utils_simpleGenerators.generateLocStrings(optionDef.content));
448
- }
449
- if (optionDef.description) {
450
- optEditor.setDescription(utils_simpleGenerators.generateLocStrings(optionDef.description));
451
- }
452
- if (optionDef.items) {
453
- optionDef.items.forEach((item, index) => {
454
- optEditor.addItemComponent({
455
- key: index.toFixed(),
456
- role: 'text',
457
- content: utils_simpleGenerators.generateLocStrings(item.content),
458
- style: item.className ? [{ key: 'className', value: item.className }] : undefined
459
- });
460
- });
461
- }
462
- switch (optionDef.role) {
463
- case 'date':
464
- optEditor.setDType('date');
465
- break;
466
- case 'numberInput':
467
- optEditor.setDType('number');
468
- break;
469
- }
470
- if (optionDef.displayCondition) {
471
- optEditor.setDisplayCondition(optionDef.displayCondition);
472
- }
473
- if (optionDef.disabled) {
474
- optEditor.setDisabled(optionDef.disabled);
475
- }
476
- if (optionDef.style) {
477
- optEditor.setStyles(optionDef.style);
478
- }
479
- if (optionDef.optionProps) {
480
- if (typeof (optionDef.optionProps.min) === 'number') {
481
- optionDef.optionProps.min = { dtype: 'num', num: optionDef.optionProps.min };
482
- }
483
- if (typeof (optionDef.optionProps.max) === 'number') {
484
- optionDef.optionProps.max = { dtype: 'num', num: optionDef.optionProps.max };
485
- }
486
- if (typeof (optionDef.optionProps.stepSize) === 'number') {
487
- optionDef.optionProps.stepSize = { dtype: 'num', num: optionDef.optionProps.stepSize };
488
- }
489
- optEditor.setProperties(optionDef.optionProps);
490
- }
491
- groupEdit.addItemComponent(optEditor.getComponent());
492
- });
493
- return groupEdit.getComponent();
494
- };
495
- const initMatrixQuestion = (key, rows, order) => {
496
- // init group
497
- const groupEdit = new surveyEditor_componentEditor.ComponentEditor(undefined, {
498
- key: key,
499
- isGroup: true,
500
- role: 'matrix',
501
- });
502
- groupEdit.setOrder(order ? order : {
503
- name: 'sequential'
504
- });
505
- // init rows
506
- rows.forEach(rowDef => {
507
- const rowEditor = new surveyEditor_componentEditor.ComponentEditor(undefined, {
508
- key: rowDef.key,
509
- role: rowDef.role,
510
- });
511
- if (rowDef.displayCondition) {
512
- rowEditor.setDisplayCondition(rowDef.displayCondition);
513
- }
514
- if (rowDef.disabled) {
515
- rowEditor.setDisabled(rowDef.disabled);
516
- }
517
- switch (rowDef.role) {
518
- case 'headerRow':
519
- rowDef.cells.forEach(cell => {
520
- const cellEditor = new surveyEditor_componentEditor.ComponentEditor(undefined, {
521
- key: cell.key,
522
- role: cell.role,
523
- });
524
- if (cell.content) {
525
- cellEditor.setContent(utils_simpleGenerators.generateLocStrings(cell.content));
526
- }
527
- if (cell.description) {
528
- cellEditor.setDescription(utils_simpleGenerators.generateLocStrings(cell.description));
529
- }
530
- rowEditor.addItemComponent(cellEditor.getComponent());
531
- });
532
- break;
533
- case 'radioRow':
534
- rowDef.cells.forEach(cell => {
535
- const cellEditor = new surveyEditor_componentEditor.ComponentEditor(undefined, {
536
- key: cell.key,
537
- role: cell.role,
538
- });
539
- if (cell.content) {
540
- cellEditor.setContent(utils_simpleGenerators.generateLocStrings(cell.content));
541
- }
542
- if (cell.description) {
543
- cellEditor.setDescription(utils_simpleGenerators.generateLocStrings(cell.description));
544
- }
545
- rowEditor.addItemComponent(cellEditor.getComponent());
546
- });
547
- break;
548
- case 'responseRow':
549
- rowDef.cells.forEach(cell => {
550
- const cellEditor = new surveyEditor_componentEditor.ComponentEditor(undefined, {
551
- key: cell.key,
552
- role: cell.role,
553
- });
554
- if (cell.content) {
555
- cellEditor.setContent(utils_simpleGenerators.generateLocStrings(cell.content));
556
- }
557
- if (cell.description) {
558
- cellEditor.setDescription(utils_simpleGenerators.generateLocStrings(cell.description));
559
- }
560
- cellEditor.setProperties(cell.properties);
561
- if (cell.items) {
562
- cell.items.forEach(opt => {
563
- const cellOptionEditor = new surveyEditor_componentEditor.ComponentEditor(undefined, {
564
- key: opt.key,
565
- role: opt.role,
566
- });
567
- if (opt.content) {
568
- cellOptionEditor.setContent(utils_simpleGenerators.generateLocStrings(opt.content));
569
- }
570
- cellOptionEditor.setDisabled(opt.disabled);
571
- cellOptionEditor.setDisplayCondition(opt.displayCondition);
572
- cellEditor.addItemComponent(cellOptionEditor.getComponent());
573
- });
574
- }
575
- rowEditor.addItemComponent(cellEditor.getComponent());
576
- });
577
- break;
578
- }
579
- groupEdit.addItemComponent(rowEditor.getComponent());
580
- });
581
- return groupEdit.getComponent();
582
- };
583
- const initEQ5DHealthIndicatorQuestion = (props) => {
584
- // init group
585
- const groupEdit = new surveyEditor_componentEditor.ComponentEditor(undefined, {
586
- key: props.key,
587
- isGroup: true,
588
- role: props.role,
589
- });
590
- const instructionTextEditor = new surveyEditor_componentEditor.ComponentEditor(undefined, { role: 'instruction', });
591
- instructionTextEditor.setContent(utils_simpleGenerators.generateLocStrings(props.instructionText));
592
- groupEdit.addItemComponent(instructionTextEditor.getComponent());
593
- const valueBoxTextEditor = new surveyEditor_componentEditor.ComponentEditor(undefined, { role: 'valuebox', });
594
- valueBoxTextEditor.setContent(utils_simpleGenerators.generateLocStrings(props.valueBoxText));
595
- groupEdit.addItemComponent(valueBoxTextEditor.getComponent());
596
- const minHealthTextEditor = new surveyEditor_componentEditor.ComponentEditor(undefined, { role: 'mintext', });
597
- minHealthTextEditor.setContent(utils_simpleGenerators.generateLocStrings(props.minHealthText));
598
- groupEdit.addItemComponent(minHealthTextEditor.getComponent());
599
- const maxHealthTextEditor = new surveyEditor_componentEditor.ComponentEditor(undefined, { role: 'maxtext', });
600
- maxHealthTextEditor.setContent(utils_simpleGenerators.generateLocStrings(props.maxHealthText));
601
- groupEdit.addItemComponent(maxHealthTextEditor.getComponent());
602
- return groupEdit.getComponent();
603
- };
604
- const initLikertScaleGroup = (key, rows, scaleOptions, stackOnSmallScreen, displayCondition) => {
605
- const groupEdit = new surveyEditor_componentEditor.ComponentEditor(undefined, {
606
- key: key,
607
- isGroup: true,
608
- role: 'likertGroup',
609
- });
610
- if (displayCondition) {
611
- groupEdit.setDisplayCondition(displayCondition);
612
- }
613
- rows.forEach((row, index) => {
614
- groupEdit.addItemComponent({
615
- key: utils_randomKeyGenerator.generateRandomKey(4),
616
- role: 'text',
617
- style: [{
618
- key: 'className', value: 'fw-bold' + (index !== 0 ? ' pt-1 mt-2' : '') + ((!row.hideTopBorder && index > 0) ? ' border-top border-1 border-grey-2' : '') + (row.descriptions ? ' mb-0' : ' mb-1')
619
- }, { key: 'variant', value: 'h6' }],
620
- content: utils_simpleGenerators.generateLocStrings(row.content),
621
- });
622
- if (row.descriptions) {
623
- row.descriptions.forEach(desc => {
624
- groupEdit.addItemComponent(desc);
625
- });
626
- }
627
- const item = initLikertScaleItem(row.key, scaleOptions.map(option => {
628
- var _a, _b;
629
- return {
630
- key: option.key,
631
- className: option.className,
632
- content: row.hideLabels ? undefined : option.content,
633
- disabled: (_b = (_a = row.optionDisabled) === null || _a === void 0 ? void 0 : _a.find(cond => cond.optionKey === option.key)) === null || _b === void 0 ? void 0 : _b.exp,
634
- };
635
- }), stackOnSmallScreen, row.displayCondition);
636
- groupEdit.addItemComponent(item);
637
- });
638
- return groupEdit.getComponent();
639
- };
640
- const initResponsiveSingleChoiceArray = (rgKey, props, displayCondition) => {
641
- var _a, _b;
642
- const groupEdit = new surveyEditor_componentEditor.ComponentEditor(undefined, {
643
- key: rgKey,
644
- isGroup: true,
645
- role: 'responsiveSingleChoiceArray',
646
- });
647
- if (displayCondition) {
648
- groupEdit.setDisplayCondition(displayCondition);
649
- }
650
- const style = [
651
- { key: 'defaultMode', value: props.defaultMode },
652
- ];
653
- if (props.responsiveModes) {
654
- if (props.responsiveModes.sm) {
655
- style.push({ key: 'smMode', value: props.responsiveModes.sm });
656
- }
657
- if (props.responsiveModes.md) {
658
- style.push({ key: 'mdMode', value: props.responsiveModes.md });
659
- }
660
- if (props.responsiveModes.lg) {
661
- style.push({ key: 'lgMode', value: props.responsiveModes.lg });
662
- }
663
- if (props.responsiveModes.xl) {
664
- style.push({ key: 'xlMode', value: props.responsiveModes.xl });
665
- }
666
- if (props.responsiveModes.xxl) {
667
- style.push({ key: 'xxlMode', value: props.responsiveModes.xxl });
668
- }
669
- }
670
- if (props.rgClassName) {
671
- style.push({ key: 'className', value: props.rgClassName });
672
- }
673
- if (props.verticalModeProps) {
674
- if (props.verticalModeProps.useReverseOptionOrder) {
675
- style.push({ key: 'verticalModeReverseOrder', value: 'true' });
676
- }
677
- }
678
- if (props.tableModeProps) {
679
- style.push({ key: 'tableModeClassName', value: 'table-borderless mb-0 ' + props.tableModeProps.className });
680
- if (props.tableModeProps.layout) {
681
- style.push({ key: 'tableModeLayout', value: props.tableModeProps.layout });
682
- }
683
- if (props.tableModeProps.firstColWidth) {
684
- style.push({ key: 'tableModeFirstColWidth', value: props.tableModeProps.firstColWidth });
685
- }
686
- }
687
- groupEdit.setStyles(style);
688
- const defaultBorderClass = 'border-bottom border-grey-2';
689
- let tableModeOptionHeaderClassName = undefined;
690
- if (!((_a = props.tableModeProps) === null || _a === void 0 ? void 0 : _a.hideRowBorder)) {
691
- tableModeOptionHeaderClassName = defaultBorderClass;
692
- }
693
- if ((_b = props.tableModeProps) === null || _b === void 0 ? void 0 : _b.optionHeaderClassName) {
694
- tableModeOptionHeaderClassName += ' ' + props.tableModeProps.optionHeaderClassName;
695
- }
696
- const optionStyles = [];
697
- if (tableModeOptionHeaderClassName) {
698
- optionStyles.push({ key: 'tableModeClassName', value: tableModeOptionHeaderClassName });
699
- }
700
- groupEdit.addItemComponent({
701
- key: 'header',
702
- role: 'options',
703
- style: optionStyles.length > 0 ? optionStyles : undefined,
704
- items: props.scaleOptions.map(option => {
705
- return {
706
- key: option.key,
707
- role: 'option',
708
- style: option.className ? [{ key: 'className', value: option.className }] : undefined,
709
- content: !Array.isArray(option.content) ? utils_simpleGenerators.generateLocStrings(option.content) : undefined,
710
- items: Array.isArray(option.content) ? option.content.map((cont, index) => {
711
- return {
712
- key: index.toFixed(),
713
- role: 'text',
714
- content: utils_simpleGenerators.generateLocStrings(cont.content),
715
- style: cont.className ? [{ key: 'className', value: cont.className }] : undefined,
716
- };
717
- }) : [],
718
- };
719
- })
720
- });
721
- props.rows.forEach((row, index) => {
722
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
723
- let tableModeRowClassName = undefined;
724
- let horizontalModeRowClassName = undefined;
725
- let verticalModeRowClassName = undefined;
726
- const isLast = index === props.rows.length - 1;
727
- if (!((_a = props.tableModeProps) === null || _a === void 0 ? void 0 : _a.hideRowBorder) && !isLast) {
728
- tableModeRowClassName = defaultBorderClass;
729
- }
730
- if ((_b = row.tableModeProps) === null || _b === void 0 ? void 0 : _b.className) {
731
- tableModeRowClassName += ' ' + ((_c = row.tableModeProps) === null || _c === void 0 ? void 0 : _c.className);
732
- }
733
- if (!((_d = props.horizontalModeProps) === null || _d === void 0 ? void 0 : _d.hideRowBorder) && !isLast) {
734
- horizontalModeRowClassName = defaultBorderClass;
735
- }
736
- if ((_e = row.horizontalModeProps) === null || _e === void 0 ? void 0 : _e.className) {
737
- horizontalModeRowClassName += ' ' + ((_f = row.horizontalModeProps) === null || _f === void 0 ? void 0 : _f.className);
738
- }
739
- if (!((_g = props.verticalModeProps) === null || _g === void 0 ? void 0 : _g.hideRowBorder) && !isLast) {
740
- verticalModeRowClassName = defaultBorderClass;
741
- }
742
- if ((_h = row.verticalModeProps) === null || _h === void 0 ? void 0 : _h.className) {
743
- verticalModeRowClassName += ' ' + ((_j = row.verticalModeProps) === null || _j === void 0 ? void 0 : _j.className);
744
- }
745
- const rowStyles = [];
746
- if (tableModeRowClassName) {
747
- rowStyles.push({ key: 'tableModeClassName', value: tableModeRowClassName });
748
- }
749
- if (horizontalModeRowClassName) {
750
- rowStyles.push({ key: 'horizontalModeClassName', value: horizontalModeRowClassName });
751
- }
752
- if (verticalModeRowClassName) {
753
- rowStyles.push({ key: 'verticalModeClassName', value: verticalModeRowClassName });
754
- }
755
- if ((_k = row.horizontalModeProps) === null || _k === void 0 ? void 0 : _k.labelPlacement) {
756
- rowStyles.push({ key: 'horizontalModeLabelPlacement', value: row.horizontalModeProps.labelPlacement });
757
- }
758
- groupEdit.addItemComponent({
759
- key: row.key,
760
- role: 'row',
761
- style: rowStyles.length > 0 ? rowStyles : undefined,
762
- content: !Array.isArray(row.content) ? utils_simpleGenerators.generateLocStrings(row.content) : undefined,
763
- items: Array.isArray(row.content) ? row.content.map((cont, index) => {
764
- return {
765
- key: index.toFixed(),
766
- role: 'text',
767
- content: utils_simpleGenerators.generateLocStrings(cont.content),
768
- style: cont.className ? [{ key: 'className', value: cont.className }] : undefined,
769
- };
770
- }) : [],
771
- });
772
- });
773
- return groupEdit.getComponent();
774
- };
775
- const initResponsiveBipolarLikertArray = (rgKey, props, displayCondition) => {
776
- var _a;
777
- const groupEdit = new surveyEditor_componentEditor.ComponentEditor(undefined, {
778
- key: rgKey,
779
- isGroup: true,
780
- role: 'responsiveBipolarLikertScaleArray',
781
- });
782
- if (displayCondition) {
783
- groupEdit.setDisplayCondition(displayCondition);
784
- }
785
- const style = [
786
- { key: 'defaultMode', value: props.defaultMode },
787
- ];
788
- if (props.responsiveModes) {
789
- if (props.responsiveModes.sm) {
790
- style.push({ key: 'smMode', value: props.responsiveModes.sm });
791
- }
792
- if (props.responsiveModes.md) {
793
- style.push({ key: 'mdMode', value: props.responsiveModes.md });
794
- }
795
- if (props.responsiveModes.lg) {
796
- style.push({ key: 'lgMode', value: props.responsiveModes.lg });
797
- }
798
- if (props.responsiveModes.xl) {
799
- style.push({ key: 'xlMode', value: props.responsiveModes.xl });
800
- }
801
- if (props.responsiveModes.xxl) {
802
- style.push({ key: 'xxlMode', value: props.responsiveModes.xxl });
803
- }
804
- }
805
- if (props.rgClassName) {
806
- style.push({ key: 'className', value: props.rgClassName });
807
- }
808
- if (props.withLabelRowModeProps) {
809
- if (props.withLabelRowModeProps.maxLabelWidth) {
810
- style.push({ key: 'labelRowMaxLabelWidth', value: props.withLabelRowModeProps.maxLabelWidth });
811
- }
812
- }
813
- style.push({ key: 'labelRowPosition', value: ((_a = props.withLabelRowModeProps) === null || _a === void 0 ? void 0 : _a.useBottomLabel) ? 'bottom' : 'top' });
814
- if (props.tableModeProps) {
815
- style.push({ key: 'tableModeClassName', value: 'table-borderless mb-0 ' + props.tableModeProps.className });
816
- if (props.tableModeProps.layout) {
817
- style.push({ key: 'tableModeLayout', value: props.tableModeProps.layout });
818
- }
819
- if (props.tableModeProps.labelColWidth) {
820
- style.push({ key: 'tableModeLabelColWidth', value: props.tableModeProps.labelColWidth });
821
- }
822
- }
823
- groupEdit.setStyles(style);
824
- const defaultBorderClass = 'border-bottom border-grey-2';
825
- groupEdit.addItemComponent({
826
- key: 'options',
827
- role: 'options',
828
- items: props.scaleOptions.map(option => {
829
- return {
830
- key: option.key,
831
- role: 'option',
832
- };
833
- })
834
- });
835
- props.rows.forEach((row, index) => {
836
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
837
- let tableModeRowClassName = undefined;
838
- let withLabelRowModeClassName = undefined;
839
- let verticalModeRowClassName = undefined;
840
- const isLast = index === props.rows.length - 1;
841
- if (!((_a = props.tableModeProps) === null || _a === void 0 ? void 0 : _a.hideRowBorder) && !isLast) {
842
- tableModeRowClassName = defaultBorderClass;
843
- }
844
- if ((_b = row.tableModeProps) === null || _b === void 0 ? void 0 : _b.className) {
845
- tableModeRowClassName += ' ' + ((_c = row.tableModeProps) === null || _c === void 0 ? void 0 : _c.className);
846
- }
847
- if (!((_d = props.withLabelRowModeProps) === null || _d === void 0 ? void 0 : _d.hideRowBorder) && !isLast) {
848
- withLabelRowModeClassName = defaultBorderClass;
849
- }
850
- if ((_e = row.withLabelRowModeProps) === null || _e === void 0 ? void 0 : _e.className) {
851
- withLabelRowModeClassName += ' ' + ((_f = row.withLabelRowModeProps) === null || _f === void 0 ? void 0 : _f.className);
852
- }
853
- if (!((_g = props.verticalModeProps) === null || _g === void 0 ? void 0 : _g.hideRowBorder) && !isLast) {
854
- verticalModeRowClassName = defaultBorderClass;
855
- }
856
- if ((_h = row.verticalModeProps) === null || _h === void 0 ? void 0 : _h.className) {
857
- verticalModeRowClassName += ' ' + ((_j = row.verticalModeProps) === null || _j === void 0 ? void 0 : _j.className);
858
- }
859
- const rowStyles = [];
860
- if (tableModeRowClassName) {
861
- rowStyles.push({ key: 'tableModeClassName', value: tableModeRowClassName });
862
- }
863
- if (withLabelRowModeClassName) {
864
- rowStyles.push({ key: 'withLabelRowModeClassName', value: withLabelRowModeClassName });
865
- }
866
- if (verticalModeRowClassName) {
867
- rowStyles.push({ key: 'verticalModeClassName', value: verticalModeRowClassName });
868
- }
869
- const startLabel = {
870
- key: 'start',
871
- role: 'start',
872
- content: !Array.isArray(row.startLabel) ? utils_simpleGenerators.generateLocStrings(row.startLabel) : undefined,
873
- items: Array.isArray(row.startLabel) ? row.startLabel.map((cont, index) => {
874
- return {
875
- key: index.toFixed(),
876
- role: 'text',
877
- content: utils_simpleGenerators.generateLocStrings(cont.content),
878
- style: cont.className ? [{ key: 'className', value: cont.className }] : undefined,
879
- };
880
- }) : [],
881
- };
882
- const endLabel = {
883
- key: 'end',
884
- role: 'end',
885
- content: !Array.isArray(row.endLabel) ? utils_simpleGenerators.generateLocStrings(row.endLabel) : undefined,
886
- items: Array.isArray(row.endLabel) ? row.endLabel.map((cont, index) => {
887
- return {
888
- key: index.toFixed(),
889
- role: 'text',
890
- content: utils_simpleGenerators.generateLocStrings(cont.content),
891
- style: cont.className ? [{ key: 'className', value: cont.className }] : undefined,
892
- };
893
- }) : [],
894
- };
895
- groupEdit.addItemComponent({
896
- key: row.key,
897
- role: 'row',
898
- style: rowStyles.length > 0 ? rowStyles : undefined,
899
- items: [
900
- startLabel, endLabel
901
- ],
902
- });
903
- });
904
- return groupEdit.getComponent();
905
- };
906
- const initLikertScaleItem = (key, options, stackOnSmallScreen, displayCondition) => {
907
- // init group
908
- const groupEdit = new surveyEditor_componentEditor.ComponentEditor(undefined, {
909
- key: key,
910
- isGroup: true,
911
- role: 'likert',
912
- });
913
- groupEdit.setDisplayCondition(displayCondition);
914
- if (stackOnSmallScreen) {
915
- groupEdit.setStyles([
916
- { key: 'responsive', value: 'stackOnSmallScreen' }
917
- ]);
918
- }
919
- options.forEach((option) => {
920
- const optionComponent = new surveyEditor_componentEditor.ComponentEditor(undefined, {
921
- key: option.key,
922
- role: 'option',
923
- });
924
- if (option.content) {
925
- optionComponent.setContent(utils_simpleGenerators.generateLocStrings(option.content));
926
- }
927
- if (option.className) {
928
- optionComponent.setStyles([{
929
- key: 'className', value: option.className
930
- }]);
931
- }
932
- optionComponent.setDisabled(option.disabled);
933
- groupEdit.addItemComponent(optionComponent.getComponent());
934
- });
935
- return groupEdit.getComponent();
936
- };
937
-
938
- exports.SurveyItemGenerators = SurveyItemGenerators;
939
- exports.initDropdownGroup = initDropdownGroup;
940
- exports.initEQ5DHealthIndicatorQuestion = initEQ5DHealthIndicatorQuestion;
941
- exports.initLikertScaleGroup = initLikertScaleGroup;
942
- exports.initLikertScaleItem = initLikertScaleItem;
943
- exports.initMatrixQuestion = initMatrixQuestion;
944
- exports.initMultipleChoiceGroup = initMultipleChoiceGroup;
945
- exports.initResponsiveBipolarLikertArray = initResponsiveBipolarLikertArray;
946
- exports.initResponsiveSingleChoiceArray = initResponsiveSingleChoiceArray;
947
- exports.initSingleChoiceGroup = initSingleChoiceGroup;
948
- exports.initSliderCategoricalGroup = initSliderCategoricalGroup;
949
- //# sourceMappingURL=question-type-generator.js.map