@pie-element/multiple-choice 13.4.2-beta.6 → 13.4.2-beta.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,10 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [13.4.2-beta.7](https://github.com/pie-framework/pie-elements/compare/@pie-element/multiple-choice@13.4.2-beta.6...@pie-element/multiple-choice@13.4.2-beta.7) (2026-09-24)
7
+
8
+ **Note:** Version bump only for package @pie-element/multiple-choice
9
+
6
10
  ## [13.4.2-beta.6](https://github.com/pie-framework/pie-elements/compare/@pie-element/multiple-choice@13.4.2-beta.5...@pie-element/multiple-choice@13.4.2-beta.6) (2026-09-24)
7
11
 
8
12
  **Note:** Version bump only for package @pie-element/multiple-choice
@@ -3,6 +3,10 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [10.4.0-beta.13](https://github.com/pie-framework/pie-elements/compare/@pie-element/multiple-choice-configure@10.4.0-beta.12...@pie-element/multiple-choice-configure@10.4.0-beta.13) (2026-09-24)
7
+
8
+ **Note:** Version bump only for package @pie-element/multiple-choice-configure
9
+
6
10
  # [10.4.0-beta.12](https://github.com/pie-framework/pie-elements/compare/@pie-element/multiple-choice-configure@10.4.0-beta.11...@pie-element/multiple-choice-configure@10.4.0-beta.12) (2026-09-24)
7
11
 
8
12
  **Note:** Version bump only for package @pie-element/multiple-choice-configure
@@ -200,4 +200,4 @@ var _default = exports.default = {
200
200
  }
201
201
  }
202
202
  };
203
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGVmYXVsdCIsImV4cG9ydHMiLCJkZWZhdWx0IiwibW9kZWwiLCJjaG9pY2VNb2RlIiwiY2hvaWNlUHJlZml4IiwiY2hvaWNlcyIsImNob2ljZXNMYXlvdXQiLCJmZWVkYmFja0VuYWJsZWQiLCJncmlkQ29sdW1ucyIsImxvY2tDaG9pY2VPcmRlciIsInBhcnRpYWxTY29yaW5nIiwicHJvbXB0IiwicHJvbXB0RW5hYmxlZCIsInJhdGlvbmFsZSIsInJhdGlvbmFsZUVuYWJsZWQiLCJzY29yaW5nVHlwZSIsInN0dWRlbnRJbnN0cnVjdGlvbnNFbmFibGVkIiwidGVhY2hlckluc3RydWN0aW9ucyIsInRlYWNoZXJJbnN0cnVjdGlvbnNFbmFibGVkIiwidG9vbGJhckVkaXRvclBvc2l0aW9uIiwic2VsZWN0ZWRBbnN3ZXJCYWNrZ3JvdW5kQ29sb3IiLCJrZXlib2FyZEV2ZW50c0VuYWJsZWQiLCJjb25maWd1cmF0aW9uIiwiYmFzZUlucHV0Q29uZmlndXJhdGlvbiIsImgzIiwiZGlzYWJsZWQiLCJhdWRpbyIsInZpZGVvIiwiaW1hZ2UiLCJ0ZXh0QWxpZ24iLCJzaG93UGFyYWdyYXBocyIsInNlcGFyYXRlUGFyYWdyYXBocyIsImlucHV0Q29uZmlndXJhdGlvbiIsInNwZWxsQ2hlY2siLCJsYWJlbCIsInNldHRpbmdzIiwiZW5hYmxlZCIsImFuc3dlckNob2ljZUNvdW50IiwiYWRkQ2hvaWNlQnV0dG9uIiwiZGVsZXRlQ2hvaWNlIiwiZmVlZGJhY2siLCJyZXF1aXJlZCIsInN0dWRlbnRJbnN0cnVjdGlvbnMiLCJtaW5BbnN3ZXJDaG9pY2VzIiwibWF4QW5zd2VyQ2hvaWNlcyIsIm1heEltYWdlV2lkdGgiLCJtYXhJbWFnZUhlaWdodCIsIndpdGhSdWJyaWMiLCJtYXRoTWxPcHRpb25zIiwibW1sT3V0cHV0IiwibW1sRWRpdGluZyIsImxhbmd1YWdlIiwibGFuZ3VhZ2VDaG9pY2VzIiwib3B0aW9ucyJdLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWZhdWx0cy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogTk9URTogdGVhY2hlckluc3RydWN0aW9ucywgc3R1ZGVudEluc3RydWN0aW9ucywgcmF0aW9uYWxlICYgc2NvcmluZ1R5cGVcbiAqIGZ1bmN0aW9uYWxpdGllcyBhcmUgbm90IGRlZmluZWQgeWV0IC0gdGhlIHZhbHVlIGZvciB0aG9zZSBjYW4gYmVsb25nIHRvXG4gKiBtb2RlbCBvciB0byBjb25maWd1cmVcbiAqL1xuZXhwb3J0IGRlZmF1bHQge1xuICBtb2RlbDoge1xuICAgIGNob2ljZU1vZGU6ICdjaGVja2JveCcsXG4gICAgY2hvaWNlUHJlZml4OiAnbGV0dGVycycsXG4gICAgY2hvaWNlczogW10sXG4gICAgY2hvaWNlc0xheW91dDogJ3ZlcnRpY2FsJyxcbiAgICBmZWVkYmFja0VuYWJsZWQ6IGZhbHNlLFxuICAgIGdyaWRDb2x1bW5zOiAyLFxuICAgIGxvY2tDaG9pY2VPcmRlcjogdHJ1ZSxcbiAgICBwYXJ0aWFsU2NvcmluZzogdHJ1ZSxcbiAgICBwcm9tcHQ6ICcnLFxuICAgIHByb21wdEVuYWJsZWQ6IHRydWUsXG4gICAgcmF0aW9uYWxlOiAnJyxcbiAgICByYXRpb25hbGVFbmFibGVkOiB0cnVlLFxuICAgIHNjb3JpbmdUeXBlOiAnYXV0bycsXG4gICAgc3R1ZGVudEluc3RydWN0aW9uc0VuYWJsZWQ6IHRydWUsXG4gICAgdGVhY2hlckluc3RydWN0aW9uczogJycsXG4gICAgdGVhY2hlckluc3RydWN0aW9uc0VuYWJsZWQ6IHRydWUsXG4gICAgdG9vbGJhckVkaXRvclBvc2l0aW9uOiAnYm90dG9tJyxcbiAgICBzZWxlY3RlZEFuc3dlckJhY2tncm91bmRDb2xvcjogJ2luaXRpYWwnLFxuICAgIGtleWJvYXJkRXZlbnRzRW5hYmxlZDogZmFsc2UsXG4gIH0sXG4gIGNvbmZpZ3VyYXRpb246IHtcbiAgICBiYXNlSW5wdXRDb25maWd1cmF0aW9uOiB7XG4gICAgICBoMzogeyBkaXNhYmxlZDogdHJ1ZSB9LFxuICAgICAgYXVkaW86IHsgZGlzYWJsZWQ6IGZhbHNlIH0sXG4gICAgICB2aWRlbzogeyBkaXNhYmxlZDogZmFsc2UgfSxcbiAgICAgIGltYWdlOiB7IGRpc2FibGVkOiBmYWxzZSB9LFxuICAgICAgdGV4dEFsaWduOiB7IGRpc2FibGVkOiB0cnVlIH0sXG4gICAgICBzaG93UGFyYWdyYXBoczogeyBkaXNhYmxlZDogZmFsc2UgfSxcbiAgICAgIHNlcGFyYXRlUGFyYWdyYXBoczogeyBkaXNhYmxlZDogdHJ1ZSB9LFxuICAgIH0sXG4gICAgY2hvaWNlczoge1xuICAgICAgaW5wdXRDb25maWd1cmF0aW9uOiB7XG4gICAgICAgIGF1ZGlvOiB7IGRpc2FibGVkOiBmYWxzZSB9LFxuICAgICAgICB2aWRlbzogeyBkaXNhYmxlZDogZmFsc2UgfSxcbiAgICAgICAgaW1hZ2U6IHsgZGlzYWJsZWQ6IGZhbHNlIH0sXG4gICAgICB9LFxuICAgIH0sXG4gICAgc3BlbGxDaGVjazoge1xuICAgICAgbGFiZWw6ICdTcGVsbGNoZWNrJyxcbiAgICAgIHNldHRpbmdzOiBmYWxzZSxcbiAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgfSxcbiAgICBjaG9pY2VzTGF5b3V0OiB7XG4gICAgICBzZXR0aW5nczogZmFsc2UsXG4gICAgICBsYWJlbDogJ0Nob2ljZXMgTGF5b3V0JyxcbiAgICB9LFxuICAgIGdyaWRDb2x1bW5zOiB7XG4gICAgICBsYWJlbDogJ0dyaWQgY29sdW1ucycsXG4gICAgfSxcbiAgICBhbnN3ZXJDaG9pY2VDb3VudDogMCxcbiAgICBhZGRDaG9pY2VCdXR0b246IHtcbiAgICAgIHNldHRpbmdzOiB0cnVlLFxuICAgICAgbGFiZWw6ICdBZGQgYSBDaG9pY2UnLFxuICAgIH0sXG4gICAgY2hvaWNlTW9kZToge1xuICAgICAgc2V0dGluZ3M6IHRydWUsXG4gICAgICBsYWJlbDogJ1Jlc3BvbnNlIFR5cGUnLFxuICAgIH0sXG4gICAgY2hvaWNlUHJlZml4OiB7XG4gICAgICBzZXR0aW5nczogdHJ1ZSxcbiAgICAgIGxhYmVsOiAnQ2hvaWNlIExhYmVscycsXG4gICAgfSxcbiAgICBkZWxldGVDaG9pY2U6IHtcbiAgICAgIHNldHRpbmdzOiB0cnVlLFxuICAgIH0sXG4gICAgZmVlZGJhY2s6IHtcbiAgICAgIHNldHRpbmdzOiB0cnVlLFxuICAgICAgbGFiZWw6ICdGZWVkYmFjaycsXG4gICAgfSxcbiAgICBwcm9tcHQ6IHtcbiAgICAgIHNldHRpbmdzOiB0cnVlLFxuICAgICAgbGFiZWw6ICdQcm9tcHQnLFxuICAgICAgaW5wdXRDb25maWd1cmF0aW9uOiB7XG4gICAgICAgIGF1ZGlvOiB7IGRpc2FibGVkOiBmYWxzZSB9LFxuICAgICAgICB2aWRlbzogeyBkaXNhYmxlZDogZmFsc2UgfSxcbiAgICAgICAgaW1hZ2U6IHsgZGlzYWJsZWQ6IGZhbHNlIH0sXG4gICAgICB9LFxuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIH0sXG4gICAgbG9ja0Nob2ljZU9yZGVyOiB7XG4gICAgICBzZXR0aW5nczogdHJ1ZSxcbiAgICAgIGxhYmVsOiAnTG9jayBDaG9pY2UgT3JkZXInLFxuICAgIH0sXG4gICAgcGFydGlhbFNjb3Jpbmc6IHtcbiAgICAgIHNldHRpbmdzOiBmYWxzZSxcbiAgICAgIGxhYmVsOiAnQWxsb3cgUGFydGlhbCBTY29yaW5nJyxcbiAgICB9LFxuICAgIHJhdGlvbmFsZToge1xuICAgICAgc2V0dGluZ3M6IHRydWUsXG4gICAgICBsYWJlbDogJ1JhdGlvbmFsZScsXG4gICAgICBpbnB1dENvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgYXVkaW86IHsgZGlzYWJsZWQ6IHRydWUgfSxcbiAgICAgICAgdmlkZW86IHsgZGlzYWJsZWQ6IHRydWUgfSxcbiAgICAgICAgaW1hZ2U6IHsgZGlzYWJsZWQ6IGZhbHNlIH0sXG4gICAgICB9LFxuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIH0sXG4gICAgc2NvcmluZ1R5cGU6IHtcbiAgICAgIHNldHRpbmdzOiBmYWxzZSxcbiAgICAgIGxhYmVsOiAnU2NvcmluZyBUeXBlJyxcbiAgICB9LFxuICAgIHN0dWRlbnRJbnN0cnVjdGlvbnM6IHtcbiAgICAgIHNldHRpbmdzOiBmYWxzZSxcbiAgICAgIGxhYmVsOiAnU3R1ZGVudCBJbnN0cnVjdGlvbnMnLFxuICAgIH0sXG4gICAgdGVhY2hlckluc3RydWN0aW9uczoge1xuICAgICAgc2V0dGluZ3M6IHRydWUsXG4gICAgICBsYWJlbDogJ1RlYWNoZXIgSW5zdHJ1Y3Rpb25zJyxcbiAgICAgIGlucHV0Q29uZmlndXJhdGlvbjoge1xuICAgICAgICBhdWRpbzogeyBkaXNhYmxlZDogZmFsc2UgfSxcbiAgICAgICAgdmlkZW86IHsgZGlzYWJsZWQ6IGZhbHNlIH0sXG4gICAgICAgIGltYWdlOiB7IGRpc2FibGVkOiBmYWxzZSB9LFxuICAgICAgfSxcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICB9LFxuICAgIHRvb2xiYXJFZGl0b3JQb3NpdGlvbjoge1xuICAgICAgc2V0dGluZ3M6IGZhbHNlLFxuICAgICAgbGFiZWw6ICdUb29sYmFyIEVkaXRvciBQb3NpdGlvbicsXG4gICAgfSxcbiAgICBtaW5BbnN3ZXJDaG9pY2VzOiAyLFxuICAgIG1heEFuc3dlckNob2ljZXM6IDUsXG4gICAgbWF4SW1hZ2VXaWR0aDoge1xuICAgICAgdGVhY2hlckluc3RydWN0aW9uczogMzAwLFxuICAgICAgcHJvbXB0OiAzMDAsXG4gICAgICByYXRpb25hbGU6IDYzNixcbiAgICAgIGNob2ljZXM6IDkwMCxcbiAgICB9LFxuICAgIG1heEltYWdlSGVpZ2h0OiB7XG4gICAgICB0ZWFjaGVySW5zdHJ1Y3Rpb25zOiAzMDAsXG4gICAgICBwcm9tcHQ6IDMwMCxcbiAgICAgIHJhdGlvbmFsZTogMzAwLFxuICAgICAgY2hvaWNlczogMzAwLFxuICAgIH0sXG4gICAgd2l0aFJ1YnJpYzoge1xuICAgICAgc2V0dGluZ3M6IGZhbHNlLFxuICAgICAgbGFiZWw6ICdBZGQgUnVicmljJyxcbiAgICB9LFxuICAgIG1hdGhNbE9wdGlvbnM6IHtcbiAgICAgIG1tbE91dHB1dDogZmFsc2UsXG4gICAgICBtbWxFZGl0aW5nOiBmYWxzZSxcbiAgICB9LFxuICAgIGxhbmd1YWdlOiB7XG4gICAgICBzZXR0aW5nczogZmFsc2UsXG4gICAgICBsYWJlbDogJ1NwZWNpZnkgTGFuZ3VhZ2UnLFxuICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgfSxcbiAgICBsYW5ndWFnZUNob2ljZXM6IHtcbiAgICAgIGxhYmVsOiAnTGFuZ3VhZ2UgQ2hvaWNlcycsXG4gICAgICBvcHRpb25zOiBbXSxcbiAgICB9LFxuICB9LFxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFIQSxJQUFBQSxRQUFBLEdBQUFDLE9BQUEsQ0FBQUMsT0FBQSxHQUllO0VBQ2JDLEtBQUssRUFBRTtJQUNMQyxVQUFVLEVBQUUsVUFBVTtJQUN0QkMsWUFBWSxFQUFFLFNBQVM7SUFDdkJDLE9BQU8sRUFBRSxFQUFFO0lBQ1hDLGFBQWEsRUFBRSxVQUFVO0lBQ3pCQyxlQUFlLEVBQUUsS0FBSztJQUN0QkMsV0FBVyxFQUFFLENBQUM7SUFDZEMsZUFBZSxFQUFFLElBQUk7SUFDckJDLGNBQWMsRUFBRSxJQUFJO0lBQ3BCQyxNQUFNLEVBQUUsRUFBRTtJQUNWQyxhQUFhLEVBQUUsSUFBSTtJQUNuQkMsU0FBUyxFQUFFLEVBQUU7SUFDYkMsZ0JBQWdCLEVBQUUsSUFBSTtJQUN0QkMsV0FBVyxFQUFFLE1BQU07SUFDbkJDLDBCQUEwQixFQUFFLElBQUk7SUFDaENDLG1CQUFtQixFQUFFLEVBQUU7SUFDdkJDLDBCQUEwQixFQUFFLElBQUk7SUFDaENDLHFCQUFxQixFQUFFLFFBQVE7SUFDL0JDLDZCQUE2QixFQUFFLFNBQVM7SUFDeENDLHFCQUFxQixFQUFFO0VBQ3pCLENBQUM7RUFDREMsYUFBYSxFQUFFO0lBQ2JDLHNCQUFzQixFQUFFO01BQ3RCQyxFQUFFLEVBQUU7UUFBRUMsUUFBUSxFQUFFO01BQUssQ0FBQztNQUN0QkMsS0FBSyxFQUFFO1FBQUVELFFBQVEsRUFBRTtNQUFNLENBQUM7TUFD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
203
+ //# sourceMappingURL=defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.js","names":["_default","exports","default","model","choiceMode","choicePrefix","choices","choicesLayout","feedbackEnabled","gridColumns","lockChoiceOrder","partialScoring","prompt","promptEnabled","rationale","rationaleEnabled","scoringType","studentInstructionsEnabled","teacherInstructions","teacherInstructionsEnabled","toolbarEditorPosition","selectedAnswerBackgroundColor","keyboardEventsEnabled","configuration","baseInputConfiguration","h3","disabled","audio","video","image","textAlign","showParagraphs","separateParagraphs","inputConfiguration","spellCheck","label","settings","enabled","answerChoiceCount","addChoiceButton","deleteChoice","feedback","required","studentInstructions","minAnswerChoices","maxAnswerChoices","maxImageWidth","maxImageHeight","withRubric","mathMlOptions","mmlOutput","mmlEditing","language","languageChoices","options"],"sources":["../src/defaults.js"],"sourcesContent":["/** NOTE: teacherInstructions, studentInstructions, rationale & scoringType\n * functionalities are not defined yet - the value for those can belong to\n * model or to configure\n */\nexport default {\n model: {\n choiceMode: 'checkbox',\n choicePrefix: 'letters',\n choices: [],\n choicesLayout: 'vertical',\n feedbackEnabled: false,\n gridColumns: 2,\n lockChoiceOrder: true,\n partialScoring: true,\n prompt: '',\n promptEnabled: true,\n rationale: '',\n rationaleEnabled: true,\n scoringType: 'auto',\n studentInstructionsEnabled: true,\n teacherInstructions: '',\n teacherInstructionsEnabled: true,\n toolbarEditorPosition: 'bottom',\n selectedAnswerBackgroundColor: 'initial',\n keyboardEventsEnabled: false,\n },\n configuration: {\n baseInputConfiguration: {\n h3: { disabled: true },\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 choices: {\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n },\n spellCheck: {\n label: 'Spellcheck',\n settings: false,\n enabled: true,\n },\n choicesLayout: {\n settings: false,\n label: 'Choices Layout',\n },\n gridColumns: {\n label: 'Grid columns',\n },\n answerChoiceCount: 0,\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 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 lockChoiceOrder: {\n settings: true,\n label: 'Lock Choice Order',\n },\n partialScoring: {\n settings: false,\n label: 'Allow Partial Scoring',\n },\n rationale: {\n settings: true,\n label: 'Rationale',\n inputConfiguration: {\n audio: { disabled: true },\n video: { disabled: true },\n image: { disabled: false },\n },\n required: false,\n },\n scoringType: {\n settings: false,\n label: 'Scoring Type',\n },\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 toolbarEditorPosition: {\n settings: false,\n label: 'Toolbar Editor Position',\n },\n minAnswerChoices: 2,\n maxAnswerChoices: 5,\n maxImageWidth: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 636,\n choices: 900,\n },\n maxImageHeight: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n choices: 300,\n },\n withRubric: {\n settings: false,\n label: 'Add Rubric',\n },\n mathMlOptions: {\n mmlOutput: false,\n mmlEditing: false,\n },\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":[]}
@@ -200,4 +200,4 @@ exports.default = MultipleChoice;
200
200
  normalizedModel.choicesLayout = model.choicesLayout || model.verticalMode === false && 'horizontal' || _defaults.default.model.choicesLayout;
201
201
  return normalizedModel;
202
202
  });
203
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9jbGllbnQiLCJfZGVidWciLCJfcGllQ29uZmlndXJlRXZlbnRzIiwiX21haW4iLCJfY29uZmlnVWkiLCJfbG9kYXNoRXMiLCJfZGVmYXVsdHMiLCJsb2ciLCJkZWJ1ZyIsImdlbmVyYXRlRm9ybWF0dGVkQ2hvaWNlcyIsImNob2ljZXMiLCJjaG9pY2VDb3VudCIsImxlbmd0aCIsImZvcm1hdHRlZENob2ljZXMiLCJpIiwicHVzaCIsInZhbHVlIiwibGFiZWwiLCJmZWVkYmFjayIsInR5cGUiLCJwcmVwYXJlQ3VzdG9taXphdGlvbk9iamVjdCIsImNvbmZpZyIsIm1vZGVsIiwiY29uZmlndXJhdGlvbiIsImRlZmF1bHRzIiwic2Vuc2libGVEZWZhdWx0cyIsImFuc3dlckNob2ljZUNvdW50IiwiTXVsdGlwbGVDaG9pY2UiLCJIVE1MRWxlbWVudCIsImNvbnN0cnVjdG9yIiwiX3Jvb3QiLCJfcmVhY3RDb250YWluZXIiLCJfbW9kZWwiLCJjcmVhdGVEZWZhdWx0TW9kZWwiLCJfY29uZmlndXJhdGlvbiIsIm9uTW9kZWxDaGFuZ2VkIiwiYmluZCIsIm9uQ29uZmlndXJhdGlvbkNoYW5nZWQiLCJzIiwiX3JlbmRlciIsImMiLCJpbmZvIiwibmV3Q29uZmlndXJhdGlvbiIsImxhbmd1YWdlIiwiZW5hYmxlZCIsImxhbmd1YWdlQ2hvaWNlcyIsIm9wdGlvbnMiLCJzZXR0aW5ncyIsImZpbmQiLCJvcHRpb24iLCJkaXNhYmxlU2lkZVBhbmVsIiwiX2Rpc2FibGVTaWRlUGFuZWwiLCJkaXNwYXRjaE1vZGVsVXBkYXRlZCIsInJlc2V0IiwicmVzZXRWYWx1ZSIsImRpc3BhdGNoRXZlbnQiLCJNb2RlbFVwZGF0ZWRFdmVudCIsIm0iLCJpbnNlcnRJbWFnZSIsImhhbmRsZXIiLCJJbnNlcnRJbWFnZUV2ZW50Iiwib25EZWxldGVJbWFnZSIsInNyYyIsImRvbmUiLCJEZWxldGVJbWFnZUV2ZW50IiwiaW5zZXJ0U291bmQiLCJJbnNlcnRTb3VuZEV2ZW50Iiwib25EZWxldGVTb3VuZCIsIkRlbGV0ZVNvdW5kRXZlbnQiLCJlbGVtZW50IiwiUmVhY3QiLCJjcmVhdGVFbGVtZW50IiwiTWFpbiIsImltYWdlU3VwcG9ydCIsImFkZCIsImRlbGV0ZSIsInVwbG9hZFNvdW5kU3VwcG9ydCIsImRvY3VtZW50IiwiY2xhc3NOYW1lIiwiYXBwZW5kQ2hpbGQiLCJjcmVhdGVSb290IiwicmVuZGVyIiwiZXJyb3IiLCJjb25zb2xlIiwic3RhY2siLCJjb25uZWN0ZWRDYWxsYmFjayIsImRpc2Nvbm5lY3RlZENhbGxiYWNrIiwidW5tb3VudCIsImV4cG9ydHMiLCJkZWZhdWx0IiwiX2RlZmluZVByb3BlcnR5MiIsIm5vcm1hbGl6ZWRNb2RlbCIsInV0aWxzIiwibm9ybWFsaXplQ2hvaWNlcyIsImNob2ljZXNMYXlvdXQiLCJ2ZXJ0aWNhbE1vZGUiXSwic291cmNlcyI6WyIuLi9zcmMvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNyZWF0ZVJvb3QgfSBmcm9tICdyZWFjdC1kb20vY2xpZW50JztcbmltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQge1xuICBEZWxldGVJbWFnZUV2ZW50LFxuICBJbnNlcnRJbWFnZUV2ZW50LFxuICBNb2RlbFVwZGF0ZWRFdmVudCxcbiAgSW5zZXJ0U291bmRFdmVudCxcbiAgRGVsZXRlU291bmRFdmVudCxcbn0gZnJvbSAnQHBpZS1mcmFtZXdvcmsvcGllLWNvbmZpZ3VyZS1ldmVudHMnO1xuXG5pbXBvcnQgTWFpbiBmcm9tICcuL21haW4nO1xuaW1wb3J0IHsgY2hvaWNlVXRpbHMgYXMgdXRpbHMgfSBmcm9tICdAcGllLWxpYi9jb25maWctdWknO1xuaW1wb3J0IHsgZGVmYXVsdHMgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5pbXBvcnQgc2Vuc2libGVEZWZhdWx0cyBmcm9tICcuL2RlZmF1bHRzJztcblxuY29uc3QgbG9nID0gZGVidWcoJ211bHRpcGxlLWNob2ljZTpjb25maWd1cmUnKTtcblxuY29uc3QgZ2VuZXJhdGVGb3JtYXR0ZWRDaG9pY2VzID0gKGNob2ljZXMsIGNob2ljZUNvdW50ID0gMCkgPT4ge1xuICBpZiAoIWNob2ljZXMgfHwgY2hvaWNlcy5sZW5ndGggPT09IDApIHtcbiAgICBsZXQgZm9ybWF0dGVkQ2hvaWNlcyA9IFtdO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaG9pY2VDb3VudDsgaSsrKSB7XG4gICAgICBmb3JtYXR0ZWRDaG9pY2VzLnB1c2goe1xuICAgICAgICB2YWx1ZTogYCR7aX1gLFxuICAgICAgICBsYWJlbDogJycsXG4gICAgICAgIGZlZWRiYWNrOiB7XG4gICAgICAgICAgdHlwZTogJ25vbmUnLFxuICAgICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBmb3JtYXR0ZWRDaG9pY2VzO1xuICB9XG5cbiAgcmV0dXJuIGNob2ljZXM7XG59O1xuXG5jb25zdCBwcmVwYXJlQ3VzdG9taXphdGlvbk9iamVjdCA9IChjb25maWcsIG1vZGVsKSA9PiB7XG4gIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBkZWZhdWx0cyhjb25maWcsIHNlbnNpYmxlRGVmYXVsdHMuY29uZmlndXJhdGlvbik7XG5cbiAgcmV0dXJuIHtcbiAgICBjb25maWd1cmF0aW9uLFxuICAgIG1vZGVsOiB7XG4gICAgICAuLi5tb2RlbCxcbiAgICAgIGNob2ljZXM6IGdlbmVyYXRlRm9ybWF0dGVkQ2hvaWNlcyhcbiAgICAgICAgKG1vZGVsICYmIG1vZGVsLmNob2ljZXMpIHx8IFtdLFxuICAgICAgICBjb25maWd1cmF0aW9uICYmIGNvbmZpZ3VyYXRpb24uYW5zd2VyQ2hvaWNlQ291bnQsXG4gICAgICApLFxuICAgIH0sXG4gIH07XG59O1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBNdWx0aXBsZUNob2ljZSBleHRlbmRzIEhUTUxFbGVtZW50IHtcbiAgc3RhdGljIGNyZWF0ZURlZmF1bHRNb2RlbCA9IChtb2RlbCA9IHt9KSA9PiB7XG4gICAgY29uc3Qgbm9ybWFsaXplZE1vZGVsID0gdXRpbHMubm9ybWFsaXplQ2hvaWNlcyh7XG4gICAgICAuLi5zZW5zaWJsZURlZmF1bHRzLm1vZGVsLFxuICAgICAgLi4ubW9kZWwsXG4gICAgICBjaG9pY2VzOiBnZW5lcmF0ZUZvcm1hdHRlZENob2ljZXMoKG1vZGVsICYmIG1vZGVsLmNob2ljZXMpIHx8IFtdKSxcbiAgICB9KTtcblxuICAgIC8vIFRoaXMgaXMgdXNlZCBmb3Igb2ZmZXJpbmcgc3VwcG9ydCBmb3Igb2xkIG1vZGVscyB3aGljaCBoYXZlIHRoZSBwcm9wZXJ0eSBcInZlcnRpY2FsTW9kZVwiXG4gICAgbm9ybWFsaXplZE1vZGVsLmNob2ljZXNMYXlvdXQgPVxuICAgICAgbW9kZWwuY2hvaWNlc0xheW91dCB8fCAobW9kZWwudmVydGljYWxNb2RlID09PSBmYWxzZSAmJiAnaG9yaXpvbnRhbCcpIHx8IHNlbnNpYmxlRGVmYXVsdHMubW9kZWwuY2hvaWNlc0xheW91dDtcblxuICAgIHJldHVybiBub3JtYWxpemVkTW9kZWw7XG4gIH07XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLl9yb290ID0gbnVsbDtcbiAgICB0aGlzLl9yZWFjdENvbnRhaW5lciA9IG51bGw7XG4gICAgdGhpcy5fbW9kZWwgPSBNdWx0aXBsZUNob2ljZS5jcmVhdGVEZWZhdWx0TW9kZWwoKTtcbiAgICB0aGlzLl9jb25maWd1cmF0aW9uID0gc2Vuc2libGVEZWZhdWx0cy5jb25maWd1cmF0aW9uO1xuICAgIHRoaXMub25Nb2RlbENoYW5nZWQgPSB0aGlzLm9uTW9kZWxDaGFuZ2VkLmJpbmQodGhpcyk7XG4gICAgdGhpcy5vbkNvbmZpZ3VyYXRpb25DaGFuZ2VkID0gdGhpcy5vbkNvbmZpZ3VyYXRpb25DaGFuZ2VkLmJpbmQodGhpcyk7XG4gIH1cblxuICBzZXQgbW9kZWwocykge1xuICAgIHRoaXMuX21vZGVsID0gTXVsdGlwbGVDaG9pY2UuY3JlYXRlRGVmYXVsdE1vZGVsKHMpO1xuXG4gICAgdGhpcy5fcmVuZGVyKCk7XG4gIH1cblxuICBzZXQgY29uZmlndXJhdGlvbihjKSB7XG4gICAgY29uc3QgaW5mbyA9IHByZXBhcmVDdXN0b21pemF0aW9uT2JqZWN0KGMsIHRoaXMuX21vZGVsKTtcblxuICAgIHRoaXMub25Nb2RlbENoYW5nZWQoaW5mby5tb2RlbCk7XG5cbiAgICBjb25zdCBuZXdDb25maWd1cmF0aW9uID0ge1xuICAgICAgLi4uc2Vuc2libGVEZWZhdWx0cy5jb25maWd1cmF0aW9uLFxuICAgICAgLi4uaW5mby5jb25maWd1cmF0aW9uLFxuICAgIH07XG4gICAgdGhpcy5fY29uZmlndXJhdGlvbiA9IG5ld0NvbmZpZ3VyYXRpb247XG5cbiAgICAvLyBpZiBsYW5ndWFnZTplbmFibGVkIGlzIHRydWUsIHRoZW4gdGhlIGNvcnJlc3BvbmRpbmcgZGVmYXVsdCBpdGVtIG1vZGVsIHNob3VsZCBpbmNsdWRlIGEgbGFuZ3VhZ2UgdmFsdWU7XG4gICAgLy8gaWYgaXQgaXMgZmFsc2UsIHRoZW4gdGhlIGxhbmd1YWdlIGZpZWxkIHNob3VsZCBiZSBvbWl0dGVkIGZyb20gdGhlIGl0ZW0gbW9kZWwuXG4gICAgLy8gaWYgYSBkZWZhdWx0IGl0ZW0gbW9kZWwgaW5jbHVkZXMgYSBsYW5ndWFnZSB2YWx1ZSAoZS5nLiwgZW5fVVMpIGFuZCB0aGUgY29ycmVzcG9uZGluZyBhdXRob3JpbmcgdmlldyBzZXR0aW5ncyBoYXZlIGxhbmd1YWdlOnNldHRpbmdzID0gdHJ1ZSxcbiAgICAvLyB0aGVuIChhKSBsYW5ndWFnZTplbmFibGVkIHNob3VsZCBhbHNvIGJlIHRydWUsIGFuZCAoYikgdGhhdCBkZWZhdWx0IGxhbmd1YWdlIHZhbHVlIHNob3VsZCBiZSByZXByZXNlbnRlZCBpbiBsYW5ndWFnZUNob2ljZXNbXSAoYXMgYSBrZXkpLlxuICAgIGlmIChuZXdDb25maWd1cmF0aW9uPy5sYW5ndWFnZT8uZW5hYmxlZCkge1xuICAgICAgaWYgKG5ld0NvbmZpZ3VyYXRpb24/Lmxhbmd1YWdlQ2hvaWNlcz8ub3B0aW9ucz8ubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuX21vZGVsLmxhbmd1YWdlID0gbmV3Q29uZmlndXJhdGlvbj8ubGFuZ3VhZ2VDaG9pY2VzLm9wdGlvbnNbMF0udmFsdWU7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChuZXdDb25maWd1cmF0aW9uLmxhbmd1YWdlLnNldHRpbmdzICYmIHRoaXMuX21vZGVsLmxhbmd1YWdlKSB7XG4gICAgICB0aGlzLl9jb25maWd1cmF0aW9uLmxhbmd1YWdlLmVuYWJsZWQgPSB0cnVlO1xuXG4gICAgICBpZiAoIXRoaXMuX2NvbmZpZ3VyYXRpb24ubGFuZ3VhZ2VDaG9pY2VzLm9wdGlvbnMgfHwgIXRoaXMuX2NvbmZpZ3VyYXRpb24ubGFuZ3VhZ2VDaG9pY2VzLm9wdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuX2NvbmZpZ3VyYXRpb24ubGFuZ3VhZ2VDaG9pY2VzLm9wdGlvbnMgPSBbXTtcbiAgICAgIH1cblxuICAgICAgLy8gY2hlY2sgaWYgdGhlIGxhbmd1YWdlIGlzIGFscmVhZHkgaW5jbHVkZWQgaW4gdGhlIGxhbmd1YWdlQ2hvaWNlcy5vcHRpb25zIGFycmF5XG4gICAgICAvLyBhbmQgaWYgbm90LCB0aGVuIGFkZCBpdC5cbiAgICAgIGlmICghdGhpcy5fY29uZmlndXJhdGlvbi5sYW5ndWFnZUNob2ljZXMub3B0aW9ucy5maW5kKChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSA9PT0gdGhpcy5fbW9kZWwubGFuZ3VhZ2UpKSB7XG4gICAgICAgIHRoaXMuX2NvbmZpZ3VyYXRpb24ubGFuZ3VhZ2VDaG9pY2VzLm9wdGlvbnMucHVzaCh7XG4gICAgICAgICAgdmFsdWU6IHRoaXMuX21vZGVsLmxhbmd1YWdlLFxuICAgICAgICAgIGxhYmVsOiB0aGlzLl9tb2RlbC5sYW5ndWFnZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlbGV0ZSB0aGlzLl9tb2RlbC5sYW5ndWFnZTtcbiAgICB9XG5cbiAgICB0aGlzLl9yZW5kZXIoKTtcbiAgfVxuXG4gIHNldCBkaXNhYmxlU2lkZVBhbmVsKHMpIHtcbiAgICB0aGlzLl9kaXNhYmxlU2lkZVBhbmVsID0gcztcbiAgICB0aGlzLl9yZW5kZXIoKTtcbiAgfVxuXG4gIGRpc3BhdGNoTW9kZWxVcGRhdGVkKHJlc2V0KSB7XG4gICAgY29uc3QgcmVzZXRWYWx1ZSA9ICEhcmVzZXQ7XG5cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IE1vZGVsVXBkYXRlZEV2ZW50KHRoaXMuX21vZGVsLCByZXNldFZhbHVlKSk7XG4gIH1cblxuICBvbk1vZGVsQ2hhbmdlZChtLCByZXNldCkge1xuICAgIHRoaXMuX21vZGVsID0ge1xuICAgICAgLi4udGhpcy5fbW9kZWwsXG4gICAgICAuLi5tLFxuICAgIH07XG4gICAgdGhpcy5fcmVuZGVyKCk7XG5cbiAgICB0aGlzLmRpc3BhdGNoTW9kZWxVcGRhdGVkKHJlc2V0KTtcbiAgfVxuXG4gIG9uQ29uZmlndXJhdGlvbkNoYW5nZWQoYykge1xuICAgIHRoaXMuX2NvbmZpZ3VyYXRpb24gPSBwcmVwYXJlQ3VzdG9taXphdGlvbk9iamVjdChjLCB0aGlzLl9tb2RlbCkuY29uZmlndXJhdGlvbjtcblxuICAgIGlmICh0aGlzLl9tb2RlbCkge1xuICAgICAgdGhpcy5vbk1vZGVsQ2hhbmdlZCh0aGlzLl9tb2RlbCk7XG4gICAgfVxuXG4gICAgdGhpcy5fcmVuZGVyKCk7XG4gIH1cblxuICAvKiogQHBhcmFtIHtkb25lLCBwcm9ncmVzcywgZmlsZX0gaGFuZGxlciAqL1xuICBpbnNlcnRJbWFnZShoYW5kbGVyKSB7XG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBJbnNlcnRJbWFnZUV2ZW50KGhhbmRsZXIpKTtcbiAgfVxuXG4gIG9uRGVsZXRlSW1hZ2Uoc3JjLCBkb25lKSB7XG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBEZWxldGVJbWFnZUV2ZW50KHNyYywgZG9uZSkpO1xuICB9XG5cbiAgaW5zZXJ0U291bmQoaGFuZGxlcikge1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgSW5zZXJ0U291bmRFdmVudChoYW5kbGVyKSk7XG4gIH1cblxuICBvbkRlbGV0ZVNvdW5kKHNyYywgZG9uZSkge1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRGVsZXRlU291bmRFdmVudChzcmMsIGRvbmUpKTtcbiAgfVxuXG4gIF9yZW5kZXIoKSB7XG4gICAgbG9nKCdfcmVuZGVyIC0gU3RhcnRpbmcgcmVuZGVyJyk7XG4gICAgbG9nKCdfcmVuZGVyIC0gTW9kZWw6JywgdGhpcy5fbW9kZWwgPyAncHJlc2VudCcgOiAnbWlzc2luZycpO1xuICAgIGxvZygnX3JlbmRlciAtIENvbmZpZ3VyYXRpb246JywgdGhpcy5fY29uZmlndXJhdGlvbiA/ICdwcmVzZW50JyA6ICdtaXNzaW5nJyk7XG4gICAgbG9nKCdfcmVuZGVyIC0gUm9vdCBleGlzdHM6JywgISF0aGlzLl9yb290KTtcblxuICAgIHRyeSB7XG4gICAgICBsZXQgZWxlbWVudCA9IFJlYWN0LmNyZWF0ZUVsZW1lbnQoTWFpbiwge1xuICAgICAgICBtb2RlbDogdGhpcy5fbW9kZWwsXG4gICAgICAgIGNvbmZpZ3VyYXRpb246IHRoaXMuX2NvbmZpZ3VyYXRpb24sXG4gICAgICAgIG9uTW9kZWxDaGFuZ2VkOiB0aGlzLm9uTW9kZWxDaGFuZ2VkLFxuICAgICAgICBvbkNvbmZpZ3VyYXRpb25DaGFuZ2VkOiB0aGlzLm9uQ29uZmlndXJhdGlvbkNoYW5nZWQsXG4gICAgICAgIGRpc2FibGVTaWRlUGFuZWw6IHRoaXMuX2Rpc2FibGVTaWRlUGFuZWwsXG4gICAgICAgIGltYWdlU3VwcG9ydDoge1xuICAgICAgICAgIGFkZDogdGhpcy5pbnNlcnRJbWFnZS5iaW5kKHRoaXMpLFxuICAgICAgICAgIGRlbGV0ZTogdGhpcy5vbkRlbGV0ZUltYWdlLmJpbmQodGhpcyksXG4gICAgICAgIH0sXG4gICAgICAgIHVwbG9hZFNvdW5kU3VwcG9ydDoge1xuICAgICAgICAgIGFkZDogdGhpcy5pbnNlcnRTb3VuZC5iaW5kKHRoaXMpLFxuICAgICAgICAgIGRlbGV0ZTogdGhpcy5vbkRlbGV0ZVNvdW5kLmJpbmQodGhpcyksXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgaWYgKCF0aGlzLl9yb290KSB7XG4gICAgICAgIGxvZygnX3JlbmRlciAtIENyZWF0aW5nIFJlYWN0IGNvbnRhaW5lcicpO1xuXG4gICAgICAgIC8vIENyZWF0ZSBhIGNvbnRhaW5lciBkaXYgZm9yIFJlYWN0IHRvIHJlbmRlciBpbnRvXG4gICAgICAgIHRoaXMuX3JlYWN0Q29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIHRoaXMuX3JlYWN0Q29udGFpbmVyLmNsYXNzTmFtZSA9ICdwaWUtY29uZmlndXJlLXdyYXBwZXInO1xuICAgICAgICB0aGlzLmFwcGVuZENoaWxkKHRoaXMuX3JlYWN0Q29udGFpbmVyKTtcblxuICAgICAgICBsb2coJ19yZW5kZXIgLSBDcmVhdGluZyBuZXcgUmVhY3Qgcm9vdCcpO1xuICAgICAgICB0aGlzLl9yb290ID0gY3JlYXRlUm9vdCh0aGlzLl9yZWFjdENvbnRhaW5lcik7XG4gICAgICAgIGxvZygnX3JlbmRlciAtIFJlYWN0IHJvb3QgY3JlYXRlZCBzdWNjZXNzZnVsbHknKTtcbiAgICAgIH1cblxuICAgICAgbG9nKCdfcmVuZGVyIC0gQ2FsbGluZyByb290LnJlbmRlcigpJyk7XG4gICAgICB0aGlzLl9yb290LnJlbmRlcihlbGVtZW50KTtcbiAgICAgIGxvZygnX3JlbmRlciAtIFJlbmRlciBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5Jyk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ+KdjCBbbXVsdGlwbGUtY2hvaWNlLWNvbmZpZ3VyZV0gUmVuZGVyIGVycm9yOicsIGVycm9yKTtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHN0YWNrOicsIGVycm9yLnN0YWNrKTtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgfVxuXG4gIGNvbm5lY3RlZENhbGxiYWNrKCkge1xuICAgIGxvZygnY29ubmVjdGVkQ2FsbGJhY2sgLSBDb21wb25lbnQgY29ubmVjdGVkIHRvIERPTScpO1xuICAgIGxvZygnY29ubmVjdGVkQ2FsbGJhY2sgLSBNb2RlbDonLCB0aGlzLl9tb2RlbCA/ICdwcmVzZW50JyA6ICdtaXNzaW5nJyk7XG4gICAgbG9nKCdjb25uZWN0ZWRDYWxsYmFjayAtIENvbmZpZ3VyYXRpb246JywgdGhpcy5fY29uZmlndXJhdGlvbiA/ICdwcmVzZW50JyA6ICdtaXNzaW5nJyk7XG4gICAgdGhpcy5fcmVuZGVyKCk7XG4gIH1cblxuICBkaXNjb25uZWN0ZWRDYWxsYmFjaygpIHtcbiAgICBsb2coJ2Rpc2Nvbm5lY3RlZENhbGxiYWNrIC0gQ29tcG9uZW50IGRpc2Nvbm5lY3RlZCBmcm9tIERPTScpO1xuICAgIGlmICh0aGlzLl9yb290KSB7XG4gICAgICBsb2coJ2Rpc2Nvbm5lY3RlZENhbGxiYWNrIC0gVW5tb3VudGluZyBSZWFjdCByb290Jyk7XG4gICAgICB0aGlzLl9yb290LnVubW91bnQoKTtcbiAgICAgIHRoaXMuX3Jvb3QgPSBudWxsO1xuICAgIH1cbiAgICBpZiAodGhpcy5fcmVhY3RDb250YWluZXIpIHtcbiAgICAgIHRoaXMuX3JlYWN0Q29udGFpbmVyID0gbnVsbDtcbiAgICB9XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxNQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxtQkFBQSxHQUFBSCxPQUFBO0FBUUEsSUFBQUksS0FBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUssU0FBQSxH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
203
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_client","_debug","_pieConfigureEvents","_main","_configUi","_lodashEs","_defaults","log","debug","generateFormattedChoices","choices","choiceCount","length","formattedChoices","i","push","value","label","feedback","type","prepareCustomizationObject","config","model","configuration","defaults","sensibleDefaults","answerChoiceCount","MultipleChoice","HTMLElement","constructor","_root","_reactContainer","_model","createDefaultModel","_configuration","onModelChanged","bind","onConfigurationChanged","s","_render","c","info","newConfiguration","language","enabled","languageChoices","options","settings","find","option","disableSidePanel","_disableSidePanel","dispatchModelUpdated","reset","resetValue","dispatchEvent","ModelUpdatedEvent","m","insertImage","handler","InsertImageEvent","onDeleteImage","src","done","DeleteImageEvent","insertSound","InsertSoundEvent","onDeleteSound","DeleteSoundEvent","element","React","createElement","Main","imageSupport","add","delete","uploadSoundSupport","document","className","appendChild","createRoot","render","error","console","stack","connectedCallback","disconnectedCallback","unmount","exports","default","_defineProperty2","normalizedModel","utils","normalizeChoices","choicesLayout","verticalMode"],"sources":["../src/index.js"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport debug from 'debug';\nimport {\n DeleteImageEvent,\n InsertImageEvent,\n ModelUpdatedEvent,\n InsertSoundEvent,\n DeleteSoundEvent,\n} from '@pie-framework/pie-configure-events';\n\nimport Main from './main';\nimport { choiceUtils as utils } from '@pie-lib/config-ui';\nimport { defaults } from 'lodash-es';\n\nimport sensibleDefaults from './defaults';\n\nconst log = debug('multiple-choice:configure');\n\nconst generateFormattedChoices = (choices, choiceCount = 0) => {\n if (!choices || choices.length === 0) {\n let formattedChoices = [];\n\n for (let i = 0; i < choiceCount; i++) {\n formattedChoices.push({\n value: `${i}`,\n label: '',\n feedback: {\n type: 'none',\n value: '',\n },\n });\n }\n\n return formattedChoices;\n }\n\n return choices;\n};\n\nconst prepareCustomizationObject = (config, model) => {\n const configuration = defaults(config, sensibleDefaults.configuration);\n\n return {\n configuration,\n model: {\n ...model,\n choices: generateFormattedChoices(\n (model && model.choices) || [],\n configuration && configuration.answerChoiceCount,\n ),\n },\n };\n};\n\nexport default class MultipleChoice extends HTMLElement {\n static createDefaultModel = (model = {}) => {\n const normalizedModel = utils.normalizeChoices({\n ...sensibleDefaults.model,\n ...model,\n choices: generateFormattedChoices((model && model.choices) || []),\n });\n\n // This is used for offering support for old models which have the property \"verticalMode\"\n normalizedModel.choicesLayout =\n model.choicesLayout || (model.verticalMode === false && 'horizontal') || sensibleDefaults.model.choicesLayout;\n\n return normalizedModel;\n };\n\n constructor() {\n super();\n this._root = null;\n this._reactContainer = null;\n this._model = MultipleChoice.createDefaultModel();\n this._configuration = sensibleDefaults.configuration;\n this.onModelChanged = this.onModelChanged.bind(this);\n this.onConfigurationChanged = this.onConfigurationChanged.bind(this);\n }\n\n set model(s) {\n this._model = MultipleChoice.createDefaultModel(s);\n\n this._render();\n }\n\n set configuration(c) {\n const info = prepareCustomizationObject(c, this._model);\n\n this.onModelChanged(info.model);\n\n const newConfiguration = {\n ...sensibleDefaults.configuration,\n ...info.configuration,\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 set disableSidePanel(s) {\n this._disableSidePanel = s;\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 = {\n ...this._model,\n ...m,\n };\n this._render();\n\n this.dispatchModelUpdated(reset);\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 /** @param {done, progress, file} handler */\n insertImage(handler) {\n this.dispatchEvent(new InsertImageEvent(handler));\n }\n\n onDeleteImage(src, done) {\n this.dispatchEvent(new DeleteImageEvent(src, done));\n }\n\n insertSound(handler) {\n this.dispatchEvent(new InsertSoundEvent(handler));\n }\n\n onDeleteSound(src, done) {\n this.dispatchEvent(new DeleteSoundEvent(src, done));\n }\n\n _render() {\n log('_render - Starting render');\n log('_render - Model:', this._model ? 'present' : 'missing');\n log('_render - Configuration:', this._configuration ? 'present' : 'missing');\n log('_render - Root exists:', !!this._root);\n\n try {\n let element = React.createElement(Main, {\n model: this._model,\n configuration: this._configuration,\n onModelChanged: this.onModelChanged,\n onConfigurationChanged: this.onConfigurationChanged,\n disableSidePanel: this._disableSidePanel,\n imageSupport: {\n add: this.insertImage.bind(this),\n delete: this.onDeleteImage.bind(this),\n },\n uploadSoundSupport: {\n add: this.insertSound.bind(this),\n delete: this.onDeleteSound.bind(this),\n },\n });\n\n if (!this._root) {\n log('_render - Creating React container');\n\n // Create a container div for React to render into\n this._reactContainer = document.createElement('div');\n this._reactContainer.className = 'pie-configure-wrapper';\n this.appendChild(this._reactContainer);\n\n log('_render - Creating new React root');\n this._root = createRoot(this._reactContainer);\n log('_render - React root created successfully');\n }\n\n log('_render - Calling root.render()');\n this._root.render(element);\n log('_render - Render completed successfully');\n } catch (error) {\n console.error('❌ [multiple-choice-configure] Render error:', error);\n console.error('Error stack:', error.stack);\n throw error;\n }\n }\n\n connectedCallback() {\n log('connectedCallback - Component connected to DOM');\n log('connectedCallback - Model:', this._model ? 'present' : 'missing');\n log('connectedCallback - Configuration:', this._configuration ? 'present' : 'missing');\n this._render();\n }\n\n disconnectedCallback() {\n log('disconnectedCallback - Component disconnected from DOM');\n if (this._root) {\n log('disconnectedCallback - Unmounting React root');\n this._root.unmount();\n this._root = null;\n }\n if (this._reactContainer) {\n this._reactContainer = null;\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -481,4 +481,4 @@ exports.Main = Main;
481
481
  })
482
482
  });
483
483
  var _default = exports.default = Main;
484
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9wcm9wVHlwZXMiLCJfc3R5bGVzIiwiX2VkaXRhYmxlSHRtbFRpcFRhcCIsIl9jb25maWdVaSIsIl9yZW5kZXJVaSIsIl9CdXR0b24iLCJfVG9vbHRpcCIsIl9UeXBvZ3JhcGh5IiwiX0JveCIsIl9JbmZvIiwiX2xvZGFzaEVzIiwiX3V0aWxzIiwiUGFuZWwiLCJ0b2dnbGUiLCJyYWRpbyIsImRyb3Bkb3duIiwic2V0dGluZ3MiLCJNQVhfQ0hPSUNFUyIsIlByb21wdEhvbGRlciIsInN0eWxlZCIsIklucHV0Q29udGFpbmVyIiwidGhlbWUiLCJ3aWR0aCIsInBhZGRpbmdUb3AiLCJzcGFjaW5nIiwibWFyZ2luQm90dG9tIiwiUmF0aW9uYWxlSG9sZGVyIiwiZmxleCIsIm1hcmdpblRvcCIsIm1hcmdpbkxlZnQiLCJDaG9pY2VDb25maWd1cmF0aW9uSG9sZGVyIiwiZGlzcGxheSIsImZsZXhEaXJlY3Rpb24iLCJBZGRCdXR0b24iLCJCdXR0b24iLCJmbG9hdCIsIkRpc2FibGVCdXR0b24iLCJjdXJzb3IiLCJwb2ludGVyRXZlbnRzIiwiYmFja2dyb3VuZENvbG9yIiwiY29sb3IiLCJkaXNhYmxlZCIsIkZsZXhDb250YWluZXIiLCJCb3giLCJhbGlnbkl0ZW1zIiwiVGl0bGVUZXh0IiwiVHlwb2dyYXBoeSIsImZvbnRTaXplIiwidHlwb2dyYXBoeSIsIm1hcmdpblJpZ2h0IiwiU3R5bGVkVG9vbHRpcCIsIlRvb2x0aXAiLCJ3aGl0ZVNwYWNlIiwibWF4V2lkdGgiLCJFcnJvclRleHQiLCJwYWxldHRlIiwiZXJyb3IiLCJtYWluIiwiRGVzaWduIiwicHJvcHMiLCJtb2RlbCIsImNvbmZpZ3VyYXRpb24iLCJvblByb21wdENoYW5nZWQiLCJvbkNob2ljZUNoYW5nZWQiLCJvblJlbW92ZUNob2ljZSIsIm9uQWRkQ2hvaWNlIiwiaW1hZ2VTdXBwb3J0IiwidXBsb2FkU291bmRTdXBwb3J0Iiwib25DaGFuZ2VNb2RlbCIsIm9uQ29uZmlndXJhdGlvbkNoYW5nZWQiLCJvblRlYWNoZXJJbnN0cnVjdGlvbnNDaGFuZ2VkIiwiYWRkQ2hvaWNlQnV0dG9uIiwiY29udGVudERpbWVuc2lvbnMiLCJmZWVkYmFjayIsImRlbGV0ZUNob2ljZSIsImNob2ljZU1vZGUiLCJjaG9pY2VQcmVmaXgiLCJwYXJ0aWFsU2NvcmluZyIsImxvY2tDaG9pY2VPcmRlciIsInRlYWNoZXJJbnN0cnVjdGlvbnMiLCJzdHVkZW50SW5zdHJ1Y3Rpb25zIiwicmF0aW9uYWxlIiwic2NvcmluZ1R5cGUiLCJzZXF1ZW50aWFsQ2hvaWNlTGFiZWxzIiwic2V0dGluZ3NQYW5lbERpc2FibGVkIiwiY2hvaWNlc0xheW91dCIsInNwZWxsQ2hlY2siLCJncmlkQ29sdW1ucyIsIm1heEltYWdlV2lkdGgiLCJtYXhJbWFnZUhlaWdodCIsInByb21wdCIsIndpdGhSdWJyaWMiLCJtYXRoTWxPcHRpb25zIiwibGFuZ3VhZ2UiLCJsYW5ndWFnZUNob2ljZXMiLCJtYXhBbnN3ZXJDaG9pY2VzIiwibGltaXRDaG9pY2VzTnVtYmVyIiwidGVhY2hlckluc3RydWN0aW9uc0VuYWJsZWQiLCJyYXRpb25hbGVFbmFibGVkIiwiZmVlZGJhY2tFbmFibGVkIiwicHJvbXB0RW5hYmxlZCIsInNwZWxsQ2hlY2tFbmFibGVkIiwiY2hvaWNlcyIsImVycm9ycyIsInRvb2xiYXJFZGl0b3JQb3NpdGlvbiIsImV4dHJhQ1NTUnVsZXMiLCJhbnN3ZXJDaG9pY2VzIiwiYW5zd2VyQ2hvaWNlc0Vycm9yIiwiY2hvaWNlc0Vycm9ycyIsImNvcnJlY3RSZXNwb25zZSIsImNvcnJlY3RSZXNwb25zZUVycm9yIiwicHJvbXB0RXJyb3IiLCJyYXRpb25hbGVFcnJvcnMiLCJ0ZWFjaGVySW5zdHJ1Y3Rpb25zRXJyb3IiLCJuck9mQ29sdW1uc0F2YWlsYWJsZSIsImxlbmd0aCIsIkFycmF5IiwiZnJvbSIsIl8iLCJpIiwiYmFzZUlucHV0Q29uZmlndXJhdGlvbiIsInRvb2xiYXJPcHRzIiwicG9zaXRpb24iLCJnZXRQbHVnaW5Qcm9wcyIsInZhbGlkYXRpb25NZXNzYWdlIiwiZ2VuZXJhdGVWYWxpZGF0aW9uTWVzc2FnZSIsImRlZmF1bHRJbWFnZU1heFdpZHRoIiwiZGVmYXVsdEltYWdlTWF4SGVpZ2h0IiwiYWRkQ2hvaWNlQnV0dG9uVG9vbHRpcCIsInBhbmVsU2V0dGluZ3MiLCJsYWJlbCIsImVuYWJsZWQiLCJvcHRpb25zIiwicGFuZWxQcm9wZXJ0aWVzIiwic3R1ZGVudEluc3RydWN0aW9uc0VuYWJsZWQiLCJydWJyaWNFbmFibGVkIiwiZGVmYXVsdCIsImNyZWF0ZUVsZW1lbnQiLCJsYXlvdXQiLCJDb25maWdMYXlvdXQiLCJkaW1lbnNpb25zIiwiaGlkZVNldHRpbmdzIiwiY2xhc3NlcyIsIm9uQ2hhbmdlQ29uZmlndXJhdGlvbiIsImdyb3VwcyIsIlNldHRpbmdzIiwiUHJvcGVydGllcyIsIm1hcmt1cCIsIm9uQ2hhbmdlIiwibm9uRW1wdHkiLCJkaXNhYmxlVW5kZXJsaW5lIiwicGx1Z2luUHJvcHMiLCJpbnB1dENvbmZpZ3VyYXRpb24iLCJsYW5ndWFnZUNoYXJhY3RlcnNQcm9wcyIsImNvbXBvbmVudCIsImRpc2FibGVGb2N1c0xpc3RlbmVyIiwiZGlzYWJsZVRvdWNoTGlzdGVuZXIiLCJwbGFjZW1lbnQiLCJ0aXRsZSIsIm1hcCIsImNob2ljZSIsImluZGV4Iiwia2V5IiwiQ2hvaWNlQ29uZmlndXJhdGlvbiIsInVzZUxldHRlck9yZGVyaW5nIiwibW9kZSIsImRhdGEiLCJkZWZhdWx0RmVlZGJhY2siLCJkaXNhYmxlSW1hZ2VBbGlnbm1lbnRCdXR0b25zIiwib25EZWxldGUiLCJjIiwiYWxsb3dGZWVkQmFjayIsImFsbG93RGVsZXRlIiwibm9MYWJlbHMiLCJwbHVnaW5PcHRzIiwidmFsdWUiLCJub0NvcnJlY3RBbnN3ZXJFcnJvciIsInZhcmlhbnQiLCJvbkNsaWNrIiwiTWFpbiIsIlJlYWN0IiwiQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJhcmdzIiwiX2RlZmluZVByb3BlcnR5MiIsInNob3dXYXJuaW5nIiwib25Nb2RlbENoYW5nZWQiLCJtaW5BbnN3ZXJDaG9pY2VzIiwic2V0U3RhdGUiLCJzcGxpY2UiLCJwdXNoIiwidXRpbHMiLCJmaXJzdEF2YWlsYWJsZUluZGV4IiwidHlwZSIsImNvcnJlY3QiLCJtZXJnZSIsImNvcnJlY3RGb3VuZCIsInJlbmRlciIsInN0YXRlIiwiRnJhZ21lbnQiLCJBbGVydERpYWxvZyIsIm9wZW4iLCJ0ZXh0Iiwib25Db25maXJtIiwiX2V4dGVuZHMyIiwiZXhwb3J0cyIsIlByb3BUeXBlcyIsIm9iamVjdCIsImlzUmVxdWlyZWQiLCJkaXNhYmxlU2lkZVBhbmVsIiwiYm9vbCIsImZ1bmMiLCJzaGFwZSIsImFkZCIsImRlbGV0ZSIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vc3JjL21haW4uanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgc3R5bGVkIH0gZnJvbSAnQG11aS9tYXRlcmlhbC9zdHlsZXMnO1xuaW1wb3J0IEVkaXRhYmxlSHRtbCBmcm9tICdAcGllLWxpYi9lZGl0YWJsZS1odG1sLXRpcC10YXAnO1xuaW1wb3J0IHtcbiAgQWxlcnREaWFsb2csXG4gIElucHV0Q29udGFpbmVyLFxuICBDaG9pY2VDb25maWd1cmF0aW9uLFxuICBzZXR0aW5ncyxcbiAgbGF5b3V0LFxuICBjaG9pY2VVdGlscyBhcyB1dGlscyxcbn0gZnJvbSAnQHBpZS1saWIvY29uZmlnLXVpJztcbmltcG9ydCB7IGNvbG9yIH0gZnJvbSAnQHBpZS1saWIvcmVuZGVyLXVpJztcbmltcG9ydCBCdXR0b24gZnJvbSAnQG11aS9tYXRlcmlhbC9CdXR0b24nO1xuaW1wb3J0IFRvb2x0aXAgZnJvbSAnQG11aS9tYXRlcmlhbC9Ub29sdGlwJztcbmltcG9ydCBUeXBvZ3JhcGh5IGZyb20gJ0BtdWkvbWF0ZXJpYWwvVHlwb2dyYXBoeSc7XG5pbXBvcnQgQm94IGZyb20gJ0BtdWkvbWF0ZXJpYWwvQm94JztcbmltcG9ydCBJbmZvIGZyb20gJ0BtdWkvaWNvbnMtbWF0ZXJpYWwvSW5mbyc7XG5pbXBvcnQgeyBtZXJnZSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBnZW5lcmF0ZVZhbGlkYXRpb25NZXNzYWdlIH0gZnJvbSAnLi91dGlscyc7XG5cbmNvbnN0IHsgUGFuZWwsIHRvZ2dsZSwgcmFkaW8sIGRyb3Bkb3duIH0gPSBzZXR0aW5ncztcblxuY29uc3QgTUFYX0NIT0lDRVMgPSA5O1xuXG5jb25zdCBQcm9tcHRIb2xkZXIgPSBzdHlsZWQoSW5wdXRDb250YWluZXIpKCh7IHRoZW1lIH0pID0+ICh7XG4gIHdpZHRoOiAnMTAwJScsXG4gIHBhZGRpbmdUb3A6IHRoZW1lLnNwYWNpbmcoMiksXG4gIG1hcmdpbkJvdHRvbTogdGhlbWUuc3BhY2luZygyKSxcbn0pKTtcblxuY29uc3QgUmF0aW9uYWxlSG9sZGVyID0gc3R5bGVkKElucHV0Q29udGFpbmVyKSgoeyB0aGVtZSB9KSA9PiAoe1xuICBmbGV4OiAxLFxuICBtYXJnaW5Ub3A6IHRoZW1lLnNwYWNpbmcoMS41KSxcbiAgcGFkZGluZ1RvcDogdGhlbWUuc3BhY2luZygyKSxcbiAgbWFyZ2luTGVmdDogdGhlbWUuc3BhY2luZygzLjUpLFxufSkpO1xuXG5jb25zdCBDaG9pY2VDb25maWd1cmF0aW9uSG9sZGVyID0gc3R5bGVkKElucHV0Q29udGFpbmVyKSgoeyB0aGVtZSB9KSA9PiAoe1xuICBkaXNwbGF5OiAnZmxleCcsXG4gIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICBtYXJnaW5Cb3R0b206IHRoZW1lLnNwYWNpbmcoMSksXG4gIHdpZHRoOiAnMTAwJScsXG59KSk7XG5cblxuY29uc3QgQWRkQnV0dG9uID0gc3R5bGVkKEJ1dHRvbikoKHsgdGhlbWUgfSkgPT4gKHtcbiAgbWFyZ2luVG9wOiB0aGVtZS5zcGFjaW5nKDEpLFxuICBmbG9hdDogJ3JpZ2h0Jyxcbn0pKTtcblxuY29uc3QgRGlzYWJsZUJ1dHRvbiA9IHN0eWxlZChBZGRCdXR0b24pKHtcbiAgY3Vyc29yOiAnbm90LWFsbG93ZWQnLFxuICBwb2ludGVyRXZlbnRzOiAnYWxsJyxcbiAgYmFja2dyb3VuZENvbG9yOiBjb2xvci5kaXNhYmxlZCgpLFxuICAnJjpob3Zlcic6IHtcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9yLmRpc2FibGVkKCksXG4gIH0sXG4gICcmOmZvY3VzJzoge1xuICAgIGJhY2tncm91bmRDb2xvcjogY29sb3IuZGlzYWJsZWQoKSxcbiAgfSxcbn0pO1xuXG5jb25zdCBGbGV4Q29udGFpbmVyID0gc3R5bGVkKEJveCkoe1xuICBkaXNwbGF5OiAnZmxleCcsXG4gIGFsaWduSXRlbXM6ICdjZW50ZXInLFxufSk7XG5cbmNvbnN0IFRpdGxlVGV4dCA9IHN0eWxlZChUeXBvZ3JhcGh5KSgoeyB0aGVtZSB9KSA9PiAoe1xuICBmb250U2l6ZTogdGhlbWUudHlwb2dyYXBoeS5mb250U2l6ZSArIDIsXG4gIG1hcmdpblJpZ2h0OiB0aGVtZS5zcGFjaW5nKDEpLFxufSkpO1xuXG5jb25zdCBTdHlsZWRUb29sdGlwID0gc3R5bGVkKFRvb2x0aXApKCh7IHRoZW1lIH0pID0+ICh7XG4gICcmIC5NdWlUb29sdGlwLXRvb2x0aXAnOiB7XG4gICAgZm9udFNpemU6IHRoZW1lLnR5cG9ncmFwaHkuZm9udFNpemUgLSAyLFxuICAgIHdoaXRlU3BhY2U6ICdwcmUnLFxuICAgIG1heFdpZHRoOiAnNTAwcHgnLFxuICB9LFxufSkpO1xuXG5jb25zdCBFcnJvclRleHQgPSBzdHlsZWQoJ2RpdicpKCh7IHRoZW1lIH0pID0+ICh7XG4gIGZvbnRTaXplOiB0aGVtZS50eXBvZ3JhcGh5LmZvbnRTaXplIC0gMixcbiAgY29sb3I6IHRoZW1lLnBhbGV0dGUuZXJyb3IubWFpbixcbiAgcGFkZGluZ1RvcDogdGhlbWUuc3BhY2luZygxKSxcbn0pKTtcblxuY29uc3QgRGVzaWduID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBtb2RlbCxcbiAgICBjb25maWd1cmF0aW9uLFxuICAgIG9uUHJvbXB0Q2hhbmdlZCxcbiAgICBvbkNob2ljZUNoYW5nZWQsXG4gICAgb25SZW1vdmVDaG9pY2UsXG4gICAgb25BZGRDaG9pY2UsXG4gICAgaW1hZ2VTdXBwb3J0LFxuICAgIHVwbG9hZFNvdW5kU3VwcG9ydCxcbiAgICBvbkNoYW5nZU1vZGVsLFxuICAgIG9uQ29uZmlndXJhdGlvbkNoYW5nZWQsXG4gICAgb25UZWFjaGVySW5zdHJ1Y3Rpb25zQ2hhbmdlZCxcbiAgfSA9IHByb3BzO1xuXG4gIGNvbnN0IHtcbiAgICBhZGRDaG9pY2VCdXR0b24gPSB7fSxcbiAgICBjb250ZW50RGltZW5zaW9ucyA9IHt9LFxuICAgIGZlZWRiYWNrID0ge30sXG4gICAgZGVsZXRlQ2hvaWNlID0ge30sXG4gICAgY2hvaWNlTW9kZSA9IHt9LFxuICAgIGNob2ljZVByZWZpeCA9IHt9LFxuICAgIHBhcnRpYWxTY29yaW5nID0ge30sXG4gICAgbG9ja0Nob2ljZU9yZGVyID0ge30sXG4gICAgdGVhY2hlckluc3RydWN0aW9ucyA9IHt9LFxuICAgIHN0dWRlbnRJbnN0cnVjdGlvbnMgPSB7fSxcbiAgICByYXRpb25hbGUgPSB7fSxcbiAgICBzY29yaW5nVHlwZSA9IHt9LFxuICAgIHNlcXVlbnRpYWxDaG9pY2VMYWJlbHMgPSB7fSxcbiAgICBzZXR0aW5nc1BhbmVsRGlzYWJsZWQsXG4gICAgY2hvaWNlc0xheW91dCxcbiAgICBzcGVsbENoZWNrID0ge30sXG4gICAgZ3JpZENvbHVtbnMsXG4gICAgbWF4SW1hZ2VXaWR0aCA9IHt9LFxuICAgIG1heEltYWdlSGVpZ2h0ID0ge30sXG4gICAgcHJvbXB0ID0ge30sXG4gICAgd2l0aFJ1YnJpYyA9IHt9LFxuICAgIG1hdGhNbE9wdGlvbnMgPSB7fSxcbiAgICBsYW5ndWFnZSA9IHt9LFxuICAgIGxhbmd1YWdlQ2hvaWNlcyA9IHt9LFxuICB9ID0gY29uZmlndXJhdGlvbiB8fCB7fTtcbiAgbGV0IHsgbWF4QW5zd2VyQ2hvaWNlcyB9ID0gY29uZmlndXJhdGlvbiB8fCB7fTtcbiAgY29uc3Qge1xuICAgIGxpbWl0Q2hvaWNlc051bWJlcixcbiAgICB0ZWFjaGVySW5zdHJ1Y3Rpb25zRW5hYmxlZCxcbiAgICByYXRpb25hbGVFbmFibGVkLFxuICAgIGZlZWRiYWNrRW5hYmxlZCxcbiAgICBwcm9tcHRFbmFibGVkLFxuICAgIHNwZWxsQ2hlY2tFbmFibGVkLFxuICAgIGNob2ljZXMsXG4gICAgZXJyb3JzLFxuICAgIHRvb2xiYXJFZGl0b3JQb3NpdGlvbixcbiAgICBleHRyYUNTU1J1bGVzLFxuICB9ID0gbW9kZWwgfHwge307XG5cbiAgY29uc3Qge1xuICAgIGFuc3dlckNob2ljZXM6IGFuc3dlckNob2ljZXNFcnJvcixcbiAgICBjaG9pY2VzOiBjaG9pY2VzRXJyb3JzLFxuICAgIGNvcnJlY3RSZXNwb25zZTogY29ycmVjdFJlc3BvbnNlRXJyb3IsXG4gICAgcHJvbXB0OiBwcm9tcHRFcnJvcixcbiAgICByYXRpb25hbGU6IHJhdGlvbmFsZUVycm9ycyxcbiAgICB0ZWFjaGVySW5zdHJ1Y3Rpb25zOiB0ZWFjaGVySW5zdHJ1Y3Rpb25zRXJyb3IsXG4gIH0gPSBlcnJvcnMgfHwge307XG4gIGNvbnN0IG5yT2ZDb2x1bW5zQXZhaWxhYmxlID0gY2hvaWNlcz8ubGVuZ3RoID8gQXJyYXkuZnJvbSh7IGxlbmd0aDogY2hvaWNlcy5sZW5ndGggfSwgKF8sIGkpID0+IGAke2kgKyAxfWApIDogW107XG5cbiAgY29uc3QgeyBiYXNlSW5wdXRDb25maWd1cmF0aW9uID0ge30gfSA9IGNvbmZpZ3VyYXRpb247XG4gIGNvbnN0IHRvb2xiYXJPcHRzID0ge1xuICAgIHBvc2l0aW9uOiB0b29sYmFyRWRpdG9yUG9zaXRpb24gPT09ICd0b3AnID8gJ3RvcCcgOiAnYm90dG9tJyxcbiAgfTtcblxuICAvLyBpZiBvbGQgcHJvcGVydHkgaXMgdXNlZCwgc2V0IG1heEFuc3dlckNob2ljZXMgdG8gOVxuICBpZiAobGltaXRDaG9pY2VzTnVtYmVyKSB7XG4gICAgbWF4QW5zd2VyQ2hvaWNlcyA9IE1BWF9DSE9JQ0VTO1xuICB9XG5cbiAgY29uc3QgZ2V0UGx1Z2luUHJvcHMgPSAocHJvcHMgPSB7fSkgPT4gKHtcbiAgICAuLi5iYXNlSW5wdXRDb25maWd1cmF0aW9uLFxuICAgIC4uLnByb3BzLFxuICB9KTtcblxuICBjb25zdCB2YWxpZGF0aW9uTWVzc2FnZSA9IGdlbmVyYXRlVmFsaWRhdGlvbk1lc3NhZ2UoY29uZmlndXJhdGlvbik7XG4gIGNvbnN0IGRlZmF1bHRJbWFnZU1heFdpZHRoID0gbWF4SW1hZ2VXaWR0aCAmJiBtYXhJbWFnZVdpZHRoLnByb21wdDtcbiAgY29uc3QgZGVmYXVsdEltYWdlTWF4SGVpZ2h0ID0gbWF4SW1hZ2VIZWlnaHQgJiYgbWF4SW1hZ2VIZWlnaHQucHJvbXB0O1xuICBjb25zdCBhZGRDaG9pY2VCdXR0b25Ub29sdGlwID1cbiAgICBtYXhBbnN3ZXJDaG9pY2VzICYmIGNob2ljZXM/Lmxlbmd0aCA+PSBtYXhBbnN3ZXJDaG9pY2VzID8gYE9ubHkgJHttYXhBbnN3ZXJDaG9pY2VzfSBhbGxvd2VkIG1heGltdW1gIDogJyc7XG5cbiAgY29uc3QgcGFuZWxTZXR0aW5ncyA9IHtcbiAgICBjaG9pY2VNb2RlOiBjaG9pY2VNb2RlLnNldHRpbmdzICYmIHJhZGlvKGNob2ljZU1vZGUubGFiZWwsIFsnY2hlY2tib3gnLCAncmFkaW8nXSksXG4gICAgJ3NlcXVlbnRpYWxDaG9pY2VMYWJlbHMuZW5hYmxlZCc6IHNlcXVlbnRpYWxDaG9pY2VMYWJlbHMuc2V0dGluZ3MgJiYgdG9nZ2xlKHNlcXVlbnRpYWxDaG9pY2VMYWJlbHMubGFiZWwsIHRydWUpLFxuICAgIGNob2ljZVByZWZpeDogY2hvaWNlUHJlZml4LnNldHRpbmdzICYmIHJhZGlvKGNob2ljZVByZWZpeC5sYWJlbCwgWydudW1iZXJzJywgJ2xldHRlcnMnXSksXG4gICAgcGFydGlhbFNjb3Jpbmc6IHBhcnRpYWxTY29yaW5nLnNldHRpbmdzICYmIHRvZ2dsZShwYXJ0aWFsU2NvcmluZy5sYWJlbCksXG4gICAgbG9ja0Nob2ljZU9yZGVyOiBsb2NrQ2hvaWNlT3JkZXIuc2V0dGluZ3MgJiYgdG9nZ2xlKGxvY2tDaG9pY2VPcmRlci5sYWJlbCksXG4gICAgZmVlZGJhY2tFbmFibGVkOiBmZWVkYmFjay5zZXR0aW5ncyAmJiB0b2dnbGUoZmVlZGJhY2subGFiZWwpLFxuICAgIGNob2ljZXNMYXlvdXQ6IGNob2ljZXNMYXlvdXQuc2V0dGluZ3MgJiYgZHJvcGRvd24oY2hvaWNlc0xheW91dC5sYWJlbCwgWyd2ZXJ0aWNhbCcsICdncmlkJywgJ2hvcml6b250YWwnXSksXG4gICAgZ3JpZENvbHVtbnM6XG4gICAgICBjaG9pY2VzTGF5b3V0LnNldHRpbmdzICYmXG4gICAgICBtb2RlbC5jaG9pY2VzTGF5b3V0ID09PSAnZ3JpZCcgJiZcbiAgICAgIG5yT2ZDb2x1bW5zQXZhaWxhYmxlLmxlbmd0aCA+IDAgJiZcbiAgICAgIGRyb3Bkb3duKGdyaWRDb2x1bW5zLmxhYmVsLCBuck9mQ29sdW1uc0F2YWlsYWJsZSksXG4gICAgJ2xhbmd1YWdlLmVuYWJsZWQnOiBsYW5ndWFnZS5zZXR0aW5ncyAmJiB0b2dnbGUobGFuZ3VhZ2UubGFiZWwsIHRydWUpLFxuICAgIGxhbmd1YWdlOiBsYW5ndWFnZS5zZXR0aW5ncyAmJiBsYW5ndWFnZS5lbmFibGVkICYmIGRyb3Bkb3duKGxhbmd1YWdlQ2hvaWNlcy5sYWJlbCwgbGFuZ3VhZ2VDaG9pY2VzLm9wdGlvbnMpLFxuICB9O1xuXG4gIGNvbnN0IHBhbmVsUHJvcGVydGllcyA9IHtcbiAgICB0ZWFjaGVySW5zdHJ1Y3Rpb25zRW5hYmxlZDogdGVhY2hlckluc3RydWN0aW9ucy5zZXR0aW5ncyAmJiB0b2dnbGUodGVhY2hlckluc3RydWN0aW9ucy5sYWJlbCksXG4gICAgc3R1ZGVudEluc3RydWN0aW9uc0VuYWJsZWQ6IHN0dWRlbnRJbnN0cnVjdGlvbnMuc2V0dGluZ3MgJiYgdG9nZ2xlKHN0dWRlbnRJbnN0cnVjdGlvbnMubGFiZWwpLFxuICAgIHByb21wdEVuYWJsZWQ6IHByb21wdC5zZXR0aW5ncyAmJiB0b2dnbGUocHJvbXB0LmxhYmVsKSxcbiAgICByYXRpb25hbGVFbmFibGVkOiByYXRpb25hbGUuc2V0dGluZ3MgJiYgdG9nZ2xlKHJhdGlvbmFsZS5sYWJlbCksXG4gICAgc3BlbGxDaGVja0VuYWJsZWQ6IHNwZWxsQ2hlY2suc2V0dGluZ3MgJiYgdG9nZ2xlKHNwZWxsQ2hlY2subGFiZWwpLFxuICAgIHNjb3JpbmdUeXBlOiBzY29yaW5nVHlwZS5zZXR0aW5ncyAmJiByYWRpbyhzY29yaW5nVHlwZS5sYWJlbCwgWydhdXRvJywgJ3J1YnJpYyddKSxcbiAgICBydWJyaWNFbmFibGVkOiB3aXRoUnVicmljPy5zZXR0aW5ncyAmJiB0b2dnbGUod2l0aFJ1YnJpYz8ubGFiZWwpLFxuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPGxheW91dC5Db25maWdMYXlvdXRcbiAgICAgIGRpbWVuc2lvbnM9e2NvbnRlbnREaW1lbnNpb25zfVxuICAgICAgaGlkZVNldHRpbmdzPXtzZXR0aW5nc1BhbmVsRGlzYWJsZWR9XG4gICAgICBleHRyYUNTU1J1bGVzPXtleHRyYUNTU1J1bGVzfVxuICAgICAgY2xhc3Nlcz17e319XG4gICAgICBzZXR0aW5ncz17XG4gICAgICAgIDxQYW5lbFxuICAgICAgICAgIG1vZGVsPXttb2RlbH1cbiAgICAgICAgICBvbkNoYW5nZU1vZGVsPXtvbkNoYW5nZU1vZGVsfVxuICAgICAgICAgIGNvbmZpZ3VyYXRpb249e2NvbmZpZ3VyYXRpb259XG4gICAgICAgICAgb25DaGFuZ2VDb25maWd1cmF0aW9uPXtvbkNvbmZpZ3VyYXRpb25DaGFuZ2VkfVxuICAgICAgICAgIGdyb3Vwcz17e1xuICAgICAgICAgICAgU2V0dGluZ3M6IHBhbmVsU2V0dGluZ3MsXG4gICAgICAgICAgICBQcm9wZXJ0aWVzOiBwYW5lbFByb3BlcnRpZXMsXG4gICAgICAgICAgfX1cbiAgICAgICAgLz5cbiAgICAgIH1cbiAgICA+XG4gICAgICB7dGVhY2hlckluc3RydWN0aW9uc0VuYWJsZWQgJiYgKFxuICAgICAgICA8UHJvbXB0SG9sZGVyIGxhYmVsPXt0ZWFjaGVySW5zdHJ1Y3Rpb25zLmxhYmVsfT5cbiAgICAgICAgICAgIDxFZGl0YWJsZUh0bWxcbiAgICAgICAgICAgICAgbWFya3VwPXttb2RlbC50ZWFjaGVySW5zdHJ1Y3Rpb25zIHx8ICcnfVxuICAgICAgICAgICAgICBvbkNoYW5nZT17b25UZWFjaGVySW5zdHJ1Y3Rpb25zQ2hhbmdlZH1cbiAgICAgICAgICAgICAgaW1hZ2VTdXBwb3J0PXtpbWFnZVN1cHBvcnR9XG4gICAgICAgICAgICAgIG5vbkVtcHR5PXtmYWxzZX1cbiAgICAgICAgICAgICAgZGlzYWJsZVVuZGVybGluZVxuICAgICAgICAgICAgICBlcnJvcj17dGVhY2hlckluc3RydWN0aW9uc0Vycm9yfVxuICAgICAgICAgICAgICB0b29sYmFyT3B0cz17dG9vbGJhck9wdHN9XG4gICAgICAgICAgICAgIHBsdWdpblByb3BzPXtnZXRQbHVnaW5Qcm9wcyhjb25maWd1cmF0aW9uPy50ZWFjaGVySW5zdHJ1Y3Rpb25zPy5pbnB1dENvbmZpZ3VyYXRpb24pfVxuICAgICAgICAgICAgICBzcGVsbENoZWNrPXtzcGVsbENoZWNrRW5hYmxlZH1cbiAgICAgICAgICAgICAgbWF4SW1hZ2VXaWR0aD17KG1heEltYWdlV2lkdGggJiYgbWF4SW1hZ2VXaWR0aC50ZWFjaGVySW5zdHJ1Y3Rpb25zKSB8fCBkZWZhdWx0SW1hZ2VNYXhXaWR0aH1cbiAgICAgICAgICAgICAgbWF4SW1hZ2VIZWlnaHQ9eyhtYXhJbWFnZUhlaWdodCAmJiBtYXhJbWFnZUhlaWdodC50ZWFjaGVySW5zdHJ1Y3Rpb25zKSB8fCBkZWZhdWx0SW1hZ2VNYXhIZWlnaHR9XG4gICAgICAgICAgICAgIHVwbG9hZFNvdW5kU3VwcG9ydD17dXBsb2FkU291bmRTdXBwb3J0fVxuICAgICAgICAgICAgICBsYW5ndWFnZUNoYXJhY3RlcnNQcm9wcz17W3sgbGFuZ3VhZ2U6ICdzcGFuaXNoJyB9LCB7IGxhbmd1YWdlOiAnc3BlY2lhbCcgfV19XG4gICAgICAgICAgICAgIG1hdGhNbE9wdGlvbnM9e21hdGhNbE9wdGlvbnN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAge3RlYWNoZXJJbnN0cnVjdGlvbnNFcnJvciAmJiA8RXJyb3JUZXh0Pnt0ZWFjaGVySW5zdHJ1Y3Rpb25zRXJyb3J9PC9FcnJvclRleHQ+fVxuICAgICAgICA8L1Byb21wdEhvbGRlcj5cbiAgICAgICl9XG5cbiAgICAgIHtwcm9tcHRFbmFibGVkICYmIChcbiAgICAgICAgPFByb21wdEhvbGRlciBsYWJlbD17cHJvbXB0LmxhYmVsfT5cbiAgICAgICAgICAgIDxFZGl0YWJsZUh0bWxcbiAgICAgICAgICAgICAgbWFya3VwPXttb2RlbC5wcm9tcHR9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXtvblByb21wdENoYW5nZWR9XG4gICAgICAgICAgICAgIGltYWdlU3VwcG9ydD17aW1hZ2VTdXBwb3J0fVxuICAgICAgICAgICAgICBub25FbXB0eT17ZmFsc2V9XG4gICAgICAgICAgICAgIGRpc2FibGVVbmRlcmxpbmVcbiAgICAgICAgICAgICAgZXJyb3I9e3Byb21wdEVycm9yfVxuICAgICAgICAgICAgICB0b29sYmFyT3B0cz17dG9vbGJhck9wdHN9XG4gICAgICAgICAgICAgIHBsdWdpblByb3BzPXtnZXRQbHVnaW5Qcm9wcyhjb25maWd1cmF0aW9uPy5wcm9tcHQ/LmlucHV0Q29uZmlndXJhdGlvbil9XG4gICAgICAgICAgICAgIHNwZWxsQ2hlY2s9e3NwZWxsQ2hlY2tFbmFibGVkfVxuICAgICAgICAgICAgICBtYXhJbWFnZVdpZHRoPXttYXhJbWFnZVdpZHRoICYmIG1heEltYWdlV2lkdGgucHJvbXB0fVxuICAgICAgICAgICAgICBtYXhJbWFnZUhlaWdodD17bWF4SW1hZ2VIZWlnaHQgJiYgbWF4SW1hZ2VIZWlnaHQucHJvbXB0fVxuICAgICAgICAgICAgICB1cGxvYWRTb3VuZFN1cHBvcnQ9e3VwbG9hZFNvdW5kU3VwcG9ydH1cbiAgICAgICAgICAgICAgbGFuZ3VhZ2VDaGFyYWN0ZXJzUHJvcHM9e1t7IGxhbmd1YWdlOiAnc3BhbmlzaCcgfSwgeyBsYW5ndWFnZTogJ3NwZWNpYWwnIH1dfVxuICAgICAgICAgICAgICBtYXRoTWxPcHRpb25zPXttYXRoTWxPcHRpb25zfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIHtwcm9tcHRFcnJvciAmJiA8RXJyb3JUZXh0Pntwcm9tcHRFcnJvcn08L0Vycm9yVGV4dD59XG4gICAgICAgIDwvUHJvbXB0SG9sZGVyPlxuICAgICAgKX1cblxuICAgICAgPEZsZXhDb250YWluZXI+XG4gICAgICAgIDxUaXRsZVRleHQgY29tcG9uZW50PXsnZGl2J30+XG4gICAgICAgICAgQ2hvaWNlc1xuICAgICAgICA8L1RpdGxlVGV4dD5cbiAgICAgICAgPFN0eWxlZFRvb2x0aXBcbiAgICAgICAgICBkaXNhYmxlRm9jdXNMaXN0ZW5lclxuICAgICAgICAgIGRpc2FibGVUb3VjaExpc3RlbmVyXG4gICAgICAgICAgcGxhY2VtZW50PXsncmlnaHQnfVxuICAgICAgICAgIHRpdGxlPXt2YWxpZGF0aW9uTWVzc2FnZX1cbiAgICAgICAgPlxuICAgICAgICAgIDxJbmZvIGZvbnRTaXplPXsnc21hbGwnfSBjb2xvcj17J3ByaW1hcnknfSAvPlxuICAgICAgICA8L1N0eWxlZFRvb2x0aXA+XG4gICAgICA8L0ZsZXhDb250YWluZXI+XG5cbiAgICAgIHtjaG9pY2VzLm1hcCgoY2hvaWNlLCBpbmRleCkgPT4gKFxuICAgICAgICA8Q2hvaWNlQ29uZmlndXJhdGlvbkhvbGRlciBrZXk9e2BjaG9pY2UtJHtpbmRleH1gfT5cbiAgICAgICAgICA8Q2hvaWNlQ29uZmlndXJhdGlvblxuICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgIGluZGV4PXtpbmRleCArIDF9XG4gICAgICAgICAgICB1c2VMZXR0ZXJPcmRlcmluZz17bW9kZWwuY2hvaWNlUHJlZml4ID09PSAnbGV0dGVycyd9XG4gICAgICAgICAgICBtb2RlPXttb2RlbC5jaG9pY2VNb2RlfVxuICAgICAgICAgICAgZGF0YT17Y2hvaWNlfVxuICAgICAgICAgICAgZGVmYXVsdEZlZWRiYWNrPXt7fX1cbiAgICAgICAgICAgIGltYWdlU3VwcG9ydD17aW1hZ2VTdXBwb3J0fVxuICAgICAgICAgICAgZGlzYWJsZUltYWdlQWxpZ25tZW50QnV0dG9ucz17dHJ1ZX1cbiAgICAgICAgICAgIG9uRGVsZXRlPXsoKSA9PiBvblJlbW92ZUNob2ljZShpbmRleCl9XG4gICAgICAgICAgICBvbkNoYW5nZT17KGMpID0+IG9uQ2hvaWNlQ2hhbmdlZChpbmRleCwgYyl9XG4gICAgICAgICAgICBhbGxvd0ZlZWRCYWNrPXtmZWVkYmFja0VuYWJsZWR9XG4gICAgICAgICAgICBhbGxvd0RlbGV0ZT17ZGVsZXRlQ2hvaWNlLnNldHRpbmdzfVxuICAgICAgICAgICAgbm9MYWJlbHNcbiAgICAgICAgICAgIHBsdWdpbk9wdHM9e2dldFBsdWdpblByb3BzKGNvbmZpZ3VyYXRpb24/LmNob2ljZXM/LmlucHV0Q29uZmlndXJhdGlvbil9XG4gICAgICAgICAgICB0b29sYmFyT3B0cz17dG9vbGJhck9wdHN9XG4gICAgICAgICAgICBzcGVsbENoZWNrPXtzcGVsbENoZWNrRW5hYmxlZH1cbiAgICAgICAgICAgIGVycm9yPXtjaG9pY2VzRXJyb3JzPy5bY2hvaWNlLnZhbHVlXSB8fCBudWxsfVxuICAgICAgICAgICAgbm9Db3JyZWN0QW5zd2VyRXJyb3I9e2NvcnJlY3RSZXNwb25zZUVycm9yfVxuICAgICAgICAgICAgbWF4SW1hZ2VXaWR0aD17KG1heEltYWdlV2lkdGggJiYgbWF4SW1hZ2VXaWR0aC5jaG9pY2VzKSB8fCBkZWZhdWx0SW1hZ2VNYXhXaWR0aH1cbiAgICAgICAgICAgIG1heEltYWdlSGVpZ2h0PXsobWF4SW1hZ2VIZWlnaHQgJiYgbWF4SW1hZ2VIZWlnaHQuY2hvaWNlcykgfHwgZGVmYXVsdEltYWdlTWF4SGVpZ2h0fVxuICAgICAgICAgICAgdXBsb2FkU291bmRTdXBwb3J0PXt1cGxvYWRTb3VuZFN1cHBvcnR9XG4gICAgICAgICAgICBtYXRoTWxPcHRpb25zPXttYXRoTWxPcHRpb25zfVxuICAgICAgICAgIC8+XG5cbiAgICAgICAgICB7cmF0aW9uYWxlRW5hYmxlZCAmJiAoXG4gICAgICAgICAgICA8UmF0aW9uYWxlSG9sZGVyIGtleT17YHJhdGlvbmFsZS0ke2luZGV4fWB9IGxhYmVsPXtyYXRpb25hbGUubGFiZWx9PlxuICAgICAgICAgICAgICAgIDxFZGl0YWJsZUh0bWxcbiAgICAgICAgICAgICAgICAgIG1hcmt1cD17Y2hvaWNlLnJhdGlvbmFsZSB8fCAnJ31cbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoYykgPT4gb25DaG9pY2VDaGFuZ2VkKGluZGV4LCB7IC4uLmNob2ljZSwgcmF0aW9uYWxlOiBjIH0pfVxuICAgICAgICAgICAgICAgICAgaW1hZ2VTdXBwb3J0PXtpbWFnZVN1cHBvcnR9XG4gICAgICAgICAgICAgICAgICBlcnJvcj17cmF0aW9uYWxlRXJyb3JzPy5bY2hvaWNlLnZhbHVlXSB8fCBudWxsfVxuICAgICAgICAgICAgICAgICAgdG9vbGJhck9wdHM9e3Rvb2xiYXJPcHRzfVxuICAgICAgICAgICAgICAgICAgcGx1Z2luUHJvcHM9e2dldFBsdWdpblByb3BzKGNvbmZpZ3VyYXRpb24/LnJhdGlvbmFsZT8uaW5wdXRDb25maWd1cmF0aW9uKX1cbiAgICAgICAgICAgICAgICAgIHNwZWxsQ2hlY2s9e3NwZWxsQ2hlY2tFbmFibGVkfVxuICAgICAgICAgICAgICAgICAgbWF4SW1hZ2VXaWR0aD17KG1heEltYWdlV2lkdGggJiYgbWF4SW1hZ2VXaWR0aC5yYXRpb25hbGUpIHx8IGRlZmF1bHRJbWFnZU1heFdpZHRofVxuICAgICAgICAgICAgICAgICAgbWF4SW1hZ2VIZWlnaHQ9eyhtYXhJbWFnZUhlaWdodCAmJiBtYXhJbWFnZUhlaWdodC5yYXRpb25hbGUpIHx8IGRlZmF1bHRJbWFnZU1heEhlaWdodH1cbiAgICAgICAgICAgICAgICAgIHVwbG9hZFNvdW5kU3VwcG9ydD17dXBsb2FkU291bmRTdXBwb3J0fVxuICAgICAgICAgICAgICAgICAgbGFuZ3VhZ2VDaGFyYWN0ZXJzUHJvcHM9e1t7IGxhbmd1YWdlOiAnc3BhbmlzaCcgfSwgeyBsYW5ndWFnZTogJ3NwZWNpYWwnIH1dfVxuICAgICAgICAgICAgICAgICAgbWF0aE1sT3B0aW9ucz17bWF0aE1sT3B0aW9uc31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIHtyYXRpb25hbGVFcnJvcnM/LltjaG9pY2UudmFsdWVdICYmIChcbiAgICAgICAgICAgICAgICAgIDxFcnJvclRleHQ+e3JhdGlvbmFsZUVycm9ycz8uW2Nob2ljZS52YWx1ZV19PC9FcnJvclRleHQ+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvUmF0aW9uYWxlSG9sZGVyPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvQ2hvaWNlQ29uZmlndXJhdGlvbkhvbGRlcj5cbiAgICAgICkpfVxuXG4gICAgICB7Y29ycmVjdFJlc3BvbnNlRXJyb3IgJiYgPEVycm9yVGV4dD57Y29ycmVjdFJlc3BvbnNlRXJyb3J9PC9FcnJvclRleHQ+fVxuICAgICAge2Fuc3dlckNob2ljZXNFcnJvciAmJiA8RXJyb3JUZXh0PnthbnN3ZXJDaG9pY2VzRXJyb3J9PC9FcnJvclRleHQ+fVxuXG4gICAgICB7YWRkQ2hvaWNlQnV0dG9uLnNldHRpbmdzICYmIChcbiAgICAgICAgPFN0eWxlZFRvb2x0aXAgdGl0bGU9e2FkZENob2ljZUJ1dHRvblRvb2x0aXB9PlxuICAgICAgICAgIHttYXhBbnN3ZXJDaG9pY2VzICYmIGNob2ljZXM/Lmxlbmd0aCA+PSBtYXhBbnN3ZXJDaG9pY2VzID8gKFxuICAgICAgICAgICAgPERpc2FibGVCdXR0b25cbiAgICAgICAgICAgICAgdmFyaWFudD1cImNvbnRhaW5lZFwiXG4gICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uQWRkQ2hvaWNlfVxuICAgICAgICAgICAgICBkaXNhYmxlZFxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7YWRkQ2hvaWNlQnV0dG9uLmxhYmVsfVxuICAgICAgICAgICAgPC9EaXNhYmxlQnV0dG9uPlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8QWRkQnV0dG9uXG4gICAgICAgICAgICAgIHZhcmlhbnQ9XCJjb250YWluZWRcIlxuICAgICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvbkFkZENob2ljZX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2FkZENob2ljZUJ1dHRvbi5sYWJlbH1cbiAgICAgICAgICAgIDwvQWRkQnV0dG9uPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvU3R5bGVkVG9vbHRpcD5cbiAgICAgICl9XG4gICAgPC9sYXlvdXQuQ29uZmlnTGF5b3V0PlxuICApO1xufTtcblxuZXhwb3J0IGNsYXNzIE1haW4gZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIG1vZGVsOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgY29uZmlndXJhdGlvbjogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIGRpc2FibGVTaWRlUGFuZWw6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uTW9kZWxDaGFuZ2VkOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uQ29uZmlndXJhdGlvbkNoYW5nZWQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgaW1hZ2VTdXBwb3J0OiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgYWRkOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgZGVsZXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIH0pLFxuICB9O1xuXG4gIHN0YXRlID0geyBzaG93V2FybmluZzogZmFsc2UgfTtcblxuICBvblJlbW92ZUNob2ljZSA9IChpbmRleCkgPT4ge1xuICAgIGNvbnN0IHsgbW9kZWwsIGNvbmZpZ3VyYXRpb24sIG9uTW9kZWxDaGFuZ2VkIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHsgbWluQW5zd2VyQ2hvaWNlcyB9ID0gY29uZmlndXJhdGlvbiB8fCB7fTtcblxuICAgIGlmIChtaW5BbnN3ZXJDaG9pY2VzICYmIG1vZGVsLmNob2ljZXMubGVuZ3RoID09PSBtaW5BbnN3ZXJDaG9pY2VzKSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHsgc2hvd1dhcm5pbmc6IHRydWUgfSk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBtb2RlbC5jaG9pY2VzLnNwbGljZShpbmRleCwgMSk7XG4gICAgb25Nb2RlbENoYW5nZWQoe1xuICAgICAgY2hvaWNlczogbW9kZWwuY2hvaWNlcyxcbiAgICB9KTtcbiAgfTtcblxuICBvbkFkZENob2ljZSA9ICgpID0+IHtcbiAgICBjb25zdCB7IG1vZGVsLCBjb25maWd1cmF0aW9uLCBvbk1vZGVsQ2hhbmdlZCB9ID0gdGhpcy5wcm9wcztcbiAgICBsZXQgeyBtYXhBbnN3ZXJDaG9pY2VzIH0gPSBjb25maWd1cmF0aW9uIHx8IHt9O1xuICAgIGNvbnN0IHsgbGltaXRDaG9pY2VzTnVtYmVyIH0gPSBtb2RlbCB8fCB7fTtcblxuICAgIC8vIGlmIG9sZCBwcm9wZXJ0eSBpcyB1c2VkLCBzZXQgbWF4QW5zd2VyQ2hvaWNlcyB0byA5XG4gICAgaWYgKGxpbWl0Q2hvaWNlc051bWJlcikge1xuICAgICAgbWF4QW5zd2VyQ2hvaWNlcyA9IE1BWF9DSE9JQ0VTO1xuICAgIH1cblxuICAgIGlmIChtYXhBbnN3ZXJDaG9pY2VzICYmIG1vZGVsLmNob2ljZXMubGVuZ3RoID49IG1heEFuc3dlckNob2ljZXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBtb2RlbC5jaG9pY2VzLnB1c2goe1xuICAgICAgbGFiZWw6ICcnLFxuICAgICAgdmFsdWU6IHV0aWxzLmZpcnN0QXZhaWxhYmxlSW5kZXgoXG4gICAgICAgIG1vZGVsLmNob2ljZXMubWFwKChjKSA9PiBjLnZhbHVlKSxcbiAgICAgICAgMCxcbiAgICAgICksXG4gICAgICBmZWVkYmFjazogeyB0eXBlOiAnbm9uZScgfSxcbiAgICB9KTtcblxuICAgIG9uTW9kZWxDaGFuZ2VkKHtcbiAgICAgIGNob2ljZXM6IG1vZGVsLmNob2ljZXMsXG4gICAgfSk7XG4gIH07XG5cbiAgb25DaG9pY2VDaGFuZ2VkID0gKGluZGV4LCBjaG9pY2UpID0+IHtcbiAgICBjb25zdCB7IG1vZGVsLCBvbk1vZGVsQ2hhbmdlZCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjaG9pY2UuY29ycmVjdCAmJiBtb2RlbC5jaG9pY2VNb2RlID09PSAncmFkaW8nKSB7XG4gICAgICBtb2RlbC5jaG9pY2VzID0gbW9kZWwuY2hvaWNlcy5tYXAoKGMpID0+IG1lcmdlKHt9LCBjLCB7IGNvcnJlY3Q6IGZhbHNlIH0pKTtcbiAgICB9XG5cbiAgICBtb2RlbC5jaG9pY2VzLnNwbGljZShpbmRleCwgMSwgY2hvaWNlKTtcbiAgICBvbk1vZGVsQ2hhbmdlZCh7XG4gICAgICBjaG9pY2VzOiBtb2RlbC5jaG9pY2VzLFxuICAgIH0pO1xuICB9O1xuXG4gIG9uUHJvbXB0Q2hhbmdlZCA9IChwcm9tcHQpID0+IHtcbiAgICB0aGlzLnByb3BzLm9uTW9kZWxDaGFuZ2VkKHtcbiAgICAgIHByb21wdCxcbiAgICB9KTtcbiAgfTtcblxuICBvblRlYWNoZXJJbnN0cnVjdGlvbnNDaGFuZ2VkID0gKHRlYWNoZXJJbnN0cnVjdGlvbnMpID0+IHtcbiAgICB0aGlzLnByb3BzLm9uTW9kZWxDaGFuZ2VkKHtcbiAgICAgIHRlYWNoZXJJbnN0cnVjdGlvbnMsXG4gICAgfSk7XG4gIH07XG5cbiAgb25Nb2RlbENoYW5nZWQgPSAobW9kZWwsIGtleSkgPT4ge1xuICAgIGNvbnN0IHsgb25Nb2RlbENoYW5nZWQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgY2FzZSAnY2hvaWNlTW9kZSc6IHtcbiAgICAgICAgbGV0IHZhbHVlID0gbW9kZWwuY2hvaWNlTW9kZTtcblxuICAgICAgICBpZiAodmFsdWUgPT09ICdyYWRpbycpIHtcbiAgICAgICAgICBsZXQgY29ycmVjdEZvdW5kID0gZmFsc2U7XG5cbiAgICAgICAgICBtb2RlbC5jaG9pY2VzID0gbW9kZWwuY2hvaWNlcy5tYXAoKGMpID0+IHtcbiAgICAgICAgICAgIGlmIChjb3JyZWN0Rm91bmQpIHtcbiAgICAgICAgICAgICAgYy5jb3JyZWN0ID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgcmV0dXJuIGM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChjLmNvcnJlY3QpIHtcbiAgICAgICAgICAgICAgY29ycmVjdEZvdW5kID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGM7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBvbk1vZGVsQ2hhbmdlZCh7XG4gICAgICAgICAgY2hvaWNlTW9kZTogbW9kZWwuY2hvaWNlTW9kZSxcbiAgICAgICAgICBjaG9pY2VzOiBtb2RlbC5jaG9pY2VzLFxuICAgICAgICB9LCB0cnVlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIG9uTW9kZWxDaGFuZ2VkKG1vZGVsKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7IGNvbmZpZ3VyYXRpb246IHsgbWluQW5zd2VyQ2hvaWNlcyB9ID0ge30gfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyBzaG93V2FybmluZyB9ID0gdGhpcy5zdGF0ZTtcblxuICAgIHJldHVybiAoXG4gICAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICAgIDxBbGVydERpYWxvZ1xuICAgICAgICAgIG9wZW49e3Nob3dXYXJuaW5nfVxuICAgICAgICAgIHRpdGxlPVwiV2FybmluZ1wiXG4gICAgICAgICAgdGV4dD17YFRoZXJlIGNhbid0IGJlIGxlc3MgdGhhbiAke21pbkFuc3dlckNob2ljZXMgfHwgMH0gY2hvaWNlcy5gfVxuICAgICAgICAgIG9uQ29uZmlybT17KCkgPT4gdGhpcy5zZXRTdGF0ZSh7IHNob3dXYXJuaW5nOiBmYWxzZSB9KX1cbiAgICAgICAgLz5cbiAgICAgICAgPERlc2lnblxuICAgICAgICAgIHsuLi50aGlzLnByb3BzfVxuICAgICAgICAgIG9uQ2hhbmdlTW9kZWw9e3RoaXMub25Nb2RlbENoYW5nZWR9XG4gICAgICAgICAgb25SZW1vdmVDaG9pY2U9e3RoaXMub25SZW1vdmVDaG9pY2V9XG4gICAgICAgICAgb25DaG9pY2VDaGFuZ2VkPXt0aGlzLm9uQ2hvaWNlQ2hhbmdlZH1cbiAgICAgICAgICBvbkFkZENob2ljZT17dGhpcy5vbkFkZENob2ljZX1cbiAgICAgICAgICBvblByb21wdENoYW5nZWQ9e3RoaXMub25Qcm9tcHRDaGFuZ2VkfVxuICAgICAgICAgIG9uVGVhY2hlckluc3RydWN0aW9uc0NoYW5nZWQ9e3RoaXMub25UZWFjaGVySW5zdHJ1Y3Rpb25zQ2hhbmdlZH1cbiAgICAgICAgLz5cbiAgICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBNYWluO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxVQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxPQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxtQkFBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUksU0FBQSxHQUFBSixPQUFBO0FBUUEsSUFBQUssU0FBQSxHQUFBTCxPQUFB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
484
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_editableHtmlTipTap","_configUi","_renderUi","_Button","_Tooltip","_Typography","_Box","_Info","_lodashEs","_utils","Panel","toggle","radio","dropdown","settings","MAX_CHOICES","PromptHolder","styled","InputContainer","theme","width","paddingTop","spacing","marginBottom","RationaleHolder","flex","marginTop","marginLeft","ChoiceConfigurationHolder","display","flexDirection","AddButton","Button","float","DisableButton","cursor","pointerEvents","backgroundColor","color","disabled","FlexContainer","Box","alignItems","TitleText","Typography","fontSize","typography","marginRight","StyledTooltip","Tooltip","whiteSpace","maxWidth","ErrorText","palette","error","main","Design","props","model","configuration","onPromptChanged","onChoiceChanged","onRemoveChoice","onAddChoice","imageSupport","uploadSoundSupport","onChangeModel","onConfigurationChanged","onTeacherInstructionsChanged","addChoiceButton","contentDimensions","feedback","deleteChoice","choiceMode","choicePrefix","partialScoring","lockChoiceOrder","teacherInstructions","studentInstructions","rationale","scoringType","sequentialChoiceLabels","settingsPanelDisabled","choicesLayout","spellCheck","gridColumns","maxImageWidth","maxImageHeight","prompt","withRubric","mathMlOptions","language","languageChoices","maxAnswerChoices","limitChoicesNumber","teacherInstructionsEnabled","rationaleEnabled","feedbackEnabled","promptEnabled","spellCheckEnabled","choices","errors","toolbarEditorPosition","extraCSSRules","answerChoices","answerChoicesError","choicesErrors","correctResponse","correctResponseError","promptError","rationaleErrors","teacherInstructionsError","nrOfColumnsAvailable","length","Array","from","_","i","baseInputConfiguration","toolbarOpts","position","getPluginProps","validationMessage","generateValidationMessage","defaultImageMaxWidth","defaultImageMaxHeight","addChoiceButtonTooltip","panelSettings","label","enabled","options","panelProperties","studentInstructionsEnabled","rubricEnabled","default","createElement","layout","ConfigLayout","dimensions","hideSettings","classes","onChangeConfiguration","groups","Settings","Properties","markup","onChange","nonEmpty","disableUnderline","pluginProps","inputConfiguration","languageCharactersProps","component","disableFocusListener","disableTouchListener","placement","title","map","choice","index","key","ChoiceConfiguration","useLetterOrdering","mode","data","defaultFeedback","disableImageAlignmentButtons","onDelete","c","allowFeedBack","allowDelete","noLabels","pluginOpts","value","noCorrectAnswerError","variant","onClick","Main","React","Component","constructor","args","_defineProperty2","showWarning","onModelChanged","minAnswerChoices","setState","splice","push","utils","firstAvailableIndex","type","correct","merge","correctFound","render","state","Fragment","AlertDialog","open","text","onConfirm","_extends2","exports","PropTypes","object","isRequired","disableSidePanel","bool","func","shape","add","delete","_default"],"sources":["../src/main.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport EditableHtml from '@pie-lib/editable-html-tip-tap';\nimport {\n AlertDialog,\n InputContainer,\n ChoiceConfiguration,\n settings,\n layout,\n choiceUtils as utils,\n} from '@pie-lib/config-ui';\nimport { color } from '@pie-lib/render-ui';\nimport Button from '@mui/material/Button';\nimport Tooltip from '@mui/material/Tooltip';\nimport Typography from '@mui/material/Typography';\nimport Box from '@mui/material/Box';\nimport Info from '@mui/icons-material/Info';\nimport { merge } from 'lodash-es';\nimport { generateValidationMessage } from './utils';\n\nconst { Panel, toggle, radio, dropdown } = settings;\n\nconst MAX_CHOICES = 9;\n\nconst PromptHolder = styled(InputContainer)(({ theme }) => ({\n width: '100%',\n paddingTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n}));\n\nconst RationaleHolder = styled(InputContainer)(({ theme }) => ({\n flex: 1,\n marginTop: theme.spacing(1.5),\n paddingTop: theme.spacing(2),\n marginLeft: theme.spacing(3.5),\n}));\n\nconst ChoiceConfigurationHolder = styled(InputContainer)(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n marginBottom: theme.spacing(1),\n width: '100%',\n}));\n\n\nconst AddButton = styled(Button)(({ theme }) => ({\n marginTop: theme.spacing(1),\n float: 'right',\n}));\n\nconst DisableButton = styled(AddButton)({\n cursor: 'not-allowed',\n pointerEvents: 'all',\n backgroundColor: color.disabled(),\n '&:hover': {\n backgroundColor: color.disabled(),\n },\n '&:focus': {\n backgroundColor: color.disabled(),\n },\n});\n\nconst FlexContainer = styled(Box)({\n display: 'flex',\n alignItems: 'center',\n});\n\nconst TitleText = styled(Typography)(({ theme }) => ({\n fontSize: theme.typography.fontSize + 2,\n marginRight: theme.spacing(1),\n}));\n\nconst StyledTooltip = styled(Tooltip)(({ theme }) => ({\n '& .MuiTooltip-tooltip': {\n fontSize: theme.typography.fontSize - 2,\n whiteSpace: 'pre',\n maxWidth: '500px',\n },\n}));\n\nconst ErrorText = styled('div')(({ theme }) => ({\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing(1),\n}));\n\nconst Design = (props) => {\n const {\n model,\n configuration,\n onPromptChanged,\n onChoiceChanged,\n onRemoveChoice,\n onAddChoice,\n imageSupport,\n uploadSoundSupport,\n onChangeModel,\n onConfigurationChanged,\n onTeacherInstructionsChanged,\n } = props;\n\n const {\n addChoiceButton = {},\n contentDimensions = {},\n feedback = {},\n deleteChoice = {},\n choiceMode = {},\n choicePrefix = {},\n partialScoring = {},\n lockChoiceOrder = {},\n teacherInstructions = {},\n studentInstructions = {},\n rationale = {},\n scoringType = {},\n sequentialChoiceLabels = {},\n settingsPanelDisabled,\n choicesLayout,\n spellCheck = {},\n gridColumns,\n maxImageWidth = {},\n maxImageHeight = {},\n prompt = {},\n withRubric = {},\n mathMlOptions = {},\n language = {},\n languageChoices = {},\n } = configuration || {};\n let { maxAnswerChoices } = configuration || {};\n const {\n limitChoicesNumber,\n teacherInstructionsEnabled,\n rationaleEnabled,\n feedbackEnabled,\n promptEnabled,\n spellCheckEnabled,\n choices,\n errors,\n toolbarEditorPosition,\n extraCSSRules,\n } = model || {};\n\n const {\n answerChoices: answerChoicesError,\n choices: choicesErrors,\n correctResponse: correctResponseError,\n prompt: promptError,\n rationale: rationaleErrors,\n teacherInstructions: teacherInstructionsError,\n } = errors || {};\n const nrOfColumnsAvailable = choices?.length ? Array.from({ length: choices.length }, (_, i) => `${i + 1}`) : [];\n\n const { baseInputConfiguration = {} } = configuration;\n const toolbarOpts = {\n position: toolbarEditorPosition === 'top' ? 'top' : 'bottom',\n };\n\n // if old property is used, set maxAnswerChoices to 9\n if (limitChoicesNumber) {\n maxAnswerChoices = MAX_CHOICES;\n }\n\n const getPluginProps = (props = {}) => ({\n ...baseInputConfiguration,\n ...props,\n });\n\n const validationMessage = generateValidationMessage(configuration);\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n const addChoiceButtonTooltip =\n maxAnswerChoices && choices?.length >= maxAnswerChoices ? `Only ${maxAnswerChoices} allowed maximum` : '';\n\n const panelSettings = {\n choiceMode: choiceMode.settings && radio(choiceMode.label, ['checkbox', 'radio']),\n 'sequentialChoiceLabels.enabled': sequentialChoiceLabels.settings && toggle(sequentialChoiceLabels.label, true),\n choicePrefix: choicePrefix.settings && radio(choicePrefix.label, ['numbers', 'letters']),\n partialScoring: partialScoring.settings && toggle(partialScoring.label),\n lockChoiceOrder: lockChoiceOrder.settings && toggle(lockChoiceOrder.label),\n feedbackEnabled: feedback.settings && toggle(feedback.label),\n choicesLayout: choicesLayout.settings && dropdown(choicesLayout.label, ['vertical', 'grid', 'horizontal']),\n gridColumns:\n choicesLayout.settings &&\n model.choicesLayout === 'grid' &&\n nrOfColumnsAvailable.length > 0 &&\n dropdown(gridColumns.label, nrOfColumnsAvailable),\n 'language.enabled': language.settings && toggle(language.label, true),\n language: language.settings && language.enabled && dropdown(languageChoices.label, languageChoices.options),\n };\n\n const panelProperties = {\n teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),\n studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),\n promptEnabled: prompt.settings && toggle(prompt.label),\n rationaleEnabled: rationale.settings && toggle(rationale.label),\n spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),\n scoringType: scoringType.settings && radio(scoringType.label, ['auto', 'rubric']),\n rubricEnabled: withRubric?.settings && toggle(withRubric?.label),\n };\n\n return (\n <layout.ConfigLayout\n dimensions={contentDimensions}\n hideSettings={settingsPanelDisabled}\n extraCSSRules={extraCSSRules}\n classes={{}}\n settings={\n <Panel\n model={model}\n onChangeModel={onChangeModel}\n configuration={configuration}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n Settings: panelSettings,\n Properties: panelProperties,\n }}\n />\n }\n >\n {teacherInstructionsEnabled && (\n <PromptHolder label={teacherInstructions.label}>\n <EditableHtml\n markup={model.teacherInstructions || ''}\n onChange={onTeacherInstructionsChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n disableUnderline\n error={teacherInstructionsError}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(configuration?.teacherInstructions?.inputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.teacherInstructions) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.teacherInstructions) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {teacherInstructionsError && <ErrorText>{teacherInstructionsError}</ErrorText>}\n </PromptHolder>\n )}\n\n {promptEnabled && (\n <PromptHolder label={prompt.label}>\n <EditableHtml\n markup={model.prompt}\n onChange={onPromptChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n disableUnderline\n error={promptError}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(configuration?.prompt?.inputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={maxImageWidth && maxImageWidth.prompt}\n maxImageHeight={maxImageHeight && maxImageHeight.prompt}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {promptError && <ErrorText>{promptError}</ErrorText>}\n </PromptHolder>\n )}\n\n <FlexContainer>\n <TitleText component={'div'}>\n Choices\n </TitleText>\n <StyledTooltip\n disableFocusListener\n disableTouchListener\n placement={'right'}\n title={validationMessage}\n >\n <Info fontSize={'small'} color={'primary'} />\n </StyledTooltip>\n </FlexContainer>\n\n {choices.map((choice, index) => (\n <ChoiceConfigurationHolder key={`choice-${index}`}>\n <ChoiceConfiguration\n key={index}\n index={index + 1}\n useLetterOrdering={model.choicePrefix === 'letters'}\n mode={model.choiceMode}\n data={choice}\n defaultFeedback={{}}\n imageSupport={imageSupport}\n disableImageAlignmentButtons={true}\n onDelete={() => onRemoveChoice(index)}\n onChange={(c) => onChoiceChanged(index, c)}\n allowFeedBack={feedbackEnabled}\n allowDelete={deleteChoice.settings}\n noLabels\n pluginOpts={getPluginProps(configuration?.choices?.inputConfiguration)}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n error={choicesErrors?.[choice.value] || null}\n noCorrectAnswerError={correctResponseError}\n maxImageWidth={(maxImageWidth && maxImageWidth.choices) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.choices) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n mathMlOptions={mathMlOptions}\n />\n\n {rationaleEnabled && (\n <RationaleHolder key={`rationale-${index}`} label={rationale.label}>\n <EditableHtml\n markup={choice.rationale || ''}\n onChange={(c) => onChoiceChanged(index, { ...choice, rationale: c })}\n imageSupport={imageSupport}\n error={rationaleErrors?.[choice.value] || null}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(configuration?.rationale?.inputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.rationale) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.rationale) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {rationaleErrors?.[choice.value] && (\n <ErrorText>{rationaleErrors?.[choice.value]}</ErrorText>\n )}\n </RationaleHolder>\n )}\n </ChoiceConfigurationHolder>\n ))}\n\n {correctResponseError && <ErrorText>{correctResponseError}</ErrorText>}\n {answerChoicesError && <ErrorText>{answerChoicesError}</ErrorText>}\n\n {addChoiceButton.settings && (\n <StyledTooltip title={addChoiceButtonTooltip}>\n {maxAnswerChoices && choices?.length >= maxAnswerChoices ? (\n <DisableButton\n variant=\"contained\"\n color=\"primary\"\n onClick={onAddChoice}\n disabled\n >\n {addChoiceButton.label}\n </DisableButton>\n ) : (\n <AddButton\n variant=\"contained\"\n color=\"primary\"\n onClick={onAddChoice}\n >\n {addChoiceButton.label}\n </AddButton>\n )}\n </StyledTooltip>\n )}\n </layout.ConfigLayout>\n );\n};\n\nexport class Main extends React.Component {\n static propTypes = {\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n disableSidePanel: PropTypes.bool,\n onModelChanged: PropTypes.func.isRequired,\n onConfigurationChanged: PropTypes.func.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n };\n\n state = { showWarning: false };\n\n onRemoveChoice = (index) => {\n const { model, configuration, onModelChanged } = this.props;\n const { minAnswerChoices } = configuration || {};\n\n if (minAnswerChoices && model.choices.length === minAnswerChoices) {\n this.setState({ showWarning: true });\n\n return;\n }\n\n model.choices.splice(index, 1);\n onModelChanged({\n choices: model.choices,\n });\n };\n\n onAddChoice = () => {\n const { model, configuration, onModelChanged } = this.props;\n let { maxAnswerChoices } = configuration || {};\n const { limitChoicesNumber } = model || {};\n\n // if old property is used, set maxAnswerChoices to 9\n if (limitChoicesNumber) {\n maxAnswerChoices = MAX_CHOICES;\n }\n\n if (maxAnswerChoices && model.choices.length >= maxAnswerChoices) {\n return;\n }\n\n model.choices.push({\n label: '',\n value: utils.firstAvailableIndex(\n model.choices.map((c) => c.value),\n 0,\n ),\n feedback: { type: 'none' },\n });\n\n onModelChanged({\n choices: model.choices,\n });\n };\n\n onChoiceChanged = (index, choice) => {\n const { model, onModelChanged } = this.props;\n\n if (choice.correct && model.choiceMode === 'radio') {\n model.choices = model.choices.map((c) => merge({}, c, { correct: false }));\n }\n\n model.choices.splice(index, 1, choice);\n onModelChanged({\n choices: model.choices,\n });\n };\n\n onPromptChanged = (prompt) => {\n this.props.onModelChanged({\n prompt,\n });\n };\n\n onTeacherInstructionsChanged = (teacherInstructions) => {\n this.props.onModelChanged({\n teacherInstructions,\n });\n };\n\n onModelChanged = (model, key) => {\n const { onModelChanged } = this.props;\n\n switch (key) {\n case 'choiceMode': {\n let value = model.choiceMode;\n\n if (value === 'radio') {\n let correctFound = false;\n\n model.choices = model.choices.map((c) => {\n if (correctFound) {\n c.correct = false;\n\n return c;\n }\n\n if (c.correct) {\n correctFound = true;\n }\n\n return c;\n });\n }\n\n onModelChanged({\n choiceMode: model.choiceMode,\n choices: model.choices,\n }, true);\n break;\n }\n\n default:\n onModelChanged(model);\n break;\n }\n };\n\n render() {\n const { configuration: { minAnswerChoices } = {} } = this.props;\n const { showWarning } = this.state;\n\n return (\n <React.Fragment>\n <AlertDialog\n open={showWarning}\n title=\"Warning\"\n text={`There can't be less than ${minAnswerChoices || 0} choices.`}\n onConfirm={() => this.setState({ showWarning: false })}\n />\n <Design\n {...this.props}\n onChangeModel={this.onModelChanged}\n onRemoveChoice={this.onRemoveChoice}\n onChoiceChanged={this.onChoiceChanged}\n onAddChoice={this.onAddChoice}\n onPromptChanged={this.onPromptChanged}\n onTeacherInstructionsChanged={this.onTeacherInstructionsChanged}\n />\n </React.Fragment>\n );\n }\n}\n\nexport default Main;\n"],"mappings":"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","ignoreList":[]}
@@ -15,4 +15,4 @@ const generateValidationMessage = config => {
15
15
  return message;
16
16
  };
17
17
  exports.generateValidationMessage = generateValidationMessage;
18
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZW5lcmF0ZVZhbGlkYXRpb25NZXNzYWdlIiwiY29uZmlnIiwibWluQW5zd2VyQ2hvaWNlcyIsIm1heEFuc3dlckNob2ljZXMiLCJhbnN3ZXJDaG9pY2VzTWVzc2FnZSIsImNvcnJlY3RBbnN3ZXJNZXNzYWdlIiwibWVzc2FnZSIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGdlbmVyYXRlVmFsaWRhdGlvbk1lc3NhZ2UgPSAoY29uZmlnKSA9PiB7XG4gIGNvbnN0IHsgbWluQW5zd2VyQ2hvaWNlcywgbWF4QW5zd2VyQ2hvaWNlcyB9ID0gY29uZmlnO1xuXG4gIGNvbnN0IGFuc3dlckNob2ljZXNNZXNzYWdlID1cbiAgICBgXFxuVGhlcmUgc2hvdWxkIGJlIGF0IGxlYXN0ICR7bWluQW5zd2VyQ2hvaWNlc30gYCArXG4gICAgKG1heEFuc3dlckNob2ljZXMgPyBgYW5kIGF0IG1vc3QgJHttYXhBbnN3ZXJDaG9pY2VzfSBgIDogJycpICtcbiAgICAnYW5zd2VyIGNob2ljZXMgZGVmaW5lZC4nICtcbiAgICAnXFxuRXZlcnkgYW5zd2VyIGNob2ljZSBzaG91bGQgYmUgbm9uLWJsYW5rIGFuZCB1bmlxdWUuJztcblxuICBjb25zdCBjb3JyZWN0QW5zd2VyTWVzc2FnZSA9ICdcXG5BIGNvcnJlY3QgYW5zd2VyIG11c3QgYmUgZGVmaW5lZC4nO1xuXG4gIGNvbnN0IG1lc3NhZ2UgPSAnVmFsaWRhdGlvbiByZXF1aXJlbWVudHM6JyArIGFuc3dlckNob2ljZXNNZXNzYWdlICsgY29ycmVjdEFuc3dlck1lc3NhZ2U7XG5cbiAgcmV0dXJuIG1lc3NhZ2U7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBTyxNQUFNQSx5QkFBeUIsR0FBSUMsTUFBTSxJQUFLO0VBQ25ELE1BQU07SUFBRUMsZ0JBQWdCO0lBQUVDO0VBQWlCLENBQUMsR0FBR0YsTUFBTTtFQUVyRCxNQUFNRyxvQkFBb0IsR0FDeEIsOEJBQThCRixnQkFBZ0IsR0FBRyxJQUNoREMsZ0JBQWdCLEdBQUcsZUFBZUEsZ0JBQWdCLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FDNUQseUJBQXlCLEdBQ3pCLHVEQUF1RDtFQUV6RCxNQUFNRSxvQkFBb0IsR0FBRyxxQ0FBcUM7RUFFbEUsTUFBTUMsT0FBTyxHQUFHLDBCQUEwQixHQUFHRixvQkFBb0IsR0FBR0Msb0JBQW9CO0VBRXhGLE9BQU9DLE9BQU87QUFDaEIsQ0FBQztBQUFDQyxPQUFBLENBQUFQLHlCQUFBLEdBQUFBLHlCQUFBIiwiaWdub3JlTGlzdCI6W119
18
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","names":["generateValidationMessage","config","minAnswerChoices","maxAnswerChoices","answerChoicesMessage","correctAnswerMessage","message","exports"],"sources":["../src/utils.js"],"sourcesContent":["export const generateValidationMessage = (config) => {\n const { minAnswerChoices, maxAnswerChoices } = config;\n\n const answerChoicesMessage =\n `\\nThere should be at least ${minAnswerChoices} ` +\n (maxAnswerChoices ? `and at most ${maxAnswerChoices} ` : '') +\n 'answer choices defined.' +\n '\\nEvery answer choice should be non-blank and unique.';\n\n const correctAnswerMessage = '\\nA correct answer must be defined.';\n\n const message = 'Validation requirements:' + answerChoicesMessage + correctAnswerMessage;\n\n return message;\n};\n"],"mappings":";;;;;;AAAO,MAAMA,yBAAyB,GAAIC,MAAM,IAAK;EACnD,MAAM;IAAEC,gBAAgB;IAAEC;EAAiB,CAAC,GAAGF,MAAM;EAErD,MAAMG,oBAAoB,GACxB,8BAA8BF,gBAAgB,GAAG,IAChDC,gBAAgB,GAAG,eAAeA,gBAAgB,GAAG,GAAG,EAAE,CAAC,GAC5D,yBAAyB,GACzB,uDAAuD;EAEzD,MAAME,oBAAoB,GAAG,qCAAqC;EAElE,MAAMC,OAAO,GAAG,0BAA0B,GAAGF,oBAAoB,GAAGC,oBAAoB;EAExF,OAAOC,OAAO;AAChB,CAAC;AAACC,OAAA,CAAAP,yBAAA,GAAAA,yBAAA","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pie-element/multiple-choice-configure",
3
- "version": "10.4.0-beta.12",
3
+ "version": "10.4.0-beta.13",
4
4
  "private": true,
5
5
  "main": "lib/index.js",
6
6
  "module": "src/index.js",
@@ -10,8 +10,8 @@
10
10
  "@mui/icons-material": "^7.3.4",
11
11
  "@mui/material": "^7.3.4",
12
12
  "@pie-framework/pie-configure-events": "^1.3.0",
13
- "@pie-lib/config-ui": "13.0.22-beta.1",
14
- "@pie-lib/editable-html-tip-tap": "2.1.20-beta.1",
13
+ "@pie-lib/config-ui": "13.0.22-beta.2",
14
+ "@pie-lib/editable-html-tip-tap": "2.1.20-beta.2",
15
15
  "@pie-lib/render-ui": "6.1.3",
16
16
  "debug": "^4.1.1",
17
17
  "lodash-es": "^4.17.23",
@@ -3,6 +3,10 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [8.4.0-beta.13](https://github.com/pie-framework/pie-elements/compare/@pie-element/multiple-choice-controller@8.4.0-beta.12...@pie-element/multiple-choice-controller@8.4.0-beta.13) (2026-09-24)
7
+
8
+ **Note:** Version bump only for package @pie-element/multiple-choice-controller
9
+
6
10
  # [8.4.0-beta.12](https://github.com/pie-framework/pie-elements/compare/@pie-element/multiple-choice-controller@8.4.0-beta.11...@pie-element/multiple-choice-controller@8.4.0-beta.12) (2026-09-24)
7
11
 
8
12
  **Note:** Version bump only for package @pie-element/multiple-choice-controller
@@ -30,4 +30,4 @@ var _default = exports.default = {
30
30
  hoverAnswerStrokeWidth: 'initial',
31
31
  keyboardEventsEnabled: false
32
32
  };
33
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjaG9pY2VNb2RlIiwiY2hvaWNlUHJlZml4IiwiY2hvaWNlcyIsImNob2ljZXNMYXlvdXQiLCJmZWVkYmFja0VuYWJsZWQiLCJncmlkQ29sdW1ucyIsImxvY2tDaG9pY2VPcmRlciIsInBhcnRpYWxTY29yaW5nIiwicHJvbXB0IiwicHJvbXB0RW5hYmxlZCIsInJhdGlvbmFsZSIsInJhdGlvbmFsZUVuYWJsZWQiLCJzY29yaW5nVHlwZSIsInN0dWRlbnRJbnN0cnVjdGlvbnNFbmFibGVkIiwidGVhY2hlckluc3RydWN0aW9ucyIsInRlYWNoZXJJbnN0cnVjdGlvbnNFbmFibGVkIiwidG9vbGJhckVkaXRvclBvc2l0aW9uIiwic2VsZWN0ZWRBbnN3ZXJCYWNrZ3JvdW5kQ29sb3IiLCJzZWxlY3RlZEFuc3dlclN0cm9rZUNvbG9yIiwic2VsZWN0ZWRBbnN3ZXJTdHJva2VXaWR0aCIsImhvdmVyQW5zd2VyQmFja2dyb3VuZENvbG9yIiwiaG92ZXJBbnN3ZXJTdHJva2VDb2xvciIsImhvdmVyQW5zd2VyU3Ryb2tlV2lkdGgiLCJrZXlib2FyZEV2ZW50c0VuYWJsZWQiXSwic291cmNlcyI6WyIuLi9zcmMvZGVmYXVsdHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQge1xuICBjaG9pY2VNb2RlOiAnY2hlY2tib3gnLFxuICBjaG9pY2VQcmVmaXg6ICdsZXR0ZXJzJyxcbiAgY2hvaWNlczogW10sXG4gIGNob2ljZXNMYXlvdXQ6ICd2ZXJ0aWNhbCcsXG4gIGZlZWRiYWNrRW5hYmxlZDogZmFsc2UsXG4gIGdyaWRDb2x1bW5zOiAyLFxuICBsb2NrQ2hvaWNlT3JkZXI6IHRydWUsXG4gIHBhcnRpYWxTY29yaW5nOiB0cnVlLFxuICBwcm9tcHQ6ICcnLFxuICBwcm9tcHRFbmFibGVkOiB0cnVlLFxuICByYXRpb25hbGU6ICcnLFxuICByYXRpb25hbGVFbmFibGVkOiB0cnVlLFxuICBzY29yaW5nVHlwZTogJ2F1dG8nLFxuICBzdHVkZW50SW5zdHJ1Y3Rpb25zRW5hYmxlZDogdHJ1ZSxcbiAgdGVhY2hlckluc3RydWN0aW9uczogJycsXG4gIHRlYWNoZXJJbnN0cnVjdGlvbnNFbmFibGVkOiB0cnVlLFxuICB0b29sYmFyRWRpdG9yUG9zaXRpb246ICdib3R0b20nLFxuICBzZWxlY3RlZEFuc3dlckJhY2tncm91bmRDb2xvcjogJ2luaXRpYWwnLFxuICBzZWxlY3RlZEFuc3dlclN0cm9rZUNvbG9yOiAnaW5pdGlhbCcsXG4gIHNlbGVjdGVkQW5zd2VyU3Ryb2tlV2lkdGg6ICdpbml0aWFsJyxcbiAgaG92ZXJBbnN3ZXJCYWNrZ3JvdW5kQ29sb3I6ICdpbml0aWFsJyxcbiAgaG92ZXJBbnN3ZXJTdHJva2VDb2xvcjogJ2luaXRpYWwnLFxuICBob3ZlckFuc3dlclN0cm9rZVdpZHRoOiAnaW5pdGlhbCcsXG4gIGtleWJvYXJkRXZlbnRzRW5hYmxlZDogZmFsc2UsXG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7aUNBQWU7RUFDYkEsVUFBVSxFQUFFLFVBQVU7RUFDdEJDLFlBQVksRUFBRSxTQUFTO0VBQ3ZCQyxPQUFPLEVBQUUsRUFBRTtFQUNYQyxhQUFhLEVBQUUsVUFBVTtFQUN6QkMsZUFBZSxFQUFFLEtBQUs7RUFDdEJDLFdBQVcsRUFBRSxDQUFDO0VBQ2RDLGVBQWUsRUFBRSxJQUFJO0VBQ3JCQyxjQUFjLEVBQUUsSUFBSTtFQUNwQkMsTUFBTSxFQUFFLEVBQUU7RUFDVkMsYUFBYSxFQUFFLElBQUk7RUFDbkJDLFNBQVMsRUFBRSxFQUFFO0VBQ2JDLGdCQUFnQixFQUFFLElBQUk7RUFDdEJDLFdBQVcsRUFBRSxNQUFNO0VBQ25CQywwQkFBMEIsRUFBRSxJQUFJO0VBQ2hDQyxtQkFBbUIsRUFBRSxFQUFFO0VBQ3ZCQywwQkFBMEIsRUFBRSxJQUFJO0VBQ2hDQyxxQkFBcUIsRUFBRSxRQUFRO0VBQy9CQyw2QkFBNkIsRUFBRSxTQUFTO0VBQ3hDQyx5QkFBeUIsRUFBRSxTQUFTO0VBQ3BDQyx5QkFBeUIsRUFBRSxTQUFTO0VBQ3BDQywwQkFBMEIsRUFBRSxTQUFTO0VBQ3JDQyxzQkFBc0IsRUFBRSxTQUFTO0VBQ2pDQyxzQkFBc0IsRUFBRSxTQUFTO0VBQ2pDQyxxQkFBcUIsRUFBRTtBQUN6QixDQUFDIiwiaWdub3JlTGlzdCI6W119
33
+ //# sourceMappingURL=defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.js","names":["choiceMode","choicePrefix","choices","choicesLayout","feedbackEnabled","gridColumns","lockChoiceOrder","partialScoring","prompt","promptEnabled","rationale","rationaleEnabled","scoringType","studentInstructionsEnabled","teacherInstructions","teacherInstructionsEnabled","toolbarEditorPosition","selectedAnswerBackgroundColor","selectedAnswerStrokeColor","selectedAnswerStrokeWidth","hoverAnswerBackgroundColor","hoverAnswerStrokeColor","hoverAnswerStrokeWidth","keyboardEventsEnabled"],"sources":["../src/defaults.js"],"sourcesContent":["export default {\n choiceMode: 'checkbox',\n choicePrefix: 'letters',\n choices: [],\n choicesLayout: 'vertical',\n feedbackEnabled: false,\n gridColumns: 2,\n lockChoiceOrder: true,\n partialScoring: true,\n prompt: '',\n promptEnabled: true,\n rationale: '',\n rationaleEnabled: true,\n scoringType: 'auto',\n studentInstructionsEnabled: true,\n teacherInstructions: '',\n teacherInstructionsEnabled: true,\n toolbarEditorPosition: 'bottom',\n selectedAnswerBackgroundColor: 'initial',\n selectedAnswerStrokeColor: 'initial',\n selectedAnswerStrokeWidth: 'initial',\n hoverAnswerBackgroundColor: 'initial',\n hoverAnswerStrokeColor: 'initial',\n hoverAnswerStrokeWidth: 'initial',\n keyboardEventsEnabled: false,\n};\n"],"mappings":";;;;;;iCAAe;EACbA,UAAU,EAAE,UAAU;EACtBC,YAAY,EAAE,SAAS;EACvBC,OAAO,EAAE,EAAE;EACXC,aAAa,EAAE,UAAU;EACzBC,eAAe,EAAE,KAAK;EACtBC,WAAW,EAAE,CAAC;EACdC,eAAe,EAAE,IAAI;EACrBC,cAAc,EAAE,IAAI;EACpBC,MAAM,EAAE,EAAE;EACVC,aAAa,EAAE,IAAI;EACnBC,SAAS,EAAE,EAAE;EACbC,gBAAgB,EAAE,IAAI;EACtBC,WAAW,EAAE,MAAM;EACnBC,0BAA0B,EAAE,IAAI;EAChCC,mBAAmB,EAAE,EAAE;EACvBC,0BAA0B,EAAE,IAAI;EAChCC,qBAAqB,EAAE,QAAQ;EAC/BC,6BAA6B,EAAE,SAAS;EACxCC,yBAAyB,EAAE,SAAS;EACpCC,yBAAyB,EAAE,SAAS;EACpCC,0BAA0B,EAAE,SAAS;EACrCC,sBAAsB,EAAE,SAAS;EACjCC,sBAAsB,EAAE,SAAS;EACjCC,qBAAqB,EAAE;AACzB,CAAC","ignoreList":[]}
@@ -295,4 +295,4 @@ const validate = (model = {}, config = {}) => {
295
295
  return errors;
296
296
  };
297
297
  exports.validate = validate;
298
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoRXMiLCJyZXF1aXJlIiwiX3V0aWxzIiwiX2RlZmF1bHRzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9jb250cm9sbGVyVXRpbHMiLCJwcmVwYXJlQ2hvaWNlIiwibW9kZWwiLCJlbnYiLCJkZWZhdWx0RmVlZGJhY2siLCJjaG9pY2UiLCJyb2xlIiwibW9kZSIsIm91dCIsImxhYmVsIiwidmFsdWUiLCJyYXRpb25hbGUiLCJyYXRpb25hbGVFbmFibGVkIiwiY29ycmVjdCIsImZlZWRiYWNrRW5hYmxlZCIsImZlZWRiYWNrVHlwZSIsImZlZWRiYWNrIiwidHlwZSIsImNyZWF0ZURlZmF1bHRNb2RlbCIsIlByb21pc2UiLCJyZXNvbHZlIiwiZGVmYXVsdHMiLCJub3JtYWxpemUiLCJxdWVzdGlvbiIsInZlcnRpY2FsTW9kZSIsImNob2ljZXNMYXlvdXQiLCJxdWVzdGlvblByb3BzIiwiZXhwb3J0cyIsInNlc3Npb24iLCJ1cGRhdGVTZXNzaW9uIiwibm9ybWFsaXplZFF1ZXN0aW9uIiwiT2JqZWN0IiwiYXNzaWduIiwiaW5jb3JyZWN0IiwiY2hvaWNlcyIsIm1hcCIsImxvY2tDaG9pY2VPcmRlciIsImxvY2tDaG9pY2VzIiwiZ2V0U2h1ZmZsZWRDaG9pY2VzIiwiZGlzYWJsZWQiLCJwcm9tcHQiLCJwcm9tcHRFbmFibGVkIiwiZ3JpZENvbHVtbnMiLCJjaG9pY2VNb2RlIiwia2V5TW9kZSIsImNob2ljZVByZWZpeCIsInJlc3BvbnNlQ29ycmVjdCIsImlzUmVzcG9uc2VDb3JyZWN0IiwidW5kZWZpbmVkIiwibGFuZ3VhZ2UiLCJleHRyYUNTU1J1bGVzIiwiZm9udFNpemVGYWN0b3IiLCJpc1NlbGVjdGlvbkJ1dHRvbkJlbG93Iiwic2VsZWN0ZWRBbnN3ZXJCYWNrZ3JvdW5kQ29sb3IiLCJzZWxlY3RlZEFuc3dlclN0cm9rZUNvbG9yIiwic2VsZWN0ZWRBbnN3ZXJTdHJva2VXaWR0aCIsImhvdmVyQW5zd2VyQmFja2dyb3VuZENvbG9yIiwiaG92ZXJBbnN3ZXJTdHJva2VDb2xvciIsImhvdmVyQW5zd2VyU3Ryb2tlV2lkdGgiLCJtaW5TZWxlY3Rpb25zIiwibWF4U2VsZWN0aW9ucyIsImtleWJvYXJkRXZlbnRzRW5hYmxlZCIsImF1dG9wbGF5QXVkaW9FbmFibGVkIiwiY29tcGxldGVBdWRpb0VuYWJsZWQiLCJjdXN0b21BdWRpb0J1dHRvbiIsInRlYWNoZXJJbnN0cnVjdGlvbnMiLCJ0ZWFjaGVySW5zdHJ1Y3Rpb25zRW5hYmxlZCIsImdldFNjb3JlIiwiY29uZmlnIiwiaXNFbXB0eSIsInNlbGVjdGVkQ2hvaWNlcyIsImNvcnJlY3RDaG9pY2VzIiwiZmlsdGVyIiwiY2giLCJzY29yZSIsInJlZHVjZSIsImFjYyIsInNlbGVjdGVkQ2hvaWNlIiwiZmluZCIsImxlbmd0aCIsInN0ciIsInBhcnNlRmxvYXQiLCJ0b0ZpeGVkIiwiZ2V0TG9nVHJhY2UiLCJ0cmFjZUxvZyIsInNlbGVjdGVkIiwicXVlc3Rpb25UeXBlIiwicHVzaCIsImpvaW4iLCJjIiwiY29ycmVjdFZhbHVlcyIsImNvcnJlY3RTZWxlY3RlZCIsInYiLCJpbmNsdWRlcyIsImluY29ycmVjdFNlbGVjdGVkIiwicGFydGlhbFNjb3JpbmdFbmFibGVkIiwicGFydGlhbFNjb3JpbmciLCJlbmFibGVkIiwic2NvcmluZ01ldGhvZCIsIm91dGNvbWUiLCJlbXB0eSIsImNyZWF0ZUNvcnJlY3RSZXNwb25zZVNlc3Npb24iLCJpZCIsImdldElubmVyVGV4dCIsImh0bWwiLCJyZXBsYWNlQWxsIiwiZ2V0Q29udGVudCIsInJlcGxhY2UiLCJ2YWxpZGF0ZSIsIm1pbkFuc3dlckNob2ljZXMiLCJtYXhBbnN3ZXJDaG9pY2VzIiwicmV2ZXJzZWRDaG9pY2VzIiwicmV2ZXJzZSIsImNob2ljZXNFcnJvcnMiLCJyYXRpb25hbGVFcnJvcnMiLCJlcnJvcnMiLCJmb3JFYWNoIiwiZmllbGQiLCJyZXF1aXJlZCIsImhhc0NvcnJlY3RSZXNwb25zZSIsImNvcnJlY3RDb3VudCIsImluZGV4IiwiaWRlbnRpY2FsQW5zd2VyIiwic2xpY2UiLCJzb21lIiwibmJPZkNob2ljZXMiLCJhbnN3ZXJDaG9pY2VzIiwiY29ycmVjdFJlc3BvbnNlIl0sInNvdXJjZXMiOlsiLi4vc3JjL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnNvbGUgKi9cbmltcG9ydCB7IGlzRW1wdHkgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgaXNSZXNwb25zZUNvcnJlY3QgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCBkZWZhdWx0cyBmcm9tICcuL2RlZmF1bHRzJztcbmltcG9ydCB7IGxvY2tDaG9pY2VzLCBwYXJ0aWFsU2NvcmluZywgZ2V0U2h1ZmZsZWRDaG9pY2VzIH0gZnJvbSAnQHBpZS1saWIvY29udHJvbGxlci11dGlscyc7XG5cbmNvbnN0IHByZXBhcmVDaG9pY2UgPSAobW9kZWwsIGVudiwgZGVmYXVsdEZlZWRiYWNrKSA9PiAoY2hvaWNlKSA9PiB7XG4gIGNvbnN0IHsgcm9sZSwgbW9kZSB9ID0gZW52IHx8IHt9O1xuICBjb25zdCBvdXQgPSB7XG4gICAgbGFiZWw6IGNob2ljZS5sYWJlbCxcbiAgICB2YWx1ZTogY2hvaWNlLnZhbHVlLFxuICB9O1xuXG4gIGlmIChyb2xlID09PSAnaW5zdHJ1Y3RvcicgJiYgKG1vZGUgPT09ICd2aWV3JyB8fCBtb2RlID09PSAnZXZhbHVhdGUnKSkge1xuICAgIG91dC5yYXRpb25hbGUgPSBtb2RlbC5yYXRpb25hbGVFbmFibGVkID8gY2hvaWNlLnJhdGlvbmFsZSA6IG51bGw7XG4gIH0gZWxzZSB7XG4gICAgb3V0LnJhdGlvbmFsZSA9IG51bGw7XG4gIH1cblxuICBpZiAobW9kZSA9PT0gJ2V2YWx1YXRlJykge1xuICAgIG91dC5jb3JyZWN0ID0gISFjaG9pY2UuY29ycmVjdDtcblxuICAgIGlmIChtb2RlbC5mZWVkYmFja0VuYWJsZWQpIHtcbiAgICAgIGNvbnN0IGZlZWRiYWNrVHlwZSA9IChjaG9pY2UuZmVlZGJhY2sgJiYgY2hvaWNlLmZlZWRiYWNrLnR5cGUpIHx8ICdub25lJztcblxuICAgICAgaWYgKGZlZWRiYWNrVHlwZSA9PT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgIG91dC5mZWVkYmFjayA9IGRlZmF1bHRGZWVkYmFja1tjaG9pY2UuY29ycmVjdCA/ICdjb3JyZWN0JyA6ICdpbmNvcnJlY3QnXTtcbiAgICAgIH0gZWxzZSBpZiAoZmVlZGJhY2tUeXBlID09PSAnY3VzdG9tJykge1xuICAgICAgICBvdXQuZmVlZGJhY2sgPSBjaG9pY2UuZmVlZGJhY2sudmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG91dDtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVEZWZhdWx0TW9kZWwobW9kZWwgPSB7fSkge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHJlc29sdmUoeyAuLi5kZWZhdWx0cywgLi4ubW9kZWwgfSkpO1xufVxuXG5leHBvcnQgY29uc3Qgbm9ybWFsaXplID0gKHF1ZXN0aW9uKSA9PiB7XG4gIGNvbnN0IHsgdmVydGljYWxNb2RlLCBjaG9pY2VzTGF5b3V0LCAuLi5xdWVzdGlvblByb3BzIH0gPSBxdWVzdGlvbiB8fCB7fTtcblxuICByZXR1cm4ge1xuICAgIC4uLmRlZmF1bHRzLFxuICAgIC4uLnF1ZXN0aW9uUHJvcHMsXG4gICAgLy8gVGhpcyBpcyB1c2VkIGZvciBvZmZlcmluZyBzdXBwb3J0IGZvciBvbGQgbW9kZWxzIHdoaWNoIGhhdmUgdGhlIHByb3BlcnR5IHZlcnRpY2FsTW9kZVxuICAgIC8vIFNhbWUgdGhpbmcgaXMgc2V0IGluIGF1dGhvcmluZyA6IHBhY2thZ2VzL211bHRpcGxlLWNob2ljZS9jb25maWd1cmUvc3JjL2luZGV4LmpzeCAtIGNyZWF0ZURlZmF1bHRNb2RlbFxuICAgIGNob2ljZXNMYXlvdXQ6IGNob2ljZXNMYXlvdXQgfHwgKHZlcnRpY2FsTW9kZSA9PT0gZmFsc2UgJiYgJ2hvcml6b250YWwnKSB8fCBkZWZhdWx0cy5jaG9pY2VzTGF5b3V0LFxuICB9O1xufTtcblxuLyoqXG4gKlxuICogQHBhcmFtIHsqfSBxdWVzdGlvblxuICogQHBhcmFtIHsqfSBzZXNzaW9uXG4gKiBAcGFyYW0geyp9IGVudlxuICogQHBhcmFtIHsqfSB1cGRhdGVTZXNzaW9uIC0gb3B0aW9uYWwgLSBhIGZ1bmN0aW9uIHRoYXQgd2lsbCBzZXQgdGhlIHByb3BlcnRpZXMgcGFzc2VkIGludG8gaXQgb24gdGhlIHNlc3Npb24uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBtb2RlbChxdWVzdGlvbiwgc2Vzc2lvbiwgZW52LCB1cGRhdGVTZXNzaW9uKSB7XG4gIGNvbnN0IG5vcm1hbGl6ZWRRdWVzdGlvbiA9IG5vcm1hbGl6ZShxdWVzdGlvbik7XG5cbiAgY29uc3QgZGVmYXVsdEZlZWRiYWNrID0gT2JqZWN0LmFzc2lnbihcbiAgICB7IGNvcnJlY3Q6ICdDb3JyZWN0JywgaW5jb3JyZWN0OiAnSW5jb3JyZWN0JyB9LFxuICAgIG5vcm1hbGl6ZWRRdWVzdGlvbi5kZWZhdWx0RmVlZGJhY2ssXG4gICk7XG5cbiAgbGV0IGNob2ljZXMgPSAobm9ybWFsaXplZFF1ZXN0aW9uLmNob2ljZXMgfHwgW10pLm1hcChwcmVwYXJlQ2hvaWNlKG5vcm1hbGl6ZWRRdWVzdGlvbiwgZW52LCBkZWZhdWx0RmVlZGJhY2spKTtcblxuICBjb25zdCBsb2NrQ2hvaWNlT3JkZXIgPSBsb2NrQ2hvaWNlcyhub3JtYWxpemVkUXVlc3Rpb24sIHNlc3Npb24sIGVudik7XG5cbiAgaWYgKCFsb2NrQ2hvaWNlT3JkZXIpIHtcbiAgICBjaG9pY2VzID0gYXdhaXQgZ2V0U2h1ZmZsZWRDaG9pY2VzKGNob2ljZXMsIHNlc3Npb24sIHVwZGF0ZVNlc3Npb24sICd2YWx1ZScpO1xuICB9XG5cbiAgY29uc3Qgb3V0ID0ge1xuICAgIGRpc2FibGVkOiBlbnYubW9kZSAhPT0gJ2dhdGhlcicsXG4gICAgbW9kZTogZW52Lm1vZGUsXG4gICAgcHJvbXB0OiBub3JtYWxpemVkUXVlc3Rpb24ucHJvbXB0RW5hYmxlZCA/IG5vcm1hbGl6ZWRRdWVzdGlvbi5wcm9tcHQgOiBudWxsLFxuICAgIGNob2ljZXNMYXlvdXQ6IG5vcm1hbGl6ZWRRdWVzdGlvbi5jaG9pY2VzTGF5b3V0LFxuICAgIGdyaWRDb2x1bW5zOiBub3JtYWxpemVkUXVlc3Rpb24uZ3JpZENvbHVtbnMsXG4gICAgY2hvaWNlTW9kZTogbm9ybWFsaXplZFF1ZXN0aW9uLmNob2ljZU1vZGUsXG4gICAga2V5TW9kZTogbm9ybWFsaXplZFF1ZXN0aW9uLmNob2ljZVByZWZpeCxcbiAgICBjaG9pY2VzLFxuICAgIHJlc3BvbnNlQ29ycmVjdDogZW52Lm1vZGUgPT09ICdldmFsdWF0ZScgPyBpc1Jlc3BvbnNlQ29ycmVjdChub3JtYWxpemVkUXVlc3Rpb24sIHNlc3Npb24pIDogdW5kZWZpbmVkLFxuICAgIGxhbmd1YWdlOiBub3JtYWxpemVkUXVlc3Rpb24ubGFuZ3VhZ2UsXG4gICAgZXh0cmFDU1NSdWxlczogbm9ybWFsaXplZFF1ZXN0aW9uLmV4dHJhQ1NTUnVsZXMsXG4gICAgZm9udFNpemVGYWN0b3I6IG5vcm1hbGl6ZWRRdWVzdGlvbi5mb250U2l6ZUZhY3RvcixcbiAgICBpc1NlbGVjdGlvbkJ1dHRvbkJlbG93OiBub3JtYWxpemVkUXVlc3Rpb24uaXNTZWxlY3Rpb25CdXR0b25CZWxvdyxcbiAgICBzZWxlY3RlZEFuc3dlckJhY2tncm91bmRDb2xvcjogbm9ybWFsaXplZFF1ZXN0aW9uLnNlbGVjdGVkQW5zd2VyQmFja2dyb3VuZENvbG9yIHx8ICdpbml0aWFsJyxcbiAgICBzZWxlY3RlZEFuc3dlclN0cm9rZUNvbG9yOiBub3JtYWxpemVkUXVlc3Rpb24uc2VsZWN0ZWRBbnN3ZXJTdHJva2VDb2xvciB8fCAnaW5pdGlhbCcsXG4gICAgc2VsZWN0ZWRBbnN3ZXJTdHJva2VXaWR0aDogbm9ybWFsaXplZFF1ZXN0aW9uLnNlbGVjdGVkQW5zd2VyU3Ryb2tlV2lkdGggfHwgJ2luaXRpYWwnLFxuICAgIGhvdmVyQW5zd2VyQmFja2dyb3VuZENvbG9yOiBub3JtYWxpemVkUXVlc3Rpb24uaG92ZXJBbnN3ZXJCYWNrZ3JvdW5kQ29sb3IgfHwgJ2luaXRpYWwnLFxuICAgIGhvdmVyQW5zd2VyU3Ryb2tlQ29sb3I6IG5vcm1hbGl6ZWRRdWVzdGlvbi5ob3ZlckFuc3dlclN0cm9rZUNvbG9yIHx8ICdpbml0aWFsJyxcbiAgICBob3ZlckFuc3dlclN0cm9rZVdpZHRoOiBub3JtYWxpemVkUXVlc3Rpb24uaG92ZXJBbnN3ZXJTdHJva2VXaWR0aCB8fCAnaW5pdGlhbCcsXG4gICAgbWluU2VsZWN0aW9uczogbm9ybWFsaXplZFF1ZXN0aW9uLm1pblNlbGVjdGlvbnMsXG4gICAgbWF4U2VsZWN0aW9uczogbm9ybWFsaXplZFF1ZXN0aW9uLm1heFNlbGVjdGlvbnMsXG4gICAga2V5Ym9hcmRFdmVudHNFbmFibGVkOiBub3JtYWxpemVkUXVlc3Rpb24ua2V5Ym9hcmRFdmVudHNFbmFibGVkLFxuICAgIGF1dG9wbGF5QXVkaW9FbmFibGVkOiBub3JtYWxpemVkUXVlc3Rpb24uYXV0b3BsYXlBdWRpb0VuYWJsZWQsXG4gICAgY29tcGxldGVBdWRpb0VuYWJsZWQ6IG5vcm1hbGl6ZWRRdWVzdGlvbi5jb21wbGV0ZUF1ZGlvRW5hYmxlZCxcbiAgICBjdXN0b21BdWRpb0J1dHRvbjogbm9ybWFsaXplZFF1ZXN0aW9uLmN1c3RvbUF1ZGlvQnV0dG9uLFxuICB9O1xuXG4gIGNvbnN0IHsgcm9sZSwgbW9kZSB9ID0gZW52IHx8IHt9O1xuXG4gIGlmIChyb2xlID09PSAnaW5zdHJ1Y3RvcicgJiYgKG1vZGUgPT09ICd2aWV3JyB8fCBtb2RlID09PSAnZXZhbHVhdGUnKSkge1xuICAgIG91dC50ZWFjaGVySW5zdHJ1Y3Rpb25zID0gbm9ybWFsaXplZFF1ZXN0aW9uLnRlYWNoZXJJbnN0cnVjdGlvbnNFbmFibGVkXG4gICAgICA/IG5vcm1hbGl6ZWRRdWVzdGlvbi50ZWFjaGVySW5zdHJ1Y3Rpb25zXG4gICAgICA6IG51bGw7XG4gIH0gZWxzZSB7XG4gICAgb3V0LnRlYWNoZXJJbnN0cnVjdGlvbnMgPSBudWxsO1xuICB9XG5cbiAgcmV0dXJuIG91dDtcbn1cblxuZXhwb3J0IGNvbnN0IGdldFNjb3JlID0gKGNvbmZpZywgc2Vzc2lvbikgPT4ge1xuICBpZiAoIXNlc3Npb24gfHwgaXNFbXB0eShzZXNzaW9uKSkge1xuICAgIHJldHVybiAwO1xuICB9XG5cbiAgY29uc3Qgc2VsZWN0ZWRDaG9pY2VzID0gc2Vzc2lvbi52YWx1ZSB8fCBbXTtcbiAgY29uc3QgY29ycmVjdENob2ljZXMgPSAoY29uZmlnLmNob2ljZXMgfHwgW10pLmZpbHRlcigoY2gpID0+IGNoLmNvcnJlY3QpO1xuXG4gIGxldCBzY29yZSA9IHNlbGVjdGVkQ2hvaWNlcy5yZWR1Y2UoXG4gICAgKGFjYywgc2VsZWN0ZWRDaG9pY2UpID0+IGFjYyArIChjb3JyZWN0Q2hvaWNlcy5maW5kKChjaCkgPT4gY2gudmFsdWUgPT09IHNlbGVjdGVkQ2hvaWNlKSA/IDEgOiAwKSxcbiAgICAwLFxuICApO1xuXG4gIGlmIChjb3JyZWN0Q2hvaWNlcy5sZW5ndGggPCBzZWxlY3RlZENob2ljZXMubGVuZ3RoKSB7XG4gICAgc2NvcmUgLT0gc2VsZWN0ZWRDaG9pY2VzLmxlbmd0aCAtIGNvcnJlY3RDaG9pY2VzLmxlbmd0aDtcblxuICAgIGlmIChzY29yZSA8IDApIHtcbiAgICAgIHNjb3JlID0gMDtcbiAgICB9XG4gIH1cblxuICBjb25zdCBzdHIgPSBjb3JyZWN0Q2hvaWNlcy5sZW5ndGggPyBzY29yZSAvIGNvcnJlY3RDaG9pY2VzLmxlbmd0aCA6IDA7XG5cbiAgcmV0dXJuIHBhcnNlRmxvYXQoc3RyLnRvRml4ZWQoMikpO1xufTtcblxuLyoqXG4gKiBHZW5lcmF0ZXMgZGV0YWlsZWQgdHJhY2UgbG9nIGZvciBzY29yaW5nIGV2YWx1YXRpb25cbiAqIEBwYXJhbSB7T2JqZWN0fSBtb2RlbCAtIHRoZSBxdWVzdGlvbiBtb2RlbFxuICogQHBhcmFtIHtPYmplY3R9IHNlc3Npb24gLSB0aGUgc3R1ZGVudCBzZXNzaW9uXG4gKiBAcGFyYW0ge09iamVjdH0gZW52IC0gdGhlIGVudmlyb25tZW50XG4gKiBAcmV0dXJucyB7QXJyYXl9IHRyYWNlTG9nIC0gYXJyYXkgb2YgdHJhY2UgbWVzc2FnZXNcbiAqL1xuZXhwb3J0IGNvbnN0IGdldExvZ1RyYWNlID0gKG1vZGVsLCBzZXNzaW9uLCBlbnYpID0+IHtcbiAgY29uc3QgdHJhY2VMb2cgPSBbXTtcbiAgY29uc3Qgc2VsZWN0ZWQgPSBzZXNzaW9uPy52YWx1ZSB8fCBbXTtcbiAgXG4gIGNvbnN0IHF1ZXN0aW9uVHlwZSA9IG1vZGVsLmNob2ljZU1vZGUgPT09ICdyYWRpbycgPyAnbXVsdGlwbGUtY2hvaWNlIChyYWRpbyknIDogJ211bHRpcGxlLXNlbGVjdCAoY2hlY2tib3gpJztcbiAgdHJhY2VMb2cucHVzaChgUXVlc3Rpb24gdHlwZTogJHtxdWVzdGlvblR5cGV9LmApO1xuICBcbiAgaWYgKHNlbGVjdGVkLmxlbmd0aCkge1xuICAgIHRyYWNlTG9nLnB1c2goYFN0dWRlbnQgc2VsZWN0ZWQgJHtzZWxlY3RlZC5sZW5ndGh9IGFuc3dlcihzKTogJHtzZWxlY3RlZC5qb2luKCcsICcpfS5gKTtcbiAgfSBlbHNlIHtcbiAgICB0cmFjZUxvZy5wdXNoKCdTdHVkZW50IGRpZCBub3Qgc2VsZWN0IGFueSBhbnN3ZXJzLicpO1xuICB9XG5cbiAgY29uc3QgY29ycmVjdENob2ljZXMgPSAobW9kZWwuY2hvaWNlcyB8fCBbXSkuZmlsdGVyKChjKSA9PiBjLmNvcnJlY3QpO1xuICBjb25zdCBjb3JyZWN0VmFsdWVzID0gY29ycmVjdENob2ljZXMubWFwKChjKSA9PiBjLnZhbHVlKTtcbiAgdHJhY2VMb2cucHVzaChgJHtjb3JyZWN0Q2hvaWNlcy5sZW5ndGh9IGNvcnJlY3QgYW5zd2VyKHMpIGFyZSBkZWZpbmVkIGZvciB0aGlzIHF1ZXN0aW9uLmApO1xuICBcbiAgaWYgKHNlbGVjdGVkLmxlbmd0aCkge1xuICAgIGNvbnN0IGNvcnJlY3RTZWxlY3RlZCA9IHNlbGVjdGVkLmZpbHRlcigodikgPT4gY29ycmVjdFZhbHVlcy5pbmNsdWRlcyh2KSk7XG4gICAgY29uc3QgaW5jb3JyZWN0U2VsZWN0ZWQgPSBzZWxlY3RlZC5maWx0ZXIoKHYpID0+ICFjb3JyZWN0VmFsdWVzLmluY2x1ZGVzKHYpKTtcbiAgICB0cmFjZUxvZy5wdXNoKFxuICAgICAgYFN0dWRlbnQgc2VsZWN0ZWQgJHtjb3JyZWN0U2VsZWN0ZWQubGVuZ3RofSBjb3JyZWN0IGFuZCAke2luY29ycmVjdFNlbGVjdGVkLmxlbmd0aH0gaW5jb3JyZWN0IGFuc3dlcihzKS5gXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IHBhcnRpYWxTY29yaW5nRW5hYmxlZCA9IHBhcnRpYWxTY29yaW5nLmVuYWJsZWQobW9kZWwsIGVudikgJiYgbW9kZWwuY2hvaWNlTW9kZSAhPT0gJ3JhZGlvJztcbiAgY29uc3Qgc2NvcmluZ01ldGhvZCA9IHBhcnRpYWxTY29yaW5nRW5hYmxlZCA/ICdwYXJ0aWFsIHNjb3JpbmcnIDogJ2FsbC1vci1ub3RoaW5nIHNjb3JpbmcnO1xuICB0cmFjZUxvZy5wdXNoKGBTY29yZSBjYWxjdWxhdGVkIHVzaW5nICR7c2NvcmluZ01ldGhvZH0uYCk7XG5cbiAgY29uc3Qgc2NvcmUgPSBnZXRTY29yZShtb2RlbCwgc2Vzc2lvbik7XG4gIHRyYWNlTG9nLnB1c2goYEZpbmFsIHNjb3JlOiAke3Njb3JlfS5gKTtcblxuICByZXR1cm4gdHJhY2VMb2c7XG59O1xuXG4vKipcbiAqXG4gKiBUaGUgc2NvcmUgaXMgcGFydGlhbCBieSBkZWZhdWx0IGZvciBjaGVja2JveCBtb2RlLCBhbGxPck5vdGhpbmcgZm9yIHJhZGlvIG1vZGUuXG4gKiBUbyBkaXNhYmxlIHBhcnRpYWwgc2NvcmluZyBmb3IgY2hlY2tib3ggbW9kZSB5b3UgZWl0aGVyIHNldCBtb2RlbC5wYXJ0aWFsU2NvcmluZyA9IGZhbHNlIG9yIGVudi5wYXJ0aWFsU2NvcmluZyA9IGZhbHNlLiB0aGUgdmFsdWUgaW4gYGVudmAgd2lsbFxuICogb3ZlcnJpZGUgdGhlIHZhbHVlIGluIGBtb2RlbGAuXG4gKiBAcGFyYW0ge09iamVjdH0gbW9kZWwgLSB0aGUgbWFpbiBtb2RlbFxuICogQHBhcmFtIHsqfSBzZXNzaW9uXG4gKiBAcGFyYW0ge09iamVjdH0gZW52XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBvdXRjb21lKG1vZGVsLCBzZXNzaW9uLCBlbnYpIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgaWYgKCFzZXNzaW9uIHx8IGlzRW1wdHkoc2Vzc2lvbikpIHtcbiAgICAgIHJlc29sdmUoeyBzY29yZTogMCwgZW1wdHk6IHRydWUsIHRyYWNlTG9nOiBbJ1N0dWRlbnQgZGlkIG5vdCBzZWxlY3QgYW55IGFuc3dlcnMuIFNjb3JlIGlzIDAuJ10gfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHRyYWNlTG9nID0gZ2V0TG9nVHJhY2UobW9kZWwsIHNlc3Npb24sIGVudik7XG4gICAgICBjb25zdCBzY29yZSA9IGdldFNjb3JlKG1vZGVsLCBzZXNzaW9uKTtcbiAgICAgIGNvbnN0IHBhcnRpYWxTY29yaW5nRW5hYmxlZCA9IHBhcnRpYWxTY29yaW5nLmVuYWJsZWQobW9kZWwsIGVudikgJiYgbW9kZWwuY2hvaWNlTW9kZSAhPT0gJ3JhZGlvJztcblxuICAgICAgcmVzb2x2ZSh7IFxuICAgICAgICBzY29yZTogcGFydGlhbFNjb3JpbmdFbmFibGVkID8gc2NvcmUgOiBzY29yZSA9PT0gMSA/IDEgOiAwLCBcbiAgICAgICAgZW1wdHk6IGZhbHNlLCBcbiAgICAgICAgdHJhY2VMb2cgXG4gICAgICB9KTtcbiAgICB9XG4gIH0pO1xufVxuXG5leHBvcnQgY29uc3QgY3JlYXRlQ29ycmVjdFJlc3BvbnNlU2Vzc2lvbiA9IChxdWVzdGlvbiwgZW52KSA9PiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgIGlmIChlbnYubW9kZSAhPT0gJ2V2YWx1YXRlJyAmJiBlbnYucm9sZSA9PT0gJ2luc3RydWN0b3InKSB7XG4gICAgICBjb25zdCB7IGNob2ljZXMgfSA9IHF1ZXN0aW9uIHx8IHsgY2hvaWNlczogW10gfTtcblxuICAgICAgcmVzb2x2ZSh7XG4gICAgICAgIGlkOiAnMScsXG4gICAgICAgIHZhbHVlOiBjaG9pY2VzLmZpbHRlcigoYykgPT4gYy5jb3JyZWN0KS5tYXAoKGMpID0+IGMudmFsdWUpLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgfVxuICB9KTtcbn07XG5cbi8vIHJlbW92ZSBhbGwgaHRtbCB0YWdzXG5jb25zdCBnZXRJbm5lclRleHQgPSAoaHRtbCkgPT4gKGh0bWwgfHwgJycpLnJlcGxhY2VBbGwoLzxbXj5dKj4vZywgJycpO1xuXG4vLyByZW1vdmUgYWxsIGh0bWwgdGFncyBleGNlcHQgaW1nLCBpZnJhbWUgYW5kIHNvdXJjZSB0YWcgZm9yIGF1ZGlvXG5jb25zdCBnZXRDb250ZW50ID0gKGh0bWwpID0+IChodG1sIHx8ICcnKS5yZXBsYWNlKC8oPCg/IWltZ3xpZnJhbWV8c291cmNlKShbXj5dKyk+KS9naSwgJycpO1xuXG5leHBvcnQgY29uc3QgdmFsaWRhdGUgPSAobW9kZWwgPSB7fSwgY29uZmlnID0ge30pID0+IHtcbiAgY29uc3QgeyBjaG9pY2VzIH0gPSBtb2RlbDtcbiAgY29uc3QgeyBtaW5BbnN3ZXJDaG9pY2VzID0gMiwgbWF4QW5zd2VyQ2hvaWNlcyB9ID0gY29uZmlnO1xuICBjb25zdCByZXZlcnNlZENob2ljZXMgPSBbLi4uKGNob2ljZXMgfHwgW10pXS5yZXZlcnNlKCk7XG4gIGNvbnN0IGNob2ljZXNFcnJvcnMgPSB7fTtcbiAgY29uc3QgcmF0aW9uYWxlRXJyb3JzID0ge307XG4gIGNvbnN0IGVycm9ycyA9IHt9O1xuXG4gIFsndGVhY2hlckluc3RydWN0aW9ucycsICdwcm9tcHQnXS5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgIGlmIChjb25maWdbZmllbGRdPy5yZXF1aXJlZCAmJiAhZ2V0Q29udGVudChtb2RlbFtmaWVsZF0pKSB7XG4gICAgICBlcnJvcnNbZmllbGRdID0gJ1RoaXMgZmllbGQgaXMgcmVxdWlyZWQuJztcbiAgICB9XG4gIH0pO1xuXG4gIGxldCBoYXNDb3JyZWN0UmVzcG9uc2UgPSBmYWxzZTtcbiAgbGV0IGNvcnJlY3RDb3VudCA9IDA7XG5cbiAgcmV2ZXJzZWRDaG9pY2VzLmZvckVhY2goKGNob2ljZSwgaW5kZXgpID0+IHtcbiAgICBjb25zdCB7IGNvcnJlY3QsIHZhbHVlLCBsYWJlbCwgcmF0aW9uYWxlIH0gPSBjaG9pY2U7XG5cbiAgICBpZiAoY29ycmVjdCkge1xuICAgICAgaGFzQ29ycmVjdFJlc3BvbnNlID0gdHJ1ZTtcbiAgICAgIGNvcnJlY3RDb3VudCsrO1xuICAgIH1cblxuICAgIGlmICghZ2V0Q29udGVudChsYWJlbCkpIHtcbiAgICAgIGNob2ljZXNFcnJvcnNbdmFsdWVdID0gJ0NvbnRlbnQgc2hvdWxkIG5vdCBiZSBlbXB0eS4nO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBpZGVudGljYWxBbnN3ZXIgPSByZXZlcnNlZENob2ljZXMuc2xpY2UoaW5kZXggKyAxKS5zb21lKChjKSA9PiBjLmxhYmVsID09PSBsYWJlbCk7XG5cbiAgICAgIGlmIChpZGVudGljYWxBbnN3ZXIpIHtcbiAgICAgICAgY2hvaWNlc0Vycm9yc1t2YWx1ZV0gPSAnQ29udGVudCBzaG91bGQgYmUgdW5pcXVlLic7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGNvbmZpZy5yYXRpb25hbGU/LnJlcXVpcmVkICYmICFnZXRDb250ZW50KHJhdGlvbmFsZSkpIHtcbiAgICAgIHJhdGlvbmFsZUVycm9yc1t2YWx1ZV0gPSAnVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4nO1xuICAgIH1cbiAgfSk7XG5cbiAgY29uc3QgbmJPZkNob2ljZXMgPSAoY2hvaWNlcyB8fCBbXSkubGVuZ3RoO1xuXG4gIGlmIChuYk9mQ2hvaWNlcyA8IG1pbkFuc3dlckNob2ljZXMpIHtcbiAgICBlcnJvcnMuYW5zd2VyQ2hvaWNlcyA9IGBUaGVyZSBzaG91bGQgYmUgYXQgbGVhc3QgJHttaW5BbnN3ZXJDaG9pY2VzfSBjaG9pY2VzIGRlZmluZWQuYDtcbiAgfSBlbHNlIGlmIChuYk9mQ2hvaWNlcyA+IG1heEFuc3dlckNob2ljZXMpIHtcbiAgICBlcnJvcnMuYW5zd2VyQ2hvaWNlcyA9IGBObyBtb3JlIHRoYW4gJHttYXhBbnN3ZXJDaG9pY2VzfSBjaG9pY2VzIHNob3VsZCBiZSBkZWZpbmVkLmA7XG4gIH1cblxuICBpZiAoIWhhc0NvcnJlY3RSZXNwb25zZSkge1xuICAgIGVycm9ycy5jb3JyZWN0UmVzcG9uc2UgPSAnTm8gY29ycmVjdCByZXNwb25zZSBkZWZpbmVkLic7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgeyBtYXhTZWxlY3Rpb25zLCBjaG9pY2VNb2RlIH0gPSBtb2RlbDtcblxuICAgIGlmIChjaG9pY2VNb2RlICE9PSAncmFkaW8nICYmIG1heFNlbGVjdGlvbnMgIT0gbnVsbCAmJiBjb3JyZWN0Q291bnQgPiBtYXhTZWxlY3Rpb25zKSB7XG4gICAgICBlcnJvcnMuY29ycmVjdFJlc3BvbnNlID0gYFRoZSBudW1iZXIgb2YgY29ycmVjdCBhbnN3ZXJzICgke2NvcnJlY3RDb3VudH0pIGV4Y2VlZHMgbWF4IHNlbGVjdGlvbnMgKCR7bWF4U2VsZWN0aW9uc30pLiBTdHVkZW50cyB3b24ndCBiZSBhYmxlIHRvIHNlbGVjdCBhbGwgY29ycmVjdCBhbnN3ZXJzLmA7XG4gICAgfVxuICB9XG5cbiAgaWYgKCFpc0VtcHR5KGNob2ljZXNFcnJvcnMpKSB7XG4gICAgZXJyb3JzLmNob2ljZXMgPSBjaG9pY2VzRXJyb3JzO1xuICB9XG5cbiAgaWYgKCFpc0VtcHR5KHJhdGlvbmFsZUVycm9ycykpIHtcbiAgICBlcnJvcnMucmF0aW9uYWxlID0gcmF0aW9uYWxlRXJyb3JzO1xuICB9XG5cbiAgcmV0dXJuIGVycm9ycztcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFDQSxJQUFBQSxTQUFBLEdBQUFDLE9BQUE7QUFD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
298
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_lodashEs","require","_utils","_defaults","_interopRequireDefault","_controllerUtils","prepareChoice","model","env","defaultFeedback","choice","role","mode","out","label","value","rationale","rationaleEnabled","correct","feedbackEnabled","feedbackType","feedback","type","createDefaultModel","Promise","resolve","defaults","normalize","question","verticalMode","choicesLayout","questionProps","exports","session","updateSession","normalizedQuestion","Object","assign","incorrect","choices","map","lockChoiceOrder","lockChoices","getShuffledChoices","disabled","prompt","promptEnabled","gridColumns","choiceMode","keyMode","choicePrefix","responseCorrect","isResponseCorrect","undefined","language","extraCSSRules","fontSizeFactor","isSelectionButtonBelow","selectedAnswerBackgroundColor","selectedAnswerStrokeColor","selectedAnswerStrokeWidth","hoverAnswerBackgroundColor","hoverAnswerStrokeColor","hoverAnswerStrokeWidth","minSelections","maxSelections","keyboardEventsEnabled","autoplayAudioEnabled","completeAudioEnabled","customAudioButton","teacherInstructions","teacherInstructionsEnabled","getScore","config","isEmpty","selectedChoices","correctChoices","filter","ch","score","reduce","acc","selectedChoice","find","length","str","parseFloat","toFixed","getLogTrace","traceLog","selected","questionType","push","join","c","correctValues","correctSelected","v","includes","incorrectSelected","partialScoringEnabled","partialScoring","enabled","scoringMethod","outcome","empty","createCorrectResponseSession","id","getInnerText","html","replaceAll","getContent","replace","validate","minAnswerChoices","maxAnswerChoices","reversedChoices","reverse","choicesErrors","rationaleErrors","errors","forEach","field","required","hasCorrectResponse","correctCount","index","identicalAnswer","slice","some","nbOfChoices","answerChoices","correctResponse"],"sources":["../src/index.js"],"sourcesContent":["/* eslint-disable no-console */\nimport { isEmpty } from 'lodash-es';\nimport { isResponseCorrect } from './utils';\nimport defaults from './defaults';\nimport { lockChoices, partialScoring, getShuffledChoices } from '@pie-lib/controller-utils';\n\nconst prepareChoice = (model, env, defaultFeedback) => (choice) => {\n const { role, mode } = env || {};\n const out = {\n label: choice.label,\n value: choice.value,\n };\n\n if (role === 'instructor' && (mode === 'view' || mode === 'evaluate')) {\n out.rationale = model.rationaleEnabled ? choice.rationale : null;\n } else {\n out.rationale = null;\n }\n\n if (mode === 'evaluate') {\n out.correct = !!choice.correct;\n\n if (model.feedbackEnabled) {\n const feedbackType = (choice.feedback && choice.feedback.type) || 'none';\n\n if (feedbackType === 'default') {\n out.feedback = defaultFeedback[choice.correct ? 'correct' : 'incorrect'];\n } else if (feedbackType === 'custom') {\n out.feedback = choice.feedback.value;\n }\n }\n }\n\n return out;\n};\n\nexport function createDefaultModel(model = {}) {\n return new Promise((resolve) => resolve({ ...defaults, ...model }));\n}\n\nexport const normalize = (question) => {\n const { verticalMode, choicesLayout, ...questionProps } = question || {};\n\n return {\n ...defaults,\n ...questionProps,\n // This is used for offering support for old models which have the property verticalMode\n // Same thing is set in authoring : packages/multiple-choice/configure/src/index.jsx - createDefaultModel\n choicesLayout: choicesLayout || (verticalMode === false && 'horizontal') || defaults.choicesLayout,\n };\n};\n\n/**\n *\n * @param {*} question\n * @param {*} session\n * @param {*} env\n * @param {*} updateSession - optional - a function that will set the properties passed into it on the session.\n */\nexport async function model(question, session, env, updateSession) {\n const normalizedQuestion = normalize(question);\n\n const defaultFeedback = Object.assign(\n { correct: 'Correct', incorrect: 'Incorrect' },\n normalizedQuestion.defaultFeedback,\n );\n\n let choices = (normalizedQuestion.choices || []).map(prepareChoice(normalizedQuestion, env, defaultFeedback));\n\n const lockChoiceOrder = lockChoices(normalizedQuestion, session, env);\n\n if (!lockChoiceOrder) {\n choices = await getShuffledChoices(choices, session, updateSession, 'value');\n }\n\n const out = {\n disabled: env.mode !== 'gather',\n mode: env.mode,\n prompt: normalizedQuestion.promptEnabled ? normalizedQuestion.prompt : null,\n choicesLayout: normalizedQuestion.choicesLayout,\n gridColumns: normalizedQuestion.gridColumns,\n choiceMode: normalizedQuestion.choiceMode,\n keyMode: normalizedQuestion.choicePrefix,\n choices,\n responseCorrect: env.mode === 'evaluate' ? isResponseCorrect(normalizedQuestion, session) : undefined,\n language: normalizedQuestion.language,\n extraCSSRules: normalizedQuestion.extraCSSRules,\n fontSizeFactor: normalizedQuestion.fontSizeFactor,\n isSelectionButtonBelow: normalizedQuestion.isSelectionButtonBelow,\n selectedAnswerBackgroundColor: normalizedQuestion.selectedAnswerBackgroundColor || 'initial',\n selectedAnswerStrokeColor: normalizedQuestion.selectedAnswerStrokeColor || 'initial',\n selectedAnswerStrokeWidth: normalizedQuestion.selectedAnswerStrokeWidth || 'initial',\n hoverAnswerBackgroundColor: normalizedQuestion.hoverAnswerBackgroundColor || 'initial',\n hoverAnswerStrokeColor: normalizedQuestion.hoverAnswerStrokeColor || 'initial',\n hoverAnswerStrokeWidth: normalizedQuestion.hoverAnswerStrokeWidth || 'initial',\n minSelections: normalizedQuestion.minSelections,\n maxSelections: normalizedQuestion.maxSelections,\n keyboardEventsEnabled: normalizedQuestion.keyboardEventsEnabled,\n autoplayAudioEnabled: normalizedQuestion.autoplayAudioEnabled,\n completeAudioEnabled: normalizedQuestion.completeAudioEnabled,\n customAudioButton: normalizedQuestion.customAudioButton,\n };\n\n const { role, mode } = env || {};\n\n if (role === 'instructor' && (mode === 'view' || mode === 'evaluate')) {\n out.teacherInstructions = normalizedQuestion.teacherInstructionsEnabled\n ? normalizedQuestion.teacherInstructions\n : null;\n } else {\n out.teacherInstructions = null;\n }\n\n return out;\n}\n\nexport const getScore = (config, session) => {\n if (!session || isEmpty(session)) {\n return 0;\n }\n\n const selectedChoices = session.value || [];\n const correctChoices = (config.choices || []).filter((ch) => ch.correct);\n\n let score = selectedChoices.reduce(\n (acc, selectedChoice) => acc + (correctChoices.find((ch) => ch.value === selectedChoice) ? 1 : 0),\n 0,\n );\n\n if (correctChoices.length < selectedChoices.length) {\n score -= selectedChoices.length - correctChoices.length;\n\n if (score < 0) {\n score = 0;\n }\n }\n\n const str = correctChoices.length ? score / correctChoices.length : 0;\n\n return parseFloat(str.toFixed(2));\n};\n\n/**\n * Generates detailed trace log for scoring evaluation\n * @param {Object} model - the question model\n * @param {Object} session - the student session\n * @param {Object} env - the environment\n * @returns {Array} traceLog - array of trace messages\n */\nexport const getLogTrace = (model, session, env) => {\n const traceLog = [];\n const selected = session?.value || [];\n \n const questionType = model.choiceMode === 'radio' ? 'multiple-choice (radio)' : 'multiple-select (checkbox)';\n traceLog.push(`Question type: ${questionType}.`);\n \n if (selected.length) {\n traceLog.push(`Student selected ${selected.length} answer(s): ${selected.join(', ')}.`);\n } else {\n traceLog.push('Student did not select any answers.');\n }\n\n const correctChoices = (model.choices || []).filter((c) => c.correct);\n const correctValues = correctChoices.map((c) => c.value);\n traceLog.push(`${correctChoices.length} correct answer(s) are defined for this question.`);\n \n if (selected.length) {\n const correctSelected = selected.filter((v) => correctValues.includes(v));\n const incorrectSelected = selected.filter((v) => !correctValues.includes(v));\n traceLog.push(\n `Student selected ${correctSelected.length} correct and ${incorrectSelected.length} incorrect answer(s).`\n );\n }\n\n const partialScoringEnabled = partialScoring.enabled(model, env) && model.choiceMode !== 'radio';\n const scoringMethod = partialScoringEnabled ? 'partial scoring' : 'all-or-nothing scoring';\n traceLog.push(`Score calculated using ${scoringMethod}.`);\n\n const score = getScore(model, session);\n traceLog.push(`Final score: ${score}.`);\n\n return traceLog;\n};\n\n/**\n *\n * The score is partial by default for checkbox mode, allOrNothing for radio mode.\n * To disable partial scoring for checkbox mode you either set model.partialScoring = false or env.partialScoring = false. the value in `env` will\n * override the value in `model`.\n * @param {Object} model - the main model\n * @param {*} session\n * @param {Object} env\n */\nexport function outcome(model, session, env) {\n return new Promise((resolve) => {\n if (!session || isEmpty(session)) {\n resolve({ score: 0, empty: true, traceLog: ['Student did not select any answers. Score is 0.'] });\n } else {\n const traceLog = getLogTrace(model, session, env);\n const score = getScore(model, session);\n const partialScoringEnabled = partialScoring.enabled(model, env) && model.choiceMode !== 'radio';\n\n resolve({ \n score: partialScoringEnabled ? score : score === 1 ? 1 : 0, \n empty: false, \n traceLog \n });\n }\n });\n}\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise((resolve) => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n const { choices } = question || { choices: [] };\n\n resolve({\n id: '1',\n value: choices.filter((c) => c.correct).map((c) => c.value),\n });\n } else {\n resolve(null);\n }\n });\n};\n\n// remove all html tags\nconst getInnerText = (html) => (html || '').replaceAll(/<[^>]*>/g, '');\n\n// remove all html tags except img, iframe and source tag for audio\nconst getContent = (html) => (html || '').replace(/(<(?!img|iframe|source)([^>]+)>)/gi, '');\n\nexport const validate = (model = {}, config = {}) => {\n const { choices } = model;\n const { minAnswerChoices = 2, maxAnswerChoices } = config;\n const reversedChoices = [...(choices || [])].reverse();\n const choicesErrors = {};\n const rationaleErrors = {};\n const errors = {};\n\n ['teacherInstructions', 'prompt'].forEach((field) => {\n if (config[field]?.required && !getContent(model[field])) {\n errors[field] = 'This field is required.';\n }\n });\n\n let hasCorrectResponse = false;\n let correctCount = 0;\n\n reversedChoices.forEach((choice, index) => {\n const { correct, value, label, rationale } = choice;\n\n if (correct) {\n hasCorrectResponse = true;\n correctCount++;\n }\n\n if (!getContent(label)) {\n choicesErrors[value] = 'Content should not be empty.';\n } else {\n const identicalAnswer = reversedChoices.slice(index + 1).some((c) => c.label === label);\n\n if (identicalAnswer) {\n choicesErrors[value] = 'Content should be unique.';\n }\n }\n\n if (config.rationale?.required && !getContent(rationale)) {\n rationaleErrors[value] = 'This field is required.';\n }\n });\n\n const nbOfChoices = (choices || []).length;\n\n if (nbOfChoices < minAnswerChoices) {\n errors.answerChoices = `There should be at least ${minAnswerChoices} choices defined.`;\n } else if (nbOfChoices > maxAnswerChoices) {\n errors.answerChoices = `No more than ${maxAnswerChoices} choices should be defined.`;\n }\n\n if (!hasCorrectResponse) {\n errors.correctResponse = 'No correct response defined.';\n } else {\n const { maxSelections, choiceMode } = model;\n\n if (choiceMode !== 'radio' && maxSelections != null && correctCount > maxSelections) {\n errors.correctResponse = `The number of correct answers (${correctCount}) exceeds max selections (${maxSelections}). Students won't be able to select all correct answers.`;\n }\n }\n\n if (!isEmpty(choicesErrors)) {\n errors.choices = choicesErrors;\n }\n\n if (!isEmpty(rationaleErrors)) {\n errors.rationale = rationaleErrors;\n }\n\n return errors;\n};\n"],"mappings":"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","ignoreList":[]}
@@ -12,4 +12,4 @@ const isResponseCorrect = (question, session) => {
12
12
  return session && (0, _lodashEs.isEqual)((session.value || []).sort(), correctResponse);
13
13
  };
14
14
  exports.isResponseCorrect = isResponseCorrect;
15
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoRXMiLCJyZXF1aXJlIiwiZ2V0Q29ycmVjdFJlc3BvbnNlIiwiY2hvaWNlcyIsImZpbHRlciIsImMiLCJjb3JyZWN0IiwibWFwIiwidmFsdWUiLCJzb3J0IiwiZXhwb3J0cyIsImlzUmVzcG9uc2VDb3JyZWN0IiwicXVlc3Rpb24iLCJzZXNzaW9uIiwiY29ycmVjdFJlc3BvbnNlIiwiaXNFcXVhbCJdLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlscy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0VxdWFsIH0gZnJvbSAnbG9kYXNoLWVzJztcblxuZXhwb3J0IGNvbnN0IGdldENvcnJlY3RSZXNwb25zZSA9IChjaG9pY2VzKSA9PlxuICBjaG9pY2VzXG4gICAgLmZpbHRlcigoYykgPT4gYy5jb3JyZWN0KVxuICAgIC5tYXAoKGMpID0+IGMudmFsdWUpXG4gICAgLnNvcnQoKTtcblxuZXhwb3J0IGNvbnN0IGlzUmVzcG9uc2VDb3JyZWN0ID0gKHF1ZXN0aW9uLCBzZXNzaW9uKSA9PiB7XG4gIGxldCBjb3JyZWN0UmVzcG9uc2UgPSBnZXRDb3JyZWN0UmVzcG9uc2UocXVlc3Rpb24uY2hvaWNlcyk7XG4gIHJldHVybiBzZXNzaW9uICYmIGlzRXF1YWwoKHNlc3Npb24udmFsdWUgfHwgW10pLnNvcnQoKSwgY29ycmVjdFJlc3BvbnNlKTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLFNBQUEsR0FBQUMsT0FBQTtBQUVPLE1BQU1DLGtCQUFrQixHQUFJQyxPQUFPLElBQ3hDQSxPQUFPLENBQ0pDLE1BQU0sQ0FBRUMsQ0FBQyxJQUFLQSxDQUFDLENBQUNDLE9BQU8sQ0FBQyxDQUN4QkMsR0FBRyxDQUFFRixDQUFDLElBQUtBLENBQUMsQ0FBQ0csS0FBSyxDQUFDLENBQ25CQyxJQUFJLENBQUMsQ0FBQztBQUFDQyxPQUFBLENBQUFSLGtCQUFBLEdBQUFBLGtCQUFBO0FBRUwsTUFBTVMsaUJBQWlCLEdBQUdBLENBQUNDLFFBQVEsRUFBRUMsT0FBTyxLQUFLO0VBQ3RELElBQUlDLGVBQWUsR0FBR1osa0JBQWtCLENBQUNVLFFBQVEsQ0FBQ1QsT0FBTyxDQUFDO0VBQzFELE9BQU9VLE9BQU8sSUFBSSxJQUFBRSxpQkFBTyxFQUFDLENBQUNGLE9BQU8sQ0FBQ0wsS0FBSyxJQUFJLEVBQUUsRUFBRUMsSUFBSSxDQUFDLENBQUMsRUFBRUssZUFBZSxDQUFDO0FBQzFFLENBQUM7QUFBQ0osT0FBQSxDQUFBQyxpQkFBQSxHQUFBQSxpQkFBQSIsImlnbm9yZUxpc3QiOltdfQ==
15
+ //# sourceMappingURL=utils.js.map