@pie-element/select-text 6.5.3-next.582 → 6.5.3-next.596

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/module/element.js CHANGED
@@ -1,5 +1,5 @@
1
- import {_dll_react, _dll_prop_types, _dll_material_ui__core, _dll_material_ui__core_styles, _dll_lodash, _dll_debug, _dll_classnames, _dll_pie_lib__render_ui, _dll_react_dom_server, _dll_pie_lib__correct_answer_toggle, _dll_react_dom} from "../../../@pie-lib/shared-module@^1.2.18/module/index.js";
2
- import {_dll_pie_lib__math_rendering} from "../../../@pie-lib/math-rendering-module@^1.0.21/module/index.js";
1
+ import {_dll_react, _dll_prop_types, _dll_material_ui__core, _dll_material_ui__core_styles, _dll_lodash, _dll_debug, _dll_classnames, _dll_pie_lib__render_ui, _dll_react_dom_server, _dll_pie_lib__correct_answer_toggle, _dll_react_dom} from "../../../@pie-lib/shared-module@^1.2.19/module/index.js";
2
+ import {_dll_pie_lib__math_rendering} from "../../../@pie-lib/math-rendering-module@^1.0.22/module/index.js";
3
3
  var lib$1 = {};
4
4
  Object.defineProperty(lib$1, "__esModule", {
5
5
  value: true
@@ -1797,14 +1797,14 @@ class Token extends React$4.Component {
1797
1797
  };
1798
1798
  }
1799
1799
  render() {
1800
- const {text, selectable, selected, classes, className: classNameProp, disabled, index, highlight, correct} = this.props;
1800
+ const {text, selectable, selected, classes, className: classNameProp, disabled, index, highlight, correct, animationsDisabled} = this.props;
1801
1801
  let className;
1802
1802
  if (correct === undefined && selected && disabled) {
1803
1803
  className = classNames$1(classes.token, classes.selected, classes.disabledBlack);
1804
1804
  } else if (correct !== undefined) {
1805
1805
  className = classNames$1(Token.rootClassName, classes.custom, correct === true && classes.correct, correct === false && classes.incorrect);
1806
1806
  } else {
1807
- className = classNames$1(Token.rootClassName, classes.token, disabled && classes.disabled, selectable && !disabled && classes.selectable, selected && !disabled && classes.selected, selected && disabled && classes.disabledAndSelected, highlight && selectable && !disabled && !selected && classes.highlight, classNameProp);
1807
+ className = classNames$1(Token.rootClassName, classes.token, disabled && classes.disabled, selectable && !disabled && classes.selectable, selected && !disabled && classes.selected, selected && disabled && classes.disabledAndSelected, highlight && selectable && !disabled && !selected && classes.highlight, animationsDisabled && classes.print, classNameProp);
1808
1808
  }
1809
1809
  return React$4.createElement('span', {
1810
1810
  className: className,
@@ -1815,7 +1815,7 @@ class Token extends React$4.Component {
1815
1815
  __self: this,
1816
1816
  __source: {
1817
1817
  fileName: _jsxFileName$3,
1818
- lineNumber: 68
1818
+ lineNumber: 70
1819
1819
  }
1820
1820
  });
1821
1821
  }
@@ -1870,6 +1870,15 @@ var Token$1 = withStyles$2(theme => {
1870
1870
  display: 'inline-block',
1871
1871
  padding: theme.spacing.unit
1872
1872
  },
1873
+ print: {
1874
+ border: 'dashed 2px gray',
1875
+ lineHeight: 2,
1876
+ boxSizing: 'border-box',
1877
+ marginTop: theme.spacing.unit / 2,
1878
+ display: 'inline-block',
1879
+ padding: theme.spacing.unit,
1880
+ color: color$1.text()
1881
+ },
1873
1882
  custom: {
1874
1883
  display: 'initial'
1875
1884
  },
@@ -1907,6 +1916,7 @@ class TokenSelect extends React$3.Component {
1907
1916
  onChange: PropTypes$2.func.isRequired,
1908
1917
  disabled: PropTypes$2.bool,
1909
1918
  highlightChoices: PropTypes$2.bool,
1919
+ animationsDisabled: PropTypes$2.bool,
1910
1920
  maxNoOfSelections: PropTypes$2.number
1911
1921
  };
1912
1922
  }
@@ -1933,12 +1943,12 @@ class TokenSelect extends React$3.Component {
1933
1943
  __init3() {
1934
1944
  this.toggleToken = event => {
1935
1945
  const {target} = event;
1936
- const {tokens} = this.props;
1946
+ const {tokens, animationsDisabled} = this.props;
1937
1947
  const tokensCloned = clone(tokens);
1938
1948
  const targetSpanWrapper = target.closest(`.${Token$1.rootClassName}`);
1939
1949
  const targetedTokenIndex = targetSpanWrapper && targetSpanWrapper.dataset && targetSpanWrapper.dataset.indexkey;
1940
1950
  const t = targetedTokenIndex && tokensCloned[targetedTokenIndex];
1941
- if (t && t.correct === undefined) {
1951
+ if (t && t.correct === undefined && !animationsDisabled) {
1942
1952
  const {onChange, maxNoOfSelections} = this.props;
1943
1953
  const selected = !t.selected;
1944
1954
  if (maxNoOfSelections === 1 && this.selectedCount() === 1) {
@@ -1978,7 +1988,7 @@ class TokenSelect extends React$3.Component {
1978
1988
  }
1979
1989
  __init4() {
1980
1990
  this.generateTokensInHtml = () => {
1981
- const {tokens, disabled, highlightChoices} = this.props;
1991
+ const {tokens, disabled, highlightChoices, animationsDisabled} = this.props;
1982
1992
  const selectedCount = this.selectedCount();
1983
1993
  const isLineBreak = text => text === '\n';
1984
1994
  const isNewParagraph = text => text === '\n\n';
@@ -1992,7 +2002,7 @@ class TokenSelect extends React$3.Component {
1992
2002
  if (isLineBreak(t.text)) {
1993
2003
  return finalAcc + '<br>';
1994
2004
  }
1995
- if (selectable && !disabled || showCorrectAnswer || t.selected) {
2005
+ if (selectable && !disabled || showCorrectAnswer || t.selected || animationsDisabled && t.predefined) {
1996
2006
  return finalAcc + renderToString(React$3.createElement(Token$1, {
1997
2007
  key: index,
1998
2008
  disabled: disabled,
@@ -2000,10 +2010,11 @@ class TokenSelect extends React$3.Component {
2000
2010
  ...t,
2001
2011
  selectable: selectable,
2002
2012
  highlight: highlightChoices,
2013
+ animationsDisabled: animationsDisabled,
2003
2014
  __self: this,
2004
2015
  __source: {
2005
2016
  fileName: _jsxFileName$2,
2006
- lineNumber: 119
2017
+ lineNumber: 125
2007
2018
  }
2008
2019
  }));
2009
2020
  } else {
@@ -2027,7 +2038,7 @@ class TokenSelect extends React$3.Component {
2027
2038
  __self: this,
2028
2039
  __source: {
2029
2040
  fileName: _jsxFileName$2,
2030
- lineNumber: 145
2041
+ lineNumber: 152
2031
2042
  }
2032
2043
  });
2033
2044
  }
@@ -2063,6 +2074,7 @@ class TextSelect extends React$2.Component {
2063
2074
  text: PropTypes$1.string.isRequired,
2064
2075
  className: PropTypes$1.string,
2065
2076
  highlightChoices: PropTypes$1.bool,
2077
+ animationsDisabled: PropTypes$1.bool,
2066
2078
  maxNoOfSelections: PropTypes$1.number
2067
2079
  };
2068
2080
  }
@@ -2080,7 +2092,7 @@ class TextSelect extends React$2.Component {
2080
2092
  };
2081
2093
  }
2082
2094
  render() {
2083
- const {text, disabled, tokens, selectedTokens, className, highlightChoices, maxNoOfSelections} = this.props;
2095
+ const {text, disabled, tokens, selectedTokens, className, highlightChoices, maxNoOfSelections, animationsDisabled} = this.props;
2084
2096
  const normalized = normalize(text, tokens);
2085
2097
  log$1('normalized: ', normalized);
2086
2098
  const prepped = normalized.map(t => {
@@ -2103,10 +2115,11 @@ class TextSelect extends React$2.Component {
2103
2115
  disabled: disabled,
2104
2116
  onChange: this.change,
2105
2117
  maxNoOfSelections: maxNoOfSelections,
2118
+ animationsDisabled: animationsDisabled,
2106
2119
  __self: this,
2107
2120
  __source: {
2108
2121
  fileName: _jsxFileName$1,
2109
- lineNumber: 63
2122
+ lineNumber: 65
2110
2123
  }
2111
2124
  });
2112
2125
  }
@@ -2169,7 +2182,9 @@ var generateModel = model => {
2169
2182
  ...token,
2170
2183
  text: tokenText,
2171
2184
  start: newStart,
2172
- end: newEnd
2185
+ end: newEnd,
2186
+ oldStart: token.start,
2187
+ oldEnd: token.end
2173
2188
  }];
2174
2189
  }, []);
2175
2190
  return {
@@ -2229,7 +2244,7 @@ class Main extends React$1.Component {
2229
2244
  }
2230
2245
  __init2() {
2231
2246
  this.correctAnswer = () => {
2232
- const {model} = this.props;
2247
+ const {model} = this.state;
2233
2248
  return model.tokens.filter(t => t.correct);
2234
2249
  };
2235
2250
  }
@@ -2243,13 +2258,13 @@ class Main extends React$1.Component {
2243
2258
  __self: this,
2244
2259
  __source: {
2245
2260
  fileName: _jsxFileName,
2246
- lineNumber: 63
2261
+ lineNumber: 61
2247
2262
  }
2248
2263
  }, model.teacherInstructions && hasText(model.teacherInstructions) && React$1.createElement(React$1.Fragment, {
2249
2264
  __self: this,
2250
2265
  __source: {
2251
2266
  fileName: _jsxFileName,
2252
- lineNumber: 66
2267
+ lineNumber: 64
2253
2268
  }
2254
2269
  }, !model.animationsDisabled ? React$1.createElement(Collapsible, {
2255
2270
  labels: {
@@ -2260,41 +2275,41 @@ class Main extends React$1.Component {
2260
2275
  __self: this,
2261
2276
  __source: {
2262
2277
  fileName: _jsxFileName,
2263
- lineNumber: 67
2278
+ lineNumber: 65
2264
2279
  }
2265
2280
  }, React$1.createElement(PreviewPrompt, {
2266
2281
  prompt: model.teacherInstructions,
2267
2282
  __self: this,
2268
2283
  __source: {
2269
2284
  fileName: _jsxFileName,
2270
- lineNumber: 71
2285
+ lineNumber: 69
2271
2286
  }
2272
2287
  })) : React$1.createElement(PreviewPrompt, {
2273
2288
  prompt: model.teacherInstructions,
2274
2289
  __self: this,
2275
2290
  __source: {
2276
2291
  fileName: _jsxFileName,
2277
- lineNumber: 74
2292
+ lineNumber: 72
2278
2293
  }
2279
2294
  }), React$1.createElement('br', {
2280
2295
  __self: this,
2281
2296
  __source: {
2282
2297
  fileName: _jsxFileName,
2283
- lineNumber: 76
2298
+ lineNumber: 74
2284
2299
  }
2285
2300
  })), React$1.createElement('div', {
2286
2301
  className: classes.prompt,
2287
2302
  __self: this,
2288
2303
  __source: {
2289
2304
  fileName: _jsxFileName,
2290
- lineNumber: 80
2305
+ lineNumber: 78
2291
2306
  }
2292
2307
  }, React$1.createElement(PreviewPrompt, {
2293
2308
  prompt: model.prompt,
2294
2309
  __self: this,
2295
2310
  __source: {
2296
2311
  fileName: _jsxFileName,
2297
- lineNumber: 81
2312
+ lineNumber: 79
2298
2313
  }
2299
2314
  })), !model.alwaysShowCorrect && React$1.createElement(CorrectAnswerToggle, {
2300
2315
  show: model.disabled && model.incorrect,
@@ -2303,7 +2318,7 @@ class Main extends React$1.Component {
2303
2318
  __self: this,
2304
2319
  __source: {
2305
2320
  fileName: _jsxFileName,
2306
- lineNumber: 84
2321
+ lineNumber: 82
2307
2322
  }
2308
2323
  }), React$1.createElement(TextSelect, {
2309
2324
  className: classes.textSelect,
@@ -2311,20 +2326,29 @@ class Main extends React$1.Component {
2311
2326
  text: model.text,
2312
2327
  tokens: model.tokens,
2313
2328
  selectedTokens: selectedTokens,
2314
- onChange: onSelectionChange,
2329
+ onChange: selection => {
2330
+ const newSelections = selection.map(select => {
2331
+ const token = model.tokens.find(({start, end}) => select.start === start && select.end === end);
2332
+ if (token) {
2333
+ return token;
2334
+ }
2335
+ return select;
2336
+ });
2337
+ onSelectionChange(newSelections);
2338
+ },
2315
2339
  highlightChoices: model.highlightChoices,
2316
2340
  maxNoOfSelections: model.maxSelections,
2317
2341
  animationsDisabled: model.animationsDisabled,
2318
2342
  __self: this,
2319
2343
  __source: {
2320
2344
  fileName: _jsxFileName,
2321
- lineNumber: 90
2345
+ lineNumber: 88
2322
2346
  }
2323
2347
  }), model.rationale && hasText(model.rationale) && React$1.createElement(React$1.Fragment, {
2324
2348
  __self: this,
2325
2349
  __source: {
2326
2350
  fileName: _jsxFileName,
2327
- lineNumber: 103
2351
+ lineNumber: 114
2328
2352
  }
2329
2353
  }, !model.animationsDisabled ? React$1.createElement(Collapsible, {
2330
2354
  labels: {
@@ -2336,21 +2360,21 @@ class Main extends React$1.Component {
2336
2360
  __self: this,
2337
2361
  __source: {
2338
2362
  fileName: _jsxFileName,
2339
- lineNumber: 104
2363
+ lineNumber: 115
2340
2364
  }
2341
2365
  }, React$1.createElement(PreviewPrompt, {
2342
2366
  prompt: model.rationale,
2343
2367
  __self: this,
2344
2368
  __source: {
2345
2369
  fileName: _jsxFileName,
2346
- lineNumber: 108
2370
+ lineNumber: 119
2347
2371
  }
2348
2372
  })) : React$1.createElement(PreviewPrompt, {
2349
2373
  prompt: model.rationale,
2350
2374
  __self: this,
2351
2375
  __source: {
2352
2376
  fileName: _jsxFileName,
2353
- lineNumber: 110
2377
+ lineNumber: 121
2354
2378
  }
2355
2379
  })), model.correctness && model.feedback && !showCorrectAnswer && React$1.createElement(Feedback, {
2356
2380
  correctness: model.correctness,
@@ -2358,7 +2382,7 @@ class Main extends React$1.Component {
2358
2382
  __self: this,
2359
2383
  __source: {
2360
2384
  fileName: _jsxFileName,
2361
- lineNumber: 115
2385
+ lineNumber: 126
2362
2386
  }
2363
2387
  }));
2364
2388
  }
@@ -2427,7 +2451,7 @@ class Stateful extends React$1.Component {
2427
2451
  __self: this,
2428
2452
  __source: {
2429
2453
  fileName: _jsxFileName,
2430
- lineNumber: 170
2454
+ lineNumber: 181
2431
2455
  }
2432
2456
  });
2433
2457
  }
@@ -2447,6 +2471,21 @@ class SelectText extends HTMLElement {
2447
2471
  }
2448
2472
  set session(s) {
2449
2473
  this._session = s;
2474
+ if (this._model) {
2475
+ const generatedModel = generateModel(this._model) || ({});
2476
+ const {tokens} = generatedModel;
2477
+ const areCorrect = (s.selectedTokens || []).filter(({start, end}) => tokens.find(({start: tStart, end: tEnd}) => start === tStart && end === tEnd)).length;
2478
+ if (!areCorrect) {
2479
+ const generatedModel = generateModel({
2480
+ ...this._model,
2481
+ tokens: s.selectedTokens
2482
+ }) || ({});
2483
+ const {tokens} = generatedModel;
2484
+ if (tokens) {
2485
+ this._session.selectedTokens = tokens;
2486
+ }
2487
+ }
2488
+ }
2450
2489
  if (!Array.isArray(this._session.selectedTokens)) {
2451
2490
  this._session.selectedTokens = [];
2452
2491
  }
@@ -4,11 +4,11 @@
4
4
  "modules": [
5
5
  {
6
6
  "name": "@pie-lib/shared-module",
7
- "version": "^1.2.18"
7
+ "version": "^1.2.19"
8
8
  },
9
9
  {
10
10
  "name": "@pie-lib/math-rendering-module",
11
- "version": "^1.0.21"
11
+ "version": "^1.0.22"
12
12
  }
13
13
  ]
14
14
  }