@pie-element/categorize 12.2.0-next.7 → 12.2.0-next.9

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,19 @@
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
+ # [12.2.0-next.9](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize@12.2.0-next.8...@pie-element/categorize@12.2.0-next.9) (2026-04-16)
7
+
8
+ ### Bug Fixes
9
+
10
+ - bump libs PIE-46, PIE-25, PIE-54, PIE-44, PIE-29, PIE-13, PIE-129 ([5c17838](https://github.com/pie-framework/pie-elements/commit/5c17838a53483437e42dc679a4361e16b7ef5e31))
11
+ - missing spacing PD-5450 ([0d3d604](https://github.com/pie-framework/pie-elements/commit/0d3d604b73843bc0dfcd993a7a433c603f5dec52))
12
+
13
+ # [12.2.0-next.8](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize@12.2.0-next.7...@pie-element/categorize@12.2.0-next.8) (2026-04-13)
14
+
15
+ ### Bug Fixes
16
+
17
+ - bump libs PIE-34 ([9f8b35a](https://github.com/pie-framework/pie-elements/commit/9f8b35a856ca1eba67d5630a358b96226cfca984))
18
+
6
19
  # [12.2.0-next.7](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize@12.2.0-next.6...@pie-element/categorize@12.2.0-next.7) (2026-04-10)
7
20
 
8
21
  ### Features
@@ -3,6 +3,19 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [10.2.0-next.8](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize-configure@10.2.0-next.7...@pie-element/categorize-configure@10.2.0-next.8) (2026-04-16)
7
+
8
+ ### Bug Fixes
9
+
10
+ - bump libs PIE-46, PIE-25, PIE-54, PIE-44, PIE-29, PIE-13, PIE-129 ([5c17838](https://github.com/pie-framework/pie-elements/commit/5c17838a53483437e42dc679a4361e16b7ef5e31))
11
+ - missing spacing PD-5450 ([0d3d604](https://github.com/pie-framework/pie-elements/commit/0d3d604b73843bc0dfcd993a7a433c603f5dec52))
12
+
13
+ # [10.2.0-next.7](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize-configure@10.2.0-next.6...@pie-element/categorize-configure@10.2.0-next.7) (2026-04-13)
14
+
15
+ ### Bug Fixes
16
+
17
+ - bump libs PIE-34 ([9f8b35a](https://github.com/pie-framework/pie-elements/commit/9f8b35a856ca1eba67d5630a358b96226cfca984))
18
+
6
19
  # [10.2.0-next.6](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize-configure@10.2.0-next.5...@pie-element/categorize-configure@10.2.0-next.6) (2026-04-10)
7
20
 
8
21
  ### Features
@@ -13,8 +13,9 @@ var _renderUi = require("@pie-lib/render-ui");
13
13
  const RowLabelContainer = (0, _styles.styled)(_renderUi.InputContainer)(({
14
14
  theme
15
15
  }) => ({
16
- paddingTop: theme.spacing(2),
17
- width: '100%'
16
+ width: '100%',
17
+ paddingTop: theme.spacing(1),
18
+ marginTop: theme.spacing(1)
18
19
  }));
19
20
  const RowLabel = ({
20
21
  categoriesPerRow,
@@ -1 +1 @@
1
- {"version":3,"file":"RowLabel.js","names":["_utils","require","_react","_interopRequireDefault","_styles","_editableHtmlTipTap","_renderUi","RowLabelContainer","styled","InputContainer","theme","paddingTop","spacing","width","RowLabel","categoriesPerRow","configuration","disabled","markup","imageSupport","onChange","toolbarOpts","spellCheck","maxImageWidth","maxImageHeight","uploadSoundSupport","mathMlOptions","rowLabels","baseInputConfiguration","default","createElement","style","gridColumn","label","nonEmpty","pluginProps","getPluginProps","inputConfiguration","languageCharactersProps","language","exports"],"sources":["../../../src/design/categories/RowLabel.jsx"],"sourcesContent":["import { getPluginProps } from '../utils';\nimport React from 'react';\nimport { styled } from '@mui/material/styles';\nimport EditableHtml from '@pie-lib/editable-html-tip-tap';\nimport { InputContainer } from '@pie-lib/render-ui';\n\nconst RowLabelContainer = styled(InputContainer)(({ theme }) => ({\n paddingTop: theme.spacing(2),\n width: '100%',\n}));\n\nexport const RowLabel = ({\n categoriesPerRow,\n configuration,\n disabled,\n markup,\n imageSupport,\n onChange,\n toolbarOpts,\n spellCheck,\n maxImageWidth,\n maxImageHeight,\n uploadSoundSupport,\n mathMlOptions = {},\n }) => {\n const { rowLabels, baseInputConfiguration } = configuration;\n\n return (\n <div\n style={{\n gridColumn: `1/${categoriesPerRow + 1}`,\n width: '100%',\n }}\n >\n <RowLabelContainer label=\"Row Label\">\n <EditableHtml\n disabled={disabled}\n markup={markup}\n onChange={onChange}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(rowLabels?.inputConfiguration, baseInputConfiguration)}\n spellCheck={spellCheck}\n maxImageWidth={maxImageWidth}\n maxImageHeight={maxImageHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </RowLabelContainer>\n </div>\n );\n };\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,mBAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,SAAA,GAAAL,OAAA;AAEA,MAAMM,iBAAiB,GAAG,IAAAC,cAAM,EAACC,wBAAc,CAAC,CAAC,CAAC;EAAEC;AAAM,CAAC,MAAM;EAC/DC,UAAU,EAAED,KAAK,CAACE,OAAO,CAAC,CAAC,CAAC;EAC5BC,KAAK,EAAE;AACT,CAAC,CAAC,CAAC;AAEI,MAAMC,QAAQ,GAAGA,CAAC;EACrBC,gBAAgB;EAChBC,aAAa;EACbC,QAAQ;EACRC,MAAM;EACNC,YAAY;EACZC,QAAQ;EACRC,WAAW;EACXC,UAAU;EACVC,aAAa;EACbC,cAAc;EACdC,kBAAkB;EAClBC,aAAa,GAAG,CAAC;AACnB,CAAC,KAAK;EACJ,MAAM;IAAEC,SAAS;IAAEC;EAAuB,CAAC,GAAGZ,aAAa;EAE3D,oBACEd,MAAA,CAAA2B,OAAA,CAAAC,aAAA;IACEC,KAAK,EAAE;MACLC,UAAU,EAAE,KAAKjB,gBAAgB,GAAG,CAAC,EAAE;MACvCF,KAAK,EAAE;IACT;EAAE,gBAEFX,MAAA,CAAA2B,OAAA,CAAAC,aAAA,CAACvB,iBAAiB;IAAC0B,KAAK,EAAC;EAAW,gBAClC/B,MAAA,CAAA2B,OAAA,CAAAC,aAAA,CAACzB,mBAAA,CAAAwB,OAAY;IACXZ,QAAQ,EAAEA,QAAS;IACnBC,MAAM,EAAEA,MAAO;IACfE,QAAQ,EAAEA,QAAS;IACnBD,YAAY,EAAEA,YAAa;IAC3Be,QAAQ,EAAE,KAAM;IAChBb,WAAW,EAAEA,WAAY;IACzBc,WAAW,EAAE,IAAAC,qBAAc,EAACT,SAAS,EAAEU,kBAAkB,EAAET,sBAAsB,CAAE;IACnFN,UAAU,EAAEA,UAAW;IACvBC,aAAa,EAAEA,aAAc;IAC7BC,cAAc,EAAEA,cAAe;IAC/BC,kBAAkB,EAAEA,kBAAmB;IACvCa,uBAAuB,EAAE,CAAC;MAAEC,QAAQ,EAAE;IAAU,CAAC,EAAE;MAAEA,QAAQ,EAAE;IAAU,CAAC,CAAE;IAC5Eb,aAAa,EAAEA;EAAc,CAC9B,CACgB,CAChB,CAAC;AAEV,CAAC;AAACc,OAAA,CAAA1B,QAAA,GAAAA,QAAA","ignoreList":[]}
1
+ {"version":3,"file":"RowLabel.js","names":["_utils","require","_react","_interopRequireDefault","_styles","_editableHtmlTipTap","_renderUi","RowLabelContainer","styled","InputContainer","theme","width","paddingTop","spacing","marginTop","RowLabel","categoriesPerRow","configuration","disabled","markup","imageSupport","onChange","toolbarOpts","spellCheck","maxImageWidth","maxImageHeight","uploadSoundSupport","mathMlOptions","rowLabels","baseInputConfiguration","default","createElement","style","gridColumn","label","nonEmpty","pluginProps","getPluginProps","inputConfiguration","languageCharactersProps","language","exports"],"sources":["../../../src/design/categories/RowLabel.jsx"],"sourcesContent":["import { getPluginProps } from '../utils';\nimport React from 'react';\nimport { styled } from '@mui/material/styles';\nimport EditableHtml from '@pie-lib/editable-html-tip-tap';\nimport { InputContainer } from '@pie-lib/render-ui';\n\nconst RowLabelContainer = styled(InputContainer)(({ theme }) => ({\n width: '100%',\n paddingTop: theme.spacing(1),\n marginTop: theme.spacing(1),\n}));\n\nexport const RowLabel = ({\n categoriesPerRow,\n configuration,\n disabled,\n markup,\n imageSupport,\n onChange,\n toolbarOpts,\n spellCheck,\n maxImageWidth,\n maxImageHeight,\n uploadSoundSupport,\n mathMlOptions = {},\n }) => {\n const { rowLabels, baseInputConfiguration } = configuration;\n\n return (\n <div\n style={{\n gridColumn: `1/${categoriesPerRow + 1}`,\n width: '100%',\n }}\n >\n <RowLabelContainer label=\"Row Label\">\n <EditableHtml\n disabled={disabled}\n markup={markup}\n onChange={onChange}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(rowLabels?.inputConfiguration, baseInputConfiguration)}\n spellCheck={spellCheck}\n maxImageWidth={maxImageWidth}\n maxImageHeight={maxImageHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </RowLabelContainer>\n </div>\n );\n };\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,mBAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,SAAA,GAAAL,OAAA;AAEA,MAAMM,iBAAiB,GAAG,IAAAC,cAAM,EAACC,wBAAc,CAAC,CAAC,CAAC;EAAEC;AAAM,CAAC,MAAM;EAC/DC,KAAK,EAAE,MAAM;EACbC,UAAU,EAAEF,KAAK,CAACG,OAAO,CAAC,CAAC,CAAC;EAC5BC,SAAS,EAAEJ,KAAK,CAACG,OAAO,CAAC,CAAC;AAC5B,CAAC,CAAC,CAAC;AAEI,MAAME,QAAQ,GAAGA,CAAC;EACrBC,gBAAgB;EAChBC,aAAa;EACbC,QAAQ;EACRC,MAAM;EACNC,YAAY;EACZC,QAAQ;EACRC,WAAW;EACXC,UAAU;EACVC,aAAa;EACbC,cAAc;EACdC,kBAAkB;EAClBC,aAAa,GAAG,CAAC;AACnB,CAAC,KAAK;EACJ,MAAM;IAAEC,SAAS;IAAEC;EAAuB,CAAC,GAAGZ,aAAa;EAE3D,oBACEf,MAAA,CAAA4B,OAAA,CAAAC,aAAA;IACEC,KAAK,EAAE;MACLC,UAAU,EAAE,KAAKjB,gBAAgB,GAAG,CAAC,EAAE;MACvCL,KAAK,EAAE;IACT;EAAE,gBAEFT,MAAA,CAAA4B,OAAA,CAAAC,aAAA,CAACxB,iBAAiB;IAAC2B,KAAK,EAAC;EAAW,gBAClChC,MAAA,CAAA4B,OAAA,CAAAC,aAAA,CAAC1B,mBAAA,CAAAyB,OAAY;IACXZ,QAAQ,EAAEA,QAAS;IACnBC,MAAM,EAAEA,MAAO;IACfE,QAAQ,EAAEA,QAAS;IACnBD,YAAY,EAAEA,YAAa;IAC3Be,QAAQ,EAAE,KAAM;IAChBb,WAAW,EAAEA,WAAY;IACzBc,WAAW,EAAE,IAAAC,qBAAc,EAACT,SAAS,EAAEU,kBAAkB,EAAET,sBAAsB,CAAE;IACnFN,UAAU,EAAEA,UAAW;IACvBC,aAAa,EAAEA,aAAc;IAC7BC,cAAc,EAAEA,cAAe;IAC/BC,kBAAkB,EAAEA,kBAAmB;IACvCa,uBAAuB,EAAE,CAAC;MAAEC,QAAQ,EAAE;IAAU,CAAC,EAAE;MAAEA,QAAQ,EAAE;IAAU,CAAC,CAAE;IAC5Eb,aAAa,EAAEA;EAAc,CAC9B,CACgB,CAChB,CAAC;AAEV,CAAC;AAACc,OAAA,CAAA1B,QAAA,GAAAA,QAAA","ignoreList":[]}
@@ -20,8 +20,8 @@ const CategoriesHolder = (0, _styles.styled)('div')(({
20
20
  theme
21
21
  }) => ({
22
22
  display: 'grid',
23
- gridRowGap: `${theme.spacing(1)}px`,
24
- gridColumnGap: `${theme.spacing(1)}px`
23
+ gridRowGap: theme.spacing(1),
24
+ gridColumnGap: theme.spacing(1)
25
25
  }));
26
26
  const RowLabel = (0, _styles.styled)('div')({
27
27
  gridColumn: '1 / 3'
@@ -1 +1 @@
1
- {"version":3,"file":"alternateResponses.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_categorize","_category","CategoriesContainer","styled","theme","marginBottom","spacing","CategoriesHolder","display","gridRowGap","gridColumnGap","RowLabel","gridColumn","AlternateResponses","React","Component","constructor","args","_defineProperty2","default","category","choice","choiceIndex","model","altIndex","onModelChanged","props","correctResponse","removeChoiceFromAlternate","id","render","configuration","categories","imageSupport","spellCheck","uploadSoundSupport","mathMlOptions","categoriesPerRow","errors","rowLabels","duplicateAlternate","holderStyle","gridTemplateColumns","isDuplicated","index","createElement","style","map","hasRowLabel","rowIndex","Fragment","key","width","dangerouslySetInnerHTML","__html","alternateResponseIndex","onDeleteChoice","deleteChoiceFromCategory","isAlternate","exports","PropTypes","number","isRequired","object","shape","add","func","delete","array","bool","_default"],"sources":["../../../src/design/categories/alternateResponses.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport { removeChoiceFromAlternate } from '@pie-lib/categorize';\n\nimport Category from './category';\n\nconst CategoriesContainer = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(2.5),\n}));\n\nconst CategoriesHolder = styled('div')(({ theme }) => ({\n display: 'grid',\n gridRowGap: `${theme.spacing(1)}px`,\n gridColumnGap: `${theme.spacing(1)}px`,\n}));\n\nconst RowLabel = styled('div')({\n gridColumn: '1 / 3',\n});\n\nexport class AlternateResponses extends React.Component {\n static propTypes = {\n altIndex: PropTypes.number.isRequired,\n configuration: PropTypes.object,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n categories: PropTypes.array,\n onModelChanged: PropTypes.func,\n model: PropTypes.object.isRequired,\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n spellCheck: PropTypes.bool,\n };\n\n\n deleteChoiceFromCategory = (category, choice, choiceIndex) => {\n const { model, altIndex, onModelChanged } = this.props;\n\n const correctResponse = removeChoiceFromAlternate(\n choice.id,\n category.id,\n choiceIndex,\n altIndex,\n model.correctResponse,\n );\n\n onModelChanged({ correctResponse });\n };\n\n render() {\n const {\n altIndex,\n model,\n configuration,\n categories,\n imageSupport,\n spellCheck,\n uploadSoundSupport,\n mathMlOptions = {},\n } = this.props;\n const { categoriesPerRow, errors, rowLabels } = model;\n const { duplicateAlternate } = errors || {};\n\n const holderStyle = {\n gridTemplateColumns: `repeat(${categoriesPerRow}, 1fr)`,\n };\n const isDuplicated = duplicateAlternate ? duplicateAlternate.index === altIndex : false;\n\n return (\n <CategoriesContainer>\n <CategoriesHolder style={holderStyle}>\n {categories.map((category, index) => {\n const hasRowLabel = index % categoriesPerRow === 0;\n const rowIndex = index / categoriesPerRow;\n\n return (\n <React.Fragment key={index}>\n {hasRowLabel && (\n <RowLabel\n style={{\n gridColumn: `1/${categoriesPerRow + 1}`,\n width: '100%',\n }}\n dangerouslySetInnerHTML={{\n __html: rowLabels[rowIndex] || '',\n }}\n />\n )}\n\n <Category\n key={index}\n alternateResponseIndex={altIndex}\n imageSupport={imageSupport}\n isDuplicated={isDuplicated && duplicateAlternate.category === category.id}\n category={category}\n spellCheck={spellCheck}\n onDeleteChoice={(choice, choiceIndex) => this.deleteChoiceFromCategory(category, choice, choiceIndex)}\n uploadSoundSupport={uploadSoundSupport}\n mathMlOptions={mathMlOptions}\n configuration={configuration}\n isAlternate={true}\n />\n </React.Fragment>\n );\n })}\n </CategoriesHolder>\n </CategoriesContainer>\n );\n }\n}\n\nexport default AlternateResponses;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"alternateResponses.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_categorize","_category","CategoriesContainer","styled","theme","marginBottom","spacing","CategoriesHolder","display","gridRowGap","gridColumnGap","RowLabel","gridColumn","AlternateResponses","React","Component","constructor","args","_defineProperty2","default","category","choice","choiceIndex","model","altIndex","onModelChanged","props","correctResponse","removeChoiceFromAlternate","id","render","configuration","categories","imageSupport","spellCheck","uploadSoundSupport","mathMlOptions","categoriesPerRow","errors","rowLabels","duplicateAlternate","holderStyle","gridTemplateColumns","isDuplicated","index","createElement","style","map","hasRowLabel","rowIndex","Fragment","key","width","dangerouslySetInnerHTML","__html","alternateResponseIndex","onDeleteChoice","deleteChoiceFromCategory","isAlternate","exports","PropTypes","number","isRequired","object","shape","add","func","delete","array","bool","_default"],"sources":["../../../src/design/categories/alternateResponses.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport { removeChoiceFromAlternate } from '@pie-lib/categorize';\n\nimport Category from './category';\n\nconst CategoriesContainer = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(2.5),\n}));\n\nconst CategoriesHolder = styled('div')(({ theme }) => ({\n display: 'grid',\n gridRowGap: theme.spacing(1),\n gridColumnGap: theme.spacing(1),\n}));\n\nconst RowLabel = styled('div')({\n gridColumn: '1 / 3',\n});\n\nexport class AlternateResponses extends React.Component {\n static propTypes = {\n altIndex: PropTypes.number.isRequired,\n configuration: PropTypes.object,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n categories: PropTypes.array,\n onModelChanged: PropTypes.func,\n model: PropTypes.object.isRequired,\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n spellCheck: PropTypes.bool,\n };\n\n\n deleteChoiceFromCategory = (category, choice, choiceIndex) => {\n const { model, altIndex, onModelChanged } = this.props;\n\n const correctResponse = removeChoiceFromAlternate(\n choice.id,\n category.id,\n choiceIndex,\n altIndex,\n model.correctResponse,\n );\n\n onModelChanged({ correctResponse });\n };\n\n render() {\n const {\n altIndex,\n model,\n configuration,\n categories,\n imageSupport,\n spellCheck,\n uploadSoundSupport,\n mathMlOptions = {},\n } = this.props;\n const { categoriesPerRow, errors, rowLabels } = model;\n const { duplicateAlternate } = errors || {};\n\n const holderStyle = {\n gridTemplateColumns: `repeat(${categoriesPerRow}, 1fr)`,\n };\n const isDuplicated = duplicateAlternate ? duplicateAlternate.index === altIndex : false;\n\n return (\n <CategoriesContainer>\n <CategoriesHolder style={holderStyle}>\n {categories.map((category, index) => {\n const hasRowLabel = index % categoriesPerRow === 0;\n const rowIndex = index / categoriesPerRow;\n\n return (\n <React.Fragment key={index}>\n {hasRowLabel && (\n <RowLabel\n style={{\n gridColumn: `1/${categoriesPerRow + 1}`,\n width: '100%',\n }}\n dangerouslySetInnerHTML={{\n __html: rowLabels[rowIndex] || '',\n }}\n />\n )}\n\n <Category\n key={index}\n alternateResponseIndex={altIndex}\n imageSupport={imageSupport}\n isDuplicated={isDuplicated && duplicateAlternate.category === category.id}\n category={category}\n spellCheck={spellCheck}\n onDeleteChoice={(choice, choiceIndex) => this.deleteChoiceFromCategory(category, choice, choiceIndex)}\n uploadSoundSupport={uploadSoundSupport}\n mathMlOptions={mathMlOptions}\n configuration={configuration}\n isAlternate={true}\n />\n </React.Fragment>\n );\n })}\n </CategoriesHolder>\n </CategoriesContainer>\n );\n }\n}\n\nexport default AlternateResponses;\n"],"mappings":"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","ignoreList":[]}
@@ -30,9 +30,7 @@ const StyledCard = (0, _styles.styled)(_Card.default, {
30
30
  const StyledCardActions = (0, _styles.styled)(_CardActions.default)(({
31
31
  theme
32
32
  }) => ({
33
- padding: 0,
34
- paddingBottom: 0,
35
- paddingTop: theme.spacing(1)
33
+ padding: `${theme.spacing(1)} 0 0`
36
34
  }));
37
35
  const CategoryHeader = (0, _styles.styled)('div')(({
38
36
  theme
@@ -1 +1 @@
1
- {"version":3,"file":"category.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_Card","_CardActions","_inputHeader","_buttons","_droppablePlaceholder","StyledCard","styled","Card","shouldForwardProp","prop","theme","isDuplicated","minWidth","padding","spacing","overflow","border","StyledCardActions","CardActions","paddingBottom","paddingTop","CategoryHeader","margin","ErrorText","fontSize","typography","color","palette","error","main","Category","React","Component","constructor","args","_defineProperty2","default","l","category","onChange","props","label","render","alternateResponseIndex","configuration","deleteFocusedEl","focusedEl","index","onDelete","onDeleteChoice","imageSupport","spellCheck","toolbarOpts","maxImageWidth","maxImageHeight","uploadSoundSupport","mathMlOptions","isCategoryHeaderDisabled","createElement","disabled","changeLabel","dangerouslySetInnerHTML","__html","choices","categoryId","id","extraStyles","minHeight","isAlternate","DeleteButton","onClick","exports","PropTypes","number","object","isRequired","defaultImageMaxHeight","defaultImageMaxWidth","func","string","bool","shape","add","delete","_default"],"sources":["../../../src/design/categories/category.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport Card from '@mui/material/Card';\nimport CardActions from '@mui/material/CardActions';\n\nimport InputHeader from '../input-header';\nimport { DeleteButton } from '../buttons';\nimport PlaceHolder from './droppable-placeholder';\n\nconst StyledCard = styled(Card, {\n shouldForwardProp: (prop) => prop !== 'isDuplicated',\n})(({ theme, isDuplicated }) => ({\n minWidth: '196px',\n padding: theme.spacing(1),\n overflow: 'visible',\n ...(isDuplicated && {\n border: '1px solid red',\n }),\n}));\n\nconst StyledCardActions = styled(CardActions)(({ theme }) => ({\n padding: 0,\n paddingBottom: 0,\n paddingTop: theme.spacing(1),\n}));\n\nconst CategoryHeader = styled('div')(({ theme }) => ({\n padding: theme.spacing(2),\n '& p': {\n margin: 0,\n },\n}));\n\nconst ErrorText = styled('div')(({ theme }) => ({\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingBottom: theme.spacing(1),\n}));\n\nexport class Category extends React.Component {\n static propTypes = {\n alternateResponseIndex: PropTypes.number,\n category: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n defaultImageMaxHeight: PropTypes.number,\n defaultImageMaxWidth: PropTypes.number,\n deleteFocusedEl: PropTypes.func,\n focusedEl: PropTypes.number,\n index: PropTypes.number,\n error: PropTypes.string,\n isDuplicated: PropTypes.bool,\n maxImageWidth: PropTypes.object,\n maxImageHeight: PropTypes.object,\n onChange: PropTypes.func,\n onDelete: PropTypes.func,\n onDeleteChoice: PropTypes.func,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n toolbarOpts: PropTypes.object,\n spellCheck: PropTypes.bool,\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n isAlternate: PropTypes.bool,\n };\n\n static defaultProps = {};\n\n changeLabel = (l) => {\n const { category, onChange } = this.props;\n category.label = l;\n onChange(category);\n };\n\n render() {\n const {\n alternateResponseIndex,\n category,\n configuration,\n deleteFocusedEl,\n focusedEl,\n index,\n error,\n isDuplicated,\n onDelete,\n onDeleteChoice,\n imageSupport,\n spellCheck,\n toolbarOpts,\n maxImageWidth,\n maxImageHeight,\n uploadSoundSupport,\n mathMlOptions = {},\n } = this.props;\n const isCategoryHeaderDisabled = !!alternateResponseIndex || alternateResponseIndex === 0;\n \n return (\n <StyledCard isDuplicated={isDuplicated}>\n <span>\n {!isCategoryHeaderDisabled ? (\n <InputHeader\n label={category.label}\n focusedEl={focusedEl}\n deleteFocusedEl={deleteFocusedEl}\n index={index}\n disabled={!!alternateResponseIndex || alternateResponseIndex === 0}\n error={error}\n onChange={this.changeLabel}\n onDelete={onDelete}\n imageSupport={imageSupport}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n maxImageWidth={maxImageWidth}\n maxImageHeight={maxImageHeight}\n uploadSoundSupport={uploadSoundSupport}\n mathMlOptions={mathMlOptions}\n configuration={configuration}\n />\n ) : (\n <CategoryHeader\n dangerouslySetInnerHTML={{\n __html: category.label,\n }}\n />\n )}\n {error && <ErrorText>{error}</ErrorText>}\n </span>\n <PlaceHolder\n alternateResponseIndex={alternateResponseIndex}\n category={category}\n choices={category.choices}\n onDeleteChoice={onDeleteChoice}\n categoryId={category.id}\n extraStyles={{ minHeight: '100px', }}\n isAlternate={this.props.isAlternate}\n />\n {onDelete && (\n <StyledCardActions>\n <DeleteButton label={'delete'} onClick={onDelete} />\n </StyledCardActions>\n )}\n </StyledCard>\n );\n }\n}\n\nexport default Category;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"category.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_Card","_CardActions","_inputHeader","_buttons","_droppablePlaceholder","StyledCard","styled","Card","shouldForwardProp","prop","theme","isDuplicated","minWidth","padding","spacing","overflow","border","StyledCardActions","CardActions","CategoryHeader","margin","ErrorText","fontSize","typography","color","palette","error","main","paddingBottom","Category","React","Component","constructor","args","_defineProperty2","default","l","category","onChange","props","label","render","alternateResponseIndex","configuration","deleteFocusedEl","focusedEl","index","onDelete","onDeleteChoice","imageSupport","spellCheck","toolbarOpts","maxImageWidth","maxImageHeight","uploadSoundSupport","mathMlOptions","isCategoryHeaderDisabled","createElement","disabled","changeLabel","dangerouslySetInnerHTML","__html","choices","categoryId","id","extraStyles","minHeight","isAlternate","DeleteButton","onClick","exports","PropTypes","number","object","isRequired","defaultImageMaxHeight","defaultImageMaxWidth","func","string","bool","shape","add","delete","_default"],"sources":["../../../src/design/categories/category.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport Card from '@mui/material/Card';\nimport CardActions from '@mui/material/CardActions';\n\nimport InputHeader from '../input-header';\nimport { DeleteButton } from '../buttons';\nimport PlaceHolder from './droppable-placeholder';\n\nconst StyledCard = styled(Card, {\n shouldForwardProp: (prop) => prop !== 'isDuplicated',\n})(({ theme, isDuplicated }) => ({\n minWidth: '196px',\n padding: theme.spacing(1),\n overflow: 'visible',\n ...(isDuplicated && {\n border: '1px solid red',\n }),\n}));\n\nconst StyledCardActions = styled(CardActions)(({ theme }) => ({\n padding: `${theme.spacing(1)} 0 0`,\n}));\n\nconst CategoryHeader = styled('div')(({ theme }) => ({\n padding: theme.spacing(2),\n '& p': {\n margin: 0,\n },\n}));\n\nconst ErrorText = styled('div')(({ theme }) => ({\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingBottom: theme.spacing(1),\n}));\n\nexport class Category extends React.Component {\n static propTypes = {\n alternateResponseIndex: PropTypes.number,\n category: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n defaultImageMaxHeight: PropTypes.number,\n defaultImageMaxWidth: PropTypes.number,\n deleteFocusedEl: PropTypes.func,\n focusedEl: PropTypes.number,\n index: PropTypes.number,\n error: PropTypes.string,\n isDuplicated: PropTypes.bool,\n maxImageWidth: PropTypes.object,\n maxImageHeight: PropTypes.object,\n onChange: PropTypes.func,\n onDelete: PropTypes.func,\n onDeleteChoice: PropTypes.func,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n toolbarOpts: PropTypes.object,\n spellCheck: PropTypes.bool,\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n isAlternate: PropTypes.bool,\n };\n\n static defaultProps = {};\n\n changeLabel = (l) => {\n const { category, onChange } = this.props;\n category.label = l;\n onChange(category);\n };\n\n render() {\n const {\n alternateResponseIndex,\n category,\n configuration,\n deleteFocusedEl,\n focusedEl,\n index,\n error,\n isDuplicated,\n onDelete,\n onDeleteChoice,\n imageSupport,\n spellCheck,\n toolbarOpts,\n maxImageWidth,\n maxImageHeight,\n uploadSoundSupport,\n mathMlOptions = {},\n } = this.props;\n const isCategoryHeaderDisabled = !!alternateResponseIndex || alternateResponseIndex === 0;\n\n return (\n <StyledCard isDuplicated={isDuplicated}>\n <span>\n {!isCategoryHeaderDisabled ? (\n <InputHeader\n label={category.label}\n focusedEl={focusedEl}\n deleteFocusedEl={deleteFocusedEl}\n index={index}\n disabled={!!alternateResponseIndex || alternateResponseIndex === 0}\n error={error}\n onChange={this.changeLabel}\n onDelete={onDelete}\n imageSupport={imageSupport}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n maxImageWidth={maxImageWidth}\n maxImageHeight={maxImageHeight}\n uploadSoundSupport={uploadSoundSupport}\n mathMlOptions={mathMlOptions}\n configuration={configuration}\n />\n ) : (\n <CategoryHeader\n dangerouslySetInnerHTML={{\n __html: category.label,\n }}\n />\n )}\n {error && <ErrorText>{error}</ErrorText>}\n </span>\n <PlaceHolder\n alternateResponseIndex={alternateResponseIndex}\n category={category}\n choices={category.choices}\n onDeleteChoice={onDeleteChoice}\n categoryId={category.id}\n extraStyles={{ minHeight: '100px', }}\n isAlternate={this.props.isAlternate}\n />\n {onDelete && (\n <StyledCardActions>\n <DeleteButton label={'delete'} onClick={onDelete} />\n </StyledCardActions>\n )}\n </StyledCard>\n );\n }\n}\n\nexport default Category;\n"],"mappings":"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","ignoreList":[]}
@@ -18,15 +18,13 @@ const HelperText = (0, _styles.styled)('div')(({
18
18
  }) => ({
19
19
  display: 'flex',
20
20
  alignItems: 'center',
21
+ justifyContent: 'center',
21
22
  fontSize: theme.typography.fontSize - 2,
22
23
  color: `rgba(${theme.palette.common.black}, 0.4)`,
23
24
  width: '100%',
24
25
  height: '100%'
25
26
  }));
26
27
  const Helper = () => /*#__PURE__*/_react.default.createElement(HelperText, null, "Drag your correct answers here");
27
- const DroppablePlaceholderContainer = (0, _styles.styled)('div')({
28
- minHeight: '100px'
29
- });
30
28
  const Previews = ({
31
29
  alternateResponseIndex,
32
30
  category,
@@ -69,7 +67,7 @@ const DroppablePlaceHolder = ({
69
67
  });
70
68
  return /*#__PURE__*/_react.default.createElement("div", {
71
69
  ref: setNodeRef
72
- }, /*#__PURE__*/_react.default.createElement(DroppablePlaceholderContainer, null, /*#__PURE__*/_react.default.createElement(_drag.PlaceHolder, {
70
+ }, /*#__PURE__*/_react.default.createElement(_drag.PlaceHolder, {
73
71
  isOver: isOver,
74
72
  extraStyles: {
75
73
  width: '100%',
@@ -81,7 +79,7 @@ const DroppablePlaceHolder = ({
81
79
  category: category,
82
80
  choices: choices,
83
81
  onDeleteChoice: onDeleteChoice
84
- }))));
82
+ })));
85
83
  };
86
84
  DroppablePlaceHolder.propTypes = {
87
85
  alternateResponseIndex: _propTypes.default.number,
@@ -1 +1 @@
1
- {"version":3,"file":"droppable-placeholder.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_choicePreview","_core","_drag","_debug","log","debug","HelperText","styled","theme","display","alignItems","fontSize","typography","color","palette","common","black","width","height","Helper","default","createElement","DroppablePlaceholderContainer","minHeight","Previews","alternateResponseIndex","category","choices","onDeleteChoice","Fragment","map","c","index","choice","key","choiceIndex","onDelete","propTypes","PropTypes","number","object","array","func","DroppablePlaceHolder","categoryId","isAlternate","setNodeRef","isOver","useDroppable","id","data","accepts","type","ref","PlaceHolder","extraStyles","length","string","isRequired","bool","_default","exports","uid","withUid"],"sources":["../../../src/design/categories/droppable-placeholder.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport ChoicePreview from './choice-preview';\nimport { useDroppable } from '@dnd-kit/core';\nimport { uid, PlaceHolder } from '@pie-lib/drag';\nimport debug from 'debug';\n\nconst log = debug('@pie-element:categorize:configure');\n\nconst HelperText = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n fontSize: theme.typography.fontSize - 2,\n color: `rgba(${theme.palette.common.black}, 0.4)`,\n width: '100%',\n height: '100%',\n}));\n\nconst Helper = () => <HelperText>Drag your correct answers here</HelperText>;\n\nconst DroppablePlaceholderContainer = styled('div')({\n minHeight: '100px',\n});\n\nconst Previews = ({ alternateResponseIndex, category, choices, onDeleteChoice }) => (\n <React.Fragment>\n {(choices || []).map((c, index) =>\n c && (\n <ChoicePreview\n alternateResponseIndex={alternateResponseIndex}\n category={category}\n choice={c}\n key={index}\n choiceIndex={index}\n onDelete={(choice) => onDeleteChoice(choice, index)}\n />\n )\n )}\n </React.Fragment>\n);\n\nPreviews.propTypes = {\n alternateResponseIndex: PropTypes.number,\n category: PropTypes.object,\n choices: PropTypes.array,\n onDeleteChoice: PropTypes.func,\n};\n\nconst DroppablePlaceHolder = ({\n alternateResponseIndex,\n category,\n choices,\n onDeleteChoice,\n categoryId,\n isAlternate\n}) => {\n const { setNodeRef, isOver } = useDroppable({\n id: `${categoryId}-${isAlternate ? 'alternate' : 'standard'}`,\n data: {\n accepts: ['choice', 'choice-preview'],\n alternateResponseIndex,\n categoryId,\n type: isAlternate ? 'category-alternate' : 'category',\n id: categoryId,\n },\n });\n\n return (\n <div ref={setNodeRef}>\n <DroppablePlaceholderContainer>\n <PlaceHolder\n isOver={isOver}\n extraStyles={{\n width: '100%',\n minHeight: '100px',\n height: 'auto',\n }}>\n {(choices || []).length === 0 ? (\n <Helper />\n ) : (\n <Previews\n alternateResponseIndex={alternateResponseIndex}\n category={category}\n choices={choices}\n onDeleteChoice={onDeleteChoice}\n />\n )}\n </PlaceHolder>\n </DroppablePlaceholderContainer>\n </div>\n );\n};\n\nDroppablePlaceHolder.propTypes = {\n alternateResponseIndex: PropTypes.number,\n category: PropTypes.object,\n choices: PropTypes.array,\n onDeleteChoice: PropTypes.func,\n categoryId: PropTypes.string.isRequired,\n isAlternate: PropTypes.bool,\n};\n\nexport default uid.withUid(DroppablePlaceHolder);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"droppable-placeholder.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_choicePreview","_core","_drag","_debug","log","debug","HelperText","styled","theme","display","alignItems","justifyContent","fontSize","typography","color","palette","common","black","width","height","Helper","default","createElement","Previews","alternateResponseIndex","category","choices","onDeleteChoice","Fragment","map","c","index","choice","key","choiceIndex","onDelete","propTypes","PropTypes","number","object","array","func","DroppablePlaceHolder","categoryId","isAlternate","setNodeRef","isOver","useDroppable","id","data","accepts","type","ref","PlaceHolder","extraStyles","minHeight","length","string","isRequired","bool","_default","exports","uid","withUid"],"sources":["../../../src/design/categories/droppable-placeholder.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport ChoicePreview from './choice-preview';\nimport { useDroppable } from '@dnd-kit/core';\nimport { uid, PlaceHolder } from '@pie-lib/drag';\nimport debug from 'debug';\n\nconst log = debug('@pie-element:categorize:configure');\n\nconst HelperText = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: theme.typography.fontSize - 2,\n color: `rgba(${theme.palette.common.black}, 0.4)`,\n width: '100%',\n height: '100%',\n}));\n\nconst Helper = () => <HelperText>Drag your correct answers here</HelperText>;\n\nconst Previews = ({ alternateResponseIndex, category, choices, onDeleteChoice }) => (\n <React.Fragment>\n {(choices || []).map((c, index) =>\n c && (\n <ChoicePreview\n alternateResponseIndex={alternateResponseIndex}\n category={category}\n choice={c}\n key={index}\n choiceIndex={index}\n onDelete={(choice) => onDeleteChoice(choice, index)}\n />\n )\n )}\n </React.Fragment>\n);\n\nPreviews.propTypes = {\n alternateResponseIndex: PropTypes.number,\n category: PropTypes.object,\n choices: PropTypes.array,\n onDeleteChoice: PropTypes.func,\n};\n\nconst DroppablePlaceHolder = ({\n alternateResponseIndex,\n category,\n choices,\n onDeleteChoice,\n categoryId,\n isAlternate\n}) => {\n const { setNodeRef, isOver } = useDroppable({\n id: `${categoryId}-${isAlternate ? 'alternate' : 'standard'}`,\n data: {\n accepts: ['choice', 'choice-preview'],\n alternateResponseIndex,\n categoryId,\n type: isAlternate ? 'category-alternate' : 'category',\n id: categoryId,\n },\n });\n\n return (\n <div ref={setNodeRef}>\n <PlaceHolder\n isOver={isOver}\n extraStyles={{\n width: '100%',\n minHeight: '100px',\n height: 'auto',\n }}>\n {(choices || []).length === 0 ? (\n <Helper />\n ) : (\n <Previews\n alternateResponseIndex={alternateResponseIndex}\n category={category}\n choices={choices}\n onDeleteChoice={onDeleteChoice}\n />\n )}\n </PlaceHolder>\n </div>\n );\n};\n\nDroppablePlaceHolder.propTypes = {\n alternateResponseIndex: PropTypes.number,\n category: PropTypes.object,\n choices: PropTypes.array,\n onDeleteChoice: PropTypes.func,\n categoryId: PropTypes.string.isRequired,\n isAlternate: PropTypes.bool,\n};\n\nexport default uid.withUid(DroppablePlaceHolder);\n"],"mappings":"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","ignoreList":[]}
@@ -26,8 +26,8 @@ const CategoriesHolder = (0, _styles.styled)('div')(({
26
26
  theme
27
27
  }) => ({
28
28
  display: 'grid',
29
- gridRowGap: `${theme.spacing(1)}px`,
30
- gridColumnGap: `${theme.spacing(1)}px`
29
+ gridRowGap: theme.spacing(1),
30
+ gridColumnGap: theme.spacing(1)
31
31
  }));
32
32
  const StyledTooltip = (0, _styles.styled)(_Tooltip.default)(({
33
33
  theme
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_configUi","_Info","_Tooltip","_categorize","_category","_header","_utils","_RowLabel","CategoriesContainer","styled","theme","marginBottom","spacing","CategoriesHolder","display","gridRowGap","gridColumnGap","StyledTooltip","Tooltip","fontSize","typography","whiteSpace","maxWidth","ErrorText","color","palette","error","main","paddingTop","Categories","React","Component","constructor","args","_defineProperty2","default","focusedEl","model","categories","oldCategories","props","categoriesPerRow","correctResponse","allowAlternateEnabled","id","utils","firstAvailableIndex","map","a","data","label","addRowLabel","length","rowLabels","push","setState","onModelChanged","concat","category","choices","alternateResponses","index","findIndex","splice","removeCategory","c","choice","choiceIndex","removeChoiceFromCategory","val","newRowLabels","render","imageSupport","uploadSoundSupport","toolbarOpts","spellCheck","configuration","defaultImageMaxHeight","defaultImageMaxWidth","mathMlOptions","errors","associationError","categoriesError","categoriesErrors","maxCategories","maxImageWidth","maxImageHeight","holderStyle","gridTemplateColumns","validationMessage","generateValidationMessage","createElement","buttonLabel","onAdd","add","info","disableFocusListener","disableTouchListener","placement","title","style","marginLeft","buttonDisabled","hasRowLabel","rowIndex","Fragment","key","RowLabel","disabled","markup","onChange","changeRowLabel","rowLabel","state","deleteFocusedEl","change","onDelete","delete","onDeleteChoice","deleteChoiceFromCategory","categoryLabel","alternateResponseIndex","undefined","exports","PropTypes","number","shape","func","isRequired","array","object","bool","_default"],"sources":["../../../src/design/categories/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport { choiceUtils as utils } from '@pie-lib/config-ui';\nimport Info from '@mui/icons-material/Info';\nimport Tooltip from '@mui/material/Tooltip';\nimport {\n removeCategory,\n removeChoiceFromCategory,\n} from '@pie-lib/categorize';\n\nimport Category from './category';\nimport Header from '../header';\nimport { generateValidationMessage } from '../../utils';\nimport { RowLabel } from './RowLabel';\n\nconst CategoriesContainer = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(3),\n}));\n\nconst CategoriesHolder = styled('div')(({ theme }) => ({\n display: 'grid',\n gridRowGap: `${theme.spacing(1)}px`,\n gridColumnGap: `${theme.spacing(1)}px`,\n}));\n\nconst StyledTooltip = styled(Tooltip)(({ theme }) => ({\n '& .MuiTooltip-tooltip': {\n fontSize: theme.typography.fontSize - 2,\n whiteSpace: 'pre',\n maxWidth: '500px',\n },\n}));\n\nconst ErrorText = styled('div')(({ theme }) => ({\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing(0.5),\n}));\n\nexport class Categories extends React.Component {\n static propTypes = {\n defaultImageMaxHeight: PropTypes.number,\n defaultImageMaxWidth: PropTypes.number,\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 categories: PropTypes.array,\n onModelChanged: PropTypes.func,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n toolbarOpts: PropTypes.object,\n spellCheck: PropTypes.bool,\n };\n\n state = {\n focusedEl: null,\n };\n\n add = () => {\n const { model, categories: oldCategories } = this.props;\n const { categoriesPerRow, correctResponse, allowAlternateEnabled } = model;\n\n const id = utils.firstAvailableIndex(\n model.categories.map((a) => a.id),\n 1,\n );\n const data = { id, label: 'Category ' + id };\n const addRowLabel = model.categories.length % categoriesPerRow === 0;\n const rowLabels = [...model.rowLabels];\n\n if (addRowLabel) {\n rowLabels.push('');\n }\n\n this.setState(\n {\n focusedEl: oldCategories.length,\n },\n () => {\n this.props.onModelChanged({\n rowLabels,\n categories: model.categories.concat([data]),\n correctResponse: allowAlternateEnabled\n ? [...correctResponse, { category: id, choices: [], alternateResponses: [] }]\n : correctResponse,\n });\n },\n );\n };\n\n deleteFocusedEl = () => {\n this.setState({\n focusedEl: null,\n });\n };\n\n delete = (category) => {\n const { model, onModelChanged } = this.props;\n const index = model.categories.findIndex((a) => a.id === category.id);\n\n if (index !== -1) {\n model.categories.splice(index, 1);\n model.correctResponse = removeCategory(category.id, model.correctResponse);\n onModelChanged(model);\n }\n };\n\n change = (c) => {\n const { categories } = this.props;\n const index = categories.findIndex((a) => a.id === c.id);\n\n if (index !== -1) {\n categories.splice(index, 1, c);\n this.props.onModelChanged({ categories });\n }\n };\n\n deleteChoiceFromCategory = (category, choice, choiceIndex) => {\n const { model, onModelChanged } = this.props;\n const correctResponse = removeChoiceFromCategory(choice.id, category.id, choiceIndex, model.correctResponse);\n\n onModelChanged({ correctResponse });\n };\n\n changeRowLabel = (val, index) => {\n const { model } = this.props;\n const { rowLabels } = model;\n const newRowLabels = [...rowLabels];\n\n if (newRowLabels.length < index) {\n newRowLabels.push(val);\n } else {\n newRowLabels[index] = val;\n }\n\n this.props.onModelChanged({\n rowLabels: newRowLabels,\n });\n };\n\n render() {\n const {\n model,\n categories,\n imageSupport,\n uploadSoundSupport,\n toolbarOpts,\n spellCheck,\n configuration,\n defaultImageMaxHeight,\n defaultImageMaxWidth,\n mathMlOptions = {},\n } = this.props;\n\n const { categoriesPerRow, rowLabels, errors } = model;\n const { associationError, categoriesError, categoriesErrors } = errors || {};\n const { maxCategories, maxImageWidth = {}, maxImageHeight = {} } = configuration || {};\n const holderStyle = {\n gridTemplateColumns: `repeat(${categoriesPerRow}, 1fr)`,\n };\n\n const validationMessage = generateValidationMessage(configuration);\n\n return (\n <CategoriesContainer>\n <Header\n label=\"Categories\"\n buttonLabel=\"ADD A CATEGORY\"\n onAdd={this.add}\n info={\n <StyledTooltip\n disableFocusListener\n disableTouchListener\n placement={'right'}\n title={validationMessage}\n >\n <Info fontSize={'small'} color={'primary'} style={{ marginLeft: '5px' }} />\n </StyledTooltip>\n }\n buttonDisabled={maxCategories && categories && maxCategories === categories.length}\n />\n\n <CategoriesHolder style={holderStyle}>\n {categories.map((category, index) => {\n const hasRowLabel = index % categoriesPerRow === 0;\n const rowIndex = index / categoriesPerRow;\n\n return (\n <React.Fragment key={index}>\n {hasRowLabel && (\n <RowLabel\n categoriesPerRow={categoriesPerRow}\n disabled={false}\n rowIndex={rowIndex}\n markup={rowLabels[rowIndex] || ''}\n onChange={(val) => this.changeRowLabel(val, rowIndex)}\n imageSupport={imageSupport}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n maxImageWidth={(maxImageWidth && maxImageWidth.rowLabel) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.rowLabel) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n mathMlOptions={mathMlOptions}\n configuration={configuration}\n />\n )}\n\n <Category\n imageSupport={imageSupport}\n focusedEl={this.state.focusedEl}\n deleteFocusedEl={this.deleteFocusedEl}\n index={index}\n category={category}\n error={categoriesErrors && categoriesErrors[category.id]}\n onChange={this.change}\n onDelete={() => this.delete(category)}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n onDeleteChoice={(choice, choiceIndex) => this.deleteChoiceFromCategory(category, choice, choiceIndex)}\n maxImageWidth={(maxImageWidth && maxImageWidth.categoryLabel) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.categoryLabel) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n configuration={configuration}\n alternateResponseIndex={undefined}\n />\n </React.Fragment>\n );\n })}\n </CategoriesHolder>\n\n {associationError && <ErrorText>{associationError}</ErrorText>}\n {categoriesError && <ErrorText>{categoriesError}</ErrorText>}\n </CategoriesContainer>\n );\n }\n}\n\nexport default Categories;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_configUi","_Info","_Tooltip","_categorize","_category","_header","_utils","_RowLabel","CategoriesContainer","styled","theme","marginBottom","spacing","CategoriesHolder","display","gridRowGap","gridColumnGap","StyledTooltip","Tooltip","fontSize","typography","whiteSpace","maxWidth","ErrorText","color","palette","error","main","paddingTop","Categories","React","Component","constructor","args","_defineProperty2","default","focusedEl","model","categories","oldCategories","props","categoriesPerRow","correctResponse","allowAlternateEnabled","id","utils","firstAvailableIndex","map","a","data","label","addRowLabel","length","rowLabels","push","setState","onModelChanged","concat","category","choices","alternateResponses","index","findIndex","splice","removeCategory","c","choice","choiceIndex","removeChoiceFromCategory","val","newRowLabels","render","imageSupport","uploadSoundSupport","toolbarOpts","spellCheck","configuration","defaultImageMaxHeight","defaultImageMaxWidth","mathMlOptions","errors","associationError","categoriesError","categoriesErrors","maxCategories","maxImageWidth","maxImageHeight","holderStyle","gridTemplateColumns","validationMessage","generateValidationMessage","createElement","buttonLabel","onAdd","add","info","disableFocusListener","disableTouchListener","placement","title","style","marginLeft","buttonDisabled","hasRowLabel","rowIndex","Fragment","key","RowLabel","disabled","markup","onChange","changeRowLabel","rowLabel","state","deleteFocusedEl","change","onDelete","delete","onDeleteChoice","deleteChoiceFromCategory","categoryLabel","alternateResponseIndex","undefined","exports","PropTypes","number","shape","func","isRequired","array","object","bool","_default"],"sources":["../../../src/design/categories/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport { choiceUtils as utils } from '@pie-lib/config-ui';\nimport Info from '@mui/icons-material/Info';\nimport Tooltip from '@mui/material/Tooltip';\nimport {\n removeCategory,\n removeChoiceFromCategory,\n} from '@pie-lib/categorize';\n\nimport Category from './category';\nimport Header from '../header';\nimport { generateValidationMessage } from '../../utils';\nimport { RowLabel } from './RowLabel';\n\nconst CategoriesContainer = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(3),\n}));\n\nconst CategoriesHolder = styled('div')(({ theme }) => ({\n display: 'grid',\n gridRowGap: theme.spacing(1),\n gridColumnGap: theme.spacing(1),\n}));\n\nconst StyledTooltip = styled(Tooltip)(({ theme }) => ({\n '& .MuiTooltip-tooltip': {\n fontSize: theme.typography.fontSize - 2,\n whiteSpace: 'pre',\n maxWidth: '500px',\n },\n}));\n\nconst ErrorText = styled('div')(({ theme }) => ({\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing(0.5),\n}));\n\nexport class Categories extends React.Component {\n static propTypes = {\n defaultImageMaxHeight: PropTypes.number,\n defaultImageMaxWidth: PropTypes.number,\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 categories: PropTypes.array,\n onModelChanged: PropTypes.func,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n toolbarOpts: PropTypes.object,\n spellCheck: PropTypes.bool,\n };\n\n state = {\n focusedEl: null,\n };\n\n add = () => {\n const { model, categories: oldCategories } = this.props;\n const { categoriesPerRow, correctResponse, allowAlternateEnabled } = model;\n\n const id = utils.firstAvailableIndex(\n model.categories.map((a) => a.id),\n 1,\n );\n const data = { id, label: 'Category ' + id };\n const addRowLabel = model.categories.length % categoriesPerRow === 0;\n const rowLabels = [...model.rowLabels];\n\n if (addRowLabel) {\n rowLabels.push('');\n }\n\n this.setState(\n {\n focusedEl: oldCategories.length,\n },\n () => {\n this.props.onModelChanged({\n rowLabels,\n categories: model.categories.concat([data]),\n correctResponse: allowAlternateEnabled\n ? [...correctResponse, { category: id, choices: [], alternateResponses: [] }]\n : correctResponse,\n });\n },\n );\n };\n\n deleteFocusedEl = () => {\n this.setState({\n focusedEl: null,\n });\n };\n\n delete = (category) => {\n const { model, onModelChanged } = this.props;\n const index = model.categories.findIndex((a) => a.id === category.id);\n\n if (index !== -1) {\n model.categories.splice(index, 1);\n model.correctResponse = removeCategory(category.id, model.correctResponse);\n onModelChanged(model);\n }\n };\n\n change = (c) => {\n const { categories } = this.props;\n const index = categories.findIndex((a) => a.id === c.id);\n\n if (index !== -1) {\n categories.splice(index, 1, c);\n this.props.onModelChanged({ categories });\n }\n };\n\n deleteChoiceFromCategory = (category, choice, choiceIndex) => {\n const { model, onModelChanged } = this.props;\n const correctResponse = removeChoiceFromCategory(choice.id, category.id, choiceIndex, model.correctResponse);\n\n onModelChanged({ correctResponse });\n };\n\n changeRowLabel = (val, index) => {\n const { model } = this.props;\n const { rowLabels } = model;\n const newRowLabels = [...rowLabels];\n\n if (newRowLabels.length < index) {\n newRowLabels.push(val);\n } else {\n newRowLabels[index] = val;\n }\n\n this.props.onModelChanged({\n rowLabels: newRowLabels,\n });\n };\n\n render() {\n const {\n model,\n categories,\n imageSupport,\n uploadSoundSupport,\n toolbarOpts,\n spellCheck,\n configuration,\n defaultImageMaxHeight,\n defaultImageMaxWidth,\n mathMlOptions = {},\n } = this.props;\n\n const { categoriesPerRow, rowLabels, errors } = model;\n const { associationError, categoriesError, categoriesErrors } = errors || {};\n const { maxCategories, maxImageWidth = {}, maxImageHeight = {} } = configuration || {};\n const holderStyle = {\n gridTemplateColumns: `repeat(${categoriesPerRow}, 1fr)`,\n };\n\n const validationMessage = generateValidationMessage(configuration);\n\n return (\n <CategoriesContainer>\n <Header\n label=\"Categories\"\n buttonLabel=\"ADD A CATEGORY\"\n onAdd={this.add}\n info={\n <StyledTooltip\n disableFocusListener\n disableTouchListener\n placement={'right'}\n title={validationMessage}\n >\n <Info fontSize={'small'} color={'primary'} style={{ marginLeft: '5px' }} />\n </StyledTooltip>\n }\n buttonDisabled={maxCategories && categories && maxCategories === categories.length}\n />\n\n <CategoriesHolder style={holderStyle}>\n {categories.map((category, index) => {\n const hasRowLabel = index % categoriesPerRow === 0;\n const rowIndex = index / categoriesPerRow;\n\n return (\n <React.Fragment key={index}>\n {hasRowLabel && (\n <RowLabel\n categoriesPerRow={categoriesPerRow}\n disabled={false}\n rowIndex={rowIndex}\n markup={rowLabels[rowIndex] || ''}\n onChange={(val) => this.changeRowLabel(val, rowIndex)}\n imageSupport={imageSupport}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n maxImageWidth={(maxImageWidth && maxImageWidth.rowLabel) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.rowLabel) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n mathMlOptions={mathMlOptions}\n configuration={configuration}\n />\n )}\n\n <Category\n imageSupport={imageSupport}\n focusedEl={this.state.focusedEl}\n deleteFocusedEl={this.deleteFocusedEl}\n index={index}\n category={category}\n error={categoriesErrors && categoriesErrors[category.id]}\n onChange={this.change}\n onDelete={() => this.delete(category)}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n onDeleteChoice={(choice, choiceIndex) => this.deleteChoiceFromCategory(category, choice, choiceIndex)}\n maxImageWidth={(maxImageWidth && maxImageWidth.categoryLabel) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.categoryLabel) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n configuration={configuration}\n alternateResponseIndex={undefined}\n />\n </React.Fragment>\n );\n })}\n </CategoriesHolder>\n\n {associationError && <ErrorText>{associationError}</ErrorText>}\n {categoriesError && <ErrorText>{categoriesError}</ErrorText>}\n </CategoriesContainer>\n );\n }\n}\n\nexport default Categories;\n"],"mappings":"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","ignoreList":[]}
@@ -25,8 +25,8 @@ const ChoiceHolder = (0, _styles.styled)('div')(({
25
25
  paddingTop: theme.spacing(1),
26
26
  paddingBottom: theme.spacing(1),
27
27
  display: 'grid',
28
- gridRowGap: `${theme.spacing(1)}px`,
29
- gridColumnGap: `${theme.spacing(1)}px`
28
+ gridRowGap: theme.spacing(1),
29
+ gridColumnGap: theme.spacing(1)
30
30
  }));
31
31
  const ErrorText = (0, _styles.styled)('div')(({
32
32
  theme
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_choice","_header","_config","_configUi","_categorize","ChoicesContainer","styled","theme","marginBottom","spacing","ChoiceHolder","paddingTop","paddingBottom","display","gridRowGap","gridColumnGap","ErrorText","fontSize","typography","color","palette","error","main","Choices","React","Component","constructor","args","_defineProperty2","default","focusedEl","choice","choices","onModelChanged","props","index","findIndex","h","id","splice","count","Array","isArray","every","c","categoryCount","model","oldChoices","maxAnswerChoices","length","utils","firstAvailableIndex","map","a","data","content","setState","concat","correctResponse","removeAllChoices","render","state","imageSupport","uploadSoundSupport","spellCheck","toolbarOpts","configuration","defaultImageMaxWidth","defaultImageMaxHeight","errors","allowMultiplePlacementsEnabled","lockChoiceOrder","choicesError","choicesErrors","maxImageWidth","maxImageHeight","choiceHolderStyle","gridTemplateColumns","categoriesPerRow","addChoiceButtonTooltip","createElement","label","buttonLabel","onAdd","addChoice","buttonDisabled","tooltip","config","style","key","deleteFocusedEl","correctResponseCount","allowMultiplePlacements","onChange","changeChoice","onDelete","deleteChoice","exports","PropTypes","object","isRequired","array","number","func","shape","add","delete","bool","_default"],"sources":["../../../src/design/choices/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport Choice from './choice';\nimport Header from '../header';\nimport Config from './config';\nimport { choiceUtils as utils } from '@pie-lib/config-ui';\nimport { removeAllChoices } from '@pie-lib/categorize';\n\nconst ChoicesContainer = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(2.5),\n}));\n\nconst ChoiceHolder = styled('div')(({ theme }) => ({\n paddingTop: theme.spacing(1),\n paddingBottom: theme.spacing(1),\n display: 'grid',\n gridRowGap: `${theme.spacing(1)}px`,\n gridColumnGap: `${theme.spacing(1)}px`,\n}));\n\nconst ErrorText = styled('div')(({ theme }) => ({\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing(0.5),\n}));\n\nexport class Choices extends React.Component {\n static propTypes = {\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n choices: PropTypes.array.isRequired,\n defaultImageMaxWidth: PropTypes.number,\n defaultImageMaxHeight: PropTypes.number,\n onModelChanged: PropTypes.func.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n toolbarOpts: PropTypes.object,\n spellCheck: PropTypes.bool,\n };\n\n static defaultProps = {};\n\n state = {\n focusedEl: null,\n };\n\n changeChoice = (choice) => {\n const { choices, onModelChanged } = this.props;\n const index = choices.findIndex((h) => h.id === choice.id);\n if (index !== -1) {\n choices.splice(index, 1, choice);\n onModelChanged({ choices });\n }\n };\n\n allChoicesHaveCount = (count) => {\n const { choices } = this.props;\n return Array.isArray(choices) && choices.every((c) => c.categoryCount === count);\n };\n\n addChoice = () => {\n const { onModelChanged, model, choices: oldChoices } = this.props;\n let { maxAnswerChoices } = model || {};\n\n if (maxAnswerChoices && model.choices?.length >= maxAnswerChoices) {\n return;\n }\n\n const id = utils.firstAvailableIndex(\n model.choices.map((a) => a.id),\n 1,\n );\n const data = { id, content: 'Choice ' + id };\n\n this.setState(\n {\n focusedEl: oldChoices.length,\n },\n () => {\n onModelChanged({ choices: model.choices.concat([data]) });\n },\n );\n };\n\n deleteFocusedEl = () => {\n this.setState({\n focusedEl: null,\n });\n };\n\n deleteChoice = (choice) => {\n const { model, onModelChanged } = this.props;\n const index = model.choices.findIndex((a) => a.id === choice.id);\n if (index !== -1) {\n model.choices.splice(index, 1);\n model.correctResponse = removeAllChoices(choice.id, model.correctResponse);\n onModelChanged(model);\n }\n };\n\n render() {\n const { focusedEl } = this.state;\n const {\n choices,\n model,\n imageSupport,\n uploadSoundSupport,\n onModelChanged,\n spellCheck,\n toolbarOpts,\n configuration,\n defaultImageMaxWidth,\n defaultImageMaxHeight,\n } = this.props;\n const { errors, allowMultiplePlacementsEnabled, lockChoiceOrder, maxAnswerChoices } = model;\n const { choicesError, choicesErrors } = errors || {};\n const { maxImageWidth = {}, maxImageHeight = {} } = configuration || {};\n const choiceHolderStyle = {\n gridTemplateColumns: `repeat(${model.categoriesPerRow}, 1fr)`,\n };\n const addChoiceButtonTooltip =\n maxAnswerChoices && choices?.length >= maxAnswerChoices ? `Only ${maxAnswerChoices} allowed maximum` : '';\n\n return (\n <ChoicesContainer>\n <Header\n label=\"Choices\"\n buttonLabel=\"ADD A CHOICE\"\n onAdd={this.addChoice}\n buttonDisabled={maxAnswerChoices && choices && choices?.length >= maxAnswerChoices}\n tooltip={addChoiceButtonTooltip}\n />\n\n <Config config={model} onModelChanged={onModelChanged} spellCheck={spellCheck} />\n\n <ChoiceHolder style={choiceHolderStyle}>\n {choices.map((h, index) => {\n return (\n <Choice\n key={h.id}\n choice={h}\n focusedEl={focusedEl}\n deleteFocusedEl={this.deleteFocusedEl}\n correctResponseCount={h.correctResponseCount}\n allowMultiplePlacements={allowMultiplePlacementsEnabled}\n lockChoiceOrder={lockChoiceOrder}\n index={index}\n imageSupport={imageSupport}\n onChange={this.changeChoice}\n onDelete={() => this.deleteChoice(h)}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n error={choicesErrors && choicesErrors[h.id]}\n maxImageWidth={(maxImageWidth && maxImageWidth.choice) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.choice) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n configuration={configuration}\n />\n );\n })}\n </ChoiceHolder>\n {choicesError && <ErrorText>{choicesError}</ErrorText>}\n </ChoicesContainer>\n );\n }\n}\n\nexport default Choices;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_choice","_header","_config","_configUi","_categorize","ChoicesContainer","styled","theme","marginBottom","spacing","ChoiceHolder","paddingTop","paddingBottom","display","gridRowGap","gridColumnGap","ErrorText","fontSize","typography","color","palette","error","main","Choices","React","Component","constructor","args","_defineProperty2","default","focusedEl","choice","choices","onModelChanged","props","index","findIndex","h","id","splice","count","Array","isArray","every","c","categoryCount","model","oldChoices","maxAnswerChoices","length","utils","firstAvailableIndex","map","a","data","content","setState","concat","correctResponse","removeAllChoices","render","state","imageSupport","uploadSoundSupport","spellCheck","toolbarOpts","configuration","defaultImageMaxWidth","defaultImageMaxHeight","errors","allowMultiplePlacementsEnabled","lockChoiceOrder","choicesError","choicesErrors","maxImageWidth","maxImageHeight","choiceHolderStyle","gridTemplateColumns","categoriesPerRow","addChoiceButtonTooltip","createElement","label","buttonLabel","onAdd","addChoice","buttonDisabled","tooltip","config","style","key","deleteFocusedEl","correctResponseCount","allowMultiplePlacements","onChange","changeChoice","onDelete","deleteChoice","exports","PropTypes","object","isRequired","array","number","func","shape","add","delete","bool","_default"],"sources":["../../../src/design/choices/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport Choice from './choice';\nimport Header from '../header';\nimport Config from './config';\nimport { choiceUtils as utils } from '@pie-lib/config-ui';\nimport { removeAllChoices } from '@pie-lib/categorize';\n\nconst ChoicesContainer = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(2.5),\n}));\n\nconst ChoiceHolder = styled('div')(({ theme }) => ({\n paddingTop: theme.spacing(1),\n paddingBottom: theme.spacing(1),\n display: 'grid',\n gridRowGap: theme.spacing(1),\n gridColumnGap: theme.spacing(1),\n}));\n\nconst ErrorText = styled('div')(({ theme }) => ({\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing(0.5),\n}));\n\nexport class Choices extends React.Component {\n static propTypes = {\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n choices: PropTypes.array.isRequired,\n defaultImageMaxWidth: PropTypes.number,\n defaultImageMaxHeight: PropTypes.number,\n onModelChanged: PropTypes.func.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n toolbarOpts: PropTypes.object,\n spellCheck: PropTypes.bool,\n };\n\n static defaultProps = {};\n\n state = {\n focusedEl: null,\n };\n\n changeChoice = (choice) => {\n const { choices, onModelChanged } = this.props;\n const index = choices.findIndex((h) => h.id === choice.id);\n if (index !== -1) {\n choices.splice(index, 1, choice);\n onModelChanged({ choices });\n }\n };\n\n allChoicesHaveCount = (count) => {\n const { choices } = this.props;\n return Array.isArray(choices) && choices.every((c) => c.categoryCount === count);\n };\n\n addChoice = () => {\n const { onModelChanged, model, choices: oldChoices } = this.props;\n let { maxAnswerChoices } = model || {};\n\n if (maxAnswerChoices && model.choices?.length >= maxAnswerChoices) {\n return;\n }\n\n const id = utils.firstAvailableIndex(\n model.choices.map((a) => a.id),\n 1,\n );\n const data = { id, content: 'Choice ' + id };\n\n this.setState(\n {\n focusedEl: oldChoices.length,\n },\n () => {\n onModelChanged({ choices: model.choices.concat([data]) });\n },\n );\n };\n\n deleteFocusedEl = () => {\n this.setState({\n focusedEl: null,\n });\n };\n\n deleteChoice = (choice) => {\n const { model, onModelChanged } = this.props;\n const index = model.choices.findIndex((a) => a.id === choice.id);\n if (index !== -1) {\n model.choices.splice(index, 1);\n model.correctResponse = removeAllChoices(choice.id, model.correctResponse);\n onModelChanged(model);\n }\n };\n\n render() {\n const { focusedEl } = this.state;\n const {\n choices,\n model,\n imageSupport,\n uploadSoundSupport,\n onModelChanged,\n spellCheck,\n toolbarOpts,\n configuration,\n defaultImageMaxWidth,\n defaultImageMaxHeight,\n } = this.props;\n const { errors, allowMultiplePlacementsEnabled, lockChoiceOrder, maxAnswerChoices } = model;\n const { choicesError, choicesErrors } = errors || {};\n const { maxImageWidth = {}, maxImageHeight = {} } = configuration || {};\n const choiceHolderStyle = {\n gridTemplateColumns: `repeat(${model.categoriesPerRow}, 1fr)`,\n };\n const addChoiceButtonTooltip =\n maxAnswerChoices && choices?.length >= maxAnswerChoices ? `Only ${maxAnswerChoices} allowed maximum` : '';\n\n return (\n <ChoicesContainer>\n <Header\n label=\"Choices\"\n buttonLabel=\"ADD A CHOICE\"\n onAdd={this.addChoice}\n buttonDisabled={maxAnswerChoices && choices && choices?.length >= maxAnswerChoices}\n tooltip={addChoiceButtonTooltip}\n />\n\n <Config config={model} onModelChanged={onModelChanged} spellCheck={spellCheck} />\n\n <ChoiceHolder style={choiceHolderStyle}>\n {choices.map((h, index) => {\n return (\n <Choice\n key={h.id}\n choice={h}\n focusedEl={focusedEl}\n deleteFocusedEl={this.deleteFocusedEl}\n correctResponseCount={h.correctResponseCount}\n allowMultiplePlacements={allowMultiplePlacementsEnabled}\n lockChoiceOrder={lockChoiceOrder}\n index={index}\n imageSupport={imageSupport}\n onChange={this.changeChoice}\n onDelete={() => this.deleteChoice(h)}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n error={choicesErrors && choicesErrors[h.id]}\n maxImageWidth={(maxImageWidth && maxImageWidth.choice) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.choice) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n configuration={configuration}\n />\n );\n })}\n </ChoiceHolder>\n {choicesError && <ErrorText>{choicesError}</ErrorText>}\n </ChoicesContainer>\n );\n }\n}\n\nexport default Choices;\n"],"mappings":"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","ignoreList":[]}
@@ -65,7 +65,8 @@ const StyledInputContainer = (0, _styles.styled)(_configUi.InputContainer)(({
65
65
  theme
66
66
  }) => ({
67
67
  width: '100%',
68
- paddingTop: theme.spacing(2),
68
+ paddingTop: theme.spacing(1),
69
+ marginTop: theme.spacing(1),
69
70
  marginBottom: theme.spacing(2)
70
71
  }));
71
72
  const ErrorText = (0, _styles.styled)('div')(({
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_utils","require","_react","_interopRequireDefault","_propTypes","_styles","_core","_configUi","_categorize","_editableHtmlTipTap","_drag","_mathRendering","_categories","_alternateResponses","_choices","_choice","_choicePreview","_builder","_header","_utils2","_translator","translator","Translator","dropdown","Panel","toggle","radio","numberField","settings","Provider","IdProvider","uid","DragPreviewWrapper","React","Component","constructor","args","_defineProperty2","default","createRef","componentDidMount","containerRef","current","setTimeout","renderMath","render","createElement","ref","props","children","StyledHeader","styled","Header","theme","marginBottom","spacing","StyledInputContainer","InputContainer","width","paddingTop","ErrorText","fontSize","typography","color","palette","error","main","Design","model","onChange","updatedModel","choices","map","c","categoryCount","checkAllowMultiplePlacements","allowMultiplePlacementsEnabled","correctResponse","ensureNoExtraChoicesInAnswer","ensureNoExtraChoicesInAlternate","categories","id","label","h","content","maxChoicesPerCategory","allowMaxChoicesPerCategory","rationale","teacherInstructions","feedback","updateModel","cr","alternateResponses","prompt","index","filter","alt","altIndex","choice","countInAnswer","allowMultiplePlacements","multiplePlacements","enabled","disabled","maxChoices","getMaxCategoryChoices","event","active","draggedItem","data","setState","activeDragItem","over","scrollX","window","scrollY","requestAnimationFrame","scrollTo","allowAlternateEnabled","activeData","overData","choiceIndex","overType","type","isPreview","isNewChoice","choiceId","split","removeChoiceFromSource","moveChoice","categoryId","addChoiceToCategory","moveChoiceInAlternate","alternateResponseIndex","addChoiceToAlternateCategory","isAlternateSource","undefined","deleteChoiceFromCategory","category","find","deleteChoiceFromAlternateCategory","addedChoice","newCorrectResponse","moveChoiceToCategory","verifyAllowMultiplePlacements","maxCategoryChoices","removeChoiceFromCategory","from","to","forEach","a","push","reduce","acc","currentValue","foundIndex","findIndex","alternateIndex","moveChoiceToAlternate","removeChoiceFromAlternate","state","configuration","generateId","imageSupport","uploadSoundSupport","onConfigurationChanged","allowAlternate","baseInputConfiguration","categoriesPerRow","choicesPosition","contentDimensions","lockChoiceOrder","maxImageHeight","maxImageWidth","maxPlacements","minCategoriesPerRow","partialScoring","scoringType","settingsPanelDisabled","spellCheck","studentInstructions","withRubric","mathMlOptions","language","languageChoices","allowMaxAnswerChoices","errors","feedbackEnabled","promptEnabled","rationaleEnabled","spellCheckEnabled","teacherInstructionsEnabled","toolbarEditorPosition","extraCSSRules","promptError","rationaleError","teacherInstructionsError","toolbarOpts","position","config","columns","buildCategories","buildAlternateResponses","correctResponseCount","countChoiceInCorrectResponse","defaultImageMaxWidth","defaultImageMaxHeight","panelSettings","min","max","perChoice","maxAnswerChoices","length","options","panelProperties","studentInstructionsEnabled","rubricEnabled","isOpened","isAlertModalOpened","alertMaxChoicesMsg","t","lng","DragProvider","onDragStart","onDragEnd","value","layout","ConfigLayout","dimensions","hideSettings","onChangeModel","onChangeConfiguration","groups","Settings","Properties","modal","AlertDialog","title","text","open","onClose","onAlertModalCancel","markup","changeTeacherInstructions","nonEmpty","pluginProps","getPluginProps","inputConfiguration","languageCharactersProps","onPromptChanged","disableUnderline","onModelChanged","buttonLabel","onAdd","onAddAlternateResponse","categoriesList","Fragment","key","variant","onRemoveAlternateResponse","changeRationale","FeedbackConfig","changeFeedback","DragOverlay","renderDragOverlay","exports","PropTypes","object","className","string","func","isRequired","shape","add","delete","_default"],"sources":["../../src/design/index.jsx"],"sourcesContent":["import { getPluginProps } from './utils';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport { DragOverlay } from '@dnd-kit/core';\nimport { FeedbackConfig, InputContainer, layout, settings } from '@pie-lib/config-ui';\nimport {\n countInAnswer,\n ensureNoExtraChoicesInAnswer,\n ensureNoExtraChoicesInAlternate,\n moveChoiceToCategory,\n moveChoiceToAlternate,\n removeChoiceFromCategory,\n removeChoiceFromAlternate,\n verifyAllowMultiplePlacements,\n} from '@pie-lib/categorize';\nimport EditableHtml from '@pie-lib/editable-html-tip-tap';\nimport { DragProvider, uid } from '@pie-lib/drag';\nimport { renderMath } from '@pie-lib/math-rendering';\n\nimport Categories from './categories';\nimport AlternateResponses from './categories/alternateResponses';\nimport Choices from './choices';\nimport Choice from './choices/choice';\nimport ChoicePreview from './categories/choice-preview';\nimport { buildAlternateResponses, buildCategories } from './builder';\nimport Header from './header';\nimport { getMaxCategoryChoices, multiplePlacements } from '../utils';\nimport { AlertDialog } from '@pie-lib/config-ui';\nimport Translator from '@pie-lib/translator';\n\nconst { translator } = Translator;\nconst { dropdown, Panel, toggle, radio, numberField } = settings;\nconst { Provider: IdProvider } = uid;\n\n// Simple wrapper to render math in DragOverlay portal\nclass DragPreviewWrapper extends React.Component {\n containerRef = React.createRef();\n\n componentDidMount() {\n if (this.containerRef.current) {\n setTimeout(() => renderMath(this.containerRef.current), 0);\n }\n }\n\n render() {\n return <div ref={this.containerRef}>{this.props.children}</div>;\n }\n}\n\nconst StyledHeader = styled(Header)(({ theme }) => ({\n marginBottom: theme.spacing(2),\n}));\n\nconst StyledInputContainer = styled(InputContainer)(({ theme }) => ({\n width: '100%',\n paddingTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n}));\n\nconst ErrorText = styled('div')(({ theme }) => ({\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing(1),\n}));\n\nexport class Design extends React.Component {\n static propTypes = {\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 this.state = {\n activeDragItem: null,\n };\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\n ? updatedModel.maxChoicesPerCategory\n : 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 onDragStart = (event) => {\n const { active } = event;\n const draggedItem = active.data.current;\n\n this.setState({\n activeDragItem: draggedItem,\n });\n };\n\n onDragEnd = ({ active, over }) => {\n // scrolls back to the original draggable element (scrollIntoViewIfNeeded).\n const scrollX = window.scrollX;\n const scrollY = window.scrollY;\n\n this.setState({ activeDragItem: null });\n if (!active) {\n return;\n }\n\n // Restore scroll position after dnd-kit's drop animation fires scrollIntoViewIfNeeded.\n // Two rAF frames are needed: dnd-kit uses one rAF internally for focus/scroll restoration.\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n window.scrollTo(scrollX, scrollY);\n });\n });\n\n const { model } = this.props;\n const { allowAlternateEnabled, categories = [], choices = [] } = model;\n\n const activeData = active?.data?.current;\n const overData = over?.data?.current;\n\n if (!activeData) return;\n\n const choiceIndex = activeData.choiceIndex || 0;\n const overType = overData?.type;\n const isPreview = activeData.type === 'choice-preview';\n const isNewChoice = activeData.type === 'choice';\n\n const choiceId =\n activeData.choice?.id || (typeof activeData.id === 'string' ? activeData.id.split('-')[0] : activeData.id);\n\n if (isPreview && (!overData || overType === 'choice')) {\n this.removeChoiceFromSource(activeData, choiceIndex, { allowAlternateEnabled, categories, choices });\n return;\n }\n\n if (isPreview && overType === 'category') {\n return this.moveChoice(choiceId, activeData.categoryId, overData.id, choiceIndex);\n }\n\n if (isNewChoice && overType === 'category') {\n return this.addChoiceToCategory({ id: activeData.id }, overData.id);\n }\n\n if (isPreview && overType === 'category-alternate') {\n return this.moveChoiceInAlternate(\n choiceId,\n activeData.categoryId,\n overData.id,\n choiceIndex,\n overData.alternateResponseIndex,\n );\n }\n\n if (allowAlternateEnabled && isNewChoice && overType === 'category-alternate') {\n return this.addChoiceToAlternateCategory({ id: activeData.id }, overData.id, overData.alternateResponseIndex);\n }\n };\n\n removeChoiceFromSource = (activeData, choiceIndex, { allowAlternateEnabled, categories, choices }) => {\n const isAlternateSource = activeData.alternateResponseIndex !== undefined;\n\n if (!isAlternateSource) {\n this.deleteChoiceFromCategory(activeData.categoryId, activeData.choiceId, choiceIndex);\n return;\n }\n\n if (!allowAlternateEnabled) return;\n\n const category = categories?.find((c) => c.id === activeData.categoryId);\n const choice = choices?.find((c) => c.id === activeData.choiceId);\n\n if (category && choice) {\n this.deleteChoiceFromAlternateCategory(category, choice, choiceIndex, activeData.alternateResponseIndex);\n }\n };\n\n addChoiceToCategory = (addedChoice, categoryId) => {\n const { model } = this.props;\n let { choices = [], correctResponse = [], maxChoicesPerCategory = 0 } = model || {};\n const choice = (choices || []).find((choice) => choice.id === addedChoice.id);\n\n let newCorrectResponse = moveChoiceToCategory(addedChoice.id, undefined, categoryId, 0, correctResponse);\n\n if (choice.categoryCount !== 0) {\n newCorrectResponse = verifyAllowMultiplePlacements(addedChoice, categoryId, newCorrectResponse);\n }\n const maxCategoryChoices = getMaxCategoryChoices(model);\n\n this.updateModel({\n correctResponse: newCorrectResponse,\n maxChoicesPerCategory:\n maxChoicesPerCategory !== 0 && maxChoicesPerCategory < maxCategoryChoices\n ? maxChoicesPerCategory + 1\n : maxChoicesPerCategory,\n });\n };\n\n deleteChoiceFromCategory = (categoryId, choiceId, choiceIndex) => {\n const { model } = this.props;\n const correctResponse = removeChoiceFromCategory(choiceId, categoryId, choiceIndex, model.correctResponse);\n\n this.updateModel({ correctResponse });\n };\n\n moveChoice = (choiceId, from, to, choiceIndex) => {\n const { model } = this.props;\n let { choices, correctResponse = [], maxChoicesPerCategory = 0 } = model || {};\n const choice = (choices || []).find((choice) => choice.id === choiceId);\n if (to === from || !choice) {\n return;\n }\n if (choice.categoryCount !== 0) {\n correctResponse = moveChoiceToCategory(choice.id, from, to, choiceIndex, correctResponse);\n correctResponse = verifyAllowMultiplePlacements(choice, to, correctResponse);\n } else if (choice.categoryCount === 0) {\n correctResponse = moveChoiceToCategory(choice.id, undefined, to, 0, correctResponse);\n }\n const maxCategoryChoices = getMaxCategoryChoices(model);\n // when maxChoicesPerCategory is set to 0, there is no limit so it should not be updated\n this.updateModel({\n correctResponse,\n maxChoicesPerCategory:\n maxChoicesPerCategory !== 0 && maxChoicesPerCategory < maxCategoryChoices\n ? maxChoicesPerCategory + 1\n : maxChoicesPerCategory,\n });\n };\n\n // methods for alternate responses\n addChoiceToAlternateCategory = (addedChoice, categoryId, altIndex) => {\n const { model } = this.props;\n const { correctResponse, choices, maxChoicesPerCategory = 0 } = model;\n\n const choice = choices.find((c) => c.id === addedChoice.id);\n\n correctResponse.forEach((a) => {\n if (a.category === categoryId) {\n a.alternateResponses = a.alternateResponses || [];\n\n if (a.alternateResponses[altIndex] === undefined) {\n a.alternateResponses[altIndex] = [];\n }\n\n a.alternateResponses[altIndex].push(addedChoice.id);\n if (choice.categoryCount && choice.categoryCount !== 0) {\n a.alternateResponses[altIndex] = a.alternateResponses[altIndex].reduce((acc, currentValue) => {\n if (currentValue === choice.id) {\n const foundIndex = acc.findIndex((c) => c === choice.id);\n if (foundIndex === -1) {\n acc.push(currentValue);\n }\n } else {\n acc.push(currentValue);\n }\n\n return acc;\n }, []);\n }\n\n return a;\n } else {\n if (a.alternateResponses[altIndex] && choice.categoryCount !== 0) {\n a.alternateResponses[altIndex] = a.alternateResponses[altIndex].filter((c) => c !== addedChoice.id);\n return a;\n }\n }\n\n return a;\n });\n\n const maxCategoryChoices = getMaxCategoryChoices(model);\n // when maxChoicesPerCategory is set to 0, there is no limit so it should not be updated\n this.updateModel({\n correctResponse,\n maxChoicesPerCategory:\n maxChoicesPerCategory !== 0 && maxChoicesPerCategory < maxCategoryChoices\n ? maxChoicesPerCategory + 1\n : maxChoicesPerCategory,\n });\n };\n\n moveChoiceInAlternate = (choiceId, from, to, choiceIndex, alternateIndex) => {\n const { model } = this.props;\n let { choices, correctResponse = [], maxChoicesPerCategory = 0 } = model || {};\n const choice = (choices || []).find((choice) => choice.id === choiceId);\n correctResponse = moveChoiceToAlternate(\n choiceId,\n from,\n to,\n choiceIndex,\n correctResponse,\n alternateIndex,\n choice?.categoryCount,\n );\n\n const maxCategoryChoices = getMaxCategoryChoices(model);\n // when maxChoicesPerCategory is set to 0, there is no limit so it should not be updated\n this.updateModel({\n correctResponse,\n maxChoicesPerCategory:\n maxChoicesPerCategory !== 0 && maxChoicesPerCategory < maxCategoryChoices\n ? maxChoicesPerCategory + 1\n : maxChoicesPerCategory,\n });\n };\n\n deleteChoiceFromAlternateCategory = (category, choice, choiceIndex, altIndex) => {\n const { model } = this.props;\n\n const correctResponse = removeChoiceFromAlternate(\n choice.id,\n category.id,\n choiceIndex,\n altIndex,\n model.correctResponse,\n );\n\n this.updateModel({ correctResponse });\n };\n\n renderDragOverlay = () => {\n const { activeDragItem } = this.state;\n const { model, configuration } = this.props;\n\n if (!activeDragItem) return null;\n\n if (activeDragItem.type === 'choice') {\n const choice = model.choices?.find((c) => c.id === activeDragItem.id);\n if (!choice) return null;\n\n return <Choice choice={choice} configuration={configuration} />;\n } else if (activeDragItem.type === 'choice-preview' && activeDragItem.alternateResponseIndex === undefined) {\n const choice = model.choices?.find((c) => c.id === activeDragItem.id);\n if (!choice) return null;\n return <ChoicePreview choice={choice} />;\n } else if (activeDragItem.type === 'choice-preview' && activeDragItem.alternateResponseIndex !== undefined) {\n const choice = model.choices?.find((c) => c.id === activeDragItem.id);\n if (!choice) return null;\n return <ChoicePreview choice={choice} alternateResponseIndex={activeDragItem.alternateResponseIndex} />;\n }\n\n return null;\n };\n\n render() {\n const { configuration, imageSupport, model, uploadSoundSupport, onConfigurationChanged } = this.props;\n const {\n allowAlternate = {},\n allowMultiplePlacements = {},\n baseInputConfiguration = {},\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 allowMaxAnswerChoices = {},\n } = configuration || {};\n const {\n allowAlternateEnabled,\n allowMaxChoicesPerCategory,\n errors,\n feedbackEnabled,\n maxChoicesPerCategory,\n promptEnabled,\n rationaleEnabled,\n spellCheckEnabled,\n teacherInstructionsEnabled,\n toolbarEditorPosition,\n extraCSSRules,\n } = model || {};\n const {\n prompt: promptError,\n rationale: rationaleError,\n teacherInstructions: teacherInstructionsError,\n } = errors || {};\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 // ensure categoryCount is set even though updatedModel hasn't been called\n c.categoryCount = this.checkAllowMultiplePlacements(model.allowMultiplePlacementsEnabled, c);\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 maxAnswerChoices:\n allowMaxAnswerChoices.settings &&\n numberField(allowMaxAnswerChoices.label, {\n label: '',\n min: choices?.length || 0,\n max: 30,\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 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', {\n lng: model.language,\n maxChoicesPerCategory,\n });\n\n return (\n <DragProvider onDragStart={this.onDragStart} onDragEnd={this.onDragEnd}>\n <IdProvider value={this.uid}>\n <layout.ConfigLayout\n extraCSSRules={extraCSSRules}\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={\n <AlertDialog\n title={'Warning'}\n text={alertMaxChoicesMsg}\n open={isOpened}\n onClose={this.onAlertModalCancel}\n />\n }\n />\n }\n >\n {teacherInstructionsEnabled && (\n <StyledInputContainer label={teacherInstructions.label}>\n <EditableHtml\n markup={model.teacherInstructions || ''}\n onChange={this.changeTeacherInstructions}\n imageSupport={imageSupport}\n error={teacherInstructionsError}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(teacherInstructions?.inputConfiguration, baseInputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.teacherInstructions) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.teacherInstructions) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {teacherInstructionsError && <ErrorText>{teacherInstructionsError}</ErrorText>}\n </StyledInputContainer>\n )}\n\n {promptEnabled && (\n <StyledInputContainer label={prompt.label}>\n <EditableHtml\n markup={model.prompt || ''}\n onChange={this.onPromptChanged}\n imageSupport={imageSupport}\n error={promptError}\n nonEmpty={false}\n disableUnderline\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(prompt?.inputConfiguration, baseInputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={maxImageWidth && maxImageWidth.prompt}\n maxImageHeight={maxImageHeight && maxImageHeight.prompt}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {promptError && <ErrorText>{promptError}</ErrorText>}\n </StyledInputContainer>\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 <StyledHeader\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 <StyledHeader\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 mathMlOptions={mathMlOptions}\n />\n </React.Fragment>\n );\n })}\n\n {rationaleEnabled && (\n <StyledInputContainer label={rationale.label}>\n <EditableHtml\n markup={model.rationale || ''}\n onChange={this.changeRationale}\n imageSupport={imageSupport}\n error={rationaleError}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(prompt?.inputConfiguration, baseInputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.rationale) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.rationale) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {rationaleError && <ErrorText>{rationaleError}</ErrorText>}\n </StyledInputContainer>\n )}\n\n {feedbackEnabled && (\n <FeedbackConfig feedback={model.feedback} onChange={this.changeFeedback} toolbarOpts={toolbarOpts} />\n )}\n </layout.ConfigLayout>\n <DragOverlay>\n <DragPreviewWrapper>{this.renderDragOverlay()}</DragPreviewWrapper>\n </DragOverlay>\n </IdProvider>\n </DragProvider>\n );\n }\n}\n\nexport default Design;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_utils","require","_react","_interopRequireDefault","_propTypes","_styles","_core","_configUi","_categorize","_editableHtmlTipTap","_drag","_mathRendering","_categories","_alternateResponses","_choices","_choice","_choicePreview","_builder","_header","_utils2","_translator","translator","Translator","dropdown","Panel","toggle","radio","numberField","settings","Provider","IdProvider","uid","DragPreviewWrapper","React","Component","constructor","args","_defineProperty2","default","createRef","componentDidMount","containerRef","current","setTimeout","renderMath","render","createElement","ref","props","children","StyledHeader","styled","Header","theme","marginBottom","spacing","StyledInputContainer","InputContainer","width","paddingTop","marginTop","ErrorText","fontSize","typography","color","palette","error","main","Design","model","onChange","updatedModel","choices","map","c","categoryCount","checkAllowMultiplePlacements","allowMultiplePlacementsEnabled","correctResponse","ensureNoExtraChoicesInAnswer","ensureNoExtraChoicesInAlternate","categories","id","label","h","content","maxChoicesPerCategory","allowMaxChoicesPerCategory","rationale","teacherInstructions","feedback","updateModel","cr","alternateResponses","prompt","index","filter","alt","altIndex","choice","countInAnswer","allowMultiplePlacements","multiplePlacements","enabled","disabled","maxChoices","getMaxCategoryChoices","event","active","draggedItem","data","setState","activeDragItem","over","scrollX","window","scrollY","requestAnimationFrame","scrollTo","allowAlternateEnabled","activeData","overData","choiceIndex","overType","type","isPreview","isNewChoice","choiceId","split","removeChoiceFromSource","moveChoice","categoryId","addChoiceToCategory","moveChoiceInAlternate","alternateResponseIndex","addChoiceToAlternateCategory","isAlternateSource","undefined","deleteChoiceFromCategory","category","find","deleteChoiceFromAlternateCategory","addedChoice","newCorrectResponse","moveChoiceToCategory","verifyAllowMultiplePlacements","maxCategoryChoices","removeChoiceFromCategory","from","to","forEach","a","push","reduce","acc","currentValue","foundIndex","findIndex","alternateIndex","moveChoiceToAlternate","removeChoiceFromAlternate","state","configuration","generateId","imageSupport","uploadSoundSupport","onConfigurationChanged","allowAlternate","baseInputConfiguration","categoriesPerRow","choicesPosition","contentDimensions","lockChoiceOrder","maxImageHeight","maxImageWidth","maxPlacements","minCategoriesPerRow","partialScoring","scoringType","settingsPanelDisabled","spellCheck","studentInstructions","withRubric","mathMlOptions","language","languageChoices","allowMaxAnswerChoices","errors","feedbackEnabled","promptEnabled","rationaleEnabled","spellCheckEnabled","teacherInstructionsEnabled","toolbarEditorPosition","extraCSSRules","promptError","rationaleError","teacherInstructionsError","toolbarOpts","position","config","columns","buildCategories","buildAlternateResponses","correctResponseCount","countChoiceInCorrectResponse","defaultImageMaxWidth","defaultImageMaxHeight","panelSettings","min","max","perChoice","maxAnswerChoices","length","options","panelProperties","studentInstructionsEnabled","rubricEnabled","isOpened","isAlertModalOpened","alertMaxChoicesMsg","t","lng","DragProvider","onDragStart","onDragEnd","value","layout","ConfigLayout","dimensions","hideSettings","onChangeModel","onChangeConfiguration","groups","Settings","Properties","modal","AlertDialog","title","text","open","onClose","onAlertModalCancel","markup","changeTeacherInstructions","nonEmpty","pluginProps","getPluginProps","inputConfiguration","languageCharactersProps","onPromptChanged","disableUnderline","onModelChanged","buttonLabel","onAdd","onAddAlternateResponse","categoriesList","Fragment","key","variant","onRemoveAlternateResponse","changeRationale","FeedbackConfig","changeFeedback","DragOverlay","renderDragOverlay","exports","PropTypes","object","className","string","func","isRequired","shape","add","delete","_default"],"sources":["../../src/design/index.jsx"],"sourcesContent":["import { getPluginProps } from './utils';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport { DragOverlay } from '@dnd-kit/core';\nimport { FeedbackConfig, InputContainer, layout, settings } from '@pie-lib/config-ui';\nimport {\n countInAnswer,\n ensureNoExtraChoicesInAnswer,\n ensureNoExtraChoicesInAlternate,\n moveChoiceToCategory,\n moveChoiceToAlternate,\n removeChoiceFromCategory,\n removeChoiceFromAlternate,\n verifyAllowMultiplePlacements,\n} from '@pie-lib/categorize';\nimport EditableHtml from '@pie-lib/editable-html-tip-tap';\nimport { DragProvider, uid } from '@pie-lib/drag';\nimport { renderMath } from '@pie-lib/math-rendering';\n\nimport Categories from './categories';\nimport AlternateResponses from './categories/alternateResponses';\nimport Choices from './choices';\nimport Choice from './choices/choice';\nimport ChoicePreview from './categories/choice-preview';\nimport { buildAlternateResponses, buildCategories } from './builder';\nimport Header from './header';\nimport { getMaxCategoryChoices, multiplePlacements } from '../utils';\nimport { AlertDialog } from '@pie-lib/config-ui';\nimport Translator from '@pie-lib/translator';\n\nconst { translator } = Translator;\nconst { dropdown, Panel, toggle, radio, numberField } = settings;\nconst { Provider: IdProvider } = uid;\n\n// Simple wrapper to render math in DragOverlay portal\nclass DragPreviewWrapper extends React.Component {\n containerRef = React.createRef();\n\n componentDidMount() {\n if (this.containerRef.current) {\n setTimeout(() => renderMath(this.containerRef.current), 0);\n }\n }\n\n render() {\n return <div ref={this.containerRef}>{this.props.children}</div>;\n }\n}\n\nconst StyledHeader = styled(Header)(({ theme }) => ({\n marginBottom: theme.spacing(2),\n}));\n\nconst StyledInputContainer = styled(InputContainer)(({ theme }) => ({\n width: '100%',\n paddingTop: theme.spacing(1),\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(2),\n}));\n\nconst ErrorText = styled('div')(({ theme }) => ({\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing(1),\n}));\n\nexport class Design extends React.Component {\n static propTypes = {\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 this.state = {\n activeDragItem: null,\n };\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\n ? updatedModel.maxChoicesPerCategory\n : 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 onDragStart = (event) => {\n const { active } = event;\n const draggedItem = active.data.current;\n\n this.setState({\n activeDragItem: draggedItem,\n });\n };\n\n onDragEnd = ({ active, over }) => {\n // scrolls back to the original draggable element (scrollIntoViewIfNeeded).\n const scrollX = window.scrollX;\n const scrollY = window.scrollY;\n\n this.setState({ activeDragItem: null });\n if (!active) {\n return;\n }\n\n // Restore scroll position after dnd-kit's drop animation fires scrollIntoViewIfNeeded.\n // Two rAF frames are needed: dnd-kit uses one rAF internally for focus/scroll restoration.\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n window.scrollTo(scrollX, scrollY);\n });\n });\n\n const { model } = this.props;\n const { allowAlternateEnabled, categories = [], choices = [] } = model;\n\n const activeData = active?.data?.current;\n const overData = over?.data?.current;\n\n if (!activeData) return;\n\n const choiceIndex = activeData.choiceIndex || 0;\n const overType = overData?.type;\n const isPreview = activeData.type === 'choice-preview';\n const isNewChoice = activeData.type === 'choice';\n\n const choiceId =\n activeData.choice?.id || (typeof activeData.id === 'string' ? activeData.id.split('-')[0] : activeData.id);\n\n if (isPreview && (!overData || overType === 'choice')) {\n this.removeChoiceFromSource(activeData, choiceIndex, { allowAlternateEnabled, categories, choices });\n return;\n }\n\n if (isPreview && overType === 'category') {\n return this.moveChoice(choiceId, activeData.categoryId, overData.id, choiceIndex);\n }\n\n if (isNewChoice && overType === 'category') {\n return this.addChoiceToCategory({ id: activeData.id }, overData.id);\n }\n\n if (isPreview && overType === 'category-alternate') {\n return this.moveChoiceInAlternate(\n choiceId,\n activeData.categoryId,\n overData.id,\n choiceIndex,\n overData.alternateResponseIndex,\n );\n }\n\n if (allowAlternateEnabled && isNewChoice && overType === 'category-alternate') {\n return this.addChoiceToAlternateCategory({ id: activeData.id }, overData.id, overData.alternateResponseIndex);\n }\n };\n\n removeChoiceFromSource = (activeData, choiceIndex, { allowAlternateEnabled, categories, choices }) => {\n const isAlternateSource = activeData.alternateResponseIndex !== undefined;\n\n if (!isAlternateSource) {\n this.deleteChoiceFromCategory(activeData.categoryId, activeData.choiceId, choiceIndex);\n return;\n }\n\n if (!allowAlternateEnabled) return;\n\n const category = categories?.find((c) => c.id === activeData.categoryId);\n const choice = choices?.find((c) => c.id === activeData.choiceId);\n\n if (category && choice) {\n this.deleteChoiceFromAlternateCategory(category, choice, choiceIndex, activeData.alternateResponseIndex);\n }\n };\n\n addChoiceToCategory = (addedChoice, categoryId) => {\n const { model } = this.props;\n let { choices = [], correctResponse = [], maxChoicesPerCategory = 0 } = model || {};\n const choice = (choices || []).find((choice) => choice.id === addedChoice.id);\n\n let newCorrectResponse = moveChoiceToCategory(addedChoice.id, undefined, categoryId, 0, correctResponse);\n\n if (choice.categoryCount !== 0) {\n newCorrectResponse = verifyAllowMultiplePlacements(addedChoice, categoryId, newCorrectResponse);\n }\n const maxCategoryChoices = getMaxCategoryChoices(model);\n\n this.updateModel({\n correctResponse: newCorrectResponse,\n maxChoicesPerCategory:\n maxChoicesPerCategory !== 0 && maxChoicesPerCategory < maxCategoryChoices\n ? maxChoicesPerCategory + 1\n : maxChoicesPerCategory,\n });\n };\n\n deleteChoiceFromCategory = (categoryId, choiceId, choiceIndex) => {\n const { model } = this.props;\n const correctResponse = removeChoiceFromCategory(choiceId, categoryId, choiceIndex, model.correctResponse);\n\n this.updateModel({ correctResponse });\n };\n\n moveChoice = (choiceId, from, to, choiceIndex) => {\n const { model } = this.props;\n let { choices, correctResponse = [], maxChoicesPerCategory = 0 } = model || {};\n const choice = (choices || []).find((choice) => choice.id === choiceId);\n if (to === from || !choice) {\n return;\n }\n if (choice.categoryCount !== 0) {\n correctResponse = moveChoiceToCategory(choice.id, from, to, choiceIndex, correctResponse);\n correctResponse = verifyAllowMultiplePlacements(choice, to, correctResponse);\n } else if (choice.categoryCount === 0) {\n correctResponse = moveChoiceToCategory(choice.id, undefined, to, 0, correctResponse);\n }\n const maxCategoryChoices = getMaxCategoryChoices(model);\n // when maxChoicesPerCategory is set to 0, there is no limit so it should not be updated\n this.updateModel({\n correctResponse,\n maxChoicesPerCategory:\n maxChoicesPerCategory !== 0 && maxChoicesPerCategory < maxCategoryChoices\n ? maxChoicesPerCategory + 1\n : maxChoicesPerCategory,\n });\n };\n\n // methods for alternate responses\n addChoiceToAlternateCategory = (addedChoice, categoryId, altIndex) => {\n const { model } = this.props;\n const { correctResponse, choices, maxChoicesPerCategory = 0 } = model;\n\n const choice = choices.find((c) => c.id === addedChoice.id);\n\n correctResponse.forEach((a) => {\n if (a.category === categoryId) {\n a.alternateResponses = a.alternateResponses || [];\n\n if (a.alternateResponses[altIndex] === undefined) {\n a.alternateResponses[altIndex] = [];\n }\n\n a.alternateResponses[altIndex].push(addedChoice.id);\n if (choice.categoryCount && choice.categoryCount !== 0) {\n a.alternateResponses[altIndex] = a.alternateResponses[altIndex].reduce((acc, currentValue) => {\n if (currentValue === choice.id) {\n const foundIndex = acc.findIndex((c) => c === choice.id);\n if (foundIndex === -1) {\n acc.push(currentValue);\n }\n } else {\n acc.push(currentValue);\n }\n\n return acc;\n }, []);\n }\n\n return a;\n } else {\n if (a.alternateResponses[altIndex] && choice.categoryCount !== 0) {\n a.alternateResponses[altIndex] = a.alternateResponses[altIndex].filter((c) => c !== addedChoice.id);\n return a;\n }\n }\n\n return a;\n });\n\n const maxCategoryChoices = getMaxCategoryChoices(model);\n // when maxChoicesPerCategory is set to 0, there is no limit so it should not be updated\n this.updateModel({\n correctResponse,\n maxChoicesPerCategory:\n maxChoicesPerCategory !== 0 && maxChoicesPerCategory < maxCategoryChoices\n ? maxChoicesPerCategory + 1\n : maxChoicesPerCategory,\n });\n };\n\n moveChoiceInAlternate = (choiceId, from, to, choiceIndex, alternateIndex) => {\n const { model } = this.props;\n let { choices, correctResponse = [], maxChoicesPerCategory = 0 } = model || {};\n const choice = (choices || []).find((choice) => choice.id === choiceId);\n correctResponse = moveChoiceToAlternate(\n choiceId,\n from,\n to,\n choiceIndex,\n correctResponse,\n alternateIndex,\n choice?.categoryCount,\n );\n\n const maxCategoryChoices = getMaxCategoryChoices(model);\n // when maxChoicesPerCategory is set to 0, there is no limit so it should not be updated\n this.updateModel({\n correctResponse,\n maxChoicesPerCategory:\n maxChoicesPerCategory !== 0 && maxChoicesPerCategory < maxCategoryChoices\n ? maxChoicesPerCategory + 1\n : maxChoicesPerCategory,\n });\n };\n\n deleteChoiceFromAlternateCategory = (category, choice, choiceIndex, altIndex) => {\n const { model } = this.props;\n\n const correctResponse = removeChoiceFromAlternate(\n choice.id,\n category.id,\n choiceIndex,\n altIndex,\n model.correctResponse,\n );\n\n this.updateModel({ correctResponse });\n };\n\n renderDragOverlay = () => {\n const { activeDragItem } = this.state;\n const { model, configuration } = this.props;\n\n if (!activeDragItem) return null;\n\n if (activeDragItem.type === 'choice') {\n const choice = model.choices?.find((c) => c.id === activeDragItem.id);\n if (!choice) return null;\n\n return <Choice choice={choice} configuration={configuration} />;\n } else if (activeDragItem.type === 'choice-preview' && activeDragItem.alternateResponseIndex === undefined) {\n const choice = model.choices?.find((c) => c.id === activeDragItem.id);\n if (!choice) return null;\n return <ChoicePreview choice={choice} />;\n } else if (activeDragItem.type === 'choice-preview' && activeDragItem.alternateResponseIndex !== undefined) {\n const choice = model.choices?.find((c) => c.id === activeDragItem.id);\n if (!choice) return null;\n return <ChoicePreview choice={choice} alternateResponseIndex={activeDragItem.alternateResponseIndex} />;\n }\n\n return null;\n };\n\n render() {\n const { configuration, imageSupport, model, uploadSoundSupport, onConfigurationChanged } = this.props;\n const {\n allowAlternate = {},\n allowMultiplePlacements = {},\n baseInputConfiguration = {},\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 allowMaxAnswerChoices = {},\n } = configuration || {};\n const {\n allowAlternateEnabled,\n allowMaxChoicesPerCategory,\n errors,\n feedbackEnabled,\n maxChoicesPerCategory,\n promptEnabled,\n rationaleEnabled,\n spellCheckEnabled,\n teacherInstructionsEnabled,\n toolbarEditorPosition,\n extraCSSRules,\n } = model || {};\n const {\n prompt: promptError,\n rationale: rationaleError,\n teacherInstructions: teacherInstructionsError,\n } = errors || {};\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 // ensure categoryCount is set even though updatedModel hasn't been called\n c.categoryCount = this.checkAllowMultiplePlacements(model.allowMultiplePlacementsEnabled, c);\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 maxAnswerChoices:\n allowMaxAnswerChoices.settings &&\n numberField(allowMaxAnswerChoices.label, {\n label: '',\n min: choices?.length || 0,\n max: 30,\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 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', {\n lng: model.language,\n maxChoicesPerCategory,\n });\n\n return (\n <DragProvider onDragStart={this.onDragStart} onDragEnd={this.onDragEnd}>\n <IdProvider value={this.uid}>\n <layout.ConfigLayout\n extraCSSRules={extraCSSRules}\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={\n <AlertDialog\n title={'Warning'}\n text={alertMaxChoicesMsg}\n open={isOpened}\n onClose={this.onAlertModalCancel}\n />\n }\n />\n }\n >\n {teacherInstructionsEnabled && (\n <StyledInputContainer label={teacherInstructions.label}>\n <EditableHtml\n markup={model.teacherInstructions || ''}\n onChange={this.changeTeacherInstructions}\n imageSupport={imageSupport}\n error={teacherInstructionsError}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(teacherInstructions?.inputConfiguration, baseInputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.teacherInstructions) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.teacherInstructions) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {teacherInstructionsError && <ErrorText>{teacherInstructionsError}</ErrorText>}\n </StyledInputContainer>\n )}\n\n {promptEnabled && (\n <StyledInputContainer label={prompt.label}>\n <EditableHtml\n markup={model.prompt || ''}\n onChange={this.onPromptChanged}\n imageSupport={imageSupport}\n error={promptError}\n nonEmpty={false}\n disableUnderline\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(prompt?.inputConfiguration, baseInputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={maxImageWidth && maxImageWidth.prompt}\n maxImageHeight={maxImageHeight && maxImageHeight.prompt}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {promptError && <ErrorText>{promptError}</ErrorText>}\n </StyledInputContainer>\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 <StyledHeader\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 <StyledHeader\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 mathMlOptions={mathMlOptions}\n />\n </React.Fragment>\n );\n })}\n\n {rationaleEnabled && (\n <StyledInputContainer label={rationale.label}>\n <EditableHtml\n markup={model.rationale || ''}\n onChange={this.changeRationale}\n imageSupport={imageSupport}\n error={rationaleError}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(prompt?.inputConfiguration, baseInputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.rationale) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.rationale) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {rationaleError && <ErrorText>{rationaleError}</ErrorText>}\n </StyledInputContainer>\n )}\n\n {feedbackEnabled && (\n <FeedbackConfig feedback={model.feedback} onChange={this.changeFeedback} toolbarOpts={toolbarOpts} />\n )}\n </layout.ConfigLayout>\n <DragOverlay>\n <DragPreviewWrapper>{this.renderDragOverlay()}</DragPreviewWrapper>\n </DragOverlay>\n </IdProvider>\n </DragProvider>\n );\n }\n}\n\nexport default Design;\n"],"mappings":"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","ignoreList":[]}
@@ -11,17 +11,17 @@ var _react = _interopRequireDefault(require("react"));
11
11
  var _propTypes = _interopRequireDefault(require("prop-types"));
12
12
  var _styles = require("@mui/material/styles");
13
13
  var _editableHtmlTipTap = _interopRequireDefault(require("@pie-lib/editable-html-tip-tap"));
14
- const StyledEditableHtml = (0, _styles.styled)(_editableHtmlTipTap.default)(({
15
- theme
16
- }) => ({
14
+ const StyledEditableHtml = (0, _styles.styled)(_editableHtmlTipTap.default)({
17
15
  flex: '1',
18
- paddingBottom: theme.spacing(1),
19
16
  maxWidth: '100%'
20
- }));
21
- const InputHeaderContainer = (0, _styles.styled)('div')({
22
- display: 'flex',
23
- justifyContent: 'space-between'
24
17
  });
18
+ const InputHeaderContainer = (0, _styles.styled)('div')(({
19
+ theme
20
+ }) => ({
21
+ display: 'flex',
22
+ justifyContent: 'space-between',
23
+ paddingBottom: theme.spacing(1)
24
+ }));
25
25
  class InputHeader extends _react.default.Component {
26
26
  constructor(props) {
27
27
  super(props);
@@ -1 +1 @@
1
- {"version":3,"file":"input-header.js","names":["_utils","require","_react","_interopRequireDefault","_propTypes","_styles","_editableHtmlTipTap","StyledEditableHtml","styled","EditableHtml","theme","flex","paddingBottom","spacing","maxWidth","InputHeaderContainer","display","justifyContent","InputHeader","React","Component","constructor","props","render","onChange","configuration","label","deleteFocusedEl","disabled","imageSupport","toolbarOpts","spellCheck","error","maxImageWidth","maxImageHeight","uploadSoundSupport","mathMlOptions","focusedEl","index","headers","baseInputConfiguration","shouldAutoFocus","undefined","default","createElement","autoFocus","autoWidthToolbar","markup","pluginProps","getPluginProps","inputConfiguration","languageCharactersProps","language","onDone","exports","_defineProperty2","PropTypes","object","isRequired","func","bool","number","string","onDelete","shape","add","delete","_default"],"sources":["../../src/design/input-header.jsx"],"sourcesContent":["import { getPluginProps } from './utils';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport EditableHtml from '@pie-lib/editable-html-tip-tap';\n\nconst StyledEditableHtml = styled(EditableHtml)(({ theme }) => ({\n flex: '1',\n paddingBottom: theme.spacing(1),\n maxWidth: '100%',\n}));\n\nconst InputHeaderContainer = styled('div')({\n display: 'flex',\n justifyContent: 'space-between',\n});\n\nexport class InputHeader extends React.Component {\n static propTypes = {\n configuration: PropTypes.object.isRequired,\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 render() {\n const {\n onChange,\n configuration,\n label,\n deleteFocusedEl,\n disabled,\n imageSupport,\n toolbarOpts,\n spellCheck,\n error,\n maxImageWidth,\n maxImageHeight,\n uploadSoundSupport,\n mathMlOptions = {},\n focusedEl,\n index,\n } = this.props;\n\n const { headers, baseInputConfiguration } = configuration;\n const shouldAutoFocus = focusedEl !== null && focusedEl !== undefined && focusedEl === index;\n\n return (\n <InputHeaderContainer>\n <StyledEditableHtml\n imageSupport={imageSupport}\n disabled={disabled}\n autoFocus={shouldAutoFocus}\n autoWidthToolbar\n label={'label'}\n markup={label}\n onChange={onChange}\n pluginProps={getPluginProps(headers?.inputConfiguration, baseInputConfiguration)}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n error={error}\n maxImageWidth={maxImageWidth}\n maxImageHeight={maxImageHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n onDone={() => {\n deleteFocusedEl && deleteFocusedEl();\n }}\n mathMlOptions={mathMlOptions}\n />\n </InputHeaderContainer>\n );\n }\n}\n\nexport default InputHeader;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"input-header.js","names":["_utils","require","_react","_interopRequireDefault","_propTypes","_styles","_editableHtmlTipTap","StyledEditableHtml","styled","EditableHtml","flex","maxWidth","InputHeaderContainer","theme","display","justifyContent","paddingBottom","spacing","InputHeader","React","Component","constructor","props","render","onChange","configuration","label","deleteFocusedEl","disabled","imageSupport","toolbarOpts","spellCheck","error","maxImageWidth","maxImageHeight","uploadSoundSupport","mathMlOptions","focusedEl","index","headers","baseInputConfiguration","shouldAutoFocus","undefined","default","createElement","autoFocus","autoWidthToolbar","markup","pluginProps","getPluginProps","inputConfiguration","languageCharactersProps","language","onDone","exports","_defineProperty2","PropTypes","object","isRequired","func","bool","number","string","onDelete","shape","add","delete","_default"],"sources":["../../src/design/input-header.jsx"],"sourcesContent":["import { getPluginProps } from './utils';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport EditableHtml from '@pie-lib/editable-html-tip-tap';\n\nconst StyledEditableHtml = styled(EditableHtml)({\n flex: '1',\n maxWidth: '100%',\n});\n\nconst InputHeaderContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n justifyContent: 'space-between',\n paddingBottom: theme.spacing(1),\n}));\n\nexport class InputHeader extends React.Component {\n static propTypes = {\n configuration: PropTypes.object.isRequired,\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 render() {\n const {\n onChange,\n configuration,\n label,\n deleteFocusedEl,\n disabled,\n imageSupport,\n toolbarOpts,\n spellCheck,\n error,\n maxImageWidth,\n maxImageHeight,\n uploadSoundSupport,\n mathMlOptions = {},\n focusedEl,\n index,\n } = this.props;\n\n const { headers, baseInputConfiguration } = configuration;\n const shouldAutoFocus = focusedEl !== null && focusedEl !== undefined && focusedEl === index;\n\n return (\n <InputHeaderContainer>\n <StyledEditableHtml\n imageSupport={imageSupport}\n disabled={disabled}\n autoFocus={shouldAutoFocus}\n autoWidthToolbar\n label={'label'}\n markup={label}\n onChange={onChange}\n pluginProps={getPluginProps(headers?.inputConfiguration, baseInputConfiguration)}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n error={error}\n maxImageWidth={maxImageWidth}\n maxImageHeight={maxImageHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n onDone={() => {\n deleteFocusedEl && deleteFocusedEl();\n }}\n mathMlOptions={mathMlOptions}\n />\n </InputHeaderContainer>\n );\n }\n}\n\nexport default InputHeader;\n"],"mappings":"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","ignoreList":[]}
@@ -3,7 +3,7 @@
3
3
  "private": true,
4
4
  "main": "lib/index.js",
5
5
  "module": "src/index.js",
6
- "version": "10.2.0-next.6",
6
+ "version": "10.2.0-next.8",
7
7
  "description": "",
8
8
  "scripts": {},
9
9
  "author": "pie framework developers",
@@ -16,11 +16,11 @@
16
16
  "@mui/material": "^7.3.4",
17
17
  "@pie-framework/pie-configure-events": "^1.3.0",
18
18
  "@pie-lib/categorize": "1.2.0-next.3",
19
- "@pie-lib/config-ui": "12.2.0-next.28",
20
- "@pie-lib/drag": "3.2.0-next.8",
21
- "@pie-lib/editable-html-tip-tap": "1.2.0-next.27",
19
+ "@pie-lib/config-ui": "12.2.0-next.35",
20
+ "@pie-lib/drag": "3.2.0-next.9",
21
+ "@pie-lib/editable-html-tip-tap": "1.2.0-next.34",
22
22
  "@pie-lib/math-rendering": "4.2.0-next.3",
23
- "@pie-lib/render-ui": "5.2.0-next.7",
23
+ "@pie-lib/render-ui": "5.2.0-next.8",
24
24
  "@pie-lib/translator": "3.2.0-next.3",
25
25
  "debug": "^4.1.1",
26
26
  "lodash-es": "^4.17.23",
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
7
- "version": "12.2.0-next.7",
7
+ "version": "12.2.0-next.9",
8
8
  "description": "",
9
9
  "author": "pie framework developers",
10
10
  "license": "ISC",
@@ -16,11 +16,11 @@
16
16
  "@mui/material": "^7.3.4",
17
17
  "@pie-framework/pie-player-events": "^0.1.0",
18
18
  "@pie-lib/categorize": "1.2.0-next.3",
19
- "@pie-lib/config-ui": "12.2.0-next.28",
20
- "@pie-lib/correct-answer-toggle": "3.2.0-next.7",
21
- "@pie-lib/drag": "3.2.0-next.8",
19
+ "@pie-lib/config-ui": "12.2.0-next.35",
20
+ "@pie-lib/correct-answer-toggle": "3.2.0-next.8",
21
+ "@pie-lib/drag": "3.2.0-next.9",
22
22
  "@pie-lib/math-rendering": "4.2.0-next.3",
23
- "@pie-lib/render-ui": "5.2.0-next.7",
23
+ "@pie-lib/render-ui": "5.2.0-next.8",
24
24
  "@pie-lib/translator": "3.2.0-next.3",
25
25
  "debug": "^4.1.1",
26
26
  "lodash-es": "^4.17.23",
@@ -28,7 +28,7 @@
28
28
  "react": "18.3.1",
29
29
  "react-dom": "18.3.1"
30
30
  },
31
- "gitHead": "8ab147d04d240a5b4bf690ba41ab737726adcb6f",
31
+ "gitHead": "7bb3fa9220e9ed492fed005c6cd928ac15adf2ac",
32
32
  "scripts": {
33
33
  "postpublish": "../../scripts/postpublish"
34
34
  },