@pie-element/categorize 9.14.1-next.2 → 9.14.2-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.
- package/CHANGELOG.md +24 -0
- package/configure/CHANGELOG.md +24 -0
- package/configure/lib/design/categories/RowLabel.js +3 -3
- package/configure/lib/design/categories/RowLabel.js.map +1 -1
- package/configure/lib/design/categories/alternateResponses.js +1 -1
- package/configure/lib/design/categories/alternateResponses.js.map +1 -1
- package/configure/lib/design/categories/choice-preview.js +2 -2
- package/configure/lib/design/categories/choice-preview.js.map +1 -1
- package/configure/lib/design/categories/droppable-placeholder.js +1 -1
- package/configure/lib/design/categories/droppable-placeholder.js.map +1 -1
- package/configure/lib/design/categories/index.js +32 -2
- package/configure/lib/design/categories/index.js.map +1 -1
- package/configure/lib/design/choices/choice.js +2 -2
- package/configure/lib/design/choices/choice.js.map +1 -1
- package/configure/lib/design/choices/index.js +2 -2
- package/configure/lib/design/choices/index.js.map +1 -1
- package/configure/lib/design/index.js +8 -8
- package/configure/lib/design/index.js.map +1 -1
- package/configure/lib/design/input-header.js +2 -2
- package/configure/lib/design/input-header.js.map +1 -1
- package/configure/lib/index.js +1 -1
- package/configure/lib/index.js.map +1 -1
- package/configure/package.json +8 -2
- package/controller/CHANGELOG.md +23 -0
- package/controller/lib/index.js +4 -4
- package/controller/lib/index.js.map +1 -1
- package/controller/package.json +5 -2
- package/docs/demo/.pie/.configure/package.json +10 -0
- package/docs/demo/.pie/.controllers/package.json +10 -0
- package/docs/demo/.pie/info.entry.js +89 -0
- package/docs/demo/.pie/info.webpack.config.js +108 -0
- package/docs/demo/.pie/package.json +10 -0
- package/docs/demo/pie.manifest.json +11 -0
- package/lib/categorize/categories.js +1 -1
- package/lib/categorize/categories.js.map +1 -1
- package/lib/categorize/category.js +1 -1
- package/lib/categorize/category.js.map +1 -1
- package/lib/categorize/choice.js +2 -2
- package/lib/categorize/choice.js.map +1 -1
- package/lib/categorize/droppable-placeholder.js +1 -1
- package/lib/categorize/droppable-placeholder.js.map +1 -1
- package/lib/categorize/index.js +7 -7
- package/lib/categorize/index.js.map +1 -1
- package/lib/index.js +2 -2
- package/lib/index.js.map +1 -1
- package/package.json +9 -3
- package/LICENSE.md +0 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/design/choices/index.jsx"],"names":["Choices","focusedEl","choice","props","choices","onModelChanged","index","findIndex","h","id","splice","count","Array","isArray","every","c","categoryCount","model","oldChoices","maxAnswerChoices","length","utils","firstAvailableIndex","map","a","data","content","setState","concat","correctResponse","indexFrom","indexTo","state","classes","className","imageSupport","uploadSoundSupport","spellCheck","toolbarOpts","configuration","defaultImageMaxWidth","defaultImageMaxHeight","errors","allowMultiplePlacementsEnabled","lockChoiceOrder","choicesError","choicesErrors","maxImageWidth","maxImageHeight","choiceHolderStyle","gridTemplateColumns","categoriesPerRow","addChoiceButtonTooltip","addChoice","choiceHolder","deleteFocusedEl","correctResponseCount","changeChoice","deleteChoice","rearrangeChoices","errorText","React","Component","PropTypes","object","isRequired","string","array","number","func","shape","add","bool","styles","theme","paddingTop","spacing","unit","paddingBottom","display","gridRowGap","gridColumnGap","marginBottom","fontSize","typography","color","palette","error","main"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport Choice from './choice';\nimport Header from '../header';\nimport Config from './config';\nimport { choiceUtils as utils } from '@pie-lib/pie-toolbox/config-ui';\nimport { removeAllChoices } from '@pie-lib/pie-toolbox/categorize';\nimport { rearrangeChoices } from '@pie-lib/pie-toolbox/categorize';\n\nexport class Choices extends React.Component {\n static propTypes = {\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n choices: PropTypes.array.isRequired,\n defaultImageMaxWidth: PropTypes.number,\n defaultImageMaxHeight: PropTypes.number,\n onModelChanged: PropTypes.func.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n toolbarOpts: PropTypes.object,\n spellCheck: PropTypes.bool,\n };\n\n static defaultProps = {};\n\n state = {\n focusedEl: null,\n };\n\n changeChoice = (choice) => {\n const { choices, onModelChanged } = this.props;\n const index = choices.findIndex((h) => h.id === choice.id);\n if (index !== -1) {\n choices.splice(index, 1, choice);\n onModelChanged({ choices });\n }\n };\n\n allChoicesHaveCount = (count) => {\n const { choices } = this.props;\n return Array.isArray(choices) && choices.every((c) => c.categoryCount === count);\n };\n\n addChoice = () => {\n const { onModelChanged, model, choices: oldChoices } = this.props;\n let { maxAnswerChoices } = model || {};\n\n if (maxAnswerChoices && model.choices?.length >= maxAnswerChoices) {\n return;\n }\n\n const id = utils.firstAvailableIndex(\n model.choices.map((a) => a.id),\n 1,\n );\n const data = { id, content: 'Choice ' + id };\n\n this.setState(\n {\n focusedEl: oldChoices.length,\n },\n () => {\n onModelChanged({ choices: model.choices.concat([data]) });\n },\n );\n };\n\n deleteFocusedEl = () => {\n this.setState({\n focusedEl: null,\n });\n };\n\n deleteChoice = (choice) => {\n const { model, onModelChanged } = this.props;\n const index = model.choices.findIndex((a) => a.id === choice.id);\n if (index !== -1) {\n model.choices.splice(index, 1);\n model.correctResponse = removeAllChoices(choice.id, model.correctResponse);\n onModelChanged(model);\n }\n };\n\n rearrangeChoices = (indexFrom, indexTo) => {\n const { model, onModelChanged } = this.props || {};\n let { choices } = model || [];\n choices = rearrangeChoices(choices, indexFrom, indexTo);\n onModelChanged({ choices });\n };\n\n render() {\n const { focusedEl } = this.state;\n const {\n classes,\n className,\n choices,\n model,\n imageSupport,\n uploadSoundSupport,\n onModelChanged,\n spellCheck,\n toolbarOpts,\n configuration,\n defaultImageMaxWidth,\n defaultImageMaxHeight,\n } = this.props;\n const { errors, allowMultiplePlacementsEnabled, lockChoiceOrder, maxAnswerChoices } = model;\n const { choicesError, choicesErrors } = errors || {};\n const { maxImageWidth = {}, maxImageHeight = {} } = configuration || {};\n const choiceHolderStyle = {\n gridTemplateColumns: `repeat(${model.categoriesPerRow}, 1fr)`,\n };\n const addChoiceButtonTooltip =\n maxAnswerChoices && choices?.length >= maxAnswerChoices ? `Only ${maxAnswerChoices} allowed maximum` : '';\n\n return (\n <div className={classNames(classes.choices, className)}>\n <Header\n label=\"Choices\"\n buttonLabel=\"ADD A CHOICE\"\n onAdd={this.addChoice}\n buttonDisabled={maxAnswerChoices && choices && choices?.length >= maxAnswerChoices}\n tooltip={addChoiceButtonTooltip}\n />\n\n <Config config={model} onModelChanged={onModelChanged} spellCheck={spellCheck} />\n\n <div className={classes.choiceHolder} style={choiceHolderStyle}>\n {choices.map((h, index) => {\n return (\n <Choice\n choice={h}\n focusedEl={focusedEl}\n deleteFocusedEl={this.deleteFocusedEl}\n correctResponseCount={h.correctResponseCount}\n allowMultiplePlacements={allowMultiplePlacementsEnabled}\n lockChoiceOrder={lockChoiceOrder}\n index={index}\n key={index}\n imageSupport={imageSupport}\n onChange={this.changeChoice}\n onDelete={() => this.deleteChoice(h)}\n rearrangeChoices={(indexFrom, indexTo) => this.rearrangeChoices(indexFrom, indexTo)}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n error={choicesErrors && choicesErrors[h.id]}\n maxImageWidth={(maxImageWidth && maxImageWidth.choice) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.choice) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n configuration={configuration}\n />\n );\n })}\n </div>\n {choicesError && <div className={classes.errorText}>{choicesError}</div>}\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n choiceHolder: {\n paddingTop: theme.spacing.unit,\n paddingBottom: theme.spacing.unit,\n display: 'grid',\n gridRowGap: `${theme.spacing.unit}px`,\n gridColumnGap: `${theme.spacing.unit}px`,\n },\n choices: {\n marginBottom: theme.spacing.unit * 2.5,\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 default withStyles(styles)(Choices);\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/design/choices/index.jsx"],"names":["Choices","focusedEl","choice","props","choices","onModelChanged","index","findIndex","h","id","splice","count","Array","isArray","every","c","categoryCount","model","oldChoices","maxAnswerChoices","length","utils","firstAvailableIndex","map","a","data","content","setState","concat","correctResponse","indexFrom","indexTo","state","classes","className","imageSupport","uploadSoundSupport","spellCheck","toolbarOpts","configuration","defaultImageMaxWidth","defaultImageMaxHeight","errors","allowMultiplePlacementsEnabled","lockChoiceOrder","choicesError","choicesErrors","maxImageWidth","maxImageHeight","choiceHolderStyle","gridTemplateColumns","categoriesPerRow","addChoiceButtonTooltip","addChoice","choiceHolder","deleteFocusedEl","correctResponseCount","changeChoice","deleteChoice","rearrangeChoices","errorText","React","Component","PropTypes","object","isRequired","string","array","number","func","shape","add","bool","styles","theme","paddingTop","spacing","unit","paddingBottom","display","gridRowGap","gridColumnGap","marginBottom","fontSize","typography","color","palette","error","main"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport Choice from './choice';\nimport Header from '../header';\nimport Config from './config';\nimport { choiceUtils as utils } from '@pie-lib/config-ui';\nimport { removeAllChoices } from '@pie-lib/categorize';\nimport { rearrangeChoices } from '@pie-lib/categorize';\n\nexport class Choices extends React.Component {\n static propTypes = {\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n choices: PropTypes.array.isRequired,\n defaultImageMaxWidth: PropTypes.number,\n defaultImageMaxHeight: PropTypes.number,\n onModelChanged: PropTypes.func.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n toolbarOpts: PropTypes.object,\n spellCheck: PropTypes.bool,\n };\n\n static defaultProps = {};\n\n state = {\n focusedEl: null,\n };\n\n changeChoice = (choice) => {\n const { choices, onModelChanged } = this.props;\n const index = choices.findIndex((h) => h.id === choice.id);\n if (index !== -1) {\n choices.splice(index, 1, choice);\n onModelChanged({ choices });\n }\n };\n\n allChoicesHaveCount = (count) => {\n const { choices } = this.props;\n return Array.isArray(choices) && choices.every((c) => c.categoryCount === count);\n };\n\n addChoice = () => {\n const { onModelChanged, model, choices: oldChoices } = this.props;\n let { maxAnswerChoices } = model || {};\n\n if (maxAnswerChoices && model.choices?.length >= maxAnswerChoices) {\n return;\n }\n\n const id = utils.firstAvailableIndex(\n model.choices.map((a) => a.id),\n 1,\n );\n const data = { id, content: 'Choice ' + id };\n\n this.setState(\n {\n focusedEl: oldChoices.length,\n },\n () => {\n onModelChanged({ choices: model.choices.concat([data]) });\n },\n );\n };\n\n deleteFocusedEl = () => {\n this.setState({\n focusedEl: null,\n });\n };\n\n deleteChoice = (choice) => {\n const { model, onModelChanged } = this.props;\n const index = model.choices.findIndex((a) => a.id === choice.id);\n if (index !== -1) {\n model.choices.splice(index, 1);\n model.correctResponse = removeAllChoices(choice.id, model.correctResponse);\n onModelChanged(model);\n }\n };\n\n rearrangeChoices = (indexFrom, indexTo) => {\n const { model, onModelChanged } = this.props || {};\n let { choices } = model || [];\n choices = rearrangeChoices(choices, indexFrom, indexTo);\n onModelChanged({ choices });\n };\n\n render() {\n const { focusedEl } = this.state;\n const {\n classes,\n className,\n choices,\n model,\n imageSupport,\n uploadSoundSupport,\n onModelChanged,\n spellCheck,\n toolbarOpts,\n configuration,\n defaultImageMaxWidth,\n defaultImageMaxHeight,\n } = this.props;\n const { errors, allowMultiplePlacementsEnabled, lockChoiceOrder, maxAnswerChoices } = model;\n const { choicesError, choicesErrors } = errors || {};\n const { maxImageWidth = {}, maxImageHeight = {} } = configuration || {};\n const choiceHolderStyle = {\n gridTemplateColumns: `repeat(${model.categoriesPerRow}, 1fr)`,\n };\n const addChoiceButtonTooltip =\n maxAnswerChoices && choices?.length >= maxAnswerChoices ? `Only ${maxAnswerChoices} allowed maximum` : '';\n\n return (\n <div className={classNames(classes.choices, className)}>\n <Header\n label=\"Choices\"\n buttonLabel=\"ADD A CHOICE\"\n onAdd={this.addChoice}\n buttonDisabled={maxAnswerChoices && choices && choices?.length >= maxAnswerChoices}\n tooltip={addChoiceButtonTooltip}\n />\n\n <Config config={model} onModelChanged={onModelChanged} spellCheck={spellCheck} />\n\n <div className={classes.choiceHolder} style={choiceHolderStyle}>\n {choices.map((h, index) => {\n return (\n <Choice\n choice={h}\n focusedEl={focusedEl}\n deleteFocusedEl={this.deleteFocusedEl}\n correctResponseCount={h.correctResponseCount}\n allowMultiplePlacements={allowMultiplePlacementsEnabled}\n lockChoiceOrder={lockChoiceOrder}\n index={index}\n key={index}\n imageSupport={imageSupport}\n onChange={this.changeChoice}\n onDelete={() => this.deleteChoice(h)}\n rearrangeChoices={(indexFrom, indexTo) => this.rearrangeChoices(indexFrom, indexTo)}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n error={choicesErrors && choicesErrors[h.id]}\n maxImageWidth={(maxImageWidth && maxImageWidth.choice) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.choice) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n configuration={configuration}\n />\n );\n })}\n </div>\n {choicesError && <div className={classes.errorText}>{choicesError}</div>}\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n choiceHolder: {\n paddingTop: theme.spacing.unit,\n paddingBottom: theme.spacing.unit,\n display: 'grid',\n gridRowGap: `${theme.spacing.unit}px`,\n gridColumnGap: `${theme.spacing.unit}px`,\n },\n choices: {\n marginBottom: theme.spacing.unit * 2.5,\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 default withStyles(styles)(Choices);\n"],"file":"index.js"}
|
|
@@ -31,13 +31,13 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
31
31
|
|
|
32
32
|
var _styles = require("@material-ui/core/styles");
|
|
33
33
|
|
|
34
|
-
var _configUi = require("@pie-lib/
|
|
34
|
+
var _configUi = require("@pie-lib/config-ui");
|
|
35
35
|
|
|
36
|
-
var _categorize = require("@pie-lib/
|
|
36
|
+
var _categorize = require("@pie-lib/categorize");
|
|
37
37
|
|
|
38
|
-
var _editableHtml = require("@pie-lib/
|
|
38
|
+
var _editableHtml = _interopRequireDefault(require("@pie-lib/editable-html"));
|
|
39
39
|
|
|
40
|
-
var _drag = require("@pie-lib/
|
|
40
|
+
var _drag = require("@pie-lib/drag");
|
|
41
41
|
|
|
42
42
|
var _categories = _interopRequireDefault(require("./categories"));
|
|
43
43
|
|
|
@@ -51,7 +51,7 @@ var _header = _interopRequireDefault(require("./header"));
|
|
|
51
51
|
|
|
52
52
|
var _utils2 = require("../utils");
|
|
53
53
|
|
|
54
|
-
var _translator = _interopRequireDefault(require("@pie-lib/
|
|
54
|
+
var _translator = _interopRequireDefault(require("@pie-lib/translator"));
|
|
55
55
|
|
|
56
56
|
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; }
|
|
57
57
|
|
|
@@ -366,7 +366,7 @@ var Design = /*#__PURE__*/function (_React$Component) {
|
|
|
366
366
|
}, teacherInstructionsEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
|
|
367
367
|
label: teacherInstructions.label,
|
|
368
368
|
className: classes.inputContainer
|
|
369
|
-
}, /*#__PURE__*/_react["default"].createElement(_editableHtml
|
|
369
|
+
}, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
|
|
370
370
|
className: classes.input,
|
|
371
371
|
markup: model.teacherInstructions || '',
|
|
372
372
|
onChange: this.changeTeacherInstructions,
|
|
@@ -390,7 +390,7 @@ var Design = /*#__PURE__*/function (_React$Component) {
|
|
|
390
390
|
}, teacherInstructionsError)), promptEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
|
|
391
391
|
label: prompt.label,
|
|
392
392
|
className: classes.inputContainer
|
|
393
|
-
}, /*#__PURE__*/_react["default"].createElement(_editableHtml
|
|
393
|
+
}, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
|
|
394
394
|
className: classes.input,
|
|
395
395
|
markup: model.prompt || '',
|
|
396
396
|
onChange: this.onPromptChanged,
|
|
@@ -464,7 +464,7 @@ var Design = /*#__PURE__*/function (_React$Component) {
|
|
|
464
464
|
}), rationaleEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
|
|
465
465
|
label: rationale.label,
|
|
466
466
|
className: classes.inputContainer
|
|
467
|
-
}, /*#__PURE__*/_react["default"].createElement(_editableHtml
|
|
467
|
+
}, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
|
|
468
468
|
className: classes.input,
|
|
469
469
|
markup: model.rationale || '',
|
|
470
470
|
onChange: this.changeRationale,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/design/index.jsx"],"names":["translator","Translator","dropdown","settings","Panel","toggle","radio","numberField","IdProvider","uid","Provider","Design","props","model","onChange","updatedModel","choices","map","c","categoryCount","checkAllowMultiplePlacements","allowMultiplePlacementsEnabled","correctResponse","categories","id","label","h","content","maxChoicesPerCategory","allowMaxChoicesPerCategory","rationale","teacherInstructions","feedback","updateModel","cr","alternateResponses","prompt","index","filter","alt","altIndex","choice","allowMultiplePlacements","multiplePlacements","enabled","disabled","maxChoices","generateId","classes","configuration","imageSupport","uploadSoundSupport","onConfigurationChanged","allowAlternate","baseInputConfiguration","categoriesPerRow","choicesPosition","contentDimensions","lockChoiceOrder","maxImageHeight","maxImageWidth","maxPlacements","minCategoriesPerRow","partialScoring","scoringType","settingsPanelDisabled","spellCheck","studentInstructions","withRubric","mathMlOptions","language","languageChoices","allowMaxAnswerChoices","allowAlternateEnabled","errors","feedbackEnabled","promptEnabled","rationaleEnabled","spellCheckEnabled","teacherInstructionsEnabled","toolbarEditorPosition","extraCSSRules","promptError","rationaleError","teacherInstructionsError","toolbarOpts","position","config","columns","correctResponseCount","countChoiceInCorrectResponse","defaultImageMaxWidth","defaultImageMaxHeight","panelSettings","min","max","perChoice","maxAnswerChoices","length","options","panelProperties","studentInstructionsEnabled","rubricEnabled","isOpened","isAlertModalOpened","alertMaxChoicesMsg","t","lng","Settings","Properties","onAlertModalCancel","inputContainer","input","changeTeacherInstructions","inputConfiguration","errorText","onPromptChanged","alternatesHeader","onAddAlternateResponse","categoriesList","onRemoveAlternateResponse","changeRationale","changeFeedback","React","Component","PropTypes","object","isRequired","className","string","func","shape","add","styles","theme","marginBottom","spacing","unit","text","paddingTop","paddingBottom","width","title","fontSize","typography","color","palette","error","main"],"mappings":"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","sourcesContent":["import { getPluginProps } from './utils';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { FeedbackConfig, InputContainer, layout, settings } from '@pie-lib/pie-toolbox/config-ui';\nimport {\n countInAnswer,\n ensureNoExtraChoicesInAnswer,\n ensureNoExtraChoicesInAlternate,\n} from '@pie-lib/pie-toolbox/categorize';\nimport { EditableHtml } from '@pie-lib/pie-toolbox/editable-html';\nimport { uid, withDragContext } from '@pie-lib/pie-toolbox/drag';\n\nimport Categories from './categories';\nimport AlternateResponses from './categories/alternateResponses';\nimport Choices from './choices';\nimport { buildAlternateResponses, buildCategories } from './builder';\nimport Header from './header';\nimport { getMaxCategoryChoices, multiplePlacements } from '../utils';\nimport { AlertDialog } from '@pie-lib/pie-toolbox/config-ui';\nimport Translator from '@pie-lib/pie-toolbox/translator';\n\nconst { translator } = Translator;\nconst { dropdown, Panel, toggle, radio, numberField } = settings;\nconst { Provider: IdProvider } = uid;\n\nexport class Design extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n configuration: PropTypes.object,\n className: PropTypes.string,\n onConfigurationChanged: PropTypes.func,\n model: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n uid: PropTypes.string,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n };\n\n constructor(props) {\n super(props);\n this.uid = props.uid || uid.generateId();\n }\n\n updateModel = (props) => {\n const { model, onChange } = this.props;\n\n const updatedModel = {\n ...model,\n ...props,\n };\n\n updatedModel.choices = updatedModel.choices.map((c) => ({\n ...c,\n categoryCount: this.checkAllowMultiplePlacements(updatedModel.allowMultiplePlacementsEnabled, c),\n }));\n\n //Ensure that there are no extra choices in correctResponse, if the user has decided that only one choice may be used.\n updatedModel.correctResponse = ensureNoExtraChoicesInAnswer(\n updatedModel.correctResponse || [],\n updatedModel.choices,\n );\n\n //Ensure that there are no extra choices in alternate responses, if the user has decided that only one choice may be used.\n updatedModel.correctResponse = ensureNoExtraChoicesInAlternate(\n updatedModel.correctResponse || [],\n updatedModel.choices,\n );\n\n //clean categories\n updatedModel.categories = updatedModel.categories.map((c) => ({\n id: c.id,\n label: c.label,\n }));\n\n updatedModel.choices = updatedModel.choices.map((h) => ({\n id: h.id,\n content: h.content,\n categoryCount: h.categoryCount,\n }));\n\n // ensure that maxChoicesPerCategory is reset if author switch back the corresponding switch (allowMaxChoicesPerCategory)\n updatedModel.maxChoicesPerCategory = updatedModel.allowMaxChoicesPerCategory\n ? updatedModel.maxChoicesPerCategory\n : 0;\n\n onChange(updatedModel);\n };\n\n changeRationale = (rationale) => {\n const { model, onChange } = this.props;\n\n onChange({\n ...model,\n rationale,\n });\n };\n\n changeTeacherInstructions = (teacherInstructions) => {\n const { model, onChange } = this.props;\n\n onChange({\n ...model,\n teacherInstructions,\n });\n };\n\n changeFeedback = (feedback) => {\n this.updateModel({ feedback });\n };\n\n onAddAlternateResponse = () => {\n const {\n model: { correctResponse },\n } = this.props;\n\n this.updateModel({\n correctResponse: (correctResponse || []).map((cr) => ({\n ...cr,\n alternateResponses: [...(cr.alternateResponses || []), []],\n })),\n });\n };\n\n onPromptChanged = (prompt) => this.updateModel({ prompt });\n\n onRemoveAlternateResponse = (index) => {\n const {\n model: { correctResponse },\n } = this.props;\n\n this.updateModel({\n correctResponse: (correctResponse || []).map((cr) => ({\n ...cr,\n alternateResponses: (cr.alternateResponses || []).filter((alt, altIndex) => altIndex !== index),\n })),\n });\n };\n\n countChoiceInCorrectResponse = (choice) => {\n const { model } = this.props;\n\n return countInAnswer(choice.id, model.correctResponse);\n };\n\n checkAllowMultiplePlacements = (allowMultiplePlacements, c) => {\n if (allowMultiplePlacements === multiplePlacements.enabled) {\n return 0;\n }\n\n if (allowMultiplePlacements === multiplePlacements.disabled) {\n return 1;\n }\n\n return c.categoryCount || 0;\n };\n\n isAlertModalOpened = () => {\n const { model } = this.props;\n const { maxChoicesPerCategory = 0 } = model || {};\n const maxChoices = getMaxCategoryChoices(model);\n // when maxChoicesPerCategory is set to 0, there is no limit so modal should not be opened\n return maxChoicesPerCategory !== 0 ? maxChoices > maxChoicesPerCategory : false;\n };\n\n onAlertModalCancel = () => {\n const { model } = this.props;\n const maxChoices = getMaxCategoryChoices(model);\n this.updateModel({ maxChoicesPerCategory: maxChoices });\n };\n\n render() {\n const { classes, configuration, imageSupport, model, uploadSoundSupport, onConfigurationChanged } = this.props;\n const {\n allowAlternate = {},\n allowMultiplePlacements = {},\n baseInputConfiguration = {},\n categoriesPerRow = {},\n choicesPosition = {},\n contentDimensions = {},\n feedback = {},\n lockChoiceOrder = {},\n maxImageHeight = {},\n maxImageWidth = {},\n maxPlacements = {},\n minCategoriesPerRow = 1,\n partialScoring = {},\n prompt = {},\n rationale = {},\n scoringType = {},\n settingsPanelDisabled,\n spellCheck = {},\n studentInstructions = {},\n teacherInstructions = {},\n withRubric = {},\n mathMlOptions = {},\n language = {},\n languageChoices = {},\n allowMaxAnswerChoices = {},\n } = configuration || {};\n const {\n allowAlternateEnabled,\n allowMaxChoicesPerCategory,\n errors,\n feedbackEnabled,\n maxChoicesPerCategory,\n promptEnabled,\n rationaleEnabled,\n spellCheckEnabled,\n teacherInstructionsEnabled,\n toolbarEditorPosition,\n extraCSSRules,\n } = model || {};\n const {\n prompt: promptError,\n rationale: rationaleError,\n teacherInstructions: teacherInstructionsError,\n } = errors || {};\n\n const toolbarOpts = {\n position: toolbarEditorPosition === 'top' ? 'top' : 'bottom',\n };\n\n const config = model.config || {};\n config.choices = config.choices || { label: '', columns: 2 };\n\n const categories = buildCategories(model.categories || [], model.choices || [], model.correctResponse || []);\n\n const alternateResponses = buildAlternateResponses(\n model.categories || [],\n model.choices || [],\n model.correctResponse || [],\n );\n\n const choices = model.choices.map((c) => {\n c.correctResponseCount = this.countChoiceInCorrectResponse(c);\n // ensure categoryCount is set even though updatedModel hasn't been called\n c.categoryCount = this.checkAllowMultiplePlacements(model.allowMultiplePlacementsEnabled, c);\n return c;\n });\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n const panelSettings = {\n partialScoring: partialScoring.settings && toggle(partialScoring.label),\n lockChoiceOrder: lockChoiceOrder.settings && toggle(lockChoiceOrder.label),\n categoriesPerRow:\n categoriesPerRow.settings &&\n numberField(categoriesPerRow.label, {\n label: categoriesPerRow.label,\n min: minCategoriesPerRow,\n max: 6,\n }),\n choicesPosition: choicesPosition.settings && radio(choicesPosition.label, ['below', 'above', 'left', 'right']),\n allowMultiplePlacementsEnabled:\n allowMultiplePlacements.settings &&\n dropdown(allowMultiplePlacements.label, [\n multiplePlacements.enabled,\n multiplePlacements.disabled,\n multiplePlacements.perChoice,\n ]),\n maxAnswerChoices: allowMaxAnswerChoices.settings && numberField(allowMaxAnswerChoices.label, {\n label: '',\n min: choices?.length || 0,\n max: 30,\n }),\n allowMaxChoicesPerCategory: maxPlacements.settings && toggle(maxPlacements.label),\n maxChoicesPerCategory:\n allowMaxChoicesPerCategory === true &&\n numberField(maxPlacements.label, {\n label: '',\n min: 0,\n max: 30,\n }),\n promptEnabled: prompt.settings && toggle(prompt.label),\n feedbackEnabled: feedback.settings && toggle(feedback.label),\n allowAlternateEnabled: allowAlternate.settings && toggle(allowAlternate.label),\n 'language.enabled': language.settings && toggle(language.label, true),\n language: language.settings && language.enabled && dropdown(languageChoices.label, languageChoices.options),\n };\n\n const panelProperties = {\n teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),\n studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),\n rationaleEnabled: rationale.settings && toggle(rationale.label),\n spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),\n scoringType: scoringType.settings && radio(scoringType.label, ['auto', 'rubric']),\n rubricEnabled: withRubric?.settings && toggle(withRubric?.label),\n };\n\n const isOpened = this.isAlertModalOpened();\n const alertMaxChoicesMsg = translator.t('translation:categorize:maxChoicesPerCategoryRestriction', {\n lng: model.language,\n maxChoicesPerCategory,\n });\n\n return (\n <IdProvider value={this.uid}>\n <layout.ConfigLayout\n extraCSSRules={extraCSSRules}\n dimensions={contentDimensions}\n hideSettings={settingsPanelDisabled}\n settings={\n <Panel\n model={model}\n onChangeModel={this.updateModel}\n configuration={configuration}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n Settings: panelSettings,\n Properties: panelProperties,\n }}\n modal={\n <AlertDialog\n title={'Warning'}\n text={alertMaxChoicesMsg}\n open={isOpened}\n onClose={this.onAlertModalCancel}\n />\n }\n />\n }\n >\n {teacherInstructionsEnabled && (\n <InputContainer label={teacherInstructions.label} className={classes.inputContainer}>\n <EditableHtml\n className={classes.input}\n markup={model.teacherInstructions || ''}\n onChange={this.changeTeacherInstructions}\n imageSupport={imageSupport}\n error={teacherInstructionsError}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(teacherInstructions?.inputConfiguration, baseInputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.teacherInstructions) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.teacherInstructions) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {teacherInstructionsError && <div className={classes.errorText}>{teacherInstructionsError}</div>}\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer label={prompt.label} className={classes.inputContainer}>\n <EditableHtml\n className={classes.input}\n markup={model.prompt || ''}\n onChange={this.onPromptChanged}\n imageSupport={imageSupport}\n error={promptError}\n nonEmpty={false}\n disableUnderline\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(prompt?.inputConfiguration, baseInputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={maxImageWidth && maxImageWidth.prompt}\n maxImageHeight={maxImageHeight && maxImageHeight.prompt}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {promptError && <div className={classes.errorText}>{promptError}</div>}\n </InputContainer>\n )}\n\n <Categories\n imageSupport={imageSupport}\n uploadSoundSupport={uploadSoundSupport}\n model={model}\n categories={categories || []}\n onModelChanged={this.updateModel}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n configuration={configuration}\n defaultImageMaxWidth={defaultImageMaxWidth}\n defaultImageMaxHeight={defaultImageMaxHeight}\n mathMlOptions={mathMlOptions}\n />\n\n <Choices\n imageSupport={imageSupport}\n uploadSoundSupport={uploadSoundSupport}\n choices={choices}\n model={model}\n onModelChanged={this.updateModel}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n configuration={configuration}\n defaultImageMaxWidth={defaultImageMaxWidth}\n defaultImageMaxHeight={defaultImageMaxHeight}\n />\n\n {allowAlternateEnabled && (\n <Header\n className={classes.alternatesHeader}\n label=\"Alternate Responses\"\n buttonLabel=\"ADD AN ALTERNATE RESPONSE\"\n onAdd={this.onAddAlternateResponse}\n />\n )}\n {allowAlternateEnabled &&\n alternateResponses.map((categoriesList, index) => {\n return (\n <React.Fragment key={index}>\n <Header\n className={classes.alternatesHeader}\n variant={'subtitle1'}\n label=\"Alternate Response\"\n buttonLabel=\"REMOVE ALTERNATE RESPONSE\"\n onAdd={() => this.onRemoveAlternateResponse(index)}\n />\n <AlternateResponses\n altIndex={index}\n imageSupport={imageSupport}\n model={model}\n configuration={configuration}\n categories={categoriesList}\n onModelChanged={this.updateModel}\n uploadSoundSupport={uploadSoundSupport}\n mathMlOptions={mathMlOptions}\n />\n </React.Fragment>\n );\n })}\n\n {rationaleEnabled && (\n <InputContainer label={rationale.label} className={classes.inputContainer}>\n <EditableHtml\n className={classes.input}\n markup={model.rationale || ''}\n onChange={this.changeRationale}\n imageSupport={imageSupport}\n error={rationaleError}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(prompt?.inputConfiguration, baseInputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.rationale) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.rationale) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {rationaleError && <div className={classes.errorText}>{rationaleError}</div>}\n </InputContainer>\n )}\n\n {feedbackEnabled && (\n <FeedbackConfig feedback={model.feedback} onChange={this.changeFeedback} toolbarOpts={toolbarOpts} />\n )}\n </layout.ConfigLayout>\n </IdProvider>\n );\n }\n}\n\nconst styles = (theme) => ({\n alternatesHeader: {\n marginBottom: theme.spacing.unit * 2,\n },\n text: {\n paddingTop: theme.spacing.unit * 2,\n paddingBottom: theme.spacing.unit * 2,\n },\n inputContainer: {\n width: '100%',\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n title: {\n marginBottom: theme.spacing.unit * 4,\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing.unit,\n },\n});\n\nexport default withDragContext(withStyles(styles)(Design));\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/design/index.jsx"],"names":["translator","Translator","dropdown","settings","Panel","toggle","radio","numberField","IdProvider","uid","Provider","Design","props","model","onChange","updatedModel","choices","map","c","categoryCount","checkAllowMultiplePlacements","allowMultiplePlacementsEnabled","correctResponse","categories","id","label","h","content","maxChoicesPerCategory","allowMaxChoicesPerCategory","rationale","teacherInstructions","feedback","updateModel","cr","alternateResponses","prompt","index","filter","alt","altIndex","choice","allowMultiplePlacements","multiplePlacements","enabled","disabled","maxChoices","generateId","classes","configuration","imageSupport","uploadSoundSupport","onConfigurationChanged","allowAlternate","baseInputConfiguration","categoriesPerRow","choicesPosition","contentDimensions","lockChoiceOrder","maxImageHeight","maxImageWidth","maxPlacements","minCategoriesPerRow","partialScoring","scoringType","settingsPanelDisabled","spellCheck","studentInstructions","withRubric","mathMlOptions","language","languageChoices","allowMaxAnswerChoices","allowAlternateEnabled","errors","feedbackEnabled","promptEnabled","rationaleEnabled","spellCheckEnabled","teacherInstructionsEnabled","toolbarEditorPosition","extraCSSRules","promptError","rationaleError","teacherInstructionsError","toolbarOpts","position","config","columns","correctResponseCount","countChoiceInCorrectResponse","defaultImageMaxWidth","defaultImageMaxHeight","panelSettings","min","max","perChoice","maxAnswerChoices","length","options","panelProperties","studentInstructionsEnabled","rubricEnabled","isOpened","isAlertModalOpened","alertMaxChoicesMsg","t","lng","Settings","Properties","onAlertModalCancel","inputContainer","input","changeTeacherInstructions","inputConfiguration","errorText","onPromptChanged","alternatesHeader","onAddAlternateResponse","categoriesList","onRemoveAlternateResponse","changeRationale","changeFeedback","React","Component","PropTypes","object","isRequired","className","string","func","shape","add","styles","theme","marginBottom","spacing","unit","text","paddingTop","paddingBottom","width","title","fontSize","typography","color","palette","error","main"],"mappings":"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","sourcesContent":["import { getPluginProps } from './utils';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { FeedbackConfig, InputContainer, layout, settings } from '@pie-lib/config-ui';\nimport { countInAnswer, ensureNoExtraChoicesInAnswer, ensureNoExtraChoicesInAlternate } from '@pie-lib/categorize';\nimport EditableHtml from '@pie-lib/editable-html';\nimport { uid, withDragContext } from '@pie-lib/drag';\n\nimport Categories from './categories';\nimport AlternateResponses from './categories/alternateResponses';\nimport Choices from './choices';\nimport { buildAlternateResponses, buildCategories } from './builder';\nimport Header from './header';\nimport { getMaxCategoryChoices, multiplePlacements } from '../utils';\nimport { AlertDialog } from '@pie-lib/config-ui';\nimport Translator from '@pie-lib/translator';\n\nconst { translator } = Translator;\nconst { dropdown, Panel, toggle, radio, numberField } = settings;\nconst { Provider: IdProvider } = uid;\n\nexport class Design extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n configuration: PropTypes.object,\n className: PropTypes.string,\n onConfigurationChanged: PropTypes.func,\n model: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n uid: PropTypes.string,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n };\n\n constructor(props) {\n super(props);\n this.uid = props.uid || uid.generateId();\n }\n\n updateModel = (props) => {\n const { model, onChange } = this.props;\n\n const updatedModel = {\n ...model,\n ...props,\n };\n\n updatedModel.choices = updatedModel.choices.map((c) => ({\n ...c,\n categoryCount: this.checkAllowMultiplePlacements(updatedModel.allowMultiplePlacementsEnabled, c),\n }));\n\n //Ensure that there are no extra choices in correctResponse, if the user has decided that only one choice may be used.\n updatedModel.correctResponse = ensureNoExtraChoicesInAnswer(\n updatedModel.correctResponse || [],\n updatedModel.choices,\n );\n\n //Ensure that there are no extra choices in alternate responses, if the user has decided that only one choice may be used.\n updatedModel.correctResponse = ensureNoExtraChoicesInAlternate(\n updatedModel.correctResponse || [],\n updatedModel.choices,\n );\n\n //clean categories\n updatedModel.categories = updatedModel.categories.map((c) => ({\n id: c.id,\n label: c.label,\n }));\n\n updatedModel.choices = updatedModel.choices.map((h) => ({\n id: h.id,\n content: h.content,\n categoryCount: h.categoryCount,\n }));\n\n // ensure that maxChoicesPerCategory is reset if author switch back the corresponding switch (allowMaxChoicesPerCategory)\n updatedModel.maxChoicesPerCategory = updatedModel.allowMaxChoicesPerCategory\n ? updatedModel.maxChoicesPerCategory\n : 0;\n\n onChange(updatedModel);\n };\n\n changeRationale = (rationale) => {\n const { model, onChange } = this.props;\n\n onChange({\n ...model,\n rationale,\n });\n };\n\n changeTeacherInstructions = (teacherInstructions) => {\n const { model, onChange } = this.props;\n\n onChange({\n ...model,\n teacherInstructions,\n });\n };\n\n changeFeedback = (feedback) => {\n this.updateModel({ feedback });\n };\n\n onAddAlternateResponse = () => {\n const {\n model: { correctResponse },\n } = this.props;\n\n this.updateModel({\n correctResponse: (correctResponse || []).map((cr) => ({\n ...cr,\n alternateResponses: [...(cr.alternateResponses || []), []],\n })),\n });\n };\n\n onPromptChanged = (prompt) => this.updateModel({ prompt });\n\n onRemoveAlternateResponse = (index) => {\n const {\n model: { correctResponse },\n } = this.props;\n\n this.updateModel({\n correctResponse: (correctResponse || []).map((cr) => ({\n ...cr,\n alternateResponses: (cr.alternateResponses || []).filter((alt, altIndex) => altIndex !== index),\n })),\n });\n };\n\n countChoiceInCorrectResponse = (choice) => {\n const { model } = this.props;\n\n return countInAnswer(choice.id, model.correctResponse);\n };\n\n checkAllowMultiplePlacements = (allowMultiplePlacements, c) => {\n if (allowMultiplePlacements === multiplePlacements.enabled) {\n return 0;\n }\n\n if (allowMultiplePlacements === multiplePlacements.disabled) {\n return 1;\n }\n\n return c.categoryCount || 0;\n };\n\n isAlertModalOpened = () => {\n const { model } = this.props;\n const { maxChoicesPerCategory = 0 } = model || {};\n const maxChoices = getMaxCategoryChoices(model);\n // when maxChoicesPerCategory is set to 0, there is no limit so modal should not be opened\n return maxChoicesPerCategory !== 0 ? maxChoices > maxChoicesPerCategory : false;\n };\n\n onAlertModalCancel = () => {\n const { model } = this.props;\n const maxChoices = getMaxCategoryChoices(model);\n this.updateModel({ maxChoicesPerCategory: maxChoices });\n };\n\n render() {\n const { classes, configuration, imageSupport, model, uploadSoundSupport, onConfigurationChanged } = this.props;\n const {\n allowAlternate = {},\n allowMultiplePlacements = {},\n baseInputConfiguration = {},\n categoriesPerRow = {},\n choicesPosition = {},\n contentDimensions = {},\n feedback = {},\n lockChoiceOrder = {},\n maxImageHeight = {},\n maxImageWidth = {},\n maxPlacements = {},\n minCategoriesPerRow = 1,\n partialScoring = {},\n prompt = {},\n rationale = {},\n scoringType = {},\n settingsPanelDisabled,\n spellCheck = {},\n studentInstructions = {},\n teacherInstructions = {},\n withRubric = {},\n mathMlOptions = {},\n language = {},\n languageChoices = {},\n allowMaxAnswerChoices = {},\n } = configuration || {};\n const {\n allowAlternateEnabled,\n allowMaxChoicesPerCategory,\n errors,\n feedbackEnabled,\n maxChoicesPerCategory,\n promptEnabled,\n rationaleEnabled,\n spellCheckEnabled,\n teacherInstructionsEnabled,\n toolbarEditorPosition,\n extraCSSRules,\n } = model || {};\n const {\n prompt: promptError,\n rationale: rationaleError,\n teacherInstructions: teacherInstructionsError,\n } = errors || {};\n\n const toolbarOpts = {\n position: toolbarEditorPosition === 'top' ? 'top' : 'bottom',\n };\n\n const config = model.config || {};\n config.choices = config.choices || { label: '', columns: 2 };\n\n const categories = buildCategories(model.categories || [], model.choices || [], model.correctResponse || []);\n\n const alternateResponses = buildAlternateResponses(\n model.categories || [],\n model.choices || [],\n model.correctResponse || [],\n );\n\n const choices = model.choices.map((c) => {\n c.correctResponseCount = this.countChoiceInCorrectResponse(c);\n // ensure categoryCount is set even though updatedModel hasn't been called\n c.categoryCount = this.checkAllowMultiplePlacements(model.allowMultiplePlacementsEnabled, c);\n return c;\n });\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n const panelSettings = {\n partialScoring: partialScoring.settings && toggle(partialScoring.label),\n lockChoiceOrder: lockChoiceOrder.settings && toggle(lockChoiceOrder.label),\n categoriesPerRow:\n categoriesPerRow.settings &&\n numberField(categoriesPerRow.label, {\n label: categoriesPerRow.label,\n min: minCategoriesPerRow,\n max: 6,\n }),\n choicesPosition: choicesPosition.settings && radio(choicesPosition.label, ['below', 'above', 'left', 'right']),\n allowMultiplePlacementsEnabled:\n allowMultiplePlacements.settings &&\n dropdown(allowMultiplePlacements.label, [\n multiplePlacements.enabled,\n multiplePlacements.disabled,\n multiplePlacements.perChoice,\n ]),\n maxAnswerChoices:\n allowMaxAnswerChoices.settings &&\n numberField(allowMaxAnswerChoices.label, {\n label: '',\n min: choices?.length || 0,\n max: 30,\n }),\n allowMaxChoicesPerCategory: maxPlacements.settings && toggle(maxPlacements.label),\n maxChoicesPerCategory:\n allowMaxChoicesPerCategory === true &&\n numberField(maxPlacements.label, {\n label: '',\n min: 0,\n max: 30,\n }),\n promptEnabled: prompt.settings && toggle(prompt.label),\n feedbackEnabled: feedback.settings && toggle(feedback.label),\n allowAlternateEnabled: allowAlternate.settings && toggle(allowAlternate.label),\n 'language.enabled': language.settings && toggle(language.label, true),\n language: language.settings && language.enabled && dropdown(languageChoices.label, languageChoices.options),\n };\n\n const panelProperties = {\n teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),\n studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),\n rationaleEnabled: rationale.settings && toggle(rationale.label),\n spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),\n scoringType: scoringType.settings && radio(scoringType.label, ['auto', 'rubric']),\n rubricEnabled: withRubric?.settings && toggle(withRubric?.label),\n };\n\n const isOpened = this.isAlertModalOpened();\n const alertMaxChoicesMsg = translator.t('translation:categorize:maxChoicesPerCategoryRestriction', {\n lng: model.language,\n maxChoicesPerCategory,\n });\n\n return (\n <IdProvider value={this.uid}>\n <layout.ConfigLayout\n extraCSSRules={extraCSSRules}\n dimensions={contentDimensions}\n hideSettings={settingsPanelDisabled}\n settings={\n <Panel\n model={model}\n onChangeModel={this.updateModel}\n configuration={configuration}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n Settings: panelSettings,\n Properties: panelProperties,\n }}\n modal={\n <AlertDialog\n title={'Warning'}\n text={alertMaxChoicesMsg}\n open={isOpened}\n onClose={this.onAlertModalCancel}\n />\n }\n />\n }\n >\n {teacherInstructionsEnabled && (\n <InputContainer label={teacherInstructions.label} className={classes.inputContainer}>\n <EditableHtml\n className={classes.input}\n markup={model.teacherInstructions || ''}\n onChange={this.changeTeacherInstructions}\n imageSupport={imageSupport}\n error={teacherInstructionsError}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(teacherInstructions?.inputConfiguration, baseInputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.teacherInstructions) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.teacherInstructions) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {teacherInstructionsError && <div className={classes.errorText}>{teacherInstructionsError}</div>}\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer label={prompt.label} className={classes.inputContainer}>\n <EditableHtml\n className={classes.input}\n markup={model.prompt || ''}\n onChange={this.onPromptChanged}\n imageSupport={imageSupport}\n error={promptError}\n nonEmpty={false}\n disableUnderline\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(prompt?.inputConfiguration, baseInputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={maxImageWidth && maxImageWidth.prompt}\n maxImageHeight={maxImageHeight && maxImageHeight.prompt}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {promptError && <div className={classes.errorText}>{promptError}</div>}\n </InputContainer>\n )}\n\n <Categories\n imageSupport={imageSupport}\n uploadSoundSupport={uploadSoundSupport}\n model={model}\n categories={categories || []}\n onModelChanged={this.updateModel}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n configuration={configuration}\n defaultImageMaxWidth={defaultImageMaxWidth}\n defaultImageMaxHeight={defaultImageMaxHeight}\n mathMlOptions={mathMlOptions}\n />\n\n <Choices\n imageSupport={imageSupport}\n uploadSoundSupport={uploadSoundSupport}\n choices={choices}\n model={model}\n onModelChanged={this.updateModel}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n configuration={configuration}\n defaultImageMaxWidth={defaultImageMaxWidth}\n defaultImageMaxHeight={defaultImageMaxHeight}\n />\n\n {allowAlternateEnabled && (\n <Header\n className={classes.alternatesHeader}\n label=\"Alternate Responses\"\n buttonLabel=\"ADD AN ALTERNATE RESPONSE\"\n onAdd={this.onAddAlternateResponse}\n />\n )}\n {allowAlternateEnabled &&\n alternateResponses.map((categoriesList, index) => {\n return (\n <React.Fragment key={index}>\n <Header\n className={classes.alternatesHeader}\n variant={'subtitle1'}\n label=\"Alternate Response\"\n buttonLabel=\"REMOVE ALTERNATE RESPONSE\"\n onAdd={() => this.onRemoveAlternateResponse(index)}\n />\n <AlternateResponses\n altIndex={index}\n imageSupport={imageSupport}\n model={model}\n configuration={configuration}\n categories={categoriesList}\n onModelChanged={this.updateModel}\n uploadSoundSupport={uploadSoundSupport}\n mathMlOptions={mathMlOptions}\n />\n </React.Fragment>\n );\n })}\n\n {rationaleEnabled && (\n <InputContainer label={rationale.label} className={classes.inputContainer}>\n <EditableHtml\n className={classes.input}\n markup={model.rationale || ''}\n onChange={this.changeRationale}\n imageSupport={imageSupport}\n error={rationaleError}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(prompt?.inputConfiguration, baseInputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.rationale) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.rationale) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {rationaleError && <div className={classes.errorText}>{rationaleError}</div>}\n </InputContainer>\n )}\n\n {feedbackEnabled && (\n <FeedbackConfig feedback={model.feedback} onChange={this.changeFeedback} toolbarOpts={toolbarOpts} />\n )}\n </layout.ConfigLayout>\n </IdProvider>\n );\n }\n}\n\nconst styles = (theme) => ({\n alternatesHeader: {\n marginBottom: theme.spacing.unit * 2,\n },\n text: {\n paddingTop: theme.spacing.unit * 2,\n paddingBottom: theme.spacing.unit * 2,\n },\n inputContainer: {\n width: '100%',\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n title: {\n marginBottom: theme.spacing.unit * 4,\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing.unit,\n },\n});\n\nexport default withDragContext(withStyles(styles)(Design));\n"],"file":"index.js"}
|
|
@@ -29,7 +29,7 @@ var _styles = require("@material-ui/core/styles");
|
|
|
29
29
|
|
|
30
30
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
31
31
|
|
|
32
|
-
var _editableHtml = require("@pie-lib/
|
|
32
|
+
var _editableHtml = _interopRequireDefault(require("@pie-lib/editable-html"));
|
|
33
33
|
|
|
34
34
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
35
35
|
|
|
@@ -82,7 +82,7 @@ var InputHeader = /*#__PURE__*/function (_React$Component) {
|
|
|
82
82
|
baseInputConfiguration = configuration.baseInputConfiguration;
|
|
83
83
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
84
84
|
className: (0, _classnames["default"])(classes.inputHeader, className)
|
|
85
|
-
}, /*#__PURE__*/_react["default"].createElement(_editableHtml
|
|
85
|
+
}, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
|
|
86
86
|
imageSupport: imageSupport,
|
|
87
87
|
disabled: disabled,
|
|
88
88
|
ref: function ref(_ref) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/design/input-header.jsx"],"names":["InputHeader","props","focusedEl","index","inputRef","focus","onChange","configuration","label","classes","className","deleteFocusedEl","disabled","imageSupport","toolbarOpts","spellCheck","error","maxImageWidth","maxImageHeight","uploadSoundSupport","mathMlOptions","headers","baseInputConfiguration","inputHeader","ref","editor","inputConfiguration","language","React","Component","PropTypes","object","isRequired","string","func","bool","number","onDelete","shape","add","styles","theme","flex","paddingBottom","spacing","unit","maxWidth","iconButtonRoot","width","height","display","justifyContent"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;IAEaA,W;;;;;AA6BX,uBAAYC,KAAZ,EAAmB;AAAA;AAAA,6BACXA,KADW;AAElB;;;;WAED,6BAAoB;AAClB,wBAA6B,KAAKA,KAAlC;AAAA,UAAQC,SAAR,eAAQA,SAAR;AAAA,UAAmBC,KAAnB,eAAmBA,KAAnB;;AACA,UAAID,SAAS,IAAIC,KAAb,IAAsBD,SAAS,KAAKC,KAAxC,EAA+C;AAC7C,aAAKC,QAAL,CAAcC,KAAd,CAAoB,KAApB,EAA2B,IAA3B,EAAiC,IAAjC;AACD;AACF;;;WAED,kBAAS;AAAA;;AACP,yBAgBI,KAAKJ,KAhBT;AAAA,UACEK,QADF,gBACEA,QADF;AAAA,UAEEC,aAFF,gBAEEA,aAFF;AAAA,UAGEC,KAHF,gBAGEA,KAHF;AAAA,UAIEC,OAJF,gBAIEA,OAJF;AAAA,UAKEC,SALF,gBAKEA,SALF;AAAA,UAMEC,eANF,gBAMEA,eANF;AAAA,UAOEC,QAPF,gBAOEA,QAPF;AAAA,UAQEC,YARF,gBAQEA,YARF;AAAA,UASEC,WATF,gBASEA,WATF;AAAA,UAUEC,UAVF,gBAUEA,UAVF;AAAA,UAWEC,KAXF,gBAWEA,KAXF;AAAA,UAYEC,aAZF,gBAYEA,aAZF;AAAA,UAaEC,cAbF,gBAaEA,cAbF;AAAA,UAcEC,kBAdF,gBAcEA,kBAdF;AAAA,+CAeEC,aAfF;AAAA,UAeEA,aAfF,sCAekB,EAflB;AAkBA,UAAQC,OAAR,GAA4Cd,aAA5C,CAAQc,OAAR;AAAA,UAAiBC,sBAAjB,GAA4Cf,aAA5C,CAAiBe,sBAAjB;AAEA,0BACE;AAAK,QAAA,SAAS,EAAE,4BAAWb,OAAO,CAACc,WAAnB,EAAgCb,SAAhC;AAAhB,sBACE,gCAAC,
|
|
1
|
+
{"version":3,"sources":["../../src/design/input-header.jsx"],"names":["InputHeader","props","focusedEl","index","inputRef","focus","onChange","configuration","label","classes","className","deleteFocusedEl","disabled","imageSupport","toolbarOpts","spellCheck","error","maxImageWidth","maxImageHeight","uploadSoundSupport","mathMlOptions","headers","baseInputConfiguration","inputHeader","ref","editor","inputConfiguration","language","React","Component","PropTypes","object","isRequired","string","func","bool","number","onDelete","shape","add","styles","theme","flex","paddingBottom","spacing","unit","maxWidth","iconButtonRoot","width","height","display","justifyContent"],"mappings":"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","sourcesContent":["import { getPluginProps } from './utils';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport EditableHtml from '@pie-lib/editable-html';\n\nexport class InputHeader extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n configuration: PropTypes.object.isRequired,\n deleteFocusedEl: PropTypes.func,\n disabled: PropTypes.bool,\n focusedEl: PropTypes.number,\n index: PropTypes.number,\n label: PropTypes.string,\n maxImageWidth: PropTypes.object,\n maxImageHeight: PropTypes.object,\n onChange: PropTypes.func,\n onDelete: PropTypes.func,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n toolbarOpts: PropTypes.object,\n error: PropTypes.string,\n spellCheck: PropTypes.bool,\n };\n\n static defaultProps = {};\n\n constructor(props) {\n super(props);\n }\n\n componentDidMount() {\n const { focusedEl, index } = this.props;\n if (focusedEl && index && focusedEl === index) {\n this.inputRef.focus('end', null, true);\n }\n }\n\n render() {\n const {\n onChange,\n configuration,\n label,\n classes,\n className,\n deleteFocusedEl,\n disabled,\n imageSupport,\n toolbarOpts,\n spellCheck,\n error,\n maxImageWidth,\n maxImageHeight,\n uploadSoundSupport,\n mathMlOptions = {},\n } = this.props;\n\n const { headers, baseInputConfiguration } = configuration;\n\n return (\n <div className={classNames(classes.inputHeader, className)}>\n <EditableHtml\n imageSupport={imageSupport}\n disabled={disabled}\n ref={(ref) => (this.inputRef = ref)}\n autoWidthToolbar\n label={'label'}\n markup={label}\n onChange={onChange}\n className={classes.editor}\n pluginProps={getPluginProps(headers?.inputConfiguration, baseInputConfiguration)}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n error={error}\n maxImageWidth={maxImageWidth}\n maxImageHeight={maxImageHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n onDone={() => {\n deleteFocusedEl && deleteFocusedEl();\n }}\n mathMlOptions={mathMlOptions}\n />\n </div>\n );\n }\n}\nconst styles = (theme) => ({\n editor: {\n flex: '1',\n paddingBottom: theme.spacing.unit,\n maxWidth: '100%',\n },\n iconButtonRoot: {\n width: 'auto',\n height: 'auto',\n },\n inputHeader: {\n display: 'flex',\n justifyContent: 'space-between',\n },\n});\nexport default withStyles(styles)(InputHeader);\n"],"file":"input-header.js"}
|
package/configure/lib/index.js
CHANGED
|
@@ -29,7 +29,7 @@ var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
|
29
29
|
|
|
30
30
|
var _pieConfigureEvents = require("@pie-framework/pie-configure-events");
|
|
31
31
|
|
|
32
|
-
var _mathRendering = require("@pie-lib/
|
|
32
|
+
var _mathRendering = require("@pie-lib/math-rendering");
|
|
33
33
|
|
|
34
34
|
var _main = _interopRequireDefault(require("./main"));
|
|
35
35
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.js"],"names":["CategorizeConfigure","_model","createDefaultModel","_configuration","defaults","configuration","m","choices","length","maxAnswerChoices","console","warn","render","c","newConfiguration","language","enabled","languageChoices","options","value","settings","find","option","push","label","dispatchEvent","ModelUpdatedEvent","handler","InsertImageEvent","src","done","DeleteImageEvent","InsertSoundEvent","DeleteSoundEvent","el","React","createElement","Main","model","onModelChanged","bind","onConfigurationChanged","imageSupport","add","insertImage","onDeleteImage","uploadSoundSupport","insertSound","onDeleteSound","ReactDOM","HTMLElement","correctResponse","mappedCorrectResponse","map","cr","alternateResponses","response","allowAlternateEnabled"],"mappings":"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","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport {\n ModelUpdatedEvent,\n DeleteImageEvent,\n InsertImageEvent,\n InsertSoundEvent,\n DeleteSoundEvent,\n} from '@pie-framework/pie-configure-events';\nimport { renderMath } from '@pie-lib/
|
|
1
|
+
{"version":3,"sources":["../src/index.js"],"names":["CategorizeConfigure","_model","createDefaultModel","_configuration","defaults","configuration","m","choices","length","maxAnswerChoices","console","warn","render","c","newConfiguration","language","enabled","languageChoices","options","value","settings","find","option","push","label","dispatchEvent","ModelUpdatedEvent","handler","InsertImageEvent","src","done","DeleteImageEvent","InsertSoundEvent","DeleteSoundEvent","el","React","createElement","Main","model","onModelChanged","bind","onConfigurationChanged","imageSupport","add","insertImage","onDeleteImage","uploadSoundSupport","insertSound","onDeleteSound","ReactDOM","HTMLElement","correctResponse","mappedCorrectResponse","map","cr","alternateResponses","response","allowAlternateEnabled"],"mappings":"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","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport {\n ModelUpdatedEvent,\n DeleteImageEvent,\n InsertImageEvent,\n InsertSoundEvent,\n DeleteSoundEvent,\n} from '@pie-framework/pie-configure-events';\nimport { renderMath } from '@pie-lib/math-rendering';\n\nimport Main from './main';\n\nimport defaults from './defaults';\n\nexport default class CategorizeConfigure extends HTMLElement {\n static createDefaultModel = (model = {}) => ({\n ...defaults.model,\n ...model,\n });\n\n // PD-2960: make sure we don't have alternates in model or possibility to add them (temporary solution)\n // this function is used in controller, too\n static disableAlternateResponses = (m) => {\n let { correctResponse } = m || {};\n correctResponse = correctResponse || [];\n const mappedCorrectResponse = correctResponse.map((cr) => {\n const { alternateResponses, ...response } = cr;\n return response;\n });\n return {\n ...m,\n correctResponse: mappedCorrectResponse,\n allowAlternateEnabled: false,\n };\n };\n\n constructor() {\n super();\n this._model = CategorizeConfigure.createDefaultModel();\n this._configuration = defaults.configuration;\n }\n\n set model(m) {\n this._model = CategorizeConfigure.createDefaultModel(m);\n\n if (m.choices && m.choices.length >= m.maxAnswerChoices) {\n this._model.maxAnswerChoices = m.choices.length;\n console.warn(\"Max Answer Choices can't be less than choices length!\");\n }\n\n this.render();\n }\n\n set configuration(c) {\n const newConfiguration = {\n ...defaults.configuration,\n ...c,\n };\n\n this._configuration = newConfiguration;\n\n // if language:enabled is true, then the corresponding default item model should include a language value;\n // if it is false, then the language field should be omitted from the item model.\n // if a default item model includes a language value (e.g., en_US) and the corresponding authoring view settings have language:settings = true,\n // then (a) language:enabled should also be true, and (b) that default language value should be represented in languageChoices[] (as a key).\n if (newConfiguration?.language?.enabled) {\n if (newConfiguration?.languageChoices?.options?.length) {\n this._model.language = newConfiguration?.languageChoices.options[0].value;\n }\n } else if (newConfiguration.language.settings && this._model.language) {\n this._configuration.language.enabled = true;\n\n if (!this._configuration.languageChoices.options || !this._configuration.languageChoices.options.length) {\n this._configuration.languageChoices.options = [];\n }\n\n // check if the language is already included in the languageChoices.options array\n // and if not, then add it.\n if (!this._configuration.languageChoices.options.find((option) => option.value === this._model.language)) {\n this._configuration.languageChoices.options.push({\n value: this._model.language,\n label: this._model.language,\n });\n }\n } else {\n delete this._model.language;\n }\n\n this.render();\n }\n\n onModelChanged(m) {\n this._model = m;\n\n this.render();\n this.dispatchEvent(new ModelUpdatedEvent(this._model, false));\n }\n\n onConfigurationChanged(c) {\n this._configuration = c;\n this.render();\n }\n\n connectedCallback() {\n this.render();\n }\n\n /**\n *\n * @param {done, progress, file} handler\n */\n insertImage(handler) {\n this.dispatchEvent(new InsertImageEvent(handler));\n }\n\n onDeleteImage(src, done) {\n this.dispatchEvent(new DeleteImageEvent(src, done));\n }\n\n insertSound(handler) {\n this.dispatchEvent(new InsertSoundEvent(handler));\n }\n\n onDeleteSound(src, done) {\n this.dispatchEvent(new DeleteSoundEvent(src, done));\n }\n\n render() {\n const el = React.createElement(Main, {\n model: this._model,\n configuration: this._configuration,\n onModelChanged: this.onModelChanged.bind(this),\n onConfigurationChanged: this.onConfigurationChanged.bind(this),\n imageSupport: {\n add: this.insertImage.bind(this),\n delete: this.onDeleteImage.bind(this),\n },\n uploadSoundSupport: {\n add: this.insertSound.bind(this),\n delete: this.onDeleteSound.bind(this),\n },\n });\n\n ReactDOM.render(el, this, () => {\n renderMath(this);\n });\n }\n}\n"],"file":"index.js"}
|
package/configure/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"private": true,
|
|
4
4
|
"main": "lib/index.js",
|
|
5
5
|
"module": "src/index.js",
|
|
6
|
-
"version": "8.7.
|
|
6
|
+
"version": "8.7.2",
|
|
7
7
|
"description": "",
|
|
8
8
|
"scripts": {},
|
|
9
9
|
"author": "pie framework developers",
|
|
@@ -12,7 +12,13 @@
|
|
|
12
12
|
"@material-ui/core": "^3.9.2",
|
|
13
13
|
"@material-ui/icons": "^3.0.1",
|
|
14
14
|
"@pie-framework/pie-configure-events": "^1.3.0",
|
|
15
|
-
"@pie-lib/
|
|
15
|
+
"@pie-lib/editable-html": "^11.10.0",
|
|
16
|
+
"@pie-lib/math-rendering": "^3.11.0",
|
|
17
|
+
"@pie-lib/categorize": "^0.17.0",
|
|
18
|
+
"@pie-lib/drag": "^2.11.0",
|
|
19
|
+
"@pie-lib/render-ui": "^4.24.0",
|
|
20
|
+
"@pie-lib/config-ui": "^11.18.0",
|
|
21
|
+
"@pie-lib/translator": "^2.12.0",
|
|
16
22
|
"classnames": "^2.2.5",
|
|
17
23
|
"debug": "^3.1.0",
|
|
18
24
|
"lodash": "^4.17.15",
|
package/controller/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,29 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [7.9.2](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize-controller@7.9.1...@pie-element/categorize-controller@7.9.2) (2025-07-25)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* refactor PD-5132, update pie-lib/pie-toolbox PD-3797 ([7434408](https://github.com/pie-framework/pie-elements/commit/7434408416a883fd680eec13fe1109711fd7e6b5))
|
|
12
|
+
* update pie-lib/pie-toolbox PD-4885, PD-5131 ([4b9859c](https://github.com/pie-framework/pie-elements/commit/4b9859c919a1a7cc8e29d6168a91cd1f7d1aafd1))
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
## [7.9.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize-controller@7.9.0...@pie-element/categorize-controller@7.9.1) (2025-07-22)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
### Bug Fixes
|
|
22
|
+
|
|
23
|
+
* update pie-toolbox PD-4885 ([a6d439e](https://github.com/pie-framework/pie-elements/commit/a6d439e49a0082f3d5e8bf46cc73c69d1d0ae311))
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
6
29
|
# [7.9.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize-controller@7.8.10...@pie-element/categorize-controller@7.9.0) (2025-07-18)
|
|
7
30
|
|
|
8
31
|
|
package/controller/lib/index.js
CHANGED
|
@@ -24,13 +24,13 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
|
|
|
24
24
|
|
|
25
25
|
var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
|
|
26
26
|
|
|
27
|
-
var _categorize = require("@pie-lib/
|
|
27
|
+
var _categorize = require("@pie-lib/categorize");
|
|
28
28
|
|
|
29
|
-
var _feedback = require("@pie-lib/
|
|
29
|
+
var _feedback = require("@pie-lib/feedback");
|
|
30
30
|
|
|
31
|
-
var _controllerUtils = require("@pie-lib/
|
|
31
|
+
var _controllerUtils = require("@pie-lib/controller-utils");
|
|
32
32
|
|
|
33
|
-
var _translator = _interopRequireDefault(require("@pie-lib/
|
|
33
|
+
var _translator = _interopRequireDefault(require("@pie-lib/translator"));
|
|
34
34
|
|
|
35
35
|
var _defaults = _interopRequireDefault(require("./defaults"));
|
|
36
36
|
|