case-editor-tools 1.4.0 → 1.5.0

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 (32) hide show
  1. package/expression-utils/expressionGen.js +8 -1
  2. package/expression-utils/expressionGen.js.map +1 -1
  3. package/expression-utils/studyEngineExpressions.d.ts +4 -0
  4. package/expression-utils/studyEngineExpressions.js +14 -0
  5. package/expression-utils/studyEngineExpressions.js.map +1 -1
  6. package/index-8e5154bb.js +79 -0
  7. package/index-8e5154bb.js.map +1 -0
  8. package/package.json +1 -1
  9. package/surveys/index.js +2 -1
  10. package/surveys/index.js.map +1 -1
  11. package/surveys/survey-editor/item-editor.js +457 -6
  12. package/surveys/survey-editor/item-editor.js.map +1 -1
  13. package/surveys/survey-editor/survey-editor.js +7 -6
  14. package/surveys/survey-editor/survey-editor.js.map +1 -1
  15. package/surveys/survey-engine-expressions.js +2 -0
  16. package/surveys/survey-engine-expressions.js.map +1 -1
  17. package/surveys/survey-items.js +2 -1
  18. package/surveys/survey-items.js.map +1 -1
  19. package/surveys/types/group.js +2 -1
  20. package/surveys/types/group.js.map +1 -1
  21. package/surveys/types/index.js +2 -1
  22. package/surveys/types/index.js.map +1 -1
  23. package/surveys/types/survey-definition.js +2 -1
  24. package/surveys/types/survey-definition.js.map +1 -1
  25. package/surveys/utils/optionDefGenerators.js +2 -0
  26. package/surveys/utils/optionDefGenerators.js.map +1 -1
  27. package/surveys/utils/simple-question-editor.js +2 -1
  28. package/surveys/utils/simple-question-editor.js.map +1 -1
  29. package/types/studyRules.js +2 -0
  30. package/types/studyRules.js.map +1 -1
  31. package/item-editor-b2c1632b.js +0 -535
  32. package/item-editor-b2c1632b.js.map +0 -1
@@ -2,11 +2,14 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ var index = require('../index-8e5154bb.js');
6
+ var logger_logger = require('../logger/logger.js');
7
+
5
8
  const generateExpression = (name, returnType, ...args) => {
6
9
  return {
7
10
  name: name,
8
11
  returnType: returnType,
9
- data: args.filter(a => a !== undefined).map(arg => {
12
+ data: args.filter(a => a !== undefined).map((arg, index$1) => {
10
13
  if (typeof (arg) === 'string') {
11
14
  return {
12
15
  dtype: 'str',
@@ -19,6 +22,10 @@ const generateExpression = (name, returnType, ...args) => {
19
22
  num: arg
20
23
  };
21
24
  }
25
+ if (!index.isExpression(arg)) {
26
+ logger_logger.Logger.criticalError(`Wrong argument type in: ${name} at pos ${index$1}`);
27
+ process.exit(1);
28
+ }
22
29
  return {
23
30
  dtype: 'exp',
24
31
  exp: arg
@@ -1 +1 @@
1
- {"version":3,"file":"expressionGen.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"expressionGen.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -21,6 +21,7 @@ export declare const NativeStudyEngineExpressions: {
21
21
  hasParticipantFlagKeyAndValue: (key: string, value: string) => Expression;
22
22
  hasParticipantFlagKey: (key: string) => Expression;
23
23
  getParticipantFlagValue: (key: string) => Expression;
24
+ getParticipantFlagAsNum: (key: string) => Expression;
24
25
  lastSubmissionDateOlderThan: (reference: number | Expression, surveyKey?: string) => Expression;
25
26
  hasMessageTypeAssigned: (messageType: string) => Expression;
26
27
  getMessageNextTime: (messageType: string) => Expression;
@@ -47,6 +48,7 @@ export declare const NativeStudyEngineExpressions: {
47
48
  and: (...args: Expression[]) => Expression;
48
49
  not: (arg: Expression) => Expression;
49
50
  timestampWithOffset: (delta: Duration, reference?: number | Expression) => Expression;
51
+ parseValueAsNum: (valueRef: Expression | string | number) => Expression;
50
52
  externalEventEval: (serviceName: string, expectFloat?: boolean) => Expression;
51
53
  };
52
54
  export declare const StudyEngineActions: {
@@ -172,6 +174,7 @@ export declare const StudyEngine: {
172
174
  hasParticipantFlagKeyAndValue: (key: string, value: string) => Expression;
173
175
  hasParticipantFlagKey: (key: string) => Expression;
174
176
  getParticipantFlagValue: (key: string) => Expression;
177
+ getParticipantFlagAsNum: (key: string) => Expression;
175
178
  lastSubmissionDateOlderThan: (reference: number | Expression, surveyKey?: string) => Expression;
176
179
  hasMessageTypeAssigned: (messageType: string) => Expression;
177
180
  getMessageNextTime: (messageType: string) => Expression;
@@ -198,5 +201,6 @@ export declare const StudyEngine: {
198
201
  and: (...args: Expression[]) => Expression;
199
202
  not: (arg: Expression) => Expression;
200
203
  timestampWithOffset: (delta: Duration, reference?: number | Expression) => Expression;
204
+ parseValueAsNum: (valueRef: Expression | string | number) => Expression;
201
205
  externalEventEval: (serviceName: string, expectFloat?: boolean) => Expression;
202
206
  };
@@ -5,6 +5,8 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var constants_keyDefinitions = require('../constants/key-definitions.js');
6
6
  var types_duration = require('../types/duration.js');
7
7
  var expressionUtils_expressionGen = require('./expressionGen.js');
8
+ require('../index-8e5154bb.js');
9
+ require('../logger/logger.js');
8
10
 
9
11
  const or = (...args) => expressionUtils_expressionGen.generateExpression('or', undefined, ...args);
10
12
  const and = (...args) => expressionUtils_expressionGen.generateExpression('and', undefined, ...args);
@@ -140,6 +142,8 @@ const hasParticipantFlagKeyForIncoming = (key) => expressionUtils_expressionGen.
140
142
  */
141
143
  const getParticipantFlagValue = (key) => expressionUtils_expressionGen.generateExpression('getParticipantFlagValue', undefined, key);
142
144
  const getParticipantFlagValueForIncoming = (key) => expressionUtils_expressionGen.generateExpression('incomingState:getParticipantFlagValue', undefined, key);
145
+ // Convinience method to parse participant flag's value as a number
146
+ const getParticipantFlagAsNum = (key) => parseValueAsNum(getParticipantFlagValue(key));
143
147
  /**
144
148
  * Checks if the participant has a message type assigned (at least one)
145
149
  * @param messageType
@@ -174,6 +178,14 @@ const gte = (val1, val2) => expressionUtils_expressionGen.generateExpression('gt
174
178
  * @returns
175
179
  */
176
180
  const timestampWithOffset = (delta, reference) => expressionUtils_expressionGen.generateExpression('timestampWithOffset', undefined, types_duration.durationObjectToSeconds(delta), reference ? reference : undefined);
181
+ /**
182
+ * Attempt to parse the resolved argument's value as a number
183
+ * @param valueRef resolve this argument, and try to parse this as number. Boolean value will result in error.
184
+ * @returns
185
+ */
186
+ const parseValueAsNum = (valueRef) => {
187
+ return expressionUtils_expressionGen.generateExpression('parseValueAsNum', 'float', valueRef);
188
+ };
177
189
  /**
178
190
  *
179
191
  * @param serviceName name of the external service endpoint that should be used (URL and API key are config of the service)
@@ -406,6 +418,7 @@ const NativeStudyEngineExpressions = {
406
418
  hasParticipantFlagKeyAndValue,
407
419
  hasParticipantFlagKey,
408
420
  getParticipantFlagValue,
421
+ getParticipantFlagAsNum,
409
422
  lastSubmissionDateOlderThan,
410
423
  hasMessageTypeAssigned,
411
424
  getMessageNextTime,
@@ -435,6 +448,7 @@ const NativeStudyEngineExpressions = {
435
448
  not,
436
449
  // Other
437
450
  timestampWithOffset,
451
+ parseValueAsNum,
438
452
  externalEventEval,
439
453
  };
440
454
  const StudyEngineActions = {
@@ -1 +1 @@
1
- {"version":3,"file":"studyEngineExpressions.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"studyEngineExpressions.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,79 @@
1
+ 'use strict';
2
+
3
+ var data_types = {};
4
+
5
+ var expression = {};
6
+
7
+ Object.defineProperty(expression, '__esModule', { value: true });
8
+
9
+ const isExpression$1 = (value) => {
10
+ return typeof (value) === 'object' && value.name !== undefined && value.name.length > 0;
11
+ };
12
+ const expressionArgParser = (arg) => {
13
+ switch (arg.dtype) {
14
+ case 'num':
15
+ return arg.num;
16
+ case 'str':
17
+ return arg.str;
18
+ case 'exp':
19
+ return arg.exp;
20
+ default:
21
+ return arg.str;
22
+ }
23
+ };
24
+
25
+ expression.expressionArgParser = expressionArgParser;
26
+ expression.isExpression = isExpression$1;
27
+
28
+ var surveyItem = {};
29
+
30
+ Object.defineProperty(surveyItem, '__esModule', { value: true });
31
+
32
+ const isSurveyGroupItem$1 = (item) => {
33
+ const items = item.items;
34
+ return items !== undefined && items.length > 0;
35
+ };
36
+
37
+ surveyItem.isSurveyGroupItem = isSurveyGroupItem$1;
38
+
39
+ var surveyItemComponent = {};
40
+
41
+ Object.defineProperty(surveyItemComponent, '__esModule', { value: true });
42
+
43
+ const isItemGroupComponent$1 = (item) => {
44
+ const items = item.items;
45
+ return items !== undefined && items.length > 0;
46
+ };
47
+
48
+ surveyItemComponent.isItemGroupComponent = isItemGroupComponent$1;
49
+
50
+ var response = {};
51
+
52
+ Object.defineProperty(response, '__esModule', { value: true });
53
+
54
+ const isSurveyGroupItemResponse = (item) => {
55
+ const items = item.items;
56
+ return items !== undefined && items.length > 0;
57
+ };
58
+
59
+ response.isSurveyGroupItemResponse = isSurveyGroupItemResponse;
60
+
61
+ Object.defineProperty(data_types, '__esModule', { value: true });
62
+
63
+ var data_types_expression = expression;
64
+ var data_types_surveyItem = surveyItem;
65
+ var data_types_surveyItemComponent = surveyItemComponent;
66
+ var data_types_response = response;
67
+
68
+
69
+
70
+ data_types.expressionArgParser = data_types_expression.expressionArgParser;
71
+ var isExpression = data_types.isExpression = data_types_expression.isExpression;
72
+ var isSurveyGroupItem = data_types.isSurveyGroupItem = data_types_surveyItem.isSurveyGroupItem;
73
+ var isItemGroupComponent = data_types.isItemGroupComponent = data_types_surveyItemComponent.isItemGroupComponent;
74
+ data_types.isSurveyGroupItemResponse = data_types_response.isSurveyGroupItemResponse;
75
+
76
+ exports.isExpression = isExpression;
77
+ exports.isItemGroupComponent = isItemGroupComponent;
78
+ exports.isSurveyGroupItem = isSurveyGroupItem;
79
+ //# sourceMappingURL=index-8e5154bb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-8e5154bb.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":["isExpression","isSurveyGroupItem","isItemGroupComponent","require$$0","require$$1","require$$2","require$$3"],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "case-editor-tools",
3
3
  "description": "Javascript tools to simplify survey and study coding for CASE.",
4
- "version": "1.4.0",
4
+ "version": "1.5.0",
5
5
  "main": "index.js",
6
6
  "license": "Apache-2.0",
7
7
  "repository": "github:case-framework/case-editor-tools",
package/surveys/index.js CHANGED
@@ -6,7 +6,8 @@ var surveys_surveyItems = require('./survey-items.js');
6
6
  var surveys_utils_optionDefGenerators = require('./utils/optionDefGenerators.js');
7
7
  var surveys_surveyEngineExpressions = require('./survey-engine-expressions.js');
8
8
  require('./survey-editor/component-editor.js');
9
- require('../item-editor-b2c1632b.js');
9
+ require('./survey-editor/item-editor.js');
10
+ require('../index-8e5154bb.js');
10
11
  require('./utils/randomKeyGenerator.js');
11
12
  require('../logger/logger.js');
12
13
  require('./utils/componentGenerators.js');
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;"}