@pie-element/select-text 8.5.0 → 8.5.1-next.48

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,4 +1,4 @@
1
- import {_dll_react, _dll_prop_types, _dll_classnames, _dll_react_dom, _dll_lodash, _dll_debug, _dll_react_dom_server} from "../../../@pie-lib/pie-toolbox-math-rendering-module@1.1.6/module/index.js";
1
+ import {_dll_react, _dll_prop_types, _dll_classnames, _dll_react_dom, _dll_lodash, _dll_debug, _dll_react_dom_server} from "../../../@pie-lib/pie-toolbox-math-rendering-module@1.4.0/module/index.js";
2
2
  import {_dll_pie_lib__pie_toolbox_config_ui, _dll_pie_lib__pie_toolbox_editable_html} from "../../../@pie-lib/pie-toolbox-module@4.0.0/module/index.js";
3
3
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
4
4
  function getDefaultExportFromCjs(x) {
@@ -111118,7 +111118,7 @@ class Design extends React$1.Component {
111118
111118
  const {classes, configuration, imageSupport, model, onConfigurationChanged, onModelChanged, uploadSoundSupport} = this.props;
111119
111119
  const {baseInputConfiguration = {}, correctAnswer = {}, contentDimensions = {}, feedback = {}, highlightChoices = {}, mode = {}, partialScoring = {}, prompt = {}, rationale = {}, selectionCount = {}, selections = {}, settingsPanelDisabled, scoringType = {}, spellCheck = {}, studentInstructions = {}, teacherInstructions = {}, text = {}, tokens = {}, maxImageWidth = {}, maxImageHeight = {}, withRubric = {}, mathMlOptions = {}, language = {}, languageChoices = {}} = configuration || ({});
111120
111120
  const {errors, feedbackEnabled, promptEnabled, rationaleEnabled, spellCheckEnabled, teacherInstructionsEnabled, toolbarEditorPosition} = model || ({});
111121
- const {tokensError, selectionsError} = errors || ({});
111121
+ const {prompt: promptError, rationale: rationaleError, selectionsError, teacherInstructions: teacherInstructionsError, tokensError} = errors || ({});
111122
111122
  const validationMessage = generateValidationMessage(configuration);
111123
111123
  const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;
111124
111124
  const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;
@@ -111144,11 +111144,10 @@ class Design extends React$1.Component {
111144
111144
  scoringType: scoringType.settings && radio(scoringType.label, ['auto', 'rubric']),
111145
111145
  rubricEnabled: _optionalChain$1([withRubric, 'optionalAccess', _ => _.settings]) && toggle(_optionalChain$1([withRubric, 'optionalAccess', _2 => _2.label]))
111146
111146
  };
111147
- const getPluginProps = props => {
111148
- return Object.assign({
111149
- ...baseInputConfiguration
111150
- }, props || ({}));
111151
- };
111147
+ const getPluginProps = (props = {}) => ({
111148
+ ...baseInputConfiguration,
111149
+ ...props
111150
+ });
111152
111151
  return React$1.createElement(layout.ConfigLayout, {
111153
111152
  dimensions: contentDimensions,
111154
111153
  hideSettings: settingsPanelDisabled,
@@ -111164,13 +111163,13 @@ class Design extends React$1.Component {
111164
111163
  __self: this,
111165
111164
  __source: {
111166
111165
  fileName: _jsxFileName,
111167
- lineNumber: 210
111166
+ lineNumber: 212
111168
111167
  }
111169
111168
  }),
111170
111169
  __self: this,
111171
111170
  __source: {
111172
111171
  fileName: _jsxFileName,
111173
- lineNumber: 206
111172
+ lineNumber: 208
111174
111173
  }
111175
111174
  }, teacherInstructionsEnabled && React$1.createElement(InputContainer, {
111176
111175
  label: teacherInstructions.label,
@@ -111178,7 +111177,7 @@ class Design extends React$1.Component {
111178
111177
  __self: this,
111179
111178
  __source: {
111180
111179
  fileName: _jsxFileName,
111181
- lineNumber: 223
111180
+ lineNumber: 225
111182
111181
  }
111183
111182
  }, React$1.createElement(EditableHtml, {
111184
111183
  className: classes.prompt,
@@ -111186,6 +111185,7 @@ class Design extends React$1.Component {
111186
111185
  onChange: this.onTeacherInstructionsChanged,
111187
111186
  imageSupport: imageSupport,
111188
111187
  nonEmpty: false,
111188
+ error: teacherInstructionsError,
111189
111189
  toolbarOpts: toolbarOpts,
111190
111190
  pluginProps: getPluginProps(_optionalChain$1([configuration, 'optionalAccess', _3 => _3.teacherInstructions, 'optionalAccess', _4 => _4.inputConfiguration])),
111191
111191
  spellCheck: spellCheckEnabled,
@@ -111201,21 +111201,29 @@ class Design extends React$1.Component {
111201
111201
  __self: this,
111202
111202
  __source: {
111203
111203
  fileName: _jsxFileName,
111204
- lineNumber: 224
111204
+ lineNumber: 226
111205
+ }
111206
+ }), teacherInstructionsError && React$1.createElement('div', {
111207
+ className: classes.errorText,
111208
+ __self: this,
111209
+ __source: {
111210
+ fileName: _jsxFileName,
111211
+ lineNumber: 242
111205
111212
  }
111206
- })), promptEnabled && React$1.createElement(InputContainer, {
111213
+ }, teacherInstructionsError)), promptEnabled && React$1.createElement(InputContainer, {
111207
111214
  label: prompt.label || '',
111208
111215
  className: classes.promptHolder,
111209
111216
  __self: this,
111210
111217
  __source: {
111211
111218
  fileName: _jsxFileName,
111212
- lineNumber: 243
111219
+ lineNumber: 247
111213
111220
  }
111214
111221
  }, React$1.createElement(EditableHtml, {
111215
111222
  className: classes.prompt,
111216
111223
  markup: model.prompt,
111217
111224
  onChange: this.onPromptChanged,
111218
111225
  imageSupport: imageSupport,
111226
+ error: promptError,
111219
111227
  toolbarOpts: toolbarOpts,
111220
111228
  pluginProps: getPluginProps(_optionalChain$1([configuration, 'optionalAccess', _5 => _5.prompt, 'optionalAccess', _6 => _6.inputConfiguration])),
111221
111229
  spellCheck: spellCheckEnabled,
@@ -111231,15 +111239,22 @@ class Design extends React$1.Component {
111231
111239
  __self: this,
111232
111240
  __source: {
111233
111241
  fileName: _jsxFileName,
111234
- lineNumber: 244
111242
+ lineNumber: 248
111235
111243
  }
111236
- })), text.settings && React$1.createElement(InputContainer, {
111244
+ }), promptError && React$1.createElement('div', {
111245
+ className: classes.errorText,
111246
+ __self: this,
111247
+ __source: {
111248
+ fileName: _jsxFileName,
111249
+ lineNumber: 263
111250
+ }
111251
+ }, promptError)), text.settings && React$1.createElement(InputContainer, {
111237
111252
  label: text.label || '',
111238
111253
  className: classes.promptHolder,
111239
111254
  __self: this,
111240
111255
  __source: {
111241
111256
  fileName: _jsxFileName,
111242
- lineNumber: 262
111257
+ lineNumber: 268
111243
111258
  }
111244
111259
  }, React$1.createElement(TextField, {
111245
111260
  className: classes.input,
@@ -111250,7 +111265,7 @@ class Design extends React$1.Component {
111250
111265
  __self: this,
111251
111266
  __source: {
111252
111267
  fileName: _jsxFileName,
111253
- lineNumber: 263
111268
+ lineNumber: 269
111254
111269
  }
111255
111270
  })), tokens.settings && React$1.createElement(InputContainer, {
111256
111271
  label: tokens.label || '',
@@ -111258,7 +111273,7 @@ class Design extends React$1.Component {
111258
111273
  __self: this,
111259
111274
  __source: {
111260
111275
  fileName: _jsxFileName,
111261
- lineNumber: 274
111276
+ lineNumber: 280
111262
111277
  }
111263
111278
  }, React$1.createElement(Tooltip, {
111264
111279
  classes: {
@@ -111271,7 +111286,7 @@ class Design extends React$1.Component {
111271
111286
  __self: this,
111272
111287
  __source: {
111273
111288
  fileName: _jsxFileName,
111274
- lineNumber: 275
111289
+ lineNumber: 281
111275
111290
  }
111276
111291
  }, React$1.createElement(default_1, {
111277
111292
  fontSize: 'small',
@@ -111284,7 +111299,7 @@ class Design extends React$1.Component {
111284
111299
  __self: this,
111285
111300
  __source: {
111286
111301
  fileName: _jsxFileName,
111287
- lineNumber: 282
111302
+ lineNumber: 288
111288
111303
  }
111289
111304
  })), React$1.createElement(textSelect$2.Tokenizer, {
111290
111305
  className: classes.tokenizer,
@@ -111294,28 +111309,28 @@ class Design extends React$1.Component {
111294
111309
  __self: this,
111295
111310
  __source: {
111296
111311
  fileName: _jsxFileName,
111297
- lineNumber: 285
111312
+ lineNumber: 291
111298
111313
  }
111299
111314
  })), tokensError && React$1.createElement('div', {
111300
111315
  className: classes.errorText,
111301
111316
  __self: this,
111302
111317
  __source: {
111303
111318
  fileName: _jsxFileName,
111304
- lineNumber: 293
111319
+ lineNumber: 299
111305
111320
  }
111306
111321
  }, tokensError), selectionsError && React$1.createElement('div', {
111307
111322
  className: classes.errorText,
111308
111323
  __self: this,
111309
111324
  __source: {
111310
111325
  fileName: _jsxFileName,
111311
- lineNumber: 294
111326
+ lineNumber: 300
111312
111327
  }
111313
111328
  }, selectionsError), React$1.createElement('div', {
111314
111329
  className: classes.tokensDetails,
111315
111330
  __self: this,
111316
111331
  __source: {
111317
111332
  fileName: _jsxFileName,
111318
- lineNumber: 296
111333
+ lineNumber: 302
111319
111334
  }
111320
111335
  }, mode.settings && React$1.createElement(Chip, {
111321
111336
  label: `${mode.label}: ${model.mode ? model.mode : 'None'}`,
@@ -111323,7 +111338,7 @@ class Design extends React$1.Component {
111323
111338
  __self: this,
111324
111339
  __source: {
111325
111340
  fileName: _jsxFileName,
111326
- lineNumber: 298
111341
+ lineNumber: 304
111327
111342
  }
111328
111343
  }), selections.settings && React$1.createElement(Chip, {
111329
111344
  label: `${selections.label}: ${tokensModel.length}`,
@@ -111331,7 +111346,7 @@ class Design extends React$1.Component {
111331
111346
  __self: this,
111332
111347
  __source: {
111333
111348
  fileName: _jsxFileName,
111334
- lineNumber: 302
111349
+ lineNumber: 308
111335
111350
  }
111336
111351
  }), correctAnswer.settings && React$1.createElement(Chip, {
111337
111352
  label: `${correctAnswer.label}: ${tokensModel.filter(t => t.correct).length}`,
@@ -111339,7 +111354,7 @@ class Design extends React$1.Component {
111339
111354
  __self: this,
111340
111355
  __source: {
111341
111356
  fileName: _jsxFileName,
111342
- lineNumber: 306
111357
+ lineNumber: 312
111343
111358
  }
111344
111359
  }), selectionCount.settings && React$1.createElement(NumberTextField, {
111345
111360
  min: tokensModel.filter(t => t.correct).length || 0,
@@ -111351,7 +111366,7 @@ class Design extends React$1.Component {
111351
111366
  __self: this,
111352
111367
  __source: {
111353
111368
  fileName: _jsxFileName,
111354
- lineNumber: 313
111369
+ lineNumber: 319
111355
111370
  }
111356
111371
  })), rationaleEnabled && React$1.createElement(InputContainer, {
111357
111372
  label: rationale.label || '',
@@ -111359,13 +111374,14 @@ class Design extends React$1.Component {
111359
111374
  __self: this,
111360
111375
  __source: {
111361
111376
  fileName: _jsxFileName,
111362
- lineNumber: 325
111377
+ lineNumber: 331
111363
111378
  }
111364
111379
  }, React$1.createElement(EditableHtml, {
111365
111380
  className: classes.prompt,
111366
111381
  markup: model.rationale || '',
111367
111382
  onChange: this.onRationaleChanged,
111368
111383
  imageSupport: imageSupport,
111384
+ error: rationaleError,
111369
111385
  toolbarOpts: toolbarOpts,
111370
111386
  pluginProps: getPluginProps(_optionalChain$1([configuration, 'optionalAccess', _7 => _7.rationale, 'optionalAccess', _8 => _8.inputConfiguration])),
111371
111387
  spellCheck: spellCheckEnabled,
@@ -111381,16 +111397,23 @@ class Design extends React$1.Component {
111381
111397
  __self: this,
111382
111398
  __source: {
111383
111399
  fileName: _jsxFileName,
111384
- lineNumber: 326
111400
+ lineNumber: 332
111401
+ }
111402
+ }), rationaleError && React$1.createElement('div', {
111403
+ className: classes.errorText,
111404
+ __self: this,
111405
+ __source: {
111406
+ fileName: _jsxFileName,
111407
+ lineNumber: 347
111385
111408
  }
111386
- })), feedbackEnabled && React$1.createElement(FeedbackConfig, {
111409
+ }, rationaleError)), feedbackEnabled && React$1.createElement(FeedbackConfig, {
111387
111410
  feedback: model.feedback,
111388
111411
  onChange: this.changeFeedback,
111389
111412
  toolbarOpts: toolbarOpts,
111390
111413
  __self: this,
111391
111414
  __source: {
111392
111415
  fileName: _jsxFileName,
111393
- lineNumber: 344
111416
+ lineNumber: 352
111394
111417
  }
111395
111418
  }));
111396
111419
  }
@@ -111451,7 +111474,7 @@ var Main = styles$t.withStyles(theme => ({
111451
111474
  errorText: {
111452
111475
  fontSize: theme.typography.fontSize - 2,
111453
111476
  color: theme.palette.error.main,
111454
- paddingBottom: theme.spacing.unit
111477
+ paddingTop: theme.spacing.unit
111455
111478
  }
111456
111479
  }))(Design);
111457
111480
  var lib = {};
@@ -111588,7 +111611,8 @@ var defaultValues = {
111588
111611
  image: {
111589
111612
  disabled: false
111590
111613
  }
111591
- }
111614
+ },
111615
+ required: false
111592
111616
  },
111593
111617
  scoringType: {
111594
111618
  settings: false,
@@ -111611,7 +111635,8 @@ var defaultValues = {
111611
111635
  image: {
111612
111636
  disabled: false
111613
111637
  }
111614
- }
111638
+ },
111639
+ required: false
111615
111640
  },
111616
111641
  prompt: {
111617
111642
  label: 'Prompt',
@@ -111626,7 +111651,8 @@ var defaultValues = {
111626
111651
  image: {
111627
111652
  disabled: false
111628
111653
  }
111629
- }
111654
+ },
111655
+ required: false
111630
111656
  },
111631
111657
  text: {
111632
111658
  settings: true,
@@ -19899,11 +19899,14 @@ var defaults = {
19899
19899
  tokens: tokens(),
19900
19900
  };
19901
19901
 
19902
- const isAnswerSelected = (token, selectedToken) => token && selectedToken && token.correct === true &&
19903
- !(
19904
- (token.start === selectedToken.start && token.end === selectedToken.end) ||
19905
- (token.start === selectedToken.oldStart && token.end === selectedToken.oldEnd)
19906
- );
19902
+ const isAnswerSelected = (token, selectedToken) =>
19903
+ token &&
19904
+ selectedToken &&
19905
+ token.correct === true &&
19906
+ !(
19907
+ (token.start === selectedToken.start && token.end === selectedToken.end) ||
19908
+ (token.start === selectedToken.oldStart && token.end === selectedToken.oldEnd)
19909
+ );
19907
19910
 
19908
19911
  const buildTokens = (tokens, selectedTokens, evaluateMode) => {
19909
19912
  tokens = tokens || [];
@@ -20079,12 +20082,21 @@ const createCorrectResponseSession = (question, env) => {
20079
20082
  });
20080
20083
  };
20081
20084
 
20085
+ // remove all html tags except img and iframe
20086
+ const getContent = (html) => (html || '').replace(/(<(?!img|iframe)([^>]+)>)/gi, '');
20087
+
20082
20088
  const validate = (model = {}, config = {}) => {
20083
20089
  const { tokens } = model;
20084
20090
  const { minTokens = 2, maxTokens, maxSelections } = config;
20085
20091
  const errors = {};
20086
20092
  const nbOfTokens = (tokens || []).length;
20087
20093
 
20094
+ ['teacherInstructions', 'prompt', 'rationale'].forEach((field) => {
20095
+ if (config[field]?.required && !getContent(model[field])) {
20096
+ errors[field] = 'This field is required.';
20097
+ }
20098
+ });
20099
+
20088
20100
  const nbOfSelections = (tokens || []).reduce((acc, token) => (token.correct ? acc + 1 : acc), 0);
20089
20101
 
20090
20102
  if (nbOfTokens < minTokens) {
package/module/element.js CHANGED
@@ -1,4 +1,4 @@
1
- import {_dll_react, _dll_prop_types, _dll_react_dom, _dll_classnames, _dll_lodash, _dll_debug, _dll_react_dom_server, _dll_pie_lib__pie_toolbox_math_rendering} from "../../../@pie-lib/pie-toolbox-math-rendering-module@1.1.6/module/index.js";
1
+ import {_dll_react, _dll_prop_types, _dll_react_dom, _dll_classnames, _dll_lodash, _dll_debug, _dll_react_dom_server, _dll_pie_lib__pie_toolbox_math_rendering} from "../../../@pie-lib/pie-toolbox-math-rendering-module@1.4.0/module/index.js";
2
2
  import {_dll_pie_lib__pie_toolbox_correct_answer_toggle, _dll_pie_lib__pie_toolbox_render_ui} from "../../../@pie-lib/pie-toolbox-module@4.0.0/module/index.js";
3
3
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
4
4
  function getDefaultExportFromCjs(x) {
package/module/index.html CHANGED
@@ -2,7 +2,7 @@
2
2
  <!doctype html>
3
3
  <html>
4
4
  <head>
5
- <title>@pie-element/select-text@8.4.2</title>
5
+ <title>@pie-element/select-text@8.5.0</title>
6
6
  <script
7
7
  type="module"
8
8
  src="https://cdn.jsdelivr.net/npm/@pslb/demo-el@^1.0.0/dist/demo-el/demo-el.esm.js"></script>
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@pie-element/select-text",
3
- "version": "8.4.2",
3
+ "version": "8.5.0",
4
4
  "modules": [
5
5
  {
6
6
  "name": "@pie-lib/pie-toolbox-math-rendering-module",
7
- "version": "1.1.6"
7
+ "version": "1.4.0"
8
8
  },
9
9
  {
10
10
  "name": "@pie-lib/pie-toolbox-module",
package/module/print.html CHANGED
@@ -2,7 +2,7 @@
2
2
  <!doctype html>
3
3
  <html>
4
4
  <head>
5
- <title>@pie-element/select-text@8.4.2</title>
5
+ <title>@pie-element/select-text@8.5.0</title>
6
6
  <link
7
7
  href="https://fonts.googleapis.com/css?family=Roboto&display=swap"
8
8
  rel="stylesheet"
package/module/print.js CHANGED
@@ -1,4 +1,4 @@
1
- import {_dll_react, _dll_prop_types, _dll_react_dom, _dll_classnames, _dll_lodash, _dll_debug, _dll_react_dom_server, _dll_pie_lib__pie_toolbox_math_rendering} from "../../../@pie-lib/pie-toolbox-math-rendering-module@1.1.6/module/index.js";
1
+ import {_dll_react, _dll_prop_types, _dll_react_dom, _dll_classnames, _dll_lodash, _dll_debug, _dll_react_dom_server, _dll_pie_lib__pie_toolbox_math_rendering} from "../../../@pie-lib/pie-toolbox-math-rendering-module@1.4.0/module/index.js";
2
2
  import {_dll_pie_lib__pie_toolbox_correct_answer_toggle, _dll_pie_lib__pie_toolbox_render_ui} from "../../../@pie-lib/pie-toolbox-module@4.0.0/module/index.js";
3
3
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
4
4
  function getDefaultExportFromCjs(x) {
package/package.json CHANGED
@@ -4,19 +4,19 @@
4
4
  "access": "public"
5
5
  },
6
6
  "repository": "pie-framework/pie-elements",
7
- "version": "8.5.0",
7
+ "version": "8.5.1-next.48+a8e4e6ab2",
8
8
  "description": "",
9
9
  "dependencies": {
10
10
  "@material-ui/core": "^3.9.2",
11
11
  "@pie-framework/pie-player-events": "^0.1.0",
12
- "@pie-lib/pie-toolbox": "1.9.0",
12
+ "@pie-lib/pie-toolbox": "1.11.1",
13
13
  "prop-types": "^15.6.1",
14
14
  "react": "^16.8.1",
15
15
  "react-dom": "^16.8.1"
16
16
  },
17
17
  "author": "",
18
18
  "license": "ISC",
19
- "gitHead": "3aaaa00aa149439eb0cb72d04d6ff3eecf0ee4b5",
19
+ "gitHead": "a8e4e6ab27584435ce7ac3e964ccac2747402777",
20
20
  "scripts": {
21
21
  "postpublish": "../../scripts/postpublish"
22
22
  },