@pie-element/rubric 8.1.2-next.1 → 8.1.2

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 (93) hide show
  1. package/CHANGELOG.json +257 -0
  2. package/CHANGELOG.md +1725 -0
  3. package/LICENSE.md +5 -0
  4. package/README.md +3 -0
  5. package/configure/CHANGELOG.json +197 -0
  6. package/configure/CHANGELOG.md +1565 -0
  7. package/configure/lib/defaults.js +70 -0
  8. package/configure/lib/defaults.js.map +1 -0
  9. package/configure/lib/index.js +135 -0
  10. package/configure/lib/index.js.map +1 -0
  11. package/configure/lib/main.js +103 -0
  12. package/configure/lib/main.js.map +1 -0
  13. package/configure/package.json +23 -0
  14. package/configure/src/__tests__/index.test.jsx +192 -0
  15. package/configure/src/defaults.js +43 -0
  16. package/configure/src/index.js +139 -0
  17. package/configure/src/main.jsx +87 -0
  18. package/controller/CHANGELOG.json +17 -0
  19. package/controller/CHANGELOG.md +901 -0
  20. package/controller/lib/defaults.js +15 -0
  21. package/controller/lib/defaults.js.map +1 -0
  22. package/controller/lib/index.js +46 -0
  23. package/controller/lib/index.js.map +1 -0
  24. package/controller/package.json +12 -0
  25. package/controller/src/__tests__/index.test.js +33 -0
  26. package/controller/src/defaults.js +8 -0
  27. package/controller/src/index.js +41 -0
  28. package/docs/config-schema.json +712 -0
  29. package/docs/config-schema.json.md +532 -0
  30. package/docs/demo/config.js +8 -0
  31. package/docs/demo/generate.js +8 -0
  32. package/docs/demo/index.html +2 -0
  33. package/docs/pie-schema.json +391 -0
  34. package/docs/pie-schema.json.md +281 -0
  35. package/lib/index.js +52 -0
  36. package/lib/index.js.map +1 -0
  37. package/lib/main.js +208 -0
  38. package/lib/main.js.map +1 -0
  39. package/lib/print.js +71 -0
  40. package/lib/print.js.map +1 -0
  41. package/module/configure.js +1 -0
  42. package/module/controller.js +73 -0
  43. package/module/demo.js +33 -0
  44. package/module/element.js +1 -0
  45. package/module/index.html +21 -0
  46. package/module/manifest.json +14 -0
  47. package/module/print-demo.js +71 -0
  48. package/module/print.html +18 -0
  49. package/module/print.js +1 -0
  50. package/package.json +25 -88
  51. package/src/__tests__/rubric-view.test.jsx +37 -0
  52. package/src/index.js +48 -0
  53. package/src/main.jsx +226 -0
  54. package/src/print.js +74 -0
  55. package/configure.js +0 -2
  56. package/controller.js +0 -1
  57. package/dist/author/defaults.d.ts +0 -71
  58. package/dist/author/defaults.js +0 -53
  59. package/dist/author/index.d.ts +0 -21
  60. package/dist/author/index.js +0 -72
  61. package/dist/author/main.d.ts +0 -14
  62. package/dist/author/main.js +0 -51
  63. package/dist/browser/author/index.js +0 -44381
  64. package/dist/browser/author/index.js.map +0 -1
  65. package/dist/browser/controller/index.js +0 -41
  66. package/dist/browser/controller/index.js.map +0 -1
  67. package/dist/browser/delivery/index.js +0 -34
  68. package/dist/browser/delivery/index.js.map +0 -1
  69. package/dist/browser/dist-DESt1KeY.js +0 -9084
  70. package/dist/browser/dist-DESt1KeY.js.map +0 -1
  71. package/dist/browser/dist-DnnL1HSL.js +0 -98
  72. package/dist/browser/dist-DnnL1HSL.js.map +0 -1
  73. package/dist/browser/main-wvVb2SYi.js +0 -153
  74. package/dist/browser/main-wvVb2SYi.js.map +0 -1
  75. package/dist/browser/print/index.js +0 -34
  76. package/dist/browser/print/index.js.map +0 -1
  77. package/dist/browser/rubric.css +0 -2
  78. package/dist/controller/defaults.d.ts +0 -17
  79. package/dist/controller/defaults.js +0 -21
  80. package/dist/controller/index.d.ts +0 -10
  81. package/dist/controller/index.js +0 -23
  82. package/dist/delivery/index.d.ts +0 -16
  83. package/dist/delivery/index.js +0 -33
  84. package/dist/delivery/main.d.ts +0 -34
  85. package/dist/delivery/main.js +0 -156
  86. package/dist/index.d.ts +0 -1
  87. package/dist/index.iife.d.ts +0 -8
  88. package/dist/index.iife.js +0 -145
  89. package/dist/index.js +0 -2
  90. package/dist/print/index.d.ts +0 -15
  91. package/dist/print/index.js +0 -34
  92. package/dist/runtime-support.d.ts +0 -12
  93. package/dist/runtime-support.js +0 -12
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _default = exports.default = {
8
+ points: ['', '', '', ''],
9
+ sampleAnswers: [null, null, null, null],
10
+ maxPoints: 3,
11
+ maxPointsEnabled: true,
12
+ excludeZero: false,
13
+ excludeZeroEnabled: true
14
+ };
15
+ //# sourceMappingURL=defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.js","names":["points","sampleAnswers","maxPoints","maxPointsEnabled","excludeZero","excludeZeroEnabled"],"sources":["../src/defaults.js"],"sourcesContent":["export default {\n points: ['', '', '', ''],\n sampleAnswers: [null, null, null, null],\n maxPoints: 3,\n maxPointsEnabled: true,\n excludeZero: false,\n excludeZeroEnabled: true,\n};\n"],"mappings":";;;;;;iCAAe;EACbA,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;EACxBC,aAAa,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;EACvCC,SAAS,EAAE,CAAC;EACZC,gBAAgB,EAAE,IAAI;EACtBC,WAAW,EAAE,KAAK;EAClBC,kBAAkB,EAAE;AACtB,CAAC","ignoreList":[]}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.model = model;
8
+ exports.validate = validate;
9
+ var _defaults = _interopRequireDefault(require("./defaults"));
10
+ const normalize = model => ({
11
+ ..._defaults.default,
12
+ ...model
13
+ });
14
+ function model(model, session, env) {
15
+ return new Promise(resolve => {
16
+ const modelResult = normalize(model || {});
17
+ resolve(env && env.role && env.role === 'instructor' ? modelResult : {});
18
+ });
19
+ }
20
+ function markupToText(s) {
21
+ return (s || '').replace(/(<([^>]+)>)/gi, '');
22
+ }
23
+
24
+ // IMPORTANT! If you make any changes to this function, please make sure you also update complex-rubric/controller/validateSimpleRubric function!“.
25
+ function validate(model) {
26
+ const {
27
+ points
28
+ } = model;
29
+ const errors = {};
30
+ const pointsDescriptorsErrors = {};
31
+ (points || []).forEach((point, index) => {
32
+ if (!point || point === '<div></div>') {
33
+ pointsDescriptorsErrors[index] = 'Points descriptors cannot be empty.';
34
+ } else {
35
+ const identicalPointDescr = points.slice(index + 1).some(p => markupToText(p) === markupToText(point));
36
+ if (identicalPointDescr) {
37
+ pointsDescriptorsErrors[index] = 'Points descriptors should be unique.';
38
+ }
39
+ }
40
+ });
41
+ if (Object.keys(pointsDescriptorsErrors).length > 0) {
42
+ errors.pointsDescriptorsErrors = pointsDescriptorsErrors;
43
+ }
44
+ return errors;
45
+ }
46
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_defaults","_interopRequireDefault","require","normalize","model","defaults","session","env","Promise","resolve","modelResult","role","markupToText","s","replace","validate","points","errors","pointsDescriptorsErrors","forEach","point","index","identicalPointDescr","slice","some","p","Object","keys","length"],"sources":["../src/index.js"],"sourcesContent":["import defaults from './defaults';\n\nconst normalize = (model) => ({ ...defaults, ...model });\n\nexport function model(model, session, env) {\n return new Promise((resolve) => {\n const modelResult = normalize(model || {});\n\n resolve(env && env.role && env.role === 'instructor' ? modelResult : {});\n });\n}\n\nfunction markupToText(s) {\n return (s || '').replace(/(<([^>]+)>)/gi, '');\n}\n\n// IMPORTANT! If you make any changes to this function, please make sure you also update complex-rubric/controller/validateSimpleRubric function!“.\nexport function validate(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"],"mappings":";;;;;;;;AAAA,IAAAA,SAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,MAAMC,SAAS,GAAIC,KAAK,KAAM;EAAE,GAAGC,iBAAQ;EAAE,GAAGD;AAAM,CAAC,CAAC;AAEjD,SAASA,KAAKA,CAACA,KAAK,EAAEE,OAAO,EAAEC,GAAG,EAAE;EACzC,OAAO,IAAIC,OAAO,CAAEC,OAAO,IAAK;IAC9B,MAAMC,WAAW,GAAGP,SAAS,CAACC,KAAK,IAAI,CAAC,CAAC,CAAC;IAE1CK,OAAO,CAACF,GAAG,IAAIA,GAAG,CAACI,IAAI,IAAIJ,GAAG,CAACI,IAAI,KAAK,YAAY,GAAGD,WAAW,GAAG,CAAC,CAAC,CAAC;EAC1E,CAAC,CAAC;AACJ;AAEA,SAASE,YAAYA,CAACC,CAAC,EAAE;EACvB,OAAO,CAACA,CAAC,IAAI,EAAE,EAAEC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;AAC/C;;AAEA;AACO,SAASC,QAAQA,CAACX,KAAK,EAAE;EAC9B,MAAM;IAAEY;EAAO,CAAC,GAAGZ,KAAK;EACxB,MAAMa,MAAM,GAAG,CAAC,CAAC;EACjB,MAAMC,uBAAuB,GAAG,CAAC,CAAC;EAElC,CAACF,MAAM,IAAI,EAAE,EAAEG,OAAO,CAAC,CAACC,KAAK,EAAEC,KAAK,KAAK;IAEvC,IAAI,CAACD,KAAK,IAAIA,KAAK,KAAK,aAAa,EAAE;MACrCF,uBAAuB,CAACG,KAAK,CAAC,GAAG,qCAAqC;IACxE,CAAC,MAAM;MACL,MAAMC,mBAAmB,GAAGN,MAAM,CAACO,KAAK,CAACF,KAAK,GAAG,CAAC,CAAC,CAACG,IAAI,CAAEC,CAAC,IAAKb,YAAY,CAACa,CAAC,CAAC,KAAKb,YAAY,CAACQ,KAAK,CAAC,CAAC;MAExG,IAAIE,mBAAmB,EAAE;QACvBJ,uBAAuB,CAACG,KAAK,CAAC,GAAG,sCAAsC;MACzE;IACF;EACF,CAAC,CAAC;EAEF,IAAIK,MAAM,CAACC,IAAI,CAACT,uBAAuB,CAAC,CAACU,MAAM,GAAG,CAAC,EAAE;IACnDX,MAAM,CAACC,uBAAuB,GAAGA,uBAAuB;EAC1D;EAEA,OAAOD,MAAM;AACf","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ {
2
+ "name": "@pie-element/rubric-controller",
3
+ "private": true,
4
+ "version": "6.0.3",
5
+ "main": "lib/index.js",
6
+ "scripts": {
7
+ "test": "./node_modules/.bin/jest"
8
+ },
9
+ "dependencies": {
10
+ "lodash-es": "^4.17.23"
11
+ }
12
+ }
@@ -0,0 +1,33 @@
1
+ import { model } from '../index';
2
+
3
+ describe('rubric model', () => {
4
+ let state = {
5
+ points: ['nothing right', 'a teeny bit right', 'mostly right', 'bingo'],
6
+ sampleAnswers: [null, 'just right', 'not left', null],
7
+ maxPoints: 4,
8
+ maxPointsEnabled: true,
9
+ excludeZero: false,
10
+ excludeZeroEnabled: true,
11
+ };
12
+
13
+ let session = {};
14
+ let env, result;
15
+
16
+ it('returns no model for gather', async () => {
17
+ env = { mode: 'gather' };
18
+ result = await model(state, session, env);
19
+ expect(result).toEqual({});
20
+ });
21
+
22
+ it('returns no model for student role', async () => {
23
+ env = { mode: 'gather', role: 'student' };
24
+ result = await model(state, session, env);
25
+ expect(result).toEqual({});
26
+ });
27
+
28
+ it('returns model for instructor role', async () => {
29
+ env = { mode: 'gather', role: 'instructor' };
30
+ result = await model(state, session, env);
31
+ expect(result).toEqual(state);
32
+ });
33
+ });
@@ -0,0 +1,8 @@
1
+ export default {
2
+ points: ['', '', '', ''],
3
+ sampleAnswers: [null, null, null, null],
4
+ maxPoints: 3,
5
+ maxPointsEnabled: true,
6
+ excludeZero: false,
7
+ excludeZeroEnabled: true,
8
+ };
@@ -0,0 +1,41 @@
1
+ import defaults from './defaults';
2
+
3
+ const normalize = (model) => ({ ...defaults, ...model });
4
+
5
+ export function model(model, session, env) {
6
+ return new Promise((resolve) => {
7
+ const modelResult = normalize(model || {});
8
+
9
+ resolve(env && env.role && env.role === 'instructor' ? modelResult : {});
10
+ });
11
+ }
12
+
13
+ function markupToText(s) {
14
+ return (s || '').replace(/(<([^>]+)>)/gi, '');
15
+ }
16
+
17
+ // IMPORTANT! If you make any changes to this function, please make sure you also update complex-rubric/controller/validateSimpleRubric function!“.
18
+ export function validate(model) {
19
+ const { points } = model;
20
+ const errors = {};
21
+ const pointsDescriptorsErrors = {};
22
+
23
+ (points || []).forEach((point, index) => {
24
+
25
+ if (!point || point === '<div></div>') {
26
+ pointsDescriptorsErrors[index] = 'Points descriptors cannot be empty.';
27
+ } else {
28
+ const identicalPointDescr = points.slice(index + 1).some((p) => markupToText(p) === markupToText(point));
29
+
30
+ if (identicalPointDescr) {
31
+ pointsDescriptorsErrors[index] = 'Points descriptors should be unique.';
32
+ }
33
+ }
34
+ });
35
+
36
+ if (Object.keys(pointsDescriptorsErrors).length > 0) {
37
+ errors.pointsDescriptorsErrors = pointsDescriptorsErrors;
38
+ }
39
+
40
+ return errors;
41
+ }