@pie-element/match 7.1.2-next.9 → 7.1.3-next.12

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,17 @@
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
+ ## [7.1.2](https://github.com/pie-framework/pie-elements/compare/@pie-element/match@7.1.1...@pie-element/match@7.1.2) (2024-03-12)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * update pie-lib/pie-toolbox PD-3509, PD-3465 ([b1745aa](https://github.com/pie-framework/pie-elements/commit/b1745aa981722b5561aab1f4495ac81ac7bc4155))
12
+
13
+
14
+
15
+
16
+
6
17
  ## [7.1.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/match@7.1.0...@pie-element/match@7.1.1) (2024-03-07)
7
18
 
8
19
 
@@ -3,6 +3,17 @@
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
+ ## [6.5.2](https://github.com/pie-framework/pie-elements/compare/@pie-element/match-configure@6.5.1...@pie-element/match-configure@6.5.2) (2024-03-12)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * update pie-lib/pie-toolbox PD-3509, PD-3465 ([b1745aa](https://github.com/pie-framework/pie-elements/commit/b1745aa981722b5561aab1f4495ac81ac7bc4155))
12
+
13
+
14
+
15
+
16
+
6
17
  ## [6.5.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/match-configure@6.5.0...@pie-element/match-configure@6.5.1) (2024-03-07)
7
18
 
8
19
 
@@ -63,6 +63,11 @@ var styles = function styles(theme) {
63
63
  width: '100%',
64
64
  paddingTop: theme.spacing.unit * 2,
65
65
  marginBottom: theme.spacing.unit * 2
66
+ },
67
+ errorText: {
68
+ fontSize: theme.typography.fontSize - 2,
69
+ color: theme.palette.error.main,
70
+ paddingTop: theme.spacing.unit
66
71
  }
67
72
  };
68
73
  };
@@ -310,6 +315,7 @@ var Configure = /*#__PURE__*/function (_React$Component) {
310
315
  languageChoices = _ref2$languageChoices === void 0 ? {} : _ref2$languageChoices;
311
316
 
312
317
  var _ref3 = model || {},
318
+ errors = _ref3.errors,
313
319
  feedbackEnabled = _ref3.feedbackEnabled,
314
320
  promptEnabled = _ref3.promptEnabled,
315
321
  rationaleEnabled = _ref3.rationaleEnabled,
@@ -317,6 +323,11 @@ var Configure = /*#__PURE__*/function (_React$Component) {
317
323
  teacherInstructionsEnabled = _ref3.teacherInstructionsEnabled,
318
324
  toolbarEditorPosition = _ref3.toolbarEditorPosition;
319
325
 
326
+ var _ref4 = errors || {},
327
+ promptError = _ref4.prompt,
328
+ rationaleError = _ref4.rationale,
329
+ teacherInstructionsError = _ref4.teacherInstructions;
330
+
320
331
  var dialog = this.state.dialog;
321
332
  var toolbarOpts = {
322
333
  position: toolbarEditorPosition === 'top' ? 'top' : 'bottom'
@@ -366,6 +377,7 @@ var Configure = /*#__PURE__*/function (_React$Component) {
366
377
  markup: model.teacherInstructions || '',
367
378
  onChange: this.onTeacherInstructionsChanged,
368
379
  imageSupport: imageSupport,
380
+ error: teacherInstructionsError,
369
381
  nonEmpty: false,
370
382
  toolbarOpts: toolbarOpts,
371
383
  pluginProps: (0, _utils.getPluginProps)(teacherInstructions === null || teacherInstructions === void 0 ? void 0 : teacherInstructions.inputConfiguration, baseInputConfiguration),
@@ -378,7 +390,9 @@ var Configure = /*#__PURE__*/function (_React$Component) {
378
390
  }, {
379
391
  language: 'special'
380
392
  }]
381
- })), promptEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
393
+ }), teacherInstructionsError && /*#__PURE__*/_react["default"].createElement("div", {
394
+ className: classes.errorText
395
+ }, teacherInstructionsError)), promptEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
382
396
  label: prompt.label,
383
397
  className: classes.promptHolder
384
398
  }, /*#__PURE__*/_react["default"].createElement(_editableHtml.EditableHtml, {
@@ -386,6 +400,7 @@ var Configure = /*#__PURE__*/function (_React$Component) {
386
400
  markup: model.prompt,
387
401
  onChange: this.onPromptChanged,
388
402
  imageSupport: imageSupport,
403
+ error: promptError,
389
404
  nonEmpty: false,
390
405
  disableUnderline: true,
391
406
  toolbarOpts: toolbarOpts,
@@ -399,7 +414,9 @@ var Configure = /*#__PURE__*/function (_React$Component) {
399
414
  }, {
400
415
  language: 'special'
401
416
  }]
402
- })), /*#__PURE__*/_react["default"].createElement(_generalConfigBlock["default"], {
417
+ }), promptError && /*#__PURE__*/_react["default"].createElement("div", {
418
+ className: classes.errorText
419
+ }, promptError)), /*#__PURE__*/_react["default"].createElement(_generalConfigBlock["default"], {
403
420
  model: model,
404
421
  configuration: configuration,
405
422
  onResponseTypeChange: this.onResponseTypeChange,
@@ -422,6 +439,7 @@ var Configure = /*#__PURE__*/function (_React$Component) {
422
439
  markup: model.rationale || '',
423
440
  onChange: this.onRationaleChanged,
424
441
  imageSupport: imageSupport,
442
+ error: rationaleError,
425
443
  toolbarOpts: toolbarOpts,
426
444
  pluginProps: (0, _utils.getPluginProps)(rationale === null || rationale === void 0 ? void 0 : rationale.inputConfiguration, baseInputConfiguration),
427
445
  spellCheck: spellCheckEnabled,
@@ -433,7 +451,9 @@ var Configure = /*#__PURE__*/function (_React$Component) {
433
451
  }, {
434
452
  language: 'special'
435
453
  }]
436
- })), feedbackEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.FeedbackConfig, {
454
+ }), rationaleError && /*#__PURE__*/_react["default"].createElement("div", {
455
+ className: classes.errorText
456
+ }, rationaleError)), feedbackEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.FeedbackConfig, {
437
457
  feedback: model.feedback,
438
458
  onChange: this.onFeedbackChange,
439
459
  toolbarOpts: toolbarOpts
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/configure.jsx"],"names":["log","Panel","settings","toggle","radio","dropdown","styles","theme","promptHolder","width","paddingTop","spacing","unit","marginBottom","Configure","props","event","value","setState","activeTab","index","model","onModelChanged","feedback","rowIndex","newModel","rows","splice","onChange","configuration","maxQuestions","length","dialog","open","text","concat","id","rowIdCounter","title","values","Array","layout","fill","newLayout","oldLayout","i","headers","push","forEach","row","newChoiceMode","trueCount","reduce","total","current","choiceMode","partialScoring","prompt","teacherInstructions","rationale","maxId","Math","max","map","state","validateRowsID","updatedRows","wasChanged","classes","imageSupport","onConfigurationChanged","uploadSoundSupport","baseInputConfiguration","contentDimensions","enableImages","lockChoiceOrder","maxImageWidth","maxImageHeight","settingsPanelDisabled","scoringType","spellCheck","studentInstructions","withRubric","language","languageChoices","feedbackEnabled","promptEnabled","rationaleEnabled","spellCheckEnabled","teacherInstructionsEnabled","toolbarEditorPosition","toolbarOpts","position","defaultImageMaxWidth","defaultImageMaxHeight","panelSettings","label","enabled","options","panelProperties","studentInstructionsEnabled","rubricEnabled","config","Settings","Properties","onTeacherInstructionsChanged","inputConfiguration","onPromptChanged","onResponseTypeChange","onLayoutChange","onAddRow","onDeleteRow","onRationaleChanged","onFeedbackChange","React","Component","PropTypes","func","object","isRequired","shape","add","Config"],"mappings":"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","sourcesContent":["import { getPluginProps } from './utils';\nimport React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport { FeedbackConfig, settings, layout, InputContainer, AlertDialog } from '@pie-lib/pie-toolbox/config-ui';\nimport { EditableHtml } from '@pie-lib/pie-toolbox/editable-html';\nimport { withDragContext } from '@pie-lib/pie-toolbox/drag';\nimport PropTypes from 'prop-types';\nimport debug from 'debug';\nimport GeneralConfigBlock from './general-config-block';\nimport AnswerConfigBlock from './answer-config-block';\n\nconst log = debug('@pie-element:match:configure');\nconst { Panel, toggle, radio, dropdown } = settings;\n\nconst styles = (theme) => ({\n promptHolder: {\n width: '100%',\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n});\n\nclass Configure extends React.Component {\n static propTypes = {\n onModelChanged: PropTypes.func,\n onConfigurationChanged: PropTypes.func,\n classes: PropTypes.object,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n };\n\n static defaultProps = {\n classes: {},\n };\n\n constructor(props) {\n super(props);\n\n let maxId = 0;\n\n if (props.model.rows && props.model.rows.length > 0) {\n maxId = Math.max(...props.model.rows.map((row) => row.id));\n }\n\n this.rowIdCounter = maxId + 1;\n\n this.state = {\n activeTab: 0,\n dialog: {\n open: false,\n text: '',\n },\n };\n }\n\n componentDidMount() {\n const { updatedRows, wasChanged } = this.validateRowsID(this.props.model.rows);\n\n if (wasChanged) {\n const newModel = { ...this.props.model, rows: updatedRows };\n this.props.onModelChanged(newModel);\n }\n }\n\n validateRowsID(rows) {\n let wasChanged = false;\n\n const updatedRows = (rows || []).map((row, index) => {\n if (row.id !== index + 1) {\n wasChanged = true;\n\n return { ...row, id: index + 1 };\n }\n\n return row;\n });\n\n return { updatedRows, wasChanged };\n }\n\n onTabChange = (event, value) => {\n this.setState({ activeTab: value });\n };\n\n onChangeTabIndex = (index) => {\n this.setState({ activeTab: index });\n };\n\n onChange = (model) => {\n this.props.onModelChanged(model);\n };\n\n onFeedbackChange = (feedback) => {\n const { model, onModelChanged } = this.props;\n model.feedback = feedback;\n\n onModelChanged(model);\n };\n\n onDeleteRow = (rowIndex) => {\n const { model } = this.props;\n const newModel = { ...model };\n\n newModel.rows.splice(rowIndex, 1);\n\n this.onChange(newModel);\n };\n\n onAddRow = () => {\n const { model, configuration } = this.props;\n const newModel = { ...model };\n const { maxQuestions } = configuration || {};\n\n if (maxQuestions && (newModel.rows || []).length >= maxQuestions) {\n this.setState({\n dialog: {\n open: true,\n text: `There can be maximum ${maxQuestions} question row` + (maxQuestions > 1 ? 's' : '') + '.',\n },\n });\n return;\n }\n\n newModel.rows = newModel.rows.concat({\n id: this.rowIdCounter + 1,\n title: `Question Text ${(newModel.rows || []).length + 1}`,\n values: new Array(model.layout - 1).fill(false),\n });\n\n this.rowIdCounter += 1;\n\n this.onChange(newModel);\n };\n\n onLayoutChange = (newLayout) => {\n const { model } = this.props;\n const oldLayout = model.layout;\n const newModel = { ...model };\n\n if (newLayout > oldLayout) {\n for (let i = 0; i < newLayout - oldLayout; i++) {\n newModel.headers.push(`Column ${newModel.headers.length + 1}`);\n }\n\n newModel.rows.forEach((row) => {\n for (let i = 0; i < newLayout - oldLayout; i++) {\n row.values.push(false);\n }\n });\n } else if (newLayout < oldLayout) {\n newModel.headers.splice(newLayout);\n\n newModel.rows.forEach((row) => {\n row.values.splice(newLayout - 1);\n });\n }\n\n newModel.layout = newLayout;\n\n this.onChange(newModel);\n };\n\n onResponseTypeChange = (newChoiceMode) => {\n const { model } = this.props;\n const newModel = { ...model };\n\n // if we're switching to radio and we have more than one true, reset\n if (newChoiceMode === 'radio') {\n newModel.rows.forEach((row) => {\n const trueCount = row.values.reduce((total, current) => (current === true ? total + 1 : total));\n\n if (trueCount > 1) {\n row.values = new Array(model.layout - 1).fill(false);\n }\n });\n }\n\n newModel.choiceMode = newChoiceMode;\n\n this.onChange(newModel);\n };\n\n onPartialScoringChange = (partialScoring) => {\n this.props.model.partialScoring = partialScoring;\n\n this.props.onModelChanged(this.props.model);\n };\n\n onPromptChanged = (prompt) => {\n this.props.onModelChanged({ ...this.props.model, prompt });\n };\n\n onTeacherInstructionsChanged = (teacherInstructions) => {\n this.props.onModelChanged({ ...this.props.model, teacherInstructions });\n };\n\n onRationaleChanged = (rationale) => {\n this.props.onModelChanged({ ...this.props.model, rationale });\n };\n\n render() {\n const { classes, model, imageSupport, onModelChanged, configuration, onConfigurationChanged, uploadSoundSupport } =\n this.props;\n const {\n baseInputConfiguration = {},\n contentDimensions = {},\n enableImages = {},\n feedback = {},\n lockChoiceOrder = {},\n maxImageWidth = {},\n maxImageHeight = {},\n partialScoring = {},\n prompt = {},\n rationale = {},\n settingsPanelDisabled,\n scoringType = {},\n spellCheck = {},\n studentInstructions = {},\n teacherInstructions = {},\n withRubric = {},\n language = {},\n languageChoices = {},\n } = configuration || {};\n const {\n feedbackEnabled,\n promptEnabled,\n rationaleEnabled,\n spellCheckEnabled,\n teacherInstructionsEnabled,\n toolbarEditorPosition,\n } = model || {};\n const { dialog } = this.state;\n\n const toolbarOpts = {\n position: toolbarEditorPosition === 'top' ? 'top' : 'bottom',\n };\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n const panelSettings = {\n enableImages: enableImages.settings && toggle(enableImages.label),\n partialScoring: partialScoring.settings && toggle(partialScoring.label),\n lockChoiceOrder: lockChoiceOrder.settings && toggle(lockChoiceOrder.label),\n feedbackEnabled: feedback.settings && toggle(feedback.label),\n 'language.enabled': language.settings && toggle(language.label, true),\n language: language.settings && language.enabled && dropdown(languageChoices.label, languageChoices.options),\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 log('[render] model', model);\n\n return (\n <layout.ConfigLayout\n dimensions={contentDimensions}\n hideSettings={settingsPanelDisabled}\n settings={\n <Panel\n model={model}\n configuration={configuration}\n onChangeModel={(model) => onModelChanged(model)}\n onChangeConfiguration={(config) => onConfigurationChanged(config)}\n groups={{\n Settings: panelSettings,\n Properties: panelProperties,\n }}\n />\n }\n >\n {teacherInstructionsEnabled && (\n <InputContainer label={teacherInstructions.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.teacherInstructions || ''}\n onChange={this.onTeacherInstructionsChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(teacherInstructions?.inputConfiguration, baseInputConfiguration)}\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 />\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer label={prompt.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.prompt}\n onChange={this.onPromptChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n disableUnderline\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(prompt?.inputConfiguration, baseInputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={maxImageWidth && maxImageWidth.prompt}\n maxImageHeight={maxImageHeight && maxImageHeight.prompt}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </InputContainer>\n )}\n\n <GeneralConfigBlock\n model={model}\n configuration={configuration}\n onResponseTypeChange={this.onResponseTypeChange}\n onLayoutChange={this.onLayoutChange}\n />\n\n <AnswerConfigBlock\n model={model}\n configuration={configuration}\n imageSupport={imageSupport}\n onChange={this.onChange}\n onAddRow={this.onAddRow}\n onDeleteRow={this.onDeleteRow}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n uploadSoundSupport={uploadSoundSupport}\n />\n\n {rationaleEnabled && (\n <InputContainer label={rationale.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.rationale || ''}\n onChange={this.onRationaleChanged}\n imageSupport={imageSupport}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(rationale?.inputConfiguration, baseInputConfiguration)}\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 />\n </InputContainer>\n )}\n\n {feedbackEnabled && (\n <FeedbackConfig feedback={model.feedback} onChange={this.onFeedbackChange} toolbarOpts={toolbarOpts} />\n )}\n <AlertDialog\n open={dialog.open}\n title=\"Warning\"\n text={dialog.text}\n onConfirm={() => this.setState({ dialog: { open: false } })}\n />\n </layout.ConfigLayout>\n );\n }\n}\n\nexport const Config = Configure;\n\nexport default withDragContext(withStyles(styles)(Configure));\n"],"file":"configure.js"}
1
+ {"version":3,"sources":["../src/configure.jsx"],"names":["log","Panel","settings","toggle","radio","dropdown","styles","theme","promptHolder","width","paddingTop","spacing","unit","marginBottom","errorText","fontSize","typography","color","palette","error","main","Configure","props","event","value","setState","activeTab","index","model","onModelChanged","feedback","rowIndex","newModel","rows","splice","onChange","configuration","maxQuestions","length","dialog","open","text","concat","id","rowIdCounter","title","values","Array","layout","fill","newLayout","oldLayout","i","headers","push","forEach","row","newChoiceMode","trueCount","reduce","total","current","choiceMode","partialScoring","prompt","teacherInstructions","rationale","maxId","Math","max","map","state","validateRowsID","updatedRows","wasChanged","classes","imageSupport","onConfigurationChanged","uploadSoundSupport","baseInputConfiguration","contentDimensions","enableImages","lockChoiceOrder","maxImageWidth","maxImageHeight","settingsPanelDisabled","scoringType","spellCheck","studentInstructions","withRubric","language","languageChoices","errors","feedbackEnabled","promptEnabled","rationaleEnabled","spellCheckEnabled","teacherInstructionsEnabled","toolbarEditorPosition","promptError","rationaleError","teacherInstructionsError","toolbarOpts","position","defaultImageMaxWidth","defaultImageMaxHeight","panelSettings","label","enabled","options","panelProperties","studentInstructionsEnabled","rubricEnabled","config","Settings","Properties","onTeacherInstructionsChanged","inputConfiguration","onPromptChanged","onResponseTypeChange","onLayoutChange","onAddRow","onDeleteRow","onRationaleChanged","onFeedbackChange","React","Component","PropTypes","func","object","isRequired","shape","add","Config"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA,IAAMA,GAAG,GAAG,uBAAM,8BAAN,CAAZ;AACA,IAAQC,KAAR,GAA2CC,kBAA3C,CAAQD,KAAR;AAAA,IAAeE,MAAf,GAA2CD,kBAA3C,CAAeC,MAAf;AAAA,IAAuBC,KAAvB,GAA2CF,kBAA3C,CAAuBE,KAAvB;AAAA,IAA8BC,QAA9B,GAA2CH,kBAA3C,CAA8BG,QAA9B;;AAEA,IAAMC,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBC,IAAAA,YAAY,EAAE;AACZC,MAAAA,KAAK,EAAE,MADK;AAEZC,MAAAA,UAAU,EAAEH,KAAK,CAACI,OAAN,CAAcC,IAAd,GAAqB,CAFrB;AAGZC,MAAAA,YAAY,EAAEN,KAAK,CAACI,OAAN,CAAcC,IAAd,GAAqB;AAHvB,KADW;AAMzBE,IAAAA,SAAS,EAAE;AACTC,MAAAA,QAAQ,EAAER,KAAK,CAACS,UAAN,CAAiBD,QAAjB,GAA4B,CAD7B;AAETE,MAAAA,KAAK,EAAEV,KAAK,CAACW,OAAN,CAAcC,KAAd,CAAoBC,IAFlB;AAGTV,MAAAA,UAAU,EAAEH,KAAK,CAACI,OAAN,CAAcC;AAHjB;AANc,GAAZ;AAAA,CAAf;;IAaMS,S;;;;;AAqBJ,qBAAYC,KAAZ,EAAmB;AAAA;;AAAA;AACjB,8BAAMA,KAAN;AADiB,oGA6CL,UAACC,KAAD,EAAQC,KAAR,EAAkB;AAC9B,YAAKC,QAAL,CAAc;AAAEC,QAAAA,SAAS,EAAEF;AAAb,OAAd;AACD,KA/CkB;AAAA,yGAiDA,UAACG,KAAD,EAAW;AAC5B,YAAKF,QAAL,CAAc;AAAEC,QAAAA,SAAS,EAAEC;AAAb,OAAd;AACD,KAnDkB;AAAA,iGAqDR,UAACC,KAAD,EAAW;AACpB,YAAKN,KAAL,CAAWO,cAAX,CAA0BD,KAA1B;AACD,KAvDkB;AAAA,yGAyDA,UAACE,QAAD,EAAc;AAC/B,wBAAkC,MAAKR,KAAvC;AAAA,UAAQM,KAAR,eAAQA,KAAR;AAAA,UAAeC,cAAf,eAAeA,cAAf;AACAD,MAAAA,KAAK,CAACE,QAAN,GAAiBA,QAAjB;AAEAD,MAAAA,cAAc,CAACD,KAAD,CAAd;AACD,KA9DkB;AAAA,oGAgEL,UAACG,QAAD,EAAc;AAC1B,UAAQH,KAAR,GAAkB,MAAKN,KAAvB,CAAQM,KAAR;;AACA,UAAMI,QAAQ,qBAAQJ,KAAR,CAAd;;AAEAI,MAAAA,QAAQ,CAACC,IAAT,CAAcC,MAAd,CAAqBH,QAArB,EAA+B,CAA/B;;AAEA,YAAKI,QAAL,CAAcH,QAAd;AACD,KAvEkB;AAAA,iGAyER,YAAM;AACf,yBAAiC,MAAKV,KAAtC;AAAA,UAAQM,KAAR,gBAAQA,KAAR;AAAA,UAAeQ,aAAf,gBAAeA,aAAf;;AACA,UAAMJ,QAAQ,qBAAQJ,KAAR,CAAd;;AACA,iBAAyBQ,aAAa,IAAI,EAA1C;AAAA,UAAQC,YAAR,QAAQA,YAAR;;AAEA,UAAIA,YAAY,IAAI,CAACL,QAAQ,CAACC,IAAT,IAAiB,EAAlB,EAAsBK,MAAtB,IAAgCD,YAApD,EAAkE;AAChE,cAAKZ,QAAL,CAAc;AACZc,UAAAA,MAAM,EAAE;AACNC,YAAAA,IAAI,EAAE,IADA;AAENC,YAAAA,IAAI,EAAE,+BAAwBJ,YAAxB,sBAAuDA,YAAY,GAAG,CAAf,GAAmB,GAAnB,GAAyB,EAAhF,IAAsF;AAFtF;AADI,SAAd;;AAMA;AACD;;AAEDL,MAAAA,QAAQ,CAACC,IAAT,GAAgBD,QAAQ,CAACC,IAAT,CAAcS,MAAd,CAAqB;AACnCC,QAAAA,EAAE,EAAE,MAAKC,YAAL,GAAoB,CADW;AAEnCC,QAAAA,KAAK,0BAAmB,CAACb,QAAQ,CAACC,IAAT,IAAiB,EAAlB,EAAsBK,MAAtB,GAA+B,CAAlD,CAF8B;AAGnCQ,QAAAA,MAAM,EAAE,IAAIC,KAAJ,CAAUnB,KAAK,CAACoB,MAAN,GAAe,CAAzB,EAA4BC,IAA5B,CAAiC,KAAjC;AAH2B,OAArB,CAAhB;AAMA,YAAKL,YAAL,IAAqB,CAArB;;AAEA,YAAKT,QAAL,CAAcH,QAAd;AACD,KAjGkB;AAAA,uGAmGF,UAACkB,SAAD,EAAe;AAC9B,UAAQtB,KAAR,GAAkB,MAAKN,KAAvB,CAAQM,KAAR;AACA,UAAMuB,SAAS,GAAGvB,KAAK,CAACoB,MAAxB;;AACA,UAAMhB,QAAQ,qBAAQJ,KAAR,CAAd;;AAEA,UAAIsB,SAAS,GAAGC,SAAhB,EAA2B;AACzB,aAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGF,SAAS,GAAGC,SAAhC,EAA2CC,CAAC,EAA5C,EAAgD;AAC9CpB,UAAAA,QAAQ,CAACqB,OAAT,CAAiBC,IAAjB,kBAAgCtB,QAAQ,CAACqB,OAAT,CAAiBf,MAAjB,GAA0B,CAA1D;AACD;;AAEDN,QAAAA,QAAQ,CAACC,IAAT,CAAcsB,OAAd,CAAsB,UAACC,GAAD,EAAS;AAC7B,eAAK,IAAIJ,EAAC,GAAG,CAAb,EAAgBA,EAAC,GAAGF,SAAS,GAAGC,SAAhC,EAA2CC,EAAC,EAA5C,EAAgD;AAC9CI,YAAAA,GAAG,CAACV,MAAJ,CAAWQ,IAAX,CAAgB,KAAhB;AACD;AACF,SAJD;AAKD,OAVD,MAUO,IAAIJ,SAAS,GAAGC,SAAhB,EAA2B;AAChCnB,QAAAA,QAAQ,CAACqB,OAAT,CAAiBnB,MAAjB,CAAwBgB,SAAxB;AAEAlB,QAAAA,QAAQ,CAACC,IAAT,CAAcsB,OAAd,CAAsB,UAACC,GAAD,EAAS;AAC7BA,UAAAA,GAAG,CAACV,MAAJ,CAAWZ,MAAX,CAAkBgB,SAAS,GAAG,CAA9B;AACD,SAFD;AAGD;;AAEDlB,MAAAA,QAAQ,CAACgB,MAAT,GAAkBE,SAAlB;;AAEA,YAAKf,QAAL,CAAcH,QAAd;AACD,KA7HkB;AAAA,6GA+HI,UAACyB,aAAD,EAAmB;AACxC,UAAQ7B,KAAR,GAAkB,MAAKN,KAAvB,CAAQM,KAAR;;AACA,UAAMI,QAAQ,qBAAQJ,KAAR,CAAd,CAFwC,CAIxC;;;AACA,UAAI6B,aAAa,KAAK,OAAtB,EAA+B;AAC7BzB,QAAAA,QAAQ,CAACC,IAAT,CAAcsB,OAAd,CAAsB,UAACC,GAAD,EAAS;AAC7B,cAAME,SAAS,GAAGF,GAAG,CAACV,MAAJ,CAAWa,MAAX,CAAkB,UAACC,KAAD,EAAQC,OAAR;AAAA,mBAAqBA,OAAO,KAAK,IAAZ,GAAmBD,KAAK,GAAG,CAA3B,GAA+BA,KAApD;AAAA,WAAlB,CAAlB;;AAEA,cAAIF,SAAS,GAAG,CAAhB,EAAmB;AACjBF,YAAAA,GAAG,CAACV,MAAJ,GAAa,IAAIC,KAAJ,CAAUnB,KAAK,CAACoB,MAAN,GAAe,CAAzB,EAA4BC,IAA5B,CAAiC,KAAjC,CAAb;AACD;AACF,SAND;AAOD;;AAEDjB,MAAAA,QAAQ,CAAC8B,UAAT,GAAsBL,aAAtB;;AAEA,YAAKtB,QAAL,CAAcH,QAAd;AACD,KAjJkB;AAAA,+GAmJM,UAAC+B,cAAD,EAAoB;AAC3C,YAAKzC,KAAL,CAAWM,KAAX,CAAiBmC,cAAjB,GAAkCA,cAAlC;;AAEA,YAAKzC,KAAL,CAAWO,cAAX,CAA0B,MAAKP,KAAL,CAAWM,KAArC;AACD,KAvJkB;AAAA,wGAyJD,UAACoC,MAAD,EAAY;AAC5B,YAAK1C,KAAL,CAAWO,cAAX,iCAA+B,MAAKP,KAAL,CAAWM,KAA1C;AAAiDoC,QAAAA,MAAM,EAANA;AAAjD;AACD,KA3JkB;AAAA,qHA6JY,UAACC,mBAAD,EAAyB;AACtD,YAAK3C,KAAL,CAAWO,cAAX,iCAA+B,MAAKP,KAAL,CAAWM,KAA1C;AAAiDqC,QAAAA,mBAAmB,EAAnBA;AAAjD;AACD,KA/JkB;AAAA,2GAiKE,UAACC,SAAD,EAAe;AAClC,YAAK5C,KAAL,CAAWO,cAAX,iCAA+B,MAAKP,KAAL,CAAWM,KAA1C;AAAiDsC,QAAAA,SAAS,EAATA;AAAjD;AACD,KAnKkB;AAGjB,QAAIC,KAAK,GAAG,CAAZ;;AAEA,QAAI7C,KAAK,CAACM,KAAN,CAAYK,IAAZ,IAAoBX,KAAK,CAACM,KAAN,CAAYK,IAAZ,CAAiBK,MAAjB,GAA0B,CAAlD,EAAqD;AACnD6B,MAAAA,KAAK,GAAGC,IAAI,CAACC,GAAL,OAAAD,IAAI,sCAAQ9C,KAAK,CAACM,KAAN,CAAYK,IAAZ,CAAiBqC,GAAjB,CAAqB,UAACd,GAAD;AAAA,eAASA,GAAG,CAACb,EAAb;AAAA,OAArB,CAAR,EAAZ;AACD;;AAED,UAAKC,YAAL,GAAoBuB,KAAK,GAAG,CAA5B;AAEA,UAAKI,KAAL,GAAa;AACX7C,MAAAA,SAAS,EAAE,CADA;AAEXa,MAAAA,MAAM,EAAE;AACNC,QAAAA,IAAI,EAAE,KADA;AAENC,QAAAA,IAAI,EAAE;AAFA;AAFG,KAAb;AAXiB;AAkBlB;;;;WAED,6BAAoB;AAClB,iCAAoC,KAAK+B,cAAL,CAAoB,KAAKlD,KAAL,CAAWM,KAAX,CAAiBK,IAArC,CAApC;AAAA,UAAQwC,WAAR,wBAAQA,WAAR;AAAA,UAAqBC,UAArB,wBAAqBA,UAArB;;AAEA,UAAIA,UAAJ,EAAgB;AACd,YAAM1C,QAAQ,mCAAQ,KAAKV,KAAL,CAAWM,KAAnB;AAA0BK,UAAAA,IAAI,EAAEwC;AAAhC,UAAd;;AACA,aAAKnD,KAAL,CAAWO,cAAX,CAA0BG,QAA1B;AACD;AACF;;;WAED,wBAAeC,IAAf,EAAqB;AACnB,UAAIyC,UAAU,GAAG,KAAjB;AAEA,UAAMD,WAAW,GAAG,CAACxC,IAAI,IAAI,EAAT,EAAaqC,GAAb,CAAiB,UAACd,GAAD,EAAM7B,KAAN,EAAgB;AACnD,YAAI6B,GAAG,CAACb,EAAJ,KAAWhB,KAAK,GAAG,CAAvB,EAA0B;AACxB+C,UAAAA,UAAU,GAAG,IAAb;AAEA,iDAAYlB,GAAZ;AAAiBb,YAAAA,EAAE,EAAEhB,KAAK,GAAG;AAA7B;AACD;;AAED,eAAO6B,GAAP;AACD,OARmB,CAApB;AAUA,aAAO;AAAEiB,QAAAA,WAAW,EAAXA,WAAF;AAAeC,QAAAA,UAAU,EAAVA;AAAf,OAAP;AACD;;;WA0HD,kBAAS;AAAA;;AACP,yBACE,KAAKpD,KADP;AAAA,UAAQqD,OAAR,gBAAQA,OAAR;AAAA,UAAiB/C,KAAjB,gBAAiBA,KAAjB;AAAA,UAAwBgD,YAAxB,gBAAwBA,YAAxB;AAAA,UAAsC/C,cAAtC,gBAAsCA,cAAtC;AAAA,UAAsDO,aAAtD,gBAAsDA,aAAtD;AAAA,UAAqEyC,sBAArE,gBAAqEA,sBAArE;AAAA,UAA6FC,kBAA7F,gBAA6FA,kBAA7F;;AAEA,kBAmBI1C,aAAa,IAAI,EAnBrB;AAAA,wCACE2C,sBADF;AAAA,UACEA,sBADF,sCAC2B,EAD3B;AAAA,wCAEEC,iBAFF;AAAA,UAEEA,iBAFF,sCAEsB,EAFtB;AAAA,qCAGEC,YAHF;AAAA,UAGEA,YAHF,mCAGiB,EAHjB;AAAA,iCAIEnD,QAJF;AAAA,UAIEA,QAJF,+BAIa,EAJb;AAAA,wCAKEoD,eALF;AAAA,UAKEA,eALF,sCAKoB,EALpB;AAAA,sCAMEC,aANF;AAAA,UAMEA,aANF,oCAMkB,EANlB;AAAA,uCAOEC,cAPF;AAAA,UAOEA,cAPF,qCAOmB,EAPnB;AAAA,uCAQErB,cARF;AAAA,UAQEA,cARF,qCAQmB,EARnB;AAAA,+BASEC,MATF;AAAA,UASEA,MATF,6BASW,EATX;AAAA,kCAUEE,SAVF;AAAA,UAUEA,SAVF,gCAUc,EAVd;AAAA,UAWEmB,qBAXF,SAWEA,qBAXF;AAAA,oCAYEC,WAZF;AAAA,UAYEA,WAZF,kCAYgB,EAZhB;AAAA,mCAaEC,UAbF;AAAA,UAaEA,UAbF,iCAae,EAbf;AAAA,wCAcEC,mBAdF;AAAA,UAcEA,mBAdF,sCAcwB,EAdxB;AAAA,wCAeEvB,mBAfF;AAAA,UAeEA,mBAfF,sCAewB,EAfxB;AAAA,mCAgBEwB,UAhBF;AAAA,UAgBEA,UAhBF,iCAgBe,EAhBf;AAAA,iCAiBEC,QAjBF;AAAA,UAiBEA,QAjBF,+BAiBa,EAjBb;AAAA,wCAkBEC,eAlBF;AAAA,UAkBEA,eAlBF,sCAkBoB,EAlBpB;;AAoBA,kBAQI/D,KAAK,IAAI,EARb;AAAA,UACEgE,MADF,SACEA,MADF;AAAA,UAEEC,eAFF,SAEEA,eAFF;AAAA,UAGEC,aAHF,SAGEA,aAHF;AAAA,UAIEC,gBAJF,SAIEA,gBAJF;AAAA,UAKEC,iBALF,SAKEA,iBALF;AAAA,UAMEC,0BANF,SAMEA,0BANF;AAAA,UAOEC,qBAPF,SAOEA,qBAPF;;AASA,kBAIIN,MAAM,IAAI,EAJd;AAAA,UACUO,WADV,SACEnC,MADF;AAAA,UAEaoC,cAFb,SAEElC,SAFF;AAAA,UAGuBmC,wBAHvB,SAGEpC,mBAHF;;AAKA,UAAQ1B,MAAR,GAAmB,KAAKgC,KAAxB,CAAQhC,MAAR;AAEA,UAAM+D,WAAW,GAAG;AAClBC,QAAAA,QAAQ,EAAEL,qBAAqB,KAAK,KAA1B,GAAkC,KAAlC,GAA0C;AADlC,OAApB;AAIA,UAAMM,oBAAoB,GAAGrB,aAAa,IAAIA,aAAa,CAACnB,MAA5D;AACA,UAAMyC,qBAAqB,GAAGrB,cAAc,IAAIA,cAAc,CAACpB,MAA/D;AAEA,UAAM0C,aAAa,GAAG;AACpBzB,QAAAA,YAAY,EAAEA,YAAY,CAAC/E,QAAb,IAAyBC,MAAM,CAAC8E,YAAY,CAAC0B,KAAd,CADzB;AAEpB5C,QAAAA,cAAc,EAAEA,cAAc,CAAC7D,QAAf,IAA2BC,MAAM,CAAC4D,cAAc,CAAC4C,KAAhB,CAF7B;AAGpBzB,QAAAA,eAAe,EAAEA,eAAe,CAAChF,QAAhB,IAA4BC,MAAM,CAAC+E,eAAe,CAACyB,KAAjB,CAH/B;AAIpBd,QAAAA,eAAe,EAAE/D,QAAQ,CAAC5B,QAAT,IAAqBC,MAAM,CAAC2B,QAAQ,CAAC6E,KAAV,CAJxB;AAKpB,4BAAoBjB,QAAQ,CAACxF,QAAT,IAAqBC,MAAM,CAACuF,QAAQ,CAACiB,KAAV,EAAiB,IAAjB,CAL3B;AAMpBjB,QAAAA,QAAQ,EAAEA,QAAQ,CAACxF,QAAT,IAAqBwF,QAAQ,CAACkB,OAA9B,IAAyCvG,QAAQ,CAACsF,eAAe,CAACgB,KAAjB,EAAwBhB,eAAe,CAACkB,OAAxC;AANvC,OAAtB;AAQA,UAAMC,eAAe,GAAG;AACtBb,QAAAA,0BAA0B,EAAEhC,mBAAmB,CAAC/D,QAApB,IAAgCC,MAAM,CAAC8D,mBAAmB,CAAC0C,KAArB,CAD5C;AAEtBI,QAAAA,0BAA0B,EAAEvB,mBAAmB,CAACtF,QAApB,IAAgCC,MAAM,CAACqF,mBAAmB,CAACmB,KAArB,CAF5C;AAGtBb,QAAAA,aAAa,EAAE9B,MAAM,CAAC9D,QAAP,IAAmBC,MAAM,CAAC6D,MAAM,CAAC2C,KAAR,CAHlB;AAItBZ,QAAAA,gBAAgB,EAAE7B,SAAS,CAAChE,QAAV,IAAsBC,MAAM,CAAC+D,SAAS,CAACyC,KAAX,CAJxB;AAKtBX,QAAAA,iBAAiB,EAAET,UAAU,CAACrF,QAAX,IAAuBC,MAAM,CAACoF,UAAU,CAACoB,KAAZ,CAL1B;AAMtBrB,QAAAA,WAAW,EAAEA,WAAW,CAACpF,QAAZ,IAAwBE,KAAK,CAACkF,WAAW,CAACqB,KAAb,EAAoB,CAAC,MAAD,EAAS,QAAT,CAApB,CANpB;AAOtBK,QAAAA,aAAa,EAAE,CAAAvB,UAAU,SAAV,IAAAA,UAAU,WAAV,YAAAA,UAAU,CAAEvF,QAAZ,KAAwBC,MAAM,CAACsF,UAAD,aAACA,UAAD,uBAACA,UAAU,CAAEkB,KAAb;AAPvB,OAAxB;AAUA3G,MAAAA,GAAG,CAAC,gBAAD,EAAmB4B,KAAnB,CAAH;AAEA,0BACE,gCAAC,gBAAD,CAAQ,YAAR;AACE,QAAA,UAAU,EAAEoD,iBADd;AAEE,QAAA,YAAY,EAAEK,qBAFhB;AAGE,QAAA,QAAQ,eACN,gCAAC,KAAD;AACE,UAAA,KAAK,EAAEzD,KADT;AAEE,UAAA,aAAa,EAAEQ,aAFjB;AAGE,UAAA,aAAa,EAAE,uBAACR,KAAD;AAAA,mBAAWC,cAAc,CAACD,KAAD,CAAzB;AAAA,WAHjB;AAIE,UAAA,qBAAqB,EAAE,+BAACqF,MAAD;AAAA,mBAAYpC,sBAAsB,CAACoC,MAAD,CAAlC;AAAA,WAJzB;AAKE,UAAA,MAAM,EAAE;AACNC,YAAAA,QAAQ,EAAER,aADJ;AAENS,YAAAA,UAAU,EAAEL;AAFN;AALV;AAJJ,SAgBGb,0BAA0B,iBACzB,gCAAC,wBAAD;AAAgB,QAAA,KAAK,EAAEhC,mBAAmB,CAAC0C,KAA3C;AAAkD,QAAA,SAAS,EAAEhC,OAAO,CAACnE;AAArE,sBACE,gCAAC,0BAAD;AACE,QAAA,SAAS,EAAEmE,OAAO,CAACX,MADrB;AAEE,QAAA,MAAM,EAAEpC,KAAK,CAACqC,mBAAN,IAA6B,EAFvC;AAGE,QAAA,QAAQ,EAAE,KAAKmD,4BAHjB;AAIE,QAAA,YAAY,EAAExC,YAJhB;AAKE,QAAA,KAAK,EAAEyB,wBALT;AAME,QAAA,QAAQ,EAAE,KANZ;AAOE,QAAA,WAAW,EAAEC,WAPf;AAQE,QAAA,WAAW,EAAE,2BAAerC,mBAAf,aAAeA,mBAAf,uBAAeA,mBAAmB,CAAEoD,kBAApC,EAAwDtC,sBAAxD,CARf;AASE,QAAA,UAAU,EAAEiB,iBATd;AAUE,QAAA,aAAa,EAAGb,aAAa,IAAIA,aAAa,CAAClB,mBAAhC,IAAwDuC,oBAVzE;AAWE,QAAA,cAAc,EAAGpB,cAAc,IAAIA,cAAc,CAACnB,mBAAlC,IAA0DwC,qBAX5E;AAYE,QAAA,kBAAkB,EAAE3B,kBAZtB;AAaE,QAAA,uBAAuB,EAAE,CAAC;AAAEY,UAAAA,QAAQ,EAAE;AAAZ,SAAD,EAA0B;AAAEA,UAAAA,QAAQ,EAAE;AAAZ,SAA1B;AAb3B,QADF,EAgBGW,wBAAwB,iBAAI;AAAK,QAAA,SAAS,EAAE1B,OAAO,CAAC7D;AAAxB,SAAoCuF,wBAApC,CAhB/B,CAjBJ,EAqCGP,aAAa,iBACZ,gCAAC,wBAAD;AAAgB,QAAA,KAAK,EAAE9B,MAAM,CAAC2C,KAA9B;AAAqC,QAAA,SAAS,EAAEhC,OAAO,CAACnE;AAAxD,sBACE,gCAAC,0BAAD;AACE,QAAA,SAAS,EAAEmE,OAAO,CAACX,MADrB;AAEE,QAAA,MAAM,EAAEpC,KAAK,CAACoC,MAFhB;AAGE,QAAA,QAAQ,EAAE,KAAKsD,eAHjB;AAIE,QAAA,YAAY,EAAE1C,YAJhB;AAKE,QAAA,KAAK,EAAEuB,WALT;AAME,QAAA,QAAQ,EAAE,KANZ;AAOE,QAAA,gBAAgB,MAPlB;AAQE,QAAA,WAAW,EAAEG,WARf;AASE,QAAA,WAAW,EAAE,2BAAetC,MAAf,aAAeA,MAAf,uBAAeA,MAAM,CAAEqD,kBAAvB,EAA2CtC,sBAA3C,CATf;AAUE,QAAA,UAAU,EAAEiB,iBAVd;AAWE,QAAA,aAAa,EAAEb,aAAa,IAAIA,aAAa,CAACnB,MAXhD;AAYE,QAAA,cAAc,EAAEoB,cAAc,IAAIA,cAAc,CAACpB,MAZnD;AAaE,QAAA,kBAAkB,EAAEc,kBAbtB;AAcE,QAAA,uBAAuB,EAAE,CAAC;AAAEY,UAAAA,QAAQ,EAAE;AAAZ,SAAD,EAA0B;AAAEA,UAAAA,QAAQ,EAAE;AAAZ,SAA1B;AAd3B,QADF,EAiBGS,WAAW,iBAAI;AAAK,QAAA,SAAS,EAAExB,OAAO,CAAC7D;AAAxB,SAAoCqF,WAApC,CAjBlB,CAtCJ,eA2DE,gCAAC,8BAAD;AACE,QAAA,KAAK,EAAEvE,KADT;AAEE,QAAA,aAAa,EAAEQ,aAFjB;AAGE,QAAA,oBAAoB,EAAE,KAAKmF,oBAH7B;AAIE,QAAA,cAAc,EAAE,KAAKC;AAJvB,QA3DF,eAkEE,gCAAC,6BAAD;AACE,QAAA,KAAK,EAAE5F,KADT;AAEE,QAAA,aAAa,EAAEQ,aAFjB;AAGE,QAAA,YAAY,EAAEwC,YAHhB;AAIE,QAAA,QAAQ,EAAE,KAAKzC,QAJjB;AAKE,QAAA,QAAQ,EAAE,KAAKsF,QALjB;AAME,QAAA,WAAW,EAAE,KAAKC,WANpB;AAOE,QAAA,WAAW,EAAEpB,WAPf;AAQE,QAAA,UAAU,EAAEN,iBARd;AASE,QAAA,kBAAkB,EAAElB;AATtB,QAlEF,EA8EGiB,gBAAgB,iBACf,gCAAC,wBAAD;AAAgB,QAAA,KAAK,EAAE7B,SAAS,CAACyC,KAAjC;AAAwC,QAAA,SAAS,EAAEhC,OAAO,CAACnE;AAA3D,sBACE,gCAAC,0BAAD;AACE,QAAA,SAAS,EAAEmE,OAAO,CAACX,MADrB;AAEE,QAAA,MAAM,EAAEpC,KAAK,CAACsC,SAAN,IAAmB,EAF7B;AAGE,QAAA,QAAQ,EAAE,KAAKyD,kBAHjB;AAIE,QAAA,YAAY,EAAE/C,YAJhB;AAKE,QAAA,KAAK,EAAEwB,cALT;AAME,QAAA,WAAW,EAAEE,WANf;AAOE,QAAA,WAAW,EAAE,2BAAepC,SAAf,aAAeA,SAAf,uBAAeA,SAAS,CAAEmD,kBAA1B,EAA8CtC,sBAA9C,CAPf;AAQE,QAAA,UAAU,EAAEiB,iBARd;AASE,QAAA,aAAa,EAAGb,aAAa,IAAIA,aAAa,CAACjB,SAAhC,IAA8CsC,oBAT/D;AAUE,QAAA,cAAc,EAAGpB,cAAc,IAAIA,cAAc,CAAClB,SAAlC,IAAgDuC,qBAVlE;AAWE,QAAA,kBAAkB,EAAE3B,kBAXtB;AAYE,QAAA,uBAAuB,EAAE,CAAC;AAAEY,UAAAA,QAAQ,EAAE;AAAZ,SAAD,EAA0B;AAAEA,UAAAA,QAAQ,EAAE;AAAZ,SAA1B;AAZ3B,QADF,EAeGU,cAAc,iBAAI;AAAK,QAAA,SAAS,EAAEzB,OAAO,CAAC7D;AAAxB,SAAoCsF,cAApC,CAfrB,CA/EJ,EAkGGP,eAAe,iBACd,gCAAC,wBAAD;AAAgB,QAAA,QAAQ,EAAEjE,KAAK,CAACE,QAAhC;AAA0C,QAAA,QAAQ,EAAE,KAAK8F,gBAAzD;AAA2E,QAAA,WAAW,EAAEtB;AAAxF,QAnGJ,eAqGE,gCAAC,qBAAD;AACE,QAAA,IAAI,EAAE/D,MAAM,CAACC,IADf;AAEE,QAAA,KAAK,EAAC,SAFR;AAGE,QAAA,IAAI,EAAED,MAAM,CAACE,IAHf;AAIE,QAAA,SAAS,EAAE;AAAA,iBAAM,MAAI,CAAChB,QAAL,CAAc;AAAEc,YAAAA,MAAM,EAAE;AAAEC,cAAAA,IAAI,EAAE;AAAR;AAAV,WAAd,CAAN;AAAA;AAJb,QArGF,CADF;AA8GD;;;EA1WqBqF,kBAAMC,S;;iCAAxBzG,S,eACe;AACjBQ,EAAAA,cAAc,EAAEkG,sBAAUC,IADT;AAEjBnD,EAAAA,sBAAsB,EAAEkD,sBAAUC,IAFjB;AAGjBrD,EAAAA,OAAO,EAAEoD,sBAAUE,MAHF;AAIjBrG,EAAAA,KAAK,EAAEmG,sBAAUE,MAAV,CAAiBC,UAJP;AAKjB9F,EAAAA,aAAa,EAAE2F,sBAAUE,MAAV,CAAiBC,UALf;AAMjBtD,EAAAA,YAAY,EAAEmD,sBAAUI,KAAV,CAAgB;AAC5BC,IAAAA,GAAG,EAAEL,sBAAUC,IAAV,CAAeE,UADQ;AAE5B,cAAQH,sBAAUC,IAAV,CAAeE;AAFK,GAAhB,CANG;AAUjBpD,EAAAA,kBAAkB,EAAEiD,sBAAUI,KAAV,CAAgB;AAClCC,IAAAA,GAAG,EAAEL,sBAAUC,IAAV,CAAeE,UADc;AAElC,cAAQH,sBAAUC,IAAV,CAAeE;AAFW,GAAhB;AAVH,C;iCADf7G,S,kBAiBkB;AACpBsD,EAAAA,OAAO,EAAE;AADW,C;AA4VjB,IAAM0D,MAAM,GAAGhH,SAAf;;;eAEQ,2BAAgB,wBAAWf,MAAX,EAAmBe,SAAnB,CAAhB,C","sourcesContent":["import { getPluginProps } from './utils';\nimport React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport { FeedbackConfig, settings, layout, InputContainer, AlertDialog } from '@pie-lib/pie-toolbox/config-ui';\nimport { EditableHtml } from '@pie-lib/pie-toolbox/editable-html';\nimport { withDragContext } from '@pie-lib/pie-toolbox/drag';\nimport PropTypes from 'prop-types';\nimport debug from 'debug';\nimport GeneralConfigBlock from './general-config-block';\nimport AnswerConfigBlock from './answer-config-block';\n\nconst log = debug('@pie-element:match:configure');\nconst { Panel, toggle, radio, dropdown } = settings;\n\nconst styles = (theme) => ({\n promptHolder: {\n width: '100%',\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing.unit,\n },\n});\n\nclass Configure extends React.Component {\n static propTypes = {\n onModelChanged: PropTypes.func,\n onConfigurationChanged: PropTypes.func,\n classes: PropTypes.object,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n };\n\n static defaultProps = {\n classes: {},\n };\n\n constructor(props) {\n super(props);\n\n let maxId = 0;\n\n if (props.model.rows && props.model.rows.length > 0) {\n maxId = Math.max(...props.model.rows.map((row) => row.id));\n }\n\n this.rowIdCounter = maxId + 1;\n\n this.state = {\n activeTab: 0,\n dialog: {\n open: false,\n text: '',\n },\n };\n }\n\n componentDidMount() {\n const { updatedRows, wasChanged } = this.validateRowsID(this.props.model.rows);\n\n if (wasChanged) {\n const newModel = { ...this.props.model, rows: updatedRows };\n this.props.onModelChanged(newModel);\n }\n }\n\n validateRowsID(rows) {\n let wasChanged = false;\n\n const updatedRows = (rows || []).map((row, index) => {\n if (row.id !== index + 1) {\n wasChanged = true;\n\n return { ...row, id: index + 1 };\n }\n\n return row;\n });\n\n return { updatedRows, wasChanged };\n }\n\n onTabChange = (event, value) => {\n this.setState({ activeTab: value });\n };\n\n onChangeTabIndex = (index) => {\n this.setState({ activeTab: index });\n };\n\n onChange = (model) => {\n this.props.onModelChanged(model);\n };\n\n onFeedbackChange = (feedback) => {\n const { model, onModelChanged } = this.props;\n model.feedback = feedback;\n\n onModelChanged(model);\n };\n\n onDeleteRow = (rowIndex) => {\n const { model } = this.props;\n const newModel = { ...model };\n\n newModel.rows.splice(rowIndex, 1);\n\n this.onChange(newModel);\n };\n\n onAddRow = () => {\n const { model, configuration } = this.props;\n const newModel = { ...model };\n const { maxQuestions } = configuration || {};\n\n if (maxQuestions && (newModel.rows || []).length >= maxQuestions) {\n this.setState({\n dialog: {\n open: true,\n text: `There can be maximum ${maxQuestions} question row` + (maxQuestions > 1 ? 's' : '') + '.',\n },\n });\n return;\n }\n\n newModel.rows = newModel.rows.concat({\n id: this.rowIdCounter + 1,\n title: `Question Text ${(newModel.rows || []).length + 1}`,\n values: new Array(model.layout - 1).fill(false),\n });\n\n this.rowIdCounter += 1;\n\n this.onChange(newModel);\n };\n\n onLayoutChange = (newLayout) => {\n const { model } = this.props;\n const oldLayout = model.layout;\n const newModel = { ...model };\n\n if (newLayout > oldLayout) {\n for (let i = 0; i < newLayout - oldLayout; i++) {\n newModel.headers.push(`Column ${newModel.headers.length + 1}`);\n }\n\n newModel.rows.forEach((row) => {\n for (let i = 0; i < newLayout - oldLayout; i++) {\n row.values.push(false);\n }\n });\n } else if (newLayout < oldLayout) {\n newModel.headers.splice(newLayout);\n\n newModel.rows.forEach((row) => {\n row.values.splice(newLayout - 1);\n });\n }\n\n newModel.layout = newLayout;\n\n this.onChange(newModel);\n };\n\n onResponseTypeChange = (newChoiceMode) => {\n const { model } = this.props;\n const newModel = { ...model };\n\n // if we're switching to radio and we have more than one true, reset\n if (newChoiceMode === 'radio') {\n newModel.rows.forEach((row) => {\n const trueCount = row.values.reduce((total, current) => (current === true ? total + 1 : total));\n\n if (trueCount > 1) {\n row.values = new Array(model.layout - 1).fill(false);\n }\n });\n }\n\n newModel.choiceMode = newChoiceMode;\n\n this.onChange(newModel);\n };\n\n onPartialScoringChange = (partialScoring) => {\n this.props.model.partialScoring = partialScoring;\n\n this.props.onModelChanged(this.props.model);\n };\n\n onPromptChanged = (prompt) => {\n this.props.onModelChanged({ ...this.props.model, prompt });\n };\n\n onTeacherInstructionsChanged = (teacherInstructions) => {\n this.props.onModelChanged({ ...this.props.model, teacherInstructions });\n };\n\n onRationaleChanged = (rationale) => {\n this.props.onModelChanged({ ...this.props.model, rationale });\n };\n\n render() {\n const { classes, model, imageSupport, onModelChanged, configuration, onConfigurationChanged, uploadSoundSupport } =\n this.props;\n const {\n baseInputConfiguration = {},\n contentDimensions = {},\n enableImages = {},\n feedback = {},\n lockChoiceOrder = {},\n maxImageWidth = {},\n maxImageHeight = {},\n partialScoring = {},\n prompt = {},\n rationale = {},\n settingsPanelDisabled,\n scoringType = {},\n spellCheck = {},\n studentInstructions = {},\n teacherInstructions = {},\n withRubric = {},\n language = {},\n languageChoices = {},\n } = configuration || {};\n const {\n errors,\n feedbackEnabled,\n promptEnabled,\n rationaleEnabled,\n spellCheckEnabled,\n teacherInstructionsEnabled,\n toolbarEditorPosition,\n } = model || {};\n const {\n prompt: promptError,\n rationale: rationaleError,\n teacherInstructions: teacherInstructionsError,\n } = errors || {};\n const { dialog } = this.state;\n\n const toolbarOpts = {\n position: toolbarEditorPosition === 'top' ? 'top' : 'bottom',\n };\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n const panelSettings = {\n enableImages: enableImages.settings && toggle(enableImages.label),\n partialScoring: partialScoring.settings && toggle(partialScoring.label),\n lockChoiceOrder: lockChoiceOrder.settings && toggle(lockChoiceOrder.label),\n feedbackEnabled: feedback.settings && toggle(feedback.label),\n 'language.enabled': language.settings && toggle(language.label, true),\n language: language.settings && language.enabled && dropdown(languageChoices.label, languageChoices.options),\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 log('[render] model', model);\n\n return (\n <layout.ConfigLayout\n dimensions={contentDimensions}\n hideSettings={settingsPanelDisabled}\n settings={\n <Panel\n model={model}\n configuration={configuration}\n onChangeModel={(model) => onModelChanged(model)}\n onChangeConfiguration={(config) => onConfigurationChanged(config)}\n groups={{\n Settings: panelSettings,\n Properties: panelProperties,\n }}\n />\n }\n >\n {teacherInstructionsEnabled && (\n <InputContainer label={teacherInstructions.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.teacherInstructions || ''}\n onChange={this.onTeacherInstructionsChanged}\n imageSupport={imageSupport}\n error={teacherInstructionsError}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(teacherInstructions?.inputConfiguration, baseInputConfiguration)}\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 />\n {teacherInstructionsError && <div className={classes.errorText}>{teacherInstructionsError}</div>}\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer label={prompt.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.prompt}\n onChange={this.onPromptChanged}\n imageSupport={imageSupport}\n error={promptError}\n nonEmpty={false}\n disableUnderline\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(prompt?.inputConfiguration, baseInputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={maxImageWidth && maxImageWidth.prompt}\n maxImageHeight={maxImageHeight && maxImageHeight.prompt}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n {promptError && <div className={classes.errorText}>{promptError}</div>}\n </InputContainer>\n )}\n\n <GeneralConfigBlock\n model={model}\n configuration={configuration}\n onResponseTypeChange={this.onResponseTypeChange}\n onLayoutChange={this.onLayoutChange}\n />\n\n <AnswerConfigBlock\n model={model}\n configuration={configuration}\n imageSupport={imageSupport}\n onChange={this.onChange}\n onAddRow={this.onAddRow}\n onDeleteRow={this.onDeleteRow}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n uploadSoundSupport={uploadSoundSupport}\n />\n\n {rationaleEnabled && (\n <InputContainer label={rationale.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.rationale || ''}\n onChange={this.onRationaleChanged}\n imageSupport={imageSupport}\n error={rationaleError}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(rationale?.inputConfiguration, baseInputConfiguration)}\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 />\n {rationaleError && <div className={classes.errorText}>{rationaleError}</div>}\n </InputContainer>\n )}\n\n {feedbackEnabled && (\n <FeedbackConfig feedback={model.feedback} onChange={this.onFeedbackChange} toolbarOpts={toolbarOpts} />\n )}\n <AlertDialog\n open={dialog.open}\n title=\"Warning\"\n text={dialog.text}\n onConfirm={() => this.setState({ dialog: { open: false } })}\n />\n </layout.ConfigLayout>\n );\n }\n}\n\nexport const Config = Configure;\n\nexport default withDragContext(withStyles(styles)(Configure));\n"],"file":"configure.js"}
@@ -108,7 +108,8 @@ var _default = {
108
108
  image: {
109
109
  disabled: false
110
110
  }
111
- }
111
+ },
112
+ required: false
112
113
  },
113
114
  rationale: {
114
115
  settings: true,
@@ -123,7 +124,8 @@ var _default = {
123
124
  image: {
124
125
  disabled: false
125
126
  }
126
- }
127
+ },
128
+ required: false
127
129
  },
128
130
  settingsPanelDisabled: false,
129
131
  spellCheck: {
@@ -152,7 +154,8 @@ var _default = {
152
154
  image: {
153
155
  disabled: false
154
156
  }
155
- }
157
+ },
158
+ required: false
156
159
  },
157
160
  maxImageWidth: {
158
161
  teacherInstructions: 300,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/defaults.js"],"names":["model","enableImages","headers","layout","lockChoiceOrder","partialScoring","choiceMode","prompt","toolbarEditorPosition","rows","id","title","values","scoringType","feedbackEnabled","promptEnabled","rationaleEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","configuration","baseInputConfiguration","audio","disabled","video","image","inputConfiguration","settings","label","feedback","enabled","rationale","settingsPanelDisabled","spellCheck","studentInstructions","teacherInstructions","maxImageWidth","rowTitles","maxImageHeight","withRubric","minQuestions","maxQuestions","maxLengthQuestionsHeading","maxAnswers","maxLengthAnswers","maxLengthFirstColumnHeading","mathMlOptions","mmlOutput","mmlEditing","language","languageChoices","options"],"mappings":"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","sourcesContent":["/** NOTE: teacherInstructions, studentInstructions, rationale & scoringType\n * functionalities are not defined yet - the value for those can belong to\n * model or to configuration\n */\n\nexport default {\n model: {\n enableImages: true,\n headers: ['Column 1', 'Column 2', 'Column 3'],\n layout: 3,\n lockChoiceOrder: true,\n partialScoring: false,\n choiceMode: 'radio',\n prompt: 'Prompt goes here',\n toolbarEditorPosition: 'bottom',\n rows: [\n {\n id: 1,\n title: 'Question Text 1',\n values: [false, false],\n },\n ],\n scoringType: 'auto',\n feedbackEnabled: false,\n promptEnabled: true,\n rationaleEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n },\n configuration: {\n baseInputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n rows: {\n inputConfiguration: {\n audio: { disabled: true },\n video: { disabled: true },\n image: { disabled: false },\n },\n },\n enableImages: {\n settings: true,\n label: 'Enable Images',\n },\n feedback: {\n settings: true,\n label: 'Feedback',\n enabled: true,\n },\n headers: {\n settings: true,\n inputConfiguration: {\n audio: { disabled: true },\n video: { disabled: true },\n image: { disabled: false },\n },\n },\n layout: {\n settings: true,\n label: 'Layout',\n },\n lockChoiceOrder: {\n settings: false,\n label: 'Lock Choice Order',\n },\n partialScoring: {\n settings: false,\n label: 'Allow Partial Scoring',\n },\n choiceMode: {\n settings: true,\n label: 'Response Type',\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 },\n rationale: {\n settings: true,\n label: 'Rationale',\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n },\n settingsPanelDisabled: false,\n spellCheck: {\n label: 'Spellcheck',\n settings: false,\n enabled: true,\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 },\n maxImageWidth: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n rowTitles: 300,\n },\n maxImageHeight: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n rowTitles: 150,\n },\n withRubric: {\n settings: false,\n label: 'Add Rubric',\n },\n minQuestions: 2,\n maxQuestions: 5,\n maxLengthQuestionsHeading: 100,\n maxAnswers: 5,\n maxLengthAnswers: 100,\n maxLengthFirstColumnHeading: 100,\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"],"file":"defaults.js"}
1
+ {"version":3,"sources":["../src/defaults.js"],"names":["model","enableImages","headers","layout","lockChoiceOrder","partialScoring","choiceMode","prompt","toolbarEditorPosition","rows","id","title","values","scoringType","feedbackEnabled","promptEnabled","rationaleEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","configuration","baseInputConfiguration","audio","disabled","video","image","inputConfiguration","settings","label","feedback","enabled","required","rationale","settingsPanelDisabled","spellCheck","studentInstructions","teacherInstructions","maxImageWidth","rowTitles","maxImageHeight","withRubric","minQuestions","maxQuestions","maxLengthQuestionsHeading","maxAnswers","maxLengthAnswers","maxLengthFirstColumnHeading","mathMlOptions","mmlOutput","mmlEditing","language","languageChoices","options"],"mappings":"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","sourcesContent":["/** NOTE: teacherInstructions, studentInstructions, rationale & scoringType\n * functionalities are not defined yet - the value for those can belong to\n * model or to configuration\n */\n\nexport default {\n model: {\n enableImages: true,\n headers: ['Column 1', 'Column 2', 'Column 3'],\n layout: 3,\n lockChoiceOrder: true,\n partialScoring: false,\n choiceMode: 'radio',\n prompt: 'Prompt goes here',\n toolbarEditorPosition: 'bottom',\n rows: [\n {\n id: 1,\n title: 'Question Text 1',\n values: [false, false],\n },\n ],\n scoringType: 'auto',\n feedbackEnabled: false,\n promptEnabled: true,\n rationaleEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n },\n configuration: {\n baseInputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n rows: {\n inputConfiguration: {\n audio: { disabled: true },\n video: { disabled: true },\n image: { disabled: false },\n },\n },\n enableImages: {\n settings: true,\n label: 'Enable Images',\n },\n feedback: {\n settings: true,\n label: 'Feedback',\n enabled: true,\n },\n headers: {\n settings: true,\n inputConfiguration: {\n audio: { disabled: true },\n video: { disabled: true },\n image: { disabled: false },\n },\n },\n layout: {\n settings: true,\n label: 'Layout',\n },\n lockChoiceOrder: {\n settings: false,\n label: 'Lock Choice Order',\n },\n partialScoring: {\n settings: false,\n label: 'Allow Partial Scoring',\n },\n choiceMode: {\n settings: true,\n label: 'Response Type',\n },\n prompt: {\n settings: true,\n label: 'Prompt',\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n required: false,\n },\n rationale: {\n settings: true,\n label: 'Rationale',\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n required: false,\n },\n settingsPanelDisabled: false,\n spellCheck: {\n label: 'Spellcheck',\n settings: false,\n enabled: true,\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 maxImageWidth: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n rowTitles: 300,\n },\n maxImageHeight: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n rowTitles: 150,\n },\n withRubric: {\n settings: false,\n label: 'Add Rubric',\n },\n minQuestions: 2,\n maxQuestions: 5,\n maxLengthQuestionsHeading: 100,\n maxAnswers: 5,\n maxLengthAnswers: 100,\n maxLengthFirstColumnHeading: 100,\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"],"file":"defaults.js"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pie-element/match-configure",
3
3
  "private": true,
4
- "version": "6.5.1",
4
+ "version": "6.5.2",
5
5
  "description": "",
6
6
  "main": "lib/index.js",
7
7
  "module": "src/index.js",
@@ -3,6 +3,17 @@
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
+ ## [6.0.2](https://github.com/pie-framework/pie-elements/compare/@pie-element/match-controller@6.0.1...@pie-element/match-controller@6.0.2) (2024-03-12)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * update pie-lib/pie-toolbox PD-3509, PD-3465 ([b1745aa](https://github.com/pie-framework/pie-elements/commit/b1745aa981722b5561aab1f4495ac81ac7bc4155))
12
+
13
+
14
+
15
+
16
+
6
17
  ## [6.0.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/match-controller@6.0.0...@pie-element/match-controller@6.0.1) (2024-03-07)
7
18
 
8
19
 
@@ -337,8 +337,8 @@ var createCorrectResponseSession = function createCorrectResponseSession(questio
337
337
 
338
338
  exports.createCorrectResponseSession = createCorrectResponseSession;
339
339
 
340
- var markupToText = function markupToText(s) {
341
- return (s || '').replace(/(<([^>]+)>)/gi, '');
340
+ var getInnerText = function getInnerText(html) {
341
+ return (html || '').replaceAll(/<[^>]*>/g, '');
342
342
  };
343
343
 
344
344
  var validate = function validate() {
@@ -356,6 +356,13 @@ var validate = function validate() {
356
356
  var rowsErrors = {};
357
357
  var columnsErrors = {};
358
358
  var errors = {};
359
+ ['teacherInstructions', 'prompt', 'rationale'].forEach(function (field) {
360
+ var _config$field;
361
+
362
+ if ((_config$field = config[field]) !== null && _config$field !== void 0 && _config$field.required && !getInnerText(model[field])) {
363
+ errors[field] = 'This field is required';
364
+ }
365
+ });
359
366
 
360
367
  if (rows.length < minQuestions) {
361
368
  errors.noOfRowsError = "There should be at least ".concat(minQuestions, " question rows.");
@@ -371,13 +378,13 @@ var validate = function validate() {
371
378
  var hasCorrectResponse = false;
372
379
  rowsErrors[id] = '';
373
380
 
374
- if (maxLengthQuestionsHeading && markupToText(title).length > maxLengthQuestionsHeading) {
381
+ if (maxLengthQuestionsHeading && getInnerText(title).length > maxLengthQuestionsHeading) {
375
382
  rowsErrors[id] += "Questions rows content length should not be more than ".concat(maxLengthQuestionsHeading, " characters. ");
376
- } else if (title === '' || title === '<div></div>') {
383
+ } else if (!getInnerText(title)) {
377
384
  rowsErrors[id] += 'Content should not be empty. ';
378
385
  } else {
379
386
  var identicalAnswer = rows.slice(index + 1).some(function (r) {
380
- return markupToText(r.title) === markupToText(title);
387
+ return getInnerText(r.title) === getInnerText(title);
381
388
  });
382
389
 
383
390
  if (identicalAnswer) {
@@ -406,11 +413,11 @@ var validate = function validate() {
406
413
 
407
414
 
408
415
  var validateHeaders = ((0, _cloneDeep["default"])(headers) || []).map(function (heading) {
409
- return markupToText(heading);
416
+ return getInnerText(heading);
410
417
  });
411
418
  validateHeaders.shift();
412
419
  (validateHeaders || []).forEach(function (heading, index) {
413
- if (heading === '' || heading === '<div></div>') {
420
+ if (!getInnerText(heading)) {
414
421
  columnsErrors[index + 1] = 'Content should not be empty.';
415
422
  } else if (maxLengthAnswers && heading.length > maxLengthAnswers) {
416
423
  columnsErrors[index + 1] = "Content length should be maximum ".concat(maxLengthAnswers, " characters.");
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["log","getResponseCorrectness","model","answers","env","isPartialScoring","partialScoring","enabled","rows","checkboxMode","choiceMode","Object","keys","length","totalCorrectAnswers","getTotalCorrectAnswers","getTotalCorrect","correctAnswers","incorrectAnswers","checkboxes","getCheckboxes","getCorrectRadios","getCorrectness","question","mode","forEach","row","answer","id","values","v","i","matchingTable","layout","noOfTotalCorrectAnswers","value","getPartialScore","totalCorrect","total","extraAnswers","score","parseFloat","toFixed","getOutComeScore","correctness","outcome","session","Promise","resolve","undefined","completed","empty","out","createDefaultModel","defaults","normalize","feedbackEnabled","promptEnabled","rationaleEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","updateSession","normalizedQuestion","correctResponse","correctInfo","lockChoiceOrder","fb","feedback","then","prompt","essentials","allowFeedback","shuffled","disabled","view","role","teacherInstructions","rationale","assign","createCorrectResponseSession","r","markupToText","s","replace","validate","config","headers","minQuestions","maxQuestions","maxLengthQuestionsHeading","maxAnswers","maxLengthAnswers","maxLengthFirstColumnHeading","rowsErrors","columnsErrors","errors","noOfRowsError","index","title","hasCorrectResponse","identicalAnswer","slice","some","columnsLengthError","validateHeaders","map","heading","shift","h","indexOf","hasRowErrors","entries","rowError","noCorrectAnswer","includes","correctResponseError"],"mappings":"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","sourcesContent":["import isEqual from 'lodash/isEqual';\nimport isEmpty from 'lodash/isEmpty';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { getFeedbackForCorrectness } from '@pie-lib/pie-toolbox/feedback';\nimport { lockChoices, getShuffledChoices, partialScoring } from '@pie-lib/pie-toolbox/controller-utils';\nimport debug from 'debug';\n\nconst log = debug('@pie-element:match:controller');\n\nimport defaults from './defaults';\n\nconst getResponseCorrectness = (model, answers, env = {}) => {\n const isPartialScoring = partialScoring.enabled(model, env);\n const rows = model.rows;\n const checkboxMode = model.choiceMode === 'checkbox';\n\n if (!answers || Object.keys(answers).length === 0) {\n return 'unanswered';\n }\n\n const totalCorrectAnswers = checkboxMode ? getTotalCorrectAnswers(model) : getTotalCorrect(model);\n let correctAnswers;\n let incorrectAnswers = 0;\n\n if (checkboxMode) {\n const checkboxes = getCheckboxes(rows, answers);\n\n correctAnswers = checkboxes.correctAnswers;\n incorrectAnswers = checkboxes.incorrectAnswers;\n } else {\n correctAnswers = getCorrectRadios(rows, answers);\n }\n\n if (totalCorrectAnswers === correctAnswers && !incorrectAnswers) {\n return 'correct';\n } else if (correctAnswers === 0) {\n return 'incorrect';\n } else if (isPartialScoring) {\n return 'partial';\n }\n\n return 'incorrect';\n};\n\nconst getCorrectness = (question, env, answers = {}) => {\n if (env.mode === 'evaluate') {\n return getResponseCorrectness(question, answers, env);\n }\n};\n\nconst getCheckboxes = (rows, answers) => {\n let correctAnswers = 0;\n let incorrectAnswers = 0;\n\n rows.forEach((row) => {\n const answer = answers[row.id];\n\n if (answer) {\n row.values.forEach((v, i) => {\n if (answer[i] && answer[i] === v) {\n correctAnswers += 1;\n } else if (answer[i] && answer[i] !== v) {\n incorrectAnswers += 1;\n }\n });\n }\n });\n\n return { correctAnswers, incorrectAnswers };\n};\n\nconst getCorrectRadios = (rows, answers) => {\n let correctAnswers = 0;\n\n rows.forEach((row) => {\n if (isEqual(row.values, answers[row.id])) {\n correctAnswers += 1;\n }\n });\n\n return correctAnswers;\n};\n\nconst getTotalCorrect = (question) => {\n const checkboxMode = question.choiceMode === 'checkbox';\n const matchingTable = checkboxMode ? question.layout - 1 : 1;\n return (question.rows.length || 0) * matchingTable;\n};\n\nconst getTotalCorrectAnswers = (question) => {\n let noOfTotalCorrectAnswers = 0;\n\n question.rows.forEach((row) => {\n row.values.forEach((value) => {\n if (value) {\n noOfTotalCorrectAnswers += 1;\n }\n });\n });\n\n return noOfTotalCorrectAnswers;\n};\n\nconst getPartialScore = (question, answers) => {\n const checkboxMode = question.choiceMode === 'checkbox';\n\n if (checkboxMode) {\n const { correctAnswers, incorrectAnswers } = getCheckboxes(question.rows, answers);\n const totalCorrect = getTotalCorrectAnswers(question);\n\n const total = totalCorrect === 0 ? 1 : totalCorrect;\n\n if (correctAnswers + incorrectAnswers > totalCorrect) {\n const extraAnswers = correctAnswers + incorrectAnswers - totalCorrect;\n const score = parseFloat(((correctAnswers - extraAnswers) / total).toFixed(2));\n\n return score < 0 ? 0 : score;\n } else {\n return parseFloat((correctAnswers / total).toFixed(2));\n }\n } else {\n const correctAnswers = getCorrectRadios(question.rows, answers);\n const totalCorrect = getTotalCorrect(question) === 0 ? 1 : getTotalCorrect(question);\n\n return parseFloat((correctAnswers / totalCorrect).toFixed(2));\n }\n};\n\nconst getOutComeScore = (question, env, answers = {}) => {\n const correctness = getCorrectness(question, env, answers);\n const isPartialScoring = partialScoring.enabled(question, env);\n\n return correctness === 'correct'\n ? 1\n : correctness === 'partial' && isPartialScoring\n ? getPartialScore(question, answers)\n : 0;\n};\n\nexport const outcome = (question, session, env) => {\n return new Promise((resolve) => {\n if (env.mode !== 'evaluate') {\n resolve({ score: undefined, completed: undefined });\n } else {\n if (!session || isEmpty(session)) {\n resolve({ score: 0, empty: true });\n }\n\n const out = {\n score: getOutComeScore(question, env, session.answers),\n };\n\n resolve(out);\n }\n });\n};\n\nexport function createDefaultModel(model = {}) {\n return new Promise((resolve) => {\n resolve({\n ...defaults,\n ...model,\n });\n });\n}\n\nexport const normalize = (question) => ({\n feedbackEnabled: false,\n promptEnabled: true,\n rationaleEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n ...question,\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 function model(question, session, env, updateSession) {\n return new Promise(async (resolve) => {\n const normalizedQuestion = cloneDeep(normalize(question));\n let correctness, score;\n\n if ((!session || isEmpty(session)) && env.mode === 'evaluate') {\n correctness = 'unanswered';\n score = '0%';\n } else {\n correctness = getCorrectness(normalizedQuestion, env, session && session.answers);\n score = `${getOutComeScore(normalizedQuestion, env, session && session.answers) * 100}%`;\n }\n\n const correctResponse = {};\n const correctInfo = {\n score,\n correctness,\n };\n\n const lockChoiceOrder = lockChoices(normalizedQuestion, session, env);\n\n if (!lockChoiceOrder) {\n normalizedQuestion.rows = await getShuffledChoices(normalizedQuestion.rows, session, updateSession, 'id');\n }\n\n normalizedQuestion.rows.forEach((row) => {\n correctResponse[row.id] = row.values;\n\n if (env.mode !== 'evaluate') {\n delete row.values;\n }\n });\n\n const fb =\n env.mode === 'evaluate' && normalizedQuestion.feedbackEnabled\n ? getFeedbackForCorrectness(correctInfo.correctness, normalizedQuestion.feedback)\n : Promise.resolve(undefined);\n\n fb.then((feedback) => {\n const { feedbackEnabled, promptEnabled, prompt, lockChoiceOrder, ...essentials } = normalizedQuestion;\n const out = {\n ...essentials,\n allowFeedback: feedbackEnabled,\n prompt: promptEnabled ? prompt : null,\n shuffled: !lockChoiceOrder,\n feedback,\n disabled: env.mode !== 'gather',\n view: env.mode === 'view',\n };\n\n if (env.role === 'instructor' && (env.mode === 'view' || env.mode === 'evaluate')) {\n out.teacherInstructions = normalizedQuestion.teacherInstructionsEnabled\n ? normalizedQuestion.teacherInstructions\n : null;\n out.rationale = normalizedQuestion.rationaleEnabled ? normalizedQuestion.rationale : null;\n } else {\n out.rationale = null;\n out.teacherInstructions = null;\n }\n\n if (env.mode === 'evaluate') {\n Object.assign(out, {\n correctResponse,\n correctness: correctInfo,\n });\n }\n\n log('out: ', out);\n resolve(out);\n });\n });\n}\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise((resolve) => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n const { rows } = question;\n const answers = {};\n\n rows.forEach((r) => {\n answers[r.id] = r.values;\n });\n\n resolve({\n answers,\n id: '1',\n });\n } else {\n resolve(null);\n }\n });\n};\n\nconst markupToText = (s) => {\n return (s || '').replace(/(<([^>]+)>)/gi, '');\n};\n\nexport const validate = (model = {}, config = {}) => {\n const { rows, choiceMode, headers } = model;\n const {\n minQuestions,\n maxQuestions,\n maxLengthQuestionsHeading,\n maxAnswers,\n maxLengthAnswers,\n maxLengthFirstColumnHeading,\n } = config;\n const rowsErrors = {};\n const columnsErrors = {};\n const errors = {};\n\n if (rows.length < minQuestions) {\n errors.noOfRowsError = `There should be at least ${minQuestions} question rows.`;\n } else if (rows.length > maxQuestions) {\n errors.noOfRowsError = `No more than ${maxQuestions} question rows should be defined.`;\n }\n\n (rows || []).forEach((row, index) => {\n const { id, values = [], title } = row;\n let hasCorrectResponse = false;\n\n rowsErrors[id] = '';\n\n if (maxLengthQuestionsHeading && markupToText(title).length > maxLengthQuestionsHeading) {\n rowsErrors[\n id\n ] += `Questions rows content length should not be more than ${maxLengthQuestionsHeading} characters. `;\n } else if (title === '' || title === '<div></div>') {\n rowsErrors[id] += 'Content should not be empty. ';\n } else {\n const identicalAnswer = rows.slice(index + 1).some((r) => {\n return markupToText(r.title) === markupToText(title);\n });\n\n if (identicalAnswer) {\n rowsErrors[id] = 'Content should be unique. ';\n }\n }\n\n values.forEach((value) => {\n if (value) {\n hasCorrectResponse = true;\n }\n });\n\n if (!hasCorrectResponse) {\n rowsErrors[id] += 'No correct response defined.';\n }\n });\n\n if (maxAnswers && headers.length - 1 > maxAnswers) {\n errors.columnsLengthError = `There should be maximum ${maxAnswers} answers.`;\n }\n\n if (maxLengthFirstColumnHeading && headers[0].length > maxLengthFirstColumnHeading) {\n columnsErrors[0] = `The first column heading should have the maximum length of ${maxLengthFirstColumnHeading} characters.`;\n }\n\n // remove first column since it does not require validation\n const validateHeaders = (cloneDeep(headers) || []).map((heading) => markupToText(heading));\n validateHeaders.shift();\n\n (validateHeaders || []).forEach((heading, index) => {\n if (heading === '' || heading === '<div></div>') {\n columnsErrors[index + 1] = 'Content should not be empty.';\n } else if (maxLengthAnswers && heading.length > maxLengthAnswers) {\n columnsErrors[index + 1] = `Content length should be maximum ${maxLengthAnswers} characters.`;\n } else {\n const identicalAnswer = validateHeaders.some((h, index) => {\n if (h === heading) {\n return validateHeaders.indexOf(h) !== index;\n }\n });\n\n if (identicalAnswer) {\n columnsErrors[index + 1] = 'Content should be unique.';\n }\n }\n });\n\n let hasRowErrors = false;\n Object.entries(rowsErrors).forEach(([, rowError]) => {\n if (rowError.length) {\n hasRowErrors = true;\n }\n });\n\n if (hasRowErrors) {\n errors.rowsErrors = rowsErrors;\n let noCorrectAnswer = false;\n\n Object.entries(rowsErrors).forEach(([, rowError]) => {\n if ((rowError || '').includes('No correct response defined.')) {\n noCorrectAnswer = true;\n }\n });\n\n if (noCorrectAnswer) {\n errors.correctResponseError =\n choiceMode === 'radio'\n ? 'There should be a correct response defined for every row.'\n : 'There should be at least one correct response defined for every row.';\n }\n }\n\n if (!isEmpty(columnsErrors)) {\n errors.columnsErrors = columnsErrors;\n }\n\n return errors;\n};\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../src/index.js"],"names":["log","getResponseCorrectness","model","answers","env","isPartialScoring","partialScoring","enabled","rows","checkboxMode","choiceMode","Object","keys","length","totalCorrectAnswers","getTotalCorrectAnswers","getTotalCorrect","correctAnswers","incorrectAnswers","checkboxes","getCheckboxes","getCorrectRadios","getCorrectness","question","mode","forEach","row","answer","id","values","v","i","matchingTable","layout","noOfTotalCorrectAnswers","value","getPartialScore","totalCorrect","total","extraAnswers","score","parseFloat","toFixed","getOutComeScore","correctness","outcome","session","Promise","resolve","undefined","completed","empty","out","createDefaultModel","defaults","normalize","feedbackEnabled","promptEnabled","rationaleEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","updateSession","normalizedQuestion","correctResponse","correctInfo","lockChoiceOrder","fb","feedback","then","prompt","essentials","allowFeedback","shuffled","disabled","view","role","teacherInstructions","rationale","assign","createCorrectResponseSession","r","getInnerText","html","replaceAll","validate","config","headers","minQuestions","maxQuestions","maxLengthQuestionsHeading","maxAnswers","maxLengthAnswers","maxLengthFirstColumnHeading","rowsErrors","columnsErrors","errors","field","required","noOfRowsError","index","title","hasCorrectResponse","identicalAnswer","slice","some","columnsLengthError","validateHeaders","map","heading","shift","h","indexOf","hasRowErrors","entries","rowError","noCorrectAnswer","includes","correctResponseError"],"mappings":"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","sourcesContent":["import isEqual from 'lodash/isEqual';\nimport isEmpty from 'lodash/isEmpty';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { getFeedbackForCorrectness } from '@pie-lib/pie-toolbox/feedback';\nimport { lockChoices, getShuffledChoices, partialScoring } from '@pie-lib/pie-toolbox/controller-utils';\nimport debug from 'debug';\n\nconst log = debug('@pie-element:match:controller');\n\nimport defaults from './defaults';\n\nconst getResponseCorrectness = (model, answers, env = {}) => {\n const isPartialScoring = partialScoring.enabled(model, env);\n const rows = model.rows;\n const checkboxMode = model.choiceMode === 'checkbox';\n\n if (!answers || Object.keys(answers).length === 0) {\n return 'unanswered';\n }\n\n const totalCorrectAnswers = checkboxMode ? getTotalCorrectAnswers(model) : getTotalCorrect(model);\n let correctAnswers;\n let incorrectAnswers = 0;\n\n if (checkboxMode) {\n const checkboxes = getCheckboxes(rows, answers);\n\n correctAnswers = checkboxes.correctAnswers;\n incorrectAnswers = checkboxes.incorrectAnswers;\n } else {\n correctAnswers = getCorrectRadios(rows, answers);\n }\n\n if (totalCorrectAnswers === correctAnswers && !incorrectAnswers) {\n return 'correct';\n } else if (correctAnswers === 0) {\n return 'incorrect';\n } else if (isPartialScoring) {\n return 'partial';\n }\n\n return 'incorrect';\n};\n\nconst getCorrectness = (question, env, answers = {}) => {\n if (env.mode === 'evaluate') {\n return getResponseCorrectness(question, answers, env);\n }\n};\n\nconst getCheckboxes = (rows, answers) => {\n let correctAnswers = 0;\n let incorrectAnswers = 0;\n\n rows.forEach((row) => {\n const answer = answers[row.id];\n\n if (answer) {\n row.values.forEach((v, i) => {\n if (answer[i] && answer[i] === v) {\n correctAnswers += 1;\n } else if (answer[i] && answer[i] !== v) {\n incorrectAnswers += 1;\n }\n });\n }\n });\n\n return { correctAnswers, incorrectAnswers };\n};\n\nconst getCorrectRadios = (rows, answers) => {\n let correctAnswers = 0;\n\n rows.forEach((row) => {\n if (isEqual(row.values, answers[row.id])) {\n correctAnswers += 1;\n }\n });\n\n return correctAnswers;\n};\n\nconst getTotalCorrect = (question) => {\n const checkboxMode = question.choiceMode === 'checkbox';\n const matchingTable = checkboxMode ? question.layout - 1 : 1;\n return (question.rows.length || 0) * matchingTable;\n};\n\nconst getTotalCorrectAnswers = (question) => {\n let noOfTotalCorrectAnswers = 0;\n\n question.rows.forEach((row) => {\n row.values.forEach((value) => {\n if (value) {\n noOfTotalCorrectAnswers += 1;\n }\n });\n });\n\n return noOfTotalCorrectAnswers;\n};\n\nconst getPartialScore = (question, answers) => {\n const checkboxMode = question.choiceMode === 'checkbox';\n\n if (checkboxMode) {\n const { correctAnswers, incorrectAnswers } = getCheckboxes(question.rows, answers);\n const totalCorrect = getTotalCorrectAnswers(question);\n\n const total = totalCorrect === 0 ? 1 : totalCorrect;\n\n if (correctAnswers + incorrectAnswers > totalCorrect) {\n const extraAnswers = correctAnswers + incorrectAnswers - totalCorrect;\n const score = parseFloat(((correctAnswers - extraAnswers) / total).toFixed(2));\n\n return score < 0 ? 0 : score;\n } else {\n return parseFloat((correctAnswers / total).toFixed(2));\n }\n } else {\n const correctAnswers = getCorrectRadios(question.rows, answers);\n const totalCorrect = getTotalCorrect(question) === 0 ? 1 : getTotalCorrect(question);\n\n return parseFloat((correctAnswers / totalCorrect).toFixed(2));\n }\n};\n\nconst getOutComeScore = (question, env, answers = {}) => {\n const correctness = getCorrectness(question, env, answers);\n const isPartialScoring = partialScoring.enabled(question, env);\n\n return correctness === 'correct'\n ? 1\n : correctness === 'partial' && isPartialScoring\n ? getPartialScore(question, answers)\n : 0;\n};\n\nexport const outcome = (question, session, env) => {\n return new Promise((resolve) => {\n if (env.mode !== 'evaluate') {\n resolve({ score: undefined, completed: undefined });\n } else {\n if (!session || isEmpty(session)) {\n resolve({ score: 0, empty: true });\n }\n\n const out = {\n score: getOutComeScore(question, env, session.answers),\n };\n\n resolve(out);\n }\n });\n};\n\nexport function createDefaultModel(model = {}) {\n return new Promise((resolve) => {\n resolve({\n ...defaults,\n ...model,\n });\n });\n}\n\nexport const normalize = (question) => ({\n feedbackEnabled: false,\n promptEnabled: true,\n rationaleEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n ...question,\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 function model(question, session, env, updateSession) {\n return new Promise(async (resolve) => {\n const normalizedQuestion = cloneDeep(normalize(question));\n let correctness, score;\n\n if ((!session || isEmpty(session)) && env.mode === 'evaluate') {\n correctness = 'unanswered';\n score = '0%';\n } else {\n correctness = getCorrectness(normalizedQuestion, env, session && session.answers);\n score = `${getOutComeScore(normalizedQuestion, env, session && session.answers) * 100}%`;\n }\n\n const correctResponse = {};\n const correctInfo = {\n score,\n correctness,\n };\n\n const lockChoiceOrder = lockChoices(normalizedQuestion, session, env);\n\n if (!lockChoiceOrder) {\n normalizedQuestion.rows = await getShuffledChoices(normalizedQuestion.rows, session, updateSession, 'id');\n }\n\n normalizedQuestion.rows.forEach((row) => {\n correctResponse[row.id] = row.values;\n\n if (env.mode !== 'evaluate') {\n delete row.values;\n }\n });\n\n const fb =\n env.mode === 'evaluate' && normalizedQuestion.feedbackEnabled\n ? getFeedbackForCorrectness(correctInfo.correctness, normalizedQuestion.feedback)\n : Promise.resolve(undefined);\n\n fb.then((feedback) => {\n const { feedbackEnabled, promptEnabled, prompt, lockChoiceOrder, ...essentials } = normalizedQuestion;\n const out = {\n ...essentials,\n allowFeedback: feedbackEnabled,\n prompt: promptEnabled ? prompt : null,\n shuffled: !lockChoiceOrder,\n feedback,\n disabled: env.mode !== 'gather',\n view: env.mode === 'view',\n };\n\n if (env.role === 'instructor' && (env.mode === 'view' || env.mode === 'evaluate')) {\n out.teacherInstructions = normalizedQuestion.teacherInstructionsEnabled\n ? normalizedQuestion.teacherInstructions\n : null;\n out.rationale = normalizedQuestion.rationaleEnabled ? normalizedQuestion.rationale : null;\n } else {\n out.rationale = null;\n out.teacherInstructions = null;\n }\n\n if (env.mode === 'evaluate') {\n Object.assign(out, {\n correctResponse,\n correctness: correctInfo,\n });\n }\n\n log('out: ', out);\n resolve(out);\n });\n });\n}\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise((resolve) => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n const { rows } = question;\n const answers = {};\n\n rows.forEach((r) => {\n answers[r.id] = r.values;\n });\n\n resolve({\n answers,\n id: '1',\n });\n } else {\n resolve(null);\n }\n });\n};\n\nconst getInnerText = (html) => (html || '').replaceAll(/<[^>]*>/g, '');\n\nexport const validate = (model = {}, config = {}) => {\n const { rows, choiceMode, headers } = model;\n const {\n minQuestions,\n maxQuestions,\n maxLengthQuestionsHeading,\n maxAnswers,\n maxLengthAnswers,\n maxLengthFirstColumnHeading,\n } = config;\n const rowsErrors = {};\n const columnsErrors = {};\n const errors = {};\n\n ['teacherInstructions', 'prompt', 'rationale'].forEach((field) => {\n if (config[field]?.required && !getInnerText(model[field])) {\n errors[field] = 'This field is required';\n }\n });\n\n if (rows.length < minQuestions) {\n errors.noOfRowsError = `There should be at least ${minQuestions} question rows.`;\n } else if (rows.length > maxQuestions) {\n errors.noOfRowsError = `No more than ${maxQuestions} question rows should be defined.`;\n }\n\n (rows || []).forEach((row, index) => {\n const { id, values = [], title } = row;\n let hasCorrectResponse = false;\n\n rowsErrors[id] = '';\n\n if (maxLengthQuestionsHeading && getInnerText(title).length > maxLengthQuestionsHeading) {\n rowsErrors[\n id\n ] += `Questions rows content length should not be more than ${maxLengthQuestionsHeading} characters. `;\n } else if (!getInnerText(title)) {\n rowsErrors[id] += 'Content should not be empty. ';\n } else {\n const identicalAnswer = rows.slice(index + 1).some((r) => {\n return getInnerText(r.title) === getInnerText(title);\n });\n\n if (identicalAnswer) {\n rowsErrors[id] = 'Content should be unique. ';\n }\n }\n\n values.forEach((value) => {\n if (value) {\n hasCorrectResponse = true;\n }\n });\n\n if (!hasCorrectResponse) {\n rowsErrors[id] += 'No correct response defined.';\n }\n });\n\n if (maxAnswers && headers.length - 1 > maxAnswers) {\n errors.columnsLengthError = `There should be maximum ${maxAnswers} answers.`;\n }\n\n if (maxLengthFirstColumnHeading && headers[0].length > maxLengthFirstColumnHeading) {\n columnsErrors[0] = `The first column heading should have the maximum length of ${maxLengthFirstColumnHeading} characters.`;\n }\n\n // remove first column since it does not require validation\n const validateHeaders = (cloneDeep(headers) || []).map((heading) => getInnerText(heading));\n validateHeaders.shift();\n\n (validateHeaders || []).forEach((heading, index) => {\n if (!getInnerText(heading)) {\n columnsErrors[index + 1] = 'Content should not be empty.';\n } else if (maxLengthAnswers && heading.length > maxLengthAnswers) {\n columnsErrors[index + 1] = `Content length should be maximum ${maxLengthAnswers} characters.`;\n } else {\n const identicalAnswer = validateHeaders.some((h, index) => {\n if (h === heading) {\n return validateHeaders.indexOf(h) !== index;\n }\n });\n\n if (identicalAnswer) {\n columnsErrors[index + 1] = 'Content should be unique.';\n }\n }\n });\n\n let hasRowErrors = false;\n Object.entries(rowsErrors).forEach(([, rowError]) => {\n if (rowError.length) {\n hasRowErrors = true;\n }\n });\n\n if (hasRowErrors) {\n errors.rowsErrors = rowsErrors;\n let noCorrectAnswer = false;\n\n Object.entries(rowsErrors).forEach(([, rowError]) => {\n if ((rowError || '').includes('No correct response defined.')) {\n noCorrectAnswer = true;\n }\n });\n\n if (noCorrectAnswer) {\n errors.correctResponseError =\n choiceMode === 'radio'\n ? 'There should be a correct response defined for every row.'\n : 'There should be at least one correct response defined for every row.';\n }\n }\n\n if (!isEmpty(columnsErrors)) {\n errors.columnsErrors = columnsErrors;\n }\n\n return errors;\n};\n"],"file":"index.js"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pie-element/match-controller",
3
3
  "private": true,
4
- "version": "6.0.1",
4
+ "version": "6.0.2",
5
5
  "description": "",
6
6
  "main": "lib/index.js",
7
7
  "module": "src/index.js",
@@ -249,7 +249,7 @@
249
249
  }
250
250
  },
251
251
  "prompt": {
252
- "title": "EditableHtmlPluginConfigure",
252
+ "title": "EditableHtmlPluginConfigureRequired",
253
253
  "type": "object",
254
254
  "properties": {
255
255
  "inputConfiguration": {
@@ -291,6 +291,11 @@
291
291
  }
292
292
  }
293
293
  },
294
+ "required": {
295
+ "description": "Indicates if the item is required and the value cannot be empty",
296
+ "type": "boolean",
297
+ "title": "required"
298
+ },
294
299
  "settings": {
295
300
  "description": "Indicates if the item has to be displayed in the Settings Panel",
296
301
  "type": "boolean",
@@ -325,7 +330,7 @@
325
330
  }
326
331
  },
327
332
  "rationale": {
328
- "title": "EditableHtmlPluginConfigure",
333
+ "title": "EditableHtmlPluginConfigureRequired",
329
334
  "type": "object",
330
335
  "properties": {
331
336
  "inputConfiguration": {
@@ -367,6 +372,11 @@
367
372
  }
368
373
  }
369
374
  },
375
+ "required": {
376
+ "description": "Indicates if the item is required and the value cannot be empty",
377
+ "type": "boolean",
378
+ "title": "required"
379
+ },
370
380
  "settings": {
371
381
  "description": "Indicates if the item has to be displayed in the Settings Panel",
372
382
  "type": "boolean",
@@ -412,7 +422,7 @@
412
422
  }
413
423
  },
414
424
  "teacherInstructions": {
415
- "title": "EditableHtmlPluginConfigure",
425
+ "title": "EditableHtmlPluginConfigureRequired",
416
426
  "type": "object",
417
427
  "properties": {
418
428
  "inputConfiguration": {
@@ -454,6 +464,11 @@
454
464
  }
455
465
  }
456
466
  },
467
+ "required": {
468
+ "description": "Indicates if the item is required and the value cannot be empty",
469
+ "type": "boolean",
470
+ "title": "required"
471
+ },
457
472
  "settings": {
458
473
  "description": "Indicates if the item has to be displayed in the Settings Panel",
459
474
  "type": "boolean",
@@ -833,6 +848,66 @@
833
848
  }
834
849
  }
835
850
  },
851
+ "EditableHtmlPluginConfigureRequired": {
852
+ "title": "EditableHtmlPluginConfigureRequired",
853
+ "type": "object",
854
+ "properties": {
855
+ "inputConfiguration": {
856
+ "title": "EditableHtmlConfigureProp",
857
+ "type": "object",
858
+ "properties": {
859
+ "audio": {
860
+ "title": "EditableHtmlButtonConfigure",
861
+ "type": "object",
862
+ "properties": {
863
+ "disabled": {
864
+ "description": "Indicates if the plugin is disabled or not",
865
+ "type": "boolean",
866
+ "title": "disabled"
867
+ }
868
+ }
869
+ },
870
+ "video": {
871
+ "title": "EditableHtmlButtonConfigure",
872
+ "type": "object",
873
+ "properties": {
874
+ "disabled": {
875
+ "description": "Indicates if the plugin is disabled or not",
876
+ "type": "boolean",
877
+ "title": "disabled"
878
+ }
879
+ }
880
+ },
881
+ "image": {
882
+ "title": "EditableHtmlButtonConfigure",
883
+ "type": "object",
884
+ "properties": {
885
+ "disabled": {
886
+ "description": "Indicates if the plugin is disabled or not",
887
+ "type": "boolean",
888
+ "title": "disabled"
889
+ }
890
+ }
891
+ }
892
+ }
893
+ },
894
+ "required": {
895
+ "description": "Indicates if the item is required and the value cannot be empty",
896
+ "type": "boolean",
897
+ "title": "required"
898
+ },
899
+ "settings": {
900
+ "description": "Indicates if the item has to be displayed in the Settings Panel",
901
+ "type": "boolean",
902
+ "title": "settings"
903
+ },
904
+ "label": {
905
+ "description": "Indicates the label for the item that has to be displayed in the Settings Panel",
906
+ "type": "string",
907
+ "title": "label"
908
+ }
909
+ }
910
+ },
836
911
  "ConfigureMaxImageDimensionsProp": {
837
912
  "title": "ConfigureMaxImageDimensionsProp",
838
913
  "type": "object",
@@ -214,6 +214,10 @@ Properties of the `image` object:
214
214
 
215
215
  Indicates if the plugin is disabled or not
216
216
 
217
+ ## `required` (boolean)
218
+
219
+ Indicates if the item is required and the value cannot be empty
220
+
217
221
  ## `settings` (boolean)
218
222
 
219
223
  Indicates if the item has to be displayed in the Settings Panel
@@ -270,6 +274,10 @@ Properties of the `image` object:
270
274
 
271
275
  Indicates if the plugin is disabled or not
272
276
 
277
+ ## `required` (boolean)
278
+
279
+ Indicates if the item is required and the value cannot be empty
280
+
273
281
  ## `settings` (boolean)
274
282
 
275
283
  Indicates if the item has to be displayed in the Settings Panel
@@ -334,6 +342,10 @@ Properties of the `image` object:
334
342
 
335
343
  Indicates if the plugin is disabled or not
336
344
 
345
+ ## `required` (boolean)
346
+
347
+ Indicates if the item is required and the value cannot be empty
348
+
337
349
  ## `settings` (boolean)
338
350
 
339
351
  Indicates if the item has to be displayed in the Settings Panel
@@ -620,6 +632,50 @@ Indicates if the item has to be displayed in the Settings Panel
620
632
 
621
633
  Indicates the label for the item that has to be displayed in the Settings Panel
622
634
 
635
+ ## `EditableHtmlPluginConfigureRequired` (object)
636
+
637
+ Properties of the `EditableHtmlPluginConfigureRequired` object:
638
+
639
+ ### `inputConfiguration` (object)
640
+
641
+ Properties of the `inputConfiguration` object:
642
+
643
+ #### `audio` (object)
644
+
645
+ Properties of the `audio` object:
646
+
647
+ ##### `disabled` (boolean)
648
+
649
+ Indicates if the plugin is disabled or not
650
+
651
+ #### `video` (object)
652
+
653
+ Properties of the `video` object:
654
+
655
+ ##### `disabled` (boolean)
656
+
657
+ Indicates if the plugin is disabled or not
658
+
659
+ #### `image` (object)
660
+
661
+ Properties of the `image` object:
662
+
663
+ ##### `disabled` (boolean)
664
+
665
+ Indicates if the plugin is disabled or not
666
+
667
+ ### `required` (boolean)
668
+
669
+ Indicates if the item is required and the value cannot be empty
670
+
671
+ ### `settings` (boolean)
672
+
673
+ Indicates if the item has to be displayed in the Settings Panel
674
+
675
+ ### `label` (string)
676
+
677
+ Indicates the label for the item that has to be displayed in the Settings Panel
678
+
623
679
  ## `ConfigureMaxImageDimensionsProp` (object)
624
680
 
625
681
  Properties of the `ConfigureMaxImageDimensionsProp` object:
@@ -471,6 +471,66 @@
471
471
  }
472
472
  }
473
473
  },
474
+ "EditableHtmlPluginConfigureRequired": {
475
+ "title": "EditableHtmlPluginConfigureRequired",
476
+ "type": "object",
477
+ "properties": {
478
+ "inputConfiguration": {
479
+ "title": "EditableHtmlConfigureProp",
480
+ "type": "object",
481
+ "properties": {
482
+ "audio": {
483
+ "title": "EditableHtmlButtonConfigure",
484
+ "type": "object",
485
+ "properties": {
486
+ "disabled": {
487
+ "description": "Indicates if the plugin is disabled or not",
488
+ "type": "boolean",
489
+ "title": "disabled"
490
+ }
491
+ }
492
+ },
493
+ "video": {
494
+ "title": "EditableHtmlButtonConfigure",
495
+ "type": "object",
496
+ "properties": {
497
+ "disabled": {
498
+ "description": "Indicates if the plugin is disabled or not",
499
+ "type": "boolean",
500
+ "title": "disabled"
501
+ }
502
+ }
503
+ },
504
+ "image": {
505
+ "title": "EditableHtmlButtonConfigure",
506
+ "type": "object",
507
+ "properties": {
508
+ "disabled": {
509
+ "description": "Indicates if the plugin is disabled or not",
510
+ "type": "boolean",
511
+ "title": "disabled"
512
+ }
513
+ }
514
+ }
515
+ }
516
+ },
517
+ "required": {
518
+ "description": "Indicates if the item is required and the value cannot be empty",
519
+ "type": "boolean",
520
+ "title": "required"
521
+ },
522
+ "settings": {
523
+ "description": "Indicates if the item has to be displayed in the Settings Panel",
524
+ "type": "boolean",
525
+ "title": "settings"
526
+ },
527
+ "label": {
528
+ "description": "Indicates the label for the item that has to be displayed in the Settings Panel",
529
+ "type": "string",
530
+ "title": "label"
531
+ }
532
+ }
533
+ },
474
534
  "ConfigureMaxImageDimensionsProp": {
475
535
  "title": "ConfigureMaxImageDimensionsProp",
476
536
  "type": "object",
@@ -242,6 +242,50 @@ Indicates if the item has to be displayed in the Settings Panel
242
242
 
243
243
  Indicates the label for the item that has to be displayed in the Settings Panel
244
244
 
245
+ ## `EditableHtmlPluginConfigureRequired` (object)
246
+
247
+ Properties of the `EditableHtmlPluginConfigureRequired` object:
248
+
249
+ ### `inputConfiguration` (object)
250
+
251
+ Properties of the `inputConfiguration` object:
252
+
253
+ #### `audio` (object)
254
+
255
+ Properties of the `audio` object:
256
+
257
+ ##### `disabled` (boolean)
258
+
259
+ Indicates if the plugin is disabled or not
260
+
261
+ #### `video` (object)
262
+
263
+ Properties of the `video` object:
264
+
265
+ ##### `disabled` (boolean)
266
+
267
+ Indicates if the plugin is disabled or not
268
+
269
+ #### `image` (object)
270
+
271
+ Properties of the `image` object:
272
+
273
+ ##### `disabled` (boolean)
274
+
275
+ Indicates if the plugin is disabled or not
276
+
277
+ ### `required` (boolean)
278
+
279
+ Indicates if the item is required and the value cannot be empty
280
+
281
+ ### `settings` (boolean)
282
+
283
+ Indicates if the item has to be displayed in the Settings Panel
284
+
285
+ ### `label` (string)
286
+
287
+ Indicates the label for the item that has to be displayed in the Settings Panel
288
+
245
289
  ## `ConfigureMaxImageDimensionsProp` (object)
246
290
 
247
291
  Properties of the `ConfigureMaxImageDimensionsProp` object:
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "access": "public"
5
5
  },
6
6
  "repository": "pie-framework/pie-elements",
7
- "version": "7.1.2-next.9+6477719d0",
7
+ "version": "7.1.3-next.12+9df520faa",
8
8
  "main": "lib/index.js",
9
9
  "description": "",
10
10
  "scripts": {
@@ -23,6 +23,6 @@
23
23
  },
24
24
  "author": "",
25
25
  "license": "ISC",
26
- "gitHead": "6477719d0621f211d994f5e22bb563d95e935c39",
26
+ "gitHead": "9df520faa7b811c0f662aabd9622f1a8ca45e468",
27
27
  "module": "src/index.js"
28
28
  }