@pie-element/ebsr 10.2.9-next.11 → 10.2.9-next.13

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
@@ -12703,9 +12703,8 @@ class MultipleChoice$1 extends React$2.Component {
12703
12703
  MultipleChoice$1.prototype.__init2.call(this);
12704
12704
  MultipleChoice$1.prototype.__init3.call(this);
12705
12705
  this.state = {
12706
- selectedValue: null,
12707
- selectedValues: [],
12708
- showCorrect: this.props.alwaysShowCorrect || false
12706
+ showCorrect: this.props.alwaysShowCorrect || false,
12707
+ maxSelectionsErrorState: false
12709
12708
  };
12710
12709
  this.onToggle = this.onToggle.bind(this);
12711
12710
  }
@@ -12716,22 +12715,14 @@ class MultipleChoice$1 extends React$2.Component {
12716
12715
  __init() {
12717
12716
  this.handleChange = event => {
12718
12717
  const {value, checked} = event.target;
12719
- const {choiceMode, maxSelections, onChoiceChanged} = this.props;
12720
- if (choiceMode === 'radio') {
12718
+ const {maxSelections, onChoiceChanged, session} = this.props;
12719
+ if (session.value && session.value.length >= maxSelections) {
12721
12720
  this.setState({
12722
- selectedValue: value
12721
+ maxSelectionsErrorState: checked
12723
12722
  });
12724
- } else {
12725
- const {selectedValues} = this.state;
12726
- if (checked && selectedValues.length >= maxSelections) {
12723
+ if (checked) {
12727
12724
  return;
12728
12725
  }
12729
- this.setState(prevState => {
12730
- const selectedValues = checked ? [...prevState.selectedValues, value] : prevState.selectedValues.filter(currentValue => currentValue !== value);
12731
- return {
12732
- selectedValues
12733
- };
12734
- });
12735
12726
  }
12736
12727
  onChoiceChanged({
12737
12728
  value,
@@ -12807,10 +12798,7 @@ class MultipleChoice$1 extends React$2.Component {
12807
12798
  if (this.state.showCorrect) {
12808
12799
  return choice.correct || false;
12809
12800
  }
12810
- if (this.isSelected(choice.value)) {
12811
- return true;
12812
- }
12813
- return this.props.choiceMode === 'radio' ? this.state.selectedValue === choice.value : this.state.selectedValues.includes(choice.value);
12801
+ return this.isSelected(choice.value);
12814
12802
  }
12815
12803
  renderHeading() {
12816
12804
  const {mode, choiceMode, classes} = this.props;
@@ -12822,20 +12810,20 @@ class MultipleChoice$1 extends React$2.Component {
12822
12810
  __self: this,
12823
12811
  __source: {
12824
12812
  fileName: _jsxFileName$1,
12825
- lineNumber: 225
12813
+ lineNumber: 209
12826
12814
  }
12827
12815
  }, "Multiple Choice Question") : React$2.createElement('h2', {
12828
12816
  className: classes.srOnly,
12829
12817
  __self: this,
12830
12818
  __source: {
12831
12819
  fileName: _jsxFileName$1,
12832
- lineNumber: 227
12820
+ lineNumber: 211
12833
12821
  }
12834
12822
  }, "Multiple Select Question");
12835
12823
  }
12836
12824
  render() {
12837
12825
  const {mode, disabled, className, choices = [], choiceMode, gridColumns, partLabel, prompt, responseCorrect, teacherInstructions, classes, alwaysShowCorrect, animationsDisabled, language, isSelectionButtonBelow, minSelections, maxSelections, session} = this.props;
12838
- const {showCorrect} = this.state;
12826
+ const {showCorrect, maxSelectionsErrorState} = this.state;
12839
12827
  const isEvaluateMode = mode === 'evaluate';
12840
12828
  const showCorrectAnswerToggle = isEvaluateMode && !responseCorrect;
12841
12829
  const columnsStyle = gridColumns > 1 ? {
@@ -12850,7 +12838,7 @@ class MultipleChoice$1 extends React$2.Component {
12850
12838
  __self: this,
12851
12839
  __source: {
12852
12840
  fileName: _jsxFileName$1,
12853
- lineNumber: 259
12841
+ lineNumber: 243
12854
12842
  }
12855
12843
  });
12856
12844
  return React$2.createElement('div', {
@@ -12858,21 +12846,21 @@ class MultipleChoice$1 extends React$2.Component {
12858
12846
  __self: this,
12859
12847
  __source: {
12860
12848
  fileName: _jsxFileName$1,
12861
- lineNumber: 268
12849
+ lineNumber: 252
12862
12850
  }
12863
12851
  }, partLabel && React$2.createElement('h3', {
12864
12852
  className: classes.partLabel,
12865
12853
  __self: this,
12866
12854
  __source: {
12867
12855
  fileName: _jsxFileName$1,
12868
- lineNumber: 269
12856
+ lineNumber: 253
12869
12857
  }
12870
12858
  }, partLabel), this.renderHeading(), teacherInstructions && React$2.createElement('div', {
12871
12859
  className: classes.teacherInstructions,
12872
12860
  __self: this,
12873
12861
  __source: {
12874
12862
  fileName: _jsxFileName$1,
12875
- lineNumber: 274
12863
+ lineNumber: 258
12876
12864
  }
12877
12865
  }, !animationsDisabled ? React$2.createElement(Collapsible, {
12878
12866
  labels: {
@@ -12882,14 +12870,14 @@ class MultipleChoice$1 extends React$2.Component {
12882
12870
  __self: this,
12883
12871
  __source: {
12884
12872
  fileName: _jsxFileName$1,
12885
- lineNumber: 276
12873
+ lineNumber: 260
12886
12874
  }
12887
12875
  }, teacherInstructionsDiv) : teacherInstructionsDiv), React$2.createElement('fieldset', {
12888
12876
  className: classes.fieldset,
12889
12877
  __self: this,
12890
12878
  __source: {
12891
12879
  fileName: _jsxFileName$1,
12892
- lineNumber: 290
12880
+ lineNumber: 274
12893
12881
  }
12894
12882
  }, React$2.createElement(PreviewPrompt, {
12895
12883
  className: "prompt",
@@ -12899,7 +12887,7 @@ class MultipleChoice$1 extends React$2.Component {
12899
12887
  __self: this,
12900
12888
  __source: {
12901
12889
  fileName: _jsxFileName$1,
12902
- lineNumber: 291
12890
+ lineNumber: 275
12903
12891
  }
12904
12892
  }), !alwaysShowCorrect && React$2.createElement(CorrectAnswerToggle, {
12905
12893
  show: showCorrectAnswerToggle,
@@ -12909,7 +12897,7 @@ class MultipleChoice$1 extends React$2.Component {
12909
12897
  __self: this,
12910
12898
  __source: {
12911
12899
  fileName: _jsxFileName$1,
12912
- lineNumber: 294
12900
+ lineNumber: 278
12913
12901
  }
12914
12902
  }), React$2.createElement('div', {
12915
12903
  className: classNames({
@@ -12920,7 +12908,7 @@ class MultipleChoice$1 extends React$2.Component {
12920
12908
  __self: this,
12921
12909
  __source: {
12922
12910
  fileName: _jsxFileName$1,
12923
- lineNumber: 302
12911
+ lineNumber: 286
12924
12912
  }
12925
12913
  }, choices.map((choice, index) => React$2.createElement(StyledChoice, {
12926
12914
  choicesLayout: this.props.choicesLayout,
@@ -12943,24 +12931,24 @@ class MultipleChoice$1 extends React$2.Component {
12943
12931
  __self: this,
12944
12932
  __source: {
12945
12933
  fileName: _jsxFileName$1,
12946
- lineNumber: 310
12934
+ lineNumber: 294
12947
12935
  }
12948
12936
  })))), choiceMode === 'checkbox' && selections < minSelections && React$2.createElement('div', {
12949
12937
  className: classes.errorText,
12950
12938
  __self: this,
12951
12939
  __source: {
12952
12940
  fileName: _jsxFileName$1,
12953
- lineNumber: 334
12941
+ lineNumber: 318
12954
12942
  }
12955
12943
  }, translator.t(`translation:multipleChoice:minSelections_${minSelections === 1 ? 'one' : 'other'}`, {
12956
12944
  lng: language,
12957
12945
  minSelections
12958
- })), choiceMode === 'checkbox' && selections >= maxSelections && React$2.createElement('div', {
12946
+ })), choiceMode === 'checkbox' && maxSelectionsErrorState && React$2.createElement('div', {
12959
12947
  className: classes.errorText,
12960
12948
  __self: this,
12961
12949
  __source: {
12962
12950
  fileName: _jsxFileName$1,
12963
- lineNumber: 342
12951
+ lineNumber: 326
12964
12952
  }
12965
12953
  }, translator.t(`translation:multipleChoice:maxSelections_${maxSelections === 1 ? 'one' : 'other'}`, {
12966
12954
  lng: language,
@@ -13120,7 +13108,6 @@ class MultipleChoice extends HTMLElement {
13120
13108
  trailing: true
13121
13109
  });
13122
13110
  this._dispatchResponseChanged = debounce(() => {
13123
- console.log('>> dispatch event');
13124
13111
  var event = new CustomEvent('session-changed', {
13125
13112
  bubbles: true,
13126
13113
  composed: true,
package/module/print.js CHANGED
@@ -12666,9 +12666,8 @@ class MultipleChoice$1 extends React$2.Component {
12666
12666
  MultipleChoice$1.prototype.__init2.call(this);
12667
12667
  MultipleChoice$1.prototype.__init3.call(this);
12668
12668
  this.state = {
12669
- selectedValue: null,
12670
- selectedValues: [],
12671
- showCorrect: this.props.alwaysShowCorrect || false
12669
+ showCorrect: this.props.alwaysShowCorrect || false,
12670
+ maxSelectionsErrorState: false
12672
12671
  };
12673
12672
  this.onToggle = this.onToggle.bind(this);
12674
12673
  }
@@ -12679,22 +12678,14 @@ class MultipleChoice$1 extends React$2.Component {
12679
12678
  __init() {
12680
12679
  this.handleChange = event => {
12681
12680
  const {value, checked} = event.target;
12682
- const {choiceMode, maxSelections, onChoiceChanged} = this.props;
12683
- if (choiceMode === 'radio') {
12681
+ const {maxSelections, onChoiceChanged, session} = this.props;
12682
+ if (session.value && session.value.length >= maxSelections) {
12684
12683
  this.setState({
12685
- selectedValue: value
12684
+ maxSelectionsErrorState: checked
12686
12685
  });
12687
- } else {
12688
- const {selectedValues} = this.state;
12689
- if (checked && selectedValues.length >= maxSelections) {
12686
+ if (checked) {
12690
12687
  return;
12691
12688
  }
12692
- this.setState(prevState => {
12693
- const selectedValues = checked ? [...prevState.selectedValues, value] : prevState.selectedValues.filter(currentValue => currentValue !== value);
12694
- return {
12695
- selectedValues
12696
- };
12697
- });
12698
12689
  }
12699
12690
  onChoiceChanged({
12700
12691
  value,
@@ -12770,10 +12761,7 @@ class MultipleChoice$1 extends React$2.Component {
12770
12761
  if (this.state.showCorrect) {
12771
12762
  return choice.correct || false;
12772
12763
  }
12773
- if (this.isSelected(choice.value)) {
12774
- return true;
12775
- }
12776
- return this.props.choiceMode === 'radio' ? this.state.selectedValue === choice.value : this.state.selectedValues.includes(choice.value);
12764
+ return this.isSelected(choice.value);
12777
12765
  }
12778
12766
  renderHeading() {
12779
12767
  const {mode, choiceMode, classes} = this.props;
@@ -12785,20 +12773,20 @@ class MultipleChoice$1 extends React$2.Component {
12785
12773
  __self: this,
12786
12774
  __source: {
12787
12775
  fileName: _jsxFileName$1,
12788
- lineNumber: 225
12776
+ lineNumber: 209
12789
12777
  }
12790
12778
  }, "Multiple Choice Question") : React$2.createElement('h2', {
12791
12779
  className: classes.srOnly,
12792
12780
  __self: this,
12793
12781
  __source: {
12794
12782
  fileName: _jsxFileName$1,
12795
- lineNumber: 227
12783
+ lineNumber: 211
12796
12784
  }
12797
12785
  }, "Multiple Select Question");
12798
12786
  }
12799
12787
  render() {
12800
12788
  const {mode, disabled, className, choices = [], choiceMode, gridColumns, partLabel, prompt, responseCorrect, teacherInstructions, classes, alwaysShowCorrect, animationsDisabled, language, isSelectionButtonBelow, minSelections, maxSelections, session} = this.props;
12801
- const {showCorrect} = this.state;
12789
+ const {showCorrect, maxSelectionsErrorState} = this.state;
12802
12790
  const isEvaluateMode = mode === 'evaluate';
12803
12791
  const showCorrectAnswerToggle = isEvaluateMode && !responseCorrect;
12804
12792
  const columnsStyle = gridColumns > 1 ? {
@@ -12813,7 +12801,7 @@ class MultipleChoice$1 extends React$2.Component {
12813
12801
  __self: this,
12814
12802
  __source: {
12815
12803
  fileName: _jsxFileName$1,
12816
- lineNumber: 259
12804
+ lineNumber: 243
12817
12805
  }
12818
12806
  });
12819
12807
  return React$2.createElement('div', {
@@ -12821,21 +12809,21 @@ class MultipleChoice$1 extends React$2.Component {
12821
12809
  __self: this,
12822
12810
  __source: {
12823
12811
  fileName: _jsxFileName$1,
12824
- lineNumber: 268
12812
+ lineNumber: 252
12825
12813
  }
12826
12814
  }, partLabel && React$2.createElement('h3', {
12827
12815
  className: classes.partLabel,
12828
12816
  __self: this,
12829
12817
  __source: {
12830
12818
  fileName: _jsxFileName$1,
12831
- lineNumber: 269
12819
+ lineNumber: 253
12832
12820
  }
12833
12821
  }, partLabel), this.renderHeading(), teacherInstructions && React$2.createElement('div', {
12834
12822
  className: classes.teacherInstructions,
12835
12823
  __self: this,
12836
12824
  __source: {
12837
12825
  fileName: _jsxFileName$1,
12838
- lineNumber: 274
12826
+ lineNumber: 258
12839
12827
  }
12840
12828
  }, !animationsDisabled ? React$2.createElement(Collapsible, {
12841
12829
  labels: {
@@ -12845,14 +12833,14 @@ class MultipleChoice$1 extends React$2.Component {
12845
12833
  __self: this,
12846
12834
  __source: {
12847
12835
  fileName: _jsxFileName$1,
12848
- lineNumber: 276
12836
+ lineNumber: 260
12849
12837
  }
12850
12838
  }, teacherInstructionsDiv) : teacherInstructionsDiv), React$2.createElement('fieldset', {
12851
12839
  className: classes.fieldset,
12852
12840
  __self: this,
12853
12841
  __source: {
12854
12842
  fileName: _jsxFileName$1,
12855
- lineNumber: 290
12843
+ lineNumber: 274
12856
12844
  }
12857
12845
  }, React$2.createElement(PreviewPrompt, {
12858
12846
  className: "prompt",
@@ -12862,7 +12850,7 @@ class MultipleChoice$1 extends React$2.Component {
12862
12850
  __self: this,
12863
12851
  __source: {
12864
12852
  fileName: _jsxFileName$1,
12865
- lineNumber: 291
12853
+ lineNumber: 275
12866
12854
  }
12867
12855
  }), !alwaysShowCorrect && React$2.createElement(CorrectAnswerToggle, {
12868
12856
  show: showCorrectAnswerToggle,
@@ -12872,7 +12860,7 @@ class MultipleChoice$1 extends React$2.Component {
12872
12860
  __self: this,
12873
12861
  __source: {
12874
12862
  fileName: _jsxFileName$1,
12875
- lineNumber: 294
12863
+ lineNumber: 278
12876
12864
  }
12877
12865
  }), React$2.createElement('div', {
12878
12866
  className: classNames({
@@ -12883,7 +12871,7 @@ class MultipleChoice$1 extends React$2.Component {
12883
12871
  __self: this,
12884
12872
  __source: {
12885
12873
  fileName: _jsxFileName$1,
12886
- lineNumber: 302
12874
+ lineNumber: 286
12887
12875
  }
12888
12876
  }, choices.map((choice, index) => React$2.createElement(StyledChoice, {
12889
12877
  choicesLayout: this.props.choicesLayout,
@@ -12906,24 +12894,24 @@ class MultipleChoice$1 extends React$2.Component {
12906
12894
  __self: this,
12907
12895
  __source: {
12908
12896
  fileName: _jsxFileName$1,
12909
- lineNumber: 310
12897
+ lineNumber: 294
12910
12898
  }
12911
12899
  })))), choiceMode === 'checkbox' && selections < minSelections && React$2.createElement('div', {
12912
12900
  className: classes.errorText,
12913
12901
  __self: this,
12914
12902
  __source: {
12915
12903
  fileName: _jsxFileName$1,
12916
- lineNumber: 334
12904
+ lineNumber: 318
12917
12905
  }
12918
12906
  }, translator$1.t(`translation:multipleChoice:minSelections_${minSelections === 1 ? 'one' : 'other'}`, {
12919
12907
  lng: language,
12920
12908
  minSelections
12921
- })), choiceMode === 'checkbox' && selections >= maxSelections && React$2.createElement('div', {
12909
+ })), choiceMode === 'checkbox' && maxSelectionsErrorState && React$2.createElement('div', {
12922
12910
  className: classes.errorText,
12923
12911
  __self: this,
12924
12912
  __source: {
12925
12913
  fileName: _jsxFileName$1,
12926
- lineNumber: 342
12914
+ lineNumber: 326
12927
12915
  }
12928
12916
  }, translator$1.t(`translation:multipleChoice:maxSelections_${maxSelections === 1 ? 'one' : 'other'}`, {
12929
12917
  lng: language,
@@ -13083,7 +13071,6 @@ class MultipleChoice extends HTMLElement {
13083
13071
  trailing: true
13084
13072
  });
13085
13073
  this._dispatchResponseChanged = debounce(() => {
13086
- console.log('>> dispatch event');
13087
13074
  var event = new CustomEvent('session-changed', {
13088
13075
  bubbles: true,
13089
13076
  composed: true,
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@pie-element/ebsr",
3
- "version": "10.2.9-next.11+c23e9dc7e",
3
+ "version": "10.2.9-next.13+95b17d26e",
4
4
  "description": "",
5
5
  "repository": "pie-framework/pie-elements",
6
6
  "publishConfig": {
7
7
  "access": "public"
8
8
  },
9
9
  "dependencies": {
10
- "@pie-element/multiple-choice": "^9.7.2-next.11+c23e9dc7e",
10
+ "@pie-element/multiple-choice": "^9.7.2-next.13+95b17d26e",
11
11
  "@pie-framework/pie-player-events": "^0.1.0",
12
12
  "@pie-lib/pie-toolbox": "2.6.1",
13
13
  "classnames": "^2.2.5",
@@ -16,7 +16,7 @@
16
16
  },
17
17
  "author": "pie framework developers",
18
18
  "license": "ISC",
19
- "gitHead": "c23e9dc7e74e888945758da1da03b7c7c5ba1e22",
19
+ "gitHead": "95b17d26ecb7649371c9399138d5bd7ba2a10b74",
20
20
  "scripts": {
21
21
  "postpublish": "../../scripts/postpublish"
22
22
  },