@pie-element/multiple-choice 9.7.2-next.13 → 9.7.2-next.20
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/lib/index.js +6 -20
- package/lib/index.js.map +1 -1
- package/module/element.js +71 -50
- package/package.json +3 -2
package/lib/index.js
CHANGED
|
@@ -33,6 +33,8 @@ var _debounce = _interopRequireDefault(require("lodash/debounce"));
|
|
|
33
33
|
|
|
34
34
|
var _debug = _interopRequireDefault(require("debug"));
|
|
35
35
|
|
|
36
|
+
var _piePlayerEvents = require("@pie-framework/pie-player-events");
|
|
37
|
+
|
|
36
38
|
var _mathRendering = require("@pie-lib/pie-toolbox/math-rendering");
|
|
37
39
|
|
|
38
40
|
var _sessionUpdater = require("./session-updater");
|
|
@@ -50,7 +52,8 @@ var isComplete = function isComplete(session, model) {
|
|
|
50
52
|
|
|
51
53
|
var _ref = model || {},
|
|
52
54
|
choiceMode = _ref.choiceMode,
|
|
53
|
-
minSelections = _ref.minSelections,
|
|
55
|
+
_ref$minSelections = _ref.minSelections,
|
|
56
|
+
minSelections = _ref$minSelections === void 0 ? 1 : _ref$minSelections,
|
|
54
57
|
maxSelections = _ref.maxSelections;
|
|
55
58
|
|
|
56
59
|
var selections = session.value.length || 0;
|
|
@@ -108,27 +111,10 @@ var MultipleChoice = /*#__PURE__*/function (_HTMLElement) {
|
|
|
108
111
|
trailing: true
|
|
109
112
|
});
|
|
110
113
|
_this._dispatchResponseChanged = (0, _debounce["default"])(function () {
|
|
111
|
-
|
|
112
|
-
bubbles: true,
|
|
113
|
-
composed: true,
|
|
114
|
-
detail: {
|
|
115
|
-
complete: isComplete(_this._session, _this._model),
|
|
116
|
-
component: _this.tagName.toLowerCase()
|
|
117
|
-
}
|
|
118
|
-
});
|
|
119
|
-
|
|
120
|
-
_this.dispatchEvent(event);
|
|
114
|
+
_this.dispatchEvent(new _piePlayerEvents.SessionChangedEvent(_this.tagName.toLowerCase(), isComplete(_this._session, _this._model)));
|
|
121
115
|
});
|
|
122
116
|
_this._dispatchModelSet = (0, _debounce["default"])(function () {
|
|
123
|
-
_this.dispatchEvent(new
|
|
124
|
-
bubbles: true,
|
|
125
|
-
composed: true,
|
|
126
|
-
detail: {
|
|
127
|
-
complete: isComplete(_this._session, _this._model),
|
|
128
|
-
component: _this.tagName.toLowerCase(),
|
|
129
|
-
hasModel: _this._model !== undefined
|
|
130
|
-
}
|
|
131
|
-
}));
|
|
117
|
+
_this.dispatchEvent(new _piePlayerEvents.ModelSetEvent(_this.tagName.toLowerCase(), isComplete(_this._session, _this._model), _this._model !== undefined));
|
|
132
118
|
}, 50, {
|
|
133
119
|
leading: false,
|
|
134
120
|
trailing: true
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.js"],"names":["log","isComplete","session","model","value","choiceMode","minSelections","maxSelections","selections","length","MultipleChoice","_model","_session","_rerender","element","React","createElement","Main","onChoiceChanged","_onChange","bind","onShowCorrectToggle","setAttribute","setLangAttribute","ReactDOM","render","leading","trailing","_dispatchResponseChanged","
|
|
1
|
+
{"version":3,"sources":["../src/index.js"],"names":["log","isComplete","session","model","value","choiceMode","minSelections","maxSelections","selections","length","MultipleChoice","_model","_session","_rerender","element","React","createElement","Main","onChoiceChanged","_onChange","bind","onShowCorrectToggle","setAttribute","setLangAttribute","ReactDOM","render","leading","trailing","_dispatchResponseChanged","dispatchEvent","SessionChangedEvent","tagName","toLowerCase","_dispatchModelSet","ModelSetEvent","undefined","language","lang","slice","s","data","HTMLElement"],"mappings":"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","sourcesContent":["import Main from './main';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport debounce from 'lodash/debounce';\nimport debug from 'debug';\nimport { ModelSetEvent, SessionChangedEvent } from '@pie-framework/pie-player-events';\nimport { renderMath } from '@pie-lib/pie-toolbox/math-rendering';\nimport { updateSessionValue } from './session-updater';\n\nconst log = debug('pie-ui:multiple-choice');\n\nexport const isComplete = (session, model) => {\n if (!session || !session.value) {\n return false;\n }\n\n const { choiceMode, minSelections = 1, maxSelections } = model || {};\n const selections = session.value.length || 0;\n\n if (choiceMode === 'radio') {\n return !!selections;\n }\n\n if (selections < minSelections || selections > maxSelections) {\n return false;\n }\n\n return true;\n};\n\nexport default class MultipleChoice extends HTMLElement {\n constructor() {\n super();\n this._model = null;\n this._session = null;\n\n this._rerender = debounce(\n () => {\n if (this._model && this._session) {\n var element = React.createElement(Main, {\n model: this._model,\n session: this._session,\n onChoiceChanged: this._onChange.bind(this),\n onShowCorrectToggle: this.onShowCorrectToggle.bind(this),\n });\n\n //TODO: aria-label is set in the _rerender because we need to change it when the model.choiceMode is updated. Consider revisiting the placement of the aria-label setting in the _rerender\n this.setAttribute(\n 'aria-label',\n this._model.choiceMode === 'radio' ? 'Multiple Choice Question' : 'Multiple Correct Answer Question',\n );\n this.setAttribute('role', 'region');\n this.setLangAttribute();\n\n ReactDOM.render(element, this, () => {\n log('render complete - render math');\n renderMath(this);\n });\n } else {\n log('skip');\n }\n },\n 50,\n { leading: false, trailing: true },\n );\n\n this._dispatchResponseChanged = debounce(() => {\n this.dispatchEvent(new SessionChangedEvent(this.tagName.toLowerCase(), isComplete(this._session, this._model)));\n });\n\n this._dispatchModelSet = debounce(\n () => {\n this.dispatchEvent(\n new ModelSetEvent(\n this.tagName.toLowerCase(),\n isComplete(this._session, this._model),\n this._model !== undefined,\n ),\n );\n },\n 50,\n { leading: false, trailing: true },\n );\n }\n\n onShowCorrectToggle() {\n renderMath(this);\n }\n\n setLangAttribute() {\n const language = this._model && typeof this._model.language ? this._model.language : '';\n const lang = language ? language.slice(0, 2) : 'en';\n this.setAttribute('lang', lang);\n }\n\n set model(s) {\n this._model = s;\n this._rerender();\n this._dispatchModelSet();\n }\n\n get session() {\n return this._session;\n }\n\n set session(s) {\n this._session = s;\n this._rerender();\n //TODO: remove this session-changed should only be emit on user change\n this._dispatchResponseChanged();\n }\n\n _onChange(data) {\n updateSessionValue(this._session, this._model.choiceMode, data);\n this._dispatchResponseChanged();\n this._rerender();\n }\n\n connectedCallback() {\n this._rerender();\n }\n}\n"],"file":"index.js"}
|
package/module/element.js
CHANGED
|
@@ -1381,8 +1381,8 @@ function createMuiTheme() {
|
|
|
1381
1381
|
var _default$C = createMuiTheme;
|
|
1382
1382
|
createMuiTheme$1.default = _default$C;
|
|
1383
1383
|
var jssPreset$1 = {};
|
|
1384
|
+
var lib$8 = {};
|
|
1384
1385
|
var lib$7 = {};
|
|
1385
|
-
var lib$6 = {};
|
|
1386
1386
|
var getDynamicStyles = {};
|
|
1387
1387
|
(function (exports) {
|
|
1388
1388
|
Object.defineProperty(exports, "__esModule", {
|
|
@@ -3631,8 +3631,8 @@ getDefaultExportFromCjs(Jss);
|
|
|
3631
3631
|
return new _Jss2['default'](options);
|
|
3632
3632
|
};
|
|
3633
3633
|
exports['default'] = create();
|
|
3634
|
-
})(lib$
|
|
3635
|
-
getDefaultExportFromCjs(lib$
|
|
3634
|
+
})(lib$7);
|
|
3635
|
+
getDefaultExportFromCjs(lib$7);
|
|
3636
3636
|
(function (exports) {
|
|
3637
3637
|
Object.defineProperty(exports, "__esModule", {
|
|
3638
3638
|
value: true
|
|
@@ -3665,7 +3665,7 @@ getDefaultExportFromCjs(lib$6);
|
|
|
3665
3665
|
};
|
|
3666
3666
|
})();
|
|
3667
3667
|
exports['default'] = jssGlobal;
|
|
3668
|
-
var _jss = lib$
|
|
3668
|
+
var _jss = lib$7;
|
|
3669
3669
|
function _classCallCheck(instance, Constructor) {
|
|
3670
3670
|
if (!(instance instanceof Constructor)) {
|
|
3671
3671
|
throw new TypeError("Cannot call a class as a function");
|
|
@@ -3792,9 +3792,9 @@ getDefaultExportFromCjs(lib$6);
|
|
|
3792
3792
|
onProcessRule: onProcessRule
|
|
3793
3793
|
};
|
|
3794
3794
|
}
|
|
3795
|
-
})(lib$
|
|
3796
|
-
getDefaultExportFromCjs(lib$
|
|
3797
|
-
var lib$
|
|
3795
|
+
})(lib$8);
|
|
3796
|
+
getDefaultExportFromCjs(lib$8);
|
|
3797
|
+
var lib$6 = {};
|
|
3798
3798
|
var warning = function () {};
|
|
3799
3799
|
{
|
|
3800
3800
|
warning = function (condition, format, args) {
|
|
@@ -3824,7 +3824,7 @@ var warning = function () {};
|
|
|
3824
3824
|
};
|
|
3825
3825
|
}
|
|
3826
3826
|
var browser = warning;
|
|
3827
|
-
Object.defineProperty(lib$
|
|
3827
|
+
Object.defineProperty(lib$6, "__esModule", {
|
|
3828
3828
|
value: true
|
|
3829
3829
|
});
|
|
3830
3830
|
var _extends = Object.assign || (function (target) {
|
|
@@ -3838,7 +3838,7 @@ var _extends = Object.assign || (function (target) {
|
|
|
3838
3838
|
}
|
|
3839
3839
|
return target;
|
|
3840
3840
|
});
|
|
3841
|
-
lib$
|
|
3841
|
+
lib$6.default = jssNested;
|
|
3842
3842
|
var _warning$6 = browser;
|
|
3843
3843
|
var _warning2 = _interopRequireDefault$A(_warning$6);
|
|
3844
3844
|
function _interopRequireDefault$A(obj) {
|
|
@@ -3916,7 +3916,7 @@ function jssNested() {
|
|
|
3916
3916
|
onProcessStyle: onProcessStyle
|
|
3917
3917
|
};
|
|
3918
3918
|
}
|
|
3919
|
-
var lib$
|
|
3919
|
+
var lib$5 = {};
|
|
3920
3920
|
var uppercasePattern = /[A-Z]/g;
|
|
3921
3921
|
var msPattern = /^ms-/;
|
|
3922
3922
|
var cache = {};
|
|
@@ -3978,9 +3978,9 @@ var require$$0$6 = getAugmentedNamespace(hyphenateStyleName$1);
|
|
|
3978
3978
|
onChangeValue: onChangeValue
|
|
3979
3979
|
};
|
|
3980
3980
|
}
|
|
3981
|
-
})(lib$
|
|
3982
|
-
getDefaultExportFromCjs(lib$
|
|
3983
|
-
var lib$
|
|
3981
|
+
})(lib$5);
|
|
3982
|
+
getDefaultExportFromCjs(lib$5);
|
|
3983
|
+
var lib$4 = {};
|
|
3984
3984
|
var defaultUnits = {};
|
|
3985
3985
|
(function (exports) {
|
|
3986
3986
|
Object.defineProperty(exports, "__esModule", {
|
|
@@ -4171,10 +4171,10 @@ getDefaultExportFromCjs(defaultUnits);
|
|
|
4171
4171
|
onChangeValue: onChangeValue
|
|
4172
4172
|
};
|
|
4173
4173
|
}
|
|
4174
|
-
})(lib$
|
|
4175
|
-
getDefaultExportFromCjs(lib$
|
|
4174
|
+
})(lib$4);
|
|
4175
|
+
getDefaultExportFromCjs(lib$4);
|
|
4176
|
+
var lib$3 = {};
|
|
4176
4177
|
var lib$2 = {};
|
|
4177
|
-
var lib$1 = {};
|
|
4178
4178
|
var prefix = {};
|
|
4179
4179
|
(function (exports) {
|
|
4180
4180
|
Object.defineProperty(exports, "__esModule", {
|
|
@@ -4334,14 +4334,14 @@ getDefaultExportFromCjs(supportedValue);
|
|
|
4334
4334
|
exports.prefix = _prefix2['default'];
|
|
4335
4335
|
exports.supportedProperty = _supportedProperty2['default'];
|
|
4336
4336
|
exports.supportedValue = _supportedValue2['default'];
|
|
4337
|
-
})(lib$
|
|
4338
|
-
getDefaultExportFromCjs(lib$
|
|
4337
|
+
})(lib$2);
|
|
4338
|
+
getDefaultExportFromCjs(lib$2);
|
|
4339
4339
|
(function (exports) {
|
|
4340
4340
|
Object.defineProperty(exports, "__esModule", {
|
|
4341
4341
|
value: true
|
|
4342
4342
|
});
|
|
4343
4343
|
exports['default'] = jssVendorPrefixer;
|
|
4344
|
-
var _cssVendor = lib$
|
|
4344
|
+
var _cssVendor = lib$2;
|
|
4345
4345
|
var vendor = _interopRequireWildcard(_cssVendor);
|
|
4346
4346
|
function _interopRequireWildcard(obj) {
|
|
4347
4347
|
if (obj && obj.__esModule) {
|
|
@@ -4389,9 +4389,9 @@ getDefaultExportFromCjs(lib$1);
|
|
|
4389
4389
|
onChangeValue: onChangeValue
|
|
4390
4390
|
};
|
|
4391
4391
|
}
|
|
4392
|
-
})(lib$
|
|
4393
|
-
getDefaultExportFromCjs(lib$
|
|
4394
|
-
var lib = {};
|
|
4392
|
+
})(lib$3);
|
|
4393
|
+
getDefaultExportFromCjs(lib$3);
|
|
4394
|
+
var lib$1 = {};
|
|
4395
4395
|
(function (exports) {
|
|
4396
4396
|
Object.defineProperty(exports, "__esModule", {
|
|
4397
4397
|
value: true
|
|
@@ -4414,19 +4414,19 @@ var lib = {};
|
|
|
4414
4414
|
onProcessStyle: onProcessStyle
|
|
4415
4415
|
};
|
|
4416
4416
|
}
|
|
4417
|
-
})(lib);
|
|
4418
|
-
getDefaultExportFromCjs(lib);
|
|
4417
|
+
})(lib$1);
|
|
4418
|
+
getDefaultExportFromCjs(lib$1);
|
|
4419
4419
|
var _interopRequireDefault$z = interopRequireDefault.exports;
|
|
4420
4420
|
Object.defineProperty(jssPreset$1, "__esModule", {
|
|
4421
4421
|
value: true
|
|
4422
4422
|
});
|
|
4423
4423
|
jssPreset$1.default = void 0;
|
|
4424
|
-
var _jssGlobal = _interopRequireDefault$z(lib$
|
|
4425
|
-
var _jssNested = _interopRequireDefault$z(lib$
|
|
4426
|
-
var _jssCamelCase = _interopRequireDefault$z(lib$
|
|
4427
|
-
var _jssDefaultUnit = _interopRequireDefault$z(lib$
|
|
4428
|
-
var _jssVendorPrefixer = _interopRequireDefault$z(lib$
|
|
4429
|
-
var _jssPropsSort = _interopRequireDefault$z(lib);
|
|
4424
|
+
var _jssGlobal = _interopRequireDefault$z(lib$8);
|
|
4425
|
+
var _jssNested = _interopRequireDefault$z(lib$6);
|
|
4426
|
+
var _jssCamelCase = _interopRequireDefault$z(lib$5);
|
|
4427
|
+
var _jssDefaultUnit = _interopRequireDefault$z(lib$4);
|
|
4428
|
+
var _jssVendorPrefixer = _interopRequireDefault$z(lib$3);
|
|
4429
|
+
var _jssPropsSort = _interopRequireDefault$z(lib$1);
|
|
4430
4430
|
function jssPreset() {
|
|
4431
4431
|
return {
|
|
4432
4432
|
plugins: [(0, _jssGlobal.default)(), (0, _jssNested.default)(), (0, _jssCamelCase.default)(), (0, _jssDefaultUnit.default)(), typeof window === 'undefined' ? null : (0, _jssVendorPrefixer.default)(), (0, _jssPropsSort.default)()]
|
|
@@ -5026,7 +5026,7 @@ var _propTypes$d = _interopRequireDefault$u(require$$10$4);
|
|
|
5026
5026
|
var _warning$2 = _interopRequireDefault$u(warning_1);
|
|
5027
5027
|
var _hoistNonReactStatics$2 = _interopRequireDefault$u(hoistNonReactStatics_cjs);
|
|
5028
5028
|
var _utils$7 = require$$7$1;
|
|
5029
|
-
var _jss = lib$
|
|
5029
|
+
var _jss = lib$7;
|
|
5030
5030
|
var _reactJssContext = _interopRequireDefault$u(reactJssContext);
|
|
5031
5031
|
var _jssPreset = _interopRequireDefault$u(jssPreset$1);
|
|
5032
5032
|
var _mergeClasses = _interopRequireDefault$u(mergeClasses$1);
|
|
@@ -13003,6 +13003,43 @@ const Root = props => React$1.createElement(styles$b.MuiThemeProvider, {
|
|
|
13003
13003
|
lineNumber: 59
|
|
13004
13004
|
}
|
|
13005
13005
|
}));
|
|
13006
|
+
var lib = {};
|
|
13007
|
+
Object.defineProperty(lib, "__esModule", {
|
|
13008
|
+
value: true
|
|
13009
|
+
});
|
|
13010
|
+
class ModelSetEvent extends CustomEvent {
|
|
13011
|
+
constructor(component, complete, hasModel) {
|
|
13012
|
+
super(ModelSetEvent.TYPE, {
|
|
13013
|
+
bubbles: true,
|
|
13014
|
+
composed: true,
|
|
13015
|
+
detail: {
|
|
13016
|
+
complete,
|
|
13017
|
+
component,
|
|
13018
|
+
hasModel
|
|
13019
|
+
}
|
|
13020
|
+
});
|
|
13021
|
+
this.component = component;
|
|
13022
|
+
this.complete = complete;
|
|
13023
|
+
}
|
|
13024
|
+
}
|
|
13025
|
+
ModelSetEvent.TYPE = 'model-set';
|
|
13026
|
+
var ModelSetEvent_1 = lib.ModelSetEvent = ModelSetEvent;
|
|
13027
|
+
class SessionChangedEvent extends CustomEvent {
|
|
13028
|
+
constructor(component, complete) {
|
|
13029
|
+
super(SessionChangedEvent.TYPE, {
|
|
13030
|
+
bubbles: true,
|
|
13031
|
+
composed: true,
|
|
13032
|
+
detail: {
|
|
13033
|
+
complete,
|
|
13034
|
+
component
|
|
13035
|
+
}
|
|
13036
|
+
});
|
|
13037
|
+
this.component = component;
|
|
13038
|
+
this.complete = complete;
|
|
13039
|
+
}
|
|
13040
|
+
}
|
|
13041
|
+
SessionChangedEvent.TYPE = 'session-changed';
|
|
13042
|
+
var SessionChangedEvent_1 = lib.SessionChangedEvent = SessionChangedEvent;
|
|
13006
13043
|
const {concat: concat} = _dll_lodash;
|
|
13007
13044
|
const {uniq: uniq} = _dll_lodash;
|
|
13008
13045
|
const {without: without} = _dll_lodash;
|
|
@@ -13033,7 +13070,7 @@ const isComplete = (session, model) => {
|
|
|
13033
13070
|
if (!session || !session.value) {
|
|
13034
13071
|
return false;
|
|
13035
13072
|
}
|
|
13036
|
-
const {choiceMode, minSelections, maxSelections} = model || ({});
|
|
13073
|
+
const {choiceMode, minSelections = 1, maxSelections} = model || ({});
|
|
13037
13074
|
const selections = session.value.length || 0;
|
|
13038
13075
|
if (choiceMode === 'radio') {
|
|
13039
13076
|
return !!selections;
|
|
@@ -13071,26 +13108,10 @@ class MultipleChoice extends HTMLElement {
|
|
|
13071
13108
|
trailing: true
|
|
13072
13109
|
});
|
|
13073
13110
|
this._dispatchResponseChanged = debounce(() => {
|
|
13074
|
-
|
|
13075
|
-
bubbles: true,
|
|
13076
|
-
composed: true,
|
|
13077
|
-
detail: {
|
|
13078
|
-
complete: isComplete(this._session, this._model),
|
|
13079
|
-
component: this.tagName.toLowerCase()
|
|
13080
|
-
}
|
|
13081
|
-
});
|
|
13082
|
-
this.dispatchEvent(event);
|
|
13111
|
+
this.dispatchEvent(new SessionChangedEvent_1(this.tagName.toLowerCase(), isComplete(this._session, this._model)));
|
|
13083
13112
|
});
|
|
13084
13113
|
this._dispatchModelSet = debounce(() => {
|
|
13085
|
-
this.dispatchEvent(new
|
|
13086
|
-
bubbles: true,
|
|
13087
|
-
composed: true,
|
|
13088
|
-
detail: {
|
|
13089
|
-
complete: isComplete(this._session, this._model),
|
|
13090
|
-
component: this.tagName.toLowerCase(),
|
|
13091
|
-
hasModel: this._model !== undefined
|
|
13092
|
-
}
|
|
13093
|
-
}));
|
|
13114
|
+
this.dispatchEvent(new ModelSetEvent_1(this.tagName.toLowerCase(), isComplete(this._session, this._model), this._model !== undefined));
|
|
13094
13115
|
}, 50, {
|
|
13095
13116
|
leading: false,
|
|
13096
13117
|
trailing: true
|
package/package.json
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-element/multiple-choice",
|
|
3
3
|
"repository": "pie-framework/pie-elements",
|
|
4
|
-
"version": "9.7.2-next.
|
|
4
|
+
"version": "9.7.2-next.20+e7e5cd4eb",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
8
8
|
"dependencies": {
|
|
9
9
|
"@material-ui/core": "^3.9.2",
|
|
10
|
+
"@pie-framework/pie-player-events": "^0.1.0",
|
|
10
11
|
"@pie-lib/pie-toolbox": "2.6.1",
|
|
11
12
|
"classnames": "^2.2.5",
|
|
12
13
|
"debug": "^4.1.1",
|
|
@@ -18,7 +19,7 @@
|
|
|
18
19
|
"react-test-renderer": "^16.3.2",
|
|
19
20
|
"react-transition-group": "^2.3.1"
|
|
20
21
|
},
|
|
21
|
-
"gitHead": "
|
|
22
|
+
"gitHead": "e7e5cd4eb2d1360d4b18ff8f0756cff448dc1574",
|
|
22
23
|
"scripts": {
|
|
23
24
|
"postpublish": "../../scripts/postpublish"
|
|
24
25
|
},
|