@pie-element/categorize 8.1.2-next.72 → 8.2.1-next.8

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,24 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [8.2.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize@8.1.1...@pie-element/categorize@8.2.0) (2023-12-19)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * update pie-lib/pie-toolbox PD-2068 ([34eccd5](https://github.com/pie-framework/pie-elements/commit/34eccd52c44259eddf3e2b816b00b82f83bc2bf8))
12
+ * **cateogrize:** snapshots ([fd4e8d0](https://github.com/pie-framework/pie-elements/commit/fd4e8d0b737f963f8c1d37020c60653facbc82a2))
13
+
14
+
15
+ ### Features
16
+
17
+ * update pie-lib/pie-toolbox PD-2555 ([86d4fd9](https://github.com/pie-framework/pie-elements/commit/86d4fd909180dd1fcbc446bd8b29c23af21a1c69))
18
+ * update pie-lib/pie-toolbox PD-3307, PD-2067, PD-3271, PD-3041, PD-2068 ([2eabcbd](https://github.com/pie-framework/pie-elements/commit/2eabcbd036e318bb24552f4140ca7384ad865951))
19
+
20
+
21
+
22
+
23
+
6
24
  ## [8.1.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize@8.1.0...@pie-element/categorize@8.1.1) (2023-11-27)
7
25
 
8
26
 
@@ -3,6 +3,24 @@
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.2.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize-configure@7.1.1...@pie-element/categorize-configure@7.2.0) (2023-12-19)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * update pie-lib/pie-toolbox PD-2068 ([34eccd5](https://github.com/pie-framework/pie-elements/commit/34eccd52c44259eddf3e2b816b00b82f83bc2bf8))
12
+ * **cateogrize:** snapshots ([fd4e8d0](https://github.com/pie-framework/pie-elements/commit/fd4e8d0b737f963f8c1d37020c60653facbc82a2))
13
+
14
+
15
+ ### Features
16
+
17
+ * update pie-lib/pie-toolbox PD-2555 ([86d4fd9](https://github.com/pie-framework/pie-elements/commit/86d4fd909180dd1fcbc446bd8b29c23af21a1c69))
18
+ * update pie-lib/pie-toolbox PD-3307, PD-2067, PD-3271, PD-3041, PD-2068 ([2eabcbd](https://github.com/pie-framework/pie-elements/commit/2eabcbd036e318bb24552f4140ca7384ad865951))
19
+
20
+
21
+
22
+
23
+
6
24
  ## [7.1.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize-configure@7.1.0...@pie-element/categorize-configure@7.1.1) (2023-11-27)
7
25
 
8
26
 
@@ -11,7 +11,7 @@ var _react = _interopRequireDefault(require("react"));
11
11
 
12
12
  var _styles = require("@material-ui/core/styles");
13
13
 
14
- var _editableHtml = _interopRequireDefault(require("@pie-lib/pie-toolbox/editable-html"));
14
+ var _editableHtml = require("@pie-lib/pie-toolbox/editable-html");
15
15
 
16
16
  var _renderUi = require("@pie-lib/pie-toolbox/render-ui");
17
17
 
@@ -49,7 +49,7 @@ var RowLabel = (0, _styles.withStyles)(styles)(function (_ref) {
49
49
  }, /*#__PURE__*/_react["default"].createElement(_renderUi.InputContainer, {
50
50
  label: "Row Label",
51
51
  className: classes.rowLabelHolder
52
- }, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
52
+ }, /*#__PURE__*/_react["default"].createElement(_editableHtml.EditableHtml, {
53
53
  disabled: disabled,
54
54
  markup: markup,
55
55
  onChange: onChange,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/design/categories/RowLabel.jsx"],"names":["styles","theme","rowLabel","gridColumn","rowLabelHolder","paddingTop","spacing","unit","width","RowLabel","categoriesPerRow","classes","disabled","markup","imageSupport","onChange","toolbarOpts","spellCheck","maxImageWidth","maxImageHeight","uploadSoundSupport","mathMlOptions","language"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA,IAAMA,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBC,IAAAA,QAAQ,EAAE;AACRC,MAAAA,UAAU,EAAE;AADJ,KADe;AAIzBC,IAAAA,cAAc,EAAE;AACdC,MAAAA,UAAU,EAAEJ,KAAK,CAACK,OAAN,CAAcC,IAAd,GAAqB,CADnB;AAEdC,MAAAA,KAAK,EAAE;AAFO;AAJS,GAAZ;AAAA,CAAf;;AAUO,IAAMC,QAAQ,GAAG,wBAAWT,MAAX,EACtB,gBAaM;AAAA,MAZJU,gBAYI,QAZJA,gBAYI;AAAA,MAXJC,OAWI,QAXJA,OAWI;AAAA,MAVJC,QAUI,QAVJA,QAUI;AAAA,MATJC,MASI,QATJA,MASI;AAAA,MARJC,YAQI,QARJA,YAQI;AAAA,MAPJC,QAOI,QAPJA,QAOI;AAAA,MANJC,WAMI,QANJA,WAMI;AAAA,MALJC,UAKI,QALJA,UAKI;AAAA,MAJJC,aAII,QAJJA,aAII;AAAA,MAHJC,cAGI,QAHJA,cAGI;AAAA,MAFJC,kBAEI,QAFJA,kBAEI;AAAA,gCADHC,aACG;AAAA,MADHA,aACG,mCADa,EACb;AACJ,sBACE;AACE,IAAA,KAAK,EAAE;AACLlB,MAAAA,UAAU,cAAOO,gBAAgB,GAAG,CAA1B,CADL;AAELF,MAAAA,KAAK,EAAE;AAFF;AADT,kBAME,gCAAC,wBAAD;AAAgB,IAAA,KAAK,EAAC,WAAtB;AAAkC,IAAA,SAAS,EAAEG,OAAO,CAACP;AAArD,kBACE,gCAAC,wBAAD;AACE,IAAA,QAAQ,EAAEQ,QADZ;AAEE,IAAA,MAAM,EAAEC,MAFV;AAGE,IAAA,QAAQ,EAAEE,QAHZ;AAIE,IAAA,YAAY,EAAED,YAJhB;AAKE,IAAA,QAAQ,EAAE,KALZ;AAME,IAAA,WAAW,EAAEE,WANf;AAOE,IAAA,UAAU,EAAEC,UAPd;AAQE,IAAA,aAAa,EAAEC,aARjB;AASE,IAAA,cAAc,EAAEC,cATlB;AAUE,IAAA,kBAAkB,EAAEC,kBAVtB;AAWE,IAAA,uBAAuB,EAAE,CAAC;AAAEE,MAAAA,QAAQ,EAAE;AAAZ,KAAD,EAA0B;AAAEA,MAAAA,QAAQ,EAAE;AAAZ,KAA1B,CAX3B;AAYE,IAAA,aAAa,EAAED;AAZjB,IADF,CANF,CADF;AAyBD,CAxCqB,CAAjB","sourcesContent":["import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport EditableHtml from '@pie-lib/pie-toolbox/editable-html';\nimport { InputContainer } from '@pie-lib/pie-toolbox/render-ui';\n\nconst styles = (theme) => ({\n rowLabel: {\n gridColumn: '1/3',\n },\n rowLabelHolder: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%',\n },\n});\n\nexport const RowLabel = withStyles(styles)(\n ({\n categoriesPerRow,\n classes,\n disabled,\n markup,\n imageSupport,\n onChange,\n toolbarOpts,\n spellCheck,\n maxImageWidth,\n maxImageHeight,\n uploadSoundSupport,\n mathMlOptions = {}\n }) => {\n return (\n <div\n style={{\n gridColumn: `1/${categoriesPerRow + 1}`,\n width: '100%',\n }}\n >\n <InputContainer label=\"Row Label\" className={classes.rowLabelHolder}>\n <EditableHtml\n disabled={disabled}\n markup={markup}\n onChange={onChange}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n maxImageWidth={maxImageWidth}\n maxImageHeight={maxImageHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </InputContainer>\n </div>\n );\n },\n);\n"],"file":"RowLabel.js"}
1
+ {"version":3,"sources":["../../../src/design/categories/RowLabel.jsx"],"names":["styles","theme","rowLabel","gridColumn","rowLabelHolder","paddingTop","spacing","unit","width","RowLabel","categoriesPerRow","classes","disabled","markup","imageSupport","onChange","toolbarOpts","spellCheck","maxImageWidth","maxImageHeight","uploadSoundSupport","mathMlOptions","language"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA,IAAMA,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBC,IAAAA,QAAQ,EAAE;AACRC,MAAAA,UAAU,EAAE;AADJ,KADe;AAIzBC,IAAAA,cAAc,EAAE;AACdC,MAAAA,UAAU,EAAEJ,KAAK,CAACK,OAAN,CAAcC,IAAd,GAAqB,CADnB;AAEdC,MAAAA,KAAK,EAAE;AAFO;AAJS,GAAZ;AAAA,CAAf;;AAUO,IAAMC,QAAQ,GAAG,wBAAWT,MAAX,EACtB,gBAaM;AAAA,MAZJU,gBAYI,QAZJA,gBAYI;AAAA,MAXJC,OAWI,QAXJA,OAWI;AAAA,MAVJC,QAUI,QAVJA,QAUI;AAAA,MATJC,MASI,QATJA,MASI;AAAA,MARJC,YAQI,QARJA,YAQI;AAAA,MAPJC,QAOI,QAPJA,QAOI;AAAA,MANJC,WAMI,QANJA,WAMI;AAAA,MALJC,UAKI,QALJA,UAKI;AAAA,MAJJC,aAII,QAJJA,aAII;AAAA,MAHJC,cAGI,QAHJA,cAGI;AAAA,MAFJC,kBAEI,QAFJA,kBAEI;AAAA,gCADHC,aACG;AAAA,MADHA,aACG,mCADa,EACb;AACJ,sBACE;AACE,IAAA,KAAK,EAAE;AACLlB,MAAAA,UAAU,cAAOO,gBAAgB,GAAG,CAA1B,CADL;AAELF,MAAAA,KAAK,EAAE;AAFF;AADT,kBAME,gCAAC,wBAAD;AAAgB,IAAA,KAAK,EAAC,WAAtB;AAAkC,IAAA,SAAS,EAAEG,OAAO,CAACP;AAArD,kBACE,gCAAC,0BAAD;AACE,IAAA,QAAQ,EAAEQ,QADZ;AAEE,IAAA,MAAM,EAAEC,MAFV;AAGE,IAAA,QAAQ,EAAEE,QAHZ;AAIE,IAAA,YAAY,EAAED,YAJhB;AAKE,IAAA,QAAQ,EAAE,KALZ;AAME,IAAA,WAAW,EAAEE,WANf;AAOE,IAAA,UAAU,EAAEC,UAPd;AAQE,IAAA,aAAa,EAAEC,aARjB;AASE,IAAA,cAAc,EAAEC,cATlB;AAUE,IAAA,kBAAkB,EAAEC,kBAVtB;AAWE,IAAA,uBAAuB,EAAE,CAAC;AAAEE,MAAAA,QAAQ,EAAE;AAAZ,KAAD,EAA0B;AAAEA,MAAAA,QAAQ,EAAE;AAAZ,KAA1B,CAX3B;AAYE,IAAA,aAAa,EAAED;AAZjB,IADF,CANF,CADF;AAyBD,CAxCqB,CAAjB","sourcesContent":["import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport {EditableHtml} from '@pie-lib/pie-toolbox/editable-html';\nimport { InputContainer } from '@pie-lib/pie-toolbox/render-ui';\n\nconst styles = (theme) => ({\n rowLabel: {\n gridColumn: '1/3',\n },\n rowLabelHolder: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%',\n },\n});\n\nexport const RowLabel = withStyles(styles)(\n ({\n categoriesPerRow,\n classes,\n disabled,\n markup,\n imageSupport,\n onChange,\n toolbarOpts,\n spellCheck,\n maxImageWidth,\n maxImageHeight,\n uploadSoundSupport,\n mathMlOptions = {}\n }) => {\n return (\n <div\n style={{\n gridColumn: `1/${categoriesPerRow + 1}`,\n width: '100%',\n }}\n >\n <InputContainer label=\"Row Label\" className={classes.rowLabelHolder}>\n <EditableHtml\n disabled={disabled}\n markup={markup}\n onChange={onChange}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n maxImageWidth={maxImageWidth}\n maxImageHeight={maxImageHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </InputContainer>\n </div>\n );\n },\n);\n"],"file":"RowLabel.js"}
@@ -33,7 +33,7 @@ var _configUi = require("@pie-lib/pie-toolbox/config-ui");
33
33
 
34
34
  var _categorize = require("@pie-lib/pie-toolbox/categorize");
35
35
 
36
- var _editableHtml = _interopRequireDefault(require("@pie-lib/pie-toolbox/editable-html"));
36
+ var _editableHtml = require("@pie-lib/pie-toolbox/editable-html");
37
37
 
38
38
  var _drag = require("@pie-lib/pie-toolbox/drag");
39
39
 
@@ -346,7 +346,7 @@ var Design = /*#__PURE__*/function (_React$Component) {
346
346
  }, teacherInstructionsEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
347
347
  label: teacherInstructions.label,
348
348
  className: classes.inputContainer
349
- }, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
349
+ }, /*#__PURE__*/_react["default"].createElement(_editableHtml.EditableHtml, {
350
350
  className: classes.input,
351
351
  markup: model.teacherInstructions || '',
352
352
  onChange: this.changeTeacherInstructions,
@@ -366,7 +366,7 @@ var Design = /*#__PURE__*/function (_React$Component) {
366
366
  })), promptEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
367
367
  label: prompt.label,
368
368
  className: classes.inputContainer
369
- }, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
369
+ }, /*#__PURE__*/_react["default"].createElement(_editableHtml.EditableHtml, {
370
370
  className: classes.input,
371
371
  markup: model.prompt || '',
372
372
  onChange: this.onPromptChanged,
@@ -439,7 +439,7 @@ var Design = /*#__PURE__*/function (_React$Component) {
439
439
  }), rationaleEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
440
440
  label: rationale.label,
441
441
  className: classes.inputContainer
442
- }, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
442
+ }, /*#__PURE__*/_react["default"].createElement(_editableHtml.EditableHtml, {
443
443
  className: classes.input,
444
444
  markup: model.rationale || '',
445
445
  onChange: this.changeRationale,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/design/index.jsx"],"names":["translator","Translator","dropdown","settings","Panel","toggle","radio","numberField","IdProvider","uid","Provider","Design","props","model","onChange","updatedModel","choices","map","c","categoryCount","checkAllowMultiplePlacements","allowMultiplePlacementsEnabled","correctResponse","categories","id","label","h","content","maxChoicesPerCategory","allowMaxChoicesPerCategory","rationale","teacherInstructions","feedback","updateModel","cr","alternateResponses","prompt","index","filter","alt","altIndex","choice","allowMultiplePlacements","multiplePlacements","enabled","disabled","maxChoices","generateId","classes","configuration","imageSupport","uploadSoundSupport","onConfigurationChanged","allowAlternate","categoriesPerRow","choicesPosition","contentDimensions","lockChoiceOrder","maxImageHeight","maxImageWidth","maxPlacements","minCategoriesPerRow","partialScoring","scoringType","settingsPanelDisabled","spellCheck","studentInstructions","withRubric","mathMlOptions","language","languageChoices","allowAlternateEnabled","feedbackEnabled","promptEnabled","rationaleEnabled","spellCheckEnabled","teacherInstructionsEnabled","toolbarEditorPosition","toolbarOpts","position","config","columns","correctResponseCount","countChoiceInCorrectResponse","defaultImageMaxWidth","defaultImageMaxHeight","panelSettings","min","max","perChoice","options","panelProperties","studentInstructionsEnabled","rubricEnabled","isOpened","isAlertModalOpened","alertMaxChoicesMsg","t","lng","Settings","Properties","onAlertModalCancel","inputContainer","input","changeTeacherInstructions","onPromptChanged","alternatesHeader","onAddAlternateResponse","categoriesList","onRemoveAlternateResponse","changeRationale","changeFeedback","React","Component","PropTypes","object","isRequired","className","string","func","shape","add","styles","theme","marginBottom","spacing","unit","text","paddingTop","paddingBottom","width","title"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;;;;;;;;;AAEA,IAAQA,UAAR,GAAuBC,sBAAvB,CAAQD,UAAR;AACA,IAAQE,QAAR,GAAwDC,kBAAxD,CAAQD,QAAR;AAAA,IAAkBE,KAAlB,GAAwDD,kBAAxD,CAAkBC,KAAlB;AAAA,IAAyBC,MAAzB,GAAwDF,kBAAxD,CAAyBE,MAAzB;AAAA,IAAiCC,KAAjC,GAAwDH,kBAAxD,CAAiCG,KAAjC;AAAA,IAAwCC,WAAxC,GAAwDJ,kBAAxD,CAAwCI,WAAxC;AACA,IAAkBC,UAAlB,GAAiCC,SAAjC,CAAQC,QAAR;;IAEaC,M;;;;;AAmBX,kBAAYC,MAAZ,EAAmB;AAAA;;AAAA;AACjB,8BAAMA,MAAN;AADiB,oGAKL,UAACA,KAAD,EAAW;AACvB,wBAA4B,MAAKA,KAAjC;AAAA,UAAQC,KAAR,eAAQA,KAAR;AAAA,UAAeC,QAAf,eAAeA,QAAf;;AAEA,UAAMC,YAAY,mCACbF,KADa,GAEbD,KAFa,CAAlB;;AAKAG,MAAAA,YAAY,CAACC,OAAb,GAAuBD,YAAY,CAACC,OAAb,CAAqBC,GAArB,CAAyB,UAACC,CAAD;AAAA,+CAC3CA,CAD2C;AAE9CC,UAAAA,aAAa,EAAE,MAAKC,4BAAL,CAAkCL,YAAY,CAACM,8BAA/C,EAA+EH,CAA/E;AAF+B;AAAA,OAAzB,CAAvB,CARuB,CAavB;;AACAH,MAAAA,YAAY,CAACO,eAAb,GAA+B,8CAC7BP,YAAY,CAACO,eAAb,IAAgC,EADH,EAE7BP,YAAY,CAACC,OAFgB,CAA/B,CAduB,CAmBvB;;AACAD,MAAAA,YAAY,CAACO,eAAb,GAA+B,iDAC7BP,YAAY,CAACO,eAAb,IAAgC,EADH,EAE7BP,YAAY,CAACC,OAFgB,CAA/B,CApBuB,CAyBvB;;AACAD,MAAAA,YAAY,CAACQ,UAAb,GAA0BR,YAAY,CAACQ,UAAb,CAAwBN,GAAxB,CAA4B,UAACC,CAAD;AAAA,eAAQ;AAC5DM,UAAAA,EAAE,EAAEN,CAAC,CAACM,EADsD;AAE5DC,UAAAA,KAAK,EAAEP,CAAC,CAACO;AAFmD,SAAR;AAAA,OAA5B,CAA1B;AAKAV,MAAAA,YAAY,CAACC,OAAb,GAAuBD,YAAY,CAACC,OAAb,CAAqBC,GAArB,CAAyB,UAACS,CAAD;AAAA,eAAQ;AACtDF,UAAAA,EAAE,EAAEE,CAAC,CAACF,EADgD;AAEtDG,UAAAA,OAAO,EAAED,CAAC,CAACC,OAF2C;AAGtDR,UAAAA,aAAa,EAAEO,CAAC,CAACP;AAHqC,SAAR;AAAA,OAAzB,CAAvB,CA/BuB,CAqCvB;;AACAJ,MAAAA,YAAY,CAACa,qBAAb,GAAqCb,YAAY,CAACc,0BAAb,GAA0Cd,YAAY,CAACa,qBAAvD,GAA+E,CAApH;AAEAd,MAAAA,QAAQ,CAACC,YAAD,CAAR;AACD,KA9CkB;AAAA,wGAgDD,UAACe,SAAD,EAAe;AAC/B,yBAA4B,MAAKlB,KAAjC;AAAA,UAAQC,KAAR,gBAAQA,KAAR;AAAA,UAAeC,QAAf,gBAAeA,QAAf;AAEAA,MAAAA,QAAQ,iCACHD,KADG;AAENiB,QAAAA,SAAS,EAATA;AAFM,SAAR;AAID,KAvDkB;AAAA,kHAyDS,UAACC,mBAAD,EAAyB;AACnD,yBAA4B,MAAKnB,KAAjC;AAAA,UAAQC,KAAR,gBAAQA,KAAR;AAAA,UAAeC,QAAf,gBAAeA,QAAf;AAEAA,MAAAA,QAAQ,iCACHD,KADG;AAENkB,QAAAA,mBAAmB,EAAnBA;AAFM,SAAR;AAID,KAhEkB;AAAA,uGAkEF,UAACC,QAAD,EAAc;AAC7B,YAAKC,WAAL,CAAiB;AAAED,QAAAA,QAAQ,EAARA;AAAF,OAAjB;AACD,KApEkB;AAAA,+GAsEM,YAAM;AAC7B,UACWV,eADX,GAEI,MAAKV,KAFT,CACEC,KADF,CACWS,eADX;;AAIA,YAAKW,WAAL,CAAiB;AACfX,QAAAA,eAAe,EAAE,CAACA,eAAe,IAAI,EAApB,EAAwBL,GAAxB,CAA4B,UAACiB,EAAD;AAAA,iDACxCA,EADwC;AAE3CC,YAAAA,kBAAkB,gDAAOD,EAAE,CAACC,kBAAH,IAAyB,EAAhC,IAAqC,EAArC;AAFyB;AAAA,SAA5B;AADF,OAAjB;AAMD,KAjFkB;AAAA,wGAmFD,UAACC,MAAD;AAAA,aAAY,MAAKH,WAAL,CAAiB;AAAEG,QAAAA,MAAM,EAANA;AAAF,OAAjB,CAAZ;AAAA,KAnFC;AAAA,kHAqFS,UAACC,KAAD,EAAW;AACrC,UACWf,eADX,GAEI,MAAKV,KAFT,CACEC,KADF,CACWS,eADX;;AAIA,YAAKW,WAAL,CAAiB;AACfX,QAAAA,eAAe,EAAE,CAACA,eAAe,IAAI,EAApB,EAAwBL,GAAxB,CAA4B,UAACiB,EAAD;AAAA,iDACxCA,EADwC;AAE3CC,YAAAA,kBAAkB,EAAE,CAACD,EAAE,CAACC,kBAAH,IAAyB,EAA1B,EAA8BG,MAA9B,CAAqC,UAACC,GAAD,EAAMC,QAAN;AAAA,qBAAmBA,QAAQ,KAAKH,KAAhC;AAAA,aAArC;AAFuB;AAAA,SAA5B;AADF,OAAjB;AAMD,KAhGkB;AAAA,qHAkGY,UAACI,MAAD,EAAY;AACzC,UAAQ5B,KAAR,GAAkB,MAAKD,KAAvB,CAAQC,KAAR;AAEA,aAAO,+BAAc4B,MAAM,CAACjB,EAArB,EAAyBX,KAAK,CAACS,eAA/B,CAAP;AACD,KAtGkB;AAAA,qHAwGY,UAACoB,uBAAD,EAA0BxB,CAA1B,EAAgC;AAC7D,UAAIwB,uBAAuB,KAAKC,0BAAmBC,OAAnD,EAA4D;AAC1D,eAAO,CAAP;AACD;;AAED,UAAIF,uBAAuB,KAAKC,0BAAmBE,QAAnD,EAA6D;AAC3D,eAAO,CAAP;AACD;;AAED,aAAO3B,CAAC,CAACC,aAAF,IAAmB,CAA1B;AACD,KAlHkB;AAAA,2GAoHE,YAAM;AACzB,UAAQN,KAAR,GAAkB,MAAKD,KAAvB,CAAQC,KAAR;;AACA,iBAAsCA,KAAK,IAAI,EAA/C;AAAA,uCAAQe,qBAAR;AAAA,UAAQA,qBAAR,sCAAgC,CAAhC;;AACA,UAAMkB,UAAU,GAAG,kCAAsBjC,KAAtB,CAAnB,CAHyB,CAIzB;;AACA,aAAOe,qBAAqB,KAAK,CAA1B,GAA8BkB,UAAU,GAAGlB,qBAA3C,GAAmE,KAA1E;AACD,KA1HkB;AAAA,2GA4HE,YAAM;AACzB,UAAQf,KAAR,GAAkB,MAAKD,KAAvB,CAAQC,KAAR;AACA,UAAMiC,UAAU,GAAG,kCAAsBjC,KAAtB,CAAnB;;AACA,YAAKoB,WAAL,CAAiB;AAAEL,QAAAA,qBAAqB,EAAEkB;AAAzB,OAAjB;AACD,KAhIkB;AAEjB,UAAKrC,GAAL,GAAWG,MAAK,CAACH,GAAN,IAAaA,UAAIsC,UAAJ,EAAxB;AAFiB;AAGlB;;;;WAgID,kBAAS;AAAA;;AACP,yBAAoG,KAAKnC,KAAzG;AAAA,UAAQoC,OAAR,gBAAQA,OAAR;AAAA,UAAiBC,aAAjB,gBAAiBA,aAAjB;AAAA,UAAgCC,YAAhC,gBAAgCA,YAAhC;AAAA,UAA8CrC,KAA9C,gBAA8CA,KAA9C;AAAA,UAAqDsC,kBAArD,gBAAqDA,kBAArD;AAAA,UAAyEC,sBAAzE,gBAAyEA,sBAAzE;;AACA,kBAwBIH,aAAa,IAAI,EAxBrB;AAAA,wCACEP,uBADF;AAAA,UACEA,uBADF,sCAC4B,EAD5B;AAAA,uCAEEW,cAFF;AAAA,UAEEA,cAFF,qCAEmB,EAFnB;AAAA,wCAGEC,gBAHF;AAAA,UAGEA,gBAHF,sCAGqB,EAHrB;AAAA,wCAIEC,eAJF;AAAA,UAIEA,eAJF,sCAIoB,EAJpB;AAAA,wCAKEC,iBALF;AAAA,UAKEA,iBALF,sCAKsB,EALtB;AAAA,iCAMExB,QANF;AAAA,UAMEA,QANF,+BAMa,EANb;AAAA,wCAOEyB,eAPF;AAAA,UAOEA,eAPF,sCAOoB,EAPpB;AAAA,uCAQEC,cARF;AAAA,UAQEA,cARF,qCAQmB,EARnB;AAAA,sCASEC,aATF;AAAA,UASEA,aATF,oCASkB,EATlB;AAAA,sCAUEC,aAVF;AAAA,UAUEA,aAVF,oCAUkB,EAVlB;AAAA,wCAWEC,mBAXF;AAAA,UAWEA,mBAXF,sCAWwB,CAXxB;AAAA,uCAYEC,cAZF;AAAA,UAYEA,cAZF,qCAYmB,EAZnB;AAAA,+BAaE1B,MAbF;AAAA,UAaEA,MAbF,6BAaW,EAbX;AAAA,kCAcEN,SAdF;AAAA,UAcEA,SAdF,gCAcc,EAdd;AAAA,oCAeEiC,WAfF;AAAA,UAeEA,WAfF,kCAegB,EAfhB;AAAA,UAgBEC,qBAhBF,SAgBEA,qBAhBF;AAAA,mCAiBEC,UAjBF;AAAA,UAiBEA,UAjBF,iCAiBe,EAjBf;AAAA,wCAkBEC,mBAlBF;AAAA,UAkBEA,mBAlBF,sCAkBwB,EAlBxB;AAAA,wCAmBEnC,mBAnBF;AAAA,UAmBEA,mBAnBF,sCAmBwB,EAnBxB;AAAA,mCAoBEoC,UApBF;AAAA,UAoBEA,UApBF,iCAoBe,EApBf;AAAA,sCAqBEC,aArBF;AAAA,UAqBEA,aArBF,oCAqBkB,EArBlB;AAAA,iCAsBEC,QAtBF;AAAA,UAsBEA,QAtBF,+BAsBa,EAtBb;AAAA,wCAuBEC,eAvBF;AAAA,UAuBEA,eAvBF,sCAuBoB,EAvBpB;;AAyBA,kBAUIzD,KAAK,IAAI,EAVb;AAAA,UACE0D,qBADF,SACEA,qBADF;AAAA,UAEE1C,0BAFF,SAEEA,0BAFF;AAAA,UAGE2C,eAHF,SAGEA,eAHF;AAAA,UAIE5C,qBAJF,SAIEA,qBAJF;AAAA,UAKE6C,aALF,SAKEA,aALF;AAAA,UAMEC,gBANF,SAMEA,gBANF;AAAA,UAOEC,iBAPF,SAOEA,iBAPF;AAAA,UAQEC,0BARF,SAQEA,0BARF;AAAA,UASEC,qBATF,SASEA,qBATF;;AAYA,UAAMC,WAAW,GAAG;AAClBC,QAAAA,QAAQ,EAAEF,qBAAqB,KAAK,KAA1B,GAAkC,KAAlC,GAA0C;AADlC,OAApB;AAIA,UAAMG,MAAM,GAAGnE,KAAK,CAACmE,MAAN,IAAgB,EAA/B;AACAA,MAAAA,MAAM,CAAChE,OAAP,GAAiBgE,MAAM,CAAChE,OAAP,IAAkB;AAAES,QAAAA,KAAK,EAAE,EAAT;AAAawD,QAAAA,OAAO,EAAE;AAAtB,OAAnC;AAEA,UAAM1D,UAAU,GAAG,8BAAgBV,KAAK,CAACU,UAAN,IAAoB,EAApC,EAAwCV,KAAK,CAACG,OAAN,IAAiB,EAAzD,EAA6DH,KAAK,CAACS,eAAN,IAAyB,EAAtF,CAAnB;AAEA,UAAMa,kBAAkB,GAAG,sCACzBtB,KAAK,CAACU,UAAN,IAAoB,EADK,EAEzBV,KAAK,CAACG,OAAN,IAAiB,EAFQ,EAGzBH,KAAK,CAACS,eAAN,IAAyB,EAHA,CAA3B;AAMA,UAAMN,OAAO,GAAGH,KAAK,CAACG,OAAN,CAAcC,GAAd,CAAkB,UAACC,CAAD,EAAO;AACvCA,QAAAA,CAAC,CAACgE,oBAAF,GAAyB,MAAI,CAACC,4BAAL,CAAkCjE,CAAlC,CAAzB;AAEA,eAAOA,CAAP;AACD,OAJe,CAAhB;AAMA,UAAMkE,oBAAoB,GAAGzB,aAAa,IAAIA,aAAa,CAACvB,MAA5D;AACA,UAAMiD,qBAAqB,GAAG3B,cAAc,IAAIA,cAAc,CAACtB,MAA/D;AAEA,UAAMkD,aAAa,GAAG;AACpBxB,QAAAA,cAAc,EAAEA,cAAc,CAAC3D,QAAf,IAA2BE,MAAM,CAACyD,cAAc,CAACrC,KAAhB,CAD7B;AAEpBgC,QAAAA,eAAe,EAAEA,eAAe,CAACtD,QAAhB,IAA4BE,MAAM,CAACoD,eAAe,CAAChC,KAAjB,CAF/B;AAGpB6B,QAAAA,gBAAgB,EACdA,gBAAgB,CAACnD,QAAjB,IACAI,WAAW,CAAC+C,gBAAgB,CAAC7B,KAAlB,EAAyB;AAClCA,UAAAA,KAAK,EAAE6B,gBAAgB,CAAC7B,KADU;AAElC8D,UAAAA,GAAG,EAAE1B,mBAF6B;AAGlC2B,UAAAA,GAAG,EAAE;AAH6B,SAAzB,CALO;AAUpBjC,QAAAA,eAAe,EAAEA,eAAe,CAACpD,QAAhB,IAA4BG,KAAK,CAACiD,eAAe,CAAC9B,KAAjB,EAAwB,CAAC,OAAD,EAAU,OAAV,EAAmB,MAAnB,EAA2B,OAA3B,CAAxB,CAV9B;AAWpBJ,QAAAA,8BAA8B,EAC5BqB,uBAAuB,CAACvC,QAAxB,IACAD,QAAQ,CAACwC,uBAAuB,CAACjB,KAAzB,EAAgC,CACtCkB,0BAAmBC,OADmB,EAEtCD,0BAAmBE,QAFmB,EAGtCF,0BAAmB8C,SAHmB,CAAhC,CAbU;AAkBpB5D,QAAAA,0BAA0B,EAAE+B,aAAa,CAACzD,QAAd,IAA0BE,MAAM,CAACuD,aAAa,CAACnC,KAAf,CAlBxC;AAmBpBG,QAAAA,qBAAqB,EACnBC,0BAA0B,KAAK,IAA/B,IACAtB,WAAW,CAACqD,aAAa,CAACnC,KAAf,EAAsB;AAC/BA,UAAAA,KAAK,EAAE,EADwB;AAE/B8D,UAAAA,GAAG,EAAE,CAF0B;AAG/BC,UAAAA,GAAG,EAAE;AAH0B,SAAtB,CArBO;AA0BpBf,QAAAA,aAAa,EAAErC,MAAM,CAACjC,QAAP,IAAmBE,MAAM,CAAC+B,MAAM,CAACX,KAAR,CA1BpB;AA2BpB+C,QAAAA,eAAe,EAAExC,QAAQ,CAAC7B,QAAT,IAAqBE,MAAM,CAAC2B,QAAQ,CAACP,KAAV,CA3BxB;AA4BpB;AACA;AACA,4BAAoB4C,QAAQ,CAAClE,QAAT,IAAqBE,MAAM,CAACgE,QAAQ,CAAC5C,KAAV,EAAiB,IAAjB,CA9B3B;AA+BpB4C,QAAAA,QAAQ,EAAEA,QAAQ,CAAClE,QAAT,IAAqBkE,QAAQ,CAACzB,OAA9B,IAAyC1C,QAAQ,CAACoE,eAAe,CAAC7C,KAAjB,EAAwB6C,eAAe,CAACoB,OAAxC;AA/BvC,OAAtB;AAkCA,UAAMC,eAAe,GAAG;AACtBf,QAAAA,0BAA0B,EAAE7C,mBAAmB,CAAC5B,QAApB,IAAgCE,MAAM,CAAC0B,mBAAmB,CAACN,KAArB,CAD5C;AAEtBmE,QAAAA,0BAA0B,EAAE1B,mBAAmB,CAAC/D,QAApB,IAAgCE,MAAM,CAAC6D,mBAAmB,CAACzC,KAArB,CAF5C;AAGtBiD,QAAAA,gBAAgB,EAAE5C,SAAS,CAAC3B,QAAV,IAAsBE,MAAM,CAACyB,SAAS,CAACL,KAAX,CAHxB;AAItBkD,QAAAA,iBAAiB,EAAEV,UAAU,CAAC9D,QAAX,IAAuBE,MAAM,CAAC4D,UAAU,CAACxC,KAAZ,CAJ1B;AAKtBsC,QAAAA,WAAW,EAAEA,WAAW,CAAC5D,QAAZ,IAAwBG,KAAK,CAACyD,WAAW,CAACtC,KAAb,EAAoB,CAAC,MAAD,EAAS,QAAT,CAApB,CALpB;AAMtBoE,QAAAA,aAAa,EAAE,CAAA1B,UAAU,SAAV,IAAAA,UAAU,WAAV,YAAAA,UAAU,CAAEhE,QAAZ,KAAwBE,MAAM,CAAC8D,UAAD,aAACA,UAAD,uBAACA,UAAU,CAAE1C,KAAb;AANvB,OAAxB;AASA,UAAMqE,QAAQ,GAAG,KAAKC,kBAAL,EAAjB;AACA,UAAMC,kBAAkB,GAAGhG,UAAU,CAACiG,CAAX,CAAa,yDAAb,EAAwE;AAACC,QAAAA,GAAG,EAAErF,KAAK,CAACwD,QAAZ;AAAsBzC,QAAAA,qBAAqB,EAArBA;AAAtB,OAAxE,CAA3B;AAEA,0BACE,gCAAC,UAAD;AAAY,QAAA,KAAK,EAAE,KAAKnB;AAAxB,sBACE,gCAAC,gBAAD,CAAQ,YAAR;AACE,QAAA,UAAU,EAAE+C,iBADd;AAEE,QAAA,YAAY,EAAEQ,qBAFhB;AAGE,QAAA,QAAQ,eACN,gCAAC,KAAD;AACE,UAAA,KAAK,EAAEnD,KADT;AAEE,UAAA,aAAa,EAAE,KAAKoB,WAFtB;AAGE,UAAA,aAAa,EAAEgB,aAHjB;AAIE,UAAA,qBAAqB,EAAEG,sBAJzB;AAKE,UAAA,MAAM,EAAE;AACN+C,YAAAA,QAAQ,EAAEb,aADJ;AAENc,YAAAA,UAAU,EAAET;AAFN,WALV;AASE,UAAA,KAAK,eAAE,gCAAC,qBAAD;AACH,YAAA,KAAK,EAAE,SADJ;AAEH,YAAA,IAAI,EAAEK,kBAFH;AAGH,YAAA,IAAI,EAAEF,QAHH;AAIH,YAAA,OAAO,EAAE,KAAKO;AAJX;AATT;AAJJ,SAsBGzB,0BAA0B,iBACzB,gCAAC,wBAAD;AAAgB,QAAA,KAAK,EAAE7C,mBAAmB,CAACN,KAA3C;AAAkD,QAAA,SAAS,EAAEuB,OAAO,CAACsD;AAArE,sBACE,gCAAC,wBAAD;AACE,QAAA,SAAS,EAAEtD,OAAO,CAACuD,KADrB;AAEE,QAAA,MAAM,EAAE1F,KAAK,CAACkB,mBAAN,IAA6B,EAFvC;AAGE,QAAA,QAAQ,EAAE,KAAKyE,yBAHjB;AAIE,QAAA,YAAY,EAAEtD,YAJhB;AAKE,QAAA,QAAQ,EAAE,KALZ;AAME,QAAA,WAAW,EAAE4B,WANf;AAOE,QAAA,UAAU,EAAEH,iBAPd;AAQE,QAAA,aAAa,EAAGhB,aAAa,IAAIA,aAAa,CAAC5B,mBAAhC,IAAwDqD,oBARzE;AASE,QAAA,cAAc,EAAG1B,cAAc,IAAIA,cAAc,CAAC3B,mBAAlC,IAA0DsD,qBAT5E;AAUE,QAAA,kBAAkB,EAAElC,kBAVtB;AAWE,QAAA,uBAAuB,EAAE,CAAC;AAAEkB,UAAAA,QAAQ,EAAE;AAAZ,SAAD,EAA0B;AAAEA,UAAAA,QAAQ,EAAE;AAAZ,SAA1B,CAX3B;AAYE,QAAA,aAAa,EAAED;AAZjB,QADF,CAvBJ,EAyCGK,aAAa,iBACZ,gCAAC,wBAAD;AAAgB,QAAA,KAAK,EAAErC,MAAM,CAACX,KAA9B;AAAqC,QAAA,SAAS,EAAEuB,OAAO,CAACsD;AAAxD,sBACE,gCAAC,wBAAD;AACE,QAAA,SAAS,EAAEtD,OAAO,CAACuD,KADrB;AAEE,QAAA,MAAM,EAAE1F,KAAK,CAACuB,MAAN,IAAgB,EAF1B;AAGE,QAAA,QAAQ,EAAE,KAAKqE,eAHjB;AAIE,QAAA,YAAY,EAAEvD,YAJhB;AAKE,QAAA,QAAQ,EAAE,KALZ;AAME,QAAA,gBAAgB,MANlB;AAOE,QAAA,WAAW,EAAE4B,WAPf;AAQE,QAAA,UAAU,EAAEH,iBARd;AASE,QAAA,aAAa,EAAEhB,aAAa,IAAIA,aAAa,CAACvB,MAThD;AAUE,QAAA,cAAc,EAAEsB,cAAc,IAAIA,cAAc,CAACtB,MAVnD;AAWE,QAAA,kBAAkB,EAAEe,kBAXtB;AAYE,QAAA,uBAAuB,EAAE,CAAC;AAAEkB,UAAAA,QAAQ,EAAE;AAAZ,SAAD,EAA0B;AAAEA,UAAAA,QAAQ,EAAE;AAAZ,SAA1B,CAZ3B;AAaE,QAAA,aAAa,EAAED;AAbjB,QADF,CA1CJ,eA6DE,gCAAC,sBAAD;AACE,QAAA,YAAY,EAAElB,YADhB;AAEE,QAAA,kBAAkB,EAAEC,kBAFtB;AAGE,QAAA,KAAK,EAAEtC,KAHT;AAIE,QAAA,UAAU,EAAEU,UAAU,IAAI,EAJ5B;AAKE,QAAA,cAAc,EAAE,KAAKU,WALvB;AAME,QAAA,WAAW,EAAE6C,WANf;AAOE,QAAA,UAAU,EAAEH,iBAPd;AAQE,QAAA,aAAa,EAAE1B,aARjB;AASE,QAAA,oBAAoB,EAAEmC,oBATxB;AAUE,QAAA,qBAAqB,EAAEC,qBAVzB;AAWE,QAAA,aAAa,EAAEjB;AAXjB,QA7DF,eA2EE,gCAAC,mBAAD;AACE,QAAA,YAAY,EAAElB,YADhB;AAEE,QAAA,kBAAkB,EAAEC,kBAFtB;AAGE,QAAA,OAAO,EAAEnC,OAHX;AAIE,QAAA,KAAK,EAAEH,KAJT;AAKE,QAAA,cAAc,EAAE,KAAKoB,WALvB;AAME,QAAA,WAAW,EAAE6C,WANf;AAOE,QAAA,UAAU,EAAEH,iBAPd;AAQE,QAAA,aAAa,EAAE1B,aARjB;AASE,QAAA,oBAAoB,EAAEmC,oBATxB;AAUE,QAAA,qBAAqB,EAAEC;AAVzB,QA3EF,EAwFGd,qBAAqB,iBACpB,gCAAC,kBAAD;AACE,QAAA,SAAS,EAAEvB,OAAO,CAAC0D,gBADrB;AAEE,QAAA,KAAK,EAAC,qBAFR;AAGE,QAAA,WAAW,EAAC,2BAHd;AAIE,QAAA,KAAK,EAAE,KAAKC;AAJd,QAzFJ,EAgGGpC,qBAAqB,IACpBpC,kBAAkB,CAAClB,GAAnB,CAAuB,UAAC2F,cAAD,EAAiBvE,KAAjB,EAA2B;AAChD,4BACE,gCAAC,iBAAD,CAAO,QAAP;AAAgB,UAAA,GAAG,EAAEA;AAArB,wBACE,gCAAC,kBAAD;AACE,UAAA,SAAS,EAAEW,OAAO,CAAC0D,gBADrB;AAEE,UAAA,OAAO,EAAE,WAFX;AAGE,UAAA,KAAK,EAAC,oBAHR;AAIE,UAAA,WAAW,EAAC,2BAJd;AAKE,UAAA,KAAK,EAAE;AAAA,mBAAM,MAAI,CAACG,yBAAL,CAA+BxE,KAA/B,CAAN;AAAA;AALT,UADF,eAQE,gCAAC,8BAAD;AACE,UAAA,QAAQ,EAAEA,KADZ;AAEE,UAAA,YAAY,EAAEa,YAFhB;AAGE,UAAA,KAAK,EAAErC,KAHT;AAIE,UAAA,aAAa,EAAEoC,aAJjB;AAKE,UAAA,UAAU,EAAE2D,cALd;AAME,UAAA,cAAc,EAAE,MAAI,CAAC3E,WANvB;AAOE,UAAA,kBAAkB,EAAEkB,kBAPtB;AAQE,UAAA,WAAW,EAAE2B,WARf;AASE,UAAA,oBAAoB,EAAEM,oBATxB;AAUE,UAAA,qBAAqB,EAAEC,qBAVzB;AAWE,UAAA,aAAa,EAAEjB;AAXjB,UARF,CADF;AAwBD,OAzBD,CAjGJ,EA4HGM,gBAAgB,iBACf,gCAAC,wBAAD;AAAgB,QAAA,KAAK,EAAE5C,SAAS,CAACL,KAAjC;AAAwC,QAAA,SAAS,EAAEuB,OAAO,CAACsD;AAA3D,sBACE,gCAAC,wBAAD;AACE,QAAA,SAAS,EAAEtD,OAAO,CAACuD,KADrB;AAEE,QAAA,MAAM,EAAE1F,KAAK,CAACiB,SAAN,IAAmB,EAF7B;AAGE,QAAA,QAAQ,EAAE,KAAKgF,eAHjB;AAIE,QAAA,YAAY,EAAE5D,YAJhB;AAKE,QAAA,QAAQ,EAAE,KALZ;AAME,QAAA,WAAW,EAAE4B,WANf;AAOE,QAAA,UAAU,EAAEH,iBAPd;AAQE,QAAA,aAAa,EAAGhB,aAAa,IAAIA,aAAa,CAAC7B,SAAhC,IAA8CsD,oBAR/D;AASE,QAAA,cAAc,EAAG1B,cAAc,IAAIA,cAAc,CAAC5B,SAAlC,IAAgDuD,qBATlE;AAUE,QAAA,kBAAkB,EAAElC,kBAVtB;AAWE,QAAA,uBAAuB,EAAE,CAAC;AAAEkB,UAAAA,QAAQ,EAAE;AAAZ,SAAD,EAA0B;AAAEA,UAAAA,QAAQ,EAAE;AAAZ,SAA1B,CAX3B;AAYE,QAAA,aAAa,EAAED;AAZjB,QADF,CA7HJ,EA+IGI,eAAe,iBACd,gCAAC,wBAAD;AAAgB,QAAA,QAAQ,EAAE3D,KAAK,CAACmB,QAAhC;AAA0C,QAAA,QAAQ,EAAE,KAAK+E,cAAzD;AAAyE,QAAA,WAAW,EAAEjC;AAAtF,QAhJJ,CADF,CADF;AAuJD;;;EA1ZyBkC,kBAAMC,S;;;iCAArBtG,M,eACQ;AACjBqC,EAAAA,OAAO,EAAEkE,sBAAUC,MAAV,CAAiBC,UADT;AAEjBnE,EAAAA,aAAa,EAAEiE,sBAAUC,MAFR;AAGjBE,EAAAA,SAAS,EAAEH,sBAAUI,MAHJ;AAIjBlE,EAAAA,sBAAsB,EAAE8D,sBAAUK,IAJjB;AAKjB1G,EAAAA,KAAK,EAAEqG,sBAAUC,MAAV,CAAiBC,UALP;AAMjBtG,EAAAA,QAAQ,EAAEoG,sBAAUK,IAAV,CAAeH,UANR;AAOjB3G,EAAAA,GAAG,EAAEyG,sBAAUI,MAPE;AAQjBpE,EAAAA,YAAY,EAAEgE,sBAAUM,KAAV,CAAgB;AAC5BC,IAAAA,GAAG,EAAEP,sBAAUK,IAAV,CAAeH,UADQ;AAE5B,cAAQF,sBAAUK,IAAV,CAAeH;AAFK,GAAhB,CARG;AAYjBjE,EAAAA,kBAAkB,EAAE+D,sBAAUM,KAAV,CAAgB;AAClCC,IAAAA,GAAG,EAAEP,sBAAUK,IAAV,CAAeH,UADc;AAElC,cAAQF,sBAAUK,IAAV,CAAeH;AAFW,GAAhB;AAZH,C;;AA4ZrB,IAAMM,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBjB,IAAAA,gBAAgB,EAAE;AAChBkB,MAAAA,YAAY,EAAED,KAAK,CAACE,OAAN,CAAcC,IAAd,GAAqB;AADnB,KADO;AAIzBC,IAAAA,IAAI,EAAE;AACJC,MAAAA,UAAU,EAAEL,KAAK,CAACE,OAAN,CAAcC,IAAd,GAAqB,CAD7B;AAEJG,MAAAA,aAAa,EAAEN,KAAK,CAACE,OAAN,CAAcC,IAAd,GAAqB;AAFhC,KAJmB;AAQzBxB,IAAAA,cAAc,EAAE;AACd4B,MAAAA,KAAK,EAAE,MADO;AAEdF,MAAAA,UAAU,EAAEL,KAAK,CAACE,OAAN,CAAcC,IAAd,GAAqB,CAFnB;AAGdF,MAAAA,YAAY,EAAED,KAAK,CAACE,OAAN,CAAcC,IAAd,GAAqB;AAHrB,KARS;AAazBK,IAAAA,KAAK,EAAE;AACLP,MAAAA,YAAY,EAAED,KAAK,CAACE,OAAN,CAAcC,IAAd,GAAqB;AAD9B;AAbkB,GAAZ;AAAA,CAAf;;eAkBe,2BAAgB,wBAAWJ,MAAX,EAAmB/G,MAAnB,CAAhB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { FeedbackConfig, InputContainer, layout, settings } from '@pie-lib/pie-toolbox/config-ui';\nimport { countInAnswer, ensureNoExtraChoicesInAnswer, ensureNoExtraChoicesInAlternate } from '@pie-lib/pie-toolbox/categorize';\nimport EditableHtml from '@pie-lib/pie-toolbox/editable-html';\nimport { uid, withDragContext } from '@pie-lib/pie-toolbox/drag';\n\nimport Categories from './categories';\nimport AlternateResponses from './categories/alternateResponses';\nimport Choices from './choices';\nimport { buildAlternateResponses, buildCategories } from './builder';\nimport Header from './header';\nimport { getMaxCategoryChoices, multiplePlacements } from '../utils';\nimport { AlertDialog } from '@pie-lib/pie-toolbox/config-ui';\nimport Translator from '@pie-lib/pie-toolbox/translator';\n\nconst { translator } = Translator;\nconst { dropdown, Panel, toggle, radio, numberField } = settings;\nconst { Provider: IdProvider } = uid;\n\nexport class Design extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n configuration: PropTypes.object,\n className: PropTypes.string,\n onConfigurationChanged: PropTypes.func,\n model: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n uid: PropTypes.string,\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 constructor(props) {\n super(props);\n this.uid = props.uid || uid.generateId();\n }\n\n updateModel = (props) => {\n const { model, onChange } = this.props;\n\n const updatedModel = {\n ...model,\n ...props,\n };\n\n updatedModel.choices = updatedModel.choices.map((c) => ({\n ...c,\n categoryCount: this.checkAllowMultiplePlacements(updatedModel.allowMultiplePlacementsEnabled, c),\n }));\n\n //Ensure that there are no extra choices in correctResponse, if the user has decided that only one choice may be used.\n updatedModel.correctResponse = ensureNoExtraChoicesInAnswer(\n updatedModel.correctResponse || [],\n updatedModel.choices,\n );\n\n //Ensure that there are no extra choices in alternate responses, if the user has decided that only one choice may be used.\n updatedModel.correctResponse = ensureNoExtraChoicesInAlternate(\n updatedModel.correctResponse || [],\n updatedModel.choices,\n );\n\n //clean categories\n updatedModel.categories = updatedModel.categories.map((c) => ({\n id: c.id,\n label: c.label,\n }));\n\n updatedModel.choices = updatedModel.choices.map((h) => ({\n id: h.id,\n content: h.content,\n categoryCount: h.categoryCount,\n }));\n\n // ensure that maxChoicesPerCategory is reset if author switch back the corresponding switch (allowMaxChoicesPerCategory)\n updatedModel.maxChoicesPerCategory = updatedModel.allowMaxChoicesPerCategory ? updatedModel.maxChoicesPerCategory : 0;\n\n onChange(updatedModel);\n };\n\n changeRationale = (rationale) => {\n const { model, onChange } = this.props;\n\n onChange({\n ...model,\n rationale,\n });\n };\n\n changeTeacherInstructions = (teacherInstructions) => {\n const { model, onChange } = this.props;\n\n onChange({\n ...model,\n teacherInstructions,\n });\n };\n\n changeFeedback = (feedback) => {\n this.updateModel({ feedback });\n };\n\n onAddAlternateResponse = () => {\n const {\n model: { correctResponse },\n } = this.props;\n\n this.updateModel({\n correctResponse: (correctResponse || []).map((cr) => ({\n ...cr,\n alternateResponses: [...(cr.alternateResponses || []), []],\n })),\n });\n };\n\n onPromptChanged = (prompt) => this.updateModel({ prompt });\n\n onRemoveAlternateResponse = (index) => {\n const {\n model: { correctResponse },\n } = this.props;\n\n this.updateModel({\n correctResponse: (correctResponse || []).map((cr) => ({\n ...cr,\n alternateResponses: (cr.alternateResponses || []).filter((alt, altIndex) => altIndex !== index),\n })),\n });\n };\n\n countChoiceInCorrectResponse = (choice) => {\n const { model } = this.props;\n\n return countInAnswer(choice.id, model.correctResponse);\n };\n\n checkAllowMultiplePlacements = (allowMultiplePlacements, c) => {\n if (allowMultiplePlacements === multiplePlacements.enabled) {\n return 0;\n }\n\n if (allowMultiplePlacements === multiplePlacements.disabled) {\n return 1;\n }\n\n return c.categoryCount || 0;\n };\n\n isAlertModalOpened = () => {\n const { model } = this.props;\n const { maxChoicesPerCategory = 0 } = model || {};\n const maxChoices = getMaxCategoryChoices(model);\n // when maxChoicesPerCategory is set to 0, there is no limit so modal should not be opened\n return maxChoicesPerCategory !== 0 ? maxChoices > maxChoicesPerCategory : false;\n };\n\n onAlertModalCancel = () => {\n const { model } = this.props;\n const maxChoices = getMaxCategoryChoices(model);\n this.updateModel({ maxChoicesPerCategory: maxChoices });\n };\n\n\n render() {\n const { classes, configuration, imageSupport, model, uploadSoundSupport, onConfigurationChanged } = this.props;\n const {\n allowMultiplePlacements = {},\n allowAlternate = {},\n categoriesPerRow = {},\n choicesPosition = {},\n contentDimensions = {},\n feedback = {},\n lockChoiceOrder = {},\n maxImageHeight = {},\n maxImageWidth = {},\n maxPlacements = {},\n minCategoriesPerRow = 1,\n partialScoring = {},\n prompt = {},\n rationale = {},\n scoringType = {},\n settingsPanelDisabled,\n spellCheck = {},\n studentInstructions = {},\n teacherInstructions = {},\n withRubric = {},\n mathMlOptions = {},\n language = {},\n languageChoices = {},\n } = configuration || {};\n const {\n allowAlternateEnabled,\n allowMaxChoicesPerCategory,\n feedbackEnabled,\n maxChoicesPerCategory,\n promptEnabled,\n rationaleEnabled,\n spellCheckEnabled,\n teacherInstructionsEnabled,\n toolbarEditorPosition,\n } = model || {};\n\n const toolbarOpts = {\n position: toolbarEditorPosition === 'top' ? 'top' : 'bottom',\n };\n\n const config = model.config || {};\n config.choices = config.choices || { label: '', columns: 2 };\n\n const categories = buildCategories(model.categories || [], model.choices || [], model.correctResponse || []);\n\n const alternateResponses = buildAlternateResponses(\n model.categories || [],\n model.choices || [],\n model.correctResponse || [],\n );\n\n const choices = model.choices.map((c) => {\n c.correctResponseCount = this.countChoiceInCorrectResponse(c);\n\n return c;\n });\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n const panelSettings = {\n partialScoring: partialScoring.settings && toggle(partialScoring.label),\n lockChoiceOrder: lockChoiceOrder.settings && toggle(lockChoiceOrder.label),\n categoriesPerRow:\n categoriesPerRow.settings &&\n numberField(categoriesPerRow.label, {\n label: categoriesPerRow.label,\n min: minCategoriesPerRow,\n max: 6,\n }),\n choicesPosition: choicesPosition.settings && radio(choicesPosition.label, ['below', 'above', 'left', 'right']),\n allowMultiplePlacementsEnabled:\n allowMultiplePlacements.settings &&\n dropdown(allowMultiplePlacements.label, [\n multiplePlacements.enabled,\n multiplePlacements.disabled,\n multiplePlacements.perChoice,\n ]),\n allowMaxChoicesPerCategory: maxPlacements.settings && toggle(maxPlacements.label),\n maxChoicesPerCategory:\n allowMaxChoicesPerCategory === true &&\n numberField(maxPlacements.label, {\n label: '',\n min: 0,\n max: 30,\n }),\n promptEnabled: prompt.settings && toggle(prompt.label),\n feedbackEnabled: feedback.settings && toggle(feedback.label),\n // PD-2960: deleted temporary from settings panel\n // allowAlternateEnabled: allowAlternate.settings && toggle(allowAlternate.label),\n 'language.enabled': language.settings && toggle(language.label, true),\n language: language.settings && language.enabled && dropdown(languageChoices.label, languageChoices.options),\n };\n\n const panelProperties = {\n teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),\n studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),\n 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 const isOpened = this.isAlertModalOpened();\n const alertMaxChoicesMsg = translator.t('translation:categorize:maxChoicesPerCategoryRestriction', {lng: model.language, maxChoicesPerCategory });\n\n return (\n <IdProvider value={this.uid}>\n <layout.ConfigLayout\n dimensions={contentDimensions}\n hideSettings={settingsPanelDisabled}\n settings={\n <Panel\n model={model}\n onChangeModel={this.updateModel}\n configuration={configuration}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n Settings: panelSettings,\n Properties: panelProperties,\n }}\n modal={<AlertDialog\n title={'Warning'}\n text={alertMaxChoicesMsg}\n open={isOpened}\n onClose={this.onAlertModalCancel}\n />}\n />\n }\n >\n {teacherInstructionsEnabled && (\n <InputContainer label={teacherInstructions.label} className={classes.inputContainer}>\n <EditableHtml\n className={classes.input}\n markup={model.teacherInstructions || ''}\n onChange={this.changeTeacherInstructions}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.teacherInstructions) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.teacherInstructions) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer label={prompt.label} className={classes.inputContainer}>\n <EditableHtml\n className={classes.input}\n markup={model.prompt || ''}\n onChange={this.onPromptChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n disableUnderline\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={maxImageWidth && maxImageWidth.prompt}\n maxImageHeight={maxImageHeight && maxImageHeight.prompt}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </InputContainer>\n )}\n\n <Categories\n imageSupport={imageSupport}\n uploadSoundSupport={uploadSoundSupport}\n model={model}\n categories={categories || []}\n onModelChanged={this.updateModel}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n configuration={configuration}\n defaultImageMaxWidth={defaultImageMaxWidth}\n defaultImageMaxHeight={defaultImageMaxHeight}\n mathMlOptions={mathMlOptions}\n />\n\n <Choices\n imageSupport={imageSupport}\n uploadSoundSupport={uploadSoundSupport}\n choices={choices}\n model={model}\n onModelChanged={this.updateModel}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n configuration={configuration}\n defaultImageMaxWidth={defaultImageMaxWidth}\n defaultImageMaxHeight={defaultImageMaxHeight}\n />\n\n {allowAlternateEnabled && (\n <Header\n className={classes.alternatesHeader}\n label=\"Alternate Responses\"\n buttonLabel=\"ADD AN ALTERNATE RESPONSE\"\n onAdd={this.onAddAlternateResponse}\n />\n )}\n {allowAlternateEnabled &&\n alternateResponses.map((categoriesList, index) => {\n return (\n <React.Fragment key={index}>\n <Header\n className={classes.alternatesHeader}\n variant={'subtitle1'}\n label=\"Alternate Response\"\n buttonLabel=\"REMOVE ALTERNATE RESPONSE\"\n onAdd={() => this.onRemoveAlternateResponse(index)}\n />\n <AlternateResponses\n altIndex={index}\n imageSupport={imageSupport}\n model={model}\n configuration={configuration}\n categories={categoriesList}\n onModelChanged={this.updateModel}\n uploadSoundSupport={uploadSoundSupport}\n toolbarOpts={toolbarOpts}\n defaultImageMaxWidth={defaultImageMaxWidth}\n defaultImageMaxHeight={defaultImageMaxHeight}\n mathMlOptions={mathMlOptions}\n />\n </React.Fragment>\n );\n })}\n\n {rationaleEnabled && (\n <InputContainer label={rationale.label} className={classes.inputContainer}>\n <EditableHtml\n className={classes.input}\n markup={model.rationale || ''}\n onChange={this.changeRationale}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.rationale) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.rationale) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </InputContainer>\n )}\n\n {feedbackEnabled && (\n <FeedbackConfig feedback={model.feedback} onChange={this.changeFeedback} toolbarOpts={toolbarOpts} />\n )}\n </layout.ConfigLayout>\n </IdProvider>\n );\n }\n}\n\nconst styles = (theme) => ({\n alternatesHeader: {\n marginBottom: theme.spacing.unit * 2,\n },\n text: {\n paddingTop: theme.spacing.unit * 2,\n paddingBottom: theme.spacing.unit * 2,\n },\n inputContainer: {\n width: '100%',\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n title: {\n marginBottom: theme.spacing.unit * 4,\n },\n});\n\nexport default withDragContext(withStyles(styles)(Design));\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../src/design/index.jsx"],"names":["translator","Translator","dropdown","settings","Panel","toggle","radio","numberField","IdProvider","uid","Provider","Design","props","model","onChange","updatedModel","choices","map","c","categoryCount","checkAllowMultiplePlacements","allowMultiplePlacementsEnabled","correctResponse","categories","id","label","h","content","maxChoicesPerCategory","allowMaxChoicesPerCategory","rationale","teacherInstructions","feedback","updateModel","cr","alternateResponses","prompt","index","filter","alt","altIndex","choice","allowMultiplePlacements","multiplePlacements","enabled","disabled","maxChoices","generateId","classes","configuration","imageSupport","uploadSoundSupport","onConfigurationChanged","allowAlternate","categoriesPerRow","choicesPosition","contentDimensions","lockChoiceOrder","maxImageHeight","maxImageWidth","maxPlacements","minCategoriesPerRow","partialScoring","scoringType","settingsPanelDisabled","spellCheck","studentInstructions","withRubric","mathMlOptions","language","languageChoices","allowAlternateEnabled","feedbackEnabled","promptEnabled","rationaleEnabled","spellCheckEnabled","teacherInstructionsEnabled","toolbarEditorPosition","toolbarOpts","position","config","columns","correctResponseCount","countChoiceInCorrectResponse","defaultImageMaxWidth","defaultImageMaxHeight","panelSettings","min","max","perChoice","options","panelProperties","studentInstructionsEnabled","rubricEnabled","isOpened","isAlertModalOpened","alertMaxChoicesMsg","t","lng","Settings","Properties","onAlertModalCancel","inputContainer","input","changeTeacherInstructions","onPromptChanged","alternatesHeader","onAddAlternateResponse","categoriesList","onRemoveAlternateResponse","changeRationale","changeFeedback","React","Component","PropTypes","object","isRequired","className","string","func","shape","add","styles","theme","marginBottom","spacing","unit","text","paddingTop","paddingBottom","width","title"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { FeedbackConfig, InputContainer, layout, settings } from '@pie-lib/pie-toolbox/config-ui';\nimport { countInAnswer, ensureNoExtraChoicesInAnswer, ensureNoExtraChoicesInAlternate } from '@pie-lib/pie-toolbox/categorize';\nimport {EditableHtml} from '@pie-lib/pie-toolbox/editable-html';\nimport { uid, withDragContext } from '@pie-lib/pie-toolbox/drag';\n\nimport Categories from './categories';\nimport AlternateResponses from './categories/alternateResponses';\nimport Choices from './choices';\nimport { buildAlternateResponses, buildCategories } from './builder';\nimport Header from './header';\nimport { getMaxCategoryChoices, multiplePlacements } from '../utils';\nimport { AlertDialog } from '@pie-lib/pie-toolbox/config-ui';\nimport Translator from '@pie-lib/pie-toolbox/translator';\n\nconst { translator } = Translator;\nconst { dropdown, Panel, toggle, radio, numberField } = settings;\nconst { Provider: IdProvider } = uid;\n\nexport class Design extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n configuration: PropTypes.object,\n className: PropTypes.string,\n onConfigurationChanged: PropTypes.func,\n model: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n uid: PropTypes.string,\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 constructor(props) {\n super(props);\n this.uid = props.uid || uid.generateId();\n }\n\n updateModel = (props) => {\n const { model, onChange } = this.props;\n\n const updatedModel = {\n ...model,\n ...props,\n };\n\n updatedModel.choices = updatedModel.choices.map((c) => ({\n ...c,\n categoryCount: this.checkAllowMultiplePlacements(updatedModel.allowMultiplePlacementsEnabled, c),\n }));\n\n //Ensure that there are no extra choices in correctResponse, if the user has decided that only one choice may be used.\n updatedModel.correctResponse = ensureNoExtraChoicesInAnswer(\n updatedModel.correctResponse || [],\n updatedModel.choices,\n );\n\n //Ensure that there are no extra choices in alternate responses, if the user has decided that only one choice may be used.\n updatedModel.correctResponse = ensureNoExtraChoicesInAlternate(\n updatedModel.correctResponse || [],\n updatedModel.choices,\n );\n\n //clean categories\n updatedModel.categories = updatedModel.categories.map((c) => ({\n id: c.id,\n label: c.label,\n }));\n\n updatedModel.choices = updatedModel.choices.map((h) => ({\n id: h.id,\n content: h.content,\n categoryCount: h.categoryCount,\n }));\n\n // ensure that maxChoicesPerCategory is reset if author switch back the corresponding switch (allowMaxChoicesPerCategory)\n updatedModel.maxChoicesPerCategory = updatedModel.allowMaxChoicesPerCategory ? updatedModel.maxChoicesPerCategory : 0;\n\n onChange(updatedModel);\n };\n\n changeRationale = (rationale) => {\n const { model, onChange } = this.props;\n\n onChange({\n ...model,\n rationale,\n });\n };\n\n changeTeacherInstructions = (teacherInstructions) => {\n const { model, onChange } = this.props;\n\n onChange({\n ...model,\n teacherInstructions,\n });\n };\n\n changeFeedback = (feedback) => {\n this.updateModel({ feedback });\n };\n\n onAddAlternateResponse = () => {\n const {\n model: { correctResponse },\n } = this.props;\n\n this.updateModel({\n correctResponse: (correctResponse || []).map((cr) => ({\n ...cr,\n alternateResponses: [...(cr.alternateResponses || []), []],\n })),\n });\n };\n\n onPromptChanged = (prompt) => this.updateModel({ prompt });\n\n onRemoveAlternateResponse = (index) => {\n const {\n model: { correctResponse },\n } = this.props;\n\n this.updateModel({\n correctResponse: (correctResponse || []).map((cr) => ({\n ...cr,\n alternateResponses: (cr.alternateResponses || []).filter((alt, altIndex) => altIndex !== index),\n })),\n });\n };\n\n countChoiceInCorrectResponse = (choice) => {\n const { model } = this.props;\n\n return countInAnswer(choice.id, model.correctResponse);\n };\n\n checkAllowMultiplePlacements = (allowMultiplePlacements, c) => {\n if (allowMultiplePlacements === multiplePlacements.enabled) {\n return 0;\n }\n\n if (allowMultiplePlacements === multiplePlacements.disabled) {\n return 1;\n }\n\n return c.categoryCount || 0;\n };\n\n isAlertModalOpened = () => {\n const { model } = this.props;\n const { maxChoicesPerCategory = 0 } = model || {};\n const maxChoices = getMaxCategoryChoices(model);\n // when maxChoicesPerCategory is set to 0, there is no limit so modal should not be opened\n return maxChoicesPerCategory !== 0 ? maxChoices > maxChoicesPerCategory : false;\n };\n\n onAlertModalCancel = () => {\n const { model } = this.props;\n const maxChoices = getMaxCategoryChoices(model);\n this.updateModel({ maxChoicesPerCategory: maxChoices });\n };\n\n\n render() {\n const { classes, configuration, imageSupport, model, uploadSoundSupport, onConfigurationChanged } = this.props;\n const {\n allowMultiplePlacements = {},\n allowAlternate = {},\n categoriesPerRow = {},\n choicesPosition = {},\n contentDimensions = {},\n feedback = {},\n lockChoiceOrder = {},\n maxImageHeight = {},\n maxImageWidth = {},\n maxPlacements = {},\n minCategoriesPerRow = 1,\n partialScoring = {},\n prompt = {},\n rationale = {},\n scoringType = {},\n settingsPanelDisabled,\n spellCheck = {},\n studentInstructions = {},\n teacherInstructions = {},\n withRubric = {},\n mathMlOptions = {},\n language = {},\n languageChoices = {},\n } = configuration || {};\n const {\n allowAlternateEnabled,\n allowMaxChoicesPerCategory,\n feedbackEnabled,\n maxChoicesPerCategory,\n promptEnabled,\n rationaleEnabled,\n spellCheckEnabled,\n teacherInstructionsEnabled,\n toolbarEditorPosition,\n } = model || {};\n\n const toolbarOpts = {\n position: toolbarEditorPosition === 'top' ? 'top' : 'bottom',\n };\n\n const config = model.config || {};\n config.choices = config.choices || { label: '', columns: 2 };\n\n const categories = buildCategories(model.categories || [], model.choices || [], model.correctResponse || []);\n\n const alternateResponses = buildAlternateResponses(\n model.categories || [],\n model.choices || [],\n model.correctResponse || [],\n );\n\n const choices = model.choices.map((c) => {\n c.correctResponseCount = this.countChoiceInCorrectResponse(c);\n\n return c;\n });\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n const panelSettings = {\n partialScoring: partialScoring.settings && toggle(partialScoring.label),\n lockChoiceOrder: lockChoiceOrder.settings && toggle(lockChoiceOrder.label),\n categoriesPerRow:\n categoriesPerRow.settings &&\n numberField(categoriesPerRow.label, {\n label: categoriesPerRow.label,\n min: minCategoriesPerRow,\n max: 6,\n }),\n choicesPosition: choicesPosition.settings && radio(choicesPosition.label, ['below', 'above', 'left', 'right']),\n allowMultiplePlacementsEnabled:\n allowMultiplePlacements.settings &&\n dropdown(allowMultiplePlacements.label, [\n multiplePlacements.enabled,\n multiplePlacements.disabled,\n multiplePlacements.perChoice,\n ]),\n allowMaxChoicesPerCategory: maxPlacements.settings && toggle(maxPlacements.label),\n maxChoicesPerCategory:\n allowMaxChoicesPerCategory === true &&\n numberField(maxPlacements.label, {\n label: '',\n min: 0,\n max: 30,\n }),\n promptEnabled: prompt.settings && toggle(prompt.label),\n feedbackEnabled: feedback.settings && toggle(feedback.label),\n // PD-2960: deleted temporary from settings panel\n // allowAlternateEnabled: allowAlternate.settings && toggle(allowAlternate.label),\n 'language.enabled': language.settings && toggle(language.label, true),\n language: language.settings && language.enabled && dropdown(languageChoices.label, languageChoices.options),\n };\n\n const panelProperties = {\n teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),\n studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),\n 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 const isOpened = this.isAlertModalOpened();\n const alertMaxChoicesMsg = translator.t('translation:categorize:maxChoicesPerCategoryRestriction', {lng: model.language, maxChoicesPerCategory });\n\n return (\n <IdProvider value={this.uid}>\n <layout.ConfigLayout\n dimensions={contentDimensions}\n hideSettings={settingsPanelDisabled}\n settings={\n <Panel\n model={model}\n onChangeModel={this.updateModel}\n configuration={configuration}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n Settings: panelSettings,\n Properties: panelProperties,\n }}\n modal={<AlertDialog\n title={'Warning'}\n text={alertMaxChoicesMsg}\n open={isOpened}\n onClose={this.onAlertModalCancel}\n />}\n />\n }\n >\n {teacherInstructionsEnabled && (\n <InputContainer label={teacherInstructions.label} className={classes.inputContainer}>\n <EditableHtml\n className={classes.input}\n markup={model.teacherInstructions || ''}\n onChange={this.changeTeacherInstructions}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.teacherInstructions) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.teacherInstructions) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer label={prompt.label} className={classes.inputContainer}>\n <EditableHtml\n className={classes.input}\n markup={model.prompt || ''}\n onChange={this.onPromptChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n disableUnderline\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={maxImageWidth && maxImageWidth.prompt}\n maxImageHeight={maxImageHeight && maxImageHeight.prompt}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </InputContainer>\n )}\n\n <Categories\n imageSupport={imageSupport}\n uploadSoundSupport={uploadSoundSupport}\n model={model}\n categories={categories || []}\n onModelChanged={this.updateModel}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n configuration={configuration}\n defaultImageMaxWidth={defaultImageMaxWidth}\n defaultImageMaxHeight={defaultImageMaxHeight}\n mathMlOptions={mathMlOptions}\n />\n\n <Choices\n imageSupport={imageSupport}\n uploadSoundSupport={uploadSoundSupport}\n choices={choices}\n model={model}\n onModelChanged={this.updateModel}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n configuration={configuration}\n defaultImageMaxWidth={defaultImageMaxWidth}\n defaultImageMaxHeight={defaultImageMaxHeight}\n />\n\n {allowAlternateEnabled && (\n <Header\n className={classes.alternatesHeader}\n label=\"Alternate Responses\"\n buttonLabel=\"ADD AN ALTERNATE RESPONSE\"\n onAdd={this.onAddAlternateResponse}\n />\n )}\n {allowAlternateEnabled &&\n alternateResponses.map((categoriesList, index) => {\n return (\n <React.Fragment key={index}>\n <Header\n className={classes.alternatesHeader}\n variant={'subtitle1'}\n label=\"Alternate Response\"\n buttonLabel=\"REMOVE ALTERNATE RESPONSE\"\n onAdd={() => this.onRemoveAlternateResponse(index)}\n />\n <AlternateResponses\n altIndex={index}\n imageSupport={imageSupport}\n model={model}\n configuration={configuration}\n categories={categoriesList}\n onModelChanged={this.updateModel}\n uploadSoundSupport={uploadSoundSupport}\n toolbarOpts={toolbarOpts}\n defaultImageMaxWidth={defaultImageMaxWidth}\n defaultImageMaxHeight={defaultImageMaxHeight}\n mathMlOptions={mathMlOptions}\n />\n </React.Fragment>\n );\n })}\n\n {rationaleEnabled && (\n <InputContainer label={rationale.label} className={classes.inputContainer}>\n <EditableHtml\n className={classes.input}\n markup={model.rationale || ''}\n onChange={this.changeRationale}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.rationale) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.rationale) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </InputContainer>\n )}\n\n {feedbackEnabled && (\n <FeedbackConfig feedback={model.feedback} onChange={this.changeFeedback} toolbarOpts={toolbarOpts} />\n )}\n </layout.ConfigLayout>\n </IdProvider>\n );\n }\n}\n\nconst styles = (theme) => ({\n alternatesHeader: {\n marginBottom: theme.spacing.unit * 2,\n },\n text: {\n paddingTop: theme.spacing.unit * 2,\n paddingBottom: theme.spacing.unit * 2,\n },\n inputContainer: {\n width: '100%',\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n title: {\n marginBottom: theme.spacing.unit * 4,\n },\n});\n\nexport default withDragContext(withStyles(styles)(Design));\n"],"file":"index.js"}
@@ -27,7 +27,7 @@ var _styles = require("@material-ui/core/styles");
27
27
 
28
28
  var _classnames = _interopRequireDefault(require("classnames"));
29
29
 
30
- var _editableHtml = _interopRequireDefault(require("@pie-lib/pie-toolbox/editable-html"));
30
+ var _editableHtml = require("@pie-lib/pie-toolbox/editable-html");
31
31
 
32
32
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
33
33
 
@@ -85,7 +85,7 @@ var InputHeader = /*#__PURE__*/function (_React$Component) {
85
85
  };
86
86
  return /*#__PURE__*/_react["default"].createElement("div", {
87
87
  className: (0, _classnames["default"])(classes.inputHeader, className)
88
- }, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
88
+ }, /*#__PURE__*/_react["default"].createElement(_editableHtml.EditableHtml, {
89
89
  imageSupport: imageSupport,
90
90
  disabled: disabled,
91
91
  ref: function ref(_ref) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/design/input-header.jsx"],"names":["InputHeader","props","focusedEl","index","inputRef","focus","onChange","label","classes","className","deleteFocusedEl","disabled","imageSupport","toolbarOpts","spellCheck","error","maxImageWidth","maxImageHeight","uploadSoundSupport","mathMlOptions","choicePlugins","audio","video","inputHeader","ref","editor","language","React","Component","PropTypes","object","isRequired","string","func","bool","number","onDelete","shape","add","styles","theme","flex","paddingBottom","spacing","unit","iconButtonRoot","width","height","display","justifyContent"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport EditableHtml from '@pie-lib/pie-toolbox/editable-html';\n\nexport class InputHeader extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n deleteFocusedEl: PropTypes.func,\n disabled: PropTypes.bool,\n focusedEl: PropTypes.number,\n index: PropTypes.number,\n label: PropTypes.string,\n maxImageWidth: PropTypes.object,\n maxImageHeight: PropTypes.object,\n onChange: PropTypes.func,\n onDelete: PropTypes.func,\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 toolbarOpts: PropTypes.object,\n error: PropTypes.string,\n spellCheck: PropTypes.bool,\n };\n\n static defaultProps = {};\n\n constructor(props) {\n super(props);\n }\n\n componentDidMount() {\n const { focusedEl, index } = this.props;\n if (focusedEl && index && focusedEl === index) {\n this.inputRef.focus('end', null, true);\n }\n }\n\n render() {\n const {\n onChange,\n label,\n classes,\n className,\n deleteFocusedEl,\n disabled,\n imageSupport,\n toolbarOpts,\n spellCheck,\n error,\n maxImageWidth,\n maxImageHeight,\n uploadSoundSupport,\n mathMlOptions = {}\n } = this.props;\n const choicePlugins = {\n audio: { disabled: true },\n video: { disabled: true },\n };\n\n return (\n <div className={classNames(classes.inputHeader, className)}>\n <EditableHtml\n imageSupport={imageSupport}\n disabled={disabled}\n ref={(ref) => (this.inputRef = ref)}\n autoWidthToolbar\n label={'label'}\n markup={label}\n onChange={onChange}\n className={classes.editor}\n pluginProps={choicePlugins}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n error={error}\n maxImageWidth={maxImageWidth}\n maxImageHeight={maxImageHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[\n { language: 'spanish' },\n { language: 'special' },\n ]}\n onDone={() => {\n deleteFocusedEl && deleteFocusedEl();\n }}\n mathMlOptions={mathMlOptions}\n />\n </div>\n );\n }\n}\nconst styles = (theme) => ({\n editor: {\n flex: '1',\n paddingBottom: theme.spacing.unit,\n },\n iconButtonRoot: {\n width: 'auto',\n height: 'auto',\n },\n inputHeader: {\n display: 'flex',\n justifyContent: 'space-between',\n },\n});\nexport default withStyles(styles)(InputHeader);\n"],"file":"input-header.js"}
1
+ {"version":3,"sources":["../../src/design/input-header.jsx"],"names":["InputHeader","props","focusedEl","index","inputRef","focus","onChange","label","classes","className","deleteFocusedEl","disabled","imageSupport","toolbarOpts","spellCheck","error","maxImageWidth","maxImageHeight","uploadSoundSupport","mathMlOptions","choicePlugins","audio","video","inputHeader","ref","editor","language","React","Component","PropTypes","object","isRequired","string","func","bool","number","onDelete","shape","add","styles","theme","flex","paddingBottom","spacing","unit","iconButtonRoot","width","height","display","justifyContent"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport {EditableHtml} from '@pie-lib/pie-toolbox/editable-html';\n\nexport class InputHeader extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n deleteFocusedEl: PropTypes.func,\n disabled: PropTypes.bool,\n focusedEl: PropTypes.number,\n index: PropTypes.number,\n label: PropTypes.string,\n maxImageWidth: PropTypes.object,\n maxImageHeight: PropTypes.object,\n onChange: PropTypes.func,\n onDelete: PropTypes.func,\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 toolbarOpts: PropTypes.object,\n error: PropTypes.string,\n spellCheck: PropTypes.bool,\n };\n\n static defaultProps = {};\n\n constructor(props) {\n super(props);\n }\n\n componentDidMount() {\n const { focusedEl, index } = this.props;\n if (focusedEl && index && focusedEl === index) {\n this.inputRef.focus('end', null, true);\n }\n }\n\n render() {\n const {\n onChange,\n label,\n classes,\n className,\n deleteFocusedEl,\n disabled,\n imageSupport,\n toolbarOpts,\n spellCheck,\n error,\n maxImageWidth,\n maxImageHeight,\n uploadSoundSupport,\n mathMlOptions = {}\n } = this.props;\n const choicePlugins = {\n audio: { disabled: true },\n video: { disabled: true },\n };\n\n return (\n <div className={classNames(classes.inputHeader, className)}>\n <EditableHtml\n imageSupport={imageSupport}\n disabled={disabled}\n ref={(ref) => (this.inputRef = ref)}\n autoWidthToolbar\n label={'label'}\n markup={label}\n onChange={onChange}\n className={classes.editor}\n pluginProps={choicePlugins}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n error={error}\n maxImageWidth={maxImageWidth}\n maxImageHeight={maxImageHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[\n { language: 'spanish' },\n { language: 'special' },\n ]}\n onDone={() => {\n deleteFocusedEl && deleteFocusedEl();\n }}\n mathMlOptions={mathMlOptions}\n />\n </div>\n );\n }\n}\nconst styles = (theme) => ({\n editor: {\n flex: '1',\n paddingBottom: theme.spacing.unit,\n },\n iconButtonRoot: {\n width: 'auto',\n height: 'auto',\n },\n inputHeader: {\n display: 'flex',\n justifyContent: 'space-between',\n },\n});\nexport default withStyles(styles)(InputHeader);\n"],"file":"input-header.js"}
@@ -3,7 +3,7 @@
3
3
  "private": true,
4
4
  "main": "lib/index.js",
5
5
  "module": "src/index.js",
6
- "version": "7.1.1",
6
+ "version": "7.2.0",
7
7
  "description": "",
8
8
  "scripts": {},
9
9
  "author": "pie framework developers",
@@ -3,6 +3,23 @@
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.2.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize-controller@6.1.1...@pie-element/categorize-controller@6.2.0) (2023-12-19)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * update pie-lib/pie-toolbox PD-2068 ([34eccd5](https://github.com/pie-framework/pie-elements/commit/34eccd52c44259eddf3e2b816b00b82f83bc2bf8))
12
+
13
+
14
+ ### Features
15
+
16
+ * update pie-lib/pie-toolbox PD-2555 ([86d4fd9](https://github.com/pie-framework/pie-elements/commit/86d4fd909180dd1fcbc446bd8b29c23af21a1c69))
17
+ * update pie-lib/pie-toolbox PD-3307, PD-2067, PD-3271, PD-3041, PD-2068 ([2eabcbd](https://github.com/pie-framework/pie-elements/commit/2eabcbd036e318bb24552f4140ca7384ad865951))
18
+
19
+
20
+
21
+
22
+
6
23
  ## [6.1.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize-controller@6.1.0...@pie-element/categorize-controller@6.1.1) (2023-11-27)
7
24
 
8
25
 
@@ -5,7 +5,7 @@
5
5
  "@pie-lib/pie-toolbox": "1.4.1",
6
6
  "lodash": "^4.17.15"
7
7
  },
8
- "version": "6.1.1",
8
+ "version": "6.2.0",
9
9
  "description": "",
10
10
  "scripts": {},
11
11
  "main": "lib/index.js",
@@ -29,7 +29,7 @@ var _choices = _interopRequireDefault(require("./choices"));
29
29
 
30
30
  var _categories = _interopRequireDefault(require("./categories"));
31
31
 
32
- var _correctAnswerToggle = _interopRequireDefault(require("@pie-lib/pie-toolbox/correct-answer-toggle"));
32
+ var _correctAnswerToggle = require("@pie-lib/pie-toolbox/correct-answer-toggle");
33
33
 
34
34
  var _styles = require("@material-ui/core/styles");
35
35
 
@@ -249,7 +249,7 @@ var Categorize = /*#__PURE__*/function (_React$Component) {
249
249
  prompt: model.teacherInstructions
250
250
  }))), model.prompt && removeHTMLTags(model.prompt) && /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
251
251
  prompt: model.prompt
252
- }), /*#__PURE__*/_react["default"].createElement(_correctAnswerToggle["default"], {
252
+ }), /*#__PURE__*/_react["default"].createElement(_correctAnswerToggle.CorrectAnswerToggle, {
253
253
  show: showCorrect || correct === false,
254
254
  toggled: showCorrect,
255
255
  onToggle: this.toggleShowCorrect,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/categorize/index.jsx"],"names":["translator","Translator","log","removeHTMLTags","html","tmp","document","createElement","innerHTML","value","textContent","innerText","trim","Categorize","props","c","onAnswersChange","session","answers","id","categoryId","choiceIndex","draggedChoice","model","maxChoicesPerCategory","newAnswers","undefined","answer","find","category","choices","length","setState","showMaxChoiceAlert","removeChoice","showCorrect","state","onShowCorrectToggle","choicePosition","flexDirection","correctResponse","some","correctRes","alternateResponses","nextProps","nextModel","note","language","t","lng","classes","choicesPosition","showNote","env","mode","role","style","getPositionDirection","categories","correct","disabled","rowLabels","categoriesPerRow","nbOfRows","Math","ceil","existAlternate","existAlternateResponse","displayNote","alertMessage","mainContainer","teacherInstructions","hidden","visible","collapsible","prompt","toggleShowCorrect","categorize","display","flex","dropChoice","slice","__html","rationale","correctness","feedback","React","Component","PropTypes","object","isRequired","shape","arrayOf","choice","string","func","CategorizeProvider","uid","generateId","styles","theme","color","text","backgroundColor","background","marginBottom","spacing","unit","paddingBottom"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Choices from './choices';\nimport Categories from './categories';\nimport CorrectAnswerToggle from '@pie-lib/pie-toolbox/correct-answer-toggle';\nimport { withStyles } from '@material-ui/core/styles';\nimport { buildState, removeChoiceFromCategory, moveChoiceToCategory } from '@pie-lib/pie-toolbox/categorize';\nimport { withDragContext, uid } from '@pie-lib/pie-toolbox/drag';\nimport { color, Feedback, Collapsible, hasText, PreviewPrompt } from '@pie-lib/pie-toolbox/render-ui';\nimport debug from 'debug';\nimport Translator from '@pie-lib/pie-toolbox/translator';\nimport { AlertDialog } from '@pie-lib/pie-toolbox/config-ui';\nconst { translator } = Translator;\n\nconst log = debug('@pie-ui:categorize');\n\nconst removeHTMLTags = (html) => {\n const tmp = document.createElement('DIV');\n\n tmp.innerHTML = html;\n\n const value = tmp.textContent || tmp.innerText || '';\n\n return value.trim();\n};\n\nexport class Categorize extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n model: PropTypes.object,\n session: PropTypes.shape({\n answers: PropTypes.arrayOf(\n PropTypes.shape({\n choice: PropTypes.string,\n category: PropTypes.string,\n }),\n ),\n }),\n onAnswersChange: PropTypes.func.isRequired,\n onShowCorrectToggle: PropTypes.func.isRequired,\n };\n\n static defaultProps = {\n disabled: false,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n showCorrect: false,\n showMaxChoiceAlert: false,\n };\n }\n\n removeChoice = (c) => {\n log('[removeChoice]: ', c);\n const { onAnswersChange, session } = this.props;\n const answers = removeChoiceFromCategory(c.id, c.categoryId, c.choiceIndex, session.answers);\n onAnswersChange(answers);\n };\n\n dropChoice = (categoryId, draggedChoice) => {\n const { session, onAnswersChange, model } = this.props;\n const { maxChoicesPerCategory = 0 } = model || {};\n const { answers = [] } = session || {};\n let newAnswers;\n if (draggedChoice) {\n log('[dropChoice] category: ', draggedChoice.categoryId, 'choice: ', draggedChoice);\n } else {\n log('[dropChoice] category: ', undefined, 'choice: ', undefined);\n }\n\n const answer = answers.find(answer => answer.category === categoryId);\n\n // treat special case to replace the existing choice with the new one when maxChoicesPerCategory = 1\n if (draggedChoice && maxChoicesPerCategory === 1 && answer && answer.choices && answer.choices.length === 1) {\n newAnswers = moveChoiceToCategory(\n draggedChoice.id,\n draggedChoice.categoryId,\n categoryId,\n draggedChoice.choiceIndex,\n answers,\n );\n newAnswers = removeChoiceFromCategory(answer.choices[0], categoryId, 0, answers)\n }\n\n // treat special case when there are as many choices as maxChoicesPerCategory is\n else if (draggedChoice && maxChoicesPerCategory > 1 && answer && answer.choices && answer.choices.length === maxChoicesPerCategory ) {\n newAnswers = draggedChoice.categoryId ? moveChoiceToCategory(\n draggedChoice.id,\n draggedChoice.categoryId,\n draggedChoice.categoryId,\n draggedChoice.choiceIndex,\n answers,\n ) : removeChoiceFromCategory(draggedChoice.id, draggedChoice.categoryId, draggedChoice.choiceIndex, answers);\n this.setState({ showMaxChoiceAlert: true })\n }\n\n // treat special case when there are more choices that maxChoicesPerCategory is (testing purpose in pits)\n else if (maxChoicesPerCategory !== 0 && answer && answer.choices && answer.choices.length > maxChoicesPerCategory) {\n newAnswers = answers;\n this.setState({ showMaxChoiceAlert: true });\n }\n else {\n newAnswers = draggedChoice\n ? moveChoiceToCategory(\n draggedChoice.id,\n draggedChoice.categoryId,\n categoryId,\n draggedChoice.choiceIndex,\n answers,\n )\n : this.removeChoice(categoryId);\n }\n\n if (draggedChoice) {\n onAnswersChange(newAnswers);\n }\n };\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { model } = this.props;\n const { model: nextModel } = nextProps;\n\n // check if the note is the default one for prev language and change to the default one for new language\n // this check is necessary in order to diferanciate between default and authour defined note\n // and only change between languages for default ones\n if (model.note && model.language && model.language !== nextModel.language\n && model.note === translator.t('common:commonCorrectAnswerWithAlternates', { lng: model.language })) {\n model.note = translator.t('common:commonCorrectAnswerWithAlternates', { lng: nextModel.language });\n }\n\n this.setState({ showCorrect: false });\n }\n\n toggleShowCorrect = () =>\n this.setState({ showCorrect: !this.state.showCorrect }, () => {\n this.props.onShowCorrectToggle();\n });\n\n getPositionDirection = (choicePosition) => {\n let flexDirection;\n\n switch (choicePosition) {\n case 'left':\n flexDirection = 'row-reverse';\n break;\n case 'right':\n flexDirection = 'row';\n break;\n case 'below':\n flexDirection = 'column';\n break;\n default:\n // above\n flexDirection = 'column-reverse';\n break;\n }\n\n return flexDirection;\n };\n\n existAlternateResponse = (correctResponse) =>\n correctResponse?.some((correctRes) => correctRes.alternateResponses?.length > 0);\n\n render() {\n const { classes, model, session } = this.props;\n const { showCorrect, showMaxChoiceAlert } = this.state;\n const { choicesPosition, note, showNote, env, language, maxChoicesPerCategory } = model;\n const { mode, role } = env || {};\n const choicePosition = choicesPosition || 'above';\n\n const style = {\n flexDirection: this.getPositionDirection(choicePosition),\n };\n\n const { categories, choices, correct } = buildState(\n model.categories,\n model.choices,\n showCorrect ? model.correctResponse : session.answers,\n model.correctResponse,\n );\n\n log('[render] disabled: ', model.disabled);\n\n const { rowLabels, categoriesPerRow, correctResponse } = model;\n const nbOfRows = (categories && Math.ceil(categories.length / categoriesPerRow)) || 0;\n const existAlternate = this.existAlternateResponse(correctResponse) || false;\n const displayNote =\n (showCorrect || (mode === 'view' && role === 'instructor')) && showNote && note && existAlternate;\n const alertMessage = translator.t('translation:categorize:limitMaxChoicesPerCategory', { lng: model.language, maxChoicesPerCategory });\n\n return (\n <div className={classes.mainContainer}>\n {model.teacherInstructions && hasText(model.teacherInstructions) && (\n <React.Fragment>\n <Collapsible\n labels={{\n hidden: 'Show Teacher Instructions',\n visible: 'Hide Teacher Instructions',\n }}\n className={classes.collapsible}\n >\n <PreviewPrompt prompt={model.teacherInstructions} />\n </Collapsible>\n </React.Fragment>\n )}\n\n {model.prompt && removeHTMLTags(model.prompt) && <PreviewPrompt prompt={model.prompt} />}\n\n <CorrectAnswerToggle\n show={showCorrect || correct === false}\n toggled={showCorrect}\n onToggle={this.toggleShowCorrect}\n language={language}\n />\n\n <div className={classes.categorize} style={style}>\n <div style={{ display: 'flex', flex: 1 }}>\n <Categories\n model={model}\n disabled={model.disabled}\n categories={categories}\n onDropChoice={this.dropChoice}\n onRemoveChoice={this.removeChoice}\n rowLabels={(rowLabels || []).slice(0, nbOfRows)}\n />\n </div>\n <Choices\n disabled={model.disabled}\n model={model}\n choices={choices}\n choicePosition={choicePosition}\n onDropChoice={this.dropChoice}\n onRemoveChoice={this.removeChoice}\n />\n </div>\n\n {displayNote && (\n <div\n className={classes.note}\n dangerouslySetInnerHTML={{\n __html: note,\n }}\n />\n )}\n\n {model.rationale && hasText(model.rationale) && (\n <Collapsible labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }} className={classes.collapsible}>\n <PreviewPrompt prompt={model.rationale} />\n </Collapsible>\n )}\n\n {model.correctness && model.feedback && !showCorrect && (\n <Feedback correctness={model.correctness} feedback={model.feedback} />\n )}\n <AlertDialog\n title={'Warning'}\n text={alertMessage}\n open={showMaxChoiceAlert}\n onClose={() => this.setState({ showMaxChoiceAlert: false })}\n >\n </AlertDialog>\n </div>\n );\n }\n}\n\nclass CategorizeProvider extends React.Component {\n constructor(props) {\n super(props);\n this.uid = uid.generateId();\n }\n\n render() {\n return (\n <uid.Provider value={this.uid}>\n <Categorize {...this.props} />\n </uid.Provider>\n );\n }\n}\n\nconst styles = (theme) => ({\n mainContainer: {\n color: color.text(),\n backgroundColor: color.background(),\n },\n note: {\n marginBottom: theme.spacing.unit * 2,\n },\n categorize: {\n marginBottom: theme.spacing.unit,\n display: 'flex',\n flexDirection: 'column',\n },\n collapsible: {\n paddingBottom: theme.spacing.unit * 2,\n },\n});\n\nexport default withDragContext(withStyles(styles)(CategorizeProvider));\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../src/categorize/index.jsx"],"names":["translator","Translator","log","removeHTMLTags","html","tmp","document","createElement","innerHTML","value","textContent","innerText","trim","Categorize","props","c","onAnswersChange","session","answers","id","categoryId","choiceIndex","draggedChoice","model","maxChoicesPerCategory","newAnswers","undefined","answer","find","category","choices","length","setState","showMaxChoiceAlert","removeChoice","showCorrect","state","onShowCorrectToggle","choicePosition","flexDirection","correctResponse","some","correctRes","alternateResponses","nextProps","nextModel","note","language","t","lng","classes","choicesPosition","showNote","env","mode","role","style","getPositionDirection","categories","correct","disabled","rowLabels","categoriesPerRow","nbOfRows","Math","ceil","existAlternate","existAlternateResponse","displayNote","alertMessage","mainContainer","teacherInstructions","hidden","visible","collapsible","prompt","toggleShowCorrect","categorize","display","flex","dropChoice","slice","__html","rationale","correctness","feedback","React","Component","PropTypes","object","isRequired","shape","arrayOf","choice","string","func","CategorizeProvider","uid","generateId","styles","theme","color","text","backgroundColor","background","marginBottom","spacing","unit","paddingBottom"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Choices from './choices';\nimport Categories from './categories';\nimport {CorrectAnswerToggle} from '@pie-lib/pie-toolbox/correct-answer-toggle';\nimport { withStyles } from '@material-ui/core/styles';\nimport { buildState, removeChoiceFromCategory, moveChoiceToCategory } from '@pie-lib/pie-toolbox/categorize';\nimport { withDragContext, uid } from '@pie-lib/pie-toolbox/drag';\nimport { color, Feedback, Collapsible, hasText, PreviewPrompt } from '@pie-lib/pie-toolbox/render-ui';\nimport debug from 'debug';\nimport Translator from '@pie-lib/pie-toolbox/translator';\nimport { AlertDialog } from '@pie-lib/pie-toolbox/config-ui';\nconst { translator } = Translator;\n\nconst log = debug('@pie-ui:categorize');\n\nconst removeHTMLTags = (html) => {\n const tmp = document.createElement('DIV');\n\n tmp.innerHTML = html;\n\n const value = tmp.textContent || tmp.innerText || '';\n\n return value.trim();\n};\n\nexport class Categorize extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n model: PropTypes.object,\n session: PropTypes.shape({\n answers: PropTypes.arrayOf(\n PropTypes.shape({\n choice: PropTypes.string,\n category: PropTypes.string,\n }),\n ),\n }),\n onAnswersChange: PropTypes.func.isRequired,\n onShowCorrectToggle: PropTypes.func.isRequired,\n };\n\n static defaultProps = {\n disabled: false,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n showCorrect: false,\n showMaxChoiceAlert: false,\n };\n }\n\n removeChoice = (c) => {\n log('[removeChoice]: ', c);\n const { onAnswersChange, session } = this.props;\n const answers = removeChoiceFromCategory(c.id, c.categoryId, c.choiceIndex, session.answers);\n onAnswersChange(answers);\n };\n\n dropChoice = (categoryId, draggedChoice) => {\n const { session, onAnswersChange, model } = this.props;\n const { maxChoicesPerCategory = 0 } = model || {};\n const { answers = [] } = session || {};\n let newAnswers;\n if (draggedChoice) {\n log('[dropChoice] category: ', draggedChoice.categoryId, 'choice: ', draggedChoice);\n } else {\n log('[dropChoice] category: ', undefined, 'choice: ', undefined);\n }\n\n const answer = answers.find(answer => answer.category === categoryId);\n\n // treat special case to replace the existing choice with the new one when maxChoicesPerCategory = 1\n if (draggedChoice && maxChoicesPerCategory === 1 && answer && answer.choices && answer.choices.length === 1) {\n newAnswers = moveChoiceToCategory(\n draggedChoice.id,\n draggedChoice.categoryId,\n categoryId,\n draggedChoice.choiceIndex,\n answers,\n );\n newAnswers = removeChoiceFromCategory(answer.choices[0], categoryId, 0, answers)\n }\n\n // treat special case when there are as many choices as maxChoicesPerCategory is\n else if (draggedChoice && maxChoicesPerCategory > 1 && answer && answer.choices && answer.choices.length === maxChoicesPerCategory ) {\n newAnswers = draggedChoice.categoryId ? moveChoiceToCategory(\n draggedChoice.id,\n draggedChoice.categoryId,\n draggedChoice.categoryId,\n draggedChoice.choiceIndex,\n answers,\n ) : removeChoiceFromCategory(draggedChoice.id, draggedChoice.categoryId, draggedChoice.choiceIndex, answers);\n this.setState({ showMaxChoiceAlert: true })\n }\n\n // treat special case when there are more choices that maxChoicesPerCategory is (testing purpose in pits)\n else if (maxChoicesPerCategory !== 0 && answer && answer.choices && answer.choices.length > maxChoicesPerCategory) {\n newAnswers = answers;\n this.setState({ showMaxChoiceAlert: true });\n }\n else {\n newAnswers = draggedChoice\n ? moveChoiceToCategory(\n draggedChoice.id,\n draggedChoice.categoryId,\n categoryId,\n draggedChoice.choiceIndex,\n answers,\n )\n : this.removeChoice(categoryId);\n }\n\n if (draggedChoice) {\n onAnswersChange(newAnswers);\n }\n };\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { model } = this.props;\n const { model: nextModel } = nextProps;\n\n // check if the note is the default one for prev language and change to the default one for new language\n // this check is necessary in order to diferanciate between default and authour defined note\n // and only change between languages for default ones\n if (model.note && model.language && model.language !== nextModel.language\n && model.note === translator.t('common:commonCorrectAnswerWithAlternates', { lng: model.language })) {\n model.note = translator.t('common:commonCorrectAnswerWithAlternates', { lng: nextModel.language });\n }\n\n this.setState({ showCorrect: false });\n }\n\n toggleShowCorrect = () =>\n this.setState({ showCorrect: !this.state.showCorrect }, () => {\n this.props.onShowCorrectToggle();\n });\n\n getPositionDirection = (choicePosition) => {\n let flexDirection;\n\n switch (choicePosition) {\n case 'left':\n flexDirection = 'row-reverse';\n break;\n case 'right':\n flexDirection = 'row';\n break;\n case 'below':\n flexDirection = 'column';\n break;\n default:\n // above\n flexDirection = 'column-reverse';\n break;\n }\n\n return flexDirection;\n };\n\n existAlternateResponse = (correctResponse) =>\n correctResponse?.some((correctRes) => correctRes.alternateResponses?.length > 0);\n\n render() {\n const { classes, model, session } = this.props;\n const { showCorrect, showMaxChoiceAlert } = this.state;\n const { choicesPosition, note, showNote, env, language, maxChoicesPerCategory } = model;\n const { mode, role } = env || {};\n const choicePosition = choicesPosition || 'above';\n\n const style = {\n flexDirection: this.getPositionDirection(choicePosition),\n };\n\n const { categories, choices, correct } = buildState(\n model.categories,\n model.choices,\n showCorrect ? model.correctResponse : session.answers,\n model.correctResponse,\n );\n\n log('[render] disabled: ', model.disabled);\n\n const { rowLabels, categoriesPerRow, correctResponse } = model;\n const nbOfRows = (categories && Math.ceil(categories.length / categoriesPerRow)) || 0;\n const existAlternate = this.existAlternateResponse(correctResponse) || false;\n const displayNote =\n (showCorrect || (mode === 'view' && role === 'instructor')) && showNote && note && existAlternate;\n const alertMessage = translator.t('translation:categorize:limitMaxChoicesPerCategory', { lng: model.language, maxChoicesPerCategory });\n\n return (\n <div className={classes.mainContainer}>\n {model.teacherInstructions && hasText(model.teacherInstructions) && (\n <React.Fragment>\n <Collapsible\n labels={{\n hidden: 'Show Teacher Instructions',\n visible: 'Hide Teacher Instructions',\n }}\n className={classes.collapsible}\n >\n <PreviewPrompt prompt={model.teacherInstructions} />\n </Collapsible>\n </React.Fragment>\n )}\n\n {model.prompt && removeHTMLTags(model.prompt) && <PreviewPrompt prompt={model.prompt} />}\n\n <CorrectAnswerToggle\n show={showCorrect || correct === false}\n toggled={showCorrect}\n onToggle={this.toggleShowCorrect}\n language={language}\n />\n\n <div className={classes.categorize} style={style}>\n <div style={{ display: 'flex', flex: 1 }}>\n <Categories\n model={model}\n disabled={model.disabled}\n categories={categories}\n onDropChoice={this.dropChoice}\n onRemoveChoice={this.removeChoice}\n rowLabels={(rowLabels || []).slice(0, nbOfRows)}\n />\n </div>\n <Choices\n disabled={model.disabled}\n model={model}\n choices={choices}\n choicePosition={choicePosition}\n onDropChoice={this.dropChoice}\n onRemoveChoice={this.removeChoice}\n />\n </div>\n\n {displayNote && (\n <div\n className={classes.note}\n dangerouslySetInnerHTML={{\n __html: note,\n }}\n />\n )}\n\n {model.rationale && hasText(model.rationale) && (\n <Collapsible labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }} className={classes.collapsible}>\n <PreviewPrompt prompt={model.rationale} />\n </Collapsible>\n )}\n\n {model.correctness && model.feedback && !showCorrect && (\n <Feedback correctness={model.correctness} feedback={model.feedback} />\n )}\n <AlertDialog\n title={'Warning'}\n text={alertMessage}\n open={showMaxChoiceAlert}\n onClose={() => this.setState({ showMaxChoiceAlert: false })}\n >\n </AlertDialog>\n </div>\n );\n }\n}\n\nclass CategorizeProvider extends React.Component {\n constructor(props) {\n super(props);\n this.uid = uid.generateId();\n }\n\n render() {\n return (\n <uid.Provider value={this.uid}>\n <Categorize {...this.props} />\n </uid.Provider>\n );\n }\n}\n\nconst styles = (theme) => ({\n mainContainer: {\n color: color.text(),\n backgroundColor: color.background(),\n },\n note: {\n marginBottom: theme.spacing.unit * 2,\n },\n categorize: {\n marginBottom: theme.spacing.unit,\n display: 'flex',\n flexDirection: 'column',\n },\n collapsible: {\n paddingBottom: theme.spacing.unit * 2,\n },\n});\n\nexport default withDragContext(withStyles(styles)(CategorizeProvider));\n"],"file":"index.js"}
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
7
- "version": "8.1.2-next.72+34eccd52c",
7
+ "version": "8.2.1-next.8+c24bcb996",
8
8
  "description": "",
9
9
  "author": "pie framework developers",
10
10
  "license": "ISC",
@@ -20,7 +20,7 @@
20
20
  "react-dnd": "^14.0.5",
21
21
  "react-dom": "^16.8.1"
22
22
  },
23
- "gitHead": "34eccd52c44259eddf3e2b816b00b82f83bc2bf8",
23
+ "gitHead": "c24bcb9966a4f9b7f6cf88a4151599f526412ca5",
24
24
  "scripts": {
25
25
  "postpublish": "../../scripts/postpublish"
26
26
  },