@pie-element/passage 5.0.2-esm.0 → 5.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 (52) hide show
  1. package/CHANGELOG.md +74 -0
  2. package/configure/CHANGELOG.md +74 -0
  3. package/configure/lib/__tests__/main.test.js +167 -0
  4. package/configure/lib/__tests__/passage.test.js +176 -0
  5. package/configure/lib/common.js +59 -86
  6. package/configure/lib/common.js.map +1 -1
  7. package/configure/lib/defaults.js +3 -4
  8. package/configure/lib/defaults.js.map +1 -1
  9. package/configure/lib/design.js +148 -224
  10. package/configure/lib/design.js.map +1 -1
  11. package/configure/lib/index.js +72 -124
  12. package/configure/lib/index.js.map +1 -1
  13. package/configure/lib/passage.js +172 -261
  14. package/configure/lib/passage.js.map +1 -1
  15. package/configure/package.json +9 -6
  16. package/controller/CHANGELOG.md +32 -0
  17. package/controller/lib/defaults.js +3 -4
  18. package/controller/lib/defaults.js.map +1 -1
  19. package/controller/lib/index.js +42 -95
  20. package/controller/lib/index.js.map +1 -1
  21. package/controller/package.json +1 -1
  22. package/docs/demo/pie.manifest.json +11 -0
  23. package/lib/__tests__/stimulus-tabs.test.js +28 -0
  24. package/lib/index.js +54 -104
  25. package/lib/index.js.map +1 -1
  26. package/lib/print.js +54 -100
  27. package/lib/print.js.map +1 -1
  28. package/lib/stimulus-tabs.js +175 -275
  29. package/lib/stimulus-tabs.js.map +1 -1
  30. package/package.json +12 -28
  31. package/LICENSE.md +0 -5
  32. package/esm/configure.css +0 -847
  33. package/esm/configure.js +0 -708
  34. package/esm/configure.js.map +0 -1
  35. package/esm/controller.css +0 -847
  36. package/esm/controller.js +0 -111
  37. package/esm/controller.js.map +0 -1
  38. package/esm/element.css +0 -847
  39. package/esm/element.js +0 -357
  40. package/esm/element.js.map +0 -1
  41. package/esm/print.css +0 -847
  42. package/esm/print.js +0 -351
  43. package/esm/print.js.map +0 -1
  44. package/module/configure.js +0 -1
  45. package/module/controller.js +0 -1068
  46. package/module/demo.js +0 -57
  47. package/module/element.js +0 -1
  48. package/module/index.html +0 -21
  49. package/module/manifest.json +0 -10
  50. package/module/print-demo.js +0 -95
  51. package/module/print.html +0 -18
  52. package/module/print.js +0 -1
package/esm/controller.js DELETED
@@ -1,111 +0,0 @@
1
- import isEmpty from 'lodash/isEmpty';
2
-
3
- function _extends() {
4
- _extends = Object.assign || function (target) {
5
- for (var i = 1; i < arguments.length; i++) {
6
- var source = arguments[i];
7
-
8
- for (var key in source) {
9
- if (Object.prototype.hasOwnProperty.call(source, key)) {
10
- target[key] = source[key];
11
- }
12
- }
13
- }
14
-
15
- return target;
16
- };
17
-
18
- return _extends.apply(this, arguments);
19
- }
20
-
21
- // TODO: also update '../../configure/src/defaults.js' and '../../src/print.js' when updating defaults
22
- var defaults = {
23
- authorEnabled: false,
24
- // TODO: should be set to true when all Studio content is updated
25
- passages: [{
26
- teacherInstructions: '',
27
- title: '',
28
- subtitle: '',
29
- author: '',
30
- text: ''
31
- }],
32
- subtitleEnabled: true,
33
- teacherInstructionsEnabled: true,
34
- textEnabled: true,
35
- titleEnabled: true
36
- };
37
-
38
- const getContent = html => (html || '').replace(/(<(?!img|iframe|source)([^>]+)>)/gi, '');
39
-
40
- const checkNullish = value => value !== null && value !== undefined;
41
-
42
- const isEnabled = (value, defaultValue) => checkNullish(value) ? value : defaultValue;
43
-
44
- function createDefaultModel(model = {}) {
45
- return new Promise(resolve => {
46
- resolve(_extends({}, defaults, model));
47
- });
48
- }
49
- const normalize = question => _extends({}, defaults, question);
50
-
51
- const normalizeTeacherInstructions = (instructions, env) => {
52
- const {
53
- role,
54
- mode
55
- } = env;
56
-
57
- if (role === 'instructor' && (mode === 'view' || mode === 'evaluate')) {
58
- return instructions || '';
59
- }
60
-
61
- return '';
62
- };
63
- /**
64
- *
65
- * @param {*} question
66
- * @param {*} session
67
- * @param {*} env
68
- */
69
-
70
-
71
- async function model(question, session, env) {
72
- const normalizedQuestion = normalize(question);
73
- const normalizedPassages = normalizedQuestion.passages.map((passage, index) => ({
74
- teacherInstructions: isEnabled(passage.teacherInstructionsEnabled, normalizedQuestion.teacherInstructionsEnabled) ? normalizeTeacherInstructions(passage.teacherInstructions, env) : '',
75
- label: getContent(passage.title) ? passage.title : `Passage ${index + 1}`,
76
- title: isEnabled(passage.titleEnabled, normalizedQuestion.titleEnabled) ? passage.title || '' : '',
77
- subtitle: isEnabled(passage.subtitleEnabled, normalizedQuestion.subtitleEnabled) ? passage.subtitle || '' : '',
78
- author: isEnabled(passage.authorEnabled, normalizedQuestion.authorEnabled) ? passage.author || '' : '',
79
- text: isEnabled(passage.textEnabled, normalizedQuestion.textEnabled) ? passage.text || '' : ''
80
- }));
81
- return _extends({}, normalizedQuestion, {
82
- passages: normalizedPassages
83
- });
84
- }
85
- const validate = (model = {}, config = {}) => {
86
- const errors = {};
87
- const passagesErrors = {};
88
- (model.passages || []).forEach((passage, index) => {
89
- const err = {};
90
- ['teacherInstructions', 'title', 'subtitle', 'author', 'text'].forEach(field => {
91
- var _config$field;
92
-
93
- if ((_config$field = config[field]) != null && _config$field.required && !getContent(passage[field])) {
94
- err[field] = 'This field is required.';
95
- }
96
- });
97
-
98
- if (!isEmpty(err)) {
99
- passagesErrors[index] = err;
100
- }
101
- });
102
-
103
- if (!isEmpty(passagesErrors)) {
104
- errors.passages = passagesErrors;
105
- }
106
-
107
- return errors;
108
- };
109
-
110
- export { createDefaultModel, model, normalize, validate };
111
- //# sourceMappingURL=controller.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"controller.js","sources":["../controller/src/defaults.js","../controller/src/index.js"],"sourcesContent":["// TODO: also update '../../configure/src/defaults.js' and '../../src/print.js' when updating defaults\nexport default {\n authorEnabled: false, // TODO: should be set to true when all Studio content is updated\n passages: [\n {\n teacherInstructions: '',\n title: '',\n subtitle: '',\n author: '',\n text: '',\n },\n ],\n subtitleEnabled: true,\n teacherInstructionsEnabled: true,\n textEnabled: true,\n titleEnabled: true,\n};\n","import isEmpty from 'lodash/isEmpty';\n\nimport defaults from './defaults';\n\nconst getContent = (html) => (html || '').replace(/(<(?!img|iframe|source)([^>]+)>)/gi, '');\n\nconst checkNullish = (value) => value !== null && value !== undefined;\n\nconst isEnabled = (value, defaultValue) => (checkNullish(value) ? value : defaultValue);\n\nexport function createDefaultModel(model = {}) {\n return new Promise((resolve) => {\n resolve({ ...defaults, ...model });\n });\n}\n\nexport const normalize = (question) => ({ ...defaults, ...question });\n\nconst normalizeTeacherInstructions = (instructions, env) => {\n const { role, mode } = env;\n\n if (role === 'instructor' && (mode === 'view' || mode === 'evaluate')) {\n return instructions || '';\n }\n\n return '';\n};\n\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 const normalizedPassages = normalizedQuestion.passages.map((passage, index) => ({\n teacherInstructions: isEnabled(passage.teacherInstructionsEnabled, normalizedQuestion.teacherInstructionsEnabled)\n ? normalizeTeacherInstructions(passage.teacherInstructions, env)\n : '',\n label: getContent(passage.title) ? passage.title : `Passage ${index + 1}`,\n title: isEnabled(passage.titleEnabled, normalizedQuestion.titleEnabled) ? passage.title || '' : '',\n subtitle: isEnabled(passage.subtitleEnabled, normalizedQuestion.subtitleEnabled) ? passage.subtitle || '' : '',\n author: isEnabled(passage.authorEnabled, normalizedQuestion.authorEnabled) ? passage.author || '' : '',\n text: isEnabled(passage.textEnabled, normalizedQuestion.textEnabled) ? passage.text || '' : '',\n }));\n\n return {\n ...normalizedQuestion,\n passages: normalizedPassages,\n };\n}\n\nexport const validate = (model = {}, config = {}) => {\n const errors = {};\n const passagesErrors = {};\n\n (model.passages || []).forEach((passage, index) => {\n const err = {};\n\n ['teacherInstructions', 'title', 'subtitle', 'author', 'text'].forEach((field) => {\n if (config[field]?.required && !getContent(passage[field])) {\n err[field] = 'This field is required.';\n }\n });\n\n if (!isEmpty(err)) {\n passagesErrors[index] = err;\n }\n });\n\n if (!isEmpty(passagesErrors)) {\n errors.passages = passagesErrors;\n }\n\n return errors;\n};\n"],"names":["authorEnabled","passages","teacherInstructions","title","subtitle","author","text","subtitleEnabled","teacherInstructionsEnabled","textEnabled","titleEnabled","getContent","html","replace","checkNullish","value","undefined","isEnabled","defaultValue","createDefaultModel","model","Promise","resolve","defaults","normalize","question","normalizeTeacherInstructions","instructions","env","role","mode","session","normalizedQuestion","normalizedPassages","map","passage","index","label","validate","config","errors","passagesErrors","forEach","err","field","required","isEmpty"],"mappings":"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"}