@pie-element/match 5.3.2-next.47 → 5.3.2-next.83
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/configure/lib/answer-config-block.js +21 -27
- package/configure/lib/answer-config-block.js.map +1 -1
- package/configure/lib/configure.js +39 -44
- package/configure/lib/configure.js.map +1 -1
- package/configure/lib/defaults.js +1 -0
- package/configure/lib/defaults.js.map +1 -1
- package/configure/lib/general-config-block.js +4 -4
- package/configure/lib/general-config-block.js.map +1 -1
- package/configure/lib/row.js +15 -25
- package/configure/lib/row.js.map +1 -1
- package/docs/config-schema.json +5 -0
- package/docs/config-schema.json.md +4 -0
- package/package.json +2 -2
|
@@ -47,7 +47,7 @@ var _lodash = _interopRequireDefault(require("lodash"));
|
|
|
47
47
|
|
|
48
48
|
var _editableHtml = _interopRequireWildcard(require("@pie-lib/editable-html"));
|
|
49
49
|
|
|
50
|
-
var
|
|
50
|
+
var _configUi = require("@pie-lib/config-ui");
|
|
51
51
|
|
|
52
52
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
53
53
|
|
|
@@ -82,7 +82,7 @@ var styles = function styles(theme) {
|
|
|
82
82
|
justifyContent: 'center',
|
|
83
83
|
'&> div': {
|
|
84
84
|
width: '150px',
|
|
85
|
-
padding:
|
|
85
|
+
padding: theme.spacing.unit * 1.5,
|
|
86
86
|
textAlign: 'center'
|
|
87
87
|
}
|
|
88
88
|
},
|
|
@@ -118,9 +118,9 @@ var styles = function styles(theme) {
|
|
|
118
118
|
}
|
|
119
119
|
},
|
|
120
120
|
errorText: {
|
|
121
|
-
fontSize:
|
|
121
|
+
fontSize: theme.typography.fontSize - 2,
|
|
122
122
|
color: 'red',
|
|
123
|
-
|
|
123
|
+
marginBottom: theme.spacing.unit
|
|
124
124
|
}
|
|
125
125
|
};
|
|
126
126
|
};
|
|
@@ -141,9 +141,7 @@ var AnswerConfigBlock = /*#__PURE__*/function (_React$Component) {
|
|
|
141
141
|
|
|
142
142
|
_this = _super.call.apply(_super, [this].concat(args));
|
|
143
143
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {
|
|
144
|
-
|
|
145
|
-
open: false
|
|
146
|
-
}
|
|
144
|
+
showWarning: false
|
|
147
145
|
});
|
|
148
146
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "moveRow", function (from, to) {
|
|
149
147
|
var _this$props = _this.props,
|
|
@@ -219,16 +217,7 @@ var AnswerConfigBlock = /*#__PURE__*/function (_React$Component) {
|
|
|
219
217
|
|
|
220
218
|
if (sameValue.length || empty) {
|
|
221
219
|
_this.setState({
|
|
222
|
-
|
|
223
|
-
open: true,
|
|
224
|
-
onOk: function onOk() {
|
|
225
|
-
_this.setState({
|
|
226
|
-
dialog: {
|
|
227
|
-
open: false
|
|
228
|
-
}
|
|
229
|
-
});
|
|
230
|
-
}
|
|
231
|
-
}
|
|
220
|
+
showWarning: true
|
|
232
221
|
});
|
|
233
222
|
} else {
|
|
234
223
|
newModel.headers[headerIndex] = value;
|
|
@@ -262,7 +251,7 @@ var AnswerConfigBlock = /*#__PURE__*/function (_React$Component) {
|
|
|
262
251
|
_ref2$maxImageHeight = _ref2.maxImageHeight,
|
|
263
252
|
maxImageHeight = _ref2$maxImageHeight === void 0 ? {} : _ref2$maxImageHeight;
|
|
264
253
|
|
|
265
|
-
var
|
|
254
|
+
var showWarning = this.state.showWarning;
|
|
266
255
|
|
|
267
256
|
var _ref3 = model || {},
|
|
268
257
|
errors = _ref3.errors;
|
|
@@ -289,9 +278,7 @@ var AnswerConfigBlock = /*#__PURE__*/function (_React$Component) {
|
|
|
289
278
|
}, /*#__PURE__*/React.createElement(_Typography["default"], {
|
|
290
279
|
type: "body1",
|
|
291
280
|
component: "div"
|
|
292
|
-
}, "Click on the labels to edit or remove. Set the correct answers by clicking each correct answer per row."),
|
|
293
|
-
className: classes.errorText
|
|
294
|
-
}, correctResponseError), /*#__PURE__*/React.createElement("div", {
|
|
281
|
+
}, "Click on the labels to edit or remove. Set the correct answers by clicking each correct answer per row."), /*#__PURE__*/React.createElement("div", {
|
|
295
282
|
className: classes.rowTable
|
|
296
283
|
}, /*#__PURE__*/React.createElement("div", {
|
|
297
284
|
className: classes.rowContainer
|
|
@@ -334,17 +321,24 @@ var AnswerConfigBlock = /*#__PURE__*/function (_React$Component) {
|
|
|
334
321
|
enableImages: model.enableImages,
|
|
335
322
|
toolbarOpts: toolbarOpts,
|
|
336
323
|
spellCheck: spellCheck,
|
|
337
|
-
error: rowsErrors
|
|
324
|
+
error: rowsErrors === null || rowsErrors === void 0 ? void 0 : rowsErrors[row.id],
|
|
338
325
|
maxImageWidth: maxImageWidth && maxImageWidth.rowTitles || defaultImageMaxWidth,
|
|
339
326
|
maxImageHeight: maxImageHeight && maxImageHeight.rowTitles || defaultImageMaxHeight,
|
|
340
327
|
uploadSoundSupport: uploadSoundSupport
|
|
341
328
|
});
|
|
342
|
-
}), /*#__PURE__*/React.createElement(
|
|
329
|
+
}), correctResponseError && /*#__PURE__*/React.createElement("div", {
|
|
330
|
+
className: classes.errorText
|
|
331
|
+
}, correctResponseError), /*#__PURE__*/React.createElement(_addRow["default"], {
|
|
343
332
|
onAddClick: onAddRow
|
|
344
|
-
})), /*#__PURE__*/React.createElement(
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
333
|
+
})), /*#__PURE__*/React.createElement(_configUi.AlertDialog, {
|
|
334
|
+
open: showWarning,
|
|
335
|
+
title: "Warning",
|
|
336
|
+
text: "The column headings must be non-blank and unique.",
|
|
337
|
+
onConfirm: function onConfirm() {
|
|
338
|
+
return _this2.setState({
|
|
339
|
+
showWarning: false
|
|
340
|
+
});
|
|
341
|
+
}
|
|
348
342
|
}));
|
|
349
343
|
}
|
|
350
344
|
}]);
|
|
@@ -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","uploadSoundSupport","maxImageWidth","maxImageHeight","state","errors","correctResponseError","rowsErrors","filteredDefaultPlugins","DEFAULT_PLUGINS","p","labelPlugins","audio","disabled","video","defaultImageMaxWidth","prompt","defaultImageMaxHeight","settings","map","idx","onHeaderChange","language","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 = [...remainingRows.slice(0, to), movedRow, ...remainingRows.slice(to)];\n\n log('update: ', update);\n\n newModel.rows = update;\n\n onChange(newModel);\n };\n\n onChange =\n (name, isBoolean) =>\n ({ 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 dialog: {\n open: false,\n },\n });\n },\n },\n });\n } else {\n newModel.headers[headerIndex] = value;\n\n onChange(newModel);\n }\n };\n\n render() {\n const { classes, model, onAddRow, imageSupport, configuration, toolbarOpts, spellCheck, 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 || []).filter(\n (p) => p !== 'table' && p !== 'bulleted-list' && p !== 'numbered-list',\n );\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 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 spellCheck={spellCheck}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\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 title={'The column headings must be non-blank and unique.'} open={dialog.open} onOk={dialog.onOk} />\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","typography","color","marginBottom","AnswerConfigBlock","showWarning","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","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","language","row","onDeleteRow","moveRow","enableImages","id","rowTitles","React","Component","PropTypes","object","isRequired","func","shape","add"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;AAEA,IAAMA,GAAG,GAAG,uBAAM,8BAAN,CAAZ;;AAEA,IAAMC,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBC,IAAAA,SAAS,EAAE;AACTC,MAAAA,SAAS,EAAEF,KAAK,CAACG,OAAN,CAAcC,IAAd,GAAqB,CADvB;AAETC,MAAAA,OAAO,EAAE,MAFA;AAGTC,MAAAA,aAAa,EAAE;AAHN,KADc;AAMzBC,IAAAA,YAAY,EAAE;AACZL,MAAAA,SAAS,EAAEF,KAAK,CAACG,OAAN,CAAcC,IAAd,GAAqB,CADpB;AAEZC,MAAAA,OAAO,EAAE,MAFG;AAGZG,MAAAA,UAAU,EAAE,QAHA;AAIZC,MAAAA,IAAI,EAAE;AAJM,KANW;AAYzBC,IAAAA,OAAO,EAAE;AACPD,MAAAA,IAAI,EAAE,CADC;AAEPJ,MAAAA,OAAO,EAAE,MAFF;AAGPM,MAAAA,cAAc,EAAE,QAHT;AAIP,gBAAU;AACRC,QAAAA,KAAK,EAAE,OADC;AAERC,QAAAA,OAAO,EAAEb,KAAK,CAACG,OAAN,CAAcC,IAAd,GAAqB,GAFtB;AAGRU,QAAAA,SAAS,EAAE;AAHH;AAJH,KAZgB;AAsBzBC,IAAAA,UAAU,EAAE;AACVN,MAAAA,IAAI,EAAE,GADI;AAEVO,MAAAA,QAAQ,EAAE;AAFA,KAtBa;AA0BzBC,IAAAA,YAAY,EAAE;AACZR,MAAAA,IAAI,EAAE,CADM;AAEZJ,MAAAA,OAAO,EAAE,MAFG;AAGZM,MAAAA,cAAc,EAAE,YAHJ;AAIZ,gBAAU;AACRC,QAAAA,KAAK,EAAE,MADC;AAERC,QAAAA,OAAO,EAAE,CAFD;AAGRK,QAAAA,QAAQ,EAAE,OAHF;AAIRJ,QAAAA,SAAS,EAAE,MAJH;AAKRE,QAAAA,QAAQ,EAAE;AALF;AAJE,KA1BW;AAsCzBG,IAAAA,QAAQ,EAAE;AACRd,MAAAA,OAAO,EAAE,MADD;AAERC,MAAAA,aAAa,EAAE;AAFP,KAtCe;AA0CzBc,IAAAA,SAAS,EAAE;AACTlB,MAAAA,SAAS,EAAEF,KAAK,CAACG,OAAN,CAAcC,IAAd,GAAqB,CADvB;AAETiB,MAAAA,MAAM,EAAE,CAFC;AAGTC,MAAAA,SAAS,EAAE,qBAHF;AAITV,MAAAA,KAAK,EAAE;AAJE,KA1Cc;AAgDzBW,IAAAA,WAAW,EAAE;AACX,gBAAU;AACRC,QAAAA,UAAU,EAAE;AADJ;AADC,KAhDY;AAqDzBC,IAAAA,SAAS,EAAE;AACTC,MAAAA,QAAQ,EAAE1B,KAAK,CAAC2B,UAAN,CAAiBD,QAAjB,GAA4B,CAD7B;AAETE,MAAAA,KAAK,EAAE,KAFE;AAGTC,MAAAA,YAAY,EAAE7B,KAAK,CAACG,OAAN,CAAcC;AAHnB;AArDc,GAAZ;AAAA,CAAf;;IA4DM0B,iB;;;;;;;;;;;;;;;8FAmBI;AAAEC,MAAAA,WAAW,EAAE;AAAf,K;gGAEE,UAACC,IAAD,EAAOC,EAAP,EAAc;AACtB,wBAA4B,MAAKC,KAAjC;AAAA,UAAQC,KAAR,eAAQA,KAAR;AAAA,UAAeC,QAAf,eAAeA,QAAf;;AACA,UAAMC,QAAQ,qBAAQF,KAAR,CAAd;;AACA,UAAMG,IAAI,GAAGD,QAAQ,CAACC,IAAT,IAAiB,EAA9B;AAEAxC,MAAAA,GAAG,CAAC,aAAD,EAAgBkC,IAAhB,EAAsBC,EAAtB,CAAH;;AAEA,yBAAoCK,IAAI,CAACC,MAAL,CAClC,UAACC,GAAD,EAAMC,IAAN,EAAYC,KAAZ,EAAsB;AACpB,YAAIA,KAAK,KAAKV,IAAd,EAAoB;AAClBQ,UAAAA,GAAG,CAACG,QAAJ,GAAeF,IAAf;AACD,SAFD,MAEO;AACLD,UAAAA,GAAG,CAACI,aAAJ,CAAkBC,IAAlB,CAAuBJ,IAAvB;AACD;;AAED,eAAOD,GAAP;AACD,OATiC,EAUlC;AAAEG,QAAAA,QAAQ,EAAE,IAAZ;AAAkBC,QAAAA,aAAa,EAAE;AAAjC,OAVkC,CAApC;AAAA,UAAQD,QAAR,gBAAQA,QAAR;AAAA,UAAkBC,aAAlB,gBAAkBA,aAAlB;;AAaA,UAAME,MAAM,iDAAOF,aAAa,CAACG,KAAd,CAAoB,CAApB,EAAuBd,EAAvB,CAAP,IAAmCU,QAAnC,uCAAgDC,aAAa,CAACG,KAAd,CAAoBd,EAApB,CAAhD,EAAZ;AAEAnC,MAAAA,GAAG,CAAC,UAAD,EAAagD,MAAb,CAAH;AAEAT,MAAAA,QAAQ,CAACC,IAAT,GAAgBQ,MAAhB;AAEAV,MAAAA,QAAQ,CAACC,QAAD,CAAR;AACD,K;iGAGC,UAACW,IAAD,EAAOC,SAAP;AAAA,aACA,gBAAgB;AAAA,YAAbC,MAAa,QAAbA,MAAa;AACd,2BAA4B,MAAKhB,KAAjC;AAAA,YAAQC,KAAR,gBAAQA,KAAR;AAAA,YAAeC,QAAf,gBAAeA,QAAf;AACA,YAAIe,KAAJ;;AAEA,YAAIF,SAAJ,EAAe;AACbE,UAAAA,KAAK,GAAGD,MAAM,CAACE,OAAf;AACD,SAFD,MAEO;AACLD,UAAAA,KAAK,GAAGD,MAAM,CAACC,KAAf;AACD;;AAEDE,2BAAOC,GAAP,CAAWnB,KAAX,EAAkBa,IAAlB,EAAwBG,KAAxB;;AACAf,QAAAA,QAAQ,CAACD,KAAD,EAAQa,IAAR,CAAR;AACD,OAbD;AAAA,K;uGAee,UAACO,WAAD;AAAA,aAAiB,UAACJ,KAAD,EAAW;AAC3C,2BAA4B,MAAKjB,KAAjC;AAAA,YAAQC,KAAR,gBAAQA,KAAR;AAAA,YAAeC,QAAf,gBAAeA,QAAf;;AACA,YAAMC,QAAQ,qBAAQF,KAAR,CAAd;;AAEA,YAAIoB,WAAW,KAAK,CAApB,EAAuB;AACrBlB,UAAAA,QAAQ,CAACmB,OAAT,CAAiBD,WAAjB,IAAgCJ,KAAhC;AACAf,UAAAA,QAAQ,CAACC,QAAD,CAAR;AAEA;AACD;;AAED,YAAMmB,OAAO,GAAGnB,QAAQ,CAACmB,OAAT,IAAoB,EAApC;AAEA,YAAMC,aAAa,GAAGD,OAAO,CAACD,WAAD,CAA7B;AAEA,YAAMG,SAAS,GAAGF,OAAO,CAACG,MAAR,CAAe,UAACC,MAAD,EAAY;AAC3C,cAAMC,UAAU,GAAGJ,aAAa,KAAKN,KAAlB,IAA2B,eAAQM,aAAR,gBAAkCN,KAAhF;AACA,cAAMW,gBAAgB,GAAGF,MAAM,KAAKT,KAAX,IAAoB,eAAQS,MAAR,gBAA2BT,KAAxE;AAEA,iBAAOU,UAAU,IAAIC,gBAArB;AACD,SALiB,CAAlB;AAOA,YAAMC,KAAK,GAAGZ,KAAK,KAAK,aAAxB;;AAEA,YAAIO,SAAS,CAACM,MAAV,IAAoBD,KAAxB,EAA+B;AAC7B,gBAAKE,QAAL,CAAc;AAAElC,YAAAA,WAAW,EAAE;AAAf,WAAd;AACD,SAFD,MAEO;AACLM,UAAAA,QAAQ,CAACmB,OAAT,CAAiBD,WAAjB,IAAgCJ,KAAhC;AAEAf,UAAAA,QAAQ,CAACC,QAAD,CAAR;AACD;AACF,OA/BgB;AAAA,K;;;;;;WAiCjB,kBAAS;AAAA;;AACP,yBACE,KAAKH,KADP;AAAA,UAAQgC,OAAR,gBAAQA,OAAR;AAAA,UAAiB/B,KAAjB,gBAAiBA,KAAjB;AAAA,UAAwBgC,QAAxB,gBAAwBA,QAAxB;AAAA,UAAkCC,YAAlC,gBAAkCA,YAAlC;AAAA,UAAgDC,aAAhD,gBAAgDA,aAAhD;AAAA,UAA+DC,WAA/D,gBAA+DA,WAA/D;AAAA,UAA4EC,UAA5E,gBAA4EA,UAA5E;AAAA,UAAwFC,kBAAxF,gBAAwFA,kBAAxF;;AAEA,kBAAkEH,aAAa,IAAI,EAAnF;AAAA,gCAAQb,OAAR;AAAA,UAAQA,OAAR,8BAAkB,EAAlB;AAAA,sCAAsBiB,aAAtB;AAAA,UAAsBA,aAAtB,oCAAsC,EAAtC;AAAA,uCAA0CC,cAA1C;AAAA,UAA0CA,cAA1C,qCAA2D,EAA3D;;AACA,UAAQ3C,WAAR,GAAwB,KAAK4C,KAA7B,CAAQ5C,WAAR;;AACA,kBAAmBI,KAAK,IAAI,EAA5B;AAAA,UAAQyC,MAAR,SAAQA,MAAR;;AACA,kBAA6CA,MAAM,IAAI,EAAvD;AAAA,UAAQC,oBAAR,SAAQA,oBAAR;AAAA,UAA8BC,UAA9B,SAA8BA,UAA9B;;AAEA,UAAMC,sBAAsB,GAAG,CAACC,iCAAmB,EAApB,EAAwBrB,MAAxB,CAC7B,UAACsB,CAAD;AAAA,eAAOA,CAAC,KAAK,OAAN,IAAiBA,CAAC,KAAK,eAAvB,IAA0CA,CAAC,KAAK,eAAvD;AAAA,OAD6B,CAA/B;AAGA,UAAMC,YAAY,GAAG;AACnBC,QAAAA,KAAK,EAAE;AAAEC,UAAAA,QAAQ,EAAE;AAAZ,SADY;AAEnBC,QAAAA,KAAK,EAAE;AAAED,UAAAA,QAAQ,EAAE;AAAZ;AAFY,OAArB;AAKA,UAAME,oBAAoB,GAAGb,aAAa,IAAIA,aAAa,CAACc,MAA5D;AACA,UAAMC,qBAAqB,GAAGd,cAAc,IAAIA,cAAc,CAACa,MAA/D;AAEA,0BACE;AAAK,QAAA,SAAS,EAAErB,OAAO,CAACjE;AAAxB,sBACE,oBAAC,sBAAD;AAAY,QAAA,IAAI,EAAC,OAAjB;AAAyB,QAAA,SAAS,EAAC;AAAnC,mHADF,eAKE;AAAK,QAAA,SAAS,EAAEiE,OAAO,CAAC/C;AAAxB,sBACE;AAAK,QAAA,SAAS,EAAE+C,OAAO,CAAC3D;AAAxB,SACGiD,OAAO,CAACiC,QAAR,IACC,CAACtD,KAAK,CAACqB,OAAN,IAAiB,EAAlB,EAAsBkC,GAAtB,CAA0B,UAAC9B,MAAD,EAAS+B,GAAT;AAAA,4BACxB;AACE,UAAA,GAAG,EAAEA,GADP;AAEE,UAAA,SAAS,EAAE,4BAAGzB,OAAO,CAACxD,OAAX,uCACRwD,OAAO,CAACjD,YADA,EACe0E,GAAG,KAAK,CADvB;AAFb,wBAME,oBAAC,wBAAD;AACE,UAAA,QAAQ,EAAE,MAAI,CAACC,cAAL,CAAoBD,GAApB,CADZ;AAEE,UAAA,MAAM,EAAE/B,MAFV;AAGE,UAAA,SAAS,EAAEM,OAAO,CAAC3C,WAHrB;AAIE,UAAA,KAAK,EAAE,cAJT;AAKE,UAAA,aAAa,EAAEwD,sBALjB;AAME,UAAA,WAAW,EAAEG,YANf;AAOE,UAAA,gBAAgB,MAPlB;AAQE,UAAA,UAAU,EAAEX,UARd;AASE,UAAA,kBAAkB,EAAEC,kBATtB;AAUE,UAAA,uBAAuB,EAAE,CAAC;AAAEqB,YAAAA,QAAQ,EAAE;AAAZ,WAAD,EAA0B;AAAEA,YAAAA,QAAQ,EAAE;AAAZ,WAA1B;AAV3B,UANF,CADwB;AAAA,OAA1B,CAFJ,eAwBE;AAAK,QAAA,SAAS,EAAE3B,OAAO,CAACnD;AAAxB,sBACE,oBAAC,kBAAD;AAAQ,QAAA,QAAQ;AAAhB,sBACE,gCADF,CADF,CAxBF,CADF,eA+BE;AAAI,QAAA,SAAS,EAAEmD,OAAO,CAAC9C;AAAvB,QA/BF,EAiCGe,KAAK,CAACG,IAAN,CAAWoD,GAAX,CAAe,UAACI,GAAD,EAAMH,GAAN;AAAA,4BACd,oBAAC,eAAD;AACE,UAAA,GAAG,EAAEA,GADP;AAEE,UAAA,KAAK,EAAExD,KAFT;AAGE,UAAA,GAAG,EAAE2D,GAHP;AAIE,UAAA,GAAG,EAAEH,GAJP;AAKE,UAAA,WAAW,EAAE,MAAI,CAACzD,KAAL,CAAW6D,WAL1B;AAME,UAAA,QAAQ,EAAE,MAAI,CAAC7D,KAAL,CAAWE,QANvB;AAOE,UAAA,SAAS,EAAE,MAAI,CAAC4D,OAPlB;AAQE,UAAA,YAAY,EAAE5B,YARhB;AASE,UAAA,YAAY,EAAEjC,KAAK,CAAC8D,YATtB;AAUE,UAAA,WAAW,EAAE3B,WAVf;AAWE,UAAA,UAAU,EAAEC,UAXd;AAYE,UAAA,KAAK,EAAEO,UAAF,aAAEA,UAAF,uBAAEA,UAAU,CAAGgB,GAAG,CAACI,EAAP,CAZnB;AAaE,UAAA,aAAa,EAAGzB,aAAa,IAAIA,aAAa,CAAC0B,SAAhC,IAA8Cb,oBAb/D;AAcE,UAAA,cAAc,EAAGZ,cAAc,IAAIA,cAAc,CAACyB,SAAlC,IAAgDX,qBAdlE;AAeE,UAAA,kBAAkB,EAAEhB;AAftB,UADc;AAAA,OAAf,CAjCH,EAqDGK,oBAAoB,iBAAI;AAAK,QAAA,SAAS,EAAEX,OAAO,CAACzC;AAAxB,SAAoCoD,oBAApC,CArD3B,eAsDE,oBAAC,kBAAD;AAAQ,QAAA,UAAU,EAAEV;AAApB,QAtDF,CALF,eA8DE,oBAAC,qBAAD;AACE,QAAA,IAAI,EAAEpC,WADR;AAEE,QAAA,KAAK,EAAC,SAFR;AAGE,QAAA,IAAI,EAAC,mDAHP;AAIE,QAAA,SAAS,EAAE;AAAA,iBAAM,MAAI,CAACkC,QAAL,CAAc;AAAElC,YAAAA,WAAW,EAAE;AAAf,WAAd,CAAN;AAAA;AAJb,QA9DF,CADF;AAuED;;;EA7L6BqE,KAAK,CAACC,S;;iCAAhCvE,iB,eACe;AACjBoC,EAAAA,OAAO,EAAEoC,sBAAUC,MAAV,CAAiBC,UADT;AAEjBrE,EAAAA,KAAK,EAAEmE,sBAAUC,MAAV,CAAiBC,UAFP;AAGjBnC,EAAAA,aAAa,EAAEiC,sBAAUC,MAAV,CAAiBC,UAHf;AAIjBpE,EAAAA,QAAQ,EAAEkE,sBAAUG,IAAV,CAAeD,UAJR;AAKjBT,EAAAA,WAAW,EAAEO,sBAAUG,IAAV,CAAeD,UALX;AAMjBrC,EAAAA,QAAQ,EAAEmC,sBAAUG,IAAV,CAAeD,UANR;AAOjBpC,EAAAA,YAAY,EAAEkC,sBAAUI,KAAV,CAAgB;AAC5BC,IAAAA,GAAG,EAAEL,sBAAUG,IAAV,CAAeD,UADQ;AAE5B,cAAQF,sBAAUG,IAAV,CAAeD;AAFK,GAAhB,CAPG;AAWjBhC,EAAAA,kBAAkB,EAAE8B,sBAAUI,KAAV,CAAgB;AAClCC,IAAAA,GAAG,EAAEL,sBAAUG,IAAV,CAAeD,UADc;AAElC,cAAQF,sBAAUG,IAAV,CAAeD;AAFW,GAAhB,CAXH;AAejBlC,EAAAA,WAAW,EAAEgC,sBAAUC;AAfN,C;;eA+LN,wBAAWxG,MAAX,EAAmB+B,iBAAnB,C","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 { AlertDialog } from '@pie-lib/config-ui';\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: theme.spacing.unit * 1.5,\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: theme.typography.fontSize - 2,\n color: 'red',\n marginBottom: theme.spacing.unit,\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 = { showWarning: false };\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 = [...remainingRows.slice(0, to), movedRow, ...remainingRows.slice(to)];\n\n log('update: ', update);\n\n newModel.rows = update;\n\n onChange(newModel);\n };\n\n onChange =\n (name, isBoolean) =>\n ({ 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({ showWarning: true });\n } else {\n newModel.headers[headerIndex] = value;\n\n onChange(newModel);\n }\n };\n\n render() {\n const { classes, model, onAddRow, imageSupport, configuration, toolbarOpts, spellCheck, uploadSoundSupport } =\n this.props;\n const { headers = {}, maxImageWidth = {}, maxImageHeight = {} } = configuration || {};\n const { showWarning } = this.state;\n const { errors } = model || {};\n const { correctResponseError, rowsErrors } = errors || {};\n\n const filteredDefaultPlugins = (DEFAULT_PLUGINS || []).filter(\n (p) => p !== 'table' && p !== 'bulleted-list' && p !== 'numbered-list',\n );\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 clicking each correct answer per row.\n </Typography>\n\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 spellCheck={spellCheck}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </div>\n ))}\n\n <div className={classes.deleteIcon}>\n <Button disabled>\n <div />\n </Button>\n </div>\n </div>\n <hr className={classes.separator} />\n\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?.[row.id]}\n maxImageWidth={(maxImageWidth && maxImageWidth.rowTitles) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.rowTitles) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n />\n ))}\n\n {correctResponseError && <div className={classes.errorText}>{correctResponseError}</div>}\n <AddRow onAddClick={onAddRow} />\n </div>\n\n <AlertDialog\n open={showWarning}\n title=\"Warning\"\n text=\"The column headings must be non-blank and unique.\"\n onConfirm={() => this.setState({ showWarning: false })}\n />\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(AnswerConfigBlock);\n"],"file":"answer-config-block.js"}
|
|
@@ -218,55 +218,63 @@ var Configure = /*#__PURE__*/function (_React$Component) {
|
|
|
218
218
|
var _ref = configuration || {},
|
|
219
219
|
_ref$enableImages = _ref.enableImages,
|
|
220
220
|
enableImages = _ref$enableImages === void 0 ? {} : _ref$enableImages,
|
|
221
|
+
_ref$feedback = _ref.feedback,
|
|
222
|
+
feedback = _ref$feedback === void 0 ? {} : _ref$feedback,
|
|
223
|
+
_ref$lockChoiceOrder = _ref.lockChoiceOrder,
|
|
224
|
+
lockChoiceOrder = _ref$lockChoiceOrder === void 0 ? {} : _ref$lockChoiceOrder,
|
|
225
|
+
_ref$maxImageWidth = _ref.maxImageWidth,
|
|
226
|
+
maxImageWidth = _ref$maxImageWidth === void 0 ? {} : _ref$maxImageWidth,
|
|
227
|
+
_ref$maxImageHeight = _ref.maxImageHeight,
|
|
228
|
+
maxImageHeight = _ref$maxImageHeight === void 0 ? {} : _ref$maxImageHeight,
|
|
221
229
|
_ref$partialScoring = _ref.partialScoring,
|
|
222
230
|
partialScoring = _ref$partialScoring === void 0 ? {} : _ref$partialScoring,
|
|
223
|
-
_ref$
|
|
224
|
-
|
|
225
|
-
_ref$studentInstructi = _ref.studentInstructions,
|
|
226
|
-
studentInstructions = _ref$studentInstructi === void 0 ? {} : _ref$studentInstructi,
|
|
231
|
+
_ref$prompt = _ref.prompt,
|
|
232
|
+
prompt = _ref$prompt === void 0 ? {} : _ref$prompt,
|
|
227
233
|
_ref$rationale = _ref.rationale,
|
|
228
234
|
rationale = _ref$rationale === void 0 ? {} : _ref$rationale,
|
|
229
|
-
|
|
230
|
-
lockChoiceOrder = _ref$lockChoiceOrder === void 0 ? {} : _ref$lockChoiceOrder,
|
|
235
|
+
settingsPanelDisabled = _ref.settingsPanelDisabled,
|
|
231
236
|
_ref$scoringType = _ref.scoringType,
|
|
232
237
|
scoringType = _ref$scoringType === void 0 ? {} : _ref$scoringType,
|
|
233
|
-
_ref$prompt = _ref.prompt,
|
|
234
|
-
prompt = _ref$prompt === void 0 ? {} : _ref$prompt,
|
|
235
|
-
_ref$feedback = _ref.feedback,
|
|
236
|
-
feedback = _ref$feedback === void 0 ? {} : _ref$feedback,
|
|
237
238
|
_ref$spellCheck = _ref.spellCheck,
|
|
238
239
|
spellCheck = _ref$spellCheck === void 0 ? {} : _ref$spellCheck,
|
|
239
|
-
_ref$
|
|
240
|
-
|
|
241
|
-
_ref$
|
|
242
|
-
|
|
240
|
+
_ref$studentInstructi = _ref.studentInstructions,
|
|
241
|
+
studentInstructions = _ref$studentInstructi === void 0 ? {} : _ref$studentInstructi,
|
|
242
|
+
_ref$teacherInstructi = _ref.teacherInstructions,
|
|
243
|
+
teacherInstructions = _ref$teacherInstructi === void 0 ? {} : _ref$teacherInstructi,
|
|
243
244
|
_ref$withRubric = _ref.withRubric,
|
|
244
245
|
withRubric = _ref$withRubric === void 0 ? {} : _ref$withRubric;
|
|
245
246
|
|
|
246
247
|
var _ref2 = model || {},
|
|
247
|
-
|
|
248
|
+
feedbackEnabled = _ref2.feedbackEnabled,
|
|
248
249
|
promptEnabled = _ref2.promptEnabled,
|
|
249
250
|
rationaleEnabled = _ref2.rationaleEnabled,
|
|
250
251
|
spellCheckEnabled = _ref2.spellCheckEnabled,
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
var toolbarOpts = {};
|
|
255
|
-
|
|
256
|
-
switch (model.toolbarEditorPosition) {
|
|
257
|
-
case 'top':
|
|
258
|
-
toolbarOpts.position = 'top';
|
|
259
|
-
break;
|
|
260
|
-
|
|
261
|
-
default:
|
|
262
|
-
toolbarOpts.position = 'bottom';
|
|
263
|
-
break;
|
|
264
|
-
}
|
|
252
|
+
teacherInstructionsEnabled = _ref2.teacherInstructionsEnabled,
|
|
253
|
+
toolbarEditorPosition = _ref2.toolbarEditorPosition;
|
|
265
254
|
|
|
255
|
+
var toolbarOpts = {
|
|
256
|
+
position: toolbarEditorPosition === 'top' ? 'top' : 'bottom'
|
|
257
|
+
};
|
|
266
258
|
var defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;
|
|
267
259
|
var defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;
|
|
260
|
+
var panelSettings = {
|
|
261
|
+
enableImages: enableImages.settings && toggle(enableImages.label),
|
|
262
|
+
partialScoring: partialScoring.settings && toggle(partialScoring.label),
|
|
263
|
+
lockChoiceOrder: lockChoiceOrder.settings && toggle(lockChoiceOrder.label),
|
|
264
|
+
feedbackEnabled: feedback.settings && toggle(feedback.label)
|
|
265
|
+
};
|
|
266
|
+
var panelProperties = {
|
|
267
|
+
teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),
|
|
268
|
+
studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),
|
|
269
|
+
promptEnabled: prompt.settings && toggle(prompt.label),
|
|
270
|
+
rationaleEnabled: rationale.settings && toggle(rationale.label),
|
|
271
|
+
spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),
|
|
272
|
+
scoringType: scoringType.settings && radio(scoringType.label, ['auto', 'rubric']),
|
|
273
|
+
rubricEnabled: (withRubric === null || withRubric === void 0 ? void 0 : withRubric.settings) && toggle(withRubric === null || withRubric === void 0 ? void 0 : withRubric.label)
|
|
274
|
+
};
|
|
268
275
|
log('[render] model', model);
|
|
269
276
|
return /*#__PURE__*/_react["default"].createElement(_configUi.layout.ConfigLayout, {
|
|
277
|
+
hideSettings: settingsPanelDisabled,
|
|
270
278
|
settings: /*#__PURE__*/_react["default"].createElement(Panel, {
|
|
271
279
|
model: model,
|
|
272
280
|
configuration: configuration,
|
|
@@ -277,21 +285,8 @@ var Configure = /*#__PURE__*/function (_React$Component) {
|
|
|
277
285
|
return onConfigurationChanged(config);
|
|
278
286
|
},
|
|
279
287
|
groups: {
|
|
280
|
-
Settings:
|
|
281
|
-
|
|
282
|
-
partialScoring: partialScoring.settings && toggle(partialScoring.label),
|
|
283
|
-
lockChoiceOrder: lockChoiceOrder.settings && toggle(lockChoiceOrder.label),
|
|
284
|
-
feedbackEnabled: feedback.settings && toggle(feedback.label)
|
|
285
|
-
},
|
|
286
|
-
Properties: {
|
|
287
|
-
teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),
|
|
288
|
-
studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),
|
|
289
|
-
promptEnabled: prompt.settings && toggle(prompt.label),
|
|
290
|
-
rationaleEnabled: rationale.settings && toggle(rationale.label),
|
|
291
|
-
spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),
|
|
292
|
-
scoringType: scoringType.settings && radio(scoringType.label, ['auto', 'rubric']),
|
|
293
|
-
rubricEnabled: (withRubric === null || withRubric === void 0 ? void 0 : withRubric.settings) && toggle(withRubric === null || withRubric === void 0 ? void 0 : withRubric.label)
|
|
294
|
-
}
|
|
288
|
+
Settings: panelSettings,
|
|
289
|
+
Properties: panelProperties
|
|
295
290
|
}
|
|
296
291
|
})
|
|
297
292
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
@@ -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","uploadSoundSupport","enableImages","studentInstructions","lockChoiceOrder","scoringType","spellCheck","maxImageWidth","maxImageHeight","withRubric","teacherInstructionsEnabled","promptEnabled","rationaleEnabled","spellCheckEnabled","feedbackEnabled","rubricEnabled","toolbarOpts","toolbarEditorPosition","position","defaultImageMaxWidth","defaultImageMaxHeight","config","Settings","label","Properties","studentInstructionsEnabled","onTeacherInstructionsChanged","language","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 { FeedbackConfig, settings, layout, InputContainer } 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) => (current === true ? total + 1 : total));\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 { classes, model, imageSupport, onModelChanged, configuration, onConfigurationChanged, 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 withRubric = {},\n } = configuration || {};\n const {\n teacherInstructionsEnabled,\n promptEnabled,\n rationaleEnabled,\n spellCheckEnabled,\n feedbackEnabled,\n rubricEnabled,\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: enableImages.settings && toggle(enableImages.label),\n partialScoring: partialScoring.settings && toggle(partialScoring.label),\n lockChoiceOrder: lockChoiceOrder.settings && toggle(lockChoiceOrder.label),\n feedbackEnabled: feedback.settings && toggle(feedback.label),\n },\n Properties: {\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 />\n }\n >\n <div className={classes.content}>\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 nonEmpty={false}\n disableUnderline\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={maxImageWidth && maxImageWidth.prompt}\n maxImageHeight={maxImageHeight && maxImageHeight.prompt}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </InputContainer>\n )}\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 <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 feedback={model.feedback} onChange={this.onFeedbackChange} toolbarOpts={toolbarOpts} />\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","lockChoiceOrder","maxImageWidth","maxImageHeight","settingsPanelDisabled","scoringType","spellCheck","studentInstructions","withRubric","feedbackEnabled","promptEnabled","rationaleEnabled","spellCheckEnabled","teacherInstructionsEnabled","toolbarEditorPosition","toolbarOpts","position","defaultImageMaxWidth","defaultImageMaxHeight","panelSettings","label","panelProperties","studentInstructionsEnabled","rubricEnabled","config","Settings","Properties","onTeacherInstructionsChanged","language","onPromptChanged","onRationaleChanged","onResponseTypeChange","onLayoutChange","onAddRow","onDeleteRow","onFeedbackChange","React","Component","PropTypes","func","object","isRequired","shape","add","Config"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA,IAAMA,GAAG,GAAG,uBAAM,8BAAN,CAAZ;AACA,IAAQC,KAAR,GAAiCC,kBAAjC,CAAQD,KAAR;AAAA,IAAeE,MAAf,GAAiCD,kBAAjC,CAAeC,MAAf;AAAA,IAAuBC,KAAvB,GAAiCF,kBAAjC,CAAuBE,KAAvB;;AAEA,IAAMC,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBC,IAAAA,KAAK,EAAE;AACLC,MAAAA,QAAQ,EAAE,QADL;AAELC,MAAAA,OAAO,EAAE,OAFJ;AAGLC,MAAAA,SAAS,EAAEJ,KAAK,CAACK,OAAN,CAAcC,IAAd,GAAqB,CAH3B;AAILC,MAAAA,YAAY,EAAEP,KAAK,CAACK,OAAN,CAAcC;AAJvB,KADkB;AAOzBE,IAAAA,OAAO,EAAE;AACPJ,MAAAA,SAAS,EAAEJ,KAAK,CAACK,OAAN,CAAcC,IAAd,GAAqB;AADzB,KAPgB;AAUzBG,IAAAA,YAAY,EAAE;AACZC,MAAAA,KAAK,EAAE,MADK;AAEZC,MAAAA,UAAU,EAAEX,KAAK,CAACK,OAAN,CAAcC,IAAd,GAAqB;AAFrB,KAVW;AAczBM,IAAAA,MAAM,EAAE;AACND,MAAAA,UAAU,EAAEX,KAAK,CAACK,OAAN,CAAcC,IAAd,GAAqB,CAD3B;AAENI,MAAAA,KAAK,EAAE;AAFD;AAdiB,GAAZ;AAAA,CAAf;;IAoBMG,S;;;;;AAqBJ,qBAAYC,KAAZ,EAAmB;AAAA;;AAAA;AACjB,8BAAMA,KAAN;AADiB,oGAUL,UAACC,KAAD,EAAQC,KAAR,EAAkB;AAC9B,YAAKC,QAAL,CAAc;AAAEC,QAAAA,SAAS,EAAEF;AAAb,OAAd;AACD,KAZkB;AAAA,yGAcA,UAACG,KAAD,EAAW;AAC5B,YAAKF,QAAL,CAAc;AAAEC,QAAAA,SAAS,EAAEC;AAAb,OAAd;AACD,KAhBkB;AAAA,iGAkBR,UAACC,KAAD,EAAW;AACpB,YAAKN,KAAL,CAAWO,cAAX,CAA0BD,KAA1B;AACD,KApBkB;AAAA,yGAsBA,UAACE,QAAD,EAAc;AAC/B,wBAAkC,MAAKR,KAAvC;AAAA,UAAQM,KAAR,eAAQA,KAAR;AAAA,UAAeC,cAAf,eAAeA,cAAf;AACAD,MAAAA,KAAK,CAACE,QAAN,GAAiBA,QAAjB;AAEAD,MAAAA,cAAc,CAACD,KAAD,CAAd;AACD,KA3BkB;AAAA,oGA6BL,UAACG,QAAD,EAAc;AAC1B,UAAQH,KAAR,GAAkB,MAAKN,KAAvB,CAAQM,KAAR;;AACA,UAAMI,QAAQ,qBAAQJ,KAAR,CAAd;;AAEAI,MAAAA,QAAQ,CAACC,IAAT,CAAcC,MAAd,CAAqBH,QAArB,EAA+B,CAA/B;;AAEA,YAAKI,QAAL,CAAcH,QAAd;AACD,KApCkB;AAAA,iGAsCR,YAAM;AACf,UAAQJ,KAAR,GAAkB,MAAKN,KAAvB,CAAQM,KAAR;;AACA,UAAMI,QAAQ,qBAAQJ,KAAR,CAAd;;AAEAI,MAAAA,QAAQ,CAACC,IAAT,GAAgBD,QAAQ,CAACC,IAAT,CAAcG,MAAd,CAAqB;AACnCC,QAAAA,EAAE,EAAE,MAAKC,YAAL,GAAoB,CADW;AAEnC7B,QAAAA,KAAK,0BAAmBuB,QAAQ,CAACC,IAAT,CAAcM,MAAd,GAAuB,CAA1C,CAF8B;AAGnCC,QAAAA,MAAM,EAAE,IAAIC,KAAJ,CAAUb,KAAK,CAACc,MAAN,GAAe,CAAzB,EAA4BC,IAA5B,CAAiC,KAAjC;AAH2B,OAArB,CAAhB;AAMA,YAAKL,YAAL,IAAqB,CAArB;;AAEA,YAAKH,QAAL,CAAcH,QAAd;AACD,KAnDkB;AAAA,uGAqDF,UAACY,SAAD,EAAe;AAC9B,UAAQhB,KAAR,GAAkB,MAAKN,KAAvB,CAAQM,KAAR;AACA,UAAMiB,SAAS,GAAGjB,KAAK,CAACc,MAAxB;;AACA,UAAMV,QAAQ,qBAAQJ,KAAR,CAAd;;AAEA,UAAIgB,SAAS,GAAGC,SAAhB,EAA2B;AACzB,aAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGF,SAAS,GAAGC,SAAhC,EAA2CC,CAAC,EAA5C,EAAgD;AAC9Cd,UAAAA,QAAQ,CAACe,OAAT,CAAiBC,IAAjB,kBAAgChB,QAAQ,CAACe,OAAT,CAAiBR,MAAjB,GAA0B,CAA1D;AACD;;AAEDP,QAAAA,QAAQ,CAACC,IAAT,CAAcgB,OAAd,CAAsB,UAACC,GAAD,EAAS;AAC7B,eAAK,IAAIJ,EAAC,GAAG,CAAb,EAAgBA,EAAC,GAAGF,SAAS,GAAGC,SAAhC,EAA2CC,EAAC,EAA5C,EAAgD;AAC9CI,YAAAA,GAAG,CAACV,MAAJ,CAAWQ,IAAX,CAAgB,KAAhB;AACD;AACF,SAJD;AAKD,OAVD,MAUO,IAAIJ,SAAS,GAAGC,SAAhB,EAA2B;AAChCb,QAAAA,QAAQ,CAACe,OAAT,CAAiBb,MAAjB,CAAwBU,SAAxB;AAEAZ,QAAAA,QAAQ,CAACC,IAAT,CAAcgB,OAAd,CAAsB,UAACC,GAAD,EAAS;AAC7BA,UAAAA,GAAG,CAACV,MAAJ,CAAWN,MAAX,CAAkBU,SAAS,GAAG,CAA9B;AACD,SAFD;AAGD;;AAEDZ,MAAAA,QAAQ,CAACU,MAAT,GAAkBE,SAAlB;;AAEA,YAAKT,QAAL,CAAcH,QAAd;AACD,KA/EkB;AAAA,6GAiFI,UAACmB,aAAD,EAAmB;AACxC,UAAQvB,KAAR,GAAkB,MAAKN,KAAvB,CAAQM,KAAR;;AACA,UAAMI,QAAQ,qBAAQJ,KAAR,CAAd,CAFwC,CAIxC;;;AACA,UAAIuB,aAAa,KAAK,OAAtB,EAA+B;AAC7BnB,QAAAA,QAAQ,CAACC,IAAT,CAAcgB,OAAd,CAAsB,UAACC,GAAD,EAAS;AAC7B,cAAME,SAAS,GAAGF,GAAG,CAACV,MAAJ,CAAWa,MAAX,CAAkB,UAACC,KAAD,EAAQC,OAAR;AAAA,mBAAqBA,OAAO,KAAK,IAAZ,GAAmBD,KAAK,GAAG,CAA3B,GAA+BA,KAApD;AAAA,WAAlB,CAAlB;;AAEA,cAAIF,SAAS,GAAG,CAAhB,EAAmB;AACjBF,YAAAA,GAAG,CAACV,MAAJ,GAAa,IAAIC,KAAJ,CAAUb,KAAK,CAACc,MAAN,GAAe,CAAzB,EAA4BC,IAA5B,CAAiC,KAAjC,CAAb;AACD;AACF,SAND;AAOD;;AAEDX,MAAAA,QAAQ,CAACwB,UAAT,GAAsBL,aAAtB;;AAEA,YAAKhB,QAAL,CAAcH,QAAd;AACD,KAnGkB;AAAA,+GAqGM,UAACyB,cAAD,EAAoB;AAC3C,YAAKnC,KAAL,CAAWM,KAAX,CAAiB6B,cAAjB,GAAkCA,cAAlC;;AAEA,YAAKnC,KAAL,CAAWO,cAAX,CAA0B,MAAKP,KAAL,CAAWM,KAArC;AACD,KAzGkB;AAAA,wGA2GD,UAACR,MAAD,EAAY;AAC5B,YAAKE,KAAL,CAAWO,cAAX,iCAA+B,MAAKP,KAAL,CAAWM,KAA1C;AAAiDR,QAAAA,MAAM,EAANA;AAAjD;AACD,KA7GkB;AAAA,qHA+GY,UAACsC,mBAAD,EAAyB;AACtD,YAAKpC,KAAL,CAAWO,cAAX,iCAA+B,MAAKP,KAAL,CAAWM,KAA1C;AAAiD8B,QAAAA,mBAAmB,EAAnBA;AAAjD;AACD,KAjHkB;AAAA,2GAmHE,UAACC,SAAD,EAAe;AAClC,YAAKrC,KAAL,CAAWO,cAAX,iCAA+B,MAAKP,KAAL,CAAWM,KAA1C;AAAiD+B,QAAAA,SAAS,EAATA;AAAjD;AACD,KArHkB;AAGjB,UAAKrB,YAAL,GAAoBhB,KAAK,CAACM,KAAN,CAAYK,IAAZ,CAAiBX,KAAK,CAACM,KAAN,CAAYK,IAAZ,CAAiBM,MAAjB,GAA0B,CAA3C,EAA8CF,EAA9C,GAAmD,CAAvE;AAEA,UAAKuB,KAAL,GAAa;AACXlC,MAAAA,SAAS,EAAE;AADA,KAAb;AALiB;AAQlB;;;;WA+GD,kBAAS;AACP,yBACE,KAAKJ,KADP;AAAA,UAAQuC,OAAR,gBAAQA,OAAR;AAAA,UAAiBjC,KAAjB,gBAAiBA,KAAjB;AAAA,UAAwBkC,YAAxB,gBAAwBA,YAAxB;AAAA,UAAsCjC,cAAtC,gBAAsCA,cAAtC;AAAA,UAAsDkC,aAAtD,gBAAsDA,aAAtD;AAAA,UAAqEC,sBAArE,gBAAqEA,sBAArE;AAAA,UAA6FC,kBAA7F,gBAA6FA,kBAA7F;;AAEA,iBAeIF,aAAa,IAAI,EAfrB;AAAA,mCACEG,YADF;AAAA,UACEA,YADF,kCACiB,EADjB;AAAA,+BAEEpC,QAFF;AAAA,UAEEA,QAFF,8BAEa,EAFb;AAAA,sCAGEqC,eAHF;AAAA,UAGEA,eAHF,qCAGoB,EAHpB;AAAA,oCAIEC,aAJF;AAAA,UAIEA,aAJF,mCAIkB,EAJlB;AAAA,qCAKEC,cALF;AAAA,UAKEA,cALF,oCAKmB,EALnB;AAAA,qCAMEZ,cANF;AAAA,UAMEA,cANF,oCAMmB,EANnB;AAAA,6BAOErC,MAPF;AAAA,UAOEA,MAPF,4BAOW,EAPX;AAAA,gCAQEuC,SARF;AAAA,UAQEA,SARF,+BAQc,EARd;AAAA,UASEW,qBATF,QASEA,qBATF;AAAA,kCAUEC,WAVF;AAAA,UAUEA,WAVF,iCAUgB,EAVhB;AAAA,iCAWEC,UAXF;AAAA,UAWEA,UAXF,gCAWe,EAXf;AAAA,uCAYEC,mBAZF;AAAA,UAYEA,mBAZF,sCAYwB,EAZxB;AAAA,uCAaEf,mBAbF;AAAA,UAaEA,mBAbF,sCAawB,EAbxB;AAAA,iCAcEgB,UAdF;AAAA,UAcEA,UAdF,gCAce,EAdf;;AAgBA,kBAOI9C,KAAK,IAAI,EAPb;AAAA,UACE+C,eADF,SACEA,eADF;AAAA,UAEEC,aAFF,SAEEA,aAFF;AAAA,UAGEC,gBAHF,SAGEA,gBAHF;AAAA,UAIEC,iBAJF,SAIEA,iBAJF;AAAA,UAKEC,0BALF,SAKEA,0BALF;AAAA,UAMEC,qBANF,SAMEA,qBANF;;AASA,UAAMC,WAAW,GAAG;AAClBC,QAAAA,QAAQ,EAAEF,qBAAqB,KAAK,KAA1B,GAAkC,KAAlC,GAA0C;AADlC,OAApB;AAIA,UAAMG,oBAAoB,GAAGf,aAAa,IAAIA,aAAa,CAAChD,MAA5D;AACA,UAAMgE,qBAAqB,GAAGf,cAAc,IAAIA,cAAc,CAACjD,MAA/D;AAEA,UAAMiE,aAAa,GAAG;AACpBnB,QAAAA,YAAY,EAAEA,YAAY,CAAC9D,QAAb,IAAyBC,MAAM,CAAC6D,YAAY,CAACoB,KAAd,CADzB;AAEpB7B,QAAAA,cAAc,EAAEA,cAAc,CAACrD,QAAf,IAA2BC,MAAM,CAACoD,cAAc,CAAC6B,KAAhB,CAF7B;AAGpBnB,QAAAA,eAAe,EAAEA,eAAe,CAAC/D,QAAhB,IAA4BC,MAAM,CAAC8D,eAAe,CAACmB,KAAjB,CAH/B;AAIpBX,QAAAA,eAAe,EAAE7C,QAAQ,CAAC1B,QAAT,IAAqBC,MAAM,CAACyB,QAAQ,CAACwD,KAAV;AAJxB,OAAtB;AAMA,UAAMC,eAAe,GAAG;AACtBR,QAAAA,0BAA0B,EAAErB,mBAAmB,CAACtD,QAApB,IAAgCC,MAAM,CAACqD,mBAAmB,CAAC4B,KAArB,CAD5C;AAEtBE,QAAAA,0BAA0B,EAAEf,mBAAmB,CAACrE,QAApB,IAAgCC,MAAM,CAACoE,mBAAmB,CAACa,KAArB,CAF5C;AAGtBV,QAAAA,aAAa,EAAExD,MAAM,CAAChB,QAAP,IAAmBC,MAAM,CAACe,MAAM,CAACkE,KAAR,CAHlB;AAItBT,QAAAA,gBAAgB,EAAElB,SAAS,CAACvD,QAAV,IAAsBC,MAAM,CAACsD,SAAS,CAAC2B,KAAX,CAJxB;AAKtBR,QAAAA,iBAAiB,EAAEN,UAAU,CAACpE,QAAX,IAAuBC,MAAM,CAACmE,UAAU,CAACc,KAAZ,CAL1B;AAMtBf,QAAAA,WAAW,EAAEA,WAAW,CAACnE,QAAZ,IAAwBE,KAAK,CAACiE,WAAW,CAACe,KAAb,EAAoB,CAAC,MAAD,EAAS,QAAT,CAApB,CANpB;AAOtBG,QAAAA,aAAa,EAAE,CAAAf,UAAU,SAAV,IAAAA,UAAU,WAAV,YAAAA,UAAU,CAAEtE,QAAZ,KAAwBC,MAAM,CAACqE,UAAD,aAACA,UAAD,uBAACA,UAAU,CAAEY,KAAb;AAPvB,OAAxB;AAUApF,MAAAA,GAAG,CAAC,gBAAD,EAAmB0B,KAAnB,CAAH;AAEA,0BACE,gCAAC,gBAAD,CAAQ,YAAR;AACE,QAAA,YAAY,EAAE0C,qBADhB;AAEE,QAAA,QAAQ,eACN,gCAAC,KAAD;AACE,UAAA,KAAK,EAAE1C,KADT;AAEE,UAAA,aAAa,EAAEmC,aAFjB;AAGE,UAAA,aAAa,EAAE,uBAACnC,KAAD;AAAA,mBAAWC,cAAc,CAACD,KAAD,CAAzB;AAAA,WAHjB;AAIE,UAAA,qBAAqB,EAAE,+BAAC8D,MAAD;AAAA,mBAAY1B,sBAAsB,CAAC0B,MAAD,CAAlC;AAAA,WAJzB;AAKE,UAAA,MAAM,EAAE;AACNC,YAAAA,QAAQ,EAAEN,aADJ;AAENO,YAAAA,UAAU,EAAEL;AAFN;AALV;AAHJ,sBAeE;AAAK,QAAA,SAAS,EAAE1B,OAAO,CAAC7C;AAAxB,SACG+D,0BAA0B,iBACzB,gCAAC,wBAAD;AAAgB,QAAA,KAAK,EAAErB,mBAAmB,CAAC4B,KAA3C;AAAkD,QAAA,SAAS,EAAEzB,OAAO,CAAC5C;AAArE,sBACE,gCAAC,wBAAD;AACE,QAAA,SAAS,EAAE4C,OAAO,CAACzC,MADrB;AAEE,QAAA,MAAM,EAAEQ,KAAK,CAAC8B,mBAAN,IAA6B,EAFvC;AAGE,QAAA,QAAQ,EAAE,KAAKmC,4BAHjB;AAIE,QAAA,YAAY,EAAE/B,YAJhB;AAKE,QAAA,QAAQ,EAAE,KALZ;AAME,QAAA,WAAW,EAAEmB,WANf;AAOE,QAAA,UAAU,EAAEH,iBAPd;AAQE,QAAA,aAAa,EAAGV,aAAa,IAAIA,aAAa,CAACV,mBAAhC,IAAwDyB,oBARzE;AASE,QAAA,cAAc,EAAGd,cAAc,IAAIA,cAAc,CAACX,mBAAlC,IAA0D0B,qBAT5E;AAUE,QAAA,kBAAkB,EAAEnB,kBAVtB;AAWE,QAAA,uBAAuB,EAAE,CAAC;AAAE6B,UAAAA,QAAQ,EAAE;AAAZ,SAAD,EAA0B;AAAEA,UAAAA,QAAQ,EAAE;AAAZ,SAA1B;AAX3B,QADF,CAFJ,EAmBGlB,aAAa,iBACZ,gCAAC,wBAAD;AAAgB,QAAA,KAAK,EAAExD,MAAM,CAACkE,KAA9B;AAAqC,QAAA,SAAS,EAAEzB,OAAO,CAAC5C;AAAxD,sBACE,gCAAC,wBAAD;AACE,QAAA,SAAS,EAAE4C,OAAO,CAACzC,MADrB;AAEE,QAAA,MAAM,EAAEQ,KAAK,CAACR,MAFhB;AAGE,QAAA,QAAQ,EAAE,KAAK2E,eAHjB;AAIE,QAAA,YAAY,EAAEjC,YAJhB;AAKE,QAAA,QAAQ,EAAE,KALZ;AAME,QAAA,gBAAgB,MANlB;AAOE,QAAA,WAAW,EAAEmB,WAPf;AAQE,QAAA,UAAU,EAAEH,iBARd;AASE,QAAA,aAAa,EAAEV,aAAa,IAAIA,aAAa,CAAChD,MAThD;AAUE,QAAA,cAAc,EAAEiD,cAAc,IAAIA,cAAc,CAACjD,MAVnD;AAWE,QAAA,kBAAkB,EAAE6C,kBAXtB;AAYE,QAAA,uBAAuB,EAAE,CAAC;AAAE6B,UAAAA,QAAQ,EAAE;AAAZ,SAAD,EAA0B;AAAEA,UAAAA,QAAQ,EAAE;AAAZ,SAA1B;AAZ3B,QADF,CApBJ,EAsCGjB,gBAAgB,iBACf,gCAAC,wBAAD;AAAgB,QAAA,KAAK,EAAElB,SAAS,CAAC2B,KAAjC;AAAwC,QAAA,SAAS,EAAEzB,OAAO,CAAC5C;AAA3D,sBACE,gCAAC,wBAAD;AACE,QAAA,SAAS,EAAE4C,OAAO,CAACzC,MADrB;AAEE,QAAA,MAAM,EAAEQ,KAAK,CAAC+B,SAAN,IAAmB,EAF7B;AAGE,QAAA,QAAQ,EAAE,KAAKqC,kBAHjB;AAIE,QAAA,YAAY,EAAElC,YAJhB;AAKE,QAAA,WAAW,EAAEmB,WALf;AAME,QAAA,UAAU,EAAEH,iBANd;AAOE,QAAA,aAAa,EAAGV,aAAa,IAAIA,aAAa,CAACT,SAAhC,IAA8CwB,oBAP/D;AAQE,QAAA,cAAc,EAAGd,cAAc,IAAIA,cAAc,CAACV,SAAlC,IAAgDyB,qBARlE;AASE,QAAA,kBAAkB,EAAEnB,kBATtB;AAUE,QAAA,uBAAuB,EAAE,CAAC;AAAE6B,UAAAA,QAAQ,EAAE;AAAZ,SAAD,EAA0B;AAAEA,UAAAA,QAAQ,EAAE;AAAZ,SAA1B;AAV3B,QADF,CAvCJ,eAuDE,gCAAC,8BAAD;AACE,QAAA,KAAK,EAAElE,KADT;AAEE,QAAA,aAAa,EAAEmC,aAFjB;AAGE,QAAA,oBAAoB,EAAE,KAAKkC,oBAH7B;AAIE,QAAA,cAAc,EAAE,KAAKC;AAJvB,QAvDF,eA8DE,gCAAC,6BAAD;AACE,QAAA,KAAK,EAAEtE,KADT;AAEE,QAAA,aAAa,EAAEmC,aAFjB;AAGE,QAAA,YAAY,EAAED,YAHhB;AAIE,QAAA,QAAQ,EAAE,KAAK3B,QAJjB;AAKE,QAAA,QAAQ,EAAE,KAAKgE,QALjB;AAME,QAAA,WAAW,EAAE,KAAKC,WANpB;AAOE,QAAA,WAAW,EAAEnB,WAPf;AAQE,QAAA,UAAU,EAAEH,iBARd;AASE,QAAA,kBAAkB,EAAEb;AATtB,QA9DF,EA0EGU,eAAe,iBACd,gCAAC,wBAAD;AAAgB,QAAA,QAAQ,EAAE/C,KAAK,CAACE,QAAhC;AAA0C,QAAA,QAAQ,EAAE,KAAKuE,gBAAzD;AAA2E,QAAA,WAAW,EAAEpB;AAAxF,QA3EJ,CAfF,CADF;AAgGD;;;EAjSqBqB,kBAAMC,S;;iCAAxBlF,S,eACe;AACjBQ,EAAAA,cAAc,EAAE2E,sBAAUC,IADT;AAEjBzC,EAAAA,sBAAsB,EAAEwC,sBAAUC,IAFjB;AAGjB5C,EAAAA,OAAO,EAAE2C,sBAAUE,MAHF;AAIjB9E,EAAAA,KAAK,EAAE4E,sBAAUE,MAAV,CAAiBC,UAJP;AAKjB5C,EAAAA,aAAa,EAAEyC,sBAAUE,MAAV,CAAiBC,UALf;AAMjB7C,EAAAA,YAAY,EAAE0C,sBAAUI,KAAV,CAAgB;AAC5BC,IAAAA,GAAG,EAAEL,sBAAUC,IAAV,CAAeE,UADQ;AAE5B,cAAQH,sBAAUC,IAAV,CAAeE;AAFK,GAAhB,CANG;AAUjB1C,EAAAA,kBAAkB,EAAEuC,sBAAUI,KAAV,CAAgB;AAClCC,IAAAA,GAAG,EAAEL,sBAAUC,IAAV,CAAeE,UADc;AAElC,cAAQH,sBAAUC,IAAV,CAAeE;AAFW,GAAhB;AAVH,C;iCADftF,S,kBAiBkB;AACpBwC,EAAAA,OAAO,EAAE;AADW,C;AAmRjB,IAAMiD,MAAM,GAAGzF,SAAf;;;eAEQ,2BAAgB,wBAAWd,MAAX,EAAmBc,SAAnB,CAAhB,C","sourcesContent":["import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport { FeedbackConfig, settings, layout, InputContainer } 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\n onModelChanged(model);\n };\n\n onDeleteRow = (rowIndex) => {\n const { model } = this.props;\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) => (current === true ? total + 1 : total));\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\n this.props.onModelChanged(this.props.model);\n };\n\n onPromptChanged = (prompt) => {\n this.props.onModelChanged({ ...this.props.model, prompt });\n };\n\n onTeacherInstructionsChanged = (teacherInstructions) => {\n this.props.onModelChanged({ ...this.props.model, teacherInstructions });\n };\n\n onRationaleChanged = (rationale) => {\n this.props.onModelChanged({ ...this.props.model, rationale });\n };\n\n render() {\n const { classes, model, imageSupport, onModelChanged, configuration, onConfigurationChanged, uploadSoundSupport } =\n this.props;\n const {\n enableImages = {},\n feedback = {},\n lockChoiceOrder = {},\n maxImageWidth = {},\n maxImageHeight = {},\n partialScoring = {},\n prompt = {},\n rationale = {},\n settingsPanelDisabled,\n scoringType = {},\n spellCheck = {},\n studentInstructions = {},\n teacherInstructions = {},\n withRubric = {},\n } = configuration || {};\n const {\n feedbackEnabled,\n promptEnabled,\n rationaleEnabled,\n spellCheckEnabled,\n teacherInstructionsEnabled,\n toolbarEditorPosition,\n } = model || {};\n\n const toolbarOpts = {\n position: toolbarEditorPosition === 'top' ? 'top' : 'bottom',\n };\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n const panelSettings = {\n enableImages: enableImages.settings && toggle(enableImages.label),\n partialScoring: partialScoring.settings && toggle(partialScoring.label),\n lockChoiceOrder: lockChoiceOrder.settings && toggle(lockChoiceOrder.label),\n feedbackEnabled: feedback.settings && toggle(feedback.label),\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 log('[render] model', model);\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={(config) => onConfigurationChanged(config)}\n groups={{\n Settings: panelSettings,\n Properties: panelProperties,\n }}\n />\n }\n >\n <div className={classes.content}>\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 nonEmpty={false}\n disableUnderline\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={maxImageWidth && maxImageWidth.prompt}\n maxImageHeight={maxImageHeight && maxImageHeight.prompt}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </InputContainer>\n )}\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 <GeneralConfigBlock\n model={model}\n configuration={configuration}\n onResponseTypeChange={this.onResponseTypeChange}\n onLayoutChange={this.onLayoutChange}\n />\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\n {feedbackEnabled && (\n <FeedbackConfig feedback={model.feedback} onChange={this.onFeedbackChange} toolbarOpts={toolbarOpts} />\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 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/defaults.js"],"names":["model","enableImages","headers","layout","lockChoiceOrder","partialScoring","choiceMode","prompt","toolbarEditorPosition","rows","id","title","values","scoringType","feedbackEnabled","promptEnabled","rationaleEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","configuration","settings","label","feedback","enabled","rationale","spellCheck","studentInstructions","teacherInstructions","maxImageWidth","rowTitles","maxImageHeight","withRubric"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;eAEe;AACbA,EAAAA,KAAK,EAAE;AACLC,IAAAA,YAAY,EAAE,IADT;AAELC,IAAAA,OAAO,EAAE,CAAC,UAAD,EAAa,UAAb,EAAyB,UAAzB,CAFJ;AAGLC,IAAAA,MAAM,EAAE,CAHH;AAILC,IAAAA,eAAe,EAAE,IAJZ;AAKLC,IAAAA,cAAc,EAAE,KALX;AAMLC,IAAAA,UAAU,EAAE,OANP;AAOLC,IAAAA,MAAM,EAAE,kBAPH;AAQLC,IAAAA,qBAAqB,EAAE,QARlB;AASLC,IAAAA,IAAI,EAAE,CACJ;AACEC,MAAAA,EAAE,EAAE,CADN;AAEEC,MAAAA,KAAK,EAAE,iBAFT;AAGEC,MAAAA,MAAM,EAAE,CAAC,KAAD,EAAQ,KAAR;AAHV,KADI,CATD;AAgBLC,IAAAA,WAAW,EAAE,MAhBR;AAiBLC,IAAAA,eAAe,EAAE,IAjBZ;AAkBLC,IAAAA,aAAa,EAAE,IAlBV;AAmBLC,IAAAA,gBAAgB,EAAE,IAnBb;AAoBLC,IAAAA,0BAA0B,EAAE,IApBvB;AAqBLC,IAAAA,0BAA0B,EAAE;AArBvB,GADM;AAwBbC,EAAAA,aAAa,EAAE;AACblB,IAAAA,YAAY,EAAE;AACZmB,MAAAA,QAAQ,EAAE,IADE;AAEZC,MAAAA,KAAK,EAAE;AAFK,KADD;AAKbC,IAAAA,QAAQ,EAAE;AACRF,MAAAA,QAAQ,EAAE,IADF;AAERC,MAAAA,KAAK,EAAE,UAFC;AAGRE,MAAAA,OAAO,EAAE;AAHD,KALG;AAUbrB,IAAAA,OAAO,EAAE;AACPkB,MAAAA,QAAQ,EAAE;AADH,KAVI;AAabjB,IAAAA,MAAM,EAAE;AACNiB,MAAAA,QAAQ,EAAE,IADJ;AAENC,MAAAA,KAAK,EAAE;AAFD,KAbK;AAiBbjB,IAAAA,eAAe,EAAE;AACfgB,MAAAA,QAAQ,EAAE,KADK;AAEfC,MAAAA,KAAK,EAAE;AAFQ,KAjBJ;AAqBbhB,IAAAA,cAAc,EAAE;AACde,MAAAA,QAAQ,EAAE,KADI;AAEdC,MAAAA,KAAK,EAAE;AAFO,KArBH;AAyBbf,IAAAA,UAAU,EAAE;AACVc,MAAAA,QAAQ,EAAE,IADA;AAEVC,MAAAA,KAAK,EAAE;AAFG,KAzBC;AA6Bbd,IAAAA,MAAM,EAAE;AACNa,MAAAA,QAAQ,EAAE,IADJ;AAENC,MAAAA,KAAK,EAAE;AAFD,KA7BK;AAiCbG,IAAAA,SAAS,EAAE;AACTJ,MAAAA,QAAQ,EAAE,IADD;AAETC,MAAAA,KAAK,EAAE;AAFE,KAjCE;AAqCbI,IAAAA,UAAU,EAAE;
|
|
1
|
+
{"version":3,"sources":["../src/defaults.js"],"names":["model","enableImages","headers","layout","lockChoiceOrder","partialScoring","choiceMode","prompt","toolbarEditorPosition","rows","id","title","values","scoringType","feedbackEnabled","promptEnabled","rationaleEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","configuration","settings","label","feedback","enabled","rationale","settingsPanelDisabled","spellCheck","studentInstructions","teacherInstructions","maxImageWidth","rowTitles","maxImageHeight","withRubric"],"mappings":"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","sourcesContent":["/** NOTE: teacherInstructions, studentInstructions, rationale & scoringType\n * functionalities are not defined yet - the value for those can belong to\n * model or to configuration\n */\n\nexport default {\n model: {\n enableImages: true,\n headers: ['Column 1', 'Column 2', 'Column 3'],\n layout: 3,\n lockChoiceOrder: true,\n partialScoring: false,\n choiceMode: 'radio',\n prompt: 'Prompt goes here',\n toolbarEditorPosition: 'bottom',\n rows: [\n {\n id: 1,\n title: 'Question Text 1',\n values: [false, false],\n },\n ],\n scoringType: 'auto',\n feedbackEnabled: true,\n promptEnabled: true,\n rationaleEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n },\n configuration: {\n enableImages: {\n settings: true,\n label: 'Enable Images',\n },\n feedback: {\n settings: true,\n label: 'Feedback',\n enabled: true,\n },\n headers: {\n settings: true,\n },\n layout: {\n settings: true,\n label: 'Layout',\n },\n lockChoiceOrder: {\n settings: false,\n label: 'Lock Choice Order',\n },\n partialScoring: {\n settings: false,\n label: 'Allow Partial Scoring',\n },\n choiceMode: {\n settings: true,\n label: 'Response Type',\n },\n prompt: {\n settings: true,\n label: 'Prompt',\n },\n rationale: {\n settings: true,\n label: 'Rationale',\n },\n settingsPanelDisabled: false,\n spellCheck: {\n label: 'Spellcheck',\n settings: false,\n enabled: true,\n },\n scoringType: {\n settings: false,\n label: 'Scoring Type',\n },\n studentInstructions: {\n settings: false,\n label: 'Student Instructions',\n },\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions',\n },\n maxImageWidth: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n rowTitles: 300,\n },\n maxImageHeight: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n rowTitles: 150,\n },\n withRubric: {\n settings: false,\n label: 'Add Rubric',\n },\n },\n};\n"],"file":"defaults.js"}
|
|
@@ -73,17 +73,17 @@ var styles = function styles(theme) {
|
|
|
73
73
|
flexContainer: {
|
|
74
74
|
display: 'flex',
|
|
75
75
|
alignItems: 'center',
|
|
76
|
-
marginTop:
|
|
76
|
+
marginTop: theme.spacing.unit
|
|
77
77
|
},
|
|
78
78
|
titleText: {
|
|
79
79
|
fontFamily: 'Cerebri Sans',
|
|
80
|
-
fontSize:
|
|
80
|
+
fontSize: theme.typography.fontSize + 2,
|
|
81
81
|
lineHeight: '19px',
|
|
82
82
|
color: '#495B8F',
|
|
83
|
-
marginRight:
|
|
83
|
+
marginRight: theme.spacing.unit
|
|
84
84
|
},
|
|
85
85
|
tooltip: {
|
|
86
|
-
fontSize:
|
|
86
|
+
fontSize: theme.typography.fontSize - 2,
|
|
87
87
|
whiteSpace: 'pre',
|
|
88
88
|
maxWidth: '500px'
|
|
89
89
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/general-config-block.jsx"],"names":["styles","theme","container","marginTop","spacing","unit","display","input","flex","numberTextField","flexDirection","inputContainer","width","flexContainer","alignItems","titleText","fontFamily","fontSize","lineHeight","color","marginRight","tooltip","whiteSpace","maxWidth","GeneralConfigBlock","name","event","props","model","onResponseTypeChange","newModel","target","value","onLayoutChange","classes","configuration","layout","choiceMode","validationMessage","settings","label","e","v","onChangeColumns","onChangeResponseType","React","Component","PropTypes","object","isRequired","func"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;;;;;;;;;;;;;AAEA,IAAMA,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBC,IAAAA,SAAS,EAAE;AACTC,MAAAA,SAAS,EAAEF,KAAK,CAACG,OAAN,CAAcC,IAAd,GAAqB,CADvB;AAETC,MAAAA,OAAO,EAAE;AAFA,KADc;AAKzBC,IAAAA,KAAK,EAAE;AACLC,MAAAA,IAAI,EAAE;AADD,KALkB;AAQzBC,IAAAA,eAAe,EAAE;AACfC,MAAAA,aAAa,EAAE;AADA,KARQ;AAWzBC,IAAAA,cAAc,EAAE;AACdC,MAAAA,KAAK,EAAE;AADO,KAXS;AAczBC,IAAAA,aAAa,EAAE;AACbP,MAAAA,OAAO,EAAE,MADI;AAEbQ,MAAAA,UAAU,EAAE,QAFC;AAGbX,MAAAA,SAAS,
|
|
1
|
+
{"version":3,"sources":["../src/general-config-block.jsx"],"names":["styles","theme","container","marginTop","spacing","unit","display","input","flex","numberTextField","flexDirection","inputContainer","width","flexContainer","alignItems","titleText","fontFamily","fontSize","typography","lineHeight","color","marginRight","tooltip","whiteSpace","maxWidth","GeneralConfigBlock","name","event","props","model","onResponseTypeChange","newModel","target","value","onLayoutChange","classes","configuration","layout","choiceMode","validationMessage","settings","label","e","v","onChangeColumns","onChangeResponseType","React","Component","PropTypes","object","isRequired","func"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { InputContainer, NumberTextField } from '@pie-lib/config-ui';\nimport PropTypes from 'prop-types';\nimport Select from '@material-ui/core/Select';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport { withStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport Info from '@material-ui/icons/Info';\nimport Tooltip from '@material-ui/core/Tooltip';\n\nimport { generateValidationMessage } from '../utils';\n\nconst styles = (theme) => ({\n container: {\n marginTop: theme.spacing.unit * 2,\n display: 'flex',\n },\n input: {\n flex: 1,\n },\n numberTextField: {\n flexDirection: 'unset',\n },\n inputContainer: {\n width: '65%',\n },\n flexContainer: {\n display: 'flex',\n alignItems: 'center',\n marginTop: theme.spacing.unit,\n },\n titleText: {\n fontFamily: 'Cerebri Sans',\n fontSize: theme.typography.fontSize + 2,\n lineHeight: '19px',\n color: '#495B8F',\n marginRight: theme.spacing.unit,\n },\n tooltip: {\n fontSize: theme.typography.fontSize - 2,\n whiteSpace: 'pre',\n maxWidth: '500px',\n },\n});\n\nclass GeneralConfigBlock extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n onResponseTypeChange: PropTypes.func.isRequired,\n onLayoutChange: PropTypes.func.isRequired,\n };\n\n onChangeResponseType = (name) => (event) => {\n const { model, onResponseTypeChange } = this.props;\n const newModel = { ...model };\n\n newModel[name] = event.target.value;\n\n onResponseTypeChange(newModel[name]);\n };\n\n onChangeColumns = (name, value) => {\n const { model, onLayoutChange } = this.props;\n const newModel = { ...model };\n\n newModel[name] = value;\n\n onLayoutChange(newModel[name]);\n };\n\n render() {\n const { classes, model, configuration } = this.props;\n const { layout = {}, choiceMode = {} } = configuration || {};\n\n const validationMessage = generateValidationMessage(model);\n\n return (\n <>\n <div className={classes.flexContainer}>\n <Typography className={classes.titleText}>Define questions</Typography>\n <Tooltip\n classes={{ tooltip: classes.tooltip }}\n disableFocusListener\n disableTouchListener\n placement={'right'}\n title={validationMessage}\n >\n <Info fontSize={'small'} color={'primary'} />\n </Tooltip>\n </div>\n\n <div className={classes.container}>\n <div className={classes.input}>\n {layout.settings && (\n <InputContainer label={layout.label} className={classes.inputContainer}>\n <NumberTextField\n type=\"number\"\n min={3}\n max={10}\n value={model.layout}\n onChange={(e, v) => this.onChangeColumns('layout', v)}\n suffix={'Columns'}\n className={classes.numberTextField}\n />\n </InputContainer>\n )}\n </div>\n\n <div className={classes.input}>\n {choiceMode.settings && (\n <InputContainer label={choiceMode.label} className={classes.inputContainer}>\n <Select onChange={this.onChangeResponseType('choiceMode')} value={model.choiceMode}>\n <MenuItem value=\"radio\">Radio - One Answer</MenuItem>\n <MenuItem value=\"checkbox\">Checkbox - Multiple Answers</MenuItem>\n </Select>\n </InputContainer>\n )}\n </div>\n </div>\n </>\n );\n }\n}\n\nexport default withStyles(styles)(GeneralConfigBlock);\n"],"file":"general-config-block.js"}
|
package/configure/lib/row.js
CHANGED
|
@@ -47,8 +47,6 @@ var _debug = _interopRequireDefault(require("debug"));
|
|
|
47
47
|
|
|
48
48
|
var _editableHtml = _interopRequireWildcard(require("@pie-lib/editable-html"));
|
|
49
49
|
|
|
50
|
-
var _common = require("./common");
|
|
51
|
-
|
|
52
50
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
53
51
|
|
|
54
52
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -83,7 +81,7 @@ var Row = /*#__PURE__*/function (_React$Component) {
|
|
|
83
81
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {
|
|
84
82
|
dialog: {
|
|
85
83
|
open: false,
|
|
86
|
-
|
|
84
|
+
text: ''
|
|
87
85
|
}
|
|
88
86
|
});
|
|
89
87
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onRowTitleChange", function (rowIndex) {
|
|
@@ -107,14 +105,7 @@ var Row = /*#__PURE__*/function (_React$Component) {
|
|
|
107
105
|
_this.setState({
|
|
108
106
|
dialog: {
|
|
109
107
|
open: true,
|
|
110
|
-
|
|
111
|
-
onOk: function onOk() {
|
|
112
|
-
_this.setState({
|
|
113
|
-
dialog: {
|
|
114
|
-
open: false
|
|
115
|
-
}
|
|
116
|
-
});
|
|
117
|
-
}
|
|
108
|
+
text: 'The question row headings must be non-blank and unique.'
|
|
118
109
|
}
|
|
119
110
|
});
|
|
120
111
|
} else {
|
|
@@ -151,14 +142,7 @@ var Row = /*#__PURE__*/function (_React$Component) {
|
|
|
151
142
|
_this.setState({
|
|
152
143
|
dialog: {
|
|
153
144
|
open: true,
|
|
154
|
-
|
|
155
|
-
onOk: function onOk() {
|
|
156
|
-
_this.setState({
|
|
157
|
-
dialog: {
|
|
158
|
-
open: false
|
|
159
|
-
}
|
|
160
|
-
});
|
|
161
|
-
}
|
|
145
|
+
text: 'There has to be at least one question row.'
|
|
162
146
|
}
|
|
163
147
|
});
|
|
164
148
|
} else {
|
|
@@ -274,10 +258,17 @@ var Row = /*#__PURE__*/function (_React$Component) {
|
|
|
274
258
|
className: classes.errorText
|
|
275
259
|
}, error), /*#__PURE__*/_react["default"].createElement("hr", {
|
|
276
260
|
className: classes.separator
|
|
277
|
-
}), /*#__PURE__*/_react["default"].createElement(
|
|
278
|
-
title: dialog.message,
|
|
261
|
+
}), /*#__PURE__*/_react["default"].createElement(_configUi.AlertDialog, {
|
|
279
262
|
open: dialog.open,
|
|
280
|
-
|
|
263
|
+
title: "Warning",
|
|
264
|
+
text: dialog.text,
|
|
265
|
+
onConfirm: function onConfirm() {
|
|
266
|
+
return _this2.setState({
|
|
267
|
+
dialog: {
|
|
268
|
+
open: false
|
|
269
|
+
}
|
|
270
|
+
});
|
|
271
|
+
}
|
|
281
272
|
}));
|
|
282
273
|
|
|
283
274
|
return connectDragSource(connectDropTarget(content));
|
|
@@ -363,10 +354,9 @@ var styles = function styles(theme) {
|
|
|
363
354
|
width: '100%'
|
|
364
355
|
},
|
|
365
356
|
errorText: {
|
|
366
|
-
fontSize:
|
|
357
|
+
fontSize: theme.typography.fontSize - 2,
|
|
367
358
|
color: 'red',
|
|
368
|
-
paddingTop:
|
|
369
|
-
textAlign: 'center'
|
|
359
|
+
paddingTop: theme.spacing.unit
|
|
370
360
|
}
|
|
371
361
|
};
|
|
372
362
|
};
|
package/configure/lib/row.js.map
CHANGED
|
@@ -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","uploadSoundSupport","state","opacity","rowPlugins","image","disabled","audio","video","filteredDefaultPlugins","DEFAULT_PLUGINS","p","content","dragHandle","onMouseDownOnHandle","rowContainer","rowItem","questionText","onRowTitleChange","editor","language","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 dialog: {\n open: false,\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 dialog: {\n open: false,\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 || []).filter(\n (p) => p !== 'bulleted-list' && p !== 'numbered-list',\n );\n\n const content = (\n <div\n style={{\n opacity: opacity,\n }}\n >\n <span itemID={'handle'} className={classes.dragHandle} onMouseDown={this.onMouseDownOnHandle}>\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 activePlugins={filteredDefaultPlugins}\n spellCheck={spellCheck}\n maxImageWidth={maxImageWidth}\n maxImageHeight={maxImageHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </div>\n {row.values.map((rowValue, rowIdx) => (\n <div key={rowIdx} className={classes.rowItem}>\n {model.choiceMode === 'radio' ? (\n <Radio onChange={this.onRowValueChange(idx, rowIdx)} checked={rowValue === true} />\n ) : (\n <Checkbox onChange={this.onRowValueChange(idx, rowIdx)} checked={rowValue === true} label={''} />\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 title={dialog.message} open={dialog.open} onOk={dialog.onOk} />\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","text","rowIndex","value","props","model","onChange","newModel","rows","currentRow","title","sameValue","filter","row","wasChanged","sameValueEntered","empty","length","setState","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","language","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","typography","color","paddingTop","StyledRow","NAME","choiceSource","beginDrag","id","index","StyledSource","connect","monitor","dragSource","choiceTarget","hover","drop","item","getItem","didDrop","StyledSourceAndTarget","dropTarget"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;AAEA,IAAMA,GAAG,GAAG,uBAAM,0CAAN,CAAZ;AAEO,IAAIC,QAAO,GAAG,KAAd;;;IAEMC,G;;;;;;;;;;;;;;;8FA2BH;AACNC,MAAAA,MAAM,EAAE;AACNC,QAAAA,IAAI,EAAE,KADA;AAENC,QAAAA,IAAI,EAAE;AAFA;AADF,K;yGAWW,UAACC,QAAD;AAAA,aAAc,UAACC,KAAD,EAAW;AAC1C,0BAA4B,MAAKC,KAAjC;AAAA,YAAQC,KAAR,eAAQA,KAAR;AAAA,YAAeC,QAAf,eAAeA,QAAf;;AACA,YAAMC,QAAQ,qBAAQF,KAAR,CAAd;;AAEA,YAAMG,IAAI,GAAGD,QAAQ,CAACC,IAAT,IAAiB,EAA9B;AACA,YAAMC,UAAU,GAAGD,IAAI,CAACN,QAAD,CAAJ,IAAkBM,IAAI,CAACN,QAAD,CAAJ,CAAeQ,KAApD;AAEA,YAAMC,SAAS,GAAGH,IAAI,CAACI,MAAL,CAAY,UAACC,GAAD,EAAS;AACrC,cAAMC,UAAU,GAAGL,UAAU,KAAKN,KAAf,IAAwB,eAAQM,UAAR,gBAA+BN,KAA1E;AACA,cAAMY,gBAAgB,GAAGF,GAAG,CAACH,KAAJ,KAAcP,KAAd,IAAuB,eAAQU,GAAG,CAACH,KAAZ,gBAA8BP,KAA9E;AAEA,iBAAOW,UAAU,IAAIC,gBAArB;AACD,SALiB,CAAlB;AAOA,YAAMC,KAAK,GAAGb,KAAK,KAAK,aAAxB;;AAEA,YAAIQ,SAAS,CAACM,MAAV,IAAoBD,KAAxB,EAA+B;AAC7B,gBAAKE,QAAL,CAAc;AACZnB,YAAAA,MAAM,EAAE;AACNC,cAAAA,IAAI,EAAE,IADA;AAENC,cAAAA,IAAI,EAAE;AAFA;AADI,WAAd;AAMD,SAPD,MAOO;AACLM,UAAAA,QAAQ,CAACC,IAAT,CAAcN,QAAd,EAAwBQ,KAAxB,GAAgCP,KAAhC;AAEAG,UAAAA,QAAQ,CAACC,QAAD,CAAR;AACD;AACF,OA5BkB;AAAA,K;yGA8BA,UAACL,QAAD,EAAWiB,aAAX;AAAA,aAA6B,UAACC,KAAD,EAAW;AACzD,2BAA4B,MAAKhB,KAAjC;AAAA,YAAQC,KAAR,gBAAQA,KAAR;AAAA,YAAeC,QAAf,gBAAeA,QAAf;;AACA,YAAMC,QAAQ,qBAAQF,KAAR,CAAd;;AAEA,YAAIA,KAAK,CAACgB,UAAN,KAAqB,OAAzB,EAAkC;AAChC,eAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGf,QAAQ,CAACC,IAAT,CAAcN,QAAd,EAAwBqB,MAAxB,CAA+BN,MAAnD,EAA2DK,CAAC,EAA5D,EAAgE;AAC9Df,YAAAA,QAAQ,CAACC,IAAT,CAAcN,QAAd,EAAwBqB,MAAxB,CAA+BD,CAA/B,IAAoC,KAApC;AACD;AACF;;AAEDf,QAAAA,QAAQ,CAACC,IAAT,CAAcN,QAAd,EAAwBqB,MAAxB,CAA+BJ,aAA/B,IAAgDC,KAAK,CAACI,MAAN,CAAaC,OAA7D;AAEAnB,QAAAA,QAAQ,CAACC,QAAD,CAAR;AACD,OAbkB;AAAA,K;oGAeL,UAACmB,GAAD;AAAA,aAAS,YAAM;AAC3B,2BAA+B,MAAKtB,KAApC;AAAA,YAAQC,KAAR,gBAAQA,KAAR;AAAA,YAAesB,WAAf,gBAAeA,WAAf;;AAEA,YAAItB,KAAK,CAACG,IAAN,IAAcH,KAAK,CAACG,IAAN,CAAWS,MAAX,KAAsB,CAAxC,EAA2C;AACzC,gBAAKC,QAAL,CAAc;AACZnB,YAAAA,MAAM,EAAE;AACNC,cAAAA,IAAI,EAAE,IADA;AAENC,cAAAA,IAAI,EAAE;AAFA;AADI,WAAd;AAMD,SAPD,MAOO;AACL0B,UAAAA,WAAW,CAACD,GAAD,CAAX;AACD;AACF,OAba;AAAA,K;4GAeQ,YAAM;AAC1B,wBAAA7B,QAAO,GAAG,IAAV;AACD,K;0GAEmB,YAAM;AACxB,wBAAAA,QAAO,GAAG,KAAV;AACD,K;;;;;;WAtED,6BAAoB;AAClB+B,MAAAA,QAAQ,CAACC,gBAAT,CAA0B,SAA1B,EAAqC,KAAKC,iBAA1C;AACD;;;WAsED,kBAAS;AAAA;;AACP,yBAgBI,KAAK1B,KAhBT;AAAA,UACE2B,OADF,gBACEA,OADF;AAAA,UAEEC,YAFF,gBAEEA,YAFF;AAAA,UAGEC,iBAHF,gBAGEA,iBAHF;AAAA,UAIEC,iBAJF,gBAIEA,iBAJF;AAAA,UAKEC,UALF,gBAKEA,UALF;AAAA,UAME9B,KANF,gBAMEA,KANF;AAAA,UAOEQ,GAPF,gBAOEA,GAPF;AAAA,UAQEa,GARF,gBAQEA,GARF;AAAA,UASEU,YATF,gBASEA,YATF;AAAA,UAUEC,WAVF,gBAUEA,WAVF;AAAA,UAWEC,UAXF,gBAWEA,UAXF;AAAA,UAYEC,KAZF,gBAYEA,KAZF;AAAA,UAaEC,aAbF,gBAaEA,aAbF;AAAA,UAcEC,cAdF,gBAcEA,cAdF;AAAA,UAeEC,kBAfF,gBAeEA,kBAfF;AAiBA,UAAQ3C,MAAR,GAAmB,KAAK4C,KAAxB,CAAQ5C,MAAR;AACA,UAAM6C,OAAO,GAAGT,UAAU,GAAG,CAAH,GAAO,CAAjC;AAEA,UAAMU,UAAU,GAAG;AACjBC,QAAAA,KAAK,EAAE;AACLC,UAAAA,QAAQ,EAAE,CAACX;AADN,SADU;AAIjBY,QAAAA,KAAK,EAAE;AAAED,UAAAA,QAAQ,EAAE;AAAZ,SAJU;AAKjBE,QAAAA,KAAK,EAAE;AAAEF,UAAAA,QAAQ,EAAE;AAAZ;AALU,OAAnB;AAOA,UAAMG,sBAAsB,GAAG,CAACC,iCAAmB,EAApB,EAAwBvC,MAAxB,CAC7B,UAACwC,CAAD;AAAA,eAAOA,CAAC,KAAK,eAAN,IAAyBA,CAAC,KAAK,eAAtC;AAAA,OAD6B,CAA/B;;AAIA,UAAMC,OAAO,gBACX;AAAK,QAAA,KAAK,EAAE;AAAET,UAAAA,OAAO,EAAEA;AAAX;AAAZ,sBACE;AAAM,QAAA,MAAM,EAAE,QAAd;AAAwB,QAAA,SAAS,EAAEb,OAAO,CAACuB,UAA3C;AAAuD,QAAA,WAAW,EAAE,KAAKC;AAAzE,sBACE,gCAAC,sBAAD;AAAY,QAAA,KAAK,EAAE;AAAnB,QADF,CADF,eAKE;AAAK,QAAA,SAAS,EAAExB,OAAO,CAACyB;AAAxB,sBACE;AAAK,QAAA,SAAS,EAAE,4BAAWzB,OAAO,CAAC0B,OAAnB,EAA4B1B,OAAO,CAAC2B,YAApC;AAAhB,sBACE,gCAAC,wBAAD;AACE,QAAA,YAAY,EAAE1B,YADhB;AAEE,QAAA,gBAAgB,MAFlB;AAGE,QAAA,gBAAgB,MAHlB;AAIE,QAAA,KAAK,EAAE,OAJT;AAKE,QAAA,MAAM,EAAEnB,GAAG,CAACH,KALd;AAME,QAAA,QAAQ,EAAE,KAAKiD,gBAAL,CAAsBjC,GAAtB,CANZ;AAOE,QAAA,SAAS,EAAEK,OAAO,CAAC6B,MAPrB;AAQE,QAAA,WAAW,EAAEf,UARf;AASE,QAAA,WAAW,EAAER,WATf;AAUE,QAAA,aAAa,EAAEa,sBAVjB;AAWE,QAAA,UAAU,EAAEZ,UAXd;AAYE,QAAA,aAAa,EAAEE,aAZjB;AAaE,QAAA,cAAc,EAAEC,cAblB;AAcE,QAAA,kBAAkB,EAAEC,kBAdtB;AAeE,QAAA,uBAAuB,EAAE,CAAC;AAAEmB,UAAAA,QAAQ,EAAE;AAAZ,SAAD,EAA0B;AAAEA,UAAAA,QAAQ,EAAE;AAAZ,SAA1B;AAf3B,QADF,CADF,EAqBGhD,GAAG,CAACU,MAAJ,CAAWuC,GAAX,CAAe,UAACC,QAAD,EAAWC,MAAX;AAAA,4BACd;AAAK,UAAA,GAAG,EAAEA,MAAV;AAAkB,UAAA,SAAS,EAAEjC,OAAO,CAAC0B;AAArC,WACGpD,KAAK,CAACgB,UAAN,KAAqB,OAArB,gBACC,gCAAC,iBAAD;AAAO,UAAA,QAAQ,EAAE,MAAI,CAAC4C,gBAAL,CAAsBvC,GAAtB,EAA2BsC,MAA3B,CAAjB;AAAqD,UAAA,OAAO,EAAED,QAAQ,KAAK;AAA3E,UADD,gBAGC,gCAAC,kBAAD;AAAU,UAAA,QAAQ,EAAE,MAAI,CAACE,gBAAL,CAAsBvC,GAAtB,EAA2BsC,MAA3B,CAApB;AAAwD,UAAA,OAAO,EAAED,QAAQ,KAAK,IAA9E;AAAoF,UAAA,KAAK,EAAE;AAA3F,UAJJ,CADc;AAAA,OAAf,CArBH,eA+BE;AAAK,QAAA,SAAS,EAAEhC,OAAO,CAACmC;AAAxB,sBACE,gCAAC,kBAAD;AAAQ,QAAA,OAAO,EAAE,KAAKvC,WAAL,CAAiBD,GAAjB;AAAjB,sBACE,gCAAC,kBAAD;AAAQ,QAAA,SAAS,EAAEK,OAAO,CAACmC;AAA3B,QADF,CADF,CA/BF,CALF,EA2CG3B,KAAK,iBAAI;AAAK,QAAA,SAAS,EAAER,OAAO,CAACoC;AAAxB,SAAoC5B,KAApC,CA3CZ,eA4CE;AAAI,QAAA,SAAS,EAAER,OAAO,CAACqC;AAAvB,QA5CF,eA8CE,gCAAC,qBAAD;AACE,QAAA,IAAI,EAAErE,MAAM,CAACC,IADf;AAEE,QAAA,KAAK,EAAC,SAFR;AAGE,QAAA,IAAI,EAAED,MAAM,CAACE,IAHf;AAIE,QAAA,SAAS,EAAE;AAAA,iBAAM,MAAI,CAACiB,QAAL,CAAc;AAAEnB,YAAAA,MAAM,EAAE;AAAEC,cAAAA,IAAI,EAAE;AAAR;AAAV,WAAd,CAAN;AAAA;AAJb,QA9CF,CADF;;AAwDA,aAAOiC,iBAAiB,CAACC,iBAAiB,CAACmB,OAAD,CAAlB,CAAxB;AACD;;;EAnMsBgB,kBAAMC,S;;;iCAAlBxE,G,eACQ;AACjBiC,EAAAA,OAAO,EAAEwC,sBAAUC,MAAV,CAAiBC,UADT;AAEjBpE,EAAAA,KAAK,EAAEkE,sBAAUC,MAAV,CAAiBC,UAFP;AAGjB5D,EAAAA,GAAG,EAAE0D,sBAAUC,MAAV,CAAiBC,UAHL;AAIjB/C,EAAAA,GAAG,EAAE6C,sBAAUG,MAAV,CAAiBD,UAJL;AAKjBtC,EAAAA,UAAU,EAAEoC,sBAAUI,IAAV,CAAeF,UALV;AAMjB9C,EAAAA,WAAW,EAAE4C,sBAAUK,IAAV,CAAeH,UANX;AAOjBnE,EAAAA,QAAQ,EAAEiE,sBAAUK,IAAV,CAAeH,UAPR;AAQjBxC,EAAAA,iBAAiB,EAAEsC,sBAAUK,IAAV,CAAeH,UARjB;AASjBvC,EAAAA,iBAAiB,EAAEqC,sBAAUK,IAAV,CAAeH,UATjB;AAUjBI,EAAAA,SAAS,EAAEN,sBAAUK,IAAV,CAAeH,UAVT;AAWjBzC,EAAAA,YAAY,EAAEuC,sBAAUO,KAAV,CAAgB;AAC5BC,IAAAA,GAAG,EAAER,sBAAUK,IAAV,CAAeH,UADQ;AAE5B,cAAQF,sBAAUK,IAAV,CAAeH;AAFK,GAAhB,CAXG;AAejB/B,EAAAA,kBAAkB,EAAE6B,sBAAUO,KAAV,CAAgB;AAClCC,IAAAA,GAAG,EAAER,sBAAUK,IAAV,CAAeH,UADc;AAElC,cAAQF,sBAAUK,IAAV,CAAeH;AAFW,GAAhB,CAfH;AAmBjBrC,EAAAA,YAAY,EAAEmC,sBAAUI,IAnBP;AAoBjBtC,EAAAA,WAAW,EAAEkC,sBAAUC,MApBN;AAqBjBjC,EAAAA,KAAK,EAAEgC,sBAAUS;AArBA,C;iCADRlF,G,kBAyBW,E;;AA4KxB,IAAMmF,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBC,IAAAA,OAAO,EAAE;AACPC,MAAAA,OAAO,EAAE,CADF;AAEPC,MAAAA,cAAc,EAAE;AAFT,KADgB;AAKzBC,IAAAA,MAAM,EAAE;AACNF,MAAAA,OAAO,EAAEF,KAAK,CAACK,OAAN,CAAcC,IADjB;AAENC,MAAAA,QAAQ,EAAE;AAFJ,KALiB;AASzBnC,IAAAA,UAAU,EAAE;AACVoC,MAAAA,MAAM,EAAE;AADE,KATa;AAYzBC,IAAAA,YAAY,EAAE;AACZD,MAAAA,MAAM,EAAE;AADI,KAZW;AAgBzBE,IAAAA,SAAS,EAAE;AACTC,MAAAA,SAAS,EAAEX,KAAK,CAACK,OAAN,CAAcC,IAAd,GAAqB,CADvB;AAETM,MAAAA,OAAO,EAAE,MAFA;AAGTC,MAAAA,aAAa,EAAE;AAHN,KAhBc;AAqBzBvC,IAAAA,YAAY,EAAE;AACZqC,MAAAA,SAAS,EAAEX,KAAK,CAACK,OAAN,CAAcC,IAAd,GAAqB,CADpB;AAEZM,MAAAA,OAAO,EAAE,MAFG;AAGZE,MAAAA,UAAU,EAAE,QAHA;AAIZC,MAAAA,IAAI,EAAE;AAJM,KArBW;AA2BzBxC,IAAAA,OAAO,EAAE;AACPwC,MAAAA,IAAI,EAAE,CADC;AAEPH,MAAAA,OAAO,EAAE,MAFF;AAGPT,MAAAA,cAAc,EAAE,QAHT;AAIP,gBAAU;AACRa,QAAAA,KAAK,EAAE;AADC;AAJH,KA3BgB;AAmCzBhC,IAAAA,UAAU,EAAE;AACV+B,MAAAA,IAAI,EAAE,GADI;AAEVE,MAAAA,QAAQ,EAAE;AAFA,KAnCa;AAuCzBzC,IAAAA,YAAY,EAAE;AACZuC,MAAAA,IAAI,EAAE,CADM;AAEZH,MAAAA,OAAO,EAAE,MAFG;AAGZT,MAAAA,cAAc,EAAE;AAHJ,KAvCW;AA4CzBjB,IAAAA,SAAS,EAAE;AACTyB,MAAAA,SAAS,EAAEX,KAAK,CAACK,OAAN,CAAcC,IAAd,GAAqB,CADvB;AAETY,MAAAA,MAAM,EAAE,CAFC;AAGTC,MAAAA,SAAS,EAAE,qBAHF;AAITH,MAAAA,KAAK,EAAE;AAJE,KA5Cc;AAkDzB/B,IAAAA,SAAS,EAAE;AACTmC,MAAAA,QAAQ,EAAEpB,KAAK,CAACqB,UAAN,CAAiBD,QAAjB,GAA4B,CAD7B;AAETE,MAAAA,KAAK,EAAE,KAFE;AAGTC,MAAAA,UAAU,EAAEvB,KAAK,CAACK,OAAN,CAAcC;AAHjB;AAlDc,GAAZ;AAAA,CAAf;;AAyDA,IAAMkB,SAAS,GAAG,wBAAWzB,MAAX,EAAmBnF,GAAnB,CAAlB;AAEA,IAAM6G,IAAI,GAAG,YAAb;AAEO,IAAMC,YAAY,GAAG;AAC1B/G,EAAAA,OAD0B,qBAChB;AACR,WAAOA,QAAP;AACD,GAHyB;AAI1BgH,EAAAA,SAJ0B,qBAIhBzG,KAJgB,EAIT;AACf,WAAO;AACL0G,MAAAA,EAAE,EAAE1G,KAAK,CAACS,GAAN,CAAUiG,EADT;AAELC,MAAAA,KAAK,EAAE3G,KAAK,CAACsB;AAFR,KAAP;AAID;AATyB,CAArB;;AAYP,IAAMsF,YAAY,GAAG,0BAAWL,IAAX,EAAiBC,YAAjB,EAA+B,UAACK,OAAD,EAAUC,OAAV;AAAA,SAAuB;AACzEjF,IAAAA,iBAAiB,EAAEgF,OAAO,CAACE,UAAR,EADsD;AAEzEhF,IAAAA,UAAU,EAAE+E,OAAO,CAAC/E,UAAR;AAF6D,GAAvB;AAAA,CAA/B,EAGjBuE,SAHiB,CAArB;AAKO,IAAMU,YAAY,GAAG;AAC1BC,EAAAA,KAD0B,mBAClB;AACNzH,IAAAA,GAAG,CAAC,SAAD,CAAH;AACD,GAHyB;AAI1B0H,EAAAA,IAJ0B,gBAIrBlH,KAJqB,EAId8G,OAJc,EAIL;AACnB,QAAMK,IAAI,GAAGL,OAAO,CAACM,OAAR,EAAb;AAEA5H,IAAAA,GAAG,CAAC,eAAD,EAAkB2H,IAAlB,EAAwB,UAAxB,EAAoCL,OAAO,CAACO,OAAR,EAApC,CAAH;AAEArH,IAAAA,KAAK,CAACyE,SAAN,CAAgB0C,IAAI,CAACR,KAArB,EAA4B3G,KAAK,CAACsB,GAAlC;AACD;AAVyB,CAArB;;AAaP,IAAMgG,qBAAqB,GAAG,0BAAWf,IAAX,EAAiBS,YAAjB,EAA+B,UAACH,OAAD;AAAA,SAAc;AACzE/E,IAAAA,iBAAiB,EAAE+E,OAAO,CAACU,UAAR;AADsD,GAAd;AAAA,CAA/B,EAE1BX,YAF0B,CAA9B;eAIeU,qB","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport { AlertDialog, 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';\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 text: '',\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 text: 'The question row headings must be non-blank and unique.',\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 text: 'There has to be at least one question row.',\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 || []).filter(\n (p) => p !== 'bulleted-list' && p !== 'numbered-list',\n );\n\n const content = (\n <div style={{ opacity: opacity }}>\n <span itemID={'handle'} className={classes.dragHandle} onMouseDown={this.onMouseDownOnHandle}>\n <DragHandle color={'primary'} />\n </span>\n\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 activePlugins={filteredDefaultPlugins}\n spellCheck={spellCheck}\n maxImageWidth={maxImageWidth}\n maxImageHeight={maxImageHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </div>\n\n {row.values.map((rowValue, rowIdx) => (\n <div key={rowIdx} className={classes.rowItem}>\n {model.choiceMode === 'radio' ? (\n <Radio onChange={this.onRowValueChange(idx, rowIdx)} checked={rowValue === true} />\n ) : (\n <Checkbox onChange={this.onRowValueChange(idx, rowIdx)} checked={rowValue === true} label={''} />\n )}\n </div>\n ))}\n\n <div className={classes.deleteIcon}>\n <Button onClick={this.onDeleteRow(idx)}>\n <Delete className={classes.deleteIcon} />\n </Button>\n </div>\n </div>\n\n {error && <div className={classes.errorText}>{error}</div>}\n <hr className={classes.separator} />\n\n <AlertDialog\n open={dialog.open}\n title=\"Warning\"\n text={dialog.text}\n onConfirm={() => this.setState({ dialog: { open: false } })}\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: theme.typography.fontSize - 2,\n color: 'red',\n paddingTop: theme.spacing.unit,\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\n log('[drop] item: ', item, 'didDrop?', monitor.didDrop());\n\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"}
|
package/docs/config-schema.json
CHANGED
|
@@ -131,6 +131,11 @@
|
|
|
131
131
|
}
|
|
132
132
|
}
|
|
133
133
|
},
|
|
134
|
+
"settingsPanelDisabled": {
|
|
135
|
+
"description": "Indicates if the settings panel is not available",
|
|
136
|
+
"type": "boolean",
|
|
137
|
+
"title": "settingsPanelDisabled"
|
|
138
|
+
},
|
|
134
139
|
"spellCheck": {
|
|
135
140
|
"title": "ConfigureProp",
|
|
136
141
|
"type": "object",
|
|
@@ -98,6 +98,10 @@ Indicates if the item has to be displayed in the Settings Panel
|
|
|
98
98
|
|
|
99
99
|
Indicates the label for the item that has to be displayed in the Settings Panel
|
|
100
100
|
|
|
101
|
+
# `settingsPanelDisabled` (boolean)
|
|
102
|
+
|
|
103
|
+
Indicates if the settings panel is not available
|
|
104
|
+
|
|
101
105
|
# `spellCheck` (object)
|
|
102
106
|
|
|
103
107
|
Properties of the `spellCheck` object:
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
6
|
"repository": "pie-framework/pie-elements",
|
|
7
|
-
"version": "5.3.2-next.
|
|
7
|
+
"version": "5.3.2-next.83+77cec3b4c",
|
|
8
8
|
"main": "lib/index.js",
|
|
9
9
|
"description": "",
|
|
10
10
|
"scripts": {
|
|
@@ -26,6 +26,6 @@
|
|
|
26
26
|
},
|
|
27
27
|
"author": "",
|
|
28
28
|
"license": "ISC",
|
|
29
|
-
"gitHead": "
|
|
29
|
+
"gitHead": "77cec3b4c4c2c66cfe3896bde8ad8922b42790c2",
|
|
30
30
|
"module": "src/index.js"
|
|
31
31
|
}
|