@pie-element/ebsr 12.3.4-next.3 → 13.0.0-beta.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 (101) hide show
  1. package/configure/lib/defaults.js +23 -36
  2. package/configure/lib/defaults.js.map +1 -1
  3. package/configure/lib/index.js +114 -202
  4. package/configure/lib/index.js.map +1 -1
  5. package/configure/lib/main.js +188 -271
  6. package/configure/lib/main.js.map +1 -1
  7. package/configure/node_modules/@pie-element/multiple-choice/CHANGELOG.json +1972 -0
  8. package/configure/node_modules/@pie-element/multiple-choice/CHANGELOG.md +4213 -0
  9. package/configure/node_modules/@pie-element/multiple-choice/PRINT.md +35 -0
  10. package/configure/node_modules/@pie-element/multiple-choice/README.md +56 -0
  11. package/configure/node_modules/@pie-element/multiple-choice/choice.png +0 -0
  12. package/configure/node_modules/@pie-element/multiple-choice/configure/CHANGELOG.json +1387 -0
  13. package/configure/node_modules/@pie-element/multiple-choice/configure/CHANGELOG.md +3351 -0
  14. package/configure/node_modules/@pie-element/multiple-choice/configure/lib/__tests__/root.test.js +248 -0
  15. package/configure/node_modules/@pie-element/multiple-choice/configure/lib/defaults.js +200 -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 +211 -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 +477 -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 +22 -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 +2316 -0
  26. package/configure/node_modules/@pie-element/multiple-choice/controller/lib/__tests__/index.test.js +520 -0
  27. package/configure/node_modules/@pie-element/multiple-choice/controller/lib/__tests__/utils.test.js +8 -0
  28. package/configure/node_modules/@pie-element/multiple-choice/controller/lib/defaults.js +33 -0
  29. package/configure/node_modules/@pie-element/multiple-choice/controller/lib/defaults.js.map +1 -0
  30. package/configure/node_modules/@pie-element/multiple-choice/controller/lib/index.js +251 -0
  31. package/configure/node_modules/@pie-element/multiple-choice/controller/lib/index.js.map +1 -0
  32. package/configure/node_modules/@pie-element/multiple-choice/controller/lib/utils.js +16 -0
  33. package/configure/node_modules/@pie-element/multiple-choice/controller/lib/utils.js.map +1 -0
  34. package/configure/node_modules/@pie-element/multiple-choice/controller/package.json +15 -0
  35. package/configure/node_modules/@pie-element/multiple-choice/docs/config-schema.json +2993 -0
  36. package/configure/node_modules/@pie-element/multiple-choice/docs/config-schema.json.md +2217 -0
  37. package/configure/node_modules/@pie-element/multiple-choice/docs/demo/config.js +8 -0
  38. package/configure/node_modules/@pie-element/multiple-choice/docs/demo/generate.js +61 -0
  39. package/configure/node_modules/@pie-element/multiple-choice/docs/demo/index.html +1 -0
  40. package/configure/node_modules/@pie-element/multiple-choice/docs/demo/pie.manifest.json +11 -0
  41. package/configure/node_modules/@pie-element/multiple-choice/docs/demo/session.js +7 -0
  42. package/configure/node_modules/@pie-element/multiple-choice/docs/pie-schema.json +1332 -0
  43. package/configure/node_modules/@pie-element/multiple-choice/docs/pie-schema.json.md +1015 -0
  44. package/configure/node_modules/@pie-element/multiple-choice/lib/__tests__/choice-input-test.js +117 -0
  45. package/configure/node_modules/@pie-element/multiple-choice/lib/__tests__/index-test.js +151 -0
  46. package/configure/node_modules/@pie-element/multiple-choice/lib/__tests__/key-events-test.js +95 -0
  47. package/configure/node_modules/@pie-element/multiple-choice/lib/__tests__/multiple-choice-test.js +223 -0
  48. package/configure/node_modules/@pie-element/multiple-choice/lib/__tests__/session-updater-test.js +70 -0
  49. package/configure/node_modules/@pie-element/multiple-choice/lib/choice-input.js +370 -0
  50. package/configure/node_modules/@pie-element/multiple-choice/lib/choice-input.js.map +1 -0
  51. package/configure/node_modules/@pie-element/multiple-choice/lib/choice.js +197 -0
  52. package/configure/node_modules/@pie-element/multiple-choice/lib/choice.js.map +1 -0
  53. package/configure/node_modules/@pie-element/multiple-choice/lib/feedback-tick.js +130 -0
  54. package/configure/node_modules/@pie-element/multiple-choice/lib/feedback-tick.js.map +1 -0
  55. package/configure/node_modules/@pie-element/multiple-choice/lib/index.js +292 -0
  56. package/configure/node_modules/@pie-element/multiple-choice/lib/index.js.map +1 -0
  57. package/configure/node_modules/@pie-element/multiple-choice/lib/main.js +54 -0
  58. package/configure/node_modules/@pie-element/multiple-choice/lib/main.js.map +1 -0
  59. package/configure/node_modules/@pie-element/multiple-choice/lib/multiple-choice.js +386 -0
  60. package/configure/node_modules/@pie-element/multiple-choice/lib/multiple-choice.js.map +1 -0
  61. package/configure/node_modules/@pie-element/multiple-choice/lib/print.js +92 -0
  62. package/configure/node_modules/@pie-element/multiple-choice/lib/print.js.map +1 -0
  63. package/configure/node_modules/@pie-element/multiple-choice/lib/session-updater.js +37 -0
  64. package/configure/node_modules/@pie-element/multiple-choice/lib/session-updater.js.map +1 -0
  65. package/configure/node_modules/@pie-element/multiple-choice/package.json +39 -0
  66. package/configure/package.json +9 -6
  67. package/configure/src/__tests__/index.test.js +99 -108
  68. package/configure/src/index.js +13 -6
  69. package/configure/src/main.jsx +14 -18
  70. package/controller/lib/defaults.js +20 -32
  71. package/controller/lib/defaults.js.map +1 -1
  72. package/controller/lib/index.js +224 -349
  73. package/controller/lib/index.js.map +1 -1
  74. package/controller/lib/utils.js +4 -18
  75. package/controller/lib/utils.js.map +1 -1
  76. package/controller/package.json +3 -3
  77. package/lib/index.js +113 -181
  78. package/lib/index.js.map +1 -1
  79. package/lib/print.js +120 -204
  80. package/lib/print.js.map +1 -1
  81. package/package.json +5 -13
  82. package/src/__tests__/index.test.js +18 -5
  83. package/configure/src/__tests__/__snapshots__/index.test.js.snap +0 -83
  84. package/esm/configure.js +0 -12003
  85. package/esm/configure.js.map +0 -1
  86. package/esm/controller.js +0 -3358
  87. package/esm/controller.js.map +0 -1
  88. package/esm/element.js +0 -2203
  89. package/esm/element.js.map +0 -1
  90. package/esm/package.json +0 -3
  91. package/esm/print.js +0 -4092
  92. package/esm/print.js.map +0 -1
  93. package/module/configure.js +0 -1
  94. package/module/controller.js +0 -6469
  95. package/module/demo.js +0 -77
  96. package/module/element.js +0 -1
  97. package/module/index.html +0 -21
  98. package/module/manifest.json +0 -14
  99. package/module/print-demo.js +0 -115
  100. package/module/print.html +0 -18
  101. package/module/print.js +0 -1
@@ -1,21 +1,12 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
- exports["default"] = void 0;
9
-
10
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
7
+ exports.default = void 0;
12
8
  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 = {
9
+ const defaultConfig = {
19
10
  addChoiceButton: {
20
11
  settings: true,
21
12
  label: 'Add a Choice'
@@ -154,28 +145,25 @@ var defaultConfig = {
154
145
  }
155
146
  }
156
147
  };
157
-
158
- var partModel = function partModel(base) {
159
- return _objectSpread({
160
- choiceMode: 'radio',
161
- choicePrefix: 'letters',
162
- choices: [],
163
- choicesLayout: 'vertical',
164
- feedbackEnabled: false,
165
- gridColumns: 2,
166
- prompt: '',
167
- promptEnabled: true,
168
- rationale: '',
169
- rationaleEnabled: true,
170
- spellCheckEnabled: true,
171
- studentInstructionsEnabled: true,
172
- teacherInstructions: '',
173
- teacherInstructionsEnabled: true,
174
- toolbarEditorPosition: 'bottom'
175
- }, base);
176
- };
177
-
178
- var _default = {
148
+ const partModel = base => ({
149
+ choiceMode: 'radio',
150
+ choicePrefix: 'letters',
151
+ choices: [],
152
+ choicesLayout: 'vertical',
153
+ feedbackEnabled: false,
154
+ gridColumns: 2,
155
+ prompt: '',
156
+ promptEnabled: true,
157
+ rationale: '',
158
+ rationaleEnabled: true,
159
+ spellCheckEnabled: true,
160
+ studentInstructionsEnabled: true,
161
+ teacherInstructions: '',
162
+ teacherInstructionsEnabled: true,
163
+ toolbarEditorPosition: 'bottom',
164
+ ...base
165
+ });
166
+ var _default = exports.default = {
179
167
  model: {
180
168
  partLabels: true,
181
169
  partLabelType: 'Letters',
@@ -215,8 +203,8 @@ var _default = {
215
203
  settings: false,
216
204
  label: 'Scoring Type'
217
205
  },
218
- partA: (0, _cloneDeep["default"])(defaultConfig),
219
- partB: (0, _cloneDeep["default"])(defaultConfig),
206
+ partA: (0, _cloneDeep.default)(defaultConfig),
207
+ partB: (0, _cloneDeep.default)(defaultConfig),
220
208
  partLabels: {
221
209
  settings: true,
222
210
  label: 'Part Labels'
@@ -233,5 +221,4 @@ var _default = {
233
221
  }
234
222
  }
235
223
  };
236
- exports["default"] = _default;
237
224
  //# sourceMappingURL=defaults.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/defaults.js"],"names":["defaultConfig","addChoiceButton","settings","label","choiceMode","choicePrefix","deleteChoice","feedback","lockChoiceOrder","prompt","inputConfiguration","audio","disabled","video","image","required","rationale","settingsPanelDisabled","studentInstructions","teacherInstructions","choicesLayout","gridColumns","spellCheck","enabled","maxImageWidth","choices","maxImageHeight","mathMlOptions","mmlOutput","mmlEditing","baseInputConfiguration","textAlign","showParagraphs","separateParagraphs","partModel","base","feedbackEnabled","promptEnabled","rationaleEnabled","spellCheckEnabled","studentInstructionsEnabled","teacherInstructionsEnabled","toolbarEditorPosition","model","partLabels","partLabelType","partA","partB","configuration","partialScoring","scoringType","language","languageChoices","options"],"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 inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n required: false,\n },\n rationale: {\n settings: true,\n label: 'Rationale',\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n required: false,\n },\n settingsPanelDisabled: true,\n studentInstructions: {\n settings: false,\n label: 'Student Instructions',\n },\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions',\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n required: false,\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 maxImageWidth: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 636,\n choices: 636,\n },\n maxImageHeight: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n choices: 300,\n },\n mathMlOptions: {\n mmlOutput: false,\n mmlEditing: false,\n },\n choices: {\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n },\n baseInputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n textAlign: { disabled: true },\n showParagraphs: { disabled: false },\n separateParagraphs: { disabled: true },\n },\n};\n\nconst partModel = (base) => ({\n choiceMode: 'radio',\n choicePrefix: 'letters',\n choices: [],\n choicesLayout: 'vertical',\n feedbackEnabled: false,\n gridColumns: 2,\n prompt: '',\n promptEnabled: true,\n rationale: '',\n rationaleEnabled: true,\n spellCheckEnabled: true,\n studentInstructionsEnabled: true,\n teacherInstructions: '',\n teacherInstructionsEnabled: true,\n toolbarEditorPosition: 'bottom',\n ...base,\n});\n\nexport default {\n model: {\n partLabels: true,\n partLabelType: 'Letters',\n // partialScoring: false,\n partA: partModel(),\n partB: partModel(),\n },\n configuration: {\n baseInputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n textAlign: { disabled: true },\n showParagraphs: { disabled: false },\n separateParagraphs: { disabled: true },\n },\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: false,\n language: {\n settings: false,\n label: 'Specify Language',\n enabled: false,\n },\n languageChoices: {\n label: 'Language Choices',\n options: [],\n },\n },\n};\n"],"file":"defaults.js"}
1
+ {"version":3,"file":"defaults.js","names":["_cloneDeep","_interopRequireDefault","require","defaultConfig","addChoiceButton","settings","label","choiceMode","choicePrefix","deleteChoice","feedback","lockChoiceOrder","prompt","inputConfiguration","audio","disabled","video","image","required","rationale","settingsPanelDisabled","studentInstructions","teacherInstructions","choicesLayout","gridColumns","spellCheck","enabled","maxImageWidth","choices","maxImageHeight","mathMlOptions","mmlOutput","mmlEditing","baseInputConfiguration","textAlign","showParagraphs","separateParagraphs","partModel","base","feedbackEnabled","promptEnabled","rationaleEnabled","spellCheckEnabled","studentInstructionsEnabled","teacherInstructionsEnabled","toolbarEditorPosition","_default","exports","default","model","partLabels","partLabelType","partA","partB","configuration","partialScoring","scoringType","cloneDeep","language","languageChoices","options"],"sources":["../src/defaults.js"],"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 inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n required: false,\n },\n rationale: {\n settings: true,\n label: 'Rationale',\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n required: false,\n },\n settingsPanelDisabled: true,\n studentInstructions: {\n settings: false,\n label: 'Student Instructions',\n },\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions',\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n required: false,\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 maxImageWidth: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 636,\n choices: 636,\n },\n maxImageHeight: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n choices: 300,\n },\n mathMlOptions: {\n mmlOutput: false,\n mmlEditing: false,\n },\n choices: {\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n },\n baseInputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n textAlign: { disabled: true },\n showParagraphs: { disabled: false },\n separateParagraphs: { disabled: true },\n },\n};\n\nconst partModel = (base) => ({\n choiceMode: 'radio',\n choicePrefix: 'letters',\n choices: [],\n choicesLayout: 'vertical',\n feedbackEnabled: false,\n gridColumns: 2,\n prompt: '',\n promptEnabled: true,\n rationale: '',\n rationaleEnabled: true,\n spellCheckEnabled: true,\n studentInstructionsEnabled: true,\n teacherInstructions: '',\n teacherInstructionsEnabled: true,\n toolbarEditorPosition: 'bottom',\n ...base,\n});\n\nexport default {\n model: {\n partLabels: true,\n partLabelType: 'Letters',\n // partialScoring: false,\n partA: partModel(),\n partB: partModel(),\n },\n configuration: {\n baseInputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n textAlign: { disabled: true },\n showParagraphs: { disabled: false },\n separateParagraphs: { disabled: true },\n },\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: false,\n language: {\n settings: false,\n label: 'Specify Language',\n enabled: false,\n },\n languageChoices: {\n label: 'Language Choices',\n options: [],\n },\n },\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,242 +1,154 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
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
-
7
+ exports.default = void 0;
16
8
  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
9
  var _react = _interopRequireDefault(require("react"));
29
-
30
- var _reactDom = _interopRequireDefault(require("react-dom"));
31
-
10
+ var _client = require("react-dom/client");
32
11
  var _pieConfigureEvents = require("@pie-framework/pie-configure-events");
33
-
34
12
  var _lib = _interopRequireDefault(require("@pie-element/multiple-choice/configure/lib"));
35
-
36
13
  var _defaults = _interopRequireDefault(require("lodash/defaults"));
37
-
38
14
  var _main = _interopRequireDefault(require("./main"));
39
-
40
15
  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() {
16
+ const MODEL_UPDATED = _pieConfigureEvents.ModelUpdatedEvent.TYPE;
17
+ const MC_TAG_NAME = 'ebsr-multiple-choice-configure';
18
+ class EbsrMCConfigure extends _lib.default {}
19
+ const defineMultipleChoice = () => {
69
20
  if (!customElements.get(MC_TAG_NAME)) {
70
21
  customElements.define(MC_TAG_NAME, EbsrMCConfigure);
71
22
  }
72
23
  };
73
-
74
24
  defineMultipleChoice();
75
-
76
- var prepareCustomizationObject = function prepareCustomizationObject(config, model) {
77
- var configuration = (0, _defaults["default"])(config, _defaults2["default"].configuration);
25
+ const prepareCustomizationObject = (config, model) => {
26
+ const configuration = (0, _defaults.default)(config, _defaults2.default.configuration);
78
27
  return {
79
- configuration: configuration,
80
- model: model
28
+ configuration,
29
+ model
81
30
  };
82
31
  };
83
-
84
- var _ref = _defaults2["default"] || {},
85
- modelDefault = _ref.model;
86
-
87
- var EbsrConfigure = /*#__PURE__*/function (_HTMLElement) {
88
- (0, _inherits2["default"])(EbsrConfigure, _HTMLElement);
89
-
90
- var _super2 = _createSuper(EbsrConfigure);
91
-
92
- function EbsrConfigure() {
93
- var _this;
94
-
95
- (0, _classCallCheck2["default"])(this, EbsrConfigure);
96
- _this = _super2.call(this);
97
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onModelChanged", function (m, reset) {
98
- _this._model = EbsrConfigure.createDefaultModel(m, _this._model);
99
-
100
- _this.dispatchModelUpdated(reset);
101
-
102
- _this._render();
32
+ const {
33
+ model: modelDefault
34
+ } = _defaults2.default || {};
35
+ class EbsrConfigure extends HTMLElement {
36
+ constructor() {
37
+ super();
38
+ (0, _defineProperty2.default)(this, "onModelChanged", (m, reset) => {
39
+ this._model = EbsrConfigure.createDefaultModel(m, this._model);
40
+ this.dispatchModelUpdated(reset);
41
+ this._render();
103
42
  });
104
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onModelUpdated", function (e) {
105
- if (e.target === (0, _assertThisInitialized2["default"])(_this)) {
43
+ (0, _defineProperty2.default)(this, "onModelUpdated", e => {
44
+ if (e.target === this) {
106
45
  return;
107
46
  }
108
-
109
47
  e.preventDefault();
110
48
  e.stopImmediatePropagation();
111
- var id = e.target && e.target.getAttribute('id');
112
-
49
+ const id = e.target && e.target.getAttribute('id');
113
50
  if (id) {
114
51
  if (e.update) {
115
- _this._model["part".concat(id)] = e.update;
52
+ this._model[`part${id}`] = e.update;
116
53
  }
117
-
118
- _this.dispatchEvent(new _pieConfigureEvents.ModelUpdatedEvent(_this._model));
54
+ this.dispatchEvent(new _pieConfigureEvents.ModelUpdatedEvent(this._model));
119
55
  }
120
56
  });
121
- _this._model = EbsrConfigure.createDefaultModel();
122
- _this._configuration = _defaults2["default"].configuration;
123
- _this.onConfigurationChanged = _this.onConfigurationChanged.bind((0, _assertThisInitialized2["default"])(_this));
124
- return _this;
57
+ this._root = null;
58
+ this._model = EbsrConfigure.createDefaultModel();
59
+ this._configuration = _defaults2.default.configuration;
60
+ this.onConfigurationChanged = this.onConfigurationChanged.bind(this);
125
61
  }
126
-
127
- (0, _createClass2["default"])(EbsrConfigure, [{
128
- key: "model",
129
- set: function set(m) {
130
- this._model = EbsrConfigure.createDefaultModel(m, this._model);
131
-
132
- this._render();
133
- }
134
- }, {
135
- key: "dispatchModelUpdated",
136
- value: function dispatchModelUpdated(reset) {
137
- var resetValue = !!reset;
138
- this.dispatchEvent(new _pieConfigureEvents.ModelUpdatedEvent(this._model, resetValue));
139
- }
140
- }, {
141
- key: "configuration",
142
- set: function set(c) {
143
- var _newConfiguration$lan,
144
- _this2 = this;
145
-
146
- var info = prepareCustomizationObject(c, this._model);
147
-
148
- var newConfiguration = _objectSpread(_objectSpread({}, _defaults2["default"].configuration), info.configuration);
149
-
150
- this._configuration = newConfiguration; // if language:enabled is true, then the corresponding default item model should include a language value;
151
- // if it is false, then the language field should be omitted from the item model.
152
- // if a default item model includes a language value (e.g., en_US) and the corresponding authoring view settings have language:settings = true,
153
- // then (a) language:enabled should also be true, and (b) that default language value should be represented in languageChoices[] (as a key).
154
-
155
- if (newConfiguration !== null && newConfiguration !== void 0 && (_newConfiguration$lan = newConfiguration.language) !== null && _newConfiguration$lan !== void 0 && _newConfiguration$lan.enabled) {
156
- var _newConfiguration$lan2, _newConfiguration$lan3;
157
-
158
- if (newConfiguration !== null && newConfiguration !== void 0 && (_newConfiguration$lan2 = newConfiguration.languageChoices) !== null && _newConfiguration$lan2 !== void 0 && (_newConfiguration$lan3 = _newConfiguration$lan2.options) !== null && _newConfiguration$lan3 !== void 0 && _newConfiguration$lan3.length) {
159
- this._model.language = newConfiguration === null || newConfiguration === void 0 ? void 0 : newConfiguration.languageChoices.options[0].value;
160
- }
161
- } else if (newConfiguration.language.settings && this._model.language) {
162
- this._configuration.language.enabled = true;
163
-
164
- if (!this._configuration.languageChoices.options || !this._configuration.languageChoices.options.length) {
165
- this._configuration.languageChoices.options = [];
166
- } // check if the language is already included in the languageChoices.options array
167
- // and if not, then add it.
168
-
169
-
170
- if (!this._configuration.languageChoices.options.find(function (option) {
171
- return option.value === _this2._model.language;
172
- })) {
173
- this._configuration.languageChoices.options.push({
174
- value: this._model.language,
175
- label: this._model.language
176
- });
177
- }
178
- } else {
179
- delete this._model.language;
62
+ set model(m) {
63
+ this._model = EbsrConfigure.createDefaultModel(m, this._model);
64
+ this._render();
65
+ }
66
+ dispatchModelUpdated(reset) {
67
+ const resetValue = !!reset;
68
+ this.dispatchEvent(new _pieConfigureEvents.ModelUpdatedEvent(this._model, resetValue));
69
+ }
70
+ set configuration(c) {
71
+ const info = prepareCustomizationObject(c, this._model);
72
+ const newConfiguration = {
73
+ ..._defaults2.default.configuration,
74
+ ...info.configuration
75
+ };
76
+ this._configuration = newConfiguration;
77
+
78
+ // if language:enabled is true, then the corresponding default item model should include a language value;
79
+ // if it is false, then the language field should be omitted from the item model.
80
+ // if a default item model includes a language value (e.g., en_US) and the corresponding authoring view settings have language:settings = true,
81
+ // then (a) language:enabled should also be true, and (b) that default language value should be represented in languageChoices[] (as a key).
82
+ if (newConfiguration?.language?.enabled) {
83
+ if (newConfiguration?.languageChoices?.options?.length) {
84
+ this._model.language = newConfiguration?.languageChoices.options[0].value;
180
85
  }
181
-
182
- this._render();
183
- }
184
- }, {
185
- key: "onConfigurationChanged",
186
- value: function onConfigurationChanged(c) {
187
- this._configuration = prepareCustomizationObject(c, this._model).configuration;
188
-
189
- if (this._model) {
190
- this.onModelChanged(this._model);
86
+ } else if (newConfiguration.language.settings && this._model.language) {
87
+ this._configuration.language.enabled = true;
88
+ if (!this._configuration.languageChoices.options || !this._configuration.languageChoices.options.length) {
89
+ this._configuration.languageChoices.options = [];
191
90
  }
192
91
 
193
- this._render();
92
+ // check if the language is already included in the languageChoices.options array
93
+ // and if not, then add it.
94
+ if (!this._configuration.languageChoices.options.find(option => option.value === this._model.language)) {
95
+ this._configuration.languageChoices.options.push({
96
+ value: this._model.language,
97
+ label: this._model.language
98
+ });
99
+ }
100
+ } else {
101
+ delete this._model.language;
194
102
  }
195
- }, {
196
- key: "connectedCallback",
197
- value: function connectedCallback() {
198
- this.addEventListener(MODEL_UPDATED, this.onModelUpdated);
199
-
200
- this._render();
103
+ this._render();
104
+ }
105
+ onConfigurationChanged(c) {
106
+ this._configuration = prepareCustomizationObject(c, this._model).configuration;
107
+ if (this._model) {
108
+ this.onModelChanged(this._model);
201
109
  }
202
- }, {
203
- key: "disconnectedCallback",
204
- value: function disconnectedCallback() {
205
- this.removeEventListener(MODEL_UPDATED, this.onModelUpdated);
110
+ this._render();
111
+ }
112
+ connectedCallback() {
113
+ this.addEventListener(MODEL_UPDATED, this.onModelUpdated);
114
+ this._render();
115
+ }
116
+ _render() {
117
+ let element = /*#__PURE__*/_react.default.createElement(_main.default, {
118
+ model: this._model,
119
+ configuration: this._configuration,
120
+ onModelChanged: this.onModelChanged,
121
+ onConfigurationChanged: this.onConfigurationChanged
122
+ });
123
+ if (!this._root) {
124
+ this._root = (0, _client.createRoot)(this);
206
125
  }
207
- }, {
208
- key: "_render",
209
- value: function _render() {
210
- var element = /*#__PURE__*/_react["default"].createElement(_main["default"], {
211
- model: this._model,
212
- configuration: this._configuration,
213
- onModelChanged: this.onModelChanged,
214
- onConfigurationChanged: this.onConfigurationChanged
215
- });
216
-
217
- _reactDom["default"].render(element, this);
126
+ this._root.render(element);
127
+ }
128
+ disconnectedCallback() {
129
+ this.removeEventListener(MODEL_UPDATED, this.onModelUpdated);
130
+ if (this._root) {
131
+ this._root.unmount();
218
132
  }
219
- }]);
220
- return EbsrConfigure;
221
- }( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(HTMLElement));
222
-
223
- exports["default"] = EbsrConfigure;
224
- (0, _defineProperty2["default"])(EbsrConfigure, "createDefaultModel", function () {
225
- var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
226
- _ref2$partA = _ref2.partA,
227
- partA = _ref2$partA === void 0 ? {} : _ref2$partA,
228
- _ref2$partB = _ref2.partB,
229
- partB = _ref2$partB === void 0 ? {} : _ref2$partB,
230
- model = (0, _objectWithoutProperties2["default"])(_ref2, _excluded);
231
-
232
- var defaults = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : modelDefault;
233
- return _objectSpread(_objectSpread(_objectSpread({}, defaults), model), {}, {
234
- partA: _objectSpread(_objectSpread(_objectSpread({}, defaults.partA), partA), {}, {
235
- choicesLayout: partA.choicesLayout || partA.verticalMode === false && 'horizontal' || defaults.partA.choicesLayout
236
- }),
237
- partB: _objectSpread(_objectSpread(_objectSpread({}, defaults.partB), partB), {}, {
238
- choicesLayout: partB.choicesLayout || partB.verticalMode === false && 'horizontal' || defaults.partB.choicesLayout
239
- })
240
- });
241
- });
133
+ }
134
+ }
135
+ exports.default = EbsrConfigure;
136
+ (0, _defineProperty2.default)(EbsrConfigure, "createDefaultModel", ({
137
+ partA = {},
138
+ partB = {},
139
+ ...model
140
+ } = {}, defaults = modelDefault) => ({
141
+ ...defaults,
142
+ ...model,
143
+ partA: {
144
+ ...defaults.partA,
145
+ ...partA,
146
+ choicesLayout: partA.choicesLayout || partA.verticalMode === false && 'horizontal' || defaults.partA.choicesLayout
147
+ },
148
+ partB: {
149
+ ...defaults.partB,
150
+ ...partB,
151
+ choicesLayout: partB.choicesLayout || partB.verticalMode === false && 'horizontal' || defaults.partB.choicesLayout
152
+ }
153
+ }));
242
154
  //# sourceMappingURL=index.js.map
@@ -1 +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","modelDefault","EbsrConfigure","m","reset","_model","createDefaultModel","dispatchModelUpdated","_render","e","target","preventDefault","stopImmediatePropagation","id","getAttribute","update","dispatchEvent","_configuration","onConfigurationChanged","bind","resetValue","c","info","newConfiguration","language","enabled","languageChoices","options","length","value","settings","find","option","push","label","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 {}\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\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:\n partA.choicesLayout || (partA.verticalMode === false && 'horizontal') || defaults.partA.choicesLayout,\n },\n partB: {\n ...defaults.partB,\n ...partB,\n choicesLayout:\n 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 set configuration(c) {\n const info = prepareCustomizationObject(c, this._model);\n\n const newConfiguration = {\n ...sensibleDefaults.configuration,\n ...info.configuration,\n };\n\n this._configuration = newConfiguration;\n\n // if language:enabled is true, then the corresponding default item model should include a language value;\n // if it is false, then the language field should be omitted from the item model.\n // if a default item model includes a language value (e.g., en_US) and the corresponding authoring view settings have language:settings = true,\n // then (a) language:enabled should also be true, and (b) that default language value should be represented in languageChoices[] (as a key).\n if (newConfiguration?.language?.enabled) {\n if (newConfiguration?.languageChoices?.options?.length) {\n this._model.language = newConfiguration?.languageChoices.options[0].value;\n }\n } else if (newConfiguration.language.settings && this._model.language) {\n this._configuration.language.enabled = true;\n\n if (!this._configuration.languageChoices.options || !this._configuration.languageChoices.options.length) {\n this._configuration.languageChoices.options = [];\n }\n\n // check if the language is already included in the languageChoices.options array\n // and if not, then add it.\n if (!this._configuration.languageChoices.options.find(option => option.value === this._model.language)) {\n this._configuration.languageChoices.options.push({\n value: this._model.language,\n label: this._model.language,\n });\n }\n } else {\n delete this._model.language;\n }\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 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\n ReactDOM.render(element, this);\n }\n}\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_client","_pieConfigureEvents","_lib","_defaults","_main","_defaults2","MODEL_UPDATED","ModelUpdatedEvent","TYPE","MC_TAG_NAME","EbsrMCConfigure","MultipleChoiceConfigure","defineMultipleChoice","customElements","get","define","prepareCustomizationObject","config","model","configuration","defaults","sensibleDefaults","modelDefault","EbsrConfigure","HTMLElement","constructor","_defineProperty2","default","m","reset","_model","createDefaultModel","dispatchModelUpdated","_render","e","target","preventDefault","stopImmediatePropagation","id","getAttribute","update","dispatchEvent","_root","_configuration","onConfigurationChanged","bind","resetValue","c","info","newConfiguration","language","enabled","languageChoices","options","length","value","settings","find","option","push","label","onModelChanged","connectedCallback","addEventListener","onModelUpdated","element","React","createElement","Main","createRoot","render","disconnectedCallback","removeEventListener","unmount","exports","partA","partB","choicesLayout","verticalMode"],"sources":["../src/index.js"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\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 {}\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\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:\n partA.choicesLayout || (partA.verticalMode === false && 'horizontal') || defaults.partA.choicesLayout,\n },\n partB: {\n ...defaults.partB,\n ...partB,\n choicesLayout:\n partB.choicesLayout || (partB.verticalMode === false && 'horizontal') || defaults.partB.choicesLayout,\n },\n });\n\n constructor() {\n super();\n this._root = null;\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 set configuration(c) {\n const info = prepareCustomizationObject(c, this._model);\n\n const newConfiguration = {\n ...sensibleDefaults.configuration,\n ...info.configuration,\n };\n\n this._configuration = newConfiguration;\n\n // if language:enabled is true, then the corresponding default item model should include a language value;\n // if it is false, then the language field should be omitted from the item model.\n // if a default item model includes a language value (e.g., en_US) and the corresponding authoring view settings have language:settings = true,\n // then (a) language:enabled should also be true, and (b) that default language value should be represented in languageChoices[] (as a key).\n if (newConfiguration?.language?.enabled) {\n if (newConfiguration?.languageChoices?.options?.length) {\n this._model.language = newConfiguration?.languageChoices.options[0].value;\n }\n } else if (newConfiguration.language.settings && this._model.language) {\n this._configuration.language.enabled = true;\n\n if (!this._configuration.languageChoices.options || !this._configuration.languageChoices.options.length) {\n this._configuration.languageChoices.options = [];\n }\n\n // check if the language is already included in the languageChoices.options array\n // and if not, then add it.\n if (!this._configuration.languageChoices.options.find(option => option.value === this._model.language)) {\n this._configuration.languageChoices.options.push({\n value: this._model.language,\n label: this._model.language,\n });\n }\n } else {\n delete this._model.language;\n }\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 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 _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\n if (!this._root) {\n this._root = createRoot(this);\n }\n this._root.render(element);\n }\n\n disconnectedCallback() {\n this.removeEventListener(MODEL_UPDATED, this.onModelUpdated);\n if (this._root) {\n this._root.unmount();\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}