@pie-element/categorize 11.3.4-next.3 → 12.0.0-beta.1

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.
Files changed (106) hide show
  1. package/CHANGELOG.md +0 -11
  2. package/configure/CHANGELOG.md +0 -11
  3. package/configure/lib/__tests__/main.test.js +100 -0
  4. package/configure/lib/__tests__/utils.js +39 -0
  5. package/configure/lib/defaults.js +3 -6
  6. package/configure/lib/defaults.js.map +1 -1
  7. package/configure/lib/design/__tests__/builder.test.js +34 -0
  8. package/configure/lib/design/__tests__/buttons.test.js +36 -0
  9. package/configure/lib/design/__tests__/header.test.js +37 -0
  10. package/configure/lib/design/__tests__/index.test.js +125 -0
  11. package/configure/lib/design/__tests__/input-header.test.js +41 -0
  12. package/configure/lib/design/builder.js +16 -34
  13. package/configure/lib/design/builder.js.map +1 -1
  14. package/configure/lib/design/buttons.js +42 -96
  15. package/configure/lib/design/buttons.js.map +1 -1
  16. package/configure/lib/design/categories/RowLabel.js +34 -47
  17. package/configure/lib/design/categories/RowLabel.js.map +1 -1
  18. package/configure/lib/design/categories/__tests__/alternateResponses.test.js +93 -0
  19. package/configure/lib/design/categories/__tests__/category.test.js +65 -0
  20. package/configure/lib/design/categories/__tests__/choice-preview.test.js +52 -0
  21. package/configure/lib/design/categories/__tests__/droppable-placeholder.test.js +63 -0
  22. package/configure/lib/design/categories/__tests__/index.test.js +91 -0
  23. package/configure/lib/design/categories/alternateResponses.js +97 -252
  24. package/configure/lib/design/categories/alternateResponses.js.map +1 -1
  25. package/configure/lib/design/categories/category.js +136 -209
  26. package/configure/lib/design/categories/category.js.map +1 -1
  27. package/configure/lib/design/categories/choice-preview.js +62 -127
  28. package/configure/lib/design/categories/choice-preview.js.map +1 -1
  29. package/configure/lib/design/categories/droppable-placeholder.js +74 -166
  30. package/configure/lib/design/categories/droppable-placeholder.js.map +1 -1
  31. package/configure/lib/design/categories/index.js +196 -385
  32. package/configure/lib/design/categories/index.js.map +1 -1
  33. package/configure/lib/design/choices/__tests__/choice.test.js +62 -0
  34. package/configure/lib/design/choices/__tests__/config.test.js +66 -0
  35. package/configure/lib/design/choices/__tests__/index.test.js +70 -0
  36. package/configure/lib/design/choices/choice.js +156 -265
  37. package/configure/lib/design/choices/choice.js.map +1 -1
  38. package/configure/lib/design/choices/config.js +43 -99
  39. package/configure/lib/design/choices/config.js.map +1 -1
  40. package/configure/lib/design/choices/index.js +149 -237
  41. package/configure/lib/design/choices/index.js.map +1 -1
  42. package/configure/lib/design/header.js +58 -112
  43. package/configure/lib/design/header.js.map +1 -1
  44. package/configure/lib/design/index.js +633 -478
  45. package/configure/lib/design/index.js.map +1 -1
  46. package/configure/lib/design/input-header.js +95 -151
  47. package/configure/lib/design/input-header.js.map +1 -1
  48. package/configure/lib/design/utils.js +5 -16
  49. package/configure/lib/design/utils.js.map +1 -1
  50. package/configure/lib/index.js +121 -184
  51. package/configure/lib/index.js.map +1 -1
  52. package/configure/lib/main.js +31 -75
  53. package/configure/lib/main.js.map +1 -1
  54. package/configure/lib/utils.js +23 -33
  55. package/configure/lib/utils.js.map +1 -1
  56. package/configure/package.json +15 -15
  57. package/controller/CHANGELOG.md +0 -11
  58. package/controller/lib/__tests__/index.test.js +526 -0
  59. package/controller/lib/defaults.js +3 -6
  60. package/controller/lib/defaults.js.map +1 -1
  61. package/controller/lib/index.js +238 -319
  62. package/controller/lib/index.js.map +1 -1
  63. package/controller/lib/utils.js +29 -66
  64. package/controller/lib/utils.js.map +1 -1
  65. package/controller/package.json +5 -5
  66. package/docs/demo/.pie/.configure/package.json +10 -0
  67. package/docs/demo/.pie/.configure/yarn.lock +2181 -0
  68. package/docs/demo/.pie/.controllers/package.json +10 -0
  69. package/docs/demo/.pie/.controllers/yarn.lock +110 -0
  70. package/docs/demo/.pie/info.entry.js +89 -0
  71. package/docs/demo/.pie/info.webpack.config.js +119 -0
  72. package/docs/demo/.pie/package.json +10 -0
  73. package/docs/demo/.pie/yarn.lock +2190 -0
  74. package/docs/demo/pie.manifest.json +11 -0
  75. package/lib/__tests__/index.test.js +197 -0
  76. package/lib/categorize/__tests__/categories.test.js +138 -0
  77. package/lib/categorize/__tests__/category.test.js +137 -0
  78. package/lib/categorize/__tests__/choice.test.js +88 -0
  79. package/lib/categorize/__tests__/choices.test.js +118 -0
  80. package/lib/categorize/__tests__/droppable-placeholder.test.js +96 -0
  81. package/lib/categorize/__tests__/grid-content.test.js +48 -0
  82. package/lib/categorize/__tests__/index.test.js +152 -0
  83. package/lib/categorize/categories.js +107 -165
  84. package/lib/categorize/categories.js.map +1 -1
  85. package/lib/categorize/category.js +74 -124
  86. package/lib/categorize/category.js.map +1 -1
  87. package/lib/categorize/choice.js +119 -246
  88. package/lib/categorize/choice.js.map +1 -1
  89. package/lib/categorize/choices.js +67 -132
  90. package/lib/categorize/choices.js.map +1 -1
  91. package/lib/categorize/droppable-placeholder.js +47 -104
  92. package/lib/categorize/droppable-placeholder.js.map +1 -1
  93. package/lib/categorize/grid-content.js +40 -88
  94. package/lib/categorize/grid-content.js.map +1 -1
  95. package/lib/categorize/index.js +342 -318
  96. package/lib/categorize/index.js.map +1 -1
  97. package/lib/index.js +286 -307
  98. package/lib/index.js.map +1 -1
  99. package/package.json +16 -14
  100. package/esm/configure.js +0 -34401
  101. package/esm/configure.js.map +0 -1
  102. package/esm/controller.js +0 -1468
  103. package/esm/controller.js.map +0 -1
  104. package/esm/element.js +0 -13134
  105. package/esm/element.js.map +0 -1
  106. package/esm/package.json +0 -3
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/design/categories/index.jsx"],"names":["styles","theme","categories","marginBottom","spacing","unit","categoriesHolder","display","gridRowGap","gridColumnGap","row","gridTemplateColumns","alignItems","width","marginTop","rowLabel","gridColumn","rowLabelHolder","tooltip","fontSize","typography","whiteSpace","maxWidth","errorText","color","palette","error","main","paddingTop","Categories","focusedEl","props","model","oldCategories","categoriesPerRow","correctResponse","allowAlternateEnabled","id","utils","firstAvailableIndex","map","a","data","label","addRowLabel","length","rowLabels","push","setState","onModelChanged","concat","category","choices","alternateResponses","index","findIndex","splice","c","addedChoice","categoryId","maxChoicesPerCategory","choice","find","undefined","categoryCount","maxCategoryChoices","choiceIndex","choiceId","from","to","val","newRowLabels","domNode","ReactDOM","findDOMNode","e","console","classes","className","imageSupport","uploadSoundSupport","toolbarOpts","spellCheck","configuration","defaultImageMaxHeight","defaultImageMaxWidth","mathMlOptions","errors","associationError","categoriesError","categoriesErrors","maxCategories","maxImageWidth","maxImageHeight","holderStyle","validationMessage","add","marginLeft","hasRowLabel","rowIndex","changeRowLabel","state","deleteFocusedEl","change","addChoiceToCategory","moveChoice","deleteChoiceFromCategory","categoryLabel","React","Component","PropTypes","number","shape","func","isRequired","object","string","array","bool"],"mappings":"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","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { choiceUtils as utils } from '@pie-lib/config-ui';\nimport classNames from 'classnames';\nimport Info from '@material-ui/icons/Info';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport {\n moveChoiceToCategory,\n removeCategory,\n removeChoiceFromCategory,\n verifyAllowMultiplePlacements,\n} from '@pie-lib/categorize';\n\nimport Category from './category';\nimport Header from '../header';\nimport { generateValidationMessage, getMaxCategoryChoices } from '../../utils';\nimport { RowLabel } from './RowLabel';\nimport { renderMath } from '@pie-lib/math-rendering';\n\nconst styles = (theme) => ({\n categories: {\n marginBottom: theme.spacing.unit * 3,\n },\n categoriesHolder: {\n display: 'grid',\n gridRowGap: `${theme.spacing.unit}px`,\n gridColumnGap: `${theme.spacing.unit}px`,\n },\n row: {\n display: 'grid',\n gridTemplateColumns: 'repeat(2, 1fr)',\n gridColumnGap: `${theme.spacing.unit}px`,\n alignItems: 'baseline',\n width: '100%',\n marginTop: theme.spacing.unit,\n marginBottom: 2 * theme.spacing.unit,\n },\n rowLabel: {\n gridColumn: '1/3',\n },\n rowLabelHolder: {\n width: '100%',\n },\n tooltip: {\n fontSize: theme.typography.fontSize - 2,\n whiteSpace: 'pre',\n maxWidth: '500px',\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing.unit / 2,\n },\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 classes: PropTypes.object.isRequired,\n className: PropTypes.string,\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 componentDidMount() {\n try {\n // eslint-disable-next-line react/no-find-dom-node\n const domNode = ReactDOM.findDOMNode(this);\n\n renderMath(domNode);\n } catch (e) {\n // Added try-catch block to handle \"Unable to find node on an unmounted component\" error from tests, thrown because of the usage of shallow\n console.error('DOM not mounted');\n }\n }\n\n componentDidUpdate() {\n try {\n // eslint-disable-next-line react/no-find-dom-node\n const domNode = ReactDOM.findDOMNode(this);\n\n renderMath(domNode);\n } catch (e) {\n // Added try-catch block to handle \"Unable to find node on an unmounted component\" error from tests, thrown because of the usage of shallow\n console.error('DOM not mounted');\n }\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 addChoiceToCategory = (addedChoice, categoryId) => {\n const { model, onModelChanged } = this.props;\n let { choices = [], correctResponse = [], maxChoicesPerCategory = 0 } = model || {};\n const choice = (choices || []).find((choice) => choice.id === addedChoice.id);\n correctResponse = moveChoiceToCategory(addedChoice.id, undefined, categoryId, 0, model.correctResponse);\n // if multiplePlacements not allowed, ensure the consistency in the other categories\n if (choice.categoryCount !== 0) {\n correctResponse = verifyAllowMultiplePlacements(addedChoice, categoryId, 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 onModelChanged({\n correctResponse,\n maxChoicesPerCategory:\n maxChoicesPerCategory !== 0 && maxChoicesPerCategory < maxCategoryChoices\n ? maxChoicesPerCategory + 1\n : maxChoicesPerCategory,\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 moveChoice = (choiceId, from, to, choiceIndex) => {\n const { model, onModelChanged } = 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 onModelChanged({\n correctResponse,\n maxChoicesPerCategory:\n maxChoicesPerCategory !== 0 && maxChoicesPerCategory < maxCategoryChoices\n ? maxChoicesPerCategory + 1\n : maxChoicesPerCategory,\n });\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 classes,\n className,\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 <div className={classNames(classes.categories, className)}>\n <Header\n label=\"Categories\"\n buttonLabel=\"ADD A CATEGORY\"\n onAdd={this.add}\n info={\n <Tooltip\n classes={{ tooltip: classes.tooltip }}\n disableFocusListener\n disableTouchListener\n placement={'right'}\n title={validationMessage}\n >\n <Info fontSize={'small'} color={'primary'} style={{ marginLeft: '5px' }} />\n </Tooltip>\n }\n buttonDisabled={maxCategories && categories && maxCategories === categories.length}\n />\n\n <div className={classes.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 onAddChoice={this.addChoiceToCategory}\n onMoveChoice={(choiceId, from, to, choiceIndex) => this.moveChoice(choiceId, from, to, choiceIndex)}\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 />\n </React.Fragment>\n );\n })}\n </div>\n\n {associationError && <div className={classes.errorText}>{associationError}</div>}\n {categoriesError && <div className={classes.errorText}>{categoriesError}</div>}\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(Categories);\n"],"file":"index.js"}
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":[]}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
5
+ var _react = _interopRequireDefault(require("react"));
6
+ var _react2 = require("@testing-library/react");
7
+ var _styles = require("@mui/material/styles");
8
+ var _choice = _interopRequireDefault(require("../choice"));
9
+ jest.mock('@pie-lib/editable-html-tip-tap', () => props => /*#__PURE__*/_react.default.createElement("div", props));
10
+ jest.mock('@pie-lib/config-ui', () => ({
11
+ NumberTextField: props => /*#__PURE__*/_react.default.createElement("input", (0, _extends2.default)({
12
+ type: "number"
13
+ }, props))
14
+ }));
15
+ const theme = (0, _styles.createTheme)();
16
+ describe('choice', () => {
17
+ let onChange;
18
+ let onDelete;
19
+ let connectDragSource;
20
+ let connectDragPreview;
21
+ let connectDropTarget;
22
+ beforeEach(() => {
23
+ onChange = jest.fn();
24
+ onDelete = jest.fn();
25
+ connectDragSource = jest.fn(el => el);
26
+ connectDragPreview = jest.fn(el => el);
27
+ connectDropTarget = jest.fn(el => el);
28
+ });
29
+ const renderChoice = extras => {
30
+ const props = {
31
+ classes: {},
32
+ correctResponseCount: 0,
33
+ className: 'classname',
34
+ choice: {
35
+ content: 'hi',
36
+ id: '1'
37
+ },
38
+ configuration: {
39
+ headers: {},
40
+ baseInputConfiguration: {}
41
+ },
42
+ onChange,
43
+ onDelete,
44
+ connectDragSource,
45
+ connectDragPreview,
46
+ connectDropTarget,
47
+ ...extras
48
+ };
49
+ return (0, _react2.render)(/*#__PURE__*/_react.default.createElement(_styles.ThemeProvider, {
50
+ theme: theme
51
+ }, /*#__PURE__*/_react.default.createElement(_choice.default, props)));
52
+ };
53
+ describe('renders', () => {
54
+ it('renders without crashing', () => {
55
+ const {
56
+ container
57
+ } = renderChoice();
58
+ expect(container).toBeInTheDocument();
59
+ });
60
+ });
61
+ });
62
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfc3R5bGVzIiwiX2Nob2ljZSIsImplc3QiLCJtb2NrIiwicHJvcHMiLCJkZWZhdWx0IiwiY3JlYXRlRWxlbWVudCIsIk51bWJlclRleHRGaWVsZCIsIl9leHRlbmRzMiIsInR5cGUiLCJ0aGVtZSIsImNyZWF0ZVRoZW1lIiwiZGVzY3JpYmUiLCJvbkNoYW5nZSIsIm9uRGVsZXRlIiwiY29ubmVjdERyYWdTb3VyY2UiLCJjb25uZWN0RHJhZ1ByZXZpZXciLCJjb25uZWN0RHJvcFRhcmdldCIsImJlZm9yZUVhY2giLCJmbiIsImVsIiwicmVuZGVyQ2hvaWNlIiwiZXh0cmFzIiwiY2xhc3NlcyIsImNvcnJlY3RSZXNwb25zZUNvdW50IiwiY2xhc3NOYW1lIiwiY2hvaWNlIiwiY29udGVudCIsImlkIiwiY29uZmlndXJhdGlvbiIsImhlYWRlcnMiLCJiYXNlSW5wdXRDb25maWd1cmF0aW9uIiwicmVuZGVyIiwiVGhlbWVQcm92aWRlciIsIml0IiwiY29udGFpbmVyIiwiZXhwZWN0IiwidG9CZUluVGhlRG9jdW1lbnQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGVzaWduL2Nob2ljZXMvX190ZXN0c19fL2Nob2ljZS50ZXN0LmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSAnQHRlc3RpbmctbGlicmFyeS9yZWFjdCc7XG5pbXBvcnQgeyBUaGVtZVByb3ZpZGVyLCBjcmVhdGVUaGVtZSB9IGZyb20gJ0BtdWkvbWF0ZXJpYWwvc3R5bGVzJztcbmltcG9ydCBDaG9pY2UgZnJvbSAnLi4vY2hvaWNlJztcblxuamVzdC5tb2NrKCdAcGllLWxpYi9lZGl0YWJsZS1odG1sLXRpcC10YXAnLCAoKSA9PiAocHJvcHMpID0+IDxkaXYgey4uLnByb3BzfSAvPik7XG5qZXN0Lm1vY2soJ0BwaWUtbGliL2NvbmZpZy11aScsICgpID0+ICh7XG4gIE51bWJlclRleHRGaWVsZDogKHByb3BzKSA9PiA8aW5wdXQgdHlwZT1cIm51bWJlclwiIHsuLi5wcm9wc30gLz4sXG59KSk7XG5cbmNvbnN0IHRoZW1lID0gY3JlYXRlVGhlbWUoKTtcblxuZGVzY3JpYmUoJ2Nob2ljZScsICgpID0+IHtcbiAgbGV0IG9uQ2hhbmdlO1xuICBsZXQgb25EZWxldGU7XG4gIGxldCBjb25uZWN0RHJhZ1NvdXJjZTtcbiAgbGV0IGNvbm5lY3REcmFnUHJldmlldztcbiAgbGV0IGNvbm5lY3REcm9wVGFyZ2V0O1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIG9uQ2hhbmdlID0gamVzdC5mbigpO1xuICAgIG9uRGVsZXRlID0gamVzdC5mbigpO1xuICAgIGNvbm5lY3REcmFnU291cmNlID0gamVzdC5mbigoZWwpID0+IGVsKTtcbiAgICBjb25uZWN0RHJhZ1ByZXZpZXcgPSBqZXN0LmZuKChlbCkgPT4gZWwpO1xuICAgIGNvbm5lY3REcm9wVGFyZ2V0ID0gamVzdC5mbigoZWwpID0+IGVsKTtcbiAgfSk7XG5cbiAgY29uc3QgcmVuZGVyQ2hvaWNlID0gKGV4dHJhcykgPT4ge1xuICAgIGNvbnN0IHByb3BzID0ge1xuICAgICAgY2xhc3Nlczoge30sXG4gICAgICBjb3JyZWN0UmVzcG9uc2VDb3VudDogMCxcbiAgICAgIGNsYXNzTmFtZTogJ2NsYXNzbmFtZScsXG4gICAgICBjaG9pY2U6IHtcbiAgICAgICAgY29udGVudDogJ2hpJyxcbiAgICAgICAgaWQ6ICcxJyxcbiAgICAgIH0sXG4gICAgICBjb25maWd1cmF0aW9uOiB7XG4gICAgICAgIGhlYWRlcnM6IHt9LFxuICAgICAgICBiYXNlSW5wdXRDb25maWd1cmF0aW9uOiB7fSxcbiAgICAgIH0sXG4gICAgICBvbkNoYW5nZSxcbiAgICAgIG9uRGVsZXRlLFxuICAgICAgY29ubmVjdERyYWdTb3VyY2UsXG4gICAgICBjb25uZWN0RHJhZ1ByZXZpZXcsXG4gICAgICBjb25uZWN0RHJvcFRhcmdldCxcbiAgICAgIC4uLmV4dHJhcyxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHJlbmRlcihcbiAgICAgIDxUaGVtZVByb3ZpZGVyIHRoZW1lPXt0aGVtZX0+XG4gICAgICAgIDxDaG9pY2Ugey4uLnByb3BzfSAvPlxuICAgICAgPC9UaGVtZVByb3ZpZGVyPlxuICAgICk7XG4gIH07XG5cbiAgZGVzY3JpYmUoJ3JlbmRlcnMnLCAoKSA9PiB7XG4gICAgaXQoJ3JlbmRlcnMgd2l0aG91dCBjcmFzaGluZycsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDaG9pY2UoKTtcbiAgICAgIGV4cGVjdChjb250YWluZXIpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG5cbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLE9BQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLE9BQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUVBSSxJQUFJLENBQUNDLElBQUksQ0FBQyxnQ0FBZ0MsRUFBRSxNQUFPQyxLQUFLLGlCQUFLUixNQUFBLENBQUFTLE9BQUEsQ0FBQUMsYUFBQSxRQUFTRixLQUFRLENBQUMsQ0FBQztBQUNoRkYsSUFBSSxDQUFDQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsT0FBTztFQUNyQ0ksZUFBZSxFQUFHSCxLQUFLLGlCQUFLUixNQUFBLENBQUFTLE9BQUEsQ0FBQUMsYUFBQSxjQUFBRSxTQUFBLENBQUFILE9BQUE7SUFBT0ksSUFBSSxFQUFDO0VBQVEsR0FBS0wsS0FBSyxDQUFHO0FBQy9ELENBQUMsQ0FBQyxDQUFDO0FBRUgsTUFBTU0sS0FBSyxHQUFHLElBQUFDLG1CQUFXLEVBQUMsQ0FBQztBQUUzQkMsUUFBUSxDQUFDLFFBQVEsRUFBRSxNQUFNO0VBQ3ZCLElBQUlDLFFBQVE7RUFDWixJQUFJQyxRQUFRO0VBQ1osSUFBSUMsaUJBQWlCO0VBQ3JCLElBQUlDLGtCQUFrQjtFQUN0QixJQUFJQyxpQkFBaUI7RUFFckJDLFVBQVUsQ0FBQyxNQUFNO0lBQ2ZMLFFBQVEsR0FBR1gsSUFBSSxDQUFDaUIsRUFBRSxDQUFDLENBQUM7SUFDcEJMLFFBQVEsR0FBR1osSUFBSSxDQUFDaUIsRUFBRSxDQUFDLENBQUM7SUFDcEJKLGlCQUFpQixHQUFHYixJQUFJLENBQUNpQixFQUFFLENBQUVDLEVBQUUsSUFBS0EsRUFBRSxDQUFDO0lBQ3ZDSixrQkFBa0IsR0FBR2QsSUFBSSxDQUFDaUIsRUFBRSxDQUFFQyxFQUFFLElBQUtBLEVBQUUsQ0FBQztJQUN4Q0gsaUJBQWlCLEdBQUdmLElBQUksQ0FBQ2lCLEVBQUUsQ0FBRUMsRUFBRSxJQUFLQSxFQUFFLENBQUM7RUFDekMsQ0FBQyxDQUFDO0VBRUYsTUFBTUMsWUFBWSxHQUFJQyxNQUFNLElBQUs7SUFDL0IsTUFBTWxCLEtBQUssR0FBRztNQUNabUIsT0FBTyxFQUFFLENBQUMsQ0FBQztNQUNYQyxvQkFBb0IsRUFBRSxDQUFDO01BQ3ZCQyxTQUFTLEVBQUUsV0FBVztNQUN0QkMsTUFBTSxFQUFFO1FBQ05DLE9BQU8sRUFBRSxJQUFJO1FBQ2JDLEVBQUUsRUFBRTtNQUNOLENBQUM7TUFDREMsYUFBYSxFQUFFO1FBQ2JDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDWEMsc0JBQXNCLEVBQUUsQ0FBQztNQUMzQixDQUFDO01BQ0RsQixRQUFRO01BQ1JDLFFBQVE7TUFDUkMsaUJBQWlCO01BQ2pCQyxrQkFBa0I7TUFDbEJDLGlCQUFpQjtNQUNqQixHQUFHSztJQUNMLENBQUM7SUFFRCxPQUFPLElBQUFVLGNBQU0sZUFDWHBDLE1BQUEsQ0FBQVMsT0FBQSxDQUFBQyxhQUFBLENBQUNOLE9BQUEsQ0FBQWlDLGFBQWE7TUFBQ3ZCLEtBQUssRUFBRUE7SUFBTSxnQkFDMUJkLE1BQUEsQ0FBQVMsT0FBQSxDQUFBQyxhQUFBLENBQUNMLE9BQUEsQ0FBQUksT0FBTSxFQUFLRCxLQUFRLENBQ1AsQ0FDakIsQ0FBQztFQUNILENBQUM7RUFFRFEsUUFBUSxDQUFDLFNBQVMsRUFBRSxNQUFNO0lBQ3hCc0IsRUFBRSxDQUFDLDBCQUEwQixFQUFFLE1BQU07TUFDbkMsTUFBTTtRQUFFQztNQUFVLENBQUMsR0FBR2QsWUFBWSxDQUFDLENBQUM7TUFDcENlLE1BQU0sQ0FBQ0QsU0FBUyxDQUFDLENBQUNFLGlCQUFpQixDQUFDLENBQUM7SUFDdkMsQ0FBQyxDQUFDO0VBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _react = _interopRequireDefault(require("react"));
5
+ var _react2 = require("@testing-library/react");
6
+ var _styles = require("@mui/material/styles");
7
+ var _config = require("../config");
8
+ jest.mock('@pie-lib/config-ui', () => ({
9
+ settings: {
10
+ Panel: props => /*#__PURE__*/_react.default.createElement("div", null, props.children),
11
+ toggle: jest.fn(() => props => /*#__PURE__*/_react.default.createElement("div", props)),
12
+ radio: jest.fn(() => props => /*#__PURE__*/_react.default.createElement("div", props))
13
+ },
14
+ layout: {
15
+ ConfigLayout: props => /*#__PURE__*/_react.default.createElement("div", null, props.children)
16
+ }
17
+ }));
18
+ const theme = (0, _styles.createTheme)();
19
+ describe('config', () => {
20
+ let onModelChanged;
21
+ let allChoicesHaveCount;
22
+ let config;
23
+ beforeEach(() => {
24
+ onModelChanged = jest.fn();
25
+ allChoicesHaveCount = jest.fn();
26
+ config = {
27
+ choices: [{
28
+ id: '0',
29
+ content: 'Choice 0'
30
+ }],
31
+ choicesPosition: 'below',
32
+ choicesLabel: '',
33
+ lockChoiceOrder: true,
34
+ categoriesPerRow: 2,
35
+ categories: [{
36
+ id: '0',
37
+ label: 'Category 0',
38
+ choices: []
39
+ }],
40
+ rowLabels: [''],
41
+ correctResponse: [],
42
+ partialScoring: true
43
+ };
44
+ });
45
+ const renderConfig = extras => {
46
+ const props = {
47
+ classes: {},
48
+ onModelChanged,
49
+ allChoicesHaveCount,
50
+ config,
51
+ ...extras
52
+ };
53
+ return (0, _react2.render)(/*#__PURE__*/_react.default.createElement(_styles.ThemeProvider, {
54
+ theme: theme
55
+ }, /*#__PURE__*/_react.default.createElement(_config.Config, props)));
56
+ };
57
+ describe('renders', () => {
58
+ it('renders without crashing', () => {
59
+ const {
60
+ container
61
+ } = renderConfig();
62
+ expect(container).toBeInTheDocument();
63
+ });
64
+ });
65
+ });
66
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfc3R5bGVzIiwiX2NvbmZpZyIsImplc3QiLCJtb2NrIiwic2V0dGluZ3MiLCJQYW5lbCIsInByb3BzIiwiZGVmYXVsdCIsImNyZWF0ZUVsZW1lbnQiLCJjaGlsZHJlbiIsInRvZ2dsZSIsImZuIiwicmFkaW8iLCJsYXlvdXQiLCJDb25maWdMYXlvdXQiLCJ0aGVtZSIsImNyZWF0ZVRoZW1lIiwiZGVzY3JpYmUiLCJvbk1vZGVsQ2hhbmdlZCIsImFsbENob2ljZXNIYXZlQ291bnQiLCJjb25maWciLCJiZWZvcmVFYWNoIiwiY2hvaWNlcyIsImlkIiwiY29udGVudCIsImNob2ljZXNQb3NpdGlvbiIsImNob2ljZXNMYWJlbCIsImxvY2tDaG9pY2VPcmRlciIsImNhdGVnb3JpZXNQZXJSb3ciLCJjYXRlZ29yaWVzIiwibGFiZWwiLCJyb3dMYWJlbHMiLCJjb3JyZWN0UmVzcG9uc2UiLCJwYXJ0aWFsU2NvcmluZyIsInJlbmRlckNvbmZpZyIsImV4dHJhcyIsImNsYXNzZXMiLCJyZW5kZXIiLCJUaGVtZVByb3ZpZGVyIiwiQ29uZmlnIiwiaXQiLCJjb250YWluZXIiLCJleHBlY3QiLCJ0b0JlSW5UaGVEb2N1bWVudCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kZXNpZ24vY2hvaWNlcy9fX3Rlc3RzX18vY29uZmlnLnRlc3QuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyByZW5kZXIgfSBmcm9tICdAdGVzdGluZy1saWJyYXJ5L3JlYWN0JztcbmltcG9ydCB7IFRoZW1lUHJvdmlkZXIsIGNyZWF0ZVRoZW1lIH0gZnJvbSAnQG11aS9tYXRlcmlhbC9zdHlsZXMnO1xuXG5pbXBvcnQgeyBDb25maWcgfSBmcm9tICcuLi9jb25maWcnO1xuXG5qZXN0Lm1vY2soJ0BwaWUtbGliL2NvbmZpZy11aScsICgpID0+ICh7XG4gIHNldHRpbmdzOiB7XG4gICAgUGFuZWw6IChwcm9wcykgPT4gPGRpdj57cHJvcHMuY2hpbGRyZW59PC9kaXY+LFxuICAgIHRvZ2dsZTogamVzdC5mbigoKSA9PiAocHJvcHMpID0+IDxkaXYgey4uLnByb3BzfSAvPiksXG4gICAgcmFkaW86IGplc3QuZm4oKCkgPT4gKHByb3BzKSA9PiA8ZGl2IHsuLi5wcm9wc30gLz4pLFxuICB9LFxuICBsYXlvdXQ6IHtcbiAgICBDb25maWdMYXlvdXQ6IChwcm9wcykgPT4gPGRpdj57cHJvcHMuY2hpbGRyZW59PC9kaXY+LFxuICB9LFxufSkpO1xuXG5jb25zdCB0aGVtZSA9IGNyZWF0ZVRoZW1lKCk7XG5cbmRlc2NyaWJlKCdjb25maWcnLCAoKSA9PiB7XG4gIGxldCBvbk1vZGVsQ2hhbmdlZDtcbiAgbGV0IGFsbENob2ljZXNIYXZlQ291bnQ7XG4gIGxldCBjb25maWc7XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgb25Nb2RlbENoYW5nZWQgPSBqZXN0LmZuKCk7XG4gICAgYWxsQ2hvaWNlc0hhdmVDb3VudCA9IGplc3QuZm4oKTtcbiAgICBjb25maWcgPSB7XG4gICAgICBjaG9pY2VzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBpZDogJzAnLFxuICAgICAgICAgIGNvbnRlbnQ6ICdDaG9pY2UgMCdcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBjaG9pY2VzUG9zaXRpb246ICdiZWxvdycsXG4gICAgICBjaG9pY2VzTGFiZWw6ICcnLFxuICAgICAgbG9ja0Nob2ljZU9yZGVyOiB0cnVlLFxuICAgICAgY2F0ZWdvcmllc1BlclJvdzogMixcbiAgICAgIGNhdGVnb3JpZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAnMCcsXG4gICAgICAgICAgbGFiZWw6ICdDYXRlZ29yeSAwJyxcbiAgICAgICAgICBjaG9pY2VzOiBbXVxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHJvd0xhYmVsczogWycnXSxcbiAgICAgIGNvcnJlY3RSZXNwb25zZTogW10sXG4gICAgICBwYXJ0aWFsU2NvcmluZzogdHJ1ZSxcbiAgICB9O1xuICB9KTtcblxuICBjb25zdCByZW5kZXJDb25maWcgPSBleHRyYXMgPT4ge1xuICAgIGNvbnN0IHByb3BzID0geyBjbGFzc2VzOiB7fSwgb25Nb2RlbENoYW5nZWQsIGFsbENob2ljZXNIYXZlQ291bnQsIGNvbmZpZywgLi4uZXh0cmFzIH07XG4gICAgcmV0dXJuIHJlbmRlcihcbiAgICAgIDxUaGVtZVByb3ZpZGVyIHRoZW1lPXt0aGVtZX0+XG4gICAgICAgIDxDb25maWcgey4uLnByb3BzfSAvPlxuICAgICAgPC9UaGVtZVByb3ZpZGVyPlxuICAgICk7XG4gIH07XG5cbiAgZGVzY3JpYmUoJ3JlbmRlcnMnLCAoKSA9PiB7XG4gICAgaXQoJ3JlbmRlcnMgd2l0aG91dCBjcmFzaGluZycsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDb25maWcoKTtcbiAgICAgIGV4cGVjdChjb250YWluZXIpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLE9BQUEsR0FBQUYsT0FBQTtBQUVBLElBQUFHLE9BQUEsR0FBQUgsT0FBQTtBQUVBSSxJQUFJLENBQUNDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxPQUFPO0VBQ3JDQyxRQUFRLEVBQUU7SUFDUkMsS0FBSyxFQUFHQyxLQUFLLGlCQUFLVixNQUFBLENBQUFXLE9BQUEsQ0FBQUMsYUFBQSxjQUFNRixLQUFLLENBQUNHLFFBQWMsQ0FBQztJQUM3Q0MsTUFBTSxFQUFFUixJQUFJLENBQUNTLEVBQUUsQ0FBQyxNQUFPTCxLQUFLLGlCQUFLVixNQUFBLENBQUFXLE9BQUEsQ0FBQUMsYUFBQSxRQUFTRixLQUFRLENBQUMsQ0FBQztJQUNwRE0sS0FBSyxFQUFFVixJQUFJLENBQUNTLEVBQUUsQ0FBQyxNQUFPTCxLQUFLLGlCQUFLVixNQUFBLENBQUFXLE9BQUEsQ0FBQUMsYUFBQSxRQUFTRixLQUFRLENBQUM7RUFDcEQsQ0FBQztFQUNETyxNQUFNLEVBQUU7SUFDTkMsWUFBWSxFQUFHUixLQUFLLGlCQUFLVixNQUFBLENBQUFXLE9BQUEsQ0FBQUMsYUFBQSxjQUFNRixLQUFLLENBQUNHLFFBQWM7RUFDckQ7QUFDRixDQUFDLENBQUMsQ0FBQztBQUVILE1BQU1NLEtBQUssR0FBRyxJQUFBQyxtQkFBVyxFQUFDLENBQUM7QUFFM0JDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsTUFBTTtFQUN2QixJQUFJQyxjQUFjO0VBQ2xCLElBQUlDLG1CQUFtQjtFQUN2QixJQUFJQyxNQUFNO0VBRVZDLFVBQVUsQ0FBQyxNQUFNO0lBQ2ZILGNBQWMsR0FBR2hCLElBQUksQ0FBQ1MsRUFBRSxDQUFDLENBQUM7SUFDMUJRLG1CQUFtQixHQUFHakIsSUFBSSxDQUFDUyxFQUFFLENBQUMsQ0FBQztJQUMvQlMsTUFBTSxHQUFHO01BQ1BFLE9BQU8sRUFBRSxDQUNQO1FBQ0VDLEVBQUUsRUFBRSxHQUFHO1FBQ1BDLE9BQU8sRUFBRTtNQUNYLENBQUMsQ0FDRjtNQUNEQyxlQUFlLEVBQUUsT0FBTztNQUN4QkMsWUFBWSxFQUFFLEVBQUU7TUFDaEJDLGVBQWUsRUFBRSxJQUFJO01BQ3JCQyxnQkFBZ0IsRUFBRSxDQUFDO01BQ25CQyxVQUFVLEVBQUUsQ0FDVjtRQUNFTixFQUFFLEVBQUUsR0FBRztRQUNQTyxLQUFLLEVBQUUsWUFBWTtRQUNuQlIsT0FBTyxFQUFFO01BQ1gsQ0FBQyxDQUNGO01BQ0RTLFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQztNQUNmQyxlQUFlLEVBQUUsRUFBRTtNQUNuQkMsY0FBYyxFQUFFO0lBQ2xCLENBQUM7RUFDSCxDQUFDLENBQUM7RUFFRixNQUFNQyxZQUFZLEdBQUdDLE1BQU0sSUFBSTtJQUM3QixNQUFNN0IsS0FBSyxHQUFHO01BQUU4QixPQUFPLEVBQUUsQ0FBQyxDQUFDO01BQUVsQixjQUFjO01BQUVDLG1CQUFtQjtNQUFFQyxNQUFNO01BQUUsR0FBR2U7SUFBTyxDQUFDO0lBQ3JGLE9BQU8sSUFBQUUsY0FBTSxlQUNYekMsTUFBQSxDQUFBVyxPQUFBLENBQUFDLGFBQUEsQ0FBQ1IsT0FBQSxDQUFBc0MsYUFBYTtNQUFDdkIsS0FBSyxFQUFFQTtJQUFNLGdCQUMxQm5CLE1BQUEsQ0FBQVcsT0FBQSxDQUFBQyxhQUFBLENBQUNQLE9BQUEsQ0FBQXNDLE1BQU0sRUFBS2pDLEtBQVEsQ0FDUCxDQUNqQixDQUFDO0VBQ0gsQ0FBQztFQUVEVyxRQUFRLENBQUMsU0FBUyxFQUFFLE1BQU07SUFDeEJ1QixFQUFFLENBQUMsMEJBQTBCLEVBQUUsTUFBTTtNQUNuQyxNQUFNO1FBQUVDO01BQVUsQ0FBQyxHQUFHUCxZQUFZLENBQUMsQ0FBQztNQUNwQ1EsTUFBTSxDQUFDRCxTQUFTLENBQUMsQ0FBQ0UsaUJBQWlCLENBQUMsQ0FBQztJQUN2QyxDQUFDLENBQUM7RUFDSixDQUFDLENBQUM7QUFDSixDQUFDLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _react = _interopRequireDefault(require("react"));
5
+ var _react2 = require("@testing-library/react");
6
+ var _styles = require("@mui/material/styles");
7
+ var _index = require("../index");
8
+ jest.mock('../../header', () => ({
9
+ __esModule: true,
10
+ default: props => /*#__PURE__*/_react.default.createElement("div", props)
11
+ }));
12
+ jest.mock('../choice', () => ({
13
+ __esModule: true,
14
+ default: props => /*#__PURE__*/_react.default.createElement("div", props)
15
+ }));
16
+ jest.mock('../config', () => ({
17
+ __esModule: true,
18
+ default: props => /*#__PURE__*/_react.default.createElement("div", props)
19
+ }));
20
+ const theme = (0, _styles.createTheme)();
21
+ describe('choices', () => {
22
+ let onModelChanged = jest.fn();
23
+ let model = {
24
+ choices: [{
25
+ id: '0',
26
+ content: 'Choice 0'
27
+ }],
28
+ choicesPosition: 'below',
29
+ choicesLabel: '',
30
+ lockChoiceOrder: true,
31
+ categoriesPerRow: 2,
32
+ categories: [{
33
+ id: '0',
34
+ label: 'Category 0',
35
+ choices: []
36
+ }],
37
+ rowLabels: [''],
38
+ correctResponse: [],
39
+ partialScoring: true,
40
+ maxAnswerChoices: 3
41
+ };
42
+ beforeEach(() => {
43
+ onModelChanged = jest.fn();
44
+ });
45
+ const renderChoices = extras => {
46
+ const props = {
47
+ onModelChanged,
48
+ model,
49
+ configuration: {},
50
+ classes: {},
51
+ choices: [{
52
+ id: '0',
53
+ content: 'Choice 0'
54
+ }],
55
+ ...extras
56
+ };
57
+ return (0, _react2.render)(/*#__PURE__*/_react.default.createElement(_styles.ThemeProvider, {
58
+ theme: theme
59
+ }, /*#__PURE__*/_react.default.createElement(_index.Choices, props)));
60
+ };
61
+ describe('renders', () => {
62
+ it('renders without crashing', () => {
63
+ const {
64
+ container
65
+ } = renderChoices();
66
+ expect(container).toBeInTheDocument();
67
+ });
68
+ });
69
+ });
70
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfc3R5bGVzIiwiX2luZGV4IiwiamVzdCIsIm1vY2siLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsInByb3BzIiwiY3JlYXRlRWxlbWVudCIsInRoZW1lIiwiY3JlYXRlVGhlbWUiLCJkZXNjcmliZSIsIm9uTW9kZWxDaGFuZ2VkIiwiZm4iLCJtb2RlbCIsImNob2ljZXMiLCJpZCIsImNvbnRlbnQiLCJjaG9pY2VzUG9zaXRpb24iLCJjaG9pY2VzTGFiZWwiLCJsb2NrQ2hvaWNlT3JkZXIiLCJjYXRlZ29yaWVzUGVyUm93IiwiY2F0ZWdvcmllcyIsImxhYmVsIiwicm93TGFiZWxzIiwiY29ycmVjdFJlc3BvbnNlIiwicGFydGlhbFNjb3JpbmciLCJtYXhBbnN3ZXJDaG9pY2VzIiwiYmVmb3JlRWFjaCIsInJlbmRlckNob2ljZXMiLCJleHRyYXMiLCJjb25maWd1cmF0aW9uIiwiY2xhc3NlcyIsInJlbmRlciIsIlRoZW1lUHJvdmlkZXIiLCJDaG9pY2VzIiwiaXQiLCJjb250YWluZXIiLCJleHBlY3QiLCJ0b0JlSW5UaGVEb2N1bWVudCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kZXNpZ24vY2hvaWNlcy9fX3Rlc3RzX18vaW5kZXgudGVzdC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHJlbmRlciB9IGZyb20gJ0B0ZXN0aW5nLWxpYnJhcnkvcmVhY3QnO1xuaW1wb3J0IHsgVGhlbWVQcm92aWRlciwgY3JlYXRlVGhlbWUgfSBmcm9tICdAbXVpL21hdGVyaWFsL3N0eWxlcyc7XG5pbXBvcnQgeyBDaG9pY2VzIH0gZnJvbSAnLi4vaW5kZXgnO1xuXG5qZXN0Lm1vY2soJy4uLy4uL2hlYWRlcicsICgpID0+ICh7XG4gIF9fZXNNb2R1bGU6IHRydWUsXG4gIGRlZmF1bHQ6IChwcm9wcykgPT4gPGRpdiB7Li4ucHJvcHN9IC8+LFxufSkpO1xuamVzdC5tb2NrKCcuLi9jaG9pY2UnLCAoKSA9PiAoe1xuICBfX2VzTW9kdWxlOiB0cnVlLFxuICBkZWZhdWx0OiAocHJvcHMpID0+IDxkaXYgey4uLnByb3BzfSAvPixcbn0pKTtcbmplc3QubW9jaygnLi4vY29uZmlnJywgKCkgPT4gKHtcbiAgX19lc01vZHVsZTogdHJ1ZSxcbiAgZGVmYXVsdDogKHByb3BzKSA9PiA8ZGl2IHsuLi5wcm9wc30gLz4sXG59KSk7XG5cbmNvbnN0IHRoZW1lID0gY3JlYXRlVGhlbWUoKTtcblxuZGVzY3JpYmUoJ2Nob2ljZXMnLCAoKSA9PiB7XG4gIGxldCBvbk1vZGVsQ2hhbmdlZCA9IGplc3QuZm4oKTtcbiAgbGV0IG1vZGVsID0ge1xuICAgIGNob2ljZXM6IFtcbiAgICAgIHtcbiAgICAgICAgaWQ6ICcwJyxcbiAgICAgICAgY29udGVudDogJ0Nob2ljZSAwJyxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBjaG9pY2VzUG9zaXRpb246ICdiZWxvdycsXG4gICAgY2hvaWNlc0xhYmVsOiAnJyxcbiAgICBsb2NrQ2hvaWNlT3JkZXI6IHRydWUsXG4gICAgY2F0ZWdvcmllc1BlclJvdzogMixcbiAgICBjYXRlZ29yaWVzOiBbXG4gICAgICB7XG4gICAgICAgIGlkOiAnMCcsXG4gICAgICAgIGxhYmVsOiAnQ2F0ZWdvcnkgMCcsXG4gICAgICAgIGNob2ljZXM6IFtdLFxuICAgICAgfSxcbiAgICBdLFxuICAgIHJvd0xhYmVsczogWycnXSxcbiAgICBjb3JyZWN0UmVzcG9uc2U6IFtdLFxuICAgIHBhcnRpYWxTY29yaW5nOiB0cnVlLFxuICAgIG1heEFuc3dlckNob2ljZXM6IDMsXG4gIH07XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgb25Nb2RlbENoYW5nZWQgPSBqZXN0LmZuKCk7XG4gIH0pO1xuXG4gIGNvbnN0IHJlbmRlckNob2ljZXMgPSAoZXh0cmFzKSA9PiB7XG4gICAgY29uc3QgcHJvcHMgPSB7XG4gICAgICBvbk1vZGVsQ2hhbmdlZCxcbiAgICAgIG1vZGVsLFxuICAgICAgY29uZmlndXJhdGlvbjoge30sXG4gICAgICBjbGFzc2VzOiB7fSxcbiAgICAgIGNob2ljZXM6IFt7IGlkOiAnMCcsIGNvbnRlbnQ6ICdDaG9pY2UgMCcgfV0sXG4gICAgICAuLi5leHRyYXMsXG4gICAgfTtcbiAgICByZXR1cm4gcmVuZGVyKFxuICAgICAgPFRoZW1lUHJvdmlkZXIgdGhlbWU9e3RoZW1lfT5cbiAgICAgICAgPENob2ljZXMgey4uLnByb3BzfSAvPlxuICAgICAgPC9UaGVtZVByb3ZpZGVyPlxuICAgICk7XG4gIH07XG5cbiAgZGVzY3JpYmUoJ3JlbmRlcnMnLCAoKSA9PiB7XG4gICAgaXQoJ3JlbmRlcnMgd2l0aG91dCBjcmFzaGluZycsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDaG9pY2VzKCk7XG4gICAgICBleHBlY3QoY29udGFpbmVyKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxPQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxNQUFBLEdBQUFILE9BQUE7QUFFQUksSUFBSSxDQUFDQyxJQUFJLENBQUMsY0FBYyxFQUFFLE9BQU87RUFDL0JDLFVBQVUsRUFBRSxJQUFJO0VBQ2hCQyxPQUFPLEVBQUdDLEtBQUssaUJBQUtWLE1BQUEsQ0FBQVMsT0FBQSxDQUFBRSxhQUFBLFFBQVNELEtBQVE7QUFDdkMsQ0FBQyxDQUFDLENBQUM7QUFDSEosSUFBSSxDQUFDQyxJQUFJLENBQUMsV0FBVyxFQUFFLE9BQU87RUFDNUJDLFVBQVUsRUFBRSxJQUFJO0VBQ2hCQyxPQUFPLEVBQUdDLEtBQUssaUJBQUtWLE1BQUEsQ0FBQVMsT0FBQSxDQUFBRSxhQUFBLFFBQVNELEtBQVE7QUFDdkMsQ0FBQyxDQUFDLENBQUM7QUFDSEosSUFBSSxDQUFDQyxJQUFJLENBQUMsV0FBVyxFQUFFLE9BQU87RUFDNUJDLFVBQVUsRUFBRSxJQUFJO0VBQ2hCQyxPQUFPLEVBQUdDLEtBQUssaUJBQUtWLE1BQUEsQ0FBQVMsT0FBQSxDQUFBRSxhQUFBLFFBQVNELEtBQVE7QUFDdkMsQ0FBQyxDQUFDLENBQUM7QUFFSCxNQUFNRSxLQUFLLEdBQUcsSUFBQUMsbUJBQVcsRUFBQyxDQUFDO0FBRTNCQyxRQUFRLENBQUMsU0FBUyxFQUFFLE1BQU07RUFDeEIsSUFBSUMsY0FBYyxHQUFHVCxJQUFJLENBQUNVLEVBQUUsQ0FBQyxDQUFDO0VBQzlCLElBQUlDLEtBQUssR0FBRztJQUNWQyxPQUFPLEVBQUUsQ0FDUDtNQUNFQyxFQUFFLEVBQUUsR0FBRztNQUNQQyxPQUFPLEVBQUU7SUFDWCxDQUFDLENBQ0Y7SUFDREMsZUFBZSxFQUFFLE9BQU87SUFDeEJDLFlBQVksRUFBRSxFQUFFO0lBQ2hCQyxlQUFlLEVBQUUsSUFBSTtJQUNyQkMsZ0JBQWdCLEVBQUUsQ0FBQztJQUNuQkMsVUFBVSxFQUFFLENBQ1Y7TUFDRU4sRUFBRSxFQUFFLEdBQUc7TUFDUE8sS0FBSyxFQUFFLFlBQVk7TUFDbkJSLE9BQU8sRUFBRTtJQUNYLENBQUMsQ0FDRjtJQUNEUyxTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFDZkMsZUFBZSxFQUFFLEVBQUU7SUFDbkJDLGNBQWMsRUFBRSxJQUFJO0lBQ3BCQyxnQkFBZ0IsRUFBRTtFQUNwQixDQUFDO0VBRURDLFVBQVUsQ0FBQyxNQUFNO0lBQ2ZoQixjQUFjLEdBQUdULElBQUksQ0FBQ1UsRUFBRSxDQUFDLENBQUM7RUFDNUIsQ0FBQyxDQUFDO0VBRUYsTUFBTWdCLGFBQWEsR0FBSUMsTUFBTSxJQUFLO0lBQ2hDLE1BQU12QixLQUFLLEdBQUc7TUFDWkssY0FBYztNQUNkRSxLQUFLO01BQ0xpQixhQUFhLEVBQUUsQ0FBQyxDQUFDO01BQ2pCQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO01BQ1hqQixPQUFPLEVBQUUsQ0FBQztRQUFFQyxFQUFFLEVBQUUsR0FBRztRQUFFQyxPQUFPLEVBQUU7TUFBVyxDQUFDLENBQUM7TUFDM0MsR0FBR2E7SUFDTCxDQUFDO0lBQ0QsT0FBTyxJQUFBRyxjQUFNLGVBQ1hwQyxNQUFBLENBQUFTLE9BQUEsQ0FBQUUsYUFBQSxDQUFDUCxPQUFBLENBQUFpQyxhQUFhO01BQUN6QixLQUFLLEVBQUVBO0lBQU0sZ0JBQzFCWixNQUFBLENBQUFTLE9BQUEsQ0FBQUUsYUFBQSxDQUFDTixNQUFBLENBQUFpQyxPQUFPLEVBQUs1QixLQUFRLENBQ1IsQ0FDakIsQ0FBQztFQUNILENBQUM7RUFFREksUUFBUSxDQUFDLFNBQVMsRUFBRSxNQUFNO0lBQ3hCeUIsRUFBRSxDQUFDLDBCQUEwQixFQUFFLE1BQU07TUFDbkMsTUFBTTtRQUFFQztNQUFVLENBQUMsR0FBR1IsYUFBYSxDQUFDLENBQUM7TUFDckNTLE1BQU0sQ0FBQ0QsU0FBUyxDQUFDLENBQUNFLGlCQUFpQixDQUFDLENBQUM7SUFDdkMsQ0FBQyxDQUFDO0VBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119