@pie-element/select-text 12.0.0-next.42 → 12.1.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,407 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = exports.Design = void 0;
8
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
- var _react = _interopRequireDefault(require("react"));
10
- var _propTypes = _interopRequireDefault(require("prop-types"));
11
- var _TextField = _interopRequireDefault(require("@mui/material/TextField"));
12
- var _styles = require("@mui/material/styles");
13
- var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
14
- var _debounce = _interopRequireDefault(require("lodash/debounce"));
15
- var _textSelect = require("@pie-lib/text-select");
16
- var _configUi = require("@pie-lib/config-ui");
17
- var _Chip = _interopRequireDefault(require("@mui/material/Chip"));
18
- var _Info = _interopRequireDefault(require("@mui/icons-material/Info"));
19
- var _debug = _interopRequireDefault(require("debug"));
20
- var _editableHtmlTipTap = _interopRequireDefault(require("@pie-lib/editable-html-tip-tap"));
21
- var _Tooltip = _interopRequireDefault(require("@mui/material/Tooltip"));
22
- var _utils = require("./utils");
23
- const {
24
- Panel,
25
- toggle,
26
- radio,
27
- dropdown
28
- } = _configUi.settings;
29
- const StyledInputContainer = (0, _styles.styled)(_configUi.InputContainer)(({
30
- theme
31
- }) => ({
32
- width: '100%',
33
- paddingTop: theme.spacing(2),
34
- marginBottom: theme.spacing(2)
35
- }));
36
- const StyledEditableHtml = (0, _styles.styled)(_editableHtmlTipTap.default)({
37
- width: '100%'
38
- });
39
- const ErrorText = (0, _styles.styled)('div')(({
40
- theme
41
- }) => ({
42
- fontSize: theme.typography.fontSize - 2,
43
- color: theme.palette.error.main,
44
- paddingTop: theme.spacing(1)
45
- }));
46
- const StyledTextField = (0, _styles.styled)(_TextField.default)({
47
- width: '100%'
48
- });
49
- const TokenizerContainer = (0, _styles.styled)(_configUi.InputContainer)(({
50
- theme
51
- }) => ({
52
- paddingRight: 0,
53
- marginRight: 0,
54
- position: 'relative',
55
- '&:after': {
56
- position: 'absolute',
57
- bottom: 0,
58
- left: 0,
59
- right: 0,
60
- height: '1px',
61
- content: '""',
62
- backgroundColor: theme.palette.primary.main
63
- },
64
- marginBottom: theme.spacing(1)
65
- }));
66
- const StyledTooltip = (0, _styles.styled)(_Tooltip.default)(({
67
- theme
68
- }) => ({
69
- '& .MuiTooltip-tooltip': {
70
- fontSize: theme.typography.fontSize - 2,
71
- whiteSpace: 'pre',
72
- maxWidth: '500px'
73
- }
74
- }));
75
- const StyledTokenizer = (0, _styles.styled)(_textSelect.Tokenizer)(({
76
- theme
77
- }) => ({
78
- marginTop: theme.spacing(2)
79
- }));
80
- const StyledChip = (0, _styles.styled)(_Chip.default)(({
81
- theme
82
- }) => ({
83
- marginTop: theme.spacing(0.5),
84
- marginRight: theme.spacing(2)
85
- }));
86
- const TokensDetails = (0, _styles.styled)('div')(({
87
- theme
88
- }) => ({
89
- display: 'flex',
90
- alignItems: 'center',
91
- flexWrap: 'wrap',
92
- marginBottom: theme.spacing(2.5)
93
- }));
94
- const StyledNumberTextField = (0, _styles.styled)(_configUi.NumberTextField)(({
95
- theme
96
- }) => ({
97
- width: '180px',
98
- margin: `${theme.spacing(0.5)}px auto 0`
99
- }));
100
- const log = (0, _debug.default)('@pie-element:select-text:configure');
101
- class Design extends _react.default.Component {
102
- constructor(props) {
103
- super(props);
104
- (0, _defineProperty2.default)(this, "updateText", (0, _debounce.default)(val => {
105
- this.apply(u => {
106
- u.text = val;
107
- u.tokens = [];
108
- });
109
- }, 200));
110
- (0, _defineProperty2.default)(this, "changeText", event => this.updateText(event.target.value));
111
- (0, _defineProperty2.default)(this, "changeTokens", (tokens, mode) => {
112
- this.apply(u => {
113
- u.tokens = tokens;
114
- u.mode = mode;
115
- const correctTokenCount = tokens.filter(t => t.correct).length;
116
- const max = isFinite(u.maxSelections) ? u.maxSelections : 0;
117
- u.maxSelections = Math.max(max, correctTokenCount);
118
- });
119
- });
120
- (0, _defineProperty2.default)(this, "changeMaxSelections", (event, max) => {
121
- this.apply(u => u.maxSelections = max);
122
- });
123
- (0, _defineProperty2.default)(this, "apply", fn => {
124
- const {
125
- onModelChanged,
126
- model
127
- } = this.props;
128
- const update = (0, _cloneDeep.default)(model);
129
- fn(update);
130
- onModelChanged(update);
131
- });
132
- (0, _defineProperty2.default)(this, "changeFeedback", feedback => {
133
- this.apply(u => u.feedback = feedback);
134
- });
135
- (0, _defineProperty2.default)(this, "changePartialScoring", partialScoring => {
136
- const {
137
- onModelChanged,
138
- model
139
- } = this.props;
140
- const update = (0, _cloneDeep.default)(model);
141
- update.partialScoring = partialScoring;
142
- onModelChanged(update);
143
- });
144
- (0, _defineProperty2.default)(this, "onPromptChanged", prompt => {
145
- const {
146
- onModelChanged,
147
- model
148
- } = this.props;
149
- const update = (0, _cloneDeep.default)(model);
150
- update.prompt = prompt;
151
- onModelChanged(update);
152
- });
153
- (0, _defineProperty2.default)(this, "onTeacherInstructionsChanged", teacherInstructions => {
154
- const {
155
- onModelChanged,
156
- model
157
- } = this.props;
158
- const update = (0, _cloneDeep.default)(model);
159
- update.teacherInstructions = teacherInstructions;
160
- onModelChanged(update);
161
- });
162
- (0, _defineProperty2.default)(this, "onRationaleChanged", rationale => {
163
- const {
164
- onModelChanged,
165
- model
166
- } = this.props;
167
- onModelChanged({
168
- ...model,
169
- rationale
170
- });
171
- });
172
- const {
173
- model: _model
174
- } = this.props;
175
- this.state = {
176
- text: _model && _model.text || ''
177
- };
178
- }
179
- UNSAFE_componentWillReceiveProps(nProps) {
180
- const {
181
- model
182
- } = nProps;
183
- if (model && model.text) {
184
- this.setState({
185
- text: model.text
186
- });
187
- }
188
- }
189
- render() {
190
- const {
191
- text: textValue
192
- } = this.state;
193
- const {
194
- configuration,
195
- imageSupport,
196
- model,
197
- onConfigurationChanged,
198
- onModelChanged,
199
- uploadSoundSupport
200
- } = this.props;
201
- const {
202
- baseInputConfiguration = {},
203
- correctAnswer = {},
204
- contentDimensions = {},
205
- feedback = {},
206
- highlightChoices = {},
207
- mode = {},
208
- partialScoring = {},
209
- prompt = {},
210
- rationale = {},
211
- selectionCount = {},
212
- selections = {},
213
- settingsPanelDisabled,
214
- scoringType = {},
215
- spellCheck = {},
216
- studentInstructions = {},
217
- teacherInstructions = {},
218
- text = {},
219
- tokens = {},
220
- maxImageWidth = {},
221
- maxImageHeight = {},
222
- withRubric = {},
223
- mathMlOptions = {},
224
- language = {},
225
- languageChoices = {}
226
- } = configuration || {};
227
- const {
228
- errors,
229
- extraCSSRules,
230
- feedbackEnabled,
231
- promptEnabled,
232
- rationaleEnabled,
233
- spellCheckEnabled,
234
- teacherInstructionsEnabled,
235
- toolbarEditorPosition
236
- } = model || {};
237
- const {
238
- prompt: promptError,
239
- rationale: rationaleError,
240
- selectionsError,
241
- teacherInstructions: teacherInstructionsError,
242
- tokensError
243
- } = errors || {};
244
- const validationMessage = (0, _utils.generateValidationMessage)(configuration);
245
- const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;
246
- const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;
247
- let {
248
- tokens: tokensModel
249
- } = model;
250
- tokensModel = tokensModel || [];
251
- const toolbarOpts = {
252
- position: toolbarEditorPosition === 'top' ? 'top' : 'bottom'
253
- };
254
- log('[render] maxSelections:', model.maxSelections);
255
- const panelSettings = {
256
- partialScoring: partialScoring.settings && toggle(partialScoring.label),
257
- highlightChoices: highlightChoices.settings && toggle(highlightChoices.label),
258
- feedbackEnabled: feedback.settings && toggle(feedback.label),
259
- 'language.enabled': language.settings && toggle(language.label, true),
260
- language: language.settings && language.enabled && dropdown(languageChoices.label, languageChoices.options)
261
- };
262
- const panelProperties = {
263
- teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),
264
- studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),
265
- promptEnabled: prompt.settings && toggle(prompt.label),
266
- rationaleEnabled: rationale.settings && toggle(rationale.label),
267
- spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),
268
- scoringType: scoringType.settings && radio(scoringType.label, ['auto', 'rubric']),
269
- rubricEnabled: withRubric?.settings && toggle(withRubric?.label)
270
- };
271
- const getPluginProps = (props = {}) => ({
272
- ...baseInputConfiguration,
273
- ...props
274
- });
275
- return /*#__PURE__*/_react.default.createElement(_configUi.layout.ConfigLayout, {
276
- extraCSSRules: extraCSSRules,
277
- dimensions: contentDimensions,
278
- hideSettings: settingsPanelDisabled,
279
- settings: /*#__PURE__*/_react.default.createElement(Panel, {
280
- model: model,
281
- configuration: configuration,
282
- onChangeModel: model => onModelChanged(model),
283
- onChangeConfiguration: onConfigurationChanged,
284
- groups: {
285
- Settings: panelSettings,
286
- Properties: panelProperties
287
- }
288
- })
289
- }, teacherInstructionsEnabled && /*#__PURE__*/_react.default.createElement(StyledInputContainer, {
290
- label: teacherInstructions.label
291
- }, /*#__PURE__*/_react.default.createElement(StyledEditableHtml, {
292
- markup: model.teacherInstructions || '',
293
- onChange: this.onTeacherInstructionsChanged,
294
- imageSupport: imageSupport,
295
- nonEmpty: false,
296
- error: teacherInstructionsError,
297
- toolbarOpts: toolbarOpts,
298
- pluginProps: getPluginProps(configuration?.teacherInstructions?.inputConfiguration),
299
- spellCheck: spellCheckEnabled,
300
- maxImageWidth: maxImageWidth && maxImageWidth.teacherInstructions || defaultImageMaxWidth,
301
- maxImageHeight: maxImageHeight && maxImageHeight.teacherInstructions || defaultImageMaxHeight,
302
- uploadSoundSupport: uploadSoundSupport,
303
- languageCharactersProps: [{
304
- language: 'spanish'
305
- }, {
306
- language: 'special'
307
- }],
308
- mathMlOptions: mathMlOptions
309
- }), teacherInstructionsError && /*#__PURE__*/_react.default.createElement(ErrorText, null, teacherInstructionsError)), promptEnabled && /*#__PURE__*/_react.default.createElement(StyledInputContainer, {
310
- label: prompt.label || ''
311
- }, /*#__PURE__*/_react.default.createElement(StyledEditableHtml, {
312
- markup: model.prompt,
313
- onChange: this.onPromptChanged,
314
- imageSupport: imageSupport,
315
- error: promptError,
316
- toolbarOpts: toolbarOpts,
317
- pluginProps: getPluginProps(configuration?.prompt?.inputConfiguration),
318
- spellCheck: spellCheckEnabled,
319
- maxImageWidth: defaultImageMaxWidth,
320
- maxImageHeight: defaultImageMaxHeight,
321
- uploadSoundSupport: uploadSoundSupport,
322
- languageCharactersProps: [{
323
- language: 'spanish'
324
- }, {
325
- language: 'special'
326
- }],
327
- mathMlOptions: mathMlOptions
328
- }), promptError && /*#__PURE__*/_react.default.createElement(ErrorText, null, promptError)), text.settings && /*#__PURE__*/_react.default.createElement(StyledInputContainer, {
329
- label: text.label || ''
330
- }, /*#__PURE__*/_react.default.createElement(StyledTextField, {
331
- variant: "standard",
332
- multiline: true,
333
- defaultValue: textValue,
334
- onChange: this.changeText,
335
- spellCheck: spellCheckEnabled
336
- })), tokens.settings && /*#__PURE__*/_react.default.createElement(TokenizerContainer, {
337
- label: tokens.label || ''
338
- }, /*#__PURE__*/_react.default.createElement(StyledTooltip, {
339
- disableFocusListener: true,
340
- disableTouchListener: true,
341
- placement: 'right',
342
- title: validationMessage
343
- }, /*#__PURE__*/_react.default.createElement(_Info.default, {
344
- fontSize: 'small',
345
- color: 'primary',
346
- style: {
347
- position: 'absolute',
348
- left: '48px',
349
- top: '-3px'
350
- }
351
- })), /*#__PURE__*/_react.default.createElement(StyledTokenizer, {
352
- text: model.text,
353
- tokens: tokensModel,
354
- onChange: this.changeTokens
355
- })), tokensError && /*#__PURE__*/_react.default.createElement(ErrorText, null, tokensError), selectionsError && /*#__PURE__*/_react.default.createElement(ErrorText, null, selectionsError), /*#__PURE__*/_react.default.createElement(TokensDetails, null, mode.settings && /*#__PURE__*/_react.default.createElement(StyledChip, {
356
- label: `${mode.label}: ${model.mode ? model.mode : 'None'}`
357
- }), selections.settings && /*#__PURE__*/_react.default.createElement(StyledChip, {
358
- label: `${selections.label}: ${tokensModel.length}`
359
- }), correctAnswer.settings && /*#__PURE__*/_react.default.createElement(StyledChip, {
360
- label: `${correctAnswer.label}: ${tokensModel.filter(t => t.correct).length}`
361
- }), selectionCount.settings && /*#__PURE__*/_react.default.createElement(StyledNumberTextField, {
362
- min: tokensModel.filter(t => t.correct).length || 0,
363
- label: `${selectionCount.label} (0:any)`,
364
- max: tokensModel.length,
365
- value: model.maxSelections,
366
- onChange: this.changeMaxSelections
367
- })), rationaleEnabled && /*#__PURE__*/_react.default.createElement(StyledInputContainer, {
368
- label: rationale.label || ''
369
- }, /*#__PURE__*/_react.default.createElement(StyledEditableHtml, {
370
- markup: model.rationale || '',
371
- onChange: this.onRationaleChanged,
372
- imageSupport: imageSupport,
373
- error: rationaleError,
374
- toolbarOpts: toolbarOpts,
375
- pluginProps: getPluginProps(configuration?.rationale?.inputConfiguration),
376
- spellCheck: spellCheckEnabled,
377
- maxImageWidth: maxImageWidth && maxImageWidth.rationale || defaultImageMaxWidth,
378
- maxImageHeight: maxImageHeight && maxImageHeight.rationale || defaultImageMaxHeight,
379
- uploadSoundSupport: uploadSoundSupport,
380
- languageCharactersProps: [{
381
- language: 'spanish'
382
- }, {
383
- language: 'special'
384
- }],
385
- mathMlOptions: mathMlOptions
386
- }), rationaleError && /*#__PURE__*/_react.default.createElement(ErrorText, null, rationaleError)), feedbackEnabled && /*#__PURE__*/_react.default.createElement(_configUi.FeedbackConfig, {
387
- feedback: model.feedback,
388
- onChange: this.changeFeedback,
389
- toolbarOpts: toolbarOpts
390
- }));
391
- }
392
- }
393
- exports.Design = Design;
394
- (0, _defineProperty2.default)(Design, "propTypes", {
395
- model: _propTypes.default.object.isRequired,
396
- configuration: _propTypes.default.object.isRequired,
397
- onModelChanged: _propTypes.default.func.isRequired,
398
- onConfigurationChanged: _propTypes.default.func.isRequired,
399
- imageSupport: _propTypes.default.shape({
400
- add: _propTypes.default.func.isRequired,
401
- delete: _propTypes.default.func.isRequired
402
- }),
403
- uploadSoundSupport: _propTypes.default.object
404
- });
405
- (0, _defineProperty2.default)(Design, "defaultProps", {});
406
- var _default = exports.default = Design;
407
- //# sourceMappingURL=design.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"design.js","names":["_react","_interopRequireDefault","require","_propTypes","_TextField","_styles","_cloneDeep","_debounce","_textSelect","_configUi","_Chip","_Info","_debug","_editableHtmlTipTap","_Tooltip","_utils","Panel","toggle","radio","dropdown","settings","StyledInputContainer","styled","InputContainer","theme","width","paddingTop","spacing","marginBottom","StyledEditableHtml","EditableHtml","ErrorText","fontSize","typography","color","palette","error","main","StyledTextField","TextField","TokenizerContainer","paddingRight","marginRight","position","bottom","left","right","height","content","backgroundColor","primary","StyledTooltip","Tooltip","whiteSpace","maxWidth","StyledTokenizer","Tokenizer","marginTop","StyledChip","Chip","TokensDetails","display","alignItems","flexWrap","StyledNumberTextField","NumberTextField","margin","log","debug","Design","React","Component","constructor","props","_defineProperty2","default","debounce","val","apply","u","text","tokens","event","updateText","target","value","mode","correctTokenCount","filter","t","correct","length","max","isFinite","maxSelections","Math","fn","onModelChanged","model","update","cloneDeep","feedback","partialScoring","prompt","teacherInstructions","rationale","state","UNSAFE_componentWillReceiveProps","nProps","setState","render","textValue","configuration","imageSupport","onConfigurationChanged","uploadSoundSupport","baseInputConfiguration","correctAnswer","contentDimensions","highlightChoices","selectionCount","selections","settingsPanelDisabled","scoringType","spellCheck","studentInstructions","maxImageWidth","maxImageHeight","withRubric","mathMlOptions","language","languageChoices","errors","extraCSSRules","feedbackEnabled","promptEnabled","rationaleEnabled","spellCheckEnabled","teacherInstructionsEnabled","toolbarEditorPosition","promptError","rationaleError","selectionsError","teacherInstructionsError","tokensError","validationMessage","generateValidationMessage","defaultImageMaxWidth","defaultImageMaxHeight","tokensModel","toolbarOpts","panelSettings","label","enabled","options","panelProperties","studentInstructionsEnabled","rubricEnabled","getPluginProps","createElement","layout","ConfigLayout","dimensions","hideSettings","onChangeModel","onChangeConfiguration","groups","Settings","Properties","markup","onChange","onTeacherInstructionsChanged","nonEmpty","pluginProps","inputConfiguration","languageCharactersProps","onPromptChanged","variant","multiline","defaultValue","changeText","disableFocusListener","disableTouchListener","placement","title","style","top","changeTokens","min","changeMaxSelections","onRationaleChanged","FeedbackConfig","changeFeedback","exports","PropTypes","object","isRequired","func","shape","add","delete","_default"],"sources":["../src/design.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport TextField from '@mui/material/TextField';\nimport { styled } from '@mui/material/styles';\nimport cloneDeep from 'lodash/cloneDeep';\nimport debounce from 'lodash/debounce';\nimport { Tokenizer } from '@pie-lib/text-select';\nimport { InputContainer, NumberTextField, FeedbackConfig, settings, layout } from '@pie-lib/config-ui';\nimport Chip from '@mui/material/Chip';\nimport Info from '@mui/icons-material/Info';\nimport debug from 'debug';\nimport EditableHtml from '@pie-lib/editable-html-tip-tap';\nimport Tooltip from '@mui/material/Tooltip';\nimport { generateValidationMessage } from './utils';\n\nconst { Panel, toggle, radio, dropdown } = settings;\n\nconst StyledInputContainer = styled(InputContainer)(({ theme }) => ({\n width: '100%',\n paddingTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n}));\n\nconst StyledEditableHtml = styled(EditableHtml)({\n width: '100%',\n});\n\nconst ErrorText = styled('div')(({ theme }) => ({\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing(1),\n}));\n\nconst StyledTextField = styled(TextField)({\n width: '100%',\n});\n\nconst TokenizerContainer = styled(InputContainer)(({ theme }) => ({\n paddingRight: 0,\n marginRight: 0,\n position: 'relative',\n '&:after': {\n position: 'absolute',\n bottom: 0,\n left: 0,\n right: 0,\n height: '1px',\n content: '\"\"',\n backgroundColor: theme.palette.primary.main,\n },\n marginBottom: theme.spacing(1),\n}));\n\nconst StyledTooltip = styled(Tooltip)(({ theme }) => ({\n '& .MuiTooltip-tooltip': {\n fontSize: theme.typography.fontSize - 2,\n whiteSpace: 'pre',\n maxWidth: '500px',\n },\n}));\n\nconst StyledTokenizer = styled(Tokenizer)(({ theme }) => ({\n marginTop: theme.spacing(2),\n}));\n\nconst StyledChip = styled(Chip)(({ theme }) => ({\n marginTop: theme.spacing(0.5),\n marginRight: theme.spacing(2),\n}));\n\nconst TokensDetails = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n flexWrap: 'wrap',\n marginBottom: theme.spacing(2.5),\n}));\n\nconst StyledNumberTextField = styled(NumberTextField)(({ theme }) => ({\n width: '180px',\n margin: `${theme.spacing(0.5)}px auto 0`,\n}));\n\nconst log = debug('@pie-element:select-text:configure');\n\nexport class Design extends React.Component {\n static propTypes = {\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n onModelChanged: PropTypes.func.isRequired,\n onConfigurationChanged: PropTypes.func.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n uploadSoundSupport: PropTypes.object,\n };\n\n static defaultProps = {};\n\n constructor(props) {\n super(props);\n\n const { model } = this.props;\n\n this.state = {\n text: (model && model.text) || '',\n };\n }\n\n UNSAFE_componentWillReceiveProps(nProps) {\n const { model } = nProps;\n\n if (model && model.text) {\n this.setState({\n text: model.text,\n });\n }\n }\n\n updateText = debounce((val) => {\n this.apply((u) => {\n u.text = val;\n u.tokens = [];\n });\n }, 200);\n\n changeText = (event) => this.updateText(event.target.value);\n\n changeTokens = (tokens, mode) => {\n this.apply((u) => {\n u.tokens = tokens;\n u.mode = mode;\n\n const correctTokenCount = tokens.filter((t) => t.correct).length;\n const max = isFinite(u.maxSelections) ? u.maxSelections : 0;\n\n u.maxSelections = Math.max(max, correctTokenCount);\n });\n };\n\n changeMaxSelections = (event, max) => {\n this.apply((u) => (u.maxSelections = max));\n };\n\n apply = (fn) => {\n const { onModelChanged, model } = this.props;\n const update = cloneDeep(model);\n\n fn(update);\n onModelChanged(update);\n };\n\n changeFeedback = (feedback) => {\n this.apply((u) => (u.feedback = feedback));\n };\n\n changePartialScoring = (partialScoring) => {\n const { onModelChanged, model } = this.props;\n const update = cloneDeep(model);\n update.partialScoring = partialScoring;\n\n onModelChanged(update);\n };\n\n onPromptChanged = (prompt) => {\n const { onModelChanged, model } = this.props;\n const update = cloneDeep(model);\n\n update.prompt = prompt;\n onModelChanged(update);\n };\n\n onTeacherInstructionsChanged = (teacherInstructions) => {\n const { onModelChanged, model } = this.props;\n const update = cloneDeep(model);\n\n update.teacherInstructions = teacherInstructions;\n onModelChanged(update);\n };\n\n onRationaleChanged = (rationale) => {\n const { onModelChanged, model } = this.props;\n\n onModelChanged({ ...model, rationale });\n };\n\n render() {\n const { text: textValue } = this.state;\n const { configuration, imageSupport, model, onConfigurationChanged, onModelChanged, uploadSoundSupport } =\n this.props;\n const {\n baseInputConfiguration = {},\n correctAnswer = {},\n contentDimensions = {},\n feedback = {},\n highlightChoices = {},\n mode = {},\n partialScoring = {},\n prompt = {},\n rationale = {},\n selectionCount = {},\n selections = {},\n settingsPanelDisabled,\n scoringType = {},\n spellCheck = {},\n studentInstructions = {},\n teacherInstructions = {},\n text = {},\n tokens = {},\n maxImageWidth = {},\n maxImageHeight = {},\n withRubric = {},\n mathMlOptions = {},\n language = {},\n languageChoices = {},\n } = configuration || {};\n const {\n errors,\n extraCSSRules,\n feedbackEnabled,\n promptEnabled,\n rationaleEnabled,\n spellCheckEnabled,\n teacherInstructionsEnabled,\n toolbarEditorPosition,\n } = model || {};\n\n const {\n prompt: promptError,\n rationale: rationaleError,\n selectionsError,\n teacherInstructions: teacherInstructionsError,\n tokensError,\n } = errors || {};\n const validationMessage = generateValidationMessage(configuration);\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n let { tokens: tokensModel } = model;\n tokensModel = tokensModel || [];\n\n const toolbarOpts = {\n position: toolbarEditorPosition === 'top' ? 'top' : 'bottom',\n };\n\n log('[render] maxSelections:', model.maxSelections);\n\n const panelSettings = {\n partialScoring: partialScoring.settings && toggle(partialScoring.label),\n highlightChoices: highlightChoices.settings && toggle(highlightChoices.label),\n feedbackEnabled: feedback.settings && toggle(feedback.label),\n 'language.enabled': language.settings && toggle(language.label, true),\n language: language.settings && language.enabled && dropdown(languageChoices.label, languageChoices.options),\n };\n\n const panelProperties = {\n teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),\n studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),\n 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 const getPluginProps = (props = {}) => ({\n ...baseInputConfiguration,\n ...props,\n });\n\n return (\n <layout.ConfigLayout\n extraCSSRules={extraCSSRules}\n dimensions={contentDimensions}\n hideSettings={settingsPanelDisabled}\n settings={\n <Panel\n model={model}\n configuration={configuration}\n onChangeModel={(model) => onModelChanged(model)}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n Settings: panelSettings,\n Properties: panelProperties,\n }}\n />\n }\n >\n {teacherInstructionsEnabled && (\n <StyledInputContainer label={teacherInstructions.label}>\n <StyledEditableHtml\n markup={model.teacherInstructions || ''}\n onChange={this.onTeacherInstructionsChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n error={teacherInstructionsError}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(configuration?.teacherInstructions?.inputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.teacherInstructions) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.teacherInstructions) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {teacherInstructionsError && <ErrorText>{teacherInstructionsError}</ErrorText>}\n </StyledInputContainer>\n )}\n\n {promptEnabled && (\n <StyledInputContainer label={prompt.label || ''}>\n <StyledEditableHtml\n markup={model.prompt}\n onChange={this.onPromptChanged}\n imageSupport={imageSupport}\n error={promptError}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(configuration?.prompt?.inputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={defaultImageMaxWidth}\n maxImageHeight={defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {promptError && <ErrorText>{promptError}</ErrorText>}\n </StyledInputContainer>\n )}\n\n {text.settings && (\n <StyledInputContainer label={text.label || ''}>\n <StyledTextField\n variant=\"standard\"\n multiline\n defaultValue={textValue}\n onChange={this.changeText}\n spellCheck={spellCheckEnabled}\n />\n </StyledInputContainer>\n )}\n\n {tokens.settings && (\n <TokenizerContainer label={tokens.label || ''}>\n <StyledTooltip\n disableFocusListener\n disableTouchListener\n placement={'right'}\n title={validationMessage}\n >\n <Info fontSize={'small'} color={'primary'} style={{ position: 'absolute', left: '48px', top: '-3px' }} />\n </StyledTooltip>\n\n <StyledTokenizer\n text={model.text}\n tokens={tokensModel}\n onChange={this.changeTokens}\n />\n </TokenizerContainer>\n )}\n {tokensError && <ErrorText>{tokensError}</ErrorText>}\n {selectionsError && <ErrorText>{selectionsError}</ErrorText>}\n\n <TokensDetails>\n {mode.settings && (\n <StyledChip label={`${mode.label}: ${model.mode ? model.mode : 'None'}`} />\n )}\n\n {selections.settings && (\n <StyledChip label={`${selections.label}: ${tokensModel.length}`} />\n )}\n\n {correctAnswer.settings && (\n <StyledChip\n label={`${correctAnswer.label}: ${tokensModel.filter((t) => t.correct).length}`}\n />\n )}\n\n {selectionCount.settings && (\n <StyledNumberTextField\n min={tokensModel.filter((t) => t.correct).length || 0}\n label={`${selectionCount.label} (0:any)`}\n max={tokensModel.length}\n value={model.maxSelections}\n onChange={this.changeMaxSelections}\n />\n )}\n </TokensDetails>\n\n {rationaleEnabled && (\n <StyledInputContainer label={rationale.label || ''}>\n <StyledEditableHtml\n markup={model.rationale || ''}\n onChange={this.onRationaleChanged}\n imageSupport={imageSupport}\n error={rationaleError}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(configuration?.rationale?.inputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.rationale) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.rationale) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {rationaleError && <ErrorText>{rationaleError}</ErrorText>}\n </StyledInputContainer>\n )}\n\n {feedbackEnabled && (\n <FeedbackConfig feedback={model.feedback} onChange={this.changeFeedback} toolbarOpts={toolbarOpts} />\n )}\n </layout.ConfigLayout>\n );\n }\n}\n\nexport default Design;\n"],"mappings":"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","ignoreList":[]}
@@ -1,128 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = void 0;
8
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
- var _react = _interopRequireDefault(require("react"));
10
- var _client = require("react-dom/client");
11
- var _design = _interopRequireDefault(require("./design"));
12
- var _pieConfigureEvents = require("@pie-framework/pie-configure-events");
13
- var _defaultConfiguration = _interopRequireDefault(require("./defaultConfiguration"));
14
- var _utils = require("./utils");
15
- class SelectTextConfigure extends HTMLElement {
16
- constructor() {
17
- super();
18
- this._root = null;
19
- this._model = SelectTextConfigure.createDefaultModel();
20
- this._configuration = _defaultConfiguration.default.configuration;
21
- }
22
- set model(m) {
23
- this._model = SelectTextConfigure.createDefaultModel(m);
24
- this.render();
25
- }
26
- set configuration(c) {
27
- const newConfiguration = {
28
- ..._defaultConfiguration.default.configuration,
29
- ...c
30
- };
31
- this._configuration = newConfiguration;
32
-
33
- // if language:enabled is true, then the corresponding default item model should include a language value;
34
- // if it is false, then the language field should be omitted from the item model.
35
- // if a default item model includes a language value (e.g., en_US) and the corresponding authoring view settings have language:settings = true,
36
- // then (a) language:enabled should also be true, and (b) that default language value should be represented in languageChoices[] (as a key).
37
- if (newConfiguration?.language?.enabled) {
38
- if (newConfiguration?.languageChoices?.options?.length) {
39
- this._model.language = newConfiguration?.languageChoices.options[0].value;
40
- }
41
- } else if (newConfiguration.language.settings && this._model.language) {
42
- this._configuration.language.enabled = true;
43
- if (!this._configuration.languageChoices.options || !this._configuration.languageChoices.options.length) {
44
- this._configuration.languageChoices.options = [];
45
- }
46
-
47
- // check if the language is already included in the languageChoices.options array
48
- // and if not, then add it.
49
- if (!this._configuration.languageChoices.options.find(option => option.value === this._model.language)) {
50
- this._configuration.languageChoices.options.push({
51
- value: this._model.language,
52
- label: this._model.language
53
- });
54
- }
55
- } else {
56
- delete this._model.language;
57
- }
58
- this.render();
59
- }
60
- connectedCallback() {
61
- this.render();
62
- }
63
- modelChanged(m) {
64
- this._model = m;
65
- this.dispatchEvent(new _pieConfigureEvents.ModelUpdatedEvent(this._model), true);
66
- this.render();
67
- }
68
- onConfigurationChanged(c) {
69
- this._configuration = c;
70
- if (this._model) {
71
- this.dispatchEvent(new _pieConfigureEvents.ModelUpdatedEvent(this._model), false);
72
- }
73
- this.render();
74
- }
75
-
76
- /**
77
- *
78
- * @param {done, progress, file} handler
79
- */
80
- insertImage(handler) {
81
- this.dispatchEvent(new _pieConfigureEvents.InsertImageEvent(handler));
82
- }
83
- onDeleteImage(src, done) {
84
- this.dispatchEvent(new _pieConfigureEvents.DeleteImageEvent(src, done));
85
- }
86
- insertSound(handler) {
87
- this.dispatchEvent(new _pieConfigureEvents.InsertSoundEvent(handler));
88
- }
89
- onDeleteSound(src, done) {
90
- this.dispatchEvent(new _pieConfigureEvents.DeleteSoundEvent(src, done));
91
- }
92
- render() {
93
- if (this._model) {
94
- const el = /*#__PURE__*/_react.default.createElement(_design.default, {
95
- model: this._model,
96
- configuration: this._configuration,
97
- onModelChanged: this.modelChanged.bind(this),
98
- onConfigurationChanged: this.onConfigurationChanged.bind(this),
99
- imageSupport: {
100
- add: this.insertImage.bind(this),
101
- delete: this.onDeleteImage.bind(this)
102
- },
103
- uploadSoundSupport: {
104
- add: this.insertSound.bind(this),
105
- delete: this.onDeleteSound.bind(this)
106
- }
107
- });
108
- if (!this._root) {
109
- this._root = (0, _client.createRoot)(this);
110
- }
111
- this._root.render(el);
112
- }
113
- }
114
- disconnectedCallback() {
115
- if (this._root) {
116
- this._root.unmount();
117
- }
118
- }
119
- }
120
- exports.default = SelectTextConfigure;
121
- (0, _defineProperty2.default)(SelectTextConfigure, "createDefaultModel", (model = {}) => {
122
- const newModel = {
123
- ..._defaultConfiguration.default.model,
124
- ...model
125
- };
126
- return (0, _utils.generateModel)(newModel);
127
- });
128
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_client","_design","_pieConfigureEvents","_defaultConfiguration","_utils","SelectTextConfigure","HTMLElement","constructor","_root","_model","createDefaultModel","_configuration","defaultValues","configuration","model","m","render","c","newConfiguration","language","enabled","languageChoices","options","length","value","settings","find","option","push","label","connectedCallback","modelChanged","dispatchEvent","ModelUpdatedEvent","onConfigurationChanged","insertImage","handler","InsertImageEvent","onDeleteImage","src","done","DeleteImageEvent","insertSound","InsertSoundEvent","onDeleteSound","DeleteSoundEvent","el","React","createElement","Main","onModelChanged","bind","imageSupport","add","delete","uploadSoundSupport","createRoot","disconnectedCallback","unmount","exports","default","_defineProperty2","newModel","generateModel"],"sources":["../src/index.js"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport Main from './design';\nimport {\n ModelUpdatedEvent,\n DeleteImageEvent,\n InsertImageEvent,\n InsertSoundEvent,\n DeleteSoundEvent,\n} from '@pie-framework/pie-configure-events';\nimport defaultValues from './defaultConfiguration';\nimport { generateModel } from './utils';\n\nexport default class SelectTextConfigure extends HTMLElement {\n static createDefaultModel = (model = {}) => {\n const newModel = {\n ...defaultValues.model,\n ...model,\n };\n\n return generateModel(newModel);\n };\n\n constructor() {\n super();\n this._root = null;\n this._model = SelectTextConfigure.createDefaultModel();\n this._configuration = defaultValues.configuration;\n }\n\n set model(m) {\n this._model = SelectTextConfigure.createDefaultModel(m);\n this.render();\n }\n\n set configuration(c) {\n const newConfiguration = {\n ...defaultValues.configuration,\n ...c,\n };\n\n this._configuration = newConfiguration;\n\n // if language:enabled is true, then the corresponding default item model should include a language value;\n // if it is false, then the language field should be omitted from the item model.\n // if a default item model includes a language value (e.g., en_US) and the corresponding authoring view settings have language:settings = true,\n // then (a) language:enabled should also be true, and (b) that default language value should be represented in languageChoices[] (as a key).\n if (newConfiguration?.language?.enabled) {\n if (newConfiguration?.languageChoices?.options?.length) {\n this._model.language = newConfiguration?.languageChoices.options[0].value;\n }\n } else if (newConfiguration.language.settings && this._model.language) {\n this._configuration.language.enabled = true;\n\n if (!this._configuration.languageChoices.options || !this._configuration.languageChoices.options.length) {\n this._configuration.languageChoices.options = [];\n }\n\n // check if the language is already included in the languageChoices.options array\n // and if not, then add it.\n if (!this._configuration.languageChoices.options.find(option => option.value === this._model.language)) {\n this._configuration.languageChoices.options.push({\n value: this._model.language,\n label: this._model.language,\n });\n }\n } else {\n delete this._model.language;\n }\n\n this.render();\n }\n\n connectedCallback() {\n this.render();\n }\n\n modelChanged(m) {\n this._model = m;\n this.dispatchEvent(new ModelUpdatedEvent(this._model), true);\n this.render();\n }\n\n onConfigurationChanged(c) {\n this._configuration = c;\n\n if (this._model) {\n this.dispatchEvent(new ModelUpdatedEvent(this._model), false);\n }\n\n this.render();\n }\n\n /**\n *\n * @param {done, progress, file} handler\n */\n insertImage(handler) {\n this.dispatchEvent(new InsertImageEvent(handler));\n }\n\n onDeleteImage(src, done) {\n this.dispatchEvent(new DeleteImageEvent(src, done));\n }\n\n insertSound(handler) {\n this.dispatchEvent(new InsertSoundEvent(handler));\n }\n\n onDeleteSound(src, done) {\n this.dispatchEvent(new DeleteSoundEvent(src, done));\n }\n\n render() {\n if (this._model) {\n const el = React.createElement(Main, {\n model: this._model,\n configuration: this._configuration,\n onModelChanged: this.modelChanged.bind(this),\n onConfigurationChanged: this.onConfigurationChanged.bind(this),\n imageSupport: {\n add: this.insertImage.bind(this),\n delete: this.onDeleteImage.bind(this),\n },\n uploadSoundSupport: {\n add: this.insertSound.bind(this),\n delete: this.onDeleteSound.bind(this),\n },\n });\n\n if (!this._root) {\n this._root = createRoot(this);\n }\n this._root.render(el);\n }\n }\n\n disconnectedCallback() {\n if (this._root) {\n this._root.unmount();\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}