@pie-element/rubric 6.0.2-esm.0 → 6.2.0-mui-update.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.
Files changed (59) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/configure/CHANGELOG.md +19 -0
  3. package/configure/lib/defaults.js +2 -3
  4. package/configure/lib/defaults.js.map +1 -1
  5. package/configure/lib/index.js +90 -152
  6. package/configure/lib/index.js.map +1 -1
  7. package/configure/lib/main.js +90 -149
  8. package/configure/lib/main.js.map +1 -1
  9. package/configure/package.json +10 -7
  10. package/configure/src/index.js +12 -2
  11. package/configure/src/main.jsx +11 -13
  12. package/controller/CHANGELOG.md +16 -0
  13. package/controller/lib/defaults.js +2 -3
  14. package/controller/lib/defaults.js.map +1 -1
  15. package/controller/lib/index.js +15 -28
  16. package/controller/lib/index.js.map +1 -1
  17. package/controller/package.json +1 -1
  18. package/lib/index.js +38 -80
  19. package/lib/index.js.map +1 -1
  20. package/lib/main.js +184 -244
  21. package/lib/main.js.map +1 -1
  22. package/lib/print.js +41 -84
  23. package/lib/print.js.map +1 -1
  24. package/package.json +11 -25
  25. package/src/__tests__/__snapshots__/rubric-view.test.jsx.snap +2350 -1524
  26. package/src/index.js +14 -3
  27. package/src/main.jsx +100 -93
  28. package/src/print.js +13 -2
  29. package/LICENSE.md +0 -5
  30. package/configure/lib/pie-toolbox-rubric/authoring.js +0 -573
  31. package/configure/lib/pie-toolbox-rubric/authoring.js.map +0 -1
  32. package/configure/lib/pie-toolbox-rubric/index.js +0 -24
  33. package/configure/lib/pie-toolbox-rubric/index.js.map +0 -1
  34. package/configure/lib/pie-toolbox-rubric/point-menu.js +0 -172
  35. package/configure/lib/pie-toolbox-rubric/point-menu.js.map +0 -1
  36. package/configure/src/pie-toolbox-rubric/authoring.jsx +0 -449
  37. package/configure/src/pie-toolbox-rubric/index.js +0 -9
  38. package/configure/src/pie-toolbox-rubric/point-menu.jsx +0 -94
  39. package/esm/configure.css +0 -847
  40. package/esm/configure.js +0 -11976
  41. package/esm/configure.js.map +0 -1
  42. package/esm/controller.css +0 -847
  43. package/esm/controller.js +0 -68
  44. package/esm/controller.js.map +0 -1
  45. package/esm/element.css +0 -847
  46. package/esm/element.js +0 -263
  47. package/esm/element.js.map +0 -1
  48. package/esm/print.css +0 -847
  49. package/esm/print.js +0 -298
  50. package/esm/print.js.map +0 -1
  51. package/module/configure.js +0 -1
  52. package/module/controller.js +0 -113
  53. package/module/demo.js +0 -33
  54. package/module/element.js +0 -1
  55. package/module/index.html +0 -21
  56. package/module/manifest.json +0 -10
  57. package/module/print-demo.js +0 -71
  58. package/module/print.html +0 -18
  59. package/module/print.js +0 -1
package/CHANGELOG.md CHANGED
@@ -3,6 +3,25 @@
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
+ # [6.2.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/rubric@6.0.0...@pie-element/rubric@6.2.0) (2025-10-10)
7
+
8
+
9
+ ### Features
10
+
11
+ * update libs PD-5208, PD-5211, PD-5199, PD-5218, PD-5217 ([da327fa](https://github.com/pie-framework/pie-elements/commit/da327fa501f6e9eff1c0b30b5ef092426a91f78b))
12
+
13
+
14
+
15
+
16
+
17
+ # [6.1.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/rubric@5.0.0...@pie-element/rubric@6.1.0) (2025-10-07)
18
+
19
+ **Note:** Version bump only for package @pie-element/rubric
20
+
21
+
22
+
23
+
24
+
6
25
  # [6.0.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/rubric@4.9.12...@pie-element/rubric@6.0.0) (2025-10-02)
7
26
 
8
27
 
@@ -3,6 +3,25 @@
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
+ # [5.2.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/rubric-configure@5.0.1...@pie-element/rubric-configure@5.2.0) (2025-10-10)
7
+
8
+
9
+ ### Features
10
+
11
+ * update libs PD-5208, PD-5211, PD-5199, PD-5218, PD-5217 ([da327fa](https://github.com/pie-framework/pie-elements/commit/da327fa501f6e9eff1c0b30b5ef092426a91f78b))
12
+
13
+
14
+
15
+
16
+
17
+ # [5.1.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/rubric-configure@5.0.0...@pie-element/rubric-configure@5.1.0) (2025-10-07)
18
+
19
+ **Note:** Version bump only for package @pie-element/rubric-configure
20
+
21
+
22
+
23
+
24
+
6
25
  ## [5.0.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/rubric-configure@4.8.2...@pie-element/rubric-configure@5.0.1) (2025-10-02)
7
26
 
8
27
  **Note:** Version bump only for package @pie-element/rubric-configure
@@ -3,8 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports["default"] = void 0;
7
- var _default = {
6
+ exports.default = void 0;
7
+ var _default = exports.default = {
8
8
  model: {
9
9
  points: ['', '', '', ''],
10
10
  sampleAnswers: [null, null, null, null],
@@ -64,5 +64,4 @@ var _default = {
64
64
  maxMaxPoints: 9
65
65
  }
66
66
  };
67
- exports["default"] = _default;
68
67
  //# sourceMappingURL=defaults.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/defaults.js"],"names":["model","points","sampleAnswers","maxPoints","excludeZero","excludeZeroEnabled","maxPointsEnabled","configuration","baseInputConfiguration","audio","disabled","video","image","textAlign","showParagraphs","separateParagraphs","rubriclessInstruction","inputConfiguration","showExcludeZero","settings","label","showMaxPoint","settingsPanelDisabled","mathMlOptions","mmlOutput","mmlEditing","maxMaxPoints"],"mappings":";;;;;;eAAe;AACbA,EAAAA,KAAK,EAAE;AACLC,IAAAA,MAAM,EAAE,CAAC,EAAD,EAAK,EAAL,EAAS,EAAT,EAAa,EAAb,CADH;AAELC,IAAAA,aAAa,EAAE,CAAC,IAAD,EAAO,IAAP,EAAa,IAAb,EAAmB,IAAnB,CAFV;AAGLC,IAAAA,SAAS,EAAE,CAHN;AAILC,IAAAA,WAAW,EAAE,KAJR;AAKLC,IAAAA,kBAAkB,EAAE,IALf;AAMLC,IAAAA,gBAAgB,EAAE;AANb,GADM;AASbC,EAAAA,aAAa,EAAE;AACbC,IAAAA,sBAAsB,EAAE;AACtBC,MAAAA,KAAK,EAAE;AAAEC,QAAAA,QAAQ,EAAE;AAAZ,OADe;AAEtBC,MAAAA,KAAK,EAAE;AAAED,QAAAA,QAAQ,EAAE;AAAZ,OAFe;AAGtBE,MAAAA,KAAK,EAAE;AAAEF,QAAAA,QAAQ,EAAE;AAAZ,OAHe;AAItBG,MAAAA,SAAS,EAAE;AAAEH,QAAAA,QAAQ,EAAE;AAAZ,OAJW;AAKtBI,MAAAA,cAAc,EAAE;AAAEJ,QAAAA,QAAQ,EAAE;AAAZ,OALM;AAMtBK,MAAAA,kBAAkB,EAAE;AAAEL,QAAAA,QAAQ,EAAE;AAAZ;AANE,KADX;AASbM,IAAAA,qBAAqB,EAAE;AACrBC,MAAAA,kBAAkB,EAAE;AAClBR,QAAAA,KAAK,EAAE;AAAEC,UAAAA,QAAQ,EAAE;AAAZ,SADW;AAElBC,QAAAA,KAAK,EAAE;AAAED,UAAAA,QAAQ,EAAE;AAAZ,SAFW;AAGlBE,QAAAA,KAAK,EAAE;AAAEF,UAAAA,QAAQ,EAAE;AAAZ;AAHW;AADC,KATV;AAgBbQ,IAAAA,eAAe,EAAE;AACfC,MAAAA,QAAQ,EAAE,IADK;AAEfC,MAAAA,KAAK,EAAE;AAFQ,KAhBJ;AAoBbC,IAAAA,YAAY,EAAE;AACZF,MAAAA,QAAQ,EAAE,IADE;AAEZC,MAAAA,KAAK,EAAE;AAFK,KApBD;AAwBbE,IAAAA,qBAAqB,EAAE,KAxBV;AAyBb;AACAC,IAAAA,aAAa,EAAE;AACbC,MAAAA,SAAS,EAAE,KADE;AAEbC,MAAAA,UAAU,EAAE;AAFC,KA1BF;AA8BbC,IAAAA,YAAY,EAAE;AA9BD;AATF,C","sourcesContent":["export default {\n model: {\n points: ['', '', '', ''],\n sampleAnswers: [null, null, null, null],\n maxPoints: 3,\n excludeZero: false,\n excludeZeroEnabled: true,\n maxPointsEnabled: true,\n },\n configuration: {\n baseInputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n textAlign: { disabled: true },\n showParagraphs: { disabled: false },\n separateParagraphs: { disabled: true },\n },\n rubriclessInstruction: {\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n },\n showExcludeZero: {\n settings: true,\n label: 'Ability to exclude zero',\n },\n showMaxPoint: {\n settings: true,\n label: 'Show max points dropdown',\n },\n settingsPanelDisabled: false,\n // width: '500px'\n mathMlOptions: {\n mmlOutput: false,\n mmlEditing: false,\n },\n maxMaxPoints: 9,\n },\n};\n"],"file":"defaults.js"}
1
+ {"version":3,"file":"defaults.js","names":["model","points","sampleAnswers","maxPoints","excludeZero","excludeZeroEnabled","maxPointsEnabled","configuration","baseInputConfiguration","audio","disabled","video","image","textAlign","showParagraphs","separateParagraphs","rubriclessInstruction","inputConfiguration","showExcludeZero","settings","label","showMaxPoint","settingsPanelDisabled","mathMlOptions","mmlOutput","mmlEditing","maxMaxPoints"],"sources":["../src/defaults.js"],"sourcesContent":["export default {\n model: {\n points: ['', '', '', ''],\n sampleAnswers: [null, null, null, null],\n maxPoints: 3,\n excludeZero: false,\n excludeZeroEnabled: true,\n maxPointsEnabled: true,\n },\n configuration: {\n baseInputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n textAlign: { disabled: true },\n showParagraphs: { disabled: false },\n separateParagraphs: { disabled: true },\n },\n rubriclessInstruction: {\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n },\n showExcludeZero: {\n settings: true,\n label: 'Ability to exclude zero',\n },\n showMaxPoint: {\n settings: true,\n label: 'Show max points dropdown',\n },\n settingsPanelDisabled: false,\n // width: '500px'\n mathMlOptions: {\n mmlOutput: false,\n mmlEditing: false,\n },\n maxMaxPoints: 9,\n },\n};\n"],"mappings":";;;;;;iCAAe;EACbA,KAAK,EAAE;IACLC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACxBC,aAAa,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IACvCC,SAAS,EAAE,CAAC;IACZC,WAAW,EAAE,KAAK;IAClBC,kBAAkB,EAAE,IAAI;IACxBC,gBAAgB,EAAE;EACpB,CAAC;EACDC,aAAa,EAAE;IACbC,sBAAsB,EAAE;MACtBC,KAAK,EAAE;QAAEC,QAAQ,EAAE;MAAM,CAAC;MAC1BC,KAAK,EAAE;QAAED,QAAQ,EAAE;MAAM,CAAC;MAC1BE,KAAK,EAAE;QAAEF,QAAQ,EAAE;MAAM,CAAC;MAC1BG,SAAS,EAAE;QAAEH,QAAQ,EAAE;MAAK,CAAC;MAC7BI,cAAc,EAAE;QAAEJ,QAAQ,EAAE;MAAM,CAAC;MACnCK,kBAAkB,EAAE;QAAEL,QAAQ,EAAE;MAAK;IACvC,CAAC;IACDM,qBAAqB,EAAE;MACrBC,kBAAkB,EAAE;QAClBR,KAAK,EAAE;UAAEC,QAAQ,EAAE;QAAM,CAAC;QAC1BC,KAAK,EAAE;UAAED,QAAQ,EAAE;QAAM,CAAC;QAC1BE,KAAK,EAAE;UAAEF,QAAQ,EAAE;QAAM;MAC3B;IACF,CAAC;IACDQ,eAAe,EAAE;MACfC,QAAQ,EAAE,IAAI;MACdC,KAAK,EAAE;IACT,CAAC;IACDC,YAAY,EAAE;MACZF,QAAQ,EAAE,IAAI;MACdC,KAAK,EAAE;IACT,CAAC;IACDE,qBAAqB,EAAE,KAAK;IAC5B;IACAC,aAAa,EAAE;MACbC,SAAS,EAAE,KAAK;MAChBC,UAAU,EAAE;IACd,CAAC;IACDC,YAAY,EAAE;EAChB;AACF,CAAC","ignoreList":[]}
@@ -1,101 +1,60 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
- exports["default"] = void 0;
9
-
10
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
-
12
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
-
14
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
-
16
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
17
-
18
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
-
20
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
-
22
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
-
24
- var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
25
-
7
+ exports.default = void 0;
26
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
27
-
28
9
  var _pieConfigureEvents = require("@pie-framework/pie-configure-events");
29
-
30
10
  var _react = _interopRequireDefault(require("react"));
31
-
32
- var _reactDom = _interopRequireDefault(require("react-dom"));
33
-
11
+ var _client = require("react-dom/client");
34
12
  var _debug = _interopRequireDefault(require("debug"));
35
-
36
13
  var _main = _interopRequireDefault(require("./main"));
37
-
38
14
  var _defaults = _interopRequireDefault(require("./defaults"));
39
-
40
- 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); }; }
41
-
42
- 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; } }
43
-
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
-
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
-
48
- var modelWithDefaults = function modelWithDefaults(m) {
49
- return _objectSpread(_objectSpread({}, _defaults["default"].model), m);
50
- };
51
-
52
- var configurationWithDefaults = function configurationWithDefaults(c) {
53
- return _objectSpread(_objectSpread({}, _defaults["default"].configuration), c);
54
- };
55
-
56
- var RubricElement = /*#__PURE__*/function (_HTMLElement) {
57
- (0, _inherits2["default"])(RubricElement, _HTMLElement);
58
-
59
- var _super = _createSuper(RubricElement);
60
-
61
- function RubricElement() {
62
- var _this;
63
-
64
- (0, _classCallCheck2["default"])(this, RubricElement);
65
- _this = _super.call(this);
66
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "updateModelAccordingToReceivedProps", function (nextModel) {
67
- var currentModel = _objectSpread({}, _this._model);
68
-
15
+ const modelWithDefaults = m => ({
16
+ ..._defaults.default.model,
17
+ ...m
18
+ });
19
+ const configurationWithDefaults = c => ({
20
+ ..._defaults.default.configuration,
21
+ ...c
22
+ });
23
+ class RubricElement extends HTMLElement {
24
+ constructor() {
25
+ super();
26
+ (0, _defineProperty2.default)(this, "updateModelAccordingToReceivedProps", nextModel => {
27
+ const currentModel = {
28
+ ...this._model
29
+ };
69
30
  if (!nextModel) {
70
31
  return currentModel;
71
32
  }
33
+ const validatedModel = {
34
+ ...nextModel
35
+ };
72
36
 
73
- var validatedModel = _objectSpread({}, nextModel); // excludeZero should be false and disabled when maxPoints is 1
74
-
75
-
37
+ // excludeZero should be false and disabled when maxPoints is 1
76
38
  if (validatedModel.maxPoints === 1) {
77
39
  validatedModel.excludeZero = false;
78
40
  }
79
-
80
- var _ref = validatedModel || {},
81
- maxPoints = _ref.maxPoints,
82
- excludeZero = _ref.excludeZero;
83
-
84
- validatedModel.points = validatedModel.points ? (0, _toConsumableArray2["default"])(validatedModel.points) : [];
85
- validatedModel.sampleAnswers = validatedModel.sampleAnswers ? (0, _toConsumableArray2["default"])(validatedModel.sampleAnswers) : [];
86
- var howManyPointsShouldHave = excludeZero ? maxPoints : maxPoints + 1;
87
- var howManyPointsDoesItHave = validatedModel.points.length;
88
- var excludeZeroChanged = (currentModel === null || currentModel === void 0 ? void 0 : currentModel.excludeZero) !== (nextModel === null || nextModel === void 0 ? void 0 : nextModel.excludeZero);
89
- var maxPointsChanged = (currentModel === null || currentModel === void 0 ? void 0 : currentModel.maxPoints) !== (nextModel === null || nextModel === void 0 ? void 0 : nextModel.maxPoints);
90
-
41
+ const {
42
+ maxPoints,
43
+ excludeZero
44
+ } = validatedModel || {};
45
+ validatedModel.points = validatedModel.points ? [...validatedModel.points] : [];
46
+ validatedModel.sampleAnswers = validatedModel.sampleAnswers ? [...validatedModel.sampleAnswers] : [];
47
+ const howManyPointsShouldHave = excludeZero ? maxPoints : maxPoints + 1;
48
+ const howManyPointsDoesItHave = validatedModel.points.length;
49
+ const excludeZeroChanged = currentModel?.excludeZero !== nextModel?.excludeZero;
50
+ const maxPointsChanged = currentModel?.maxPoints !== nextModel?.maxPoints;
91
51
  if (howManyPointsDoesItHave < howManyPointsShouldHave) {
92
52
  if (excludeZeroChanged && !excludeZero) {
93
- validatedModel.points = [''].concat((0, _toConsumableArray2["default"])(validatedModel.points));
94
- validatedModel.sampleAnswers = [null].concat((0, _toConsumableArray2["default"])(validatedModel.sampleAnswers));
53
+ validatedModel.points = ['', ...validatedModel.points];
54
+ validatedModel.sampleAnswers = [null, ...validatedModel.sampleAnswers];
95
55
  }
96
-
97
56
  if (maxPointsChanged) {
98
- for (var i = 0; i < howManyPointsShouldHave - howManyPointsDoesItHave; i++) {
57
+ for (let i = 0; i < howManyPointsShouldHave - howManyPointsDoesItHave; i++) {
99
58
  validatedModel.points.push('');
100
59
  validatedModel.sampleAnswers.push(null);
101
60
  }
@@ -105,93 +64,72 @@ var RubricElement = /*#__PURE__*/function (_HTMLElement) {
105
64
  validatedModel.points = validatedModel.points.slice(1);
106
65
  validatedModel.sampleAnswers = validatedModel.sampleAnswers.slice(1);
107
66
  }
108
-
109
67
  if (maxPointsChanged) {
110
68
  validatedModel.points = validatedModel.points.slice(0, howManyPointsShouldHave);
111
69
  validatedModel.sampleAnswers = validatedModel.sampleAnswers.slice(0, howManyPointsShouldHave);
112
70
  }
113
71
  }
114
-
115
72
  return validatedModel;
116
73
  });
117
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onConfigurationChanged", function (c) {
118
- _this._configuration = configurationWithDefaults(c);
119
-
120
- if (_this._model) {
121
- _this.onModelChanged(_this._model);
74
+ (0, _defineProperty2.default)(this, "onConfigurationChanged", c => {
75
+ this._configuration = configurationWithDefaults(c);
76
+ if (this._model) {
77
+ this.onModelChanged(this._model);
122
78
  }
123
-
124
- _this._render();
79
+ this._render();
125
80
  });
126
-
127
- _debug["default"].log('constructor called');
128
-
129
- _this._model = modelWithDefaults();
130
- _this._configuration = configurationWithDefaults();
131
- _this.onModelChanged = _this.onModelChanged.bind((0, _assertThisInitialized2["default"])(_this));
132
- _this.onConfigurationChanged = _this.onConfigurationChanged.bind((0, _assertThisInitialized2["default"])(_this));
133
- return _this;
81
+ this._root = null;
82
+ _debug.default.log('constructor called');
83
+ this._model = modelWithDefaults();
84
+ this._configuration = configurationWithDefaults();
85
+ this.onModelChanged = this.onModelChanged.bind(this);
86
+ this.onConfigurationChanged = this.onConfigurationChanged.bind(this);
134
87
  }
135
-
136
- (0, _createClass2["default"])(RubricElement, [{
137
- key: "model",
138
- set: function set(m) {
139
- this._model = this.updateModelAccordingToReceivedProps(modelWithDefaults(m));
140
-
141
- this._render();
142
- }
143
- }, {
144
- key: "configuration",
145
- set: function set(c) {
146
- this._configuration = configurationWithDefaults(c);
147
-
148
- this._render();
149
- }
150
- }, {
151
- key: "onModelChanged",
152
- value: function onModelChanged(m) {
153
- this._model = this.updateModelAccordingToReceivedProps(m);
154
-
155
- this._render();
156
-
157
- this.dispatchEvent(new _pieConfigureEvents.ModelUpdatedEvent(this._model, false));
158
- }
159
- }, {
160
- key: "insertImage",
161
- value: function insertImage(handler) {
162
- this.dispatchEvent(new _pieConfigureEvents.InsertImageEvent(handler));
163
- }
164
- }, {
165
- key: "onDeleteImage",
166
- value: function onDeleteImage(src, done) {
167
- this.dispatchEvent(new _pieConfigureEvents.DeleteImageEvent(src, done));
168
- }
169
- }, {
170
- key: "connectedCallback",
171
- value: function connectedCallback() {
172
- this._render();
173
- }
174
- }, {
175
- key: "_render",
176
- value: function _render() {
177
- if (this._model) {
178
- var element = /*#__PURE__*/_react["default"].createElement(_main["default"], {
179
- model: this._model,
180
- configuration: this._configuration,
181
- onModelChanged: this.onModelChanged,
182
- onConfigurationChanged: this.onConfigurationChanged,
183
- imageSupport: {
184
- add: this.insertImage.bind(this),
185
- "delete": this.onDeleteImage.bind(this)
186
- }
187
- });
188
-
189
- _reactDom["default"].render(element, this);
88
+ set model(m) {
89
+ this._model = this.updateModelAccordingToReceivedProps(modelWithDefaults(m));
90
+ this._render();
91
+ }
92
+ set configuration(c) {
93
+ this._configuration = configurationWithDefaults(c);
94
+ this._render();
95
+ }
96
+ onModelChanged(m) {
97
+ this._model = this.updateModelAccordingToReceivedProps(m);
98
+ this._render();
99
+ this.dispatchEvent(new _pieConfigureEvents.ModelUpdatedEvent(this._model, false));
100
+ }
101
+ insertImage(handler) {
102
+ this.dispatchEvent(new _pieConfigureEvents.InsertImageEvent(handler));
103
+ }
104
+ onDeleteImage(src, done) {
105
+ this.dispatchEvent(new _pieConfigureEvents.DeleteImageEvent(src, done));
106
+ }
107
+ connectedCallback() {
108
+ this._render();
109
+ }
110
+ _render() {
111
+ if (this._model) {
112
+ let element = /*#__PURE__*/_react.default.createElement(_main.default, {
113
+ model: this._model,
114
+ configuration: this._configuration,
115
+ onModelChanged: this.onModelChanged,
116
+ onConfigurationChanged: this.onConfigurationChanged,
117
+ imageSupport: {
118
+ add: this.insertImage.bind(this),
119
+ delete: this.onDeleteImage.bind(this)
120
+ }
121
+ });
122
+ if (!this._root) {
123
+ this._root = (0, _client.createRoot)(this);
190
124
  }
125
+ this._root.render(element);
191
126
  }
192
- }]);
193
- return RubricElement;
194
- }( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(HTMLElement));
195
-
196
- exports["default"] = RubricElement;
127
+ }
128
+ disconnectedCallback() {
129
+ if (this._root) {
130
+ this._root.unmount();
131
+ }
132
+ }
133
+ }
134
+ exports.default = RubricElement;
197
135
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["modelWithDefaults","m","defaults","model","configurationWithDefaults","c","configuration","RubricElement","nextModel","currentModel","_model","validatedModel","maxPoints","excludeZero","points","sampleAnswers","howManyPointsShouldHave","howManyPointsDoesItHave","length","excludeZeroChanged","maxPointsChanged","i","push","slice","_configuration","onModelChanged","_render","debug","log","bind","onConfigurationChanged","updateModelAccordingToReceivedProps","dispatchEvent","ModelUpdatedEvent","handler","InsertImageEvent","src","done","DeleteImageEvent","element","React","createElement","Main","imageSupport","add","insertImage","onDeleteImage","ReactDOM","render","HTMLElement"],"mappings":"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","sourcesContent":["import { ModelUpdatedEvent, InsertImageEvent, DeleteImageEvent } from '@pie-framework/pie-configure-events';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport debug from 'debug';\n\nimport Main from './main';\nimport defaults from './defaults';\n\nconst modelWithDefaults = (m) => ({ ...defaults.model, ...m });\n\nconst configurationWithDefaults = (c) => ({ ...defaults.configuration, ...c });\n\nexport default class RubricElement extends HTMLElement {\n constructor() {\n super();\n debug.log('constructor called');\n this._model = modelWithDefaults();\n this._configuration = configurationWithDefaults();\n this.onModelChanged = this.onModelChanged.bind(this);\n this.onConfigurationChanged = this.onConfigurationChanged.bind(this);\n }\n\n updateModelAccordingToReceivedProps = (nextModel) => {\n const currentModel = { ...this._model };\n\n if (!nextModel) {\n return currentModel;\n }\n\n const validatedModel = { ...nextModel };\n\n // excludeZero should be false and disabled when maxPoints is 1\n if (validatedModel.maxPoints === 1) {\n validatedModel.excludeZero = false;\n }\n\n const { maxPoints, excludeZero } = validatedModel || {};\n\n validatedModel.points = validatedModel.points ? [...validatedModel.points] : [];\n validatedModel.sampleAnswers = validatedModel.sampleAnswers ? [...validatedModel.sampleAnswers] : [];\n\n const howManyPointsShouldHave = excludeZero ? maxPoints : maxPoints + 1;\n const howManyPointsDoesItHave = validatedModel.points.length;\n\n const excludeZeroChanged = currentModel?.excludeZero !== nextModel?.excludeZero;\n const maxPointsChanged = currentModel?.maxPoints !== nextModel?.maxPoints;\n\n if (howManyPointsDoesItHave < howManyPointsShouldHave) {\n if (excludeZeroChanged && !excludeZero) {\n validatedModel.points = ['', ...validatedModel.points];\n validatedModel.sampleAnswers = [null, ...validatedModel.sampleAnswers];\n }\n\n if (maxPointsChanged) {\n for (let i = 0; i < howManyPointsShouldHave - howManyPointsDoesItHave; i++) {\n validatedModel.points.push('');\n validatedModel.sampleAnswers.push(null);\n }\n }\n } else if (howManyPointsDoesItHave > howManyPointsShouldHave) {\n if (excludeZeroChanged && excludeZero) {\n validatedModel.points = validatedModel.points.slice(1);\n validatedModel.sampleAnswers = validatedModel.sampleAnswers.slice(1);\n }\n\n if (maxPointsChanged) {\n validatedModel.points = validatedModel.points.slice(0, howManyPointsShouldHave);\n validatedModel.sampleAnswers = validatedModel.sampleAnswers.slice(0, howManyPointsShouldHave);\n }\n }\n\n return validatedModel;\n };\n\n set model(m) {\n this._model = this.updateModelAccordingToReceivedProps(modelWithDefaults(m));\n this._render();\n }\n\n set configuration(c) {\n this._configuration = configurationWithDefaults(c);\n this._render();\n }\n\n onModelChanged(m) {\n this._model = this.updateModelAccordingToReceivedProps(m);\n this._render();\n this.dispatchEvent(new ModelUpdatedEvent(this._model, false));\n }\n\n onConfigurationChanged = (c) => {\n this._configuration = configurationWithDefaults(c);\n\n if (this._model) {\n this.onModelChanged(this._model);\n }\n\n this._render();\n };\n\n insertImage(handler) {\n this.dispatchEvent(new InsertImageEvent(handler));\n }\n\n onDeleteImage(src, done) {\n this.dispatchEvent(new DeleteImageEvent(src, done));\n }\n\n connectedCallback() {\n this._render();\n }\n\n _render() {\n if (this._model) {\n let element = React.createElement(Main, {\n model: this._model,\n configuration: this._configuration,\n onModelChanged: this.onModelChanged,\n onConfigurationChanged: this.onConfigurationChanged,\n imageSupport: {\n add: this.insertImage.bind(this),\n delete: this.onDeleteImage.bind(this),\n },\n });\n\n ReactDOM.render(element, this);\n }\n }\n}\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":["_pieConfigureEvents","require","_react","_interopRequireDefault","_client","_debug","_main","_defaults","modelWithDefaults","m","defaults","model","configurationWithDefaults","c","configuration","RubricElement","HTMLElement","constructor","_defineProperty2","default","nextModel","currentModel","_model","validatedModel","maxPoints","excludeZero","points","sampleAnswers","howManyPointsShouldHave","howManyPointsDoesItHave","length","excludeZeroChanged","maxPointsChanged","i","push","slice","_configuration","onModelChanged","_render","_root","debug","log","bind","onConfigurationChanged","updateModelAccordingToReceivedProps","dispatchEvent","ModelUpdatedEvent","insertImage","handler","InsertImageEvent","onDeleteImage","src","done","DeleteImageEvent","connectedCallback","element","React","createElement","Main","imageSupport","add","delete","createRoot","render","disconnectedCallback","unmount","exports"],"sources":["../src/index.js"],"sourcesContent":["import { ModelUpdatedEvent, InsertImageEvent, DeleteImageEvent } from '@pie-framework/pie-configure-events';\nimport React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport debug from 'debug';\n\nimport Main from './main';\nimport defaults from './defaults';\n\nconst modelWithDefaults = (m) => ({ ...defaults.model, ...m });\n\nconst configurationWithDefaults = (c) => ({ ...defaults.configuration, ...c });\n\nexport default class RubricElement extends HTMLElement {\n constructor() {\n super();\n this._root = null;\n debug.log('constructor called');\n this._model = modelWithDefaults();\n this._configuration = configurationWithDefaults();\n this.onModelChanged = this.onModelChanged.bind(this);\n this.onConfigurationChanged = this.onConfigurationChanged.bind(this);\n }\n\n updateModelAccordingToReceivedProps = (nextModel) => {\n const currentModel = { ...this._model };\n\n if (!nextModel) {\n return currentModel;\n }\n\n const validatedModel = { ...nextModel };\n\n // excludeZero should be false and disabled when maxPoints is 1\n if (validatedModel.maxPoints === 1) {\n validatedModel.excludeZero = false;\n }\n\n const { maxPoints, excludeZero } = validatedModel || {};\n\n validatedModel.points = validatedModel.points ? [...validatedModel.points] : [];\n validatedModel.sampleAnswers = validatedModel.sampleAnswers ? [...validatedModel.sampleAnswers] : [];\n\n const howManyPointsShouldHave = excludeZero ? maxPoints : maxPoints + 1;\n const howManyPointsDoesItHave = validatedModel.points.length;\n\n const excludeZeroChanged = currentModel?.excludeZero !== nextModel?.excludeZero;\n const maxPointsChanged = currentModel?.maxPoints !== nextModel?.maxPoints;\n\n if (howManyPointsDoesItHave < howManyPointsShouldHave) {\n if (excludeZeroChanged && !excludeZero) {\n validatedModel.points = ['', ...validatedModel.points];\n validatedModel.sampleAnswers = [null, ...validatedModel.sampleAnswers];\n }\n\n if (maxPointsChanged) {\n for (let i = 0; i < howManyPointsShouldHave - howManyPointsDoesItHave; i++) {\n validatedModel.points.push('');\n validatedModel.sampleAnswers.push(null);\n }\n }\n } else if (howManyPointsDoesItHave > howManyPointsShouldHave) {\n if (excludeZeroChanged && excludeZero) {\n validatedModel.points = validatedModel.points.slice(1);\n validatedModel.sampleAnswers = validatedModel.sampleAnswers.slice(1);\n }\n\n if (maxPointsChanged) {\n validatedModel.points = validatedModel.points.slice(0, howManyPointsShouldHave);\n validatedModel.sampleAnswers = validatedModel.sampleAnswers.slice(0, howManyPointsShouldHave);\n }\n }\n\n return validatedModel;\n };\n\n set model(m) {\n this._model = this.updateModelAccordingToReceivedProps(modelWithDefaults(m));\n this._render();\n }\n\n set configuration(c) {\n this._configuration = configurationWithDefaults(c);\n this._render();\n }\n\n onModelChanged(m) {\n this._model = this.updateModelAccordingToReceivedProps(m);\n this._render();\n this.dispatchEvent(new ModelUpdatedEvent(this._model, false));\n }\n\n onConfigurationChanged = (c) => {\n this._configuration = configurationWithDefaults(c);\n\n if (this._model) {\n this.onModelChanged(this._model);\n }\n\n this._render();\n };\n\n insertImage(handler) {\n this.dispatchEvent(new InsertImageEvent(handler));\n }\n\n onDeleteImage(src, done) {\n this.dispatchEvent(new DeleteImageEvent(src, done));\n }\n\n connectedCallback() {\n this._render();\n }\n\n _render() {\n if (this._model) {\n let element = React.createElement(Main, {\n model: this._model,\n configuration: this._configuration,\n onModelChanged: this.onModelChanged,\n onConfigurationChanged: this.onConfigurationChanged,\n imageSupport: {\n add: this.insertImage.bind(this),\n delete: this.onDeleteImage.bind(this),\n },\n });\n\n if (!this._root) {\n this._root = createRoot(this);\n }\n this._root.render(element);\n }\n }\n\n disconnectedCallback() {\n if (this._root) {\n this._root.unmount();\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}