@pie-element/math-templated 2.12.1 → 2.14.0

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.
@@ -3250,8 +3250,8 @@ function transformOptions(options) {
3250
3250
  return options;
3251
3251
  }
3252
3252
 
3253
- function ownKeys$7(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; }
3254
- function _objectSpread$7(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$7(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$7(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
3253
+ 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; }
3254
+ 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) { _defineProperty__default["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; }
3255
3255
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf__default["default"](Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf__default["default"](this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn__default["default"](this, result); }; }
3256
3256
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
3257
3257
  function noop() {}
@@ -3311,9 +3311,9 @@ var I18n = function (_EventEmitter) {
3311
3311
  }
3312
3312
  }
3313
3313
  var defOpts = get$1();
3314
- this.options = _objectSpread$7(_objectSpread$7(_objectSpread$7({}, defOpts), this.options), transformOptions(options));
3314
+ this.options = _objectSpread(_objectSpread(_objectSpread({}, defOpts), this.options), transformOptions(options));
3315
3315
  if (this.options.compatibilityAPI !== 'v1') {
3316
- this.options.interpolation = _objectSpread$7(_objectSpread$7({}, defOpts.interpolation), this.options.interpolation);
3316
+ this.options.interpolation = _objectSpread(_objectSpread({}, defOpts.interpolation), this.options.interpolation);
3317
3317
  }
3318
3318
  if (options.keySeparator !== undefined) {
3319
3319
  this.options.userDefinedKeySeparator = options.keySeparator;
@@ -3591,7 +3591,7 @@ var I18n = function (_EventEmitter) {
3591
3591
  }
3592
3592
  options = _this5.options.overloadTranslationOptionHandler([key, opts].concat(rest));
3593
3593
  } else {
3594
- options = _objectSpread$7({}, opts);
3594
+ options = _objectSpread({}, opts);
3595
3595
  }
3596
3596
  options.lng = options.lng || fixedT.lng;
3597
3597
  options.lngs = options.lngs || fixedT.lngs;
@@ -3718,7 +3718,7 @@ var I18n = function (_EventEmitter) {
3718
3718
  var _this8 = this;
3719
3719
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
3720
3720
  var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
3721
- var mergedOptions = _objectSpread$7(_objectSpread$7(_objectSpread$7({}, this.options), options), {
3721
+ var mergedOptions = _objectSpread(_objectSpread(_objectSpread({}, this.options), options), {
3722
3722
  isClone: true
3723
3723
  });
3724
3724
  var clone = new I18n(mergedOptions);
@@ -3729,7 +3729,7 @@ var I18n = function (_EventEmitter) {
3729
3729
  membersToCopy.forEach(function (m) {
3730
3730
  clone[m] = _this8[m];
3731
3731
  });
3732
- clone.services = _objectSpread$7({}, this.services);
3732
+ clone.services = _objectSpread({}, this.services);
3733
3733
  clone.services.utils = {
3734
3734
  hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)
3735
3735
  };
@@ -4041,185 +4041,6 @@ exports["default"] = _default;
4041
4041
 
4042
4042
  var Translator = /*@__PURE__*/getDefaultExportFromCjs(translator$2);
4043
4043
 
4044
- var feedback$1 = {};
4045
-
4046
- var feedback = {};
4047
-
4048
- var _interopRequireDefault$2 = interopRequireDefault.exports;
4049
-
4050
- Object.defineProperty(feedback, "__esModule", {
4051
- value: true
4052
- });
4053
- feedback.getFeedbackForCorrectness = feedback.getFeedback = feedback.getActualFeedbackForCorrectness = feedback.getActualFeedback = feedback.defaults = void 0;
4054
-
4055
- var _defineProperty2 = _interopRequireDefault$2(defineProperty$1.exports);
4056
-
4057
- 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; }
4058
-
4059
- 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; }
4060
-
4061
- var defaults$1 = {
4062
- correct: {
4063
- type: 'default',
4064
- "default": 'Correct',
4065
- custom: 'Correct'
4066
- },
4067
- incorrect: {
4068
- type: 'default',
4069
- "default": 'Incorrect',
4070
- custom: 'Incorrect'
4071
- },
4072
- partial: {
4073
- type: 'default',
4074
- "default": 'Nearly',
4075
- custom: 'Nearly'
4076
- },
4077
- unanswered: {
4078
- type: 'default',
4079
- "default": 'You have not entered a response',
4080
- custom: 'You have not entered a response'
4081
- }
4082
- };
4083
- /**
4084
- * @typedef {Object} FeedbackConfig
4085
- * @property {'default'|'none'|'custom'} type
4086
- * @property {string} default
4087
- * @property {string} custom
4088
- *
4089
- * @typedef {Object} Feedback
4090
- * @property {FeedbackConfig} correct
4091
- * @property {FeedbackConfig} incorrect
4092
- * @property {FeedbackConfig} partial
4093
- */
4094
-
4095
- feedback.defaults = defaults$1;
4096
-
4097
- var normalizeCorrectness = function normalizeCorrectness(c) {
4098
- if (c === 'partially-correct') {
4099
- return 'partial';
4100
- }
4101
-
4102
- return c;
4103
- };
4104
- /**
4105
- * Get the feedback for the correctness
4106
- *
4107
- * @param {'correct'|'incorrect'|'partial'} correctness
4108
- * @param {Feedback} feedback
4109
- */
4110
-
4111
-
4112
- var getFeedbackForCorrectness = function getFeedbackForCorrectness(correctness, feedback) {
4113
- return new Promise(function (resolve) {
4114
- feedback = _objectSpread(_objectSpread({}, defaults$1), feedback);
4115
- correctness = normalizeCorrectness(correctness);
4116
- var fb = feedback[correctness] || defaults$1[correctness] || {};
4117
- var d = defaults$1[correctness] || {};
4118
- getFeedback(fb, d[fb.type || 'default']).then(function (result) {
4119
- return resolve(result);
4120
- });
4121
- });
4122
- };
4123
- /**
4124
- * Get the feedback from a {FeedbackConfig}
4125
- *
4126
- * @param {FeedbackConfig} feedback
4127
- * @param {string} fallback
4128
- */
4129
-
4130
-
4131
- feedback.getFeedbackForCorrectness = getFeedbackForCorrectness;
4132
-
4133
- var getFeedback = function getFeedback(feedback, fallback) {
4134
- return new Promise(function (resolve) {
4135
- if (!feedback || feedback.type === 'none') {
4136
- resolve(undefined);
4137
- return;
4138
- }
4139
-
4140
- feedback = feedback || {};
4141
- var out = feedback[feedback.type] || fallback;
4142
- resolve(out);
4143
- });
4144
- }; // TODO: should replace getFeedbackForCorrectness
4145
-
4146
- /**
4147
- * Get feedback for correctness
4148
- * @param {'correct'|'incorrect'|'partial'} correctness
4149
- * @param {Feedback} feedback
4150
- */
4151
-
4152
-
4153
- feedback.getFeedback = getFeedback;
4154
-
4155
- var getActualFeedbackForCorrectness = function getActualFeedbackForCorrectness(correctness, feedback) {
4156
- feedback = _objectSpread(_objectSpread({}, defaults$1), feedback); // normalize correctness
4157
-
4158
- correctness = correctness === 'partially-correct' ? 'partial' : correctness;
4159
- var defaultFeedback = defaults$1[correctness] || {};
4160
- var fb = feedback[correctness] || defaultFeedback;
4161
- return getActualFeedback(fb, defaultFeedback[fb.type || 'default']);
4162
- }; // TODO: should replace getFeedback
4163
-
4164
- /**
4165
- * Get the feedback from a {FeedbackConfig}
4166
- * @param {FeedbackConfig} feedback
4167
- * @param {string} fallback
4168
- */
4169
-
4170
-
4171
- feedback.getActualFeedbackForCorrectness = getActualFeedbackForCorrectness;
4172
-
4173
- var getActualFeedback = function getActualFeedback(feedback, fallback) {
4174
- if (!feedback || feedback.type === 'none') {
4175
- return undefined;
4176
- }
4177
-
4178
- return feedback[feedback.type] || fallback;
4179
- };
4180
-
4181
- feedback.getActualFeedback = getActualFeedback;
4182
-
4183
- (function (exports) {
4184
-
4185
- Object.defineProperty(exports, "__esModule", {
4186
- value: true
4187
- });
4188
- Object.defineProperty(exports, "defaults", {
4189
- enumerable: true,
4190
- get: function get() {
4191
- return _feedback.defaults;
4192
- }
4193
- });
4194
- Object.defineProperty(exports, "getActualFeedback", {
4195
- enumerable: true,
4196
- get: function get() {
4197
- return _feedback.getActualFeedback;
4198
- }
4199
- });
4200
- Object.defineProperty(exports, "getActualFeedbackForCorrectness", {
4201
- enumerable: true,
4202
- get: function get() {
4203
- return _feedback.getActualFeedbackForCorrectness;
4204
- }
4205
- });
4206
- Object.defineProperty(exports, "getFeedback", {
4207
- enumerable: true,
4208
- get: function get() {
4209
- return _feedback.getFeedback;
4210
- }
4211
- });
4212
- Object.defineProperty(exports, "getFeedbackForCorrectness", {
4213
- enumerable: true,
4214
- get: function get() {
4215
- return _feedback.getFeedbackForCorrectness;
4216
- }
4217
- });
4218
-
4219
- var _feedback = feedback;
4220
-
4221
- }(feedback$1));
4222
-
4223
4044
  // Should be exactly the same as configure/defaults.js
4224
4045
  var defaults = {
4225
4046
  model: {
@@ -22971,6 +22792,7 @@ var _controllerUtils = controllerUtils;
22971
22792
  }(controllerUtils$1));
22972
22793
 
22973
22794
  const { translator } = Translator;
22795
+ const getContent = (html) => (html || '').replace(/(<(?!img|iframe)([^>]+)>)/gi, '');
22974
22796
 
22975
22797
  const getIsAnswerCorrect = (correctResponse, answerItem) => {
22976
22798
  let answerCorrect = false;
@@ -23175,8 +22997,57 @@ const createCorrectResponseSession = (question, env) =>
23175
22997
  });
23176
22998
 
23177
22999
  const validate = (model = {}, config = {}) => {
23000
+ const { responses, markup } = model;
23001
+ const { maxResponseAreas } = config;
23002
+ const responsesErrors = {};
23178
23003
  const errors = {};
23179
23004
 
23005
+ ['teacherInstructions', 'prompt', 'rationale'].forEach((field) => {
23006
+ if (config[field]?.required && !getContent(model[field])) {
23007
+ errors[field] = 'This field is required.';
23008
+ }
23009
+ });
23010
+
23011
+ Object.entries(responses || {}).forEach(([key, response], index) => {
23012
+ const { answer } = response;
23013
+ const reversedAlternates = [...Object.entries(response.alternates || {})].reverse();
23014
+ const alternatesErrors = {};
23015
+ const responseError = {};
23016
+
23017
+ if (answer === '') {
23018
+ responseError.answer = 'Content should not be empty.';
23019
+ }
23020
+
23021
+ reversedAlternates.forEach(([key, value], index) => {
23022
+ if (value === '') {
23023
+ alternatesErrors[key] = 'Content should not be empty.';
23024
+ } else {
23025
+ const identicalAnswer =
23026
+ answer === value || reversedAlternates.slice(index + 1).some(([, val]) => val === value);
23027
+
23028
+ if (identicalAnswer) {
23029
+ alternatesErrors[key] = 'Content should be unique.';
23030
+ }
23031
+ }
23032
+ });
23033
+
23034
+ if (!isEmpty_1(responseError) || !isEmpty_1(alternatesErrors)) {
23035
+ responsesErrors[index] = { ...responseError, ...alternatesErrors };
23036
+ }
23037
+ });
23038
+
23039
+ const nbOfResponseAreas = (markup.match(/\{\{(\d+)\}\}/g) || []).length;
23040
+
23041
+ if (nbOfResponseAreas > maxResponseAreas) {
23042
+ errors.responseAreas = `No more than ${maxResponseAreas} response areas should be defined.`;
23043
+ } else if (nbOfResponseAreas < 1) {
23044
+ errors.responseAreas = 'There should be at least 1 response area defined.';
23045
+ }
23046
+
23047
+ if (!isEmpty_1(responsesErrors)) {
23048
+ errors.responses = responsesErrors;
23049
+ }
23050
+
23180
23051
  return errors;
23181
23052
  };
23182
23053
 
package/module/element.js CHANGED
@@ -1,4 +1,4 @@
1
- import {_dll_react, _dll_prop_types, _dll_classnames, _dll_react_dom, _dll_debug, _dll_lodash, _dll_react_dom_server, _dll_pie_lib__pie_toolbox_math_rendering_accessible, _dll_pie_framework__mathquill} from "../../../@pie-lib/pie-toolbox-math-rendering-module@1.13.1/module/index.js";
1
+ import {_dll_react, _dll_prop_types, _dll_classnames, _dll_react_dom, _dll_debug, _dll_lodash, _dll_react_dom_server, _dll_pie_lib__pie_toolbox_math_rendering_accessible, _dll_pie_framework__mathquill} from "../../../@pie-lib/pie-toolbox-math-rendering-module@1.14.0/module/index.js";
2
2
  import {_dll_pie_lib__pie_toolbox_math_input, _dll_pie_lib__pie_toolbox_render_ui, _dll_pie_lib__pie_toolbox_correct_answer_toggle} from "../../../@pie-lib/pie-toolbox-module@4.12.0/module/index.js";
3
3
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
4
4
  function getDefaultExportFromCjs(x) {
package/module/index.html CHANGED
@@ -2,7 +2,7 @@
2
2
  <!doctype html>
3
3
  <html>
4
4
  <head>
5
- <title>@pie-element/math-templated@2.12.0</title>
5
+ <title>@pie-element/math-templated@2.13.0</title>
6
6
  <script
7
7
  type="module"
8
8
  src="https://cdn.jsdelivr.net/npm/@pslb/demo-el@^1.0.0/dist/demo-el/demo-el.esm.js"></script>
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@pie-element/math-templated",
3
- "version": "2.12.0",
3
+ "version": "2.13.0",
4
4
  "modules": [
5
5
  {
6
6
  "name": "@pie-lib/pie-toolbox-math-rendering-module",
7
- "version": "1.13.1"
7
+ "version": "1.14.0"
8
8
  },
9
9
  {
10
10
  "name": "@pie-lib/pie-toolbox-module",
package/module/print.html CHANGED
@@ -2,7 +2,7 @@
2
2
  <!doctype html>
3
3
  <html>
4
4
  <head>
5
- <title>@pie-element/math-templated@2.12.0</title>
5
+ <title>@pie-element/math-templated@2.13.0</title>
6
6
  <link
7
7
  href="https://fonts.googleapis.com/css?family=Roboto&display=swap"
8
8
  rel="stylesheet"
package/module/print.js CHANGED
@@ -1,4 +1,4 @@
1
- import {_dll_react, _dll_prop_types, _dll_classnames, _dll_react_dom, _dll_debug, _dll_lodash, _dll_react_dom_server, _dll_pie_lib__pie_toolbox_math_rendering_accessible, _dll_pie_framework__mathquill} from "../../../@pie-lib/pie-toolbox-math-rendering-module@1.13.1/module/index.js";
1
+ import {_dll_react, _dll_prop_types, _dll_classnames, _dll_react_dom, _dll_debug, _dll_lodash, _dll_react_dom_server, _dll_pie_lib__pie_toolbox_math_rendering_accessible, _dll_pie_framework__mathquill} from "../../../@pie-lib/pie-toolbox-math-rendering-module@1.14.0/module/index.js";
2
2
  import {_dll_pie_lib__pie_toolbox_math_input, _dll_pie_lib__pie_toolbox_render_ui, _dll_pie_lib__pie_toolbox_correct_answer_toggle} from "../../../@pie-lib/pie-toolbox-module@4.12.0/module/index.js";
3
3
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
4
4
  function getDefaultExportFromCjs(x) {
package/package.json CHANGED
@@ -4,19 +4,19 @@
4
4
  "access": "public"
5
5
  },
6
6
  "repository": "pie-framework/pie-elements",
7
- "version": "2.12.1",
7
+ "version": "2.14.0",
8
8
  "description": "",
9
9
  "dependencies": {
10
10
  "@material-ui/core": "^3.9.2",
11
11
  "@pie-framework/pie-player-events": "^0.1.0",
12
- "@pie-lib/pie-toolbox": "1.21.0",
12
+ "@pie-lib/pie-toolbox": "1.21.1",
13
13
  "prop-types": "^15.6.1",
14
14
  "react": "^16.8.1",
15
15
  "react-dom": "^16.8.1"
16
16
  },
17
17
  "author": "",
18
18
  "license": "ISC",
19
- "gitHead": "989d6e261d8d8edc4da64e0aa6b572bddbb87a0f",
19
+ "gitHead": "b2a26cca9c68cb159752b0d8b1325e474d4e1083",
20
20
  "scripts": {
21
21
  "postpublish": "../../scripts/postpublish"
22
22
  },