@pie-element/matrix 0.1.0 → 0.1.1-beta.587
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.
- package/CHANGELOG.md +426 -0
- package/configure/CHANGELOG.md +373 -0
- package/configure/lib/HeaderCommon.js +1 -1
- package/configure/lib/Main.js +25 -13
- package/configure/lib/Main.js.map +1 -1
- package/configure/lib/MatrixColumnsSizeHeaderInput.js +2 -2
- package/configure/lib/MatrixColumnsSizeHeaderInput.js.map +1 -1
- package/configure/lib/MatrixLabelEditableButton.js +10 -4
- package/configure/lib/MatrixLabelEditableButton.js.map +1 -1
- package/configure/lib/MatrixLabelTypeHeaderInput.js +2 -2
- package/configure/lib/MatrixLabelTypeHeaderInput.js.map +1 -1
- package/configure/lib/MatrixRowsSizeHeaderInput.js +2 -2
- package/configure/lib/MatrixRowsSizeHeaderInput.js.map +1 -1
- package/configure/lib/MatrixValues.js +14 -7
- package/configure/lib/MatrixValues.js.map +1 -1
- package/configure/lib/NumberInput.js +6 -2
- package/configure/lib/NumberInput.js.map +1 -1
- package/configure/lib/defaults.js +11 -5
- package/configure/lib/defaults.js.map +1 -1
- package/configure/lib/index.js +18 -4
- package/configure/lib/index.js.map +1 -1
- package/configure/package.json +4 -4
- package/controller/CHANGELOG.md +35 -0
- package/controller/lib/defaults.js +1 -1
- package/controller/lib/defaults.js.map +1 -1
- package/controller/lib/index.js +3 -3
- package/controller/lib/index.js.map +1 -1
- package/controller/package.json +1 -1
- package/docs/config-schema.json +21 -0
- package/docs/config-schema.json.md +16 -0
- package/docs/demo/config.js +2 -2
- package/docs/demo/generate.js +2 -2
- package/docs/demo/session.js +2 -2
- package/lib/ChoiceInput.js.map +1 -1
- package/lib/Main.js +1 -1
- package/lib/Main.js.map +1 -1
- package/lib/Matrix.js +10 -15
- package/lib/Matrix.js.map +1 -1
- package/lib/index.js +5 -2
- package/lib/index.js.map +1 -1
- package/package.json +5 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.js"],"names":["createDefaultModel","model","Promise","resolve","defaults","question","session","env","normalizedQuestion","out","disabled","mode","role","teacherInstructions","teacherInstructionsEnabled","outcome","score","empty","Object","keys","value","reduce","acc","key","matrixValue","matrixValues","createCorrectResponseSession","id"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AACA;;;;;;AAEO,IAAMA,kBAAkB,GAAG,SAArBA,kBAAqB;AAAA,MAACC,KAAD,uEAAS,EAAT;AAAA,SAAgB,IAAIC,OAAJ,CAAY,
|
|
1
|
+
{"version":3,"sources":["../src/index.js"],"names":["createDefaultModel","model","Promise","resolve","defaults","question","session","env","normalizedQuestion","out","disabled","mode","role","teacherInstructions","teacherInstructionsEnabled","outcome","score","empty","Object","keys","value","reduce","acc","key","matrixValue","matrixValues","createCorrectResponseSession","id"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AACA;;;;;;AAEO,IAAMA,kBAAkB,GAAG,SAArBA,kBAAqB;AAAA,MAACC,KAAD,uEAAS,EAAT;AAAA,SAAgB,IAAIC,OAAJ,CAAY,UAACC,OAAD;AAAA,WAAaA,OAAO,iCAAMC,oBAAN,GAAmBH,KAAnB,EAApB;AAAA,GAAZ,CAAhB;AAAA,CAA3B;AAEP;AACA;AACA;AACA;AACA;AACA;;;;;SACsBA,K;;;;;yFAAf,iBAAqBI,QAArB,EAA+BC,OAA/B,EAAwCC,GAAxC;AAAA;;AAAA;AAAA;AAAA;AAAA;AACCC,YAAAA,kBADD,mCAC2BJ,oBAD3B,GACwCC,QADxC;AAGCI,YAAAA,GAHD,mCAIAD,kBAJA;AAKHE,cAAAA,QAAQ,EAAEH,GAAG,CAACI,IAAJ,KAAa,QALpB;AAMHA,cAAAA,IAAI,EAAEJ,GAAG,CAACI;AANP;AAAA,oBASkBJ,GAAG,IAAI,EATzB,EASGK,IATH,SASGA,IATH,EASSD,IATT,SASSA,IATT;;AAWL,gBAAIC,IAAI,KAAK,YAAT,KAA0BD,IAAI,KAAK,MAAT,IAAmBA,IAAI,KAAK,UAAtD,CAAJ,EAAuE;AACrEF,cAAAA,GAAG,CAACI,mBAAJ,GAA0BL,kBAAkB,CAACM,0BAAnB,GACtBN,kBAAkB,CAACK,mBADG,GAEtB,IAFJ;AAGD,aAJD,MAIO;AACLJ,cAAAA,GAAG,CAACI,mBAAJ,GAA0B,IAA1B;AACD;;AAjBI,6CAmBEJ,GAnBF;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G;;;;AAsBA,SAASM,OAAT,CAAiBd,KAAjB,EAAwBK,OAAxB,EAAiC;AACtC,SAAO,IAAIJ,OAAJ,CAAY,UAACC,OAAD,EAAa;AAC9B,QAAI,CAACG,OAAD,IAAY,yBAAQA,OAAR,CAAhB,EAAkC;AAChC,aAAOH,OAAO,CAAC;AAAEa,QAAAA,KAAK,EAAE,CAAT;AAAYC,QAAAA,KAAK,EAAE;AAAnB,OAAD,CAAd;AACD;;AAED,QAAMD,KAAK,GAAGE,MAAM,CAACC,IAAP,CAAYb,OAAO,CAACc,KAApB,EAA2BC,MAA3B,CAAkC,UAACC,GAAD,EAAMC,GAAN,EAAc;AAC5D,UAAMC,WAAW,GAAGvB,KAAK,CAACwB,YAAN,CAAmBF,GAAnB,CAApB;AACA,aAAOD,GAAG,IAAIE,WAAW,IAAI,CAAnB,CAAV;AACD,KAHa,EAGX,CAHW,CAAd;AAKArB,IAAAA,OAAO,CAAC;AAAEa,MAAAA,KAAK,EAALA,KAAF;AAASC,MAAAA,KAAK,EAAE;AAAhB,KAAD,CAAP;AACD,GAXM,CAAP;AAYD;;AAEM,IAAMS,4BAA4B,GAAG,SAA/BA,4BAA+B,CAACrB,QAAD,EAAWE,GAAX,EAAmB;AAC7D,SAAO,IAAIL,OAAJ,CAAY,UAACC,OAAD,EAAa;AAC9B,QAAII,GAAG,CAACI,IAAJ,KAAa,UAAb,IAA2BJ,GAAG,CAACK,IAAJ,KAAa,YAA5C,EAA0D;AACxD,iBAAyBP,QAAQ,IAAI,EAArC;AAAA,UAAQoB,YAAR,QAAQA,YAAR;;AAEAtB,MAAAA,OAAO,CAAC;AACNwB,QAAAA,EAAE,EAAE,GADE;AAENP,QAAAA,KAAK,EAAEK;AAFD,OAAD,CAAP;AAID,KAPD,MAOO;AACLtB,MAAAA,OAAO,CAAC,IAAD,CAAP;AACD;AACF,GAXM,CAAP;AAYD,CAbM","sourcesContent":["import defaults from './defaults';\nimport isEmpty from 'lodash/isEmpty';\n\nexport const createDefaultModel = (model = {}) => new Promise((resolve) => resolve({ ...defaults, ...model }));\n\n/**\n *\n * @param {*} question\n * @param {*} session\n * @param {*} env\n */\nexport async function model(question, session, env) {\n const normalizedQuestion = { ...defaults, ...question };\n\n const out = {\n ...normalizedQuestion,\n disabled: env.mode !== 'gather',\n mode: env.mode,\n };\n\n const { role, mode } = env || {};\n\n if (role === 'instructor' && (mode === 'view' || mode === 'evaluate')) {\n out.teacherInstructions = normalizedQuestion.teacherInstructionsEnabled\n ? normalizedQuestion.teacherInstructions\n : null;\n } else {\n out.teacherInstructions = null;\n }\n\n return out;\n}\n\nexport function outcome(model, session) {\n return new Promise((resolve) => {\n if (!session || isEmpty(session)) {\n return resolve({ score: 0, empty: true });\n }\n\n const score = Object.keys(session.value).reduce((acc, key) => {\n const matrixValue = model.matrixValues[key];\n return acc + (matrixValue || 0);\n }, 0);\n\n resolve({ score, empty: false });\n });\n}\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise((resolve) => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n const { matrixValues } = question || [];\n\n resolve({\n id: '1',\n value: matrixValues,\n });\n } else {\n resolve(null);\n }\n });\n};\n"],"file":"index.js"}
|
package/controller/package.json
CHANGED
package/docs/config-schema.json
CHANGED
|
@@ -3,6 +3,27 @@
|
|
|
3
3
|
"additionalProperties": false,
|
|
4
4
|
"type": "object",
|
|
5
5
|
"properties": {
|
|
6
|
+
"settingsPanelDisabled": {
|
|
7
|
+
"description": "Indicates if the settings panel is not available",
|
|
8
|
+
"type": "boolean",
|
|
9
|
+
"title": "settingsPanelDisabled"
|
|
10
|
+
},
|
|
11
|
+
"spellCheck": {
|
|
12
|
+
"title": "ConfigureProp",
|
|
13
|
+
"type": "object",
|
|
14
|
+
"properties": {
|
|
15
|
+
"settings": {
|
|
16
|
+
"description": "Indicates if the item has to be displayed in the Settings Panel",
|
|
17
|
+
"type": "boolean",
|
|
18
|
+
"title": "settings"
|
|
19
|
+
},
|
|
20
|
+
"label": {
|
|
21
|
+
"description": "Indicates the label for the item that has to be displayed in the Settings Panel",
|
|
22
|
+
"type": "string",
|
|
23
|
+
"title": "label"
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
},
|
|
6
27
|
"teacherInstructions": {
|
|
7
28
|
"title": "ConfigureProp",
|
|
8
29
|
"type": "object",
|
|
@@ -2,6 +2,22 @@ Config Object for @pie-elements/matrix
|
|
|
2
2
|
|
|
3
3
|
The schema defines the following properties:
|
|
4
4
|
|
|
5
|
+
# `settingsPanelDisabled` (boolean)
|
|
6
|
+
|
|
7
|
+
Indicates if the settings panel is not available
|
|
8
|
+
|
|
9
|
+
# `spellCheck` (object)
|
|
10
|
+
|
|
11
|
+
Properties of the `spellCheck` object:
|
|
12
|
+
|
|
13
|
+
## `settings` (boolean)
|
|
14
|
+
|
|
15
|
+
Indicates if the item has to be displayed in the Settings Panel
|
|
16
|
+
|
|
17
|
+
## `label` (string)
|
|
18
|
+
|
|
19
|
+
Indicates the label for the item that has to be displayed in the Settings Panel
|
|
20
|
+
|
|
5
21
|
# `teacherInstructions` (object)
|
|
6
22
|
|
|
7
23
|
Properties of the `teacherInstructions` object:
|
package/docs/demo/config.js
CHANGED
package/docs/demo/generate.js
CHANGED
|
@@ -2,8 +2,8 @@ exports.model = (id, element) => ({
|
|
|
2
2
|
id,
|
|
3
3
|
element,
|
|
4
4
|
labelType: 'agreement',
|
|
5
|
-
rowLabels: [
|
|
5
|
+
rowLabels: ["I'm interested in politics.", "I'm interested in economics."],
|
|
6
6
|
columnLabels: ['Disagree', 'Unsure', 'Agree'],
|
|
7
7
|
matrixValues: {},
|
|
8
|
-
prompt: 'How interested are you in the following domains?'
|
|
8
|
+
prompt: 'How interested are you in the following domains?',
|
|
9
9
|
});
|
package/docs/demo/session.js
CHANGED
package/lib/ChoiceInput.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ChoiceInput.jsx"],"names":["radioStyles","root","color","text","checked","ChoiceInput","props","disabled","matrixKey","matrixValue","classes","onChange","onChangeWrapper","propTypes","PropTypes","bool","isRequired","number","string","object","func","defaultProps"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AAEA,IAAMA,WAAW,GAAG;AAClBC,EAAAA,IAAI,EAAE;AACJC,IAAAA,KAAK,sCAA+BA,gBAAMC,IAAN,EAA/B;AADD,GADY;AAIlBC,EAAAA,OAAO,EAAE;AACPF,IAAAA,KAAK,+CAAwCA,gBAAMC,IAAN,EAAxC;AADE;AAJS,CAApB;AASA,IAAME,WAAW,GAAG,wBAAWL,WAAX,EAAwB,UAACM,KAAD,EAAW;
|
|
1
|
+
{"version":3,"sources":["../src/ChoiceInput.jsx"],"names":["radioStyles","root","color","text","checked","ChoiceInput","props","disabled","matrixKey","matrixValue","classes","onChange","onChangeWrapper","propTypes","PropTypes","bool","isRequired","number","string","object","func","defaultProps"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AAEA,IAAMA,WAAW,GAAG;AAClBC,EAAAA,IAAI,EAAE;AACJC,IAAAA,KAAK,sCAA+BA,gBAAMC,IAAN,EAA/B;AADD,GADY;AAIlBC,EAAAA,OAAO,EAAE;AACPF,IAAAA,KAAK,+CAAwCA,gBAAMC,IAAN,EAAxC;AADE;AAJS,CAApB;AASA,IAAME,WAAW,GAAG,wBAAWL,WAAX,EAAwB,UAACM,KAAD,EAAW;AACrD,MAAQC,QAAR,GAAyED,KAAzE,CAAQC,QAAR;AAAA,MAAkBH,OAAlB,GAAyEE,KAAzE,CAAkBF,OAAlB;AAAA,MAA2BI,SAA3B,GAAyEF,KAAzE,CAA2BE,SAA3B;AAAA,MAAsCC,WAAtC,GAAyEH,KAAzE,CAAsCG,WAAtC;AAAA,MAAmDC,OAAnD,GAAyEJ,KAAzE,CAAmDI,OAAnD;AAAA,MAA4DC,QAA5D,GAAyEL,KAAzE,CAA4DK,QAA5D;;AAEA,MAAMC,eAAe,GAAG,SAAlBA,eAAkB,GAAM;AAC5B,QAAIL,QAAJ,EAAc;AACZ;AACD;;AACDI,IAAAA,QAAQ,CAAC;AACPF,MAAAA,WAAW,EAAXA,WADO;AAEPD,MAAAA,SAAS,EAATA;AAFO,KAAD,CAAR;AAID,GARD;;AAUA,sBACE,gCAAC,iBAAD;AACE,IAAA,OAAO,EAAEJ,OADX;AAEE,IAAA,QAAQ,EAAEQ,eAFZ;AAGE,IAAA,QAAQ,EAAEL,QAHZ;AAIE,IAAA,OAAO,EAAE;AACPN,MAAAA,IAAI,EAAES,OAAO,CAACT,IADP;AAEPG,MAAAA,OAAO,EAAEM,OAAO,CAACN;AAFV;AAJX,IADF;AAWD,CAxBmB,CAApB;AA0BAC,WAAW,CAACQ,SAAZ,GAAwB;AACtBT,EAAAA,OAAO,EAAEU,sBAAUC,IAAV,CAAeC,UADF;AAEtBT,EAAAA,QAAQ,EAAEO,sBAAUC,IAAV,CAAeC,UAFH;AAGtBP,EAAAA,WAAW,EAAEK,sBAAUG,MAAV,CAAiBD,UAHR;AAItBR,EAAAA,SAAS,EAAEM,sBAAUI,MAAV,CAAiBF,UAJN;AAKtBN,EAAAA,OAAO,EAAEI,sBAAUK,MALG;AAMtBR,EAAAA,QAAQ,EAAEG,sBAAUM,IAAV,CAAeJ;AANH,CAAxB;AASAX,WAAW,CAACgB,YAAZ,GAA2B;AACzBjB,EAAAA,OAAO,EAAE,KADgB;AAEzBG,EAAAA,QAAQ,EAAE;AAFe,CAA3B;eAKeF,W","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\n\nimport { color } from '@pie-lib/render-ui';\nimport Radio from '@material-ui/core/Radio';\n\nconst radioStyles = {\n root: {\n color: `var(--choice-input-color, ${color.text()})`,\n },\n checked: {\n color: `var(--choice-input-selected-color, ${color.text()})`,\n },\n};\n\nconst ChoiceInput = withStyles(radioStyles)((props) => {\n const { disabled, checked, matrixKey, matrixValue, classes, onChange } = props;\n\n const onChangeWrapper = () => {\n if (disabled) {\n return;\n }\n onChange({\n matrixValue,\n matrixKey,\n });\n };\n\n return (\n <Radio\n checked={checked}\n onChange={onChangeWrapper}\n disabled={disabled}\n classes={{\n root: classes.root,\n checked: classes.checked,\n }}\n />\n );\n});\n\nChoiceInput.propTypes = {\n checked: PropTypes.bool.isRequired,\n disabled: PropTypes.bool.isRequired,\n matrixValue: PropTypes.number.isRequired,\n matrixKey: PropTypes.string.isRequired,\n classes: PropTypes.object,\n onChange: PropTypes.func.isRequired,\n};\n\nChoiceInput.defaultProps = {\n checked: false,\n disabled: false,\n};\n\nexport default ChoiceInput;\n"],"file":"ChoiceInput.js"}
|
package/lib/Main.js
CHANGED
|
@@ -31,7 +31,7 @@ var _Matrix = _interopRequireDefault(require("./Matrix"));
|
|
|
31
31
|
|
|
32
32
|
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); }; }
|
|
33
33
|
|
|
34
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try {
|
|
34
|
+
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; } }
|
|
35
35
|
|
|
36
36
|
var Main = /*#__PURE__*/function (_React$Component) {
|
|
37
37
|
(0, _inherits2["default"])(Main, _React$Component);
|
package/lib/Main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/Main.jsx"],"names":["Main","props","model","onSessionChange","session","React","Component","PropTypes","object","func"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;IAEMA,I;;;;;;;;;;;;WAYJ,kBAAS;
|
|
1
|
+
{"version":3,"sources":["../src/Main.jsx"],"names":["Main","props","model","onSessionChange","session","React","Component","PropTypes","object","func"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;IAEMA,I;;;;;;;;;;;;WAYJ,kBAAS;AACP,wBAA4C,KAAKC,KAAjD;AAAA,UAAQC,KAAR,eAAQA,KAAR;AAAA,UAAeC,eAAf,eAAeA,eAAf;AAAA,UAAgCC,OAAhC,eAAgCA,OAAhC;AACA,0BACE,gCAAC,uBAAD,qBACE,gCAAC,kBAAD,gCAAYF,KAAZ;AAAmB,QAAA,OAAO,EAAEE,OAA5B;AAAqC,QAAA,eAAe,EAAED;AAAtD,SADF,CADF;AAKD;;;EAnBgBE,kBAAMC,S;;iCAAnBN,I,eACe;AACjBE,EAAAA,KAAK,EAAEK,sBAAUC,MADA;AAEjBJ,EAAAA,OAAO,EAAEG,sBAAUC,MAFF;AAGjBL,EAAAA,eAAe,EAAEI,sBAAUE;AAHV,C;iCADfT,I,kBAOkB;AACpBE,EAAAA,KAAK,EAAE,EADa;AAEpBE,EAAAA,OAAO,EAAE;AAFW,C;eAeTJ,I","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { PreviewLayout } from '@pie-lib/render-ui';\nimport Matrix from './Matrix';\n\nclass Main extends React.Component {\n static propTypes = {\n model: PropTypes.object,\n session: PropTypes.object,\n onSessionChange: PropTypes.func,\n };\n\n static defaultProps = {\n model: {},\n session: {},\n };\n\n render() {\n const { model, onSessionChange, session } = this.props;\n return (\n <PreviewLayout>\n <Matrix {...model} session={session} onSessionChange={onSessionChange} />\n </PreviewLayout>\n );\n }\n}\n\nexport default Main;\n"],"file":"Main.js"}
|
package/lib/Matrix.js
CHANGED
|
@@ -21,17 +21,15 @@ var _ChoiceInput = _interopRequireDefault(require("./ChoiceInput"));
|
|
|
21
21
|
|
|
22
22
|
var _renderUi = require("@pie-lib/render-ui");
|
|
23
23
|
|
|
24
|
-
var _templateObject, _templateObject2, _templateObject3
|
|
24
|
+
var _templateObject, _templateObject2, _templateObject3;
|
|
25
25
|
|
|
26
|
-
var
|
|
26
|
+
var MatrixWrapper = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n font-family: Roboto, Arial, Helvetica, sans-serif;\n"])));
|
|
27
27
|
|
|
28
|
-
var
|
|
29
|
-
|
|
30
|
-
var MatrixGridWrapper = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: grid;\n grid-template-columns: ", ";\n grid-column-gap: 30px;\n grid-row-gap: 20px;\n margin-top: 40px;\n"])), function (props) {
|
|
28
|
+
var MatrixGridWrapper = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: grid;\n grid-template-columns: ", ";\n grid-column-gap: 30px;\n grid-row-gap: 20px;\n margin-top: 40px;\n"])), function (props) {
|
|
31
29
|
return props.gridTemplateColumns;
|
|
32
30
|
});
|
|
33
31
|
|
|
34
|
-
var MatrixGridItem = _styledComponents["default"].div(
|
|
32
|
+
var MatrixGridItem = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n align-self: center;\n justify-self: center;\n white-space: nowrap;\n"])));
|
|
35
33
|
|
|
36
34
|
var Matrix = function Matrix(props) {
|
|
37
35
|
var disabled = props.disabled,
|
|
@@ -73,19 +71,16 @@ var Matrix = function Matrix(props) {
|
|
|
73
71
|
var gridTemplateColumns = [].concat((0, _toConsumableArray2["default"])(columnLabels), [{}]).map(function () {
|
|
74
72
|
return 'min-content';
|
|
75
73
|
}).join(' ');
|
|
76
|
-
return /*#__PURE__*/_react["default"].createElement(MatrixWrapper, null, teacherInstructions && /*#__PURE__*/_react["default"].createElement(_renderUi.Collapsible, {
|
|
74
|
+
return /*#__PURE__*/_react["default"].createElement(MatrixWrapper, null, teacherInstructions && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_renderUi.Collapsible, {
|
|
77
75
|
labels: {
|
|
78
76
|
hidden: 'Show Teacher Instructions',
|
|
79
77
|
visible: 'Hide Teacher Instructions'
|
|
80
78
|
}
|
|
81
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
dangerouslySetInnerHTML: {
|
|
87
|
-
__html: prompt
|
|
88
|
-
}
|
|
79
|
+
}, /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
|
|
80
|
+
prompt: teacherInstructions
|
|
81
|
+
})), /*#__PURE__*/_react["default"].createElement("br", null)), /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
|
|
82
|
+
className: "prompt",
|
|
83
|
+
prompt: prompt
|
|
89
84
|
}), /*#__PURE__*/_react["default"].createElement(MatrixGridWrapper, {
|
|
90
85
|
gridTemplateColumns: gridTemplateColumns
|
|
91
86
|
}, gridMatrixItems.map(function (gridMatrixItem, gridMatrixIndex) {
|
package/lib/Matrix.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/Matrix.jsx"],"names":["
|
|
1
|
+
{"version":3,"sources":["../src/Matrix.jsx"],"names":["MatrixWrapper","styled","div","MatrixGridWrapper","props","gridTemplateColumns","MatrixGridItem","Matrix","disabled","prompt","onSessionChange","columnLabels","matrixValues","rowLabels","session","teacherInstructions","gridMatrixItems","rowIndex","length","columnIndex","gridMatrixItem","matrixKey","matrixValue","value","hasOwnProperty","push","map","join","hidden","visible","gridMatrixIndex","propTypes","PropTypes","string","object","arrayOf","bool","isRequired","func","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport ChoiceInput from './ChoiceInput';\nimport { Collapsible, PreviewPrompt } from '@pie-lib/render-ui';\n\nconst MatrixWrapper = styled.div`\n font-family: Roboto, Arial, Helvetica, sans-serif;\n`;\n\nconst MatrixGridWrapper = styled.div`\n display: grid;\n grid-template-columns: ${(props) => props.gridTemplateColumns};\n grid-column-gap: 30px;\n grid-row-gap: 20px;\n margin-top: 40px;\n`;\n\nconst MatrixGridItem = styled.div`\n align-self: center;\n justify-self: center;\n white-space: nowrap;\n`;\n\nconst Matrix = (props) => {\n const { disabled, prompt, onSessionChange, columnLabels, matrixValues, rowLabels, session, teacherInstructions } =\n props;\n\n const gridMatrixItems = [];\n\n for (let rowIndex = 0; rowIndex < rowLabels.length + 1; rowIndex++) {\n for (let columnIndex = 0; columnIndex < columnLabels.length + 1; columnIndex++) {\n let gridMatrixItem;\n if (rowIndex === 0 && columnIndex === 0) {\n gridMatrixItem = null;\n } else if (rowIndex === 0) {\n gridMatrixItem = columnLabels[columnIndex - 1];\n } else if (columnIndex === 0) {\n gridMatrixItem = rowLabels[rowIndex - 1];\n } else {\n const matrixKey = `${rowIndex - 1}-${columnIndex - 1}`;\n const matrixValue = matrixValues[matrixKey];\n gridMatrixItem = (\n <ChoiceInput\n matrixKey={matrixKey}\n matrixValue={matrixValue || 0}\n disabled={disabled}\n onChange={onSessionChange}\n checked={session.value && session.value.hasOwnProperty(matrixKey)}\n />\n );\n }\n gridMatrixItems.push(gridMatrixItem);\n }\n }\n const gridTemplateColumns = [...columnLabels, {}].map(() => 'min-content').join(' ');\n\n return (\n <MatrixWrapper>\n {teacherInstructions && (\n <React.Fragment>\n <Collapsible\n labels={{\n hidden: 'Show Teacher Instructions',\n visible: 'Hide Teacher Instructions',\n }}\n >\n <PreviewPrompt prompt={teacherInstructions} />\n </Collapsible>\n <br />\n </React.Fragment>\n )}\n <PreviewPrompt className=\"prompt\" prompt={prompt} />\n <MatrixGridWrapper gridTemplateColumns={gridTemplateColumns}>\n {gridMatrixItems.map((gridMatrixItem, gridMatrixIndex) => {\n return <MatrixGridItem key={`${gridMatrixIndex}`}>{gridMatrixItem}</MatrixGridItem>;\n })}\n </MatrixGridWrapper>\n </MatrixWrapper>\n );\n};\n\nMatrix.propTypes = {\n prompt: PropTypes.string,\n teacherInstructions: PropTypes.string,\n session: PropTypes.object,\n matrixValues: PropTypes.object,\n rowLabels: PropTypes.arrayOf(PropTypes.string),\n columnLabels: PropTypes.arrayOf(PropTypes.string),\n disabled: PropTypes.bool.isRequired,\n onSessionChange: PropTypes.func.isRequired,\n};\n\nMatrix.defaultProps = {\n session: {\n value: {},\n },\n};\n\nexport default Matrix;\n"],"file":"Matrix.js"}
|
package/lib/index.js
CHANGED
|
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports["default"] =
|
|
8
|
+
exports.isComplete = exports["default"] = void 0;
|
|
9
9
|
|
|
10
10
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
11
|
|
|
@@ -31,7 +31,7 @@ var _Main = _interopRequireDefault(require("./Main"));
|
|
|
31
31
|
|
|
32
32
|
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); }; }
|
|
33
33
|
|
|
34
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try {
|
|
34
|
+
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; } }
|
|
35
35
|
|
|
36
36
|
var isComplete = function isComplete(session) {
|
|
37
37
|
if (!session || !session.value) {
|
|
@@ -62,6 +62,9 @@ var Matrix = /*#__PURE__*/function (_HTMLElement) {
|
|
|
62
62
|
}
|
|
63
63
|
}, {
|
|
64
64
|
key: "session",
|
|
65
|
+
get: function get() {
|
|
66
|
+
return this._session;
|
|
67
|
+
},
|
|
65
68
|
set: function set(s) {
|
|
66
69
|
this._session = s;
|
|
67
70
|
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.js"],"names":["isComplete","session","value","Object","keys","length","Matrix","m","_model","_render","
|
|
1
|
+
{"version":3,"sources":["../src/index.js"],"names":["isComplete","session","value","Object","keys","length","Matrix","m","_model","_render","_session","s","matrixKey","matrixValue","matrixRowKey","split","sessionValueClone","reduce","acc","key","startsWith","complete","dispatchEvent","SessionChangedEvent","tagName","toLowerCase","el","React","createElement","Main","model","onSessionChange","sessionChanged","bind","ReactDOM","render","HTMLElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEO,IAAMA,UAAU,GAAG,SAAbA,UAAa,CAACC,OAAD,EAAa;AACrC,MAAI,CAACA,OAAD,IAAY,CAACA,OAAO,CAACC,KAAzB,EAAgC;AAC9B,WAAO,KAAP;AACD;;AACD,SAAO,CAAC,CAACC,MAAM,CAACC,IAAP,CAAYH,OAAO,CAACC,KAApB,EAA2BG,MAApC;AACD,CALM;;;;IAOcC,M;;;;;AACnB,oBAAc;AAAA;AAAA;AAEb;;;;SAED,aAAUC,CAAV,EAAa;AACX,WAAKC,MAAL,GAAcD,CAAd;;AACA,WAAKE,OAAL;AACD;;;SAOD,eAAc;AACZ,aAAO,KAAKC,QAAZ;AACD,K;SAPD,aAAYC,CAAZ,EAAe;AACb,WAAKD,QAAL,GAAgBC,CAAhB;;AACA,WAAKF,OAAL;AACD;;;WAMD,8BAA2C;AAAA;;AAAA,UAA1BG,SAA0B,QAA1BA,SAA0B;AAAA,UAAfC,WAAe,QAAfA,WAAe;AACzC,UAAMC,YAAY,GAAGF,SAAS,CAACG,KAAV,CAAgB,GAAhB,EAAqB,CAArB,CAArB;AACA,UAAMC,iBAAiB,GAAGb,MAAM,CAACC,IAAP,CAAY,KAAKM,QAAL,CAAcR,KAAd,IAAuB,EAAnC,EAAuCe,MAAvC,CAA8C,UAACC,GAAD,EAAMC,GAAN,EAAc;AACpF,YAAI,CAACA,GAAG,CAACC,UAAJ,CAAeN,YAAf,CAAL,EAAmC;AACjCI,UAAAA,GAAG,CAACC,GAAD,CAAH,GAAW,KAAI,CAACT,QAAL,CAAcR,KAAd,CAAoBiB,GAApB,CAAX;AACD;;AACD,eAAOD,GAAP;AACD,OALyB,EAKvB,EALuB,CAA1B;AAMAF,MAAAA,iBAAiB,CAACJ,SAAD,CAAjB,GAA+BC,WAA/B;AACA,WAAKH,QAAL,CAAcR,KAAd,GAAsBc,iBAAtB;AACA,UAAMK,QAAQ,GAAGrB,UAAU,CAAC,KAAKU,QAAN,EAAgB,KAAKF,MAArB,CAA3B;AAEA,WAAKc,aAAL,CAAmB,IAAIC,oCAAJ,CAAwB,KAAKC,OAAL,CAAaC,WAAb,EAAxB,EAAoDJ,QAApD,CAAnB;;AACA,WAAKZ,OAAL;AACD;;;WAED,6BAAoB;AAClB,WAAKA,OAAL;AACD;;;WAED,mBAAU;AAAA;;AACR,UAAI,CAAC,KAAKD,MAAN,IAAgB,CAAC,KAAKE,QAA1B,EAAoC;AAClC;AACD;;AAED,UAAMgB,EAAE,gBAAGC,kBAAMC,aAAN,CAAoBC,gBAApB,EAA0B;AACnCC,QAAAA,KAAK,EAAE,KAAKtB,MADuB;AAEnCP,QAAAA,OAAO,EAAE,KAAKS,QAFqB;AAGnCqB,QAAAA,eAAe,EAAE,KAAKC,cAAL,CAAoBC,IAApB,CAAyB,IAAzB;AAHkB,OAA1B,CAAX;;AAMAC,2BAASC,MAAT,CAAgBT,EAAhB,EAAoB,IAApB,EAA0B,YAAM;AAC9B,uCAAW,MAAX;AACD,OAFD;AAGD;;;kDArDiCU,W","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { SessionChangedEvent } from '@pie-framework/pie-player-events';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport Main from './Main';\n\nexport const isComplete = (session) => {\n if (!session || !session.value) {\n return false;\n }\n return !!Object.keys(session.value).length;\n};\n\nexport default class Matrix extends HTMLElement {\n constructor() {\n super();\n }\n\n set model(m) {\n this._model = m;\n this._render();\n }\n\n set session(s) {\n this._session = s;\n this._render();\n }\n\n get session() {\n return this._session;\n }\n\n sessionChanged({ matrixKey, matrixValue }) {\n const matrixRowKey = matrixKey.split('-')[0];\n const sessionValueClone = Object.keys(this._session.value || {}).reduce((acc, key) => {\n if (!key.startsWith(matrixRowKey)) {\n acc[key] = this._session.value[key];\n }\n return acc;\n }, {});\n sessionValueClone[matrixKey] = matrixValue;\n this._session.value = sessionValueClone;\n const complete = isComplete(this._session, this._model);\n\n this.dispatchEvent(new SessionChangedEvent(this.tagName.toLowerCase(), complete));\n this._render();\n }\n\n connectedCallback() {\n this._render();\n }\n\n _render() {\n if (!this._model || !this._session) {\n return;\n }\n\n const el = React.createElement(Main, {\n model: this._model,\n session: this._session,\n onSessionChange: this.sessionChanged.bind(this),\n });\n\n ReactDOM.render(el, this, () => {\n renderMath(this);\n });\n }\n}\n"],"file":"index.js"}
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
6
|
"repository": "pie-framework/pie-elements",
|
|
7
|
-
"version": "0.1.
|
|
7
|
+
"version": "0.1.1-beta.587+40df32c2f",
|
|
8
8
|
"description": "",
|
|
9
9
|
"scripts": {
|
|
10
10
|
"test": "echo \"Error: no test specified\" && exit 1"
|
|
@@ -12,9 +12,10 @@
|
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@material-ui/core": "^3.9.2",
|
|
14
14
|
"@pie-framework/pie-player-events": "^0.1.0",
|
|
15
|
-
"@pie-lib/math-rendering": "^2.
|
|
16
|
-
"@pie-lib/render-ui": "^4.
|
|
15
|
+
"@pie-lib/math-rendering": "^2.5.12",
|
|
16
|
+
"@pie-lib/render-ui": "^4.14.12",
|
|
17
17
|
"debug": "^4.1.1",
|
|
18
|
+
"is-plain-object": "^5.0.0",
|
|
18
19
|
"prop-types": "^15.6.1",
|
|
19
20
|
"react": "^16.8.1",
|
|
20
21
|
"react-dom": "^16.8.1",
|
|
@@ -22,7 +23,7 @@
|
|
|
22
23
|
},
|
|
23
24
|
"author": "",
|
|
24
25
|
"license": "ISC",
|
|
25
|
-
"gitHead": "
|
|
26
|
+
"gitHead": "40df32c2f78966706cb168843567c9df174f1d88",
|
|
26
27
|
"main": "lib/index.js",
|
|
27
28
|
"module": "src/index.js"
|
|
28
29
|
}
|