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.
- package/{build/constants → constants}/key-definitions.d.ts +1 -0
- package/{build/constants → constants}/key-definitions.js +3 -1
- package/{build/constants → constants}/key-definitions.js.map +1 -1
- package/exporter/index.d.ts +2 -0
- package/exporter/index.js +99 -0
- package/exporter/index.js.map +1 -0
- package/{build/expression-utils → expression-utils}/expressionGen.d.ts +1 -1
- package/{build/expression-utils → expression-utils}/expressionGen.js +0 -0
- package/{build/expression-utils → expression-utils}/expressionGen.js.map +0 -0
- package/{build/expression-utils → expression-utils}/studyEngineExpressions.d.ts +3 -3
- package/{build/expression-utils → expression-utils}/studyEngineExpressions.js +0 -0
- package/{build/expression-utils → expression-utils}/studyEngineExpressions.js.map +0 -0
- package/{build/index.d.ts → index.d.ts} +0 -0
- package/{build/index.js → index.js} +0 -0
- package/{build/index.js.map → index.js.map} +0 -0
- package/{build/item-editor-8fd24b61.js → item-editor-c6933791.js} +69 -51
- package/item-editor-c6933791.js.map +1 -0
- package/logger/index.d.ts +1 -0
- package/logger/index.js +10 -0
- package/logger/index.js.map +1 -0
- package/{build/logger → logger}/logger.d.ts +0 -0
- package/{build/logger → logger}/logger.js +0 -0
- package/{build/logger → logger}/logger.js.map +0 -0
- package/package.json +9 -12
- package/surveys/index.d.ts +3 -0
- package/surveys/index.js +28 -0
- package/surveys/index.js.map +1 -0
- package/surveys/responseTypeGenerators/likertGroupComponents.d.ts +27 -0
- package/surveys/responseTypeGenerators/likertGroupComponents.js +347 -0
- package/surveys/responseTypeGenerators/likertGroupComponents.js.map +1 -0
- package/surveys/responseTypeGenerators/matrixGroupComponent.d.ts +49 -0
- package/surveys/responseTypeGenerators/matrixGroupComponent.js +99 -0
- package/surveys/responseTypeGenerators/matrixGroupComponent.js.map +1 -0
- package/surveys/responseTypeGenerators/optionGroupComponents.d.ts +7 -0
- package/surveys/responseTypeGenerators/optionGroupComponents.js +125 -0
- package/surveys/responseTypeGenerators/optionGroupComponents.js.map +1 -0
- package/{build → surveys}/survey-editor/component-editor.d.ts +1 -1
- package/{build → surveys}/survey-editor/component-editor.js +0 -0
- package/{build → surveys}/survey-editor/component-editor.js.map +0 -0
- package/{build → surveys}/survey-editor/data-types.d.ts +1 -1
- package/{build → surveys}/survey-editor/data-types.js +0 -0
- package/{build → surveys}/survey-editor/data-types.js.map +0 -0
- package/{build → surveys}/survey-editor/item-editor.d.ts +1 -1
- package/{build → surveys}/survey-editor/item-editor.js +3 -2
- package/{build → surveys}/survey-editor/item-editor.js.map +1 -1
- package/{build → surveys}/survey-editor/survey-editor.d.ts +6 -1
- package/{build → surveys}/survey-editor/survey-editor.js +15 -8
- package/{build → surveys}/survey-editor/survey-editor.js.map +1 -1
- package/{build/expression-utils/surveyEngineExpressions.d.ts → surveys/survey-engine-expressions.d.ts} +1 -1
- package/{build/expression-utils/surveyEngineExpressions.js → surveys/survey-engine-expressions.js} +2 -2
- package/{build/expression-utils/surveyEngineExpressions.js.map → surveys/survey-engine-expressions.js.map} +1 -1
- package/surveys/survey-items.d.ts +65 -0
- package/surveys/survey-items.js +268 -0
- package/surveys/survey-items.js.map +1 -0
- package/{build → surveys}/types/group.d.ts +1 -1
- package/{build → surveys}/types/group.js +5 -5
- package/{build → surveys}/types/group.js.map +0 -0
- package/surveys/types/index.d.ts +4 -0
- package/surveys/types/index.js +20 -0
- package/surveys/types/index.js.map +1 -0
- package/surveys/types/item-properties.d.ts +189 -0
- package/surveys/types/item-properties.js +3 -0
- package/surveys/types/item-properties.js.map +1 -0
- package/{build → surveys}/types/item.d.ts +1 -1
- package/{build → surveys}/types/item.js +0 -0
- package/{build → surveys}/types/item.js.map +0 -0
- package/{build/types/surveyDefinition.d.ts → surveys/types/survey-definition.d.ts} +5 -2
- package/{build/types/surveyDefinition.js → surveys/types/survey-definition.js} +12 -10
- package/surveys/types/survey-definition.js.map +1 -0
- package/{build → surveys}/utils/componentGenerators.d.ts +2 -13
- package/surveys/utils/componentGenerators.js +58 -0
- package/{build → surveys}/utils/componentGenerators.js.map +1 -1
- package/surveys/utils/optionDefGenerators.d.ts +69 -0
- package/surveys/utils/optionDefGenerators.js +169 -0
- package/surveys/utils/optionDefGenerators.js.map +1 -0
- package/{build → surveys}/utils/randomKeyGenerator.d.ts +0 -0
- package/{build → surveys}/utils/randomKeyGenerator.js +0 -0
- package/{build → surveys}/utils/randomKeyGenerator.js.map +0 -0
- package/{build → surveys}/utils/simple-generators.d.ts +2 -2
- package/{build → surveys}/utils/simple-generators.js +5 -5
- package/{build → surveys}/utils/simple-generators.js.map +0 -0
- package/{build → surveys}/utils/simple-question-editor.d.ts +3 -3
- package/{build → surveys}/utils/simple-question-editor.js +7 -6
- package/{build → surveys}/utils/simple-question-editor.js.map +1 -1
- package/{build/types → types}/duration.d.ts +0 -0
- package/{build/types → types}/duration.js +0 -0
- package/{build/types → types}/duration.js.map +0 -0
- package/{build/types → types}/expression.d.ts +1 -1
- package/{build/types → types}/expression.js +0 -0
- package/{build/types → types}/expression.js.map +0 -0
- package/{build/types → types}/study.d.ts +2 -2
- package/{build/types → types}/study.js +0 -0
- package/{build/types → types}/study.js.map +0 -0
- package/{build/types → types}/studyRules.d.ts +1 -1
- package/{build/types → types}/studyRules.js +0 -0
- package/{build/types → types}/studyRules.js.map +0 -0
- package/LICENSE +0 -202
- package/build/item-editor-8fd24b61.js.map +0 -1
- package/build/types/surveyDefinition.js.map +0 -1
- package/build/utils/componentGenerators.js +0 -92
- package/build/utils/question-type-generator.d.ts +0 -283
- package/build/utils/question-type-generator.js +0 -949
- package/build/utils/question-type-generator.js.map +0 -1
|
@@ -14,8 +14,10 @@ const sliderCategoricalKey = "scc";
|
|
|
14
14
|
const inputKey = "ic";
|
|
15
15
|
const numericInputKey = "num";
|
|
16
16
|
const datePickerKey = "date";
|
|
17
|
-
const matrixKey = "mat";
|
|
17
|
+
const matrixKey = "mat";
|
|
18
|
+
const clozeKey = "cloze";
|
|
18
19
|
|
|
20
|
+
exports.clozeKey = clozeKey;
|
|
19
21
|
exports.datePickerKey = datePickerKey;
|
|
20
22
|
exports.dropDownKey = dropDownKey;
|
|
21
23
|
exports.inputKey = inputKey;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"key-definitions.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"key-definitions.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var fs = require('fs');
|
|
6
|
+
var logger_logger = require('../logger/logger.js');
|
|
7
|
+
|
|
8
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
9
|
+
|
|
10
|
+
var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs);
|
|
11
|
+
|
|
12
|
+
const generateFilesForStudy = (study, pretty) => {
|
|
13
|
+
const outputName = study.outputFolderName ? study.outputFolderName : study.studyKey;
|
|
14
|
+
const outputRoot = `./output/${outputName}`;
|
|
15
|
+
logger_logger.Logger.log(`Start generating files for study ${outputName}.`);
|
|
16
|
+
if (!fs__default["default"].existsSync(outputRoot)) {
|
|
17
|
+
fs__default["default"].mkdirSync(outputRoot, { recursive: true });
|
|
18
|
+
}
|
|
19
|
+
// Surveys:
|
|
20
|
+
generateSurveyFiles(study, outputRoot, pretty);
|
|
21
|
+
// Study rules:
|
|
22
|
+
generateStudyRuleFile(study, outputRoot, pretty);
|
|
23
|
+
// Custom Study rules: (manually triggered rules)
|
|
24
|
+
generateCustomStudyRules(study, outputRoot, pretty);
|
|
25
|
+
};
|
|
26
|
+
const generateSurveyFiles = (study, outputPath, pretty) => {
|
|
27
|
+
if (study.surveys.length > 0) {
|
|
28
|
+
logger_logger.Logger.log(`\tSurveys:`);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
logger_logger.Logger.log(`\tNo surveys in the study.`);
|
|
32
|
+
}
|
|
33
|
+
const surveyOutPath = `${outputPath}/surveys`;
|
|
34
|
+
if (!fs__default["default"].existsSync(surveyOutPath)) {
|
|
35
|
+
fs__default["default"].mkdirSync(surveyOutPath, { recursive: true });
|
|
36
|
+
}
|
|
37
|
+
study.surveys.forEach(survey => {
|
|
38
|
+
const fileName = `${surveyOutPath}/${survey.key}.json`;
|
|
39
|
+
const outputObject = {
|
|
40
|
+
studyKey: study.studyKey,
|
|
41
|
+
survey: survey.getSurvey()
|
|
42
|
+
};
|
|
43
|
+
try {
|
|
44
|
+
fs__default["default"].writeFileSync(fileName, JSON.stringify(outputObject, undefined, pretty ? 2 : undefined));
|
|
45
|
+
}
|
|
46
|
+
catch (err) {
|
|
47
|
+
logger_logger.Logger.error(err);
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
logger_logger.Logger.success(`\t\t${survey.key} saved`);
|
|
51
|
+
});
|
|
52
|
+
};
|
|
53
|
+
const generateStudyRuleFile = (study, outputPath, pretty) => {
|
|
54
|
+
if (!study.studyRules) {
|
|
55
|
+
logger_logger.Logger.log(`\tNo study rules in the study.`);
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
logger_logger.Logger.log(`\tStudy rule:`);
|
|
60
|
+
}
|
|
61
|
+
const fileName = `${outputPath}/studyRules.json`;
|
|
62
|
+
const outputObject = study.studyRules.get();
|
|
63
|
+
try {
|
|
64
|
+
fs__default["default"].writeFileSync(fileName, JSON.stringify(outputObject, undefined, pretty ? 2 : undefined));
|
|
65
|
+
}
|
|
66
|
+
catch (err) {
|
|
67
|
+
logger_logger.Logger.error(err);
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
logger_logger.Logger.success(`\t\tStudy rules saved`);
|
|
71
|
+
};
|
|
72
|
+
const generateCustomStudyRules = (study, outputPath, pretty) => {
|
|
73
|
+
if (!study.customStudyRules || study.customStudyRules.length < 0) {
|
|
74
|
+
logger_logger.Logger.log(`\tNo custom study rules in the study.`);
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
logger_logger.Logger.log(`\tCustom study rules:`);
|
|
79
|
+
}
|
|
80
|
+
const customRulePath = `${outputPath}/customRules`;
|
|
81
|
+
if (!fs__default["default"].existsSync(customRulePath)) {
|
|
82
|
+
fs__default["default"].mkdirSync(customRulePath, { recursive: true });
|
|
83
|
+
}
|
|
84
|
+
study.customStudyRules.forEach(studyRule => {
|
|
85
|
+
const fileName = `${customRulePath}/${studyRule.name}.json`;
|
|
86
|
+
const outputObject = studyRule.rules;
|
|
87
|
+
try {
|
|
88
|
+
fs__default["default"].writeFileSync(fileName, JSON.stringify(outputObject, undefined, pretty ? 2 : undefined));
|
|
89
|
+
}
|
|
90
|
+
catch (err) {
|
|
91
|
+
logger_logger.Logger.error(err);
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
logger_logger.Logger.success(`\t\tRule ${studyRule.name} saved`);
|
|
95
|
+
});
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
exports.generateFilesForStudy = generateFilesForStudy;
|
|
99
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { Expression, ExpressionName } from "survey-engine/
|
|
1
|
+
import { Expression, ExpressionName } from "survey-engine/data_types";
|
|
2
2
|
export declare const generateExpression: (name: ExpressionName, returnType?: "string" | "float" | undefined, ...args: any[]) => Expression;
|
|
File without changes
|
|
File without changes
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Expression } from "survey-engine/
|
|
1
|
+
import { Expression } from "survey-engine/data_types";
|
|
2
2
|
import { Duration } from "../types/duration";
|
|
3
3
|
export declare const NativeStudyEngineExpressions: {
|
|
4
4
|
checkEventType: (equalsType: 'ENTER' | 'SUBMIT' | 'TIMER') => Expression;
|
|
@@ -37,7 +37,7 @@ export declare const StudyEngineActions: {
|
|
|
37
37
|
updateFlag: (key: string, newValue: string) => Expression;
|
|
38
38
|
removeFlag: (key: string) => Expression;
|
|
39
39
|
assignedSurveys: {
|
|
40
|
-
add: (surveyKey: string, category: 'prio' | 'normal' | 'optional', activeFrom?: number | Expression | undefined, activeUntil?: number | Expression | undefined) => Expression;
|
|
40
|
+
add: (surveyKey: string, category: 'immediate' | 'prio' | 'normal' | 'optional', activeFrom?: number | Expression | undefined, activeUntil?: number | Expression | undefined) => Expression;
|
|
41
41
|
removeAll: () => Expression;
|
|
42
42
|
remove: (surveyKey: string, selector: 'first' | 'last' | 'all') => Expression;
|
|
43
43
|
};
|
|
@@ -73,7 +73,7 @@ export declare const StudyEngine: {
|
|
|
73
73
|
updateFlag: (key: string, newValue: string) => Expression;
|
|
74
74
|
removeFlag: (key: string) => Expression;
|
|
75
75
|
assignedSurveys: {
|
|
76
|
-
add: (surveyKey: string, category: 'prio' | 'normal' | 'optional', activeFrom?: number | Expression | undefined, activeUntil?: number | Expression | undefined) => Expression;
|
|
76
|
+
add: (surveyKey: string, category: 'immediate' | 'prio' | 'normal' | 'optional', activeFrom?: number | Expression | undefined, activeUntil?: number | Expression | undefined) => Expression;
|
|
77
77
|
removeAll: () => Expression;
|
|
78
78
|
remove: (surveyKey: string, selector: 'first' | 'last' | 'all') => Expression;
|
|
79
79
|
};
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,63 +1,81 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
3
|
+
var surveys_surveyEditor_componentEditor = require('./surveys/survey-editor/component-editor.js');
|
|
4
|
+
var surveys_utils_randomKeyGenerator = require('./surveys/utils/randomKeyGenerator.js');
|
|
5
|
+
var logger_logger = require('./logger/logger.js');
|
|
5
6
|
|
|
6
7
|
var data_types = {};
|
|
7
8
|
|
|
8
9
|
var expression = {};
|
|
9
10
|
|
|
10
|
-
Object.defineProperty(expression,
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
11
|
+
Object.defineProperty(expression, '__esModule', { value: true });
|
|
12
|
+
|
|
13
|
+
const isExpression = (value) => {
|
|
14
|
+
return typeof (value) === 'object' && value.name !== undefined && value.name.length > 0;
|
|
15
|
+
};
|
|
16
|
+
const expressionArgParser = (arg) => {
|
|
17
|
+
switch (arg.dtype) {
|
|
18
|
+
case 'num':
|
|
19
|
+
return arg.num;
|
|
20
|
+
case 'str':
|
|
21
|
+
return arg.str;
|
|
22
|
+
case 'exp':
|
|
23
|
+
return arg.exp;
|
|
24
|
+
default:
|
|
25
|
+
return arg.str;
|
|
26
|
+
}
|
|
25
27
|
};
|
|
26
28
|
|
|
29
|
+
expression.expressionArgParser = expressionArgParser;
|
|
30
|
+
expression.isExpression = isExpression;
|
|
31
|
+
|
|
27
32
|
var surveyItem = {};
|
|
28
33
|
|
|
29
|
-
Object.defineProperty(surveyItem,
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
34
|
+
Object.defineProperty(surveyItem, '__esModule', { value: true });
|
|
35
|
+
|
|
36
|
+
const isSurveyGroupItem$1 = (item) => {
|
|
37
|
+
const items = item.items;
|
|
38
|
+
return items !== undefined && items.length > 0;
|
|
33
39
|
};
|
|
34
40
|
|
|
41
|
+
surveyItem.isSurveyGroupItem = isSurveyGroupItem$1;
|
|
42
|
+
|
|
35
43
|
var surveyItemComponent = {};
|
|
36
44
|
|
|
37
|
-
Object.defineProperty(surveyItemComponent,
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
45
|
+
Object.defineProperty(surveyItemComponent, '__esModule', { value: true });
|
|
46
|
+
|
|
47
|
+
const isItemGroupComponent$1 = (item) => {
|
|
48
|
+
const items = item.items;
|
|
49
|
+
return items !== undefined && items.length > 0;
|
|
41
50
|
};
|
|
42
51
|
|
|
52
|
+
surveyItemComponent.isItemGroupComponent = isItemGroupComponent$1;
|
|
53
|
+
|
|
43
54
|
var response = {};
|
|
44
55
|
|
|
45
|
-
Object.defineProperty(response,
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
56
|
+
Object.defineProperty(response, '__esModule', { value: true });
|
|
57
|
+
|
|
58
|
+
const isSurveyGroupItemResponse = (item) => {
|
|
59
|
+
const items = item.items;
|
|
60
|
+
return items !== undefined && items.length > 0;
|
|
49
61
|
};
|
|
50
62
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
63
|
+
response.isSurveyGroupItemResponse = isSurveyGroupItemResponse;
|
|
64
|
+
|
|
65
|
+
Object.defineProperty(data_types, '__esModule', { value: true });
|
|
66
|
+
|
|
67
|
+
var data_types_expression = expression;
|
|
68
|
+
var data_types_surveyItem = surveyItem;
|
|
69
|
+
var data_types_surveyItemComponent = surveyItemComponent;
|
|
70
|
+
var data_types_response = response;
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
data_types.expressionArgParser = data_types_expression.expressionArgParser;
|
|
75
|
+
data_types.isExpression = data_types_expression.isExpression;
|
|
76
|
+
var isSurveyGroupItem = data_types.isSurveyGroupItem = data_types_surveyItem.isSurveyGroupItem;
|
|
77
|
+
var isItemGroupComponent = data_types.isItemGroupComponent = data_types_surveyItemComponent.isItemGroupComponent;
|
|
78
|
+
data_types.isSurveyGroupItemResponse = data_types_response.isSurveyGroupItemResponse;
|
|
61
79
|
|
|
62
80
|
const initialRootComp = () => {
|
|
63
81
|
return {
|
|
@@ -260,7 +278,7 @@ class ItemEditor {
|
|
|
260
278
|
props.key = 'rg';
|
|
261
279
|
}
|
|
262
280
|
props.isGroup = true;
|
|
263
|
-
const newComponent = (new
|
|
281
|
+
const newComponent = (new surveys_surveyEditor_componentEditor.ComponentEditor(undefined, props)).getComponent();
|
|
264
282
|
const ind = currentItem.components.items.findIndex(comp => comp.role === 'responseGroup');
|
|
265
283
|
if (ind < 0) {
|
|
266
284
|
currentItem.components.items.push(newComponent);
|
|
@@ -281,7 +299,7 @@ class ItemEditor {
|
|
|
281
299
|
obj = currentItem.components.items[ind];
|
|
282
300
|
continue;
|
|
283
301
|
}
|
|
284
|
-
if (!
|
|
302
|
+
if (!isItemGroupComponent(obj)) {
|
|
285
303
|
obj.items = [];
|
|
286
304
|
// leaf found
|
|
287
305
|
break;
|
|
@@ -298,10 +316,10 @@ class ItemEditor {
|
|
|
298
316
|
return;
|
|
299
317
|
}
|
|
300
318
|
if (obj.items.find(it => props.key === it.key)) {
|
|
301
|
-
|
|
319
|
+
logger_logger.Logger.criticalError('Duplicate key: ' + props.key);
|
|
302
320
|
return undefined;
|
|
303
321
|
}
|
|
304
|
-
const newComponent = (new
|
|
322
|
+
const newComponent = (new surveys_surveyEditor_componentEditor.ComponentEditor(undefined, props)).getComponent();
|
|
305
323
|
if (atPosition !== undefined) {
|
|
306
324
|
obj.items.splice(atPosition, 0, newComponent);
|
|
307
325
|
}
|
|
@@ -317,7 +335,7 @@ class ItemEditor {
|
|
|
317
335
|
currentItem.components = Object.assign({}, initialRootComp());
|
|
318
336
|
}
|
|
319
337
|
if (newComp.key === undefined) {
|
|
320
|
-
newComp.key =
|
|
338
|
+
newComp.key = surveys_utils_randomKeyGenerator.generateRandomKey(4);
|
|
321
339
|
}
|
|
322
340
|
if (!parentKey) {
|
|
323
341
|
const ind = currentItem.components.items.findIndex(comp => comp.role === 'responseGroup');
|
|
@@ -340,7 +358,7 @@ class ItemEditor {
|
|
|
340
358
|
obj = currentItem.components.items[ind];
|
|
341
359
|
continue;
|
|
342
360
|
}
|
|
343
|
-
if (!
|
|
361
|
+
if (!isItemGroupComponent(obj)) {
|
|
344
362
|
obj.items = [];
|
|
345
363
|
// leaf found
|
|
346
364
|
break;
|
|
@@ -357,7 +375,7 @@ class ItemEditor {
|
|
|
357
375
|
return;
|
|
358
376
|
}
|
|
359
377
|
if (obj.items.find(it => newComp.key === it.key)) {
|
|
360
|
-
|
|
378
|
+
logger_logger.Logger.criticalError('Duplicate key: ' + newComp.key);
|
|
361
379
|
return undefined;
|
|
362
380
|
}
|
|
363
381
|
if (atPosition !== undefined) {
|
|
@@ -392,7 +410,7 @@ class ItemEditor {
|
|
|
392
410
|
const parentIds = ids.slice(1, ids.length - 1);
|
|
393
411
|
let obj = responseGroup;
|
|
394
412
|
for (const currentKey of parentIds) {
|
|
395
|
-
if (!
|
|
413
|
+
if (!isItemGroupComponent(obj)) {
|
|
396
414
|
// leaf found
|
|
397
415
|
break;
|
|
398
416
|
}
|
|
@@ -433,7 +451,7 @@ class ItemEditor {
|
|
|
433
451
|
const parentIds = ids.slice(1, ids.length - 1);
|
|
434
452
|
let obj = responseGroup;
|
|
435
453
|
for (const currentKey of parentIds) {
|
|
436
|
-
if (!
|
|
454
|
+
if (!isItemGroupComponent(obj)) {
|
|
437
455
|
// leaf found
|
|
438
456
|
break;
|
|
439
457
|
}
|
|
@@ -468,7 +486,7 @@ class ItemEditor {
|
|
|
468
486
|
obj = currentItem.components.items[ind];
|
|
469
487
|
continue;
|
|
470
488
|
}
|
|
471
|
-
if (!
|
|
489
|
+
if (!isItemGroupComponent(obj)) {
|
|
472
490
|
obj.items = [];
|
|
473
491
|
// leaf found
|
|
474
492
|
break;
|
|
@@ -517,5 +535,5 @@ class ItemEditor {
|
|
|
517
535
|
}
|
|
518
536
|
|
|
519
537
|
exports.ItemEditor = ItemEditor;
|
|
520
|
-
exports.
|
|
521
|
-
//# sourceMappingURL=item-editor-
|
|
538
|
+
exports.isSurveyGroupItem = isSurveyGroupItem;
|
|
539
|
+
//# sourceMappingURL=item-editor-c6933791.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"item-editor-c6933791.js","sources":["../node_modules/survey-engine/data_types/expression.js","../node_modules/survey-engine/data_types/survey-item.js","../node_modules/survey-engine/data_types/survey-item-component.js","../node_modules/survey-engine/data_types/response.js","../node_modules/survey-engine/data_types/index.js"],"sourcesContent":["'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst isExpression = (value) => {\r\n return typeof (value) === 'object' && value.name !== undefined && value.name.length > 0;\r\n};\r\nconst expressionArgParser = (arg) => {\r\n switch (arg.dtype) {\r\n case 'num':\r\n return arg.num;\r\n case 'str':\r\n return arg.str;\r\n case 'exp':\r\n return arg.exp;\r\n default:\r\n return arg.str;\r\n }\r\n};\n\nexports.expressionArgParser = expressionArgParser;\nexports.isExpression = isExpression;\n//# sourceMappingURL=expression.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst isSurveyGroupItem = (item) => {\r\n const items = item.items;\r\n return items !== undefined && items.length > 0;\r\n};\n\nexports.isSurveyGroupItem = isSurveyGroupItem;\n//# sourceMappingURL=survey-item.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst isItemGroupComponent = (item) => {\r\n const items = item.items;\r\n return items !== undefined && items.length > 0;\r\n};\n\nexports.isItemGroupComponent = isItemGroupComponent;\n//# sourceMappingURL=survey-item-component.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst isSurveyGroupItemResponse = (item) => {\r\n const items = item.items;\r\n return items !== undefined && items.length > 0;\r\n};\n\nexports.isSurveyGroupItemResponse = isSurveyGroupItemResponse;\n//# sourceMappingURL=response.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar data_types_expression = require('./expression.js');\nvar data_types_surveyItem = require('./survey-item.js');\nvar data_types_surveyItemComponent = require('./survey-item-component.js');\nvar data_types_response = require('./response.js');\n\n\n\nexports.expressionArgParser = data_types_expression.expressionArgParser;\nexports.isExpression = data_types_expression.isExpression;\nexports.isSurveyGroupItem = data_types_surveyItem.isSurveyGroupItem;\nexports.isItemGroupComponent = data_types_surveyItemComponent.isItemGroupComponent;\nexports.isSurveyGroupItemResponse = data_types_response.isSurveyGroupItemResponse;\n//# sourceMappingURL=index.js.map\n"],"names":["isSurveyGroupItem","isItemGroupComponent","require$$0","require$$1","require$$2","require$$3"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Logger } from './logger';
|
package/logger/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,28 +1,25 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "case-editor-tools",
|
|
3
3
|
"description": "Javascript tools to simplify survey and study coding for CASE.",
|
|
4
|
-
"version": "1.0.0-beta.
|
|
5
|
-
"main": "
|
|
6
|
-
"module": "build/index.es.js",
|
|
7
|
-
"files": [
|
|
8
|
-
"build/**/*"
|
|
9
|
-
],
|
|
4
|
+
"version": "1.0.0-beta.20",
|
|
5
|
+
"main": "index.js",
|
|
10
6
|
"license": "Apache-2.0",
|
|
7
|
+
"repository": "github:case-framework/case-editor-tools",
|
|
11
8
|
"devDependencies": {
|
|
12
9
|
"@rollup/plugin-commonjs": "^21.0.1",
|
|
13
|
-
"@rollup/plugin-node-resolve": "^13.
|
|
14
|
-
"rollup": "^2.
|
|
10
|
+
"@rollup/plugin-node-resolve": "^13.1.1",
|
|
11
|
+
"rollup": "^2.61.1",
|
|
12
|
+
"rollup-plugin-copy": "^3.4.0",
|
|
15
13
|
"rollup-plugin-delete": "^2.0.0",
|
|
16
14
|
"rollup-plugin-multi-input": "^1.3.1",
|
|
17
15
|
"rollup-plugin-peer-deps-external": "^2.2.4",
|
|
18
|
-
"rollup-plugin-typescript2": "^0.
|
|
16
|
+
"rollup-plugin-typescript2": "^0.31.1",
|
|
19
17
|
"typescript": "^4.4.4"
|
|
20
18
|
},
|
|
21
19
|
"scripts": {
|
|
22
|
-
"build": "rollup -c"
|
|
23
|
-
"prepublishOnly": "yarn build"
|
|
20
|
+
"build": "rollup -c"
|
|
24
21
|
},
|
|
25
22
|
"dependencies": {
|
|
26
|
-
"survey-engine": "^0.
|
|
23
|
+
"survey-engine": "^1.0.2"
|
|
27
24
|
}
|
|
28
25
|
}
|
package/surveys/index.js
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var surveys_surveyItems = require('./survey-items.js');
|
|
6
|
+
var surveys_utils_optionDefGenerators = require('./utils/optionDefGenerators.js');
|
|
7
|
+
var surveys_surveyEngineExpressions = require('./survey-engine-expressions.js');
|
|
8
|
+
require('./survey-editor/component-editor.js');
|
|
9
|
+
require('../item-editor-c6933791.js');
|
|
10
|
+
require('./utils/randomKeyGenerator.js');
|
|
11
|
+
require('../logger/logger.js');
|
|
12
|
+
require('./utils/componentGenerators.js');
|
|
13
|
+
require('./utils/simple-generators.js');
|
|
14
|
+
require('../types/duration.js');
|
|
15
|
+
require('../constants/key-definitions.js');
|
|
16
|
+
require('./utils/simple-question-editor.js');
|
|
17
|
+
require('./responseTypeGenerators/optionGroupComponents.js');
|
|
18
|
+
require('./responseTypeGenerators/likertGroupComponents.js');
|
|
19
|
+
require('../expression-utils/expressionGen.js');
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
exports.SurveyItems = surveys_surveyItems.SurveyItems;
|
|
24
|
+
exports.ClozeItemTypes = surveys_utils_optionDefGenerators.ClozeItemTypes;
|
|
25
|
+
exports.MultipleChoiceOptionTypes = surveys_utils_optionDefGenerators.MultipleChoiceOptionTypes;
|
|
26
|
+
exports.SingleChoiceOptionTypes = surveys_utils_optionDefGenerators.SingleChoiceOptionTypes;
|
|
27
|
+
exports.SurveyEngine = surveys_surveyEngineExpressions.SurveyEngine;
|
|
28
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Expression, ItemComponent, ItemGroupComponent } from "survey-engine/data_types";
|
|
2
|
+
import { ResponsiveBipolarLikertArrayProps, ResponsiveSingleChoiceArrayProps } from "../types";
|
|
3
|
+
export interface LikertGroupRow {
|
|
4
|
+
key: string;
|
|
5
|
+
content: Map<string, string>;
|
|
6
|
+
descriptions?: ItemComponent[];
|
|
7
|
+
hideTopBorder?: boolean;
|
|
8
|
+
hideLabels?: boolean;
|
|
9
|
+
optionDisabled?: Array<{
|
|
10
|
+
optionKey: string;
|
|
11
|
+
exp: Expression;
|
|
12
|
+
}>;
|
|
13
|
+
displayCondition?: Expression;
|
|
14
|
+
}
|
|
15
|
+
export declare const initLikertScaleGroup: (key: string, rows: Array<LikertGroupRow>, scaleOptions: {
|
|
16
|
+
key: string;
|
|
17
|
+
className?: string | undefined;
|
|
18
|
+
content: Map<string, string>;
|
|
19
|
+
}[], stackOnSmallScreen?: boolean | undefined, displayCondition?: Expression | undefined) => ItemGroupComponent;
|
|
20
|
+
export declare const initResponsiveSingleChoiceArray: (rgKey: string, props: ResponsiveSingleChoiceArrayProps, displayCondition?: Expression | undefined) => ItemGroupComponent;
|
|
21
|
+
export declare const initResponsiveBipolarLikertArray: (rgKey: string, props: ResponsiveBipolarLikertArrayProps, displayCondition?: Expression | undefined) => ItemGroupComponent;
|
|
22
|
+
export declare const initLikertScaleItem: (key: string, options: {
|
|
23
|
+
key: string;
|
|
24
|
+
className?: string | undefined;
|
|
25
|
+
content?: Map<string, string> | undefined;
|
|
26
|
+
disabled?: Expression | undefined;
|
|
27
|
+
}[], stackOnSmallScreen?: boolean | undefined, displayCondition?: Expression | undefined) => ItemGroupComponent;
|