@pie-element/complex-rubric 5.3.4-next.3 → 6.0.0-beta.1

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 (145) hide show
  1. package/configure/lib/defaults.js +52 -24
  2. package/configure/lib/defaults.js.map +1 -1
  3. package/configure/lib/index.js +103 -194
  4. package/configure/lib/index.js.map +1 -1
  5. package/configure/lib/main.js +140 -199
  6. package/configure/lib/main.js.map +1 -1
  7. package/configure/node_modules/@pie-element/multi-trait-rubric/CHANGELOG.json +1 -0
  8. package/configure/node_modules/@pie-element/multi-trait-rubric/CHANGELOG.md +2491 -0
  9. package/configure/node_modules/@pie-element/multi-trait-rubric/README.md +55 -0
  10. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/CHANGELOG.json +1 -0
  11. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/CHANGELOG.md +2333 -0
  12. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/common.js +429 -0
  13. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/common.js.map +1 -0
  14. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/defaults.js +181 -0
  15. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/defaults.js.map +1 -0
  16. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/index.js +157 -0
  17. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/index.js.map +1 -0
  18. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/main.js +455 -0
  19. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/main.js.map +1 -0
  20. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/modals.js +206 -0
  21. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/modals.js.map +1 -0
  22. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/scale.js +451 -0
  23. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/scale.js.map +1 -0
  24. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/trait.js +275 -0
  25. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/trait.js.map +1 -0
  26. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/traitsHeader.js +233 -0
  27. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/traitsHeader.js.map +1 -0
  28. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/utils.js +87 -0
  29. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/utils.js.map +1 -0
  30. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/package.json +24 -0
  31. package/configure/node_modules/@pie-element/multi-trait-rubric/controller/CHANGELOG.json +1 -0
  32. package/configure/node_modules/@pie-element/multi-trait-rubric/controller/CHANGELOG.md +1571 -0
  33. package/configure/node_modules/@pie-element/multi-trait-rubric/controller/lib/defaults.js +18 -0
  34. package/configure/node_modules/@pie-element/multi-trait-rubric/controller/lib/defaults.js.map +1 -0
  35. package/configure/node_modules/@pie-element/multi-trait-rubric/controller/lib/index.js +158 -0
  36. package/configure/node_modules/@pie-element/multi-trait-rubric/controller/lib/index.js.map +1 -0
  37. package/configure/node_modules/@pie-element/multi-trait-rubric/controller/lib/utils.js +11 -0
  38. package/configure/node_modules/@pie-element/multi-trait-rubric/controller/lib/utils.js.map +1 -0
  39. package/configure/node_modules/@pie-element/multi-trait-rubric/controller/package.json +14 -0
  40. package/configure/node_modules/@pie-element/multi-trait-rubric/docs/config-schema.json +1628 -0
  41. package/configure/node_modules/@pie-element/multi-trait-rubric/docs/config-schema.json.md +1202 -0
  42. package/configure/node_modules/@pie-element/multi-trait-rubric/docs/demo/config.js +8 -0
  43. package/configure/node_modules/@pie-element/multi-trait-rubric/docs/demo/generate.js +117 -0
  44. package/configure/node_modules/@pie-element/multi-trait-rubric/docs/demo/index.html +1 -0
  45. package/configure/node_modules/@pie-element/multi-trait-rubric/docs/demo/session.js +6 -0
  46. package/configure/node_modules/@pie-element/multi-trait-rubric/docs/pie-schema.json +861 -0
  47. package/configure/node_modules/@pie-element/multi-trait-rubric/docs/pie-schema.json.md +614 -0
  48. package/configure/node_modules/@pie-element/multi-trait-rubric/lib/index.js +54 -0
  49. package/configure/node_modules/@pie-element/multi-trait-rubric/lib/index.js.map +1 -0
  50. package/configure/node_modules/@pie-element/multi-trait-rubric/lib/main.js +123 -0
  51. package/configure/node_modules/@pie-element/multi-trait-rubric/lib/main.js.map +1 -0
  52. package/configure/node_modules/@pie-element/multi-trait-rubric/lib/scale.js +248 -0
  53. package/configure/node_modules/@pie-element/multi-trait-rubric/lib/scale.js.map +1 -0
  54. package/configure/node_modules/@pie-element/multi-trait-rubric/lib/trait.js +83 -0
  55. package/configure/node_modules/@pie-element/multi-trait-rubric/lib/trait.js.map +1 -0
  56. package/configure/node_modules/@pie-element/multi-trait-rubric/package.json +32 -0
  57. package/configure/node_modules/@pie-element/rubric/CHANGELOG.json +257 -0
  58. package/configure/node_modules/@pie-element/rubric/CHANGELOG.md +2774 -0
  59. package/configure/node_modules/@pie-element/rubric/README.md +3 -0
  60. package/configure/node_modules/@pie-element/rubric/configure/CHANGELOG.json +197 -0
  61. package/configure/node_modules/@pie-element/rubric/configure/CHANGELOG.md +2541 -0
  62. package/configure/node_modules/@pie-element/rubric/configure/lib/defaults.js +67 -0
  63. package/configure/node_modules/@pie-element/rubric/configure/lib/defaults.js.map +1 -0
  64. package/configure/node_modules/@pie-element/rubric/configure/lib/index.js +135 -0
  65. package/configure/node_modules/@pie-element/rubric/configure/lib/index.js.map +1 -0
  66. package/configure/node_modules/@pie-element/rubric/configure/lib/main.js +103 -0
  67. package/configure/node_modules/@pie-element/rubric/configure/lib/main.js.map +1 -0
  68. package/configure/node_modules/@pie-element/rubric/configure/package.json +24 -0
  69. package/configure/node_modules/@pie-element/rubric/configure/src/__tests__/index.test.jsx +178 -0
  70. package/configure/node_modules/@pie-element/rubric/configure/src/defaults.js +42 -0
  71. package/configure/node_modules/@pie-element/rubric/configure/src/index.js +139 -0
  72. package/configure/node_modules/@pie-element/rubric/configure/src/main.jsx +87 -0
  73. package/configure/node_modules/@pie-element/rubric/controller/CHANGELOG.json +17 -0
  74. package/configure/node_modules/@pie-element/rubric/controller/CHANGELOG.md +1564 -0
  75. package/configure/node_modules/@pie-element/rubric/controller/lib/defaults.js +15 -0
  76. package/configure/node_modules/@pie-element/rubric/controller/lib/defaults.js.map +1 -0
  77. package/configure/node_modules/@pie-element/rubric/controller/lib/index.js +46 -0
  78. package/configure/node_modules/@pie-element/rubric/controller/lib/index.js.map +1 -0
  79. package/configure/node_modules/@pie-element/rubric/controller/package.json +12 -0
  80. package/configure/node_modules/@pie-element/rubric/controller/src/__tests__/index.test.js +33 -0
  81. package/configure/node_modules/@pie-element/rubric/controller/src/defaults.js +8 -0
  82. package/configure/node_modules/@pie-element/rubric/controller/src/index.js +41 -0
  83. package/configure/node_modules/@pie-element/rubric/docs/config-schema.json +712 -0
  84. package/configure/node_modules/@pie-element/rubric/docs/config-schema.json.md +532 -0
  85. package/configure/node_modules/@pie-element/rubric/docs/demo/config.js +8 -0
  86. package/configure/node_modules/@pie-element/rubric/docs/demo/generate.js +8 -0
  87. package/configure/node_modules/@pie-element/rubric/docs/demo/index.html +2 -0
  88. package/configure/node_modules/@pie-element/rubric/docs/pie-schema.json +391 -0
  89. package/configure/node_modules/@pie-element/rubric/docs/pie-schema.json.md +281 -0
  90. package/configure/node_modules/@pie-element/rubric/lib/index.js +52 -0
  91. package/configure/node_modules/@pie-element/rubric/lib/index.js.map +1 -0
  92. package/configure/node_modules/@pie-element/rubric/lib/main.js +210 -0
  93. package/configure/node_modules/@pie-element/rubric/lib/main.js.map +1 -0
  94. package/configure/node_modules/@pie-element/rubric/lib/print.js +71 -0
  95. package/configure/node_modules/@pie-element/rubric/lib/print.js.map +1 -0
  96. package/configure/node_modules/@pie-element/rubric/package.json +30 -0
  97. package/configure/node_modules/@pie-element/rubric/src/__tests__/__snapshots__/rubric-view.test.jsx.snap +2641 -0
  98. package/configure/node_modules/@pie-element/rubric/src/__tests__/rubric-view.test.jsx +49 -0
  99. package/configure/node_modules/@pie-element/rubric/src/index.js +48 -0
  100. package/configure/node_modules/@pie-element/rubric/src/main.jsx +226 -0
  101. package/configure/node_modules/@pie-element/rubric/src/print.js +74 -0
  102. package/configure/node_modules/clsx/clsx.d.ts +6 -0
  103. package/configure/node_modules/clsx/dist/clsx.js +1 -0
  104. package/configure/node_modules/clsx/dist/clsx.m.js +1 -0
  105. package/configure/node_modules/clsx/dist/clsx.min.js +1 -0
  106. package/configure/node_modules/clsx/license +9 -0
  107. package/configure/node_modules/clsx/package.json +37 -0
  108. package/configure/node_modules/clsx/readme.md +88 -0
  109. package/configure/package.json +12 -9
  110. package/configure/src/__tests__/index.test.js +30 -5
  111. package/configure/src/__tests__/main.test.jsx +39 -23
  112. package/configure/src/index.js +13 -6
  113. package/configure/src/main.jsx +16 -15
  114. package/controller/lib/defaults.js +11 -15
  115. package/controller/lib/defaults.js.map +1 -1
  116. package/controller/lib/index.js +117 -180
  117. package/controller/lib/index.js.map +1 -1
  118. package/controller/lib/utils.js +1 -3
  119. package/controller/lib/utils.js.map +1 -1
  120. package/controller/package.json +1 -1
  121. package/lib/index.js +113 -204
  122. package/lib/index.js.map +1 -1
  123. package/lib/print.js +96 -190
  124. package/lib/print.js.map +1 -1
  125. package/package.json +10 -14
  126. package/src/__tests__/index.test.js +25 -7
  127. package/configure/src/__tests__/__snapshots__/main.test.jsx.snap +0 -193
  128. package/esm/configure.js +0 -15856
  129. package/esm/configure.js.map +0 -1
  130. package/esm/controller.js +0 -281
  131. package/esm/controller.js.map +0 -1
  132. package/esm/element.js +0 -179
  133. package/esm/element.js.map +0 -1
  134. package/esm/package.json +0 -3
  135. package/esm/print.js +0 -163
  136. package/esm/print.js.map +0 -1
  137. package/module/configure.js +0 -1
  138. package/module/controller.js +0 -262
  139. package/module/demo.js +0 -221
  140. package/module/element.js +0 -1
  141. package/module/index.html +0 -21
  142. package/module/manifest.json +0 -22
  143. package/module/print-demo.js +0 -259
  144. package/module/print.html +0 -18
  145. package/module/print.js +0 -1
@@ -1,7 +1,6 @@
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
  });
@@ -12,138 +11,99 @@ exports.model = model;
12
11
  exports.normalize = void 0;
13
12
  exports.outcome = outcome;
14
13
  exports.validate = void 0;
15
-
16
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
17
-
18
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
19
-
20
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
21
-
22
14
  var _defaults = _interopRequireDefault(require("./defaults"));
23
-
24
15
  var _utils = require("./utils");
25
-
26
- 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
- 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
16
  // todo the import from pie-lib/rubric WILL break pslb
31
17
  // so don't use it unless you also test "yarn build"
32
- var RUBRIC_TYPES = {
18
+ const RUBRIC_TYPES = {
33
19
  SIMPLE_RUBRIC: 'simpleRubric',
34
20
  MULTI_TRAIT_RUBRIC: 'multiTraitRubric',
35
21
  'rubricless': 'rubricless'
36
22
  };
37
-
38
- function createDefaultModel() {
39
- var model = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
40
- return new Promise(function (resolve) {
41
- return resolve(_objectSpread(_objectSpread({}, _defaults["default"]), model));
42
- });
23
+ function createDefaultModel(model = {}) {
24
+ return new Promise(resolve => resolve({
25
+ ..._defaults.default,
26
+ ...model
27
+ }));
43
28
  }
29
+ const normalize = question => ({
30
+ ..._defaults.default,
31
+ ...question
32
+ });
44
33
 
45
- var normalize = function normalize(question) {
46
- return _objectSpread(_objectSpread({}, _defaults["default"]), question);
47
- };
48
34
  /**
49
35
  * @param {*} question
50
36
  * @param {*} session
51
37
  * @param {*} env
52
38
  */
53
-
54
-
55
39
  exports.normalize = normalize;
40
+ async function model(question, session, env) {
41
+ const normalizedQuestion = normalize(question);
42
+ if (normalizedQuestion.rubricType === RUBRIC_TYPES.SIMPLE_RUBRIC || normalizedQuestion.rubricType === RUBRIC_TYPES.RUBRICLESS) {
43
+ return new Promise(resolve => {
44
+ resolve(env && env.role && env.role === 'instructor' ? {
45
+ ...normalizedQuestion,
46
+ rubrics: {
47
+ ...normalizedQuestion.rubrics,
48
+ multiTraitRubric: {
49
+ ...normalizedQuestion.rubrics.multiTraitRubric,
50
+ visible: false
51
+ }
52
+ }
53
+ } : {});
54
+ });
55
+ } else {
56
+ if (!env.role || env.role === 'student' && normalizedQuestion.rubrics && normalizedQuestion.rubrics.multiTraitRubric) {
57
+ normalizedQuestion.rubrics.multiTraitRubric.visible = normalizedQuestion.visibleToStudent;
58
+ } else {
59
+ normalizedQuestion.rubrics.multiTraitRubric.visible = true;
60
+ }
56
61
 
57
- function model(_x, _x2, _x3) {
58
- return _model.apply(this, arguments);
59
- }
60
-
61
- function _model() {
62
- _model = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(question, session, env) {
63
- var normalizedQuestion, _ref, scales, excludeZero, parsedScales;
64
-
65
- return _regenerator["default"].wrap(function _callee$(_context) {
66
- while (1) {
67
- switch (_context.prev = _context.next) {
68
- case 0:
69
- normalizedQuestion = normalize(question);
70
-
71
- if (!(normalizedQuestion.rubricType === RUBRIC_TYPES.SIMPLE_RUBRIC || normalizedQuestion.rubricType === RUBRIC_TYPES.RUBRICLESS)) {
72
- _context.next = 5;
73
- break;
74
- }
75
-
76
- return _context.abrupt("return", new Promise(function (resolve) {
77
- resolve(env && env.role && env.role === 'instructor' ? _objectSpread(_objectSpread({}, normalizedQuestion), {}, {
78
- rubrics: _objectSpread(_objectSpread({}, normalizedQuestion.rubrics), {}, {
79
- multiTraitRubric: _objectSpread(_objectSpread({}, normalizedQuestion.rubrics.multiTraitRubric), {}, {
80
- visible: false
81
- })
82
- })
83
- }) : {});
84
- }));
85
-
86
- case 5:
87
- if (!env.role || env.role === 'student' && normalizedQuestion.rubrics && normalizedQuestion.rubrics.multiTraitRubric) {
88
- normalizedQuestion.rubrics.multiTraitRubric.visible = normalizedQuestion.visibleToStudent;
89
- } else {
90
- normalizedQuestion.rubrics.multiTraitRubric.visible = true;
91
- } // todo update pie-ui instead of parsing this here:
92
-
93
-
94
- _ref = normalizedQuestion.rubrics.multiTraitRubric || {}, scales = _ref.scales, excludeZero = _ref.excludeZero;
95
- parsedScales = (scales || []).map(function (scale) {
96
- return _objectSpread(_objectSpread({}, scale), {}, {
97
- excludeZero: excludeZero
98
- });
99
- });
100
- return _context.abrupt("return", _objectSpread(_objectSpread({}, normalizedQuestion), {}, {
101
- rubrics: _objectSpread(_objectSpread({}, normalizedQuestion.rubrics), {}, {
102
- simpleRubric: _objectSpread(_objectSpread({}, normalizedQuestion.rubrics.simpleRubric), {}, {
103
- visible: false
104
- }),
105
- rubricless: _objectSpread(_objectSpread({}, normalizedQuestion.rubrics.rubricless), {}, {
106
- visible: false
107
- }),
108
- multiTraitRubric: _objectSpread(_objectSpread({}, normalizedQuestion.rubrics.multiTraitRubric), {}, {
109
- scales: parsedScales
110
- })
111
- })
112
- }));
113
-
114
- case 9:
115
- case "end":
116
- return _context.stop();
62
+ // todo update pie-ui instead of parsing this here:
63
+ const {
64
+ scales,
65
+ excludeZero
66
+ } = normalizedQuestion.rubrics.multiTraitRubric || {};
67
+ const parsedScales = (scales || []).map(scale => ({
68
+ ...scale,
69
+ excludeZero
70
+ }));
71
+ return {
72
+ ...normalizedQuestion,
73
+ rubrics: {
74
+ ...normalizedQuestion.rubrics,
75
+ simpleRubric: {
76
+ ...normalizedQuestion.rubrics.simpleRubric,
77
+ visible: false
78
+ },
79
+ rubricless: {
80
+ ...normalizedQuestion.rubrics.rubricless,
81
+ visible: false
82
+ },
83
+ multiTraitRubric: {
84
+ ...normalizedQuestion.rubrics.multiTraitRubric,
85
+ scales: parsedScales
117
86
  }
118
87
  }
119
- }, _callee);
120
- }));
121
- return _model.apply(this, arguments);
88
+ };
89
+ }
122
90
  }
91
+ const getScore = () => 0;
123
92
 
124
- var getScore = function getScore() {
125
- return 0;
126
- };
127
93
  /**
128
94
  * @param {Object} model - the main model
129
95
  * @param {*} session
130
96
  * @param {Object} env
131
97
  */
132
-
133
-
134
98
  exports.getScore = getScore;
135
-
136
99
  function outcome() {
137
- return new Promise(function (resolve) {
138
- return resolve({
139
- score: 0,
140
- empty: true
141
- });
142
- });
100
+ return new Promise(resolve => resolve({
101
+ score: 0,
102
+ empty: true
103
+ }));
143
104
  }
144
-
145
- var createCorrectResponseSession = function createCorrectResponseSession(question, env) {
146
- return new Promise(function (resolve) {
105
+ const createCorrectResponseSession = (question, env) => {
106
+ return new Promise(resolve => {
147
107
  if (env.mode !== 'evaluate' && env.role === 'instructor') {
148
108
  resolve({
149
109
  id: '1'
@@ -152,151 +112,128 @@ var createCorrectResponseSession = function createCorrectResponseSession(questio
152
112
  resolve(null);
153
113
  }
154
114
  });
155
- }; // IMPORTANT! This function is a duplicate of rubric/controller/validate function!
156
- // If you make any changes to this function, please make sure you also update rubric/controller/validate function!“.
157
-
115
+ };
158
116
 
117
+ // IMPORTANT! This function is a duplicate of rubric/controller/validate function!
118
+ // If you make any changes to this function, please make sure you also update rubric/controller/validate function!“.
159
119
  exports.createCorrectResponseSession = createCorrectResponseSession;
160
-
161
- var validateSimpleRubric = function validateSimpleRubric(model) {
162
- var points = model.points;
163
- var errors = {};
164
- var pointsDescriptorsErrors = {};
165
- (points || []).forEach(function (point, index) {
120
+ const validateSimpleRubric = model => {
121
+ const {
122
+ points
123
+ } = model;
124
+ const errors = {};
125
+ const pointsDescriptorsErrors = {};
126
+ (points || []).forEach((point, index) => {
166
127
  if (!point || point === '<div></div>') {
167
128
  pointsDescriptorsErrors[index] = 'Points descriptors cannot be empty.';
168
129
  } else {
169
- var identicalPointDescr = points.slice(index + 1).some(function (p) {
170
- return (0, _utils.markupToText)(p) === (0, _utils.markupToText)(point);
171
- });
172
-
130
+ const identicalPointDescr = points.slice(index + 1).some(p => (0, _utils.markupToText)(p) === (0, _utils.markupToText)(point));
173
131
  if (identicalPointDescr) {
174
132
  pointsDescriptorsErrors[index] = 'Points descriptors should be unique.';
175
133
  }
176
134
  }
177
135
  });
178
-
179
136
  if (Object.keys(pointsDescriptorsErrors).length > 0) {
180
137
  errors.pointsDescriptorsErrors = pointsDescriptorsErrors;
181
138
  }
182
-
183
139
  return errors;
184
- }; // IMPORTANT! This function is a duplicate of multi-trait-rubric/controller/validate function!
185
- // If you make any changes to this function, please make sure you also update multi-trait-rubric/controller/validate function!“.
186
-
187
-
188
- var validateMultiTraitRubric = function validateMultiTraitRubric(model) {
189
- var scales = model.scales,
190
- _model$description = model.description,
191
- description = _model$description === void 0 ? false : _model$description,
192
- _model$pointLabels = model.pointLabels,
193
- pointLabels = _model$pointLabels === void 0 ? false : _model$pointLabels;
194
- var errors = {};
195
- var traitsErrors = {};
196
- var scorePointsErrors = {};
197
- (scales || []).forEach(function (scale, scaleIndex) {
198
- var _scale$traits = scale.traits,
199
- traits = _scale$traits === void 0 ? [] : _scale$traits;
200
- var _scale$scorePointsLab = scale.scorePointsLabels,
201
- scorePointsLabels = _scale$scorePointsLab === void 0 ? [] : _scale$scorePointsLab;
202
- var scaleErrors = {};
203
- var scorePointsLabelsErrors = {};
140
+ };
204
141
 
142
+ // IMPORTANT! This function is a duplicate of multi-trait-rubric/controller/validate function!
143
+ // If you make any changes to this function, please make sure you also update multi-trait-rubric/controller/validate function!“.
144
+ const validateMultiTraitRubric = model => {
145
+ const {
146
+ scales,
147
+ description = false,
148
+ pointLabels = false
149
+ } = model;
150
+ const errors = {};
151
+ const traitsErrors = {};
152
+ const scorePointsErrors = {};
153
+ (scales || []).forEach((scale, scaleIndex) => {
154
+ const {
155
+ traits = []
156
+ } = scale;
157
+ const {
158
+ scorePointsLabels = []
159
+ } = scale;
160
+ const scaleErrors = {};
161
+ const scorePointsLabelsErrors = {};
205
162
  if (pointLabels) {
206
- scorePointsLabels.forEach(function (scorePointLabel, scoreIndex) {
163
+ scorePointsLabels.forEach((scorePointLabel, scoreIndex) => {
207
164
  if (!scorePointLabel || scorePointLabel === '<div></div>') {
208
165
  scorePointsLabelsErrors[scoreIndex] = 'Points labels should not be empty.';
209
166
  } else {
210
- var identicalScorePointLabel = scorePointsLabels.slice(scoreIndex + 1).some(function (s) {
211
- return (0, _utils.markupToText)(s) === (0, _utils.markupToText)(scorePointLabel);
212
- });
213
-
167
+ const identicalScorePointLabel = scorePointsLabels.slice(scoreIndex + 1).some(s => (0, _utils.markupToText)(s) === (0, _utils.markupToText)(scorePointLabel));
214
168
  if (identicalScorePointLabel) {
215
169
  scorePointsLabelsErrors[scoreIndex] = 'Points labels should be unique.';
216
170
  }
217
171
  }
218
172
  });
219
173
  }
220
-
221
174
  if (Object.keys(scorePointsLabelsErrors).length > 0) {
222
175
  scorePointsErrors[scaleIndex] = scorePointsLabelsErrors;
223
176
  }
224
-
225
- traits.forEach(function (trait, traitIndex) {
177
+ traits.forEach((trait, traitIndex) => {
226
178
  if (!trait.name || trait.name === '<div></div>') {
227
179
  scaleErrors[traitIndex] = {
228
180
  name: 'Trait names should not be empty.'
229
181
  };
230
182
  } else {
231
- var identicalTraitName = traits.slice(traitIndex + 1).some(function (t) {
232
- return (0, _utils.markupToText)(t.name) === (0, _utils.markupToText)(trait.name);
233
- });
234
-
183
+ const identicalTraitName = traits.slice(traitIndex + 1).some(t => (0, _utils.markupToText)(t.name) === (0, _utils.markupToText)(trait.name));
235
184
  if (identicalTraitName) {
236
185
  scaleErrors[traitIndex] = {
237
186
  name: 'Trait names should be unique.'
238
187
  };
239
188
  }
240
189
  }
241
-
242
190
  if (description && (!trait.description || trait.description === '<div></div>')) {
243
- scaleErrors[traitIndex] = _objectSpread(_objectSpread({}, scaleErrors[traitIndex]), {}, {
191
+ scaleErrors[traitIndex] = {
192
+ ...scaleErrors[traitIndex],
244
193
  description: 'Trait description should not be empty'
245
- });
194
+ };
246
195
  } else {
247
- var identicalTraitDescr = traits.slice(traitIndex + 1).some(function (t) {
248
- return (0, _utils.markupToText)(t.description) === (0, _utils.markupToText)(trait.description);
249
- });
250
-
196
+ const identicalTraitDescr = traits.slice(traitIndex + 1).some(t => (0, _utils.markupToText)(t.description) === (0, _utils.markupToText)(trait.description));
251
197
  if (description && identicalTraitDescr) {
252
- scaleErrors[traitIndex] = _objectSpread(_objectSpread({}, scaleErrors[traitIndex]), {}, {
198
+ scaleErrors[traitIndex] = {
199
+ ...scaleErrors[traitIndex],
253
200
  description: 'Trait descriptions should be unique.'
254
- });
201
+ };
255
202
  }
256
203
  }
257
204
  });
258
-
259
205
  if (Object.keys(scaleErrors).length > 0) {
260
206
  traitsErrors[scaleIndex] = scaleErrors;
261
207
  }
262
208
  });
263
-
264
209
  if (Object.keys(traitsErrors).length > 0) {
265
210
  errors.traitsErrors = traitsErrors;
266
211
  }
267
-
268
212
  if (Object.keys(scorePointsErrors).length > 0) {
269
213
  errors.scorePointsErrors = scorePointsErrors;
270
214
  }
271
-
272
215
  return errors;
273
216
  };
274
-
275
- var validate = function validate() {
276
- var model = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
277
- var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
278
- var _model$rubrics = model.rubrics,
279
- rubrics = _model$rubrics === void 0 ? {} : _model$rubrics,
280
- rubricType = model.rubricType;
281
- var _rubrics$multiTraitRu = rubrics.multiTraitRubric,
282
- multiTraitRubric = _rubrics$multiTraitRu === void 0 ? {} : _rubrics$multiTraitRu,
283
- _rubrics$simpleRubric = rubrics.simpleRubric,
284
- simpleRubric = _rubrics$simpleRubric === void 0 ? {} : _rubrics$simpleRubric;
285
- var errors = {};
286
-
217
+ const validate = (model = {}, config = {}) => {
218
+ const {
219
+ rubrics = {},
220
+ rubricType
221
+ } = model;
222
+ const {
223
+ multiTraitRubric = {},
224
+ simpleRubric = {}
225
+ } = rubrics;
226
+ let errors = {};
287
227
  switch (rubricType) {
288
228
  case RUBRIC_TYPES.SIMPLE_RUBRIC:
289
229
  default:
290
230
  errors = validateSimpleRubric(simpleRubric);
291
231
  break;
292
-
293
232
  case RUBRIC_TYPES.MULTI_TRAIT_RUBRIC:
294
233
  errors = validateMultiTraitRubric(multiTraitRubric);
295
234
  break;
296
235
  }
297
-
298
236
  return errors;
299
237
  };
300
-
301
238
  exports.validate = validate;
302
239
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["RUBRIC_TYPES","SIMPLE_RUBRIC","MULTI_TRAIT_RUBRIC","createDefaultModel","model","Promise","resolve","defaults","normalize","question","session","env","normalizedQuestion","rubricType","RUBRICLESS","role","rubrics","multiTraitRubric","visible","visibleToStudent","scales","excludeZero","parsedScales","map","scale","simpleRubric","rubricless","getScore","outcome","score","empty","createCorrectResponseSession","mode","id","validateSimpleRubric","points","errors","pointsDescriptorsErrors","forEach","point","index","identicalPointDescr","slice","some","p","Object","keys","length","validateMultiTraitRubric","description","pointLabels","traitsErrors","scorePointsErrors","scaleIndex","traits","scorePointsLabels","scaleErrors","scorePointsLabelsErrors","scorePointLabel","scoreIndex","identicalScorePointLabel","s","trait","traitIndex","name","identicalTraitName","t","identicalTraitDescr","validate","config"],"mappings":"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","sourcesContent":["import defaults from './defaults';\nimport { markupToText } from './utils';\n\n\n// todo the import from pie-lib/rubric WILL break pslb\n// so don't use it unless you also test \"yarn build\"\nconst RUBRIC_TYPES = {\n SIMPLE_RUBRIC: 'simpleRubric',\n MULTI_TRAIT_RUBRIC: 'multiTraitRubric',\n 'rubricless': 'rubricless',\n};\n\nexport function createDefaultModel(model = {}) {\n return new Promise((resolve) => resolve({ ...defaults, ...model }));\n}\n\nexport const normalize = (question) => ({ ...defaults, ...question });\n\n/**\n * @param {*} question\n * @param {*} session\n * @param {*} env\n */\nexport async function model(question, session, env) {\n const normalizedQuestion = normalize(question);\n\n if (\n normalizedQuestion.rubricType === RUBRIC_TYPES.SIMPLE_RUBRIC ||\n normalizedQuestion.rubricType === RUBRIC_TYPES.RUBRICLESS\n ) {\n return new Promise((resolve) => {\n resolve(\n env && env.role && env.role === 'instructor'\n ? {\n ...normalizedQuestion,\n rubrics: {\n ...normalizedQuestion.rubrics,\n multiTraitRubric: {\n ...normalizedQuestion.rubrics.multiTraitRubric,\n visible: false,\n },\n },\n }\n : {},\n );\n });\n } else {\n if (\n !env.role ||\n (env.role === 'student' && normalizedQuestion.rubrics && normalizedQuestion.rubrics.multiTraitRubric)\n ) {\n normalizedQuestion.rubrics.multiTraitRubric.visible = normalizedQuestion.visibleToStudent;\n } else {\n normalizedQuestion.rubrics.multiTraitRubric.visible = true;\n }\n\n // todo update pie-ui instead of parsing this here:\n const { scales, excludeZero } = normalizedQuestion.rubrics.multiTraitRubric || {};\n const parsedScales = (scales || []).map((scale) => ({ ...scale, excludeZero }));\n\n return {\n ...normalizedQuestion,\n rubrics: {\n ...normalizedQuestion.rubrics,\n simpleRubric: {\n ...normalizedQuestion.rubrics.simpleRubric,\n visible: false,\n },\n rubricless: {\n ...normalizedQuestion.rubrics.rubricless,\n visible: false,\n },\n multiTraitRubric: {\n ...normalizedQuestion.rubrics.multiTraitRubric,\n scales: parsedScales,\n },\n },\n };\n }\n}\n\nexport const getScore = () => 0;\n\n/**\n * @param {Object} model - the main model\n * @param {*} session\n * @param {Object} env\n */\nexport function outcome() {\n return new Promise((resolve) => resolve({ score: 0, empty: true }));\n}\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise((resolve) => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n resolve({ id: '1' });\n } else {\n resolve(null);\n }\n });\n};\n\n// IMPORTANT! This function is a duplicate of rubric/controller/validate function!\n// If you make any changes to this function, please make sure you also update rubric/controller/validate function!“.\nconst validateSimpleRubric = (model) => {\n const { points } = model;\n const errors = {};\n const pointsDescriptorsErrors = {};\n\n (points || []).forEach((point, index) => {\n\n if (!point || point === '<div></div>') {\n pointsDescriptorsErrors[index] = 'Points descriptors cannot be empty.';\n } else {\n const identicalPointDescr = points.slice(index + 1).some((p) => markupToText(p) === markupToText(point));\n\n if (identicalPointDescr) {\n pointsDescriptorsErrors[index] = 'Points descriptors should be unique.';\n }\n }\n });\n\n if (Object.keys(pointsDescriptorsErrors).length > 0) {\n errors.pointsDescriptorsErrors = pointsDescriptorsErrors;\n }\n\n return errors;\n};\n\n// IMPORTANT! This function is a duplicate of multi-trait-rubric/controller/validate function!\n// If you make any changes to this function, please make sure you also update multi-trait-rubric/controller/validate function!“.\nconst validateMultiTraitRubric = (model) => {\n const { scales, description = false, pointLabels = false } = model;\n const errors = {};\n const traitsErrors = {};\n const scorePointsErrors = {};\n\n (scales || []).forEach((scale, scaleIndex) => {\n const { traits = [] } = scale;\n const { scorePointsLabels = [] } = scale;\n const scaleErrors = {};\n const scorePointsLabelsErrors = {};\n\n if (pointLabels) {\n scorePointsLabels.forEach((scorePointLabel, scoreIndex) => {\n if (!scorePointLabel || scorePointLabel === '<div></div>') {\n scorePointsLabelsErrors[scoreIndex] = 'Points labels should not be empty.';\n } else {\n const identicalScorePointLabel = scorePointsLabels\n .slice(scoreIndex + 1)\n .some((s) => markupToText(s) === markupToText(scorePointLabel));\n\n if (identicalScorePointLabel) {\n scorePointsLabelsErrors[scoreIndex] = 'Points labels should be unique.';\n }\n }\n });\n }\n\n if (Object.keys(scorePointsLabelsErrors).length > 0) {\n scorePointsErrors[scaleIndex] = scorePointsLabelsErrors;\n }\n\n traits.forEach((trait, traitIndex) => {\n if (!trait.name || trait.name === '<div></div>') {\n scaleErrors[traitIndex] = { name: 'Trait names should not be empty.' };\n } else {\n const identicalTraitName = traits\n .slice(traitIndex + 1)\n .some((t) => markupToText(t.name) === markupToText(trait.name));\n\n if (identicalTraitName) {\n scaleErrors[traitIndex] = { name: 'Trait names should be unique.' };\n }\n }\n if (description && (!trait.description || trait.description === '<div></div>')) {\n scaleErrors[traitIndex] = { ...scaleErrors[traitIndex], description: 'Trait description should not be empty' };\n } else {\n const identicalTraitDescr = traits\n .slice(traitIndex + 1)\n .some((t) => markupToText(t.description) === markupToText(trait.description));\n\n if (description && identicalTraitDescr) {\n scaleErrors[traitIndex] = { ...scaleErrors[traitIndex], description: 'Trait descriptions should be unique.' };\n }\n }\n });\n if (Object.keys(scaleErrors).length > 0) {\n traitsErrors[scaleIndex] = scaleErrors;\n }\n });\n\n if (Object.keys(traitsErrors).length > 0) {\n errors.traitsErrors = traitsErrors;\n }\n\n if (Object.keys(scorePointsErrors).length > 0) {\n errors.scorePointsErrors = scorePointsErrors;\n }\n\n return errors;\n};\n\nexport const validate = (model = {}, config = {}) => {\n const { rubrics = {}, rubricType } = model;\n const { multiTraitRubric = {}, simpleRubric = {} } = rubrics;\n let errors = {};\n\n switch (rubricType) {\n case RUBRIC_TYPES.SIMPLE_RUBRIC:\n default:\n errors = validateSimpleRubric(simpleRubric);\n break;\n case RUBRIC_TYPES.MULTI_TRAIT_RUBRIC:\n errors = validateMultiTraitRubric(multiTraitRubric);\n break;\n }\n\n return errors;\n};\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":["_defaults","_interopRequireDefault","require","_utils","RUBRIC_TYPES","SIMPLE_RUBRIC","MULTI_TRAIT_RUBRIC","createDefaultModel","model","Promise","resolve","defaults","normalize","question","exports","session","env","normalizedQuestion","rubricType","RUBRICLESS","role","rubrics","multiTraitRubric","visible","visibleToStudent","scales","excludeZero","parsedScales","map","scale","simpleRubric","rubricless","getScore","outcome","score","empty","createCorrectResponseSession","mode","id","validateSimpleRubric","points","errors","pointsDescriptorsErrors","forEach","point","index","identicalPointDescr","slice","some","p","markupToText","Object","keys","length","validateMultiTraitRubric","description","pointLabels","traitsErrors","scorePointsErrors","scaleIndex","traits","scorePointsLabels","scaleErrors","scorePointsLabelsErrors","scorePointLabel","scoreIndex","identicalScorePointLabel","s","trait","traitIndex","name","identicalTraitName","t","identicalTraitDescr","validate","config"],"sources":["../src/index.js"],"sourcesContent":["import defaults from './defaults';\nimport { markupToText } from './utils';\n\n\n// todo the import from pie-lib/rubric WILL break pslb\n// so don't use it unless you also test \"yarn build\"\nconst RUBRIC_TYPES = {\n SIMPLE_RUBRIC: 'simpleRubric',\n MULTI_TRAIT_RUBRIC: 'multiTraitRubric',\n 'rubricless': 'rubricless',\n};\n\nexport function createDefaultModel(model = {}) {\n return new Promise((resolve) => resolve({ ...defaults, ...model }));\n}\n\nexport const normalize = (question) => ({ ...defaults, ...question });\n\n/**\n * @param {*} question\n * @param {*} session\n * @param {*} env\n */\nexport async function model(question, session, env) {\n const normalizedQuestion = normalize(question);\n\n if (\n normalizedQuestion.rubricType === RUBRIC_TYPES.SIMPLE_RUBRIC ||\n normalizedQuestion.rubricType === RUBRIC_TYPES.RUBRICLESS\n ) {\n return new Promise((resolve) => {\n resolve(\n env && env.role && env.role === 'instructor'\n ? {\n ...normalizedQuestion,\n rubrics: {\n ...normalizedQuestion.rubrics,\n multiTraitRubric: {\n ...normalizedQuestion.rubrics.multiTraitRubric,\n visible: false,\n },\n },\n }\n : {},\n );\n });\n } else {\n if (\n !env.role ||\n (env.role === 'student' && normalizedQuestion.rubrics && normalizedQuestion.rubrics.multiTraitRubric)\n ) {\n normalizedQuestion.rubrics.multiTraitRubric.visible = normalizedQuestion.visibleToStudent;\n } else {\n normalizedQuestion.rubrics.multiTraitRubric.visible = true;\n }\n\n // todo update pie-ui instead of parsing this here:\n const { scales, excludeZero } = normalizedQuestion.rubrics.multiTraitRubric || {};\n const parsedScales = (scales || []).map((scale) => ({ ...scale, excludeZero }));\n\n return {\n ...normalizedQuestion,\n rubrics: {\n ...normalizedQuestion.rubrics,\n simpleRubric: {\n ...normalizedQuestion.rubrics.simpleRubric,\n visible: false,\n },\n rubricless: {\n ...normalizedQuestion.rubrics.rubricless,\n visible: false,\n },\n multiTraitRubric: {\n ...normalizedQuestion.rubrics.multiTraitRubric,\n scales: parsedScales,\n },\n },\n };\n }\n}\n\nexport const getScore = () => 0;\n\n/**\n * @param {Object} model - the main model\n * @param {*} session\n * @param {Object} env\n */\nexport function outcome() {\n return new Promise((resolve) => resolve({ score: 0, empty: true }));\n}\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise((resolve) => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n resolve({ id: '1' });\n } else {\n resolve(null);\n }\n });\n};\n\n// IMPORTANT! This function is a duplicate of rubric/controller/validate function!\n// If you make any changes to this function, please make sure you also update rubric/controller/validate function!“.\nconst validateSimpleRubric = (model) => {\n const { points } = model;\n const errors = {};\n const pointsDescriptorsErrors = {};\n\n (points || []).forEach((point, index) => {\n\n if (!point || point === '<div></div>') {\n pointsDescriptorsErrors[index] = 'Points descriptors cannot be empty.';\n } else {\n const identicalPointDescr = points.slice(index + 1).some((p) => markupToText(p) === markupToText(point));\n\n if (identicalPointDescr) {\n pointsDescriptorsErrors[index] = 'Points descriptors should be unique.';\n }\n }\n });\n\n if (Object.keys(pointsDescriptorsErrors).length > 0) {\n errors.pointsDescriptorsErrors = pointsDescriptorsErrors;\n }\n\n return errors;\n};\n\n// IMPORTANT! This function is a duplicate of multi-trait-rubric/controller/validate function!\n// If you make any changes to this function, please make sure you also update multi-trait-rubric/controller/validate function!“.\nconst validateMultiTraitRubric = (model) => {\n const { scales, description = false, pointLabels = false } = model;\n const errors = {};\n const traitsErrors = {};\n const scorePointsErrors = {};\n\n (scales || []).forEach((scale, scaleIndex) => {\n const { traits = [] } = scale;\n const { scorePointsLabels = [] } = scale;\n const scaleErrors = {};\n const scorePointsLabelsErrors = {};\n\n if (pointLabels) {\n scorePointsLabels.forEach((scorePointLabel, scoreIndex) => {\n if (!scorePointLabel || scorePointLabel === '<div></div>') {\n scorePointsLabelsErrors[scoreIndex] = 'Points labels should not be empty.';\n } else {\n const identicalScorePointLabel = scorePointsLabels\n .slice(scoreIndex + 1)\n .some((s) => markupToText(s) === markupToText(scorePointLabel));\n\n if (identicalScorePointLabel) {\n scorePointsLabelsErrors[scoreIndex] = 'Points labels should be unique.';\n }\n }\n });\n }\n\n if (Object.keys(scorePointsLabelsErrors).length > 0) {\n scorePointsErrors[scaleIndex] = scorePointsLabelsErrors;\n }\n\n traits.forEach((trait, traitIndex) => {\n if (!trait.name || trait.name === '<div></div>') {\n scaleErrors[traitIndex] = { name: 'Trait names should not be empty.' };\n } else {\n const identicalTraitName = traits\n .slice(traitIndex + 1)\n .some((t) => markupToText(t.name) === markupToText(trait.name));\n\n if (identicalTraitName) {\n scaleErrors[traitIndex] = { name: 'Trait names should be unique.' };\n }\n }\n if (description && (!trait.description || trait.description === '<div></div>')) {\n scaleErrors[traitIndex] = { ...scaleErrors[traitIndex], description: 'Trait description should not be empty' };\n } else {\n const identicalTraitDescr = traits\n .slice(traitIndex + 1)\n .some((t) => markupToText(t.description) === markupToText(trait.description));\n\n if (description && identicalTraitDescr) {\n scaleErrors[traitIndex] = { ...scaleErrors[traitIndex], description: 'Trait descriptions should be unique.' };\n }\n }\n });\n if (Object.keys(scaleErrors).length > 0) {\n traitsErrors[scaleIndex] = scaleErrors;\n }\n });\n\n if (Object.keys(traitsErrors).length > 0) {\n errors.traitsErrors = traitsErrors;\n }\n\n if (Object.keys(scorePointsErrors).length > 0) {\n errors.scorePointsErrors = scorePointsErrors;\n }\n\n return errors;\n};\n\nexport const validate = (model = {}, config = {}) => {\n const { rubrics = {}, rubricType } = model;\n const { multiTraitRubric = {}, simpleRubric = {} } = rubrics;\n let errors = {};\n\n switch (rubricType) {\n case RUBRIC_TYPES.SIMPLE_RUBRIC:\n default:\n errors = validateSimpleRubric(simpleRubric);\n break;\n case RUBRIC_TYPES.MULTI_TRAIT_RUBRIC:\n errors = validateMultiTraitRubric(multiTraitRubric);\n break;\n }\n\n return errors;\n};\n"],"mappings":"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","ignoreList":[]}
@@ -4,10 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.markupToText = void 0;
7
-
8
- var markupToText = function markupToText(s) {
7
+ const markupToText = s => {
9
8
  return (s || '').replace(/(<([^>]+)>)/ig, '');
10
9
  };
11
-
12
10
  exports.markupToText = markupToText;
13
11
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/utils.js"],"names":["markupToText","s","replace"],"mappings":";;;;;;;AAAO,IAAMA,YAAY,GAAG,SAAfA,YAAe,CAACC,CAAD,EAAO;AAC/B,SAAO,CAACA,CAAC,IAAI,EAAN,EAAUC,OAAV,CAAkB,eAAlB,EAAmC,EAAnC,CAAP;AACH,CAFM","sourcesContent":["export const markupToText = (s) => {\n return (s || '').replace(/(<([^>]+)>)/ig, '');\n};\n"],"file":"utils.js"}
1
+ {"version":3,"file":"utils.js","names":["markupToText","s","replace","exports"],"sources":["../src/utils.js"],"sourcesContent":["export const markupToText = (s) => {\n return (s || '').replace(/(<([^>]+)>)/ig, '');\n};\n"],"mappings":";;;;;;AAAO,MAAMA,YAAY,GAAIC,CAAC,IAAK;EAC/B,OAAO,CAACA,CAAC,IAAI,EAAE,EAAEC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;AACjD,CAAC;AAACC,OAAA,CAAAH,YAAA,GAAAA,YAAA","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pie-element/complex-rubric-controller",
3
3
  "private": true,
4
- "version": "4.2.1",
4
+ "version": "5.0.0-beta.0",
5
5
  "description": "",
6
6
  "scripts": {
7
7
  "test": "echo \"Error: no test specified\" && exit 1"