@pie-element/ebsr 7.0.24-next.1 → 7.0.24-next.2

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 (148) hide show
  1. package/configure/lib/defaults.js +125 -0
  2. package/configure/lib/defaults.js.map +1 -0
  3. package/configure/lib/index.js +207 -0
  4. package/configure/lib/index.js.map +1 -0
  5. package/configure/lib/main.js +284 -0
  6. package/configure/lib/main.js.map +1 -0
  7. package/configure/node_modules/@pie-element/multiple-choice/CHANGELOG.json +1972 -0
  8. package/configure/node_modules/@pie-element/multiple-choice/CHANGELOG.md +1793 -0
  9. package/configure/node_modules/@pie-element/multiple-choice/LICENSE.md +5 -0
  10. package/configure/node_modules/@pie-element/multiple-choice/PRINT.md +35 -0
  11. package/configure/node_modules/@pie-element/multiple-choice/README.md +56 -0
  12. package/configure/node_modules/@pie-element/multiple-choice/choice.png +0 -0
  13. package/configure/node_modules/@pie-element/multiple-choice/configure/CHANGELOG.json +1387 -0
  14. package/configure/node_modules/@pie-element/multiple-choice/configure/CHANGELOG.md +1334 -0
  15. package/configure/node_modules/@pie-element/multiple-choice/configure/lib/defaults.js +104 -0
  16. package/configure/node_modules/@pie-element/multiple-choice/configure/lib/defaults.js.map +1 -0
  17. package/configure/node_modules/@pie-element/multiple-choice/configure/lib/index.js +198 -0
  18. package/configure/node_modules/@pie-element/multiple-choice/configure/lib/index.js.map +1 -0
  19. package/configure/node_modules/@pie-element/multiple-choice/configure/lib/main.js +599 -0
  20. package/configure/node_modules/@pie-element/multiple-choice/configure/lib/main.js.map +1 -0
  21. package/configure/node_modules/@pie-element/multiple-choice/configure/lib/utils.js +18 -0
  22. package/configure/node_modules/@pie-element/multiple-choice/configure/lib/utils.js.map +1 -0
  23. package/configure/node_modules/@pie-element/multiple-choice/configure/package.json +20 -0
  24. package/configure/node_modules/@pie-element/multiple-choice/controller/CHANGELOG.json +527 -0
  25. package/configure/node_modules/@pie-element/multiple-choice/controller/CHANGELOG.md +768 -0
  26. package/configure/node_modules/@pie-element/multiple-choice/controller/lib/defaults.js +18 -0
  27. package/configure/node_modules/@pie-element/multiple-choice/controller/lib/defaults.js.map +1 -0
  28. package/configure/node_modules/@pie-element/multiple-choice/controller/lib/index.js +305 -0
  29. package/configure/node_modules/@pie-element/multiple-choice/controller/lib/index.js.map +1 -0
  30. package/configure/node_modules/@pie-element/multiple-choice/controller/lib/utils.js +36 -0
  31. package/configure/node_modules/@pie-element/multiple-choice/controller/lib/utils.js.map +1 -0
  32. package/configure/node_modules/@pie-element/multiple-choice/controller/package.json +15 -0
  33. package/configure/node_modules/@pie-element/multiple-choice/docs/config-schema.json +353 -0
  34. package/configure/node_modules/@pie-element/multiple-choice/docs/config-schema.json.md +277 -0
  35. package/configure/node_modules/@pie-element/multiple-choice/docs/demo/config.js +8 -0
  36. package/configure/node_modules/@pie-element/multiple-choice/docs/demo/generate.js +52 -0
  37. package/configure/node_modules/@pie-element/multiple-choice/docs/demo/index.html +1 -0
  38. package/configure/node_modules/@pie-element/multiple-choice/docs/demo/session.js +7 -0
  39. package/configure/node_modules/@pie-element/multiple-choice/docs/pie-schema.json +338 -0
  40. package/configure/node_modules/@pie-element/multiple-choice/docs/pie-schema.json.md +274 -0
  41. package/configure/node_modules/@pie-element/multiple-choice/lib/choice-input.js +298 -0
  42. package/configure/node_modules/@pie-element/multiple-choice/lib/choice-input.js.map +1 -0
  43. package/configure/node_modules/@pie-element/multiple-choice/lib/choice.js +157 -0
  44. package/configure/node_modules/@pie-element/multiple-choice/lib/choice.js.map +1 -0
  45. package/configure/node_modules/@pie-element/multiple-choice/lib/feedback-tick.js +174 -0
  46. package/configure/node_modules/@pie-element/multiple-choice/lib/feedback-tick.js.map +1 -0
  47. package/configure/node_modules/@pie-element/multiple-choice/lib/index.js +151 -0
  48. package/configure/node_modules/@pie-element/multiple-choice/lib/index.js.map +1 -0
  49. package/configure/node_modules/@pie-element/multiple-choice/lib/main.js +97 -0
  50. package/configure/node_modules/@pie-element/multiple-choice/lib/main.js.map +1 -0
  51. package/configure/node_modules/@pie-element/multiple-choice/lib/multiple-choice.js +254 -0
  52. package/configure/node_modules/@pie-element/multiple-choice/lib/multiple-choice.js.map +1 -0
  53. package/configure/node_modules/@pie-element/multiple-choice/lib/print.js +129 -0
  54. package/configure/node_modules/@pie-element/multiple-choice/lib/print.js.map +1 -0
  55. package/configure/node_modules/@pie-element/multiple-choice/lib/session-updater.js +35 -0
  56. package/configure/node_modules/@pie-element/multiple-choice/lib/session-updater.js.map +1 -0
  57. package/configure/node_modules/@pie-element/multiple-choice/module/configure.js +843 -0
  58. package/configure/node_modules/@pie-element/multiple-choice/module/controller.js +20686 -0
  59. package/configure/node_modules/@pie-element/multiple-choice/module/demo.js +77 -0
  60. package/configure/node_modules/@pie-element/multiple-choice/module/element.js +2019 -0
  61. package/configure/node_modules/@pie-element/multiple-choice/module/index.html +21 -0
  62. package/configure/node_modules/@pie-element/multiple-choice/module/manifest.json +14 -0
  63. package/configure/node_modules/@pie-element/multiple-choice/module/print-demo.js +115 -0
  64. package/configure/node_modules/@pie-element/multiple-choice/module/print.html +18 -0
  65. package/configure/node_modules/@pie-element/multiple-choice/module/print.js +1983 -0
  66. package/configure/node_modules/@pie-element/multiple-choice/package.json +34 -0
  67. package/configure/node_modules/@pie-lib/math-rendering/CHANGELOG.json +672 -0
  68. package/configure/node_modules/@pie-lib/math-rendering/CHANGELOG.md +427 -0
  69. package/configure/node_modules/@pie-lib/math-rendering/LICENSE.md +5 -0
  70. package/configure/node_modules/@pie-lib/math-rendering/lib/index.js +30 -0
  71. package/configure/node_modules/@pie-lib/math-rendering/lib/index.js.map +1 -0
  72. package/configure/node_modules/@pie-lib/math-rendering/lib/mstack/chtml.js +316 -0
  73. package/configure/node_modules/@pie-lib/math-rendering/lib/mstack/chtml.js.map +1 -0
  74. package/configure/node_modules/@pie-lib/math-rendering/lib/mstack/index.js +23 -0
  75. package/configure/node_modules/@pie-lib/math-rendering/lib/mstack/index.js.map +1 -0
  76. package/configure/node_modules/@pie-lib/math-rendering/lib/mstack/mml.js +123 -0
  77. package/configure/node_modules/@pie-lib/math-rendering/lib/mstack/mml.js.map +1 -0
  78. package/configure/node_modules/@pie-lib/math-rendering/lib/normalization.js +103 -0
  79. package/configure/node_modules/@pie-lib/math-rendering/lib/normalization.js.map +1 -0
  80. package/configure/node_modules/@pie-lib/math-rendering/lib/render-math.js +275 -0
  81. package/configure/node_modules/@pie-lib/math-rendering/lib/render-math.js.map +1 -0
  82. package/configure/node_modules/@pie-lib/math-rendering/package.json +19 -0
  83. package/configure/node_modules/@pie-lib/math-rendering/playground/demo.html +872 -0
  84. package/configure/node_modules/@pie-lib/math-rendering/playground/demo.js +108 -0
  85. package/configure/node_modules/@pie-lib/math-rendering/playground/main.html +156 -0
  86. package/configure/node_modules/@pie-lib/math-rendering/playground/main.js +16 -0
  87. package/configure/node_modules/@pie-lib/math-rendering/playground/webpack.config.js +29 -0
  88. package/configure/node_modules/@pie-lib/math-rendering/src/index.js +4 -0
  89. package/configure/node_modules/@pie-lib/math-rendering/src/mstack/chtml.js +215 -0
  90. package/configure/node_modules/@pie-lib/math-rendering/src/mstack/index.js +13 -0
  91. package/configure/node_modules/@pie-lib/math-rendering/src/mstack/mml.js +24 -0
  92. package/configure/node_modules/@pie-lib/math-rendering/src/normalization.js +69 -0
  93. package/configure/node_modules/@pie-lib/math-rendering/src/render-math.js +234 -0
  94. package/configure/node_modules/@pie-lib/render-ui/CHANGELOG.json +937 -0
  95. package/configure/node_modules/@pie-lib/render-ui/CHANGELOG.md +602 -0
  96. package/configure/node_modules/@pie-lib/render-ui/LICENSE.md +5 -0
  97. package/configure/node_modules/@pie-lib/render-ui/README.md +33 -0
  98. package/configure/node_modules/@pie-lib/render-ui/lib/collapsible/index.js +146 -0
  99. package/configure/node_modules/@pie-lib/render-ui/lib/collapsible/index.js.map +1 -0
  100. package/configure/node_modules/@pie-lib/render-ui/lib/color.js +134 -0
  101. package/configure/node_modules/@pie-lib/render-ui/lib/color.js.map +1 -0
  102. package/configure/node_modules/@pie-lib/render-ui/lib/feedback.js +160 -0
  103. package/configure/node_modules/@pie-lib/render-ui/lib/feedback.js.map +1 -0
  104. package/configure/node_modules/@pie-lib/render-ui/lib/has-text.js +24 -0
  105. package/configure/node_modules/@pie-lib/render-ui/lib/has-text.js.map +1 -0
  106. package/configure/node_modules/@pie-lib/render-ui/lib/html-and-math.js +102 -0
  107. package/configure/node_modules/@pie-lib/render-ui/lib/html-and-math.js.map +1 -0
  108. package/configure/node_modules/@pie-lib/render-ui/lib/index.js +104 -0
  109. package/configure/node_modules/@pie-lib/render-ui/lib/index.js.map +1 -0
  110. package/configure/node_modules/@pie-lib/render-ui/lib/input-container.js +60 -0
  111. package/configure/node_modules/@pie-lib/render-ui/lib/input-container.js.map +1 -0
  112. package/configure/node_modules/@pie-lib/render-ui/lib/preview-layout.js +133 -0
  113. package/configure/node_modules/@pie-lib/render-ui/lib/preview-layout.js.map +1 -0
  114. package/configure/node_modules/@pie-lib/render-ui/lib/preview-prompt.js +162 -0
  115. package/configure/node_modules/@pie-lib/render-ui/lib/preview-prompt.js.map +1 -0
  116. package/configure/node_modules/@pie-lib/render-ui/lib/purpose.js +28 -0
  117. package/configure/node_modules/@pie-lib/render-ui/lib/purpose.js.map +1 -0
  118. package/configure/node_modules/@pie-lib/render-ui/lib/readable.js +28 -0
  119. package/configure/node_modules/@pie-lib/render-ui/lib/readable.js.map +1 -0
  120. package/configure/node_modules/@pie-lib/render-ui/lib/response-indicators.js +160 -0
  121. package/configure/node_modules/@pie-lib/render-ui/lib/response-indicators.js.map +1 -0
  122. package/configure/node_modules/@pie-lib/render-ui/lib/withUndoReset.js +206 -0
  123. package/configure/node_modules/@pie-lib/render-ui/lib/withUndoReset.js.map +1 -0
  124. package/configure/node_modules/@pie-lib/render-ui/package.json +30 -0
  125. package/configure/node_modules/@pie-lib/render-ui/src/collapsible/index.jsx +68 -0
  126. package/configure/node_modules/@pie-lib/render-ui/src/color.js +48 -0
  127. package/configure/node_modules/@pie-lib/render-ui/src/feedback.jsx +100 -0
  128. package/configure/node_modules/@pie-lib/render-ui/src/has-text.js +14 -0
  129. package/configure/node_modules/@pie-lib/render-ui/src/html-and-math.js +40 -0
  130. package/configure/node_modules/@pie-lib/render-ui/src/index.js +27 -0
  131. package/configure/node_modules/@pie-lib/render-ui/src/input-container.jsx +41 -0
  132. package/configure/node_modules/@pie-lib/render-ui/src/preview-layout.jsx +77 -0
  133. package/configure/node_modules/@pie-lib/render-ui/src/preview-prompt.jsx +90 -0
  134. package/configure/node_modules/@pie-lib/render-ui/src/purpose.jsx +19 -0
  135. package/configure/node_modules/@pie-lib/render-ui/src/readable.jsx +19 -0
  136. package/configure/node_modules/@pie-lib/render-ui/src/response-indicators.jsx +89 -0
  137. package/configure/node_modules/@pie-lib/render-ui/src/withUndoReset.jsx +118 -0
  138. package/controller/lib/defaults.js +28 -0
  139. package/controller/lib/defaults.js.map +1 -0
  140. package/controller/lib/index.js +471 -0
  141. package/controller/lib/index.js.map +1 -0
  142. package/controller/lib/utils.js +33 -0
  143. package/controller/lib/utils.js.map +1 -0
  144. package/lib/index.js +202 -0
  145. package/lib/index.js.map +1 -0
  146. package/lib/print.js +243 -0
  147. package/lib/print.js.map +1 -0
  148. package/package.json +1 -1
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
12
+ var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
13
+
14
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
15
+
16
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
17
+
18
+ var defaultConfig = {
19
+ addChoiceButton: {
20
+ settings: true,
21
+ label: 'Add a Choice'
22
+ },
23
+ choiceMode: {
24
+ settings: true,
25
+ label: 'Response Type'
26
+ },
27
+ choicePrefix: {
28
+ settings: true,
29
+ label: 'Choice Labels'
30
+ },
31
+ deleteChoice: {
32
+ settings: true
33
+ },
34
+ feedback: {
35
+ settings: true,
36
+ label: 'Feedback'
37
+ },
38
+ lockChoiceOrder: {
39
+ settings: true,
40
+ label: 'Lock Choice Order'
41
+ },
42
+ prompt: {
43
+ settings: true,
44
+ label: 'Prompt'
45
+ },
46
+ rationale: {
47
+ settings: true,
48
+ label: 'Rationale'
49
+ },
50
+ studentInstructions: {
51
+ settings: false,
52
+ label: 'Student Instructions'
53
+ },
54
+ teacherInstructions: {
55
+ settings: true,
56
+ label: 'Teacher Instructions'
57
+ },
58
+ choicesLayout: {
59
+ settings: false,
60
+ label: 'Choices Layout'
61
+ },
62
+ gridColumns: {
63
+ label: 'Grid columns'
64
+ },
65
+ spellCheck: {
66
+ label: 'Spellcheck',
67
+ settings: false,
68
+ enabled: true
69
+ }
70
+ };
71
+
72
+ var partModel = function partModel(base) {
73
+ return _objectSpread({
74
+ choiceMode: 'radio',
75
+ choices: [],
76
+ choicePrefix: 'numbers',
77
+ prompt: 'Prompt',
78
+ rationaleEnabled: true,
79
+ feedbackEnabled: true,
80
+ promptEnabled: true,
81
+ teacherInstructions: '',
82
+ rationale: '',
83
+ teacherInstructionsEnabled: true,
84
+ studentInstructionsEnabled: true,
85
+ spellCheckEnabled: true,
86
+ choicesLayout: 'vertical',
87
+ gridColumns: '2'
88
+ }, base);
89
+ };
90
+
91
+ var _default = {
92
+ model: {
93
+ partLabels: true,
94
+ partLabelType: 'Letters',
95
+ partialScoring: false,
96
+ partA: partModel({
97
+ prompt: 'Prompt A'
98
+ }),
99
+ partB: partModel({
100
+ prompt: 'Prompt B'
101
+ })
102
+ },
103
+ configuration: {
104
+ partialScoring: {
105
+ label: 'Allow Partial Scoring',
106
+ // this will turn off partial scoring toggle in the settings tab by default for the interaction
107
+ // as we'd like partial scoring to be controlled from the environment entirely
108
+ // if any other consumers would like to enable it for themselves, they can do so from their model directly.
109
+ settings: false
110
+ },
111
+ scoringType: {
112
+ settings: false,
113
+ label: 'Scoring Type'
114
+ },
115
+ partA: (0, _cloneDeep["default"])(defaultConfig),
116
+ partB: (0, _cloneDeep["default"])(defaultConfig),
117
+ partLabels: {
118
+ settings: true,
119
+ label: 'Part Labels'
120
+ },
121
+ settingsPanelDisabled: true
122
+ }
123
+ };
124
+ exports["default"] = _default;
125
+ //# sourceMappingURL=defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/defaults.js"],"names":["defaultConfig","addChoiceButton","settings","label","choiceMode","choicePrefix","deleteChoice","feedback","lockChoiceOrder","prompt","rationale","studentInstructions","teacherInstructions","choicesLayout","gridColumns","spellCheck","enabled","partModel","base","choices","rationaleEnabled","feedbackEnabled","promptEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","spellCheckEnabled","model","partLabels","partLabelType","partialScoring","partA","partB","configuration","scoringType","settingsPanelDisabled"],"mappings":"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","sourcesContent":["import cloneDeep from 'lodash/cloneDeep';\n\nconst defaultConfig = {\n addChoiceButton: {\n settings: true,\n label: 'Add a Choice'\n },\n choiceMode: {\n settings: true,\n label: 'Response Type'\n },\n choicePrefix: {\n settings: true,\n label: 'Choice Labels'\n },\n deleteChoice: {\n settings: true\n },\n feedback: {\n settings: true,\n label: 'Feedback'\n },\n lockChoiceOrder: {\n settings: true,\n label: 'Lock Choice Order'\n },\n prompt: {\n settings: true,\n label: 'Prompt'\n },\n rationale: {\n settings: true,\n label: 'Rationale'\n },\n studentInstructions: {\n settings: false,\n label: 'Student Instructions'\n },\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions'\n },\n choicesLayout: {\n settings: false,\n label: 'Choices Layout',\n },\n gridColumns: {\n label: 'Grid columns',\n },\n spellCheck: {\n label: 'Spellcheck',\n settings:false,\n enabled:true\n },\n};\n\nconst partModel = base => ({\n choiceMode: 'radio',\n choices: [],\n choicePrefix: 'numbers',\n prompt: 'Prompt',\n rationaleEnabled: true,\n feedbackEnabled: true,\n promptEnabled: true,\n teacherInstructions: '',\n rationale: '',\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n spellCheckEnabled:true,\n choicesLayout: 'vertical',\n gridColumns: '2',\n ...base\n});\n\nexport default {\n model: {\n partLabels: true,\n partLabelType: 'Letters',\n partialScoring: false,\n partA: partModel({ prompt: 'Prompt A' }),\n partB: partModel({ prompt: 'Prompt B' })\n },\n configuration: {\n partialScoring: {\n label: 'Allow Partial Scoring',\n // this will turn off partial scoring toggle in the settings tab by default for the interaction\n // as we'd like partial scoring to be controlled from the environment entirely\n // if any other consumers would like to enable it for themselves, they can do so from their model directly.\n settings: false\n },\n scoringType: {\n settings: false,\n label: 'Scoring Type'\n },\n partA: cloneDeep(defaultConfig),\n partB: cloneDeep(defaultConfig),\n partLabels: {\n settings: true,\n label: 'Part Labels'\n },\n settingsPanelDisabled: true\n }\n};\n"],"file":"defaults.js"}
@@ -0,0 +1,207 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
+
12
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
13
+
14
+ var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
15
+
16
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
+
18
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
19
+
20
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
21
+
22
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
23
+
24
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
25
+
26
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
27
+
28
+ var _react = _interopRequireDefault(require("react"));
29
+
30
+ var _reactDom = _interopRequireDefault(require("react-dom"));
31
+
32
+ var _pieConfigureEvents = require("@pie-framework/pie-configure-events");
33
+
34
+ var _lib = _interopRequireDefault(require("@pie-element/multiple-choice/configure/lib"));
35
+
36
+ var _defaults = _interopRequireDefault(require("lodash/defaults"));
37
+
38
+ var _main = _interopRequireDefault(require("./main"));
39
+
40
+ var _defaults2 = _interopRequireDefault(require("./defaults"));
41
+
42
+ var _excluded = ["partA", "partB"];
43
+
44
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
45
+
46
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
47
+
48
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
49
+
50
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
51
+
52
+ var MODEL_UPDATED = _pieConfigureEvents.ModelUpdatedEvent.TYPE;
53
+ var MC_TAG_NAME = 'ebsr-multiple-choice-configure';
54
+
55
+ var EbsrMCConfigure = /*#__PURE__*/function (_MultipleChoiceConfig) {
56
+ (0, _inherits2["default"])(EbsrMCConfigure, _MultipleChoiceConfig);
57
+
58
+ var _super = _createSuper(EbsrMCConfigure);
59
+
60
+ function EbsrMCConfigure() {
61
+ (0, _classCallCheck2["default"])(this, EbsrMCConfigure);
62
+ return _super.apply(this, arguments);
63
+ }
64
+
65
+ return (0, _createClass2["default"])(EbsrMCConfigure);
66
+ }(_lib["default"]);
67
+
68
+ var defineMultipleChoice = function defineMultipleChoice() {
69
+ if (!customElements.get(MC_TAG_NAME)) {
70
+ customElements.define(MC_TAG_NAME, EbsrMCConfigure);
71
+ }
72
+ };
73
+
74
+ defineMultipleChoice();
75
+
76
+ var prepareCustomizationObject = function prepareCustomizationObject(config, model) {
77
+ var configuration = (0, _defaults["default"])(config, _defaults2["default"].configuration);
78
+ configuration.settingsPanelDisabled = true;
79
+ return {
80
+ configuration: configuration,
81
+ model: model
82
+ };
83
+ };
84
+
85
+ var _ref = _defaults2["default"] || {},
86
+ modelDefault = _ref.model;
87
+
88
+ var EbsrConfigure = /*#__PURE__*/function (_HTMLElement) {
89
+ (0, _inherits2["default"])(EbsrConfigure, _HTMLElement);
90
+
91
+ var _super2 = _createSuper(EbsrConfigure);
92
+
93
+ function EbsrConfigure() {
94
+ var _this;
95
+
96
+ (0, _classCallCheck2["default"])(this, EbsrConfigure);
97
+ _this = _super2.call(this);
98
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onModelChanged", function (m, reset) {
99
+ _this._model = EbsrConfigure.createDefaultModel(m, _this._model);
100
+
101
+ _this.dispatchModelUpdated(reset);
102
+
103
+ _this._render();
104
+ });
105
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onModelUpdated", function (e) {
106
+ if (e.target === (0, _assertThisInitialized2["default"])(_this)) {
107
+ return;
108
+ }
109
+
110
+ e.preventDefault();
111
+ e.stopImmediatePropagation();
112
+ var id = e.target && e.target.getAttribute('id');
113
+
114
+ if (id) {
115
+ if (e.update) {
116
+ _this._model["part".concat(id)] = e.update;
117
+ }
118
+
119
+ _this.dispatchEvent(new _pieConfigureEvents.ModelUpdatedEvent(_this._model));
120
+ }
121
+ });
122
+ _this._model = EbsrConfigure.createDefaultModel();
123
+ _this._configuration = _defaults2["default"].configuration;
124
+ _this.onConfigurationChanged = _this.onConfigurationChanged.bind((0, _assertThisInitialized2["default"])(_this));
125
+ return _this;
126
+ }
127
+
128
+ (0, _createClass2["default"])(EbsrConfigure, [{
129
+ key: "model",
130
+ set: function set(m) {
131
+ this._model = EbsrConfigure.createDefaultModel(m, this._model);
132
+
133
+ this._render();
134
+ }
135
+ }, {
136
+ key: "dispatchModelUpdated",
137
+ value: function dispatchModelUpdated(reset) {
138
+ var resetValue = !!reset;
139
+ this.dispatchEvent(new _pieConfigureEvents.ModelUpdatedEvent(this._model, resetValue));
140
+ }
141
+ }, {
142
+ key: "configuration",
143
+ set: function set(c) {
144
+ var info = prepareCustomizationObject(c, this._model);
145
+ this._configuration = info.configuration;
146
+
147
+ this._render();
148
+ }
149
+ }, {
150
+ key: "onConfigurationChanged",
151
+ value: function onConfigurationChanged(c) {
152
+ this._configuration = prepareCustomizationObject(c, this._model).configuration;
153
+
154
+ if (this._model) {
155
+ this.onModelChanged(this._model);
156
+ }
157
+
158
+ this._render();
159
+ }
160
+ }, {
161
+ key: "connectedCallback",
162
+ value: function connectedCallback() {
163
+ this.addEventListener(MODEL_UPDATED, this.onModelUpdated);
164
+
165
+ this._render();
166
+ }
167
+ }, {
168
+ key: "disconnectedCallback",
169
+ value: function disconnectedCallback() {
170
+ this.removeEventListener(MODEL_UPDATED, this.onModelUpdated);
171
+ }
172
+ }, {
173
+ key: "_render",
174
+ value: function _render() {
175
+ var element = /*#__PURE__*/_react["default"].createElement(_main["default"], {
176
+ model: this._model,
177
+ configuration: this._configuration,
178
+ onModelChanged: this.onModelChanged,
179
+ onConfigurationChanged: this.onConfigurationChanged
180
+ });
181
+
182
+ _reactDom["default"].render(element, this);
183
+ }
184
+ }]);
185
+ return EbsrConfigure;
186
+ }( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(HTMLElement));
187
+
188
+ exports["default"] = EbsrConfigure;
189
+ (0, _defineProperty2["default"])(EbsrConfigure, "createDefaultModel", function () {
190
+ var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
191
+ _ref2$partA = _ref2.partA,
192
+ partA = _ref2$partA === void 0 ? {} : _ref2$partA,
193
+ _ref2$partB = _ref2.partB,
194
+ partB = _ref2$partB === void 0 ? {} : _ref2$partB,
195
+ model = (0, _objectWithoutProperties2["default"])(_ref2, _excluded);
196
+
197
+ var defaults = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : modelDefault;
198
+ return _objectSpread(_objectSpread(_objectSpread({}, defaults), model), {}, {
199
+ partA: _objectSpread(_objectSpread(_objectSpread({}, defaults.partA), partA), {}, {
200
+ choicesLayout: partA.choicesLayout || partA.verticalMode === false && 'horizontal' || defaults.partA.choicesLayout
201
+ }),
202
+ partB: _objectSpread(_objectSpread(_objectSpread({}, defaults.partB), partB), {}, {
203
+ choicesLayout: partB.choicesLayout || partB.verticalMode === false && 'horizontal' || defaults.partB.choicesLayout
204
+ })
205
+ });
206
+ });
207
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.js"],"names":["MODEL_UPDATED","ModelUpdatedEvent","TYPE","MC_TAG_NAME","EbsrMCConfigure","MultipleChoiceConfigure","defineMultipleChoice","customElements","get","define","prepareCustomizationObject","config","model","configuration","sensibleDefaults","settingsPanelDisabled","modelDefault","EbsrConfigure","m","reset","_model","createDefaultModel","dispatchModelUpdated","_render","e","target","preventDefault","stopImmediatePropagation","id","getAttribute","update","dispatchEvent","_configuration","onConfigurationChanged","bind","resetValue","c","info","onModelChanged","addEventListener","onModelUpdated","removeEventListener","element","React","createElement","Main","ReactDOM","render","HTMLElement","partA","partB","defaults","choicesLayout","verticalMode"],"mappings":"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","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { ModelUpdatedEvent } from '@pie-framework/pie-configure-events';\nimport MultipleChoiceConfigure from '@pie-element/multiple-choice/configure/lib';\nimport defaults from 'lodash/defaults';\nimport Main from './main';\n\nimport sensibleDefaults from './defaults';\n\nconst MODEL_UPDATED = ModelUpdatedEvent.TYPE;\nconst MC_TAG_NAME = 'ebsr-multiple-choice-configure';\n\nclass EbsrMCConfigure extends MultipleChoiceConfigure { }\n\nconst defineMultipleChoice = () => {\n if (!customElements.get(MC_TAG_NAME)) {\n customElements.define(MC_TAG_NAME, EbsrMCConfigure);\n }\n};\n\ndefineMultipleChoice();\n\nconst prepareCustomizationObject = (config, model) => {\n const configuration = defaults(config, sensibleDefaults.configuration);\n configuration.settingsPanelDisabled = true;\n\n return {\n configuration,\n model\n };\n};\n\nconst { model: modelDefault } = sensibleDefaults || {};\n\nexport default class EbsrConfigure extends HTMLElement {\n static createDefaultModel = ({ partA = {}, partB = {}, ...model } = {}, defaults = modelDefault) => ({\n ...defaults,\n ...model,\n partA: {\n ...defaults.partA,\n ...partA,\n choicesLayout: partA.choicesLayout || (partA.verticalMode === false && 'horizontal') || defaults.partA.choicesLayout\n },\n partB: {\n ...defaults.partB,\n ...partB,\n choicesLayout: partB.choicesLayout || (partB.verticalMode === false && 'horizontal') || defaults.partB.choicesLayout\n },\n });\n\n constructor() {\n super();\n\n this._model = EbsrConfigure.createDefaultModel();\n\n this._configuration = sensibleDefaults.configuration;\n this.onConfigurationChanged = this.onConfigurationChanged.bind(this);\n }\n\n set model(m) {\n this._model = EbsrConfigure.createDefaultModel(m, this._model);\n\n this._render();\n }\n\n dispatchModelUpdated(reset) {\n const resetValue = !!reset;\n\n this.dispatchEvent(new ModelUpdatedEvent(this._model, resetValue));\n }\n\n onModelChanged = (m, reset) => {\n this._model = EbsrConfigure.createDefaultModel(m, this._model);\n\n this.dispatchModelUpdated(reset);\n this._render();\n\n };\n\n set configuration(c) {\n const info = prepareCustomizationObject(c, this._model);\n this._configuration = info.configuration;\n\n this._render();\n }\n\n onConfigurationChanged(c) {\n this._configuration = prepareCustomizationObject(c, this._model).configuration;\n\n if (this._model) {\n this.onModelChanged(this._model);\n }\n\n this._render();\n }\n\n onModelUpdated = e => {\n\n if (e.target === this) {\n return;\n }\n\n e.preventDefault();\n e.stopImmediatePropagation();\n\n const id = e.target && e.target.getAttribute('id');\n\n if (id) {\n if (e.update) {\n this._model[`part${id}`] = e.update;\n }\n\n this.dispatchEvent(new ModelUpdatedEvent(this._model));\n }\n };\n\n connectedCallback() {\n this.addEventListener(MODEL_UPDATED, this.onModelUpdated);\n this._render();\n }\n\n disconnectedCallback() {\n this.removeEventListener(MODEL_UPDATED, this.onModelUpdated);\n }\n\n _render() {\n let element = React.createElement(Main, {\n model: this._model,\n configuration: this._configuration,\n onModelChanged: this.onModelChanged,\n onConfigurationChanged: this.onConfigurationChanged,\n });\n ReactDOM.render(element, this);\n }\n}\n"],"file":"index.js"}
@@ -0,0 +1,284 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = exports.Main = void 0;
9
+
10
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
+
12
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
+
14
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
+
16
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
17
+
18
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
+
20
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
+
22
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
+
24
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
+
26
+ var _react = _interopRequireDefault(require("react"));
27
+
28
+ var _propTypes = _interopRequireDefault(require("prop-types"));
29
+
30
+ var _configUi = require("@pie-lib/config-ui");
31
+
32
+ var _styles = require("@material-ui/core/styles");
33
+
34
+ var _excluded = ["partA", "partB", "partialScoring", "scoringType"];
35
+
36
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
37
+
38
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
39
+
40
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
41
+
42
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
43
+
44
+ var Panel = _configUi.settings.Panel,
45
+ toggle = _configUi.settings.toggle,
46
+ radio = _configUi.settings.radio,
47
+ dropdown = _configUi.settings.dropdown;
48
+
49
+ var styles = function styles(theme) {
50
+ return {
51
+ design: {
52
+ paddingTop: theme.spacing.unit * 3
53
+ },
54
+ part: {
55
+ display: 'flex',
56
+ flexDirection: 'column',
57
+ padding: '16px 0 32px'
58
+ }
59
+ };
60
+ };
61
+
62
+ var Main = /*#__PURE__*/function (_React$Component) {
63
+ (0, _inherits2["default"])(Main, _React$Component);
64
+
65
+ var _super = _createSuper(Main);
66
+
67
+ function Main() {
68
+ var _this;
69
+
70
+ (0, _classCallCheck2["default"])(this, Main);
71
+
72
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
73
+ args[_key] = arguments[_key];
74
+ }
75
+
76
+ _this = _super.call.apply(_super, [this].concat(args));
77
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "removeExtraChoices", function (choices) {
78
+ var correctFound = false;
79
+ return (choices || []).map(function (choice) {
80
+ if (correctFound) {
81
+ choice.correct = false;
82
+ return choice;
83
+ }
84
+
85
+ if (choice.correct) {
86
+ correctFound = true;
87
+ }
88
+
89
+ return choice;
90
+ });
91
+ });
92
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onModelChanged", function (model, key) {
93
+ var onModelChanged = _this.props.onModelChanged;
94
+
95
+ if (key === 'partA.choiceMode' && model.partA.choiceMode === 'radio') {
96
+ model.partA.choices = _this.removeExtraChoices(model.partA.choices);
97
+ return onModelChanged(model, true);
98
+ }
99
+
100
+ if (key === 'partB.choiceMode' && model.partB.choiceMode === 'radio') {
101
+ model.partB.choices = _this.removeExtraChoices(model.partB.choices);
102
+ return onModelChanged(model, true);
103
+ }
104
+
105
+ return onModelChanged(model);
106
+ });
107
+ return _this;
108
+ }
109
+
110
+ (0, _createClass2["default"])(Main, [{
111
+ key: "render",
112
+ value: function render() {
113
+ var _ref3,
114
+ _this2 = this;
115
+
116
+ var _this$props = this.props,
117
+ classes = _this$props.classes,
118
+ model = _this$props.model,
119
+ configuration = _this$props.configuration,
120
+ onConfigurationChanged = _this$props.onConfigurationChanged;
121
+ var partLabelType = model.partLabelType,
122
+ modelPartA = model.partA,
123
+ modelPartB = model.partB;
124
+ var partA = configuration.partA,
125
+ partB = configuration.partB,
126
+ partialScoring = configuration.partialScoring,
127
+ scoringType = configuration.scoringType,
128
+ generalConfiguration = (0, _objectWithoutProperties2["default"])(configuration, _excluded);
129
+
130
+ var _ref = partA || {},
131
+ _ref$feedback = _ref.feedback,
132
+ feedbackA = _ref$feedback === void 0 ? {} : _ref$feedback,
133
+ _ref$choiceMode = _ref.choiceMode,
134
+ choiceModeA = _ref$choiceMode === void 0 ? {} : _ref$choiceMode,
135
+ _ref$choicePrefix = _ref.choicePrefix,
136
+ choicePrefixA = _ref$choicePrefix === void 0 ? {} : _ref$choicePrefix,
137
+ _ref$lockChoiceOrder = _ref.lockChoiceOrder,
138
+ lockChoiceOrderA = _ref$lockChoiceOrder === void 0 ? {} : _ref$lockChoiceOrder,
139
+ _ref$prompt = _ref.prompt,
140
+ promptA = _ref$prompt === void 0 ? {} : _ref$prompt,
141
+ _ref$teacherInstructi = _ref.teacherInstructions,
142
+ teacherInstructionsA = _ref$teacherInstructi === void 0 ? {} : _ref$teacherInstructi,
143
+ _ref$studentInstructi = _ref.studentInstructions,
144
+ studentInstructionsA = _ref$studentInstructi === void 0 ? {} : _ref$studentInstructi,
145
+ _ref$choicesLayout = _ref.choicesLayout,
146
+ choicesLayoutA = _ref$choicesLayout === void 0 ? {} : _ref$choicesLayout,
147
+ _ref$gridColumns = _ref.gridColumns,
148
+ gridColumnsA = _ref$gridColumns === void 0 ? {} : _ref$gridColumns,
149
+ _ref$rationale = _ref.rationale,
150
+ rationaleA = _ref$rationale === void 0 ? {} : _ref$rationale,
151
+ _ref$spellCheck = _ref.spellCheck,
152
+ spellCheckA = _ref$spellCheck === void 0 ? {} : _ref$spellCheck;
153
+
154
+ var _ref2 = partB || {},
155
+ _ref2$feedback = _ref2.feedback,
156
+ feedbackB = _ref2$feedback === void 0 ? {} : _ref2$feedback,
157
+ _ref2$choiceMode = _ref2.choiceMode,
158
+ choiceModeB = _ref2$choiceMode === void 0 ? {} : _ref2$choiceMode,
159
+ _ref2$choicePrefix = _ref2.choicePrefix,
160
+ choicePrefixB = _ref2$choicePrefix === void 0 ? {} : _ref2$choicePrefix,
161
+ _ref2$lockChoiceOrder = _ref2.lockChoiceOrder,
162
+ lockChoiceOrderB = _ref2$lockChoiceOrder === void 0 ? {} : _ref2$lockChoiceOrder,
163
+ _ref2$prompt = _ref2.prompt,
164
+ promptB = _ref2$prompt === void 0 ? {} : _ref2$prompt,
165
+ _ref2$teacherInstruct = _ref2.teacherInstructions,
166
+ teacherInstructionsB = _ref2$teacherInstruct === void 0 ? {} : _ref2$teacherInstruct,
167
+ _ref2$studentInstruct = _ref2.studentInstructions,
168
+ studentInstructionsB = _ref2$studentInstruct === void 0 ? {} : _ref2$studentInstruct,
169
+ _ref2$choicesLayout = _ref2.choicesLayout,
170
+ choicesLayoutB = _ref2$choicesLayout === void 0 ? {} : _ref2$choicesLayout,
171
+ _ref2$gridColumns = _ref2.gridColumns,
172
+ gridColumnsB = _ref2$gridColumns === void 0 ? {} : _ref2$gridColumns,
173
+ _ref2$rationale = _ref2.rationale,
174
+ rationaleB = _ref2$rationale === void 0 ? {} : _ref2$rationale,
175
+ _ref2$spellCheck = _ref2.spellCheck,
176
+ spellCheckB = _ref2$spellCheck === void 0 ? {} : _ref2$spellCheck;
177
+
178
+ var type = partLabelType || 'Numbers';
179
+ var typeIsNumber = type === 'Numbers';
180
+ var firstPart = "Part ".concat(typeIsNumber ? '1' : 'A');
181
+ var secondPart = "Part ".concat(typeIsNumber ? '2' : 'B');
182
+ var nrOfColumnsAvailable = {
183
+ partA: modelPartA.choices && modelPartA.choices.length ? Array.from({
184
+ length: modelPartA.choices.length
185
+ }, function (_, i) {
186
+ return "".concat(i + 1);
187
+ }) : [],
188
+ partB: modelPartB.choices && modelPartB.choices.length ? Array.from({
189
+ length: modelPartB.choices.length
190
+ }, function (_, i) {
191
+ return "".concat(i + 1);
192
+ }) : []
193
+ };
194
+ return /*#__PURE__*/_react["default"].createElement("div", {
195
+ className: classes.design
196
+ }, /*#__PURE__*/_react["default"].createElement(_configUi.layout.ConfigLayout, {
197
+ settings: /*#__PURE__*/_react["default"].createElement(Panel, {
198
+ model: model,
199
+ onChangeModel: this.onModelChanged,
200
+ configuration: configuration,
201
+ onChangeConfiguration: onConfigurationChanged,
202
+ groups: (_ref3 = {
203
+ 'Settings for both': {
204
+ partLabels: generalConfiguration.partLabels.settings && toggle(generalConfiguration.partLabels.label),
205
+ partLabelType: model.partLabels && dropdown('', ['Numbers', 'Letters']),
206
+ partialScoring: partialScoring.settings && toggle(partialScoring.label),
207
+ scoringType: scoringType.settings && radio(scoringType.label, ['auto', 'rubric'])
208
+ }
209
+ }, (0, _defineProperty2["default"])(_ref3, "Settings ".concat(firstPart), {
210
+ 'partA.choiceMode': choiceModeA.settings && radio(choiceModeA.label, ['checkbox', 'radio']),
211
+ 'partA.choicePrefix': choicePrefixA.settings && radio(choicePrefixA.label, ['numbers', 'letters']),
212
+ 'partA.lockChoiceOrder': lockChoiceOrderA.settings && toggle(lockChoiceOrderA.label),
213
+ 'partA.choicesLayout': choicesLayoutA.settings && dropdown(choicesLayoutA.label, ['vertical', 'grid', 'horizontal']),
214
+ 'partA.gridColumns': choicesLayoutA.settings && modelPartA.choicesLayout === 'grid' && nrOfColumnsAvailable.partA.length > 0 && dropdown(gridColumnsA.label, nrOfColumnsAvailable.partA)
215
+ }), (0, _defineProperty2["default"])(_ref3, "Properties ".concat(firstPart), {
216
+ 'partA.feedbackEnabled': feedbackA.settings && toggle(feedbackA.label),
217
+ 'partA.promptEnabled': promptA.settings && toggle(promptA.label),
218
+ 'partA.teacherInstructionsEnabled': teacherInstructionsA.settings && toggle(teacherInstructionsA.label),
219
+ 'partA.studentInstructionsEnabled': studentInstructionsA.settings && toggle(studentInstructionsA.label),
220
+ 'partA.rationaleEnabled': rationaleA.settings && toggle(rationaleA.label),
221
+ 'partA.spellCheckEnabled': spellCheckA.settings && toggle(spellCheckA.label)
222
+ }), (0, _defineProperty2["default"])(_ref3, "Settings ".concat(secondPart), {
223
+ 'partB.choiceMode': choiceModeB.settings && radio(choiceModeB.label, ['checkbox', 'radio']),
224
+ 'partB.choicePrefix': choicePrefixB.settings && radio(choicePrefixB.label, ['numbers', 'letters']),
225
+ 'partB.lockChoiceOrder': lockChoiceOrderB.settings && toggle(lockChoiceOrderB.label),
226
+ 'partB.choicesLayout': choicesLayoutB.settings && dropdown(choicesLayoutB.label, ['vertical', 'grid', 'horizontal']),
227
+ 'partB.gridColumns': choicesLayoutB.settings && modelPartB.choicesLayout === 'grid' && nrOfColumnsAvailable.partB.length > 0 && dropdown(gridColumnsB.label, nrOfColumnsAvailable.partB)
228
+ }), (0, _defineProperty2["default"])(_ref3, "Properties ".concat(secondPart), {
229
+ 'partB.feedbackEnabled': feedbackB.settings && toggle(feedbackB.label),
230
+ 'partB.promptEnabled': promptB.settings && toggle(promptB.label),
231
+ 'partB.teacherInstructionsEnabled': teacherInstructionsB.settings && toggle(teacherInstructionsB.label),
232
+ 'partB.studentInstructionsEnabled': studentInstructionsB.settings && toggle(studentInstructionsB.label),
233
+ 'partB.rationaleEnabled': rationaleB.settings && toggle(rationaleB.label),
234
+ 'partB.spellCheckEnabled': spellCheckB.settings && toggle(spellCheckB.label)
235
+ }), _ref3)
236
+ })
237
+ }, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("div", {
238
+ className: classes.part
239
+ }, model.partLabels && /*#__PURE__*/_react["default"].createElement("p", null, firstPart), /*#__PURE__*/_react["default"].createElement("ebsr-multiple-choice-configure", {
240
+ id: "A",
241
+ key: "partA",
242
+ ref: function ref(_ref4) {
243
+ if (_ref4) {
244
+ // do not use destructuring to get model from props
245
+ _this2.partA = _ref4;
246
+ _this2.partA._model = _objectSpread(_objectSpread({}, _this2.props.model.partA), {}, {
247
+ errors: _this2.props.model.errors && _this2.props.model.errors.partA || {}
248
+ });
249
+ _this2.partA.configuration = _objectSpread(_objectSpread({}, partA), generalConfiguration);
250
+ }
251
+ }
252
+ })), /*#__PURE__*/_react["default"].createElement("div", {
253
+ className: classes.part
254
+ }, model.partLabels && /*#__PURE__*/_react["default"].createElement("p", null, secondPart), /*#__PURE__*/_react["default"].createElement("ebsr-multiple-choice-configure", {
255
+ id: "B",
256
+ key: "partB",
257
+ ref: function ref(_ref5) {
258
+ if (_ref5) {
259
+ // do not use destructuring to get model from props
260
+ _this2.partB = _ref5;
261
+ _this2.partB._model = _objectSpread(_objectSpread({}, _this2.props.model.partB), {}, {
262
+ errors: _this2.props.model.errors && _this2.props.model.errors.partB || {}
263
+ });
264
+ _this2.partB.configuration = _objectSpread(_objectSpread({}, partB), generalConfiguration);
265
+ }
266
+ }
267
+ })))));
268
+ }
269
+ }]);
270
+ return Main;
271
+ }(_react["default"].Component);
272
+
273
+ exports.Main = Main;
274
+ (0, _defineProperty2["default"])(Main, "propTypes", {
275
+ classes: _propTypes["default"].object,
276
+ configuration: _propTypes["default"].object,
277
+ model: _propTypes["default"].object,
278
+ onModelChanged: _propTypes["default"].func,
279
+ onConfigurationChanged: _propTypes["default"].func
280
+ });
281
+ var Styled = (0, _styles.withStyles)(styles)(Main);
282
+ var _default = Styled;
283
+ exports["default"] = _default;
284
+ //# sourceMappingURL=main.js.map