case-editor-tools 1.0.0-beta.3 → 1.0.0-beta.30

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 (130) 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 +37 -7
  11. package/{build/expression-utils → expression-utils}/studyEngineExpressions.js +93 -4
  12. package/{build/expression-utils → expression-utils}/studyEngineExpressions.js.map +1 -1
  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 +7 -8
  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} +9 -2
  50. package/{build/expression-utils/surveyEngineExpressions.js → surveys/survey-engine-expressions.js} +36 -4
  51. package/{build/expression-utils/surveyEngineExpressions.js.map → surveys/survey-engine-expressions.js.map} +1 -1
  52. package/surveys/survey-items.d.ts +66 -0
  53. package/surveys/survey-items.js +302 -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} +7 -3
  68. package/{build/types/surveyDefinition.js → surveys/types/survey-definition.js} +19 -11
  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/.babelrc.js +0 -7
  98. package/.editorconfig +0 -13
  99. package/LICENSE +0 -202
  100. package/build/item-editor-8fd24b61.js.map +0 -1
  101. package/build/package.json +0 -26
  102. package/build/types/surveyDefinition.js.map +0 -1
  103. package/build/utils/componentGenerators.js +0 -92
  104. package/build/utils/question-type-generator.d.ts +0 -283
  105. package/build/utils/question-type-generator.js +0 -949
  106. package/build/utils/question-type-generator.js.map +0 -1
  107. package/rollup.config.js +0 -53
  108. package/src/constants/key-definitions.ts +0 -13
  109. package/src/expression-utils/expressionGen.ts +0 -28
  110. package/src/expression-utils/studyEngineExpressions.ts +0 -359
  111. package/src/expression-utils/surveyEngineExpressions.ts +0 -483
  112. package/src/index.ts +0 -1
  113. package/src/logger/logger.ts +0 -31
  114. package/src/survey-editor/component-editor.ts +0 -133
  115. package/src/survey-editor/data-types.ts +0 -18
  116. package/src/survey-editor/item-editor.ts +0 -528
  117. package/src/survey-editor/survey-editor.ts +0 -260
  118. package/src/types/duration.ts +0 -32
  119. package/src/types/expression.ts +0 -22
  120. package/src/types/group.ts +0 -73
  121. package/src/types/item.ts +0 -42
  122. package/src/types/study.ts +0 -17
  123. package/src/types/studyRules.ts +0 -39
  124. package/src/types/surveyDefinition.ts +0 -83
  125. package/src/utils/componentGenerators.ts +0 -122
  126. package/src/utils/question-type-generator.ts +0 -1516
  127. package/src/utils/randomKeyGenerator.ts +0 -11
  128. package/src/utils/simple-generators.ts +0 -106
  129. package/src/utils/simple-question-editor.ts +0 -52
  130. package/tsconfig.json +0 -100
@@ -0,0 +1,302 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var surveys_surveyEditor_componentEditor = require('./survey-editor/component-editor.js');
6
+ var surveys_surveyEditor_itemEditor = require('../item-editor-c6933791.js');
7
+ var surveys_utils_componentGenerators = require('./utils/componentGenerators.js');
8
+ var types_duration = require('../types/duration.js');
9
+ var constants_keyDefinitions = require('../constants/key-definitions.js');
10
+ var surveys_utils_simpleGenerators = require('./utils/simple-generators.js');
11
+ var surveys_utils_simpleQuestionEditor = require('./utils/simple-question-editor.js');
12
+ var surveys_surveyEngineExpressions = require('./survey-engine-expressions.js');
13
+ var surveys_responseTypeGenerators_optionGroupComponents = require('./responseTypeGenerators/optionGroupComponents.js');
14
+ var surveys_responseTypeGenerators_likertGroupComponents = require('./responseTypeGenerators/likertGroupComponents.js');
15
+ require('./utils/randomKeyGenerator.js');
16
+ require('../logger/logger.js');
17
+ require('../expression-utils/expressionGen.js');
18
+
19
+ const commonQuestionGenerator = (props, rg_inner) => {
20
+ const simpleEditor = new surveys_utils_simpleQuestionEditor.SimpleQuestionEditor(props.parentKey, props.itemKey, props.version ? props.version : 1);
21
+ // QUESTION TEXT
22
+ simpleEditor.setTitle(props.questionText, props.questionSubText, props.titleClassName);
23
+ if (props.condition) {
24
+ simpleEditor.setCondition(props.condition);
25
+ }
26
+ if (props.helpGroupContent) {
27
+ simpleEditor.editor.setHelpGroupComponent(surveys_utils_simpleGenerators.generateHelpGroupComponent(props.helpGroupContent));
28
+ }
29
+ if (props.topDisplayCompoments) {
30
+ props.topDisplayCompoments.forEach(comp => simpleEditor.addDisplayComponent(comp));
31
+ }
32
+ simpleEditor.setResponseGroupWithContent(rg_inner);
33
+ if (props.bottomDisplayCompoments) {
34
+ props.bottomDisplayCompoments.forEach(comp => simpleEditor.addDisplayComponent(comp));
35
+ }
36
+ if (props.isRequired) {
37
+ simpleEditor.addHasResponseValidation();
38
+ }
39
+ if (props.customValidations) {
40
+ props.customValidations.forEach(v => simpleEditor.editor.addValidation(v));
41
+ }
42
+ if (props.footnoteText) {
43
+ simpleEditor.addDisplayComponent(surveys_utils_componentGenerators.ComponentGenerators.footnote({ content: props.footnoteText }));
44
+ }
45
+ return simpleEditor.getItem();
46
+ };
47
+ const generateNumericInputQuestion = (props) => {
48
+ var _a, _b, _c, _d;
49
+ const style = [];
50
+ if (props.inputMaxWidth) {
51
+ style.push({
52
+ key: 'inputMaxWidth', value: props.inputMaxWidth,
53
+ });
54
+ }
55
+ if (props.labelBehindInput) {
56
+ style.push({ key: 'labelPlacement', value: 'after' });
57
+ }
58
+ const rg_inner = {
59
+ key: constants_keyDefinitions.numericInputKey,
60
+ role: 'numberInput',
61
+ properties: {
62
+ 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,
63
+ 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,
64
+ 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,
65
+ },
66
+ content: surveys_utils_simpleGenerators.generateLocStrings(props.inputLabel),
67
+ style: style.length > 0 ? style : undefined,
68
+ };
69
+ return commonQuestionGenerator(props, rg_inner);
70
+ };
71
+ const generateSingleChoiceQuestion = (props) => {
72
+ const rg_inner = surveys_responseTypeGenerators_optionGroupComponents.initSingleChoiceGroup(constants_keyDefinitions.singleChoiceKey, props.responseOptions);
73
+ return commonQuestionGenerator(props, rg_inner);
74
+ };
75
+ const generateDropDownQuestion = (props) => {
76
+ const rg_inner = surveys_responseTypeGenerators_optionGroupComponents.initDropdownGroup(constants_keyDefinitions.dropDownKey, props.responseOptions);
77
+ return commonQuestionGenerator(props, rg_inner);
78
+ };
79
+ const generateMultipleChoiceQuestion = (props) => {
80
+ const rg_inner = surveys_responseTypeGenerators_optionGroupComponents.initMultipleChoiceGroup(constants_keyDefinitions.multipleChoiceKey, props.responseOptions);
81
+ return commonQuestionGenerator(props, rg_inner);
82
+ };
83
+ const generateSimpleLikertGroupQuestion = (props) => {
84
+ var _a;
85
+ const rg_inner = surveys_responseTypeGenerators_likertGroupComponents.initLikertScaleGroup(constants_keyDefinitions.likertScaleGroupKey, props.rows, props.scaleOptions, props.stackOnSmallScreen);
86
+ // Add extra validation for likert
87
+ if (props.isRequired) {
88
+ if (!props.customValidations) {
89
+ props.customValidations = [];
90
+ }
91
+ (_a = props.customValidations) === null || _a === void 0 ? void 0 : _a.push({
92
+ key: 'r',
93
+ type: 'hard',
94
+ rule: surveys_utils_simpleGenerators.expWithArgs('and', ...props.rows.map(r => surveys_utils_simpleGenerators.expWithArgs('responseHasKeysAny', [props.parentKey, props.itemKey].join('.'), [constants_keyDefinitions.responseGroupKey, constants_keyDefinitions.likertScaleGroupKey, r.key].join('.'), ...props.scaleOptions.map(o => o.key))))
95
+ });
96
+ }
97
+ return commonQuestionGenerator(props, rg_inner);
98
+ };
99
+ const generateResponsiveSingleChoiceArrayQuestion = (props) => {
100
+ var _a;
101
+ const rg_inner = surveys_responseTypeGenerators_likertGroupComponents.initResponsiveSingleChoiceArray(constants_keyDefinitions.responsiveSingleChoiceArrayKey, Object.assign({}, props));
102
+ // Add extra validation
103
+ if (props.isRequired) {
104
+ if (!props.customValidations) {
105
+ props.customValidations = [];
106
+ }
107
+ (_a = props.customValidations) === null || _a === void 0 ? void 0 : _a.push({
108
+ key: 'r',
109
+ type: 'hard',
110
+ rule: surveys_utils_simpleGenerators.expWithArgs('and', ...props.rows.map(r => surveys_utils_simpleGenerators.expWithArgs('responseHasKeysAny', [props.parentKey, props.itemKey].join('.'), [constants_keyDefinitions.responseGroupKey, constants_keyDefinitions.responsiveSingleChoiceArrayKey, r.key].join('.'), ...props.scaleOptions.map(o => o.key))))
111
+ });
112
+ }
113
+ return commonQuestionGenerator(props, rg_inner);
114
+ };
115
+ const generateResponsiveBipolarLikertArray = (props) => {
116
+ var _a;
117
+ const rg_inner = surveys_responseTypeGenerators_likertGroupComponents.initResponsiveBipolarLikertArray(constants_keyDefinitions.responsiveBipolarLikertArrayKey, Object.assign({}, props));
118
+ // Add extra validation
119
+ if (props.isRequired) {
120
+ if (!props.customValidations) {
121
+ props.customValidations = [];
122
+ }
123
+ (_a = props.customValidations) === null || _a === void 0 ? void 0 : _a.push({
124
+ key: 'r',
125
+ type: 'hard',
126
+ rule: surveys_utils_simpleGenerators.expWithArgs('and', ...props.rows.map(r => surveys_utils_simpleGenerators.expWithArgs('responseHasKeysAny', [props.parentKey, props.itemKey].join('.'), [constants_keyDefinitions.responseGroupKey, constants_keyDefinitions.responsiveBipolarLikertArrayKey, r.key].join('.'), ...props.scaleOptions.map(o => o.key))))
127
+ });
128
+ }
129
+ return commonQuestionGenerator(props, rg_inner);
130
+ };
131
+ const generateNumericSliderQuestion = (props) => {
132
+ const rg_inner = {
133
+ key: 'slider', role: 'sliderNumeric',
134
+ content: surveys_utils_simpleGenerators.generateLocStrings(props.sliderLabel),
135
+ description: surveys_utils_simpleGenerators.generateLocStrings(props.noResponseLabel),
136
+ properties: {
137
+ min: props.min !== undefined ? (typeof (props.min) === 'number' ? { dtype: 'num', num: props.min } : props.min) : undefined,
138
+ max: props.max !== undefined ? (typeof (props.max) === 'number' ? { dtype: 'num', num: props.max } : props.max) : undefined,
139
+ stepSize: props.stepSize ? (typeof (props.stepSize) === 'number' ? { dtype: 'num', num: props.stepSize } : props.stepSize) : undefined,
140
+ }
141
+ };
142
+ return commonQuestionGenerator(props, rg_inner);
143
+ };
144
+ const generateDatePickerInput = (props) => {
145
+ const rg_inner = {
146
+ key: constants_keyDefinitions.datePickerKey, role: 'dateInput',
147
+ properties: {
148
+ dateInputMode: { str: props.dateInputMode },
149
+ min: props.minRelativeDate ? {
150
+ dtype: 'exp', exp: surveys_surveyEngineExpressions.SurveyEngine.timestampWithOffset(props.minRelativeDate.delta, props.minRelativeDate.reference)
151
+ } : undefined,
152
+ max: props.maxRelativeDate ? {
153
+ dtype: 'exp', exp: surveys_utils_simpleGenerators.expWithArgs('timestampWithOffset', types_duration.durationObjectToSeconds(props.maxRelativeDate.delta), props.maxRelativeDate.reference ? props.maxRelativeDate.reference : undefined)
154
+ } : undefined,
155
+ },
156
+ content: props.inputLabelText ? surveys_utils_simpleGenerators.generateLocStrings(props.inputLabelText) : undefined,
157
+ description: props.placeholderText ? surveys_utils_simpleGenerators.generateLocStrings(props.placeholderText) : undefined,
158
+ };
159
+ return commonQuestionGenerator(props, rg_inner);
160
+ };
161
+ const generateTextInputQuestion = (props) => {
162
+ const style = [];
163
+ if (props.maxLength !== undefined) {
164
+ style.push({ key: 'maxLength', value: props.maxLength.toFixed(0) });
165
+ }
166
+ if (props.className !== undefined) {
167
+ style.push({ key: 'className', value: props.className });
168
+ }
169
+ if (props.inputMaxWidth !== undefined) {
170
+ style.push({ key: 'inputMaxWidth', value: props.inputMaxWidth });
171
+ }
172
+ const rg_inner = {
173
+ key: constants_keyDefinitions.inputKey, role: 'input',
174
+ content: props.inputLabel ? surveys_utils_simpleGenerators.generateLocStrings(props.inputLabel) : undefined,
175
+ description: props.placeholderText ? surveys_utils_simpleGenerators.generateLocStrings(props.placeholderText) : undefined,
176
+ style: style.length > 0 ? [...style] : undefined,
177
+ disabled: props.disabled,
178
+ };
179
+ return commonQuestionGenerator(props, rg_inner);
180
+ };
181
+ const generateMultilineInput = (props) => {
182
+ const rg_inner = {
183
+ key: constants_keyDefinitions.inputKey, role: 'multilineTextInput',
184
+ content: props.inputLabelText ? surveys_utils_simpleGenerators.generateLocStrings(props.inputLabelText) : undefined,
185
+ description: props.placeholderText ? surveys_utils_simpleGenerators.generateLocStrings(props.placeholderText) : undefined,
186
+ style: props.maxLength !== undefined ? [{ key: 'maxLength', value: props.maxLength.toFixed(0) }] : undefined
187
+ };
188
+ return commonQuestionGenerator(props, rg_inner);
189
+ };
190
+ const generateClozeQuestion = (props) => {
191
+ const rg_inner = {
192
+ key: constants_keyDefinitions.clozeKey, role: 'cloze',
193
+ items: props.items.map((item) => {
194
+ const clozeItem = item;
195
+ const comp = surveys_responseTypeGenerators_optionGroupComponents.optionDefToItemComponent(clozeItem);
196
+ return comp;
197
+ })
198
+ };
199
+ return commonQuestionGenerator(props, rg_inner);
200
+ };
201
+ const generateCustomQuestion = (props) => {
202
+ const items = [];
203
+ props.responseItemDefs.forEach(item => {
204
+ const rolePrefix = item.mapToRole !== undefined ? `${item.mapToRole}` : '';
205
+ const role = `${rolePrefix}:${item.role}`;
206
+ delete item['mapToRole'];
207
+ const rg_inner = Object.assign(Object.assign({}, item), { role: role });
208
+ items.push(rg_inner);
209
+ });
210
+ const simpleEditor = new surveys_utils_simpleQuestionEditor.SimpleQuestionEditor(props.parentKey, props.itemKey, props.version ? props.version : 1);
211
+ // QUESTION TEXT
212
+ simpleEditor.setTitle(props.questionText, props.questionSubText, props.titleClassName);
213
+ if (props.condition) {
214
+ simpleEditor.setCondition(props.condition);
215
+ }
216
+ if (props.helpGroupContent) {
217
+ simpleEditor.editor.setHelpGroupComponent(surveys_utils_simpleGenerators.generateHelpGroupComponent(props.helpGroupContent));
218
+ }
219
+ if (props.topDisplayCompoments) {
220
+ props.topDisplayCompoments.forEach(comp => simpleEditor.addDisplayComponent(comp));
221
+ }
222
+ simpleEditor.editor.addExistingResponseComponent({
223
+ key: constants_keyDefinitions.responseGroupKey,
224
+ role: 'responseGroup',
225
+ items,
226
+ });
227
+ if (props.bottomDisplayCompoments) {
228
+ props.bottomDisplayCompoments.forEach(comp => simpleEditor.addDisplayComponent(comp));
229
+ }
230
+ if (props.isRequired) {
231
+ simpleEditor.addHasResponseValidation();
232
+ }
233
+ if (props.customValidations) {
234
+ props.customValidations.forEach(v => simpleEditor.editor.addValidation(v));
235
+ }
236
+ if (props.footnoteText) {
237
+ simpleEditor.addDisplayComponent(surveys_utils_componentGenerators.ComponentGenerators.footnote({ content: props.footnoteText }));
238
+ }
239
+ return simpleEditor.getItem();
240
+ };
241
+ const generateDisplay = (props) => {
242
+ const simpleEditor = new surveys_utils_simpleQuestionEditor.SimpleQuestionEditor(props.parentKey, props.itemKey, 1);
243
+ props.content.forEach(item => simpleEditor.addDisplayComponent(item));
244
+ if (props.condition) {
245
+ simpleEditor.setCondition(props.condition);
246
+ }
247
+ return simpleEditor.getItem();
248
+ };
249
+ const generateSurveyEnd = (parentKey, content, condition) => {
250
+ const defaultKey = 'surveyEnd';
251
+ const itemKey = [parentKey, defaultKey].join('.');
252
+ const editor = new surveys_surveyEditor_itemEditor.ItemEditor(undefined, { itemKey: itemKey, type: 'surveyEnd', isGroup: false });
253
+ editor.setTitleComponent(surveys_utils_simpleGenerators.generateTitleComponent(content));
254
+ // CONDITION
255
+ editor.setCondition(condition);
256
+ return editor.getItem();
257
+ };
258
+ const initEQ5DHealthIndicatorQuestion = (props) => {
259
+ // init group
260
+ const groupEdit = new surveys_surveyEditor_componentEditor.ComponentEditor(undefined, {
261
+ key: props.key,
262
+ isGroup: true,
263
+ role: props.role,
264
+ });
265
+ const instructionTextEditor = new surveys_surveyEditor_componentEditor.ComponentEditor(undefined, { role: 'instruction', });
266
+ instructionTextEditor.setContent(surveys_utils_simpleGenerators.generateLocStrings(props.instructionText));
267
+ groupEdit.addItemComponent(instructionTextEditor.getComponent());
268
+ const valueBoxTextEditor = new surveys_surveyEditor_componentEditor.ComponentEditor(undefined, { role: 'valuebox', });
269
+ valueBoxTextEditor.setContent(surveys_utils_simpleGenerators.generateLocStrings(props.valueBoxText));
270
+ groupEdit.addItemComponent(valueBoxTextEditor.getComponent());
271
+ const minHealthTextEditor = new surveys_surveyEditor_componentEditor.ComponentEditor(undefined, { role: 'mintext', });
272
+ minHealthTextEditor.setContent(surveys_utils_simpleGenerators.generateLocStrings(props.minHealthText));
273
+ groupEdit.addItemComponent(minHealthTextEditor.getComponent());
274
+ const maxHealthTextEditor = new surveys_surveyEditor_componentEditor.ComponentEditor(undefined, { role: 'maxtext', });
275
+ maxHealthTextEditor.setContent(surveys_utils_simpleGenerators.generateLocStrings(props.maxHealthText));
276
+ groupEdit.addItemComponent(maxHealthTextEditor.getComponent());
277
+ return groupEdit.getComponent();
278
+ };
279
+ const SurveyItems = {
280
+ singleChoice: generateSingleChoiceQuestion,
281
+ responsiveSingleChoiceArray: generateResponsiveSingleChoiceArrayQuestion,
282
+ responsiveBipolarLikertArray: generateResponsiveBipolarLikertArray,
283
+ multipleChoice: generateMultipleChoiceQuestion,
284
+ dateInput: generateDatePickerInput,
285
+ textInput: generateTextInputQuestion,
286
+ // eq5dSlider: todo,
287
+ clozeQuestion: generateClozeQuestion,
288
+ numericInput: generateNumericInputQuestion,
289
+ multilineTextInput: generateMultilineInput,
290
+ dropDown: generateDropDownQuestion,
291
+ numericSlider: generateNumericSliderQuestion,
292
+ display: generateDisplay,
293
+ surveyEnd: generateSurveyEnd,
294
+ customQuestion: generateCustomQuestion,
295
+ old: {
296
+ simpleLikertGroup: generateSimpleLikertGroupQuestion,
297
+ }
298
+ };
299
+
300
+ exports.SurveyItems = SurveyItems;
301
+ exports.initEQ5DHealthIndicatorQuestion = initEQ5DHealthIndicatorQuestion;
302
+ //# sourceMappingURL=survey-items.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"survey-items.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,4 +1,4 @@
1
- import { Expression, SurveyItem } from "survey-engine/lib/data_types";
1
+ import { Expression, SurveyItem } from "survey-engine/data_types";
2
2
  import { ItemEditor } from "../survey-editor/item-editor";
3
3
  export declare abstract class Group {
4
4
  groupEditor: ItemEditor;
@@ -2,9 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var logger_logger = require('../logger/logger.js');
6
- var surveyEditor_itemEditor = require('../item-editor-8fd24b61.js');
7
- var utils_simpleGenerators = require('../utils/simple-generators.js');
5
+ var logger_logger = require('../../logger/logger.js');
6
+ var surveys_surveyEditor_itemEditor = require('../../item-editor-c6933791.js');
7
+ var surveys_utils_simpleGenerators = require('../utils/simple-generators.js');
8
8
  require('../survey-editor/component-editor.js');
9
9
  require('../utils/randomKeyGenerator.js');
10
10
 
@@ -12,7 +12,7 @@ class Group {
12
12
  constructor(parentKey, groupKey, selectionMethod) {
13
13
  this.parentKey = parentKey;
14
14
  this.key = [this.parentKey, groupKey].join('.');
15
- this.groupEditor = new surveyEditor_itemEditor.ItemEditor(undefined, {
15
+ this.groupEditor = new surveys_surveyEditor_itemEditor.ItemEditor(undefined, {
16
16
  itemKey: this.key,
17
17
  isGroup: true
18
18
  });
@@ -41,7 +41,7 @@ class Group {
41
41
  return this.groupEditor.getItem();
42
42
  }
43
43
  addPageBreak() {
44
- this.groupEditor.addSurveyItem(utils_simpleGenerators.generatePageBreak(this.key));
44
+ this.groupEditor.addSurveyItem(surveys_utils_simpleGenerators.generatePageBreak(this.key));
45
45
  }
46
46
  addItem(item, pageBreakAfter) {
47
47
  this.groupEditor.addSurveyItem(item);
File without changes
@@ -0,0 +1,4 @@
1
+ export * from './group';
2
+ export * from './item';
3
+ export * from './item-properties';
4
+ export * from './survey-definition';
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var surveys_types_group = require('./group.js');
6
+ var surveys_types_item = require('./item.js');
7
+ var surveys_types_surveyDefinition = require('./survey-definition.js');
8
+ require('../../logger/logger.js');
9
+ require('../../item-editor-c6933791.js');
10
+ require('../survey-editor/component-editor.js');
11
+ require('../utils/randomKeyGenerator.js');
12
+ require('../utils/simple-generators.js');
13
+ require('../survey-editor/survey-editor.js');
14
+
15
+
16
+
17
+ exports.Group = surveys_types_group.Group;
18
+ exports.Item = surveys_types_item.Item;
19
+ exports.SurveyDefinition = surveys_types_surveyDefinition.SurveyDefinition;
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,189 @@
1
+ import { ComponentProperties, Expression, ItemComponent, Validation } from "survey-engine/data_types";
2
+ import { Duration } from "../../types/duration";
3
+ export interface StyledTextComponentProp {
4
+ content: Map<string, string>;
5
+ className?: string;
6
+ }
7
+ export interface OptionDef {
8
+ key: string;
9
+ role: string;
10
+ content?: Map<string, string>;
11
+ items?: Array<StyledTextComponentProp> | Array<OptionDef>;
12
+ description?: Map<string, string>;
13
+ displayCondition?: Expression;
14
+ disabled?: Expression;
15
+ style?: Array<{
16
+ key: string;
17
+ value: string;
18
+ }>;
19
+ optionProps?: ComponentProperties;
20
+ }
21
+ export interface GenericQuestionProps {
22
+ parentKey: string;
23
+ itemKey: string;
24
+ version?: number;
25
+ questionText: Map<string, string> | Array<StyledTextComponentProp>;
26
+ questionSubText?: Map<string, string>;
27
+ titleClassName?: string;
28
+ helpGroupContent?: Array<{
29
+ content: Map<string, string>;
30
+ style?: Array<{
31
+ key: string;
32
+ value: string;
33
+ }>;
34
+ }>;
35
+ condition?: Expression;
36
+ topDisplayCompoments?: Array<ItemComponent>;
37
+ bottomDisplayCompoments?: Array<ItemComponent>;
38
+ isRequired?: boolean;
39
+ footnoteText?: Map<string, string>;
40
+ customValidations?: Array<Validation>;
41
+ }
42
+ /**
43
+ * Numeric Input
44
+ */
45
+ export interface NumericInputProps {
46
+ inputLabel: Map<string, string>;
47
+ labelBehindInput?: boolean;
48
+ componentProperties?: ComponentProperties;
49
+ inputMaxWidth?: string;
50
+ disabled?: Expression;
51
+ }
52
+ export declare type NumericInputQuestionProps = GenericQuestionProps & NumericInputProps;
53
+ /**
54
+ * Date Input
55
+ */
56
+ export interface DateInputProps {
57
+ dateInputMode: 'YMD' | 'YM' | 'Y';
58
+ inputLabelText?: Map<string, string>;
59
+ placeholderText?: Map<string, string>;
60
+ minRelativeDate?: {
61
+ reference?: number | Expression;
62
+ delta: Duration;
63
+ };
64
+ maxRelativeDate?: {
65
+ reference?: number | Expression;
66
+ delta: Duration;
67
+ };
68
+ }
69
+ export declare type DateInputQuestionProps = DateInputProps & GenericQuestionProps;
70
+ /**
71
+ * Text Input
72
+ */
73
+ export interface TextInputProps {
74
+ placeholderText?: Map<string, string>;
75
+ inputLabel?: Map<string, string>;
76
+ inputMaxWidth?: string;
77
+ className?: string;
78
+ maxLength?: number;
79
+ disabled?: Expression;
80
+ }
81
+ export declare type TextInputQuestionProps = TextInputProps & GenericQuestionProps;
82
+ export interface MultiLineTextInput extends GenericQuestionProps {
83
+ inputLabelText?: Map<string, string>;
84
+ placeholderText?: Map<string, string>;
85
+ maxLength?: number;
86
+ }
87
+ /**
88
+ * Cloze Question
89
+ */
90
+ export interface ClozeProps {
91
+ items: Array<OptionDef>;
92
+ }
93
+ export declare type ClozeQuestionProps = ClozeProps & GenericQuestionProps;
94
+ /**
95
+ * Response Single Choice Likert Array
96
+ */
97
+ export declare type ResponsiveSingleChoiceArrayVariant = 'horizontal' | 'vertical' | 'table';
98
+ export interface ResponsiveSingleChoiceArrayProps {
99
+ scaleOptions: Array<{
100
+ key: string;
101
+ className?: string;
102
+ content: Map<string, string> | StyledTextComponentProp[];
103
+ }>;
104
+ rows: Array<{
105
+ key: string;
106
+ content: Map<string, string> | StyledTextComponentProp[];
107
+ horizontalModeProps?: {
108
+ labelPlacement?: 'none' | 'top' | 'bottom';
109
+ className?: string;
110
+ };
111
+ verticalModeProps?: {
112
+ className?: string;
113
+ };
114
+ tableModeProps?: {
115
+ className?: string;
116
+ };
117
+ }>;
118
+ defaultMode: ResponsiveSingleChoiceArrayVariant;
119
+ responsiveModes?: {
120
+ sm?: ResponsiveSingleChoiceArrayVariant;
121
+ md?: ResponsiveSingleChoiceArrayVariant;
122
+ lg?: ResponsiveSingleChoiceArrayVariant;
123
+ xl?: ResponsiveSingleChoiceArrayVariant;
124
+ xxl?: ResponsiveSingleChoiceArrayVariant;
125
+ };
126
+ rgClassName?: string;
127
+ tableModeProps?: {
128
+ className?: string;
129
+ layout?: "fixed";
130
+ firstColWidth?: string;
131
+ optionHeaderClassName?: string;
132
+ hideRowBorder?: boolean;
133
+ };
134
+ horizontalModeProps?: {
135
+ hideRowBorder?: boolean;
136
+ };
137
+ verticalModeProps?: {
138
+ hideRowBorder?: boolean;
139
+ useReverseOptionOrder?: boolean;
140
+ };
141
+ }
142
+ export declare type ResponsiveSingleChoiceArrayQuestionProps = GenericQuestionProps & ResponsiveSingleChoiceArrayProps;
143
+ /**
144
+ * Response Bipolar Likert Array
145
+ */
146
+ export declare type ResponsiveBipolarLikertArrayVariant = 'withLabelRow' | 'vertical' | 'table';
147
+ export interface ResponsiveBipolarLikertArrayProps {
148
+ scaleOptions: Array<{
149
+ key: string;
150
+ }>;
151
+ rows: Array<{
152
+ key: string;
153
+ startLabel: Map<string, string> | StyledTextComponentProp[];
154
+ endLabel: Map<string, string> | StyledTextComponentProp[];
155
+ withLabelRowModeProps?: {
156
+ className?: string;
157
+ };
158
+ verticalModeProps?: {
159
+ className?: string;
160
+ };
161
+ tableModeProps?: {
162
+ className?: string;
163
+ };
164
+ }>;
165
+ defaultMode: ResponsiveBipolarLikertArrayVariant;
166
+ responsiveModes?: {
167
+ sm?: ResponsiveBipolarLikertArrayVariant;
168
+ md?: ResponsiveBipolarLikertArrayVariant;
169
+ lg?: ResponsiveBipolarLikertArrayVariant;
170
+ xl?: ResponsiveBipolarLikertArrayVariant;
171
+ xxl?: ResponsiveBipolarLikertArrayVariant;
172
+ };
173
+ rgClassName?: string;
174
+ tableModeProps?: {
175
+ className?: string;
176
+ layout?: "fixed";
177
+ labelColWidth?: string;
178
+ hideRowBorder?: boolean;
179
+ };
180
+ withLabelRowModeProps?: {
181
+ hideRowBorder?: boolean;
182
+ maxLabelWidth?: string;
183
+ useBottomLabel?: boolean;
184
+ };
185
+ verticalModeProps?: {
186
+ hideRowBorder?: boolean;
187
+ };
188
+ }
189
+ export declare type ResponsiveBipolarLikertArrayQuestionProps = GenericQuestionProps & ResponsiveBipolarLikertArrayProps;
@@ -0,0 +1,3 @@
1
+ 'use strict';
2
+
3
+ //# sourceMappingURL=item-properties.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"item-properties.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
@@ -1,4 +1,4 @@
1
- import { Expression, SurveySingleItem } from "survey-engine/lib/data_types";
1
+ import { Expression, SurveySingleItem } from "survey-engine/data_types";
2
2
  export declare abstract class Item {
3
3
  key: string;
4
4
  item: SurveySingleItem;
File without changes
File without changes
@@ -1,19 +1,23 @@
1
- import { SurveyItem } from "survey-engine/lib/data_types";
1
+ import { SurveyItem } from "survey-engine/data_types";
2
2
  import { SurveyEditor } from "../survey-editor/survey-editor";
3
+ export declare type SurveyAvailableFor = 'public' | 'temporary_participants' | 'active_participants';
3
4
  export interface SurveyProps {
4
5
  surveyKey: string;
5
6
  name: Map<string, string>;
6
7
  description: Map<string, string>;
7
8
  durationText: Map<string, string>;
9
+ availableFor?: SurveyAvailableFor;
10
+ requireLoginBeforeSubmission?: boolean;
8
11
  }
9
12
  export declare abstract class SurveyDefinition {
10
13
  key: string;
11
14
  editor: SurveyEditor;
12
15
  constructor(props: SurveyProps);
13
16
  abstract buildSurvey(): void;
14
- getSurvey(): import("survey-engine/lib/data_types").Survey;
17
+ getSurvey(): import("survey-engine/data_types").Survey;
15
18
  getSurveyJSON(pretty?: boolean): string;
16
- addItem(item: SurveyItem): void;
19
+ addItem(item: SurveyItem, pageBreakAfter?: boolean): void;
20
+ addPageBreak(): void;
17
21
  addSurveyItemToPath(item: SurveyItem, parentKey: string): void;
18
22
  private checkDuplicateChildKeys;
19
23
  }
@@ -2,23 +2,25 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var logger_logger = require('../logger/logger.js');
6
- var surveyEditor_itemEditor = require('../item-editor-8fd24b61.js');
7
- var surveyEditor_surveyEditor = require('../survey-editor/survey-editor.js');
8
- var utils_simpleGenerators = require('../utils/simple-generators.js');
5
+ var logger_logger = require('../../logger/logger.js');
6
+ var surveys_surveyEditor_itemEditor = require('../../item-editor-c6933791.js');
7
+ var surveys_surveyEditor_surveyEditor = require('../survey-editor/survey-editor.js');
8
+ var surveys_utils_simpleGenerators = require('../utils/simple-generators.js');
9
9
  require('../survey-editor/component-editor.js');
10
10
  require('../utils/randomKeyGenerator.js');
11
11
 
12
12
  class SurveyDefinition {
13
13
  constructor(props) {
14
- this.editor = new surveyEditor_surveyEditor.SurveyEditor();
14
+ this.editor = new surveys_surveyEditor_surveyEditor.SurveyEditor();
15
15
  this.editor.changeItemKey('survey', props.surveyKey);
16
16
  this.key = props.surveyKey;
17
17
  // define name and description of the survey
18
- this.editor.setSurveyName(utils_simpleGenerators.generateLocStrings(props.name));
19
- this.editor.setSurveyDescription(utils_simpleGenerators.generateLocStrings(props.description));
20
- this.editor.setSurveyDuration(utils_simpleGenerators.generateLocStrings(props.durationText));
21
- const rootItemEditor = new surveyEditor_itemEditor.ItemEditor(this.editor.findSurveyItem(props.surveyKey));
18
+ this.editor.setSurveyName(surveys_utils_simpleGenerators.generateLocStrings(props.name));
19
+ this.editor.setSurveyDescription(surveys_utils_simpleGenerators.generateLocStrings(props.description));
20
+ this.editor.setSurveyDuration(surveys_utils_simpleGenerators.generateLocStrings(props.durationText));
21
+ this.editor.setAvailableFor(props.availableFor);
22
+ this.editor.setRequireLoginBeforeSubmission(props.requireLoginBeforeSubmission);
23
+ const rootItemEditor = new surveys_surveyEditor_itemEditor.ItemEditor(this.editor.findSurveyItem(props.surveyKey));
22
24
  rootItemEditor.setSelectionMethod({ name: 'sequential' });
23
25
  this.editor.updateSurveyItem(rootItemEditor.getItem());
24
26
  }
@@ -32,8 +34,14 @@ class SurveyDefinition {
32
34
  this.checkDuplicateChildKeys();
33
35
  return this.editor.getSurveyJSON(pretty);
34
36
  }
35
- addItem(item) {
37
+ addItem(item, pageBreakAfter) {
36
38
  this.editor.addExistingSurveyItem(item, this.key);
39
+ if (pageBreakAfter) {
40
+ this.addPageBreak();
41
+ }
42
+ }
43
+ addPageBreak() {
44
+ this.editor.addExistingSurveyItem(surveys_utils_simpleGenerators.generatePageBreak(this.key), this.key);
37
45
  }
38
46
  addSurveyItemToPath(item, parentKey) {
39
47
  this.editor.addExistingSurveyItem(item, parentKey);
@@ -57,4 +65,4 @@ class SurveyDefinition {
57
65
  }
58
66
 
59
67
  exports.SurveyDefinition = SurveyDefinition;
60
- //# sourceMappingURL=surveyDefinition.js.map
68
+ //# sourceMappingURL=survey-definition.js.map