@pie-element/match 5.1.9 → 5.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,14 @@
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
+ ## [5.1.10](https://github.com/pie-framework/pie-elements/compare/@pie-element/match@5.1.9...@pie-element/match@5.1.10) (2022-09-29)
7
+
8
+ **Note:** Version bump only for package @pie-element/match
9
+
10
+
11
+
12
+
13
+
6
14
  ## [5.1.9](https://github.com/pie-framework/pie-elements/compare/@pie-element/match@5.1.8...@pie-element/match@5.1.9) (2022-09-14)
7
15
 
8
16
  **Note:** Version bump only for package @pie-element/match
@@ -3,6 +3,14 @@
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
+ ## [5.1.9](https://github.com/pie-framework/pie-elements/compare/@pie-element/match-configure@5.1.8...@pie-element/match-configure@5.1.9) (2022-09-29)
7
+
8
+ **Note:** Version bump only for package @pie-element/match-configure
9
+
10
+
11
+
12
+
13
+
6
14
  ## [5.1.8](https://github.com/pie-framework/pie-elements/compare/@pie-element/match-configure@5.1.7...@pie-element/match-configure@5.1.8) (2022-09-14)
7
15
 
8
16
  **Note:** Version bump only for package @pie-element/match-configure
@@ -251,7 +251,8 @@ var AnswerConfigBlock = /*#__PURE__*/function (_React$Component) {
251
251
  imageSupport = _this$props4.imageSupport,
252
252
  configuration = _this$props4.configuration,
253
253
  toolbarOpts = _this$props4.toolbarOpts,
254
- spellCheck = _this$props4.spellCheck;
254
+ spellCheck = _this$props4.spellCheck,
255
+ uploadSoundSupport = _this$props4.uploadSoundSupport;
255
256
 
256
257
  var _ref2 = configuration || {},
257
258
  _ref2$headers = _ref2.headers,
@@ -307,7 +308,8 @@ var AnswerConfigBlock = /*#__PURE__*/function (_React$Component) {
307
308
  pluginProps: labelPlugins,
308
309
  autoWidthToolbar: true,
309
310
  allowValidation: true,
310
- spellCheck: spellCheck
311
+ spellCheck: spellCheck,
312
+ uploadSoundSupport: uploadSoundSupport
311
313
  }));
312
314
  }), /*#__PURE__*/React.createElement("div", {
313
315
  className: classes.deleteIcon
@@ -330,7 +332,8 @@ var AnswerConfigBlock = /*#__PURE__*/function (_React$Component) {
330
332
  spellCheck: spellCheck,
331
333
  error: rowsErrors && rowsErrors[row.id],
332
334
  maxImageWidth: maxImageWidth && maxImageWidth.rowTitles || defaultImageMaxWidth,
333
- maxImageHeight: maxImageHeight && maxImageHeight.rowTitles || defaultImageMaxHeight
335
+ maxImageHeight: maxImageHeight && maxImageHeight.rowTitles || defaultImageMaxHeight,
336
+ uploadSoundSupport: uploadSoundSupport
334
337
  });
335
338
  }), /*#__PURE__*/React.createElement(_addRow["default"], {
336
339
  onAddClick: onAddRow
@@ -355,6 +358,10 @@ var AnswerConfigBlock = /*#__PURE__*/function (_React$Component) {
355
358
  add: _propTypes["default"].func.isRequired,
356
359
  "delete": _propTypes["default"].func.isRequired
357
360
  }),
361
+ uploadSoundSupport: _propTypes["default"].shape({
362
+ add: _propTypes["default"].func.isRequired,
363
+ "delete": _propTypes["default"].func.isRequired
364
+ }),
358
365
  toolbarOpts: _propTypes["default"].object
359
366
  });
360
367
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/answer-config-block.jsx"],"names":["log","styles","theme","container","marginTop","spacing","unit","display","flexDirection","rowContainer","alignItems","flex","rowItem","justifyContent","width","padding","textAlign","deleteIcon","minWidth","questionText","maxWidth","rowTable","separator","border","borderTop","headerInput","fontWeight","errorText","fontSize","color","paddingTop","AnswerConfigBlock","dialog","open","from","to","props","model","onChange","newModel","rows","reduce","acc","item","index","movedRow","remainingRows","push","update","slice","name","isBoolean","target","value","checked","lodash","set","headerIndex","headers","currentHeader","sameValue","filter","header","wasChanged","sameValueEntered","empty","length","setState","onOk","classes","onAddRow","imageSupport","configuration","toolbarOpts","spellCheck","maxImageWidth","maxImageHeight","state","errors","correctResponseError","rowsErrors","filteredDefaultPlugins","DEFAULT_PLUGINS","p","labelPlugins","audio","disabled","video","defaultImageMaxWidth","prompt","defaultImageMaxHeight","settings","map","idx","onHeaderChange","row","onDeleteRow","moveRow","enableImages","id","rowTitles","React","Component","PropTypes","object","isRequired","func","shape","add"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport cx from 'classnames';\nimport PropTypes from 'prop-types';\nimport Button from '@material-ui/core/Button';\nimport Typography from '@material-ui/core/Typography';\nimport { withStyles } from '@material-ui/core/styles';\nimport AddRow from './add-row';\nimport Row from './row';\nimport debug from 'debug';\nimport lodash from 'lodash';\nimport EditableHTML, { DEFAULT_PLUGINS } from '@pie-lib/editable-html';\nimport { InfoDialog } from './common';\n\nconst log = debug('pie-elements:match:configure');\n\nconst styles = theme => ({\n container: {\n marginTop: theme.spacing.unit * 2,\n display: 'flex',\n flexDirection: 'column'\n },\n rowContainer: {\n marginTop: theme.spacing.unit * 2,\n display: 'flex',\n alignItems: 'center',\n flex: 1\n },\n rowItem: {\n flex: 1,\n display: 'flex',\n justifyContent: 'center',\n '&> div': {\n width: '150px',\n padding: '12px',\n textAlign: 'center'\n },\n },\n deleteIcon: {\n flex: 0.5,\n minWidth: '88px'\n },\n questionText: {\n flex: 2,\n display: 'flex',\n justifyContent: 'flex-start',\n '&> div': {\n width: '100%',\n padding: 0,\n maxWidth: 'unset',\n textAlign: 'left',\n minWidth: '350px'\n }\n },\n rowTable: {\n display: 'flex',\n flexDirection: 'column'\n },\n separator: {\n marginTop: theme.spacing.unit * 2,\n border: 0,\n borderTop: '2px solid lightgray',\n width: '100%'\n },\n headerInput: {\n '&> div': {\n fontWeight: 'bold'\n }\n },\n errorText: {\n fontSize: '12px',\n color: 'red',\n paddingTop: '5px'\n }\n});\n\nclass AnswerConfigBlock extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n onDeleteRow: PropTypes.func.isRequired,\n onAddRow: PropTypes.func.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired\n }),\n toolbarOpts: PropTypes.object\n };\n\n state = {\n dialog: {\n open: false\n }\n };\n\n moveRow = (from, to) => {\n const { model, onChange } = this.props;\n const newModel = { ...model };\n const rows = newModel.rows || [];\n\n log('[moveRow]: ', from, to);\n\n const { movedRow, remainingRows } = rows.reduce(\n (acc, item, index) => {\n if (index === from) {\n acc.movedRow = item;\n } else {\n acc.remainingRows.push(item);\n }\n\n return acc;\n },\n { movedRow: null, remainingRows: [] }\n );\n\n const update = [\n ...remainingRows.slice(0, to),\n movedRow,\n ...remainingRows.slice(to)\n ];\n\n log('update: ', update);\n\n newModel.rows = update;\n\n onChange(newModel);\n };\n\n onChange = (name, isBoolean) => ({ target }) => {\n const { model, onChange } = this.props;\n let value;\n\n if (isBoolean) {\n value = target.checked;\n } else {\n value = target.value;\n }\n\n lodash.set(model, name, value);\n onChange(model, name);\n };\n\n onHeaderChange = headerIndex => value => {\n const { model, onChange } = this.props;\n const newModel = { ...model };\n\n if(headerIndex === 0) {\n newModel.headers[headerIndex] = value;\n onChange(newModel);\n\n return;\n }\n\n const headers = newModel.headers || [];\n\n const currentHeader = headers[headerIndex];\n\n const sameValue = headers.filter(header => {\n const wasChanged = currentHeader !== value && `<div>${currentHeader}</div>` !== value;\n const sameValueEntered = header === value || `<div>${header}</div>` === value;\n\n return wasChanged && sameValueEntered;\n });\n\n const empty = value === '<div></div>';\n\n if (sameValue.length || empty) {\n this.setState({\n dialog: {\n open: true,\n onOk: () => {\n this.setState(\n {\n dialog: {\n open: false\n }\n }\n );\n }\n }\n });\n } else {\n newModel.headers[headerIndex] = value;\n\n onChange(newModel);\n }\n };\n\n render() {\n const {\n classes,\n model,\n onAddRow,\n imageSupport,\n configuration,\n toolbarOpts,\n spellCheck\n } = this.props;\n const { headers = {}, maxImageWidth = {}, maxImageHeight = {} } = configuration || {};\n const { dialog } = this.state;\n const { errors } = model || {};\n const { correctResponseError, rowsErrors } = errors || {};\n\n const filteredDefaultPlugins = (DEFAULT_PLUGINS || [])\n .filter(p => p !== 'table' && p !== 'bulleted-list' && p !== 'numbered-list');\n const labelPlugins = {\n audio: { disabled: true },\n video: { disabled: true }\n };\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n return (\n <div className={classes.container}>\n <Typography type=\"body1\" component=\"div\">\n Click on the labels to edit or remove. Set the correct answers by\n clicking each correct answer per row.\n </Typography>\n {correctResponseError && <div className={classes.errorText}>{correctResponseError}</div>}\n <div className={classes.rowTable}>\n <div className={classes.rowContainer}>\n {headers.settings &&\n (model.headers || []).map((header, idx) => (\n <div\n key={idx}\n className={cx(classes.rowItem, {\n [classes.questionText]: idx === 0\n })}\n >\n <EditableHTML\n onChange={this.onHeaderChange(idx)}\n markup={header}\n className={classes.headerInput}\n label={'column label'}\n activePlugins={filteredDefaultPlugins}\n pluginProps={labelPlugins}\n autoWidthToolbar\n allowValidation\n spellCheck={spellCheck}\n />\n </div>\n ))}\n <div className={classes.deleteIcon}>\n <Button disabled>\n <div />\n </Button>\n </div>\n </div>\n <hr className={classes.separator} />\n {model.rows.map((row, idx) => (\n <Row\n key={idx}\n model={model}\n row={row}\n idx={idx}\n onDeleteRow={this.props.onDeleteRow}\n onChange={this.props.onChange}\n onMoveRow={this.moveRow}\n imageSupport={imageSupport}\n enableImages={model.enableImages}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n error={rowsErrors && rowsErrors[row.id]}\n maxImageWidth={maxImageWidth && maxImageWidth.rowTitles || defaultImageMaxWidth}\n maxImageHeight={maxImageHeight && maxImageHeight.rowTitles || defaultImageMaxHeight}\n />\n ))}\n <AddRow onAddClick={onAddRow} />\n </div>\n <InfoDialog\n title={'The column headings must be non-blank and unique.'}\n open={dialog.open}\n onOk={dialog.onOk}\n />\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(AnswerConfigBlock);\n"],"file":"answer-config-block.js"}
1
+ {"version":3,"sources":["../src/answer-config-block.jsx"],"names":["log","styles","theme","container","marginTop","spacing","unit","display","flexDirection","rowContainer","alignItems","flex","rowItem","justifyContent","width","padding","textAlign","deleteIcon","minWidth","questionText","maxWidth","rowTable","separator","border","borderTop","headerInput","fontWeight","errorText","fontSize","color","paddingTop","AnswerConfigBlock","dialog","open","from","to","props","model","onChange","newModel","rows","reduce","acc","item","index","movedRow","remainingRows","push","update","slice","name","isBoolean","target","value","checked","lodash","set","headerIndex","headers","currentHeader","sameValue","filter","header","wasChanged","sameValueEntered","empty","length","setState","onOk","classes","onAddRow","imageSupport","configuration","toolbarOpts","spellCheck","uploadSoundSupport","maxImageWidth","maxImageHeight","state","errors","correctResponseError","rowsErrors","filteredDefaultPlugins","DEFAULT_PLUGINS","p","labelPlugins","audio","disabled","video","defaultImageMaxWidth","prompt","defaultImageMaxHeight","settings","map","idx","onHeaderChange","row","onDeleteRow","moveRow","enableImages","id","rowTitles","React","Component","PropTypes","object","isRequired","func","shape","add"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport cx from 'classnames';\nimport PropTypes from 'prop-types';\nimport Button from '@material-ui/core/Button';\nimport Typography from '@material-ui/core/Typography';\nimport { withStyles } from '@material-ui/core/styles';\nimport AddRow from './add-row';\nimport Row from './row';\nimport debug from 'debug';\nimport lodash from 'lodash';\nimport EditableHTML, { DEFAULT_PLUGINS } from '@pie-lib/editable-html';\nimport { InfoDialog } from './common';\n\nconst log = debug('pie-elements:match:configure');\n\nconst styles = theme => ({\n container: {\n marginTop: theme.spacing.unit * 2,\n display: 'flex',\n flexDirection: 'column'\n },\n rowContainer: {\n marginTop: theme.spacing.unit * 2,\n display: 'flex',\n alignItems: 'center',\n flex: 1\n },\n rowItem: {\n flex: 1,\n display: 'flex',\n justifyContent: 'center',\n '&> div': {\n width: '150px',\n padding: '12px',\n textAlign: 'center'\n },\n },\n deleteIcon: {\n flex: 0.5,\n minWidth: '88px'\n },\n questionText: {\n flex: 2,\n display: 'flex',\n justifyContent: 'flex-start',\n '&> div': {\n width: '100%',\n padding: 0,\n maxWidth: 'unset',\n textAlign: 'left',\n minWidth: '350px'\n }\n },\n rowTable: {\n display: 'flex',\n flexDirection: 'column'\n },\n separator: {\n marginTop: theme.spacing.unit * 2,\n border: 0,\n borderTop: '2px solid lightgray',\n width: '100%'\n },\n headerInput: {\n '&> div': {\n fontWeight: 'bold'\n }\n },\n errorText: {\n fontSize: '12px',\n color: 'red',\n paddingTop: '5px'\n }\n});\n\nclass AnswerConfigBlock extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n onDeleteRow: PropTypes.func.isRequired,\n onAddRow: 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 };\n\n state = {\n dialog: {\n open: false\n }\n };\n\n moveRow = (from, to) => {\n const { model, onChange } = this.props;\n const newModel = { ...model };\n const rows = newModel.rows || [];\n\n log('[moveRow]: ', from, to);\n\n const { movedRow, remainingRows } = rows.reduce(\n (acc, item, index) => {\n if (index === from) {\n acc.movedRow = item;\n } else {\n acc.remainingRows.push(item);\n }\n\n return acc;\n },\n { movedRow: null, remainingRows: [] }\n );\n\n const update = [\n ...remainingRows.slice(0, to),\n movedRow,\n ...remainingRows.slice(to)\n ];\n\n log('update: ', update);\n\n newModel.rows = update;\n\n onChange(newModel);\n };\n\n onChange = (name, isBoolean) => ({ target }) => {\n const { model, onChange } = this.props;\n let value;\n\n if (isBoolean) {\n value = target.checked;\n } else {\n value = target.value;\n }\n\n lodash.set(model, name, value);\n onChange(model, name);\n };\n\n onHeaderChange = headerIndex => value => {\n const { model, onChange } = this.props;\n const newModel = { ...model };\n\n if(headerIndex === 0) {\n newModel.headers[headerIndex] = value;\n onChange(newModel);\n\n return;\n }\n\n const headers = newModel.headers || [];\n\n const currentHeader = headers[headerIndex];\n\n const sameValue = headers.filter(header => {\n const wasChanged = currentHeader !== value && `<div>${currentHeader}</div>` !== value;\n const sameValueEntered = header === value || `<div>${header}</div>` === value;\n\n return wasChanged && sameValueEntered;\n });\n\n const empty = value === '<div></div>';\n\n if (sameValue.length || empty) {\n this.setState({\n dialog: {\n open: true,\n onOk: () => {\n this.setState(\n {\n dialog: {\n open: false\n }\n }\n );\n }\n }\n });\n } else {\n newModel.headers[headerIndex] = value;\n\n onChange(newModel);\n }\n };\n\n render() {\n const {\n classes,\n model,\n onAddRow,\n imageSupport,\n configuration,\n toolbarOpts,\n spellCheck,\n uploadSoundSupport\n } = this.props;\n const { headers = {}, maxImageWidth = {}, maxImageHeight = {} } = configuration || {};\n const { dialog } = this.state;\n const { errors } = model || {};\n const { correctResponseError, rowsErrors } = errors || {};\n\n const filteredDefaultPlugins = (DEFAULT_PLUGINS || [])\n .filter(p => p !== 'table' && p !== 'bulleted-list' && p !== 'numbered-list');\n const labelPlugins = {\n audio: { disabled: true },\n video: { disabled: true }\n };\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n return (\n <div className={classes.container}>\n <Typography type=\"body1\" component=\"div\">\n Click on the labels to edit or remove. Set the correct answers by\n clicking each correct answer per row.\n </Typography>\n {correctResponseError && <div className={classes.errorText}>{correctResponseError}</div>}\n <div className={classes.rowTable}>\n <div className={classes.rowContainer}>\n {headers.settings &&\n (model.headers || []).map((header, idx) => (\n <div\n key={idx}\n className={cx(classes.rowItem, {\n [classes.questionText]: idx === 0\n })}\n >\n <EditableHTML\n onChange={this.onHeaderChange(idx)}\n markup={header}\n className={classes.headerInput}\n label={'column label'}\n activePlugins={filteredDefaultPlugins}\n pluginProps={labelPlugins}\n autoWidthToolbar\n allowValidation\n spellCheck={spellCheck}\n uploadSoundSupport={uploadSoundSupport}\n />\n </div>\n ))}\n <div className={classes.deleteIcon}>\n <Button disabled>\n <div />\n </Button>\n </div>\n </div>\n <hr className={classes.separator} />\n {model.rows.map((row, idx) => (\n <Row\n key={idx}\n model={model}\n row={row}\n idx={idx}\n onDeleteRow={this.props.onDeleteRow}\n onChange={this.props.onChange}\n onMoveRow={this.moveRow}\n imageSupport={imageSupport}\n enableImages={model.enableImages}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n error={rowsErrors && rowsErrors[row.id]}\n maxImageWidth={maxImageWidth && maxImageWidth.rowTitles || defaultImageMaxWidth}\n maxImageHeight={maxImageHeight && maxImageHeight.rowTitles || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n />\n ))}\n <AddRow onAddClick={onAddRow} />\n </div>\n <InfoDialog\n title={'The column headings must be non-blank and unique.'}\n open={dialog.open}\n onOk={dialog.onOk}\n />\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(AnswerConfigBlock);\n"],"file":"answer-config-block.js"}
@@ -212,7 +212,8 @@ var Configure = /*#__PURE__*/function (_React$Component) {
212
212
  imageSupport = _this$props2.imageSupport,
213
213
  onModelChanged = _this$props2.onModelChanged,
214
214
  configuration = _this$props2.configuration,
215
- onConfigurationChanged = _this$props2.onConfigurationChanged;
215
+ onConfigurationChanged = _this$props2.onConfigurationChanged,
216
+ uploadSoundSupport = _this$props2.uploadSoundSupport;
216
217
 
217
218
  var _ref = configuration || {},
218
219
  _ref$enableImages = _ref.enableImages,
@@ -303,7 +304,8 @@ var Configure = /*#__PURE__*/function (_React$Component) {
303
304
  toolbarOpts: toolbarOpts,
304
305
  spellCheck: spellCheckEnabled,
305
306
  maxImageWidth: maxImageWidth && maxImageWidth.teacherInstructions || defaultImageMaxWidth,
306
- maxImageHeight: maxImageHeight && maxImageHeight.teacherInstructions || defaultImageMaxHeight
307
+ maxImageHeight: maxImageHeight && maxImageHeight.teacherInstructions || defaultImageMaxHeight,
308
+ uploadSoundSupport: uploadSoundSupport
307
309
  })), promptEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
308
310
  label: prompt.label,
309
311
  className: classes.promptHolder
@@ -317,7 +319,8 @@ var Configure = /*#__PURE__*/function (_React$Component) {
317
319
  toolbarOpts: toolbarOpts,
318
320
  spellCheck: spellCheckEnabled,
319
321
  maxImageWidth: maxImageWidth && maxImageWidth.prompt,
320
- maxImageHeight: maxImageHeight && maxImageHeight.prompt
322
+ maxImageHeight: maxImageHeight && maxImageHeight.prompt,
323
+ uploadSoundSupport: uploadSoundSupport
321
324
  })), rationaleEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
322
325
  label: rationale.label,
323
326
  className: classes.promptHolder
@@ -329,7 +332,8 @@ var Configure = /*#__PURE__*/function (_React$Component) {
329
332
  toolbarOpts: toolbarOpts,
330
333
  spellCheck: spellCheckEnabled,
331
334
  maxImageWidth: maxImageWidth && maxImageWidth.rationale || defaultImageMaxWidth,
332
- maxImageHeight: maxImageHeight && maxImageHeight.rationale || defaultImageMaxHeight
335
+ maxImageHeight: maxImageHeight && maxImageHeight.rationale || defaultImageMaxHeight,
336
+ uploadSoundSupport: uploadSoundSupport
333
337
  })), /*#__PURE__*/_react["default"].createElement(_generalConfigBlock["default"], {
334
338
  model: model,
335
339
  configuration: configuration,
@@ -343,7 +347,8 @@ var Configure = /*#__PURE__*/function (_React$Component) {
343
347
  onAddRow: this.onAddRow,
344
348
  onDeleteRow: this.onDeleteRow,
345
349
  toolbarOpts: toolbarOpts,
346
- spellCheck: spellCheckEnabled
350
+ spellCheck: spellCheckEnabled,
351
+ uploadSoundSupport: uploadSoundSupport
347
352
  }), feedbackEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.FeedbackConfig, {
348
353
  feedback: model.feedback,
349
354
  onChange: this.onFeedbackChange,
@@ -363,6 +368,10 @@ var Configure = /*#__PURE__*/function (_React$Component) {
363
368
  imageSupport: _propTypes["default"].shape({
364
369
  add: _propTypes["default"].func.isRequired,
365
370
  "delete": _propTypes["default"].func.isRequired
371
+ }),
372
+ uploadSoundSupport: _propTypes["default"].shape({
373
+ add: _propTypes["default"].func.isRequired,
374
+ "delete": _propTypes["default"].func.isRequired
366
375
  })
367
376
  });
368
377
  (0, _defineProperty2["default"])(Configure, "defaultProps", {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/configure.jsx"],"names":["log","Panel","settings","toggle","radio","styles","theme","title","fontSize","display","marginTop","spacing","unit","marginBottom","content","promptHolder","width","paddingTop","prompt","Configure","props","event","value","setState","activeTab","index","model","onModelChanged","feedback","rowIndex","newModel","rows","splice","onChange","concat","id","rowIdCounter","length","values","Array","layout","fill","newLayout","oldLayout","i","headers","push","forEach","row","newChoiceMode","trueCount","reduce","total","current","choiceMode","partialScoring","teacherInstructions","rationale","state","classes","imageSupport","configuration","onConfigurationChanged","enableImages","studentInstructions","lockChoiceOrder","scoringType","spellCheck","maxImageWidth","maxImageHeight","teacherInstructionsEnabled","promptEnabled","rationaleEnabled","spellCheckEnabled","feedbackEnabled","toolbarOpts","toolbarEditorPosition","position","defaultImageMaxWidth","defaultImageMaxHeight","config","Settings","label","Properties","studentInstructionsEnabled","onTeacherInstructionsChanged","onPromptChanged","onRationaleChanged","onResponseTypeChange","onLayoutChange","onAddRow","onDeleteRow","onFeedbackChange","React","Component","PropTypes","func","object","isRequired","shape","add","Config"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport {\n FeedbackConfig,\n settings,\n layout,\n InputContainer\n} from '@pie-lib/config-ui';\nimport EditableHtml from '@pie-lib/editable-html';\nimport { withDragContext } from '@pie-lib/drag';\nimport PropTypes from 'prop-types';\nimport debug from 'debug';\nimport GeneralConfigBlock from './general-config-block';\nimport AnswerConfigBlock from './answer-config-block';\n\nconst log = debug('@pie-element:match:configure');\nconst { Panel, toggle, radio } = settings;\n\nconst styles = theme => ({\n title: {\n fontSize: '1.1rem',\n display: 'block',\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit\n },\n content: {\n marginTop: theme.spacing.unit * 2\n },\n promptHolder: {\n width: '100%',\n paddingTop: theme.spacing.unit * 2\n },\n prompt: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%'\n }\n});\n\nclass Configure extends React.Component {\n static propTypes = {\n onModelChanged: PropTypes.func,\n onConfigurationChanged: PropTypes.func,\n classes: PropTypes.object,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired\n })\n };\n\n static defaultProps = {\n classes: {}\n };\n\n constructor(props) {\n super(props);\n\n this.rowIdCounter = props.model.rows[props.model.rows.length - 1].id + 1;\n\n this.state = {\n activeTab: 0\n };\n }\n\n onTabChange = (event, value) => {\n this.setState({ activeTab: value });\n };\n\n onChangeTabIndex = index => {\n this.setState({ activeTab: index });\n };\n\n onChange = model => {\n this.props.onModelChanged(model);\n };\n\n onFeedbackChange = feedback => {\n const { model, onModelChanged } = this.props;\n model.feedback = feedback;\n onModelChanged(model);\n };\n\n onDeleteRow = rowIndex => {\n const { model } = this.props;\n\n const newModel = { ...model };\n\n newModel.rows.splice(rowIndex, 1);\n\n this.onChange(newModel);\n };\n\n onAddRow = () => {\n const { model } = this.props;\n const newModel = { ...model };\n\n newModel.rows = newModel.rows.concat({\n id: this.rowIdCounter + 1,\n title: `Question Text ${newModel.rows.length + 1}`,\n values: new Array(model.layout - 1).fill(false)\n });\n\n this.rowIdCounter += 1;\n\n this.onChange(newModel);\n };\n\n onLayoutChange = newLayout => {\n const { model } = this.props;\n const oldLayout = model.layout;\n const newModel = { ...model };\n\n if (newLayout > oldLayout) {\n for (let i = 0; i < newLayout - oldLayout; i++) {\n newModel.headers.push(`Column ${newModel.headers.length + 1}`);\n }\n\n newModel.rows.forEach(row => {\n for (let i = 0; i < newLayout - oldLayout; i++) {\n row.values.push(false);\n }\n });\n } else if (newLayout < oldLayout) {\n newModel.headers.splice(newLayout);\n\n newModel.rows.forEach(row => {\n row.values.splice(newLayout - 1);\n });\n }\n\n newModel.layout = newLayout;\n\n this.onChange(newModel);\n };\n\n onResponseTypeChange = newChoiceMode => {\n const { model } = this.props;\n const newModel = { ...model };\n\n // if we're switching to radio and we have more than one true, reset\n if (newChoiceMode === 'radio') {\n newModel.rows.forEach(row => {\n const trueCount = row.values.reduce((total, current) =>\n current === true ? total + 1 : total\n );\n\n if (trueCount > 1) {\n row.values = new Array(model.layout - 1).fill(false);\n }\n });\n }\n\n newModel.choiceMode = newChoiceMode;\n\n this.onChange(newModel);\n };\n\n onPartialScoringChange = partialScoring => {\n this.props.model.partialScoring = partialScoring;\n this.props.onModelChanged(this.props.model);\n };\n\n onPromptChanged = prompt => {\n this.props.onModelChanged({\n ...this.props.model,\n prompt\n });\n };\n\n onTeacherInstructionsChanged = teacherInstructions => {\n this.props.onModelChanged({\n ...this.props.model,\n teacherInstructions\n });\n };\n\n onRationaleChanged = rationale => {\n this.props.onModelChanged({\n ...this.props.model,\n rationale\n });\n };\n\n render() {\n const {\n classes,\n model,\n imageSupport,\n onModelChanged,\n configuration,\n onConfigurationChanged\n } = this.props;\n const {\n enableImages = {},\n partialScoring = {},\n teacherInstructions = {},\n studentInstructions = {},\n rationale = {},\n lockChoiceOrder = {},\n scoringType = {},\n prompt = {},\n feedback = {},\n spellCheck = {},\n maxImageWidth = {},\n maxImageHeight = {}\n } = configuration || {};\n const { teacherInstructionsEnabled, promptEnabled, rationaleEnabled, spellCheckEnabled, feedbackEnabled } =\n model || {};\n\n const toolbarOpts = {};\n\n switch (model.toolbarEditorPosition) {\n case 'top':\n toolbarOpts.position = 'top';\n break;\n default:\n toolbarOpts.position = 'bottom';\n break;\n }\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n log('[render] model', model);\n\n return (\n <layout.ConfigLayout\n settings={\n <Panel\n model={model}\n configuration={configuration}\n onChangeModel={model => onModelChanged(model)}\n onChangeConfiguration={config => onConfigurationChanged(config)}\n groups={{\n Settings: {\n enableImages:\n enableImages.settings && toggle(enableImages.label),\n partialScoring:\n partialScoring.settings && toggle(partialScoring.label),\n lockChoiceOrder:\n lockChoiceOrder.settings && toggle(lockChoiceOrder.label),\n feedbackEnabled:\n feedback.settings && toggle(feedback.label)\n },\n Properties: {\n teacherInstructionsEnabled:\n teacherInstructions.settings &&\n toggle(teacherInstructions.label),\n studentInstructionsEnabled:\n studentInstructions.settings &&\n toggle(studentInstructions.label),\n promptEnabled: prompt.settings && toggle(prompt.label),\n rationaleEnabled: rationale.settings && toggle(rationale.label),\n spellCheckEnabled:\n spellCheck.settings && toggle(spellCheck.label),\n scoringType:\n scoringType.settings &&\n radio(scoringType.label, ['auto', 'rubric'])\n }\n }}\n />\n }\n >\n <div className={classes.content}>\n {teacherInstructionsEnabled && (\n <InputContainer\n label={teacherInstructions.label}\n className={classes.promptHolder}\n >\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 />\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer\n label={prompt.label}\n className={classes.promptHolder}\n >\n <EditableHtml\n className={classes.prompt}\n markup={model.prompt}\n onChange={this.onPromptChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n disableUnderline\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={maxImageWidth && maxImageWidth.prompt}\n maxImageHeight={maxImageHeight && maxImageHeight.prompt}\n />\n </InputContainer>\n )}\n\n {rationaleEnabled && (\n <InputContainer\n label={rationale.label}\n className={classes.promptHolder}\n >\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 />\n </InputContainer>\n )}\n <GeneralConfigBlock\n model={model}\n configuration={configuration}\n onResponseTypeChange={this.onResponseTypeChange}\n onLayoutChange={this.onLayoutChange}\n />\n <AnswerConfigBlock\n model={model}\n configuration={configuration}\n imageSupport={imageSupport}\n onChange={this.onChange}\n onAddRow={this.onAddRow}\n onDeleteRow={this.onDeleteRow}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n />\n {feedbackEnabled && (\n <FeedbackConfig\n feedback={model.feedback}\n onChange={this.onFeedbackChange}\n toolbarOpts={toolbarOpts}\n />\n )}\n </div>\n </layout.ConfigLayout>\n );\n }\n}\n\nexport const Config = Configure;\n\nexport default withDragContext(withStyles(styles)(Configure));\n"],"file":"configure.js"}
1
+ {"version":3,"sources":["../src/configure.jsx"],"names":["log","Panel","settings","toggle","radio","styles","theme","title","fontSize","display","marginTop","spacing","unit","marginBottom","content","promptHolder","width","paddingTop","prompt","Configure","props","event","value","setState","activeTab","index","model","onModelChanged","feedback","rowIndex","newModel","rows","splice","onChange","concat","id","rowIdCounter","length","values","Array","layout","fill","newLayout","oldLayout","i","headers","push","forEach","row","newChoiceMode","trueCount","reduce","total","current","choiceMode","partialScoring","teacherInstructions","rationale","state","classes","imageSupport","configuration","onConfigurationChanged","uploadSoundSupport","enableImages","studentInstructions","lockChoiceOrder","scoringType","spellCheck","maxImageWidth","maxImageHeight","teacherInstructionsEnabled","promptEnabled","rationaleEnabled","spellCheckEnabled","feedbackEnabled","toolbarOpts","toolbarEditorPosition","position","defaultImageMaxWidth","defaultImageMaxHeight","config","Settings","label","Properties","studentInstructionsEnabled","onTeacherInstructionsChanged","onPromptChanged","onRationaleChanged","onResponseTypeChange","onLayoutChange","onAddRow","onDeleteRow","onFeedbackChange","React","Component","PropTypes","func","object","isRequired","shape","add","Config"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport {\n FeedbackConfig,\n settings,\n layout,\n InputContainer\n} from '@pie-lib/config-ui';\nimport EditableHtml from '@pie-lib/editable-html';\nimport { withDragContext } from '@pie-lib/drag';\nimport PropTypes from 'prop-types';\nimport debug from 'debug';\nimport GeneralConfigBlock from './general-config-block';\nimport AnswerConfigBlock from './answer-config-block';\n\nconst log = debug('@pie-element:match:configure');\nconst { Panel, toggle, radio } = settings;\n\nconst styles = theme => ({\n title: {\n fontSize: '1.1rem',\n display: 'block',\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit\n },\n content: {\n marginTop: theme.spacing.unit * 2\n },\n promptHolder: {\n width: '100%',\n paddingTop: theme.spacing.unit * 2\n },\n prompt: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%'\n }\n});\n\nclass Configure extends React.Component {\n static propTypes = {\n onModelChanged: PropTypes.func,\n onConfigurationChanged: PropTypes.func,\n classes: PropTypes.object,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.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 };\n\n static defaultProps = {\n classes: {}\n };\n\n constructor(props) {\n super(props);\n\n this.rowIdCounter = props.model.rows[props.model.rows.length - 1].id + 1;\n\n this.state = {\n activeTab: 0\n };\n }\n\n onTabChange = (event, value) => {\n this.setState({ activeTab: value });\n };\n\n onChangeTabIndex = index => {\n this.setState({ activeTab: index });\n };\n\n onChange = model => {\n this.props.onModelChanged(model);\n };\n\n onFeedbackChange = feedback => {\n const { model, onModelChanged } = this.props;\n model.feedback = feedback;\n onModelChanged(model);\n };\n\n onDeleteRow = rowIndex => {\n const { model } = this.props;\n\n const newModel = { ...model };\n\n newModel.rows.splice(rowIndex, 1);\n\n this.onChange(newModel);\n };\n\n onAddRow = () => {\n const { model } = this.props;\n const newModel = { ...model };\n\n newModel.rows = newModel.rows.concat({\n id: this.rowIdCounter + 1,\n title: `Question Text ${newModel.rows.length + 1}`,\n values: new Array(model.layout - 1).fill(false)\n });\n\n this.rowIdCounter += 1;\n\n this.onChange(newModel);\n };\n\n onLayoutChange = newLayout => {\n const { model } = this.props;\n const oldLayout = model.layout;\n const newModel = { ...model };\n\n if (newLayout > oldLayout) {\n for (let i = 0; i < newLayout - oldLayout; i++) {\n newModel.headers.push(`Column ${newModel.headers.length + 1}`);\n }\n\n newModel.rows.forEach(row => {\n for (let i = 0; i < newLayout - oldLayout; i++) {\n row.values.push(false);\n }\n });\n } else if (newLayout < oldLayout) {\n newModel.headers.splice(newLayout);\n\n newModel.rows.forEach(row => {\n row.values.splice(newLayout - 1);\n });\n }\n\n newModel.layout = newLayout;\n\n this.onChange(newModel);\n };\n\n onResponseTypeChange = newChoiceMode => {\n const { model } = this.props;\n const newModel = { ...model };\n\n // if we're switching to radio and we have more than one true, reset\n if (newChoiceMode === 'radio') {\n newModel.rows.forEach(row => {\n const trueCount = row.values.reduce((total, current) =>\n current === true ? total + 1 : total\n );\n\n if (trueCount > 1) {\n row.values = new Array(model.layout - 1).fill(false);\n }\n });\n }\n\n newModel.choiceMode = newChoiceMode;\n\n this.onChange(newModel);\n };\n\n onPartialScoringChange = partialScoring => {\n this.props.model.partialScoring = partialScoring;\n this.props.onModelChanged(this.props.model);\n };\n\n onPromptChanged = prompt => {\n this.props.onModelChanged({\n ...this.props.model,\n prompt\n });\n };\n\n onTeacherInstructionsChanged = teacherInstructions => {\n this.props.onModelChanged({\n ...this.props.model,\n teacherInstructions\n });\n };\n\n onRationaleChanged = rationale => {\n this.props.onModelChanged({\n ...this.props.model,\n rationale\n });\n };\n\n render() {\n const {\n classes,\n model,\n imageSupport,\n onModelChanged,\n configuration,\n onConfigurationChanged,\n uploadSoundSupport\n } = this.props;\n const {\n enableImages = {},\n partialScoring = {},\n teacherInstructions = {},\n studentInstructions = {},\n rationale = {},\n lockChoiceOrder = {},\n scoringType = {},\n prompt = {},\n feedback = {},\n spellCheck = {},\n maxImageWidth = {},\n maxImageHeight = {}\n } = configuration || {};\n const { teacherInstructionsEnabled, promptEnabled, rationaleEnabled, spellCheckEnabled, feedbackEnabled } =\n model || {};\n\n const toolbarOpts = {};\n\n switch (model.toolbarEditorPosition) {\n case 'top':\n toolbarOpts.position = 'top';\n break;\n default:\n toolbarOpts.position = 'bottom';\n break;\n }\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n log('[render] model', model);\n\n return (\n <layout.ConfigLayout\n settings={\n <Panel\n model={model}\n configuration={configuration}\n onChangeModel={model => onModelChanged(model)}\n onChangeConfiguration={config => onConfigurationChanged(config)}\n groups={{\n Settings: {\n enableImages:\n enableImages.settings && toggle(enableImages.label),\n partialScoring:\n partialScoring.settings && toggle(partialScoring.label),\n lockChoiceOrder:\n lockChoiceOrder.settings && toggle(lockChoiceOrder.label),\n feedbackEnabled:\n feedback.settings && toggle(feedback.label)\n },\n Properties: {\n teacherInstructionsEnabled:\n teacherInstructions.settings &&\n toggle(teacherInstructions.label),\n studentInstructionsEnabled:\n studentInstructions.settings &&\n toggle(studentInstructions.label),\n promptEnabled: prompt.settings && toggle(prompt.label),\n rationaleEnabled: rationale.settings && toggle(rationale.label),\n spellCheckEnabled:\n spellCheck.settings && toggle(spellCheck.label),\n scoringType:\n scoringType.settings &&\n radio(scoringType.label, ['auto', 'rubric'])\n }\n }}\n />\n }\n >\n <div className={classes.content}>\n {teacherInstructionsEnabled && (\n <InputContainer\n label={teacherInstructions.label}\n className={classes.promptHolder}\n >\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 />\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer\n label={prompt.label}\n className={classes.promptHolder}\n >\n <EditableHtml\n className={classes.prompt}\n markup={model.prompt}\n onChange={this.onPromptChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n disableUnderline\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={maxImageWidth && maxImageWidth.prompt}\n maxImageHeight={maxImageHeight && maxImageHeight.prompt}\n uploadSoundSupport={uploadSoundSupport}\n />\n </InputContainer>\n )}\n\n {rationaleEnabled && (\n <InputContainer\n label={rationale.label}\n className={classes.promptHolder}\n >\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 />\n </InputContainer>\n )}\n <GeneralConfigBlock\n model={model}\n configuration={configuration}\n onResponseTypeChange={this.onResponseTypeChange}\n onLayoutChange={this.onLayoutChange}\n />\n <AnswerConfigBlock\n model={model}\n configuration={configuration}\n imageSupport={imageSupport}\n onChange={this.onChange}\n onAddRow={this.onAddRow}\n onDeleteRow={this.onDeleteRow}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n uploadSoundSupport={uploadSoundSupport}\n />\n {feedbackEnabled && (\n <FeedbackConfig\n feedback={model.feedback}\n onChange={this.onFeedbackChange}\n toolbarOpts={toolbarOpts}\n />\n )}\n </div>\n </layout.ConfigLayout>\n );\n }\n}\n\nexport const Config = Configure;\n\nexport default withDragContext(withStyles(styles)(Configure));\n"],"file":"configure.js"}
@@ -104,6 +104,16 @@ var MatchConfigure = /*#__PURE__*/function (_HTMLElement) {
104
104
  value: function onDeleteImage(src, done) {
105
105
  this.dispatchEvent(new _pieConfigureEvents.DeleteImageEvent(src, done));
106
106
  }
107
+ }, {
108
+ key: "insertSound",
109
+ value: function insertSound(handler) {
110
+ this.dispatchEvent(new _pieConfigureEvents.InsertSoundEvent(handler));
111
+ }
112
+ }, {
113
+ key: "onDeleteSound",
114
+ value: function onDeleteSound(src, done) {
115
+ this.dispatchEvent(new _pieConfigureEvents.DeleteSoundEvent(src, done));
116
+ }
107
117
  }, {
108
118
  key: "_render",
109
119
  value: function _render() {
@@ -116,6 +126,10 @@ var MatchConfigure = /*#__PURE__*/function (_HTMLElement) {
116
126
  imageSupport: {
117
127
  add: this.insertImage.bind(this),
118
128
  "delete": this.onDeleteImage.bind(this)
129
+ },
130
+ uploadSoundSupport: {
131
+ add: this.insertSound.bind(this),
132
+ "delete": this.onDeleteSound.bind(this)
119
133
  }
120
134
  });
121
135
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["log","MatchConfigure","_model","createDefaultModel","_configuration","defaultValues","configuration","m","_render","c","model","dispatchEvent","ModelUpdatedEvent","config","handler","InsertImageEvent","src","done","DeleteImageEvent","el","React","createElement","Configure","onModelChanged","bind","onConfigurationChanged","imageSupport","add","insertImage","onDeleteImage","ReactDOM","render","HTMLElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAKA;;AACA;;;;;;;;;;AAEA,IAAMA,GAAG,GAAG,uBAAM,8BAAN,CAAZ;;IAEqBC,c;;;;;AAOnB,4BAAc;AAAA;;AAAA;AACZ;AACA,UAAKC,MAAL,GAAcD,cAAc,CAACE,kBAAf,EAAd;AACA,UAAKC,cAAL,GAAsBC,qBAAcC,aAApC;AAHY;AAIb;;;;SAED,aAAUC,CAAV,EAAa;AACX,WAAKL,MAAL,GAAcD,cAAc,CAACE,kBAAf,CAAkCI,CAAlC,CAAd;;AACA,WAAKC,OAAL;AACD;;;SAED,aAAkBC,CAAlB,EAAqB;AACnB,WAAKL,cAAL,GAAsBK,CAAtB;;AACA,WAAKD,OAAL;AACD;;;WAED,wBAAeE,KAAf,EAAsB;AACpB,WAAKR,MAAL,GAAcQ,KAAd;AACAV,MAAAA,GAAG,CAAC,oBAAD,EAAuB,KAAKE,MAA5B,CAAH;;AACA,WAAKM,OAAL;;AACA,WAAKG,aAAL,CAAmB,IAAIC,qCAAJ,CAAsB,KAAKV,MAA3B,CAAnB;AACD;;;WAED,gCAAuBW,MAAvB,EAA+B;AAC7B,WAAKT,cAAL,GAAsBS,MAAtB;;AACA,WAAKL,OAAL;AACD;AAED;AACF;AACA;AACA;;;;WACE,qBAAYM,OAAZ,EAAqB;AACnB,WAAKH,aAAL,CAAmB,IAAII,oCAAJ,CAAqBD,OAArB,CAAnB;AACD;;;WAED,uBAAcE,GAAd,EAAmBC,IAAnB,EAAyB;AACvB,WAAKN,aAAL,CAAmB,IAAIO,oCAAJ,CAAqBF,GAArB,EAA0BC,IAA1B,CAAnB;AACD;;;WAED,mBAAU;AACR,UAAI,KAAKf,MAAT,EAAiB;AACf,YAAMiB,EAAE,gBAAGC,kBAAMC,aAAN,CAAoBC,qBAApB,EAA+B;AACxCC,UAAAA,cAAc,EAAE,KAAKA,cAAL,CAAoBC,IAApB,CAAyB,IAAzB,CADwB;AAExCC,UAAAA,sBAAsB,EAAE,KAAKA,sBAAL,CAA4BD,IAA5B,CAAiC,IAAjC,CAFgB;AAGxCd,UAAAA,KAAK,EAAE,KAAKR,MAH4B;AAIxCI,UAAAA,aAAa,EAAE,KAAKF,cAJoB;AAKxCsB,UAAAA,YAAY,EAAE;AACZC,YAAAA,GAAG,EAAE,KAAKC,WAAL,CAAiBJ,IAAjB,CAAsB,IAAtB,CADO;AAEZ,sBAAQ,KAAKK,aAAL,CAAmBL,IAAnB,CAAwB,IAAxB;AAFI;AAL0B,SAA/B,CAAX;;AAUAM,6BAASC,MAAT,CAAgBZ,EAAhB,EAAoB,IAApB;AACD;AACF;;;kDA7DyCa,W;;;iCAAvB/B,c,wBACS;AAAA,MAACS,KAAD,uEAAS,EAAT;AAAA,yCACrBL,qBAAcK,KADO,GAErBA,KAFqB;AAAA,C","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport Configure from './configure';\nimport {\n ModelUpdatedEvent,\n DeleteImageEvent,\n InsertImageEvent\n} from '@pie-framework/pie-configure-events';\nimport debug from 'debug';\nimport defaultValues from './defaults';\n\nconst log = debug('pie-elements:match:configure');\n\nexport default class MatchConfigure extends HTMLElement {\n static createDefaultModel = (model = {}) => ({\n ...defaultValues.model,\n ...model\n }\n );\n\n constructor() {\n super();\n this._model = MatchConfigure.createDefaultModel();\n this._configuration = defaultValues.configuration;\n }\n\n set model(m) {\n this._model = MatchConfigure.createDefaultModel(m);\n this._render();\n }\n\n set configuration(c) {\n this._configuration = c;\n this._render();\n }\n\n onModelChanged(model) {\n this._model = model;\n log('[onModelChanged]: ', this._model);\n this._render();\n this.dispatchEvent(new ModelUpdatedEvent(this._model));\n }\n\n onConfigurationChanged(config) {\n this._configuration = config;\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 _render() {\n if (this._model) {\n const el = React.createElement(Configure, {\n onModelChanged: this.onModelChanged.bind(this),\n onConfigurationChanged: this.onConfigurationChanged.bind(this),\n model: this._model,\n configuration: this._configuration,\n imageSupport: {\n add: this.insertImage.bind(this),\n delete: this.onDeleteImage.bind(this)\n }\n });\n ReactDOM.render(el, this);\n }\n }\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../src/index.js"],"names":["log","MatchConfigure","_model","createDefaultModel","_configuration","defaultValues","configuration","m","_render","c","model","dispatchEvent","ModelUpdatedEvent","config","handler","InsertImageEvent","src","done","DeleteImageEvent","InsertSoundEvent","DeleteSoundEvent","el","React","createElement","Configure","onModelChanged","bind","onConfigurationChanged","imageSupport","add","insertImage","onDeleteImage","uploadSoundSupport","insertSound","onDeleteSound","ReactDOM","render","HTMLElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAOA;;AACA;;;;;;;;;;AAEA,IAAMA,GAAG,GAAG,uBAAM,8BAAN,CAAZ;;IAEqBC,c;;;;;AAOnB,4BAAc;AAAA;;AAAA;AACZ;AACA,UAAKC,MAAL,GAAcD,cAAc,CAACE,kBAAf,EAAd;AACA,UAAKC,cAAL,GAAsBC,qBAAcC,aAApC;AAHY;AAIb;;;;SAED,aAAUC,CAAV,EAAa;AACX,WAAKL,MAAL,GAAcD,cAAc,CAACE,kBAAf,CAAkCI,CAAlC,CAAd;;AACA,WAAKC,OAAL;AACD;;;SAED,aAAkBC,CAAlB,EAAqB;AACnB,WAAKL,cAAL,GAAsBK,CAAtB;;AACA,WAAKD,OAAL;AACD;;;WAED,wBAAeE,KAAf,EAAsB;AACpB,WAAKR,MAAL,GAAcQ,KAAd;AACAV,MAAAA,GAAG,CAAC,oBAAD,EAAuB,KAAKE,MAA5B,CAAH;;AACA,WAAKM,OAAL;;AACA,WAAKG,aAAL,CAAmB,IAAIC,qCAAJ,CAAsB,KAAKV,MAA3B,CAAnB;AACD;;;WAED,gCAAuBW,MAAvB,EAA+B;AAC7B,WAAKT,cAAL,GAAsBS,MAAtB;;AACA,WAAKL,OAAL;AACD;AAED;AACF;AACA;AACA;;;;WACE,qBAAYM,OAAZ,EAAqB;AACnB,WAAKH,aAAL,CAAmB,IAAII,oCAAJ,CAAqBD,OAArB,CAAnB;AACD;;;WAED,uBAAcE,GAAd,EAAmBC,IAAnB,EAAyB;AACvB,WAAKN,aAAL,CAAmB,IAAIO,oCAAJ,CAAqBF,GAArB,EAA0BC,IAA1B,CAAnB;AACD;;;WAED,qBAAYH,OAAZ,EAAqB;AACnB,WAAKH,aAAL,CAAmB,IAAIQ,oCAAJ,CAAqBL,OAArB,CAAnB;AACD;;;WAED,uBAAcE,GAAd,EAAmBC,IAAnB,EAAyB;AACvB,WAAKN,aAAL,CAAmB,IAAIS,oCAAJ,CAAqBJ,GAArB,EAA0BC,IAA1B,CAAnB;AACD;;;WAED,mBAAU;AACR,UAAI,KAAKf,MAAT,EAAiB;AACf,YAAMmB,EAAE,gBAAGC,kBAAMC,aAAN,CAAoBC,qBAApB,EAA+B;AACxCC,UAAAA,cAAc,EAAE,KAAKA,cAAL,CAAoBC,IAApB,CAAyB,IAAzB,CADwB;AAExCC,UAAAA,sBAAsB,EAAE,KAAKA,sBAAL,CAA4BD,IAA5B,CAAiC,IAAjC,CAFgB;AAGxChB,UAAAA,KAAK,EAAE,KAAKR,MAH4B;AAIxCI,UAAAA,aAAa,EAAE,KAAKF,cAJoB;AAKxCwB,UAAAA,YAAY,EAAE;AACZC,YAAAA,GAAG,EAAE,KAAKC,WAAL,CAAiBJ,IAAjB,CAAsB,IAAtB,CADO;AAEZ,sBAAQ,KAAKK,aAAL,CAAmBL,IAAnB,CAAwB,IAAxB;AAFI,WAL0B;AASxCM,UAAAA,kBAAkB,EAAE;AAClBH,YAAAA,GAAG,EAAE,KAAKI,WAAL,CAAiBP,IAAjB,CAAsB,IAAtB,CADa;AAElB,sBAAQ,KAAKQ,aAAL,CAAmBR,IAAnB,CAAwB,IAAxB;AAFU;AAToB,SAA/B,CAAX;;AAcAS,6BAASC,MAAT,CAAgBf,EAAhB,EAAoB,IAApB;AACD;AACF;;;kDAzEyCgB,W;;;iCAAvBpC,c,wBACS;AAAA,MAACS,KAAD,uEAAS,EAAT;AAAA,yCACrBL,qBAAcK,KADO,GAErBA,KAFqB;AAAA,C","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport Configure from './configure';\nimport {\n ModelUpdatedEvent,\n DeleteImageEvent,\n InsertImageEvent,\n InsertSoundEvent,\n DeleteSoundEvent\n} from '@pie-framework/pie-configure-events';\nimport debug from 'debug';\nimport defaultValues from './defaults';\n\nconst log = debug('pie-elements:match:configure');\n\nexport default class MatchConfigure extends HTMLElement {\n static createDefaultModel = (model = {}) => ({\n ...defaultValues.model,\n ...model\n }\n );\n\n constructor() {\n super();\n this._model = MatchConfigure.createDefaultModel();\n this._configuration = defaultValues.configuration;\n }\n\n set model(m) {\n this._model = MatchConfigure.createDefaultModel(m);\n this._render();\n }\n\n set configuration(c) {\n this._configuration = c;\n this._render();\n }\n\n onModelChanged(model) {\n this._model = model;\n log('[onModelChanged]: ', this._model);\n this._render();\n this.dispatchEvent(new ModelUpdatedEvent(this._model));\n }\n\n onConfigurationChanged(config) {\n this._configuration = config;\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 if (this._model) {\n const el = React.createElement(Configure, {\n onModelChanged: this.onModelChanged.bind(this),\n onConfigurationChanged: this.onConfigurationChanged.bind(this),\n model: this._model,\n configuration: this._configuration,\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 ReactDOM.render(el, this);\n }\n }\n}\n"],"file":"index.js"}
@@ -199,7 +199,8 @@ var Row = /*#__PURE__*/function (_React$Component) {
199
199
  spellCheck = _this$props4.spellCheck,
200
200
  error = _this$props4.error,
201
201
  maxImageWidth = _this$props4.maxImageWidth,
202
- maxImageHeight = _this$props4.maxImageHeight;
202
+ maxImageHeight = _this$props4.maxImageHeight,
203
+ uploadSoundSupport = _this$props4.uploadSoundSupport;
203
204
  var dialog = this.state.dialog;
204
205
  var opacity = isDragging ? 0 : 1;
205
206
  var rowPlugins = {
@@ -245,7 +246,8 @@ var Row = /*#__PURE__*/function (_React$Component) {
245
246
  activePlugins: filteredDefaultPlugins,
246
247
  spellCheck: spellCheck,
247
248
  maxImageWidth: maxImageWidth,
248
- maxImageHeight: maxImageHeight
249
+ maxImageHeight: maxImageHeight,
250
+ uploadSoundSupport: uploadSoundSupport
249
251
  })), row.values.map(function (rowValue, rowIdx) {
250
252
  return /*#__PURE__*/_react["default"].createElement("div", {
251
253
  key: rowIdx,
@@ -296,6 +298,10 @@ exports.Row = Row;
296
298
  add: _propTypes["default"].func.isRequired,
297
299
  "delete": _propTypes["default"].func.isRequired
298
300
  }),
301
+ uploadSoundSupport: _propTypes["default"].shape({
302
+ add: _propTypes["default"].func.isRequired,
303
+ "delete": _propTypes["default"].func.isRequired
304
+ }),
299
305
  enableImages: _propTypes["default"].bool,
300
306
  toolbarOpts: _propTypes["default"].object,
301
307
  error: _propTypes["default"].string
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/row.jsx"],"names":["log","canDrag","Row","dialog","open","message","rowIndex","value","props","model","onChange","newModel","rows","currentRow","title","sameValue","filter","row","wasChanged","sameValueEntered","empty","length","setState","onOk","rowValueIndex","event","choiceMode","i","values","target","checked","idx","onDeleteRow","document","addEventListener","onMouseUpOnHandle","classes","imageSupport","connectDragSource","connectDropTarget","isDragging","enableImages","toolbarOpts","spellCheck","error","maxImageWidth","maxImageHeight","state","opacity","rowPlugins","image","disabled","audio","video","filteredDefaultPlugins","DEFAULT_PLUGINS","p","content","dragHandle","onMouseDownOnHandle","rowContainer","rowItem","questionText","onRowTitleChange","editor","map","rowValue","rowIdx","onRowValueChange","deleteIcon","errorText","separator","React","Component","PropTypes","object","isRequired","number","bool","func","onMoveRow","shape","add","string","styles","theme","actions","padding","justifyContent","choice","spacing","unit","overflow","cursor","dragDisabled","container","marginTop","display","flexDirection","alignItems","flex","width","minWidth","border","borderTop","fontSize","color","paddingTop","textAlign","StyledRow","NAME","choiceSource","beginDrag","id","index","StyledSource","connect","monitor","dragSource","choiceTarget","hover","drop","item","getItem","didDrop","StyledSourceAndTarget","dropTarget"],"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 { Checkbox } from '@pie-lib/config-ui';\nimport DragHandle from '@material-ui/icons/DragHandle';\nimport Radio from '@material-ui/core/Radio';\nimport Button from '@material-ui/core/Button';\nimport Delete from '@material-ui/icons/Delete';\nimport { DragSource, DropTarget } from 'react-dnd';\nimport debug from 'debug';\nimport EditableHtml, { DEFAULT_PLUGINS } from '@pie-lib/editable-html';\nimport { InfoDialog } from './common';\n\nconst log = debug('@pie-element:categorize:configure:choice');\n\nexport let canDrag = false;\n\nexport class Row extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n row: PropTypes.object.isRequired,\n idx: PropTypes.number.isRequired,\n isDragging: PropTypes.bool.isRequired,\n onDeleteRow: PropTypes.func.isRequired,\n onChange: PropTypes.func.isRequired,\n connectDragSource: PropTypes.func.isRequired,\n connectDropTarget: PropTypes.func.isRequired,\n onMoveRow: PropTypes.func.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired\n }),\n enableImages: PropTypes.bool,\n toolbarOpts: PropTypes.object,\n error: PropTypes.string\n };\n\n static defaultProps = {};\n\n state = {\n dialog: {\n open: false,\n message: ''\n }\n };\n\n componentDidMount() {\n document.addEventListener('mouseup', this.onMouseUpOnHandle);\n }\n\n onRowTitleChange = rowIndex => value => {\n const { model, onChange } = this.props;\n const newModel = { ...model };\n\n const rows = newModel.rows || []\n const currentRow = rows[rowIndex] && rows[rowIndex].title;\n\n const sameValue = rows.filter(row => {\n const wasChanged = currentRow !== value && `<div>${currentRow}</div>` !== value;\n const sameValueEntered = row.title === value || `<div>${row.title}</div>` === value;\n\n return wasChanged && sameValueEntered;\n });\n\n const empty = value === '<div></div>';\n\n if (sameValue.length || empty) {\n this.setState({\n dialog: {\n open: true,\n message: 'The question row headings must be non-blank and unique.',\n onOk: () => {\n this.setState(\n {\n dialog: {\n open: false,\n }\n }\n );\n }\n }\n });\n } else {\n newModel.rows[rowIndex].title = value;\n\n onChange(newModel);\n }\n };\n\n onRowValueChange = (rowIndex, rowValueIndex) => event => {\n const { model, onChange } = this.props;\n const newModel = { ...model };\n\n if (model.choiceMode === 'radio') {\n for (let i = 0; i < newModel.rows[rowIndex].values.length; i++) {\n newModel.rows[rowIndex].values[i] = false;\n }\n }\n\n newModel.rows[rowIndex].values[rowValueIndex] = event.target.checked;\n\n onChange(newModel);\n };\n\n onDeleteRow = (idx) => () => {\n const { model, onDeleteRow } = this.props;\n\n if(model.rows && model.rows.length === 1) {\n this.setState({\n dialog: {\n open: true,\n message: 'There has to be at least one question row.',\n onOk: () => {\n this.setState(\n {\n dialog: {\n open: false,\n }\n }\n );\n }\n }\n });\n } else {\n onDeleteRow(idx);\n }\n };\n\n onMouseDownOnHandle = () => {\n canDrag = true;\n };\n\n onMouseUpOnHandle = () => {\n canDrag = false;\n };\n\n render() {\n const {\n classes,\n imageSupport,\n connectDragSource,\n connectDropTarget,\n isDragging,\n model,\n row,\n idx,\n enableImages,\n toolbarOpts,\n spellCheck,\n error,\n maxImageWidth,\n maxImageHeight\n } = this.props;\n const { dialog } = this.state;\n const opacity = isDragging ? 0 : 1;\n\n const rowPlugins = {\n image: {\n disabled: !enableImages\n },\n audio: { disabled: true },\n video: { disabled: true }\n };\n const filteredDefaultPlugins = (DEFAULT_PLUGINS || [])\n .filter(p => p !== 'bulleted-list' && p !== 'numbered-list');\n\n const content = (\n <div style={{\n opacity: opacity\n }}>\n <span\n itemID={'handle'}\n className={classes.dragHandle}\n onMouseDown={this.onMouseDownOnHandle}\n >\n <DragHandle color={'primary'} />\n </span>\n <div className={classes.rowContainer}>\n <div className={classNames(classes.rowItem, classes.questionText)}>\n <EditableHtml\n imageSupport={imageSupport}\n autoWidthToolbar\n disableUnderline\n label={'label'}\n markup={row.title}\n onChange={this.onRowTitleChange(idx)}\n className={classes.editor}\n pluginProps={rowPlugins}\n toolbarOpts={toolbarOpts}\n allowValidation\n activePlugins={filteredDefaultPlugins}\n spellCheck={spellCheck}\n maxImageWidth={maxImageWidth}\n maxImageHeight={maxImageHeight}\n />\n </div>\n {row.values.map((rowValue, rowIdx) => (\n <div key={rowIdx} className={classes.rowItem}>\n {model.choiceMode === 'radio' ? (\n <Radio\n onChange={this.onRowValueChange(idx, rowIdx)}\n checked={rowValue === true}\n />\n ) : (\n <Checkbox\n onChange={this.onRowValueChange(idx, rowIdx)}\n checked={rowValue === true}\n label={''}\n />\n )}\n </div>\n ))}\n <div className={classes.deleteIcon}>\n <Button onClick={this.onDeleteRow(idx)}>\n <Delete className={classes.deleteIcon} />\n </Button>\n </div>\n </div>\n {error && <div className={classes.errorText}>{error}</div>}\n <hr className={classes.separator} />\n <InfoDialog\n title={dialog.message}\n open={dialog.open}\n onOk={dialog.onOk}\n />\n </div>\n );\n\n return connectDragSource(connectDropTarget(content));\n }\n}\nconst styles = theme => ({\n actions: {\n padding: 0,\n justifyContent: 'space-between'\n },\n choice: {\n padding: theme.spacing.unit,\n overflow: 'visible'\n },\n dragHandle: {\n cursor: 'move'\n },\n dragDisabled: {\n cursor: 'inherit'\n },\n\n container: {\n marginTop: theme.spacing.unit * 2,\n display: 'flex',\n flexDirection: 'column'\n },\n rowContainer: {\n marginTop: theme.spacing.unit * 2,\n display: 'flex',\n alignItems: 'center',\n flex: 1\n },\n rowItem: {\n flex: 1,\n display: 'flex',\n justifyContent: 'center',\n '&> div': {\n width: '100%'\n }\n },\n deleteIcon: {\n flex: 0.5,\n minWidth: '88px',\n },\n questionText: {\n flex: 2,\n display: 'flex',\n justifyContent: 'flex-start'\n },\n separator: {\n marginTop: theme.spacing.unit * 2,\n border: 0,\n borderTop: '2px solid lightgray',\n width: '100%'\n },\n errorText: {\n fontSize: '12px',\n color: 'red',\n paddingTop: '10px',\n textAlign: 'center'\n }\n});\n\nconst StyledRow = withStyles(styles)(Row);\n\nconst NAME = 'row-config';\n\nexport const choiceSource = {\n canDrag() {\n return canDrag;\n },\n beginDrag(props) {\n return {\n id: props.row.id,\n index: props.idx\n };\n }\n};\n\nconst StyledSource = DragSource(NAME, choiceSource, (connect, monitor) => ({\n connectDragSource: connect.dragSource(),\n isDragging: monitor.isDragging()\n}))(StyledRow);\n\nexport const choiceTarget = {\n hover() {\n log('[hover]');\n },\n drop(props, monitor) {\n const item = monitor.getItem();\n log('[drop] item: ', item, 'didDrop?', monitor.didDrop());\n props.onMoveRow(item.index, props.idx);\n }\n};\n\nconst StyledSourceAndTarget = DropTarget(NAME, choiceTarget, connect => ({\n connectDropTarget: connect.dropTarget()\n}))(StyledSource);\n\nexport default StyledSourceAndTarget;\n"],"file":"row.js"}
1
+ {"version":3,"sources":["../src/row.jsx"],"names":["log","canDrag","Row","dialog","open","message","rowIndex","value","props","model","onChange","newModel","rows","currentRow","title","sameValue","filter","row","wasChanged","sameValueEntered","empty","length","setState","onOk","rowValueIndex","event","choiceMode","i","values","target","checked","idx","onDeleteRow","document","addEventListener","onMouseUpOnHandle","classes","imageSupport","connectDragSource","connectDropTarget","isDragging","enableImages","toolbarOpts","spellCheck","error","maxImageWidth","maxImageHeight","uploadSoundSupport","state","opacity","rowPlugins","image","disabled","audio","video","filteredDefaultPlugins","DEFAULT_PLUGINS","p","content","dragHandle","onMouseDownOnHandle","rowContainer","rowItem","questionText","onRowTitleChange","editor","map","rowValue","rowIdx","onRowValueChange","deleteIcon","errorText","separator","React","Component","PropTypes","object","isRequired","number","bool","func","onMoveRow","shape","add","string","styles","theme","actions","padding","justifyContent","choice","spacing","unit","overflow","cursor","dragDisabled","container","marginTop","display","flexDirection","alignItems","flex","width","minWidth","border","borderTop","fontSize","color","paddingTop","textAlign","StyledRow","NAME","choiceSource","beginDrag","id","index","StyledSource","connect","monitor","dragSource","choiceTarget","hover","drop","item","getItem","didDrop","StyledSourceAndTarget","dropTarget"],"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 { Checkbox } from '@pie-lib/config-ui';\nimport DragHandle from '@material-ui/icons/DragHandle';\nimport Radio from '@material-ui/core/Radio';\nimport Button from '@material-ui/core/Button';\nimport Delete from '@material-ui/icons/Delete';\nimport { DragSource, DropTarget } from 'react-dnd';\nimport debug from 'debug';\nimport EditableHtml, { DEFAULT_PLUGINS } from '@pie-lib/editable-html';\nimport { InfoDialog } from './common';\n\nconst log = debug('@pie-element:categorize:configure:choice');\n\nexport let canDrag = false;\n\nexport class Row extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n row: PropTypes.object.isRequired,\n idx: PropTypes.number.isRequired,\n isDragging: PropTypes.bool.isRequired,\n onDeleteRow: PropTypes.func.isRequired,\n onChange: PropTypes.func.isRequired,\n connectDragSource: PropTypes.func.isRequired,\n connectDropTarget: PropTypes.func.isRequired,\n onMoveRow: 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 enableImages: PropTypes.bool,\n toolbarOpts: PropTypes.object,\n error: PropTypes.string\n };\n\n static defaultProps = {};\n\n state = {\n dialog: {\n open: false,\n message: ''\n }\n };\n\n componentDidMount() {\n document.addEventListener('mouseup', this.onMouseUpOnHandle);\n }\n\n onRowTitleChange = rowIndex => value => {\n const { model, onChange } = this.props;\n const newModel = { ...model };\n\n const rows = newModel.rows || []\n const currentRow = rows[rowIndex] && rows[rowIndex].title;\n\n const sameValue = rows.filter(row => {\n const wasChanged = currentRow !== value && `<div>${currentRow}</div>` !== value;\n const sameValueEntered = row.title === value || `<div>${row.title}</div>` === value;\n\n return wasChanged && sameValueEntered;\n });\n\n const empty = value === '<div></div>';\n\n if (sameValue.length || empty) {\n this.setState({\n dialog: {\n open: true,\n message: 'The question row headings must be non-blank and unique.',\n onOk: () => {\n this.setState(\n {\n dialog: {\n open: false,\n }\n }\n );\n }\n }\n });\n } else {\n newModel.rows[rowIndex].title = value;\n\n onChange(newModel);\n }\n };\n\n onRowValueChange = (rowIndex, rowValueIndex) => event => {\n const { model, onChange } = this.props;\n const newModel = { ...model };\n\n if (model.choiceMode === 'radio') {\n for (let i = 0; i < newModel.rows[rowIndex].values.length; i++) {\n newModel.rows[rowIndex].values[i] = false;\n }\n }\n\n newModel.rows[rowIndex].values[rowValueIndex] = event.target.checked;\n\n onChange(newModel);\n };\n\n onDeleteRow = (idx) => () => {\n const { model, onDeleteRow } = this.props;\n\n if(model.rows && model.rows.length === 1) {\n this.setState({\n dialog: {\n open: true,\n message: 'There has to be at least one question row.',\n onOk: () => {\n this.setState(\n {\n dialog: {\n open: false,\n }\n }\n );\n }\n }\n });\n } else {\n onDeleteRow(idx);\n }\n };\n\n onMouseDownOnHandle = () => {\n canDrag = true;\n };\n\n onMouseUpOnHandle = () => {\n canDrag = false;\n };\n\n render() {\n const {\n classes,\n imageSupport,\n connectDragSource,\n connectDropTarget,\n isDragging,\n model,\n row,\n idx,\n enableImages,\n toolbarOpts,\n spellCheck,\n error,\n maxImageWidth,\n maxImageHeight,\n uploadSoundSupport\n } = this.props;\n const { dialog } = this.state;\n const opacity = isDragging ? 0 : 1;\n\n const rowPlugins = {\n image: {\n disabled: !enableImages\n },\n audio: { disabled: true },\n video: { disabled: true }\n };\n const filteredDefaultPlugins = (DEFAULT_PLUGINS || [])\n .filter(p => p !== 'bulleted-list' && p !== 'numbered-list');\n\n const content = (\n <div style={{\n opacity: opacity\n }}>\n <span\n itemID={'handle'}\n className={classes.dragHandle}\n onMouseDown={this.onMouseDownOnHandle}\n >\n <DragHandle color={'primary'} />\n </span>\n <div className={classes.rowContainer}>\n <div className={classNames(classes.rowItem, classes.questionText)}>\n <EditableHtml\n imageSupport={imageSupport}\n autoWidthToolbar\n disableUnderline\n label={'label'}\n markup={row.title}\n onChange={this.onRowTitleChange(idx)}\n className={classes.editor}\n pluginProps={rowPlugins}\n toolbarOpts={toolbarOpts}\n allowValidation\n activePlugins={filteredDefaultPlugins}\n spellCheck={spellCheck}\n maxImageWidth={maxImageWidth}\n maxImageHeight={maxImageHeight}\n uploadSoundSupport={uploadSoundSupport}\n />\n </div>\n {row.values.map((rowValue, rowIdx) => (\n <div key={rowIdx} className={classes.rowItem}>\n {model.choiceMode === 'radio' ? (\n <Radio\n onChange={this.onRowValueChange(idx, rowIdx)}\n checked={rowValue === true}\n />\n ) : (\n <Checkbox\n onChange={this.onRowValueChange(idx, rowIdx)}\n checked={rowValue === true}\n label={''}\n />\n )}\n </div>\n ))}\n <div className={classes.deleteIcon}>\n <Button onClick={this.onDeleteRow(idx)}>\n <Delete className={classes.deleteIcon} />\n </Button>\n </div>\n </div>\n {error && <div className={classes.errorText}>{error}</div>}\n <hr className={classes.separator} />\n <InfoDialog\n title={dialog.message}\n open={dialog.open}\n onOk={dialog.onOk}\n />\n </div>\n );\n\n return connectDragSource(connectDropTarget(content));\n }\n}\nconst styles = theme => ({\n actions: {\n padding: 0,\n justifyContent: 'space-between'\n },\n choice: {\n padding: theme.spacing.unit,\n overflow: 'visible'\n },\n dragHandle: {\n cursor: 'move'\n },\n dragDisabled: {\n cursor: 'inherit'\n },\n\n container: {\n marginTop: theme.spacing.unit * 2,\n display: 'flex',\n flexDirection: 'column'\n },\n rowContainer: {\n marginTop: theme.spacing.unit * 2,\n display: 'flex',\n alignItems: 'center',\n flex: 1\n },\n rowItem: {\n flex: 1,\n display: 'flex',\n justifyContent: 'center',\n '&> div': {\n width: '100%'\n }\n },\n deleteIcon: {\n flex: 0.5,\n minWidth: '88px',\n },\n questionText: {\n flex: 2,\n display: 'flex',\n justifyContent: 'flex-start'\n },\n separator: {\n marginTop: theme.spacing.unit * 2,\n border: 0,\n borderTop: '2px solid lightgray',\n width: '100%'\n },\n errorText: {\n fontSize: '12px',\n color: 'red',\n paddingTop: '10px',\n textAlign: 'center'\n }\n});\n\nconst StyledRow = withStyles(styles)(Row);\n\nconst NAME = 'row-config';\n\nexport const choiceSource = {\n canDrag() {\n return canDrag;\n },\n beginDrag(props) {\n return {\n id: props.row.id,\n index: props.idx\n };\n }\n};\n\nconst StyledSource = DragSource(NAME, choiceSource, (connect, monitor) => ({\n connectDragSource: connect.dragSource(),\n isDragging: monitor.isDragging()\n}))(StyledRow);\n\nexport const choiceTarget = {\n hover() {\n log('[hover]');\n },\n drop(props, monitor) {\n const item = monitor.getItem();\n log('[drop] item: ', item, 'didDrop?', monitor.didDrop());\n props.onMoveRow(item.index, props.idx);\n }\n};\n\nconst StyledSourceAndTarget = DropTarget(NAME, choiceTarget, connect => ({\n connectDropTarget: connect.dropTarget()\n}))(StyledSource);\n\nexport default StyledSourceAndTarget;\n"],"file":"row.js"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pie-element/match-configure",
3
3
  "private": true,
4
- "version": "5.1.8",
4
+ "version": "5.1.9",
5
5
  "description": "",
6
6
  "main": "lib/index.js",
7
7
  "module": "src/index.js",
@@ -9,11 +9,11 @@
9
9
  "dependencies": {
10
10
  "@material-ui/core": "^3.9.2",
11
11
  "@material-ui/icons": "^3.0.1",
12
- "@pie-framework/pie-configure-events": "^1.2.0",
13
- "@pie-lib/config-ui": "^11.0.16",
12
+ "@pie-framework/pie-configure-events": "^1.3.0",
13
+ "@pie-lib/config-ui": "^11.0.19",
14
14
  "@pie-lib/drag": "^1.1.52",
15
- "@pie-lib/editable-html": "^9.1.6",
16
- "@pie-lib/scoring-config": "^3.5.180",
15
+ "@pie-lib/editable-html": "^9.2.2",
16
+ "@pie-lib/scoring-config": "^3.5.183",
17
17
  "classnames": "^2.2.5",
18
18
  "debug": "^3.1.0",
19
19
  "prop-types": "^15.6.2",
@@ -262,7 +262,8 @@
262
262
  "title": "rowTitles"
263
263
  }
264
264
  }
265
- },
265
+ }
266
+ },
266
267
  "showPrompt": {
267
268
  "description": "Determines whether prompt field will be displayed or not",
268
269
  "default": true,
@@ -327,4 +328,4 @@
327
328
  }
328
329
  },
329
330
  "$schema": "http://json-schema.org/draft-07/schema#"
330
- }
331
+ }
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "access": "public"
5
5
  },
6
6
  "repository": "pie-framework/pie-elements",
7
- "version": "5.1.9",
7
+ "version": "5.1.10",
8
8
  "main": "lib/index.js",
9
9
  "description": "",
10
10
  "scripts": {
@@ -14,9 +14,9 @@
14
14
  "dependencies": {
15
15
  "@material-ui/core": "^3.9.2",
16
16
  "@pie-framework/pie-player-events": "^0.1.0",
17
- "@pie-lib/correct-answer-toggle": "^2.3.45",
17
+ "@pie-lib/correct-answer-toggle": "^2.3.46",
18
18
  "@pie-lib/math-rendering": "^2.5.0",
19
- "@pie-lib/render-ui": "^4.13.5",
19
+ "@pie-lib/render-ui": "^4.13.6",
20
20
  "classnames": "^2.2.5",
21
21
  "debug": "^4.1.1",
22
22
  "lodash": "^4.17.10",
@@ -26,6 +26,6 @@
26
26
  },
27
27
  "author": "",
28
28
  "license": "ISC",
29
- "gitHead": "dec027da9b944f8ee4286ab27e27fb888f657155",
29
+ "gitHead": "f60d1edac928da4682a9789000e3c8cf464348c0",
30
30
  "module": "src/index.js"
31
31
  }