@pie-element/multiple-choice 5.11.0-ps.10 → 6.0.0-strikethrough.1

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.
Files changed (44) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/configure/CHANGELOG.md +31 -0
  3. package/configure/lib/__tests__/root.test.js +271 -0
  4. package/configure/lib/defaults.js +17 -4
  5. package/configure/lib/defaults.js.map +1 -1
  6. package/configure/lib/index.js +9 -4
  7. package/configure/lib/index.js.map +1 -1
  8. package/configure/lib/main.js +68 -19
  9. package/configure/lib/main.js.map +1 -1
  10. package/configure/package.json +4 -4
  11. package/controller/CHANGELOG.md +13 -0
  12. package/controller/lib/__tests__/index.test.js +864 -0
  13. package/controller/lib/__tests__/utils.test.js +8 -0
  14. package/controller/lib/defaults.js +4 -2
  15. package/controller/lib/defaults.js.map +1 -1
  16. package/controller/lib/index.js +25 -7
  17. package/controller/lib/index.js.map +1 -1
  18. package/controller/lib/utils.js +9 -1
  19. package/controller/lib/utils.js.map +1 -1
  20. package/controller/package.json +1 -1
  21. package/docs/demo/generate.js +17 -14
  22. package/lib/__tests__/choice-input-test.js +124 -0
  23. package/lib/__tests__/index-test.js +22 -0
  24. package/lib/__tests__/multiple-choice-test.js +237 -0
  25. package/lib/__tests__/session-updater-test.js +72 -0
  26. package/lib/choice-input.js +79 -18
  27. package/lib/choice-input.js.map +1 -1
  28. package/lib/choice.js +149 -0
  29. package/lib/choice.js.map +1 -0
  30. package/lib/feedback-tick.js +1 -1
  31. package/lib/feedback-tick.js.map +1 -1
  32. package/lib/index.js +70 -3
  33. package/lib/index.js.map +1 -1
  34. package/lib/main.js +1 -1
  35. package/lib/main.js.map +1 -1
  36. package/lib/multiple-choice.js +84 -144
  37. package/lib/multiple-choice.js.map +1 -1
  38. package/lib/print.js +125 -0
  39. package/lib/print.js.map +1 -0
  40. package/module/configure.js +3 -3
  41. package/module/element.js +18 -13
  42. package/module/manifest.json +2 -2
  43. package/module/print.js +23 -15
  44. package/package.json +5 -5
package/module/element.js CHANGED
@@ -1,5 +1,5 @@
1
- import {_dll_prop_types, _dll_react_dom, _dll_react, _dll_material_ui__core_styles, _dll_pie_lib__render_ui, _dll_material_ui__core, _dll_classnames, _dll_pie_lib__correct_answer_toggle, _dll_lodash, _dll_debug} from "../../../@pie-lib/shared-module@^1.2.2/module/index.js";
2
- import {_dll_pie_lib__math_rendering} from "../../../@pie-lib/math-rendering-module@^1.0.5/module/index.js";
1
+ import {_dll_prop_types, _dll_react_dom, _dll_react, _dll_material_ui__core_styles, _dll_pie_lib__render_ui, _dll_material_ui__core, _dll_classnames, _dll_pie_lib__correct_answer_toggle, _dll_lodash, _dll_debug} from "../../../@pie-lib/shared-module@^1.2.9/module/index.js";
2
+ import {_dll_pie_lib__math_rendering} from "../../../@pie-lib/math-rendering-module@^1.0.12/module/index.js";
3
3
  function getDefaultExportFromCjs(x) {
4
4
  return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
5
5
  }
@@ -1647,6 +1647,11 @@ class MultipleChoice$1 extends React$2.Component {
1647
1647
  showCorrect: false
1648
1648
  });
1649
1649
  }
1650
+ if (nextProps.alwaysShowCorrect) {
1651
+ this.setState({
1652
+ showCorrect: true
1653
+ });
1654
+ }
1650
1655
  }
1651
1656
  isSelected(value) {
1652
1657
  const sessionValue = this.props.session && this.props.session.value;
@@ -1693,13 +1698,13 @@ class MultipleChoice$1 extends React$2.Component {
1693
1698
  __self: this,
1694
1699
  __source: {
1695
1700
  fileName: _jsxFileName$1,
1696
- lineNumber: 142
1701
+ lineNumber: 146
1697
1702
  }
1698
1703
  }, teacherInstructions && React$2.createElement(React$2.Fragment, {
1699
1704
  __self: this,
1700
1705
  __source: {
1701
1706
  fileName: _jsxFileName$1,
1702
- lineNumber: 144
1707
+ lineNumber: 148
1703
1708
  }
1704
1709
  }, !animationsDisabled ? React$2.createElement(Collapsible, {
1705
1710
  labels: {
@@ -1709,7 +1714,7 @@ class MultipleChoice$1 extends React$2.Component {
1709
1714
  __self: this,
1710
1715
  __source: {
1711
1716
  fileName: _jsxFileName$1,
1712
- lineNumber: 146
1717
+ lineNumber: 150
1713
1718
  }
1714
1719
  }, React$2.createElement(PreviewPrompt, {
1715
1720
  tagName: "div",
@@ -1718,7 +1723,7 @@ class MultipleChoice$1 extends React$2.Component {
1718
1723
  __self: this,
1719
1724
  __source: {
1720
1725
  fileName: _jsxFileName$1,
1721
- lineNumber: 152
1726
+ lineNumber: 156
1722
1727
  }
1723
1728
  })) : React$2.createElement(PreviewPrompt, {
1724
1729
  tagName: "div",
@@ -1728,13 +1733,13 @@ class MultipleChoice$1 extends React$2.Component {
1728
1733
  __self: this,
1729
1734
  __source: {
1730
1735
  fileName: _jsxFileName$1,
1731
- lineNumber: 158
1736
+ lineNumber: 162
1732
1737
  }
1733
1738
  }), React$2.createElement('br', {
1734
1739
  __self: this,
1735
1740
  __source: {
1736
1741
  fileName: _jsxFileName$1,
1737
- lineNumber: 164
1742
+ lineNumber: 168
1738
1743
  }
1739
1744
  })), !alwaysShowCorrect && React$2.createElement(CorrectAnswerToggle, {
1740
1745
  show: showCorrectAnswerToggle,
@@ -1743,13 +1748,13 @@ class MultipleChoice$1 extends React$2.Component {
1743
1748
  __self: this,
1744
1749
  __source: {
1745
1750
  fileName: _jsxFileName$1,
1746
- lineNumber: 168
1751
+ lineNumber: 172
1747
1752
  }
1748
1753
  }), showCorrectAnswerToggle && React$2.createElement('br', {
1749
1754
  __self: this,
1750
1755
  __source: {
1751
1756
  fileName: _jsxFileName$1,
1752
- lineNumber: 174
1757
+ lineNumber: 178
1753
1758
  }
1754
1759
  }), React$2.createElement(PreviewPrompt, {
1755
1760
  className: "prompt",
@@ -1758,7 +1763,7 @@ class MultipleChoice$1 extends React$2.Component {
1758
1763
  __self: this,
1759
1764
  __source: {
1760
1765
  fileName: _jsxFileName$1,
1761
- lineNumber: 175
1766
+ lineNumber: 179
1762
1767
  }
1763
1768
  }), React$2.createElement('div', {
1764
1769
  className: classNames$1({
@@ -1770,7 +1775,7 @@ class MultipleChoice$1 extends React$2.Component {
1770
1775
  __self: this,
1771
1776
  __source: {
1772
1777
  fileName: _jsxFileName$1,
1773
- lineNumber: 176
1778
+ lineNumber: 180
1774
1779
  }
1775
1780
  }, choices.map((choice, index) => React$2.createElement(StyledChoice, {
1776
1781
  choicesLayout: this.props.choicesLayout,
@@ -1791,7 +1796,7 @@ class MultipleChoice$1 extends React$2.Component {
1791
1796
  __self: this,
1792
1797
  __source: {
1793
1798
  fileName: _jsxFileName$1,
1794
- lineNumber: 187
1799
+ lineNumber: 191
1795
1800
  }
1796
1801
  }))));
1797
1802
  }
@@ -4,11 +4,11 @@
4
4
  "modules": [
5
5
  {
6
6
  "name": "@pie-lib/shared-module",
7
- "version": "^1.2.2"
7
+ "version": "^1.2.9"
8
8
  },
9
9
  {
10
10
  "name": "@pie-lib/math-rendering-module",
11
- "version": "^1.0.5"
11
+ "version": "^1.0.12"
12
12
  }
13
13
  ]
14
14
  }
package/module/print.js CHANGED
@@ -1,5 +1,5 @@
1
- import {_dll_prop_types, _dll_react_dom, _dll_react, _dll_material_ui__core_styles, _dll_pie_lib__render_ui, _dll_material_ui__core, _dll_classnames, _dll_pie_lib__correct_answer_toggle, _dll_lodash, _dll_debug} from "../../../@pie-lib/shared-module@^1.2.2/module/index.js";
2
- import {_dll_pie_lib__math_rendering} from "../../../@pie-lib/math-rendering-module@^1.0.5/module/index.js";
1
+ import {_dll_prop_types, _dll_react_dom, _dll_react, _dll_material_ui__core_styles, _dll_pie_lib__render_ui, _dll_material_ui__core, _dll_classnames, _dll_pie_lib__correct_answer_toggle, _dll_lodash, _dll_debug} from "../../../@pie-lib/shared-module@^1.2.9/module/index.js";
2
+ import {_dll_pie_lib__math_rendering} from "../../../@pie-lib/math-rendering-module@^1.0.12/module/index.js";
3
3
  function getDefaultExportFromCjs(x) {
4
4
  return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
5
5
  }
@@ -1647,6 +1647,11 @@ class MultipleChoice extends React$2.Component {
1647
1647
  showCorrect: false
1648
1648
  });
1649
1649
  }
1650
+ if (nextProps.alwaysShowCorrect) {
1651
+ this.setState({
1652
+ showCorrect: true
1653
+ });
1654
+ }
1650
1655
  }
1651
1656
  isSelected(value) {
1652
1657
  const sessionValue = this.props.session && this.props.session.value;
@@ -1693,13 +1698,13 @@ class MultipleChoice extends React$2.Component {
1693
1698
  __self: this,
1694
1699
  __source: {
1695
1700
  fileName: _jsxFileName$1,
1696
- lineNumber: 142
1701
+ lineNumber: 146
1697
1702
  }
1698
1703
  }, teacherInstructions && React$2.createElement(React$2.Fragment, {
1699
1704
  __self: this,
1700
1705
  __source: {
1701
1706
  fileName: _jsxFileName$1,
1702
- lineNumber: 144
1707
+ lineNumber: 148
1703
1708
  }
1704
1709
  }, !animationsDisabled ? React$2.createElement(Collapsible, {
1705
1710
  labels: {
@@ -1709,7 +1714,7 @@ class MultipleChoice extends React$2.Component {
1709
1714
  __self: this,
1710
1715
  __source: {
1711
1716
  fileName: _jsxFileName$1,
1712
- lineNumber: 146
1717
+ lineNumber: 150
1713
1718
  }
1714
1719
  }, React$2.createElement(PreviewPrompt, {
1715
1720
  tagName: "div",
@@ -1718,7 +1723,7 @@ class MultipleChoice extends React$2.Component {
1718
1723
  __self: this,
1719
1724
  __source: {
1720
1725
  fileName: _jsxFileName$1,
1721
- lineNumber: 152
1726
+ lineNumber: 156
1722
1727
  }
1723
1728
  })) : React$2.createElement(PreviewPrompt, {
1724
1729
  tagName: "div",
@@ -1728,13 +1733,13 @@ class MultipleChoice extends React$2.Component {
1728
1733
  __self: this,
1729
1734
  __source: {
1730
1735
  fileName: _jsxFileName$1,
1731
- lineNumber: 158
1736
+ lineNumber: 162
1732
1737
  }
1733
1738
  }), React$2.createElement('br', {
1734
1739
  __self: this,
1735
1740
  __source: {
1736
1741
  fileName: _jsxFileName$1,
1737
- lineNumber: 164
1742
+ lineNumber: 168
1738
1743
  }
1739
1744
  })), !alwaysShowCorrect && React$2.createElement(CorrectAnswerToggle, {
1740
1745
  show: showCorrectAnswerToggle,
@@ -1743,13 +1748,13 @@ class MultipleChoice extends React$2.Component {
1743
1748
  __self: this,
1744
1749
  __source: {
1745
1750
  fileName: _jsxFileName$1,
1746
- lineNumber: 168
1751
+ lineNumber: 172
1747
1752
  }
1748
1753
  }), showCorrectAnswerToggle && React$2.createElement('br', {
1749
1754
  __self: this,
1750
1755
  __source: {
1751
1756
  fileName: _jsxFileName$1,
1752
- lineNumber: 174
1757
+ lineNumber: 178
1753
1758
  }
1754
1759
  }), React$2.createElement(PreviewPrompt, {
1755
1760
  className: "prompt",
@@ -1758,7 +1763,7 @@ class MultipleChoice extends React$2.Component {
1758
1763
  __self: this,
1759
1764
  __source: {
1760
1765
  fileName: _jsxFileName$1,
1761
- lineNumber: 175
1766
+ lineNumber: 179
1762
1767
  }
1763
1768
  }), React$2.createElement('div', {
1764
1769
  className: classNames$1({
@@ -1770,7 +1775,7 @@ class MultipleChoice extends React$2.Component {
1770
1775
  __self: this,
1771
1776
  __source: {
1772
1777
  fileName: _jsxFileName$1,
1773
- lineNumber: 176
1778
+ lineNumber: 180
1774
1779
  }
1775
1780
  }, choices.map((choice, index) => React$2.createElement(StyledChoice, {
1776
1781
  choicesLayout: this.props.choicesLayout,
@@ -1791,7 +1796,7 @@ class MultipleChoice extends React$2.Component {
1791
1796
  __self: this,
1792
1797
  __source: {
1793
1798
  fileName: _jsxFileName$1,
1794
- lineNumber: 187
1799
+ lineNumber: 191
1795
1800
  }
1796
1801
  }))));
1797
1802
  }
@@ -1890,20 +1895,23 @@ const Root = props => React$1.createElement(MuiThemeProvider, {
1890
1895
  const React = _dll_react;
1891
1896
  const ReactDOM = _dll_react_dom;
1892
1897
  const {debounce: debounce} = _dll_lodash;
1898
+ const {cloneDeep: cloneDeep} = _dll_lodash;
1893
1899
  const debug = _dll_debug;
1894
1900
  const {renderMath: renderMath} = _dll_pie_lib__math_rendering;
1895
1901
  const log = debug('pie-element:multiple-choice:print');
1896
1902
  const preparePrintModel = (model, opts) => {
1897
- const instr = opts.mode === 'instructor';
1903
+ const instr = opts.role === 'instructor';
1898
1904
  model.teacherInstructions = instr ? model.teacherInstructions : undefined;
1899
1905
  model.showTeacherInstructions = instr;
1900
1906
  model.alwaysShowCorrect = instr;
1901
1907
  model.mode = instr ? 'evaluate' : model.mode;
1902
1908
  model.disabled = true;
1903
1909
  model.animationsDisabled = true;
1904
- model.choices = model.choices.map(c => {
1910
+ const choices = cloneDeep(model.choices);
1911
+ model.choices = choices.map(c => {
1905
1912
  c.rationale = instr ? c.rationale : undefined;
1906
1913
  c.hideTick = instr;
1914
+ c.feedback = undefined;
1907
1915
  return c;
1908
1916
  });
1909
1917
  return model;
package/package.json CHANGED
@@ -1,16 +1,16 @@
1
1
  {
2
2
  "name": "@pie-element/multiple-choice",
3
3
  "repository": "pie-framework/pie-elements",
4
- "version": "5.11.0-ps.10",
4
+ "version": "6.0.0-strikethrough.1",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
8
8
  "dependencies": {
9
9
  "@material-ui/core": "^3.9.2",
10
- "@pie-lib/config-ui": "^10.10.3",
11
- "@pie-lib/correct-answer-toggle": "^2.3.29",
12
- "@pie-lib/math-rendering": "^2.3.9",
13
- "@pie-lib/render-ui": "^4.12.0",
10
+ "@pie-lib/config-ui": "^10.10.11",
11
+ "@pie-lib/correct-answer-toggle": "^2.3.31",
12
+ "@pie-lib/math-rendering": "^2.3.11",
13
+ "@pie-lib/render-ui": "^4.12.2",
14
14
  "classnames": "^2.2.5",
15
15
  "debug": "^4.1.1",
16
16
  "enzyme-to-json": "^3.3.3",