@pie-element/drag-in-the-blank 3.13.5 → 3.13.8
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/CHANGELOG.md +24 -0
- package/configure/CHANGELOG.md +24 -0
- package/configure/lib/choice.js +1 -1
- package/configure/lib/choices.js +2 -2
- package/configure/lib/defaults.js +2 -2
- package/configure/lib/defaults.js.map +1 -1
- package/configure/lib/index.js +2 -2
- package/configure/lib/main.js +2 -2
- package/configure/lib/markupUtils.js +1 -1
- package/configure/package.json +4 -4
- package/controller/lib/index.js +4 -3
- package/controller/lib/index.js.map +1 -1
- package/controller/lib/utils.js +1 -1
- package/docs/pie-schema.json +1 -1
- package/docs/pie-schema.json.md +1 -1
- package/lib/index.js.map +1 -1
- package/lib/main.js +2 -2
- package/package.json +6 -6
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,30 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [3.13.8](https://github.com/pie-framework/pie-elements/compare/@pie-element/drag-in-the-blank@3.13.7...@pie-element/drag-in-the-blank@3.13.8) (2022-05-03)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @pie-element/drag-in-the-blank
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## [3.13.7](https://github.com/pie-framework/pie-elements/compare/@pie-element/drag-in-the-blank@3.13.6...@pie-element/drag-in-the-blank@3.13.7) (2022-04-12)
|
|
15
|
+
|
|
16
|
+
**Note:** Version bump only for package @pie-element/drag-in-the-blank
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
## [3.13.6](https://github.com/pie-framework/pie-elements/compare/@pie-element/drag-in-the-blank@3.13.5...@pie-element/drag-in-the-blank@3.13.6) (2022-03-28)
|
|
23
|
+
|
|
24
|
+
**Note:** Version bump only for package @pie-element/drag-in-the-blank
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
6
30
|
## [3.13.5](https://github.com/pie-framework/pie-elements/compare/@pie-element/drag-in-the-blank@3.13.4...@pie-element/drag-in-the-blank@3.13.5) (2022-03-22)
|
|
7
31
|
|
|
8
32
|
**Note:** Version bump only for package @pie-element/drag-in-the-blank
|
package/configure/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,30 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [3.6.21](https://github.com/pie-framework/pie-elements/compare/@pie-element/drag-in-the-blank-configure@3.6.20...@pie-element/drag-in-the-blank-configure@3.6.21) (2022-05-03)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @pie-element/drag-in-the-blank-configure
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## [3.6.20](https://github.com/pie-framework/pie-elements/compare/@pie-element/drag-in-the-blank-configure@3.6.19...@pie-element/drag-in-the-blank-configure@3.6.20) (2022-04-12)
|
|
15
|
+
|
|
16
|
+
**Note:** Version bump only for package @pie-element/drag-in-the-blank-configure
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
## [3.6.19](https://github.com/pie-framework/pie-elements/compare/@pie-element/drag-in-the-blank-configure@3.6.18...@pie-element/drag-in-the-blank-configure@3.6.19) (2022-03-28)
|
|
23
|
+
|
|
24
|
+
**Note:** Version bump only for package @pie-element/drag-in-the-blank-configure
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
6
30
|
## [3.6.18](https://github.com/pie-framework/pie-elements/compare/@pie-element/drag-in-the-blank-configure@3.6.17...@pie-element/drag-in-the-blank-configure@3.6.18) (2022-03-22)
|
|
7
31
|
|
|
8
32
|
**Note:** Version bump only for package @pie-element/drag-in-the-blank-configure
|
package/configure/lib/choice.js
CHANGED
|
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports["default"] = exports.
|
|
8
|
+
exports.tileSource = exports["default"] = exports.BlankContent = void 0;
|
|
9
9
|
|
|
10
10
|
var _react = _interopRequireDefault(require("react"));
|
|
11
11
|
|
package/configure/lib/choices.js
CHANGED
|
@@ -49,9 +49,9 @@ var _DialogTitle = _interopRequireDefault(require("@material-ui/core/DialogTitle
|
|
|
49
49
|
|
|
50
50
|
var _DialogActions = _interopRequireDefault(require("@material-ui/core/DialogActions"));
|
|
51
51
|
|
|
52
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
52
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
53
53
|
|
|
54
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
54
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
55
55
|
|
|
56
56
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
57
57
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/defaults.js"],"names":["model","disabled","mode","prompt","markup","choices","choicesPosition","correctResponse","duplicates","rationaleEnabled","promptEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","toolbarEditorPosition","configuration","spellCheck","label","settings","enabled","lockChoiceOrder","partialScoring","rationale","teacherInstructions"],"mappings":";;;;;;eAAe;AACbA,EAAAA,KAAK,EAAE;AACLC,IAAAA,QAAQ,EAAE,KADL;AAELC,IAAAA,IAAI,EAAE,QAFD;AAGLC,IAAAA,MAAM,EAAE,yCAHH;AAILC,IAAAA,MAAM,EAAE,EAJH;AAKLC,IAAAA,OAAO,EAAE,EALJ;AAMLC,IAAAA,eAAe,EAAE,OANZ;AAOLC,IAAAA,eAAe,EAAE,EAPZ;AAQLC,IAAAA,UAAU,EAAE,IARP;AASLC,IAAAA,gBAAgB,EAAE,IATb;AAULC,IAAAA,aAAa,EAAE,IAVV;AAWLC,IAAAA,0BAA0B,EAAE,IAXvB;AAYLC,IAAAA,0BAA0B,EAAE,IAZvB;AAaLC,IAAAA,qBAAqB,EAAE;AAblB,GADM;AAgBbC,EAAAA,aAAa,EAAE;AACbC,IAAAA,UAAU,EAAE;AACVC,MAAAA,KAAK,EAAE,YADG;AAEVC,MAAAA,QAAQ,
|
|
1
|
+
{"version":3,"sources":["../src/defaults.js"],"names":["model","disabled","mode","prompt","markup","choices","choicesPosition","correctResponse","duplicates","rationaleEnabled","promptEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","toolbarEditorPosition","configuration","spellCheck","label","settings","enabled","lockChoiceOrder","partialScoring","rationale","teacherInstructions"],"mappings":";;;;;;eAAe;AACbA,EAAAA,KAAK,EAAE;AACLC,IAAAA,QAAQ,EAAE,KADL;AAELC,IAAAA,IAAI,EAAE,QAFD;AAGLC,IAAAA,MAAM,EAAE,yCAHH;AAILC,IAAAA,MAAM,EAAE,EAJH;AAKLC,IAAAA,OAAO,EAAE,EALJ;AAMLC,IAAAA,eAAe,EAAE,OANZ;AAOLC,IAAAA,eAAe,EAAE,EAPZ;AAQLC,IAAAA,UAAU,EAAE,IARP;AASLC,IAAAA,gBAAgB,EAAE,IATb;AAULC,IAAAA,aAAa,EAAE,IAVV;AAWLC,IAAAA,0BAA0B,EAAE,IAXvB;AAYLC,IAAAA,0BAA0B,EAAE,IAZvB;AAaLC,IAAAA,qBAAqB,EAAE;AAblB,GADM;AAgBbC,EAAAA,aAAa,EAAE;AACbC,IAAAA,UAAU,EAAE;AACVC,MAAAA,KAAK,EAAE,YADG;AAEVC,MAAAA,QAAQ,EAAE,KAFA;AAGVC,MAAAA,OAAO,EAAC;AAHE,KADC;AAMbZ,IAAAA,eAAe,EAAE;AACfW,MAAAA,QAAQ,EAAE,IADK;AAEfD,MAAAA,KAAK,EAAE;AAFQ,KANJ;AAUbb,IAAAA,MAAM,EAAE;AACNc,MAAAA,QAAQ,EAAE,IADJ;AAEND,MAAAA,KAAK,EAAE;AAFD,KAVK;AAcbR,IAAAA,UAAU,EAAE;AACVS,MAAAA,QAAQ,EAAE,IADA;AAEVD,MAAAA,KAAK,EAAE;AAFG,KAdC;AAkBbG,IAAAA,eAAe,EAAE;AACfF,MAAAA,QAAQ,EAAE,IADK;AAEfD,MAAAA,KAAK,EAAE;AAFQ,KAlBJ;AAsBbI,IAAAA,cAAc,EAAE;AACdH,MAAAA,QAAQ,EAAE,KADI;AAEdD,MAAAA,KAAK,EAAE;AAFO,KAtBH;AA0BbK,IAAAA,SAAS,EAAE;AACTJ,MAAAA,QAAQ,EAAE,IADD;AAETD,MAAAA,KAAK,EAAE;AAFE,KA1BE;AA8BbM,IAAAA,mBAAmB,EAAE;AACnBL,MAAAA,QAAQ,EAAE,IADS;AAEnBD,MAAAA,KAAK,EAAE;AAFY;AA9BR;AAhBF,C","sourcesContent":["export default {\n model: {\n disabled: false,\n mode: 'gather',\n prompt: 'Use the inputs to complete the sentence',\n markup: '',\n choices: [],\n choicesPosition: 'below',\n correctResponse: {},\n duplicates: true,\n rationaleEnabled: true,\n promptEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n toolbarEditorPosition: 'bottom',\n },\n configuration: {\n spellCheck: {\n label: 'Spellcheck',\n settings: false,\n enabled:true\n },\n choicesPosition: {\n settings: true,\n label: 'Choices Position'\n },\n prompt: {\n settings: true,\n label: 'Prompt'\n },\n duplicates: {\n settings: true,\n label: 'Duplicates'\n },\n lockChoiceOrder: {\n settings: true,\n label: 'Lock Choice Order'\n },\n partialScoring: {\n settings: false,\n label: 'Allow Partial Scoring'\n },\n rationale: {\n settings: true,\n label: 'Rationale'\n },\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions'\n }\n }\n};\n"],"file":"defaults.js"}
|
package/configure/lib/index.js
CHANGED
|
@@ -39,9 +39,9 @@ var _defaults2 = _interopRequireDefault(require("./defaults"));
|
|
|
39
39
|
|
|
40
40
|
var _markupUtils = require("./markupUtils");
|
|
41
41
|
|
|
42
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
42
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
43
43
|
|
|
44
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
44
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
45
45
|
|
|
46
46
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
47
47
|
|
package/configure/lib/main.js
CHANGED
|
@@ -49,9 +49,9 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
49
49
|
|
|
50
50
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
51
51
|
|
|
52
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
52
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
53
53
|
|
|
54
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
54
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
55
55
|
|
|
56
56
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
57
57
|
|
|
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.
|
|
8
|
+
exports.removeUnwantedCharacters = exports.processMarkup = exports.createSlateMarkup = exports.createElementFromHTML = exports.choiceIsEmpty = void 0;
|
|
9
9
|
|
|
10
10
|
var _escape = _interopRequireDefault(require("lodash/escape"));
|
|
11
11
|
|
package/configure/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-element/drag-in-the-blank-configure",
|
|
3
|
-
"version": "3.6.
|
|
3
|
+
"version": "3.6.21",
|
|
4
4
|
"private": true,
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "src/index.js",
|
|
@@ -8,10 +8,10 @@
|
|
|
8
8
|
"@material-ui/core": "^3.9.2",
|
|
9
9
|
"@material-ui/icons": "^3.0.1",
|
|
10
10
|
"@pie-framework/pie-configure-events": "^1.2.0",
|
|
11
|
-
"@pie-lib/config-ui": "^10.
|
|
11
|
+
"@pie-lib/config-ui": "^10.12.1",
|
|
12
12
|
"@pie-lib/drag": "^1.1.52",
|
|
13
|
-
"@pie-lib/editable-html": "^7.
|
|
14
|
-
"@pie-lib/math-rendering": "^2.
|
|
13
|
+
"@pie-lib/editable-html": "^7.22.1",
|
|
14
|
+
"@pie-lib/math-rendering": "^2.4.0",
|
|
15
15
|
"debug": "^3.1.0",
|
|
16
16
|
"lodash": "^4.17.15",
|
|
17
17
|
"prop-types": "^15.6.2",
|
package/controller/lib/index.js
CHANGED
|
@@ -5,9 +5,10 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
+
exports.getScore = exports.createCorrectResponseSession = void 0;
|
|
8
9
|
exports.model = model;
|
|
10
|
+
exports.normalize = void 0;
|
|
9
11
|
exports.outcome = outcome;
|
|
10
|
-
exports.createCorrectResponseSession = exports.getScore = exports.normalize = void 0;
|
|
11
12
|
|
|
12
13
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
13
14
|
|
|
@@ -23,9 +24,9 @@ var _utils = require("./utils");
|
|
|
23
24
|
|
|
24
25
|
var _controllerUtils = require("@pie-lib/controller-utils");
|
|
25
26
|
|
|
26
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
27
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
27
28
|
|
|
28
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
29
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
29
30
|
|
|
30
31
|
var normalize = function normalize(question) {
|
|
31
32
|
return _objectSpread({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.js"],"names":["normalize","question","rationaleEnabled","promptEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","model","session","env","updateSession","Promise","resolve","normalizedQuestion","feedback","mode","responses","allCorrectResponses","possibleResponses","numberOfPossibleResponses","correctResponses","undefined","value","i","result","obj","choices","key","answer","filter","choice","lockChoiceOrder","out","prompt","disabled","responseCorrect","getScore","role","rationale","teacherInstructions","config","maxScore","Object","keys","correctResponse","length","correctCount","total","str","toFixed","parseFloat","outcome","partialScoringEnabled","partialScoring","enabled","score","empty","createCorrectResponseSession","id"],"mappings":"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","sourcesContent":["import reduce from 'lodash/reduce';\nimport isEmpty from 'lodash/isEmpty';\nimport { getAllCorrectResponses, choiceIsEmpty } from './utils';\nimport { lockChoices, getShuffledChoices, partialScoring } from '@pie-lib/controller-utils';\n\nexport const normalize = question => ({\n rationaleEnabled: true,\n promptEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n ...question,\n});\n\n/**\n *\n * @param {*} question\n * @param {*} session\n * @param {*} env\n * @param {*} updateSession - optional - a function that will set the properties passed into it on the session.\n */\nexport function model(question, session, env, updateSession) {\n return new Promise(async resolve => {\n const normalizedQuestion = normalize(question);\n let feedback = {};\n\n if (env.mode === 'evaluate') {\n const responses = getAllCorrectResponses(normalizedQuestion) || {};\n const allCorrectResponses = responses.possibleResponses;\n const numberOfPossibleResponses = responses.numberOfPossibleResponses || 0;\n let correctResponses = undefined;\n const { value } = session || {};\n\n for (let i = 0; i < numberOfPossibleResponses; i++) {\n const result = reduce(allCorrectResponses, (obj, choices, key) => {\n const answer = (value && value[key]) || '';\n\n obj.feedback[key] = choices[i] === answer;\n\n if (obj.feedback[key]) {\n obj.correctResponses += 1;\n }\n\n return obj;\n }, { correctResponses: 0, feedback: {} });\n\n if (correctResponses === undefined || result.correctResponses > correctResponses) {\n correctResponses = result.correctResponses;\n feedback = result.feedback;\n }\n\n if (result.correctResponses === numberOfPossibleResponses) {\n break;\n }\n }\n }\n\n let choices = normalizedQuestion.choices && normalizedQuestion.choices.filter(choice => !choiceIsEmpty(choice));\n\n const lockChoiceOrder = lockChoices(normalizedQuestion, session, env);\n\n if (!lockChoiceOrder) {\n choices = await getShuffledChoices(choices, session, updateSession, 'id');\n }\n\n const out = {\n ...normalizedQuestion,\n prompt: normalizedQuestion.promptEnabled ? normalizedQuestion.prompt : null,\n choices,\n feedback,\n mode: env.mode,\n disabled: env.mode !== 'gather',\n responseCorrect:\n env.mode === 'evaluate'\n ? getScore(normalizedQuestion, session) === 1\n : undefined,\n };\n\n if (\n env.role === 'instructor' &&\n (env.mode === 'view' || env.mode === 'evaluate')\n ) {\n out.rationale = normalizedQuestion.rationaleEnabled ? normalizedQuestion.rationale : null;\n out.teacherInstructions = normalizedQuestion.teacherInstructionsEnabled ? normalizedQuestion.teacherInstructions : null;\n } else {\n out.rationale = null;\n out.teacherInstructions = null;\n }\n\n resolve(out);\n });\n}\n\nexport const getScore = (config, session) => {\n const responses = getAllCorrectResponses(config);\n const allCorrectResponses = responses.possibleResponses;\n const maxScore = Object.keys(config.correctResponse).length;\n const numberOfPossibleResponses = responses.numberOfPossibleResponses || 0;\n let correctCount = 0;\n const { value } = session || {};\n\n for (let i = 0; i < numberOfPossibleResponses; i++) {\n const result = reduce(allCorrectResponses, (total, choices, key) => {\n const answer = (value && value[key]) || '';\n\n if (choices[i] === answer) {\n return total;\n }\n\n return total - 1;\n }, maxScore);\n\n if (result > correctCount) {\n correctCount = result;\n }\n\n if (result === maxScore) {\n break;\n }\n }\n\n const str = maxScore ? (correctCount / maxScore).toFixed(2) : 0;\n\n return parseFloat(str);\n};\n\n/**\n *\n * The score is partial by default for checkbox mode, allOrNothing for radio mode.\n * To disable partial scoring for checkbox mode you either set model.partialScoring = false or env.partialScoring =\n * false. the value in `env` will override the value in `model`.\n * @param {Object} model - the main model\n * @param {boolean} model.partialScoring - is partial scoring enabled (if undefined set to to true)\n * @param {*} session\n * @param {Object} env\n * @param {boolean} env.partialScoring - is partial scoring enabled (if undefined default to true) This overrides\n * `model.partialScoring`.\n */\nexport function outcome(model, session, env = {}) {\n return new Promise(resolve => {\n const partialScoringEnabled = partialScoring.enabled(model, env);\n const score = getScore(model, session);\n\n resolve({\n score: partialScoringEnabled ? score : score === 1 ? 1 : 0,\n empty: !session || isEmpty(session)\n });\n });\n}\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise(resolve => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n resolve({\n value: question.correctResponse,\n id: '1'\n });\n } else {\n resolve(null);\n }\n });\n};\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../src/index.js"],"names":["normalize","question","rationaleEnabled","promptEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","model","session","env","updateSession","Promise","resolve","normalizedQuestion","feedback","mode","responses","allCorrectResponses","possibleResponses","numberOfPossibleResponses","correctResponses","undefined","value","i","result","obj","choices","key","answer","filter","choice","lockChoiceOrder","out","prompt","disabled","responseCorrect","getScore","role","rationale","teacherInstructions","config","maxScore","Object","keys","correctResponse","length","correctCount","total","str","toFixed","parseFloat","outcome","partialScoringEnabled","partialScoring","enabled","score","empty","createCorrectResponseSession","id"],"mappings":"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","sourcesContent":["import reduce from 'lodash/reduce';\nimport isEmpty from 'lodash/isEmpty';\nimport { getAllCorrectResponses, choiceIsEmpty } from './utils';\nimport { lockChoices, getShuffledChoices, partialScoring } from '@pie-lib/controller-utils';\n\nexport const normalize = question => ({\n rationaleEnabled: true,\n promptEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n ...question,\n});\n\n/**\n *\n * @param {*} question\n * @param {*} session\n * @param {*} env\n * @param {*} updateSession - optional - a function that will set the properties passed into it on the session.\n */\nexport function model(question, session, env, updateSession) {\n return new Promise(async resolve => {\n const normalizedQuestion = normalize(question);\n let feedback = {};\n\n if (env.mode === 'evaluate') {\n const responses = getAllCorrectResponses(normalizedQuestion) || {};\n const allCorrectResponses = responses.possibleResponses;\n const numberOfPossibleResponses = responses.numberOfPossibleResponses || 0;\n let correctResponses = undefined;\n const { value } = session || {};\n\n for (let i = 0; i < numberOfPossibleResponses; i++) {\n const result = reduce(allCorrectResponses, (obj, choices, key) => {\n const answer = (value && value[key]) || '';\n\n obj.feedback[key] = choices[i] === answer;\n\n if (obj.feedback[key]) {\n obj.correctResponses += 1;\n }\n\n return obj;\n }, { correctResponses: 0, feedback: {} });\n\n if (correctResponses === undefined || result.correctResponses > correctResponses) {\n correctResponses = result.correctResponses;\n feedback = result.feedback;\n }\n\n if (result.correctResponses === numberOfPossibleResponses) {\n break;\n }\n }\n }\n\n let choices = normalizedQuestion.choices && normalizedQuestion.choices.filter(choice => !choiceIsEmpty(choice));\n\n const lockChoiceOrder = lockChoices(normalizedQuestion, session, env);\n\n if (!lockChoiceOrder) {\n choices = await getShuffledChoices(choices, session, updateSession, 'id');\n }\n\n const out = {\n ...normalizedQuestion,\n prompt: normalizedQuestion.promptEnabled ? normalizedQuestion.prompt : null,\n choices,\n feedback,\n mode: env.mode,\n disabled: env.mode !== 'gather',\n responseCorrect:\n env.mode === 'evaluate'\n ? getScore(normalizedQuestion, session) === 1\n : undefined,\n };\n\n if (\n env.role === 'instructor' &&\n (env.mode === 'view' || env.mode === 'evaluate')\n ) {\n out.rationale = normalizedQuestion.rationaleEnabled ? normalizedQuestion.rationale : null;\n out.teacherInstructions = normalizedQuestion.teacherInstructionsEnabled ? normalizedQuestion.teacherInstructions : null;\n } else {\n out.rationale = null;\n out.teacherInstructions = null;\n }\n\n resolve(out);\n });\n}\n\nexport const getScore = (config, session) => {\n const responses = getAllCorrectResponses(config);\n const allCorrectResponses = responses.possibleResponses;\n const maxScore = Object.keys(config.correctResponse).length;\n const numberOfPossibleResponses = responses.numberOfPossibleResponses || 0;\n let correctCount = 0;\n const { value } = session || {};\n\n for (let i = 0; i < numberOfPossibleResponses; i++) {\n const result = reduce(allCorrectResponses, (total, choices, key) => {\n const answer = (value && value[key]) || '';\n\n if (choices[i] === answer) {\n return total;\n }\n\n return total - 1;\n }, maxScore);\n\n if (result > correctCount) {\n correctCount = result;\n }\n\n if (result === maxScore) {\n break;\n }\n }\n\n const str = maxScore ? (correctCount / maxScore).toFixed(2) : 0;\n\n return parseFloat(str);\n};\n\n/**\n *\n * The score is partial by default for checkbox mode, allOrNothing for radio mode.\n * To disable partial scoring for checkbox mode you either set model.partialScoring = false or env.partialScoring =\n * false. the value in `env` will override the value in `model`.\n * @param {Object} model - the main model\n * @param {boolean} model.partialScoring - is partial scoring enabled (if undefined set to to true)\n * @param {*} session\n * @param {Object} env\n * @param {boolean} env.partialScoring - is partial scoring enabled (if undefined default to true) This overrides\n * `model.partialScoring`.\n */\nexport function outcome(model, session, env = {}) {\n return new Promise(resolve => {\n const partialScoringEnabled = partialScoring.enabled(model, env);\n const score = getScore(model, session);\n\n resolve({\n score: partialScoringEnabled ? score : score === 1 ? 1 : 0,\n empty: !session || isEmpty(session)\n });\n });\n}\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise(resolve => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n resolve({\n value: question.correctResponse,\n id: '1'\n });\n } else {\n resolve(null);\n }\n });\n};\n"],"file":"index.js"}
|
package/controller/lib/utils.js
CHANGED
|
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.
|
|
8
|
+
exports.getAllCorrectResponses = exports.choiceIsEmpty = void 0;
|
|
9
9
|
|
|
10
10
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
11
11
|
|
package/docs/pie-schema.json
CHANGED
|
@@ -116,7 +116,7 @@
|
|
|
116
116
|
"title": "rationaleEnabled"
|
|
117
117
|
},
|
|
118
118
|
"spellCheckEnabled": {
|
|
119
|
-
"description": "Indicates if spellcheck is enabled",
|
|
119
|
+
"description": "Indicates if spellcheck is enabled for the author. Default value is true",
|
|
120
120
|
"type": "boolean",
|
|
121
121
|
"title": "spellCheckEnabled"
|
|
122
122
|
},
|
package/docs/pie-schema.json.md
CHANGED
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.js"],"names":["InlineDropdown","_model","_session","elem","React","createElement","Main","model","value","onChange","changeSession","ReactDOM","render","dispatchEvent","SessionChangedEvent","tagName","toLowerCase","session","dispatchChangedEvent","_render","m","ModelSetEvent","s","HTMLElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAIA;;;;;;IAEqBA,c;;;;;AACnB,4BAAc;AAAA;;AAAA;AACZ;AADY,gGA4BJ,YAAM;AACd,UAAI,MAAKC,MAAL,IAAe,MAAKC,QAAxB,EAAkC;AAChC,YAAIC,IAAI,gBAAGC,kBAAMC,aAAN,CAAoBC,gBAApB,EAA0B;AACnCC,UAAAA,KAAK,EAAE,MAAKN,MADuB;AAEnCO,UAAAA,KAAK,EAAE,MAAKN,QAAL,CAAcM,KAFc;AAGnCC,UAAAA,QAAQ,EAAE,MAAKC;AAHoB,SAA1B,CAAX;;
|
|
1
|
+
{"version":3,"sources":["../src/index.js"],"names":["InlineDropdown","_model","_session","elem","React","createElement","Main","model","value","onChange","changeSession","ReactDOM","render","dispatchEvent","SessionChangedEvent","tagName","toLowerCase","session","dispatchChangedEvent","_render","m","ModelSetEvent","s","HTMLElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAIA;;;;;;IAEqBA,c;;;;;AACnB,4BAAc;AAAA;;AAAA;AACZ;AADY,gGA4BJ,YAAM;AACd,UAAI,MAAKC,MAAL,IAAe,MAAKC,QAAxB,EAAkC;AAChC,YAAIC,IAAI,gBAAGC,kBAAMC,aAAN,CAAoBC,gBAApB,EAA0B;AACnCC,UAAAA,KAAK,EAAE,MAAKN,MADuB;AAEnCO,UAAAA,KAAK,EAAE,MAAKN,QAAL,CAAcM,KAFc;AAGnCC,UAAAA,QAAQ,EAAE,MAAKC;AAHoB,SAA1B,CAAX;;AAMAC,6BAASC,MAAT,CAAgBT,IAAhB;AACD;AACF,KAtCa;AAAA,6GAwCS,YAAM;AAC3B,YAAKU,aAAL,CACE,IAAIC,oCAAJ,CACE,MAAKC,OAAL,CAAaC,WAAb,EADF,EAEE,MAAKC,OAAL,IAAgB,CAAC,CAAC,MAAKA,OAAL,CAAaT,KAFjC,CADF;AAMD,KA/Ca;AAAA,sGAiDE,UAAAA,KAAK,EAAI;AACvB,YAAKS,OAAL,CAAaT,KAAb,GAAqBA,KAArB;;AACA,YAAKU,oBAAL;;AACA,YAAKC,OAAL;AACD,KArDa;AAEZ,UAAKlB,MAAL,GAAc,IAAd;AACA,UAAKC,QAAL,GAAgB,IAAhB;AAHY;AAIb;;;;SAED,aAAUkB,CAAV,EAAa;AACX,WAAKnB,MAAL,GAAcmB,CAAd;AACA,WAAKP,aAAL,CACE,IAAIQ,8BAAJ,CACE,KAAKN,OAAL,CAAaC,WAAb,EADF,EAEE,KAAKC,OAAL,IAAgB,CAAC,CAAC,KAAKA,OAAL,CAAaT,KAFjC,EAGE,CAAC,CAAC,KAAKP,MAHT,CADF;;AAQA,WAAKkB,OAAL;AACD;;;SAOD,eAAc;AACZ,aAAO,KAAKjB,QAAZ;AACD,K;SAPD,aAAYoB,CAAZ,EAAe;AACb,WAAKpB,QAAL,GAAgBoB,CAAhB;;AACA,WAAKH,OAAL;AACD;;;WAiCD,6BAAoB;AAClB,WAAKA,OAAL;AACD;;;kDA1DyCI,W","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport {\n ModelSetEvent,\n SessionChangedEvent\n} from '@pie-framework/pie-player-events';\nimport Main from './main';\n\nexport default class InlineDropdown extends HTMLElement {\n constructor() {\n super();\n this._model = null;\n this._session = null;\n }\n\n set model(m) {\n this._model = m;\n this.dispatchEvent(\n new ModelSetEvent(\n this.tagName.toLowerCase(),\n this.session && !!this.session.value,\n !!this._model\n )\n );\n\n this._render();\n }\n\n set session(s) {\n this._session = s;\n this._render();\n }\n\n get session() {\n return this._session;\n }\n\n _render = () => {\n if (this._model && this._session) {\n let elem = React.createElement(Main, {\n model: this._model,\n value: this._session.value,\n onChange: this.changeSession\n });\n\n ReactDOM.render(elem, this);\n }\n };\n\n dispatchChangedEvent = () => {\n this.dispatchEvent(\n new SessionChangedEvent(\n this.tagName.toLowerCase(),\n this.session && !!this.session.value\n )\n );\n };\n\n changeSession = value => {\n this.session.value = value;\n this.dispatchChangedEvent();\n this._render();\n };\n\n connectedCallback() {\n this._render();\n }\n}\n"],"file":"index.js"}
|
package/lib/main.js
CHANGED
|
@@ -41,9 +41,9 @@ var _mathRendering = require("@pie-lib/math-rendering");
|
|
|
41
41
|
|
|
42
42
|
var _styles = require("@material-ui/core/styles");
|
|
43
43
|
|
|
44
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
44
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
45
45
|
|
|
46
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
46
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
47
47
|
|
|
48
48
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
49
49
|
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
6
|
"repository": "pie-framework/pie-elements",
|
|
7
|
-
"version": "3.13.
|
|
7
|
+
"version": "3.13.8",
|
|
8
8
|
"description": "",
|
|
9
9
|
"scripts": {
|
|
10
10
|
"test": "echo \"Error: no test specified\" && exit 1",
|
|
@@ -13,10 +13,10 @@
|
|
|
13
13
|
"dependencies": {
|
|
14
14
|
"@material-ui/core": "^3.9.2",
|
|
15
15
|
"@pie-framework/pie-player-events": "^0.1.0",
|
|
16
|
-
"@pie-lib/correct-answer-toggle": "^2.3.
|
|
17
|
-
"@pie-lib/mask-markup": "^1.12.
|
|
18
|
-
"@pie-lib/math-rendering": "^2.
|
|
19
|
-
"@pie-lib/render-ui": "^4.12.
|
|
16
|
+
"@pie-lib/correct-answer-toggle": "^2.3.36",
|
|
17
|
+
"@pie-lib/mask-markup": "^1.12.4",
|
|
18
|
+
"@pie-lib/math-rendering": "^2.4.0",
|
|
19
|
+
"@pie-lib/render-ui": "^4.12.6",
|
|
20
20
|
"classnames": "^2.2.5",
|
|
21
21
|
"lodash": "^4.17.10",
|
|
22
22
|
"prop-types": "^15.6.1",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
},
|
|
26
26
|
"author": "",
|
|
27
27
|
"license": "ISC",
|
|
28
|
-
"gitHead": "
|
|
28
|
+
"gitHead": "87c4247b2cca04380c8638f88e57bba47fb6c06a",
|
|
29
29
|
"main": "lib/index.js",
|
|
30
30
|
"module": "src/index.js"
|
|
31
31
|
}
|