@pie-lib/config-ui 12.0.0-beta.5 → 12.1.0-next.0

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 (139) hide show
  1. package/CHANGELOG.json +8 -1653
  2. package/CHANGELOG.md +345 -4
  3. package/LICENSE.md +5 -0
  4. package/NEXT.CHANGELOG.json +1 -0
  5. package/lib/__tests__/alert-dialog.test.js +262 -0
  6. package/lib/__tests__/checkbox.test.js +227 -0
  7. package/lib/__tests__/choice-utils.test.js +14 -0
  8. package/lib/__tests__/form-section.test.js +252 -0
  9. package/lib/__tests__/help.test.js +270 -0
  10. package/lib/__tests__/input.test.js +268 -0
  11. package/lib/__tests__/langs.test.js +541 -0
  12. package/lib/__tests__/number-text-field-custom.test.js +362 -0
  13. package/lib/__tests__/number-text-field.test.js +421 -0
  14. package/lib/__tests__/radio-with-label.test.js +233 -0
  15. package/lib/__tests__/settings-panel.test.js +184 -0
  16. package/lib/__tests__/settings.test.js +653 -0
  17. package/lib/__tests__/tabs.test.js +211 -0
  18. package/lib/__tests__/two-choice.test.js +124 -0
  19. package/lib/__tests__/with-stateful-model.test.js +221 -0
  20. package/lib/alert-dialog.js +41 -11
  21. package/lib/alert-dialog.js.map +1 -1
  22. package/lib/checkbox.js +59 -49
  23. package/lib/checkbox.js.map +1 -1
  24. package/lib/choice-configuration/__tests__/feedback-menu.test.js +287 -0
  25. package/lib/choice-configuration/__tests__/index.test.js +253 -0
  26. package/lib/choice-configuration/feedback-menu.js +25 -27
  27. package/lib/choice-configuration/feedback-menu.js.map +1 -1
  28. package/lib/choice-configuration/index.js +183 -186
  29. package/lib/choice-configuration/index.js.map +1 -1
  30. package/lib/choice-utils.js +6 -8
  31. package/lib/choice-utils.js.map +1 -1
  32. package/lib/feedback-config/__tests__/feedback-config.test.js +201 -0
  33. package/lib/feedback-config/__tests__/feedback-selector.test.js +177 -0
  34. package/lib/feedback-config/feedback-selector.js +70 -74
  35. package/lib/feedback-config/feedback-selector.js.map +1 -1
  36. package/lib/feedback-config/group.js +23 -26
  37. package/lib/feedback-config/group.js.map +1 -1
  38. package/lib/feedback-config/index.js +42 -45
  39. package/lib/feedback-config/index.js.map +1 -1
  40. package/lib/form-section.js +32 -26
  41. package/lib/form-section.js.map +1 -1
  42. package/lib/help.js +38 -48
  43. package/lib/help.js.map +1 -1
  44. package/lib/index.js +2 -3
  45. package/lib/index.js.map +1 -1
  46. package/lib/input.js +13 -18
  47. package/lib/input.js.map +1 -1
  48. package/lib/inputs.js +59 -68
  49. package/lib/inputs.js.map +1 -1
  50. package/lib/langs.js +57 -71
  51. package/lib/langs.js.map +1 -1
  52. package/lib/layout/__tests__/config.layout.test.js +70 -0
  53. package/lib/layout/__tests__/layout-content.test.js +6 -0
  54. package/lib/layout/config-layout.js +79 -48
  55. package/lib/layout/config-layout.js.map +1 -1
  56. package/lib/layout/index.js +1 -1
  57. package/lib/layout/index.js.map +1 -1
  58. package/lib/layout/layout-contents.js +59 -61
  59. package/lib/layout/layout-contents.js.map +1 -1
  60. package/lib/layout/settings-box.js +26 -34
  61. package/lib/layout/settings-box.js.map +1 -1
  62. package/lib/mui-box/index.js +42 -51
  63. package/lib/mui-box/index.js.map +1 -1
  64. package/lib/number-text-field-custom.js +152 -90
  65. package/lib/number-text-field-custom.js.map +1 -1
  66. package/lib/number-text-field.js +75 -64
  67. package/lib/number-text-field.js.map +1 -1
  68. package/lib/radio-with-label.js +31 -17
  69. package/lib/radio-with-label.js.map +1 -1
  70. package/lib/settings/display-size.js +17 -21
  71. package/lib/settings/display-size.js.map +1 -1
  72. package/lib/settings/index.js +14 -20
  73. package/lib/settings/index.js.map +1 -1
  74. package/lib/settings/panel.js +141 -142
  75. package/lib/settings/panel.js.map +1 -1
  76. package/lib/settings/settings-radio-label.js +30 -17
  77. package/lib/settings/settings-radio-label.js.map +1 -1
  78. package/lib/settings/toggle.js +40 -26
  79. package/lib/settings/toggle.js.map +1 -1
  80. package/lib/tabs/index.js +19 -31
  81. package/lib/tabs/index.js.map +1 -1
  82. package/lib/tags-input/__tests__/index.test.js +183 -0
  83. package/lib/tags-input/index.js +50 -62
  84. package/lib/tags-input/index.js.map +1 -1
  85. package/lib/two-choice.js +34 -44
  86. package/lib/two-choice.js.map +1 -1
  87. package/lib/with-stateful-model.js +9 -13
  88. package/lib/with-stateful-model.js.map +1 -1
  89. package/package.json +14 -11
  90. package/src/__tests__/alert-dialog.test.jsx +283 -0
  91. package/src/__tests__/checkbox.test.jsx +249 -0
  92. package/src/__tests__/choice-utils.test.js +12 -0
  93. package/src/__tests__/form-section.test.jsx +334 -0
  94. package/src/__tests__/help.test.jsx +184 -0
  95. package/src/__tests__/input.test.jsx +192 -0
  96. package/src/__tests__/langs.test.jsx +457 -0
  97. package/src/__tests__/number-text-field-custom.test.jsx +438 -0
  98. package/src/__tests__/number-text-field.test.jsx +341 -0
  99. package/src/__tests__/radio-with-label.test.jsx +259 -0
  100. package/src/__tests__/settings-panel.test.js +187 -0
  101. package/src/__tests__/settings.test.jsx +515 -0
  102. package/src/__tests__/tabs.test.jsx +193 -0
  103. package/src/__tests__/two-choice.test.js +110 -0
  104. package/src/__tests__/with-stateful-model.test.jsx +145 -0
  105. package/src/alert-dialog.jsx +30 -8
  106. package/src/checkbox.jsx +43 -37
  107. package/src/choice-configuration/__tests__/feedback-menu.test.jsx +163 -0
  108. package/src/choice-configuration/__tests__/index.test.jsx +234 -0
  109. package/src/choice-configuration/feedback-menu.jsx +6 -6
  110. package/src/choice-configuration/index.jsx +208 -199
  111. package/src/feedback-config/__tests__/feedback-config.test.jsx +141 -0
  112. package/src/feedback-config/__tests__/feedback-selector.test.jsx +97 -0
  113. package/src/feedback-config/feedback-selector.jsx +50 -55
  114. package/src/feedback-config/group.jsx +21 -22
  115. package/src/feedback-config/index.jsx +27 -29
  116. package/src/form-section.jsx +26 -18
  117. package/src/help.jsx +20 -28
  118. package/src/input.jsx +1 -1
  119. package/src/inputs.jsx +35 -44
  120. package/src/langs.jsx +41 -46
  121. package/src/layout/__tests__/config.layout.test.jsx +59 -0
  122. package/src/layout/__tests__/layout-content.test.jsx +3 -0
  123. package/src/layout/config-layout.jsx +53 -23
  124. package/src/layout/layout-contents.jsx +38 -40
  125. package/src/layout/settings-box.jsx +16 -19
  126. package/src/mui-box/index.jsx +35 -43
  127. package/src/number-text-field-custom.jsx +117 -65
  128. package/src/number-text-field.jsx +51 -34
  129. package/src/radio-with-label.jsx +26 -10
  130. package/src/settings/display-size.jsx +12 -11
  131. package/src/settings/index.js +2 -1
  132. package/src/settings/panel.jsx +101 -92
  133. package/src/settings/settings-radio-label.jsx +26 -10
  134. package/src/settings/toggle.jsx +37 -18
  135. package/src/tabs/index.jsx +8 -8
  136. package/src/tags-input/__tests__/index.test.jsx +113 -0
  137. package/src/tags-input/index.jsx +35 -38
  138. package/src/two-choice.jsx +15 -19
  139. package/README.md +0 -12
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_TextField","_classnames","_renderUi","_editableHtml","_inputs","_feedbackMenu","_Delete","_SubdirectoryArrowRight","_IconButton","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","EditableHtmlContainer","withStyles","theme","labelContainer","editorHolder","marginTop","spacing","unit","_ref","label","classes","onChange","value","className","imageSupport","disableImageAlignmentButtons","disabled","spellCheck","nonEmpty","toolbarOpts","error","maxImageWidth","maxImageHeight","uploadSoundSupport","_ref$mathMlOptions","mathMlOptions","names","classNames","createElement","InputContainer","markup","editor","languageCharactersProps","language","Feedback","text","width","feedbackContainer","position","arrowIcon","fill","palette","grey","left","top","_ref2","type","correct","defaults","_ref2$mathMlOptions","incorrect","ChoiceConfiguration","_React$Component","_inherits2","_super","_this","_classCallCheck2","_len","args","Array","_key","concat","_assertThisInitialized2","update","_this$props","props","data","_changeFn","event","checked","_this$props2","v","_this$props3","feedback","fb","t","_this$props4","undefined","_createClass2","render","_this$props5","mode","onDelete","defaultFeedback","index","noLabels","useLetterOrdering","allowFeedBack","allowDelete","noCorrectAnswerError","_this$props5$mathMlOp","InputToggle","InputCheckbox","InputRadio","choiceConfiguration","topRow","String","fromCharCode","toUpperCase","toggle","onCheckedChange","middleColumn","input","onLabelChange","errorText","_extends2","onFeedbackValueChange","onFeedbackTypeChange","icon","feedbackIcon","deleteIcon","onClick","React","Component","exports","PropTypes","isRequired","bool","string","oneOf","shape","func","number","add","styles","paddingRight","paddingTop","display","flex","paddingBottom","marginRight","marginLeft","paddingLeft","margin","flexDirection","fontSize","typography","color","main","_default"],"sources":["../../src/choice-configuration/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport TextField from '@material-ui/core/TextField';\nimport classNames from 'classnames';\nimport { InputContainer } from '@pie-lib/render-ui';\nimport EditableHtml from '@pie-lib/editable-html';\nimport { InputCheckbox, InputRadio } from '../inputs';\nimport FeedbackMenu from './feedback-menu';\nimport ActionDelete from '@material-ui/icons/Delete';\nimport ArrowRight from '@material-ui/icons/SubdirectoryArrowRight';\nimport IconButton from '@material-ui/core/IconButton';\n\nconst EditableHtmlContainer = withStyles((theme) => ({\n labelContainer: {},\n editorHolder: {\n marginTop: theme.spacing.unit * 2,\n },\n}))(\n ({\n label,\n classes,\n onChange,\n value,\n className,\n imageSupport,\n disableImageAlignmentButtons,\n disabled,\n spellCheck,\n nonEmpty,\n toolbarOpts,\n error,\n maxImageWidth,\n maxImageHeight,\n uploadSoundSupport,\n mathMlOptions = {},\n }) => {\n const names = classNames(classes.labelContainer, className);\n\n return (\n <InputContainer label={label} className={names}>\n <div className={classes.editorHolder}>\n <EditableHtml\n markup={value || ''}\n disabled={disabled}\n spellCheck={spellCheck}\n nonEmpty={nonEmpty}\n onChange={onChange}\n imageSupport={imageSupport}\n disableImageAlignmentButtons={disableImageAlignmentButtons}\n className={classes.editor}\n toolbarOpts={toolbarOpts}\n error={error}\n maxImageWidth={maxImageWidth}\n maxImageHeight={maxImageHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </div>\n </InputContainer>\n );\n },\n);\n\nconst Feedback = withStyles((theme) => ({\n text: {\n width: '100%',\n },\n feedbackContainer: {\n position: 'relative',\n },\n arrowIcon: {\n fill: theme.palette.grey[400],\n left: -56,\n position: 'absolute',\n top: 20,\n },\n}))(({ value, onChange, type, correct, classes, defaults, toolbarOpts, mathMlOptions = {} }) => {\n if (!type || type === 'none') {\n return null;\n } else if (type === 'default') {\n return (\n <div className={classes.feedbackContainer}>\n <ArrowRight className={classes.arrowIcon} />\n <TextField\n className={classes.text}\n label=\"Feedback Text\"\n value={correct ? defaults.correct : defaults.incorrect}\n />\n </div>\n );\n } else {\n return (\n <div className={classes.feedbackContainer}>\n <ArrowRight className={classes.arrowIcon} />\n <EditableHtmlContainer\n className={classes.text}\n label=\"Feedback Text\"\n value={value}\n onChange={onChange}\n toolbarOpts={toolbarOpts}\n mathMlOptions={mathMlOptions}\n />\n </div>\n );\n }\n});\n\nexport class ChoiceConfiguration extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n noLabels: PropTypes.bool,\n useLetterOrdering: PropTypes.bool,\n className: PropTypes.string,\n error: PropTypes.string,\n mode: PropTypes.oneOf(['checkbox', 'radio']),\n defaultFeedback: PropTypes.object.isRequired,\n disabled: PropTypes.bool,\n nonEmpty: PropTypes.bool,\n data: PropTypes.shape({\n label: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired,\n correct: PropTypes.bool,\n feedback: PropTypes.shape({\n type: PropTypes.string,\n value: PropTypes.string,\n }),\n }),\n onDelete: PropTypes.func,\n onChange: PropTypes.func,\n index: PropTypes.number,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n disableImageAlignmentButtons: PropTypes.bool,\n allowFeedBack: PropTypes.bool,\n allowDelete: PropTypes.bool,\n noCorrectAnswerError: PropTypes.string,\n spellCheck: PropTypes.bool,\n toolbarOpts: PropTypes.object,\n uploadSoundSupport: PropTypes.object,\n };\n\n static defaultProps = {\n index: -1,\n noLabels: false,\n useLetterOrdering: false,\n allowFeedBack: true,\n allowDelete: true,\n };\n\n _changeFn = (key) => (update) => {\n const { data, onChange } = this.props;\n\n if (onChange) {\n onChange({ ...data, [key]: update });\n }\n };\n\n onLabelChange = this._changeFn('label');\n\n onCheckedChange = (event) => {\n const correct = event.target.checked;\n const { data, onChange } = this.props;\n\n if (onChange) {\n onChange({ ...data, correct });\n }\n };\n\n onFeedbackValueChange = (v) => {\n const { data, onChange } = this.props;\n\n if (data.feedback.type !== 'custom') {\n return;\n }\n\n const fb = { ...data.feedback, value: v };\n\n if (onChange) onChange({ ...data, feedback: fb });\n };\n\n onFeedbackTypeChange = (t) => {\n const { data, onChange } = this.props;\n const fb = { ...data.feedback, type: t };\n\n if (fb.type !== 'custom') {\n fb.value = undefined;\n }\n\n if (onChange) onChange({ ...data, feedback: fb });\n };\n\n render() {\n const {\n data,\n classes,\n mode,\n onDelete,\n defaultFeedback,\n index,\n className,\n noLabels,\n useLetterOrdering,\n imageSupport,\n disableImageAlignmentButtons,\n disabled,\n spellCheck,\n nonEmpty,\n allowFeedBack,\n allowDelete,\n toolbarOpts,\n error,\n noCorrectAnswerError,\n uploadSoundSupport,\n mathMlOptions = {},\n } = this.props;\n\n const InputToggle = mode === 'checkbox' ? InputCheckbox : InputRadio;\n const names = classNames(classes.choiceConfiguration, className);\n\n return (\n <div className={names}>\n <div className={classes.topRow}>\n {index > 0 && (\n <span className={classes.index} type=\"title\">\n {useLetterOrdering ? String.fromCharCode(96 + index).toUpperCase() : index}\n </span>\n )}\n\n <InputToggle\n className={classes.toggle}\n onChange={this.onCheckedChange}\n label={!noLabels ? 'Correct' : ''}\n checked={!!data.correct}\n error={noCorrectAnswerError}\n />\n\n <div className={classes.middleColumn}>\n <EditableHtmlContainer\n className={classes.input}\n label={!noLabels ? 'Label' : ''}\n value={data.label}\n onChange={this.onLabelChange}\n imageSupport={imageSupport}\n disableImageAlignmentButtons={disableImageAlignmentButtons}\n disabled={disabled}\n spellCheck={spellCheck}\n nonEmpty={nonEmpty}\n toolbarOpts={toolbarOpts}\n error={error}\n uploadSoundSupport={uploadSoundSupport}\n mathMlOptions={mathMlOptions}\n />\n {error && <div className={classes.errorText}>{error}</div>}\n\n {allowFeedBack && (\n <Feedback\n {...data.feedback}\n correct={data.correct}\n defaults={defaultFeedback}\n onChange={this.onFeedbackValueChange}\n toolbarOpts={toolbarOpts}\n />\n )}\n </div>\n\n {allowFeedBack && (\n <InputContainer className={classes.feedback} label={!noLabels ? 'Feedback' : ''}>\n <FeedbackMenu\n onChange={this.onFeedbackTypeChange}\n value={data.feedback}\n classes={{\n icon: classes.feedbackIcon,\n }}\n />\n </InputContainer>\n )}\n\n {allowDelete && (\n <InputContainer className={classes.delete} label={!noLabels ? 'Delete' : ''}>\n <IconButton aria-label=\"delete\" className={classes.deleteIcon} onClick={onDelete}>\n <ActionDelete />\n </IconButton>\n </InputContainer>\n )}\n </div>\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n index: {\n paddingRight: theme.spacing.unit,\n paddingTop: theme.spacing.unit * 3.5,\n },\n choiceConfiguration: {},\n topRow: {\n display: 'flex',\n },\n value: {\n flex: '0.5',\n paddingRight: theme.spacing.unit,\n },\n editorHolder: {\n marginTop: theme.spacing.unit * 2,\n },\n toggle: {\n flex: '0 1 auto',\n paddingTop: theme.spacing.unit / 2,\n paddingBottom: 0,\n marginRight: 0,\n marginLeft: theme.spacing.unit,\n },\n feedback: {\n flex: '0 1 auto',\n paddingTop: theme.spacing.unit * 2,\n paddingLeft: 0,\n marginLeft: 0,\n marginRight: theme.spacing.unit,\n },\n feedbackIcon: {\n margin: 0,\n width: 'inherit',\n },\n deleteIcon: {\n margin: 0,\n width: 'inherit',\n },\n delete: {\n flex: '0 1 auto',\n paddingTop: theme.spacing.unit * 2,\n paddingLeft: 0,\n marginLeft: 0,\n },\n middleColumn: {\n display: 'flex',\n flex: 1,\n flexDirection: 'column',\n marginRight: theme.spacing.unit,\n },\n input: {\n marginRight: 0,\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n },\n});\n\nexport default withStyles(styles)(ChoiceConfiguration);\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_TextField","_Delete","_SubdirectoryArrowRight","_IconButton","_renderUi","_inputs","_feedbackMenu","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_callSuper","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","Boolean","prototype","valueOf","call","EditableHtml","window","StyledEditorHolder","styled","_ref","theme","marginTop","spacing","EditableHtmlContainer","_ref2","label","onChange","value","className","imageSupport","disableImageAlignmentButtons","disabled","spellCheck","nonEmpty","pluginOpts","toolbarOpts","error","maxImageWidth","maxImageHeight","uploadSoundSupport","_ref2$mathMlOptions","mathMlOptions","createElement","InputContainer","markup","pluginProps","languageCharactersProps","language","StyledFeedbackContainer","position","StyledArrowIcon","ArrowRight","_ref3","fill","palette","grey","left","top","StyledTextField","TextField","_ref4","width","StyledEditableHtmlContainer","_ref5","Feedback","_ref6","type","correct","defaults","_ref6$mathMlOptions","incorrect","variant","StyledIndex","_ref7","paddingRight","paddingTop","StyledTopRow","display","alignItems","StyledToggle","_ref8","flex","paddingBottom","marginRight","marginLeft","StyledFeedback","_ref9","paddingLeft","StyledFeedbackIcon","margin","StyledDeleteIcon","StyledDelete","_ref0","StyledMiddleColumn","_ref1","flexDirection","StyledErrorText","_ref10","fontSize","typography","color","main","ChoiceConfiguration","exports","_React$Component","_this","_classCallCheck2","_len","args","Array","_key","concat","key","update","_this$props","props","data","_changeFn","event","target","checked","_this$props2","v","_this$props3","feedback","fb","_this$props4","undefined","_inherits2","_createClass2","render","_this$props5","mode","onDelete","defaultFeedback","index","noLabels","useLetterOrdering","allowFeedBack","allowDelete","noCorrectAnswerError","_this$props5$mathMlOp","InputToggle","InputCheckbox","InputRadio","String","fromCharCode","toUpperCase","onCheckedChange","onLabelChange","_extends2","onFeedbackValueChange","onFeedbackTypeChange","onClick","size","React","Component","PropTypes","bool","string","oneOf","object","isRequired","shape","func","number","add","_default"],"sources":["../../src/choice-configuration/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport TextField from '@mui/material/TextField';\nimport ActionDelete from '@mui/icons-material/Delete';\nimport ArrowRight from '@mui/icons-material/SubdirectoryArrowRight';\nimport IconButton from '@mui/material/IconButton';\nimport { InputContainer } from '@pie-lib/render-ui';\n// import EditableHtml from '@pie-lib/editable-html-tip-tap';\nimport { InputCheckbox, InputRadio } from '../inputs';\nimport FeedbackMenu from './feedback-menu';\n\n// - mathquill error window not defined\nlet EditableHtml;\nif (typeof window !== 'undefined') {\n EditableHtml = require('@pie-lib/editable-html-tip-tap')['default'];\n}\n\nconst StyledEditorHolder = styled('div')(({ theme }) => ({\n marginTop: theme.spacing(2),\n}));\n\nconst EditableHtmlContainer = ({\n label,\n onChange,\n value,\n className,\n imageSupport,\n disableImageAlignmentButtons,\n disabled,\n spellCheck,\n nonEmpty,\n pluginOpts,\n toolbarOpts,\n error,\n maxImageWidth,\n maxImageHeight,\n uploadSoundSupport,\n mathMlOptions = {},\n}) => {\n return (\n <InputContainer label={label} className={className}>\n <StyledEditorHolder>\n <EditableHtml\n markup={value || ''}\n disabled={disabled}\n spellCheck={spellCheck}\n nonEmpty={nonEmpty}\n onChange={onChange}\n imageSupport={imageSupport}\n disableImageAlignmentButtons={disableImageAlignmentButtons}\n pluginProps={pluginOpts || {}}\n toolbarOpts={toolbarOpts}\n error={error}\n maxImageWidth={maxImageWidth}\n maxImageHeight={maxImageHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </StyledEditorHolder>\n </InputContainer>\n );\n};\n\nconst StyledFeedbackContainer = styled('div')(() => ({\n position: 'relative',\n}));\n\nconst StyledArrowIcon = styled(ArrowRight)(({ theme }) => ({\n fill: theme.palette.grey[400],\n left: -56,\n position: 'absolute',\n top: 40,\n}));\n\nconst StyledTextField = styled(TextField)(({ theme }) => ({\n width: '100%',\n marginTop: theme.spacing(2),\n}));\n\nconst StyledEditableHtmlContainer = styled(EditableHtmlContainer)(({ theme }) => ({\n width: '100%',\n marginTop: theme.spacing(2),\n}));\n\nconst Feedback = ({ value, onChange, type, correct, defaults, toolbarOpts, mathMlOptions = {} }) => {\n if (!type || type === 'none') {\n return null;\n } else if (type === 'default') {\n return (\n <StyledFeedbackContainer>\n <StyledArrowIcon />\n <StyledTextField\n label=\"Feedback Text\"\n value={correct ? defaults.correct : defaults.incorrect}\n variant=\"standard\"\n />\n </StyledFeedbackContainer>\n );\n } else {\n return (\n <StyledFeedbackContainer>\n <StyledArrowIcon />\n <StyledEditableHtmlContainer\n label=\"Feedback Text\"\n value={value}\n onChange={onChange}\n toolbarOpts={toolbarOpts}\n mathMlOptions={mathMlOptions}\n />\n </StyledFeedbackContainer>\n );\n }\n};\n\nconst StyledIndex = styled('span')(({ theme }) => ({\n paddingRight: theme.spacing(1),\n paddingTop: theme.spacing(3),\n}));\n\nconst StyledTopRow = styled('div')(() => ({\n display: 'flex',\n alignItems: 'center',\n}));\n\nconst StyledToggle = styled('div')(({ theme }) => ({\n flex: '0 1 auto',\n paddingTop: theme.spacing(0.5),\n paddingBottom: 0,\n marginRight: 0,\n marginLeft: theme.spacing(1),\n}));\n\nconst StyledFeedback = styled('div')(({ theme }) => ({\n flex: '0 1 auto',\n paddingTop: theme.spacing(2),\n paddingLeft: 0,\n marginLeft: 0,\n marginRight: theme.spacing(1),\n}));\n\nconst StyledFeedbackIcon = styled('div')(() => ({\n margin: 0,\n width: 'inherit',\n}));\n\nconst StyledDeleteIcon = styled('div')(() => ({\n margin: 0,\n width: 'inherit',\n}));\n\nconst StyledDelete = styled('div')(({ theme }) => ({\n flex: '0 1 auto',\n paddingTop: theme.spacing(2),\n paddingLeft: 0,\n marginLeft: 0,\n}));\n\nconst StyledMiddleColumn = styled('div')(({ theme }) => ({\n display: 'flex',\n flex: 1,\n flexDirection: 'column',\n marginRight: theme.spacing(1),\n}));\n\nconst StyledErrorText = styled('div')(({ theme }) => ({\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n}));\n\nexport class ChoiceConfiguration extends React.Component {\n static propTypes = {\n noLabels: PropTypes.bool,\n useLetterOrdering: PropTypes.bool,\n className: PropTypes.string,\n error: PropTypes.string,\n mode: PropTypes.oneOf(['checkbox', 'radio']),\n defaultFeedback: PropTypes.object.isRequired,\n disabled: PropTypes.bool,\n nonEmpty: PropTypes.bool,\n data: PropTypes.shape({\n label: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired,\n correct: PropTypes.bool,\n feedback: PropTypes.shape({\n type: PropTypes.string,\n value: PropTypes.string,\n }),\n }),\n onDelete: PropTypes.func,\n onChange: PropTypes.func,\n index: PropTypes.number,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n disableImageAlignmentButtons: PropTypes.bool,\n allowFeedBack: PropTypes.bool,\n allowDelete: PropTypes.bool,\n noCorrectAnswerError: PropTypes.string,\n spellCheck: PropTypes.bool,\n pluginOpts: PropTypes.object,\n toolbarOpts: PropTypes.object,\n uploadSoundSupport: PropTypes.object,\n maxImageWidth: PropTypes.number,\n maxImageHeight: PropTypes.number,\n };\n\n static defaultProps = {\n index: -1,\n noLabels: false,\n useLetterOrdering: false,\n allowFeedBack: true,\n allowDelete: true,\n };\n\n _changeFn = (key) => (update) => {\n const { data, onChange } = this.props;\n\n if (onChange) {\n onChange({ ...data, [key]: update });\n }\n };\n\n onLabelChange = this._changeFn('label');\n\n onCheckedChange = (event) => {\n const correct = event.target.checked;\n const { data, onChange } = this.props;\n\n if (onChange) {\n onChange({ ...data, correct });\n }\n };\n\n onFeedbackValueChange = (v) => {\n const { data, onChange } = this.props;\n\n if (data.feedback.type !== 'custom') {\n return;\n }\n\n const fb = { ...data.feedback, value: v };\n\n if (onChange) onChange({ ...data, feedback: fb });\n };\n\n onFeedbackTypeChange = (t) => {\n const { data, onChange } = this.props;\n const fb = { ...data.feedback, type: t };\n\n if (fb.type !== 'custom') {\n fb.value = undefined;\n }\n\n if (onChange) onChange({ ...data, feedback: fb });\n };\n\n render() {\n const {\n data,\n mode,\n onDelete,\n defaultFeedback,\n index,\n className,\n noLabels,\n useLetterOrdering,\n imageSupport,\n disableImageAlignmentButtons,\n disabled,\n spellCheck,\n nonEmpty,\n allowFeedBack,\n allowDelete,\n pluginOpts,\n toolbarOpts,\n error,\n noCorrectAnswerError,\n uploadSoundSupport,\n maxImageWidth,\n maxImageHeight,\n mathMlOptions = {},\n } = this.props;\n\n const InputToggle = mode === 'checkbox' ? InputCheckbox : InputRadio;\n\n return (\n <StyledTopRow>\n {index > 0 && (\n <StyledIndex type=\"title\">\n {useLetterOrdering ? String.fromCharCode(96 + index).toUpperCase() : index}\n </StyledIndex>\n )}\n\n <StyledToggle>\n <InputToggle\n onChange={this.onCheckedChange}\n label={!noLabels ? 'Correct' : ''}\n checked={!!data.correct}\n error={noCorrectAnswerError}\n />\n </StyledToggle>\n\n <StyledMiddleColumn>\n <EditableHtmlContainer\n label={!noLabels ? 'Label' : ''}\n value={data.label}\n onChange={this.onLabelChange}\n imageSupport={imageSupport}\n disableImageAlignmentButtons={disableImageAlignmentButtons}\n disabled={disabled}\n spellCheck={spellCheck}\n nonEmpty={nonEmpty}\n pluginOpts={pluginOpts}\n toolbarOpts={toolbarOpts}\n error={error}\n uploadSoundSupport={uploadSoundSupport}\n mathMlOptions={mathMlOptions}\n maxImageWidth={maxImageWidth}\n maxImageHeight={maxImageHeight}\n />\n {error && <StyledErrorText>{error}</StyledErrorText>}\n\n {allowFeedBack && (\n <Feedback\n {...data.feedback}\n correct={data.correct}\n defaults={defaultFeedback}\n onChange={this.onFeedbackValueChange}\n toolbarOpts={toolbarOpts}\n />\n )}\n </StyledMiddleColumn>\n\n {allowFeedBack && (\n <StyledFeedback>\n <InputContainer label={!noLabels ? 'Feedback' : ''}>\n <StyledFeedbackIcon>\n <FeedbackMenu onChange={this.onFeedbackTypeChange} value={data.feedback} />\n </StyledFeedbackIcon>\n </InputContainer>\n </StyledFeedback>\n )}\n\n {allowDelete && (\n <StyledDelete>\n <InputContainer label={!noLabels ? 'Delete' : ''}>\n <StyledDeleteIcon>\n <IconButton aria-label=\"delete\" onClick={onDelete} size=\"large\">\n <ActionDelete />\n </IconButton>\n </StyledDeleteIcon>\n </InputContainer>\n </StyledDelete>\n )}\n </StyledTopRow>\n );\n }\n}\n\nexport default ChoiceConfiguration;\n"],"mappings":"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","ignoreList":[]}
@@ -7,14 +7,14 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.normalizeChoices = exports.firstAvailableIndex = void 0;
8
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
9
  var _includes = _interopRequireDefault(require("lodash/includes"));
10
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
11
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
10
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
11
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
12
12
  /**
13
13
  * Add value to every model.choices.
14
14
  * @param {Object} model the model to normalize
15
15
  * @return {Object} the updated model
16
16
  */
17
- var normalizeChoices = function normalizeChoices(model) {
17
+ var normalizeChoices = exports.normalizeChoices = function normalizeChoices(model) {
18
18
  var choices = model.choices.map(function (c, index) {
19
19
  if (!c.value) {
20
20
  c.value = "".concat(index);
@@ -32,13 +32,11 @@ var normalizeChoices = function normalizeChoices(model) {
32
32
  * @param {number} index
33
33
  * @return {string}
34
34
  */
35
- exports.normalizeChoices = normalizeChoices;
36
- var firstAvailableIndex = function firstAvailableIndex(values, index) {
35
+ var _firstAvailableIndex = exports.firstAvailableIndex = function firstAvailableIndex(values, index) {
37
36
  if ((0, _includes["default"])(values, "".concat(index))) {
38
- return firstAvailableIndex(values, index + 1);
37
+ return _firstAvailableIndex(values, index + 1);
39
38
  } else {
40
39
  return "".concat(index);
41
40
  }
42
41
  };
43
- exports.firstAvailableIndex = firstAvailableIndex;
44
- //# sourceMappingURL=choice-utils.js.map
42
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaW5jbHVkZXMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIm93bktleXMiLCJlIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5Iiwibm9ybWFsaXplQ2hvaWNlcyIsImV4cG9ydHMiLCJtb2RlbCIsImNob2ljZXMiLCJtYXAiLCJjIiwiaW5kZXgiLCJ2YWx1ZSIsImNvbmNhdCIsImZpcnN0QXZhaWxhYmxlSW5kZXgiLCJ2YWx1ZXMiLCJpbmNsdWRlcyJdLCJzb3VyY2VzIjpbIi4uL3NyYy9jaG9pY2UtdXRpbHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGluY2x1ZGVzIGZyb20gJ2xvZGFzaC9pbmNsdWRlcyc7XG5cbi8qKlxuICogQWRkIHZhbHVlIHRvIGV2ZXJ5IG1vZGVsLmNob2ljZXMuXG4gKiBAcGFyYW0ge09iamVjdH0gbW9kZWwgdGhlIG1vZGVsIHRvIG5vcm1hbGl6ZVxuICogQHJldHVybiB7T2JqZWN0fSB0aGUgdXBkYXRlZCBtb2RlbFxuICovXG5leHBvcnQgY29uc3Qgbm9ybWFsaXplQ2hvaWNlcyA9IChtb2RlbCkgPT4ge1xuICBjb25zdCBjaG9pY2VzID0gbW9kZWwuY2hvaWNlcy5tYXAoKGMsIGluZGV4KSA9PiB7XG4gICAgaWYgKCFjLnZhbHVlKSB7XG4gICAgICBjLnZhbHVlID0gYCR7aW5kZXh9YDtcbiAgICB9XG4gICAgcmV0dXJuIGM7XG4gIH0pO1xuICByZXR1cm4geyAuLi5tb2RlbCwgY2hvaWNlcyB9O1xufTtcblxuLyoqXG4gKiBGaW5kIHRoZSBmaXJzdCBhdmFpbGFibGUgaW5kZXguXG4gKiBAcGFyYW0ge3N0cmluZ1tdfSB2YWx1ZXNcbiAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFxuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5leHBvcnQgY29uc3QgZmlyc3RBdmFpbGFibGVJbmRleCA9ICh2YWx1ZXMsIGluZGV4KSA9PiB7XG4gIGlmIChpbmNsdWRlcyh2YWx1ZXMsIGAke2luZGV4fWApKSB7XG4gICAgcmV0dXJuIGZpcnN0QXZhaWxhYmxlSW5kZXgodmFsdWVzLCBpbmRleCArIDEpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBgJHtpbmRleH1gO1xuICB9XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLFNBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUF1QyxTQUFBQyxRQUFBQyxDQUFBLEVBQUFDLENBQUEsUUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQUosQ0FBQSxPQUFBRyxNQUFBLENBQUFFLHFCQUFBLFFBQUFDLENBQUEsR0FBQUgsTUFBQSxDQUFBRSxxQkFBQSxDQUFBTCxDQUFBLEdBQUFDLENBQUEsS0FBQUssQ0FBQSxHQUFBQSxDQUFBLENBQUFDLE1BQUEsV0FBQU4sQ0FBQSxXQUFBRSxNQUFBLENBQUFLLHdCQUFBLENBQUFSLENBQUEsRUFBQUMsQ0FBQSxFQUFBUSxVQUFBLE9BQUFQLENBQUEsQ0FBQVEsSUFBQSxDQUFBQyxLQUFBLENBQUFULENBQUEsRUFBQUksQ0FBQSxZQUFBSixDQUFBO0FBQUEsU0FBQVUsY0FBQVosQ0FBQSxhQUFBQyxDQUFBLE1BQUFBLENBQUEsR0FBQVksU0FBQSxDQUFBQyxNQUFBLEVBQUFiLENBQUEsVUFBQUMsQ0FBQSxXQUFBVyxTQUFBLENBQUFaLENBQUEsSUFBQVksU0FBQSxDQUFBWixDQUFBLFFBQUFBLENBQUEsT0FBQUYsT0FBQSxDQUFBSSxNQUFBLENBQUFELENBQUEsT0FBQWEsT0FBQSxXQUFBZCxDQUFBLFFBQUFlLGdCQUFBLGFBQUFoQixDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxDQUFBRCxDQUFBLFNBQUFFLE1BQUEsQ0FBQWMseUJBQUEsR0FBQWQsTUFBQSxDQUFBZSxnQkFBQSxDQUFBbEIsQ0FBQSxFQUFBRyxNQUFBLENBQUFjLHlCQUFBLENBQUFmLENBQUEsS0FBQUgsT0FBQSxDQUFBSSxNQUFBLENBQUFELENBQUEsR0FBQWEsT0FBQSxXQUFBZCxDQUFBLElBQUFFLE1BQUEsQ0FBQWdCLGNBQUEsQ0FBQW5CLENBQUEsRUFBQUMsQ0FBQSxFQUFBRSxNQUFBLENBQUFLLHdCQUFBLENBQUFOLENBQUEsRUFBQUQsQ0FBQSxpQkFBQUQsQ0FBQTtBQUV2QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sSUFBTW9CLGdCQUFnQixHQUFBQyxPQUFBLENBQUFELGdCQUFBLEdBQUcsU0FBbkJBLGdCQUFnQkEsQ0FBSUUsS0FBSyxFQUFLO0VBQ3pDLElBQU1DLE9BQU8sR0FBR0QsS0FBSyxDQUFDQyxPQUFPLENBQUNDLEdBQUcsQ0FBQyxVQUFDQyxDQUFDLEVBQUVDLEtBQUssRUFBSztJQUM5QyxJQUFJLENBQUNELENBQUMsQ0FBQ0UsS0FBSyxFQUFFO01BQ1pGLENBQUMsQ0FBQ0UsS0FBSyxNQUFBQyxNQUFBLENBQU1GLEtBQUssQ0FBRTtJQUN0QjtJQUNBLE9BQU9ELENBQUM7RUFDVixDQUFDLENBQUM7RUFDRixPQUFBYixhQUFBLENBQUFBLGFBQUEsS0FBWVUsS0FBSztJQUFFQyxPQUFPLEVBQVBBO0VBQU87QUFDNUIsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyxJQUFNTSxvQkFBbUIsR0FBQVIsT0FBQSxDQUFBUSxtQkFBQSxHQUFHLFNBQXRCQSxtQkFBbUJBLENBQUlDLE1BQU0sRUFBRUosS0FBSyxFQUFLO0VBQ3BELElBQUksSUFBQUssb0JBQVEsRUFBQ0QsTUFBTSxLQUFBRixNQUFBLENBQUtGLEtBQUssQ0FBRSxDQUFDLEVBQUU7SUFDaEMsT0FBT0csb0JBQW1CLENBQUNDLE1BQU0sRUFBRUosS0FBSyxHQUFHLENBQUMsQ0FBQztFQUMvQyxDQUFDLE1BQU07SUFDTCxVQUFBRSxNQUFBLENBQVVGLEtBQUs7RUFDakI7QUFDRixDQUFDIiwiaWdub3JlTGlzdCI6W119
@@ -1 +1 @@
1
- {"version":3,"file":"choice-utils.js","names":["_includes","_interopRequireDefault","require","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","normalizeChoices","model","choices","map","c","index","value","concat","exports","firstAvailableIndex","values","includes"],"sources":["../src/choice-utils.js"],"sourcesContent":["import includes from 'lodash/includes';\n\n/**\n * Add value to every model.choices.\n * @param {Object} model the model to normalize\n * @return {Object} the updated model\n */\nexport const normalizeChoices = (model) => {\n const choices = model.choices.map((c, index) => {\n if (!c.value) {\n c.value = `${index}`;\n }\n return c;\n });\n return { ...model, choices };\n};\n\n/**\n * Find the first available index.\n * @param {string[]} values\n * @param {number} index\n * @return {string}\n */\nexport const firstAvailableIndex = (values, index) => {\n if (includes(values, `${index}`)) {\n return firstAvailableIndex(values, index + 1);\n } else {\n return `${index}`;\n }\n};\n"],"mappings":";;;;;;;;AAAA,IAAAA,SAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAuC,SAAAC,QAAAC,MAAA,EAAAC,cAAA,QAAAC,IAAA,GAAAC,MAAA,CAAAD,IAAA,CAAAF,MAAA,OAAAG,MAAA,CAAAC,qBAAA,QAAAC,OAAA,GAAAF,MAAA,CAAAC,qBAAA,CAAAJ,MAAA,GAAAC,cAAA,KAAAI,OAAA,GAAAA,OAAA,CAAAC,MAAA,WAAAC,GAAA,WAAAJ,MAAA,CAAAK,wBAAA,CAAAR,MAAA,EAAAO,GAAA,EAAAE,UAAA,OAAAP,IAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,IAAA,EAAAG,OAAA,YAAAH,IAAA;AAAA,SAAAU,cAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,WAAAF,SAAA,CAAAD,CAAA,IAAAC,SAAA,CAAAD,CAAA,QAAAA,CAAA,OAAAf,OAAA,CAAAI,MAAA,CAAAc,MAAA,OAAAC,OAAA,WAAAC,GAAA,QAAAC,gBAAA,aAAAP,MAAA,EAAAM,GAAA,EAAAF,MAAA,CAAAE,GAAA,SAAAhB,MAAA,CAAAkB,yBAAA,GAAAlB,MAAA,CAAAmB,gBAAA,CAAAT,MAAA,EAAAV,MAAA,CAAAkB,yBAAA,CAAAJ,MAAA,KAAAlB,OAAA,CAAAI,MAAA,CAAAc,MAAA,GAAAC,OAAA,WAAAC,GAAA,IAAAhB,MAAA,CAAAoB,cAAA,CAAAV,MAAA,EAAAM,GAAA,EAAAhB,MAAA,CAAAK,wBAAA,CAAAS,MAAA,EAAAE,GAAA,iBAAAN,MAAA;AAEvC;AACA;AACA;AACA;AACA;AACO,IAAMW,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIC,KAAK,EAAK;EACzC,IAAMC,OAAO,GAAGD,KAAK,CAACC,OAAO,CAACC,GAAG,CAAC,UAACC,CAAC,EAAEC,KAAK,EAAK;IAC9C,IAAI,CAACD,CAAC,CAACE,KAAK,EAAE;MACZF,CAAC,CAACE,KAAK,MAAAC,MAAA,CAAMF,KAAK,CAAE;IACtB;IACA,OAAOD,CAAC;EACV,CAAC,CAAC;EACF,OAAAhB,aAAA,CAAAA,aAAA,KAAYa,KAAK;IAAEC,OAAO,EAAPA;EAAO;AAC5B,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AALAM,OAAA,CAAAR,gBAAA,GAAAA,gBAAA;AAMO,IAAMS,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAIC,MAAM,EAAEL,KAAK,EAAK;EACpD,IAAI,IAAAM,oBAAQ,EAACD,MAAM,KAAAH,MAAA,CAAKF,KAAK,CAAE,CAAC,EAAE;IAChC,OAAOI,mBAAmB,CAACC,MAAM,EAAEL,KAAK,GAAG,CAAC,CAAC;EAC/C,CAAC,MAAM;IACL,UAAAE,MAAA,CAAUF,KAAK;EACjB;AACF,CAAC;AAACG,OAAA,CAAAC,mBAAA,GAAAA,mBAAA"}
1
+ {"version":3,"file":"choice-utils.js","names":["_includes","_interopRequireDefault","require","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","normalizeChoices","exports","model","choices","map","c","index","value","concat","firstAvailableIndex","values","includes"],"sources":["../src/choice-utils.js"],"sourcesContent":["import includes from 'lodash/includes';\n\n/**\n * Add value to every model.choices.\n * @param {Object} model the model to normalize\n * @return {Object} the updated model\n */\nexport const normalizeChoices = (model) => {\n const choices = model.choices.map((c, index) => {\n if (!c.value) {\n c.value = `${index}`;\n }\n return c;\n });\n return { ...model, choices };\n};\n\n/**\n * Find the first available index.\n * @param {string[]} values\n * @param {number} index\n * @return {string}\n */\nexport const firstAvailableIndex = (values, index) => {\n if (includes(values, `${index}`)) {\n return firstAvailableIndex(values, index + 1);\n } else {\n return `${index}`;\n }\n};\n"],"mappings":";;;;;;;;AAAA,IAAAA,SAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAuC,SAAAC,QAAAC,CAAA,EAAAC,CAAA,QAAAC,CAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAJ,CAAA,OAAAG,MAAA,CAAAE,qBAAA,QAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAL,CAAA,GAAAC,CAAA,KAAAK,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAN,CAAA,WAAAE,MAAA,CAAAK,wBAAA,CAAAR,CAAA,EAAAC,CAAA,EAAAQ,UAAA,OAAAP,CAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAU,cAAAZ,CAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAY,SAAA,CAAAC,MAAA,EAAAb,CAAA,UAAAC,CAAA,WAAAW,SAAA,CAAAZ,CAAA,IAAAY,SAAA,CAAAZ,CAAA,QAAAA,CAAA,OAAAF,OAAA,CAAAI,MAAA,CAAAD,CAAA,OAAAa,OAAA,WAAAd,CAAA,QAAAe,gBAAA,aAAAhB,CAAA,EAAAC,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAE,MAAA,CAAAc,yBAAA,GAAAd,MAAA,CAAAe,gBAAA,CAAAlB,CAAA,EAAAG,MAAA,CAAAc,yBAAA,CAAAf,CAAA,KAAAH,OAAA,CAAAI,MAAA,CAAAD,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAE,MAAA,CAAAgB,cAAA,CAAAnB,CAAA,EAAAC,CAAA,EAAAE,MAAA,CAAAK,wBAAA,CAAAN,CAAA,EAAAD,CAAA,iBAAAD,CAAA;AAEvC;AACA;AACA;AACA;AACA;AACO,IAAMoB,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAG,SAAnBA,gBAAgBA,CAAIE,KAAK,EAAK;EACzC,IAAMC,OAAO,GAAGD,KAAK,CAACC,OAAO,CAACC,GAAG,CAAC,UAACC,CAAC,EAAEC,KAAK,EAAK;IAC9C,IAAI,CAACD,CAAC,CAACE,KAAK,EAAE;MACZF,CAAC,CAACE,KAAK,MAAAC,MAAA,CAAMF,KAAK,CAAE;IACtB;IACA,OAAOD,CAAC;EACV,CAAC,CAAC;EACF,OAAAb,aAAA,CAAAA,aAAA,KAAYU,KAAK;IAAEC,OAAO,EAAPA;EAAO;AAC5B,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACO,IAAMM,oBAAmB,GAAAR,OAAA,CAAAQ,mBAAA,GAAG,SAAtBA,mBAAmBA,CAAIC,MAAM,EAAEJ,KAAK,EAAK;EACpD,IAAI,IAAAK,oBAAQ,EAACD,MAAM,KAAAF,MAAA,CAAKF,KAAK,CAAE,CAAC,EAAE;IAChC,OAAOG,oBAAmB,CAACC,MAAM,EAAEJ,KAAK,GAAG,CAAC,CAAC;EAC/C,CAAC,MAAM;IACL,UAAAE,MAAA,CAAUF,KAAK;EACjB;AACF,CAAC","ignoreList":[]}
@@ -0,0 +1,201 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
5
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
6
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _react2 = require("@testing-library/react");
9
+ var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
10
+ var _index = require("../index");
11
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
12
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
13
+ // Mock FeedbackSelector to simplify testing
14
+ jest.mock('../feedback-selector', function () {
15
+ return function FeedbackSelector(_ref) {
16
+ var label = _ref.label,
17
+ feedback = _ref.feedback,
18
+ _onChange = _ref.onChange;
19
+ return /*#__PURE__*/_react["default"].createElement("div", {
20
+ "data-testid": "feedback-selector"
21
+ }, /*#__PURE__*/_react["default"].createElement("label", null, label), /*#__PURE__*/_react["default"].createElement("select", {
22
+ "aria-label": label,
23
+ value: feedback.type,
24
+ onChange: function onChange(e) {
25
+ return _onChange(_objectSpread(_objectSpread({}, feedback), {}, {
26
+ type: e.target.value
27
+ }));
28
+ }
29
+ }, /*#__PURE__*/_react["default"].createElement("option", {
30
+ value: "default"
31
+ }, "Default"), /*#__PURE__*/_react["default"].createElement("option", {
32
+ value: "custom"
33
+ }, "Custom"), /*#__PURE__*/_react["default"].createElement("option", {
34
+ value: "none"
35
+ }, "None")));
36
+ };
37
+ });
38
+ describe('FeedbackConfig', function () {
39
+ var onChange = jest.fn();
40
+ beforeEach(function () {
41
+ onChange.mockClear();
42
+ });
43
+ describe('rendering', function () {
44
+ it('renders with default feedback types', function () {
45
+ var feedback = (0, _index.buildDefaults)();
46
+ (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.FeedbackConfig, {
47
+ feedback: feedback,
48
+ onChange: onChange
49
+ }));
50
+ expect(_react2.screen.getByText('Feedback')).toBeInTheDocument();
51
+ expect(_react2.screen.getByText('If correct, show')).toBeInTheDocument();
52
+ expect(_react2.screen.getByText('If partially correct, show')).toBeInTheDocument();
53
+ expect(_react2.screen.getByText('If incorrect, show')).toBeInTheDocument();
54
+ });
55
+ it('renders all three feedback selectors by default', function () {
56
+ var feedback = (0, _index.buildDefaults)();
57
+ (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.FeedbackConfig, {
58
+ feedback: feedback,
59
+ onChange: onChange
60
+ }));
61
+ var selectors = _react2.screen.getAllByTestId('feedback-selector');
62
+ expect(selectors).toHaveLength(3);
63
+ });
64
+ it('does not render partial feedback selector when allowPartial is false', function () {
65
+ var feedback = (0, _index.buildDefaults)();
66
+ (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.FeedbackConfig, {
67
+ allowPartial: false,
68
+ feedback: feedback,
69
+ onChange: onChange
70
+ }));
71
+ expect(_react2.screen.getByText('If correct, show')).toBeInTheDocument();
72
+ expect(_react2.screen.queryByText('If partially correct, show')).not.toBeInTheDocument();
73
+ expect(_react2.screen.getByText('If incorrect, show')).toBeInTheDocument();
74
+ var selectors = _react2.screen.getAllByTestId('feedback-selector');
75
+ expect(selectors).toHaveLength(2);
76
+ });
77
+ });
78
+ describe('user interactions', function () {
79
+ it('calls onChange when correct feedback type changes', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
80
+ var user, feedback, correctSelect;
81
+ return _regenerator["default"].wrap(function (_context) {
82
+ while (1) switch (_context.prev = _context.next) {
83
+ case 0:
84
+ user = _userEvent["default"].setup();
85
+ feedback = (0, _index.buildDefaults)();
86
+ (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.FeedbackConfig, {
87
+ feedback: feedback,
88
+ onChange: onChange
89
+ }));
90
+ correctSelect = _react2.screen.getByLabelText('If correct, show');
91
+ _context.next = 1;
92
+ return user.selectOptions(correctSelect, 'custom');
93
+ case 1:
94
+ expect(onChange).toHaveBeenCalledWith(expect.objectContaining({
95
+ correct: expect.objectContaining({
96
+ type: 'custom'
97
+ })
98
+ }));
99
+ case 2:
100
+ case "end":
101
+ return _context.stop();
102
+ }
103
+ }, _callee);
104
+ })));
105
+ it('calls onChange when incorrect feedback type changes', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2() {
106
+ var user, feedback, incorrectSelect;
107
+ return _regenerator["default"].wrap(function (_context2) {
108
+ while (1) switch (_context2.prev = _context2.next) {
109
+ case 0:
110
+ user = _userEvent["default"].setup();
111
+ feedback = (0, _index.buildDefaults)();
112
+ (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.FeedbackConfig, {
113
+ feedback: feedback,
114
+ onChange: onChange
115
+ }));
116
+ incorrectSelect = _react2.screen.getByLabelText('If incorrect, show');
117
+ _context2.next = 1;
118
+ return user.selectOptions(incorrectSelect, 'none');
119
+ case 1:
120
+ expect(onChange).toHaveBeenCalledWith(expect.objectContaining({
121
+ incorrect: expect.objectContaining({
122
+ type: 'none'
123
+ })
124
+ }));
125
+ case 2:
126
+ case "end":
127
+ return _context2.stop();
128
+ }
129
+ }, _callee2);
130
+ })));
131
+ it('calls onChange when partial feedback type changes', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3() {
132
+ var user, feedback, partialSelect;
133
+ return _regenerator["default"].wrap(function (_context3) {
134
+ while (1) switch (_context3.prev = _context3.next) {
135
+ case 0:
136
+ user = _userEvent["default"].setup();
137
+ feedback = (0, _index.buildDefaults)();
138
+ (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.FeedbackConfig, {
139
+ feedback: feedback,
140
+ onChange: onChange
141
+ }));
142
+ partialSelect = _react2.screen.getByLabelText('If partially correct, show');
143
+ _context3.next = 1;
144
+ return user.selectOptions(partialSelect, 'custom');
145
+ case 1:
146
+ expect(onChange).toHaveBeenCalledWith(expect.objectContaining({
147
+ partial: expect.objectContaining({
148
+ type: 'custom'
149
+ })
150
+ }));
151
+ case 2:
152
+ case "end":
153
+ return _context3.stop();
154
+ }
155
+ }, _callee3);
156
+ })));
157
+ });
158
+ describe('buildDefaults helper', function () {
159
+ it('returns default feedback configuration', function () {
160
+ var defaults = (0, _index.buildDefaults)();
161
+ expect(defaults).toEqual({
162
+ correct: {
163
+ type: 'default',
164
+ "default": 'Correct'
165
+ },
166
+ incorrect: {
167
+ type: 'default',
168
+ "default": 'Incorrect'
169
+ },
170
+ partial: {
171
+ type: 'default',
172
+ "default": 'Nearly'
173
+ }
174
+ });
175
+ });
176
+ it('merges custom values with defaults', function () {
177
+ var defaults = (0, _index.buildDefaults)({
178
+ correct: {
179
+ type: 'custom',
180
+ custom: 'Great job!'
181
+ }
182
+ });
183
+ expect(defaults).toEqual({
184
+ correct: {
185
+ type: 'custom',
186
+ "default": 'Correct',
187
+ custom: 'Great job!'
188
+ },
189
+ incorrect: {
190
+ type: 'default',
191
+ "default": 'Incorrect'
192
+ },
193
+ partial: {
194
+ type: 'default',
195
+ "default": 'Nearly'
196
+ }
197
+ });
198
+ });
199
+ });
200
+ });
201
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfdXNlckV2ZW50IiwiX2luZGV4Iiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJqZXN0IiwibW9jayIsIkZlZWRiYWNrU2VsZWN0b3IiLCJfcmVmIiwibGFiZWwiLCJmZWVkYmFjayIsIm9uQ2hhbmdlIiwiY3JlYXRlRWxlbWVudCIsInZhbHVlIiwidHlwZSIsInRhcmdldCIsImRlc2NyaWJlIiwiZm4iLCJiZWZvcmVFYWNoIiwibW9ja0NsZWFyIiwiaXQiLCJidWlsZERlZmF1bHRzIiwicmVuZGVyIiwiRmVlZGJhY2tDb25maWciLCJleHBlY3QiLCJzY3JlZW4iLCJnZXRCeVRleHQiLCJ0b0JlSW5UaGVEb2N1bWVudCIsInNlbGVjdG9ycyIsImdldEFsbEJ5VGVzdElkIiwidG9IYXZlTGVuZ3RoIiwiYWxsb3dQYXJ0aWFsIiwicXVlcnlCeVRleHQiLCJub3QiLCJfYXN5bmNUb0dlbmVyYXRvcjIiLCJfcmVnZW5lcmF0b3IiLCJtYXJrIiwiX2NhbGxlZSIsInVzZXIiLCJjb3JyZWN0U2VsZWN0Iiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJ1c2VyRXZlbnQiLCJzZXR1cCIsImdldEJ5TGFiZWxUZXh0Iiwic2VsZWN0T3B0aW9ucyIsInRvSGF2ZUJlZW5DYWxsZWRXaXRoIiwib2JqZWN0Q29udGFpbmluZyIsImNvcnJlY3QiLCJzdG9wIiwiX2NhbGxlZTIiLCJpbmNvcnJlY3RTZWxlY3QiLCJfY29udGV4dDIiLCJpbmNvcnJlY3QiLCJfY2FsbGVlMyIsInBhcnRpYWxTZWxlY3QiLCJfY29udGV4dDMiLCJwYXJ0aWFsIiwiZGVmYXVsdHMiLCJ0b0VxdWFsIiwiY3VzdG9tIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ZlZWRiYWNrLWNvbmZpZy9fX3Rlc3RzX18vZmVlZGJhY2stY29uZmlnLnRlc3QuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyByZW5kZXIsIHNjcmVlbiwgd2l0aGluIH0gZnJvbSAnQHRlc3RpbmctbGlicmFyeS9yZWFjdCc7XG5pbXBvcnQgdXNlckV2ZW50IGZyb20gJ0B0ZXN0aW5nLWxpYnJhcnkvdXNlci1ldmVudCc7XG5pbXBvcnQgeyBGZWVkYmFja0NvbmZpZywgYnVpbGREZWZhdWx0cyB9IGZyb20gJy4uL2luZGV4JztcblxuLy8gTW9jayBGZWVkYmFja1NlbGVjdG9yIHRvIHNpbXBsaWZ5IHRlc3Rpbmdcbmplc3QubW9jaygnLi4vZmVlZGJhY2stc2VsZWN0b3InLCAoKSA9PiB7XG4gIHJldHVybiBmdW5jdGlvbiBGZWVkYmFja1NlbGVjdG9yKHsgbGFiZWwsIGZlZWRiYWNrLCBvbkNoYW5nZSB9KSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgZGF0YS10ZXN0aWQ9XCJmZWVkYmFjay1zZWxlY3RvclwiPlxuICAgICAgICA8bGFiZWw+e2xhYmVsfTwvbGFiZWw+XG4gICAgICAgIDxzZWxlY3RcbiAgICAgICAgICBhcmlhLWxhYmVsPXtsYWJlbH1cbiAgICAgICAgICB2YWx1ZT17ZmVlZGJhY2sudHlwZX1cbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IG9uQ2hhbmdlKHsgLi4uZmVlZGJhY2ssIHR5cGU6IGUudGFyZ2V0LnZhbHVlIH0pfVxuICAgICAgICA+XG4gICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImRlZmF1bHRcIj5EZWZhdWx0PC9vcHRpb24+XG4gICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImN1c3RvbVwiPkN1c3RvbTwvb3B0aW9uPlxuICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJub25lXCI+Tm9uZTwvb3B0aW9uPlxuICAgICAgICA8L3NlbGVjdD5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH07XG59KTtcblxuZGVzY3JpYmUoJ0ZlZWRiYWNrQ29uZmlnJywgKCkgPT4ge1xuICBjb25zdCBvbkNoYW5nZSA9IGplc3QuZm4oKTtcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBvbkNoYW5nZS5tb2NrQ2xlYXIoKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3JlbmRlcmluZycsICgpID0+IHtcbiAgICBpdCgncmVuZGVycyB3aXRoIGRlZmF1bHQgZmVlZGJhY2sgdHlwZXMnLCAoKSA9PiB7XG4gICAgICBjb25zdCBmZWVkYmFjayA9IGJ1aWxkRGVmYXVsdHMoKTtcblxuICAgICAgcmVuZGVyKDxGZWVkYmFja0NvbmZpZyBmZWVkYmFjaz17ZmVlZGJhY2t9IG9uQ2hhbmdlPXtvbkNoYW5nZX0gLz4pO1xuXG4gICAgICBleHBlY3Qoc2NyZWVuLmdldEJ5VGV4dCgnRmVlZGJhY2snKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICAgIGV4cGVjdChzY3JlZW4uZ2V0QnlUZXh0KCdJZiBjb3JyZWN0LCBzaG93JykpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgICBleHBlY3Qoc2NyZWVuLmdldEJ5VGV4dCgnSWYgcGFydGlhbGx5IGNvcnJlY3QsIHNob3cnKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICAgIGV4cGVjdChzY3JlZW4uZ2V0QnlUZXh0KCdJZiBpbmNvcnJlY3QsIHNob3cnKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZW5kZXJzIGFsbCB0aHJlZSBmZWVkYmFjayBzZWxlY3RvcnMgYnkgZGVmYXVsdCcsICgpID0+IHtcbiAgICAgIGNvbnN0IGZlZWRiYWNrID0gYnVpbGREZWZhdWx0cygpO1xuXG4gICAgICByZW5kZXIoPEZlZWRiYWNrQ29uZmlnIGZlZWRiYWNrPXtmZWVkYmFja30gb25DaGFuZ2U9e29uQ2hhbmdlfSAvPik7XG5cbiAgICAgIGNvbnN0IHNlbGVjdG9ycyA9IHNjcmVlbi5nZXRBbGxCeVRlc3RJZCgnZmVlZGJhY2stc2VsZWN0b3InKTtcbiAgICAgIGV4cGVjdChzZWxlY3RvcnMpLnRvSGF2ZUxlbmd0aCgzKTtcbiAgICB9KTtcblxuICAgIGl0KCdkb2VzIG5vdCByZW5kZXIgcGFydGlhbCBmZWVkYmFjayBzZWxlY3RvciB3aGVuIGFsbG93UGFydGlhbCBpcyBmYWxzZScsICgpID0+IHtcbiAgICAgIGNvbnN0IGZlZWRiYWNrID0gYnVpbGREZWZhdWx0cygpO1xuXG4gICAgICByZW5kZXIoPEZlZWRiYWNrQ29uZmlnIGFsbG93UGFydGlhbD17ZmFsc2V9IGZlZWRiYWNrPXtmZWVkYmFja30gb25DaGFuZ2U9e29uQ2hhbmdlfSAvPik7XG5cbiAgICAgIGV4cGVjdChzY3JlZW4uZ2V0QnlUZXh0KCdJZiBjb3JyZWN0LCBzaG93JykpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgICBleHBlY3Qoc2NyZWVuLnF1ZXJ5QnlUZXh0KCdJZiBwYXJ0aWFsbHkgY29ycmVjdCwgc2hvdycpKS5ub3QudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICAgIGV4cGVjdChzY3JlZW4uZ2V0QnlUZXh0KCdJZiBpbmNvcnJlY3QsIHNob3cnKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcblxuICAgICAgY29uc3Qgc2VsZWN0b3JzID0gc2NyZWVuLmdldEFsbEJ5VGVzdElkKCdmZWVkYmFjay1zZWxlY3RvcicpO1xuICAgICAgZXhwZWN0KHNlbGVjdG9ycykudG9IYXZlTGVuZ3RoKDIpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgndXNlciBpbnRlcmFjdGlvbnMnLCAoKSA9PiB7XG4gICAgaXQoJ2NhbGxzIG9uQ2hhbmdlIHdoZW4gY29ycmVjdCBmZWVkYmFjayB0eXBlIGNoYW5nZXMnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB1c2VyID0gdXNlckV2ZW50LnNldHVwKCk7XG4gICAgICBjb25zdCBmZWVkYmFjayA9IGJ1aWxkRGVmYXVsdHMoKTtcblxuICAgICAgcmVuZGVyKDxGZWVkYmFja0NvbmZpZyBmZWVkYmFjaz17ZmVlZGJhY2t9IG9uQ2hhbmdlPXtvbkNoYW5nZX0gLz4pO1xuXG4gICAgICBjb25zdCBjb3JyZWN0U2VsZWN0ID0gc2NyZWVuLmdldEJ5TGFiZWxUZXh0KCdJZiBjb3JyZWN0LCBzaG93Jyk7XG4gICAgICBhd2FpdCB1c2VyLnNlbGVjdE9wdGlvbnMoY29ycmVjdFNlbGVjdCwgJ2N1c3RvbScpO1xuXG4gICAgICBleHBlY3Qob25DaGFuZ2UpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKFxuICAgICAgICBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgY29ycmVjdDogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoeyB0eXBlOiAnY3VzdG9tJyB9KSxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoJ2NhbGxzIG9uQ2hhbmdlIHdoZW4gaW5jb3JyZWN0IGZlZWRiYWNrIHR5cGUgY2hhbmdlcycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHVzZXIgPSB1c2VyRXZlbnQuc2V0dXAoKTtcbiAgICAgIGNvbnN0IGZlZWRiYWNrID0gYnVpbGREZWZhdWx0cygpO1xuXG4gICAgICByZW5kZXIoPEZlZWRiYWNrQ29uZmlnIGZlZWRiYWNrPXtmZWVkYmFja30gb25DaGFuZ2U9e29uQ2hhbmdlfSAvPik7XG5cbiAgICAgIGNvbnN0IGluY29ycmVjdFNlbGVjdCA9IHNjcmVlbi5nZXRCeUxhYmVsVGV4dCgnSWYgaW5jb3JyZWN0LCBzaG93Jyk7XG4gICAgICBhd2FpdCB1c2VyLnNlbGVjdE9wdGlvbnMoaW5jb3JyZWN0U2VsZWN0LCAnbm9uZScpO1xuXG4gICAgICBleHBlY3Qob25DaGFuZ2UpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKFxuICAgICAgICBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgaW5jb3JyZWN0OiBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7IHR5cGU6ICdub25lJyB9KSxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoJ2NhbGxzIG9uQ2hhbmdlIHdoZW4gcGFydGlhbCBmZWVkYmFjayB0eXBlIGNoYW5nZXMnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB1c2VyID0gdXNlckV2ZW50LnNldHVwKCk7XG4gICAgICBjb25zdCBmZWVkYmFjayA9IGJ1aWxkRGVmYXVsdHMoKTtcblxuICAgICAgcmVuZGVyKDxGZWVkYmFja0NvbmZpZyBmZWVkYmFjaz17ZmVlZGJhY2t9IG9uQ2hhbmdlPXtvbkNoYW5nZX0gLz4pO1xuXG4gICAgICBjb25zdCBwYXJ0aWFsU2VsZWN0ID0gc2NyZWVuLmdldEJ5TGFiZWxUZXh0KCdJZiBwYXJ0aWFsbHkgY29ycmVjdCwgc2hvdycpO1xuICAgICAgYXdhaXQgdXNlci5zZWxlY3RPcHRpb25zKHBhcnRpYWxTZWxlY3QsICdjdXN0b20nKTtcblxuICAgICAgZXhwZWN0KG9uQ2hhbmdlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChcbiAgICAgICAgZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgIHBhcnRpYWw6IGV4cGVjdC5vYmplY3RDb250YWluaW5nKHsgdHlwZTogJ2N1c3RvbScgfSksXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2J1aWxkRGVmYXVsdHMgaGVscGVyJywgKCkgPT4ge1xuICAgIGl0KCdyZXR1cm5zIGRlZmF1bHQgZmVlZGJhY2sgY29uZmlndXJhdGlvbicsICgpID0+IHtcbiAgICAgIGNvbnN0IGRlZmF1bHRzID0gYnVpbGREZWZhdWx0cygpO1xuXG4gICAgICBleHBlY3QoZGVmYXVsdHMpLnRvRXF1YWwoe1xuICAgICAgICBjb3JyZWN0OiB7IHR5cGU6ICdkZWZhdWx0JywgZGVmYXVsdDogJ0NvcnJlY3QnIH0sXG4gICAgICAgIGluY29ycmVjdDogeyB0eXBlOiAnZGVmYXVsdCcsIGRlZmF1bHQ6ICdJbmNvcnJlY3QnIH0sXG4gICAgICAgIHBhcnRpYWw6IHsgdHlwZTogJ2RlZmF1bHQnLCBkZWZhdWx0OiAnTmVhcmx5JyB9LFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnbWVyZ2VzIGN1c3RvbSB2YWx1ZXMgd2l0aCBkZWZhdWx0cycsICgpID0+IHtcbiAgICAgIGNvbnN0IGRlZmF1bHRzID0gYnVpbGREZWZhdWx0cyh7XG4gICAgICAgIGNvcnJlY3Q6IHsgdHlwZTogJ2N1c3RvbScsIGN1c3RvbTogJ0dyZWF0IGpvYiEnIH0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGRlZmF1bHRzKS50b0VxdWFsKHtcbiAgICAgICAgY29ycmVjdDogeyB0eXBlOiAnY3VzdG9tJywgZGVmYXVsdDogJ0NvcnJlY3QnLCBjdXN0b206ICdHcmVhdCBqb2IhJyB9LFxuICAgICAgICBpbmNvcnJlY3Q6IHsgdHlwZTogJ2RlZmF1bHQnLCBkZWZhdWx0OiAnSW5jb3JyZWN0JyB9LFxuICAgICAgICBwYXJ0aWFsOiB7IHR5cGU6ICdkZWZhdWx0JywgZGVmYXVsdDogJ05lYXJseScgfSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxVQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxNQUFBLEdBQUFILE9BQUE7QUFBeUQsU0FBQUksUUFBQUMsQ0FBQSxFQUFBQyxDQUFBLFFBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFKLENBQUEsT0FBQUcsTUFBQSxDQUFBRSxxQkFBQSxRQUFBQyxDQUFB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