@pie-element/categorize 8.15.2-next.6 → 8.15.3

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,30 @@
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.15.3](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize@8.15.2...@pie-element/categorize@8.15.3) (2024-05-07)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * update pie-lib/pie-toolbox PD-3731 ([2b5d6c9](https://github.com/pie-framework/pie-elements/commit/2b5d6c932280981a0fd636bcb30d7fbc181ac311))
12
+
13
+
14
+
15
+
16
+
17
+ ## [8.15.2](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize@8.15.1...@pie-element/categorize@8.15.2) (2024-05-03)
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * tests ([1dbdd63](https://github.com/pie-framework/pie-elements/commit/1dbdd630e80a28e0a854bb65f7d14384d37c33f2))
23
+ * update pie-lib/pie-toolbox PD-3537, PD-3538, PD-3539, PD-3540,PD-3680 ([d9cb471](https://github.com/pie-framework/pie-elements/commit/d9cb47148a8fec71d5de29f2cf2b92ec7b479470))
24
+ * **categorize:** tweak style of the "pool" of answer choices to be more compact PD-3680 ([64839e7](https://github.com/pie-framework/pie-elements/commit/64839e73e09b0be3bfedecc762d7ad5ca63099d7))
25
+
26
+
27
+
28
+
29
+
6
30
  ## [8.15.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize@8.15.0...@pie-element/categorize@8.15.1) (2024-04-29)
7
31
 
8
32
 
@@ -3,6 +3,28 @@
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.14.3](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize-configure@7.14.2...@pie-element/categorize-configure@7.14.3) (2024-05-07)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * update pie-lib/pie-toolbox PD-3731 ([2b5d6c9](https://github.com/pie-framework/pie-elements/commit/2b5d6c932280981a0fd636bcb30d7fbc181ac311))
12
+
13
+
14
+
15
+
16
+
17
+ ## [7.14.2](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize-configure@7.14.1...@pie-element/categorize-configure@7.14.2) (2024-05-03)
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * update pie-lib/pie-toolbox PD-3537, PD-3538, PD-3539, PD-3540,PD-3680 ([d9cb471](https://github.com/pie-framework/pie-elements/commit/d9cb47148a8fec71d5de29f2cf2b92ec7b479470))
23
+
24
+
25
+
26
+
27
+
6
28
  ## [7.14.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize-configure@7.14.0...@pie-element/categorize-configure@7.14.1) (2024-04-29)
7
29
 
8
30
 
@@ -3,7 +3,7 @@
3
3
  "private": true,
4
4
  "main": "lib/index.js",
5
5
  "module": "src/index.js",
6
- "version": "7.14.1",
6
+ "version": "7.14.3",
7
7
  "description": "",
8
8
  "scripts": {},
9
9
  "author": "pie framework developers",
@@ -12,7 +12,7 @@
12
12
  "@material-ui/core": "^3.9.2",
13
13
  "@material-ui/icons": "^3.0.1",
14
14
  "@pie-framework/pie-configure-events": "^1.3.0",
15
- "@pie-lib/pie-toolbox": "1.16.4",
15
+ "@pie-lib/pie-toolbox": "1.17.3",
16
16
  "classnames": "^2.2.5",
17
17
  "debug": "^3.1.0",
18
18
  "lodash": "^4.17.15",
@@ -3,6 +3,28 @@
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.11.3](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize-controller@6.11.2...@pie-element/categorize-controller@6.11.3) (2024-05-07)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * update pie-lib/pie-toolbox PD-3731 ([2b5d6c9](https://github.com/pie-framework/pie-elements/commit/2b5d6c932280981a0fd636bcb30d7fbc181ac311))
12
+
13
+
14
+
15
+
16
+
17
+ ## [6.11.2](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize-controller@6.11.1...@pie-element/categorize-controller@6.11.2) (2024-05-03)
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * update pie-lib/pie-toolbox PD-3537, PD-3538, PD-3539, PD-3540,PD-3680 ([d9cb471](https://github.com/pie-framework/pie-elements/commit/d9cb47148a8fec71d5de29f2cf2b92ec7b479470))
23
+
24
+
25
+
26
+
27
+
6
28
  ## [6.11.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize-controller@6.11.0...@pie-element/categorize-controller@6.11.1) (2024-04-29)
7
29
 
8
30
 
@@ -2,10 +2,10 @@
2
2
  "name": "@pie-element/categorize-controller",
3
3
  "private": true,
4
4
  "dependencies": {
5
- "@pie-lib/pie-toolbox": "1.16.4",
5
+ "@pie-lib/pie-toolbox": "1.17.3",
6
6
  "lodash": "^4.17.15"
7
7
  },
8
- "version": "6.11.1",
8
+ "version": "6.11.3",
9
9
  "description": "",
10
10
  "scripts": {},
11
11
  "main": "lib/index.js",
@@ -162,8 +162,7 @@ exports.Categories = Categories;
162
162
  var styles = function styles(theme) {
163
163
  return {
164
164
  categories: {
165
- flex: 1,
166
- padding: '8px'
165
+ flex: 1
167
166
  },
168
167
  label: {
169
168
  color: _renderUi.color.text(),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/categorize/categories.jsx"],"names":["Categories","props","classes","categories","model","disabled","onDropChoice","onRemoveChoice","rowLabels","categoriesPerRow","chunkedCategories","hasNonEmptyString","array","found","forEach","element","trim","Math","ceil","length","map","cat","rowIndex","items","c","columnIndex","push","display","rowLabel","__html","categoryWrapper","label","h","id","category","concat","Array","fill","value","index","React","Component","PropTypes","object","isRequired","arrayOf","shape","CategoryType","number","bool","func","styles","theme","flex","padding","color","text","backgroundColor","background","fontSize","typography","textAlign","paddingTop","spacing","unit","alignItems","justifyContent","marginRight","flexDirection"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport { color } from '@pie-lib/pie-toolbox/render-ui';\n\nimport chunk from 'lodash/chunk';\n\nimport GridContent from './grid-content';\nimport Category, { CategoryType } from './category';\n\nexport { CategoryType };\n\nexport class Categories extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n categories: PropTypes.arrayOf(PropTypes.shape(CategoryType)),\n model: PropTypes.shape({\n categoriesPerRow: PropTypes.number,\n }),\n disabled: PropTypes.bool,\n onDropChoice: PropTypes.func.isRequired,\n onRemoveChoice: PropTypes.func.isRequired,\n rowLabels: PropTypes.array\n };\n\n static defaultProps = {\n model: {\n categoriesPerRow: 1,\n },\n };\n\n render() {\n const { classes, categories, model, disabled, onDropChoice, onRemoveChoice, rowLabels } = this.props;\n const { categoriesPerRow } = model;\n\n // split categories into an array of arrays (inner array),\n // where each inner array represents how many categories should be displayed on one row\n const chunkedCategories = chunk(categories, categoriesPerRow);\n\n const hasNonEmptyString = (array) => {\n let found = false;\n\n (array || []).forEach(element => {\n if (typeof element === 'string' && element.trim() !== '' && element.trim() !== '<div></div>') {\n found = true;\n }\n });\n\n return found;\n };\n\n return (\n <GridContent\n columns={categoriesPerRow}\n className={classes.categories}\n rows={Math.ceil(categories.length / categoriesPerRow) * 2}\n >\n {chunkedCategories.map((cat, rowIndex) => {\n let items = [];\n\n // for each inner array of categories, create a row with category titles\n // first cell of row has to be the row label\n cat.forEach((c, columnIndex) => {\n items.push(\n <div style={{ display: 'flex' }}>\n {columnIndex === 0 && hasNonEmptyString(rowLabels) ? <div\n key={rowIndex}\n className={classes.rowLabel}\n dangerouslySetInnerHTML={{\n __html: rowLabels[rowIndex] || '',\n }}\n /> : null}\n <div className={classes.categoryWrapper}>\n <Typography className={classes.label} key={`category-label-${rowIndex}-${columnIndex}`}>\n <span dangerouslySetInnerHTML={{ __html: c.label }}/>\n </Typography>\n <Category\n onDropChoice={(h) => onDropChoice(c.id, h)}\n onRemoveChoice={onRemoveChoice}\n disabled={disabled}\n className={classes.category}\n key={`category-element-${rowIndex}-${columnIndex}`}\n {...c}\n />\n </div>\n </div>\n );\n });\n\n // if the last row has fewer categories than max on a row, fill the spaces with divs\n items = items.concat(Array(categoriesPerRow - cat.length).fill(<div/>).map((value, index) => <div\n key={`fill-space-final-${index}`}/>));\n\n return items;\n })}\n </GridContent>\n );\n }\n}\n\nconst styles = (theme) => ({\n categories: {\n flex: 1,\n padding: '8px'\n },\n label: {\n color: color.text(),\n backgroundColor: color.background(),\n fontSize: theme.typography.fontSize,\n textAlign: 'center',\n paddingTop: theme.spacing.unit,\n },\n rowLabel: {\n alignItems: 'center',\n display: 'flex',\n justifyContent: 'center',\n flex: 0.5,\n marginRight: '12px'\n },\n categoryWrapper: {\n display: 'flex',\n flex: '2',\n flexDirection: 'column'\n }\n});\nexport default withStyles(styles)(Categories);\n"],"file":"categories.js"}
1
+ {"version":3,"sources":["../../src/categorize/categories.jsx"],"names":["Categories","props","classes","categories","model","disabled","onDropChoice","onRemoveChoice","rowLabels","categoriesPerRow","chunkedCategories","hasNonEmptyString","array","found","forEach","element","trim","Math","ceil","length","map","cat","rowIndex","items","c","columnIndex","push","display","rowLabel","__html","categoryWrapper","label","h","id","category","concat","Array","fill","value","index","React","Component","PropTypes","object","isRequired","arrayOf","shape","CategoryType","number","bool","func","styles","theme","flex","color","text","backgroundColor","background","fontSize","typography","textAlign","paddingTop","spacing","unit","alignItems","justifyContent","marginRight","flexDirection"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport { color } from '@pie-lib/pie-toolbox/render-ui';\n\nimport chunk from 'lodash/chunk';\n\nimport GridContent from './grid-content';\nimport Category, { CategoryType } from './category';\n\nexport { CategoryType };\n\nexport class Categories extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n categories: PropTypes.arrayOf(PropTypes.shape(CategoryType)),\n model: PropTypes.shape({\n categoriesPerRow: PropTypes.number,\n }),\n disabled: PropTypes.bool,\n onDropChoice: PropTypes.func.isRequired,\n onRemoveChoice: PropTypes.func.isRequired,\n rowLabels: PropTypes.array\n };\n\n static defaultProps = {\n model: {\n categoriesPerRow: 1,\n },\n };\n\n render() {\n const { classes, categories, model, disabled, onDropChoice, onRemoveChoice, rowLabels } = this.props;\n const { categoriesPerRow } = model;\n\n // split categories into an array of arrays (inner array),\n // where each inner array represents how many categories should be displayed on one row\n const chunkedCategories = chunk(categories, categoriesPerRow);\n\n const hasNonEmptyString = (array) => {\n let found = false;\n\n (array || []).forEach(element => {\n if (typeof element === 'string' && element.trim() !== '' && element.trim() !== '<div></div>') {\n found = true;\n }\n });\n\n return found;\n };\n\n return (\n <GridContent\n columns={categoriesPerRow}\n className={classes.categories}\n rows={Math.ceil(categories.length / categoriesPerRow) * 2}\n >\n {chunkedCategories.map((cat, rowIndex) => {\n let items = [];\n\n // for each inner array of categories, create a row with category titles\n // first cell of row has to be the row label\n cat.forEach((c, columnIndex) => {\n items.push(\n <div style={{ display: 'flex' }}>\n {columnIndex === 0 && hasNonEmptyString(rowLabels) ? <div\n key={rowIndex}\n className={classes.rowLabel}\n dangerouslySetInnerHTML={{\n __html: rowLabels[rowIndex] || '',\n }}\n /> : null}\n <div className={classes.categoryWrapper}>\n <Typography className={classes.label} key={`category-label-${rowIndex}-${columnIndex}`}>\n <span dangerouslySetInnerHTML={{ __html: c.label }}/>\n </Typography>\n <Category\n onDropChoice={(h) => onDropChoice(c.id, h)}\n onRemoveChoice={onRemoveChoice}\n disabled={disabled}\n className={classes.category}\n key={`category-element-${rowIndex}-${columnIndex}`}\n {...c}\n />\n </div>\n </div>\n );\n });\n\n // if the last row has fewer categories than max on a row, fill the spaces with divs\n items = items.concat(Array(categoriesPerRow - cat.length).fill(<div/>).map((value, index) => <div\n key={`fill-space-final-${index}`}/>));\n\n return items;\n })}\n </GridContent>\n );\n }\n}\n\nconst styles = (theme) => ({\n categories: {\n flex: 1,\n },\n label: {\n color: color.text(),\n backgroundColor: color.background(),\n fontSize: theme.typography.fontSize,\n textAlign: 'center',\n paddingTop: theme.spacing.unit,\n },\n rowLabel: {\n alignItems: 'center',\n display: 'flex',\n justifyContent: 'center',\n flex: 0.5,\n marginRight: '12px'\n },\n categoryWrapper: {\n display: 'flex',\n flex: '2',\n flexDirection: 'column'\n }\n});\nexport default withStyles(styles)(Categories);\n"],"file":"categories.js"}
@@ -139,7 +139,6 @@ var styles = function styles(theme) {
139
139
  return {
140
140
  wrapper: {
141
141
  flex: 1,
142
- padding: theme.spacing.unit,
143
142
  touchAction: 'none'
144
143
  },
145
144
  choices: {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/categorize/choices.jsx"],"names":["Blank","Choices","props","classes","choices","model","disabled","onDropChoice","onRemoveChoice","choicePosition","style","textAlign","direction","wrapper","background","choicesLabel","labelHolder","__html","map","c","index","empty","choice","maxWidth","categoriesPerRow","React","Component","PropTypes","object","isRequired","arrayOf","oneOfType","shape","ChoiceType","bool","number","string","func","styles","theme","flex","padding","spacing","unit","touchAction","display","justifyContent","alignItems","margin","paddingTop"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAGA,IAAMA,KAAK,GAAG,SAARA,KAAQ;AAAA,sBAAM,4CAAN;AAAA,CAAd;;IAEaC,O;;;;;;;;;;;;WAuBX,kBAAS;AACP,wBAAiG,KAAKC,KAAtG;AAAA,UAAQC,OAAR,eAAQA,OAAR;AAAA,4CAAiBC,OAAjB;AAAA,UAAiBA,OAAjB,oCAA2B,EAA3B;AAAA,UAA+BC,KAA/B,eAA+BA,KAA/B;AAAA,UAAsCC,QAAtC,eAAsCA,QAAtC;AAAA,UAAgDC,YAAhD,eAAgDA,YAAhD;AAAA,UAA8DC,cAA9D,eAA8DA,cAA9D;AAAA,UAA8EC,cAA9E,eAA8EA,cAA9E;AAEA,UAAIC,KAAK,GAAG;AACVC,QAAAA,SAAS,EAAE;AADD,OAAZ;;AAIA,UAAIF,cAAc,KAAK,MAAvB,EAA+B;AAC7BC,QAAAA,KAAK,CAACE,SAAN,GAAkB,KAAlB;AACD;;AAED,0BACE;AAAK,QAAA,SAAS,EAAET,OAAO,CAACU;AAAxB,sBACE,gCAAC,gCAAD;AACE,QAAA,YAAY,EAAEN,YADhB;AAEE,QAAA,cAAc,EAAEC,cAFlB;AAGE,QAAA,QAAQ,EAAEF,QAHZ;AAIE,QAAA,KAAK,EAAE;AAAEQ,UAAAA,UAAU,EAAE;AAAd,SAJT;AAKE,QAAA,WAAW,EAAE;AALf,SAOGT,KAAK,CAACU,YAAN,IAAsBV,KAAK,CAACU,YAAN,KAAuB,EAA7C,iBACC;AAAK,QAAA,SAAS,EAAEZ,OAAO,CAACa,WAAxB;AAAqC,QAAA,uBAAuB,EAAE;AAAEC,UAAAA,MAAM,EAAEZ,KAAK,CAACU;AAAhB;AAA9D,QARJ,EAUGX,OAAO,CAACc,GAAR,CAAY,UAACC,CAAD,EAAIC,KAAJ,EAAc;AACzB,eAAOD,CAAC,CAACE,KAAF,gBACL,gCAAC,KAAD;AAAO,UAAA,GAAG,EAAED;AAAZ,UADK,gBAGL,gCAAC,kBAAD;AACE,UAAA,QAAQ,EAAEd,QADZ;AAEE,UAAA,SAAS,EAAEH,OAAO,CAACmB,MAFrB;AAGE,UAAA,GAAG,EAAEF,KAHP;AAIE,UAAA,UAAU,EAAE;AAAEG,YAAAA,QAAQ,YAAK,KAAKlB,KAAK,CAACmB,gBAAhB;AAAV;AAJd,WAKML,CALN,EAHF;AAWD,OAZA,CAVH,CADF,CADF;AA4BD;;;EA9D0BM,kBAAMC,S;;;iCAAtBzB,O,eACQ;AACjBE,EAAAA,OAAO,EAAEwB,sBAAUC,MAAV,CAAiBC,UADT;AAEjBzB,EAAAA,OAAO,EAAEuB,sBAAUG,OAAV,CACPH,sBAAUI,SAAV,CAAoB,CAACJ,sBAAUK,KAAV,CAAgBC,kBAAhB,CAAD,EAA8BN,sBAAUK,KAAV,CAAgB;AAAEX,IAAAA,KAAK,EAAEM,sBAAUO;AAAnB,GAAhB,CAA9B,CAApB,CADO,CAFQ;AAKjB7B,EAAAA,KAAK,EAAEsB,sBAAUK,KAAV,CAAgB;AACrBR,IAAAA,gBAAgB,EAAEG,sBAAUQ,MADP;AAErBpB,IAAAA,YAAY,EAAEY,sBAAUS;AAFH,GAAhB,CALU;AASjB9B,EAAAA,QAAQ,EAAEqB,sBAAUO,IATH;AAUjBzB,EAAAA,cAAc,EAAEkB,sBAAUS,MAVT;AAWjB7B,EAAAA,YAAY,EAAEoB,sBAAUU,IAXP;AAYjB7B,EAAAA,cAAc,EAAEmB,sBAAUU;AAZT,C;iCADRpC,O,kBAgBW;AACpBI,EAAAA,KAAK,EAAE;AACLmB,IAAAA,gBAAgB,EAAE,CADb;AAELT,IAAAA,YAAY,EAAE;AAFT;AADa,C;;AAiDxB,IAAMuB,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzB1B,IAAAA,OAAO,EAAE;AACP2B,MAAAA,IAAI,EAAE,CADC;AAEPC,MAAAA,OAAO,EAAEF,KAAK,CAACG,OAAN,CAAcC,IAFhB;AAGPC,MAAAA,WAAW,EAAE;AAHN,KADgB;AAMzBxC,IAAAA,OAAO,EAAE;AACPqC,MAAAA,OAAO,EAAEF,KAAK,CAACG,OAAN,CAAcC,IAAd,GAAqB,CADvB;AAEPE,MAAAA,OAAO,EAAE,MAFF;AAGPC,MAAAA,cAAc,EAAE,QAHT;AAIPC,MAAAA,UAAU,EAAE;AAJL,KANgB;AAYzB/B,IAAAA,WAAW,EAAE;AACXgC,MAAAA,MAAM,EAAE,QADG;AAEXrC,MAAAA,SAAS,EAAE,QAFA;AAGXsC,MAAAA,UAAU,EAAEV,KAAK,CAACG,OAAN,CAAcC;AAHf;AAZY,GAAZ;AAAA,CAAf;;eAmBe,wBAAWL,MAAX,EAAmBrC,OAAnB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport Choice, { ChoiceType } from './choice';\nimport DroppablePlaceholder from './droppable-placeholder';\nexport { ChoiceType };\n\nconst Blank = () => <div />;\n\nexport class Choices extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n choices: PropTypes.arrayOf(\n PropTypes.oneOfType([PropTypes.shape(ChoiceType), PropTypes.shape({ empty: PropTypes.bool })]),\n ),\n model: PropTypes.shape({\n categoriesPerRow: PropTypes.number,\n choicesLabel: PropTypes.string,\n }),\n disabled: PropTypes.bool,\n choicePosition: PropTypes.string,\n onDropChoice: PropTypes.func,\n onRemoveChoice: PropTypes.func,\n };\n\n static defaultProps = {\n model: {\n categoriesPerRow: 1,\n choicesLabel: '',\n },\n };\n\n render() {\n const { classes, choices = [], model, disabled, onDropChoice, onRemoveChoice, choicePosition } = this.props;\n\n let style = {\n textAlign: 'center',\n };\n\n if (choicePosition === 'left') {\n style.direction = 'rtl';\n }\n\n return (\n <div className={classes.wrapper}>\n <DroppablePlaceholder\n onDropChoice={onDropChoice}\n onRemoveChoice={onRemoveChoice}\n disabled={disabled}\n style={{ background: 'none' }}\n choiceBoard={true}\n >\n {model.choicesLabel && model.choicesLabel !== '' && (\n <div className={classes.labelHolder} dangerouslySetInnerHTML={{ __html: model.choicesLabel }}></div>\n )}\n {choices.map((c, index) => {\n return c.empty ? (\n <Blank key={index} />\n ) : (\n <Choice\n disabled={disabled}\n className={classes.choice}\n key={index}\n extraStyle={{ maxWidth: `${95 / model.categoriesPerRow}%` }}\n {...c}\n />\n );\n })}\n </DroppablePlaceholder>\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n wrapper: {\n flex: 1,\n padding: theme.spacing.unit,\n touchAction: 'none',\n },\n choices: {\n padding: theme.spacing.unit / 2,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n },\n labelHolder: {\n margin: '0 auto',\n textAlign: 'center',\n paddingTop: theme.spacing.unit,\n },\n});\n\nexport default withStyles(styles)(Choices);\n"],"file":"choices.js"}
1
+ {"version":3,"sources":["../../src/categorize/choices.jsx"],"names":["Blank","Choices","props","classes","choices","model","disabled","onDropChoice","onRemoveChoice","choicePosition","style","textAlign","direction","wrapper","background","choicesLabel","labelHolder","__html","map","c","index","empty","choice","maxWidth","categoriesPerRow","React","Component","PropTypes","object","isRequired","arrayOf","oneOfType","shape","ChoiceType","bool","number","string","func","styles","theme","flex","touchAction","padding","spacing","unit","display","justifyContent","alignItems","margin","paddingTop"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAGA,IAAMA,KAAK,GAAG,SAARA,KAAQ;AAAA,sBAAM,4CAAN;AAAA,CAAd;;IAEaC,O;;;;;;;;;;;;WAuBX,kBAAS;AACP,wBAAiG,KAAKC,KAAtG;AAAA,UAAQC,OAAR,eAAQA,OAAR;AAAA,4CAAiBC,OAAjB;AAAA,UAAiBA,OAAjB,oCAA2B,EAA3B;AAAA,UAA+BC,KAA/B,eAA+BA,KAA/B;AAAA,UAAsCC,QAAtC,eAAsCA,QAAtC;AAAA,UAAgDC,YAAhD,eAAgDA,YAAhD;AAAA,UAA8DC,cAA9D,eAA8DA,cAA9D;AAAA,UAA8EC,cAA9E,eAA8EA,cAA9E;AAEA,UAAIC,KAAK,GAAG;AACVC,QAAAA,SAAS,EAAE;AADD,OAAZ;;AAIA,UAAIF,cAAc,KAAK,MAAvB,EAA+B;AAC7BC,QAAAA,KAAK,CAACE,SAAN,GAAkB,KAAlB;AACD;;AAED,0BACE;AAAK,QAAA,SAAS,EAAET,OAAO,CAACU;AAAxB,sBACE,gCAAC,gCAAD;AACE,QAAA,YAAY,EAAEN,YADhB;AAEE,QAAA,cAAc,EAAEC,cAFlB;AAGE,QAAA,QAAQ,EAAEF,QAHZ;AAIE,QAAA,KAAK,EAAE;AAAEQ,UAAAA,UAAU,EAAE;AAAd,SAJT;AAKE,QAAA,WAAW,EAAE;AALf,SAOGT,KAAK,CAACU,YAAN,IAAsBV,KAAK,CAACU,YAAN,KAAuB,EAA7C,iBACC;AAAK,QAAA,SAAS,EAAEZ,OAAO,CAACa,WAAxB;AAAqC,QAAA,uBAAuB,EAAE;AAAEC,UAAAA,MAAM,EAAEZ,KAAK,CAACU;AAAhB;AAA9D,QARJ,EAUGX,OAAO,CAACc,GAAR,CAAY,UAACC,CAAD,EAAIC,KAAJ,EAAc;AACzB,eAAOD,CAAC,CAACE,KAAF,gBACL,gCAAC,KAAD;AAAO,UAAA,GAAG,EAAED;AAAZ,UADK,gBAGL,gCAAC,kBAAD;AACE,UAAA,QAAQ,EAAEd,QADZ;AAEE,UAAA,SAAS,EAAEH,OAAO,CAACmB,MAFrB;AAGE,UAAA,GAAG,EAAEF,KAHP;AAIE,UAAA,UAAU,EAAE;AAAEG,YAAAA,QAAQ,YAAK,KAAKlB,KAAK,CAACmB,gBAAhB;AAAV;AAJd,WAKML,CALN,EAHF;AAWD,OAZA,CAVH,CADF,CADF;AA4BD;;;EA9D0BM,kBAAMC,S;;;iCAAtBzB,O,eACQ;AACjBE,EAAAA,OAAO,EAAEwB,sBAAUC,MAAV,CAAiBC,UADT;AAEjBzB,EAAAA,OAAO,EAAEuB,sBAAUG,OAAV,CACPH,sBAAUI,SAAV,CAAoB,CAACJ,sBAAUK,KAAV,CAAgBC,kBAAhB,CAAD,EAA8BN,sBAAUK,KAAV,CAAgB;AAAEX,IAAAA,KAAK,EAAEM,sBAAUO;AAAnB,GAAhB,CAA9B,CAApB,CADO,CAFQ;AAKjB7B,EAAAA,KAAK,EAAEsB,sBAAUK,KAAV,CAAgB;AACrBR,IAAAA,gBAAgB,EAAEG,sBAAUQ,MADP;AAErBpB,IAAAA,YAAY,EAAEY,sBAAUS;AAFH,GAAhB,CALU;AASjB9B,EAAAA,QAAQ,EAAEqB,sBAAUO,IATH;AAUjBzB,EAAAA,cAAc,EAAEkB,sBAAUS,MAVT;AAWjB7B,EAAAA,YAAY,EAAEoB,sBAAUU,IAXP;AAYjB7B,EAAAA,cAAc,EAAEmB,sBAAUU;AAZT,C;iCADRpC,O,kBAgBW;AACpBI,EAAAA,KAAK,EAAE;AACLmB,IAAAA,gBAAgB,EAAE,CADb;AAELT,IAAAA,YAAY,EAAE;AAFT;AADa,C;;AAiDxB,IAAMuB,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzB1B,IAAAA,OAAO,EAAE;AACP2B,MAAAA,IAAI,EAAE,CADC;AAEPC,MAAAA,WAAW,EAAE;AAFN,KADgB;AAKzBrC,IAAAA,OAAO,EAAE;AACPsC,MAAAA,OAAO,EAAEH,KAAK,CAACI,OAAN,CAAcC,IAAd,GAAqB,CADvB;AAEPC,MAAAA,OAAO,EAAE,MAFF;AAGPC,MAAAA,cAAc,EAAE,QAHT;AAIPC,MAAAA,UAAU,EAAE;AAJL,KALgB;AAWzB/B,IAAAA,WAAW,EAAE;AACXgC,MAAAA,MAAM,EAAE,QADG;AAEXrC,MAAAA,SAAS,EAAE,QAFA;AAGXsC,MAAAA,UAAU,EAAEV,KAAK,CAACI,OAAN,CAAcC;AAHf;AAXY,GAAZ;AAAA,CAAf;;eAkBe,wBAAWN,MAAX,EAAmBrC,OAAnB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport Choice, { ChoiceType } from './choice';\nimport DroppablePlaceholder from './droppable-placeholder';\nexport { ChoiceType };\n\nconst Blank = () => <div />;\n\nexport class Choices extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n choices: PropTypes.arrayOf(\n PropTypes.oneOfType([PropTypes.shape(ChoiceType), PropTypes.shape({ empty: PropTypes.bool })]),\n ),\n model: PropTypes.shape({\n categoriesPerRow: PropTypes.number,\n choicesLabel: PropTypes.string,\n }),\n disabled: PropTypes.bool,\n choicePosition: PropTypes.string,\n onDropChoice: PropTypes.func,\n onRemoveChoice: PropTypes.func,\n };\n\n static defaultProps = {\n model: {\n categoriesPerRow: 1,\n choicesLabel: '',\n },\n };\n\n render() {\n const { classes, choices = [], model, disabled, onDropChoice, onRemoveChoice, choicePosition } = this.props;\n\n let style = {\n textAlign: 'center',\n };\n\n if (choicePosition === 'left') {\n style.direction = 'rtl';\n }\n\n return (\n <div className={classes.wrapper}>\n <DroppablePlaceholder\n onDropChoice={onDropChoice}\n onRemoveChoice={onRemoveChoice}\n disabled={disabled}\n style={{ background: 'none' }}\n choiceBoard={true}\n >\n {model.choicesLabel && model.choicesLabel !== '' && (\n <div className={classes.labelHolder} dangerouslySetInnerHTML={{ __html: model.choicesLabel }}></div>\n )}\n {choices.map((c, index) => {\n return c.empty ? (\n <Blank key={index} />\n ) : (\n <Choice\n disabled={disabled}\n className={classes.choice}\n key={index}\n extraStyle={{ maxWidth: `${95 / model.categoriesPerRow}%` }}\n {...c}\n />\n );\n })}\n </DroppablePlaceholder>\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n wrapper: {\n flex: 1,\n touchAction: 'none',\n },\n choices: {\n padding: theme.spacing.unit / 2,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n },\n labelHolder: {\n margin: '0 auto',\n textAlign: 'center',\n paddingTop: theme.spacing.unit,\n },\n});\n\nexport default withStyles(styles)(Choices);\n"],"file":"choices.js"}
@@ -65,7 +65,8 @@ var DroppablePlaceholder = /*#__PURE__*/function (_React$Component) {
65
65
  isOver: isOver,
66
66
  grid: grid,
67
67
  disabled: disabled,
68
- choiceBoard: choiceBoard
68
+ choiceBoard: choiceBoard,
69
+ isCategorize: true
69
70
  }, children)));
70
71
  }
71
72
  }]);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/categorize/droppable-placeholder.jsx"],"names":["log","DroppablePlaceholder","props","children","connectDropTarget","isOver","className","grid","disabled","choiceBoard","flex","React","Component","PropTypes","bool","func","isRequired","oneOfType","arrayOf","node","string","object","spec","drop","monitor","item","getItem","onDropChoice","canDrop","WithTarget","uid","connect","dropTarget","withUid"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA;;;;;;AAEA,IAAMA,GAAG,GAAG,uBAAM,0CAAN,CAAZ;;IAEaC,oB;;;;;;;;;;;;WAUX,kBAAS;AACP,wBAQI,KAAKC,KART;AAAA,UACEC,QADF,eACEA,QADF;AAAA,UAEEC,iBAFF,eAEEA,iBAFF;AAAA,UAGEC,MAHF,eAGEA,MAHF;AAAA,UAIEC,SAJF,eAIEA,SAJF;AAAA,UAKEC,IALF,eAKEA,IALF;AAAA,UAMEC,QANF,eAMEA,QANF;AAAA,UAOEC,WAPF,eAOEA,WAPF;AAUA,aAAOL,iBAAiB,eACtB;AAAK,QAAA,KAAK,EAAE;AAAEM,UAAAA,IAAI,EAAE;AAAR;AAAZ,sBACE,gCAAC,iBAAD;AACE,QAAA,SAAS,EAAEJ,SADb;AAEE,QAAA,MAAM,EAAED,MAFV;AAGE,QAAA,IAAI,EAAEE,IAHR;AAIE,QAAA,QAAQ,EAAEC,QAJZ;AAKE,QAAA,WAAW,EAAEC;AALf,SAOGN,QAPH,CADF,CADsB,CAAxB;AAaD;;;EAlCuCQ,kBAAMC,S;;;iCAAnCX,oB,eACQ;AACjBQ,EAAAA,WAAW,EAAEI,sBAAUC,IADN;AAEjBV,EAAAA,iBAAiB,EAAES,sBAAUE,IAAV,CAAeC,UAFjB;AAGjBX,EAAAA,MAAM,EAAEQ,sBAAUC,IAHD;AAIjBX,EAAAA,QAAQ,EAAEU,sBAAUI,SAAV,CAAoB,CAACJ,sBAAUK,OAAV,CAAkBL,sBAAUM,IAA5B,CAAD,EAAoCN,sBAAUM,IAA9C,CAApB,EAAyEH,UAJlE;AAKjBV,EAAAA,SAAS,EAAEO,sBAAUO,MALJ;AAMjBb,EAAAA,IAAI,EAAEM,sBAAUQ,MANC;AAOjBb,EAAAA,QAAQ,EAAEK,sBAAUC;AAPH,C;AAoCd,IAAMQ,IAAI,GAAG;AAClBC,EAAAA,IAAI,EAAE,cAACrB,KAAD,EAAQsB,OAAR,EAAoB;AACxBxB,IAAAA,GAAG,CAAC,gBAAD,EAAmBE,KAAnB,CAAH;AACA,QAAMuB,IAAI,GAAGD,OAAO,CAACE,OAAR,EAAb;AACAxB,IAAAA,KAAK,CAACyB,YAAN,CAAmBF,IAAnB;AACD,GALiB;AAMlBG,EAAAA,OAAO,EAAE,iBAAC1B;AAAM;AAAP,IAAyB;AAChC,WAAO,CAACA,KAAK,CAACM,QAAd;AACD;AARiB,CAAb;;AAWP,IAAMqB,UAAU,GAAG,0BACjB;AAAA,MAAGC,GAAH,QAAGA,GAAH;AAAA,SAAaA,GAAb;AAAA,CADiB,EAEjBR,IAFiB,EAGjB,UAACS,OAAD,EAAUP,OAAV;AAAA,SAAuB;AACrBpB,IAAAA,iBAAiB,EAAE2B,OAAO,CAACC,UAAR,EADE;AAErB3B,IAAAA,MAAM,EAAEmB,OAAO,CAACnB,MAAR;AAFa,GAAvB;AAAA,CAHiB,EAOjBJ,oBAPiB,CAAnB;;eASe6B,UAAIG,OAAJ,CAAYJ,UAAZ,C","sourcesContent":["import React from 'react';\nimport { PlaceHolder } from '@pie-lib/pie-toolbox/drag';\nimport PropTypes from 'prop-types';\nimport { DropTarget } from 'react-dnd';\nimport { uid } from '@pie-lib/pie-toolbox/drag';\nimport debug from 'debug';\n\nconst log = debug('@pie-ui:categorize:droppable-placeholder');\n\nexport class DroppablePlaceholder extends React.Component {\n static propTypes = {\n choiceBoard: PropTypes.bool,\n connectDropTarget: PropTypes.func.isRequired,\n isOver: PropTypes.bool,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n className: PropTypes.string,\n grid: PropTypes.object,\n disabled: PropTypes.bool,\n };\n render() {\n const {\n children,\n connectDropTarget,\n isOver,\n className,\n grid,\n disabled,\n choiceBoard\n } = this.props;\n\n return connectDropTarget(\n <div style={{ flex: 1 }}>\n <PlaceHolder\n className={className}\n isOver={isOver}\n grid={grid}\n disabled={disabled}\n choiceBoard={choiceBoard}\n >\n {children}\n </PlaceHolder>\n </div>,\n );\n }\n}\n\nexport const spec = {\n drop: (props, monitor) => {\n log('[drop] props: ', props);\n const item = monitor.getItem();\n props.onDropChoice(item);\n },\n canDrop: (props /*, monitor*/) => {\n return !props.disabled;\n },\n};\n\nconst WithTarget = DropTarget(\n ({ uid }) => uid,\n spec,\n (connect, monitor) => ({\n connectDropTarget: connect.dropTarget(),\n isOver: monitor.isOver(),\n }),\n)(DroppablePlaceholder);\n\nexport default uid.withUid(WithTarget);\n"],"file":"droppable-placeholder.js"}
1
+ {"version":3,"sources":["../../src/categorize/droppable-placeholder.jsx"],"names":["log","DroppablePlaceholder","props","children","connectDropTarget","isOver","className","grid","disabled","choiceBoard","flex","React","Component","PropTypes","bool","func","isRequired","oneOfType","arrayOf","node","string","object","spec","drop","monitor","item","getItem","onDropChoice","canDrop","WithTarget","uid","connect","dropTarget","withUid"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA;;;;;;AAEA,IAAMA,GAAG,GAAG,uBAAM,0CAAN,CAAZ;;IAEaC,oB;;;;;;;;;;;;WAUX,kBAAS;AACP,wBAQI,KAAKC,KART;AAAA,UACEC,QADF,eACEA,QADF;AAAA,UAEEC,iBAFF,eAEEA,iBAFF;AAAA,UAGEC,MAHF,eAGEA,MAHF;AAAA,UAIEC,SAJF,eAIEA,SAJF;AAAA,UAKEC,IALF,eAKEA,IALF;AAAA,UAMEC,QANF,eAMEA,QANF;AAAA,UAOEC,WAPF,eAOEA,WAPF;AAUA,aAAOL,iBAAiB,eACtB;AAAK,QAAA,KAAK,EAAE;AAAEM,UAAAA,IAAI,EAAE;AAAR;AAAZ,sBACE,gCAAC,iBAAD;AACE,QAAA,SAAS,EAAEJ,SADb;AAEE,QAAA,MAAM,EAAED,MAFV;AAGE,QAAA,IAAI,EAAEE,IAHR;AAIE,QAAA,QAAQ,EAAEC,QAJZ;AAKE,QAAA,WAAW,EAAEC,WALf;AAME,QAAA,YAAY;AANd,SAQGN,QARH,CADF,CADsB,CAAxB;AAcD;;;EAnCuCQ,kBAAMC,S;;;iCAAnCX,oB,eACQ;AACjBQ,EAAAA,WAAW,EAAEI,sBAAUC,IADN;AAEjBV,EAAAA,iBAAiB,EAAES,sBAAUE,IAAV,CAAeC,UAFjB;AAGjBX,EAAAA,MAAM,EAAEQ,sBAAUC,IAHD;AAIjBX,EAAAA,QAAQ,EAAEU,sBAAUI,SAAV,CAAoB,CAACJ,sBAAUK,OAAV,CAAkBL,sBAAUM,IAA5B,CAAD,EAAoCN,sBAAUM,IAA9C,CAApB,EAAyEH,UAJlE;AAKjBV,EAAAA,SAAS,EAAEO,sBAAUO,MALJ;AAMjBb,EAAAA,IAAI,EAAEM,sBAAUQ,MANC;AAOjBb,EAAAA,QAAQ,EAAEK,sBAAUC;AAPH,C;AAqCd,IAAMQ,IAAI,GAAG;AAClBC,EAAAA,IAAI,EAAE,cAACrB,KAAD,EAAQsB,OAAR,EAAoB;AACxBxB,IAAAA,GAAG,CAAC,gBAAD,EAAmBE,KAAnB,CAAH;AACA,QAAMuB,IAAI,GAAGD,OAAO,CAACE,OAAR,EAAb;AACAxB,IAAAA,KAAK,CAACyB,YAAN,CAAmBF,IAAnB;AACD,GALiB;AAMlBG,EAAAA,OAAO,EAAE,iBAAC1B;AAAM;AAAP,IAAyB;AAChC,WAAO,CAACA,KAAK,CAACM,QAAd;AACD;AARiB,CAAb;;AAWP,IAAMqB,UAAU,GAAG,0BACjB;AAAA,MAAGC,GAAH,QAAGA,GAAH;AAAA,SAAaA,GAAb;AAAA,CADiB,EAEjBR,IAFiB,EAGjB,UAACS,OAAD,EAAUP,OAAV;AAAA,SAAuB;AACrBpB,IAAAA,iBAAiB,EAAE2B,OAAO,CAACC,UAAR,EADE;AAErB3B,IAAAA,MAAM,EAAEmB,OAAO,CAACnB,MAAR;AAFa,GAAvB;AAAA,CAHiB,EAOjBJ,oBAPiB,CAAnB;;eASe6B,UAAIG,OAAJ,CAAYJ,UAAZ,C","sourcesContent":["import React from 'react';\nimport { PlaceHolder } from '@pie-lib/pie-toolbox/drag';\nimport PropTypes from 'prop-types';\nimport { DropTarget } from 'react-dnd';\nimport { uid } from '@pie-lib/pie-toolbox/drag';\nimport debug from 'debug';\n\nconst log = debug('@pie-ui:categorize:droppable-placeholder');\n\nexport class DroppablePlaceholder extends React.Component {\n static propTypes = {\n choiceBoard: PropTypes.bool,\n connectDropTarget: PropTypes.func.isRequired,\n isOver: PropTypes.bool,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n className: PropTypes.string,\n grid: PropTypes.object,\n disabled: PropTypes.bool,\n };\n render() {\n const {\n children,\n connectDropTarget,\n isOver,\n className,\n grid,\n disabled,\n choiceBoard\n } = this.props;\n\n return connectDropTarget(\n <div style={{ flex: 1 }}>\n <PlaceHolder\n className={className}\n isOver={isOver}\n grid={grid}\n disabled={disabled}\n choiceBoard={choiceBoard}\n isCategorize\n >\n {children}\n </PlaceHolder>\n </div>,\n );\n }\n}\n\nexport const spec = {\n drop: (props, monitor) => {\n log('[drop] props: ', props);\n const item = monitor.getItem();\n props.onDropChoice(item);\n },\n canDrop: (props /*, monitor*/) => {\n return !props.disabled;\n },\n};\n\nconst WithTarget = DropTarget(\n ({ uid }) => uid,\n spec,\n (connect, monitor) => ({\n connectDropTarget: connect.dropTarget(),\n isOver: monitor.isOver(),\n }),\n)(DroppablePlaceholder);\n\nexport default uid.withUid(WithTarget);\n"],"file":"droppable-placeholder.js"}
@@ -211,7 +211,8 @@ var Categorize = /*#__PURE__*/function (_React$Component) {
211
211
 
212
212
  var choicePosition = choicesPosition || 'above';
213
213
  var style = {
214
- flexDirection: this.getPositionDirection(choicePosition)
214
+ flexDirection: this.getPositionDirection(choicePosition),
215
+ gap: '8px'
215
216
  };
216
217
 
217
218
  var _buildState = (0, _categorize.buildState)(model.categories, model.choices, showCorrect ? model.correctResponse : session.answers, model.correctResponse),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/categorize/index.jsx"],"names":["translator","Translator","log","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":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AACA,IAAQA,UAAR,GAAuBC,sBAAvB,CAAQD,UAAR;AAEA,IAAME,GAAG,GAAG,uBAAM,oBAAN,CAAZ;;IAEaC,U;;;;;AAoBX,sBAAYC,KAAZ,EAAmB;AAAA;;AAAA;AACjB,8BAAMA,KAAN;AADiB,qGASJ,UAACC,CAAD,EAAO;AACpBH,MAAAA,GAAG,CAAC,kBAAD,EAAqBG,CAArB,CAAH;AACA,wBAAqC,MAAKD,KAA1C;AAAA,UAAQE,eAAR,eAAQA,eAAR;AAAA,UAAyBC,OAAzB,eAAyBA,OAAzB;AACA,UAAMC,OAAO,GAAG,0CAAyBH,CAAC,CAACI,EAA3B,EAA+BJ,CAAC,CAACK,UAAjC,EAA6CL,CAAC,CAACM,WAA/C,EAA4DJ,OAAO,CAACC,OAApE,CAAhB;AACAF,MAAAA,eAAe,CAACE,OAAD,CAAf;AACD,KAdkB;AAAA,mGAgBN,UAACE,UAAD,EAAaE,aAAb,EAA+B;AAC1C,yBAA4C,MAAKR,KAAjD;AAAA,UAAQG,OAAR,gBAAQA,OAAR;AAAA,UAAiBD,eAAjB,gBAAiBA,eAAjB;AAAA,UAAkCO,KAAlC,gBAAkCA,KAAlC;;AACA,iBAAsCA,KAAK,IAAI,EAA/C;AAAA,uCAAQC,qBAAR;AAAA,UAAQA,qBAAR,sCAAgC,CAAhC;;AACA,kBAAyBP,OAAO,IAAI,EAApC;AAAA,gCAAQC,OAAR;AAAA,UAAQA,OAAR,8BAAkB,EAAlB;;AACA,UAAIO,UAAJ;;AACA,UAAIH,aAAJ,EAAmB;AACjBV,QAAAA,GAAG,CAAC,yBAAD,EAA4BU,aAAa,CAACF,UAA1C,EAAsD,UAAtD,EAAkEE,aAAlE,CAAH;AACD,OAFD,MAEO;AACLV,QAAAA,GAAG,CAAC,yBAAD,EAA4Bc,SAA5B,EAAuC,UAAvC,EAAmDA,SAAnD,CAAH;AACD;;AAED,UAAMC,MAAM,GAAGT,OAAO,CAACU,IAAR,CAAa,UAAAD,MAAM;AAAA,eAAIA,MAAM,CAACE,QAAP,KAAoBT,UAAxB;AAAA,OAAnB,CAAf,CAX0C,CAa1C;;AACA,UAAIE,aAAa,IAAIE,qBAAqB,KAAK,CAA3C,IAAgDG,MAAhD,IAA0DA,MAAM,CAACG,OAAjE,IAA6EH,MAAM,CAACG,OAAP,CAAeC,MAAf,KAA0B,CAA3G,EAA8G;AAC1GN,QAAAA,UAAU,GAAG,sCACTH,aAAa,CAACH,EADL,EAETG,aAAa,CAACF,UAFL,EAGTA,UAHS,EAITE,aAAa,CAACD,WAJL,EAKTH,OALS,CAAb;AAOAO,QAAAA,UAAU,GAAG,0CAAyBE,MAAM,CAACG,OAAP,CAAe,CAAf,CAAzB,EAA4CV,UAA5C,EAAwD,CAAxD,EAA2DF,OAA3D,CAAb;AACH,OATD,CAWA;AAXA,WAYK,IAAII,aAAa,IAAIE,qBAAqB,GAAG,CAAzC,IAA8CG,MAA9C,IAAwDA,MAAM,CAACG,OAA/D,IAA2EH,MAAM,CAACG,OAAP,CAAeC,MAAf,KAA0BP,qBAAzG,EAAiI;AACpIC,QAAAA,UAAU,GAAGH,aAAa,CAACF,UAAd,GAA2B,sCACpCE,aAAa,CAACH,EADsB,EAEpCG,aAAa,CAACF,UAFsB,EAGpCE,aAAa,CAACF,UAHsB,EAIpCE,aAAa,CAACD,WAJsB,EAKpCH,OALoC,CAA3B,GAMT,0CAAyBI,aAAa,CAACH,EAAvC,EAA2CG,aAAa,CAACF,UAAzD,EAAqEE,aAAa,CAACD,WAAnF,EAAgGH,OAAhG,CANJ;;AAOA,cAAKc,QAAL,CAAc;AAAEC,UAAAA,kBAAkB,EAAE;AAAtB,SAAd;AACD,OATI,CAWL;AAXK,WAYA,IAAIT,qBAAqB,KAAK,CAA1B,IAA+BG,MAA/B,IAAyCA,MAAM,CAACG,OAAhD,IAA2DH,MAAM,CAACG,OAAP,CAAeC,MAAf,GAAwBP,qBAAvF,EAA8G;AACjHC,QAAAA,UAAU,GAAGP,OAAb;;AACA,cAAKc,QAAL,CAAc;AAAEC,UAAAA,kBAAkB,EAAE;AAAtB,SAAd;AACD,OAHI,MAIA;AACHR,QAAAA,UAAU,GAAGH,aAAa,GACpB,sCACEA,aAAa,CAACH,EADhB,EAEEG,aAAa,CAACF,UAFhB,EAGEA,UAHF,EAIEE,aAAa,CAACD,WAJhB,EAKEH,OALF,CADoB,GAQpB,MAAKgB,YAAL,CAAkBd,UAAlB,CARN;AASD;;AAED,UAAIE,aAAJ,EAAmB;AACjBN,QAAAA,eAAe,CAACS,UAAD,CAAf;AACD;AACF,KAzEkB;AAAA,0GA0FC;AAAA,aAClB,MAAKO,QAAL,CAAc;AAAEG,QAAAA,WAAW,EAAE,CAAC,MAAKC,KAAL,CAAWD;AAA3B,OAAd,EAAwD,YAAM;AAC5D,cAAKrB,KAAL,CAAWuB,mBAAX;AACD,OAFD,CADkB;AAAA,KA1FD;AAAA,6GA+FI,UAACC,cAAD,EAAoB;AACzC,UAAIC,aAAJ;;AAEA,cAAQD,cAAR;AACE,aAAK,MAAL;AACEC,UAAAA,aAAa,GAAG,aAAhB;AACA;;AACF,aAAK,OAAL;AACEA,UAAAA,aAAa,GAAG,KAAhB;AACA;;AACF,aAAK,OAAL;AACEA,UAAAA,aAAa,GAAG,QAAhB;AACA;;AACF;AACE;AACAA,UAAAA,aAAa,GAAG,gBAAhB;AACA;AAbJ;;AAgBA,aAAOA,aAAP;AACD,KAnHkB;AAAA,+GAqHM,UAACC,eAAD;AAAA,aACvBA,eADuB,aACvBA,eADuB,uBACvBA,eAAe,CAAEC,IAAjB,CAAsB,UAACC,UAAD;AAAA;;AAAA,eAAgB,0BAAAA,UAAU,CAACC,kBAAX,gFAA+BZ,MAA/B,IAAwC,CAAxD;AAAA,OAAtB,CADuB;AAAA,KArHN;AAGjB,UAAKK,KAAL,GAAa;AACXD,MAAAA,WAAW,EAAE,KADF;AAEXF,MAAAA,kBAAkB,EAAE;AAFT,KAAb;AAHiB;AAOlB;;;;WAoED,0CAAiCW,SAAjC,EAA4C;AAC1C,UAAQrB,KAAR,GAAkB,KAAKT,KAAvB,CAAQS,KAAR;AACA,UAAesB,SAAf,GAA6BD,SAA7B,CAAQrB,KAAR,CAF0C,CAI1C;AACA;AACA;;AACA,UAAIA,KAAK,CAACuB,IAAN,IAAcvB,KAAK,CAACwB,QAApB,IAAgCxB,KAAK,CAACwB,QAAN,KAAmBF,SAAS,CAACE,QAA7D,IACCxB,KAAK,CAACuB,IAAN,KAAepC,UAAU,CAACsC,CAAX,CAAa,0CAAb,EAAyD;AAAEC,QAAAA,GAAG,EAAE1B,KAAK,CAACwB;AAAb,OAAzD,CADpB,EACuG;AACrGxB,QAAAA,KAAK,CAACuB,IAAN,GAAapC,UAAU,CAACsC,CAAX,CAAa,0CAAb,EAAyD;AAAEC,UAAAA,GAAG,EAAEJ,SAAS,CAACE;AAAjB,SAAzD,CAAb;AACD;;AAED,WAAKf,QAAL,CAAc;AAAEG,QAAAA,WAAW,EAAE;AAAf,OAAd;AACD;;;WAgCD,kBAAS;AAAA;;AACP,yBAAoC,KAAKrB,KAAzC;AAAA,UAAQoC,OAAR,gBAAQA,OAAR;AAAA,UAAiB3B,KAAjB,gBAAiBA,KAAjB;AAAA,UAAwBN,OAAxB,gBAAwBA,OAAxB;AACA,wBAA4C,KAAKmB,KAAjD;AAAA,UAAQD,WAAR,eAAQA,WAAR;AAAA,UAAqBF,kBAArB,eAAqBA,kBAArB;AACA,UAAQkB,eAAR,GAAkF5B,KAAlF,CAAQ4B,eAAR;AAAA,UAAyBL,IAAzB,GAAkFvB,KAAlF,CAAyBuB,IAAzB;AAAA,UAA+BM,QAA/B,GAAkF7B,KAAlF,CAA+B6B,QAA/B;AAAA,UAAyCC,GAAzC,GAAkF9B,KAAlF,CAAyC8B,GAAzC;AAAA,UAA8CN,QAA9C,GAAkFxB,KAAlF,CAA8CwB,QAA9C;AAAA,UAAwDvB,qBAAxD,GAAkFD,KAAlF,CAAwDC,qBAAxD;;AACA,kBAAuB6B,GAAG,IAAI,EAA9B;AAAA,UAAQC,IAAR,SAAQA,IAAR;AAAA,UAAcC,IAAd,SAAcA,IAAd;;AACA,UAAMjB,cAAc,GAAGa,eAAe,IAAI,OAA1C;AAEA,UAAMK,KAAK,GAAG;AACZjB,QAAAA,aAAa,EAAE,KAAKkB,oBAAL,CAA0BnB,cAA1B;AADH,OAAd;;AAIA,wBAAyC,4BACvCf,KAAK,CAACmC,UADiC,EAEvCnC,KAAK,CAACO,OAFiC,EAGvCK,WAAW,GAAGZ,KAAK,CAACiB,eAAT,GAA2BvB,OAAO,CAACC,OAHP,EAIvCK,KAAK,CAACiB,eAJiC,CAAzC;AAAA,UAAQkB,UAAR,eAAQA,UAAR;AAAA,UAAoB5B,OAApB,eAAoBA,OAApB;AAAA,UAA6B6B,OAA7B,eAA6BA,OAA7B;;AAOA/C,MAAAA,GAAG,CAAC,qBAAD,EAAwBW,KAAK,CAACqC,QAA9B,CAAH;AAEA,UAAQC,SAAR,GAAyDtC,KAAzD,CAAQsC,SAAR;AAAA,UAAmBC,gBAAnB,GAAyDvC,KAAzD,CAAmBuC,gBAAnB;AAAA,UAAqCtB,eAArC,GAAyDjB,KAAzD,CAAqCiB,eAArC;AACA,UAAMuB,QAAQ,GAAIL,UAAU,IAAIM,IAAI,CAACC,IAAL,CAAUP,UAAU,CAAC3B,MAAX,GAAoB+B,gBAA9B,CAAf,IAAmE,CAApF;AACA,UAAMI,cAAc,GAAG,KAAKC,sBAAL,CAA4B3B,eAA5B,KAAgD,KAAvE;AACA,UAAM4B,WAAW,GACf,CAACjC,WAAW,IAAKmB,IAAI,KAAK,MAAT,IAAmBC,IAAI,KAAK,YAA7C,KAA+DH,QAA/D,IAA2EN,IAA3E,IAAmFoB,cADrF;AAEA,UAAMG,YAAY,GAAG3D,UAAU,CAACsC,CAAX,CAAa,mDAAb,EAAkE;AAAEC,QAAAA,GAAG,EAAE1B,KAAK,CAACwB,QAAb;AAAuBvB,QAAAA,qBAAqB,EAArBA;AAAvB,OAAlE,CAArB;AAEA,0BACE;AAAK,QAAA,SAAS,EAAE0B,OAAO,CAACoB;AAAxB,SACG/C,KAAK,CAACgD,mBAAN,IAA6B,uBAAQhD,KAAK,CAACgD,mBAAd,CAA7B,iBACC,gCAAC,iBAAD,CAAO,QAAP,qBACE,gCAAC,qBAAD;AACE,QAAA,MAAM,EAAE;AACNC,UAAAA,MAAM,EAAE,2BADF;AAENC,UAAAA,OAAO,EAAE;AAFH,SADV;AAKE,QAAA,SAAS,EAAEvB,OAAO,CAACwB;AALrB,sBAOE,gCAAC,uBAAD;AAAe,QAAA,MAAM,EAAEnD,KAAK,CAACgD;AAA7B,QAPF,CADF,CAFJ,EAeGhD,KAAK,CAACoD,MAAN,iBAAgB,gCAAC,uBAAD;AAAe,QAAA,MAAM,EAAEpD,KAAK,CAACoD;AAA7B,QAfnB,eAiBE,gCAAC,wCAAD;AACE,QAAA,IAAI,EAAExC,WAAW,IAAIwB,OAAO,KAAK,KADnC;AAEE,QAAA,OAAO,EAAExB,WAFX;AAGE,QAAA,QAAQ,EAAE,KAAKyC,iBAHjB;AAIE,QAAA,QAAQ,EAAE7B;AAJZ,QAjBF,eAwBE;AAAK,QAAA,SAAS,EAAEG,OAAO,CAAC2B,UAAxB;AAAoC,QAAA,KAAK,EAAErB;AAA3C,sBACE;AAAK,QAAA,KAAK,EAAE;AAAEsB,UAAAA,OAAO,EAAE,MAAX;AAAmBC,UAAAA,IAAI,EAAE;AAAzB;AAAZ,sBACE,gCAAC,sBAAD;AACE,QAAA,KAAK,EAAExD,KADT;AAEE,QAAA,QAAQ,EAAEA,KAAK,CAACqC,QAFlB;AAGE,QAAA,UAAU,EAAEF,UAHd;AAIE,QAAA,YAAY,EAAE,KAAKsB,UAJrB;AAKE,QAAA,cAAc,EAAE,KAAK9C,YALvB;AAME,QAAA,SAAS,EAAE,CAAC2B,SAAS,IAAI,EAAd,EAAkBoB,KAAlB,CAAwB,CAAxB,EAA2BlB,QAA3B;AANb,QADF,CADF,eAWE,gCAAC,mBAAD;AACE,QAAA,QAAQ,EAAExC,KAAK,CAACqC,QADlB;AAEE,QAAA,KAAK,EAAErC,KAFT;AAGE,QAAA,OAAO,EAAEO,OAHX;AAIE,QAAA,cAAc,EAAEQ,cAJlB;AAKE,QAAA,YAAY,EAAE,KAAK0C,UALrB;AAME,QAAA,cAAc,EAAE,KAAK9C;AANvB,QAXF,CAxBF,EA6CGkC,WAAW,iBACV;AACE,QAAA,SAAS,EAAElB,OAAO,CAACJ,IADrB;AAEE,QAAA,uBAAuB,EAAE;AACvBoC,UAAAA,MAAM,EAAEpC;AADe;AAF3B,QA9CJ,EAsDGvB,KAAK,CAAC4D,SAAN,IAAmB,uBAAQ5D,KAAK,CAAC4D,SAAd,CAAnB,iBACC,gCAAC,qBAAD;AAAa,QAAA,MAAM,EAAE;AAAEX,UAAAA,MAAM,EAAE,gBAAV;AAA4BC,UAAAA,OAAO,EAAE;AAArC,SAArB;AAA8E,QAAA,SAAS,EAAEvB,OAAO,CAACwB;AAAjG,sBACE,gCAAC,uBAAD;AAAe,QAAA,MAAM,EAAEnD,KAAK,CAAC4D;AAA7B,QADF,CAvDJ,EA4DG5D,KAAK,CAAC6D,WAAN,IAAqB7D,KAAK,CAAC8D,QAA3B,IAAuC,CAAClD,WAAxC,iBACC,gCAAC,kBAAD;AAAU,QAAA,WAAW,EAAEZ,KAAK,CAAC6D,WAA7B;AAA0C,QAAA,QAAQ,EAAE7D,KAAK,CAAC8D;AAA1D,QA7DJ,eA+DE,gCAAC,qBAAD;AACI,QAAA,KAAK,EAAE,SADX;AAEI,QAAA,IAAI,EAAEhB,YAFV;AAGI,QAAA,IAAI,EAAEpC,kBAHV;AAII,QAAA,OAAO,EAAE;AAAA,iBAAM,MAAI,CAACD,QAAL,CAAc;AAAEC,YAAAA,kBAAkB,EAAE;AAAtB,WAAd,CAAN;AAAA;AAJb,QA/DF,CADF;AAyED;;;EAhP6BqD,kBAAMC,S;;;iCAAzB1E,U,eACQ;AACjBqC,EAAAA,OAAO,EAAEsC,sBAAUC,MAAV,CAAiBC,UADT;AAEjBnE,EAAAA,KAAK,EAAEiE,sBAAUC,MAFA;AAGjBxE,EAAAA,OAAO,EAAEuE,sBAAUG,KAAV,CAAgB;AACvBzE,IAAAA,OAAO,EAAEsE,sBAAUI,OAAV,CACPJ,sBAAUG,KAAV,CAAgB;AACdE,MAAAA,MAAM,EAAEL,sBAAUM,MADJ;AAEdjE,MAAAA,QAAQ,EAAE2D,sBAAUM;AAFN,KAAhB,CADO;AADc,GAAhB,CAHQ;AAWjB9E,EAAAA,eAAe,EAAEwE,sBAAUO,IAAV,CAAeL,UAXf;AAYjBrD,EAAAA,mBAAmB,EAAEmD,sBAAUO,IAAV,CAAeL;AAZnB,C;iCADR7E,U,kBAgBW;AACpB+C,EAAAA,QAAQ,EAAE;AADU,C;;IAmOlBoC,kB;;;;;AACJ,8BAAYlF,KAAZ,EAAmB;AAAA;;AAAA;AACjB,gCAAMA,KAAN;AACA,WAAKmF,GAAL,GAAWA,UAAIC,UAAJ,EAAX;AAFiB;AAGlB;;;;WAED,kBAAS;AACP,0BACE,gCAAC,SAAD,CAAK,QAAL;AAAc,QAAA,KAAK,EAAE,KAAKD;AAA1B,sBACE,gCAAC,UAAD,EAAgB,KAAKnF,KAArB,CADF,CADF;AAKD;;;EAZ8BwE,kBAAMC,S;;AAevC,IAAMY,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzB9B,IAAAA,aAAa,EAAE;AACb+B,MAAAA,KAAK,EAAEA,gBAAMC,IAAN,EADM;AAEbC,MAAAA,eAAe,EAAEF,gBAAMG,UAAN;AAFJ,KADU;AAKzB1D,IAAAA,IAAI,EAAE;AACJ2D,MAAAA,YAAY,EAAEL,KAAK,CAACM,OAAN,CAAcC,IAAd,GAAqB;AAD/B,KALmB;AAQzB9B,IAAAA,UAAU,EAAE;AACV4B,MAAAA,YAAY,EAAEL,KAAK,CAACM,OAAN,CAAcC,IADlB;AAEV7B,MAAAA,OAAO,EAAE,MAFC;AAGVvC,MAAAA,aAAa,EAAE;AAHL,KARa;AAazBmC,IAAAA,WAAW,EAAE;AACXkC,MAAAA,aAAa,EAAER,KAAK,CAACM,OAAN,CAAcC,IAAd,GAAqB;AADzB;AAbY,GAAZ;AAAA,CAAf;;eAkBe,2BAAgB,wBAAWR,MAAX,EAAmBH,kBAAnB,CAAhB,C","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\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 && <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","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","gap","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\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 gap: '8px'\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 && <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,14 +4,14 @@
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
7
- "version": "8.15.2-next.6+a8bb09f90",
7
+ "version": "8.15.3",
8
8
  "description": "",
9
9
  "author": "pie framework developers",
10
10
  "license": "ISC",
11
11
  "dependencies": {
12
12
  "@material-ui/core": "^3.9.2",
13
13
  "@pie-framework/pie-player-events": "^0.1.0",
14
- "@pie-lib/pie-toolbox": "1.16.4",
14
+ "@pie-lib/pie-toolbox": "1.17.3",
15
15
  "classnames": "^2.2.5",
16
16
  "debug": "^4.1.1",
17
17
  "lodash": "^4.17.15",
@@ -20,7 +20,7 @@
20
20
  "react-dnd": "^14.0.5",
21
21
  "react-dom": "^16.8.1"
22
22
  },
23
- "gitHead": "a8bb09f9065b56fcfc103c732db52b4f82c8dbe9",
23
+ "gitHead": "c05a86593b64b6c7a7d48ff484cfa5a2a3ade3ea",
24
24
  "scripts": {
25
25
  "postpublish": "../../scripts/postpublish"
26
26
  },