@pie-element/select-text 7.9.6-next.45 → 7.9.6-next.71

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.
@@ -176,6 +176,8 @@ var Design = /*#__PURE__*/function (_React$Component) {
176
176
  var _ref = configuration || {},
177
177
  _ref$correctAnswer = _ref.correctAnswer,
178
178
  correctAnswer = _ref$correctAnswer === void 0 ? {} : _ref$correctAnswer,
179
+ _ref$contentDimension = _ref.contentDimensions,
180
+ contentDimensions = _ref$contentDimension === void 0 ? {} : _ref$contentDimension,
179
181
  _ref$feedback = _ref.feedback,
180
182
  feedback = _ref$feedback === void 0 ? {} : _ref$feedback,
181
183
  _ref$highlightChoices = _ref.highlightChoices,
@@ -249,6 +251,7 @@ var Design = /*#__PURE__*/function (_React$Component) {
249
251
  rubricEnabled: (withRubric === null || withRubric === void 0 ? void 0 : withRubric.settings) && toggle(withRubric === null || withRubric === void 0 ? void 0 : withRubric.label)
250
252
  };
251
253
  return /*#__PURE__*/_react["default"].createElement(_configUi.layout.ConfigLayout, {
254
+ dimensions: contentDimensions,
252
255
  hideSettings: settingsPanelDisabled,
253
256
  settings: /*#__PURE__*/_react["default"].createElement(Panel, {
254
257
  model: model,
@@ -396,7 +399,8 @@ exports.Design = Design;
396
399
  imageSupport: _propTypes["default"].shape({
397
400
  add: _propTypes["default"].func.isRequired,
398
401
  "delete": _propTypes["default"].func.isRequired
399
- })
402
+ }),
403
+ uploadSoundSupport: _propTypes["default"].object
400
404
  });
401
405
  (0, _defineProperty2["default"])(Design, "defaultProps", {});
402
406
 
@@ -417,6 +421,7 @@ var _default = (0, _styles.withStyles)(function (theme) {
417
421
  marginBottom: theme.spacing.unit
418
422
  },
419
423
  chip: {
424
+ marginTop: theme.spacing.unit / 2,
420
425
  marginRight: theme.spacing.unit * 2
421
426
  },
422
427
  input: {
@@ -439,11 +444,12 @@ var _default = (0, _styles.withStyles)(function (theme) {
439
444
  tokensDetails: {
440
445
  display: 'flex',
441
446
  alignItems: 'center',
447
+ flexWrap: 'wrap',
442
448
  marginBottom: theme.spacing.unit * 2.5
443
449
  },
444
450
  numberField: {
445
451
  width: '180px',
446
- margin: '0 auto'
452
+ margin: "".concat(theme.spacing.unit / 2, "px auto 0")
447
453
  },
448
454
  tooltip: {
449
455
  fontSize: theme.typography.fontSize - 2,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/design.jsx"],"names":["Panel","settings","toggle","radio","log","Design","props","val","apply","u","text","tokens","event","updateText","target","value","mode","correctTokenCount","filter","t","correct","length","max","isFinite","maxSelections","Math","fn","onModelChanged","model","update","feedback","partialScoring","prompt","teacherInstructions","rationale","state","nProps","setState","textValue","classes","configuration","imageSupport","onConfigurationChanged","uploadSoundSupport","correctAnswer","highlightChoices","selectionCount","selections","settingsPanelDisabled","scoringType","spellCheck","studentInstructions","maxImageWidth","maxImageHeight","withRubric","errors","feedbackEnabled","promptEnabled","rationaleEnabled","spellCheckEnabled","teacherInstructionsEnabled","toolbarEditorPosition","tokensError","selectionsError","validationMessage","defaultImageMaxWidth","defaultImageMaxHeight","tokensModel","toolbarOpts","position","panelSettings","label","panelProperties","studentInstructionsEnabled","rubricEnabled","Settings","Properties","promptHolder","onTeacherInstructionsChanged","language","onPromptChanged","input","changeText","tokenizerContainer","tooltip","left","top","tokenizer","changeTokens","errorText","tokensDetails","chip","changeMaxSelections","numberField","onRationaleChanged","changeFeedback","React","Component","PropTypes","object","isRequired","func","shape","add","theme","paddingRight","marginRight","bottom","right","height","content","backgroundColor","palette","primary","main","marginBottom","spacing","unit","width","marginTop","mainOpts","justifyContent","display","alignItems","paddingTop","margin","fontSize","typography","whiteSpace","maxWidth","color","error","paddingBottom"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport TextField from '@material-ui/core/TextField';\nimport { withStyles } from '@material-ui/core/styles';\nimport cloneDeep from 'lodash/cloneDeep';\nimport debounce from 'lodash/debounce';\nimport { Tokenizer } from '@pie-lib/text-select';\nimport { InputContainer, NumberTextField, FeedbackConfig, settings, layout } from '@pie-lib/config-ui';\nimport Chip from '@material-ui/core/Chip';\nimport Info from '@material-ui/icons/Info';\nimport debug from 'debug';\nimport EditableHtml from '@pie-lib/editable-html';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport { generateValidationMessage } from './utils';\n\nconst { Panel, toggle, radio } = settings;\n\nconst log = debug('@pie-element:select-text:configure');\n\nexport class Design extends React.Component {\n static propTypes = {\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n onModelChanged: PropTypes.func.isRequired,\n onConfigurationChanged: PropTypes.func.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n };\n\n static defaultProps = {};\n\n constructor(props) {\n super(props);\n\n const { model } = this.props;\n\n this.state = {\n text: (model && model.text) || '',\n };\n }\n\n UNSAFE_componentWillReceiveProps(nProps) {\n const { model } = nProps;\n\n if (model && model.text) {\n this.setState({\n text: model.text,\n });\n }\n }\n\n updateText = debounce((val) => {\n this.apply((u) => {\n u.text = val;\n u.tokens = [];\n });\n }, 200);\n\n changeText = (event) => this.updateText(event.target.value);\n\n changeTokens = (tokens, mode) => {\n this.apply((u) => {\n u.tokens = tokens;\n u.mode = mode;\n\n const correctTokenCount = tokens.filter((t) => t.correct).length;\n const max = isFinite(u.maxSelections) ? u.maxSelections : 0;\n\n u.maxSelections = Math.max(max, correctTokenCount);\n });\n };\n\n changeMaxSelections = (event, max) => {\n this.apply((u) => (u.maxSelections = max));\n };\n\n apply = (fn) => {\n const { onModelChanged, model } = this.props;\n const update = cloneDeep(model);\n\n fn(update);\n onModelChanged(update);\n };\n\n changeFeedback = (feedback) => {\n this.apply((u) => (u.feedback = feedback));\n };\n\n changePartialScoring = (partialScoring) => {\n const { onModelChanged, model } = this.props;\n const update = cloneDeep(model);\n update.partialScoring = partialScoring;\n\n onModelChanged(update);\n };\n\n onPromptChanged = (prompt) => {\n const { onModelChanged, model } = this.props;\n const update = cloneDeep(model);\n\n update.prompt = prompt;\n onModelChanged(update);\n };\n\n onTeacherInstructionsChanged = (teacherInstructions) => {\n const { onModelChanged, model } = this.props;\n const update = cloneDeep(model);\n\n update.teacherInstructions = teacherInstructions;\n onModelChanged(update);\n };\n\n onRationaleChanged = (rationale) => {\n const { onModelChanged, model } = this.props;\n\n onModelChanged({ ...model, rationale });\n };\n\n render() {\n const { text: textValue } = this.state;\n const { classes, configuration, imageSupport, model, onConfigurationChanged, onModelChanged, uploadSoundSupport } =\n this.props;\n const {\n correctAnswer = {},\n feedback = {},\n highlightChoices = {},\n mode = {},\n partialScoring = {},\n prompt = {},\n rationale = {},\n selectionCount = {},\n selections = {},\n settingsPanelDisabled,\n scoringType = {},\n spellCheck = {},\n studentInstructions = {},\n teacherInstructions = {},\n text = {},\n tokens = {},\n maxImageWidth = {},\n maxImageHeight = {},\n withRubric = {},\n } = configuration || {};\n const {\n errors,\n feedbackEnabled,\n promptEnabled,\n rationaleEnabled,\n spellCheckEnabled,\n teacherInstructionsEnabled,\n toolbarEditorPosition,\n } = model || {};\n\n const { tokensError, selectionsError } = errors || {};\n const validationMessage = generateValidationMessage(configuration);\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n let { tokens: tokensModel } = model;\n tokensModel = tokensModel || [];\n\n const toolbarOpts = {\n position: toolbarEditorPosition === 'top' ? 'top' : 'bottom',\n };\n\n log('[render] maxSelections:', model.maxSelections);\n\n const panelSettings = {\n partialScoring: partialScoring.settings && toggle(partialScoring.label),\n highlightChoices: highlightChoices.settings && toggle(highlightChoices.label),\n feedbackEnabled: feedback.settings && toggle(feedback.label),\n };\n\n const panelProperties = {\n teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),\n studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),\n promptEnabled: prompt.settings && toggle(prompt.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 return (\n <layout.ConfigLayout\n hideSettings={settingsPanelDisabled}\n settings={\n <Panel\n model={model}\n configuration={configuration}\n onChangeModel={(model) => onModelChanged(model)}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n Settings: panelSettings,\n Properties: panelProperties,\n }}\n />\n }\n >\n {teacherInstructionsEnabled && (\n <InputContainer label={teacherInstructions.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.teacherInstructions || ''}\n onChange={this.onTeacherInstructionsChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\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 />\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer label={prompt.label || ''} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.prompt}\n onChange={this.onPromptChanged}\n imageSupport={imageSupport}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={defaultImageMaxWidth}\n maxImageHeight={defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </InputContainer>\n )}\n\n {text.settings && (\n <InputContainer label={text.label || ''} className={classes.promptHolder}>\n <TextField\n className={classes.input}\n multiline\n defaultValue={textValue}\n onChange={this.changeText}\n spellCheck={spellCheckEnabled}\n />\n </InputContainer>\n )}\n\n {tokens.settings && (\n <InputContainer label={tokens.label || ''} className={classes.tokenizerContainer}>\n <Tooltip\n classes={{ tooltip: classes.tooltip }}\n disableFocusListener\n disableTouchListener\n placement={'right'}\n title={validationMessage}\n >\n <Info fontSize={'small'} color={'primary'} style={{ position: 'absolute', left: '48px', top: '-3px' }} />\n </Tooltip>\n\n <Tokenizer\n className={classes.tokenizer}\n text={model.text}\n tokens={tokensModel}\n onChange={this.changeTokens}\n />\n </InputContainer>\n )}\n {tokensError && <div className={classes.errorText}>{tokensError}</div>}\n {selectionsError && <div className={classes.errorText}>{selectionsError}</div>}\n\n <div className={classes.tokensDetails}>\n {mode.settings && (\n <Chip label={`${mode.label}: ${model.mode ? model.mode : 'None'}`} className={classes.chip} />\n )}\n\n {selections.settings && (\n <Chip label={`${selections.label}: ${tokensModel.length}`} className={classes.chip} />\n )}\n\n {correctAnswer.settings && (\n <Chip\n label={`${correctAnswer.label}: ${tokensModel.filter((t) => t.correct).length}`}\n className={classes.chip}\n />\n )}\n\n {selectionCount.settings && (\n <NumberTextField\n min={tokensModel.filter((t) => t.correct).length || 0}\n label={`${selectionCount.label} (0:any)`}\n max={tokensModel.length}\n value={model.maxSelections}\n onChange={this.changeMaxSelections}\n className={classes.numberField}\n />\n )}\n </div>\n\n {rationaleEnabled && (\n <InputContainer label={rationale.label || ''} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.rationale || ''}\n onChange={this.onRationaleChanged}\n imageSupport={imageSupport}\n toolbarOpts={toolbarOpts}\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 />\n </InputContainer>\n )}\n\n {feedbackEnabled && (\n <FeedbackConfig feedback={model.feedback} onChange={this.changeFeedback} toolbarOpts={toolbarOpts} />\n )}\n </layout.ConfigLayout>\n );\n }\n}\n\nexport default withStyles((theme) => ({\n tokenizerContainer: {\n paddingRight: 0,\n marginRight: 0,\n '&:after': {\n position: 'absolute',\n bottom: 0,\n left: 0,\n right: 0,\n height: '1px',\n content: '\"\"',\n backgroundColor: theme.palette.primary.main,\n },\n marginBottom: theme.spacing.unit,\n },\n chip: {\n marginRight: theme.spacing.unit * 2,\n },\n input: {\n width: '100%',\n },\n tokenizer: {\n marginTop: theme.spacing.unit * 2,\n },\n mainOpts: {\n width: '100%',\n justifyContent: 'space-between',\n display: 'flex',\n alignItems: 'baseline',\n },\n promptHolder: {\n width: '100%',\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n tokensDetails: {\n display: 'flex',\n alignItems: 'center',\n marginBottom: theme.spacing.unit * 2.5,\n },\n numberField: {\n width: '180px',\n margin: '0 auto',\n },\n tooltip: {\n fontSize: theme.typography.fontSize - 2,\n whiteSpace: 'pre',\n maxWidth: '500px',\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingBottom: theme.spacing.unit,\n },\n}))(Design);\n"],"file":"design.js"}
1
+ {"version":3,"sources":["../src/design.jsx"],"names":["Panel","settings","toggle","radio","log","Design","props","val","apply","u","text","tokens","event","updateText","target","value","mode","correctTokenCount","filter","t","correct","length","max","isFinite","maxSelections","Math","fn","onModelChanged","model","update","feedback","partialScoring","prompt","teacherInstructions","rationale","state","nProps","setState","textValue","classes","configuration","imageSupport","onConfigurationChanged","uploadSoundSupport","correctAnswer","contentDimensions","highlightChoices","selectionCount","selections","settingsPanelDisabled","scoringType","spellCheck","studentInstructions","maxImageWidth","maxImageHeight","withRubric","errors","feedbackEnabled","promptEnabled","rationaleEnabled","spellCheckEnabled","teacherInstructionsEnabled","toolbarEditorPosition","tokensError","selectionsError","validationMessage","defaultImageMaxWidth","defaultImageMaxHeight","tokensModel","toolbarOpts","position","panelSettings","label","panelProperties","studentInstructionsEnabled","rubricEnabled","Settings","Properties","promptHolder","onTeacherInstructionsChanged","language","onPromptChanged","input","changeText","tokenizerContainer","tooltip","left","top","tokenizer","changeTokens","errorText","tokensDetails","chip","changeMaxSelections","numberField","onRationaleChanged","changeFeedback","React","Component","PropTypes","object","isRequired","func","shape","add","theme","paddingRight","marginRight","bottom","right","height","content","backgroundColor","palette","primary","main","marginBottom","spacing","unit","marginTop","width","mainOpts","justifyContent","display","alignItems","paddingTop","flexWrap","margin","fontSize","typography","whiteSpace","maxWidth","color","error","paddingBottom"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport TextField from '@material-ui/core/TextField';\nimport { withStyles } from '@material-ui/core/styles';\nimport cloneDeep from 'lodash/cloneDeep';\nimport debounce from 'lodash/debounce';\nimport { Tokenizer } from '@pie-lib/text-select';\nimport { InputContainer, NumberTextField, FeedbackConfig, settings, layout } from '@pie-lib/config-ui';\nimport Chip from '@material-ui/core/Chip';\nimport Info from '@material-ui/icons/Info';\nimport debug from 'debug';\nimport EditableHtml from '@pie-lib/editable-html';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport { generateValidationMessage } from './utils';\n\nconst { Panel, toggle, radio } = settings;\n\nconst log = debug('@pie-element:select-text:configure');\n\nexport class Design extends React.Component {\n static propTypes = {\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n onModelChanged: PropTypes.func.isRequired,\n onConfigurationChanged: PropTypes.func.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n uploadSoundSupport: PropTypes.object,\n };\n\n static defaultProps = {};\n\n constructor(props) {\n super(props);\n\n const { model } = this.props;\n\n this.state = {\n text: (model && model.text) || '',\n };\n }\n\n UNSAFE_componentWillReceiveProps(nProps) {\n const { model } = nProps;\n\n if (model && model.text) {\n this.setState({\n text: model.text,\n });\n }\n }\n\n updateText = debounce((val) => {\n this.apply((u) => {\n u.text = val;\n u.tokens = [];\n });\n }, 200);\n\n changeText = (event) => this.updateText(event.target.value);\n\n changeTokens = (tokens, mode) => {\n this.apply((u) => {\n u.tokens = tokens;\n u.mode = mode;\n\n const correctTokenCount = tokens.filter((t) => t.correct).length;\n const max = isFinite(u.maxSelections) ? u.maxSelections : 0;\n\n u.maxSelections = Math.max(max, correctTokenCount);\n });\n };\n\n changeMaxSelections = (event, max) => {\n this.apply((u) => (u.maxSelections = max));\n };\n\n apply = (fn) => {\n const { onModelChanged, model } = this.props;\n const update = cloneDeep(model);\n\n fn(update);\n onModelChanged(update);\n };\n\n changeFeedback = (feedback) => {\n this.apply((u) => (u.feedback = feedback));\n };\n\n changePartialScoring = (partialScoring) => {\n const { onModelChanged, model } = this.props;\n const update = cloneDeep(model);\n update.partialScoring = partialScoring;\n\n onModelChanged(update);\n };\n\n onPromptChanged = (prompt) => {\n const { onModelChanged, model } = this.props;\n const update = cloneDeep(model);\n\n update.prompt = prompt;\n onModelChanged(update);\n };\n\n onTeacherInstructionsChanged = (teacherInstructions) => {\n const { onModelChanged, model } = this.props;\n const update = cloneDeep(model);\n\n update.teacherInstructions = teacherInstructions;\n onModelChanged(update);\n };\n\n onRationaleChanged = (rationale) => {\n const { onModelChanged, model } = this.props;\n\n onModelChanged({ ...model, rationale });\n };\n\n render() {\n const { text: textValue } = this.state;\n const { classes, configuration, imageSupport, model, onConfigurationChanged, onModelChanged, uploadSoundSupport } =\n this.props;\n const {\n correctAnswer = {},\n contentDimensions = {},\n feedback = {},\n highlightChoices = {},\n mode = {},\n partialScoring = {},\n prompt = {},\n rationale = {},\n selectionCount = {},\n selections = {},\n settingsPanelDisabled,\n scoringType = {},\n spellCheck = {},\n studentInstructions = {},\n teacherInstructions = {},\n text = {},\n tokens = {},\n maxImageWidth = {},\n maxImageHeight = {},\n withRubric = {},\n } = configuration || {};\n const {\n errors,\n feedbackEnabled,\n promptEnabled,\n rationaleEnabled,\n spellCheckEnabled,\n teacherInstructionsEnabled,\n toolbarEditorPosition,\n } = model || {};\n\n const { tokensError, selectionsError } = errors || {};\n const validationMessage = generateValidationMessage(configuration);\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n let { tokens: tokensModel } = model;\n tokensModel = tokensModel || [];\n\n const toolbarOpts = {\n position: toolbarEditorPosition === 'top' ? 'top' : 'bottom',\n };\n\n log('[render] maxSelections:', model.maxSelections);\n\n const panelSettings = {\n partialScoring: partialScoring.settings && toggle(partialScoring.label),\n highlightChoices: highlightChoices.settings && toggle(highlightChoices.label),\n feedbackEnabled: feedback.settings && toggle(feedback.label),\n };\n\n const panelProperties = {\n teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),\n studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),\n promptEnabled: prompt.settings && toggle(prompt.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 return (\n <layout.ConfigLayout\n dimensions={contentDimensions}\n hideSettings={settingsPanelDisabled}\n settings={\n <Panel\n model={model}\n configuration={configuration}\n onChangeModel={(model) => onModelChanged(model)}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n Settings: panelSettings,\n Properties: panelProperties,\n }}\n />\n }\n >\n {teacherInstructionsEnabled && (\n <InputContainer label={teacherInstructions.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.teacherInstructions || ''}\n onChange={this.onTeacherInstructionsChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\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 />\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer label={prompt.label || ''} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.prompt}\n onChange={this.onPromptChanged}\n imageSupport={imageSupport}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={defaultImageMaxWidth}\n maxImageHeight={defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </InputContainer>\n )}\n\n {text.settings && (\n <InputContainer label={text.label || ''} className={classes.promptHolder}>\n <TextField\n className={classes.input}\n multiline\n defaultValue={textValue}\n onChange={this.changeText}\n spellCheck={spellCheckEnabled}\n />\n </InputContainer>\n )}\n\n {tokens.settings && (\n <InputContainer label={tokens.label || ''} className={classes.tokenizerContainer}>\n <Tooltip\n classes={{ tooltip: classes.tooltip }}\n disableFocusListener\n disableTouchListener\n placement={'right'}\n title={validationMessage}\n >\n <Info fontSize={'small'} color={'primary'} style={{ position: 'absolute', left: '48px', top: '-3px' }} />\n </Tooltip>\n\n <Tokenizer\n className={classes.tokenizer}\n text={model.text}\n tokens={tokensModel}\n onChange={this.changeTokens}\n />\n </InputContainer>\n )}\n {tokensError && <div className={classes.errorText}>{tokensError}</div>}\n {selectionsError && <div className={classes.errorText}>{selectionsError}</div>}\n\n <div className={classes.tokensDetails}>\n {mode.settings && (\n <Chip label={`${mode.label}: ${model.mode ? model.mode : 'None'}`} className={classes.chip} />\n )}\n\n {selections.settings && (\n <Chip label={`${selections.label}: ${tokensModel.length}`} className={classes.chip} />\n )}\n\n {correctAnswer.settings && (\n <Chip\n label={`${correctAnswer.label}: ${tokensModel.filter((t) => t.correct).length}`}\n className={classes.chip}\n />\n )}\n\n {selectionCount.settings && (\n <NumberTextField\n min={tokensModel.filter((t) => t.correct).length || 0}\n label={`${selectionCount.label} (0:any)`}\n max={tokensModel.length}\n value={model.maxSelections}\n onChange={this.changeMaxSelections}\n className={classes.numberField}\n />\n )}\n </div>\n\n {rationaleEnabled && (\n <InputContainer label={rationale.label || ''} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.rationale || ''}\n onChange={this.onRationaleChanged}\n imageSupport={imageSupport}\n toolbarOpts={toolbarOpts}\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 />\n </InputContainer>\n )}\n\n {feedbackEnabled && (\n <FeedbackConfig feedback={model.feedback} onChange={this.changeFeedback} toolbarOpts={toolbarOpts} />\n )}\n </layout.ConfigLayout>\n );\n }\n}\n\nexport default withStyles((theme) => ({\n tokenizerContainer: {\n paddingRight: 0,\n marginRight: 0,\n '&:after': {\n position: 'absolute',\n bottom: 0,\n left: 0,\n right: 0,\n height: '1px',\n content: '\"\"',\n backgroundColor: theme.palette.primary.main,\n },\n marginBottom: theme.spacing.unit,\n },\n chip: {\n marginTop: theme.spacing.unit / 2,\n marginRight: theme.spacing.unit * 2,\n },\n input: {\n width: '100%',\n },\n tokenizer: {\n marginTop: theme.spacing.unit * 2,\n },\n mainOpts: {\n width: '100%',\n justifyContent: 'space-between',\n display: 'flex',\n alignItems: 'baseline',\n },\n promptHolder: {\n width: '100%',\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n tokensDetails: {\n display: 'flex',\n alignItems: 'center',\n flexWrap: 'wrap',\n marginBottom: theme.spacing.unit * 2.5,\n },\n numberField: {\n width: '180px',\n margin: `${theme.spacing.unit / 2}px auto 0`,\n },\n tooltip: {\n fontSize: theme.typography.fontSize - 2,\n whiteSpace: 'pre',\n maxWidth: '500px',\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingBottom: theme.spacing.unit,\n },\n}))(Design);\n"],"file":"design.js"}
@@ -11,8 +11,6 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
11
11
 
12
12
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
13
 
14
- var _react = _interopRequireDefault(require("react"));
15
-
16
14
  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; }
17
15
 
18
16
  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; }
@@ -45,7 +43,7 @@ var parseParagraphs = function parseParagraphs(dom) {
45
43
  var prepareText = function prepareText(text) {
46
44
  var txtDom = createElementFromHTML(text);
47
45
  var div = document.createElement('div');
48
- div.innerHTML = "<div separator='true'>".concat(txtDom.innerHTML, '</div>');
46
+ div.innerHTML = '<div separator=\'true\'>'.concat(txtDom.innerHTML, '</div>');
49
47
  txtDom = div;
50
48
  var allDomElements = Array.from(txtDom.querySelectorAll('*'));
51
49
 
@@ -109,7 +107,7 @@ var generateValidationMessage = function generateValidationMessage(config) {
109
107
  maxTokens = config.maxTokens,
110
108
  maxSelections = config.maxSelections;
111
109
  var tokensMessage = "\nThere should be at least ".concat(minTokens, " ") + (maxTokens ? "and at most ".concat(maxTokens, " ") : '') + 'tokens defined.';
112
- var selectionsMessage = "\nThere should be at least 1 " + (maxSelections ? "and at most ".concat(maxSelections, " ") : '') + 'token' + (maxSelections ? 's' : '') + ' selected.';
110
+ var selectionsMessage = '\nThere should be at least 1 ' + (maxSelections ? "and at most ".concat(maxSelections, " ") : '') + 'token' + (maxSelections ? 's' : '') + ' selected.';
113
111
  var message = 'Validation requirements:' + tokensMessage + selectionsMessage;
114
112
  return message;
115
113
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/utils.js"],"names":["createElementFromHTML","htmlString","arguments","length","undefined","div","document","createElement","innerHTML","trim","parseParagraph","paragraph","end","concat","parseParagraphs","dom","paragraphs","querySelectorAll","str","forEach","par","index","prepareText","text","txtDom","allDomElements","Array","from","generateModel","model","modelText","newTokens","tokens","reduce","acc","token","tokenText","slice","start","getStartIndex","newStartIndex","indexOf","lastToken","newStart","newEnd","oldStart","oldEnd","generateValidationMessage","config","minTokens","maxTokens","maxSelections","tokensMessage","selectionsMessage","message"],"mappings":"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","sourcesContent":["import React from 'react';\n\nvar createElementFromHTML = function createElementFromHTML() {\n var htmlString = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var div = document.createElement('div');\n div.innerHTML = htmlString.trim();\n return div;\n};\n\nvar parseParagraph = function parseParagraph(paragraph, end) {\n if (end) {\n return paragraph.innerHTML;\n }\n\n return ''.concat(paragraph.innerHTML, '\\n\\n');\n};\n\nvar parseParagraphs = function parseParagraphs(dom) {\n var paragraphs = dom.querySelectorAll('div[separator=true]'); // separate variable for easily debugging, if needed\n\n var str = '';\n paragraphs.forEach(function (par, index) {\n str += parseParagraph(par, index === paragraphs.length - 1);\n });\n return str || null;\n};\n\nvar prepareText = function prepareText(text) {\n var txtDom = createElementFromHTML(text);\n\n var div = document.createElement('div');\n div.innerHTML = \"<div separator='true'>\".concat(txtDom.innerHTML, '</div>');\n txtDom = div;\n\n var allDomElements = Array.from(txtDom.querySelectorAll('*'));\n\n if (allDomElements.length === 0) {\n return text;\n }\n\n return parseParagraphs(txtDom);\n};\n\nexport const generateModel = (model) => {\n if (!model) return model;\n\n // parsing\n const modelText = prepareText(model.text || '');\n\n const newTokens = (model.tokens || []).reduce((acc, token = {}) => {\n const tokenText = prepareText((model.text || '').slice(token.start, token.end));\n\n if (!tokenText) {\n return [...acc, token];\n }\n\n const getStartIndex = (start) => {\n let length = start;\n\n while (length >= 0) {\n let newStartIndex = modelText.slice(length).indexOf(tokenText);\n\n if (newStartIndex >= 0) {\n return newStartIndex + length;\n }\n\n length--;\n }\n\n return 0;\n };\n\n const lastToken = acc[acc.length - 1];\n const newStart = getStartIndex(lastToken ? lastToken.end : token.start);\n const newEnd = newStart + tokenText.length;\n\n return [\n ...acc,\n {\n ...token,\n text: tokenText,\n start: newStart,\n end: newEnd,\n // needed for getScore when tokens position is recalculated\n oldStart: token.start,\n oldEnd: token.end,\n },\n ];\n }, []);\n\n return {\n ...model,\n tokens: newTokens,\n text: modelText,\n };\n};\n\nexport const generateValidationMessage = (config) => {\n const { minTokens, maxTokens, maxSelections } = config;\n\n const tokensMessage =\n `\\nThere should be at least ${minTokens} ` + (maxTokens ? `and at most ${maxTokens} ` : '') + 'tokens defined.';\n\n const selectionsMessage =\n `\\nThere should be at least 1 ` +\n (maxSelections ? `and at most ${maxSelections} ` : '') +\n 'token' +\n (maxSelections ? 's' : '') +\n ' selected.';\n\n const message = 'Validation requirements:' + tokensMessage + selectionsMessage;\n\n return message;\n};\n"],"file":"utils.js"}
1
+ {"version":3,"sources":["../src/utils.js"],"names":["createElementFromHTML","htmlString","arguments","length","undefined","div","document","createElement","innerHTML","trim","parseParagraph","paragraph","end","concat","parseParagraphs","dom","paragraphs","querySelectorAll","str","forEach","par","index","prepareText","text","txtDom","allDomElements","Array","from","generateModel","model","modelText","newTokens","tokens","reduce","acc","token","tokenText","slice","start","getStartIndex","newStartIndex","indexOf","lastToken","newStart","newEnd","oldStart","oldEnd","generateValidationMessage","config","minTokens","maxTokens","maxSelections","tokensMessage","selectionsMessage","message"],"mappings":";;;;;;;;;;;;;;;;;AACA,IAAIA,qBAAqB,GAAG,SAASA,qBAAT,GAAiC;AAC3D,MAAIC,UAAU,GAAGC,SAAS,CAACC,MAAV,GAAmB,CAAnB,IAAwBD,SAAS,CAAC,CAAD,CAAT,KAAiBE,SAAzC,GAAqDF,SAAS,CAAC,CAAD,CAA9D,GAAoE,EAArF;AACA,MAAIG,GAAG,GAAGC,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAV;AACAF,EAAAA,GAAG,CAACG,SAAJ,GAAgBP,UAAU,CAACQ,IAAX,EAAhB;AACA,SAAOJ,GAAP;AACD,CALD;;AAOA,IAAIK,cAAc,GAAG,SAASA,cAAT,CAAwBC,SAAxB,EAAmCC,GAAnC,EAAwC;AAC3D,MAAIA,GAAJ,EAAS;AACP,WAAOD,SAAS,CAACH,SAAjB;AACD;;AAED,SAAO,GAAGK,MAAH,CAAUF,SAAS,CAACH,SAApB,EAA+B,MAA/B,CAAP;AACD,CAND;;AAQA,IAAIM,eAAe,GAAG,SAASA,eAAT,CAAyBC,GAAzB,EAA8B;AAClD,MAAIC,UAAU,GAAGD,GAAG,CAACE,gBAAJ,CAAqB,qBAArB,CAAjB,CADkD,CACY;;AAE9D,MAAIC,GAAG,GAAG,EAAV;AACAF,EAAAA,UAAU,CAACG,OAAX,CAAmB,UAAUC,GAAV,EAAeC,KAAf,EAAsB;AACvCH,IAAAA,GAAG,IAAIR,cAAc,CAACU,GAAD,EAAMC,KAAK,KAAKL,UAAU,CAACb,MAAX,GAAoB,CAApC,CAArB;AACD,GAFD;AAGA,SAAOe,GAAG,IAAI,IAAd;AACD,CARD;;AAUA,IAAII,WAAW,GAAG,SAASA,WAAT,CAAqBC,IAArB,EAA2B;AAC3C,MAAIC,MAAM,GAAGxB,qBAAqB,CAACuB,IAAD,CAAlC;AAEA,MAAIlB,GAAG,GAAGC,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAV;AACAF,EAAAA,GAAG,CAACG,SAAJ,GAAgB,2BAA2BK,MAA3B,CAAkCW,MAAM,CAAChB,SAAzC,EAAoD,QAApD,CAAhB;AACAgB,EAAAA,MAAM,GAAGnB,GAAT;AAEA,MAAIoB,cAAc,GAAGC,KAAK,CAACC,IAAN,CAAWH,MAAM,CAACP,gBAAP,CAAwB,GAAxB,CAAX,CAArB;;AAEA,MAAIQ,cAAc,CAACtB,MAAf,KAA0B,CAA9B,EAAiC;AAC/B,WAAOoB,IAAP;AACD;;AAED,SAAOT,eAAe,CAACU,MAAD,CAAtB;AACD,CAdD;;AAgBO,IAAMI,aAAa,GAAG,SAAhBA,aAAgB,CAACC,KAAD,EAAW;AACtC,MAAI,CAACA,KAAL,EAAY,OAAOA,KAAP,CAD0B,CAGtC;;AACA,MAAMC,SAAS,GAAGR,WAAW,CAACO,KAAK,CAACN,IAAN,IAAc,EAAf,CAA7B;AAEA,MAAMQ,SAAS,GAAG,CAACF,KAAK,CAACG,MAAN,IAAgB,EAAjB,EAAqBC,MAArB,CAA4B,UAACC,GAAD,EAAqB;AAAA,QAAfC,KAAe,uEAAP,EAAO;AACjE,QAAMC,SAAS,GAAGd,WAAW,CAAC,CAACO,KAAK,CAACN,IAAN,IAAc,EAAf,EAAmBc,KAAnB,CAAyBF,KAAK,CAACG,KAA/B,EAAsCH,KAAK,CAACvB,GAA5C,CAAD,CAA7B;;AAEA,QAAI,CAACwB,SAAL,EAAgB;AACd,2DAAWF,GAAX,IAAgBC,KAAhB;AACD;;AAED,QAAMI,aAAa,GAAG,SAAhBA,aAAgB,CAACD,KAAD,EAAW;AAC/B,UAAInC,MAAM,GAAGmC,KAAb;;AAEA,aAAOnC,MAAM,IAAI,CAAjB,EAAoB;AAClB,YAAIqC,aAAa,GAAGV,SAAS,CAACO,KAAV,CAAgBlC,MAAhB,EAAwBsC,OAAxB,CAAgCL,SAAhC,CAApB;;AAEA,YAAII,aAAa,IAAI,CAArB,EAAwB;AACtB,iBAAOA,aAAa,GAAGrC,MAAvB;AACD;;AAEDA,QAAAA,MAAM;AACP;;AAED,aAAO,CAAP;AACD,KAdD;;AAgBA,QAAMuC,SAAS,GAAGR,GAAG,CAACA,GAAG,CAAC/B,MAAJ,GAAa,CAAd,CAArB;AACA,QAAMwC,QAAQ,GAAGJ,aAAa,CAACG,SAAS,GAAGA,SAAS,CAAC9B,GAAb,GAAmBuB,KAAK,CAACG,KAAnC,CAA9B;AACA,QAAMM,MAAM,GAAGD,QAAQ,GAAGP,SAAS,CAACjC,MAApC;AAEA,yDACK+B,GADL,oCAGOC,KAHP;AAIIZ,MAAAA,IAAI,EAAEa,SAJV;AAKIE,MAAAA,KAAK,EAAEK,QALX;AAMI/B,MAAAA,GAAG,EAAEgC,MANT;AAOI;AACAC,MAAAA,QAAQ,EAAEV,KAAK,CAACG,KARpB;AASIQ,MAAAA,MAAM,EAAEX,KAAK,CAACvB;AATlB;AAYD,GAvCiB,EAuCf,EAvCe,CAAlB;AAyCA,yCACKiB,KADL;AAEEG,IAAAA,MAAM,EAAED,SAFV;AAGER,IAAAA,IAAI,EAAEO;AAHR;AAKD,CApDM;;;;AAsDA,IAAMiB,yBAAyB,GAAG,SAA5BA,yBAA4B,CAACC,MAAD,EAAY;AACnD,MAAQC,SAAR,GAAgDD,MAAhD,CAAQC,SAAR;AAAA,MAAmBC,SAAnB,GAAgDF,MAAhD,CAAmBE,SAAnB;AAAA,MAA8BC,aAA9B,GAAgDH,MAAhD,CAA8BG,aAA9B;AAEA,MAAMC,aAAa,GACjB,qCAA8BH,SAA9B,UAA8CC,SAAS,yBAAkBA,SAAlB,SAAiC,EAAxF,IAA8F,iBADhG;AAGA,MAAMG,iBAAiB,GACrB,mCACCF,aAAa,yBAAkBA,aAAlB,SAAqC,EADnD,IAEA,OAFA,IAGCA,aAAa,GAAG,GAAH,GAAS,EAHvB,IAIA,YALF;AAOA,MAAMG,OAAO,GAAG,6BAA6BF,aAA7B,GAA6CC,iBAA7D;AAEA,SAAOC,OAAP;AACD,CAhBM","sourcesContent":["\nvar createElementFromHTML = function createElementFromHTML() {\n var htmlString = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var div = document.createElement('div');\n div.innerHTML = htmlString.trim();\n return div;\n};\n\nvar parseParagraph = function parseParagraph(paragraph, end) {\n if (end) {\n return paragraph.innerHTML;\n }\n\n return ''.concat(paragraph.innerHTML, '\\n\\n');\n};\n\nvar parseParagraphs = function parseParagraphs(dom) {\n var paragraphs = dom.querySelectorAll('div[separator=true]'); // separate variable for easily debugging, if needed\n\n var str = '';\n paragraphs.forEach(function (par, index) {\n str += parseParagraph(par, index === paragraphs.length - 1);\n });\n return str || null;\n};\n\nvar prepareText = function prepareText(text) {\n var txtDom = createElementFromHTML(text);\n\n var div = document.createElement('div');\n div.innerHTML = '<div separator=\\'true\\'>'.concat(txtDom.innerHTML, '</div>');\n txtDom = div;\n\n var allDomElements = Array.from(txtDom.querySelectorAll('*'));\n\n if (allDomElements.length === 0) {\n return text;\n }\n\n return parseParagraphs(txtDom);\n};\n\nexport const generateModel = (model) => {\n if (!model) return model;\n\n // parsing\n const modelText = prepareText(model.text || '');\n\n const newTokens = (model.tokens || []).reduce((acc, token = {}) => {\n const tokenText = prepareText((model.text || '').slice(token.start, token.end));\n\n if (!tokenText) {\n return [...acc, token];\n }\n\n const getStartIndex = (start) => {\n let length = start;\n\n while (length >= 0) {\n let newStartIndex = modelText.slice(length).indexOf(tokenText);\n\n if (newStartIndex >= 0) {\n return newStartIndex + length;\n }\n\n length--;\n }\n\n return 0;\n };\n\n const lastToken = acc[acc.length - 1];\n const newStart = getStartIndex(lastToken ? lastToken.end : token.start);\n const newEnd = newStart + tokenText.length;\n\n return [\n ...acc,\n {\n ...token,\n text: tokenText,\n start: newStart,\n end: newEnd,\n // needed for getScore when tokens position is recalculated\n oldStart: token.start,\n oldEnd: token.end,\n },\n ];\n }, []);\n\n return {\n ...model,\n tokens: newTokens,\n text: modelText,\n };\n};\n\nexport const generateValidationMessage = (config) => {\n const { minTokens, maxTokens, maxSelections } = config;\n\n const tokensMessage =\n `\\nThere should be at least ${minTokens} ` + (maxTokens ? `and at most ${maxTokens} ` : '') + 'tokens defined.';\n\n const selectionsMessage =\n '\\nThere should be at least 1 ' +\n (maxSelections ? `and at most ${maxSelections} ` : '') +\n 'token' +\n (maxSelections ? 's' : '') +\n ' selected.';\n\n const message = 'Validation requirements:' + tokensMessage + selectionsMessage;\n\n return message;\n};\n"],"file":"utils.js"}
@@ -8,10 +8,10 @@
8
8
  "dependencies": {
9
9
  "@material-ui/core": "^3.9.2",
10
10
  "@pie-framework/pie-configure-events": "^1.3.0",
11
- "@pie-lib/config-ui": "^11.6.0",
12
- "@pie-lib/editable-html": "^9.5.19",
13
- "@pie-lib/scoring-config": "^3.6.21",
14
- "@pie-lib/text-select": "^1.9.19",
11
+ "@pie-lib/config-ui": "^11.6.1",
12
+ "@pie-lib/editable-html": "^9.5.20",
13
+ "@pie-lib/scoring-config": "^3.6.22",
14
+ "@pie-lib/text-select": "^1.9.20",
15
15
  "debug": "^3.1.0",
16
16
  "lodash": "^4.17.15",
17
17
  "prop-types": "^15.6.2",
@@ -8,7 +8,7 @@
8
8
  "dependencies": {
9
9
  "@pie-lib/controller-utils": "^0.2.42",
10
10
  "@pie-lib/feedback": "^0.4.42",
11
- "@pie-lib/text-select": "^1.9.19",
11
+ "@pie-lib/text-select": "^1.9.20",
12
12
  "debug": "^3.1.0",
13
13
  "lodash": "^4.17.15"
14
14
  },
@@ -317,6 +317,50 @@
317
317
  "type": "string",
318
318
  "title": "promptLabel"
319
319
  },
320
+ "contentDimensions": {
321
+ "description": "Indicates the dimensions configuration for the authoring container\nNote: Some items have a default minimum width because of their content, but if\nthe minWidth is lower than this, the overflow behavior will take care of that",
322
+ "default": ": {}",
323
+ "type": "object",
324
+ "properties": {
325
+ "maxHeight": {
326
+ "description": "Indicates the max height of the authoring container",
327
+ "default": "undefined",
328
+ "type": [
329
+ "string",
330
+ "number"
331
+ ],
332
+ "title": "maxHeight"
333
+ },
334
+ "maxWidth": {
335
+ "description": "Indicates the max width of the authoring container",
336
+ "default": "undefined",
337
+ "type": [
338
+ "string",
339
+ "number"
340
+ ],
341
+ "title": "maxWidth"
342
+ },
343
+ "minHeight": {
344
+ "description": "Indicates the min height of the authoring container",
345
+ "default": "undefined",
346
+ "type": [
347
+ "string",
348
+ "number"
349
+ ],
350
+ "title": "minHeight"
351
+ },
352
+ "minWidth": {
353
+ "description": "Indicates the min width of the authoring container",
354
+ "default": "undefined",
355
+ "type": [
356
+ "string",
357
+ "number"
358
+ ],
359
+ "title": "minWidth"
360
+ }
361
+ },
362
+ "title": "contentDimensions"
363
+ },
320
364
  "settingsPartialScoring": {
321
365
  "description": "Indicates whether the settings panel wil allow the author to modify settings for partial scoring",
322
366
  "default": true,
@@ -242,6 +242,40 @@ The label for the item stem/prompt field
242
242
 
243
243
  Default: `"Item Stemm"`
244
244
 
245
+ # `contentDimensions` (object)
246
+
247
+ Indicates the dimensions configuration for the authoring container
248
+ Note: Some items have a default minimum width because of their content, but if
249
+ the minWidth is lower than this, the overflow behavior will take care of that
250
+
251
+ Properties of the `contentDimensions` object:
252
+
253
+ ## `maxHeight` (string,number)
254
+
255
+ Indicates the max height of the authoring container
256
+
257
+ Default: `"undefined"`
258
+
259
+ ## `maxWidth` (string,number)
260
+
261
+ Indicates the max width of the authoring container
262
+
263
+ Default: `"undefined"`
264
+
265
+ ## `minHeight` (string,number)
266
+
267
+ Indicates the min height of the authoring container
268
+
269
+ Default: `"undefined"`
270
+
271
+ ## `minWidth` (string,number)
272
+
273
+ Indicates the min width of the authoring container
274
+
275
+ Default: `"undefined"`
276
+
277
+ Default: `": {}"`
278
+
245
279
  # `settingsPartialScoring` (boolean)
246
280
 
247
281
  Indicates whether the settings panel wil allow the author to modify settings for partial scoring
@@ -1,4 +1,4 @@
1
- const { model, mathSample, htmlSample, htmlAscii } = require('./generate');
1
+ const { model } = require('./generate');
2
2
 
3
3
  module.exports = {
4
4
  elements: {
@@ -1,11 +1,11 @@
1
1
  const tokens = () => [
2
2
  {
3
- text: "If 'tweren't for sight and sound and smell,",
3
+ text: 'If \'tweren\'t for sight and sound and smell,',
4
4
  start: 0,
5
5
  end: 43,
6
6
  },
7
7
  {
8
- text: "I'd like the city pretty well,",
8
+ text: 'I\'d like the city pretty well,',
9
9
  start: 44,
10
10
  end: 74,
11
11
  },
@@ -25,7 +25,7 @@ const tokens = () => [
25
25
  end: 176,
26
26
  },
27
27
  {
28
- text: "Just quit the city's din and dust,",
28
+ text: 'Just quit the city\'s din and dust,',
29
29
  start: 177,
30
30
  end: 211,
31
31
  },
@@ -41,9 +41,6 @@ const tokens = () => [
41
41
  },
42
42
  ];
43
43
 
44
- const mathSampleText =
45
- '<p><math xmlns="http://www.w3.org/1998/Math/MathML">\n <mstyle displaystyle="true">\n <mrow>\n <mo>(</mo>\n <mn>6</mn>\n <mi>x</mi>\n <mo>+</mo>\n <mn>2</mn>\n <mo>)</mo>\n </mrow>\n <mrow>\n <mo>(</mo>\n <mo>-</mo>\n <msup>\n <mi>x</mi>\n <mn>2</mn>\n </msup>\n <mo>+</mo>\n <mn>3</mn>\n <mi>x</mi>\n <mo>-</mo>\n <mn>1</mn>\n <mo>)</mo>\n </mrow>\n <mrow>\n <mo>(</mo>\n <msup>\n <mi>x</mi>\n <mn>2</mn>\n </msup>\n <mo>)</mo>\n </mrow>\n </mstyle>\n</math></p>\n\n<p><span class="lrn_token"><math xmlns="http://www.w3.org/1998/Math/MathML">\n <mstyle displaystyle="true">\n <mrow>\n <mo>[</mo>\n <mn>6</mn>\n <mi>x</mi>\n <mrow>\n <mo>(</mo>\n <mo>-</mo>\n <msup>\n <mi>x</mi>\n <mn>2</mn>\n </msup>\n <mo>+</mo>\n <mn>3</mn>\n <mi>x</mi>\n <mo>-</mo>\n <mn>1</mn>\n <mo>)</mo>\n </mrow>\n <mo>+</mo>\n <mn>2</mn>\n <mrow>\n <mo>(</mo>\n <mo>-</mo>\n <msup>\n <mi>x</mi>\n <mn>2</mn>\n </msup>\n <mo>+</mo>\n <mn>3</mn>\n <mi>x</mi>\n <mo>-</mo>\n <mn>1</mn>\n <mo>)</mo>\n </mrow>\n <mo>]</mo>\n </mrow>\n <mrow>\n <mo>(</mo>\n <msup>\n <mi>x</mi>\n <mn>2</mn>\n </msup>\n <mo>)</mo>\n </mrow>\n </mstyle>\n</math></span></p>\n\n<p><span class="lrn_token"><math xmlns="http://www.w3.org/1998/Math/MathML">\n <mstyle displaystyle="true">\n <mrow>\n <mo>(</mo>\n <mo>-</mo>\n <mn>6</mn>\n <msup>\n <mi>x</mi>\n <mn>3</mn>\n </msup>\n <mo>+</mo>\n <mn>18</mn>\n <msup>\n <mi>x</mi>\n <mn>2</mn>\n </msup>\n <mo>-</mo>\n <mn>6</mn>\n <mi>x</mi>\n <mo>-</mo>\n <mn>2</mn>\n <msup>\n <mi>x</mi>\n <mn>2</mn>\n </msup>\n <mo>+</mo>\n <mn>6</mn>\n <mi>x</mi>\n <mo>-</mo>\n <mn>2</mn>\n <mo>)</mo>\n </mrow>\n <mrow>\n <mo>(</mo>\n <msup>\n <mi>x</mi>\n <mn>2</mn>\n </msup>\n <mo>)</mo>\n </mrow>\n </mstyle>\n</math></span></p>\n\n<p><span class="lrn_token"><math xmlns="http://www.w3.org/1998/Math/MathML">\n <mstyle displaystyle="true">\n <mo>-</mo>\n <mn>6</mn>\n <msup>\n <mi>x</mi>\n <mn>3</mn>\n </msup>\n <mo>+</mo>\n <mn>18</mn>\n <msup>\n <mi>x</mi>\n <mn>2</mn>\n </msup>\n <mo>-</mo>\n <mn>6</mn>\n <mi>x</mi>\n <mo>-</mo>\n <mn>2</mn>\n <msup>\n <mi>x</mi>\n <mn>2</mn>\n </msup>\n <mo>+</mo>\n <mn>6</mn>\n <mi>x</mi>\n <mo>-</mo>\n <mn>2</mn>\n <msup>\n <mi>x</mi>\n <mn>2</mn>\n </msup>\n </mstyle>\n</math></span></p>\n\n<p><span class="lrn_token"><math xmlns="http://www.w3.org/1998/Math/MathML">\n <mstyle displaystyle="true">\n <mo>-</mo>\n <mn>6</mn>\n <msup>\n <mi>x</mi>\n <mn>3</mn>\n </msup>\n <mo>+</mo>\n <mn>14</mn>\n <msup>\n <mi>x</mi>\n <mn>2</mn>\n </msup>\n </mstyle>\n</math></span></p>';
46
-
47
44
  const mathSampleTokens = [
48
45
  {
49
46
  start: 583,
@@ -215,46 +212,6 @@ exports.htmlAscii = (id, element) => ({
215
212
  ],
216
213
  });
217
214
 
218
- const simpleItem = {
219
- text: 'A. Almost never\n\nB. Once in a while\n\nC. Sometimes\n\nD. Often\n\nE. Almost all the time',
220
- tokens: [
221
- {
222
- text: 'A. Almost never',
223
- end: 15,
224
- start: 0,
225
- correct: true,
226
- },
227
- {
228
- start: 17,
229
- end: 35,
230
- correct: false,
231
- text: 'B. Once in a while',
232
- },
233
- {
234
- correct: false,
235
- end: 49,
236
- start: 37,
237
- text: 'C. Sometimes',
238
- },
239
- {
240
- text: 'D. Often',
241
- correct: false,
242
- end: 59,
243
- start: 51,
244
- },
245
- {
246
- start: 61,
247
- correct: false,
248
- end: 83,
249
- text: 'E. Almost all the time',
250
- },
251
- ],
252
- rationale: '<p>answers vary</p>',
253
- partialScoring: true,
254
- teacherInstructions: '',
255
- prompt: '<p>I got my work done right away instead of waiting until the last minute.</p>',
256
- maxSelections: 1,
257
- };
258
215
 
259
216
  exports.model = (id, element) => {
260
217
  return Object.assign(
@@ -284,12 +241,12 @@ exports.model = (id, element) => {
284
241
  {
285
242
  end: 627,
286
243
  correct: false,
287
- text: "At last Natasha's moment arrived.",
244
+ text: 'At last Natasha\'s moment arrived.',
288
245
  start: 594,
289
246
  },
290
247
  {
291
248
  end: 743,
292
- text: "The faces of past giants of gymnastics swam before her mind's eye, now razor&#8211;sharp with fierce determination.",
249
+ text: 'The faces of past giants of gymnastics swam before her mind\'s eye, now razor&#8211;sharp with fierce determination.',
293
250
  correct: false,
294
251
  start: 628,
295
252
  },
@@ -313,7 +270,7 @@ exports.model = (id, element) => {
313
270
  },
314
271
  ],
315
272
  // "element": "select-text",
316
- text: "<p>She thought about what she had to do, struggling to rein in her wild, fearful thoughts. Coach Cummings always said that an undisciplined mind never scored a perfect 10. Natasha wanted to please her Coach, yet sometimes his approval wasn't as exciting as his anger. The gymnasts were unanimous about one thing: Coach Cummings's fits of disapproving rage were much more humorous to witness than his infrequent, backslapping moments of high praise. Just for a hair of a moment, Natasha wondered if she really wanted a perfect 10, so weary was she of trying for but never achieving one.</p>\n\n<p>At last Natasha's moment arrived. The faces of past giants of gymnastics swam before her mind's eye, now razor&#8211;sharp with fierce determination. \"I am talented. I am not afraid. I will make a perfect 10,\" she spoke aloud to herself, as she approached the mat, dusted her hands with chalk to prevent slippage, and returned to her starting point. Suddenly, the din of the gymnasium was silent to her. Forcing all sound out of her mind, she focused on the gleaming balance beam ahead of her. Taking a deep breath, Natasha made her graceful, yet powerful approach, mounted the beam flawlessly, and...executed her first perfect 10.</p>\n",
273
+ text: '<p>She thought about what she had to do, struggling to rein in her wild, fearful thoughts. Coach Cummings always said that an undisciplined mind never scored a perfect 10. Natasha wanted to please her Coach, yet sometimes his approval wasn\'t as exciting as his anger. The gymnasts were unanimous about one thing: Coach Cummings\'s fits of disapproving rage were much more humorous to witness than his infrequent, backslapping moments of high praise. Just for a hair of a moment, Natasha wondered if she really wanted a perfect 10, so weary was she of trying for but never achieving one.</p>\n\n<p>At last Natasha\'s moment arrived. The faces of past giants of gymnastics swam before her mind\'s eye, now razor&#8211;sharp with fierce determination. "I am talented. I am not afraid. I will make a perfect 10," she spoke aloud to herself, as she approached the mat, dusted her hands with chalk to prevent slippage, and returned to her starting point. Suddenly, the din of the gymnasium was silent to her. Forcing all sound out of her mind, she focused on the gleaming balance beam ahead of her. Taking a deep breath, Natasha made her graceful, yet powerful approach, mounted the beam flawlessly, and...executed her first perfect 10.</p>\n',
317
274
  rubricEnabled: false,
318
275
  }),
319
276
  );
package/lib/utils.js CHANGED
@@ -11,8 +11,6 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
11
11
 
12
12
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
13
 
14
- var _react = _interopRequireDefault(require("react"));
15
-
16
14
  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; }
17
15
 
18
16
  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; }
@@ -45,7 +43,7 @@ var parseParagraphs = function parseParagraphs(dom) {
45
43
  var prepareText = function prepareText(text) {
46
44
  var txtDom = createElementFromHTML(text);
47
45
  var div = document.createElement('div');
48
- div.innerHTML = "<div separator='true'>".concat(txtDom.innerHTML, '</div>');
46
+ div.innerHTML = '<div separator=\'true\'>'.concat(txtDom.innerHTML, '</div>');
49
47
  txtDom = div;
50
48
  var allDomElements = Array.from(txtDom.querySelectorAll('*'));
51
49
 
package/lib/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/utils.js"],"names":["createElementFromHTML","htmlString","arguments","length","undefined","div","document","createElement","innerHTML","trim","parseParagraph","paragraph","end","concat","parseParagraphs","dom","paragraphs","querySelectorAll","str","forEach","par","index","prepareText","text","txtDom","allDomElements","Array","from","model","modelText","newTokens","tokens","reduce","acc","token","tokenText","slice","start","getStartIndex","newStartIndex","indexOf","lastToken","newStart","newEnd","oldStart","oldEnd"],"mappings":"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","sourcesContent":["import React from 'react';\n\nvar createElementFromHTML = function createElementFromHTML() {\n var htmlString = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var div = document.createElement('div');\n div.innerHTML = htmlString.trim();\n return div;\n};\n\nvar parseParagraph = function parseParagraph(paragraph, end) {\n if (end) {\n return paragraph.innerHTML;\n }\n\n return ''.concat(paragraph.innerHTML, '\\n\\n');\n};\n\nvar parseParagraphs = function parseParagraphs(dom) {\n var paragraphs = dom.querySelectorAll('div[separator=true]'); // separate variable for easily debugging, if needed\n\n var str = '';\n paragraphs.forEach(function (par, index) {\n str += parseParagraph(par, index === paragraphs.length - 1);\n });\n return str || null;\n};\n\nvar prepareText = function prepareText(text) {\n var txtDom = createElementFromHTML(text);\n\n var div = document.createElement('div');\n div.innerHTML = \"<div separator='true'>\".concat(txtDom.innerHTML, '</div>');\n txtDom = div;\n\n var allDomElements = Array.from(txtDom.querySelectorAll('*'));\n\n if (allDomElements.length === 0) {\n return text;\n }\n\n return parseParagraphs(txtDom);\n};\n\nexport default (model) => {\n if (!model) return model;\n\n // parsing\n const modelText = prepareText(model.text || '');\n\n const newTokens = (model.tokens || []).reduce((acc, token = {}) => {\n const tokenText = prepareText((model.text || '').slice(token.start, token.end));\n\n if (!tokenText) {\n return [...acc, token];\n }\n\n const getStartIndex = (start) => {\n let length = start;\n\n while (length >= 0) {\n let newStartIndex = modelText.slice(length).indexOf(tokenText);\n\n if (newStartIndex >= 0) {\n return newStartIndex + length;\n }\n\n length--;\n }\n\n return 0;\n };\n\n const lastToken = acc[acc.length - 1];\n const newStart = getStartIndex(lastToken ? lastToken.end : token.start);\n const newEnd = newStart + tokenText.length;\n\n return [\n ...acc,\n {\n ...token,\n text: tokenText,\n start: newStart,\n end: newEnd,\n // needed for getScore when tokens position is recalculated\n oldStart: token.start,\n oldEnd: token.end,\n },\n ];\n }, []);\n\n return {\n ...model,\n tokens: newTokens,\n text: modelText,\n };\n};\n"],"file":"utils.js"}
1
+ {"version":3,"sources":["../src/utils.js"],"names":["createElementFromHTML","htmlString","arguments","length","undefined","div","document","createElement","innerHTML","trim","parseParagraph","paragraph","end","concat","parseParagraphs","dom","paragraphs","querySelectorAll","str","forEach","par","index","prepareText","text","txtDom","allDomElements","Array","from","model","modelText","newTokens","tokens","reduce","acc","token","tokenText","slice","start","getStartIndex","newStartIndex","indexOf","lastToken","newStart","newEnd","oldStart","oldEnd"],"mappings":"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","sourcesContent":["\n\nvar createElementFromHTML = function createElementFromHTML() {\n var htmlString = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var div = document.createElement('div');\n div.innerHTML = htmlString.trim();\n return div;\n};\n\nvar parseParagraph = function parseParagraph(paragraph, end) {\n if (end) {\n return paragraph.innerHTML;\n }\n\n return ''.concat(paragraph.innerHTML, '\\n\\n');\n};\n\nvar parseParagraphs = function parseParagraphs(dom) {\n var paragraphs = dom.querySelectorAll('div[separator=true]'); // separate variable for easily debugging, if needed\n\n var str = '';\n paragraphs.forEach(function (par, index) {\n str += parseParagraph(par, index === paragraphs.length - 1);\n });\n return str || null;\n};\n\nvar prepareText = function prepareText(text) {\n var txtDom = createElementFromHTML(text);\n\n var div = document.createElement('div');\n div.innerHTML = '<div separator=\\'true\\'>'.concat(txtDom.innerHTML, '</div>');\n txtDom = div;\n\n var allDomElements = Array.from(txtDom.querySelectorAll('*'));\n\n if (allDomElements.length === 0) {\n return text;\n }\n\n return parseParagraphs(txtDom);\n};\n\nexport default (model) => {\n if (!model) return model;\n\n // parsing\n const modelText = prepareText(model.text || '');\n\n const newTokens = (model.tokens || []).reduce((acc, token = {}) => {\n const tokenText = prepareText((model.text || '').slice(token.start, token.end));\n\n if (!tokenText) {\n return [...acc, token];\n }\n\n const getStartIndex = (start) => {\n let length = start;\n\n while (length >= 0) {\n let newStartIndex = modelText.slice(length).indexOf(tokenText);\n\n if (newStartIndex >= 0) {\n return newStartIndex + length;\n }\n\n length--;\n }\n\n return 0;\n };\n\n const lastToken = acc[acc.length - 1];\n const newStart = getStartIndex(lastToken ? lastToken.end : token.start);\n const newEnd = newStart + tokenText.length;\n\n return [\n ...acc,\n {\n ...token,\n text: tokenText,\n start: newStart,\n end: newEnd,\n // needed for getScore when tokens position is recalculated\n oldStart: token.start,\n oldEnd: token.end,\n },\n ];\n }, []);\n\n return {\n ...model,\n tokens: newTokens,\n text: modelText,\n };\n};\n"],"file":"utils.js"}
package/package.json CHANGED
@@ -4,22 +4,22 @@
4
4
  "access": "public"
5
5
  },
6
6
  "repository": "pie-framework/pie-elements",
7
- "version": "7.9.6-next.45+62ff92a85",
7
+ "version": "7.9.6-next.71+b7d3e7f71",
8
8
  "description": "",
9
9
  "dependencies": {
10
10
  "@material-ui/core": "^3.9.2",
11
11
  "@pie-framework/pie-player-events": "^0.1.0",
12
- "@pie-lib/correct-answer-toggle": "^2.3.69",
12
+ "@pie-lib/correct-answer-toggle": "^2.3.70",
13
13
  "@pie-lib/math-rendering": "^2.5.13",
14
- "@pie-lib/render-ui": "^4.14.19",
15
- "@pie-lib/text-select": "^1.9.19",
14
+ "@pie-lib/render-ui": "^4.14.20",
15
+ "@pie-lib/text-select": "^1.9.20",
16
16
  "prop-types": "^15.6.1",
17
17
  "react": "^16.8.1",
18
18
  "react-dom": "^16.8.1"
19
19
  },
20
20
  "author": "",
21
21
  "license": "ISC",
22
- "gitHead": "62ff92a8524033abfcc7a323b126605d76eb73c7",
22
+ "gitHead": "b7d3e7f7160aafd5dcfed2960bc6c2f03dba2180",
23
23
  "scripts": {
24
24
  "postpublish": "../../scripts/postpublish"
25
25
  },